aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2015-10-25 21:44:51 +0100
committerWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2015-10-25 21:44:51 +0100
commit5e64624059d6f984f4304abf336cce05cdb0212f (patch)
tree95fff68ddba9921771d458d755c87489a5fccf08
parentb673969b102cece38c5de54d35617425459174f5 (diff)
downloadkernel_samsung_smdk4412-5e64624059d6f984f4304abf336cce05cdb0212f.zip
kernel_samsung_smdk4412-5e64624059d6f984f4304abf336cce05cdb0212f.tar.gz
kernel_samsung_smdk4412-5e64624059d6f984f4304abf336cce05cdb0212f.tar.bz2
remove more unused drivers, readd accidentally removed iommu, reenable graphics settings
-rw-r--r--arch/arm/configs/cyanogenmod_i9300_defconfig23
-rw-r--r--drivers/Kconfig2
-rw-r--r--drivers/Makefile2
-rw-r--r--drivers/iommu/Kconfig161
-rw-r--r--drivers/iommu/Makefile12
-rw-r--r--drivers/iommu/exynos-iommu.c1054
-rw-r--r--drivers/iommu/exynos-iovmm.c510
-rw-r--r--drivers/iommu/iommu.c343
-rw-r--r--drivers/media/Kconfig9
-rw-r--r--drivers/media/Makefile2
-rw-r--r--drivers/media/isdbt/Kconfig14
-rw-r--r--drivers/media/isdbt/Makefile8
-rw-r--r--drivers/media/isdbt/fc8100/KLlist.c285
-rw-r--r--drivers/media/isdbt/fc8100/LKlist.h44
-rw-r--r--drivers/media/isdbt/fc8100/Makefile16
-rw-r--r--drivers/media/isdbt/fc8100/bbm.c237
-rw-r--r--drivers/media/isdbt/fc8100/bbm.h61
-rw-r--r--drivers/media/isdbt/fc8100/fc8100.c271
-rw-r--r--drivers/media/isdbt/fc8100/fc8100.h66
-rw-r--r--drivers/media/isdbt/fc8100/fc8100_bb.c204
-rw-r--r--drivers/media/isdbt/fc8100/fc8100_bb.h29
-rw-r--r--drivers/media/isdbt/fc8100/fc8100_i2c.c349
-rw-r--r--drivers/media/isdbt/fc8100/fc8100_i2c.h43
-rw-r--r--drivers/media/isdbt/fc8100/fc8100_isr.c27
-rw-r--r--drivers/media/isdbt/fc8100/fc8100_isr.h31
-rw-r--r--drivers/media/isdbt/fc8100/fc8100_regs.h337
-rw-r--r--drivers/media/isdbt/fc8100/fc8100_tun.c351
-rw-r--r--drivers/media/isdbt/fc8100/fc8100_tun.h29
-rw-r--r--drivers/media/isdbt/fc8100/fci_hal.c199
-rw-r--r--drivers/media/isdbt/fc8100/fci_hal.h41
-rw-r--r--drivers/media/isdbt/fc8100/fci_i2c.c42
-rw-r--r--drivers/media/isdbt/fc8100/fci_i2c.h31
-rw-r--r--drivers/media/isdbt/fc8100/fci_oal.c34
-rw-r--r--drivers/media/isdbt/fc8100/fci_oal.h27
-rw-r--r--drivers/media/isdbt/fc8100/fci_tun.c162
-rw-r--r--drivers/media/isdbt/fc8100/fci_tun.h56
-rw-r--r--drivers/media/isdbt/fc8100/fci_types.h46
-rw-r--r--drivers/media/isdbt/fc8150/Makefile18
-rw-r--r--drivers/media/isdbt/fc8150/bbm.c287
-rw-r--r--drivers/media/isdbt/fc8150/bbm.h60
-rw-r--r--drivers/media/isdbt/fc8150/fc8150.c525
-rw-r--r--drivers/media/isdbt/fc8150/fc8150.h120
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_bb.c789
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_bb.h22
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_hpi.c197
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_hpi.h33
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_i2c.c237
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_i2c.h33
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_isr.c47
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_isr.h22
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_ppi.c212
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_ppi.h33
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_regs.h136
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_spi.c293
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_spi.h33
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_spib.c210
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_spib.h34
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_tun.c393
-rw-r--r--drivers/media/isdbt/fc8150/fc8150_tun.h26
-rw-r--r--drivers/media/isdbt/fc8150/fc8151_tun.c413
-rw-r--r--drivers/media/isdbt/fc8150/fc8151_tun.h26
-rw-r--r--drivers/media/isdbt/fc8150/fci_bypass.c39
-rw-r--r--drivers/media/isdbt/fc8150/fci_bypass.h34
-rw-r--r--drivers/media/isdbt/fc8150/fci_hal.c245
-rw-r--r--drivers/media/isdbt/fc8150/fci_hal.h37
-rw-r--r--drivers/media/isdbt/fc8150/fci_i2c.c226
-rw-r--r--drivers/media/isdbt/fc8150/fci_i2c.h29
-rw-r--r--drivers/media/isdbt/fc8150/fci_oal.c50
-rw-r--r--drivers/media/isdbt/fc8150/fci_oal.h28
-rw-r--r--drivers/media/isdbt/fc8150/fci_ringbuffer.c271
-rw-r--r--drivers/media/isdbt/fc8150/fci_ringbuffer.h89
-rw-r--r--drivers/media/isdbt/fc8150/fci_tun.c204
-rw-r--r--drivers/media/isdbt/fc8150/fci_tun.h46
-rw-r--r--drivers/media/isdbt/fc8150/fci_types.h61
-rw-r--r--drivers/media/isdbt/isdbt.c598
-rw-r--r--drivers/media/isdbt/isdbt.h26
-rw-r--r--drivers/media/tdmb/Kconfig89
-rw-r--r--drivers/media/tdmb/Makefile41
-rw-r--r--drivers/media/tdmb/fc8050/Makefile15
-rw-r--r--drivers/media/tdmb/fc8050/bbm.c364
-rw-r--r--drivers/media/tdmb/fc8050/bbm.h102
-rw-r--r--drivers/media/tdmb/fc8050/dmbdrv_wrap_fc8050.c607
-rw-r--r--drivers/media/tdmb/fc8050/dmbdrv_wrap_fc8050.h73
-rw-r--r--drivers/media/tdmb/fc8050/fc8050_bb.c607
-rw-r--r--drivers/media/tdmb/fc8050/fc8050_bb.h63
-rw-r--r--drivers/media/tdmb/fc8050/fc8050_i2c.c171
-rw-r--r--drivers/media/tdmb/fc8050/fc8050_i2c.h50
-rw-r--r--drivers/media/tdmb/fc8050/fc8050_isr.c116
-rw-r--r--drivers/media/tdmb/fc8050/fc8050_isr.h54
-rw-r--r--drivers/media/tdmb/fc8050/fc8050_regs.h414
-rw-r--r--drivers/media/tdmb/fc8050/fc8050_spi.c324
-rw-r--r--drivers/media/tdmb/fc8050/fc8050_spi.h51
-rw-r--r--drivers/media/tdmb/fc8050/fc8050_tun.c255
-rw-r--r--drivers/media/tdmb/fc8050/fc8050_tun.h43
-rw-r--r--drivers/media/tdmb/fc8050/fci_hal.c231
-rw-r--r--drivers/media/tdmb/fc8050/fci_hal.h57
-rw-r--r--drivers/media/tdmb/fc8050/fci_i2c.c263
-rw-r--r--drivers/media/tdmb/fc8050/fci_i2c.h47
-rw-r--r--drivers/media/tdmb/fc8050/fci_oal.c39
-rw-r--r--drivers/media/tdmb/fc8050/fci_oal.h42
-rw-r--r--drivers/media/tdmb/fc8050/fci_tun.c166
-rw-r--r--drivers/media/tdmb/fc8050/fci_tun.h65
-rw-r--r--drivers/media/tdmb/fc8050/fci_types.h77
-rw-r--r--drivers/media/tdmb/fc8050/fic.c80
-rw-r--r--drivers/media/tdmb/fc8050/fic.h42
-rw-r--r--drivers/media/tdmb/fc8050/ficdecoder.c1654
-rw-r--r--drivers/media/tdmb/fc8050/ficdecoder.h183
-rw-r--r--drivers/media/tdmb/mtv318/Makefile7
-rw-r--r--drivers/media/tdmb/mtv318/raontv.c117
-rw-r--r--drivers/media/tdmb/mtv318/raontv.h274
-rw-r--r--drivers/media/tdmb/mtv318/raontv_ficdec.c2710
-rw-r--r--drivers/media/tdmb/mtv318/raontv_ficdec.h39
-rw-r--r--drivers/media/tdmb/mtv318/raontv_ficdec_internal.h699
-rw-r--r--drivers/media/tdmb/mtv318/raontv_internal.h796
-rw-r--r--drivers/media/tdmb/mtv318/raontv_port.c169
-rw-r--r--drivers/media/tdmb/mtv318/raontv_port.h432
-rw-r--r--drivers/media/tdmb/mtv318/raontv_rf.c1532
-rw-r--r--drivers/media/tdmb/mtv318/raontv_rf.h46
-rw-r--r--drivers/media/tdmb/mtv318/raontv_rf_adc_data.h1037
-rw-r--r--drivers/media/tdmb/mtv318/raontv_rf_pll_data_tdmb.h412
-rw-r--r--drivers/media/tdmb/mtv318/raontv_tdmb.c1987
-rw-r--r--drivers/media/tdmb/t3900/INC_FICDEC.c1535
-rw-r--r--drivers/media/tdmb/t3900/INC_INCLUDES.h1060
-rw-r--r--drivers/media/tdmb/t3900/INC_INTERFACE.c530
-rw-r--r--drivers/media/tdmb/t3900/INC_PROCESS.c1893
-rw-r--r--drivers/media/tdmb/t3900/INC_RF_CTRL500.c2544
-rw-r--r--drivers/media/tdmb/t3900/Makefile6
-rw-r--r--drivers/media/tdmb/tcc3170/Makefile8
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcbd_api_common.h365
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcbd_diagnosis/tcbd_diagnosis.h52
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcbd_drv_io.h95
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcbd_drv_ip.h78
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcbd_drv_register.h558
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcbd_drv_rf.h31
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcbd_error.h53
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcbd_feature.h125
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcbd_hal.h35
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcbd_stream_parser/tcbd_stream_parser.h45
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcc317x_boot_tdmb.h1011
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcc_fic_decoder/tcc_fic_decoder.h123
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcc_fic_decoder/tcc_fic_fig.h228
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_debug.h75
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_os.h62
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_queue.h66
-rw-r--r--drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_types.h50
-rw-r--r--drivers/media/tdmb/tcc3170/src/Makefile19
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcbd_api_common.c648
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcbd_diagnosis/Makefile5
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcbd_diagnosis/tcbd_diagnosis.c386
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcbd_drv_dual.c54
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcbd_drv_io.c516
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcbd_drv_ip.c808
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcbd_drv_peri.c267
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcbd_drv_rf.c254
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcbd_hal.c140
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcbd_stream_parser/Makefile6
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcbd_stream_parser/tcbd_stream_parser.c525
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/Makefile7
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/tcc_fic_decoder.c540
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/tcc_fic_fig0.c911
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/tcc_fic_fig1.c254
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcpal_linux/Makefile15
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_debug.c106
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_io_cspi.c492
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_io_i2c.c309
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_irq_handler.c246
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_linux.c138
-rw-r--r--drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_queue.c201
-rw-r--r--drivers/media/tdmb/tdmb.c867
-rw-r--r--drivers/media/tdmb/tdmb.h181
-rw-r--r--drivers/media/tdmb/tdmb_data.c463
-rw-r--r--drivers/media/tdmb/tdmb_ebi.c36
-rw-r--r--drivers/media/tdmb/tdmb_port_fc8050.c220
-rw-r--r--drivers/media/tdmb/tdmb_port_mtv318.c257
-rw-r--r--drivers/media/tdmb/tdmb_port_t3900.c291
-rw-r--r--drivers/media/tdmb/tdmb_port_tcc3170.c478
-rw-r--r--drivers/media/tdmb/tdmb_spi.c72
-rw-r--r--drivers/misc/Kconfig29
-rw-r--r--drivers/misc/Makefile12
-rw-r--r--drivers/misc/c2c/Kconfig24
-rw-r--r--drivers/misc/c2c/Makefile5
-rw-r--r--drivers/misc/c2c/samsung-c2c.c712
-rw-r--r--drivers/misc/c2c/samsung-c2c.h334
-rw-r--r--drivers/misc/inv_mpu/Kconfig24
-rw-r--r--drivers/misc/inv_mpu/Makefile22
-rw-r--r--drivers/misc/inv_mpu/README104
-rw-r--r--drivers/misc/inv_mpu/accel/Kconfig133
-rw-r--r--drivers/misc/inv_mpu/accel/Makefile38
-rw-r--r--drivers/misc/inv_mpu/accel/adxl34x.c728
-rw-r--r--drivers/misc/inv_mpu/accel/bma150.c776
-rw-r--r--drivers/misc/inv_mpu/accel/bma222.c654
-rw-r--r--drivers/misc/inv_mpu/accel/bma250.c787
-rw-r--r--drivers/misc/inv_mpu/accel/cma3000.c222
-rw-r--r--drivers/misc/inv_mpu/accel/kxsd9.c264
-rw-r--r--drivers/misc/inv_mpu/accel/kxtf9.c841
-rw-r--r--drivers/misc/inv_mpu/accel/lis331.c745
-rw-r--r--drivers/misc/inv_mpu/accel/lis3dh.c728
-rw-r--r--drivers/misc/inv_mpu/accel/lsm303dlx_a.c881
-rw-r--r--drivers/misc/inv_mpu/accel/mma8450.c804
-rw-r--r--drivers/misc/inv_mpu/accel/mma845x.c713
-rw-r--r--drivers/misc/inv_mpu/accel/mpu6050.c732
-rw-r--r--drivers/misc/inv_mpu/accel/mpu6050.h28
-rw-r--r--drivers/misc/inv_mpu/compass/Kconfig94
-rw-r--r--drivers/misc/inv_mpu/compass/Makefile30
-rw-r--r--drivers/misc/inv_mpu/compass/ak8972.c499
-rw-r--r--drivers/misc/inv_mpu/compass/ak8975.c504
-rw-r--r--drivers/misc/inv_mpu/compass/hscdtd002b.c294
-rw-r--r--drivers/misc/inv_mpu/compass/hscdtd004a.c318
-rw-r--r--drivers/misc/inv_mpu/compass/lsm303dlx_m.c395
-rw-r--r--drivers/misc/inv_mpu/compass/mmc314x.c313
-rw-r--r--drivers/misc/inv_mpu/compass/yas529-kernel.c611
-rw-r--r--drivers/misc/inv_mpu/compass/yas530.c596
-rw-r--r--drivers/misc/inv_mpu/compass/yas530_ext.c288
-rw-r--r--drivers/misc/inv_mpu/compass/yas530_ext.h28
-rw-r--r--drivers/misc/inv_mpu/log.h287
-rw-r--r--drivers/misc/inv_mpu/mldl_cfg.c1913
-rw-r--r--drivers/misc/inv_mpu/mldl_cfg.h381
-rw-r--r--drivers/misc/inv_mpu/mldl_print_cfg.c138
-rw-r--r--drivers/misc/inv_mpu/mldl_print_cfg.h38
-rw-r--r--drivers/misc/inv_mpu/mlsl-kernel.c420
-rw-r--r--drivers/misc/inv_mpu/mlsl.h193
-rw-r--r--drivers/misc/inv_mpu/mltypes.h234
-rw-r--r--drivers/misc/inv_mpu/mpu-dev.c2348
-rw-r--r--drivers/misc/inv_mpu/mpu-dev.h42
-rw-r--r--drivers/misc/inv_mpu/mpu6050b1.h437
-rw-r--r--drivers/misc/inv_mpu/mpuirq.c261
-rw-r--r--drivers/misc/inv_mpu/mpuirq.h36
-rw-r--r--drivers/misc/inv_mpu/pressure/Kconfig20
-rw-r--r--drivers/misc/inv_mpu/pressure/Makefile8
-rw-r--r--drivers/misc/inv_mpu/pressure/bma085.c367
-rw-r--r--drivers/misc/inv_mpu/sensors_core.c100
-rw-r--r--drivers/misc/inv_mpu/slaveirq.c266
-rw-r--r--drivers/misc/inv_mpu/slaveirq.h36
-rw-r--r--drivers/misc/inv_mpu/timerirq.c296
-rw-r--r--drivers/misc/inv_mpu/timerirq.h30
-rw-r--r--drivers/misc/modem_if_na/Kconfig30
-rw-r--r--drivers/misc/modem_if_na/Makefile8
-rw-r--r--drivers/misc/modem_if_na/lte_modem_bootloader.c320
-rw-r--r--drivers/misc/modem_if_na/modem.c221
-rw-r--r--drivers/misc/modem_if_na/modem_io_device.c965
-rw-r--r--drivers/misc/modem_if_na/modem_link_device_dpram.c1504
-rw-r--r--drivers/misc/modem_if_na/modem_link_device_dpram.h165
-rw-r--r--drivers/misc/modem_if_na/modem_link_device_usb.c1031
-rw-r--r--drivers/misc/modem_if_na/modem_link_device_usb.h148
-rw-r--r--drivers/misc/modem_if_na/modem_link_pm_usb.c370
-rw-r--r--drivers/misc/modem_if_na/modem_link_pm_usb.h88
-rw-r--r--drivers/misc/modem_if_na/modem_modemctl_device_cbp71.c269
-rw-r--r--drivers/misc/modem_if_na/modem_modemctl_device_cmc220.c254
-rw-r--r--drivers/misc/modem_if_na/modem_net_flowcontrol_device.c115
-rw-r--r--drivers/misc/modem_if_na/modem_prj.h239
-rw-r--r--drivers/misc/modem_if_na/modem_utils.c391
-rw-r--r--drivers/misc/modem_if_na/modem_utils.h158
-rw-r--r--drivers/misc/modem_if_na/modem_variation.h124
-rw-r--r--drivers/misc/modem_if_u1/Kconfig104
-rw-r--r--drivers/misc/modem_if_u1/Makefile26
-rw-r--r--drivers/misc/modem_if_u1/lte_modem_bootloader.c313
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_c2c.c61
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_c2c.h216
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_dpram.c2657
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_dpram.h253
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_dpram_ext_op.c1309
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_hsic.c1604
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_hsic.h155
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_memory.h552
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_mipi.c1418
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_mipi.h158
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_pld.c1627
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_pld.h231
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_pld_ext_op.c556
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_spi.c1787
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_spi.h276
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_usb.c1028
-rw-r--r--drivers/misc/modem_if_u1/modem_link_device_usb.h132
-rw-r--r--drivers/misc/modem_if_u1/modem_link_pm_usb.c417
-rw-r--r--drivers/misc/modem_if_u1/modem_link_pm_usb.h65
-rw-r--r--drivers/misc/modem_if_u1/modem_modemctl_device_cbp71.c233
-rw-r--r--drivers/misc/modem_if_u1/modem_modemctl_device_cbp72.c273
-rw-r--r--drivers/misc/modem_if_u1/modem_modemctl_device_cmc221.c317
-rw-r--r--drivers/misc/modem_if_u1/modem_modemctl_device_esc6270.c343
-rw-r--r--drivers/misc/modem_if_u1/modem_modemctl_device_mdm6600.c790
-rw-r--r--drivers/misc/modem_if_u1/modem_modemctl_device_sprd8803.c262
-rw-r--r--drivers/misc/modem_if_u1/modem_modemctl_device_xmm6260.c303
-rw-r--r--drivers/misc/modem_if_u1/modem_modemctl_device_xmm6262.c344
-rw-r--r--drivers/misc/modem_if_u1/modem_net_flowcontrol_device.c116
-rw-r--r--drivers/misc/modem_if_u1/modem_prj.h773
-rw-r--r--drivers/misc/modem_if_u1/modem_sim_slot_switch.c108
-rw-r--r--drivers/misc/modem_if_u1/modem_utils.c1237
-rw-r--r--drivers/misc/modem_if_u1/modem_utils.h315
-rw-r--r--drivers/misc/modem_if_u1/modem_variation.h175
-rw-r--r--drivers/misc/modem_if_u1/sipc4_io_device.c1710
-rw-r--r--drivers/misc/modem_if_u1/sipc4_modem.c366
-rw-r--r--drivers/misc/modem_if_u1/sipc5_io_device.c1608
-rw-r--r--drivers/misc/modem_if_u1/sipc5_modem.c385
-rwxr-xr-xdrivers/misc/mpu3050/Kconfig147
-rwxr-xr-xdrivers/misc/mpu3050/Makefile145
-rwxr-xr-xdrivers/misc/mpu3050/README250
-rwxr-xr-xdrivers/misc/mpu3050/accel/adxl346.c163
-rwxr-xr-xdrivers/misc/mpu3050/accel/bma150.c149
-rwxr-xr-xdrivers/misc/mpu3050/accel/bma222.c142
-rwxr-xr-xdrivers/misc/mpu3050/accel/cma3000.c109
-rwxr-xr-xdrivers/misc/mpu3050/accel/kxsd9.c145
-rw-r--r--drivers/misc/mpu3050/accel/kxtf9.c641
-rwxr-xr-xdrivers/misc/mpu3050/accel/kxud9.c145
-rwxr-xr-xdrivers/misc/mpu3050/accel/lis331.c617
-rwxr-xr-xdrivers/misc/mpu3050/accel/lis3dh.c625
-rwxr-xr-xdrivers/misc/mpu3050/accel/lsm303a.c178
-rwxr-xr-xdrivers/misc/mpu3050/accel/mantis.c306
-rwxr-xr-xdrivers/misc/mpu3050/accel/mma8450.c156
-rwxr-xr-xdrivers/misc/mpu3050/accel/mma845x.c158
-rwxr-xr-xdrivers/misc/mpu3050/compass/ami304.c164
-rwxr-xr-xdrivers/misc/mpu3050/compass/ami30x.c167
-rwxr-xr-xdrivers/misc/mpu3050/compass/hmc5883.c254
-rwxr-xr-xdrivers/misc/mpu3050/compass/hscdtd002b.c163
-rwxr-xr-xdrivers/misc/mpu3050/compass/hscdtd004a.c162
-rwxr-xr-xdrivers/misc/mpu3050/compass/lsm303m.c244
-rwxr-xr-xdrivers/misc/mpu3050/compass/mmc314x.c184
-rwxr-xr-xdrivers/misc/mpu3050/compass/mmc328x.c220
-rwxr-xr-xdrivers/misc/mpu3050/compass/mpuak8975.c188
-rwxr-xr-xdrivers/misc/mpu3050/compass/yas529-kernel.c477
-rwxr-xr-xdrivers/misc/mpu3050/log.h290
-rwxr-xr-xdrivers/misc/mpu3050/mldl_cfg.c1742
-rwxr-xr-xdrivers/misc/mpu3050/mldl_cfg.h209
-rwxr-xr-xdrivers/misc/mpu3050/mlos-kernel.c93
-rwxr-xr-xdrivers/misc/mpu3050/mlos.h73
-rwxr-xr-xdrivers/misc/mpu3050/mlsl-kernel.c331
-rwxr-xr-xdrivers/misc/mpu3050/mlsl.h110
-rwxr-xr-xdrivers/misc/mpu3050/mltypes.h227
-rwxr-xr-xdrivers/misc/mpu3050/mpu-accel.c679
-rwxr-xr-xdrivers/misc/mpu3050/mpu-accel.h8
-rwxr-xr-xdrivers/misc/mpu3050/mpu-dev.c2280
-rwxr-xr-xdrivers/misc/mpu3050/mpu-i2c.c196
-rwxr-xr-xdrivers/misc/mpu3050/mpu-i2c.h58
-rwxr-xr-xdrivers/misc/mpu3050/mpuirq.c448
-rwxr-xr-xdrivers/misc/mpu3050/mpuirq.h48
-rwxr-xr-xdrivers/misc/mpu3050/sensors_core.c100
-rwxr-xr-xdrivers/misc/mpu3050/slaveirq.c270
-rwxr-xr-xdrivers/misc/mpu3050/slaveirq.h46
-rwxr-xr-xdrivers/misc/mpu3050/timerirq.c294
-rwxr-xr-xdrivers/misc/mpu3050/timerirq.h28
-rw-r--r--drivers/misc/tzic.c241
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/bmi.c548
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/bmi.h247
-rw-r--r--drivers/net/wireless/ath/ath6kl/btc.h76
-rw-r--r--drivers/net/wireless/ath/ath6kl/c210.c152
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/cfg80211.c3623
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/cfg80211.h60
-rw-r--r--drivers/net/wireless/ath/ath6kl/cfg80211_btcoex.c205
-rw-r--r--drivers/net/wireless/ath/ath6kl/cfg80211_btcoex.h30
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/common.h87
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/core.h932
-rw-r--r--drivers/net/wireless/ath/ath6kl/dbglog.c168
-rw-r--r--drivers/net/wireless/ath/ath6kl/dbglog.h24
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/debug.c2022
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/debug.h161
-rw-r--r--drivers/net/wireless/ath/ath6kl/debugfs_pri.c246
-rw-r--r--drivers/net/wireless/ath/ath6kl/debugfs_pri.h43
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/hif-ops.h157
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/hif.c791
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/hif.h315
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/htc.c2888
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/htc.h621
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/init.c2330
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/main.c1324
-rw-r--r--drivers/net/wireless/ath/ath6kl/msm.c425
-rw-r--r--drivers/net/wireless/ath/ath6kl/pm.c258
-rw-r--r--drivers/net/wireless/ath/ath6kl/pm.h24
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/sdio.c1534
-rw-r--r--drivers/net/wireless/ath/ath6kl/softmac.c265
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/target.h360
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/testmode.c124
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/testmode.h37
-rw-r--r--drivers/net/wireless/ath/ath6kl/txrx.c1853
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/usb.c433
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/wmi.c3947
-rwxr-xr-xdrivers/net/wireless/ath/ath6kl/wmi.h2602
-rw-r--r--drivers/net/wireless/ath/ath6kl/wmi_btcoex.c627
-rw-r--r--drivers/net/wireless/ath/ath6kl/wmi_btcoex.h125
-rw-r--r--drivers/net/wireless/ath/ath6kl/wmiconfig.c88
-rw-r--r--drivers/net/wireless/ath/ath6kl/wmiconfig.h25
-rw-r--r--drivers/video/Kconfig1
-rw-r--r--drivers/video/Makefile10
-rw-r--r--drivers/video/samsung_duallcd/Kconfig12
-rw-r--r--drivers/video/samsung_duallcd/Makefile51
-rw-r--r--drivers/video/samsung_duallcd/aid_s6e8aa0.h239
-rw-r--r--drivers/video/samsung_duallcd/boot_progressbar.c266
-rw-r--r--drivers/video/samsung_duallcd/boot_progressbar.h13
-rw-r--r--drivers/video/samsung_duallcd/dsim2/Makefile5
-rw-r--r--drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi.c803
-rw-r--r--drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_common.c884
-rw-r--r--drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_common.h45
-rw-r--r--drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_lowlevel.c627
-rw-r--r--drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_lowlevel.h111
-rw-r--r--drivers/video/samsung_duallcd/dsim2_tmp/Makefile5
-rw-r--r--drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi.c800
-rw-r--r--drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_common.c940
-rw-r--r--drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_common.h49
-rw-r--r--drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_lowlevel.c635
-rw-r--r--drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_lowlevel.h111
-rw-r--r--drivers/video/samsung_duallcd/ea8061_gamma_l.h311
-rw-r--r--drivers/video/samsung_duallcd/ea8061_param.h348
-rw-r--r--drivers/video/samsung_duallcd/extension/Makefile6
-rw-r--r--drivers/video/samsung_duallcd/extension/cmc623.h725
-rw-r--r--drivers/video/samsung_duallcd/extension/mdnie.c729
-rw-r--r--drivers/video/samsung_duallcd/extension/mdnie.h134
-rw-r--r--drivers/video/samsung_duallcd/extension/regs-mdnie.h166
-rw-r--r--drivers/video/samsung_duallcd/extension/regs_fimd_lite.h396
-rw-r--r--drivers/video/samsung_duallcd/extension/s5p_fimd_ext.c209
-rw-r--r--drivers/video/samsung_duallcd/extension/s5p_fimd_ext.h30
-rw-r--r--drivers/video/samsung_duallcd/extension/s5p_fimd_lite.c502
-rw-r--r--drivers/video/samsung_duallcd/extension/s5p_fimd_lite.h37
-rw-r--r--drivers/video/samsung_duallcd/lcdfreq.c492
-rw-r--r--drivers/video/samsung_duallcd/ld9040.c1234
-rw-r--r--drivers/video/samsung_duallcd/ld9042_panel.h1448
-rw-r--r--drivers/video/samsung_duallcd/ld9042_volt_tbl.h1479
-rw-r--r--drivers/video/samsung_duallcd/logo_rgb24.h24004
-rw-r--r--drivers/video/samsung_duallcd/mdnie.c916
-rw-r--r--drivers/video/samsung_duallcd/mdnie.h128
-rw-r--r--drivers/video/samsung_duallcd/mdnie_color_tone.h148
-rw-r--r--drivers/video/samsung_duallcd/mdnie_color_tone_4210.h264
-rw-r--r--drivers/video/samsung_duallcd/mdnie_dmb.h382
-rw-r--r--drivers/video/samsung_duallcd/mdnie_table.h217
-rw-r--r--drivers/video/samsung_duallcd/mdnie_table_4412.h307
-rw-r--r--drivers/video/samsung_duallcd/mdnie_table_c1m0.h775
-rw-r--r--drivers/video/samsung_duallcd/mdnie_table_gc1.h611
-rw-r--r--drivers/video/samsung_duallcd/mdnie_table_p2_boe.h1694
-rw-r--r--drivers/video/samsung_duallcd/mdnie_table_p2_hydis.h1689
-rw-r--r--drivers/video/samsung_duallcd/mdnie_table_p2_sec.h1689
-rw-r--r--drivers/video/samsung_duallcd/mdnie_table_p4.h1765
-rw-r--r--drivers/video/samsung_duallcd/mdnie_table_p4note.h1238
-rw-r--r--drivers/video/samsung_duallcd/mdnie_table_p8.h1092
-rw-r--r--drivers/video/samsung_duallcd/mdnie_table_q1.h1082
-rw-r--r--drivers/video/samsung_duallcd/mdnie_table_u1.h1055
-rw-r--r--drivers/video/samsung_duallcd/mdnie_tunning.c131
-rw-r--r--drivers/video/samsung_duallcd/nt35560.c628
-rw-r--r--drivers/video/samsung_duallcd/nt35560.h104
-rw-r--r--drivers/video/samsung_duallcd/s3cfb.h397
-rw-r--r--drivers/video/samsung_duallcd/s3cfb2.c1232
-rw-r--r--drivers/video/samsung_duallcd/s3cfb2.h299
-rw-r--r--drivers/video/samsung_duallcd/s3cfb2_fimd4x.c558
-rw-r--r--drivers/video/samsung_duallcd/s3cfb2_fimd5x.c562
-rw-r--r--drivers/video/samsung_duallcd/s3cfb2_fimd6x.c562
-rw-r--r--drivers/video/samsung_duallcd/s3cfb2_lte480wv.c46
-rw-r--r--drivers/video/samsung_duallcd/s3cfb2_tl2796.c46
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_ams369fg06.c536
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_dummymipilcd.c237
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_ea8061.c1497
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_fimd6x.c998
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_ht101hd1.c45
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_ielcd.c164
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_ielcd.h32
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_lms501kf03.c415
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_lte480wv.c45
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_main.c1099
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_mdnie.c205
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_mdnie.h337
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_ops.c1551
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_s6c1372.c214
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_s6e39a0.c1095
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_s6e63m0.c1205
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_s6e8aa0.c1534
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_s6e8ab0.c985
-rw-r--r--drivers/video/samsung_duallcd/s3cfb_wa101s.c46
-rw-r--r--drivers/video/samsung_duallcd/s5p-dsim.c1597
-rw-r--r--drivers/video/samsung_duallcd/s5p-dsim.h90
-rw-r--r--drivers/video/samsung_duallcd/s5p_dsim_lowlevel.c641
-rw-r--r--drivers/video/samsung_duallcd/s5p_dsim_lowlevel.h76
-rw-r--r--drivers/video/samsung_duallcd/s6d6aa1.c664
-rw-r--r--drivers/video/samsung_duallcd/s6dr171.c571
-rw-r--r--drivers/video/samsung_duallcd/s6dr171_param.h279
-rw-r--r--drivers/video/samsung_duallcd/s6e63m0_gamma_grande.h128
-rw-r--r--drivers/video/samsung_duallcd/s6e63m0_gamma_l.h257
-rw-r--r--drivers/video/samsung_duallcd/s6e63m0_param.h188
-rw-r--r--drivers/video/samsung_duallcd/s6e63m0_volt_tbl.h620
-rw-r--r--drivers/video/samsung_duallcd/s6e8aa0_gamma_c1m0.h235
-rw-r--r--drivers/video/samsung_duallcd/s6e8aa0_gamma_l.h311
-rw-r--r--drivers/video/samsung_duallcd/s6e8aa0_gamma_midas.h782
-rw-r--r--drivers/video/samsung_duallcd/s6e8aa0_gamma_q1.h189
-rw-r--r--drivers/video/samsung_duallcd/s6e8aa0_param.h212
-rw-r--r--drivers/video/samsung_duallcd/s6e8aa0_volt_tbl.h2328
-rw-r--r--drivers/video/samsung_duallcd/s6e8aa1.c599
-rw-r--r--drivers/video/samsung_duallcd/s6e8aa1_param.h74
-rw-r--r--drivers/video/samsung_duallcd/s6e8ab0_gamma.h210
-rw-r--r--drivers/video/samsung_duallcd/s6e8ab0_param.h201
-rw-r--r--drivers/video/samsung_duallcd/s6e8ab0_volt_tbl.h550
-rw-r--r--drivers/video/samsung_duallcd/smart_dimming.c989
-rw-r--r--drivers/video/samsung_duallcd/smart_dimming.h126
-rw-r--r--drivers/video/samsung_duallcd/smart_dimming_ld9042.c749
-rw-r--r--drivers/video/samsung_duallcd/smart_dimming_ld9042.h106
-rw-r--r--drivers/video/samsung_duallcd/smart_dimming_s6e63m0.c630
-rw-r--r--drivers/video/samsung_duallcd/smart_dimming_s6e63m0.h114
-rw-r--r--drivers/video/samsung_duallcd/smart_dimming_s6e8ab0.c703
-rw-r--r--drivers/video/samsung_duallcd/smart_dimming_s6e8ab0.h113
-rw-r--r--drivers/video/samsung_duallcd/smart_mtp_2p2_gamma.h1051
-rw-r--r--drivers/video/samsung_duallcd/smart_mtp_s6e63m0.c843
-rw-r--r--drivers/video/samsung_duallcd/smart_mtp_s6e63m0.h125
-rw-r--r--drivers/zorro/.gitignore2
496 files changed, 2107 insertions, 229293 deletions
diff --git a/arch/arm/configs/cyanogenmod_i9300_defconfig b/arch/arm/configs/cyanogenmod_i9300_defconfig
index de2cf0e..b3d2b95 100644
--- a/arch/arm/configs/cyanogenmod_i9300_defconfig
+++ b/arch/arm/configs/cyanogenmod_i9300_defconfig
@@ -149,7 +149,7 @@ CONFIG_HAVE_OPROFILE=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_USE_GENERIC_SMP_HELPERS=y
-CONFIG_HAVE_DMA_CONTIGUOUS=n
+CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_DMA_API_DEBUG=y
@@ -340,7 +340,7 @@ CONFIG_S5P_SYSTEM_MMU=y
CONFIG_S5P_SYSTEM_MMU_REFCOUNT=y
# CONFIG_S5P_SYSTEM_MMU_DEBUG is not set
CONFIG_IOVMM=y
-CONFIG_IOMMU_EXYNOS4_API=n
+CONFIG_IOMMU_EXYNOS4_API=y
CONFIG_S3C_DEV_FIMC=y
CONFIG_S5P_DEV_MFC=y
CONFIG_S5P_DEV_TVOUT=y
@@ -1400,8 +1400,8 @@ CONFIG_BCM4334=y
# CONFIG_BCM4335 is not set
# CONFIG_BCM43241 is not set
CONFIG_BROADCOM_WIFI=y
-CONFIG_BCMDHD_FW_PATH="/system/etc/firmware/fw_bcmdhd.bin"
-CONFIG_BCMDHD_NVRAM_PATH="/system/etc/wifi/bcmdhd.cal"
+#CONFIG_BCMDHD_FW_PATH="/system/etc/firmware/fw_bcmdhd.bin"
+#CONFIG_BCMDHD_NVRAM_PATH="/system/etc/wifi/bcmdhd.cal"
CONFIG_BROADCOM_WIFI_RESERVED_MEM=y
CONFIG_WLAN_REGION_CODE=100
# CONFIG_HOSTAP is not set
@@ -2104,7 +2104,7 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
# CONFIG_USB_ZR364XX is not set
# CONFIG_USB_STKWEBCAM is not set
# CONFIG_USB_S2255 is not set
-CONFIG_MALI_400MP_UMP=n
+CONFIG_MALI_400MP_UMP=y
CONFIG_VIDEO_SAMSUNG=y
CONFIG_VIDEO_SAMSUNG_V4L2=y
CONFIG_VIDEO_FIMC=y
@@ -2190,16 +2190,16 @@ CONFIG_SAMSUNG_WORKAROUND_HPD_GLANCE=y
#
# CONFIG_MALI_VER_BEFORE_R3P2 is not set
# CONFIG_DRM is not set
-CONFIG_ION=n
-CONFIG_ION_EXYNOS=n
+CONFIG_ION=y
+CONFIG_ION_EXYNOS=y
CONFIG_ION_EXYNOS_CONTIGHEAP_SIZE=71680
# CONFIG_ION_EXYNOS_CONTIGHEAP_DEBUG is not set
-CONFIG_MALI400=n
-CONFIG_MALI_VER_R3P2=n
+CONFIG_MALI400=y
+CONFIG_MALI_VER_R3P2=y
# CONFIG_MALI400_DEBUG is not set
# CONFIG_MALI400_PROFILING is not set
-CONFIG_MALI_DVFS=n
-CONFIG_MALI400_UMP=n
+CONFIG_MALI_DVFS=y
+CONFIG_MALI400_UMP=y
# CONFIG_MALI_SHARED_INTERRUPTS is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
CONFIG_FB=y
@@ -2907,6 +2907,7 @@ CONFIG_ACCESSORY=n
# CONFIG_EXTCON is not set
# CONFIG_BARCODE_EMUL is not set
# CONFIG_SAMSUNG_PHONE_TTY is not set
+CONFIG_IOMMU_SUPPORT=y
# CONFIG_FELICA is not set
# CONFIG_AUTHENTEC_VPNCLIENT_INTERCEPTOR is not set
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 4cc1613..fa3cad2 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -138,4 +138,6 @@ source "drivers/samsung/Kconfig"
source "drivers/sensor/Kconfig"
+source "drivers/iommu/Kconfig"
+
endmenu
diff --git a/drivers/Makefile b/drivers/Makefile
index c63d45c..a2a5eb4 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -127,3 +127,5 @@ obj-$(CONFIG_VIBETONZ) += motor/
obj-$(CONFIG_SENSORS_CORE) += sensor/
obj-$(CONFIG_FM_RADIO) += samsung/
+
+obj-$(CONFIG_IOMMU_SUPPORT) += iommu/
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
new file mode 100644
index 0000000..9eccee4
--- /dev/null
+++ b/drivers/iommu/Kconfig
@@ -0,0 +1,161 @@
+# IOMMU_API always gets selected by whoever wants it.
+config IOMMU_API
+ bool
+
+menuconfig IOMMU_SUPPORT
+ bool "IOMMU Hardware Support"
+ default y
+ ---help---
+ Say Y here if you want to compile device drivers for IO Memory
+ Management Units into the kernel. These devices usually allow to
+ remap DMA requests and/or remap interrupts from other devices on the
+ system.
+
+if IOMMU_SUPPORT
+
+# MSM IOMMU support
+config MSM_IOMMU
+ bool "MSM IOMMU Support"
+ depends on ARCH_MSM8X60 || ARCH_MSM8960
+ select IOMMU_API
+ help
+ Support for the IOMMUs found on certain Qualcomm SOCs.
+ These IOMMUs allow virtualization of the address space used by most
+ cores within the multimedia subsystem.
+
+ If unsure, say N here.
+
+config IOMMU_PGTABLES_L2
+ def_bool y
+ depends on MSM_IOMMU && MMU && SMP && CPU_DCACHE_DISABLE=n
+
+# AMD IOMMU support
+config AMD_IOMMU
+ bool "AMD IOMMU support"
+ select SWIOTLB
+ select PCI_MSI
+ select PCI_ATS
+ select PCI_PRI
+ select PCI_PASID
+ select IOMMU_API
+ depends on X86_64 && PCI && ACPI
+ ---help---
+ With this option you can enable support for AMD IOMMU hardware in
+ your system. An IOMMU is a hardware component which provides
+ remapping of DMA memory accesses from devices. With an AMD IOMMU you
+ can isolate the the DMA memory of different devices and protect the
+ system from misbehaving device drivers or hardware.
+
+ You can find out if your system has an AMD IOMMU if you look into
+ your BIOS for an option to enable it or if you have an IVRS ACPI
+ table.
+
+config AMD_IOMMU_STATS
+ bool "Export AMD IOMMU statistics to debugfs"
+ depends on AMD_IOMMU
+ select DEBUG_FS
+ ---help---
+ This option enables code in the AMD IOMMU driver to collect various
+ statistics about whats happening in the driver and exports that
+ information to userspace via debugfs.
+ If unsure, say N.
+
+config AMD_IOMMU_V2
+ tristate "AMD IOMMU Version 2 driver (EXPERIMENTAL)"
+ depends on AMD_IOMMU && PROFILING && EXPERIMENTAL
+ select MMU_NOTIFIER
+ ---help---
+ This option enables support for the AMD IOMMUv2 features of the IOMMU
+ hardware. Select this option if you want to use devices that support
+ the the PCI PRI and PASID interface.
+
+# Intel IOMMU support
+config DMAR_TABLE
+ bool
+
+config INTEL_IOMMU
+ bool "Support for Intel IOMMU using DMA Remapping Devices"
+ depends on PCI_MSI && ACPI && (X86 || IA64_GENERIC)
+ select IOMMU_API
+ select DMAR_TABLE
+ help
+ DMA remapping (DMAR) devices support enables independent address
+ translations for Direct Memory Access (DMA) from devices.
+ These DMA remapping devices are reported via ACPI tables
+ and include PCI device scope covered by these DMA
+ remapping devices.
+
+config INTEL_IOMMU_DEFAULT_ON
+ def_bool y
+ prompt "Enable Intel DMA Remapping Devices by default"
+ depends on INTEL_IOMMU
+ help
+ Selecting this option will enable a DMAR device at boot time if
+ one is found. If this option is not selected, DMAR support can
+ be enabled by passing intel_iommu=on to the kernel.
+
+config INTEL_IOMMU_BROKEN_GFX_WA
+ bool "Workaround broken graphics drivers (going away soon)"
+ depends on INTEL_IOMMU && BROKEN && X86
+ ---help---
+ Current Graphics drivers tend to use physical address
+ for DMA and avoid using DMA APIs. Setting this config
+ option permits the IOMMU driver to set a unity map for
+ all the OS-visible memory. Hence the driver can continue
+ to use physical addresses for DMA, at least until this
+ option is removed in the 2.6.32 kernel.
+
+config INTEL_IOMMU_FLOPPY_WA
+ def_bool y
+ depends on INTEL_IOMMU && X86
+ ---help---
+ Floppy disk drivers are known to bypass DMA API calls
+ thereby failing to work when IOMMU is enabled. This
+ workaround will setup a 1:1 mapping for the first
+ 16MiB to make floppy (an ISA device) work.
+
+config IRQ_REMAP
+ bool "Support for Interrupt Remapping (EXPERIMENTAL)"
+ depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL
+ select DMAR_TABLE
+ ---help---
+ Supports Interrupt remapping for IO-APIC and MSI devices.
+ To use x2apic mode in the CPU's which support x2APIC enhancements or
+ to support platforms with CPU's having > 8 bit APIC ID, say Y.
+
+config EXYNOS_IOMMU
+ bool "Exynos IOMMU Support"
+ depends on ARCH_EXYNOS && EXYNOS_DEV_SYSMMU
+ select IOMMU_API
+ help
+ Support for the IOMMU(System MMU) of Samsung Exynos application
+ processor family. This enables H/W multimedia accellerators to see
+ non-linear physical memory chunks as a linear memory in their
+ address spaces
+
+ If unsure, say N here.
+config EXYNOS_IOVMM
+ bool "IO Virtual Memory Manager for Exynos IOMMUs"
+ select GENERIC_ALLOCATOR
+ depends on EXYNOS_IOMMU
+ default y
+ help
+ Supporting the users of Exynos IOMMU for allocating and mapping
+ an IO virtual memory region with a physical memory region
+ and managing the allocated virtual memory regions.
+
+config EXYNOS_IOVMM_ALIGN64K
+ bool "Let I/O memory region 64KB aligned"
+ default y
+ depends on EXYNOS_IOVMM && ARCH_EXYNOS5
+
+config EXYNOS_IOMMU_DEBUG
+ bool "Debugging log for Exynos IOMMU"
+ depends on EXYNOS_IOMMU
+ help
+ Select this to see the detailed log message that shows what
+ happens in the IOMMU driver
+
+ Say N unless you need kernel log message for IOMMU debugging
+
+endif # IOMMU_SUPPORT
diff --git a/drivers/iommu/Makefile b/drivers/iommu/Makefile
new file mode 100644
index 0000000..b6fcc3e
--- /dev/null
+++ b/drivers/iommu/Makefile
@@ -0,0 +1,12 @@
+obj-$(CONFIG_IOMMU_API) += iommu.o
+obj-$(CONFIG_MSM_IOMMU) += msm_iommu.o msm_iommu_dev.o
+obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o amd_iommu_init.o
+obj-$(CONFIG_AMD_IOMMU_V2) += amd_iommu_v2.o
+obj-$(CONFIG_DMAR_TABLE) += dmar.o
+obj-$(CONFIG_INTEL_IOMMU) += iova.o intel-iommu.o
+obj-$(CONFIG_IRQ_REMAP) += intr_remapping.o
+obj-$(CONFIG_OMAP_IOMMU) += omap-iommu.o
+obj-$(CONFIG_OMAP_IOVMM) += omap-iovmm.o
+obj-$(CONFIG_OMAP_IOMMU_DEBUG) += omap-iommu-debug.o
+obj-$(CONFIG_EXYNOS_IOMMU) += exynos-iommu.o
+obj-$(CONFIG_EXYNOS_IOVMM) += exynos-iovmm.o
diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
new file mode 100644
index 0000000..e080220
--- /dev/null
+++ b/drivers/iommu/exynos-iommu.c
@@ -0,0 +1,1054 @@
+/* linux/drivers/iommu/exynos_iommu.c
+ *
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#ifdef CONFIG_EXYNOS_IOMMU_DEBUG
+#define DEBUG
+#endif
+
+#include <linux/io.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+#include <linux/pm_runtime.h>
+#include <linux/clk.h>
+#include <linux/err.h>
+#include <linux/mm.h>
+#include <linux/iommu.h>
+#include <linux/errno.h>
+#include <linux/list.h>
+#include <linux/memblock.h>
+
+#include <asm/cacheflush.h>
+#include <asm/pgtable.h>
+
+#include <plat/sysmmu.h>
+
+#include <mach/sysmmu.h>
+
+/* We does not consider super section mapping (16MB) */
+#define SECT_ORDER 20
+#define LPAGE_ORDER 16
+#define SPAGE_ORDER 12
+
+#define SECT_SIZE (1 << SECT_ORDER)
+#define LPAGE_SIZE (1 << LPAGE_ORDER)
+#define SPAGE_SIZE (1 << SPAGE_ORDER)
+
+#define SECT_MASK (~(SECT_SIZE - 1))
+#define LPAGE_MASK (~(LPAGE_SIZE - 1))
+#define SPAGE_MASK (~(SPAGE_SIZE - 1))
+
+#define lv1ent_fault(sent) (((*(sent) & 3) == 0) || ((*(sent) & 3) == 3))
+#define lv1ent_page(sent) ((*(sent) & 3) == 1)
+#define lv1ent_section(sent) ((*(sent) & 3) == 2)
+
+#define lv2ent_fault(pent) ((*(pent) & 3) == 0)
+#define lv2ent_small(pent) ((*(pent) & 2) == 2)
+#define lv2ent_large(pent) ((*(pent) & 3) == 1)
+
+#define section_phys(sent) (*(sent) & SECT_MASK)
+#define section_offs(iova) ((iova) & 0xFFFFF)
+#define lpage_phys(pent) (*(pent) & LPAGE_MASK)
+#define lpage_offs(iova) ((iova) & 0xFFFF)
+#define spage_phys(pent) (*(pent) & SPAGE_MASK)
+#define spage_offs(iova) ((iova) & 0xFFF)
+
+#define lv1ent_offset(iova) ((iova) >> SECT_ORDER)
+#define lv2ent_offset(iova) (((iova) & 0xFF000) >> SPAGE_ORDER)
+
+#define NUM_LV1ENTRIES 4096
+#define NUM_LV2ENTRIES 256
+
+#define LV2TABLE_SIZE (NUM_LV2ENTRIES * sizeof(long))
+
+#define SPAGES_PER_LPAGE (LPAGE_SIZE / SPAGE_SIZE)
+
+#define lv2table_base(sent) (*(sent) & 0xFFFFFC00)
+
+#define mk_lv1ent_sect(pa) ((pa) | 2)
+#define mk_lv1ent_page(pa) ((pa) | 1)
+#define mk_lv2ent_lpage(pa) ((pa) | 1)
+#define mk_lv2ent_spage(pa) ((pa) | 2)
+
+#define CTRL_ENABLE 0x5
+#define CTRL_BLOCK 0x7
+#define CTRL_DISABLE 0x0
+
+#define REG_MMU_CTRL 0x000
+#define REG_MMU_CFG 0x004
+#define REG_MMU_STATUS 0x008
+#define REG_MMU_FLUSH 0x00C
+#define REG_MMU_FLUSH_ENTRY 0x010
+#define REG_PT_BASE_ADDR 0x014
+#define REG_INT_STATUS 0x018
+#define REG_INT_CLEAR 0x01C
+
+#define REG_PAGE_FAULT_ADDR 0x024
+#define REG_AW_FAULT_ADDR 0x028
+#define REG_AR_FAULT_ADDR 0x02C
+#define REG_DEFAULT_SLAVE_ADDR 0x030
+
+#define REG_MMU_VERSION 0x034
+
+#define REG_PB0_SADDR 0x04C
+#define REG_PB0_EADDR 0x050
+#define REG_PB1_SADDR 0x054
+#define REG_PB1_EADDR 0x058
+
+static unsigned long *section_entry(unsigned long *pgtable, unsigned long iova)
+{
+ return pgtable + lv1ent_offset(iova);
+}
+
+static unsigned long *page_entry(unsigned long *sent, unsigned long iova)
+{
+ return (unsigned long *)__va(lv2table_base(sent)) + lv2ent_offset(iova);
+}
+
+static unsigned short fault_reg_offset[SYSMMU_FAULTS_NUM] = {
+ REG_PAGE_FAULT_ADDR,
+ REG_AR_FAULT_ADDR,
+ REG_AW_FAULT_ADDR,
+ REG_DEFAULT_SLAVE_ADDR,
+ REG_AR_FAULT_ADDR,
+ REG_AR_FAULT_ADDR,
+ REG_AW_FAULT_ADDR,
+ REG_AW_FAULT_ADDR
+};
+
+static char *sysmmu_fault_name[SYSMMU_FAULTS_NUM] = {
+ "PAGE FAULT",
+ "AR MULTI-HIT FAULT",
+ "AW MULTI-HIT FAULT",
+ "BUS ERROR",
+ "AR SECURITY PROTECTION FAULT",
+ "AR ACCESS PROTECTION FAULT",
+ "AW SECURITY PROTECTION FAULT",
+ "AW ACCESS PROTECTION FAULT",
+ "UNKNOWN FAULT"
+};
+
+struct exynos_iommu_domain {
+ struct list_head clients; /* list of sysmmu_drvdata.node */
+ unsigned long *pgtable; /* lv1 page table, 16KB */
+ short *lv2entcnt; /* free lv2 entry counter for each section */
+ spinlock_t lock; /* lock for this structure */
+ spinlock_t pgtablelock; /* lock for modifying page table @ pgtable */
+};
+
+struct sysmmu_drvdata {
+ struct list_head node; /* entry of exynos_iommu_domain.clients */
+ struct device *sysmmu; /* System MMU's device descriptor */
+ struct device *dev; /* Owner of system MMU */
+ char *dbgname;
+ int nsfrs;
+ void __iomem **sfrbases;
+ struct clk *clk[2];
+ int activations;
+ rwlock_t lock;
+ struct iommu_domain *domain;
+ sysmmu_fault_handler_t fault_handler;
+ unsigned long pgtable;
+};
+
+static bool set_sysmmu_active(struct sysmmu_drvdata *data)
+{
+ /* return true if the System MMU was not active previously
+ and it needs to be initialized */
+ return ++data->activations == 1;
+}
+
+static bool set_sysmmu_inactive(struct sysmmu_drvdata *data)
+{
+ /* return true if the System MMU is needed to be disabled */
+ BUG_ON(data->activations < 1);
+ return --data->activations == 0;
+}
+
+static bool is_sysmmu_active(struct sysmmu_drvdata *data)
+{
+ return data->activations > 0;
+}
+
+static void sysmmu_unblock(void __iomem *sfrbase)
+{
+ __raw_writel(CTRL_ENABLE, sfrbase + REG_MMU_CTRL);
+}
+
+static bool sysmmu_block(void __iomem *sfrbase)
+{
+ int i = 120;
+
+ __raw_writel(CTRL_BLOCK, sfrbase + REG_MMU_CTRL);
+ while ((i > 0) && !(__raw_readl(sfrbase + REG_MMU_STATUS) & 1))
+ --i;
+
+ if (!(__raw_readl(sfrbase + REG_MMU_STATUS) & 1)) {
+ sysmmu_unblock(sfrbase);
+ return false;
+ }
+
+ return true;
+}
+
+static void __sysmmu_tlb_invalidate(void __iomem *sfrbase)
+{
+ __raw_writel(0x1, sfrbase + REG_MMU_FLUSH);
+}
+
+static void __sysmmu_tlb_invalidate_entry(void __iomem *sfrbase,
+ unsigned long iova)
+{
+ __raw_writel((iova & SPAGE_MASK) | 1, sfrbase + REG_MMU_FLUSH_ENTRY);
+}
+
+static void __sysmmu_set_ptbase(void __iomem *sfrbase,
+ unsigned long pgd)
+{
+ __raw_writel(0x1, sfrbase + REG_MMU_CFG); /* 16KB LV1, LRU */
+ __raw_writel(pgd, sfrbase + REG_PT_BASE_ADDR);
+
+ __sysmmu_tlb_invalidate(sfrbase);
+}
+
+static void __sysmmu_set_prefbuf(void __iomem *sfrbase, unsigned long base,
+ unsigned long size, int idx)
+{
+ __raw_writel(base, sfrbase + REG_PB0_SADDR + idx * 8);
+ __raw_writel(size - 1 + base, sfrbase + REG_PB0_EADDR + idx * 8);
+}
+
+void exynos_sysmmu_set_prefbuf(struct device *dev,
+ unsigned long base0, unsigned long size0,
+ unsigned long base1, unsigned long size1)
+{
+ struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
+ unsigned long flags;
+ int i;
+
+ BUG_ON((base0 + size0) <= base0);
+ BUG_ON((size1 > 0) && ((base1 + size1) <= base1));
+
+ read_lock_irqsave(&data->lock, flags);
+ if (!is_sysmmu_active(data))
+ goto finish;
+
+ for (i = 0; i < data->nsfrs; i++) {
+ if ((readl(data->sfrbases[i] + REG_MMU_VERSION) >> 28) == 3) {
+ if (!sysmmu_block(data->sfrbases[i]))
+ continue;
+
+ if (size1 == 0) {
+ if (size0 <= SZ_128K) {
+ base1 = base0;
+ size1 = size0;
+ } else {
+ size1 = size0 -
+ ALIGN(size0 / 2, SZ_64K);
+ size0 = size0 - size1;
+ base1 = base0 + size0;
+ }
+ }
+
+ __sysmmu_set_prefbuf(
+ data->sfrbases[i], base0, size0, 0);
+ __sysmmu_set_prefbuf(
+ data->sfrbases[i], base1, size1, 1);
+
+ sysmmu_unblock(data->sfrbases[i]);
+ }
+ }
+finish:
+ read_unlock_irqrestore(&data->lock, flags);
+}
+
+static void __set_fault_handler(struct sysmmu_drvdata *data,
+ sysmmu_fault_handler_t handler)
+{
+ unsigned long flags;
+
+ write_lock_irqsave(&data->lock, flags);
+ data->fault_handler = handler;
+ write_unlock_irqrestore(&data->lock, flags);
+}
+
+void exynos_sysmmu_set_fault_handler(struct device *dev,
+ sysmmu_fault_handler_t handler)
+{
+ struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
+
+ __set_fault_handler(data, handler);
+}
+
+static int default_fault_handler(enum exynos_sysmmu_inttype itype,
+ unsigned long pgtable_base, unsigned long fault_addr)
+{
+ unsigned long *ent;
+
+ if ((itype >= SYSMMU_FAULTS_NUM) || (itype < SYSMMU_PAGEFAULT))
+ itype = SYSMMU_FAULT_UNKNOWN;
+
+ pr_err("%s occured at 0x%lx(Page table base: 0x%lx)\n",
+ sysmmu_fault_name[itype], fault_addr, pgtable_base);
+
+ ent = section_entry(__va(pgtable_base), fault_addr);
+ pr_err("\tLv1 entry: 0x%lx\n", *ent);
+
+ if (lv1ent_page(ent)) {
+ ent = page_entry(ent, fault_addr);
+ pr_err("\t Lv2 entry: 0x%lx\n", *ent);
+ }
+
+ pr_err("Generating Kernel OOPS... because it is unrecoverable.\n");
+
+ BUG();
+
+ return 0;
+}
+
+static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id)
+{
+ /* SYSMMU is in blocked when interrupt occurred. */
+ struct sysmmu_drvdata *data = dev_id;
+ struct resource *irqres;
+ struct platform_device *pdev;
+ enum exynos_sysmmu_inttype itype;
+ unsigned long addr = -1;
+
+ int i, ret = -ENOSYS;
+
+ read_lock(&data->lock);
+
+ WARN_ON(!is_sysmmu_active(data));
+
+ pdev = to_platform_device(data->sysmmu);
+ for (i = 0; i < (pdev->num_resources / 2); i++) {
+ irqres = platform_get_resource(pdev, IORESOURCE_IRQ, i);
+ if (irqres && ((int)irqres->start == irq))
+ break;
+ }
+
+ if (i == pdev->num_resources) {
+ itype = SYSMMU_FAULT_UNKNOWN;
+ } else {
+ itype = (enum exynos_sysmmu_inttype)
+ __ffs(__raw_readl(data->sfrbases[i] + REG_INT_STATUS));
+ if (WARN_ON(!((itype >= 0) && (itype < SYSMMU_FAULT_UNKNOWN))))
+ itype = SYSMMU_FAULT_UNKNOWN;
+ else
+ addr = __raw_readl(
+ data->sfrbases[i] + fault_reg_offset[itype]);
+ }
+
+ if (data->domain)
+ ret = report_iommu_fault(data->domain, data->dev,
+ addr, itype);
+
+ if ((ret == -ENOSYS) && data->fault_handler) {
+ unsigned long base = data->pgtable;
+ if (itype != SYSMMU_FAULT_UNKNOWN)
+ base = __raw_readl(
+ data->sfrbases[i] + REG_PT_BASE_ADDR);
+ ret = data->fault_handler(itype, base, addr);
+ }
+
+ if (!ret && (itype != SYSMMU_FAULT_UNKNOWN))
+ __raw_writel(1 << itype, data->sfrbases[i] + REG_INT_CLEAR);
+ else
+ dev_dbg(data->sysmmu, "(%s) %s is not handled.\n",
+ data->dbgname, sysmmu_fault_name[itype]);
+
+ if (itype != SYSMMU_FAULT_UNKNOWN)
+ sysmmu_unblock(data->sfrbases[i]);
+
+ read_unlock(&data->lock);
+
+ return IRQ_HANDLED;
+}
+
+static bool __exynos_sysmmu_disable(struct sysmmu_drvdata *data)
+{
+ unsigned long flags;
+ bool disabled = false;
+ int i;
+
+ write_lock_irqsave(&data->lock, flags);
+
+ if (!set_sysmmu_inactive(data))
+ goto finish;
+
+ for (i = 0; i < data->nsfrs; i++)
+ __raw_writel(CTRL_DISABLE, data->sfrbases[i] + REG_MMU_CTRL);
+
+ if (data->clk[1])
+ clk_disable(data->clk[1]);
+ if (data->clk[0])
+ clk_disable(data->clk[0]);
+
+ disabled = true;
+ data->pgtable = 0;
+ data->domain = NULL;
+finish:
+ write_unlock_irqrestore(&data->lock, flags);
+
+ if (disabled)
+ dev_dbg(data->sysmmu, "(%s) Disabled\n", data->dbgname);
+ else
+ dev_dbg(data->sysmmu, "(%s) %d times left to be disabled\n",
+ data->dbgname, data->activations);
+
+ return disabled;
+}
+
+/* __exynos_sysmmu_enable: Enables System MMU
+ *
+ * returns -error if an error occurred and System MMU is not enabled,
+ * 0 if the System MMU has been just enabled and 1 if System MMU was already
+ * enabled before.
+ */
+static int __exynos_sysmmu_enable(struct sysmmu_drvdata *data,
+ unsigned long pgtable, struct iommu_domain *domain)
+{
+ int i, ret = 0;
+ unsigned long flags;
+
+ write_lock_irqsave(&data->lock, flags);
+
+ if (!set_sysmmu_active(data)) {
+ if (WARN_ON(pgtable != data->pgtable)) {
+ ret = -EBUSY;
+ set_sysmmu_inactive(data);
+ } else {
+ ret = 1;
+ }
+
+ dev_dbg(data->sysmmu, "(%s) Already enabled\n", data->dbgname);
+ goto finish;
+ }
+
+ if (data->clk[0])
+ clk_enable(data->clk[0]);
+ if (data->clk[1])
+ clk_enable(data->clk[1]);
+
+ data->pgtable = pgtable;
+
+ for (i = 0; i < data->nsfrs; i++) {
+ __sysmmu_set_ptbase(data->sfrbases[i], pgtable);
+
+ if ((readl(data->sfrbases[i] + REG_MMU_VERSION) >> 28) == 3) {
+ /* System MMU version is 3.x */
+ __raw_writel((1 << 12) | (2 << 28),
+ data->sfrbases[i] + REG_MMU_CFG);
+ __sysmmu_set_prefbuf(data->sfrbases[i], 0, -1, 0);
+ __sysmmu_set_prefbuf(data->sfrbases[i], 0, -1, 1);
+ }
+
+ __raw_writel(CTRL_ENABLE, data->sfrbases[i] + REG_MMU_CTRL);
+ }
+
+ data->domain = domain;
+
+ dev_dbg(data->sysmmu, "(%s) Enabled\n", data->dbgname);
+finish:
+ write_unlock_irqrestore(&data->lock, flags);
+
+ return ret;
+}
+
+int exynos_sysmmu_enable(struct device *dev, unsigned long pgtable)
+{
+ struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
+ int ret;
+
+ BUG_ON(!memblock_is_memory(pgtable));
+
+ ret = pm_runtime_get_sync(data->sysmmu);
+ if (ret < 0) {
+ dev_dbg(data->sysmmu, "(%s) Failed to enable\n", data->dbgname);
+ return ret;
+ }
+
+ ret = __exynos_sysmmu_enable(data, pgtable, NULL);
+ if (WARN_ON(ret < 0)) {
+ pm_runtime_put(data->sysmmu);
+ dev_err(data->sysmmu,
+ "(%s) Already enabled with page table %#lx\n",
+ data->dbgname, data->pgtable);
+ } else {
+ data->dev = dev;
+ }
+
+ return ret;
+}
+
+bool exynos_sysmmu_disable(struct device *dev)
+{
+ struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
+ bool disabled;
+
+ disabled = __exynos_sysmmu_disable(data);
+ pm_runtime_put(data->sysmmu);
+
+ return disabled;
+}
+
+static void sysmmu_tlb_invalidate_entry(struct device *dev, unsigned long iova)
+{
+ unsigned long flags;
+ struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
+
+ read_lock_irqsave(&data->lock, flags);
+
+ if (is_sysmmu_active(data)) {
+ int i;
+ for (i = 0; i < data->nsfrs; i++) {
+ if (sysmmu_block(data->sfrbases[i])) {
+ __sysmmu_tlb_invalidate_entry(
+ data->sfrbases[i], iova);
+ sysmmu_unblock(data->sfrbases[i]);
+ }
+ }
+ } else {
+ dev_dbg(data->sysmmu,
+ "(%s) Disabled. Skipping invalidating TLB.\n",
+ data->dbgname);
+ }
+
+ read_unlock_irqrestore(&data->lock, flags);
+}
+
+void exynos_sysmmu_tlb_invalidate(struct device *dev)
+{
+ unsigned long flags;
+ struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
+
+ read_lock_irqsave(&data->lock, flags);
+
+ if (is_sysmmu_active(data)) {
+ int i;
+ for (i = 0; i < data->nsfrs; i++) {
+ if (sysmmu_block(data->sfrbases[i])) {
+ __sysmmu_tlb_invalidate(data->sfrbases[i]);
+ sysmmu_unblock(data->sfrbases[i]);
+ }
+ }
+ } else {
+ dev_dbg(data->sysmmu,
+ "(%s) Disabled. Skipping invalidating TLB.\n",
+ data->dbgname);
+ }
+
+ read_unlock_irqrestore(&data->lock, flags);
+}
+
+static int exynos_sysmmu_probe(struct platform_device *pdev)
+{
+ int i, ret;
+ struct device *dev;
+ struct sysmmu_drvdata *data;
+
+ dev = &pdev->dev;
+
+ data = kzalloc(sizeof(*data), GFP_KERNEL);
+ if (!data) {
+ dev_dbg(dev, "Not enough memory\n");
+ ret = -ENOMEM;
+ goto err_alloc;
+ }
+
+ ret = dev_set_drvdata(dev, data);
+ if (ret) {
+ dev_dbg(dev, "Unabled to initialize driver data\n");
+ goto err_init;
+ }
+
+ data->nsfrs = pdev->num_resources / 2;
+ data->sfrbases = kmalloc(sizeof(*data->sfrbases) * data->nsfrs,
+ GFP_KERNEL);
+ if (data->sfrbases == NULL) {
+ dev_dbg(dev, "Not enough memory\n");
+ ret = -ENOMEM;
+ goto err_init;
+ }
+
+ for (i = 0; i < data->nsfrs; i++) {
+ struct resource *res;
+ res = platform_get_resource(pdev, IORESOURCE_MEM, i);
+ if (!res) {
+ dev_dbg(dev, "Unable to find IOMEM region\n");
+ ret = -ENOENT;
+ goto err_res;
+ }
+
+ data->sfrbases[i] = ioremap(res->start, resource_size(res));
+ if (!data->sfrbases[i]) {
+ dev_dbg(dev, "Unable to map IOMEM @ PA:%#x\n",
+ res->start);
+ ret = -ENOENT;
+ goto err_res;
+ }
+ }
+
+ for (i = 0; i < data->nsfrs; i++) {
+ ret = platform_get_irq(pdev, i);
+ if (ret <= 0) {
+ dev_dbg(dev, "Unable to find IRQ resource\n");
+ goto err_irq;
+ }
+
+ ret = request_irq(ret, exynos_sysmmu_irq, 0,
+ dev_name(dev), data);
+ if (ret) {
+ dev_dbg(dev, "Unabled to register interrupt handler\n");
+ goto err_irq;
+ }
+ }
+
+ if (dev_get_platdata(dev)) {
+ char *deli, *beg;
+ struct sysmmu_platform_data *platdata = dev_get_platdata(dev);
+
+ beg = platdata->clockname;
+
+ for (deli = beg; (*deli != '\0') && (*deli != ','); deli++)
+ /* NOTHING */;
+
+ if (*deli == '\0')
+ deli = NULL;
+ else
+ *deli = '\0';
+
+ data->clk[0] = clk_get(dev, beg);
+ if (IS_ERR(data->clk[0])) {
+ data->clk[0] = NULL;
+ dev_dbg(dev, "No clock descriptor registered\n");
+ }
+
+ if (data->clk[0] && deli) {
+ *deli = ',';
+ data->clk[1] = clk_get(dev, deli + 1);
+ if (IS_ERR(data->clk[1]))
+ data->clk[1] = NULL;
+ }
+
+ data->dbgname = platdata->dbgname;
+ }
+
+ data->sysmmu = dev;
+ rwlock_init(&data->lock);
+ INIT_LIST_HEAD(&data->node);
+
+ __set_fault_handler(data, &default_fault_handler);
+
+ if (dev->parent)
+ pm_runtime_enable(dev);
+
+ dev_dbg(dev, "(%s) Initialized\n", data->dbgname);
+ return 0;
+err_irq:
+ while (i-- > 0) {
+ int irq;
+
+ irq = platform_get_irq(pdev, i);
+ free_irq(irq, data);
+ }
+err_res:
+ while (data->nsfrs-- > 0)
+ iounmap(data->sfrbases[data->nsfrs]);
+ kfree(data->sfrbases);
+err_init:
+ kfree(data);
+err_alloc:
+ dev_err(dev, "Failed to initialize\n");
+ return ret;
+}
+
+static struct platform_driver exynos_sysmmu_driver = {
+ .probe = exynos_sysmmu_probe,
+ .driver = {
+ .owner = THIS_MODULE,
+ .name = "exynos-sysmmu",
+ }
+};
+
+static inline void pgtable_flush(void *vastart, void *vaend)
+{
+ dmac_flush_range(vastart, vaend);
+ outer_flush_range(virt_to_phys(vastart),
+ virt_to_phys(vaend));
+}
+
+static int exynos_iommu_domain_init(struct iommu_domain *domain)
+{
+ struct exynos_iommu_domain *priv;
+
+ priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ if (!priv)
+ return -ENOMEM;
+
+ priv->pgtable = (unsigned long *)__get_free_pages(
+ GFP_KERNEL | __GFP_ZERO, 2);
+ if (!priv->pgtable)
+ goto err_pgtable;
+
+ priv->lv2entcnt = (short *)__get_free_pages(
+ GFP_KERNEL | __GFP_ZERO, 1);
+ if (!priv->lv2entcnt)
+ goto err_counter;
+
+ pgtable_flush(priv->pgtable, priv->pgtable + NUM_LV1ENTRIES);
+
+ spin_lock_init(&priv->lock);
+ spin_lock_init(&priv->pgtablelock);
+ INIT_LIST_HEAD(&priv->clients);
+
+ domain->priv = priv;
+ return 0;
+
+err_counter:
+ free_pages((unsigned long)priv->pgtable, 2);
+err_pgtable:
+ kfree(priv);
+ return -ENOMEM;
+}
+
+static void exynos_iommu_domain_destroy(struct iommu_domain *domain)
+{
+ struct exynos_iommu_domain *priv = domain->priv;
+ struct sysmmu_drvdata *data;
+ unsigned long flags;
+ int i;
+
+ WARN_ON(!list_empty(&priv->clients));
+
+ spin_lock_irqsave(&priv->lock, flags);
+
+ list_for_each_entry(data, &priv->clients, node) {
+ while (!exynos_sysmmu_disable(data->dev))
+ ; /* until System MMU is actually disabled */
+ }
+
+ spin_unlock_irqrestore(&priv->lock, flags);
+
+ for (i = 0; i < NUM_LV1ENTRIES; i++)
+ if (lv1ent_page(priv->pgtable + i))
+ kfree(__va(lv2table_base(priv->pgtable + i)));
+
+ free_pages((unsigned long)priv->pgtable, 2);
+ free_pages((unsigned long)priv->lv2entcnt, 1);
+ kfree(domain->priv);
+ domain->priv = NULL;
+}
+
+static int exynos_iommu_attach_device(struct iommu_domain *domain,
+ struct device *dev)
+{
+ struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
+ struct exynos_iommu_domain *priv = domain->priv;
+ unsigned long flags;
+ int ret;
+
+ ret = pm_runtime_get_sync(data->sysmmu);
+ if (ret < 0)
+ return ret;
+
+ ret = 0;
+
+ spin_lock_irqsave(&priv->lock, flags);
+
+ ret = __exynos_sysmmu_enable(data, __pa(priv->pgtable), domain);
+
+ if (ret == 0) {
+ /* 'data->node' must not be appeared in priv->clients */
+ BUG_ON(!list_empty(&data->node));
+ data->dev = dev;
+ list_add_tail(&data->node, &priv->clients);
+ }
+
+ spin_unlock_irqrestore(&priv->lock, flags);
+
+ if (ret < 0) {
+ dev_err(dev, "%s: Failed to attach IOMMU with pgtable %#lx\n",
+ __func__, __pa(priv->pgtable));
+ pm_runtime_put(data->sysmmu);
+ } else if (ret > 0) {
+ dev_dbg(dev, "%s: IOMMU with pgtable 0x%lx already attached\n",
+ __func__, __pa(priv->pgtable));
+ } else {
+ dev_dbg(dev, "%s: Attached new IOMMU with pgtable 0x%lx\n",
+ __func__, __pa(priv->pgtable));
+ }
+
+ return ret;
+}
+
+static void exynos_iommu_detach_device(struct iommu_domain *domain,
+ struct device *dev)
+{
+ struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
+ struct exynos_iommu_domain *priv = domain->priv;
+ struct list_head *pos;
+ unsigned long flags;
+ bool found = false;
+
+ spin_lock_irqsave(&priv->lock, flags);
+
+ list_for_each(pos, &priv->clients) {
+ if (list_entry(pos, struct sysmmu_drvdata, node) == data) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found)
+ goto finish;
+
+ if (__exynos_sysmmu_disable(data)) {
+ dev_dbg(dev, "%s: Detached IOMMU with pgtable %#lx\n",
+ __func__, __pa(priv->pgtable));
+ list_del(&data->node);
+ INIT_LIST_HEAD(&data->node);
+
+ } else {
+ dev_dbg(dev, "%s: Detaching IOMMU with pgtable %#lx delayed",
+ __func__, __pa(priv->pgtable));
+ }
+
+finish:
+ spin_unlock_irqrestore(&priv->lock, flags);
+
+ if (found)
+ pm_runtime_put(data->sysmmu);
+}
+
+static unsigned long *alloc_lv2entry(unsigned long *sent, unsigned long iova,
+ short *pgcounter)
+{
+ if (lv1ent_fault(sent)) {
+ unsigned long *pent;
+
+ pent = kzalloc(LV2TABLE_SIZE, GFP_ATOMIC);
+ BUG_ON((unsigned long)pent & (LV2TABLE_SIZE - 1));
+ if (!pent)
+ return NULL;
+
+ *sent = mk_lv1ent_page(__pa(pent));
+ *pgcounter = NUM_LV2ENTRIES;
+ pgtable_flush(pent, pent + NUM_LV2ENTRIES);
+ pgtable_flush(sent, sent + 1);
+ }
+
+ return page_entry(sent, iova);
+}
+
+static int lv1set_section(unsigned long *sent, phys_addr_t paddr, short *pgcnt)
+{
+ if (lv1ent_section(sent))
+ return -EADDRINUSE;
+
+ if (lv1ent_page(sent)) {
+ if (*pgcnt != NUM_LV2ENTRIES)
+ return -EADDRINUSE;
+
+ kfree(page_entry(sent, 0));
+
+ *pgcnt = 0;
+ }
+
+ *sent = mk_lv1ent_sect(paddr);
+
+ pgtable_flush(sent, sent + 1);
+
+ return 0;
+}
+
+static int lv2set_page(unsigned long *pent, phys_addr_t paddr, size_t size,
+ short *pgcnt)
+{
+ if (size == SPAGE_SIZE) {
+ if (!lv2ent_fault(pent))
+ return -EADDRINUSE;
+
+ *pent = mk_lv2ent_spage(paddr);
+ pgtable_flush(pent, pent + 1);
+ *pgcnt -= 1;
+ } else { /* size == LPAGE_SIZE */
+ int i;
+ for (i = 0; i < SPAGES_PER_LPAGE; i++, pent++) {
+ if (!lv2ent_fault(pent)) {
+ memset(pent, 0, sizeof(*pent) * i);
+ return -EADDRINUSE;
+ }
+
+ *pent = mk_lv2ent_lpage(paddr);
+ }
+ pgtable_flush(pent - SPAGES_PER_LPAGE, pent);
+ *pgcnt -= SPAGES_PER_LPAGE;
+ }
+
+ return 0;
+}
+
+static int exynos_iommu_map(struct iommu_domain *domain, unsigned long iova,
+ phys_addr_t paddr, size_t size, int prot)
+{
+ struct exynos_iommu_domain *priv = domain->priv;
+ unsigned long *entry;
+ unsigned long flags;
+ int ret = -ENOMEM;
+
+ BUG_ON(priv->pgtable == NULL);
+
+ spin_lock_irqsave(&priv->pgtablelock, flags);
+
+ entry = section_entry(priv->pgtable, iova);
+
+ if (size == SECT_SIZE) {
+ ret = lv1set_section(entry, paddr,
+ &priv->lv2entcnt[lv1ent_offset(iova)]);
+ } else {
+ unsigned long *pent;
+
+ pent = alloc_lv2entry(entry, iova,
+ &priv->lv2entcnt[lv1ent_offset(iova)]);
+
+ if (!pent)
+ ret = -ENOMEM;
+ else
+ ret = lv2set_page(pent, paddr, size,
+ &priv->lv2entcnt[lv1ent_offset(iova)]);
+ }
+
+ if (ret) {
+ pr_debug("%s: Failed to map iova 0x%lx/0x%x bytes\n",
+ __func__, iova, size);
+ }
+
+ spin_unlock_irqrestore(&priv->pgtablelock, flags);
+
+ return ret;
+}
+
+static size_t exynos_iommu_unmap(struct iommu_domain *domain,
+ unsigned long iova, size_t size)
+{
+ struct exynos_iommu_domain *priv = domain->priv;
+ struct sysmmu_drvdata *data;
+ unsigned long flags;
+ unsigned long *ent;
+
+ BUG_ON(priv->pgtable == NULL);
+
+ spin_lock_irqsave(&priv->pgtablelock, flags);
+
+ ent = section_entry(priv->pgtable, iova);
+
+ if (lv1ent_section(ent)) {
+ BUG_ON(size < SECT_SIZE);
+
+ *ent = 0;
+ pgtable_flush(ent, ent + 1);
+ size = SECT_SIZE;
+ goto done;
+ }
+
+ if (unlikely(lv1ent_fault(ent))) {
+ if (size > SECT_SIZE)
+ size = SECT_SIZE;
+ goto done;
+ }
+
+ /* lv1ent_page(sent) == true here */
+
+ ent = page_entry(ent, iova);
+
+ if (unlikely(lv2ent_fault(ent))) {
+ size = SPAGE_SIZE;
+ goto done;
+ }
+
+ if (lv2ent_small(ent)) {
+ *ent = 0;
+ size = SPAGE_SIZE;
+ priv->lv2entcnt[lv1ent_offset(iova)] += 1;
+ goto done;
+ }
+
+ /* lv1ent_large(ent) == true here */
+ BUG_ON(size < LPAGE_SIZE);
+
+ memset(ent, 0, sizeof(*ent) * SPAGES_PER_LPAGE);
+
+ size = LPAGE_SIZE;
+ priv->lv2entcnt[lv1ent_offset(iova)] += SPAGES_PER_LPAGE;
+done:
+ spin_unlock_irqrestore(&priv->pgtablelock, flags);
+
+ spin_lock_irqsave(&priv->lock, flags);
+ list_for_each_entry(data, &priv->clients, node)
+ sysmmu_tlb_invalidate_entry(data->dev, iova);
+ spin_unlock_irqrestore(&priv->lock, flags);
+
+
+ return size;
+}
+
+static phys_addr_t exynos_iommu_iova_to_phys(struct iommu_domain *domain,
+ unsigned long iova)
+{
+ struct exynos_iommu_domain *priv = domain->priv;
+ unsigned long *entry;
+ unsigned long flags;
+ phys_addr_t phys = 0;
+
+ spin_lock_irqsave(&priv->pgtablelock, flags);
+
+ entry = section_entry(priv->pgtable, iova);
+
+ if (lv1ent_section(entry)) {
+ phys = section_phys(entry) + section_offs(iova);
+ } else if (lv1ent_page(entry)) {
+ entry = page_entry(entry, iova);
+
+ if (lv2ent_large(entry))
+ phys = lpage_phys(entry) + lpage_offs(iova);
+ else if (lv2ent_small(entry))
+ phys = spage_phys(entry) + spage_offs(iova);
+ }
+
+ spin_unlock_irqrestore(&priv->pgtablelock, flags);
+
+ return phys;
+}
+
+static struct iommu_ops exynos_iommu_ops = {
+ .domain_init = &exynos_iommu_domain_init,
+ .domain_destroy = &exynos_iommu_domain_destroy,
+ .attach_dev = &exynos_iommu_attach_device,
+ .detach_dev = &exynos_iommu_detach_device,
+ .map = &exynos_iommu_map,
+ .unmap = &exynos_iommu_unmap,
+ .iova_to_phys = &exynos_iommu_iova_to_phys,
+ .pgsize_bitmap = SECT_SIZE | LPAGE_SIZE | SPAGE_SIZE,
+};
+
+static int __init exynos_iommu_init(void)
+{
+ int ret;
+
+ ret = platform_driver_register(&exynos_sysmmu_driver);
+
+ if (ret == 0)
+ bus_set_iommu(&platform_bus_type, &exynos_iommu_ops);
+
+ return ret;
+}
+subsys_initcall(exynos_iommu_init);
diff --git a/drivers/iommu/exynos-iovmm.c b/drivers/iommu/exynos-iovmm.c
new file mode 100644
index 0000000..bc78722
--- /dev/null
+++ b/drivers/iommu/exynos-iovmm.c
@@ -0,0 +1,510 @@
+/* linux/arch/arm/plat-s5p/s5p_iovmm.c
+ *
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#ifdef CONFIG_EXYNOS_IOMMU_DEBUG
+#define DEBUG
+#endif
+
+#include <linux/slab.h>
+#include <linux/scatterlist.h>
+#include <linux/device.h>
+#include <linux/list.h>
+#include <linux/iommu.h>
+#include <linux/genalloc.h>
+#include <linux/err.h>
+#include <linux/spinlock.h>
+#include <linux/platform_device.h>
+#include <linux/atomic.h>
+#include <linux/rculist.h>
+
+#include <plat/iovmm.h>
+
+#define IOVA_START 0xC0000000
+#define IOVM_SIZE (SZ_1G - SZ_4K) /* last 4K is for error values */
+
+struct s5p_vm_region {
+ struct list_head node;
+ dma_addr_t start;
+ size_t size;
+};
+
+struct s5p_iovmm {
+ struct list_head node; /* element of s5p_iovmm_list */
+ struct rcu_head rcu;
+ struct iommu_domain *domain;
+ struct device *dev;
+ struct gen_pool *vmm_pool;
+ struct list_head regions_list; /* list of s5p_vm_region */
+ atomic_t activations;
+ int num_setup;
+ spinlock_t lock;
+};
+
+static LIST_HEAD(s5p_iovmm_list);
+
+static struct s5p_iovmm *find_iovmm(struct device *dev)
+{
+ struct s5p_iovmm *vmm;
+
+ list_for_each_entry(vmm, &s5p_iovmm_list, node)
+ if ((vmm->dev == dev) && (vmm->num_setup > 0))
+ return vmm;
+
+ return NULL;
+}
+
+static struct s5p_vm_region *find_region(struct s5p_iovmm *vmm, dma_addr_t iova)
+{
+ struct s5p_vm_region *region;
+
+ list_for_each_entry(region, &vmm->regions_list, node)
+ if (region->start == iova)
+ return region;
+
+ return NULL;
+}
+
+int iovmm_setup(struct device *dev)
+{
+ struct s5p_iovmm *vmm = NULL;
+ struct list_head *pos;
+ int ret;
+
+ list_for_each(pos, &s5p_iovmm_list) {
+ vmm = list_entry(pos, struct s5p_iovmm, node);
+ if (vmm->dev == dev) {
+ struct s5p_iovmm *rcu_vmm;
+
+ rcu_vmm = kmalloc(sizeof(*rcu_vmm), GFP_KERNEL);
+ if (rcu_vmm == NULL)
+ return -ENOMEM;
+
+ memcpy(rcu_vmm, vmm, sizeof(*vmm));
+ rcu_vmm->num_setup++;
+ list_replace_rcu(&vmm->node, &rcu_vmm->node);
+
+ kfree(vmm);
+
+ return 0;
+ }
+ }
+
+ vmm = kzalloc(sizeof(*vmm), GFP_KERNEL);
+ if (!vmm) {
+ ret = -ENOMEM;
+ goto err_setup_alloc;
+ }
+
+ vmm->vmm_pool = gen_pool_create(PAGE_SHIFT, -1);
+ if (!vmm->vmm_pool) {
+ ret = -ENOMEM;
+ goto err_setup_genalloc;
+ }
+
+ /* (1GB - 4KB) addr space from 0xC0000000 */
+ ret = gen_pool_add(vmm->vmm_pool, IOVA_START, IOVM_SIZE, -1);
+ if (ret)
+ goto err_setup_domain;
+
+ vmm->domain = iommu_domain_alloc(&platform_bus_type);
+ if (!vmm->domain) {
+ ret = -ENOMEM;
+ goto err_setup_domain;
+ }
+
+ vmm->dev = dev;
+ vmm->num_setup = 1;
+
+ spin_lock_init(&vmm->lock);
+
+ INIT_LIST_HEAD(&vmm->node);
+ INIT_LIST_HEAD(&vmm->regions_list);
+ atomic_set(&vmm->activations, 0);
+
+ list_add_rcu(&vmm->node, &s5p_iovmm_list);
+
+ dev_dbg(dev, "IOVMM: Created %#x B IOVMM from %#x.\n",
+ IOVM_SIZE, IOVA_START);
+
+ return 0;
+err_setup_domain:
+ gen_pool_destroy(vmm->vmm_pool);
+err_setup_genalloc:
+ kfree(vmm);
+err_setup_alloc:
+ dev_dbg(dev, "IOVMM: Failed to create IOVMM (%d)\n", ret);
+ return ret;
+}
+
+static void iovmm_destroy(struct rcu_head *rcu)
+{
+ struct s5p_iovmm *vmm = container_of(rcu, struct s5p_iovmm, rcu);
+ struct list_head *pos, *tmp;
+
+ while (WARN_ON(atomic_dec_return(&vmm->activations) > 0))
+ iommu_detach_device(vmm->domain, vmm->dev);
+
+ iommu_domain_free(vmm->domain);
+
+ WARN_ON(!list_empty(&vmm->regions_list));
+
+ list_for_each_safe(pos, tmp, &vmm->regions_list) {
+ struct s5p_vm_region *region;
+
+ region = list_entry(pos, struct s5p_vm_region, node);
+
+ /* No need to unmap the region because
+ * iommu_domain_free() frees the page table */
+ gen_pool_free(vmm->vmm_pool, region->start,
+ region->size);
+
+ kfree(list_entry(pos, struct s5p_vm_region, node));
+ }
+
+ gen_pool_destroy(vmm->vmm_pool);
+
+ dev_dbg(vmm->dev, "IOVMM: Removed IOVMM\n");
+
+ kfree(vmm);
+}
+
+void iovmm_cleanup(struct device *dev)
+{
+ struct s5p_iovmm *vmm, *n;
+
+ list_for_each_entry_safe(vmm, n, &s5p_iovmm_list, node) {
+ if (vmm->dev == dev) {
+ struct s5p_iovmm *rcu_vmm = NULL;
+
+ while (rcu_vmm == NULL) /* should success */
+ rcu_vmm = kmalloc(sizeof(*rcu_vmm), GFP_ATOMIC);
+
+ memcpy(rcu_vmm, vmm, sizeof(*vmm));
+ rcu_vmm->num_setup--;
+ list_replace_rcu(&vmm->node, &rcu_vmm->node);
+
+ kfree(vmm);
+
+ if (rcu_vmm->num_setup == 0) {
+ list_del_rcu(&rcu_vmm->node);
+ call_rcu(&rcu_vmm->rcu, iovmm_destroy);
+ }
+
+ return;
+ }
+ }
+
+ WARN(true, "%s: No IOVMM exist for %s\n", __func__, dev_name(dev));
+}
+
+int iovmm_activate(struct device *dev)
+{
+ struct s5p_iovmm *vmm;
+ int ret = 0;
+
+ rcu_read_lock();
+
+ vmm = find_iovmm(dev);
+ if (WARN_ON(!vmm)) {
+ rcu_read_unlock();
+ return -EINVAL;
+ }
+
+ ret = iommu_attach_device(vmm->domain, vmm->dev);
+ if (!ret)
+ atomic_inc(&vmm->activations);
+
+ rcu_read_unlock();
+
+ return ret;
+}
+
+void iovmm_deactivate(struct device *dev)
+{
+ struct s5p_iovmm *vmm;
+
+ rcu_read_lock();
+
+ vmm = find_iovmm(dev);
+ if (WARN_ON(!vmm)) {
+ rcu_read_unlock();
+ return;
+ }
+
+ iommu_detach_device(vmm->domain, vmm->dev);
+
+ atomic_add_unless(&vmm->activations, -1, 0);
+
+ rcu_read_unlock();
+}
+
+dma_addr_t iovmm_map(struct device *dev, struct scatterlist *sg, off_t offset,
+ size_t size)
+{
+ off_t start_off;
+ dma_addr_t addr, start = 0;
+ size_t mapped_size = 0;
+ struct s5p_vm_region *region;
+ struct s5p_iovmm *vmm;
+ int order;
+ unsigned long flags;
+#ifdef CONFIG_EXYNOS_IOVMM_ALIGN64K
+ size_t iova_size = 0;
+#endif
+
+ rcu_read_lock();
+
+ vmm = find_iovmm(dev);
+ if (WARN_ON(!vmm))
+ goto err_map_nomem;
+
+ for (; sg_dma_len(sg) < offset; sg = sg_next(sg))
+ offset -= sg_dma_len(sg);
+
+ start_off = offset_in_page(sg_phys(sg) + offset);
+ size = PAGE_ALIGN(size + start_off);
+
+ order = __fls(min_t(size_t, size, SZ_1M));
+
+ region = kmalloc(sizeof(*region), GFP_KERNEL);
+ if (!region)
+ goto err_map_nomem;
+
+ INIT_LIST_HEAD(&region->node);
+
+ spin_lock_irqsave(&vmm->lock, flags);
+
+#ifdef CONFIG_EXYNOS_IOVMM_ALIGN64K
+ iova_size = ALIGN(size, SZ_64K);
+ start = (dma_addr_t)gen_pool_alloc_aligned(vmm->vmm_pool, iova_size,
+ order);
+#else
+ start = (dma_addr_t)gen_pool_alloc_aligned(vmm->vmm_pool, size, order);
+#endif
+ if (!start)
+ goto err_map_nomem_lock;
+
+ addr = start;
+ do {
+ phys_addr_t phys;
+ size_t len;
+
+ phys = sg_phys(sg);
+ len = sg_dma_len(sg);
+
+ if (offset > 0) {
+ len -= offset;
+ phys += offset;
+ offset = 0;
+ }
+
+ if (offset_in_page(phys)) {
+ len += offset_in_page(phys);
+ phys = round_down(phys, PAGE_SIZE);
+ }
+
+ len = PAGE_ALIGN(len);
+
+ if (len > (size - mapped_size))
+ len = size - mapped_size;
+
+ if (iommu_map(vmm->domain, addr, phys, len, 0))
+ break;
+
+ addr += len;
+ mapped_size += len;
+ } while ((sg = sg_next(sg)) && (mapped_size < size));
+
+ BUG_ON(mapped_size > size);
+
+ if (mapped_size < size)
+ goto err_map_map;
+
+#ifdef CONFIG_EXYNOS_IOVMM_ALIGN64K
+ if (iova_size != size) {
+ addr = start + size;
+ size = iova_size;
+
+ for (; addr < start + size; addr += PAGE_SIZE) {
+ if (iommu_map(vmm->domain, addr,
+ page_to_phys(ZERO_PAGE(0)), PAGE_SIZE, 0))
+ goto err_map_map;
+
+ mapped_size += PAGE_SIZE;
+ }
+ }
+#endif
+
+ region->start = start + start_off;
+ region->size = size;
+
+ list_add(&region->node, &vmm->regions_list);
+
+ spin_unlock_irqrestore(&vmm->lock, flags);
+
+ dev_dbg(dev, "IOVMM: Allocated VM region @ %#x/%#X bytes.\n",
+ region->start, region->size);
+
+ rcu_read_unlock();
+
+ return region->start;
+
+err_map_map:
+ iommu_unmap(vmm->domain, start, mapped_size);
+ gen_pool_free(vmm->vmm_pool, start, size);
+err_map_nomem_lock:
+ spin_unlock_irqrestore(&vmm->lock, flags);
+ kfree(region);
+err_map_nomem:
+ dev_dbg(dev, "IOVMM: Failed to allocated VM region for %#x bytes.\n",
+ size);
+ rcu_read_unlock();
+
+ return (dma_addr_t)0;
+}
+
+void iovmm_unmap(struct device *dev, dma_addr_t iova)
+{
+ struct s5p_vm_region *region;
+ struct s5p_iovmm *vmm;
+ unsigned long flags;
+ size_t unmapped_size;
+
+ rcu_read_lock();
+
+ vmm = find_iovmm(dev);
+
+ if (WARN_ON(!vmm)) {
+ rcu_read_unlock();
+ return;
+ }
+
+ spin_lock_irqsave(&vmm->lock, flags);
+
+ region = find_region(vmm, iova);
+ if (WARN_ON(!region))
+ goto err_region_not_found;
+
+ region->start = round_down(region->start, PAGE_SIZE);
+
+ gen_pool_free(vmm->vmm_pool, region->start, region->size);
+ list_del(&region->node);
+
+ unmapped_size = iommu_unmap(vmm->domain, region->start, region->size);
+
+ WARN_ON(unmapped_size != region->size);
+ dev_dbg(dev, "IOVMM: Unmapped %#x bytes from %#x.\n",
+ unmapped_size, region->start);
+
+ kfree(region);
+err_region_not_found:
+ spin_unlock_irqrestore(&vmm->lock, flags);
+
+ rcu_read_unlock();
+}
+
+int iovmm_map_oto(struct device *dev, phys_addr_t phys, size_t size)
+{
+ struct s5p_vm_region *region;
+ struct s5p_iovmm *vmm;
+ unsigned long flags;
+ int ret;
+
+ rcu_read_lock();
+
+ vmm = find_iovmm(dev);
+ if (WARN_ON(!vmm)) {
+ ret = -EINVAL;
+ goto err_map_nomem;
+ }
+
+ region = kmalloc(sizeof(*region), GFP_KERNEL);
+ if (!region) {
+ ret = -ENOMEM;
+ goto err_map_nomem;
+ }
+
+ if (WARN_ON((phys + size) >= IOVA_START)) {
+ dev_err(dev,
+ "Unable to create one to one mapping for %#x @ %#x\n",
+ size, phys);
+ ret = -EINVAL;
+ goto err_out_of_memory;
+ }
+
+ if (WARN_ON(phys & ~PAGE_MASK))
+ phys = round_down(phys, PAGE_SIZE);
+
+ spin_lock_irqsave(&vmm->lock, flags);
+
+ ret = iommu_map(vmm->domain, (dma_addr_t)phys, phys, size, 0);
+ if (ret < 0)
+ goto err_map_failed;
+
+ region->start = (dma_addr_t)phys;
+ region->size = size;
+ INIT_LIST_HEAD(&region->node);
+
+ list_add(&region->node, &vmm->regions_list);
+
+ spin_unlock_irqrestore(&vmm->lock, flags);
+
+ rcu_read_unlock();
+
+ return 0;
+
+err_map_failed:
+ spin_unlock_irqrestore(&vmm->lock, flags);
+err_out_of_memory:
+ kfree(region);
+err_map_nomem:
+ rcu_read_unlock();
+
+ return ret;
+}
+
+void iovmm_unmap_oto(struct device *dev, phys_addr_t phys)
+{
+ struct s5p_vm_region *region;
+ struct s5p_iovmm *vmm;
+ unsigned long flags;
+ size_t unmapped_size;
+
+ rcu_read_lock();
+
+ vmm = find_iovmm(dev);
+ if (WARN_ON(!vmm)) {
+ rcu_read_unlock();
+ return;
+ }
+
+ if (WARN_ON(phys & ~PAGE_MASK))
+ phys = round_down(phys, PAGE_SIZE);
+
+ spin_lock_irqsave(&vmm->lock, flags);
+
+ region = find_region(vmm, (dma_addr_t)phys);
+ if (WARN_ON(!region))
+ goto err_region_not_found;
+
+ list_del(&region->node);
+
+ unmapped_size = iommu_unmap(vmm->domain, region->start, region->size);
+
+ WARN_ON(unmapped_size != region->size);
+ dev_dbg(dev, "IOVMM: Unmapped %#x bytes from %#x.\n",
+ unmapped_size, region->start);
+
+ kfree(region);
+err_region_not_found:
+ spin_unlock_irqrestore(&vmm->lock, flags);
+
+ rcu_read_unlock();
+}
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
new file mode 100644
index 0000000..2198b2d
--- /dev/null
+++ b/drivers/iommu/iommu.c
@@ -0,0 +1,343 @@
+/*
+ * Copyright (C) 2007-2008 Advanced Micro Devices, Inc.
+ * Author: Joerg Roedel <joerg.roedel@amd.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
+ * by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#define pr_fmt(fmt) "%s: " fmt, __func__
+
+#include <linux/device.h>
+#include <linux/kernel.h>
+#include <linux/bug.h>
+#include <linux/types.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/errno.h>
+#include <linux/iommu.h>
+
+static ssize_t show_iommu_group(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ unsigned int groupid;
+
+ if (iommu_device_group(dev, &groupid))
+ return 0;
+
+ return sprintf(buf, "%u", groupid);
+}
+static DEVICE_ATTR(iommu_group, S_IRUGO, show_iommu_group, NULL);
+
+static int add_iommu_group(struct device *dev, void *data)
+{
+ unsigned int groupid;
+
+ if (iommu_device_group(dev, &groupid) == 0)
+ return device_create_file(dev, &dev_attr_iommu_group);
+
+ return 0;
+}
+
+static int remove_iommu_group(struct device *dev)
+{
+ unsigned int groupid;
+
+ if (iommu_device_group(dev, &groupid) == 0)
+ device_remove_file(dev, &dev_attr_iommu_group);
+
+ return 0;
+}
+
+static int iommu_device_notifier(struct notifier_block *nb,
+ unsigned long action, void *data)
+{
+ struct device *dev = data;
+
+ if (action == BUS_NOTIFY_ADD_DEVICE)
+ return add_iommu_group(dev, NULL);
+ else if (action == BUS_NOTIFY_DEL_DEVICE)
+ return remove_iommu_group(dev);
+
+ return 0;
+}
+
+static struct notifier_block iommu_device_nb = {
+ .notifier_call = iommu_device_notifier,
+};
+
+static void iommu_bus_init(struct bus_type *bus, struct iommu_ops *ops)
+{
+ bus_register_notifier(bus, &iommu_device_nb);
+ bus_for_each_dev(bus, NULL, NULL, add_iommu_group);
+}
+
+/**
+ * bus_set_iommu - set iommu-callbacks for the bus
+ * @bus: bus.
+ * @ops: the callbacks provided by the iommu-driver
+ *
+ * This function is called by an iommu driver to set the iommu methods
+ * used for a particular bus. Drivers for devices on that bus can use
+ * the iommu-api after these ops are registered.
+ * This special function is needed because IOMMUs are usually devices on
+ * the bus itself, so the iommu drivers are not initialized when the bus
+ * is set up. With this function the iommu-driver can set the iommu-ops
+ * afterwards.
+ */
+int bus_set_iommu(struct bus_type *bus, struct iommu_ops *ops)
+{
+ if (bus->iommu_ops != NULL)
+ return -EBUSY;
+
+ bus->iommu_ops = ops;
+
+ /* Do IOMMU specific setup for this bus-type */
+ iommu_bus_init(bus, ops);
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(bus_set_iommu);
+
+bool iommu_present(struct bus_type *bus)
+{
+ return bus->iommu_ops != NULL;
+}
+EXPORT_SYMBOL_GPL(iommu_present);
+
+/**
+ * iommu_set_fault_handler() - set a fault handler for an iommu domain
+ * @domain: iommu domain
+ * @handler: fault handler
+ *
+ * This function should be used by IOMMU users which want to be notified
+ * whenever an IOMMU fault happens.
+ *
+ * The fault handler itself should return 0 on success, and an appropriate
+ * error code otherwise.
+ */
+void iommu_set_fault_handler(struct iommu_domain *domain,
+ iommu_fault_handler_t handler)
+{
+ BUG_ON(!domain);
+
+ domain->handler = handler;
+}
+EXPORT_SYMBOL_GPL(iommu_set_fault_handler);
+
+struct iommu_domain *iommu_domain_alloc(struct bus_type *bus)
+{
+ struct iommu_domain *domain;
+ int ret;
+
+ if (bus == NULL || bus->iommu_ops == NULL)
+ return NULL;
+
+ domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ if (!domain)
+ return NULL;
+
+ domain->ops = bus->iommu_ops;
+
+ ret = domain->ops->domain_init(domain);
+ if (ret)
+ goto out_free;
+
+ return domain;
+
+out_free:
+ kfree(domain);
+
+ return NULL;
+}
+EXPORT_SYMBOL_GPL(iommu_domain_alloc);
+
+void iommu_domain_free(struct iommu_domain *domain)
+{
+ if (likely(domain->ops->domain_destroy != NULL))
+ domain->ops->domain_destroy(domain);
+
+ kfree(domain);
+}
+EXPORT_SYMBOL_GPL(iommu_domain_free);
+
+int iommu_attach_device(struct iommu_domain *domain, struct device *dev)
+{
+ if (unlikely(domain->ops->attach_dev == NULL))
+ return -ENODEV;
+
+ return domain->ops->attach_dev(domain, dev);
+}
+EXPORT_SYMBOL_GPL(iommu_attach_device);
+
+void iommu_detach_device(struct iommu_domain *domain, struct device *dev)
+{
+ if (unlikely(domain->ops->detach_dev == NULL))
+ return;
+
+ domain->ops->detach_dev(domain, dev);
+}
+EXPORT_SYMBOL_GPL(iommu_detach_device);
+
+phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
+ unsigned long iova)
+{
+ if (unlikely(domain->ops->iova_to_phys == NULL))
+ return 0;
+
+ return domain->ops->iova_to_phys(domain, iova);
+}
+EXPORT_SYMBOL_GPL(iommu_iova_to_phys);
+
+int iommu_domain_has_cap(struct iommu_domain *domain,
+ unsigned long cap)
+{
+ if (unlikely(domain->ops->domain_has_cap == NULL))
+ return 0;
+
+ return domain->ops->domain_has_cap(domain, cap);
+}
+EXPORT_SYMBOL_GPL(iommu_domain_has_cap);
+
+int iommu_map(struct iommu_domain *domain, unsigned long iova,
+ phys_addr_t paddr, size_t size, int prot)
+{
+ unsigned long orig_iova = iova;
+ unsigned int min_pagesz;
+ size_t orig_size = size;
+ int ret = 0;
+
+ if (unlikely(domain->ops->map == NULL))
+ return -ENODEV;
+
+ /* find out the minimum page size supported */
+ min_pagesz = 1 << __ffs(domain->ops->pgsize_bitmap);
+
+ /*
+ * both the virtual address and the physical one, as well as
+ * the size of the mapping, must be aligned (at least) to the
+ * size of the smallest page supported by the hardware
+ */
+ if (!IS_ALIGNED(iova | paddr | size, min_pagesz)) {
+ pr_err("unaligned: iova 0x%lx pa 0x%lx size 0x%lx min_pagesz "
+ "0x%x\n", iova, (unsigned long)paddr,
+ (unsigned long)size, min_pagesz);
+ return -EINVAL;
+ }
+
+ pr_debug("map: iova 0x%lx pa 0x%lx size 0x%lx\n", iova,
+ (unsigned long)paddr, (unsigned long)size);
+
+ while (size) {
+ unsigned long pgsize, addr_merge = iova | paddr;
+ unsigned int pgsize_idx;
+
+ /* Max page size that still fits into 'size' */
+ pgsize_idx = __fls(size);
+
+ /* need to consider alignment requirements ? */
+ if (likely(addr_merge)) {
+ /* Max page size allowed by both iova and paddr */
+ unsigned int align_pgsize_idx = __ffs(addr_merge);
+
+ pgsize_idx = min(pgsize_idx, align_pgsize_idx);
+ }
+
+ /* build a mask of acceptable page sizes */
+ pgsize = (1UL << (pgsize_idx + 1)) - 1;
+
+ /* throw away page sizes not supported by the hardware */
+ pgsize &= domain->ops->pgsize_bitmap;
+
+ /* make sure we're still sane */
+ BUG_ON(!pgsize);
+
+ /* pick the biggest page */
+ pgsize_idx = __fls(pgsize);
+ pgsize = 1UL << pgsize_idx;
+
+ pr_debug("mapping: iova 0x%lx pa 0x%lx pgsize %lu\n", iova,
+ (unsigned long)paddr, pgsize);
+
+ ret = domain->ops->map(domain, iova, paddr, pgsize, prot);
+ if (ret)
+ break;
+
+ iova += pgsize;
+ paddr += pgsize;
+ size -= pgsize;
+ }
+
+ /* unroll mapping in case something went wrong */
+ if (ret)
+ iommu_unmap(domain, orig_iova, orig_size - size);
+
+ return ret;
+}
+EXPORT_SYMBOL_GPL(iommu_map);
+
+size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova, size_t size)
+{
+ size_t unmapped_page, unmapped = 0;
+ unsigned int min_pagesz;
+
+ if (unlikely(domain->ops->unmap == NULL))
+ return -ENODEV;
+
+ /* find out the minimum page size supported */
+ min_pagesz = 1 << __ffs(domain->ops->pgsize_bitmap);
+
+ /*
+ * The virtual address, as well as the size of the mapping, must be
+ * aligned (at least) to the size of the smallest page supported
+ * by the hardware
+ */
+ if (!IS_ALIGNED(iova | size, min_pagesz)) {
+ pr_err("unaligned: iova 0x%lx size 0x%lx min_pagesz 0x%x\n",
+ iova, (unsigned long)size, min_pagesz);
+ return -EINVAL;
+ }
+
+ pr_debug("unmap this: iova 0x%lx size 0x%lx\n", iova,
+ (unsigned long)size);
+
+ /*
+ * Keep iterating until we either unmap 'size' bytes (or more)
+ * or we hit an area that isn't mapped.
+ */
+ while (unmapped < size) {
+ size_t left = size - unmapped;
+
+ unmapped_page = domain->ops->unmap(domain, iova, left);
+ if (!unmapped_page)
+ break;
+
+ pr_debug("unmapped: iova 0x%lx size %lx\n", iova,
+ (unsigned long)unmapped_page);
+
+ iova += unmapped_page;
+ unmapped += unmapped_page;
+ }
+
+ return unmapped;
+}
+EXPORT_SYMBOL_GPL(iommu_unmap);
+
+int iommu_device_group(struct device *dev, unsigned int *groupid)
+{
+ if (iommu_present(dev->bus) && dev->bus->iommu_ops->device_group)
+ return dev->bus->iommu_ops->device_group(dev, groupid);
+
+ return -ENODEV;
+}
+EXPORT_SYMBOL_GPL(iommu_device_group);
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index 0f22722..6995940 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -114,13 +114,4 @@ source "drivers/media/radio/Kconfig"
source "drivers/media/dvb/Kconfig"
-#
-# TDMB drivers
-#
-
-source "drivers/media/tdmb/Kconfig"
-
-# ISDBT
-source "drivers/media/isdbt/Kconfig"
-
endif # MEDIA_SUPPORT
diff --git a/drivers/media/Makefile b/drivers/media/Makefile
index 7f8a1cc..64755c9 100644
--- a/drivers/media/Makefile
+++ b/drivers/media/Makefile
@@ -12,5 +12,3 @@ obj-y += common/ rc/ video/
obj-$(CONFIG_VIDEO_DEV) += radio/
obj-$(CONFIG_DVB_CORE) += dvb/
-obj-$(CONFIG_TDMB) += tdmb/
-obj-$(CONFIG_ISDBT) += isdbt/
diff --git a/drivers/media/isdbt/Kconfig b/drivers/media/isdbt/Kconfig
deleted file mode 100644
index d4fb1a6..0000000
--- a/drivers/media/isdbt/Kconfig
+++ /dev/null
@@ -1,14 +0,0 @@
-config ISDBT
- bool "isdbt"
-
-choice
- depends on ISDBT
- prompt "isdbt one-seg driver"
- default ISDBT_FC8150
-
- config ISDBT_FC8150
- bool "ISDBT_FC8150"
-
- config ISDBT_FC8100
- bool "ISDBT_FC8100"
-endchoice
diff --git a/drivers/media/isdbt/Makefile b/drivers/media/isdbt/Makefile
deleted file mode 100644
index c328411..0000000
--- a/drivers/media/isdbt/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Makefile for the kernel character device drivers.
-#
-
-
-#obj-$(CONFIG_ISDBT_FC8100) += isdbt.o
-obj-$(CONFIG_ISDBT_FC8100) += fc8100/
-obj-$(CONFIG_ISDBT) += fc8150/
diff --git a/drivers/media/isdbt/fc8100/KLlist.c b/drivers/media/isdbt/fc8100/KLlist.c
deleted file mode 100644
index 29ace3d..0000000
--- a/drivers/media/isdbt/fc8100/KLlist.c
+++ /dev/null
@@ -1,285 +0,0 @@
-#include "LKlist.h"
-
-position LKAdvanceList(listptr alist)
- /* Move current to the succeeding element. */
-{
- if (alist->current) {
- if (alist->icurrent == alist->n)
- alist->icurrent = 1;
- else
- ++alist->icurrent;
- }
- alist->current = alist->current->next;
- return((int)alist->current);
-}
-
-
-position LKReverseList(listptr alist) /* Move current to the preceeding element. */
-{
- if (alist->current) {
- if (alist->icurrent == 1)
- alist->icurrent = alist->n;
- else
- --alist->icurrent;
- }
- alist->current = alist->current->prior;
- return((int)alist->current);
-}
-
-
-position LKGotoInList(listptr alist, position i)
- /* Set current to the ith list element. */
-{
- position k;
-
- alist->current = alist->head;
- /* Closer to the tail or head? */
- if ((i - 1) < (alist->n - i)) {
-/* Head : traverse forward. */
- for (k = 1; k <= i - 1; k++)
- alist->current = alist->current->next;
- } else {
-/* Tail : traverse backward. */
- for (k = alist->n; k >= i; k--)
- alist->current = alist->current->prior;
- }
-
- alist->icurrent = i;
- return((int)alist->current);
-}
-
-
-void LKGetFromList(listptr alist, position i, void *data)
-/* Retrieve the current list element from the list into data. */
-{
- if (i <= alist->n) {
- LKGotoInList(alist, i);
-#if 0
- memmove(data, alist->current->data, alist->elSize);
-#else
- data = alist->current->data;
-#endif
-
- }
- return;
-}
-
-
-void LKPutInList(listptr alist, position i, void *data)
-/* Update the current list element with data */
-{
- if (i <= alist->n) {
- LKGotoInList(alist, i);
- memmove(alist->current->data, data, alist->elSize);
- }
- return;
-}
-
-
-position LKSearchList(listptr alist, void *data)
-{
- int i;
- int a, b;
-
- a = data;
-
- LKGotoInList(alist, 1);
- for (i = 0; i < (alist->n); i++) {
- b = alist->current->data;
-
- if (b == a)
- return alist->icurrent;
-
- LKAdvanceList(alist);
- }
-
- if (alist->icurrent == 1)
- return 0;
-}
-
-int LKInsertAfterInList(listptr alist, position i, void *data)
-/* Inserts a new list element following the current element. */
-{
- nodeptr p;
-
- if ((alist->head == NULL) || (i <= alist->n)) {
- if ((p = malloc(sizeof(listnode))) == NULL) {
- fprintf(stderr, "list.c: LKInsertAfterInList: malloc() [1] failed\n");
- return(-1);
- } else {
-#if 0
- if ((p->data = (void *) malloc(alist->elSize)) == NULL) {
- fprintf(stderr, "list.c: LKInsertAfterInList: malloc() [2] failed\n");
- return(-1);
- } else
-#endif
- {
-#if 0
- memmove(p->data, data, alist->elSize);
-#else
- p->data = data;
-#endif
- if (alist->head == NULL) {
-/* Empty list. */
- alist->head = p;
- alist->icurrent = 1;
- p->next = p;
- p->prior = p;
- } else { /* Adjust the linkage */
- LKGotoInList(alist, i);
- alist->current->next->prior = p;
- p->next = alist->current->next;
- p->prior = alist->current;
- alist->current->next = p;
- ++alist->icurrent;
- }
- alist->current = p;
- ++alist->n;
- }
- }
- }
- return(1);
-}
-
-int LKInsertBeforeInList(listptr alist, position i, void *data)
-/* Inserts a new list element preceeding the current element. */
-{
- int result = 0;
-
- if ((alist->head == NULL) || (i <= alist->n)) {
-/* Is list not empty? */
- if (alist->head != NULL) {
- LKGotoInList(alist, i);
- alist->current = alist->current->prior;
- --alist->icurrent;
- if (alist->icurrent == 0) { /* check for head */
- alist->icurrent = alist->n;
- }
- }
- result = LKInsertAfterInList(alist, alist->icurrent, data);
- /* used to be i not alist->icurrent */
-
- if (alist->current->next == alist->head) {
- /* Is insertion at list head? */
- alist->head = alist->current;
- alist->icurrent = 1;
- }
- }
- return(result);
-}
-
-
-void LKDeleteFromList(listptr alist, position i)
-/* Delete the current element. */
-{
- nodeptr precurrent;
-
- if ((alist->head != NULL) & (i <= alist->n)) {
- LKGotoInList(alist, i);
- precurrent = alist->current;
-
-
-/* Relink list to exclude the node to be deleted. */
- alist->current->prior->next = alist->current->next;
- alist->current->next->prior = alist->current->prior;
-
- /* Is tail node to be deleted? */
-
- if (precurrent->next == alist->head)
- alist->icurrent = 1;
- alist->current = alist->current->next;
- if (alist->n == 1) {
- alist->head = NULL;
- } else if (alist->head == precurrent) {
- alist->head = alist->current;
- }
- --alist->n;
-#if 0
- free(precurrent->data);
-#endif
- free(precurrent);
- precurrent = NULL;
- }
- return;
-}
-
-
-position LKCurrent(listptr alist)
- /* Return the position of current. */
-{
- return(alist->icurrent);
-}
-
-
-position LKLastInList(listptr alist)
- /* Return the current list size. */
-{
- return(alist->n);
-}
-
-
-int LKCreateList(linklist, space)
- /* Initialize package before first use. */
- listptr *linklist;
- position space;
-{
- listptr alist;
- if ((alist = (listptr) malloc(sizeof(list))) == NULL) {
- fprintf(stderr, "list.c: LKCreateList: malloc() failed\n");
- return(-1);
- } else {
- alist->head = NULL;
- alist->current = NULL;
- alist->n = 0;
- alist->icurrent = 0;
- alist->elSize = space;
- *linklist = alist;
- }
- return(1);
-}
-
-void LKClearList(listptr alist)
- /* Reset the list to empty. */
-{
- nodeptr prehead, q;
-
- prehead = alist->head;
-/* Is the list not empty? */
- if (alist->head != NULL) {
- do {
- q = alist->head;
- alist->head = alist->head->next;
- free(q->data);
- free(q);
- } while (alist->head != prehead);
- }
-
- /* Reinitialize the list. */
- alist->head = NULL;
- alist->current = NULL;
- alist->n = 0;
- alist->icurrent = 0;
- return;
-}
-
-
-int LKEmptyList(listptr alist)
- /* Is the list Empty? */
-{
- if (alist->head == NULL) {
- return((int) NULL);
- }
- return 1;
-}
-
-
-
-void LKZapList(listptr *alist)
- /* Reset the list to empty. */
-{
-
- LKClearList(*alist);
- free(*alist);
- *alist = NULL;
- return;
-}
diff --git a/drivers/media/isdbt/fc8100/LKlist.h b/drivers/media/isdbt/fc8100/LKlist.h
deleted file mode 100644
index b895866..0000000
--- a/drivers/media/isdbt/fc8100/LKlist.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef LKLIST_INC
-#define LKLIST_INC
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-typedef int position;
-
-typedef struct node *nodeptr;
-typedef struct node {
- void *data;
- nodeptr next;
- nodeptr prior;
-} listnode;
-
-typedef struct listrec *listptr;
-typedef struct listrec {
- nodeptr head;
- nodeptr current;
- position elSize;
- position n;
- position icurrent;
-} list;
-
-position LKAdvanceList(listptr);
-void LKClearList(listptr);
-int LKCreateList(listptr*, position);
-position LKCurrent(listptr);
-void LKDeleteFromList(listptr, position);
-int LKEmptyList(listptr);
-void LKGetFromList(listptr, position, void *);
-position LKGotoInList(listptr, position);
-int LKInsertAfterInList(listptr, position, void *);
-int LKInsertBeforeInList(listptr, position, void *);
-position LKSearchList(listptr, void *);
-position LKLastInList(listptr);
-void LKPutInList(listptr, position, void *);
-position LKReverseList(listptr);
-void LKZapList(listptr *);
-
-
-#endif
-/* LKLIST_INC */
diff --git a/drivers/media/isdbt/fc8100/Makefile b/drivers/media/isdbt/fc8100/Makefile
deleted file mode 100644
index c525531..0000000
--- a/drivers/media/isdbt/fc8100/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-#fci driver
-
-obj-$(CONFIG_ISDBT_FC8100) := isdbt.o
-isdbt-objs := fc8100.o bbm.o fc8100_bb.o fci_tun.o fci_hal.o fci_i2c.o fc8100_isr.o fc8100_tun.o fc8100_i2c.o fci_oal.o
-
-#KDIR := /home/android/workspace/S5PC100/kernel
-#KDIR := /usr/src/linux-headers-2.6.31-14-generic
-PWD := $(shell pwd)
-
-all:
- $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
-clean:
- rm -rf *.ko
- rm -rf *.mod.*
- rm -rf .*.cmd
- rm -rf *.o
diff --git a/drivers/media/isdbt/fc8100/bbm.c b/drivers/media/isdbt/fc8100/bbm.c
deleted file mode 100644
index c171281..0000000
--- a/drivers/media/isdbt/fc8100/bbm.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : bbm.c
-
- Description : API of dmb baseband module
-
- History :
- ----------------------------------------------------------------------
- 2009/11/28 jason initial
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fci_hal.h"
-#include "fci_tun.h"
-#include "fc8100_bb.h"
-#include "fc8100_isr.h"
-
-int BBM_RESET(HANDLE hDevice)
-{
- int res;
-
- res = fc8100_reset(hDevice);
-
- return res;
-}
-
-int BBM_PROBE(HANDLE hDevice)
-{
- int res;
-
- res = fc8100_probe(hDevice);
-
- return res;
-}
-
-int BBM_INIT(HANDLE hDevice)
-{
- int res;
-
- res = fc8100_init(hDevice);
-
- return res;
-}
-
-int BBM_DEINIT(HANDLE hDevice)
-{
- int res;
-
- res = fc8100_deinit(hDevice);
-
- return res;
-}
-
-int BBM_READ(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
-
- res = bbm_read(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_BYTE_READ(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
-
- res = bbm_byte_read(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_WORD_READ(HANDLE hDevice, u16 addr, u16 *data)
-{
- int res;
-
- res = bbm_word_read(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_LONG_READ(HANDLE hDevice, u16 addr, u32 *data)
-{
- int res;
-
- res = bbm_long_read(hDevice, addr, data);
-
- return BBM_OK;
-}
-
-int BBM_BULK_READ(HANDLE hDevice, u16 addr, u8 *data, u16 size)
-{
- int res;
-
- res = bbm_bulk_read(hDevice, addr, data, size);
-
- return res;
-}
-
-int BBM_WRITE(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
-
- res = bbm_write(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_BYTE_WRITE(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
-
- res = bbm_byte_write(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_WORD_WRITE(HANDLE hDevice, u16 addr, u16 data)
-{
- int res;
-
- res = bbm_word_write(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_LONG_WRITE(HANDLE hDevice, u16 addr, u32 data)
-{
- int res;
-
- res = bbm_long_write(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_BULK_WRITE(HANDLE hDevice, u16 addr, u8 *data, u16 size)
-{
- int res;
-
- res = bbm_bulk_write(hDevice, addr, data, size);
-
- return res;
-}
-
-int BBM_TUNER_READ(HANDLE hDevice, u8 addr, u8 alen, u8 *buffer, u8 len)
-{
- int res;
-
- res = tuner_i2c_read(hDevice, addr, alen, buffer, len);
-
- return res;
-}
-
-int BBM_TUNER_WRITE(HANDLE hDevice, u8 addr, u8 alen, u8 *buffer, u8 len)
-{
- int res;
-
- res = tuner_i2c_write(hDevice, addr, alen, buffer, len);
-
- return res;
-}
-
-int BBM_TUNER_SET_FREQ(HANDLE hDevice, u8 ch_num)
-{
- int res = BBM_OK;
-
- res = tuner_set_freq(hDevice, ch_num);
-
- return res;
-}
-
-int BBM_TUNER_GET_RSSI(HANDLE hDevice, s32 *rssi)
-{
- int res = BBM_OK;
-
- res = tuner_get_rssi(hDevice, rssi);
-
- return res;
-}
-
-int BBM_TUNER_SELECT(HANDLE hDevice, u32 product, u32 band)
-{
- int res = BBM_OK;
-
- res = tuner_select(hDevice, product, band);
-
- return res;
-}
-
-int BBM_TUNER_DESELECT(HANDLE hDevice)
-{
- int res = BBM_OK;
-
- res = tuner_deselect(hDevice);
-
- return res;
-}
-
-int BBM_HOSTIF_SELECT(HANDLE hDevice, u8 hostif)
-{
- int res = BBM_NOK;
-
- res = bbm_hostif_select(hDevice, hostif);
-
- return res;
-}
-
-int BBM_HOSTIF_DESELECT(HANDLE hDevice)
-{
- int res = BBM_NOK;
-
- res = bbm_hostif_deselect(hDevice);
-
- return res;
-}
-
-int BBM_CALLBACK_REGISTER(u32 userdata, int (*callback)(u32 userdata, u8 *data, int length))
-{
- gUserData = userdata;
- pCallback = callback;
-
- return BBM_OK;
-}
-
-int BBM_CALLBACK_DEREGISTER(HANDLE hDevice)
-{
- gUserData = 0;
- pCallback = NULL;
-
- return BBM_OK;
-}
-
-void BBM_ISR(HANDLE hDevice)
-{
- fc8100_isr(hDevice);
-}
diff --git a/drivers/media/isdbt/fc8100/bbm.h b/drivers/media/isdbt/fc8100/bbm.h
deleted file mode 100644
index a2a0cac..0000000
--- a/drivers/media/isdbt/fc8100/bbm.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : bbm.h
-
- Description : API of dmb baseband module
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-#ifndef __BBM_H__
-#define __BBM_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define DRIVER_VER "VER 1.0"
-
-#define BBM_HPI 0 /* EBI2 */
-#define BBM_SPI 1 /* SPI */
-#define BBM_I2C 2 /* I2C+TSIF */
-
-extern int BBM_RESET(HANDLE hDevice);
-extern int BBM_PROBE(HANDLE hDevice);
-extern int BBM_INIT(HANDLE hDevice);
-extern int BBM_DEINIT(HANDLE hDevice);
-
-extern int BBM_READ(HANDLE hDevice, u16 addr, u8 *data);
-extern int BBM_BYTE_READ(HANDLE hDevice, u16 addr, u8 *data);
-extern int BBM_WORD_READ(HANDLE hDevice, u16 addr, u16 *data);
-extern int BBM_LONG_READ(HANDLE hDevice, u16 addr, u32 *data);
-extern int BBM_BULK_READ(HANDLE hDevice, u16 addr, u8 *data, u16 size);
-extern int BBM_WRITE(HANDLE hDevice, u16 addr, u8 data);
-extern int BBM_BYTE_WRITE(HANDLE hDevice, u16 addr, u8 data);
-extern int BBM_WORD_WRITE(HANDLE hDevice, u16 addr, u16 data);
-extern int BBM_LONG_WRITE(HANDLE hDevice, u16 addr, u32 data);
-extern int BBM_BULK_WRITE(HANDLE hDevice, u16 addr, u8 *data, u16 size);
-
-extern int BBM_TUNER_READ(HANDLE hDevice, u8 addr, u8 alen, u8 *buffer, u8 len);
-extern int BBM_TUNER_WRITE(HANDLE hDevice, u8 addr, u8 alen, u8 *buffer, u8 len);
-extern int BBM_TUNER_SET_FREQ(HANDLE hDevice, u8 ch_num);
-extern int BBM_TUNER_GET_RSSI(HANDLE hDevice, s32 *rssi);
-extern int BBM_TUNER_SELECT(HANDLE hDevice, u32 product, u32 band);
-extern int BBM_TUNER_DESELECT(HANDLE hDevice);
-
-extern void BBM_ISR(HANDLE hDevice);
-
-extern int BBM_HOSTIF_SELECT(HANDLE hDevice, u8 hostif);
-extern int BBM_HOSTIF_DESELECT(HANDLE hDevice);
-
-extern int BBM_CALLBACK_REGISTER(u32 userdata, int (*callback)(u32 userdata, u8 *data, int length));
-extern int BBM_CALLBACK_DEREGISTER(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __BBM_H__ */
diff --git a/drivers/media/isdbt/fc8100/fc8100.c b/drivers/media/isdbt/fc8100/fc8100.c
deleted file mode 100644
index 1d4a7a3..0000000
--- a/drivers/media/isdbt/fc8100/fc8100.c
+++ /dev/null
@@ -1,271 +0,0 @@
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/errno.h>
-#include <linux/types.h>
-#include <linux/fcntl.h>
-#include <linux/miscdevice.h>
-
-#include <asm/uaccess.h>
-#include <asm/io.h>
-
-#include <linux/delay.h>
-#include <linux/gpio.h>
-
-#include <plat/gpio-cfg.h>
-#include <plat/gpio-core.h>
-#include <mach/regs-gpio.h>
-#include <mach/gpio.h>
-
-#include "fc8100.h"
-#include "bbm.h"
-#include "fci_oal.h"
-
-#define FC8100_NAME "isdbt"
-
-int dmb_open (struct inode *inode, struct file *filp);
-loff_t dmb_llseek (struct file *filp, loff_t off, int whence);
-ssize_t dmb_read (struct file *filp, char *buf, size_t count, loff_t *f_pos);
-ssize_t dmb_write (struct file *filp, const char *buf, size_t count, loff_t *f_pos);
-static long dmb_ioctl (struct file *filp, unsigned int cmd, unsigned long arg);
-int dmb_release (struct inode *inode, struct file *filp);
-
-/* GPIO Setting */
-void dmb_hw_setting(void);
-void dmb_hw_init(void);
-void dmb_hw_deinit(void);
-
-static struct file_operations dmb_fops = {
- .owner = THIS_MODULE,
- .llseek = dmb_llseek,
- .read = dmb_read,
- .write = dmb_write,
- .unlocked_ioctl = dmb_ioctl,
- .open = dmb_open,
- .release = dmb_release,
-};
-
-static struct miscdevice fc8100_misc_device = {
- .minor = MISC_DYNAMIC_MINOR,
- .name = FC8100_NAME,
- .fops = &dmb_fops,
-};
-
-int dmb_open (struct inode *inode, struct file *filp)
-{
- int num = MINOR(inode->i_rdev);
-
- /* ISDBT PWR ENABLE FOR I2C*/
- dmb_hw_setting();
- dmb_hw_init();
-
- PRINTF(0, "dmb open -> minor : %d\n", num);
-
- return 0;
-}
-
-loff_t dmb_llseek (struct file *filp, loff_t off, int whence)
-{
- PRINTF(0, "dmb llseek -> off : %08X, whence : %08X\n", off, whence);
- return 0x23;
-}
-
-ssize_t dmb_read (struct file *filp, char *buf, size_t count, loff_t *f_pos)
-{
- PRINTF(0, "dmb read -> buf : %08X, count : %08X \n", buf, count);
- return 0x33;
-}
-
-ssize_t dmb_write (struct file *filp, const char *buf, size_t count, loff_t *f_pos)
-{
- PRINTF(0, "dmb write -> buf : %08X, count : %08X \n", buf, count);
- return 0x43;
-}
-
-static long dmb_ioctl (struct file *filp, unsigned int cmd, unsigned long arg)
-{
- s32 res = BBM_NOK;
- int status = 0;
- int status_usr = 0;
- ioctl_info info;
- int size;
-
- if (_IOC_TYPE(cmd) != IOCTL_MAGIC)
- return -EINVAL;
- if (_IOC_NR(cmd) >= IOCTL_MAXNR)
- return -EINVAL;
-
- size = _IOC_SIZE(cmd);
-
- switch (cmd) {
- case IOCTL_DMB_RESET:
- res = BBM_RESET(0);
- break;
- case IOCTL_DMB_INIT:
- res = BBM_INIT(0);
- break;
- case IOCTL_DMB_BYTE_READ:
- status = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_BYTE_READ(0, (u16)info.buff[0], (u8 *)(&info.buff[1]));
- status_usr = copy_to_user((void *)arg, (void *)&info, size);
- break;
- case IOCTL_DMB_WORD_READ:
- status = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_WORD_READ(0, (u16)info.buff[0], (u16 *)(&info.buff[1]));
- status_usr = copy_to_user((void *)arg, (void *)&info, size);
- break;
- case IOCTL_DMB_LONG_READ:
- status = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_LONG_READ(0, (u16)info.buff[0], (u32 *)(&info.buff[1]));
- status_usr = copy_to_user((void *)arg, (void *)&info, size);
- break;
- case IOCTL_DMB_BULK_READ:
- status = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_BULK_READ(0, (u16)info.buff[0], (u8 *)(&info.buff[2]), info.buff[1]);
- status_usr = copy_to_user((void *)arg, (void *)&info, size);
- break;
- case IOCTL_DMB_BYTE_WRITE:
- status = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_BYTE_WRITE(0, (u16)info.buff[0], (u8)info.buff[1]);
- break;
- case IOCTL_DMB_WORD_WRITE:
- status = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_WORD_WRITE(0, (u16)info.buff[0], (u16)info.buff[1]);
- break;
- case IOCTL_DMB_LONG_WRITE:
- status = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_LONG_WRITE(0, (u16)info.buff[0], (u32)info.buff[1]);
- break;
- case IOCTL_DMB_BULK_WRITE:
- status = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_BULK_WRITE(0, (u16)info.buff[0], (u8 *)(&info.buff[2]), info.buff[1]);
- break;
- case IOCTL_DMB_TUNER_SELECT:
- status = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_TUNER_SELECT(0, (u32)info.buff[0], 0);
- break;
- case IOCTL_DMB_TUNER_READ:
- status = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_TUNER_READ(0, (u8)info.buff[0], (u8)info.buff[1], (u8 *)(&info.buff[3]), (u8)info.buff[2]);
- status_usr = copy_to_user((void *)arg, (void *)&info, size);
- break;
- case IOCTL_DMB_TUNER_WRITE:
- status = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_TUNER_WRITE(0, (u8)info.buff[0], (u8)info.buff[1], (u8 *)(&info.buff[3]), (u8)info.buff[2]);
- break;
- case IOCTL_DMB_TUNER_SET_FREQ:
- status = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_TUNER_SET_FREQ(0, (u8)info.buff[0]);
- break;
- case IOCTL_DMB_POWER_ON:
- PRINTF(0, "DMB_POWER_ON enter..\n");
- dmb_hw_init();
- break;
- case IOCTL_DMB_POWER_OFF:
- PRINTF(0, "DMB_POWER_OFF enter..\n");
- dmb_hw_deinit();
- break;
- }
- if ((status < 0) || (status_usr < 0)) {
- PRINTF(0, " copy to user or copy from user : ERROR..\n");
- return -EINVAL;
- }
-
- /* return status */
- if (res < 0)
- res = -BBM_NOK;
- else
- res = BBM_OK;
-
- return res;
-}
-
-int dmb_release(struct inode *inode, struct file *filp)
-{
- /* ISDBT PWR ENABLE FOR I2C*/
- PRINTF(0, "dmb release\n");
- return 0;
-}
-
-void dmb_hw_setting(void)
-{
- s3c_gpio_cfgpin(GPIO_ISDBT_SDA_28V, S3C_GPIO_INPUT);
- s3c_gpio_setpull(GPIO_ISDBT_SDA_28V, S3C_GPIO_PULL_NONE);
- s3c_gpio_cfgpin(GPIO_ISDBT_SCL_28V, S3C_GPIO_INPUT);
- s3c_gpio_setpull(GPIO_ISDBT_SCL_28V, S3C_GPIO_PULL_NONE);
- s3c_gpio_cfgpin(GPIO_ISDBT_PWR_EN, S3C_GPIO_OUTPUT);
- gpio_set_value(GPIO_ISDBT_PWR_EN, GPIO_LEVEL_LOW);
- s3c_gpio_cfgpin(GPIO_ISDBT_RST, S3C_GPIO_OUTPUT);
- gpio_set_value(GPIO_ISDBT_RST, GPIO_LEVEL_HIGH);
-}
-
-void dmb_init_hw_setting(void)
-{
- s3c_gpio_cfgpin(GPIO_ISDBT_SDA_28V, S3C_GPIO_INPUT);
- s3c_gpio_setpull(GPIO_ISDBT_SDA_28V, S3C_GPIO_PULL_NONE);
- s3c_gpio_cfgpin(GPIO_ISDBT_SCL_28V, S3C_GPIO_INPUT);
- s3c_gpio_setpull(GPIO_ISDBT_SCL_28V, S3C_GPIO_PULL_NONE);
- s3c_gpio_cfgpin(GPIO_ISDBT_PWR_EN, S3C_GPIO_OUTPUT);
- gpio_set_value(GPIO_ISDBT_PWR_EN, GPIO_LEVEL_LOW);
- s3c_gpio_cfgpin(GPIO_ISDBT_RST, S3C_GPIO_OUTPUT);
- gpio_set_value(GPIO_ISDBT_RST, GPIO_LEVEL_LOW);
-}
-
-void dmb_hw_init(void)
-{
- mdelay(1);
- gpio_set_value(GPIO_ISDBT_PWR_EN, GPIO_LEVEL_HIGH);
- mdelay(1);
- gpio_set_value(GPIO_ISDBT_RST, GPIO_LEVEL_HIGH);
- mdelay(100);
-}
-
-void dmb_hw_deinit(void)
-{
- mdelay(1);
- gpio_set_value(GPIO_ISDBT_RST, GPIO_LEVEL_LOW);
- mdelay(1);
- gpio_set_value(GPIO_ISDBT_PWR_EN, GPIO_LEVEL_LOW);
- mdelay(100);
-}
-
-
-int dmb_init(void)
-{
- int result;
-
- PRINTF(0, "dmb dmb_init\n");
-
- dmb_init_hw_setting();
-/*
- dmb_hw_init();
-*/
- /*misc device registration*/
- result = misc_register(&fc8100_misc_device);
-
- if (result < 0)
- return result;
-
- BBM_HOSTIF_SELECT(0, BBM_I2C);
-
- dmb_hw_deinit();
-
- return 0;
-}
-
-void dmb_exit(void)
-{
- PRINTF(0, "dmb dmb_exit\n");
-
- BBM_HOSTIF_DESELECT(0);
- dmb_hw_deinit();
-
- /*misc device deregistration*/
- misc_deregister(&fc8100_misc_device);
-}
-
-module_init(dmb_init);
-module_exit(dmb_exit);
-
-MODULE_LICENSE("Dual BSD/GPL");
diff --git a/drivers/media/isdbt/fc8100/fc8100.h b/drivers/media/isdbt/fc8100/fc8100.h
deleted file mode 100644
index ceffe83..0000000
--- a/drivers/media/isdbt/fc8100/fc8100.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : bbm.c
-
- Description : API of dmb baseband module
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-#ifndef __DMB_H__
-#define __DMB_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "fci_types.h"
-
-#define MAX_OPEN_NUM 8
-
-#define IOCTL_MAGIC 't'
-
-typedef struct {
- unsigned long size;
- unsigned long buff[128];
-} ioctl_info;
-
-#define IOCTL_MAXNR 22
-
-#define IOCTL_DMB_RESET _IO(IOCTL_MAGIC, 0)
-#define IOCTL_DMB_PROBE _IO(IOCTL_MAGIC, 1)
-#define IOCTL_DMB_INIT _IO(IOCTL_MAGIC, 2)
-#define IOCTL_DMB_DEINIT _IO(IOCTL_MAGIC, 3)
-
-#define IOCTL_DMB_BYTE_READ _IOWR(IOCTL_MAGIC, 4, ioctl_info)
-#define IOCTL_DMB_WORD_READ _IOWR(IOCTL_MAGIC, 5, ioctl_info)
-#define IOCTL_DMB_LONG_READ _IOWR(IOCTL_MAGIC, 6, ioctl_info)
-#define IOCTL_DMB_BULK_READ _IOWR(IOCTL_MAGIC, 7, ioctl_info)
-
-#define IOCTL_DMB_BYTE_WRITE _IOW(IOCTL_MAGIC, 8, ioctl_info)
-#define IOCTL_DMB_WORD_WRITE _IOW(IOCTL_MAGIC, 9, ioctl_info)
-#define IOCTL_DMB_LONG_WRITE _IOW(IOCTL_MAGIC, 10, ioctl_info)
-#define IOCTL_DMB_BULK_WRITE _IOW(IOCTL_MAGIC, 11, ioctl_info)
-
-#define IOCTL_DMB_TUNER_READ _IOWR(IOCTL_MAGIC, 12, ioctl_info)
-#define IOCTL_DMB_TUNER_WRITE _IOW(IOCTL_MAGIC, 13, ioctl_info)
-
-#define IOCTL_DMB_TUNER_SET_FREQ _IOW(IOCTL_MAGIC, 14, ioctl_info)
-#define IOCTL_DMB_TUNER_SELECT _IOW(IOCTL_MAGIC, 15, ioctl_info)
-#define IOCTL_DMB_TUNER_DESELECT _IO(IOCTL_MAGIC, 16)
-#define IOCTL_DMB_TUNER_GET_RSSI _IOWR(IOCTL_MAGIC, 17, ioctl_info)
-
-#define IOCTL_DMB_HOSTIF_SELECT _IOW(IOCTL_MAGIC, 18, ioctl_info)
-#define IOCTL_DMB_HOSTIF_DESELECT _IO(IOCTL_MAGIC, 19)
-
-#define IOCTL_DMB_POWER_ON _IO(IOCTL_MAGIC, 20)
-#define IOCTL_DMB_POWER_OFF _IO(IOCTL_MAGIC, 21)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8100/fc8100_bb.c b/drivers/media/isdbt/fc8100/fc8100_bb.c
deleted file mode 100644
index 4e18ff7..0000000
--- a/drivers/media/isdbt/fc8100/fc8100_bb.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8100_bb.c
-
- Description : API of dmb baseband module
-
- History :
- ----------------------------------------------------------------------
- 2009/09/29 bruce initial
-*******************************************************************************/
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fc8100_regs.h"
-#include "fci_hal.h"
-
-#define BB_SW_RESET_USE 1 /* 0: NOT USE 1. USE */
-
-/*
-select BB Xtal frequency
-16Mhz: 16000 18Mhz:18000 19.2Mhz:19200 24Mhz:24000
-26Mhz:26000 32Mhz:32000 40Mhz:40000
-*/
-#define FC8100_FREQ_XTAL_BB 26000
-
-static int fc8100_bb_pll_set(HANDLE hDevice, u32 xtal)
-{
- int res = BBM_NOK;
-
- if (BB_SW_RESET_USE) {
- res = bbm_write(hDevice, BBM_SYSRST, 0x01); /* System Reset */
- if (res)
- return res;
- msWait(10);
- }
-
- switch (xtal) {
- case 16000:
- res = bbm_write(hDevice, BBM_PLL0 , 0x0F); /* PLL 16MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL1, 0x50); /* PLL 16MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL2, 0xBF); /* PLL 16MHz Setting */
- break;
- case 18000:
- res = bbm_write(hDevice, BBM_PLL0, 0x11); /* PLL 18MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL1, 0x50); /* PLL 18MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL2, 0xBF); /* PLL 18MHz Setting */
- break;
- case 19200:
- res = bbm_write(hDevice, BBM_PLL0, 0x09); /* PLL 19.2MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL1, 0x50); /* PLL 19.2MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL2, 0x63); /* PLL 19.2MHz Setting */
- break;
- case 24000:
- res = bbm_write(hDevice, BBM_PLL0, 0x17); /* PLL 24MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL1, 0x50); /* PLL 24MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL2, 0xBF); /* PLL 24MHz Setting */
- break;
- case 26000:
- res = bbm_write(hDevice, BBM_PLL0, 0x19); /* PLL 26MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL1, 0x50); /* PLL 26MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL2, 0xBF); /* PLL 26MHz Setting */
- break;
- case 32000:
- res = bbm_write(hDevice, BBM_PLL0, 0x1F); /* PLL 32MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL1, 0x50); /* PLL 32MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL2, 0xBF); /* PLL 32MHz Setting */
- break;
- case 40000:
- res = bbm_write(hDevice, BBM_PLL0, 0x27); /* PLL 40MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL1, 0x30); /* PLL 40MHz Setting */
- res |= bbm_write(hDevice, BBM_PLL2, 0x9F); /* PLL 40MHz Setting */
- break;
- default:
- return BBM_NOK;
- break;
- }
-
- return res;
-}
-
-static int fc8100_ofdm_Init(HANDLE hDevice)
-{
- int res = BBM_NOK;
-#if defined(CONFIG_VIDEO_TSI)
- /* General Setting */
- res = bbm_write(hDevice,BBM_INCTRL, 0x03); // IF Low injenction
- res |= bbm_write(hDevice,BBM_OUTCTRL0 , 0x28); // TS Setting 0x28
- res |= bbm_write(hDevice,BBM_OUTCTRL1, 0x11); // TS Serial Out
- res |= bbm_write(hDevice,BBM_GPIOSEL1, 0xA0); // PCKETERR, LOCK out
- res |= bbm_write(hDevice,BBM_RSEPER, BER_PACKET_SIZE); // BER counter update period @ 256 TSP
- res |= bbm_write(hDevice,BBM_RSERST, 0x01); // reset for BER counter change
- res |= bbm_write(hDevice,BBM_THRURS, 0x00); // Pst-Rs
-#else
- /* General Setting */
- res = bbm_write(hDevice, BBM_INCTRL, 0x03); /* IF Low injenction */
- /*
- data clock always on : 0x28
- data clock vaild pkt on : 0x2D
- fci default : 0x28
- modify for c210_spi : 0x2D
- */
- res |= bbm_write(hDevice, BBM_OUTCTRL0 , 0x2D); /* TS Setting 0x28 */
-
- /* cs active low :0x12
- cs active high :0x10
- fci default : 0x10
- modify for c210_spi(only active low) : 0x12
- */
- res |= bbm_write(hDevice, BBM_OUTCTRL1, 0x12); /* TS Serial Out */
- res |= bbm_write(hDevice, BBM_GPIOSEL1, 0xA0); /* PCKETERR, LOCK out */
- res |= bbm_write(hDevice, BBM_RSEPER, BER_PACKET_SIZE); /* BER counter update period @ 256 TSP */
- res |= bbm_write(hDevice, BBM_RSERST, 0x01); /* reset for BER counter change */
- res |= bbm_write(hDevice, BBM_THRURS, 0x00); /* Pst-Rs */
-#endif
- /* AGC */
- res |= bbm_write(hDevice, BBM_AGTIME, 0x0E); /* Sync. Speed */
- res |= bbm_write(hDevice, BBM_AGREF1, 0x40); /* Sensitivity */
-
- /* Digital AGC Setting */
- res |= bbm_write(hDevice, BBM_DAM3REF0, 0x00); /* multipath measure */
- res |= bbm_write(hDevice, BBM_DAM3REF1, 0x80); /* multipath measure */
- res |= bbm_write(hDevice, BBM_DALPG, 0x01); /* Shadowing */
-
- /* Sync. */
- res |= bbm_write(hDevice, BBM_SYATTH, 0x58); /*Sync. Speed */
- res |= bbm_write(hDevice, BBM_SYSW2, 0x4E); /* Move Ini. Window Pos. (64point) */
-
- /* TMCC */
- res |= bbm_write(hDevice, BBM_TMCTRL1, 0xEB); /* Sync. Speed ([7:5] default) */
- res |= bbm_write(hDevice, BBM_TMCTRL2, 0x60); /* Avoid Count Down Error */
-
- /* CF Setting */
- res |= bbm_write(hDevice, BBM_FTCTRL, 0x33); /* TU6 & Multipath */
- res |= bbm_write(hDevice, BBM_EQCONF, 0x08); /* Sensitivity */
-
- /* De-Noise Filter */
- res |= bbm_write(hDevice, BBM_EQCTRL, 0x14); /* DNF Ini Setting */
- res |= bbm_write(hDevice, BBM_GNFCNT1, 0xE4); /* DNF On/Off Setting */
- res |= bbm_write(hDevice, BBM_WINPTMN, 0x09); /* 12point from Symbol Head */
- res |= bbm_write(hDevice, BBM_IFCTRL, 0x11); /* for Clip */
-
- /* Window Position for 2path Raylength */
- res |= bbm_write(hDevice, BBM_WINCTRL1, 0x24); /* Window Position */
- res |= bbm_write(hDevice, BBM_WINCTRL2_1, 0x42); /* move limit & timing */
-
- /* GI */
- res |= bbm_write(hDevice, BBM_GICCNT1, 0x77); /* m Up/Dn count slow */
- res |= bbm_write(hDevice, BBM_WINTHTR, 0x0B); /* Pst-Ghost DU=5dB */
- /* Ghost */
- res |= bbm_write(hDevice, BBM_GNFSNTH, 0x04); /* Pst-Ghost 11dB */
- res |= bbm_write(hDevice, BBM_GNFCNT2, 0x0A); /* Skip for 6path Multipath*/
- res |= bbm_write(hDevice, BBM_WINCTRL, 0x35); /* Pre-Ghost 13dB */
- res |= bbm_write(hDevice, BBM_IFUN, 0x02); /* Clp Off */
-
- /* Switch Interpolation */
- res |= bbm_write(hDevice, BBM_EQSI1, 0x3E); /* Fav with 512symbol */
- res |= bbm_write(hDevice, BBM_EQSI2, 0x10); /* Threshold */
-
- /* External LNA Control */
- res |= bbm_write(hDevice, BBM_GPIOSEL0, 0x01);
- res |= bbm_write(hDevice, BBM_AWCTRL, 0x2D);
- res |= bbm_write(hDevice, BBM_AWONTH, 0x20); /* LNA On CNR = 9sB */
- res |= bbm_write(hDevice, BBM_AWOFFTH, 0x10); /* LNA Off CNR+13dB */
- res |= bbm_write(hDevice, BBM_AWAGCTH, 0x01);
-
- res |= bbm_write(hDevice, BBM_SYSRST, 0x02); /* S/W Reset */
-
- return res;
-}
-
-int fc8100_reset(HANDLE hDevice)
-{
- int res = BBM_NOK;
- res = bbm_write(hDevice, BBM_SYSRST, 0x02);
- return res;
-}
-
-int fc8100_probe(HANDLE hDevice)
-{
- int res = BBM_NOK;
- u8 ver;
-
- res = bbm_read(hDevice, BBM_VERSION, &ver);
-
- if (ver != 0x41)
- res = BBM_NOK ;
-
- return res;
-}
-
-int fc8100_init(HANDLE hDevice)
-{
- int res = BBM_NOK;
-
- res = fc8100_bb_pll_set(hDevice, FC8100_FREQ_XTAL_BB);
- res |= fc8100_ofdm_Init(hDevice);
-
- return res;
-}
-
-int fc8100_deinit(HANDLE hDevice)
-{
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8100/fc8100_bb.h b/drivers/media/isdbt/fc8100/fc8100_bb.h
deleted file mode 100644
index db7a414..0000000
--- a/drivers/media/isdbt/fc8100/fc8100_bb.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8100_bb.h
-
- Description : baseband header file
-
- History :
- ----------------------------------------------------------------------
- 2009/09/29 bruce initial
-*******************************************************************************/
-
-#ifndef __FC8100_BB_H__
-#define __FC8100_BB_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8100_reset(HANDLE hDevice);
-extern int fc8100_probe(HANDLE hDevice);
-extern int fc8100_init(HANDLE hDevice);
-extern int fc8100_deinit(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8100/fc8100_i2c.c b/drivers/media/isdbt/fc8100/fc8100_i2c.c
deleted file mode 100644
index 7f189f0..0000000
--- a/drivers/media/isdbt/fc8100/fc8100_i2c.c
+++ /dev/null
@@ -1,349 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8100_i2c.c
-
- Description : fc8100 host interface
-
- History :
- ----------------------------------------------------------------------
- 2009/09/29 bruce initial
-*******************************************************************************/
-#include <linux/module.h>
-#include <linux/input.h>
-#include <linux/interrupt.h>
-#include <linux/platform_device.h>
-#include <linux/i2c.h>
-#include <linux/delay.h>
-#include <linux/slab.h>
-#include <linux/gpio.h>
-#include <plat/gpio-cfg.h>
-#include <plat/gpio-core.h>
-#include <mach/regs-gpio.h>
-#include <mach/regs-clock.h>
-#include "fci_types.h"
-#include "fci_oal.h"
-
-#define FC8100_I2C_ADDR 0x77
-#define I2C_M_FCIRD 1
-#define I2C_M_FCIWR 0
-#define I2C_MAX_SEND_LENGTH 300
-
-struct i2c_ts_driver{
- struct i2c_client *client;
- struct input_dev *input_dev;
- struct work_struct work;
-};
-
-struct i2c_client *fc8100_i2c;
-
-struct i2c_driver fc8100_i2c_driver;
-
-static int i2c_bb_read(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-
-static int fc8100_i2c_probe(struct i2c_client *i2c_client,
- const struct i2c_device_id *id)
-{
- fc8100_i2c = i2c_client;
- i2c_set_clientdata(i2c_client, NULL);
-
- return 0;
-}
-
-static int fc8100_remove(struct i2c_client *client)
-{
- return 0;
-}
-
-static const struct i2c_device_id fc8100_id[] = {
- { "isdbti2c", 0 },
- { },
-};
-
-struct i2c_driver fc8100_i2c_driver = {
- .driver = {
- .name = "fc8100_i2c",
- .owner = THIS_MODULE,
- },
- .probe = fc8100_i2c_probe,
- .remove = fc8100_remove,
- .id_table = fc8100_id,
-};
-
-static int i2c_init(void)
-{
- int res;
-
- printk("fc8100_i2c_drv_init ENTER...\n");
- fc8100_i2c = kzalloc(sizeof(struct i2c_ts_driver), GFP_KERNEL);
-
- if (fc8100_i2c == NULL)
- return -ENOMEM;
-
- res = i2c_add_driver(&fc8100_i2c_driver);
-
- return res;
-}
-
-static int i2c_deinit(void)
-{
- printk("fc8100_i2c_drv_deinit ENTER...\n");
-
- i2c_del_driver(&fc8100_i2c_driver);
-
- return 0;
-}
-
-static int i2c_bb_read(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- struct i2c_msg rmsg[2];
- unsigned char i2c_data[1];
-
- rmsg[0].addr = fc8100_i2c->addr;
- rmsg[0].flags = I2C_M_FCIWR;
- rmsg[0].len = 1;
- rmsg[0].buf = i2c_data;
- i2c_data[0] = addr & 0xff;
-
- rmsg[1].addr = fc8100_i2c->addr;
- rmsg[1].flags = I2C_M_FCIRD;
- rmsg[1].len = length;
- rmsg[1].buf = data;
- res = i2c_transfer(fc8100_i2c->adapter, &rmsg[0], 2);
-
- /* return status */
- if (res >= 0)
- res = 0;
-
- return res;
-}
-
-static int i2c_bb_write(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- struct i2c_msg wmsg;
- unsigned char i2c_data[I2C_MAX_SEND_LENGTH];
-
- if (length+1 > I2C_MAX_SEND_LENGTH) {
- printk(".......error");
- return -ENODEV;
- }
- wmsg.addr = fc8100_i2c->addr;
- wmsg.flags = I2C_M_FCIWR;
- wmsg.len = length + 1;
- wmsg.buf = i2c_data;
-
- i2c_data[0] = addr & 0xff;
- memcpy(&i2c_data[1], data, length);
-
- res = i2c_transfer(fc8100_i2c->adapter, &wmsg, 1);
-
- /* return status */
- if (res >= 0)
- res = 0;
-
- return res;
-}
-
-static int i2c_rf_read(HANDLE hDevice, u8 addr, u8 *data, u8 length)
-{
- int res;
- struct i2c_msg rmsg[3];
- unsigned char i2c_rp_data[2];
- unsigned char i2c_data[1];
-
- /* printk("i2c_rf_read ENTER addr : %x, length : %d\n", addr, length); */
- rmsg[0].addr = fc8100_i2c->addr;
- rmsg[0].flags = I2C_M_FCIWR;
- rmsg[0].len = 2;
- rmsg[0].buf = i2c_rp_data;
- i2c_rp_data[0] = 0x02;
- i2c_rp_data[1] = 0x01;
-
- rmsg[1].addr = fc8100_i2c->addr;
- rmsg[1].flags = I2C_M_FCIWR;
- rmsg[1].len = 1;
- rmsg[1].buf = i2c_data;
- i2c_data[0] = addr & 0xff;
-
- rmsg[2].addr = fc8100_i2c->addr;
- rmsg[2].flags = I2C_M_FCIRD;
- rmsg[2].len = length;
- rmsg[2].buf = data;
-
- res = i2c_transfer(fc8100_i2c->adapter, &rmsg[0], 3);
- /* printk("i2c_rf_read data : %x\n", data[0]); */
-
- /* return status */
- if (res >= 0)
- res = 0;
-
- return res;
-}
-
-static int i2c_rf_write(HANDLE hDevice, u8 addr, u8 *data, u8 length)
-{
- int res;
- struct i2c_msg wmsg[2];
- unsigned char i2c_rp_data[2];
- unsigned char i2c_data[I2C_MAX_SEND_LENGTH];
-
- /* printk("i2c_rf_write ENTER addr : %x, data : %x, length : %d\n", addr, data[0], length); */
- if (length+1 > I2C_MAX_SEND_LENGTH) {
- printk(".......error");
- return -ENODEV;
- }
-
- wmsg[0].addr = fc8100_i2c->addr;
- wmsg[0].flags = I2C_M_FCIWR;
- wmsg[0].len = 2;
- wmsg[0].buf = i2c_rp_data;
- i2c_rp_data[0] = 0x02;
- i2c_rp_data[1] = 0x01;
-
- wmsg[1].addr = fc8100_i2c->addr;
- wmsg[1].flags = I2C_M_FCIWR;
- wmsg[1].len = length+1;
- wmsg[1].buf = i2c_data;
- i2c_data[0] = addr & 0xff;
- memcpy(&i2c_data[1], data, length);
-
- res = i2c_transfer(fc8100_i2c->adapter, &wmsg[0], 2);
-
- /* return status */
- if (res >= 0)
- res = 0;
-
- return res;
-}
-
-int fc8100_i2c_init(HANDLE hDevice, u16 param1, u16 param2)
-{
- int res;
-
- res = i2c_init();
-
- return res;
-}
-
-int fc8100_i2c_byteread(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res = BBM_NOK;
-
- /* PRINTF(0, "fc8100_i2c_byteread 0x%x\n", addr); */
- res = i2c_bb_read(hDevice, addr, (u8 *)data, 1);
-
- return res;
-}
-
-int fc8100_i2c_wordread(HANDLE hDevice, u16 addr, u16 *data)
-{
- int res = BBM_NOK;
-
- /* PRINTF(0, "fc8100_i2c_wordread 0x%x\n", addr); */
- res = i2c_bb_read(hDevice, addr, (u8 *)data, 2);
-
- return res;
-}
-
-int fc8100_i2c_longread(HANDLE hDevice, u16 addr, u32 *data)
-{
- int res = BBM_NOK;
-
- /* PRINTF(0, "fc8100_i2c_longread 0x%x\n", addr); */
- res = i2c_bb_read(hDevice, addr, (u8 *)data, 4);
-
- return res;
-}
-
-int fc8100_i2c_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 size)
-{
- int res = BBM_NOK;
-
- /* PRINTF(0, "fc8100_i2c_bulkread 0x%x\n", addr); */
- res = i2c_bb_read(hDevice, addr, (u8 *)data, size);
-
- return res;
-}
-
-int fc8100_i2c_bytewrite(HANDLE hDevice, u16 addr, u8 data)
-{
- int res = BBM_NOK;
-
- res = i2c_bb_write(hDevice, addr, (u8 *)&data, 1);
-
- return res;
-}
-
-int fc8100_i2c_wordwrite(HANDLE hDevice, u16 addr, u16 data)
-{
- int res = BBM_NOK;
-
- res = i2c_bb_write(hDevice, addr, (u8 *)&data, 2);
-
- return res;
-}
-
-int fc8100_i2c_longwrite(HANDLE hDevice, u16 addr, u32 data)
-{
- int res = BBM_NOK;
-
- res = i2c_bb_write(hDevice, addr, (u8 *)&data, 4);
-
- return res;
-}
-
-int fc8100_i2c_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 size)
-{
- int res = BBM_NOK;
-
- res = i2c_bb_write(hDevice, addr, (u8 *)&data, size);
-
- return res;
-}
-
-int fc8100_i2c_dataread(HANDLE hDevice, u16 addr, u8 *data, u16 size)
-{
- int res = BBM_NOK;
-
- return res;
-}
-
-int fc8100_rf_bulkread(HANDLE hDevice, u8 addr, u8 *data, u8 size)
-{
- int res = BBM_NOK;
-
- res = i2c_rf_read(hDevice, addr, (u8 *)data, size);
-
- return res;
-}
-
-int fc8100_rf_bulkwrite(HANDLE hDevice, u8 addr, u8 *data, u8 size)
-{
- int res = BBM_NOK;
-
- res = i2c_rf_write(hDevice, addr, (u8 *)data, size);
-
- return res;
-}
-
-int fc8100_i2c_deinit(HANDLE hDevice)
-{
- int res = BBM_NOK;
-
- res = i2c_deinit();
-
- return res;
-}
-
-int fc8100_spi_init(HANDLE hDevice, u16 param1, u16 param2)
-{
-
- return BBM_OK;
-}
-
-int fc8100_spi_dataread(HANDLE hDevice, u16 addr, u8 *pBuf, u16 nLength)
-{
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8100/fc8100_i2c.h b/drivers/media/isdbt/fc8100/fc8100_i2c.h
deleted file mode 100644
index 3bd2a13..0000000
--- a/drivers/media/isdbt/fc8100/fc8100_i2c.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8100_i2c.h
-
- Description : API of dmb baseband module
-
- History :
- ----------------------------------------------------------------------
- 2009/10/01 bruce initial
-*******************************************************************************/
-
-#ifndef __FC8100_I2C__
-#define __FC8100_I2C__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8100_i2c_init(HANDLE hDevice, u16 param1, u16 param2);
-
-extern int fc8100_i2c_byteread(HANDLE hDevice, u16 param1, u8 *param2);
-extern int fc8100_i2c_wordread(HANDLE hDevice, u16 param1, u16 *param2);
-extern int fc8100_i2c_longread(HANDLE hDevice, u16 param1, u32 *param2);
-extern int fc8100_i2c_bulkread(HANDLE hDevice, u16 param1, u8 *param2, u16 param3);
-extern int fc8100_i2c_bytewrite(HANDLE hDevice, u16 param1, u8 param2);
-extern int fc8100_i2c_wordwrite(HANDLE hDevice, u16 param1, u16 param2);
-extern int fc8100_i2c_longwrite(HANDLE hDevice, u16 param1, u32 param2);
-extern int fc8100_i2c_bulkwrite(HANDLE hDevice, u16 param1, u8 *param2, u16 param3);
-
-extern int fc8100_i2c_deinit(HANDLE hDevice);
-
-extern int fc8100_rf_bulkread(HANDLE hDevice, u8 addr, u8 *data, u8 len);
-extern int fc8100_rf_bulkwrite(HANDLE hDevice, u8 addr, u8 *data, u8 len);
-
-extern int fc8100_spi_init(HANDLE hDevice, u16 param1, u16 param2);
-extern int fc8100_spi_dataread(HANDLE hDevice, u16 addr, u8 *pBuf, u16 nLength);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8100/fc8100_isr.c b/drivers/media/isdbt/fc8100/fc8100_isr.c
deleted file mode 100644
index 5b6d6a3..0000000
--- a/drivers/media/isdbt/fc8100/fc8100_isr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8100_isr.c
-
- Description : fc8100 interrupt service routine
-
- History :
- ----------------------------------------------------------------------
- 2009/12/11 ckw initial
-*******************************************************************************/
-#include "fci_types.h"
-#include "fci_hal.h"
-
-u32 gUserData;
-int (*pCallback)(u32 userdata, u8 *data, int length) = NULL;
-
-u8 dmbBuffer[188*4];
-
-void fc8100_isr(HANDLE hDevice)
-{
-
- bbm_data(hDevice, 0, &dmbBuffer[0], 188*2);
-
- if (pCallback)
- (*pCallback)(gUserData, &dmbBuffer[0], 188);
-}
diff --git a/drivers/media/isdbt/fc8100/fc8100_isr.h b/drivers/media/isdbt/fc8100/fc8100_isr.h
deleted file mode 100644
index 9d6e59b..0000000
--- a/drivers/media/isdbt/fc8100/fc8100_isr.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8100_isr.c
-
- Description : API of dmb baseband module
-
- History :
- ----------------------------------------------------------------------
- 2009/12/11 ckw initial
-*******************************************************************************/
-
-#ifndef __FC8000_ISR__
-#define __FC8000_ISR__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "fci_types.h"
-
-extern u32 gUserData;
-extern int (*pCallback)(u32 userdata, u8 *data, int length);
-
-extern void fc8100_isr(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8100/fc8100_regs.h b/drivers/media/isdbt/fc8100/fc8100_regs.h
deleted file mode 100644
index 08b7b7e..0000000
--- a/drivers/media/isdbt/fc8100/fc8100_regs.h
+++ /dev/null
@@ -1,337 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8100_regs.h
-
- Description : RF & baseband registermap header file
-
- History :
- ----------------------------------------------------------------------
- 2009/09/29 bruce initial
-*******************************************************************************/
-
-#ifndef __FC8100_REGS_H__
-#define __FC8100_REGS_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*----------------------------------------------------
- FC8100 COMMON DEFINTION
-----------------------------------------------------*/
-#define BER_PACKET_SIZE 1 /* // 256 PACKET PERIOD */
-
-
-/*----------------------------------------------------
- FC8100 RF REGISTER MAP
-----------------------------------------------------*/
-
-/* // -- CONTROL -- */
-#define RF_MODULE_RESET 0x00
-#define RF_TUNER_CHIP_ID 0x01
-#define RF_MODE_CTL 0x02
-#define RF_MANUAL_CTL 0x03
-#define RF_STBY_ACTIVE1 0x04
-#define RF_STBY_ACTIVE2 0x05
-#define RF_STBY_ACTIVE3 0x06
-#define RF_STBY_ACTIVE4 0x07
-
-/* // -- VCO -- */
-#define RF_VCO_MODE 0x08
-#define RF_LO_BIAS_MODE1 0x09
-#define RF_LO_BIAS_MODE2 0x0A
-
-/* // -- PLL, LNA&Mixer, CSF, Output Buffer, Bias Top -- */
-#define RF_BIAS_TOP_CTRL 0x0B
-
-/* //-- PGA, ADC, AGC, Revision Number, LNA, Common Bias, VGA -- */
-#define RF_LNA_ELNA_Control 0x0C
-#define RF_PLL_MODE1 0x0D
-#define RF_PLL_CTRL1 0x0E
-#define RF_ELNA_CONTROL_OFF 0x0F
-#define RF_PLL_CTRL3 0x10
-#define RF_ELNA_CONTROL_ON 0x11
-#define RF_PLL_CTRL4 0x12
-#define RF_PLL_CTRL5 0x13
-#define RF_PLL_CTRL6 0x14
-#define RF_PLL_CTRL7 0x15
-#define RF_PLL_K2 0x16
-#define RF_NTARGET_VALUE 0x17
-#define RF_PLL_K1 0x18
-#define RF_PLL_K0 0x19
-#define RF_PLL_N 0x1A
-#define RF_ELNA_CONTROL1 0x1B
-#define RF_ELNA_CONTROL2 0x1C
-#define RF_PLL_CTRL10 0x1D
-#define RF_PLL_CTRL11 0x1E
-#define RF_DMB_BANK_MONITOR 0x1F
-#define RF_LOCK_CTRL0 0x20
-#define RF_LOCK_CTRL1 0x21
-#define RF_BS_CTRL1 0x22
-#define RF_BS_CTRL2 0x23
-#define RF_BS_CTRL3 0x24
-#define RF_BS_CTRL4 0x25
-#define RF_BS_MON1 0x26
-#define RF_BS_MON2 0x27
-#define RF_LNAMIX_CTL 0x28
-#define RF_LNA_ICTRL 0x29
-#define RF_LNAMIX_ICTRL1 0x2A
-#define RF_AGC_ELNA 0x2B
-#define RF_LNAMIX_ICTRL2 0x2C
-#define RF_LNAMIX_ICTRL3 0x2D
-#define RF_LNAMIX_ICTRL4 0x2E
-#define RF_LNAMIX_ICTRL5 0x2F
-#define RF_LNAMIX_ICTRL_MON 0x30
-#define RF_ELNA_GAIN 0x31
-#define RF_CSF_MODE 0x32
-#define RF_CSF_CAPTUNE_MON1 0x33
-#define RF_CSF_CAPTUNE_MON2 0x34
-#define RF_CSFA_I2C_CRNT 0x35
-#define RF_CSF_I2C_CORE_CRNT_AH 0x36
-#define RF_CSF_I2C_OUT_CRNT_AH 0x37
-#define RF_CSF_RX_CRNT 0x38
-#define RF_CSF_PRE_CUR 0x39
-#define RF_CSF_STATE 0x3A
-#define RF_ELNA_CONTROL3 0x3B
-#define RF_CSF_CAL_CRNT 0x3C
-#define RF_CSF_CF_CLK_DIV_LSB 0x3D
-#define RF_CSF_CLK_DIV_LSB 0x3E
-#define RF_CSF_AUTO_RECAL_PERIOD 0x3F
-#define RF_CSF_CAL_MAN1 0x40
-#define RF_CSF_CAL_MAN2 0x41
-#define RF_CSF_AGC_CRNT_LOW 0x42
-#define RF_BG_CTRL0 0x43
-#define RF_PGA_1ST_STATE_CUR 0x44
-#define RF_PGA_2ND_STATE_CUR 0x45
-#define RF_ELNA_CONTROL4 0x46
-#define RF_PGA_MODE 0x47
-#define RF_AGC_COMP_BIAS 0x48
-#define RF_W_FACTOR1 0x49
-#define RF_ADC_BIAS1 0x4A
-#define RF_ADC1_BOUT 0x4B
-#define RF_W_FACTOR2 0x4C
-#define RF_ADC_BIAS2 0x4D
-#define RF_ADC2_BOUT 0x4E
-#define RF_ADC_BIAS3 0x4F
-#define RF_ADC3_BOUT 0x50
-#define RF_ADC4_BOUT 0x51
-#define RF_RFAGC_MODE 0x52
-#define RF_RFAGC_MODE2 0x53
-#define RF_IFAGC_MODE1 0x54
-#define RF_RFAGC_TEST_MODE1 0x55
-#define RF_RFAGC_TEST_MODE2 0x56
-#define RF_IFAGC_TEST_MODE1 0x57
-#define RF_IFAGC_TEST_MODE2 0x58
-#define RF_PD1_MAX 0x59
-#define RF_PD1_MIN 0x5A
-#define RF_PD2_MAX 0x5B
-#define RF_PD2_MIN 0x5C
-#define RF_AGC_CLK_MODE 0x5D
-#define RF_RFAGC_WAIT_CLK_LNA1 0x5F
-#define RF_RFAGC_WAIT_CLK_LNA2 0x60
-#define RF_RFAGC_WAIT_CLK_RFVGA 0x61
-#define RF_RFAGC_WAIT_CLK_PD_CHANGE 0x62
-#define RF_RFAGC_WAIT_CLK_STDBY 0x63
-#define RF_RFAGC_WAIT_CLK_HOLDAGC 0x64
-#define RF_IFAGC_WAIT_CLK_FILTER 0x65
-#define RF_IFAGC_WAIT_CLK_STBY 0x66
-#define RF_IFAGC_WAIT_CLK_HOLD_OFF 0x67
-#define RF_PGA_AGC_STEP 0x68
-#define RF_RFVGA_L0_MAX 0x69
-#define RF_RFVGA_L0_MIN 0x6A
-#define RF_RFVGA_L1_MAX 0x6B
-#define RF_RFVGA_L1_MIN 0x6C
-#define RF_RFVGA_L2_MAX 0x6D
-#define RF_RFVGA_L2_MIN 0x6E
-#define RF_RFVGA_L3_MAX 0x6F
-#define RF_RFVGA_L3_MIN 0x70
-#define RF_RFVGA_L4_MAX 0x71
-#define RF_RFVGA_L4_MIN 0x72
-#define RF_RFVGA_L5_MAX 0x73
-#define RF_RFVGA_L5_MIN 0x74
-#define RF_RFVGA_L6_MAX 0x75
-#define RF_RFVGA_L6_MIN 0x76
-#define RF_IFAGC_PGA_MAX 0x77
-#define RF_IFAGC_PGA_MIN 0x78
-#define RF_STATE_MONITOR1 0x79
-#define RF_STATE_MONITOR2 0x7A
-#define RF_STATE_MONITOR3 0x7B
-#define RF_STATE_MONITOR4 0x7C
-#define RF_AGC_PD_OFFSET 0x7D
-#define RF_AGC_SH_SL 0x7E
-#define RF_REVISION_NUMBER 0x7F
-
-
-/* ----------------------------------------------------
- FC8100 BB REGISTER MAP
-----------------------------------------------------*/
-
-/* // 1. System Control */
-#define BBM_VERSION 0x00
-#define BBM_SYSRST 0x01
-
-/* // 2. Serial Bus Control */
-#define BBM_SBCTRL 0x02
-#define BBM_SBADDR 0x03
-#define BBM_INCTRL 0x05
-#define BBM_IOMODE 0x07
-#define BBM_OUTCTRL0 0x08
-#define BBM_OUTCTRL1 0x09
-#define BBM_PLL0 0x0C
-#define BBM_PLL1 0x0D
-#define BBM_PLL2 0x0E
-
-/* // 3. INTR */
-#define BBM_INTRPT0 0x11
-#define BBM_INTRPT1 0x12
-#define BBM_INTSEL0 0x14
-#define BBM_INTSEL1 0x15
-#define BBM_INTRST0 0x17
-#define BBM_INTRST1 0x18
-#define BBM_RSINTR 0x19
-#define BBM_INTFORM 0x1C
-
-/* // 4. LOCK */
-#define BBM_LOCKF 0x1D
-#define BBM_GIVEUP 0x1E
-
-/* // 5. TMCC */
-#define BBM_TMCRNT0 0x20
-#define BBM_TMCRNT1 0x21
-#define BBM_TMCRNT2 0x22
-#define BBM_TMNEXT0 0x26
-#define BBM_TMNEXT1 0x27
-#define BBM_TMMAND0 0x2B
-#define BBM_TMMAND1 0x2C
-#define BBM_TMMNSW 0x30
-#define BBM_TMFECF 0x31
-
-/* // 7. MONITOR */
-#define BBM_STATEF 0x32
-#define BBM_DCDF 0x33
-#define BBM_INPWR0 0x34
-#define BBM_INPWR1 0x35
-#define BBM_AGADAT 0x36
-#define BBM_EQIDAT0 0x38
-#define BBM_EQIDAT1 0x39
-#define BBM_EQQDAT0 0x3A
-#define BBM_EQQDAT1 0x3B
-
-/* // 8. AGC Setup */
-#define BBM_AGTIME 0x40
-#define BBM_AGAVCNT 0x41
-#define BBM_AGTG 0x42
-#define BBM_AGSG 0x43
-#define BBM_AGAINI 0x44
-#define BBM_AGREF0 0x46
-#define BBM_AGREF1 0x47
-#define BBM_AGCTRL 0x4D
-
-/* // 9. GPIO */
-#define BBM_GPIOSEL0 0x59
-#define BBM_GPIOSEL1 0x5A
-#define BBM_GPI 0x5B
-#define BBM_GPO 0x5C
-#define BBM_PWMSET 0x5D
-#define BBM_PWMLV0 0x5E
-#define BBM_PWMLV1 0x5F
-
-/* // 10. Read-Solomon decoder/error counter */
-#define BBM_RSERST 0x60
-#define BBM_RSECNT0 0x61
-#define BBM_RSECNT1 0x62
-#define BBM_RSECNT2 0x63
-#define BBM_RSTCNT0 0x64
-#define BBM_RSTCNT1 0x65
-#define BBM_RSEPER 0x70
-
-/* // 11. Block through */
-#define BBM_THRUFD 0x73
-#define BBM_THRUBD 0x74
-#define BBM_PREVTO 0x76
-#define BBM_THRURS 0x77
-#define BBM_THRUDR 0x78
-
-/* // 12. Symbo synchronization */
-#define BBM_SYTIME 0xA0
-#define BBM_SYATTH 0xA1
-#define BBM_SYMNTH0 0xA2
-#define BBM_SYMNTH1 0xA3
-#define BBM_SYSW1 0xA4
-#define BBM_SYSW2 0xA5
-#define BBM_SYCTRL1 0xA6
-#define BBM_SYMODE1 0xA7
-#define BBM_SYMODE2 0xA8
-#define BBM_SYMODE3 0xA9
-
-/* // 13. Digital AGC */
-#define BBM_DAM2REF0 0xAA
-#define BBM_DAM2REF1 0xAB
-#define BBM_DAM3REF0 0xAC
-#define BBM_DAM3REF1 0xAD
-#define BBM_DAAVCNT 0xAE
-#define BBM_DALPG 0xAF
-
-/* // 14. FFT */
-#define BBM_FTCTRL 0xB0
-
-/* // 15. TMCC Decoder */
-#define BBM_TMCTRL0 0xBC
-#define BBM_TMCTRL1 0xBD
-#define BBM_TMCTRL2 0xBE
-#define BBM_EQCTRL 0xC0
-#define BBM_EQCONF 0xC1
-#define BBM_PRBSEL 0xC3
-#define BBM_GNFCNT1 0xC4
-
-/* // 17. IFFT */
-#define BBM_GNFSNTH 0xC5
-#define BBM_GNFCNT2 0xC7
-#define BBM_WINPTMN 0xC8
-#define BBM_IFCTRL 0xC9
-#define BBM_WINCTRL 0xCA
-#define BBM_WINCTRL1 0xCB
-#define BBM_WINCTRL2_1 0xCC
-#define BBM_WINCTRL2_2 0xCD
-#define BBM_WINCTRL2_3 0xCE
-
-/* // 18. TIME RANGE UNLOCK DETECTION */
-#define BBM_IFUN 0xCF
-
-/* // 19. Status readout */
-#define BBM_FRLKCNT0 0xD0
-#define BBM_FRLKCNT1 0xD1
-#define BBM_SYLKCNT0 0xD2
-#define BBM_SYLKCNT1 0xD3
-#define BBM_MRLKCNT0 0xD4
-#define BBM_MRLKCNT1 0xD5
-#define BBM_ULSTAT 0xD6
-#define BBM_SELGNF 0xD7
-#define BBM_ERRPWR1 0xD8
-#define BBM_ERRPWR2 0xD9
-
-/* // 20. GIC */
-#define BBM_GICCNT1 0xE7
-#define BBM_GICCNT2 0xE8
-#define BBM_WINTHTR 0xE9
-#define BBM_GICOFF 0xEA
-
-/* // 21. Antenna switching */
-#define BBM_AWCTRL 0xF0
-#define BBM_AWSWTH 0xF1
-#define BBM_AWONTH 0xF2
-#define BBM_AWOFFTH 0xF3
-#define BBM_AWAGCTH 0xF4
-#define BBM_AWAVCE 0xF5
-
-/* // 22. SI */
-#define BBM_EQSI1 0xF6
-#define BBM_EQSI2 0xF7
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8100/fc8100_tun.c b/drivers/media/isdbt/fc8100/fc8100_tun.c
deleted file mode 100644
index e9fa291..0000000
--- a/drivers/media/isdbt/fc8100/fc8100_tun.c
+++ /dev/null
@@ -1,351 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8100_tun.c
-
- Description : fc8100 tuner controller
-
- History :
- ----------------------------------------------------------------------
- 2009/09/29 bruce initial
-*******************************************************************************/
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fci_tun.h"
-#include "fc8100_regs.h"
-#include "fci_hal.h"
-
-#define TUN_IF_FREQ 500 /* 500 or 1000 (Khz) */
-/*
-select BB Xtal frequency
-16Mhz: 16000 18Mhz:18000 19.2Mhz:19200 24Mhz:24000
-26Mhz:26000 32Mhz:32000 40Mhz:40000
-*/
-#define FC8100_FREQ_XTAL_TUNER 26000 /* 26MHz */
-#define DEFAULT_CH_FREQ 617143 /* 37 ch, freq : 617.143Mhz */
-#define CP_BOOT_CURRENT 0 /* 0:250uA 1: 500uA */
-
-static int fc8100_write(HANDLE hDevice, u8 addr, u8 data)
-{
- int res = BBM_NOK;
-
- res = tuner_i2c_write(hDevice, addr, 1, &data, 1);
-
- return res;
-}
-
-static int fc8100_read(HANDLE hDevice, u8 addr, u8 *data)
-{
- int res = BBM_NOK;
- res = tuner_i2c_read(hDevice, addr, 1, data, 1);
- return res;
-}
-
-static int fc8100_tuner_set_init(HANDLE hDevice)
-{
- int res = BBM_NOK;
-
- res = fc8100_write(hDevice, RF_MODULE_RESET, 0x00);
-
- /* PLL & VCO Setting */
- /* if ghost channel scan occurred, change charge pump currnet 500uA -> 250uA */
- if (CP_BOOT_CURRENT == 1) {
- /* 500uA */
- res |= fc8100_write(hDevice, RF_PLL_CTRL4, 0x91);
- } else {
- /* 250 uA */
- res |= fc8100_write(hDevice, RF_PLL_CTRL4, 0x11);
- }
-
- res |= fc8100_write(hDevice, RF_PLL_CTRL11, 0x00);
- res |= fc8100_write(hDevice, RF_PLL_MODE1, 0x40);
- res |= fc8100_write(hDevice, RF_LO_BIAS_MODE1, 0x27);
- res |= fc8100_write(hDevice, RF_BIAS_TOP_CTRL, 0x19);
- res |= fc8100_write(hDevice, RF_PLL_CTRL6, 0x13);
- /* LNA & MIX Setting */
- res |= fc8100_write(hDevice, RF_LNA_ICTRL, 0x30);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL1, 0x33);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL2, 0xAF);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL3, 0x06);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL5, 0x00);
- /* AGC_ADC Setting */
- res |= fc8100_write(hDevice, RF_ADC_BIAS1, 0xB2);
- res |= fc8100_write(hDevice, RF_W_FACTOR1, 0x40);
- res |= fc8100_write(hDevice, RF_ADC_BIAS2, 0x32);
- res |= fc8100_write(hDevice, RF_W_FACTOR2, 0x40);
- res |= fc8100_write(hDevice, RF_PD1_MAX, 0x36);
- res |= fc8100_write(hDevice, RF_PD1_MIN, 0x2D);
- res |= fc8100_write(hDevice, RF_PD2_MAX, 0x1F);
- res |= fc8100_write(hDevice, RF_PD2_MIN, 0x1B);
- res |= fc8100_write(hDevice, RF_AGC_CLK_MODE, 0x73);
- res |= fc8100_write(hDevice, RF_AGC_PD_OFFSET, 0x88);
- res |= fc8100_write(hDevice, RF_RFAGC_WAIT_CLK_RFVGA, 0x28);
- res |= fc8100_write(hDevice, RF_RFAGC_WAIT_CLK_PD_CHANGE, 0x1F);
- res |= fc8100_write(hDevice, RF_IFAGC_WAIT_CLK_FILTER, 0x14);
- res |= fc8100_write(hDevice, RF_RFVGA_L0_MAX, 0x0C);
- res |= fc8100_write(hDevice, RF_RFVGA_L1_MAX, 0x0C);
- res |= fc8100_write(hDevice, RF_RFVGA_L2_MAX, 0x0C);
- res |= fc8100_write(hDevice, RF_RFVGA_L3_MAX, 0x0C);
- res |= fc8100_write(hDevice, RF_RFVGA_L4_MAX, 0x0C);
- res |= fc8100_write(hDevice, RF_RFVGA_L5_MAX, 0x0C);
- res |= fc8100_write(hDevice, RF_RFVGA_L6_MAX, 0x20);
- res |= fc8100_write(hDevice, RF_IFAGC_PGA_MAX, 0x78);
- res |= fc8100_write(hDevice, RF_IFAGC_PGA_MIN, 0x3c);
- res |= fc8100_write(hDevice, RF_LNA_ELNA_Control, 0x11);
-
- return res;
-}
-
-static int fc8100_tuner_set_filter(HANDLE hDevice, unsigned int xtal)
-{
- int res = BBM_NOK;
- u8 reg_3D, reg_3E;
- float value;
-
- value = (float)xtal / 1000;
- reg_3D = (unsigned char)(value * 5.375f);
- reg_3E = (unsigned char)(value * 4.3125f);
-
- /* Filter Setting for defined x-tal */
- res = fc8100_write(hDevice, RF_IFAGC_TEST_MODE2, 0x50);
- res |= fc8100_write(hDevice, RF_CSFA_I2C_CRNT, 0x3F);
- res |= fc8100_write(hDevice, RF_CSF_I2C_CORE_CRNT_AH, 0xFF);
- res |= fc8100_write(hDevice, RF_CSF_I2C_OUT_CRNT_AH, 0xFF);
- res |= fc8100_write(hDevice, RF_CSF_RX_CRNT, 0xEA);
- res |= fc8100_write(hDevice, RF_CSF_PRE_CUR, 0x54);
- res |= fc8100_write(hDevice, RF_CSF_CAL_CRNT, 0x40);
- res |= fc8100_write(hDevice, RF_CSF_CF_CLK_DIV_LSB, reg_3D);
- res |= fc8100_write(hDevice, RF_CSF_CLK_DIV_LSB, reg_3E);
- res |= fc8100_write(hDevice, RF_CSF_AGC_CRNT_LOW, 0x00);
- res |= fc8100_write(hDevice, RF_CSF_MODE, 0x09);
- res |= fc8100_write(hDevice, RF_CSF_MODE, 0x01);
-
- return res;
-}
-
-
-/*=======================================================
- FUNCTION fc8100_tuner_set_etc
-
- DESCRIPTION
- Set Default Channel
-
- PARAMETERS
- unsigned ing xtal : xtal value, ex)if 32MHz, xtal = 32000
-
- DEPENDENCIES
- None
-
- RETURN VALUE
- 0 if successful
- others if fail
-
- SIDE EFFECTS
- None.
- =========================================================*/
-static int fc8100_tuner_set_etc(HANDLE hDevice, unsigned int xtal)
-{
- int res = BBM_NOK;
- unsigned int f_rf = DEFAULT_CH_FREQ;
- unsigned int f_if = TUN_IF_FREQ;
- unsigned int f_diff, f_diff_shifted, n_val, k_val;
- unsigned int r_val;
- unsigned int f_comp;
- unsigned int f_lo = f_rf - f_if;
- unsigned int f_vco = f_lo * 4;
- unsigned char pre_shift_bits, data_0x16;
- unsigned char i;
- unsigned char filtercal;
-
- r_val = (f_vco >= 25 * xtal) ? 1 : 2;
- f_comp = xtal/r_val;
-
- pre_shift_bits = 4;
-
- n_val = f_vco / f_comp;
-
- f_diff = f_vco - f_comp * n_val;
- f_diff_shifted = f_diff << (20 - pre_shift_bits);
- k_val = (f_diff_shifted + (f_comp >> (pre_shift_bits+1)))/(f_comp >> pre_shift_bits);
-
- data_0x16 = ((r_val == 1) ? 0x00 : 0x10) + (unsigned char)(k_val >> 16);
-
- /* ISDBT_ON_AGC_AUTO_0p1 - for defined x-tal */
- res = fc8100_write(hDevice, RF_MODE_CTL, 0x06);
- res |= fc8100_write(hDevice, RF_ADC_BIAS3, 0x80);
- res |= fc8100_write(hDevice, RF_RFAGC_MODE, 0xC1);
- res |= fc8100_write(hDevice, RF_RFAGC_MODE2, 0x20);
- /* Default Channel Setting */
- res |= fc8100_write(hDevice, RF_PLL_K2, data_0x16);
- res |= fc8100_write(hDevice, RF_PLL_K1, (unsigned char)(k_val >> 8));
- res |= fc8100_write(hDevice, RF_PLL_K0, (unsigned char)(k_val));
- res |= fc8100_write(hDevice, RF_PLL_N, (unsigned char)(n_val));
- /* Filter Cal */
- res |= fc8100_write(hDevice, RF_CSF_MODE, 0x09);
-
- msWait(10);
- for (i = 0; i < 10; i++) {
- fc8100_read(hDevice, RF_CSF_CAPTUNE_MON1, &filtercal);
- if ((filtercal & 0xC0) != 0xC0) {
- fc8100_write(hDevice, RF_CSF_MODE, 0x09);
- msWait(10);
- fc8100_write(hDevice, RF_CSF_MODE, 0x01);
- }
- }
- res |= fc8100_write(hDevice, RF_CSF_MODE, 0x01);
-
- return res;
-}
-
-/*=======================================================
- FUNCTION fc8100_tuner_init
-
- DESCRIPTION
- FC8100 RF Tuner Register Init
-
- PARAMETERS
- None
-
- DEPENDENCIES
- None
-
- RETURN VALUE
- 0 if successful.
- others if fail.
-
- SIDE EFFECTS
- None.
- =========================================================*/
-int fc8100_tuner_init(HANDLE hDevice, u8 band_type)
-{
- int res = BBM_NOK;
-
- res = fc8100_tuner_set_init(hDevice);
- res |= fc8100_tuner_set_filter(hDevice, FC8100_FREQ_XTAL_TUNER);
- res |= fc8100_tuner_set_etc(hDevice, FC8100_FREQ_XTAL_TUNER);
-
- return res;
-}
-
-int fc8100_tuner_deinit(HANDLE hDevice)
-{
- int res = BBM_NOK;
-
- return res;
-}
-
-int fc8100_set_freq(HANDLE hDevice, u8 ch_num)
-{
- int res = BBM_NOK;
-
- unsigned int f_diff, f_diff_shifted, n_val, k_val;
- unsigned int r_val;
- unsigned int f_comp;
- unsigned int f_lo;
- unsigned int f_vco;
- u8 pre_shift_bits, data_0x16;
- unsigned int xtal = FC8100_FREQ_XTAL_TUNER;
-
- unsigned int f_rf;
- unsigned int f_if;
-
- PRINTF(0, "Channel Nummber : %d\n", ch_num);
-
- f_rf = (ch_num - 13) * 6000 + 473143;
- f_if = TUN_IF_FREQ;
-
- f_lo = f_rf - f_if;
- f_vco = f_lo * 4;
-
- r_val = (f_vco >= 25*xtal) ? 1 : 2;
- f_comp = xtal/r_val;
-
- pre_shift_bits = 4;
-
- n_val = f_vco / f_comp;
-
- f_diff = f_vco - f_comp * n_val;
- f_diff_shifted = f_diff << (20 - pre_shift_bits);
- k_val = (f_diff_shifted + (f_comp >> (pre_shift_bits+1))) / (f_comp >> pre_shift_bits);
-
- if (f_vco < 2180000) {
- res = fc8100_write(hDevice, RF_LO_BIAS_MODE1, 0xE7);
- res |= fc8100_write(hDevice, RF_BIAS_TOP_CTRL, 0x99);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL2, 0xBF);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL3, 0x1F);
- } else if (f_vco < 2276000) {
- res = fc8100_write(hDevice, RF_LO_BIAS_MODE1, 0xE7);
- res |= fc8100_write(hDevice, RF_BIAS_TOP_CTRL, 0x99);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL2, 0xAF);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL3, 0x1F);
- } else if (f_vco < 2420000) {
- res = fc8100_write(hDevice, RF_LO_BIAS_MODE1, 0xE7);
- res |= fc8100_write(hDevice, RF_BIAS_TOP_CTRL, 0x99);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL2, 0xAF);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL3, 0x0F);
- } else if (f_vco < 2516000) {
- res = fc8100_write(hDevice, RF_LO_BIAS_MODE1, 0x27);
- res |= fc8100_write(hDevice, RF_BIAS_TOP_CTRL, 0x19);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL2, 0xAF);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL3, 0x06);
- } else if (f_vco < 2588000) {
- res = fc8100_write(hDevice, RF_LO_BIAS_MODE1, 0x27);
- res |= fc8100_write(hDevice, RF_BIAS_TOP_CTRL, 0x19);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL2, 0xA6);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL3, 0x06);
- } else if (f_vco < 2636000) {
- res = fc8100_write(hDevice, RF_LO_BIAS_MODE1, 0x27);
- res |= fc8100_write(hDevice, RF_BIAS_TOP_CTRL, 0x19);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL2, 0xA6);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL3, 0x00);
- } else {
- res = fc8100_write(hDevice, RF_LO_BIAS_MODE1, 0x27);
- res |= fc8100_write(hDevice, RF_BIAS_TOP_CTRL, 0x19);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL2, 0xA0);
- res |= fc8100_write(hDevice, RF_LNAMIX_ICTRL3, 0x00);
- }
-
- if (res == BBM_NOK)
- return res;
-
- data_0x16 = ((r_val == 1) ? 0x00 : 0x10) + (unsigned char)(k_val >> 16);
- res = fc8100_write(hDevice, RF_PLL_K2, data_0x16);
- res |= fc8100_write(hDevice, RF_PLL_K1, (unsigned char)(k_val >> 8));
- res |= fc8100_write(hDevice, RF_PLL_K0, (unsigned char)(k_val));
- res |= fc8100_write(hDevice, RF_PLL_N, (unsigned char)(n_val));
-
- if (res)
- return res;
-
- msWait(3);
- /* SQSTBY is need */
- bbm_write(hDevice, BBM_SYSRST, 0x02);
-
- return res;
-}
-
-int fc8100_get_rssi(HANDLE hDevice, s32 *rssi)
-{
- int res = BBM_NOK;
- u8 LNA, RFVGA, GSF, PGA;
- /* float RSSI = 0.0f; */
- s32 K = -73;
-
- res = fc8100_read(hDevice, 0x79, &LNA);
- res |= fc8100_read(hDevice, 0x7A, &RFVGA);
- res |= fc8100_read(hDevice, 0x7B, &GSF);
- res |= fc8100_read(hDevice, 0x7C, &PGA);
-
- if (res) {
- *rssi = (s32)0xFFFFFFFF;
- return res;
- }
-
- /* RSSI = (LNA * 6) + (RFVGA) + ((GSF & 0x7) * 6) - (PGA * 0.25f) + K; */
-
- /* *rssi = (RSSI); */
-
- *rssi = (LNA * 6) + (RFVGA) + ((GSF & 0x7) * 6) - (PGA >> 2) + K;
-
- return res;
-}
diff --git a/drivers/media/isdbt/fc8100/fc8100_tun.h b/drivers/media/isdbt/fc8100/fc8100_tun.h
deleted file mode 100644
index 984527c..0000000
--- a/drivers/media/isdbt/fc8100/fc8100_tun.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8100_tun.h
-
- Description : fc8100 tuner controller header file
-
- History :
- ----------------------------------------------------------------------
- 2009/09/29 bruce initial
-*******************************************************************************/
-
-#ifndef __FC8100_TUNER__
-#define __FC8100_TUNER__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8100_tuner_init(HANDLE hDevice, u8 band_type);
-extern int fc8100_tuner_deinit(HANDLE hDevice);
-extern int fc8100_set_freq(HANDLE hDevice, u8 ch_num);
-extern int fc8100_get_rssi(HANDLE hDevice, s32 *i32RSSI);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8100/fci_hal.c b/drivers/media/isdbt/fc8100/fci_hal.c
deleted file mode 100644
index 952f44e..0000000
--- a/drivers/media/isdbt/fc8100/fci_hal.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8100_hal.c
-
- Description : fc8100 host interface
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "bbm.h"
-#include "fci_hal.h"
-#include "fc8100_i2c.h"
-
-typedef struct {
- int (*init)(HANDLE hDevice, u16 param1, u16 param2);
-
- int (*byteread)(HANDLE hDevice, u16 addr, u8 *data);
- int (*wordread)(HANDLE hDevice, u16 addr, u16 *data);
- int (*longread)(HANDLE hDevice, u16 addr, u32 *data);
- int (*bulkread)(HANDLE hDevice, u16 addr, u8 *data, u16 size);
-
- int (*bytewrite)(HANDLE hDevice, u16 addr, u8 data);
- int (*wordwrite)(HANDLE hDevice, u16 addr, u16 data);
- int (*longwrite)(HANDLE hDevice, u16 addr, u32 data);
- int (*bulkwrite)(HANDLE hDevice, u16 addr, u8 *data, u16 size);
- int (*dataread)(HANDLE hDevice, u16 addr, u8 *data, u16 size);
-
- int (*deinit)(HANDLE hDevice);
-} IF_PORT;
-
-static IF_PORT i2cif = {
- &fc8100_i2c_init,
-
- &fc8100_i2c_byteread,
- &fc8100_i2c_wordread,
- &fc8100_i2c_longread,
- &fc8100_i2c_bulkread,
-
- &fc8100_i2c_bytewrite,
- &fc8100_i2c_wordwrite,
- &fc8100_i2c_longwrite,
- &fc8100_i2c_bulkwrite,
- &fc8100_spi_dataread,
-
- &fc8100_i2c_deinit
-};
-
-static IF_PORT *ifport = &i2cif;
-static u8 hostif_type = BBM_I2C;
-
-int bbm_hostif_get(HANDLE hDevice, u8 *hostif)
-{
- *hostif = hostif_type;
-
- return BBM_OK;
-}
-
-int bbm_hostif_select(HANDLE hDevice, u8 hostif)
-{
- int res = BBM_OK;
-
- hostif_type = hostif;
-
- switch (hostif) {
-#if 0
- case BBM_HPI:
- ifport = &hpiif;
- break;
- case BBM_SPI:
- ifport = &spiif;
- break;
-#endif
- case BBM_I2C:
- ifport = &i2cif;
- break;
- default:
- res = BBM_NOK;
- break;
- }
-
- if (res == BBM_OK)
- ifport->init(hDevice, 0, 0);
-
- return res;
-}
-
-int bbm_hostif_deselect(HANDLE hDevice)
-{
- int res = BBM_OK;
-
- ifport->deinit(hDevice);
-
- hostif_type = 0;
- ifport = NULL;
-
- return res;
-}
-
-int bbm_read(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
-
- res = ifport->byteread(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_byte_read(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
-
- res = ifport->byteread(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_word_read(HANDLE hDevice, u16 addr, u16 *data)
-{
- int res;
-
- res = ifport->wordread(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_long_read(HANDLE hDevice, u16 addr, u32 *data)
-{
- int res;
-
- res = ifport->longread(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_bulk_read(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
-
- res = ifport->bulkread(hDevice, addr, data, length);
-
- return res;
-}
-
-int bbm_write(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
-
- res = ifport->bytewrite(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_byte_write(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
-
- res = ifport->bytewrite(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_word_write(HANDLE hDevice, u16 addr, u16 data)
-{
- int res;
-
- res = ifport->wordwrite(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_long_write(HANDLE hDevice, u16 addr, u32 data)
-{
- int res;
-
- res = ifport->longwrite(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_bulk_write(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
-
- res = ifport->bulkwrite(hDevice, addr, data, length);
-
- return res;
-}
-
-int bbm_data(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res = BBM_NOK;
- res = ifport->dataread(hDevice, addr, data, length);
- return res;
-}
diff --git a/drivers/media/isdbt/fc8100/fci_hal.h b/drivers/media/isdbt/fc8100/fci_hal.h
deleted file mode 100644
index 72634cd..0000000
--- a/drivers/media/isdbt/fc8100/fci_hal.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8000_hal.h
-
- Description : fc8000 host interface header
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-#ifndef __FCI_HAL_H__
-#define __FCI_HAL_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int bbm_hostif_select(HANDLE hDevice, u8 hostif);
-extern int bbm_hostif_deselect(HANDLE hDevice);
-extern int bbm_hostif_get(HANDLE hDevice, u8 *hostif);
-
-extern int bbm_read(HANDLE hDevice, u16 addr, u8 *data);
-extern int bbm_byte_read(HANDLE hDevice, u16 addr, u8 *data);
-extern int bbm_word_read(HANDLE hDevice, u16 addr, u16 *data);
-extern int bbm_long_read(HANDLE hDevice, u16 addr, u32 *data);
-extern int bbm_bulk_read(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-
-extern int bbm_write(HANDLE hDevice, u16 addr, u8 data);
-extern int bbm_byte_write(HANDLE hDevice, u16 addr, u8 data);
-extern int bbm_word_write(HANDLE hDevice, u16 addr, u16 data);
-extern int bbm_long_write(HANDLE hDevice, u16 addr, u32 data);
-extern int bbm_bulk_write(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int bbm_data(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8100/fci_i2c.c b/drivers/media/isdbt/fc8100/fci_i2c.c
deleted file mode 100644
index 05c8dc9..0000000
--- a/drivers/media/isdbt/fc8100/fci_i2c.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fci_i2c.c
-
- Description : fci i2c repeater mapping driver for RF register control
-
- History :
- ----------------------------------------------------------------------
- 2009/09/29 bruce initial
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fc8100_i2c.h"
-
-int fci_i2c_init (HANDLE hDevice, int speed, int slaveaddr)
-{
- return BBM_OK;
-}
-
-int fci_i2c_deinit (HANDLE hDevice)
-{
- return BBM_OK;
-}
-
-int fci_i2c_read(HANDLE hDevice, u8 chip, u8 addr, u8 alen, u8 *data, u8 len)
-{
- int res = BBM_NOK;
-
- res = fc8100_rf_bulkread(hDevice, addr, data, len);
-
- return res;
-}
-
-int fci_i2c_write(HANDLE hDevice, u8 chip, u8 addr, u8 alen, u8 *data, u8 len)
-{
- int res = BBM_NOK;
-
- res = fc8100_rf_bulkwrite(hDevice, addr, data, len);
-
- return res;
-}
diff --git a/drivers/media/isdbt/fc8100/fci_i2c.h b/drivers/media/isdbt/fc8100/fci_i2c.h
deleted file mode 100644
index 816a6fc..0000000
--- a/drivers/media/isdbt/fc8100/fci_i2c.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fci_i2c.h
-
- Description : fci i2c driver header
-
- History :
- ----------------------------------------------------------------------
- 2009/09/11 jason initial
-*******************************************************************************/
-
-#ifndef __FCI_I2C_H__
-#define __FCI_I2C_H__
-
-#include "fci_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fci_i2c_init(HANDLE hDevice, int speed, int slaveaddr);
-extern int fci_i2c_deinit(HANDLE hDevice);
-extern int fci_i2c_read(HANDLE hDevice, u8 chip, u8 addr, u8 alen, u8 *data, u8 len);
-extern int fci_i2c_write(HANDLE hDevice, u8 chip, u8 addr, u8 alen, u8 *data, u8 len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8100/fci_oal.c b/drivers/media/isdbt/fc8100/fci_oal.c
deleted file mode 100644
index ba77ce6..0000000
--- a/drivers/media/isdbt/fc8100/fci_oal.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fci_oal.c
-
- Description : OS Adaptation Layer
-
- History :
- ----------------------------------------------------------------------
- 2009/09/13 jason initial
-*******************************************************************************/
-
-#include <linux/kernel.h>
-#include <linux/delay.h>
-
-#include "fci_types.h"
-
-void PRINTF(HANDLE hDevice, char *fmt, ...)
-{
- va_list ap;
- char str[256];
-
- va_start(ap, fmt);
- vsprintf(str, fmt, ap);
-
- printk("%s", str);
-
- va_end(ap);
-}
-
-void msWait(int ms)
-{
- msleep(ms);
-}
diff --git a/drivers/media/isdbt/fc8100/fci_oal.h b/drivers/media/isdbt/fc8100/fci_oal.h
deleted file mode 100644
index 557b21f..0000000
--- a/drivers/media/isdbt/fc8100/fci_oal.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fci_oal.h
-
- Description : OS Adatation Layer header
-
- History :
- ----------------------------------------------------------------------
- 2009/09/13 jason initial
-*******************************************************************************/
-
-#ifndef __FCI_OAL_H__
-#define __FCI_OAL_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern void PRINTF(HANDLE hDevice, char *fmt, ...);
-extern void msWait(int ms);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8100/fci_tun.c b/drivers/media/isdbt/fc8100/fci_tun.c
deleted file mode 100644
index f4cd5a5..0000000
--- a/drivers/media/isdbt/fc8100/fci_tun.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : tuner.c
-
- Description : tuner driver
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fci_hal.h"
-#include "fci_tun.h"
-#include "fci_i2c.h"
-#include "fc8100_regs.h"
-#include "fc8100_tun.h"
-
-#define FC8100_TUNER_ADDR 0x56
-
-static u8 tuner_addr = FC8100_TUNER_ADDR;
-static band_type tuner_band = ISDBT_1_SEG_TYPE;
-
-typedef struct {
- int (*init)(HANDLE hDevice, int speed, int slaveaddr);
- int (*read)(HANDLE hDevice, u8 chip, u8 addr, u8 alen, u8 *data, u8 len);
- int (*write)(HANDLE hDevice, u8 chip, u8 addr, u8 alen, u8 *data, u8 len);
- int (*deinit)(HANDLE hDevice);
-} I2C_DRV;
-
-static I2C_DRV fcii2c = {
- &fci_i2c_init,
- &fci_i2c_read,
- &fci_i2c_write,
- &fci_i2c_deinit
-};
-
-typedef struct {
- int (*init)(HANDLE hDevice, u8 band);
- int (*set_freq)(HANDLE hDevice, u8 ch_num);
- int (*get_rssi)(HANDLE hDevice, s32 *rssi);
- int (*deinit)(HANDLE hDevice);
-} TUNER_DRV;
-
-static TUNER_DRV fc8100_tuner = {
- &fc8100_tuner_init,
- &fc8100_set_freq,
- &fc8100_get_rssi,
- &fc8100_tuner_deinit
-};
-
-static I2C_DRV *tuner_ctrl = &fcii2c;
-static TUNER_DRV *tuner = &fc8100_tuner;
-
-int tuner_ctrl_select(HANDLE hDevice, i2c_type type)
-{
- int res = BBM_OK;
-
- switch (type) {
- case FCI_I2C_TYPE:
- tuner_ctrl = &fcii2c;
- break;
- default:
- res = BBM_NOK;
- break;
- }
- if (res)
- return BBM_NOK;
-
- res = tuner_ctrl->init(hDevice, 400, 0);
-
- return res;
-}
-
-int tuner_i2c_read(HANDLE hDevice, u8 addr, u8 alen, u8 *data, u8 len)
-{
- int res = BBM_OK;
-
- res = tuner_ctrl->read(hDevice, tuner_addr, addr, alen, data, len);
-
- return res;
-}
-
-int tuner_i2c_write(HANDLE hDevice, u8 addr, u8 alen, u8 *data, u8 len)
-{
- int res = BBM_OK;
-
- res = tuner_ctrl->write(hDevice, tuner_addr, addr, alen, data, len);
-
- return res;
-}
-
-int tuner_type(HANDLE hDevice, u32 *type)
-{
- *type = tuner_band;
-
- return BBM_OK;
-}
-
-int tuner_set_freq(HANDLE hDevice, u8 ch_num)
-{
- int res = BBM_NOK;
-
- if (tuner == NULL) {
- PRINTF(NULL, "TUNER NULL ERROR \r\n");
- return BBM_NOK;
- }
-
- res = tuner->set_freq(hDevice, ch_num);
- if (res != BBM_OK) {
- PRINTF(NULL, "TUNER res ERROR \r\n");
- return BBM_NOK;
- }
-
- return res;
-}
-
-int tuner_select(HANDLE hDevice, u32 product, u32 band)
-{
- int res = BBM_OK;
-
- switch (product) {
- case FC8100_TUNER:
- tuner_band = band;
- tuner_addr = FC8100_TUNER_ADDR;
- tuner = &fc8100_tuner;
- res = tuner_ctrl_select(hDevice, FCI_I2C_TYPE);
- PRINTF(0, "FC8100 Tuner Select\n");
- break;
- default:
- res = BBM_NOK;
- break;
- }
-
- if (tuner == NULL || res) {
- PRINTF(NULL, "[ERROR] Can not supported Tuner(%d,%d)\n\r", product, band);
- return BBM_NOK;
- }
-
- res = tuner->init(hDevice, band);
- PRINTF(NULL, "TUNER_SELECT(%s) \n\r", res == BBM_OK ? "SUCCESS" : "FAIL");
-
- return res;
-}
-
-int tuner_deselect(HANDLE hDevice)
-{
- int res = BBM_OK;
-
- return res;
-}
-
-int tuner_get_rssi(HANDLE hDevice, s32 *rssi)
-{
- int res = BBM_OK;
-
- res = tuner->get_rssi(hDevice, rssi);
-
- return res;
-}
diff --git a/drivers/media/isdbt/fc8100/fci_tun.h b/drivers/media/isdbt/fc8100/fci_tun.h
deleted file mode 100644
index f4594f2..0000000
--- a/drivers/media/isdbt/fc8100/fci_tun.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : tuner.h
-
- Description : tuner control driver header
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-#ifndef __TUNER_H__
-#define __TUNER_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "fci_types.h"
-#include "bbm.h"
-
-typedef enum {
- FCI_I2C_TYPE = 0,
- ADI_I2C_TYPE
-} i2c_type;
-
-typedef enum {
- BAND3_TYPE = 0,
- LBAND_TYPE,
- ISDBT_1_SEG_TYPE,
- FM_TYPE
-} band_type;
-
-typedef enum {
- FC8000_TUNER = 0,
- FC2507_TUNER,
- FC2580_TUNER,
- FC8100_TUNER
-} product_type;
-
-
-extern int tuner_i2c_init(HANDLE hDevice, int speed, int slaveaddr);
-extern int tuner_i2c_read(HANDLE hDevice, u8 addr, u8 alen, u8 *data, u8 len);
-extern int tuner_i2c_write(HANDLE hDevice, u8 addr, u8 alen, u8 *data, u8 len);
-
-extern int tuner_select(HANDLE hDevice, u32 product, u32 band);
-extern int tuner_deselect(HANDLE hDevice);
-extern int tuner_set_freq(HANDLE hDevice, u8 ch_num);
-extern int tuner_get_rssi(HANDLE hDevice, s32 *rssi);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8100/fci_types.h b/drivers/media/isdbt/fc8100/fci_types.h
deleted file mode 100644
index b36626d..0000000
--- a/drivers/media/isdbt/fc8100/fci_types.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fci_types.h
-
- Description :
-
- History :
- ----------------------------------------------------------------------
- 2009/08/31 jason initial
-*******************************************************************************/
-
-#ifndef __FCI_TYPES_H__
-#define __FCI_TYPES_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef HANDLE
-typedef int HANDLE;
-#endif
-
-#define s8 char
-#define s16 short int
-#define s32 int
-
-#define u8 unsigned char
-#define u16 unsigned short
-#define u32 unsigned int
-
-#define TRUE 1
-#define FALSE 0
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#define BBM_OK 0
-#define BBM_NOK 1
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/Makefile b/drivers/media/isdbt/fc8150/Makefile
deleted file mode 100644
index baf3d0e..0000000
--- a/drivers/media/isdbt/fc8150/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-obj-y += bbm.o
-obj-y += fc8150.o
-obj-y += fc8150_bb.o
-obj-y += fc8150_hpi.o
-obj-y += fc8150_i2c.o
-obj-y += fc8150_isr.o
-obj-y += fc8150_ppi.o
-obj-y += fc8150_spi.o
-obj-y += fc8150_spib.o
-obj-y += fc8150_tun.o
-obj-y += fci_bypass.o
-obj-y += fci_hal.o
-obj-y += fci_i2c.o
-obj-y += fci_oal.o
-obj-y += fci_ringbuffer.o
-obj-y += fci_tun.o
-
-#ccflags-y += -Idrivers/media/isdbt
diff --git a/drivers/media/isdbt/fc8150/bbm.c b/drivers/media/isdbt/fc8150/bbm.c
deleted file mode 100644
index c9ad7b0..0000000
--- a/drivers/media/isdbt/fc8150/bbm.c
+++ /dev/null
@@ -1,287 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : bbm.c
-
- Description : API of 1-SEG baseband module
-
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_tun.h"
-#include "fci_hal.h"
-#include "fc8150_bb.h"
-#include "fc8150_isr.h"
-
-int BBM_RESET(HANDLE hDevice)
-{
- int res;
-
- res = fc8150_reset(hDevice);
-
- return res;
-}
-
-int BBM_PROBE(HANDLE hDevice)
-{
- int res;
-
- res = fc8150_probe(hDevice);
-
- return res;
-}
-
-int BBM_INIT(HANDLE hDevice)
-{
- int res;
-
- res = fc8150_init(hDevice);
-
- return res;
-}
-
-int BBM_DEINIT(HANDLE hDevice)
-{
- int res;
-
- res = fc8150_deinit(hDevice);
-
- return res;
-}
-
-int BBM_READ(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
-
- res = bbm_read(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_BYTE_READ(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
-
- res = bbm_byte_read(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_WORD_READ(HANDLE hDevice, u16 addr, u16 *data)
-{
- int res;
-
- res = bbm_word_read(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_LONG_READ(HANDLE hDevice, u16 addr, u32 *data)
-{
- int res;
-
- res = bbm_long_read(hDevice, addr, data);
-
- return BBM_OK;
-}
-
-int BBM_BULK_READ(HANDLE hDevice, u16 addr, u8 *data, u16 size)
-{
- int res;
-
- res = bbm_bulk_read(hDevice, addr, data, size);
-
- return res;
-}
-
-int BBM_DATA(HANDLE hDevice, u16 addr, u8 *data, u32 size)
-{
- int res;
-
- res = bbm_data(hDevice, addr, data, size);
-
- return res;
-}
-
-int BBM_WRITE(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
-
- res = bbm_write(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_BYTE_WRITE(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
-
- res = bbm_byte_write(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_WORD_WRITE(HANDLE hDevice, u16 addr, u16 data)
-{
- int res;
-
- res = bbm_word_write(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_LONG_WRITE(HANDLE hDevice, u16 addr, u32 data)
-{
- int res;
-
- res = bbm_long_write(hDevice, addr, data);
-
- return res;
-}
-
-int BBM_BULK_WRITE(HANDLE hDevice, u16 addr, u8 *data, u16 size)
-{
- int res;
-
- res = bbm_bulk_write(hDevice, addr, data, size);
-
- return res;
-}
-
-int BBM_I2C_INIT(HANDLE hDevice, u32 type)
-{
- int res;
-
- res = tuner_ctrl_select(hDevice, type);
-
- return res;
-}
-
-int BBM_I2C_DEINIT(HANDLE hDevice)
-{
- int res;
-
- res = tuner_ctrl_deselect(hDevice);
-
- return res;
-}
-
-int BBM_TUNER_READ(HANDLE hDevice, u8 addr, u8 alen, u8 *buffer, u8 len)
-{
- int res;
-
- res = tuner_i2c_read(hDevice, addr, alen, buffer, len);
-
- return res;
-}
-
-int BBM_TUNER_WRITE(HANDLE hDevice, u8 addr, u8 alen, u8 *buffer, u8 len)
-{
- int res;
-
- res = tuner_i2c_write(hDevice, addr, alen, buffer, len);
-
- return res;
-}
-
-int BBM_TUNER_SET_FREQ(HANDLE hDevice, u32 freq)
-{
- int res;
-
- res = tuner_set_freq(hDevice, freq);
-
- return res;
-}
-
-int BBM_TUNER_SELECT(HANDLE hDevice, u32 product, u32 band)
-{
- int res;
-
- res = tuner_select(hDevice, product, band);
-
- return res;
-}
-
-int BBM_TUNER_DESELECT(HANDLE hDevice)
-{
- int res;
-
- res = tuner_deselect(hDevice);
-
- return res;
-}
-
-int BBM_TUNER_GET_RSSI(HANDLE hDevice, s32 *rssi)
-{
- int res;
-
- res = tuner_get_rssi(hDevice, rssi);
-
- return res;
-}
-
-int BBM_SCAN_STATUS(HANDLE hDevice)
-{
- int res;
-
- res = fc8150_scan_status(hDevice);
-
- return res;
-}
-
-void BBM_ISR(HANDLE hDevice)
-{
- fc8150_isr(hDevice);
-}
-
-int BBM_HOSTIF_SELECT(HANDLE hDevice, u8 hostif)
-{
- int res;
-
- res = bbm_hostif_select(hDevice, hostif);
-
- return res;
-}
-
-int BBM_HOSTIF_DESELECT(HANDLE hDevice)
-{
- int res;
-
- res = bbm_hostif_deselect(hDevice);
-
- return res;
-}
-
-int BBM_TS_CALLBACK_REGISTER(u32 userdata
- , int (*callback)(u32 userdata, u8 *data, int length))
-{
- gTSUserData = userdata;
- pTSCallback = callback;
-
- return BBM_OK;
-}
-
-int BBM_TS_CALLBACK_DEREGISTER(void)
-{
- gTSUserData = 0;
- pTSCallback = NULL;
-
- return BBM_OK;
-}
-
-int BBM_AC_CALLBACK_REGISTER(u32 userData
- , int (*callback)(u32 userdata, u8 *data, int length))
-{
- gACUserData = userData;
- pACCallback = callback;
-
- return BBM_OK;
-}
-
-int BBM_AC_CALLBACK_DEREGISTER(void)
-{
- gACUserData = 0;
- pACCallback = NULL;
-
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/bbm.h b/drivers/media/isdbt/fc8150/bbm.h
deleted file mode 100644
index 2543681..0000000
--- a/drivers/media/isdbt/fc8150/bbm.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : bbm.h
-
- Description : API of 1-SEG baseband module
-
-*******************************************************************************/
-#ifndef __BBM_H__
-#define __BBM_H__
-
-#include "fci_types.h"
-
-#define DRIVER_VER "VER 2.20.1"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int BBM_RESET(HANDLE hDevice);
-extern int BBM_PROBE(HANDLE hDevice);
-extern int BBM_INIT(HANDLE hDevice);
-extern int BBM_DEINIT(HANDLE hDevice);
-extern int BBM_READ(HANDLE hDevice, u16 addr, u8 *data);
-extern int BBM_BYTE_READ(HANDLE hDevice, u16 addr, u8 *data);
-extern int BBM_WORD_READ(HANDLE hDevice, u16 addr, u16 *data);
-extern int BBM_LONG_READ(HANDLE hDevice, u16 addr, u32 *data);
-extern int BBM_BULK_READ(HANDLE hDevice, u16 addr, u8 *data, u16 size);
-extern int BBM_DATA(HANDLE hDevice, u16 addr, u8 *data, u32 size);
-extern int BBM_WRITE(HANDLE hDevice, u16 addr, u8 data);
-extern int BBM_BYTE_WRITE(HANDLE hDevice, u16 addr, u8 data);
-extern int BBM_WORD_WRITE(HANDLE hDevice, u16 addr, u16 data);
-extern int BBM_LONG_WRITE(HANDLE hDevice, u16 addr, u32 data);
-extern int BBM_BULK_WRITE(HANDLE hDevice, u16 addr, u8 *data, u16 size);
-extern int BBM_I2C_INIT(HANDLE hDevice, u32 type);
-extern int BBM_I2C_DEINIT(HANDLE hDevice);
-extern int BBM_TUNER_SELECT(HANDLE hDevice, u32 product, u32 band);
-extern int BBM_TUNER_DESELECT(HANDLE hDevice);
-extern int BBM_TUNER_READ(HANDLE hDevice, u8 addr
- , u8 alen, u8 *buffer, u8 len);
-extern int BBM_TUNER_WRITE(HANDLE hDevice, u8 addr
- , u8 alen, u8 *buffer, u8 len);
-extern int BBM_TUNER_SET_FREQ(HANDLE hDevice, u32 freq);
-extern int BBM_TUNER_GET_RSSI(HANDLE hDevice, s32 *rssi);
-extern int BBM_SCAN_STATUS(HANDLE hDevice);
-extern int BBM_HOSTIF_SELECT(HANDLE hDevice, u8 hostif);
-extern int BBM_HOSTIF_DESELECT(HANDLE hDevice);
-extern int BBM_TS_CALLBACK_REGISTER(u32 userdata
- , int (*callback)(u32 userdata, u8 *data, int length));
-extern int BBM_TS_CALLBACK_DEREGISTER(void);
-extern int BBM_AC_CALLBACK_REGISTER(u32 userData
- , int (*callback)(u32 userdata, u8 *data, int length));
-extern int BBM_AC_CALLBACK_DEREGISTER(void);
-extern void BBM_ISR(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __BBM_H__ */
diff --git a/drivers/media/isdbt/fc8150/fc8150.c b/drivers/media/isdbt/fc8150/fc8150.c
deleted file mode 100644
index f6b829f..0000000
--- a/drivers/media/isdbt/fc8150/fc8150.c
+++ /dev/null
@@ -1,525 +0,0 @@
-#include <linux/miscdevice.h>
-#include <linux/interrupt.h>
-#include <linux/kthread.h>
-#include <linux/poll.h>
-#include <linux/vmalloc.h>
-#include <linux/irq.h>
-#include <linux/delay.h>
-#include <linux/slab.h>
-#include <linux/gpio.h>
-
-#include <linux/io.h>
-
-#include <mach/gpio.h>
-
-#include "fc8150.h"
-#include "bbm.h"
-#include "fci_oal.h"
-#include "fci_tun.h"
-#include "fc8150_regs.h"
-#include "fc8150_isr.h"
-#include "fci_hal.h"
-
-struct ISDBT_INIT_INFO_T *hInit;
-
-#define RING_BUFFER_SIZE (128 * 1024) /* kmalloc max 128k */
-
-/* GPIO(RESET & INTRRUPT) Setting */
-#define FC8150_NAME "isdbt"
-
-/*
-#define GPIO_ISDBT_IRQ 0x24
-#define GPIO_ISDBT_PWR_EN 1
-#define GPIO_ISDBT_RST 2
-*/
-#define GPIO_ISDBT_IRQ_FC8150 EXYNOS4_GPC0(4)
-#define GPIO_ISDBT_PWR_EN_FC8150 EXYNOS4_GPC0(2)
-#define GPIO_ISDBT_RST_FC8150 EXYNOS4_GPC0(0)
-
-static DECLARE_WAIT_QUEUE_HEAD(isdbt_isr_wait);
-
-static u8 isdbt_isr_sig;
-static struct task_struct *isdbt_kthread;
-
-static irqreturn_t isdbt_irq(int irq, void *dev_id)
-{
- isdbt_isr_sig = 1;
- wake_up_interruptible(&isdbt_isr_wait);
-
- return IRQ_HANDLED;
-}
-
-int isdbt_hw_setting(void)
-{
- int err;
- PRINTF(0, "isdbt_hw_setting\n");
-
- err = gpio_request(GPIO_ISDBT_PWR_EN_FC8150, "isdbt_en");
- if (err) {
- PRINTF(0, "isdbt_hw_setting: Couldn't request isdbt_en\n");
- goto gpio_isdbt_en;
- }
- gpio_direction_output(GPIO_ISDBT_PWR_EN_FC8150, 0);
-
- err = gpio_request(GPIO_ISDBT_RST_FC8150, "isdbt_rst");
- if (err) {
- PRINTF(0, "isdbt_hw_setting: Couldn't request isdbt_rst\n");
- goto gpio_isdbt_rst;
- }
- gpio_direction_output(GPIO_ISDBT_RST_FC8150, 1);
-
- err = gpio_request(GPIO_ISDBT_IRQ_FC8150, "isdbt_irq");
- if (err) {
- PRINTF(0, "isdbt_hw_setting: Couldn't request isdbt_irq\n");
- goto gpio_isdbt_rst;
- }
- gpio_direction_input(GPIO_ISDBT_IRQ_FC8150);
-
- err = request_irq(gpio_to_irq(GPIO_ISDBT_IRQ_FC8150), isdbt_irq
- , IRQF_DISABLED | IRQF_TRIGGER_RISING, FC8150_NAME, NULL);
-
- if (err < 0) {
- PRINTF(0, "isdbt_hw_setting: couldn't request gpio");
- PRINTF(0, "interrupt %d reason(%d)\n"
- , gpio_to_irq(GPIO_ISDBT_IRQ_FC8150), err);
- goto request_isdbt_irq;
- }
- return 0;
-request_isdbt_irq:
- gpio_free(GPIO_ISDBT_IRQ_FC8150);
-gpio_isdbt_rst:
- gpio_free(GPIO_ISDBT_PWR_EN_FC8150);
-gpio_isdbt_en:
- return err;
-}
-
-/*POWER_ON & HW_RESET & INTERRUPT_CLEAR */
-void isdbt_hw_init(void)
-{
- PRINTF(0, "isdbt_hw_init\n");
- gpio_set_value(GPIO_ISDBT_PWR_EN_FC8150, 1);
- gpio_set_value(GPIO_ISDBT_RST_FC8150, 1);
- mdelay(5);
- gpio_set_value(GPIO_ISDBT_RST_FC8150, 0);
- mdelay(1);
- gpio_set_value(GPIO_ISDBT_RST_FC8150, 1);
-}
-
-/*POWER_OFF */
-void isdbt_hw_deinit(void)
-{
- PRINTF(0, "isdbt_hw_deinit\n");
- gpio_set_value(GPIO_ISDBT_PWR_EN_FC8150, 0);
-}
-
-int data_callback(u32 hDevice, u8 *data, int len)
-{
- struct ISDBT_INIT_INFO_T *hInit;
- struct list_head *temp;
- hInit = (struct ISDBT_INIT_INFO_T *)hDevice;
-
- list_for_each(temp, &(hInit->hHead))
- {
- struct ISDBT_OPEN_INFO_T *hOpen;
-
- hOpen = list_entry(temp, struct ISDBT_OPEN_INFO_T, hList);
-
- if (hOpen->isdbttype == TS_TYPE) {
- if (fci_ringbuffer_free(&hOpen->RingBuffer) < (len+2)) {
- /*PRINTF(hDevice, "f"); */
- return 0;
- }
-
- FCI_RINGBUFFER_WRITE_BYTE(&hOpen->RingBuffer, len >> 8);
- FCI_RINGBUFFER_WRITE_BYTE(&hOpen->RingBuffer,
- len & 0xff);
-
- fci_ringbuffer_write(&hOpen->RingBuffer, data, len);
-
- wake_up_interruptible(&(hOpen->RingBuffer.queue));
- }
- }
-
- return 0;
-}
-
-static int isdbt_thread(void *hDevice)
-{
- static DEFINE_MUTEX(thread_lock);
-
- struct ISDBT_INIT_INFO_T *hInit = (struct ISDBT_INIT_INFO_T *)hDevice;
-
- set_user_nice(current, -20);
-
- PRINTF(hInit, "isdbt_kthread enter\n");
-
- BBM_TS_CALLBACK_REGISTER((u32)hInit, data_callback);
-
- while (1) {
- wait_event_interruptible(isdbt_isr_wait,
- isdbt_isr_sig || kthread_should_stop());
-
- isdbt_isr_sig = 0;
-
- BBM_ISR(hInit);
-
- if (kthread_should_stop())
- break;
- }
-
- BBM_TS_CALLBACK_DEREGISTER();
-
- PRINTF(hInit, "isdbt_kthread exit\n");
-
- return 0;
-}
-
-const struct file_operations isdbt_fops = {
- .owner = THIS_MODULE,
- .unlocked_ioctl = isdbt_ioctl,
- .open = isdbt_open,
- .read = isdbt_read,
- .release = isdbt_release,
-};
-
-static struct miscdevice fc8150_misc_device = {
- .minor = MISC_DYNAMIC_MINOR,
- .name = FC8150_NAME,
- .fops = &isdbt_fops,
-};
-
-int isdbt_open(struct inode *inode, struct file *filp)
-{
- struct ISDBT_OPEN_INFO_T *hOpen;
-
- PRINTF(hInit, "isdbt open\n");
-
- hOpen = kmalloc(sizeof(struct ISDBT_OPEN_INFO_T), GFP_KERNEL);
-
- hOpen->buf = kmalloc(RING_BUFFER_SIZE, GFP_KERNEL);
- hOpen->isdbttype = 0;
-
- list_add(&(hOpen->hList), &(hInit->hHead));
-
- hOpen->hInit = (HANDLE *)hInit;
-
- if (hOpen->buf == NULL) {
- PRINTF(hInit, "ring buffer malloc error\n");
- return -ENOMEM;
- }
-
- fci_ringbuffer_init(&hOpen->RingBuffer, hOpen->buf, RING_BUFFER_SIZE);
-
- filp->private_data = hOpen;
-
- return 0;
-}
-
-ssize_t isdbt_read(struct file *filp, char *buf, size_t count, loff_t *f_pos)
-{
- s32 avail;
- s32 non_blocking = filp->f_flags & O_NONBLOCK;
- struct ISDBT_OPEN_INFO_T *hOpen
- = (struct ISDBT_OPEN_INFO_T *)filp->private_data;
- struct fci_ringbuffer *cibuf = &hOpen->RingBuffer;
- ssize_t len;
-
- if (!cibuf->data || !count) {
- /*PRINTF(hInit, " return 0\n"); */
- return 0;
- }
-
- if (non_blocking && (fci_ringbuffer_empty(cibuf))) {
- /*PRINTF(hInit, "return EWOULDBLOCK\n"); */
- return -EWOULDBLOCK;
- }
-
- if (wait_event_interruptible(cibuf->queue,
- !fci_ringbuffer_empty(cibuf))) {
- PRINTF(hInit, "return ERESTARTSYS\n");
- return -ERESTARTSYS;
- }
-
- avail = fci_ringbuffer_avail(cibuf);
-
- if (avail < 4) {
- PRINTF(hInit, "return 00\n");
- return 0;
- }
-
- len = FCI_RINGBUFFER_PEEK(cibuf, 0) << 8;
- len |= FCI_RINGBUFFER_PEEK(cibuf, 1);
-
- if (avail < len + 2 || count < len) {
- PRINTF(hInit, "return EINVAL\n");
- return -EINVAL;
- }
-
- FCI_RINGBUFFER_SKIP(cibuf, 2);
-
- return fci_ringbuffer_read_user(cibuf, buf, len);
-}
-
-int isdbt_release(struct inode *inode, struct file *filp)
-{
- struct ISDBT_OPEN_INFO_T *hOpen;
-
- PRINTF(hInit, "isdbt_release\n");
-
- hOpen = filp->private_data;
-
- hOpen->isdbttype = 0;
-
- list_del(&(hOpen->hList));
- kfree(hOpen->buf);
- kfree(hOpen);
-
- return 0;
-}
-
-int fc8150_if_test(void)
-{
- int res = 0;
- int i;
- u16 wdata = 0;
- u32 ldata = 0;
- u8 data = 0;
- u8 temp = 0;
-
- PRINTF(0, "fc8150_if_test Start!!!\n");
- for (i = 0 ; i < 100 ; i++) {
- BBM_BYTE_WRITE(0, 0xa4, i & 0xff);
- BBM_BYTE_READ(0, 0xa4, &data);
- if ((i & 0xff) != data) {
- PRINTF(0, "fc8150_if_btest! i=0x%x, data=0x%x\n"
- , i & 0xff, data);
- res = 1;
- }
- }
-
- for (i = 0 ; i < 100 ; i++) {
- BBM_WORD_WRITE(0, 0xa4, i & 0xffff);
- BBM_WORD_READ(0, 0xa4, &wdata);
- if ((i & 0xffff) != wdata) {
- PRINTF(0, "fc8150_if_wtest! i=0x%x, data=0x%x\n"
- , i & 0xffff, wdata);
- res = 1;
- }
- }
-
- for (i = 0 ; i < 100 ; i++) {
- BBM_LONG_WRITE(0, 0xa4, i & 0xffffffff);
- BBM_LONG_READ(0, 0xa4, &ldata);
- if ((i & 0xffffffff) != ldata) {
- PRINTF(0, "fc8150_if_ltest! i=0x%x, data=0x%x\n"
- , i & 0xffffffff, ldata);
- res = 1;
- }
- }
-
- for (i = 0 ; i < 100 ; i++) {
- temp = i & 0xff;
- BBM_TUNER_WRITE(NULL, 0x52, 0x01, &temp, 0x01);
- BBM_TUNER_READ(NULL, 0x52, 0x01, &data, 0x01);
- if ((i & 0xff) != data)
- PRINTF(0, "FC8150 tuner test (0x%x,0x%x)\n"
- , i & 0xff, data);
- }
-
- PRINTF(0, "fc8150_if_test End!!!\n");
-
- return res;
-}
-
-
-long isdbt_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
-{
- s32 res = BBM_NOK;
- s32 err = 0;
- s32 size = 0;
- struct ISDBT_OPEN_INFO_T *hOpen;
-
- struct ioctl_info info;
-
- if (_IOC_TYPE(cmd) != IOCTL_MAGIC)
- return -EINVAL;
- if (_IOC_NR(cmd) >= IOCTL_MAXNR)
- return -EINVAL;
-
- hOpen = filp->private_data;
-
- size = _IOC_SIZE(cmd);
-
- switch (cmd) {
- case IOCTL_ISDBT_RESET:
- res = BBM_RESET(hInit);
- break;
- case IOCTL_ISDBT_INIT:
- res = BBM_I2C_INIT(hInit, FCI_I2C_TYPE);
- res |= BBM_PROBE(hInit);
- if (res) {
- PRINTF(hInit, "FC8150 Initialize Fail\n");
- break;
- }
- res |= BBM_INIT(hInit);
- break;
- case IOCTL_ISDBT_BYTE_READ:
- err = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_BYTE_READ(hInit, (u16)info.buff[0]
- , (u8 *)(&info.buff[1]));
- err |= copy_to_user((void *)arg, (void *)&info, size);
- break;
- case IOCTL_ISDBT_WORD_READ:
- err = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_WORD_READ(hInit, (u16)info.buff[0]
- , (u16 *)(&info.buff[1]));
- err |= copy_to_user((void *)arg, (void *)&info, size);
- break;
- case IOCTL_ISDBT_LONG_READ:
- err = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_LONG_READ(hInit, (u16)info.buff[0]
- , (u32 *)(&info.buff[1]));
- err |= copy_to_user((void *)arg, (void *)&info, size);
- break;
- case IOCTL_ISDBT_BULK_READ:
- err = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_BULK_READ(hInit, (u16)info.buff[0]
- , (u8 *)(&info.buff[2]), info.buff[1]);
- err |= copy_to_user((void *)arg, (void *)&info, size);
- break;
- case IOCTL_ISDBT_BYTE_WRITE:
- err = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_BYTE_WRITE(hInit, (u16)info.buff[0]
- , (u8)info.buff[1]);
- break;
- case IOCTL_ISDBT_WORD_WRITE:
- err = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_WORD_WRITE(hInit, (u16)info.buff[0]
- , (u16)info.buff[1]);
- break;
- case IOCTL_ISDBT_LONG_WRITE:
- err = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_LONG_WRITE(hInit, (u16)info.buff[0]
- , (u32)info.buff[1]);
- break;
- case IOCTL_ISDBT_BULK_WRITE:
- err = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_BULK_WRITE(hInit, (u16)info.buff[0]
- , (u8 *)(&info.buff[2]), info.buff[1]);
- break;
- case IOCTL_ISDBT_TUNER_READ:
- err = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_TUNER_READ(hInit, (u8)info.buff[0]
- , (u8)info.buff[1], (u8 *)(&info.buff[3])
- , (u8)info.buff[2]);
- err |= copy_to_user((void *)arg, (void *)&info, size);
- break;
- case IOCTL_ISDBT_TUNER_WRITE:
- err = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_TUNER_WRITE(hInit, (u8)info.buff[0]
- , (u8)info.buff[1], (u8 *)(&info.buff[3])
- , (u8)info.buff[2]);
- break;
- case IOCTL_ISDBT_TUNER_SET_FREQ:
- {
- u32 f_rf;
- err = copy_from_user((void *)&info, (void *)arg, size);
-
- f_rf = ((u32)info.buff[0] - 13) * 6000 + 473143;
- res = BBM_TUNER_SET_FREQ(hInit, f_rf);
- }
- break;
- case IOCTL_ISDBT_TUNER_SELECT:
- err = copy_from_user((void *)&info, (void *)arg, size);
- res = BBM_TUNER_SELECT(hInit, (u32)info.buff[0], 0);
- break;
- case IOCTL_ISDBT_TS_START:
- hOpen->isdbttype = TS_TYPE;
- break;
- case IOCTL_ISDBT_TS_STOP:
- hOpen->isdbttype = 0;
- break;
- case IOCTL_ISDBT_POWER_ON:
- isdbt_hw_init();
- break;
- case IOCTL_ISDBT_POWER_OFF:
- isdbt_hw_deinit();
- break;
- case IOCTL_ISDBT_SCAN_STATUS:
- res = BBM_SCAN_STATUS(hInit);
- break;
- default:
- PRINTF(hInit, "isdbt ioctl error!\n");
- res = BBM_NOK;
- break;
- }
-
- if (err < 0) {
- PRINTF(hInit, "copy to/from user fail : %d", err);
- res = BBM_NOK;
- }
- return res;
-}
-
-int isdbt_init(void)
-{
- s32 res;
-
- PRINTF(hInit, "isdbt_init\n");
-
- res = misc_register(&fc8150_misc_device);
-
- if (res < 0) {
- PRINTF(hInit, "isdbt init fail : %d\n", res);
- return res;
- }
-
- isdbt_hw_setting();
-
- isdbt_hw_init();
-
- hInit = kmalloc(sizeof(struct ISDBT_INIT_INFO_T), GFP_KERNEL);
-
- res = BBM_HOSTIF_SELECT(hInit, BBM_SPI);
-
- if (res)
- PRINTF(hInit, "isdbt host interface select fail!\n");
-
- isdbt_hw_deinit();
-
- if (!isdbt_kthread) {
- PRINTF(hInit, "kthread run\n");
- isdbt_kthread = kthread_run(isdbt_thread
- , (void *)hInit, "isdbt_thread");
- }
-
- INIT_LIST_HEAD(&(hInit->hHead));
-
- return 0;
-}
-
-void isdbt_exit(void)
-{
- PRINTF(hInit, "isdbt isdbt_exit\n");
-
- free_irq(gpio_to_irq(GPIO_ISDBT_IRQ_FC8150), NULL);
- gpio_free(GPIO_ISDBT_IRQ_FC8150);
- gpio_free(GPIO_ISDBT_RST_FC8150);
- gpio_free(GPIO_ISDBT_PWR_EN_FC8150);
-
- kthread_stop(isdbt_kthread);
- isdbt_kthread = NULL;
-
- BBM_HOSTIF_DESELECT(hInit);
-
- isdbt_hw_deinit();
-
- misc_deregister(&fc8150_misc_device);
-
- kfree(hInit);
-}
-
-module_init(isdbt_init);
-module_exit(isdbt_exit);
-
-MODULE_LICENSE("Dual BSD/GPL");
diff --git a/drivers/media/isdbt/fc8150/fc8150.h b/drivers/media/isdbt/fc8150/fc8150.h
deleted file mode 100644
index 787cc0f..0000000
--- a/drivers/media/isdbt/fc8150/fc8150.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : bbm.c
-
- Description : API of dmb baseband module
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-#ifndef __ISDBT_H__
-#define __ISDBT_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <linux/list.h>
-
-#include "fci_types.h"
-#include "fci_ringbuffer.h"
-
-#define CTL_TYPE 0
-#define TS_TYPE 1
-
-#define MAX_OPEN_NUM 8
-
-#define IOCTL_MAGIC 't'
-
-struct ioctl_info {
- unsigned long size;
- unsigned long buff[128];
-};
-
-#define IOCTL_MAXNR 25
-
-#define IOCTL_ISDBT_RESET \
- _IO(IOCTL_MAGIC, 0)
-#define IOCTL_ISDBT_PROBE \
- _IO(IOCTL_MAGIC, 1)
-#define IOCTL_ISDBT_INIT \
- _IO(IOCTL_MAGIC, 2)
-#define IOCTL_ISDBT_DEINIT \
- _IO(IOCTL_MAGIC, 3)
-
-#define IOCTL_ISDBT_BYTE_READ \
- _IOWR(IOCTL_MAGIC, 4, struct ioctl_info)
-#define IOCTL_ISDBT_WORD_READ \
- _IOWR(IOCTL_MAGIC, 5, struct ioctl_info)
-#define IOCTL_ISDBT_LONG_READ \
- _IOWR(IOCTL_MAGIC, 6, struct ioctl_info)
-#define IOCTL_ISDBT_BULK_READ \
- _IOWR(IOCTL_MAGIC, 7, struct ioctl_info)
-
-#define IOCTL_ISDBT_BYTE_WRITE \
- _IOW(IOCTL_MAGIC, 8, struct ioctl_info)
-#define IOCTL_ISDBT_WORD_WRITE \
- _IOW(IOCTL_MAGIC, 9, struct ioctl_info)
-#define IOCTL_ISDBT_LONG_WRITE \
- _IOW(IOCTL_MAGIC, 10, struct ioctl_info)
-#define IOCTL_ISDBT_BULK_WRITE \
- _IOW(IOCTL_MAGIC, 11, struct ioctl_info)
-
-#define IOCTL_ISDBT_TUNER_READ \
- _IOWR(IOCTL_MAGIC, 12, struct ioctl_info)
-#define IOCTL_ISDBT_TUNER_WRITE \
- _IOW(IOCTL_MAGIC, 13, struct ioctl_info)
-
-#define IOCTL_ISDBT_TUNER_SET_FREQ \
- _IOW(IOCTL_MAGIC, 14, struct ioctl_info)
-#define IOCTL_ISDBT_TUNER_SELECT \
- _IOW(IOCTL_MAGIC, 15, struct ioctl_info)
-#define IOCTL_ISDBT_TUNER_DESELECT \
- _IO(IOCTL_MAGIC, 16)
-
-#define IOCTL_ISDBT_SCAN_STATUS \
- _IO(IOCTL_MAGIC, 17)
-#define IOCTL_ISDBT_TS_START \
- _IO(IOCTL_MAGIC, 18)
-#define IOCTL_ISDBT_TS_STOP \
- _IO(IOCTL_MAGIC, 19)
-
-#define IOCTL_ISDBT_TUNER_GET_RSSI \
- _IOWR(IOCTL_MAGIC, 20, struct ioctl_info)
-
-#define IOCTL_ISDBT_HOSTIF_SELECT \
- _IOW(IOCTL_MAGIC, 21, struct ioctl_info)
-#define IOCTL_ISDBT_HOSTIF_DESELECT \
- _IO(IOCTL_MAGIC, 22)
-
-#define IOCTL_ISDBT_POWER_ON \
- _IO(IOCTL_MAGIC, 23)
-#define IOCTL_ISDBT_POWER_OFF \
- _IO(IOCTL_MAGIC, 24)
-
-struct ISDBT_OPEN_INFO_T {
- HANDLE *hInit;
- struct list_head hList;
- struct fci_ringbuffer RingBuffer;
- u8 *buf;
- u8 isdbttype;
-};
-
-struct ISDBT_INIT_INFO_T {
- struct list_head hHead;
-};
-
-extern int isdbt_open(struct inode *inode, struct file *filp);
-extern long isdbt_ioctl(struct file *filp, unsigned int cmd, unsigned long arg);
-extern int isdbt_release(struct inode *inode, struct file *filp);
-extern ssize_t isdbt_read(struct file *filp
- , char *buf, size_t count, loff_t *f_pos);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fc8150_bb.c b/drivers/media/isdbt/fc8150/fc8150_bb.c
deleted file mode 100644
index e696716..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_bb.c
+++ /dev/null
@@ -1,789 +0,0 @@
-/*****************************************************************************
-
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_bb.c
-
- Description : API of 1-SEG baseband module
-
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fci_hal.h"
-#include "fci_tun.h"
-#include "fc8150_regs.h"
-
-static u8 filter_coef_6M[7][16] = {
- { 0x00, 0x00, 0x00, 0x07, 0x0f, 0x01, 0x03, 0x04
- , 0x01, 0x19, 0x14, 0x18, 0x0a, 0x26, 0x40, 0x4a},
- /*xtal_in : 24,16,32 (adc clk = 4.0000)*/
- { 0x00, 0x07, 0x07, 0x00, 0x01, 0x03, 0x03, 0x01
- , 0x1c, 0x17, 0x16, 0x1e, 0x10, 0x27, 0x3b, 0x43},
- /*xtal_in : 26 (adc clk = 4.3333)*/
- { 0x00, 0x07, 0x07, 0x00, 0x01, 0x03, 0x03, 0x00
- , 0x1b, 0x16, 0x16, 0x1f, 0x11, 0x27, 0x3a, 0x41},
- /*xtal_in : 27,18 (adc clk = 4.5000)*/
- { 0x00, 0x00, 0x07, 0x07, 0x00, 0x02, 0x03, 0x03
- , 0x1f, 0x18, 0x14, 0x1a, 0x0c, 0x26, 0x3e, 0x47},
- /*xtal_in : 16.384, 24.576 (adc clk = 4.0960)*/
- { 0x00, 0x07, 0x07, 0x00, 0x02, 0x03, 0x02, 0x0f
- , 0x1a, 0x16, 0x18, 0x02, 0x13, 0x27, 0x38, 0x3e},
- /*xtal_in : 19.2, 38.4 (adc clk = 4.8000)*/
- { 0x00, 0x07, 0x07, 0x00, 0x01, 0x03, 0x03, 0x00
- , 0x1b, 0x16, 0x16, 0x1f, 0x11, 0x27, 0x3a, 0x41},
- /*xtal_in : 27.12 (adc clk = 4.5200)*/
- { 0x00, 0x07, 0x07, 0x00, 0x02, 0x03, 0x03, 0x00
- , 0x1a, 0x16, 0x17, 0x01, 0x12, 0x27, 0x39, 0x3f}
- /*xtal_in : 37.4 (adc clk = 4.6750)*/
-};
-
-#if 0
-static u8 filter_coef_7M[7][16] = {
- { 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0e, 0x00, 0x04, 0x05
- , 0x1f, 0x15, 0x12, 0x01, 0x22, 0x45, 0x55},
- /*xtal_in : 24,16,32 (adc clk = 4.0000)*/
- { 0x00, 0x00, 0x00, 0x07, 0x0e, 0x0f, 0x02, 0x05, 0x04
- , 0x1c, 0x14, 0x14, 0x05, 0x24, 0x43, 0x50},
- /*xtal_in : 26 (adc clk = 4.3333)*/
- { 0x00, 0x00, 0x00, 0x07, 0x0f, 0x00, 0x03, 0x05, 0x02
- , 0x1b, 0x14, 0x16, 0x07, 0x25, 0x42, 0x4d},
- /*xtal_in : 27,18 (adc clk = 4.5000)*/
- { 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x01, 0x04, 0x05
- , 0x1e, 0x15, 0x13, 0x02, 0x23, 0x44, 0x53},
- /*xtal_in : 16.384, 24.576 (adc clk = 4.0960)*/
- { 0x00, 0x00, 0x07, 0x07, 0x00, 0x02, 0x04, 0x03, 0x1f
- , 0x18, 0x14, 0x1a, 0x0c, 0x26, 0x3e, 0x47},
- /*xtal_in : 19.2, 38.4 (adc clk = 4.8000)*/
- { 0x00, 0x00, 0x00, 0x07, 0x0f, 0x00, 0x03, 0x05, 0x02
- , 0x1b, 0x14, 0x16, 0x07, 0x25, 0x41, 0x4d},
- /*xtal_in : 27.12 (adc clk = 4.5200)*/
- { 0x00, 0x00, 0x00, 0x07, 0x0f, 0x01, 0x03, 0x04, 0x00
- , 0x19, 0x14, 0x18, 0x0a, 0x26, 0x3f, 0x4a}
- /*xtal_in : 37.4 (adc clk = 4.6750)*/
-};
-
-static u8 filter_coef_8M[7][16] = {
- { 0x00, 0x00, 0x00, 0x01, 0x01, 0x0f, 0x0d, 0x0f, 0x05
- , 0x06, 0x1d, 0x10, 0xf6, 0x1a, 0x4b, 0x62},
- /*xtal_in : 24,16,32 (adc clk = 4.0000)*/
- { 0x00, 0x00, 0x00, 0x01, 0x00, 0x0e, 0x0e, 0x02, 0x06
- , 0x04, 0x19, 0x10, 0xfb, 0x1e, 0x48, 0x5b},
- /*xtal_in : 26 (adc clk = 4.3333)*/
- { 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0e, 0x00, 0x03, 0x05
- , 0x00, 0x16, 0x11, 0xff, 0x21, 0x46, 0x56},
- /*xtal_in : 27,18 (adc clk = 4.5000)*/
- { 0x00, 0x00, 0x00, 0x01, 0x00, 0x0f, 0x0d, 0x00, 0x05
- , 0x06, 0x1c, 0x10, 0xf7, 0x1b, 0x4a, 0x60},
- /*xtal_in : 16.384, 24.576 (adc clk = 4.0960)*/
- { 0x00, 0x00, 0x00, 0x07, 0x0e, 0x0f, 0x01, 0x05, 0x04
- , 0x1d, 0x14, 0x13, 0x04, 0x23, 0x44, 0x51},
- /*xtal_in : 19.2, 38.4 (adc clk = 4.8000)*/
- { 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0e, 0x00, 0x04, 0x05
- , 0x00, 0x16, 0x12, 0x00, 0x21, 0x46, 0x56},
- /*xtal_in : 27.12 (adc clk = 4.5200)*/
- { 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x01, 0x04, 0x05
- , 0x1e, 0x15, 0x13, 0x02, 0x23, 0x44, 0x53}
- /*xtal_in : 37.4 (adc clk = 4.6750)*/
-};
-#endif
-
-static void fc8150_clock_mode(HANDLE hDevice)
-{
- int i;
-
-#if (BBM_XTAL_FREQ == 16000)
- bbm_write(hDevice, 0x0016, 0);
-
-#if (BBM_BAND_WIDTH == 6)
- bbm_word_write(hDevice, 0x1032, 0x30a4);
-
- bbm_long_write(hDevice, 0x103c, 0x1f800000);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0x10);
- bbm_write(hDevice, 0x2008, 0x41);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_6M[0][i]);
-
-#elif (BBM_BAND_WIDTH == 7)
- bbm_word_write(hDevice, 0x1032, 0x30a4);
-
- bbm_long_write(hDevice, 0x103c, 0x1b000000);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0xbd);
- bbm_write(hDevice, 0x2008, 0xa1);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_7M[0][i]);
-
-#else
- bbm_word_write(hDevice, 0x1032, 0x3ae1);
-
- bbm_long_write(hDevice, 0x103c, 0x17a00000);
-
- bbm_write(hDevice, 0x200a, 0x05);
- bbm_write(hDevice, 0x2009, 0x6b);
- bbm_write(hDevice, 0x2008, 0x01);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_8M[0][i]);
-
-#endif
-
-#elif (BBM_XTAL_FREQ == 16384)
- bbm_write(hDevice, 0x0016, 0);
-
-#if (BBM_BAND_WIDTH == 6)
- bbm_word_write(hDevice, 0x1032, 0x2f80);
-
- bbm_long_write(hDevice, 0x103c, 0x20418937);
-
- bbm_write(hDevice, 0x200a, 0x03);
- bbm_write(hDevice, 0x2009, 0xf7);
- bbm_write(hDevice, 0x2008, 0xdf);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_6M[3][i]);
-
-#elif (BBM_BAND_WIDTH == 7)
- bbm_word_write(hDevice, 0x1032, 0x2f80);
-
- bbm_long_write(hDevice, 0x103c, 0x1ba5e354);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0xa1);
- bbm_write(hDevice, 0x2008, 0x2f);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_7M[3][i]);
-
-#else
- bbm_word_write(hDevice, 0x1032, 0x3980);
-
- bbm_long_write(hDevice, 0x103c, 0x183126e9);
-
- bbm_write(hDevice, 0x200a, 0x05);
- bbm_write(hDevice, 0x2009, 0x4a);
- bbm_write(hDevice, 0x2008, 0x7f);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_8M[3][i]);
-#endif
-
-#elif (BBM_XTAL_FREQ == 18000)
- bbm_write(hDevice, 0x0016, 0);
-
-#if (BBM_BAND_WIDTH == 6)
- bbm_word_write(hDevice, 0x1032, 0x2b3c);
-
- bbm_long_write(hDevice, 0x103c, 0x23700000);
-
- bbm_write(hDevice, 0x200a, 0x03);
- bbm_write(hDevice, 0x2009, 0x9c);
- bbm_write(hDevice, 0x2008, 0xac);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_6M[2][i]);
-
-#elif (BBM_BAND_WIDTH == 7)
- bbm_word_write(hDevice, 0x1032, 0x2b3c);
-
- bbm_long_write(hDevice, 0x103c, 0x1e600000);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0x36);
- bbm_write(hDevice, 0x2008, 0xc8);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_7M[2][i]);
-
-#else
- bbm_word_write(hDevice, 0x1032, 0x3456);
-
- bbm_long_write(hDevice, 0x103c, 0x1a940000);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0xd0);
- bbm_write(hDevice, 0x2008, 0xe5);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_8M[2][i]);
-
-#endif
-
-#elif (BBM_XTAL_FREQ == 19200)
- bbm_write(hDevice, 0x0016, 0);
-
-#if (BBM_BAND_WIDTH == 6)
- bbm_word_write(hDevice, 0x1032, 0x2889);
-
- bbm_long_write(hDevice, 0x103c, 0x25cccccd);
-
- bbm_write(hDevice, 0x200a, 0x03);
- bbm_write(hDevice, 0x2009, 0x62);
- bbm_write(hDevice, 0x2008, 0xe1);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_6M[4][i]);
-
-#elif (BBM_BAND_WIDTH == 7)
- bbm_word_write(hDevice, 0x1032, 0x2889);
-
- bbm_long_write(hDevice, 0x103c, 0x20666666);
-
- bbm_write(hDevice, 0x200a, 0x03);
- bbm_write(hDevice, 0x2009, 0xf3);
- bbm_write(hDevice, 0x2008, 0x5c);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_7M[4][i]);
-
-#else
- bbm_word_write(hDevice, 0x1032, 0x3111);
-
- bbm_long_write(hDevice, 0x103c, 0x1c59999a);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0x83);
- bbm_write(hDevice, 0x2008, 0xd6);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_8M[4][i]);
-
-#endif
-
-#elif (BBM_XTAL_FREQ == 24000)
- bbm_write(hDevice, 0x0016, 2);
-
-#if (BBM_BAND_WIDTH == 6)
- bbm_word_write(hDevice, 0x1032, 0x30a4);
-
- bbm_long_write(hDevice, 0x103c, 0x1f800000);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0x10);
- bbm_write(hDevice, 0x2008, 0x41);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_6M[0][i]);
-
-#elif (BBM_BAND_WIDTH == 7)
- bbm_word_write(hDevice, 0x1032, 0x30a4);
-
- bbm_long_write(hDevice, 0x103c, 0x1b000000);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0xbd);
- bbm_write(hDevice, 0x2008, 0xa1);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_7M[0][i]);
-
-#else
- bbm_word_write(hDevice, 0x1032, 0x3ae1);
-
- bbm_long_write(hDevice, 0x103c, 0x17a00000);
-
- bbm_write(hDevice, 0x200a, 0x05);
- bbm_write(hDevice, 0x2009, 0x6b);
- bbm_write(hDevice, 0x2008, 0x01);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_8M[0][i]);
-
-#endif
-
-#elif (BBM_XTAL_FREQ == 26000)
- bbm_write(hDevice, 0x0016, 2);
-
-#if (BBM_BAND_WIDTH == 6)
- bbm_word_write(hDevice, 0x1032, 0x2ce6);
-
- bbm_long_write(hDevice, 0x103c, 0x221fffd4);
-
- bbm_write(hDevice, 0x200a, 0x03);
- bbm_write(hDevice, 0x2009, 0xc0);
- bbm_write(hDevice, 0x2008, 0x3c);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_6M[1][i]);
-
-#elif (BBM_BAND_WIDTH == 7)
- bbm_word_write(hDevice, 0x1032, 0x2ce6);
-
- bbm_long_write(hDevice, 0x103c, 0x1d3fffda);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0x60);
- bbm_write(hDevice, 0x2008, 0x46);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_7M[1][i]);
-
-#else
- bbm_word_write(hDevice, 0x1032, 0x365a);
-
- bbm_long_write(hDevice, 0x103c, 0x1997ffdf);
-
- bbm_write(hDevice, 0x200a, 0x05);
- bbm_write(hDevice, 0x2009, 0x00);
- bbm_write(hDevice, 0x2008, 0x50);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_8M[1][i]);
-
-#endif
-
-#elif (BBM_XTAL_FREQ == 27000)
- bbm_write(hDevice, 0x0016, 2);
-
-#if (BBM_BAND_WIDTH == 6)
- bbm_word_write(hDevice, 0x1032, 0x2b3c);
-
- bbm_long_write(hDevice, 0x103c, 0x23700000);
-
- bbm_write(hDevice, 0x200a, 0x03);
- bbm_write(hDevice, 0x2009, 0x9c);
- bbm_write(hDevice, 0x2008, 0xac);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_6M[2][i]);
-
-#elif (BBM_BAND_WIDTH == 7)
- bbm_word_write(hDevice, 0x1032, 0x2b3c);
-
- bbm_long_write(hDevice, 0x103c, 0x1e600000);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0x36);
- bbm_write(hDevice, 0x2008, 0xc8);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_7M[2][i]);
-#else
- bbm_word_write(hDevice, 0x1032, 0x3456);
-
- bbm_long_write(hDevice, 0x103c, 0x1a940000);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0xd0);
- bbm_write(hDevice, 0x2008, 0xe5);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_8M[2][i]);
-#endif
-
-#elif (BBM_XTAL_FREQ == 27120)
- bbm_write(hDevice, 0x0016, 2);
-
-#if (BBM_BAND_WIDTH == 6)
- bbm_word_write(hDevice, 0x1032, 0x2b0b);
-
- bbm_long_write(hDevice, 0x103c, 0x239851ec);
-
- bbm_write(hDevice, 0x200a, 0x03);
- bbm_write(hDevice, 0x2009, 0x98);
- bbm_write(hDevice, 0x2008, 0x94);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_6M[5][i]);
-
-#elif (BBM_BAND_WIDTH == 7)
- bbm_word_write(hDevice, 0x1032, 0x2b0b);
-
- bbm_long_write(hDevice, 0x103c, 0x1e828f5c);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0x32);
- bbm_write(hDevice, 0x2008, 0x02);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_7M[5][i]);
-
-#else
- bbm_word_write(hDevice, 0x1032, 0x341b);
-
- bbm_long_write(hDevice, 0x103c, 0x1ab23d71);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0xcb);
- bbm_write(hDevice, 0x2008, 0x70);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_8M[5][i]);
-
-#endif
-
-#elif (BBM_XTAL_FREQ == 24576)
- bbm_write(hDevice, 0x0016, 2);
-
-#if (BBM_BAND_WIDTH == 6)
- bbm_word_write(hDevice, 0x1032, 0x2f80);
-
- bbm_long_write(hDevice, 0x103c, 0x20418937);
-
- bbm_write(hDevice, 0x200a, 0x03);
- bbm_write(hDevice, 0x2009, 0xf7);
- bbm_write(hDevice, 0x2008, 0xdf);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_6M[3][i]);
-
-#elif (BBM_BAND_WIDTH == 7)
- bbm_word_write(hDevice, 0x1032, 0x2f80);
-
- bbm_long_write(hDevice, 0x103c, 0x1ba5e354);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0xa1);
- bbm_write(hDevice, 0x2008, 0x2f);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_7M[3][i]);
-
-#else
- bbm_word_write(hDevice, 0x1032, 0x3980);
-
- bbm_long_write(hDevice, 0x103c, 0x183126e9);
-
- bbm_write(hDevice, 0x200a, 0x05);
- bbm_write(hDevice, 0x2009, 0x4a);
- bbm_write(hDevice, 0x2008, 0x7f);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_8M[3][i]);
-
-#endif
-
-#elif (BBM_XTAL_FREQ == 32000)
- /* Default Clock */
- bbm_write(hDevice, 0x0016, 1);
-
-#if (BBM_BAND_WIDTH == 6)
- /* Default Band-width */
- bbm_word_write(hDevice, 0x1032, 0x30a4);
-
- bbm_long_write(hDevice, 0x103c, 0x1f800000);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0x10);
- bbm_write(hDevice, 0x2008, 0x41);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_6M[0][i]);
-
-#elif (BBM_BAND_WIDTH == 7)
- bbm_word_write(hDevice, 0x1032, 0x30a4);
-
- bbm_long_write(hDevice, 0x103c, 0x1b000000);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0xbd);
- bbm_write(hDevice, 0x2008, 0xa1);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_7M[0][i]);
-
-#else
- bbm_word_write(hDevice, 0x1032, 0x3ae1);
-
- bbm_long_write(hDevice, 0x103c, 0x17a00000);
-
- bbm_write(hDevice, 0x200a, 0x05);
- bbm_write(hDevice, 0x2009, 0x6b);
- bbm_write(hDevice, 0x2008, 0x01);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_8M[0][i]);
-
-#endif
-
-#elif (BBM_XTAL_FREQ == 37400)
- bbm_write(hDevice, 0x0016, 1);
-
-#if (BBM_BAND_WIDTH == 6)
- bbm_word_write(hDevice, 0x1032, 0x299e);
-
- bbm_long_write(hDevice, 0x103c, 0x24d0cccd);
-
- bbm_write(hDevice, 0x200a, 0x03);
- bbm_write(hDevice, 0x2009, 0x7a);
- bbm_write(hDevice, 0x2008, 0x0f);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_6M[6][i]);
-
-#elif (BBM_BAND_WIDTH == 7)
- bbm_word_write(hDevice, 0x1032, 0x299e);
-
- bbm_long_write(hDevice, 0x103c, 0x1f8e6666);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0x0e);
- bbm_write(hDevice, 0x2008, 0x66);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_7M[6][i]);
-
-#else
- bbm_word_write(hDevice, 0x1032, 0x3261);
-
- bbm_long_write(hDevice, 0x103c, 0x1b9c999a);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0xa2);
- bbm_write(hDevice, 0x2008, 0xbe);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_8M[6][i]);
-
-#endif
-
-#elif (BBM_XTAL_FREQ == 38400)
- bbm_write(hDevice, 0x0016, 1);
-
-#if (BBM_BAND_WIDTH == 6)
- bbm_word_write(hDevice, 0x1032, 0x2889);
-
- bbm_long_write(hDevice, 0x103c, 0x25cccccd);
-
- bbm_write(hDevice, 0x200a, 0x03);
- bbm_write(hDevice, 0x2009, 0x62);
- bbm_write(hDevice, 0x2008, 0xe1);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_6M[4][i]);
-
-#elif (BBM_BAND_WIDTH == 7)
- bbm_word_write(hDevice, 0x1032, 0x2889);
-
- bbm_long_write(hDevice, 0x103c, 0x20666666);
-
- bbm_write(hDevice, 0x200a, 0x03);
- bbm_write(hDevice, 0x2009, 0xf3);
- bbm_write(hDevice, 0x2008, 0x5c);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_7M[4][i]);
-
-#else
- bbm_word_write(hDevice, 0x1032, 0x3111);
-
- bbm_long_write(hDevice, 0x103c, 0x1c59999a);
-
- bbm_write(hDevice, 0x200a, 0x04);
- bbm_write(hDevice, 0x2009, 0x83);
- bbm_write(hDevice, 0x2008, 0xd6);
-
- for (i = 0; i < 16; i++)
- bbm_write(hDevice, 0x1040+i, filter_coef_8M[4][i]);
-
-#endif
-#endif
-}
-
-int fc8150_reset(HANDLE hDevice)
-{
- bbm_write(hDevice, BBM_SW_RESET, 0x7f);
- bbm_write(hDevice, BBM_SW_RESET, 0xff);
-
- return BBM_OK;
-}
-
-int fc8150_probe(HANDLE hDevice)
-{
- u16 ver;
- bbm_word_read(hDevice, BBM_CHIP_ID_L, &ver);
-
- return (ver == 0x8150) ? BBM_OK : BBM_NOK;
-}
-
-int fc8150_init(HANDLE hDevice)
-{
- bbm_write(hDevice, 0x00b0, 0x03);
- bbm_write(hDevice, 0x00b1, 0x00);
- bbm_write(hDevice, 0x00b2, 0x14);
-
- fc8150_reset(hDevice);
- fc8150_clock_mode(hDevice);
-
- bbm_write(hDevice, 0x1000, 0x27);
- bbm_write(hDevice, 0x1004, 0x4d);
- bbm_write(hDevice, 0x1069, 0x09);
- bbm_write(hDevice, 0x1075, 0x00);
-
- bbm_word_write(hDevice, 0x00b4, 0x0000);
- /*bbm_write(hDevice, 0x00b6, 0x03);*/ /* Default 0x03, 0x00, 0x07*/
- bbm_write(hDevice, 0x00b9, 0x00);
- bbm_write(hDevice, 0x00ba, 0x01);
-
- bbm_write(hDevice, 0x2004, 0x41);
- bbm_write(hDevice, 0x2106, 0x1f);
-
- bbm_write(hDevice, 0x5010, 0x00);
- bbm_write(hDevice, BBM_RS_FAIL_TX, 0x00); /* RS FAILURE TX: 0x02*/
-
- bbm_word_write(hDevice, BBM_BUF_TS_START, TS_BUF_START);
- bbm_word_write(hDevice, BBM_BUF_TS_END, TS_BUF_END);
- bbm_word_write(hDevice, BBM_BUF_TS_THR, TS_BUF_THR);
-
- /*bbm_word_write(hDevice, BBM_BUF_AC_START, AC_BUF_START);*/
- /*bbm_word_write(hDevice, BBM_BUF_AC_END, AC_BUF_END);*/
- /*bbm_word_write(hDevice, BBM_BUF_AC_THR, AC_BUF_THR);*/
-
- /*bbm_write(hDevice, BBM_INT_POLAR_SEL, 0x00);*/
- /*bbm_write(hDevice, BBM_INT_AUTO_CLEAR, 0x01);*/
- /*bbm_write(hDevice, BBM_STATUS_AUTO_CLEAR_EN, 0x00);*/
-
- bbm_write(hDevice, BBM_BUF_ENABLE, 0x01);
- bbm_write(hDevice, BBM_BUF_INT, 0x01);
-
- bbm_write(hDevice, BBM_INT_MASK, 0x07);
- bbm_write(hDevice, BBM_INT_STS_EN, 0x01);
-
- return BBM_OK;
-}
-
-int fc8150_deinit(HANDLE hDevice)
-{
- bbm_write(hDevice, BBM_SW_RESET, 0x00);
-
- return BBM_OK;
-}
-
-int fc8150_scan_status(HANDLE hDevice)
-{
- u32 ifagc_timeout = 7;
- u32 ofdm_timeout = 16;
- u32 ffs_lock_timeout = 10;
- u32 dagc_timeout = 100; /* always done*/
- u32 cfs_timeout = 12;
- u32 tmcc_timeout = 105;
- u32 ts_err_free_timeout = 0;
- int rssi;
- u8 data, data1;
- u8 lay0_mod, lay0_cr;
- int i;
-
- for (i = 0; i < ifagc_timeout; i++) {
- bbm_read(hDevice, 0x3025, &data);
-
- if (data & 0x01)
- break;
-
- msWait(10);
- }
-
- if (i == ifagc_timeout)
- return BBM_NOK;
-
- tuner_get_rssi(hDevice, &rssi);
-
- if (rssi < -107)
- return BBM_NOK;
-
- for (; i < ofdm_timeout; i++) {
- bbm_read(hDevice, 0x3025, &data);
-
- if (data & 0x08)
- break;
-
- msWait(10);
- }
-
- if (i == ofdm_timeout)
- return BBM_NOK;
-
- if (0 == (data & 0x04))
- return BBM_NOK;
-
- for (; i < ffs_lock_timeout; i++) {
- bbm_read(hDevice, 0x3026, &data);
-
- if (data & 0x10)
- break;
-
- msWait(10);
- }
-
- if (i == ffs_lock_timeout)
- return BBM_NOK;
-
- /* DAGC Lock*/
- for (i = 0; i < dagc_timeout; i++) {
- bbm_read(hDevice, 0x3026, &data);
-
- if (data & 0x01)
- break;
-
- msWait(10);
- }
-
- if (i == dagc_timeout)
- return BBM_NOK;
-
- for (i = 0; i < cfs_timeout; i++) {
- bbm_read(hDevice, 0x3025, &data);
-
- if (data & 0x40)
- break;
-
- msWait(10);
- }
-
- if (i == cfs_timeout)
- return BBM_NOK;
-
- bbm_read(hDevice, 0x2023, &data1);
- if (data1 & 1)
- return BBM_NOK;
-
- for (i = 0; i < tmcc_timeout; i++) {
- bbm_read(hDevice, 0x3026, &data);
- if (data & 0x02)
- break;
-
- msWait(10);
- }
-
- if (i == tmcc_timeout)
- return BBM_NOK;
-
- bbm_read(hDevice, 0x4113, &data);
- bbm_read(hDevice, 0x4114, &data1);
-
- if (((data >> 3) & 0x1) == 0)
- return BBM_NOK;
-
- lay0_mod = ((data & 0x10) >> 2) |
- ((data & 0x20) >> 4) |
- ((data & 0x40) >> 6);
-
- lay0_cr = ((data & 0x80) >> 5) |
- ((data1 & 0x01) << 1) |
- ((data1 & 0x02) >> 1);
-
- if (!((lay0_mod == 1) || (lay0_mod == 2)))
- return BBM_NOK;
-
- if (((0x70 & data) == 0x40) && ((0x1c & data1) == 0x18))
- ts_err_free_timeout = 400;
- else
- ts_err_free_timeout = 650;
-
- for (i = 0; i < ts_err_free_timeout; i++) {
- bbm_read(hDevice, 0x5053, &data);
- if (data & 0x01)
- break;
-
- msWait(10);
- }
-
- if (i == ts_err_free_timeout)
- return BBM_NOK;
-
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/fc8150_bb.h b/drivers/media/isdbt/fc8150/fc8150_bb.h
deleted file mode 100644
index 696c621..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_bb.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_bb.h
-
- Description : API of 1-SEG baseband module
-
-*******************************************************************************/
-
-
-#ifndef __FC8150_BB__
-#define __FC8150_BB__
-
-#include "fci_types.h"
-
-extern int fc8150_reset(HANDLE hDevice);
-extern int fc8150_probe(HANDLE hDevice);
-extern int fc8150_init(HANDLE hDevice);
-extern int fc8150_deinit(HANDLE hDevice);
-extern int fc8150_scan_status(HANDLE hDevice);
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fc8150_hpi.c b/drivers/media/isdbt/fc8150/fc8150_hpi.c
deleted file mode 100644
index 67d8484..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_hpi.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_hpi.c
-
- Description : fc8150 host interface
-
-*******************************************************************************/
-#include "linux/io.h"
-
-#include "fci_types.h"
-#include "fc8150_regs.h"
-#include "fci_oal.h"
-
-#define HPIC_READ 0x01 /* read command */
-#define HPIC_WRITE 0x02 /* write command */
-#define HPIC_AINC 0x04 /* address increment */
-#define HPIC_BMODE 0x00 /* byte mode */
-#define HPIC_WMODE 0x10 /* word mode */
-#define HPIC_LMODE 0x20 /* long mode */
-#define HPIC_ENDIAN 0x00 /* little endian */
-#define HPIC_CLEAR 0x80 /* currently not used */
-
-#define BBM_BASE_ADDR 0
-#define BBM_BASE_OFFSET 0
-
-#define FC8150_ADDR_REG(x) outb(x, (BBM_BASE_ADDR \
- + (BBM_ADDRESS_REG << BBM_BASE_OFFSET)))
-#define FC8150_CMD_REG(x) outb(x, (BBM_BASE_ADDR \
- + (BBM_COMMAND_REG << BBM_BASE_OFFSET)))
-#define FC8150_DATA_REG_OUT(x) outb(x, (BBM_BASE_ADDR \
- + (BBM_DATA_REG << BBM_BASE_OFFSET)))
-#define FC8150_DATA_REG_IN inb(BBM_BASE_ADDR \
- + (BBM_DATA_REG << BBM_BASE_OFFSET))
-
-int fc8150_hpi_init(HANDLE hDevice, u16 param1, u16 param2)
-{
- OAL_CREATE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_hpi_byteread(HANDLE hDevice, u16 addr, u8 *data)
-{
- u8 command = HPIC_READ | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_ADDR_REG(addr & 0xff);
- FC8150_ADDR_REG((addr & 0xff00) >> 8);
- FC8150_CMD_REG(command);
-
- *data = FC8150_DATA_REG_IN;
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_hpi_wordread(HANDLE hDevice, u16 addr, u16 *data)
-{
- u8 command = HPIC_READ | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_ADDR_REG(addr & 0xff);
- FC8150_ADDR_REG((addr & 0xff00) >> 8);
- FC8150_CMD_REG(command);
-
- *data = FC8150_DATA_REG_IN;
- *data |= FC8150_DATA_REG_IN << 8;
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_hpi_longread(HANDLE hDevice, u16 addr, u32 *data)
-{
- u8 command = HPIC_READ | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_ADDR_REG(addr & 0xff);
- FC8150_ADDR_REG((addr & 0xff00) >> 8);
- FC8150_CMD_REG(command);
-
- *data = FC8150_DATA_REG_IN;
- *data |= FC8150_DATA_REG_IN << 8;
- *data |= FC8150_DATA_REG_IN << 16;
- *data |= FC8150_DATA_REG_IN << 24;
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_hpi_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- s32 i;
- u8 command = HPIC_READ | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_ADDR_REG(addr & 0xff);
- FC8150_ADDR_REG((addr & 0xff00) >> 8);
- FC8150_CMD_REG(command);
-
- for (i = 0; i < length; i++)
- data[i] = FC8150_DATA_REG_IN;
-
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_hpi_bytewrite(HANDLE hDevice, u16 addr, u8 data)
-{
- u8 command = HPIC_WRITE | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_ADDR_REG(addr & 0xff);
- FC8150_ADDR_REG((addr & 0xff00) >> 8);
- FC8150_CMD_REG(command);
- FC8150_DATA_REG_OUT(data);
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_hpi_wordwrite(HANDLE hDevice, u16 addr, u16 data)
-{
- u8 command = HPIC_WRITE | HPIC_BMODE | HPIC_ENDIAN | HPIC_AINC;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_ADDR_REG(addr & 0xff);
- FC8150_ADDR_REG((addr & 0xff00) >> 8);
- FC8150_CMD_REG(command);
- FC8150_DATA_REG_OUT(data & 0xff);
- FC8150_DATA_REG_OUT((data & 0xff00) >> 8);
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_hpi_longwrite(HANDLE hDevice, u16 addr, u32 data)
-{
- u8 command = HPIC_WRITE | HPIC_BMODE | HPIC_ENDIAN | HPIC_AINC;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_ADDR_REG(addr & 0xff);
- FC8150_ADDR_REG((addr & 0xff00) >> 8);
- FC8150_CMD_REG(command);
-
- FC8150_DATA_REG_OUT(data & 0xff);
- FC8150_DATA_REG_OUT((data & 0xff00) >> 8);
- FC8150_DATA_REG_OUT((data & 0xff0000) >> 16);
- FC8150_DATA_REG_OUT((data & 0xff000000) >> 24);
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_hpi_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- s32 i;
- u8 command = HPIC_WRITE | HPIC_BMODE | HPIC_ENDIAN | HPIC_AINC;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_ADDR_REG(addr & 0xff);
- FC8150_ADDR_REG((addr & 0xff00) >> 8);
- FC8150_CMD_REG(command);
- for (i = 0; i < length; i++)
- FC8150_DATA_REG_OUT(data[i]);
-
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_hpi_dataread(HANDLE hDevice, u16 addr, u8 *data, u32 length)
-{
- s32 i;
- u8 command = HPIC_READ | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_ADDR_REG(addr & 0xff);
- FC8150_ADDR_REG((addr & 0xff00) >> 8);
- FC8150_CMD_REG(command);
-
- for (i = 0; i < length; i++)
- data[i] = FC8150_DATA_REG_IN;
-
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_hpi_deinit(HANDLE hDevice)
-{
- OAL_DELETE_SEMAPHORE();
-
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/fc8150_hpi.h b/drivers/media/isdbt/fc8150/fc8150_hpi.h
deleted file mode 100644
index b99921a..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_hpi.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_hpi.c
-
- Description : API of 1-SEG baseband module
-
-*******************************************************************************/
-
-#ifndef __FC8150_HPI_H__
-#define __FC8150_HPI_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8150_hpi_init(HANDLE hDevice, u16 param1, u16 param2);
-extern int fc8150_hpi_byteread(HANDLE hDevice, u16 addr, u8 *data);
-extern int fc8150_hpi_wordread(HANDLE hDevice, u16 addr, u16 *data);
-extern int fc8150_hpi_longread(HANDLE hDevice, u16 addr, u32 *data);
-extern int fc8150_hpi_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8150_hpi_bytewrite(HANDLE hDevice, u16 addr, u8 data);
-extern int fc8150_hpi_wordwrite(HANDLE hDevice, u16 addr, u16 data);
-extern int fc8150_hpi_longwrite(HANDLE hDevice, u16 addr, u32 data);
-extern int fc8150_hpi_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8150_hpi_dataread(HANDLE hDevice, u16 addr, u8 *data, u32 length);
-extern int fc8150_hpi_deinit(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fc8150_i2c.c b/drivers/media/isdbt/fc8150/fc8150_i2c.c
deleted file mode 100644
index 5d264c1..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_i2c.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_i2c.c
-
- Description : fc8150 host interface
-
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fc8150_regs.h"
-#include "fci_oal.h"
-#include "fci_hal.h"
-
-#define HPIC_READ 0x01 /* read command */
-#define HPIC_WRITE 0x02 /* write command */
-#define HPIC_AINC 0x04 /* address increment */
-#define HPIC_BMODE 0x00 /* byte mode */
-#define HPIC_WMODE 0x10 /* word mode */
-#define HPIC_LMODE 0x20 /* long mode */
-#define HPIC_ENDIAN 0x00 /* little endian */
-#define HPIC_CLEAR 0x80 /* currently not used */
-
-#define CHIP_ADDR 0x58
-
-static int i2c_bulkread(HANDLE hDevice, u8 chip, u8 addr, u8 *data, u16 length)
-{
- /* Write your own i2c driver code here for read operation. */
-
- return BBM_OK;
-}
-
-static int i2c_bulkwrite(HANDLE hDevice, u8 chip, u8 addr, u8 *data, u16 length)
-{
- /* Write your own i2c driver code here for Write operation. */
-
- return BBM_OK;
-}
-
-static int i2c_dataread(HANDLE hDevice, u8 chip, u8 addr, u8 *data, u32 length)
-{
- return i2c_bulkread(hDevice, chip, addr, data, length);
-}
-
-int fc8150_bypass_read(HANDLE hDevice, u8 chip, u8 addr, u8 *data, u16 length)
-{
- int res;
- u8 bypass_addr = 0x03;
- u8 bypass_data = 1;
- u8 bypass_len = 1;
-
- OAL_OBTAIN_SEMAPHORE();
- res = i2c_bulkwrite(hDevice, CHIP_ADDR, bypass_addr
- , &bypass_data, bypass_len);
- res |= i2c_bulkread(hDevice, chip, addr, data, length);
- OAL_RELEASE_SEMAPHORE();
-
- return res;
-}
-
-int fc8150_bypass_write(HANDLE hDevice, u8 chip, u8 addr, u8 *data, u16 length)
-{
- int res;
- u8 bypass_addr = 0x03;
- u8 bypass_data = 1;
- u8 bypass_len = 1;
-
- OAL_OBTAIN_SEMAPHORE();
- res = i2c_bulkwrite(hDevice, CHIP_ADDR, bypass_addr
- , &bypass_data, bypass_len);
- res |= i2c_bulkwrite(hDevice, chip, addr, data, length);
- OAL_RELEASE_SEMAPHORE();
-
- return res;
-}
-
-int fc8150_i2c_init(HANDLE hDevice, u16 param1, u16 param2)
-{
- OAL_CREATE_SEMAPHORE();
-
- /* for TSIF, you can call here your own TSIF initialization function. */
- /* tsif_initialize(); */
-
- bbm_write(hDevice, BBM_TS_CLK_DIV, 0x04);
- bbm_write(hDevice, BBM_TS_PAUSE, 0x80);
-
- bbm_write(hDevice, BBM_TS_CTRL, 0x02);
- bbm_write(hDevice, BBM_TS_SEL, 0x84);
-
- return BBM_OK;
-}
-
-int fc8150_i2c_byteread(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
- u8 command = HPIC_READ | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- res = i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_ADDRESS_REG
- , (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkread(hDevice, CHIP_ADDR, BBM_DATA_REG, data, 1);
- OAL_RELEASE_SEMAPHORE();
-
- return res;
-}
-
-int fc8150_i2c_wordread(HANDLE hDevice, u16 addr, u16 *data)
-{
- int res;
- u8 command = HPIC_READ | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- res = i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_ADDRESS_REG
- , (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkread(hDevice, CHIP_ADDR, BBM_DATA_REG, (u8 *)data, 2);
- OAL_RELEASE_SEMAPHORE();
-
- return res;
-}
-
-int fc8150_i2c_longread(HANDLE hDevice, u16 addr, u32 *data)
-{
- int res;
- u8 command = HPIC_READ | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- res = i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_ADDRESS_REG
- , (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkread(hDevice, CHIP_ADDR, BBM_DATA_REG, (u8 *)data, 4);
- OAL_RELEASE_SEMAPHORE();
-
- return res;
-}
-
-int fc8150_i2c_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- u8 command = HPIC_READ | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- res = i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_ADDRESS_REG
- , (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkread(hDevice, CHIP_ADDR, BBM_DATA_REG, data, length);
- OAL_RELEASE_SEMAPHORE();
-
- return res;
-}
-
-int fc8150_i2c_bytewrite(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
- u8 command = HPIC_WRITE | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- res = i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_ADDRESS_REG
- , (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_DATA_REG, (u8 *)&data, 1);
- OAL_RELEASE_SEMAPHORE();
-
- return res;
-}
-
-int fc8150_i2c_wordwrite(HANDLE hDevice, u16 addr, u16 data)
-{
- int res;
- u8 command = HPIC_WRITE | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- res = i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_ADDRESS_REG
- , (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_DATA_REG, (u8 *)&data, 2);
- OAL_RELEASE_SEMAPHORE();
-
- return res;
-}
-
-int fc8150_i2c_longwrite(HANDLE hDevice, u16 addr, u32 data)
-{
- int res;
- u8 command = HPIC_WRITE | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- res = i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_ADDRESS_REG
- , (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_DATA_REG, (u8 *)&data, 4);
- OAL_RELEASE_SEMAPHORE();
-
- return res;
-}
-
-int fc8150_i2c_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- u8 command = HPIC_WRITE | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- res = i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_ADDRESS_REG
- , (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_DATA_REG, data, length);
- OAL_RELEASE_SEMAPHORE();
-
- return res;
-}
-
-int fc8150_i2c_dataread(HANDLE hDevice, u16 addr, u8 *data, u32 length)
-{
- int res;
- u8 command = HPIC_READ | HPIC_BMODE | HPIC_ENDIAN;
-
- OAL_OBTAIN_SEMAPHORE();
- res = i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_ADDRESS_REG
- , (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, CHIP_ADDR, BBM_COMMAND_REG, &command, 1);
- res |= i2c_dataread(hDevice, CHIP_ADDR, BBM_DATA_REG, data, length);
- OAL_RELEASE_SEMAPHORE();
-
- return res;
-}
-
-int fc8150_i2c_deinit(HANDLE hDevice)
-{
- bbm_write(hDevice, BBM_TS_SEL, 0x00);
-
- /* tsif_disable(); */
-
- OAL_DELETE_SEMAPHORE();
-
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/fc8150_i2c.h b/drivers/media/isdbt/fc8150/fc8150_i2c.h
deleted file mode 100644
index 64d69de..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_i2c.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_i2c.c
-
- Description : API of 1-SEG baseband module
-
-*******************************************************************************/
-
-#ifndef __FC8150_I2C_H__
-#define __FC8150_I2C_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8150_i2c_init(HANDLE hDevice, u16 param1, u16 param2);
-extern int fc8150_i2c_byteread(HANDLE hDevice, u16 addr, u8 *data);
-extern int fc8150_i2c_wordread(HANDLE hDevice, u16 addr, u16 *data);
-extern int fc8150_i2c_longread(HANDLE hDevice, u16 addr, u32 *data);
-extern int fc8150_i2c_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8150_i2c_bytewrite(HANDLE hDevice, u16 addr, u8 data);
-extern int fc8150_i2c_wordwrite(HANDLE hDevice, u16 addr, u16 data);
-extern int fc8150_i2c_longwrite(HANDLE hDevice, u16 addr, u32 data);
-extern int fc8150_i2c_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8150_i2c_dataread(HANDLE hDevice, u16 addr, u8 *data, u32 length);
-extern int fc8150_i2c_deinit(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fc8150_isr.c b/drivers/media/isdbt/fc8150/fc8150_isr.c
deleted file mode 100644
index 259576b..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_isr.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_isr.c
-
- Description : fc8150 interrupt service routine
-
-*******************************************************************************/
-#include "fci_types.h"
-#include "fci_hal.h"
-#include "fci_oal.h"
-#include "fc8150_regs.h"
-
-int (*pTSCallback)(u32 userdata, u8 *data, int length) = NULL;
-int (*pACCallback)(u32 userdata, u8 *data, int length) = NULL;
-
-u32 gTSUserData;
-u32 gACUserData;
-
-/* static u8 acBuffer[AC_BUF_THR]; */
-static u8 tsBuffer[TS_BUF_SIZE];
-
-static void fc8150_data(HANDLE hDevice, u8 bufIntStatus)
-{
- if (bufIntStatus & 0x01) { /* TS */
- bbm_data(hDevice, BBM_TS_DATA, &tsBuffer[0], TS_BUF_SIZE/2);
-
- if (pTSCallback)
- (*pTSCallback)(gTSUserData
- , &tsBuffer[0], TS_BUF_SIZE/2);
- }
-}
-
-void fc8150_isr(HANDLE hDevice)
-{
- u8 IntStatus = 0;
- u8 bufIntStatus = 0;
-
- bbm_read(hDevice, BBM_INT_STATUS, &IntStatus);
- bbm_write(hDevice, BBM_INT_STATUS, IntStatus);
-
- bbm_read(hDevice, BBM_BUF_STATUS, &bufIntStatus);
- if (bufIntStatus) {
- bbm_write(hDevice, BBM_BUF_STATUS, bufIntStatus);
- fc8150_data(hDevice, bufIntStatus);
- }
-}
diff --git a/drivers/media/isdbt/fc8150/fc8150_isr.h b/drivers/media/isdbt/fc8150/fc8150_isr.h
deleted file mode 100644
index d7f1098..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_isr.h
+++ /dev/null
@@ -1,22 +0,0 @@
-
-#ifndef __FC8150_ISR__
-#define __FC8150_ISR__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "fci_types.h"
-
-extern u32 gACUserData;
-extern u32 gTSUserData;
-
-extern int (*pACCallback)(u32 userdata, u8 *data, int length);
-extern int (*pTSCallback)(u32 userdata, u8 *data, int length);
-
-extern void fc8150_isr(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/drivers/media/isdbt/fc8150/fc8150_ppi.c b/drivers/media/isdbt/fc8150/fc8150_ppi.c
deleted file mode 100644
index 7c9fc07..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_ppi.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_ppi.c
-
- Description : fc8150 host interface
-
-*******************************************************************************/
-#include "linux/io.h"
-
-#include "fci_types.h"
-#include "fc8150_regs.h"
-#include "fci_oal.h"
-
-#define BBM_BASE_ADDR 0x00
-
-#define PPI_BMODE 0x00
-#define PPI_WMODE 0x10
-#define PPI_LMODE 0x20
-#define PPI_READ 0x40
-#define PPI_WRITE 0x00
-#define PPI_AINC 0x80
-
-#define FC8150_PPI_REG_OUT(x) outb(x, BBM_BASE_ADDR)
-#define FC8150_PPI_REG_IN inb(BBM_BASE_ADDR)
-
-int fc8150_ppi_init(HANDLE hDevice, u16 param1, u16 param2)
-{
- OAL_CREATE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_ppi_byteread(HANDLE hDevice, u16 addr, u8 *data)
-{
- u32 length = 1;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_PPI_REG_OUT(addr & 0xff);
- FC8150_PPI_REG_OUT((addr & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(PPI_READ | ((length & 0x0f0000) >> 16));
- FC8150_PPI_REG_OUT((length & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(length & 0xff);
-
- *data = FC8150_PPI_REG_IN;
- OAL_RELEASE_SEMAPHORE();
- return BBM_OK;
-}
-
-int fc8150_ppi_wordread(HANDLE hDevice, u16 addr, u16 *data)
-{
- u32 length = 2;
- u8 command = PPI_AINC | PPI_READ | PPI_BMODE;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_PPI_REG_OUT(addr & 0xff);
- FC8150_PPI_REG_OUT((addr & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(command | ((length & 0x0f0000) >> 16));
- FC8150_PPI_REG_OUT((length & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(length & 0xff);
-
- *data = FC8150_PPI_REG_IN;
- *data |= FC8150_PPI_REG_IN << 8;
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_ppi_longread(HANDLE hDevice, u16 addr, u32 *data)
-{
- u32 length = 4;
- u8 command = PPI_AINC | PPI_READ | PPI_BMODE;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_PPI_REG_OUT(addr & 0xff);
- FC8150_PPI_REG_OUT((addr & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(command | ((length & 0x0f0000) >> 16));
- FC8150_PPI_REG_OUT((length & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(length & 0xff);
-
- *data = FC8150_PPI_REG_IN;
- *data |= FC8150_PPI_REG_IN << 8;
- *data |= FC8150_PPI_REG_IN << 16;
- *data |= FC8150_PPI_REG_IN << 24;
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_ppi_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int i;
- u8 command = PPI_AINC | PPI_READ | PPI_BMODE;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_PPI_REG_OUT(addr & 0xff);
- FC8150_PPI_REG_OUT((addr & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(command | ((length & 0x0f0000) >> 16));
- FC8150_PPI_REG_OUT((length & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(length & 0xff);
-
- for (i = 0; i < length; i++)
- data[i] = FC8150_PPI_REG_IN;
-
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_ppi_bytewrite(HANDLE hDevice, u16 addr, u8 data)
-{
- u32 length = 1;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_PPI_REG_OUT(addr & 0xff);
- FC8150_PPI_REG_OUT((addr & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(PPI_WRITE | ((length & 0x0f0000) >> 16));
- FC8150_PPI_REG_OUT((length & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(length & 0xff);
-
- FC8150_PPI_REG_OUT(data);
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_ppi_wordwrite(HANDLE hDevice, u16 addr, u16 data)
-{
- u32 length = 2;
- u8 command = PPI_AINC | PPI_WRITE | PPI_BMODE;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_PPI_REG_OUT(addr & 0xff);
- FC8150_PPI_REG_OUT((addr & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(command | ((length & 0x0f0000) >> 16));
- FC8150_PPI_REG_OUT((length & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(length & 0xff);
-
- FC8150_PPI_REG_OUT(data & 0xff);
- FC8150_PPI_REG_OUT((data & 0xff00) >> 8);
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_ppi_longwrite(HANDLE hDevice, u16 addr, u32 data)
-{
- u32 length = 4;
- u8 command = PPI_AINC | PPI_WRITE | PPI_BMODE;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_PPI_REG_OUT(addr & 0xff);
- FC8150_PPI_REG_OUT((addr & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(command | ((length & 0x0f0000) >> 16));
- FC8150_PPI_REG_OUT((length & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(length & 0xff);
-
- FC8150_PPI_REG_OUT(data & 0x000000ff);
- FC8150_PPI_REG_OUT((data & 0x0000ff00) >> 8);
- FC8150_PPI_REG_OUT((data & 0x00ff0000) >> 16);
- FC8150_PPI_REG_OUT((data & 0xff000000) >> 24);
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_ppi_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int i;
- u8 command = PPI_AINC | PPI_WRITE | PPI_BMODE;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_PPI_REG_OUT(addr & 0xff);
- FC8150_PPI_REG_OUT((addr & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(command | ((length & 0x0f0000) >> 16));
- FC8150_PPI_REG_OUT((length & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(length & 0xff);
-
- for (i = 0; i < length; i++)
- FC8150_PPI_REG_OUT(data[i]);
-
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_ppi_dataread(HANDLE hDevice, u16 addr, u8 *data, u32 length)
-{
- int i;
- u8 command = PPI_READ | PPI_BMODE;
-
- OAL_OBTAIN_SEMAPHORE();
- FC8150_PPI_REG_OUT(addr & 0xff);
- FC8150_PPI_REG_OUT((addr & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(command | ((length & 0x0f0000) >> 16));
- FC8150_PPI_REG_OUT((length & 0xff00) >> 8);
- FC8150_PPI_REG_OUT(length & 0xff);
-
- for (i = 0; i < length; i++)
- data[i] = FC8150_PPI_REG_IN;
-
- OAL_RELEASE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_ppi_deinit(HANDLE hDevice)
-{
- OAL_DELETE_SEMAPHORE();
-
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/fc8150_ppi.h b/drivers/media/isdbt/fc8150/fc8150_ppi.h
deleted file mode 100644
index b7d5322..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_ppi.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_ppi.c
-
- Description : API of 1-SEG baseband module
-
-*******************************************************************************/
-
-#ifndef __FC8150_PPI_H__
-#define __FC8150_PPI_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8150_ppi_init(HANDLE hDevice, u16 param1, u16 param2);
-extern int fc8150_ppi_byteread(HANDLE hDevice, u16 addr, u8 *data);
-extern int fc8150_ppi_wordread(HANDLE hDevice, u16 addr, u16 *data);
-extern int fc8150_ppi_longread(HANDLE hDevice, u16 addr, u32 *data);
-extern int fc8150_ppi_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8150_ppi_bytewrite(HANDLE hDevice, u16 addr, u8 data);
-extern int fc8150_ppi_wordwrite(HANDLE hDevice, u16 addr, u16 data);
-extern int fc8150_ppi_longwrite(HANDLE hDevice, u16 addr, u32 data);
-extern int fc8150_ppi_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8150_ppi_dataread(HANDLE hDevice, u16 addr, u8 *data, u32 length);
-extern int fc8150_ppi_deinit(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fc8150_regs.h b/drivers/media/isdbt/fc8150/fc8150_regs.h
deleted file mode 100644
index 235e703..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_regs.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_regs.h
-
- Description : Baseband register header
-
-*******************************************************************************/
-
-#ifndef __FC8150_REGS_H__
-#define __FC8150_REGS_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* #define BBM_XTAL_FREQ 16000 */
-/* #define BBM_XTAL_FREQ 16384 */
-/* #define BBM_XTAL_FREQ 18000 */
-/* #define BBM_XTAL_FREQ 19200 */
-#define BBM_XTAL_FREQ 24000
-/* #define BBM_XTAL_FREQ 26000 */
-/* #define BBM_XTAL_FREQ 27000 */
-/* #define BBM_XTAL_FREQ 27120 */
-/* #define BBM_XTAL_FREQ 24576 */
-/* #define BBM_XTAL_FREQ 32000 */
-/* #define BBM_XTAL_FREQ 37400 */
-/* #define BBM_XTAL_FREQ 38400 */
-
-#define BBM_BAND_WIDTH 6 /* BW = 6M */
-/* #define BBM_BAND_WIDTH 7 */ /* BW = 7M */
-/* #define BBM_BAND_WIDTH 8 */ /* BW = 8M */
-
- /* Host register */
-#define BBM_ADDRESS_REG 0x00
-#define BBM_COMMAND_REG 0x01
-#define BBM_DATA_REG 0x02
-
- /* Common */
-#define BBM_AP2APB_LT 0x0000
-#define BBM_SW_RESET 0x0001
-#define BBM_INT_STATUS 0x0002
-#define BBM_INT_MASK 0x0003
-#define BBM_INT_STS_EN 0x0006
-#define BBM_AC_DATA 0x0007
-#define BBM_TS_DATA 0x0008
-#define BBM_TS_CLK_DIV 0x0010
-#define BBM_TS_CTRL 0x0011
-#define BBM_MD_MISO 0x0012
-#define BBM_TS_SEL 0x0013
-#define BBM_TS_PAUSE 0x0014
-#define BBM_RF_DEVID 0x0015
-#define BBM_INT_AUTO_CLEAR 0x0017
-#define BBM_INT_PERIOD 0x0018
-#define BBM_NON_AUTO_INT_PERIOD 0x0019
-#define BBM_STATUS_AUTO_CLEAR_EN 0x001a
-#define BBM_INT_POLAR_SEL 0x0020
-#define BBM_PATTERN_MODE 0x0021
-#define BBM_CHIP_ID_L 0x0026
-#define BBM_CHIP_VERSION 0x0028
-#define BBM_TS_PAT_L 0x00a0
-#define BBM_AC_PAT_L 0x00a2
-#define BBM_VERIFY_TEST 0x00a4
-
- /* I2C */
-#define BBM_I2C_PR_L 0x0030
-#define BBM_I2C_PR_H 0x0031
-#define BBM_I2C_CTR 0x0032
-#define BBM_I2C_RXR 0x0033
-#define BBM_I2C_SR 0x0034
-#define BBM_I2C_TXR 0x0035
-#define BBM_I2C_CR 0x0036
-
- /* DM Control */
-#define BBM_DM_AUTO_ENABLE 0x0040
-#define BBM_DM_READ_SIZE 0x0041
-#define BBM_DM_START_ADDR 0x0042
-#define BBM_DM_TIMER_GAP 0x0043
-#define BBM_DM_BUSY 0x0044
-
- /* RSSI */
-#define BBM_RSSI 0x0100
-
- /* CE */
-#define BBM_WSCN_MSQ 0x4063
-
- /* FEC */
-#define BBM_REQ_BER 0x5000
-#define BBM_MAIN_BER_RXD_RSPS 0x5020
-#define BBM_MAIN_BER_ERR_RSPS 0x5022
-#define BBM_MAIN_BER_ERR_BITS 0x5024
-#define BBM_BER_RXD_RSPS 0x5030
-#define BBM_BER_ERR_RSPS 0x5032
-#define BBM_BER_ERR_BITS 0x5034
-#define BBM_DMP_BER_RXD_BITS 0x5040
-#define BBM_DMP_BER_ERR_BITS 0x5044
-
- /* Buffer */
-#define BBM_BUF_STATUS 0x8000
-#define BBM_BUF_OVERRUN 0x8001
-#define BBM_BUF_ENABLE 0x8002
-#define BBM_BUF_INT 0x8003
-#define BBM_RS_FAIL_TX 0x8004
-
-#define BBM_SYNC_RELATED_INT_STATUS 0x8006
-#define BBM_SYNC_RELATED_INT_ENABLE 0x8007
-#define BBM_HANGING_TS 0x800A
-#define BBM_HANGING_AC 0x800B
-#define BBM_HANGING_ENABLE 0x800C
-
-#define BBM_BUF_TS_START 0x8010
-#define BBM_BUF_AC_START 0x8012
-#define BBM_BUF_TS_END 0x8020
-#define BBM_BUF_AC_END 0x8022
-#define BBM_BUF_TS_THR 0x8030
-#define BBM_BUF_AC_THR 0x8032
-
- /* DM */
-#define BBM_DM_DATA 0xf001
-
- /* Buffer Configuration */
-#define TS_BUF_SIZE (188*32*2)
-#define TS_BUF_START (0)
-#define TS_BUF_END (TS_BUF_START+TS_BUF_SIZE-1)
-#define TS_BUF_THR ((TS_BUF_SIZE>>1)-1)
-
-#define AC_BUF_SIZE (204*2)
-#define AC_BUF_START (TS_BUF_START+TS_BUF_SIZE)
-#define AC_BUF_END (AC_BUF_START+AC_BUF_SIZE-1)
-#define AC_BUF_THR ((AC_BUF_SIZE>>1)-1)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fc8150_spi.c b/drivers/media/isdbt/fc8150/fc8150_spi.c
deleted file mode 100644
index 9903fc8..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_spi.c
+++ /dev/null
@@ -1,293 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_spi.c
-
- Description : fc8150 host interface
-
-*******************************************************************************/
-#include <linux/spi/spi.h>
-#include <linux/slab.h>
-
-#include "fci_types.h"
-#include "fc8150_regs.h"
-#include "fci_oal.h"
-
-#define SPI_BMODE 0x00
-#define SPI_WMODE 0x10
-#define SPI_LMODE 0x20
-#define SPI_READ 0x40
-#define SPI_WRITE 0x00
-#define SPI_AINC 0x80
-#define CHIPID (0 << 3)
-
-#define DRIVER_NAME "fc8150_spi"
-
-struct spi_device *fc8150_spi;
-
-static u8 tx_data[10];
-static u8 rdata_buf[8192];
-static u8 wdata_buf[8192];
-
-static DEFINE_MUTEX(lock);
-
-static int __devinit fc8150_spi_probe(struct spi_device *spi)
-{
- s32 ret;
-
- PRINTF(0, "fc8150_spi_probe\n");
-
- spi->max_speed_hz = 24000000;
- spi->bits_per_word = 8;
- spi->mode = SPI_MODE_0;
-
- ret = spi_setup(spi);
-
- if (ret < 0)
- return ret;
-
- fc8150_spi = spi;
-
- return ret;
-}
-
-static int fc8150_spi_remove(struct spi_device *spi)
-{
-
- return 0;
-}
-
-static struct spi_driver fc8150_spi_driver = {
- .driver = {
- .name = DRIVER_NAME,
- .owner = THIS_MODULE,
- },
- .probe = fc8150_spi_probe,
- .remove = __devexit_p(fc8150_spi_remove),
-};
-
-static int fc8150_spi_write_then_read(struct spi_device *spi
- , u8 *txbuf, u16 tx_length, u8 *rxbuf, u16 rx_length)
-{
- int res = 0;
-
- struct spi_message message;
- struct spi_transfer x;
-
- spi_message_init(&message);
- memset(&x, 0, sizeof x);
-
- spi_message_add_tail(&x, &message);
-
- memcpy(&wdata_buf[0], txbuf, tx_length);
-
- x.tx_buf = &wdata_buf[0];
- x.rx_buf = &rdata_buf[0];
- x.len = tx_length + rx_length;
- x.cs_change = 0;
- x.bits_per_word = 8;
- res = spi_sync(spi, &message);
-
- memcpy(rxbuf, x.rx_buf + tx_length, rx_length);
-
- return res;
-}
-
-static int spi_bulkread(HANDLE hDevice, u16 addr
- , u8 command, u8 *data, u16 length)
-{
- int res;
-
- tx_data[0] = addr & 0xff;
- tx_data[1] = (addr >> 8) & 0xff;
- tx_data[2] = (command & 0xf0) | CHIPID | ((length >> 16) & 0x07);
- tx_data[3] = (length >> 8) & 0xff;
- tx_data[4] = length & 0xff;
-
- res = fc8150_spi_write_then_read(fc8150_spi, &tx_data[0]
- , 5, data, length);
-
- if (res) {
- PRINTF(0, "fc8150_spi_bulkread fail : %d\n", res);
- return BBM_NOK;
- }
-
- return BBM_OK;
-}
-
-static int spi_bulkwrite(HANDLE hDevice, u16 addr
- , u8 command, u8 *data, u16 length)
-{
- int i;
- int res;
-
- tx_data[0] = addr & 0xff;
- tx_data[1] = (addr >> 8) & 0xff;
- tx_data[2] = (command & 0xf0) | CHIPID | ((length >> 16) & 0x07);
- tx_data[3] = (length >> 8) & 0xff;
- tx_data[4] = length & 0xff;
-
- for (i = 0; i < length; i++)
- tx_data[5+i] = data[i];
-
- res = fc8150_spi_write_then_read(fc8150_spi
- , &tx_data[0], length+5, NULL, 0);
-
- if (res) {
- PRINTF(0, "fc8150_spi_bulkwrite fail : %d\n", res);
- return BBM_NOK;
- }
-
- return BBM_OK;
-}
-
-static int spi_dataread(HANDLE hDevice, u16 addr
- , u8 command, u8 *data, u32 length)
-{
- int res;
-
- tx_data[0] = addr & 0xff;
- tx_data[1] = (addr >> 8) & 0xff;
- tx_data[2] = (command & 0xf0) | CHIPID | ((length >> 16) & 0x07);
- tx_data[3] = (length >> 8) & 0xff;
- tx_data[4] = length & 0xff;
-
- res = fc8150_spi_write_then_read(fc8150_spi
- , &tx_data[0], 5, data, length);
-
- if (res) {
- PRINTF(0, "fc8150_spi_dataread fail : %d\n", res);
- return BBM_NOK;
- }
-
- return BBM_OK;
-}
-
-int fc8150_spi_init(HANDLE hDevice, u16 param1, u16 param2)
-{
- int res = 0;
-
- PRINTF(0, "fc8150_spi_init : %d\n", res);
-
- res = spi_register_driver(&fc8150_spi_driver);
-
- if (res) {
- PRINTF(0, "fc8150_spi register fail : %d\n", res);
- return BBM_NOK;
- }
-
- return res;
-}
-
-int fc8150_spi_byteread(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
- u8 command = SPI_READ;
-
- mutex_lock(&lock);
- res = spi_bulkread(hDevice, addr, command, data, 1);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8150_spi_wordread(HANDLE hDevice, u16 addr, u16 *data)
-{
- int res;
- u8 command = SPI_READ | SPI_AINC;
-
- mutex_lock(&lock);
- res = spi_bulkread(hDevice, addr, command, (u8 *)data, 2);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8150_spi_longread(HANDLE hDevice, u16 addr, u32 *data)
-{
- int res;
- u8 command = SPI_READ | SPI_AINC;
-
- mutex_lock(&lock);
- res = spi_bulkread(hDevice, addr, command, (u8 *)data, 4);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8150_spi_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- u8 command = SPI_READ | SPI_AINC;
-
- mutex_lock(&lock);
- res = spi_bulkread(hDevice, addr, command, data, length);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8150_spi_bytewrite(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
- u8 command = SPI_WRITE;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, addr, command, (u8 *)&data, 1);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8150_spi_wordwrite(HANDLE hDevice, u16 addr, u16 data)
-{
- int res;
- u8 command = SPI_WRITE | SPI_AINC;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, addr, command, (u8 *)&data, 2);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8150_spi_longwrite(HANDLE hDevice, u16 addr, u32 data)
-{
- int res;
- u8 command = SPI_WRITE | SPI_AINC;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, addr, command, (u8 *)&data, 4);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8150_spi_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- u8 command = SPI_WRITE | SPI_AINC;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, addr, command, data, length);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8150_spi_dataread(HANDLE hDevice, u16 addr, u8 *data, u32 length)
-{
- int res;
- u8 command = SPI_READ;
-
- mutex_lock(&lock);
- res = spi_dataread(hDevice, addr, command, data, length);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8150_spi_deinit(HANDLE hDevice)
-{
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/fc8150_spi.h b/drivers/media/isdbt/fc8150/fc8150_spi.h
deleted file mode 100644
index 6fd96d1..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_spi.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_spi.c
-
- Description : API of 1-SEG baseband module
-
-*******************************************************************************/
-
-#ifndef __FC8150_SPI__
-#define __FC8150_SPI__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8150_spi_init(HANDLE hDevice, u16 param1, u16 param2);
-extern int fc8150_spi_byteread(HANDLE hDevice, u16 addr, u8 *data);
-extern int fc8150_spi_wordread(HANDLE hDevice, u16 addr, u16 *data);
-extern int fc8150_spi_longread(HANDLE hDevice, u16 addr, u32 *data);
-extern int fc8150_spi_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8150_spi_bytewrite(HANDLE hDevice, u16 addr, u8 data);
-extern int fc8150_spi_wordwrite(HANDLE hDevice, u16 addr, u16 data);
-extern int fc8150_spi_longwrite(HANDLE hDevice, u16 addr, u32 data);
-extern int fc8150_spi_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8150_spi_dataread(HANDLE hDevice, u16 addr, u8 *data, u32 length);
-extern int fc8150_spi_deinit(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fc8150_spib.c b/drivers/media/isdbt/fc8150/fc8150_spib.c
deleted file mode 100644
index b2feccb..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_spib.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_spib.c
-
- Description : fc8150 host interface
-
-*******************************************************************************/
-#include "fci_types.h"
-#include "fc8150_regs.h"
-#include "fci_oal.h"
-
-#define SPI_BMODE 0x00
-#define SPI_WMODE 0x10
-#define SPI_LMODE 0x20
-#define SPI_READ 0x40
-#define SPI_WRITE 0x00
-#define SPI_AINC 0x80
-#define CHIPID (0 << 3)
-
-static int spi_bulkread(HANDLE hDevice, u16 addr
-, u8 command, u8 *data, u16 length)
-{
- /*unsigned char *cmd;
-
- cmd = g_SpiCmd;
-
- cmd[0] = addr & 0xff;
- cmd[1] = (addr >> 8) & 0xff;
- cmd[2] = (command & 0xf0) | CHIPID | ((length >> 16) & 0x07);
- cmd[3] = (length >> 8) & 0xff;
- cmd[4] = length & 0xff;
-
- spi_cmd.pCmd = cmd;
- spi_cmd.cmdSize = 5;
- spi_cmd.pData = g_SpiData;
- spi_cmd.dataSize = length;
-
- // Send Command and data through the SPI
- if (SPID_SendCommand_ByteRead(&spid, &spi_cmd))
- return BBM_NOK;
-
- memcpy(data, g_SpiData, length);*/
-
- return BBM_OK;
-}
-
-static int spi_bulkwrite(HANDLE hDevice, u16 addr
- , u8 command, u8 *data, u16 length)
-{
- /*unsigned char *cmd;
-
- cmd = g_SpiCmd;
-
- cmd[0] = addr & 0xff;
- cmd[1] = (addr >> 8) & 0xff;
- cmd[2] = (command & 0xf0) | CHIPID | ((length >> 16) & 0x07);
- cmd[3] = (length >> 8) & 0xff;
- cmd[4] = length & 0xff;
-
- spi_cmd.pCmd = cmd;
- spi_cmd.cmdSize = 5;
- spi_cmd.pData = g_SpiData;
- memcpy(g_SpiData, data, length);
- spi_cmd.dataSize = length;
-
- // Send Command and data through the SPI
- if (SPID_SendCommand_ByteWrite(&spid, &spi_cmd))
- return BBM_NOK;*/
-
- return BBM_OK;
-}
-
-static int spi_dataread(HANDLE hDevice, u16 addr
- , u8 command, u8 *data, u32 length)
-{
- /*unsigned char *cmd;
-
- cmd = g_SpiCmd;
-
- cmd[0] = addr & 0xff;
- cmd[1] = (addr >> 8) & 0xff;
- cmd[2] = (command & 0xf0) | CHIPID | ((length >> 16) & 0x07);
- cmd[3] = (length >> 8) & 0xff;
- cmd[4] = length & 0xff;
-
- spi_cmd.pCmd = cmd;
- spi_cmd.cmdSize = 5;
- spi_cmd.pData = data;
- spi_cmd.dataSize = length;
-
- // Send Command and data through the SPI
- if (SPID_SendCommand_ByteRead(&spid, &spi_cmd))
- return BBM_NOK;*/
-
- return BBM_OK;
-}
-
-int fc8150_spib_init(HANDLE hDevice, u16 param1, u16 param2)
-{
- OAL_CREATE_SEMAPHORE();
-
- return BBM_OK;
-}
-
-int fc8150_spib_byteread(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
- u8 command = SPI_READ;
-
- OAL_OBTAIN_SEMAPHORE();
- res = spi_bulkread(hDevice, addr, command, data, 1);
- OAL_RELEASE_SEMAPHORE();
- return res;
-}
-
-int fc8150_spib_wordread(HANDLE hDevice, u16 addr, u16 *data)
-{
- int res;
- u8 command = SPI_READ | SPI_AINC;
-
- OAL_OBTAIN_SEMAPHORE();
- res = spi_bulkread(hDevice, addr, command, (u8 *)data, 2);
- OAL_RELEASE_SEMAPHORE();
- return res;
-}
-
-int fc8150_spib_longread(HANDLE hDevice, u16 addr, u32 *data)
-{
- int res;
- u8 command = SPI_READ | SPI_AINC;
-
- OAL_OBTAIN_SEMAPHORE();
- res = spi_bulkread(hDevice, addr, command, (u8 *)data, 4);
- OAL_RELEASE_SEMAPHORE();
- return res;
-}
-
-int fc8150_spib_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- u8 command = SPI_READ | SPI_AINC;
-
- OAL_OBTAIN_SEMAPHORE();
- res = spi_bulkread(hDevice, addr, command, data, length);
- OAL_RELEASE_SEMAPHORE();
- return res;
-}
-
-int fc8150_spib_bytewrite(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
- u8 command = SPI_WRITE;
-
- OAL_OBTAIN_SEMAPHORE();
- res = spi_bulkwrite(hDevice, addr, command, (u8 *)&data, 1);
- OAL_RELEASE_SEMAPHORE();
- return res;
-}
-
-int fc8150_spib_wordwrite(HANDLE hDevice, u16 addr, u32 data)
-{
- int res;
- u8 command = SPI_WRITE | SPI_AINC;
-
- OAL_OBTAIN_SEMAPHORE();
- res = spi_bulkwrite(hDevice, addr, command, (u8 *)&data, 2);
- OAL_RELEASE_SEMAPHORE();
- return res;
-}
-
-int fc8150_spib_longwrite(HANDLE hDevice, u16 addr, u32 data)
-{
- int res;
- u8 command = SPI_WRITE | SPI_AINC;
-
- OAL_OBTAIN_SEMAPHORE();
- res = spi_bulkwrite(hDevice, addr, command, (u8 *)&data, 4);
- OAL_RELEASE_SEMAPHORE();
- return res;
-}
-
-int fc8150_spib_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- u8 command = SPI_WRITE | SPI_AINC;
-
- OAL_OBTAIN_SEMAPHORE();
- res = spi_bulkwrite(hDevice, addr, command, data, length);
- OAL_RELEASE_SEMAPHORE();
- return res;
-}
-
-int fc8150_spib_dataread(HANDLE hDevice, u16 addr, u8 *data, u32 length)
-{
- int res;
- u8 command = SPI_READ;
-
- OAL_OBTAIN_SEMAPHORE();
- res = spi_dataread(hDevice, addr, command, data, length);
- OAL_RELEASE_SEMAPHORE();
- return res;
-}
-
-int fc8150_spib_deinit(HANDLE hDevice)
-{
- OAL_DELETE_SEMAPHORE();
-
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/fc8150_spib.h b/drivers/media/isdbt/fc8150/fc8150_spib.h
deleted file mode 100644
index 86b28eb..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_spib.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_spib.c
-
- Description : API of 1-SEG baseband module
-
-*******************************************************************************/
-
-#ifndef __FC8150_SPIB__
-#define __FC8150_SPIB__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8150_spib_init(HANDLE hDevice, u16 param1, u16 param2);
-extern int fc8150_spib_byteread(HANDLE hDevice, u16 addr, u8 *data);
-extern int fc8150_spib_wordread(HANDLE hDevice, u16 addr, u16 *data);
-extern int fc8150_spib_longread(HANDLE hDevice, u16 addr, u32 *data);
-extern int fc8150_spib_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8150_spib_bytewrite(HANDLE hDevice, u16 addr, u8 data);
-extern int fc8150_spib_wordwrite(HANDLE hDevice, u16 addr, u16 data);
-extern int fc8150_spib_longwrite(HANDLE hDevice, u16 addr, u32 data);
-extern int fc8150_spib_bulkwrite(HANDLE hDevice, u16 addr
- , u8 *data, u16 length);
-extern int fc8150_spib_dataread(HANDLE hDevice, u16 addr, u8 *data, u32 length);
-extern int fc8150_spib_deinit(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fc8150_tun.c b/drivers/media/isdbt/fc8150/fc8150_tun.c
deleted file mode 100644
index 644bf42..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_tun.c
+++ /dev/null
@@ -1,393 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_tun.c (BGA & QFN)
-
- Description : fc8150 tuner driver
-
- History :
- ----------------------------------------------------------------------
- 2012/01/20 initial 0.1 version
- 2012/01/25 initial 0.3 version
- 2012/01/27 initial 0.5 version
- 2012/01/31 initial 1.0 version
- 2012/01/31 initial 1.1 version
- 2012/02/06 initial 1.2 version
- 2012/02/09 initial 1.3 Version
- 2012/02/15 initial 1.4 Version
- 2012/02/15 initial 2.0 Version
- 2012/02/24 initial 2.01 Version
- 2012/03/30 initial 3.0 Version
- 2012/06/07 pre SLR Version
- 2012/06/11 pre SLR Version
- 2012/06/15
- 2012/06/17 SLR 0.3 version
- 2012/06/19 SLR 0.4 version
- 2012/06/20
- 2012/07/04
- 2012/07/09
- 2012/07/10
- 2012/07/15
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fci_tun.h"
-#include "fc8150_regs.h"
-#include "fci_hal.h"
-
-#define FC8150_FREQ_XTAL BBM_XTAL_FREQ /* 32MHZ */
-
-static int fc8150_write(HANDLE hDevice, u8 addr, u8 data)
-{
- int res;
- u8 tmp;
-
- tmp = data;
- res = tuner_i2c_write(hDevice, addr, 1, &tmp, 1);
-
- return res;
-}
-
-static int fc8150_read(HANDLE hDevice, u8 addr, u8 *data)
-{
- int res;
-
- res = tuner_i2c_read(hDevice, addr, 1, data, 1);
-
- return res;
-}
-
-static int fc8150_bb_read(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
-
- res = bbm_read(hDevice, addr, data);
-
- return res;
-}
-
-#if 0
-static int fc8150_bb_write(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
-
- res = bbm_write(hDevice, addr, data);
-
- return res;
-}
-#endif
-
-static int fc8150_set_filter(HANDLE hDevice)
-{
- int i;
- u8 cal_mon = 0;
-
-#if (FC8150_FREQ_XTAL == 16000)
- fc8150_write(hDevice, 0x3B, 0x01);
- fc8150_write(hDevice, 0x3D, 0x20);
- fc8150_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 16384)
- fc8150_write(hDevice, 0x3B, 0x01);
- fc8150_write(hDevice, 0x3D, 0x21);
- fc8150_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 18000)
- fc8150_write(hDevice, 0x3B, 0x01);
- fc8150_write(hDevice, 0x3D, 0x24);
- fc8150_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 19200)
- fc8150_write(hDevice, 0x3B, 0x01);
- fc8150_write(hDevice, 0x3D, 0x26);
- fc8150_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 24000)
- fc8150_write(hDevice, 0x3B, 0x01);
- fc8150_write(hDevice, 0x3D, 0x30);
- fc8150_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 24576)
- fc8150_write(hDevice, 0x3B, 0x01);
- fc8150_write(hDevice, 0x3D, 0x31);
- fc8150_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 26000)
- fc8150_write(hDevice, 0x3B, 0x01);
- fc8150_write(hDevice, 0x3D, 0x34);
- fc8150_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 27000)
- fc8150_write(hDevice, 0x3B, 0x01);
- fc8150_write(hDevice, 0x3D, 0x36);
- fc8150_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 27120)
- fc8150_write(hDevice, 0x3B, 0x01);
- fc8150_write(hDevice, 0x3D, 0x36);
- fc8150_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 32000)
- fc8150_write(hDevice, 0x3B, 0x01);
- fc8150_write(hDevice, 0x3D, 0x40);
- fc8150_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 37400)
- fc8150_write(hDevice, 0x3B, 0x01);
- fc8150_write(hDevice, 0x3D, 0x4B);
- fc8150_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 38400)
- fc8150_write(hDevice, 0x3B, 0x01);
- fc8150_write(hDevice, 0x3D, 0x4D);
- fc8150_write(hDevice, 0x3B, 0x00);
-#else
- return BBM_NOK;
-#endif
-
- for (i = 0; i < 10; i++) {
- msWait(5);
- fc8150_read(hDevice, 0x33, &cal_mon);
- if ((cal_mon & 0xC0) == 0xC0)
- break;
- fc8150_write(hDevice, 0x32, 0x01);
- fc8150_write(hDevice, 0x32, 0x09);
- }
-
- fc8150_write(hDevice, 0x32, 0x01);
-
- return BBM_OK;
-}
-
-int fc8150_tuner_init(HANDLE hDevice, u32 band)
-{
- int i;
- int n_RFAGC_PD1_AVG, n_RFAGC_PD2_AVG;
- u8 RFPD_REF;
- u8 RFAGC_PD2[6], RFAGC_PD2_AVG, RFAGC_PD2_MAX, RFAGC_PD2_MIN;
- u8 RFAGC_PD1[6], RFAGC_PD1_AVG, RFAGC_PD1_MAX, RFAGC_PD1_MIN;
-
- int res = BBM_OK;
-
- PRINTF(hDevice, "fc8150_init\n");
-
- fc8150_write(hDevice, 0x00, 0x00);
- fc8150_write(hDevice, 0x02, 0x81);
-
- fc8150_write(hDevice, 0x15, 0x02);
- fc8150_write(hDevice, 0x20, 0x33);
- fc8150_write(hDevice, 0x28, 0x62);
- fc8150_write(hDevice, 0x35, 0xAA);
- fc8150_write(hDevice, 0x38, 0x28);
-
- fc8150_write(hDevice, 0x3B, 0x01);
-
- fc8150_set_filter(hDevice);
-
- fc8150_write(hDevice, 0x3B, 0x00);
-
- fc8150_write(hDevice, 0x56, 0x01);
- fc8150_write(hDevice, 0x57, 0x86);
- fc8150_write(hDevice, 0x58, 0xA7);
- fc8150_write(hDevice, 0x59, 0x4D);
-
- fc8150_write(hDevice, 0x80, 0x17);
- fc8150_write(hDevice, 0xAB, 0x48);
-
- fc8150_write(hDevice, 0xA0, 0xC0);
- fc8150_write(hDevice, 0xD0, 0x00);
-
- fc8150_write(hDevice, 0xA5, 0x65);
-
- RFAGC_PD1[0] = 0;
- RFAGC_PD1[1] = 0;
- RFAGC_PD1[2] = 0;
- RFAGC_PD1[3] = 0;
- RFAGC_PD1[4] = 0;
- RFAGC_PD1[5] = 0;
- RFAGC_PD1_MAX = 0;
- RFAGC_PD1_MIN = 255;
-
- for (i = 0; i < 6 ; i++) {
- fc8150_read(hDevice, 0xD8 , &RFAGC_PD1[i]);
-
- if (RFAGC_PD1[i] >= RFAGC_PD1_MAX)
- RFAGC_PD1_MAX = RFAGC_PD1[i];
- if (RFAGC_PD1[i] <= RFAGC_PD1_MIN)
- RFAGC_PD1_MIN = RFAGC_PD1[i];
- }
- n_RFAGC_PD1_AVG = (RFAGC_PD1[0] + RFAGC_PD1[1] + RFAGC_PD1[2]
- + RFAGC_PD1[3] + RFAGC_PD1[4] + RFAGC_PD1[5]
- - RFAGC_PD1_MAX - RFAGC_PD1_MIN) / 4;
- RFAGC_PD1_AVG = (unsigned char) n_RFAGC_PD1_AVG;
-
- fc8150_write(hDevice, 0x7F , RFAGC_PD1_AVG);
-
- RFAGC_PD2[0] = 0;
- RFAGC_PD2[1] = 0;
- RFAGC_PD2[2] = 0;
- RFAGC_PD2[3] = 0;
- RFAGC_PD2[4] = 0;
- RFAGC_PD2[5] = 0;
-
- RFAGC_PD2_MAX = 0;
- RFAGC_PD2_MIN = 255;
-
- for (i = 0; i < 6; i++) {
- fc8150_read(hDevice, 0xD6, &RFAGC_PD2[i]);
-
- if (RFAGC_PD2[i] >= RFAGC_PD2_MAX)
- RFAGC_PD2_MAX = RFAGC_PD2[i];
- if (RFAGC_PD2[i] <= RFAGC_PD2_MIN)
- RFAGC_PD2_MIN = RFAGC_PD2[i];
- }
- n_RFAGC_PD2_AVG = (RFAGC_PD2[0] + RFAGC_PD2[1] + RFAGC_PD2[2]
- + RFAGC_PD2[3] + RFAGC_PD2[4] + RFAGC_PD2[5]
- - RFAGC_PD2_MAX - RFAGC_PD2_MIN) / 4;
- RFAGC_PD2_AVG = (unsigned char) n_RFAGC_PD2_AVG;
-
- fc8150_write(hDevice, 0x7E , RFAGC_PD2_AVG);
-
- res = fc8150_read(hDevice, 0xD6, &RFPD_REF);
-
- if (0x86 <= RFPD_REF)
- fc8150_write(hDevice, 0x7B, 0x8F);
- else if (RFPD_REF < 0x86)
- fc8150_write(hDevice, 0x7B, 0x88);
-
- fc8150_write(hDevice, 0x79, 0x32);
- fc8150_write(hDevice, 0x7A, 0x2C);
- fc8150_write(hDevice, 0x7C, 0x10);
- fc8150_write(hDevice, 0x7D, 0x0C);
- fc8150_write(hDevice, 0x81, 0x0A);
- fc8150_write(hDevice, 0x84, 0x00);
-
- fc8150_write(hDevice, 0x02, 0x81);
-
- return BBM_OK;
-}
-
-
-int fc8150_set_freq(HANDLE hDevice, enum band_type band, u32 rf_kHz)
-{
- unsigned long f_diff, f_diff_shifted, n_val, k_val;
- unsigned long f_vco, f_comp;
- unsigned char r_val, data_0x56;
- unsigned char pre_shift_bits = 4;
-
- f_vco = (rf_kHz) << 2;
- if (f_vco < FC8150_FREQ_XTAL*40)
- r_val = 2;
- else
- r_val = 1;
-
- f_comp = FC8150_FREQ_XTAL / r_val;
-
- n_val = f_vco / f_comp;
- f_diff = f_vco - f_comp * n_val;
-
- f_diff_shifted = f_diff << (20 - pre_shift_bits);
-
- k_val = (f_diff_shifted) / (f_comp >> pre_shift_bits);
- k_val = (k_val | 1);
-
- if (470000 < rf_kHz && rf_kHz <= 473143) {
- fc8150_write(hDevice, 0x1E, 0x04);
- fc8150_write(hDevice, 0x1F, 0x36);
- fc8150_write(hDevice, 0x14, 0x84);
- } else if (473143 < rf_kHz && rf_kHz <= 485143) {
- fc8150_write(hDevice, 0x1E, 0x03);
- fc8150_write(hDevice, 0x1F, 0x3E);
- fc8150_write(hDevice, 0x14, 0x84);
- } else if (485143 < rf_kHz && rf_kHz <= 551143) {
- fc8150_write(hDevice, 0x1E, 0x04);
- fc8150_write(hDevice, 0x1F, 0x36);
- fc8150_write(hDevice, 0x14, 0x84);
- } else if (551143 < rf_kHz && rf_kHz <= 563143) {
- fc8150_write(hDevice, 0x1E, 0x03);
- fc8150_write(hDevice, 0x1F, 0x3E);
- fc8150_write(hDevice, 0x14, 0xC4);
- } else if (563143 < rf_kHz && rf_kHz <= 593143) {
- fc8150_write(hDevice, 0x1E, 0x02);
- fc8150_write(hDevice, 0x1F, 0x3E);
- fc8150_write(hDevice, 0x14, 0xC4);
- } else if (593143 < rf_kHz && rf_kHz <= 659143) {
- fc8150_write(hDevice, 0x1E, 0x02);
- fc8150_write(hDevice, 0x1F, 0x36);
- fc8150_write(hDevice, 0x14, 0x84);
- } else if (659143 < rf_kHz && rf_kHz <= 767143) {
- fc8150_write(hDevice, 0x1E, 0x01);
- fc8150_write(hDevice, 0x1F, 0x36);
- fc8150_write(hDevice, 0x14, 0x84);
- } else if (767143 < rf_kHz) {
- fc8150_write(hDevice, 0x1E, 0x00);
- fc8150_write(hDevice, 0x1F, 0x36);
- fc8150_write(hDevice, 0x14, 0x84);
- } else {
- fc8150_write(hDevice, 0x1E, 0x05);
- fc8150_write(hDevice, 0x1F, 0x36);
- fc8150_write(hDevice, 0x14, 0x84);
- }
-
- data_0x56 = ((r_val == 1) ? 0 : 0x10) + (unsigned char)(k_val>>16);
- fc8150_write(hDevice, 0x56, data_0x56);
- fc8150_write(hDevice, 0x57, (unsigned char)((k_val>>8)&0xFF));
- fc8150_write(hDevice, 0x58, (unsigned char)(((k_val)&0xFF)));
- fc8150_write(hDevice, 0x59, (unsigned char) n_val);
-
- if (rf_kHz < 525000)
- fc8150_write(hDevice, 0x55, 0x0E);
- else if (525000 <= rf_kHz && rf_kHz < 600000)
- fc8150_write(hDevice, 0x55, 0x0C);
- else if (600000 <= rf_kHz && rf_kHz < 700000)
- fc8150_write(hDevice, 0x55, 0x08);
- else if (700000 < rf_kHz)
- fc8150_write(hDevice, 0x55, 0x06);
-
- if (rf_kHz <= 491143) {
- fc8150_write(hDevice, 0x79, 0x28);
- fc8150_write(hDevice, 0x7A, 0x24);
- } else if (491143 < rf_kHz && rf_kHz <= 659143) {
- fc8150_write(hDevice, 0x79, 0x2A);
- fc8150_write(hDevice, 0x7A, 0x26);
- } else if (659143 < rf_kHz && rf_kHz <= 773143) {
- fc8150_write(hDevice, 0x79, 0x2C);
- fc8150_write(hDevice, 0x7A, 0x28);
- } else if (773143 < rf_kHz) {
- fc8150_write(hDevice, 0x79, 0x2F);
- fc8150_write(hDevice, 0x7A, 0x2B);
- }
-
- if (rf_kHz <= 707143) {
- fc8150_write(hDevice, 0x54, 0x00);
- fc8150_write(hDevice, 0x53, 0x5F);
- } else if (707143 < rf_kHz) {
- fc8150_write(hDevice, 0x54, 0x04);
- fc8150_write(hDevice, 0x53, 0x9F);
- }
-
- return BBM_OK;
-}
-
-int fc8150_get_rssi(HANDLE hDevice, int *rssi)
-{
- int res = BBM_OK;
- u8 LNA, RFVGA, CSF, PREAMP_PGA = 0x00;
- int K = -101.25;
- int PGA = 0;
-
- res = fc8150_read(hDevice, 0xA3, &LNA);
- res = fc8150_read(hDevice, 0xA4, &RFVGA);
- res = fc8150_read(hDevice, 0xA8, &CSF);
- res = fc8150_bb_read(hDevice, 0x106E, &PREAMP_PGA);
-
- if (res != BBM_OK)
- return res;
-
- if (127 < PREAMP_PGA)
- PGA = -1 * ((256 - PREAMP_PGA) + 1);
- else if (PREAMP_PGA <= 127)
- PGA = PREAMP_PGA;
-
- /* *rssi = (LNA & 0x07) * 6 + (RFVGA & 0x1F)
- + ((CSF & 0x03)+((CSF & 0x70) >> 4) ) * 6 - PGA * 0.25f + K ; */
- *rssi = (LNA & 0x07) * 6 + (RFVGA & 0x1F)
- + ((CSF & 0x03) + ((CSF & 0x70) >> 4)) * 6 - PGA / 4 + K;
-
- return BBM_OK;
-}
-
-int fc8150_tuner_deinit(HANDLE hDevice)
-{
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/fc8150_tun.h b/drivers/media/isdbt/fc8150/fc8150_tun.h
deleted file mode 100644
index 64a715c..0000000
--- a/drivers/media/isdbt/fc8150/fc8150_tun.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_tun.c
-
- Description : fc8150 tuner control driver
-
-*******************************************************************************/
-
-#ifndef __FC8150_TUN__
-#define __FC8150_TUN__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8150_tuner_init(HANDLE hDevice, enum band_type band);
-extern int fc8150_set_freq(HANDLE hDevice, enum band_type band, u32 f_lo);
-extern int fc8150_get_rssi(HANDLE hDevice, int *rssi);
-extern int fc8150_tuner_deinit(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fc8151_tun.c b/drivers/media/isdbt/fc8150/fc8151_tun.c
deleted file mode 100644
index e17b4b9..0000000
--- a/drivers/media/isdbt/fc8150/fc8151_tun.c
+++ /dev/null
@@ -1,413 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8151_tun.c (WLCSP)
-
- Description : fc8150 tuner driver
-
- History :
- ----------------------------------------------------------------------
- 2012/01/20 initial 0.1 version
- 2012/01/25 initial 0.3 version
- 2012/01/27 initial 0.5 version
- 2012/01/31 initial 1.0 version
- 2012/01/31 initial 1.1 version
- 2012/02/06 initial 1.2 version
- 2012/02/09 initial 1.3 Version
- 2012/02/15 initial 1.4 Version
- 2012/02/15 initial 2.0 Version
- 2012/02/24 initial 2.01 Version
- 2012/03/30 initial 3.0 Version
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fci_tun.h"
-#include "fc8150_regs.h"
-#include "fci_hal.h"
-
-#define FC8150_FREQ_XTAL BBM_XTAL_FREQ /* 26MHZ */
-
-static int high_crnt_mode = 1;
-
-static int fc8151_write(HANDLE hDevice, u8 addr, u8 data)
-{
- int res;
- u8 tmp;
-
- tmp = data;
- res = tuner_i2c_write(hDevice, addr, 1, &tmp, 1);
-
- return res;
-}
-
-static int fc8151_read(HANDLE hDevice, u8 addr, u8 *data)
-{
- int res;
-
- res = tuner_i2c_read(hDevice, addr, 1, data, 1);
-
- return res;
-}
-
-static int fc8151_bb_read(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
-
- res = bbm_read(hDevice, addr, data);
-
- return res;
-}
-
-static int fc8151_bb_write(HANDLE hDevice, u16 addr, u8 data)
-{
- return BBM_OK;
-}
-
-
-static int KbdFunc(HANDLE hDevice)
-{
- int i = 0;
-
- u8 CSF = 0x00;
- int res = BBM_OK;
- int crnt_mode[5] = {0, 0, 0, 0, 0};
- int pre_crnt_mode = 0;
-
- high_crnt_mode = 2;
- fc8151_write(hDevice, 0x13, 0xF4);
- fc8151_write(hDevice, 0x1F, 0x06);
- fc8151_write(hDevice, 0x33, 0x08);
- fc8151_write(hDevice, 0x34, 0x68);
- fc8151_write(hDevice, 0x35, 0x0A);
-
- while (1) {
- while (1) {
- for (i = 0; i < 5; i++) {
- msWait(100);
- res = fc8151_read(hDevice, 0xA6, &CSF);
- if (CSF < 4)
- crnt_mode[i] = 2;
- if (CSF == 4)
- crnt_mode[i] = 1;
- if (4 < CSF)
- crnt_mode[i] = 0;
- }
-
- pre_crnt_mode = high_crnt_mode;
-
- if ((crnt_mode[0] + crnt_mode[1] + crnt_mode[2]
- + crnt_mode[3] + crnt_mode[4]) == 10)
- high_crnt_mode = 2;
- else if ((crnt_mode[0] + crnt_mode[1] + crnt_mode[2]
- + crnt_mode[3] + crnt_mode[4]) == 5)
- high_crnt_mode = 1;
- else if ((crnt_mode[0] + crnt_mode[1] + crnt_mode[2]
- + crnt_mode[3] + crnt_mode[4]) == 0)
- high_crnt_mode = 0;
- else
- high_crnt_mode = pre_crnt_mode;
-
- if (!(high_crnt_mode == pre_crnt_mode))
- break;
- }
-
- if (high_crnt_mode == 2) {
- fc8151_write(hDevice, 0x13, 0xF4);
- fc8151_write(hDevice, 0x1F, 0x06);
- fc8151_write(hDevice, 0x33, 0x08);
- fc8151_write(hDevice, 0x34, 0x68);
- fc8151_write(hDevice, 0x35, 0x0A);
- } else if (high_crnt_mode == 1) {
- fc8151_write(hDevice, 0x13, 0x44);
- fc8151_write(hDevice, 0x1F, 0x06);
- fc8151_write(hDevice, 0x33, 0x08);
- fc8151_write(hDevice, 0x34, 0x68);
- fc8151_write(hDevice, 0x35, 0x0A);
- } else if (high_crnt_mode == 0) {
- fc8151_write(hDevice, 0x13, 0x44);
- fc8151_write(hDevice, 0x1F, 0x02);
- fc8151_write(hDevice, 0x33, 0x04);
- fc8151_write(hDevice, 0x34, 0x48);
- fc8151_write(hDevice, 0x35, 0x0C);
- }
- }
-
- return res;
-
-}
-
-static int fc8151_set_filter(HANDLE hDevice)
-{
- int i;
- u8 cal_mon = 0;
-
-#if (FC8151_FREQ_XTAL == 16000)
- fc8151_write(hDevice, 0x3B, 0x01);
- fc8151_write(hDevice, 0x3D, 0x20);
- fc8151_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 16384)
- fc8151_write(hDevice, 0x3B, 0x01);
- fc8151_write(hDevice, 0x3D, 0x21);
- fc8151_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 18000)
- fc8151_write(hDevice, 0x3B, 0x01);
- fc8151_write(hDevice, 0x3D, 0x24);
- fc8151_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 19200)
- fc8151_write(hDevice, 0x3B, 0x01);
- fc8151_write(hDevice, 0x3D, 0x26);
- fc8151_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 24000)
- fc8151_write(hDevice, 0x3B, 0x01);
- fc8151_write(hDevice, 0x3D, 0x30);
- fc8151_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 24576)
- fc8151_write(hDevice, 0x3B, 0x01);
- fc8151_write(hDevice, 0x3D, 0x31);
- fc8151_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 26000)
- fc8151_write(hDevice, 0x3B, 0x01);
- fc8151_write(hDevice, 0x3D, 0x34);
- fc8151_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 27000)
- fc8151_write(hDevice, 0x3B, 0x01);
- fc8151_write(hDevice, 0x3D, 0x36);
- fc8151_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 27120)
- fc8151_write(hDevice, 0x3B, 0x01);
- fc8151_write(hDevice, 0x3D, 0x36);
- fc8151_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 32000)
- fc8151_write(hDevice, 0x3B, 0x01);
- fc8151_write(hDevice, 0x3D, 0x40);
- fc8151_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 37400)
- fc8151_write(hDevice, 0x3B, 0x01);
- fc8151_write(hDevice, 0x3D, 0x4B);
- fc8151_write(hDevice, 0x3B, 0x00);
-#elif (FC8150_FREQ_XTAL == 38400)
- fc8151_write(hDevice, 0x3B, 0x01);
- fc8151_write(hDevice, 0x3D, 0x4D);
- fc8151_write(hDevice, 0x3B, 0x00);
-#else
- return BBM_NOK;
-#endif
-
- for (i = 0; i < 10; i++) {
- msWait(5);
- fc8151_read(hDevice, 0x33, &cal_mon);
- if ((cal_mon & 0xC0) == 0xC0)
- break;
- fc8151_write(hDevice, 0x32, 0x01);
- fc8151_write(hDevice, 0x32, 0x09);
- }
-
- fc8151_write(hDevice, 0x32, 0x01);
-
- return BBM_OK;
-}
-
-int fc8151_tuner_init(HANDLE hDevice, u32 band)
-{
- u8 RFPD_REF, MIXPD_REF;
- int res = BBM_OK;
-
- PRINTF(hDevice, "fc8151_init\n");
-
- fc8151_write(hDevice, 0x00, 0x00);
- fc8151_write(hDevice, 0x02, 0x81);
-
- fc8151_write(hDevice, 0x13, 0xF4);
- fc8151_write(hDevice, 0x30, 0x0A);
- fc8151_write(hDevice, 0x3B, 0x01);
-
- fc8151_set_filter(hDevice);
-
- fc8151_write(hDevice, 0x3B, 0x00);
-
- fc8151_write(hDevice, 0x34, 0x68);
- fc8151_write(hDevice, 0x36, 0xFF);
- fc8151_write(hDevice, 0x37, 0xFF);
- fc8151_write(hDevice, 0x39, 0x11);
- fc8151_write(hDevice, 0x3A, 0x00);
-
- fc8151_write(hDevice, 0x52, 0x20);
- fc8151_write(hDevice, 0x53, 0x5F);
- fc8151_write(hDevice, 0x54, 0x00);
- fc8151_write(hDevice, 0x5E, 0x00);
- fc8151_write(hDevice, 0x63, 0x30);
-
- fc8151_write(hDevice, 0x56, 0x0F);
- fc8151_write(hDevice, 0x57, 0x1F);
- fc8151_write(hDevice, 0x58, 0x09);
- fc8151_write(hDevice, 0x59, 0x5E);
-
- fc8151_write(hDevice, 0x29, 0x00);
-
- fc8151_write(hDevice, 0x94, 0x00);
- fc8151_write(hDevice, 0x95, 0x01);
- fc8151_write(hDevice, 0x96, 0x11);
- fc8151_write(hDevice, 0x97, 0x21);
- fc8151_write(hDevice, 0x98, 0x31);
- fc8151_write(hDevice, 0x99, 0x32);
- fc8151_write(hDevice, 0x9A, 0x42);
- fc8151_write(hDevice, 0x9B, 0x52);
- fc8151_write(hDevice, 0x9C, 0x53);
- fc8151_write(hDevice, 0x9D, 0x63);
- fc8151_write(hDevice, 0x9E, 0x63);
- fc8151_write(hDevice, 0x9F, 0x63);
-
- fc8151_write(hDevice, 0x79, 0x2A);
- fc8151_write(hDevice, 0x7A, 0x24);
- fc8151_write(hDevice, 0x7B, 0xFF);
- fc8151_write(hDevice, 0x7C, 0x16);
- fc8151_write(hDevice, 0x7D, 0x12);
- fc8151_write(hDevice, 0x84, 0x00);
- fc8151_write(hDevice, 0x85, 0x08);
- fc8151_write(hDevice, 0x86, 0x00);
- fc8151_write(hDevice, 0x87, 0x08);
- fc8151_write(hDevice, 0x88, 0x00);
- fc8151_write(hDevice, 0x89, 0x08);
- fc8151_write(hDevice, 0x8A, 0x00);
- fc8151_write(hDevice, 0x8B, 0x08);
- fc8151_write(hDevice, 0x8C, 0x00);
- fc8151_write(hDevice, 0x8D, 0x1D);
- fc8151_write(hDevice, 0x8E, 0x13);
- fc8151_write(hDevice, 0x8F, 0x1D);
- fc8151_write(hDevice, 0x90, 0x13);
- fc8151_write(hDevice, 0x91, 0x1D);
- fc8151_write(hDevice, 0x92, 0x13);
- fc8151_write(hDevice, 0x93, 0x1D);
- fc8151_write(hDevice, 0x80, 0x1F);
- fc8151_write(hDevice, 0x81, 0x0A);
- fc8151_write(hDevice, 0x82, 0x40);
- fc8151_write(hDevice, 0x83, 0x0A);
-
- fc8151_write(hDevice, 0xA0, 0xC0);
- fc8151_write(hDevice, 0x7E, 0x7F);
- fc8151_write(hDevice, 0x7F, 0x7F);
- fc8151_write(hDevice, 0xD0, 0x0A);
- fc8151_write(hDevice, 0xD2, 0x28);
- fc8151_write(hDevice, 0xD4, 0x28);
-
- /* _beginthread(KbdFunc,0,&x); */
-
- fc8151_write(hDevice, 0xA0, 0x17);
- fc8151_write(hDevice, 0xD0, 0x00);
- fc8151_write(hDevice, 0xA1, 0x1D);
-
- msWait(100);
-
- res = fc8151_read(hDevice, 0xD6, &RFPD_REF);
- res = fc8151_read(hDevice, 0xD8, &MIXPD_REF);
-
- fc8151_write(hDevice, 0xA0, 0xD7);
- fc8151_write(hDevice, 0xD0, 0x0A);
-
- fc8151_write(hDevice, 0x7E, RFPD_REF);
- fc8151_write(hDevice, 0x7F, MIXPD_REF);
-
- fc8151_write(hDevice, 0xA0, 0xC0);
- fc8151_write(hDevice, 0xA1, 0x00);
-
- return res;
-}
-
-
-int fc8151_set_freq(HANDLE hDevice, band_type band, u32 rf_kHz)
-{
- int res = BBM_OK;
- int n_captune = 0;
- unsigned long f_diff, f_diff_shifted, n_val, k_val;
- unsigned long f_vco, f_comp;
- unsigned char r_val, data_0x56;
- unsigned char pre_shift_bits = 4;
-
- f_vco = (rf_kHz) << 2;
- if (f_vco < FC8150_FREQ_XTAL*40)
- r_val = 2;
- else
- r_val = 1;
-
- f_comp = FC8150_FREQ_XTAL / r_val;
-
- n_val = f_vco / f_comp;
- f_diff = f_vco - f_comp * n_val;
-
- f_diff_shifted = f_diff << (20 - pre_shift_bits);
-
- k_val = (f_diff_shifted + (f_comp >> (pre_shift_bits+1)))
- / (f_comp >> pre_shift_bits);
- k_val = (k_val | 1);
-
- if (470000 < rf_kHz && rf_kHz <= 505000)
- n_captune = 4;
- else if (505000 < rf_kHz && rf_kHz <= 545000)
- n_captune = 3;
- else if (545000 < rf_kHz && rf_kHz <= 610000)
- n_captune = 2;
- else if (610000 < rf_kHz && rf_kHz <= 695000)
- n_captune = 1;
- else if (695000 < rf_kHz)
- n_captune = 0;
-
- fc8151_write(hDevice, 0x1E, (unsigned char)n_captune);
-
- data_0x56 = ((r_val == 1) ? 0 : 0x10) + (unsigned char)(k_val >> 16);
- fc8151_write(hDevice, 0x56, data_0x56);
- fc8151_write(hDevice, 0x57, (unsigned char)((k_val >> 8) & 0xFF));
- fc8151_write(hDevice, 0x58, (unsigned char)(((k_val) & 0xFF)));
- fc8151_write(hDevice, 0x59, (unsigned char) n_val);
-
- if (rf_kHz <= 600000)
- fc8151_write(hDevice, 0x55, 0x07);
- else
- fc8151_write(hDevice, 0x55, 0x05);
-
- if ((490000 < rf_kHz) && (560000 >= rf_kHz))
- fc8151_write(hDevice, 0x1F, 0x0E);
- else
- fc8151_write(hDevice, 0x1F, 0x06);
-
- return res;
-}
-
-int fc8151_get_rssi(HANDLE hDevice, int *rssi)
-{
- int res = BBM_OK;
- u8 LNA, RFVGA, CSF, PREAMP_PGA = 0x00;
- int K = -101.25;
- float Gain_diff = 0;
- int PGA = 0;
-
- res |= fc8151_read(hDevice, 0xA3, &LNA);
- res |= fc8151_read(hDevice, 0xA4, &RFVGA);
- res |= fc8151_read(hDevice, 0xA6, &CSF);
- res |= fc8151_bb_read(hDevice, 0x106E, &PREAMP_PGA);
-
- if (res != BBM_OK)
- return res;
-
- if (127 < PREAMP_PGA)
- PGA = -1 * ((256 - PREAMP_PGA) + 1);
- else if (PREAMP_PGA <= 127)
- PGA = PREAMP_PGA;
-
- if (high_crnt_mode == 2)
- Gain_diff = 0;
- else if (high_crnt_mode == 1)
- Gain_diff = 0;
- else if (high_crnt_mode == 0)
- Gain_diff = -3.5;
-
- *rssi = (LNA & 0x07) * 6 + (RFVGA)
- + (CSF & 0x0F) * 6 - PGA * 0.25f + K - Gain_diff;
-
- return BBM_OK;
-}
-
-int fc8151_tuner_deinit(HANDLE hDevice)
-{
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/fc8151_tun.h b/drivers/media/isdbt/fc8150/fc8151_tun.h
deleted file mode 100644
index 4147fa6..0000000
--- a/drivers/media/isdbt/fc8150/fc8151_tun.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8151_tun.c
-
- Description : fc8151 tuner control driver
-
-*******************************************************************************/
-
-#ifndef __FC8151_TUN__
-#define __FC8151_TUN__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8151_tuner_init(HANDLE hDevice, band_type band);
-extern int fc8151_set_freq(HANDLE hDevice, band_type band, u32 f_lo);
-extern int fc8151_get_rssi(HANDLE hDevice, int *rssi);
-extern int fc8151_tuner_deinit(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fci_bypass.c b/drivers/media/isdbt/fc8150/fci_bypass.c
deleted file mode 100644
index f3104cb..0000000
--- a/drivers/media/isdbt/fc8150/fci_bypass.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fci_bypass.c
-
- Description : fci i2c driver
-*******************************************************************************/
-#include "fci_bypass.h"
-#include "fci_types.h"
-
-
-int fci_bypass_init(HANDLE hDevice, int speed, int slaveaddr)
-{
- return BBM_OK;
-}
-
-int fci_bypass_read(HANDLE hDevice, u8 chip, u8 addr, u8 alen, u8 *data, u8 len)
-{
- int res;
-
- res = fc8150_bypass_read(hDevice, chip, addr, data, len);
-
- return res;
-}
-
-int fci_bypass_write(HANDLE hDevice, u8 chip, u8 addr
- , u8 alen, u8 *data, u8 len)
-{
- int res;
-
- res = fc8150_bypass_write(hDevice, chip, addr, data, len);
-
- return res;
-}
-
-int fci_bypass_deinit(HANDLE hDevice)
-{
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/fci_bypass.h b/drivers/media/isdbt/fc8150/fci_bypass.h
deleted file mode 100644
index dda0e64..0000000
--- a/drivers/media/isdbt/fc8150/fci_bypass.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fci_bypass.h
-
- Description : fci i2c driver header
-*******************************************************************************/
-
-#ifndef __FCI_BYPASS_H__
-#define __FCI_BYPASS_H__
-
-#include "fci_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fci_bypass_init(HANDLE hDevice, int speed, int slaveaddr);
-extern int fci_bypass_read(HANDLE hDevice, u8 chip, u8 addr
- , u8 alen, u8 *data, u8 len);
-extern int fci_bypass_write(HANDLE hDevice, u8 chip, u8 addr
- , u8 alen, u8 *data, u8 len);
-extern int fci_bypass_deinit(HANDLE hDevice);
-
-extern int fc8150_bypass_read(HANDLE hDevice, u8 chip
- , u8 addr, u8 *data, u16 length);
-extern int fc8150_bypass_write(HANDLE hDevice, u8 chip
- , u8 addr, u8 *data, u16 length);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fci_hal.c b/drivers/media/isdbt/fc8150/fci_hal.c
deleted file mode 100644
index b70f5eb..0000000
--- a/drivers/media/isdbt/fc8150/fci_hal.c
+++ /dev/null
@@ -1,245 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fci_hal.c
-
- Description : fc8150 host interface
-
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_hal.h"
-#include "fc8150_hpi.h"
-#include "fc8150_spi.h"
-#include "fc8150_ppi.h"
-#include "fc8150_i2c.h"
-#include "fc8150_spib.h"
-
-struct IF_PORT {
- int (*init)(HANDLE hDevice, u16 param1, u16 param2);
-
- int (*byteread)(HANDLE hDevice, u16 addr, u8 *data);
- int (*wordread)(HANDLE hDevice, u16 addr, u16 *data);
- int (*longread)(HANDLE hDevice, u16 addr, u32 *data);
- int (*bulkread)(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-
- int (*bytewrite)(HANDLE hDevice, u16 addr, u8 data);
- int (*wordwrite)(HANDLE hDevice, u16 addr, u16 data);
- int (*longwrite)(HANDLE hDevice, u16 addr, u32 data);
- int (*bulkwrite)(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-
- int (*dataread)(HANDLE hDevice, u16 addr, u8 *data, u32 length);
-
- int (*deinit)(HANDLE hDevice);
-};
-
-static struct IF_PORT hpiif = {
- &fc8150_hpi_init,
-
- &fc8150_hpi_byteread,
- &fc8150_hpi_wordread,
- &fc8150_hpi_longread,
- &fc8150_hpi_bulkread,
-
- &fc8150_hpi_bytewrite,
- &fc8150_hpi_wordwrite,
- &fc8150_hpi_longwrite,
- &fc8150_hpi_bulkwrite,
-
- &fc8150_hpi_dataread,
-
- &fc8150_hpi_deinit
-};
-
-static struct IF_PORT spiif = {
- &fc8150_spi_init,
-
- &fc8150_spi_byteread,
- &fc8150_spi_wordread,
- &fc8150_spi_longread,
- &fc8150_spi_bulkread,
-
- &fc8150_spi_bytewrite,
- &fc8150_spi_wordwrite,
- &fc8150_spi_longwrite,
- &fc8150_spi_bulkwrite,
-
- &fc8150_spi_dataread,
-
- &fc8150_spi_deinit
-};
-
-static struct IF_PORT spibif = {
- &fc8150_spib_init,
-
- &fc8150_spib_byteread,
- &fc8150_spib_wordread,
- &fc8150_spib_longread,
- &fc8150_spib_bulkread,
-
- &fc8150_spib_bytewrite,
- &fc8150_spib_wordwrite,
- &fc8150_spib_longwrite,
- &fc8150_spib_bulkwrite,
-
- &fc8150_spib_dataread,
-
- &fc8150_spib_deinit
-};
-
-static struct IF_PORT ppiif = {
- &fc8150_ppi_init,
-
- &fc8150_ppi_byteread,
- &fc8150_ppi_wordread,
- &fc8150_ppi_longread,
- &fc8150_ppi_bulkread,
-
- &fc8150_ppi_bytewrite,
- &fc8150_ppi_wordwrite,
- &fc8150_ppi_longwrite,
- &fc8150_ppi_bulkwrite,
-
- &fc8150_ppi_dataread,
-
- &fc8150_ppi_deinit
-};
-
-static struct IF_PORT i2cif = {
- &fc8150_i2c_init,
-
- &fc8150_i2c_byteread,
- &fc8150_i2c_wordread,
- &fc8150_i2c_longread,
- &fc8150_i2c_bulkread,
-
- &fc8150_i2c_bytewrite,
- &fc8150_i2c_wordwrite,
- &fc8150_i2c_longwrite,
- &fc8150_i2c_bulkwrite,
-
- &fc8150_i2c_dataread,
-
- &fc8150_i2c_deinit
-};
-
-static struct IF_PORT *ifport = &spiif;
-u8 hostif_type = BBM_SPI;
-
-int bbm_hostif_select(HANDLE hDevice, u8 hostif)
-{
- hostif_type = hostif;
-
- switch (hostif) {
- case BBM_HPI:
- ifport = &hpiif;
- break;
- case BBM_SPI:
- ifport = &spiif;
- break;
- case BBM_I2C:
- ifport = &i2cif;
- break;
- case BBM_PPI:
- ifport = &ppiif;
- break;
- case BBM_SPIB:
- ifport = &spibif;
- break;
- default:
- return BBM_E_HOSTIF_SELECT;
- }
-
- if (ifport->init(hDevice, 0, 0))
- return BBM_E_HOSTIF_INIT;
-
- return BBM_OK;
-}
-
-int bbm_hostif_deselect(HANDLE hDevice)
-{
- if (ifport->deinit(hDevice))
- return BBM_NOK;
-
- ifport = NULL;
- hostif_type = BBM_SPI;
-
- return BBM_OK;
-}
-
-int bbm_read(HANDLE hDevice, u16 addr, u8 *data)
-{
- if (ifport->byteread(hDevice, addr, data))
- return BBM_E_BB_READ;
- return BBM_OK;
-}
-
-int bbm_byte_read(HANDLE hDevice, u16 addr, u8 *data)
-{
- if (ifport->byteread(hDevice, addr, data))
- return BBM_E_BB_READ;
- return BBM_OK;
-}
-
-int bbm_word_read(HANDLE hDevice, u16 addr, u16 *data)
-{
- if (ifport->wordread(hDevice, addr, data))
- return BBM_E_BB_READ;
- return BBM_OK;
-}
-
-int bbm_long_read(HANDLE hDevice, u16 addr, u32 *data)
-{
- if (ifport->longread(hDevice, addr, data))
- return BBM_E_BB_READ;
- return BBM_OK;
-}
-
-int bbm_bulk_read(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- if (ifport->bulkread(hDevice, addr, data, length))
- return BBM_E_BB_READ;
- return BBM_OK;
-}
-
-int bbm_write(HANDLE hDevice, u16 addr, u8 data)
-{
- if (ifport->bytewrite(hDevice, addr, data))
- return BBM_E_BB_WRITE;
- return BBM_OK;
-}
-
-int bbm_byte_write(HANDLE hDevice, u16 addr, u8 data)
-{
- if (ifport->bytewrite(hDevice, addr, data))
- return BBM_E_BB_WRITE;
- return BBM_OK;
-}
-
-int bbm_word_write(HANDLE hDevice, u16 addr, u16 data)
-{
- if (ifport->wordwrite(hDevice, addr, data))
- return BBM_E_BB_WRITE;
- return BBM_OK;
-}
-
-int bbm_long_write(HANDLE hDevice, u16 addr, u32 data)
-{
- if (ifport->longwrite(hDevice, addr, data))
- return BBM_E_BB_WRITE;
- return BBM_OK;
-}
-
-int bbm_bulk_write(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- if (ifport->bulkwrite(hDevice, addr, data, length))
- return BBM_E_BB_WRITE;
- return BBM_OK;
-}
-
-int bbm_data(HANDLE hDevice, u16 addr, u8 *data, u32 length)
-{
- if (ifport->dataread(hDevice, addr, data, length))
- return BBM_E_BB_WRITE;
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/fci_hal.h b/drivers/media/isdbt/fc8150/fci_hal.h
deleted file mode 100644
index e9d44c4..0000000
--- a/drivers/media/isdbt/fc8150/fci_hal.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fc8150_hal.h
-
- Description : fc8150 host interface
-*******************************************************************************/
-
-#ifndef __FCI_HAL_H__
-#define __FCI_HAL_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int bbm_hostif_select(HANDLE hDevice, u8 hostif);
-extern int bbm_hostif_deselect(HANDLE hDevice);
-
-extern int bbm_read(HANDLE hDevice, u16 addr, u8 *data);
-extern int bbm_byte_read(HANDLE hDevice, u16 addr, u8 *data);
-extern int bbm_word_read(HANDLE hDevice, u16 addr, u16 *data);
-extern int bbm_long_read(HANDLE hDevice, u16 addr, u32 *data);
-extern int bbm_bulk_read(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-
-extern int bbm_write(HANDLE hDevice, u16 addr, u8 data);
-extern int bbm_byte_write(HANDLE hDevice, u16 addr, u8 data);
-extern int bbm_word_write(HANDLE hDevice, u16 addr, u16 data);
-extern int bbm_long_write(HANDLE hDevice, u16 addr, u32 data);
-extern int bbm_bulk_write(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-
-extern int bbm_data(HANDLE hDevice, u16 addr, u8 *data, u32 length);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fci_i2c.c b/drivers/media/isdbt/fc8150/fci_i2c.c
deleted file mode 100644
index 1f011ca..0000000
--- a/drivers/media/isdbt/fc8150/fci_i2c.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fci_i2c.c
-
- Description : fci i2c driver
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fc8150_regs.h"
-#include "fci_hal.h"
-
-#define I2CSTAT_TIP 0x02 /* Tip bit */
-#define I2CSTAT_NACK 0x80 /* Nack bit */
-
-#define I2C_TIMEOUT 100
-
-#define I2C_CR_STA 0x80
-#define I2C_CR_STO 0x40
-#define I2C_CR_RD 0x20
-#define I2C_CR_WR 0x10
-#define I2C_CR_NACK 0x08
-#define I2C_CR_IACK 0x01
-
-#define I2C_WRITE 0
-#define I2C_READ 1
-
-#define I2C_OK 0
-#define I2C_NOK 1
-#define I2C_NACK 2
-#define I2C_NOK_LA 3 /* Lost arbitration */
-#define I2C_NOK_TOUT 4 /* time out */
-
-#define FC8150_FREQ_XTAL BBM_XTAL_FREQ
-
-/* static OAL_SEMAPHORE hBbmMutex; */
-
-static int WaitForXfer(HANDLE hDevice)
-{
- int i;
- int res = I2C_OK;
- u8 status;
-
- i = I2C_TIMEOUT * 20000;
- /* wait for transfer complete */
- do {
- bbm_read(hDevice, BBM_I2C_SR, &status);
- i--;
- } while ((i > 0) && (status & I2CSTAT_TIP));
-
- /* check time out or nack */
- if (status & I2CSTAT_TIP) {
- res = I2C_NOK_TOUT;
- } else {
- bbm_read(hDevice, BBM_I2C_SR, &status);
- if (status & I2CSTAT_NACK)
- res = I2C_NACK;
- else
- res = I2C_OK;
- }
-
- return res;
-}
-
-static int fci_i2c_transfer(HANDLE hDevice, u8 cmd_type, u8 chip
- , u8 addr[], u8 addr_len, u8 data[], u8 data_len)
-{
- int i;
- int result = I2C_OK;
-
- switch (cmd_type) {
- case I2C_WRITE:
- bbm_write(hDevice, BBM_I2C_TXR, chip | cmd_type);
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_STA | I2C_CR_WR /*0x90*/);
- result = WaitForXfer(hDevice);
- if (result != I2C_OK)
- return result;
-
- if (addr && addr_len) {
- i = 0;
- while ((i < addr_len) && (result == I2C_OK)) {
- bbm_write(hDevice, BBM_I2C_TXR, addr[i]);
- bbm_write(hDevice, BBM_I2C_CR
- , I2C_CR_WR /*0x10*/);
- result = WaitForXfer(hDevice);
- if (result != I2C_OK)
- return result;
- i++;
- }
- }
-
- i = 0;
- while ((i < data_len) && (result == I2C_OK)) {
- bbm_write(hDevice, BBM_I2C_TXR, data[i]);
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_WR /*0x10*/);
- result = WaitForXfer(hDevice);
- if (result != I2C_OK)
- return result;
- i++;
- }
-
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_STO /*0x40*/);
- result = WaitForXfer(hDevice);
- if (result != I2C_OK)
- return result;
- break;
- case I2C_READ:
- if (addr && addr_len) {
- bbm_write(hDevice, BBM_I2C_TXR, chip | I2C_WRITE);
- bbm_write(hDevice, BBM_I2C_CR
- , I2C_CR_STA | I2C_CR_WR /*0x90*/);
- result = WaitForXfer(hDevice);
- if (result != I2C_OK)
- return result;
-
- i = 0;
- while ((i < addr_len) && (result == I2C_OK)) {
- bbm_write(hDevice, BBM_I2C_TXR, addr[i]);
- bbm_write(hDevice, BBM_I2C_CR
- , I2C_CR_WR /*0x10*/);
- result = WaitForXfer(hDevice);
- if (result != I2C_OK)
- return result;
- i++;
- }
- }
-
- bbm_write(hDevice, BBM_I2C_TXR, chip | I2C_READ);
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_STA | I2C_CR_WR /*0x90*/);
- result = WaitForXfer(hDevice);
- if (result != I2C_OK)
- return result;
-
- i = 0;
- while ((i < data_len) && (result == I2C_OK)) {
- if (i == data_len - 1) {
- bbm_write(hDevice, BBM_I2C_CR
- , I2C_CR_RD|I2C_CR_NACK/*0x28*/);
- result = WaitForXfer(hDevice);
- if ((result != I2C_NACK)
- && (result != I2C_OK)) {
- PRINTF(hDevice, "NACK4-0[%02x]\n"
- , result);
- return result;
- }
- } else {
- bbm_write(hDevice, BBM_I2C_CR
- , I2C_CR_RD /*0x20*/);
- result = WaitForXfer(hDevice);
- if (result != I2C_OK) {
- PRINTF(hDevice, "NACK4-1[%02x]\n"
- , result);
- return result;
- }
- }
- bbm_read(hDevice, BBM_I2C_RXR, &data[i]);
- i++;
- }
-
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_STO /*0x40*/);
- result = WaitForXfer(hDevice);
- if ((result != I2C_NACK) && (result != I2C_OK)) {
- PRINTF(hDevice, "NACK5[%02X]\n", result);
- return result;
- }
- break;
- default:
- return I2C_NOK;
- }
-
- return I2C_OK;
-}
-
-int fci_i2c_init(HANDLE hDevice, int speed, int slaveaddr)
-{
- u16 r = FC8150_FREQ_XTAL % (5 * speed);
- u16 pr = (FC8150_FREQ_XTAL - r) / (5 * speed) - 1;
-
- if (((5 * speed) >> 1) <= r)
- pr++;
-
- bbm_word_write(hDevice, BBM_I2C_PR_L, pr);
- bbm_write(hDevice, BBM_I2C_CTR, 0xc0);
-
- PRINTF(hDevice, "Internal I2C Pre-scale: 0x%02x\n", pr);
-
- return BBM_OK;
-}
-
-int fci_i2c_read(HANDLE hDevice, u8 chip, u8 addr, u8 alen, u8 *data, u8 len)
-{
- int ret;
-
- ret = fci_i2c_transfer(hDevice, I2C_READ, chip << 1, &addr
- , alen, data, len);
-
- if (ret != I2C_OK) {
- PRINTF(hDevice, "fci_i2c_read() result=%d, addr = %x, data=%x\n"
- , ret, addr, *data);
- return ret;
- }
-
- return ret;
-}
-
-int fci_i2c_write(HANDLE hDevice, u8 chip, u8 addr, u8 alen, u8 *data, u8 len)
-{
- int ret;
- u8 *paddr = &addr;
-
- ret = fci_i2c_transfer(hDevice, I2C_WRITE, chip << 1
- , paddr, alen, data, len);
-
- if (ret != I2C_OK)
- PRINTF(hDevice, "fci_i2c_write() result=%d, addr= %x, data=%x\n"
- , ret, addr, *data);
-
- return ret;
-}
-
-int fci_i2c_deinit(HANDLE hDevice)
-{
- bbm_write(hDevice, BBM_I2C_CTR, 0x00);
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/fci_i2c.h b/drivers/media/isdbt/fc8150/fci_i2c.h
deleted file mode 100644
index 8c4ce07..0000000
--- a/drivers/media/isdbt/fc8150/fci_i2c.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fci_i2c.h
-
- Description : fci i2c driver header
-*******************************************************************************/
-
-#ifndef __FCI_I2C_H__
-#define __FCI_I2C_H__
-
-#include "fci_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fci_i2c_init(HANDLE hDevice, int speed, int slaveaddr);
-extern int fci_i2c_read(HANDLE hDevice, u8 chip, u8 addr
- , u8 alen, u8 *data, u8 len);
-extern int fci_i2c_write(HANDLE hDevice, u8 chip, u8 addr
- , u8 alen, u8 *data, u8 len);
-extern int fci_i2c_deinit(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fci_oal.c b/drivers/media/isdbt/fc8150/fci_oal.c
deleted file mode 100644
index a7d7f77..0000000
--- a/drivers/media/isdbt/fc8150/fci_oal.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fci_oal.c
-
- Description : OS adaptation layer
-*******************************************************************************/
-#include <linux/kernel.h>
-#include <linux/delay.h>
-
-#include "fc8150_regs.h"
-#include "fci_types.h"
-
-void PRINTF(HANDLE hDevice, char *fmt, ...)
-{
- va_list ap;
- char str[256];
-
- va_start(ap, fmt);
- vsprintf(str, fmt, ap);
-
- printk(KERN_DEBUG"%s", str);
-
- va_end(ap);
-}
-
-void msWait(int ms)
-{
- msleep(ms);
-}
-
-void OAL_CREATE_SEMAPHORE(void)
-{
-
-}
-
-void OAL_DELETE_SEMAPHORE(void)
-{
-
-}
-
-void OAL_OBTAIN_SEMAPHORE(void)
-{
-
-}
-
-void OAL_RELEASE_SEMAPHORE(void)
-{
-
-}
diff --git a/drivers/media/isdbt/fc8150/fci_oal.h b/drivers/media/isdbt/fc8150/fci_oal.h
deleted file mode 100644
index 88b3c35..0000000
--- a/drivers/media/isdbt/fc8150/fci_oal.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fci_oal.h
-
- Description : OS adatation layer
-*******************************************************************************/
-
-#ifndef __FCI_OAL_H__
-#define __FCI_OAL_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern void PRINTF(HANDLE hDevice, char *fmt, ...);
-extern void msWait(int ms);
-
-extern void OAL_CREATE_SEMAPHORE(void);
-extern void OAL_DELETE_SEMAPHORE(void);
-extern void OAL_OBTAIN_SEMAPHORE(void);
-extern void OAL_RELEASE_SEMAPHORE(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fci_ringbuffer.c b/drivers/media/isdbt/fc8150/fci_ringbuffer.c
deleted file mode 100644
index 25fad51..0000000
--- a/drivers/media/isdbt/fc8150/fci_ringbuffer.c
+++ /dev/null
@@ -1,271 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2010 FCI Inc. All Rights Reserved
-
- File name : fci_ringbuffer.c
-
- Description : fci ringbuffer
-
- History :
- ----------------------------------------------------------------------
- 2010/11/25 aslan.cho initial
-*******************************************************************************/
-
-#include <linux/errno.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/string.h>
-#include <linux/uaccess.h>
-
-#include "fci_ringbuffer.h"
-
-#define PKT_READY 0
-#define PKT_DISPOSED 1
-
-void fci_ringbuffer_init(struct fci_ringbuffer *rbuf, void *data, size_t len)
-{
- rbuf->pread = rbuf->pwrite = 0;
- rbuf->data = data;
- rbuf->size = len;
- rbuf->error = 0;
-
- init_waitqueue_head(&rbuf->queue);
-
- spin_lock_init(&(rbuf->lock));
-}
-
-int fci_ringbuffer_empty(struct fci_ringbuffer *rbuf)
-{
- return (rbuf->pread == rbuf->pwrite);
-}
-
-ssize_t fci_ringbuffer_free(struct fci_ringbuffer *rbuf)
-{
- ssize_t free;
-
- free = rbuf->pread - rbuf->pwrite;
- if (free <= 0)
- free += rbuf->size;
- return free-1;
-}
-
-ssize_t fci_ringbuffer_avail(struct fci_ringbuffer *rbuf)
-{
- ssize_t avail;
-
- avail = rbuf->pwrite - rbuf->pread;
- if (avail < 0)
- avail += rbuf->size;
- return avail;
-}
-
-void fci_ringbuffer_flush(struct fci_ringbuffer *rbuf)
-{
- rbuf->pread = rbuf->pwrite;
- rbuf->error = 0;
-}
-
-void fci_ringbuffer_reset(struct fci_ringbuffer *rbuf)
-{
- rbuf->pread = rbuf->pwrite = 0;
- rbuf->error = 0;
-}
-
-void fci_ringbuffer_flush_spinlock_wakeup(struct fci_ringbuffer *rbuf)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&rbuf->lock, flags);
- fci_ringbuffer_flush(rbuf);
- spin_unlock_irqrestore(&rbuf->lock, flags);
-
- wake_up(&rbuf->queue);
-}
-
-ssize_t fci_ringbuffer_read_user(struct fci_ringbuffer *rbuf
- , u8 __user *buf, size_t len)
-{
- size_t todo = len;
- size_t split;
-
- split = (rbuf->pread + len > rbuf->size) ? rbuf->size - rbuf->pread : 0;
- if (split > 0) {
- if (copy_to_user(buf, rbuf->data+rbuf->pread, split))
- return -EFAULT;
- buf += split;
- todo -= split;
- rbuf->pread = 0;
- }
- if (copy_to_user(buf, rbuf->data+rbuf->pread, todo))
- return -EFAULT;
-
- rbuf->pread = (rbuf->pread + todo) % rbuf->size;
-
- return len;
-}
-
-void fci_ringbuffer_read(struct fci_ringbuffer *rbuf, u8 *buf, size_t len)
-{
- size_t todo = len;
- size_t split;
-
- split = (rbuf->pread + len > rbuf->size) ? rbuf->size - rbuf->pread : 0;
- if (split > 0) {
- memcpy(buf, rbuf->data+rbuf->pread, split);
- buf += split;
- todo -= split;
- rbuf->pread = 0;
- }
- memcpy(buf, rbuf->data+rbuf->pread, todo);
-
- rbuf->pread = (rbuf->pread + todo) % rbuf->size;
-}
-
-ssize_t fci_ringbuffer_write(struct fci_ringbuffer *rbuf
- , const u8 *buf, size_t len)
-{
- size_t todo = len;
- size_t split;
-
- split = (rbuf->pwrite + len > rbuf->size)
- ? rbuf->size - rbuf->pwrite : 0;
-
- if (split > 0) {
- memcpy(rbuf->data+rbuf->pwrite, buf, split);
- buf += split;
- todo -= split;
- rbuf->pwrite = 0;
- }
- memcpy(rbuf->data+rbuf->pwrite, buf, todo);
- rbuf->pwrite = (rbuf->pwrite + todo) % rbuf->size;
-
- return len;
-}
-
-ssize_t fci_ringbuffer_pkt_write(struct fci_ringbuffer *rbuf
- , u8 *buf, size_t len)
-{
- int status;
- ssize_t oldpwrite = rbuf->pwrite;
-
- FCI_RINGBUFFER_WRITE_BYTE(rbuf, len >> 8);
- FCI_RINGBUFFER_WRITE_BYTE(rbuf, len & 0xff);
- FCI_RINGBUFFER_WRITE_BYTE(rbuf, PKT_READY);
- status = fci_ringbuffer_write(rbuf, buf, len);
-
- if (status < 0)
- rbuf->pwrite = oldpwrite;
- return status;
-}
-
-ssize_t fci_ringbuffer_pkt_read_user(struct fci_ringbuffer *rbuf, size_t idx,
- int offset, u8 __user *buf, size_t len)
-{
- size_t todo;
- size_t split;
- size_t pktlen;
-
- pktlen = rbuf->data[idx] << 8;
- pktlen |= rbuf->data[(idx + 1) % rbuf->size];
- if (offset > pktlen)
- return -EINVAL;
- if ((offset + len) > pktlen)
- len = pktlen - offset;
-
- idx = (idx + FCI_RINGBUFFER_PKTHDRSIZE + offset) % rbuf->size;
- todo = len;
- split = ((idx + len) > rbuf->size) ? rbuf->size - idx : 0;
- if (split > 0) {
- if (copy_to_user(buf, rbuf->data+idx, split))
- return -EFAULT;
- buf += split;
- todo -= split;
- idx = 0;
- }
- if (copy_to_user(buf, rbuf->data+idx, todo))
- return -EFAULT;
-
- return len;
-}
-
-ssize_t fci_ringbuffer_pkt_read(struct fci_ringbuffer *rbuf, size_t idx,
- int offset, u8 *buf, size_t len)
-{
- size_t todo;
- size_t split;
- size_t pktlen;
-
- pktlen = rbuf->data[idx] << 8;
- pktlen |= rbuf->data[(idx + 1) % rbuf->size];
- if (offset > pktlen)
- return -EINVAL;
- if ((offset + len) > pktlen)
- len = pktlen - offset;
-
- idx = (idx + FCI_RINGBUFFER_PKTHDRSIZE + offset) % rbuf->size;
- todo = len;
- split = ((idx + len) > rbuf->size) ? rbuf->size - idx : 0;
- if (split > 0) {
- memcpy(buf, rbuf->data+idx, split);
- buf += split;
- todo -= split;
- idx = 0;
- }
- memcpy(buf, rbuf->data+idx, todo);
- return len;
-}
-
-void fci_ringbuffer_pkt_dispose(struct fci_ringbuffer *rbuf, size_t idx)
-{
- size_t pktlen;
-
- rbuf->data[(idx + 2) % rbuf->size] = PKT_DISPOSED;
-
- while (fci_ringbuffer_avail(rbuf) > FCI_RINGBUFFER_PKTHDRSIZE) {
- if (FCI_RINGBUFFER_PEEK(rbuf, 2) == PKT_DISPOSED) {
- pktlen = FCI_RINGBUFFER_PEEK(rbuf, 0) << 8;
- pktlen |= FCI_RINGBUFFER_PEEK(rbuf, 1);
- FCI_RINGBUFFER_SKIP(rbuf
- , pktlen + FCI_RINGBUFFER_PKTHDRSIZE);
- } else
- break;
- }
-}
-
-ssize_t fci_ringbuffer_pkt_next(struct fci_ringbuffer *rbuf
- , size_t idx, size_t *pktlen)
-{
- int consumed;
- int curpktlen;
- int curpktstatus;
-
- if (idx == -1)
- idx = rbuf->pread;
- else {
- curpktlen = rbuf->data[idx] << 8;
- curpktlen |= rbuf->data[(idx + 1) % rbuf->size];
- idx = (idx + curpktlen + FCI_RINGBUFFER_PKTHDRSIZE)
- % rbuf->size;
- }
-
- consumed = (idx - rbuf->pread) % rbuf->size;
-
- while ((fci_ringbuffer_avail(rbuf) - consumed)
- > FCI_RINGBUFFER_PKTHDRSIZE) {
-
- curpktlen = rbuf->data[idx] << 8;
- curpktlen |= rbuf->data[(idx + 1) % rbuf->size];
- curpktstatus = rbuf->data[(idx + 2) % rbuf->size];
-
- if (curpktstatus == PKT_READY) {
- *pktlen = curpktlen;
- return idx;
- }
-
- consumed += curpktlen + FCI_RINGBUFFER_PKTHDRSIZE;
- idx = (idx + curpktlen + FCI_RINGBUFFER_PKTHDRSIZE)
- % rbuf->size;
- }
-
- return -1;
-}
diff --git a/drivers/media/isdbt/fc8150/fci_ringbuffer.h b/drivers/media/isdbt/fc8150/fci_ringbuffer.h
deleted file mode 100644
index 0d1a2cc..0000000
--- a/drivers/media/isdbt/fc8150/fci_ringbuffer.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2010 FCI Inc. All Rights Reserved
-
- File name : fci_ringbuffer.h
-
- Description :
-
- History :
- ----------------------------------------------------------------------
- 2010/11/25 aslan.cho initial
-*******************************************************************************/
-
-#ifndef __FCI_RINGBUFFER_H__
-#define __FCI_RINGBUFFER_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <linux/spinlock.h>
-#include <linux/wait.h>
-
-struct fci_ringbuffer {
- u8 *data;
- ssize_t size;
- ssize_t pread;
- ssize_t pwrite;
- int error;
-
- wait_queue_head_t queue;
- spinlock_t lock;
-};
-
-#define FCI_RINGBUFFER_PKTHDRSIZE 3
-
-extern void fci_ringbuffer_init(struct fci_ringbuffer *rbuf
- , void *data, size_t len);
-
-extern int fci_ringbuffer_empty(struct fci_ringbuffer *rbuf);
-
-extern ssize_t fci_ringbuffer_free(struct fci_ringbuffer *rbuf);
-
-extern ssize_t fci_ringbuffer_avail(struct fci_ringbuffer *rbuf);
-
-extern void fci_ringbuffer_reset(struct fci_ringbuffer *rbuf);
-
-extern void fci_ringbuffer_flush(struct fci_ringbuffer *rbuf);
-
-extern void fci_ringbuffer_flush_spinlock_wakeup(struct fci_ringbuffer *rbuf);
-
-#define FCI_RINGBUFFER_PEEK(rbuf, offs) \
- ((rbuf)->data[((rbuf)->pread+(offs)) % (rbuf)->size])
-
-#define FCI_RINGBUFFER_SKIP(rbuf, num) \
- ((rbuf)->pread = ((rbuf)->pread+(num)) % (rbuf)->size)
-
-extern ssize_t fci_ringbuffer_read_user(struct fci_ringbuffer *rbuf
-, u8 __user *buf, size_t len);
-
-extern void fci_ringbuffer_read(struct fci_ringbuffer *rbuf
- , u8 *buf, size_t len);
-
-
-#define FCI_RINGBUFFER_WRITE_BYTE(rbuf, byte) \
- { (rbuf)->data[(rbuf)->pwrite] = (byte); \
- (rbuf)->pwrite = ((rbuf)->pwrite + 1) % (rbuf)->size; }
-
-extern ssize_t fci_ringbuffer_write(struct fci_ringbuffer *rbuf
- , const u8 *buf, size_t len);
-
-extern ssize_t fci_ringbuffer_pkt_write(struct fci_ringbuffer *rbuf
- , u8 *buf, size_t len);
-
-extern ssize_t fci_ringbuffer_pkt_read_user(struct fci_ringbuffer *rbuf
- , size_t idx, int offset, u8 __user *buf, size_t len);
-
-extern ssize_t fci_ringbuffer_pkt_read(struct fci_ringbuffer *rbuf
- , size_t idx, int offset, u8 *buf, size_t len);
-
-extern void fci_ringbuffer_pkt_dispose(struct fci_ringbuffer *rbuf, size_t idx);
-
-extern ssize_t fci_ringbuffer_pkt_next(struct fci_ringbuffer *rbuf
- , size_t idx, size_t *pktlen);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fci_tun.c b/drivers/media/isdbt/fc8150/fci_tun.c
deleted file mode 100644
index a369487..0000000
--- a/drivers/media/isdbt/fc8150/fci_tun.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fci_tun.c
-
- Description : tuner control driver
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fci_hal.h"
-#include "fci_tun.h"
-#include "fci_i2c.h"
-#include "fci_bypass.h"
-#include "fc8150_regs.h"
-#include "fc8150_bb.h"
-#include "fc8150_tun.h"
-
-
-#define FC8150_TUNER_ADDR 0x5b
-
-static u8 tuner_addr = FC8150_TUNER_ADDR;
-static enum band_type tuner_band = ISDBT_1_SEG_TYPE;
-static enum i2c_type tuner_i2c = FCI_I2C_TYPE;
-
-struct I2C_DRV {
- int (*init)(HANDLE hDevice, int speed, int slaveaddr);
- int (*read)(HANDLE hDevice, u8 chip, u8 addr
- , u8 alen, u8 *data, u8 len);
- int (*write)(HANDLE hDevice, u8 chip, u8 addr
- , u8 alen, u8 *data, u8 len);
- int (*deinit)(HANDLE hDevice);
-};
-
-static struct I2C_DRV fcii2c = {
- &fci_i2c_init,
- &fci_i2c_read,
- &fci_i2c_write,
- &fci_i2c_deinit
-};
-
-static struct I2C_DRV fcibypass = {
- &fci_bypass_init,
- &fci_bypass_read,
- &fci_bypass_write,
- &fci_bypass_deinit
-};
-
-struct TUNER_DRV {
- int (*init)(HANDLE hDevice, enum band_type band);
- int (*set_freq)(HANDLE hDevice
- , enum band_type band, u32 rf_Khz);
- int (*get_rssi)(HANDLE hDevice, int *rssi);
- int (*deinit)(HANDLE hDevice);
-};
-
-static struct TUNER_DRV fc8150_tuner = {
- &fc8150_tuner_init,
- &fc8150_set_freq,
- &fc8150_get_rssi,
- &fc8150_tuner_deinit
-};
-
-#if 0
-static TUNER_DRV fc8151_tuner = {
- &fc8151_tuner_init,
- &fc8151_set_freq,
- &fc8151_get_rssi,
- &fc8151_tuner_deinit
-};
-#endif
-
-static struct I2C_DRV *tuner_ctrl = &fcii2c;
-static struct TUNER_DRV *tuner = &fc8150_tuner;
-
-int tuner_ctrl_select(HANDLE hDevice, enum i2c_type type)
-{
- switch (type) {
- case FCI_I2C_TYPE:
- tuner_ctrl = &fcii2c;
- break;
- case FCI_BYPASS_TYPE:
- tuner_ctrl = &fcibypass;
- break;
- default:
- return BBM_E_TN_CTRL_SELECT;
- }
-
- if (tuner_ctrl->init(hDevice, 600, 0))
- return BBM_E_TN_CTRL_INIT;
-
- tuner_i2c = type;
-
- return BBM_OK;
-}
-
-int tuner_ctrl_deselect(HANDLE hDevice)
-{
- if (tuner_ctrl == NULL)
- return BBM_E_TN_CTRL_SELECT;
-
- tuner_ctrl->deinit(hDevice);
-
- tuner_i2c = FCI_I2C_TYPE;
- tuner_ctrl = &fcii2c;
-
- return BBM_OK;
-}
-
-int tuner_i2c_read(HANDLE hDevice, u8 addr, u8 alen, u8 *data, u8 len)
-{
- if (tuner_ctrl == NULL)
- return BBM_E_TN_CTRL_SELECT;
-
- if (tuner_ctrl->read(hDevice, tuner_addr, addr, alen, data, len))
- return BBM_E_TN_READ;
-
- return BBM_OK;
-}
-
-int tuner_i2c_write(HANDLE hDevice, u8 addr, u8 alen, u8 *data, u8 len)
-{
- if (tuner_ctrl == NULL)
- return BBM_E_TN_CTRL_SELECT;
-
- if (tuner_ctrl->write(hDevice, tuner_addr, addr, alen, data, len))
- return BBM_E_TN_WRITE;
-
- return BBM_OK;
-}
-
-int tuner_set_freq(HANDLE hDevice, u32 freq)
-{
- if (tuner == NULL)
- return BBM_E_TN_SELECT;
-
-#if (BBM_BAND_WIDTH == 8)
- freq -= 460;
-#else
- freq -= 380;
-#endif
-
- if (tuner->set_freq(hDevice, tuner_band, freq))
- return BBM_E_TN_SET_FREQ;
-
- fc8150_reset(hDevice);
-
- return BBM_OK;
-}
-
-int tuner_select(HANDLE hDevice, u32 product, u32 band)
-{
- switch (product) {
- case FC8150_TUNER:
- tuner = &fc8150_tuner;
- tuner_addr = FC8150_TUNER_ADDR;
- tuner_band = band;
- break;
-#if 0
- case FC8151_TUNER:
- tuner = &fc8151_tuner;
- tuner_addr = FC8150_TUNER_ADDR;
- tuner_band = band;
- break;
-#endif
- default:
- return BBM_E_TN_SELECT;
- }
-
- if (tuner == NULL)
- return BBM_E_TN_SELECT;
-
- if (tuner_i2c == FCI_BYPASS_TYPE)
- bbm_write(hDevice, BBM_RF_DEVID, tuner_addr);
-
- if (tuner->init(hDevice, tuner_band))
- return BBM_E_TN_INIT;
-
- return BBM_OK;
-}
-
-int tuner_deselect(HANDLE hDevice)
-{
- if (tuner == NULL)
- return BBM_E_TN_SELECT;
-
- if (tuner->deinit(hDevice))
- return BBM_NOK;
-
- tuner = NULL;
-
- return BBM_OK;
-}
-
-int tuner_get_rssi(HANDLE hDevice, s32 *rssi)
-{
- if (tuner == NULL)
- return BBM_E_TN_SELECT;
-
- if (tuner->get_rssi(hDevice, rssi))
- return BBM_E_TN_RSSI;
-
- return BBM_OK;
-}
diff --git a/drivers/media/isdbt/fc8150/fci_tun.h b/drivers/media/isdbt/fc8150/fci_tun.h
deleted file mode 100644
index f81c522..0000000
--- a/drivers/media/isdbt/fc8150/fci_tun.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fci_tun.h
-
- Description : tuner control driver
-*******************************************************************************/
-
-#ifndef __FCI_TUN_H__
-#define __FCI_TUN_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "fci_types.h"
-
-enum i2c_type {
- FCI_I2C_TYPE = 0,
- FCI_BYPASS_TYPE = 1
-};
-
-enum band_type {
- ISDBT_1_SEG_TYPE = 2
-};
-
-enum product_type {
- FC8150_TUNER = 8150,
- FC8151_TUNER = 8151
-};
-
-extern int tuner_ctrl_select(HANDLE hDevice, enum i2c_type type);
-extern int tuner_ctrl_deselect(HANDLE hDevice);
-extern int tuner_select(HANDLE hDevice, u32 product, u32 band);
-extern int tuner_deselect(HANDLE hDevice);
-
-extern int tuner_i2c_read(HANDLE hDevice, u8 addr, u8 alen, u8 *data, u8 len);
-extern int tuner_i2c_write(HANDLE hDevice, u8 addr, u8 alen, u8 *data, u8 len);
-extern int tuner_set_freq(HANDLE hDevice, u32 freq);
-extern int tuner_get_rssi(HANDLE hDevice, s32 *rssi);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/fc8150/fci_types.h b/drivers/media/isdbt/fc8150/fci_types.h
deleted file mode 100644
index 95b5ca8..0000000
--- a/drivers/media/isdbt/fc8150/fci_types.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2012 FCI Inc. All Rights Reserved
-
- File name : fci_types.h
-
- Description :
-*******************************************************************************/
-
-#ifndef __FCI_TYPES_H__
-#define __FCI_TYPES_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef HANDLE
-#define HANDLE void *
-#endif
-
-#define BBM_HPI 0
-#define BBM_SPI 1
-#define BBM_USB 2
-#define BBM_I2C 3
-#define BBM_PPI 4
-#define BBM_SPIB 5
-
-#define s8 signed char
-#define s16 signed short int
-#define s32 signed int
-#define u8 unsigned char
-#define u16 unsigned short
-#define u32 unsigned int
-#define TRUE 1
-#define FALSE 0
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#define BBM_OK 0
-#define BBM_NOK 1
-
-#define BBM_E_FAIL 0x00000001
-#define BBM_E_HOSTIF_SELECT 0x00000002
-#define BBM_E_HOSTIF_INIT 0x00000003
-#define BBM_E_BB_WRITE 0x00000100
-#define BBM_E_BB_READ 0x00000101
-#define BBM_E_TN_WRITE 0x00000200
-#define BBM_E_TN_READ 0x00000201
-#define BBM_E_TN_CTRL_SELECT 0x00000202
-#define BBM_E_TN_CTRL_INIT 0x00000203
-#define BBM_E_TN_SELECT 0x00000204
-#define BBM_E_TN_INIT 0x00000205
-#define BBM_E_TN_RSSI 0x00000206
-#define BBM_E_TN_SET_FREQ 0x00000207
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/drivers/media/isdbt/isdbt.c b/drivers/media/isdbt/isdbt.c
deleted file mode 100644
index da08bc0..0000000
--- a/drivers/media/isdbt/isdbt.c
+++ /dev/null
@@ -1,598 +0,0 @@
-/************************************************************
- * /drivers/media/isdbt/isdbt.c
- *
- * ISDBT DRIVER
- *
- *
- * Copyright (c) 2011 Samsung Electronics
- *
- * http://www.samsung.com
- *
- ***********************************************************/
-
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/mutex.h>
-#include <linux/uaccess.h>
-#include <linux/miscdevice.h>
-#include <linux/spi/spi.h>
-#include <linux/delay.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/platform_device.h>
-#include <plat/gpio-cfg.h>
-#include <plat/s3c64xx-spi.h>
-#include <linux/vmalloc.h>
-#include <linux/workqueue.h>
-#include "isdbt.h"
-
-#define SPI_FIND_HEADER_IN_BUFFER
-/* #define SPI_WRITE_BUF */
-
-#define DATA_PACKET_SIZE 188
-#define DATA_PACKET_CNT 128
-#define SPI_BURST_READ_SIZE (DATA_PACKET_SIZE * DATA_PACKET_CNT)
-#define SPI_DATA_FRAME_BUF (SPI_BURST_READ_SIZE * 10)
-
-#define SPI_READ_TIMEOUT (SPI_BURST_READ_SIZE/40 + 10)
-
-#define READ_PACKET_MARGIN (DATA_PACKET_SIZE/2)
-
-#define HEADER_OF_VALID_PACKET 0x47
-#define INVALID_PACKET_CHECK_CNT 3
-
-#define CS_INT_MODE() S3C_GPIO_SFN(0xf)
-#define CS_SPI_MODE() S3C_GPIO_SFN(0x2)
-
-#define SPIDEV_WARMUP_DELAY 300
-
-#define DEVICE_NAME "isdbtdata"
-
-typedef struct{
- int index;
- int init_info;
- unsigned char *rBuf;
- unsigned char *wBuf;
- struct mutex buflock;
- struct completion xfer_completion;
- struct completion overflow_completion;
- long xfer_size;
- int xfer_result;
- struct class *isdbt_class;
- struct device *isdbt_debug_dev;
- struct spi_device *spidev;
- unsigned char *RingBuf;
- long ring_buf_wr_pos;
- long ring_buf_rd_pos;
- int buf_over_flow;
- struct workqueue_struct *read_workqueue;
- struct work_struct work_read_spi;
- unsigned long pkt_err_cnt;
-} isdbt_spi_info;
-
-static isdbt_spi_info *isdbt_data;
-
-static ssize_t isdbt_status_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- isdbt_spi_info *pdev = dev_get_drvdata(dev);
- int result = 0;
-
- if (pdev->init_info == 0)
- result = 0;
- else
- result = 1;
-
- return sprintf(buf, " %s \n wr_pos : [ %lx ]\n rd_pos : [ %lx ] \n pkt_err_cnt [ %lx ]\n",
- (result & 1) ? "active" : "deactive", pdev->ring_buf_wr_pos,
- pdev->ring_buf_rd_pos, pdev->pkt_err_cnt);
-}
-static DEVICE_ATTR(isdbt_status, 0666, isdbt_status_show, NULL);
-
-
-static int fc8100_spi_read(struct spi_device *spidev, u8 *buf, size_t len)
-{
- struct spi_message msg;
- struct spi_transfer transfer;
- int status = 0;
- int result = 0;
-
- memset(&msg, 0, sizeof(msg));
- memset(&transfer, 0, sizeof(transfer));
-
- spi_message_init(&msg);
- msg.spi = spidev;
-
- transfer.tx_buf = (unsigned char *)NULL;
- transfer.rx_buf = (unsigned char *)buf;
- transfer.len = len;
- transfer.bits_per_word = 8;
- transfer.delay_usecs = 0;
-
- spi_message_add_tail(&transfer, &msg);
- status = spi_sync(spidev, &msg);
-
- if (status == 0)
- result = msg.actual_length;
- else
- result = status;
-
- return result;
-}
-
-
-
-static int fc8100_spi_write(struct spi_device *spidev, u8 *buf, size_t len)
-{
- struct spi_message msg;
- struct spi_transfer transfer;
- int status = 0;
- int result = 0;
-
- memset(&msg, 0, sizeof(msg));
- memset(&transfer, 0, sizeof(transfer));
-
- spi_message_init(&msg);
- msg.spi = spidev;
-
- transfer.tx_buf = (unsigned char *)buf;
- transfer.rx_buf = (unsigned char *)NULL;
- transfer.len = len;
- transfer.bits_per_word = 8;
- transfer.delay_usecs = 0;
-
- spi_message_add_tail(&transfer, &msg);
- status = spi_sync(spidev, &msg);
-
- if (status == 0)
- result = msg.actual_length;
- else
- result = status;
-
- return result;
-}
-
-static int fc8100_spi_probe(struct spi_device *spi)
-{
- int ret = -EINVAL;
- isdbt_spi_info *pdev;
-
- pdev = kmalloc(sizeof(isdbt_spi_info), GFP_KERNEL);
- if (pdev == NULL) {
- I_DEV_DBG(" memory allocation failed ");
- ret = -ENOMEM;
- goto done;
- }
- memset(pdev, 0, sizeof(isdbt_spi_info));
-
- pdev->isdbt_class = class_create(THIS_MODULE, "isdbt");
- if (IS_ERR(pdev->isdbt_class)) {
- I_DEV_DBG(" could not create isdbt_class");
- goto err_class_create;
- }
-
- pdev->isdbt_debug_dev = device_create(pdev->isdbt_class,
- NULL, 0, NULL, "isdbt_status");
- if (IS_ERR(pdev->isdbt_debug_dev)) {
- I_DEV_DBG(" could not create isdbt_status file");
- goto err_device_create;
- }
-
- if (device_create_file(pdev->isdbt_debug_dev,
- &dev_attr_isdbt_status) < 0) {
- I_DEV_DBG(" could not create device file(%s)",
- dev_attr_isdbt_status.attr.name);
- goto err_device_create_file;
- }
-
- pdev->spidev = spi;
- pdev->spidev->mode = (SPI_MODE_0|SPI_CS_HIGH);
- pdev->spidev->bits_per_word = 8;
-
- dev_set_drvdata(pdev->isdbt_debug_dev, pdev);
-
- ret = spi_setup(pdev->spidev);
-
- spi_set_drvdata(spi, pdev);
- isdbt_data = pdev;
-
- I_DEV_DBG("Probe %s ,[ %d ]", (ret & 1) ? "ERROR" : "SUCCESS" , ret);
- goto done;
-
-err_device_create_file:
- device_destroy(pdev->isdbt_class, 0);
-err_device_create:
- class_destroy(pdev->isdbt_class);
-err_class_create:
- kfree(pdev);
-done:
- return ret;
-}
-
-static int fc8100_spi_remove(struct spi_device *spi)
-{
- isdbt_spi_info *pdev = spi_get_drvdata(spi);
-
- device_destroy(pdev->isdbt_class, 0);
- class_destroy(pdev->isdbt_class);
- kfree(pdev);
- isdbt_data = NULL;
- I_DEV_DBG("");
- return 0;
-}
-
-static struct spi_driver fc8100_spi_driver = {
- .driver = {
- .name = "isdbtspi",
- .bus = &spi_bus_type,
- .owner = THIS_MODULE,
- },
- .probe = fc8100_spi_probe,
- .remove = __devexit_p(fc8100_spi_remove),
-};
-
-static int fc8100_spi_driver_init(void)
-{
- int ret = 0;
-
- ret = spi_register_driver(&fc8100_spi_driver);
-
- I_DEV_DBG("FC8100 SPI DRIVER %s , ret = [ %d ]",
- (ret & 1) ? "ERROR" : " INIT ", ret);
-
- return ret;
-}
-
-static void fc8100_spi_exit(void)
-{
- I_DEV_DBG("");
- spi_unregister_driver(&fc8100_spi_driver);
- return;
-}
-
-static void IsValied_packet_check(isdbt_spi_info *pdev)
-{
- int cnt = 0;
-
- /* Find Header */
- while (1) {
- if ((pdev->rBuf[cnt] == HEADER_OF_VALID_PACKET)
- && (pdev->rBuf[cnt + DATA_PACKET_SIZE] == HEADER_OF_VALID_PACKET)
- && (pdev->rBuf[cnt + (DATA_PACKET_SIZE*2)] == HEADER_OF_VALID_PACKET)) {
- break;
- }
-
- if (cnt > READ_PACKET_MARGIN) {
- pdev->pkt_err_cnt++;
- I_DEV_DBG(" FIND ====== ERROR cnt = %d, pkt_err_cnt = %d ",
- cnt, pdev->pkt_err_cnt);
- pdev->xfer_result = -EINVAL;
- break;
- }
- cnt++;
- }
-
- if (pdev->xfer_result == pdev->xfer_size) {
- mutex_lock(&pdev->buflock);
- if (pdev->ring_buf_wr_pos + cnt > SPI_DATA_FRAME_BUF) {
- pdev->ring_buf_wr_pos = 0;
- pdev->buf_over_flow = 1;
- complete(&pdev->overflow_completion);
- }
- memcpy(&pdev->RingBuf[pdev->ring_buf_wr_pos],
- &pdev->rBuf[cnt], pdev->xfer_result);
- pdev->ring_buf_wr_pos += pdev->xfer_result;
- pdev->index = 1;
- mutex_unlock(&pdev->buflock);
- complete(&pdev->xfer_completion);
- }
-
- return;
-}
-
-void isdbt_work_queue_spi_read_buf(struct work_struct *work)
-{
- isdbt_spi_info *pdev = container_of(work, isdbt_spi_info, work_read_spi);
- struct s3c64xx_spi_csinfo *cs = pdev->spidev->controller_data;
-
- disable_irq(gpio_to_irq(cs->line));
- s3c_gpio_cfgpin(cs->line, CS_SPI_MODE());
- udelay(SPIDEV_WARMUP_DELAY);
- INIT_COMPLETION(pdev->xfer_completion);
- pdev->xfer_size = SPI_BURST_READ_SIZE + READ_PACKET_MARGIN ;
- pdev->xfer_result = fc8100_spi_read(pdev->spidev,
- pdev->rBuf, pdev->xfer_size);
- pdev->xfer_size -= READ_PACKET_MARGIN;
- pdev->xfer_result -= READ_PACKET_MARGIN;
-
- s3c_gpio_cfgpin(cs->line, CS_INT_MODE());
- enable_irq(gpio_to_irq(cs->line));
-
- if ((pdev->xfer_result != pdev->xfer_size)
- || (pdev->xfer_result < DATA_PACKET_SIZE*INVALID_PACKET_CHECK_CNT)) {
- I_DEV_DBG(" Packet read failed = %d", pdev->xfer_result);
- pdev->xfer_result = -EINVAL;
- } else {
- IsValied_packet_check(pdev);
- }
-
- return;
-}
-
-
-static irqreturn_t isdbt_read_data_threaded_irq(int irq, void *data)
-{
- isdbt_spi_info *pdev = (isdbt_spi_info *)(data);
- queue_work(pdev->read_workqueue, &pdev->work_read_spi);
- return IRQ_HANDLED;
-}
-
-static int isdbt_open(struct inode *inode, struct file *filp)
-{
- int status = 0;
- isdbt_spi_info *pdev;
- struct s3c64xx_spi_csinfo *cs;
- I_DEV_DBG("");
-
- pdev = isdbt_data;
-
- if (pdev->init_info == 1) {
- I_DEV_DBG("Already open....");
- return status;
- }
-
- pdev->index = 0;
- pdev->ring_buf_wr_pos = 0;
- pdev->ring_buf_rd_pos = 0;
- pdev->buf_over_flow = 0;
-
- cs = pdev->spidev->controller_data;
-
- pdev->rBuf = kmalloc(SPI_BURST_READ_SIZE+(DATA_PACKET_SIZE*5), GFP_KERNEL);
- if (pdev->rBuf == NULL) {
- I_DEV_DBG(" rBuf :: kamlloc failed");
- status = -ENOMEM;
- goto err_malloc_rBuf;
- }
- pdev->RingBuf = vmalloc(SPI_DATA_FRAME_BUF);
- if (pdev->RingBuf == NULL) {
- I_DEV_DBG(" ring buf :: malloc failed");
- status = -ENOMEM;
- goto err_malloc_ringbuf;
- }
-#if defined(SPI_WRITE_BUF)
- pdev->wBuf = kmalloc(SPI_BURST_READ_SIZE+(DATA_PACKET_SIZE*5), GFP_KERNEL);
- if (pdev->wBuf == NULL) {
- I_DEV_DBG(" wBuf :: kmalloc failed");
- status = -ENOMEM;
- goto err_malloc_wBuf;
- }
-#endif
- filp->private_data = pdev;
- mutex_init(&pdev->buflock);
-
- pdev->read_workqueue = create_singlethread_workqueue("isdbtd");
- if (pdev->read_workqueue == 0) {
- I_DEV_DBG(" ERROR : register workqueue");
- goto err_register_queue;
- }
- INIT_WORK(&pdev->work_read_spi, isdbt_work_queue_spi_read_buf);
-
- init_completion(&pdev->xfer_completion);
- init_completion(&pdev->overflow_completion);
-
- status = request_threaded_irq(gpio_to_irq(cs->line), NULL,
- isdbt_read_data_threaded_irq, IRQF_DISABLED, "isdbt_irq", pdev);
- if (status != 0) {
- I_DEV_DBG(" ERROR : request_threaded_irq failed = [ %d ]", status);
- I_DEV_DBG("filp private_data=0x%x. ", (unsigned int)filp->private_data);
- status = -EINVAL;
- goto err_register_isr;
- }
- disable_irq(gpio_to_irq(cs->line));
- s3c_gpio_cfgpin(cs->line, CS_INT_MODE());
- set_irq_type(gpio_to_irq(cs->line), IRQ_TYPE_EDGE_RISING);
-
- I_DEV_DBG("");
- s3c_gpio_cfgpin(cs->line, CS_INT_MODE());
- enable_irq(gpio_to_irq(cs->line));
-
- status = 0;
- goto done;
-err_register_isr:
- free_irq(gpio_to_irq(cs->line), pdev);
- flush_workqueue(pdev->read_workqueue);
-#if defined(SPI_WRITE_BUF)
- kfree(pdev->wBuf);
-#endif
-err_register_queue:
- destroy_workqueue(pdev->read_workqueue);
-#if defined(SPI_WRITE_BUF)
-err_malloc_wBuf:
- pdev->wBuf = NULL;
-#endif
- vfree(pdev->RingBuf);
-err_malloc_ringbuf:
- pdev->RingBuf = NULL;
- kfree(pdev->rBuf);
-err_malloc_rBuf:
- pdev->rBuf = NULL;
-done:
- if (status == 0)
- pdev->init_info = 1;
- return status;
-}
-
-static int isdbt_release(struct inode *inode, struct file *filp)
-{
- isdbt_spi_info *pdev = (isdbt_spi_info *)(filp->private_data);
- struct s3c64xx_spi_csinfo *cs = pdev->spidev->controller_data;
-
- if (pdev->init_info == 0) {
- I_DEV_DBG(" Already release... ");
- return 0;
- }
-
- cancel_work_sync(&pdev->work_read_spi);
- free_irq(gpio_to_irq(cs->line), pdev);
-
- flush_work(&pdev->work_read_spi);
- flush_workqueue(pdev->read_workqueue);
- destroy_workqueue(pdev->read_workqueue);
-
- vfree(pdev->RingBuf);
- pdev->RingBuf = NULL;
-
-#if defined(SPI_WRITE_BUF)
- kfree(pdev->wBuf);
-#endif
- pdev->wBuf = NULL;
-
- kfree(pdev->rBuf);
- pdev->rBuf = NULL;
-
- pdev->init_info = 0;
- return 0;
-}
-
-static int isdbt_read(struct file *filp, char *buf, size_t count, loff_t *f_pos)
-{
- int result = 0;
- int status = 0;
- int unused_packet = 0;
-
- unsigned long timeout = 0;
- isdbt_spi_info *pdev = (isdbt_spi_info *)(filp->private_data);
-
- if (pdev->index == 0) {
- msleep(100);
- return -EIO;
- }
-
- if (pdev->ring_buf_rd_pos+count <= SPI_DATA_FRAME_BUF) {
- if (pdev->buf_over_flow == 0) {
- if (pdev->ring_buf_rd_pos+count > pdev->ring_buf_wr_pos) {
- timeout = wait_for_completion_timeout(&pdev->xfer_completion,
- msecs_to_jiffies(SPI_READ_TIMEOUT));
- I_DEV_DBG(" xfer timeout = %ld ", timeout);
- if (timeout == 0)
- result = -ETIMEDOUT;
- }
- }
- } else {
- if (!pdev->buf_over_flow) {
- wait_for_completion_timeout(&pdev->overflow_completion,
- msecs_to_jiffies(SPI_READ_TIMEOUT));
- INIT_COMPLETION(pdev->overflow_completion);
- I_DEV_DBG(" overflow timeout = %ld ", timeout);
- if (timeout == 0)
- result = -ETIMEDOUT;
- }
-
- pdev->buf_over_flow = 0;
- pdev->ring_buf_rd_pos = 0;
- if (pdev->ring_buf_rd_pos+count > pdev->ring_buf_wr_pos) {
- wait_for_completion_timeout(&pdev->xfer_completion,
- msecs_to_jiffies(SPI_READ_TIMEOUT));
- I_DEV_DBG(" over xfer timeout = %ld ", timeout);
- if (timeout == 0)
- result = -ETIMEDOUT;
- }
- }
-
- unused_packet = pdev->ring_buf_wr_pos - pdev->ring_buf_rd_pos+count;
- if (pdev->buf_over_flow)
- unused_packet += SPI_DATA_FRAME_BUF;
-
- if (result == 0) {
- mutex_lock(&pdev->buflock);
- status = copy_to_user(buf, &pdev->RingBuf[pdev->ring_buf_rd_pos], count);
- if (status < 0) {
- I_DEV_DBG(" copy user failed ");
- result = -EFAULT;
- } else {
- result = count;
- pdev->ring_buf_rd_pos += result;
- }
- mutex_unlock(&pdev->buflock);
- if ((SPI_DATA_FRAME_BUF/5) < unused_packet) {
- msleep(40);
- I_DEV_DBG(" read write gap : %d ", unused_packet);
- } else
- msleep(80);
- }
- I_DEV_DBG(" rd pos %lx , unused %x", pdev->ring_buf_rd_pos, unused_packet);
-
- return result;
-}
-
-static ssize_t isdbt_write(struct file *filp, const char *buf, size_t count, loff_t *f_pos)
-{
- int result = 0;
- int status = 0;
- isdbt_spi_info *pdev = (isdbt_spi_info *)(filp->private_data);
-
- mutex_lock(&pdev->buflock);
-
- status = copy_from_user(pdev->wBuf, buf, count);
- if (status < 0) {
- I_DEV_DBG(" copy user failed ");
- result = -EINVAL;
- }
-
- result = fc8100_spi_write(pdev->spidev, pdev->wBuf, count);
-
- if (result < 0)
- I_DEV_DBG(" write failed = %d ", result);
-
- mutex_unlock(&pdev->buflock);
-
- return result;
-}
-
-
-static struct file_operations isdbt_spi_fops = {
- .owner = THIS_MODULE,
- .open = isdbt_open,
- .release = isdbt_release,
- .read = isdbt_read,
- .write = isdbt_write,
-};
-
-static struct miscdevice isdbt_spi_misc_dev = {
- .minor = MISC_DYNAMIC_MINOR,
- .name = DEVICE_NAME,
- .fops = &isdbt_spi_fops,
-};
-
-static int __init isdbt_spi_init(void)
-{
- int ret = 0;
-
- I_DEV_DBG("");
-
- ret = misc_register(&isdbt_spi_misc_dev);
-
- if (ret < 0)
- I_DEV_DBG(" ERROR ");
- else
- ret = fc8100_spi_driver_init();
-
- return ret;
-}
-module_init(isdbt_spi_init);
-
-static void __exit isdbt_spi_exit(void)
-{
- I_DEV_DBG("");
- fc8100_spi_exit();
- misc_deregister(&isdbt_spi_misc_dev);
-}
-module_exit(isdbt_spi_exit);
-
-MODULE_DESCRIPTION(" ISDBT DRIVER - FC8100 ");
-MODULE_AUTHOR("xmoondash");
-MODULE_LICENSE("GPL");
diff --git a/drivers/media/isdbt/isdbt.h b/drivers/media/isdbt/isdbt.h
deleted file mode 100644
index cc56503..0000000
--- a/drivers/media/isdbt/isdbt.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/************************************************************
- * /drivers/media/isdbt/isdbt.c
- *
- * ISDBT DRIVER
- *
- *
- * Copyright (c) 2011 Samsung Electronics
- *
- * http://www.samsung.com
- *
- ***********************************************************/
-#ifndef __ISDBT_H__
-#define __ISDBT_H__
-
-/* #define DEBUG_MSG_SPI */
-
-#ifdef DEBUG_MSG_SPI
-#define SUBJECT "ISDBT-SPI-DRIVER"
-#define I_DEV_DBG(format, ...) \
- printk("[ "SUBJECT " (%s,%d) ] " format "\n", __func__, __LINE__, ## __VA_ARGS__)
-
-#else
-#define I_DEV_DBG(format, ...)
-#endif
-
-#endif
diff --git a/drivers/media/tdmb/Kconfig b/drivers/media/tdmb/Kconfig
deleted file mode 100644
index 10a51b0..0000000
--- a/drivers/media/tdmb/Kconfig
+++ /dev/null
@@ -1,89 +0,0 @@
-#
-# TDMB config states
-#
-
-#klaatu TDMB
-config TDMB
- bool "T-DMB"
- help
- This allows T-DMB support for Korea.
- This module is designed for SPI or EBI2.
- Select chipset and interface
-
-choice
- depends on TDMB
- depends on TDMB_VENDOR_FCI || TDMB_VENDOR_RAONTECH \
- || TDMB_VENDOR_INC || TDMB_VENDOR_TELECHIPS
- prompt "interface"
- default TDMB_SPI
- config TDMB_SPI
- bool "SPI"
- config TDMB_EBI
- bool "EBI"
- config TDMB_TSIF
- bool "TSIF"
-endchoice
-
- config TDMB_VENDOR_FCI
- depends on TDMB
- bool "FCI"
-
-choice
- depends on TDMB && TDMB_VENDOR_FCI
- prompt "chip"
- default TDMB_FC8053
- config TDMB_FC8053
- bool "FC8053"
- config TDMB_FC8050
- bool "FC8050"
-endchoice
-
-config TDMB_VENDOR_INC
- depends on TDMB
- bool "I&C"
-
-choice
- depends on TDMB && TDMB_VENDOR_INC
- prompt "chip"
- default TDMB_T39F0
- config TDMB_T39F0
- bool "T39F0"
- config TDMB_T3900
- bool "T3900"
- config TDMB_T3700
- bool "T3700"
- config TDMB_T3300
- bool "T3300"
-endchoice
-
-config TDMB_VENDOR_RAONTECH
- depends on TDMB
- bool "Raontech"
-
-choice
- depends on TDMB && TDMB_VENDOR_RAONTECH
- prompt "chip"
- default TDMB_MTV318
- config TDMB_MTV318
- bool "MTV318"
-endchoice
-
-config TDMB_VENDOR_TELECHIPS
- depends on TDMB
- bool "Telechips"
-
-choice
- depends on TDMB && TDMB_VENDOR_TELECHIPS
- prompt "chip"
- default TDMB_TCC3170
- config TDMB_TCC3170
- bool "TCC3170"
-endchoice
-
-config TDMB_SIMUL
- depends on TDMB
- bool "Simulation"
-
-config TDMB_ANT_DET
- depends on TDMB
- bool "tdmb antenna detector"
diff --git a/drivers/media/tdmb/Makefile b/drivers/media/tdmb/Makefile
deleted file mode 100644
index 8bc2221..0000000
--- a/drivers/media/tdmb/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Makefile for TDMB Device Drivers.
-#
-
-ccflags-y += -Idrivers/media/tdmb
-ccflags-y += -v
-
-obj-$(CONFIG_TDMB) += tdmb.o tdmb_data.o
-
-# T39F0
-ccflags-$(CONFIG_TDMB_T39F0) += -Idrivers/media/tdmb/t39f0
-obj-$(CONFIG_TDMB_T39F0) += tdmb_port_t3900.o
-obj-$(CONFIG_TDMB_T39F0) += t3900/
-# T3900
-ccflags-$(CONFIG_TDMB_T3900) += -Idrivers/media/tdmb/t3900
-obj-$(CONFIG_TDMB_T3900) += tdmb_port_t3900.o
-obj-$(CONFIG_TDMB_T3900) += t3900/
-# FC8050
-ccflags-$(CONFIG_TDMB_FC8050) += -Idrivers/media/tdmb/fc8050
-obj-$(CONFIG_TDMB_FC8050) += tdmb_port_fc8050.o
-obj-$(CONFIG_TDMB_FC8050) += fc8050/
-# MTV318
-ccflags-$(CONFIG_TDMB_MTV318) += -Idrivers/media/tdmb/mtv318
-obj-$(CONFIG_TDMB_MTV318) += tdmb_port_mtv318.o
-obj-$(CONFIG_TDMB_MTV318) += mtv318/
-# TCC3170
-ccflags-$(CONFIG_TDMB_TCC3170) += -Idrivers/media/tdmb/tcc3170
-ccflags-$(CONFIG_TDMB_TCC3170) += -Idrivers/media/tdmb/tcc3170/inc
-ccflags-$(CONFIG_TDMB_TCC3170) += -Idrivers/media/tdmb/tcc3170/inc/tcpal
-ccflags-$(CONFIG_TDMB_TCC3170) += -Idrivers/media/tdmb/tcc3170/inc/tcbd_diagnosis
-ccflags-$(CONFIG_TDMB_TCC3170) += -Idrivers/media/tdmb/tcc3170/inc/tcbd_stream_parser
-ccflags-$(CONFIG_TDMB_TCC3170) += -Idrivers/media/tdmb/tcc3170/inc/tcc_fic_decoder
-obj-$(CONFIG_TDMB_TCC3170) += tdmb_port_tcc3170.o
-obj-$(CONFIG_TDMB_TCC3170) += tcc3170/
-# Test
-obj-$(CONFIG_TDMB_SIMUL) += tdmb_port_Simul.o
-
-# i/f
-obj-$(CONFIG_TDMB_SPI) += tdmb_spi.o
-obj-$(CONFIG_TDMB_EBI) += tdmb_ebi.o
-
diff --git a/drivers/media/tdmb/fc8050/Makefile b/drivers/media/tdmb/fc8050/Makefile
deleted file mode 100644
index c2e2fc9..0000000
--- a/drivers/media/tdmb/fc8050/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-obj-y += bbm.o
-obj-y += dmbdrv_wrap_fc8050.o
-obj-y += fc8050_bb.o
-obj-y += fc8050_i2c.o
-obj-y += fc8050_isr.o
-obj-y += fc8050_spi.o
-obj-y += fc8050_tun.o
-obj-y += fci_hal.o
-obj-y += fci_i2c.o
-obj-y += fci_oal.o
-obj-y += fci_tun.o
-obj-y += fic.o
-obj-y += ficdecoder.o
-
-ccflags-y += -Idrivers/media/tdmb
diff --git a/drivers/media/tdmb/fc8050/bbm.c b/drivers/media/tdmb/fc8050/bbm.c
deleted file mode 100644
index 0074803..0000000
--- a/drivers/media/tdmb/fc8050/bbm.c
+++ /dev/null
@@ -1,364 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : bbm.c
-
- Description : API of dmb baseband module
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-
-#include "fci_types.h"
-#include "fci_tun.h"
-#include "fc8050_regs.h"
-#include "fc8050_bb.h"
-#include "fci_hal.h"
-#include "fc8050_isr.h"
-
-int bbm_com_reset(HANDLE hDevice)
-{
- int res;
-
- res = fc8050_reset(hDevice);
-
- return res;
-}
-
-int bbm_com_probe(HANDLE hDevice)
-{
- int res;
-
- res = fc8050_probe(hDevice);
-
- return res;
-}
-
-int bbm_com_init(HANDLE hDevice)
-{
- int res;
-
- res = fc8050_init(hDevice);
-
- return res;
-}
-
-int bbm_com_deinit(HANDLE hDevice)
-{
- int res;
-
- res = fc8050_deinit(hDevice);
-
- return res;
-}
-
-int bbm_com_read(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
-
- res = bbm_read(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_com_byte_read(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
-
- res = bbm_byte_read(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_com_word_read(HANDLE hDevice, u16 addr, u16 *data)
-{
- int res;
-
- res = bbm_word_read(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_com_long_read(HANDLE hDevice, u16 addr, u32 *data)
-{
- int res;
-
- res = bbm_long_read(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_com_bulk_read(HANDLE hDevice, u16 addr, u8 *data, u16 size)
-{
- int res;
-
- res = bbm_bulk_read(hDevice, addr, data, size);
-
- return res;
-}
-
-int bbm_com_data(HANDLE hDevice, u16 addr, u8 *data, u16 size)
-{
- int res;
-
- res = bbm_data(hDevice, addr, data, size);
-
- return res;
-}
-
-int bbm_com_write(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
-
- res = bbm_write(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_com_byte_write(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
-
- res = bbm_byte_write(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_com_word_write(HANDLE hDevice, u16 addr, u16 data)
-{
- int res;
-
- res = bbm_word_write(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_com_long_write(HANDLE hDevice, u16 addr, u32 data)
-{
- int res;
-
- res = bbm_long_write(hDevice, addr, data);
-
- return res;
-}
-
-int bbm_com_bulk_write(HANDLE hDevice, u16 addr, u8 *data, u16 size)
-{
- int res;
-
- res = bbm_bulk_write(hDevice, addr, data, size);
-
- return res;
-}
-
-int bbm_com_tuner_read(
- HANDLE hDevice, u8 addr, u8 address_len, u8 *buffer, u8 len)
-{
- int res;
-
- res = tuner_i2c_read(hDevice, addr, address_len, buffer, len);
-
- return res;
-}
-
-int bbm_com_tuner_write(
- HANDLE hDevice, u8 addr, u8 address_len, u8 *buffer, u8 len)
-{
- int res;
-
- res = tuner_i2c_write(hDevice, addr, address_len, buffer, len);
-
- return res;
-}
-
-int bbm_com_tuner_set_freq(HANDLE hDevice, u32 freq)
-{
- int res = BBM_OK;
-
- res = tuner_set_freq(hDevice, freq);
-
- return res;
-}
-
-int bbm_com_tuner_select(HANDLE hDevice, u32 product, u32 band)
-{
- int res = BBM_OK;
-
- res = tuner_select(hDevice, product, band);
-
- return res;
-}
-
-int bbm_com_tuner_get_rssi(HANDLE hDevice, s32 *rssi)
-{
- int res = BBM_OK;
-
- res = tuner_get_rssi(hDevice, rssi);
-
- return res;
-}
-
-int bbm_com_scan_status(HANDLE hDevice)
-{
- int res = BBM_OK;
-
- res = fc8050_scan_status(hDevice);
-
- return res;
-}
-
-int bbm_com_channel_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id)
-{
- int res;
-
- res = fc8050_channel_select(hDevice, subchannel_id, service_channel_id);
-
- return res;
-}
-
-int bbm_com_video_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id, u8 cdiId)
-{
- int res;
-
- res = fc8050_video_select(
- hDevice, subchannel_id, service_channel_id, cdiId);
-
- return res;
-}
-
-int bbm_com_audio_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id)
-{
- int res;
-
- res = fc8050_audio_select(hDevice, subchannel_id, service_channel_id);
-
- return res;
-}
-
-int bbm_com_data_select(HANDLE hDevice, u8 subchannel_id, u8 service_channel_id)
-{
- int res;
-
- res = fc8050_data_select(hDevice, subchannel_id, service_channel_id);
-
- return res;
-}
-
-int bbm_com_channel_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id)
-{
- int res;
-
- res = fc8050_channel_deselect(
- hDevice, subchannel_id, service_channel_id);
-
- return res;
-}
-
-int bbm_com_video_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id, u8 cdiId)
-{
- int res;
-
- res = fc8050_video_deselect(
- hDevice, subchannel_id, service_channel_id, cdiId);
-
- return res;
-}
-
-int bbm_com_audio_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id)
-{
- int res;
-
- res = fc8050_audio_deselect(hDevice, subchannel_id, service_channel_id);
-
- return res;
-}
-
-int bbm_com_data_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id)
-{
- int res;
-
- res = fc8050_data_deselect(hDevice, subchannel_id, service_channel_id);
-
- return res;
-}
-
-void bbm_com_isr(HANDLE hDevice)
-{
- fc8050_isr(hDevice);
-}
-
-int bbm_com_hostif_select(HANDLE hDevice, u8 hostif)
-{
- int res = BBM_NOK;
-
- res = bbm_hostif_select(hDevice, hostif);
-
- return res;
-}
-
-int bbm_com_hostif_deselect(HANDLE hDevice)
-{
- int res = BBM_NOK;
-
- res = bbm_hostif_deselect(hDevice);
-
- return res;
-}
-
-int bbm_com_fic_callback_register(
- u32 userdata
- , int (*callback)(u32 userdata, u8 *data, int length))
-{
- fic_user_data = userdata;
- fic_callback = callback;
-
- return BBM_OK;
-}
-
-int bbm_com_msc_callback_register(
- u32 userdata
- , int (*callback)(u32 userdata, u8 subchannel_id, u8 *data, int length))
-{
- msc_user_data = userdata;
- msc_callback = callback;
-
- return BBM_OK;
-}
-
-int bbm_com_fic_callback_deregister(HANDLE hDevice)
-{
- fic_user_data = 0;
- fic_callback = NULL;
-
- return BBM_OK;
-}
-
-int bbm_com_msc_callback_deregister(HANDLE hDevice)
-{
- msc_user_data = 0;
- msc_callback = NULL;
-
- return BBM_OK;
-}
diff --git a/drivers/media/tdmb/fc8050/bbm.h b/drivers/media/tdmb/fc8050/bbm.h
deleted file mode 100644
index 89fb26a..0000000
--- a/drivers/media/tdmb/fc8050/bbm.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : bbm.h
-
- Description : API of dmb baseband module
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-
-
-#ifndef __BBM_H__
-#define __BBM_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "fci_types.h"
-
-#define DRIVER_VER "VER 3.6.3"
-
-#define BBM_HPI 0 /* HPI */
-#define BBM_SPI 1 /* SPI */
-#define BBM_USB 2 /* USB */
-#define BBM_I2C 3 /* I2C */
-#define BBM_PPI 4 /* PPI */
-
-extern int bbm_com_reset(HANDLE hDevice);
-extern int bbm_com_probe(HANDLE hDevice);
-extern int bbm_com_init(HANDLE hDevice);
-extern int bbm_com_deinit(HANDLE hDevice);
-extern int bbm_com_read(HANDLE hDevice, u16 addr, u8 *data);
-extern int bbm_com_byte_read(HANDLE hDevice, u16 addr, u8 *data);
-extern int bbm_com_word_read(HANDLE hDevice, u16 addr, u16 *data);
-extern int bbm_com_long_read(HANDLE hDevice, u16 addr, u32 *data);
-extern int bbm_com_bulk_read(HANDLE hDevice, u16 addr, u8 *data, u16 size);
-extern int bbm_com_data(HANDLE hDevice, u16 addr, u8 *data, u16 size);
-extern int bbm_com_write(HANDLE hDevice, u16 addr, u8 data);
-extern int bbm_com_byte_write(HANDLE hDevice, u16 addr, u8 data);
-extern int bbm_com_word_write(HANDLE hDevice, u16 addr, u16 data);
-extern int bbm_com_long_write(HANDLE hDevice, u16 addr, u32 data);
-extern int bbm_com_bulk_write(HANDLE hDevice, u16 addr, u8 *data, u16 size);
-extern int bbm_com_tuner_read(
- HANDLE hDevice, u8 addr, u8 address_len, u8 *buffer, u8 len);
-extern int bbm_com_tuner_write(
- HANDLE hDevice, u8 addr, u8 address_len, u8 *buffer, u8 len);
-extern int bbm_com_tuner_set_freq(HANDLE hDevice, u32 freq);
-extern int bbm_com_tuner_select(HANDLE hDevice, u32 product, u32 band);
-extern int bbm_com_tuner_get_rssi(HANDLE hDevice, s32 *rssi);
-extern int bbm_com_scan_status(HANDLE hDevice);
-extern int bbm_com_channel_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id);
-extern int bbm_com_video_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id, u8 cdiId);
-extern int bbm_com_audio_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id);
-extern int bbm_com_data_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id);
-extern int bbm_com_channel_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id);
-extern int bbm_com_video_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id, u8 cdiId);
-extern int bbm_com_audio_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id);
-extern int bbm_com_data_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id);
-extern int bbm_com_hostif_select(HANDLE hDevice, u8 hostif);
-extern int bbm_com_hostif_deselect(HANDLE hDevice);
-extern int bbm_com_fic_callback_register(
- u32 userdata
- , int (*callback)(u32 userdata, u8 *data, int length));
-extern int bbm_com_msc_callback_register(
- u32 userdata
- , int (*callback)(
- u32 userdata, u8 subchannel_id, u8 *data, int length));
-extern int bbm_com_fic_callback_deregister(HANDLE hDevice);
-extern int bbm_com_msc_callback_deregister(HANDLE hDevice);
-extern void bbm_com_isr(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __BBM_H__ */
diff --git a/drivers/media/tdmb/fc8050/dmbdrv_wrap_fc8050.c b/drivers/media/tdmb/fc8050/dmbdrv_wrap_fc8050.c
deleted file mode 100644
index 548e900..0000000
--- a/drivers/media/tdmb/fc8050/dmbdrv_wrap_fc8050.c
+++ /dev/null
@@ -1,607 +0,0 @@
-/*
-* Copyright(c) 2008 SEC Corp. All Rights Reserved
-*
-* File name : DMBDrv_wrap_FC8050.c
-*
-* Description : fc8050 tuner control driver
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*
-* History :
-* ----------------------------------------------------------------------
-* 2009/01/19 changsul.park initial
-* 2009/09/23 jason porting QSC6270
-*/
-
-#include "dmbdrv_wrap_fc8050.h"
-#include "fci_types.h"
-#include "bbm.h"
-#include "fci_oal.h"
-#include "fc8050_regs.h"
-#include "fic.h"
-#include "fci_tun.h"
-#include "tdmb.h"
-
-struct sub_channel_info_type dmb_subchannel_info;
-struct sub_channel_info_type dab_subchannel_info;
-
-
-static u32 saved_ber = 3000;
-static u32 dmb_initialize;
-
-unsigned char current_service_type = 0x18;
-unsigned char current_subchannel_id;
-
-int tdmb_interrupt_fic_callback(u32 userdata, u8 *data, int length)
-{
- fic_decoder_put((struct fic *)data, length);
-
- return 0;
-}
-
-#ifdef FEATURE_FC8050_DEBUG
-#define FC8050_DMB 0x01
-#define FC8050_DATA 0x04
-#define FC8050_DAB 0x08
-
-u16 dmb_mode = FC8050_DMB;
-#endif
-
-int tdmb_interrupt_msc_callback(
-u32 userdata, u8 subchannel_id, u8 *data, int length)
-{
- tdmb_store_data(&data[0], length);
-
- return 0;
-}
-
-static int viterbi_rt_ber_read(unsigned int *ber)
-{
- u32 frame, error;
- u8 control = 0;
-
- int res = BBM_OK;
-
- bbm_com_read(NULL, BBM_VT_CONTROL, &control);
- control |= 0x10;
- bbm_com_write(NULL, BBM_VT_CONTROL, control);
-
- bbm_com_long_read(NULL, BBM_VT_RT_BER_PERIOD, &frame);
- bbm_com_long_read(NULL, BBM_VT_RT_ERROR_SUM, &error);
-
- control &= ~0x10;
- bbm_com_write(NULL, BBM_VT_CONTROL, control);
-
- if (frame == 0) {
- *ber = 0;
- return BBM_NOK;
- }
-
- *ber = (error * 10000 / frame);
-
- return res;
-}
-
-static int get_signal_level(u32 ber, u8 *level)
-{
- if (ber >= 900)
- *level = 0;
- else if ((ber >= 800) && (ber < 900))
- *level = 1;
- else if ((ber >= 700) && (ber < 800))
- *level = 2;
- else if ((ber >= 600) && (ber < 700))
- *level = 3;
- else if ((ber >= 500) && (ber < 600))
- *level = 4;
- else if ((ber >= 400) && (ber < 500))
- *level = 5;
- else if (ber < 400)
- *level = 6;
-
- return BBM_OK;
-}
-
-void dmb_drv_isr()
-{
- bbm_com_isr(NULL);
-}
-
-
-unsigned char dmb_drv_init(void)
-{
- int i;
-#ifdef FEATURE_INTERFACE_TEST_MODE
- u8 data;
- u16 wdata;
- u32 ldata;
- u8 temp = 0x1e;
-#endif
-
-#ifdef CONFIG_TDMB_SPI
- if (bbm_com_hostif_select(NULL, BBM_SPI))
- return TDMB_FAIL;
-#elif defined(CONFIG_TDMB_EBI)
- if (bbm_com_hostif_select(NULL, BBM_PPI))
- return TDMB_FAIL;
-#endif
-
- /* check for factory chip interface test */
- if (bbm_com_probe(NULL) != BBM_OK) {
- DPRINTK("%s : BBM_PROBE fail\n", __func__);
- return TDMB_FAIL;
- }
-
- bbm_com_fic_callback_register(0, tdmb_interrupt_fic_callback);
- bbm_com_msc_callback_register(0, tdmb_interrupt_msc_callback);
-
- bbm_com_init(NULL);
- bbm_com_tuner_select(NULL, FC8050_TUNER, BAND3_TYPE);
-
-#ifdef FEATURE_INTERFACE_TEST_MODE
- for (i = 0; i < 1000; i++) {
- bbm_com_write(NULL, 0x05, i & 0xff);
- bbm_com_read(NULL, 0x05, &data);
- if ((i & 0xff) != data)
- DPRINTK("FC8000 byte test (0x%x,0x%x)\r\n"
- , i & 0xff, data);
- }
- for (i = 0; i < 1000; i++) {
- bbm_com_word_write(NULL, 0x0210, i & 0xffff);
- bbm_com_word_read(NULL, 0x0210, &wdata);
- if ((i & 0xffff) != wdata)
- DPRINTK("FC8000 word test (0x%x,0x%x)\r\n"
- , i & 0xffff, wdata);
- }
- for (i = 0; i < 1000; i++) {
- bbm_com_long_write(NULL, 0x0210, i & 0xffffffff);
- bbm_com_long_read(NULL, 0x0210, &ldata);
- if ((i & 0xffffffff) != ldata)
- DPRINTK("FC8000 long test (0x%x,0x%x)\r\n"
- , i & 0xffffffff, ldata);
- }
- for (i = 0; i < 1000; i++) {
- temp = i&0xff;
- bbm_com_tuner_write(NULL, 0x12, 0x01, &temp, 0x01);
- bbm_com_tuner_read(NULL, 0x12, 0x01, &data, 0x01);
- if ((i & 0xff) != data)
- DPRINTK("FC8000 tuner test (0x%x,0x%x)\r\n"
- , i & 0xff, data);
- }
- temp = 0x51;
- bbm_com_tuner_write(NULL, 0x12, 0x01, &temp, 0x01);
-#endif
-
- saved_ber = 3000;
- dmb_initialize = 1;
-
- return TDMB_SUCCESS;
-}
-
-unsigned char dmb_drv_deinit(void)
-{
- dmb_initialize = 0;
-
- bbm_com_video_deselect(NULL, 0, 0, 0);
- bbm_com_audio_deselect(NULL, 0, 3);
- bbm_com_data_deselect(NULL, 0, 2);
- bbm_com_write(NULL, BBM_COM_STATUS_ENABLE, 0x00);
-
- ms_wait(100);
-
- bbm_com_deinit(NULL);
-
- bbm_com_fic_callback_deregister(NULL);
- bbm_com_msc_callback_deregister(NULL);
-
- bbm_com_hostif_deselect(NULL);
-
- return TDMB_SUCCESS;
-}
-
-unsigned char dmb_drv_scan_ch(unsigned long frequency)
-{
- struct esbinfo_t *esb;
-
- if (!dmb_initialize)
- return TDMB_FAIL;
-
- if (bbm_com_tuner_set_freq(NULL, frequency)) {
- bbm_com_word_write(NULL, BBM_BUF_INT, 0x00ff);
- return TDMB_FAIL;
- }
-
- fic_decoder_subchannel_info_clean();
- bbm_com_word_write(NULL, BBM_BUF_INT, 0x01ff);
-
- if (bbm_com_scan_status(NULL)) {
- bbm_com_word_write(NULL, BBM_BUF_INT, 0x00ff);
- return TDMB_FAIL;
- }
-
- /* wait 1.2 sec for gathering fic information */
- ms_wait(1200);
-
- bbm_com_word_write(NULL, BBM_BUF_INT, 0x00ff);
-
- esb = fic_decoder_get_ensemble_info(0);
- if (esb->flag != 99) {
- fic_decoder_subchannel_info_clean();
- return TDMB_FAIL;
- }
-
- if (strnlen(esb->label, sizeof(esb->label)) <= 0) {
- fic_decoder_subchannel_info_clean();
- return TDMB_FAIL;
- }
-
- return TDMB_SUCCESS;
-}
-
-int dmb_drv_get_dmb_sub_ch_cnt()
-{
- struct service_info_t *svc_info;
- int i, n;
-
- if (!dmb_initialize)
- return 0;
-
- n = 0;
- for (i = 0; i < MAX_SVC_NUM; i++) {
- svc_info = fic_decoder_get_service_info_list(i);
-
- if ((svc_info->flag & 0x07) == 0x07) {
- if ((svc_info->tmid == 0x01)
- && (svc_info->dscty == 0x18))
- n++;
- }
- }
-
- return n;
-}
-
-int dmb_drv_get_dab_sub_ch_cnt()
-{
- struct service_info_t *svc_info;
- int i, n;
-
- if (!dmb_initialize)
- return 0;
-
- n = 0;
- for (i = 0; i < MAX_SVC_NUM; i++) {
- svc_info = fic_decoder_get_service_info_list(i);
-
- if ((svc_info->flag & 0x07) == 0x07) {
- if ((svc_info->tmid == 0x00)
- && (svc_info->ascty == 0x00))
- n++;
- }
- }
-
- return n;
-}
-
-char *dmb_drv_get_ensemble_label()
-{
- struct esbinfo_t *esb;
-
- if (!dmb_initialize)
- return NULL;
-
- esb = fic_decoder_get_ensemble_info(0);
-
- if (esb->flag == 99)
- return (char *)esb->label;
-
- return NULL;
-}
-
-char *dmb_drv_get_sub_ch_dmb_label(int subchannel_count)
-{
- int i, n;
- struct service_info_t *svc_info;
- char *label = NULL;
-
- if (!dmb_initialize)
- return NULL;
-
- n = 0;
- for (i = 0; i < MAX_SVC_NUM; i++) {
- svc_info = fic_decoder_get_service_info_list(i);
-
- if ((svc_info->flag & 0x07) == 0x07) {
- if ((svc_info->tmid == 0x01)
- && (svc_info->dscty == 0x18)) {
- if (n == subchannel_count) {
- label = (char *) svc_info->label;
- break;
- }
- n++;
- }
- }
- }
-
- return label;
-}
-
-char *dmb_drv_get_sub_ch_dab_label(int subchannel_count)
-{
- int i, n;
- struct service_info_t *svc_info;
- char *label = NULL;
-
- if (!dmb_initialize)
- return NULL;
-
- n = 0;
- for (i = 0; i < MAX_SVC_NUM; i++) {
- svc_info = fic_decoder_get_service_info_list(i);
-
- if ((svc_info->flag & 0x07) == 0x07) {
- if ((svc_info->tmid == 0x00)
- && (svc_info->ascty == 0x00)) {
- if (n == subchannel_count) {
- label = (char *) svc_info->label;
- break;
- }
- n++;
- }
- }
- }
-
- return label;
-}
-
-struct sub_channel_info_type *dmb_drv_get_fic_dmb(int subchannel_count)
-{
- int i, n, j;
- struct esbinfo_t *esb;
- struct service_info_t *svc_info;
- u8 num_of_user_appl;
-
- if (!dmb_initialize)
- return NULL;
-
- memset((void *)&dmb_subchannel_info, 0, sizeof(dmb_subchannel_info));
-
- n = 0;
- for (i = 0; i < MAX_SVC_NUM; i++) {
- svc_info = fic_decoder_get_service_info_list(i);
-
- if ((svc_info->flag & 0x07) == 0x07) {
- if ((svc_info->tmid == 0x01)
- && (svc_info->dscty == 0x18)) {
- if (n == subchannel_count) {
- dmb_subchannel_info.ucSubchID
- = svc_info->sub_channel_id;
- dmb_subchannel_info.uiStartAddress
- = 0;
- dmb_subchannel_info.ucTMId
- = svc_info->tmid;
- dmb_subchannel_info.ucServiceType
- = svc_info->dscty;
- dmb_subchannel_info.ulServiceID
- = svc_info->sid;
-
- num_of_user_appl =
- svc_info->num_of_user_appl;
- dmb_subchannel_info.num_of_user_appl
- = num_of_user_appl;
- for (j = 0; j < num_of_user_appl; j++) {
- dmb_subchannel_info.
- user_appl_type[j]
- = svc_info->user_appl_type[j];
- dmb_subchannel_info.
- user_appl_length[j]
- = svc_info->user_appl_length[j];
- memcpy(
- &dmb_subchannel_info.
- user_appl_data[j][0]
- , &svc_info->
- user_appl_data[j][0]
- , dmb_subchannel_info.
- user_appl_length[j]);
- }
-
- esb = fic_decoder_get_ensemble_info(0);
- if (esb->flag == 99)
- dmb_subchannel_info.uiEnsembleID
- = esb->eid;
- else
- dmb_subchannel_info.uiEnsembleID
- = 0;
-
- break;
- }
- n++;
- }
- }
- }
-
- return &dmb_subchannel_info;
-}
-
-struct sub_channel_info_type *dmb_drv_get_fic_dab(int subchannel_count)
-{
- int i, n;
- struct esbinfo_t *esb;
- struct service_info_t *svc_info;
-
- if (!dmb_initialize)
- return NULL;
-
- memset((void *)&dab_subchannel_info, 0, sizeof(dab_subchannel_info));
-
- n = 0;
- for (i = 0; i < MAX_SVC_NUM; i++) {
- svc_info = fic_decoder_get_service_info_list(i);
-
- if ((svc_info->flag & 0x07) == 0x07) {
- if ((svc_info->tmid == 0x00)
- && (svc_info->ascty == 0x00)) {
- if (n == subchannel_count) {
- dab_subchannel_info.ucSubchID =
- svc_info->sub_channel_id;
- dab_subchannel_info.uiStartAddress = 0;
- dab_subchannel_info.ucTMId
- = svc_info->tmid;
- dab_subchannel_info.ucServiceType =
- svc_info->ascty;
- dab_subchannel_info.ulServiceID =
- svc_info->sid;
- esb = fic_decoder_get_ensemble_info(0);
- if (esb->flag == 99)
- dmb_subchannel_info.uiEnsembleID
- = esb->eid;
- else
- dmb_subchannel_info.uiEnsembleID
- = 0;
-
- break;
- }
- n++;
- }
- }
- }
-
- return &dab_subchannel_info;
-}
-
-#ifdef FEATURE_FC8050_DEBUG
-void fc8050_isr_interruptclear(void)
-{
- u8 status = 0;
-
- bbm_com_read(NULL, BBM_COM_INT_STATUS, &status);
- bbm_com_write(NULL, BBM_COM_INT_STATUS, status);
- bbm_com_write(NULL, BBM_COM_INT_STATUS, 0x00);
-}
-
-void dmb_drv_check_overrun(u8 reset)
-{
- u16 overrun;
- u16 temp = 0;
-
- bbm_com_word_read(NULL, BBM_BUF_OVERRUN, &overrun);
-
- if (overrun & dmb_mode) {
- /* overrun clear */
- bbm_com_word_write(NULL, BBM_BUF_OVERRUN, overrun);
- bbm_com_word_write(NULL, BBM_BUF_OVERRUN, 0x0000);
-
- if (reset) {
- /* buffer restore */
- bbm_com_word_read(NULL, BBM_BUF_ENABLE, &temp);
- temp &= ~dmb_mode;
- bbm_com_word_write(NULL, BBM_BUF_ENABLE, temp);
- temp |= dmb_mode;
- bbm_com_word_write(NULL, BBM_BUF_ENABLE, temp);
-
- /* external interrupt restore */
- fc8050_isr_interruptclear();
- }
-
- DPRINTK("FC8050 Overrun occured\n");
- }
-
-}
-#endif
-
-unsigned char dmb_drv_set_ch(
-unsigned long frequency
-, unsigned char subchannel
-, unsigned char sevice_type)
-{
- if (!dmb_initialize)
- return TDMB_FAIL;
-
- current_service_type = sevice_type;
- current_subchannel_id = subchannel;
-
- bbm_com_video_deselect(NULL, 0, 0, 0);
- bbm_com_audio_deselect(NULL, 0, 3);
- bbm_com_data_deselect(NULL, 0, 2);
-
- bbm_com_word_write(NULL, BBM_BUF_INT, 0x00ff);
-
- if (bbm_com_tuner_set_freq(NULL, frequency) != BBM_OK)
- return TDMB_FAIL;
-
- if (sevice_type == 0x18)
- bbm_com_video_select(NULL, subchannel, 0, 0);
- else if (sevice_type == 0x00)
- bbm_com_audio_select(NULL, subchannel, 3);
- else
- bbm_com_data_select(NULL, subchannel, 2);
-
-#ifdef FEATURE_FC8050_DEBUG
- if (sevice_type == 0x18)
- dmb_mode = FC8050_DMB;
- else if (sevice_type == 0x00)
- dmb_mode = FC8050_DAB;
- else
- dmb_mode = FC8050_DATA;
-#endif
-
- return TDMB_SUCCESS;
-}
-
-unsigned short dmb_drv_get_ber()
-{
- return saved_ber;
-}
-
-unsigned char dmb_drv_get_ant(void)
-{
- u8 level = 0;
- unsigned int ber;
-
- if (!dmb_initialize) {
- saved_ber = 3000;
- return 0;
- }
-
- if (viterbi_rt_ber_read(&ber)) {
- saved_ber = 3000;
- return 0;
- }
-
- if (ber <= 20)
- ber = 0;
-
- saved_ber = ber;
- if (get_signal_level(ber, &level))
- return 0;
-
-#ifdef FEATURE_FC8050_DEBUG
- dmb_drv_check_overrun(1);
-#endif
-
- return level;
-}
-
-signed short dmb_drv_get_rssi()
-{
- s32 rssi;
-
- if (!dmb_initialize) {
- rssi = -110;
- return rssi;
- }
-
- bbm_com_tuner_get_rssi(NULL, &rssi);
-
- return (signed short)rssi;
-}
diff --git a/drivers/media/tdmb/fc8050/dmbdrv_wrap_fc8050.h b/drivers/media/tdmb/fc8050/dmbdrv_wrap_fc8050.h
deleted file mode 100644
index 802e421..0000000
--- a/drivers/media/tdmb/fc8050/dmbdrv_wrap_fc8050.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-* Copyright(c) 2008 SEC Corp. All Rights Reserved
-*
-* File name : dmbdrv_wrap_fc8050.h
-*
-* Description : fc8050 tuner control driver
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*
-* History :
-* ----------------------------------------------------------------------
-*
-*/
-
-#ifndef __DMBDRV_WRAP_FC8050_H
-#define __DMBDRV_WRAP_FC8050_H
-
-#include <linux/string.h>
-#include <linux/delay.h>
-
-#define TDMB_SUCCESS 1
-#define TDMB_FAIL 0
-
-#define USER_APPL_NUM_MAX 12
-#define USER_APPL_DATA_SIZE_MAX 24
-
-struct sub_channel_info_type {
- unsigned short uiEnsembleID;
- unsigned char ucSubchID;
- unsigned short uiStartAddress;
- unsigned char ucTMId;
- unsigned char ucServiceType;
- unsigned long ulServiceID;
- unsigned char num_of_user_appl;
- unsigned short user_appl_type[USER_APPL_NUM_MAX];
- unsigned char user_appl_length[USER_APPL_NUM_MAX];
- unsigned char user_appl_data
- [USER_APPL_NUM_MAX][USER_APPL_DATA_SIZE_MAX];
-};
-
-void dmb_drv_isr(void);
-unsigned char dmb_drv_init(void);
-unsigned char dmb_drv_deinit(void);
-unsigned char dmb_drv_scan_ch(unsigned long frequency);
-int dmb_drv_get_dmb_sub_ch_cnt(void);
-int dmb_drv_get_dab_sub_ch_cnt(void);
-char *dmb_drv_get_ensemble_label(void);
-char *dmb_drv_get_sub_ch_dmb_label(int subchannel_count);
-char *dmb_drv_get_sub_ch_dab_label(int subchannel_count);
-struct sub_channel_info_type *dmb_drv_get_fic_dmb(int subchannel_count);
-struct sub_channel_info_type *dmb_drv_get_fic_dab(int subchannel_count);
-unsigned char dmb_drv_set_ch(
- unsigned long frequency
- , unsigned char subchannel
- , unsigned char sevice_type);
-unsigned short dmb_drv_get_ber(void);
-unsigned char dmb_drv_get_ant(void);
-signed short dmb_drv_get_rssi(void);
-int tdmb_interrupt_fic_callback(u32 userdata, u8 *data, int length);
-int tdmb_interrupt_msc_callback(
- u32 userdata, u8 subchannel_id, u8 *data, int length);
-#endif
diff --git a/drivers/media/tdmb/fc8050/fc8050_bb.c b/drivers/media/tdmb/fc8050/fc8050_bb.c
deleted file mode 100644
index 1f5b825..0000000
--- a/drivers/media/tdmb/fc8050/fc8050_bb.c
+++ /dev/null
@@ -1,607 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8050_bb.c
-
- Description : API of dmb baseband module
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
- BB Config 1p0
-*******************************************************************************/
-#include <linux/kernel.h>
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fci_hal.h"
-#include "fci_tun.h"
-#include "fc8050_regs.h"
-
-#define POWER_SAVE_MODE
-#define MSMCHIP
-
-#define LOCK_TIME_TICK 5 /* 5ms */
-#define SLOCK_MAX_TIME 200
-#define FLOCK_MAX_TIME 300
-#define DLOCK_MAX_TIME 500
-
-static int fc8050_power_save_on(HANDLE hDevice)
-{
- u8 tmp = 0x64;
-
- bbm_write(hDevice, BBM_DIDP_POWER_OPT0, 0x06);
- bbm_write(hDevice, BBM_DIDP_POWER_OPT1, 0x06);
- bbm_write(hDevice, BBM_DIDP_POWER_OPT2, 0x07);
- bbm_write(hDevice, BBM_FFT_ADC_CONTROL, 0x1c);
-
- tuner_i2c_write(hDevice, 0x61, 1, &tmp, 1);
-
- print_log(hDevice, "Power Save On\n");
-
- return BBM_OK;
-}
-
-static int fc8050_power_save_off(HANDLE hDevice)
-{
- u8 tmp = 0x1e;
-
- bbm_write(hDevice, BBM_DIDP_POWER_OPT0, 0x04);
- bbm_write(hDevice, BBM_DIDP_POWER_OPT1, 0x05);
- bbm_write(hDevice, BBM_DIDP_POWER_OPT2, 0x05);
- bbm_write(hDevice, BBM_FFT_ADC_CONTROL, 0x9c);
-
- tuner_i2c_write(hDevice, 0x61, 1, &tmp, 1);
-
- print_log(hDevice, "Power Save Off\n");
-
- return BBM_OK;
-}
-
-static int fc8050_cu_size_check(HANDLE hDevice, u8 svcId, u16 *cuSize)
-{
- int res = BBM_NOK;
- int i;
- u16 subch_info = 0;
-
- *cuSize = 0;
-
- for (i = 0; i < 40; i++) {
- bbm_word_read(hDevice, 0x192 + 12 * svcId, &subch_info);
-
- if (subch_info & 0x3ff) {
- *cuSize = subch_info & 0x3ff;
- res = BBM_OK;
-
- print_log(hDevice
- , "CU CHECK LOOP COUNT: %d ms\n", i * 10);
- break;
- }
-
- ms_wait(10);
- }
-
- return res;
-}
-
-static int fc8050_set_xtal(HANDLE hDevice)
-{
-#if (FC8050_FREQ_XTAL == 19200)
- /* Default XTAL */
-#elif (FC8050_FREQ_XTAL == 16384)
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x0);
- bbm_write(hDevice, BBM_QDD_COEF, 0x2);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x1);
- bbm_write(hDevice, BBM_QDD_COEF, 0xff);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x2);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfd);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x3);
- bbm_write(hDevice, BBM_QDD_COEF, 0x0);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x4);
- bbm_write(hDevice, BBM_QDD_COEF, 0x4);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x5);
- bbm_write(hDevice, BBM_QDD_COEF, 0x3);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x6);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfc);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x7);
- bbm_write(hDevice, BBM_QDD_COEF, 0xf9);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x8);
- bbm_write(hDevice, BBM_QDD_COEF, 0x2);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x9);
- bbm_write(hDevice, BBM_QDD_COEF, 0xc);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xa);
- bbm_write(hDevice, BBM_QDD_COEF, 0x4);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xb);
- bbm_write(hDevice, BBM_QDD_COEF, 0xf0);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xc);
- bbm_write(hDevice, BBM_QDD_COEF, 0xed);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xd);
- bbm_write(hDevice, BBM_QDD_COEF, 0x13);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xe);
- bbm_write(hDevice, BBM_QDD_COEF, 0x4f);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xf);
- bbm_write(hDevice, BBM_QDD_COEF, 0x6b);
- bbm_write(hDevice, 0xe8, 0x00);
- bbm_write(hDevice, 0xe9, 0x00);
- bbm_write(hDevice, 0xea, 0x00);
- bbm_write(hDevice, 0xeb, 0x04);
- bbm_write(hDevice, 0xec, 0x80);
- bbm_write(hDevice, 0xed, 0x80);
- bbm_write(hDevice, 0xee, 0x06);
-#elif (FC8050_FREQ_XTAL == 24576)
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x0);
- bbm_write(hDevice, BBM_QDD_COEF, 0x2);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x1);
- bbm_write(hDevice, BBM_QDD_COEF, 0xff);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x2);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfd);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x3);
- bbm_write(hDevice, BBM_QDD_COEF, 0x0);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x4);
- bbm_write(hDevice, BBM_QDD_COEF, 0x4);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x5);
- bbm_write(hDevice, BBM_QDD_COEF, 0x3);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x6);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfc);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x7);
- bbm_write(hDevice, BBM_QDD_COEF, 0xf9);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x8);
- bbm_write(hDevice, BBM_QDD_COEF, 0x2);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x9);
- bbm_write(hDevice, BBM_QDD_COEF, 0xc);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xa);
- bbm_write(hDevice, BBM_QDD_COEF, 0x4);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xb);
- bbm_write(hDevice, BBM_QDD_COEF, 0xf0);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xc);
- bbm_write(hDevice, BBM_QDD_COEF, 0xed);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xd);
- bbm_write(hDevice, BBM_QDD_COEF, 0x13);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xe);
- bbm_write(hDevice, BBM_QDD_COEF, 0x4f);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xf);
- bbm_write(hDevice, BBM_QDD_COEF, 0x6b);
- bbm_write(hDevice, 0xe8, 0x00);
- bbm_write(hDevice, 0xe9, 0x00);
- bbm_write(hDevice, 0xea, 0x00);
- bbm_write(hDevice, 0xeb, 0x04);
- bbm_write(hDevice, 0xec, 0x80);
- bbm_write(hDevice, 0xed, 0x80);
- bbm_write(hDevice, 0xee, 0x05);
-#elif (FC8050_FREQ_XTAL == 27000)
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x0);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfe);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x1);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfe);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x2);
- bbm_write(hDevice, BBM_QDD_COEF, 0x1);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x3);
- bbm_write(hDevice, BBM_QDD_COEF, 0x4);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x4);
- bbm_write(hDevice, BBM_QDD_COEF, 0x3);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x5);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfd);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x6);
- bbm_write(hDevice, BBM_QDD_COEF, 0xf9);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x7);
- bbm_write(hDevice, BBM_QDD_COEF, 0xff);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x8);
- bbm_write(hDevice, BBM_QDD_COEF, 0x9);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x9);
- bbm_write(hDevice, BBM_QDD_COEF, 0x9);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xa);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfb);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xb);
- bbm_write(hDevice, BBM_QDD_COEF, 0xed);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xc);
- bbm_write(hDevice, BBM_QDD_COEF, 0xf5);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xd);
- bbm_write(hDevice, BBM_QDD_COEF, 0x1c);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xe);
- bbm_write(hDevice, BBM_QDD_COEF, 0x4b);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xf);
- bbm_write(hDevice, BBM_QDD_COEF, 0x61);
- bbm_write(hDevice, 0xe8, 0x4b);
- bbm_write(hDevice, 0xe9, 0x11);
- bbm_write(hDevice, 0xea, 0xa4);
- bbm_write(hDevice, 0xeb, 0x03);
- bbm_write(hDevice, 0xec, 0x8c);
- bbm_write(hDevice, 0xed, 0x75);
- bbm_write(hDevice, 0xee, 0x05);
-#elif (FC8050_FREQ_XTAL == 27120)
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x0);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfe);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x1);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfe);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x2);
- bbm_write(hDevice, BBM_QDD_COEF, 0x1);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x3);
- bbm_write(hDevice, BBM_QDD_COEF, 0x4);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x4);
- bbm_write(hDevice, BBM_QDD_COEF, 0x2);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x5);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfc);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x6);
- bbm_write(hDevice, BBM_QDD_COEF, 0xf9);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x7);
- bbm_write(hDevice, BBM_QDD_COEF, 0xff);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x8);
- bbm_write(hDevice, BBM_QDD_COEF, 0x9);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x9);
- bbm_write(hDevice, BBM_QDD_COEF, 0x9);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xa);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfb);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xb);
- bbm_write(hDevice, BBM_QDD_COEF, 0xed);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xc);
- bbm_write(hDevice, BBM_QDD_COEF, 0xf5);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xd);
- bbm_write(hDevice, BBM_QDD_COEF, 0x1c);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xe);
- bbm_write(hDevice, BBM_QDD_COEF, 0x4b);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xf);
- bbm_write(hDevice, BBM_QDD_COEF, 0x61);
- bbm_write(hDevice, 0xe8, 0x80);
- bbm_write(hDevice, 0xe9, 0xf1);
- bbm_write(hDevice, 0xea, 0x9f);
- bbm_write(hDevice, 0xeb, 0x03);
- bbm_write(hDevice, 0xec, 0x8d);
- bbm_write(hDevice, 0xed, 0x74);
- bbm_write(hDevice, 0xee, 0x05);
-#elif (FC8050_FREQ_XTAL == 38400)
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x0);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfe);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x1);
- bbm_write(hDevice, BBM_QDD_COEF, 0x0);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x2);
- bbm_write(hDevice, BBM_QDD_COEF, 0x3);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x3);
- bbm_write(hDevice, BBM_QDD_COEF, 0x3);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x4);
- bbm_write(hDevice, BBM_QDD_COEF, 0xff);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x5);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfa);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x6);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfb);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x7);
- bbm_write(hDevice, BBM_QDD_COEF, 0x3);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x8);
- bbm_write(hDevice, BBM_QDD_COEF, 0xa);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0x9);
- bbm_write(hDevice, BBM_QDD_COEF, 0x5);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xa);
- bbm_write(hDevice, BBM_QDD_COEF, 0xf7);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xb);
- bbm_write(hDevice, BBM_QDD_COEF, 0xed);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xc);
- bbm_write(hDevice, BBM_QDD_COEF, 0xfa);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xd);
- bbm_write(hDevice, BBM_QDD_COEF, 0x1f);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xe);
- bbm_write(hDevice, BBM_QDD_COEF, 0x49);
- bbm_write(hDevice, BBM_QDD_COEF_BANK_SEL, 0xf);
- bbm_write(hDevice, BBM_QDD_COEF, 0x5c);
- bbm_write(hDevice, 0xe8, 0x36);
- bbm_write(hDevice, 0xe9, 0xd0);
- bbm_write(hDevice, 0xea, 0x69);
- bbm_write(hDevice, 0xeb, 0x03);
- bbm_write(hDevice, 0xec, 0x96);
- bbm_write(hDevice, 0xed, 0x6d);
- bbm_write(hDevice, 0xee, 0x04);
-#endif
- return BBM_OK;
-}
-
-int fc8050_reset(HANDLE hDevice)
-{
- bbm_write(hDevice, BBM_COM_RESET, 0xFE);
- ms_wait(1);
- bbm_write(hDevice, BBM_COM_RESET, 0xFF);
-
- return BBM_OK;
-}
-
-int fc8050_probe(HANDLE hDevice)
-{
- u16 ver;
- bbm_word_read(hDevice, BBM_QDD_CHIP_IDL, &ver);
-
- printk(KERN_DEBUG "tdmb %s : ver(0x%x)\n", __func__, ver);
- return (ver == 0x8050) ? BBM_OK : BBM_NOK;
-}
-
-int fc8050_init(HANDLE hDevice)
-{
- u8 intMask;
-
- fc8050_reset(hDevice);
- fc8050_set_xtal(hDevice);
-
- bbm_write(hDevice, BBM_BUF_MISC_CTRL, 0x19);
-
- /* bbm_write(hDevice, BBM_24M_CLK_EN, 0xff); */
- bbm_write(hDevice, BBM_VT_CONTROL, 0x03);
- bbm_word_write(hDevice, BBM_SYNC_CNTRL, 0x0020);
- bbm_write(hDevice, BBM_FIC_CRC_CONTROL, 0x03);
- bbm_write(hDevice, BBM_BUF_TEST_MODE, 0x08);
- bbm_write(hDevice, 0x33c, 0x03);
-
- bbm_write(hDevice, BBM_FFT_MODEM_STSH, 0x03);
- bbm_write(hDevice, BBM_DIDP_MODE, 0x01);
- bbm_write(hDevice, BBM_SYNC_DET_CNTRL, 0x01);
- bbm_word_write(hDevice, BBM_SYNC_DET_MAX_THRL, 0x0A00);
- bbm_write(hDevice, BBM_SYNC_DET_MODE_ENABLE, 0x01);
- bbm_write(hDevice, BBM_BUF_CLOCK_EN, 0xff);
- bbm_write(hDevice, BBM_FFT_SCALEV_IFFT, 0xea);
- bbm_write(hDevice, BBM_SYNC_FT_RANGE, 0x20);
- bbm_write(hDevice, BBM_QDD_AGC530_EN, 0x53);
- bbm_write(hDevice, BBM_QDD_BLOCK_AVG_SIZE, 0x48);
- bbm_write(hDevice, BBM_QDD_BLOCK_AVG_SIZE_LOCK, 0x49);
- bbm_word_write(hDevice, BBM_QDD_GAIN_CONSTANT, 0x0303);
- bbm_write(hDevice, BBM_QDD_DET_CNT_BOUND, 0x60);
- bbm_write(hDevice, BBM_QDD_REF_AMPL, 0x00);
- bbm_write(hDevice, BBM_QDD_BW_CTRL_LOCK, 0x50);
- bbm_write(hDevice, BBM_QDD_DC_CTRL, 0x3f);
-
- bbm_write(hDevice, BBM_RS_CONTROL, 0x01);
- bbm_word_write(hDevice, BBM_RS_BER_PERIOD, 0x14e);
-
-#if defined(POWER_SAVE_MODE)
- bbm_write(hDevice, BBM_DIDP_POWER_OPT0, 0x06);
- bbm_write(hDevice, BBM_DIDP_ADD_N_SHIFT0, 0x41);
- bbm_write(hDevice, BBM_DIDP_POWER_OPT1, 0x06);
- bbm_write(hDevice, BBM_DIDP_ADD_N_SHIFT1, 0xf1);
- bbm_write(hDevice, BBM_DIDP_POWER_OPT2, 0x07);
- bbm_write(hDevice, BBM_FFT_ADC_CONTROL, 0x1c);
-#else
- bbm_write(hDevice, BBM_DIDP_POWER_OPT0, 0x04);
- bbm_write(hDevice, BBM_DIDP_ADD_N_SHIFT0, 0x21);
- bbm_write(hDevice, BBM_DIDP_POWER_OPT1, 0x05);
- bbm_write(hDevice, BBM_DIDP_ADD_N_SHIFT1, 0x21);
- bbm_write(hDevice, BBM_DIDP_POWER_OPT2, 0x05);
- bbm_write(hDevice, BBM_FFT_ADC_CONTROL, 0x9c);
-#endif
-
- bbm_word_write(hDevice, BBM_BUF_FIC_START, FIC_BUF_START);
- bbm_word_write(hDevice, BBM_BUF_FIC_END, FIC_BUF_END);
- bbm_word_write(hDevice, BBM_BUF_FIC_THR, FIC_BUF_THR);
- bbm_word_write(hDevice, BBM_BUF_CH0_START, CH0_BUF_START);
- bbm_word_write(hDevice, BBM_BUF_CH0_END, CH0_BUF_END);
- bbm_word_write(hDevice, BBM_BUF_CH0_THR, CH0_BUF_THR);
- bbm_word_write(hDevice, BBM_BUF_CH1_START, CH1_BUF_START);
- bbm_word_write(hDevice, BBM_BUF_CH1_END, CH1_BUF_END);
- bbm_word_write(hDevice, BBM_BUF_CH1_THR, CH1_BUF_THR);
- bbm_word_write(hDevice, BBM_BUF_CH2_START, CH2_BUF_START);
- bbm_word_write(hDevice, BBM_BUF_CH2_END, CH2_BUF_END);
- bbm_word_write(hDevice, BBM_BUF_CH2_THR, CH2_BUF_THR);
- bbm_word_write(hDevice, BBM_BUF_CH3_START, CH3_BUF_START);
- bbm_word_write(hDevice, BBM_BUF_CH3_END, CH3_BUF_END);
- bbm_word_write(hDevice, BBM_BUF_CH3_THR, CH3_BUF_THR);
-
- bbm_word_write(hDevice, BBM_BUF_INT, 0x01ff);
- bbm_word_write(hDevice, BBM_BUF_ENABLE, 0x01ff);
-
- intMask = BBM_MF_INT;
- bbm_write(hDevice, BBM_COM_INT_ENABLE, intMask);
- bbm_write(hDevice, BBM_COM_STATUS_ENABLE, intMask);
-
- return BBM_OK;
-}
-
-int fc8050_deinit(HANDLE hDevice)
-{
- bbm_write(hDevice, BBM_COM_RESET, 0x00);
- return BBM_OK;
-}
-
-int fc8050_channel_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id)
-{
- u16 cuSize = 0;
-
- bbm_write(hDevice
- , BBM_DIDP_CH0_SUBCH + service_channel_id
- , 0x40 | subchannel_id);
-
- if (fc8050_cu_size_check(hDevice, service_channel_id, &cuSize)) {
- fc8050_power_save_off(hDevice);
- return BBM_OK;
- }
-
- if (cuSize >= 672) {
- fc8050_power_save_off(hDevice);
- return BBM_OK;
- }
-
- fc8050_power_save_on(hDevice);
-
- return BBM_OK;
-}
-
-int fc8050_video_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id, u8 cdiId)
-{
- if (fc8050_channel_select(
- hDevice, subchannel_id, service_channel_id) != BBM_OK)
- return BBM_NOK;
-
- bbm_write(hDevice
- , BBM_CDI0_SUBCH_EN+cdiId, 0x40 | subchannel_id);
- bbm_write(hDevice
- , BBM_BUF_CH0_SUBCH+service_channel_id, 0x40 | subchannel_id);
-
- return BBM_OK;
-}
-
-int fc8050_audio_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id)
-{
- if (fc8050_channel_select(
- hDevice, subchannel_id, service_channel_id) != BBM_OK)
- return BBM_NOK;
-
- bbm_write(hDevice
- , BBM_BUF_CH0_SUBCH+service_channel_id, 0x40 | subchannel_id);
-
- return BBM_OK;
-}
-
-int fc8050_data_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id)
-{
- if (fc8050_channel_select(
- hDevice, subchannel_id, service_channel_id) != BBM_OK)
- return BBM_NOK;
-
- bbm_write(hDevice
- , BBM_BUF_CH0_SUBCH+service_channel_id, 0x40 | subchannel_id);
-
- return BBM_OK;
-}
-
-int fc8050_channel_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id)
-{
- int i;
-
- bbm_write(hDevice, BBM_DIDP_CH0_SUBCH + service_channel_id, 0);
-
- for (i = 0; i < 12; i++)
- bbm_write(hDevice, 0x190 + service_channel_id * 12 + i, 0);
-
- return BBM_OK;
-}
-
-int fc8050_video_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id, u8 cdiId)
-{
- if (fc8050_channel_deselect(
- hDevice, subchannel_id, service_channel_id) != BBM_OK)
- return BBM_NOK;
-
- bbm_write(hDevice, BBM_BUF_CH0_SUBCH+service_channel_id, 0x00);
- bbm_write(hDevice, BBM_CDI0_SUBCH_EN+cdiId, 0x00);
-
- return BBM_OK;
-}
-
-int fc8050_audio_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id)
-{
- if (fc8050_channel_deselect(
- hDevice, subchannel_id, service_channel_id) != BBM_OK)
- return BBM_NOK;
-
- bbm_write(hDevice, BBM_BUF_CH0_SUBCH+service_channel_id, 0);
-
- return BBM_OK;
-}
-
-int fc8050_data_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id)
-{
- if (fc8050_channel_deselect(
- hDevice, subchannel_id, service_channel_id) != BBM_OK)
- return BBM_NOK;
-
- bbm_write(hDevice, BBM_BUF_CH0_SUBCH+service_channel_id, 0);
-
- return BBM_OK;
-}
-
-int fc8050_scan_status(HANDLE hDevice)
-{
- int i, res = BBM_NOK;
- u8 mode = 0, status = 0, sync_status = 0;
- int slock_cnt, flock_cnt, dlock_cnt;
-
- bbm_read(hDevice, BBM_SYNC_DET_CNTRL, &mode);
-
- if ((mode & 0x01) == 0x01) {
- slock_cnt = SLOCK_MAX_TIME / LOCK_TIME_TICK;
- flock_cnt = FLOCK_MAX_TIME / LOCK_TIME_TICK;
- dlock_cnt = DLOCK_MAX_TIME / LOCK_TIME_TICK;
-
- /* OFDM Detect */
- for (i = 0; i < slock_cnt; i++) {
- ms_wait(LOCK_TIME_TICK);
-
- bbm_read(hDevice, BBM_SYNC_DET_STATUS, &status);
-
- if (status & 0x01)
- break;
- }
-
- if (i == slock_cnt) {
- printk(KERN_DEBUG "tdmb:status(0x%x) s(%d)\n",
- status, slock_cnt);
- return BBM_NOK;
- }
-
- if ((status & 0x02) == 0x00) {
- printk(KERN_DEBUG "tdmb %s : status(0x%x)\n",
- __func__, status);
- return BBM_NOK;
- }
-
- /* FRS */
- for (i += 1; i < flock_cnt; i++) {
- ms_wait(LOCK_TIME_TICK);
-
- bbm_read(hDevice, BBM_SYNC_STATUS, &sync_status);
-
- if (sync_status & 0x01)
- break;
- }
-
- if (i == flock_cnt) {
- printk(KERN_DEBUG "tdmb %s : flock_cnt(0x%x)\n"
- , __func__
- , flock_cnt);
- return BBM_NOK;
- }
-
- /* Digital Lock */
- for (i += 1; i < dlock_cnt; i++) {
- ms_wait(LOCK_TIME_TICK);
-
- bbm_read(hDevice, BBM_SYNC_STATUS, &sync_status);
-
- if (sync_status & 0x20) {
- printk(KERN_DEBUG "tdmb:sync_status(0x%x)\n",
- sync_status);
- return BBM_OK;
- }
- }
- } else {
- dlock_cnt = DLOCK_MAX_TIME / LOCK_TIME_TICK;
-
- for (i = 0; i < dlock_cnt; i++) {
- ms_wait(LOCK_TIME_TICK);
-
- bbm_read(hDevice, BBM_SYNC_STATUS, &sync_status);
- if (sync_status & 0x20) {
- printk(KERN_DEBUG "tdmb:sync_status(0x%x)\n",
- sync_status);
- return BBM_OK;
- }
- }
- }
-
- printk(KERN_DEBUG "tdmb %s : res(0x%x)\n"
- , __func__, res);
-
- return res;
-}
diff --git a/drivers/media/tdmb/fc8050/fc8050_bb.h b/drivers/media/tdmb/fc8050/fc8050_bb.h
deleted file mode 100644
index 8e9f699..0000000
--- a/drivers/media/tdmb/fc8050/fc8050_bb.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8050_bb.h
-
- Description : baseband header file
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- History :
- ----------------------------------------------------------------------
- 2009/09/14 jason initial
-*******************************************************************************/
-
-#ifndef __FC8050_BB_H__
-#define __FC8050_BB_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8050_reset(HANDLE hDevice);
-extern int fc8050_probe(HANDLE hDevice);
-extern int fc8050_init(HANDLE hDevice);
-extern int fc8050_deinit(HANDLE hDevice);
-
-extern int fc8050_scan_status(HANDLE hDevice);
-
-extern int fc8050_channel_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id);
-extern int fc8050_video_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id, u8 cdiId);
-extern int fc8050_audio_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id);
-extern int fc8050_data_select(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id);
-
-extern int fc8050_channel_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id);
-extern int fc8050_video_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id, u8 cdiId);
-extern int fc8050_audio_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id);
-extern int fc8050_data_deselect(
- HANDLE hDevice, u8 subchannel_id, u8 service_channel_id);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __FC8050_BB_H__ */
diff --git a/drivers/media/tdmb/fc8050/fc8050_i2c.c b/drivers/media/tdmb/fc8050/fc8050_i2c.c
deleted file mode 100644
index 38f3067..0000000
--- a/drivers/media/tdmb/fc8050/fc8050_i2c.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8050_i2c.c
-
- Description : fc8050 host interface
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fc8050_regs.h"
-
-#define HPIC_READ 0x01 /* read command */
-#define HPIC_WRITE 0x02 /* write command */
-#define HPIC_AINC 0x04 /* address increment */
-#define HPIC_BMODE 0x00 /* byte mode */
-#define HPIC_WMODE 0x10 /* word mode */
-#define HPIC_LMODE 0x20 /* long mode */
-#define HPIC_ENDIAN 0x00 /* little endian */
-#define HPIC_CLEAR 0x80 /* currently not used */
-
-#define CHIP_ADRR 0x58
-
-static int i2c_bulkread(HANDLE hDevice, u8 addr, u8 *data, u16 length)
-{
- return 0;
-}
-
-static int i2c_bulkwrite(HANDLE hDevice, u8 addr, u8 *data, u16 length)
-{
- return 0;
-}
-
-static int i2c_dataread(HANDLE hDevice, u8 addr, u8 *data, u16 length)
-{
- return i2c_bulkread(hDevice, addr, data, length);
-}
-
-int fc8050_i2c_init(HANDLE hDevice, u16 param1, u16 param2)
-{
- return BBM_OK;
-}
-
-int fc8050_i2c_byteread(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
- u8 command = HPIC_READ | HPIC_BMODE | HPIC_ENDIAN;
- res = i2c_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= i2c_bulkread(hDevice, BBM_DATA_REG, data, 1);
-
- return res;
-}
-
-int fc8050_i2c_wordread(HANDLE hDevice, u16 addr, u16 *data)
-{
- int res;
- u8 command = HPIC_READ | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- if (BBM_SCI_DATA <= addr && BBM_SCI_SYNCRX >= addr)
- command = HPIC_READ | HPIC_WMODE | HPIC_ENDIAN;
-
- res = i2c_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= i2c_bulkread(hDevice, BBM_DATA_REG, (u8 *)data, 2);
-
- return res;
-}
-
-int fc8050_i2c_longread(HANDLE hDevice, u16 addr, u32 *data)
-{
- int res;
- u8 command = HPIC_READ | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
- res = i2c_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= i2c_bulkread(hDevice, BBM_DATA_REG, (u8 *)data, 4);
-
- return res;
-}
-
-int fc8050_i2c_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- u8 command = HPIC_READ | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
- res = i2c_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= i2c_bulkread(hDevice, BBM_DATA_REG, data, length);
-
- return res;
-}
-
-int fc8050_i2c_bytewrite(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
- u8 command = HPIC_WRITE | HPIC_BMODE | HPIC_ENDIAN;
- res = i2c_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, BBM_DATA_REG, (u8 *)&data, 1);
-
- return res;
-}
-
-int fc8050_i2c_wordwrite(HANDLE hDevice, u16 addr, u16 data)
-{
- int res;
- u8 command = HPIC_WRITE | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- if (BBM_SCI_DATA <= addr && BBM_SCI_SYNCRX >= addr)
- command = HPIC_WRITE | HPIC_WMODE | HPIC_ENDIAN;
-
- res = i2c_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, BBM_DATA_REG, (u8 *)&data, 2);
-
- return res;
-}
-
-int fc8050_i2c_longwrite(HANDLE hDevice, u16 addr, u32 data)
-{
- int res;
- u8 command = HPIC_WRITE | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
- res = i2c_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, BBM_DATA_REG, (u8 *)&data, 4);
-
- return res;
-}
-
-int fc8050_i2c_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- u8 command = HPIC_WRITE | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
- res = i2c_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= i2c_bulkwrite(hDevice, BBM_DATA_REG, data, length);
-
- return res;
-}
-
-int fc8050_i2c_dataread(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- u8 command = HPIC_READ | HPIC_BMODE | HPIC_ENDIAN;
- res = i2c_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= i2c_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= i2c_dataread(hDevice, BBM_DATA_REG, data, length);
-
- return res;
-}
-
-int fc8050_i2c_deinit(HANDLE hDevice)
-{
- return BBM_OK;
-}
diff --git a/drivers/media/tdmb/fc8050/fc8050_i2c.h b/drivers/media/tdmb/fc8050/fc8050_i2c.h
deleted file mode 100644
index b212d2c..0000000
--- a/drivers/media/tdmb/fc8050/fc8050_i2c.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8050_i2c.c
-
- Description : API of dmb baseband module
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- History :
- ----------------------------------------------------------------------
- 2009/09/14 jason initial
-*******************************************************************************/
-
-#ifndef __FC8050_I2C_H__
-#define __FC8050_I2C_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8050_i2c_init(HANDLE hDevice, u16 param1, u16 param2);
-extern int fc8050_i2c_byteread(HANDLE hDevice, u16 addr, u8 *data);
-extern int fc8050_i2c_wordread(HANDLE hDevice, u16 addr, u16 *data);
-extern int fc8050_i2c_longread(HANDLE hDevice, u16 addr, u32 *data);
-extern int fc8050_i2c_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8050_i2c_bytewrite(HANDLE hDevice, u16 addr, u8 data);
-extern int fc8050_i2c_wordwrite(HANDLE hDevice, u16 addr, u16 data);
-extern int fc8050_i2c_longwrite(HANDLE hDevice, u16 addr, u32 data);
-extern int fc8050_i2c_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8050_i2c_dataread(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8050_i2c_deinit(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __FC8050_I2C_H__ */
diff --git a/drivers/media/tdmb/fc8050/fc8050_isr.c b/drivers/media/tdmb/fc8050/fc8050_isr.c
deleted file mode 100644
index e181d49..0000000
--- a/drivers/media/tdmb/fc8050/fc8050_isr.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8050_isr.c
-
- Description : fc8050 interrupt service routine
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_hal.h"
-#include "fc8050_regs.h"
-#include "fc8050_isr.h"
-
-static u8 fic_buffer[512+4];
-static u8 msc_buffer[8192+4];
-
-int (*fic_callback)(u32 userdata, u8 *data, int length) = NULL;
-int (*msc_callback)(u32 userdata, u8 subchid, u8 *data, int length) = NULL;
-
-u32 fic_user_data;
-u32 msc_user_data;
-
-
-void fc8050_isr(HANDLE hDevice)
-{
- u8 ext_int_status = 0;
-
- bbm_read(hDevice, BBM_COM_INT_STATUS, &ext_int_status);
- bbm_write(hDevice, BBM_COM_INT_STATUS, ext_int_status);
- bbm_write(hDevice, BBM_COM_INT_STATUS, 0x00);
-
- if (ext_int_status & BBM_MF_INT) {
- u16 buf_int_status = 0;
- u16 size;
- int i;
-
- bbm_word_read(hDevice, BBM_BUF_STATUS, &buf_int_status);
- bbm_word_write(hDevice, BBM_BUF_STATUS, buf_int_status);
- bbm_word_write(hDevice, BBM_BUF_STATUS, 0x0000);
-
- if (buf_int_status & 0x0100) {
- bbm_word_read(hDevice, BBM_BUF_FIC_THR, &size);
- size += 1;
- if (size-1) {
- bbm_data(hDevice, BBM_COM_FIC_DATA
- , &fic_buffer[4], size);
-
-#ifdef CONFIG_TDMB_SPI
- if (fic_callback)
- (*fic_callback)(fic_user_data
- , &fic_buffer[6], size);
-#else
- if (fic_callback)
- (*fic_callback)(fic_user_data
- , &fic_buffer[4], size);
-#endif
- }
- }
-
- for (i = 0; i < 8; i++) {
- if (buf_int_status & (1 << i)) {
- bbm_word_read(hDevice
- , BBM_BUF_CH0_THR+i*2, &size);
- size += 1;
-
- if (size-1) {
- u8 sub_ch_id;
-
- bbm_read(hDevice, BBM_BUF_CH0_SUBCH+i
- , &sub_ch_id);
- sub_ch_id = sub_ch_id & 0x3f;
-
- bbm_data(hDevice, (BBM_COM_CH0_DATA+i)
- , &msc_buffer[4], size);
-
-#ifdef CONFIG_TDMB_SPI
- if (msc_callback)
- (*msc_callback)(
- msc_user_data
- , sub_ch_id
- , &msc_buffer[6]
- , size);
-#else
- if (msc_callback)
- (*msc_callback)(
- msc_user_data
- , sub_ch_id
- , &msc_buffer[4]
- , size);
-#endif
- }
- }
- }
-
- }
-
-}
diff --git a/drivers/media/tdmb/fc8050/fc8050_isr.h b/drivers/media/tdmb/fc8050/fc8050_isr.h
deleted file mode 100644
index 2c20368..0000000
--- a/drivers/media/tdmb/fc8050/fc8050_isr.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8050_isr.h
-
- Description : API of dmb baseband module
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-
- History :
- ----------------------------------------------------------------------
- 2009/09/11 jason initial
-*******************************************************************************/
-
-#ifndef __FC8050_ISR__
-#define __FC8050_ISR__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "fci_types.h"
-
-extern u32 fic_user_data;
-extern u32 msc_user_data;
-
-#ifdef FEATURE_FC8050_DEBUG
-extern u16 dmb_mode;
-#endif
-
-extern int (*fic_callback)(u32 userdata, u8 *data, int length);
-extern int (*msc_callback)(u32 userdata, u8 subchid, u8 *data, int length);
-
-extern void fc8050_isr(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __FC8050_ISR__ */
diff --git a/drivers/media/tdmb/fc8050/fc8050_regs.h b/drivers/media/tdmb/fc8050/fc8050_regs.h
deleted file mode 100644
index 56483c2..0000000
--- a/drivers/media/tdmb/fc8050/fc8050_regs.h
+++ /dev/null
@@ -1,414 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8050_regs.h
-
- Description : baseband header file
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/09/14 jason initial
-*******************************************************************************/
-
-#ifndef __FC8050_REGS_H__
-#define __FC8050_REGS_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* X-TAL Frequency Configuration */
-/* #define FC8050_FREQ_XTAL 16384 */
-/* #define FC8050_FREQ_XTAL 19200 */
-#define FC8050_FREQ_XTAL 24576
-/* #define FC8050_FREQ_XTAL 27000 */
-/* #define FC8050_FREQ_XTAL 38400 */
-#define FEATURE_FC8050_DEBUG
-/* #define FEATURE_INTERFACE_TEST_MODE */
-
-/* INTERRUPT SOURCE */
-#define BBM_MF_INT 0x0001
-#define BBM_WAGC_INT 0x0002
-#define BBM_RECFG_INT 0x0004
-#define BBM_TII_INT 0x0008
-#define BBM_SYNC_INT 0x0010
-#define BBM_I2C_INT 0x0020
-#define BBM_SCI_INT 0x0040
-
-/* Host Access Common Register */
-#define BBM_COMMAND_REG 0x0000
-#define BBM_ADDRESS_REG 0x0001
-#define BBM_DATA_REG 0x0002
-
-/* COMMON */
-#define BBM_COM_AP2APB_LT 0x0000
-#define BBM_COM_RESET 0x0001
-#define BBM_COM_INT_STATUS 0x0002
-#define BBM_COM_INT_ENABLE 0x0003
-#define BBM_COM_STATUS_ENABLE 0x0006
-#define BBM_COM_FIC_DATA 0x0007
-#define BBM_COM_CH0_DATA 0x0008
-#define BBM_COM_CH1_DATA 0x0009
-#define BBM_COM_CH2_DATA 0x000a
-#define BBM_COM_CH3_DATA 0x000b
-#define BBM_COM_CH4_DATA 0x000c
-#define BBM_COM_CH5_DATA 0x000d
-#define BBM_COM_CH6_DATA 0x000e
-#define BBM_COM_CH7_DATA 0x000f
-
-/* QDD */
-#define BBM_QDD_SYNC_RST_EN 0x0010
-#define BBM_QDD_CHIP_IDL 0x0012
-#define BBM_QDD_CHIP_IDH 0x0013
-#define BBM_QDD_COMMAN 0x0014
-#define BBM_QDD_TUN_COMMA 0x0015
-#define BBM_QDD_TRAGET_RMS 0x0016
-#define BBM_QDD_TUN_GAIN 0x0017
-#define BBM_QDD_TUN_GAIN_LOC 0x0018
-#define BBM_QDD_QLEVEL 0x0019
-#define BBM_QDD_GAIN_MIN 0x001a
-#define BBM_QDD_GAIN_MAX 0x001b
-#define BBM_QDD_AGC_GAIN 0x001c
-#define BBM_QDD_IF_RMS 0x001d
-#define BBM_QDD_AGC_CTRL 0x001e
-#define BBM_QDD_AGC_PERIOD 0x001f
-#define BBM_QDD_AGC_STEP 0x0020
-#define BBM_QDD_DC_CTRL 0x0021
-#define BBM_QDD_I_COMP 0x0022
-#define BBM_QDD_Q_COMP 0x0023
-#define BBM_QDD_I_DC 0x0024
-#define BBM_QDD_Q_DC 0x0025
-#define BBM_QDD_PWM_VALL 0x0026
-#define BBM_QDD_PWM_VALH 0x0027
-#define BBM_QDD_PWM_CTRL 0x0028
-#define BBM_QDD_UPDN_PERIOD 0x0029
-#define BBM_QDD_M_FREQ_OFFSET 0x002a
-#define BBM_QDD_COEF_BANK_SEL 0x0030
-#define BBM_QDD_COEF 0x0031
-#define BBM_QDD_AGC530_EN 0x0032
-#define BBM_QDD_BLOCK_AVG_SIZE 0x0033
-#define BBM_QDD_BLOCK_AVG_SIZE_LOCK 0x0034
-#define BBM_QDD_GAIN_UPDATE_SPEED 0x0035
-#define BBM_QDD_REF_AMPL 0x0036
-#define BBM_QDD_BW_CTRL_LOCK 0x0037
-#define BBM_QDD_GAIN_CONSTANT 0x0038
-#define BBM_QDD_GAIN_CONSTANT_LOCK 0x0039
-#define BBM_QDD_BLOCK_AVG 0x003a
-#define BBM_QDD_DET_CNT_BOUND 0x003c
-#define BBM_QDD_AGC_LOCK 0x003e
-#define BBM_QDD_UPDOWN_CLK_PERIOD 0x003f
-
-/* SYNC */
-#define BBM_SYNC_WIN_SIZE 0x0050
-#define BBM_SYNC_FRSYNC_PERIOD 0x0052
-#define BBM_SYNC_NF_ON 0x0053
-#define BBM_SYNC_RMS_CLIP 0x0054
-#define BBM_SYNC_GSG_CF 0x0056
-#define BBM_SYNC_MIN_CF 0x0057
-#define BBM_SYNC_GCMD_CF 0x0058
-#define BBM_SYNC_FTERR_THRESH 0x005A
-#define BBM_SYNC_MA_GAIN 0x005B
-#define BBM_SYNC_FTSYNC_CTRL 0x005C
-#define BBM_SYNC_LPF_POWER 0x005e
-#define BBM_SYNC_HPF_POWER 0x005f
-#define BBM_SYNC_MODE 0x0060
-#define BBM_SYNC_FFT_SHIFT 0x0061
-#define BBM_SYNC_FF_ERROR 0x0062
-#define BBM_SYNC_CIR_THRESH 0x0064
-#define BBM_SYNC_FF_AVG_LEN 0x0065
-#define BBM_SYNC_D4GIBSHIFT 0x0066
-#define BBM_SYNC_CF_CBW 0x0067
-#define BBM_SYNC_CF_ERROR 0x0068
-#define BBM_SYNC_CFOFFSET_RNGP 0x006a
-#define BBM_SYNC_CFOFFSET_RNGM 0x006b
-#define BBM_SYNC_CFOFFSET_TGT 0x006c
-#define BBM_SYNC_FIC_CNTRL 0x006d
-#define BBM_SYNC_DET_CNTRL 0x0070
-#define BBM_SYNC_DET_ACC_PERIOD 0x0071
-#define BBM_SYNC_DET_MAX_THRL 0x0072
-#define BBM_SYNC_DET_MAX_THRH 0x0073
-#define BBM_SYNC_DET_MAX_MAGL 0x0074
-#define BBM_SYNC_DET_MAX_MAGH 0x0075
-#define BBM_SYNC_DET_MEAN_MAGL 0x0076
-#define BBM_SYNC_DET_MEAN_MAGH 0x0077
-#define BBM_SYNC_DET_STATUS 0x0078
-#define BBM_SYNC_DET_DONECNT 0x0079
-#define BBM_SYNC_DET_OKCNT 0x007A
-#define BBM_SYNC_DET_MODE_ENABLE 0x007B
-
-#define BBM_SYNC_NSBLK 0x0090
-#define BBM_SYNC_FTOFFSET 0x0092
-#define BBM_SYNC_FT_RANGE 0x0094
-#define BBM_SYNC_CNTRL 0x0096
-#define BBM_SYNC_STATUS 0x0098
-#define BBM_SYNC_AMD_RANGE 0x009a
-#define BBM_SYNC_ERR_THRESH 0x009e
-#define BBM_SYNC_LOOP 0x009f
-#define BBM_SYNC_WINDOW 0x00a0
-#define BBM_SYNC_NONZERO 0x00a1
-#define BBM_SYNC_LOOP_OUT 0x00a2
-#define BBM_SYNC_TUNER 0x00a4
-#define BBM_SYNC_TII_CTRL 0x00a5
-#define BBM_SYNC_MIN_THRESH 0x00a6
-#define BBM_SYNC_MAINID1 0x00a7
-#define BBM_SYNC_SUBID1 0x00a8
-#define BBM_SYNC_MAINID2 0x00a9
-#define BBM_SYNC_SUBID2 0x00aa
-#define BBM_SYNC_ID1_POWER 0x00ab
-#define BBM_SYNC_ID2_POWER 0x00ac
-#define BBM_SYNC_TII_THRESH 0x00ad
-#define BBM_SYNC_MODE_TARGET 0x00ae
-#define BBM_SYNC_SYNC_TEST_SEL 0x00af
-
-/* AGC */
-#define BBM_AGC_REFGAIN 0x0110
-#define BBM_AGC_PERIOD 0x0111
-#define BBM_AGC_GAIN_EXP 0x0113
-#define BBM_AGC_GAIN_FRP 0x0114
-#define BBM_AGC_RMS 0x0116
-#define BBM_AGC_MTH 0x0117
-#define BBM_AGC_Q_LEVEL 0x0118
-#define BBM_AGC_UPDATE_VAL 0x0119
-#define BBM_AGC_FIXED_ON 0x011b
-#define BBM_AGC_EXP_FIXED 0x011c
-#define BBM_AGC_FR_FIXED 0x011d
-#define BBM_AGC_CTRL 0x011f
-
-/* FFT */
-#define BBM_FFT_SCALEV_FFT 0x0120
-#define BBM_FFT_SCALEV_IFFT 0x0122
-#define BBM_FFT_ADC_CONTROL 0x0128
-#define BBM_FFT_MODEM_STSL 0x0129
-#define BBM_FFT_MODEM_STSH 0x012A
-#define BBM_FFT_PAD_DRIVING_SEL 0x012B
-
-/* TII */
-#define BBM_TII_IF_EN 0x0130
-#define BBM_TII_DATA 0x0131
-#define BBM_TII_DATA_LEN 0x0132
-
-/* DIDP */
-#define BBM_DIDP_CH_EN 0x0150
-#define BBM_DIDP_MODE 0x0151
-#define BBM_DIDP_CH0_SUBCH 0x0152
-#define BBM_DIDP_CH1_SUBCH 0x0153
-#define BBM_DIDP_CH2_SUBCH 0x0154
-#define BBM_DIDP_CH3_SUBCH 0x0155
-#define BBM_DIDP_CH4_SUBCH 0x0156
-#define BBM_DIDP_CH5_SUBCH 0x0157
-#define BBM_DIDP_CH6_SUBCH 0x0158
-#define BBM_DIDP_CH7_SUBCH 0x0159
-#define BBM_DIDP_POWER_OPT0 0x015a
-#define BBM_DIDP_ADD_N_SHIFT0 0x015b
-#define BBM_DIDP_POWER_OPT1 0x015c
-#define BBM_DIDP_ADD_N_SHIFT1 0x015d
-#define BBM_DIDP_POWER_OPT2 0x015e
-#define BBM_DIDP_ADD_N_SHIFT2 0x015f
-
-/* VT */
-#define BBM_VT_BER_PERIOD 0x0210
-#define BBM_VT_ERROR_SUM 0x0214
-#define BBM_VT_RT_BER_PERIOD 0x0218
-#define BBM_VT_RT_ERROR_SUM 0x021c
-#define BBM_VT_CONTROL 0x0220
-
-/* FIC */
-#define BBM_FIC_CRC_CONTROL 0x0222
-#define BBM_FIC_ERR_SUM 0x0223
-
-/* CDI */
-#define BBM_CDI0_SUBCH_EN 0x0224
-#define BBM_CDI1_SUBCH_EN 0x0225
-#define BBM_CDI0_COUNT 0x0226
-#define BBM_CDI1_COUNT 0x0227
-#define BBM_CDI0_ERROR 0x0228
-#define BBM_CDI1_ERROR 0x0229
-#define BBM_CDI_SYNC_PATTERN 0x022a
-#define BBM_CDI_CONTROL 0x022b
-
-/* RS */
-#define BBM_RS_BER_PERIOD 0x022c
-#define BBM_RS_FAIL_COUNT 0x022e
-#define BBM_RS_ERR_SUM 0x0230
-#define BBM_RS_RT_BER_PER 0x0234
-#define BBM_RS_RT_FAIL_CNT 0x0236
-#define BBM_RS_RT_ERR_SUM 0x0238
-#define BBM_RS_CONTROL 0x023e
-
-/* BUF */
-#define BBM_BUF_STATUS 0x0250
-#define BBM_BUF_OVERRUN 0x0252
-#define BBM_BUF_ENABLE 0x0254
-#define BBM_BUF_INT 0x0256
-#define BBM_BUF_STS_CTRL 0x0258
-#define BBM_BUF_STS_CLK_DIV 0x0259
-#define BBM_BUF_STS_CHID 0x025a
-#define BBM_BUF_CLOCK_EN 0x025b
-#define BBM_BUF_MISC_CTRL 0x025c
-#define BBM_BUF_TEST_MODE 0x025d
-#define BBM_BUF_TEST_SIGNAL 0x025e
-#define BBM_BUF_CH0_SUBCH 0x0260
-#define BBM_BUF_CH1_SUBCH 0x0261
-#define BBM_BUF_CH2_SUBCH 0x0262
-#define BBM_BUF_CH3_SUBCH 0x0263
-#define BBM_BUF_CH4_SUBCH 0x0264
-#define BBM_BUF_CH5_SUBCH 0x0265
-#define BBM_BUF_CH6_SUBCH 0x0266
-#define BBM_BUF_CH7_SUBCH 0x0267
-#define BBM_BUF_CH0_START 0x0268
-#define BBM_BUF_CH1_START 0x026a
-#define BBM_BUF_CH2_START 0x026c
-#define BBM_BUF_CH3_START 0x026e
-#define BBM_BUF_CH4_START 0x0270
-#define BBM_BUF_CH5_START 0x0272
-#define BBM_BUF_CH6_START 0x0274
-#define BBM_BUF_CH7_START 0x0276
-#define BBM_BUF_FIC_START 0x0278
-#define BBM_BUF_CH0_END 0x0290
-#define BBM_BUF_CH1_END 0x0292
-#define BBM_BUF_CH2_END 0x0294
-#define BBM_BUF_CH3_END 0x0296
-#define BBM_BUF_CH4_END 0x0298
-#define BBM_BUF_CH5_END 0x029a
-#define BBM_BUF_CH6_END 0x029c
-#define BBM_BUF_CH7_END 0x029e
-#define BBM_BUF_FIC_END 0x02a0
-#define BBM_BUF_CH0_THR 0x02a2
-#define BBM_BUF_CH1_THR 0x02a4
-#define BBM_BUF_CH2_THR 0x02a6
-#define BBM_BUF_CH3_THR 0x02a8
-#define BBM_BUF_CH4_THR 0x02aa
-#define BBM_BUF_CH5_THR 0x02ac
-#define BBM_BUF_CH6_THR 0x02ae
-#define BBM_BUF_CH7_THR 0x02b0
-#define BBM_BUF_FIC_THR 0x02b2
-
-/* I2C */
-#define BBM_I2C_PR 0x0310
-#define BBM_I2C_CTR 0x0312
-#define BBM_I2C_RXR 0x0313
-#define BBM_I2C_SR 0x0314
-#define BBM_I2C_TXR 0x0315
-#define BBM_I2C_CR 0x0316
-
-#define BBM_TS_PAUSE 0x0378
-#define BBM_TS_SELECT 0x037A
-
-/* SCI (PL131) */
-/* 0x000 SCIDATA ,SCI Data register */
-#define BBM_SCI_DATA 0x0390
-/* 0x004 SCICR0 ,SCI Control register 0 */
-#define BBM_SCI_CR0 0x0392
-/* 0x008 SCICR1 ,SCI Control register 1 */
-#define BBM_SCI_CR1 0x0394
-/* 0x00C SCICR2 ,SCI Control register 2 */
-#define BBM_SCI_CR2 0x0396
-/* 0x010 SCICLKICC ,SCI Smart card clock frequency */
-#define BBM_SCI_CLKICC 0x0398
-/* 0x014 SCIVALUE ,SCI Baud cycles time register */
-#define BBM_SCI_VALUE 0x039a
-/* 0x018 SCIBAUD ,SCI Baud rate clock time */
-#define BBM_SCI_BAUD 0x039c
-/* 0x01C SCITIDE ,SCI Tx and Rx Tide mark */
-#define BBM_SCI_TIDE 0x039e
-/* 0x020 SCIDMACR ,SCI Direct Memory Access control register */
-#define BBM_SCI_DMACR 0x03a0
-/* 0x024 SCISTABLE ,SCI Debounce time register */
-#define BBM_SCI_STABLE 0x03a2
-/* 0x028 SCIATIME ,SCI card activation event time register */
-#define BBM_SCI_ATIME 0x03a4
-/* 0x02C SCIDTIME ,SCI card deactivation event time register */
-#define BBM_SCI_DTIME 0x03a6
-/* 0x030 SCIATRSTIME ,SCI ATR start time register */
-#define BBM_SCI_ATRSTIME 0x03a8
-/* 0x034 SCIATRDTIME ,SCI ATR duration time register */
-#define BBM_SCI_ATRDTIME 0x03aa
-/* 0x038 SCISTOPTIME ,SCI Duration before Card Clk can be stopped */
-#define BBM_SCI_STOPTIME 0x03ac
-/* 0x03C SCISTARTTIME ,SCI Duration before Card Clk can be re-started */
-#define BBM_SCI_STARTTIME 0x03ae
-/* 0x040 SCIRETRY ,SCI Tx and Rx Retry register */
-#define BBM_SCI_RETRY 0x03b0
-/* 0x044 SCICHTIMELS ,SCI Char to char timeout timeout least sig. */
-#define BBM_SCI_CHTIMELS 0x03b2
-/* 0x048 SCICHTIMEMS ,SCI Char to char timeout timeout most sig. */
-#define BBM_SCI_CHTIMEMS 0x03b4
-/* 0x04C SCIBLKTIMELS ,SCI Receive timeout between blocks least sig. */
-#define BBM_SCI_BLKTIMELS 0x03b6
-/* 0x050 SCIBLKTIMEMS ,SCI Receive timeout between blocks most sig. */
-#define BBM_SCI_BLKTIMEMS 0x03b8
-/* 0x054 SCICHGUARD ,SCI Character guard time register */
-#define BBM_SCI_CHGUARD 0x03ba
-/* 0x058 SCIBLKGUARD ,SCI Block guard time register */
-#define BBM_SCI_BLKGUARD 0x03bc
-/* 0x05C SCIRXTIME ,SCI RX read timeout register */
-#define BBM_SCI_RXTIME 0x03be
-/* 0x060 SCIFIFOSTATUS ,SCI TX and RX FIFO Status */
-#define BBM_SCI_FIFOSTATUS 0x03d0
-/* 0X064 SCITXCOUNT ,SCI TX FIFO fill level */
-#define BBM_SCI_TXCOUNT 0x03d2
-/* 0x068 SCIRXCOUNT ,SCI RX FIFO fill level */
-#define BBM_SCI_RXCOUNT 0x03d4
-/* 0x06C SCIIMSC ,SCI Interrupt mask set or clear register */
-#define BBM_SCI_IMSC 0x03d6
-/* 0x070 SCIRIS ,SCI Raw interrupt status register */
-#define BBM_SCI_RIS 0x03d8
-/* 0x074 SCIMIS ,SCI Masked interrupt status register */
-#define BBM_SCI_MIS 0x03da
-/* 0x078 SCIICR ,SCI Interrupt clear register */
-#define BBM_SCI_ICR 0x03dc
-/* 0x07C SCISYNCACT ,SCI Synchronous mode Activation register */
-#define BBM_SCI_SYNCACT 0x03de
-/* 0x080 SCISYNCTX ,SCI Synchronous mode transmit register */
-#define BBM_SCI_SYNCTX 0x03e0
-/* 0x084 SCISYNCRX ,SCI Synchronous mode receive register */
-#define BBM_SCI_SYNCRX 0x03e2
-
-/* ----------------------------------------------------
-// BUFFER MANAGEMENT
-//---------------------------------------------------- */
-#define FIC_BUF_START 0x0000
-#define FIC_BUF_LENGTH (32*24)
-#define FIC_BUF_END (FIC_BUF_START + FIC_BUF_LENGTH - 1)
-#define FIC_BUF_THR (FIC_BUF_LENGTH/2-1)
-
-#define CH0_BUF_START (FIC_BUF_START + FIC_BUF_LENGTH)
-#define CH0_BUF_LENGTH (188*40*2)
-#define CH0_BUF_END (CH0_BUF_START + CH0_BUF_LENGTH - 1)
-#define CH0_BUF_THR (CH0_BUF_LENGTH/2-1)
-
-#define CH1_BUF_START (FIC_BUF_START + FIC_BUF_LENGTH)
-#define CH1_BUF_LENGTH (0)
-#define CH1_BUF_END (CH1_BUF_START + CH1_BUF_LENGTH - 1)
-#define CH1_BUF_THR (0)
-
-#define CH2_BUF_START (FIC_BUF_START + FIC_BUF_LENGTH)
-#define CH2_BUF_LENGTH (128*6)
-#define CH2_BUF_END (CH2_BUF_START + CH2_BUF_LENGTH - 1)
-#define CH2_BUF_THR (CH2_BUF_LENGTH/2-1)
-
-#define CH3_BUF_START (FIC_BUF_START + FIC_BUF_LENGTH)
-#define CH3_BUF_LENGTH (188*20*2)
-#define CH3_BUF_END (CH3_BUF_START + CH3_BUF_LENGTH - 1)
-#define CH3_BUF_THR (CH3_BUF_LENGTH/2-1)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __FC8050_REGS_H__ */
diff --git a/drivers/media/tdmb/fc8050/fc8050_spi.c b/drivers/media/tdmb/fc8050/fc8050_spi.c
deleted file mode 100644
index 23db2d5..0000000
--- a/drivers/media/tdmb/fc8050/fc8050_spi.c
+++ /dev/null
@@ -1,324 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8050_spi.c
-
- Description : fc8050 host interface
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-#include <linux/input.h>
-#include <linux/spi/spi.h>
-
-#include "fci_types.h"
-#include "fc8050_regs.h"
-#include "fci_oal.h"
-#include "fc8050_spi.h"
-
-#include "tdmb.h"
-
-#define DRIVER_NAME "fc8050_spi"
-
-#define HPIC_READ 0x01 /* read command */
-#define HPIC_WRITE 0x02 /* write command */
-#define HPIC_AINC 0x04 /* address increment */
-#define HPIC_BMODE 0x00 /* byte mode */
-#define HPIC_WMODE 0x10 /* word mode */
-#define HPIC_LMODE 0x20 /* long mode */
-#define HPIC_ENDIAN 0x00 /* little endian */
-#define HPIC_CLEAR 0x80 /* currently not used */
-
-#define CHIPID 0
-#if (CHIPID == 0)
-#define SPI_CMD_WRITE 0x0
-#define SPI_CMD_READ 0x1
-#define SPI_CMD_BURST_WRITE 0x2
-#define SPI_CMD_BURST_READ 0x3
-#else
-#define SPI_CMD_WRITE 0x4
-#define SPI_CMD_READ 0x5
-#define SPI_CMD_BURST_WRITE 0x6
-#define SPI_CMD_BURST_READ 0x7
-#endif
-
-struct spi_device *fc8050_spi;
-
-static u8 tx_data[10];
-
-static DEFINE_MUTEX(lock);
-
-int fc8050_spi_write_then_read(
- struct spi_device *spi
- , u8 *txbuf
- , u16 tx_length
- , u8 *rxbuf
- , u16 rx_length)
-{
- s32 res;
-
- struct spi_message message;
- struct spi_transfer x;
-
- spi_message_init(&message);
- memset(&x, 0, sizeof x);
-
- spi_message_add_tail(&x, &message);
-
- x.tx_buf = txbuf;
- x.rx_buf = txbuf;
- x.len = tx_length + rx_length;
-
- res = spi_sync(spi, &message);
-
- memcpy(rxbuf, x.rx_buf + tx_length, rx_length);
-
- return res;
-}
-
-int fc8050_spi_write_then_burstread(
- struct spi_device *spi
- , u8 *txbuf
- , u16 tx_length
- , u8 *rxbuf
- , u16 rx_length)
-{
- s32 res;
-
- struct spi_message message;
- struct spi_transfer x;
-
- spi_message_init(&message);
- memset(&x, 0, sizeof x);
-
- spi_message_add_tail(&x, &message);
-
- x.tx_buf = txbuf;
- x.rx_buf = rxbuf;
- x.len = tx_length + rx_length;
-
- res = spi_sync(spi, &message);
-
- return res;
-}
-
-static int spi_bulkread(HANDLE hDevice, u8 addr, u8 *data, u16 length)
-{
- s32 ret;
-
- tx_data[0] = SPI_CMD_BURST_READ;
- tx_data[1] = addr;
-
- fc8050_spi = tdmb_get_spi_handle();
- ret = fc8050_spi_write_then_read(
- fc8050_spi, &tx_data[0], 2, &data[0], length);
-
- if (ret) {
- print_log(0, "fc8050_spi_bulkread fail : %d\n", ret);
- return BBM_NOK;
- }
-
- return BBM_OK;
-}
-
-static int spi_bulkwrite(HANDLE hDevice, u8 addr, u8 *data, u16 length)
-{
- s32 ret;
- s32 i;
-
- tx_data[0] = SPI_CMD_BURST_WRITE;
- tx_data[1] = addr;
-
- for (i = 0; i < length; i++)
- tx_data[2+i] = data[i];
-
- fc8050_spi = tdmb_get_spi_handle();
- ret = fc8050_spi_write_then_read(
- fc8050_spi, &tx_data[0], length+2, NULL, 0);
-
- if (ret) {
- print_log(0, "fc8050_spi_bulkwrite fail : %d\n", ret);
- return BBM_NOK;
- }
-
- return BBM_OK;
-}
-
-static int spi_dataread(HANDLE hDevice, u8 addr, u8 *data, u16 length)
-{
- s32 ret = 0;
-
- tx_data[0] = SPI_CMD_BURST_READ;
- tx_data[1] = addr;
-
- fc8050_spi = tdmb_get_spi_handle();
-
- ret = fc8050_spi_write_then_burstread(
- fc8050_spi, &tx_data[0], 2, &data[0], length);
-
- if (ret) {
- print_log(0, "fc8050_spi_dataread fail : %d\n", ret);
- return BBM_NOK;
- }
-
- return BBM_OK;
-}
-
-int fc8050_spi_init(HANDLE hDevice, u16 param1, u16 param2)
-{
-
- return BBM_OK;
-}
-
-int fc8050_spi_byteread(HANDLE hDevice, u16 addr, u8 *data)
-{
- int res;
- u8 command = HPIC_READ | HPIC_BMODE | HPIC_ENDIAN;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= spi_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= spi_bulkread(hDevice, BBM_DATA_REG, data, 1);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8050_spi_wordread(HANDLE hDevice, u16 addr, u16 *data)
-{
- int res;
- u8 command = HPIC_READ | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- if (BBM_SCI_DATA <= addr && BBM_SCI_SYNCRX >= addr)
- command = HPIC_READ | HPIC_WMODE | HPIC_ENDIAN;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= spi_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= spi_bulkread(hDevice, BBM_DATA_REG, (u8 *)data, 2);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8050_spi_longread(HANDLE hDevice, u16 addr, u32 *data)
-{
- int res;
- u8 command = HPIC_READ | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= spi_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= spi_bulkread(hDevice, BBM_DATA_REG, (u8 *)data, 4);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8050_spi_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- u8 command = HPIC_READ | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= spi_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= spi_bulkread(hDevice, BBM_DATA_REG, data, length);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8050_spi_bytewrite(HANDLE hDevice, u16 addr, u8 data)
-{
- int res;
- u8 command = HPIC_WRITE | HPIC_BMODE | HPIC_ENDIAN;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= spi_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= spi_bulkwrite(hDevice, BBM_DATA_REG, (u8 *)&data, 1);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8050_spi_wordwrite(HANDLE hDevice, u16 addr, u16 data)
-{
- int res;
- u8 command = HPIC_WRITE | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- if (BBM_SCI_DATA <= addr && BBM_SCI_SYNCRX >= addr)
- command = HPIC_WRITE | HPIC_WMODE | HPIC_ENDIAN;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= spi_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= spi_bulkwrite(hDevice, BBM_DATA_REG, (u8 *)&data, 2);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8050_spi_longwrite(HANDLE hDevice, u16 addr, u32 data)
-{
- int res;
- u8 command = HPIC_WRITE | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= spi_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= spi_bulkwrite(hDevice, BBM_DATA_REG, (u8 *)&data, 4);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8050_spi_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- u8 command = HPIC_WRITE | HPIC_AINC | HPIC_BMODE | HPIC_ENDIAN;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= spi_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= spi_bulkwrite(hDevice, BBM_DATA_REG, data, length);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8050_spi_dataread(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- int res;
- u8 command = HPIC_READ | HPIC_BMODE | HPIC_ENDIAN;
-
- mutex_lock(&lock);
- res = spi_bulkwrite(hDevice, BBM_COMMAND_REG, &command, 1);
- res |= spi_bulkwrite(hDevice, BBM_ADDRESS_REG, (u8 *)&addr, 2);
- res |= spi_dataread(hDevice, BBM_DATA_REG, data, length);
- mutex_unlock(&lock);
-
- return res;
-}
-
-int fc8050_spi_deinit(HANDLE hDevice)
-{
- print_log(NULL, "fc8050_spi_deinit\n");
- return BBM_OK;
-}
diff --git a/drivers/media/tdmb/fc8050/fc8050_spi.h b/drivers/media/tdmb/fc8050/fc8050_spi.h
deleted file mode 100644
index c973701..0000000
--- a/drivers/media/tdmb/fc8050/fc8050_spi.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8050_spi.c
-
- Description : API of dmb baseband module
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/09/14 jason initial
-*******************************************************************************/
-
-#ifndef __FC8050_SPI__
-#define __FC8050_SPI__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8050_spi_init(HANDLE hDevice, u16 param1, u16 param2);
-extern int fc8050_spi_byteread(HANDLE hDevice, u16 addr, u8 *data);
-extern int fc8050_spi_wordread(HANDLE hDevice, u16 addr, u16 *data);
-extern int fc8050_spi_longread(HANDLE hDevice, u16 addr, u32 *data);
-extern int fc8050_spi_bulkread(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8050_spi_bytewrite(HANDLE hDevice, u16 addr, u8 data);
-extern int fc8050_spi_wordwrite(HANDLE hDevice, u16 addr, u16 data);
-extern int fc8050_spi_longwrite(HANDLE hDevice, u16 addr, u32 data);
-extern int fc8050_spi_bulkwrite(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8050_spi_dataread(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-extern int fc8050_spi_deinit(HANDLE hDevice);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __FC8050_SPI__ */
diff --git a/drivers/media/tdmb/fc8050/fc8050_tun.c b/drivers/media/tdmb/fc8050/fc8050_tun.c
deleted file mode 100644
index 7b73f77..0000000
--- a/drivers/media/tdmb/fc8050/fc8050_tun.c
+++ /dev/null
@@ -1,255 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8050_tun.c
-
- Description : fc8050 host interface
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/09/14 jason initial
- 2009/11/26 MPW Config1p0
- 2010/02/24 SLR Config1p0
- 2010/05/04 SLR Config1p2
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fci_tun.h"
-#include "fci_hal.h"
-#include "fc8050_regs.h"
-
-#define FEATURE_TUNER_BURST_MODE
-
-static int fc8050_write(HANDLE hDevice, u8 addr, u8 data)
-{
- int res;
- u8 tmp;
-
- tmp = data;
- res = tuner_i2c_write(hDevice, addr, 1, &tmp, 1);
-
- return res;
-}
-
-static int fc8050_read(HANDLE hDevice, u8 addr, u8 *data)
-{
- int res;
-
- res = tuner_i2c_read(hDevice, addr, 1, data, 1);
-
- return res;
-}
-
-static int fc8050_set_filter(HANDLE hDevice)
-{
- int i;
- u8 cal_mon = 0;
-
-#if (FC8050_FREQ_XTAL == 19200)
- fc8050_write(hDevice, 0x02, 0x86);
-
- fc8050_write(hDevice, 0x3B, 0x52);
- fc8050_write(hDevice, 0x32, 0x09);
-#elif (FC8050_FREQ_XTAL == 16384)
- fc8050_write(hDevice, 0x02, 0x86);
-
- fc8050_write(hDevice, 0x3B, 0x45);
- fc8050_write(hDevice, 0x32, 0x09);
-#elif (FC8050_FREQ_XTAL == 24576)
- fc8050_write(hDevice, 0x02, 0x86);
-
- fc8050_write(hDevice, 0x3B, 0x68);
- fc8050_write(hDevice, 0x32, 0x09);
-#elif (FC8050_FREQ_XTAL == 27000)
- fc8050_write(hDevice, 0x02, 0x86);
-
- fc8050_write(hDevice, 0x3B, 0x71);
- fc8050_write(hDevice, 0x32, 0x09);
-#elif (FC8050_FREQ_XTAL == 27120)
- fc8050_write(hDevice, 0x02, 0x86);
-
- fc8050_write(hDevice, 0x3B, 0x74);
- fc8050_write(hDevice, 0x32, 0x09);
-#elif (FC8050_FREQ_XTAL == 38400)
- fc8050_write(hDevice, 0x02, 0x86);
-
- fc8050_write(hDevice, 0x3B, 0xA1);
- fc8050_write(hDevice, 0x32, 0x09);
-#else
- return BBM_NOK;
-#endif
-
- for (i = 0; i < 10; i++) {
- ms_wait(5);
- fc8050_read(hDevice, 0x33, &cal_mon);
- if ((cal_mon & 0xC0) == 0xC0)
- break;
- fc8050_write(hDevice, 0x32, 0x01);
- fc8050_write(hDevice, 0x32, 0x09);
- }
-
- fc8050_write(hDevice, 0x32, 0x01);
-
- return BBM_OK;
-}
-
-static int fc8050_lband_init(HANDLE hDevice)
-{
- print_log(hDevice, "fc8050_lband_init\n");
- return BBM_NOK;
-}
-
-static int fc8050_band3_init(HANDLE hDevice)
-{
- print_log(hDevice, "fc8050_band3_init\n");
-
- fc8050_write(hDevice, 0x00, 0x00);
-
- fc8050_write(hDevice, 0x00, 0x00);
- fc8050_write(hDevice, 0x02, 0x86);
-
- fc8050_write(hDevice, 0x05, 0xD8);
- fc8050_write(hDevice, 0x0A, 0x83);
- fc8050_write(hDevice, 0x16, 0x0d);
- fc8050_write(hDevice, 0x13, 0x88);
- fc8050_write(hDevice, 0x15, 0x00);
- fc8050_write(hDevice, 0x21, 0x73);
-
- fc8050_write(hDevice, 0x57, 0x40);
- fc8050_write(hDevice, 0x69, 0x8C);
- fc8050_write(hDevice, 0x51, 0x04);
- fc8050_write(hDevice, 0x53, 0x00);
- fc8050_write(hDevice, 0x54, 0x28);
- fc8050_write(hDevice, 0x45, 0x40);
- fc8050_write(hDevice, 0x46, 0x32);
- fc8050_write(hDevice, 0x48, 0x40);
- fc8050_write(hDevice, 0x49, 0x32);
- fc8050_write(hDevice, 0x7A, 0x88);
- fc8050_write(hDevice, 0x53, 0x01);
- fc8050_write(hDevice, 0x58, 0x34);
- fc8050_write(hDevice, 0x59, 0x2A);
- fc8050_write(hDevice, 0x5A, 0x1D);
- fc8050_write(hDevice, 0x5B, 0x14);
- fc8050_write(hDevice, 0x61, 0x64);
- fc8050_write(hDevice, 0x74, 0x3A);
- fc8050_write(hDevice, 0x75, 0x1E);
- fc8050_write(hDevice, 0x6A, 0x0C);
- fc8050_write(hDevice, 0x6C, 0x0C);
- fc8050_write(hDevice, 0x6E, 0x0C);
- fc8050_write(hDevice, 0x70, 0x0C);
- fc8050_write(hDevice, 0x72, 0x0C);
- fc8050_write(hDevice, 0x7C, 0x0C);
- fc8050_write(hDevice, 0x4E, 0x26);
- fc8050_write(hDevice, 0x31, 0x13);
- fc8050_write(hDevice, 0x34, 0x53);
- fc8050_write(hDevice, 0x43, 0x20);
- fc8050_write(hDevice, 0x2e, 0x70);
-
- fc8050_set_filter(hDevice);
- return BBM_OK;
-}
-
-int fc8050_tuner_init(HANDLE hDevice, u32 band)
-{
- int res = BBM_NOK;
-
- bbm_write(hDevice, BBM_QDD_COMMAN, 0x5C);
- bbm_write(hDevice, BBM_QDD_AGC_STEP, 0x03);
- bbm_write(hDevice, BBM_QDD_TUN_COMMA, 0x40);
- bbm_write(hDevice, BBM_QDD_TUN_GAIN, 0x24);
- bbm_write(hDevice, BBM_QDD_AGC_PERIOD, 0x14);
- bbm_write(hDevice, BBM_QDD_TRAGET_RMS, 0x60);
- bbm_write(hDevice, BBM_QDD_TUN_GAIN_LOC, 0x44);
- bbm_write(hDevice, BBM_QDD_GAIN_MAX, 0x38);
-
- if (band == LBAND_TYPE)
- res = fc8050_lband_init(hDevice);
- else if (band == BAND3_TYPE)
- res = fc8050_band3_init(hDevice);
- else
- return BBM_NOK;
-
- if (res != BBM_OK)
- return res;
-
- return res;
-}
-
-int fc8050_set_freq(HANDLE hDevice, u32 band, u32 f_lo)
-{
- u32 f_diff, f_diff_shifted, n_val, k_val;
- u32 f_vco = f_lo * 12;
- u32 r_val = (f_vco >= 25 * FC8050_FREQ_XTAL) ? 1 : 2;
- u32 f_comp = FC8050_FREQ_XTAL/r_val;
- u8 pre_shift_bits = 4;
- u8 data_0x0E;
-
- fc8050_write(hDevice, 0x0a, 0x85);
- fc8050_write(hDevice, 0x16, 0x0d);
-
- n_val = f_vco / f_comp;
-
- f_diff = f_vco - f_comp * n_val;
- f_diff_shifted = f_diff << (20 - pre_shift_bits);
- k_val = f_diff_shifted / ((f_comp) >> pre_shift_bits);
-
- k_val = (f_diff_shifted + (f_comp >> (pre_shift_bits+1)))
- / (f_comp >> pre_shift_bits);
-
- data_0x0E = ((r_val == 1) ? 0x40 : 0x50) + (unsigned char)(k_val >> 16);
- fc8050_write(hDevice, 0x0E, data_0x0E);
- fc8050_write(hDevice, 0x0F, (unsigned char)(k_val >> 8));
- fc8050_write(hDevice, 0x10, (unsigned char)(k_val));
- fc8050_write(hDevice, 0x11, (unsigned char)(n_val));
-
- fc8050_write(hDevice, 0x0a, 0x83);
-
- return BBM_OK;
-}
-
-int fc8050_get_rssi(HANDLE hDevice, int *rssi)
-{
- int res = BBM_OK;
- u8 LNA, RFVGA, PREAMP_PGA, CSF = 0x00;
- int K = -66;
-#ifdef FEATURE_TUNER_BURST_MODE
- u32 burst_data;
-
- res = tuner_i2c_read(hDevice, 0x76, 1, (unsigned char *)&burst_data, 4);
-
- LNA = burst_data&0x000000ff;
- RFVGA = (burst_data&0x0000ff00)>>8;
- CSF = (burst_data&0x00ff0000)>>16;
- PREAMP_PGA = (burst_data&0xff000000)>>24;
-#else
- res = fc8050_read(hDevice, 0x76, &LNA);
- res |= fc8050_read(hDevice, 0x77, &RFVGA);
- res |= fc8050_read(hDevice, 0x78, &CSF);
- res |= fc8050_read(hDevice, 0x79, &PREAMP_PGA);
-#endif
-
- if (res != BBM_OK)
- return res;
-
- *rssi = (((LNA & 0x07) * 5) + (RFVGA * 7 / 10)
- + ((PREAMP_PGA >> 7) * 6) + ((CSF & 0x7) * 6)
- - ((PREAMP_PGA & 0x7F) >> 1) + K);
-
- return BBM_OK;
-}
diff --git a/drivers/media/tdmb/fc8050/fc8050_tun.h b/drivers/media/tdmb/fc8050/fc8050_tun.h
deleted file mode 100644
index 17c547c..0000000
--- a/drivers/media/tdmb/fc8050/fc8050_tun.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8050_tun.c
-
- Description : API of dmb baseband module
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/09/11 jason initial
-*******************************************************************************/
-
-#ifndef __FC8050_TUNER__
-#define __FC8050_TUNER__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fc8050_tuner_init(HANDLE hDevice, enum band_type band);
-extern int fc8050_set_freq(HANDLE hDevice, enum band_type band, u32 f_lo);
-extern int fc8050_get_rssi(HANDLE hDevice, int *rssi);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __FC8050_TUNER__ */
diff --git a/drivers/media/tdmb/fc8050/fci_hal.c b/drivers/media/tdmb/fc8050/fci_hal.c
deleted file mode 100644
index 508c4c3..0000000
--- a/drivers/media/tdmb/fc8050/fci_hal.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fci_hal.c
-
- Description : fc8050 host interface
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "bbm.h"
-#include "fci_hal.h"
-/* #include "fc8050_hpi.h" */
-#include "fc8050_spi.h"
-/* #include "fc8050_ppi.h" */
-#include "fc8050_i2c.h"
-
-#define FEATURE_INTERFACE_DEBUG
-struct interface_port {
- int (*init)(HANDLE hDevice, u16 param1, u16 param2);
-
- int (*byteread)(HANDLE hDevice, u16 addr, u8 *data);
- int (*wordread)(HANDLE hDevice, u16 addr, u16 *data);
- int (*longread)(HANDLE hDevice, u16 addr, u32 *data);
- int (*bulkread)(HANDLE hDevice, u16 addr, u8 *data, u16 size);
-
- int (*bytewrite)(HANDLE hDevice, u16 addr, u8 data);
- int (*wordwrite)(HANDLE hDevice, u16 addr, u16 data);
- int (*longwrite)(HANDLE hDevice, u16 addr, u32 data);
- int (*bulkwrite)(HANDLE hDevice, u16 addr, u8 *data, u16 size);
-
- int (*dataread)(HANDLE hDevice, u16 addr, u8 *data, u16 size);
-
- int (*deinit)(HANDLE hDevice);
-} ;
-
-static struct interface_port ifport;
-static u8 hostif_type = BBM_SPI;
-
-int bbm_hostif_get(HANDLE hDevice, u8 *hostif)
-{
- *hostif = hostif_type;
-
- return BBM_OK;
-}
-
-int bbm_hostif_select(HANDLE hDevice, u8 hostif)
-{
- hostif_type = hostif;
-
- switch (hostif) {
- case BBM_SPI:
- ifport.init = fc8050_spi_init;
- ifport.byteread = fc8050_spi_byteread;
- ifport.wordread = fc8050_spi_wordread;
- ifport.longread = fc8050_spi_longread;
- ifport.bulkread = fc8050_spi_bulkread;
-
- ifport.bytewrite = fc8050_spi_bytewrite;
- ifport.wordwrite = fc8050_spi_wordwrite;
- ifport.longwrite = fc8050_spi_longwrite;
- ifport.bulkwrite = fc8050_spi_bulkwrite;
-
- ifport.dataread = fc8050_spi_dataread;
-
- ifport.deinit = fc8050_spi_deinit;
- break;
-#ifndef FEATURE_INTERFACE_DEBUG
- case BBM_HPI:
- ifport.init = fc8050_hpi_init;
- ifport.byteread = fc8050_hpi_byteread;
- ifport.wordread = fc8050_hpi_wordread;
- ifport.longread = fc8050_hpi_longread;
- ifport.bulkread = fc8050_hpi_bulkread;
-
- ifport.bytewrite = fc8050_hpi_bytewrite;
- ifport.wordwrite = fc8050_hpi_wordwrite;
- ifport.longwrite = fc8050_hpi_longwrite;
- ifport.bulkwrite = fc8050_hpi_bulkwrite;
-
- ifport.dataread = fc8050_hpi_dataread;
-
- ifport.deinit = fc8050_hpi_deinit;
- break;
- case BBM_I2C:
- ifport.init = fc8050_i2c_init;
- ifport.byteread = fc8050_i2c_byteread;
- ifport.wordread = fc8050_i2c_wordread;
- ifport.longread = fc8050_i2c_longread;
- ifport.bulkread = fc8050_i2c_bulkread;
-
- ifport.bytewrite = fc8050_i2c_bytewrite;
- ifport.wordwrite = fc8050_i2c_wordwrite;
- ifport.longwrite = fc8050_i2c_longwrite;
- ifport.bulkwrite = fc8050_i2c_bulkwrite;
-
- ifport.dataread = fc8050_i2c_dataread;
-
- ifport.deinit = fc8050_i2c_deinit;
- break;
- case BBM_PPI:
- ifport.init = fc8050_ppi_init;
- ifport.byteread = fc8050_ppi_byteread;
- ifport.wordread = fc8050_ppi_wordread;
- ifport.longread = fc8050_ppi_longread;
- ifport.bulkread = fc8050_ppi_bulkread;
-
- ifport.bytewrite = fc8050_ppi_bytewrite;
- ifport.wordwrite = fc8050_ppi_wordwrite;
- ifport.longwrite = fc8050_ppi_longwrite;
- ifport.bulkwrite = fc8050_ppi_bulkwrite;
-
- ifport.dataread = fc8050_ppi_dataread;
-
- ifport.deinit = fc8050_ppi_deinit;
- break;
-#endif
- default:
- return BBM_E_HOSTIF_SELECT;
- }
-
- if (ifport.init(hDevice, 0, 0))
- return BBM_E_HOSTIF_INIT;
-
- return BBM_OK;
-}
-
-int bbm_hostif_deselect(HANDLE hDevice)
-{
- if (ifport.deinit(hDevice))
- return BBM_NOK;
-
- hostif_type = BBM_HPI;
-
- return BBM_OK;
-}
-
-int bbm_read(HANDLE hDevice, u16 addr, u8 *data)
-{
- if (ifport.byteread(hDevice, addr, data))
- return BBM_E_BB_REG_READ;
- return BBM_OK;
-}
-
-int bbm_byte_read(HANDLE hDevice, u16 addr, u8 *data)
-{
- if (ifport.byteread(hDevice, addr, data))
- return BBM_E_BB_REG_READ;
- return BBM_OK;
-}
-
-int bbm_word_read(HANDLE hDevice, u16 addr, u16 *data)
-{
- if (ifport.wordread(hDevice, addr, data))
- return BBM_E_BB_REG_READ;
- return BBM_OK;
-}
-
-int bbm_long_read(HANDLE hDevice, u16 addr, u32 *data)
-{
- if (ifport.longread(hDevice, addr, data))
- return BBM_E_BB_REG_READ;
- return BBM_OK;
-}
-
-int bbm_bulk_read(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- if (ifport.bulkread(hDevice, addr, data, length))
- return BBM_E_BB_REG_READ;
- return BBM_OK;
-}
-
-int bbm_write(HANDLE hDevice, u16 addr, u8 data)
-{
- if (ifport.bytewrite(hDevice, addr, data))
- return BBM_E_BB_REG_WRITE;
- return BBM_OK;
-}
-
-int bbm_byte_write(HANDLE hDevice, u16 addr, u8 data)
-{
- if (ifport.bytewrite(hDevice, addr, data))
- return BBM_E_BB_REG_WRITE;
- return BBM_OK;
-}
-
-int bbm_word_write(HANDLE hDevice, u16 addr, u16 data)
-{
- if (ifport.wordwrite(hDevice, addr, data))
- return BBM_E_BB_REG_WRITE;
- return BBM_OK;
-}
-
-int bbm_long_write(HANDLE hDevice, u16 addr, u32 data)
-{
- if (ifport.longwrite(hDevice, addr, data))
- return BBM_E_BB_REG_WRITE;
- return BBM_OK;
-}
-
-int bbm_bulk_write(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- if (ifport.bulkwrite(hDevice, addr, data, length))
- return BBM_E_BB_REG_WRITE;
- return BBM_OK;
-}
-
-int bbm_data(HANDLE hDevice, u16 addr, u8 *data, u16 length)
-{
- if (ifport.dataread(hDevice, addr, data, length))
- return BBM_E_BB_REG_WRITE;
- return BBM_OK;
-}
diff --git a/drivers/media/tdmb/fc8050/fci_hal.h b/drivers/media/tdmb/fc8050/fci_hal.h
deleted file mode 100644
index 68cfb8f..0000000
--- a/drivers/media/tdmb/fc8050/fci_hal.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fc8000_hal.h
-
- Description : fc8000 host interface header
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-#ifndef __FCI_HAL_H__
-#define __FCI_HAL_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int bbm_hostif_select(HANDLE hDevice, u8 hostif);
-extern int bbm_hostif_deselect(HANDLE hDevice);
-extern int bbm_hostif_get(HANDLE hDevice, u8 *hostif);
-
-extern int bbm_read(HANDLE hDevice, u16 addr, u8 *data);
-extern int bbm_byte_read(HANDLE hDevice, u16 addr, u8 *data);
-extern int bbm_word_read(HANDLE hDevice, u16 addr, u16 *data);
-extern int bbm_long_read(HANDLE hDevice, u16 addr, u32 *data);
-extern int bbm_bulk_read(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-
-extern int bbm_write(HANDLE hDevice, u16 addr, u8 data);
-extern int bbm_byte_write(HANDLE hDevice, u16 addr, u8 data);
-extern int bbm_word_write(HANDLE hDevice, u16 addr, u16 data);
-extern int bbm_long_write(HANDLE hDevice, u16 addr, u32 data);
-extern int bbm_bulk_write(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-
-extern int bbm_data(HANDLE hDevice, u16 addr, u8 *data, u16 length);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __FCI_HAL_H__ */
diff --git a/drivers/media/tdmb/fc8050/fci_i2c.c b/drivers/media/tdmb/fc8050/fci_i2c.c
deleted file mode 100644
index 2cad84d..0000000
--- a/drivers/media/tdmb/fc8050/fci_i2c.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fci_i2c.c
-
- Description : fci i2c driver
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/09/11 jason initial
-*******************************************************************************/
-
-#include <linux/input.h>
-
-
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fc8050_regs.h"
-#include "fci_hal.h"
-
-/* #define FEATURE_FCI_I2C_CHECK_STATUS */
-
-#define I2CSTAT_TIP 0x02 /* Tip bit */
-#define I2CSTAT_NACK 0x80 /* Nack bit */
-
-#define I2C_TIMEOUT 1 /* 1 second */
-
-#define I2C_CR_STA 0x80
-#define I2C_CR_STO 0x40
-#define I2C_CR_RD 0x20
-#define I2C_CR_WR 0x10
-#define I2C_CR_NACK 0x08
-#define I2C_CR_IACK 0x01
-
-#define I2C_WRITE 0
-#define I2C_READ 1
-
-#define I2C_OK 0
-#define I2C_NOK 1
-#define I2C_NACK 2
-#define I2C_NOK_LA 3 /* Lost arbitration */
-#define I2C_NOK_TOUT 4 /* time out */
-
-static int wait_for_xfer(HANDLE hDevice)
-{
- int i;
- int res = I2C_OK;
- u8 status;
-
- i = I2C_TIMEOUT * 10000;
- /* wait for transfer complete */
- do {
- bbm_read(hDevice, BBM_I2C_SR, &status);
- i--;
- } while ((i > 0) && (status & I2CSTAT_TIP));
-
- /* check time out or nack */
- if (status & I2CSTAT_TIP)
- res = I2C_NOK_TOUT;
-
-#ifdef FEATURE_FCI_I2C_CHECK_STATUS
- else {
- bbm_read(hDevice, BBM_I2C_SR, &status);
- if (status & I2CSTAT_NACK)
- res = I2C_NACK;
- else
- res = I2C_OK;
- }
-#endif
- return res;
-}
-
-static int fci_i2c_transfer(
- HANDLE hDevice, u8 cmd_type, u8 chip
- , u8 addr[], u8 addr_len, u8 data[], u8 data_len)
-{
- int i;
- int result = I2C_OK;
-
- switch (cmd_type) {
- case I2C_WRITE:
- bbm_write(hDevice, BBM_I2C_TXR, chip | cmd_type);
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_STA | I2C_CR_WR);
-#ifdef FEATURE_FCI_I2C_CHECK_STATUS
- result = wait_for_xfer(hDevice);
- if (result != I2C_OK)
- return result;
-#endif
- if (addr && addr_len) {
- i = 0;
- while ((i < addr_len) && (result == I2C_OK)) {
- bbm_write(hDevice, BBM_I2C_TXR, addr[i]);
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_WR);
-#ifdef FEATURE_FCI_I2C_CHECK_STATUS
- result = wait_for_xfer(hDevice);
- if (result != I2C_OK)
- return result;
-#endif
- i++;
- }
- }
-
- i = 0;
- while ((i < data_len) && (result == I2C_OK)) {
- bbm_write(hDevice, BBM_I2C_TXR, data[i]);
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_WR);
-#ifdef FEATURE_FCI_I2C_CHECK_STATUS
- result = wait_for_xfer(hDevice);
- if (result != I2C_OK)
- return result;
-#endif
- i++;
- }
-
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_STO);
-#ifdef FEATURE_FCI_I2C_CHECK_STATUS
- result = wait_for_xfer(hDevice);
- if (result != I2C_OK)
- return result;
-#endif
- break;
- case I2C_READ:
- if (addr && addr_len) {
- bbm_write(hDevice, BBM_I2C_TXR, chip | I2C_WRITE);
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_STA | I2C_CR_WR);
-#ifdef FEATURE_FCI_I2C_CHECK_STATUS
- result = wait_for_xfer(hDevice);
- if (result != I2C_OK)
- return result;
-#endif
-
- i = 0;
- while ((i < addr_len) && (result == I2C_OK)) {
- bbm_write(hDevice, BBM_I2C_TXR, addr[i]);
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_WR);
-#ifdef FEATURE_FCI_I2C_CHECK_STATUS
- result = wait_for_xfer(hDevice);
- if (result != I2C_OK)
- return result;
-#endif
- i++;
- }
- }
-
- bbm_write(hDevice, BBM_I2C_TXR, chip | I2C_READ);
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_STA | I2C_CR_WR);
-#ifdef FEATURE_FCI_I2C_CHECK_STATUS
- result = wait_for_xfer(hDevice);
- if (result != I2C_OK)
- return result;
-#endif
-
- i = 0;
- while ((i < data_len) && (result == I2C_OK)) {
- if (i == data_len - 1) {
- bbm_write(hDevice, BBM_I2C_CR
- , I2C_CR_RD|I2C_CR_NACK);
- result = wait_for_xfer(hDevice);
- if ((result != I2C_NACK)
- && (result != I2C_OK)) {
- print_log(hDevice, "NACK4-0[%02x]\n"
- , result);
- return result;
- }
- } else {
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_RD);
- result = wait_for_xfer(hDevice);
- if (result != I2C_OK) {
- print_log(hDevice, "NACK4-1[%02x]\n"
- , result);
- return result;
- }
- }
- bbm_read(hDevice, BBM_I2C_RXR, &data[i]);
- i++;
- }
-
- bbm_write(hDevice, BBM_I2C_CR, I2C_CR_STO);
-#ifdef FEATURE_FCI_I2C_CHECK_STATUS
- result = wait_for_xfer(hDevice);
- if ((result != I2C_NACK) && (result != I2C_OK)) {
- print_log(hDevice, "NACK5[%02X]\n", result);
- return result;
- }
-#endif
- break;
- default:
- return I2C_NOK;
- }
-
- return I2C_OK;
-}
-
-int fci_i2c_init(HANDLE hDevice, int speed, int slaveaddr)
-{
- u16 pr, rpr = 0;
-
- pr = (u16)((4800 / speed) - 1);
- /* pr=400; */
- bbm_word_write(hDevice, BBM_I2C_PR, pr);
-
- bbm_word_read(hDevice, BBM_I2C_PR, &rpr);
- if (pr != rpr)
- return BBM_NOK;
-
- /* i2c master core enable & interrupt enable */
- bbm_write(hDevice, BBM_I2C_CTR, 0xC0);
-
- return BBM_OK;
-}
-
-int fci_i2c_read(
- HANDLE hDevice, u8 chip, u8 addr, u8 address_len, u8 *data, u8 len)
-{
- int ret;
- u8 tmp[4] = {0xcc, 0xcc, 0xcc, 0xcc};
-
- ret = fci_i2c_transfer(hDevice, I2C_READ, chip << 1
- , &addr, address_len, &tmp[0], len);
- if (ret != I2C_OK) {
- print_log(hDevice
- , "fci_i2c_read() result=%d, addr = %x, data=%x\n"
- , ret, addr, *data);
- return ret;
- }
-
- /* *data = tmp[0]; */
- memcpy(data, tmp, len);
-
- return ret;
-}
-
-int fci_i2c_write(
- HANDLE hDevice, u8 chip, u8 addr, u8 address_len, u8 *data, u8 len)
-{
- int ret;
- u8 *paddr = &addr;
-
- ret = fci_i2c_transfer(hDevice, I2C_WRITE, chip << 1
- , paddr, address_len, data, len);
-
- if (ret != I2C_OK)
- print_log(hDevice
- , "fci_i2c_write() result=%d, addr= %x, data=%x\n"
- , ret, addr, *data);
-
- return ret;
-}
diff --git a/drivers/media/tdmb/fc8050/fci_i2c.h b/drivers/media/tdmb/fc8050/fci_i2c.h
deleted file mode 100644
index a519a49..0000000
--- a/drivers/media/tdmb/fc8050/fci_i2c.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fci_i2c.h
-
- Description : fci i2c driver header
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/09/11 jason initial
-*******************************************************************************/
-
-#ifndef __FCI_I2C_H__
-#define __FCI_I2C_H__
-
-#include "fci_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fci_i2c_init(HANDLE hDevice, int speed, int slaveaddr);
-extern int fci_i2c_read(
- HANDLE hDevice, u8 chip, u8 addr, u8 address_len, u8 *data, u8 len);
-extern int fci_i2c_write(
- HANDLE hDevice, u8 chip, u8 addr, u8 address_len, u8 *data, u8 len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __FCI_I2C_H__ */
diff --git a/drivers/media/tdmb/fc8050/fci_oal.c b/drivers/media/tdmb/fc8050/fci_oal.c
deleted file mode 100644
index 51d7d9a..0000000
--- a/drivers/media/tdmb/fc8050/fci_oal.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fci_oal.c
-
- Description : OS Adaptation Layer
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/09/13 jason initial
-*******************************************************************************/
-#include <linux/delay.h>
-
-#include "fci_types.h"
-
-void print_log(HANDLE hDevice, char *fmt, ...)
-{
-
-}
-
-void ms_wait(int ms)
-{
- usleep_range(ms*1000, ms*1000);
-}
diff --git a/drivers/media/tdmb/fc8050/fci_oal.h b/drivers/media/tdmb/fc8050/fci_oal.h
deleted file mode 100644
index f11f522..0000000
--- a/drivers/media/tdmb/fc8050/fci_oal.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fci_oal.h
-
- Description : OS Adatation Layer header
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/09/13 jason initial
-*******************************************************************************/
-
-#ifndef __FCI_OAL_H__
-#define __FCI_OAL_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern void print_log(HANDLE hDevice, char *fmt, ...);
-extern void ms_wait(int ms);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __FCI_OAL_H__ */
diff --git a/drivers/media/tdmb/fc8050/fci_tun.c b/drivers/media/tdmb/fc8050/fci_tun.c
deleted file mode 100644
index 461217f..0000000
--- a/drivers/media/tdmb/fc8050/fci_tun.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : tuner.c
-
- Description : tuner driver
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-#include "fci_types.h"
-#include "fci_oal.h"
-#include "fci_hal.h"
-#include "fci_tun.h"
-#include "fci_i2c.h"
-#include "fc8050_regs.h"
-#include "fc8050_bb.h"
-#include "fc8050_tun.h"
-
-#define FC8000_TUNER_ADDR 0x56
-#define FC2501_TUNER_ADDR 0x60
-#define FC2507_TUNER_ADDR 0x60
-#define FC2580_TUNER_ADDR 0x56
-#define FC2582_TUNER_ADDR 0x56
-#define FC8050_TUNER_ADDR 0x5F
-
-static u8 tuner_addr = FC8050_TUNER_ADDR;
-static enum band_type tuner_band = BAND3_TYPE;
-
-struct tuner_i2c_driver {
- int (*init)
- (HANDLE hDevice, int speed, int slaveaddr);
- int (*read)
- (HANDLE hDevice, u8 chip, u8 addr
- , u8 address_len, u8 *data, u8 len);
- int (*write)
- (HANDLE hDevice, u8 chip, u8 addr
- , u8 address_len, u8 *data, u8 len);
-};
-
-struct tuner_driver {
- int (*init)(HANDLE hDevice, enum band_type band);
- int (*set_freq)
- (HANDLE hDevice, enum band_type band, u32 f_lo);
- int (*get_rssi)(HANDLE hDevice, int *rssi);
-};
-
-static struct tuner_i2c_driver tuner_ctrl;
-static struct tuner_driver tuner;
-
-int tuner_ctrl_select(HANDLE hDevice, enum i2c_type type)
-{
- switch (type) {
- case FCI_I2C_TYPE:
- tuner_ctrl.init = fci_i2c_init;
- tuner_ctrl.read = fci_i2c_read;
- tuner_ctrl.write = fci_i2c_write;
- break;
- default:
- return BBM_E_TN_CTRL_SELECT;
- }
-
- if (tuner_ctrl.init(hDevice, 400, 0))
- return BBM_E_TN_CTRL_INIT;
- return BBM_OK;
-}
-
-int tuner_i2c_read(HANDLE hDevice, u8 addr, u8 address_len, u8 *data, u8 len)
-{
- if (tuner_ctrl.read(hDevice, tuner_addr, addr, address_len, data, len))
- return BBM_E_TN_REG_READ;
- return BBM_OK;
-}
-
-int tuner_i2c_write(HANDLE hDevice, u8 addr, u8 address_len, u8 *data, u8 len)
-{
- if (tuner_ctrl.write(hDevice, tuner_addr, addr, address_len, data, len))
- return BBM_E_TN_REG_WRITE;
- return BBM_OK;
-}
-
-int tuner_type(HANDLE hDevice, u32 *type)
-{
- *type = tuner_band;
-
- return BBM_OK;
-}
-
-int tuner_set_freq(HANDLE hDevice, u32 freq)
-{
- int res = BBM_NOK;
- u8 tmp;
-
- if (tuner.init == NULL) {
- print_log(hDevice, "TUNER NULL ERROR\n");
- return BBM_NOK;
- }
-
- res = tuner.set_freq(hDevice, tuner_band, freq);
- if (res != BBM_OK) {
- print_log(hDevice, "TUNER res ERROR\n");
- return BBM_NOK;
- }
-
-#if (FC8050_FREQ_XTAL == 19200) || (FC8050_FREQ_XTAL == 27000) \
- || (FC8050_FREQ_XTAL == 27120) || (FC8050_FREQ_XTAL == 38400)
- tmp = (u8)(33554432/freq);
- bbm_write(hDevice, 0xf1, tmp);
-#endif
-
- fc8050_reset(hDevice);
-
- return res;
-}
-
-int tuner_select(HANDLE hDevice, u32 product, u32 band)
-{
- switch (product) {
- case FC8050_TUNER:
- tuner_ctrl_select(hDevice, FCI_I2C_TYPE);
-
- tuner.init = fc8050_tuner_init;
- tuner.set_freq = fc8050_set_freq;
- tuner.get_rssi = fc8050_get_rssi;
-
- tuner_band = (enum band_type) band;
- tuner_addr = FC8050_TUNER_ADDR;
- break;
- default:
- return BBM_E_TN_SELECT;
- }
-
- if (tuner.init == NULL) {
- print_log(hDevice, "[ERROR] Can not supported Tuner(%d,%d)\n"
- , product, band);
- return BBM_E_TN_SELECT;
- }
-
- if (tuner.init(hDevice, tuner_band))
- return BBM_E_TN_INIT;
- return BBM_OK;
-}
-
-int tuner_get_rssi(HANDLE hDevice, s32 *rssi)
-{
- if (tuner.get_rssi(hDevice, rssi))
- return BBM_E_TN_RSSI;
- return BBM_OK;
-}
diff --git a/drivers/media/tdmb/fc8050/fci_tun.h b/drivers/media/tdmb/fc8050/fci_tun.h
deleted file mode 100644
index 259b95d..0000000
--- a/drivers/media/tdmb/fc8050/fci_tun.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fci_tun.h
-
- Description : tuner control driver header
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/08/29 jason initial
-*******************************************************************************/
-
-#ifndef __FCI_TUN_H__
-#define __FCI_TUN_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "fci_types.h"
-
-enum i2c_type {
- FCI_I2C_TYPE = 0
-};
-
-enum band_type {
- BAND3_TYPE = 0,
- LBAND_TYPE
-};
-
-enum product_type {
- FC8000_TUNER = 0,
- FC8050_TUNER
-};
-
-extern int tuner_i2c_init(HANDLE hDevice, int speed, int slaveaddr);
-extern int tuner_i2c_read(
- HANDLE hDevice, u8 addr, u8 address_len, u8 *data, u8 len);
-extern int tuner_i2c_write(
- HANDLE hDevice, u8 addr, u8 address_len, u8 *data, u8 len);
-
-extern int tuner_select(HANDLE hDevice, u32 product, u32 band);
-extern int tuner_set_freq(HANDLE hDevice, u32 freq);
-extern int tuner_get_rssi(HANDLE hDevice, s32 *rssi);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __FCI_TUN_H__ */
diff --git a/drivers/media/tdmb/fc8050/fci_types.h b/drivers/media/tdmb/fc8050/fci_types.h
deleted file mode 100644
index 16f57f2..0000000
--- a/drivers/media/tdmb/fc8050/fci_types.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : fci_types.h
-
- Description :
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
- 2009/08/31 jason initial
-*******************************************************************************/
-
-#ifndef __FCI_TYPES_H__
-#define __FCI_TYPES_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef HANDLE
-#define HANDLE void *
-#endif
-
-#define s8 char
-#define s16 short int
-#define s32 int
-#define u8 unsigned char
-#define u16 unsigned short
-#define u32 unsigned int
-#define TRUE 1
-#define FALSE 0
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#define BBM_OK 0
-#define BBM_NOK 1
-
-#define BBM_E_FAIL 0x00000001
-#define BBM_E_HOSTIF_SELECT 0x00000002
-#define BBM_E_HOSTIF_INIT 0x00000003
-#define BBM_E_BB_REG_WRITE 0x00000100
-#define BBM_E_BB_REG_READ 0x00000101
-#define BBM_E_TN_REG_WRITE 0x00000200
-#define BBM_E_TN_REG_READ 0x00000201
-#define BBM_E_TN_CTRL_SELECT 0x00000202
-#define BBM_E_TN_CTRL_INIT 0x00000203
-#define BBM_E_TN_SELECT 0x00000204
-#define BBM_E_TN_INIT 0x00000205
-#define BBM_E_TN_RSSI 0x00000206
-#define BBM_E_TN_SET_FREQ 0x00000207
-#define BBM_E_MUX_SYNC 0x00010000
-#define BBM_E_MUX_DATA_MASK 0x00010001
-#define BBM_E_MUX_SUBCHANNEL 0x00010002
-#define BBM_E_MUX_INDICATOR 0x00010003
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __FCI_TYPES_H__ */
diff --git a/drivers/media/tdmb/fc8050/fic.c b/drivers/media/tdmb/fc8050/fic.c
deleted file mode 100644
index 5acb6d3..0000000
--- a/drivers/media/tdmb/fc8050/fic.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : FIC.c
-
- Description : FIC Wrapper
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
-*******************************************************************************/
-#include "fic.h"
-
-int fic_decoder_put(struct fic *pfic, u16 length)
-{
- return fic_decoder(pfic, length);
-}
-
-struct esbinfo_t *fic_decoder_get_ensemble_info(u32 freq)
-{
- return get_emsemble_info();
-}
-
-struct subch_info_t *fic_decoder_get_subchannel_info(u8 subchannel_id)
-{
- return get_subchannel_info(subchannel_id);
-}
-
-struct service_info_t *fic_decoder_get_service_info(u32 sid)
-{
- return get_service_info(sid);
-}
-
-struct scInfo_t *fic_decoder_get_sc_info(u16 scid)
-{
- return get_sc_info(scid);
-}
-
-struct service_info_t *fic_decoder_get_service_info_list(u8 service_index)
-{
- return get_service_info_list(service_index);
-}
-
-void fic_decoder_subchannel_org_prn(int subchannel_id)
-{
- subchannel_org_prn(subchannel_id);
-}
-
-int fic_decoder_subchannel_org_to_didp(
- struct subch_info_t *sub_ch_info, struct didp_info_t *pdidp)
-{
- return subchannel_org_to_didp(sub_ch_info, pdidp);
-}
-
-int fic_decoder_found_all_labels(void)
-{
- if (found_all_labels())
- return 1;
- return 0;
-}
-
-int fic_decoder_subchannel_info_clean(void)
-{
- subchannel_org_clean();
- return 0;
-}
diff --git a/drivers/media/tdmb/fc8050/fic.h b/drivers/media/tdmb/fc8050/fic.h
deleted file mode 100644
index f09fad9..0000000
--- a/drivers/media/tdmb/fc8050/fic.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : FIC.h
-
- Description : FIC Wrapper
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- History :
- ----------------------------------------------------------------------
-*******************************************************************************/
-#ifndef __FIC_H__
-#define __FIC_H__
-
-#include "ficdecoder.h"
-
-int fic_decoder_put(struct fic *pfic, u16 length);
-struct esbinfo_t *fic_decoder_get_ensemble_info(u32 freq);
-struct subch_info_t *fic_decoder_get_subchannel_info(u8 subchannel_id);
-struct service_info_t *fic_decoder_get_service_info(u32 sid);
-struct scInfo_t *fic_decoder_get_sc_info(u16 scid);
-struct service_info_t *fic_decoder_get_service_info_list(u8 service_index);
-void fic_decoder_subchannel_org_prn(int subchannel_id);
-int fic_decoder_found_all_labels(void);
-int fic_decoder_subchannel_info_clean(void);
-int fic_decoder_subchannel_org_to_didp
- (struct subch_info_t *sub_ch_info, struct didp_info_t *pdidp);
-
-#endif /* __FIC_H__ */
diff --git a/drivers/media/tdmb/fc8050/ficdecoder.c b/drivers/media/tdmb/fc8050/ficdecoder.c
deleted file mode 100644
index abfd991..0000000
--- a/drivers/media/tdmb/fc8050/ficdecoder.c
+++ /dev/null
@@ -1,1654 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : ficdecoder.c
-
- Description : fic parser
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- History :
- ----------------------------------------------------------------------
-*******************************************************************************/
-#include <linux/string.h>
-#include <linux/delay.h>
-
-#include "ficdecoder.h"
-#include "fci_oal.h"
-
-#define MSB(X) (((X) >> 8) & 0Xff)
-#define LSB(X) ((X) & 0Xff)
-#define BYTESWAP(X) ((LSB(X)<<8) | MSB(X))
-
-struct esbinfo_t ensemble_info[MAX_ESB_NUM];
-struct service_info_t service_info[MAX_SVC_NUM];
-struct scInfo_t sc_info[MAX_SC_NUM];
-struct subch_info_t subchannel_info[MAX_SUBCH_NUM];
-struct didp_info_t didpInfo[MAX_DIDP_NUM];
-
-static int fig0_decoder(struct fig *pFig);
-static int fig1_decoder(struct fig *pFig);
-
-static int fig0_ext1_decoder(u8 cn, u8 *fibBuffer, int figLength);
-static int fig0_ext2_decoder(u8 *fibBuffer, int figLength, int pd);
-static int fig0_ext3_decoder(u8 *fibBuffer, int figLength);
-/* static int fig0_ext4_decoder(u8 *fibBuffer, int figLength); */
-static int fig0_ext10_decoder(u8 *fibBuffer, int figLength);
-static int fig0_ext13_decoder(u8 *fibBuffer, int figLength, int pd);
-static int fig0_ext14_decoder(u8 *fibBuffer, int figLength);
-static int fig0_ext15_decoder(u8 *fibBuffer, int figLength, int pd);
-static int fig0_ext18_decoder(u8 *fibBuffer, int figLength);
-static int fig1_ext0_decoder(u8 *fibBuffer, int figLength);
-static int fig1_ext5_decoder(u8 *fibBuffer, int figLength);
-static int fig1_ext1_decoder(u8 *fibBuffer, int figLength);
-static int fig1_ext4_decoder(u8 *fibBuffer, int figLength);
-
-const u16 bitrate_profile[64][3] = { /* CU PL Bit Rates */
- { 16, 5, 32}, { 21, 4, 32}, { 24, 3, 32},
- { 29, 2, 32}, { 35, 1, 32}, { 24, 5, 48},
- { 29, 4, 48}, { 35, 3, 48}, { 42, 2, 48},
- { 52, 1, 48}, { 29, 5, 56}, { 35, 4, 56},
- { 42, 3, 56}, { 52, 2, 56}, { 32, 5, 64},
- { 42, 4, 64}, { 48, 3, 64}, { 58, 2, 64},
- { 70, 1, 64}, { 40, 5, 80}, { 52, 4, 80},
- { 58, 3, 80}, { 70, 2, 80}, { 84, 1, 80},
- { 48, 5, 96}, { 58, 4, 96}, { 70, 3, 96},
- { 84, 2, 96}, {104, 1, 96}, { 58, 5, 112},
- { 70, 4, 112}, { 84, 3, 112}, {104, 2, 112},
- { 64, 5, 128}, { 84, 4, 128}, { 96, 3, 128},
- {116, 2, 128}, {140, 1, 128}, { 80, 5, 160},
- {104, 4, 160}, {116, 3, 160}, {140, 2, 160},
- {168, 1, 160}, { 96, 5, 192}, {116, 4, 192},
- {140, 3, 192}, {168, 2, 192}, {208, 1, 192},
- {116, 5, 224}, {140, 4, 224}, {168, 3, 224},
- {208, 2, 224}, {232, 1, 224}, {128, 5, 256},
- {168, 4, 256}, {192, 3, 256}, {232, 2, 256},
- {280, 1, 256}, {160, 5, 320}, {208, 4, 320},
- {280, 2, 320}, {192, 5, 384}, {280, 3, 384},
- {416, 1, 384}
-};
-
-const u16 uep_profile[14][5][9] = { /* L1 L2 L3 L4 PI1 PI2 PI3 PI4 pad */
- /* 32kbps */
- {
- { 3, 5, 13, 3, 24, 17, 12, 17, 4},
- { 3, 4, 14, 3, 22, 13, 8, 13, 0},
- { 3, 4, 14, 3, 15, 9, 6, 8, 0},
- { 3, 3, 18, 0, 11, 6, 5, 0, 0},
- { 3, 4, 17, 0, 5, 3, 2, 0, 0}
- },
-
- /* 48kbps */
- {
- { 3, 5, 25, 3, 24, 18, 13, 18, 0},
- { 3, 4, 26, 3, 24, 14, 8, 15, 0},
- { 3, 4, 26, 3, 15, 10, 6, 9, 4},
- { 3, 4, 26, 3, 9, 6, 4, 6, 0},
- { 4, 3, 26, 3, 5, 4, 2, 3, 0}
- },
-
- /* 56kbps */
- {
- { 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* not use */
- { 6, 10, 23, 3, 23, 13, 8, 13, 8},
- { 6, 12, 21, 3, 16, 7, 6, 9, 0},
- { 6, 10, 23, 3, 9, 6, 4, 5, 0},
- { 6, 10, 23, 3, 5, 4, 2, 3, 0}
- },
-
- /* 64kbps */
- {
- { 6, 11, 28, 3, 24, 18, 12, 18, 4},
- { 6, 10, 29, 3, 23, 13, 8, 13, 8},
- { 6, 12, 27, 3, 16, 8, 6, 9, 0},
- { 6, 9, 33, 0, 11, 6, 5, 0, 0},
- { 6, 9, 31, 2, 5, 3, 2, 3, 0}
- },
-
- /* 80kbps */
- {
- { 6, 10, 41, 3, 24, 17, 12, 18, 4},
- { 6, 10, 41, 3, 23, 13, 8, 13, 8},
- { 6, 11, 40, 3, 16, 8, 6, 7, 0},
- { 6, 10, 41, 3, 11, 6, 5, 6, 0},
- { 6, 10, 41, 3, 6, 3, 2, 3, 0}
- },
-
- /* 96kbps */
- {
- { 6, 13, 50, 3, 24, 18, 13, 19, 0},
- { 6, 10, 53, 3, 22, 12, 9, 12, 0},
- { 6, 12, 51, 3, 16, 9, 6, 10, 4},
- { 7, 10, 52, 3, 9, 6, 4, 6, 0},
- { 7, 9, 53, 3, 5, 4, 2, 4, 0}
- },
-
- /* 112kbps */
- {
- { 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* not use */
- { 11, 21, 49, 3, 23, 12, 9, 14, 4},
- { 11, 23, 47, 3, 16, 8, 6, 9, 0},
- { 11, 21, 49, 3, 9, 6, 4, 8, 0},
- { 14, 17, 50, 3, 5, 4, 2, 5, 0}
- },
-
- /* 128kbps */
- {
- { 11, 20, 62, 3, 24, 17, 13, 19, 8},
- { 11, 21, 61, 3, 22, 12, 9, 14, 0},
- { 11, 22, 60, 3, 16, 9, 6, 10, 4},
- { 11, 21, 61, 3, 11, 6, 5, 7, 0},
- { 12, 19, 62, 3, 5, 3, 2, 4, 0}
- },
-
- /* 160kbps */
- {
- { 11, 22, 84, 3, 24, 18, 12, 19, 0},
- { 11, 21, 85, 3, 22, 11, 9, 13, 0},
- { 11, 24, 82, 3, 16, 8, 6, 11, 0},
- { 11, 23, 83, 3, 11, 6, 5, 9, 0},
- { 11, 19, 87, 3, 5, 4, 2, 4, 0}
- },
-
- /* 192kbps */
- {
- { 11, 21, 109, 3, 24, 20, 13, 24, 0},
- { 11, 20, 110, 3, 22, 13, 9, 13, 8},
- { 11, 24, 106, 3, 16, 10, 6, 11, 0},
- { 11, 22, 108, 3, 10, 6, 4, 9, 0},
- { 11, 20, 110, 3, 6, 4, 2, 5, 0}
- },
-
- /* 224kbps */
- {
- { 11, 24, 130, 3, 24, 20, 12, 20, 4},
- { 11, 22, 132, 3, 24, 16, 10, 15, 0},
- { 11, 20, 134, 3, 16, 10, 7, 9, 0},
- { 12, 26, 127, 3, 12, 8, 4, 11, 0},
- { 12, 22, 131, 3, 8, 6, 2, 6, 4}
- },
-
- /* 256kbps */
- {
- { 11, 26, 152, 3, 24, 19, 14, 18, 4},
- { 11, 22, 156, 3, 24, 14, 10, 13, 8},
- { 11, 27, 151, 3, 16, 10, 7, 10, 0},
- { 11, 24, 154, 3, 12, 9, 5, 10, 4},
- { 11, 24, 154, 3, 6, 5, 2, 5, 0}
- },
-
- /* 320kbps */
- {
- { 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* not use */
- { 11, 26, 200, 3, 24, 17, 9, 17, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* not use */
- { 11, 25, 201, 3, 13, 9, 5, 10, 8},
- { 11, 26, 200, 3, 8, 5, 2, 6, 4}
- },
-
- /* 384kbps */
- {
- { 12, 28, 245, 3, 24, 20, 14, 23, 8},
- { 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* not use */
- { 11, 24, 250, 3, 16, 9, 7, 10, 4},
- { 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* not use */
- { 11, 27, 247, 3, 8, 6, 2, 7, 0}
- }
-};
-
-int crc_good_cnt;
-int crc_bad_cnt;
-int fic_nice_cnt;
-
-int announcement;
-int bbm_recfg_flag;
-
-struct esbinfo_t *get_emsemble_info(void)
-{
- return &ensemble_info[0];
-}
-
-struct subch_info_t *get_subchannel_info(u8 subchannel_id)
-{
- struct subch_info_t *sub_ch_info;
- int i;
-
- for (i = 0; i < MAX_SUBCH_NUM; i++) {
- sub_ch_info = &subchannel_info[i];
- if ((sub_ch_info->flag != 0)
- && (sub_ch_info->subchannel_id == subchannel_id))
- break;
- }
-
- if (i == MAX_SUBCH_NUM) {
- for (i = 0; i < MAX_SUBCH_NUM; i++) {
- sub_ch_info = &subchannel_info[i];
- if (sub_ch_info->flag == 0)
- break;
- }
- if (i == MAX_SUBCH_NUM)
- return NULL;
- }
-
- return sub_ch_info;
-}
-
-struct service_info_t *get_service_info_list(u8 service_index)
-{
- return &service_info[service_index];
-}
-
-struct service_info_t *get_service_info(u32 sid)
-{
- struct service_info_t *svc_info;
- int i;
-
- for (i = 0; i < MAX_SVC_NUM; i++) {
- svc_info = &service_info[i];
- if ((svc_info->flag != 0) && (sid == svc_info->sid))
- break;
- }
-
- if (i == MAX_SVC_NUM) {
- for (i = 0; i < MAX_SVC_NUM; i++) {
- svc_info = &service_info[i];
- if (svc_info->flag == 0) {
- svc_info->sid = sid;
- break;
- }
- }
- if (i == MAX_SVC_NUM)
- return NULL;
- }
-
- return svc_info;
-}
-
-struct scInfo_t *get_sc_info(u16 scid)
-{
- struct scInfo_t *pScInfo;
- int i;
-
- for (i = 0; i < MAX_SC_NUM; i++) {
- pScInfo = &sc_info[i];
- if ((pScInfo->flag == 99) && (pScInfo->scid == scid)) {
- /* pScInfo->scid = 0xffff; */
- break;
- }
- }
- if (i == MAX_SVC_NUM) {
- for (i = 0; i < MAX_SVC_NUM; i++) {
- pScInfo = &sc_info[i];
- if (pScInfo->flag == 0)
- break;
- }
- if (i == MAX_SC_NUM)
- return NULL;
- }
-
- return pScInfo;
-}
-
-static unsigned short crc16(unsigned char *fibBuffer, int len)
-{
- int i, j, k;
- unsigned int sta, din;
- unsigned int crc_tmp = 0x0;
- int crc_buf[16];
- int crc_coff[16] = { /* CRC16 CCITT REVERSED */
- 0, 0, 0, 0, /* 0x0 */
- 1, 0, 0, 0, /* 0x8 */
- 0, 0, 0, 1, /* 0x1 */
- 0, 0, 0, 1 /* 0x1 */
- };
-
- for (j = 0; j < 16; j++)
- crc_buf[j] = 0x1;
-
- for (i = 0; i < len; i++) {
- sta = fibBuffer[i] & 0xff;
-
- for (k = 7; k >= 0; k--) {
- din = ((sta >> k) & 0x1) ^ (crc_buf[15] & 0x1);
-
- for (j = 15; j > 0; j--)
- crc_buf[j] =
- (crc_buf[j-1] & 0x1)
- ^ ((crc_coff[j-1] * din) & 0x1);
-
- crc_buf[0] = din;
- }
- }
-
- crc_tmp = 0;
- for (j = 15; j >= 0; j--)
- crc_tmp = (crc_tmp << 1) | (crc_buf[j] & 0x1);
-
- return ~crc_tmp & 0xffff;
-}
-
-int fic_crc_ctrl = 1; /* fic crc check enable */
-
-int fic_decoder(struct fic *pfic, u16 length)
-{
- struct fib *pfib;
- int result = 0;
- int i;
- u16 bufferCnt;
-
- bufferCnt = length;
-
- if (bufferCnt % 32) {
- /* print_log(NULL
- , "FIC BUFFER LENGTH ERROR %d\n", bufferCnt); */
- return 1;
- }
-
- for (i = 0; i < bufferCnt/32; i++) {
- pfib = &pfic->fib[i];
- if (fic_crc_ctrl) {
- if (crc16(pfib->data, 30) == BYTESWAP(pfib->crc)) {
- crc_good_cnt++;
- result = fib_decoder(pfib);
- } else {
- crc_bad_cnt++;
- /* print_log(NULL, "CRC ERROR: FIB %d\n", i); */
- }
- } else {
- result = fib_decoder(pfib);
- crc_good_cnt++;
- }
- }
-
- return result;
-}
-
-int fib_decoder(struct fib *pfib)
-{
- struct fig *pFig;
- int type, length;
- int fib_ptr = 0;
- int result = 0;
-
- while (fib_ptr < 30) {
- pFig = (struct fig *)&pfib->data[fib_ptr];
-
- type = (pFig->head >> 5) & 0x7;
- length = pFig->head & 0x1f;
-
- if (pFig->head == 0xff || !length) { /* end mark */
- break;
- }
-
- fic_nice_cnt++;
-
- switch (type) {
- case 0:
- result = fig0_decoder(pFig); /* MCI & SI */
- break;
- case 1:
- result = fig1_decoder(pFig); /* SI */
- /*
- if (result)
- print_log(NULL, "SI Error [%x]\n", result);
- */
- break;
-
- default:
- /*
- print_log(NULL, "FIG 0x%X Length : 0x%X 0x%X\n"
- , type, length, fib_ptr);
- */
- result = 1;
- break;
- }
-
- fib_ptr += length + 1;
- }
-
- return result;
-}
-
-/*
- * MCI & SI
- */
-static int fig0_decoder(struct fig *pFig)
-{
- int result = 0;
- int extension, length, pd;
- u8 cn;
-
- length = pFig->head & 0x1f;
- cn = (pFig->data[0] & 0x80) >> 7;
- if ((bbm_recfg_flag == 1) && (cn == 0))
- return 0;
- /* if (cn)
- print_log(NULL, "N");
- */
- extension = pFig->data[0] & 0x1F;
- pd = (pFig->data[0] & 0x20) >> 5;
-
- switch (extension) {
- case 1:
- result = fig0_ext1_decoder(cn, &pFig->data[1], length);
- break;
- case 2:
- result = fig0_ext2_decoder(&pFig->data[1], length, pd);
- break;
- case 3: /* Service component in packet mode or without CA */
- result = fig0_ext3_decoder(&pFig->data[1], length);
- break;
- case 4: /* Service component with CA */
- /*
- result = fig0_ext4_decoder(&pFig->data[1], length);
- */
- break;
- case 10: /* Date & Time */
- result = fig0_ext10_decoder(&pFig->data[1], length-1);
- break;
- case 13:
- result = fig0_ext13_decoder(&pFig->data[1], length, pd);
- break;
- case 14: /* FEC */
- result = fig0_ext14_decoder(&pFig->data[1], length);
- break;
- case 15:
- result = fig0_ext15_decoder(&pFig->data[1], length, pd);
- break;
- case 0: /* Ensembel Information */
- case 5: /* Language */
- case 8: /* Service component global definition */
- case 9: /* Country LTO and International table */
- case 17: /* Programme Type */
- result = dummy_decoder(&pFig->data[1], length);
- break;
- case 18: /* Announcements */
- if (announcement)
- result =
- fig0_ext18_decoder(&pFig->data[1], length);
- break;
- case 19: /* Announcements switching */
- /*
- print_log(NULL, "FIG 0x%X/0x%X Length : 0x%X\n"
- , 0, extension, length);
- */
- break;
- default:
- /*
- print_log(NULL, "FIG 0x%X/0x%X Length : 0x%X\n"
- , 0, extension, length);
- */
- result = 1;
- break;
- }
-
- return result;
-}
-
-static int fig1_decoder(struct fig *pFig)
-{
- int result = 0;
- int length;
- int /*charset, oe,*/ extension;
-
- length = pFig->head & 0x1f;
- /* charset = (pFig->data[0] >> 4) & 0xF; */
- /* oe = (pFig->data[0]) >> 3 & 0x1; */
- extension = pFig->data[0] & 0x7;
-
- switch (extension) {
- case 0: /* Ensembel Label */
- result = fig1_ext0_decoder(&pFig->data[1], length);
- break;
- case 1: /* Programme service Label */
- result = fig1_ext1_decoder(&pFig->data[1], length);
- break;
- case 5: /* Data service Label */
- result = fig1_ext5_decoder(&pFig->data[1], length);
- break;
- case 4: /* Service component Label */
- result = fig1_ext4_decoder(&pFig->data[1], length);
- break;
- default:
- /*
- print_log(NULL, "FIG 0x%X/0x%X Length : 0x%X\n"
- , 1, extension, length);
- */
- result = 1;
- break;
- }
-
- return result;
-}
-
-int dummy_decoder(u8 *fibBuffer, int figLength)
-{
- return 0;
-}
-
-/*
- * FIG 0/1 MCI, Sub Channel Organization
- */
-int fig0_ext1_decoder(u8 cn, u8 *fibBuffer, int figLength)
-{
- u8 sta;
- int result = 0;
- int readcnt = 0;
-
- u8 subchannel_id;
- struct subch_info_t *sub_ch_info;
-
- while (figLength-1 > readcnt) {
- sta = fibBuffer[readcnt++];
- if (sta == 0xFF)
- break;
- subchannel_id = (sta >> 2) & 0x3F;
- sub_ch_info = get_subchannel_info(subchannel_id);
- if (sub_ch_info == NULL) {
- /*print_log(NULL, "subchannel_info error ..\n"); */
- return 1;
- }
-
- sub_ch_info->flag = 99;
- sub_ch_info->mode = 0; /* T-DMB */
- sub_ch_info->subchannel_id = subchannel_id;
-
- sub_ch_info->start_address = (sta & 0x3) << 8;
- sta = fibBuffer[readcnt++];
- sub_ch_info->start_address |= sta;
- sta = fibBuffer[readcnt++];
- sub_ch_info->form_type = (sta & 0x80) >> 7;
-
- switch (sub_ch_info->form_type) {
- case 0: /* short form */
- sub_ch_info->table_switch = (sta & 0x40) >> 6;
- sub_ch_info->table_index = sta & 0x3f;
- break;
- case 1: /* long form */
- sub_ch_info->option = (sta & 0x70) >> 4;
- sub_ch_info->protect_level = (sta & 0x0c) >> 2;
- sub_ch_info->subch_size = (sta & 0x03) << 8;
- sta = fibBuffer[readcnt++];
- sub_ch_info->subch_size |= sta;
- break;
- default:
- /*
- print_log(NULL, "Unknown Form Type %d\n"
- , sub_ch_info->form_type);
- */
- result = 1;
- break;
- }
- if (cn) {
- if (sub_ch_info->re_config == 0)
- sub_ch_info->re_config = 1;
- /* ReConfig Info Updated */
- }
- }
-
- return result;
-}
-
-/*
- * FIG 0/2 MCI, Sub Channel Organization
- */
-static int fig0_ext2_decoder(u8 *fibBuffer, int figLength, int pd)
-{
- struct service_info_t *svc_info;
- struct subch_info_t *sub_ch_info;
- u8 sta;
- int result = 0;
- int readcnt = 0;
- u32 sid = 0xffffffff;
- int nscps;
- u32 temp;
- int tmid;
- int i;
-
- while (figLength-1 > readcnt) {
- temp = 0;
-
- temp = fibBuffer[readcnt++];
- temp = (temp << 8) | fibBuffer[readcnt++];
-
-
- switch (pd) {
- case 0: /* 16-bit sid, used for programme services */
- {
- temp = temp;
- /*sid = temp & 0xFFF; */
- sid = temp;
- }
- break;
- case 1: /*32bit sid, used for data service */
- {
- temp = (temp << 8) | fibBuffer[readcnt++];
- temp = (temp << 8) | fibBuffer[readcnt++];
-
- /*sid = temp & 0xFFFFF; */
- sid = temp;
- }
- break;
- default:
- break;
- }
-
- svc_info = get_service_info(sid);
- if (svc_info == NULL) {
- /*print_log(NULL, "get_service_info Error ...\n"); */
- break;
- }
-
- svc_info->addrType = pd;
- svc_info->sid = sid;
- svc_info->flag |= 0x02;
-
- sta = fibBuffer[readcnt++]; /* flag, CAId, nscps */
-
- nscps = sta & 0xF;
-
- svc_info->nscps = nscps;
-
- for (i = 0; i < nscps; i++) {
- sta = fibBuffer[readcnt++];
- tmid = (sta >> 6) & 0x3;
- /* svc_info->tmid = tmid; */
-
- switch (tmid) {
- case 0: /* MSC stream audio */
- svc_info->ascty = sta & 0x3f;
- sta = fibBuffer[readcnt++];
- if ((sta & 0x02) == 0x02) { /* Primary */
- svc_info->sub_channel_id
- = (sta >> 2) & 0x3F;
- svc_info->tmid = tmid;
- }
- sub_ch_info =
- get_subchannel_info(svc_info->sub_channel_id);
- if (sub_ch_info == NULL) {
- /*
- print_log(NULL
- , "get_subchannel_info Error ...\n");
- */
- return 1;
- }
- sub_ch_info->sid = svc_info->sid;
- svc_info->flag |= 0x04;
- break;
- case 1: /* MSC stream data */
- svc_info->dscty = sta & 0x3f;
- sta = fibBuffer[readcnt++];
- if ((sta & 0x02) == 0x02) { /* Primary */
- svc_info->sub_channel_id
- = (sta >> 2) & 0x3F;
- svc_info->tmid = tmid;
- }
- sub_ch_info =
- get_subchannel_info(svc_info->sub_channel_id);
- if (sub_ch_info == NULL) {
- /*
- print_log(NULL
- , "get_subchannel_info Error ...\n");
- */
- return 1;
- }
- sub_ch_info->sid = svc_info->sid;
- svc_info->flag |= 0x04;
- break;
- case 2: /* FIDC */
- svc_info->dscty = sta & 0x3f;
- sta = fibBuffer[readcnt++];
- if ((sta & 0x02) == 0x02) { /* Primary */
- svc_info->fidc_id = (sta & 0xFC) >> 2;
- svc_info->tmid = tmid;
- }
- svc_info->flag |= 0x04;
- break;
- case 3: /* MSC packet data */
- svc_info->scid = (sta & 0x3F) << 6;
- sta = fibBuffer[readcnt++];
- if ((sta & 0x02) == 0x02) { /* Primary */
- svc_info->scid |= (sta & 0xFC) >> 2;
- svc_info->tmid = tmid;
- }
- /* by iproda */
- svc_info->flag |= 0x04;
- break;
- default:
- /* print_log(NULL
- , "Unkown tmid [%X]\n", tmid); */
- result = 1;
- break;
- }
- }
- }
-
- return result;
-}
-
-int fig0_ext3_decoder(u8 *fibBuffer, int figLength)
-{
- u8 sta;
- int result = 0;
- int readcnt = 0;
- u16 scid;
- int i;
-
- struct scInfo_t *pScInfo;
- struct service_info_t *svc_info;
- struct subch_info_t *sub_ch_info;
-
- while (figLength-1 > readcnt) {
- scid = 0;
- sta = fibBuffer[readcnt++];
- scid = sta;
- scid = scid << 4;
- sta = fibBuffer[readcnt++];
- scid |= (sta & 0xf0) >> 4;
-
- pScInfo = get_sc_info(scid);
- if (pScInfo == NULL) {
- /* print_log(NULL, "get_sc_info Error ...\n"); */
- return 1;
- }
-
- pScInfo->flag = 99;
- pScInfo->scid = scid;
- pScInfo->scca_flag = sta & 0x1;
- sta = fibBuffer[readcnt++];
- pScInfo->dg_flag = (sta & 0x80) >> 7;
- pScInfo->dscty = (sta & 0x3f);
- sta = fibBuffer[readcnt++];
- pScInfo->sub_channel_id = (sta & 0xfc) >> 2;
- pScInfo->packet_address = sta & 0x3;
- pScInfo->packet_address = pScInfo->packet_address << 8;
- sta = fibBuffer[readcnt++];
- pScInfo->packet_address |= sta;
- if (pScInfo->scca_flag) {
- sta = fibBuffer[readcnt++];
- pScInfo->scca = sta;
- pScInfo->scca = pScInfo->scca << 8;
- sta = fibBuffer[readcnt++];
- pScInfo->scca |= sta;
- }
-
- for (i = 0; i < MAX_SVC_NUM; i++) {
- svc_info = &service_info[i];
- if (svc_info->scid == pScInfo->scid
- && svc_info->tmid == 3) {
- sub_ch_info =
- get_subchannel_info(pScInfo->sub_channel_id);
- if (sub_ch_info == NULL) {
- /*
- print_log(NULL
- , "get_subchannel_info Error ...\n");
- */
- return 1;
- }
-
- sub_ch_info->sid = svc_info->sid;
- svc_info->sub_channel_id
- = sub_ch_info->subchannel_id;
- }
- }
- }
-
- return result;
-}
-
-/*int fig0_ext4_decoder(u8 *fibBuffer, int figLength) {
- int result = 0;
- int readcnt = 0;
- int Mf, sub_channel_id, CAOrg;
-
- while (figLength - 1 > readcnt) {
- Mf = (fibBuffer[readcnt] & 0x40) >> 6;
- sub_channel_id = (fibBuffer[readcnt] & 0x3f);
- CAOrg =
- (fibBuffer[readcnt + 1] << 8) + fibBuffer[readcnt + 2];
- readcnt += 3;
- //print_log(NULL, "CA MF: %d, SubChiD: %d, CAOrg: %d\n"
- , Mf, sub_channel_id, CAOrg);
- }
-
- return result;
-}*/
-
-/*
- * FIG 0/10 Date & Time
- */
-int fig0_ext10_decoder(u8 *fibBuffer, int figLength)
-{
- int result = 0;
-
- u8 MJD, /*ConfInd,*/ UTCflag;
- /* u16 LSI; */
- u8 hour = 0; /*minutes = 0, seconds = 0*/
- u16 milliseconds = 0;
-
- MJD = (fibBuffer[0] & 0x7f) << 10;
- MJD |= (fibBuffer[1] << 2);
- MJD |= (fibBuffer[2] & 0xc0) >> 6;
- /*LSI = (fibBuffer[2] & 0x20) >> 5; */
- /*ConfInd = (fibBuffer[2] & 0x10) >> 4; */
- UTCflag = (fibBuffer[2] & 0x08) >> 3;
-
- hour = (fibBuffer[2] & 0x07) << 2;
- hour |= (fibBuffer[3] & 0xc0) >> 6;
-
- /* minutes = fibBuffer[3] & 0x3f; */
-
- if (UTCflag) {
- /* seconds = (fibBuffer[4] & 0xfc) >> 2; */
- milliseconds = (fibBuffer[4] & 0x03) << 8;
- milliseconds |= fibBuffer[5];
- }
-
- /*
- print_log(NULL, " %d:%d:%d.%d\n"
- , hour+9, minutes, seconds, milliseconds);
- */
-
- return result;
-}
-
-/*
- * FIG 0/13 Announcement
- */
-int fig0_ext13_decoder(u8 *fibBuffer, int figLength, int pd)
-{
- u8 sta;
- int result = 0;
- int readcnt = 0;
- u32 sid = 0xffffffff;
- /* u8 SCIdS; */
- u8 NumOfUAs;
- u16 UAtype;
- u8 UAlen;
- int i, j;
-
- struct service_info_t *svc_info;
-
-
- while (figLength-1 > readcnt) {
- switch (pd) {
- case 0: /* 16-bit sid, used for programme services */
- {
- u32 temp;
-
- temp = 0;
-
- temp = fibBuffer[readcnt++];
- temp = (temp << 8) | fibBuffer[readcnt++];
-
- sid = temp;
- }
- break;
- case 1: /* 32bit sid, used for data service */
- {
- u32 temp;
-
- temp = 0;
-
- temp = fibBuffer[readcnt++];
- temp = (temp << 8) | fibBuffer[readcnt++];
- temp = (temp << 8) | fibBuffer[readcnt++];
- temp = (temp << 8) | fibBuffer[readcnt++];
-
- sid = temp;
- }
- break;
- default:
- break;
- }
-
- svc_info = get_service_info(sid);
- if (svc_info == NULL) {
- /* print_log(NULL, "get_service_info Error ...\n"); */
- break;
- }
- svc_info->sid = sid;
-
- svc_info->flag |= 0x04;
-
- sta = fibBuffer[readcnt++];
-
- /* SCIdS = (sta & 0xff00) >> 4; */
- NumOfUAs = sta & 0xff;
-
- /* Because of Visual Radio */
- svc_info->num_of_user_appl = NumOfUAs;
-
- for (i = 0; i < NumOfUAs; i++) {
- UAtype = 0;
- sta = fibBuffer[readcnt++];
- UAtype = sta;
- sta = fibBuffer[readcnt++];
- UAtype = (UAtype << 3) | ((sta >> 5) & 0x07);
-
- /* Because of Visual Radio */
- UAlen = sta & 0x1f;
-
- svc_info->user_appl_type[i] = UAtype;
- svc_info->user_appl_length[i] = UAlen;
-
- for (j = 0; j < UAlen; j++) {
- sta = fibBuffer[readcnt++];
- svc_info->user_appl_data[i][j] = sta;
- }
- }
- }
-
- return result;
-}
-
-int fig0_ext14_decoder(u8 *fibBuffer, int figLength)
-{
- int result = 0;
- int readcnt = 0;
- unsigned char subch, fec_scheme;
- struct subch_info_t *sub_ch_info;
-
- while (figLength-1 > readcnt) {
- subch = (fibBuffer[readcnt] & 0xfc) >> 2;
- fec_scheme = (fibBuffer[readcnt] & 0x03);
- readcnt++;
- /*
- print_log(NULL, "SubChID: %d, FEC Scheme: %d\n"
- , subch, fec_scheme);
- */
- sub_ch_info = get_subchannel_info(subch);
- if (sub_ch_info)
- sub_ch_info->fec_schem = fec_scheme;
- }
-
- return result;
-}
-
- /*
- * TMMB kjju TODO
- */
-int fig0_ext15_decoder(u8 *fibBuffer, int figLength, int pd)
-{
- u8 sta;
- int result = 0;
- int readcnt = 0;
- u8 subchannel_id;
- struct subch_info_t *sub_ch_info;
-
- while (figLength-1 > readcnt) {
- sta = fibBuffer[readcnt++];
- if (sta == 0xFF)
- break;
-
- subchannel_id = (sta & 0xfc) >> 2;
- sub_ch_info = get_subchannel_info(subchannel_id);
- if (sub_ch_info == NULL) {
- /* print_log(NULL, "subchannel_info error ..\n"); */
- return 1;
- }
-
- sub_ch_info->flag = 99;
- sub_ch_info->mode = 1; /* T-MMB */
- sub_ch_info->subchannel_id = subchannel_id;
- sub_ch_info->start_address = (sta & 0x3) << 8;
-
- sta = fibBuffer[readcnt++];
- sub_ch_info->start_address |= sta;
-
- sub_ch_info = get_subchannel_info(sub_ch_info->subchannel_id);
- if (sub_ch_info == NULL) {
- /* print_log(NULL, "subchannel_info error ..\n"); */
- return 1;
- }
-
- sta = fibBuffer[readcnt++];
-
- sub_ch_info->mod_type = (sta & 0xc0) >> 6;
- sub_ch_info->enc_type = (sta & 0x20) >> 5;
- sub_ch_info->intv_depth = (sta & 0x18) >> 3;
- sub_ch_info->pl = (sta & 0x04) >> 2;
- sub_ch_info->subch_size = (sta & 0x03) << 8;
-
- sta = fibBuffer[readcnt++];
- sub_ch_info->subch_size |= sta;
- }
-
- return result;
-}
-
-/*
- * FIG 0/18 Announcement
- */
-int fig0_ext18_decoder(u8 *fibBuffer, int figLength)
-{
- u8 sta;
- int result = 0;
- int readcnt = 0;
- u16 sid;
- /* u8 CId; */
- u16 AsuFlag;
- int nocs;
- int i;
-
- while (figLength-1 > readcnt) {
- sta = fibBuffer[readcnt++];
- sid = sta << 8;
- sta = fibBuffer[readcnt++];
- sid |= sta;
- /* print_log(NULL, "sid = 0x%X, ", sid); */
-
- sta = fibBuffer[readcnt++];
- AsuFlag = sta << 8;
- sta = fibBuffer[readcnt++];
- AsuFlag |= sta;
- /* print_log(NULL, "AsuFlag = 0x%X, ", AsuFlag); */
-
- sta = fibBuffer[readcnt++];
- nocs = sta & 0x1F;
- /* print_log(NULL, "nocs = 0x%X, ", nocs); */
-
- for (i = 0; i < nocs; i++) {
- sta = fibBuffer[readcnt++];
- /* CId = sta; */
- /* print_log(NULL, "CId = %d, ", CId); */
- }
- /* print_log(NULL, "\n"); */
- }
-
- return result;
-}
-
-static int fig1_ext0_decoder(u8 *fibBuffer, int figLength)
-{
- int result = 0;
- int readcnt = 0;
- int i;
-
- u16 eid;
- u16 flag;
-
- eid = 0;
- eid = fibBuffer[readcnt++];
- eid = eid << 8 | fibBuffer[readcnt++];
-
- for (i = 0; i < 16; i++)
- ensemble_info[0].label[i] = fibBuffer[readcnt++];
-
- flag = 0;
- flag = fibBuffer[readcnt++];
- flag = flag << 8 | fibBuffer[readcnt++];
-
- ensemble_info[0].label[16] = '\0';
- ensemble_info[0].flag = 99;
- ensemble_info[0].eid = eid;
- /*
- print_log(DMB_FIC_INFO"FIG 1/0 label [%x][%s]\n"
- , eid, ensemble_info[0].label);
- */
-
- for (i = 16-1; i >= 0; i--) {
- if (ensemble_info[0].label[i] == 0x20)
- ensemble_info[0].label[i] = 0;
- else {
- if (i == 16-1)
- ensemble_info[0].label[i] = 0;
- break;
- }
- }
-
- return result;
-}
-
-static int fig1_ext1_decoder(u8 *fibBuffer, int figLength)
-{
- struct service_info_t *svc_info;
- u32 temp;
- int result = 0;
- int readcnt = 0;
- int i;
-
- u16 sid;
-
- temp = 0;
- temp = fibBuffer[readcnt++];
- temp = temp << 8 | fibBuffer[readcnt++];
-
- sid = temp;
-
- svc_info = get_service_info(sid);
- if (svc_info == NULL) {
- /* print_log(NULL, "get_service_info Error ...\n"); */
- return 1;
- }
-
- svc_info->sid = sid;
-
- svc_info->flag |= 0x01;
-
- for (i = 0; i < 16; i++)
- svc_info->label[i] = fibBuffer[readcnt++];
-
- svc_info->label[16] = '\0';
- /* print_log(NULL, "FIG 1/1 label [%x][%s]\n", sid, svc_info->label); */
-
- for (i = 16-1; i >= 0; i--) {
- if (svc_info->label[i] == 0x20)
- svc_info->label[i] = 0;
- else {
- if (i == 16-1)
- svc_info->label[i] = 0;
- break;
- }
- }
-
- /* print_log(NULL, "FIG 1/5 label [%x][%s]\n", sid, svc_info->label); */
-
- return result;
-}
-
-static int fig1_ext4_decoder(u8 *fibBuffer, int figLength)
-{
- struct scInfo_t *pScInfo;
- u8 sta;
- u8 pd;
- u32 temp;
- int result = 0;
- int readcnt = 0;
- int i;
-
- u16 scid;
- /* u32 sid; */
- u16 flag;
-
- sta = fibBuffer[readcnt++];
-
- pd = (sta & 0x80) >> 7;
- scid = (sta & 0x0f);
-
- temp = 0;
- temp = fibBuffer[readcnt++];
- temp = temp << 8 | fibBuffer[readcnt++];
-
- if (pd) {
- temp = temp << 8 | fibBuffer[readcnt++];
- temp = temp << 8 | fibBuffer[readcnt++];
- /* sid = temp; */
- } else {
- /* sid = temp; */
- }
-
- pScInfo = get_sc_info(scid);
- if (pScInfo == NULL) {
- /* print_log(NULL, "get_service_info Error ...\n"); */
- return 1;
- }
-
- pScInfo->flag = 99;
- pScInfo->scid = scid;
-
- for (i = 0; i < 16; i++)
- pScInfo->label[i] = fibBuffer[readcnt++];
-
- flag = 0;
- flag = fibBuffer[readcnt++];
- flag = flag << 8 | fibBuffer[readcnt++];
-
- pScInfo->label[16] = '\0';
- /* print_log(NULL, "FIG 1/4 label [%x][%s]\n", sid, pScInfo->label); */
-
- for (i = 16-1; i >= 0; i--) {
- if (pScInfo->label[i] == 0x20)
- pScInfo->label[i] = 0;
- else {
- if (i == 16-1)
- pScInfo->label[i] = 0;
- break;
- }
- }
-
- /*print_log(NULL, "FIG 1/5 label [%x][%s]\n", sid, svc_info->label); */
-
- return result;
-}
-
-static int fig1_ext5_decoder(u8 *fibBuffer, int figLength)
-{
- struct service_info_t *svc_info;
- u32 temp;
- int result = 0;
- int readcnt = 0;
- int i;
-
- u32 sid;
- u16 flag;
-
- temp = 0;
- temp = fibBuffer[readcnt++];
- temp = temp << 8 | fibBuffer[readcnt++];
- temp = temp << 8 | fibBuffer[readcnt++];
- temp = temp << 8 | fibBuffer[readcnt++];
-
- sid = temp;
-
- svc_info = get_service_info(sid);
- if (svc_info == NULL) {
- /* print_log(NULL, "get_service_info Error ...\n"); */
- return 1;
- }
-
- svc_info->sid = sid;
-
- svc_info->flag |= 0x01;
-
- for (i = 0; i < 16; i++)
- svc_info->label[i] = fibBuffer[readcnt++];
-
- flag = 0;
- flag = fibBuffer[readcnt++];
- flag = flag << 8 | fibBuffer[readcnt++];
-
- svc_info->label[16] = '\0';
-
- for (i = 16-1; i >= 0; i--) {
- if (svc_info->label[i] == 0x20)
- svc_info->label[i] = 0;
- else {
- if (i == 16-1)
- svc_info->label[i] = 0;
- break;
- }
- }
-
- /* print_log(NULL, "FIG 1/5 label [%x][%s]\n", sid, svc_info->label); */
-
- return result;
-}
-
-void subchannel_org_prn(int subchannel_id)
-{
- struct didp_info_t didp;
- struct subch_info_t *sub_ch_info;
-
- memset(&didp, 0, sizeof(didp));
-
- sub_ch_info = get_subchannel_info(subchannel_id);
- if (sub_ch_info == NULL)
- return;
-
- if (sub_ch_info->flag == 99) {
- subchannel_org_to_didp(sub_ch_info, &didp);
- /*
- if (sub_ch_info->service_channel_id & 0x40)
- print_log(NULL, "service_channel_id = 0x%X, "
- , sub_ch_info->service_channel_id & 0x3F);
- else
- print_log(NULL, "service_channel_id = NOTUSE, ");
- */
- switch (sub_ch_info->re_config) {
- case 0:
- /* print_log(NULL, "re_config = INIT\n"); */
- break;
- case 1:
- /* print_log(NULL, "re_config = UPDATED\n"); */
- break;
- case 2:
- /* print_log(NULL, "re_config = DONE\n"); */
- break;
- }
-
- /* print_log(NULL, "sid = 0x%X\n", sub_ch_info->sid); */
- /* didp_prn(&didp); */
- }
-}
-
-void subchannel_org_clean(void)
-{
- int i;
-
- memset(ensemble_info, 0, sizeof(struct esbinfo_t) * MAX_ESB_NUM);
- memset(service_info, 0, sizeof(struct service_info_t) * MAX_SVC_NUM);
- memset(sc_info, 0, sizeof(struct scInfo_t) * MAX_SC_NUM);
- memset(subchannel_info, 0, sizeof(struct subch_info_t) * MAX_SUBCH_NUM);
-
- for (i = 0; i < MAX_SUBCH_NUM; i++)
- subchannel_info[i].flag = 0;
-
- for (i = 0; i < MAX_SVC_NUM; i++) {
- service_info[i].flag = 0;
- service_info[i].scid = 0xffff;
- }
-
- for (i = 0; i < MAX_SC_NUM; i++)
- sc_info[i].scid = 0xffff;
-
- return;
-}
-
-int bitrate_to_index(u16 bitrate)
-{
- int index;
-
- switch (bitrate) {
- case 32:
- index = 0; break;
- case 48:
- index = 1; break;
- case 56:
- index = 2; break;
- case 64:
- index = 3; break;
- case 80:
- index = 4; break;
- case 96:
- index = 5; break;
- case 112:
- index = 6; break;
- case 128:
- index = 7; break;
- case 160:
- index = 8; break;
- case 192:
- index = 9; break;
- case 224:
- index = 10; break;
- case 256:
- index = 11; break;
- case 320:
- index = 12; break;
- case 384:
- index = 13; break;
- default:
- index = -1; break;
- }
-
- return index;
-}
-
-int GetN(struct subch_info_t *sub_ch_info, int *n)
-{
- int result = 0;
-
- switch (sub_ch_info->option) {
- case 0:
- switch (sub_ch_info->protect_level) {
- case 0:
- *n = sub_ch_info->subch_size / 12;
- break;
- case 1:
- *n = sub_ch_info->subch_size / 8;
- break;
- case 2:
- *n = sub_ch_info->subch_size / 6;
- break;
- case 3:
- *n = sub_ch_info->subch_size / 4;
- break;
- default:
- /*
- print_log(NULL, "Unknown Protection Level %d\n"
- , sub_ch_info->protect_level);
- */
- result = 1;
- break;
- }
- break;
- case 1:
- switch (sub_ch_info->protect_level) {
- case 0:
- *n = sub_ch_info->subch_size / 27;
- break;
- case 1:
- *n = sub_ch_info->subch_size / 21;
- break;
- case 2:
- *n = sub_ch_info->subch_size / 18;
- break;
- case 3:
- *n = sub_ch_info->subch_size / 15;
- break;
- default:
- /*
- print_log(NULL, "Unknown Protection Level %d\n"
- , sub_ch_info->protect_level);
- */
- result = 1;
- break;
- }
- break;
- default:
- /* print_log(NULL, "Unknown Option %d\n"
- , sub_ch_info->option); */
- result = 1;
- break;
- }
-
- return result;
-}
-
-int subchannel_org_to_didp(
- struct subch_info_t *sub_ch_info, struct didp_info_t *pdidp)
-{
- int index, bitrate, level;
- int result = 0, n = 0;
- u16 subch_size = 0;
- u16 dataRate;
- u8 intv_depth = 0;
-
- if (sub_ch_info->flag != 99)
- return 1;
-
- switch (sub_ch_info->mode) {
- case 0: /* T-DMB */
- pdidp->mode = sub_ch_info->mode;
- switch (sub_ch_info->form_type) {
- case 0: /* short form UEP */
- pdidp->subchannel_id = sub_ch_info->subchannel_id;
- pdidp->start_address = sub_ch_info->start_address;
- pdidp->form_type = sub_ch_info->form_type;
- subch_size =
- bitrate_profile[sub_ch_info->table_index][0];
- pdidp->speed =
- bitrate_profile[sub_ch_info->table_index][2];
-
- level = bitrate_profile[sub_ch_info->table_index][1];
- bitrate = bitrate_profile[sub_ch_info->table_index][2];
- index = bitrate_to_index(bitrate);
-
- if (index < 0) {
- result = 1;
- break;
- }
-
- pdidp->l1 = uep_profile[index][level-1][0];
- pdidp->l2 = uep_profile[index][level-1][1];
- pdidp->l3 = uep_profile[index][level-1][2];
- pdidp->l4 = uep_profile[index][level-1][3];
- pdidp->p1 = (u8)uep_profile[index][level-1][4];
- pdidp->p2 = (u8)uep_profile[index][level-1][5];
- pdidp->p3 = (u8)uep_profile[index][level-1][6];
- pdidp->p4 = (u8)uep_profile[index][level-1][7];
- pdidp->pad = (u8)uep_profile[index][level-1][8];
- break;
- case 1: /* long form EEP */
- pdidp->subchannel_id = sub_ch_info->subchannel_id;
- pdidp->start_address = sub_ch_info->start_address;
- pdidp->form_type = sub_ch_info->form_type;
- subch_size = sub_ch_info->subch_size;
- pdidp->l3 = 0;
- pdidp->p3 = 0;
- pdidp->l4 = 0;
- pdidp->p4 = 0;
- pdidp->pad = 0;
-
- if (GetN(sub_ch_info, &n)) {
- result = 1;
- break;
- }
-
- switch (sub_ch_info->option) {
- case 0:
- switch (sub_ch_info->protect_level) {
- case 0:
- pdidp->l1 = 6*n - 3;
- pdidp->l2 = 3;
- pdidp->p1 = 24;
- pdidp->p2 = 23;
- break;
- case 1:
- if (n > 1) {
- pdidp->l1 = 2*n - 3;
- pdidp->l2 = 4*n + 3;
- pdidp->p1 = 14;
- pdidp->p2 = 13;
- } else {
- pdidp->l1 = 5;
- pdidp->l2 = 1;
- pdidp->p1 = 13;
- pdidp->p2 = 12;
- }
- break;
- case 2:
- pdidp->l1 = 6*n - 3;
- pdidp->l2 = 3;
- pdidp->p1 = 8;
- pdidp->p2 = 7;
- break;
- case 3:
- pdidp->l1 = 4*n - 3;
- pdidp->l2 = 2*n + 3;
- pdidp->p1 = 3;
- pdidp->p2 = 2;
- break;
- default:
- result = 1;
- break;
- }
- pdidp->speed = 8*n;
- break;
- case 1:
- switch (sub_ch_info->protect_level) {
- case 0:
- pdidp->l1 = 24*n - 3;
- pdidp->l2 = 3;
- pdidp->p1 = 10;
- pdidp->p2 = 9;
- break;
- case 1:
- pdidp->l1 = 24*n - 3;
- pdidp->l2 = 3;
- pdidp->p1 = 6;
- pdidp->p2 = 5;
- break;
- case 2:
- pdidp->l1 = 24*n - 3;
- pdidp->l2 = 3;
- pdidp->p1 = 4;
- pdidp->p2 = 3;
- break;
- case 3:
- pdidp->l1 = 24*n - 3;
- pdidp->l2 = 3;
- pdidp->p1 = 2;
- pdidp->p2 = 1;
- break;
- default:
- break;
- }
- pdidp->speed = 32*n;
- break;
- default:
- result = 1;
- break;
- }
- break;
- default:
- result = 1;
- break;
- }
-
- if (subch_size <= pdidp->subch_size)
- pdidp->reconfig_offset = 0;
- else
- pdidp->reconfig_offset = 1;
-
- pdidp->subch_size = subch_size;
- break;
- case 1: /* T-MMB */
- pdidp->mode = sub_ch_info->mode;
- pdidp->start_address = sub_ch_info->start_address;
- pdidp->subchannel_id = sub_ch_info->subchannel_id;
- pdidp->subch_size = sub_ch_info->subch_size;
- pdidp->mod_type = sub_ch_info->mod_type;
- pdidp->enc_type = sub_ch_info->enc_type;
- pdidp->intv_depth = sub_ch_info->intv_depth;
- pdidp->pl = sub_ch_info->pl;
-
- switch (pdidp->mod_type) {
- case 0:
- n = pdidp->subch_size / 18;
- break;
- case 1:
- n = pdidp->subch_size / 12;
- break;
- case 2:
- n = pdidp->subch_size / 9;
- break;
- default:
- result = 1;
- break;
- }
-
- switch (pdidp->intv_depth) {
- case 0:
- intv_depth = 16;
- break;
- case 1:
- intv_depth = 32;
- break;
- case 2:
- intv_depth = 64;
- break;
- default:
- result = 1;
- break;
- }
-
- if (result == 1)
- break;
-
- if (pdidp->pl) {
- dataRate = n * 32;
- pdidp->mi =
- (((((dataRate * 3) / 2) * 24) / intv_depth) * 3)
- / 4;
- } else {
- dataRate = n * 24;
- pdidp->mi =
- ((((dataRate * 2) * 24) / intv_depth) * 3) / 4;
- }
- break;
- default:
- break;
- }
-
- return result;
-}
-
-int found_all_labels(void)
-{
- ms_wait(1200);
- return 1;
-}
diff --git a/drivers/media/tdmb/fc8050/ficdecoder.h b/drivers/media/tdmb/fc8050/ficdecoder.h
deleted file mode 100644
index ae39402..0000000
--- a/drivers/media/tdmb/fc8050/ficdecoder.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2009 FCI Inc. All Rights Reserved
-
- File name : ficdecoder.h
-
- Description : fic parser
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- History :
- ----------------------------------------------------------------------
-*******************************************************************************/
-#ifndef __ficdecodera_h__
-#define __ficdecodera_h__
-
-#include "fci_types.h"
-
-#define MAX_ESB_NUM 1
-#define MAX_SVC_NUM 128
-#define MAX_SC_NUM 128
-#define MAX_SUBCH_NUM 64
-#define MAX_DIDP_NUM 8
-
-#define MAX_USER_APPL_NUM 15
-#define MAX_USER_APPL_DATA_SIZE 24
-
-struct fig {
- u8 head;
- u8 data[29];
-};
-
-struct fib {
- u8 data[30];
- u16 crc;
-};
-
-struct fic {
- /* Fib fib[12]; */
- struct fib fib[32];
-};
-
-struct figdata {
- u8 head;
- u8 data[28];
-};
-
-struct esbinfo_t {
- u8 flag;
- u16 eid;
- u8 label[32];
-};
-
-struct service_info_t {
- u8 flag;
- u32 sid;
- u16 scid;
- u8 ascty;
- u8 dscty;
- u8 fidc_id;
- u8 addrType; /* PD */
- u8 tmid;
- u8 sub_channel_id;
- u8 nscps;
- u8 label[32];
-
- u8 num_of_user_appl;
- u16 user_appl_type[MAX_USER_APPL_NUM];
- u8 user_appl_length[MAX_USER_APPL_NUM];
- u8 user_appl_data[MAX_USER_APPL_NUM][MAX_USER_APPL_DATA_SIZE];
-};
-
-struct scInfo_t {
- u8 flag;
- u16 scid;
- u8 dscty;
- u8 sub_channel_id;
- u8 scca_flag;
- u8 dg_flag;
- u16 packet_address;
- u16 scca;
- u8 label[32];
-};
-
-struct subch_info_t {
- u8 flag;
- u8 subchannel_id;
- u16 start_address;
- u8 form_type;
- u8 table_index;
- u8 table_switch;
- u8 option;
- u8 protect_level;
- u16 subch_size;
- u32 sid;
- u8 service_channel_id;
- u8 re_config;
-
- /* T-MMB */
- u8 mode; /* 0 T-DMB, 1 T-MMB */
- u8 mod_type;
- u8 enc_type;
- u8 intv_depth;
- u8 pl;
- /* T-MMB */
-
- /* FEC */
- u8 fec_schem;
-
-};
-
-struct didp_info_t {
- u8 flag;
- u8 reconfig_offset;
- u8 subchannel_id;
- u16 start_address;
- u8 form_type;
- u16 subch_size;
- u16 speed; /* kbsp */
- u16 l1;
- u8 p1;
- u16 l2;
- u8 p2;
- u16 l3;
- u8 p3;
- u16 l4;
- u8 p4;
- u8 pad;
- /* T-MMB */
- u8 mode; /* 0 T-DMB, 1 T-MMB */
- u8 mod_type;
- u8 enc_type;
- u8 intv_depth;
- u8 pl;
- u16 mi; /* kies use */
- /* T-MMB */
-};
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-extern struct esbinfo_t ensemble_info[MAX_ESB_NUM];
-extern struct service_info_t service_info[MAX_SVC_NUM];
-extern struct subch_info_t subchannel_info[MAX_SUBCH_NUM];
-extern struct didp_info_t didpInfo[MAX_DIDP_NUM];
-
-
-extern int fic_decoder(struct fic *pfic, u16 length);
-extern int fib_decoder(struct fib *pfib);
-extern struct esbinfo_t *get_emsemble_info(void);
-extern struct subch_info_t *get_subchannel_info(u8 subchannel_id);
-extern struct service_info_t *get_service_info(u32 sid);
-extern struct scInfo_t *get_sc_info(u16 scid);
-extern struct service_info_t *get_service_info_list(u8 service_index);
-extern void subchannel_org_clean(void);
-extern void subchannel_org_prn(int subchannel_id);
-extern int found_all_labels(void);
-extern void didp_prn(struct didp_info_t *pdidp);
-extern int set_didp_reg(int service_channel_id, struct didp_info_t *pdidp);
-extern int subchannel_org_to_didp(
- struct subch_info_t *sub_ch_info, struct didp_info_t *pdidp);
-extern void subchannel_org_prn(int subchannel_id);
-extern int dummy_decoder(u8 *fibBuffer, int figLength);
-
-
-#ifdef __cplusplus
- } /* extern "C" {*/
-#endif
-
-#endif /* __ficdecoder_h__ */
diff --git a/drivers/media/tdmb/mtv318/Makefile b/drivers/media/tdmb/mtv318/Makefile
deleted file mode 100644
index ad4ce80..0000000
--- a/drivers/media/tdmb/mtv318/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-obj-y += raontv.o
-obj-y += raontv_port.o
-obj-y += raontv_rf.o
-obj-y += raontv_ficdec.o
-obj-y += raontv_tdmb.o
-
-ccflags-y += -Idrivers/media/tdmb
diff --git a/drivers/media/tdmb/mtv318/raontv.c b/drivers/media/tdmb/mtv318/raontv.c
deleted file mode 100644
index d450aa9..0000000
--- a/drivers/media/tdmb/mtv318/raontv.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- *
- * File name: drivers/media/tdmb/mtv318/src/raontv.c
- *
- * Description : RAONTECH TV device driver.
- *
- * Copyright (C) (2011, RAONTECH)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include "raontv_rf.h"
-
-BOOL g_fRtvChannelChange;
-
-enum E_RTV_ADC_CLK_FREQ_TYPE g_eRtvAdcClkFreqType;
-BOOL g_fRtvStreamEnabled;
-
-#if defined(RTV_TDMB_ENABLE) || defined(RTV_ISDBT_ENABLE)
-enum E_RTV_COUNTRY_BAND_TYPE g_eRtvCountryBandType;
-#endif
-
-#ifdef RTV_DAB_ENABLE
-enum E_RTV_TV_MODE_TYPE g_curDabSetType;
-#endif
-
-#ifdef RTV_IF_EBI2
-VU8 g_bRtvEbiMapSelData = 0x7;
-#endif
-
-UINT g_nRtvMscThresholdSize;
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
-U8 g_bRtvIntrMaskRegL;
-
-#else
-#if !defined(RTV_CIF_MODE_ENABLED) || !defined(RTV_FIC_POLLING_MODE)
-U8 g_bRtvIntrMaskRegL;
-#endif
-#endif
-
-void rtv_ConfigureHostIF(void)
-{
-#if defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x77, 0x15); /* TSIF Enable */
- RTV_REG_SET(0x22, 0x48);
-
-#if defined(RTV_IF_MPEG2_PARALLEL_TSIF)
- RTV_REG_SET(0x04, 0x01); /* I2C + TSIF Mode Enable*/
-#else
- RTV_REG_SET(0x04, 0x29); /* I2C + TSIF Mode Enable*/
-#endif
-
- RTV_REG_SET(0x0C, 0xF4); /* TSIF Enable*/
-
-#elif defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x77, 0x14); /*SPI Mode Enable*/
- RTV_REG_SET(0x04, 0x28); /* SPI Mode Enable*/
- RTV_REG_SET(0x0C, 0xF5);
-
-#else
-#error "Code not present"
-#endif
-}
-
-INT rtv_InitSystem(enum E_RTV_TV_MODE_TYPE eTvMode,
- enum E_RTV_ADC_CLK_FREQ_TYPE eAdcClkFreqType)
-{
- INT nRet;
- int i;
-
- g_fRtvChannelChange = FALSE;
-
- g_fRtvStreamEnabled = FALSE;
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- g_bRtvIntrMaskRegL = 0xFF;
-#else
-#ifndef RTV_CIF_MODE_ENABLED /* Individual Mode */
- g_bRtvIntrMaskRegL = 0xFF;
-#endif
-#endif
-
- for (i = 1; i <= 100; i++) {
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x7D, 0x06);
- if (RTV_REG_GET(0x7D) == 0x06)
- goto RTV_POWER_ON_SUCCESS;
-
- RTV_DBGMSG1("[rtv_InitSystem] Power On wait: %d\n", i);
-
- RTV_DELAY_MS(5);
- }
-
- RTV_DBGMSG1("rtv_InitSystem: Power On Check error: %d\n", i);
- return RTV_POWER_ON_CHECK_ERROR;
-
-RTV_POWER_ON_SUCCESS:
-
- rtvRF_ConfigurePowerType(eTvMode);
- nRet = rtvRF_ConfigureAdcClock(eTvMode, eAdcClkFreqType);
-
- if (nRet != RTV_SUCCESS)
- return nRet;
-
- return RTV_SUCCESS;
-}
diff --git a/drivers/media/tdmb/mtv318/raontv.h b/drivers/media/tdmb/mtv318/raontv.h
deleted file mode 100644
index 3a1d762..0000000
--- a/drivers/media/tdmb/mtv318/raontv.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
-*
-* File name: drivers/media/tdmb/mtv318/src/raontv.h
-*
-* Description : RAONTECH TV device driver API header file.
-*
-* Copyright (C) (2011, RAONTECH)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-#ifndef __RAONTV_H__
-#define __RAONTV_H__
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-#include "raontv_port.h"
-
-#define RAONTV_CHIP_ID 0x8A
-
-/*==============================================================================
- *
- * Common definitions and types.
- *
- *============================================================================*/
-#ifndef NULL
- #define NULL 0
-#endif
-
-#ifndef FALSE
- #define FALSE 0
-#endif
-
-#ifndef TRUE
- #define TRUE 1
-#endif
-
-#ifndef MAX
- #define MAX(a, b) (((a) > (b)) ? (a) : (b))
-#endif
-
-#ifndef MIN
- #define MIN(a, b) (((a) < (b)) ? (a) : (b))
-#endif
-
-#ifndef ABS
- #define ABS(x) (((x) < 0) ? -(x) : (x))
-#endif
-
-
-#define RTV_TS_PACKET_SIZE 188
-
-
-/* Error codes. */
-#define RTV_SUCCESS 0
-#define RTV_INVAILD_COUNTRY_BAND -1
-#define RTV_UNSUPPORT_ADC_CLK -2
-#define RTV_INVAILD_TV_MODE -3
-#define RTV_CHANNEL_NOT_DETECTED -4
-#define RTV_INSUFFICIENT_CHANNEL_BUF -5
-#define RTV_INVAILD_FREQ -6
-#define RTV_INVAILD_SUB_CHANNEL_ID -7 /* for T-DMB and DAB */
-#define RTV_NO_MORE_SUB_CHANNEL -8 /* for T-DMB and DAB */
-#define RTV_INVAILD_THRESHOLD_SIZE -9
-#define RTV_POWER_ON_CHECK_ERROR -10
-#define RTV_PLL_UNLOCKED -11
-#define RTV_ADC_CLK_UNLOCKED -12
-
-
-
-
-
-enum E_RTV_COUNTRY_BAND_TYPE {
- RTV_COUNTRY_BAND_JAPAN = 0,
- RTV_COUNTRY_BAND_KOREA,
- RTV_COUNTRY_BAND_BRAZIL,
- RTV_COUNTRY_BAND_ARGENTINA
-};
-
-
-/* Do not modify the order! */
-enum E_RTV_ADC_CLK_FREQ_TYPE {
- RTV_ADC_CLK_FREQ_8_MHz = 0,
- RTV_ADC_CLK_FREQ_8_192_MHz,
- RTV_ADC_CLK_FREQ_9_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- MAX_NUM_RTV_ADC_CLK_FREQ_TYPE
-};
-
-
-/*============================================================================
- *
- * FM definitions, types and APIs.
- *
- *============================================================================*/
-#define RTV_FM_PILOT_LOCK_MASK 0x1
-#define RTV_FM_RDS_LOCK_MASK 0x2
-#define RTV_FM_CHANNEL_LOCK_OK (RTV_FM_PILOT_LOCK_MASK|RTV_FM_RDS_LOCK_MASK)
-
-#define RTV_FM_RSSI_DIVIDER 10
-
-enum E_RTV_FM_OUTPUT_MODE_TYPE {
- RTV_FM_OUTPUT_MODE_AUTO = 0,
- RTV_FM_OUTPUT_MODE_MONO = 1,
- RTV_FM_OUTPUT_MODE_STEREO = 2
-};
-
-void rtvFM_StandbyMode(int on);
-void rtvFM_GetLockStatus(UINT *pLockVal, UINT *pLockCnt);
-S32 rtvFM_GetRSSI(void);
-void rtvFM_SetOutputMode(enum E_RTV_FM_OUTPUT_MODE_TYPE eOutputMode);
-void rtvFM_DisableStreamOut(void);
-void rtvFM_EnableStreamOut(void);
-INT rtvFM_SetFrequency(U32 dwChFreqKHz);
-INT rtvFM_SearchFrequency(U32 *pDetectedFreqKHz
- , U32 dwStartFreqKHz, U32 dwEndFreqKHz);
-INT rtvFM_ScanFrequency(U32 *pChBuf, UINT nNumChBuf
- , U32 dwStartFreqKHz, U32 dwEndFreqKHz);
-INT rtvFM_Initialize(enum E_RTV_ADC_CLK_FREQ_TYPE eAdcClkFreqType
- , UINT nThresholdSize);
-
-
-/*============================================================================
- *
- * TDMB definitions, types and APIs.
- *
- *===========================================================================*/
-#define RTV_TDMB_OFDM_LOCK_MASK 0x1
-#define RTV_TDMB_FEC_LOCK_MASK 0x2
-#define RTV_TDMB_CHANNEL_LOCK_OK \
- (RTV_TDMB_OFDM_LOCK_MASK|RTV_TDMB_FEC_LOCK_MASK)
-
-#define RTV_TDMB_BER_DIVIDER 100000
-#define RTV_TDMB_CNR_DIVIDER 1000
-#define RTV_TDMB_RSSI_DIVIDER 1000
-
-enum E_RTV_TDMB_SERVICE_TYPE {
- RTV_TDMB_SERVICE_VIDEO = 0,
- RTV_TDMB_SERVICE_AUDIO,
- RTV_TDMB_SERVICE_DATA
-};
-
-struct RTV_TDMB_TII_INFO {
- int tii_combo;
- int tii_pattern;
- int tii_tower;
- int tii_strength;
-};
-
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- #define RTV_CIF_HEADER_SIZE 4 /* bytes */
-#else
- #define RTV_CIF_HEADER_SIZE 16 /* bytes */
-#endif
-
-
-struct RTV_CIF_DEC_INFO {
-#if defined(RTV_IF_TSIF)
- UINT fic_size; /* Result size. */
- U8 *fic_buf_ptr; /* Destination buffer address. */
-#endif
-
- /* Result size. */
- UINT msc_size[RTV_MAX_NUM_SUB_CHANNEL_USED];
- /* Result sub channel ID. */
- UINT msc_subch_id[RTV_MAX_NUM_SUB_CHANNEL_USED];
- /* Destination buffer address. */
- U8 *msc_buf_ptr[RTV_MAX_NUM_SUB_CHANNEL_USED];
-};
-
-BOOL rtvCIFDEC_Decode(struct RTV_CIF_DEC_INFO *ptDecInfo,
- const U8 *pbTsBuf, UINT nTsLen);
-#if defined(RTV_IF_SPI) && defined(RTV_CIF_HEADER_INSERTED)
-BOOL rtvCIFDEC_CheckCifData_SPI(const U8 *pbTsBuf, UINT nTsLen);
-#endif
-
-
-void rtvTDMB_StandbyMode(int on);
-UINT rtvTDMB_GetLockStatus(void);
-U32 rtvTDMB_GetPER(void);
-S32 rtvTDMB_GetRSSI(void);
-U32 rtvTDMB_GetCNR(void);
-U32 rtvTDMB_GetCER(void);
-U32 rtvTDMB_GetBER(void);
-UINT rtvTDMB_GetAntennaLevel(U32 dwCER);
-U32 rtvTDMB_GetPreviousFrequency(void);
-void rtvTDMB_DisableStreamOut(void);
-INT rtvTDMB_OpenSubChannel(U32 dwChFreqKHz, UINT nSubChID,
- enum E_RTV_TDMB_SERVICE_TYPE eServiceType,
- UINT nThresholdSize);
-INT rtvTDMB_CloseSubChannel(UINT nSubChID);
-void rtvTDMB_CloseAllSubChannels(void);
-INT rtvTDMB_ScanFrequency(U32 dwChFreqKHz);
-UINT rtvTDMB_ReadFIC(U8 *pbBuf);
-void rtvTDMB_CloseFIC(void);
-void rtvTDMB_OpenFIC(void);
-INT rtvTDMB_Initialize(enum E_RTV_COUNTRY_BAND_TYPE eRtvCountryBandType);
-
-
-/*============================================================================
- *
- * DAB definitions, types and APIs.
- *
- *============================================================================*/
-#define RTV_DAB_OFDM_LOCK_MASK 0x1
-#define RTV_DAB_FEC_LOCK_MASK 0x2
-#define RTV_DAB_CHANNEL_LOCK_OK \
- (RTV_TDMB_OFDM_LOCK_MASK|RTV_TDMB_FEC_LOCK_MASK)
-
-#define RTV_DAB_BER_DIVIDER 100000
-#define RTV_DAB_CNR_DIVIDER 1000
-#define RTV_DAB_RSSI_DIVIDER 10
-
-enum E_RTV_DAB_SERVICE_TYPE {
- RTV_DAB_SERVICE_VIDEO = 0,
- RTV_DAB_SERVICE_AUDIO,
- RTV_DAB_SERVICE_DATA
-};
-
-struct RTV_DAB_TII_INFO {
- int tii_combo;
- int tii_pattern;
- int tii_tower;
- int tii_strength;
-};
-
-
-enum E_RTV_DAB_TRANSMISSION_MODE {
- RTV_DAB_TRANSMISSION_MODE1 = 0,
- RTV_DAB_TRANSMISSION_MODE2,
- RTV_DAB_TRANSMISSION_MODE3,
- RTV_DAB_TRANSMISSION_MODE4,
- RTV_DAB_INVALID_TRANSMISSION_MODE
-};
-
-
-void rtvDAB_StandbyMode(int on);
-UINT rtvDAB_GetLockStatus(void);
-U32 rtvDAB_GetPER(void);
-S32 rtvDAB_GetRSSI(void);
-U32 rtvDAB_GetCNR(void);
-U32 rtvDAB_GetCER(void);
-U32 rtvDAB_GetBER(void);
-U32 rtvDAB_GetPreviousFrequency(void);
-void rtvDAB_DisableStreamOut(void);
-INT rtvDAB_OpenSubChannel(U32 dwChFreqKHz, UINT nSubChID
- , enum E_RTV_DAB_SERVICE_TYPE eServiceType, UINT nThresholdSize);
-INT rtvDAB_CloseSubChannel(UINT nSubChID);
-void rtvDAB_CloseAllSubChannels(void);
-INT rtvDAB_ScanFrequency(U32 dwChFreqKHz);
-UINT rtvDAB_ReadFIC(U8 *pbBuf, UINT nFicSize);
-UINT rtvDAB_GetFicSize(void);
-void rtvDAB_CloseFIC(void);
-void rtvDAB_OpenFIC(void);
-INT rtvDAB_Initialize(void);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __RAONTV_H__ */
-
diff --git a/drivers/media/tdmb/mtv318/raontv_ficdec.c b/drivers/media/tdmb/mtv318/raontv_ficdec.c
deleted file mode 100644
index 35ec74a..0000000
--- a/drivers/media/tdmb/mtv318/raontv_ficdec.c
+++ /dev/null
@@ -1,2710 +0,0 @@
-/*
-*
-* File name: drivers/media/tdmb/mtv318/src/raontv_ficdec.c
-*
-* Description : RAONTECH FIC Decoder driver.
-*
-* Copyright (C) (2011, RAONTECH)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-#include <linux/string.h>
-#include "raontv_ficdec_internal.h"
-#include "raontv_internal.h"
-
-struct ensemble_info_type ensble;
-
-/*****************************/
-/* FIC Information Variable */
-/*****************************/
-static struct FIG_DATA fig_data;
-static const U8 FIC_BIT_MASK[8] = {0x0, 0x80, 0xC0, 0xE0, 0xFF,
- 0xF8, 0xFC, 0xFE};
-
-
-/**********************************/
-/* FIC information get function */
-/**********************************/
-static S32 Get_Bytes(U8 cnt, void *Res)
-{
- S32 i;
-
- for (i = 0; i < cnt; i++) {
- *((U8 *) Res+i) = *(fig_data.data+fig_data.byte_cnt);
- fig_data.byte_cnt++;
- }
-
- return RTV_OK;
-}
-
-static S32 Get_Bits(U8 cnt, void *Res)
-{
- *(U8 *)Res = (U8) (*(fig_data.data+fig_data.byte_cnt) &
- (FIC_BIT_MASK[cnt] >> fig_data.bit_cnt));
-
- *(U8 *)Res = (*(U8 *)Res) >> (8-cnt-fig_data.bit_cnt);
- fig_data.bit_cnt += cnt;
- if (fig_data.bit_cnt == 8) {
- fig_data.byte_cnt++;
- fig_data.bit_cnt = 0;
- }
- return RTV_OK;
-}
-
-void *Get_FIG0_EXT[] = {
- (void *) Get_FIG0_EXT0, (void *) Get_FIG0_EXT1,
- (void *) Get_FIG0_EXT2, (void *) Get_FIG0_EXT3,
- (void *) Get_FIG0_EXT4, (void *) Get_FIG0_EXT5,
- (void *) Get_FIG0_EXT6, (void *) Get_FIG0_EXT7,
- (void *) Get_FIG0_EXT8, (void *) Get_FIG0_EXT9,
- (void *) Get_FIG0_EXT10, (void *) Get_FIG0_EXT11,
- (void *) Get_FIG0_EXT12, (void *) Get_FIG0_EXT13,
- (void *) Get_FIG0_EXT14, (void *) Get_FIG0_EXT15,
- (void *) Get_FIG0_EXT16, (void *) Get_FIG0_EXT17,
- (void *) Get_FIG0_EXT18, (void *) Get_FIG0_EXT19,
- (void *) Get_FIG0_EXT20, (void *) Get_FIG0_EXT21,
- (void *) Get_FIG0_EXT22, (void *) Get_FIG0_EXT23,
- (void *) Get_FIG0_EXT24, (void *) Get_FIG0_EXT25,
- (void *) Get_FIG0_EXT26, (void *) Get_FIG0_EXT27,
- (void *) Get_FIG0_EXT28, (void *) Get_FIG0_EXT29,
- (void *) Get_FIG0_EXT30, (void *) Get_FIG0_EXT31,
- 0
-};
-
-void *Get_FIG1_EXT[] = {
- (void *) Get_FIG1_EXT0, (void *) Get_FIG1_EXT1,
- (void *) Get_FIG1_EXT2, (void *) Get_FIG1_EXT3,
- (void *) Get_FIG1_EXT4, (void *) Get_FIG1_EXT5,
- (void *) Get_FIG1_EXT6, (void *) Get_FIG1_EXT7,
- 0
-};
-
-void *Get_FIG2_EXT[] = {
- (void *) Get_FIG2_EXT0, (void *) Get_FIG2_EXT1,
- (void *) Get_FIG2_EXT2, (void *) Get_FIG2_EXT3,
- (void *) Get_FIG2_EXT4, (void *) Get_FIG2_EXT5,
- (void *) Get_FIG2_EXT6, (void *) Get_FIG2_EXT7,
- 0
-};
-
-void *Get_FIG5_EXT[] = {
- (void *) Get_FIG5_EXT0, (void *) Get_FIG5_EXT1, (void *) Get_FIG5_EXT2,
- 0
-};
-
-void *FIG_PARSER[] = {
- (void *) MCI_SI_DEC,
- (void *) SI_LABEL_DEC1,
- (void *) SI_LABEL_DEC2,
- (void *) RESERVED1,
- (void *) RESERVED2,
- (void *) FIDC_DEC,
- (void *) CA_DEC,
- (void *) RESERVED3,
- 0
-};
-
-S32 Get_FIG_Init(U8 *data)
-{
- fig_data.data = data;
- fig_data.byte_cnt = 0;
- fig_data.bit_cnt = 0;
- return RTV_OK;
-}
-
-S32 Get_FIG_Header(struct FIG_DATA *fig_data)
-{
-
- Get_Bytes(1, &(fig_data->length));
- if (fig_data->length == PN_FIB_END_MARKER)
- return PN_FIB_END_MARKER;
-
- fig_data->type = (fig_data->length) >> 5;
- fig_data->length = (fig_data->length) & 0x1f;
- return RTV_OK;
-}
-
-S32 FIB_INIT_DEC(U8 *fib_ptr)
-{
- U8 fib_cnt = 0;
- U8 fic_cmd = 1;
-
- while (fib_cnt < 30) {
- Get_FIG_Init(fib_ptr+fib_cnt);
-
- if (Get_FIG_Header(&fig_data) == PN_FIB_END_MARKER)
- return RTV_OK;
- if (fig_data.length == 0)
- return RTV_FAIL;
-
- ((S32 (*) (U8)) FIG_PARSER[fig_data.type]) (fic_cmd);
-
- fib_cnt += (fig_data.length+1);
- }
-
- return RTV_OK;
-}
-
-S32 MCI_SI_DEC(U8 fic_cmd)
-{
- U8 C_N, OE, P_D, EXT;
-
- Get_Bits(1, &C_N);
- Get_Bits(1, &OE);
- Get_Bits(1, &P_D);
- Get_Bits(5, &EXT);
-
- ((S32 (*) (U8, U8, U8)) Get_FIG0_EXT[EXT]) (fic_cmd, P_D, C_N);
- return RTV_OK;
-}
-
-S32 SI_LABEL_DEC1(U8 fic_cmd)
-{
- U8 Charset, OE, EXT;
-
- Get_Bits(4, &Charset);
- Get_Bits(1, &OE);
- Get_Bits(3, &EXT);
-
- ((S32 (*) (U8, U8)) Get_FIG1_EXT[EXT]) (fic_cmd, Charset);
- return RTV_OK;
-}
-
-S32 SI_LABEL_DEC2(U8 fic_cmd)
-{
- U8 Toggle_Flag, Seg_Index, OE, EXT;
-
- Get_Bits(1, &Toggle_Flag);
- Get_Bits(3, &Seg_Index);
- Get_Bits(1, &OE);
- Get_Bits(3, &EXT);
-
- ((S32 (*) (U8, U8)) Get_FIG2_EXT[EXT]) (fic_cmd, Seg_Index);
- return RTV_OK;
-}
-
-S32 RESERVED1(U8 fic_cmd)
-{
- return RTV_OK;
-}
-
-S32 RESERVED2(U8 fic_cmd)
-{
- return RTV_OK;
-}
-
-S32 FIDC_DEC(U8 fic_cmd)
-{
- U8 D1, D2, TCid, EXT;
-
- Get_Bits(1, &D1);
- Get_Bits(1, &D2);
- Get_Bits(3, &TCid);
- Get_Bits(3, &EXT);
-
- ((S32 (*) (U8, U8, U8, U8)) Get_FIG5_EXT[EXT]) (D1, D2, fic_cmd, TCid);
- return RTV_OK;
-}
-
-S32 CA_DEC(U8 fic_cmd)
-{
- U8 F_L, EXT;
-
- Get_Bits(2, &F_L);
- Get_Bits(6, &EXT);
- return RTV_OK;
-}
-
-S32 RESERVED3(U8 fic_cmd)
-{
- return RTV_OK;
-}
-
-/*
-* FIG TYPE 0 Extension Function
-* Ensemble Information */
-S32 Get_FIG0_EXT0(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2;
-
- struct FIG_TYPE0_Ext0 type0_ext0;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext0.Eid = (temp1 << 8) | temp2;
-
- Get_Bits(2, &type0_ext0.Change_flag);
- Get_Bits(1, &type0_ext0.AI_flag);
-
- Get_Bits(5, &type0_ext0.CIF_Count0);
- Get_Bytes(1, &type0_ext0.CIF_Count1);
-
- if (type0_ext0.Change_flag != 0)
- Get_Bytes(1, &type0_ext0.Occurence_Change);
-
- if (fic_cmd) {
- ENS_DESC.id = type0_ext0.Eid;
- ENS_DESC.change_flag = type0_ext0.Change_flag;
- ENS_DESC.Alarm_flag = type0_ext0.AI_flag;
- }
- }
-
- return RTV_OK;
-}
-
-/* Basic sub-channel organization */
-S32 Get_FIG0_EXT1(U8 fic_cmd, U8 P_D, U8 C_N)
-{
-U8 temp1, temp2, cnt;
-S32 bit_rate, sub_ch_size, p_l;
-
-struct FIG_TYPE0_Ext1 type0_ext1;
-
-while (fig_data.byte_cnt < fig_data.length) {
- Get_Bits(6, &type0_ext1.SubChid);
- Get_Bits(2, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext1.StartAdd = (temp1 << 8) | temp2;
-
- Get_Bits(1, &type0_ext1.S_L_form);
- if (type0_ext1.S_L_form) {
- Get_Bits(3, &type0_ext1.Option);
- Get_Bits(2, &type0_ext1.Protection_Level);
- Get_Bits(2, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext1.Sub_ch_size = (temp1 << 8) | temp2;
- type0_ext1.Size_Protection = (type0_ext1.Option << 12)
- | (type0_ext1.Protection_Level << 10)
- | type0_ext1.Sub_ch_size;
- } else {
- Get_Bits(1, &type0_ext1.Table_sw);
- Get_Bits(6, &type0_ext1.Table_index);
- type0_ext1.Size_Protection = (type0_ext1.Table_sw << 6)
- | type0_ext1.Table_index;
- }
-
- if (fic_cmd) {
- if (C_N) {
- GET_SUBCH_INFO(&type0_ext1, &bit_rate,
- &sub_ch_size, &p_l);
- /*Old SId & New SId matching */
- for (cnt = 0
- ; cnt < NEXT_ENS_DESC.svr_comp_num
- ; cnt++){
-
- if (NEXT_ENS_DESC.svr_comp[cnt].SubChid
- == type0_ext1.SubChid) {
-
- NEXT_ENS_DESC.svr_comp[cnt].START_Addr
- = type0_ext1.StartAdd;
- NEXT_ENS_DESC.svr_comp[cnt].SUB_CH_Size
- = sub_ch_size;
- NEXT_ENS_DESC.svr_comp[cnt].P_L
- = p_l;
- NEXT_ENS_DESC.svr_comp[cnt].BIT_RATE
- = bit_rate;
- }
- }
- } else {
- GET_SUBCH_INFO(&type0_ext1,
- &bit_rate,
- &sub_ch_size, &p_l);
-
- for (cnt = 0
- ; cnt < ENS_DESC.svr_comp_num
- ; cnt++) {
- /*Old SId & New SId matching */
- if (ENS_DESC.svr_comp[cnt].SubChid
- == type0_ext1.SubChid) {
- ENS_DESC.svr_comp[cnt].START_Addr
- = type0_ext1.StartAdd;
- ENS_DESC.svr_comp[cnt].SUB_CH_Size
- = sub_ch_size;
- ENS_DESC.svr_comp[cnt].P_L
- = p_l;
- ENS_DESC.svr_comp[cnt].BIT_RATE
- = bit_rate;
- }
- }
- }
- }
-}
-
-return RTV_OK;
-}
-
-static INLINE void update_next_ens_desc_type0_ext2(
- struct ENSEMBLE_DESC *next,
- struct FIG_TYPE0_Ext2 *type0_ext2,
- U8 P_D)
-{
- UINT l = 0;
-
- if (P_D) {
- next->svr_desc[next->svr_num].P_D = 1;
- next->svr_desc[next->svr_num].ECC
- = type0_ext2->ECC;
- } else
- next->svr_desc[next->svr_num].P_D = 0;
-
- next->svr_desc[next->svr_num].Country_id = type0_ext2->Country_id;
- next->svr_desc[next->svr_num].Service_ref = type0_ext2->Service_ref;
- next->svr_desc[next->svr_num].Sid = type0_ext2->Sid;
-
- next->svr_desc[next->svr_num].Local_flag = type0_ext2->Local_flag;
- next->svr_desc[next->svr_num].CAID = type0_ext2->CAID;
- next->svr_desc[next->svr_num].Num_ser_comp = type0_ext2->Num_ser_comp;
-
- for (l = 0; l < type0_ext2->Num_ser_comp; l++) {
-
- next->svr_desc[next->svr_num].ser_comp_num[l]
- = next->svr_comp_num;
- next->svr_comp[next->svr_comp_num].TMID
- = type0_ext2->svr_comp_des[l].TMID;
- /* Transport Mechanism Identifier. */
- switch (type0_ext2->svr_comp_des[l].TMID) {
- /* MSC stream Audio mode. */
- case MSC_STREAM_AUDIO:
- next->svr_comp[next->svr_comp_num].Sid
- = type0_ext2->Sid;
- next->svr_comp[next->svr_comp_num].ASCTy
- = type0_ext2->svr_comp_des[l].ASCTy;
- next->svr_comp[next->svr_comp_num].SubChid
- = type0_ext2->svr_comp_des[l].SubChid;
- next->svr_comp[next->svr_comp_num].P_S
- = type0_ext2->svr_comp_des[l].P_S;
- next->svr_comp[next->svr_comp_num].CA_flag
- = type0_ext2->svr_comp_des[l].CA_flag;
- break;
- /* MSC stream data mode. */
- case MSC_STREAM_DATA:
- next->svr_comp[next->svr_comp_num].Sid
- = type0_ext2->Sid;
- next->svr_comp[next->svr_comp_num].DSCTy
- = type0_ext2->svr_comp_des[l].DSCTy;
- next->svr_comp[next->svr_comp_num].SubChid
- = type0_ext2->svr_comp_des[l].SubChid;
- next->svr_comp[next->svr_comp_num].P_S
- = type0_ext2->svr_comp_des[l].P_S;
- next->svr_comp[next->svr_comp_num].CA_flag
- = type0_ext2->svr_comp_des[l].CA_flag;
- break;
- /* FIDC mode. */
- case FIDC:
- next->svr_comp[next->svr_comp_num].Sid
- = type0_ext2->Sid;
- next->svr_comp[next->svr_comp_num].DSCTy
- = type0_ext2->svr_comp_des[l].DSCTy;
- next->svr_comp[next->svr_comp_num].FIDCid
- = type0_ext2->svr_comp_des[l].FIDCid;
- next->svr_comp[next->svr_comp_num].P_S
- = type0_ext2->svr_comp_des[l].P_S;
- next->svr_comp[next->svr_comp_num].CA_flag
- = type0_ext2->svr_comp_des[l].CA_flag;
- break;
- /* MSC Packet data mode. */
- case MSC_PACKET_DATA:
- next->svr_comp[next->svr_comp_num].Sid
- = type0_ext2->Sid;
- next->svr_comp[next->svr_comp_num].SCid
- = type0_ext2->svr_comp_des[l].SCid;
- next->svr_comp[next->svr_comp_num].P_S
- = type0_ext2->svr_comp_des[l].P_S;
- next->svr_comp[next->svr_comp_num].CA_flag
- = type0_ext2->svr_comp_des[l].CA_flag;
- break;
- }
- next->svr_comp_num++;
- }
- next->svr_num++;
-
-}
-
-
-static INLINE void update_current_ens_desc_type0_ext2(
- struct ENSEMBLE_DESC *cur,
- struct FIG_TYPE0_Ext2 *type0_ext2,
- U8 P_D)
-{
- UINT l = 0;
-
- if (P_D) {
- cur->svr_desc[cur->svr_num].P_D = 1;
- cur->svr_desc[cur->svr_num].ECC = type0_ext2->ECC;
- } else
- cur->svr_desc[cur->svr_num].P_D = 0;
-
- cur->svr_desc[cur->svr_num].Country_id = type0_ext2->Country_id;
- cur->svr_desc[cur->svr_num].Service_ref = type0_ext2->Service_ref;
- cur->svr_desc[cur->svr_num].Sid = type0_ext2->Sid;
-
- cur->svr_desc[cur->svr_num].Local_flag = type0_ext2->Local_flag;
- cur->svr_desc[cur->svr_num].CAID = type0_ext2->CAID;
- cur->svr_desc[cur->svr_num].Num_ser_comp = type0_ext2->Num_ser_comp;
-
- for (l = 0; l < type0_ext2->Num_ser_comp; l++) {
- cur->svr_desc[cur->svr_num].ser_comp_num[l] = cur->svr_comp_num;
- cur->svr_comp[cur->svr_comp_num].TMID
- = type0_ext2->svr_comp_des[l].TMID;
-
- switch (type0_ext2->svr_comp_des[l].TMID) {
- case MSC_STREAM_AUDIO:
- /* MSC stream Audio mode. */
- cur->svr_comp[cur->svr_comp_num].Sid
- = type0_ext2->Sid;
- cur->svr_comp[cur->svr_comp_num].ASCTy
- = type0_ext2->svr_comp_des[l].ASCTy;
- cur->svr_comp[cur->svr_comp_num].SubChid
- = type0_ext2->svr_comp_des[l].SubChid;
- cur->svr_comp[cur->svr_comp_num].P_S
- = type0_ext2->svr_comp_des[l].P_S ;
- cur->svr_comp[cur->svr_comp_num].CA_flag
- = type0_ext2->svr_comp_des[l].CA_flag;
- break;
- case MSC_STREAM_DATA:
- /* MSC stream data mode.*/
- cur->svr_comp[cur->svr_comp_num].Sid
- = type0_ext2->Sid;
- cur->svr_comp[cur->svr_comp_num].DSCTy
- = type0_ext2->svr_comp_des[l].DSCTy;
- cur->svr_comp[cur->svr_comp_num].SubChid
- = type0_ext2->svr_comp_des[l].SubChid;
- cur->svr_comp[cur->svr_comp_num].P_S
- = type0_ext2->svr_comp_des[l].P_S;
- cur->svr_comp[cur->svr_comp_num].CA_flag
- = type0_ext2->svr_comp_des[l].CA_flag;
- break;
- case FIDC:
- /* FIDC mode. */
- #if 0
- /* EWS Data have no Label in Korea */
- if (type0_ext2->svr_comp_des[l].DSCTy == 2) {
- cur->svr_comp_num--;
- cur->svr_num--;
- }
- #endif
- cur->svr_comp[cur->svr_comp_num].Sid
- = type0_ext2->Sid;
- cur->svr_comp[cur->svr_comp_num].DSCTy
- = type0_ext2->svr_comp_des[l].DSCTy;
- cur->svr_comp[cur->svr_comp_num].FIDCid
- = type0_ext2->svr_comp_des[l].FIDCid;
- cur->svr_comp[cur->svr_comp_num].P_S
- = type0_ext2->svr_comp_des[l].P_S;
- cur->svr_comp[cur->svr_comp_num].CA_flag
- = type0_ext2->svr_comp_des[l].CA_flag;
- break;
- case MSC_PACKET_DATA:
- /* MSC Packet data mode.*/
- cur->svr_comp[cur->svr_comp_num].Sid
- = type0_ext2->Sid;
- cur->svr_comp[cur->svr_comp_num].SCid
- = type0_ext2->svr_comp_des[l].SCid;
- cur->svr_comp[cur->svr_comp_num].P_S
- = type0_ext2->svr_comp_des[l].P_S;
- cur->svr_comp[cur->svr_comp_num].CA_flag
- = type0_ext2->svr_comp_des[l].CA_flag;
- break;
- }
- cur->svr_comp_num++;
- }
- cur->svr_num++;
-}
-
-
-
-
-
-/* Basic service and service component definition */
-S32 Get_FIG0_EXT2(U8 fic_cmd, U8 P_D, U8 C_N)
-{
-U8 temp1, temp2, temp3;
-UINT cnt, update_flag = 0;
-
-struct FIG_TYPE0_Ext2 type0_ext2;
-
-while (fig_data.byte_cnt < fig_data.length) {
- if (P_D) {
- Get_Bytes(1, &type0_ext2.ECC);
- Get_Bits(4, &type0_ext2.Country_id);
- Get_Bits(4, &temp1);
- Get_Bytes(1, &temp2);
- Get_Bytes(1, &temp3);
- type0_ext2.Service_ref = (temp1 << 16)
- | (temp2 << 8) | temp3;
- type0_ext2.Sid = (type0_ext2.ECC << 24)
- | (type0_ext2.Country_id << 20)
- | type0_ext2.Service_ref;
- } else {
- Get_Bits(4, &type0_ext2.Country_id);
- Get_Bits(4, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext2.Service_ref = (temp1 << 8) | temp2;
- type0_ext2.Sid = (type0_ext2.Country_id << 12)
- | type0_ext2.Service_ref;
- }
-
- Get_Bits(1, &type0_ext2.Local_flag);
- Get_Bits(3, &type0_ext2.CAID);
- Get_Bits(4, &type0_ext2.Num_ser_comp);
-
- for (cnt = 0; cnt < type0_ext2.Num_ser_comp; cnt++) {
- Get_Bits(2, &type0_ext2.svr_comp_des[cnt].TMID);
- switch (type0_ext2.svr_comp_des[cnt].TMID) {
- case MSC_STREAM_AUDIO:
- Get_Bits(6,
- &type0_ext2.svr_comp_des[cnt].ASCTy);
- Get_Bits(6,
- &type0_ext2.svr_comp_des[cnt].SubChid);
- Get_Bits(1,
- &type0_ext2.svr_comp_des[cnt].P_S);
- Get_Bits(1,
- &type0_ext2.svr_comp_des[cnt].CA_flag);
- break;
- case MSC_STREAM_DATA:
- Get_Bits(6,
- &type0_ext2.svr_comp_des[cnt].DSCTy);
- Get_Bits(6,
- &type0_ext2.svr_comp_des[cnt].SubChid);
- Get_Bits(1,
- &type0_ext2.svr_comp_des[cnt].P_S);
- Get_Bits(1,
- &type0_ext2.svr_comp_des[cnt].CA_flag);
- break;
- case FIDC:
- Get_Bits(6,
- &type0_ext2.svr_comp_des[cnt].DSCTy);
- Get_Bits(6,
- &type0_ext2.svr_comp_des[cnt].FIDCid);
- Get_Bits(1,
- &type0_ext2.svr_comp_des[cnt].P_S);
- Get_Bits(1,
- &type0_ext2.svr_comp_des[cnt].CA_flag);
- break;
- case MSC_PACKET_DATA:
- Get_Bits(6, &temp1);
- Get_Bits(6, &temp2);
- type0_ext2.svr_comp_des[cnt].SCid = (temp1 << 6)
- |temp2;
- Get_Bits(1, &type0_ext2.svr_comp_des[cnt].P_S);
- Get_Bits(1,
- &type0_ext2.svr_comp_des[cnt].CA_flag);
- break;
- }
- }
-
- if (fic_cmd) {
- if (C_N) {
- update_flag = 1;
- for (cnt = 0
- ; cnt < NEXT_ENS_DESC.svr_num
- ; cnt++) {
- /*Old SId & New SId matching */
- if (NEXT_ENS_DESC.svr_desc[cnt].Sid
- == type0_ext2.Sid) {
- update_flag = 0;
- break;
- }
- }
-
- if (update_flag) {
- update_next_ens_desc_type0_ext2(&NEXT_ENS_DESC,
- &type0_ext2, P_D);
- }
- } else {
- update_flag = 1;
- for (cnt = 0; cnt < ENS_DESC.svr_num; cnt++) {
- /*Old SId & New SId matching */
- if (ENS_DESC.svr_desc[cnt].Sid
- == type0_ext2.Sid) {
- update_flag = 0;
- break;
- }
- }
-
- if (update_flag) {
- update_current_ens_desc_type0_ext2(&ENS_DESC,
- &type0_ext2, P_D);
- }
- }
- }
-}
-
-return RTV_OK;
-}
-
-
-static INLINE void update_ens_desc_type0_ext3(
- struct ENSEMBLE_DESC *next,
- struct ENSEMBLE_DESC *cur,
- struct FIG_TYPE0_Ext3 *type0_ext3,
- U8 C_N)
-{
- UINT k = 0;
-
- if (C_N) {
- for (k = 0; k < next->svr_comp_num; k++) {
- if ((next->svr_comp[k].TMID == MSC_PACKET_DATA) &&
- (next->svr_comp[k].SCid == type0_ext3->SCid)) {
- next->svr_comp[k].SubChid
- = type0_ext3->SubChid;
- next->svr_comp[k].Packet_add
- = type0_ext3->Packet_add;
- next->svr_comp[k].DSCTy
- = type0_ext3->DSCTy;
- next->svr_comp[k].DG_flag
- = type0_ext3->DG_flag;
-
- if (type0_ext3->CA_Org_flag)
- next->svr_comp[k].CA_Org
- = type0_ext3->CA_Org;
- }
- }
- } else {
- for (k = 0; k < cur->svr_comp_num; k++) {
- if ((cur->svr_comp[k].TMID == MSC_PACKET_DATA) &&
- (cur->svr_comp[k].SCid == type0_ext3->SCid)) {
- cur->svr_comp[k].SubChid
- = type0_ext3->SubChid;
- cur->svr_comp[k].Packet_add
- = type0_ext3->Packet_add;
-
- cur->svr_comp[k].DSCTy
- = type0_ext3->DSCTy;
- cur->svr_comp[k].DG_flag
- = type0_ext3->DG_flag;
-
- if (type0_ext3->CA_Org_flag)
- cur->svr_comp[k].CA_Org
- = type0_ext3->CA_Org;
- }
- }
- }
-}
-
-/* Service component in packet mode with or without Conditional Access */
-S32 Get_FIG0_EXT3(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2;
-
- struct FIG_TYPE0_Ext3 type0_ext3;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bytes(1, &temp1);
- Get_Bits(4, &temp2);
- type0_ext3.SCid = (temp1 << 4) | temp2;
-
- Get_Bits(3, &temp1);
- Get_Bits(1, &type0_ext3.CA_Org_flag);
- Get_Bits(1, &type0_ext3.DG_flag);
- Get_Bits(1, &temp2);
- Get_Bits(6, &type0_ext3.DSCTy);
- Get_Bits(6, &type0_ext3.SubChid);
-
- Get_Bits(2, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext3.Packet_add = (temp1 << 8) | temp2;
-
- if (type0_ext3.CA_Org_flag) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext3.CA_Org = (temp1 << 8) | temp2;
- }
-
- if (fic_cmd) {
- update_ens_desc_type0_ext3(&NEXT_ENS_DESC,
- &ENS_DESC, &type0_ext3,
- C_N);
- }
- }
-
- return RTV_OK;
-}
-
-
-static INLINE void update_ens_desc_type0_ext4(
- struct ENSEMBLE_DESC *next,
- struct ENSEMBLE_DESC *cur,
- struct FIG_TYPE0_Ext4 *type0_ext4,
- U8 C_N)
-{
- UINT k = 0;
-
- if (C_N) {
- for (k = 0; k < next->svr_comp_num; k++) {
- if (type0_ext4->M_F) {
- if ((next->svr_comp[k].FIDCid
- == type0_ext4->FIDCid))
- next->svr_comp[k].CA_Org
- = type0_ext4->CA_Org;
- } else {
- if ((next->svr_comp[k].SubChid
- == type0_ext4->SubChid))
- next->svr_comp[k].CA_Org
- = type0_ext4->CA_Org;
- }
- }
- } else {
- for (k = 0; k < cur->svr_comp_num; k++) {
- if (type0_ext4->M_F) {
- if ((cur->svr_comp[k].FIDCid
- == type0_ext4->FIDCid))
- cur->svr_comp[k].CA_Org
- = type0_ext4->CA_Org;
- } else {
- if ((cur->svr_comp[k].SubChid
- == type0_ext4->SubChid))
- cur->svr_comp[k].CA_Org
- = type0_ext4->CA_Org;
- }
- }
- }
-
-}
-
-
-/* Service component with Conditional Access in stream mode or FIC */
-S32 Get_FIG0_EXT4(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2;
-
- struct FIG_TYPE0_Ext4 type0_ext4;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bits(1, &temp1);
- Get_Bits(1, &type0_ext4.M_F);
-
- if (type0_ext4.M_F)
- Get_Bits(6, &type0_ext4.FIDCid);
- else
- Get_Bits(6, &type0_ext4.SubChid);
-
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext4.CA_Org = (temp1 << 8) | temp2;
-
- if (fic_cmd) {
- update_ens_desc_type0_ext4(&NEXT_ENS_DESC,
- &ENS_DESC,
- &type0_ext4,
- C_N);
- }
- }
-
- return RTV_OK;
-}
-
-static INLINE void update_current_ens_desc_type0_ext5(
- struct ENSEMBLE_DESC *cur,
- struct FIG_TYPE0_Ext5 *type0_ext5)
-{
- UINT k;
-
- for (k = 0; k < cur->svr_comp_num; k++) {
- if (type0_ext5->L_S_flag) {
- if (cur->svr_comp[k].SCid == type0_ext5->SCid)
- cur->svr_comp[k].language
- = type0_ext5->Language;
- } else {
- if (type0_ext5->MSC_FIC_flag) {
- if (cur->svr_comp[k].FIDCid
- == type0_ext5->FIDCid)
- cur->svr_comp[k].language
- = type0_ext5->Language;
- } else {
- if (cur->svr_comp[k].SubChid
- == type0_ext5->SubChid)
- cur->svr_comp[k].language
- = type0_ext5->Language;
- }
- }
- }
-}
-
-/* Service Component Language */
-S32 Get_FIG0_EXT5(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2, temp3;
-
- struct FIG_TYPE0_Ext5 type0_ext5;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bits(1, &type0_ext5.L_S_flag);
- if (type0_ext5.L_S_flag) {
- Get_Bits(3, &temp1);
- Get_Bits(4, &temp2);
- Get_Bytes(1, &temp3);
- type0_ext5.SCid = (temp2 << 8) | temp3;
- } else {
- Get_Bits(1, &type0_ext5.MSC_FIC_flag);
- if (type0_ext5.MSC_FIC_flag)
- Get_Bits(6, &type0_ext5.FIDCid);
- else
- Get_Bits(6, &type0_ext5.SubChid);
-
- }
- Get_Bytes(1, &type0_ext5.Language);
-
- if (fic_cmd) {
- update_current_ens_desc_type0_ext5(&ENS_DESC,
- &type0_ext5);
- }
- }
-
- return RTV_OK;
-}
-
-/* Service Linking Information */
-S32 Get_FIG0_EXT6(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2, temp3, temp4;
- U8 k;
-
- struct FIG_TYPE0_Ext6 type0_ext6;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bits(1, &type0_ext6.id_list_flag);
- Get_Bits(1, &type0_ext6.LA);
- Get_Bits(1, &type0_ext6.S_H);
- Get_Bits(1, &type0_ext6.ILS);
- Get_Bits(4, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext6.LSN = (temp1 << 8) | temp2;
-
- if (type0_ext6.id_list_flag) {
- if (P_D) {
- Get_Bits(4, &temp1);
- Get_Bits(4, &type0_ext6.Num_ids);
-
- for (k = 0; k < type0_ext6.Num_ids; k++) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- Get_Bytes(1, &temp3);
- Get_Bytes(1, &temp4);
- type0_ext6.Sid[k] = (temp1 << 24)
- | (temp2 << 16) | (temp3 << 8)
- | temp4;
- }
- } else {
- Get_Bits(1, &temp1);
- Get_Bits(2, &type0_ext6.idLQ);
- Get_Bits(1, &type0_ext6.Shd);
- Get_Bits(4, &type0_ext6.Num_ids);
-
- for (k = 0; k < type0_ext6.Num_ids; k++) {
- if (type0_ext6.ILS)
- Get_Bytes(1,
- &type0_ext6.ECC[k]);
-
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext6.id[k] = (temp1 << 8) | temp2;
- }
- }
- }
-
- if (fic_cmd) {
- /* Not yet implementation
- *
- * */
- }
- }
-
- return RTV_OK;
-}
-
-S32 Get_FIG0_EXT7(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-
-
-static INLINE void update_ens_desc_type0_ext8(
- struct ENSEMBLE_DESC *next,
- struct ENSEMBLE_DESC *cur,
- struct FIG_TYPE0_Ext8 *type0_ext8,
- U8 C_N)
-{
-UINT k;
-
-if (C_N) {
- for (k = 0; k < next->svr_comp_num; k++) {
- if (type0_ext8->L_S_flag) {
- if (next->svr_comp[k].SCid
- == type0_ext8->SCid) {
- if (next->svr_comp[k].Sid
- == type0_ext8->Sid)
- next->svr_comp[k].SCidS
- = type0_ext8->SCidS;
- }
- } else {
- if (type0_ext8->MSC_FIC_flag) {
- if (next->svr_comp[k].FIDCid
- == type0_ext8->FIDCid) {
- if (next->svr_comp[k].Sid
- == type0_ext8->Sid)
- next->svr_comp[k].SCidS
- = type0_ext8->SCidS;
- }
- } else {
- if (next->svr_comp[k].SubChid
- == type0_ext8->SubChid) {
- if (next->svr_comp[k].Sid
- == type0_ext8->Sid)
- next->svr_comp[k].SCidS
- = type0_ext8->SCidS;
- }
- }
- }
- }
-} else {
- for (k = 0; k < cur->svr_comp_num; k++) {
- if (type0_ext8->L_S_flag) {
- if (cur->svr_comp[k].SCid
- == type0_ext8->SCid) {
- if (cur->svr_comp[k].Sid
- == type0_ext8->Sid)
- cur->svr_comp[k].SCidS
- = type0_ext8->SCidS;
- }
- } else {
- if (type0_ext8->MSC_FIC_flag) {
- if (cur->svr_comp[k].FIDCid
- == type0_ext8->FIDCid) {
- if (cur->svr_comp[k].Sid
- == type0_ext8->Sid)
- cur->svr_comp[k].SCidS
- = type0_ext8->SCidS;
- }
- } else {
- if (cur->svr_comp[k].SubChid
- == type0_ext8->SubChid) {
- if (cur->svr_comp[k].Sid
- == type0_ext8->Sid)
- cur->svr_comp[k].SCidS
- = type0_ext8->SCidS;
- }
- }
- }
- }
-}
-
-}
-
-
-
-/* Service component global definition*/
-S32 Get_FIG0_EXT8(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2, temp3, temp4;
-
- struct FIG_TYPE0_Ext8 type0_ext8;
-
- while (fig_data.byte_cnt < fig_data.length) {
- if (P_D) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- Get_Bytes(1, &temp3);
- Get_Bytes(1, &temp4);
- type0_ext8.Sid = (temp1 << 24)
- | (temp2 << 16)
- | (temp3 << 8)
- | temp4;
- } else {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext8.Sid = (temp1 << 8) | temp2;
- }
-
- Get_Bits(1, &type0_ext8.Ext_flag);
- Get_Bits(3, &temp1);
- Get_Bits(4, &type0_ext8.SCidS);
- Get_Bits(1, &type0_ext8.L_S_flag);
-
- if (type0_ext8.L_S_flag) {
- Get_Bits(3, &temp1);
- Get_Bits(4, &temp2);
- Get_Bytes(1, &temp3);
- type0_ext8.SCid = (temp2 << 8) | temp3;
- } else {
- Get_Bits(1, &type0_ext8.MSC_FIC_flag);
- if (type0_ext8.MSC_FIC_flag)
- Get_Bits(6, &type0_ext8.FIDCid);
- else
- Get_Bits(6, &type0_ext8.SubChid);
- }
-
- if (type0_ext8.Ext_flag)
- Get_Bytes(1, &temp1);
-
- if (fic_cmd) {
- update_ens_desc_type0_ext8(&NEXT_ENS_DESC,
- &ENS_DESC,
- &type0_ext8,
- C_N);
- }
- }
-
- return RTV_OK;
-}
-
-/* Country, LTO and International Table */
-S32 Get_FIG0_EXT9(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2, temp3, temp4;
- U8 k = 0;
-
- struct FIG_TYPE0_Ext9 type0_ext9;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bits(1, &type0_ext9.Ext_flag);
- Get_Bits(1, &type0_ext9.LTO_unique);
- Get_Bits(6, &type0_ext9.Ensemble_LTO);
-
- Get_Bytes(1, &type0_ext9.Ensemble_ECC);
- Get_Bytes(1, &type0_ext9.Inter_Table_ID);
-
- if (type0_ext9.Ext_flag) {
- Get_Bits(2, &type0_ext9.Num_Ser);
- Get_Bits(6, &type0_ext9.LTO);
-
- if (P_D) {
- for (k = 0; k < type0_ext9.Num_Ser; k++) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- Get_Bytes(1, &temp3);
- Get_Bytes(1, &temp4);
- type0_ext9.Sid[k] = (temp1 << 24)
- | (temp2 << 16)
- | (temp3 << 8)
- | temp4;
- }
- } else {
- if (type0_ext9.Num_Ser != 0)
- Get_Bytes(1, &type0_ext9.ECC);
-
- for (k = 0; k < type0_ext9.Num_Ser; k++) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext9.Sid[k]
- = (temp1 << 8) | temp2;
- }
- }
- }
-
- if (fic_cmd) {
- ENS_DESC.date_time_info.LTO = type0_ext9.Ensemble_LTO;
- ENS_DESC.date_time_info.get_flag |= LTO_FLAG;
- }
- }
-
- return RTV_OK;
-}
-
-/* Date and Time */
-S32 Get_FIG0_EXT10(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2, temp3;
-
- struct FIG_TYPE0_Ext10 type0_ext10;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bits(1, &temp1);
- Get_Bits(7, &temp1);
- Get_Bytes(1, &temp2);
- Get_Bits(2, &temp3);
-
- type0_ext10.MJD = (temp1 << 10) | (temp2 << 2) | temp3;
-
- Get_Bits(1, &type0_ext10.LSI);
- Get_Bits(1, &type0_ext10.Conf_ind);
- Get_Bits(1, &type0_ext10.UTC_flag);
- Get_Bits(3, &temp1);
- Get_Bits(2, &temp2);
- type0_ext10.Hours = (temp1 << 2) | temp2;
- Get_Bits(6, &type0_ext10.Minutes);
-
- if (type0_ext10.UTC_flag) {
- Get_Bits(6, &type0_ext10.Seconds);
- Get_Bits(2, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext10.Milliseconds = (temp1 << 8) | temp2;
- }
-
- if (fic_cmd) {
- ENS_DESC.date_time_info.MJD = type0_ext10.MJD;
- ENS_DESC.date_time_info.LSI = type0_ext10.LSI;
- ENS_DESC.date_time_info.conf_ind = type0_ext10.Conf_ind;
- ENS_DESC.date_time_info.utc_flag = type0_ext10.UTC_flag;
- ENS_DESC.date_time_info.hours = type0_ext10.Hours;
- ENS_DESC.date_time_info.minutes = type0_ext10.Minutes;
- if (type0_ext10.UTC_flag) {
- ENS_DESC.date_time_info.seconds
- = type0_ext10.Seconds;
- ENS_DESC.date_time_info.milliseconds
- = type0_ext10.Milliseconds;
- }
-
- ENS_DESC.date_time_info.get_flag |= TIME_FLAG;
- }
- }
-
- return RTV_OK;
-}
-
-/* Region Definition */
-S32 Get_FIG0_EXT11(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-S32 Get_FIG0_EXT12(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-
-
-static INLINE void update_ens_desc_type0_ext13(
- struct FIG_TYPE0_Ext13 *type0_ext13)
-{
-UINT i, k, j, p, cnt;
-
-for (i = 0; i < ENS_DESC.svr_num; i++) {
- if (type0_ext13->Sid == ENS_DESC.svr_desc[i].Sid) {
- for (cnt = 0; cnt < ENS_DESC.svr_desc[i].Num_ser_comp; cnt++) {
- j = ENS_DESC.svr_desc[i].ser_comp_num[cnt];
- ENS_DESC.svr_comp[j].Num_User_App
- = type0_ext13->Num_User_App;
- for (k = 0; k < type0_ext13->Num_User_App; k++) {
- ENS_DESC.svr_comp[j].User_APP_Type[k]
- = type0_ext13->User_APP_Type[k];
- ENS_DESC.svr_comp[j].User_APP_data_length[k]
- = type0_ext13->User_APP_data_length[k];
- for (p = 0;
- p < type0_ext13->User_APP_data_length[k]; p++)
- ENS_DESC.svr_comp[j].User_APP_data[p]
- = type0_ext13->User_APP_data[p];
- }
- }
- }
-}
-
-}
-
-/* User Application Information */
-S32 Get_FIG0_EXT13(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2, temp3, temp4;
- UINT k, p;
-
- struct FIG_TYPE0_Ext13 type0_ext13;
-
- while (fig_data.byte_cnt < fig_data.length) {
- if (P_D) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- Get_Bytes(1, &temp3);
- Get_Bytes(1, &temp4);
- type0_ext13.Sid = (temp1 << 24) | (temp2 << 16)
- | (temp3 << 8) | temp4;
- } else {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext13.Sid = (temp1 << 8) | temp2;
- }
-
- Get_Bits(4, &type0_ext13.SCidS);
- Get_Bits(4, &type0_ext13.Num_User_App);
-
- for (k = 0; k < type0_ext13.Num_User_App; k++) {
- Get_Bytes(1, &temp1);
- Get_Bits(3, &temp2);
- type0_ext13.User_APP_Type[k] = (temp1 << 3) | temp2;
-
- Get_Bits(5, &type0_ext13.User_APP_data_length[k]);
-/*
- if (type0_ext13.User_APP_data_length[k]> 2) {
- Get_Bits(1, &type0_ext13.CA_flag);
- Get_Bits(1, &type0_ext13.CA_Org_flag);
- Get_Bits(1, &temp1);
- Get_Bits(5, &type0_ext13.X_PAD_App_Ty);
- Get_Bits(1, &type0_ext13.DG_flag);
- Get_Bits(1, &temp2);
- Get_Bits(6, &type0_ext13.DSCTy);
-
- if (type0_ext13.CA_Org_flag) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext13.CA_Org
- = (temp1 << 8) | temp2;
- }
- }
-*/
- for (p = 0; p < type0_ext13.User_APP_data_length[k]
- ; p++)
- Get_Bytes(1, &type0_ext13.User_APP_data[p]);
-
- }
-
- if (fic_cmd)
- update_ens_desc_type0_ext13(&type0_ext13);
- }
-
- return RTV_OK;
-}
-
-/* FEC sub-channel organization */
-S32 Get_FIG0_EXT14(U8 fic_cmd, U8 P_D, U8 C_N)
-{
-UINT cnt;
-
-struct FIG_TYPE0_Ext14 type0_ext14;
-
-while (fig_data.byte_cnt < fig_data.length) {
- Get_Bits(6, &type0_ext14.SubChid);
- Get_Bits(2, &type0_ext14.FEC_scheme);
-
- if (fic_cmd) {
- if (C_N) {
- for (cnt = 0;
- cnt < NEXT_ENS_DESC.svr_comp_num; cnt++) {
- if (type0_ext14.SubChid
- == NEXT_ENS_DESC.svr_comp[cnt].SubChid)
- NEXT_ENS_DESC.svr_comp[cnt].FEC_scheme
- = type0_ext14.FEC_scheme;
- }
- } else {
- for (cnt = 0; cnt < ENS_DESC.svr_comp_num; cnt++) {
- if (type0_ext14.SubChid
- == ENS_DESC.svr_comp[cnt].SubChid)
- ENS_DESC.svr_comp[cnt].FEC_scheme
- = type0_ext14.FEC_scheme;
- }
- }
- }
-}
-
-return RTV_OK;
-}
-
-S32 Get_FIG0_EXT15(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-
-/* Program Number */
-S32 Get_FIG0_EXT16(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2;
- /*U8 cnt;*/
-
- struct FIG_TYPE0_Ext16 type0_ext16;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext16.Sid = (temp1 << 8) | temp2;
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext16.PNum = (temp1 << 8) | temp2;
- Get_Bits(2, &temp1);
- Get_Bits(4, &temp2);
- Get_Bits(1, &type0_ext16.Continuation_flag);
- Get_Bits(1, &type0_ext16.Update_flag);
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext16.New_Sid = (temp1 << 8) | temp2;
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext16.New_PNum = (temp1 << 8) | temp2;
-#if 0
- if (fic_cmd) {
- for (cnt = 0; cnt < ENS_DESC.svr_num; cnt++) {
- if (type0_ext16.Sid
- == ENS_DESC.svr_desc[cnt].Sid)
- /* Not yet implementation */
-
- }
- }
-#endif
- }
-
- return RTV_OK;
-}
-
-/* Program Type */
-S32 Get_FIG0_EXT17(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2;
- U8 cnt;
-
- struct FIG_TYPE0_Ext17 type0_ext17;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext17.Sid = (temp1 << 8) | temp2;
-
- Get_Bits(1, &type0_ext17.S_D);
- Get_Bits(1, &type0_ext17.P_S);
- Get_Bits(1, &type0_ext17.L_flag);
- Get_Bits(1, &type0_ext17.CC_flag);
- Get_Bits(4, &temp1);
-
- if (type0_ext17.L_flag)
- Get_Bytes(1, &type0_ext17.Language);
-
- Get_Bits(3, &temp2);
- Get_Bits(5, &type0_ext17.Int_code);
-
- if (type0_ext17.CC_flag) {
- Get_Bits(3, &temp1);
- Get_Bits(5, &type0_ext17.Comp_code);
- }
-
- if (fic_cmd) {
- if (ENS_DESC.svr_num != 0) {
- for (cnt = 0; cnt < ENS_DESC.svr_num; cnt++) {
- if (type0_ext17.Sid
- == ENS_DESC.svr_desc[cnt].Sid)
- ENS_DESC.svr_desc[cnt].int_code
- = type0_ext17.Int_code;
-
- }
- }
- }
- }
-
- return RTV_OK;
-}
-
-/* Announcement support */
-S32 Get_FIG0_EXT18(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2;
- U8 i;
- /*U8 cnt; */
-
- struct FIG_TYPE0_Ext18 type0_ext18;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext18.Sid = (temp1 << 8) | temp2;
-
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext18.ASU_flags = (temp1 << 8) | temp2;
-
- Get_Bits(3, &temp1);
- Get_Bits(5, &type0_ext18.Num_clusters);
-
-
- for (i = 0; i < type0_ext18.Num_clusters; i++)
- Get_Bytes(1, &type0_ext18.Cluster_ID[i]);
-
-#if 0
- if (fic_cmd) {
- for (cnt = 0; cnt < ENS_DESC.svr_num; cnt++) {
- if (type0_ext18.Sid
- == ENS_DESC.svr_desc[cnt].Sid)
- /* Not yet implementation */
- }
- }
-#endif
- }
-
- return RTV_OK;
-}
-
-/* Announcement switching */
-S32 Get_FIG0_EXT19(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2;
-
- struct FIG_TYPE0_Ext19 type0_ext19;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bytes(1, &type0_ext19.Cluster_ID);
-
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext19.ASW_flags = (temp1 << 8) | temp2;
-
- Get_Bits(1, &type0_ext19.New_flag);
- Get_Bits(1, &type0_ext19.Region_flag);
- Get_Bits(6, &type0_ext19.SubChid);
-
- if (type0_ext19.Region_flag) {
- Get_Bits(2, &temp1);
- Get_Bits(6, &type0_ext19.Regionid_Lower_Part);
- }
-#if 0
- if (fic_cmd)
- /* Not yet implementation */
-#endif
- }
-
- return RTV_OK;
-}
-
-S32 Get_FIG0_EXT20(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-/* Frequency Information */
-S32 Get_FIG0_EXT21(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-/* Transmitter Identification Information (TII) database */
-S32 Get_FIG0_EXT22(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2;
- U8 i;
-
- struct FIG_TYPE0_Ext22 type0_ext22;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bits(1, &type0_ext22.M_S);
- if (type0_ext22.M_S) {
- Get_Bits(7, &type0_ext22.Mainid);
- Get_Bits(5, &temp1);
- Get_Bits(3, &type0_ext22.Num_Subid_fields);
-
- for (i = 0; i < type0_ext22.Num_Subid_fields; i++) {
- Get_Bits(5, &type0_ext22.Subid[i]);
- Get_Bits(3, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext22.TD[i] = (temp1 << 8) | temp2;
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext22.Latitude_offset[i]
- = (temp1 << 8) | temp2;
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext22.Longitude_offset[i]
- = (temp1 << 8) | temp2;
- }
- } else {
- Get_Bits(7, &type0_ext22.Mainid);
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext22.Latitude_coarse = (temp1 << 8) | temp2;
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext22.Longitude_coarse = (temp1 << 8) | temp2;
- Get_Bits(4, &type0_ext22.Latitude_fine);
- Get_Bits(4, &type0_ext22.Longitude_fine);
- }
-#if 0
- if (fic_cmd)
- /* Not yet implementation */
-#endif
- }
-
- return RTV_OK;
-}
-S32 Get_FIG0_EXT23(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-
-/* Other Ensemble Service */
-S32 Get_FIG0_EXT24(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- U8 temp1, temp2, temp3, temp4;
- U8 i;
- /* U8 cnt;*/
-
- struct FIG_TYPE0_Ext24 type0_ext24;
-
- while (fig_data.byte_cnt < fig_data.length) {
- if (P_D) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- Get_Bytes(1, &temp3);
- Get_Bytes(1, &temp4);
- type0_ext24.Sid
- = (temp1 << 24)
- | (temp2 << 16) | (temp3 << 8) | temp4;
- } else {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext24.Sid = (temp1 << 8) | temp2;
- }
-
- Get_Bits(1, &temp1);
- Get_Bits(3, &type0_ext24.CAid);
- Get_Bits(4, &type0_ext24.Number_Eids);
-
- for (i = 0; i < type0_ext24.Number_Eids; i++) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- type0_ext24.Eid[i] = (temp1 << 8) | temp2;
- }
-#if 0
- if (fic_cmd) {
- for (cnt = 0; cnt < ENS_DESC.svr_num; cnt++) {
- if (type0_ext24.Sid
- == ENS_DESC.svr_desc[cnt].Sid)
- /* Not yet implementation*/
-
- }
- }
-#endif
- }
-
- return RTV_OK;
-}
-
-/* Other Ensemble Announcement support */
-S32 Get_FIG0_EXT25(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-/* Other Ensemble Announcement switching */
-S32 Get_FIG0_EXT26(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-/* FM Announcement support */
-S32 Get_FIG0_EXT27(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-/* FM Announcement switching */
-S32 Get_FIG0_EXT28(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-S32 Get_FIG0_EXT29(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-S32 Get_FIG0_EXT30(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-/* FIC re-direction */
-S32 Get_FIG0_EXT31(U8 fic_cmd, U8 P_D, U8 C_N)
-{
- return RTV_OK;
-}
-
-
-/* FIG TYPE 1 Extension Function */
-/* Ensemble Label */
-S32 Get_FIG1_EXT0(U8 fic_cmd, U8 Char_Set)
-{
- U16 Eid;
- U8 label[17];
- S8 i = 0;
- U8 temp1, temp2;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- Eid = (temp1 << 8) | temp2;
-
- if (fic_cmd) {
- Get_Bytes(16, label);
-
- if (!ENS_DESC.label_flag) {
- for (i = 15; i >= 0; i--) {
- if (label[i] != 0x20) {
- label[i+1] = '\0';
- break;
- }
- }
- label[16] = '\0';
-
- ENS_DESC.charset = Char_Set;
- memcpy(ENS_DESC.Label, label, 17);
- ENS_DESC.label_flag = 1;
- }
- }
- }
-
- return RTV_OK;
-}
-
-/* Program Service Label */
-S32 Get_FIG1_EXT1(U8 fic_cmd, U8 Char_Set)
-{
-U32 sid;
-U8 label[17];
-U8 cnt;
-S8 i;
-U8 temp1, temp2;
-
-while (fig_data.byte_cnt < fig_data.length) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- sid = (temp1 << 8) | temp2;
-
- if (fic_cmd) {
- Get_Bytes(16, label);
-
- for (cnt = 0; cnt < ENS_DESC.svr_num; cnt++) {
- if (sid == ENS_DESC.svr_desc[cnt].Sid) {
- if (!ENS_DESC.svr_desc[cnt].label_flag) {
- for (i = 15; i >= 0; i--) {
- if (label[i] != 0x20) {
- label[i+1] = '\0';
- break;
- }
- }
- label[16] = '\0';
-
- ENS_DESC.svr_desc[cnt].charset
- = Char_Set;
- memcpy(ENS_DESC.svr_desc[cnt].Label,
- label, 17);
- ENS_DESC.svr_desc[cnt].label_flag = 1;
- ENS_DESC.label_num++;
- }
- }
- }
- }
-}
-
-return RTV_OK;
-}
-
-S32 Get_FIG1_EXT2(U8 fic_cmd, U8 Char_Set)
-{
- return RTV_OK;
-}
-
-/* Region Label */
-S32 Get_FIG1_EXT3(U8 fic_cmd, U8 Char_Set)
-{
- U8 temp1;
- U8 RegionId_Lower_part;
- U8 label[17];
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bits(2, &temp1);
- Get_Bits(6, &RegionId_Lower_part);
-
- if (fic_cmd)
- Get_Bytes(16, label);
- }
-
- return RTV_OK;
-}
-
-/* Service Component Label */
-S32 Get_FIG1_EXT4(U8 fic_cmd, U8 Char_Set)
-{
- U8 P_D;
- U8 SCidS;
- U32 sid;
- U8 label[17];
- S8 i = 0, k = 0;
- U8 temp1, temp2, temp3, temp4;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bits(1, &P_D);
- Get_Bits(3, &temp1);
- Get_Bits(4, &SCidS);
-
- if (P_D) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- Get_Bytes(1, &temp3);
- Get_Bytes(1, &temp4);
- sid = (temp1 << 24)
- | (temp2 << 16) | (temp3 << 8) | temp4;
- } else {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- sid = (temp1 << 8) | temp2;
- }
-
- if (fic_cmd) {
- Get_Bytes(16, label);
-
- for (k = 0; k < ENS_DESC.svr_comp_num; k++) {
- if ((ENS_DESC.svr_comp[k].Sid == sid)
- && (ENS_DESC.svr_comp[k].SCidS
- == SCidS)) {
- for (i = 15; i >= 0; i--) {
- if (label[i] != 0x20) {
- label[i+1] = '\0';
- break;
- }
- }
- label[16] = '\0';
-
- ENS_DESC.svr_comp[k].charset
- = Char_Set;
- memcpy(ENS_DESC.svr_comp[k].Label,
- label, 17);
- break;
- }
- }
- }
- }
-
- return RTV_OK;
-}
-
-/* Data Service Label */
-S32 Get_FIG1_EXT5(U8 fic_cmd, U8 Char_Set)
-{
-U32 sid;
-U8 label[17];
-U8 cnt;
-S8 i;
-U8 temp1, temp2, temp3, temp4;
-
-while (fig_data.byte_cnt < fig_data.length) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- Get_Bytes(1, &temp3);
- Get_Bytes(1, &temp4);
- sid = (temp1 << 24) | (temp2 << 16) | (temp3 << 8) | temp4;
-
- if (fic_cmd) {
- Get_Bytes(16, label);
-
- for (cnt = 0; cnt < ENS_DESC.svr_num; cnt++) {
- if (sid == ENS_DESC.svr_desc[cnt].Sid) {
- if (!ENS_DESC.svr_desc[cnt].label_flag) {
- for (i = 15; i >= 0; i--) {
- if (label[i] != 0x20) {
- label[i+1] = '\0';
- break;
- }
- }
- label[16] = '\0';
-
- ENS_DESC.svr_desc[cnt].charset
- = Char_Set;
- memcpy(ENS_DESC.svr_desc[cnt].Label,
- label, 17);
- ENS_DESC.svr_desc[cnt].label_flag = 1;
- ENS_DESC.label_num++;
- }
- }
- }
- }
-}
-
-return RTV_OK;
-}
-
-/* X-PAD user application label */
-S32 Get_FIG1_EXT6(U8 fic_cmd, U8 Char_Set)
-{
- U8 P_D;
- U8 SCidS;
- U32 sid;
- U8 X_PAD_app_type;
- U8 label[17];
- U8 temp1, temp2, temp3, temp4;
-
- while (fig_data.byte_cnt < fig_data.length) {
- Get_Bits(1, &P_D);
- Get_Bits(3, &temp1);
- Get_Bits(4, &SCidS);
-
- if (P_D) {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- Get_Bytes(1, &temp3);
- Get_Bytes(1, &temp4);
- sid = (temp1 << 24)
- | (temp2 << 16) | (temp3 << 8) | temp4;
- } else {
- Get_Bytes(1, &temp1);
- Get_Bytes(1, &temp2);
- sid = (temp1 << 8) | temp2;
- }
-
- Get_Bits(2, &temp1);
- Get_Bits(1, &temp2);
- Get_Bits(5, &X_PAD_app_type);
-
- if (fic_cmd)
- Get_Bytes(16, label);
- }
-
- return RTV_OK;
-}
-
-S32 Get_FIG1_EXT7(U8 fic_cmd, U8 Char_Set)
-{
- return RTV_OK;
-}
-
-
-/* FIG TYPE 2 Extension Function */
-/* Ensemble Label */
-S32 Get_FIG2_EXT0(U8 fic_cmd, U8 Seg_Index)
-{
- return RTV_OK;
-}
-
-/* Program Service Label */
-S32 Get_FIG2_EXT1(U8 fic_cmd, U8 Seg_Index)
-{
- return RTV_OK;
-}
-
-S32 Get_FIG2_EXT2(U8 fic_cmd, U8 Seg_Index)
-{
- return RTV_OK;
-}
-
-/* Region Label */
-S32 Get_FIG2_EXT3(U8 fic_cmd, U8 Seg_Index)
-{
- return RTV_OK;
-}
-
-/* Service Component Label */
-S32 Get_FIG2_EXT4(U8 fic_cmd, U8 Seg_Index)
-{
- return RTV_OK;
-}
-
-/* Data Service Label */
-S32 Get_FIG2_EXT5(U8 fic_cmd, U8 Seg_Index)
-{
- return RTV_OK;
-}
-
-/* X-PAD user application label */
-S32 Get_FIG2_EXT6(U8 fic_cmd, U8 Seg_Index)
-{
- return RTV_OK;
-}
-
-/* Character Definition */
-S32 Get_FIG2_EXT7(U8 fic_cmd, U8 Seg_Index)
-{
- return RTV_OK;
-}
-
-
-/* FIG TYPE 5 Extension Function */
-/* Paging */
-S32 Get_FIG5_EXT0(U8 D1, U8 D2, U8 fic_cmd, U8 TCid)
-{
- U8 cnt = 0;
- U8 FIDC_ID;
-
- FIDC_ID = (TCid << 3) | 0x00;
-
- if (fic_cmd) {
- for (cnt = 0; cnt < ENS_DESC.svr_comp_num; cnt++) {
- if (FIDC_ID == ENS_DESC.svr_comp[cnt].FIDCid) {
- ENS_DESC.svr_comp[cnt].TCid = TCid;
- ENS_DESC.svr_comp[cnt].Ext = 0;
- }
- }
- }
-
- return RTV_OK;
-}
-
-/* Traffic Message Channel (TMC) */
-S32 Get_FIG5_EXT1(U8 D1, U8 D2, U8 fic_cmd, U8 TCid)
-{
- U8 cnt = 0;
- U8 FIDC_ID;
-
- FIDC_ID = (TCid << 3) | 0x01;
-
- if (fic_cmd) {
- for (cnt = 0; cnt < ENS_DESC.svr_comp_num; cnt++) {
- if (FIDC_ID == ENS_DESC.svr_comp[cnt].FIDCid) {
- ENS_DESC.svr_comp[cnt].TCid = TCid;
- ENS_DESC.svr_comp[cnt].Ext = 1;
- }
- }
- }
-
- return RTV_OK;
-}
-
-/* Emergency Warning System (EWS) */
-S32 Get_FIG5_EXT2(U8 D1, U8 D2, U8 fic_cmd, U8 TCid)
-{
- U8 cnt = 0;
- U8 FIDC_ID;
-
- FIDC_ID = (TCid << 3) | 0x02;
-
- if (fic_cmd) {
- for (cnt = 0; cnt < ENS_DESC.svr_comp_num; cnt++) {
- if (FIDC_ID == ENS_DESC.svr_comp[cnt].FIDCid) {
- ENS_DESC.svr_comp[cnt].TCid = TCid;
- ENS_DESC.svr_comp[cnt].Ext = 2;
- }
- }
- }
-
- return RTV_OK;
-}
-
-
-U8 GET_SUBCH_INFO(struct FIG_TYPE0_Ext1 *type0_ext1,
- S32 *BIT_RATE, S32 *SUB_CH_Size, S32 *P_L)
-{
-/*Indicate the option used for the long form coding(Equal Error Protection)*/
- if (type0_ext1->S_L_form) {
- *SUB_CH_Size = type0_ext1->Sub_ch_size;
- *P_L = ((type0_ext1->S_L_form<<7)
- | (type0_ext1->Option<<6)
- | type0_ext1->Protection_Level);
-
- if (type0_ext1->Option == 0x1) {
- switch (type0_ext1->Protection_Level) {
- case 0:
- *BIT_RATE = (type0_ext1->Sub_ch_size)*32/27;
- break;
- case 1:
- *BIT_RATE = (type0_ext1->Sub_ch_size)*32/21;
- break;
- case 2:
- *BIT_RATE = (type0_ext1->Sub_ch_size)*32/18;
- break;
- case 3:
- *BIT_RATE = (type0_ext1->Sub_ch_size)*32/15;
- break;
- }
- } else if (type0_ext1->Option == 0x0) {
- switch (type0_ext1->Protection_Level) {
- case 0:
- *BIT_RATE = (type0_ext1->Sub_ch_size)*2/3;
- break;
- case 1:
- *BIT_RATE = (type0_ext1->Sub_ch_size);
- break;
- case 2:
- *BIT_RATE = (type0_ext1->Sub_ch_size)*4/3;
- break;
- case 3:
- *BIT_RATE = (type0_ext1->Sub_ch_size)*2;
- break;
- }
- }
- } else {
- *SUB_CH_Size = SUBCH_UEP_TABLE[type0_ext1->Table_index][0];
- *P_L = SUBCH_UEP_TABLE[type0_ext1->Table_index][1];
- *BIT_RATE = SUBCH_UEP_TABLE[type0_ext1->Table_index][2];
- }
-
- return RTV_OK;
-}
-
-U8 GET_DATE_TIME(struct DATE_TIME_INFO *time_desc)
-{
- U16 MJD_Ref[2] = {2000, 51544}; /*2000.01.01 reference day*/
- U8 month0_table[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- U8 month1_table[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- U16 UTC_hours, MJD_temp, day_temp;
- U8 increase_year, leap_year_num;
- U8 normal_year_num, offset_flag, offset_value;
- U16 MJDRef_year;
- U16 MJDRef_month;
- U16 MJDRef_day = 0;
- U8 week;
- U8 k = 0, i = 0;
-
-/* sense of the Local Time Offset (0: positive offset 1: negative offset)*/
- offset_flag = (ENS_DESC.date_time_info.LTO & 0x20) >> 5;
-
- /* Local time offset value (0 ~ 23)*/
- offset_value = (ENS_DESC.date_time_info.LTO & 0x1f) / 2;
-
- /* UTC hours */
- UTC_hours = ENS_DESC.date_time_info.hours;
-
- if (offset_flag) {
- if (UTC_hours < offset_value)
- time_desc->time_flag = 0;
- else
- time_desc->time_flag = 1;
- } else {
- if (((23-offset_value) < UTC_hours) && (UTC_hours < 24))
- time_desc->time_flag = 0;
- else
- time_desc->time_flag = 1;
- }
-
- /* current MJD - ref MJD */
- MJD_temp = ENS_DESC.date_time_info.MJD - MJD_Ref[1];
- increase_year = MJD_temp / 365; /* 2000 + x year */
-
- /* detection 2000 + x year */
- time_desc->years = MJD_Ref[0] + increase_year;
- leap_year_num = (increase_year - 1) / 4; /* 366 year number */
- normal_year_num = (increase_year - 1) % 4;/* 365 year number */
-
- /* first MJD for current year */
- MJDRef_year
- = MJD_Ref[1] + 366 * (leap_year_num + 1)
- + 365 * ((3 * leap_year_num) + normal_year_num);
-
-
- if (time_desc->time_flag)
- MJDRef_month = ENS_DESC.date_time_info.MJD - MJDRef_year;
- else {
- if (offset_flag)
- MJDRef_month
- = ENS_DESC.date_time_info.MJD
- - MJDRef_year - 1;
- else
- MJDRef_month = ENS_DESC.date_time_info.MJD
- - MJDRef_year + 1;
- }
-
- for (k = 0; k < 12; k++) {
- day_temp = MJDRef_month - MJDRef_day;
-
- if (normal_year_num == 3) {
- if (day_temp >= month1_table[k])
- MJDRef_day += month1_table[k];
- else {
- /* detection month */
- time_desc->months_dec = k + 1;
- strcpy((char *)time_desc->months_ste,
- MONTH_TABLE[k]);
-
- /* detection day */
- time_desc->days = day_temp + 1;
- break;
- }
- } else {
- if (day_temp >= month0_table[k])
- MJDRef_day += month0_table[k];
- else {
- /* detection month */
- time_desc->months_dec = k + 1;
- strcpy((char *)time_desc->months_ste,
- MONTH_TABLE[k]);
- /* detection day */
- time_desc->days = day_temp + 1;
- break;
- }
- }
- }
-
- week = MJD_temp % 7;
- for (i = 0; i < 7; i++) {
- if (i == week) {
- if (time_desc->time_flag) {
- strcpy((char *)time_desc->weeks,
- WEEK_TABLE[i]);
- } else {
- if (offset_flag)
- strcpy((char *)time_desc->weeks,
- WEEK_TABLE[i-1]);
- else
- strcpy((char *)time_desc->weeks,
- WEEK_TABLE[i+1]);
- }
- break;
- }
- }
-
- if (ENS_DESC.date_time_info.utc_flag) {
- if (time_desc->time_flag) {
- time_desc->hours
- = ENS_DESC.date_time_info.hours + offset_value;
- if (time_desc->hours < 12)
- time_desc->apm_flag = 0;
- else if (time_desc->hours == 12)
- time_desc->apm_flag = 1;
- else {
- time_desc->hours = time_desc->hours - 12;
- time_desc->apm_flag = 1;
- }
- } else {
- if (offset_flag) {
- time_desc->hours
- = (ENS_DESC.date_time_info.hours + 12)
- - offset_value;
- time_desc->apm_flag = 1;
- } else {
- time_desc->hours
- = (ENS_DESC.date_time_info.hours
- + offset_value) - 24;
- time_desc->apm_flag = 0;
- }
- }
-
- time_desc->minutes = ENS_DESC.date_time_info.minutes;
- time_desc->seconds = ENS_DESC.date_time_info.seconds;
- time_desc->milliseconds = ENS_DESC.date_time_info.milliseconds;
- } else {
- if (time_desc->time_flag) {
- time_desc->hours
- = ENS_DESC.date_time_info.hours + offset_value;
- if (time_desc->hours < 12)
- time_desc->apm_flag = 0;
- else if (time_desc->hours == 12)
- time_desc->apm_flag = 1;
- else {
- time_desc->hours = time_desc->hours - 12;
- time_desc->apm_flag = 1;
- }
- } else {
- if (offset_flag) {
- time_desc->hours
- = (ENS_DESC.date_time_info.hours + 12)
- - offset_value;
- time_desc->apm_flag = 1;
- } else {
- time_desc->hours
- = (ENS_DESC.date_time_info.hours
- + offset_value) - 24;
- time_desc->apm_flag = 0;
- }
- }
-
- time_desc->minutes = ENS_DESC.date_time_info.minutes;
- }
-
- return RTV_OK;
-}
-
-
-char *PROGRAM_TYPE_CODE16[32] = {
- "None", "News", "Current_Affairs", "Information", "Sport",
- "Education", "Drama", "Arts", "Science", "Talk",
- "Pop_Music", "Rock_Music", "Easy_Listening",
- "Light_Classical", "Classical_Music",
- "Other_Music", "Weather", "Finance", "Children's", "Factual",
- "Religion", "Phone_In", "Travel", "Leisure", "Jazz_and_Blues",
- "Country_Music", "National_Music",
- "Oldies_Music", "Folk_Music", "Documentary"
-};
-
-char *PROGRAM_TYPE_CODE8[32] = {
- "None", "News", "Affairs", "Info", "Sport",
- "Educate", "Drama", "Arts", "Science", "Talk",
- "Pop", "Rock", "Easy", "Classics", "Classics",
- "Other_M", "Weather", "Finance", "Children", "Factual",
- "Religion", "Phone_In", "Travel", "Leisure", "Jazz",
- "Country", "Nation_M", "Oldies", "Folk", "Document"
-};
-
-char *USER_APP_TYPE_CODE[11] = {
- "Reserved", "Not used", "MOT Slideshow", "MOT BWS", "TPEG",
- "DGPS", "TMC", "EPG", "DAB Java", "DMB", "Reserved"
-};
-
-char *FIDC_EXT_CODE[3] = {
- "Paging", "Traffic Message(TMC)", "Emergency Warning(EWS)"
-};
-
-char *ASCTy[3] = {
- "Foreground Sound", "Background Sound", "Multi-CH Audio"
-};
-
-char *DSCTy[11] = {
- "Unspecified Data", "Traffic Message(TMC)", "Emergency Warning(EWS)",
- "ITTS", "Paging", "TDC",
- "KDMB", "Embedded IP", "MOT", "Proprietary Service", "Reserved"
-};
-
-char *ANNOUNCEMENT_TYPE_CODE[12] = {
- "Alarm", "Road Traffic flash", "Transport flash", "Warning/Service",
- "News flash", "Area weather flash",
- "Event announcement", "Special event", "Programme information",
- "Sport report", "Financial report",
- "Reserved for future definition"
-};
-
-int SUBCH_SIZE_TABLE[64] = { 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
- 56, 56, 56, 56, 64, 64, 64, 64, 64, 80,
- 80, 80, 80, 80, 96, 96, 96, 96, 96, 112,
- 112, 112, 112, 128, 128, 128, 128, 128, 160, 160,
- 160, 160, 160, 192, 192, 192, 192, 192, 224, 224,
- 224, 224, 224, 256, 256, 256, 256, 256, 320, 320,
- 320, 384, 384, 384};
-
-int SUBCH_UEP_TABLE[64][3] = {
- /* 0 {Sub-channel size, Protection level, Bit rate} */
- {16, 5, 32}, {21, 4, 32}, {24, 3, 32}, {29, 2, 32},
- {35, 1, 32}, {24, 5, 48}, {29, 4, 48}, {35, 3, 48}, /*4 */
- {42, 4, 48}, {52, 1, 48}, {29, 5, 56}, {35, 4, 56}, /* 8 */
- {42, 3, 56}, {52, 2, 56}, {32, 5, 64}, {42, 4, 64}, /* 12 */
- {48, 3, 64}, {58, 2, 64}, {70, 1, 64}, {40, 5, 80}, /* 16 */
- {52, 4, 80}, {58, 3, 80}, {70, 2, 80}, {84, 1, 80}, /* 20 */
- {48, 5, 96}, {58, 4, 96}, {70, 3, 96}, {84, 2, 96}, /* 24 */
- {104, 1, 96}, {58, 5, 112}, {70, 4, 112}, {84, 3, 112}, /* 28 */
- {104, 2, 112}, {64, 5, 128}, {84, 4, 128}, {96, 3, 128}, /* 32 */
- {116, 2, 128}, {140, 1, 128}, {80, 5, 160}, {104, 4, 160},/* 36 */
- {116, 3, 160}, {140, 2, 160}, {168, 1, 160}, {96, 5, 192}, /* 40 */
- {116, 4, 192}, {140, 3, 192}, {168, 2, 192}, {208, 1, 192}, /* 44 */
- {116, 5, 224}, {140, 4, 224}, {168, 3, 224}, {208, 2, 224}, /* 48 */
- {232, 1, 224}, {128, 5, 256}, {168, 4, 256}, {192, 3, 256}, /* 52 */
- {232, 2, 256}, {280, 1, 256}, {160, 5, 320}, {208, 4, 320}, /* 56 */
- {280, 2, 320}, {192, 5, 384}, {280, 3, 384}, {416, 1, 384}, /* 60 */
-};
-
-char *MONTH_TABLE[12] = {
- "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
-};
-
-char *WEEK_TABLE[8] = {
- "SAT", "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"
-};
-/*
-int MJD_TABLE[][] ={
- {53370, 1, 2005}, {53735, 1, 2006},
- {54100, 1, 2007}, {54465, 1, 2008},
- {53401, 2, 2005}, {53766, 2, 2006},
- {54131, 2, 2007}, {54496, 2, 2008},
- {53429, 3, 2005}, {53794, 3, 2006},
- {54159, 3, 2007}, {54525, 3, 2008},
- {53460, 4, 2005}, {53825, 4, 2006},
- {54190, 4, 2007}, {54556, 4, 2008},
- {53490, 5, 2005}, {53855, 5, 2006},
- {54220, 5, 2007}, {54586, 5, 2008},
- {53521, 6, 2005}, {53866, 6, 2006},
- {54251, 6, 2007}, {54617, 6, 2008},
- {53551, 7, 2005}, {53916, 7, 2006},
- {54281, 7, 2007}, {54647, 7, 2008},
- {53582, 8, 2005}, {53947, 8, 2006},
- {54312, 8, 2007}, {54678, 8, 2008},
- {53613, 9, 2005}, {53978, 9, 2006},
- {54343, 9, 2007}, {54709, 9, 2008},
- {53643, 10, 2005}, {54008, 10, 2006},
- {54373, 10, 2007}, {54739, 10, 2008},
- {53674, 11, 2005}, {54039, 11, 2006},
- {54404, 11, 2007}, {54770, 11, 2008},
- {53704, 12, 2005}, {54069, 12, 2006},
- {54434, 12, 2007}, {54800, 12, 2008},
-};
-*/
-
-char *EWS_PRIORITY_TABLE[4] = {
- "Unknown", "º¸Åë", "±ä±Þ", "¸Å¿ì±ä±Þ"
-};
-
-char *EWS_REGION_FORM_TABLE[4] = {
- "´ëÇѹα¹ Àü±¹",
- "´ëÇѹα¹ Á¤ºÎ ÁöÁ¤",
- "ÇàÀںΠÇàÁ¤µ¿ Ç¥±â",
- "Rfa"
-};
-
-char *EWS_OFFICIAL_ORGANIZATION_TABLE[4] = {
- "¼Ò¹æ¹æÀçû", "½Ã,µµ", "±º,µµ", "Rfa"
-};
-
-char *EWS_CATEGORY[67][3] = {
- {"È£¿ì ÁÖÀǺ¸", "HRA", "Heavy Rain Watch"},
- {"È£¿ì °æº¸", "HRW", "Heavy Rain Warning"},
- {"´ë¼³ ÁÖÀǺ¸", "HSW", "Heavy Snow Watch"},
- {"´ë¼³ °æº¸", "HAS", "Heavy Snow Warning"},
- {"ÆødzÇØÀÏÁÖÀǺ¸", "SSA", "Storm Surge Watch"},
- {"ÆødzÇØÀÏ °æº¸", "SSW", "Storm Surge Warning"},
- {"Ȳ»ç °æº¸", "YSW", "Yellow Sand Warning"},
- {"ÇÑÆÄ ÁÖÀǺ¸", "CWA", "Cold Wave Watch"},
- {"ÇÑÆÄ °æº¸", "CWW", "Cold Wave Warning"},
- {"dz¶û °æº¸", "WWW", "Wind and Waves Warning"},
- {"°ÇÁ¶ °æº¸", "HAW", "Heavy Arid Warning"},
- {"»êºÒ °æº¸", "MFW", "Mountain Fire Warning"},
- {"±³Åë ÅëÁ¦", "RTW", "Regulate Traffic Warning"},
- {"±¹°¡ ºñ»ó »óȲ ¹ß»ý",
- "EAN", "Emergency Action Notification(National only)"},
- {"±¹°¡ ºñ»ó »óȲ Á¾·á",
- "EAT", "Emergency Action Termination(National only)"},
- {"Áß¾Ó Àç³­ ¾ÈÀü ´ëÃ¥ º»ºÎ",
- "NIC", "National Information Center"},
- {"Àü±¹Àû ÁÖ±â Å×½ºÆ®", "NPT", "National Periodic Test"},
- {"Àü±¹Àû ¿ùº° Àǹ« Å×½ºÆ®", "RMT", "Required Monthly Test"},
- {"Àü±¹Àû ÁÖ°£º° Àǹ« Å×½ºÆ®", "RWT", "Required Weekly Test"},
- {"Ư¼ö ¼ö½Å±â Å×½ºÆ®", "STT", "Special Terminal Test"},
- {"ÇàÁ¤ ¸Þ½ÃÁö", "ADR", "Administrative Message"},
- {"»ê»çÅ °æº¸", "AVW", "Avalanche Warning"},
- {"»ê»çÅ ÁÖÀǺ¸", "AVA", "Avalanche Watch"},
- {"Æødz¼³°æº¸", "BZW", "Blizzard Warning"},
- {"¾î¸°ÀÌ À¯±« ±ä±Þ »óȲ",
- "CAE", "Child Abduction Emergency"},
- {"½Ã¹Î À§Çè »óȲ °æº¸", "CDW", "Civil Danger Warning"},
- {"½Ã¹Î ÀÀ±Þ »óȲ ¸Þ½ÃÁö", "CEM", "Civil Emergency Message"},
- {"ÇØ¾È Ä§¼ö °æº¸", "CFW", "Coastal Flood Warning"},
- {"ÇØ¾È Ä§¼ö ÁÖÀǺ¸", "CFA", "Coastal Flood Watch"},
- {"¸ð·¡ Æødz °æº¸", "DSW", "Dust Storm Warning"},
- {"ÁöÁø °æº¸", "EQW", "Earthquake Warning"},
- {"Áï½Ã ´ëÇÇ", "EVI", "Evacuation Immediate"},
- {"È­Àç °æº¸", "FRW", "Fire Warning"},
- {"±ä±Þ È«¼ö °æº¸", "FFW", "Flash Flood Warning"},
- {"±ä±Þ È«¼ö ÁÖÀǺ¸", "FFA", "Flash Flood Watch"},
- {"±ä±Þ È«¼ö »óȲ", "FFS", "Flash Flood Statement"},
- {"È«¼ö °æº¸", "FLW", "Flood Warning"},
- {"È«¼ö ÁÖÀǺ¸", "FLA", "Flood Watch"},
- {"È«¼ö »óȲ", "FLS", "Flood Statement"},
- {"À§Çè ¹°Áú °æº¸",
- "HMW", "Hazardous Materials Warning"},
- {"°­Ç³ °æº¸", "HWW", "High Wind Warning"},
- {"°­Ç³ ÁÖÀǺ¸", "HWA", "High Wind Watch"},
- {"ÅÂdz °æº¸", "HUW", "Hurricane Warning"},
- {"ÅÂdz ÁÖÀǺ¸", "HUA", "Hurricane Watch"},
- {"ÅÂdzÁ¤º¸", "HLS", "Hurricane Statement"},
- {"¹ýÁýÇà °æ°í", "LEW", "Law Enforcement Warning"},
- {"Áö¿ª ±ä±Þ »óȲ", "LAE", "Local Area Emergency"},
- {"Åë½Å ¸ÞÁö½Ã ¾Ë¸²",
- "NMN", "Network Message Notification"},
- {"119 ÀüÈ­ ºÒÅë ÀÀ±Þ »óȲ",
- "TOE", "119 Telephone Outage Emergency"},
- {"ÇÙ¹ßÀü¼Ò °ü·Ã °æº¸",
- "NUW", "Nuclear Power Plant Warning"},
- {"½ÇÁ¦/¿¬½À °æº¸", "DMO", "Practice/Demo Warning"},
- {"¹æ»ç´É À§Çè °æº¸",
- "RHW", "Radiological Hazard Warning"},
- {"³ú¿ì °æº¸", "SVR", "Severe Thunderstorm Warning"},
- {"³ú¿ì ÁÖÀǺ¸", "SVA", "Severe Thunderstorm Watch"},
- {"¾Ç±â»óÁ¤º¸", "SVS", "Severe Weather Statement"},
- {"¾ÈÀüÇÑ Àå¼Ò·Î Çdz­ °æº¸",
- "SPW", "Shelter in Place Warning"},
- {"Ư¼ö ÇØ¾ç °æº¸", "SMW", "Special Marine Warning"},
- {"ƯÀÌ ±â»ó Á¤º¸", "SPS", "Special Weather Statement"},
- {"Åä³×À̵µ °æº¸", "TOR", "Tornado Warning"},
- {"Åä³×À̵µ ÁÖÀǺ¸", "TOA", "Tornado Watch"},
- {"¿­´ë Æødz(ÅÂdz) °æº¸", "TRW", "Tropical Storm Warning"},
- {"¿­´ë Æødz(ÅÂdz) ÁÖÀǺ¸", "TRA", "Tropical Storm Watch"},
- {"ÁöÁøÇØÀÏ °æº¸", "TSW", "Tsunami Warning"},
- {"ÁöÁøÇØÀÏ ÁÖÀǺ¸", "TSA", "Tsunami Watch"},
- {"È­»ê °æº¸", "VOW", "Volcano Warning"},
- {"´«Æødz °æº¸", "WSW", "Winter Storm Warning"},
- {"´«Æødz ÁÖÀǺ¸", "WSA", "Winter Storm Watch"}
-};
-
-static const U16 crc_ccitt_tab[] = {
- 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,
- 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,
- 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,
- 0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,
- 0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,
- 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,
- 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,
- 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,
- 0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,
- 0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,
- 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,
- 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,
- 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,
- 0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,
- 0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,
- 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,
- 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,
- 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,
- 0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,
- 0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,
- 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,
- 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
- 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,
- 0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,
- 0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,
- 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,
- 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,
- 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,
- 0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,
- 0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,
- 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,
- 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0
-};
-
-static S32 CRC_CHECK(U8 *data, U16 data_len)
-{
-
- U16 crc = 0xffff;
- U16 crc2 = 0xffff;
- U16 crc_val, i;
- U8 crc_cal_data;
-
- for (i = 0; i < (data_len - 2); i++) {
- crc_cal_data = *(data+i);
- crc = (crc<<8)^crc_ccitt_tab[(crc>>8)^(crc_cal_data)++];
- }
-
- crc_val = *(data+i)<<8;
- crc_val = crc_val | *(data+i+1);
-
- crc2 = (crc_val^crc2);
-
- if (crc == crc2)
- return RTV_OK;
- else
- return RTV_FAIL;
-}
-
-
-/*****************************/
-/* FIC Information Variable */
-/*****************************/
-struct ENSEMBLE_DESC ENS_DESC, NEXT_ENS_DESC;
-U32 FIC_CONUT;
-
-
-static UINT fib_crc_err_cnt;
-S32 FIC_Init_Dec(U8 *fic, U8 fib_num, U8 CN)
-{
- U32 i;
- U32 ret;
- unsigned int fib_crc_pos = 0;
- FIC_CONUT++;
-
- for (i = 0; i < fib_num; i++) {
- if (CRC_CHECK(fic+fib_crc_pos, 32) != RTV_OK) {
- fib_crc_pos += 32;
- fib_crc_err_cnt++;
- return FIC_CRC_ERR;
- }
-
- ret = FIB_INIT_DEC(fic+fib_crc_pos);
-
- if (ENS_DESC.svr_num) {
- if ((ENS_DESC.svr_num == ENS_DESC.label_num)
- &&/* (FIC_CONUT > 5)
- &&*/ (ENS_DESC.label_flag == 1)) {
- FIC_CONUT = 0;
- return FIC_DONE;
- }
- }
- fib_crc_pos += 32;
- }
- return FIC_GOING;
-}
-
-#ifdef USER_APPLICATION_TYPE
-static UINT rtvTDMB_SetVisualRadioInfo(SubChInfoType *subChInfo)
-{
- UINT i = 0, j = 0;
-
- subChInfo->bVisualRadio = 0;
-
- /* UA Type - TV, Visual Radio : 0x009 */
- for (i = 0; i < subChInfo->NumberofUserAppl; i++) {
- if (subChInfo->UserApplType[i] == 0x009) {
- for (j = 0; j < subChInfo->UserApplLength[i]; j++) {
- if ((subChInfo->UserApplData[j][0] == 0x01)
- && (subChInfo->UserApplData[j][1]
- == 0x02)) {
- subChInfo->bVisualRadio = 1;
- return 1;
- }
- }
- }
- }
- return 0;
-}
-#endif
-
-
-static BOOL fic_decode_run;
-
-
-BOOL rtvFICDEC_Decode(U32 ch_freq_khz)
-{
- UINT ret;
- UINT cnt = 0;
- U8 int_type_val1;
- U8 fic_buf[384+1];
- /*UINT crc_err_cnt = 0; */
- UINT read_cnt = 0;
- unsigned long diff_jiffies = get_jiffies_64();
- unsigned long diff_jiffies_1;
-
- fic_decode_run = TRUE;
- fib_crc_err_cnt = 0;
-
- FIC_CONUT = 0;
- memset(&ENS_DESC, 0, sizeof(struct ENSEMBLE_DESC));
-
- RTV_GUARD_LOCK;
-
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(INT_E_UCLRL, 0x01);
-
- while (++cnt <= 408) {
- if (fic_decode_run == FALSE)
- break;
-
- int_type_val1 = RTV_REG_GET(INT_E_STATL);
-
- /* RTV_DBGMSG0("FIC_Check rootine!\n");*/
- if (int_type_val1 & FIC_E_INT) {
- read_cnt++;
-
- RTV_REG_MAP_SEL(FIC_PAGE);
- RTV_REG_BURST_GET(0x10, fic_buf, 384+1);
-
- /* FIC interrupt status clear */
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(INT_E_UCLRL, 0x01);
-
- ret = FIC_Init_Dec(&fic_buf[1], 12, 0);
- if (ret == FIC_DONE) {
- diff_jiffies_1 = get_jiffies_64();
- RTV_DBGMSG2\
- ("[mtv] CNT: %u, FICread time ms (%u)\n",
- read_cnt,
- jiffies_to_msecs(diff_jiffies_1-diff_jiffies));
-
- /*RTV_DBGMSG1\
- ("[mtv] FIC_Parseing DONE time ms (%u)\n\n",
- jiffies_to_msecs(get_jiffies_64() - diff_jiffies_1));*/
-
- RTV_GUARD_FREE;
-
- return TRUE;
- }
- /* added 2011/12/27*/
- else if (ret == FIC_CRC_ERR) {
- RTV_GUARD_FREE;
- return FALSE;
- }
- }
-
- RTV_DELAY_MS(12);
- }
-
- RTV_GUARD_FREE;
-
- diff_jiffies_1 = get_jiffies_64();
- RTV_DBGMSG2("[mtv] CNT: %u, FIC_read time ms (%u)\n\n",
- read_cnt, jiffies_to_msecs(diff_jiffies_1 - diff_jiffies));
-
-
- return FALSE;
-}
-
-
-void rtvFICDEC_Stop(void)
-{
- rtvTDMB_CloseFIC();
-
- /* Set the flag.*/
- fic_decode_run = FALSE;
-}
-
-struct ensemble_info_type *rtvFICDEC_GetEnsembleInfo(unsigned long freq)
-{
- UINT i, j;
- UINT Comp_Index = 0;
- UINT nSubChIdx = 0;
-
- struct ENSEMBLE_DESC *desc = &ENS_DESC;
-
- ensble.ensem_freq = freq;
- ensble.ensem_id = desc->id;
-
- strncpy(ensble.ensem_label, desc->Label, ENSEMBLE_LABEL_MAX);
-
- for (i = 0; i < desc->svr_num; i++) {
- for (j = 0; j < desc->svr_desc[i].Num_ser_comp; j++) {
- Comp_Index = desc->svr_desc[i].ser_comp_num[j];
- switch (desc->svr_comp[Comp_Index].TMID) {
- case MSC_STREAM_AUDIO:
- ensble.sub_ch[nSubChIdx].sub_ch_id
- = desc->svr_comp[Comp_Index].SubChid;
- ensble.sub_ch[nSubChIdx].start_addr
- = desc->svr_comp[Comp_Index].START_Addr;
- ensble.sub_ch[nSubChIdx].tmid
- = desc->svr_comp[Comp_Index].TMID;
- ensble.sub_ch[nSubChIdx].svc_type
- = desc->svr_comp[Comp_Index].ASCTy;
- ensble.sub_ch[nSubChIdx].svc_id
- = desc->svr_desc[i].Sid;
- memcpy(ensble.sub_ch[nSubChIdx].svc_label,
- desc->svr_desc[i].Label, SVC_LABEL_MAX);
- nSubChIdx++;
- break;
-
- case MSC_STREAM_DATA:
- ensble.sub_ch[nSubChIdx].sub_ch_id
- = desc->svr_comp[Comp_Index].SubChid;
- ensble.sub_ch[nSubChIdx].start_addr
- = desc->svr_comp[Comp_Index].START_Addr;
- ensble.sub_ch[nSubChIdx].tmid
- = desc->svr_comp[Comp_Index].TMID;
- ensble.sub_ch[nSubChIdx].svc_type
- = desc->svr_comp[Comp_Index].DSCTy;
- ensble.sub_ch[nSubChIdx].svc_id
- = desc->svr_desc[i].Sid;
- memcpy(ensble.sub_ch[nSubChIdx].svc_label,
- desc->svr_desc[i].Label, SVC_LABEL_MAX);
- nSubChIdx++;
- break;
-
- case FIDC: /* No service */
-/*
- ensble.sub_ch[nSubChIdx].tmid
- = desc->svr_comp[Comp_Index].TMID;
- ensble.sub_ch[nSubChIdx].svc_id
- = desc->svr_desc[i].Sid;
- memcpy(ensble.sub_ch[nSubChIdx].svc_label,
- desc->svr_desc[i].Label, SVC_LABEL_MAX);
-*/
- break;
-
- case MSC_PACKET_DATA:
-/*
- ensble.sub_ch[nSubChIdx].sub_ch_id
- = desc->svr_comp[Comp_Index].SubChid;
- ensble.sub_ch[nSubChIdx].start_addr
- = desc->svr_comp[Comp_Index].START_Addr;
- ensble.sub_ch[nSubChIdx].tmid
- = desc->svr_comp[Comp_Index].TMID;
- ensble.sub_ch[nSubChIdx].svc_type
- = desc->svr_comp[Comp_Index].DSCTy;
- ensble.sub_ch[nSubChIdx].svc_id
- = desc->svr_desc[i].Sid;
- memcpy(ensble.sub_ch[nSubChIdx].svc_label,
- desc->svr_desc[i].Label, SVC_LABEL_MAX);
-*/
- break;
- default:
- RTV_DBGMSG0("NO TMID\n");
- break;
- }
-
-/*
- RTV_DBGMSG2("ensble->sub_ch[%d].sub_ch_id: %d\n",
- nSubChIdx, ensble->sub_ch[nSubChIdx].sub_ch_id);
- RTV_DBGMSG2("ensble->sub_ch[%d].start_addr: %d\n",
- nSubChIdx, ensble->sub_ch[nSubChIdx].start_addr);
- RTV_DBGMSG2("ensble->sub_ch[%d].tmid: %d\n",
- nSubChIdx, ensble->sub_ch[nSubChIdx].tmid);
- RTV_DBGMSG2("ensble->sub_ch[%d].svc_type: %d\n",
- nSubChIdx, ensble->sub_ch[nSubChIdx].svc_type);
- RTV_DBGMSG2("ensble->sub_ch[%d].svc_id: 0x%lX\n",
- nSubChIdx, ensble->sub_ch[nSubChIdx].svc_id);
-
- desc->svr_desc[i].Label[SVC_LABEL_MAX] = '\0';
- RTV_DBGMSG2("ensble->sub_ch[%d].ServiceLabel: %s\n\n",
- nSubChIdx, desc->svr_desc[i].Label);
-*/
- }
- }
-
- ensble.tot_sub_ch = nSubChIdx;
-/*
- RTV_DBGMSG1("ensble->TotalSubChNumber: %d\n\n", ensble->tot_sub_ch);
-*/
-
- return &ensble;
-}
-
diff --git a/drivers/media/tdmb/mtv318/raontv_ficdec.h b/drivers/media/tdmb/mtv318/raontv_ficdec.h
deleted file mode 100644
index 07034b2..0000000
--- a/drivers/media/tdmb/mtv318/raontv_ficdec.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- *
- * File name: drivers/media/tdmb/mtv318/src/raontv_ficdec.h
- *
- * Description : RAONTECH FIC Decoder API header file.
- *
- * Copyright (C) (2011, RAONTECH)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __RAONTV_FICDEC_H__
-#define __RAONTV_FICDEC_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "raontv.h"
-#include "tdmb.h"
-
-struct ensemble_info_type *rtvFICDEC_GetEnsembleInfo(unsigned long freq);
-void rtvFICDEC_Stop(void);
-BOOL rtvFICDEC_Decode(U32 ch_freq_khz);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __RAONTV_FICDEC_H__ */
-
diff --git a/drivers/media/tdmb/mtv318/raontv_ficdec_internal.h b/drivers/media/tdmb/mtv318/raontv_ficdec_internal.h
deleted file mode 100644
index 85d50ee..0000000
--- a/drivers/media/tdmb/mtv318/raontv_ficdec_internal.h
+++ /dev/null
@@ -1,699 +0,0 @@
-/*
-*
-* File name: drivers/media/tdmb/mtv318/src/raontv_ficdec_internal.h
-*
-* Description : RAONTECH TV FIC Decoder internal header file.
-*
-* Copyright (C) (2011, RAONTECH)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-#ifndef __RAONTV_FICDEC_INTERNAL_H__
-#define __RAONTV_FICDEC_INTERNAL_H__
-
-/********************/
-/* Header Files */
-/********************/
-#include <linux/string.h>
-
-#include "raontv_ficdec.h"
-
-
-#define RTV_FAIL (-1)
-#define RTV_UNLOCK (-10)
-#define RTV_OK 0
-#define RTV_SCAN_OK 1
-#define RTV_LOCK_CHECK 10
-#define RTV_NOTHING 2
-
-
-#define FIC_GOING 0
-#define FIC_LABEL 0x01
-#define FIC_APP_TYPE 0x10
-#define FIC_DONE 0x11
-#define FIC_CRC_ERR 0x44
-
-
-/**************************/
-/* FIC Definition */
-/**************************/
-#define MSC_STREAM_AUDIO 0x00
-#define MSC_STREAM_DATA 0x01
-#define FIDC 0x02
-#define MSC_PACKET_DATA 0x03
-
-/* Ensemble, service, service component label number */
-#define LABEL_NUM 17
-
-/* maximum service component number in Ensemble channel */
-#define MAX_SERV_COMP 64
-
-/* maximum service component number in one service */
-#define MAX_SUB_CH_NUM 12
-
-/* maximum service number in one ensemble */
-#define MAX_SERVICE_NUM 20
-
-/*maximum number of user applications */
-#define USER_APP_NUM 6
-
-/* get FIC Time information complete */
-#define ALL_FLAG_MATCH 0x11
-
-/* get FIC type0 extension10 complete */
-#define TIME_FLAG 0x01
-
-/* get FIC type0 extension9 complete */
-#define LTO_FLAG 0x10
-
-#define Unspec_DATA 0
-#define TMC_Type 1
-#define EWS_Type 2
-#define ITTS_Type 3
-#define Paging_Type 4
-#define TDC_Type 5
-#define KDMB_Type 24
-#define Em_IP_Type 59
-#define MOT_Type 60
-#define PS_noDSCTy 61
-
-/****************************/
-/* FIC Data structure */
-/****************************/
-/*! Date and Time information for Application user */
-struct DATE_TIME_INFO {
- U32 MJD;
- U8 LSI;
- U8 conf_ind;
- U8 utc_flag;
- U8 apm_flag;
- U8 time_flag;
- U8 get_flag;
- U16 years;
- U8 months_dec;
- char months_ste[4];
- char weeks[4];
- U8 days;
- U8 hours;
- U8 minutes;
- U8 seconds;
- U16 milliseconds;
- U8 LTO; /*Local Time Offset */
-};
-
-/*! Service Component Descriptor for Application user */
-struct SVR_COM_DESP {
- S32 BIT_RATE;
- S32 P_L;
- S32 START_Addr;
- S32 SUB_CH_Size;
- U8 TMID;
- U8 ASCTy;
- U8 SubChid;
- U8 P_S;
- U8 CA_flag;
- U8 DSCTy;
- U8 FIDCid;
- U8 TCid;
- U8 Ext;
- U16 SCid;
- U8 DG_flag;
- U16 Packet_add;
- U16 CA_Org;
- U8 FEC_scheme;
- U8 language;
- U8 charset;
- char Label[LABEL_NUM];
- U32 Sid;
- U8 SCidS;
- U8 Num_User_App;
- U16 User_APP_Type[USER_APP_NUM];
- U8 User_APP_data_length[USER_APP_NUM];
- U8 User_APP_data[24];
-};
-
-/*! Service Descriptor for Application user */
-struct SERVICE_DESC {
- /*MCI Information*/
- U32 Sid;
- U8 Country_id;
- U32 Service_ref;
- U8 ECC;
- U8 Local_flag;
- U8 CAID;
- U8 Num_ser_comp;
- U8 P_D;
- /*SI Information */
- U8 label_flag;
- U8 charset;
- char Label[LABEL_NUM];
- /*Program type */
- U8 int_code;
- U8 ser_comp_num[MAX_SUB_CH_NUM];
-};
-
-/*! FIDC Descriptor for Application user */
-struct FIDC_EWS_Region {
- U8 Sub_Region[11];
-};
-
-struct FIDC_DESC {
- U8 EWS_current_segmemt;
- U8 EWS_total_segmemt;
- U8 EWS_Message_ID;
- S8 EWS_category[4];
- U8 EWS_priority;
- U32 EWS_time_MJD;
- U8 EWS_time_Hours;
- U8 EWS_time_Minutes;
- U8 EWS_region_form;
- U8 EWS_region_num;
- U8 EWS_Rev;
- struct FIDC_EWS_Region EWS_Region[15];
- U8 EWS_short_sentence[409];
-};
-
-/*! Ensemble Descriptor for Application user */
-struct ENSEMBLE_DESC {
- /*COMMON Information*/
- U32 svr_num;
- U32 svr_comp_num;
- U32 label_num;
- /*MCI Information*/
- U16 id;
- U8 change_flag;
- U8 Alarm_flag;
- /*SI Information*/
- U8 charset;
- char Label[LABEL_NUM];
- U32 freq;
- U8 label_flag;
-
- struct DATE_TIME_INFO date_time_info;
- struct SERVICE_DESC svr_desc[MAX_SERVICE_NUM];
- struct SVR_COM_DESP svr_comp[MAX_SERV_COMP];
- struct FIDC_DESC fidc_desc;
-
-};
-
-
-/*****************/
-/* EXTERNS */
-/*****************/
-extern char *PROGRAM_TYPE_CODE16[32];
-extern char *USER_APP_TYPE_CODE[11];
-extern char *FIDC_EXT_CODE[3];
-extern char *ASCTy[3];
-extern char *DSCTy[11];
-extern char *ANNOUNCEMENT_TYPE_CODE[12];
-extern S32 SUBCH_UEP_TABLE[64][3];
-extern char *WEEK_TABLE[8];
-extern char *MONTH_TABLE[12];
-extern struct ENSEMBLE_DESC ENS_DESC, NEXT_ENS_DESC;
-extern struct ENSEMBLE_DESC ENS_DESC1, NEXT_ENS_DESC1;
-extern struct ENSEMBLE_DESC ENS_DESC2, NEXT_ENS_DESC2;
-extern char *EWS_CATEGORY[67][3];
-extern char *EWS_PRIORITY_TABLE[4];
-extern char *EWS_REGION_FORM_TABLE[4];
-extern char *EWS_OFFICIAL_ORGANIZATION_TABLE[4];
-
-
-
-/********************/
-/* FIC Definition */
-/********************/
-#define PN_FIB_END_MARKER (0xFF)
-
-/****************************/
-/* FIC Parser function */
-/****************************/
-S32 FIB_Init_Dec(U8 *);
-S32 MCI_SI_DEC(U8);
-S32 SI_LABEL_DEC1(U8);
-S32 SI_LABEL_DEC2(U8);
-S32 FIDC_DEC(U8);
-S32 CA_DEC(U8);
-S32 RESERVED1(U8);
-S32 RESERVED2(U8);
-S32 RESERVED3(U8);
-
-/*****************************/
-/* FIG Data Type structure */
-/*****************************/
-struct FIG_DATA {
- U8 type;
- U8 length;
- U8 *data;
- U8 byte_cnt;
- U8 bit_cnt;
-};
-
-/****************************/
-/* FIG type 0 data field */
-/****************************/
-struct FIG_TYPE0 {
- U8 C_N;
- U8 OE;
- U8 P_D;
- U8 Ext;
-};
-
-/* Ensemble Information */
-struct FIG_TYPE0_Ext0 {
- U16 Eid;
- U8 Country_ID;
- U32 Ensemble_Ref;
- U8 Change_flag;
- U8 AI_flag;
- U8 CIF_Count0;
- U8 CIF_Count1;
- U8 Occurence_Change;
-};
-
-/* Structure of the sub-channel organization field */
-struct FIG_TYPE0_Ext1 {
- U8 SubChid;
- U32 StartAdd;
- U8 S_L_form;
- U32 Size_Protection;
- U8 Table_sw;
- U8 Table_index;
- U8 Option;
- U8 Protection_Level;
- U32 Sub_ch_size;
-};
-
-/* Structure of the service organization field */
-struct FIG_TYPE0_Ext2_ser_comp_des {
- U8 TMID;
- U8 ASCTy;
- U8 SubChid;
- U8 P_S;
- U8 CA_flag;
- U8 DSCTy;
- U8 FIDCid;
- U8 TCid;
- U8 Ext;
- U16 SCid;
-};
-
-/* Basic service and service component definition structure */
-struct FIG_TYPE0_Ext2 {
- U32 Sid;
- U8 Country_id;
- U32 Service_ref;
- U8 ECC;
- U8 Local_flag;
- U8 CAID;
- U8 Num_ser_comp;
- struct FIG_TYPE0_Ext2_ser_comp_des svr_comp_des[MAX_SERV_COMP];
-};
-
-/* Structure of the service component in packet mode */
-struct FIG_TYPE0_Ext3 {
- U16 SCid;
- U8 CA_Org_flag;
- U8 DG_flag;
- U8 DSCTy;
- U8 SubChid;
- U16 Packet_add;
- U16 CA_Org;
-};
-
-/* Structure of the service component field in Stream mode or FIC */
-struct FIG_TYPE0_Ext4 {
- U8 M_F;
- U8 SubChid;
- U8 FIDCid;
- U16 CA_Org;
-};
-
-/* Structure of the service component language field */
-struct FIG_TYPE0_Ext5 {
- U8 L_S_flag;
- U8 MSC_FIC_flag;
- U8 SubChid;
- U8 FIDCid;
- U16 SCid;
- U8 Language;
-};
-
-/* Service Linking Information */
-struct FIG_TYPE0_Ext6 {
- U8 id_list_flag;
- U8 LA;
- U8 S_H;
- U8 ILS;
- U32 LSN;
- U8 id_list_usage;
- U8 idLQ;
- U8 Shd;
- U8 Num_ids;
- U16 id[12];
- U8 ECC[12];
- U32 Sid[12];
-};
-
-/* Structure of the service component global definition field */
-struct FIG_TYPE0_Ext8 {
- U32 Sid;
- U8 Ext_flag;
- U8 SCidS;
- U8 L_S_flag;
- U8 MSC_FIC_flag;
- U8 SubChid;
- U8 FIDCid;
- U32 SCid;
-};
-
-/* Structure of Country, LTO International field */
-struct FIG_TYPE0_Ext9 {
- U8 Ext_flag;
- U8 LTO_unique;
- U8 Ensemble_LTO;
- U8 Ensemble_ECC;
- U8 Inter_Table_ID;
- U8 Num_Ser;
- U8 LTO;
- U8 ECC;
- U32 Sid[11];
-};
-
-/* Structure of the data and time field */
-struct FIG_TYPE0_Ext10 {
- U32 MJD;
- U8 LSI;
- U8 Conf_ind;
- U8 UTC_flag;
- U32 UTC;
- U8 Hours;
- U8 Minutes;
- U8 Seconds;
- U16 Milliseconds;
-};
-
-/* Structure of the Region Definition */
-struct FIG_TYPE0_Ext11 {
- U8 GATy;
- U8 G_E_flag;
- U8 Upper_part;
- U8 Lower_part;
- U8 length_TII_list;
- U8 Mainid[12];
- U8 Length_Subid_list;
- U8 Subid[36];
- U32 Latitude_Coarse;
- U32 Longitude_coarse;
- U32 Extent_Latitude;
- U32 Extent_Longitude;
-};
-
-/* Structure of the User Application Information */
-struct FIG_TYPE0_Ext13 {
- U32 Sid;
- U8 SCidS;
- U8 Num_User_App;
- U16 User_APP_Type[6];
- U8 User_APP_data_length[6];
- U8 CA_flag;
- U8 CA_Org_flag;
- U8 X_PAD_App_Ty;
- U8 DG_flag;
- U8 DSCTy;
- U16 CA_Org;
- U8 User_APP_data[24];
-};
-
-/* FEC sub-channel organization */
-struct FIG_TYPE0_Ext14 {
- U8 SubChid;
- U8 FEC_scheme;
-};
-
-/* Program Number structure */
-struct FIG_TYPE0_Ext16 {
- U16 Sid;
- U16 PNum;
- U8 Continuation_flag;
- U8 Update_flag;
- U16 New_Sid;
- U16 New_PNum;
-};
-
-/* Program Type structure */
-struct FIG_TYPE0_Ext17 {
- U16 Sid;
- U8 S_D;
- U8 P_S;
- U8 L_flag;
- U8 CC_flag;
- U8 Language;
- U8 Int_code;
- U8 Comp_code;
-};
-
-/* Announcement support */
-struct FIG_TYPE0_Ext18 {
- U16 Sid;
- U16 ASU_flags;
- U8 Num_clusters;
- U8 Cluster_ID[23];
-};
-
-/* Announcement switching */
-struct FIG_TYPE0_Ext19 {
- U8 Cluster_ID;
- U16 ASW_flags;
- U8 New_flag;
- U8 Region_flag;
- U8 SubChid;
- U8 Regionid_Lower_Part;
-};
-
-/* Frequency Information */
-struct FIG_TYPE0_Ext21 {
- U16 ResionID;
- U8 Length_of_FI_list;
- U16 id_field;
- U8 R_M;
- U8 Continuity_flag;
- U8 Length_Freq_list;
- U8 Control_field[5];
- U8 id_field2[4];
- U32 Freq_a[5];
- U8 Freq_b[17];
- U16 Freq_c[8];
- U16 Freq_d[7];
-};
-
-/* Transmitter Identification Information (TII) database */
-struct FIG_TYPE0_Ext22 {
- U8 M_S;
- U8 Mainid;
- U32 Latitude_coarse;
- U32 Longitude_coarse;
- U8 Latitude_fine;
- U8 Longitude_fine;
- U8 Num_Subid_fields;
- U8 Subid[4];
- U16 TD[4];
- U16 Latitude_offset[4];
- U16 Longitude_offset[4];
-};
-
-/* Other Ensemble Service */
-struct FIG_TYPE0_Ext24 {
- U32 Sid;
- U8 CAid;
- U8 Number_Eids;
- U16 Eid[12];
-};
-
-/* Other Ensemble Announcement support */
-struct FIG_TYPE0_Ext25 {
- U32 Sid;
- U32 ASU_flag;
- U8 Number_Eids;
- U8 Eid[12];
-};
-
-/* Other Ensemble Announcement switching */
-struct FIG_TYPE0_Ext26 {
- U8 Cluster_id_Current_Ensemble;
- U32 Asw_flags;
- U8 New_flag;
- U8 Region_flag;
- U8 Region_id_current_Ensemble;
- U32 Eid_Other_Ensemble;
- U8 Cluster_id_other_Ensemble;
- U8 Region_id_Oter_Ensemble;
-};
-
-/* FM Announcement support */
-struct FIG_TYPE0_Ext27 {
- U32 Sid;
- U8 Number_PI_Code;
- U32 PI[12];
-};
-
-/* FM Announcement switching */
-struct FIG_TYPE0_Ext28 {
- U8 Cluster_id_Current_Ensemble;
- U8 New_flag;
- U8 Region_id_Current_Ensemble;
- U32 PI;
-};
-
-/* FIC re-direction */
-struct FIG_TYPE0_Ext31 {
- U32 FIG0_flag_field;
- U8 FIG1_flag_field;
- U8 FIG2_flag_field;
-};
-
-/****************************/
-/* FIG type 5 data field */
-/****************************/
-struct FIG_TYPE5 {
- U8 D1;
- U8 D2;
- U8 TCid;
- U8 Ext;
-};
-
-/* Paging */
-struct FIG_TPE5_Ext0 {
- U8 SubChid;
- U16 Packet_add;
- U8 F1;
- U8 F2;
- U16 LFN;
- U8 F3;
- U16 Time;
- U8 CAid;
- U16 CA_Org;
- U32 Paging_user_group;
-};
-
-/* TMC */
-struct FIG_TYPE5_Ext1 {
- U32 TMC_User_Message[30];
- U16 TMC_System_Message[30];
-};
-
-/* EWS */
-struct FIG_EWS_Region {
- U8 Sub_Region[11];
-};
-
-struct FIG_TYPE5_Ext2 {
- U8 current_segmemt;
- U8 total_segmemt;
- U8 Message_ID;
- S8 category[4];
- U8 priority;
- U32 time_MJD;
- U8 time_Hours;
- U8 time_Minutes;
- U8 region_form;
- U8 region_num;
- U8 Rev;
- struct FIG_EWS_Region Region[15];
- U8 data[409];
-};
-
-/****************************/
-/* FIG type 6 data field */
-/****************************/
-struct FIG_TYPE6 {
- U8 C_N;
- U8 OE;
- U8 P_D;
- U8 LEF;
- U8 ShortCASysId;
- U32 Sid;
- U16 CASysId;
- U16 CAIntChar;
-};
-
-/***************************/
-/* Function declarations */
-/***************************/
-
-/* FIG TYPE 0 function */
-S32 Get_FIG0_EXT0(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT1(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT2(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT3(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT4(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT5(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT6(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT7(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT8(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT9(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT10(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT11(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT12(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT13(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT14(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT15(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT16(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT17(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT18(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT19(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT20(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT21(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT22(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT23(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT24(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT25(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT26(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT27(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT28(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT29(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT30(U8 fic_cmd, U8 P_D, U8 C_N);
-S32 Get_FIG0_EXT31(U8 fic_cmd, U8 P_D, U8 C_N);
-
-/* FIG TYPE 1 function */
-S32 Get_FIG1_EXT0(U8 fic_cmd, U8 Char_Set);
-S32 Get_FIG1_EXT1(U8 fic_cmd, U8 Char_Set);
-S32 Get_FIG1_EXT2(U8 fic_cmd, U8 Char_Set);
-S32 Get_FIG1_EXT3(U8 fic_cmd, U8 Char_Set);
-S32 Get_FIG1_EXT4(U8 fic_cmd, U8 Char_Set);
-S32 Get_FIG1_EXT5(U8 fic_cmd, U8 Char_Set);
-S32 Get_FIG1_EXT6(U8 fic_cmd, U8 Char_Set);
-S32 Get_FIG1_EXT7(U8 fic_cmd, U8 Char_Set);
-
-/* FIG TYPE 2 function */
-S32 Get_FIG2_EXT0(U8 fic_cmd, U8 Seg_Index);
-S32 Get_FIG2_EXT1(U8 fic_cmd, U8 Seg_Index);
-S32 Get_FIG2_EXT2(U8 fic_cmd, U8 Seg_Index);
-S32 Get_FIG2_EXT3(U8 fic_cmd, U8 Seg_Index);
-S32 Get_FIG2_EXT4(U8 fic_cmd, U8 Seg_Index);
-S32 Get_FIG2_EXT5(U8 fic_cmd, U8 Seg_Index);
-S32 Get_FIG2_EXT6(U8 fic_cmd, U8 Seg_Index);
-S32 Get_FIG2_EXT7(U8 fic_cmd, U8 Seg_Index);
-
-/* FIG TYPE 5 function */
-S32 Get_FIG5_EXT0(U8 D1, U8 D2, U8 fic_cmd, U8 TCid);
-S32 Get_FIG5_EXT1(U8 D1, U8 D2, U8 fic_cmd, U8 TCid);
-S32 Get_FIG5_EXT2(U8 D1, U8 D2, U8 fic_cmd, U8 TCid);
-
-
-
-U8 GET_SUBCH_INFO(struct FIG_TYPE0_Ext1 *type0_ext1
- , S32 *BIT_RATE, S32 *SUB_CH_Size, S32 *P_L);
-U8 GET_DATE_TIME(struct DATE_TIME_INFO *time_desc);
-U8 GET_EWS_TIME(struct DATE_TIME_INFO *time_desc);
-
-
-
-#endif /* __RAONTV_FICDEC_INTERNAL_H__ */
diff --git a/drivers/media/tdmb/mtv318/raontv_internal.h b/drivers/media/tdmb/mtv318/raontv_internal.h
deleted file mode 100644
index 1e41350..0000000
--- a/drivers/media/tdmb/mtv318/raontv_internal.h
+++ /dev/null
@@ -1,796 +0,0 @@
-/*
- *
- * File name: drivers/media/tdmb/mtv318/src/raontv_internal.h
- *
- * Description : RAONTECH TV internal header file.
- *
- * Copyright (C) (2011, RAONTECH)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __RAONTV_INTERNAL_H__
-#define __RAONTV_INTERNAL_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "raontv.h"
-
-/* Do not modify the order! */
-enum E_RTV_TV_MODE_TYPE {
- RTV_TV_MODE_TDMB = 0, /* Band III Korea */
- RTV_TV_MODE_DAB_B3 = 1, /* Band III*/
- RTV_TV_MODE_DAB_L = 2, /* L-Band*/
- RTV_TV_MODE_1SEG = 3, /* UHF*/
- RTV_TV_MODE_FM = 4, /* FM*/
- MAX_NUM_RTV_MODE
-};
-
-struct RTV_REG_INIT_INFO {
- U8 bReg;
- U8 bVal;
-};
-
-struct RTV_REG_MASK_INFO {
- U8 bReg;
- U8 bMask;
- U8 bVal;
-};
-
-#if defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)
-#if defined(RTV_TSIF_CLK_SPEED_DIV_2) /* Host Clk/2*/
-#define RTV_COMM_CON47_CLK_SEL (0<<6)
-#elif defined(RTV_TSIF_CLK_SPEED_DIV_4) /* Host Clk/4*/
-#define RTV_COMM_CON47_CLK_SEL (1<<6)
-#elif defined(RTV_TSIF_CLK_SPEED_DIV_6) /* Host Clk/6*/
-#define RTV_COMM_CON47_CLK_SEL (2<<6)
-#elif defined(RTV_TSIF_CLK_SPEED_DIV_8) /* Host Clk/8*/
-#define RTV_COMM_CON47_CLK_SEL (3<<6)
-#else
-#error "Code not present"
-#endif
-#endif
-
-#define MSC1_E_OVER_FLOW 0x40
-#define MSC1_E_UNDER_FLOW 0x20
-#define MSC1_E_INT 0x10
-#define MSC0_E_OVER_FLOW 0x08
-#define MSC0_E_UNDER_FLOW 0x04
-#define MSC0_E_INT 0x02
-#define FIC_E_INT 0x01
-#define RE_CONFIG_E_INT 0x04
-
-#define MSC1_INTR_BITS (MSC1_E_INT|MSC1_E_UNDER_FLOW|MSC1_E_OVER_FLOW)
-#define MSC0_INTR_BITS (MSC0_E_INT|MSC0_E_UNDER_FLOW|MSC0_E_OVER_FLOW)
-
-/* [2]MSC1 int clear [1]MSC0 int clear [0]FIC int clear */
-#define INT_E_UCLRL (0x35)
-
-/* [6]OFDM TII done clear */
-#define INT_E_UCLRH (0x36)
-
-/* [7]OFDM Lock status [6]MSC1 overrun [5]MSC1 underrun
- * [4]MSC1 int [3]MSC0 overrun [2]MSC0 underrun [1]MSC0 int [0]FIC int */
-#define INT_E_STATL (0x33)
-
-/* [7]OFDM NIS [6]OFDM TII [5]OFDM scan [4]OFDM window position
- * [3]OFDM unlock [2]FEC re-configuration [1]FEC CIF end [0]FEC soft reset*/
-#define INT_E_STATH (0x34)
-
-/* [7]Buf_en [6]PKT_CRC_MODE:enable (stored) [5]MPEG_HEAD [4]MPEG-2TS_EN
- * [3]EPKT_MODE [2]CAS_MODE [1]FIDC_MODE [0]FIC_INIT_EN == 1:enable*/
-#define DD_E_TOPCON (0x45)
-
-/* [4]FIC_CRC stored- 1:enable [3]FIC uclear-1
- * [2]FIC_Update - 1:dependent by user
- * [1]FIC_EN [0]FIG_EN - 1:only FIG 6 dump*/
-#define FIC_E_DDCON (0x46)
-
-/* [3]MSC0 uclear-1
- * [2]MSC0_en
- * [1]MSC0 read length -1:user length, 0:interrupt length
- * [0]MSC0 interrupt sel-1:user th, 0:CIF end*/
-#define MSC0_E_CON (0x47)
-
-/* [5]MSC1_length-0:subch+length [4]MSC1 header-0:disable [3]MSC1 uclear-1
- * [2]MSC1_en [1]MSC1 read length -1:user length, 0:interrupt length
- * [0]MSC1 interrupt sel-1:user th, 0:CIF end*/
-#define MSC1_E_CON (0x48)
-
-/* [3]NIS uclear-1 [2]NIS_Update - 1:dependent by user
- * [1]TII status clear -1:user set only, 0:user set & internal event
- * [0]TII_Update - 1:dependent by user*/
-#define OFDM_E_DDCON (0x49)
-
-/* [11:8] setting in MSC0 read length for interrupt clear*/
-#define MSC0_E_RSIZE_H (0x4E)
-
-/* [7:0]*/
-#define MSC0_E_RSIZE_L (0x4F)
-
-/* [11:8] MSC0 interrupt threshold*/
-#define MSC0_E_INTTH_H (0x50)
-
-/* [7:0]*/
-#define MSC0_E_INTTH_L (0x51)
-
-/* [11:8]*/
-#define MSC0_E_TSIZE_L (0x52)
-
-/* [7:0] MSC0 total size which you can read*/
-#define MSC0_E_TSIZE_H (0x53)
-
-/* [11:8] setting in MSC1 read length for interrupt clear*/
-#define MSC1_E_RSIZE_H (0x54)
-#define MSC1_E_RSIZE_L (0x55) /* [7:0]*/
-#define MSC1_E_INTTH_H (0x56) /* [11:8] MSC1 interrupt threshold*/
-#define MSC1_E_INTTH_L (0x57) /* [7:0]*/
-#define MSC1_E_TSIZE_L (0x58) /* [11:8]*/
-#define MSC1_E_TSIZE_H (0x59) /* [7:0] MSC1 read length*/
-
-#define MODE1 2
-#define MODE2 1
-#define MODE3 0
-
-#define MAP_SEL_REG 0x03
-
-#define OFDM_PAGE 0x02 /* for 1seg */
-#define FEC_PAGE 0x03 /* for 1seg */
-#define COMM_PAGE 0x04
-#define FM_PAGE 0x06 /* T-DMB OFDM/FM */
-#define HOST_PAGE 0x07
-#define CAS_PAGE 0x08
-#define DD_PAGE 0x09 /* FEC for TDMB, DAB, FM */
-#define FIC_PAGE 0x0A
-#define MSC0_PAGE 0x0B
-#define MSC1_PAGE 0x0C
-#define RF_PAGE 0x0F
-
-#define DEMOD_0SC_DIV2_ON 0x80
-#define DEMOD_0SC_DIV2_OFF 0x00
-
-#if (RTV_SRC_CLK_FREQ_KHz >= 32000)
-#define DEMOD_OSC_DIV2 DEMOD_0SC_DIV2_ON
-#else
-#define DEMOD_OSC_DIV2 DEMOD_0SC_DIV2_OFF
-#endif
-
-#define MAP_SEL_VAL(page) (DEMOD_OSC_DIV2|page)
-#define RTV_REG_MAP_SEL(page) RTV_REG_SET(MAP_SEL_REG, MAP_SEL_VAL(page))
-
-#define RTV_TS_STREAM_DISABLE_DELAY 20 /* ms */
-
-/* ISDB-T Channel */
-#define ISDBT_CH_NUM_START__JAPAN 13
-#define ISDBT_CH_NUM_END__JAPAN 62
-#define ISDBT_CH_FREQ_START__JAPAN 473143
-#define ISDBT_CH_FREQ_STEP__JAPAN 6000
-
-#define ISDBT_CH_NUM_START__BRAZIL 14
-#define ISDBT_CH_NUM_END__BRAZIL 69
-#define ISDBT_CH_FREQ_START__BRAZIL 473143
-#define ISDBT_CH_FREQ_STEP__BRAZIL 6000
-
-#define ISDBT_CH_NUM_START__ARGENTINA 14
-#define ISDBT_CH_NUM_END__ARGENTINA 69
-#define ISDBT_CH_FREQ_START__ARGENTINA 473143
-#define ISDBT_CH_FREQ_STEP__ARGENTINA 6000
-
-/* T-DMB Channel */
-#define TDMB_CH_FREQ_START__KOREA 175280
-#define TDMB_CH_FREQ_STEP__KOREA 1728 /* about... */
-/* DAB Channel */
-#define DAB_CH_BAND3_START_FREQ_KHz 174928
-#define DAB_CH_BAND3_STEP_FREQ_KHz 1712 /* in KHz */
-#define DAB_CH_LBAND_START_FREQ_KHz 1452960
-#define DAB_CH_LBAND_STEP_STEP_FREQ_KHz 1712 /*in KHz */
-
-extern enum E_RTV_ADC_CLK_FREQ_TYPE g_eRtvAdcClkFreqType;
-extern enum E_RTV_COUNTRY_BAND_TYPE g_eRtvCountryBandType;
-
-#ifdef RTV_DAB_ENABLE
-extern enum E_RTV_TV_MODE_TYPE g_curDabSetType;
-#endif
-
-/* Use SPI/EBI2 interrupt handler to prevent the changing of register map. */
-extern BOOL g_fRtvChannelChange;
-extern BOOL g_fRtvStreamEnabled;
-
-extern UINT g_nRtvMscThresholdSize;
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
-extern U8 g_bRtvIntrMaskRegL;
-
-#else
-#if !defined(RTV_CIF_MODE_ENABLED) || !defined(RTV_FIC_POLLING_MODE)
-/* T-DMB: Single sub channel and Serial TSIF */
-extern U8 g_bRtvIntrMaskRegL;
-#endif
-#endif
-
-/*See PLL table in raontv_rf_pll_data_fm.h */
-#define FM_MIN_FREQ_KHz 75950
-#define FM_MAX_FREQ_KHz 108050
-#define FM_SCAN_STEP_FREQ_KHz (RTV_FM_CH_STEP_FREQ_KHz/2)
-
-#if (RTV_FM_CH_MIN_FREQ_KHz < FM_MIN_FREQ_KHz) \
- || (RTV_FM_CH_MAX_FREQ_KHz > FM_MAX_FREQ_KHz)
-#error "Invalid FM freq range"
-#endif
-
-/*============================================================================
- *
- * Common inline functions.
- *
- *===========================================================================*/
-
-/* Forward prototype. */
-static INLINE void rtv_SetupMemory_MSC1(U16 wThresholdSize);
-
-static INLINE enum E_RTV_TV_MODE_TYPE rtv_GetDabTvMode(U32 dwChFreqKHz)
-{
- if (dwChFreqKHz >= DAB_CH_LBAND_START_FREQ_KHz) {
- /*RTV_DBGMSG0("return RTV_TV_MODE_DAB_L;\n");*/
- return RTV_TV_MODE_DAB_L; /* L-Band */
- } else {
- switch (dwChFreqKHz) {
- case 175280/*7A*/: case 177008/*7B*/: case 178736/*7C*/:
- case 181280/*8A*/: case 183008/*8B*/: case 184736/*8C*/:
- case 187280/*9A*/: case 189008/*9B*/: case 190736/*9C*/:
- case 193280/*10A*/: case 195008/*10B*/: case 196736/*10C*/:
- case 199280/*11A*/: case 201008/*11B*/: case 202736/*11C*/:
- case 205280/*12A*/: case 207008/*12B*/: case 208736/*12C*/:
- case 211280/*13A*/: case 213008/*13B*/: case 214736/*13C*/:
- /*RTV_DBGMSG0("return RTV_TV_MODE_TDMB;\n");*/
- return RTV_TV_MODE_TDMB; /*Korea TDMB.*/
-
- default:
- /*RTV_DBGMSG0("return RTV_TV_MODE_DAB_B3;\n"); */
- return RTV_TV_MODE_DAB_B3; /* DAB Band-III */
- }
- }
-}
-
-/* Pause straem */
-static INLINE void rtv_StreamDisable(enum E_RTV_TV_MODE_TYPE eTvMode)
-{
-#ifndef RTV_IF_MPEG2_PARALLEL_TSIF
- if (g_fRtvStreamEnabled == FALSE)
- return;
-
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(HOST_PAGE);
- /* FIC, MSC0, MSC1 */
- RTV_REG_SET(0x62,
- g_bRtvIntrMaskRegL|MSC0_INTR_BITS|MSC1_INTR_BITS);
-
-#elif defined(RTV_IF_MPEG2_SERIAL_TSIF) \
- || defined(RTV_IF_SPI_SLAVE)\
- || defined(RTV_IF_QUALCOMM_TSIF)
-
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x29, 0x08);
- RTV_DELAY_MS(RTV_TS_STREAM_DISABLE_DELAY);
-#endif
- break;
-#endif /* RTV_ISDBT_ENABLE */
-
-#ifdef RTV_FM_ENABLE
- case RTV_TV_MODE_FM:
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(HOST_PAGE);
- /* FIC, MSC0, MSC1 */
- RTV_REG_SET(0x62,
- g_bRtvIntrMaskRegL|MSC0_INTR_BITS|MSC1_INTR_BITS);
-
-#elif defined(RTV_IF_MPEG2_SERIAL_TSIF) \
- || defined(RTV_IF_SPI_SLAVE) \
- || defined(RTV_IF_QUALCOMM_TSIF)
-
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x29, 0x08);
- RTV_DELAY_MS(RTV_TS_STREAM_DISABLE_DELAY);
-#endif
- break;
-#endif/* RTV_FM_ENABLE */
-
-#ifdef RTV_TDMB_ENABLE
- case RTV_TV_MODE_TDMB:
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(HOST_PAGE);
-
- /* FIC, MSC0, MSC1 */
- RTV_REG_SET(0x62,
- g_bRtvIntrMaskRegL|MSC0_INTR_BITS|MSC1_INTR_BITS|FIC_E_INT);
-#elif defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x29, 0x08);
- RTV_DELAY_MS(RTV_TS_STREAM_DISABLE_DELAY);
-
-#ifndef RTV_CIF_MODE_ENABLED /* Individual Mode */
-#ifndef RTV_FIC_POLLING_MODE
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL|FIC_E_INT);
-#endif
-#else /* CIF Mode. */
-
-#endif
-#endif
- break;
-#endif /* RTV_TDMB_ENABLE */
-
-#ifdef RTV_DAB_ENABLE
- case RTV_TV_MODE_DAB_B3:
- case RTV_TV_MODE_DAB_L:
- case RTV_TV_MODE_TDMB:
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x62,
- g_bRtvIntrMaskRegL|MSC0_INTR_BITS|MSC1_INTR_BITS|FIC_E_INT);
-
-#elif defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x29, 0x08);
- RTV_DELAY_MS(RTV_TS_STREAM_DISABLE_DELAY);
-
-#ifndef RTV_CIF_MODE_ENABLED /* Individual Mode */
-#ifndef RTV_FIC_POLLING_MODE
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL|FIC_E_INT);
-#endif
-#else /* Multi Sub Channel Mode. */
-
-#endif
-#endif
- break;
-#endif /* RTV_DAB_ENABLE */
-
- default:
- break;
- }
-
- g_fRtvStreamEnabled = FALSE;
-#endif
-}
-
-
-static INLINE void rtv_StreamRestore(enum E_RTV_TV_MODE_TYPE eTvMode)
-{
-#ifndef RTV_IF_MPEG2_PARALLEL_TSIF
- if (g_fRtvStreamEnabled == TRUE)
- return;
-
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x35, 0x04); /* MSC1 Interrupt status clear. */
-
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-#endif
- break;
-#endif
-
-#ifdef RTV_FM_ENABLE
- case RTV_TV_MODE_FM:
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x35, 0x04);
-
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-#elif defined(RTV_IF_SERIAL_TSIF) || defined(RTV_IF_SPI_SLAVE)
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x29, 0x00);
-#endif
- break;
-#endif
-
-#ifdef RTV_TDMB_ENABLE
- case RTV_TV_MODE_TDMB:
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x35, 0x07);
-
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-
-#elif defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x29, 0x00);
-
-#ifndef RTV_CIF_MODE_ENABLED /* Individual Mode */
-#ifndef RTV_FIC_POLLING_MODE
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x35, 0x01);
-
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-#endif
-#else /* Multi Sub Channel Mode. */
-#endif
-#endif
- break;
-#endif
-
-#ifdef RTV_DAB_ENABLE
- case RTV_TV_MODE_DAB_B3:
- case RTV_TV_MODE_DAB_L:
- case RTV_TV_MODE_TDMB:
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x35, 0x07);
-
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);/* FIC, MSC0, MSC1 */
-
-#elif defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x29, 0x00);
-
-#ifndef RTV_CIF_MODE_ENABLED /* Individual Mode */
-#ifndef RTV_FIC_POLLING_MODE
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x35, 0x01); /* FIC Interrupt status clear. */
-
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-#endif
-#else /* Multi Sub Channel Mode. */
-#endif
-#endif
- break;
-#endif /* RTV_DAB_ENABLE */
- default:
- /* RTV_DBGMSG0("[rtv_StreamRestore] Invalid TV mode.\n"); */
- break;
- }
-
- g_fRtvStreamEnabled = TRUE;
-#endif
-}
-
-/* Enable the stream path forcely for ISDB-T and FM only! */
-static INLINE void rtv_StreamEnable(void)
-{
-#ifndef RTV_IF_MPEG2_PARALLEL_TSIF
- if (g_fRtvStreamEnabled == TRUE)
- return;
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x35, 0x04); /* MSC1 Interrupt status clear. */
-
- RTV_REG_MAP_SEL(HOST_PAGE);
-
- /* [6] MSC1 over-run [5] MSC1 under-run [4] MSC1 interrupt */
- g_bRtvIntrMaskRegL = 0x8F;
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-
-#elif defined(RTV_IF_SERIAL_TSIF) || defined(RTV_IF_SPI_SLAVE)
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x29, 0x00);
-#endif
-
- /* Restore MSC1 memory. */
- rtv_SetupMemory_MSC1(g_nRtvMscThresholdSize);
-
- g_fRtvStreamEnabled = TRUE;
-#endif /* #ifndef RTV_IF_MPEG2_PARALLEL_TSIF */
-}
-
-static INLINE void rtv_ConfigureTsifFormat(void)
-{
- RTV_REG_MAP_SEL(COMM_PAGE);
-
-#if defined(RTV_IF_MPEG2_SERIAL_TSIF) || defined(RTV_IF_SPI_SLAVE)
-#if defined(RTV_TSIF_FORMAT_1)
- RTV_REG_SET(0x45, 0x00);
-#elif defined(RTV_TSIF_FORMAT_2)
- RTV_REG_SET(0x45, 0x02);
-#elif defined(RTV_TSIF_FORMAT_3)
- RTV_REG_SET(0x45, 0x21);
-#elif defined(RTV_TSIF_FORMAT_4)
- RTV_REG_SET(0x45, 0x23);
-#else
-#error "Code not present"
-#endif
-
-#elif defined(RTV_IF_QUALCOMM_TSIF)
-#if defined(RTV_TSIF_FORMAT_1)
- RTV_REG_SET(0x45, 0x00);
-#elif defined(RTV_TSIF_FORMAT_2)
- RTV_REG_SET(0x45, 0xE9);
-
-#elif defined(RTV_TSIF_FORMAT_3)
- RTV_REG_SET(0x45, 0xE1);
-#elif defined(RTV_TSIF_FORMAT_4)
- RTV_REG_SET(0x45, 0x40);
-#elif defined(RTV_TSIF_FORMAT_5)
- RTV_REG_SET(0x45, 0x21);
-#else
-#error "Code not present"
-#endif
-#endif
-
-#if defined(RTV_IF_MPEG2_SERIAL_TSIF)
- RTV_REG_SET(0x46, 0x80);
-#elif defined(RTV_IF_QUALCOMM_TSIF)
- RTV_REG_SET(0x46, 0xA0);
-#elif defined(RTV_IF_SPI_SLAVE)
- RTV_REG_SET(0x46, 0x82);
-#endif
-}
-
-static INLINE void rtv_ResetMemory_MSC0(void)
-{
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x47, 0x00); /* MSC0 memory control register clear. */
-}
-
-static INLINE void rtv_ResetMemory_MSC1(void)
-{
-#ifndef RTV_IF_MPEG2_PARALLEL_TSIF
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x48, 0x00); /* MSC1 memory control register clear. */
-#endif
-}
-
-/* Only for T-DMB and DAB. */
-static INLINE void rtv_ClearAndSetupMemory_MSC0(void)
-{
-#ifndef RTV_IF_MPEG2_PARALLEL_TSIF
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
-#ifdef RTV_MSC_INTR_ISTAUS_ACC_CLR_MODE
- U8 msc0_int_usel = 0; /* 0: auto&uclr, 1: user set only */
-#else
- U8 msc0_int_usel = 1;
-#endif
-#else
- U8 msc0_int_usel = 0;
-#endif
-
-#ifndef RTV_CIF_MODE_ENABLED /* Individual Mode */
- U8 int_type = 1; /* 0: CIF end, 1: Threshold */
-#else
- U8 int_type = 0;
-#endif
-
- RTV_REG_SET(0x47, 0x00);
- RTV_REG_SET(0x47, (msc0_int_usel<<3) | (1/*msc0_en*/<<2) | int_type);
-#endif /* #ifndef RTV_IF_MPEG2_PARALLEL_TSIF */
-}
-
-/* Only for T-DMB and DAB. */
-static INLINE void rtv_SetupMemory_MSC0(U16 wThresholdSize)
-{
-#ifndef RTV_IF_MPEG2_PARALLEL_TSIF
- RTV_REG_MAP_SEL(DD_PAGE);
-
- RTV_REG_SET(0x50, ((wThresholdSize>>8) & 0x0F));
- RTV_REG_SET(0x51, (wThresholdSize & 0xFF));
-
- rtv_ClearAndSetupMemory_MSC0();
-
- RTV_REG_SET(0x35, 0x02); /* MSC0 Interrupt clear. */
-
-#endif /* #ifndef RTV_IF_MPEG2_PARALLEL_TSIF */
-}
-
-/* For SPI interface ISR. */
-static INLINE void rtv_ClearAndSetupMemory_MSC1(void)
-{
-#ifndef RTV_IF_MPEG2_PARALLEL_TSIF
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
-#ifdef RTV_MSC_INTR_ISTAUS_ACC_CLR_MODE
- U8 msc1_int_usel = 0; /* 0: auto&uclr, 1: user set only */
-#else
- U8 msc1_int_usel = 1;
-#endif
-#else
- /* TSIF */
- U8 msc1_int_usel = 0;
-#endif
-
- U8 int_type = 1; /* 0: CIF end, 1: Threshold (for SPI, Header OFF) */
-
- RTV_REG_SET(0x48, 0x00);
- RTV_REG_SET(0x48,
- (0<<5) | (0<<4) | (msc1_int_usel<<3) | (1/*msc1_en*/<<2) | int_type);
-
-#endif /* #ifndef RTV_IF_MPEG2_PARALLEL_TSIF */
-}
-
-static INLINE void rtv_SetupMemory_MSC1(U16 wThresholdSize)
-{
-#ifndef RTV_IF_MPEG2_PARALLEL_TSIF
- RTV_REG_MAP_SEL(DD_PAGE);
-
- /* The below settings are not applied to CIF of TDMB/DAB. */
- RTV_REG_SET(0x56, ((wThresholdSize>>8) & 0x0F));
- RTV_REG_SET(0x57, (wThresholdSize & 0xFF));
-
- rtv_ClearAndSetupMemory_MSC1();
-#endif /* #ifndef RTV_IF_MPEG2_PARALLEL_TSIF */
-}
-
-/* Only this sub channel contains the RS decoder. */
-static INLINE void rtv_Set_MSC1_SUBCH0(UINT nSubChID,
- BOOL fSubChEnable, BOOL fRsEnable)
-{
- RTV_REG_MAP_SEL(DD_PAGE);
-
-#if !defined(RTV_IF_MPEG2_PARALLEL_TSIF)
- RTV_REG_SET(0x3A, (fSubChEnable << 7) | (fRsEnable << 6) | nSubChID);
-#else
- if (fRsEnable == TRUE) {
- RTV_REG_SET(0xFF, 0x00);
- RTV_REG_SET(0x3A,
- (fSubChEnable << 7) | (fRsEnable << 6) | nSubChID);
-
- } else {
- RTV_REG_SET(0x3A, 0x00);
- RTV_REG_SET(0xFF, (fSubChEnable << 7) | nSubChID);
- }
-#endif
-}
-
-static INLINE void rtv_Set_MSC1_SUBCH1(UINT nSubChID, BOOL fSubChEnable)
-{
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x3B, (fSubChEnable << 7) | nSubChID);
-}
-
-static INLINE void rtv_Set_MSC1_SUBCH2(UINT nSubChID, BOOL fSubChEnable)
-{
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x3C, (fSubChEnable << 7) | nSubChID);
-}
-
-static INLINE void rtv_Set_MSC0_SUBCH3(UINT nSubChID, BOOL fSubChEnable)
-{
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x3D, (fSubChEnable << 7) | nSubChID);
-}
-
-static INLINE void rtv_Set_MSC0_SUBCH4(UINT nSubChID, BOOL fSubChEnable)
-{
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x3E, (fSubChEnable << 7) | nSubChID);
-}
-
-static INLINE void rtv_Set_MSC0_SUBCH5(UINT nSubChID, BOOL fSubChEnable)
-{
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x3F, (fSubChEnable << 7) | nSubChID);
-}
-
-static INLINE void rtv_Set_MSC0_SUBCH6(UINT nSubChID, BOOL fSubChEnable)
-{
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x42, (fSubChEnable << 7) | nSubChID);
-}
-
-/*=============================================================================
- *
- * T-DMB inline functions.
- *
- *===========================================================================*/
-static INLINE void rtv_SetupMemory_FIC(void)
-{
- RTV_REG_MAP_SEL(DD_PAGE);
- /* auto user clr, get fic CRC 2byte including[4] */
- RTV_REG_SET(0x46, 0x10);
- RTV_REG_SET(0x46, 0x16); /* FIC enable */
-}
-
-static INLINE void rtv_ResetMemory_FIC(void)
-{
-
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x46, 0x00);
-}
-
-/*==============================================================================
- *
- * Parallel TSIF inline functions.
- *
- *============================================================================*/
-#ifdef RTV_IF_MPEG2_PARALLEL_TSIF
-#if defined(RTV_ISDBT_ENABLE)
-static INLINE void rtv_SetParallelTsif_1SEG_Only(void)
-{
- RTV_REG_MAP_SEL(FEC_PAGE);
-
-#if defined(RTV_TSIF_FORMAT_1)
- RTV_REG_SET(0x6E, 0x11);
-#elif defined(RTV_TSIF_FORMAT_2)
- RTV_REG_SET(0x6E, 0x13);
-#elif defined(RTV_TSIF_FORMAT_3)
- RTV_REG_SET(0x6E, 0x10);
-#elif defined(RTV_TSIF_FORMAT_4)
- RTV_REG_SET(0x6E, 0x12);
-#else
-#error "Code not present"
-#endif
- RTV_REG_SET(0x6F, 0x02);
- RTV_REG_SET(0x70, 0x88);
-}
-
-#elif defined(RTV_TDMB_ENABLE)
-static INLINE void rtv_SetParallelTsif_TDMB_Only(void)
-{
- RTV_REG_MAP_SEL(0x09);
-
-#if defined(RTV_TSIF_FORMAT_1)
- RTV_REG_SET(0xDD, 0xD0);
-#elif defined(RTV_TSIF_FORMAT_2)
- RTV_REG_SET(0xDD, 0xD2);
-#elif defined(RTV_TSIF_FORMAT_3)
- RTV_REG_SET(0xDD, 0xD1);
-#elif defined(RTV_TSIF_FORMAT_4)
- RTV_REG_SET(0xDD, 0xD3);
-#else
-#error "Code not present"
-#endif
- RTV_REG_SET(0xDE, 0x12);
- RTV_REG_SET(0x45, 0xB0);
-}
-#else
-#error "Code not present"
-#endif
-#endif
-
-/*==============================================================================
- * External functions for RAONTV driver core.
- *============================================================================*/
-void rtv_ConfigureHostIF(void);
-INT rtv_InitSystem(enum E_RTV_TV_MODE_TYPE eTvMode,
- enum E_RTV_ADC_CLK_FREQ_TYPE eAdcClkFreqType);
-
-#ifdef RTV_CIF_HEADER_INSERTED
-void rtvCIFDEC_Init(void);
-void rtvCIFDEC_Deinit(void);
-void rtvCIFDEC_DeleteSubChannelID(UINT nSubChID);
-void rtvCIFDEC_AddSubChannelID(UINT nSubChID);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __RAONTV_INTERNAL_H__ */
-
-/*
- WINDOWS
- #define INLINE __inline
- #define FORCE_INLINE __forceinline
- #define NAKED __declspec(naked)
-
- __GNUC__
- #define INLINE __inline__
- #define FORCE_INLINE __attribute__((always_inline)) __inline__
- #define NAKED __attribute__((naked))
-
- ARM RVDS compiler
- #define INLINE __inline
- #define FORCE_INLINE __forceinline
- #define NAKED __asm
- */
-
diff --git a/drivers/media/tdmb/mtv318/raontv_port.c b/drivers/media/tdmb/mtv318/raontv_port.c
deleted file mode 100644
index 1251a8c..0000000
--- a/drivers/media/tdmb/mtv318/raontv_port.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
-*
-* File name: drivers/media/tdmb/mtv318/src/raontv_port.c
-*
-* Description : RAONTECH TV OEM source driver.
-*
-* Copyright (C) (2011, RAONTECH)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-#include "raontv.h"
-#include "raontv_internal.h"
-#include <linux/spi/spi.h>
-
-#include "tdmb.h"
-
-/* Declares a variable of gurad object if neccessry. */
-#if defined(RTV_IF_SPI) || ((defined(RTV_TDMB_ENABLE) \
- || defined(RTV_DAB_ENABLE)) && !defined(RTV_FIC_POLLING_MODE))
- #if defined(__KERNEL__)
- struct mutex raontv_guard;
- #elif defined(WINCE)
- CRITICAL_SECTION raontv_guard;
- #else
- /* non-OS and RTOS. */
- #endif
-#endif
-
-void rtvOEM_ConfigureInterrupt(void)
-{
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2) \
- || ((defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)) \
- && !defined(RTV_FIC_POLLING_MODE))
-
- RTV_REG_SET(0x09, 0x00);
- /* [6]INT1 [5]INT0 - 1: Input mode, 0: Output mode */
- RTV_REG_SET(0x0B, 0x00);
- /* [2]INT1 PAD disable [1]INT0 PAD disable */
-
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x28, 0x01);
- /* [5:3]INT1 out sel [2:0] INI0 out sel
- - 0:Toggle 1:Level,, 2:"0", 3:"1"*/
-
- #if defined(RTV_MSC_INTR_ISTAUS_ACC_CLR_MODE)
- RTV_REG_SET(0x29, 0x08);
- /*[3] Interrupt status register clear condition
- - 0:read data by memory access 1:status register access*/
- #else
- RTV_REG_SET(0x29, 0x00);
- /*[3] Interrupt status register clear condition
- - 0:read data by memory access 1:status register access*/
- #endif
- RTV_REG_SET(0x2A, 0x13);
- /* [5]INT1 pol [4]INT0 pol
- - 0:Active High, 1:Active Low [3:0] Period = (INT_TIME+1)/8MHz*/
-#endif
-}
-
-#if defined(RTV_IF_SPI)
-unsigned char mtv_spi_read(unsigned char reg)
-{
- int ret;
- u8 out_buf[2], read_out_buf[2];
- u8 in_buf[2];
- struct spi_message msg;
- struct spi_transfer msg_xfer0 = {
- .tx_buf = out_buf,
- .len = 2,
- .cs_change = 1,
- };
-
- struct spi_transfer msg_xfer1 = {
- .tx_buf = read_out_buf,
- .rx_buf = in_buf,
- .len = 2,
- .cs_change = 0,
- };
-
- spi_message_init(&msg);
-
- out_buf[0] = RAONTV_CHIP_ADDR;
- out_buf[1] = reg;
- spi_message_add_tail(&msg_xfer0, &msg);
-
- read_out_buf[0] = RAONTV_CHIP_ADDR|0x1;
- read_out_buf[1] = 0xFF;
- spi_message_add_tail(&msg_xfer1, &msg);
-
- ret = spi_sync(tdmb_get_spi_handle(), &msg);
- if (ret) {
- printk(KERN_ERR "[mtv818_spi_read] mtv818_spi_read() error: %d\n",
- ret);
- return 0xFF;
- }
-
- /* printk(KERN_ERR
- "[mtv818_spi_read] in_buf[0]: 0x%02X, in_buf[1]: 0x%02X\n",
- in_buf[0], in_buf[1]); */
-
- return in_buf[1];
-}
-
-void mtv_spi_read_burst(unsigned char reg, unsigned char *buf, int size)
-{
- int ret;
- u8 out_buf[2], read_out_buf[2];
- struct spi_message msg;
- struct spi_transfer msg_xfer0 = {
- .tx_buf = out_buf,
- .len = 2,
- .cs_change = 1,
- };
-
- struct spi_transfer msg_xfer1 = {
- .tx_buf = read_out_buf,
- .rx_buf = buf,
- .len = size,
- .cs_change = 0,
- };
-
- spi_message_init(&msg);
- out_buf[0] = RAONTV_CHIP_ADDR;
- out_buf[1] = reg;
- spi_message_add_tail(&msg_xfer0, &msg);
-
- read_out_buf[0] = RAONTV_CHIP_ADDR|0x1;
- spi_message_add_tail(&msg_xfer1, &msg);
-
- ret = spi_sync(tdmb_get_spi_handle(), &msg);
- if (ret)
- printk(KERN_ERR "[mtv818_spi_read_burst] error: %d\n", ret);
-}
-
-void mtv_spi_write(unsigned char reg, unsigned char val)
-{
- u8 out_buf[3];
- u8 in_buf[3];
- struct spi_message msg;
- struct spi_transfer msg_xfer = {
- .len = 3,
- .cs_change = 0,
- };
- int ret;
-
- spi_message_init(&msg);
-
- out_buf[0] = 0x86;
- out_buf[1] = reg;
- out_buf[2] = val;
-
- msg_xfer.tx_buf = out_buf;
- msg_xfer.rx_buf = in_buf;
- spi_message_add_tail(&msg_xfer, &msg);
-
- ret = spi_sync(tdmb_get_spi_handle(), &msg);
- if (ret)
- printk(KERN_ERR "[mtv818_spi_write] error: %d\n", ret);
-}
-#endif
diff --git a/drivers/media/tdmb/mtv318/raontv_port.h b/drivers/media/tdmb/mtv318/raontv_port.h
deleted file mode 100644
index 85b55d9..0000000
--- a/drivers/media/tdmb/mtv318/raontv_port.h
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- *
- * File name: drivers/media/tdmb/mtv318/src/raontv_port.h
- *
- * Description : RAONTECH TV configuration header file.
- *
- * Copyright (C) (2011, RAONTECH)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __RAONTV_PORT_H__
-#define __RAONTV_PORT_H__
-
-/*==============================================================================
- * Includes the user header files if neccessry.
- *============================================================================*/
-#if defined(__KERNEL__) /* Linux kernel */
-#include <linux/io.h>
-#include <linux/kernel.h>
-#include <linux/delay.h>
-#include <linux/mm.h>
-#include <linux/mutex.h>
-
-#elif defined(WINCE)
-#include <windows.h>
-#include <drvmsg.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*##############################################################################
- #
- # COMMON configurations
- #
- #############################################################################*/
-/*==============================================================================
- * The slave address for I2C and SPI, the base address for EBI2.
- *============================================================================*/
-#define RAONTV_CHIP_ADDR 0x86
-
-/*==============================================================================
- * Modifies the basic data types if neccessry.
- *============================================================================*/
-#define BOOL int
-#define S8 s8
-#define U8 u8
-#define S16 s16
-#define U16 u16
-#define S32 s32
-#define U32 u32
-
-#define INT int
-#define UINT unsigned int
-#define LONG long
-#define ULONG unsigned long
-
-#define INLINE inline
-
-/*==============================================================================
- * Selects the TV mode(s) to target product.
- *============================================================================*/
-/*#define RTV_ISDBT_ENABLE*/
-#define RTV_TDMB_ENABLE
-/*#define RTV_FM_ENABLE*/
-/*#define RTV_DAB_ENABLE*/
-
-/*==============================================================================
- * Defines the package type of chip to target product.
- *============================================================================*/
-#define RAONTV_CHIP_PKG_WLCSP /* MTV220/318*/
-/*#define RAONTV_CHIP_PKG_QFN // MTV818*/
-/* #define RAONTV_CHIP_PKG_LGA MTV250/350 */
-/*==============================================================================
- * Defines the external source freqenecy in KHz.
- * Ex> #define RTV_SRC_CLK_FREQ_KHz 36000 // 36MHz
- *==============================================================================
- * MTV250 : #define RTV_SRC_CLK_FREQ_KHz 32000 //must be defined
- * MTV350 : #define RTV_SRC_CLK_FREQ_KHz 24576 //must be defined
- *============================================================================*/
-#define RTV_SRC_CLK_FREQ_KHz 24576
-
-/*==============================================================================
- * Define the power type.
- *============================================================================*/
-/*#define RTV_PWR_EXTERNAL*/
-#define RTV_PWR_LDO
-/* #define RTV_PWR_DCDC */
-
-/*==============================================================================
- * Defines the I/O voltage.
- *============================================================================*/
-#define RTV_IO_1_8V
-/*#define RTV_IO_2_5V*/
-/*#define RTV_IO_3_3V*/
-
-#if defined(RTV_IO_2_5V) || defined(RTV_IO_3_3V)
-#error "If VDDIO pin is connected with IO voltage,"
- " RTV_IO_1_8V must be defined,please check the HW pin connection"
-#error "If VDDIO pin is connected with GND,"
- " IO voltage must be defined same as AP IO voltage"
-#endif
-
-/*==============================================================================
- * Defines the Host interface.
- *============================================================================*/
-/*#define RTV_IF_MPEG2_SERIAL_TSIF*/ /* I2C + TSIF Master Mode. */
-/*#define RTV_IF_MPEG2_PARALLEL_TSIF*/ /* I2C + TSIF Master Mode.
- Support only 1seg &TDMB Application!*/
-/*#define RTV_IF_QUALCOMM_TSIF*/ /* I2C + TSIF Master Mode */
-#define RTV_IF_SPI /* AP: SPI Master Mode */
-/*#define RTV_IF_SPI_SLAVE*/ /* AP: SPI Slave Mode */
-/*#define RTV_IF_EBI2*/ /* External Bus Interface Slave Mode */
-
-/*==============================================================================
- * Defines the clear mode of interrupts for EBI/SPI in Individual mode .
- *============================================================================*/
-#define RTV_MSC_INTR_ISTAUS_ACC_CLR_MODE /* for Nested ISR and TSIF. */
-/* #define RTV_MSC_INTR_MEM_ACC_CLR_MODE */ /* for NOT nested ISR.*/
-
-/*==============================================================================
- * Defines the delay macro in milliseconds.
- *============================================================================*/
-#if defined(__KERNEL__)/* Linux kernel */
-#define RTV_DELAY_MS(ms) mdelay(ms)
-
-#elif defined(WINCE)
-#define RTV_DELAY_MS(ms) Sleep(ms)
-
-#else
-extern void mtv818_delay_ms(int ms);
-#define RTV_DELAY_MS(ms) mtv818_delay_ms(ms) /* TODO */
-#endif
-
-/*==============================================================================
- * Defines the debug message macro.
- *============================================================================*/
-#if 1
-#define RTV_DBGMSG0(fmt) printk(fmt)
-#define RTV_DBGMSG1(fmt, arg1) printk(fmt, arg1)
-#define RTV_DBGMSG2(fmt, arg1, arg2) printk(fmt, arg1, arg2)
-#define RTV_DBGMSG3(fmt, arg1, arg2, arg3) printk(fmt, arg1, arg2, arg3)
-#else
-/* To eliminates the debug messages. */
-#define RTV_DBGMSG0(fmt) ((void)0)
-#define RTV_DBGMSG1(fmt, arg1) ((void)0)
-#define RTV_DBGMSG2(fmt, arg1, arg2) ((void)0)
-#define RTV_DBGMSG3(fmt, arg1, arg2, arg3) ((void)0)
-#endif
-/*#### End of Common ###########*/
-
-/*##############################################################################
- #
- # ISDB-T specific configurations
- #
- #############################################################################*/
-/*==============================================================================
- * Defines the NOTCH FILTER setting Enable.
- * In order to reject GSM/CDMA blocker, NOTCH FILTER must be defined.
- * This feature used for module company in the JAPAN.
- *============================================================================*/
-/*
-//#if defined(RTV_ISDBT_ENABLE) //Do not use
-// #ifdef RAONTV_CHIP_PKG_WLCSP
-// #define RTV_NOTCH_FILTER_ENABLE
-// #endif
-//#endif
-*/
-/*##############################################################################
- #
- # T-DMB/DAB specific configurations
- #
- #############################################################################*/
-#if defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)
-#define RTV_FIC_POLLING_MODE
-
-/* Defines the maximum number of Sub Channel to be open simultaneously. */
-#define RTV_MAX_NUM_SUB_CHANNEL_USED 1
-
-/* Defines CIF or Individual Mode for T-DMB/DAB BY RAONTECH. */
-/*#define RTV_CIF_MODE_ENABLED*/
-/*#define RTV_CIF_HEADER_INSERTED*/
-/* Select the copying method of CIF decoded data(FIC and MSC)
- which copy_to_user() or memcpy() to fast operation for LINUX Kernel. */
-/*#define RTV_CIF_LINUX_USER_SPACE_COPY_USED*/
-#endif /* #if defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE) */
-
-/*##############################################################################
- #
- # FM specific configurations
- #
- #############################################################################*/
-#define RTV_FM_CH_MIN_FREQ_KHz 76000
-#define RTV_FM_CH_MAX_FREQ_KHz 108000
-#define RTV_FM_CH_STEP_FREQ_KHz 100 /* in KHz */
-/*##############################################################################
- #
- # Host Interface specific configurations
- #
- #############################################################################*/
-#if defined(RTV_IF_MPEG2_SERIAL_TSIF) || defined(RTV_IF_QUALCOMM_TSIF) \
- || defined(RTV_IF_MPEG2_PARALLEL_TSIF)
-#define RTV_IF_TSIF
-#endif
-
-#if defined(RTV_IF_MPEG2_SERIAL_TSIF) || defined(RTV_IF_QUALCOMM_TSIF)
- #define RTV_IF_SERIAL_TSIF
-#endif
-
-
-#if defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)
-/*==============================================================================
- * Defines the TSIF interface for MPEG2 or QUALCOMM TSIF.
- *============================================================================*/
-/*#define RTV_TSIF_FORMAT_1*/
-/*#define RTV_TSIF_FORMAT_2*/
-#define RTV_TSIF_FORMAT_3
-/*#define RTV_TSIF_FORMAT_4*/
-/*#define RTV_TSIF_FORMAT_5*/
-
-/*#define RTV_TSIF_CLK_SPEED_DIV_2 // Host Clk/2*/
-#define RTV_TSIF_CLK_SPEED_DIV_4 /* Host Clk/4 */
-/*#define RTV_TSIF_CLK_SPEED_DIV_6 // Host Clk/6*/
-/*#define RTV_TSIF_CLK_SPEED_DIV_8 // Host Clk/8*/
-
-/*==========================================================================
- * Defines the register I/O macros.
- *========================================================================*/
-unsigned char mtv818_i2c_read(U8 reg);
-void mtv818_i2c_read_burst(U8 reg, U8 *buf, int size);
-void mtv818_i2c_write(U8 reg, U8 val);
-#define RTV_REG_GET(reg) \
- mtv818_i2c_read((U8)(reg))
-#define RTV_REG_BURST_GET(reg, buf, size) \
- mtv818_i2c_read_burst((U8)(reg), buf, size)
-#define RTV_REG_SET(reg, val) \
- mtv818_i2c_write((U8)(reg), (U8)(val))
-#define RTV_REG_MASK_SET(reg, mask, val)\
-do { \
- U8 tmp; \
- tmp = (RTV_REG_GET(reg)|(U8)(mask)) & (U8)((~(mask))|(val)); \
- RTV_REG_SET(reg, tmp); \
-} while (0)
-
-#elif defined(RTV_IF_SPI)
-/*=========================================================================
- * Defines the register I/O macros.
- *========================================================================*/
-unsigned char mtv_spi_read(unsigned char reg);
-void mtv_spi_read_burst(unsigned char reg, unsigned char *buf, int size);
-void mtv_spi_write(unsigned char reg, unsigned char val);
-
-#define RTV_REG_GET(reg) \
- (U8)mtv_spi_read((U8)(reg))
-#define RTV_REG_BURST_GET(reg, buf, size) \
- mtv_spi_read_burst((U8)(reg), buf, size)
-#define RTV_REG_SET(reg, val) \
- mtv_spi_write((U8)(reg), (U8)(val))
-#define RTV_REG_MASK_SET(reg, mask, val) \
-do { \
- U8 tmp; \
- tmp = (RTV_REG_GET(reg)|(U8)(mask)) & (U8)((~(mask))|(val)); \
- RTV_REG_SET(reg, tmp); \
-} while (0)
-
-
-
-#else
-#error "Must define the interface definition !"
-#endif
-
-#if defined(RTV_IF_SPI) \
- || ((defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)) \
- && !defined(RTV_FIC_POLLING_MODE))
-#if defined(__KERNEL__)
-extern struct mutex raontv_guard;
-#define RTV_GUARD_INIT mutex_init(&raontv_guard)
-#define RTV_GUARD_LOCK mutex_lock(&raontv_guard)
-#define RTV_GUARD_FREE mutex_unlock(&raontv_guard)
-#define RTV_GUARD_DEINIT ((void)0)
-
-#elif defined(WINCE)
-extern CRITICAL_SECTION raontv_guard;
-#define RTV_GUARD_INIT InitializeCriticalSection(&raontv_guard)
-#define RTV_GUARD_LOCK EnterCriticalSection(&raontv_guard)
-#define RTV_GUARD_FREE LeaveCriticalSection(&raontv_guard)
-#define RTV_GUARD_DEINIT DeleteCriticalSection(&raontv_guard)
-#else
-/* temp: TODO */
-#define RTV_GUARD_INIT ((void)0)
-#define RTV_GUARD_LOCK ((void)0)
-#define RTV_GUARD_FREE ((void)0)
-#define RTV_GUARD_DEINIT ((void)0)
-#endif
-
-#else
-#define RTV_GUARD_INIT ((void)0)
-#define RTV_GUARD_LOCK ((void)0)
-#define RTV_GUARD_FREE ((void)0)
-#define RTV_GUARD_DEINIT ((void)0)
-#endif
-
-#if defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)\
-|| defined(__KERNEL__) || defined(WINCE)
- #ifdef RTV_MSC_INTR_MEM_ACC_CLR_MODE
- #undef RTV_MSC_INTR_MEM_ACC_CLR_MODE
- #endif
-
- #ifndef RTV_MSC_INTR_ISTAUS_ACC_CLR_MODE
- #define RTV_MSC_INTR_ISTAUS_ACC_CLR_MODE
- #endif
-#endif
-
-
-/*==============================================================================
- * Check erros
- *============================================================================*/
-#if !defined(RAONTV_CHIP_PKG_WLCSP) \
- && !defined(RAONTV_CHIP_PKG_QFN) \
- && !defined(RAONTV_CHIP_PKG_LGA)
-#error "Must define the package type !"
-#endif
-
-#if !defined(RTV_PWR_EXTERNAL) \
- && !defined(RTV_PWR_LDO) \
- && !defined(RTV_PWR_DCDC)
-#error "Must define the power type !"
-#endif
-
-#if !defined(RTV_IO_1_8V) \
- && !defined(RTV_IO_2_5V) \
- && !defined(RTV_IO_3_3V)
-#error "Must define I/O voltage!"
-#endif
-
-#if defined(RTV_IF_MPEG2_SERIAL_TSIF) \
- || defined(RTV_IF_SPI_SLAVE) \
- || defined(RTV_IF_MPEG2_PARALLEL_TSIF) \
- || defined(RTV_IF_QUALCOMM_TSIF) \
- || defined(RTV_IF_SPI)
-#if (RAONTV_CHIP_ADDR >= 0xFF)
-#error "Invalid chip address"
-#endif
-#elif defined(RTV_IF_EBI2)
-#if (RAONTV_CHIP_ADDR <= 0xFF)
-#error "Invalid chip address"
-#endif
-
-#else
-#error "Must define the interface definition !"
-#endif
-
-#if defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)
-#ifndef RTV_MAX_NUM_SUB_CHANNEL_USED
-#error "Should be define!"
-#endif
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED < 0) || (RTV_MAX_NUM_SUB_CHANNEL_USED > 5)
-#error "Must from 1 to 5"
-#endif
-#else
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED < 0) || (RTV_MAX_NUM_SUB_CHANNEL_USED > 4)
-#error "Must from 1 to 4"
-#endif
-#endif
-#else
-#ifdef RTV_MAX_NUM_SUB_CHANNEL_USED
-#undef RTV_MAX_NUM_SUB_CHANNEL_USED
-#define RTV_MAX_NUM_SUB_CHANNEL_USED 1 /* To not make error. */
-#else
-#define RTV_MAX_NUM_SUB_CHANNEL_USED 1
-#endif
-#endif
-
-#ifdef RTV_IF_MPEG2_PARALLEL_TSIF
-#if defined(RTV_FM_ENABLE) \
- || defined(RTV_DAB_ENABLE) \
- || defined(RAONTV_CHIP_PKG_WLCSP) \
- || defined(RAONTV_CHIP_PKG_LGA)
-#error "Not support parallel TSIF!"
-#endif
-
-#if defined(RTV_TDMB_ENABLE) && (RTV_MAX_NUM_SUB_CHANNEL_USED > 1)
-#error "Not support T-DMB multi sub channel mode!"
-#endif
-
-#if defined(RTV_DAB_ENABLE) && (RTV_MAX_NUM_SUB_CHANNEL_USED > 1)
-#error "Not support DAB multi sub channel mode!"
-#endif
-#endif
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
-#if !defined(RTV_MSC_INTR_MEM_ACC_CLR_MODE) \
- && !defined(RTV_MSC_INTR_ISTAUS_ACC_CLR_MODE)
-#error " Should selects an interrupt clear mode"
-#endif
-
-#if defined(RTV_MSC_INTR_MEM_ACC_CLR_MODE) \
- && defined(RTV_MSC_INTR_ISTAUS_ACC_CLR_MODE)
-#error " Should selects an interrupt clear mode"
-#endif
-#endif
-
-#if defined(RTV_DAB_ENABLE) && defined(RTV_TDMB_ENABLE)
-#error "Should select RTV_DAB_ENABLE(B3, L-BAND, B3-Korea) "
- "or RTV_TDMB_ENABLE(B3-Korea)"
-#endif
-
-#if defined(RTV_CIF_HEADER_INSERTED) && !defined(RTV_CIF_MODE_ENABLED)
-#error "Should defines RTV_CIF_MODE_ENABLED"
-#endif
-
-void rtvOEM_ConfigureInterrupt(void);
-void rtvOEM_PowerOn(int on);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __RAONTV_PORT_H__ */
-
diff --git a/drivers/media/tdmb/mtv318/raontv_rf.c b/drivers/media/tdmb/mtv318/raontv_rf.c
deleted file mode 100644
index d4e436a..0000000
--- a/drivers/media/tdmb/mtv318/raontv_rf.c
+++ /dev/null
@@ -1,1532 +0,0 @@
-/*
- *
- * File name: drivers/media/tdmb/mtv318/src/raontv_rf.c
- *
- * Description : RAONTECH TV RF services source driver.
- *
- * Copyright (C) (2011, RAONTECH)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include "raontv_rf.h"
-
-#if defined(RTV_ISDBT_ENABLE)
-#include "raontv_rf_pll_data_isdbt.h"
-#endif
-
-#if defined(RTV_TDMB_ENABLE)
-#include "raontv_rf_pll_data_tdmb.h"
-#endif
-
-#if defined(RTV_FM_ENABLE)
-#include "raontv_rf_pll_data_fm.h"
-#endif
-
-#if defined(RTV_DAB_ENABLE)
-#include "raontv_rf_pll_data_dab.h"
-#include "raontv_rf_pll_data_tdmb.h"
-#endif
-
-#include "raontv_rf_adc_data.h"
-
-#ifdef RTV_ISDBT_ENABLE
-
-static const RTV_REG_INIT_INFO t_ISDBT_INIT[] = {
- { 0x27, 0x6a},
- { 0x2a, 0x07},
- { 0x2B, 0x88},
- { 0x2d, 0xec},
- { 0x2e, 0xb0},
- { 0x31, 0x04},
- { 0x34, 0xc0},
- { 0x3a, 0x77},
- { 0x3b, 0xff},
- { 0x3c, 0x79},
- { 0x3e, 0x67},
- { 0x3f, 0x00},
- { 0x42, 0x14},
- { 0x44, 0x40},
- { 0x47, 0xc0},
- { 0x49, 0x4f},
- { 0x4a, 0x10},
- { 0x4b, 0x80},
- { 0x53, 0x20},
- { 0x55, 0xfc},
- { 0x57, 0x10},
- { 0x5a, 0x83},
- { 0x60, 0x13},
- { 0x6b, 0x85},
-#if defined(RAONTV_CHIP_PKG_QFN)
- { 0x6c, 0x8d},
- { 0x6d, 0x7d},
-
-#elif defined(RAONTV_CHIP_PKG_WLCSP)
- { 0x6c, 0x80},
- { 0x6d, 0x70},
-
-#elif defined(RAONTV_CHIP_PKG_LGA)
- { 0x6c, 0x80},
- { 0x6d, 0x70},
-#else
-#error "Code not present"
-#endif
- { 0x72, 0xb0},
- { 0x73, 0xca},
- { 0x77, 0x89},
- { 0x84, 0x87},
- { 0x85, 0x95},
- { 0x86, 0x42},
- { 0x87, 0x60},
- { 0x8a, 0xf6},
- { 0x8b, 0x89},
- { 0x8c, 0x78},
- { 0x90, 0x07},
- { 0x93, 0x2F},
- { 0xb5, 0x1b},
- { 0xae, 0x37},
- { 0xc0, 0x31},
- { 0xc1, 0xe8},
- { 0xc3, 0xa2},
- { 0xc4, 0xac},
- { 0xc6, 0xeb},
- { 0xca, 0x38},
- { 0xcb, 0x8c},
- { 0xcd, 0xa1},
- { 0xce, 0xfc},
- { 0xd0, 0x3f},
- { 0xd4, 0x13},
- { 0xd5, 0xf9},
- { 0xd7, 0xa6},
- { 0xd8, 0xac},
- { 0xd9, 0x16},
- { 0xda, 0x79},
- { 0xde, 0x37},
- { 0xdf, 0x3d},
- { 0xe1, 0xa0},
- { 0xe2, 0x0c},
- { 0xe4, 0x3a},
- { 0xa5, 0x00},
- { 0xe9, 0xc1},
- /*CKO_D24_EN = 0, CK_16M clock, SET_IIR clock disable*/
- { 0xae, 0x77},
- { 0xe9, 0xd1}
- /*CKO_D24_EN = 1, CK_16M clock, SET_IIR clock enable*/
-};
-#endif /* RTV_ISDBT_ENABLE */
-
-#ifdef RTV_FM_ENABLE
-static const RTV_REG_INIT_INFO t_FM_INIT[] = {
- { 0x27, 0xc2},
- { 0x2B, 0x88},
- { 0x2d, 0xec},
- { 0x2e, 0xb0},
- { 0x31, 0x04},
- { 0x34, 0xf8},
- { 0x3a, 0x55},
- { 0x3b, 0x73},
- { 0x3c, 0x00},
- { 0x3e, 0x00},
- { 0x3f, 0x00},
- { 0x40, 0x10},
- { 0x42, 0x40},
- { 0x44, 0x64},
- { 0x47, 0xb1},
- { 0x4b, 0x80},
- { 0x53, 0x20},
- { 0x55, 0xd6},
- { 0x5a, 0x83},
- { 0x57, 0x10},
- { 0x60, 0x11},
- { 0x6b, 0xc5},
- { 0x72, 0xf0},
- { 0x73, 0xc8},
- { 0x74, 0x70},
- { 0x77, 0x80},
- { 0x78, 0x47},
- { 0x86, 0x80},
- { 0x87, 0x98},
- { 0x8a, 0xf6},
- { 0x8b, 0x80},
- { 0x8c, 0x74},
- { 0xaf, 0x01},
- { 0xb5, 0x5b},
- { 0xae, 0x37},
- { 0xbd, 0x3f},
- { 0xbe, 0x37},
- { 0xbf, 0x3c},
- { 0xc0, 0x3f},
- { 0xc1, 0x39},
- { 0xc3, 0xdb},
- { 0xc4, 0x3c},
- { 0xc5, 0x1e},
- { 0xc6, 0x6c},
- { 0xc8, 0x7b},
- { 0xc9, 0xec},
- { 0xca, 0x39},
- { 0xcb, 0x03},
- { 0xcd, 0xb4},
- { 0xce, 0xec},
- { 0xcf, 0x1d},
- { 0xd0, 0xa6},
- { 0xd1, 0x41},
- { 0xd2, 0x16},
- { 0xd3, 0xec},
- { 0xd4, 0x3f},
- { 0xd5, 0xc3},
- { 0xd7, 0xbd},
- { 0xd8, 0xbc},
- { 0xd9, 0x1b},
- { 0xda, 0x4b},
- { 0xdb, 0x3b},
- { 0xdc, 0x55},
- { 0xdd, 0xdc},
- { 0xde, 0x1a},
- { 0xdf, 0xed},
- { 0xe1, 0xa7},
- { 0xe2, 0xcc},
- { 0xe3, 0x1a},
- { 0xe4, 0x55},
- { 0xe5, 0x43},
- { 0xe6, 0x00},
- { 0xe7, 0x0f},
- { 0xa5, 0x00},
- { 0xe9, 0x41},
- { 0xae, 0x77},
- { 0xe9, 0x51}
-};
-#endif /* RTV_FM_ENABLE */
-
-#ifdef RTV_DAB_ENABLE
-static const RTV_REG_INIT_INFO t_DAB_INIT[] = {
- { 0x27, 0x96},
- { 0x2B, 0x88},
- { 0x2d, 0xec},
- { 0x2e, 0xb0},
- { 0x31, 0x04},
- { 0x34, 0xf8},
- { 0x35, 0x14},
- { 0x3a, 0x62},
- { 0x3b, 0x74},
- { 0x3c, 0xa8},
- { 0x43, 0x36},
- { 0x44, 0x70},
- { 0x46, 0x07},
- { 0x49, 0x1f},
- { 0x4a, 0x50},
- { 0x4b, 0x80},
- { 0x53, 0x20},
- { 0x55, 0xd6},
- { 0x5a, 0x83},
- { 0x60, 0x13},
- { 0x6b, 0x85},
- { 0x6e, 0x88},
- { 0x6f, 0x78},
- { 0x72, 0xf0},
- { 0x73, 0xca},
- { 0x77, 0x80},
- { 0x78, 0x47},
- { 0x84, 0x80},
- { 0x85, 0x90},
- { 0x86, 0x80},
- { 0x87, 0x98},
- { 0x8a, 0xf6},
- { 0x8b, 0x80},
- { 0x8c, 0x75},
- { 0x8f, 0xf9},
- { 0x90, 0x91},
- { 0x93, 0x2d},
- { 0x94, 0x23},
- { 0x99, 0x77},
- { 0x9a, 0x2d},
- { 0x9b, 0x1e},
- { 0x9c, 0x47},
- { 0x9d, 0x3a},
- { 0x9e, 0x03},
- { 0x9f, 0x1e},
- { 0xa0, 0x22},
- { 0xa1, 0x33},
- { 0xa2, 0x51},
- { 0xa3, 0x36},
- { 0xa4, 0x0c},
- { 0xae, 0x37},
- { 0xb5, 0x9b},
- { 0xbd, 0x45},
- { 0xbe, 0x68},
- { 0xbf, 0x5c},
- { 0xc0, 0x33},
- { 0xc1, 0xca},
- { 0xc2, 0x43},
- { 0xc3, 0x90},
- { 0xc4, 0xec},
- { 0xc5, 0x17},
- { 0xc6, 0xda},
- { 0xc7, 0x41},
- { 0xc8, 0x49},
- { 0xc9, 0xbc},
- { 0xca, 0x3a},
- { 0xcb, 0x20},
- { 0xcc, 0x43},
- { 0xcd, 0xa6},
- { 0xce, 0x4c},
- { 0xcf, 0x1f},
- { 0xd0, 0x8d},
- { 0xd1, 0x3d},
- { 0xd2, 0xdf},
- { 0xd3, 0xa4},
- { 0xd4, 0x30},
- { 0xd5, 0x00},
- { 0xd6, 0x41},
- { 0xd7, 0x81},
- { 0xd8, 0xd0},
- { 0xd9, 0x00},
- { 0xda, 0x00},
- { 0xdb, 0x41},
- { 0xdc, 0x6d},
- { 0xdd, 0xac},
- { 0xde, 0x39},
- { 0xdf, 0x4e},
- { 0xe0, 0x43},
- { 0xe1, 0xa0},
- { 0xe2, 0x4c},
- { 0xe3, 0x1d},
- { 0xe4, 0x99},
- { 0xe5, 0x3b},
- { 0xe6, 0x00},
- { 0xe7, 0x0d},
- { 0xa5, 0x00},
- { 0xe9, 0x41},
- { 0xae, 0x77},
- { 0xe9, 0x51}
-};
-
-static const RTV_REG_INIT_INFO t_BAND3_INIT[] = {
- { 0x27, 0x96},
- { 0x34, 0xf8},
- { 0x3b, 0x74},
- { 0x43, 0x36},
- { 0x44, 0x70},
- { 0x46, 0x07},
- { 0x49, 0x1f},
- { 0x4a, 0x50},
- { 0x55, 0xd6},
- { 0x60, 0x13},
- { 0x6e, 0x88},
- { 0x6f, 0x78},
- { 0x84, 0x80},
- { 0x85, 0x90},
- { 0x86, 0x80},
- { 0x87, 0x98},
- { 0x8b, 0x80},
- { 0x8c, 0x75},
- { 0x8f, 0xf9},
- { 0x90, 0x91},
- { 0x93, 0x2d},
- { 0x94, 0x23}
-};
-
-static const RTV_REG_INIT_INFO t_LBAND_INIT[] = {
- { 0x27, 0x3e},
- { 0x34, 0x70},
- { 0x3b, 0xf7},
- { 0x43, 0x34},
- { 0x44, 0x00},
- { 0x46, 0x03},
- { 0x49, 0xbf},
- { 0x4a, 0x18},
- { 0x55, 0xfa},
- { 0x60, 0x43},
- { 0x6e, 0x80},
- { 0x6f, 0x70},
- { 0x84, 0x70},
- { 0x85, 0x98},
- { 0x86, 0x70},
- { 0x87, 0x88},
- { 0x8b, 0x86},
- { 0x8c, 0x7a},
- { 0x8f, 0xfa},
- { 0x90, 0x05},
- { 0x93, 0x2f},
- { 0x94, 0x26}
-
-};
-
-static const RTV_REG_INIT_INFO t_DAB_TDMB_INIT[] = {
-
- { 0x27, 0x96},
- { 0x34, 0xf8},
- { 0x3a, 0x62},
- { 0x3b, 0x74},
- { 0x3c, 0x81},
- { 0x3d, 0x48},
- { 0x43, 0x36},
- { 0x44, 0x70},
- { 0x46, 0x07},
- { 0x49, 0x1f},
- { 0x4a, 0x50},
- { 0x55, 0xd6},
- { 0x60, 0x13},
- { 0x6e, 0x88},
- { 0x6f, 0x78},
- { 0x84, 0x80},
- { 0x85, 0x90},
- { 0x86, 0x80},
- { 0x87, 0x98},
- { 0x8b, 0x80},
- { 0x8c, 0x75},
- { 0x8f, 0xf9},
- { 0x90, 0x91},
- { 0x93, 0x2d},
- { 0x94, 0x23}
-
-};
-#endif /* RTV_DAB_ENABLE */
-
-#ifdef RTV_TDMB_ENABLE
-static const struct RTV_REG_INIT_INFO t_TDMB_INIT[] = {
- { 0x2B, 0x88 },
- { 0x2d, 0xec },
- { 0x2e, 0xb0 },
- { 0x31, 0x04 },
- { 0x34, 0xf8 },
- { 0x3a, 0x62 },
- { 0x3b, 0x74 },
- { 0x3c, 0x81 },
- { 0x3d, 0x48 },
- { 0x4b, 0x80 },
- { 0x53, 0x20 },
- { 0x55, 0xd6 },
- { 0x5a, 0x83 },
- { 0x60, 0x13 },
- { 0x6b, 0x85 },
- { 0x72, 0xf0 },
- { 0x73, 0xca },
- { 0x77, 0x80 },
- { 0x78, 0x47 },
- { 0x85, 0x90 },
- { 0x86, 0x80 },
- { 0x87, 0x98 },
- { 0x8a, 0xf6 },
- { 0x8b, 0x80 },
- { 0x8c, 0x75 },
- { 0x8f, 0xf9 },
- { 0x90, 0x91 },
- { 0x94, 0x23 },
- { 0x99, 0x77 },
- { 0x9a, 0x2d },
- { 0x9b, 0x1e },
- { 0x9c, 0x47 },
- { 0x9d, 0x3a },
- { 0x9e, 0x03 },
- { 0x9f, 0x1e },
- { 0xa0, 0x22 },
- { 0xa1, 0x33 },
- { 0xa2, 0x51 },
- { 0xa3, 0x36 },
- { 0xa4, 0x0c },
- { 0xae, 0x37 },
- { 0xb5, 0x9b },
- { 0xbd, 0x45 },
- { 0xbe, 0x68 },
- { 0xbf, 0x5c },
- { 0xc0, 0x33 },
- { 0xc1, 0xca },
- { 0xc2, 0x43 },
- { 0xc3, 0x90 },
- { 0xc4, 0xec },
- { 0xc5, 0x17 },
- { 0xc6, 0xda },
- { 0xc7, 0x41 },
- { 0xc8, 0x49 },
- { 0xc9, 0xbc },
- { 0xca, 0x3a },
- { 0xcb, 0x20 },
- { 0xcc, 0x43 },
- { 0xcd, 0xa6 },
- { 0xce, 0x4c },
- { 0xcf, 0x1f },
- { 0xd0, 0x8d },
- { 0xd1, 0x3d },
- { 0xd2, 0xdf },
- { 0xd3, 0xa4 },
- { 0xd4, 0x30 },
- { 0xd5, 0x00 },
- { 0xd6, 0x41 },
- { 0xd7, 0x81 },
- { 0xd8, 0xd0 },
- { 0xd9, 0x00 },
- { 0xda, 0x00 },
- { 0xdb, 0x41 },
- { 0xdc, 0x6d },
- { 0xdd, 0xac },
- { 0xde, 0x39 },
- { 0xdf, 0x4e },
- { 0xe0, 0x43 },
- { 0xe1, 0xa0 },
- { 0xe2, 0x4c },
- { 0xe3, 0x1d },
- { 0xe4, 0x99 },
- { 0xe5, 0x3b },
- { 0xe6, 0x00 },
- { 0xe7, 0x0d },
- { 0xa5, 0x00 },
- { 0xe9, 0x41 },
- { 0xae, 0x77 },
- { 0xe9, 0x51 } };
-#endif /* RTV_TDMB_ENABLE */
-
-/*==============================================================================
- * rtvRF_ConfigurePowerType
- *
- * DESCRIPTION :
- * This function returns
- *
- *
- * ARGUMENTS : none.
- * RETURN VALUE : none.
- *============================================================================*/
-void rtvRF_ConfigurePowerType(enum E_RTV_TV_MODE_TYPE eTvMode)
-{
-#if defined(RTV_IO_2_5V)
- U8 io_type = 0;
-#elif defined(RTV_IO_3_3V)
- U8 io_type = 1;
-#elif defined(RTV_IO_1_8V)
- U8 io_type = 2;
-#else
-#error "Code not present"
-#endif
- U8 REG2F = 0x61; /*DCDC_OUTSEL = 0x03,*/
- U8 REG30 = 0xF2 & 0xF0; /*IOLDOCON__REG*/
- U8 REG52 = 0x07; /*LDODIG_HT = 0x07;*/
- U8 REG54 = 0x0C;
-
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
- REG54 = 0x1C;
- break;
-#endif
-
-#ifdef RTV_FM_ENABLE
- case RTV_TV_MODE_FM:
- REG54 = 0x1C;
- break;
-#endif
-
-#ifdef RTV_TDMB_ENABLE
- case RTV_TV_MODE_TDMB:
- REG54 = 0x1C;
- break;
-#endif
-
-#ifdef RTV_DAB_ENABLE
- case RTV_TV_MODE_DAB_B3:
- case RTV_TV_MODE_DAB_L:
- case RTV_TV_MODE_TDMB:
- REG54 = 0x1C;
- break;
-#endif
- default:
- return;
- }
-
- REG30 = REG30 | (io_type << 1); /*IO Type Select.*/
-
-#if defined(RTV_PWR_EXTERNAL)
- REG2F = REG2F | 0x14; /*PDDCDC_I2C = 1, PDLDO12_I2C = 1 ;*/
-#elif defined(RTV_PWR_LDO)
- REG2F = REG2F | 0x10; /*PDDCDC_I2C = 1, PDLDO12_I2C = 0 ;*/
-#elif defined(RTV_PWR_DCDC)
- REG2F = REG2F | 0x04; /*PDDCDC_I2C = 0, PDLDO12_I2C = 1 ;*/
-#else
-#error "Code not present"
-#endif
-
- /* Below Power Up sequence is very important.*/
- RTV_REG_MAP_SEL(RF_PAGE);
- RTV_REG_SET(0x54, REG54);
- RTV_REG_SET(0x52, REG52);
- RTV_REG_SET(0x30, REG30);
- RTV_REG_SET(0x2F, REG2F);
-}
-
-#define REGE8 (0x46 & 0xC0)
-#define REGEA (0x07 & 0xC0)
-#define REGEB (0x27 & 0xC0)
-#define REGEC (0x1E & 0xC0)
-#define REGED (0x18 & 0x00)
-#define REGEE (0xB8 & 0x00)
-
-INT rtvRF_ConfigureAdcClock(
- enum E_RTV_TV_MODE_TYPE eTvMode,
- enum E_RTV_ADC_CLK_FREQ_TYPE eAdcClkFreqType)
-{
- U8 REGE9, RD15;
- INT i;
- const U8 *pbAdcClkSynTbl =
- (const U8 *) &g_abAdcClkSynTbl[eAdcClkFreqType];
-
- if (pbAdcClkSynTbl[0] == 0xFF) {
- RTV_DBGMSG1("[rtvRF_ConfigureAdcClock] "
- "Unsupport ADC clock type: %d\n", eAdcClkFreqType);
- return RTV_UNSUPPORT_ADC_CLK;
- }
-
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
- REGE9 = (0xD4 & 0xF0);
- break;
-#endif
-
-#ifdef RTV_FM_ENABLE
- case RTV_TV_MODE_FM:
- REGE9 = (0x54 & 0xF0);
- break;
-#endif
-
-#ifdef RTV_TDMB_ENABLE
- case RTV_TV_MODE_TDMB:
- REGE9 = (0x54 & 0xF0);
- break;
-#endif
-
-#ifdef RTV_DAB_ENABLE
- case RTV_TV_MODE_DAB_B3:
- case RTV_TV_MODE_TDMB:
- case RTV_TV_MODE_DAB_L:
- REGE9 = (0x54 & 0xF0);
- break;
-#endif
- default:
- return RTV_INVAILD_TV_MODE;
- }
-
- RTV_REG_MAP_SEL(RF_PAGE);
- RTV_REG_SET(0xE8, (REGE8 | pbAdcClkSynTbl[0]));
- RTV_REG_SET(0xE9, (REGE9 | pbAdcClkSynTbl[1]));
- RTV_REG_SET(0xEA, (REGEA | pbAdcClkSynTbl[2]));
- RTV_REG_SET(0xEB, (REGEB | pbAdcClkSynTbl[3]));
- RTV_REG_SET(0xEC, (REGEC | pbAdcClkSynTbl[4]));
- RTV_REG_SET(0xED, (REGED | pbAdcClkSynTbl[5]));
- RTV_REG_SET(0xEE, (REGEE | pbAdcClkSynTbl[6]));
-
- for (i = 0; i < 10; i++) {
- RD15 = RTV_REG_GET(0x15) & 0x01;
- if (RD15) {
- break;
- } else {
- RTV_DBGMSG0("[rtvRF_ConfigureAdcClock] "
- "CLOCK SYNTH 1st step UnLock..\n");
- }
- RTV_DELAY_MS(1);
- }
-
- if (i == 10) {
- RTV_DBGMSG0("[rtvRF_ConfigureAdcClock] "
- "ADC clock unlocked!Check the power supply.\n");
- return RTV_ADC_CLK_UNLOCKED;
- }
-
-#ifdef RTV_ISDBT_ENABLE
- if (eTvMode == RTV_TV_MODE_1SEG) {
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x1A, 0x8B);
- RTV_REG_SET(0x18, 0xC0);
- RTV_REG_SET(0x19, 0x03);
- RTV_REG_SET(0x07, 0xF0);
- }
-#endif
-
- /* Save the ADC clock type.*/
- g_eRtvAdcClkFreqType = eAdcClkFreqType;
-
- /*RTV_DBGMSG1("[rtvRF_ConfigureAdcClock] "
- "ADC clk Type: %d\n", g_eRtvAdcClkFreqType[RaonTvChipIdx]);*/
-
- return RTV_SUCCESS;
-}
-
-INT rtvRF_ChangeAdcClock(
- enum E_RTV_TV_MODE_TYPE eTvMode,
- enum E_RTV_ADC_CLK_FREQ_TYPE eAdcClkFreqType)
-{
- U8 REGE9, RD15;
-#ifdef RTV_PWR_DCDC
- U8 RD2F;
-#endif
- INT i;
- const U8 *pbAdcClkSynTbl =
- (const U8 *) &g_abAdcClkSynTbl[eAdcClkFreqType];
-
- if (eAdcClkFreqType == g_eRtvAdcClkFreqType)
- return RTV_SUCCESS;
-
- if (pbAdcClkSynTbl[0] == 0xFF) {
- RTV_DBGMSG1("[rtvRF_ChangeAdcClock] "
- "Unsupport ADC clock type: %d\n", eAdcClkFreqType);
- return RTV_UNSUPPORT_ADC_CLK;
- }
-
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
- REGE9 = (0xD4 & 0xF0);
- break;
-#endif
-
-#ifdef RTV_FM_ENABLE
- case RTV_TV_MODE_FM:
- REGE9 = (0x54 & 0xF0);
- break;
-#endif
-
-#ifdef RTV_TDMB_ENABLE
- case RTV_TV_MODE_TDMB:
- REGE9 = (0x54 & 0xF0);
- break;
-#endif
-
-#ifdef RTV_DAB_ENABLE
- case RTV_TV_MODE_DAB_B3:
- case RTV_TV_MODE_DAB_L:
- case RTV_TV_MODE_TDMB:
- REGE9 = (0x54 & 0xF0);
- break;
-#endif
- default:
- return RTV_INVAILD_TV_MODE;
- }
-
- RTV_REG_MAP_SEL(RF_PAGE);
-
-#ifdef RTV_PWR_DCDC
- RD2F = RTV_REG_GET(0x2F);
- RTV_REG_SET(0x2F, (RD2F & 0xF7));
-#endif
-
- RTV_REG_SET(0xE8, (REGE8 | pbAdcClkSynTbl[0]));
- RTV_REG_SET(0xE9, (REGE9 | pbAdcClkSynTbl[1]));
- RTV_REG_SET(0xEA, (REGEA | pbAdcClkSynTbl[2]));
- RTV_REG_SET(0xEB, (REGEB | pbAdcClkSynTbl[3]));
- RTV_REG_SET(0xEC, (REGEC | pbAdcClkSynTbl[4]));
- RTV_REG_SET(0xED, (REGED | pbAdcClkSynTbl[5]));
- RTV_REG_SET(0xEE, (REGEE | pbAdcClkSynTbl[6]));
-
- for (i = 0; i < 10; i++) {
- RD15 = RTV_REG_GET(0x15) & 0x01;
- if (RD15) {
- break;
- } else {
- RTV_DBGMSG0("[rtvRF_ChangeAdcClock] "
- "CLOCK SYNTH 1st step UnLock..\n");
- }
- RTV_DELAY_MS(1);
- }
-
- if (i == 10) {
- RTV_DBGMSG0("[rtvRF_ChangeAdcClock] "
- "ADC clock unlocked!Check the power supply.\n");
- return RTV_ADC_CLK_UNLOCKED;
- }
-
- switch (eAdcClkFreqType) {
- case RTV_ADC_CLK_FREQ_8_MHz:
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x19, 0xff);
- RTV_REG_SET(0x1a, 0x08);
- RTV_REG_SET(0x1b, 0x82);
- RTV_REG_SET(0x1c, 0x20);
-
- RTV_REG_SET(0x45, 0x10);
- RTV_REG_SET(0x46, 0x04);
- RTV_REG_SET(0x47, 0x41);
- RTV_REG_SET(0x48, 0x10);
-
- RTV_REG_SET(0x49, 0x00);
- RTV_REG_SET(0x4a, 0x00);
- RTV_REG_SET(0x4b, 0x00);
- RTV_REG_SET(0x4c, 0xF0);
- break;
-#endif
-
-#if defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)
- case RTV_TV_MODE_TDMB:
- case RTV_TV_MODE_DAB_B3:
- case RTV_TV_MODE_DAB_L:
- RTV_REG_MAP_SEL(COMM_PAGE);
- RTV_REG_SET(0x6A, 0x01);
-
- RTV_REG_MAP_SEL(0x06);
- RTV_REG_SET(0x3c, 0x4B);
- RTV_REG_SET(0x3d, 0x37);
- RTV_REG_SET(0x3e, 0x89);
- RTV_REG_SET(0x3f, 0x41);
- RTV_REG_SET(0x54, 0x58);
- break;
-#endif
- default:
- break;
- } /* End of switch(eTvMode) */
- break;
-
- case RTV_ADC_CLK_FREQ_8_192_MHz:
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x19, 0xfd);
- RTV_REG_SET(0x1a, 0xfc);
- RTV_REG_SET(0x1b, 0xbe);
- RTV_REG_SET(0x1c, 0x1f);
-
- RTV_REG_SET(0x45, 0xF7);
- RTV_REG_SET(0x46, 0x7D);
- RTV_REG_SET(0x47, 0xDF);
- RTV_REG_SET(0x48, 0x0F);
-
- RTV_REG_SET(0x49, 0x00);
- RTV_REG_SET(0x4a, 0x00);
- RTV_REG_SET(0x4b, 0x60);
- RTV_REG_SET(0x4c, 0xF0);
- break;
-#endif
-
-#if defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)
- case RTV_TV_MODE_TDMB:
- case RTV_TV_MODE_DAB_B3:
- case RTV_TV_MODE_DAB_L:
- RTV_REG_MAP_SEL(COMM_PAGE);
- RTV_REG_SET(0x6A, 0x01);
-
- RTV_REG_MAP_SEL(0x06);
- RTV_REG_SET(0x3c, 0x00);
- RTV_REG_SET(0x3d, 0x00);
- RTV_REG_SET(0x3e, 0x00);
- RTV_REG_SET(0x3f, 0x40);
- RTV_REG_SET(0x54, 0x58);
-#endif
- default:
- break;
- } /* End of switch(eTvMode) */
- break;
-
- case RTV_ADC_CLK_FREQ_9_MHz:
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x19, 0xe4);
- RTV_REG_SET(0x1a, 0x5c);
- RTV_REG_SET(0x1b, 0xe5);
- RTV_REG_SET(0x1c, 0x1c);
-
- RTV_REG_SET(0x45, 0x47);
- RTV_REG_SET(0x46, 0xAE);
- RTV_REG_SET(0x47, 0x72);
- RTV_REG_SET(0x48, 0x0E);
-
- RTV_REG_SET(0x49, 0x72);
- RTV_REG_SET(0x4a, 0x1C);
- RTV_REG_SET(0x4b, 0xC7);
- RTV_REG_SET(0x4c, 0xF1);
- break;
-#endif
-
-#if defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)
- case RTV_TV_MODE_TDMB:
- case RTV_TV_MODE_DAB_B3:
- case RTV_TV_MODE_DAB_L:
- RTV_REG_MAP_SEL(COMM_PAGE);
- RTV_REG_SET(0x6A, 0x21);
-
- RTV_REG_MAP_SEL(0x06);
- RTV_REG_SET(0x3c, 0xB5);
- RTV_REG_SET(0x3d, 0x14);
- RTV_REG_SET(0x3e, 0x41);
- RTV_REG_SET(0x3f, 0x3A);
- RTV_REG_SET(0x54, 0x58);
- break;
-#endif
- default:
- break;
- } /* End of switch(eTvMode) */
- break;
-
- case RTV_ADC_CLK_FREQ_9_6_MHz:
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x19, 0xd7);
- RTV_REG_SET(0x1a, 0x08);
- RTV_REG_SET(0x1b, 0x17);
- RTV_REG_SET(0x1c, 0x1b);
-
- RTV_REG_SET(0x45, 0x62);
- RTV_REG_SET(0x46, 0x83);
- RTV_REG_SET(0x47, 0x8B);
- RTV_REG_SET(0x48, 0x0D);
-
- RTV_REG_SET(0x49, 0xAB);
- RTV_REG_SET(0x4a, 0xAA);
- RTV_REG_SET(0x4b, 0xAA);
- RTV_REG_SET(0x4c, 0xF2);
- break;
-#endif
-
-#if defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)
- case RTV_TV_MODE_TDMB:
- case RTV_TV_MODE_DAB_B3:
- case RTV_TV_MODE_DAB_L:
- RTV_REG_MAP_SEL(COMM_PAGE);
- RTV_REG_SET(0x6A, 0x31);
-
- RTV_REG_MAP_SEL(0x06);
- RTV_REG_SET(0x3c, 0x69);
- RTV_REG_SET(0x3d, 0x03);
- RTV_REG_SET(0x3e, 0x9D);
- RTV_REG_SET(0x3f, 0x36);
- RTV_REG_SET(0x54, 0x58);
- break;
-#endif
- default:
- break;
- } /* End of switch(eTvMode) */
- break;
-
- default:
- break;
- } /* End of switch(eAdcClkFreqType) */
-
-#ifdef RTV_PWR_DCDC
- RTV_REG_MAP_SEL(RF_PAGE);
- RD15 = RTV_REG_GET(0x15) & 0x01;
- if (RD15) {
- RTV_REG_SET(0x2F, RD2F);
- } else {
- RTV_DBGMSG0("[rtvRF_ChangeAdcClock] "
- "DCDC CLOCK SYNTH UnLock..\n");
- }
-#endif
-
- /*Save the ADC clock type. */
- g_eRtvAdcClkFreqType = eAdcClkFreqType;
-
- /*RTV_DBGMSG1("[rtvRF_ChangeAdcClock] "
- "ADC clk Type: %d\n", g_eRtvAdcClkFreqType[RaonTvChipIdx]);*/
-
- return RTV_SUCCESS;
-}
-
-INT rtvRF_SetFrequency(enum E_RTV_TV_MODE_TYPE eTvMode,
- UINT nChNum,
- U32 dwChFreqKHz)
-{
-#if defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)
- int nIdx;
-#endif
-
-#ifdef RTV_DAB_ENABLE
- UINT nNumTblEntry = 0;
- const RTV_REG_INIT_INFO *ptInitTbl = NULL;
-#endif
-#ifdef RTV_NOTCH_FILTER_ENABLE
- U8 notch_nIdx;
-#endif
- INT nRet = RTV_SUCCESS;
- enum E_RTV_ADC_CLK_FREQ_TYPE eAdcClkFreqType = RTV_ADC_CLK_FREQ_8_MHz;
- U32 dwPllNF = 0, rd_dwPllNF_Verify_val, wr_dwPllNF_Verify_val;
- U8 RD15;
- U32 PLL_Verify_cnt = 10;
-
- /* Get the PLLNF and ADC clock type. */
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
- if ((g_eRtvCountryBandType == RTV_COUNTRY_BAND_BRAZIL)
- || (g_eRtvCountryBandType == RTV_COUNTRY_BAND_ARGENTINA))
- nChNum -= 1;
-
- switch (nChNum) {
- case 14: case 22: case 38: case 46: case 54:
- eAdcClkFreqType = g_aeAdcClkTypeTbl_ISDBT[1];
- break;
- /*case 30:*/
- case 30:
- case 61:
- eAdcClkFreqType = g_aeAdcClkTypeTbl_ISDBT[2];
- break;
- default:
- eAdcClkFreqType = g_aeAdcClkTypeTbl_ISDBT[0];
- break;
- }
- dwPllNF = ISDBT_AUTO_PLLNF;
-
-#ifdef RTV_NOTCH_FILTER_ENABLE /*=> RTV_1SEG_NOTCH_FILTER_ENABLE ??*/
- switch (nChNum) {
- /*notch filter value need to tuning*/
- case 14:
- notch_nIdx = 0;
- break;
- default:
- notch_nIdx = 0;
- }
-#endif
- break;
-#endif
-
-#ifdef RTV_FM_ENABLE
- case RTV_TV_MODE_FM:
- dwPllNF = g_atPllNF_FM[
- (dwChFreqKHz - FM_MIN_FREQ_KHz)/FM_SCAN_STEP_FREQ_KHz];
- eAdcClkFreqType = g_eRtvAdcClkFreqType; /* Only init adc clock type. */
- break;
-#endif
-
-#ifdef RTV_TDMB_ENABLE
- case RTV_TV_MODE_TDMB:
- if (g_eRtvCountryBandType == RTV_COUNTRY_BAND_KOREA) {
- nIdx = (dwChFreqKHz - TDMB_CH_FREQ_START__KOREA)
- / TDMB_CH_FREQ_STEP__KOREA;
-
- if (dwChFreqKHz >= 205280)
- nIdx -= 2;
- else if (dwChFreqKHz >= 193280)
- nIdx -= 1;
-
- eAdcClkFreqType = g_aeAdcClkTypeTbl_TDMB[nIdx];
- dwPllNF = g_atPllNF_TDMB_Korea[nIdx];
- }
- break;
-#endif
-
-#ifdef RTV_DAB_ENABLE
- case RTV_TV_MODE_DAB_B3:
- if (g_curDabSetType != RTV_TV_MODE_DAB_B3) {
- ptInitTbl = t_BAND3_INIT;
- nNumTblEntry = sizeof(t_BAND3_INIT)
- / sizeof(RTV_REG_INIT_INFO);
-
- RTV_REG_MAP_SEL(RF_PAGE);
- do {
- RTV_REG_SET(ptInitTbl->bReg, ptInitTbl->bVal);
- ptInitTbl++;
- } while (--nNumTblEntry);
-
- g_curDabSetType = RTV_TV_MODE_DAB_B3;
- }
-
- nIdx = (dwChFreqKHz - DAB_CH_BAND3_START_FREQ_KHz)
- / DAB_CH_BAND3_STEP_FREQ_KHz;
-
- if (dwChFreqKHz >= 224096)
- nIdx += 3;
- else if (dwChFreqKHz >= 217008)
- nIdx += 2;
- else if (dwChFreqKHz >= 210096)
- nIdx += 1;
-
- eAdcClkFreqType = g_aeAdcClkTypeTbl_DAB_B3[nIdx];
- dwPllNF = g_atPllNF_DAB_BAND3[nIdx];
- break;
-
- case RTV_TV_MODE_TDMB:
- if (g_curDabSetType != RTV_TV_MODE_TDMB) {
- ptInitTbl = t_DAB_TDMB_INIT;
- nNumTblEntry = sizeof(t_DAB_TDMB_INIT)
- / sizeof(RTV_REG_INIT_INFO);
- RTV_REG_MAP_SEL(RF_PAGE);
- do {
- RTV_REG_SET(ptInitTbl->bReg, ptInitTbl->bVal);
- ptInitTbl++;
- } while (--nNumTblEntry);
- }
-
- /*if(g_eRtvCountryBandType == RTV_COUNTRY_BAND_KOREA)*/
- {
- nIdx = (dwChFreqKHz - TDMB_CH_FREQ_START__KOREA)
- / TDMB_CH_FREQ_STEP__KOREA;
-
- if (dwChFreqKHz >= 205280)
- nIdx -= 2;
- else if (dwChFreqKHz >= 193280)
- nIdx -= 1;
-
- eAdcClkFreqType = g_aeAdcClkTypeTbl_TDMB[nIdx];
- dwPllNF = g_atPllNF_TDMB_Korea[nIdx];
- g_curDabSetType = RTV_TV_MODE_TDMB;
- }
- break;
-
- case RTV_TV_MODE_DAB_L:
- if (g_curDabSetType != RTV_TV_MODE_DAB_L) {
- ptInitTbl = t_LBAND_INIT;
- nNumTblEntry = sizeof(t_LBAND_INIT)
- / sizeof(RTV_REG_INIT_INFO);
- RTV_REG_MAP_SEL(RF_PAGE);
- do {
- RTV_REG_SET(ptInitTbl->bReg, ptInitTbl->bVal);
- ptInitTbl++;
- } while (--nNumTblEntry);
-
- g_curDabSetType = RTV_TV_MODE_DAB_L;
- }
-
- nIdx = (dwChFreqKHz - DAB_CH_LBAND_START_FREQ_KHz)
- / DAB_CH_LBAND_STEP_STEP_FREQ_KHz;
-
- eAdcClkFreqType = g_aeAdcClkTypeTbl_DAB_L[nIdx];
- dwPllNF = g_atPllNF_DAB_LBAND[nIdx];
- break;
-#endif
-
- default:
- nRet = RTV_INVAILD_TV_MODE;
- goto RF_SET_FREQ_EXIT;
- }
-
- g_fRtvChannelChange = TRUE;
-
- nRet = rtvRF_ChangeAdcClock(eTvMode, eAdcClkFreqType);
- if (nRet != RTV_SUCCESS)
- goto RF_SET_FREQ_EXIT;
-
- RTV_REG_MAP_SEL(RF_PAGE);
-
- /* Set the PLLNF and channel. */
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
-#ifdef RTV_NOTCH_FILTER_ENABLE
- RTV_REG_SET(0x21, (notch_nIdx<<4) | 0x01);
- /*notch filter value need to tuning*/
-#endif
-
- RTV_REG_SET(0x20, nChNum);
- RTV_DELAY_MS(2); /*2ms Delay*/
-
- wr_dwPllNF_Verify_val = (
- dwPllNF + (((ISDBT_AUTO_PLL_NFSTEP * 8) & 0xFFFFF0)
- * (nChNum >> 3))
- + ((nChNum & 0x07) * (ISDBT_AUTO_PLL_NFSTEP & 0xFFFFF0))
- ) >> 1;
-
- do {
- RD15 = RTV_REG_GET(0x15);
- rd_dwPllNF_Verify_val =
- (RTV_REG_GET(0x12) << 22)
- + (RTV_REG_GET(0x13) << 14)
- +(RTV_REG_GET(0x14) << 6) + (RD15 >> 2);
-
- if ((wr_dwPllNF_Verify_val == rd_dwPllNF_Verify_val)
- || (wr_dwPllNF_Verify_val
- == (U32)(rd_dwPllNF_Verify_val >> 1))) {
-
- if ((RD15 & 0x02) == 0x02)
- break;
- else {
- RTV_REG_SET(0x20, nChNum);
- RTV_DELAY_MS(2); /*2ms Delay*/
- }
- } else {
- RTV_REG_SET(0x20, nChNum);
- RTV_DELAY_MS(2); /*2ms Delay*/
- /*RTV_DBGMSG3("[rtvRF_SetFrequency] "
- "1SEG PLL verify Re-Try!!!"
- "PLLNF_I2C = 0x%0x"
- "RD_PLLNF = 0x%0x RD_PLLNF*2 = 0x%0x\n",
- wr_dwPllNF_Verify_val,
- rd_dwPllNF_Verify_val,
- rd_dwPllNF_Verify_val>>1);*/
- }
- } while (--PLL_Verify_cnt);
-
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x11, 0x07);
- RTV_REG_SET(0x11, 0x06);
- RTV_REG_MAP_SEL(FEC_PAGE);
- RTV_REG_SET(0x10, 0x01);
- RTV_REG_SET(0x10, 0x00);
- break;
-#endif
-
-#ifdef RTV_FM_ENABLE
- case RTV_TV_MODE_FM:
- RTV_REG_SET(0x23, (dwPllNF>>22)&0xFF);
- RTV_REG_SET(0x24, (dwPllNF>>14)&0xFF);
- RTV_REG_SET(0x25, (dwPllNF>>6)&0xFF);
- RTV_REG_SET(0x26, (((dwPllNF&0x0000003F)<<2)) | 0x00);
- RTV_DELAY_MS(1); /*1ms Delay*/
- RTV_REG_SET(0x20, 0x00);
-
- RTV_DELAY_MS(2);/*2ms Delay*/
- wr_dwPllNF_Verify_val = dwPllNF>>1;
-
- do {
- RD15 = RTV_REG_GET(0x15);
- rd_dwPllNF_Verify_val =
- (RTV_REG_GET(0x12) << 22)
- + (RTV_REG_GET(0x13) << 14)
- + (RTV_REG_GET(0x14) << 6) + (RD15 >> 2);
-
- if (((dwPllNF & ~0x1) == (rd_dwPllNF_Verify_val & ~0x1))
- || (wr_dwPllNF_Verify_val == rd_dwPllNF_Verify_val)) {
-
- if ((RD15 & 0x02) == 0x02)
- break;
- else {
- RTV_REG_SET(0x20, 0x00);
- RTV_DELAY_MS(2); /*2ms Delay*/
- }
- } else {
- RTV_REG_SET(0x20, 0x00);
- RTV_DELAY_MS(2); /*2ms Delay*/
- /*RTV_DBGMSG3("[rtvRF_SetFrequency] "
- "FM PLL verify Re-Try!!! "
- "PLLNF_I2C = 0x%0x, "
- "PLLNF_I2C/2 = 0x%0x, "
- "RD_PLLNF = 0x%0x\n",
- dwPllNF & ~0x1,
- wr_dwPllNF_Verify_val,
- rd_dwPllNF_Verify_val & ~0x1);*/
- }
- } while (--PLL_Verify_cnt);
-
- RTV_REG_MAP_SEL(0x06); /* ofdm */
- RTV_REG_SET(0x10, 0x48);
- RTV_REG_SET(0x10, 0xC9);
- break;
-#endif
-
-#ifdef RTV_TDMB_ENABLE
- case RTV_TV_MODE_TDMB:
- RTV_REG_SET(0x23, (dwPllNF >> 22) & 0xFF);
- RTV_REG_SET(0x24, (dwPllNF >> 14) & 0xFF);
- RTV_REG_SET(0x25, (dwPllNF >> 6) & 0xFF);
- RTV_REG_SET(0x26, (((dwPllNF & 0x0000003F) << 2)) | 0x00);
- RTV_DELAY_MS(1);
- /*1ms Delay*/
- RTV_REG_SET(0x20, 0x00);
-
- RTV_DELAY_MS(2);
- /*2ms Delay*/
- wr_dwPllNF_Verify_val = dwPllNF >> 1;
-
- do {
- RD15 =
- RTV_REG_GET(0x15);
- rd_dwPllNF_Verify_val = (RTV_REG_GET(0x12) << 22)
- + (RTV_REG_GET(0x13) << 14)
- + (RTV_REG_GET(0x14) << 6)
- + (RD15 >> 2);
-
- /*RTV_DBGMSG3("[rtvRF_SetFrequency] "
- "TDMB PLL PLLNF_I2C = 0x%0x, "
- "PLLNF_I2C/2 = 0x%0x, "
- "RD_PLLNF = 0x%0x\n",
- dwPllNF & ~0x1,
- wr_dwPllNF_Verify_val,
- rd_dwPllNF_Verify_val & ~0x1);*/
-
- if (((dwPllNF & ~0x1) == (rd_dwPllNF_Verify_val & ~0x1))
- || (wr_dwPllNF_Verify_val
- == rd_dwPllNF_Verify_val)) {
-
- if ((RD15 & 0x02) == 0x02)
- break;
- else {
- RTV_REG_SET(0x20, 0x00);
- RTV_DELAY_MS(2);
- /*2ms Delay*/
- }
- } else {
- RTV_REG_SET(0x20, 0x00);
- RTV_DELAY_MS(2);
- /*2ms Delay*/
- RTV_DBGMSG3("[rtvRF_SetFrequency] "
- "TDMB PLL verify Re-Try!!! "
- "PLLNF_I2C = 0x%0x, "
- "PLLNF_I2C/2 = 0x%0x, "
- "RD_PLLNF = 0x%0x\n",
- dwPllNF & ~0x1,
- wr_dwPllNF_Verify_val,
- rd_dwPllNF_Verify_val & ~0x1);
- }
- } while (--PLL_Verify_cnt);
-
- RTV_REG_MAP_SEL(0x06);
- /*ofdm*/
- RTV_REG_SET(0x10, 0x48);
- RTV_REG_SET(0x10, 0xC9);
- break;
-#endif
-
-#ifdef RTV_DAB_ENABLE
- case RTV_TV_MODE_DAB_B3:
- case RTV_TV_MODE_DAB_L:
- case RTV_TV_MODE_TDMB:
- RTV_REG_SET(0x23, (dwPllNF>>22)&0xFF);
- RTV_REG_SET(0x24, (dwPllNF>>14)&0xFF);
- RTV_REG_SET(0x25, (dwPllNF>>6)&0xFF);
- RTV_REG_SET(0x26, (((dwPllNF&0x0000003F)<<2)) | eTvMode);
- RTV_DELAY_MS(1); /*1ms Delay*/
- RTV_REG_SET(0x20, 0x00);
-
- RTV_DELAY_MS(2); /*2ms Delay*/
- wr_dwPllNF_Verify_val = dwPllNF>>1;
-
- do {
- RD15 = RTV_REG_GET(0x15);
- rd_dwPllNF_Verify_val =
- (RTV_REG_GET(0x12) << 22)
- + (RTV_REG_GET(0x13) << 14)
- +(RTV_REG_GET(0x14) << 6) + (RD15 >> 2);
-
- if (((dwPllNF & ~0x1) == (rd_dwPllNF_Verify_val & ~0x1))
- || (wr_dwPllNF_Verify_val
- == rd_dwPllNF_Verify_val)) {
- if ((RD15 & 0x02) == 0x02)
- break;
- else {
- RTV_REG_SET(0x20, 0x00);
- RTV_DELAY_MS(2); /*2ms Delay*/
- }
- } else {
- RTV_REG_SET(0x20, 0x00);
- RTV_DELAY_MS(2); /*2ms Delay*/
- /*RTV_DBGMSG3("[rtvRF_SetFrequency] "
- "DAB PLL verify Re-Try!!! "
- "PLLNF_I2C = 0x%0x, "
- "PLLNF_I2C/2 = 0x%0x, "
- "RD_PLLNF = 0x%0x\n",
- dwPllNF & ~0x1,
- wr_dwPllNF_Verify_val,
- rd_dwPllNF_Verify_val & ~0x1);*/
- }
- } while (--PLL_Verify_cnt);
-
- RTV_REG_MAP_SEL(0x06); /* ofdm */
- RTV_REG_SET(0x10, 0x48);
- RTV_REG_SET(0x10, 0xC9);
- break;
-#endif
-
- default:
- break;
- }
-
- if (PLL_Verify_cnt == 0) {
- RTV_DBGMSG0("[rtvRF_SetFrequency] PLL unlocked!\n");
- nRet = RTV_PLL_UNLOCKED;
- goto RF_SET_FREQ_EXIT;
- }
-
- RTV_DELAY_MS(1);
- /*1ms Delay*/
-
-RF_SET_FREQ_EXIT:
- g_fRtvChannelChange = FALSE;
-
- return nRet;
-}
-
-INT rtvRF_Initilize(enum E_RTV_TV_MODE_TYPE eTvMode)
-{
- UINT nNumTblEntry = 0, nNumAutoInit = 0;
- const struct RTV_REG_INIT_INFO *ptInitTbl = NULL;
- const struct RTV_REG_INIT_INFO *ptLNA = NULL;
- const struct RTV_REG_MASK_INFO *ptAutoCh = NULL;
- U32 dwAutoPllNF = 0, dwAutoPllNFSTEP = 0;
-
- g_fRtvChannelChange = FALSE;
-
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
- ptInitTbl = t_ISDBT_INIT;
- nNumTblEntry = sizeof(t_ISDBT_INIT) / sizeof(struct RTV_REG_INIT_INFO);
- ptLNA = g_atAutoLnaInitData_ISDBT;
- ptAutoCh = g_atAutoChInitData_ISDBT;
- nNumAutoInit = sizeof(g_atAutoChInitData_ISDBT)
- / sizeof(RTV_REG_MASK_INFO);
- dwAutoPllNF = ISDBT_AUTO_PLLNF;
- dwAutoPllNFSTEP = ISDBT_AUTO_PLL_NFSTEP;
- break;
-#endif
-
-#ifdef RTV_FM_ENABLE
- case RTV_TV_MODE_FM:
- ptInitTbl = t_FM_INIT;
- nNumTblEntry = sizeof(t_FM_INIT) / sizeof(struct RTV_REG_INIT_INFO);
- ptLNA = g_atAutoLnaInitData_FM;
- break;
-#endif
-
-#ifdef RTV_TDMB_ENABLE
- case RTV_TV_MODE_TDMB:
- ptInitTbl = t_TDMB_INIT;
- nNumTblEntry = sizeof(t_TDMB_INIT) / sizeof(struct RTV_REG_INIT_INFO);
- ptLNA = g_atAutoLnaInitData_TDMB;
- break;
-#endif
-
-#ifdef RTV_DAB_ENABLE
- case RTV_TV_MODE_DAB_B3:
- ptInitTbl = t_DAB_INIT;
- nNumTblEntry = sizeof(t_DAB_INIT) / sizeof(struct RTV_REG_INIT_INFO);
- ptLNA = g_atAutoLnaInitData_DAB;
- g_curDabSetType = RTV_TV_MODE_DAB_B3;
- break;
-#endif
-
- default:
- return RTV_INVAILD_TV_MODE;
- }
-
- RTV_REG_MAP_SEL(RF_PAGE);
-
- do {
- RTV_REG_SET(ptInitTbl->bReg, ptInitTbl->bVal);
- ptInitTbl++;
- } while (--nNumTblEntry);
-
- /* Auto LNA */
- RTV_REG_SET(ptLNA[0].bReg, ptLNA[0].bVal);
- RTV_REG_SET(ptLNA[1].bReg, ptLNA[1].bVal);
-
- /* Auto channel setting. */
- if (eTvMode == RTV_TV_MODE_1SEG) {
- do {
- RTV_REG_MASK_SET(
- ptAutoCh->bReg,
- ptAutoCh->bMask,
- ptAutoCh->bVal);
- ptAutoCh++;
- } while (--nNumAutoInit);
-
- RTV_REG_SET(0x23, (dwAutoPllNF>>22)&0xFF);
- RTV_REG_SET(0x24, (dwAutoPllNF>>14)&0xFF);
- RTV_REG_SET(0x25, (dwAutoPllNF>>6)&0xFF);
-
- RTV_REG_SET(0x26, ((dwAutoPllNF&0x0000003F) << 2) | eTvMode);
-
- RTV_REG_SET(0x62, (dwAutoPllNFSTEP >> 16) & 0xFF);
- RTV_REG_SET(0x63, (dwAutoPllNFSTEP >> 8) & 0xFF);
- RTV_REG_SET(0x64, (dwAutoPllNFSTEP & 0xFF));
-
-#ifdef RAONTV_CHIP_PKG_WLCSP
- if (RTV_REG_GET(0x01) == 0x09)
- RTV_REG_SET(0x21, 0xF1);
-#endif
- }
-
-#ifdef RTV_PWR_DCDC
- {
- U8 RD15 = RTV_REG_GET(0x15) & 0x01;
- U8 RD2F = RTV_REG_GET(0x2F);
- if (RD15) {
- RD2F |= 0x08;
- RTV_REG_SET(0x2F, RD2F);
- } else {
- RTV_DBGMSG0("[rtvRF_Initilize] Clock Unlock\n");
- }
- }
-#endif
-/****************CODE PATCH FOR OTP****************/
- if (((U16) (RTV_REG_GET(0x10) << 8)
- | (U16) (RTV_REG_GET(0x11))) != 0xFFFF) {
-
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
- RTV_REG_SET(0x2C, 0x48);
- RTV_REG_SET(0x47, 0xE0);
- break;
-#endif
-
-#ifdef RTV_FM_ENABLE
- case RTV_TV_MODE_FM:
- RTV_REG_SET(0x2C, 0x48);
- RTV_REG_SET(0x47, 0xE1);
- RTV_REG_SET(0x35, 0x14);
- break;
-#endif
-
-#ifdef RTV_TDMB_ENABLE
- case RTV_TV_MODE_TDMB:
- RTV_REG_SET(0x2C, 0x48);
- RTV_REG_SET(0x47, 0xC0);
- break;
-#endif
-
-#ifdef RTV_DAB_ENABLE
- case RTV_TV_MODE_DAB_B3:
- RTV_REG_SET(0x2C, 0x48);
- RTV_REG_SET(0x47, 0xE0);
- RTV_REG_SET(0x35, 0x04);
- break;
-#endif
- default:
- return RTV_INVAILD_TV_MODE;
- }
-
- RTV_REG_SET(0x2A, 0x05);
- RTV_REG_SET(0x2D, 0x8c);
- RTV_REG_SET(0x61, 0x25);
- } else {
- switch (eTvMode) {
-#ifdef RTV_ISDBT_ENABLE
- case RTV_TV_MODE_1SEG:
- RTV_REG_SET(0x2C, 0xC8);
- RTV_REG_SET(0x47, 0xC0);
- break;
-#endif
-
-#ifdef RTV_FM_ENABLE
- case RTV_TV_MODE_FM:
- RTV_REG_SET(0x2C, 0xC8);
- RTV_REG_SET(0x47, 0xB1);
- RTV_REG_SET(0x35, 0x14);
- break;
-#endif
-
-#ifdef RTV_TDMB_ENABLE
- case RTV_TV_MODE_TDMB:
- RTV_REG_SET(0x2C, 0xC8);
- RTV_REG_SET(0x47, 0xB0);
- break;
-#endif
-
-#ifdef RTV_DAB_ENABLE
- case RTV_TV_MODE_DAB_B3:
- RTV_REG_SET(0x2C, 0xC8);
- RTV_REG_SET(0x47, 0xB0);
- RTV_REG_SET(0x35, 0x04);
- break;
-#endif
- default:
- return RTV_INVAILD_TV_MODE;
- }
-
- RTV_REG_SET(0x2A, 0x07);
- RTV_REG_SET(0x2D, 0xec);
- RTV_REG_SET(0x61, 0x2a);
- }
-/****************CODE PATCH FOR OTP****************/
-
- return RTV_SUCCESS;
-}
-
diff --git a/drivers/media/tdmb/mtv318/raontv_rf.h b/drivers/media/tdmb/mtv318/raontv_rf.h
deleted file mode 100644
index 9b20233..0000000
--- a/drivers/media/tdmb/mtv318/raontv_rf.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *
- * File name: drivers/media/tdmb/mtv318/src/raontv_rf.h
- *
- * Description : RAONTECH TV RF services header file.
- *
- * Copyright (C) (2011, RAONTECH)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __RAONTV_RF_H__
-#define __RAONTV_RF_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "raontv_internal.h"
-
-INT rtvRF_SetFrequency(enum E_RTV_TV_MODE_TYPE eTvMode,
- UINT nChNum,
- U32 dwFreqKHz);
-INT rtvRF_ChangeAdcClock(
- enum E_RTV_TV_MODE_TYPE eTvMode,
- enum E_RTV_ADC_CLK_FREQ_TYPE eAdcClkFreqType);
-INT rtvRF_ConfigureAdcClock(
- enum E_RTV_TV_MODE_TYPE eTvMode,
- enum E_RTV_ADC_CLK_FREQ_TYPE eAdcClkFreqType);
-void rtvRF_ConfigurePowerType(enum E_RTV_TV_MODE_TYPE eTvMode);
-INT rtvRF_Initilize(enum E_RTV_TV_MODE_TYPE eTvMode);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __RAONTV_RF_H__ */
-
diff --git a/drivers/media/tdmb/mtv318/raontv_rf_adc_data.h b/drivers/media/tdmb/mtv318/raontv_rf_adc_data.h
deleted file mode 100644
index be21711..0000000
--- a/drivers/media/tdmb/mtv318/raontv_rf_adc_data.h
+++ /dev/null
@@ -1,1037 +0,0 @@
-/*
- *
- * File name: drivers/media/tdmb/mtv318/src/raontv_rf_adc_data.h
- *
- * Description : RAONTECH TV RF ADC data header file.
- *
- * Copyright (C) (2011, RAONTECH)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#if (RTV_SRC_CLK_FREQ_KHz == 13000)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /*Based 13MHz, 8MHz*/
- {0x0D, 0x01, 0x1F, 0x27, 0x07, 0x80, 0xB9},
- /*Based 13MHz, 8.192MHz*/ /* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /*Based 13MHz, 9MHz*/
- {0x0D, 0x01, 0x1F, 0x27, 0x07, 0xB0, 0xB9},
- /*Based 13MHz, 9.6MHz*/ /* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x99}, {0x39, 0x9C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_MHz,
- RTV_ADC_CLK_FREQ_9_MHz
-};
-#endif
-
-#ifdef RTV_TDMB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x70}, {0x39, 0x5C}
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x70}, {0x39, 0x5C}
-};
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x70}, {0x39, 0x6C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 16000)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 16MHz, 8MHz External Clock4 */
- {0x04, 0x01, 0x0F, 0x27, 0x07, 0x60, 0xB8},
- /* Based 16MHz, 8.192MHz*/ /* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /* Based 16MHz, 9MHz External Clock5 */
- {0x04, 0x01, 0x0F, 0x27, 0x07, 0x6C, 0xB8},
- /* Based 16MHz, 9.6MHz External Clock6 */
- {0x05, 0x01, 0x1F, 0x27, 0x07, 0x90, 0xB8}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x7D}, {0x39, 0x7C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- RTV_ADC_CLK_FREQ_9_MHz
-};
-#endif
-
-#ifdef RTV_TDMB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x5B}, {0x39, 0x4C}
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x5B}, {0x39, 0x4C}
-};
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x5B}, {0x39, 0x5C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 16384)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 16.384MHz, 8MHz External Clock8 */
- {0x10, 0x01, 0x1F, 0x27, 0x07, 0x77, 0xB9},
- /* Based 16.384MHz, 8.192MHz External Clock7 */
- {0x04, 0x01, 0x0F, 0x27, 0x07, 0x60, 0xB8},
- /* Based 16.384MHz, 9MHz */ /* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /* Based 16.384MHz, 9.6MHz External Clock9 */
- {0x08, 0x01, 0x1F, 0x27, 0x06, 0xE1, 0xB8}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x7A}, {0x39, 0x7C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz
-};
-#endif
-
-#if defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x59}, {0x39, 0x4C}
-};
-
-static const enum E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_TDMB[] = {
- RTV_ADC_CLK_FREQ_8_192_MHz/* 175280: 7A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 177008: 7B */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 178736: 7C */,
- RTV_ADC_CLK_FREQ_8_192_MHz/* 181280: 8A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 183008: 8B */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 184736: 8C */,
- RTV_ADC_CLK_FREQ_8_192_MHz/* 187280: 9A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 189008: 9B */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 190736: 9C */,
- RTV_ADC_CLK_FREQ_8_MHz/* 193280: 10A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 195008: 10B */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 196736: 10C */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 199280: 11A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 201008: 11B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 202736: 11C */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 205280: 12A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 207008: 12B */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 208736: 12C */,
- RTV_ADC_CLK_FREQ_8_192_MHz/* 211280: 13A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 213008: 13B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 214736: 13C */
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x59}, {0x39, 0x4C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_DAB_B3[] = {
- RTV_ADC_CLK_FREQ_8_192_MHz/*5A : 174928*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*5B : 176640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*5C : 178352*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*5D : 180064*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*6A : 181936*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*6B : 183648*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*6C : 185360*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*6D : 187072*/,
- RTV_ADC_CLK_FREQ_8_MHz/*7A : 188928*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*7B : 190640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*7C : 192352*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*7D : 194064*/,
- RTV_ADC_CLK_FREQ_8_MHz/*8A : 195936*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*8B : 197648*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*8C : 199360*/,
- RTV_ADC_CLK_FREQ_8_MHz/*8D : 201072*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*9A : 202928*/,
- RTV_ADC_CLK_FREQ_8_MHz/*9B : 204640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*9C : 206352*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*9D : 208064*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*10A: 209936*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*10N: 210096*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*10B: 211648*/,
- RTV_ADC_CLK_FREQ_8_MHz/*10C: 213360*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*10D: 215072*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*11A: 216928*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*11N: 217008*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*11B: 218640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*11C: 220352*/,
- RTV_ADC_CLK_FREQ_8_MHz/*11D: 222064*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*12A: 223936*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12N: 224096*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12B: 225648*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*12C: 227360*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12D: 229072*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*13A: 230784*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*13B: 232496*/,
- RTV_ADC_CLK_FREQ_8_MHz/*13C: 234208*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*13D: 235776*/,
- RTV_ADC_CLK_FREQ_8_MHz/*13E: 237488*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*13F: 239200*/
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_DAB_L[] = {
- RTV_ADC_CLK_FREQ_8_192_MHz/*LA: 1452960*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LB: 1454672*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LC: 1456384*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LD: 1458096*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LE: 1459808*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LF: 1461520*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LG: 1463232*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LH: 1464944*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LI: 1466656*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LJ: 1468368*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LK: 1470080*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LL: 1471792*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LM: 1473504*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LN: 1475216*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LO: 1476928*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LP: 1478640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LQ: 1480352*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LR: 1482064*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LS: 1483776*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LT: 1485488*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LU: 1487200*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LV: 1488912*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LW: 1490624*/
-
-};
-
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x59}, {0x39, 0x4C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 18000)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 18MHz, 8MHz External Clock10 */
- {0x06, 0x01, 0x13, 0x25, 0x06, 0x80, 0xB4},
- /* Based 18MHz, 8.192MHz */ /* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /* Based 18MHz, 9MHz External Clock11*/
- {0x06, 0x01, 0x13, 0x25, 0x06, 0x90, 0xB4},
- /* Based 18MHz, 9.6MHz External Clock12*/
- {0x05, 0x01, 0x13, 0x25, 0x06, 0x80, 0xB4}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x6F}, {0x39, 0x6C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- RTV_ADC_CLK_FREQ_9_MHz
-};
-#endif
-
-#ifdef RTV_TDMB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x51}, {0x39, 0x4C}
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x51}, {0x39, 0x4C}
-};
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x51}, {0x39, 0x4C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 19200)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 19.2MHz, 8MHz */
- {0x04, 0x01, 0x0B, 0x23, 0x06, 0x50, 0xB0},
- /* Based 19.2MHz, 8.192MHz */
- {0x19, 0x01, 0x1F, 0x3A, 0x0A, 0x00, 0xA2},
- /* Based 19.2MHz, 9MHz */
- {0x04, 0x01, 0x0B, 0x23, 0x06, 0x5A, 0xB0},
- /* Based 19.2MHz, 9.6MHz */
- {0x04, 0x01, 0x0B, 0x23, 0x06, 0x60, 0xB0}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x68}, {0x39, 0x6C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- RTV_ADC_CLK_FREQ_9_MHz
-};
-#endif
-
-#if defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x4C}, {0x39, 0x3C}
-};
-
-static const enum E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_TDMB[] = {
- RTV_ADC_CLK_FREQ_8_192_MHz/* 175280: 7A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 177008: 7B */,
- RTV_ADC_CLK_FREQ_9_MHz/* 178736: 7C */,
- RTV_ADC_CLK_FREQ_9_MHz/* 181280: 8A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 183008: 8B */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 184736: 8C */,
- RTV_ADC_CLK_FREQ_9_MHz/* 187280: 9A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 189008: 9B */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 190736: 9C */,
- RTV_ADC_CLK_FREQ_8_192_MHz/* 193280: 10A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 195008: 10B */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 196736: 10C */,
- RTV_ADC_CLK_FREQ_9_MHz/* 199280: 11A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 201008: 11B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 202736: 11C */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 205280: 12A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 207008: 12B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 208736: 12C */,
- RTV_ADC_CLK_FREQ_9_MHz/* 211280: 13A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 213008: 13B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 214736: 13C */
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x4C}, {0x39, 0x3C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_DAB_B3[] = {
- RTV_ADC_CLK_FREQ_8_192_MHz/*5A : 174928*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*5B : 176640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*5C : 178352*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*5D : 180064*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*6A : 181936*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*6B : 183648*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*6C : 185360*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*6D : 187072*/,
- RTV_ADC_CLK_FREQ_8_MHz/*7A : 188928*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*7B : 190640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*7C : 192352*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*7D : 194064*/,
- RTV_ADC_CLK_FREQ_8_MHz/*8A : 195936*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*8B : 197648*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*8C : 199360*/,
- RTV_ADC_CLK_FREQ_8_MHz/*8D : 201072*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*9A : 202928*/,
- RTV_ADC_CLK_FREQ_8_MHz/*9B : 204640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*9C : 206352*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*9D : 208064*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*10A: 209936*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*10N: 210096*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*10B: 211648*/,
- RTV_ADC_CLK_FREQ_8_MHz/*10C: 213360*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*10D: 215072*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*11A: 216928*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*11N: 217008*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*11B: 218640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*11C: 220352*/,
- RTV_ADC_CLK_FREQ_8_MHz/*11D: 222064*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*12A: 223936*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12N: 224096*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12B: 225648*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*12C: 227360*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12D: 229072*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*13A: 230784*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*13B: 232496*/,
- RTV_ADC_CLK_FREQ_8_MHz/*13C: 234208*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*13D: 235776*/,
- RTV_ADC_CLK_FREQ_8_MHz/*13E: 237488*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*13F: 239200*/
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_DAB_L[] = {
- RTV_ADC_CLK_FREQ_8_192_MHz/*LA: 1452960*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LB: 1454672*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LC: 1456384*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LD: 1458096*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LE: 1459808*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LF: 1461520*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LG: 1463232*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LH: 1464944*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LI: 1466656*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LJ: 1468368*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LK: 1470080*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LL: 1471792*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LM: 1473504*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LN: 1475216*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LO: 1476928*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LP: 1478640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LQ: 1480352*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LR: 1482064*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LS: 1483776*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LT: 1485488*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LU: 1487200*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LV: 1488912*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LW: 1490624*/
-};
-
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x4C}, {0x39, 0x4C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 24000)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 24MHz, 8MHz External Clock17 */
- {0x06, 0x01, 0x0F, 0x27, 0x07, 0x60, 0xB8},
- /* Based 24MHz, 8.192MHz */ /* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /* Based 24MHz, 9MHz External Clock18 */
- {0x06, 0x01, 0x0F, 0x27, 0x07, 0x6C, 0xB8},
- /* Based 24MHz, 9.6MHz External Clock19 */
- {0x05, 0x01, 0x0B, 0x23, 0x06, 0x60, 0xB0}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x53}, {0x39, 0x5C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- RTV_ADC_CLK_FREQ_9_MHz
-};
-#endif
-
-#ifdef RTV_TDMB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x3D}, {0x39, 0x3C}
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x3D}, {0x39, 0x3C}
-};
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x3D}, {0x39, 0x3C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 24576)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 24.576MHz, 8MHz External Clock21 */
- {0x08, 0x01, 0x13, 0x25, 0x06, 0x7D, 0xB4},
- /* Based 24.576MHz, 8.192MHz External Clock20 */
- {0x06, 0x01, 0x0F, 0x27, 0x07, 0x60, 0xB8},
- /* Based 24.576MHz, 9MHz *//* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /* Based 24.576MHz, 9.6MHz External Clock22 */
- {0x0C, 0x01, 0x1F, 0x27, 0x06, 0xE1, 0xB8}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x51}, {0x39, 0x4C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- RTV_ADC_CLK_FREQ_8_192_MHz
-};
-#endif
-
-#if defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x3B}, {0x39, 0x2C}
-};
-
-static const enum E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_TDMB[] = {
- RTV_ADC_CLK_FREQ_8_192_MHz/* 175280: 7A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 177008: 7B */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 178736: 7C */,
- RTV_ADC_CLK_FREQ_8_192_MHz/* 181280: 8A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 183008: 8B */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 184736: 8C */,
- RTV_ADC_CLK_FREQ_8_192_MHz/* 187280: 9A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 189008: 9B */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 190736: 9C */,
- RTV_ADC_CLK_FREQ_8_192_MHz/* 193280: 10A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 195008: 10B */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 196736: 10C */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 199280: 11A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 201008: 11B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 202736: 11C */,
- RTV_ADC_CLK_FREQ_9_6_MHz/* 205280: 12A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 207008: 12B */,
- RTV_ADC_CLK_FREQ_8_192_MHz/* 208736: 12C */,
- RTV_ADC_CLK_FREQ_8_192_MHz/* 211280: 13A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 213008: 13B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 214736: 13C */
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x3B}, {0x39, 0x2C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_DAB_B3[] = {
- RTV_ADC_CLK_FREQ_8_192_MHz/*5A : 174928*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*5B : 176640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*5C : 178352*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*5D : 180064*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*6A : 181936*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*6B : 183648*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*6C : 185360*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*6D : 187072*/,
- RTV_ADC_CLK_FREQ_8_MHz/*7A : 188928*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*7B : 190640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*7C : 192352*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*7D : 194064*/,
- RTV_ADC_CLK_FREQ_8_MHz/*8A : 195936*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*8B : 197648*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*8C : 199360*/,
- RTV_ADC_CLK_FREQ_8_MHz/*8D : 201072*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*9A : 202928*/,
- RTV_ADC_CLK_FREQ_8_MHz/*9B : 204640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*9C : 206352*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*9D : 208064*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*10A: 209936*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*10N: 210096*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*10B: 211648*/,
- RTV_ADC_CLK_FREQ_8_MHz/*10C: 213360*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*10D: 215072*/,
- RTV_ADC_CLK_FREQ_9_6_MHz/*11A: 216928*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*11N: 217008*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*11B: 218640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*11C: 220352*/,
- RTV_ADC_CLK_FREQ_8_MHz/*11D: 222064*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*12A: 223936*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12N: 224096*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12B: 225648*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*12C: 227360*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12D: 229072*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*13A: 230784*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*13B: 232496*/,
- RTV_ADC_CLK_FREQ_8_MHz/*13C: 234208*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*13D: 235776*/,
- RTV_ADC_CLK_FREQ_8_MHz/*13E: 237488*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*13F: 239200*/
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_DAB_L[] = {
- RTV_ADC_CLK_FREQ_8_192_MHz/*LA: 1452960*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LB: 1454672*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LC: 1456384*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LD: 1458096*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LE: 1459808*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LF: 1461520*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LG: 1463232*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LH: 1464944*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LI: 1466656*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LJ: 1468368*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LK: 1470080*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LL: 1471792*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LM: 1473504*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LN: 1475216*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LO: 1476928*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LP: 1478640*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LQ: 1480352*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LR: 1482064*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LS: 1483776*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LT: 1485488*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LU: 1487200*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LV: 1488912*/,
- RTV_ADC_CLK_FREQ_8_192_MHz/*LW: 1490624*/
-};
-
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x3B}, {0x39, 0x6C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 26000)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 26MHz, 8MHz External Clock23*/
- {0x0D, 0x01, 0x1F, 0x27, 0x06, 0xC0, 0xB8},
- /* Based 26MHz, 8.192MHz */ /* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /* Based 26MHz, 9MHz External Clock24 */
- {0x0D, 0x01, 0x1F, 0x27, 0x06, 0xD8, 0xB8},
- /* Based 26MHz, 9.6MHz */ /* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x4C}, {0x39, 0x4C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_MHz,
- RTV_ADC_CLK_FREQ_9_MHz
-};
-#endif
-
-#ifdef RTV_TDMB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x38}, {0x39, 0x2C}
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x38}, {0x39, 0x2C}
-};
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x38}, {0x39, 0x3C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 27000)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 27MHz, 8MHz External Clock25 */
- {0x09, 0x01, 0x13, 0x25, 0x06, 0x80, 0xB4},
- /* Based 27MHz, 8.192MHz */ /* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /* Based 27MHz, 9MHz External Clock26 */
- {0x06, 0x01, 0x0F, 0x27, 0x07, 0x60, 0xB8},
- /* Based 27MHz, 9.6MHz */ /* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x4A}, {0x39, 0x4C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_MHz,
- RTV_ADC_CLK_FREQ_9_MHz
-};
-#endif
-
-#ifdef RTV_TDMB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x36}, {0x39, 0x2C}
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x36}, {0x39, 0x2C}
-};
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x36}, {0x39, 0x2C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 32000)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 32MHz, 8MHz External Clock27 */
- {0x08, 0x01, 0x0F, 0x27, 0x07, 0x60, 0xB8},
- /* Based 32MHz, 8.192MHz */ /* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /* Based 32MHz, 9MHz External Clock28 */
- {0x08, 0x01, 0x0F, 0x27, 0x07, 0x6C, 0xB8},
- /* Based 32MHz, 9.6MHz External Clock29 */
- {0x0A, 0x01, 0x1F, 0x27, 0x07, 0x90, 0xB8}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x3E}, {0x39, 0x3C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- RTV_ADC_CLK_FREQ_9_MHz
-};
-#endif
-
-#ifdef RTV_TDMB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x2D}, {0x39, 0x2C}
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x2D}, {0x39, 0x2C}
-};
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x2D}, {0x39, 0x2C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 32768)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 32.768MHz, 8MHz External Clock31 */
- {0x20, 0x01, 0x1F, 0x27, 0x07, 0x77, 0xB9},
- /* Based 32.768MHz, 8.192MHz External Clock30 */
- {0x08, 0x01, 0x0F, 0x27, 0x07, 0x60, 0xB8},
- /* Based 32.768MHz, 9MHz */ /* Unsupport Clock */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /* Based 32.768MHz, 9.6MHz External Clock32 */
- {0x10, 0x01, 0x1F, 0x27, 0x06, 0xE1, 0xB8}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x3D}, {0x39, 0x3C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz
-};
-#endif
-
-#ifdef RTV_TDMB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x2C}, {0x39, 0x2C}
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x2C}, {0x39, 0x2C}
-};
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x2C}, {0x39, 0x2C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 36000)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 36MHz, 8MHz External Clock33 */
- {0x09, 0x01, 0x0F, 0x27, 0x07, 0x60, 0xB8},
- /* Based 36MHz, 8.192MHz */ /* Unsupport */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /* Based 36MHz, 9MHz External Clock34 */
- {0x09, 0x01, 0x0F, 0x27, 0x07, 0x6C, 0xB8},
- /* Based 36MHz, 9.6MHz External Clock35 */
- {0x0A, 0x01, 0x13, 0x25, 0x06, 0x80, 0xB4}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x37}, {0x39, 0x3C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- RTV_ADC_CLK_FREQ_9_MHz
-};
-#endif
-
-#if defined(RTV_TDMB_ENABLE) || defined(RTV_DAB_ENABLE)
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x28}, {0x39, 0x2C}
-};
-
-
-static const enum E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_TDMB[] = {
- RTV_ADC_CLK_FREQ_8_MHz/* 175280: 7A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 177008: 7B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 178736: 7C */,
- RTV_ADC_CLK_FREQ_8_MHz/* 181280: 8A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 183008: 8B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 184736: 8C */,
- RTV_ADC_CLK_FREQ_8_MHz/* 187280: 9A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 189008: 9B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 190736: 9C */,
- RTV_ADC_CLK_FREQ_8_MHz/* 193280: 10A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 195008: 10B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 196736: 10C */,
- RTV_ADC_CLK_FREQ_8_MHz/* 199280: 11A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 201008: 11B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 202736: 11C */,
- RTV_ADC_CLK_FREQ_8_MHz/* 205280: 12A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 207008: 12B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 208736: 12C */,
- RTV_ADC_CLK_FREQ_8_MHz/* 211280: 13A */,
- RTV_ADC_CLK_FREQ_8_MHz/* 213008: 13B */,
- RTV_ADC_CLK_FREQ_8_MHz/* 214736: 13C */
-};
-
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x28}, {0x39, 0x2C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_DAB_B3[] = {
- RTV_ADC_CLK_FREQ_8_MHz/*5A : 174928*/,
- RTV_ADC_CLK_FREQ_8_MHz/*5B : 176640*/,
- RTV_ADC_CLK_FREQ_8_MHz/*5C : 178352*/,
- RTV_ADC_CLK_FREQ_8_MHz/*5D : 180064*/,
- RTV_ADC_CLK_FREQ_8_MHz/*6A : 181936*/,
- RTV_ADC_CLK_FREQ_8_MHz/*6B : 183648*/,
- RTV_ADC_CLK_FREQ_8_MHz/*6C : 185360*/,
- RTV_ADC_CLK_FREQ_8_MHz/*6D : 187072*/,
- RTV_ADC_CLK_FREQ_8_MHz/*7A : 188928*/,
- RTV_ADC_CLK_FREQ_8_MHz/*7B : 190640*/,
- RTV_ADC_CLK_FREQ_8_MHz/*7C : 192352*/,
- RTV_ADC_CLK_FREQ_8_MHz/*7D : 194064*/,
- RTV_ADC_CLK_FREQ_8_MHz/*8A : 195936*/,
- RTV_ADC_CLK_FREQ_8_MHz/*8B : 197648*/,
- RTV_ADC_CLK_FREQ_8_MHz/*8C : 199360*/,
- RTV_ADC_CLK_FREQ_8_MHz/*8D : 201072*/,
- RTV_ADC_CLK_FREQ_8_MHz/*9A : 202928*/,
- RTV_ADC_CLK_FREQ_8_MHz/*9B : 204640*/,
- RTV_ADC_CLK_FREQ_8_MHz/*9C : 206352*/,
- RTV_ADC_CLK_FREQ_8_MHz/*9D : 208064*/,
- RTV_ADC_CLK_FREQ_8_MHz/*10A: 209936*/,
- RTV_ADC_CLK_FREQ_8_MHz/*10N: 210096*/,
- RTV_ADC_CLK_FREQ_8_MHz/*10B: 211648*/,
- RTV_ADC_CLK_FREQ_8_MHz/*10C: 213360*/,
- RTV_ADC_CLK_FREQ_8_MHz/*10D: 215072*/,
- RTV_ADC_CLK_FREQ_8_MHz/*11A: 216928*/,
- RTV_ADC_CLK_FREQ_8_MHz/*11N: 217008*/,
- RTV_ADC_CLK_FREQ_8_MHz/*11B: 218640*/,
- RTV_ADC_CLK_FREQ_8_MHz/*11C: 220352*/,
- RTV_ADC_CLK_FREQ_8_MHz/*11D: 222064*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12A: 223936*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12N: 224096*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12B: 225648*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12C: 227360*/,
- RTV_ADC_CLK_FREQ_8_MHz/*12D: 229072*/,
- RTV_ADC_CLK_FREQ_8_MHz/*13A: 230784*/,
- RTV_ADC_CLK_FREQ_8_MHz/*13B: 232496*/,
- RTV_ADC_CLK_FREQ_8_MHz/*13C: 234208*/,
- RTV_ADC_CLK_FREQ_8_MHz/*13D: 235776*/,
- RTV_ADC_CLK_FREQ_8_MHz/*13E: 237488*/,
- RTV_ADC_CLK_FREQ_8_MHz/*13F: 239200*/
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_DAB_L[] = {
-
- RTV_ADC_CLK_FREQ_8_MHz/*LA: 1452960*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LB: 1454672*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LC: 1456384*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LD: 1458096*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LE: 1459808*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LF: 1461520*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LG: 1463232*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LH: 1464944*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LI: 1466656*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LJ: 1468368*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LK: 1470080*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LL: 1471792*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LM: 1473504*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LN: 1475216*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LO: 1476928*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LP: 1478640*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LQ: 1480352*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LR: 1482064*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LS: 1483776*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LT: 1485488*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LU: 1487200*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LV: 1488912*/,
- RTV_ADC_CLK_FREQ_8_MHz/*LW: 1490624*/
-};
-
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x28}, {0x39, 0x2C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 38400)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 38.4MHz, 8MHz External Clock36 */
- {0x08, 0x01, 0x0B, 0x23, 0x06, 0x50, 0xB0},
- /* Based 38.4MHz, 8.192MHz External Clock37 */
- {0x19, 0x01, 0x1F, 0x27, 0x06, 0x00, 0xB9},
- /* Based 38.4MHz, 9MHz External Clock38 */
- {0x08, 0x01, 0x0B, 0x23, 0x06, 0x5A, 0xB0},
- /* Based 38.4MHz, 9.6MHz External Clock39 */
- {0x0A, 0x01, 0x0F, 0x27, 0x07, 0x78, 0xB8}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x34}, {0x39, 0x3C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- RTV_ADC_CLK_FREQ_9_MHz
-};
-#endif
-
-#ifdef RTV_TDMB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x26}, {0x39, 0x2C}
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x26}, {0x39, 0x2C}
-};
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x26}, {0x39, 0x2C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 40000)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 40MHz, 8MHz External Clock40 */
- {0x0A, 0x01, 0x0F, 0x27, 0x07, 0x60, 0xB8},
- /* Based 40MHz, 8.192MHz */ /* Unsupport */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /* Based 40MHz, 9MHz External Clock41 */
- {0x0A, 0x01, 0x0F, 0x27, 0x07, 0x6C, 0xB8},
- /* Based 40MHz, 9.6MHz External Clock42 */
- {0x19, 0x01, 0x1F, 0x27, 0x06, 0x20, 0xB9}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x32}, {0x39, 0x3C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- RTV_ADC_CLK_FREQ_9_MHz
-};
-#endif
-
-#ifdef RTV_TDMB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x24}, {0x39, 0x2C}
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x24}, {0x39, 0x2C}
-};
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x24}, {0x39, 0x2C}
-};
-#endif
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 48000)
-static const U8 g_abAdcClkSynTbl[MAX_NUM_RTV_ADC_CLK_FREQ_TYPE][7] = {
- /* Based 48MHz, 8MHz External Clock43 */
- {0x0C, 0x01, 0x0F, 0x27, 0x07, 0x60, 0xB8},
- /* Based 48MHz, 8.192MHz */ /* Unsupport */
- {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
- /* Based 48MHz, 9MHz External Clock44 */
- {0x0C, 0x01, 0x0F, 0x27, 0x07, 0x6C, 0xB8},
- /* Based 48MHz, 9.6MHz External Clock45 */
- {0x0A, 0x01, 0x0B, 0x23, 0x06, 0x60, 0xB0}
-};
-
-#ifdef RTV_ISDBT_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_ISDBT[] = {
- {0x37, 0x29}, {0x39, 0x2C}
-};
-
-static const E_RTV_ADC_CLK_FREQ_TYPE g_aeAdcClkTypeTbl_ISDBT[] = {
- RTV_ADC_CLK_FREQ_8_MHz,
- RTV_ADC_CLK_FREQ_9_6_MHz,
- RTV_ADC_CLK_FREQ_9_MHz
-};
-#endif
-
-#ifdef RTV_TDMB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_TDMB[] = {
- {0x37, 0x1E}, {0x39, 0x1C}
-};
-#endif
-
-#ifdef RTV_DAB_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_DAB[] = {
- {0x37, 0x1E}, {0x39, 0x1C}
-};
-#endif
-
-#ifdef RTV_FM_ENABLE
-static const struct RTV_REG_INIT_INFO g_atAutoLnaInitData_FM[] = {
- {0x37, 0x1E}, {0x39, 0x2C}
-};
-#endif
-
-#else
-#error "Unsupport external clock freqency!"
-#endif
-
diff --git a/drivers/media/tdmb/mtv318/raontv_rf_pll_data_tdmb.h b/drivers/media/tdmb/mtv318/raontv_rf_pll_data_tdmb.h
deleted file mode 100644
index 0f5e132..0000000
--- a/drivers/media/tdmb/mtv318/raontv_rf_pll_data_tdmb.h
+++ /dev/null
@@ -1,412 +0,0 @@
-/*
- *
- * File name: drivers/media/tdmb/mtv318/src/raontv_rf_pll_data_tdmb.h
- *
- * Description : RAONTECH TV RF PLL data header file.
- *
- * Copyright (C) (2011, RAONTECH)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#if (RTV_SRC_CLK_FREQ_KHz == 13000)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x6BE2115/* 7A: 175280 */,
- 0x6CF24B4/* 7B: 177008 */,
- 0x6E02854/* 7C: 178736 */,
- 0x6F934C6/* 8A: 181280 */,
- 0x70A3866/* 8B: 183008 */,
- 0x71B3C05/* 8C: 184736 */,
- 0x7344877/* 9A: 187280 */,
- 0x7454C17/* 9B: 189008 */,
- 0x7564FB6/* 9C: 190736 */,
- 0x76F5C28/* 10A: 193280 */,
- 0x7805FC8/* 10B: 195008 */,
- 0x7916368/* 10C: 196736 */,
- 0x7AA6FDA/* 11A: 199280 */,
- 0x7BB7379/* 11B: 201008 */,
- 0x7CC7719/* 11C: 202736 */,
- 0x7E5838B/* 12A: 205280 */,
- 0x7F6872B/* 12B: 207008 */,
- 0x8078ACA/* 12C: 208736 */,
- 0x820973C/* 13A: 211280 */,
- 0x8319ADC/* 13B: 213008 */,
- 0x8429E7B/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 16000)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x57A7AE1/* 7A: 175280 */,
- 0x5884DD2/* 7B: 177008 */,
- 0x59620C4/* 7C: 178736 */,
- 0x5AA7AE1/* 8A: 181280 */,
- 0x5B84DD2/* 8B: 183008 */,
- 0x5C620C4/* 8C: 184736 */,
- 0x5DA7AE1/* 9A: 187280 */,
- 0x5E84DD2/* 9B: 189008 */,
- 0x5F620C4/* 9C: 190736 */,
- 0x60A7AE1/* 10A: 193280 */,
- 0x6184DD2/* 10B: 195008 */,
- 0x62620C4/* 10C: 196736 */,
- 0x63A7AE1/* 11A: 199280 */,
- 0x6484DD2/* 11B: 201008 */,
- 0x65620C4/* 11C: 202736 */,
- 0x66A7AE1/* 12A: 205280 */,
- 0x6784DD2/* 12B: 207008 */,
- 0x68620C4/* 12C: 208736 */,
- 0x69A7AE1/* 13A: 211280 */,
- 0x6A84DD2/* 13B: 213008 */,
- 0x6B620C4/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 16384)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x5599C00/* 7A: 175280 */,
- 0x5671C00/* 7B: 177008 */,
- 0x5749C00/* 7C: 178736 */,
- 0x5887C00/* 8A: 181280 */,
- 0x595FC00/* 8B: 183008 */,
- 0x5A37C00/* 8C: 184736 */,
- 0x5B75C00/* 9A: 187280 */,
- 0x5C4DC00/* 9B: 189008 */,
- 0x5D25C00/* 9C: 190736 */,
- 0x5E63C00/* 10A: 193280 */,
- 0x5F3BC00/* 10B: 195008 */,
- 0x6013C00/* 10C: 196736 */,
- 0x6151C00/* 11A: 199280 */,
- 0x6229C00/* 11B: 201008 */,
- 0x6301C00/* 11C: 202736 */,
- 0x643FC00/* 12A: 205280 */,
- 0x6517C00/* 12B: 207008 */,
- 0x65EFC00/* 12C: 208736 */,
- 0x672DC00/* 13A: 211280 */,
- 0x6805C00/* 13B: 213008 */,
- 0x68DDC00/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 18000)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x4DEA61D/* 7A: 175280 */,
- 0x4EAEFD7/* 7B: 177008 */,
- 0x4F73992/* 7C: 178736 */,
- 0x50950C8/* 8A: 181280 */,
- 0x5159A82/* 8B: 183008 */,
- 0x521E43C/* 8C: 184736 */,
- 0x533FB72/* 9A: 187280 */,
- 0x540452D/* 9B: 189008 */,
- 0x54C8EE7/* 9C: 190736 */,
- 0x55EA61D/* 10A: 193280 */,
- 0x56AEFD7/* 10B: 195008 */,
- 0x5773992/* 10C: 196736 */,
- 0x58950C8/* 11A: 199280 */,
- 0x5959A82/* 11B: 201008 */,
- 0x5A1E43C/* 11C: 202736 */,
- 0x5B3FB72/* 12A: 205280 */,
- 0x5C0452D/* 12B: 207008 */,
- 0x5CC8EE7/* 12C: 208736 */,
- 0x5DEA61D/* 13A: 211280 */,
- 0x5EAEFD7/* 13B: 213008 */,
- 0x5F73992/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 19200)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x490BBBB/* 7A: 175280 */,
- 0x49C40DA/* 7B: 177008 */,
- 0x4A7C5F9/* 7C: 178736 */,
- 0x4B8BBBB/* 8A: 181280 */,
- 0x4C440DA/* 8B: 183008 */,
- 0x4CFC5F9/* 8C: 184736 */,
- 0x4E0BBBB/* 9A: 187280 */,
- 0x4EC40DA/* 9B: 189008 */,
- 0x4F7C5F9/* 9C: 190736 */,
- 0x508BBBB/* 10A: 193280 */,
- 0x51440DA/* 10B: 195008 */,
- 0x51FC5F9/* 10C: 196736 */,
- 0x530BBBB/* 11A: 199280 */,
- 0x53C40DA/* 11B: 201008 */,
- 0x547C5F9/* 11C: 202736 */,
- 0x558BBBB/* 12A: 205280 */,
- 0x56440DA/* 12B: 207008 */,
- 0x56FC5F9/* 12C: 208736 */,
- 0x580BBBB/* 13A: 211280 */,
- 0x58C40DA/* 13B: 213008 */,
- 0x597C5F9/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 24000)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x3A6FC96/* 7A: 175280 */,
- 0x3B033E1/* 7B: 177008 */,
- 0x3B96B2D/* 7C: 178736 */,
- 0x3C6FC96/* 8A: 181280 */,
- 0x3D033E1/* 8B: 183008 */,
- 0x3D96B2D/* 8C: 184736 */,
- 0x3E6FC96/* 9A: 187280 */,
- 0x3F033E1/* 9B: 189008 */,
- 0x3F96B2D/* 9C: 190736 */,
- 0x406FC96/* 10A: 193280 */,
- 0x41033E1/* 10B: 195008 */,
- 0x4196B2D/* 10C: 196736 */,
- 0x426FC96/* 11A: 199280 */,
- 0x43033E1/* 11B: 201008 */,
- 0x4396B2D/* 11C: 202736 */,
- 0x446FC96/* 12A: 205280 */,
- 0x45033E1/* 12B: 207008 */,
- 0x4596B2D/* 12C: 208736 */,
- 0x466FC96/* 13A: 211280 */,
- 0x47033E1/* 13B: 213008 */,
- 0x4796B2D/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 24576)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x39112AA/* 7A: 175280 */,
- 0x39A12AA/* 7B: 177008 */,
- 0x3A312AA/* 7C: 178736 */,
- 0x3B052AA/* 8A: 181280 */,
- 0x3B952AA/* 8B: 183008 */,
- 0x3C252AA/* 8C: 184736 */,
- 0x3CF92AA/* 9A: 187280 */,
- 0x3D892AA/* 9B: 189008 */,
- 0x3E192AA/* 9C: 190736 */,
- 0x3EED2AA/* 10A: 193280 */,
- 0x3F7D2AA/* 10B: 195008 */,
- 0x400D2AA/* 10C: 196736 */,
- 0x40E12AA/* 11A: 199280 */,
- 0x41712AA/* 11B: 201008 */,
- 0x42012AA/* 11C: 202736 */,
- 0x42D52AA/* 12A: 205280 */,
- 0x43652AA/* 12B: 207008 */,
- 0x43F52AA/* 12C: 208736 */,
- 0x44C92AA/* 13A: 211280 */,
- 0x45592AA/* 13B: 213008 */,
- 0x45E92AA/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 26000)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x35F108A/* 7A: 175280 */,
- 0x367925A/* 7B: 177008 */,
- 0x370142A/* 7C: 178736 */,
- 0x37C9A63/* 8A: 181280 */,
- 0x3851C33/* 8B: 183008 */,
- 0x38D9E02/* 8C: 184736 */,
- 0x39A243B/* 9A: 187280 */,
- 0x3A2A60B/* 9B: 189008 */,
- 0x3AB27DB/* 9C: 190736 */,
- 0x3B7AE14/* 10A: 193280 */,
- 0x3C02FE4/* 10B: 195008 */,
- 0x3C8B1B4/* 10C: 196736 */,
- 0x3D537ED/* 11A: 199280 */,
- 0x3DDB9BC/* 11B: 201008 */,
- 0x3E63B8C/* 11C: 202736 */,
- 0x3F2C1C5/* 12A: 205280 */,
- 0x3FB4395/* 12B: 207008 */,
- 0x403C565/* 12C: 208736 */,
- 0x4104B9E/* 13A: 211280 */,
- 0x418CD6E/* 13B: 213008 */,
- 0x4214F3D/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 27000)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x33F1969/* 7A: 175280 */,
- 0x3474A8F/* 7B: 177008 */,
- 0x34F7BB6/* 7C: 178736 */,
- 0x35B8B30/* 8A: 181280 */,
- 0x363BC57/* 8B: 183008 */,
- 0x36BED7D/* 8C: 184736 */,
- 0x377FCF7/* 9A: 187280 */,
- 0x3802E1E/* 9B: 189008 */,
- 0x3885F45/* 9C: 190736 */,
- 0x3946EBE/* 10A: 193280 */,
- 0x39C9FE5/* 10B: 195008 */,
- 0x3A4D10C/* 10C: 196736 */,
- 0x3B0E085/* 11A: 199280 */,
- 0x3B911AC/* 11B: 201008 */,
- 0x3C142D3/* 11C: 202736 */,
- 0x3CD524C/* 12A: 205280 */,
- 0x3D58373/* 12B: 207008 */,
- 0x3DDB49A/* 12C: 208736 */,
- 0x3E9C413/* 13A: 211280 */,
- 0x3F1F53A/* 13B: 213008 */,
- 0x3FA2661/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 32000)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x2BD3D70/* 7A: 175280 */,
- 0x2C426E9/* 7B: 177008 */,
- 0x2CB1062/* 7C: 178736 */,
- 0x2D53D70/* 8A: 181280 */,
- 0x2DC26E9/* 8B: 183008 */,
- 0x2E31062/* 8C: 184736 */,
- 0x2ED3D70/* 9A: 187280 */,
- 0x2F426E9/* 9B: 189008 */,
- 0x2FB1062/* 9C: 190736 */,
- 0x3053D70/* 10A: 193280 */,
- 0x30C26E9/* 10B: 195008 */,
- 0x3131062/* 10C: 196736 */,
- 0x31D3D70/* 11A: 199280 */,
- 0x32426E9/* 11B: 201008 */,
- 0x32B1062/* 11C: 202736 */,
- 0x3353D70/* 12A: 205280 */,
- 0x33C26E9/* 12B: 207008 */,
- 0x3431062/* 12C: 208736 */,
- 0x34D3D70/* 13A: 211280 */,
- 0x35426E9/* 13B: 213008 */,
- 0x35B1062/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 32768)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x2ACCE00/* 7A: 175280 */,
- 0x2B38E00/* 7B: 177008 */,
- 0x2BA4E00/* 7C: 178736 */,
- 0x2C43E00/* 8A: 181280 */,
- 0x2CAFE00/* 8B: 183008 */,
- 0x2D1BE00/* 8C: 184736 */,
- 0x2DBAE00/* 9A: 187280 */,
- 0x2E26E00/* 9B: 189008 */,
- 0x2E92E00/* 9C: 190736 */,
- 0x2F31E00/* 10A: 193280 */,
- 0x2F9DE00/* 10B: 195008 */,
- 0x3009E00/* 10C: 196736 */,
- 0x30A8E00/* 11A: 199280 */,
- 0x3114E00/* 11B: 201008 */,
- 0x3180E00/* 11C: 202736 */,
- 0x321FE00/* 12A: 205280 */,
- 0x328BE00/* 12B: 207008 */,
- 0x32F7E00/* 12C: 208736 */,
- 0x3396E00/* 13A: 211280 */,
- 0x3402E00/* 13B: 213008 */,
- 0x346EE00/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 36000)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x26F530E/* 7A: 175280 */,
- 0x27577EB/* 7B: 177008 */,
- 0x27B9CC9/* 7C: 178736 */,
- 0x284A864/* 8A: 181280 */,
- 0x28ACD41/* 8B: 183008 */,
- 0x290F21E/* 8C: 184736 */,
- 0x299FDB9/* 9A: 187280 */,
- 0x2A02296/* 9B: 189008 */,
- 0x2A64773/* 9C: 190736 */,
- 0x2AF530E/* 10A: 193280 */,
- 0x2B577EB/* 10B: 195008 */,
- 0x2BB9CC9/* 10C: 196736 */,
- 0x2C4A864/* 11A: 199280 */,
- 0x2CACD41/* 11B: 201008 */,
- 0x2D0F21E/* 11C: 202736 */,
- 0x2D9FDB9/* 12A: 205280 */,
- 0x2E02296/* 12B: 207008 */,
- 0x2E64773/* 12C: 208736 */,
- 0x2EF530E/* 13A: 211280 */,
- 0x2F577EB/* 13B: 213008 */,
- 0x2FB9CC9/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 38400)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x2485DDD/* 7A: 175280 */,
- 0x24E206D/* 7B: 177008 */,
- 0x253E2FC/* 7C: 178736 */,
- 0x25C5DDD/* 8A: 181280 */,
- 0x262206D/* 8B: 183008 */,
- 0x267E2FC/* 8C: 184736 */,
- 0x2705DDD/* 9A: 187280 */,
- 0x276206D/* 9B: 189008 */,
- 0x27BE2FC/* 9C: 190736 */,
- 0x2845DDD/* 10A: 193280 */,
- 0x28A206D/* 10B: 195008 */,
- 0x28FE2FC/* 10C: 196736 */,
- 0x2985DDD/* 11A: 199280 */,
- 0x29E206D/* 11B: 201008 */,
- 0x2A3E2FC/* 11C: 202736 */,
- 0x2AC5DDD/* 12A: 205280 */,
- 0x2B2206D/* 12B: 207008 */,
- 0x2B7E2FC/* 12C: 208736 */,
- 0x2C05DDD/* 13A: 211280 */,
- 0x2C6206D/* 13B: 213008 */,
- 0x2CBE2FC/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 40000)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x230FDF3/* 7A: 175280 */,
- 0x2368587/* 7B: 177008 */,
- 0x23C0D1B/* 7C: 178736 */,
- 0x2443126/* 8A: 181280 */,
- 0x249B8BA/* 8B: 183008 */,
- 0x24F404E/* 8C: 184736 */,
- 0x257645A/* 9A: 187280 */,
- 0x25CEBED/* 9B: 189008 */,
- 0x2627381/* 9C: 190736 */,
- 0x26A978D/* 10A: 193280 */,
- 0x2701F21/* 10B: 195008 */,
- 0x275A6B5/* 10C: 196736 */,
- 0x27DCAC0/* 11A: 199280 */,
- 0x2835254/* 11B: 201008 */,
- 0x288D9E8/* 11C: 202736 */,
- 0x290FDF3/* 12A: 205280 */,
- 0x2968587/* 12B: 207008 */,
- 0x29C0D1B/* 12C: 208736 */,
- 0x2A43126/* 13A: 211280 */,
- 0x2A9B8BA/* 13B: 213008 */,
- 0x2AF404E/* 13C: 214736 */
-
-};
-
-#elif (RTV_SRC_CLK_FREQ_KHz == 48000)
-static const U32 g_atPllNF_TDMB_Korea[] = {
- 0x1D37E4B/* 7A: 175280 */,
- 0x1D819F0/* 7B: 177008 */,
- 0x1DCB596/* 7C: 178736 */,
- 0x1E37E4B/* 8A: 181280 */,
- 0x1E819F0/* 8B: 183008 */,
- 0x1ECB596/* 8C: 184736 */,
- 0x1F37E4B/* 9A: 187280 */,
- 0x1F819F0/* 9B: 189008 */,
- 0x1FCB596/* 9C: 190736 */,
- 0x2037E4B/* 10A: 193280 */,
- 0x20819F0/* 10B: 195008 */,
- 0x20CB596/* 10C: 196736 */,
- 0x2137E4B/* 11A: 199280 */,
- 0x21819F0/* 11B: 201008 */,
- 0x21CB596/* 11C: 202736 */,
- 0x2237E4B/* 12A: 205280 */,
- 0x22819F0/* 12B: 207008 */,
- 0x22CB596/* 12C: 208736 */,
- 0x2337E4B/* 13A: 211280 */,
- 0x23819F0/* 13B: 213008 */,
- 0x23CB596/* 13C: 214736 */
-
-};
-
-#else
-#error "Code not present"
-#endif
diff --git a/drivers/media/tdmb/mtv318/raontv_tdmb.c b/drivers/media/tdmb/mtv318/raontv_tdmb.c
deleted file mode 100644
index 4b20f7e..0000000
--- a/drivers/media/tdmb/mtv318/raontv_tdmb.c
+++ /dev/null
@@ -1,1987 +0,0 @@
-/*
- *
- * File name: drivers/media/tdmb/mtv318/src/raontv_tdmb.c
- *
- * Description : RAONTECH TV T-DMB services driver.
- *
- * Copyright (C) (2011, RAONTECH)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include "raontv_rf.h"
-
-#ifdef RTV_TDMB_ENABLE
-
-#undef OFDM_PAGE
-#define OFDM_PAGE 0x6
-
-#undef FEC_PAGE
-#define FEC_PAGE 0x09
-
-#define MAX_NUM_TDMB_SUB_CH 64
-
-/* Registered sub channel Table. */
-struct RTV_TDMB_REG_SUBCH_INFO {
- UINT nSubChID;
- UINT nHwSubChIdx;
- enum E_RTV_TDMB_SERVICE_TYPE eServiceType;
- UINT nThresholdSize;
-};
-
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED == 1) /* Single Sub Channel */
-#define TDMB_MSC0_SUBCH_USE_MASK 0x00 /* NA */
-#define TDMB_MSC1_SUBCH_USE_MASK 0x01 /* SUBCH 0 */
-
-#else /* Multi Sub Channel */
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
-#define TDMB_MSC0_SUBCH_USE_MASK 0x78 /* SUBCH 3,4,5,6 */
-#else
-#define TDMB_MSC0_SUBCH_USE_MASK 0x70 /* SUBCH 3,4,5 */
-#endif
-#define TDMB_MSC1_SUBCH_USE_MASK 0x01 /* SUBCH 0 */
-#endif
-
-static struct RTV_TDMB_REG_SUBCH_INFO
- g_atTdmbRegSubchInfo[RTV_MAX_NUM_SUB_CHANNEL_USED];
-static UINT g_nRegSubChArrayIdxBits;
-static UINT g_nRtvUsedHwSubChIdxBits;
-static U32 g_dwTdmbPrevChFreqKHz;
-static BOOL g_fRtvTdmbConfiguredFIC;
-
-#define SUBCH_GRP_IDX(sub_ch_id) (sub_ch_id >> 5) /* Divide by 32 */
-#define MOD32(x) (x & 31)
-/* Used sub channel ID bits. [0]: 0 ~ 31, [1]: 32 ~ 63 */
-static U32 g_aRegSubChIdBits[2];
-
-/*==============================================================================
- * Replace the below code to eliminates the sqrt() and log10() functions.
- * In addtion, to eliminates floating operation,
- * we multiplied by RTV_TDMB_SNR_DIVIDER to the floating SNR.
- * SNR = (double)(100/(sqrt((double)data)
- * - log10((double)data)*log10((double)data)) -7);
- *============================================================================*/
-static const U16 g_awSNR_15_160[] = {
- 33163/* 15 */,
- 32214/* 16 */,
- 31327/* 17 */,
- 30496/* 18 */,
- 29714/* 19 */,
- 28978/* 20 */,
- 28281/* 21 */,
- 27622/* 22 */,
- 26995/* 23 */,
- 26400/* 24 */,
- 25832/* 25 */,
- 25290/* 26 */,
- 24772/* 27 */,
- 24277/* 28 */,
- 23801/* 29 */,
- 23345/* 30 */,
- 22907/* 31 */,
- 22486/* 32 */,
- 22080/* 33 */,
- 21690/* 34 */,
- 21313/* 35 */,
- 20949/* 36 */,
- 20597/* 37 */,
- 20257/* 38 */,
- 19928/* 39 */,
- 19610/* 40 */,
- 19301/* 41 */,
- 19002/* 42 */,
- 18712/* 43 */,
- 18430/* 44 */,
- 18156/* 45 */,
- 17890/* 46 */,
- 17632/* 47 */,
- 17380/* 48 */,
- 17135/* 49 */,
- 16897/* 50 */,
- 16665/* 51 */,
- 16438/* 52 */,
- 16218/* 53 */,
- 16002/* 54 */,
- 15792/* 55 */,
- 15587/* 56 */,
- 15387/* 57 */,
- 15192/* 58 */,
- 15001/* 59 */,
- 14814/* 60 */,
- 14631/* 61 */,
- 14453/* 62 */,
- 14278/* 63 */,
- 14107/* 64 */,
- 13939/* 65 */,
- 13775/* 66 */,
- 13615/* 67 */,
- 13457/* 68 */,
- 13303/* 69 */,
- 13152/* 70 */,
- 13004/* 71 */,
- 12858/* 72 */,
- 12715/* 73 */,
- 12575/* 74 */,
- 12438/* 75 */,
- 12303/* 76 */,
- 12171/* 77 */,
- 12041/* 78 */,
- 11913/* 79 */,
- 11788/* 80 */,
- 11664/* 81 */,
- 11543/* 82 */,
- 11424/* 83 */,
- 11307/* 84 */,
- 11192/* 85 */,
- 11078/* 86 */,
- 10967/* 87 */,
- 10857/* 88 */,
- 10749/* 89 */,
- 10643/* 90 */,
- 10539/* 91 */,
- 10436/* 92 */,
- 10334/* 93 */,
- 10235/* 94 */,
- 10136/* 95 */,
- 10039/* 96 */,
- 9944/* 97 */,
- 9850/* 98 */,
- 9757/* 99 */,
- 9666/* 100 */,
- 9576/* 101 */,
- 9487/* 102 */,
- 9400/* 103 */,
- 9314/* 104 */,
- 9229/* 105 */,
- 9145/* 106 */,
- 9062/* 107 */,
- 8980/* 108 */,
- 8900/* 109 */,
- 8820/* 110 */,
- 8742/* 111 */,
- 8664/* 112 */,
- 8588/* 113 */,
- 8512/* 114 */,
- 8438/* 115 */,
- 8364/* 116 */,
- 8292/* 117 */,
- 8220/* 118 */,
- 8149/* 119 */,
- 8079/* 120 */,
- 8010/* 121 */,
- 7942/* 122 */,
- 7874/* 123 */,
- 7807/* 124 */,
- 7742/* 125 */,
- 7676/* 126 */,
- 7612/* 127 */,
- 7548/* 128 */,
- 7485/* 129 */,
- 7423/* 130 */,
- 7362/* 131 */,
- 7301/* 132 */,
- 7241/* 133 */,
- 7181/* 134 */,
- 7123/* 135 */,
- 7064/* 136 */,
- 7007/* 137 */,
- 6950/* 138 */,
- 6894/* 139 */,
- 6838/* 140 */,
- 6783/* 141 */,
- 6728/* 142 */,
- 6674/* 143 */,
- 6621/* 144 */,
- 6568/* 145 */,
- 6516/* 146 */,
- 6464/* 147 */,
- 6412/* 148 */,
- 6362/* 149 */,
- 6311/* 150 */,
- 6262/* 151 */,
- 6212/* 152 */,
- 6164/* 153 */,
- 6115/* 154 */,
- 6067/* 155 */,
- 6020/* 156 */,
- 5973/* 157 */,
- 5927/* 158 */,
- 5881/* 159 */,
- 5835 /* 160 */
-};
-
-static void tdmb_InitTOP(void)
-{
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x07, 0x08);
- RTV_REG_SET(0x05, 0x17);
- RTV_REG_SET(0x06, 0x10);
- RTV_REG_SET(0x0A, 0x00);
-}
-
-/*==============================================================================
- * Name : tdmb_InitCOMM
- * Action : MAP SEL COMM Register Init
- * Input : Chip Address
- * Output : None
- *============================================================================*/
-static void tdmb_InitCOMM(void)
-{
- RTV_REG_MAP_SEL(COMM_PAGE);
- RTV_REG_SET(0x10, 0x91);
- RTV_REG_SET(0xE1, 0x00);
-
- RTV_REG_SET(0x35, 0X8B);
- RTV_REG_SET(0x3B, 0x3C);
-
- RTV_REG_SET(0x36, 0x67);
- RTV_REG_SET(0x3A, 0x0F);
-
- RTV_REG_SET(0x3C, 0x20);
- RTV_REG_SET(0x3D, 0x0B);
- RTV_REG_SET(0x3D, 0x09);
-
- RTV_REG_SET(0xA6, 0x30);
- /*0x30 ==>NO TSOUT@Error packet, 0x10 ==> NULL PID PACKET@Error packet*/
-
- RTV_REG_SET(0xAA, 0x01);
- /* Enable 0x47 insertion to video frame. */
-
- RTV_REG_SET(0xAF, 0x07);
- /* FEC */
-
-}
-
-/*==============================================================================
- * Name : tdmb_InitHOST
- * Action : MAP SEL HOST Register Init
- * Input : Chip Address
- * Output : None
- *============================================================================*/
-static void tdmb_InitHOST(void)
-{
- RTV_REG_MAP_SEL(HOST_PAGE);
- RTV_REG_SET(0x10, 0x00);
- RTV_REG_SET(0x13, 0x16);
- RTV_REG_SET(0x14, 0x00);
- RTV_REG_SET(0x19, 0x0A);
- RTV_REG_SET(0xF0, 0x00);
- RTV_REG_SET(0xF1, 0x00);
- RTV_REG_SET(0xF2, 0x00);
- RTV_REG_SET(0xF3, 0x00);
- RTV_REG_SET(0xF4, 0x00);
- RTV_REG_SET(0xF5, 0x00);
- RTV_REG_SET(0xF6, 0x00);
- RTV_REG_SET(0xF7, 0x00);
- RTV_REG_SET(0xF8, 0x00);
- RTV_REG_SET(0xFB, 0xFF);
-
-}
-
-/*==============================================================================
- * Name : tdmb_InitOFDM
- * Action : MAP SEL OFDM Register Init
- * Input : Chip Address
- * Output : None
- *============================================================================*/
-static void tdmb_InitOFDM(void)
-{
- U8 INV_MODE;
- U8 PWM_COM;
- U8 WAGC_COM;
- U8 AGC_MODE;
- U8 POST_INIT;
- U8 AGC_CYCLE;
-
- INV_MODE = 1;
- PWM_COM = 0x08;
- WAGC_COM = 0x03;
- AGC_MODE = 0x06;
- POST_INIT = 0x09;
- AGC_CYCLE = 0x10;
-
- RTV_REG_MAP_SEL(OFDM_PAGE);
-
- if (g_eRtvCountryBandType == RTV_COUNTRY_BAND_KOREA)
- RTV_REG_SET(0x11, 0x8e);
-
- RTV_REG_SET(0x12, 0x04);
-
- RTV_REG_SET(0x13, 0x72);
- RTV_REG_SET(0x14, 0x63);
- RTV_REG_SET(0x15, 0x64);
-
- RTV_REG_SET(0x16, 0x6C);
-
- RTV_REG_SET(0x1a, 0xb4);
-
- RTV_REG_SET(0x38, 0x01);
-
- RTV_REG_SET(0x20, 0x5B);
-
- RTV_REG_SET(0x25, 0x09);
-
- RTV_REG_SET(0x44, 0x00 | (POST_INIT));
-
- RTV_REG_SET(0x46, 0xA0);
- RTV_REG_SET(0x47, 0x0F);
-
- RTV_REG_SET(0x48, 0xB8);
- RTV_REG_SET(0x49, 0x0B);
- RTV_REG_SET(0x54, 0x58);
-
- RTV_REG_SET(0x55, 0x06);
-
- RTV_REG_SET(0x56, 0x00 | (AGC_CYCLE));
-
- RTV_REG_SET(0x59, 0x51);
-
- RTV_REG_SET(0x5A, 0x1C);
-
- RTV_REG_SET(0x6D, 0x00);
- RTV_REG_SET(0x8B, 0x24);
-
- RTV_REG_SET(0x6B, 0x2D);
- RTV_REG_SET(0x85, 0x32);
- RTV_REG_SET(0x8E, 0x01);
-
- RTV_REG_SET(0x33, 0x00 | (INV_MODE<<1));
- RTV_REG_SET(0x53, 0x00 | (AGC_MODE));
-
- RTV_REG_SET(0x6F, 0x00 | (WAGC_COM));
-
- RTV_REG_SET(0xBA, PWM_COM);
-
- switch (g_eRtvAdcClkFreqType) {
- case RTV_ADC_CLK_FREQ_8_MHz:
- RTV_REG_MAP_SEL(COMM_PAGE);
- RTV_REG_SET(0x6A, 0x01);
-
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x3c, 0x4B);
- RTV_REG_SET(0x3d, 0x37);
- RTV_REG_SET(0x3e, 0x89);
- RTV_REG_SET(0x3f, 0x41);
- break;
-
- case RTV_ADC_CLK_FREQ_8_192_MHz:
- RTV_REG_MAP_SEL(COMM_PAGE);
- RTV_REG_SET(0x6A, 0x01);
-
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x3c, 0x00);
- RTV_REG_SET(0x3d, 0x00);
- RTV_REG_SET(0x3e, 0x00);
- RTV_REG_SET(0x3f, 0x40);
- break;
-
- case RTV_ADC_CLK_FREQ_9_MHz:
- RTV_REG_MAP_SEL(COMM_PAGE);
- RTV_REG_SET(0x6A, 0x21);
-
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x3c, 0xB5);
- RTV_REG_SET(0x3d, 0x14);
- RTV_REG_SET(0x3e, 0x41);
- RTV_REG_SET(0x3f, 0x3A);
- break;
-
- case RTV_ADC_CLK_FREQ_9_6_MHz:
- RTV_REG_MAP_SEL(COMM_PAGE);
- RTV_REG_SET(0x6A, 0x31);
-
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x3c, 0x69);
- RTV_REG_SET(0x3d, 0x03);
- RTV_REG_SET(0x3e, 0x9D);
- RTV_REG_SET(0x3f, 0x36);
- break;
-
- default:
- RTV_DBGMSG0("[tdmb_InitOFDM] Upsupport ADC clock type!\n");
- break;
- }
-
- RTV_REG_SET(0x42, 0x00);
- RTV_REG_SET(0x43, 0x00);
-
- RTV_REG_SET(0x94, 0x08);
-
- RTV_REG_SET(0x98, 0x05);
- RTV_REG_SET(0x99, 0x03);
- RTV_REG_SET(0x9B, 0xCF);
- RTV_REG_SET(0x9C, 0x10);
- RTV_REG_SET(0x9D, 0x1C);
- RTV_REG_SET(0x9F, 0x32);
- RTV_REG_SET(0xA0, 0x90);
-
- RTV_REG_SET(0xA4, 0x01);
-
- RTV_REG_SET(0xA8, 0xF6);
- RTV_REG_SET(0xA9, 0x89);
- RTV_REG_SET(0xAA, 0x0C);
- RTV_REG_SET(0xAB, 0x32);
-
- RTV_REG_SET(0xAC, 0x14);
- RTV_REG_SET(0xAD, 0x09);
-
- RTV_REG_SET(0xAE, 0xFF);
-
- RTV_REG_SET(0xEB, 0x6B);
-}
-
-/*==============================================================================
- * Name : tdmb_InitFEC
- * Action : MAP SEL FEC Register Init
- * Input : Chip Address
- * Output : None
- *============================================================================*/
-static void tdmb_InitFEC(void)
-{
- RTV_REG_MAP_SEL(FEC_PAGE);
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED == 1)
- RTV_REG_MASK_SET(0x7D, 0x10, 0x10);
- /* 7KB memory use. */
-#endif
-#endif
-
- RTV_REG_SET(0x80, 0x80);
- RTV_REG_SET(0x81, 0xFF);
- RTV_REG_SET(0x87, 0x07);
- RTV_REG_SET(0x45, 0xA0);
- RTV_REG_SET(0xDD, 0xD0);
- RTV_REG_SET(0x39, 0x07);
- RTV_REG_SET(0xE6, 0x10);
- RTV_REG_SET(0xA5, 0xA0);
-}
-
-static void tdmb_InitDemod(void)
-{
- tdmb_InitTOP();
- tdmb_InitCOMM();
- tdmb_InitHOST();
- tdmb_InitOFDM();
- tdmb_InitFEC();
-
- rtv_ResetMemory_FIC(); /* Must disable before transmit con. */
-
- /* Configure interrupt. */
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- rtvOEM_ConfigureInterrupt();
-
-#elif defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)
-#ifndef RTV_FIC_POLLING_MODE
- rtvOEM_ConfigureInterrupt(); /* FIC interrupt */
-#endif
-#endif
-
- /* Configure CIF Header enable or disable for MSC0. */
-#ifndef RTV_CIF_HEADER_INSERTED
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_MASK_SET(0x31, 0x03, 0x00);
- /* [0]:MSC0_HEAD_EN, [1]:MSC_HEAD_NBYTE : MSC0 Header OFF */
-
-#else /* CIF Header Enable */
- RTV_REG_MAP_SEL(DD_PAGE);
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- /* [0]:MSC0_HEAD_EN, [1]:MSC_HEAD_NBYTE : MSC0 Header ON */
- RTV_REG_MASK_SET(0x31, 0x03, 0x03);
-#else
- /* [0]:MSC0_HEAD_EN, [1]:MSC_HEAD_NBYTE : MSC0 Header OFF */
- RTV_REG_MASK_SET(0x31, 0x03, 0x00);
-#endif
-#endif
-
- /* Configure TSIF. */
-#if defined(RTV_IF_MPEG2_SERIAL_TSIF)
- || defined(RTV_IF_SPI_SLAVE)
- || defined(RTV_IF_QUALCOMM_TSIF)
-
- rtv_ConfigureTsifFormat();
-
- /* Configure TS memory and mode. */
- RTV_REG_MAP_SEL(COMM_PAGE);
-#ifndef RTV_CIF_MODE_ENABLED /* Individual Mode */
- RTV_REG_SET(0x47, 0x13|RTV_COMM_CON47_CLK_SEL); /* MSC1 DD-TSI enable*/
-#else /* CIF Mode */
- /*
- [5] CIF_MODE_EN: TSI CIF transmit mode enable. 1 = CIF, 0 = Individual
- [4] MSC1_EN: MSC1 transmit enable
- [3] MSC0_EN: MSC0 transmit enable
- [2] FIC_EN: FIC transmit enable */
-
- /* CIF/FIC/MSC0/MSC1 DD-TSI enable */
- RTV_REG_SET(0x47, 0x3F|RTV_COMM_CON47_CLK_SEL);
-
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0xD6, 0xF4);
-#endif
-
-#elif defined(RTV_IF_MPEG2_PARALLEL_TSIF)
- rtv_SetParallelTsif_TDMB_Only();
-#endif
-
- rtv_ConfigureHostIF();
-}
-
-static void tdmb_SoftReset(void)
-{
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x10, 0x48);
- /* FEC reset enable */
- RTV_DELAY_MS(1);
- RTV_REG_SET(0x10, 0xC9);
- /* OFDM & FEC Soft reset */
-}
-
-void rtvTDMB_StandbyMode(int on)
-{
- RTV_GUARD_LOCK;
-
- if (on) {
- RTV_REG_MAP_SEL(RF_PAGE);
- RTV_REG_MASK_SET(0x57, 0x04, 0x04);
- /* SW PD ALL */
- } else {
- RTV_REG_MAP_SEL(RF_PAGE);
- RTV_REG_MASK_SET(0x57, 0x04, 0x00);
- /* SW PD ALL */
- }
-
- RTV_GUARD_FREE;
-}
-
-UINT rtvTDMB_GetLockStatus(void)
-{
- U8 lock_stat;
- UINT lock_st = 0;
-
- if (g_fRtvChannelChange) {
- RTV_DBGMSG0("[rtvTDMB_GetLockStatus] "
- "RTV Freqency change state!\n");
- return 0x0;
- }
-
- RTV_GUARD_LOCK;
-
- RTV_REG_MAP_SEL(DD_PAGE);
- lock_stat = RTV_REG_GET(0x37);
- if (lock_stat & 0x01)
- lock_st = RTV_TDMB_OFDM_LOCK_MASK;
-
- RTV_REG_MAP_SEL(FEC_PAGE);
- lock_stat = RTV_REG_GET(0xFB);
-
- RTV_GUARD_FREE;
-
- if ((lock_stat & 0x03) == 0x03)
- lock_st |= RTV_TDMB_FEC_LOCK_MASK;
-
- return lock_st;
-}
-
-U32 rtvTDMB_GetPER(void)
-{
- U8 rdata0, rdata1, rs_sync;
-
- if (g_fRtvChannelChange) {
- RTV_DBGMSG0("[rtvTDMB_GetPER] "
- "RTV Freqency change state!\n");
- return 0;
- }
-
- RTV_GUARD_LOCK;
-
- RTV_REG_MAP_SEL(FEC_PAGE);
- rdata0 = RTV_REG_GET(0xD7);
- rs_sync = (rdata0 & 0x08) >> 3;
- if (rs_sync != 0x01) {
- RTV_GUARD_FREE;
- return 700;
- }
-
- rdata1 = RTV_REG_GET(0xB4);
- rdata0 = RTV_REG_GET(0xB5);
-
- RTV_GUARD_FREE;
-
- return (rdata1 << 8) | rdata0;
-}
-
-S32 rtvTDMB_GetRSSI(void)
-{
- U8 RD00, GVBB, LNAGAIN, RFAGC;
- S32 nRssi = 0;
-
- if (g_fRtvChannelChange) {
- RTV_DBGMSG0("[rtvTDMB_GetRSSI] RTV Freqency change state!\n");
- return 0;
- }
-
- RTV_GUARD_LOCK;
-
- RTV_REG_MAP_SEL(RF_PAGE);
- RD00 = RTV_REG_GET(0x00);
- GVBB = RTV_REG_GET(0x05);
-
- RTV_GUARD_FREE;
-
- LNAGAIN = ((RD00 & 0x30) >> 4);
- RFAGC = (RD00 & 0x0F);
-
- switch (LNAGAIN) {
- case 0:
- nRssi = -((RFAGC * (S32)(2.75*RTV_TDMB_RSSI_DIVIDER))
- + (GVBB * (S32)(0.36*RTV_TDMB_RSSI_DIVIDER))
- - (S32)(12*RTV_TDMB_RSSI_DIVIDER));
- break;
-
- case 1:
- nRssi = -((RFAGC * (S32)(2.75*RTV_TDMB_RSSI_DIVIDER))
- + (GVBB * (S32)(0.36*RTV_TDMB_RSSI_DIVIDER))
- + (S32)(-2*RTV_TDMB_RSSI_DIVIDER));
- break;
-
- case 2:
- nRssi = -((RFAGC * (S32)(3*RTV_TDMB_RSSI_DIVIDER))
- + (GVBB * (S32)(0.365*RTV_TDMB_RSSI_DIVIDER))
- + (S32)(3*RTV_TDMB_RSSI_DIVIDER));
- break;
-
- case 3:
- nRssi = -((RFAGC * (S32)(3*RTV_TDMB_RSSI_DIVIDER))
- + (GVBB * (S32)(0.5*RTV_TDMB_RSSI_DIVIDER))
- + (S32)(0.5*RTV_TDMB_RSSI_DIVIDER));
- break;
-
- default:
- break;
- }
-
- if (((RD00&0xC0) == 0x40) && (GVBB > 123))
- nRssi -= (S32)(0*RTV_TDMB_RSSI_DIVIDER);
-
- return nRssi;
-}
-
-
-U32 rtvTDMB_GetCNR(void)
-{
- U8 data1 = 0, data2 = 0;
- U8 data = 0;
- U32 SNR = 0;
-
- if (g_fRtvChannelChange) {
- RTV_DBGMSG0("[rtvTDMB_GetCNR] RTV Freqency change state!\n");
- return 0;
- }
-
- RTV_GUARD_LOCK;
-
- RTV_REG_MAP_SEL(OFDM_PAGE);
-
- RTV_REG_SET(0x82, 0x01);
- data1 = RTV_REG_GET(0x7E);
- data2 = RTV_REG_GET(0x7F);
-
- RTV_GUARD_FREE;
-
- data = ((data2 & 0x1f) << 8) + data1;
-
- if (data == 0)
- return 0;
- else if ((data > 0) && (data < 15))
- SNR = (S32) (33 * RTV_TDMB_CNR_DIVIDER);
- else if ((data >= 15) && (data <= 160))
- SNR = g_awSNR_15_160[data - 15];
- else if (data > 160)
- SNR = (S32) (5.44 * RTV_TDMB_CNR_DIVIDER);
-
- return SNR;
-}
-
-/* MSC BER (0 ~ 140) */
-U32 rtvTDMB_GetCER(void)
-{
- U8 lock_stat, rcnt3 = 0, rcnt2 = 0, rcnt1 = 0, rcnt0 = 0;
- U32 cer_cnt, cer_period_cnt, ret_val;
-
- if (g_fRtvChannelChange) {
- RTV_DBGMSG0("[rtvTDMB_GetBER] RTV Freqency change state!\n");
- return 2000;
- }
-
- RTV_GUARD_LOCK;
-
- RTV_REG_MAP_SEL(FEC_PAGE);
-
- lock_stat = RTV_REG_GET(0x37);
- if (lock_stat & 0x01) {
- /* MSC CER period counter for accumulation */
- rcnt3 = RTV_REG_GET(0x88);
- rcnt2 = RTV_REG_GET(0x89);
- rcnt1 = RTV_REG_GET(0x8A);
- rcnt0 = RTV_REG_GET(0x8B);
- /* 442368 */
- cer_period_cnt = (rcnt3 << 24) | (rcnt2 << 16)
- | (rcnt1 << 8) | rcnt0;
-
- rcnt3 = RTV_REG_GET(0x8C);
- rcnt2 = RTV_REG_GET(0x8D);
- rcnt1 = RTV_REG_GET(0x8E);
- rcnt0 = RTV_REG_GET(0x8F);
- } else
- cer_period_cnt = 0;
-
- RTV_GUARD_FREE;
-
- if (cer_period_cnt == 0)
- return 2000; /* No service */
-
- cer_cnt = (rcnt3 << 24) | (rcnt2 << 16) | (rcnt1 << 8) | rcnt0;
-
- /*RTV_DBGMSG2("[rtvTDMB_GetCER] cer_cnt: %u, "
- "cer_period_cnt: %u\n",
- cer_cnt, cer_period_cnt);*/
-
- if (cer_cnt <= 4000)
- return 0;
- else {
- ret_val = ((cer_cnt * 1000)/cer_period_cnt) * 10;
- if (ret_val <= 1200)
- return ret_val;
- else
- return 2000;
- }
-}
-
-/* Pre BER */
-U32 rtvTDMB_GetBER(void)
-{
- U8 rdata0 = 0, rdata1 = 0, rdata2 = 0;
- U8 rcnt0, rcnt1, rcnt2;
- U8 rs_sync;
- U32 val;
- U32 cnt;
-
- if (g_fRtvChannelChange) {
- RTV_DBGMSG0("[rtvTDMB_GetBER] RTV Freqency change state!\n");
- return 2000;
- }
-
- RTV_GUARD_LOCK;
-
- RTV_REG_MAP_SEL(FEC_PAGE);
- rdata0 = RTV_REG_GET(0xD7);
-
- rs_sync = (rdata0 & 0x08) >> 3;
- if (rs_sync != 0x01) {
- RTV_GUARD_FREE;
- return 2000;
- }
-
- rcnt2 = RTV_REG_GET(0xA6);
- rcnt1 = RTV_REG_GET(0xA7);
- rcnt0 = RTV_REG_GET(0xA8);
- cnt = (rcnt2 << 16) | (rcnt1 << 8) | rcnt0;
-
- rdata2 = RTV_REG_GET(0xA9);
- rdata1 = RTV_REG_GET(0xAA);
- rdata0 = RTV_REG_GET(0xAB);
- val = (rdata2 << 16) | (rdata1 << 8) | rdata0; /* max 24 bit */
-
- RTV_GUARD_FREE;
-
- if (cnt == 0)
- return 2000;
- else
- return (val * (U32) RTV_TDMB_BER_DIVIDER) / cnt;
-}
-
-
-static UINT g_nTdmbPrevAntennaLevel;
-
-#define TDMB_MAX_NUM_ANTENNA_LEVEL 7
-
-UINT rtvTDMB_GetAntennaLevel(U32 dwCER)
-{
- UINT nCurLevel = 0;
- UINT nPrevLevel = g_nTdmbPrevAntennaLevel;
- static const UINT aAntLvlTbl[TDMB_MAX_NUM_ANTENNA_LEVEL]
- = {810, 700, 490, 400, 250, 180, 0};
-
- if (dwCER == 2000)
- return 0;
-
- do {
- if (dwCER >= aAntLvlTbl[nCurLevel]) /* Use equal for CER 0 */
- break;
- } while (++nCurLevel != TDMB_MAX_NUM_ANTENNA_LEVEL);
-
- if (nCurLevel != nPrevLevel) {
- if (nCurLevel < nPrevLevel)
- nPrevLevel--;
- else
- nPrevLevel++;
-
- g_nTdmbPrevAntennaLevel = nPrevLevel;
- }
-
- return nPrevLevel;
-}
-
-
-/* Because that TDMB has the sub channel,
-we checks the freq which new or the same when the changsing of channel */
-U32 rtvTDMB_GetPreviousFrequency(void)
-{
- return g_dwTdmbPrevChFreqKHz;
-}
-
-/* Interrupts are disabled for SPI
- TSIF stream disabled are for TSIF */
-static void tdmb_CloseSubChannel(UINT nRegSubChArrayIdx)
-{
- UINT nSubChID;
- INT nHwSubChIdx;
-
- if ((g_nRegSubChArrayIdxBits & (1 << nRegSubChArrayIdx)) == 0)
- return; /* not opened! already closed! */
-
- nSubChID = g_atTdmbRegSubchInfo[nRegSubChArrayIdx].nSubChID;
- nHwSubChIdx = g_atTdmbRegSubchInfo[nRegSubChArrayIdx].nHwSubChIdx;
-
- /* Disable the specified SUB CH first. */
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED == 1) /* Single Sub Channel */
- rtv_Set_MSC1_SUBCH0(nSubChID, FALSE, FALSE);
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(HOST_PAGE);
- g_bRtvIntrMaskRegL |= MSC1_INTR_BITS;
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-#endif
-
- rtv_ResetMemory_MSC1(); /* Disable MSC1 memory. */
-
-#else /* Multi Sub Channel */
- switch (nHwSubChIdx) {
- case 0:
- rtv_Set_MSC1_SUBCH0(nSubChID, FALSE, FALSE);
- break;
- case 3:
- rtv_Set_MSC0_SUBCH3(nSubChID, FALSE);
- break;
- case 4:
- rtv_Set_MSC0_SUBCH4(nSubChID, FALSE);
- break;
- case 5:
- rtv_Set_MSC0_SUBCH5(nSubChID, FALSE);
- break;
- case 6:
- rtv_Set_MSC0_SUBCH6(nSubChID, FALSE);
- break;
- default:
- break;
- }
-
- if ((g_nRtvUsedHwSubChIdxBits & TDMB_MSC1_SUBCH_USE_MASK) == 0) {
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(HOST_PAGE);
- g_bRtvIntrMaskRegL |= MSC1_INTR_BITS;
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-#endif
- rtv_ResetMemory_MSC1(); /* Disable MSC1 memory */
- }
-
- if ((g_nRtvUsedHwSubChIdxBits & TDMB_MSC0_SUBCH_USE_MASK) == 0) {
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(HOST_PAGE);
- g_bRtvIntrMaskRegL |= MSC0_INTR_BITS;
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-#endif
- rtv_ResetMemory_MSC0(); /* Disable MSC0 memory */
- }
-#endif
-
-#ifdef RTV_CIF_HEADER_INSERTED
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- if (nHwSubChIdx != 0) /* MSC0 only */
-#endif
- rtvCIFDEC_DeleteSubChannelID(nSubChID);
-#endif
-
- /* Delete a used sub channel index. */
- g_nRtvUsedHwSubChIdxBits &= ~(1 << nHwSubChIdx);
-
- /* Delete a registered subch array index. */
- g_nRegSubChArrayIdxBits &= ~(1 << nRegSubChArrayIdx);
-
- /* Deregister a sub channel ID Bit. */
- g_aRegSubChIdBits[SUBCH_GRP_IDX(nSubChID)] &=
- ~(1 << MOD32(nSubChID));
-}
-
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED > 1)
-static void tdmb_CloseAllSubChannel(void)
-{
- UINT i = 0;
- UINT nRegSubChArrayIdxBits = g_nRegSubChArrayIdxBits;
-
- while (nRegSubChArrayIdxBits != 0) {
- if (nRegSubChArrayIdxBits & 0x01)
- tdmb_CloseSubChannel(i);
-
- nRegSubChArrayIdxBits >>= 1;
- i++;
- }
-}
-#endif
-
-void rtvTDMB_CloseAllSubChannels(void)
-{
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED > 1)
- UINT i = 0;
- UINT nRegSubChArrayIdxBits = g_nRegSubChArrayIdxBits;
-#endif
-
- RTV_GUARD_LOCK;
-
-/* rtv_StreamDisable(RTV_TV_MODE_TDMB); */
-
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED == 1) /* Single Sub Channel */
- tdmb_CloseSubChannel(0);
-#else
-
- while (nRegSubChArrayIdxBits != 0) {
- if (nRegSubChArrayIdxBits & 0x01)
- tdmb_CloseSubChannel(i);
-
- nRegSubChArrayIdxBits >>= 1;
- i++;
- }
-#endif
-
-/* rtv_StreamRestore(RTV_TV_MODE_TDMB); */
-
- RTV_GUARD_FREE;
-}
-
-INT rtvTDMB_CloseSubChannel(UINT nSubChID)
-{
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED > 1)
- UINT i = 0;
- UINT nRegSubChArrayIdxBits = g_nRegSubChArrayIdxBits;
-#endif
-
- RTV_GUARD_LOCK;
-
-/* rtv_StreamDisable(RTV_TV_MODE_TDMB); */
-
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED == 1) /* Single Sub Channel */
- tdmb_CloseSubChannel(0);
-#else
-
- while (nRegSubChArrayIdxBits != 0) {
- if (nRegSubChArrayIdxBits & 0x01) {
- if (nSubChID == g_atTdmbRegSubchInfo[i].nSubChID)
- tdmb_CloseSubChannel(i);
- }
-
- nRegSubChArrayIdxBits >>= 1;
- i++;
- }
-#endif
-
-/* rtv_StreamRestore(RTV_TV_MODE_TDMB); */
-
- RTV_GUARD_FREE;
-
- return RTV_SUCCESS;
-}
-
-static void tdmb_OpenSubChannel(
- UINT nSubChID,
- enum E_RTV_TDMB_SERVICE_TYPE eServiceType,
- UINT nThresholdSize)
-{
- INT nHwSubChIdx;
- UINT i = 0;
-
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED == 1) /* Single Subchannel */
- nHwSubChIdx = 0;
-
- /* Set the sub-channel and enable MSC memory
- with the specified sub ID. */
- if (eServiceType == RTV_TDMB_SERVICE_VIDEO)
- rtv_Set_MSC1_SUBCH0(nSubChID, TRUE, TRUE); /* RS enable */
- else
- rtv_Set_MSC1_SUBCH0(nSubChID, TRUE, FALSE); /* RS Disable */
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(INT_E_UCLRL, 0x04);
- /* MSC1 Interrupt status clear. */
-
- RTV_REG_MAP_SEL(HOST_PAGE);
- g_bRtvIntrMaskRegL &= ~(MSC1_INTR_BITS);
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
- /* Enable MSC1 interrupts. */
-#endif
-
- rtv_SetupMemory_MSC1(nThresholdSize);
-
-#else
- /* Multi sub channel enabled */
- if ((eServiceType == RTV_TDMB_SERVICE_VIDEO)
- || (eServiceType == RTV_TDMB_SERVICE_AUDIO)) {
- nHwSubChIdx = 0;
-
- if (eServiceType == RTV_TDMB_SERVICE_VIDEO)
- /*RS enable*/
- rtv_Set_MSC1_SUBCH0(nSubChID, TRUE, TRUE);
- else
- /*RS disable*/
- rtv_Set_MSC1_SUBCH0(nSubChID, TRUE, FALSE);
-
- if ((g_nRtvUsedHwSubChIdxBits
- & TDMB_MSC1_SUBCH_USE_MASK) == 0) {
- /* First enabled. */
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(DD_PAGE);
- /* MSC1 Interrupt status clear.*/
- RTV_REG_SET(INT_E_UCLRL, 0x04);
-
- RTV_REG_MAP_SEL(HOST_PAGE);
- g_bRtvIntrMaskRegL &= ~(MSC1_INTR_BITS);
- /* Enable MSC1 interrupts and restore FIC . */
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-#endif
- rtv_SetupMemory_MSC1(nThresholdSize);
- }
- } else {
- /* Data */
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- /* Search an available SUBCH index
- for Audio/Data service. (3 ~ 6) */
- for (nHwSubChIdx = 3/* MSC0 base */;
- nHwSubChIdx <= 6;
- nHwSubChIdx++) {
-#else
- for (nHwSubChIdx = 3/* MSC0 base */;
- nHwSubChIdx <= 5;
- nHwSubChIdx++) {
-#endif
- if ((g_nRtvUsedHwSubChIdxBits & (1<<nHwSubChIdx)) == 0)
- break;
- }
-
- /* Set sub channel. */
- switch (nHwSubChIdx) {
- case 3:
- rtv_Set_MSC0_SUBCH3(nSubChID, TRUE);
- break;
- case 4:
- rtv_Set_MSC0_SUBCH4(nSubChID, TRUE);
- break;
- case 5:
- rtv_Set_MSC0_SUBCH5(nSubChID, TRUE);
- break;
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- case 6:
- rtv_Set_MSC0_SUBCH6(nSubChID, TRUE);
- break;
-#endif
- default:
- break;
- }
-
- if ((g_nRtvUsedHwSubChIdxBits
- & TDMB_MSC0_SUBCH_USE_MASK) == 0) {
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(DD_PAGE);
- /* MSC0 Interrupt clear. */
- RTV_REG_SET(INT_E_UCLRL, 0x02);
-
- /* Enable MSC0 interrupts. */
- RTV_REG_MAP_SEL(HOST_PAGE);
- g_bRtvIntrMaskRegL &= ~(MSC0_INTR_BITS);
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL); /* restore FIC */
-#endif
- rtv_SetupMemory_MSC0(nThresholdSize); /* CIF mode. */
- }
- }
-#endif
-
-#ifdef RTV_CIF_HEADER_INSERTED
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- if (nHwSubChIdx != 0) /* MSC0 only */
-#endif
- rtvCIFDEC_AddSubChannelID(nSubChID);
-#endif
-
- /* To use when close .*/
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED > 1)
- for (i = 0; i < RTV_MAX_NUM_SUB_CHANNEL_USED; i++) {
- if ((g_nRegSubChArrayIdxBits & (1<<i)) == 0) {
-#else
- i = 0;
-#endif
- /* Register a array index of sub channel */
- g_nRegSubChArrayIdxBits |= (1 << i);
-
- g_atTdmbRegSubchInfo[i].nSubChID = nSubChID;
-
- /* Add the new sub channel index. */
- g_atTdmbRegSubchInfo[i].nHwSubChIdx = nHwSubChIdx;
- g_atTdmbRegSubchInfo[i].eServiceType = eServiceType;
- g_atTdmbRegSubchInfo[i].nThresholdSize = nThresholdSize;
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED > 1)
- break;
-}
-}
-#endif
-
- /* Add the HW sub channel index. */
- g_nRtvUsedHwSubChIdxBits |= (1 << nHwSubChIdx);
-
- /* Register a new sub channel ID Bit. */
- g_aRegSubChIdBits[SUBCH_GRP_IDX(nSubChID)]
- |= (1 << MOD32(nSubChID));
-
- /*RTV_DBGMSG2("[tdmb_OpenSubChannel] "
- "nSubChID(%d) use MSC_SUBCH%d\n",
- nSubChID,
- nHwSubChIdx);*/
-}
-
-INT rtvTDMB_OpenSubChannel(
- U32 dwChFreqKHz,
- UINT nSubChID,
- enum E_RTV_TDMB_SERVICE_TYPE eServiceType,
- UINT nThresholdSize)
-{
- INT nRet = RTV_SUCCESS;
-
- if (nSubChID > (MAX_NUM_TDMB_SUB_CH - 1))
- return RTV_INVAILD_SUB_CHANNEL_ID;
-
- /* Check for threshold size. */
-#ifndef RTV_CIF_MODE_ENABLED /* Individual Mode */
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- if (nThresholdSize > (188 * 18))
- return RTV_INVAILD_THRESHOLD_SIZE;
-#endif
-#endif
-
- /* Check the previous freq. */
- if (g_dwTdmbPrevChFreqKHz == dwChFreqKHz) {
- /* Is registerd sub ch ID? */
- if (g_aRegSubChIdBits[SUBCH_GRP_IDX(nSubChID)]
- & (1 << MOD32(nSubChID))) {
- RTV_GUARD_LOCK;
- /* To restore FIC stream. */
- rtv_StreamRestore(RTV_TV_MODE_TDMB);
- RTV_GUARD_FREE;
-
- RTV_DBGMSG1("[rtvTDMB_OpenSubChannel] "
- " Already opened sub channed ID(%d)\n", nSubChID);
-
- return RTV_SUCCESS;
- }
-
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED == 1)/* Single Sub Channel Mode */
- RTV_GUARD_LOCK;
- /* Max sub channel is 1. So, we close the previous sub ch. */
- tdmb_CloseSubChannel(0);
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x10, 0x48);
- RTV_REG_SET(0x10, 0xC9);
-#endif
- tdmb_OpenSubChannel(nSubChID, eServiceType, nThresholdSize);
- RTV_GUARD_FREE;
-#else
- /* Multi Sub Channel. */
- if ((eServiceType == RTV_TDMB_SERVICE_VIDEO)
- || (eServiceType == RTV_TDMB_SERVICE_AUDIO)) {
- /* Check if the SUBCH available for Video service ? */
- if ((g_nRtvUsedHwSubChIdxBits
- & TDMB_MSC1_SUBCH_USE_MASK)
- == TDMB_MSC1_SUBCH_USE_MASK) {
- RTV_GUARD_LOCK;
- /* To restore FIC stream. */
- rtv_StreamRestore(RTV_TV_MODE_TDMB);
- RTV_GUARD_FREE;
- /* Only 1 Video/Audio service.
- Close other video service.*/
- return RTV_NO_MORE_SUB_CHANNEL;
- }
- } else {
- /* Data */
- /* Check if the SUBCH available for
- Audio/Data services for MSC0 ? */
- if ((g_nRtvUsedHwSubChIdxBits
- & TDMB_MSC0_SUBCH_USE_MASK)
- == TDMB_MSC0_SUBCH_USE_MASK) {
- RTV_GUARD_LOCK;
- /* To restore FIC stream. */
- rtv_StreamRestore(RTV_TV_MODE_TDMB);
- RTV_GUARD_FREE;
-
- return RTV_NO_MORE_SUB_CHANNEL;
- }
- }
-
- RTV_GUARD_LOCK;
- tdmb_OpenSubChannel(nSubChID, eServiceType, nThresholdSize);
- /* To restore FIC stream. This is NOT the first time. */
- rtv_StreamRestore(RTV_TV_MODE_TDMB);
- RTV_GUARD_FREE;
-#endif
- } else {
- /* if(g_dwTdmbPrevChFreqKHz[RaonTvChipIdx] == dwChFreqKHz) */
- g_dwTdmbPrevChFreqKHz = dwChFreqKHz;
-
- g_fRtvChannelChange = TRUE; /* To prevent get ber, cnr ... */
-
- RTV_GUARD_LOCK;
-
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED == 1)
- /* Cloes the previous sub channel
- because this channel is a new freq. */
- tdmb_CloseSubChannel(0);
-#else
- /* Cloes the all sub channel because this channel is a new freq. */
- tdmb_CloseAllSubChannel();
-#endif
-
- nRet = rtvRF_SetFrequency(RTV_TV_MODE_TDMB, 0, dwChFreqKHz);
-
- tdmb_OpenSubChannel(nSubChID, eServiceType, nThresholdSize);
-
- RTV_GUARD_FREE;
-
- g_fRtvChannelChange = FALSE;
- }
-
- return nRet;
-}
-
-/*
- rtvTDMB_ReadFIC()
-
- This function reads a FIC data in manually.
- */
-UINT rtvTDMB_ReadFIC(U8 *pbBuf)
-{
-#ifdef RTV_FIC_POLLING_MODE
- U8 int_type_val1;
- UINT cnt = 0;
- U8 tr_mode;
- const UINT frame_dur[4] = {
- (96) / 2,
- (96 / 4) / 2,
- (96 / 4) / 2,
- (96 / 2) / 2 };
-
- if (g_fRtvTdmbConfiguredFIC == FALSE) {
- RTV_DBGMSG0("[rtvTDMB_ReadFIC] NOT OPEN FIC\n");
- return 0;
- }
-
- RTV_GUARD_LOCK;
-
- RTV_REG_MAP_SEL(0x06);
- tr_mode = RTV_REG_GET(0x27); /* DAB TX Mode monitoring */
- tr_mode = (tr_mode & 0x30) >> 4;
-
- RTV_REG_MAP_SEL(DD_PAGE);
- while (++cnt <= 10) {
- int_type_val1 = RTV_REG_GET(INT_E_STATL);
- if (int_type_val1 & FIC_E_INT) /* FIC interrupt */ {
- /*printk("FIC_E_INT occured!\n");*/
-
- RTV_REG_MAP_SEL(FIC_PAGE);
-#if defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)
- RTV_REG_BURST_GET(0x10, pbBuf, 192);
- RTV_REG_BURST_GET(0x10, pbBuf+192, 192);
-
-#elif defined(RTV_IF_SPI)
-#if defined(__KERNEL__) || defined(WINCE)
- RTV_REG_BURST_GET(0x10, pbBuf, 384+1);
-#else
- RTV_REG_BURST_GET(0x10, pbBuf, 384);
-#endif
-#endif
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(INT_E_UCLRL, 0x01);
- /* FIC interrupt status clear */
-
- RTV_GUARD_FREE;
-
- return 384;
-
- }
- RTV_DELAY_MS(frame_dur[tr_mode]);
- } /* while() */
-
- RTV_GUARD_FREE;
-
- RTV_DBGMSG0("[rtvTDMB_ReadFIC] FIC read timeout\n");
-
- return 0;
-
-#else
-
- RTV_REG_MAP_SEL(FIC_PAGE);
-#if defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)
- RTV_REG_BURST_GET(0x10, pbBuf, 192);
- RTV_REG_BURST_GET(0x10, pbBuf+192, 192);
-
-#elif defined(RTV_IF_SPI)
-#if defined(__KERNEL__) || defined(WINCE)
- RTV_REG_BURST_GET(0x10, pbBuf, 384+1);
-#else
- RTV_REG_BURST_GET(0x10, pbBuf, 384);
-#endif
-#endif
-
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(INT_E_UCLRL, 0x01); /* FIC interrupt status clear */
-
- return 384;
-#endif
-}
-
-void rtvTDMB_CloseFIC(void)
-{
- if (g_fRtvTdmbConfiguredFIC == FALSE)
- return;
-
- RTV_GUARD_LOCK;
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
-#ifndef RTV_FIC_POLLING_MODE
- /* Disable the FIC interrupt. */
- RTV_REG_MAP_SEL(HOST_PAGE);
- g_bRtvIntrMaskRegL |= FIC_E_INT;
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-#endif
-
-#elif defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED == 1) /* Single sub channel mode */
-#ifndef RTV_FIC_POLLING_MODE
- /* Disable the FIC interrupt. */
- RTV_REG_MAP_SEL(HOST_PAGE);
- g_bRtvIntrMaskRegL |= FIC_E_INT;
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-#endif
-#endif
-#endif
-
- rtv_ResetMemory_FIC();
-
- g_fRtvTdmbConfiguredFIC = FALSE;
-
- RTV_GUARD_FREE;
-}
-
-void rtvTDMB_OpenFIC(void)
-{
- if (g_fRtvTdmbConfiguredFIC == TRUE)
- return;
-
- g_fRtvTdmbConfiguredFIC = TRUE;
-
- RTV_GUARD_LOCK;
-
-#if defined(RTV_IF_SPI) || defined(RTV_IF_EBI2)
-#ifndef RTV_FIC_POLLING_MODE
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x35, 0x01); /* FIC Interrupt status clear. */
-
- /* Enable the FIC interrupt. */
- RTV_REG_MAP_SEL(HOST_PAGE);
- g_bRtvIntrMaskRegL &= ~(FIC_E_INT);
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-#endif
-
-#elif defined(RTV_IF_TSIF) || defined(RTV_IF_SPI_SLAVE)
-#ifndef RTV_CIF_MODE_ENABLED /* Single sub channel mode */
-#ifndef RTV_FIC_POLLING_MODE
- RTV_REG_MAP_SEL(DD_PAGE);
- RTV_REG_SET(0x35, 0x01); /* FIC Interrupt status clear. */
-
- /* Enable the FIC interrupt.
- This mode only use FIC interrupt.
- MSC used by TSIF. */
- RTV_REG_MAP_SEL(HOST_PAGE);
- g_bRtvIntrMaskRegL &= ~(FIC_E_INT);
- RTV_REG_SET(0x62, g_bRtvIntrMaskRegL);
-#endif
-#endif
-#endif
-
- rtv_SetupMemory_FIC(); /* Enable FIC memory. */
-
- RTV_GUARD_FREE;
-}
-
-/* When this function was called,
- all sub channel should closed to reduce scan-time !!!!!
- FIC can enabled. Usally enabled. */
-INT rtvTDMB_ScanFrequency(U32 dwChFreqKHz)
-{
- U8 scan_done, OFDM_L = 0, ccnt = 0, NULL_C = 0, SCV_C = 0;
- U8 scan_pwr1 = 0, scan_pwr2 = 0, DAB_Mode = 0xFF, DAB_Mode_Chk = 0xFF;
- U8 pre_agc1 = 0, pre_agc2 = 0, pre_agc_mon = 0, ASCV = 0;
- INT scan_flag = 0;
- U16 SPower = 0, PreGain = 0, PreGainTH = 0, PWR_TH = 0, ILoopTH = 0;
- U8 Cfreq_HTH = 0, Cfreq_LTH = 0;
- U8 i = 0, j = 0, m = 0, n = 0;
- U8 varyLow = 0, varyHigh = 0;
- U16 varyMon = 0;
- U8 MON_FSM = 0, FsmCntChk = 0;
- U8 test0 = 0, test1 = 0;
- U16 NullLengthMon = 0;
- U16 fail = 0;
- U8 FecResetCh = 0xff;
- U8 FEC_SYNC = 0xFF, CoarseFreq = 0xFF, NullTh = 0xFF, NullChCnt = 0;
- U8 rdata0 = 0, rdata1 = 0;
- U16 i_chk = 0, q_chk = 0;
- UINT nReTryCnt = 0;
-
- g_fRtvChannelChange = TRUE; /* To prevent get ber, cnr ... */
-
- RTV_GUARD_LOCK;
-
- /* NOTE: When this rountine executed, all sub channel should closed
- and memory(MSC0, MSC1) interrupts are disabled. */
-#if (RTV_MAX_NUM_SUB_CHANNEL_USED == 1)
- tdmb_CloseSubChannel(0);
-#else
- tdmb_CloseAllSubChannel();
-#endif
-
- scan_flag = rtvRF_SetFrequency(RTV_TV_MODE_TDMB, 0, dwChFreqKHz);
- if (scan_flag != RTV_SUCCESS)
- goto TDMB_SCAN_EXIT;
-
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x54, 0x70);
-
- tdmb_SoftReset();
-
- FecResetCh = 0xff;
- fail = 0xFFFF;
-
- while (1) {
- if (++nReTryCnt == 10000) {
- /* Up to 400ms */
- RTV_DBGMSG0("[rtvTDMB_ScanFrequency] Scan Timeout!\n");
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- break;
- }
-
- RTV_REG_MAP_SEL(OFDM_PAGE);
- /* Scan-done flag & scan-out flag check */
- scan_done = RTV_REG_GET(0xCF);
-
- RTV_REG_MAP_SEL(COMM_PAGE);
- /* Scan-Power monitoring */
- scan_pwr1 = RTV_REG_GET(0x38);
- scan_pwr2 = RTV_REG_GET(0x39);
- SPower = (scan_pwr2 << 8) | scan_pwr1;
-
- RTV_REG_MAP_SEL(OFDM_PAGE);
-
- if (scan_done != 0xff) {
- NULL_C = 0;
- SCV_C = 0;
- pre_agc_mon =
- RTV_REG_GET(0x53);
- RTV_REG_SET(0x53, (pre_agc_mon | 0x80));
- /* Pre-AGC Gain monitoring One-shot */
- pre_agc1 = RTV_REG_GET(0x66);
- pre_agc2 = RTV_REG_GET(0x67);
- PreGain = (pre_agc2 << 2) | (pre_agc1 & 0x03);
-
- /* DAB TX Mode monitoring */
- DAB_Mode = RTV_REG_GET(0x27);
- DAB_Mode = (DAB_Mode & 0x30) >> 4;
-
- switch (g_eRtvAdcClkFreqType) {
- case RTV_ADC_CLK_FREQ_8_MHz:
- PreGainTH = 405;
- /* tr mode */
- switch (DAB_Mode) {
- case 0:
- PWR_TH = 2400;
- ILoopTH = 200;
- Cfreq_HTH = 206;
- Cfreq_LTH = 55;
- break;
- case 1:
- PWR_TH = 2000;
- ILoopTH = 180;
- Cfreq_HTH = 242;
- Cfreq_LTH = 14;
- break;
- case 2:
- PWR_TH = 1300;
- ILoopTH = 180;
- Cfreq_HTH = 248;
- Cfreq_LTH = 8;
- break;
- case 3:
- PWR_TH = 280;
- ILoopTH = 180;
- Cfreq_HTH = 230;
- Cfreq_LTH = 26;
- break;
- default:
- PWR_TH = 2400;
- ILoopTH = 200;
- Cfreq_HTH = 206;
- Cfreq_LTH = 55;
- break;
- }
- break;
-
- case RTV_ADC_CLK_FREQ_8_192_MHz:
- PreGainTH = 405;
-
- switch (DAB_Mode) {
- case 0:
- PWR_TH = 1700;
- ILoopTH = 200;
- Cfreq_HTH = 206;
- Cfreq_LTH = 55;
- break;
- case 1:
- PWR_TH = 1500;
- ILoopTH = 180;
- Cfreq_HTH = 242;
- Cfreq_LTH = 14;
- break;
- case 2:
- PWR_TH = 1200;
- ILoopTH = 180;
- Cfreq_HTH = 248;
- Cfreq_LTH = 8;
- break;
- case 3:
- PWR_TH = 1900;
- ILoopTH = 180;
- Cfreq_HTH = 230;
- Cfreq_LTH = 26;
- break;
- default:
- PWR_TH = 1700;
- ILoopTH = 200;
- Cfreq_HTH = 206;
- Cfreq_LTH = 55;
- break;
- }
- break;
-
- case RTV_ADC_CLK_FREQ_9_MHz:
- PreGainTH = 380;
- switch (DAB_Mode) {
- case 0:
- PWR_TH = 7000;
- ILoopTH = 200;
- Cfreq_HTH = 206;
- Cfreq_LTH = 55;
- break;
- case 1:
- PWR_TH = 5000;
- ILoopTH = 180;
- Cfreq_HTH = 242;
- Cfreq_LTH = 14;
- break;
- case 2:
- PWR_TH = 1300;
- ILoopTH = 180;
- Cfreq_HTH = 248;
- Cfreq_LTH = 8;
- break;
- case 3:
- PWR_TH = 8000;
- ILoopTH = 180;
- Cfreq_HTH = 230;
- Cfreq_LTH = 26;
- break;
- default:
- PWR_TH = 8000;
- ILoopTH = 200;
- Cfreq_HTH = 206;
- Cfreq_LTH = 55;
- break;
- }
- break;
-
- case RTV_ADC_CLK_FREQ_9_6_MHz:
- PreGainTH = 380;
-
- switch (DAB_Mode) {
- case 0:
- PWR_TH = 7000;
- ILoopTH = 200;
- Cfreq_HTH = 206;
- Cfreq_LTH = 55;
- break;
- case 1:
- PWR_TH = 5000;
- ILoopTH = 180;
- Cfreq_HTH = 242;
- Cfreq_LTH = 14;
- break;
- case 2:
- PWR_TH = 1300;
- ILoopTH = 180;
- Cfreq_HTH = 248;
- Cfreq_LTH = 8;
- break;
- case 3:
- PWR_TH = 8000;
- ILoopTH = 180;
- Cfreq_HTH = 230;
- Cfreq_LTH = 26;
- break;
- default:
- PWR_TH = 8000;
- ILoopTH = 200;
- Cfreq_HTH = 206;
- Cfreq_LTH = 55;
- break;
- }
-
- break;
-
- default:
- scan_flag = RTV_UNSUPPORT_ADC_CLK;
- goto TDMB_SCAN_EXIT;
- }
-
-if (scan_done == 0x01) {
- /* Not DAB signal channel */
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- fail = 0xEF01;
-
- goto TDMB_SCAN_EXIT;
- /* Auto-scan result return */
-} else if (scan_done == 0x03) {
- /* DAB signal channel */
- RTV_REG_MAP_SEL(OFDM_PAGE);
- /* coarse freq */
- CoarseFreq = RTV_REG_GET(0x18);
-
- if (g_eRtvCountryBandType == RTV_COUNTRY_BAND_KOREA) {
- if (DAB_Mode > 0) {
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- fail = 0xE002;
-
- goto TDMB_SCAN_EXIT;
- /*Auto-scan result return */
- }
- }
-
- if ((CoarseFreq < Cfreq_HTH) && (CoarseFreq > Cfreq_LTH)) {
- CoarseFreq = 0x33;
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- fail = 0xEF33;
- goto TDMB_SCAN_EXIT;
- }
-
- if (SPower < PWR_TH) {
- /* Scan Power Threshold */
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- fail = 0xEF03;
- goto TDMB_SCAN_EXIT;
- } else {
- if ((PreGain < PreGainTH) || (PreGain == 0)) {
- /*PreAGC Gain threshold check*/
- scan_flag =
- RTV_CHANNEL_NOT_DETECTED;
- fail = 0xEF04;
- goto TDMB_SCAN_EXIT;
- } else {
- for (m = 0; m < 16; m++) {
- NullTh = RTV_REG_GET(0x1C);
- RTV_REG_SET(0x1C, (NullTh | 0x10));
- test0 = RTV_REG_GET(0x26);
- test1 = RTV_REG_GET(0x27);
- NullLengthMon = ((test1 & 0x0F) << 8) | test0;
-
- /* DAB TX Mode monitoring */
- DAB_Mode_Chk = RTV_REG_GET(0x27);
- DAB_Mode_Chk = (DAB_Mode_Chk & 0x30) >> 4;
- if (DAB_Mode != DAB_Mode_Chk) {
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- fail = 0xE000;
- goto TDMB_SCAN_EXIT;
- }
-
- if ((NullLengthMon == 0)
- || (NullLengthMon > 3000)) {
- NullChCnt++;
- }
- if ((NullChCnt > 10) && (m > 14)
- && (PreGain < 400)) {
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- fail = 0xEF05;
- goto TDMB_SCAN_EXIT;
- } else if (m > 14) {
- fail = 0x1111;
- scan_flag = RTV_SUCCESS;
- break;
- }
- RTV_DELAY_MS(10);
- }
- }
- if (scan_flag == RTV_SUCCESS) {
- for (i = 0; i < /*ILoopTH*/100; i++) {
- RTV_DELAY_MS(10);
-
- RTV_REG_MAP_SEL(OFDM_PAGE);
- ASCV = RTV_REG_GET(0x30);
- ASCV = ASCV & 0x0F;
- if ((SCV_C > 0) && (ASCV > 7)) {
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- fail = 0xFF08;
- goto TDMB_SCAN_EXIT;
- /* Auto-scan result return */
- }
- if (ASCV > 7)
- SCV_C++;
-
- /* DAB TX Mode monitoring */
- DAB_Mode_Chk =
- RTV_REG_GET(0x27);
- DAB_Mode_Chk = (DAB_Mode_Chk & 0x30) >> 4;
- if (DAB_Mode != DAB_Mode_Chk) {
- scan_flag =
- RTV_CHANNEL_NOT_DETECTED;
- fail = 0xF100;
- goto TDMB_SCAN_EXIT;
- }
-
- RTV_REG_MAP_SEL(COMM_PAGE);
- RTV_REG_MASK_SET(0x4D, 0x04, 0x00);
- RTV_REG_MASK_SET(0x4D, 0x04, 0x04);
- rdata0 = RTV_REG_GET(0x4E);
- rdata1 = RTV_REG_GET(0x4F);
- i_chk = (rdata1 << 8) + rdata0;
-
- rdata0 = RTV_REG_GET(0x50);
- rdata1 = RTV_REG_GET(0x51);
- q_chk = (rdata1 << 8) + rdata0;
- if ((((i_chk > 5) && (i_chk < 65530))
- || ((q_chk > 5) && (q_chk < 65530)))
- && (PreGain < 500)) {
- scan_flag =
- RTV_CHANNEL_NOT_DETECTED;
- fail = 0xF200;
- goto TDMB_SCAN_EXIT;
- }
-
- RTV_REG_MAP_SEL(OFDM_PAGE);
- MON_FSM = RTV_REG_GET(0x37);
- MON_FSM = MON_FSM & 0x07;
-
- if ((MON_FSM == 1) && (PreGain < 600)) {
- FsmCntChk++;
- if (NullChCnt > 14)
- FsmCntChk += 3;
- }
- if ((MON_FSM == 1) && (FsmCntChk > 9)
- && (ccnt < 2)) {
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- fail = 0xFF0A;
- FsmCntChk = 0;
-
- goto TDMB_SCAN_EXIT;
- /* Auto-scan result return */
- }
-/* ///////////////////////////////////////////////////////////////// */
-/* //////////////// Coarse Freq. check////////////////////////////// */
-/* ///////////////////////////////////////////////////////////////// */
-/* Coarse count check */
-ccnt = RTV_REG_GET(0x17);
-ccnt &= 0x1F;
- if (ccnt > 1) {
- for (j = 0; j < 50; j++) {
- RTV_DELAY_MS(10);
- RTV_REG_MAP_SEL(OFDM_PAGE);
- OFDM_L = RTV_REG_GET(0x12);
- RTV_REG_MASK_SET(0x82, 0x01, 0x01);
- varyLow = RTV_REG_GET(0x7E);
- varyHigh = RTV_REG_GET(0x7F);
- varyMon = ((varyHigh & 0x1f) << 8) + varyLow;
- if ((OFDM_L & 0x80) && (varyMon > 0)) {
- RTV_REG_MAP_SEL(OFDM_PAGE);
- RTV_REG_SET(0x54, 0x58);
- break;
- }
- }
- if (OFDM_L & 0x80) {
-
-#if 1
- /* OFDM_Lock & FEC_Sync OK */
- scan_flag = RTV_SUCCESS;
- fail = 0xFF7F;
- goto TDMB_SCAN_EXIT;
-
-#else
-
- RTV_REG_MAP_SEL(FEC_PAGE);
- FEC_SYNC = RTV_REG_GET(0xFB);
- FEC_SYNC = FEC_SYNC & 0x03;
- if (FEC_SYNC == 0x03) {
- /* OFDM_Lock & FEC_Sync OK */
- scan_flag = RTV_SUCCESS;
- fail = 0xFF70;
- goto TDMB_SCAN_EXIT;
- } else if (FEC_SYNC == 0x02) {
- for (n = 0; n < 20; n++) {
- RTV_DELAY_MS(10);
- RTV_REG_MAP_SEL(FEC_PAGE);
- FEC_SYNC = RTV_REG_GET(0xFB);
- FEC_SYNC = FEC_SYNC & 0x03;
- RTV_REG_MAP_SEL(OFDM_PAGE);
- OFDM_L = RTV_REG_GET(0x12);
- OFDM_L = OFDM_L & 0x80;
- if (OFDM_L == 0x80) {
- if (FEC_SYNC == 0x03) {
- scan_flag = RTV_SUCCESS;
- fail = 0xFF71; /* FEC_Sync OK */
- goto TDMB_SCAN_EXIT;
- } else if (FEC_SYNC == 0x02) {
- scan_flag
- = RTV_CHANNEL_NOT_DETECTED;
- fail = 0xFF72; /* FEC_Sync miss */
- } else {
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- fail = 0xFF73;
- }
- } else {
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- fail = 0xFF74;
- goto TDMB_SCAN_EXIT;
- /* Auto-scan result return */
- }
- }
- } else {
- fail = 0xFF75;
- /* OFDM_Lock & FEC_Miss */
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- }
-#endif
- } else {
- /* OFDM_Unlock */
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- fail = 0xFF0B;
- }
- goto TDMB_SCAN_EXIT;
- /* Auto-scan result return */
- } else {
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- }
- }
- fail = 0xFF0C;
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- goto TDMB_SCAN_EXIT;
-}
- }
- }
- } else {
- fail = 0xFF0C;
- scan_flag = RTV_CHANNEL_NOT_DETECTED;
- goto TDMB_SCAN_EXIT;
- }
- }
-
- fail = 0xFF0D;
-
-TDMB_SCAN_EXIT:
-
- RTV_GUARD_FREE;
-
- g_fRtvChannelChange = FALSE;
-
- g_dwTdmbPrevChFreqKHz = dwChFreqKHz;
-
- RTV_DBGMSG1("[rtvTDMB_ScanFrequency] 0x%04X\n", fail);
-
- return scan_flag; /* Auto-scan result return */
-}
-
-void rtvTDMB_DisableStreamOut(void)
-{
- RTV_GUARD_LOCK;
-
- rtv_StreamDisable(RTV_TV_MODE_TDMB);
-
- RTV_GUARD_FREE;
-}
-
-INT rtvTDMB_Initialize(enum E_RTV_COUNTRY_BAND_TYPE eRtvCountryBandType)
-{
- INT nRet;
-
- switch (eRtvCountryBandType) {
- case RTV_COUNTRY_BAND_KOREA:
- break;
-
- default:
- return RTV_INVAILD_COUNTRY_BAND;
- }
- g_eRtvCountryBandType = eRtvCountryBandType;
-
- g_dwTdmbPrevChFreqKHz = 0;
-
- g_nRtvUsedHwSubChIdxBits = 0x00;
-
- g_fRtvTdmbConfiguredFIC = FALSE;
-
- g_nRegSubChArrayIdxBits = 0x00;
-
- g_aRegSubChIdBits[0] = 0x00000000;
- g_aRegSubChIdBits[1] = 0x00000000;
-
- nRet = rtv_InitSystem(RTV_TV_MODE_TDMB, RTV_ADC_CLK_FREQ_8_MHz);
- if (nRet != RTV_SUCCESS)
- return nRet;
-
- /* Must after rtv_InitSystem() to save ADC clock. */
- tdmb_InitDemod();
-
- nRet = rtvRF_Initilize(RTV_TV_MODE_TDMB);
- if (nRet != RTV_SUCCESS)
- return nRet;
-
- RTV_DELAY_MS(100);
-
- RTV_REG_MAP_SEL(RF_PAGE);
- RTV_REG_SET(0x6b, 0xC5);
-
-#ifdef RTV_CIF_HEADER_INSERTED/* CIF Mode */
- rtvCIFDEC_Init();
-#endif
-
- return RTV_SUCCESS;
-}
-
-#endif /* #ifdef RTV_TDMB_ENABLE */
-
diff --git a/drivers/media/tdmb/t3900/INC_FICDEC.c b/drivers/media/tdmb/t3900/INC_FICDEC.c
deleted file mode 100644
index a0e779a..0000000
--- a/drivers/media/tdmb/t3900/INC_FICDEC.c
+++ /dev/null
@@ -1,1535 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2011 I&C Inc. All Rights Reserved
-
- File name : INC_FICDEC.c
-
- Description :
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-*******************************************************************************/
-
-#include "INC_INCLUDES.h"
-
-
-struct ST_FICDB_LIST g_stFicDbList;
-unsigned char INC_GET_BYTEDATA(struct ST_FIB_INFO *pFibInfo)
-{
- return pFibInfo->aucBuff[pFibInfo->ucDataPos++] & 0xff;
-}
-
-unsigned char INC_GETAT_BYTEDATA(struct ST_FIB_INFO *pFibInfo)
-{
- return pFibInfo->aucBuff[pFibInfo->ucDataPos] & 0xff;
-}
-
-unsigned short INC_GET_WORDDATA(struct ST_FIB_INFO *pFibInfo)
-{
- unsigned short uiData, result;
- uiData =
- (((unsigned short) pFibInfo->aucBuff[pFibInfo->ucDataPos++] << 8) &
- 0xff00);
- uiData |=
- ((unsigned short) pFibInfo->aucBuff[pFibInfo->ucDataPos++] & 0xff);
- result = (uiData & 0xffff);
- return result;
-}
-
-unsigned short INC_GETAT_WORDDATA(struct ST_FIB_INFO *pFibInfo)
-{
- unsigned short uiData, result;
- uiData =
- (((unsigned short) pFibInfo->aucBuff[pFibInfo->ucDataPos] << 8)
- & 0xff00) |
- ((unsigned short) pFibInfo->aucBuff[pFibInfo->ucDataPos + 1]
- & 0xff);
- result = (uiData & 0xffff);
- return result;
-}
-
-unsigned int INC_GET_LONGDATA(struct ST_FIB_INFO *pFibInfo)
-{
- unsigned int ulMsb, ulLsb , result;
- ulMsb = (unsigned int) INC_GET_WORDDATA(pFibInfo);
- ulLsb = (unsigned int) INC_GET_WORDDATA(pFibInfo);
- result = (ulMsb << 16 | ulLsb);
- return result;
-}
-
-unsigned int INC_GETAT_LONGDATA(struct ST_FIB_INFO *pFibInfo)
-{
- unsigned int ulMsb, ulLsb, result;
- ulMsb = (unsigned int) INC_GETAT_WORDDATA(pFibInfo);
- pFibInfo->ucDataPos += 2;
- ulLsb = (unsigned int) INC_GETAT_WORDDATA(pFibInfo);
- pFibInfo->ucDataPos -= 2;
- result = (ulMsb << 16 | ulLsb);
- return result;
-}
-
-unsigned char INC_GETAT_HEADER(struct ST_FIB_INFO *pInfo)
-{
- return pInfo->aucBuff[pInfo->ucDataPos];
-}
-
-unsigned char INC_GETAT_TYPE(struct ST_FIB_INFO *pInfo)
-{
- return pInfo->aucBuff[pInfo->ucDataPos + 1];
-}
-
-unsigned char INC_GET_NULL_BLOCK(union ST_FIG_HEAD *pInfo)
-{
- if (pInfo->ucInfo == END_MARKER)
- return INC_ERROR;
- return INC_SUCCESS;
-}
-
-unsigned char INC_GET_FIND_LENGTH(union ST_FIG_HEAD *pInfo)
-{
- if (!pInfo->ITEM.bitLength || pInfo->ITEM.bitLength > FIB_SIZE - 3)
- return INC_ERROR;
- return INC_SUCCESS;
-}
-
-unsigned short INC_CRC_CHECK(unsigned char *pBuf, unsigned char ucSize)
-{
- unsigned char ucLoop;
- unsigned short nCrc = 0xFFFF, result;
- for (ucLoop = 0; ucLoop < ucSize; ucLoop++) {
- nCrc = 0xFFFF & (((nCrc << 8) | (nCrc >> 8)) ^
- (0xFF & pBuf[ucLoop]));
- nCrc = nCrc ^ ((0xFF & nCrc) >> 4);
- nCrc = 0xFFFF & (nCrc ^ ((((((0xFF & nCrc)) << 8) |
- (((0xFF & nCrc)) >> 8))) << 4) ^
- ((0xFF & nCrc) << 5));
- }
- result = ((unsigned short) 0xFFFF & (nCrc ^ 0xFFFF));
- return result;
-}
-
-unsigned short INC_FIND_SUB_CHANNEL_SIZE(unsigned char ucTableIndex)
-{
- unsigned short wSubCHSize = 0;
- switch (ucTableIndex) {
- case 0:
- wSubCHSize = 16;
- break;
- case 1:
- wSubCHSize = 21;
- break;
- case 2:
- wSubCHSize = 24;
- break;
- case 3:
- wSubCHSize = 29;
- break;
- case 4:
- wSubCHSize = 35;
- break;
- case 5:
- wSubCHSize = 24;
- break;
- case 6:
- wSubCHSize = 29;
- break;
- case 7:
- wSubCHSize = 35;
- break;
- case 8:
- wSubCHSize = 42;
- break;
- case 9:
- wSubCHSize = 52;
- break;
- case 10:
- wSubCHSize = 29;
- break;
- case 11:
- wSubCHSize = 35;
- break;
- case 12:
- wSubCHSize = 42;
- break;
- case 13:
- wSubCHSize = 52;
- break;
- case 14:
- wSubCHSize = 32;
- break;
- case 15:
- wSubCHSize = 42;
- break;
- case 16:
- wSubCHSize = 48;
- break;
- case 17:
- wSubCHSize = 58;
- break;
- case 18:
- wSubCHSize = 70;
- break;
- case 19:
- wSubCHSize = 40;
- break;
- case 20:
- wSubCHSize = 52;
- break;
- case 21:
- wSubCHSize = 58;
- break;
- case 22:
- wSubCHSize = 70;
- break;
- case 23:
- wSubCHSize = 84;
- break;
- case 24:
- wSubCHSize = 48;
- break;
- case 25:
- wSubCHSize = 58;
- break;
- case 26:
- wSubCHSize = 70;
- break;
- case 27:
- wSubCHSize = 84;
- break;
- case 28:
- wSubCHSize = 104;
- break;
- case 29:
- wSubCHSize = 58;
- break;
- case 30:
- wSubCHSize = 70;
- break;
- case 31:
- wSubCHSize = 84;
- break;
- case 32:
- wSubCHSize = 104;
- break;
- case 33:
- wSubCHSize = 64;
- break;
- case 34:
- wSubCHSize = 84;
- break;
- case 35:
- wSubCHSize = 96;
- break;
- case 36:
- wSubCHSize = 116;
- break;
- case 37:
- wSubCHSize = 140;
- break;
- case 38:
- wSubCHSize = 80;
- break;
- case 39:
- wSubCHSize = 104;
- break;
- case 40:
- wSubCHSize = 116;
- break;
- case 41:
- wSubCHSize = 140;
- break;
- case 42:
- wSubCHSize = 168;
- break;
- case 43:
- wSubCHSize = 96;
- break;
- case 44:
- wSubCHSize = 116;
- break;
- case 45:
- wSubCHSize = 140;
- break;
- case 46:
- wSubCHSize = 168;
- break;
- case 47:
- wSubCHSize = 208;
- break;
- case 48:
- wSubCHSize = 116;
- break;
- case 49:
- wSubCHSize = 140;
- break;
- case 50:
- wSubCHSize = 168;
- break;
- case 51:
- wSubCHSize = 208;
- break;
- case 52:
- wSubCHSize = 232;
- break;
- case 53:
- wSubCHSize = 128;
- break;
- case 54:
- wSubCHSize = 168;
- break;
- case 55:
- wSubCHSize = 192;
- break;
- case 56:
- wSubCHSize = 232;
- break;
- case 57:
- wSubCHSize = 280;
- break;
- case 58:
- wSubCHSize = 160;
- break;
- case 59:
- wSubCHSize = 208;
- break;
- case 60:
- wSubCHSize = 280;
- break;
- case 61:
- wSubCHSize = 192;
- break;
- case 62:
- wSubCHSize = 280;
- break;
- case 63:
- wSubCHSize = 416;
- break;
- }
- return wSubCHSize;
-}
-
-void INC_EXTENSION_000(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pstHeader;
- union ST_TYPE_0 *pstType;
- union ST_TYPE0of0_INFO *pBitStarm;
- unsigned int ulBitStram = 0;
- pstHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pstType = (union ST_TYPE_0 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- ulBitStram = INC_GET_LONGDATA(pFibInfo);
- pBitStarm = (union ST_TYPE0of0_INFO *) &ulBitStram;
- INC_ADD_ENSEMBLE_ID(pBitStarm);
- if (pBitStarm->ITEM.bitChangFlag)
- pFibInfo->ucDataPos += 1;
-}
-
-void INC_EXTENSION_001(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pstHeader;
- union ST_TYPE_0 *pstType;
- union ST_TYPE0of1Short_INFO *pShortInfo = INC_NULL;
- union ST_TYPE0of1Long_INFO *pLongInfo = INC_NULL;
- struct ST_FICDB_LIST *pList;
- unsigned int ulTypeInfo;
- unsigned short uiStartAddr;
- unsigned char ucSubChId, ucIndex, ucShortLongFlag;
- pList = INC_GET_FICDB_LIST();
- pstHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pstType = (union ST_TYPE_0 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- for (ucIndex = 0; ucIndex < pstHeader->ITEM.bitLength - 1;) {
- ucShortLongFlag =
- (pFibInfo->aucBuff[pFibInfo->ucDataPos + 2]
- >> 7) & 0x01;
- if (ucShortLongFlag == 0) {
- ulTypeInfo =
- INC_GET_LONGDATA(pFibInfo);
- pShortInfo =
- (union ST_TYPE0of1Short_INFO *) &ulTypeInfo;
- pFibInfo->ucDataPos -= 1;
- ucSubChId = pShortInfo->ITEM.bitSubChId;
- uiStartAddr = pShortInfo->ITEM.bitStartAddr;
- }
-
- else {
- ulTypeInfo = INC_GET_LONGDATA(pFibInfo);
- pLongInfo = (union ST_TYPE0of1Long_INFO *) &ulTypeInfo;
- ucSubChId = pLongInfo->ITEM.bitSubChId;
- uiStartAddr = pLongInfo->ITEM.bitStartAddr;
- }
- if (pList->ucIsSetSimple == SIMPLE_FIC_ENABLE)
- INC_FIND_SIMPLE_ORGANIZAION_SUBCHANNEL_ID(ucSubChId,
- uiStartAddr, ulTypeInfo);
- else
- INC_FIND_ORGANIZAION_SUBCHANNEL_ID(ucSubChId,
- ulTypeInfo);
- ucIndex += (!ucShortLongFlag) ? 3 : 4;
- }
- if (pList->ucIsSimpleCnt)
- pList->ucIsSimpleFIC = 1;
-}
-
-void INC_EXTENSION_002(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pstHeader;
- union ST_TYPE_0 *pstType;
- union ST_SERVICE_COMPONENT *pService;
- unsigned int ulServiceId;
- unsigned short uiData;
- unsigned char ucService, ucLoop, ucFrame;
- pstHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pstType = (union ST_TYPE_0 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- for (ucFrame = 0; ucFrame < pstHeader->ITEM.bitLength - 1;) {
- if (pstType->ITEM.bitPD == 0) {
- ulServiceId = (unsigned int) INC_GET_WORDDATA(pFibInfo);
- ucFrame += 2;
- }
-
- else {
- ulServiceId = INC_GET_LONGDATA(pFibInfo);
- ucFrame += 4;
- }
- ucService = INC_GET_BYTEDATA(pFibInfo);
- ucFrame += 1;
- pService = (union ST_SERVICE_COMPONENT *) &ucService;
- for (ucLoop = 0; ucLoop < pService->ITEM.bitNumComponent;
- ucLoop++, ucFrame += 2){
- uiData = INC_GET_WORDDATA(pFibInfo);
- INC_FIND_BASIC_SERVICE(ulServiceId, uiData);
- }
- }
-}
-
-void INC_EXTENSION_003(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pstHeader;
- union ST_TYPE_0 *pstType;
- union ST_TYPE0of3_INFO *pTypeInfo;
- union ST_TYPE0of3Id_INFO *pIdInfo;
- unsigned int uiId, uiTypeInfo;
- unsigned char ucIndex;
- pstHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pstType = (union ST_TYPE_0 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- for (ucIndex = 0; ucIndex < pstHeader->ITEM.bitLength - 1;) {
- uiTypeInfo = INC_GET_WORDDATA(pFibInfo);
- pTypeInfo = (union ST_TYPE0of3_INFO *) &uiTypeInfo;
- uiId = INC_GET_WORDDATA(pFibInfo);
- uiId = (uiId << 16) | (INC_GET_BYTEDATA(pFibInfo) << 8);
- pIdInfo = (union ST_TYPE0of3Id_INFO *) &uiId;
- INC_FIND_PACKET_MODE(pTypeInfo, pIdInfo);
- ucIndex += 5;
- if (pTypeInfo->ITEM.bitCAOrgFlag == 1) {
- ucIndex += 2;
- pFibInfo->ucDataPos += 2;
- }
- }
-}
-
-void INC_EXTENSION_008(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pstHeader;
- union ST_TYPE_0 *pstType;
- union ST_MSC_BIT *pstMsc;
- union ST_MSC_SHORT *pstMscShort;
- union ST_MSC_LONG *pstMscLong;
- unsigned short uiMsgBit;
- unsigned int ulSerId = 0;
- unsigned char ucMscInfo, ucIndex, ucLSFlag;
- pstHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pstType = (union ST_TYPE_0 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- for (ucIndex = 0; ucIndex < pstHeader->ITEM.bitLength - 1;) {
- if (!pstType->ITEM.bitPD) {
- ulSerId = (unsigned int) INC_GET_WORDDATA(pFibInfo);
- ucIndex += 2;
- }
-
- else {
- ulSerId = INC_GET_LONGDATA(pFibInfo);
- ucIndex += 4;
- }
- ucMscInfo = INC_GET_BYTEDATA(pFibInfo);
- pstMsc = (union ST_MSC_BIT *) &ucMscInfo;
- ucIndex += 1;
- ucLSFlag = (INC_GETAT_BYTEDATA(pFibInfo) >> 7) & 0x01;
- if (ucLSFlag) {
- uiMsgBit = INC_GET_WORDDATA(pFibInfo);
- ucIndex += 2;
- pstMscLong = (union ST_MSC_LONG *) &uiMsgBit;
- INC_FIND_GLOBAL_SERVICE_COMPONENT_LONG(
- ulSerId, pstMscLong, pstMsc);
- } else {
- uiMsgBit = (unsigned short) INC_GET_BYTEDATA(pFibInfo);
- ucIndex += 1;
- pstMscShort = (union ST_MSC_SHORT *) &uiMsgBit;
- INC_FIND_GLOBAL_SERVICE_COMPONENT_SHORT(
- ulSerId, pstMscShort, pstMsc);
- }
- if (pstMsc->ITEM.bitExtFlag) {
- ucIndex += 1;
- pFibInfo->ucDataPos += 1;
- }
- }
-}
-
-void INC_EXTENSION_010(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pstHeader;
- union ST_TYPE_0 *pstType;
- union ST_UTC_SHORT_INFO *pstUTC_Short_Info;
- union ST_UTC_LONG_INFO *pstUTC_Long_Info;
- unsigned int ulUtcInfo;
- unsigned short uiUtcLongForm;
- struct ST_FICDB_LIST *pList;
- pList = INC_GET_FICDB_LIST();
- pstHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pstType = (union ST_TYPE_0 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- ulUtcInfo = INC_GET_LONGDATA(pFibInfo);
- pstUTC_Short_Info = (union ST_UTC_SHORT_INFO *) &ulUtcInfo;
- MJDtoYMD(pstUTC_Short_Info->ITEM.bitMJD, &pList->stDate);
- pList->stDate.ucHour = (pstUTC_Short_Info->ITEM.bitHours + 9) % 24;
- pList->stDate.ucMinutes = pstUTC_Short_Info->ITEM.bitMinutes;
- if (pstUTC_Short_Info->ITEM.bitUTC_Flag) {
- uiUtcLongForm = INC_GET_WORDDATA(pFibInfo);
- pstUTC_Long_Info = (union ST_UTC_LONG_INFO *) &uiUtcLongForm;
- pList->stDate.ucSeconds =
- pstUTC_Long_Info->ITEM.bitSeconds;
- pList->stDate.uiMilliseconds =
- pstUTC_Long_Info->ITEM.bitMilliseconds;
- }
-#ifdef INC_FIC_DEBUG_MESSAGE
- INC_MSG_PRINTF(1, "\r\n UTC %.4d-%.2d-%.2d: %.2d.%.2d.%.2d[%dms]",
- pList->stDate.usYear, pList->stDate.ucMonth,
- pList->stDate.ucDay, pList->stDate.ucHour,
- pList->stDate.ucMinutes, pList->stDate.ucSeconds,
- pList->stDate.uiMilliseconds);
-#endif /* */
-}
-
-#ifdef USER_APPLICATION_TYPE
-void INC_EXTENSION_013(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pstHeader;
- union ST_TYPE_0 *pstType;
- union ST_USER_APP_IDnNUM *pUserAppIdNum;
- union ST_USER_APPTYPE *pUserAppType;
- union ST_USERAPP_GROUP_INFO stUserApp;
- unsigned int ulSid;
- unsigned char ucUserAppIdNum;
- unsigned char ucFrame, ucIndex, ucDataCnt;
- unsigned short uiUserAppType;
- pstHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pstType = (union ST_TYPE_0 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- for (ucFrame = 0; ucFrame < pstHeader->ITEM.bitLength - 1;) {
- if (pstType->ITEM.bitPD) {
- ulSid = INC_GET_LONGDATA(pFibInfo);
- ucFrame += 4;
- } else {
- ulSid = INC_GET_WORDDATA(pFibInfo);
- ucFrame += 2;
- }
- ucUserAppIdNum = INC_GET_BYTEDATA(pFibInfo);
- pUserAppIdNum = (union ST_USER_APP_IDnNUM *) &ucUserAppIdNum;
- ucFrame += 1;
- stUserApp.ucUAppSCId =
- pUserAppIdNum->ITEM.bitSCIdS;
- stUserApp.ucUAppCount =
- pUserAppIdNum->ITEM.bitNomUserApp;
-
- for (ucIndex = 0; ucIndex < stUserApp.ucUAppCount;
- ucIndex++, ucFrame += 2) {
- uiUserAppType =
- INC_GET_WORDDATA(pFibInfo);
- pUserAppType =
- (union ST_USER_APPTYPE *) &uiUserAppType;
- stUserApp.astUserApp[ucIndex].ucDataLength =
- pUserAppType->ITEM.bitUserDataLength;
- stUserApp.astUserApp[ucIndex].unUserAppType =
- pUserAppType->ITEM.bitUserAppType;
- for (ucDataCnt = 0; ucDataCnt <
- pUserAppType->ITEM.bitUserDataLength;
- ucDataCnt++) {
- stUserApp.astUserApp[ucIndex].aucData[ucDataCnt]
- = INC_GET_BYTEDATA(pFibInfo);
- ucFrame += 1;
- }
- INC_FIND_USERAPP_TYPE(ulSid, &stUserApp);
- }
- }
-}
-#endif /* */
-
-unsigned char INC_ADD_USERAPP_TYPE(unsigned int ulSID,
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent,
- short nCnt, struct ST_USERAPP_GROUP_INFO *pstData)
-{
- short nLoop;
- for (nLoop = 0; nLoop < nCnt; nLoop++, pSvcComponent++) {
- if (pSvcComponent->ulSid == ulSID
- && pSvcComponent->ucIsAppData == INC_ERROR) {
- pSvcComponent->stUApp = *pstData;
- pSvcComponent->ucIsAppData = INC_SUCCESS;
-#ifdef INC_FIC_DEBUG_MESSAGE
- INC_MSG_PRINTF(1,
- "\r\n TYPE[0/13]User Application Type file SID:0x%.8X ",
- ulSID);
-#endif /* */
- return INC_SUCCESS;
- }
- }
- return INC_ERROR;
-}
-
-void INC_FIND_USERAPP_TYPE(unsigned int ulSID,
- struct ST_USERAPP_GROUP_INFO *pstData)
-{
- struct ST_FICDB_LIST *pList;
- struct ST_STREAM_INFO *pStreamInfo;
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent;
- pList = INC_GET_FICDB_LIST();
- pStreamInfo = &pList->stDMB;
- pSvcComponent = pStreamInfo->astPrimary;
- INC_ADD_USERAPP_TYPE(ulSID, pSvcComponent, pStreamInfo->nPrimaryCnt,
- pstData);
- pSvcComponent = pStreamInfo->astSecondary;
- INC_ADD_USERAPP_TYPE(ulSID, pSvcComponent, pStreamInfo->nSecondaryCnt,
- pstData);
- pStreamInfo = &pList->stDATA;
- pSvcComponent = pStreamInfo->astPrimary;
- if (INC_ADD_USERAPP_TYPE
- (ulSID, pSvcComponent, pStreamInfo->nPrimaryCnt,
- pstData) == INC_SUCCESS)
- pList->nUserAppCnt++;
- pSvcComponent = pStreamInfo->astSecondary;
- if (INC_ADD_USERAPP_TYPE
- (ulSID, pSvcComponent, pStreamInfo->nSecondaryCnt,
- pstData) == INC_SUCCESS)
- pList->nUserAppCnt++;
-}
-
-void INC_EXTENSION_110(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pHeader;
- union ST_TYPE_1 *pType;
- unsigned char ucLoop;
- unsigned short uiEId;
- unsigned char acBuff[MAX_LABEL_CHAR];
- pHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pType = (union ST_TYPE_1 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- uiEId = INC_GET_WORDDATA(pFibInfo);
- for (ucLoop = 0; ucLoop < MAX_LABEL_CHAR; ucLoop++)
- acBuff[ucLoop] = INC_GET_BYTEDATA(pFibInfo);
- pFibInfo->ucDataPos += 2;
- INC_ADD_ENSEMBLE_NAME(uiEId, acBuff);
-}
-
-void INC_EXTENSION_111(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pHeader;
- union ST_TYPE_1 *pType;
- unsigned short uiSId, ucIndex;
- unsigned char acBuff[MAX_LABEL_CHAR];
-
- pHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pType = (union ST_TYPE_1 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- uiSId = INC_GET_WORDDATA(pFibInfo);
- for (ucIndex = 0; ucIndex < MAX_LABEL_CHAR; ucIndex++)
- acBuff[ucIndex] = INC_GET_BYTEDATA(pFibInfo);
-
- pFibInfo->ucDataPos += 2;
- INC_FIND_DATA_SERVICE_COMPONENT_LABEL(uiSId, acBuff);
-}
-
-void INC_EXTENSION_112(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pHeader;
- union ST_TYPE_1 *pType;
- union ST_EXTENSION_TYPE12 *pType12;
- unsigned char ucData;
- pHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pType = (union ST_TYPE_1 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- ucData = INC_GET_BYTEDATA(pFibInfo);
- pType12 = (union ST_EXTENSION_TYPE12 *) &ucData;
- if (pType12->ITEM.bitCF_flag)
- pFibInfo->ucDataPos += 1;
- pFibInfo->ucDataPos += 19;
- if (pType12->ITEM.bitCountry == 1)
- pFibInfo->ucDataPos += 2;
-}
-
-void INC_EXTENSION_113(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pHeader;
- union ST_TYPE_1 *pType;
- pHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pType = (union ST_TYPE_1 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pFibInfo->ucDataPos += 19;
-}
-
-void INC_EXTENSION_114(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pHeader;
- union ST_TYPE_1 *pType;
- union ST_EXTENSION_TYPE14 *pExtenType;
- unsigned int ulSId;
- unsigned char ucData, ucIndex;
- unsigned char acBuff[MAX_LABEL_CHAR];
- pHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pType = (union ST_TYPE_1 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- ucData = INC_GET_BYTEDATA(pFibInfo);
- pExtenType = (union ST_EXTENSION_TYPE14 *) &ucData;
- if (!pExtenType->ITEM.bitPD)
- ulSId = (unsigned int) INC_GET_WORDDATA(pFibInfo);
-
- else
- ulSId = INC_GET_LONGDATA(pFibInfo);
- for (ucIndex = 0; ucIndex < MAX_LABEL_CHAR; ucIndex++)
- acBuff[ucIndex] = INC_GET_BYTEDATA(pFibInfo);
- pFibInfo->ucDataPos += 2;
- INC_FIND_SERVICE_COMPONENT_LABEL(ulSId, acBuff);
-}
-
-void INC_EXTENSION_115(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pHeader;
- union ST_TYPE_1 *pType;
- unsigned int ulSId;
- unsigned char ucIndex, acBuff[MAX_LABEL_CHAR];
- pHeader =
- (union ST_FIG_HEAD *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- pType = (union ST_TYPE_1 *) &pFibInfo->aucBuff[pFibInfo->ucDataPos++];
- ulSId = INC_GET_LONGDATA(pFibInfo);
- for (ucIndex = 0; ucIndex < MAX_LABEL_CHAR; ucIndex++)
- acBuff[ucIndex] = INC_GET_BYTEDATA(pFibInfo);
- pFibInfo->ucDataPos += 2;
- INC_FIND_DATA_SERVICE_COMPONENT_LABEL(ulSId, acBuff);
-}
-
-void INC_SET_UPDATEFIC(struct ST_FIB_INFO *pstDestData,
- unsigned char *pSourData)
-{
- unsigned char cuIndex;
- unsigned short wCRC, wCRCData;
- for (cuIndex = 0; cuIndex < FIB_SIZE; cuIndex++)
- pstDestData->aucBuff[cuIndex] = pSourData[cuIndex];
- wCRC =
- INC_CRC_CHECK((unsigned char *) pstDestData->aucBuff,
- FIB_SIZE - 2);
- wCRCData =
- ((unsigned short) pstDestData->aucBuff[30] << 8) |
- pstDestData->aucBuff[31];
- pstDestData->ucDataPos = 0;
- pstDestData->uiIsCRC = wCRC == wCRCData;
-}
-
-unsigned char INC_GET_FIND_TYPE(union ST_FIG_HEAD *pInfo)
-{
- if (pInfo->ITEM.bitType <= FIG_IN_HOUSE)
- return INC_SUCCESS;
- return INC_ERROR;
-}
-
-
-void INC_SET_FICTYPE_1(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_TYPE_1 *pExtern;
- union ST_FIG_HEAD *pHeader;
- unsigned char ucType, ucHeader;
- ucHeader = INC_GETAT_HEADER(pFibInfo);
- ucType = INC_GETAT_TYPE(pFibInfo);
- pHeader = (union ST_FIG_HEAD *) &ucHeader;
- pExtern = (union ST_TYPE_1 *) &ucType;
- switch (pExtern->ITEM.bitExtension) {
- case EXTENSION_0:
- INC_EXTENSION_110(pFibInfo);
- break;
- case EXTENSION_1:
- INC_EXTENSION_111(pFibInfo);
- break;
- case EXTENSION_2:
- INC_EXTENSION_112(pFibInfo);
- break;
- case EXTENSION_3:
- INC_EXTENSION_113(pFibInfo);
- break;
- case EXTENSION_4:
- INC_EXTENSION_114(pFibInfo);
- break;
- case EXTENSION_5:
- INC_EXTENSION_115(pFibInfo);
- break;
- default:
- pFibInfo->ucDataPos += (pHeader->ITEM.bitLength + 1);
- break;
- }
-}
-
-unsigned short INC_SET_FICTYPE_0(struct ST_FIB_INFO *pFibInfo)
-{
- union ST_FIG_HEAD *pHeader;
- union ST_TYPE_0 *pExtern;
- unsigned char ucHeader, ucType;
- ucHeader = INC_GETAT_HEADER(pFibInfo);
- pHeader = (union ST_FIG_HEAD *) &ucHeader;
- ucType = INC_GETAT_TYPE(pFibInfo);
- pExtern = (union ST_TYPE_0 *) &ucType;
- switch (pExtern->ITEM.bitExtension) {
- case EXTENSION_0:
- INC_EXTENSION_000(pFibInfo);
- break;
- case EXTENSION_1:
- INC_EXTENSION_001(pFibInfo);
- break;
- case EXTENSION_2:
- INC_EXTENSION_002(pFibInfo);
- break;
- case EXTENSION_3:
- INC_EXTENSION_003(pFibInfo);
- break;
- case EXTENSION_10:
- INC_EXTENSION_010(pFibInfo);
- break;
-
-#ifdef USER_APPLICATION_TYPE
- case EXTENSION_13:
- INC_EXTENSION_013(pFibInfo);
- break;
-
-#endif /* */
- default:
- pFibInfo->ucDataPos += pHeader->ITEM.bitLength + 1;
- break;
- }
- return INC_SUCCESS;
-}
-
-unsigned char INC_FICPARSING(unsigned char ucI2CID, unsigned char *pucFicBuff,
- int uFicLength, enum ST_SIMPLE_FIC bSimpleFIC)
-{
- struct ST_FIC stFIC;
- struct ST_FIB_INFO *pstFib;
- union ST_FIG_HEAD *pHeader;
- struct ST_FICDB_LIST *pList;
- unsigned char ucLoop, ucHeader;
- pList = INC_GET_FICDB_LIST();
- stFIC.ucBlockNum = uFicLength / FIB_SIZE;
- pstFib = &stFIC.stBlock;
- pList->ucIsSetSimple = bSimpleFIC;
- for (ucLoop = 0; ucLoop < stFIC.ucBlockNum; ucLoop++) {
- INC_SET_UPDATEFIC(pstFib,
- &pucFicBuff[ucLoop * FIB_SIZE]);
- if (!pstFib->uiIsCRC)
- continue;
- while (pstFib->ucDataPos < FIB_SIZE - 2) {
- ucHeader = INC_GETAT_HEADER(pstFib);
- pHeader = (union ST_FIG_HEAD *) &ucHeader;
- if (!INC_GET_FIND_TYPE(pHeader)
- || !INC_GET_NULL_BLOCK(pHeader)
- || !INC_GET_FIND_LENGTH(pHeader))
- break;
- switch (pHeader->ITEM.bitType) {
- case FIG_MCI_SI:
- INC_SET_FICTYPE_0(pstFib);
- break;
- case FIG_LABEL:
- INC_SET_FICTYPE_1(pstFib);
- break;
- case FIG_RESERVED_0:
- case FIG_RESERVED_1:
- case FIG_RESERVED_2:
- case FIG_FICDATA_CHANNEL:
- case FIG_CONDITION_ACCESS:
- case FIG_IN_HOUSE:
- default:
- pstFib->ucDataPos +=
- pHeader->ITEM.bitLength + 1;
- break;
- }
- if (pstFib->ucDataPos == (FIB_SIZE - 1))
- break;
- }
- }
- if (bSimpleFIC == SIMPLE_FIC_ENABLE && pList->ucIsSimpleFIC)
- return INC_SUCCESS;
- if (pList->nLabelCnt &&
- pList->nSubChannelCnt &&
- pList->nEmsembleLabelFlag) {
- #ifdef USER_APPLICATION_TYPE
- if (pList->nLabelCnt == pList->nSubChannelCnt
- && pList->nPacketCnt == pList->nPacketModeCnt
- && pList->nUserAppCnt == pList->nPacketCnt
- && bSimpleFIC == SIMPLE_FIC_DISABLE)
- return INC_SUCCESS;
-
- #else /* */
- if (pList->nLabelCnt == pList->nSubChannelCnt
- && pList->nPacketCnt == pList->nPacketModeCnt
- && bSimpleFIC == SIMPLE_FIC_DISABLE)
- return INC_SUCCESS;
- #endif /* */
- }
- return INC_ERROR;
-}
-
-void INC_LABEL_FILTER(unsigned char *pData, short nSize)
-{
- short nLoop;
- for (nLoop = nSize - 1; nLoop >= 0; nLoop--) {
- if (pData[nLoop] == 0x20)
- pData[nLoop] = INC_NULL;
- else
- break;
- }
-}
-
-void INC_ADD_SERVICE_LABEL(struct ST_STREAM_INFO *pStreamInfo,
- unsigned int ulSID, unsigned char *pcLabel)
-{
- struct ST_FICDB_LIST *pList;
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent;
- short nLoop;
- pList = INC_GET_FICDB_LIST();
- pSvcComponent = pStreamInfo->astPrimary;
- for (nLoop = 0; nLoop < pStreamInfo->nPrimaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ulSid == ulSID &&
- !pSvcComponent->ucIsLable) {
- memcpy(pSvcComponent->aucLabels, pcLabel,
- MAX_LABEL_CHAR);
- INC_LABEL_FILTER(pSvcComponent->aucLabels,
- MAX_LABEL_CHAR);
- pSvcComponent->ucIsLable = 1;
- pList->nLabelCnt++;
-#ifdef INC_FIC_DEBUG_MESSAGE
- INC_MSG_PRINTF(1,
- "\r\n TYPE[1/11] SID[0x%.8X] Service label[ %s ] ",
- ulSID, pSvcComponent->aucLabels);
-#endif /* */
- }
- }
-
- pSvcComponent = pStreamInfo->astSecondary;
- for (nLoop = 0; nLoop < pStreamInfo->nSecondaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ulSid == ulSID &&
- !pSvcComponent->ucIsLable) {
- memcpy(pSvcComponent->aucLabels, pcLabel,
- MAX_LABEL_CHAR);
- INC_LABEL_FILTER(pSvcComponent->aucLabels,
- MAX_LABEL_CHAR);
- pSvcComponent->ucIsLable = 1;
- pList->nLabelCnt++;
-
-#ifdef INC_FIC_DEBUG_MESSAGE
- INC_MSG_PRINTF(1,
- "\r\n TYPE[1/11] SID[0x%.8X] Service label[ %s ] ",
- ulSID, pSvcComponent->aucLabels);
-#endif /* */
- }
- }
-}
-
-void INC_ADD_SERVICE_COMPONENT_LABEL(
- struct ST_STREAM_INFO *pStreamInfo, unsigned int ulSID,
- unsigned char *pcLabel)
-{
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent;
- short nLoop;
- pSvcComponent = pStreamInfo->astPrimary;
- for (nLoop = 0; nLoop < pStreamInfo->nPrimaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ulSid == ulSID &&
- !pSvcComponent->ucIsComponentLabel) {
- memcpy(pSvcComponent->aucComponentLabels, pcLabel,
- MAX_LABEL_CHAR);
- INC_LABEL_FILTER(pSvcComponent->aucComponentLabels,
- MAX_LABEL_CHAR);
- pSvcComponent->ucIsComponentLabel = 1;
-
-#ifdef INC_FIC_DEBUG_MESSAGE
- INC_MSG_PRINTF(1,
- "\r\nSID[0x%.8X] Service Component label[ %s ] ",
- ulSID,
- pSvcComponent->aucComponentLabels);
-#endif /* */
- }
- }
- pSvcComponent = pStreamInfo->astSecondary;
- for (nLoop = 0; nLoop < pStreamInfo->nSecondaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ulSid == ulSID &&
- !pSvcComponent->ucIsComponentLabel) {
- memcpy(pSvcComponent->aucComponentLabels, pcLabel,
- MAX_LABEL_CHAR);
- INC_LABEL_FILTER(pSvcComponent->aucComponentLabels,
- MAX_LABEL_CHAR);
- pSvcComponent->ucIsComponentLabel = 1;
-
-#ifdef INC_FIC_DEBUG_MESSAGE
- INC_MSG_PRINTF(1,
- "\r\nSID[0x%.8X] Service Component label[ %s ] ",
- ulSID,
- pSvcComponent->aucComponentLabels);
-
-#endif /* */
- }
- }
-}
-
-void INC_FIND_DATA_SERVICE_COMPONENT_LABEL(unsigned int ulSID,
- unsigned char *pcLabel)
-{
- struct ST_FICDB_LIST *pList;
- struct ST_STREAM_INFO *pStreamInfo;
- pList = INC_GET_FICDB_LIST();
- pStreamInfo = &pList->stDAB;
- INC_ADD_SERVICE_LABEL(pStreamInfo, ulSID, pcLabel);
- pStreamInfo = &pList->stDMB;
- INC_ADD_SERVICE_LABEL(pStreamInfo, ulSID, pcLabel);
- pStreamInfo = &pList->stDATA;
- INC_ADD_SERVICE_LABEL(pStreamInfo, ulSID, pcLabel);
-}
-
-void INC_FIND_SERVICE_COMPONENT_LABEL(unsigned int ulSID,
- unsigned char *pcLabel)
-{
- struct ST_FICDB_LIST *pList;
- struct ST_STREAM_INFO *pStreamInfo;
- pList = INC_GET_FICDB_LIST();
- pStreamInfo = &pList->stDAB;
- INC_ADD_SERVICE_COMPONENT_LABEL(pStreamInfo, ulSID, pcLabel);
- pStreamInfo = &pList->stDMB;
- INC_ADD_SERVICE_COMPONENT_LABEL(pStreamInfo, ulSID, pcLabel);
-
- pStreamInfo = &pList->stDATA;
- INC_ADD_SERVICE_COMPONENT_LABEL(pStreamInfo, ulSID, pcLabel);
-}
-
-void INC_ADD_GLOBAL_SERVICE_COMPONENT_SHORT(struct ST_STREAM_INFO *pStreamInfo,
- unsigned int ulSvcID,
- union ST_MSC_SHORT *pstMscShort,
- union ST_MSC_BIT *pstMsc)
-{
- short nLoop;
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent;
-
- if (!pstMscShort->ITEM.bitMscFicFlag) {
- pSvcComponent = pStreamInfo->astPrimary;
- for (nLoop = 0; nLoop < pStreamInfo->nPrimaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ulSid == ulSvcID)
- pSvcComponent->ucSCidS = pstMsc->ITEM.bitScIds;
- }
- pSvcComponent = pStreamInfo->astSecondary;
- for (nLoop = 0; nLoop < pStreamInfo->nSecondaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ulSid == ulSvcID)
- pSvcComponent->ucSCidS = pstMsc->ITEM.bitScIds;
- }
- }
-}
-
-void INC_FIND_GLOBAL_SERVICE_COMPONENT_SHORT(unsigned int ulSvcID,
- union ST_MSC_SHORT *pstMscShort,
- union ST_MSC_BIT *pstMsc)
-{
- struct ST_FICDB_LIST *pList;
- struct ST_STREAM_INFO *pStreamInfo;
- pList = INC_GET_FICDB_LIST();
- pStreamInfo = &pList->stDMB;
- INC_ADD_GLOBAL_SERVICE_COMPONENT_SHORT(pStreamInfo, ulSvcID,
- pstMscShort, pstMsc);
- pStreamInfo = &pList->stDAB;
- INC_ADD_GLOBAL_SERVICE_COMPONENT_SHORT(pStreamInfo, ulSvcID,
- pstMscShort, pstMsc);
- pStreamInfo = &pList->stDATA;
- INC_ADD_GLOBAL_SERVICE_COMPONENT_SHORT(pStreamInfo, ulSvcID,
- pstMscShort, pstMsc);
-}
-
-void INC_ADD_GLOBAL_SERVICE_COMPONENT_LONG(struct ST_STREAM_INFO *pStreamInfo,
- unsigned int ulSvcID,
- union ST_MSC_LONG *pstMscLong,
- union ST_MSC_BIT *pstMsc)
-{
- short nLoop;
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent;
- pSvcComponent = pStreamInfo->astPrimary;
- for (nLoop = 0; nLoop < pStreamInfo->nPrimaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ulSid == ulSvcID)
- pSvcComponent->ucSubChid = pstMscLong->ITEM.bitScId;
- }
- pSvcComponent = pStreamInfo->astSecondary;
- for (nLoop = 0; nLoop < pStreamInfo->nSecondaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ulSid == ulSvcID)
- pSvcComponent->ucSubChid = pstMscLong->ITEM.bitScId;
- }
-}
-
-void INC_FIND_GLOBAL_SERVICE_COMPONENT_LONG(unsigned int ulSvcID,
- union ST_MSC_LONG *pstMscLong,
- union ST_MSC_BIT *pstMsc)
-{
- struct ST_FICDB_LIST *pList;
- struct ST_STREAM_INFO *pStreamInfo;
- pList = INC_GET_FICDB_LIST();
- pStreamInfo = &pList->stDMB;
- INC_ADD_GLOBAL_SERVICE_COMPONENT_LONG(pStreamInfo, ulSvcID, pstMscLong,
- pstMsc);
- pStreamInfo = &pList->stDAB;
- INC_ADD_GLOBAL_SERVICE_COMPONENT_LONG(pStreamInfo, ulSvcID, pstMscLong,
- pstMsc);
- pStreamInfo = &pList->stDATA;
- INC_ADD_GLOBAL_SERVICE_COMPONENT_LONG(pStreamInfo, ulSvcID, pstMscLong,
- pstMsc);
-}
-
-void INC_FIND_PACKET_MODE(union ST_TYPE0of3_INFO *pTypeInfo,
- union ST_TYPE0of3Id_INFO *pIdInfo)
-{
- struct ST_FICDB_LIST *pList;
- struct ST_STREAM_INFO *pStreamInfo;
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent;
- short nLoop;
- pList = INC_GET_FICDB_LIST();
- pStreamInfo = &pList->stDATA;
- pSvcComponent = pStreamInfo->astPrimary;
- for (nLoop = 0; nLoop < pStreamInfo->nPrimaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ucSCidS == pTypeInfo->ITEM.bitScid
- && !pSvcComponent->IsPacketMode) {
- pSvcComponent->ucDSCType = pIdInfo->ITEM.bitDScType;
- pSvcComponent->ucSubChid = pIdInfo->ITEM.bitSubChId;
- pSvcComponent->unPacketAddr =
- pIdInfo->ITEM.bitPacketAddr;
- pSvcComponent->IsPacketMode = 1;
- pList->nPacketModeCnt++;
- }
- }
- pSvcComponent = pStreamInfo->astSecondary;
- for (nLoop = 0; nLoop < pStreamInfo->nSecondaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ucSCidS == pTypeInfo->ITEM.bitScid
- && !pSvcComponent->IsPacketMode) {
- pSvcComponent->ucDSCType = pIdInfo->ITEM.bitDScType;
- pSvcComponent->ucSubChid = pIdInfo->ITEM.bitSubChId;
- pSvcComponent->unPacketAddr =
- pIdInfo->ITEM.bitPacketAddr;
- pSvcComponent->IsPacketMode = 1;
- pList->nPacketModeCnt++;
- }
- }
-}
-
-void INC_GET_SHORT_FORM(struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent,
- union ST_TYPE0of1Short_INFO *pShort)
-{
- pSvcComponent->ucShortLong = pShort->ITEM.bitShortLong;
- pSvcComponent->ucTableSW = pShort->ITEM.bitTableSw;
- pSvcComponent->ucTableIndex = pShort->ITEM.bitTableIndex;
- pSvcComponent->ucOption = 0;
- pSvcComponent->ucProtectionLevel = 0;
- pSvcComponent->uiSubChSize =
- INC_FIND_SUB_CHANNEL_SIZE(pSvcComponent->ucTableIndex);
- pSvcComponent->uiDifferentRate = 0;
- pSvcComponent->uiBitRate = INC_GET_BITRATE(pSvcComponent);
-}
-
-void INC_GET_LONG_FORM(struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent,
- union ST_TYPE0of1Long_INFO *pLong)
-{
- pSvcComponent->ucShortLong = pLong->ITEM.bitShortLong;
- pSvcComponent->ucTableSW = 0;
- pSvcComponent->ucTableIndex = 0;
- pSvcComponent->ucOption = pLong->ITEM.bitOption;
- pSvcComponent->ucProtectionLevel = pLong->ITEM.bitProtecLevel;
- pSvcComponent->uiSubChSize = pLong->ITEM.bitSubChanSize;
-
- if (pSvcComponent->ucOption == 0) {
- switch (pSvcComponent->ucProtectionLevel) {
- case 0:
- pSvcComponent->uiDifferentRate =
- (pSvcComponent->uiSubChSize / 12);
- break;
- case 1:
- pSvcComponent->uiDifferentRate =
- (pSvcComponent->uiSubChSize / 8);
- break;
- case 2:
- pSvcComponent->uiDifferentRate =
- (pSvcComponent->uiSubChSize / 6);
- break;
- case 3:
- pSvcComponent->uiDifferentRate =
- (pSvcComponent->uiSubChSize / 4);
- break;
- default:
- pSvcComponent->uiDifferentRate = 0;
- break;
- }
- }
-
- else {
- switch (pSvcComponent->ucProtectionLevel) {
- case 0:
- pSvcComponent->uiDifferentRate =
- (pSvcComponent->uiSubChSize / 27);
- break;
- case 1:
- pSvcComponent->uiDifferentRate =
- (pSvcComponent->uiSubChSize / 21);
- break;
- case 2:
- pSvcComponent->uiDifferentRate =
- (pSvcComponent->uiSubChSize / 18);
- break;
- case 3:
- pSvcComponent->uiDifferentRate =
- (pSvcComponent->uiSubChSize / 15);
- break;
- default:
- pSvcComponent->uiDifferentRate = 0;
- break;
- }
- }
- pSvcComponent->uiBitRate = INC_GET_BITRATE(pSvcComponent);
-}
-
-unsigned short INC_GET_BITRATE(struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent)
-{
- unsigned short uiBitRate = 0;
- if (!pSvcComponent->ucShortLong) {
- if (pSvcComponent->ucTableIndex <= 4)
- uiBitRate = 32;
-
- else if (pSvcComponent->ucTableIndex >= 5
- && pSvcComponent->ucTableIndex <= 9)
- uiBitRate = 48;
-
- else if (pSvcComponent->ucTableIndex >= 10
- && pSvcComponent->ucTableIndex <= 13)
- uiBitRate = 56;
-
- else if (pSvcComponent->ucTableIndex >= 14
- && pSvcComponent->ucTableIndex <= 18)
- uiBitRate = 64;
-
- else if (pSvcComponent->ucTableIndex >= 19
- && pSvcComponent->ucTableIndex <= 23)
- uiBitRate = 80;
-
- else if (pSvcComponent->ucTableIndex >= 24
- && pSvcComponent->ucTableIndex <= 28)
- uiBitRate = 96;
-
- else if (pSvcComponent->ucTableIndex >= 29
- && pSvcComponent->ucTableIndex <= 32)
- uiBitRate = 112;
-
- else if (pSvcComponent->ucTableIndex >= 33
- && pSvcComponent->ucTableIndex <= 37)
- uiBitRate = 128;
-
- else if (pSvcComponent->ucTableIndex >= 38
- && pSvcComponent->ucTableIndex <= 42)
- uiBitRate = 160;
-
- else if (pSvcComponent->ucTableIndex >= 43
- && pSvcComponent->ucTableIndex <= 47)
- uiBitRate = 192;
-
- else if (pSvcComponent->ucTableIndex >= 48
- && pSvcComponent->ucTableIndex <= 52)
- uiBitRate = 224;
-
- else if (pSvcComponent->ucTableIndex >= 53
- && pSvcComponent->ucTableIndex <= 57)
- uiBitRate = 256;
-
- else if (pSvcComponent->ucTableIndex >= 58
- && pSvcComponent->ucTableIndex <= 60)
- uiBitRate = 320;
-
- else if (pSvcComponent->ucTableIndex >= 61
- && pSvcComponent->ucTableIndex <= 63)
- uiBitRate = 384;
-
- else
- uiBitRate = 0;
- } else {
- if (pSvcComponent->ucOption == OPTION_INDICATE0) {
- switch (pSvcComponent->ucProtectionLevel) {
- case PROTECTION_LEVEL0:
- uiBitRate =
- (pSvcComponent->uiSubChSize / 12) * 8;
- break;
- case PROTECTION_LEVEL1:
- uiBitRate =
- (pSvcComponent->uiSubChSize / 8) * 8;
- break;
- case PROTECTION_LEVEL2:
- uiBitRate =
- (pSvcComponent->uiSubChSize / 6) * 8;
- break;
- case PROTECTION_LEVEL3:
- uiBitRate =
- (pSvcComponent->uiSubChSize / 4) * 8;
- break;
- }
- }
-
- else if (pSvcComponent->ucOption == OPTION_INDICATE1) {
- switch (pSvcComponent->ucProtectionLevel) {
- case PROTECTION_LEVEL0:
- uiBitRate =
- (pSvcComponent->uiSubChSize / 27) * 32;
- break;
- case PROTECTION_LEVEL1:
- uiBitRate =
- (pSvcComponent->uiSubChSize / 21) * 32;
- break;
- case PROTECTION_LEVEL2:
- uiBitRate =
- (pSvcComponent->uiSubChSize / 18) * 32;
- break;
- case PROTECTION_LEVEL3:
- uiBitRate =
- (pSvcComponent->uiSubChSize / 15) * 32;
- break;
- }
- }
- }
- return uiBitRate;
-}
-
-void INC_ADD_ORGANIZAION_SUBCHANNEL_ID(
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent,
- unsigned int ulTypeInfo)
-{
- union ST_TYPE0of1Long_INFO *pLongInfo;
- union ST_TYPE0of1Short_INFO *pShortInfo;
- pShortInfo = (union ST_TYPE0of1Short_INFO *) &ulTypeInfo;
- pLongInfo = (union ST_TYPE0of1Long_INFO *) &ulTypeInfo;
- pSvcComponent->unStartAddr = pShortInfo->ITEM.bitStartAddr;
- if (pShortInfo->ITEM.bitShortLong)
- INC_GET_LONG_FORM(pSvcComponent, pLongInfo);
- else
- INC_GET_SHORT_FORM(pSvcComponent, pShortInfo);
-}
-
-void INC_SORT_ORGANIZAION_SUBCHANNEL_ID(
- struct ST_STREAM_INFO *pStreamInfo,
- unsigned char ucSubChID,
- unsigned int ulTypeInfo)
-{
- short nLoop;
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent;
- pSvcComponent = pStreamInfo->astPrimary;
- for (nLoop = 0; nLoop < pStreamInfo->nPrimaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ucSubChid == ucSubChID
- && !pSvcComponent->IsOrganiza) {
- INC_ADD_ORGANIZAION_SUBCHANNEL_ID(
- pSvcComponent, ulTypeInfo);
- pSvcComponent->IsOrganiza = INC_SUCCESS;
-#ifdef INC_FIC_DEBUG_MESSAGE
- INC_MSG_PRINTF(1, "\r\n TYPE[0/1] SUB CH ID %x",
- ucSubChID);
-#endif /* */
- }
- }
- pSvcComponent = pStreamInfo->astSecondary;
- for (nLoop = 0; nLoop < pStreamInfo->nSecondaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ucSubChid == ucSubChID
- && !pSvcComponent->IsOrganiza) {
- INC_ADD_ORGANIZAION_SUBCHANNEL_ID(
- pSvcComponent, ulTypeInfo);
- pSvcComponent->IsOrganiza = INC_SUCCESS;
-
-#ifdef INC_FIC_DEBUG_MESSAGE
- INC_MSG_PRINTF(1, "\r\n TYPE[0/1] SUB CH ID %x",
- ucSubChID);
-#endif /* */
- }
- }
-}
-
-unsigned char INC_SORT_SIMPLE_ORGANIZAION_SUBCHANNEL_ID(
- struct ST_STREAM_INFO *pStreamInfo, unsigned char ucSubChID,
- unsigned short unStartAddr, unsigned int ulTypeInfo)
-{
- short nLoop;
- struct ST_FICDB_LIST *pList;
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent;
- pList = INC_GET_FICDB_LIST();
- pSvcComponent = pStreamInfo->astPrimary;
- for (nLoop = 0; nLoop < pStreamInfo->nPrimaryCnt;
- nLoop++, pSvcComponent++) {
- if (pSvcComponent->ucSubChid == ucSubChID
- && pSvcComponent->unStartAddr == unStartAddr) {
- return INC_ERROR;
- }
- }
- pSvcComponent =
- &pStreamInfo->astPrimary[pStreamInfo->nPrimaryCnt];
- pSvcComponent->ucSubChid = ucSubChID;
- pSvcComponent->unStartAddr = unStartAddr;
- INC_ADD_ORGANIZAION_SUBCHANNEL_ID(pSvcComponent, ulTypeInfo);
- pStreamInfo->nPrimaryCnt++;
- pList->ucIsSimpleCnt++;
- return INC_SUCCESS;
-}
-
-void INC_FIND_SIMPLE_ORGANIZAION_SUBCHANNEL_ID(
- unsigned char ucSubChID,
- unsigned short unStartAddr,
- unsigned int ulTypeInfo)
-{
- struct ST_FICDB_LIST *pList;
- struct ST_STREAM_INFO *pStreamInfo;
- pList = INC_GET_FICDB_LIST();
- pStreamInfo = &pList->stDMB;
- INC_SORT_SIMPLE_ORGANIZAION_SUBCHANNEL_ID(
- pStreamInfo, ucSubChID, unStartAddr, ulTypeInfo);
-}
-
-void INC_FIND_ORGANIZAION_SUBCHANNEL_ID(
- unsigned char ucSubChID, unsigned int ulTypeInfo)
-{
- struct ST_FICDB_LIST *pList;
- struct ST_STREAM_INFO *pStreamInfo;
- pList = INC_GET_FICDB_LIST();
- pStreamInfo = &pList->stDMB;
- INC_SORT_ORGANIZAION_SUBCHANNEL_ID(pStreamInfo, ucSubChID, ulTypeInfo);
- pStreamInfo = &pList->stDAB;
- INC_SORT_ORGANIZAION_SUBCHANNEL_ID(pStreamInfo, ucSubChID, ulTypeInfo);
- pStreamInfo = &pList->stDATA;
- INC_SORT_ORGANIZAION_SUBCHANNEL_ID(pStreamInfo, ucSubChID, ulTypeInfo);
-}
-
-void INC_ADD_BASIC_SERVICE(
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent,
- unsigned int ulServiceId, unsigned short unData)
-{
- union ST_TMId_MSCnFIDC *pMscnFidc;
- union ST_MSC_PACKET_INFO *pMscPacket;
- pMscnFidc = (union ST_TMId_MSCnFIDC *) &unData;
- pMscPacket = (union ST_MSC_PACKET_INFO *) &unData;
- pSvcComponent->ulSid = ulServiceId;
- pSvcComponent->ucTmID = pMscnFidc->ITEM.bitTMId;
- pSvcComponent->ucCAFlag = pMscnFidc->ITEM.bitCAflag;
- pSvcComponent->ucPS = pMscnFidc->ITEM.bitPS;
- if (pMscnFidc->ITEM.bitTMId == 0x03)
- pSvcComponent->ucSCidS = pMscPacket->ITEM.bitSCId;
- else {
- pSvcComponent->ucSubChid = pMscnFidc->ITEM.bitSubChld;
- pSvcComponent->ucDSCType = pMscnFidc->ITEM.bitAscDscTy;
- }
-}
-
-void INC_FIND_BASIC_SERVICE(unsigned int ulServiceId, unsigned short unData)
-{
- short nLoop, nDataCnt;
- struct ST_FICDB_LIST *pList;
- struct ST_STREAM_INFO *pStreamInfo;
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent;
- union ST_TMId_MSCnFIDC *pMscnFidc;
- union ST_MSC_PACKET_INFO *pMscPacket;
- pList = INC_GET_FICDB_LIST();
- if (pList->ucIsSetSimple == SIMPLE_FIC_ENABLE)
- return;
- pMscnFidc = (union ST_TMId_MSCnFIDC *) &unData;
- pMscPacket = (union ST_MSC_PACKET_INFO *) &unData;
- if (pMscnFidc->ITEM.bitTMId == 0x00)
- pStreamInfo = &pList->stDAB;
-
- else if (pMscnFidc->ITEM.bitTMId == 0x01)
- pStreamInfo = &pList->stDMB;
-
- else if (pMscnFidc->ITEM.bitTMId == 0x02)
- pStreamInfo = &pList->stFIDC;
-
- else
- pStreamInfo = &pList->stDATA;
- pSvcComponent = (pMscnFidc->ITEM.bitPS) ? pStreamInfo->astPrimary :
- pStreamInfo->astSecondary;
- nDataCnt = (pMscnFidc->ITEM.bitPS) ? pStreamInfo->nPrimaryCnt :
- pStreamInfo->nSecondaryCnt;
-
- for (nLoop = 0; nLoop < nDataCnt; nLoop++, pSvcComponent++) {
- if (pSvcComponent->ulSid == ulServiceId)
- return;
- }
-
- if (pMscnFidc->ITEM.bitTMId == 0x03)
- pList->nPacketCnt++;
- if (pMscnFidc->ITEM.bitTMId != 0x02) {
- pList->nSubChannelCnt++;
- INC_ADD_BASIC_SERVICE(pSvcComponent, ulServiceId, unData);
- if (pMscnFidc->ITEM.bitPS)
- pStreamInfo->nPrimaryCnt++;
- else
- pStreamInfo->nSecondaryCnt++;
- }
-}
-
-void INC_ADD_ENSEMBLE_ID(union ST_TYPE0of0_INFO *pIdInfo)
-{
- struct ST_FICDB_LIST *pList;
- pList = INC_GET_FICDB_LIST();
- pList->unEnsembleID = pIdInfo->ITEM.bitEld;
- pList->ucChangeFlag = pIdInfo->ITEM.bitChangFlag;
-}
-
-unsigned char INC_ADD_ENSEMBLE_NAME(unsigned short unEnID,
- unsigned char *pcLabel)
-{
- struct ST_FICDB_LIST *pList;
- pList = INC_GET_FICDB_LIST();
- if (pList->ucIsEnsembleName == INC_SUCCESS)
- return INC_ERROR;
- pList->unEnsembleID = unEnID;
- pList->nEmsembleLabelFlag = 1;
- memcpy(pList->aucEnsembleName, pcLabel, MAX_LABEL_CHAR);
- INC_LABEL_FILTER(pList->aucEnsembleName, MAX_LABEL_CHAR);
- pList->ucIsEnsembleName = INC_SUCCESS;
- return INC_SUCCESS;
-}
-
-struct ST_FICDB_LIST *INC_GET_FICDB_LIST()
-{
- return &g_stFicDbList;
-}
-
-void INC_INITDB(unsigned char ucI2CID)
-{
- struct ST_FICDB_LIST *pList;
- pList = INC_GET_FICDB_LIST();
- if (pList == 0)
- return;
- memset(pList, 0, sizeof(struct ST_FICDB_LIST));
-}
diff --git a/drivers/media/tdmb/t3900/INC_INCLUDES.h b/drivers/media/tdmb/t3900/INC_INCLUDES.h
deleted file mode 100644
index 18c21f0..0000000
--- a/drivers/media/tdmb/t3900/INC_INCLUDES.h
+++ /dev/null
@@ -1,1060 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2011 I&C Inc. All Rights Reserved
-
- File name : INC_INCLUDES.h.c
-
- Description :
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-*******************************************************************************/
-
-#ifndef _INC_T3700_INCLUDES_H_
-#define _INC_T3700_INCLUDES_H_
-
-#include <linux/kernel.h>
-#include <linux/string.h>
-#include <mach/hardware.h>
-#include <mach/gpio.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-#include <linux/slab.h>
-#include <linux/module.h>
-
-#include <linux/hwmon.h>
-#include <linux/init.h>
-#include <linux/err.h>
-#include <linux/input.h>
-#include <linux/interrupt.h>
-#include <linux/spi/spi.h>
-#include <linux/proc_fs.h>
-#include <linux/sched.h>
-#include <linux/irq.h>
-#include <linux/err.h>
-#include <linux/clk.h>
-#include <linux/fs.h>
-#include <linux/fcntl.h>
-#include <linux/stat.h>
-#include <asm/system.h>
-#include <asm/mach-types.h>
-#include <linux/uaccess.h>
-#include <asm/irq.h>
-#include <asm/mach/map.h>
-#include <linux/timer.h>
-#include <asm/mach/time.h>
-#include <linux/dma-mapping.h>
-
-enum {
- FALSE = 0,
- TRUE = 1
-};
-#define INC_DEBUG_LEVEL 0
-
-#ifdef INC_MULTI_CHANNEL_ENABLE
-#define INC_MULTI_CHANNEL_FIC_UPLOAD
-#define INC_MULTI_HEADER_ENABLE
-#endif
-
-#define INC_MULTI_MAX_CHANNEL 3
-/*************************************************/
-/* FIFO Source »ç¿ë½Ã */
-/*************************************************/
-#define INC_FIFO_SOURCE_ENABLE
-
-/******************************************/
-/* USer Application type »ç¿ë½Ã */
-/******************************************/
-
-#define INC_MPI_INTERRUPT_ENABLE 0x0001
-#define INC_I2C_INTERRUPT_ENABLE 0x0002
-#define INC_EWS_INTERRUPT_ENABLE 0x0040
-#define INC_REC_INTERRUPT_ENABLE 0x0080
-#define INC_TII_INTERRUPT_ENABLE 0x0100
-#define INC_FIC_INTERRUPT_ENABLE 0x0200
-#define INC_CIFS_INTERRUPT_ENABLE 0x0400
-#define INC_FS_INTERRUPT_ENABLE 0x0800
-#define INC_EXT_INTERRUPT_ENABLE 0x1000
-#define INC_MS_INTERRUPT_ENABLE 0x2000
-#define INC_DPLLU_INTERRUPT_ENABLE 0x4000
-#define INC_SSI_INTERRUPT_ENABLE 0x8000
-#define INC_DISABLE_INTERRUPT 0x0000
-
-#define INC_INTERRUPT_POLARITY_HIGH 0x0000
-#define INC_INTERRUPT_POLARITY_LOW 0x8000
-#define INC_INTERRUPT_PULSE 0x0000
-#define INC_INTERRUPT_LEVEL 0x4000
-#define INC_INTERRUPT_AUTOCLEAR_DISABLE 0x0000
-#define INC_INTERRUPT_AUTOCLEAR_ENABLE 0x2000
-#define INC_EXT_INTERRUPT_POLARITY_HIGH 0x0000
-#define INC_EXT_INTERRUPT_POLARITY_LOW 0x1000
-#define INC_INTERRUPT_PULSE_COUNT 0x00FF
-#define INC_INTERRUPT_PULSE_COUNT_MASK 0x03FF
-
-#define T3900_SCAN_IF_DELAY 1500
-#define T3900_SCAN_RF_DELAY 1500
-#define T3900_PLAY_IF_DELAY 1000
-#define T3900_PLAY_RF_DELAY 1100
-
-#define WORD_SWAP(X) (((X)>>8&0xff)|(((X)<<8)&0xff00))
-#define DWORD_SWAP(X) (((X)>>24&0xff)|(((X)>>8)&0xff00)|\
-(((X)<<8)&0xff0000)|(((X)<<24)&0xff000000))
-
-#define INC_REGISTER_CTRL(X) ((X)*0x1000)
-#define STREAM_PARALLEL_ADDRESS (0x40000000)
-#define STREAM_PARALLEL_ADDRESS_CS (0x50000000)
-
-#define FIC_REF_TIME_OUT 2500
-#define INC_SUCCESS 1
-#define INC_ERROR 0
-#define INC_NULL 0
-#define INC_RETRY 0xff
-
-#define INC_CER_PERIOD_TIME 1000
-#define INC_CER_PERIOD (3000 / INC_CER_PERIOD_TIME)
-#define INC_BIT_PERIOD (2000 / INC_CER_PERIOD_TIME)
-
-#define INC_TDMB_LENGTH_MASK 0xFFF
-#define TDMB_I2C_ID80 0x80
-#define TDMB_I2C_ID82 0x82
-
-#define MPI_CS_SIZE (188*8)
-#define INC_MPI_MAX_BUFF (1024*8)
-#define INC_INTERRUPT_SIZE (188*20)
-#define MAX_SUBCH_SIZE 32
-#define MAX_SUBCHANNEL 64
-#define MAX_LABEL_CHAR 16
-#define SPI_INTERRUPT_SIZE (188*8)
-
-#define MAX_KOREABAND_FULL_CHANNEL 21
-#define MAX_KOREABAND_NORMAL_CHANNEL 6
-#define MAX_BAND_III_CHANNEL 41
-#define MAX_L_BAND_CHANNEL 23
-#define MAX_CHINA_CHANNEL 31
-#define MAX_ROAMING_CHANNEL 12
-
-#define RF500_REG_CTRL 200
-
-#define APB_INT_BASE 0x0100
-#define APB_GEN_BASE 0x0200
-#define APB_PHY_BASE 0x0500
-#define APB_DEINT_BASE 0x0600
-#define APB_VTB_BASE 0x0700
-#define APB_I2S_BASE 0x0800
-#define APB_RDI_BASE 0x0900
-#define APB_MPI_BASE 0x0A00
-#define APB_RS_BASE 0x0B00
-#define APB_SPI_BASE 0x0C00
-#define APB_I2C_BASE 0x0D00
-#define APB_RF_BASE 0x0E00
-
-#define APB_FIC_BASE 0x1000
-#define APB_STREAM_BASE 0x2000
-
-#define TS_ERR_THRESHOLD 0x014C
-
-#define END_MARKER 0xff
-#define FIB_SIZE 32
-#define FIB_WORD_SIZE (FIB_SIZE/2)
-#define MAX_FIB_NUM 12
-#define MAX_FIC_SIZE (MAX_FIB_NUM*FIB_SIZE)
-#define MAX_FRAME_DURATION 96
-#define MAX_USER_APP_DATA 32
-
-enum ST_TRANSMISSION {
- TRANSMISSION_MODE1 = 1,
- TRANSMISSION_MODE2,
- TRANSMISSION_MODE3,
- TRANSMISSION_MODE4,
- TRANSMISSION_AUTO,
- TRANSMISSION_AUTOFAST,
-} ;
-
-enum INC_DPD_MODE {
- INC_DPD_OFF = 0,
- INC_DPD_ON,
-} ;
-
-enum PLL_MODE {
- INPUT_CLOCK_24576KHZ = 0,
- INPUT_CLOCK_12000KHZ,
- INPUT_CLOCK_19200KHZ,
- INPUT_CLOCK_27000KHZ,
- INPUT_CLOCK_27120KHZ,
-} ;
-
-
-enum ST_EXTENSION_TYPE {
- EXTENSION_0 = 0,
- EXTENSION_1,
- EXTENSION_2,
- EXTENSION_3,
- EXTENSION_4,
- EXTENSION_5,
- EXTENSION_6,
- EXTENSION_7,
- EXTENSION_8,
- EXTENSION_9,
- EXTENSION_10,
- EXTENSION_11,
- EXTENSION_12,
- EXTENSION_13,
- EXTENSION_14,
- EXTENSION_15,
- EXTENSION_16,
- EXTENSION_17,
- EXTENSION_18,
- EXTENSION_19,
- EXTENSION_20,
- EXTENSION_21,
- EXTENSION_22,
- EXTENSION_23,
- EXTENSION_24,
-} ;
-
-enum ST_SPI_CONTROL {
- SPI_REGREAD_CMD = 0,
- SPI_REGWRITE_CMD,
- SPI_MEMREAD_CMD,
- SPI_MEMWRITE_CMD,
-} ;
-
-enum ST_TMID {
- TMID_0 = 0,
- TMID_1,
- TMID_2,
- TMID_3,
-} ;
-
-enum ST_PROTECTION_LEVEL {
- PROTECTION_LEVEL0 = 0,
- PROTECTION_LEVEL1,
- PROTECTION_LEVEL2,
- PROTECTION_LEVEL3,
-} ;
-
-enum ST_INDICATE {
- OPTION_INDICATE0 = 0,
- OPTION_INDICATE1,
-} ;
-
-
-enum ST_FICHEADER_TYPE {
- FIG_MCI_SI = 0,
- FIG_LABEL,
- FIG_RESERVED_0,
- FIG_RESERVED_1,
- FIG_RESERVED_2,
- FIG_FICDATA_CHANNEL,
- FIG_CONDITION_ACCESS,
- FIG_IN_HOUSE,
-} ;
-
-enum ST_SIMPLE_FIC {
- SIMPLE_FIC_ENABLE = 1,
- SIMPLE_FIC_DISABLE,
-} ;
-
-enum INC_CTRL {
- INC_DMB = 1,
- INC_DAB,
- INC_DATA,
- INC_MULTI,
- INC_SINGLE,
-
- FREQ_FREE = 0,
- FREQ_LOCK,
- FIC_OK = 1,
-} ;
-
-enum INC_ERROR_INFO {
- ERROR_NON = 0x0000,
- ERROR_PLL = 0xE000,
- ERROR_STOP = 0xF000,
- ERROR_READY = 0xFF00,
- ERROR_SYNC_NO_SIGNAL = 0xFC01,
- ERROR_SYNC_LOW_SIGNAL = 0xFD01,
- ERROR_SYNC_NULL = 0xFE01,
- ERROR_SYNC_TIMEOUT = 0xFF01,
- ERROR_FICDECODER = 0xFF02,
- ERROR_START_MODEM_CLEAR = 0xFF05,
- ERROR_USER_STOP = 0xFA00,
- ERROR_MULTI_CHANNEL_COUNT_OVER = 0x8000,
- ERROR_MULTI_CHANNEL_COUNT_NON = 0x8001,
- ERROR_MULTI_CHANNEL_NULL = 0x8002,
- ERROR_MULTI_CHANNEL_FREQ = 0x8003,
- ERROR_MULTI_CHANNEL_DMB_MAX = 0x8004,
-} ;
-
-
-#define INC_ENSEMBLE_LABLE_MAX 17
-#define INC_SERVICE_MAX 32
-#define INC_USER_APPLICATION_TYPE_LENGTH 32
-
-struct ST_USER_APPLICATION_TYPE {
- unsigned char ucDataLength;
- unsigned short unUserAppType;
- unsigned char aucData[MAX_USER_APP_DATA];
-} ;
-
-struct ST_USERAPP_GROUP_INFO {
- unsigned char ucUAppSCId;
- unsigned char ucUAppCount;
- struct ST_USER_APPLICATION_TYPE
- astUserApp[INC_USER_APPLICATION_TYPE_LENGTH];
-} ;
-
-struct INC_CHANNEL_INFO {
- unsigned int ulRFFreq;
- unsigned short uiEnsembleID;
- unsigned short uiBitRate;
- unsigned char uiTmID;
- char aucLabel[MAX_LABEL_CHAR+1];
- char aucEnsembleLabel[MAX_LABEL_CHAR+1];
-
- unsigned char ucSubChID;
- unsigned char ucServiceType;
- unsigned short uiStarAddr;
- unsigned char ucSlFlag;
- unsigned char ucTableIndex;
- unsigned char ucOption;
- unsigned char ucProtectionLevel;
- unsigned short uiDifferentRate;
- unsigned short uiSchSize;
-
- unsigned int ulServiceID;
- unsigned short uiPacketAddr;
-
-#ifdef USER_APPLICATION_TYPE
- ST_USERAPP_GROUP_INFO stUsrApp;
-#endif
-} ;
-
-struct ST_SUBCH_INFO {
- short nSetCnt;
- struct INC_CHANNEL_INFO astSubChInfo[MAX_SUBCH_SIZE];
-} ;
-
-enum UPLOAD_MODE_INFO {
- STREAM_UPLOAD_MASTER_SERIAL = 0,
- STREAM_UPLOAD_MASTER_PARALLEL,
- STREAM_UPLOAD_SLAVE_SERIAL,
- STREAM_UPLOAD_SLAVE_PARALLEL,
- STREAM_UPLOAD_SPI,
- STREAM_UPLOAD_TS,
-
-} ;
-
-enum CLOCK_SPEED {
- INC_OUTPUT_CLOCK_4096 = 1,
- INC_OUTPUT_CLOCK_2048,
- INC_OUTPUT_CLOCK_1024,
-
-} ;
-
-enum ENSEMBLE_BAND {
- KOREA_BAND_ENABLE = 0,
- BANDIII_ENABLE,
- LBAND_ENABLE,
- CHINA_ENABLE,
- ROAMING_ENABLE,
- EXTERNAL_ENABLE,
-
-} ;
-
-enum FREQ_LOCKINFO {
- INC_FREQUENCY_UNLOCK = 0,
- INC_FREQUENCY_LOCK,
-} ;
-
-enum CTRL_MODE {
- INC_I2C_CTRL = 0,
- INC_SPI_CTRL,
- INC_EBI_CTRL,
-} ;
-
-enum INC_ACTIVE_MODE {
- INC_ACTIVE_LOW = 0,
- INC_ACTIVE_HIGH,
-} ;
-
-struct INC_TDMB_MODE {
- enum ENSEMBLE_BAND m_ucRfBand;
- enum UPLOAD_MODE_INFO m_ucUploadMode;
- enum CLOCK_SPEED m_ucClockSpeed;
- enum INC_ACTIVE_MODE m_ucMPI_CS_Active;
- enum INC_ACTIVE_MODE m_ucMPI_CLK_Active;
- enum CTRL_MODE m_ucCommandMode;
- enum ST_TRANSMISSION m_ucTransMode;
- enum PLL_MODE m_ucPLL_Mode;
- enum INC_DPD_MODE m_ucDPD_Mode;
- unsigned short m_unIntCtrl;
-} ;
-
-#define BER_BUFFER_MAX 3
-#define BER_REF_VALUE 35
-
-struct ST_BBPINFO {
- unsigned int ulFreq;
- enum INC_ERROR_INFO nBbpStatus;
- unsigned char ucStop;
- enum ST_TRANSMISSION ucTransMode;
-
- unsigned char ucAntLevel;
- unsigned char ucSnr;
- unsigned char ucVber;
- unsigned short uiCER;
- unsigned short wRssi;
- unsigned int dPreBER;
- unsigned int uiPostBER;
-
- unsigned int ulReConfigTime;
-
- unsigned short uiInCAntTick;
- unsigned short uiInCERAvg;
- unsigned short uiIncPostBER;
- unsigned short auiANTBuff[BER_BUFFER_MAX];
-
- unsigned char ucProtectionLevel;
- unsigned short uiInCBERTick;
- unsigned short uiBerSum;
- unsigned short auiBERBuff[BER_BUFFER_MAX];
-
- unsigned char ucCERCnt;
-} ;
-
-struct ST_FIB_INFO {
- unsigned short uiIsCRC;
- unsigned char ucDataPos;
- unsigned char aucBuff[FIB_SIZE];
-} ;
-
-struct ST_FIC {
- unsigned char ucBlockNum;
- struct ST_FIB_INFO stBlock;
-} ;
-
-union ST_FIG_HEAD {
- unsigned char ucInfo;
- struct {
- unsigned char bitLength:5;
- unsigned char bitType:3;
- } ITEM;
-} ;
-
-union ST_TYPE_0 {
- unsigned char ucInfo;
- struct {
- unsigned char bitExtension:5;
- unsigned char bitPD:1;
- unsigned char bitOE:1;
- unsigned char bitCN:1;
- } ITEM;
-} ;
-
-union ST_TYPE_1 {
- unsigned char ucInfo;
- struct {
- unsigned char bitExtension:3;
- unsigned char bitOE:1;
- unsigned char bitCharset:4;
- } ITEM;
-} ;
-
-union ST_USER_APPSERID_16 {
- unsigned short uiInfo;
- struct {
- unsigned short bitServiceID:16;
- } ITEM;
-
-} ;
-
-union ST_USER_APPSERID_32 {
- unsigned int ulInfo;
- struct {
- unsigned int bitServiceID:32;
- } ITEM;
-
-} ;
-
-union ST_USER_APP_IDnNUM {
- unsigned char ucInfo;
- struct {
- unsigned char bitNomUserApp:4;
- unsigned char bitSCIdS:4;
- } ITEM;
-} ;
-
-union ST_USER_APPTYPE {
- unsigned short uiInfo;
- struct {
- unsigned short bitUserDataLength:5;
- unsigned short bitUserAppType:11;
- } ITEM;
-} ;
-
-
-union ST_TYPE0of0_INFO {
- unsigned int ulBuff;
- struct {
- unsigned int bitLow_CIFCnt:8;
- unsigned int bitHigh_CIFCnt:5;
- unsigned int bitAlFlag:1;
- unsigned int bitChangFlag:2;
- unsigned int bitEld:16;
- } ITEM;
-} ;
-
-union ST_TYPE0of1Short_INFO {
- unsigned int nBuff;
- struct {
- unsigned int bitReserved:8;
- unsigned int bitTableIndex:6;
- unsigned int bitTableSw:1;
- unsigned int bitShortLong:1;
- unsigned int bitStartAddr:10;
- unsigned int bitSubChId:6;
- } ITEM;
-} ;
-
-union ST_TYPE0of1Long_INFO {
- unsigned int nBuff;
- struct {
- unsigned int bitSubChanSize:10;
- unsigned int bitProtecLevel:2;
- unsigned int bitOption:3;
- unsigned int bitShortLong:1;
- unsigned int bitStartAddr:10;
- unsigned int bitSubChId:6;
- } ITEM;
-} ;
-
-union ST_TYPE0of3Id_INFO {
- unsigned int ulData;
- struct {
- unsigned int bitReserved:8;
- unsigned int bitPacketAddr:10;
- unsigned int bitSubChId:6;
- unsigned int bitDScType:6;
- unsigned int bitRfu:1;
- unsigned int bitFlag:1;
- } ITEM;
-} ;
-
-union ST_TYPE0of3_INFO {
- unsigned short nData;
- struct {
- unsigned short bitCAOrgFlag:1;
- unsigned short bitReserved:3;
- unsigned short bitScid:12;
- } ITEM;
-} ;
-
-union ST_SERVICE_COMPONENT {
- unsigned char ucData;
- struct {
- unsigned char bitNumComponent:4;
- unsigned char bitCAId:3;
- unsigned char bitLocalFlag:1;
- } ITEM;
-} ;
-
-union ST_TMId_MSCnFIDC {
- unsigned short uiData;
- struct {
- unsigned short bitCAflag:1;
- unsigned short bitPS:1;
- unsigned short bitSubChld:6;
- unsigned short bitAscDscTy:6;
- unsigned short bitTMId:2;
- } ITEM;
-} ;
-
-union ST_MSC_PACKET_INFO {
- unsigned short usData;
- struct {
- unsigned short bitCAflag:1;
- unsigned short bitPS:1;
- unsigned short bitSCId:12;
- unsigned short bitTMId:2;
- } ITEM;
-} ;
-
-union ST_MSC_BIT {
- unsigned char ucData;
- struct {
- unsigned char bitScIds:4;
- unsigned char bitRfa:3;
- unsigned char bitExtFlag:1;
- } ITEM;
-} ;
-
-union ST_MSC_LONG {
- unsigned short usData;
- struct {
- unsigned short bitScId:12;
- unsigned short bitDummy:3;
- unsigned short bitLsFlag:1;
- } ITEM;
-} ;
-
-union ST_MSC_SHORT {
- unsigned char ucData;
- struct {
- unsigned char bitSUBnFIDCId:6;
- unsigned char bitMscFicFlag:1;
- unsigned char bitLsFlag:1;
- } ITEM;
-} ;
-
-union ST_EXTENSION_TYPE14 {
- unsigned char ucData;
- struct {
- unsigned char bitSCidS:4;
- unsigned char bitRfa:3;
- unsigned char bitPD:1;
- } ITEM;
-} ;
-
-union ST_EXTENSION_TYPE12 {
- unsigned char ucData;
- struct {
- unsigned char bitReserved1:6;
- unsigned char bitCF_flag:1;
- unsigned char bitCountry:1;
- } ITEM;
-} ;
-
-union ST_UTC_SHORT_INFO {
- unsigned int ulBuff;
- struct {
- unsigned int bitMinutes:6;
- unsigned int bitHours:5;
- unsigned int bitUTC_Flag:1;
- unsigned int bitConf_Ind:1;
- unsigned int bitLSI:1;
- unsigned int bitMJD:17;
- unsigned int bitRfu:1;
- } ITEM;
-} ;
-
-union ST_UTC_LONG_INFO {
- unsigned short unBuff;
- struct {
- unsigned short bitMilliseconds:10;
- unsigned short bitSeconds:6;
- } ITEM;
-} ;
-
-struct ST_DATE_T {
- unsigned short usYear;
- unsigned char ucMonth;
- unsigned char ucDay;
- unsigned char ucHour;
- unsigned char ucMinutes;
- unsigned char ucSeconds;
- unsigned short uiMilliseconds;
-
-} ;
-
-
-struct ST_FICDB_SERVICE_COMPONENT {
- unsigned int ulSid;
- unsigned char ucSCidS;
- unsigned char ucSubChid;
- unsigned char ucTmID;
- unsigned char ucCAFlag;
- unsigned char ucPS;
- unsigned char ucDSCType;
- unsigned char aucComponentLabels[INC_ENSEMBLE_LABLE_MAX];
- unsigned char ucIsComponentLabel;
- unsigned char aucLabels[INC_ENSEMBLE_LABLE_MAX];
- unsigned short unEnsembleFlag;
- unsigned char ucIsLable;
- unsigned short unPacketAddr;
- unsigned char ucCAOrgFlag;
- unsigned char ucDGFlag;
- unsigned short unCAOrg;
- unsigned short unStartAddr;
- unsigned char ucShortLong;
- unsigned char ucTableSW;
- unsigned char ucTableIndex;
- unsigned char ucOption;
- unsigned char ucProtectionLevel;
- unsigned short uiSubChSize;
- unsigned short uiBitRate;
- unsigned short uiDifferentRate;
- unsigned char IsOrganiza;
- unsigned char IsPacketMode;
- unsigned char ucIsAppData;
- struct ST_USERAPP_GROUP_INFO stUApp;
-
-} ;
-
-struct ST_STREAM_INFO {
- short nPrimaryCnt;
- short nSecondaryCnt;
- struct ST_FICDB_SERVICE_COMPONENT astPrimary[INC_SERVICE_MAX];
- struct ST_FICDB_SERVICE_COMPONENT astSecondary[INC_SERVICE_MAX];
-
-} ;
-
-
-struct ST_FICDB_LIST {
- short nLabelCnt;
- short nEmsembleLabelFlag;
- short nSubChannelCnt;
- short nPacketCnt;
- short nPacketModeCnt;
- unsigned char ucIsSimpleFIC;
- unsigned char ucIsSimpleCnt;
- enum ST_SIMPLE_FIC ucIsSetSimple;
- unsigned short unEnsembleID;
- unsigned char ucChangeFlag;
- unsigned short unCIFCount;
- unsigned char ucOccurrence;
-
- unsigned char aucEnsembleName[INC_ENSEMBLE_LABLE_MAX];
- unsigned short unEnsembleFlag;
- unsigned char ucIsEnsembleName;
-
- struct ST_STREAM_INFO stDMB;
- struct ST_STREAM_INFO stDAB;
- struct ST_STREAM_INFO stFIDC;
- struct ST_STREAM_INFO stDATA;
-
- struct ST_DATE_T stDate;
- short nUserAppCnt;
-} ;
-
-#ifdef INC_FIFO_SOURCE_ENABLE
-#define INC_CIF_MAX_SIZE (188*8)
-#define INC_FIFO_DEPTH (1024*5)
-#define MAX_CHANNEL_FIFO 5
-#define MAX_HEADER_SIZE 16
-#define HEADER_SERACH_SIZE (INC_CIF_MAX_SIZE + MAX_HEADER_SIZE)
-#define HEADER_ID_0x33 0x33
-#define HEADER_ID_0x00 0x00
-#define HEADER_SIZE_BITMASK 0x3FF
-#define INC_HEADER_CHECK_BUFF (INC_CIF_MAX_SIZE*4)
-
-enum MULTI_CHANNEL_INFO {
- MAIN_INPUT_DATA = 0,
- FIC_STREAM_DATA,
- CHANNEL1_STREAM_DATA,
- CHANNEL2_STREAM_DATA,
- CHANNEL3_STREAM_DATA,
-} ;
-
-enum ST_HEADER_INFO {
- INC_HEADER_SIZE_ERROR = 0,
- INC_HEADER_NOT_SEARACH,
- INC_HEADER_GOOD,
-} ;
-
-#define INC_SUB_CHANNEL_ID_MASK 0xFFFF
-struct ST_FIFO {
- unsigned int ulDepth;
- unsigned int ulFront;
- unsigned int ulRear;
- unsigned short unSubChID;
- unsigned char acBuff[INC_FIFO_DEPTH+1];
-} ;
-
-void INC_MULTI_SORT_INIT(void);
-unsigned char INC_QFIFO_INIT(struct ST_FIFO *pFF, unsigned int ulDepth);
-unsigned char INC_QFIFO_ADD(struct ST_FIFO *pFF,
- unsigned char *pData, unsigned int ulSize);
-unsigned char INC_QFIFO_AT(struct ST_FIFO *pFF,
- unsigned char *pData, unsigned int ulSize);
-unsigned char INC_QFIFO_BRING(struct ST_FIFO *pFF,
- unsigned char *pData, unsigned int ulSize);
-unsigned char INC_GET_ID_BRINGUP(unsigned short unID,
- unsigned char *pData, unsigned int ulSize);
-unsigned char INC_MULTI_FIFO_PROCESS(
- unsigned char *pData, unsigned int ulSize);
-
-unsigned int INC_QFIFO_FREE_SIZE(struct ST_FIFO *pFF);
-unsigned int INC_QFIFO_GET_SIZE(struct ST_FIFO *pFF);
-unsigned int INC_GET_IDS_SIZE(unsigned short unID);
-
-struct ST_FIFO *INC_GET_CHANNEL_FIFO(enum MULTI_CHANNEL_INFO ucIndex);
-enum ST_HEADER_INFO INC_HEADER_CHECK(struct ST_FIFO *pMainFifo);
-#endif
-
-
-enum INC_SORT_OPTION {
- INC_SUB_CHANNEL_ID = 0,
- INC_START_ADDRESS,
- INC_BIRRATE,
- INC_FREQUENCY,
-} ;
-
-void INC_MSG_PRINTF(char nFlag, char *pFormat, ...);
-void INC_SCAN_SETTING(unsigned char ucI2CID);
-void INC_AIRPLAY_SETTING(unsigned char ucI2CID);
-void INC_DELAY(unsigned short uiDelay);
-void INC_MPICLOCK_SET(unsigned char ucI2CID);
-void INC_UPLOAD_MODE(unsigned char ucI2CID);
-void INC_INTERRUPT_CLEAR(unsigned char ucI2CID, unsigned short uiClrInt);
-void INC_INTERRUPT_CTRL(unsigned char ucI2CID);
-void INC_INTERRUPT_SET(unsigned char ucI2CID, unsigned short uiSetInt);
-void INC_SET_CHANNEL(unsigned char ucI2CID, struct ST_SUBCH_INFO *pChInfo);
-void INC_BUBBLE_SORT(struct ST_SUBCH_INFO *pMainInfo, enum INC_SORT_OPTION Opt);
-void INC_SWAP(struct ST_SUBCH_INFO *pMainInfo,
- unsigned short nNo1, unsigned short nNo2);
-void INTERFACE_USER_STOP(unsigned char ucI2CID);
-void INTERFACE_USER_STOP_CLEAR(unsigned char ucI2CID);
-void INTERFACE_INT_ENABLE(unsigned char ucI2CID, unsigned short unSet);
-void INTERFACE_INT_CLEAR(unsigned char ucI2CID, unsigned short unClr);
-void INC_INITDB(unsigned char ucI2CID);
-void INC_EXTENSION_000(struct ST_FIB_INFO *pFibInfo);
-void INC_EXTENSION_001(struct ST_FIB_INFO *pFibInfo);
-void INC_EXTENSION_002(struct ST_FIB_INFO *pFibInfo);
-void INC_EXTENSION_003(struct ST_FIB_INFO *pFibInfo);
-void INC_EXTENSION_008(struct ST_FIB_INFO *pFibInfo);
-void INC_INIT_MPI(unsigned char ucI2CID);
-#ifdef USER_APPLICATION_TYPE
-void INC_EXTENSION_013(struct ST_FIB_INFO *pFibInfo);
-#endif
-void INC_EXTENSION_110(struct ST_FIB_INFO *pFibInfo);
-void INC_EXTENSION_111(struct ST_FIB_INFO *pFibInfo);
-void INC_EXTENSION_112(struct ST_FIB_INFO *pFibInfo);
-void INC_EXTENSION_113(struct ST_FIB_INFO *pFibInfo);
-void INC_EXTENSION_114(struct ST_FIB_INFO *pFibInfo);
-void INC_EXTENSION_115(struct ST_FIB_INFO *pFibInfo);
-void INC_SET_FICTYPE_1(struct ST_FIB_INFO *pFibInfo);
-
-void INC_SET_FICTYPE_5(struct ST_FIB_INFO *pFibInfo);
-void INC_SET_UPDATEFIC(struct ST_FIB_INFO *pstDestData,
- unsigned char *pSourData);
-void INTERFACE_UPLOAD_MODE(unsigned char ucI2CID,
- enum UPLOAD_MODE_INFO ucUploadMode);
-void INC_UPDATE_LIST(struct INC_CHANNEL_INFO *pUpDateCh,
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent);
-
-unsigned char INC_GET_FIND_TYPE(union ST_FIG_HEAD *pInfo);
-unsigned char INTERFACE_PLL_MODE(unsigned char ucI2CID,
- enum PLL_MODE ucPllMode);
-unsigned char INTERFACE_DBINIT(void);
-unsigned char INTERFACE_INIT(unsigned char ucI2CID);
-unsigned char INTERFACE_RECONFIG(unsigned char ucI2CID);
-unsigned char INTERFACE_STATUS_CHECK(unsigned char ucI2CID);
-unsigned char INTERFACE_START(unsigned char ucI2CID,
- struct ST_SUBCH_INFO *pChInfo);
-unsigned char INTERFACE_START_TEST(
- unsigned char ucI2CID, struct ST_SUBCH_INFO *pChInfo);
-unsigned char INTERFACE_INT_CHECK(unsigned char ucI2CID);
-unsigned char INC_BUBBLE_SORT_by_TYPE(struct ST_SUBCH_INFO *pMainInfo);
-unsigned char INTERFACE_SCAN(unsigned char ucI2CID, unsigned int ulFreq);
-unsigned char INTERFACE_GET_SNR(unsigned char ucI2CID);
-unsigned char INTERFACE_ISR(unsigned char ucI2CID, unsigned char *pBuff);
-unsigned char INC_CHECK_SERVICE_DB16(unsigned short *ptr, unsigned short wVal,
- unsigned short wNum);
-unsigned char INC_CHECK_SERVICE_DB8(unsigned char *ptr, unsigned char cVal,
- unsigned char cNum);
-
-unsigned char INC_GET_BYTEDATA(struct ST_FIB_INFO *pFibInfo);
-unsigned char INC_GETAT_BYTEDATA(struct ST_FIB_INFO *pFibInfo);
-unsigned char INC_GET_HEADER(struct ST_FIB_INFO *pInfo);
-
-unsigned char INC_GET_TYPE(struct ST_FIB_INFO *pInfo);
-unsigned char INC_GETAT_HEADER(struct ST_FIB_INFO *pInfo);
-unsigned char INC_GETAT_TYPE(struct ST_FIB_INFO *pInfo);
-unsigned char INC_INIT(unsigned char ucI2CID);
-unsigned char INC_READY(unsigned char ucI2CID, unsigned int ulFreq);
-unsigned char INC_SYNCDETECTOR(unsigned char ucI2CID, unsigned int ulFreq,
- unsigned char ucScanMode);
-unsigned char INC_FICDECODER(unsigned char ucI2CID,
- enum ST_SIMPLE_FIC bSimpleFIC);
-unsigned char INC_FIC_UPDATE(unsigned char ucI2CID,
- struct ST_SUBCH_INFO *pChInfo,
- enum ST_SIMPLE_FIC bSimpleFIC);
-unsigned char INC_START(unsigned char ucI2CID, struct ST_SUBCH_INFO *pChInfo,
- unsigned short IsEnsembleSame);
-unsigned char INC_STOP(unsigned char ucI2CID);
-unsigned char INC_CHANNEL_START(unsigned char ucI2CID,
- struct ST_SUBCH_INFO *pChInfo);
-unsigned char INC_CHANNEL_START_TEST(
- unsigned char ucI2CID, struct ST_SUBCH_INFO *pChInfo);
-unsigned char INC_ENSEMBLE_SCAN(unsigned char ucI2CID, unsigned int ulFreq);
-unsigned char INC_FIC_RECONFIGURATION_HW_CHECK(unsigned char ucI2CID);
-unsigned char INC_STATUS_CHECK(unsigned char ucI2CID);
-unsigned char INC_GET_ANT_LEVEL(unsigned char ucI2CID);
-unsigned char INC_GET_SNR(unsigned char ucI2CID);
-unsigned char INC_GET_VBER(unsigned char ucI2CID);
-unsigned char INC_GET_NULLBLOCK(union ST_FIG_HEAD *pInfo);
-unsigned char INC_GET_FINDLENGTH(union ST_FIG_HEAD *pInfo);
-unsigned char INC_SET_TRANSMIT_MODE(unsigned char ucMode);
-unsigned char INC_GET_FINDTYPE(union ST_FIG_HEAD *pInfo);
-unsigned char INC_GET_NULL_BLOCK(union ST_FIG_HEAD *pInfo);
-unsigned char INC_GET_FIND_LENGTH(union ST_FIG_HEAD *pInfo);
-unsigned char INC_FICPARSING(unsigned char ucI2CID, unsigned char *pucFicBuff,
- int uFicLength, enum ST_SIMPLE_FIC bSimpleFIC);
-unsigned char INC_CMD_WRITE(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned short uiData);
-unsigned char INC_I2C_WRITE(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned short uiData);
-unsigned char INC_EBI_WRITE(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned short uiData);
-unsigned char INC_RE_SYNC(unsigned char ucI2CID);
-unsigned char INC_PLL_SET(unsigned char ucI2CID);
-unsigned char SAVE_CHANNEL_INFO(char *pStr);
-unsigned char LOAD_CHANNEL_INFO(char *pStr);
-unsigned char INC_I2C_READ_BURST(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned char *pData, unsigned short nSize);
-unsigned char INC_SPI_REG_WRITE(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned short uiData);
-unsigned char INC_CMD_READ_BURST(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned char *pData, unsigned short nSize);
-unsigned char INC_SPI_READ_BURST(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned char *pBuff, unsigned short wSize);
-unsigned char INC_CHIP_STATUS(unsigned char ucI2CID);
-unsigned char INC_RF500_START(unsigned char ucI2CID, unsigned int ulRFChannel,
- enum ENSEMBLE_BAND ucBand, enum PLL_MODE ucPLL);
-unsigned char INC_RF500_I2C_WRITE(unsigned char ucI2CID, unsigned char *pucData,
- unsigned int uLength);
-unsigned char INC_GET_FIB_CNT(enum ST_TRANSMISSION ucMode);
-unsigned char INC_EBI_READ_BURST(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned char *pData, unsigned short nSize);
-unsigned char *INTERFACE_GETENSEMBLE_LABEL(unsigned char ucI2CID);
-struct INC_TDMB_MODE *INC_GET_TDMBMODE(unsigned char ucI2CID);
-void INC_SET_TDMBMODE(unsigned char ucI2CID, struct INC_TDMB_MODE *stMode);
-
-short INC_CHECK_SERVICE_CNT16(unsigned short *ptr, unsigned short wVal,
- unsigned char cNum, unsigned short wMask);
-short INC_CHECK_SERVICE_CNT8(unsigned char *ptr, unsigned char cVal,
- unsigned char cNum, unsigned char cMask);
-short INC_CHECK_SERVICE_CNT32(unsigned int *ptr, unsigned int wVal,
- unsigned char cNum);
-short INC_GET_RSSI(unsigned char ucI2CID);
-unsigned short INC_EBI_READ(unsigned char ucI2CID, unsigned short uiAddr);
-unsigned short INC_FIND_KOR_FREQ(unsigned int ulFreq);
-unsigned short INC_CRC_CHECK(unsigned char *pBuf, unsigned char ucSize);
-unsigned short INC_SET_FICTYPE_0(struct ST_FIB_INFO *pFibInfo);
-unsigned short INC_GET_WORDDATA(struct ST_FIB_INFO *pFibInfo);
-unsigned short INC_GETAT_WORDDATA(struct ST_FIB_INFO *pFibInfo);
-unsigned short INC_FIND_SUBCH_SIZE(unsigned char ucTableIndex);
-unsigned short INTERFACE_GET_CER(unsigned char ucI2CID);
-unsigned short INTERFACE_GETDMB_CNT(void);
-unsigned short INTERFACE_GETDAB_CNT(void);
-unsigned short INTERFACE_GETDATA_CNT(void);
-unsigned short INC_CMD_READ(unsigned char ucI2CID, unsigned short uiAddr);
-unsigned short INC_I2C_READ(unsigned char ucI2CID, unsigned short ulAddr);
-unsigned short INC_SPI_REG_READ(unsigned char ucI2CID, unsigned short uiAddr);
-unsigned short INC_GET_FRAME_DURATION(enum ST_TRANSMISSION cTrnsMode);
-unsigned short INC_GET_CER(unsigned char ucI2CID);
-unsigned short INC_RESYNC_CER(unsigned char ucI2CID);
-
-unsigned int INC_GET_KOREABAND_FULL_TABLE(unsigned short uiIndex);
-unsigned int INC_GET_KOREABAND_NORMAL_TABLE(unsigned short uiIndex);
-unsigned int INC_GET_LONGDATA(struct ST_FIB_INFO *pFibInfo);
-unsigned int INC_GETAT_LONGDATA(struct ST_FIB_INFO *pFibInfo);
-unsigned int YMDtoMJD(struct ST_DATE_T stDate);
-void MJDtoYMD(unsigned short wMJD, struct ST_DATE_T *pstDate);
-
-unsigned int INTERFACE_GET_POSTBER(unsigned char ucI2CID);
-unsigned int INTERFACE_GET_PREBER(unsigned char ucI2CID);
-unsigned int INC_GET_PREBER(unsigned char ucI2CID);
-unsigned int INC_GET_POSTBER(unsigned char ucI2CID);
-
-struct ST_BBPINFO *INC_GET_STRINFO(unsigned char ucI2CID);
-enum INC_ERROR_INFO INTERFACE_ERROR_STATUS(unsigned char ucI2CID);
-struct INC_CHANNEL_INFO *INTERFACE_GETDB_DMB(short uiPos);
-struct INC_CHANNEL_INFO *INTERFACE_GETDB_DAB(short uiPos);
-struct INC_CHANNEL_INFO *INTERFACE_GETDB_DATA(short uiPos);
-
-unsigned char INC_ADD_ENSEMBLE_NAME(
- unsigned short unEnID, unsigned char *pcLabel);
-struct ST_FICDB_LIST *INC_GET_FICDB_LIST(void);
-void INC_FIND_BASIC_SERVICE(unsigned int ulServiceId, unsigned short unData);
-void INC_ADD_BASIC_SERVICE(
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent,
- unsigned int ulServiceId, unsigned short unData);
-
-void INC_ADD_ORGANIZAION_SUBCHANNEL_ID(
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent,
- unsigned int ulTypeInfo);
-void INC_SORT_ORGANIZAION_SUBCHANNEL_ID(
- struct ST_STREAM_INFO *pStreamInfo,
- unsigned char ucSubChID, unsigned int ulTypeInfo);
-unsigned char INC_SORT_SIMPLE_ORGANIZAION_SUBCHANNEL_ID(
- struct ST_STREAM_INFO *pStreamInfo, unsigned char ucSubChID,
- unsigned short unStartAddr, unsigned int ulTypeInfo);
-void INC_FIND_ORGANIZAION_SUBCHANNEL_ID(unsigned char ucSubChID,
- unsigned int ulTypeInfo);
-
-void INC_FIND_SIMPLE_ORGANIZAION_SUBCHANNEL_ID(
- unsigned char ucSubChID,
- unsigned short unStartAddr,
- unsigned int ulTypeInfo);
-
-unsigned short INC_GET_BITRATE(
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent);
-void INC_GET_LONG_FORM(
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent,
- union ST_TYPE0of1Long_INFO *pLong);
-void INC_GET_SHORT_FORM(
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent,
- union ST_TYPE0of1Short_INFO *pShort);
-
-void INC_ADD_ENSEMBLE_ID(union ST_TYPE0of0_INFO *pIdInfo);
-void INC_FIND_PACKET_MODE(
- union ST_TYPE0of3_INFO *pTypeInfo,
- union ST_TYPE0of3Id_INFO *pIdInfo);
-
-void INC_FIND_GLOBAL_SERVICE_COMPONENT_LONG(
- unsigned int ulSvcID,
- union ST_MSC_LONG *pstMscLong, union ST_MSC_BIT *pstMsc);
-void INC_ADD_GLOBAL_SERVICE_COMPONENT_LONG(
- struct ST_STREAM_INFO *pStreamInfo,
- unsigned int ulSvcID,
- union ST_MSC_LONG *pstMscLong, union ST_MSC_BIT *pstMsc);
-void INC_FIND_GLOBAL_SERVICE_COMPONENT_SHORT(unsigned int ulSvcID,
- union ST_MSC_SHORT *pstMscShort, union ST_MSC_BIT *pstMsc);
-void INC_ADD_GLOBAL_SERVICE_COMPONENT_SHORT(
- struct ST_STREAM_INFO *pStreamInfo, unsigned int ulSvcID,
- union ST_MSC_SHORT *pstMscShort, union ST_MSC_BIT *pstMsc);
-void INC_FIND_SERVICE_COMPONENT_LABEL(
- unsigned int ulSID, unsigned char *pcLabel);
-void INC_FIND_DATA_SERVICE_COMPONENT_LABEL(
- unsigned int ulSID, unsigned char *pcLabel);
-unsigned short INC_FIND_SUB_CHANNEL_SIZE(unsigned char ucTableIndex);
-void INC_LABEL_FILTER(unsigned char *pData, short nSize);
-void INC_ADD_SERVICE_LABEL(struct ST_STREAM_INFO *pStreamInfo,
- unsigned int ulSID, unsigned char *pcLabel);
-void INC_FIND_USERAPP_TYPE(unsigned int ulSID,
- struct ST_USERAPP_GROUP_INFO *pstData);
-unsigned char INC_ADD_USERAPP_TYPE(unsigned int ulSID,
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent,
- short nCnt, struct ST_USERAPP_GROUP_INFO *pstData);
-
-unsigned char INC_DB_UPDATE(unsigned int ulFreq, struct ST_SUBCH_INFO *pDMB,
- struct ST_SUBCH_INFO *pDAB, struct ST_SUBCH_INFO *pDATA,
- struct ST_SUBCH_INFO *pFIDC);
-void INC_ADD_SERVICE_COMPONENT_LABEL(
- struct ST_STREAM_INFO *pStreamInfo,
- unsigned int ulSID,
- unsigned char *pcLabel);
-void INC_DB_COPY(unsigned int ulFreq, short nCnt,
- struct INC_CHANNEL_INFO *pChInfo,
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent);
-
-unsigned short INC_GET_SAMSUNG_BER(unsigned char ucI2CID);
-unsigned char INC_GET_SAMSUNG_ANT_LEVEL(unsigned char ucI2CID);
-unsigned short INC_GET_SAMSUNG_BER_FOR_FACTORY_MODE(unsigned char ucI2CID);
-
-extern struct spi_device *spi_dmb;
-
-#endif
diff --git a/drivers/media/tdmb/t3900/INC_INTERFACE.c b/drivers/media/tdmb/t3900/INC_INTERFACE.c
deleted file mode 100644
index bb74397..0000000
--- a/drivers/media/tdmb/t3900/INC_INTERFACE.c
+++ /dev/null
@@ -1,530 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2011 I&C Inc. All Rights Reserved
-
- File name : INC_INTERFACE.c
-
- Description :
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-*******************************************************************************/
-
-#include "INC_INCLUDES.h"
-#include "tdmb.h"
-#include <linux/mutex.h>
-
-/********************** Comment****************/
-/* Operating Chip set : T3900 */
-/* Software version : version 1.22 */
-/* Software Update : 2011.04.21 */
-/************************************************/
-static DEFINE_MUTEX(tdmb_mutex);
-
-#define INC_MUTEX_LOCK() mutex_lock(&tdmb_mutex)
-#define INC_MUTEX_FREE() mutex_unlock(&tdmb_mutex)
-struct ST_SUBCH_INFO g_stDmbInfo;
-struct ST_SUBCH_INFO g_stDabInfo;
-struct ST_SUBCH_INFO g_stDataInfo;
-struct ST_SUBCH_INFO g_stFIDCInfo;
-
-
-void INC_DELAY(unsigned short uiDelay)
-{
- msleep(uiDelay);
-}
-
-void INC_MSG_PRINTF(char nFlag, char *pFormat, ...)
-{
- va_list Ap;
- unsigned short nSize;
- char acTmpBuff[1012] = {0};
- va_start(Ap, pFormat);
- nSize = vsprintf(acTmpBuff, pFormat, Ap);
- va_end(Ap);
-}
-
-unsigned short INC_I2C_READ(unsigned char ucI2CID, unsigned short uiAddr)
-{
- unsigned short uiRcvData = 0;
- return uiRcvData;
-}
-
-unsigned char INC_I2C_WRITE(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned short uiData)
-{
- return INC_SUCCESS;
-}
-
-unsigned char INC_I2C_READ_BURST(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned char *pData, unsigned short nSize)
-{
- return INC_SUCCESS;
-}
-
-unsigned char INC_EBI_WRITE(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned short uiData)
-{
- unsigned short uiCMD = INC_REGISTER_CTRL(SPI_REGWRITE_CMD) | 1;
- unsigned short uiNewAddr =
- (ucI2CID == TDMB_I2C_ID82) ? (uiAddr | 0x8000) : uiAddr;
- INC_MUTEX_LOCK();
- *(unsigned char *)STREAM_PARALLEL_ADDRESS = uiNewAddr >> 8;
- *(unsigned char *)STREAM_PARALLEL_ADDRESS = uiNewAddr & 0xff;
- *(unsigned char *)STREAM_PARALLEL_ADDRESS = uiCMD >> 8;
- *(unsigned char *)STREAM_PARALLEL_ADDRESS = uiCMD & 0xff;
- *(unsigned char *)STREAM_PARALLEL_ADDRESS =
- (uiData >> 8) & 0xff;
- *(unsigned char *)STREAM_PARALLEL_ADDRESS = uiData & 0xff;
- INC_MUTEX_FREE();
- return INC_SUCCESS;
-}
-
-unsigned short INC_EBI_READ(unsigned char ucI2CID, unsigned short uiAddr)
-{
- unsigned short uiRcvData = 0;
- unsigned short uiCMD = INC_REGISTER_CTRL(SPI_REGREAD_CMD) | 1;
- unsigned short uiNewAddr =
- (ucI2CID == TDMB_I2C_ID82) ? (uiAddr | 0x8000) : uiAddr;
- INC_MUTEX_LOCK();
- *(unsigned char *)STREAM_PARALLEL_ADDRESS = uiNewAddr >> 8;
- *(unsigned char *)STREAM_PARALLEL_ADDRESS = uiNewAddr & 0xff;
- *(unsigned char *)STREAM_PARALLEL_ADDRESS = uiCMD >> 8;
- *(unsigned char *)STREAM_PARALLEL_ADDRESS = uiCMD & 0xff;
- uiRcvData =
- (*(unsigned char *)STREAM_PARALLEL_ADDRESS & 0xff) << 8;
- uiRcvData |= (*(unsigned char *)STREAM_PARALLEL_ADDRESS & 0xff);
- INC_MUTEX_FREE();
- return uiRcvData;
-}
-
-unsigned char INC_EBI_READ_BURST(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned char *pData, unsigned short nSize)
-{
- unsigned short uiLoop, nIndex = 0, anLength[2], uiCMD, unDataCnt;
- unsigned short uiNewAddr =
- (ucI2CID == TDMB_I2C_ID82) ? (uiAddr | 0x8000) : uiAddr;
- if (nSize > INC_MPI_MAX_BUFF)
- return INC_ERROR;
- memset((char *) anLength, 0, sizeof(anLength));
- if (nSize > INC_TDMB_LENGTH_MASK) {
- anLength[nIndex++] = INC_TDMB_LENGTH_MASK;
- anLength[nIndex++] = nSize - INC_TDMB_LENGTH_MASK;
- } else
- anLength[nIndex++] = nSize;
-
- INC_MUTEX_LOCK();
- for (uiLoop = 0; uiLoop < nIndex; uiLoop++) {
- uiCMD =
- INC_REGISTER_CTRL(SPI_MEMREAD_CMD) | (anLength[uiLoop] &
- INC_TDMB_LENGTH_MASK);
- *(unsigned char *)STREAM_PARALLEL_ADDRESS =
- uiNewAddr >> 8;
- *(unsigned char *)STREAM_PARALLEL_ADDRESS =
- uiNewAddr & 0xff;
- *(unsigned char *)STREAM_PARALLEL_ADDRESS = uiCMD >> 8;
- *(unsigned char *)STREAM_PARALLEL_ADDRESS = uiCMD & 0xff;
- for (unDataCnt = 0; unDataCnt < anLength[uiLoop];
- unDataCnt++) {
- *pData++ =
- *(unsigned char *)STREAM_PARALLEL_ADDRESS & 0xff;
- }
- }
- INC_MUTEX_FREE();
- return INC_SUCCESS;
-}
-
-unsigned short INC_SPI_REG_READ(unsigned char ucI2CID, unsigned short uiAddr)
-{
- unsigned short uiRcvData = 0;
- unsigned short uiNewAddr =
- (ucI2CID == TDMB_I2C_ID82) ? (uiAddr | 0x8000) : uiAddr;
- unsigned short uiCMD = INC_REGISTER_CTRL(SPI_REGREAD_CMD) | 1;
- unsigned char auiBuff[6];
- unsigned char cCnt = 0;
- unsigned char acRxBuff[2];
- struct spi_message msg;
- struct spi_transfer transfer[2];
- struct spi_device *_device;
- int status;
-
- _device = tdmb_get_spi_handle();
-
- INC_MUTEX_LOCK();
- auiBuff[cCnt++] = uiNewAddr >> 8;
- auiBuff[cCnt++] = uiNewAddr & 0xff;
- auiBuff[cCnt++] = uiCMD >> 8;
- auiBuff[cCnt++] = uiCMD & 0xff;
-
- memset(&msg, 0, sizeof(msg));
- memset(transfer, 0, sizeof(transfer));
- spi_message_init(&msg);
- msg.spi = _device;
- transfer[0].tx_buf = (u8 *) auiBuff;
- transfer[0].rx_buf = (u8 *) NULL;
- transfer[0].len = 4;
- transfer[0].bits_per_word = 8;
- transfer[0].delay_usecs = 0;
- spi_message_add_tail(&(transfer[0]), &msg);
- transfer[1].tx_buf = (u8 *) NULL;
- transfer[1].rx_buf = (u8 *) acRxBuff;
- transfer[1].len = 2;
- transfer[1].bits_per_word = 8;
- transfer[1].delay_usecs = 0;
- spi_message_add_tail(&(transfer[1]), &msg);
- status = spi_sync(_device, &msg);
- uiRcvData = (unsigned short) (acRxBuff[0] << 8) |
- (unsigned short) acRxBuff[1];
-
- /* TODO SPI Read code here... */
- INC_MUTEX_FREE();
- return uiRcvData;
-}
-
-unsigned char INC_SPI_REG_WRITE(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned short uiData)
-{
- unsigned short uiNewAddr =
- (ucI2CID == TDMB_I2C_ID82) ? (uiAddr | 0x8000) : uiAddr;
- unsigned short uiCMD = INC_REGISTER_CTRL(SPI_REGWRITE_CMD) | 1;
- unsigned char auiBuff[6];
- unsigned char cCnt = 0;
-
- struct spi_message msg;
- struct spi_transfer transfer;
- struct spi_device *_device;
- int status;
-
- _device = tdmb_get_spi_handle();
-
- INC_MUTEX_LOCK();
- auiBuff[cCnt++] = uiNewAddr >> 8;
- auiBuff[cCnt++] = uiNewAddr & 0xff;
- auiBuff[cCnt++] = uiCMD >> 8;
- auiBuff[cCnt++] = uiCMD & 0xff;
- auiBuff[cCnt++] = uiData >> 8;
- auiBuff[cCnt++] = uiData & 0xff;
- memset(&msg, 0, sizeof(msg));
- memset(&transfer, 0, sizeof(transfer));
- spi_message_init(&msg);
- msg.spi = _device;
- transfer.tx_buf = (u8 *) auiBuff;
- transfer.rx_buf = NULL;
- transfer.len = 6;
- transfer.bits_per_word = 8;
- transfer.delay_usecs = 0;
- spi_message_add_tail(&transfer, &msg);
- status = spi_sync(_device, &msg);
- INC_MUTEX_FREE();
- return INC_SUCCESS;
-}
-
-unsigned char INC_SPI_READ_BURST(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned char *pBuff, unsigned short wSize)
-{
- unsigned short uiNewAddr =
- (ucI2CID == TDMB_I2C_ID82) ? (uiAddr | 0x8000) : uiAddr;
- unsigned short uiCMD;
- unsigned char auiBuff[6];
-
- struct spi_message msg;
- struct spi_transfer transfer[2];
- struct spi_device *_device;
- int status;
-
- _device = tdmb_get_spi_handle();
-
- INC_MUTEX_LOCK();
- auiBuff[0] = uiNewAddr >> 8;
- auiBuff[1] = uiNewAddr & 0xff;
- uiCMD = INC_REGISTER_CTRL(SPI_MEMREAD_CMD) | (wSize & 0xFFF);
- auiBuff[2] = uiCMD >> 8;
- auiBuff[3] = uiCMD & 0xff;
- memset(&msg, 0, sizeof(msg));
- memset(transfer, 0, sizeof(transfer));
- spi_message_init(&msg);
- msg.spi = _device;
- transfer[0].tx_buf = (u8 *) auiBuff;
- transfer[0].rx_buf = (u8 *) NULL;
- transfer[0].len = 4;
- transfer[0].bits_per_word = 8;
- transfer[0].delay_usecs = 0;
- spi_message_add_tail(&(transfer[0]), &msg);
- transfer[1].tx_buf = (u8 *) NULL;
- transfer[1].rx_buf = (u8 *) pBuff;
- transfer[1].len = wSize;
- transfer[1].bits_per_word = 8;
- transfer[1].delay_usecs = 0;
- spi_message_add_tail(&(transfer[1]), &msg);
- status = spi_sync(_device, &msg);
- INC_MUTEX_FREE();
- return INC_SUCCESS;
-}
-
-unsigned char INTERFACE_DBINIT(void)
-{
- memset(&g_stDmbInfo, 0, sizeof(struct ST_SUBCH_INFO));
- memset(&g_stDabInfo, 0, sizeof(struct ST_SUBCH_INFO));
- memset(&g_stDataInfo, 0, sizeof(struct ST_SUBCH_INFO));
- memset(&g_stFIDCInfo, 0, sizeof(struct ST_SUBCH_INFO));
- return INC_SUCCESS;
-}
-
-void INTERFACE_UPLOAD_MODE(unsigned char ucI2CID,
- enum UPLOAD_MODE_INFO ucUploadMode)
-{
- struct INC_TDMB_MODE *stMode;
- stMode = INC_GET_TDMBMODE(ucI2CID);
- stMode->m_ucUploadMode = ucUploadMode;
- INC_SET_TDMBMODE(ucI2CID, stMode);
-
- INC_UPLOAD_MODE(ucI2CID);
-}
-
-unsigned char INTERFACE_PLL_MODE(unsigned char ucI2CID, enum PLL_MODE ucPllMode)
-{
- struct INC_TDMB_MODE *stMode;
- stMode = INC_GET_TDMBMODE(ucI2CID);
- stMode->m_ucPLL_Mode = ucPllMode;
- INC_SET_TDMBMODE(ucI2CID, stMode);
- return INC_PLL_SET(ucI2CID);
-}
-
-unsigned char INTERFACE_INIT(unsigned char ucI2CID)
-{
- return INC_INIT(ucI2CID);
-}
-
-enum INC_ERROR_INFO INTERFACE_ERROR_STATUS(unsigned char ucI2CID)
-{
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
- return pInfo->nBbpStatus;
-}
-
-/*************************************************/
-/* when Single Channel Select.... */
-/* pChInfo->ucServiceType, pChInfo->ucSubChID, */
-/* pChInfo->ulRFFreq */
-/* pChInfo->nSetCnt must be defined */
-/* When DMB Channel Select */
-/* pChInfo->ucServiceType = 0x18 */
-/* When DAB, DATA Channel Select muse be */
-/* pChInfo->ucServiceType = 0 */
-/*************************************************/
-
-unsigned char INTERFACE_START(unsigned char ucI2CID,
- struct ST_SUBCH_INFO *pChInfo)
-{
- return INC_CHANNEL_START(ucI2CID, pChInfo);
-}
-
-
-/* For Factory */
-unsigned char INTERFACE_START_TEST(
- unsigned char ucI2CID, struct ST_SUBCH_INFO *pChInfo)
-{
- return INC_CHANNEL_START_TEST(ucI2CID, pChInfo);
-}
-
-/************************************************/
-/* Multi Channel Select .. */
-/* pChInfo->ucServiceType, pChInfo->ucSubChID, */
-/*pChInfo->ulRFFreq is muse be */
-/* defined */
-/* When DMB Channel Select */
-/* pChInfo->ucServiceType = 0x18 */
-/* When DAB, DATA Channel Select must be */
-/* pChInfo->ucServiceType = 0 */
-/* pMultiInfo->nSetCnt is count of subChannel */
-/************************************************/
-unsigned char INTERFACE_SCAN(unsigned char ucI2CID, unsigned int ulFreq)
-{
- INTERFACE_DBINIT();
- if (!INC_ENSEMBLE_SCAN(ucI2CID, ulFreq))
- return INC_ERROR;
- INC_DB_UPDATE(ulFreq, &g_stDmbInfo, &g_stDabInfo, &g_stDataInfo,
- &g_stFIDCInfo);
- INC_BUBBLE_SORT(&g_stDmbInfo, INC_SUB_CHANNEL_ID);
- INC_BUBBLE_SORT(&g_stDabInfo, INC_SUB_CHANNEL_ID);
- INC_BUBBLE_SORT(&g_stDataInfo, INC_SUB_CHANNEL_ID);
- INC_BUBBLE_SORT(&g_stFIDCInfo, INC_SUB_CHANNEL_ID);
- return INC_SUCCESS;
-}
-
-
-/**********************************************/
-/* DMB Channel count return when single */
-/* channel scan is finished */
-/**********************************************/
-unsigned short INTERFACE_GETDMB_CNT(void)
-{
- return (unsigned short) g_stDmbInfo.nSetCnt;
-}
-
-
-/***********************************************/
-/* DAB Channel count return when single channel */
-/* scan is finished */
-/************************************************/
-unsigned short INTERFACE_GETDAB_CNT(void)
-{
- return (unsigned short) g_stDabInfo.nSetCnt;
-}
-
-
-/************************************************/
-/* DATA Channel count return when single */
-/* channel scan is finished */
-/************************************************/
-unsigned short INTERFACE_GETDATA_CNT(void)
-{
- return (unsigned short) g_stDataInfo.nSetCnt;
-}
-
-
-/************************************************/
-/* Ensemble Label return when single channel */
-/* scan is finished */
-/************************************************/
-
-unsigned char *INTERFACE_GETENSEMBLE_LABEL(unsigned char ucI2CID)
-{
- struct ST_FICDB_LIST *pList;
- pList = INC_GET_FICDB_LIST();
- return pList->aucEnsembleName;
-}
-
-
-/************************************************/
-/* Return the DMB Channel Information */
-/************************************************/
-struct INC_CHANNEL_INFO *INTERFACE_GETDB_DMB(short uiPos)
-{
- if (uiPos >= MAX_SUBCH_SIZE)
- return INC_NULL;
- if (uiPos >= g_stDmbInfo.nSetCnt)
- return INC_NULL;
- return &g_stDmbInfo.astSubChInfo[uiPos];
-}
-
-
-/************************************************/
-/* REturn the DAB Channel Information */
-/************************************************/
-struct INC_CHANNEL_INFO *INTERFACE_GETDB_DAB(short uiPos)
-{
- if (uiPos >= MAX_SUBCH_SIZE)
- return INC_NULL;
- if (uiPos >= g_stDabInfo.nSetCnt)
- return INC_NULL;
- return &g_stDabInfo.astSubChInfo[uiPos];
-}
-
-/************************************************/
-/* REturn the DATA Channel Information */
-/************************************************/
-struct INC_CHANNEL_INFO *INTERFACE_GETDB_DATA(short uiPos)
-{
- if (uiPos >= MAX_SUBCH_SIZE)
- return INC_NULL;
- if (uiPos >= g_stDataInfo.nSetCnt)
- return INC_NULL;
- return &g_stDataInfo.astSubChInfo[uiPos];
-}
-
-/* Chech the change of FIC info when watching tv */
-unsigned char INTERFACE_RECONFIG(unsigned char ucI2CID)
-{
- return INC_FIC_RECONFIGURATION_HW_CHECK(ucI2CID);
-}
-
-unsigned char INTERFACE_STATUS_CHECK(unsigned char ucI2CID)
-{
- return INC_STATUS_CHECK(ucI2CID);
-}
-
-unsigned short INTERFACE_GET_CER(unsigned char ucI2CID)
-{
- return INC_GET_CER(ucI2CID);
-}
-
-unsigned char INTERFACE_GET_SNR(unsigned char ucI2CID)
-{
- return INC_GET_SNR(ucI2CID);
-}
-
-unsigned int INTERFACE_GET_POSTBER(unsigned char ucI2CID)
-{
- return INC_GET_POSTBER(ucI2CID);
-}
-
-unsigned int INTERFACE_GET_PREBER(unsigned char ucI2CID)
-{
- return INC_GET_PREBER(ucI2CID);
-}
-
-/***************************************************/
-/* Be Called when Scan, start channel, force stop. */
-/***************************************************/
-void INTERFACE_USER_STOP(unsigned char ucI2CID)
-{
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
- pInfo->ucStop = 1;
-}
-
-void INTERFACE_USER_STOP_CLEAR(unsigned char ucI2CID)
-{
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
- pInfo->ucStop = 0;
-}
-
-/* Interrupt Enable... */
-void INTERFACE_INT_ENABLE(unsigned char ucI2CID, unsigned short unSet)
-{
- INC_INTERRUPT_SET(ucI2CID, unSet);
-}
-
-/* Use when polling mode */
-unsigned char INTERFACE_INT_CHECK(unsigned char ucI2CID)
-{
- unsigned short nValue = 0;
- nValue = INC_CMD_READ(ucI2CID, APB_INT_BASE + 0x01);
- if (!(nValue & INC_MPI_INTERRUPT_ENABLE))
- return INC_ERROR;
-
- return INC_SUCCESS;
-}
-
-/* Interrupt Clear */
-void INTERFACE_INT_CLEAR(unsigned char ucI2CID, unsigned short unClr)
-{
- INC_INTERRUPT_CLEAR(ucI2CID, unClr);
-}
-
-/* Interrupt Service Routine... // SPI Slave Mode or MPI Slave Mode */
-unsigned char INTERFACE_ISR(unsigned char ucI2CID, unsigned char *pBuff)
-{
- unsigned short unDataLength;
- unDataLength = INC_CMD_READ(ucI2CID, APB_MPI_BASE + 0x6);
- if (unDataLength < INC_INTERRUPT_SIZE)
- return INC_ERROR;
-
- INC_CMD_READ_BURST(ucI2CID, APB_STREAM_BASE, pBuff,
- INC_INTERRUPT_SIZE);
- INTERFACE_INT_CLEAR(ucI2CID, INC_MPI_INTERRUPT_ENABLE);
- return INC_SUCCESS;
-}
diff --git a/drivers/media/tdmb/t3900/INC_PROCESS.c b/drivers/media/tdmb/t3900/INC_PROCESS.c
deleted file mode 100644
index ea12eb2..0000000
--- a/drivers/media/tdmb/t3900/INC_PROCESS.c
+++ /dev/null
@@ -1,1893 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2011 I&C Inc. All Rights Reserved
-
- File name : INC_PROCESS.c
-
- Description :
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-*******************************************************************************/
-
-#include "INC_INCLUDES.h"
-#include <linux/fs.h>
-#include <linux/uaccess.h>
-
-static struct ST_BBPINFO g_astBBPRun[2];
-enum ENSEMBLE_BAND m_ucRfBand = KOREA_BAND_ENABLE;
-enum CTRL_MODE m_ucCommandMode = INC_SPI_CTRL;
-enum ST_TRANSMISSION m_ucTransMode = TRANSMISSION_MODE1;
-enum UPLOAD_MODE_INFO m_ucUploadMode = STREAM_UPLOAD_SPI;
-enum CLOCK_SPEED m_ucClockSpeed = INC_OUTPUT_CLOCK_4096;
-enum INC_ACTIVE_MODE m_ucMPI_CS_Active = INC_ACTIVE_LOW;
-enum INC_ACTIVE_MODE m_ucMPI_CLK_Active = INC_ACTIVE_HIGH;
-enum PLL_MODE m_ucPLL_Mode = INPUT_CLOCK_19200KHZ;
-enum INC_DPD_MODE m_ucDPD_Mode = INC_DPD_OFF;
-unsigned short m_unIntCtrl = \
- (INC_INTERRUPT_POLARITY_HIGH \
- | INC_INTERRUPT_PULSE \
- |INC_INTERRUPT_AUTOCLEAR_ENABLE \
- |(INC_INTERRUPT_PULSE_COUNT & INC_INTERRUPT_PULSE_COUNT_MASK));
-
-static struct INC_TDMB_MODE g_stMode;
-
-struct INC_TDMB_MODE *INC_GET_TDMBMODE(unsigned char ucI2CID)
-{
- g_stMode.m_ucRfBand = m_ucRfBand;
- g_stMode.m_ucCommandMode = m_ucCommandMode;
- g_stMode.m_ucTransMode = m_ucTransMode;
- g_stMode.m_ucUploadMode = m_ucUploadMode;
- g_stMode.m_ucClockSpeed = m_ucClockSpeed;
- g_stMode.m_ucMPI_CS_Active = m_ucMPI_CS_Active;
- g_stMode.m_ucMPI_CLK_Active = m_ucMPI_CLK_Active;
- g_stMode.m_ucPLL_Mode = m_ucPLL_Mode;
- g_stMode.m_ucDPD_Mode = m_ucDPD_Mode;
- g_stMode.m_unIntCtrl = m_unIntCtrl;
- return &g_stMode;
-}
-
-void INC_SET_TDMBMODE(unsigned char ucI2CID, struct INC_TDMB_MODE *stMode)
-{
- m_ucRfBand = stMode->m_ucRfBand;
- m_ucCommandMode = stMode->m_ucCommandMode;
- m_ucTransMode = stMode->m_ucTransMode;
- m_ucUploadMode = stMode->m_ucUploadMode;
- m_ucClockSpeed = stMode->m_ucClockSpeed;
- m_ucMPI_CS_Active = stMode->m_ucMPI_CS_Active;
- m_ucMPI_CLK_Active = stMode->m_ucMPI_CLK_Active;
- m_ucPLL_Mode = stMode->m_ucPLL_Mode;
- m_ucDPD_Mode = stMode->m_ucDPD_Mode;
- m_unIntCtrl = stMode->m_unIntCtrl;
-}
-
-
-unsigned char INC_CMD_WRITE(unsigned char ucI2CID,
- unsigned short uiAddr, unsigned short uiData)
-{
- if (m_ucCommandMode == INC_SPI_CTRL)
- return INC_SPI_REG_WRITE(ucI2CID, uiAddr, uiData);
- else if (m_ucCommandMode == INC_I2C_CTRL)
- return INC_I2C_WRITE(ucI2CID, uiAddr, uiData);
- else if (m_ucCommandMode == INC_EBI_CTRL)
- return INC_EBI_WRITE(ucI2CID, uiAddr, uiData);
- return INC_I2C_WRITE(ucI2CID, uiAddr, uiData);
-}
-
-unsigned short INC_CMD_READ(unsigned char ucI2CID, unsigned short uiAddr)
-{
- if (m_ucCommandMode == INC_SPI_CTRL)
- return INC_SPI_REG_READ(ucI2CID, uiAddr);
- else if (m_ucCommandMode == INC_I2C_CTRL)
- return INC_I2C_READ(ucI2CID, uiAddr);
- else if (m_ucCommandMode == INC_EBI_CTRL)
- return INC_EBI_READ(ucI2CID, uiAddr);
- return INC_I2C_READ(ucI2CID, uiAddr);
-}
-
-unsigned char INC_CMD_READ_BURST(unsigned char ucI2CID, unsigned short uiAddr,
- unsigned char *pData, unsigned short nSize)
-{
- if (m_ucCommandMode == INC_SPI_CTRL)
- return INC_SPI_READ_BURST(ucI2CID, uiAddr, pData, nSize);
- else if (m_ucCommandMode == INC_I2C_CTRL)
- return INC_I2C_READ_BURST(ucI2CID, uiAddr, pData, nSize);
- else if (m_ucCommandMode == INC_EBI_CTRL)
- return INC_EBI_READ_BURST(ucI2CID, uiAddr, pData, nSize);
- return INC_I2C_READ_BURST(ucI2CID, uiAddr, pData, nSize);
-}
-
-void INC_INIT_MPI(unsigned char ucI2CID)
-{
- unsigned short uiMpiStatus, uiRsStatus;
- uiRsStatus = INC_CMD_READ(ucI2CID, APB_RS_BASE + 0);
- INC_CMD_WRITE(ucI2CID, APB_RS_BASE + 0, 0x0000);
- INC_DELAY(50);
- uiMpiStatus = INC_CMD_READ(ucI2CID, APB_MPI_BASE + 0);
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0, uiMpiStatus | 0x8000);
- INC_CMD_WRITE(ucI2CID, APB_RS_BASE + 0, uiRsStatus | 0x8000);
-}
-
-void INC_MPICLOCK_SET(unsigned char ucI2CID)
-{
- if (m_ucUploadMode == STREAM_UPLOAD_TS) {
- if (m_ucClockSpeed == INC_OUTPUT_CLOCK_1024)
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x01, 0x9918);
- else if (m_ucClockSpeed == INC_OUTPUT_CLOCK_2048)
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x01, 0x440C);
- else if (m_ucClockSpeed == INC_OUTPUT_CLOCK_4096)
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x01, 0x3308);
- else
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x01, 0x3308);
- return;
- }
-
- if (m_ucClockSpeed == INC_OUTPUT_CLOCK_1024)
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x01, 0x9918);
- else if (m_ucClockSpeed == INC_OUTPUT_CLOCK_2048)
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x01, 0x440C);
- else if (m_ucClockSpeed == INC_OUTPUT_CLOCK_4096)
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x01, 0x2206);
- else
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x01, 0x2206);
-}
-
-void INC_UPLOAD_MODE(unsigned char ucI2CID)
-{
- unsigned short uiStatus = 0x01;
-
- if (m_ucCommandMode != INC_EBI_CTRL) {
- if (m_ucUploadMode == STREAM_UPLOAD_SPI)
- uiStatus = 0x05;
- if (m_ucUploadMode == STREAM_UPLOAD_SLAVE_PARALLEL)
- uiStatus = 0x04;
- if (m_ucUploadMode == STREAM_UPLOAD_TS)
- uiStatus = 0x101;
- if (m_ucMPI_CS_Active == INC_ACTIVE_HIGH)
- uiStatus |= 0x10;
- if (m_ucMPI_CLK_Active == INC_ACTIVE_HIGH)
- uiStatus |= 0x20;
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x00, uiStatus);
- } else {
- INC_CMD_WRITE(ucI2CID, APB_I2C_BASE + 0x00, 0x0001);
- INC_CMD_WRITE(ucI2CID, APB_SPI_BASE + 0x00, 0x0011);
- }
-
- if (m_ucUploadMode == STREAM_UPLOAD_TS) {
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x02, 188);
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x03, 8);
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x04, 188);
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x05, 0);
- } else {
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x02, MPI_CS_SIZE);
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x04, INC_INTERRUPT_SIZE);
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0x05,
- INC_INTERRUPT_SIZE - 188);
- }
-}
-
-void INC_SWAP(struct ST_SUBCH_INFO *pMainInfo,
- unsigned short nNo1, unsigned short nNo2)
-{
- struct INC_CHANNEL_INFO stChInfo;
- stChInfo = pMainInfo->astSubChInfo[nNo1];
- pMainInfo->astSubChInfo[nNo1] = pMainInfo->astSubChInfo[nNo2];
- pMainInfo->astSubChInfo[nNo2] = stChInfo;
-}
-
-void INC_BUBBLE_SORT(struct ST_SUBCH_INFO *pMainInfo, enum INC_SORT_OPTION Opt)
-{
- short nIndex, nLoop;
- struct INC_CHANNEL_INFO *pDest;
- struct INC_CHANNEL_INFO *pSour;
-
- if (pMainInfo->nSetCnt <= 1)
- return;
-
- for (nIndex = 0; nIndex < pMainInfo->nSetCnt - 1; nIndex++) {
- pSour = &pMainInfo->astSubChInfo[nIndex];
-
- for (nLoop = nIndex + 1; nLoop < pMainInfo->nSetCnt; nLoop++) {
- pDest = &pMainInfo->astSubChInfo[nLoop];
-
- if (Opt == INC_SUB_CHANNEL_ID) {
- if (pSour->ucSubChID > pDest->ucSubChID
- && pSour->ulRFFreq == pDest->ulRFFreq) {
- INC_SWAP(pMainInfo, nIndex, nLoop);
- }
- } else if (Opt == INC_START_ADDRESS) {
- if (pSour->uiStarAddr > pDest->uiStarAddr
- && pSour->ulRFFreq == pDest->ulRFFreq)
- INC_SWAP(pMainInfo, nIndex, nLoop);
- } else if (Opt == INC_BIRRATE) {
- if (pSour->uiBitRate > pDest->uiBitRate
- && pSour->ulRFFreq == pDest->ulRFFreq)
- INC_SWAP(pMainInfo, nIndex, nLoop);
- } else if (Opt == INC_FREQUENCY) {
- if (pSour->ulRFFreq > pDest->ulRFFreq
- && pSour->ulRFFreq == pDest->ulRFFreq)
- INC_SWAP(pMainInfo, nIndex, nLoop);
- } else {
- if (pSour->uiStarAddr > pDest->uiStarAddr
- && pSour->ulRFFreq == pDest->ulRFFreq)
- INC_SWAP(pMainInfo, nIndex, nLoop);
- }
- }
- }
-}
-
-unsigned char INC_BUBBLE_SORT_by_TYPE(struct ST_SUBCH_INFO *pMainInfo)
-{
- short nIndex, nLoop;
- struct INC_CHANNEL_INFO *pDest;
- struct INC_CHANNEL_INFO *pSour;
-
- if (pMainInfo->nSetCnt <= 1)
- return INC_ERROR;
-
- for (nIndex = 0; nIndex < pMainInfo->nSetCnt - 1; nIndex++) {
- if (pMainInfo->astSubChInfo[nIndex].uiTmID != TMID_1)
- continue;
-
- pSour = &pMainInfo->astSubChInfo[nIndex];
-
- for (nLoop = nIndex + 1; nLoop < pMainInfo->nSetCnt; nLoop++) {
- if (pMainInfo->astSubChInfo[nLoop].uiTmID == TMID_1)
- continue;
- pDest = &pMainInfo->astSubChInfo[nLoop];
- INC_SWAP(pMainInfo, nIndex, nLoop);
- return INC_SUCCESS;
- }
- }
- return INC_ERROR;
-}
-
-struct ST_BBPINFO *INC_GET_STRINFO(unsigned char ucI2CID)
-{
- if (ucI2CID == TDMB_I2C_ID80)
- return &g_astBBPRun[0];
- return &g_astBBPRun[1];
-}
-
-unsigned short INC_GET_FRAME_DURATION(enum ST_TRANSMISSION cTrnsMode)
-{
- unsigned short uPeriodFrame;
- switch (cTrnsMode) {
- case TRANSMISSION_MODE1:
- uPeriodFrame = MAX_FRAME_DURATION;
- break;
- case TRANSMISSION_MODE2:
- case TRANSMISSION_MODE3:
- uPeriodFrame = MAX_FRAME_DURATION / 4;
- break;
- case TRANSMISSION_MODE4:
- uPeriodFrame = MAX_FRAME_DURATION / 2;
- break;
- default:
- uPeriodFrame = MAX_FRAME_DURATION;
- break;
- }
- return uPeriodFrame;
-}
-
-unsigned char INC_GET_FIB_CNT(enum ST_TRANSMISSION ucMode)
-{
- unsigned char ucResult = 0;
- switch (ucMode) {
- case TRANSMISSION_MODE1:
- ucResult = 12;
- break;
- case TRANSMISSION_MODE2:
- ucResult = 3;
- break;
- case TRANSMISSION_MODE3:
- ucResult = 4;
- break;
- case TRANSMISSION_MODE4:
- ucResult = 6;
- break;
- default:
- ucResult = 12;
- break;
- }
- return ucResult;
-}
-
-void INC_INTERRUPT_CTRL(unsigned char ucI2CID)
-{
- INC_CMD_WRITE(ucI2CID, APB_INT_BASE + 0x00, m_unIntCtrl);
-}
-
-void INC_INTERRUPT_CLEAR(unsigned char ucI2CID, unsigned short uiClrInt)
-{
- INC_CMD_WRITE(ucI2CID, APB_INT_BASE + 0x03, uiClrInt);
-}
-
-void INC_INTERRUPT_SET(unsigned char ucI2CID, unsigned short uiSetInt)
-{
- unsigned short uiIntSet;
- uiIntSet = ~uiSetInt;
- INC_CMD_WRITE(ucI2CID, APB_INT_BASE + 0x02, uiIntSet);
-}
-
-unsigned char INC_CHIP_STATUS(unsigned char ucI2CID)
-{
- unsigned short uiChipID;
- uiChipID = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0x10) & 0xF00;
- if (uiChipID != 0xD00 && uiChipID != 0xC00) {
- printk(KERN_DEBUG"[TDMB_3900] Chip ID Error : 0x%X\r\n",
- uiChipID);
- return INC_ERROR;
- }
- printk(KERN_DEBUG"[TDMB_T3900] Chip ID good : 0x%X\r\n", uiChipID);
- return INC_SUCCESS;
-}
-
-unsigned char INC_PLL_SET(unsigned char ucI2CID)
-{
- unsigned short wData;
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
-
- wData = INC_CMD_READ(ucI2CID, APB_GEN_BASE + 0x02) & 0xFE00;
-
- switch (m_ucPLL_Mode) {
- case INPUT_CLOCK_24576KHZ:
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x00, 0x0000);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x06, 0x0002);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x21, 0x3FFF);
- break;
-
- case INPUT_CLOCK_27000KHZ:
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x02, wData | 0x41BE);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x03, 0x310A);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x00, 0x7FFF);
- break;
-
- case INPUT_CLOCK_19200KHZ:
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x01, 0x0003);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x02, 0x0086);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x03, 0x0066);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x04, 0x6666);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x05, 0x0075);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x06, 0x0000);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x07, 0x0000);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x00, 0x0001);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x21, 0x3FFF);
- break;
-
- case INPUT_CLOCK_27120KHZ:
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x01, 0x0001);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x02, 0x001F);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x03, 0x00B7);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x04, 0x8122);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x05, 0x0075);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x06, 0x0000);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x07, 0x0000);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x00, 0x0001);
- break;
-
- case INPUT_CLOCK_12000KHZ:
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x02, wData | 0x4200);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x03, 0x190A);
- INC_CMD_WRITE(ucI2CID, APB_GEN_BASE + 0x00, 0x7FFF);
- break;
- }
-
- if (m_ucPLL_Mode == INPUT_CLOCK_24576KHZ)
- return INC_SUCCESS;
- INC_DELAY(10);
-
- if (!(INC_CMD_READ(ucI2CID, APB_GEN_BASE + 0x09) & 0x0001)) {
- pInfo->nBbpStatus = ERROR_PLL;
- return INC_ERROR;
- }
-
- return INC_SUCCESS;
-}
-
-void INC_SET_CHANNEL(unsigned char ucI2CID, struct ST_SUBCH_INFO *pMultiInfo)
-{
- struct INC_CHANNEL_INFO *pChInfo;
- unsigned short uiLoop, wData;
- enum INC_CTRL wDmbMode;
-
-#ifdef INC_MULTI_HEADER_ENABLE
- INC_CMD_WRITE(ucI2CID, APB_RS_BASE + 0x00, 0x800);
-#endif
-
- for (uiLoop = 0; uiLoop < pMultiInfo->nSetCnt; uiLoop++) {
- pChInfo = &pMultiInfo->astSubChInfo[uiLoop];
- wDmbMode = (pChInfo->ucServiceType == 0x18) ? INC_DMB : INC_DAB;
- wData =
- INC_CMD_READ(ucI2CID,
- APB_VTB_BASE + 0x01) & (~(0x3 << uiLoop * 2));
-
- if (wDmbMode == INC_DMB)
- INC_CMD_WRITE(ucI2CID, APB_VTB_BASE + 0x01,
- wData | 0x02 << (uiLoop * 2));
- else
- INC_CMD_WRITE(ucI2CID, APB_VTB_BASE + 0x01,
- wData | 0x01 << (uiLoop * 2));
-
- wData = INC_CMD_READ(ucI2CID, APB_RS_BASE + 0x00);
- INC_CMD_WRITE(ucI2CID, APB_RS_BASE + 0x00,
- wData | (0x40 >> uiLoop));
- }
-
- wData = INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x00);
- INC_CMD_WRITE(ucI2CID, APB_VTB_BASE + 0x00, wData | 0x0001);
-
- wData = INC_CMD_READ(ucI2CID, APB_RS_BASE + 0x00);
-#ifdef INC_MULTI_CHANNEL_FIC_UPLOAD
- INC_CMD_WRITE(ucI2CID, APB_RS_BASE + 0x00, wData | 0x8080);
-#else
- INC_CMD_WRITE(ucI2CID, APB_RS_BASE + 0x00, wData | 0x8000);
-#endif
-}
-
-unsigned char INC_INIT(unsigned char ucI2CID)
-{
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
- memset(pInfo, 0, sizeof(struct ST_BBPINFO));
-
- if (m_ucTransMode < TRANSMISSION_MODE1
- || m_ucTransMode > TRANSMISSION_AUTOFAST)
- return INC_ERROR;
-
- pInfo->ucTransMode = m_ucTransMode;
-
- if (INC_PLL_SET(ucI2CID) != INC_SUCCESS) {
- printk(KERN_DEBUG"[TDMB_T3900] INC_INIT\n");
- return INC_ERROR;
- }
-
- if (INC_CHIP_STATUS(ucI2CID) != INC_SUCCESS) {
- printk(KERN_DEBUG"[TDMB_T3900] INC_CHIP_STATUS\n");
- return INC_ERROR;
- }
-
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x3B, 0xFFFF);
- INC_DELAY(10);
-
- INC_INTERRUPT_CTRL(ucI2CID);
- INC_CMD_WRITE(ucI2CID, APB_VTB_BASE + 0x00, 0x8000);
- INC_CMD_WRITE(ucI2CID, APB_VTB_BASE + 0x01, 0x01C1);
- INC_CMD_WRITE(ucI2CID, APB_VTB_BASE + 0x05, 0x0008);
- INC_CMD_WRITE(ucI2CID, APB_RS_BASE + 0x01, TS_ERR_THRESHOLD);
- INC_CMD_WRITE(ucI2CID, APB_RS_BASE + 0x09, 0x000C);
-
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x00, 0xF0FF);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x88, 0x2210);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x98, 0x0000);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x41, 0x0CCC);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xB0, 0x8320);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xB4, 0x4C01);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xBC, 0x4088);
-
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x40, 0xD05C);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x8C, 0x0183);
- INC_CMD_WRITE(ucI2CID, APB_RS_BASE + 0x0A, 0x80F0);
-
- INC_CMD_WRITE(ucI2CID, APB_DEINT_BASE + 0x01, 0x0001);
- switch (m_ucTransMode) {
- case TRANSMISSION_AUTO:
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x98, 0x8000);
- break;
-
- case TRANSMISSION_AUTOFAST:
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x98, 0xC000);
- break;
-
- case TRANSMISSION_MODE1:
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xD0, 0x7F1F);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x80, 0x4082);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x90, 0x0430);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xC8, 0x3F31);
- break;
-
- case TRANSMISSION_MODE2:
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xD0, 0x1F07);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x80, 0x4182);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x90, 0x0415);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xC8, 0x1F31);
- break;
-
- case TRANSMISSION_MODE3:
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xD0, 0x0F03);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x80, 0x4282);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x90, 0x0408);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xC8, 0x0331);
- break;
-
- case TRANSMISSION_MODE4:
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xD0, 0x3F0F);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x80, 0x4382);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x90, 0x0420);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xC8, 0x3F31);
- break;
- }
-
- INC_MPICLOCK_SET(ucI2CID);
- INC_UPLOAD_MODE(ucI2CID);
-
- switch (m_ucRfBand) {
- case KOREA_BAND_ENABLE:
- INC_READY(ucI2CID, 175280);
- break;
- case BANDIII_ENABLE:
- INC_READY(ucI2CID, 174928);
- break;
- case LBAND_ENABLE:
- INC_READY(ucI2CID, 1452960);
- break;
- case CHINA_ENABLE:
- INC_READY(ucI2CID, 168160);
- break;
- case ROAMING_ENABLE:
- INC_READY(ucI2CID, 217280);
- break;
- case EXTERNAL_ENABLE:
- break;
- }
-
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0x0F, 0x40);
- if (m_ucPLL_Mode == INPUT_CLOCK_19200KHZ)
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0x10, 0x6A);
- if (m_ucPLL_Mode == INPUT_CLOCK_24576KHZ)
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0x10, 0x88);
- if (m_ucPLL_Mode == INPUT_CLOCK_27000KHZ)
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0x10, 0x96);
- if (m_ucPLL_Mode == INPUT_CLOCK_27120KHZ)
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0x10, 0x96);
-
- INC_DELAY(100);
- printk(KERN_DEBUG"[TDMB_T3900] INC_INIT START GOOD\n");
- return INC_SUCCESS;
-}
-
-unsigned char INC_READY(unsigned char ucI2CID, unsigned int ulFreq)
-{
- unsigned short uStatus = 0;
- unsigned char bModeFlag = 0;
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
-
- if (ulFreq == 189008 || ulFreq == 196736 || ulFreq == 205280
- || ulFreq == 213008 || ulFreq == 180064 || ulFreq == 188928
- || ulFreq == 195936 || ulFreq == 204640 || ulFreq == 213360
- || ulFreq == 220352 || ulFreq == 222064 || ulFreq == 229072
- || ulFreq == 237488 || ulFreq == 180144 || ulFreq == 196144
- || ulFreq == 205296 || ulFreq == 212144 || ulFreq == 213856
- || ulFreq == 1466656 || ulFreq == 1475216 || ulFreq == 1482064
- || ulFreq == 1490624) {
- bModeFlag = 1;
- }
- if (m_ucRfBand == ROAMING_ENABLE)
- bModeFlag = 1;
-
- if (bModeFlag) {
- uStatus = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0xC6);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xC6, uStatus | 0x0008);
- uStatus = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0x41) & 0xFC00;
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x41, uStatus | 0x111);
- } else {
- uStatus = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0xC6);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xC6, uStatus & 0xFFF7);
- uStatus = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0x41) & 0xFC00;
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x41, uStatus | 0xCC);
-
- if (ulFreq == 1461520 || ulFreq == 1463232 || ulFreq == 1475216
- || ulFreq == 1485488) {
- uStatus = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0x40);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x40,
- uStatus | (1 << 10));
- } else {
- uStatus = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0x40);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x40,
- uStatus & ~(1 << 10));
- }
- }
-
- if (INC_RF500_START(ucI2CID, ulFreq, m_ucRfBand, m_ucPLL_Mode)
- != INC_SUCCESS) {
- pInfo->nBbpStatus = ERROR_READY;
- return INC_ERROR;
- }
-
- if (m_ucDPD_Mode == INC_DPD_OFF) {
- uStatus = INC_CMD_READ(ucI2CID, APB_RF_BASE + 0x03);
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0x03, uStatus | 0x80);
- }
-
- return INC_SUCCESS;
-}
-
-unsigned char INC_SYNCDETECTOR(unsigned char ucI2CID, unsigned int ulFreq,
- unsigned char ucScanMode)
-{
- unsigned short wOperState, wIsNullSync = 0, wSyncRefTime = 800;
- unsigned short uiTimeOutCnt = 0, uiRefSleep = 30;
- struct ST_BBPINFO *pInfo;
- unsigned short awData[2], uiRfNullTime = 240, wFftCnt = 0;
-
- pInfo = INC_GET_STRINFO(ucI2CID);
- INC_SCAN_SETTING(ucI2CID);
- if (m_ucDPD_Mode == INC_DPD_ON) {
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xA8, 0x3000);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xAA, 0x0000);
- }
-
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xBC, 0x4088);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x3A, 0x1);
- INC_DELAY(200);
- while (1) {
- if (pInfo->ucStop) {
- pInfo->nBbpStatus = ERROR_USER_STOP;
- break;
- }
-
- INC_DELAY(uiRefSleep);
-
- wOperState = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0x10);
- wOperState = ((wOperState & 0x7000) >> 12);
-
- if (!wIsNullSync && wOperState >= 0x2)
- wIsNullSync = 1;
-
- if (!wIsNullSync && wSyncRefTime != 1500) {
- awData[0] =
- INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0x14) & 0x0F00;
- awData[1] = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0x16);
-
- if (!awData[0] || !awData[1]) {
- pInfo->nBbpStatus = ERROR_SYNC_NO_SIGNAL;
- printk(KERN_DEBUG"TDMB Point 1\n");
- break;
- } else if (awData[0] <= 0x200 && awData[1] <= 0x4000) {
- pInfo->nBbpStatus = ERROR_SYNC_NO_SIGNAL;
- printk(KERN_DEBUG"TDMB Point 2\n");
- break;
- } else if (awData[0] >= 0x300) {
- if (++wFftCnt >= (uiRfNullTime / uiRefSleep)) {
- pInfo->nBbpStatus =
- ERROR_SYNC_NO_SIGNAL;
- printk(KERN_DEBUG"TDMB Point 3\n");
- break;
- } else if (awData[1] <= 0x4000) {
- if (++wFftCnt >=
- (uiRfNullTime / uiRefSleep)) {
- pInfo->nBbpStatus =
- ERROR_SYNC_NO_SIGNAL;
- printk(KERN_DEBUG"TDMB Point 4\n");
- break;
- }
- }
- }
- }
-
- if (wOperState >= 0x5) {
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xBC, 0x4008);
- return INC_SUCCESS;
- }
-
- uiTimeOutCnt++;
- if (uiTimeOutCnt >= (2500 / uiRefSleep)) {
- pInfo->nBbpStatus = ERROR_SYNC_TIMEOUT;
- break;
- }
- }
-
- return INC_ERROR;
-}
-
-void FILE_SAVE_FUNCTION(char *fname, unsigned char *pData,
- unsigned long dwDataSize)
-{
-#define DUMP_FILE_NAME "/data/ts_data.ts"
- mm_segment_t oldfs;
- int ret;
- static struct file *fp_ts_data;
-
- if (fp_ts_data == NULL) {
- fp_ts_data = filp_open(DUMP_FILE_NAME, O_APPEND | O_CREAT, 0);
- if (fp_ts_data == NULL) {
- printk(KERN_DEBUG"file open error!\n");
- return;
- }
- }
-
- oldfs = get_fs();
- set_fs(KERNEL_DS);
-
- if (fp_ts_data != NULL && dwDataSize == 0) {
- filp_close(fp_ts_data, current->files);
- fp_ts_data = NULL;
- return;
- }
- ret = fp_ts_data->f_op->write(fp_ts_data,
- pData, dwDataSize, &fp_ts_data->f_pos);
- set_fs(oldfs);
-}
-
-unsigned char INC_FICDECODER(unsigned char ucI2CID,
- enum ST_SIMPLE_FIC bSimpleFIC)
-{
- unsigned short wFicLen, uPeriodFrame, uFIBCnt, uiRefSleep;
- unsigned short nLoop, nFicCnt;
- unsigned char abyBuff[MAX_FIC_SIZE];
- struct ST_BBPINFO *pInfo;
-
-#ifdef USER_APPLICATION_TYPE
- unsigned char ucIsUserApp = INC_ERROR;
- struct ST_FICDB_LIST *pList;
- unsigned char ucTimeOutCnt = 0;
- pList = INC_GET_FICDB_LIST();
-#endif
-
- pInfo = INC_GET_STRINFO(ucI2CID);
-
- INC_INITDB(ucI2CID);
- uFIBCnt = INC_GET_FIB_CNT(m_ucTransMode);
- uPeriodFrame = INC_GET_FRAME_DURATION(m_ucTransMode);
- uiRefSleep = uPeriodFrame >> 2;
- nFicCnt = FIC_REF_TIME_OUT / uiRefSleep;
-
-#ifdef USER_APPLICATION_TYPE
- nFicCnt = (FIC_REF_TIME_OUT + 1000) / uiRefSleep;
-#endif
-
- for (nLoop = 0; nLoop < nFicCnt; nLoop++) {
- if (pInfo->ucStop == 1) {
- pInfo->nBbpStatus = ERROR_USER_STOP;
- break;
- }
-
- INC_DELAY(uiRefSleep);
-
- if (!(INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x00) & 0x4000))
- continue;
-
- wFicLen = INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x09);
- if (!wFicLen)
- continue;
- wFicLen++;
-
- if (wFicLen != (uFIBCnt * FIB_SIZE))
- continue;
- INC_CMD_READ_BURST(ucI2CID, APB_FIC_BASE, abyBuff, wFicLen);
- if (INC_FICPARSING(ucI2CID, abyBuff, wFicLen, bSimpleFIC)) {
- if (bSimpleFIC == SIMPLE_FIC_ENABLE)
- return INC_SUCCESS;
-
-#ifdef USER_APPLICATION_TYPE
- ucTimeOutCnt++;
-
- if (ucTimeOutCnt >= 10 && pList->nPacketCnt
- && (pList->nPacketCnt == pList->nUserAppCnt)) {
- return INC_SUCCESS;
- }
- ucIsUserApp = INC_SUCCESS;
-#else
-
- return INC_SUCCESS;
-#endif
- }
- }
-
-#ifdef USER_APPLICATION_TYPE
- if (ucIsUserApp == INC_SUCCESS)
- return INC_SUCCESS;
-#endif
- pInfo->nBbpStatus = ERROR_FICDECODER;
-
- return INC_ERROR;
-}
-
-unsigned char INC_START(unsigned char ucI2CID, struct ST_SUBCH_INFO *pChInfo,
- unsigned short IsEnsembleSame)
-{
- short nLoop, nSchID;
- unsigned short wData;
- struct ST_BBPINFO *pInfo;
- struct INC_CHANNEL_INFO *pTempChInfo;
-
- unsigned short wCeil = 0, wIndex = 0, wStartAddr, wEndAddr;
-
- pInfo = INC_GET_STRINFO(ucI2CID);
- INC_BUBBLE_SORT(pChInfo, INC_START_ADDRESS);
-
- INC_CMD_WRITE(ucI2CID, APB_DEINT_BASE + 0x01, 0x0000);
- wData = INC_CMD_READ(ucI2CID, APB_MPI_BASE + 0);
- INC_CMD_WRITE(ucI2CID, APB_MPI_BASE + 0, 0x8000 | wData);
- INC_CMD_WRITE(ucI2CID, APB_RS_BASE + 0x00, 0x0000);
-
- for (nLoop = 0; nLoop < 3; nLoop++) {
- if (nLoop >= pChInfo->nSetCnt) {
- INC_CMD_WRITE(ucI2CID,
- APB_DEINT_BASE + 0x02 + (nLoop * 2),
- 0x00);
- INC_CMD_WRITE(ucI2CID,
- APB_DEINT_BASE + 0x03 + (nLoop * 2),
- 0x00);
- INC_CMD_WRITE(ucI2CID, APB_VTB_BASE + 0x02 + nLoop,
- 0x00);
- continue;
- }
- pTempChInfo = &pChInfo->astSubChInfo[nLoop];
-
- nSchID = (unsigned short) pTempChInfo->ucSubChID & 0x3f;
- INC_CMD_WRITE(ucI2CID, APB_DEINT_BASE + 0x02 + (nLoop * 2),
- (unsigned short) (((unsigned short) nSchID << 10) +
- pTempChInfo->uiStarAddr));
-
- if (pTempChInfo->ucSlFlag == 0) {
- INC_CMD_WRITE(ucI2CID,
- APB_DEINT_BASE + 0x03 + (nLoop * 2),
- 0x8000 +
- (pTempChInfo->ucTableIndex & 0x3f));
- INC_CMD_WRITE(ucI2CID, APB_VTB_BASE + 0x02 + nLoop,
- (pTempChInfo->ucTableIndex & 0x3f));
- } else {
- INC_CMD_WRITE(ucI2CID,
- APB_DEINT_BASE + 0x03 + (nLoop * 2),
- 0x8000 + 0x400 + pTempChInfo->uiSchSize);
- wData = 0x8000 + ((pTempChInfo->ucOption & 0x7) << 12)
- + ((pTempChInfo->ucProtectionLevel & 0x3) << 10)
- + pTempChInfo->uiDifferentRate;
- INC_CMD_WRITE(ucI2CID, APB_VTB_BASE + 0x02 + nLoop,
- wData);
- }
-
- if (m_ucDPD_Mode == INC_DPD_ON) {
- switch (pInfo->ucTransMode) {
- case TRANSMISSION_MODE1:
- wCeil = 3072;
- wIndex = 4;
- break;
- case TRANSMISSION_MODE2:
- wCeil = 768;
- wIndex = 4;
- break;
- case TRANSMISSION_MODE3:
- wCeil = 384;
- wIndex = 9;
- break;
- case TRANSMISSION_MODE4:
- wCeil = 1536;
- wIndex = 4;
- break;
- default:
- wCeil = 3072;
- break;
- }
-
- wStartAddr =
- ((pTempChInfo->uiStarAddr * 64) / wCeil) + wIndex -
- 0;
- wEndAddr =
- (unsigned short) (((pTempChInfo->uiStarAddr +
- pTempChInfo->uiSchSize) * 64) /
- wCeil) + wIndex + 1;
- wData = (wStartAddr & 0xFF) << 8 | (wEndAddr & 0xFF);
-
- INC_CMD_WRITE(ucI2CID,
- APB_PHY_BASE + 0xAA + (nLoop * 2), wData);
- wData = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0xA8);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xA8,
- wData | (1 << nLoop));
- } else {
- INC_CMD_WRITE(ucI2CID,
- APB_PHY_BASE + 0xAA + (nLoop * 2),
- 0x0000);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0xA8, 0x3000);
- }
-
- wData = INC_CMD_READ(ucI2CID, APB_RS_BASE + 0x00);
- INC_CMD_WRITE(ucI2CID, APB_RS_BASE + 0x00,
- wData | (0x1 << (6 - nLoop)));
- }
-
- INC_SET_CHANNEL(ucI2CID, pChInfo);
- INC_CMD_WRITE(ucI2CID, APB_DEINT_BASE + 0x0, 0x0001);
- INC_CMD_WRITE(ucI2CID, APB_DEINT_BASE + 0x1, 0x0001);
-
- return INC_SUCCESS;
-}
-
-unsigned char INC_STOP(unsigned char ucI2CID)
-{
- short nLoop;
- unsigned short uStatus;
- enum ST_TRANSMISSION ucTransMode;
- struct ST_BBPINFO *pInfo;
-
- pInfo = INC_GET_STRINFO(ucI2CID);
- ucTransMode = pInfo->ucTransMode;
- memset(pInfo, 0, sizeof(struct ST_BBPINFO));
- pInfo->ucTransMode = ucTransMode;
-
- INC_CMD_WRITE(ucI2CID, APB_RS_BASE + 0x00, 0x0000);
-
- uStatus = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0x10) & 0x7000;
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x3B, 0x4000);
-
- INC_DELAY(25);
-
- for (nLoop = 0; nLoop < 10; nLoop++) {
- INC_DELAY(2);
- uStatus = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0x3B) & 0xFFFF;
- if (uStatus == 0x8000)
- break;
- }
-
- if (nLoop >= 10) {
- pInfo->nBbpStatus = ERROR_STOP;
- return INC_ERROR;
- }
-
- return INC_SUCCESS;
-}
-
-void INC_SCAN_SETTING(unsigned char ucI2CID)
-{
- unsigned short uStatus;
- uStatus = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0x41) & 0xFFF;
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x41, uStatus | 0xC000);
-
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0xB6, T3900_SCAN_IF_DELAY & 0xff);
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0xB5,
- (T3900_SCAN_IF_DELAY >> 8) & 0xff);
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0xB4,
- (T3900_SCAN_IF_DELAY >> 16) & 0xff);
-
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0xB3, T3900_SCAN_RF_DELAY & 0xff);
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0xB2,
- (T3900_SCAN_RF_DELAY >> 8) & 0xff);
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0xB1,
- (T3900_SCAN_RF_DELAY >> 16) & 0xff);
-}
-
-void INC_AIRPLAY_SETTING(unsigned char ucI2CID)
-{
- unsigned short uStatus;
- uStatus = INC_CMD_READ(ucI2CID, APB_PHY_BASE + 0x41) & 0xFFF;
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x41, uStatus | 0x4000);
-
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0xB6, T3900_PLAY_IF_DELAY & 0xff);
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0xB5,
- (T3900_PLAY_IF_DELAY >> 8) & 0xff);
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0xB4,
- (T3900_PLAY_IF_DELAY >> 16) & 0xff);
-
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0xB3, T3900_PLAY_RF_DELAY & 0xff);
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0xB2,
- (T3900_PLAY_RF_DELAY >> 8) & 0xff);
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + 0xB1,
- (T3900_PLAY_RF_DELAY >> 16) & 0xff);
-}
-
-unsigned char INC_CHANNEL_START(unsigned char ucI2CID,
- struct ST_SUBCH_INFO *pChInfo)
-{
- unsigned short wEnsemble;
- unsigned int ulRFFreq;
- struct ST_BBPINFO *pInfo;
-
- INC_INTERRUPT_SET(ucI2CID, INC_MPI_INTERRUPT_ENABLE);
- INC_INTERRUPT_CLEAR(ucI2CID, INC_MPI_INTERRUPT_ENABLE);
- pInfo = INC_GET_STRINFO(ucI2CID);
-
- pInfo->ucStop = 0;
- pInfo->nBbpStatus = ERROR_NON;
- ulRFFreq = pChInfo->astSubChInfo[0].ulRFFreq;
- wEnsemble = pInfo->ulFreq == ulRFFreq;
-
- printk
- (KERN_DEBUG"=== T3900 INC_CHANNEL_START ===\r\n");
- printk
- (KERN_DEBUG"== :: Frequency %6d[Khz] ==\r\n",
- pChInfo->astSubChInfo[0].ulRFFreq);
- printk
- (KERN_DEBUG"== :: stChInfo.ucSubChID 0x%.4X ==\r\n",
- pChInfo->astSubChInfo[0].ucSubChID);
- printk
- (KERN_DEBUG"== :: stChInfo.ucServiceType 0x%.4X ==\r\n",
- pChInfo->astSubChInfo[0].ucServiceType);
- printk
- (KERN_DEBUG"======================================\r\n");
-
- if (!wEnsemble) {
- if (INC_STOP(ucI2CID) != INC_SUCCESS)
- return INC_ERROR;
- printk(KERN_DEBUG" T3900 INC_STOP GOOD \r\n");
- if (INC_READY(ucI2CID, ulRFFreq) != INC_SUCCESS)
- return INC_ERROR;
- printk(KERN_DEBUG" T3900 INC_READY GOOD \r\n");
- if (INC_SYNCDETECTOR(ucI2CID, ulRFFreq, 0) != INC_SUCCESS)
- return INC_ERROR;
- printk(KERN_DEBUG" T3900 INC_SYNCDETECTOR GOOD \r\n");
- if (INC_FICDECODER(ucI2CID, SIMPLE_FIC_ENABLE) != INC_SUCCESS)
- return INC_ERROR;
- printk(KERN_DEBUG" T3900 INC_FICDECODER GOOD \r\n");
- if (INC_FIC_UPDATE(ucI2CID, pChInfo, SIMPLE_FIC_ENABLE) !=
- INC_SUCCESS)
- return INC_ERROR;
- printk(KERN_DEBUG" T3900 INC_FIC_UPDATE GOOD \r\n");
- if (INC_START(ucI2CID, pChInfo, wEnsemble) != INC_SUCCESS)
- return INC_ERROR;
- printk(KERN_DEBUG" T3900 INC_START GOOD \r\n");
- } else {
- if (INC_SYNCDETECTOR(ucI2CID, ulRFFreq, 0) != INC_SUCCESS) {
- pInfo->ulFreq = 0;
- return INC_ERROR;
- }
- printk(KERN_DEBUG" T3900 INC_SYNCDETECTOR GOOD \r\n");
- if (INC_FIC_UPDATE(ucI2CID, pChInfo, SIMPLE_FIC_ENABLE) !=
- INC_SUCCESS)
- return INC_ERROR;
-
- printk(KERN_DEBUG"T3900 INC_FIC_UPDATE GOOD \r\n");
- if (INC_START(ucI2CID, pChInfo, wEnsemble) != INC_SUCCESS)
- return INC_ERROR;
- printk(KERN_DEBUG"T3900 INC_START GOOD \r\n");
- }
-
- INC_AIRPLAY_SETTING(ucI2CID);
-
- pInfo->ucProtectionLevel = pChInfo->astSubChInfo[0].ucProtectionLevel;
- pInfo->ulFreq = ulRFFreq;
- return INC_SUCCESS;
-}
-
-unsigned char INC_CHANNEL_START_TEST(unsigned char ucI2CID,
- struct ST_SUBCH_INFO *pChInfo)
-{
- unsigned short wEnsemble;
- unsigned int ulRFFreq;
- struct ST_BBPINFO *pInfo;
-
- INC_INTERRUPT_SET(ucI2CID, INC_MPI_INTERRUPT_ENABLE);
- INC_INTERRUPT_CLEAR(ucI2CID, INC_MPI_INTERRUPT_ENABLE);
- pInfo = INC_GET_STRINFO(ucI2CID);
-
- pInfo->ucStop = 0;
- pInfo->nBbpStatus = ERROR_NON;
- ulRFFreq = pChInfo->astSubChInfo[0].ulRFFreq;
-
- wEnsemble = pInfo->ulFreq == ulRFFreq;
-
- INC_MSG_PRINTF(1,
- "================= T3900 INC_CHANNEL_START_TEST =================\r\n");
- INC_MSG_PRINTF(1,
- "== :: Frequency %6d[Khz] ==\r\n",
- pChInfo->astSubChInfo[0].ulRFFreq);
- INC_MSG_PRINTF(1,
- "== :: stChInfo.ucSubChID 0x%.4X ==\r\n",
- pChInfo->astSubChInfo[0].ucSubChID);
- INC_MSG_PRINTF(1,
- "== :: stChInfo.ucServiceType 0x%.4X ==\r\n",
- pChInfo->astSubChInfo[0].ucServiceType);
- INC_MSG_PRINTF(1,
- "===========================================================\r\n");
-
- if (!wEnsemble) {
- if (INC_STOP(ucI2CID) != INC_SUCCESS)
- return INC_ERROR;
- INC_MSG_PRINTF(1, " T3900 INC_STOP GOOD \r\n");
- if (INC_READY(ucI2CID, ulRFFreq) != INC_SUCCESS)
- return INC_ERROR;
- INC_MSG_PRINTF(1, " T3900 INC_READY GOOD \r\n");
- if (INC_SYNCDETECTOR(ucI2CID, ulRFFreq, 0) != INC_SUCCESS)
- return INC_ERROR;
- INC_MSG_PRINTF(1, " T3900 INC_SYNCDETECTOR GOOD \r\n");
- if (INC_FICDECODER(ucI2CID, SIMPLE_FIC_DISABLE) != INC_SUCCESS)
- return INC_ERROR;
- INC_MSG_PRINTF(1, " T3900 INC_FICDECODER GOOD \r\n");
- if (INC_FIC_UPDATE(ucI2CID, pChInfo, SIMPLE_FIC_ENABLE) !=
- INC_SUCCESS)
- return INC_ERROR;
- INC_MSG_PRINTF(1, " T3900 INC_FIC_UPDATE GOOD \r\n");
- if (INC_START(ucI2CID, pChInfo, wEnsemble) != INC_SUCCESS)
- return INC_ERROR;
- INC_MSG_PRINTF(1, " T3900 INC_START GOOD \r\n");
- } else {
-
- if (INC_SYNCDETECTOR(ucI2CID, ulRFFreq, 0) != INC_SUCCESS) {
- pInfo->ulFreq = 0;
- return INC_ERROR;
- }
- INC_MSG_PRINTF(1, " T3900 INC_SYNCDETECTOR GOOD \r\n");
- if (INC_FIC_UPDATE(ucI2CID, pChInfo, SIMPLE_FIC_ENABLE) !=
- INC_SUCCESS)
- return INC_ERROR;
- INC_MSG_PRINTF(1, " T3900 INC_FIC_UPDATE GOOD \r\n");
- if (INC_START(ucI2CID, pChInfo, wEnsemble) != INC_SUCCESS)
- return INC_ERROR;
- INC_MSG_PRINTF(1, " T3900 INC_START GOOD \r\n");
- }
-
- INC_AIRPLAY_SETTING(ucI2CID);
-
- pInfo->ucProtectionLevel = pChInfo->astSubChInfo[0].ucProtectionLevel;
- pInfo->ulFreq = ulRFFreq;
- return INC_SUCCESS;
-}
-
-unsigned char INC_ENSEMBLE_SCAN(unsigned char ucI2CID, unsigned int ulFreq)
-{
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
- pInfo->nBbpStatus = ERROR_NON;
- pInfo->ucStop = 0;
-
- printk(KERN_DEBUG"[TDMB_T3900] INC_ENSEMBLE_SCAN (%d)\n", ulFreq);
-
- if (INC_STOP(ucI2CID) != INC_SUCCESS)
- return INC_ERROR;
- printk(KERN_DEBUG"[TDMB_T3900] INC_STOP GOOD\n");
-
- if (INC_READY(ucI2CID, ulFreq) != INC_SUCCESS)
- return INC_ERROR;
- printk(KERN_DEBUG"[TDMB_T3900] INC_READY GOOD\n");
-
- if (INC_SYNCDETECTOR(ucI2CID, ulFreq, 1) != INC_SUCCESS)
- return INC_ERROR;
- printk(KERN_DEBUG" [TDMB_T3900]INC_SYNCDETECTOR GOOD\n");
-
- if (INC_FICDECODER(ucI2CID, SIMPLE_FIC_DISABLE) != INC_SUCCESS)
- return INC_ERROR;
- printk(KERN_DEBUG"[TDMB_T3900]INC_FICDECODER GOOD\n");
-
- return INC_SUCCESS;
-}
-
-unsigned char INC_FIC_RECONFIGURATION_HW_CHECK(unsigned char ucI2CID)
-{
- unsigned short wStatus, uiFicLen, wReconf;
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
-
- wStatus = (unsigned short) INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x00);
- if (!(wStatus & 0x4000))
- return INC_ERROR;
- uiFicLen = INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x09) + 1;
-
- if (uiFicLen != MAX_FIC_SIZE)
- return INC_ERROR;
- wReconf = (unsigned short) INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x0A);
-
- if (wReconf & 0xC0) {
- pInfo->ulReConfigTime =
- (unsigned short) (INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x0B) &
- 0xff) * 24;
- return INC_SUCCESS;
- }
- return INC_ERROR;
-}
-
-unsigned char INC_RE_SYNC(unsigned char ucI2CID)
-{
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x3B, 0x4000);
- INC_DELAY(24);
- INC_CMD_WRITE(ucI2CID, APB_PHY_BASE + 0x3A, 0x1);
-
- printk(KERN_DEBUG"[T3900]INC_RE_SYNC\n");
- return INC_SUCCESS;
-}
-
-unsigned short INC_RESYNC_CER(unsigned char ucI2CID)
-{
- unsigned short uiVtbErr, unCER;
- unsigned short uiVtbData;
-
- uiVtbErr = INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x06);
- uiVtbData = INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x08);
- unCER =
- (!uiVtbData) ? 0 : (unsigned short) ((unsigned int) (uiVtbErr * 10000) /
- (uiVtbData * 64));
- if (uiVtbErr == 0)
- unCER = 2000;
-
- printk(KERN_DEBUG"[T3900]INC_RESYNC_CER : %d\n", unCER);
- return unCER;
-}
-
-unsigned char INC_STATUS_CHECK(unsigned char ucI2CID)
-{
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
-
- if (INC_RESYNC_CER(ucI2CID) >= 1200)
- pInfo->ucCERCnt++;
- else
- pInfo->ucCERCnt = 0;
-
- if (pInfo->ucCERCnt >= INC_CER_PERIOD) {
- INC_RE_SYNC(ucI2CID);
- pInfo->ucCERCnt = 0;
- return INC_ERROR;
- }
-
- return INC_SUCCESS;
-}
-
-unsigned short INC_GET_CER(unsigned char ucI2CID)
-{
- short nBER, nLoop;
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
-
- if (pInfo->ucProtectionLevel == 0)
- nBER =
- (short) ((int)
- INC_CMD_READ(ucI2CID,
- APB_VTB_BASE + 0x07) * 77 / 100);
- else
- nBER = (short) INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x07);
- if (nBER == 0)
- nBER = 2000;
-
- if (nBER <= BER_REF_VALUE)
- pInfo->auiANTBuff[pInfo->uiInCAntTick++ % BER_BUFFER_MAX] = 0;
- else
- pInfo->auiANTBuff[pInfo->uiInCAntTick++ % BER_BUFFER_MAX] =
- (nBER - BER_REF_VALUE);
-
- for (nLoop = 0, pInfo->uiInCERAvg = 0; nLoop < BER_BUFFER_MAX; nLoop++)
- pInfo->uiInCERAvg += pInfo->auiANTBuff[nLoop];
-
- pInfo->uiInCERAvg /= BER_BUFFER_MAX;
-
- pInfo->uiCER = pInfo->uiInCERAvg;
- return pInfo->uiCER;
-}
-
-unsigned char INC_GET_ANT_LEVEL(unsigned char ucI2CID)
-{
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
- INC_GET_SNR(ucI2CID);
-
- if (pInfo->ucSnr > 16)
- pInfo->ucAntLevel = 6;
- else if (pInfo->ucSnr > 13)
- pInfo->ucAntLevel = 5;
- else if (pInfo->ucSnr > 10)
- pInfo->ucAntLevel = 4;
- else if (pInfo->ucSnr > 7)
- pInfo->ucAntLevel = 3;
- else if (pInfo->ucSnr > 5)
- pInfo->ucAntLevel = 2;
- else if (pInfo->ucSnr > 3)
- pInfo->ucAntLevel = 1;
- else
- pInfo->ucAntLevel = 0;
-
- return pInfo->ucAntLevel;
-}
-
-unsigned int INC_GET_PREBER(unsigned char ucI2CID)
-{
- unsigned short uiVtbErr;
- unsigned int uiVtbData;
- unsigned int uiPreBER;
-
- uiVtbErr = INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x06);
- uiVtbData = INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x08);
-
- uiPreBER =
- (!uiVtbData) ? 0 : ((unsigned int) uiVtbErr / (uiVtbData * 64));
-
- return uiPreBER;
-}
-
-unsigned int INC_GET_POSTBER(unsigned char ucI2CID)
-{
- unsigned short uiRSErrBit;
- unsigned short uiRSErrTS;
- unsigned short uiError, uiRef;
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
-
- uiRSErrBit = INC_CMD_READ(ucI2CID, APB_RS_BASE + 0x02);
- uiRSErrTS = INC_CMD_READ(ucI2CID, APB_RS_BASE + 0x03);
- uiRSErrBit += (uiRSErrTS * 8);
-
- if (uiRSErrTS == 0) {
- uiError = ((uiRSErrBit * 50) / 1000);
- uiRef = 0;
- if (uiError > 50)
- uiError = 50;
- } else if ((uiRSErrTS > 0) && (uiRSErrTS < 10)) {
- uiError = ((uiRSErrBit * 10) / 2400);
- uiRef = 50;
- if (uiError > 50)
- uiError = 50;
- } else if ((uiRSErrTS >= 10) && (uiRSErrTS < 30)) {
- uiError = ((uiRSErrBit * 10) / 2400);
- uiRef = 60;
- if (uiError > 40)
- uiError = 40;
- } else if ((uiRSErrTS >= 30) && (uiRSErrTS < 80)) {
- uiError = ((uiRSErrBit * 10) / 2400);
- uiRef = 70;
- if (uiError > 30)
- uiError = 30;
- } else if ((uiRSErrTS >= 80) && (uiRSErrTS < 100)) {
- uiError = ((uiRSErrBit * 10) / 2400);
- uiRef = 80;
- if (uiError > 20)
- uiError = 20;
- } else {
- uiError = ((uiRSErrBit * 10) / 2400);
- uiRef = 90;
- if (uiError > 10)
- uiError = 10;
- }
-
- pInfo->ucVber = 100 - (uiError + uiRef);
- pInfo->uiPostBER = (unsigned int) uiRSErrTS / TS_ERR_THRESHOLD;
-
- return pInfo->uiPostBER;
-}
-
-unsigned char INC_GET_SNR(unsigned char ucI2CID)
-{
- unsigned short uiFftVal;
- struct ST_BBPINFO *pInfo;
- pInfo = INC_GET_STRINFO(ucI2CID);
- uiFftVal = INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x07);
-
- if (uiFftVal == 0)
- pInfo->ucSnr = 0;
- else if (uiFftVal < 11)
- pInfo->ucSnr = 20;
- else if (uiFftVal < 15)
- pInfo->ucSnr = 19;
- else if (uiFftVal < 20)
- pInfo->ucSnr = 18;
- else if (uiFftVal < 30)
- pInfo->ucSnr = 17;
- else if (uiFftVal < 45)
- pInfo->ucSnr = 16;
- else if (uiFftVal < 60)
- pInfo->ucSnr = 15;
- else if (uiFftVal < 75)
- pInfo->ucSnr = 14;
- else if (uiFftVal < 90)
- pInfo->ucSnr = 13;
- else if (uiFftVal < 110)
- pInfo->ucSnr = 12;
- else if (uiFftVal < 130)
- pInfo->ucSnr = 11;
- else if (uiFftVal < 150)
- pInfo->ucSnr = 10;
- else if (uiFftVal < 200)
- pInfo->ucSnr = 9;
- else if (uiFftVal < 300)
- pInfo->ucSnr = 8;
- else if (uiFftVal < 400)
- pInfo->ucSnr = 7;
- else if (uiFftVal < 500)
- pInfo->ucSnr = 6;
- else if (uiFftVal < 600)
- pInfo->ucSnr = 5;
- else if (uiFftVal < 700)
- pInfo->ucSnr = 4;
- else if (uiFftVal < 800)
- pInfo->ucSnr = 3;
- else if (uiFftVal < 900)
- pInfo->ucSnr = 2;
- else if (uiFftVal < 1000)
- pInfo->ucSnr = 1;
- else
- pInfo->ucSnr = 0;
-
- return pInfo->ucSnr;
-}
-
-#define INC_RSSI_STEP 5
-#define INC_ADC_STEP_MAX 18
-short INC_GET_RSSI(unsigned char ucI2CID)
-{
- short nLoop, nRSSI = 0;
- short nResolution, nGapVal;
- unsigned int uiAdcValue;
- unsigned short aRFAGCTable[INC_ADC_STEP_MAX][2] = {
-
- {100, 1199}
- ,
- {95, 1160}
- ,
- {90, 1085}
- ,
- {85, 1018}
- ,
-
- {80, 953}
- ,
- {75, 875}
- ,
- {70, 805}
- ,
- {65, 720}
- ,
- {60, 655}
- ,
-
- {55, 625}
- ,
- {50, 565}
- ,
- {45, 500}
- ,
- {40, 465}
- ,
- {35, 405}
- ,
-
- {30, 340}
- ,
- {25, 270}
- ,
- {20, 200}
- ,
- };
-
- uiAdcValue = (INC_CMD_READ(ucI2CID, APB_RF_BASE + 0xD4) >> 5) & 0x3FF;
- uiAdcValue = (short) ((117302 * (unsigned int) uiAdcValue) / 100000);
-
- if (!uiAdcValue)
- nRSSI = 0;
- else if (uiAdcValue >= aRFAGCTable[0][1])
- nRSSI = (short) aRFAGCTable[0][0];
- else if (uiAdcValue <= aRFAGCTable[INC_ADC_STEP_MAX - 1][1])
- nRSSI = (short) aRFAGCTable[INC_ADC_STEP_MAX - 1][0];
- else {
- for (nLoop = 1; nLoop < INC_ADC_STEP_MAX; nLoop++) {
- if (uiAdcValue < aRFAGCTable[nLoop][1]
- || uiAdcValue >= aRFAGCTable[nLoop - 1][1])
- continue;
-
- nResolution =
- (aRFAGCTable[nLoop - 1][1] -
- aRFAGCTable[nLoop][1]) / INC_RSSI_STEP;
- nGapVal = uiAdcValue - aRFAGCTable[nLoop][1];
- if (nResolution)
- nRSSI =
- (aRFAGCTable[nLoop][0]) +
- (nGapVal / nResolution);
- else
- nRSSI = (aRFAGCTable[nLoop][0]) + nGapVal;
- break;
- }
- }
- return nRSSI;
-}
-
-unsigned int YMDtoMJD(struct ST_DATE_T stDate)
-{
- unsigned short wMJD;
- unsigned int lYear, lMouth, lDay, L;
- unsigned int lTemp1, lTemp2;
-
- lYear = (unsigned int) stDate.usYear - (unsigned int) 1900;
- lMouth = stDate.ucMonth;
- lDay = stDate.ucDay;
-
- if (lMouth == 1 || lMouth == 2)
- L = 1;
- else
- L = 0;
-
- lTemp1 = (lYear - L) * 36525L / 100L;
- lTemp2 = (lMouth + 1L + L * 12L) * 306001L / 10000L;
-
- wMJD = (unsigned short) (14956 + lDay + lTemp1 + lTemp2);
-
- return wMJD;
-}
-
-void MJDtoYMD(unsigned short wMJD, struct ST_DATE_T *pstDate)
-{
- unsigned int lYear, lMouth, lTemp;
-
- lYear = (wMJD * 100L - 1507820L) / 36525L;
- lMouth =
- ((wMJD * 10000L - 149561000L) -
- (lYear * 36525L / 100L) * 10000L) / 306001L;
-
- pstDate->ucDay =
- (unsigned char) (wMJD - 14956L - (lYear * 36525L / 100L) -
- (lMouth * 306001L / 10000L));
-
- if (lMouth == 14 || lMouth == 15)
- lTemp = 1;
- else
- lTemp = 0;
-
- pstDate->usYear = (unsigned short) (lYear + lTemp + 1900);
- pstDate->ucMonth = (unsigned char) (lMouth - 1 - lTemp * 12);
-}
-
-void INC_DB_COPY(unsigned int ulFreq, short nCnt,
- struct INC_CHANNEL_INFO *pChInfo,
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent)
-{
- short nIndex;
- struct ST_FICDB_LIST *pList;
- pList = INC_GET_FICDB_LIST();
-
- for (nIndex = 0; nIndex < nCnt; nIndex++, pSvcComponent++, pChInfo++) {
-
- pChInfo->ulRFFreq = ulFreq;
- pChInfo->uiEnsembleID = pList->unEnsembleID;
- pChInfo->ucSubChID = pSvcComponent->ucSubChid;
- pChInfo->ucServiceType = pSvcComponent->ucDSCType;
- pChInfo->uiStarAddr = pSvcComponent->unStartAddr;
- pChInfo->uiTmID = pSvcComponent->ucTmID;
- pChInfo->ulServiceID = pSvcComponent->ulSid;
- pChInfo->uiPacketAddr = pSvcComponent->unPacketAddr;
- pChInfo->uiBitRate = pSvcComponent->uiBitRate;
- pChInfo->ucSlFlag = pSvcComponent->ucShortLong;
- pChInfo->ucTableIndex = pSvcComponent->ucTableIndex;
- pChInfo->ucOption = pSvcComponent->ucOption;
- pChInfo->ucProtectionLevel = pSvcComponent->ucProtectionLevel;
- pChInfo->uiDifferentRate = pSvcComponent->uiDifferentRate;
- pChInfo->uiSchSize = pSvcComponent->uiSubChSize;
- memcpy(pChInfo->aucEnsembleLabel, pList->aucEnsembleName,
- MAX_LABEL_CHAR);
- memcpy(pChInfo->aucLabel, pSvcComponent->aucLabels,
- MAX_LABEL_CHAR);
-
-#ifdef USER_APPLICATION_TYPE
- pChInfo->stUsrApp = pSvcComponent->stUApp;
-#endif
- }
-}
-
-unsigned char INC_DB_UPDATE(unsigned int ulFreq, struct ST_SUBCH_INFO *pDMB,
- struct ST_SUBCH_INFO *pDAB, struct ST_SUBCH_INFO *pDATA,
- struct ST_SUBCH_INFO *pFIDC)
-{
- struct INC_CHANNEL_INFO *pChInfo;
- struct ST_STREAM_INFO *pStreamInfo;
- struct ST_FICDB_LIST *pList;
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent;
-
- pList = INC_GET_FICDB_LIST();
-
- /**********************************************/
- /* DMB channel list update */
- /**********************************************/
- pStreamInfo = &pList->stDMB;
- pChInfo = &pDMB->astSubChInfo[pDMB->nSetCnt];
- pSvcComponent = pStreamInfo->astPrimary;
-
- if ((pStreamInfo->nPrimaryCnt + pDMB->nSetCnt) < MAX_SUBCH_SIZE) {
- INC_DB_COPY(ulFreq, pStreamInfo->nPrimaryCnt, pChInfo,
- pSvcComponent);
- pDMB->nSetCnt += pStreamInfo->nPrimaryCnt;
- }
-
- pSvcComponent = pStreamInfo->astSecondary;
- if ((pStreamInfo->nSecondaryCnt + pDMB->nSetCnt) < MAX_SUBCH_SIZE) {
- INC_DB_COPY(ulFreq, pStreamInfo->nSecondaryCnt, pChInfo,
- pSvcComponent);
- pDMB->nSetCnt += pStreamInfo->nSecondaryCnt;
- }
-
- /**********************************************/
- /* DAB channel list update */
- /**********************************************/
- pStreamInfo = &pList->stDAB;
- pChInfo = &pDAB->astSubChInfo[pDAB->nSetCnt];
- pSvcComponent = pStreamInfo->astPrimary;
- if ((pStreamInfo->nPrimaryCnt + pDAB->nSetCnt) < MAX_SUBCH_SIZE) {
- INC_DB_COPY(ulFreq, pStreamInfo->nPrimaryCnt, pChInfo,
- pSvcComponent);
- pDAB->nSetCnt += pStreamInfo->nPrimaryCnt;
- }
-
- pSvcComponent = pStreamInfo->astSecondary;
- if ((pStreamInfo->nSecondaryCnt + pDAB->nSetCnt) < MAX_SUBCH_SIZE) {
- INC_DB_COPY(ulFreq, pStreamInfo->nSecondaryCnt, pChInfo,
- pSvcComponent);
- pDAB->nSetCnt += pStreamInfo->nSecondaryCnt;
- }
-
- /**********************************************/
- /* DATA channel list update */
- /**********************************************/
- pStreamInfo = &pList->stDATA;
- pChInfo = &pDATA->astSubChInfo[pDATA->nSetCnt];
- pSvcComponent = pStreamInfo->astPrimary;
- if ((pStreamInfo->nPrimaryCnt + pDATA->nSetCnt) < MAX_SUBCH_SIZE) {
- INC_DB_COPY(ulFreq, pStreamInfo->nPrimaryCnt, pChInfo,
- pSvcComponent);
- pDATA->nSetCnt += pStreamInfo->nPrimaryCnt;
- }
-
- pSvcComponent = pStreamInfo->astSecondary;
- if ((pStreamInfo->nSecondaryCnt + pDATA->nSetCnt) < MAX_SUBCH_SIZE) {
- INC_DB_COPY(ulFreq, pStreamInfo->nSecondaryCnt, pChInfo,
- pSvcComponent);
- pDATA->nSetCnt += pStreamInfo->nSecondaryCnt;
- }
-
- /**********************************************/
- /* FIDC channel list update */
- /***********************************************/
- pStreamInfo = &pList->stFIDC;
- pChInfo = &pFIDC->astSubChInfo[pFIDC->nSetCnt];
- pSvcComponent = pStreamInfo->astPrimary;
- if ((pStreamInfo->nPrimaryCnt + pFIDC->nSetCnt) < MAX_SUBCH_SIZE) {
- INC_DB_COPY(ulFreq, pStreamInfo->nPrimaryCnt, pChInfo,
- pSvcComponent);
- pFIDC->nSetCnt += pStreamInfo->nPrimaryCnt;
- }
-
- pSvcComponent = pStreamInfo->astSecondary;
- if ((pStreamInfo->nSecondaryCnt + pFIDC->nSetCnt) < MAX_SUBCH_SIZE) {
- INC_DB_COPY(ulFreq, pStreamInfo->nSecondaryCnt, pChInfo,
- pSvcComponent);
- pFIDC->nSetCnt += pStreamInfo->nSecondaryCnt;
- }
-
- return INC_SUCCESS;
-}
-
-void INC_UPDATE_LIST(struct INC_CHANNEL_INFO *pUpDateCh,
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent)
-{
- pUpDateCh->uiStarAddr = pSvcComponent->unStartAddr;
- pUpDateCh->uiBitRate = pSvcComponent->uiBitRate;
- pUpDateCh->ucSlFlag = pSvcComponent->ucShortLong;
- pUpDateCh->ucTableIndex = pSvcComponent->ucTableIndex;
- pUpDateCh->ucOption = pSvcComponent->ucOption;
- pUpDateCh->ucProtectionLevel = pSvcComponent->ucProtectionLevel;
- pUpDateCh->uiDifferentRate = pSvcComponent->uiDifferentRate;
- pUpDateCh->uiSchSize = pSvcComponent->uiSubChSize;
-}
-
-unsigned char INC_FIC_UPDATE(unsigned char ucI2CID,
- struct ST_SUBCH_INFO *pChInfo,
- enum ST_SIMPLE_FIC bSimpleFIC)
-{
- short nLoop = 0, nIndex, nGetChCnt = 0;
- struct INC_CHANNEL_INFO *pUpDateCh;
- struct ST_STREAM_INFO *pStreamInfo;
- struct ST_FICDB_SERVICE_COMPONENT *pSvcComponent;
-
- for (nIndex = 0; nIndex < pChInfo->nSetCnt; nIndex++) {
- if (bSimpleFIC == SIMPLE_FIC_ENABLE) {
- pUpDateCh = &pChInfo->astSubChInfo[nIndex];
- pStreamInfo = &INC_GET_FICDB_LIST()->stDMB;
- pSvcComponent = pStreamInfo->astPrimary;
-
- for (nLoop = 0; nLoop < pStreamInfo->nPrimaryCnt;
- nLoop++, pSvcComponent++) {
- if (pUpDateCh->ucSubChID !=
- pSvcComponent->ucSubChid)
- continue;
- INC_UPDATE_LIST(pUpDateCh, pSvcComponent);
- nGetChCnt++;
- if (pChInfo->nSetCnt == nGetChCnt)
- return INC_SUCCESS;
- }
- }
- }
-
- for (nIndex = 0; nIndex < pChInfo->nSetCnt; nIndex++) {
- pUpDateCh = &pChInfo->astSubChInfo[nIndex];
-
- if (pUpDateCh->ucServiceType == 0x18) {
- pStreamInfo = &INC_GET_FICDB_LIST()->stDMB;
- pSvcComponent = pStreamInfo->astPrimary;
- for (nLoop = 0; nLoop < pStreamInfo->nPrimaryCnt;
- nLoop++, pSvcComponent++) {
- if (pUpDateCh->ucSubChID !=
- pSvcComponent->ucSubChid)
- continue;
- INC_UPDATE_LIST(pUpDateCh, pSvcComponent);
- nGetChCnt++;
- if (pChInfo->nSetCnt == nGetChCnt)
- return INC_SUCCESS;
- }
-
- pSvcComponent = pStreamInfo->astSecondary;
- for (nLoop = 0; nLoop < pStreamInfo->nSecondaryCnt;
- nLoop++, pSvcComponent++) {
- if (pUpDateCh->ucSubChID !=
- pSvcComponent->ucSubChid)
- continue;
- INC_UPDATE_LIST(pUpDateCh, pSvcComponent);
- nGetChCnt++;
- if (pChInfo->nSetCnt == nGetChCnt)
- return INC_SUCCESS;
- }
- } else {
- pStreamInfo = &INC_GET_FICDB_LIST()->stDAB;
- pSvcComponent = pStreamInfo->astPrimary;
- for (nLoop = 0; nLoop < pStreamInfo->nPrimaryCnt;
- nLoop++, pSvcComponent++) {
- if (pUpDateCh->ucSubChID !=
- pSvcComponent->ucSubChid)
- continue;
- INC_UPDATE_LIST(pUpDateCh, pSvcComponent);
- nGetChCnt++;
- if (pChInfo->nSetCnt == nGetChCnt)
- return INC_SUCCESS;
- }
-
- pSvcComponent = pStreamInfo->astSecondary;
- for (nLoop = 0; nLoop < pStreamInfo->nSecondaryCnt;
- nLoop++, pSvcComponent++) {
- if (pUpDateCh->ucSubChID !=
- pSvcComponent->ucSubChid)
- continue;
- INC_UPDATE_LIST(pUpDateCh, pSvcComponent);
- nGetChCnt++;
- if (pChInfo->nSetCnt == nGetChCnt)
- return INC_SUCCESS;
- }
-
- pStreamInfo = &INC_GET_FICDB_LIST()->stDATA;
- pSvcComponent = pStreamInfo->astPrimary;
- for (nLoop = 0; nLoop < pStreamInfo->nPrimaryCnt;
- nLoop++, pSvcComponent++) {
- if (pUpDateCh->ucSubChID !=
- pSvcComponent->ucSubChid)
- continue;
- INC_UPDATE_LIST(pUpDateCh, pSvcComponent);
- nGetChCnt++;
- if (pChInfo->nSetCnt == nGetChCnt)
- return INC_SUCCESS;
- }
-
- pSvcComponent = pStreamInfo->astSecondary;
- for (nLoop = 0; nLoop < pStreamInfo->nSecondaryCnt;
- nLoop++, pSvcComponent++) {
- if (pUpDateCh->ucSubChID !=
- pSvcComponent->ucSubChid)
- continue;
- INC_UPDATE_LIST(pUpDateCh, pSvcComponent);
- nGetChCnt++;
- if (pChInfo->nSetCnt == nGetChCnt)
- return INC_SUCCESS;
- }
- }
- }
-
- return INC_ERROR;
-}
-
-/* Samsung */
-unsigned short INC_GET_SAMSUNG_BER(unsigned char ucI2CID)
-{
- unsigned int uiVtbErr, uiVtbData;
- short nLoop, nCER;
- struct ST_BBPINFO *pInfo;
-
- pInfo = INC_GET_STRINFO(ucI2CID);
-
- uiVtbErr = INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x06);
- uiVtbData = INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x08);
-
- if (pInfo->ucProtectionLevel != 0)
- nCER = (short) ((((unsigned int) uiVtbErr * 89) / 1000) - 30);
- else
- nCER =
- (!uiVtbData) ? 0
- : (int) ((((unsigned int) uiVtbErr * 3394) /
- (uiVtbData * 32)) - 35);
- if (uiVtbData == 0)
- nCER = 2000;
- else {
- if (nCER <= 0)
- nCER = 0;
- }
-
- pInfo->auiBERBuff[pInfo->uiInCBERTick++ % BER_BUFFER_MAX] = nCER;
- pInfo->uiBerSum = 0;
- for (nLoop = 0; nLoop < BER_BUFFER_MAX; nLoop++)
- pInfo->uiBerSum += pInfo->auiBERBuff[nLoop];
-
- pInfo->uiBerSum /= BER_BUFFER_MAX;
- return pInfo->uiBerSum;
-}
-
-unsigned char INC_GET_SAMSUNG_ANT_LEVEL(unsigned char ucI2CID)
-{
- struct ST_BBPINFO *pInfo;
- unsigned short unCER, unLoop, unRefAntLevel = 0;
- unsigned short aunAntTable[7][2] = {
- {6, 400}
- ,
- {5, 550}
- ,
- {4, 700}
- ,
- {3, 850}
- ,
- {2, 900}
- ,
- {1, 1050}
- ,
- {0, 10000}
- ,
- };
- pInfo = INC_GET_STRINFO(ucI2CID);
- INC_GET_CER(ucI2CID);
- unCER = pInfo->uiInCERAvg;
- for (unLoop = 0; unLoop < 6; unLoop++) {
- if (unCER <= aunAntTable[unLoop][1]) {
- unRefAntLevel = aunAntTable[unLoop][0];
- break;
- }
- }
-
- if (pInfo->ucAntLevel == unRefAntLevel)
- pInfo->ucAntLevel = unRefAntLevel;
- else if (pInfo->ucAntLevel >= unRefAntLevel) {
- if ((pInfo->ucAntLevel - unRefAntLevel) >= 3)
- pInfo->ucAntLevel -= 2;
- else
- pInfo->ucAntLevel--;
- } else {
- if ((unRefAntLevel - pInfo->ucAntLevel) >= 3)
- pInfo->ucAntLevel += 2;
- else
- pInfo->ucAntLevel++;
- }
-
- printk(KERN_DEBUG"[T3900]ANT LEVEL %d BER AVG[%d]\n", pInfo->ucAntLevel,
- pInfo->uiInCERAvg);
- return pInfo->ucAntLevel;
-}
-
-unsigned short INC_GET_SAMSUNG_BER_FOR_FACTORY_MODE(unsigned char ucI2CID)
-{
- unsigned int uiVtbErr, uiVtbData;
- short nCER;
- short nBERValue;
- struct ST_BBPINFO *pInfo;
-
- pInfo = INC_GET_STRINFO(ucI2CID);
- uiVtbErr = INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x06);
- uiVtbData = INC_CMD_READ(ucI2CID, APB_VTB_BASE + 0x08);
-
- if (pInfo->ucProtectionLevel != 0) {
- nBERValue =
- (short) ((((unsigned int) uiVtbErr * 89) / 1000) - 30);
- if (uiVtbData == 0)
- nBERValue = 2000;
- if (nBERValue <= 0)
- nBERValue = 0;
- } else {
- nCER = (!uiVtbData) ? 0 :
- (int) ((((unsigned int) uiVtbErr * 3394) /
- (uiVtbData * 32)) - 35);
- if (uiVtbData == 0)
- nCER = 2000;
- else {
- if (nCER <= 0)
- nCER = 0;
- }
- nBERValue = nCER;
- }
- return nBERValue;
-}
diff --git a/drivers/media/tdmb/t3900/INC_RF_CTRL500.c b/drivers/media/tdmb/t3900/INC_RF_CTRL500.c
deleted file mode 100644
index cb5c43a..0000000
--- a/drivers/media/tdmb/t3900/INC_RF_CTRL500.c
+++ /dev/null
@@ -1,2544 +0,0 @@
-/*****************************************************************************
- Copyright(c) 2011 I&C Inc. All Rights Reserved
-
- File name : INC_RF_CTRL500.c
-
- Description :
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-*******************************************************************************/
-
-#include "INC_INCLUDES.h"
-static unsigned int g_uiKOREnsembleFullFreq[MAX_KOREABAND_FULL_CHANNEL] = {
-175280, 177008, 178736,
-181280, 183008, 184736,
-187280, 189008, 190736,
-193280, 195008, 196736,
-199280, 201008, 202736,
-205280, 207008, 208736,
-211280, 213008, 214736
-};
-
-static unsigned int g_uiKOREnsembleNormalFreq[MAX_KOREABAND_NORMAL_CHANNEL] = {
- 181280, 183008, 184736, 205280, 207008, 208736
-};
-static unsigned char g_acT3900KorI2CValue_12000
- [MAX_KOREABAND_FULL_CHANNEL][RF500_REG_CTRL] = {
- { 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x43, 0x4D, 0x04, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x70,
- 0x70, 0x80, 0x10, 0x00, 0xEE, 0xE0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x46, 0x4D, 0x10, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x70,
- 0x70, 0x80, 0x10, 0x00, 0xEE, 0xE0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xFF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x49, 0x4D, 0x1C, 0x9F, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x80,
- 0x60, 0x80, 0x10, 0x00, 0xCC, 0xC0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x4E, 0x4D, 0x1B, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xCC, 0xC0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x42, 0x4D, 0x07, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xBB, 0xB0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x45, 0x4D, 0x13, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xAA, 0xA0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x4A, 0x4D, 0x12, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xAA, 0xA0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x4D, 0x4D, 0x1E, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x41, 0x4D, 0x0A, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x46, 0x4D, 0x09, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x49, 0x4D, 0x15, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xFF, 0xC0, 0x50, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x4D, 0x4D, 0x01, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xFF, 0xC0, 0x50, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x18, 0x42, 0x4D, 0x00, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x18, 0x45, 0x4D, 0x0C, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x77, 0x70, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x18, 0x48, 0x4D, 0x18, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x18, 0x4D, 0x4D, 0x17, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x07, 0xD0,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x19, 0x41, 0x4D, 0x03, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x19, 0x44, 0x4D, 0x0F, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x4C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x19, 0x49, 0x4D, 0x0E, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x19, 0x4C, 0x4D, 0x1A, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x1A, 0x40, 0x4D, 0x06, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-};
-
-static unsigned char g_acT3900KorI2CValue_19200
- [MAX_KOREABAND_FULL_CHANNEL][RF500_REG_CTRL] = {
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x12, 0x41, 0x4D, 0x0C, 0xE8, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x70,
- 0x70, 0x80, 0x10, 0x00, 0xEE, 0xE0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x12, 0x44, 0x4D, 0x09, 0x11, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x70,
- 0x70, 0x80, 0x10, 0x00, 0xEE, 0xE0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xFF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x12, 0x47, 0x4D, 0x05, 0x3A, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x80,
- 0x60, 0x80, 0x10, 0x00, 0xCC, 0xC0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x12, 0x4B, 0x4D, 0x0C, 0xE8, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xCC, 0xC0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x1C, 0x45, 0x4D, 0x0D, 0x9A, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xBB, 0xB0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x13, 0x41, 0x4D, 0x05, 0x3A, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xAA, 0xA0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x13, 0x45, 0x4D, 0x0C, 0xE8, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xAA, 0xA0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x13, 0x48, 0x4D, 0x09, 0x11, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x13, 0x4B, 0x4D, 0x05, 0x3A, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x13, 0x4F, 0x4D, 0x0C, 0xE8, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x14, 0x42, 0x4D, 0x09, 0x12, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xFF, 0xC0, 0x50, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x14, 0x45, 0x4D, 0x05, 0x3A, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xFF, 0xC0, 0x50, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x14, 0x49, 0x4D, 0x0C, 0xE8, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x1F, 0x42, 0x4D, 0x0D, 0x9A, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x77, 0x70, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x14, 0x4F, 0x4D, 0x05, 0x3A, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x15, 0x43, 0x4D, 0x0C, 0xE8, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x04, 0x00,
- 0x2A, 0x4C, 0x4D, 0x12, 0x22, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x15, 0x49, 0x4D, 0x05, 0x3A, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x4C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x15, 0x4D, 0x4D, 0x0C, 0xE8, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x16, 0x40, 0x4D, 0x09, 0x11, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x5A, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x16, 0x43, 0x4D, 0x05, 0x3A, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-};
-
-static unsigned char g_acT3900KorI2CValue_24576
- [MAX_KOREABAND_FULL_CHANNEL][RF500_REG_CTRL] = {
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x43, 0x4D, 0x04, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x70,
- 0x70, 0x80, 0x10, 0x00, 0xEE, 0xE0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x46, 0x4D, 0x10, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x70,
- 0x70, 0x80, 0x10, 0x00, 0xEE, 0xE0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xFF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x49, 0x4D, 0x1C, 0x9F, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x80,
- 0x60, 0x80, 0x10, 0x00, 0xCC, 0xC0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x4E, 0x4D, 0x1B, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xCC, 0xC0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x42, 0x4D, 0x07, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xBB, 0xB0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x45, 0x4D, 0x13, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xAA, 0xA0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x4A, 0x4D, 0x12, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xAA, 0xA0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x0F, 0x43, 0x4D, 0x1F, 0x15, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x41, 0x4D, 0x0A, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x46, 0x4D, 0x09, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x49, 0x4D, 0x15, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xFF, 0xC0, 0x50, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x04, 0x00,
- 0x1F, 0x4C, 0x4D, 0x02, 0x2A, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xFF, 0xC0, 0x50, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x18, 0x42, 0x4D, 0x00, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x18, 0x45, 0x4D, 0x0C, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x77, 0x70, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x18, 0x48, 0x4D, 0x18, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x10, 0x49, 0x4D, 0x05, 0x15, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x19, 0x41, 0x4D, 0x03, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x19, 0x44, 0x4D, 0x0F, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x4C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x19, 0x49, 0x4D, 0x0E, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x02, 0x00,
- 0x11, 0x43, 0x4D, 0x07, 0x15, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x73, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x1A, 0x40, 0x4D, 0x06, 0xA0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-};
-
-static unsigned char
- g_acT3900KorI2CValue_27000
- [MAX_KOREABAND_FULL_CHANNEL][RF500_REG_CTRL] = {
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x43, 0x4D, 0x04, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x70,
- 0x70, 0x80, 0x10, 0x00, 0xEE, 0xE0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x46, 0x4D, 0x10, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x70,
- 0x70, 0x80, 0x10, 0x00, 0xEE, 0xE0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xFF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x49, 0x4D, 0x1C, 0x9F, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x80,
- 0x60, 0x80, 0x10, 0x00, 0xCC, 0xC0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x4E, 0x4D, 0x1B, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xCC, 0xC0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x42, 0x4D, 0x07, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xBB, 0xB0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x45, 0x4D, 0x13, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xAA, 0xA0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x4A, 0x4D, 0x12, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xAA, 0xA0, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x4D, 0x4D, 0x1E, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x41, 0x4D, 0x0A, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x46, 0x4D, 0x09, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x49, 0x4D, 0x15, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xFF, 0xC0, 0x50, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x4D, 0x4D, 0x01, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xFF, 0xC0, 0x50, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x18, 0x42, 0x4D, 0x00, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x18, 0x45, 0x4D, 0x0C, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x77, 0x70, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x18, 0x48, 0x4D, 0x18, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x18, 0x4D, 0x4D, 0x17, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x07, 0xD0,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x19, 0x41, 0x4D, 0x03, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x19, 0x44, 0x4D, 0x0F, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x4C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x19, 0x49, 0x4D, 0x0E, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x19, 0x4C, 0x4D, 0x1A, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x00, 0x1F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x72, 0xC0, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x1A, 0x40, 0x4D, 0x06, 0xA0, 0x01, 0xF4, 0xC1, 0x88, 0xEC,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xB0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x44,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x17,
- 0x17, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x10, 0x00, 0x0F, 0x0C,
- 0x00, 0xF3, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x02, 0x00,
- 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x10, 0xC0, 0x10, 0x00, 0x08, 0x1C, 0xC0, 0x22, 0x96,
- 0xA5, 0xE0, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x27, 0x10,
- 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-};
-
-static unsigned char
- g_acT3900KorI2CValue_27120
- [MAX_KOREABAND_FULL_CHANNEL][RF500_REG_CTRL] = {
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x13, 0x43, 0x4D, 0x0A, 0x97, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x70,
- 0x70, 0x80, 0x10, 0x00, 0xEE, 0xE0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x13, 0x46, 0x4D, 0x0C, 0x75, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x70,
- 0x70, 0x80, 0x10, 0x00, 0xEE, 0xE0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xFF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x13, 0x49, 0x4D, 0x0E, 0x54, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x80,
- 0x60, 0x80, 0x10, 0x00, 0xCC, 0xC0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x04, 0x00,
- 0x1A, 0x47, 0x4D, 0x1D, 0xE2, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xCC, 0xC0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x14, 0x41, 0x4D, 0x00, 0x48, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xBB, 0xB0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x14, 0x44, 0x4D, 0x02, 0x26, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xAA, 0xA0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x14, 0x48, 0x4D, 0x12, 0x3C, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x60,
- 0x60, 0x80, 0x10, 0x00, 0xAA, 0xA0, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x14, 0x4B, 0x4D, 0x14, 0x1B, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x14, 0x4E, 0x4D, 0x15, 0xF9, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x43, 0x4D, 0x06, 0x0F, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x50,
- 0x50, 0x80, 0x10, 0x00, 0x99, 0x90, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x46, 0x4D, 0x07, 0xEE, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xFF, 0xC0, 0x50, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x15, 0x49, 0x4D, 0x09, 0xCC, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xFF, 0xC0, 0x50, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x04, 0x00,
- 0x1D, 0x42, 0x4D, 0x0D, 0x2D, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x88, 0x80, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x40, 0x4D, 0x1B, 0xC0, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x77, 0x70, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x43, 0x4D, 0x1D, 0x9F, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x48, 0x4D, 0x0D, 0xB4, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x40,
- 0x40, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x04, 0x00,
- 0x1E, 0x44, 0x4D, 0x14, 0xC4, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x16, 0x4E, 0x4D, 0x11, 0x71, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x4C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x43, 0x4D, 0x01, 0x87, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x46, 0x4D, 0x03, 0x65, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-
- {
- 0x55, 0x9F, 0xF1, 0xF8, 0x02, 0x41, 0xFC, 0x00, 0x00, 0xC0,
- 0x00, 0x0C, 0xC3, 0x00, 0xC0, 0x40, 0x7F, 0x80, 0x03, 0xE8,
- 0x0C, 0xC0, 0x88, 0x33, 0x08, 0xF0, 0xF0, 0xD0, 0x03, 0x00,
- 0x17, 0x49, 0x4D, 0x05, 0x44, 0x03, 0xE8, 0xC1, 0x88, 0x08,
- 0xE0, 0x10, 0x40, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01,
- 0x00, 0x70, 0x4C, 0xF0, 0x8C, 0xF0, 0x80, 0xC0, 0xC0, 0x20,
- 0x20, 0x80, 0x10, 0x00, 0x66, 0x60, 0x33, 0x44, 0x48, 0x33,
- 0x6E, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x2B,
- 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x94, 0x44, 0x00, 0x15,
- 0x0F, 0x18, 0x18, 0x0E, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xB0,
- 0x68, 0x20, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x54,
- 0x0F, 0xAB, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x00, 0x03, 0x80,
- 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x06, 0x00,
- 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x80, 0x00, 0xF8, 0x18, 0x07, 0x80, 0x04, 0x00, 0xF8, 0xFE,
- 0xFE, 0x00, 0xF0, 0xBF, 0xC0, 0x80, 0x03, 0x00, 0x05, 0xDC,
- 0x00, 0x05, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,
- },
-};
-
-unsigned int INC_GET_KOREABAND_FULL_TABLE(unsigned short uiIndex)
-{
- if (uiIndex >= MAX_KOREABAND_FULL_CHANNEL)
- return 0xFFFF;
- return g_uiKOREnsembleFullFreq[uiIndex];
-}
-
-unsigned int INC_GET_KOREABAND_NORMAL_TABLE(unsigned short uiIndex)
-{
- if (uiIndex >= MAX_KOREABAND_NORMAL_CHANNEL)
- return 0xFFFF;
- return g_uiKOREnsembleNormalFreq[uiIndex];
-}
-
-unsigned short INC_FIND_KOR_FREQ(unsigned int ulFreq)
-{
- unsigned short uiLoop;
- for (uiLoop = 0; uiLoop < MAX_KOREABAND_FULL_CHANNEL; uiLoop++) {
- if (g_uiKOREnsembleFullFreq[uiLoop] == ulFreq)
- return uiLoop;
- }
- return 0xFFFF;
-}
-
-unsigned char INC_RF500_I2C_WRITE(unsigned char ucI2CID, unsigned char *pucData,
- unsigned int uLength)
-{
- short nLoop;
- for (nLoop = 0; nLoop < (short) uLength; nLoop++) {
- INC_CMD_WRITE(ucI2CID, APB_RF_BASE + nLoop,
- (unsigned short) pucData[nLoop]);
- }
- return INC_SUCCESS;
-}
-
-unsigned char INC_RF500_START(unsigned char ucI2CID, unsigned int ulRFChannel,
- enum ENSEMBLE_BAND ucBand, enum PLL_MODE ucPLL)
-{
- unsigned short uiPos;
- unsigned char *pDataBuff = INC_NULL;
- if (ucBand == KOREA_BAND_ENABLE) {
- uiPos = INC_FIND_KOR_FREQ(ulRFChannel);
- if (uiPos == 0xFFFF)
- return INC_ERROR;
- switch (ucPLL) {
- case INPUT_CLOCK_12000KHZ:
- pDataBuff = g_acT3900KorI2CValue_12000[uiPos];
- break;
- case INPUT_CLOCK_19200KHZ:
- pDataBuff = g_acT3900KorI2CValue_19200[uiPos];
- break;
- case INPUT_CLOCK_24576KHZ:
- pDataBuff = g_acT3900KorI2CValue_24576[uiPos];
- break;
- case INPUT_CLOCK_27000KHZ:
- pDataBuff = g_acT3900KorI2CValue_27000[uiPos];
- break;
- case INPUT_CLOCK_27120KHZ:
- pDataBuff = g_acT3900KorI2CValue_27120[uiPos];
- break;
- default:
- pDataBuff = g_acT3900KorI2CValue_19200[uiPos];
- break;
- }
- } else if (ucBand == EXTERNAL_ENABLE)
- return INC_SUCCESS;
-
- else
- return INC_ERROR;
-
- if (pDataBuff == INC_NULL)
- return INC_ERROR;
- if (INC_RF500_I2C_WRITE(ucI2CID, pDataBuff, RF500_REG_CTRL) ==
- INC_ERROR)
- return INC_ERROR;
- return INC_SUCCESS;
-}
diff --git a/drivers/media/tdmb/t3900/Makefile b/drivers/media/tdmb/t3900/Makefile
deleted file mode 100644
index 2483ed5..0000000
--- a/drivers/media/tdmb/t3900/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-obj-y += INC_FICDEC.o
-obj-y += INC_INTERFACE.o
-obj-y += INC_PROCESS.o
-obj-y += INC_RF_CTRL500.o
-
-ccflags-y += -Idrivers/media/tdmb
diff --git a/drivers/media/tdmb/tcc3170/Makefile b/drivers/media/tdmb/tcc3170/Makefile
deleted file mode 100644
index ba12099..0000000
--- a/drivers/media/tdmb/tcc3170/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-obj-y += src/
-#obj-y += tcbd.o
-
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcpal
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcbd_diagnosis
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcbd_stream_parser
-
diff --git a/drivers/media/tdmb/tcc3170/inc/tcbd_api_common.h b/drivers/media/tdmb/tcc3170/inc/tcbd_api_common.h
deleted file mode 100644
index f798610..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcbd_api_common.h
+++ /dev/null
@@ -1,365 +0,0 @@
-/*
- * tcbd_api_common.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCBD_API_COMMON_H__
-#define __TCBD_API_COMMON_H__
-#include "tcbd_drv_register.h"
-#include "tcbd_diagnosis.h"
-
-/**
- * @defgroup ProtectionType
- */
-/**@{*/
-#define PROTECTION_TYPE_UEP 0
-#define PROTECTION_TYPE_EEP 1
-/**@}*/
-
-/**
- * @defgroup ProtectionLevel
- * Protection type UEP
- * <table>
- * <tr><td>UEP1</td><td>UEP2</td><td>UEP3</td><td>UEP4</td></tr>
- * <tr><td>0x00</td><td>0x01</td><td>0x02</td><td>0x03</td></tr></table>
- *
- * Protection type EEP
- * <table>
- * <tr><td>EEP1A</td><td>EEP2A</td><td>EEP3A</td><td>EEP4A</td>
- * <td>EEP1B</td><td>EEP2B</td><td>EEP3B</td><td>EEP4B</td></tr>
- * <tr><td>0x00</td><td>0x01</td><td>0x02</td><td>0x03</td>
- * <td>0x04</td><td>0x05</td><td>0x06</td><td>0x07</td></tr>
- */
-
-/*
- * @defgroup ServiceType
- * Service type for each sub-channel.
- */
-/** @{*/
-#define SERVICE_TYPE_DAB 0x01
-#define SERVICE_TYPE_DABPLUS 0x02
-#define SERVICE_TYPE_DATA 0x03
-#define SERVICE_TYPE_DMB 0x04
-#define SERVICE_TYPE_FIC 0x07
-#define SERVICE_TYPE_FIC_WITH_ERR 0x08
-#define SERVICE_TYPE_EWS 0x09
-/**@}*/
-
-
-
-/**
- * @defgroup Bitrate
- * If protection type is UEP, the values of bitrate are as following.
- * <table>
- * <tr><td>Kbps</td>
- * <td>32</td><td>48</td><td>56</td><td>64</td><td>80</td>
- * <td>96</td><td>112</td><td>128</td><td>160</td><td>192</td>
- * <td>224</td><td>256</td><td>320</td><td>384</td></tr>
- * <tr><td>value</td>
- * <td>0x00</td><td>0x01</td><td>0x02</td><td>0x03</td><td>0x04</td>
- * <td>0x05</td><td>0x06</td><td>0x07</td><td>0x08</td><td>0x09</td>
- * <td>0x0A</td><td>0x0B</td><td>0x0C</td><td>0x0D</td></tr>
- * </table>
- *
- * If protection type is EEP, the values of bitrate are as following.
- * <table>
- * <tr><td>kbps</td>
- * <td>1</td><td>2</td><td>3</td><td>...</td><td>126</td></tr>
- * <tr><td>value</td>
- * <td>0x01</td><td>0x02</td><td>0x03</td><td>...</td><td>0x7E</td><tr>
- * </table>
- * 0x00
- */
-
-/**
- * @defgroup ServiceInformation
- */
-struct tcbd_service {
- s32 type; /**< Type of service. Please refer to @ref ServiceType*/
- s32 ptype; /**< Type of protection Please refer to @ref ProtectionType*/
- s32 subch_id; /**< Sub-channel id */
- s32 size_cu; /**< Size of CU(Capacity Unit) or sub-channel size*/
- s32 start_cu; /**< Start address of CU(Capacity Unit) */
- s32 reconfig; /**< Must be set 0x02*/
- s32 rs_on; /**< If type is DMB, it must be 0x01, or else 0x00 */
- s32 plevel; /**< Protection level Please refer @ref ProtectionLevel*/
- s32 bitrate; /**< Bitrate. Please refer @ref Bitrate*/
-};
-
-/**
- * @defgroup PreripheralType
- * types of interface to read stream
- */
-/** @{*/
-enum tcbd_peri_type {
- PERI_TYPE_SPI_SLAVE = 1, /**< The stream can be read
- * using SPI(slave) */
- PERI_TYPE_SPI_MASTER, /**< The stream can be read
- * using SPI(master) */
- PERI_TYPE_PTS, /**< The stream can be read using PTS */
- PERI_TYPE_STS, /**< The stream can be read using STS */
- PERI_TYPE_HPI, /**< The stream can be read using HPI */
- PERI_TYPE_SPI_ONLY /**< The stream can be read using SPI.
- * And command use same SPI interface. */
-};
-/**@}*/
-
-enum tcbd_band_type {
- BAND_TYPE_BAND3 = 1, /**< band III */
- BAND_TYPE_LBAND /**< L band */
-};
-
-enum tcbd_div_io_type {
- DIV_IO_TYPE_SINGLE = 0,
- DIV_IO_TYPE_DUAL,
-};
-
-enum tcbd_intr_mode {
- INTR_MODE_LEVEL_HIGH, /**< Interrupt will be trigered at high level */
- INTR_MODE_LEVEL_LOW, /**< Interrupt will be trigered at low level */
- INTR_MODE_EDGE_RISING, /**< Interrupt will be trigered at rising edge */
- INTR_MODE_EDGE_FALLING /**< Interrupt will be trigered at falling edge */
-};
-
-/**
- * @defgroup OscillatorType
- * supported types of oscillator
- */
-/** @{*/
-enum tcbd_clock_type {
- CLOCK_19200KHZ,
- CLOCK_24576KHZ,
- CLOCK_38400KHZ,
- CLOCK_MAX
-};
-/**}@*/
-
-struct tcbd_multi_service {
- s32 on_air[TCBD_MAX_NUM_SERVICE];
- s32 service_idx[TCBD_MAX_NUM_SERVICE];
- s32 service_count;
- u32 service_info[TCBD_MAX_NUM_SERVICE*2];
-};
-
-struct tcbd_device {
- u8 chip_addr; /**< Chip address for diversity or dual mode*/
- u32 main_clock;
- u8 processor; /**< Activated interrnal processor */
-
- u32 selected_buff;
- u32 selected_stream;
- u8 en_cmd_fifo;
- u32 intr_threshold; /**< Interrupt threshold */
-#if defined(__READ_VARIABLE_LENGTH__)
- u32 size_more_read;
-#endif /*__READ_VARIABLE_LENGTH__*/
- enum tcbd_clock_type clock_type;
- enum tcbd_peri_type peri_type; /**< Peripheral type for stream */
- enum tcbd_band_type curr_band;
- enum tcbd_band_type prev_band;
-
- s32 frequency; /**< Last set frequency */
- s32 is_pal_irq_en;
- u8 enabled_irq;
- struct tcbd_multi_service mult_service; /**< Registered service
- infomation */
-};
-
-/**
- * Change the type of stream. Types are
- * - DMB : STREAM_TYPE_DMB
- * - DAB : STREAM_TYPE_DAB
- * - FIC : STREAM_TYPE_FIC
- * - STATUS : STREAM_TYPE_STATUS
- *
- * You can combine the above types. For more information @ref TypesOfStream
- * @param _device Instance of device
- * @param _type type of stream
- *
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_change_stream_type(
- struct tcbd_device *_device, u32 _type);
-
-TCBB_FUNC s32 tcbd_enable_irq(
- struct tcbd_device *_device, u8 _en_bit);
-TCBB_FUNC s32 tcbd_disable_irq(
- struct tcbd_device *_device, u8 _mask);
-
-/**
- * @brief Change the mode of interrupt.
- * @param _device Instance of device
- * @param _mode Interrupt mode. For more information of mode.
- * Please refer @tcbd_intr_mode
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_change_irq_mode(
- struct tcbd_device *_device, enum tcbd_intr_mode _mode);
-
-/**
- * @brief read interrupt and error status.
- * @param _device instance of device
- * @param _irq_status interrupt status of buffer. Please @ref InterruptStatus
- * @param _err_status error status of buffer. Please @ref ErrorStatus
- */
-TCBB_FUNC s32 tcbd_read_irq_status(
- struct tcbd_device *_device, u8 *_irq_status, u8 *_err_status);
-
-/**
- * @brief clear interrupt status.
- * @param _device instance of device
- * @param _status status of interrupt. Please @ref InterruptClear
- */
-TCBB_FUNC s32 tcbd_clear_irq(
- struct tcbd_device *_device, u8 _status);
-
-/**
- * @brief select interface to read stream.
- * @param _device instance of device
- * @param _peri_type interface type @ref PreripheralType
- */
-TCBB_FUNC s32 tcbd_select_peri(
- struct tcbd_device *_device, enum tcbd_peri_type _peri_type);
-
-#define ENABLE_CMD_FIFO 1
-#define DISABLE_CMD_FIFO 0
-
-/**
- * Initialize stream configuration.
- * @param _device Instance of device.
- * @param _use_cmd_fifo
- * Determin whether or not to use command FIFO when you read
- * stream. If you use SPI interface to read stream, you
- * should use ENABLE_CMD_FIFO.
- * - ENABLE_CMD_FIFO
- * - DISABLE_CMD_FIFO
- * @param _buffer_mask
- * Mask unused buffer.
- * For more information, please refer @ref StreamDataConfig
- * @param _threshold
- * Threshold for triggering interrupt. The threshold can be
- * set up to 8Kbyes. If you use STS, this value is meaningless.
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_init_stream_data_config(
- struct tcbd_device *_device,
- u8 _use_cmd_fifo,
- u8 _buffer_mask,
- u32 _threshold);
-
-/**
- * Tune frequency.
- * @param _device Instance of device
- * @param _freq_khz frequency
- * @param _bw_khz bandwidth
- *
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_tune_frequency(
- struct tcbd_device *_device, u32 _freq_khz, s32 _bw_khz);
-
-
-/**
- * @brief wait until the frequency is tuned.
- * @param _device Instance of device
- * @param _status Status.
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_wait_tune(
- struct tcbd_device *_device, u8 *_status);
-
-
-/**
- * @brief register service(short argument)
- * @param _device instance of device
- * @param _subch_id sub channel id
- * @param _data_mode 0:DAB,DATA 1:DMB
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_register_service(
- struct tcbd_device *_device, u8 _subch_id, u8 _data_mode);
-
-/**
- * @brief register service(long argument).
- * @param _device Instance of device
- * @param _service Sub channel information. @ref ServiceInformation
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_register_service_long(
- struct tcbd_device *_device, struct tcbd_service *_service);
-
-/**
- * @brief unregister sub channel.
- * @param _device instance of device
- * @param _subch_id sub channel information previously registered.
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_unregister_service(
- struct tcbd_device *_device, u8 _subch_id);
-
-/**
- * @brief read tream from device
- * @param _device instance of device
- * @param _buff buffer for stream
- * @param _size size of buffer. size must bigger then
- * interrupt threshold(TCBD_MAX_THRESHOLD)
- *
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_read_stream(
- struct tcbd_device *_device, u8 *_buff, s32 *_size);
-
-/**
- * @brief read fic data from internal buffer(I2C/STS interface only)
- * @param _device instance of device
- * @param _buff buffer for fic data.
- * @param _size size of buffer. _size must be 384 bytes.
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_read_fic_data(
- struct tcbd_device *_device, u8 *_buff, s32 _size);
-
-/**
- * @brief read signal quality.
- * @param _device instance of device
- * @param _status_data instance of struct tcbd_status_data
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_read_signal_info(
- struct tcbd_device *_device, struct tcbd_status_data *_status_data);
-
-/**
- * @brief _device instance of device.
- * @param _comp_en internal processor to enable
- * @param _comp_rst internal processor to reset
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_reset_ip(
- struct tcbd_device *_device, u8 _comp_en, u8 _comp_rst);
-
-/**
- * @brief start device.
- * @param _device instance of device
- * @param _clock_type oscillator clock type @ref OscillatorType
- * @return success 0, fail -@ref ListOfErrorCode
- */
-TCBB_FUNC s32 tcbd_device_start(
- struct tcbd_device *_device, enum tcbd_clock_type _clock_type);
-#endif /*__TCBD_API_COMMON_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcbd_diagnosis/tcbd_diagnosis.h b/drivers/media/tdmb/tcc3170/inc/tcbd_diagnosis/tcbd_diagnosis.h
deleted file mode 100644
index 7e53f0d..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcbd_diagnosis/tcbd_diagnosis.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * tcbd_diagnosis.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCBD_DIAGNOSIS_H__
-#define __TCBD_DIAGNOSIS_H__
-
-/* 0 agc, 1 cto, 2 cfo, 3 fto, 4 sync, 5, ofdm */
-#define TCBD_LOCK_AGC 0x01
-#define TCBD_LOCK_CTO 0x02
-#define TCBD_LOCK_CFO 0x03
-#define TCBD_LOCK_FTO 0x04
-#define TCBD_LOCK_SYNC 0x10
-#define TCDD_LOCK_OFDM 0x20
-
-struct tcbd_status_data {
- u8 lock;
- s32 rssi;
- s32 snr;
- s32 snr_moving_avg;
- s32 pcber;
- s32 pcber_moving_avg;
- s32 vber;
- s32 vber_moving_avg;
- s32 ts_error_count;
- s32 tsper;
- s32 tsper_moving_avg;
-};
-
-TCBB_FUNC void tcbd_update_status(
- u8 *_rawData, u32 size, struct tcbd_status_data *_status_data);
-TCBB_FUNC void tcbd_init_status_manager(void);
-
-#endif /*__TCBD_SIGNAL_INFO_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcbd_drv_io.h b/drivers/media/tdmb/tcc3170/inc/tcbd_drv_io.h
deleted file mode 100644
index b09d9ca..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcbd_drv_io.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * tcbd_drv_io.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCBD_DRV_COMMON_H__
-#define __TCBD_DRV_COMMON_H__
-#include "tcbd_drv_register.h"
-#include "tcbd_error.h"
-
-#define MB_HOSTMAIL 0x47
-#define MB_SLAVEMAIL 0x74
-
-#define DEFAULT_CHIP_ADDRESS 0x50
-struct tcbd_io_data {
- s32 chip_addr;
- u32 sem;
- s32 (*open)(void);
- s32 (*close)(void);
- s32 (*reg_write)(u8 _addr, u8 _data);
- s32 (*reg_read)(u8 _addr, u8 *_data);
- s32 (*reg_write_burst_cont)(u8 _addr, u8 *_data, s32 _size);
- s32 (*reg_read_burst_cont)(u8 _addr, u8 *_data, s32 _size);
- s32 (*reg_write_burst_fix)(u8 _addr, u8 *_data, s32 _size);
- s32 (*reg_read_burst_fix)(u8 _addr, u8 *_data, s32 _size);
-};
-
-#define MAX_MAIL_COUNT 7
-#define MAX_TIME_TO_WAIT_MAIL 1000
-struct tcbd_mail_data {
- u8 flag;
- u8 count;
- u16 cmd;
- u32 status;
- u32 data[MAX_MAIL_COUNT];
- u8 pad[2];
-};
-
-TCBB_FUNC struct tcbd_io_data *tcbd_get_io_struct(void);
-TCBB_FUNC void tcpal_set_i2c_io_function(void);
-TCBB_FUNC void tcpal_set_cspi_io_function(void);
-
-TCBB_FUNC s32 tcbd_io_open(struct tcbd_device *_device);
-TCBB_FUNC s32 tcbd_io_close(struct tcbd_device *_device);
-
-TCBB_FUNC s32 tcbd_reg_read(
- struct tcbd_device *_handle, u8 _addr, u8 *_data);
-TCBB_FUNC s32 tcbd_reg_write(
- struct tcbd_device *_handle, u8 _addr, u8 _data);
-TCBB_FUNC s32 tcbd_reg_read_burst_cont(
- struct tcbd_device *_handle, u8 _addr, u8 *_data, s32 _size);
-TCBB_FUNC s32 tcbd_reg_write_burst_cont(
- struct tcbd_device *_handle, u8 _addr, u8 *_data, s32 _size);
-TCBB_FUNC s32 tcbd_reg_read_burst_fix(
- struct tcbd_device *_handle, u8 _addr, u8 *_data, s32 _size);
-TCBB_FUNC s32 tcbd_reg_write_burst_fix(
- struct tcbd_device *_handle, u8 _addr, u8 *_data, s32 _size);
-TCBB_FUNC s32 tcbd_mem_write(
- struct tcbd_device *_handle, u32 _addr, u8 *_data, u32 _size);
-TCBB_FUNC s32 tcbd_mem_read(
- struct tcbd_device *_handle, u32 _addr, u8 *_data, u32 _size);
-TCBB_FUNC s32 tcbd_rf_reg_write(
- struct tcbd_device *_handle, u8 _addr, u32 _data);
-TCBB_FUNC s32 tcbd_rf_reg_read(
- struct tcbd_device *_handle, u32 _addr, u32 *_data);
-
-TCBB_FUNC s32 tcbd_send_mail(struct tcbd_device *_device,
- struct tcbd_mail_data *_mail);
-TCBB_FUNC s32 tcbd_recv_mail(struct tcbd_device *_device,
- struct tcbd_mail_data *_mail);
-TCBB_FUNC s32 tcbd_read_mail_box(struct tcbd_device *_device, u16 cmd,
- s32 len, u32 *data);
-TCBB_FUNC s32 tcbd_write_mail_box(struct tcbd_device *_device, u16 _cmd,
- s32 _cnt, u32 *_data);
-TCBB_FUNC s32 tcbd_read_file(struct tcbd_device *_device, char *_path,
- u8 *_buff, s32 _size);
-extern struct spi_device *spi_dmb; /* sukjoon_temp */
-#endif /*__TCBD_DRV_COMMON_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcbd_drv_ip.h b/drivers/media/tdmb/tcc3170/inc/tcbd_drv_ip.h
deleted file mode 100644
index 7789d1c..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcbd_drv_ip.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * tcbd_drv_ip.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCBD_DRV_IP_H__
-#define __TCBD_DRV_IP_H__
-
-enum tcbd_remap_type {
- EP_RAM0_RAM1 = 0, /**< Ep can access RAM0 and RAM1 */
- EP_RAM0_RAM1_PC0, /**< Ep can access RAM0, RAM1 and initial pc is 0 */
- OP_RAM0_RAM1_PC2, /**< Op can access RAM0, RAM1 and initial pc is 0x2000*/
- OP_RAM0_EP_RAM1_PC2 /**< Op can access RAM0. Ep can access RAM1.
- * Initial pc is 0x2000 */
-};
-
-TCBB_FUNC s32 tcbd_send_spur_data(
- struct tcbd_device *_device, s32 _freq_khz);
-TCBB_FUNC s32 tcbd_send_agc_data(
- struct tcbd_device *_device, enum tcbd_band_type _band_type);
-TCBB_FUNC s32 tcbd_send_frequency(
- struct tcbd_device *_device, s32 _freq_khz);
-TCBB_FUNC s32 tcbd_send_service_info(struct tcbd_device *_device);
-
-TCBB_FUNC s32 tcbd_get_rom_version(
- struct tcbd_device *_device, u32 *_bootVersion);
-
-TCBB_FUNC s32 tcbd_enable_buffer(struct tcbd_device *_device);
-TCBB_FUNC s32 tcbd_disable_buffer(struct tcbd_device *_device);
-TCBB_FUNC s32 tcbd_init_buffer_region(struct tcbd_device *_device);
-TCBB_FUNC s32 tcbd_change_memory_view(
- struct tcbd_device *_device, enum tcbd_remap_type _remap);
-
-TCBB_FUNC s32 tcbd_demod_tune_frequency(
- struct tcbd_device *_device, u32 _freq_khz, s32 _bw_khz);
-
-TCBB_FUNC s32 tcbd_dsp_cold_start(struct tcbd_device *_device);
-TCBB_FUNC s32 tcbd_dsp_warm_start(struct tcbd_device *_device);
-
-TCBB_FUNC s32 tcbd_change_chip_addr(
- struct tcbd_device *_device, u8 addr);
-TCBB_FUNC s32 tcbd_enable_slave_command_ack(
- struct tcbd_device *_device);
-
-TCBB_FUNC s32 tcbd_enable_peri(struct tcbd_device *_device);
-TCBB_FUNC s32 tcbd_disable_peri(struct tcbd_device *_device);
-TCBB_FUNC s32 tcbd_init_bias_key(struct tcbd_device *_device);
-TCBB_FUNC u32 tcbd_get_osc_clock(struct tcbd_device *_device);
-TCBB_FUNC s32 tcbd_init_pll(
- struct tcbd_device *_device, enum tcbd_clock_type _clock_type);
-TCBB_FUNC s32 tcbd_init_div_io(
- struct tcbd_device *_device, enum tcbd_div_io_type _div_io);
-TCBB_FUNC s32 tcbd_init_dsp(
- struct tcbd_device *_device, u8 *_boot_code, s32 _size);
-
-TCBB_FUNC s32 tcbd_check_dsp_status(struct tcbd_device *_device);
-
-#define FILTER_ENABLE (1<<2)
-#define FILTER_SYNCERR (1<<3)
-TCBB_FUNC s32 tcbd_set_pid_filter(struct tcbd_device *_device, u32 _filter);
-#endif /*__TCBD_DRV_IP_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcbd_drv_register.h b/drivers/media/tdmb/tcc3170/inc/tcbd_drv_register.h
deleted file mode 100644
index ca80812..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcbd_drv_register.h
+++ /dev/null
@@ -1,558 +0,0 @@
-/*
- * tcbd_drv_register.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCBD_DRV_REGISTER_H__
-#define __TCBD_DRV_REGISTER_H__
-
-#define Bit31 0x80000000
-#define Bit30 0x40000000
-#define Bit29 0x20000000
-#define Bit28 0x10000000
-#define Bit27 0x08000000
-#define Bit26 0x04000000
-#define Bit25 0x02000000
-#define Bit24 0x01000000
-#define Bit23 0x00800000
-#define Bit22 0x00400000
-#define Bit21 0x00200000
-#define Bit20 0x00100000
-#define Bit19 0x00080000
-#define Bit18 0x00040000
-#define Bit17 0x00020000
-#define Bit16 0x00010000
-#define Bit15 0x00008000
-#define Bit14 0x00004000
-#define Bit13 0x00002000
-#define Bit12 0x00001000
-#define Bit11 0x00000800
-#define Bit10 0x00000400
-#define Bit9 0x00000200
-#define Bit8 0x00000100
-#define Bit7 0x00000080
-#define Bit6 0x00000040
-#define Bit5 0x00000020
-#define Bit4 0x00000010
-#define Bit3 0x00000008
-#define Bit2 0x00000004
-#define Bit1 0x00000002
-#define Bit0 0x00000001
-#define BitNONE 0x00000000
-
-#define TCBD_SYS_EN 0x00
-#define TCBD_SYS_RESET 0x01
-#define TCBD_IRQ_MODE 0x02
-#define TCBD_IRQ_EN 0x03
-#define TCBD_IRQ_STAT_CLR 0x04
-#define TCBD_IRQ_ERROR 0x05
-#define TCBD_IRQ_LATCH 0x05
-#define TCBD_PLL_6 0x06
-#define TCBD_PLL_7 0x07
-#define TCBD_PLL_8 0x08
-#define TCBD_PLL_9 0x09
-#define TCBD_CHIPADDR 0x0a
-#define TCBD_PROGRAMID 0x0b
-#define TCBD_CHIPID 0x0c
-#define TCBD_INIT_REMAP 0x0d
-#define TCBD_INIT_PC 0x0e
-
-#define TCBD_GPIO_ALT 0x10
-#define TCBD_GPIO_DR 0x12
-#define TCBD_GPIO_LR 0x14
-#define TCBD_GPIO_DRV 0x16
-#define TCBD_GPIO_PE 0x18
-#define TCBD_DIVIO 0x1a
-
-#define TCBD_STREAM_CFG0 0x1b
-#define TCBD_STREAM_CFG1 0x1c
-#define TCBD_STREAM_CFG2 0x1d
-#define TCBD_STREAM_CFG3 0x1e
-#define TCBD_STREAM_CFG4 0x1f
-
-#define TCBD_CMDDMA_CTRL 0x20
-#define TCBD_CMDDMA_SADDR 0x21
-#define TCBD_CMDDMA_SIZE 0x27
-#define TCBD_CMDDMA_STARTCTRL 0x29
-#define TCBD_CMDDMA_DATA_WIND 0x2a
-#define TCBD_TGTBUFF_CIR_MODE 0x2b
-#define TCBD_CMDDMA_CRC32 0x2c
-
-#define TCBD_PERI_CTRL 0x30
-#define TCBD_PERI_MODE0 0x31
-#define TCBD_PERI_MODE1 0x32
-#define TCBD_PERI_MODE2 0x33
-#define TCBD_PERI_MODE3 0x34
-#define TCBD_PERI_TEST0 0x37
-#define TCBD_PERI_TEST1 0x38
-#define TCBD_PERI_TEST2 0x39
-#define TCBD_PERI_TEST3 0x3a
-#define TCBD_PERI_TEST4 0x3b
-
-#define TCBD_MAIL_CTRL 0x3c
-#define TCBD_MAIL_FIFO_R 0x3d
-#define TCBD_MAIL_FIFO_R_LATCH 0x3d
-#define TCBD_MAIL_FIFO_W 0x3e
-#define TCBD_MAIL_FIFO_W_LATCH 0x3e
-#define TCBD_MAIL_FIFO_WIND 0x3f
-
-#define TCBD_I2CMST_CTRL 0x40
-#define TCBD_I2CMST_FILTER 0x41
-#define TCBD_I2CMST_PRER_H 0x42
-#define TCBD_I2CMST_PRER_L 0x43
-#define TCBD_I2CMST_DEV_ADDR 0x44
-#define TCBD_I2CMST_TGT_ADDR 0x45
-#define TCBD_I2CMST_TXRX 0x46
-#define TCBD_I2CMST_AUTOCONFIG 0x47
-#define TCBD_I2CMST_START 0x48
-#define TCBD_I2CMST_STAT0 0x49
-#define TCBD_I2CMST_STAT1 0x4A
-
-#define TCBD_STREAMMIX_CFG0 0x4D
-
-#define TCBD_OBUFF_CONFIG 0x4e
-#define TCBD_OBUFF_INIT 0x4f
-#define TCBD_OBUFF_A_SADDR 0x50
-#define TCBD_OBUFF_A_EADDR 0x52
-#define TCBD_OBUFF_A_FIFO_THR 0x54
-#define TCBD_OBUFF_A_CIRBUFF_DATA_ADDR 0x54
-#define TCBD_OBUFF_A_FIFO_STAT 0x56
-#define TCBD_OBUFF_A_CIRBUFF_DATA_SIZE 0x56
-#define TCBD_OBUFF_B_SADDR 0x58
-#define TCBD_OBUFF_B_EADDR 0x5a
-#define TCBD_OBUFF_B_FIFO_THR 0x5c
-#define TCBD_OBUFF_B_CIRBUFF_DATA_ADDR 0x5c
-#define TCBD_OBUFF_B_FIFO_STAT 0x5e
-#define TCBD_OBUFF_B_CIRBUFF_DATA_SIZE 0x5e
-#define TCBD_OBUFF_C_SADDR 0x60
-#define TCBD_OBUFF_C_EADDR 0x62
-#define TCBD_OBUFF_C_FIFO_THR 0x64
-#define TCBD_OBUFF_C_CIRBUFF_DATA_ADDR 0x64
-#define TCBD_OBUFF_C_FIFO_STAT 0x66
-#define TCBD_OBUFF_C_CIRBUFF_DATA_SIZE 0x66
-#define TCBD_OBUFF_D_SADDR 0x68
-#define TCBD_OBUFF_D_EADDR 0x6a
-#define TCBD_OBUFF_D_FIFO_THR 0x6c
-#define TCBD_OBUFF_D_CIRBUFF_DATA_ADDR 0x6c
-#define TCBD_OBUFF_D_FIFO_STAT 0x6e
-#define TCBD_OBUFF_D_CIRBUFF_DATA_SIZE 0x6e
-
-#define TCBD_RF_CFG0 0x70
-#define TCBD_RF_CFG1 0x71
-#define TCBD_RF_CFG2 0x72
-#define TCBD_RF_CFG3 0x73
-#define TCBD_RF_CFG4 0x74
-#define TCBD_RF_CFG5 0x75
-#define TCBD_RF_CFG6 0x76
-#define TCBD_OP_DEBUG0 0x78
-#define TCBD_OP_DEBUG1 0x79
-#define TCBD_OP_DEBUG2 0x7a
-#define TCBD_OP_LDO_CONFIG 0x7b
-#define TCBD_OP_XTAL_BIAS 0x7c
-#define TCBD_OP_XTAL_BIAS_KEY 0x7d
-#define TCBD_OP_STATUS0 0x7e
-#define TCBD_OP_STATUS1 0x7f
-
-
-#define TCBD_SYS_COMP_DSP Bit1
-#define TCBD_SYS_COMP_EP Bit0
-#define TCBD_SYS_COMP_ALL (Bit0|Bit1)
-
-#define TCBD_IRQ_MODE_PAD_ENABLE Bit2
-#define TCBD_IRQ_MODE_TRIGER Bit1
-#define TCBD_IRQ_MODE_LEVEL BitNONE
-#define TCBD_IRQ_MODE_RISING Bit0
-#define TCBD_IRQ_MODE_FALLING BitNONE
-#define TCBD_IRQ_EN_FIFODINIT Bit7
-#define TCBD_IRQ_EN_FIFOCINIT Bit6
-#define TCBD_IRQ_EN_FIFOBINIT Bit5
-#define TCBD_IRQ_EN_FIFOAINIT Bit4
-#define TCBD_IRQ_EN_DATAINT Bit3
-#define TCBD_IRQ_EN_I2C Bit1
-#define TCBD_IRQ_EN_MAILBOX Bit0
-
-/*
- * @DEFGROUP INTERRUPTSTATUS
- * BIT POSTION OF INTERRUPT.
- * @{
- */
-#define TCBD_IRQ_STAT_FIFODINIT Bit7
-#define TCBD_IRQ_STAT_FIFOCINIT Bit6
-#define TCBD_IRQ_STAT_FIFOBINIT Bit5
-#define TCBD_IRQ_STAT_FIFOAINIT Bit4
-#define TCBD_IRQ_STAT_DATAINT Bit3
-#define TCBD_IRQ_STAT_I2C Bit1
-#define TCBD_IRQ_STAT_MAILBOX Bit0
-/**}@*/
-
-
-/*
- * @defgroup InterruptClear
- * bit position of insterrupt clear. if you done processing interrupt
- * then you must clear corresponding bit.
- * @{
- */
-#define TCBD_IRQ_STATCLR_FIFODINIT Bit7
-#define TCBD_IRQ_STATCLR_FIFOCINIT Bit6
-#define TCBD_IRQ_STATCLR_FIFOBINIT Bit5
-#define TCBD_IRQ_STATCLR_FIFOAINIT Bit4
-#define TCBD_IRQ_STATCLR_DATAINT Bit3
-#define TCBD_IRQ_STATCLR_I2C Bit1
-#define TCBD_IRQ_STATCLR_MAILBOX Bit0
-#define TCBD_IRQ_STATCLR_ALL (Bit0|Bit1|Bit3|Bit4|Bit5|Bit6|Bit7)
-/**}@*/
-
-
-/*
- * @defgroup ErrorStatus
- * error status of interrupt.
- * if buffer overflow occurs then this bit is set.
- * @{
- */
-#define TCBD_IRQ_ERROR_FIFOD Bit7
-#define TCBD_IRQ_ERROR_FIFOC Bit6
-#define TCBD_IRQ_ERROR_FIFOB Bit5
-#define TCBD_IRQ_ERROR_FIFOA Bit4
-#define TCBD_IRQ_ERROR_DATA Bit3
-#define TCBD_IRQ_ERROR_I2C Bit1
-#define TCBD_IRQ_ERROR_MAILBOX Bit0
-/**}@*/
-#define TCBD_I2CREPEAT_EN Bit2
-#define TCBD_I2CREPEAT_MODE_CONTINUE BitNONE
-#define TCBD_I2CREPEAT_MODE_ONESHOT Bit1
-#define TCBD_I2CREPEAT_SCL_CMOS BitNONE
-#define TCBD_I2CREPEAT_SCL_OPENDRAIN Bit0
-#define TCBD_I2CREPEAT_START Bit0
-#define TCBD_I2CREPEAT_STARTCTRL 0x4F
-
-#define TCBD_CMDDMA_DMAEN Bit7
-#define TCBD_CMDDMA_CIRCULARMODE Bit5
-#define TCBD_CMDDMA_CRC32EN Bit4
-#define TCBD_CMDDMA_ADDRFIX Bit3
-#define TCBD_CMDDMA_WRITEMODE Bit2
-#define TCBD_CMDDMA_READMODE BitNONE
-#define TCBD_CMDDMA_BYTEMSB Bit1
-#define TCBD_CMDDMA_BITMSB Bit0
-#define TCBD_CMDDMA_START_AUTOCLR Bit7
-#define TCBD_CMDDMA_CRC32INIT_AUTOCLR Bit1
-#define TCBD_CMDDMA_INIT_AUTOCLR Bit0
-
-#define TCBD_TGTBUFF_DEFAULT BitNONE
-#define TCBD_TGTBUFF_CIR_MODE_C (Bit0|Bit1)
-#define TCBD_TGTBUFF_CIR_MODE_B Bit1
-#define TCBD_TGTBUFF_CIR_MODE_A Bit0
-
-#define TCBD_PERI_EN Bit7
-#define TCBD_PERI_SEL_SPI Bit4
-#define TCBD_PERI_SEL_TS Bit5
-#define TCBD_PERI_SEL_HPI (Bit4|Bit5)
-#define TCBD_PERI_SEL_OTHER BitNONE
-#define TCBD_PERI_INIT_AUTOCLR Bit1
-#define TCBD_PERI_HEADER_ON Bit0
-#define TCBD_PERI_SPI_TISSP Bit7
-#define TCBD_PERI_SPI_MOTOROLA_SSP BitNONE
-#define TCBD_PERI_SPI_SLAVE Bit6
-#define TCBD_PERI_SPI_MASTER BitNONE
-#define TCBD_PERI_SPI_FASTON Bit5
-#define TCBD_PERI_SPI_SIZE8BITB it0
-#define TCBD_PERI_SPI_SIZE16BIT Bit1
-#define TCBD_PERI_SPI_SIZE32BIT BitNONE
-#define TCBD_PERI_TS_MSM_SLAVE Bit1
-#define TCBD_PERI_TS_NORMAL_SLAVE BitNONE
-#define TCBD_PERI_TS_STS BitNONE
-#define TCBD_PERI_TS_PTS Bit6
-#define TCBD_PERI_TS_FASTON Bit5
-#define TCBD_PERI_TS_TSCLKMASKON Bit4
-#define TCBD_PERI_HPI_INTEL Bit7
-#define TCBD_PERI_HPI_MOTOROLA BitNONE
-#define TCBD_PERI_HPI_BYTEMSB Bit6
-#define TCBD_PERI_HPI_BITMSB Bit5
-#define TCBD_PERI_SPI_CLKINIT_LOW BitNONE
-#define TCBD_PERI_SPI_CLKINIT_HIGH Bit7
-#define TCBD_PERI_SPI_CLKPOL_POS BitNONE
-#define TCBD_PERI_SPI_CLKPOL_NEG Bit6
-#define TCBD_PERI_SPI_BYTEMSB1 Bit5
-#define TCBD_PERI_SPI_BITMSB1 Bit4
-#define TCBD_PERI_TS_CLKPHASE_POS BitNONE
-#define TCBD_PERI_TS_CLKPHASE_NEG Bit7
-#define TCBD_PERI_TS_SYNC_ACTIVEHIGH BitNONE
-#define TCBD_PERI_TS_SYNC_ACTIVELOW Bit6
-#define TCBD_PERI_TS_ENPOL_ACTIVEHIGH BitNONE
-#define TCBD_PERI_TS_ENPOL_ACTIVELOW Bit5
-#define TCBD_PERI_TS_STREAM_WAIT_ON Bit4
-#define TCBD_PERI_TS_BYTEMSB Bit7
-#define TCBD_PERI_TS_BITMSB Bit6
-#define TCBD_PERI_TS_ERR_POL Bit1
-#define TCBD_PERI_TS_ERR_SIG_ON Bit0
-#define TCBD_PERI_TS_ERR_SIG_OFF BitNONE
-#define TCBD_PERI_TEST0_START Bit7
-#define TCBD_PERI_TEST0_CIRCULAR_EN Bit2
-#define TCBD_PERI_TEST0_TESTMODE Bit1
-#define TCBD_PERI_TEST0_FIXMODE Bit0
-
-#define TCBD_MAIL_INIT Bit6
-#define TCBD_MAIL_HOSTMAILPOST Bit5
-#define TCBD_MAIL_OPACCEPTEN Bit4
-
-#define TCBD_I2CMST_INIT Bit7
-#define TCBD_I2CMST_EN Bit2
-#define TCBD_I2CMST_NORMALMODE BitNONE
-#define TCBD_I2CMST_AUTOMODE Bit1
-#define TCBD_I2CMST_SCL_CMOS BitNONE
-#define TCBD_I2CMST_SCL_OPENDRAIN Bit0
-#define TCBD_I2CMST_DEV_ADDR_WRITE BitNONE
-#define TCBD_I2CMST_DEV_ADDR_READ Bit0
-#define TCBD_I2CMST_AUTOCONFIG_CMDQUE_ADD Bit7
-#define TCBD_I2CMST_AUTOCONFIG_CMDQUE_INIT Bit6
-#define TCBD_I2CMST_AUTOCONFIG_CMDQUE_CNT4 Bit4
-#define TCBD_I2CMST_AUTOCONFIG_CMDQUE_CNT3 Bit3
-#define TCBD_I2CMST_AUTOCONFIG_CMDQUE_CNT2 Bit2
-#define TCBD_I2CMST_AUTOCONFIG_CMDQUE_CNT1 Bit1
-#define TCBD_I2CMST_AUTOCONFIG_CMDQUE_CNT0 Bit0
-#define TCBD_I2CMST_AUTOSTART Bit7
-#define TCBD_I2CMST_NORMALSTART Bit4
-#define TCBD_I2CMST_NORMALSTOP Bit3
-#define TCBD_I2CMST_NORMALREAD Bit2
-#define TCBD_I2CMST_NORMALWRITE Bit1
-#define TCBD_I2CMST_NORMALACK Bit0
-#define TCBD_I2CMST_STAT0_NORMAL_ACKIN Bit7
-#define TCBD_I2CMST_STAT0_NORMAL_DONE Bit6
-#define TCBD_I2CMST_STAT0_ARBIT_LOST Bit5
-#define TCBD_I2CMST_STAT0_SDA Bit1
-#define TCBD_I2CMST_STAT0_SCL Bit0
-#define TCBD_I2CMST_STAT1_AUTOERR Bit7
-#define TCBD_I2CMST_STAT1_AUTODONE Bit6
-#define TCBD_I2CMST_STAT1_ARBIT_LOST Bit5
-#define TCBD_I2CMST_STAT1_RXRFIFOCNT4 Bit4
-#define TCBD_I2CMST_STAT1_RXRFIFOCNT3 Bit3
-#define TCBD_I2CMST_STAT1_RXRFIFOCNT2 Bit2
-#define TCBD_I2CMST_STAT1_RXRFIFOCNT1 Bit1
-#define TCBD_I2CMST_STAT1_RXRFIFOCNT0 Bit0
-
-#define TCBD_RF_MANAGE_ENABLE Bit1
-#define TCBD_RF_MANAGE_DISABLE BitNONE
-#define TCBD_RF_READ BitNONE
-#define TCBD_RF_WRITE Bit0
-#define TCBD_RF_ACTION Bit0
-
-#define TCBD_OBUFF_CONFIG_BUFF_D_EN Bit7
-#define TCBD_OBUFF_CONFIG_BUFF_C_EN Bit6
-#define TCBD_OBUFF_CONFIG_BUFF_B_EN Bit5
-#define TCBD_OBUFF_CONFIG_BUFF_A_EN Bit4
-#define TCBD_OBUFF_CONFIG_BUFF_D_CIRCULAR BitNONE
-#define TCBD_OBUFF_CONFIG_BUFF_C_CIRCULAR BitNONE
-#define TCBD_OBUFF_CONFIG_BUFF_B_CIRCULAR BitNONE
-#define TCBD_OBUFF_CONFIG_BUFF_A_CIRCULAR BitNONE
-#define TCBD_OBUFF_CONFIG_BUFF_D_FIFO Bit3
-#define TCBD_OBUFF_CONFIG_BUFF_C_FIFO Bit2
-#define TCBD_OBUFF_CONFIG_BUFF_B_FIFO Bit1
-#define TCBD_OBUFF_CONFIG_BUFF_A_FIFO Bit0
-#define TCBD_OBUFF_DBUFF_STATLATCH Bit7
-#define TCBD_OBUFF_CBUFF_STATLATCH Bit6
-#define TCBD_OBUFF_BBUFF_STATLATCH Bit5
-#define TCBD_OBUFF_ABUFF_STATLATCH Bit4
-#define TCBD_OBUFF_BUFF_D_INIT Bit3
-#define TCBD_OBUFF_BUFF_C_INIT Bit2
-#define TCBD_OBUFF_BUFF_B_INIT Bit1
-#define TCBD_OBUFF_BUFF_A_INIT Bit0
-
-/**
- * @defgroup StreamDataConfig
- * You can mask unused buffer by @ref tcbd_init_stream_data_config
- */
-/** @{*/
-#define STREAM_DATA_ENABLE Bit7
-#define STREAM_HEADER_ON Bit6
-#define STREAM_MASK_BUFFERD Bit3
-#define STREAM_MASK_BUFFERC Bit2
-#define STREAM_MASK_BUFFERB Bit1
-#define STREAM_MASK_BUFFERA Bit0
-
-#define STREAM_BUFFER_ALL (\
- STREAM_DATA_ENABLE | \
- STREAM_HEADER_ON | \
- STREAM_MASK_BUFFERD | \
- STREAM_MASK_BUFFERC | \
- STREAM_MASK_BUFFERB | \
- STREAM_MASK_BUFFERA)
-/**@}*/
-
-#define STREAM_CMD_FIFO_MSB Bit0
-#define STREAM_CMD_FIFO_ENABLE Bit1
-#define STREAM_CMD_FIFO_INIT Bit4
-#define STREAM_LATCH_TOTAL_SIZE Bit5
-
-/**
- * @defgroup TypesOfStream
- * Types of stream.
- * You can change the type of stream by @ref tcbd_change_stream_type
- */
-/** @{*/
-#define STREAM_TYPE_GARBAGE Bit7
-#define STREAM_TYPE_DAB_PLUS Bit6
-#define STREAM_TYPE_EPM Bit5
-#define STREAM_TYPE_DMB Bit4
-#define STREAM_TYPE_DAB Bit3
-#define STREAM_TYPE_FIC Bit2
-#define STREAM_TYPE_FIB_FILTER Bit1
-#define STREAM_TYPE_STATUS Bit0
-
-#define STREAM_TYPE_ALL \
- (STREAM_TYPE_DAB_PLUS |\
- STREAM_TYPE_EPM |\
- STREAM_TYPE_DMB |\
- STREAM_TYPE_DAB |\
- STREAM_TYPE_FIC |\
- STREAM_TYPE_FIB_FILTER |\
- STREAM_TYPE_STATUS)
-
-#define STREAM_SET_GARBAGE(_garbage)\
- (((_garbage >> 2) << 16) | STREAM_TYPE_GARBAGE)
-/**@}*/
-
-#define IRQ_ERR_MAILBOX Bit0
-#define IRQ_ERR_I2C Bit1
-#define IRQ_ERR_DATA Bit3
-#define IRQ_ERR_BUFFERA Bit4
-#define IRQ_ERR_BUFFERB Bit5
-#define IRQ_ERR_BUFFERC Bit6
-#define IRQ_ERR_BUFFERD Bit7
-
-#define MB_CMD_READ 0
-#define MB_CMD_WRITE 1
-
-#define MB_ERR_OK 0x00
-#define MB_ERR_CMD 0x01
-#define MB_ERR_PARA 0x02
-
-#define MBCMD_SYS (0x00<<11)
-#define MBPARA_SYS_WARMBOOT (MBCMD_SYS | 0x00)
-#define MBPARA_SYS_START (MBCMD_SYS | 0x01)
-#define MBPARA_SYS_SYNC (MBCMD_SYS | 0x02)
-
-#define MBPARA_SYS_DAB_STREAM_SET (MBCMD_SYS | 0x0D)
-#define MBPARA_SYS_DAB_STREAM_ON (MBCMD_SYS | 0x0E)
-#define MBPARA_SYS_DAB_RECONFIG_CLR (MBCMD_SYS | 0x12)
-
-#define MBPARA_SYS_DAB_MCI_UPDATE (MBCMD_SYS | 0x0c)
-#define MBPARA_SYS_DAB_DP_FLT (MBCMD_SYS | 0x0f)
-#define MBPARA_SYS_DAB_RESYNC_PARAM (MBCMD_SYS | 0x10)
-#define MBPARA_SYS_DAB_RESYNC_RESULT (MBCMD_SYS | 0x11)
-#define MBPARA_SYS_DAB_RF_FREQ_NO (MBCMD_SYS | 0x20)
-#define MBPARA_SYS_DAB_RF_FREQ (MBCMD_SYS | 0x21)
-#define MBPARA_SYS_DAB_ASM_VER (MBCMD_SYS | 0xff)
-
-#define MBCMD_AGC_DAB (0x01<<11)
-#define MBCMD_AGC_DAB_CFG (MBCMD_AGC_DAB | 0)
-#define MBCMD_AGC_DAB_GAIN (MBCMD_AGC_DAB | 1)
-#define MBCMD_AGC_DAB_JAM (MBCMD_AGC_DAB | 2)
-#define MBCMD_AGC_DAB_3 (MBCMD_AGC_DAB | 3)
-#define MBCMD_AGC_DAB_4 (MBCMD_AGC_DAB | 4)
-#define MBCMD_AGC_DAB_5 (MBCMD_AGC_DAB | 5)
-#define MBCMD_AGC_DAB_6 (MBCMD_AGC_DAB | 6)
-#define MBCMD_AGC_DAB_7 (MBCMD_AGC_DAB | 7)
-#define MBCMD_AGC_DAB_8 (MBCMD_AGC_DAB | 8)
-#define MBCMD_AGC_DAB_9 (MBCMD_AGC_DAB | 9)
-#define MBCMD_AGC_DAB_A (MBCMD_AGC_DAB | 10)
-#define MBCMD_AGC_DAB_B (MBCMD_AGC_DAB | 11)
-#define MBCMD_AGC_DAB_C (MBCMD_AGC_DAB | 12)
-#define MBCMD_AGC_DAB_D (MBCMD_AGC_DAB | 13)
-#define MBCMD_AGC_DAB_E (MBCMD_AGC_DAB | 14)
-#define MBCMD_AGC_DAB_F (MBCMD_AGC_DAB | 15)
-
-#define MBCMD_FP_DAB (0x02 << 11)
-#define MBCMD_FP_DAB_CFG (MBCMD_FP_DAB | 0)
-#define MBCMD_FP_DAB_IIR (MBCMD_FP_DAB | 1)
-
-#define MBCMD_CTO_DAB (0x04<<11)
-#define MBCMD_CTO_DAB_PARAM (MBCMD_CTO_DAB | 0x00)
-#define MBCMD_CTO_DAB_RESULT (MBCMD_CTO_DAB | 0x01)
-
-#define MBCMD_CFO_DAB (0x06<<11)
-#define MBCMD_CFO_DAB_PARAM (MBCMD_CFO_DAB | 0x00)
-#define MBCMD_CFO_DAB_RESULT (MBCMD_CFO_DAB | 0x01)
-
-#define MBCMD_FFO_DAB (0x07<<11)
-#define MBCMD_FTO_DAB (0x0A<<11)
-
-#define MBCMD_SFE_DAB (0x0B<<11)
-#define MBCMD_SFE_DAB_PARAM (MBCMD_SFE_DAB | 0x00)
-#define MBCMD_SFE_DAB_RESULT (MBCMD_SFE_DAB | 0x01)
-
-#define MBCMD_CIR_DAB (0x0C<<11)
-#define MBCMD_CIR_DAB_PARAM (MBCMD_CIR_DAB | 0x00)
-#define MBCMD_CIR_DAB_RESULT (MBCMD_CIR_DAB | 0x01)
-
-#define MBCMD_DP_DAB (0x10<<11)
-#define MBCMD_DP_DAB_RESULT (MBCMD_DP_DAB | 0x00)
-#define MBCMD_DP_DAB_CFG1 (MBCMD_DP_DAB | 0x01)
-#define MBCMD_DP_DAB_CFG2 (MBCMD_DP_DAB | 0x02)
-
-#define MBCMD_DEBUG_DAB (0x1F<<11)
-
-#define MBPARA_SYS_VERSION (MBCMD_SYS | 0xFF)
-
-#define MBPARA_SYS_NUM_FREQ (MBCMD_SYS | 0x20)
-#define MBPARA_SYS_FREQ_0_6 (MBCMD_SYS | 0x21)
-#define MBPARA_SYS_FREQ_7_13 (MBCMD_SYS | 0x22)
-#define MBPARA_SYS_FREQ_14_20 (MBCMD_SYS | 0x23)
-#define MBPARA_SYS_FREQ_21_27 (MBCMD_SYS | 0x24)
-
-#define MBCMD_SEL_CH_INFO (0x13<<11)
-#define MBPARA_SEL_CH_INFO_PRAM (MBCMD_SEL_CH_INFO | 0x00)
-#define MBPARA_SEL_CH_INFO_RESULT (MBCMD_SEL_CH_INFO | 0x01)
-
-#define MBCMD_VARI_OSC (0x15<<11)
-#define MBCMD_VARI_OSC_SPUR (MBCMD_VARI_OSC | 0x00)
-#define MBCMD_VARI_OSC_RCSTEP (MBCMD_VARI_OSC | 0x01)
-#define MBCMD_VARI_OSC_RFPLL (MBCMD_VARI_OSC | 0x02)
-
-#ifndef BITSET
-#define BITSET(X, MASK) ((X) |= (u32)(MASK))
-#endif
-
-#ifndef BITSCLR
-#define BITSCLR(X, SMASK, CMASK)\
- ((X) = ((\
- ((u32)(X)) |\
- ((u32)(SMASK))) & ~((u32)(CMASK))))
-#endif
-#ifndef BITCSET
-#define BITCSET(X, CMASK, SMASK)\
- ((X) = (\
- (((u32)(X)) & ~((u32)(CMASK))) |\
- ((u32)(SMASK))))
-#endif
-#ifndef BITCLR
-#define BITCLR(X, MASK) ((X) &= ~((u32)(MASK)))
-#endif
-#ifndef BITXOR
-#define BITXOR(X, MASK) ((X) ^= (u32)(MASK))
-#endif
-#ifndef ISZERO
-#define ISZERO(X, MASK)\
- (!(((u32)(X)) & ((u32)(MASK))))
-#endif
-
-#ifndef ISSET
-#define ISSET(X, MASK) ((u32)(X) & ((u32)(MASK)))
-#endif
-
-#endif /*__TCBD_DRV_REGISTER_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcbd_drv_rf.h b/drivers/media/tdmb/tcc3170/inc/tcbd_drv_rf.h
deleted file mode 100644
index fdee599..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcbd_drv_rf.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * tcbd_drv_rf.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCBD_DRV_RF_H__
-#define __TCBD_DRV_RF_H__
-
-TCBB_FUNC s32 tcbd_rf_init(
- struct tcbd_device *_device, enum tcbd_band_type _band);
-TCBB_FUNC s32 tcbd_rf_tune_frequency(
- struct tcbd_device *_device, u32 _freq_khz, s32 _bw_khz);
-
-#endif /*__TCBD_DRV_RF_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcbd_error.h b/drivers/media/tdmb/tcc3170/inc/tcbd_error.h
deleted file mode 100644
index 6b66a70..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcbd_error.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * tcbd_error.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCBD_ERROR_H__
-#define __TCBD_ERROR_H__
-
-/**
- * @defgroup ListOfErrorCode
- * If API fails then above error code will be returned.
- * Error codes can be combined with each other.
- */
-/** @{*/
-#define TCERR_SUCCESS 0x00000000
-#define TCERR_INVALID_ARG 0x00000001
-#define TCERR_BROKEN_MAIL_HEADER 0x00000002
-#define TCERR_UNKNOWN_MAIL_STATUS 0x00000004
-#define TCERR_WAIT_MAIL_TIMEOUT 0x00000008
-#define TCERR_CRC_FAIL 0x00000010
-#define TCERR_ACK_FAIL 0x00000020
-#define TCERR_OS_DRIVER_FAIL 0x00000040
-#define TCERR_CANNOT_ACCESS_MAIL 0x00000080
-#define TCERR_UNKNOWN_BAND 0x00000100
-#define TCERR_TUNE_FAILED 0x00000200
-#define TCERR_MAX_NUM_SERVICE 0x00000400
-#define TCERR_SERVICE_NOT_FOUND 0x00000800
-#define TCERR_NO_FIC_DATA 0x00001000
-#define TCERR_IO_NOT_INITIALIZED 0x00002000
-#define TCERR_WARMBOOT_FAIL 0x00004000
-#define TCERR_AREADY_REGISTERED 0x00008000
-#define TCERR_FATAL_ERROR 0x10000000
-/**@}*/
-
-
-#endif /*__TCBD_ERROR_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcbd_feature.h b/drivers/media/tdmb/tcc3170/inc/tcbd_feature.h
deleted file mode 100644
index 53fb880..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcbd_feature.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * tcbd_feature.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCBD_API_FEATURE_H__
-#define __TCBD_API_FEATURE_H__
-
-#define __AGC_TABLE_IN_DSP__
-
-#define __CSPI_ONLY__
-#undef __I2C_STS__
-
-#undef __ALWAYS_FIC_ON__
-#undef __CALLBACK_BUFFER_HEADER__
-
-#if defined(__I2C_STS__)
-#define __STATUS_IN_REGISTER__
-#else /*__I2C_STS__*/
-#undef __STATUS_IN_REGISTER__
-#define __STATUS_IN_STREAM__
-#endif /*!__I2C_STS__*/
-
-#if defined(__CSPI_ONLY__)
-#define __READ_FIXED_LENGTH__
-#undef __READ_VARIABLE_LENGTH__
-#endif /*__CSPI_ONLY__*/
-
-#undef __DEBUG_DSP_ROM__
-
-#define TCBD_MAX_NUM_SERVICE 6
-
-#define TCBD_DEF_BANDWIDTH (1500)
-#define TCBD_STATUS_SIZE (32)
-#define TCBD_FIC_SIZE (388)
-#define TCBD_TS_SIZE (188)
-#define TCBD_OP_HEADER_SIZE (4)
-#define TCBD_MAX_FIFO_SIZE (1024*16)
-#define TCBD_CHIPID_VALUE (0x37)
-
-#if defined(__STATUS_IN_REGISTER__)
-#if defined(__CSPI_ONLY__)
-#define TCBD_THRESHOLD_FIC\
- (TCBD_FIC_SIZE + TCBD_STATUS_SIZE + TCBD_OP_HEADER_SIZE*2)
-#elif defined(__I2C_STS__)
-#define TCBD_THRESHOLD_FIC (TCBD_FIC_SIZE)
-#else /*__I2C_STS__*/
-#error "you must define __I2C_STS__ or __CSPI_ONLY__"
-#endif /*!__CSPI_ONLY__ && !__I2C_STS__*/
-#else /* __STATUS_IN_REGISTER__ */
-#define TCBD_THRESHOLD_FIC\
- (TCBD_FIC_SIZE+TCBD_STATUS_SIZE+TCBD_OP_HEADER_SIZE*2)
-#endif /* !__STATUS_IN_REGISTER__ */
-
-#if defined(__CSPI_ONLY__)
-#define TCBD_BUFFER_A_SIZE (TCBD_MAX_FIFO_SIZE)
-#define TCBD_BUFFER_B_SIZE (0x0)
-#define TCBD_BUFFER_C_SIZE (0x0)
-#define TCBD_BUFFER_D_SIZE (0x0)
-
-#define TCBD_MAX_THRESHOLD (((1024*7)>>2)<<2)
-
-#elif defined(__I2C_STS__)
-#define TCBD_BUFFER_A_SIZE (TCBD_THRESHOLD_FIC)
-#define TCBD_BUFFER_B_SIZE \
- (((TCBD_MAX_FIFO_SIZE-TCBD_BUFFER_A_SIZE)>>2)<<2)
-#define TCBD_BUFFER_C_SIZE (0x0)
-#define TCBD_BUFFER_D_SIZE (0x0)
-
-#define TCBD_MAX_THRESHOLD (((TCBD_BUFFER_B_SIZE>>1)>>2)<<2)
-#endif /* __I2C_STS__ */
-
-#define PHY_BASE_ADDR (0x80000000)
-#define PHY_MEM_FIFO_START_ADDR (0x00000000)
-#define PHY_MEM_ADDR_A_START (PHY_BASE_ADDR + 0xa000)
-#define PHY_MEM_ADDR_A_END\
- (PHY_MEM_ADDR_A_START+TCBD_BUFFER_A_SIZE-1)
-#define PHY_MEM_ADDR_B_START\
- (PHY_MEM_ADDR_A_END+1)
-#define PHY_MEM_ADDR_B_END\
- (PHY_MEM_ADDR_B_START+TCBD_BUFFER_B_SIZE-1)
-#define PHY_MEM_ADDR_C_START\
- (PHY_MEM_ADDR_B_END+1)
-#define PHY_MEM_ADDR_C_END\
- (PHY_MEM_ADDR_C_START+TCBD_BUFFER_C_SIZE-1)
-#define PHY_MEM_ADDR_D_START\
- (PHY_MEM_ADDR_C_END+1)
-#define PHY_MEM_ADDR_D_END\
- (PHY_MEM_ADDR_D_START+TCBD_BUFFER_D_SIZE-1)
-
-/* CODE Memory Setting */
-#define START_PC (0x0000)
-#define START_PC_OFFSET (0x8000)
-#define CODE_MEM_BASE (PHY_BASE_ADDR+START_PC_OFFSET)
-#define CODE_TABLEBASE_RAND (0xF0020000)
-#define CODE_TABLEBASE_DINT (0xF0024000)
-#define CODE_TABLEBASE_DAGU (0xF0028000)
-#define CODE_TABLEBASE_COL_ORDER (0xF002C000)
-
-/* lock check time definition */
-#define TDMB_OFDMDETECT_LOCK (100)
-#define TDMB_OFDMDETECT_RETRY (2)
-#define TDMB_CTO_LOCK (100)
-#define TDMB_CTO_RETRY (3)
-#define TDMB_CFO_LOCK (20)
-#define TDMB_CFO_RETRY (3)
-
-#endif /*__TCBD_API_FEATURE_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcbd_hal.h b/drivers/media/tdmb/tcc3170/inc/tcbd_hal.h
deleted file mode 100644
index 634381b..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcbd_hal.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * tcbd_hal.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCBD_HAL_H__
-#define __TCBD_HAL_H__
-
-#define IRQ_TC317X 6
-/* #define __USE_TC_CPU__ */
-
-void tchal_init(void);
-void tchal_reset_device(void);
-void tchal_power_on_device(void);
-void tchal_power_down_device(void);
-void tchal_irq_setup(void);
-
-#endif /*__TCBD_HAL_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcbd_stream_parser/tcbd_stream_parser.h b/drivers/media/tdmb/tcc3170/inc/tcbd_stream_parser/tcbd_stream_parser.h
deleted file mode 100644
index f9b0ab1..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcbd_stream_parser/tcbd_stream_parser.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * tcbd_stream_parser.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCBD_STREAM_PARSER_H__
-#define __TCBD_STREAM_PARSER_H__
-
-#undef __MERGE_EACH_TYPEOF_STREAM__
-
-#define SIZE_BUFF_HEADER 4 /*[TYPE(1)][SUBCH(1)][SIZE(2)]*/
-
-enum DATA_TYPE {
- DATA_TYPE_MSC = 0,
- DATA_TYPE_FIC,
- DATA_TYPE_STATUS,
- DATA_TYPE_OTHER,
- DATA_TYPE_MAX
-};
-
-typedef s32 (*tcbd_stream_callback)(s32 _dev_idx, u8 *_stream, s32 _size,
- u8 _subch_id, u8 _type);
-
-TCBB_FUNC void tcbd_init_parser(s32 _dev_idx,
- tcbd_stream_callback _streamCallback);
-TCBB_FUNC s32 tcbd_split_stream(s32 _dev_idx, u8 *_stream, s32 _size);
-
-#endif /*__TCBD_STREAM_PARSER_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcc317x_boot_tdmb.h b/drivers/media/tdmb/tcc3170/inc/tcc317x_boot_tdmb.h
deleted file mode 100644
index b334fce..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcc317x_boot_tdmb.h
+++ /dev/null
@@ -1,1011 +0,0 @@
-#ifndef __TCC317X_BOOT_TDMB_H__
-#define __TCC317X_BOOT_TDMB_H__
-/*
- * asm file: E:\Works\ASM\TCC3500_ASM_BIN\TCC3170\LG\TCC317X_LG_v1_0_17.rom
- * Created : 2012-05-04 09:54:27
- */
-#define TCC317X_BOOT_SIZE_TDMB 7996
-
-unsigned char TCC317X_BOOT_DATA_TDMB[TCC317X_BOOT_SIZE_TDMB] = {
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x1F, 0x14,
- 0xAB, 0x00, 0x04, 0x60, 0x17, 0x05, 0x00, 0x00,
- 0xAB, 0x00, 0x0C, 0xA0, 0x17, 0x05, 0x00, 0x00,
- 0xAB, 0xB4, 0x00, 0xE0, 0x17, 0x05, 0x00, 0x00,
- 0xAB, 0xC2, 0x01, 0x20, 0x18, 0x05, 0x00, 0x00,
- 0xAB, 0x28, 0x00, 0x60, 0x18, 0x05, 0x00, 0x00,
- 0xAB, 0xB4, 0x00, 0xA0, 0x18, 0x05, 0x00, 0x00,
- 0xAB, 0x20, 0x00, 0x20, 0x19, 0x05, 0x00, 0x00,
- 0xAB, 0x1C, 0x00, 0x60, 0x19, 0x05, 0x00, 0x00,
- 0xAB, 0x1C, 0x00, 0xA0, 0x19, 0x05, 0x00, 0x00,
- 0xAB, 0x16, 0x00, 0xE0, 0x19, 0x05, 0x00, 0x00,
- 0xAB, 0x1A, 0x00, 0x20, 0x1A, 0x05, 0x00, 0x00,
- 0xAB, 0x10, 0x00, 0x60, 0x1A, 0x05, 0x00, 0x00,
- 0xAB, 0x84, 0x03, 0xA0, 0x1A, 0x05, 0x00, 0x00,
- 0xAB, 0xB8, 0x0B, 0xE0, 0x1A, 0x05, 0x00, 0x00,
- 0xAB, 0x00, 0x00, 0x20, 0x1B, 0x05, 0x00, 0x00,
- 0xAB, 0x00, 0x00, 0x60, 0x1D, 0x05, 0x00, 0x00,
- 0xAB, 0x00, 0x00, 0xA0, 0x1D, 0x05, 0x00, 0x00,
- 0xAB, 0x30, 0x00, 0xE0, 0x18, 0x05, 0x00, 0x00,
- 0xAB, 0x10, 0x00, 0xE0, 0x1D, 0x05, 0x00, 0x00,
- 0xAB, 0x74, 0x15, 0x21, 0x1E, 0x05, 0x00, 0x00,
- 0xCB, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x44, 0x00,
- 0xCB, 0x08, 0x00, 0x00, 0x00, 0x22, 0x44, 0x00,
- 0xCB, 0x3C, 0x0A, 0x00, 0x00, 0x26, 0x44, 0x00,
- 0xCB, 0x60, 0x20, 0x00, 0x00, 0x2A, 0x44, 0x00,
- 0xCB, 0x6E, 0x14, 0xA0, 0x28, 0x2E, 0x44, 0x00,
- 0xCB, 0xFE, 0x00, 0x00, 0x00, 0x6A, 0x44, 0x00,
- 0xCB, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x44, 0x00,
- 0xCB, 0x00, 0x00, 0x00, 0x00, 0x72, 0x44, 0x00,
- 0xCB, 0x00, 0x00, 0x00, 0x00, 0x76, 0x44, 0x00,
- 0xCB, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x44, 0x00,
- 0xCB, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x44, 0x00,
- 0xCB, 0x88, 0xFE, 0x59, 0x81, 0x83, 0x44, 0x00,
- 0xCB, 0x88, 0xFE, 0x59, 0x81, 0x87, 0x44, 0x00,
- 0xCB, 0xA6, 0xFE, 0x3D, 0x06, 0x8A, 0x44, 0x00,
- 0xCB, 0x0E, 0xFE, 0x3D, 0x02, 0x8E, 0x44, 0x00,
- 0xCB, 0x44, 0x00, 0x10, 0x00, 0x92, 0x44, 0x00,
- 0xCB, 0x4A, 0x00, 0x00, 0x00, 0x96, 0x44, 0x00,
- 0xCB, 0x7E, 0xB1, 0xE4, 0x17, 0x9B, 0x44, 0x00,
- 0xCB, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x44, 0x00,
- 0xCB, 0x10, 0x04, 0x00, 0x40, 0xFB, 0x45, 0x00,
- 0xCB, 0x00, 0x0D, 0x00, 0x40, 0xFF, 0x45, 0x00,
- 0xCB, 0xE0, 0x00, 0x00, 0x40, 0x13, 0x46, 0x00,
- 0xCB, 0x78, 0x02, 0x00, 0x40, 0x17, 0x46, 0x00,
- 0xCB, 0x12, 0xCA, 0xFE, 0x51, 0xA2, 0x44, 0x00,
- 0xCB, 0x5A, 0x04, 0x52, 0xE8, 0xA7, 0x44, 0x00,
- 0xCB, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x44, 0x00,
- 0xCB, 0x00, 0x00, 0x00, 0x00, 0xAE, 0x44, 0x00,
- 0xCB, 0x58, 0x12, 0xAE, 0xE6, 0xB3, 0x44, 0x00,
- 0xCB, 0x06, 0x0A, 0x10, 0x10, 0xB6, 0x44, 0x00,
- 0xCB, 0x1C, 0x92, 0x22, 0x00, 0xBA, 0x44, 0x00,
- 0xCB, 0x78, 0x82, 0x9E, 0x00, 0xBE, 0x44, 0x00,
- 0xCB, 0xF0, 0x04, 0x3D, 0x01, 0xC2, 0x44, 0x00,
- 0xCB, 0x3C, 0x8E, 0x4A, 0x00, 0xC6, 0x44, 0x00,
- 0xCB, 0x40, 0x06, 0x00, 0x0C, 0xCB, 0x44, 0x00,
- 0xCB, 0x80, 0x00, 0x00, 0x00, 0x06, 0x44, 0x01,
- 0x01, 0x00, 0xCB, 0xA2, 0xCA, 0x99, 0x35, 0x02,
- 0x44, 0x01, 0xCB, 0x40, 0x00, 0x00, 0x00, 0x06,
- 0x44, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xA2, 0x0E, 0x04, 0x2A, 0x3F, 0x5E, 0xA2,
- 0x6A, 0x3F, 0x88, 0x23, 0xCB, 0x3E, 0xFE, 0xFF,
- 0xFF, 0x93, 0x44, 0x01, 0x0F, 0x31, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x0F, 0x31, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0F, 0x2F, 0x03, 0x51,
- 0x04, 0x00, 0x00, 0x00, 0x0F, 0x31, 0x1F, 0x0E,
- 0x00, 0x00, 0x00, 0x00, 0x0F, 0x31, 0x1F, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x2A, 0x01, 0x46, 0x22,
- 0x8B, 0x05, 0x89, 0x80, 0x8C, 0x51, 0x00, 0x00,
- 0x6A, 0x01, 0x1A, 0xA3, 0x8B, 0x25, 0x89, 0x80,
- 0x81, 0x51, 0x00, 0x00, 0x8B, 0x2D, 0x89, 0x80,
- 0x82, 0x51, 0x00, 0x00, 0x8B, 0x35, 0x89, 0x80,
- 0x83, 0x51, 0x00, 0x00, 0x8B, 0x3D, 0x89, 0x80,
- 0x8A, 0x51, 0x00, 0x00, 0xCB, 0x06, 0x00, 0x00,
- 0x00, 0x02, 0x46, 0x01, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0xAB, 0x0E, 0x00, 0x20,
- 0xE0, 0x14, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x12, 0x46, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x16, 0x46, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x1A, 0x46, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x1E, 0x46, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x22, 0x46, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x26, 0x46, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x2E, 0x46, 0x01, 0xAB, 0x02, 0x00, 0xA0,
- 0xE0, 0x14, 0x00, 0x00, 0x0F, 0x99, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xAE, 0xC7, 0x00, 0x00,
- 0x2E, 0x4F, 0x44, 0x01, 0x6E, 0x50, 0xD8, 0x05,
- 0xAE, 0x50, 0x7C, 0x02, 0xEE, 0x50, 0xAC, 0x01,
- 0x2E, 0x51, 0x8C, 0x06, 0x6E, 0x51, 0x60, 0x4A,
- 0x2E, 0x42, 0x00, 0x08, 0x0F, 0x25, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0F, 0x37, 0xC3, 0x07,
- 0x00, 0x00, 0x01, 0x00, 0xCB, 0x20, 0x00, 0x00,
- 0x00, 0x02, 0x40, 0x01, 0xCB, 0x00, 0x0C, 0x01,
- 0x28, 0x83, 0x40, 0x01, 0xCB, 0x00, 0x00, 0x20,
- 0x00, 0x86, 0x40, 0x01, 0xCB, 0xFE, 0xFF, 0xFF,
- 0xFF, 0x8B, 0x40, 0x01, 0xCB, 0x00, 0x70, 0x00,
- 0x00, 0x8E, 0x40, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x3E, 0x93, 0x40, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x96, 0x40, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x9A, 0x40, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x9E, 0x40, 0x01, 0xCB, 0x00, 0x00, 0x40,
- 0x08, 0xA2, 0x40, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xA6, 0x40, 0x01, 0xCB, 0x00, 0x90, 0x00,
- 0x00, 0xAA, 0x40, 0x01, 0xCB, 0xFE, 0x9F, 0xFC,
- 0x07, 0xAE, 0x40, 0x01, 0xCB, 0x00, 0x80, 0x00,
- 0x00, 0xB2, 0x40, 0x01, 0xCB, 0xFE, 0x8F, 0xFC,
- 0x07, 0xB6, 0x40, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xBA, 0x40, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xBE, 0x40, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xC2, 0x40, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xC6, 0x40, 0x01, 0xCB, 0xE0, 0xFF, 0x21,
- 0x00, 0x42, 0x47, 0x01, 0xCB, 0x90, 0x08, 0x24,
- 0x0D, 0x56, 0x47, 0x01, 0xCB, 0xB6, 0x0D, 0xB6,
- 0x0D, 0x5A, 0x47, 0x01, 0xCB, 0xD8, 0x16, 0xDA,
- 0x16, 0x5E, 0x47, 0x01, 0xCB, 0x5A, 0x1B, 0xEC,
- 0x1F, 0x62, 0x47, 0x01, 0xCB, 0x20, 0x64, 0x88,
- 0xA8, 0x66, 0x47, 0x01, 0xCB, 0xAA, 0xCC, 0xEC,
- 0xEE, 0x6A, 0x47, 0x01, 0xCB, 0x30, 0x33, 0x55,
- 0x75, 0x6F, 0x47, 0x01, 0xCB, 0x76, 0x99, 0xB9,
- 0xFD, 0x73, 0x47, 0x01, 0xCB, 0x40, 0x00, 0x48,
- 0x02, 0x76, 0x47, 0x01, 0xCB, 0xE0, 0x05, 0xF8,
- 0x07, 0x7A, 0x47, 0x01, 0xCB, 0x40, 0x00, 0xC4,
- 0x00, 0x7E, 0x47, 0x01, 0xCB, 0x0A, 0x02, 0x96,
- 0x03, 0x82, 0x47, 0x01, 0xCB, 0xA0, 0x04, 0x2A,
- 0x06, 0x86, 0x47, 0x01, 0xCB, 0x76, 0x07, 0xFC,
- 0x07, 0x8A, 0x47, 0x01, 0xCB, 0x02, 0x00, 0x00,
- 0x80, 0x33, 0x47, 0x01, 0xCB, 0x04, 0x32, 0x00,
- 0x00, 0x36, 0x47, 0x01, 0xCB, 0x6E, 0x01, 0x00,
- 0x00, 0x3A, 0x47, 0x01, 0xCB, 0x02, 0x00, 0x00,
- 0x80, 0x3F, 0x47, 0x01, 0xCB, 0xFE, 0x07, 0xFE,
- 0x07, 0xC2, 0x46, 0x01, 0xCB, 0x1E, 0x00, 0x00,
- 0x00, 0xD6, 0x46, 0x01, 0xCB, 0x3E, 0x00, 0x20,
- 0x00, 0xDA, 0x46, 0x01, 0xCB, 0xBE, 0x00, 0x40,
- 0x00, 0xDE, 0x46, 0x01, 0xCB, 0xDE, 0x00, 0xC0,
- 0x00, 0xE2, 0x46, 0x01, 0x8B, 0x65, 0x88, 0x82,
- 0xB9, 0x51, 0x00, 0x00, 0xCB, 0x20, 0x02, 0xFE,
- 0x03, 0x9E, 0x47, 0x01, 0xCB, 0xFE, 0xFF, 0x43,
- 0x20, 0xFA, 0x46, 0x01, 0xCB, 0x22, 0x00, 0x00,
- 0x00, 0xBA, 0x47, 0x01, 0xAB, 0x08, 0x01, 0x21,
- 0xF0, 0x14, 0x00, 0x00, 0xCB, 0x04, 0xB0, 0x80,
- 0x00, 0xDE, 0x47, 0x01, 0xCB, 0x06, 0x16, 0x00,
- 0x02, 0xE2, 0x47, 0x01, 0xCB, 0x02, 0x18, 0x00,
- 0x08, 0xE6, 0x47, 0x01, 0xCB, 0x00, 0x20, 0x00,
- 0x00, 0x16, 0x47, 0x01, 0x0E, 0x03, 0x00, 0x00,
- 0x06, 0x20, 0xBD, 0x00, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xDA, 0x47, 0x00, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xCE, 0x47, 0x00, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xD2, 0x47, 0x00, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xD6, 0x47, 0x00, 0x0F, 0x99, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0F, 0xDD, 0x44, 0x2A,
- 0x00, 0x00, 0x00, 0x00, 0x0F, 0x2B, 0x17, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x46, 0x04, 0x26, 0x04,
- 0xAB, 0x00, 0x00, 0x00, 0x0B, 0x03, 0x00, 0x00,
- 0xCB, 0x80, 0x10, 0x60, 0x15, 0x4E, 0x47, 0x00,
- 0xCB, 0x40, 0x18, 0x20, 0x1D, 0x52, 0x47, 0x00,
- 0xCB, 0x00, 0x23, 0x82, 0x18, 0x56, 0x47, 0x00,
- 0xCB, 0x62, 0x1D, 0x42, 0x23, 0x5A, 0x47, 0x00,
- 0xCB, 0x22, 0x2A, 0x02, 0x34, 0x5E, 0x47, 0x00,
- 0xCB, 0x84, 0x1D, 0x64, 0x23, 0x62, 0x47, 0x00,
- 0xCB, 0x44, 0x2A, 0x24, 0x34, 0x66, 0x47, 0x00,
- 0xCB, 0x86, 0x20, 0x66, 0x2A, 0x6A, 0x47, 0x00,
- 0xCB, 0x46, 0x30, 0x26, 0x3A, 0x6E, 0x47, 0x00,
- 0xCB, 0x06, 0x46, 0x88, 0x28, 0x72, 0x47, 0x00,
- 0xCB, 0x68, 0x34, 0x48, 0x3A, 0x76, 0x47, 0x00,
- 0xCB, 0x28, 0x46, 0x08, 0x54, 0x7A, 0x47, 0x00,
- 0xCB, 0x8A, 0x30, 0x6A, 0x3A, 0x7E, 0x47, 0x00,
- 0xCB, 0x4A, 0x46, 0x2A, 0x54, 0x82, 0x47, 0x00,
- 0xCB, 0x0A, 0x68, 0x8C, 0x3A, 0x86, 0x47, 0x00,
- 0xCB, 0x6C, 0x46, 0x4C, 0x54, 0x8A, 0x47, 0x00,
- 0xCB, 0x2C, 0x68, 0x8E, 0x40, 0x8E, 0x47, 0x00,
- 0xCB, 0x6E, 0x54, 0x4E, 0x60, 0x92, 0x47, 0x00,
- 0xCB, 0x2E, 0x74, 0x0E, 0x8C, 0x96, 0x47, 0x00,
- 0xCB, 0x90, 0x50, 0x70, 0x68, 0x9A, 0x47, 0x00,
- 0xCB, 0x50, 0x74, 0x30, 0x8C, 0x9E, 0x47, 0x00,
- 0xCB, 0x10, 0xA8, 0x92, 0x60, 0xA2, 0x47, 0x00,
- 0xCB, 0x72, 0x74, 0x52, 0x8C, 0xA6, 0x47, 0x00,
- 0xCB, 0x32, 0xA8, 0x12, 0xD0, 0xAA, 0x47, 0x00,
- 0xCB, 0x94, 0x74, 0x74, 0x8C, 0xAE, 0x47, 0x00,
- 0xCB, 0x54, 0xA8, 0x34, 0xD0, 0xB2, 0x47, 0x00,
- 0xCB, 0x14, 0xE8, 0x96, 0x80, 0xB6, 0x47, 0x00,
- 0xCB, 0x76, 0xA8, 0x56, 0xC0, 0xBA, 0x47, 0x00,
- 0xCB, 0x36, 0xE8, 0x16, 0x18, 0xBF, 0x47, 0x00,
- 0xCB, 0x98, 0xA0, 0x78, 0xD0, 0xC2, 0x47, 0x00,
- 0xCB, 0x38, 0x18, 0x9B, 0xC0, 0xC6, 0x47, 0x00,
- 0xCB, 0x5A, 0x18, 0x1B, 0xA0, 0xCB, 0x47, 0x00,
- 0x06, 0x02, 0x43, 0x04, 0xCB, 0x06, 0x00, 0x00,
- 0x00, 0x02, 0x46, 0x01, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0xAB, 0x0E, 0x00, 0x20,
- 0xE0, 0x14, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x12, 0x46, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x16, 0x46, 0x01, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x2E, 0x46, 0x01, 0xAB, 0x02, 0x00, 0xA0,
- 0xE0, 0x14, 0x00, 0x00, 0x2A, 0x01, 0x46, 0x22,
- 0x8B, 0x05, 0x89, 0x80, 0x8C, 0x51, 0x00, 0x00,
- 0x6A, 0x01, 0x1A, 0xA3, 0x0F, 0x99, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xCB, 0x20, 0x00, 0x00,
- 0x00, 0x02, 0x40, 0x01, 0x0E, 0x03, 0x01, 0x00,
- 0x06, 0x20, 0xBD, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x90, 0x39, 0x03, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xDA, 0x47, 0x00, 0xAB, 0x00, 0x00, 0x60,
- 0x1F, 0x05, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x02,
- 0x00, 0xAA, 0x46, 0x00, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xD6, 0x47, 0x00, 0x0F, 0x99, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0F, 0xDD, 0x44, 0x2A,
- 0x00, 0x00, 0x00, 0x00, 0x0F, 0x2B, 0x17, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x46, 0x04, 0x34, 0x04,
- 0xAB, 0x00, 0x00, 0x00, 0x0B, 0x03, 0x00, 0x00,
- 0x0E, 0x1F, 0x00, 0x00, 0x0A, 0x7A, 0x1C, 0xA3,
- 0x6A, 0x25, 0x31, 0xA2, 0x6A, 0x0F, 0x32, 0xA2,
- 0x8B, 0xCD, 0x86, 0x80, 0x1A, 0x51, 0x00, 0x00,
- 0x8B, 0x55, 0x8D, 0x80, 0x1B, 0x51, 0x00, 0x00,
- 0x8B, 0x6D, 0x8F, 0x82, 0x1C, 0x51, 0x00, 0x00,
- 0x8B, 0x65, 0x8F, 0x82, 0x1D, 0x51, 0x00, 0x00,
- 0x8B, 0x55, 0x8F, 0x82, 0x1E, 0x51, 0x00, 0x00,
- 0x8B, 0x5D, 0x8F, 0x82, 0x1F, 0x51, 0x00, 0x00,
- 0x2A, 0x3F, 0xE8, 0x23, 0x97, 0x8F, 0x8F, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0xC3, 0x3E, 0x04, 0x2A, 0x1D, 0x34, 0x22,
- 0x97, 0x0F, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x66, 0x42, 0x3D, 0x04, 0x0E, 0x17, 0x08, 0x00,
- 0x0A, 0x0D, 0xF6, 0x28, 0x2A, 0x03, 0x18, 0xA2,
- 0xF6, 0x15, 0x04, 0x40, 0x96, 0x11, 0xFF, 0xFF,
- 0x9A, 0x08, 0x08, 0x00, 0x76, 0x1C, 0x00, 0x08,
- 0x1B, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0xCB, 0x28, 0x01, 0x00, 0x00, 0x42, 0x44, 0x01,
- 0x6A, 0x07, 0x22, 0xA2, 0x6A, 0x0B, 0x24, 0xA2,
- 0x8B, 0x65, 0x88, 0x82, 0x15, 0x51, 0x00, 0x00,
- 0xCB, 0x02, 0x01, 0x00, 0x00, 0x4E, 0x44, 0x01,
- 0x01, 0x00, 0x01, 0x00, 0x6A, 0x25, 0x29, 0xA2,
- 0x6A, 0x0F, 0x28, 0xA2, 0x8B, 0xCD, 0x86, 0x80,
- 0x14, 0x51, 0x00, 0x00, 0x8B, 0x55, 0x8D, 0x80,
- 0x14, 0x51, 0x00, 0x00, 0x8B, 0x6D, 0x8F, 0x82,
- 0x14, 0x51, 0x00, 0x00, 0x8B, 0x65, 0x8F, 0x82,
- 0x14, 0x51, 0x00, 0x00, 0x8B, 0x55, 0x8F, 0x82,
- 0x14, 0x51, 0x00, 0x00, 0x8B, 0x5D, 0x8F, 0x82,
- 0x14, 0x51, 0x00, 0x00, 0x2A, 0x07, 0x26, 0xA2,
- 0x96, 0x33, 0x80, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0x63, 0x3B, 0x04, 0x1A, 0x0C, 0x00, 0x14,
- 0x7A, 0x10, 0x0C, 0x08, 0x01, 0x00, 0x01, 0x00,
- 0x26, 0x83, 0x3C, 0x04, 0x3A, 0x0C, 0x10, 0x04,
- 0x4A, 0x1E, 0xF6, 0x28, 0x4A, 0x1E, 0xF8, 0x28,
- 0x4E, 0x14, 0x00, 0x00, 0x6A, 0x0B, 0x14, 0xA2,
- 0xCB, 0x02, 0x00, 0x00, 0x7E, 0x2F, 0x44, 0x01,
- 0x2A, 0x1D, 0x34, 0x22, 0x97, 0x0F, 0x07, 0x40,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0xC2, 0x3E, 0x04, 0xF6, 0x75, 0x38, 0x04,
- 0x97, 0x0F, 0x07, 0x00, 0x80, 0xFF, 0x7F, 0x00,
- 0xF6, 0xFD, 0x7C, 0x40, 0x6A, 0x3F, 0x14, 0xA2,
- 0xCB, 0x02, 0x00, 0x00, 0x88, 0x2E, 0x44, 0x01,
- 0x2A, 0x3F, 0xE8, 0x23, 0x9A, 0x7C, 0x7C, 0x00,
- 0x6A, 0x3F, 0xE8, 0x23, 0x2A, 0x0D, 0x32, 0x22,
- 0x7B, 0x0C, 0x0C, 0xC0, 0x4F, 0x2C, 0x00, 0x00,
- 0xA6, 0x22, 0x40, 0x04, 0xCB, 0x04, 0x40, 0x00,
- 0x00, 0x92, 0x44, 0x01, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0x40, 0x04, 0xCB, 0x02, 0x80, 0x00,
- 0x00, 0x92, 0x44, 0x01, 0xAB, 0x00, 0x02, 0x20,
- 0x60, 0x14, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0xAB, 0x00, 0x06, 0x20,
- 0xE0, 0x14, 0x00, 0x00, 0x2A, 0x1B, 0x8C, 0xA3,
- 0xF6, 0x6D, 0x34, 0x34, 0x96, 0xDD, 0x10, 0x00,
- 0x17, 0x07, 0x49, 0x00, 0x08, 0x00, 0x00, 0x00,
- 0x0A, 0xFC, 0x19, 0x2A, 0x76, 0xFC, 0x7C, 0x14,
- 0x36, 0x0E, 0x0E, 0x1F, 0x36, 0x92, 0x0E, 0x0D,
- 0x4F, 0x24, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x0F, 0x37, 0xC3, 0x07, 0x00, 0x00, 0x01, 0x00,
- 0x06, 0x10, 0x9A, 0x04, 0x6A, 0x25, 0x11, 0xA2,
- 0x2A, 0x3F, 0x0E, 0x22, 0xB7, 0x8F, 0x0F, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x6A, 0x3F, 0x0E, 0x22,
- 0xA6, 0x83, 0x0D, 0x6C, 0xF6, 0x05, 0x48, 0x42,
- 0x7A, 0x06, 0x09, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0xA3, 0x51, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x60, 0x5A, 0x04, 0xCB, 0x02, 0x00, 0x00,
- 0x00, 0xD2, 0x47, 0x00, 0x2A, 0x15, 0x54, 0x23,
- 0x5B, 0x3E, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x46, 0xA3, 0x45, 0x04, 0x8B, 0x4D, 0x8D, 0x80,
- 0xAA, 0x11, 0x00, 0x00, 0x2A, 0x17, 0x90, 0x21,
- 0x97, 0x85, 0x85, 0x0F, 0x00, 0x00, 0x00, 0x00,
- 0x5B, 0x3E, 0x16, 0x3E, 0x00, 0x00, 0x00, 0x00,
- 0x46, 0xE3, 0x46, 0x04, 0xCB, 0x7E, 0x14, 0xA0,
- 0x28, 0x2E, 0x44, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x22, 0x47, 0x04, 0xCB, 0x6E, 0x14, 0xA0,
- 0x28, 0x2E, 0x44, 0x00, 0x0F, 0x99, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0A, 0xCC, 0x00, 0x28,
- 0x0A, 0xDC, 0xD8, 0x28, 0x2A, 0x15, 0x18, 0x22,
- 0x2A, 0x17, 0x1A, 0x22, 0x5B, 0x3E, 0x18, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0x43, 0x51, 0x04, 0x5B, 0x3E, 0x1A, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x42, 0x51, 0x04, 0x2A, 0x3D, 0x54, 0x23,
- 0x7B, 0x3E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x66, 0xE2, 0x49, 0x04, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xD6, 0x47, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xA2, 0x4B, 0x04, 0x2A, 0x3D, 0xEA, 0x23,
- 0x9A, 0x78, 0x78, 0x00, 0x6A, 0x3D, 0xEA, 0x23,
- 0x7B, 0x3E, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00,
- 0xE6, 0xA2, 0x4B, 0x04, 0x2A, 0x3D, 0x14, 0x23,
- 0x9A, 0x78, 0x78, 0x00, 0x6A, 0x3D, 0x14, 0x23,
- 0xCB, 0x10, 0x00, 0x00, 0x00, 0x02, 0x40, 0x01,
- 0x0F, 0x37, 0xC1, 0x05, 0x00, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0x2E, 0x04, 0x2A, 0x1D, 0x34, 0x22,
- 0x97, 0x0F, 0x07, 0x40, 0x00, 0x00, 0x00, 0x00,
- 0x66, 0x42, 0x51, 0x04, 0xF6, 0x1D, 0x28, 0x50,
- 0x96, 0x33, 0x3F, 0x00, 0x76, 0x34, 0x0C, 0x14,
- 0x1B, 0xAE, 0x06, 0x60, 0x29, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0A, 0x35,
- 0x00, 0x02, 0x5B, 0x3E, 0x06, 0x1E, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x26, 0x23, 0x4F, 0x04, 0xF6, 0x1D, 0x2C, 0x40,
- 0x96, 0x33, 0x03, 0x00, 0x5B, 0x3E, 0x06, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0x23, 0x50, 0x04, 0x97, 0x01, 0x49, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0x23, 0x50, 0x04, 0xF6, 0x75, 0x38, 0x04,
- 0x97, 0x0F, 0x07, 0x00, 0x80, 0xFF, 0x7F, 0x00,
- 0xF6, 0xFD, 0x7C, 0x40, 0x6A, 0x3F, 0x14, 0xA2,
- 0xCB, 0x02, 0x00, 0x00, 0x88, 0x2E, 0x44, 0x01,
- 0x06, 0x42, 0x51, 0x04, 0xF6, 0x6D, 0x38, 0x44,
- 0x2A, 0x07, 0xEC, 0x23, 0x7A, 0x7C, 0x34, 0x0C,
- 0x26, 0x03, 0x51, 0x04, 0x6A, 0x3F, 0x14, 0xA2,
- 0xCB, 0x02, 0x00, 0x00, 0x88, 0x2E, 0x44, 0x01,
- 0xCB, 0x00, 0x00, 0x00, 0x00, 0xDA, 0x47, 0x00,
- 0xA6, 0x63, 0x2E, 0x34, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x02, 0x43, 0x04, 0x7A, 0x06, 0x02, 0x00,
- 0x46, 0x63, 0x52, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xD0, 0x38, 0x01, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x02, 0x43, 0x04, 0x7A, 0x06, 0x03, 0x00,
- 0x46, 0x63, 0x53, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x90, 0x7D, 0x03, 0x01, 0x00, 0x01, 0x00,
- 0xA6, 0x63, 0x2E, 0x34, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x02, 0x43, 0x04, 0x7A, 0x06, 0x04, 0x00,
- 0x46, 0x63, 0x54, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE0, 0xBD, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0xA6, 0x63, 0x2E, 0x34, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x02, 0x43, 0x04, 0x7A, 0x06, 0x05, 0x00,
- 0x46, 0x23, 0x55, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xD0, 0x94, 0x03, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x02, 0x43, 0x04, 0x7A, 0x06, 0x06, 0x00,
- 0x46, 0xE3, 0x55, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x50, 0x98, 0x03, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x02, 0x43, 0x04, 0x7A, 0x06, 0x07, 0x00,
- 0x46, 0xA3, 0x56, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x50, 0x9A, 0x03, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x02, 0x43, 0x04, 0x7A, 0x06, 0x08, 0x00,
- 0x46, 0xA3, 0x57, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xD0, 0x9B, 0x03, 0x01, 0x00, 0x01, 0x00,
- 0xA6, 0x63, 0x2E, 0x34, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x02, 0x43, 0x04, 0x7A, 0x06, 0x00, 0x00,
- 0x46, 0x63, 0x58, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x60, 0x63, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x02, 0x43, 0x04, 0x7A, 0x06, 0x01, 0x00,
- 0x46, 0x03, 0x43, 0x04, 0x2A, 0x0D, 0x32, 0x22,
- 0x7B, 0x0C, 0x0C, 0xC0, 0x4F, 0x2C, 0x00, 0x00,
- 0xA6, 0xA2, 0x59, 0x04, 0xCB, 0x04, 0x40, 0x00,
- 0x00, 0x92, 0x44, 0x01, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE2, 0x59, 0x04, 0xCB, 0x02, 0x80, 0x00,
- 0x00, 0x92, 0x44, 0x01, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x90, 0x79, 0x03, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x02, 0x43, 0x04, 0x0A, 0x0A, 0x10, 0xA0,
- 0x4A, 0x04, 0x76, 0x28, 0xAB, 0x00, 0x00, 0xE0,
- 0x80, 0x14, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x10, 0x85, 0x02, 0x0A, 0x0D, 0x08, 0x29,
- 0x0A, 0x1D, 0x06, 0x29, 0x5A, 0x0A, 0x00, 0x00,
- 0x46, 0x23, 0x5C, 0x04, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x16, 0x47, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x82, 0x5C, 0x04, 0x2A, 0x05, 0x8A, 0x23,
- 0x9A, 0x08, 0x08, 0x00, 0x6A, 0x05, 0x8A, 0x23,
- 0x5A, 0x0A, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0xA2, 0x5D, 0x04, 0xAB, 0x06, 0x00, 0x20,
- 0x60, 0x14, 0x00, 0x00, 0xCB, 0x3E, 0xFE, 0xFF,
- 0xFF, 0x93, 0x44, 0x01, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE2, 0x5F, 0x04, 0x2A, 0x0D, 0x32, 0x22,
- 0x7B, 0x0C, 0x0C, 0xC0, 0x4F, 0x2C, 0x00, 0x00,
- 0xA6, 0xA2, 0x5E, 0x04, 0xCB, 0x04, 0x40, 0x00,
- 0x00, 0x92, 0x44, 0x01, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE2, 0x5E, 0x04, 0xCB, 0x02, 0x80, 0x00,
- 0x00, 0x92, 0x44, 0x01, 0x2A, 0x3F, 0x8A, 0x23,
- 0x0F, 0x3B, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7A, 0x7C, 0x7C, 0x74, 0x01, 0x00, 0x01, 0x00,
- 0x26, 0xE3, 0x5F, 0x04, 0xAB, 0x00, 0x02, 0x20,
- 0x60, 0x14, 0x00, 0x00, 0x5A, 0x2A, 0x00, 0x00,
- 0x46, 0x63, 0x60, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0xB1, 0x03, 0x0A, 0x0D, 0x00, 0x28,
- 0x5A, 0x06, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x62, 0xBB, 0x03, 0x5A, 0x06, 0x01, 0x00,
- 0x46, 0x23, 0xB0, 0x03, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x90, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00,
- 0xE6, 0x23, 0x62, 0x4C, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xD0, 0x76, 0x01, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE2, 0x62, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0xA6, 0x91, 0x0B, 0x3B, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0xD1, 0x76, 0x39, 0x01, 0x00, 0x01, 0x00,
- 0xA6, 0xE1, 0xC1, 0x3C, 0x01, 0x00, 0x01, 0x00,
- 0xA6, 0xA3, 0xAA, 0x1B, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x22, 0xA9, 0x03, 0x2A, 0x01, 0x0E, 0x22,
- 0x96, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x72, 0x79, 0x03, 0x2A, 0x01, 0x58, 0x22,
- 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
- 0x46, 0xA3, 0x64, 0x04, 0xAB, 0x02, 0x00, 0x20,
- 0x43, 0x05, 0x00, 0x00, 0x2A, 0x0D, 0x0E, 0x22,
- 0x17, 0x03, 0x03, 0x00, 0x00, 0x00, 0x78, 0x00,
- 0x7B, 0x3E, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x66, 0x62, 0x66, 0x04, 0x7B, 0x3E, 0x0C, 0x00,
- 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x62, 0x67, 0x04, 0x7B, 0x3E, 0x0C, 0x00,
- 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x62, 0x6A, 0x04, 0x0F, 0x2F, 0x03, 0x51,
- 0x04, 0x00, 0x00, 0x00, 0xCB, 0x4A, 0x00, 0x00,
- 0x00, 0x96, 0x44, 0x00, 0xCB, 0x7E, 0xB1, 0xE4,
- 0x17, 0x9B, 0x44, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0x6B, 0x04, 0x0F, 0x2F, 0x03, 0x71,
- 0x04, 0x00, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x96, 0x44, 0x00, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0x9A, 0x44, 0x00, 0x2A, 0x0D, 0x32, 0x22,
- 0x7B, 0x0E, 0x0C, 0xA0, 0xC4, 0x05, 0x00, 0x00,
- 0x66, 0x62, 0x69, 0x04, 0x7B, 0x0E, 0x0C, 0xC0,
- 0x43, 0x06, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x62, 0x69, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0x6B, 0x04, 0x0F, 0x2F, 0x03, 0x91,
- 0x00, 0x00, 0x00, 0x00, 0xCB, 0x4A, 0x00, 0x00,
- 0x00, 0x96, 0x44, 0x00, 0xCB, 0x7E, 0xB1, 0xE4,
- 0x17, 0x9B, 0x44, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0x6B, 0x04, 0x0F, 0x2F, 0x03, 0x91,
- 0x04, 0x00, 0x00, 0x00, 0xCB, 0x4A, 0x00, 0x00,
- 0x00, 0x96, 0x44, 0x00, 0xCB, 0x7E, 0xB1, 0xE4,
- 0x17, 0x9B, 0x44, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0x6B, 0x04, 0x0F, 0x31, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x0F, 0x31, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0F, 0x31, 0x1F, 0x0E,
- 0x00, 0x00, 0x00, 0x00, 0x0F, 0x31, 0x1F, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x8B, 0x2D, 0x89, 0x80,
- 0x82, 0x51, 0x00, 0x00, 0x8B, 0x35, 0x89, 0x80,
- 0x83, 0x51, 0x00, 0x00, 0xCB, 0x04, 0x40, 0x00,
- 0x00, 0x92, 0x44, 0x01, 0x2A, 0x0D, 0x66, 0x22,
- 0x7B, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x46, 0x23, 0x77, 0x03, 0xCB, 0x86, 0x44, 0x22,
- 0x2C, 0xCE, 0x44, 0x00, 0xCB, 0x46, 0x44, 0xAC,
- 0x01, 0xD2, 0x44, 0x00, 0xCB, 0x22, 0x00, 0x7C,
- 0x00, 0xD6, 0x44, 0x00, 0xCB, 0x86, 0x04, 0x44,
- 0xB4, 0xDA, 0x44, 0x00, 0xCB, 0x86, 0x10, 0x44,
- 0xBC, 0xDE, 0x44, 0x00, 0xCB, 0x86, 0x20, 0x44,
- 0xC0, 0xE2, 0x44, 0x00, 0xCB, 0x86, 0x28, 0x44,
- 0xC4, 0xE6, 0x44, 0x00, 0xCB, 0x86, 0x38, 0x44,
- 0xC8, 0xEA, 0x44, 0x00, 0xCB, 0x86, 0x40, 0x44,
- 0xD0, 0xEE, 0x44, 0x00, 0xCB, 0x86, 0x44, 0x44,
- 0xD8, 0xF2, 0x44, 0x00, 0xCB, 0x86, 0x50, 0x44,
- 0xE0, 0xF6, 0x44, 0x00, 0xCB, 0x86, 0x58, 0x22,
- 0x54, 0xFA, 0x44, 0x00, 0xCB, 0x86, 0x68, 0x22,
- 0x60, 0xFE, 0x44, 0x00, 0xCB, 0x86, 0x74, 0x22,
- 0x68, 0x02, 0x45, 0x00, 0xCB, 0x86, 0x7C, 0x22,
- 0x70, 0x06, 0x45, 0x00, 0xCB, 0x86, 0x84, 0x22,
- 0x78, 0x0A, 0x45, 0x00, 0xCB, 0x86, 0x8C, 0x22,
- 0x7C, 0x0E, 0x45, 0x00, 0xCB, 0x86, 0x98, 0x22,
- 0x80, 0x12, 0x45, 0x00, 0xCB, 0x86, 0xA8, 0x22,
- 0x88, 0x16, 0x45, 0x00, 0xCB, 0x86, 0xB4, 0x22,
- 0x90, 0x1A, 0x45, 0x00, 0xCB, 0x86, 0xBC, 0x22,
- 0x94, 0x1E, 0x45, 0x00, 0xCB, 0x86, 0xC0, 0x22,
- 0xA0, 0x22, 0x45, 0x00, 0xCB, 0x86, 0xC8, 0x22,
- 0xA8, 0x26, 0x45, 0x00, 0xCB, 0x44, 0x48, 0x22,
- 0xB4, 0x2A, 0x45, 0x00, 0xCB, 0x44, 0x50, 0x22,
- 0xBC, 0x2E, 0x45, 0x00, 0xCB, 0x44, 0x64, 0x22,
- 0xC0, 0x32, 0x45, 0x00, 0xCB, 0x44, 0x6C, 0x22,
- 0xC4, 0x36, 0x45, 0x00, 0xCB, 0x44, 0x74, 0x22,
- 0xCC, 0x3A, 0x45, 0x00, 0xCB, 0x44, 0x7C, 0x22,
- 0xD4, 0x3E, 0x45, 0x00, 0xCB, 0x44, 0x84, 0x22,
- 0xDC, 0x42, 0x45, 0x00, 0xCB, 0x44, 0x8C, 0x22,
- 0xE4, 0x46, 0x45, 0x00, 0xCB, 0x44, 0x90, 0x22,
- 0xEC, 0x4A, 0x45, 0x00, 0xCB, 0x44, 0xA0, 0x22,
- 0xF4, 0x4E, 0x45, 0x00, 0xCB, 0x44, 0xA8, 0x22,
- 0xFC, 0x52, 0x45, 0x00, 0xCB, 0x44, 0xAC, 0x22,
- 0xFE, 0x56, 0x45, 0x00, 0xCB, 0x86, 0x58, 0x22,
- 0x54, 0x5A, 0x45, 0x00, 0xCB, 0x86, 0x68, 0x22,
- 0x60, 0x5E, 0x45, 0x00, 0xCB, 0x86, 0x74, 0x22,
- 0x68, 0x62, 0x45, 0x00, 0xCB, 0x86, 0x7C, 0x22,
- 0x70, 0x66, 0x45, 0x00, 0xCB, 0x86, 0x84, 0x22,
- 0x78, 0x6A, 0x45, 0x00, 0xCB, 0x86, 0x58, 0x44,
- 0xE8, 0x6E, 0x45, 0x00, 0xCB, 0x86, 0x68, 0x44,
- 0xF0, 0x72, 0x45, 0x00, 0xCB, 0x86, 0x74, 0x44,
- 0xF4, 0x76, 0x45, 0x00, 0xCB, 0x86, 0x7C, 0x44,
- 0xFC, 0x7A, 0x45, 0x00, 0xCB, 0x86, 0x84, 0x44,
- 0xFE, 0x7E, 0x45, 0x00, 0xCB, 0x44, 0x48, 0x22,
- 0xB4, 0x82, 0x45, 0x00, 0xCB, 0x44, 0x50, 0x22,
- 0xBC, 0x86, 0x45, 0x00, 0xCB, 0x44, 0x64, 0x22,
- 0xC0, 0x8A, 0x45, 0x00, 0xCB, 0x44, 0x6C, 0x22,
- 0xC4, 0x8E, 0x45, 0x00, 0xCB, 0x44, 0x74, 0x22,
- 0xCC, 0x92, 0x45, 0x00, 0xCB, 0x86, 0xD0, 0x22,
- 0xB4, 0x96, 0x45, 0x00, 0xCB, 0x86, 0xD8, 0x22,
- 0xBC, 0x9A, 0x45, 0x00, 0xCB, 0x86, 0xE4, 0x22,
- 0xC0, 0x9E, 0x45, 0x00, 0xCB, 0x86, 0xEC, 0x22,
- 0xC4, 0xA2, 0x45, 0x00, 0xCB, 0x86, 0xF4, 0x22,
- 0xCC, 0xA6, 0x45, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x22, 0x77, 0x03, 0x0A, 0x08, 0x7A, 0xA7,
- 0x17, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00,
- 0x0E, 0x07, 0x00, 0x00, 0x0A, 0xF8, 0x7E, 0xA3,
- 0x7A, 0x38, 0x00, 0x04, 0x76, 0x78, 0x78, 0x70,
- 0x97, 0x87, 0x07, 0x00, 0x80, 0x00, 0x00, 0x00,
- 0x46, 0x53, 0x97, 0x04, 0x2A, 0x15, 0x18, 0xA2,
- 0xF6, 0x5D, 0x28, 0x40, 0x9A, 0x2C, 0x2C, 0x00,
- 0x96, 0xAA, 0xFF, 0xFF, 0x76, 0x74, 0x04, 0x0C,
- 0x3A, 0x38, 0x30, 0x38, 0x7A, 0x3C, 0x38, 0x2C,
- 0x26, 0x03, 0x7E, 0x04, 0x3A, 0x38, 0x3C, 0x28,
- 0x76, 0x74, 0x38, 0x08, 0x1B, 0x1C, 0x1C, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0xCB, 0x20, 0x01, 0x00,
- 0x00, 0x42, 0x44, 0x01, 0x6A, 0x1D, 0x22, 0xA2,
- 0xCB, 0x10, 0x00, 0x00, 0x00, 0x4A, 0x44, 0x01,
- 0x8B, 0x65, 0x88, 0x82, 0x15, 0x51, 0x00, 0x00,
- 0xCB, 0x02, 0x01, 0x00, 0x00, 0x4E, 0x44, 0x01,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x2A, 0x1F,
- 0x26, 0xA2, 0x96, 0xFF, 0x80, 0x00, 0x01, 0x00,
- 0x46, 0xB3, 0x80, 0x04, 0x8B, 0xA5, 0x88, 0x82,
- 0xCB, 0x11, 0x00, 0x00, 0x8B, 0xA5, 0x88, 0x82,
- 0xCC, 0x11, 0x00, 0x00, 0x8B, 0xA5, 0x88, 0x82,
- 0xCD, 0x11, 0x00, 0x00, 0x8B, 0xA5, 0x88, 0x82,
- 0xCE, 0x11, 0x00, 0x00, 0x8B, 0xA5, 0x88, 0x82,
- 0xCF, 0x11, 0x00, 0x00, 0x8B, 0xA5, 0x88, 0x82,
- 0xD0, 0x11, 0x00, 0x00, 0x8B, 0xA5, 0x88, 0x82,
- 0xD1, 0x11, 0x00, 0x00, 0x8B, 0xA5, 0x88, 0x82,
- 0xD2, 0x11, 0x00, 0x00, 0x0F, 0x07, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x7B, 0x1E, 0x06, 0x40,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x86, 0x52, 0x97, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x10, 0x98, 0x04, 0x7B, 0x1E, 0x08, 0xFE,
- 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x52, 0x97, 0x04, 0x7B, 0x1E, 0x08, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x52, 0x97, 0x04, 0x96, 0x45, 0xE0, 0x00,
- 0x96, 0x46, 0x1F, 0x00, 0x7B, 0x1E, 0x0C, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x52, 0x97, 0x04, 0x7B, 0x1E, 0x0C, 0x3A,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0xA6, 0x52, 0x97, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x10, 0x98, 0x04, 0x96, 0x4F, 0x1F, 0x00,
- 0x36, 0x05, 0x05, 0x0F, 0x7B, 0x1E, 0x0A, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0xE2, 0x87, 0x04, 0x3A, 0x0C, 0x0C, 0x18,
- 0xBA, 0x0C, 0x0C, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0x83, 0x04, 0x3A, 0x18, 0x18, 0x0C,
- 0x7A, 0xDA, 0x01, 0x00, 0x7B, 0x1E, 0x06, 0x40,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x86, 0x52, 0x97, 0x04, 0x7A, 0x3C, 0x0C, 0x18,
- 0x26, 0x23, 0x89, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0x83, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x10, 0x98, 0x04, 0x96, 0x4A, 0xFC, 0x00,
- 0xF6, 0x55, 0x28, 0x08, 0x96, 0x4B, 0x03, 0x00,
- 0x76, 0x5C, 0x2C, 0x20, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x10, 0x98, 0x04, 0x36, 0x0B, 0x0B, 0x04,
- 0x06, 0x10, 0x98, 0x04, 0x0E, 0x15, 0x10, 0x00,
- 0x96, 0x5F, 0x80, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x42, 0x8B, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x10, 0x98, 0x04, 0x0E, 0x25, 0x10, 0x00,
- 0x2A, 0x1F, 0x18, 0x22, 0x97, 0x87, 0x07, 0x00,
- 0x00, 0xF8, 0x01, 0x00, 0xF6, 0x7D, 0x3C, 0x50,
- 0x7A, 0x3C, 0x3C, 0x28, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0x23, 0x88, 0x04, 0x96, 0x5F, 0x80, 0x00,
- 0x66, 0xE2, 0x92, 0x04, 0x0E, 0x2B, 0x01, 0x00,
- 0x96, 0x51, 0x1C, 0x00, 0xF6, 0x0D, 0x04, 0x08,
- 0x96, 0x54, 0x03, 0x00, 0x76, 0x24, 0x10, 0x20,
- 0x36, 0x04, 0x04, 0x09, 0x7A, 0x2A, 0x00, 0x00,
- 0x66, 0x62, 0x8F, 0x04, 0x7A, 0x2A, 0x01, 0x00,
- 0x66, 0xE2, 0x8F, 0x04, 0x7A, 0x2A, 0x02, 0x00,
- 0x66, 0x62, 0x90, 0x04, 0x7A, 0x2A, 0x03, 0x00,
- 0x66, 0x62, 0x90, 0x04, 0x7A, 0x2A, 0x04, 0x00,
- 0x66, 0x62, 0x91, 0x04, 0x7A, 0x2A, 0x05, 0x00,
- 0x66, 0xE2, 0x91, 0x04, 0x7A, 0x2A, 0x06, 0x00,
- 0x66, 0x62, 0x92, 0x04, 0x3F, 0x0E, 0x10, 0x3C,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xA2, 0x92, 0x04, 0x3F, 0x0E, 0x10, 0x30,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xA2, 0x92, 0x04, 0x3F, 0x0E, 0x10, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xA2, 0x92, 0x04, 0x3F, 0x0E, 0x10, 0x18,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xA2, 0x92, 0x04, 0x3F, 0x0E, 0x10, 0x10,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xA2, 0x92, 0x04, 0x3F, 0x0E, 0x10, 0x6C,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xA2, 0x92, 0x04, 0x3F, 0x0E, 0x10, 0x54,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xA2, 0x92, 0x04, 0x3F, 0x0E, 0x10, 0x48,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x42, 0x95, 0x04, 0x0E, 0x2B, 0x00, 0x00,
- 0x96, 0x50, 0x3E, 0x00, 0x96, 0x52, 0x01, 0x00,
- 0x76, 0x14, 0x08, 0x10, 0xF6, 0x05, 0x00, 0x04,
- 0x1B, 0xAE, 0x00, 0xA6, 0x23, 0x00, 0x00, 0x00,
- 0x1B, 0xB0, 0x00, 0xA6, 0x27, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x2A, 0x1C, 0x20, 0x03,
- 0xF6, 0x71, 0x70, 0x10, 0x96, 0xE4, 0x80, 0xFF,
- 0xF6, 0x25, 0x10, 0x1C, 0x96, 0xE1, 0x70, 0x00,
- 0xF6, 0x0D, 0x04, 0x10, 0x96, 0xE3, 0x0F, 0x00,
- 0x76, 0x04, 0x10, 0x28, 0x36, 0x00, 0x00, 0x0B,
- 0x76, 0x14, 0x28, 0x2C, 0x76, 0x74, 0x04, 0x20,
- 0x36, 0x02, 0x02, 0x0E, 0x36, 0x02, 0x02, 0x03,
- 0x2A, 0x1D, 0x18, 0x22, 0x2A, 0x1F, 0x1A, 0x22,
- 0x36, 0x0E, 0x0E, 0x00, 0x36, 0x0F, 0x0F, 0x02,
- 0x6A, 0x1D, 0x18, 0x22, 0x6A, 0x1F, 0x1A, 0x22,
- 0x37, 0x49, 0x49, 0x00, 0x08, 0x00, 0x00, 0x00,
- 0xCB, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x47, 0x00,
- 0x05, 0x04, 0x9A, 0x04, 0x04, 0x00, 0x7A, 0x40,
- 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x26, 0x23, 0x7C, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x05, 0x04, 0xF6, 0x75, 0x0C, 0x08, 0x1B, 0xAE,
- 0x1C, 0x96, 0x23, 0x00, 0x00, 0x00, 0x1B, 0xB0,
- 0x1C, 0x96, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x2A, 0x1C, 0x20, 0x03, 0x96, 0x3F,
- 0x03, 0x00, 0x76, 0x7C, 0x3C, 0x0C, 0xF6, 0x21,
- 0x70, 0x78, 0x96, 0x44, 0xFF, 0x00, 0x9A, 0x0C,
- 0x0C, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x05, 0x04, 0xCB, 0x40, 0x00, 0x00, 0x00, 0x06,
- 0x44, 0x01, 0x2A, 0x01, 0x04, 0xA2, 0x17, 0x00,
- 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0x00,
- 0x66, 0xE2, 0x84, 0x02, 0x2A, 0x01, 0x00, 0xA2,
- 0x01, 0x00, 0x97, 0x00, 0x00, 0x00, 0x00, 0x80,
- 0x7F, 0x00, 0x7B, 0x02, 0x02, 0x00, 0x00, 0x00,
- 0x8E, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0xE3, 0x84, 0x02, 0x96, 0x01, 0x00, 0xF8,
- 0x96, 0x02, 0xFF, 0x07, 0x97, 0x01, 0x00, 0x00,
- 0x00, 0x38, 0x00, 0x00, 0x17, 0x02, 0x00, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x97, 0x02, 0x00, 0x00,
- 0x80, 0x03, 0x00, 0x00, 0xF6, 0x1D, 0x0C, 0x50,
- 0xF6, 0x25, 0x10, 0x4C, 0xF6, 0x2D, 0x14, 0x40,
- 0x0F, 0x0D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7A, 0x3E, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x62, 0x9E, 0x04, 0x7A, 0x3E, 0x00, 0x98,
- 0x66, 0x92, 0x9F, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE2, 0x03, 0x02, 0x7A, 0x5E, 0x0C, 0x00,
- 0x66, 0xE2, 0x9E, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE2, 0x03, 0x02, 0x2A, 0x0F, 0x00, 0xA2,
- 0x4A, 0x3C, 0xD8, 0x28, 0x4A, 0x3D, 0xEA, 0x28,
- 0xCB, 0x02, 0x00, 0x00, 0x00, 0xCE, 0x47, 0x00,
- 0x05, 0x04, 0x7A, 0x5E, 0x00, 0x00, 0x01, 0x00,
- 0x66, 0x62, 0xA0, 0x04, 0x7A, 0x5E, 0x01, 0x00,
- 0x66, 0x92, 0xA2, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE2, 0x83, 0x02, 0x2A, 0x0F, 0x00, 0xA2,
- 0x2A, 0x11, 0x00, 0xA2, 0x97, 0x83, 0x03, 0x00,
- 0x00, 0xF8, 0x07, 0x00, 0x17, 0x04, 0x04, 0x00,
- 0x80, 0x3F, 0x00, 0x00, 0x6A, 0x0F, 0x18, 0x22,
- 0x6A, 0x11, 0x1A, 0x22, 0x8B, 0x05, 0x88, 0x82,
- 0x0E, 0x11, 0x00, 0x00, 0x8B, 0x05, 0x88, 0x82,
- 0x0F, 0x11, 0x00, 0x00, 0x8B, 0x05, 0x88, 0x82,
- 0x10, 0x11, 0x00, 0x00, 0x8B, 0x05, 0x88, 0x82,
- 0x11, 0x11, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x05, 0x04, 0x8B, 0x05, 0x88, 0x82, 0x12, 0x11,
- 0x00, 0x00, 0x8B, 0x05, 0x88, 0x82, 0x13, 0x11,
- 0x00, 0x00, 0x8B, 0x05, 0x88, 0x82, 0x14, 0x11,
- 0x00, 0x00, 0x8B, 0x05, 0x88, 0x82, 0x15, 0x11,
- 0x00, 0x00, 0x8B, 0x05, 0x88, 0x82, 0x16, 0x11,
- 0x00, 0x00, 0x8B, 0x05, 0x88, 0x82, 0x17, 0x11,
- 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x05, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x6A, 0x00, 0x04, 0x03, 0x6A, 0x02, 0x04, 0x03,
- 0x6A, 0x04, 0x04, 0x03, 0x6A, 0x06, 0x04, 0x03,
- 0x6A, 0x08, 0x04, 0x03, 0x6A, 0x0A, 0x04, 0x03,
- 0x6A, 0x0C, 0x04, 0x03, 0x6A, 0x0E, 0x04, 0x03,
- 0x6A, 0x10, 0x04, 0x03, 0x6A, 0x12, 0x04, 0x03,
- 0x6A, 0x14, 0x04, 0x03, 0x6A, 0x16, 0x04, 0x03,
- 0x6A, 0x18, 0x04, 0x03, 0x6A, 0x1A, 0x04, 0x03,
- 0x6A, 0x1C, 0x04, 0x03, 0x6A, 0x1E, 0x04, 0x03,
- 0x6A, 0x20, 0x04, 0x03, 0x6A, 0x98, 0x04, 0x03,
- 0x6A, 0xAE, 0x04, 0x03, 0x6A, 0xB0, 0x04, 0x03,
- 0x6A, 0xB2, 0x04, 0x03, 0x6A, 0xB4, 0x04, 0x03,
- 0x6A, 0xE4, 0x04, 0x03, 0x6A, 0xE6, 0x04, 0x03,
- 0x6A, 0xE8, 0x04, 0x03, 0x6A, 0xEA, 0x04, 0x03,
- 0x0A, 0x0C, 0x3E, 0x2A, 0x96, 0x01, 0x01, 0x00,
- 0x66, 0xE2, 0x59, 0x00, 0x2A, 0x01, 0x5A, 0x23,
- 0x96, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0xE3, 0x59, 0x00, 0x96, 0x01, 0x10, 0x00,
- 0x46, 0x63, 0xBD, 0x04, 0x2A, 0x05, 0xD2, 0xA3,
- 0x0A, 0x38, 0x88, 0xA3, 0x2A, 0x09, 0x46, 0x23,
- 0x2A, 0x0B, 0x48, 0x23, 0x2A, 0x0D, 0x4A, 0x23,
- 0x2A, 0x0F, 0x4C, 0x23, 0x2A, 0x11, 0x2E, 0x23,
- 0x96, 0x22, 0xFF, 0xFF, 0x96, 0x09, 0xE0, 0x1F,
- 0x76, 0x4C, 0x24, 0x4C, 0x96, 0x01, 0x00, 0x08,
- 0x46, 0xA3, 0xAC, 0x04, 0x1A, 0x18, 0x18, 0x08,
- 0x1A, 0x1C, 0x1C, 0x0C, 0x6A, 0x0D, 0x4A, 0x23,
- 0x6A, 0x0F, 0x4C, 0x23, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0xAD, 0x04, 0x1A, 0x10, 0x10, 0x08,
- 0x1A, 0x14, 0x14, 0x0C, 0x6A, 0x09, 0x46, 0x23,
- 0x6A, 0x0B, 0x48, 0x23, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xA2, 0xB8, 0x04, 0x96, 0x02, 0x0C, 0x00,
- 0x5A, 0x46, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0xA2, 0xB5, 0x04, 0x0A, 0xAD, 0xF8, 0x28,
- 0x2A, 0x17, 0x4E, 0x23, 0x2A, 0x19, 0xDA, 0xA3,
- 0x2A, 0x09, 0x50, 0x23, 0x2A, 0x0B, 0xD8, 0xA3,
- 0x2A, 0x1B, 0x8C, 0xA3, 0xF6, 0x6D, 0x34, 0x34,
- 0x96, 0xDD, 0x10, 0x00, 0x17, 0x07, 0xC9, 0xF7,
- 0xFF, 0xFF, 0x7F, 0x00, 0x36, 0x92, 0x0E, 0x0D,
- 0x7A, 0x08, 0x14, 0x10, 0x7A, 0x0C, 0x30, 0x2C,
- 0x66, 0x62, 0xBD, 0x04, 0x8B, 0xDC, 0x9D, 0xE2,
- 0x1E, 0x05, 0x00, 0x00, 0x8B, 0xDC, 0x9D, 0x22,
- 0x1F, 0x05, 0x00, 0x00, 0x2A, 0x03, 0x64, 0x22,
- 0x2A, 0x09, 0x84, 0x23, 0x17, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x62, 0xB2, 0x04, 0x7A, 0x00, 0x08, 0x0C,
- 0x46, 0xA3, 0xB1, 0x04, 0xF6, 0x0D, 0x04, 0x60,
- 0x96, 0x11, 0x7F, 0x00, 0x3A, 0x10, 0x10, 0x04,
- 0x06, 0x42, 0xB2, 0x04, 0xBA, 0x10, 0x10, 0x00,
- 0x17, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x00,
- 0x66, 0x42, 0xB2, 0x04, 0x0E, 0x13, 0x00, 0x00,
- 0x6A, 0x09, 0x84, 0x23, 0x6A, 0x0B, 0x50, 0x23,
- 0x6A, 0x19, 0x4E, 0x23, 0x96, 0x81, 0x10, 0x00,
- 0x66, 0x62, 0xBD, 0x04, 0x0A, 0x1C, 0xFE, 0xA3,
- 0x96, 0x11, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0xA3, 0xB3, 0x04, 0x0F, 0x05, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x7A, 0x0C, 0x0C, 0x08,
- 0xBF, 0x0E, 0x0C, 0xBC, 0x00, 0x00, 0x00, 0x00,
- 0x4E, 0x0C, 0x28, 0x00, 0xB6, 0x99, 0x01, 0x00,
- 0x97, 0x80, 0x81, 0xFF, 0x7F, 0x00, 0x00, 0x00,
- 0x66, 0xE2, 0xB4, 0x04, 0x6A, 0x07, 0x14, 0xA2,
- 0x6A, 0x13, 0x16, 0xA2, 0x2A, 0x13, 0xEC, 0x23,
- 0x97, 0x81, 0x81, 0xFF, 0x7F, 0x00, 0x00, 0x00,
- 0x3A, 0x24, 0x24, 0x0C, 0x6A, 0x13, 0xEC, 0x23,
- 0x06, 0x62, 0xBD, 0x04, 0x0A, 0xAD, 0xF8, 0x28,
- 0x0A, 0xCD, 0xFA, 0x28, 0x3A, 0x30, 0x30, 0x0C,
- 0x4A, 0x64, 0xFA, 0x28, 0x8B, 0xE4, 0x9D, 0xE2,
- 0x1E, 0x05, 0x00, 0x00, 0x8B, 0xE4, 0x9D, 0x22,
- 0x1F, 0x05, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x60,
- 0x1F, 0x05, 0x00, 0x00, 0x96, 0x81, 0x08, 0x00,
- 0x66, 0x62, 0xBD, 0x04, 0xF6, 0x1D, 0x30, 0x08,
- 0x4E, 0x0C, 0x28, 0x00, 0xB6, 0x99, 0x01, 0x00,
- 0x6A, 0x07, 0x14, 0xA2, 0x6A, 0x13, 0x16, 0xA2,
- 0x2A, 0x13, 0xEC, 0x23, 0x97, 0x81, 0x81, 0xFF,
- 0x7F, 0x00, 0x00, 0x00, 0x3A, 0x24, 0x24, 0x0C,
- 0x6A, 0x13, 0xEC, 0x23, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0xBD, 0x04, 0x0A, 0xAD, 0xE8, 0x29,
- 0x0A, 0xBD, 0x38, 0x2A, 0x0A, 0xCD, 0xF8, 0x28,
- 0x0A, 0xDD, 0xFA, 0x28, 0x1A, 0x34, 0x34, 0x0C,
- 0x4A, 0x6C, 0xFA, 0x28, 0x8B, 0xE4, 0x9D, 0xE2,
- 0x1E, 0x05, 0x00, 0x00, 0x5A, 0x04, 0x28, 0x2C,
- 0x46, 0x63, 0xBD, 0x04, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xF6, 0x51, 0x00, 0x8B, 0xE4, 0x9D, 0x22,
- 0x1F, 0x05, 0x00, 0x00, 0x2A, 0x01, 0xE6, 0x23,
- 0x7A, 0x02, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x62, 0xBC, 0x04, 0x0A, 0x0D, 0xD8, 0x28,
- 0x7A, 0x02, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0x23, 0xBC, 0x04, 0x37, 0x49, 0x49, 0x00,
- 0x08, 0x00, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00,
- 0x00, 0xCE, 0x47, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0xBC, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xA0, 0x7B, 0x04, 0x96, 0x81, 0x04, 0x00,
- 0x66, 0x62, 0xBD, 0x04, 0xF6, 0x1D, 0x34, 0x08,
- 0x9A, 0x0C, 0x0C, 0x00, 0x4E, 0x0C, 0x30, 0x00,
- 0xB6, 0x99, 0x01, 0x00, 0x6A, 0x07, 0x14, 0xA2,
- 0x6A, 0x13, 0x16, 0xA2, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x50, 0xBF, 0x02, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE2, 0x59, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0xE6, 0xE3, 0xBD, 0x7C, 0x17, 0x49, 0xC9, 0xFF,
- 0xBF, 0xFF, 0x7F, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xD0, 0x52, 0x01, 0x01, 0x00, 0x01, 0x00,
- 0xE6, 0x23, 0x89, 0x0B, 0x8B, 0x05, 0x89, 0x80,
- 0x8C, 0x51, 0x00, 0x00, 0x2A, 0x01, 0x58, 0x22,
- 0x17, 0x07, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00,
- 0x0A, 0x5C, 0x79, 0x28, 0x7B, 0x3E, 0x2A, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x66, 0x62, 0xC0, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE2, 0x89, 0x03, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xD0, 0xCA, 0x00, 0xAB, 0x18, 0x00, 0xE0,
- 0x08, 0x05, 0x00, 0x00, 0x0A, 0x2D, 0x78, 0x28,
- 0x0A, 0x8D, 0x76, 0x28, 0x0A, 0x9D, 0x22, 0x28,
- 0x0F, 0x17, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
- 0x2A, 0x1D, 0x04, 0xA0, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x02, 0x91, 0x03, 0x0A, 0xAD, 0x0C, 0x28,
- 0x0A, 0xBD, 0x10, 0x28, 0x0A, 0xCD, 0x16, 0x28,
- 0x0A, 0xDD, 0x18, 0x28, 0x0A, 0xFD, 0x46, 0x28,
- 0x0A, 0x0D, 0x1F, 0x28, 0x2A, 0x1D, 0x14, 0x22,
- 0xB7, 0x26, 0x05, 0xD0, 0x04, 0x00, 0x00, 0x00,
- 0xEE, 0x39, 0x00, 0x0D, 0x6E, 0x3A, 0x00, 0x0E,
- 0x0F, 0xA4, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x0F, 0xDA, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x1A, 0x04, 0x2C, 0x2C, 0x1A, 0x08, 0x04, 0x2C,
- 0x76, 0x1C, 0x2C, 0x40, 0x37, 0xC4, 0x01, 0x00,
- 0x08, 0x00, 0x08, 0x00, 0xB7, 0xC4, 0x00, 0x00,
- 0x08, 0x00, 0x00, 0x00, 0xB6, 0x22, 0x00, 0x10,
- 0x4E, 0x24, 0x0A, 0x00, 0x0E, 0x28, 0x2A, 0x00,
- 0x0F, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x0E, 0x55, 0x36, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x46, 0xC4, 0xC5, 0x04,
- 0xB3, 0xFF, 0x0A, 0x09, 0x41, 0x83, 0x2F, 0x00,
- 0x0A, 0x2D, 0x40, 0x28, 0x2A, 0x4D, 0x96, 0x21,
- 0xB6, 0xC0, 0x18, 0x0A, 0xB6, 0xC1, 0x08, 0x00,
- 0x0E, 0x34, 0x01, 0x00, 0x0E, 0x28, 0x06, 0x00,
- 0x0E, 0x0F, 0x00, 0x00, 0x0E, 0x55, 0x0A, 0x00,
- 0x46, 0x04, 0xC8, 0x04, 0x4E, 0x34, 0x0D, 0x00,
- 0x4E, 0x28, 0x0E, 0x00, 0x0E, 0x59, 0x36, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x66, 0xC4, 0xC7, 0x04,
- 0x53, 0xFF, 0x2A, 0xE4, 0x4E, 0xEE, 0xE0, 0x03,
- 0x9A, 0x0C, 0x0C, 0x00, 0xBA, 0x04, 0x34, 0x00,
- 0x96, 0xA0, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0x63, 0xC9, 0x04, 0xB7, 0x26, 0x06, 0x10,
- 0x04, 0x00, 0x00, 0x00, 0xB7, 0x84, 0x00, 0x00,
- 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE2, 0xC9, 0x04, 0xB7, 0x26, 0x06, 0x0C,
- 0x04, 0x00, 0x00, 0x00, 0xB7, 0x84, 0x00, 0x00,
- 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x47, 0x06, 0x00,
- 0x06, 0x00, 0x00, 0x00, 0xAE, 0xA1, 0x01, 0x00,
- 0x0E, 0x55, 0x36, 0x00, 0x31, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x46, 0xC4, 0xCA, 0x04,
- 0xB3, 0xFF, 0x0A, 0x04, 0x89, 0x03, 0x00, 0x00,
- 0x0E, 0x5B, 0x00, 0x00, 0x0E, 0x5F, 0x00, 0x00,
- 0x0E, 0x63, 0x00, 0x00, 0x0E, 0x67, 0x00, 0x00,
- 0x0E, 0x58, 0x1C, 0x01, 0x8E, 0x5C, 0x1C, 0x01,
- 0x0E, 0x60, 0x20, 0x01, 0x8E, 0x64, 0x20, 0x01,
- 0x0E, 0x69, 0x58, 0x00, 0x7A, 0x00, 0x58, 0x5C,
- 0xA6, 0x82, 0xCC, 0x04, 0x0E, 0x69, 0x5C, 0x00,
- 0x0E, 0x6D, 0x60, 0x00, 0x7A, 0x00, 0x60, 0x64,
- 0xA6, 0x02, 0xCD, 0x04, 0x0E, 0x6D, 0x64, 0x00,
- 0x0E, 0x59, 0x68, 0x00, 0x7A, 0x00, 0x68, 0x6C,
- 0xA6, 0x82, 0xCD, 0x04, 0x0E, 0x59, 0x6C, 0x00,
- 0x2A, 0x01, 0xB2, 0x21, 0x7B, 0x3E, 0x00, 0x8C,
- 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0xA6, 0xA2, 0xCE, 0x04, 0xBF, 0x5E, 0x58, 0xCC,
- 0xCC, 0x00, 0x00, 0x00, 0x76, 0xBE, 0x5C, 0x44,
- 0x06, 0x02, 0xCF, 0x04, 0xBF, 0x5E, 0x58, 0x78,
- 0x14, 0x00, 0x00, 0x00, 0x76, 0xBE, 0x5C, 0x44,
- 0xF6, 0x05, 0x34, 0x14, 0xAE, 0x27, 0x00, 0x00,
- 0x0E, 0x63, 0x00, 0x00, 0x0E, 0x0B, 0x00, 0x00,
- 0x0E, 0x0F, 0x00, 0x00, 0x0E, 0x13, 0x00, 0x00,
- 0x0E, 0x17, 0x00, 0x00, 0x0E, 0x1B, 0x00, 0x00,
- 0x0E, 0x1F, 0x00, 0x00, 0xAE, 0xA1, 0x03, 0x00,
- 0x0E, 0x24, 0x5D, 0x00, 0x0E, 0x59, 0x02, 0x00,
- 0x66, 0x04, 0xD4, 0x04, 0xAE, 0x4A, 0x10, 0x00,
- 0x31, 0x00, 0x01, 0x00, 0x46, 0x04, 0xD1, 0x04,
- 0xB3, 0xFF, 0x0A, 0x04, 0x89, 0x03, 0x00, 0x00,
- 0x0E, 0x08, 0x1C, 0x01, 0x8E, 0x0C, 0x1C, 0x01,
- 0x0E, 0x10, 0x20, 0x01, 0x8E, 0x14, 0x20, 0x01,
- 0x79, 0x59, 0xF9, 0x79, 0x7A, 0x10, 0x18, 0x10,
- 0x7A, 0x14, 0x18, 0x14, 0xF6, 0x15, 0x08, 0x7C,
- 0xF6, 0x1D, 0x0C, 0x7C, 0xF6, 0x25, 0x10, 0x7C,
- 0xF6, 0x2D, 0x14, 0x7C, 0x1A, 0x60, 0x60, 0x08,
- 0x76, 0x3C, 0x1C, 0x04, 0x76, 0x44, 0x08, 0x60,
- 0x36, 0x07, 0x07, 0x08, 0x1A, 0x60, 0x60, 0x0C,
- 0x76, 0x44, 0x0C, 0x40, 0x36, 0x07, 0x07, 0x08,
- 0x1A, 0x60, 0x60, 0x10, 0x76, 0x44, 0x10, 0x20,
- 0x36, 0x07, 0x07, 0x08, 0x1A, 0x60, 0x60, 0x14,
- 0x36, 0x07, 0x07, 0x05, 0xAE, 0x2B, 0x00, 0x00,
- 0x0E, 0x61, 0x25, 0x00, 0x2E, 0xB1, 0xFF, 0x7F,
- 0x76, 0x04, 0x34, 0x08, 0x76, 0x0C, 0x34, 0x04,
- 0x0E, 0x55, 0x02, 0x00, 0x31, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x46, 0x44, 0xD5, 0x04,
- 0xB3, 0x33, 0x16, 0x04, 0x89, 0x03, 0x00, 0x00,
- 0x0E, 0x67, 0x00, 0x00, 0x0E, 0x6B, 0x00, 0x00,
- 0x0E, 0x64, 0x14, 0x01, 0x8E, 0x68, 0x14, 0x01,
- 0xBA, 0x64, 0x64, 0x00, 0x5A, 0x68, 0x00, 0x68,
- 0x0E, 0x79, 0x68, 0x00, 0xF6, 0x75, 0x34, 0x10,
- 0x9A, 0x38, 0x38, 0x00, 0x76, 0x74, 0x38, 0x14,
- 0x7A, 0x08, 0x68, 0x38, 0x01, 0x00, 0x01, 0x00,
- 0xE6, 0x42, 0xD7, 0x04, 0x7A, 0x78, 0x68, 0x00,
- 0xF6, 0x8D, 0x68, 0x14, 0xF6, 0x95, 0x64, 0x14,
- 0x0F, 0x17, 0xFE, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
- 0x0F, 0x19, 0xFE, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
- 0x0F, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x0E, 0x21, 0x1C, 0x00, 0xF6, 0x75, 0x34, 0x10,
- 0x97, 0x0F, 0x04, 0x00, 0x00, 0x00, 0x40, 0x00,
- 0x66, 0x02, 0xD9, 0x04, 0x0E, 0x2D, 0x54, 0x00,
- 0x76, 0x44, 0x20, 0x04, 0x9A, 0x54, 0x54, 0x00,
- 0x7A, 0x7C, 0x54, 0x38, 0x01, 0x00, 0x01, 0x00,
- 0x26, 0x83, 0xD8, 0x04, 0xF6, 0x75, 0x34, 0x0C,
- 0x97, 0x0F, 0x04, 0x00, 0x00, 0x00, 0x40, 0x00,
- 0x66, 0x62, 0xDA, 0x04, 0x0E, 0x31, 0x54, 0x00,
- 0x06, 0xE2, 0xDA, 0x04, 0x76, 0x44, 0x20, 0x04,
- 0x9A, 0x54, 0x54, 0x00, 0x7A, 0x7C, 0x54, 0x38,
- 0x26, 0xC3, 0xD9, 0x04, 0x7A, 0x7C, 0x48, 0x2C,
- 0x66, 0xC2, 0xDC, 0x04, 0x76, 0x04, 0x34, 0x08,
- 0x7A, 0x7C, 0x2C, 0x30, 0x76, 0xFC, 0x7C, 0x14,
- 0x3A, 0x7C, 0x00, 0x7C, 0xBF, 0x0A, 0x00, 0x14,
- 0x00, 0x00, 0x00, 0x00, 0x3F, 0x0A, 0x08, 0x28,
- 0x00, 0x00, 0x00, 0x00, 0xBA, 0x08, 0x08, 0x00,
- 0x7A, 0x7C, 0x7C, 0x08, 0x01, 0x00, 0x01, 0x00,
- 0xE6, 0xC2, 0xDC, 0x04, 0x76, 0xCC, 0x2C, 0x14,
- 0x7A, 0x6C, 0x64, 0x3C, 0x0E, 0x2D, 0x3C, 0x00,
- 0x2A, 0x01, 0x90, 0x21, 0x7B, 0x3E, 0x00, 0x14,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0xA6, 0xC2, 0xDD, 0x04, 0x4A, 0x8E, 0x4C, 0x2A,
- 0x0A, 0x7D, 0x46, 0x2A, 0x0A, 0x8D, 0x4C, 0x2A,
- 0x0A, 0x5D, 0x51, 0x2A, 0x0A, 0x0D, 0x4E, 0x2A,
- 0x0A, 0x1D, 0x44, 0x2A, 0x0A, 0x2D, 0x48, 0x2A,
- 0xF6, 0x1D, 0x34, 0x10, 0x9A, 0x0C, 0x0C, 0x00,
- 0x76, 0x1C, 0x0C, 0x14, 0x7A, 0x7C, 0x64, 0x0C,
- 0xE6, 0xA2, 0xDF, 0x04, 0x0E, 0x1F, 0x01, 0x00,
- 0x9A, 0x08, 0x08, 0x00, 0x0E, 0x57, 0x00, 0x00,
- 0x06, 0xE2, 0xE3, 0x04, 0x7B, 0x3E, 0x0E, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0xE3, 0xE3, 0x04, 0x7A, 0x7C, 0x20, 0x44,
- 0x46, 0x23, 0xE1, 0x04, 0x0E, 0x2D, 0x78, 0x00,
- 0x0E, 0x57, 0x00, 0x00, 0x0E, 0x07, 0x00, 0x00,
- 0x0E, 0x21, 0x44, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE2, 0xE3, 0x04, 0x7B, 0x3E, 0x2A, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0x63, 0xE3, 0x04, 0x7A, 0x7C, 0x44, 0x00,
- 0xA6, 0x22, 0xE2, 0x04, 0x4A, 0xF6, 0x54, 0x2A,
- 0x0E, 0x01, 0x44, 0x00, 0x9A, 0x04, 0x04, 0x00,
- 0x7B, 0x3E, 0x02, 0x28, 0x00, 0x00, 0x00, 0x00,
- 0x26, 0xE3, 0xE3, 0x04, 0x0A, 0xBD, 0x54, 0x2A,
- 0x0E, 0x57, 0x00, 0x00, 0x0E, 0x07, 0x00, 0x00,
- 0x0E, 0x23, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0xE2, 0xE3, 0x04, 0x0E, 0x57, 0x01, 0x00,
- 0x0E, 0x07, 0x01, 0x00, 0x4A, 0xF6, 0x54, 0x2A,
- 0x0E, 0x01, 0x44, 0x00, 0x0A, 0x3D, 0x4A, 0x2A,
- 0x0A, 0x6D, 0x52, 0x2A, 0x0E, 0x13, 0x14, 0x00,
- 0x0E, 0x17, 0x0A, 0x00, 0x2A, 0x3F, 0x90, 0x21,
- 0x7B, 0x3E, 0x3E, 0x14, 0x00, 0x00, 0x00, 0x00,
- 0xA6, 0x22, 0xE5, 0x04, 0x0E, 0x13, 0x05, 0x00,
- 0x0E, 0x17, 0x02, 0x00, 0x7B, 0x3E, 0x0E, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0xE3, 0xE7, 0x04, 0x9A, 0x0C, 0x0C, 0x00,
- 0x7B, 0x3E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00,
- 0x46, 0x63, 0xE6, 0x04, 0x0E, 0x19, 0x64, 0x00,
- 0x06, 0x22, 0xE8, 0x04, 0x7A, 0x7C, 0x0C, 0x10,
- 0x46, 0x23, 0xE8, 0x04, 0x7A, 0x7C, 0x08, 0x14,
- 0x26, 0x23, 0xE7, 0x04, 0x76, 0xFC, 0x34, 0x08,
- 0x7A, 0x2C, 0x18, 0x7C, 0x0E, 0x1F, 0x00, 0x00,
- 0x0E, 0x0F, 0x00, 0x00, 0x0E, 0x0B, 0x00, 0x00,
- 0x0E, 0x1B, 0x00, 0x00, 0x0E, 0x21, 0x44, 0x00,
- 0x06, 0x22, 0xE8, 0x04, 0x0E, 0x0F, 0x00, 0x00,
- 0x0E, 0x0B, 0x00, 0x00, 0x4A, 0x3E, 0x46, 0x2A,
- 0x4A, 0x46, 0x4C, 0x2A, 0x4A, 0xAE, 0x50, 0x2A,
- 0x4A, 0x06, 0x4E, 0x2A, 0x4A, 0x0E, 0x44, 0x2A,
- 0x4A, 0x16, 0x48, 0x2A, 0x4A, 0x1E, 0x4A, 0x2A,
- 0x4A, 0x36, 0x52, 0x2A, 0x36, 0x1F, 0x07, 0x15,
- 0x7B, 0x3E, 0x3E, 0x02, 0x00, 0x00, 0x00, 0x00,
- 0x46, 0xC3, 0xEA, 0x04, 0x7B, 0x3E, 0x3C, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x26, 0xC3, 0xEA, 0x04, 0x7B, 0x3E, 0x3C, 0x40,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x86, 0xC2, 0xEA, 0x04, 0x0E, 0x2D, 0x78, 0x00,
- 0x0A, 0x7D, 0x56, 0x2A, 0x0A, 0x8D, 0x5A, 0x2A,
- 0x0A, 0x5D, 0x5D, 0x2A, 0x2A, 0x01, 0x90, 0x21,
- 0x7B, 0x3E, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00,
- 0x26, 0x63, 0xF2, 0x04, 0x7A, 0x7C, 0x48, 0x1C,
- 0xA6, 0x62, 0xEC, 0x04, 0x7A, 0x7C, 0x48, 0x1C,
- 0x26, 0xE3, 0xEE, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x62, 0xF1, 0x04, 0x7B, 0x3E, 0x10, 0x04,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0xA3, 0xED, 0x04, 0xAB, 0x02, 0x00, 0xA0,
- 0x4B, 0x05, 0x00, 0x00, 0xAB, 0x02, 0x00, 0x60,
- 0x4B, 0x05, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x22, 0xF3, 0x04, 0x9A, 0x54, 0x54, 0x00,
- 0x4A, 0xAE, 0x5C, 0x2A, 0x7B, 0x3E, 0x2A, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x86, 0x62, 0xF1, 0x04, 0xAB, 0x02, 0x00, 0x60,
- 0x4B, 0x05, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x22, 0xF3, 0x04, 0x7B, 0x3E, 0x10, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x46, 0x23, 0xF0, 0x04, 0xAB, 0x02, 0x00, 0x60,
- 0x4B, 0x05, 0x00, 0x00, 0xAB, 0x04, 0x00, 0xA0,
- 0x4B, 0x05, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x22, 0xF3, 0x04, 0x9A, 0x54, 0x54, 0x00,
- 0x4A, 0xAE, 0x5C, 0x2A, 0x7B, 0x3E, 0x2A, 0x28,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x86, 0x62, 0xF1, 0x04, 0xAB, 0x04, 0x00, 0x60,
- 0x4B, 0x05, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x22, 0xF3, 0x04, 0x4A, 0x96, 0x56, 0x2A,
- 0x4A, 0xDE, 0x58, 0x2A, 0xAB, 0x00, 0x00, 0x60,
- 0x4B, 0x05, 0x00, 0x00, 0xAB, 0x00, 0x00, 0xA0,
- 0x4B, 0x05, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x22, 0xF3, 0x04, 0x4A, 0x96, 0x56, 0x2A,
- 0x4A, 0x86, 0x58, 0x2A, 0xAB, 0x00, 0x00, 0x60,
- 0x4B, 0x05, 0x00, 0x00, 0xAB, 0x00, 0x00, 0xA0,
- 0x4B, 0x05, 0x00, 0x00, 0x0A, 0xFD, 0x59, 0x2A,
- 0x7A, 0x70, 0x7C, 0x40, 0x3B, 0x38, 0x38, 0x14,
- 0x00, 0x00, 0x00, 0x00, 0x0F, 0x03, 0x9C, 0xFF,
- 0xFF, 0xFF, 0x01, 0x00, 0x0F, 0x05, 0x18, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x70, 0x04,
- 0xA6, 0xE2, 0xF4, 0x04, 0x7A, 0x00, 0x60, 0x08,
- 0xA6, 0xE2, 0xF4, 0x04, 0x01, 0x00, 0x01, 0x00,
- 0x06, 0x02, 0xF5, 0x04, 0x0E, 0x73, 0x00, 0x00,
- 0x7A, 0x74, 0x2C, 0x3C, 0x6A, 0x2D, 0xA4, 0x28,
- 0x6A, 0x2F, 0xA6, 0x28, 0x6A, 0x31, 0xA8, 0x28,
- 0x6A, 0x33, 0xAA, 0x28, 0x6A, 0x35, 0xAC, 0x28,
- 0x6A, 0x37, 0xAE, 0x28, 0x6A, 0x39, 0xB0, 0x28,
- 0x6A, 0x3B, 0x94, 0x28, 0x0A, 0x1D, 0x77, 0x28,
- 0x0A, 0x2D, 0x3B, 0x28, 0x3A, 0x00, 0x44, 0x74,
- 0x16, 0x00, 0x00, 0x12, 0x4A, 0x06, 0x76, 0x28,
- 0x4A, 0xEC, 0x06, 0xA4, 0x0A, 0x3D, 0x61, 0x28,
- 0x5A, 0x00, 0x60, 0x4C, 0x01, 0x00, 0x01, 0x00,
- 0xA6, 0xD2, 0xF7, 0x04, 0x37, 0x49, 0x49, 0x04,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x05, 0x04, 0x17, 0x49, 0xC9, 0xFB, 0xFF, 0xFF,
- 0x7F, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x05, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xDF, 0x01, 0x9A, 0xFF, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
- 0x00, 0x00, 0x00, 0x00,
-};
-#endif /* __TCC317X_BOOT_TDMB_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcc_fic_decoder/tcc_fic_decoder.h b/drivers/media/tdmb/tcc3170/inc/tcc_fic_decoder/tcc_fic_decoder.h
deleted file mode 100644
index 17f2ed6..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcc_fic_decoder/tcc_fic_decoder.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * tcc_fic_decoder.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCC_FIC_DECODER_H__
-#define __TCC_FIC_DECODER_H__
-#include "tcc_fic_fig.h"
-
-#define CH_UPDATE_NO_DATA 0
-#define CH_UPDATE_ESSENTIAL_DATA 1
-#define CH_UPDATE_FULL_DATA 2
-
-#define MAX_FIC_SIZE 384
-#define TCC_FIB_SIZE 32
-
-struct fic_parser_matadata {
- struct tcc_ensemble esmbl_start;
- struct tcc_service svc_start[NUM_SVC];
- struct tcc_service_comp svc_comp_start[NUM_SVC_COMP];
- struct tcc_sub_channel subch_start[NUM_SUB_CH];
- struct tcc_user_app_types user_app_start[NUM_USER_APP];
- struct tcc_program_type prg_start[NUM_SVC_COMP];
- struct tcc_xpad_user_app fig1_6_start[NUM_USER_APP];
-
- u8 fig_cn;
- u8 fig_oe0;
- u8 fig_pd;
- u8 fig_oe1;
-
- u8 reconf_stage;
- u8 cif_count_hi;
- u8 cif_count_lo;
- u16 cif_count;
- u8 occur_change;
-
- u32 fib_cnt; /* max 12 */
-};
-
-#define MAX_SVC_COMP_NUM 2
-#define MAX_SVC_NUM 10
-
-struct tcc_service_comp_info {
- struct tcc_service_comp svc_comp;
- struct tcc_sub_channel sub_ch;
-};
-
-struct tcc_service_info {
- struct tcc_service svc;
- struct tcc_service_comp_info svc_comp_info[MAX_SVC_COMP_NUM];
-};
-
-struct tcc_ensemble_info {
- struct tcc_ensemble ensbl;
- struct tcc_service_info svc_info[MAX_SVC_NUM];
-};
-
-s32 fig0_ext00(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen);
-s32 fig0_ext01(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen);
-s32 fig0_ext02(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen);
-s32 fig0_ext03(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen);
-s32 fig0_ext04(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen);
-s32 fig0_ext05(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen);
-s32 fig0_ext07(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen);
-s32 fig0_ext08(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen);
-s32 fig0_ext13(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen);
-s32 fig0_ext17(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen);
-
-s32 fig1_ext00(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen, u8 charset);
-s32 fig1_ext01(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen, u8 charset);
-s32 fig1_ext04(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen, u8 charset);
-s32 fig1_ext05(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen, u8 charset);
-s32 fig1_ext06(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 iLen, u8 charset);
-
-void tcc_fic_parser_init(void);
-s32 tcc_fic_run_decoder(u8 *buff, s32 size);
-
-void tcc_fic_disp_ensbl_info(struct tcc_ensemble_info *ensbl_info);
-struct tcc_ensemble_info *tcc_fic_get_ensbl_info(s32 _disp);
-
-struct tcc_service_comp_info *tcc_fic_get_svc_comp_info(s32 _subch_id);
-u8 tcc_fic_get_ptype(struct tcc_service_comp_info *svc_comp_info);
-u8 tcc_fic_get_plevel(struct tcc_service_comp_info *svc_comp_info);
-u16 tcc_fic_get_cu_start(struct tcc_service_comp_info *svc_comp_info);
-u16 tcc_fic_get_cu_size(struct tcc_service_comp_info *svc_comp_info);
-u8 tcc_fic_get_subch_id(struct tcc_service_comp_info *svc_comp_info);
-u8 tcc_fic_get_bitrate(struct tcc_service_comp_info *svc_comp_info);
-u8 tcc_fic_get_rs(struct tcc_service_comp_info *svc_comp_info);
-
-
-#endif /* __TCC_FIC_DECODER_H__ */
diff --git a/drivers/media/tdmb/tcc3170/inc/tcc_fic_decoder/tcc_fic_fig.h b/drivers/media/tdmb/tcc3170/inc/tcc_fic_decoder/tcc_fic_fig.h
deleted file mode 100644
index 895c13a..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcc_fic_decoder/tcc_fic_fig.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * tcc_fic_fig.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCC_FIC_FIG_H__
-#define __TCC_FIC_FIG_H__
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-#define FICERR_FIG1_5_NOTREADY_SERVICE 11050
-#define FICERR_FIG1_4_NOTREADY_SRVCOMP 11041
-#define FICERR_FIG1_4_NOTREADY_SRVCOMP1 11040
-#define FICERR_FIG1_1_NOTREADY_SERVICE 11010
-#define FICERR_FIG0_13_ALREADY_USERAPPL 10130
-#define FICERR_FIG0_7_BLOCK 10071
-#define FICERR_FIG0_7_RETURN 10070
-#define FICERR_FIG0_5_NOTREADY_SERVICE 10051
-#define FICERR_FIG0_5_NOTREADY_SRVCOMP 10050
-#define FICERR_FIG0_4_NOTREADY_SRVCOMP 10041
-#define FICERR_FIG0_4_ALREADY_CA_FIELD 10040
-#define FICERR_FIG0_3_NOTREADY_SRVCOMP 10032
-#define FICERR_FIG0_3_NOTREADY_SRVCOMP1 10031
-#define FICERR_FIG0_3_ALREADY_SRVCOMP 10030
-#define FICERR_FIG_NODATA 2
-#define FICERR_FIBD_ENDMARKER 1
-#define FICERR_SUCCESS 0
-
-#define FICERR_FIBD_FICSYNC_FAILURE -1
-#define FICERR_FIBD_CRC_FAILURE -2
-#define FICERR_FIBD_UNKNOWN_FIGTYPE -3
-#define FICERR_FIBD_INVALID_LENGTH -4
-#define FICERR_FIG0_NEXT_FIG -1000
-#define FICERR_FIG0_NEXT_FIG1 -1001
-#define FICERR_FIG0_0_NO_ENSEMBLEARRAY -10000
-#define FICERR_FIG0_1_FULL_SUBCHARRAY -10010
-#define FICERR_FIG0_1_INVALID_LENGTH -10011
-#define FICERR_FIG0_1_NO_SUBCHARRAY -10012
-#define FICERR_FIG0_2_FULL_SERVICEARRAY -10020
-#define FICERR_FIG0_2_FULL_SRVCOMPARRAY -10021
-#define FICERR_FIG0_2_INVALID_LENGTH -10022
-#define FICERR_FIG0_2_NO_SRVARRAY -10023
-#define FICERR_FIG0_2_NO_SRVCOMPARRAY -10024
-#define FICERR_FIG0_3_INVALID_LENGTH -10030
-#define FICERR_FIG0_3_NO_SRVCOMPARRAY -10031
-#define FICERR_FIG0_4_INVALID_LENGTH -10040
-#define FICERR_FIG0_4_NO_SRVCOMPARRAY -10041
-#define FICERR_FIG0_5_INVALID_LENGTH -10050
-#define FICERR_FIG0_5_NO_SRVCOMPARRAY -10051
-#define FICERR_FIG0_8_INVALID_LENGTH -10080
-#define FICERR_FIG0_8_NO_SRVCOMPARRAY -10081
-#define FICERR_FIG0_13_FULL_USERAPPLARRAY -10130
-#define FICERR_FIG0_13_INVALID_LENGTH -10131
-#define FICERR_FIG0_13_NO_USERAPPLARRAY -10132
-#define FICERR_FIG0_17_OTHER_ENSEMBLE -10170
-#define FICERR_FIG0_17_NO_PROGTYPEARRAY -10171
-#define FICERR_FIG0_17_FULL_PROGTYPEARRAY -10172
-#define FICERR_FIG0_17_INVALID_LENGTH -10073
-#define FICERR_FIG1_1_NO_SERVICEARRAY -11011
-#define FICERR_FIG1_4_NO_SRVCOMPARRAY -11041
-#define FICERR_FIG1_5_NO_SERVICEARRAY -11052
-#define FICERR_FIG1_6_NO_XPADLABELARRAY -11061
-
-#define FIG0 0x0
-#define FIG1 0x1
-
-#define EXT_00 0
-#define EXT_01 1
-#define EXT_02 2
-#define EXT_03 3
-#define EXT_04 4
-#define EXT_05 5
-#define EXT_06 6
-#define EXT_07 7
-#define EXT_08 8
-#define EXT_09 9
-#define EXT_10 10
-#define EXT_11 11
-#define EXT_12 12
-#define EXT_13 13
-#define EXT_14 14
-#define EXT_15 15
-#define EXT_16 16
-#define EXT_17 17
-#define EXT_18 18
-#define EXT_19 19
-#define EXT_20 20
-#define EXT_21 21
-#define EXT_22 22
-#define EXT_23 23
-#define EXT_24 24
-#define EXT_25 25
-#define EXT_26 26
-#define EXT_27 27
-#define EXT_28 28
-#define EXT_29 29
-#define EXT_30 30
-#define EXT_31 31
-
-#define INITVAL_SCIDS 0xff
-
-#define NUM_SVC 64 /**< max num of struct tcc_service */
-#define NUM_SUB_CH (NUM_SVC + 0) /**< max num of struct tcc_sub_channel */
-#define NUM_SVC_COMP NUM_SUB_CH /**< max num of struct tcc_service_comp */
-#define NUM_PRG_TYPE NUM_SVC_COMP /**< max_num of struct tcc_program_type. */
-#define NUM_USER_APP NUM_SVC /**< max_num of struct tcc_user_app_type. */
-
-/**FIG 0/1 */
-struct tcc_sub_channel {
- u8 subch_id; /**< 6bits Sub channel Id */
- u8 tbl_index; /**< 6bits TableIndex */
- u8 form_flag; /**< [3] : FormFlag@n
- * [2] : Option@n
- * [1~0] : protection */
- u16 start_cu; /**< 10bits Start Address */
- u16 size_cu; /**< 10bits Sub channel size */
-};
-
-/** FIG 0/2 and FIG1 */
-struct tcc_service_comp {
- u8 order; /**< 4bits 0 : primary, 1: secondary */
- u8 tmid; /**< 2bits Transport Mechanism Id */
- u8 ascty_dscty; /**< 6bits Audio Service Component Type */
- u8 fidc_id; /**< 6bits subch_id or FIDCId in FIG 0/4 */
- u8 ca_flag; /**< 1bit CA Flag */
- u8 dg_mf_flag; /**< 1bit DG Flag or MF flag */
- u8 lang; /**< 8bit language field of FIG 0/5 */
- u8 scids; /**< 4bit Service component Identifier
- * within ther Service */
- u8 ca_org_flag; /**< 1bit */
- u8 charset; /**< character set */
- u8 label[16]; /**< 16bytes Service component label */
- u16 scid; /**< 12bits Service Component Id */
- u16 pack_add; /**< 10bits Packet Address */
- u16 ca_org; /**< 16bits conditional access organization */
- u16 char_flag; /**< refer to ETSI EN 300 401 5.2.2.1 */
- u32 sid; /**< 32bit */
-};
-
-
-/** FIG 0/17 */
-struct tcc_program_type {
- u8 sd; /**< 1bit */
- u8 ps; /**< 1bit */
- u8 nfc; /**< 2bit */
- u8 lang; /**< 8Bit */
- u8 i18n_code; /**< 5bit */
- u8 coarse_code; /**< 6bit */
- u8 fine_code; /**< 8bit */
- u16 sid; /**< 16bit */
-};
-
-
-/** FIG 0/2 and FIG1/1 */
-struct tcc_service {
- u32 sid; /**< 32bits CountryId + serviceReference
- * ECC + CountryId + ServiceReference */
- u8 charset; /**< character set */
- u8 svc_label[16]; /**< 16bytes Service label
- * (Program service and Data service) */
- u16 char_flag; /**< refer to ETSI EN 300 401 5.2.2.1 */
- u8 ca_id; /**< 3bit */
- u8 num_svc_comp; /**< 4bits Number of Service Component */
-};
-
-
-/** FIG 0/0 */
-struct tcc_ensemble {
- u8 al_flag; /**< 1bit Al flag */
- u8 num_subch; /**< a number of struct tcc_sub_channel */
- u8 num_svc; /**< a number of struct tcc_service */
- u8 num_program; /**< a number of ProgNumberInfo */
- u8 num_svc_comp; /**< a number of struct tcc_service_comp */
- u8 num_user_app; /**< a number of FIG0/13 */
- u8 num_ann; /**< a number of FIG0/18 */
- u8 num_prg_type; /**< a number of FIG0/17 */
- u8 num_oe_svc; /**< a number of FIG0/24 other ensemble*/
- u8 num_fi; /**< a number of FIG0/21 */
- u8 num_oe_fi; /**< a number of FIG0/21 other ensemble*/
- u8 charset; /**< character set */
- u8 label[16]; /**< 16bytes Ensemble label */
- u16 char_flag; /**< refer to ETSI EN 300 401 5.2.2.1 */
- u16 eid; /**< 16bits country Id Ensemble reference */
-};
-
-struct tcc_user_app_type {
- u16 type; /**< User application Type */
- u8 len; /**< User Application Type length */
- u8 data[24]; /**< User Application Data */
-};
-
-/** FIG 0/13 */
-struct tcc_user_app_types {
- u32 sid; /**< Service ID */
- u8 scids; /**< scids */
- u8 num_app; /**< appl */
- struct tcc_user_app_type app_type[6];
-};
-
-/** FIG 1/6 */
-struct tcc_xpad_user_app {
- u8 charset; /**< character set */
- u8 label[16]; /**< label */
- u16 type; /**< X-PAD application type */
- u32 sid; /**< Service ID */
- u8 scids; /**< scids */
- u16 char_flag;
-};
-
-#endif /* __TCC_FIC_FIG_H__ */
diff --git a/drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_debug.h b/drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_debug.h
deleted file mode 100644
index cb115b0..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_debug.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * tcpal_debug.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCPAL_DEBUG_H__
-#define __TCPAL_DEBUG_H__
-
-#define DEBUG_ERROR 0x00000001
-#define DEBUG_INFO 0x00000002
-#define DEBUG_DRV_IO 0x00000004
-#define DEBUG_API_COMMON 0x00000008
-#define DEBUG_TCPAL_OS 0x00000010
-#define DEBUG_TCHAL 0x00000020
-#define DEBUG_TCPAL_CSPI 0x00000040
-#define DEBUG_DRV_COMP 0x00000080
-#define DEBUG_DRV_RF 0x00000100
-#define DEBUG_TCPAL_I2C 0x00000200
-#define DEBUG_DRV_PERI 0x00000400
-#define DEBUG_STREAM_PARSER 0x00000800
-#define DEBUG_PARSING_TIME 0x00001000
-#define DEBUG_PARSING_PROC 0x00002000
-#define DEBUG_INTRRUPT 0x00004000
-#define DEBUG_STREAM_READ 0x00008000
-#define DEBUG_STREAM_STACK 0x00010000
-#define DEBUG_STATUS 0x00020000
-#define DEBUG_PARSE_HEADER 0x00040000
-
-#define MAX_SIZE_DSP_ROM (1024*10)
-#define MAX_PATH 128
-
-s32 printk(const char *fmt, ...);
-
-#define tcbd_debug(__class, __msg, ...)\
-do {\
- if (__class&tcbd_debug_class) {\
- if (__class == DEBUG_ERROR)\
- printk(KERN_ERR"[%s:%d] " __msg,\
- __func__, __LINE__, ##__VA_ARGS__);\
- else if (__class == DEBUG_INFO)\
- printk(KERN_INFO __msg, ##__VA_ARGS__);\
- else\
- printk(KERN_INFO"[%s:%d] " __msg,\
- __func__, __LINE__, ##__VA_ARGS__);\
- } \
-} while (0)
-
-s32 tcbd_debug_spur_dbg(void);
-s32 tcbd_debug_rom_from_fs(void);
-s32 *tcbd_debug_spur_clk_cfg(void);
-char *tcbd_debug_rom_path(void);
-
-void tcbd_debug_mbox_rx(u16 *_cmd, s32 *_len, u32 **_data);
-void tcbd_debug_mbox_tx(u16 *_cmd, s32 *_len, u32 **_data);
-
-extern u32 tcbd_debug_class;
-
-#endif /*__TCPAL_DEBUG_H_*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_os.h b/drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_os.h
deleted file mode 100644
index 85e4a3d..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_os.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * tcpal_os.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCPAL_OS_H__
-#define __TCPAL_OS_H__
-#include "tcpal_types.h"
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/fs.h>
-#include <linux/uaccess.h>
-
-/* For TimeCheck */
-#define TCPAL_MAX_TIMECNT 0xFFFFFFFFFFFFFFFFULL
-TCBB_FUNC u64 tcpal_get_time(void);
-TCBB_FUNC u64 tcpal_diff_time(u64 _start_timeCount);
-
-/* for sleep */
-TCBB_FUNC void tcpal_msleep(s32 _ms);
-TCBB_FUNC void tcpal_usleep(s32 _us);
-
-/* for memory allocation, free, set */
-TCBB_FUNC void *tcpal_malloc(u32 _size);
-TCBB_FUNC void tcpal_free(void *_ptr);
-
-/* For Semaphore */
-#define TCPAL_INFINITE_SEMAPHORE 0xFFFFFFFFUL
-
-TCBB_FUNC s32 tcpal_create_lock(
- u32 *_semaphore,
- char *_name,
- u32 _initialCount);
-TCBB_FUNC s32 tcpal_destroy_lock(u32 *_semaphore);
-TCBB_FUNC s32 tcpal_lock(u32 *_semaphore);
-TCBB_FUNC s32 tcpal_unlock(u32 *_semaphore);
-
-TCBB_FUNC s32 tcpal_irq_register_handler(void *_device);
-TCBB_FUNC s32 tcpal_irq_unregister_handler(void);
-TCBB_FUNC s32 tcpal_irq_enable(void);
-TCBB_FUNC s32 tcpal_irq_disable(void);
-
-#endif /*__TCPAL_OS_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_queue.h b/drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_queue.h
deleted file mode 100644
index 05e7982..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_queue.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * tcpal_queue.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-#ifndef __TCBD_QUEUE_H__
-#define __TCBD_QUEUE_H__
-
-#define TCBD_QUEUE_SIZE 50
-
-struct tcbd_queue_item {
- u8 *buffer;
- u8 subch_id;
- s32 size;
- s32 type;
-};
-
-struct tcbd_queue {
- s32 front;
- s32 rear;
- s32 qsize;
- s32 pointer;
- s32 buff_size;
- u8 *global_buffer;
- u32 sem;
- struct tcbd_queue_item q[TCBD_QUEUE_SIZE];
-};
-
-TCBB_FUNC void tcbd_init_queue(
- struct tcbd_queue *_queue, u8* buffer, s32 _buff_size);
-TCBB_FUNC void tcbd_deinit_queue(struct tcbd_queue *_queue);
-
-TCBB_FUNC s32 tcbd_enqueue(
- struct tcbd_queue *_queue, u8 *_chunk, s32 _size,
- u8 _subch_id, s32 _type);
-
-TCBB_FUNC s32 tcbd_dequeue(
- struct tcbd_queue *_queue, u8 *_chunk, s32 *_size,
- u8 *_subch_id, s32 *_type);
-
-TCBB_FUNC s32 tcbd_dequeue_ptr(
- struct tcbd_queue *_queue, u8 **_chunk, s32 *_size, s32 *_type);
-
-TCBB_FUNC s32 tcbd_get_first_queue_ptr(
- struct tcbd_queue *_queue, u8 **_chunk, s32 *_size, s32 *_type);
-
-TCBB_FUNC s32 tcbd_queue_is_empty(struct tcbd_queue *_queue);
-TCBB_FUNC s32 tcbd_queue_is_full(struct tcbd_queue *_queue);
-TCBB_FUNC void tcbd_reset_queue(struct tcbd_queue *_queue);
-#endif /*__TCBD_QUEUE_H__*/
diff --git a/drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_types.h b/drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_types.h
deleted file mode 100644
index e0bb984..0000000
--- a/drivers/media/tdmb/tcc3170/inc/tcpal/tcpal_types.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * tcpal_types.h
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __TCPAL_TYPES_H__
-#define __TCPAL_TYPES_H__
-
-#ifdef NULL
- #undef NULL
- #define NULL (void *)0
-#else
- #define NULL (void *)0
-#endif
-
-#define TCBB_FUNC
-
-#define SWAP16(x) \
- ((u16)(\
- (((u16)(x)&(u16)0x00ffU) << 8) |\
- (((u16)(x)&(u16)0xff00U) >> 8)))
-
-#define SWAP32(x)\
- ((u32)(\
- (((u32)(x)&(u32)0x000000ffUL) << 24)| \
- (((u32)(x)&(u32)0x0000ff00UL) << 8)| \
- (((u32)(x)&(u32)0x00ff0000UL) >> 8)| \
- (((u32)(x)&(u32)0xff000000UL) >> 24)))
-
-#define MIN(x, y) ((x) < (y) ? (x) : (y))
-#define MAX(x, y) ((x) > (y) ? (x) : (y))
-
-#endif
diff --git a/drivers/media/tdmb/tcc3170/src/Makefile b/drivers/media/tdmb/tcc3170/src/Makefile
deleted file mode 100644
index 8b4cd2e..0000000
--- a/drivers/media/tdmb/tcc3170/src/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#obj-y += tcbd_hal.o
-obj-y += tcbd_drv_io.o
-obj-y += tcbd_drv_rf.o
-obj-y += tcbd_drv_peri.o
-obj-y += tcbd_drv_dual.o
-obj-y += tcbd_drv_ip.o
-obj-y += tcbd_api_common.o
-
-obj-y += tcbd_diagnosis/
-obj-y += tcbd_stream_parser/
-obj-y += tcpal_linux/
-obj-y += tcc_fic_decoder/
-
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcpal
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcbd_diagnosis
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcbd_stream_parser
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcc_fic_decoder
diff --git a/drivers/media/tdmb/tcc3170/src/tcbd_api_common.c b/drivers/media/tdmb/tcc3170/src/tcbd_api_common.c
deleted file mode 100644
index 986f3d9..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcbd_api_common.c
+++ /dev/null
@@ -1,648 +0,0 @@
-/*
- * tcbd_api_common.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-#include "tcbd_feature.h"
-#include "tcbd_api_common.h"
-#include "tcbd_drv_ip.h"
-#include "tcbd_drv_io.h"
-#include "tcbd_drv_rf.h"
-
-#include "tcc317x_boot_tdmb.h"
-
-s32 tcbd_device_start(struct tcbd_device *_device,
- enum tcbd_clock_type _clock_type)
-{
- s32 ret = 0, ver;
- u8 *dsp_rom = TCC317X_BOOT_DATA_TDMB;
- s32 size = TCC317X_BOOT_SIZE_TDMB;
-#if defined(__DEBUG_DSP_ROM__)
- static u8 dsp_rom_buff[MAX_SIZE_DSP_ROM];
- if (tcbd_debug_rom_from_fs() == 1) {
- ret = tcbd_read_file(_device, tcbd_debug_rom_path(),
- dsp_rom_buff, MAX_SIZE_DSP_ROM);
- if (ret > 0) {
- dsp_rom = dsp_rom_buff;
- size = ret;
- tcbd_debug(DEBUG_ERROR, "rom:%s, size:%d\n",
- tcbd_debug_rom_path(), size);
- }
- }
-#endif /*__DEBUG_DSP_ROM__*/
-
- /* Initialize PLL */
- tcbd_init_pll(_device, _clock_type);
- tcbd_init_buffer_region(_device);
- tcbd_init_div_io(_device, DIV_IO_TYPE_SINGLE);
- tcbd_enable_buffer(_device);
- tcbd_enable_peri(_device);
- ret = tcbd_init_dsp(_device, dsp_rom, size);
- if (ret < 0) {
- tcbd_debug(DEBUG_ERROR, "failed to initialize dsp!! "
- "error:%d\n", ret);
- return -TCERR_FATAL_ERROR;
- } else {
- tcbd_get_rom_version(_device, &ver);
- tcbd_debug(DEBUG_API_COMMON, "device start success!! "
- "version:0x%X\n", ver);
- }
- return 0;
-}
-
-s32 tcbd_enable_irq(struct tcbd_device *_device, u8 _en_bit)
-{
- s32 ret = 0;
-
- if (!_device->is_pal_irq_en) {
- tcpal_irq_enable();
- _device->is_pal_irq_en = 1;
- }
- ret |= tcbd_reg_write(_device, TCBD_IRQ_STAT_CLR, TCBD_IRQ_STATCLR_ALL);
- ret |= tcbd_reg_write(_device, TCBD_IRQ_EN, _en_bit);
- _device->enabled_irq = _en_bit;
- return ret;
-}
-
-s32 tcbd_disable_irq(struct tcbd_device *_device, u8 _mask)
-{
- s32 ret = 0;
-
- if (_device->is_pal_irq_en) {
- tcpal_irq_disable();
- _device->is_pal_irq_en = 0;
- }
- ret |= tcbd_reg_write(_device, TCBD_IRQ_STAT_CLR, TCBD_IRQ_STATCLR_ALL);
- ret |= tcbd_reg_write(_device, TCBD_IRQ_EN, _mask);
- return ret;
-}
-
-s32 tcbd_read_irq_status(
- struct tcbd_device *_device,
- u8 *_irq_status,
- u8 *_err_status)
-{
- s32 ret = 0;
- short status;
-
- ret = tcbd_reg_write(_device, TCBD_IRQ_LATCH, 0x5E);
- ret |= tcbd_reg_read_burst_cont(
- _device, TCBD_IRQ_STAT_CLR, (u8 *)&status, 2);
- *_irq_status = status & 0xFF;
- *_err_status = (status >> 8) & 0xFF;
- return ret;
-}
-
-s32 tcbd_clear_irq(struct tcbd_device *_device, u8 _status)
-{
- return tcbd_reg_write(_device, TCBD_IRQ_STAT_CLR, _status);
-}
-
-s32 tcbd_change_irq_mode(
- struct tcbd_device *_device, enum tcbd_intr_mode _mode)
-{
- u8 mode = TCBD_IRQ_MODE_PAD_ENABLE;
- switch (_mode) {
- case INTR_MODE_LEVEL_HIGH:
- mode |= TCBD_IRQ_MODE_LEVEL | TCBD_IRQ_MODE_RISING;
- break;
- case INTR_MODE_LEVEL_LOW:
- mode |= TCBD_IRQ_MODE_LEVEL | TCBD_IRQ_MODE_FALLING;
- break;
- case INTR_MODE_EDGE_RISING:
- mode |= TCBD_IRQ_MODE_TRIGER | TCBD_IRQ_MODE_RISING;
- break;
- case INTR_MODE_EDGE_FALLING:
- mode |= TCBD_IRQ_MODE_TRIGER | TCBD_IRQ_MODE_FALLING;
- break;
- default:
- mode |= TCBD_IRQ_MODE_LEVEL | TCBD_IRQ_MODE_FALLING;
- break;
- }
- return tcbd_reg_write(_device, TCBD_IRQ_MODE, mode);
-}
-
-s32 tcbd_init_stream_data_config(
- struct tcbd_device *_device,
- u8 _use_cmd_fifo,
- u8 _buffer_mask,
- u32 _threshold)
-{
- s32 ret = 0;
- u16 threshold = SWAP16((_threshold>>2));
-
- /* Disable internal buffer */
- ret |= tcbd_reg_write(_device, TCBD_STREAM_CFG0, 0);
- /* Change interrupt threshold */
- ret |= tcbd_reg_write_burst_cont(
- _device, TCBD_STREAM_CFG1, (u8 *)&threshold, 2);
-
- if (_use_cmd_fifo == ENABLE_CMD_FIFO)
- ret |= tcbd_reg_write(_device, TCBD_STREAM_CFG3, 0x12);
- else
- ret |= tcbd_reg_write(_device, TCBD_STREAM_CFG3, 0x10);
-
- tcbd_reset_ip(_device, TCBD_SYS_COMP_ALL, TCBD_SYS_COMP_EP);
-
- /* Enable internal buffer */
- ret |= tcbd_reg_write(_device, TCBD_STREAM_CFG0, _buffer_mask);
-
- _device->intr_threshold = _threshold;
- _device->selected_buff = _buffer_mask;
- _device->en_cmd_fifo = _use_cmd_fifo;
-
-#if defined(__READ_VARIABLE_LENGTH__)
- _device->size_more_read = 0;
-#endif /*__READ_VARIABLE_LENGTH__*/
- return ret;
-}
-
-#if defined(__CSPI_ONLY__)
-#if defined(__READ_FIXED_LENGTH__)
-s32 tcbd_read_stream(struct tcbd_device *_device, u8 *_buff, s32 *_size)
-{
- u32 bytes_read = _device->intr_threshold;
-
- if (bytes_read <= 0 || _buff == NULL)
- return -TCERR_INVALID_ARG;
-/*
- tcbd_reg_write(_device, TCBD_STREAM_CFG3, 0x22);
- tcbd_reg_read_burst_cont(
- _device, TCBD_STREAM_CFG1, (u8 *)&bytes_remain, 2);
- bytes_remain = SWAP16(bytes_remain) << 2;
-
- tcbd_debug(DEBUG_STREAM_READ, "%d bytes read, %d bytes remain\n",
- bytes_read, bytes_remain);
-*/
- *_size = bytes_read;
-
- return tcbd_reg_read_burst_fix(
- _device, TCBD_STREAM_CFG4, _buff, bytes_read);
-}
-#elif defined(__READ_VARIABLE_LENGTH__)
-s32 tcbd_read_stream(struct tcbd_device *_device, u8 *_buff, s32 *_size)
-{
- u32 bytes_remain = 0;
- u32 bytes_read = _device->intr_threshold;
-
- if (bytes_read <= 0 || _buff == NULL)
- return -TCERR_INVALID_ARG;
-
- tcbd_reg_write(_device, TCBD_STREAM_CFG3, 0x22);
- tcbd_reg_read_burst_cont(
- _device, TCBD_STREAM_CFG1, (u8 *)&bytes_remain, 2);
-
- /* bytes_remain is word count. x4 needed */
- bytes_remain = SWAP16(bytes_remain) << 2;
- bytes_read = bytes_read + bytes_remain - _device->size_more_read;
- tcbd_debug(DEBUG_STREAM_READ, "%d bytes remain, real data size:%d\n",
- bytes_remain, bytes_read);
-
- if ((_device->intr_threshold << 1) < bytes_read) {
- tcbd_debug(DEBUG_ERROR, "Could not read data over "
- "TCBD_MAX_THRESHOLD(%d)\n",
- bytes_read);
- return -TCERR_FATAL_ERROR;
- }
- _device->size_more_read = bytes_remain;
- *_size = bytes_read;
- return tcbd_reg_read_burst_fix(
- _device, TCBD_STREAM_CFG4, _buff, bytes_read);
-}
-#else
-#error "you must define __READ_VARIABLE_LENGTH__ or __READ_FIXED_LENGTH__"
-#endif /*!__READ_FIXED_LENGTH__ && !__READ_VARIABLE_LENGTH__*/
-#endif /*__CSPI_ONLY__*/
-
-s32 tcbd_tune_frequency(
- struct tcbd_device *_device, u32 _freq_khz, s32 _bw_khz)
-{
- s32 ret = 0;
- u64 tick;
-
- tcbd_debug(DEBUG_API_COMMON, "freq:%d, bw:%d\n", _freq_khz, _bw_khz);
-
- memset(&_device->mult_service, 0, sizeof(_device->mult_service));
- tick = tcpal_get_time();
- if (_freq_khz < 1000000)
- _device->curr_band = BAND_TYPE_BAND3;
- else
- _device->curr_band = BAND_TYPE_LBAND;
- ret |= tcbd_reset_ip(_device, TCBD_SYS_COMP_ALL, TCBD_SYS_COMP_ALL);
-
- ret |= tcbd_rf_tune_frequency(_device, _freq_khz, _bw_khz);
- if (ret < 0) {
- tcbd_debug(DEBUG_ERROR, "failed to tune frequency to RF!! "
- "ret:%d\n", ret);
- return ret;
- }
-
- switch (_device->peri_type) {
- case PERI_TYPE_SPI_ONLY:
- ret |= tcbd_init_stream_data_config(_device, ENABLE_CMD_FIFO,
- STREAM_DATA_ENABLE | STREAM_HEADER_ON |
- STREAM_MASK_BUFFERA, TCBD_THRESHOLD_FIC);
- break;
- case PERI_TYPE_STS:
- ret |= tcbd_init_stream_data_config(_device, DISABLE_CMD_FIFO,
- 0, 0);
- break;
- default:
- tcbd_debug(DEBUG_ERROR, "%d not implemented!!\n",
- _device->peri_type);
- return -TCERR_FATAL_ERROR;
- }
- tcbd_init_status_manager();
-
- ret |= tcbd_demod_tune_frequency(_device, _freq_khz, _bw_khz);
- if (ret < 0) {
- tcbd_debug(DEBUG_ERROR, "failed to tune frequency "
- "to demodulator!! ret:%d\n", ret);
- return ret;
- }
- _device->prev_band = _device->curr_band;
- _device->frequency = _freq_khz;
-
-#if defined(__READ_VARIABLE_LENGTH__)
- _device->size_more_read = 0;
-#endif /*__READ_VARIABLE_LENGTH__*/
- tcbd_debug(DEBUG_API_COMMON, " # Frequency set time :%lld\n",
- tcpal_diff_time(tick));
-
- return ret;
-}
-
-s32 tcbd_wait_tune(struct tcbd_device *_device, u8 *_status)
-{
- s32 ret = 0;
- u8 cto, cfo, ofdm;
- u64 time_tick, time_tune_wait;
-
- time_tune_wait = TDMB_OFDMDETECT_LOCK * TDMB_OFDMDETECT_RETRY;
- time_tick = tcpal_get_time();
- do {
- ret = tcbd_reg_read(_device, TCBD_PROGRAMID, _status);
- if (ret < 0)
- goto exit_wait_tune;
-
- cto = ((*_status) >> 1) & 0x01;
- cfo = ((*_status) >> 2) & 0x01;
- if (cto && cfo)
- goto exit_wait_tune;
-
- ofdm = ((*_status) >> 5) & 0x01;
- if (ofdm)
- break;
- } while (tcpal_diff_time(time_tick) < time_tune_wait);
-
- if (ofdm == 0) {
- ret = -TCERR_TUNE_FAILED;
- goto exit_wait_tune;
- }
-
- time_tune_wait = (TDMB_CTO_LOCK * TDMB_CTO_RETRY) +
- (TDMB_CTO_LOCK + TDMB_CFO_LOCK) *
- TDMB_CFO_RETRY;
- time_tick = tcpal_get_time();
- do {
- ret = tcbd_reg_read(_device, TCBD_PROGRAMID, _status);
- if (ret < 0)
- goto exit_wait_tune;
-
- cto = ((*_status) >> 1) & 0x01;
- cfo = ((*_status) >> 2) & 0x01;
- if (cto && cfo)
- break;
- } while (tcpal_diff_time(time_tick) < time_tune_wait);
-
- if (cto && cfo)
- tcbd_debug(DEBUG_API_COMMON, "lock status : 0x%02X\n",
- *_status);
- else
- ret = -TCERR_TUNE_FAILED;
-
-exit_wait_tune:
- return ret;
-}
-
-static inline s32 tcbd_calc_threshold(struct tcbd_service *_service)
-{
- s32 threshold = 0;
- s32 uep_bitrate[] = {
- 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384};
-
- switch (_service->ptype) {
- case PROTECTION_TYPE_UEP:
- threshold = (uep_bitrate[_service->bitrate] * 6) << 2;
- break;
- case PROTECTION_TYPE_EEP:
- threshold = (_service->bitrate * 6) << 5;
- break;
- }
-
- if (TCBD_MAX_THRESHOLD < threshold)
- threshold = TCBD_MAX_THRESHOLD;
-
- tcbd_debug(DEBUG_API_COMMON, "ptype:%s, bitrate :%d, interrupt "
- "threshold:%d\n", (_service->ptype) ? "EEP" : "UEP",
- _service->bitrate, threshold);
-
- return threshold>>1;
-}
-
-static inline s32 tcbd_find_empty_slot(
- struct tcbd_multi_service *_multi_svc)
-{
- s32 i;
-
- for (i = 0; i < TCBD_MAX_NUM_SERVICE; i++) {
- if (_multi_svc->on_air[i] == 0)
- return i;
- }
- return -1;
-}
-
-static inline s32 tcbd_find_used_slot(
- struct tcbd_multi_service *_multi_svc, u8 _subch_id)
-{
- s32 i;
- u32 *service_info = _multi_svc->service_info;
-
- if (_multi_svc->service_count == 0)
- return -1;
-
- for (i = 0; i < TCBD_MAX_NUM_SERVICE; i++) {
- if (((service_info[i * 2] >> 20) & 0x3F) == _subch_id)
- return i;
- }
- return -1;
-}
-
-#define FLAG_SHORT_PARAM 0
-#define FLAG_LONG_PARAM 1
-static inline s32 tcbd_set_service(struct tcbd_device *_device,
- struct tcbd_service *_service, s32 _flag)
-{
- s32 ret = 0;
- u32 threshold = 0, sel_buff = 0, sel_stream = 0;
- u8 en_cmd_fifo = 0;
-
- sel_buff = STREAM_DATA_ENABLE | STREAM_HEADER_ON |
- STREAM_MASK_BUFFERA;
- switch (_device->peri_type) {
- case PERI_TYPE_SPI_ONLY:
- if (_flag == FLAG_LONG_PARAM) {
- threshold = tcbd_calc_threshold(_service);
- sel_stream = STREAM_SET_GARBAGE(threshold) |
- STREAM_TYPE_ALL;
- } else {
- threshold = TCBD_MAX_THRESHOLD;
- sel_stream = STREAM_SET_GARBAGE(TCBD_MAX_THRESHOLD) |
- STREAM_TYPE_ALL;
- }
- tcbd_debug(DEBUG_API_COMMON, "threshold : %d\n", threshold);
- en_cmd_fifo = ENABLE_CMD_FIFO;
- break;
- case PERI_TYPE_STS:
- en_cmd_fifo = DISABLE_CMD_FIFO;
- sel_stream = STREAM_TYPE_ALL;
-#if !defined(__ALWAYS_FIC_ON__)
- sel_buff &= ~(STREAM_HEADER_ON);
-#endif /*__ALWAYS_FIC_ON__*/
- break;
- default:
- tcbd_debug(DEBUG_ERROR, "not implemented!\n");
- return -1;
- }
-
-#if !defined(__ALWAYS_FIC_ON__)
- sel_stream &= ~(STREAM_TYPE_FIC);
-#endif /*__ALWAYS_FIC_ON__*/
-
-#if defined(__STATUS_IN_REGISTER__)
- sel_stream &= ~(STREAM_TYPE_STATUS);
-#endif /* __STATUS_IN_REGISTER__ */
-
-#if defined(__READ_VARIABLE_LENGTH__)
- _device->size_more_read = 0;
-#endif /*__READ_VARIABLE_LENGTH__*/
- ret |= tcbd_disable_irq(_device, 0);
-
- ret |= tcbd_change_stream_type(_device, sel_stream);
- ret |= tcbd_init_stream_data_config(
- _device, en_cmd_fifo, sel_buff, threshold);
-
- ret |= tcbd_send_service_info(_device);
- if (_device->peri_type == PERI_TYPE_SPI_ONLY)
- ret |= tcbd_enable_irq(_device, _device->enabled_irq);
- return ret;
-}
-
-s32 tcbd_register_service(struct tcbd_device *_device, u8 _subch_id,
- u8 _data_mode)
-{
- s32 empty_slot, empty_slot2x;
- struct tcbd_service service = {0, };
- struct tcbd_multi_service *mult_service = &_device->mult_service;
- u32 *service_info = mult_service->service_info;
-
- if (tcbd_find_used_slot(mult_service, _subch_id) >= 0) {
- tcbd_debug(DEBUG_ERROR, "aready registerd service! "
- "subch_id:%d\n", _subch_id);
- return -TCERR_AREADY_REGISTERED;
- }
-
- empty_slot = tcbd_find_empty_slot(mult_service);
- if (empty_slot < 0) {
- tcbd_debug(DEBUG_ERROR, "Exceed maxinum number of service!!\n");
- return -TCERR_MAX_NUM_SERVICE;
- }
- service.subch_id = _subch_id;
- empty_slot2x = empty_slot << 1;
- mult_service->on_air[empty_slot] = 1;
- mult_service->service_count++;
-
- tcbd_debug(DEBUG_API_COMMON, "sub channel:%d, data mode:%d\n",
- _subch_id, _data_mode);
- service_info[empty_slot2x] =
- (_subch_id << 20) |
- (2 << 26);
- service_info[empty_slot2x + 1] =
- (empty_slot << 20) |
- (_data_mode << 16);
-
- return tcbd_set_service(_device, &service, FLAG_SHORT_PARAM);
-}
-
-s32 tcbd_register_service_long(struct tcbd_device *_device,
- struct tcbd_service *_service)
-{
- s32 empty_slot, empty_slot2x;
- u32 data_mode = 0;
- struct tcbd_multi_service *mult_service = &_device->mult_service;
- u32 *service_info = mult_service->service_info;
-
- if (tcbd_find_used_slot(mult_service, _service->subch_id) >= 0) {
- tcbd_debug(DEBUG_ERROR, "aready registerd service! "
- "subch_id:%d\n", _service->subch_id);
- return -TCERR_AREADY_REGISTERED;
- }
-
- empty_slot = tcbd_find_empty_slot(mult_service);
- if (empty_slot < 0) {
- tcbd_debug(DEBUG_ERROR, "Exceed maxinum number of service!!\n");
- return -TCERR_MAX_NUM_SERVICE;
- }
-
- switch (_service->type) {
- case SERVICE_TYPE_DAB:
- case SERVICE_TYPE_DABPLUS:
- case SERVICE_TYPE_DATA:
- data_mode = 0; break;
- case SERVICE_TYPE_DMB:
- data_mode = 1; break;
- default:
- data_mode = 2; break;
- }
-
- empty_slot2x = empty_slot << 1;
- mult_service->on_air[empty_slot] = 1;
- mult_service->service_count++;
-
- service_info[empty_slot2x] =
- (_service->reconfig << 26) |
- (_service->subch_id << 20) |
- (_service->size_cu << 10) |
- _service->start_cu;
- service_info[empty_slot2x + 1] =
- (empty_slot << 20) |
- /*(0 << 18) |*/
- (data_mode << 16) |
- (_service->ptype << 11) |
- (_service->plevel << 8) |
- _service->bitrate;
-
- return tcbd_set_service(_device, _service, FLAG_LONG_PARAM);
-}
-
-s32 tcbd_unregister_service(struct tcbd_device *_device, u8 _subch_id)
-{
- s32 ret = 0;
- s32 service_idx;
- struct tcbd_multi_service *mult_service = &_device->mult_service;
- u32 *service_info = mult_service->service_info;
-
- tcbd_disable_irq(_device, 0);
- service_idx = tcbd_find_used_slot(mult_service, _subch_id);
- if (service_idx < 0) {
- tcbd_debug(DEBUG_ERROR, "not registered service!\n");
- return -TCERR_SERVICE_NOT_FOUND;
- }
- /*tcbd_disable_peri(_device);*/
-
- service_info[service_idx * 2] = 0x00;
- service_info[service_idx * 2 + 1] = 0x00;
- mult_service->on_air[service_idx] = 0;
- mult_service->service_count--;
-
- ret |= tcbd_send_service_info(_device);
- return ret;
-}
-
-s32 tcbd_read_fic_data(struct tcbd_device *_device, u8 *_buff, s32 _size)
-{
- s32 ret = 0;
- u32 addr_fic_buff;
- u8 status, err_status;
-
- tcbd_read_irq_status(_device, &status, &err_status);
- if (_size != TCBD_FIC_SIZE) {
- tcbd_debug(DEBUG_ERROR, "wrong fic size! %d\n", _size);
- ret = -TCERR_INVALID_ARG;
- goto exit_read_fic;
- }
- if (status & TCBD_IRQ_STAT_FIFOAINIT) {
- addr_fic_buff = PHY_MEM_ADDR_A_START;
- tcbd_debug(DEBUG_INTRRUPT, "status:0x%02X, err:0x%02X\n",
- status, err_status);
-
- ret = tcbd_mem_read(_device, addr_fic_buff, _buff, _size);
- } else
- ret = -TCERR_NO_FIC_DATA;
-exit_read_fic:
- tcbd_clear_irq(_device, status);
- return ret;
- }
-
-static s32 tcbd_disp_dsp_debug(struct tcbd_device *_device)
-{
- s32 pos_buf = 0, ret, i;
- u32 len = 0, *data = NULL;
- u16 cmd;
- s8 debug_buff[256];
-
- tcbd_debug_mbox_rx(&cmd, &len, &data);
- if (data == NULL)
- return 0;
-
- ret = tcbd_read_mail_box(_device, cmd, len, data);
- if (ret < 0) {
- tcbd_debug(DEBUG_ERROR, "failed to read mail box, "
- "err:%d\n", ret);
- return ret;
-}
-
- for (i = 0; i < 6; i++)
- pos_buf += sprintf(debug_buff + pos_buf, "[%d:%08X]",
- i, data[i]);
- tcbd_debug(DEBUG_INFO, "%s\n", debug_buff);
-
- return 0;
-}
-
-s32 tcbd_read_signal_info(
- struct tcbd_device *_device,
- struct tcbd_status_data *_status_data)
-{
- s32 ret = 0;
-#if defined(__STATUS_IN_REGISTER__)
- u8 status[32] = {0, };
-#endif /*__STATUS_IN_REGISTER__*/
-
- if (!_status_data)
- return -TCERR_INVALID_ARG;
-
- if (tcbd_debug_spur_dbg() == 1)
- tcbd_disp_dsp_debug(_device);
-
-#if defined(__STATUS_IN_REGISTER__)
- ret = tcbd_reg_write(_device, TCBD_OP_STATUS0, 0x1);
- ret |= tcbd_reg_read_burst_fix(_device,
- TCBD_OP_STATUS1, status, TCBD_STATUS_SIZE);
- tcbd_update_status(status, TCBD_STATUS_SIZE, _status_data);
-#elif defined(__STATUS_IN_STREAM__)
-
- tcbd_update_status(NULL, 0, _status_data);
-#endif /*__STATUS_IN_STREAM__*/
- return ret;
-}
diff --git a/drivers/media/tdmb/tcc3170/src/tcbd_diagnosis/Makefile b/drivers/media/tdmb/tcc3170/src/tcbd_diagnosis/Makefile
deleted file mode 100644
index a901855..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcbd_diagnosis/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-obj-y += tcbd_diagnosis.o
-
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcpal
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcbd_diagnosis
diff --git a/drivers/media/tdmb/tcc3170/src/tcbd_diagnosis/tcbd_diagnosis.c b/drivers/media/tdmb/tcc3170/src/tcbd_diagnosis/tcbd_diagnosis.c
deleted file mode 100644
index e425df8..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcbd_diagnosis/tcbd_diagnosis.c
+++ /dev/null
@@ -1,386 +0,0 @@
-/*
- * tcbd_diagnosis.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-#include "tcbd_feature.h"
-#include "tcbd_diagnosis.h"
-#include "tcbd_error.h"
-
-#define OFFSET_RF_LOOP_GAIN 4
-#define OFFSET_BB_LOOP_GAIN 5
-#define OFFSET_PRS_SNR 8
-#define OFFSET_PCBER 12
-#define OFFSET_RS_PKT_CNT 16
-#define OFFSET_RS_OVER_CNT 20
-#define OFFSET_RS_ERR_CNT_LO 24
-#define OFFSET_RS_ERR_CNT_HI 28
-
-#define MAX_MAVG_ARRAY_SIZE 10
-
-#define MIN_SNR 0
-#define MAX_SNR 25
-
-#define MIN_PCBER 0
-#define MAX_PCBER 1
-
-#define MIN_VITERBIBER 0
-#define MAX_VITERBIBER 1
-
-#define MIN_TSPER 0
-#define MAX_TSPER 1
-
-#define MIN_RSSI (-105)
-#define MAX_RSSI 3
-
-#define SCALE_FACTOR 10000
-#define ERROR_LIMIT 2000
-
-struct tcbd_moving_avg {
- u32 array[MAX_MAVG_ARRAY_SIZE+1];
- u32 pre_sum;
- u64 total_sum;
- s32 index;
- s32 moving_cnt;
- s32 total_cnt;
-};
-
-struct tcbd_raw_status {
- u8 lock_status;
- u8 rf_loop_gain;
- u8 bb_loop_gain;
-
- s32 pcber;
- u32 prs_snr;
-
- u32 rs_over_cnt;
- u32 rs_pkt_cnt;
- u64 rs_err_cnt;
-};
-
-struct tcbd_raw_status_manager {
- u32 resynced;
- struct tcbd_raw_status old_status;
- struct tcbd_raw_status curr_status;
-
- struct tcbd_status_data status_data;
-};
-
-static struct tcbd_moving_avg moving_average[4];
-static struct tcbd_raw_status_manager status_manager;
-
-static inline u32 tcbd_log10(u32 _val)
-{
- u32 i, snr = 0;
- u32 snr_table[28] = {
- 1024, 1289, 1622, 2043, 2572, 3238, 4076, 5132,
- 6461, 8133, 10240, 12891, 6229, 20431, 25721, 32381,
- 40766, 51321, 64610, 81339, 102400, 128913, 162293, 204314,
- 257217, 323817, 407661, 513215 };
-
- if (_val < snr_table[0])
- return 0;
-
- if (_val >= snr_table[27])
- return 27;
-
- for (i = 0; i < 27; i++) {
- if (_val >= snr_table[i] &&
- _val < snr_table[i + 1]) {
- snr = i;
- break;
- }
- }
-
- return snr;
-}
-
-static s32 tcbd_get_moving_avg(
- struct tcbd_moving_avg *_slot, u32 _value, s32 _windowSize)
-{
- s32 moving_sum;
- u32 result;
-
- if (MAX_MAVG_ARRAY_SIZE < _windowSize) {
- tcbd_debug(0,
- "max window size is %d\n", MAX_MAVG_ARRAY_SIZE);
- return -TCERR_INVALID_ARG;
- }
-
- if (_slot->moving_cnt >= _windowSize)
- _slot->pre_sum += _slot->array[_slot->index];
- else
- _slot->moving_cnt++;
-
- _slot->array[_slot->index] = _value;
- _slot->index++;
-
- _slot->index %= _windowSize;
- _slot->total_cnt++;
- _slot->total_sum += _value;
-
- moving_sum = _slot->total_sum - _slot->pre_sum;
- result = moving_sum / _slot->moving_cnt;
-
- if (_slot->index == 0) {
- _slot->total_sum = moving_sum;
- _slot->pre_sum = 0;
- }
-
- return result;
-}
-
-
-static inline void tcbd_calc_rssi(struct tcbd_status_data *_status_data)
-{
- struct tcbd_raw_status *curr_status = &status_manager.curr_status;
-
- if (curr_status->rf_loop_gain <= 120)
- _status_data->rssi = 1500 -
- ((int)curr_status->bb_loop_gain) * 37 -
- 27 * ((int)curr_status->rf_loop_gain);
- else if (curr_status->rf_loop_gain <= 216)
- _status_data->rssi = 1500 -
- ((int)curr_status->bb_loop_gain) * 35 -
- 24 * ((int)curr_status->rf_loop_gain);
- else
- _status_data->rssi = 1500 -
- ((int)curr_status->bb_loop_gain) * 33 -
- 22 * ((int)curr_status->rf_loop_gain);
-
- _status_data->rssi /= 100;
- if (_status_data->rssi < MIN_RSSI)
- _status_data->rssi = MIN_RSSI;
- else if (_status_data->rssi > MAX_RSSI)
- _status_data->rssi = MAX_RSSI;
-}
-
-static inline void tcbd_calc_pcber(struct tcbd_status_data *_status_data)
-{
- long long over;
- struct tcbd_raw_status *curr_status = &status_manager.curr_status;
-
- over = (u64)curr_status->pcber * SCALE_FACTOR;
- _status_data->pcber = (u32)(over >> 16);
-
- if (_status_data->pcber < MIN_PCBER)
- _status_data->pcber = MIN_PCBER;
- else if (_status_data->pcber > MAX_PCBER * ERROR_LIMIT)
- _status_data->pcber = MAX_PCBER * ERROR_LIMIT;
-
- if (_status_data->pcber <= 20)
- _status_data->pcber = 0;
-
- _status_data->pcber_moving_avg =
- tcbd_get_moving_avg(
- &moving_average[0],
- _status_data->pcber,
- MAX_MAVG_ARRAY_SIZE);
-}
-
-static inline void tcbd_calc_snr(struct tcbd_status_data *_status_data)
-{
- struct tcbd_raw_status *curr_status = &status_manager.curr_status;
-
- if ((int)curr_status->prs_snr < 0)
- _status_data->snr = MAX_SNR;
- else if (curr_status->prs_snr == 0)
- _status_data->snr = MIN_SNR;
- else
- _status_data->snr = tcbd_log10(curr_status->prs_snr);
-
- if (_status_data->snr < MIN_SNR)
- _status_data->snr = MIN_SNR;
- else if (_status_data->snr > MAX_SNR)
- _status_data->snr = MAX_SNR;
-
- _status_data->snr_moving_avg =
- tcbd_get_moving_avg(
- &moving_average[1],
- _status_data->snr,
- MAX_MAVG_ARRAY_SIZE);
-}
-
-static inline void tcbd_calc_viterbi_ber(struct tcbd_status_data *_status_data)
-{
- s32 rs_err, rs_over, rs_under;
- struct tcbd_raw_status *old_status, *curr_status;
-
- old_status = &status_manager.old_status;
- curr_status = &status_manager.curr_status;
-
- if (status_manager.resynced) {
- _status_data->vber = MAX_VITERBIBER * ERROR_LIMIT;
- goto exit_calc_viterbi_ber;
- }
-
- if (status_manager.resynced && curr_status->rs_pkt_cnt == 0) {
- _status_data->vber = MIN_VITERBIBER;
- goto exit_calc_viterbi_ber;
- }
-
- rs_err = ((u32)(curr_status->rs_over_cnt -
- old_status->rs_over_cnt)) * SCALE_FACTOR;
-
- rs_over = (rs_err * (8 * 8) +
- ((u32)(curr_status->rs_err_cnt -
- old_status->rs_err_cnt)) * SCALE_FACTOR);
- rs_under =
- (curr_status->rs_pkt_cnt -
- old_status->rs_pkt_cnt) * 204 * 8;
- if (!rs_under)
- return;
-
- _status_data->vber = rs_over / rs_under;
-
- if (_status_data->vber < MIN_VITERBIBER)
- _status_data->vber = MIN_VITERBIBER;
- else if (_status_data->vber > MAX_VITERBIBER * ERROR_LIMIT)
- _status_data->vber = MAX_VITERBIBER * ERROR_LIMIT;
-
-exit_calc_viterbi_ber:
- _status_data->vber_moving_avg =
- tcbd_get_moving_avg(
- &moving_average[3],
- _status_data->vber,
- MAX_MAVG_ARRAY_SIZE);
-}
-
-static inline void tcbd_calc_tsper(struct tcbd_status_data *_status_data)
-{
- s32 rs_over, rs_under;
- struct tcbd_raw_status *old_status, *curr_status;
-
- old_status = &status_manager.old_status;
- curr_status = &status_manager.curr_status;
-
- if (status_manager.resynced) {
- _status_data->tsper = MAX_TSPER * ERROR_LIMIT;
- goto exit_calc_tsper;
- }
-
- if (status_manager.resynced && curr_status->rs_pkt_cnt == 0) {
- _status_data->tsper = MIN_TSPER;
- goto exit_calc_tsper;
- }
-
- rs_over = (curr_status->rs_over_cnt -
- old_status->rs_over_cnt) * SCALE_FACTOR;
- rs_under = curr_status->rs_pkt_cnt - old_status->rs_pkt_cnt;
- if (!rs_under)
- return;
-
- _status_data->ts_error_count = rs_over;
- _status_data->tsper = rs_over / rs_under;
- if (_status_data->tsper < MIN_TSPER)
- _status_data->tsper = MIN_TSPER;
- else if (_status_data->tsper > MAX_TSPER * ERROR_LIMIT)
- _status_data->tsper = MAX_TSPER * ERROR_LIMIT;
-
-exit_calc_tsper:
- _status_data->tsper_moving_avg = tcbd_get_moving_avg(
- &moving_average[2],
- _status_data->tsper,
- MAX_MAVG_ARRAY_SIZE);
-}
-
-void tcbd_update_status_per_frame(
- u8 *_raw_data, struct tcbd_status_data *_status_data)
-{
- struct tcbd_raw_status *old_status, *curr_status;
- struct tcbd_status_data *status_data;
-
- if (!_raw_data && !_status_data)
- return;
-
- if (_raw_data == NULL) {
- memcpy(_status_data, &status_manager.status_data,
- sizeof(struct tcbd_status_data));
- return;
- }
-
- status_data = (_status_data) ?
- _status_data : &status_manager.status_data;
- old_status = &status_manager.old_status;
- curr_status = &status_manager.curr_status;
- memcpy(old_status, curr_status, sizeof(struct tcbd_raw_status));
-
- curr_status->rf_loop_gain = _raw_data[OFFSET_RF_LOOP_GAIN];
- curr_status->bb_loop_gain = _raw_data[OFFSET_BB_LOOP_GAIN];
-
- curr_status->prs_snr =
- *((u32 *)(_raw_data + OFFSET_PRS_SNR));
- curr_status->pcber =
- *((u32 *)(_raw_data + OFFSET_PCBER));
-
- curr_status->rs_pkt_cnt =
- *((u32 *)(_raw_data + OFFSET_RS_PKT_CNT));
- curr_status->rs_over_cnt =
- *((u32 *)(_raw_data + OFFSET_RS_OVER_CNT));
- curr_status->rs_err_cnt =
- *((u64 *)(_raw_data + OFFSET_RS_ERR_CNT_LO));
- curr_status->rs_err_cnt |=
- (*((u64 *)(_raw_data + OFFSET_RS_ERR_CNT_HI))) << 32;
-
- if (curr_status->rs_pkt_cnt != old_status->rs_pkt_cnt) {
- status_manager.resynced = 0;
- if (curr_status->rs_pkt_cnt == 0 && old_status->rs_pkt_cnt)
- status_manager.resynced = 1;
- else if (curr_status->rs_pkt_cnt < old_status->rs_pkt_cnt) {
- if (old_status->rs_pkt_cnt < 0x80000000)
- status_manager.resynced = 1;
- }
- }
-
- tcbd_calc_snr(status_data);
- tcbd_calc_pcber(status_data);
- tcbd_calc_viterbi_ber(status_data);
- tcbd_calc_tsper(status_data);
- tcbd_calc_rssi(status_data);
-
- status_data->lock = *((u8 *)_raw_data);
- if (status_manager.resynced) {
- memset(moving_average, 0, sizeof(moving_average));
- memset(&status_manager.old_status, 0,
- sizeof(struct tcbd_raw_status));
- }
-}
-
-void tcbd_update_status(
- u8 *_raw_data, u32 _size, struct tcbd_status_data *_status_data)
-{
- s32 i;
-
- if (!_raw_data)
- tcbd_update_status_per_frame(NULL, _status_data);
-
- for (i = 0; i < _size / TCBD_STATUS_SIZE; i++)
- tcbd_update_status_per_frame(_raw_data + i * TCBD_STATUS_SIZE,
- _status_data);
-}
-
-void tcbd_init_status_manager(void)
-{
- memset(&status_manager, 0, sizeof(status_manager));
- memset(moving_average, 0, sizeof(moving_average));
-}
diff --git a/drivers/media/tdmb/tcc3170/src/tcbd_drv_dual.c b/drivers/media/tdmb/tcc3170/src/tcbd_drv_dual.c
deleted file mode 100644
index 0897012..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcbd_drv_dual.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * tcbd_drv_dual.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-#include "tcbd_feature.h"
-#include "tcbd_api_common.h"
-#include "tcbd_drv_io.h"
-
-s32 tcbd_change_chip_addr(struct tcbd_device *_device, u8 addr)
-{
- _device->chip_addr = addr;
- return tcbd_reg_write(_device, TCBD_CHIPADDR, addr);
-}
-
-s32 tcbd_enable_slave_command_ack(struct tcbd_device *_device)
-{
- s32 ret = 0;
- u16 outData = SWAP16((0x1 << 15));
- u16 outEnable = SWAP16((0x1 << 15));
-
- ret |= tcbd_reg_write_burst_cont(
- _device, TCBD_GPIO_LR, (u8 *)&outData, 2);
- ret |= tcbd_reg_write_burst_cont(
- _device, TCBD_GPIO_DR, (u8 *)&outEnable, 2);
-
- return ret;
-}
-
-s32 tcbd_init_div_io(
- struct tcbd_device *_device, enum tcbd_div_io_type _divIo)
-{
- return tcbd_reg_write(_device, TCBD_DIVIO, (u8)_divIo);
-}
diff --git a/drivers/media/tdmb/tcc3170/src/tcbd_drv_io.c b/drivers/media/tdmb/tcc3170/src/tcbd_drv_io.c
deleted file mode 100644
index e2bcbea..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcbd_drv_io.c
+++ /dev/null
@@ -1,516 +0,0 @@
-/*
- * tcbd_drv_io.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-#include "tcbd_feature.h"
-#include "tcbd_api_common.h"
-#include "tcbd_drv_ip.h"
-#include "tcbd_drv_io.h"
-
-static struct tcbd_io_data tcbd_io_funcs;
-
-struct tcbd_io_data *tcbd_get_io_struct(void)
-{
- return &tcbd_io_funcs;
-}
-
-s32 tcbd_io_open(struct tcbd_device *_device)
-{
- s32 ret = 0;
-
- if (tcbd_io_funcs.open == NULL)
- return -TCERR_IO_NOT_INITIALIZED;
-
- tcpal_create_lock(&tcbd_io_funcs.sem, "tcbd_io_lock", 0);
-
- ret = tcbd_io_funcs.open();
- if (ret < 0)
- return ret;
-
- _device->chip_addr = DEFAULT_CHIP_ADDRESS;
-
- /*Initialize internal processor */
- tcbd_reset_ip(_device, TCBD_SYS_COMP_EP, TCBD_SYS_COMP_ALL);
-
- return ret;
-}
-
-s32 tcbd_io_close(struct tcbd_device *_device)
-{
- s32 ret = 0;
-
- if (tcbd_io_funcs.close == NULL)
- return -TCERR_IO_NOT_INITIALIZED;
-
- tcpal_destroy_lock(&tcbd_io_funcs.sem);
-
- ret = tcbd_io_funcs.close();
- memset(_device, 0, sizeof(struct tcbd_device));
-
- return ret;
-}
-
-s32 tcbd_reg_read(
- struct tcbd_device *_device, u8 _addr, u8 *_data)
-{
- s32 ret;
-
- if (tcbd_io_funcs.reg_read == NULL)
- return -TCERR_IO_NOT_INITIALIZED;
-
- if (_device == NULL || _data == NULL)
- return -TCERR_INVALID_ARG;
-
- tcpal_lock(&tcbd_io_funcs.sem);
- tcbd_io_funcs.chip_addr = _device->chip_addr;
- ret = tcbd_io_funcs.reg_read(_addr, _data);
- tcpal_unlock(&tcbd_io_funcs.sem);
- return ret;
-}
-
-s32 tcbd_reg_write(
- struct tcbd_device *_device, u8 _addr, u8 _data)
-{
- s32 ret;
-
- if (tcbd_io_funcs.reg_write == NULL)
- return -TCERR_IO_NOT_INITIALIZED;
-
- tcpal_lock(&tcbd_io_funcs.sem);
- tcbd_io_funcs.chip_addr = _device->chip_addr;
- ret = tcbd_io_funcs.reg_write(_addr, _data);
- tcpal_unlock(&tcbd_io_funcs.sem);
-
- return ret;
-}
-
-s32 tcbd_reg_read_burst_cont(
- struct tcbd_device *_device, u8 _addr, u8 *_data, s32 _size)
-{
- s32 ret;
-
- if (tcbd_io_funcs.reg_read_burst_cont == NULL)
- return -TCERR_IO_NOT_INITIALIZED;
-
- if (_device == NULL || _data == NULL)
- return TCERR_INVALID_ARG;
-
- tcpal_lock(&tcbd_io_funcs.sem);
- tcbd_io_funcs.chip_addr = _device->chip_addr;
- ret = tcbd_io_funcs.reg_read_burst_cont(_addr, _data, _size);
- tcpal_unlock(&tcbd_io_funcs.sem);
-
- return ret;
-}
-
-s32 tcbd_reg_write_burst_cont(
- struct tcbd_device *_device, u8 _addr, u8 *_data, s32 _size)
-{
- s32 ret;
-
- if (tcbd_io_funcs.reg_write_burst_cont == NULL)
- return -TCERR_IO_NOT_INITIALIZED;
-
- if (_device == NULL || _data == NULL || _size <= 0)
- return TCERR_INVALID_ARG;
-
- tcpal_lock(&tcbd_io_funcs.sem);
- tcbd_io_funcs.chip_addr = _device->chip_addr;
- ret = tcbd_io_funcs.reg_write_burst_cont(_addr, _data, _size);
- tcpal_unlock(&tcbd_io_funcs.sem);
-
- return ret;
-}
-
-s32 tcbd_reg_read_burst_fix(
- struct tcbd_device *_device, u8 _addr, u8 *_data, s32 _size)
-{
- s32 ret;
-
- if (tcbd_io_funcs.reg_read_burst_fix == NULL)
- return -TCERR_IO_NOT_INITIALIZED;
-
- if (_device == NULL || _data == NULL || _size <= 0)
- return TCERR_INVALID_ARG;
-
- tcpal_lock(&tcbd_io_funcs.sem);
- tcbd_io_funcs.chip_addr = _device->chip_addr;
- ret = tcbd_io_funcs.reg_read_burst_fix(_addr, _data, _size);
- tcpal_unlock(&tcbd_io_funcs.sem);
-
- return ret;
-}
-
-s32 tcbd_reg_write_burst_fix(
- struct tcbd_device *_device, u8 _addr, u8 *_data, s32 _size)
-{
- s32 ret;
-
- if (tcbd_io_funcs.reg_write_burst_fix == NULL)
- return -TCERR_IO_NOT_INITIALIZED;
-
- if (_device == NULL || _data == NULL || _size <= 0)
- return TCERR_INVALID_ARG;
-
- tcpal_lock(&tcbd_io_funcs.sem);
- tcbd_io_funcs.chip_addr = _device->chip_addr;
- ret = tcbd_io_funcs.reg_write_burst_fix(_addr, _data, _size);
- tcpal_unlock(&tcbd_io_funcs.sem);
-
- return ret;
-}
-
-s32 tcbd_mem_write(
- struct tcbd_device *_device, u32 _addr, u8 *_data, u32 _size)
-{
- s32 ret = 0;
- u32 addr = SWAP32(_addr);
- u16 size = SWAP16((u16)(_size>>2));
- u8 ctrl_data;
-
- if (_size <= 0 || _data == NULL || _device == NULL)
- return -TCERR_INVALID_ARG;
-
- tcpal_lock(&tcbd_io_funcs.sem);
- tcbd_io_funcs.chip_addr = _device->chip_addr;
-
- ctrl_data =
- TCBD_CMDDMA_DMAEN |
- TCBD_CMDDMA_WRITEMODE |
- TCBD_CMDDMA_CRC32EN;
- ret |= tcbd_io_funcs.reg_write(TCBD_CMDDMA_CTRL, ctrl_data);
- ret |= tcbd_io_funcs.reg_write_burst_cont(
- TCBD_CMDDMA_SADDR, (u8 *)&addr, sizeof(u32));
- ret |= tcbd_io_funcs.reg_write_burst_cont(
- TCBD_CMDDMA_SIZE, (u8 *)&size, sizeof(u16));
- ctrl_data =
- TCBD_CMDDMA_START_AUTOCLR |
- TCBD_CMDDMA_INIT_AUTOCLR |
- TCBD_CMDDMA_CRC32INIT_AUTOCLR |
- TCBD_CMDDMA_CRC32INIT_AUTOCLR;
- ret |= tcbd_io_funcs.reg_write(TCBD_CMDDMA_STARTCTRL, ctrl_data);
- ret |= tcbd_io_funcs.reg_write_burst_fix(
- TCBD_CMDDMA_DATA_WIND, _data, _size);
-
- tcpal_unlock(&tcbd_io_funcs.sem);
- return ret;
-}
-
-s32 tcbd_mem_read(
- struct tcbd_device *_device, u32 _addr, u8 *_data, u32 _size)
-{
- s32 ret = 0;
- u8 ctrl_data;
- u32 addr = SWAP32(_addr);
- u16 size = SWAP16((u16)(_size >> 2));
-
- if (_size <= 0 || _data == NULL || _device == NULL)
- return -TCERR_INVALID_ARG;
-
- tcpal_lock(&tcbd_io_funcs.sem);
- tcbd_io_funcs.chip_addr = _device->chip_addr;
-
- ctrl_data = TCBD_CMDDMA_DMAEN | TCBD_CMDDMA_READMODE;
- ret |= tcbd_io_funcs.reg_write(TCBD_CMDDMA_CTRL, ctrl_data);
- ret |= tcbd_io_funcs.reg_write_burst_cont(
- TCBD_CMDDMA_SADDR, (u8 *)&addr, sizeof(u32));
- ret |= tcbd_io_funcs.reg_write_burst_cont(
- TCBD_CMDDMA_SIZE, (u8 *)&size, sizeof(u16));
- ctrl_data =
- TCBD_CMDDMA_START_AUTOCLR |
- TCBD_CMDDMA_INIT_AUTOCLR |
- TCBD_CMDDMA_CRC32INIT_AUTOCLR;
- ret |= tcbd_io_funcs.reg_write(TCBD_CMDDMA_STARTCTRL, ctrl_data);
- ret |= tcbd_io_funcs.reg_read_burst_fix(
- TCBD_CMDDMA_DATA_WIND, _data, _size);
-
- tcpal_unlock(&tcbd_io_funcs.sem);
- return ret;
-}
-
-s32 tcbd_rf_reg_write(
- struct tcbd_device *_device, u8 _addr, u32 _data)
-{
- s32 ret = 0;
- u32 data = SWAP32(_data);
-
- if (_device == NULL)
- return TCERR_INVALID_ARG;
-
- tcpal_lock(&tcbd_io_funcs.sem);
- tcbd_io_funcs.chip_addr = _device->chip_addr;
-
- ret |= tcbd_io_funcs.reg_write(
- TCBD_RF_CFG0,
- TCBD_RF_MANAGE_ENABLE|TCBD_RF_WRITE);
- ret |= tcbd_io_funcs.reg_write(TCBD_RF_CFG2, _addr);
- ret |= tcbd_io_funcs.reg_write_burst_cont(
- TCBD_RF_CFG3, (u8 *)&data, sizeof(u32));
- ret |= tcbd_io_funcs.reg_write(TCBD_RF_CFG1, TCBD_RF_ACTION);
- ret |= tcbd_io_funcs.reg_write(TCBD_RF_CFG0, TCBD_RF_MANAGE_DISABLE);
-
- tcpal_unlock(&tcbd_io_funcs.sem);
- return ret;
-}
-
-s32 tcbd_rf_reg_read(
- struct tcbd_device *_device, u32 _addr, u32 *_data)
-{
- s32 ret = 0;
- u32 data = 0;
-
- if (_device == NULL)
- return TCERR_INVALID_ARG;
-
- tcpal_lock(&tcbd_io_funcs.sem);
- tcbd_io_funcs.chip_addr = _device->chip_addr;
-
- ret |= tcbd_io_funcs.reg_write(
- TCBD_RF_CFG0, TCBD_RF_MANAGE_ENABLE|TCBD_RF_READ);
- ret |= tcbd_io_funcs.reg_write(TCBD_RF_CFG2, _addr);
- ret |= tcbd_io_funcs.reg_write(TCBD_RF_CFG1, TCBD_RF_ACTION);
- ret |= tcbd_io_funcs.reg_read_burst_cont(
- TCBD_RF_CFG3, (u8 *)&data, sizeof(u32));
- ret |= tcbd_io_funcs.reg_write(TCBD_RF_CFG0, TCBD_RF_MANAGE_DISABLE);
-
- *_data = SWAP32(data);
-
- tcpal_unlock(&tcbd_io_funcs.sem);
- return ret;
-}
-
-s32 tcbd_send_mail(
- struct tcbd_device *_device, struct tcbd_mail_data *_mail)
-{
- s32 ret = 0, count;
- u8 mail_data[32];
- u8 reg_data = 0;
- u64 time_tick, elapsed;
-
- tcpal_lock(&tcbd_io_funcs.sem);
-
- ret = tcbd_io_funcs.reg_write(TCBD_MAIL_CTRL, TCBD_MAIL_INIT);
-
- *((u32 *)mail_data) =
- (MB_HOSTMAIL << 24) | (_mail->count << 20) |
- (_mail->flag << 19) | (MB_ERR_OK << 16) | _mail->cmd;
-
- count = MIN(_mail->count, MAX_MAIL_COUNT);
- if (count > 0)
- memcpy(mail_data + sizeof(u32) ,
- _mail->data, count * sizeof(u32));
-
- ret |= tcbd_io_funcs.reg_write_burst_fix(
- TCBD_MAIL_FIFO_WIND, mail_data,
- sizeof(u32) + count * sizeof(u32));
- ret |= tcbd_io_funcs.reg_write(TCBD_MAIL_CTRL, TCBD_MAIL_HOSTMAILPOST);
- if (ret < 0)
- goto exit_send_mail;
-
- time_tick = tcpal_get_time();
- do {
- elapsed = tcpal_diff_time(time_tick);
- if (elapsed > (u64)MAX_TIME_TO_WAIT_MAIL) {
- ret = -TCERR_WAIT_MAIL_TIMEOUT;
- goto exit_send_mail;
- }
- /* latch mail status to register */
- ret = tcbd_io_funcs.reg_write(TCBD_MAIL_FIFO_W, 0x5E);
- /* read ratched status from register */
- ret |= tcbd_io_funcs.reg_read(TCBD_MAIL_FIFO_W, &reg_data);
- if (ret < 0)
- break;
- } while (!(reg_data & 0x1)); /* check fifo status */
-
- tcbd_debug(DEBUG_DRV_IO, "cmd:0x%X, count:%d, elapsed time:%llu\n",
- _mail->cmd, count, elapsed);
-
-exit_send_mail:
- tcpal_unlock(&tcbd_io_funcs.sem);
- return ret;
-}
-
-s32 tcbd_recv_mail(
- struct tcbd_device *_device, struct tcbd_mail_data *_mail)
-{
- s32 ret = 0;
- s32 mail_hdr;
- u8 mail_data[32] = {0, };
- u8 reg_data = 0;
- u8 bytes_read;
- u64 time_tick, elapsed;
-
- tcpal_lock(&tcbd_io_funcs.sem);
-
- time_tick = tcpal_get_time();
- do {
- /* latch mail status to register */
- ret = tcbd_io_funcs.reg_write(TCBD_MAIL_FIFO_R, 0x5E);
- /* read ratched status from register */
- ret |= tcbd_io_funcs.reg_read(TCBD_MAIL_FIFO_R, &reg_data);
-
- elapsed = tcpal_diff_time(time_tick);
- if (elapsed > (u64)MAX_TIME_TO_WAIT_MAIL)
- ret = -TCERR_WAIT_MAIL_TIMEOUT;
-
- if (ret < 0)
- goto exit_recv_mail;
- } while ((reg_data & 0xFC) < 3); /* check fifo status */
- bytes_read = (reg_data >> 2) & 0x3F;
- tcbd_debug(DEBUG_DRV_IO, "cmd:0x%X, bytes_read:%d, elapsed time:%llu\n",
- _mail->cmd, bytes_read, elapsed);
-
- ret = tcbd_io_funcs.reg_read_burst_fix(
- TCBD_MAIL_FIFO_WIND, mail_data, bytes_read);
- /*only warm boot cmd */
- if (bytes_read == 4) {
- memcpy(_mail->data, mail_data, bytes_read);
- goto exit_recv_mail;
- }
-
- mail_hdr = *((u32 *)mail_data);
- if ((mail_hdr >> 24) != MB_SLAVEMAIL) {
- tcbd_debug(DEBUG_ERROR, "Error : cmd=0x%X bytes_read=%d\n",
- _mail->cmd, bytes_read);
- tcbd_debug(DEBUG_ERROR, " [0x%02X][0x%02X][0x%02X][0x%02X]"
- "[0x%02X][0x%02X][0x%02X][0x%02X]\n",
- mail_data[0], mail_data[1], mail_data[2],
- mail_data[3], mail_data[4], mail_data[5],
- mail_data[6], mail_data[7]);
-
- ret = -TCERR_BROKEN_MAIL_HEADER;
- goto exit_recv_mail;
- }
- _mail->cmd = mail_hdr & 0xFFFF;
- _mail->status = (mail_hdr >> 16) & 0x7;
- if (_mail->status) {
- tcbd_debug(DEBUG_ERROR, "Mail Error : status=0x%X, cmd=0x%X\n",
- _mail->status, _mail->cmd);
- ret = -TCERR_UNKNOWN_MAIL_STATUS;
- goto exit_recv_mail;
- }
- _mail->count = (bytes_read >> 2) - 1;
- memcpy(_mail->data, mail_data + 4, bytes_read - 4);
-
-exit_recv_mail:
- tcpal_unlock(&tcbd_io_funcs.sem);
- return ret;
-}
-
-s32 tcbd_read_mail_box(struct tcbd_device *_device, u16 _cmd, s32 _cnt,
- u32 *_data)
-{
- s32 ret = 0;
- struct tcbd_mail_data mail = {0, };
-
- mail.flag = MB_CMD_READ;
- mail.cmd = _cmd;
- mail.count = _cnt;
- ret = tcbd_send_mail(_device, &mail);
- if (ret < 0) {
- tcbd_debug(DEBUG_ERROR, "failed to send mail! %d\n", ret);
- goto exit_read_mail_box;
- }
-
- ret = tcbd_recv_mail(_device, &mail);
- if (ret < 0) {
- tcbd_debug(DEBUG_ERROR, "failed to recv mail! %d\n", ret);
- goto exit_read_mail_box;
- }
-
- memcpy((void *)_data, (void *)mail.data, _cnt * sizeof(u32));
-
-exit_read_mail_box:
- return ret;
-}
-
-s32 tcbd_write_mail_box(struct tcbd_device *_device, u16 _cmd, s32 _cnt,
- u32 *_data)
-{
- u32 *data = NULL;
- struct tcbd_mail_data mail = {0, };
-
- if (_cnt > MAX_MAIL_COUNT || _data == NULL) {
- tcbd_debug(DEBUG_ERROR, "invalid param, cnt:%d\n", _cnt);
- return -TCERR_INVALID_ARG;
- }
-
- mail.flag = MB_CMD_WRITE;
- mail.cmd = _cmd;
- mail.count = _cnt;
- memcpy((void *)mail.data, (void *)_data, _cnt * sizeof(u32));
-#if defined(__DEBUG_DSP_ROM__)
- tcbd_debug_mbox_tx(&_cmd, &_cnt, &data);
- if (data != NULL) {
- int i, sz = 0;
- char print_buff[80];
- mail.cmd = _cmd;
- mail.count = _cnt;
- memcpy((void *)mail.data, (void *)data, _cnt * sizeof(u32));
- for (i = 0; i < _cnt; i++)
- sz += sprintf(print_buff + sz, "[%08X]", data[i]);
-
- tcbd_debug(DEBUG_ERROR, "cmd 0x%X, cnt:%d, %s\n",
- _cmd, _cnt, print_buff);
- }
-#endif /*__DEBUG_DSP_ROM__*/
- return tcbd_send_mail(_device, &mail);
-}
-
-#if defined(__DEBUG_DSP_ROM__)
-s32 tcbd_read_file(struct tcbd_device *_device, char *_path, u8 *_buff,
- s32 _size)
-{
- int ret;
- struct file *flip = NULL;
- mm_segment_t old_fs;
-
- if (_path == NULL) {
- tcbd_debug(DEBUG_ERROR, "invalid filename! %s\n", _path);
- return -1;
- }
-
- if (_buff == NULL) {
- tcbd_debug(DEBUG_ERROR, "Invaild pointer! 0x%X\n", (u32)_buff);
- return -1;
- }
-
- flip = filp_open(_path, O_RDWR, 0);
- if (IS_ERR(flip)) {
- tcbd_debug(DEBUG_ERROR, "%s open failed\n", _path);
- return -1;
- }
-
- old_fs = get_fs();
- set_fs(KERNEL_DS);
-
- flip->f_pos = 0;
- ret = vfs_read(flip, _buff, _size, &flip->f_pos);
-
- filp_close(flip, NULL);
- set_fs(old_fs);
-
- return ret;
-}
-#endif /*__DEBUG_DSP_ROM__*/
diff --git a/drivers/media/tdmb/tcc3170/src/tcbd_drv_ip.c b/drivers/media/tdmb/tcc3170/src/tcbd_drv_ip.c
deleted file mode 100644
index a5f81eb..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcbd_drv_ip.c
+++ /dev/null
@@ -1,808 +0,0 @@
-/*
- * tcbd_drv_ip.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-#include "tcpal_os.h"
-#include "tcbd_feature.h"
-#include "tcpal_debug.h"
-
-#include "tcbd_api_common.h"
-#include "tcbd_drv_ip.h"
-#include "tcbd_drv_io.h"
-#include "tcbd_drv_rf.h"
-
-struct tcbd_spur_data {
- s32 freq_khz;
- s32 num_data;
- s32 data[7];
-};
-
-struct tcbd_agc_data {
- s32 cmd;
- s32 num_data;
- u32 data[7];
-};
-
-#define MAX_BOOT_TABLE 5
-struct tcbd_boot_bin {
- u32 size;
- u32 crc;
- u32 addr;
- u8 *data;
-};
-
-static u32 clock_config_table[3][5] = {
- { 0x60, 0x00, 0x0F, 0x03, 19200},
- { 0x60, 0x01, 0x18, 0x03, 24576},
- { 0x60, 0x01, 0x0F, 0x03, 38400}
-};
-
-static struct tcbd_spur_data spur_data_table_default[] = {
- { 181936, 2, {(0x035C<<16)|(0x0342), (0x0359<<16)|(0x033e)} },
- { 183008, 2, {(0x00CA<<16)|(0x036B), (0x00CE<<16)|(0x0368)} },
- { 192352, 2, {(0x0081<<16)|(0x0328), (0x0084<<16)|(0x0324)} },
- { 201008, 2, {(0x033A<<16)|(0x0366), (0x0336<<16)|(0x0363)} },
- { 201072, 2, {(0x034B<<16)|(0x0352), (0x0347<<16)|(0x034F)} },
- { 211280, 2, {(0x001E<<16)|(0x0307), (0x001F<<16)|(0x0302)} },
- { 211648, 2, {(0x009F<<16)|(0x033E), (0x00A2<<16)|(0x033A)} },
- { 220352, 2, {(0x0361<<16)|(0x033E), (0x035E<<16)|(0x033A)} },
- { 230784, 2, {(0x008B<<16)|(0x032F), (0x008E<<16)|(0x032B)} },
- {1459808, 2, {(0x00CA<<16)|(0x036B), (0x00CE<<16)|(0x0368)} },
- {1468368, 2, {(0x0366<<16)|(0x033A), (0x0363<<16)|(0x0336)} },
- {1478640, 2, {(0x005A<<16)|(0x0316), (0x005C<<16)|(0x0311)} }
-};
-
-static struct tcbd_spur_data spur_data_table_24576[] = {
- { 180064, 2, {(0x03C3<<16)|(0x030D), (0x03C2<<16)|(0x0308)} },
- { 184736, 2, {(0x0092<<16)|(0x033A), (0x0098<<16)|(0x0332)} },
- { 188928, 2, {(0x00B1<<16)|(0x034F), (0x00B5<<16)|(0x034B)} },
- { 189008, 2, {(0x00C6<<16)|(0x0366), (0x00CA<<16)|(0x0363)} },
- { 195936, 2, {(0x0328<<16)|(0x037F), (0x0324<<16)|(0x037C)} },
- { 196736, 2, {(0x0030<<16)|(0x030F), (0x0032<<16)|(0x0305)} },
- { 199280, 2, {(0x000B<<16)|(0x030A), (0x000B<<16)|(0x0300)} },
- { 204640, 2, {(0x03C3<<16)|(0x030D), (0x03C2<<16)|(0x0308)} },
- { 205280, 2, {(0x039F<<16)|(0x031E), (0x039B<<16)|(0x0315)} },
- { 208736, 2, {(0x03C4<<16)|(0x0312), (0x03C2<<16)|(0x0308)} },
- { 213008, 2, {(0x0006<<16)|(0x0305), (0x0006<<16)|(0x0300)} },
- { 213360, 2, {(0x0086<<16)|(0x032C), (0x0089<<16)|(0x0328)} },
- { 229072, 2, {(0x038F<<16)|(0x031F), (0x038D<<16)|(0x031B)} },
- { 237488, 2, {(0x03E2<<16)|(0x0307), (0x03E1<<16)|(0x0302)} },
- { 1458096, 2, {(0x03E2<<16)|(0x0307), (0x03E1<<16)|(0x0302)} },
- { 1466656, 2, {(0x006B<<16)|(0x031E), (0x006D<<16)|(0x0319)} },
- { 1475216, 2, {(0x00D4<<16)|(0x037A), (0x00D8<<16)|(0x0377)} },
- { 1482064, 2, {(0x0325<<16)|(0x0384), (0x0321<<16)|(0x0382)} },
- { 1490624, 2, {(0x0389<<16)|(0x0322), (0x0387<<16)|(0x031E)} },
-};
-
-#if defined(__AGC_TABLE_IN_DSP__)
-static struct tcbd_agc_data agc_data_table_lband[] = {
- {MBCMD_AGC_DAB_JAM, 3,
- {0x0, (195 << 16) + (23 << 8) + 24, 0x001C0012} },
-};
-
-static struct tcbd_agc_data agc_table_data_vhf[] = {
- {MBCMD_AGC_DAB_JAM, 3,
- {0x0, (195 << 16) + (16 << 8) + 17, 0x005a0043} },
-};
-#else /*__AGC_TABLE_IN_DSP__*/
-static struct tcbd_agc_data agc_data_table_lband[] = {
- { MBCMD_AGC_DAB_CFG, 3, {0xC0ACFF44, 0x031EFF53, 0x011EFF07} },
- { MBCMD_AGC_DAB_JAM, 3,
- {0x00091223, (195 << 16) + (23 << 8) + 24, 0x001C0012} },
- { MBCMD_AGC_DAB_3, 7,
- {0x52120223, 0x58120823, 0x5c121223,
- 0x60121c23, 0x62122023, 0x68122423, 0x6a122a23} },
- { MBCMD_AGC_DAB_4, 7,
- {0x70123223, 0x30093a23, 0x32094023, 0x3a094823,
- 0x3c095223, 0x40095823, 0x42095c23} },
- { MBCMD_AGC_DAB_5, 7,
- {0x48096023, 0x4a096223, 0x52096423,
- 0x4e096823, 0x58096a23, 0x5a097023, 0x5e090812} },
- { MBCMD_AGC_DAB_6, 7,
- {0x62091212, 0x68090e12, 0x70091c12,
- 0x72092012, 0x78092412, 0x7a093012, 0x7c093812} },
- { MBCMD_AGC_DAB_7, 4,
- {0x7e093a12, 0x6f094012, 0x73094212, 0x7f094a12} },
- { MBCMD_AGC_DAB_8, 5,
- {0x30093a23, 0x32094023, 0x3a094823, 0x3c095223, 0x40095823} },
- { MBCMD_AGC_DAB_9, 5,
- {0x72123a23, 0x78124023, 0x7a124823, 0x7e125223, 0x73125823} },
- { MBCMD_AGC_DAB_A, 5,
- {0x5e090812, 0x62091212, 0x68090e12, 0x70091c12, 0x72092012} },
- { MBCMD_AGC_DAB_B, 5,
- {0x5e097223, 0x62097823, 0x68097a23, 0x70097e23, 0x72097323} },
- { MBCMD_AGC_DAB_C, 5, {0x0, 0x0, 0x0, 0x0, 0x0} },
- { MBCMD_AGC_DAB_D, 5, {0x0, 0x0, 0x0, 0x0, 0x0} },
- { MBCMD_AGC_DAB_E, 5, {0x0, 0x0, 0x0, 0x0, 0x0} },
- { MBCMD_AGC_DAB_F, 5, {0x0, 0x0, 0x0, 0x0, 0x0} },
-};
-
-static struct tcbd_agc_data agc_table_data_vhf[] = {
- { MBCMD_AGC_DAB_CFG, 3,
- {0xC0ACFF44, 0x031EFF53, 0x011EFF07} },
- { MBCMD_AGC_DAB_JAM, 3,
- {0x16112243, (195 << 16) + (16 << 8) + 17, 0x005a0043} },
- { MBCMD_AGC_DAB_3, 7,
- {0x5a220243, 0x5e220843, 0x60221043,
- 0x62221443, 0x64221c43, 0x68222043, 0x6c222243} },
- { MBCMD_AGC_DAB_4, 7,
- {0x70222843, 0x2a112c43, 0x30113443, 0x34113a43,
- 0x38113e43, 0x3c114243, 0x3e114643} },
- { MBCMD_AGC_DAB_5, 7,
- {0x40114c43, 0x44115443, 0x48115a43, 0x4a115e43,
- 0x50116043, 0x54116443, 0x5a112422} },
- { MBCMD_AGC_DAB_6, 7,
- {0x5e112822, 0x60113222, 0x62113622, 0x66113a22,
- 0x6a113e22, 0x6e114222, 0x72114622} },
- { MBCMD_AGC_DAB_7, 4,
- {0x76114822, 0x7a115022, 0x7e115422, 0x7f115622} },
- { MBCMD_AGC_DAB_8, 5,
- {0x2a112c43, 0x30113443, 0x34113a43, 0x38113e43, 0x3c114243} },
- { MBCMD_AGC_DAB_9, 5,
- {0x74222c43, 0x78223443, 0x7a223a43, 0x7e223e43, 0x7f224243} },
- { MBCMD_AGC_DAB_A, 5,
- {0x5a112422, 0x5e112822, 0x60113222, 0x62113622, 0x66113a22} },
- { MBCMD_AGC_DAB_B, 5,
- {0x5a116843, 0x5e116c43, 0x60117243, 0x62117643, 0x66117a43} },
- { MBCMD_AGC_DAB_C, 5, {0x0, 0x0, 0x0, 0x0, 0x0} },
- { MBCMD_AGC_DAB_D, 5, {0x0, 0x0, 0x0, 0x0, 0x0} },
- { MBCMD_AGC_DAB_E, 5, {0x0, 0x0, 0x0, 0x0, 0x0} },
- { MBCMD_AGC_DAB_F, 5, {0x0, 0x0, 0x0, 0x0, 0x0} },
-};
-#endif /*!__AGC_TABLE_IN_DSP__*/
-
-s32 tcbd_send_spur_data(struct tcbd_device *_device, s32 _freq_khz)
-{
- s32 ret = 0, i;
- s32 size_table;
- struct tcbd_spur_data *spur_table;
-
- switch (_device->clock_type) {
- case CLOCK_24576KHZ:
- spur_table = spur_data_table_24576;
- size_table = ARRAY_SIZE(spur_data_table_24576);
- break;
- case CLOCK_38400KHZ:
- case CLOCK_19200KHZ:
- default:
- spur_table = spur_data_table_default;
- size_table = ARRAY_SIZE(spur_data_table_default);
- break;
- }
- for (i = 0; i < size_table; i++) {
- if (spur_table[i].freq_khz != _freq_khz)
- continue;
-
- tcbd_debug(DEBUG_DRV_COMP, "freq:%d, num mail data:%d\n",
- _freq_khz, spur_table[i].num_data);
- ret = tcbd_write_mail_box(_device, MBCMD_FP_DAB_IIR,
- spur_table[i].num_data,
- spur_table[i].data);
- break;
- }
-
- return ret;
-}
-
-s32 tcbd_send_agc_data(struct tcbd_device *_device,
- enum tcbd_band_type _band_type)
-{
- s32 ret = 0, i;
- s32 size_table;
- struct tcbd_agc_data *agc_table;
-
- switch (_band_type) {
- case BAND_TYPE_LBAND:
- size_table = ARRAY_SIZE(agc_data_table_lband);
- agc_table = agc_data_table_lband;
- break;
- case BAND_TYPE_BAND3:
- size_table = ARRAY_SIZE(agc_table_data_vhf);
- agc_table = agc_table_data_vhf;
- break;
- default:
- tcbd_debug(DEBUG_ERROR, "Unknown band type:%d\n", _band_type);
- return -1;
- }
- tcbd_debug(DEBUG_DRV_COMP, "agc table size:%d, band:%s\n", size_table,
- (_band_type == BAND_TYPE_LBAND) ? "Lband" : "Band3");
-
- for (i = 0; i < size_table; i++) {
- ret |= tcbd_write_mail_box(_device, agc_table[i].cmd,
- agc_table[i].num_data,
- agc_table[i].data);
- }
-
- return ret;
-}
-
-s32 tcbd_send_frequency(struct tcbd_device *_device, s32 _freq_khz)
-{
- s32 data, ret = 0;
-
- tcbd_debug(DEBUG_DRV_COMP, "freq:%d\n", _freq_khz);
-
- data = 1;
- ret |= tcbd_write_mail_box(_device, MBPARA_SYS_NUM_FREQ, 1, &data);
- ret |= tcbd_write_mail_box(_device, MBPARA_SYS_FREQ_0_6, 1, &_freq_khz);
-
- return ret;
-}
-
-static inline void tcbd_sort_start_cu(struct tcbd_multi_service *_multi_svc,
- u32 *_svc_info)
-{
- s32 i, j;
- s32 start_cu[TCBD_MAX_NUM_SERVICE];
- u32 tmp_cu, tmp_info[2];
-
- memcpy(_svc_info, _multi_svc->service_info,
- sizeof(u32) * TCBD_MAX_NUM_SERVICE << 1);
- for (i = 0; i < TCBD_MAX_NUM_SERVICE; i++) {
- if (_svc_info[i << 1] != 0)
- start_cu[i] = _svc_info[i << 1] & 0x3FF;
- else
- start_cu[i] = 0x3FF;
- }
-
- for (i = 0; i < TCBD_MAX_NUM_SERVICE; i++) {
- for (j = i + 1; j < TCBD_MAX_NUM_SERVICE; j++) {
- if (start_cu[i] > start_cu[j]) {
- tmp_cu = start_cu[i];
- tmp_info[0] = _svc_info[i * 2];
- tmp_info[1] = _svc_info[i * 2 + 1];
-
- start_cu[i] = start_cu[j];
- _svc_info[i * 2] = _svc_info[j * 2];
- _svc_info[i * 2 + 1] = _svc_info[j * 2 + 1];
-
- start_cu[j] = tmp_cu;
- _svc_info[j * 2] = tmp_info[0];
- _svc_info[j * 2 + 1] = tmp_info[1];
- }
- }
- }
- for (i = 0; i < TCBD_MAX_NUM_SERVICE * 2; i++)
- tcbd_debug(DEBUG_DRV_COMP, "%02d: 0x%08X\n", i, _svc_info[i]);
-}
-
-s32 tcbd_send_service_info(struct tcbd_device *_device)
-{
- s32 ret = 0;
- struct tcbd_multi_service *mult_service = &_device->mult_service;
- u32 sorted_svc_info[TCBD_MAX_NUM_SERVICE * 2];
- u8 num_svc = TCBD_MAX_NUM_SERVICE;
-
- tcbd_sort_start_cu(mult_service, sorted_svc_info);
-
- ret = tcbd_write_mail_box(_device, MBPARA_SEL_CH_INFO_PRAM,
- num_svc, sorted_svc_info);
- ret |= tcbd_write_mail_box(_device, MBPARA_SEL_CH_INFO_PRAM + 1,
- num_svc, sorted_svc_info + num_svc);
- ret |= tcbd_write_mail_box(_device, MBPARA_SYS_DAB_MCI_UPDATE, 1,
- &mult_service->service_count);
- tcbd_debug(DEBUG_DRV_COMP, "service count:%d\n",
- mult_service->service_count);
- return ret;
-}
-
-s32 tcbd_disable_buffer(struct tcbd_device *_device)
-{
- s32 ret = 0;
- ret |= tcbd_reg_write(_device, TCBD_OBUFF_CONFIG, 0);
- return ret;
-}
-
-s32 tcbd_enable_buffer(struct tcbd_device *_device)
-{
- s32 i, ret = 0;
- u8 buff_en = 0, buff_init = 0;
-
- u32 list_size_buf[] = {
- TCBD_BUFFER_A_SIZE, TCBD_BUFFER_B_SIZE,
- TCBD_BUFFER_C_SIZE, TCBD_BUFFER_D_SIZE };
- u8 list_buff_init[] = {
- TCBD_OBUFF_BUFF_A_INIT, TCBD_OBUFF_BUFF_B_INIT,
- TCBD_OBUFF_BUFF_C_INIT, TCBD_OBUFF_BUFF_D_INIT };
- u32 list_buff_en[] = {
- TCBD_OBUFF_CONFIG_BUFF_A_EN | TCBD_OBUFF_CONFIG_BUFF_A_CIRCULAR,
- TCBD_OBUFF_CONFIG_BUFF_B_EN | TCBD_OBUFF_CONFIG_BUFF_B_CIRCULAR,
- TCBD_OBUFF_CONFIG_BUFF_C_EN | TCBD_OBUFF_CONFIG_BUFF_C_CIRCULAR,
- TCBD_OBUFF_CONFIG_BUFF_D_EN | TCBD_OBUFF_CONFIG_BUFF_D_CIRCULAR,
- };
-
- for (i = 0; i < ARRAY_SIZE(list_size_buf); i++) {
- if (list_size_buf[i]) {
- buff_init |= list_buff_init[i];
- buff_en |= list_buff_en[i];
- }
- }
- tcbd_debug(DEBUG_DRV_COMP, "buffer init : 0x%02X, buffer en:0x%02X\n",
- buff_init, buff_en);
- ret |= tcbd_reg_write(_device, TCBD_OBUFF_INIT, buff_init);
- ret |= tcbd_reg_write(_device, TCBD_OBUFF_CONFIG, buff_en);
- return ret;
-}
-/*__DEBUG_TCBD__*/
-s32 tcbd_init_buffer_region(struct tcbd_device *_device)
-{
- s32 i, ret = 0;
- u32 addr_start, addr_end;
-#if defined(__DEBUG_TCBD__)
- u16 reg_val[2];
-#endif /*__DEBUG_TCBD__*/
- u32 list_size_buf[] = {
- TCBD_BUFFER_A_SIZE, TCBD_BUFFER_B_SIZE,
- TCBD_BUFFER_C_SIZE, TCBD_BUFFER_D_SIZE };
- u8 reg_addr_buff[] = {
- TCBD_OBUFF_A_SADDR, TCBD_OBUFF_B_SADDR,
- TCBD_OBUFF_C_SADDR, TCBD_OBUFF_D_SADDR };
- u32 addr_set_buff[] = {
- (PHY_MEM_ADDR_A_START>>2), (PHY_MEM_ADDR_A_END>>2),
- (PHY_MEM_ADDR_B_START>>2), (PHY_MEM_ADDR_B_END>>2),
- (PHY_MEM_ADDR_C_START>>2), (PHY_MEM_ADDR_C_END>>2),
- (PHY_MEM_ADDR_D_START>>2), (PHY_MEM_ADDR_D_END>>2),
- };
-
- for (i = 0; i < ARRAY_SIZE(list_size_buf); i++) {
- if (!list_size_buf[i])
- continue;
-
- addr_start = SWAP16(addr_set_buff[i * 2 + 0]);
- addr_end = SWAP16(addr_set_buff[i * 2 + 1]);
- tcbd_debug(DEBUG_DRV_COMP, "reg:%02x, %c buffer size: %d\n",
- reg_addr_buff[i], 'A' + i,
- (addr_set_buff[i * 2 + 1] << 2) -
- (addr_set_buff[i * 2 + 0] << 2) + 4);
- ret = tcbd_reg_write_burst_cont(
- _device, reg_addr_buff[i], (u8 *)&addr_start, 2);
- ret |= tcbd_reg_write_burst_cont(
- _device, reg_addr_buff[i] + 2, (u8 *)&addr_end, 2);
-
- if (ret < 0)
- return ret;
- }
-#if defined(__DEBUG_TCBD__)
- for (i = 0; i < 4 && list_size_buf[i]; i++) {
- tcbd_reg_read_burst_cont(
- _device, reg_addr_buff[i], (u8 *)&reg_val[0], 2);
- tcbd_reg_read_burst_cont(
- _device, reg_addr_buff[i] + 2, (u8 *)&reg_val[1], 2);
- tcbd_debug(DEBUG_DRV_COMP, "%c buffer start:%X, end:%X\n",
- 'A' + i,
- SWAP16(reg_val[0]) << 2,
- SWAP16(reg_val[1]) << 2);
- }
-#endif /*__DEBUG_TCBD__*/
- /*tcbd_enable_buffer(_device);*/
- return ret;
-}
-
-s32 tcbd_change_memory_view(struct tcbd_device *_device,
- enum tcbd_remap_type _remap)
-{
- return tcbd_reg_write(_device, TCBD_INIT_REMAP, (u8)_remap);
-}
-
-s32 tcbd_init_bias_key(struct tcbd_device *_device)
-{
- s32 ret = 0;
-
- ret |= tcbd_reg_write(_device, TCBD_OP_XTAL_BIAS, 0x05);
- ret = tcbd_reg_write(_device, TCBD_OP_XTAL_BIAS_KEY, 0x5E);
-
- return ret;
-}
-
-u32 tcbd_get_osc_clock(struct tcbd_device *_device)
-{
- return clock_config_table[(int)_device->clock_type][4];
-}
-
-s32 tcbd_init_pll(struct tcbd_device *_device, enum tcbd_clock_type _ctype)
-{
- /*
- * _pll_data[0] = PLL_WAIT_TIME
- * _pll_data[1] = PLL_P
- * _pll_data[2] = PLL_M
- * _pll_data[3] = PLL_S
- * _pll_data[4] = OSC_LOCK
- * */
- s32 ret = 0;
- u32 out, vco;
- u8 pll_data[2];
- u8 pll_r, pll_f, pll_od, pll_m;
- u32 *clock_config = NULL;
-
- if (!_device || _ctype >= CLOCK_MAX)
- return -TCERR_INVALID_ARG;
-
- _device->clock_type = _ctype;
-
- if (!tcbd_debug_spur_dbg())
- clock_config = clock_config_table[(s32)_ctype];
- else
- clock_config = tcbd_debug_spur_clk_cfg();
-
- tcbd_debug(DEBUG_DRV_COMP, "osc clock:%d, P:%X, M:%X, S:%d\n",
- clock_config[1], clock_config[2],
- clock_config[3], clock_config[4]);
- pll_r = clock_config[1] + 1;
- pll_f = clock_config[2] + 1;
- pll_od = clock_config[3] & 0x3;
- pll_m = (clock_config[3] & 0x4) >> 2;
-
- vco = clock_config[4] * (pll_f / pll_r);
-
- if (pll_od)
- out = vco >> pll_od;
- else
- out = vco;
-
- if (pll_m)
- out = out>>pll_m;
-
- _device->main_clock = out;
- pll_data[0] = clock_config[2] | (pll_m << 6) | 0x80;
- pll_data[1] = (clock_config[1] << 3) | (pll_od << 1);
-
- ret = tcbd_reg_write(_device, TCBD_PLL_7, pll_data[1]);
- ret = tcbd_reg_write(_device, TCBD_PLL_6, pll_data[0]);
- tcpal_msleep(1);
- tcbd_debug(DEBUG_DRV_COMP, "clock out:%d, pll[0]=%02X, pll[1]=%02X\n",
- out, pll_data[0], pll_data[1]);
-
- ret |= tcbd_init_bias_key(_device);
-
- return ret;
-}
-
-
-static s32 tcbd_check_dsp(struct tcbd_device *_device)
-{
- s32 ret = 0;
- u32 status;
-
- ret = tcbd_reg_read_burst_fix(
- _device, TCBD_MAIL_FIFO_WIND, (u8 *)&status, 4);
-
- if (status != 0x1ACCE551) {
- tcbd_debug(DEBUG_ERROR, " # Error access mail [0x%X]\n",
- status);
- return -TCERR_CANNOT_ACCESS_MAIL;
- }
-
- return ret;
-}
-
-s32 tcbd_reset_ip(struct tcbd_device *_device, u8 _comp_en, u8 _comp_rst)
-{
- s32 ret = 0;
- _device->processor = _comp_en;
-
- ret |= tcbd_reg_write(_device, TCBD_SYS_EN, _comp_en);
- ret |= tcbd_reg_write(_device, TCBD_SYS_RESET, _comp_rst);
-
- return ret;
-}
-
-s32 tcbd_change_stream_type(struct tcbd_device *_device, u32 _format)
-{
- _device->selected_stream = _format;
- return tcbd_write_mail_box(_device, MBPARA_SYS_DAB_STREAM_SET,
- 1, &_format);
-}
-
-s32 tcbd_demod_tune_frequency(struct tcbd_device *_device, u32 _freq_khz,
- s32 _bw_khz)
-{
- s32 ret = 0;
- u32 sel_stream = 0;
-
- switch (_device->peri_type) {
- case PERI_TYPE_SPI_ONLY:
- case PERI_TYPE_STS:
- sel_stream = STREAM_TYPE_ALL;
- break;
- default:
- tcbd_debug(DEBUG_ERROR, "not implemented!\n");
- return -1;
- }
-#if defined(__STATUS_IN_REGISTER__)
- sel_stream &= ~(STREAM_TYPE_STATUS);
-#endif /* __STATUS_IN_REGISTER__ */
-
- ret = tcbd_change_stream_type(_device, sel_stream);
- ret |= tcbd_send_spur_data(_device, _freq_khz);
- ret |= tcbd_send_frequency(_device, _freq_khz);
- if (ret < 0) {
- tcbd_debug(DEBUG_ERROR,
- "Failed to send spur and freq to op, err:%d\n", ret);
- return ret;
- }
-
- if (_device->curr_band != _device->prev_band)
- tcbd_send_agc_data(_device, _device->curr_band);
-
- ret |= tcbd_set_pid_filter(_device, FILTER_ENABLE | FILTER_SYNCERR);
- ret |= tcbd_dsp_warm_start(_device);
- return ret;
-}
-
-
-s32 tcbd_dsp_cold_start(struct tcbd_device *_device)
-{
- s32 ret = 0;
- u16 new_pc = SWAP16(START_PC_OFFSET);
-
- ret = tcbd_change_memory_view(_device, OP_RAM0_EP_RAM1_PC2);
- ret |= tcbd_reg_write_burst_cont(
- _device, TCBD_INIT_PC, (u8 *)&new_pc, 2);
- ret |= tcbd_reg_write(_device, TCBD_SYS_RESET, TCBD_SYS_COMP_DSP);
- ret |= tcbd_reg_write(
- _device, TCBD_SYS_EN, TCBD_SYS_COMP_DSP | TCBD_SYS_COMP_EP);
-
- if (ret < 0)
- return ret;
-
- return tcbd_check_dsp(_device);
-}
-
-static inline s32 tcbd_start_demod(struct tcbd_device *_device)
-{
- s32 ret = 0;
- struct tcbd_mail_data mail = {0, };
-
- mail.flag = MB_CMD_READ;
- mail.cmd = MBPARA_SYS_START;
- mail.count = 1;
- mail.data[0] = 0x19;
- switch (_device->clock_type) {
- case CLOCK_24576KHZ:
- mail.data[0] |= 0x1 << 28;
- break;
- case CLOCK_38400KHZ:
- mail.data[0] |= 0x2 << 28;
- break;
- case CLOCK_19200KHZ:
- mail.data[0] |= 0x0 << 28;
- break;
- default:
- break;
- }
- ret |= tcbd_send_mail(_device, &mail);
- ret |= tcbd_recv_mail(_device, &mail);
-
- return ret;
-}
-
-s32 tcbd_dsp_warm_start(struct tcbd_device *_device)
-{
- s32 ret = 0;
- struct tcbd_mail_data mail = {0, };
-
- mail.flag = MB_CMD_WRITE;
- mail.cmd = MBPARA_SYS_WARMBOOT;
- mail.count = 0;
-
- ret |= tcbd_send_mail(_device, &mail);
- ret |= tcbd_recv_mail(_device, &mail);
-
- if (ret < 0 || mail.data[0] != 0x1ACCE551) {
- tcbd_debug(DEBUG_ERROR, " # Could not warm boot! [%08X]\n",
- mail.data[0]);
- return -TCERR_WARMBOOT_FAIL;
- }
- ret = tcbd_start_demod(_device);
-
- if (ret >= 0)
- tcbd_debug(DEBUG_DRV_COMP, "Warm boot succeed! [0x%X] ret:%d\n",
- mail.data[0], ret);
- return ret;
-}
-
-static s32 tcbd_parse_dsp_rom(
- u8 *_data, u32 _size, struct tcbd_boot_bin *_boot_bin)
-{
-
- u32 idx = 0;
- u32 length;
- s32 table_idx = 0;
-
- memset(_boot_bin, 0, sizeof(struct tcbd_boot_bin) * MAX_BOOT_TABLE);
-
- /* cold boot */
- if (_data[idx + 3] != 0x01) {
- tcbd_debug(DEBUG_ERROR, "# Coldboot_preset_Error\n");
- return 0;
- }
- idx += 4;
- length = (_data[idx] << 24) + (_data[idx + 1] << 16) +
- (_data[idx + 2] << 8) + (_data[idx + 3]);
- idx += 4;
- _boot_bin[table_idx].addr = CODE_MEM_BASE;
- _boot_bin[table_idx].data = _data + idx;
- _boot_bin[table_idx].crc = *((u32 *)(_data + idx + length - 4));
- _boot_bin[table_idx++].size = length - 4;
- idx += length;
- _size -= (length + 8);
-
- /* dagu */
- if (_data[idx + 3] != 0x02) {
- tcbd_debug(DEBUG_ERROR, "# Coldboot_preset_Error\n");
- return 0;
- }
- idx += 4;
- length = (_data[idx] << 24) + (_data[idx + 1] << 16) +
- (_data[idx + 2] << 8) + (_data[idx + 3]);
- idx += 4;
- _boot_bin[table_idx].addr = CODE_TABLEBASE_DAGU;
- _boot_bin[table_idx].data = _data + idx;
- _boot_bin[table_idx++].size = length;
- idx += length;
- _size -= (length + 8);
-
- /* dint */
- if (_data[idx + 3] != 0x03) {
- tcbd_debug(DEBUG_ERROR, "# Coldboot_preset_Error\n");
- return 0;
- }
- idx += 4;
- length = (_data[idx] << 24) + (_data[idx + 1] << 16) +
- (_data[idx + 2] << 8) + (_data[idx + 3]);
- idx += 4;
- _boot_bin[table_idx].addr = CODE_TABLEBASE_DINT;
- _boot_bin[table_idx].data = _data + idx;
- _boot_bin[table_idx++].size = length;
- idx += length;
- _size -= (length + 8);
-
- /* rand */
- if (_data[idx + 3] != 0x04) {
- tcbd_debug(DEBUG_ERROR, "# Coldboot_preset_Error\n");
- return 0;
- }
-
- idx += 4;
- length = (_data[idx] << 24) + (_data[idx + 1] << 16) +
- (_data[idx + 2] << 8) + (_data[idx + 3]);
- idx += 4;
- _boot_bin[table_idx].addr = CODE_TABLEBASE_RAND;
- _boot_bin[table_idx].data = _data + idx;
- _boot_bin[table_idx++].size = length;
- idx += length;
- _size -= (length + 8);
-
- if (_size >= 8) {
- /* col_order */
- if (_data[idx + 3] != 0x05) {
- tcbd_debug(DEBUG_ERROR, "# Coldboot_preset_Error\n");
- return 0;
- }
- idx += 4;
- length = (_data[idx] << 24) + (_data[idx + 1] << 16) +
- (_data[idx + 2] << 8) + (_data[idx + 3]);
- idx += 4;
-
- _boot_bin[table_idx].addr = CODE_TABLEBASE_COL_ORDER;
- _boot_bin[table_idx].data = _data + idx;
- _boot_bin[table_idx++].size = length;
- idx += length;
- _size -= (length + 8);
- }
-
- /* tcbd_debug(DEBUG_DRV_COMP, " # remain size :%d\n", _size); */
- return table_idx;
-}
-
-s32 tcbd_init_dsp(struct tcbd_device *_device, u8 *_boot_code, s32 _size)
-{
- s32 i, ret = 0;
- s32 num_table_entry = 0;
- u32 dma_crc = 0;
- u64 tick;
- struct tcbd_boot_bin boot_bin[MAX_BOOT_TABLE];
-
- tick = tcpal_get_time();
- num_table_entry = tcbd_parse_dsp_rom(_boot_code, _size, boot_bin);
-
- ret |= tcbd_change_memory_view(_device, EP_RAM0_RAM1);
-
- for (i = 0; i < num_table_entry && boot_bin[i].size; i++) {
- tcbd_debug(DEBUG_API_COMMON, "# download boot to 0x%X, "
- "size %d\n", boot_bin[i].addr,
- boot_bin[i].size);
- ret |= tcbd_mem_write(_device, boot_bin[i].addr,
- boot_bin[i].data, boot_bin[i].size);
- ret |= tcbd_reg_read_burst_cont(_device, TCBD_CMDDMA_CRC32,
- (u8 *)&dma_crc, 4);
- if (boot_bin[i].crc && (SWAP32(dma_crc) != boot_bin[i].crc)) {
- tcbd_debug(DEBUG_ERROR, "# CRC Error DMA[0x%08X] !="
- " BIN[0x%08X]\n", dma_crc,
- boot_bin[i].crc);
- return -TCERR_CRC_FAIL;
- }
- }
-
- ret = tcbd_dsp_cold_start(_device);
- if (ret < 0)
- tcbd_debug(DEBUG_ERROR, "Failed to cold boot! ret:%d\n", ret);
- else
- tcbd_debug(DEBUG_API_COMMON, "# %llums elapsed to download!\n",
- tcpal_diff_time(tick));
- return ret;
-}
-
-s32 tcbd_get_rom_version(struct tcbd_device *_device, u32 *_boot_version)
-{
- s32 ret = 0;
- struct tcbd_mail_data mail = {0, };
-
- mail.flag = MB_CMD_READ;
- mail.cmd = MBPARA_SYS_VERSION;
- mail.count = 0;
- ret = tcbd_send_mail(_device, &mail);
- if (ret < 0) {
- tcbd_debug(DEBUG_ERROR, "failed to send mail! %d\n", ret);
- return ret;
- }
-
- ret = tcbd_recv_mail(_device, &mail);
- if (ret < 0) {
- tcbd_debug(DEBUG_ERROR, "failed to recv mail! %d\n", ret);
- return ret;
- }
-
- memcpy(_boot_version, &mail.data[0], sizeof(u32));
-
- return ret;
-}
-
-s32 tcbd_check_dsp_status(struct tcbd_device *_device)
-{
- s32 i, j, len;
- s8 *item_name[] = {" CTO", " CFO", " SFE", "RESYNC" };
- s8 dbg_buff[255];
- static struct tcbd_mail_data check_item[] = {
- {MB_CMD_READ, 2, MBCMD_CTO_DAB_RESULT, },
- {MB_CMD_READ, 3, MBCMD_CFO_DAB_RESULT, },
- {MB_CMD_READ, 3, MBCMD_SFE_DAB_RESULT, },
- {MB_CMD_READ, 7, MBPARA_SYS_DAB_RESYNC_RESULT, }
- };
-
- for (i = 0; i < ARRAY_SIZE(check_item); i++) {
- tcbd_read_mail_box(_device,
- check_item[i].cmd,
- check_item[i].count,
- check_item[i].data);
- len = sprintf(dbg_buff, " %s ", item_name[i]);
- for (j = 0; j < check_item[i].count; j++) {
- len += sprintf(dbg_buff + len, "[%d] = 0x%08X, ",
- j, check_item[i].data[j]);
- }
- tcbd_debug(DEBUG_INFO, "%s\n", dbg_buff);
- }
- return 0;
-}
-
-s32 tcbd_set_pid_filter(struct tcbd_device *_device, u32 _filter)
-{
- return tcbd_write_mail_box(_device, MBPARA_SYS_DAB_DP_FLT, 1, &_filter);
-}
diff --git a/drivers/media/tdmb/tcc3170/src/tcbd_drv_peri.c b/drivers/media/tdmb/tcc3170/src/tcbd_drv_peri.c
deleted file mode 100644
index 8a162f7..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcbd_drv_peri.c
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * tcbd_drv_peri.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-#include "tcbd_feature.h"
-#include "tcbd_api_common.h"
-#include "tcbd_drv_io.h"
-
-#define TCBD_PERI_SPI_READY_TIME 0x00
-#define TCBD_PERI_SPI_WAIT_TIME 0x00
-
-static inline void tcbd_peri_spi_slave(
- u8 *_peri_mode, u8 _interface_speed)
-{
- _peri_mode[0] = TCBD_PERI_SPI_MOTOROLA_SSP |
- TCBD_PERI_SPI_SLAVE |
- TCBD_PERI_SPI_SIZE32BIT |
- _interface_speed;
- _peri_mode[1] = TCBD_PERI_SPI_CLKINIT_LOW |
- TCBD_PERI_SPI_CLKPOL_POS |
- TCBD_PERI_SPI_BITMSB1 |
- (TCBD_PERI_SPI_READY_TIME << 2) |
- TCBD_PERI_SPI_WAIT_TIME;
-}
-
-static inline void tcbd_peri_spi_master(
- u8 *_peri_mode, u8 _interface_speed)
-{
- _peri_mode[0] = TCBD_PERI_SPI_MOTOROLA_SSP |
- TCBD_PERI_SPI_MASTER |
- TCBD_PERI_SPI_SIZE32BIT |
- _interface_speed;
- _peri_mode[1] = TCBD_PERI_SPI_CLKINIT_LOW |
- TCBD_PERI_SPI_CLKPOL_POS |
- TCBD_PERI_SPI_BITMSB1 |
- (TCBD_PERI_SPI_READY_TIME << 2) |
- TCBD_PERI_SPI_WAIT_TIME;
-}
-
-#define TCBD_PERI_TS_STREAM_WAIT_TIME 0x02
-#define TCBD_PERI_TS_MSM_SYNC_HIGH_TIME 0x00
-#define TCBD_PERI_TS_MSM_SYNC_LOW_TIME 0x00
-static inline void tcbd_peri_sts(
- u8 *_peri_mode, u8 _interface_speed)
-{
- _peri_mode[0] = TCBD_PERI_TS_NORMAL_SLAVE |
- TCBD_PERI_TS_STS |
- TCBD_PERI_TS_FASTON |
- _interface_speed;
-
- _peri_mode[1] = TCBD_PERI_TS_CLKPHASE_NEG |
- TCBD_PERI_TS_SYNC_ACTIVEHIGH |
- TCBD_PERI_TS_ENPOL_ACTIVEHIGH |
- TCBD_PERI_TS_STREAM_WAIT_ON |
- TCBD_PERI_TS_STREAM_WAIT_TIME;
- _peri_mode[2] = TCBD_PERI_TS_BITMSB |
- (TCBD_PERI_TS_MSM_SYNC_HIGH_TIME << 3) |
- TCBD_PERI_TS_MSM_SYNC_LOW_TIME;
- _peri_mode[3] = TCBD_PERI_TS_ERR_SIG_OFF;
-}
-
-static inline void tcbd_peri_pts(
- u8 *_peri_mode, u8 _interface_speed)
-{
- _peri_mode[0] = TCBD_PERI_TS_NORMAL_SLAVE |
- TCBD_PERI_TS_PTS |
- TCBD_PERI_TS_FASTON |
- TCBD_PERI_TS_TSCLKMASKON |
- _interface_speed;
- _peri_mode[1] = TCBD_PERI_TS_CLKPHASE_POS |
- TCBD_PERI_TS_SYNC_ACTIVEHIGH |
- TCBD_PERI_TS_ENPOL_ACTIVEHIGH |
- TCBD_PERI_TS_STREAM_WAIT_ON |
- TCBD_PERI_TS_STREAM_WAIT_TIME;
- _peri_mode[2] = (TCBD_PERI_TS_MSM_SYNC_HIGH_TIME << 3) |
- TCBD_PERI_TS_MSM_SYNC_LOW_TIME;
- _peri_mode[3] = TCBD_PERI_TS_ERR_SIG_OFF;
-}
-
-static inline void tcbd_peri_hpi(u8 *_peri_mode)
-{
- _peri_mode[0] = TCBD_PERI_HPI_INTEL;
-}
-
-static inline u8 tcbd_calc_clock(
- struct tcbd_device *_device, s32 _min_khz, s32 _max_khz)
-{
- u32 min_dlr = 0, max_dlr = 0, minv = -1, maxv = -1;
-
- min_dlr = (_device->main_clock / (2 * _min_khz)) - 1;
- max_dlr = (_device->main_clock / (2 * _max_khz)) - 1;
-
- if (min_dlr >= 0 && min_dlr < 8)
- minv = min_dlr;
- else if (min_dlr >= 8)
- minv = 7;
-
- if (max_dlr >= 0 && max_dlr < 8)
- maxv = max_dlr;
- else if (max_dlr >= 8)
- maxv = 7;
-
- if (minv == -1 && maxv == -1) {
- tcbd_debug(DEBUG_DRV_PERI,
- " # Can't find DLR value, DLR will set to zero\n");
- return 0;
- }
-
- if (maxv == -1)
- maxv = minv;
- else if (minv == -1)
- minv = maxv;
-
- return minv;
-}
-
-s32 tcbd_init_peri_gpio(
- struct tcbd_device *_device, enum tcbd_peri_type _peri_type)
-{
- u8 cfg_value[10] = {0, };
- /*u8 drv_strength[] = {0xFF, 0xFF};*/
-
- tcbd_debug(DEBUG_DRV_PERI, "peri type:%d\n", (s32)(_peri_type));
- memset(cfg_value, 0, sizeof(cfg_value));
-
- switch (_peri_type) {
- case PERI_TYPE_SPI_SLAVE:
- case PERI_TYPE_PTS:
- case PERI_TYPE_HPI:
- case PERI_TYPE_SPI_ONLY:
- return 0;
-
- case PERI_TYPE_SPI_MASTER:
- cfg_value[0] = 0x0E;
- cfg_value[1] = 0x34;
- break;
- case PERI_TYPE_STS:
- cfg_value[0] = 0x0E;
- cfg_value[1] = 0x3C;
- break;
- default:
- break;
- }
-
- tcbd_reg_write_burst_cont(_device, TCBD_GPIO_ALT, cfg_value, 2);
- /*tcbd_reg_write_burst_cont(_device, TCBD_GPIO_DRV, drv_strength, 2);*/
- return 0;
-}
-
-s32 tcbd_select_peri(
- struct tcbd_device *_device, enum tcbd_peri_type _peri_type)
-{
- s32 ret = 0;
- u8 peri_mode[4] = {0, };
- u8 interface_speed = 4; /*tcbd_calc_clock(_device, 3000, 10000);*/
-
- tcbd_debug(DEBUG_DRV_PERI, "peri type:%d, clock div:%d\n",
- (s32)(_peri_type), interface_speed);
- switch (_peri_type) {
- case PERI_TYPE_SPI_SLAVE:
- tcbd_peri_spi_slave(peri_mode, interface_speed);
- ret |= tcbd_reg_write_burst_cont(
- _device, TCBD_PERI_MODE0, peri_mode, 2);
- ret |= tcbd_reg_write(_device, TCBD_PERI_CTRL, 0x90);
- ret |= tcbd_init_peri_gpio(_device, PERI_TYPE_SPI_SLAVE);
- break;
- case PERI_TYPE_SPI_MASTER:
- tcbd_peri_spi_master(peri_mode, interface_speed);
- ret |= tcbd_reg_write_burst_cont(
- _device, TCBD_PERI_MODE0, peri_mode, 2);
- ret |= tcbd_reg_write(_device, TCBD_PERI_CTRL, 0x90);
- ret |= tcbd_init_peri_gpio(_device, PERI_TYPE_SPI_MASTER);
- break;
- case PERI_TYPE_PTS:
- tcbd_peri_pts(peri_mode, interface_speed);
- ret |= tcbd_reg_write_burst_cont(
- _device, TCBD_PERI_MODE0, peri_mode, 4);
- ret |= tcbd_init_peri_gpio(_device, PERI_TYPE_PTS);
- break;
- case PERI_TYPE_STS:
- tcbd_peri_sts(peri_mode, interface_speed);
- ret |= tcbd_reg_write_burst_cont(
- _device, TCBD_PERI_MODE0, peri_mode, 4);
- ret |= tcbd_init_peri_gpio(_device, PERI_TYPE_STS);
- break;
- case PERI_TYPE_HPI:
- tcbd_peri_hpi(peri_mode);
- ret |= tcbd_reg_write(_device, TCBD_PERI_MODE0, peri_mode[0]);
- break;
- case PERI_TYPE_SPI_ONLY:
- ret |= tcbd_reg_write(_device, TCBD_PERI_CTRL, 0x80);
- ret |= tcbd_init_peri_gpio(_device, PERI_TYPE_SPI_ONLY);
- default:
- break;
- }
- _device->peri_type = _peri_type;
- return ret;
-}
-
-s32 tcbd_init_gpio_for_slave(struct tcbd_device *_device)
-{
- u8 cfg_value[10] = {0, };
-
- cfg_value[0] = 0x01;
- cfg_value[1] = 0xC0;
- return tcbd_reg_write_burst_cont(
- _device, TCBD_GPIO_ALT, cfg_value, 10);
-}
-
-s32 tcbd_enable_peri(struct tcbd_device *_device)
-{
- u8 data = TCBD_PERI_EN | TCBD_PERI_INIT_AUTOCLR;
-
- switch (_device->peri_type) {
- case PERI_TYPE_SPI_ONLY:
- data = 0x80;
- break;
- case PERI_TYPE_SPI_SLAVE:
- case PERI_TYPE_SPI_MASTER:
- data |= TCBD_PERI_SEL_SPI | TCBD_PERI_HEADER_ON;
- break;
- case PERI_TYPE_PTS:
- case PERI_TYPE_STS:
- data |= TCBD_PERI_SEL_TS | TCBD_PERI_HEADER_ON;
- break;
- case PERI_TYPE_HPI:
- data |= TCBD_PERI_SEL_HPI | TCBD_PERI_HEADER_ON;
- break;
- default:
- break;
- }
-
- return tcbd_reg_write(_device, TCBD_PERI_CTRL, data);
-}
-
-s32 tcbd_disable_peri(struct tcbd_device *_device)
-{
- s32 ret = 0;
- u8 data;
-
- ret |= tcbd_reg_read(_device, TCBD_PERI_CTRL, &data);
- data &= ~TCBD_PERI_EN;
- ret |= tcbd_reg_write(_device, TCBD_PERI_CTRL, data);
-
- return ret;
-}
diff --git a/drivers/media/tdmb/tcc3170/src/tcbd_drv_rf.c b/drivers/media/tdmb/tcc3170/src/tcbd_drv_rf.c
deleted file mode 100644
index a988077..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcbd_drv_rf.c
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * tcbd_drv_rf.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-#include "tcpal_os.h"
-#include "tcbd_feature.h"
-#include "tcpal_debug.h"
-
-#include "tcbd_api_common.h"
-#include "tcbd_drv_ip.h"
-#include "tcbd_drv_io.h"
-#include "tcbd_drv_rf.h"
-
-struct tcbd_rf_data {
- u8 addr;
- u32 data;
-};
-
-static struct tcbd_rf_data tcc3170_rf_table_band3[] = {
- {0x02, 0x00030000},
- {0x04, 0x00002002},
- {0x05, 0x5500640B},
- {0x06, 0x1AADA754},
- {0x07, 0x00002000},
- {0x08, 0x42222249},
- {0x09, 0x000D2299},
- {0x0A, 0xD87060DD},
- {0x0B, 0x00000E72},
- {0x0C, 0x02AE7077},
- {0x0D, 0x00240376},
- {0x0E, 0X7F7F0711}
-};
-
-static struct tcbd_rf_data tcc3170_rf_table_lband[] = {
- {0x02, 0x00030000},
- {0x04, 0x00004001},
- {0x06, 0x0AADA754},
- {0x07, 0x00002000},
- {0x08, 0x42222249},
- {0x09, 0x000D2299},
- {0x0A, 0xD87060DD},
- {0x0B, 0x00000E72},
- {0x0C, 0x02AE7077},
- {0x0D, 0x00240376},
- {0x0E, 0X7F7F0907}
-};
-
-static u64 tcbd_div64(u64 x, u64 y)
-{
- u64 a, b, q, counter;
-
- q = 0;
- if (y != 0) {
- while (x >= y) {
- a = x >> 1;
- b = y;
- counter = 1;
- while (a >= b) {
- b <<= 1;
- counter <<= 1;
- }
- x -= b;
- q += counter;
- }
- }
- return q;
-}
-
-
-s32 tcbd_rf_init(struct tcbd_device *_device, enum tcbd_band_type _band)
-{
- s32 i = 0;
- s32 size;
- s32 ret = 0;
- struct tcbd_rf_data *rf_data;
-
- switch (_band) {
- case BAND_TYPE_BAND3:
- size = ARRAY_SIZE(tcc3170_rf_table_band3);
- rf_data = tcc3170_rf_table_band3;
- break;
- case BAND_TYPE_LBAND:
- size = ARRAY_SIZE(tcc3170_rf_table_lband);
- rf_data = tcc3170_rf_table_lband;
- break;
- default:
- return -TCERR_UNKNOWN_BAND;
- break;
- }
-
- for (i = 0; i < size; i++)
- ret |= tcbd_rf_reg_write(
- _device, rf_data[i].addr, rf_data[i].data);
- return ret;
-}
-
-#define SCALE_FACTOR 22
-#define DIV(A, B) (tcbd_div64((A<<SCALE_FACTOR), B))
-static inline s32 tcbd_rf_set_frequency(
- struct tcbd_device *_device, s32 _freq_khz, s32 _bw_khz)
-{
- s32 ret = 0;
- u64 N, F;
- u64 Flo, VCO_DIV, FOffset, Fvco, FR, PLL_MODE;
- u64 N_int, intF, intVCO_DIV;
- u64 osc_clock, fpfd, f_freq_khz;
- u64 Temp1, Temp2;
- u32 DIV_MODE;
- s32 RST_PLL = 1, band = 0;
- u32 rf_cfg2 = 0, rf_cfg4 = 0;
-
- FOffset = 0;
-
- /* l-band */
- if (_freq_khz > 1000000)
- band = 1;
-
- if (band == 0) {
- /* band III */
- ret |= tcbd_rf_reg_write(_device, 0x04, 0x00002002);
- ret |= tcbd_rf_reg_write(_device, 0x0e, 0x7F7F0711);
- } else {
- /* LBAND */
- ret |= tcbd_rf_reg_write(_device, 0x04, 0x00004001);
- ret |= tcbd_rf_reg_write(_device, 0x0e, 0x7F7F0907);
- }
-
- ret |= tcbd_rf_reg_read(_device, 0x06, (u32 *)&rf_cfg2);
- if (((rf_cfg2 >> 28) & 0x01) == 0)
- FR = 0;
- else
- FR = 1;
-
- if (((rf_cfg2 >> 31) & 0x01) == 0)
- PLL_MODE = 2;
- else
- PLL_MODE = 4;
-
- osc_clock = tcbd_get_osc_clock(_device);
- f_freq_khz = _freq_khz;
-
- /* Calculate PLL */
- if (f_freq_khz < 250000) {
- /* VHF */
- DIV_MODE = 0x00;
- fpfd = osc_clock >> FR;
- VCO_DIV = 16;
-
- Flo = f_freq_khz - FOffset;
- Fvco = Flo * VCO_DIV;
-
- Temp1 = Fvco << FR;
- Temp2 = PLL_MODE * osc_clock;
- N = DIV(Temp1, Temp2);
- N_int = (N >> SCALE_FACTOR) << SCALE_FACTOR;
- F = ((N - N_int) * (2 << 21)) >> SCALE_FACTOR;
-
- if (N_int < (19 << SCALE_FACTOR)) {
- FR = 1;
- fpfd = osc_clock >> FR;
- VCO_DIV = 16;
- Flo = f_freq_khz - FOffset;
- Fvco = Flo * VCO_DIV;
-
- Temp1 = Fvco * FR;
- Temp2 = PLL_MODE * osc_clock;
- N = DIV(Temp1, Temp2);
- N_int = (N >> SCALE_FACTOR) << SCALE_FACTOR;
- F = ((N - N_int) * (2 << 21)) >> SCALE_FACTOR;
- }
- intF = F;
- intVCO_DIV = VCO_DIV;
- } else {
- /* LBAND */
- DIV_MODE = 0x01;
- fpfd = osc_clock >> FR;
- VCO_DIV = 2;
-
- Flo = f_freq_khz - FOffset;
- Fvco = Flo * VCO_DIV;
-
- Temp1 = Fvco << FR;
- Temp2 = PLL_MODE * osc_clock;
- N = DIV(Temp1, Temp2);
- N_int = (N >> SCALE_FACTOR) << SCALE_FACTOR;
- F = ((N - N_int) * (2 << 21)) >> SCALE_FACTOR;
-
- if (N_int < (19 << SCALE_FACTOR)) {
- FR = 1;
-
- VCO_DIV = 2;
- Flo = f_freq_khz - FOffset;
- Fvco = Flo * VCO_DIV;
-
- Temp1 = Fvco << FR;
- Temp2 = PLL_MODE * osc_clock;
- N = DIV(Temp1, Temp2);
- N_int = (N >> SCALE_FACTOR) << SCALE_FACTOR;
- F = ((N - N_int) * (2<<21)) >> SCALE_FACTOR;
- }
- intF = F;
- intVCO_DIV = VCO_DIV;
- }
-
- rf_cfg4 = (u32)((N_int >> SCALE_FACTOR) & 0xFF) ;
- rf_cfg4 |= ((intF & 0x3FFFFF) << 8);
- rf_cfg4 |= ((RST_PLL & 0x01) << 30);
- rf_cfg4 |= ((DIV_MODE & 0x01) << 31);
- ret |= tcbd_rf_reg_write(_device, 0x08, rf_cfg4);
-
- ret |= tcbd_rf_reg_read(_device, 0x06, (u32 *)&rf_cfg2);
- if (FR == 0)
- BITCLR(rf_cfg2, Bit28);
- else
- BITSET(rf_cfg2, Bit28);
-
- ret |= tcbd_rf_reg_write(_device, 0x06, rf_cfg2);
-
- return ret;
-}
-
-s32 tcbd_rf_tune_frequency(
- struct tcbd_device *_device, u32 _freq_khz, s32 _bw_khz)
-{
- s32 ret = 0;
-
- if (_device->curr_band != _device->prev_band)
- ret |= tcbd_rf_init(_device, _device->curr_band);
-
- ret |= tcbd_rf_set_frequency(_device, _freq_khz, _bw_khz);
-
- if (ret < 0)
- tcbd_debug(DEBUG_ERROR,
- "Failed to set frequency to RF, err:%d\n", ret);
-
- return ret;
-}
diff --git a/drivers/media/tdmb/tcc3170/src/tcbd_hal.c b/drivers/media/tdmb/tcc3170/src/tcbd_hal.c
deleted file mode 100644
index fba77e7..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcbd_hal.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * tcbd_hal.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include <linux/module.h>
-#include <linux/interrupt.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-
-#include <bsp.h>
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-#include "tcbd_hal.h"
-#include "tcbd_feature.h"
-
-#define __USE_DXB0_IRQ__
-/*#define __USE_DXB1_IRQ__*/
-
-#ifdef __USE_TC_CPU__
-static PGPIO RGPIO;
-static PPIC RPIC;
-#endif
-
-void tchal_init(void)
-{
-#ifdef __USE_TC_CPU__
- tcbd_debug(DEBUG_TCHAL, "\n");
- RGPIO = (PGPIO)tcc_p2v(HwGPIO_BASE);
- RPIC = (PPIC)tcc_p2v(HwPIC_BASE);
-#endif
- tchal_power_down_device();
-}
-
-void tchal_reset_device(void)
-{
-#ifdef __USE_TC_CPU__
- tcbd_debug(DEBUG_TCHAL, "\n");
-#if defined(__CSPI_ONLY__)
- /* select peripheral mode as SPI */
-#if defined(__USE_DXB1_IRQ__)
- BITCLR(RGPIO->GPAFN1, Hw16 - Hw12); /* DXB1_IRQ Set GPIO mode*/
- BITSET(RGPIO->GPAEN, Hw11); /* DXB1_IRQ output mode*/
- BITCLR(RGPIO->GPADAT, Hw11); /* DXB1_IRQ clear*/
-#elif defined(__USE_DXB0_IRQ__)
- BITCLR(RGPIO->GPDFN1, Hw8 - Hw4); /* DXB0_IRQ Set GPIO mode*/
- BITSET(RGPIO->GPDEN, Hw9); /* DXB0_IRQ output mode*/
- BITCLR(RGPIO->GPDDAT, Hw9); /* DXB0_IRQ clear*/
-#endif /*__USE_DXB1_IRQ__*/
-#endif /*__CSPI_ONLY__*/
-
- /* reset */
-#if defined(__CSPI_ONLY__)
- BITCLR(RGPIO->GPEFN1, Hw16 - Hw12); /* DXB1_RST# Set GPIO mode */
- BITSET(RGPIO->GPEEN, Hw11);/* DXB1_RST# Set GPIO Output mode*/
- BITCLR(RGPIO->GPEDAT, Hw11);/* DXB1_RST# Clear */
- tcpal_msleep(10);
- BITSET(RGPIO->GPEDAT, Hw11);/* DXB1_RST# Set*/
-#elif defined(__I2C_STS__)
- BITCLR(RGPIO->GPDFN1, Hw4 - Hw0); /* DXB0_RST# Set GPIO mode */
- BITSET(RGPIO->GPDEN, Hw8); /* DXB0_RST# Set GPIO Output mode*/
- BITCLR(RGPIO->GPDDAT, Hw8); /* DXB0_RST# Clear */
- tcpal_msleep(10);
- BITSET(RGPIO->GPDDAT, Hw8); /* DXB0_RST# Set*/
-#else /*__CSPI_ONLY__ || __I2C_STS__*/
-#error "you must define __CSPI_ONLY__ or __I2C_STS__"
-#endif /*!__CSPI_ONLY__ && !__I2C_STS__*/
-#endif
-}
-
-void tchal_power_on_device(void)
-{
-#ifdef __USE_TC_CPU__
- tcbd_debug(DEBUG_TCHAL, "\n");
- BITCLR(RGPIO->GPEFN0, Hw16 - Hw12);/* DXB1_PD Set GPIO mode*/
-
- BITSET(RGPIO->GPEEN, Hw3);/* DXB1_PD Set GPIO Output mode*/
- BITCLR(RGPIO->GPEDAT, Hw3);/* DXB1_PD Clear*/
- tcpal_msleep(10);
- BITSET(RGPIO->GPEDAT, Hw3);/* DXB1_PD Set*/
- tcpal_msleep(10);
-
- tchal_reset_device();
- tchal_irq_setup();
-#endif
-}
-
-
-void tchal_power_down_device(void)
-{
-#ifdef __USE_TC_CPU__
- tcbd_debug(DEBUG_TCHAL, "\n");
- BITCLR(RGPIO->GPEFN0, Hw16 - Hw12);
- BITSET(RGPIO->GPEEN, Hw3);/* DXB1_PD Set GPIO Output mode*/
- BITCLR(RGPIO->GPEDAT, Hw3);/* DXB1_PD Clear*/
-#if defined(__CSPI_ONLY__)
- BITCLR(RGPIO->GPEDAT, Hw11);/* DXB1_RST# Clear*/
-#elif defined(__I2C_STS__)
- BITCLR(RGPIO->GPDDAT, Hw8);/* DXB0_RST# Clear */
-#else
-#error "you must define __CSPI_ONLY__ or __I2C_STS__"
-#endif
-#endif
-}
-
-void tchal_irq_setup(void)
-{
-#ifdef __USE_TC_CPU__
-#if defined(__USE_DXB1_IRQ__)
- BITCLR(RGPIO->GPAFN1, Hw16 - Hw12);/* DXB1_IRQ Set GPIO mode*/
- BITCLR(RGPIO->GPAEN, Hw11);/* DXB1_IRQ input mode*/
-
- BITCSET(RGPIO->EINTSEL0, Hw32 - Hw24, 11<<24); /*GPIO_A11*/
-#elif defined(__USE_DXB0_IRQ__)
- BITCLR(RGPIO->GPDFN1, Hw8 - Hw4); /* DXB0_IRQ Set GPIO mode*/
- BITCLR(RGPIO->GPDEN, Hw9); /* DXB0_IRQ input mode*/
-
- BITCSET(RGPIO->EINTSEL0, Hw32 - Hw24, 20<<24); /*GPIO_D9*/
-#endif /*__USE_DXB1_IRQ__*/
- BITSET(RPIC->POL0, 1<<IRQ_TC317X);
-#endif
-}
diff --git a/drivers/media/tdmb/tcc3170/src/tcbd_stream_parser/Makefile b/drivers/media/tdmb/tcc3170/src/tcbd_stream_parser/Makefile
deleted file mode 100644
index 4c58a2c..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcbd_stream_parser/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-
-obj-y += tcbd_stream_parser.o
-
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcpal
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcbd_stream_parser
diff --git a/drivers/media/tdmb/tcc3170/src/tcbd_stream_parser/tcbd_stream_parser.c b/drivers/media/tdmb/tcc3170/src/tcbd_stream_parser/tcbd_stream_parser.c
deleted file mode 100644
index 229bcc1..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcbd_stream_parser/tcbd_stream_parser.c
+++ /dev/null
@@ -1,525 +0,0 @@
-/*
- * tcbd_stream_parser.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-#include "tcbd_feature.h"
-#include "tcbd_stream_parser.h"
-
-#define SIZE_MSC_CACHE_BUFF (188*20)
-#define SIZE_FIC_CACHE_BUFF (388*2)
-#define SIZE_STATUS_CACHE_BUFF (32*2)
-
-#if defined(__MERGE_EACH_TYPEOF_STREAM__)
-#define SIZE_MSC_STACK_BUFF (1024*16)
-#define SIZE_FIC_STACK_BUFF (388*10)
-#define SIZE_STATUS_STACK_BUFF (32*10)
-#endif /*!__MERGE_EACH_TYPEOF_STREAM__*/
-
-#define MAX_SUBCH_ID (0x1<<6)
-enum tcbd_split_stream_state {
- STATE_NO_SYNC = 0,
- STATE_OTHER,
- STATE_STATUS,
- STATE_MSC,
- STATE_FIC,
- STATE_GARBAGE,
- STATE_ERROR
-};
-
-#define HEADER_SIZE 4
-#define SYNC_BYTE 0x5C
-struct op_header {
- u8 sync; /**< sync byte. must be 0x5C */
- u8 subch; /**< sub channel id */
- u16 data_size;
- u8 parity;
- enum DATA_TYPE type;
-};
-
-#if defined(__MERGE_EACH_TYPEOF_STREAM__)
-struct merged_stream_info {
- s32 curr_pos; /**< Current position of buffer of merged stream */
- u8 *buffer; /**< Buffer for stacking stream chunk */
- u8 subch_id;
-};
-#endif /* __MERGE_EACH_TYPEOF_STREAM__ */
-
-struct tcbd_split_stream_data {
- s32 dev_idx;
- s32 header_err[2];
- enum tcbd_split_stream_state state;
- s32 header_cnt;
- s32 remain;
- s32 next_read;
- u8 *buffer;
- struct op_header header;
-#if defined(__MERGE_EACH_TYPEOF_STREAM__)
- struct merged_stream_info merged_msc[TCBD_MAX_NUM_SERVICE];
- struct merged_stream_info merged_fic;
- struct merged_stream_info merged_status;
- u8 quick_msc_idx[MAX_SUBCH_ID];
- u8 num_subch;
-#endif /*__MERGE_EACH_TYPEOF_STREAM__ */
- tcbd_stream_callback stream_callback;
-};
-
-static struct tcbd_split_stream_data tcbd_stream_spliter[2];
-
-static inline u8 tcbd_parity_check(u8 *parity)
-{
- u32 i, k;
- u8 p = 0;
-
- for (i = 0; i < 4; i++) {
- for (k = 0; k < 8; k++)
- p = (p + ((parity[i] >> k) & 1)) & 1;
- }
-
- return p;
-}
-
-#define FIC_ID 0x00
-#define STATUS_ID 0x3F
-#define GARBAGE_ID 0x04
-#define OTHER_CHIP_ID 0x3D
-
-static inline void tcbd_change_parser_state(struct op_header *header,
- struct tcbd_split_stream_data *_parser)
-{
- s32 size_limit[] = { -1, 4096, 32, 4096, 388, 4096};
- s8 *type[] = {NULL, "other", "status", "msc", "fic", "garbage"};
-
- switch ((enum DATA_TYPE)header->type) {
- case DATA_TYPE_MSC:
- if (header->data_size == 388) {
- _parser->state = STATE_FIC;
- header->type = DATA_TYPE_FIC;
- } else
- _parser->state = STATE_MSC;
- break;
- case DATA_TYPE_FIC:
- if (header->subch == GARBAGE_ID)
- _parser->state = STATE_GARBAGE;
- else if (header->subch == FIC_ID)
- _parser->state = STATE_FIC;
- else
- _parser->state = STATE_ERROR;
- break;
- case DATA_TYPE_STATUS:
- if (header->subch == STATUS_ID)
- _parser->state = STATE_STATUS;
- else
- _parser->state = STATE_ERROR;
- break;
- case DATA_TYPE_OTHER:
- if (header->subch == OTHER_CHIP_ID)
- _parser->state = STATE_OTHER;
- else
- _parser->state = STATE_ERROR;
- break;
- default:
- tcbd_debug(DEBUG_ERROR, "unknown data type!!");
- _parser->state = STATE_ERROR;
- break;
- }
- switch (_parser->state) {
- case STATE_ERROR:
- _parser->header_err[1]++;
- _parser->state = STATE_NO_SYNC;
- break;
- default:
- if (size_limit[_parser->state] < header->data_size) {
- tcbd_debug(DEBUG_ERROR, "wrong data size %s:%d!\n",
- type[_parser->state], header->data_size);
- _parser->header_err[1]++;
- _parser->state = STATE_NO_SYNC;
-
- } else
- _parser->header_cnt++;
- break;
- }
-}
-
-static s32 tcbd_parse_header(struct tcbd_split_stream_data *_parser)
-{
- u8 *stream = _parser->buffer;
- struct op_header *header = &_parser->header;
-
- _parser->state = STATE_NO_SYNC;
- if ((stream[3] != SYNC_BYTE) || (tcbd_parity_check(stream) != 1)) {
- _parser->header_err[0]++;
- return HEADER_SIZE;
- }
-
- header->sync = stream[3];
- header->type = (stream[2] & 0xC0) >> 6;
- header->data_size = ((stream[1]<<7) | (stream[0]>>1)) << 2;
- header->subch = stream[2] & 0x3F;
-
- tcbd_debug(DEBUG_PARSE_HEADER, "sync:0x%02X, type:%d, size:%d\n",
- header->sync, header->type,
- header->data_size);
- tcbd_change_parser_state(header, _parser);
-
- return HEADER_SIZE;
-}
-
-#if defined(__MERGE_EACH_TYPEOF_STREAM__)
-static void tcbd_merge_each_stream(struct tcbd_split_stream_data *_parser,
- u8 *chunk_buff)
-{
- static u8 msc_buff[TCBD_MAX_NUM_SERVICE][SIZE_MSC_STACK_BUFF];
- static u8 fic_buff[SIZE_FIC_STACK_BUFF];
- static u8 status_buff[SIZE_STATUS_STACK_BUFF];
-
- struct merged_stream_info *merged;
- struct op_header *header = &_parser->header;
-
- s32 sz_stack_buff[] = {
- SIZE_MSC_STACK_BUFF,
- SIZE_FIC_STACK_BUFF,
- SIZE_STATUS_STACK_BUFF};
- s32 quick_msc_idx = 0;
-
- switch (header->type) {
- case DATA_TYPE_MSC:
- if (_parser->num_subch >= TCBD_MAX_NUM_SERVICE) {
- tcbd_debug(DEBUG_ERROR, "exceeded max num service!\n");
- return;
- }
- if (_parser->quick_msc_idx[header->subch] == 0xFF)
- _parser->quick_msc_idx[header->subch] =
- _parser->num_subch++;
-
- quick_msc_idx = _parser->quick_msc_idx[header->subch];
- if (quick_msc_idx >= TCBD_MAX_NUM_SERVICE)
- tcbd_debug(DEBUG_ERROR, "quick_msc_idx:%d, header->"
- "subch:%d\n", quick_msc_idx, header->subch);
-
- merged = &_parser->merged_msc[quick_msc_idx];
- merged->buffer = msc_buff[quick_msc_idx];
- merged->subch_id = header->subch;
- break;
- case DATA_TYPE_FIC:
- merged = &_parser->merged_fic;
- merged->buffer = fic_buff;
- break;
- case DATA_TYPE_STATUS:
- merged = &_parser->merged_status;
- merged->buffer = status_buff;
- break;
- default:
- tcbd_debug(DEBUG_ERROR, "unknown stream type!\n");
- return;
- }
-
- if (merged->curr_pos+header->data_size > sz_stack_buff[header->type]) {
- tcbd_debug(DEBUG_ERROR, "overflow stack buffer!!\n");
- return;
- }
-
- tcbd_debug(DEBUG_STREAM_STACK, "type:%d, subchid:%u, buffer:%p "
- "currpos:%d, size:%d\n", header->type, header->subch,
- merged->buffer, merged->curr_pos, header->data_size);
- memcpy(merged->buffer + merged->curr_pos, chunk_buff,
- header->data_size);
- merged->curr_pos += header->data_size;
-}
-
-static s32 tcbd_push_merged_stream(struct tcbd_split_stream_data *_parser)
-{
- register s32 i;
- struct merged_stream_info *merged = NULL;
- struct merged_stream_info *list_stream[] = {
- NULL, &_parser->merged_fic, &_parser->merged_status, NULL
- };
-
- tcbd_debug(DEBUG_STREAM_STACK, "header num:%d, num subch :%d\n",
- _parser->header_cnt, _parser->num_subch);
- for (i = 0; i < _parser->num_subch; i++) {
- merged = &_parser->merged_msc[i];
- if (!merged->buffer || !merged->curr_pos)
- continue;
-
- /* send merged data to user space */
- if (_parser->stream_callback) {
- _parser->stream_callback(_parser->dev_idx,
- merged->buffer, merged->curr_pos,
- merged->subch_id, DATA_TYPE_MSC);
- merged->buffer = NULL;
- merged->curr_pos = 0;
- }
- }
-
- for (i = 1; i < (s32)DATA_TYPE_MAX; i++) {
- merged = list_stream[i];
- if (!merged || !merged->buffer || !merged->curr_pos)
- continue;
-
- /* send merged data to user space */
- if (_parser->stream_callback) {
- _parser->stream_callback(_parser->dev_idx,
- merged->buffer, merged->curr_pos,
- merged->subch_id, i);
- merged->buffer = NULL;
- merged->curr_pos = 0;
- }
- }
- return 0;
-}
-#endif /*__MERGE_EACH_TYPEOF_STREAM__ */
-
-static void tcbd_stack_chunk(struct tcbd_split_stream_data *_parser,
- u8 *_buffer)
-{
- u8 *chunk_buff = (_buffer) ? _buffer : _parser->buffer;
-#if defined(__MERGE_EACH_TYPEOF_STREAM__)
- tcbd_merge_each_stream(_parser, chunk_buff);
-#else /* __MERGE_EACH_TYPEOF_STREAM__ */
- struct op_header *header = &_parser->header;
- if (_parser->stream_callback) {
- _parser->stream_callback(_parser->dev_idx, chunk_buff,
- header->data_size, header->subch, header->type);
- }
-#endif /* !__MERGE_EACH_TYPEOF_STREAM__ */
-}
-
-static inline s32 tcbd_push_concat(struct tcbd_split_stream_data *_parser,
- u8 *_cache_buff)
-{
- s32 pre_copied, ret;
- u8 *buffer = _parser->buffer;
- struct op_header *header = &_parser->header;
-
- s8 *type[] = {"msc", "fic", "status", "other"};
- s32 size_cache_buff[] = {
- SIZE_MSC_CACHE_BUFF,
- SIZE_FIC_CACHE_BUFF,
- SIZE_STATUS_CACHE_BUFF};
-
- if (header->data_size > size_cache_buff[header->type]) {
- tcbd_debug(DEBUG_ERROR, "overflow %s cache buffer!! size:%d\n",
- type[header->type], header->data_size);
- _parser->state = STATE_ERROR;
- ret = HEADER_SIZE;
- goto exit_func;
- }
-
- pre_copied = header->data_size - _parser->next_read;
- if (_parser->next_read > _parser->remain) {
- memcpy(_cache_buff + pre_copied, buffer, _parser->remain);
- _parser->next_read -= _parser->remain;
- ret = _parser->remain;
- tcbd_debug(DEBUG_PARSING_PROC, "keep %s data %d bytes, pre:%d,"
- "next:%d, buffer:%p\n", type[header->type],
- _parser->remain, pre_copied, _parser->next_read,
- _cache_buff);
- } else {
- memcpy(_cache_buff + pre_copied, buffer, _parser->next_read);
- tcbd_stack_chunk(_parser, _cache_buff);
- ret = _parser->next_read;
- tcbd_debug(DEBUG_PARSING_PROC, "send %s data %d bytes, pre:%d,"
- "curr:%d, buffer:%p\n", type[header->type],
- header->data_size, pre_copied,
- _parser->next_read, _cache_buff);
- _parser->state = STATE_NO_SYNC;
- }
-
-exit_func:
- return ret;
-}
-
-static inline void tcbd_push_medium(struct tcbd_split_stream_data *_parser)
-{
- struct op_header *header = &_parser->header;
- s8 *type[] = {"msc", "fic", "status", "other"};
-
- tcbd_debug(DEBUG_PARSING_PROC, "send %s data %d bytes\n",
- type[header->type], header->data_size);
- tcbd_stack_chunk(_parser, NULL);
-}
-
-static inline s32 tcbd_cache_ramnant(struct tcbd_split_stream_data *_parser,
- u8 *_cache_buff)
-{
- struct op_header *header = &_parser->header;
- u8 *buffer = _parser->buffer;
- s8 *type[] = {"msc", "fic", "status", "other"};
- s32 size_cache_buff[] = {
- SIZE_MSC_CACHE_BUFF,
- SIZE_FIC_CACHE_BUFF,
- SIZE_STATUS_CACHE_BUFF};
-
- tcbd_debug(DEBUG_PARSING_PROC, "keep %s data %d bytes buff:%p\n",
- type[header->type], _parser->remain, _cache_buff);
-
- if (header->data_size > size_cache_buff[header->type]) {
- tcbd_debug(DEBUG_ERROR, "overflow %s cache buffer!! size:%d\n",
- type[header->type], header->data_size);
- _parser->state = STATE_ERROR;
- return HEADER_SIZE;
- } else {
- memcpy(_cache_buff, buffer, _parser->remain);
- return _parser->remain;
- }
-}
-
-static s32 tcbd_push_chunk(struct tcbd_split_stream_data *_parser,
- u8 *_cached_buff)
-{
- s32 move;
- struct op_header *header = &_parser->header;
-
- if (_parser->next_read) {
- if (_parser->state != STATE_GARBAGE)
- move = tcbd_push_concat(_parser, _cached_buff);
- else {
- if (_parser->next_read > _parser->remain) {
- _parser->next_read -= _parser->remain;
- move = _parser->remain;
- } else {
- move = _parser->next_read;
- _parser->state = STATE_NO_SYNC;
- }
- }
- } else if (_parser->remain >= header->data_size) {
- if (_parser->state != STATE_GARBAGE)
- tcbd_push_medium(_parser);
-
- _parser->state = STATE_NO_SYNC;
- move = header->data_size;
- } else {
- if (_parser->state != STATE_GARBAGE)
- move = tcbd_cache_ramnant(_parser, _cached_buff);
- else
- move = _parser->remain;
-
- _parser->next_read = header->data_size - _parser->remain;
- }
-
- switch (_parser->state) {
- case STATE_NO_SYNC:
-#if defined(__USING_TS_IF__)
- if (_parser->next_read == 0)
- move += 188 - ((move + SIZE_BUFF_HEADER) % 188);
- else
- move += 188 - (move % 188);
-#endif /*__USING_TS_IF__*/
- case STATE_ERROR:
- _parser->state = STATE_NO_SYNC;
- _parser->next_read = 0;
- default:
- break;
- }
-
- return move;
-}
-
-s32 tcbd_split_stream(s32 _dev_idx, u8 *_stream, s32 _size)
-{
- s32 ret = 0;
- register s32 point, move;
- /* buffer for un-handled spare data of each interrupt */
- static u8 cache_buff_msc[SIZE_MSC_CACHE_BUFF];
- static u8 cache_buff_fic[SIZE_FIC_CACHE_BUFF];
- static u8 buff_cache_status[SIZE_STATUS_CACHE_BUFF];
-
- struct tcbd_split_stream_data *spliter = &tcbd_stream_spliter[_dev_idx];
-
- u64 time = 0;
- point = move = 0;
- spliter->remain = _size;
- spliter->header_cnt = 0;
- memset(spliter->header_err, 0, sizeof(spliter->header_err));
-
- time = tcpal_get_time();
- while (spliter->remain > 0) {
- spliter->buffer = _stream + point;
- switch (spliter->state) {
- case STATE_NO_SYNC:
- move = tcbd_parse_header(spliter);
- break;
- case STATE_OTHER:
- move = tcbd_parse_header(spliter);
- tcbd_debug(DEBUG_ERROR, "State Other!! size:%d\n",
- spliter->header.data_size);
- break;
- case STATE_MSC:
- move = tcbd_push_chunk(spliter, cache_buff_msc);
- break;
- case STATE_FIC:
- move = tcbd_push_chunk(spliter, cache_buff_fic);
- break;
- case STATE_STATUS:
- move = tcbd_push_chunk(spliter, buff_cache_status);
- break;
-
- case STATE_GARBAGE:
- move = tcbd_push_chunk(spliter, NULL);
- tcbd_debug(DEBUG_STREAM_PARSER, "State Garbage!:%d\n",
- spliter->header.data_size);
- break;
- default:
- move = 0; point = 0;
- spliter->state = STATE_NO_SYNC;
- spliter->next_read = 0;
- tcbd_debug(DEBUG_ERROR, "something wrong!\n");
- goto exit_func;
- }
- spliter->remain -= move;
- point += move;
- tcbd_debug(0, "remain:%d, point:%d, move:%d\n",
- spliter->remain, point, move);
- }
-exit_func:
-#if defined(__MERGE_EACH_TYPEOF_STREAM__)
- ret = tcbd_push_merged_stream(spliter);
-#endif /*__MERGE_EACH_TYPEOF_STREAM__*/
- tcbd_debug(DEBUG_PARSING_TIME, "%lldms elapsed to parse!\n",
- tcpal_diff_time(time));
-
- if (spliter->header_err[0] || spliter->header_err[1])
- tcbd_debug(DEBUG_ERROR, "header err, parity:%d, state:%d\n",
- spliter->header_err[0], spliter->header_err[1]);
- return ret;
-}
-
-void tcbd_init_parser(s32 _dev_idx, tcbd_stream_callback _stream_callback)
-{
- tcbd_stream_callback bak = NULL;
- struct tcbd_split_stream_data *spliter = &tcbd_stream_spliter[_dev_idx];
-
- if (spliter->stream_callback)
- bak = spliter->stream_callback;
-
- memset(spliter, 0, sizeof(struct tcbd_split_stream_data));
- spliter->dev_idx = _dev_idx;
-#if defined(__MERGE_EACH_TYPEOF_STREAM__)
- memset(spliter->quick_msc_idx, 0xFF, sizeof(spliter->quick_msc_idx));
-#endif /*__MERGE_EACH_TYPEOF_STREAM__*/
- if (_stream_callback)
- spliter->stream_callback = _stream_callback;
- else if (bak)
- spliter->stream_callback = bak;
-}
diff --git a/drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/Makefile b/drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/Makefile
deleted file mode 100644
index 9dcc13e..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-obj-y += tcc_fic_decoder.o
-obj-y += tcc_fic_fig0.o
-obj-y += tcc_fic_fig1.o
-
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcpal
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcc_fic_decoder
diff --git a/drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/tcc_fic_decoder.c b/drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/tcc_fic_decoder.c
deleted file mode 100644
index 8997c44..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/tcc_fic_decoder.c
+++ /dev/null
@@ -1,540 +0,0 @@
-/*
- * tcc_fic_decoder.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcc_fic_decoder.h"
-
-/******************************************************************************
-* UEP Table
-* +---------------+-----------+-----------------------------------+
-* |Bit rate(4bits)|Protect Lv | SubCh Size(9bits) |
-* |---------------|---+---+---|---+---+---+---+---+---+---+---+---|
-* | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
-* +---------------+-----------+-----------------------------------+
-*
-*******************************************************************************/
-static const unsigned short uep_table[64] = {
- 0x0810, 0x0615, 0x0418, 0x021d, 0x0023, 0x1818, 0x161d, 0x1423,
- 0x122a, 0x1034, 0x281d, 0x2623, 0x242a, 0x2234, 0x3820, 0x362a,
- 0x3430, 0x323a, 0x3046, 0x4828, 0x4634, 0x443a, 0x4246, 0x4054,
- 0x5830, 0x563a, 0x5446, 0x5254, 0x5068, 0x683a, 0x6646, 0x6454,
- 0x6268, 0x7840, 0x7654, 0x7460, 0x7274, 0x708c, 0x8850, 0x8668,
- 0x8474, 0x828c, 0x80a8, 0x9860, 0x9674, 0x948c, 0x92a8, 0x90d0,
- 0xa874, 0xa68c, 0xa4a8, 0xa2d0, 0xa0e8, 0xb880, 0xb6a8, 0xb4c0,
- 0xb2e8, 0xb118, 0xc8a0, 0xc6d0, 0xc318, 0xd8c0, 0xd518, 0xd1a0 };
-
-static struct fic_parser_matadata parser_metadata;
-static struct tcc_ensemble_info user_ensbl_info;
-
-static s32 parsing_fig0(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 length)
-{
- s32 ret = FICERR_SUCCESS;
- u8 extension;
-
- fic_info->fig_cn = (*fig_buff & 0x80) >> 7;
- fic_info->fig_oe0 = (*fig_buff & 0x40) >> 6;
- fic_info->fig_pd = (*fig_buff & 0x20) >> 5;
- extension = (*fig_buff++ & 0x1f);
-
- length--;
- /* service link FIG */
- if ((extension != 6) && (extension != 21) && (extension != 24)) {
- if (fic_info->fig_cn) {
- if (fic_info->reconf_stage) {
- if (extension > 0)
- return FICERR_FIG0_NEXT_FIG;
- } else {
- return FICERR_FIG0_NEXT_FIG1;
- }
- }
- }
-
- switch (extension) {
- case EXT_00:
- ret = fig0_ext00(fic_info, fig_buff, length);
- break;
- case EXT_01:
- ret = fig0_ext01(fic_info, fig_buff, length);
- break;
- case EXT_02:
- ret = fig0_ext02(fic_info, fig_buff, length);
- break;
- case EXT_03:
- ret = fig0_ext03(fic_info, fig_buff, length);
- break;
- case EXT_04:
- ret = fig0_ext04(fic_info, fig_buff, length);
- break;
- case EXT_05:
- ret = fig0_ext05(fic_info, fig_buff, length);
- break;
- case EXT_08:
- ret = fig0_ext08(fic_info, fig_buff, length);
- break;
- case EXT_13:
- ret = fig0_ext13(fic_info, fig_buff, length);
- break;
- case EXT_17:
- ret = fig0_ext17(fic_info, fig_buff, length);
- break;
- default:
- break;
- }
- return ret;
-}
-
-
-static s32 parsing_fig1(
- struct fic_parser_matadata *fic_info,
- u8 *fig_buff,
- s32 length)
-{
- s32 ret;
- u8 extension, charset;
-
- fic_info->fig_oe1 = (*fig_buff & 0x08) >> 3;
-
- if (fic_info->fig_oe1 != 0)
- return FICERR_FIG_NODATA;
-
- charset = (*fig_buff & 0xf0) >> 4;
- extension = (*fig_buff++ & 0x07);
- length--;
- switch (extension) {
- case EXT_00:
- ret = fig1_ext00(fic_info, fig_buff, length, charset);
- break;
- case EXT_01:
- ret = fig1_ext01(fic_info, fig_buff, length, charset);
- break;
- case EXT_04:
- ret = fig1_ext04(fic_info, fig_buff, length, charset);
- break;
- case EXT_05:
- ret = fig1_ext05(fic_info, fig_buff, length, charset);
- break;
- case EXT_06:
- ret = fig1_ext06(fic_info, fig_buff, length, charset);
- default:
- break;
- }
-
- return FICERR_SUCCESS;
-}
-
-static u32 fic_channel_updated(void)
-{
- u32 i, j;
- u32 num_svc, num_svc_comp, num_subch;
-
- struct fic_parser_matadata *metadata = &parser_metadata;
- struct tcc_ensemble *esmbl = &metadata->esmbl_start;
- struct tcc_service *svc = metadata->svc_start;
- struct tcc_service_comp *svc_comp = metadata->svc_comp_start;
- struct tcc_user_app_types *user_app = metadata->user_app_start;
-
- num_svc = esmbl->num_svc;
- num_svc_comp = esmbl->num_svc_comp;
- num_subch = esmbl->num_svc_comp;
-
- if (!num_svc_comp)
- return CH_UPDATE_NO_DATA;
-
- if (!num_subch)
- return CH_UPDATE_NO_DATA;
-
- if (esmbl->label[0] == 0x00)
- return CH_UPDATE_NO_DATA;
-
- if (num_svc) {
- for (i = 0; i < num_svc; i++) {
- if ((svc + i)->svc_label[0] == 0)
- return CH_UPDATE_NO_DATA;
- }
- } else {
- return CH_UPDATE_NO_DATA;
- }
-
- for (i = 0; i < num_svc_comp; i++) {
- if ((svc_comp + i)->fidc_id == 0xff)
- return CH_UPDATE_NO_DATA;
- }
-
- for (i = 0; i < num_svc_comp; i++) {
- if (svc_comp[i].tmid == 3 || svc_comp[i].ascty_dscty == 5) {
- if (svc_comp[i].ascty_dscty == 0)
- return CH_UPDATE_ESSENTIAL_DATA;
-
- for (j = 0; j < num_svc_comp; j++) {
- if (svc_comp[i].sid == user_app[j].sid &&
- svc_comp[i].scids == user_app[j].scids)
- break;
- }
- if (j == num_svc_comp)
- return CH_UPDATE_ESSENTIAL_DATA;
-
- if (svc_comp[i].scids == 0x0f)
- return CH_UPDATE_ESSENTIAL_DATA;
- }
-
- if (svc_comp[i].order) {
- if ((svc_comp + i)->label[0] == 0)
- return CH_UPDATE_ESSENTIAL_DATA;
- }
- }
-
- return CH_UPDATE_FULL_DATA;
-}
-
-void tcc_fic_parser_init(void)
-{
- s32 i;
- struct fic_parser_matadata *metadata;
-
- metadata = &parser_metadata;
- memset(metadata, 0, sizeof(parser_metadata));
-
- metadata->reconf_stage = 0;
- metadata->fig_cn = 0;
- metadata->fig_oe0 = 0;
- metadata->fig_pd = 0;
- metadata->fig_oe1 = 0;
- metadata->fib_cnt = 0;
-
- for (i = 0; i < NUM_SVC_COMP; i++)
- metadata->svc_comp_start[i].scids = 0x0f;
-
- for (i = 0; i < NUM_USER_APP; i++)
- metadata->user_app_start[i].scids = 0x0f;
-}
-
-static s32 fib_decode(u8 *fig_buff)
-{
- s32 ret = FICERR_SUCCESS;
- struct fic_parser_matadata *fic_info;
-
- s32 fig_len;
- u32 fig_type;
- u32 buff_point = 0;
- s32 buff_len = 30;
-
- fic_info = &parser_metadata;
-
- if (ret != FICERR_SUCCESS)
- return ret;
-
- /* the size of FIG is bigger than 2bytes */
- while (buff_len > 0) {
- /* find a FIG header */
- if (*(fig_buff + buff_point) == 0xff ||
- *(fig_buff + buff_point) == 0x00) {
- ret = FICERR_FIBD_ENDMARKER;
- break;
- }
-
- fig_type = (*(fig_buff + buff_point) & 0xe0) >> 5;
- fig_len = (*(fig_buff + buff_point) & 0x1f);
- if (fig_len > 29 || fig_len == 0)
- return FICERR_FIBD_INVALID_LENGTH;
-
- buff_point++;
- if (fig_len <= 0x01) {
- ret = FICERR_FIG_NODATA;
- return ret;
- }
-
- switch (fig_type) {
- case FIG0:
- ret = parsing_fig0(fic_info,
- fig_buff + buff_point, fig_len);
- break;
- case FIG1:
- ret = parsing_fig1(fic_info,
- fig_buff+buff_point, fig_len);
- break;
- default:
- ret = FICERR_FIBD_UNKNOWN_FIGTYPE;
- return ret;
- }
-
- buff_point += fig_len;
- buff_len -= (fig_len + 1);
- }
-
- if (buff_len < 0)
- ret = FICERR_FIBD_INVALID_LENGTH;
- return ret;
-}
-
-static u16 fib_crc16(u8 *buf)
-{
- u32 b, len;
- u8 crcl, crcm;
-
- crcl = 0xff;
- crcm = 0xff;
-
-
- for (len = 0; len < 30; len++) {
- b = *(buf + len) ^ crcm;
- b = b ^ (b >> 4);
- crcm = crcl ^ (b >> 3) ^ (b << 4);
- crcl = b ^ (b << 5);
- }
-
- crcl = crcl ^ 0xff;
- crcm = crcm ^ 0xff;
- return (u16)crcl | ((u16)crcm << 8);
-}
-
-
-static void fic_copy_sub_ch(struct fic_parser_matadata *fic_info,
- struct tcc_service_comp_info *svc_comp_info)
-{
- s32 i;
- struct tcc_ensemble *esbl = &fic_info->esmbl_start;
- struct tcc_sub_channel *subch_start = fic_info->subch_start;
-
- for (i = 0; i < esbl->num_svc_comp; i++) {
- if (svc_comp_info->svc_comp.fidc_id != subch_start[i].subch_id)
- continue;
- memcpy(&svc_comp_info->sub_ch, &subch_start[i],
- sizeof(struct tcc_sub_channel));
- break;
- }
-}
-
-static void fic_copy_svc_comp(struct fic_parser_matadata *fic_info,
- struct tcc_service_info *svc_info)
-{
- s32 i, j = 0;
- struct tcc_ensemble *esbl = &fic_info->esmbl_start;
- struct tcc_service_comp *src_svc_comp = fic_info->svc_comp_start;
- struct tcc_service_comp_info *svc_comp_info;
-
- for (i = 0; i < esbl->num_svc_comp; i++) {
- if (svc_info->svc.sid != src_svc_comp[i].sid)
- continue;
- svc_comp_info = &svc_info->svc_comp_info[j];
- memcpy(&svc_comp_info->svc_comp, &src_svc_comp[i],
- sizeof(struct tcc_service_comp));
- fic_copy_sub_ch(fic_info, svc_comp_info);
- j++;
- }
-}
-
-struct tcc_service_comp_info *tcc_fic_get_svc_comp_info(s32 _subch_id)
-{
- s32 i;
- struct tcc_service_comp_info *svc_comp_info;
- struct tcc_ensemble *ensbl = &user_ensbl_info.ensbl;
- struct tcc_service_info *svc_info = user_ensbl_info.svc_info;
-
- for (i = 0; i < ensbl->num_svc_comp; i++) {
- svc_comp_info = &svc_info[i].svc_comp_info[0];
- if (svc_comp_info->svc_comp.fidc_id == _subch_id)
- return svc_comp_info;
- }
- return NULL;
-}
-
-u8 tcc_fic_get_ptype(struct tcc_service_comp_info *svc_comp_info)
-{
- struct tcc_sub_channel *sub_ch = &svc_comp_info->sub_ch;
- if (sub_ch->form_flag & 0x08)
- return 1;
- else
- return 0;
-}
-
-u8 tcc_fic_get_plevel(struct tcc_service_comp_info *svc_comp_info)
-{
- u8 eep8[4] = {0, 1, 2, 3};
- u8 eep32[4] = {4, 5, 6, 7};
- u8 opt, protect;
- struct tcc_sub_channel *sub_ch = &svc_comp_info->sub_ch;
-
- if (sub_ch->form_flag & 0x08) {
- opt = (sub_ch->form_flag & 0x04) ? 1 : 0;
- protect = sub_ch->form_flag & 0x03;
- if (opt)
- return eep32[protect];
- else
- return eep8[protect];
- } else {
- return (uep_table[sub_ch->tbl_index] & 0x0E00) >> 9;
- }
-}
-
-u16 tcc_fic_get_cu_size(struct tcc_service_comp_info *svc_comp_info)
-{
- struct tcc_sub_channel *sub_ch = &svc_comp_info->sub_ch;
-
- if (sub_ch->form_flag & 0x08)
- return sub_ch->size_cu;
- else
- return uep_table[sub_ch->tbl_index] & 0x1FF;
-}
-
-u16 tcc_fic_get_cu_start(struct tcc_service_comp_info *svc_comp_info)
-{
- struct tcc_sub_channel *sub_ch = &svc_comp_info->sub_ch;
-
- return sub_ch->size_cu;
-}
-
-u8 tcc_fic_get_subch_id(struct tcc_service_comp_info *svc_comp_info)
-{
- struct tcc_sub_channel *sub_ch = &svc_comp_info->sub_ch;
-
- return sub_ch->subch_id;
-}
-
-
-u8 tcc_fic_get_bitrate(struct tcc_service_comp_info *svc_comp_info)
-{
- u8 opt, protect;
- struct tcc_sub_channel *sub_ch = &svc_comp_info->sub_ch;
-
- if ((sub_ch->form_flag & 0x08) == 0)
- return (uep_table[sub_ch->tbl_index] & 0xf000) >> 12;
-
- opt = (sub_ch->form_flag & 0x04) ? 1 : 0;
- protect = sub_ch->form_flag & 0x03;
- if (opt) {
- switch (protect) {
- case 0:
- return sub_ch->size_cu / 27;
- case 1:
- return sub_ch->size_cu / 21;
- case 2:
- return sub_ch->size_cu / 18;
- case 3:
- return sub_ch->size_cu / 15;
- default:
- return 0;
- }
- /*human readable bitrate is x32*/
- } else {
- switch (protect) {
- case 0:
- return sub_ch->size_cu / 12;
- case 1:
- return sub_ch->size_cu / 8;
- case 2:
- return sub_ch->size_cu / 6;
- case 3:
- return sub_ch->size_cu / 4;
- default:
- return 0;
- }
- /*human readable bitrate is x8*/
- }
-}
-
-u8 tcc_fic_get_rs(struct tcc_service_comp_info *svc_comp_info)
-{
- struct tcc_service_comp *svc_comp = &svc_comp_info->svc_comp;
- if (svc_comp->ascty_dscty == 0x18)
- return 1;
- else
- return 0;
-}
-
-/**
-* @param buff buffer for fic
-* @param size fic buffer size. it must be 384 bytes.
-* @return -1 : invalid argument, 0 : in progress, > 0 : parsing done
-*/
-s32 tcc_fic_run_decoder(u8 *buff, s32 size)
-{
- s32 cnt = 0, ret = 0;
- s32 num_broken_fib = 0;
- u16 fib_crc;
-
- if ((size%TCC_FIB_SIZE) != 0) {
- tcbd_debug(DEBUG_ERROR, "invalid fic size:%d!\n", size);
- return -1;
- }
- while (size > cnt * TCC_FIB_SIZE) {
- fib_crc = (u16)(buff[(cnt * TCC_FIB_SIZE) + 30] << 8) |
- (u16)buff[(cnt * TCC_FIB_SIZE) + 31];
- if (fib_crc != fib_crc16(buff + (cnt * TCC_FIB_SIZE))) {
- num_broken_fib++;
- tcbd_debug(DEBUG_ERROR, "broken fib cnt:%d\n", cnt);
- goto cont_loop;
- }
- fib_decode(buff + (cnt * TCC_FIB_SIZE));
- ret = fic_channel_updated();
- if (ret == CH_UPDATE_ESSENTIAL_DATA ||
- ret == CH_UPDATE_FULL_DATA) {
- break;
- }
-cont_loop:
- cnt++;
- }
- return ret;
-}
-
-void tcc_fic_disp_ensbl_info(struct tcc_ensemble_info *ensbl_info)
-{
- s32 i, j;
- struct tcc_ensemble *esbl = &ensbl_info->ensbl;
- struct tcc_service_info *svc_info;
- struct tcc_service_comp_info *svc_comp_info;
-
- tcbd_debug(DEBUG_INFO, "[ %s ] %d services available!\n",
- esbl->label, esbl->num_svc);
- for (i = 0; i < esbl->num_svc; i++) {
- svc_info = &ensbl_info->svc_info[i];
- tcbd_debug(DEBUG_INFO, " => [ %s ] %d service component\n",
- svc_info->svc.svc_label,
- svc_info->svc.num_svc_comp);
- for (j = 0; j < svc_info->svc.num_svc_comp; j++) {
- svc_comp_info = &svc_info->svc_comp_info[j];
- tcbd_debug(DEBUG_INFO, " -> sub channel id [%d]\n",
- svc_comp_info[j].svc_comp.fidc_id);
- }
- }
-}
-
-struct tcc_ensemble_info *tcc_fic_get_ensbl_info(s32 _disp)
-{
- s32 i;
- struct fic_parser_matadata *fic_info = &parser_metadata;
- struct tcc_ensemble *esbl = &fic_info->esmbl_start;
- struct tcc_service *svc = fic_info->svc_start;
- struct tcc_service_info *svc_info;
-
- memcpy(&user_ensbl_info.ensbl, esbl, sizeof(struct tcc_ensemble));
- for (i = 0; i < esbl->num_svc; i++) {
- svc_info = &user_ensbl_info.svc_info[i];
- memcpy(&svc_info->svc, &svc[i], sizeof(struct tcc_service));
- fic_copy_svc_comp(fic_info, svc_info);
- }
-
- if (_disp)
- tcc_fic_disp_ensbl_info(&user_ensbl_info);
-
- return &user_ensbl_info;
-}
-
diff --git a/drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/tcc_fic_fig0.c b/drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/tcc_fic_fig0.c
deleted file mode 100644
index a7e2a1f..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/tcc_fic_fig0.c
+++ /dev/null
@@ -1,911 +0,0 @@
-/*
- * tcc_fic_fig0.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcc_fic_decoder.h"
-
-void fig0_ext00_update_reconf_mode(struct fic_parser_matadata *parser)
-{
-/*
- if (parser->cif_count == 0xff00)
- gpFicParserInfo->reconf_mode = 2;
-
- if (cif_cnt >= parser->cif_count &&
- (cif_cnt - parser->cif_count) > 0x100)
- gpFicParserInfo->reconf_mode = 3;
- else if (cif_cnt + 0x1400 - parser->cif_count > 0x100)
- gpFicParserInfo->reconf_mode = 3;
-
- parser->cif_count = cif_cnt;
- if (fig_len == 5 && change_flag) {
- parser->occur_change = *fig_buff;
-
- if (parser->reconf_stage == 0)
- parser->reconf_stage = 1;
-
- if (parser->cif_count_hi == 0xff) {
- parser->cif_count_hi =
- (parser->cif_count & 0x1f00) >> 8;
- parser->cif_count_lo =
- (parser->cif_count & 0xff);
- }
- } else if (parser->reconf_stage == 1 &&
- parser->cif_count_hi != ((parser->cif_count & 0x1f00) >> 8) &&
- parser->occur_change <= ((parser->cif_count & 0xff) + 4)) {
- parser->reconf_stage = 2;
- parser->cif_count_hi = 0xff;
- gpFicParserInfo->reconf_mode = 1;
- }
- }
-*/
-}
-
-/********************************************************************
-* Function: Parsing FIG 0/0
-* Ensemble Information Field ETSI EN 300401 V010401p Figure 29
-*********************************************************************/
-s32 fig0_ext00(struct fic_parser_matadata *parser,
- u8 *fig_buff, s32 fig_len)
-{
- s32 ret = FICERR_SUCCESS;
- u8 change_flag;
- u16 cif_cnt;
- struct tcc_ensemble *esb_start;
-
- esb_start = &parser->esmbl_start;
- if (esb_start == NULL)
- ret = FICERR_FIG0_0_NO_ENSEMBLEARRAY;
- else {
- esb_start->eid = (u16)(*fig_buff++) << 8;
- /* eid = Country Id(b15-b12), Ensemble reference(b11-b0) */
- esb_start->eid |= *fig_buff++;
-
- /*b15-b14: Change flag about service Organization */
- change_flag = (*fig_buff & 0xc0) >> 6;
- /*b13: Alarm flag, 1: alarm message accessible */
- esb_start->al_flag = (*fig_buff & 0x20) >> 5;
- cif_cnt = (u16)(*fig_buff++ & 0x1f) << 8;
- /*b12-b0: CIF Count, b12-b8->modulo 20, b7-b0->modulo250 */
- cif_cnt |= *fig_buff++;
-
- /*fig0_ext00_update_reconf_mode(parser);*/
- }
- return ret;
-}
-
-/********************************************************************
-* Function: Parsing FIG 0/1
-* Sub-channel Organization Field ETSI EN 300401 V010401p Figure 22
-*********************************************************************/
-s32 fig0_ext01(struct fic_parser_matadata *parser,
- u8 *fig_buff, s32 fig_len)
-{
- s32 ret = FICERR_SUCCESS;
- u8 subchid, i, flag = 0;
- u8 tbl_switch = 0xff;
-
- struct tcc_ensemble *esmbl;
- struct tcc_sub_channel *subch_start, *subch_prev;
-
- esmbl = &parser->esmbl_start;
- subch_start = subch_prev = parser->subch_start;
-
- if (subch_start == 0)
- return FICERR_FIG0_1_NO_SUBCHARRAY;
- while (fig_len > 0) {
- if (esmbl->num_subch == NUM_SUB_CH) {
- ret = FICERR_FIG0_1_FULL_SUBCHARRAY;
- return ret;
- }
-
- subchid = (*fig_buff & 0xfc) >> 2; /*b15-b10: subch_id */
-
- for (i = 0; i < esmbl->num_subch; i++) {
- subch_start = subch_prev + i;
- if (subchid == subch_start->subch_id) {
- flag = 1;
- break;
- }
- }
-
- subch_start = subch_prev + i;
- subch_start->subch_id = subchid;
- subch_start->start_cu = (u16)(*fig_buff++ & 0x03) << 8;
- /*b9-b0: Start Address */
- subch_start->start_cu |= *fig_buff++;
- /*b7(b15): Short or Long form flag, 0:Short form 1:Long form*/
- subch_start->form_flag = ((*fig_buff & 0x80) ? 1 : 0) << 3;
- fig_len -= 2;
-
-
- /* In Long form case */
- if (subch_start->form_flag & 0x08) {
- /*b14-b12: Option 000: 1,2,3,4-A 001: 1,2,3,4-B*/
- subch_start->form_flag |=
- ((*fig_buff & 0x10) ? 1 : 0) << 2;
- /*b11-b10: Protection level */
- subch_start->form_flag |= (*fig_buff & 0x0c) >> 2;
- subch_start->size_cu = (u16)(*fig_buff++ & 0x03) << 8;
- /*b9-b0: Sub-channel size */
- subch_start->size_cu |= *fig_buff++;
- fig_len -= 2;
- } else {
- /* In Short form case */
- /* b6: Table switch */
- tbl_switch = (*fig_buff & 0x40)>>6;
- if (!tbl_switch)
- /*b5-b0: Table index */
- subch_start->tbl_index = *fig_buff++ & 0x3f;
- else
- /* Invalid Table index */
- subch_start->tbl_index = *fig_buff++ | 0xff;
-
- fig_len -= 1;
- }
-
- if (!flag)
- esmbl->num_subch++;
- flag = 0;
- }
- if (fig_len < 0)
- ret = FICERR_FIG0_1_INVALID_LENGTH;
-
- return ret;
-}
-
-u8 *fig0_ext02_sid(struct fic_parser_matadata *parser,
- u8 *fig_buff, s32 *fig_len, u32 *sid)
-{
- /* PD from FIG0 Header PD=1: 32bit sid */
- if (parser->fig_pd == 1) {
- /*b31-b0: sid(ECC,Country Id,Service reference) */
- *sid = (u32)(*fig_buff++ << 24);
- *sid |= (u32)(*fig_buff++ << 16);
- *sid |= (u32)(*fig_buff++ << 8);
- *sid |= (u32)(*fig_buff++);
- *fig_len -= 4;
- } else {
- /* PD from FIG0 Header PD=0: 16bit sid */
- /*b15-b0: sid(Country Id,Service reference */
- *sid = (u32)(*fig_buff++ << 8);
- *sid |= (u32)(*fig_buff++);
- *fig_len -= 2;
- }
- return fig_buff;
-}
-
-u8 *fig0_ext02_check_num_comp(struct fic_parser_matadata *parser,
- u8 *fig_buff, u8 *num_comp)
-{
- /* b3-b0: Number of Service Componentsin current FIG0_2,
- * max 12 or 11 */
- *num_comp = (*fig_buff & 0x0f);
- if (parser->fig_pd == 1) {
- if (*num_comp > 11)
- return NULL;
- } else {
- if (*num_comp > 12)
- return NULL;
- }
- return fig_buff;
-}
-
-u8 *fig0_ext02_update_svc(struct fic_parser_matadata *parser,
- u8 *fig_buff, u32 sid, struct tcc_service **svc_start)
-{
- u8 i, al;
- struct tcc_ensemble *esmbl;
- /*struct tcc_service *svc_start;*/
-
- esmbl = &parser->esmbl_start;
- al = 0;
- for (i = 0; i < esmbl->num_svc; i++) {
- *svc_start = parser->svc_start + i;
- if (sid == (*svc_start)->sid) {
- al = 1;
- break;
- }
- }
-
- if (al == 0) {
- *svc_start = parser->svc_start + i;
- (*svc_start)->sid = sid;
- /*b6-b4: Conditional Access Identifier */
- (*svc_start)->ca_id = (*fig_buff++ & 0x70) >> 4;
- esmbl->num_svc++;
- } else {
- fig_buff++;
- }
- return fig_buff;
-}
-
-s32 fig0_ext02_check_new_svc_comp(struct fic_parser_matadata *parser,
- u32 sid, u16 scid, u8 tmid, u8 fidc_id)
-{
- s32 j;
- struct tcc_service_comp *svc_comp_start;
-
- for (j = 0; j < parser->esmbl_start.num_svc_comp; j++) {
- svc_comp_start = parser->svc_comp_start + j;
- if ((tmid == 0) || (tmid == 1) || (tmid == 2)) {
- if ((fidc_id == svc_comp_start->fidc_id) &&
- (tmid == svc_comp_start->tmid) &&
- (sid == svc_comp_start->sid))
- return 1;
- } else if (tmid == 3) {
- if ((scid == svc_comp_start->scid) &&
- (sid == svc_comp_start->sid))
- return 1;
- }
- }
- return 0;
-}
-
-u8 *fig0_ext02_update_svc_comp(struct fic_parser_matadata *parser,
- u8 *fig_buff, u32 sid, u8 *p_flag, struct tcc_service *svc_start)
-{
- u8 is_updated, tmid, ascty_dscty = 0xff, fidc_id = 0xff;
- u16 scid = 0xffff;
-
- struct tcc_ensemble *esmbl;
- /*struct tcc_service *svc_start;*/
- struct tcc_service_comp *svc_comp_start;
-
- esmbl = &parser->esmbl_start;
- svc_comp_start = parser->svc_comp_start;
-
- /*b15-b14: Transport Mechanism Identifier */
- tmid = (*fig_buff & 0xc0) >> 6;
- switch (tmid) {
- case 0: /* MSC-Stream mode - audio */
- case 1: /* MSC-Stream mode - data */
- case 2:
- /*b13-b8: Data Service Component type */
- ascty_dscty = (*fig_buff++ & 0x3f);
- /*b7-b2: FIDCId */
- fidc_id = (*fig_buff & 0xfc) >> 2;
- /* Invalid scid */
- scid = 0xffff;
- break;
- case 3: /* MSC-Packet mode - data */
- scid = (*fig_buff++ & 0x3f) << 6;
- /*b13-b2: Service Component Identifier */
- scid |= (*fig_buff & 0xfc) >> 2;
- /* Invalid subch_id */
- fidc_id = 0xff;
- ascty_dscty = 0xff;
- break;
- default:
- tcbd_debug(DEBUG_ERROR, "unknown tmid!\n");
- break;
- }
-
- is_updated = fig0_ext02_check_new_svc_comp(parser,
- sid, scid, tmid, fidc_id);
- if (is_updated == 0) {
- /*b1: PS flag, 1: Primary service component 0: Secondary */
- if ((*fig_buff & 0x02) && *p_flag == 0) {
- svc_comp_start = parser->svc_comp_start +
- esmbl->num_svc_comp;
- svc_comp_start->order = 0;
- *p_flag = 1;
- } else {
- if (*p_flag) {
- svc_comp_start = parser->svc_comp_start +
- esmbl->num_svc_comp;
- svc_comp_start->order =
- svc_start->num_svc_comp;
- } else {
- svc_comp_start = parser->svc_comp_start +
- esmbl->num_svc_comp + 1;
- svc_comp_start->order =
- svc_start->num_svc_comp + 1;
- }
- }
- svc_comp_start->sid = sid;
- svc_comp_start->tmid = tmid;
- svc_comp_start->ascty_dscty = ascty_dscty;
- svc_comp_start->fidc_id = fidc_id;
- svc_comp_start->scid = scid;
- svc_comp_start->ca_flag = (*fig_buff++ & 0x01);
- svc_comp_start->ca_org = 0xffff;
- svc_comp_start->scids = INITVAL_SCIDS;
-
- esmbl->num_svc_comp++;
- svc_start->num_svc_comp++;
- } else {
- fig_buff++; /* pointer update */
- }
- return fig_buff;
-}
-
-
-/********************************************************************
-* Function: Parsing FIG 0/2
-* Service Organization Field EN 300401 v010401p Figure 24
-*********************************************************************/
-s32 fig0_ext02(struct fic_parser_matadata *parser,
- u8 *fig_buff, s32 fig_len)
-{
- s32 ret = FICERR_SUCCESS;
- u8 k, num_comp, p_flag;
- u32 sid;
- struct tcc_ensemble *esmbl;
- struct tcc_service *svc;
-
- esmbl = &parser->esmbl_start;
- while (fig_len > 0) {
- if (esmbl->num_svc == NUM_SVC)
- return FICERR_FIG0_2_FULL_SERVICEARRAY;
-
- if (!fig_buff)
- return FICERR_FIG0_2_INVALID_LENGTH;
-
- fig_buff = fig0_ext02_sid(parser, fig_buff, &fig_len, &sid);
- fig_buff = fig0_ext02_check_num_comp(
- parser, fig_buff, &num_comp);
- if (fig_buff == NULL)
- return FICERR_FIG0_2_INVALID_LENGTH;
-
- fig_buff = fig0_ext02_update_svc(parser, fig_buff, sid, &svc);
-
- if (num_comp == 0)
- goto cont_while;
-
- p_flag = 0;
- for (k = 0; k < num_comp; k++) {
- if (esmbl->num_svc_comp == NUM_SVC_COMP)
- return FICERR_FIG0_2_FULL_SRVCOMPARRAY;
-
- fig_buff = fig0_ext02_update_svc_comp(
- parser, fig_buff, sid, &p_flag, svc);
- fig_len -= 2;
- }
-cont_while:
- fig_len -= 1;
- }
-
- if (fig_len < 0)
- return FICERR_FIG0_2_INVALID_LENGTH;
-
- return ret;
-}
-
-/********************************************************************
-* Function: Parsing FIG 0/3
-* Service Component Field in Packet Mode
-* ETSI EN 300401 V010401p Figure 26
-*********************************************************************/
-s32 fig0_ext03(struct fic_parser_matadata *parser,
- u8 *fig_buff, s32 fig_len)
-{
- u8 i;
- u16 scid = 0xffff;
- struct tcc_ensemble *esmbl;
- struct tcc_service_comp *svc_comp_start;
-
- u8 ca_org_flag = 0xff, dg_mf_flag = 0xff;
- u8 ascty_dscty = 0xff, fidc_id = 0xff;
- u16 pack_add = 0xffff, ca_org = 0xffff;
-
- esmbl = &parser->esmbl_start;
- svc_comp_start = parser->svc_comp_start;
-
- if (svc_comp_start == 0)
- return FICERR_FIG0_3_NO_SRVCOMPARRAY;
-
- if (esmbl->num_svc_comp == 0)
- return FICERR_FIG0_3_NOTREADY_SRVCOMP1;
-
- while (fig_len > 0) {
- scid = (u16)(*fig_buff++) << 4;
- /* Service Component Identifier (b15~b4) */
- scid |= (*fig_buff & 0xf0) >> 4;
- /* b0, 0: ca_org field absent, 1: ca_org field present */
- ca_org_flag = (*fig_buff++ & 0x01);
- /* b7, 1: data groups are not used to transport
- * the service component */
- dg_mf_flag = (*fig_buff & 0x80) >> 7;
- /* b5-b0, Data Service Component Type */
- ascty_dscty = (*fig_buff++ & 0x3f);
- /* b15-b10, Sub-channel Identifier */
- fidc_id = (*fig_buff & 0xfc) >> 2;
- pack_add = (u16)(*fig_buff++ & 0x03) << 8;
- /* b9-b0, Packet address */
- pack_add |= (*fig_buff++);
- fig_len -= 5;
- if (ca_org_flag) {
- /* b15-b0, Conditional Access Organization */
- ca_org = (u16)(*fig_buff++) << 8;
- ca_org |= (u16)(*fig_buff++);
- fig_len -= 2;
- }
- for (i = 0; i < esmbl->num_svc_comp; i++) {
- svc_comp_start = parser->svc_comp_start + i;
- if (scid == svc_comp_start->scid) {
- svc_comp_start->ca_org_flag = ca_org_flag;
- svc_comp_start->dg_mf_flag = dg_mf_flag;
- svc_comp_start->ascty_dscty = ascty_dscty;
- svc_comp_start->fidc_id = fidc_id;
- svc_comp_start->pack_add = pack_add;
- if (ca_org_flag)
- svc_comp_start->ca_org = ca_org;
- }
- }
- }
- if (fig_len < 0)
- return FICERR_FIG0_3_INVALID_LENGTH;
- return FICERR_SUCCESS;
-}
-
-/********************************************************************
-* Function: Parsing FIG 0/4
-* Service Component Field in Stream Mode or
-* FIC ETSI EN 300401 v010401p Figure 27
-*********************************************************************/
-s32 fig0_ext04(struct fic_parser_matadata *parser,
- u8 *fig_buff, s32 fig_len)
-{
- u8 i = 0;
- u8 flag, id;
- struct tcc_ensemble *esmbl;
- struct tcc_service_comp *svc_comp_start;
-
- esmbl = &parser->esmbl_start;
- svc_comp_start = parser->svc_comp_start;
-
- if (svc_comp_start == 0)
- return FICERR_FIG0_4_NO_SRVCOMPARRAY;
-
- while (fig_len > 0) {
- /* b6, 0: MSC and subch_id, 1: FIC and FIDCId */
- flag = (*fig_buff & 0x40) ? 1 : 0;
- /* b5-b0, subch_id or FIDCId */
- id = (*fig_buff++ & 0x3f);
-
- for (i = 0; i < esmbl->num_svc_comp; i++) {
- svc_comp_start = parser->svc_comp_start + i;
- if (id == svc_comp_start->fidc_id) {
- if (svc_comp_start->ca_org != 0xffff)
- return FICERR_FIG0_4_ALREADY_CA_FIELD;
- else
- break;
- }
- }
-
- if (i >= esmbl->num_svc_comp)
- return FICERR_FIG0_4_NOTREADY_SRVCOMP;
-
- svc_comp_start = parser->svc_comp_start + i;
- svc_comp_start->dg_mf_flag = flag;
- svc_comp_start->fidc_id = id;
- svc_comp_start->ca_org = (u16)(*fig_buff++) << 8;
- /* b15-b0: Conditional Access Organization */
- svc_comp_start->ca_org |= (u16)(*fig_buff++);
- fig_len -= 3;
- }
-
- if (fig_len < 0)
- return FICERR_FIG0_4_INVALID_LENGTH;
-
- return FICERR_SUCCESS;
-}
-
-/********************************************************************
-* Function: Parsing FIG 0/5
-* Service Component Language Field ETSI EN 300401 v010401p Figure 45
-* Short form(LS=0) b7: LS flag, b6: MSC_FIC flag, b5-b0: subch_id_FIDCId,
-* b7-b0: Language
-* Long form(LS=1) b15: LS flag, b14-b12: Rfa, b11-b0: scid, b7-b0: Language
-*********************************************************************/
-s32 fig0_ext05(struct fic_parser_matadata *parser, u8 *fig_buff, s32 fig_len)
-{
- u16 id;
- u8 i;
- struct tcc_ensemble *esmbl;
- struct tcc_service_comp *svc_comp_start;
-
- esmbl = &parser->esmbl_start;
- svc_comp_start = parser->svc_comp_start;
-
- if (svc_comp_start == 0)
- return FICERR_FIG0_5_NO_SRVCOMPARRAY;
-
- if (esmbl->num_svc == 0)
- return FICERR_FIG0_5_NOTREADY_SERVICE;
-
- while (fig_len > 0) {
- if (*fig_buff & 0x80) {
- /* b7(LS) = 1: Long form Case */
- id = (*fig_buff++ & 0x0f) << 8;
- /* b11-b0: scid Service Component Id */
- id |= (*fig_buff++);
- fig_len -= 2;
- for (i = 0; i < esmbl->num_svc_comp; i++) {
- svc_comp_start = parser->svc_comp_start + i;
- if (id == svc_comp_start->scid)
- break;
- }
- } else {
- /* b7(LS) = 0: Short form Case */
- /* b5-b0: subch_id/FIDCId is mixed*/
- id = (*fig_buff++ & 0x3f);
- fig_len -= 1;
- for (i = 0; i < esmbl->num_svc_comp; i++) {
- svc_comp_start = parser->svc_comp_start + i;
- if (id == svc_comp_start->fidc_id)
- break;
- }
- }
-
- if (i == esmbl->num_svc_comp)
- return FICERR_FIG0_5_NOTREADY_SRVCOMP;
-
- svc_comp_start = parser->svc_comp_start + i;
- /* b7-b0: Language of the audio or data service component,
- * TS 101 756 Tables 9 and 10 */
- svc_comp_start->lang = *fig_buff++;
- fig_len -= 1;
- }
- if (fig_len < 0)
- return FICERR_FIG0_5_INVALID_LENGTH;
-
- return FICERR_SUCCESS;
-}
-
-/****************************************************************************
-* Function: Parsing FIG 0/7
-* Data Service Component Type extension
-* There is not FIG 0/7 in ETSI EN 300401 not yet.
-*****************************************************************************/
-s32 fig0_ext07(struct fic_parser_matadata *parser,
- u8 *fig_buff, s32 fig_len)
-{
- u8 tmid, num, i, k;
- u16 id, extdscty;
- struct tcc_ensemble *esmbl;
- struct tcc_service_comp *svc_comp_start;
-
- esmbl = &parser->esmbl_start;
- svc_comp_start = parser->svc_comp_start;
-
- tmid = (*fig_buff & 0x30) >> 4;
- num = (*fig_buff++ & 0x0f);
- for (k = 0; k < num; k++) {
- switch (tmid) {
- case 0:
- return FICERR_FIG0_7_RETURN;
- case 1:
- case 2:
- /* MSC stream/FIDC */
- id = (*fig_buff & 0xfc) >> 2;
- extdscty = (u16)(*fig_buff & 0x03) << 8;
- extdscty |= (*fig_buff++);
- fig_len -= 2;
- for (i = 0; i < esmbl->num_svc_comp; i++) {
- svc_comp_start = parser->svc_comp_start + i;
- if (tmid == svc_comp_start->tmid &&
- id == svc_comp_start->fidc_id)
- break;
- }
- break;
-
- case 3:
- id = (u16)(*fig_buff & 0x3f) << 6;
- id |= (*fig_buff++ & 0xfc) >> 2;
- extdscty = (u16)(*fig_buff & 0x03) << 8;
- extdscty |= (*fig_buff++);
- fig_len -= 3;
- for (i = 0; i < esmbl->num_svc_comp; i++) {
- svc_comp_start = parser->svc_comp_start + i;
- if (tmid == svc_comp_start->tmid &&
- id == svc_comp_start->scid)
- break;
- }
- break;
- default:
- break;
- }
- }
- return FICERR_SUCCESS;
-}
-
-/********************************************************************
-* Function: Parsing FIG 0/8
-* Service Component Global Definition Field EN 300401 V010401p Figure 28
-*********************************************************************/
-s32 fig0_ext08(struct fic_parser_matadata *parser,
- u8 *fig_buff, s32 fig_len)
-{
- s32 ret = FICERR_SUCCESS;
- u8 i;
- u8 ls_flag = 0xff, ext_flag = 0xff;
- u8 scids = 0xff, subch_id = 0xff;
- u32 sid = 0xffffffff;
- u16 scid = 0xffff;
- s32 is_fic_db = 0;
- s32 is_fic = 0;
- struct tcc_ensemble *esmbl;
- struct tcc_service_comp *svc_comp_start;
-
- esmbl = &parser->esmbl_start;
- svc_comp_start = parser->svc_comp_start;
-
- if (svc_comp_start == 0)
- return FICERR_FIG0_8_NO_SRVCOMPARRAY;
-
- while (fig_len > 0) {
- /* PD from FIG0 Header PD=1: 32bit sid */
- if (parser->fig_pd == 1) {
- /* b32-b0: sid(Service Identifier) */
- sid = (u32)(*fig_buff++ << 24);
- sid |= (u32)(*fig_buff++ << 16);
- sid |= (u32)(*fig_buff++ << 8);
- sid |= (u32)(*fig_buff++);
- fig_len -= 4;
- } else {
- /* PD from FIG0 Header PD=0: 16bit sid */
- sid = (u32)(*fig_buff++ << 8);
- /* b15-b0: sid(Service Identifier) */
- sid |= (u32)(*fig_buff++);
- fig_len -= 2;
- }
-
- /* b7: Ext.flag(extension Flag)
- * 0: Rfa field absent, 1: Rfa field present */
- ext_flag = (*fig_buff & 0x80);
- /* b3-b0:
- * scids(Service Component Identifier within the Service) */
- scids = (*fig_buff++ & 0x0f);
- /* b7: LS flag(Long form or Short form),
- * 1: Long form 0: Short form */
- ls_flag = (*fig_buff & 0x80);
-
- if (ls_flag) {
- /* Long form case */
- scid = (*fig_buff++ & 0x0f) << 8;
- /* b11-b0: scid(Service Component Identifier) */
- scid |= (*fig_buff++);
- fig_len -= 3;
- } else {
- /* Short form case */
- /* b6: MSC_FIC flag 0: MSC_subch_id 1: FIC_FIDCId */
- is_fic = ((*fig_buff) >> 6) & 1;
- /* b5-b0: subch_id or FIDCId */
- subch_id = (*fig_buff++ & 0x3f);
- fig_len -= 2;
- }
-
-
- if (ext_flag) {
- fig_buff++;
- fig_len -= 1;
- }
-
- for (i = 0; i < esmbl->num_svc_comp; i++) {
- svc_comp_start = parser->svc_comp_start + i;
- if (sid != svc_comp_start->sid)
- continue;
-
- if (ls_flag && scid == svc_comp_start->scid) {
- svc_comp_start->scids = scids;
- break;
- } else {
- is_fic_db = (svc_comp_start->tmid == 2) ? 1 : 0;
- if ((is_fic_db == is_fic) &&
- (subch_id == svc_comp_start->fidc_id)) {
- svc_comp_start->scids = scids;
- break;
- }
- }
- }
- }
- if (fig_len < 0)
- ret = FICERR_FIG0_8_INVALID_LENGTH;
- return ret;
-}
-
-/********************************************************************
-* Function: Parsing FIG 0/13
-* User Application Field EN 300401 v010401p Figure68
-*********************************************************************/
-s32 fig0_ext13(struct fic_parser_matadata *parser,
- u8 *fig_buff, s32 fig_len)
-{
- u32 i, k;
- u32 sid;
- u8 scids;
- struct tcc_ensemble *esmbl;
- struct tcc_user_app_types *usrapp_start;
-
- esmbl = &parser->esmbl_start;
- usrapp_start = parser->user_app_start;
-
- if (usrapp_start == 0)
- return FICERR_FIG0_13_NO_USERAPPLARRAY;
-
- while (fig_len > 0) {
- if (esmbl->num_user_app == NUM_USER_APP)
- return FICERR_FIG0_13_FULL_USERAPPLARRAY;
-
- /* PD from FIG0 Header PD=1: 32bit sid */
- if (parser->fig_pd == 1) {
- sid = (u32)(*fig_buff++ << 24);
- sid |= (u32)(*fig_buff++ << 16);
- sid |= (u32)(*fig_buff++ << 8);
- sid |= (u32)(*fig_buff++);
- fig_len -= 4;
- } else {
- /* PD from FIG0 Header PD=0: 16bit sid */
- sid = (u32)(*fig_buff++ << 8);
- /*b15-b0: sid(16bit) */
- sid |= (u32)(*fig_buff++);
- fig_len -= 2;
- }
-
- /* b7-b4:
- * scids(Service Component Identifier within the Service) */
- scids = (*fig_buff & 0xf0) >> 4;
-
- for (i = 0; i < esmbl->num_user_app; i++) {
- usrapp_start = parser->user_app_start + i;
- if (sid == usrapp_start->sid &&
- scids == usrapp_start->scids) {
- return FICERR_FIG0_13_ALREADY_USERAPPL;
- }
- }
- usrapp_start = parser->user_app_start + i;
-
- /* b3-b0: No. of User Applications */
- usrapp_start->num_app = (*fig_buff++ & 0x0f);
- if (usrapp_start->num_app > 6) {
- usrapp_start->num_app = 0;
- return FICERR_FIG0_13_INVALID_LENGTH;
- }
- fig_len -= 1;
-
- for (i = 0; i < usrapp_start->num_app; i++) {
- struct tcc_user_app_type *ua =
- &usrapp_start->app_type[i];
- ua->type = (*fig_buff++) << 3;
- /*b15-b5: User Application Type */
- ua->type += ((*fig_buff & 0xe0) >> 5);
- /*b4-b0: User Application data length in bytes */
- ua->len = (*fig_buff++ & 0x1f);
- if (ua->len > 23) {
- ua->len = 0;
- return FICERR_FIG0_13_INVALID_LENGTH;
- }
-
- for (k = 0; k < ua->len; k++)
- ua->data[k] = *fig_buff++;
- fig_len -= (2 + ua->len);
- }
-
- usrapp_start->sid = sid;
- usrapp_start->scids = scids;
-
- esmbl->num_user_app++;
- }
-
- if (fig_len < 0)
- return FICERR_FIG0_13_INVALID_LENGTH;
-
- return FICERR_SUCCESS;
-}
-
-/********************************************************************
-* Function: Parsing FIG 0/17
-* Programme Type Field EN 300401 V010401p Figure49
-* Input : ucOffset is the point of buffer being processed and length
-* Return : return the start point of next FIG
-*********************************************************************/
-s32 fig0_ext17(struct fic_parser_matadata *parser,
- u8 *fig_buff, s32 fig_len)
-{
- s32 ret = FICERR_SUCCESS;
- u8 i, k;
- u8 lang_flag, cc_flag, end_flag;
- u16 sid;
- u8 sd, ps;
- struct tcc_ensemble *esmbl;
- struct tcc_program_type *prg_start;
-
- esmbl = &parser->esmbl_start;
- prg_start = parser->prg_start;
-
- if (prg_start == 0x00) {
- ret = FICERR_FIG0_17_NO_PROGTYPEARRAY;
- return ret;
- }
-
- if (parser->fig_oe0) {
- ret = FICERR_FIG0_17_OTHER_ENSEMBLE;
- return ret;
- }
-
- while (fig_len > 0) {
- if (esmbl->num_prg_type == NUM_PRG_TYPE) {
- ret = FICERR_FIG0_17_FULL_PROGTYPEARRAY;
- return ret;
- }
- sid = (*fig_buff++) << 8;
- /*b15-b0: sid */
- sid |= *fig_buff++;
- /*b7:SD(Static or Dynamic) 1:
- * represent the current programme contents */
- sd = (*fig_buff & 0x80) ? 1 : 0;
- /*b6: PS(Primary or Secondary) 0:
- * Primary Service Component 1: Secondary */
- ps = (*fig_buff & 0x40) ? 1 : 0;
- /* for making End condition */
- end_flag = 0;
- for (k = 0; k < esmbl->num_prg_type; k++) {
- prg_start = parser->prg_start + k;
- if (sid == prg_start->sid &&
- sd == prg_start->sd &&
- ps == prg_start->ps) {
- end_flag = 1;
- break;
- }
- }
- fig_len -= 2;
- if (end_flag)
- prg_start = parser->prg_start + k;
- else
- prg_start = parser->prg_start +
- esmbl->num_prg_type;
-
- prg_start->sid = sid;
- prg_start->sd = sd;
- prg_start->ps = ps;
- /*b5: Language flag, 0: language field absent */
- lang_flag = (*fig_buff & 0x20) ? 1 : 0;
- /*b4: Complementary Code flag, 1:
- * CC, preceding Rfa and Rfu fields present */
- cc_flag = (*fig_buff & 0x10) ? 1 : 0;
- /* This field is strange things */
- prg_start->nfc = (*fig_buff++ & 0x0f);
- fig_len -= 1;
- if (lang_flag) {
- fig_len -= 1;
- prg_start->lang = *fig_buff++;
- }
-
- /*b4-b0: International Code */
- prg_start->i18n_code = (*fig_buff++ & 0x1f);
- fig_len -= 1;
- if (cc_flag) {
- prg_start->coarse_code = (*fig_buff++);
- fig_len -= 1;
- }
-
- for (i = 0; i < prg_start->nfc; i++) {
- prg_start->fine_code = *fig_buff++;
- fig_len -= 1;
- }
- if (!end_flag)
- esmbl->num_prg_type++;
- }
- if (fig_len < 0)
- ret = FICERR_FIG0_17_INVALID_LENGTH;
- return ret;
-}
diff --git a/drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/tcc_fic_fig1.c b/drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/tcc_fic_fig1.c
deleted file mode 100644
index d2653fa..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcc_fic_decoder/tcc_fic_fig1.c
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * tcc_fic_fig1.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcc_fic_decoder.h"
-
-static u8 *fig_put_in_label(u8 *label, u8 *fig_buff)
-{
- u8 m;
-
- for (m = 0; m < 16; m++)
- *label++ = *fig_buff++;
- label--;
- for (; *label == 0x20 || *label == 0; label--)
- *label = 0;
-
- return fig_buff;
-}
-
-s32 fig1_ext00(struct fic_parser_matadata *fic_info,
- u8 *fig_buff,
- s32 length,
- u8 charset)
-{
- s32 ret = FICERR_SUCCESS;
- u16 tmp;
- struct tcc_ensemble *ensmbl;
-
- ensmbl = &fic_info->esmbl_start;
-
- tmp = (*fig_buff++) << 8;
- tmp |= (*fig_buff++);
-
- ensmbl->charset = charset;
- fig_buff = fig_put_in_label(ensmbl->label, fig_buff);
- ensmbl->char_flag = (*fig_buff++)<<8;
- ensmbl->char_flag |= *fig_buff;
-
- return ret;
-}
-
-/*
- * Program sService label
- */
-s32 fig1_ext01(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 length, u8 charset)
-{
- s32 ret = FICERR_SUCCESS;
- u16 sid;
- u8 i;
- struct tcc_ensemble *ensmbl;
- struct tcc_service *svc_start;
-
- ensmbl = &fic_info->esmbl_start;
- svc_start = fic_info->svc_start;
-
- if (svc_start == 0)
- return FICERR_FIG1_1_NO_SERVICEARRAY;
-
- sid = (*fig_buff++) << 8;
- sid |= (*fig_buff++);
- for (i = 0; i < ensmbl->num_svc; i++) {
- svc_start = fic_info->svc_start + i;
- if (sid == svc_start->sid)
- break;
- }
-
- if (i == ensmbl->num_svc) {
- ret = FICERR_FIG1_1_NOTREADY_SERVICE;
- return ret;
- }
-
- svc_start->charset = charset;
- fig_buff = fig_put_in_label(svc_start->svc_label, fig_buff);
- svc_start->char_flag = (*fig_buff++)<<8;
- svc_start->char_flag |= *fig_buff;
-
- return ret;
-}
-
-/*
- * sService Component label
- */
-s32 fig1_ext04(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 length, u8 charset)
-{
- s32 ret = FICERR_SUCCESS;
- u32 sid;
- u8 i, scids, pd;
- struct tcc_service_comp *svc_comp_start;
- struct tcc_ensemble *ensmbl;
-
- ensmbl = &fic_info->esmbl_start;
- svc_comp_start = fic_info->svc_comp_start;
-
- if (svc_comp_start == 0)
- return FICERR_FIG1_4_NO_SRVCOMPARRAY;
-
- /* If no service informaion, return */
- if (ensmbl->num_svc_comp == 0) {
- ret = FICERR_FIG1_4_NOTREADY_SRVCOMP;
- return ret;
- }
-
- pd = (*fig_buff & 0x80) ? 1 : 0;
- scids = *fig_buff++ & 0x0f;
- if (pd) {
- sid = (u32)(*fig_buff++ << 24);
- sid |= (u32)(*fig_buff++ << 16);
- sid |= (u32)(*fig_buff++ << 8);
- sid |= (u32)(*fig_buff++);
- } else {
- sid = (u32)(*fig_buff++ << 8);
- sid |= (u32)(*fig_buff++);
- }
-
- for (i = 0; i < ensmbl->num_svc_comp; i++) {
- svc_comp_start = fic_info->svc_comp_start + i;
- if (scids == svc_comp_start->scids &&
- sid == svc_comp_start->sid)
- break;
- }
- if (i == ensmbl->num_svc_comp) {
- ret = FICERR_FIG1_4_NOTREADY_SRVCOMP1;
- return ret;
- }
-
- svc_comp_start->charset = charset;
- fig_buff = fig_put_in_label(svc_comp_start->label, fig_buff);
-
- svc_comp_start->char_flag = (*fig_buff++) << 8;
- svc_comp_start->char_flag |= *fig_buff;
-
- return ret;
-}
-
-/*
- * Data sService label
- */
-s32 fig1_ext05(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 length, u8 charset)
-{
- s32 ret = FICERR_SUCCESS;
- u32 sid;
- u32 j;
- struct tcc_ensemble *ensmbl;
- struct tcc_service *svc_start;
-
- ensmbl = &fic_info->esmbl_start;
- svc_start = fic_info->svc_start;
-
- if (svc_start == 0)
- return FICERR_FIG1_5_NO_SERVICEARRAY;
-
- sid = (*fig_buff++) << 24;
- sid |= (*fig_buff++) << 16;
- sid |= (*fig_buff++) << 8;
- sid |= (*fig_buff++);
- for (j = 0; j < ensmbl->num_svc; j++) {
- svc_start = fic_info->svc_start + j;
- if (sid == svc_start->sid)
- break;
- }
-
- if (j == ensmbl->num_svc) {
- ret = FICERR_FIG1_5_NOTREADY_SERVICE;
- return ret;
- }
-
- svc_start->charset = charset;
- fig_buff = fig_put_in_label(svc_start->svc_label, fig_buff);
- svc_start->char_flag = (*fig_buff++) << 8;
- svc_start->char_flag |= *fig_buff;
-
- return ret;
-}
-
-s32 fig1_ext06(struct fic_parser_matadata *fic_info,
- u8 *fig_buff, s32 length, u8 charset)
-{
- s32 ret = FICERR_SUCCESS;
- s32 p_d;
- u32 sid;
- u8 scids;
- u8 xpad_appl_type;
- s32 i, empty_idx;
-
- struct tcc_ensemble *ensmbl;
- struct tcc_xpad_user_app *user_app_start;
-
- ensmbl = &fic_info->esmbl_start;
- user_app_start = fic_info->fig1_6_start;
-
- if (user_app_start == 0)
- return FICERR_FIG1_6_NO_XPADLABELARRAY;
-
- p_d = fig_buff[0] >> 7;
- scids = fig_buff[0] & 0x0f;
- fig_buff++;
- if (p_d) {
- sid = (fig_buff[0] << 24) | (fig_buff[1] << 16) |
- (fig_buff[2] << 8) | fig_buff[3];
- fig_buff += 4;
- } else {
- sid = (fig_buff[0] << 8) | fig_buff[1];
- fig_buff += 2;
- }
- xpad_appl_type = fig_buff[0] & 0x1f;
- fig_buff++;
-
- empty_idx = -1;
-
- for (i = 0; i < NUM_USER_APP; i++) {
- if (user_app_start[i].sid == sid &&
- user_app_start[i].scids == scids &&
- user_app_start[i].type == xpad_appl_type) {
- empty_idx = i;
- break;
- }
- if (empty_idx == -1 && user_app_start[i].sid == 0)
- empty_idx = i;
- }
-
- if (empty_idx != -1) {
- user_app_start[empty_idx].sid = sid;
- user_app_start[empty_idx].scids = scids;
- user_app_start[empty_idx].charset = charset;
- user_app_start[empty_idx].type = xpad_appl_type;
- fig_buff = fig_put_in_label(
- user_app_start[empty_idx].label, fig_buff);
- user_app_start[empty_idx].char_flag = (*fig_buff++) << 8;
- user_app_start[empty_idx].char_flag |= *fig_buff;
- }
-
- return ret;
-}
diff --git a/drivers/media/tdmb/tcc3170/src/tcpal_linux/Makefile b/drivers/media/tdmb/tcc3170/src/tcpal_linux/Makefile
deleted file mode 100644
index 70efca8..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcpal_linux/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-
-obj-y += tcpal_irq_handler.o
-obj-y += tcpal_debug.o
-obj-y += tcpal_queue.o
-obj-y += tcpal_linux.o
-obj-y += tcpal_io_cspi.o
-obj-y += tcpal_io_i2c.o
-
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcpal
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcbd_diagnosis
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcbd_stream_parser
-ccflags-y += -Idrivers/media/tdmb/tcc3170/inc/tcc_fic_decoder
-
-ccflags-y += -Idrivers/media/tdmb/
diff --git a/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_debug.c b/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_debug.c
deleted file mode 100644
index abe8ca7..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_debug.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * tcpal_debug.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-static s32 tcbd_spur_dbg;
-
-static s32 tcbd_spur_clock_config[5] = {0x60, 0x00, 0x0F, 0x02, 76800};
-static s32 clock_config_count = 5;
-
-static s32 tcbd_rom_from_fs;
-static char *tcbd_rom_path = "/tmp/tcc3170.rom";
-
-static u32 tcbd_mbox_rx[9] = {0, };
-static u32 tcbd_mbox_tx[9*10] = {0, };
-
-static s32 mbox_rx_data_len = 9;
-static s32 mbox_tx_data_len = 9*10;
-
-module_param(tcbd_rom_from_fs, int, 0664);
-module_param(tcbd_rom_path, charp, 0664);
-module_param(tcbd_spur_dbg, int, 0664);
-module_param_array(tcbd_spur_clock_config, int, &clock_config_count, 0664);
-module_param_array(tcbd_mbox_rx, int, &mbox_rx_data_len, 0664);
-module_param_array(tcbd_mbox_tx, int, &mbox_tx_data_len, 0664);
-
-void tcbd_debug_mbox_rx(u16 *_cmd, s32 *_cnt, u32 **_data)
-{
- *_cmd = tcbd_mbox_rx[0];
- *_cnt = tcbd_mbox_rx[1];
- *_data = &tcbd_mbox_rx[2];
-}
-
-void tcbd_debug_mbox_tx(u16 *_cmd, s32 *_cnt, u32 **_data)
-{
- s32 i;
-
- for (i = 0; i < 10; i++) {
- if (tcbd_mbox_tx[i * 9] != *_cmd)
- continue;
- *_cmd = tcbd_mbox_tx[i * 9 + 0];
- *_cnt = tcbd_mbox_tx[i * 9 + 1];
- *_data = &tcbd_mbox_tx[i * 9 + 2];
- break;
- }
-}
-
-s32 tcbd_debug_spur_dbg(void)
-{
- return tcbd_spur_dbg;
-}
-
-s32 tcbd_debug_rom_from_fs(void)
-{
- return tcbd_rom_from_fs;
-}
-
-s32 *tcbd_debug_spur_clk_cfg(void)
-{
- return tcbd_spur_clock_config;
-}
-
-char *tcbd_debug_rom_path(void)
-{
- return tcbd_rom_path;
-}
-
-u32 tcbd_debug_class =
- DEBUG_API_COMMON |
- /*DEBUG_DRV_PERI | */
- /*DEBUG_DRV_IO | */
- /*DEBUG_DRV_COMP | */
- /*DEBUG_DRV_RF | */
- /*DEBUG_TCPAL_OS | */
- /*DEBUG_TCPAL_CSPI | */
- /*DEBUG_TCPAL_I2C | */
- /*DEBUG_TCHAL | */
- /*DEBUG_STREAM_READ | */
- /*DEBUG_STREAM_PARSER |*/
- /*DEBUG_PARSING_PROC | */
- /*DEBUG_INTRRUPT | */
- DEBUG_INFO |
- DEBUG_ERROR;
-
-module_param(tcbd_debug_class, int, 0664);
-
diff --git a/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_io_cspi.c b/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_io_cspi.c
deleted file mode 100644
index b9ec89d..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_io_cspi.c
+++ /dev/null
@@ -1,492 +0,0 @@
-/*
- * tcpal_io_cspi.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-#include "tcbd_feature.h"
-#include "tcbd_api_common.h"
-#include "tcbd_drv_io.h"
-
-#include <linux/module.h>
-#include <linux/semaphore.h>
-#include <linux/delay.h>
-#include <linux/slab.h>
-#include <linux/interrupt.h>
-#include <linux/platform_device.h>
-#include <linux/spi/spi.h>
-
-#include <linux/io.h>
-#include <asm/mach-types.h>
-
-#include "tcbd_hal.h"
-
-#define SPICMD_VALID_BITS 36
-#define SPICMD_BUFF_LEN 8
-#define SPICMD_ACK 0x47
-
-#define SPI_SPEED_HZ 10000000
-#define SPI_BITS_PER_WORD 8
-
-#define DMA_MAX_SIZE (2048)
-
-#define CSPI_READ 0
-#define CSPI_WRITE 1
-
-#define CONTINUOUS_MODE 0
-#define FIXED_MODE 1
-
-#if defined(__CSPI_ONLY__)
-
-struct tcpal_cspi_data {
- spinlock_t spin_lock;
- u8 buff_dummy[DMA_MAX_SIZE+(SPICMD_BUFF_LEN*2)+1];
- u8 buff_rw[DMA_MAX_SIZE+(SPICMD_BUFF_LEN*2)+1];
- u8 buff_init_cmd[SPICMD_BUFF_LEN]; /*Set all bit to 1*/
- struct spi_device *spi_dev;
-};
-
-static struct tcbd_io_data *tcbd_cspi_io_funcs;
-static struct tcpal_cspi_data tcpal_cspi_io_data;
-
-static u8 tcpal_calc_crc8(u8 *data, s32 len)
-{
- u16 masking, carry;
- u16 crc;
- u32 i, loop, remain;
-
- crc = 0x0000;
- loop = len / 8;
- remain = len - loop * 8;
-
- for (i = 0; i < loop; i++) {
- masking = 1 << 8;
- while ((masking >>= 1)) {
- carry = crc & 0x40;
- crc <<= 1;
- if ((!carry) ^ (!(*data & masking)))
- crc ^= 0x9;
- crc &= 0x7f;
- }
- data++;
- }
-
- masking = 1 << 8;
- while (remain) {
- carry = crc & 0x40;
- crc <<= 1;
- masking >>= 1;
- if ((!carry) ^ (!(*data & masking)))
- crc ^= 0x9;
- crc &= 0x7f;
- remain--;
- }
-
- return (u8) crc;
-}
-
-
-#if defined(__USE_TC_CPU__)
-static struct spi_device *tcpal_find_cspi_device(void)
-{
- struct spi_master *spi_master;
- struct spi_device *spi_device;
- struct device *pdev;
- s8 buff[64];
-
- spi_master = spi_busnum_to_master(0);
- if (!spi_master) {
- tcbd_debug(DEBUG_ERROR,
- "spi_busnum_to_master(%d) returned NULL\n", 0);
- return NULL;
- }
-
- spi_device = spi_alloc_device(spi_master);
- if (!spi_device) {
- put_device(&spi_master->dev);
- tcbd_debug(DEBUG_TCPAL_CSPI,
- "spi_alloc_device() failed\n");
- return NULL;
- }
-
- /* specify a chip select line */
- spi_device->chip_select = 0;
-
- snprintf(buff, sizeof(buff), "%s.%u",
- dev_name(&spi_device->master->dev),
- spi_device->chip_select);
-
- pdev = bus_find_device_by_name(spi_device->dev.bus, NULL, buff);
- if (pdev)
- tcbd_debug(DEBUG_TCPAL_CSPI, "spi_device :0x%X\n",
- (u32)spi_device);
- put_device(&spi_master->dev);
- return spi_device;
-}
-#endif /*__USE_TC_CPU__*/
-
-static s32 tcpal_cspi_close(void)
-{
-#ifdef __USE_TC_CPU__
- struct tcpal_cspi_data *spi_data = &tcpal_cspi_io_data;
- spi_tcc_close(spi_data->spi_dev);
- spi_dev_put(spi_data->spi_dev);
- spi_data->spi_dev = NULL;
-#endif
-
- tcbd_debug(DEBUG_TCPAL_CSPI, "\n");
- return 0;
-}
-
-static s32 tcpal_cspi_open(void)
-{
- s32 ret = 0;
- struct tcpal_cspi_data *spi_data = &tcpal_cspi_io_data;
-
- memset(&tcpal_cspi_io_data, 0, sizeof(tcpal_cspi_io_data));
- memset(spi_data->buff_init_cmd, 0xFF, SPICMD_BUFF_LEN);
-
-#ifdef __USE_TC_CPU__
- spi_data->spi_dev = tcpal_find_cspi_device();
-
- if (spi_data->spi_dev) {
- ret = spi_tcc_open(spi_data->spi_dev);
- if (ret < 0)
- goto cspi_init_fail;
- spi_data->spi_dev->mode = SPI_MODE_0;
- spi_data->spi_dev->bits_per_word = SPI_BITS_PER_WORD;
- spi_data->spi_dev->max_speed_hz = SPI_SPEED_HZ;
- ret = spi_setup(spi_data->spi_dev);
- if (ret < 0) {
- tcbd_debug(DEBUG_ERROR,
- "spi_setup failed :%d\n", ret);
- goto cspi_init_fail;
- }
- }
-#else
- spi_data->spi_dev = spi_dmb;
-#endif /*__USE_TC_CPU__*/
-
- tcbd_debug(DEBUG_TCPAL_CSPI, "\n");
- return 0;
-
-cspi_init_fail:
- return -1;
-}
-
-static inline s32 tcpal_cspi_write_and_read(
- u8 *_buffin,
- u8 *_buffout,
- u32 _length)
-{
- struct spi_transfer xfer = {0, };
- struct spi_message msg;
- s32 ret = 0;
- struct tcpal_cspi_data *spi_data = &tcpal_cspi_io_data;
-
- if (!spi_data->spi_dev || !_length)
- return -EFAULT;
- if (!_buffin && !_buffout)
- return -EFAULT;
-
- xfer.tx_buf = _buffin;
- xfer.rx_buf = _buffout;
- xfer.len = _length;
-/* xfer.speed_hz = SPI_SPEED_HZ; */
-/* xfer.bits_per_word = SPI_BITS_PER_WORD; */
-
- spi_message_init(&msg);
- spi_message_add_tail(&xfer, &msg);
-
- ret = spi_sync(spi_data->spi_dev, &msg);
-
- if (ret < 0)
- return -TCERR_OS_DRIVER_FAIL;
-
- return 0;
-}
-
-static inline s32 tcpal_cspi_single_io(
- u8 _write_flag,
- u16 _reg_addr,
- u8 *_data)
-{
- s32 ret = 0;
- u8 buffer[SPICMD_BUFF_LEN+1];
- u8 buffout[SPICMD_BUFF_LEN+1];
- u8 crc;
-
- /* start bit(1) + chip_id(7) */
- buffer[0] = tcbd_cspi_io_funcs->chip_addr;
- /* mode(1) + rw(1) + fix(1) + addr(5) */
- buffer[1] = (0 << 7) | (_write_flag << 6) | (1 << 5) |
- ((_reg_addr & 0x7c0) >> 6);
- /* addr(6bit) + NULL(2bit) */
- buffer[2] = (_reg_addr & 0x03f) << 2 | 0x0;
-
- if (_write_flag)
- buffer[3] = _data[0]; /* write */
- else
- buffer[3] = 0x0; /* null(8) */
-
- buffer[4] = 0x00;
-
- crc = tcpal_calc_crc8(buffer, 36);
- buffer[4] = 0x00 | ((crc & 0x7f) >> 3); /* null(4) + crc(4) */
- buffer[5] = ((crc & 0x07) << 5) | 0x0f; /* crc(3) + end bit(5) */
- buffer[6] = 0xff;
- buffer[7] = 0xff;
-
- ret = tcpal_cspi_write_and_read(buffer, buffout, SPICMD_BUFF_LEN);
- if (ret < 0)
- return ret;
-
- if (buffout[7] != SPICMD_ACK) { /* ack */
- tcbd_debug(DEBUG_ERROR,
- "# Single %s ACK error chip_addr:0x%X, regAddr:0x%X\n",
- _write_flag ? "Write" : "Read",
- tcbd_cspi_io_funcs->chip_addr, _reg_addr);
- tcbd_debug(DEBUG_ERROR,
- "# [%02x][%02x][%02x][%02x][%02x]"
- "[%02x][%02x][%02x]//[%02x][%02x][%02x]\n",
- buffer[0], buffer[1], buffer[2],
- buffer[3], buffer[4], buffer[5],
- buffer[6], buffer[7],
- buffout[6], buffout[7], buffout[8]);
- return -TCERR_ACK_FAIL;
- }
-
- if (_write_flag == 0)
- *_data = buffout[6];
-
- return 0;
-}
-
-static inline s32 tcpal_cspi_burst_io(
- u8 _write_flag,
- u16 _reg_addr,
- u8 *_data,
- s32 _size,
- u8 _fixedMode)
-{
- s32 ret = 0;
- struct tcpal_cspi_data *spi_data = &tcpal_cspi_io_data;
- u8 crc;
- u8 *buffer;
- u8 *buffout;
-
- if (_write_flag == 0) {
- buffer = spi_data->buff_dummy;
- buffout = spi_data->buff_rw;
- } else {
- memcpy(spi_data->buff_rw+SPICMD_BUFF_LEN, _data, _size);
- buffer = spi_data->buff_rw;
- buffout = spi_data->buff_dummy;
- }
- memset(buffer+SPICMD_BUFF_LEN+_size, 0xFF, SPICMD_BUFF_LEN);
-
- if (_size > DMA_MAX_SIZE)
- return -TCERR_INVALID_ARG;
-
- /* MAX 16KB (Output buffer max size 7KB) (LENGTH + 1 Byte) */
- _size--;
-
- /* start bit(1) + chip_id(7) */
- buffer[0] = tcbd_cspi_io_funcs->chip_addr;
- /* mode(1) + rw(1) + fix(1) + addr(5) */
- buffer[1] = 1 << 7 | _write_flag << 6 | _fixedMode << 5 |
- ((_reg_addr & 0x7c0) >> 6);
- /* addr(6bit) + length(2bit) */
- buffer[2] = (_reg_addr & 0x03f) << 2 | ((_size & 0x3000) >> 12);
- /* length(8bit) */
- buffer[3] = (_size & 0xff0) >> 4;
-
- buffer[4] = (_size & 0xf) << 4;
- crc = tcpal_calc_crc8(buffer, 36);
- /* length(4) + crc(4) */
- buffer[4] = ((_size & 0xf) << 4) | ((crc & 0x7f) >> 3);
- /* crc(3) + end bit(5) */
- buffer[5] = ((crc & 0x07) << 5) | 0x0f;
- buffer[6] = 0xff;
- buffer[7] = 0xff;
-
- _size++;
-
- ret = tcpal_cspi_write_and_read(
- buffer, buffout, _size+SPICMD_BUFF_LEN*2);
- if (ret < 0)
- return ret;
-
- if (buffout[7] != SPICMD_ACK) {/* ack */
- tcbd_debug(DEBUG_ERROR,
- "# Burst %s ACK error, chip_addr:0x%X, "
- "reg_addr:0x%X, size:%d, mode:%d\n",
- _write_flag ? "Write" : "Read",
- tcbd_cspi_io_funcs->chip_addr,
- _reg_addr, _size, _fixedMode);
- tcbd_debug(DEBUG_ERROR,
- "# [%02x][%02x][%02x][%02x][%02x]"
- "[02%x][02%x][%02x]//[%02x][%02x][%02x]\n",
- buffer[0], buffer[1], buffer[2],
- buffer[3], buffer[4], buffer[5],
- buffer[6], buffer[7],
- buffout[6], buffout[7], buffout[8]);
- return -TCERR_ACK_FAIL;
- }
-
- if (_write_flag == 0)
- memcpy(_data, buffout + SPICMD_BUFF_LEN, _size);
-
- return 0;
-}
-
-static inline s32 tcpal_cspi_reg_read_burst(
- u8 _reg_addr,
- u8 *_data,
- s32 _size,
- u8 mode)
-{
- u32 i;
- u32 cmax, cremain;
- s32 ret;
-
- cmax = _size / DMA_MAX_SIZE;
- cremain = _size % DMA_MAX_SIZE;
-
- for (i = 0; i < cmax; i++) {
- ret = tcpal_cspi_burst_io(
- CSPI_READ,
- _reg_addr,
- &_data[i * DMA_MAX_SIZE],
- DMA_MAX_SIZE,
- mode);
- if (ret < 0)
- return ret;
- }
-
- if (cremain != 0) {
- ret = tcpal_cspi_burst_io(
- CSPI_READ,
- _reg_addr,
- &_data[i * DMA_MAX_SIZE],
- cremain,
- mode);
- if (ret < 0)
- return ret;
- }
- return 0;
-}
-
-static inline s32 tcpal_cspi_reg_write_burst(
- u8 _reg_addr,
- u8 *_data,
- s32 _size,
- u8 mode)
-{
- u32 i;
- u32 cmax, cremain;
- s32 ret;
-
- cmax = _size / DMA_MAX_SIZE;
- cremain = _size % DMA_MAX_SIZE;
-
- for (i = 0; i < cmax; i++) {
- ret = tcpal_cspi_burst_io(
- CSPI_WRITE,
- _reg_addr,
- &_data[i * DMA_MAX_SIZE],
- DMA_MAX_SIZE,
- mode);
- if (ret < 0)
- return ret;
- }
-
- if (cremain) {
- ret = tcpal_cspi_burst_io(
- CSPI_WRITE,
- _reg_addr,
- &_data[i * DMA_MAX_SIZE],
- cremain,
- mode);
- if (ret < 0)
- return ret;
- }
-
- return 0;
-}
-
-static s32 tcpal_cspi_reg_read(u8 _reg_addr, u8 *_data)
-{
- return tcpal_cspi_single_io(CSPI_READ, _reg_addr, _data);
-}
-
-static s32 tcpal_cspi_reg_write(u8 _reg_addr, u8 _data)
-{
- return tcpal_cspi_single_io(CSPI_WRITE, _reg_addr, &_data);
-}
-
-static s32 tcpal_cspi_reg_read_burst_cont(
- u8 _reg_addr, u8 *_data, s32 _size)
-{
- return tcpal_cspi_reg_read_burst(
- _reg_addr, _data, _size, CONTINUOUS_MODE);
-}
-
-static s32 tcpal_cspi_reg_write_burst_cont(
- u8 _reg_addr, u8 *_data, s32 _size)
-{
- return tcpal_cspi_reg_write_burst(
- _reg_addr, _data, _size, CONTINUOUS_MODE);
-}
-
-static s32 tcpal_cspi_reg_read_burst_fix(
- u8 _reg_addr, u8 *_data, s32 _size)
-{
- return tcpal_cspi_reg_read_burst(
- _reg_addr, _data, _size, FIXED_MODE);
-}
-
-static s32 tcpal_cspi_reg_write_burst_fix(
- u8 _reg_addr, u8 *_data, s32 _size)
-{
- return tcpal_cspi_reg_write_burst(
- _reg_addr, _data, _size, FIXED_MODE);
-}
-
-void tcpal_set_cspi_io_function(void)
-{
- tcbd_cspi_io_funcs = tcbd_get_io_struct();
-
- tcbd_cspi_io_funcs->open = tcpal_cspi_open;
- tcbd_cspi_io_funcs->close = tcpal_cspi_close;
- tcbd_cspi_io_funcs->reg_write = tcpal_cspi_reg_write;
- tcbd_cspi_io_funcs->reg_read = tcpal_cspi_reg_read;
- tcbd_cspi_io_funcs->reg_write_burst_cont =
- tcpal_cspi_reg_write_burst_cont;
- tcbd_cspi_io_funcs->reg_read_burst_cont =
- tcpal_cspi_reg_read_burst_cont;
- tcbd_cspi_io_funcs->reg_write_burst_fix =
- tcpal_cspi_reg_write_burst_fix;
- tcbd_cspi_io_funcs->reg_read_burst_fix =
- tcpal_cspi_reg_read_burst_fix;
-}
-#endif /*__CSPI_ONLY__*/
diff --git a/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_io_i2c.c b/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_io_i2c.c
deleted file mode 100644
index 679c157..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_io_i2c.c
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * tcpal_io_i2c.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-#include "tcbd_feature.h"
-#include "tcbd_api_common.h"
-#include "tcbd_drv_io.h"
-
-#include <linux/module.h>
-#include <linux/semaphore.h>
-#include <linux/delay.h>
-#include <linux/slab.h>
-#include <linux/interrupt.h>
-#include <linux/i2c.h>
-
-#include <linux/io.h>
-#include <asm/mach-types.h>
-
-#define MAX_I2C_BURST 512
-#define Bit7 0x00000080
-
-#define I2C_BUS 1
-#define I2C_ADDR (0xA0>>1)
-
-#if defined(__I2C_STS__)
-
-static u8 static_buffer_i2c[MAX_I2C_BURST+4];
-static struct i2c_client *tcpal_i2c_client;
-
-static const struct i2c_device_id tcpal_i2c_id[] = {
- {"tc317x", 0},
-};
-
-static s32 tcpal_i2c_probe(
- struct i2c_client *i2c, const struct i2c_device_id *id)
-{
- s32 ret = 0;
- tcpal_i2c_client = i2c;
- tcbd_debug(DEBUG_TCPAL_I2C, "tcpal_i2c_client : %p\n", i2c);
- return ret;
-}
-
-static s32 tcpal_i2c_remove(struct i2c_client *client)
-{
- tcbd_debug(DEBUG_TCPAL_I2C, "tcpal_i2c_client : %p\n", client);
- return 0;
-}
-
-MODULE_DEVICE_TABLE(i2c, tcpal_i2c_id);
-
-static struct i2c_driver tcpal_i2c_driver = {
- .driver = {
- .name = "tc317x",
- .owner = THIS_MODULE,
- },
- .probe = tcpal_i2c_probe,
- .remove = tcpal_i2c_remove,
- .id_table = tcpal_i2c_id,
-};
-
-static s32 tcpal_i2c_add_device(void)
-{
- s32 ret;
- struct i2c_board_info info;
- struct i2c_adapter *adapter;
- struct i2c_client *client;
-
- ret = i2c_add_driver(&tcpal_i2c_driver);
- if (ret < 0) {
- tcbd_debug(DEBUG_TCPAL_I2C, "can't add i2c driver\n");
- return ret;
- }
-
- memset(&info, 0, sizeof(struct i2c_board_info));
- info.addr = I2C_ADDR;
- strlcpy(info.type, "tc317x", I2C_NAME_SIZE);
-
- adapter = i2c_get_adapter(I2C_BUS);
- if (!adapter) {
- tcbd_debug(DEBUG_TCPAL_I2C,
- "can't get i2c adapter :%d\n", I2C_BUS);
- goto err_driver;
- }
-
- client = i2c_new_device(adapter, &info);
- i2c_put_adapter(adapter);
- if (!client) {
- tcbd_debug(DEBUG_TCPAL_I2C,
- "can't add i2c device at 0x%X\n", info.addr);
- goto err_driver;
- }
-
- return 0;
-
-err_driver:
- i2c_del_driver(&tcpal_i2c_driver);
- return -ENODEV;
-}
-
-static s32 tcpal_i2c_close(void)
-{
- i2c_unregister_device(tcpal_i2c_client);
- i2c_del_driver(&tcpal_i2c_driver);
- return 0;
-}
-
-static s32 tcpal_i2c_open(void)
-{
- return tcpal_i2c_add_device();
-}
-
-static s32 tcpal_i2c_reg_read(
- u8 _reg_addr, u8 *_data)
-{
- s32 ret = 0;
-
- if (!tcpal_i2c_client)
- return -TCERR_OS_DRIVER_FAIL;
-
- ret = i2c_master_send(tcpal_i2c_client, &_reg_addr, 1);
- ret |= i2c_master_recv(tcpal_i2c_client, _data, 1);
- if (ret < 0) {
- tcbd_debug(DEBUG_TCPAL_I2C,
- "I2C read error %d\n", ret);
- return -TCERR_OS_DRIVER_FAIL;
- }
- return 0;
-}
-
-static s32 tcpal_i2c_reg_write(u8 _reg_addr, u8 _data)
-{
- s32 ret = 0;
- u8 buf[2];
-
- if (!tcpal_i2c_client)
- return -TCERR_OS_DRIVER_FAIL;
-
- buf[0] = _reg_addr;
- buf[1] = _data;
-
- ret = i2c_master_send(tcpal_i2c_client, buf, 2);
-
- if (ret < 0)
- return -TCERR_OS_DRIVER_FAIL;
-
- return 0;
-}
-
-static inline s32 tcpal_i2c_reg_read_burst(
- u8 _reg_addr, u8 *_data, s32 _size)
-{
- s32 i, ret = 0;
- s32 num_chunk, remain, sent, recvd;
-
- num_chunk = _size / MAX_I2C_BURST;
- remain = _size % MAX_I2C_BURST;
-
- if (!tcpal_i2c_client)
- return -TCERR_OS_DRIVER_FAIL;
-
- for (i = 0; i < num_chunk; i++) {
- sent = i2c_master_send(tcpal_i2c_client, &_reg_addr, 1);
- if (sent < 1) {
- tcbd_debug(DEBUG_TCPAL_I2C,
- "I2C Multi read 8 Addr Error!! %d\n", sent);
- return -TCERR_OS_DRIVER_FAIL;
- }
-
- recvd = i2c_master_recv(
- tcpal_i2c_client,
- &_data[i*MAX_I2C_BURST],
- MAX_I2C_BURST);
- if (recvd < 0) {
- tcbd_debug(DEBUG_TCPAL_I2C,
- "I2C Multi read 8 data Error!! %d\n", recvd);
- return -TCERR_OS_DRIVER_FAIL;
- }
- }
-
- if (remain) {
- sent = i2c_master_send(tcpal_i2c_client, &_reg_addr, 1);
- if (sent < 1) {
- tcbd_debug(DEBUG_TCPAL_I2C,
- "I2C Multi read 8 Addr Error!!, %d\n", sent);
- return -TCERR_OS_DRIVER_FAIL;
- }
- ret = i2c_master_recv(
- tcpal_i2c_client,
- &_data[num_chunk * MAX_I2C_BURST],
- remain);
- if (ret < 0) {
- tcbd_debug(DEBUG_TCPAL_I2C,
- "I2C Multi read 8 data Error!!\n");
- return -TCERR_OS_DRIVER_FAIL;
- }
- }
-
- return 0;
-}
-
-static inline s32 tcpal_i2c_reg_write_burst(
- u8 _reg_addr, u8 *_data, s32 _size)
-{
- s32 ret = 0;
- s32 num_chunk, remain, sent;
- s32 i;
-
- if (!tcpal_i2c_client)
- return -TCERR_OS_DRIVER_FAIL;
-
- num_chunk = _size/MAX_I2C_BURST;
- remain = _size%MAX_I2C_BURST;
-
- static_buffer_i2c[0] = _reg_addr;
- for (i = 0; i < num_chunk; i++) {
- memcpy(&static_buffer_i2c[1], &_data[i*MAX_I2C_BURST],
- MAX_I2C_BURST);
- sent = i2c_master_send(
- tcpal_i2c_client,
- static_buffer_i2c,
- MAX_I2C_BURST+1);
- if (ret < 0 || sent < 1) {
- tcbd_debug(DEBUG_TCPAL_I2C,
- "I2C write error %d\n", ret);
- return -TCERR_OS_DRIVER_FAIL;
- }
- }
-
- if (remain) {
- memcpy(&static_buffer_i2c[1],
- &_data[num_chunk * MAX_I2C_BURST],
- remain);
- ret = i2c_master_send(
- tcpal_i2c_client,
- static_buffer_i2c,
- remain+1);
- if (ret < 1) {
- tcbd_debug(DEBUG_TCPAL_I2C, "I2C write error!\n");
- return -TCERR_OS_DRIVER_FAIL;
- }
- }
-
- return 0;
-}
-
-static s32 tcpal_i2c_reg_read_burst_fix(
- u8 _reg_addr, u8 *_data, s32 _size)
-{
- return tcpal_i2c_reg_read_burst(_reg_addr|Bit7, _data, _size);
-}
-
-static s32 tcpal_i2c_reg_write_burst_fix(
- u8 _reg_addr, u8 *_data, s32 _size)
-{
- return tcpal_i2c_reg_write_burst(_reg_addr|Bit7, _data, _size);
-}
-
-static s32 tcpal_i2c_reg_read_burst_cont(
- u8 _reg_addr, u8 *_data, s32 _size)
-{
- return tcpal_i2c_reg_read_burst(_reg_addr, _data, _size);
-}
-
-static s32 tcpal_i2c_reg_write_burst_cont(
- u8 _reg_addr, u8 *_data, s32 _size)
-{
- return tcpal_i2c_reg_write_burst(_reg_addr, _data, _size);
-}
-
-void tcpal_set_i2c_io_function(void)
-{
- struct tcbd_io_data *tcbd_i2c_io_funcs = tcbd_get_io_struct();
-
- tcbd_i2c_io_funcs->open = tcpal_i2c_open;
- tcbd_i2c_io_funcs->close = tcpal_i2c_close;
- tcbd_i2c_io_funcs->reg_write = tcpal_i2c_reg_write;
- tcbd_i2c_io_funcs->reg_read = tcpal_i2c_reg_read;
- tcbd_i2c_io_funcs->reg_write_burst_cont =
- tcpal_i2c_reg_write_burst_cont;
- tcbd_i2c_io_funcs->reg_read_burst_cont =
- tcpal_i2c_reg_read_burst_cont;
- tcbd_i2c_io_funcs->reg_write_burst_fix =
- tcpal_i2c_reg_write_burst_fix;
- tcbd_i2c_io_funcs->reg_read_burst_fix =
- tcpal_i2c_reg_read_burst_fix;
-}
-
-#endif /*__I2C_STS__ */
diff --git a/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_irq_handler.c b/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_irq_handler.c
deleted file mode 100644
index b6cadaa..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_irq_handler.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * tcpal_irq_handler.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include <linux/module.h>
-#include <linux/interrupt.h>
-#include <linux/workqueue.h>
-#include <linux/io.h>
-#include <asm/mach-types.h>
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-#include "tcbd_feature.h"
-#include "tcbd_api_common.h"
-#include "tcbd_drv_ip.h"
-
-#include "tcbd_stream_parser.h"
-#include "tcbd_diagnosis.h"
-#include "tcc_fic_decoder.h"
-#include "tcbd_hal.h"
-
-struct tcbd_irq_data {
- struct work_struct work;
- struct workqueue_struct *work_queue;
- struct tcbd_device *device;
- u64 start_tick;
- s32 tcbd_irq;
- s32 is_irq_en;
-};
-
-static struct tcbd_irq_data tcbd_irq_handler_data;
-
-#if defined(__CSPI_ONLY__)
-static inline void tcpal_split_stream(struct tcbd_irq_data *irq_data)
-{
- s32 size, ret = 0;
- s8 irq_status;
- s8 irq_error;
- static u8 buff_read[TCBD_MAX_THRESHOLD*2];
- struct tcbd_device *device = irq_data->device;
-
- ret = tcbd_read_irq_status(device, &irq_status, &irq_error);
- ret |= tcbd_clear_irq(device, irq_status);
-
- ret |= tcbd_read_stream(device, buff_read, &size);
- if (ret == 0 && !irq_error)
- tcbd_split_stream(0, buff_read, size);
- else {
- tcbd_debug(DEBUG_ERROR, "### buffer is full, skip the data "
- "(ret:%d, status=0x%02X, error=0x%02X, %d) ###\n",
- ret, irq_status, irq_error,
- (s32)tcpal_diff_time(irq_data->start_tick));
-
- tcbd_init_stream_data_config(device,
- ENABLE_CMD_FIFO,
- device->selected_buff,
- device->intr_threshold);
- /*tcbd_reset_ip(device, TCBD_SYS_COMP_ALL, TCBD_SYS_COMP_EP);*/
- tcbd_init_parser(0, NULL);
- }
-}
-
-static void tcpal_work_parse_stream(struct work_struct *_param)
-{
- u64 diff = tcpal_diff_time(tcbd_irq_handler_data.start_tick);
- struct tcbd_irq_data *irq_data =
- container_of(_param, struct tcbd_irq_data, work);
-
- /* for checking delay of workqueue */
- if (diff > 10)
- tcbd_debug(DEBUG_INTRRUPT, "diff work start and process :%d\n",
- (s32)diff);
- tcpal_split_stream(irq_data);
- enable_irq(irq_data->tcbd_irq);
-}
-
-
-s32 start_tune;
-static s32 tcpal_irq_stream_callback(
- s32 _dev_idx,
- u8 *_stream,
- s32 _size,
- u8 _subch_id,
- u8 _type)
-{
- /*static u64 time = 0;*/
- /*struct tcbd_status_data status;*/
- s32 ret, i = 0;
-
- switch (_type) {
- case 0: /*MSC*/
- /* write your own code!!*/
- case 1: /*FIC*/
- /* write your own code!!*/
- if (!start_tune) /* set by tune_frequency*/
- goto skip_fic_parse;
-
- for (i = 0; i < _size / TCBD_FIC_SIZE; i++) {
- ret = tcc_fic_run_decoder(_stream + (i * TCBD_FIC_SIZE),
- MAX_FIC_SIZE);
- if (ret > 0) {
- tcc_fic_get_ensbl_info(1);
- start_tune = 0;
- tcc_fic_parser_init();
- }
- }
- /*tcbd_read_signal_info(tcbd_irq_handler_data.device, &status);
- tcbd_debug(DEBUG_ERROR,
- "PCBER:%d, SNR:%d, RSSI:%d, VBER:%d, TSPER:%d\n",
- status.pcber, status.snr, status.rssi,
- status.vber, status.tsper);*/
- /*if (tcpal_diff_time(time) > 1000) {
- tcbd_check_dsp_status(tcbd_irq_handler_data.device);
- time = tcpal_get_time();
- }*/
-skip_fic_parse:
- /*tcbd_enqueue_data(_stream, _size, _subch_id, _type);*/
- break;
- case 2: /*STATUS*/
- tcbd_debug(DEBUG_STATUS, "status size:%d\n", _size);
- tcbd_update_status(_stream, _size, NULL);
- break;
- default:
- break;
- }
- return 0;
-}
-#endif /*__CSPI_ONLY__*/
-
-#if defined(__I2C_STS__)
-static void tcpal_work_read_fic(struct work_struct *_param)
-{
- s32 size = TCBD_FIC_SIZE, ret;
- u8 buff[TCBD_FIC_SIZE];
- u64 diff;
- struct tcbd_irq_data *irq_data = container_of(_param,
- struct tcbd_irq_data, work);
- struct tcbd_device *device = irq_data->device;
-
- diff = tcpal_diff_time(irq_data->start_tick);
- tcbd_debug(DEBUG_INTRRUPT, "work delay :%d\n", (u32)diff);
-
- ret = tcbd_read_fic_data(device, buff, size);
- if (ret < 0) {
- tcbd_debug(DEBUG_ERROR, "failed to read fic! %d\n", ret);
- goto exit_work;
- }
-
- tcbd_enqueue_data(buff, size, 0, 1);
- if (!start_tune) /* set by tune_frequency*/
- goto exit_work;
-
- ret = tcc_fic_run_decoder(buff, MAX_FIC_SIZE);
- if (ret > 0) {
- tcc_fic_get_ensbl_info(1);
- start_tune = 0;
- tcc_fic_parser_init();
- }
-exit_work:
- enable_irq(irq_data->tcbd_irq);
-}
-#endif /*__I2C_STS__*/
-
-static irqreturn_t tcpal_irq_handler(s32 _irq, void *_param)
-{
- struct tcbd_irq_data *irq_data = (struct tcbd_irq_data *)_param;
- struct tcbd_device *device = irq_data->device;
-
- disable_irq_nosync(irq_data->tcbd_irq);
- if (device->is_pal_irq_en) {
- irq_data->start_tick = tcpal_get_time();
- queue_work(irq_data->work_queue, &irq_data->work);
- tcbd_debug(DEBUG_INTRRUPT, "\n");
- }
- return IRQ_HANDLED;
-}
-
-s32 tcpal_irq_register_handler(void *_device)
-{
- s32 ret;
-
- tcbd_irq_handler_data.work_queue =
- create_singlethread_workqueue("tdmb_work");
- tcbd_irq_handler_data.device = (struct tcbd_device *)_device;
-#if defined(__USE_TC_CPU__)
- tcbd_irq_handler_data.tcbd_irq = IRQ_TC317X;
-#endif /*__USE_TC_CPU__*/
-
-#if defined(__I2C_STS__)
- INIT_WORK(&tcbd_irq_handler_data.work, tcpal_work_read_fic);
-#elif defined(__CSPI_ONLY__)
- INIT_WORK(&tcbd_irq_handler_data.work, tcpal_work_parse_stream);
- tcbd_init_parser(0, tcpal_irq_stream_callback);
-#endif /*__CSPI_ONLY__*/
-
- ret = request_irq(tcbd_irq_handler_data.tcbd_irq, tcpal_irq_handler,
- IRQF_TRIGGER_FALLING | IRQF_DISABLED,
- "tdmb_irq", &tcbd_irq_handler_data);
- tcbd_debug(DEBUG_INTRRUPT, "request_irq : %d\n", (int)ret);
- return ret;
-}
-
-s32 tcpal_irq_unregister_handler(void)
-{
- disable_irq(tcbd_irq_handler_data.tcbd_irq);
- free_irq(tcbd_irq_handler_data.tcbd_irq, NULL);
- flush_workqueue(tcbd_irq_handler_data.work_queue);
- destroy_workqueue(tcbd_irq_handler_data.work_queue);
- return 0;
-}
-
-s32 tcpal_irq_enable(void)
-{
-#if defined(__CSPI_ONLY__)
- tcbd_init_parser(0, NULL);
-#endif /*__CSPI_ONLY__*/
- tcbd_debug(DEBUG_INTRRUPT, "\n");
- /* enable_irq(tcbd_irq_handler_data.tcbd_irq); */
- return 0;
-}
-
-s32 tcpal_irq_disable(void)
-{
- tcbd_debug(DEBUG_INTRRUPT, "\n");
- /* disable_irq(tcbd_irq_handler_data.tcbd_irq); */
- return 0;
-}
diff --git a/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_linux.c b/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_linux.c
deleted file mode 100644
index 2647484..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_linux.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * tcpal_linux.c
- *
- * Author: <linux@telechips.com>
- * Description: Telechips broadcast driver
- *
- * Copyright (c) Telechips, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-#include <linux/module.h>
-#include <linux/semaphore.h>
-#include <linux/delay.h>
-#include <linux/slab.h>
-#include <linux/interrupt.h>
-
-#include <linux/io.h>
-#include <asm/mach-types.h>
-
-u64 tcpal_get_time(void)
-{
- u64 tick;
- struct timeval tv;
-
- do_gettimeofday(&tv);
- tick = (u64)tv.tv_sec*1000 + tv.tv_usec/1000;
-
- return tick;
-}
-
-u64 tcpal_diff_time(u64 _start_time)
-{
- u64 interval;
- u64 curr_time = tcpal_get_time();
-
- if (curr_time > _start_time)
- interval = curr_time - _start_time;
- else
- interval = (TCPAL_MAX_TIMECNT - _start_time) + curr_time + 1;
-
- return interval;
-}
-
-void tcpal_msleep(s32 _ms)
-{
- msleep(_ms);
-}
-
-void tcpal_usleep(s32 _us)
-{
- struct timeval pre_tv, tv;
- s32 diff;
-
- do_gettimeofday(&pre_tv);
- do {
- do_gettimeofday(&tv);
- if (tv.tv_usec > pre_tv.tv_usec)
- diff = tv.tv_usec - pre_tv.tv_usec;
- else
- diff = (LONG_MAX - pre_tv.tv_usec) + tv.tv_usec;
- } while (diff < _us);
-}
-
-void *tcpal_malloc(u32 _size)
-{
- return kmalloc(_size, GFP_KERNEL);
-}
-
-void tcpal_free(void *_ptr)
-{
- kfree(_ptr);
-}
-
-s32 tcpal_create_lock(
- u32 *_semaphore,
- char *_name,
- u32 _initialCount)
-{
- struct mutex *lock =
- (struct mutex *)tcpal_malloc(sizeof(struct mutex));
- tcbd_debug(DEBUG_TCPAL_OS, "\n");
- mutex_init(lock);
-
- *_semaphore = (u32)lock;
- return 0;
-}
-
-s32 tcpal_destroy_lock(u32 *_semaphore)
-{
- struct mutex *lock = (struct mutex *)*_semaphore;
-
- if (lock == NULL)
- return -1;
-
- tcpal_free(lock);
- *_semaphore = 0;
- tcbd_debug(DEBUG_TCPAL_OS, "\n");
- return 0;
-}
-
-s32 tcpal_lock(u32 *_semaphore)
-{
- struct mutex *lock = (struct mutex *)*_semaphore;
-
- if (lock == NULL) {
- tcbd_debug(DEBUG_ERROR, "\n");
- return -1;
- }
- mutex_lock(lock);
- return 0;
-}
-
-s32 tcpal_unlock(u32 *_semaphore)
-{
- struct mutex *lock = (struct mutex *)*_semaphore;
-
- if (lock == NULL) {
- tcbd_debug(DEBUG_ERROR, "\n");
- return -1;
- }
- mutex_unlock(lock);
- return 0;
-}
diff --git a/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_queue.c b/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_queue.c
deleted file mode 100644
index 3677a58..0000000
--- a/drivers/media/tdmb/tcc3170/src/tcpal_linux/tcpal_queue.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
-*
-* File name : tcpal_queue.c
-*
-* Description : tdmb driver
-*
-* Copyright (C) (2012, Telechips. )
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-
-#include "tcpal_os.h"
-#include "tcpal_debug.h"
-
-#include "tcbd_feature.h"
-#include "tcpal_queue.h"
-
-s32 tcbd_queue_is_full(struct tcbd_queue *_queue)
-{
- if (_queue->front == ((_queue->rear+1)%_queue->qsize))
- return 1;
- return 0;
-}
-
-s32 tcbd_queue_is_empty(struct tcbd_queue *_queue)
-{
- if (_queue->front == _queue->rear)
- return 1;
- return 0;
-}
-
-void tcbd_init_queue(
- struct tcbd_queue *_queue, u8* _buffer, s32 _buff_size)
-{
- memset((void *)_queue->q, 0,
- sizeof(struct tcbd_queue_item) * TCBD_QUEUE_SIZE);
- _queue->front = 0;
- _queue->rear = 0;
- _queue->qsize = TCBD_QUEUE_SIZE;
- _queue->buff_size = _buff_size;
- _queue->global_buffer = _buffer;
- _queue->pointer = 0;
-
- tcpal_create_lock(&_queue->sem, "TcbdQueue", 0);
-}
-
-void tcbd_deinit_queue(struct tcbd_queue *_queue)
-{
- _queue->front = 0;
- _queue->rear = 0;
- _queue->qsize = 0;
- _queue->buff_size = 0;
- tcpal_destroy_lock(&_queue->sem);
-}
-
-void tcbd_reset_queue(struct tcbd_queue *_queue)
-{
- _queue->front = 0;
- _queue->rear = 0;
- _queue->pointer = 0;
- memset(_queue->q, 0,
- sizeof(struct tcbd_queue_item)*_queue->qsize);
-}
-
-s32 tcbd_enqueue(
- struct tcbd_queue *_queue, u8 *_chunk, s32 _size,
- u8 _subch_id, s32 _type)
-{
- if (_chunk == NULL || _size <= 0) {
- tcbd_debug(DEBUG_ERROR, "Invalid argument!!\n");
- return -1;
- }
-
- tcpal_lock(&_queue->sem);
-
- if (tcbd_queue_is_full(_queue)) {
- tcbd_debug(DEBUG_ERROR, "Queue Full!!\n");
- _queue->pointer = 0;
- }
-
- if (_queue->q[_queue->rear].buffer <
- _queue->q[_queue->front].buffer) {
- u32 next_pos_rear =
- (u32)_queue->q[_queue->rear].buffer + _size;
- u32 curr_pos_front =
- (u32)_queue->q[_queue->front].buffer;
-
- if (next_pos_rear > curr_pos_front) {
- tcbd_debug(DEBUG_ERROR, "Buffer overflow!!\n");
- tcbd_reset_queue(_queue);
- tcpal_unlock(&_queue->sem);
- return -1;
- }
- }
-
- _queue->q[_queue->rear].buffer =
- _queue->global_buffer + _queue->pointer;
-
- if (_queue->pointer + _size >= _queue->buff_size)
- _queue->pointer = 0;
- else
- _queue->pointer += _size;
- memcpy(_queue->q[_queue->rear].buffer, _chunk, _size);
- _queue->q[_queue->rear].size = _size;
- _queue->q[_queue->rear].type = _type;
- _queue->q[_queue->rear].subch_id = _subch_id;
-
- _queue->rear = (_queue->rear + 1) % _queue->qsize;
- tcpal_unlock(&_queue->sem);
- return 0;
-}
-
-s32 tcbd_dequeue(
- struct tcbd_queue *_queue, u8 *_chunk, s32 *_size,
- u8 *_subch_id, s32 *_type)
-{
- tcpal_lock(&_queue->sem);
- if (tcbd_queue_is_empty(_queue)) {
- tcbd_debug(0, "Queue Empty!!\n");
- tcpal_unlock(&_queue->sem);
- return -1;
- }
-
- if (_queue->q[_queue->front].size > *_size) {
- tcbd_debug(DEBUG_ERROR,
- "insufficient buffer!! size:%d, qsize:%d\n",
- *_size, _queue->q[_queue->front].size);
-
- tcpal_unlock(&_queue->sem);
- return -1;
- }
-
- memcpy(_chunk, _queue->q[_queue->front].buffer,
- _queue->q[_queue->front].size);
-
- *_size = _queue->q[_queue->front].size;
- if (_type)
- *_type = _queue->q[_queue->front].type;
- if (_subch_id)
- *_subch_id = _queue->q[_queue->front].subch_id;
-
- _queue->front = (_queue->front + 1) % _queue->qsize;
- tcbd_debug(0, "pos:%d, size:%d\n", _queue->pointer, *_size);
- tcpal_unlock(&_queue->sem);
- return 0;
-}
-
-s32 tcbd_dequeue_ptr(
- struct tcbd_queue *_queue, u8 **_chunk, s32 *_size, s32 *_type)
-{
- tcpal_lock(&_queue->sem);
- if (tcbd_queue_is_empty(_queue)) {
- tcbd_debug(0, "Queue Empty!!\n");
- tcpal_unlock(&_queue->sem);
- return -1;
- }
-
- if (_queue->q[_queue->front].size > *_size) {
- tcbd_debug(DEBUG_ERROR,
- "insufficient buffer!! size:%d, qsize:%d\n",
- *_size, _queue->q[_queue->front].size);
- tcpal_unlock(&_queue->sem);
- return -1;
- }
-
- *_chunk = _queue->q[_queue->front].buffer;
- *_size = _queue->q[_queue->front].size;
- if (_type)
- *_type = _queue->q[_queue->front].type;
- _queue->front = (_queue->front + 1) % _queue->qsize;
- tcbd_debug(0, "pos:%d, size:%d\n", _queue->pointer, *_size);
- tcpal_unlock(&_queue->sem);
- return 0;
-}
-
-s32 tcbd_get_first_queue_ptr(
- struct tcbd_queue *_queue, u8 **_chunk, s32 *_size, s32 *_type)
-{
- tcpal_lock(&_queue->sem);
- if (tcbd_queue_is_empty(_queue)) {
- tcbd_debug(0, "Queue Empty!!\n");
- tcpal_unlock(&_queue->sem);
- return -1;
- }
- *_size = _queue->q[_queue->front].size;
- *_chunk = _queue->q[_queue->front].buffer;
- if (_type)
- *_type = _queue->q[_queue->front].type;
- tcbd_debug(0, "pos:%d, size:%d\n", _queue->pointer, *_size);
- tcpal_unlock(&_queue->sem);
- return 0;
-}
diff --git a/drivers/media/tdmb/tdmb.c b/drivers/media/tdmb/tdmb.c
deleted file mode 100644
index b8f215a..0000000
--- a/drivers/media/tdmb/tdmb.c
+++ /dev/null
@@ -1,867 +0,0 @@
-/*
-*
-* drivers/media/tdmb/tdmb.c
-*
-* tdmb driver
-*
-* Copyright (C) (2011, Samsung Electronics)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/errno.h>
-#include <linux/device.h>
-#include <linux/platform_device.h>
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/string.h>
-
-#include <linux/types.h>
-#include <linux/fcntl.h>
-
-/* for delay(sleep) */
-#include <linux/delay.h>
-
-/* for mutex */
-#include <linux/mutex.h>
-
-/*using copy to user */
-#include <linux/uaccess.h>
-#include <linux/clk.h>
-#include <linux/mm.h>
-#include <linux/slab.h>
-
-#include <linux/workqueue.h>
-#include <linux/irq.h>
-#include <asm/mach/irq.h>
-#include <linux/interrupt.h>
-#include <linux/vmalloc.h>
-
-#include <linux/io.h>
-#include <mach/gpio.h>
-
-#if defined(CONFIG_TDMB_ANT_DET)
-#include <linux/input.h>
-#endif
-
-#ifdef CONFIG_MACH_C1
-#include <linux/wakelock.h>
-static struct wake_lock tdmb_wlock;
-#endif
-#include "tdmb.h"
-#define TDMB_PRE_MALLOC 1
-
-static struct class *tdmb_class;
-
-/* ring buffer */
-char *ts_ring;
-unsigned int *tdmb_ts_head;
-unsigned int *tdmb_ts_tail;
-char *tdmb_ts_buffer;
-unsigned int tdmb_ts_size;
-
-unsigned int *cmd_head;
-unsigned int *cmd_tail;
-static char *cmd_buffer;
-static unsigned int cmd_size;
-
-static unsigned long tdmb_last_ch;
-
-static struct tdmb_platform_data gpio_cfg;
-static struct tdmb_drv_func *tdmbdrv_func;
-
-static bool tdmb_pwr_on;
-static bool tdmb_power_on(void)
-{
- if (tdmb_create_databuffer(tdmbdrv_func->get_int_size()) == false) {
- DPRINTK("tdmb_create_databuffer fail\n");
- goto create_databuffer_fail;
- }
- if (tdmb_create_workqueue() == false) {
- DPRINTK("tdmb_create_workqueue fail\n");
- goto create_workqueue_fail;
- }
- if (tdmbdrv_func->power_on() == false) {
- DPRINTK("power_on fail\n");
- goto power_on_fail;
- }
-
- DPRINTK("power_on success\n");
-#ifdef CONFIG_MACH_C1
- wake_lock(&tdmb_wlock);
-#endif
- tdmb_pwr_on = true;
- return true;
-
-power_on_fail:
- tdmb_destroy_workqueue();
-create_workqueue_fail:
- tdmb_destroy_databuffer();
-create_databuffer_fail:
- tdmb_pwr_on = false;
-
- return false;
-}
-static bool tdmb_power_off(void)
-{
- DPRINTK("%s : tdmb_pwr_on(%d)\n", __func__, tdmb_pwr_on);
-
- if (tdmb_pwr_on) {
- tdmbdrv_func->power_off();
- tdmb_destroy_workqueue();
- tdmb_destroy_databuffer();
-#ifdef CONFIG_MACH_C1
- wake_unlock(&tdmb_wlock);
-#endif
- tdmb_pwr_on = false;
- }
- tdmb_last_ch = 0;
- return true;
-}
-
-static int tdmb_open(struct inode *inode, struct file *filp)
-{
- DPRINTK("tdmb_open!\n");
- return 0;
-}
-
-static ssize_t
-tdmb_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
-{
- DPRINTK("tdmb_read\n");
-
- return 0;
-}
-
-static int tdmb_release(struct inode *inode, struct file *filp)
-{
- DPRINTK("tdmb_release\n");
-
- tdmb_power_off();
-
-#if TDMB_PRE_MALLOC
- tdmb_ts_size = 0;
- cmd_size = 0;
-#else
- if (ts_ring != 0) {
- kfree(ts_ring);
- ts_ring = 0;
- tdmb_ts_size = 0;
- cmd_size = 0;
- }
-#endif
-
- return 0;
-}
-
-#if TDMB_PRE_MALLOC
-static void tdmb_make_ring_buffer(void)
-{
- size_t size = TDMB_RING_BUFFER_MAPPING_SIZE;
-
- /* size should aligned in PAGE_SIZE */
- if (size % PAGE_SIZE) /* klaatu hard coding */
- size = size + size % PAGE_SIZE;
-
- ts_ring = kmalloc(size, GFP_KERNEL);
- DPRINTK("RING Buff Create OK\n");
-}
-
-#endif
-
-static int tdmb_mmap(struct file *filp, struct vm_area_struct *vma)
-{
- size_t size;
- unsigned long pfn;
-
- DPRINTK("%s\n", __func__);
-
- vma->vm_flags |= VM_RESERVED;
- size = vma->vm_end - vma->vm_start;
- DPRINTK("size given : %x\n", size);
-
-#if TDMB_PRE_MALLOC
- size = TDMB_RING_BUFFER_MAPPING_SIZE;
- if (!ts_ring) {
- DPRINTK("RING Buff ReAlloc(%d)!!\n", size);
-#endif
- /* size should aligned in PAGE_SIZE */
- if (size % PAGE_SIZE) /* klaatu hard coding */
- size = size + size % PAGE_SIZE;
-
- ts_ring = kmalloc(size, GFP_KERNEL);
-#if TDMB_PRE_MALLOC
- }
-#endif
-
- pfn = virt_to_phys(ts_ring) >> PAGE_SHIFT;
-
- DPRINTK("vm_start:%lx,ts_ring:%p,size:%x,prot:%lx,pfn:%lx\n",
- vma->vm_start, ts_ring, size, vma->vm_page_prot, pfn);
-
- if (remap_pfn_range(vma, vma->vm_start, pfn, size, vma->vm_page_prot))
- return -EAGAIN;
-
- DPRINTK("succeeded\n");
-
- tdmb_ts_head = (unsigned int *)ts_ring;
- tdmb_ts_tail = (unsigned int *)(ts_ring + 4);
- tdmb_ts_buffer = ts_ring + 8;
-
- *tdmb_ts_head = 0;
- *tdmb_ts_tail = 0;
-
- tdmb_ts_size = size-8; /* klaatu hard coding */
- tdmb_ts_size
- = ((tdmb_ts_size / DMB_TS_SIZE) * DMB_TS_SIZE) - (30 * DMB_TS_SIZE);
-
- DPRINTK("head : %x, tail : %x, buffer : %x, size : %x\n",
- (unsigned int)tdmb_ts_head, (unsigned int)tdmb_ts_tail,
- (unsigned int)tdmb_ts_buffer, tdmb_ts_size);
-
- cmd_buffer = tdmb_ts_buffer + tdmb_ts_size + 8;
- cmd_head = (unsigned int *)(cmd_buffer - 8);
- cmd_tail = (unsigned int *)(cmd_buffer - 4);
-
- *cmd_head = 0;
- *cmd_tail = 0;
-
- cmd_size = 30 * DMB_TS_SIZE - 8; /* klaatu hard coding */
-
- DPRINTK("cmd head : %x, tail : %x, buffer : %x, size : %x\n",
- (unsigned int)cmd_head, (unsigned int)cmd_tail,
- (unsigned int)cmd_buffer, cmd_size);
-
- return 0;
-}
-
-
-static int _tdmb_cmd_update(
- unsigned char *cmd_header,
- unsigned char cmd_header_size,
- unsigned char *data,
- unsigned short data_size)
-{
- unsigned int size;
- unsigned int head;
- unsigned int tail;
- unsigned int dist;
- unsigned int temp_size;
- unsigned int data_size_tmp;
-
- if (data_size > cmd_size) {
- DPRINTK(" Error - cmd size too large\n");
- return false;
- }
-
- head = *cmd_head;
- tail = *cmd_tail;
- size = cmd_size;
- data_size_tmp = data_size + cmd_header_size;
-
- if (head >= tail)
- dist = head-tail;
- else
- dist = size + head-tail;
-
- if (size - dist <= data_size_tmp) {
- DPRINTK("too small space is left in Cmd Ring Buffer!!\n");
- return false;
- }
-
- DPRINTK("%x head %d tail %d\n", (unsigned int)cmd_buffer, head, tail);
-
- if (head+data_size_tmp <= size) {
- memcpy((cmd_buffer + head),
- (char *)cmd_header, cmd_header_size);
- memcpy((cmd_buffer + head + cmd_header_size),
- (char *)data, data_size);
- head += data_size_tmp;
- if (head == size)
- head = 0;
- } else {
- temp_size = size - head;
- if (temp_size < cmd_header_size) {
- memcpy((cmd_buffer+head),
- (char *)cmd_header, temp_size);
- memcpy((cmd_buffer),
- (char *)cmd_header+temp_size,
- (cmd_header_size - temp_size));
- head = cmd_header_size - temp_size;
- } else {
- memcpy((cmd_buffer+head),
- (char *)cmd_header, cmd_header_size);
- head += cmd_header_size;
- if (head == size)
- head = 0;
- }
-
- temp_size = size - head;
- if (temp_size < data_size) {
- memcpy((cmd_buffer+head),
- (char *)data, temp_size);
- memcpy((cmd_buffer),
- (char *)data+temp_size,
- (data_size - temp_size));
- head = data_size - temp_size;
- } else {
- memcpy((cmd_buffer+head),
- (char *)data, data_size);
- head += data_size;
- if (head == size)
- head = 0;
- }
- }
-
- *cmd_head = head;
-
- return true;
-}
-
-unsigned char tdmb_make_result(
- unsigned char cmd,
- unsigned short data_len,
- unsigned char *data)
-{
- unsigned char cmd_header[4] = {0,};
-
- cmd_header[0] = TDMB_CMD_START_FLAG;
- cmd_header[1] = cmd;
- cmd_header[2] = (data_len>>8)&0xff;
- cmd_header[3] = data_len&0xff;
-
- _tdmb_cmd_update(cmd_header, 4 , data, data_len);
-
- return true;
-}
-
-unsigned long tdmb_get_chinfo(void)
-{
- return tdmb_last_ch;
-}
-
-void tdmb_pull_data(struct work_struct *work)
-{
- tdmbdrv_func->pull_data();
-}
-
-bool tdmb_control_irq(bool set)
-{
- bool ret = true;
- int irq_ret;
- if (set) {
- irq_set_irq_type(gpio_cfg.irq, IRQ_TYPE_EDGE_FALLING);
- irq_ret = request_irq(gpio_cfg.irq
- , tdmb_irq_handler
- , IRQF_DISABLED
- , TDMB_DEV_NAME
- , NULL);
- if (irq_ret < 0) {
- DPRINTK("request_irq failed !! \r\n");
- ret = false;
- }
- } else {
- free_irq(gpio_cfg.irq, NULL);
- }
-
- return ret;
-}
-
-void tdmb_control_gpio(bool poweron)
-{
- if (poweron)
- gpio_cfg.gpio_on();
- else
- gpio_cfg.gpio_off();
-}
-
-static long tdmb_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
-{
- int ret = 0;
- unsigned long fig_freq = 0;
- struct ensemble_info_type *ensemble_info;
- struct tdmb_dm dm_buff;
-
- DPRINTK("call tdmb_ioctl : 0x%x\n", cmd);
-
- if (_IOC_TYPE(cmd) != IOCTL_MAGIC) {
- DPRINTK("tdmb_ioctl : _IOC_TYPE error\n");
- return -EINVAL;
- }
- if (_IOC_NR(cmd) >= IOCTL_MAXNR) {
- DPRINTK("tdmb_ioctl : _IOC_NR(cmd) 0x%x\n", _IOC_NR(cmd));
- return -EINVAL;
- }
-
- switch (cmd) {
- case IOCTL_TDMB_GET_DATA_BUFFSIZE:
- DPRINTK("IOCTL_TDMB_GET_DATA_BUFFSIZE %d\n", tdmb_ts_size);
- ret = copy_to_user((unsigned int *)arg,
- &tdmb_ts_size, sizeof(unsigned int));
- break;
-
- case IOCTL_TDMB_GET_CMD_BUFFSIZE:
- DPRINTK("IOCTL_TDMB_GET_CMD_BUFFSIZE %d\n", cmd_size);
- ret = copy_to_user((unsigned int *)arg,
- &cmd_size, sizeof(unsigned int));
- break;
-
- case IOCTL_TDMB_POWER_ON:
- DPRINTK("IOCTL_TDMB_POWER_ON\n");
- ret = tdmb_power_on();
- break;
-
- case IOCTL_TDMB_POWER_OFF:
- DPRINTK("IOCTL_TDMB_POWER_OFF\n");
- ret = tdmb_power_off();
- break;
-
- case IOCTL_TDMB_SCAN_FREQ_ASYNC:
- DPRINTK("IOCTL_TDMB_SCAN_FREQ_ASYNC\n");
-
- fig_freq = arg;
-
- ensemble_info = vmalloc(sizeof(struct ensemble_info_type));
- memset((char *)ensemble_info, 0x00\
- , sizeof(struct ensemble_info_type));
-
- ret = tdmbdrv_func->scan_ch(ensemble_info, fig_freq);
- if (ret == true)
- tdmb_make_result(DMB_FIC_RESULT_DONE,
- sizeof(struct ensemble_info_type),
- (unsigned char *)ensemble_info);
- else
- tdmb_make_result(DMB_FIC_RESULT_FAIL,
- sizeof(unsigned long),
- (unsigned char *)&fig_freq);
-
- vfree(ensemble_info);
- tdmb_last_ch = 0;
- break;
-
- case IOCTL_TDMB_SCAN_FREQ_SYNC:
- fig_freq = ((struct ensemble_info_type *)arg)->ensem_freq;
- DPRINTK("IOCTL_TDMB_SCAN_FREQ_SYNC %ld\n", fig_freq);
-
- ensemble_info = vmalloc(sizeof(struct ensemble_info_type));
- memset((char *)ensemble_info, 0x00\
- , sizeof(struct ensemble_info_type));
-
- ret = tdmbdrv_func->scan_ch(ensemble_info, fig_freq);
- if (ret == true) {
- if (copy_to_user((struct ensemble_info_type *)arg,
- ensemble_info,
- sizeof(struct ensemble_info_type))
- )
- DPRINTK("cmd(%x) : copy_to_user failed\n", cmd);
- }
-
- vfree(ensemble_info);
- tdmb_last_ch = 0;
- break;
-
- case IOCTL_TDMB_SCANSTOP:
- DPRINTK("IOCTL_TDMB_SCANSTOP\n");
- ret = false;
- break;
-
- case IOCTL_TDMB_ASSIGN_CH:
- DPRINTK("IOCTL_TDMB_ASSIGN_CH %ld\n", arg);
- tdmb_init_data();
- ret = tdmbdrv_func->set_ch(arg, (arg % 1000), false);
- if (ret == true)
- tdmb_last_ch = arg;
- else
- tdmb_last_ch = 0;
- break;
-
- case IOCTL_TDMB_ASSIGN_CH_TEST:
- DPRINTK("IOCTL_TDMB_ASSIGN_CH_TEST %ld\n", arg);
- tdmb_init_data();
- ret = tdmbdrv_func->set_ch(arg, (arg % 1000), true);
- if (ret == true)
- tdmb_last_ch = arg;
- else
- tdmb_last_ch = 0;
- break;
-
- case IOCTL_TDMB_GET_DM:
- tdmbdrv_func->get_dm(&dm_buff);
- if (copy_to_user((struct tdmb_dm *)arg\
- , &dm_buff, sizeof(struct tdmb_dm)))
- DPRINTK("IOCTL_TDMB_GET_DM : copy_to_user failed\n");
- ret = true;
- DPRINTK("rssi %d, ber %d, ANT %d\n",
- dm_buff.rssi, dm_buff.ber, dm_buff.antenna);
- break;
- }
-
- return ret;
-}
-
-static const struct file_operations tdmb_ctl_fops = {
- .owner = THIS_MODULE,
- .open = tdmb_open,
- .read = tdmb_read,
- .unlocked_ioctl = tdmb_ioctl,
- .mmap = tdmb_mmap,
- .release = tdmb_release,
- .llseek = no_llseek,
-};
-
-static struct tdmb_drv_func *tdmb_get_drv_func(void)
-{
- struct tdmb_drv_func * (*func)(void);
-#if defined(CONFIG_TDMB_T3900) && defined(CONFIG_TDMB_TCC3170)
- if (system_rev >= 11)
- func = tcc3170_drv_func;
- else
- func = t3900_drv_func;
-#elif defined(CONFIG_TDMB_T3900) || defined(CONFIG_TDMB_T39F0)
- func = t3900_drv_func;
-#elif defined(CONFIG_TDMB_FC8050)
- func = fc8050_drv_func;
-#elif defined(CONFIG_TDMB_MTV318)
- func = mtv318_drv_func;
-#elif defined(CONFIG_TDMB_TCC3170)
- func = tcc3170_drv_func;
-#else
- #error what???
-#endif
-
- return func();
-}
-
-#if defined(CONFIG_TDMB_ANT_DET)
-
-static struct input_dev *tdmb_ant_input;
-static int tdmb_check_ant;
-static int ant_prev_status;
-
-#define TDMB_ANT_CHECK_DURATION 500000
-#define TDMB_ANT_CHECK_COUNT 2
-static bool tdmb_ant_det_check_value(void)
-{
- int loop = 0;
- int cur_val = 0, prev_val = 0;
- bool ret = false;
-
- tdmb_check_ant = 1;
-
- prev_val = ant_prev_status ? 0 : 1;
- for (loop = 0; loop < TDMB_ANT_CHECK_COUNT; loop++) {
- usleep_range(TDMB_ANT_CHECK_DURATION, TDMB_ANT_CHECK_DURATION);
- cur_val = gpio_get_value_cansleep(gpio_cfg.gpio_ant_det);
- if (prev_val != cur_val || ant_prev_status == cur_val)
- break;
- prev_val = cur_val;
- }
-
- if (loop == TDMB_ANT_CHECK_COUNT) {
- if (ant_prev_status == 0 && cur_val == 1)
- ret = true;
-
- ant_prev_status = cur_val;
- }
-
- tdmb_check_ant = 0;
-
- DPRINTK("%s cnt(%d) cur(%d) ret(%d)\n", __func__, loop, cur_val, ret);
-
- return ret;
-}
-
-static int tdmb_ant_det_ignore_irq(void)
-{
- DPRINTK("%s tdmb_check_ant=%d\n", __func__, tdmb_check_ant);
- return tdmb_check_ant;
-}
-
-static void tdmb_ant_det_work_func(struct work_struct *work)
-{
- int val = 0;
-
- if (!tdmb_ant_input) {
- DPRINTK("%s: input device is not registered\n", __func__);
- return;
- }
-
- if (tdmb_ant_det_check_value()) {
- input_report_key(tdmb_ant_input, KEY_DMB_ANT_DET_UP, 1);
- input_report_key(tdmb_ant_input, KEY_DMB_ANT_DET_UP, 0);
- input_sync(tdmb_ant_input);
- DPRINTK("%s: sys_rev:%d\n", __func__, system_rev);
- }
-}
-
-static struct workqueue_struct *tdmb_ant_det_wq;
-static DECLARE_WORK(tdmb_ant_det_work, tdmb_ant_det_work_func);
-static bool tdmb_ant_det_reg_input(struct platform_device *pdev)
-{
- struct input_dev *input;
- int err;
-
- DPRINTK("%s\n", __func__);
-
- input = input_allocate_device();
- if (!input) {
- DPRINTK("Can't allocate input device\n");
- err = -ENOMEM;
- }
- set_bit(EV_KEY, input->evbit);
- set_bit(KEY_DMB_ANT_DET_UP & KEY_MAX, input->keybit);
- set_bit(KEY_DMB_ANT_DET_DOWN & KEY_MAX, input->keybit);
- input->name = "sec_dmb_key";
- input->phys = "sec_dmb_key/input0";
- input->dev.parent = &pdev->dev;
-
- err = input_register_device(input);
- if (err) {
- DPRINTK("Can't register dmb_ant_det key: %d\n", err);
- goto free_input_dev;
- }
- tdmb_ant_input = input;
- ant_prev_status = gpio_get_value_cansleep(gpio_cfg.gpio_ant_det);
-
- return true;
-
-free_input_dev:
- input_free_device(input);
- return false;
-}
-
-static void tdmb_ant_det_unreg_input(void)
-{
- DPRINTK("%s\n", __func__);
- if (tdmb_ant_input) {
- input_unregister_device(tdmb_ant_input);
- tdmb_ant_input = NULL;
- }
-}
-static bool tdmb_ant_det_create_wq(void)
-{
- DPRINTK("%s\n", __func__);
- tdmb_ant_det_wq = create_singlethread_workqueue("tdmb_ant_det_wq");
- if (tdmb_ant_det_wq)
- return true;
- else
- return false;
-}
-
-static bool tdmb_ant_det_destroy_wq(void)
-{
- DPRINTK("%s\n", __func__);
- if (tdmb_ant_det_wq) {
- flush_workqueue(tdmb_ant_det_wq);
- destroy_workqueue(tdmb_ant_det_wq);
- tdmb_ant_det_wq = NULL;
- }
- return true;
-}
-
-static irqreturn_t tdmb_ant_det_irq_handler(int irq, void *dev_id)
-{
- int ret = 0;
-
- if (tdmb_ant_det_ignore_irq())
- return IRQ_HANDLED;
-
- if (tdmb_ant_det_wq) {
- ret = queue_work(tdmb_ant_det_wq, &tdmb_ant_det_work);
- if (ret == 0)
- DPRINTK("%s queue_work fail\n", __func__);
- }
-
- return IRQ_HANDLED;
-}
-
-static bool tdmb_ant_det_irq_set(bool set)
-{
- bool ret = true;
- int irq_ret;
- DPRINTK("%s\n", __func__);
-
- if (set) {
- if (system_rev >= 6)
- irq_set_irq_type(gpio_cfg.irq_ant_det
- , IRQ_TYPE_EDGE_BOTH);
- else
- irq_set_irq_type(gpio_cfg.irq_ant_det
- , IRQ_TYPE_EDGE_RISING);
-
- irq_ret = request_irq(gpio_cfg.irq_ant_det
- , tdmb_ant_det_irq_handler
- , IRQF_DISABLED
- , "tdmb_ant_det"
- , NULL);
- if (irq_ret < 0) {
- DPRINTK("%s %d\r\n", __func__, irq_ret);
- ret = false;
- }
- enable_irq_wake(gpio_cfg.irq_ant_det);
- } else {
- disable_irq_wake(gpio_cfg.irq_ant_det);
- free_irq(gpio_cfg.irq_ant_det, NULL);
- }
-
- return ret;
-}
-#endif
-
-static int tdmb_probe(struct platform_device *pdev)
-{
- int ret;
- struct device *tdmb_dev;
- struct tdmb_platform_data *p = pdev->dev.platform_data;
-
- DPRINTK("call tdmb_probe\n");
-
- ret = register_chrdev(TDMB_DEV_MAJOR, TDMB_DEV_NAME, &tdmb_ctl_fops);
- if (ret < 0)
- DPRINTK("register_chrdev(TDMB_DEV) failed!\n");
-
- tdmb_class = class_create(THIS_MODULE, TDMB_DEV_NAME);
- if (IS_ERR(tdmb_class)) {
- unregister_chrdev(TDMB_DEV_MAJOR, TDMB_DEV_NAME);
- class_destroy(tdmb_class);
- DPRINTK("class_create failed!\n");
-
- return -EFAULT;
- }
-
- tdmb_dev = device_create(tdmb_class, NULL,
- MKDEV(TDMB_DEV_MAJOR, TDMB_DEV_MINOR),
- NULL, TDMB_DEV_NAME);
- if (IS_ERR(tdmb_dev)) {
- DPRINTK("device_create failed!\n");
-
- unregister_chrdev(TDMB_DEV_MAJOR, TDMB_DEV_NAME);
- class_destroy(tdmb_class);
-
- return -EFAULT;
- }
-
- memcpy(&gpio_cfg, p, sizeof(struct tdmb_platform_data));
-
- tdmb_init_bus();
- tdmbdrv_func = tdmb_get_drv_func();
- if (tdmbdrv_func->init)
- tdmbdrv_func->init();
-
-#if TDMB_PRE_MALLOC
- tdmb_make_ring_buffer();
-#endif
-#ifdef CONFIG_MACH_C1
- wake_lock_init(&tdmb_wlock, WAKE_LOCK_SUSPEND, "tdmb_wlock");
-#endif
-
-#if defined(CONFIG_TDMB_ANT_DET)
- if (!tdmb_ant_det_reg_input(pdev))
- goto err_reg_input;
- if (!tdmb_ant_det_create_wq())
- goto free_reg_input;
- if (!tdmb_ant_det_irq_set(true))
- goto free_ant_det_wq;
-
- return 0;
-
-free_ant_det_wq:
- tdmb_ant_det_destroy_wq();
-free_reg_input:
- tdmb_ant_det_unreg_input();
-err_reg_input:
- return -EFAULT;
-#else
- return 0;
-#endif
-
-}
-
-static int tdmb_remove(struct platform_device *pdev)
-{
- DPRINTK("tdmb_remove!\n");
-#if defined(CONFIG_TDMB_ANT_DET)
- tdmb_ant_det_unreg_input();
- tdmb_ant_det_destroy_wq();
- tdmb_ant_det_irq_set(false);
-#endif
- return 0;
-}
-
-static int tdmb_suspend(struct platform_device *pdev, pm_message_t mesg)
-{
- return 0;
-}
-
-static int tdmb_resume(struct platform_device *pdev)
-{
- return 0;
-}
-
-static struct platform_driver tdmb_driver = {
- .probe = tdmb_probe,
- .remove = tdmb_remove,
- .suspend = tdmb_suspend,
- .resume = tdmb_resume,
- .driver = {
- .owner = THIS_MODULE,
- .name = "tdmb"
- },
-};
-
-static int __init tdmb_init(void)
-{
- int ret;
-
-#ifdef CONFIG_BATTERY_SEC
- if (is_lpcharging_state()) {
- pr_info("%s : LPM Charging Mode! return 0\n", __func__);
- return 0;
- }
-#endif
-
- DPRINTK("<klaatu TDMB> module init\n");
- ret = platform_driver_register(&tdmb_driver);
- if (ret)
- return ret;
-
- return 0;
-}
-
-static void __exit tdmb_exit(void)
-{
- DPRINTK("<klaatu TDMB> module exit\n");
-#if TDMB_PRE_MALLOC
- if (ts_ring != 0) {
- kfree(ts_ring);
- ts_ring = 0;
- }
-#endif
- unregister_chrdev(TDMB_DEV_MAJOR, "tdmb");
- device_destroy(tdmb_class, MKDEV(TDMB_DEV_MAJOR, TDMB_DEV_MINOR));
- class_destroy(tdmb_class);
-
- platform_driver_unregister(&tdmb_driver);
-
- tdmb_exit_bus();
-#ifdef CONFIG_MACH_C1
- wake_lock_destroy(&tdmb_wlock);
-#endif
-}
-
-module_init(tdmb_init);
-module_exit(tdmb_exit);
-
-MODULE_AUTHOR("Samsung");
-MODULE_DESCRIPTION("TDMB Driver");
-MODULE_LICENSE("GPL v2");
diff --git a/drivers/media/tdmb/tdmb.h b/drivers/media/tdmb/tdmb.h
deleted file mode 100644
index dc893dc..0000000
--- a/drivers/media/tdmb/tdmb.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
-*
-* drivers/media/tdmb/tdmb.h
-*
-* tdmb driver
-*
-* Copyright (C) (2011, Samsung Electronics)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-#ifndef _TDMB_H_
-#define _TDMB_H_
-
-#include <linux/types.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <mach/tdmb_pdata.h>
-#include <mach/gpio.h>
-
-
-#define TDMB_DEBUG
-
-#ifdef TDMB_DEBUG
-#define DPRINTK(x...) printk(KERN_DEBUG "TDMB " x)
-#else
-#define DPRINTK(x...) /* null */
-#endif
-
-#define TDMB_DEV_NAME "tdmb"
-#define TDMB_DEV_MAJOR 225
-#define TDMB_DEV_MINOR 0
-
-#define DMB_TS_SIZE 188
-
-#define TDMB_RING_BUFFER_SIZE (188 * 150 + 4 + 4)
-#define TDMB_RING_BUFFER_MAPPING_SIZE \
- (((TDMB_RING_BUFFER_SIZE - 1) / PAGE_SIZE + 1) * PAGE_SIZE)
-
-/* commands */
-#define IOCTL_MAGIC 't'
-#define IOCTL_MAXNR 32
-
-#define IOCTL_TDMB_GET_DATA_BUFFSIZE _IO(IOCTL_MAGIC, 0)
-#define IOCTL_TDMB_GET_CMD_BUFFSIZE _IO(IOCTL_MAGIC, 1)
-#define IOCTL_TDMB_POWER_ON _IO(IOCTL_MAGIC, 2)
-#define IOCTL_TDMB_POWER_OFF _IO(IOCTL_MAGIC, 3)
-#define IOCTL_TDMB_SCAN_FREQ_ASYNC _IO(IOCTL_MAGIC, 4)
-#define IOCTL_TDMB_SCAN_FREQ_SYNC _IO(IOCTL_MAGIC, 5)
-#define IOCTL_TDMB_SCANSTOP _IO(IOCTL_MAGIC, 6)
-#define IOCTL_TDMB_ASSIGN_CH _IO(IOCTL_MAGIC, 7)
-#define IOCTL_TDMB_GET_DM _IO(IOCTL_MAGIC, 8)
-#define IOCTL_TDMB_ASSIGN_CH_TEST _IO(IOCTL_MAGIC, 9)
-
-struct tdmb_dm {
- unsigned int rssi;
- unsigned int ber;
- unsigned int per;
- unsigned int antenna;
-} ;
-
-#define SUB_CH_NUM_MAX 64
-
-#define ENSEMBLE_LABEL_MAX 16
-#define SVC_LABEL_MAX 16
-
-enum {
- TMID_MSC_STREAM_AUDIO = 0x00,
- TMID_MSC_STREAM_DATA = 0x01,
- TMID_FIDC = 0x02,
- TMID_MSC_PACKET_DATA = 0x03
-};
-
-enum {
- DSCTy_TDMB = 0x18,
- /* Used for All-Zero Test */
- DSCTy_UNSPECIFIED = 0x00
-};
-
-struct sub_ch_info_type {
- /* Sub Channel Information */
- unsigned char sub_ch_id; /* 6 bits */
- unsigned short start_addr; /* 10 bits */
-
- /* FIG 0/2 */
- unsigned char tmid; /* 2 bits */
- unsigned char svc_type; /* 6 bits */
- unsigned long svc_id; /* 16/32 bits */
- unsigned char svc_label[SVC_LABEL_MAX+1]; /* 16*8 bits */
-} ;
-
-struct ensemble_info_type {
- unsigned long ensem_freq; /* 4 bytes */
- unsigned char tot_sub_ch; /* MAX: 64 */
-
- unsigned short ensem_id;
- unsigned char ensem_label[ENSEMBLE_LABEL_MAX+1];
- struct sub_ch_info_type sub_ch[SUB_CH_NUM_MAX];
-} ;
-
-
-#define TDMB_CMD_START_FLAG 0x7F
-#define TDMB_CMD_END_FLAG 0x7E
-#define TDMB_CMD_SIZE 30
-
-/* Result Value */
-#define DMB_FIC_RESULT_FAIL 0x00
-#define DMB_FIC_RESULT_DONE 0x01
-#define DMB_TS_PACKET_RESYNC 0x02
-
-int tdmb_init_bus(void);
-void tdmb_exit_bus(void);
-irqreturn_t tdmb_irq_handler(int irq, void *dev_id);
-unsigned long tdmb_get_chinfo(void);
-void tdmb_pull_data(struct work_struct *work);
-bool tdmb_control_irq(bool set);
-void tdmb_control_gpio(bool poweron);
-bool tdmb_create_workqueue(void);
-bool tdmb_destroy_workqueue(void);
-bool tdmb_create_databuffer(unsigned long int_size);
-void tdmb_destroy_databuffer(void);
-void tdmb_init_data(void);
-unsigned char tdmb_make_result
-(
- unsigned char cmd,
- unsigned short data_len,
- unsigned char *data
-);
-bool tdmb_store_data(unsigned char *data, unsigned long len);
-
-struct tdmb_drv_func {
- bool (*init) (void);
- bool (*power_on) (void);
- void (*power_off) (void);
- bool (*scan_ch) (struct ensemble_info_type *ensembleInfo,
- unsigned long freq);
- void (*get_dm) (struct tdmb_dm *info);
- bool (*set_ch) (unsigned long freq, unsigned char subchid,
- bool factory_test);
- void (*pull_data) (void);
- unsigned long (*get_int_size) (void);
-};
-
-extern unsigned int get_hw_rev(void);
-
-extern unsigned int *tdmb_ts_head;
-extern unsigned int *tdmb_ts_tail;
-extern char *tdmb_ts_buffer;
-extern unsigned int tdmb_ts_size;
-
-#if defined(CONFIG_TDMB_T3900) || defined(CONFIG_TDMB_T39F0)
-struct tdmb_drv_func *t3900_drv_func(void);
-#endif
-#if defined(CONFIG_TDMB_FC8050)
-struct tdmb_drv_func *fc8050_drv_func(void);
-#endif
-#if defined(CONFIG_TDMB_MTV318)
-struct tdmb_drv_func *mtv318_drv_func(void);
-#endif
-#if defined(CONFIG_TDMB_TCC3170)
-struct tdmb_drv_func *tcc3170_drv_func(void);
-extern struct tcbd_fic_ensbl *tcbd_fic_get_ensbl_info(s32 _disp);
-#endif
-
-#if defined(CONFIG_TDMB_SPI)
-struct spi_device *tdmb_get_spi_handle(void);
-#endif
-
-#ifdef CONFIG_BATTERY_SEC
-extern unsigned int is_lpcharging_state(void);
-#endif
-
-#endif
diff --git a/drivers/media/tdmb/tdmb_data.c b/drivers/media/tdmb/tdmb_data.c
deleted file mode 100644
index 6f11ff8..0000000
--- a/drivers/media/tdmb/tdmb_data.c
+++ /dev/null
@@ -1,463 +0,0 @@
-/*
-*
-* drivers/media/tdmb/tdmb_data.c
-*
-* tdmb driver
-*
-* Copyright (C) (2011, Samsung Electronics)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/errno.h>
-#include <linux/device.h>
-#include <linux/platform_device.h>
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/string.h>
-
-#include <linux/types.h>
-#include <linux/fcntl.h>
-
-/* for delay(sleep) */
-#include <linux/delay.h>
-
-/* for mutex */
-#include <linux/mutex.h>
-
-/*using copy to user */
-#include <linux/uaccess.h>
-#include <linux/clk.h>
-#include <linux/mm.h>
-#include <linux/slab.h>
-
-#include <linux/workqueue.h>
-#include <linux/irq.h>
-#include <asm/mach/irq.h>
-#include <linux/interrupt.h>
-#include <linux/vmalloc.h>
-
-#include <linux/io.h>
-#include <mach/gpio.h>
-
-#include "tdmb.h"
-
-#define TS_PACKET_SIZE 188
-#define MSC_BUF_SIZE 1024
-
-static unsigned char *msc_buff;
-static unsigned char *ts_buff;
-
-static int ts_buff_size;
-static int first_packet = 1;
-static int ts_buff_pos;
-static int msc_buff_pos;
-static int mp2_len;
-static const int bitrate_table[2][16] = {
- /* MPEG1 for id=1*/
- {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 0},
- /* MPEG2 for id=0 */
- {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0}
-};
-
-static struct workqueue_struct *tdmb_workqueue;
-static DECLARE_WORK(tdmb_work, tdmb_pull_data);
-
-irqreturn_t tdmb_irq_handler(int irq, void *dev_id)
-{
- int ret = 0;
-
- if (tdmb_workqueue) {
- ret = queue_work(tdmb_workqueue, &tdmb_work);
- if (ret == 0)
- DPRINTK("failed in queue_work\n");
- }
-
- return IRQ_HANDLED;
-}
-
-bool tdmb_create_databuffer(unsigned long int_size)
-{
- ts_buff_size = int_size * 2;
-
- msc_buff = vmalloc(MSC_BUF_SIZE);
- ts_buff = vmalloc(ts_buff_size);
-
- if (msc_buff && ts_buff) {
- return true;
- } else {
- if (msc_buff)
- vfree(msc_buff);
- if (ts_buff)
- vfree(ts_buff);
-
- return false;
- }
-}
-
-void tdmb_destroy_databuffer(void)
-{
- vfree(msc_buff);
- vfree(ts_buff);
-}
-
-bool tdmb_create_workqueue(void)
-{
- tdmb_workqueue = create_singlethread_workqueue("ktdmbd");
- if (tdmb_workqueue)
- return true;
- else
- return false;
-}
-
-bool tdmb_destroy_workqueue(void)
-{
- if (tdmb_workqueue) {
- flush_workqueue(tdmb_workqueue);
- destroy_workqueue(tdmb_workqueue);
- tdmb_workqueue = NULL;
- }
- return true;
-}
-
-void tdmb_init_data(void)
-{
- first_packet = 1;
- ts_buff_pos = 0;
- msc_buff_pos = 0;
- mp2_len = 0;
-}
-
-static int __add_to_ringbuffer(unsigned char *data, unsigned long data_size)
-{
- int ret = 0;
- unsigned int size;
- unsigned int head;
- unsigned int tail;
- unsigned int dist;
- unsigned int temp_size;
-
- if (tdmb_ts_size == 0)
- return 0;
-
- size = data_size;
- head = *tdmb_ts_head;
- tail = *tdmb_ts_tail;
-
- if (size > tdmb_ts_size) {
- DPRINTK("Error - size too large\n");
- } else {
- if (head >= tail)
- dist = head-tail;
- else
- dist = tdmb_ts_size+head-tail;
-
- /* DPRINTK("dist: %x\n", dist); */
-
- if ((tdmb_ts_size-dist) < size) {
- DPRINTK("small space is left in ring(len:%d/free:%d)\n",
- size, (tdmb_ts_size-dist));
- DPRINTK("ts_head:0x%x, ts_tail:0x%x/head:%d,tail:%d\n",
- (unsigned int)tdmb_ts_head,
- (unsigned int)tdmb_ts_tail,
- (unsigned int)head, tail);
- } else {
- if (head+size <= tdmb_ts_size) {
- memcpy((tdmb_ts_buffer+head),
- (char *)data, size);
-
- head += size;
- if (head == tdmb_ts_size)
- head = 0;
- } else {
- temp_size = tdmb_ts_size-head;
- temp_size = (temp_size/DMB_TS_SIZE)*DMB_TS_SIZE;
-
- if (temp_size > 0)
- memcpy((tdmb_ts_buffer+head),
- (char *)data, temp_size);
-
- memcpy(tdmb_ts_buffer,
- (char *)(data+temp_size),
- size-temp_size);
- head = size-temp_size;
- }
-
- /*
- * DPRINTK("< data > %x, %x, %x, %x\n",
- * *(tdmb_ts_buffer+ *tdmb_ts_head),
- * *(tdmb_ts_buffer+ *tdmb_ts_head +1),
- * *(tdmb_ts_buffer+ *tdmb_ts_head +2),
- * *(tdmb_ts_buffer+ *tdmb_ts_head +3) );
-
- * DPRINTK("exiting - head : %d\n",head);
- */
-
- *tdmb_ts_head = head;
- }
- }
-
- return ret;
-}
-
-
-static int __add_ts_data(unsigned char *data, unsigned long data_size)
-{
- int j = 0;
- int maxi = 0;
- if (first_packet) {
- DPRINTK("! first sync Size = %ld !\n", data_size);
-
- for (j = 0; j < data_size; j++) {
- if (data[j] == 0x47) {
- DPRINTK("!!!!! first sync j = %d !!!!!\n", j);
- maxi = (data_size - j) / TS_PACKET_SIZE;
- ts_buff_pos = (data_size - j) % TS_PACKET_SIZE;
- __add_to_ringbuffer(&data[j],
- maxi * TS_PACKET_SIZE);
- if (ts_buff_pos > 0)
- memcpy(ts_buff,
- &data[j+maxi*TS_PACKET_SIZE],
- ts_buff_pos);
- first_packet = 0;
- return 0;
- }
- }
- } else {
- maxi = (data_size) / TS_PACKET_SIZE;
-
- if (ts_buff_pos > 0) {
- if (data[TS_PACKET_SIZE - ts_buff_pos] != 0x47) {
- DPRINTK("! error 0x%x,0x%x !\n",
- data[TS_PACKET_SIZE - ts_buff_pos],
- data[TS_PACKET_SIZE - ts_buff_pos + 1]);
-
- memset(ts_buff, 0, ts_buff_size);
- ts_buff_pos = 0;
- first_packet = 1;
- return -EPERM;
- }
-
- memcpy(&ts_buff[ts_buff_pos],
- data, TS_PACKET_SIZE-ts_buff_pos);
- __add_to_ringbuffer(ts_buff, TS_PACKET_SIZE);
- __add_to_ringbuffer(&data[TS_PACKET_SIZE - ts_buff_pos],
- data_size - TS_PACKET_SIZE);
- memcpy(ts_buff,
- &data[data_size-ts_buff_pos],
- ts_buff_pos);
- } else {
- if (data[0] != 0x47) {
- DPRINTK("!! error 0x%x,0x%x!!\n",
- data[0],
- data[1]);
-
- memset(ts_buff, 0, ts_buff_size);
- ts_buff_pos = 0;
- first_packet = 1;
- return -EPERM;
- }
-
- __add_to_ringbuffer(data, data_size);
- }
- }
- return 0;
-}
-
-static int __get_mp2_len(unsigned char *pkt)
-{
- int id;
- int layer_index;
- int bitrate_index;
- int fs_index;
- int samplerate;
- int protection;
- int bitrate;
- int length;
-
- id = (pkt[1]>>3)&0x01; /* 1: ISO/IEC 11172-3, 0:ISO/IEC 13818-3 */
- layer_index = (pkt[1]>>1)&0x03; /* 2 */
- protection = pkt[1]&0x1;
-/*
- if (protection != 0) {
- ;
- }
-*/
- bitrate_index = (pkt[2]>>4);
- fs_index = (pkt[2]>>2)&0x3; /* 1 */
-
- /* sync word check */
- if (pkt[0] == 0xff && (pkt[1]>>4) == 0xf) {
- if ((bitrate_index > 0 && bitrate_index < 15)
- && (layer_index == 2) && (fs_index == 1)) {
-
- if (id == 1 && layer_index == 2) {
- /* Fs==48 KHz*/
- bitrate = 1000*bitrate_table[0][bitrate_index];
- samplerate = 48000;
- } else if (id == 0 && layer_index == 2) {
- /* Fs=24 KHz */
- bitrate = 1000*bitrate_table[1][bitrate_index];
- samplerate = 24000;
- } else
- return -EPERM;
-
- } else
- return -EPERM;
- } else
- return -EPERM;
-
- if ((pkt[2]&0x02) != 0) { /* padding bit */
- return -EPERM;
- }
-
- length = (144*bitrate)/(samplerate);
-
- return length;
-}
-
-static int
-__add_msc_data(unsigned char *data, unsigned long data_size, int sub_ch_id)
-{
- int j;
- int readpos = 0;
- unsigned char pOutAddr[TS_PACKET_SIZE];
- int remainbyte = 0;
- static int first = 1;
-
- if (first_packet) {
- for (j = 0; j < data_size-4; j++) {
- if (data[j] == 0xFF && ((data[j+1]>>4) == 0xF)) {
- mp2_len = __get_mp2_len(&data[j]);
- DPRINTK("first sync mp2_len= %d\n", mp2_len);
- if (mp2_len <= 0 || mp2_len > MSC_BUF_SIZE)
- return -EPERM;
-
- memcpy(msc_buff, &data[j], data_size-j);
- msc_buff_pos = data_size-j;
- first_packet = 0;
- first = 1;
- return 0;
- }
- }
- } else {
- if (mp2_len <= 0 || mp2_len > MSC_BUF_SIZE) {
- msc_buff_pos = 0;
- first_packet = 1;
- return -EPERM;
- }
-
- remainbyte = data_size;
- if ((mp2_len-msc_buff_pos) >= data_size) {
- memcpy(msc_buff+msc_buff_pos, data, data_size);
- msc_buff_pos += data_size;
- remainbyte = 0;
- } else if (mp2_len-msc_buff_pos > 0) {
- memcpy(msc_buff+msc_buff_pos,
- data, (mp2_len - msc_buff_pos));
- remainbyte = data_size - (mp2_len - msc_buff_pos);
- msc_buff_pos = mp2_len;
- }
-
- if (msc_buff_pos == mp2_len) {
- while (msc_buff_pos > readpos) {
- if (first) {
- pOutAddr[0] = 0xDF;
- pOutAddr[1] = 0xDF;
- pOutAddr[2] = (sub_ch_id<<2);
- pOutAddr[2] |=
- (((msc_buff_pos>>3)>>8)&0x03);
- pOutAddr[3] = (msc_buff_pos>>3)&0xFF;
-
- if (!(msc_buff[0] == 0xFF
- && ((msc_buff[1]>>4) == 0xF))) {
- DPRINTK("!!error 0x%x,0x%x!!\n",
- msc_buff[0],
- msc_buff[1]);
- memset(msc_buff,
- 0,
- MSC_BUF_SIZE);
- msc_buff_pos = 0;
- first_packet = 1;
- return -EPERM;
- }
-
- memcpy(pOutAddr+4, msc_buff, 184);
- readpos = 184;
- first = 0;
- } else {
- pOutAddr[0] = 0xDF;
- pOutAddr[1] = 0xD0;
- if (msc_buff_pos-readpos >= 184) {
- memcpy(pOutAddr+4,
- msc_buff+readpos,
- 184);
- readpos += 184;
- } else {
- memcpy(pOutAddr+4,
- msc_buff+readpos,
- msc_buff_pos-readpos);
- readpos
- += (msc_buff_pos-readpos);
- }
- }
- __add_to_ringbuffer(pOutAddr, TS_PACKET_SIZE);
- }
-
- first = 1;
- msc_buff_pos = 0;
- if (remainbyte > 0) {
- memcpy(msc_buff
- , data+data_size-remainbyte
- , remainbyte);
- msc_buff_pos = remainbyte;
- }
- } else if (msc_buff_pos > mp2_len) {
- DPRINTK("! Error msc_buff_pos=%d, mp2_len =%d!\n",
- msc_buff_pos, mp2_len);
- memset(msc_buff, 0, MSC_BUF_SIZE);
- msc_buff_pos = 0;
- first_packet = 1;
- return -EPERM;
- }
- }
-
- return 0;
-}
-
-bool tdmb_store_data(unsigned char *data, unsigned long len)
-{
- unsigned long i;
- unsigned long maxi;
- unsigned long subch_id = tdmb_get_chinfo();
-
- if (subch_id == 0) {
- return false;
- } else {
- subch_id = subch_id % 1000;
-
- if (subch_id >= 64) {
- __add_ts_data(data, len);
- } else {
- maxi = len/TS_PACKET_SIZE;
- for (i = 0 ; i < maxi ; i++) {
- __add_msc_data(data, TS_PACKET_SIZE, subch_id);
- data += TS_PACKET_SIZE;
- }
- if (len - maxi * TS_PACKET_SIZE)
- __add_msc_data(data,\
- len - maxi * TS_PACKET_SIZE, subch_id);
- }
- return true;
- }
-}
diff --git a/drivers/media/tdmb/tdmb_ebi.c b/drivers/media/tdmb/tdmb_ebi.c
deleted file mode 100644
index 36c86f7..0000000
--- a/drivers/media/tdmb/tdmb_ebi.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-*
-* drivers/media/tdmb/tdmb_ebi.c
-*
-* tdmb driver
-*
-* Copyright (C) (2011, Samsung Electronics)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-#include <linux/io.h>
-#include "tdmb.h"
-
-#define TDMB_BASE_ADDR_PHYS 0x98000000
-void *addr_tdmb_cs4_v;
-
-int tdmb_init_bus(void)
-{
- addr_tdmb_cs4_v = ioremap(TDMB_BASE_ADDR_PHYS, PAGE_SIZE);
- DPRINTK("TDMB EBI2 Init addr_tdmb_cs4_v(0x%x)\n", addr_tdmb_cs4_v);
- return 0;
-}
-
-void tdmb_exit_bus(void)
-{
- addr_tdmb_cs4_v = NULL;
-}
diff --git a/drivers/media/tdmb/tdmb_port_fc8050.c b/drivers/media/tdmb/tdmb_port_fc8050.c
deleted file mode 100644
index 639a648..0000000
--- a/drivers/media/tdmb/tdmb_port_fc8050.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
-*
-* drivers/media/tdmb/tdmb_port_fc8050.c
-*
-* tdmb driver
-*
-* Copyright (C) (2011, Samsung Electronics)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/device.h>
-#include <linux/init.h>
-#include <linux/types.h>
-#include <linux/fcntl.h>
-
-#include <linux/workqueue.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/io.h>
-
-#include <linux/fs.h>
-#include <linux/uaccess.h>
-
-#include <linux/time.h>
-#include <linux/timer.h>
-
-#include <linux/vmalloc.h>
-
-#include "tdmb.h"
-#include "dmbdrv_wrap_fc8050.h"
-
-static bool fc8050_on_air;
-static bool fc8050_pwr_on;
-
-static bool __get_ensemble_info(struct ensemble_info_type *e_info
- , unsigned long freq)
-{
- int i;
- int j;
- int sub_i = 0;
- int cnt;
- const char *ensembleName = NULL;
- struct sub_channel_info_type *fci_sub_info;
-
- DPRINTK("%s : freq(%ld)\n", __func__, freq);
-
- e_info->tot_sub_ch
- = dmb_drv_get_dmb_sub_ch_cnt() + dmb_drv_get_dab_sub_ch_cnt();
- DPRINTK("total subchannel number : %d\n", e_info->tot_sub_ch);
-
- if (e_info->tot_sub_ch > 0) {
- ensembleName = (char *)dmb_drv_get_ensemble_label();
-
- if (ensembleName)
- strncpy((char *)e_info->ensem_label,
- (char *)ensembleName,
- ENSEMBLE_LABEL_MAX);
-
- e_info->ensem_freq = freq;
-
- for (i = 0; i < 2; i++) {
- cnt = (i == 0)
- ? dmb_drv_get_dmb_sub_ch_cnt()
- : dmb_drv_get_dab_sub_ch_cnt();
-
- for (j = 0; j < cnt; j++, sub_i++) {
- fci_sub_info = (i == 0)
- ? dmb_drv_get_fic_dmb(j)
- : dmb_drv_get_fic_dab(j);
-
- e_info->ensem_id
- = fci_sub_info->uiEnsembleID;
- e_info->sub_ch[sub_i].sub_ch_id
- = fci_sub_info->ucSubchID;
- e_info->sub_ch[sub_i].start_addr
- = fci_sub_info->uiStartAddress;
- e_info->sub_ch[sub_i].tmid
- = fci_sub_info->ucTMId;
- e_info->sub_ch[sub_i].svc_type
- = fci_sub_info->ucServiceType;
- e_info->sub_ch[sub_i].svc_id
- = fci_sub_info->ulServiceID;
- if (i == 0)
- memcpy(
- e_info->sub_ch[sub_i].svc_label,
- dmb_drv_get_sub_ch_dmb_label(j),
- SVC_LABEL_MAX);
- else
- memcpy(e_info->sub_ch[sub_i].svc_label,
- dmb_drv_get_sub_ch_dab_label(j),
- SVC_LABEL_MAX);
-
- }
- }
- return true;
- } else {
- return false;
- }
-}
-
-static void fc8050_power_off(void)
-{
- DPRINTK("call TDMB_PowerOff !\n");
-
- if (fc8050_pwr_on) {
- fc8050_on_air = false;
-
- dmb_drv_deinit();
-
- tdmb_control_irq(false);
- tdmb_control_gpio(false);
-
- fc8050_pwr_on = false;
- }
-}
-
-static bool fc8050_power_on(void)
-{
- DPRINTK("fc8050_power_on\n");
-
- if (fc8050_pwr_on) {
- return true;
- } else {
- tdmb_control_gpio(true);
-
- if (dmb_drv_init() == TDMB_FAIL) {
- tdmb_control_gpio(false);
- return false;
- } else {
- tdmb_control_irq(true);
- fc8050_pwr_on = true;
- return true;
- }
- }
-}
-static void fc8050_get_dm(struct tdmb_dm *info)
-{
- if (fc8050_pwr_on == true && fc8050_on_air == true) {
- info->rssi = dmb_drv_get_rssi();
- info->ber = dmb_drv_get_ber();
- info->antenna = dmb_drv_get_ant();
- info->per = 0;
- } else {
- info->rssi = 100;
- info->ber = 2000;
- info->per = 0;
- info->antenna = 0;
- }
-}
-
-static bool fc8050_set_ch(unsigned long freq,
- unsigned char sub_ch_id,
- bool factory_test)
-{
- unsigned long freq_temp = freq / 1000;
- unsigned char sub_ch_id_temp = sub_ch_id % 1000;
- unsigned char svc_type_temp = 0x0;
-
- if (sub_ch_id_temp >= 64) {
- sub_ch_id_temp -= 64;
- svc_type_temp = 0x18;
- }
-
- DPRINTK("fc8050_set_ch freq:%ld, sub_ch_id:%d, svc_type:%d\n",
- freq_temp, sub_ch_id_temp, svc_type_temp);
-
- fc8050_on_air = false;
-
- if (dmb_drv_set_ch(freq_temp, sub_ch_id_temp, svc_type_temp) == 1) {
- DPRINTK("dmb_drv_set_ch Success\n");
- fc8050_on_air = true;
- return true;
- } else {
- DPRINTK("dmb_drv_set_ch Fail\n");
- return false;
- }
-}
-
-static bool fc8050_scan_ch(struct ensemble_info_type *e_info
- , unsigned long freq)
-{
- if (fc8050_pwr_on == false || e_info == NULL)
- return false;
- else if (dmb_drv_scan_ch((freq / 1000)) == TDMB_SUCCESS)
- return __get_ensemble_info(e_info, freq);
- else
- return false;
-}
-
-static unsigned long fc8050_int_size(void)
-{
- return 188*40;
-}
-
-static struct tdmb_drv_func fci_fc8050_drv_func = {
- .power_on = fc8050_power_on,
- .power_off = fc8050_power_off,
- .scan_ch = fc8050_scan_ch,
- .get_dm = fc8050_get_dm,
- .set_ch = fc8050_set_ch,
- .pull_data = dmb_drv_isr,
- .get_int_size = fc8050_int_size,
-};
-
-struct tdmb_drv_func *fc8050_drv_func(void)
-{
- DPRINTK("tdmb_get_drv_func : fc8050\n");
- return &fci_fc8050_drv_func;
-}
diff --git a/drivers/media/tdmb/tdmb_port_mtv318.c b/drivers/media/tdmb/tdmb_port_mtv318.c
deleted file mode 100644
index aa29a9b..0000000
--- a/drivers/media/tdmb/tdmb_port_mtv318.c
+++ /dev/null
@@ -1,257 +0,0 @@
-/*
-*
-* drivers/media/tdmb/tdmb_port_mtv318.c
-*
-* tdmb driver
-*
-* Copyright (C) (2011, Samsung Electronics)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/device.h>
-#include <linux/init.h>
-#include <linux/types.h>
-#include <linux/fcntl.h>
-
-#include <linux/workqueue.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/io.h>
-
-#include <linux/fs.h>
-#include <linux/uaccess.h>
-
-#include <linux/time.h>
-#include <linux/timer.h>
-
-#include <linux/vmalloc.h>
-
-#include "raontv.h"
-#include "raontv_internal.h"
-#include "raontv_ficdec_internal.h"
-#include "raontv_ficdec.h"
-
-#include "tdmb.h"
-
-#define MTV318_INTERRUPT_SIZE (188*10)
-/* #define TDMB_DEBUG_SCAN */
-
-static bool mtv318_on_air;
-static bool mtv318_pwr_on;
-static unsigned char stream_buff[MTV318_INTERRUPT_SIZE + 1];
-
-static void __print_ensemble_info(struct ensemble_info_type *e_info)
-{
- int i = 0;
-
- DPRINTK("ensem_freq(%ld)\n", e_info->ensem_freq);
- DPRINTK("ensem_label(%s)\n", e_info->ensem_label);
- for (i = 0; i < e_info->tot_sub_ch; i++) {
- DPRINTK("sub_ch_id(0x%x)\n", e_info->sub_ch[i].sub_ch_id);
- DPRINTK("start_addr(0x%x)\n", e_info->sub_ch[i].start_addr);
- DPRINTK("tmid(0x%x)\n", e_info->sub_ch[i].tmid);
- DPRINTK("svc_type(0x%x)\n", e_info->sub_ch[i].svc_type);
- DPRINTK("svc_label(%s)\n", e_info->sub_ch[i].svc_label);
- }
-}
-
-static bool __get_ensemble_info(struct ensemble_info_type *e_info
- , unsigned long freq)
-{
- DPRINTK("%s\n", __func__);
- memcpy(e_info,
- rtvFICDEC_GetEnsembleInfo(freq),
- sizeof(struct ensemble_info_type));
-
- if (e_info->tot_sub_ch) {
-#ifdef TDMB_DEBUG_SCAN
- __print_ensemble_info(e_info);
-#endif
- return true;
- } else {
- return false;
- }
-}
-
-static void mtv318_power_off(void)
-{
- DPRINTK("mtv318_power_off\n");
-
- if (mtv318_pwr_on) {
- mtv318_on_air = false;
- tdmb_control_irq(false);
- tdmb_control_gpio(false);
-
- mtv318_pwr_on = false;
-
- RTV_GUARD_DEINIT;
- }
-}
-
-static bool mtv318_power_on(void)
-{
- DPRINTK("mtv318_power_on\n");
-
- if (mtv318_pwr_on) {
- return true;
- } else {
- tdmb_control_gpio(true);
-
- if (rtvTDMB_Initialize(RTV_COUNTRY_BAND_KOREA) != RTV_SUCCESS) {
- tdmb_control_gpio(false);
- return false;
- } else {
- tdmb_control_irq(true);
- mtv318_pwr_on = true;
- return true;
- }
- }
-}
-
-static void mtv318_get_dm(struct tdmb_dm *info)
-{
- if (mtv318_pwr_on == true && mtv318_on_air == true) {
- info->rssi = (rtvTDMB_GetRSSI() / RTV_TDMB_RSSI_DIVIDER);
- info->per = rtvTDMB_GetPER();
- info->ber = rtvTDMB_GetCER();
- info->antenna = rtvTDMB_GetAntennaLevel(info->ber);
- } else {
- info->rssi = 100;
- info->ber = 2000;
- info->per = 0;
- info->antenna = 0;
- }
-}
-
-static bool mtv318_set_ch(unsigned long freq
- , unsigned char subchid
- , bool factory_test)
-{
- bool ret = false;
- enum E_RTV_TDMB_SERVICE_TYPE eServiceType;
-
- DPRINTK("%s : %ld %d\n", __func__, freq, subchid);
-
- if (mtv318_pwr_on) {
- if (subchid >= 64) {
- subchid -= 64;
- eServiceType = RTV_TDMB_SERVICE_VIDEO;
- } else {
- eServiceType = RTV_TDMB_SERVICE_AUDIO;
- }
-
- ret = rtvTDMB_OpenSubChannel((freq/1000),
- subchid,
- eServiceType,
- MTV318_INTERRUPT_SIZE);
- if (ret == RTV_SUCCESS || ret == RTV_NO_MORE_SUB_CHANNEL) {
- mtv318_on_air = true;
- ret = TRUE;
- DPRINTK("mtv318_set_ch Success\n");
- } else {
- DPRINTK("mtv318_set_ch Fail\n");
- }
- }
-
- return ret;
-}
-
-static bool mtv318_scan_ch(struct ensemble_info_type *e_info
- , unsigned long freq)
-{
- bool ret = false;
-
- if (mtv318_pwr_on == true && e_info != NULL) {
- if (rtvTDMB_ScanFrequency(freq/1000) == RTV_SUCCESS) {
- rtvTDMB_OpenFIC();
- ret = rtvFICDEC_Decode(freq/1000);
- rtvTDMB_CloseFIC();
- if (ret == true)
- __get_ensemble_info(e_info, (freq));
- }
- }
-
- return ret;
-}
-
-static void mtv318_pull_data(void)
-{
- unsigned char int_type_val1;
- unsigned char int_type_val2;
-
- RTV_GUARD_LOCK;
-
- RTV_REG_MAP_SEL(DD_PAGE);
- int_type_val1 = RTV_REG_GET(INT_E_STATL);
- int_type_val2 = RTV_REG_GET(INT_E_STATH);
-
- /*===========================================
- * Processing MSC1 interrupt.
- * T-DMB/DAB: 1 VIDEO data or 1 AUDIO data
- * 1 seg: 1 VIDEO data
- * FM: PCM data
- *===========================================*/
- /* MSC1 memory overflow or under run */
- if (int_type_val1&(MSC1_E_INT|MSC1_E_OVER_FLOW|MSC1_E_UNDER_FLOW)) {
- if (int_type_val1 & (MSC1_E_OVER_FLOW|MSC1_E_UNDER_FLOW)) {
- rtv_ClearAndSetupMemory_MSC1();
- /* MSC1 Interrupt status clear */
- RTV_REG_SET(INT_E_UCLRL, 0x04);
- DPRINTK("%s : int_type 0x%x\n",
- __func__, int_type_val1);
- } else {
- /* Get the frame data using CPU or DMA.
- RTV_REG_BURST_GET() macro should implemented by user. */
- RTV_REG_MAP_SEL(MSC1_PAGE);
- RTV_REG_BURST_GET(0x10, stream_buff,
- MTV318_INTERRUPT_SIZE+1);
-
- RTV_REG_MAP_SEL(DD_PAGE);
- /* MSC1 Interrupt status clear */
- RTV_REG_SET(INT_E_UCLRL, 0x04);
-
- tdmb_store_data(&stream_buff[1], MTV318_INTERRUPT_SIZE);
- }
- }
-
- RTV_GUARD_FREE;
-}
-
-static unsigned long mtv318_int_size(void)
-{
- return MTV318_INTERRUPT_SIZE;
-}
-
-static bool mtv318_init(void)
-{
- RTV_GUARD_INIT;
- return true;
-}
-
-static struct tdmb_drv_func raontech_mtv318_drv_func = {
- .init = mtv318_init,
- .power_on = mtv318_power_on,
- .power_off = mtv318_power_off,
- .scan_ch = mtv318_scan_ch,
- .get_dm = mtv318_get_dm,
- .set_ch = mtv318_set_ch,
- .pull_data = mtv318_pull_data,
- .get_int_size = mtv318_int_size,
-};
-
-struct tdmb_drv_func *mtv318_drv_func(void)
-{
- DPRINTK("tdmb_get_drv_func : mtv318\n");
- return &raontech_mtv318_drv_func;
-}
diff --git a/drivers/media/tdmb/tdmb_port_t3900.c b/drivers/media/tdmb/tdmb_port_t3900.c
deleted file mode 100644
index ac40d73..0000000
--- a/drivers/media/tdmb/tdmb_port_t3900.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
-*
-* drivers/media/tdmb/tdmb_port_t3900.c
-*
-* tdmb driver
-*
-* Copyright (C) (2011, Samsung Electronics)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/device.h>
-#include <linux/init.h>
-#include <linux/types.h>
-#include <linux/fcntl.h>
-
-#include <linux/workqueue.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/io.h>
-
-#include <linux/fs.h>
-#include <linux/uaccess.h>
-
-#include <linux/time.h>
-#include <linux/timer.h>
-
-#include <linux/vmalloc.h>
-
-#include "tdmb.h"
-#include "INC_INCLUDES.h"
-
-static struct ST_SUBCH_INFO *st_ch_info;
-static bool t3900_on_air;
-static bool t3900_pwr_on;
-static unsigned char stream_buff[INC_INTERRUPT_SIZE+188];
-
-static bool __get_ensemble_info(struct ensemble_info_type *e_info
- , unsigned long freq)
-{
- int i;
- int j;
- int sub_i = 0;
- int cnt;
- const char *e_name = NULL;
- struct INC_CHANNEL_INFO *inc_sub_info;
-
- DPRINTK("t3900_get_ensemble_info - freq(%ld)\n", freq);
-
- e_info->tot_sub_ch =
- INTERFACE_GETDMB_CNT() + INTERFACE_GETDAB_CNT();
- DPRINTK("total subchannel number : %d\n"
- , e_info->tot_sub_ch);
-
- if (e_info->tot_sub_ch > 0) {
- e_name =
- (char *)INTERFACE_GETENSEMBLE_LABEL(TDMB_I2C_ID80);
-
- if (e_name)
- strncpy((char *)e_info->ensem_label,
- (char *)e_name,
- ENSEMBLE_LABEL_MAX);
-
- e_info->ensem_freq = freq;
-
- for (i = 0; i < 2; i++) {
- cnt = (i == 0) ? INTERFACE_GETDMB_CNT()
- : INTERFACE_GETDAB_CNT();
-
- for (j = 0; j < cnt; j++, sub_i++) {
- inc_sub_info = (i == 0)
- ? INTERFACE_GETDB_DMB(j)
- : INTERFACE_GETDB_DAB(j);
- e_info->sub_ch[sub_i].sub_ch_id
- = inc_sub_info->ucSubChID;
- e_info->sub_ch[sub_i].start_addr
- = inc_sub_info->uiStarAddr;
- e_info->sub_ch[sub_i].tmid
- = inc_sub_info->uiTmID;
- e_info->sub_ch[sub_i].svc_type
- = inc_sub_info->ucServiceType;
- e_info->sub_ch[sub_i].svc_id
- = inc_sub_info->ulServiceID;
- memcpy(e_info->sub_ch[sub_i].svc_label,
- inc_sub_info->aucLabel,
- SVC_LABEL_MAX);
-
- }
- }
- return true;
- } else {
- return false;
- }
-}
-
-static void t3900_power_off(void)
-{
- DPRINTK("t3900_power_off\n");
-
- if (t3900_pwr_on) {
- t3900_on_air = false;
-
- INC_STOP(TDMB_I2C_ID80);
-
- tdmb_control_irq(false);
- tdmb_control_gpio(false);
-
- vfree(st_ch_info);
- st_ch_info = NULL;
-
- t3900_pwr_on = false;
- }
-}
-
-static bool t3900_power_on(void)
-{
- DPRINTK("t3900_power_on\n");
-
- if (t3900_pwr_on) {
- return true;
- } else {
- st_ch_info = vmalloc(sizeof(struct ST_SUBCH_INFO));
- if (st_ch_info == NULL) {
- return false;
- } else {
- tdmb_control_gpio(true);
-
- if (INTERFACE_INIT(TDMB_I2C_ID80) != INC_SUCCESS) {
- tdmb_control_gpio(false);
-
- vfree(st_ch_info);
- st_ch_info = NULL;
-
- return false;
- } else {
- tdmb_control_irq(true);
- t3900_pwr_on = true;
- return true;
- }
- }
- }
-}
-
-static void t3900_get_dm(struct tdmb_dm *info)
-{
- if (t3900_pwr_on == true && t3900_on_air == true) {
- INC_STATUS_CHECK(TDMB_I2C_ID80);
- info->rssi = INC_GET_RSSI(TDMB_I2C_ID80);
- info->ber = INC_GET_SAMSUNG_BER(TDMB_I2C_ID80);
- info->antenna = INC_GET_SAMSUNG_ANT_LEVEL(TDMB_I2C_ID80);
- info->per = 0;
- } else {
- info->rssi = 100;
- info->ber = 2000;
- info->per = 0;
- info->antenna = 0;
- }
-}
-
-static bool t3900_set_ch(unsigned long freq
- , unsigned char subchid
- , bool factory_test)
-{
- unsigned char ret_err;
- bool ret = false;
-
- if (t3900_pwr_on) {
- st_ch_info->nSetCnt = 1;
- st_ch_info->astSubChInfo[0].ulRFFreq = freq / 1000;
- st_ch_info->astSubChInfo[0].ucSubChID = subchid;
- st_ch_info->astSubChInfo[0].ucServiceType = 0x0;
- if (st_ch_info->astSubChInfo[0].ucSubChID >= 64) {
- st_ch_info->astSubChInfo[0].ucSubChID -= 64;
- st_ch_info->astSubChInfo[0].ucServiceType = 0x18;
- }
-
- t3900_on_air = false;
-
- if (factory_test == false)
- ret_err = INTERFACE_START(
- TDMB_I2C_ID80, st_ch_info);
- else
- ret_err = INTERFACE_START_TEST(
- TDMB_I2C_ID80, st_ch_info);
-
- if (ret_err == INC_SUCCESS) {
- /* TODO Ensemble good code .... */
- t3900_on_air = true;
- ret = true;
- } else if (ret_err == INC_RETRY) {
- DPRINTK("IOCTL_TDMB_ASSIGN_CH retry\n");
-
- t3900_power_off();
- t3900_power_on();
-
- if (factory_test == false)
- ret_err = INTERFACE_START(
- TDMB_I2C_ID80, st_ch_info);
- else
- ret_err = INTERFACE_START_TEST(
- TDMB_I2C_ID80, st_ch_info);
-
- if (ret_err == INC_SUCCESS) {
- /* TODO Ensemble good code .... */
- t3900_on_air = true;
- ret = true;
- }
- }
- }
-
- return ret;
-}
-
-static bool t3900_scan_ch(struct ensemble_info_type *e_info
- , unsigned long freq)
-{
- if (t3900_pwr_on == false || e_info == NULL)
- return false;
- else if (INTERFACE_SCAN(TDMB_I2C_ID80, (freq / 1000)) == INC_SUCCESS)
- return __get_ensemble_info(e_info, freq);
- else
- return false;
-}
-
-static void t3900_pull_data(void)
-{
- unsigned short remain_len = INC_INTERRUPT_SIZE;
-#if !(INC_INTERRUPT_SIZE <= 0xFFF)
- unsigned short idx = 0;
- unsigned short spi_size = 0xFFF;
-#endif
-
- memset(stream_buff, 0, sizeof(stream_buff));
-
-#if (INC_INTERRUPT_SIZE <= 0xFFF)
- INC_CMD_READ_BURST(
- TDMB_I2C_ID80, APB_STREAM_BASE
- , stream_buff
- , remain_len);
-#else
- while (remain_len) {
- if (remain_len >= spi_size) {
- INC_CMD_READ_BURST(
- TDMB_I2C_ID80, APB_STREAM_BASE
- , &stream_buff[idx*spi_size]
- , spi_size);
- idx++;
- remain_len -= spi_size;
- } else {
- INC_CMD_READ_BURST(
- TDMB_I2C_ID80, APB_STREAM_BASE
- , &stream_buff[idx*spi_size]
- , remain_len);
- remain_len = 0;
- }
- }
-#endif
-
- tdmb_store_data(stream_buff, INC_INTERRUPT_SIZE);
-}
-
-static unsigned long t3900_int_size(void)
-{
- return INC_INTERRUPT_SIZE;
-}
-
-static struct tdmb_drv_func inc_t3900_drv_func = {
- .power_on = t3900_power_on,
- .power_off = t3900_power_off,
- .scan_ch = t3900_scan_ch,
- .get_dm = t3900_get_dm,
- .set_ch = t3900_set_ch,
- .pull_data = t3900_pull_data,
- .get_int_size = t3900_int_size,
-};
-
-struct tdmb_drv_func *t3900_drv_func(void)
-{
- DPRINTK("tdmb_get_drv_func : t3900\n");
- return &inc_t3900_drv_func;
-}
diff --git a/drivers/media/tdmb/tdmb_port_tcc3170.c b/drivers/media/tdmb/tdmb_port_tcc3170.c
deleted file mode 100644
index b6e6abe..0000000
--- a/drivers/media/tdmb/tdmb_port_tcc3170.c
+++ /dev/null
@@ -1,478 +0,0 @@
-/*
-*
-* drivers/media/tdmb/tdmb_port_tcc3170.c
-*
-* tdmb driver
-*
-* Copyright (C) (2011, Samsung Electronics)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/device.h>
-#include <linux/init.h>
-#include <linux/types.h>
-#include <linux/fcntl.h>
-
-#include <linux/workqueue.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/io.h>
-
-#include <linux/fs.h>
-#include <linux/uaccess.h>
-
-#include <linux/time.h>
-#include <linux/timer.h>
-
-#include <linux/vmalloc.h>
-#include <linux/delay.h>
-#include <linux/sched.h>
-#include <linux/wait.h>
-
-#include "tdmb.h"
-
-#include "tcpal_os.h"
-#include "tcpal_queue.h"
-
-#include "tcbd_feature.h"
-#include "tcbd_api_common.h"
-#include "tcbd_drv_io.h"
-#include "tcbd_stream_parser.h"
-#include "tcc_fic_decoder.h"
-#include "tcbd_drv_ip.h"
-#include "tcc_fic_decoder.h"
-
-#include "tcbd_hal.h"
-
-/* #define TDMB_DEBUG_SCAN */
-
-static DEFINE_MUTEX(tcc3170_mutex);
-
-static DECLARE_WAIT_QUEUE_HEAD(wq);
-static bool scan_done;
-
-static bool tcc3170_on_air;
-static bool tcc3170_pwr_on;
-static struct tcbd_device tcc3170_device;
-static unsigned char prev_subch = 0xFF;
-
-#ifdef TDMB_DEBUG_SCAN
-static void __print_ensemble_info(struct ensemble_info_type *e_info)
-{
- int i = 0;
-
- DPRINTK("ensem_freq(%ld)\n", e_info->ensem_freq);
- DPRINTK("ensem_label(%s)\n", e_info->ensem_label);
- for (i = 0; i < e_info->tot_sub_ch; i++) {
- DPRINTK("[%d]\n", i);
- DPRINTK("svc_label(%s)\n", e_info->sub_ch[i].svc_label);
- DPRINTK("sub_ch_id(0x%x)\n", e_info->sub_ch[i].sub_ch_id);
- DPRINTK("start_addr(0x%x)\n", e_info->sub_ch[i].start_addr);
- DPRINTK("tmid(0x%x)\n", e_info->sub_ch[i].tmid);
- DPRINTK("svc_type(0x%x)\n", e_info->sub_ch[i].svc_type);
- }
-}
-#endif
-
-static bool __get_ensemble_info(struct ensemble_info_type *e_info
- , unsigned long freq)
-{
- struct tcc_ensemble_info *ensbl_info;
- struct tcc_ensemble *esbl = &ensbl_info->ensbl;
- struct tcc_service_info *svc_info;
- struct tcc_service_comp_info *svc_comp_info;
-
- unsigned char i;
- unsigned char cnt = 0;
-
- ensbl_info = tcc_fic_get_ensbl_info(1);
- esbl = &ensbl_info->ensbl;
-
- memset(e_info, 0, sizeof(e_info));
-
- e_info->ensem_freq = freq;
- e_info->ensem_id = esbl->eid;
- strncpy(e_info->ensem_label, esbl->label, \
- ENSEMBLE_LABEL_MAX);
-
- for (i = 0; i < esbl->num_svc; i++) {
- svc_info = &ensbl_info->svc_info[i];
- svc_comp_info = &svc_info->svc_comp_info[0];
- if ((svc_comp_info->svc_comp.tmid == 0x00 &&
- svc_comp_info->svc_comp.ascty_dscty == 0x00) ||
- (svc_comp_info->svc_comp.tmid == 0x01 &&
- svc_comp_info->svc_comp.ascty_dscty == 0x18)) {
- e_info->sub_ch[cnt].sub_ch_id = \
- svc_comp_info->sub_ch.subch_id;
- e_info->sub_ch[cnt].start_addr = \
- svc_comp_info->sub_ch.start_cu;
- e_info->sub_ch[cnt].tmid = \
- svc_comp_info->svc_comp.tmid;
- e_info->sub_ch[cnt].svc_type = \
- svc_comp_info->svc_comp.ascty_dscty;
- e_info->sub_ch[cnt].svc_id = \
- svc_comp_info->svc_comp.scid;
- strncpy(e_info->sub_ch[cnt].svc_label, \
- svc_info->svc.svc_label, SVC_LABEL_MAX);
- cnt++;
- }
- }
- e_info->tot_sub_ch = cnt;
-
-#ifdef TDMB_DEBUG_SCAN
- __print_ensemble_info(e_info);
-#endif
-
- return (e_info->tot_sub_ch > 0) ? true : false;
-}
-
-static void tcc3170_power_off(void)
-{
- DPRINTK("call TDMB_PowerOff !\n");
-
- mutex_lock(&tcc3170_mutex);
-
- if (tcc3170_pwr_on) {
- tcc3170_on_air = false;
-
- if (prev_subch != 0xFF) {
- tcbd_unregister_service(&tcc3170_device, prev_subch);
- prev_subch = 0xFF;
- }
-
- tcbd_io_close(&tcc3170_device);
-
- tdmb_control_irq(false);
- tdmb_control_gpio(false);
-
- tcc3170_pwr_on = false;
- }
-
- mutex_unlock(&tcc3170_mutex);
-
-}
-
-static bool tcc3170_power_on(void)
-{
- unsigned char chip_id = 0;
- s32 ret;
-
- DPRINTK("tcc3170_power_on\n");
-
- if (tcc3170_pwr_on) {
- return true;
- } else {
- tdmb_control_gpio(true);
-
- /* command io open */
- ret = tcbd_io_open(&tcc3170_device);
- if (ret < 0) {
- DPRINTK("failed io open %d\n", (int)ret);
- tdmb_control_gpio(false);
- return false;
- }
-
- /* check chip id */
- tcbd_reg_read(&tcc3170_device, TCBD_CHIPID, &chip_id);
- DPRINTK("chip id : 0X%X\n", chip_id);
- if (chip_id != TCBD_CHIPID_VALUE) {
- DPRINTK("invalid chip id !!! exit!\n");
- tcbd_io_close(&tcc3170_device);
- tdmb_control_gpio(false);
- return false;
- } else {
-#ifdef CONFIG_TDMB_SPI
- tcbd_select_peri(&tcc3170_device, PERI_TYPE_SPI_ONLY);
- tcbd_change_irq_mode \
- (&tcc3170_device, INTR_MODE_LEVEL_LOW);
-#else
-#error
-#endif /* CONFIG_TDMB_SPI */
- if (tcbd_device_start \
- (&tcc3170_device, CLOCK_19200KHZ) < 0) {
- DPRINTK("could not start device!!\n");
- tcbd_io_close(&tcc3170_device);
- tdmb_control_gpio(false);
- return false;
- } else {
- tdmb_control_irq(true);
- tcc3170_pwr_on = true;
- return true;
- }
- }
- }
-}
-
-
-static s32 tcbd_get_ant_level(u32 pcber, s32 rssi)
-{
- s32 ant_level = 0;
-
- s32 ant75[] = {300, 450, 600, 800, 950, 1150, };
- s32 ant80[] = {-1, 450, 600, 800, 950, 1150, };
- s32 ant85[] = {-1, -1, 600, 800, 900, 1150, };
- s32 ant90[] = {-1, -1, -1, 800, 950, 1150, };
- s32 ant100[] = {-1, -1, -1, -1, 950, 1150, };
- s32 *ant = ant75;
-
- if (rssi > -75)
- ant = ant75;
- else if (rssi > -80)
- ant = ant80;
- else if (rssi > -85)
- ant = ant85;
- else if (rssi > -90)
- ant = ant90;
- else if (rssi > -100)
- ant = ant100;
-
- if ((s32)pcber <= ant[0])
- ant_level = 6;
- else if ((s32)pcber <= ant[1])
- ant_level = 5;
- else if ((s32)pcber <= ant[2])
- ant_level = 4;
- else if ((s32)pcber <= ant[3])
- ant_level = 3;
- else if ((s32)pcber <= ant[4])
- ant_level = 2;
- else if ((s32)pcber <= ant[5])
- ant_level = 1;
- else if ((s32)pcber > ant[5])
- ant_level = 0;
-
- return ant_level;
-}
-
-static void tcc3170_get_dm(struct tdmb_dm *info)
-{
- struct tcbd_status_data status;
-
- if (tcc3170_pwr_on == true && tcc3170_on_air == true) {
- tcbd_read_signal_info(&tcc3170_device, &status);
-
- info->ber = status.pcber_moving_avg;
- info->rssi = status.rssi;
- info->antenna = tcbd_get_ant_level(status.pcber, status.rssi);
- info->per = status.tsper;
- } else {
- info->rssi = 100;
- info->ber = 3000;
- info->per = 100;
- info->antenna = 0;
- }
-}
-
-static s32 __set_frequency(unsigned long freqKHz, bool scan_mode)
-{
- s32 ret = 0;
- u8 status;
-
- tcbd_disable_irq(&tcc3170_device, 0);
- tcc_fic_parser_init();
- ret = tcbd_tune_frequency(&tcc3170_device, freqKHz, 1500);
- if (ret < 0) {
- DPRINTK("tcbd_tune_frequency fail %d\n", ret);
- return -EFAULT;
- }
-
- if (scan_mode) {
- ret = tcbd_wait_tune(&tcc3170_device, &status);
- if (ret < 0) {
- DPRINTK("wait_tune fail status:0x%02X, ret:0x%x\n", \
- status, ret);
- ret = -EFAULT;
- }
- }
- DPRINTK("%s : status:0x%02X, ret:0x%x\n", __func__, status, ret);
-
- if (ret == TCERR_SUCCESS) {
-#if defined(__CSPI_ONLY__)
- tcbd_enable_irq(&tcc3170_device, TCBD_IRQ_EN_DATAINT);
-#else
-#error
-#endif
- }
- return ret;
-}
-
-static bool tcc3170_set_ch(unsigned long freq,
- unsigned char sub_ch_id,
- bool factory_test)
-{
- unsigned long freq_temp = freq / 1000;
- unsigned char sub_ch_id_temp = sub_ch_id % 1000;
- s32 ret;
-
- DPRINTK("tcc3170_set_ch freq:%ld, sub_ch_id:%d\n",
- freq_temp, sub_ch_id_temp);
-
- tcc3170_on_air = false;
-
- if (prev_subch != 0xFF) {
- tcbd_unregister_service(&tcc3170_device, prev_subch);
- prev_subch = 0xFF;
- }
-
- if (__set_frequency((freq/1000), true) == TCERR_SUCCESS) {
- if (sub_ch_id_temp >= 64) {
- sub_ch_id_temp -= 64;
- ret = tcbd_register_service(
- &tcc3170_device, sub_ch_id_temp, 1);
- } else {
- ret = tcbd_register_service(
- &tcc3170_device, sub_ch_id_temp, 0);
- }
- if (ret == TCERR_SUCCESS) {
- DPRINTK("dmb_drv_set_ch Success\n");
- prev_subch = sub_ch_id_temp - 64;
- tcc3170_on_air = true;
- }
- }
-
- if (tcc3170_on_air == false)
- DPRINTK("dmb_drv_set_ch Fail\n");
-
- return tcc3170_on_air;
-}
-
-static bool tcc3170_scan_ch(struct ensemble_info_type *e_info
- , unsigned long freq)
-{
- bool ret = false;
-
- if (tcc3170_pwr_on == true && e_info != NULL) {
- if (prev_subch != 0xFF) {
- tcbd_unregister_service(&tcc3170_device, prev_subch);
- prev_subch = 0xFF;
- }
-
- tcc_fic_parser_init();
- scan_done = false;
- if (__set_frequency((freq/1000), true) == TCERR_SUCCESS) {
- msleep(1200); /* optimize this point */
-
- if (scan_done == true)
- ret = __get_ensemble_info(e_info, freq);
- }
- }
-
- return ret;
-}
-
-static unsigned long tcc3170_int_size(void)
-{
- return TCBD_MAX_THRESHOLD * 2;
-}
-
-static void tcc3170_pull_data(void)
-{
- s32 size, ret = 0;
- s8 irq_status;
- s8 irq_error;
- static u8 buff_read[TCBD_MAX_THRESHOLD*2];
-
- if (!tcc3170_pwr_on)
- return;
-
- mutex_lock(&tcc3170_mutex);
-
- ret = tcbd_read_irq_status(&tcc3170_device, &irq_status, &irq_error);
- ret |= tcbd_clear_irq(&tcc3170_device, irq_status);
- ret |= tcbd_read_stream(&tcc3170_device, buff_read, &size);
- if (ret == 0 && !irq_error) {
- tcbd_split_stream(0, buff_read, size);
- } else {
- DPRINTK("### buffer is full, skip the data "
- "(ret:%d, status=0x%02X, error=0x%02X) ###\n",
- ret, irq_status, irq_error);
-
- tcbd_init_stream_data_config(&tcc3170_device,
- ENABLE_CMD_FIFO,
- tcc3170_device.selected_buff,
- tcc3170_device.intr_threshold);
- /*tcbd_reset_ip(device, TCBD_SYS_COMP_ALL, TCBD_SYS_COMP_EP);*/
- tcbd_init_parser(0, NULL);
- }
- mutex_unlock(&tcc3170_mutex);
-}
-
-static s32 __stream_callback(
- s32 _dev_idx,
- u8 *_stream,
- s32 _size,
- u8 _subch_id,
- u8 _type)
-{
- u8 *stream;
- s32 size;
- s32 ret, i = 0;
-
-#ifdef __CALLBACK_BUFFER_HEADER__
- stream = _stream + SIZE_BUFF_HEADER;
- size = _size - SIZE_BUFF_HEADER;
-#else
- stream = _stream;
- size = _size;
-#endif
-
- /* DPRINTK("%s : _type %d size %d\n", __func__, _type, size); */
-
- switch (_type) {
- case DATA_TYPE_FIC: /*FIC*/
- for (i = 0; i < size/TCBD_FIC_SIZE; i++) {
- ret = tcc_fic_run_decoder(stream + (i*TCBD_FIC_SIZE),
- MAX_FIC_SIZE);
- if (ret > 0)
- scan_done = true;
- }
- break;
- case DATA_TYPE_MSC: /*MSC*/
- tdmb_store_data(stream, size);
- break;
- case DATA_TYPE_STATUS: /*STATUS*/
- tcbd_update_status(stream, size, NULL);
- default:
- break;
- }
- return 0;
-}
-static bool tcc3170_init(void)
-{
-#if defined(__CSPI_ONLY__)
- tcpal_set_cspi_io_function();
-#else
-#error
-#endif
- tcbd_init_parser(0, __stream_callback);
-
- return true;
-}
-
-static struct tdmb_drv_func telechips_tcc3170_drv_func = {
- .init = tcc3170_init,
- .power_on = tcc3170_power_on,
- .power_off = tcc3170_power_off,
- .scan_ch = tcc3170_scan_ch,
- .get_dm = tcc3170_get_dm,
- .set_ch = tcc3170_set_ch,
- .pull_data = tcc3170_pull_data,
- .get_int_size = tcc3170_int_size,
-};
-
-struct tdmb_drv_func *tcc3170_drv_func(void)
-{
- DPRINTK("tdmb_get_drv_func : tcc3170\n");
- return &telechips_tcc3170_drv_func;
-}
diff --git a/drivers/media/tdmb/tdmb_spi.c b/drivers/media/tdmb/tdmb_spi.c
deleted file mode 100644
index 014fd00..0000000
--- a/drivers/media/tdmb/tdmb_spi.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-*
-* drivers/media/tdmb/tdmb_spi.c
-*
-* tdmb driver
-*
-* Copyright (C) (2011, Samsung Electronics)
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation version 2.
-*
-* This program is distributed "as is" WITHOUT ANY WARRANTY of any
-* kind, whether express or implied; without even the implied warranty
-* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-*/
-
-#include <linux/spi/spi.h>
-#include "tdmb.h"
-
-struct spi_device *spi_dmb;
-
-static int tdmbspi_probe(struct spi_device *spi)
-{
- int ret;
-
- spi_dmb = spi;
-
- DPRINTK("tdmbspi_probe() spi_dmb : 0x%x\n", (unsigned int)spi_dmb);
-
- spi->mode = SPI_MODE_0;
- spi->bits_per_word = 8;
- ret = spi_setup(spi);
- if (ret < 0) {
- DPRINTK("spi_setup() fail ret : %d\n", ret);
- return ret;
- }
-
- return 0;
-}
-
-static int __devexit tdmbspi_remove(struct spi_device *spi)
-{
- return 0;
-}
-
-static struct spi_driver tdmbspi_driver = {
- .driver = {
- .name = "tdmbspi",
- .bus = &spi_bus_type,
- .owner = THIS_MODULE,
- },
- .probe = tdmbspi_probe,
- .remove = __devexit_p(tdmbspi_remove),
-};
-
-int tdmb_init_bus(void)
-{
- return spi_register_driver(&tdmbspi_driver);
-}
-
-void tdmb_exit_bus(void)
-{
- spi_unregister_driver(&tdmbspi_driver);
-}
-
-struct spi_device *tdmb_get_spi_handle(void)
-{
- return spi_dmb;
-}
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 25c56cb..196c492 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -87,7 +87,7 @@ config ATMEL_PWM
depends on AVR32 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91CAP9
help
This option enables device driver support for the PWM channels
- on certain Atmel processors. Pulse Width Modulation is used for
+ on certain Atmel processors. Pulse Width Modulation is used for
purposes including software controlled power-efficient backlights
on LCD displays, motor control, and waveform generation.
@@ -385,14 +385,14 @@ config SENSORS_BH1780
will be called bh1780gli.
config SENSORS_BH1770
- tristate "BH1770GLC / SFH7770 combined ALS - Proximity sensor"
- depends on I2C
- ---help---
- Say Y here if you want to build a driver for BH1770GLC (ROHM) or
+ tristate "BH1770GLC / SFH7770 combined ALS - Proximity sensor"
+ depends on I2C
+ ---help---
+ Say Y here if you want to build a driver for BH1770GLC (ROHM) or
SFH7770 (Osram) combined ambient light and proximity sensor chip.
- To compile this driver as a module, choose M here: the
- module will be called bh1770glc. If unsure, say N here.
+ To compile this driver as a module, choose M here: the
+ module will be called bh1770glc. If unsure, say N here.
config SENSORS_APDS990X
tristate "APDS990X combined als and proximity sensors"
@@ -694,10 +694,6 @@ config STMPE811_ADC
---help---
Say yes here to build support for STMPE811 8 channel ADC driver
-config MPU_SENSORS_MPU3050
- tristate "MPU3050"
- depends on I2C
-
config MPU_SENSORS_MPU6050
tristate "MPU6050"
depends on I2C
@@ -706,22 +702,11 @@ source "drivers/misc/c2port/Kconfig"
source "drivers/misc/eeprom/Kconfig"
source "drivers/misc/cb710/Kconfig"
source "drivers/misc/iwmc3200top/Kconfig"
-if MPU_SENSORS_MPU3050
-source "drivers/misc/mpu3050/Kconfig"
-endif
-if MPU_SENSORS_MPU6050
-source "drivers/misc/inv_mpu/Kconfig"
-endif
source "drivers/misc/ti-st/Kconfig"
source "drivers/misc/lis3lv02d/Kconfig"
source "drivers/misc/carma/Kconfig"
-source "drivers/misc/c2c/Kconfig"
source "drivers/misc/modem_if/Kconfig"
-source "drivers/misc/modem_if_na/Kconfig"
-if MACH_U1
-source "drivers/misc/modem_if_u1/Kconfig"
-endif
config SLP_LOWMEM_NOTIFY
bool "Driver for SLP Low Memory Notification"
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index ec1c23d..91f74c5 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -41,7 +41,6 @@ obj-$(CONFIG_HMC6352) += hmc6352.o
obj-y += eeprom/
obj-y += cb710/
obj-$(CONFIG_MPU_SENSORS_MPU3050) += mpu3050/
-obj-$(CONFIG_MPU_SENSORS_MPU6050) += inv_mpu/
obj-$(CONFIG_SPEAR13XX_PCIE_GADGET) += spear13xx_pcie_gadget.o
obj-$(CONFIG_VMWARE_BALLOON) += vmw_balloon.o
obj-$(CONFIG_ARM_CHARLCD) += arm-charlcd.o
@@ -53,19 +52,12 @@ obj-y += carma/
obj-$(CONFIG_WL127X_RFKILL) += wl127x-rfkill.o
obj-$(CONFIG_APANIC) += apanic.o
obj-$(CONFIG_SENSORS_AK8975) += akm8975.o
-obj-$(CONFIG_SAMSUNG_C2C) += c2c/
obj-$(CONFIG_USBHUB_USB3503) += usb3503.o
obj-$(CONFIG_USBHUB_USB3503_OTG_CONN) += usb3503_otg_conn.o
obj-$(CONFIG_USBHUB_USB3803) += usb3803.o
-ifeq ($(CONFIG_SEC_MODEM_P8LTE),y)
-obj-$(CONFIG_SEC_MODEM) += modem_if_na/
-else
-ifeq ($(CONFIG_MACH_U1),y)
-obj-$(CONFIG_SEC_MODEM) += modem_if_u1/
-else
+
obj-$(CONFIG_SEC_MODEM) += modem_if/
-endif
-endif
+
obj-$(CONFIG_MFD_MAX77693) += max77693-muic.o
obj-$(CONFIG_STMPE811_ADC) += stmpe811-adc.o
obj-$(CONFIG_JACK_MON) += jack.o
diff --git a/drivers/misc/c2c/Kconfig b/drivers/misc/c2c/Kconfig
deleted file mode 100644
index 3b91fa5..0000000
--- a/drivers/misc/c2c/Kconfig
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# C2C XXX
-#
-
-menuconfig SAMSUNG_C2C
- tristate "C2C Support"
- depends on CPU_EXYNOS4212 || CPU_EXYNOS5250
- default n
- help
- It is for supporting C2C driver.
-
-if SAMSUNG_C2C
-config C2C_DEBUG
- bool "C2C Debugging - Print C2C debug messages"
- default y
- help
- Print C2C debug messages.
-
-config C2C_IPC_ENABLE
- bool "Enable C2C IPC via the Shared Memory"
- default n
- help
- Enable C2C IPC via the Shared Memory.
-endif # SAMSUNG_C2C
diff --git a/drivers/misc/c2c/Makefile b/drivers/misc/c2c/Makefile
deleted file mode 100644
index ef12d10..0000000
--- a/drivers/misc/c2c/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Makefile for C2C
-#
-
-obj-$(CONFIG_SAMSUNG_C2C) += samsung-c2c.o
diff --git a/drivers/misc/c2c/samsung-c2c.c b/drivers/misc/c2c/samsung-c2c.c
deleted file mode 100644
index fe58c3d..0000000
--- a/drivers/misc/c2c/samsung-c2c.c
+++ /dev/null
@@ -1,712 +0,0 @@
-/*
- * Samsung C2C driver
- *
- * Copyright (C) 2011 Samsung Electronics Co.Ltd
- * Author: Kisang Lee <kisang80.lee@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- */
-
-#include <linux/clk.h>
-#include <linux/delay.h>
-#include <linux/err.h>
-#include <linux/init.h>
-#include <linux/input.h>
-#include <linux/interrupt.h>
-#include <linux/io.h>
-#include <linux/module.h>
-#include <linux/miscdevice.h>
-#include <linux/platform_device.h>
-#include <linux/slab.h>
-#include <linux/sched.h>
-#include <linux/cma.h>
-#include <linux/sysfs.h>
-#ifdef ENABLE_C2CSTATE_TIMER
-#include <linux/timer.h>
-#endif
-#ifdef CONFIG_C2C_IPC_ENABLE
-#include <linux/vmalloc.h>
-#include <asm/page.h>
-#include <asm/pgtable.h>
-#endif
-#include <asm/mach-types.h>
-
-#include <mach/c2c.h>
-#include <mach/regs-c2c.h>
-#include <mach/regs-pmu.h>
-#include <mach/regs-pmu5.h>
-#include <mach/pmu.h>
-#include <plat/cpu.h>
-
-#include "samsung-c2c.h"
-
-void (*exynos_c2c_request_pwr_mode)(enum c2c_pwr_mode mode);
-
-#ifdef ENABLE_C2CSTATE_TIMER
-struct timer_list c2c_status_timer;
-
-static void c2c_timer_func(unsigned long data)
-{
- /* Check C2C state */
- struct exynos_c2c_platdata *pdata = (struct exynos_c2c_platdata *)data;
- static int old_state = 0xff;
- int current_state = 0;
-
- if (pdata->get_c2c_state() != NULL) {
- current_state = pdata->get_c2c_state();
- if (current_state != old_state) {
- dev_info(c2c_con.c2c_dev, "C2C state is chaged (0x%x --> 0x%x)\n",
- old_state, current_state);
- old_state = current_state;
- }
- }
- c2c_status_timer.expires = jiffies + (HZ/5);
- add_timer(&c2c_status_timer);
-}
-#endif
-
-void c2c_reset_ops(void)
-{
- /* This function will be only used for EVT0 or EVT0.1 */
- u32 set_clk = 0;
-
- if (c2c_con.opp_mode == C2C_OPP100)
- set_clk = c2c_con.clk_opp100;
- else if (c2c_con.opp_mode == C2C_OPP50)
- set_clk = c2c_con.clk_opp50;
- else if (c2c_con.opp_mode == C2C_OPP25)
- set_clk = c2c_con.clk_opp25;
-
- dev_info(c2c_con.c2c_dev, "c2c_reset_ops()\n");
- clk_set_rate(c2c_con.c2c_sclk, (set_clk + 1) * MHZ);
- c2c_set_func_clk(set_clk);
-
- /* First phase - C2C block reset */
- c2c_set_reset(C2C_CLEAR);
- c2c_set_reset(C2C_SET);
- /* Second phase - Clear clock gating */
- c2c_set_clock_gating(C2C_CLEAR);
- /* Third phase - Retention reg */
- c2c_writel(c2c_con.retention_reg, EXYNOS_C2C_IRQ_EN_SET1);
- c2c_writel(set_clk, EXYNOS_C2C_FCLK_FREQ);
- c2c_writel(set_clk, EXYNOS_C2C_RX_MAX_FREQ);
- /* Last phase - Set clock gating */
- c2c_set_clock_gating(C2C_SET);
-}
-
-static ssize_t c2c_ctrl_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int ret = 0;
- ret = sprintf(buf, "C2C State");
- c2c_set_clock_gating(C2C_CLEAR);
- ret += sprintf(&buf[ret], "SysReg : 0x%x\n",
- readl(c2c_con.c2c_sysreg));
- ret += sprintf(&buf[ret], "Port Config : 0x%x\n",
- c2c_readl(EXYNOS_C2C_PORTCONFIG));
- ret += sprintf(&buf[ret], "FCLK_FREQ : %d\n",
- c2c_readl(EXYNOS_C2C_FCLK_FREQ));
- ret += sprintf(&buf[ret], "RX_MAX_FREQ : %d\n",
- c2c_readl(EXYNOS_C2C_RX_MAX_FREQ));
- ret += sprintf(&buf[ret], "IRQ_EN_SET1 : 0x%x\n",
- c2c_readl(EXYNOS_C2C_IRQ_EN_SET1));
- ret += sprintf(&buf[ret], "Get C2C sclk rate : %ld\n",
- clk_get_rate(c2c_con.c2c_sclk));
- ret += sprintf(&buf[ret], "Get C2C aclk rate : %ld\n",
- clk_get_rate(c2c_con.c2c_aclk));
- c2c_set_clock_gating(C2C_SET);
-
- return ret;
-}
-
-static ssize_t c2c_ctrl_store(struct device *dev, struct device_attribute *attr,
- const char *buf, size_t count)
-{
- int ops_num, opp_val, req_clk;
- sscanf(buf, "%d", &ops_num);
-
- switch (ops_num) {
- case 1:
- c2c_reset_ops();
- break;
- case 2:
- case 3:
- case 4:
- opp_val = ops_num - 1;
- req_clk = 0;
- dev_info(c2c_con.c2c_dev, "Set current OPP mode (%d)\n", opp_val);
-
- if (opp_val == C2C_OPP100)
- req_clk = c2c_con.clk_opp100;
- else if (opp_val == C2C_OPP50)
- req_clk = c2c_con.clk_opp50;
- else if (opp_val == C2C_OPP25)
- req_clk = c2c_con.clk_opp25;
-
- if (opp_val == 0 || req_clk == 1) {
- dev_info(c2c_con.c2c_dev, "This mode is not reserved in OPP mode.\n");
- } else {
- c2c_set_clock_gating(C2C_CLEAR);
- if (c2c_con.opp_mode < opp_val) { /* increase case */
- clk_set_rate(c2c_con.c2c_sclk, (req_clk + 1) * MHZ);
- c2c_writel(req_clk, EXYNOS_C2C_FCLK_FREQ);
- c2c_set_func_clk(req_clk);
- c2c_writel(req_clk, EXYNOS_C2C_RX_MAX_FREQ);
- } else if (c2c_con.opp_mode > opp_val) { /* decrease case */
- c2c_writel(req_clk, EXYNOS_C2C_RX_MAX_FREQ);
- clk_set_rate(c2c_con.c2c_sclk, (req_clk + 1) * MHZ);
- c2c_writel(req_clk, EXYNOS_C2C_FCLK_FREQ);
- c2c_set_func_clk(req_clk);
- } else{
- dev_info(c2c_con.c2c_dev, "Requested same OPP mode\n");
- }
- c2c_con.opp_mode = opp_val;
- c2c_set_clock_gating(C2C_SET);
- }
-
- dev_info(c2c_con.c2c_dev, "Get C2C sclk rate : %ld\n",
- clk_get_rate(c2c_con.c2c_sclk));
- dev_info(c2c_con.c2c_dev, "Get C2C aclk rate : %ld\n",
- clk_get_rate(c2c_con.c2c_aclk));
- break;
- default:
- dev_info(c2c_con.c2c_dev, "Wrong C2C operation number\n");
- dev_info(c2c_con.c2c_dev, "---C2C Operation Number---\n");
- dev_info(c2c_con.c2c_dev, "1. C2C Reset\n");
- dev_info(c2c_con.c2c_dev, "2. Set OPP25\n");
- dev_info(c2c_con.c2c_dev, "3. Set OPP50\n");
- dev_info(c2c_con.c2c_dev, "4. Set OPP100\n");
- }
-
- return count;
-}
-
-static DEVICE_ATTR(c2c_ctrl, 0644, c2c_ctrl_show, c2c_ctrl_store);
-
-int c2c_open(struct inode *inode, struct file *filp)
-{
- /* This function is not needed.(Test Function) */
- dev_info(c2c_con.c2c_dev, "C2C chrdrv Opened.\n");
-
- return 0;
-}
-
-static long c2c_ioctl(struct file *filp, unsigned int cmd,
- unsigned long arg)
-{
- c2c_reset_ops();
-
- return 0;
-}
-
-static const struct file_operations c2c_fops = {
- .owner = THIS_MODULE,
- .unlocked_ioctl = c2c_ioctl,
- .open = c2c_open,
-};
-
-static struct miscdevice char_dev = {
- .minor = MISC_DYNAMIC_MINOR,
- .name = C2C_DEV_NAME,
- .fops = &c2c_fops
-};
-
-static int c2c_set_sharedmem(enum c2c_shrdmem_size size, u32 addr)
-{
- dev_info(c2c_con.c2c_dev, "Set BaseAddr(0x%x) and Size(%d)\n",
- addr, 1 << (2 + size));
-
- /* Set DRAM Base Addr & Size */
- c2c_set_shdmem_size(size);
- c2c_set_base_addr((addr >> 22));
-
- return 0;
-}
-
-static void c2c_set_interrupt(u32 genio_num, enum c2c_interrupt set_int)
-{
- u32 cur_int_reg, cur_lev_reg;
-
- cur_int_reg = c2c_readl(EXYNOS_C2C_GENO_INT);
- cur_lev_reg = c2c_readl(EXYNOS_C2C_GENO_LEVEL);
-
- switch (set_int) {
- case C2C_INT_TOGGLE:
- cur_int_reg &= ~(0x1 << genio_num);
- c2c_writel(cur_int_reg, EXYNOS_C2C_GENO_INT);
- break;
- case C2C_INT_HIGH:
- cur_int_reg |= (0x1 << genio_num);
- cur_lev_reg |= (0x1 << genio_num);
- c2c_writel(cur_int_reg, EXYNOS_C2C_GENO_INT);
- c2c_writel(cur_lev_reg, EXYNOS_C2C_GENO_LEVEL);
- break;
- case C2C_INT_LOW:
- cur_int_reg |= (0x1 << genio_num);
- cur_lev_reg &= ~(0x1 << genio_num);
- c2c_writel(cur_int_reg, EXYNOS_C2C_GENO_INT);
- c2c_writel(cur_lev_reg, EXYNOS_C2C_GENO_LEVEL);
- break;
- }
-}
-
-static irqreturn_t c2c_sscm0_irq(int irq, void *data)
-{
- /* TODO : This function will be used other type boards */
- return IRQ_HANDLED;
-}
-
-static irqreturn_t c2c_sscm1_irq(int irq, void *data)
-{
- /* TODO : It is just temporary code. It will be modified. */
- u32 raw_irq, latency_val, opp_val, req_clk;
- raw_irq = c2c_readl(EXYNOS_C2C_IRQ_EN_STAT1);
-
-#ifdef CONFIG_C2C_IPC_ENABLE
- if (raw_irq & 0x1) {
- dev_info(c2c_con.c2c_dev, "IPC interrupt occured : GENO[0]\n");
- if (c2c_con.hd.handler)
- c2c_con.hd.handler(c2c_con.hd.data);
-
- /* Interrupt Clear */
- c2c_writel(0x1, EXYNOS_C2C_IRQ_EN_STAT1);
- }
-#endif
- if ((raw_irq >> C2C_GENIO_OPP_INT) & 1) { /* OPP Change */
- /*
- OPP mode GENI/O bit definition[29:27]
- OPP100 GENI/O[29:28] : 1 1
- OPP50 GENI/O[29:28] : 1 0
- OPP25 GENI/O[29:28] : 0 1
- GENI[27] is only used for making interrupt.
- */
- opp_val = (c2c_readl(EXYNOS_C2C_GENO_STATUS) >> 28) & 3;
- req_clk = 0;
- dev_info(c2c_con.c2c_dev, "OPP interrupt occured (%d)\n", opp_val);
-
- if (opp_val == C2C_OPP100)
- req_clk = c2c_con.clk_opp100;
- else if (opp_val == C2C_OPP50)
- req_clk = c2c_con.clk_opp50;
- else if (opp_val == C2C_OPP25)
- req_clk = c2c_con.clk_opp25;
-
- if (opp_val == 0 || req_clk == 1) {
- dev_info(c2c_con.c2c_dev, "This mode is not reserved in OPP mode.\n");
- } else {
- if (c2c_con.opp_mode < opp_val) { /* increase case */
- clk_set_rate(c2c_con.c2c_sclk, (req_clk + 1) * MHZ);
- c2c_writel(req_clk, EXYNOS_C2C_FCLK_FREQ);
- c2c_set_func_clk(req_clk);
- c2c_writel(req_clk, EXYNOS_C2C_RX_MAX_FREQ);
- } else if (c2c_con.opp_mode > opp_val) { /* decrease case */
- c2c_writel(req_clk, EXYNOS_C2C_RX_MAX_FREQ);
- clk_set_rate(c2c_con.c2c_sclk, (req_clk + 1) * MHZ);
- c2c_writel(req_clk, EXYNOS_C2C_FCLK_FREQ);
- c2c_set_func_clk(req_clk);
- } else{
- dev_info(c2c_con.c2c_dev, "Requested same OPP mode\n");
- }
- c2c_con.opp_mode = opp_val;
- }
-
- /* Interrupt Clear */
- c2c_writel((0x1 << C2C_GENIO_OPP_INT), EXYNOS_C2C_IRQ_EN_STAT1);
- }
-
- /* Memory I/F latency change */
- if ((raw_irq >> C2C_GENIO_LATENCY_INT) & 1) {
- latency_val = (c2c_readl(EXYNOS_C2C_GENO_STATUS) >> 30) & 3;
- switch (latency_val) {
- case 3:
- dev_info(c2c_con.c2c_dev, "Set Min latency\n");
- if (exynos_c2c_request_pwr_mode != NULL)
- exynos_c2c_request_pwr_mode(MIN_LATENCY);
- break;
- case 1:
- dev_info(c2c_con.c2c_dev, "Set Short latency\n");
- if (exynos_c2c_request_pwr_mode != NULL)
- exynos_c2c_request_pwr_mode(SHORT_LATENCY);
- break;
- case 0:
- dev_info(c2c_con.c2c_dev, "Set Max latency\n");
- if (exynos_c2c_request_pwr_mode != NULL)
- exynos_c2c_request_pwr_mode(MAX_LATENCY);
- break;
- }
- /* Interrupt Clear */
- c2c_writel((0x1 << C2C_GENIO_LATENCY_INT), EXYNOS_C2C_IRQ_EN_STAT1);
- }
-
- return IRQ_HANDLED;
-}
-
-static void set_c2c_device(struct platform_device *pdev)
-{
- struct exynos_c2c_platdata *pdata = pdev->dev.platform_data;
- u32 default_clk;
-
- c2c_con.c2c_sysreg = pdata->c2c_sysreg;
- c2c_con.rx_width = pdata->rx_width;
- c2c_con.tx_width = pdata->tx_width;
- c2c_con.clk_opp100 = pdata->clk_opp100;
- c2c_con.clk_opp50 = pdata->clk_opp50;
- c2c_con.clk_opp25 = pdata->clk_opp25;
- c2c_con.opp_mode = pdata->default_opp_mode;
-#ifdef CONFIG_C2C_IPC_ENABLE
- c2c_con.shd_pages = NULL;
- c2c_con.hd.data = NULL;
- c2c_con.hd.handler = NULL;
-#endif
- c2c_con.c2c_sclk = clk_get(&pdev->dev, "sclk_c2c");
- c2c_con.c2c_aclk = clk_get(&pdev->dev, "aclk_c2c");
-
- if (soc_is_exynos4212())
- exynos_c2c_request_pwr_mode = exynos4_c2c_request_pwr_mode;
- else if (soc_is_exynos4412()) {
- exynos_c2c_request_pwr_mode = exynos4_c2c_request_pwr_mode;
- if (samsung_rev() >= EXYNOS4412_REV_1_0)
- writel(C2C_SYSREG_DEFAULT, c2c_con.c2c_sysreg);
- } else if (soc_is_exynos5250())
- exynos_c2c_request_pwr_mode = NULL;
-
- /* Set clock to default mode */
- if (c2c_con.opp_mode == C2C_OPP100)
- default_clk = c2c_con.clk_opp100;
- else if (c2c_con.opp_mode == C2C_OPP50)
- default_clk = c2c_con.clk_opp50;
- else if (c2c_con.opp_mode == C2C_OPP25)
- default_clk = c2c_con.clk_opp25;
- else {
- dev_info(c2c_con.c2c_dev, "Default OPP mode is not selected.\n");
- c2c_con.opp_mode = C2C_OPP50;
- default_clk = c2c_con.clk_opp50;
- }
-
- clk_set_rate(c2c_con.c2c_sclk, (default_clk + 1) * MHZ);
- clk_set_rate(c2c_con.c2c_aclk, ((default_clk / 2) + 1) * MHZ);
-
- dev_info(c2c_con.c2c_dev, "Get C2C sclk rate : %ld\n",
- clk_get_rate(c2c_con.c2c_sclk));
- dev_info(c2c_con.c2c_dev, "Get C2C aclk rate : %ld\n",
- clk_get_rate(c2c_con.c2c_aclk));
- if (pdata->setup_gpio)
- pdata->setup_gpio(pdata->rx_width, pdata->tx_width);
-
- c2c_set_sharedmem(pdata->shdmem_size, pdata->shdmem_addr);
-
- /* Set SYSREG to memdone */
- c2c_set_memdone(C2C_SET);
- c2c_set_clock_gating(C2C_CLEAR);
-
- /* Set C2C clock register to OPP50 */
- c2c_writel(default_clk, EXYNOS_C2C_FCLK_FREQ);
- c2c_writel(default_clk, EXYNOS_C2C_RX_MAX_FREQ);
- c2c_set_func_clk(default_clk);
-
- /* Set C2C buswidth */
- c2c_writel(((pdata->rx_width << 4) | (pdata->tx_width)),
- EXYNOS_C2C_PORTCONFIG);
- c2c_set_tx_buswidth(pdata->tx_width);
- c2c_set_rx_buswidth(pdata->rx_width);
-
- /* Enable all of GENI/O Interrupt */
- c2c_writel((0x1 << C2C_GENIO_OPP_INT), EXYNOS_C2C_IRQ_EN_SET1);
- c2c_con.retention_reg = (0x1 << C2C_GENIO_OPP_INT);
-
- if (exynos_c2c_request_pwr_mode != NULL)
- exynos_c2c_request_pwr_mode(MAX_LATENCY);
-
- c2c_set_interrupt(C2C_GENIO_OPP_INT, C2C_INT_HIGH);
-
- dev_info(c2c_con.c2c_dev, "Port Config : 0x%x\n",
- c2c_readl(EXYNOS_C2C_PORTCONFIG));
- dev_info(c2c_con.c2c_dev, "FCLK_FREQ register : %d\n",
- c2c_readl(EXYNOS_C2C_FCLK_FREQ));
- dev_info(c2c_con.c2c_dev, "RX_MAX_FREQ register : %d\n",
- c2c_readl(EXYNOS_C2C_RX_MAX_FREQ));
- dev_info(c2c_con.c2c_dev, "IRQ_EN_SET1 register : 0x%x\n",
- c2c_readl(EXYNOS_C2C_IRQ_EN_SET1));
-
- c2c_set_clock_gating(C2C_SET);
-}
-
-#ifdef CONFIG_C2C_IPC_ENABLE
-void __iomem *c2c_request_cp_region(unsigned int cp_addr,
- unsigned int size)
-{
- dma_addr_t phy_cpmem;
-
- phy_cpmem = cma_alloc(c2c_con.c2c_dev, "c2c_shdmem", size, 0);
- if (IS_ERR_VALUE(phy_cpmem)) {
- dev_info(c2c_con.c2c_dev, KERN_ERR "C2C CMA Alloc Error!!!");
- return NULL;
- }
-
- return phys_to_virt(phy_cpmem);
-}
-EXPORT_SYMBOL(c2c_request_cp_region);
-
-void c2c_release_cp_region(void *rgn)
-{
- dma_addr_t phy_cpmem;
-
- phy_cpmem = virt_to_phys(rgn);
-
- cma_free(phy_cpmem);
-}
-EXPORT_SYMBOL(c2c_release_cp_region);
-
-void __iomem *c2c_request_sh_region(unsigned int sh_addr,
- unsigned int size)
-{
- int i;
- struct page **pages;
- void *pv;
-
- pages = kmalloc((size >> PAGE_SHIFT) * sizeof(*pages), GFP_KERNEL);
- for (i = 0; i < (size >> PAGE_SHIFT); i++) {
- pages[i] = phys_to_page(sh_addr);
- sh_addr += PAGE_SIZE;
- }
-
- c2c_con.shd_pages = (void *)pages;
-
- pv = vmap(pages, size >> PAGE_SHIFT, VM_MAP,
- pgprot_noncached(PAGE_KERNEL));
-
- return (void __iomem *)pv;
-}
-EXPORT_SYMBOL(c2c_request_sh_region);
-
-void c2c_release_sh_region(void *rgn)
-{
- vunmap(rgn);
- kfree(c2c_con.shd_pages);
- c2c_con.shd_pages = NULL;
-}
-EXPORT_SYMBOL(c2c_release_sh_region);
-
-int c2c_register_handler(void (*handler)(void *), void *data)
-{
- if (!handler)
- return -EINVAL;
-
- c2c_con.hd.data = data;
- c2c_con.hd.handler = handler;
-
- c2c_reset_interrupt();
-
- return 0;
-}
-EXPORT_SYMBOL(c2c_register_handler);
-
-int c2c_unregister_handler(void (*handler)(void *))
-{
- if (!handler || (c2c_con.hd.handler != handler))
- return -EINVAL;
-
- c2c_con.hd.data = NULL;
- c2c_con.hd.handler = NULL;
- return 0;
-}
-EXPORT_SYMBOL(c2c_unregister_handler);
-
-void c2c_send_interrupt(void)
-{
- c2c_writel(c2c_readl(EXYNOS_C2C_GENI_CONTROL) ^ 0x1,
- EXYNOS_C2C_GENI_CONTROL);
-}
-EXPORT_SYMBOL(c2c_send_interrupt);
-
-void c2c_reset_interrupt(void)
-{
- c2c_writel(c2c_readl(EXYNOS_C2C_IRQ_EN_SET1) | 0x1,
- EXYNOS_C2C_IRQ_EN_SET1);
- c2c_con.retention_reg |= 0x1;
-}
-EXPORT_SYMBOL(c2c_reset_interrupt);
-#endif
-
-static int __devinit samsung_c2c_probe(struct platform_device *pdev)
-{
- struct exynos_c2c_platdata *pdata = pdev->dev.platform_data;
- struct resource *res = NULL;
- struct resource *res1 = NULL;
- int sscm_irq0, sscm_irq1;
- int err = 0;
-
- c2c_con.c2c_dev = &pdev->dev;
-
- /* resource for AP's SSCM region */
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res) {
- dev_err(&pdev->dev, "no memory resource defined(AP's SSCM)\n");
- return -ENOENT;
- }
- res = request_mem_region(res->start, resource_size(res), pdev->name);
- if (!res) {
- dev_err(&pdev->dev, "failded to request memory resource(AP)\n");
- return -ENOENT;
- }
- pdata->ap_sscm_addr = ioremap(res->start, resource_size(res));
- if (!pdata->ap_sscm_addr) {
- dev_err(&pdev->dev, "failded to request memory resource(AP)\n");
- goto release_ap_sscm;
- }
- c2c_con.ap_sscm_addr = pdata->ap_sscm_addr;
-
- /* resource for CP's SSCM region */
- res1 = platform_get_resource(pdev, IORESOURCE_MEM, 1);
- if (!res1) {
- dev_err(&pdev->dev, "no memory resource defined(AP's SSCM)\n");
- goto unmap_ap_sscm;
- }
- res1 = request_mem_region(res1->start, resource_size(res1), pdev->name);
- if (!res1) {
- dev_err(&pdev->dev, "failded to request memory resource(AP)\n");
- goto unmap_ap_sscm;
- }
- pdata->cp_sscm_addr = ioremap(res1->start, resource_size(res1));
- if (!pdata->cp_sscm_addr) {
- dev_err(&pdev->dev, "failded to request memory resource(CP)\n");
- goto release_cp_sscm;
- }
- c2c_con.cp_sscm_addr = pdata->cp_sscm_addr;
-
- /* Request IRQ */
- sscm_irq0 = platform_get_irq(pdev, 0);
- if (sscm_irq0 < 0) {
- dev_err(&pdev->dev, "no irq specified\n");
- goto unmap_cp_sscm;
- }
- err = request_irq(sscm_irq0, c2c_sscm0_irq, 0, pdev->name, pdev);
- if (err) {
- dev_err(&pdev->dev, "Can't request SSCM0 IRQ\n");
- goto unmap_cp_sscm;
- }
- /* SSCM0 irq will be only used for master(CP) device */
- disable_irq(sscm_irq0);
-
- sscm_irq1 = platform_get_irq(pdev, 1);
- if (sscm_irq1 < 0) {
- dev_err(&pdev->dev, "no irq specified\n");
- goto release_sscm_irq0;
- }
- err = request_irq(sscm_irq1, c2c_sscm1_irq, 1, pdev->name, pdev);
- if (err) {
- dev_err(&pdev->dev, "Can't request SSCM1 IRQ\n");
- goto release_sscm_irq0;
- }
-
- err = misc_register(&char_dev);
- if (err) {
- dev_err(&pdev->dev, "Can't register chrdev!\n");
- goto release_sscm_irq0;
- }
-
- set_c2c_device(pdev);
-
-#ifdef ENABLE_C2CSTATE_TIMER
- /* Timer for debugging to check C2C state */
- init_timer(&c2c_status_timer);
- c2c_status_timer.expires = jiffies + HZ;
- c2c_status_timer.data = (unsigned long)pdata;
- c2c_status_timer.function = &c2c_timer_func;
- add_timer(&c2c_status_timer);
-#endif
-
- /* Create sysfs file for C2C debug */
- err = device_create_file(&pdev->dev, &dev_attr_c2c_ctrl);
- if (err) {
- dev_err(&pdev->dev, "Failed to create sysfs for C2C\n");
- goto release_sscm_irq1;
- }
-
- return 0;
-
-release_sscm_irq1:
- free_irq(sscm_irq1, pdev);
-
-release_sscm_irq0:
- free_irq(sscm_irq0, pdev);
-
-unmap_cp_sscm:
- iounmap(pdata->cp_sscm_addr);
-
-release_cp_sscm:
- release_mem_region(res1->start, resource_size(res1));
-
-unmap_ap_sscm:
- iounmap(pdata->ap_sscm_addr);
-
-release_ap_sscm:
- release_mem_region(res->start, resource_size(res));
-
- return err;
-}
-
-static int __devexit samsung_c2c_remove(struct platform_device *pdev)
-{
- /* TODO */
- return 0;
-}
-
-#ifdef CONFIG_PM
-static int samsung_c2c_suspend(struct platform_device *dev, pm_message_t pm)
-{
- /* TODO */
- return 0;
-}
-
-static int samsung_c2c_resume(struct platform_device *dev)
-{
- struct exynos_c2c_platdata *pdata = dev->dev.platform_data;
-
- if ((soc_is_exynos4212() || soc_is_exynos4412())
- && samsung_rev() == EXYNOS4412_REV_0) {
- /* Set SYSREG */
- c2c_set_sharedmem(pdata->shdmem_size, pdata->shdmem_addr);
- c2c_set_memdone(C2C_SET);
- } else if (soc_is_exynos5250()) {
- /* Set SYSREG */
- c2c_set_sharedmem(pdata->shdmem_size, pdata->shdmem_addr);
- c2c_set_memdone(C2C_SET);
- }
-
- return 0;
-}
-#else
-#define samsung_c2c_suspend NULL
-#define samsung_c2c_resume NULL
-#endif
-
-static struct platform_driver samsung_c2c_driver = {
- .probe = samsung_c2c_probe,
- .remove = __devexit_p(samsung_c2c_remove),
- .suspend = samsung_c2c_suspend,
- .resume = samsung_c2c_resume,
- .driver = {
- .name = "samsung-c2c",
- .owner = THIS_MODULE,
- },
-};
-
-static int __init samsung_c2c_init(void)
-{
- return platform_driver_register(&samsung_c2c_driver);
-}
-module_init(samsung_c2c_init);
-
-static void __exit samsung_c2c_exit(void)
-{
- platform_driver_unregister(&samsung_c2c_driver);
-}
-module_exit(samsung_c2c_exit);
-
-MODULE_DESCRIPTION("Samsung C2C driver");
-MODULE_AUTHOR("Kisang Lee <kisang80.lee@samsung.com>");
-MODULE_LICENSE("GPL");
diff --git a/drivers/misc/c2c/samsung-c2c.h b/drivers/misc/c2c/samsung-c2c.h
deleted file mode 100644
index 03ea601..0000000
--- a/drivers/misc/c2c/samsung-c2c.h
+++ /dev/null
@@ -1,334 +0,0 @@
-/*
- * Samsung C2C driver
- *
- * Copyright (C) 2011 Samsung Electronics Co.Ltd
- * Author: Kisang Lee <kisang80.lee@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- */
-#ifndef SAMSUNG_C2C_H
-#define SAMSUNG_C2C_H
-
-/* This timer will be only used for debugging
-#define ENABLE_C2CSTATE_TIMER
-*/
-#define C2C_DEV_NAME "c2c_dev"
-#define C2C_SYSREG_DEFAULT 0x832AA803
-
-#ifdef CONFIG_C2C_IPC_ENABLE
-#define C2C_CP_RGN_ADDR 0x60000000
-#define C2C_CP_RGN_SIZE (56 * SZ_1M)
-#define C2C_SH_RGN_ADDR (C2C_CP_RGN_ADDR + C2C_CP_RGN_SIZE)
-#define C2C_SH_RGN_SIZE (8 * SZ_1M)
-
-extern void __iomem *c2c_request_cp_region(unsigned int cp_addr,
- unsigned int size);
-extern void __iomem *c2c_request_sh_region(unsigned int sh_addr,
- unsigned int size);
-extern void c2c_release_cp_region(void *rgn);
-extern void c2c_release_sh_region(void *rgn);
-
-extern int c2c_register_handler(void (*handler)(void *), void *data);
-extern int c2c_unregister_handler(void (*handler)(void *));
-extern void c2c_send_interrupt(void);
-extern void c2c_reset_interrupt(void);
-
-struct c2c_ipc_handler {
- void *data;
- void (*handler)(void *);
-};
-#endif
-
-enum c2c_set_clear {
- C2C_CLEAR = 0,
- C2C_SET = 1,
-};
-
-enum c2c_interrupt {
- C2C_INT_TOGGLE = 0,
- C2C_INT_HIGH = 1,
- C2C_INT_LOW = 2,
-};
-
-struct c2c_state_control {
- void __iomem *ap_sscm_addr;
- void __iomem *cp_sscm_addr;
-#ifdef CONFIG_C2C_IPC_ENABLE
- void *shd_pages;
- struct c2c_ipc_handler hd;
-#endif
- struct device *c2c_dev;
-
- u32 rx_width;
- u32 tx_width;
-
- u32 clk_opp100;
- u32 clk_opp50;
- u32 clk_opp25;
-
- struct clk *c2c_sclk;
- struct clk *c2c_aclk;
-
- enum c2c_opp_mode opp_mode;
- /* Below variables are needed in reset for retention */
- u32 retention_reg;
- void __iomem *c2c_sysreg;
-};
-
-static struct c2c_state_control c2c_con;
-
-static inline void c2c_writel(u32 val, int reg)
-{
- writel(val, c2c_con.ap_sscm_addr + reg);
-}
-
-static inline void c2c_writew(u16 val, int reg)
-{
- writew(val, c2c_con.ap_sscm_addr + reg);
-}
-
-static inline void c2c_writeb(u8 val, int reg)
-{
- writeb(val, c2c_con.ap_sscm_addr + reg);
-}
-
-static inline u32 c2c_readl(int reg)
-{
- return readl(c2c_con.ap_sscm_addr + reg);
-}
-
-static inline u16 c2c_readw(int reg)
-{
- return readw(c2c_con.ap_sscm_addr + reg);
-}
-
-static inline u8 c2c_readb(int reg)
-{
- return readb(c2c_con.ap_sscm_addr + reg);
-}
-
-static inline void c2c_writel_cp(u32 val, int reg)
-{
- writel(val, c2c_con.cp_sscm_addr + reg);
-}
-
-static inline void c2c_writew_cp(u16 val, int reg)
-{
- writew(val, c2c_con.cp_sscm_addr + reg);
-}
-
-static inline void c2c_writeb_cp(u8 val, int reg)
-{
- writeb(val, c2c_con.cp_sscm_addr + reg);
-}
-
-static inline u32 c2c_readl_cp(int reg)
-{
- return readl(c2c_con.cp_sscm_addr + reg);
-}
-
-static inline u16 c2c_readw_cp(int reg)
-{
- return readw(c2c_con.cp_sscm_addr + reg);
-}
-
-static inline u8 c2c_readb_cp(int reg)
-{
- return readb(c2c_con.cp_sscm_addr + reg);
-}
-
-static inline enum c2c_set_clear c2c_get_clock_gating(void)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
- if (sysreg & (1 << C2C_SYSREG_CG))
- return C2C_SET;
- else
- return C2C_CLEAR;
-}
-
-static inline void c2c_set_clock_gating(enum c2c_set_clear val)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- if (val == C2C_SET)
- sysreg |= (1 << C2C_SYSREG_CG);
- else
- sysreg &= ~(1 << C2C_SYSREG_CG);
-
- writel(sysreg, c2c_con.c2c_sysreg);
-}
-
-static inline enum c2c_set_clear c2c_get_memdone(void)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
- if (sysreg & (1 << C2C_SYSREG_MD))
- return C2C_SET;
- else
- return C2C_CLEAR;
-}
-
-static inline void c2c_set_memdone(enum c2c_set_clear val)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- if (val == C2C_SET)
- sysreg |= (1 << C2C_SYSREG_MD);
- else
- sysreg &= ~(1 << C2C_SYSREG_MD);
-
- writel(sysreg, c2c_con.c2c_sysreg);
-}
-
-static inline enum c2c_set_clear c2c_get_master_on(void)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
- if (sysreg & (1 << C2C_SYSREG_MO))
- return C2C_SET;
- else
- return C2C_CLEAR;
-}
-
-static inline void c2c_set_master_on(enum c2c_set_clear val)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- if (val == C2C_SET)
- sysreg |= (1 << C2C_SYSREG_MO);
- else
- sysreg &= ~(1 << C2C_SYSREG_MO);
-
- writel(sysreg, c2c_con.c2c_sysreg);
-}
-
-static inline u32 c2c_get_func_clk(void)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- sysreg &= (0x3ff << C2C_SYSREG_FCLK);
-
- return sysreg >> C2C_SYSREG_FCLK;
-}
-
-static inline void c2c_set_func_clk(u32 val)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- sysreg &= ~(0x3ff << C2C_SYSREG_FCLK);
- sysreg |= (val << C2C_SYSREG_FCLK);
-
- writel(sysreg, c2c_con.c2c_sysreg);
-}
-
-static inline u32 c2c_get_tx_buswidth(void)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- sysreg &= (0x3 << C2C_SYSREG_TXW);
-
- return sysreg >> C2C_SYSREG_TXW;
-}
-
-static inline void c2c_set_tx_buswidth(u32 val)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- sysreg &= ~(0x3 << C2C_SYSREG_TXW);
- sysreg |= (val << C2C_SYSREG_TXW);
-
- writel(sysreg, c2c_con.c2c_sysreg);
-}
-
-static inline u32 c2c_get_rx_buswidth(void)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- sysreg &= (0x3 << C2C_SYSREG_RXW);
-
- return sysreg >> C2C_SYSREG_RXW;
-}
-
-static inline void c2c_set_rx_buswidth(u32 val)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- sysreg &= ~(0x3 << C2C_SYSREG_RXW);
- sysreg |= (val << C2C_SYSREG_RXW);
-
- writel(sysreg, c2c_con.c2c_sysreg);
-}
-
-static inline enum c2c_set_clear c2c_get_reset(void)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
- if (sysreg & (1 << C2C_SYSREG_RST))
- return C2C_SET;
- else
- return C2C_CLEAR;
-}
-
-static inline void c2c_set_reset(enum c2c_set_clear val)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- if (val == C2C_SET)
- sysreg |= (1 << C2C_SYSREG_RST);
- else
- sysreg &= ~(1 << C2C_SYSREG_RST);
-
- writel(sysreg, c2c_con.c2c_sysreg);
-}
-
-static inline void c2c_set_rtrst(enum c2c_set_clear val)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- if (val == C2C_SET)
- sysreg |= (1 << C2C_SYSREG_RTRST);
- else
- sysreg &= ~(1 << C2C_SYSREG_RTRST);
-
- writel(sysreg, c2c_con.c2c_sysreg);
-}
-
-static inline u32 c2c_get_base_addr(void)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- sysreg &= (0x3ff << C2C_SYSREG_BASE_ADDR);
-
- return sysreg >> C2C_SYSREG_BASE_ADDR;
-}
-
-static inline void c2c_set_base_addr(u32 val)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- sysreg &= ~(0x3ff << C2C_SYSREG_BASE_ADDR);
- sysreg |= (val << C2C_SYSREG_BASE_ADDR);
-
- writel(sysreg, c2c_con.c2c_sysreg);
-}
-
-static inline u32 c2c_get_shdmem_size(void)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- sysreg &= (0x7 << C2C_SYSREG_DRAM_SIZE);
-
- return sysreg >> C2C_SYSREG_DRAM_SIZE;
-}
-
-static inline void c2c_set_shdmem_size(u32 val)
-{
- u32 sysreg = readl(c2c_con.c2c_sysreg);
-
- sysreg &= ~(0x7 << C2C_SYSREG_DRAM_SIZE);
- sysreg |= (val << C2C_SYSREG_DRAM_SIZE);
-
- writel(sysreg, c2c_con.c2c_sysreg);
-}
-
-#endif
diff --git a/drivers/misc/inv_mpu/Kconfig b/drivers/misc/inv_mpu/Kconfig
deleted file mode 100644
index 060b79f..0000000
--- a/drivers/misc/inv_mpu/Kconfig
+++ /dev/null
@@ -1,24 +0,0 @@
-config MPU_SENSORS_GYRO
- tristate "MPU6050 built in gyroscope"
- depends on MPU_SENSORS_MPU6050
-
-config MPU_SENSORS_TIMERIRQ
- tristate "Timer IRQ"
- depends on MPU_SENSORS_MPU6050
- help
- If you say yes here you get access to the timerirq device handle which
- can be used to select on. This can be used instead of IRQ's, sleeping,
- or timer threads. Reading from this device returns the same type of
- information as reading from the MPU and slave IRQ's.
-
-config MPU_SENSORS_DEBUG
- bool "MPU6050 MPU debug"
- depends on MPU_SENSORS_TIMERIRQ
- help
- If you say yes here you get extra debug messages from the MPU6050
- and other slave sensors.
-
-config MPU_SENSORS_CORE
- tristate "Sensors core"
-
-
diff --git a/drivers/misc/inv_mpu/Makefile b/drivers/misc/inv_mpu/Makefile
deleted file mode 100644
index c129cf2..0000000
--- a/drivers/misc/inv_mpu/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Kernel makefile for motions sensors
-#
-
-# MPU
-
-obj-$(CONFIG_MPU_SENSORS_MPU6050) += mpu6050.o
-mpu6050-objs += mpuirq.o \
- slaveirq.o \
- mpu-dev.o \
- mlsl-kernel.o \
- mldl_cfg.o \
- mldl_print_cfg.o \
- sensors_core.o \
- accel/mpu6050.o \
- compass/ak8975.o
-
-EXTRA_CFLAGS += -Idrivers/misc/inv_mpu
-EXTRA_CFLAGS += -D__C99_DESIGNATED_INITIALIZER
-EXTRA_CFLAGS += -DINV_CACHE_DMP=1
-
-obj-$(CONFIG_MPU_SENSORS_TIMERIRQ)+= timerirq.o
diff --git a/drivers/misc/inv_mpu/README b/drivers/misc/inv_mpu/README
deleted file mode 100644
index ce592c8..0000000
--- a/drivers/misc/inv_mpu/README
+++ /dev/null
@@ -1,104 +0,0 @@
-Kernel driver mpu
-=====================
-
-Supported chips:
- * InvenSense IMU3050
- Prefix: 'mpu3050'
- Datasheet:
- PS-MPU-3000A-00.2.4b.pdf
-
-Author: InvenSense <http://invensense.com>
-
-Description
------------
-The mpu is a motion processor unit that controls the mpu3050 gyroscope, a slave
-accelerometer, a compass and a pressure sensor. This document describes how to
-install the driver into a Linux kernel.
-
-Sysfs entries
--------------
-/dev/mpu
-/dev/mpuirq
-/dev/accelirq
-/dev/compassirq
-/dev/pressureirq
-
-General Remarks MPU3050
------------------------
-* Valid addresses for the MPU3050 is 0x68.
-* Accelerometer must be on the secondary I2C bus for MPU3050, the
- magnetometer must be on the primary bus and pressure sensor must
- be on the primary bus.
-
-Programming the chip using /dev/mpu
-----------------------------------
-Programming of MPU3050 is done by first opening the /dev/mpu file and
-then performing a series of IOCTLS on the handle returned. The IOCTL codes can
-be found in mpu.h. Typically this is done by the mllite library in user
-space.
-
-Board and Platform Data
------------------------
-
-In order for the driver to work, board and platform data specific to the device
-needs to be added to the board file. A mpu_platform_data structure must
-be created and populated and set in the i2c_board_info_structure. For details
-of each structure member see mpu.h. All values below are simply an example and
-should be modified for your platform.
-
-#include <linux/mpu.h>
-
-static struct mpu_platform_data mpu3050_data = {
- .int_config = 0x10,
- .orientation = { -1, 0, 0,
- 0, 1, 0,
- 0, 0, -1 },
-};
-
-/* accel */
-static struct ext_slave_platform_data inv_mpu_kxtf9_data = {
- .bus = EXT_SLAVE_BUS_SECONDARY,
- .orientation = { -1, 0, 0,
- 0, 1, 0,
- 0, 0, -1 },
-};
-/* compass */
-static struct ext_slave_platform_data inv_mpu_ak8975_data = {
- .bus = EXT_SLAVE_BUS_PRIMARY,
- .orientation = { 1, 0, 0,
- 0, 1, 0,
- 0, 0, 1 },
-};
-
-static struct i2c_board_info __initdata panda_inv_mpu_i2c4_boardinfo[] = {
- {
- I2C_BOARD_INFO("mpu3050", 0x68),
- .irq = (IH_GPIO_BASE + MPUIRQ_GPIO),
- .platform_data = &mpu3050_data,
- },
- {
- I2C_BOARD_INFO("kxtf9", 0x0F),
- .irq = (IH_GPIO_BASE + ACCEL_IRQ_GPIO),
- .platform_data = &inv_mpu_kxtf9_data
- },
- {
- I2C_BOARD_INFO("ak8975", 0x0E),
- .irq = (IH_GPIO_BASE + COMPASS_IRQ_GPIO),
- .platform_data = &inv_mpu_ak8975_data,
- },
-};
-
-Typically the IRQ is a GPIO input pin and needs to be configured properly. If
-in the above example GPIO 168 corresponds to IRQ 299, the following should be
-done as well:
-
-#define MPU_GPIO_IRQ 168
-
- gpio_request(MPU_GPIO_IRQ,"MPUIRQ");
- gpio_direction_input(MPU_GPIO_IRQ)
-
-Dynamic Debug
-=============
-
-The mpu3050 makes use of dynamic debug. For details on how to use this
-refer to Documentation/dynamic-debug-howto.txt
diff --git a/drivers/misc/inv_mpu/accel/Kconfig b/drivers/misc/inv_mpu/accel/Kconfig
deleted file mode 100644
index 8e24177..0000000
--- a/drivers/misc/inv_mpu/accel/Kconfig
+++ /dev/null
@@ -1,133 +0,0 @@
-menuconfig MPU_SENSORS_ACCEL
- bool "Accelerometer Slave Sensors"
- default n
- ---help---
- Say Y here to get to see options for device drivers for various
- accelerometrs for integration with the MPU3050 or MPU6050 driver.
- This option alone does not add any kernel code.
-
- If you say N, all options in this submenu will be skipped and disabled.
-
-if MPU_SENSORS_ACCEL
-
-config MPU_SENSORS_ADXL34X
- bool "ADI adxl34x"
- depends on MPU_SENSORS_MPU6050B1 || MPU_SENSORS_MPU6050A2
- help
- This enables support for the ADI adxl345 or adxl346 accelerometers.
- This support is for integration with the MPU3050 gyroscope device
- driver. Only one accelerometer can be registered at a time.
- Specifying more that one accelerometer in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_BMA222
- bool "Bosch BMA222"
- depends on MPU_SENSORS_MPU6050B1 || MPU_SENSORS_MPU6050A2
- help
- This enables support for the Bosch BMA222 accelerometer
- This support is for integration with the MPU3050 gyroscope device
- driver. Only one accelerometer can be registered at a time.
- Specifying more that one accelerometer in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_BMA150
- bool "Bosch BMA150"
- depends on MPU_SENSORS_MPU6050B1 || MPU_SENSORS_MPU6050A2
- help
- This enables support for the Bosch BMA150 accelerometer
- This support is for integration with the MPU3050 gyroscope device
- driver. Only one accelerometer can be registered at a time.
- Specifying more that one accelerometer in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_BMA250
- bool "Bosch BMA250"
- depends on MPU_SENSORS_MPU6050B1 || MPU_SENSORS_MPU6050A2
- help
- This enables support for the Bosch BMA250 accelerometer
- This support is for integration with the MPU3050 gyroscope device
- driver. Only one accelerometer can be registered at a time.
- Specifying more that one accelerometer in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_KXSD9
- bool "Kionix KXSD9"
- depends on MPU_SENSORS_MPU6050B1 || MPU_SENSORS_MPU6050A2
- help
- This enables support for the Kionix KXSD9 accelerometer
- This support is for integration with the MPU3050 gyroscope device
- driver. Only one accelerometer can be registered at a time.
- Specifying more that one accelerometer in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_KXTF9
- bool "Kionix KXTF9"
- depends on MPU_SENSORS_MPU6050B1 || MPU_SENSORS_MPU6050A2
- help
- This enables support for the Kionix KXFT9 accelerometer
- This support is for integration with the MPU3050 gyroscope device
- driver. Only one accelerometer can be registered at a time.
- Specifying more that one accelerometer in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_LIS331DLH
- bool "ST lis331dlh"
- depends on MPU_SENSORS_MPU6050B1 || MPU_SENSORS_MPU6050A2
- help
- This enables support for the ST lis331dlh accelerometer
- This support is for integration with the MPU3050 gyroscope device
- driver. Only one accelerometer can be registered at a time.
- Specifying more that one accelerometer in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_LIS3DH
- bool "ST lis3dh"
- depends on MPU_SENSORS_MPU6050B1 || MPU_SENSORS_MPU6050A2
- help
- This enables support for the ST lis3dh accelerometer
- This support is for integration with the MPU3050 gyroscope device
- driver. Only one accelerometer can be registered at a time.
- Specifying more that one accelerometer in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_LSM303DLX_A
- bool "ST lsm303dlx"
- depends on MPU_SENSORS_MPU6050B1 || MPU_SENSORS_MPU6050A2
- help
- This enables support for the ST lsm303dlh and lsm303dlm accelerometers
- This support is for integration with the MPU3050 gyroscope device
- driver. Only one accelerometer can be registered at a time.
- Specifying more that one accelerometer in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_MMA8450
- bool "Freescale mma8450"
- depends on MPU_SENSORS_MPU6050B1 || MPU_SENSORS_MPU6050A2
- help
- This enables support for the Freescale mma8450 accelerometer
- This support is for integration with the MPU3050 gyroscope device
- driver. Only one accelerometer can be registered at a time.
- Specifying more that one accelerometer in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_MMA845X
- bool "Freescale mma8451/8452/8453"
- depends on MPU_SENSORS_MPU6050B1 || MPU_SENSORS_MPU6050A2
- help
- This enables support for the Freescale mma8451/8452/8453 accelerometer
- This support is for integration with the MPU3050 gyroscope device
- driver. Only one accelerometer can be registered at a time.
- Specifying more that one accelerometer in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_BUILTIN_ACCEL
- bool "MPU6050 built in accelerometer"
- depends on MPU_SENSORS_MPU6050B1 || MPU_SENSORS_MPU6050A2
- help
- This enables support for the MPU6050 built in accelerometer.
- This the built in support for integration with the MPU6050 gyroscope
- device driver. This is the only accelerometer supported with the
- MPU6050. Specifying another accelerometer in the board file will
- result in runtime errors.
-
-endif
diff --git a/drivers/misc/inv_mpu/accel/Makefile b/drivers/misc/inv_mpu/accel/Makefile
deleted file mode 100644
index 1f0f5be..0000000
--- a/drivers/misc/inv_mpu/accel/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# Accel Slaves to MPUxxxx
-#
-obj-$(CONFIG_MPU_SENSORS_ADXL34X) += inv_mpu_adxl34x.o
-inv_mpu_adxl34x-objs += adxl34x.o
-
-obj-$(CONFIG_MPU_SENSORS_BMA150) += inv_mpu_bma150.o
-inv_mpu_bma150-objs += bma150.o
-
-obj-$(CONFIG_MPU_SENSORS_KXTF9) += inv_mpu_kxtf9.o
-inv_mpu_kxtf9-objs += kxtf9.o
-
-obj-$(CONFIG_MPU_SENSORS_BMA222) += inv_mpu_bma222.o
-inv_mpu_bma222-objs += bma222.o
-
-obj-$(CONFIG_MPU_SENSORS_BMA250) += inv_mpu_bma250.o
-inv_mpu_bma250-objs += bma250.o
-
-obj-$(CONFIG_MPU_SENSORS_KXSD9) += inv_mpu_kxsd9.o
-inv_mpu_kxsd9-objs += kxsd9.o
-
-obj-$(CONFIG_MPU_SENSORS_LIS331DLH) += inv_mpu_lis331.o
-inv_mpu_lis331-objs += lis331.o
-
-obj-$(CONFIG_MPU_SENSORS_LIS3DH) += inv_mpu_lis3dh.o
-inv_mpu_lis3dh-objs += lis3dh.o
-
-obj-$(CONFIG_MPU_SENSORS_LSM303DLX_A) += inv_mpu_lsm303dlx_a.o
-inv_mpu_lsm303dlx_a-objs += lsm303dlx_a.o
-
-obj-$(CONFIG_MPU_SENSORS_MMA8450) += inv_mpu_mma8450.o
-inv_mpu_mma8450-objs += mma8450.o
-
-obj-$(CONFIG_MPU_SENSORS_MMA845X) += inv_mpu_mma845x.o
-inv_mpu_mma845x-objs += mma845x.o
-
-EXTRA_CFLAGS += -Idrivers/misc/inv_mpu
-EXTRA_CFLAGS += -D__C99_DESIGNATED_INITIALIZER
diff --git a/drivers/misc/inv_mpu/accel/adxl34x.c b/drivers/misc/inv_mpu/accel/adxl34x.c
deleted file mode 100644
index f2bff8a..0000000
--- a/drivers/misc/inv_mpu/accel/adxl34x.c
+++ /dev/null
@@ -1,728 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup ACCELDL
- * @brief Provides the interface to setup and handle an accelerometer.
- *
- * @{
- * @file adxl34x.c
- * @brief Accelerometer setup and handling methods for AD adxl345 and
- * adxl346.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* -------------------------------------------------------------------------- */
-
-/* registers */
-#define ADXL34X_ODR_REG (0x2C)
-#define ADXL34X_PWR_REG (0x2D)
-#define ADXL34X_DATAFORMAT_REG (0x31)
-
-/* masks */
-#define ADXL34X_ODR_MASK (0x0F)
-#define ADXL34X_PWR_SLEEP_MASK (0x04)
-#define ADXL34X_PWR_MEAS_MASK (0x08)
-#define ADXL34X_DATAFORMAT_JUSTIFY_MASK (0x04)
-#define ADXL34X_DATAFORMAT_FSR_MASK (0x03)
-
-/* -------------------------------------------------------------------------- */
-
-struct adxl34x_config {
- unsigned int odr; /** < output data rate in mHz */
- unsigned int fsr; /** < full scale range mg */
- unsigned int fsr_reg_mask; /** < register setting for fsr */
-};
-
-struct adxl34x_private_data {
- struct adxl34x_config suspend; /** < suspend configuration */
- struct adxl34x_config resume; /** < resume configuration */
-};
-
-/**
- * @brief Set the output data rate for the particular configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * Config to modify with new ODR.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param odr
- * Output data rate in units of 1/1000Hz (mHz).
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int adxl34x_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct adxl34x_config *config,
- int apply,
- long odr)
-{
- int result = INV_SUCCESS;
- unsigned char new_odr_mask;
-
- /* ADXL346 (Rev. A) pages 13, 24 */
- if (odr >= 3200000) {
- new_odr_mask = 0x0F;
- config->odr = 3200000;
- } else if (odr >= 1600000) {
- new_odr_mask = 0x0E;
- config->odr = 1600000;
- } else if (odr >= 800000) {
- new_odr_mask = 0x0D;
- config->odr = 800000;
- } else if (odr >= 400000) {
- new_odr_mask = 0x0C;
- config->odr = 400000;
- } else if (odr >= 200000) {
- new_odr_mask = 0x0B;
- config->odr = 200000;
- } else if (odr >= 100000) {
- new_odr_mask = 0x0A;
- config->odr = 100000;
- } else if (odr >= 50000) {
- new_odr_mask = 0x09;
- config->odr = 50000;
- } else if (odr >= 25000) {
- new_odr_mask = 0x08;
- config->odr = 25000;
- } else if (odr >= 12500) {
- new_odr_mask = 0x07;
- config->odr = 12500;
- } else if (odr >= 6250) {
- new_odr_mask = 0x06;
- config->odr = 6250;
- } else if (odr >= 3130) {
- new_odr_mask = 0x05;
- config->odr = 3130;
- } else if (odr >= 1560) {
- new_odr_mask = 0x04;
- config->odr = 1560;
- } else if (odr >= 780) {
- new_odr_mask = 0x03;
- config->odr = 780;
- } else if (odr >= 390) {
- new_odr_mask = 0x02;
- config->odr = 390;
- } else if (odr >= 200) {
- new_odr_mask = 0x01;
- config->odr = 200;
- } else {
- new_odr_mask = 0x00;
- config->odr = 100;
- }
-
- if (apply) {
- unsigned char reg_odr;
- result = inv_serial_read(mlsl_handle, pdata->address,
- ADXL34X_ODR_REG, 1, &reg_odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- reg_odr &= ~ADXL34X_ODR_MASK;
- reg_odr |= new_odr_mask;
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ADXL34X_ODR_REG, reg_odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- MPL_LOGV("ODR: %d mHz\n", config->odr);
- }
- return result;
-}
-
-/**
- * @brief Set the full scale range of the accels
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * pointer to configuration.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param fsr
- * requested full scale range in milli gees (mg).
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int adxl34x_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct adxl34x_config *config,
- int apply,
- long fsr)
-{
- int result = INV_SUCCESS;
-
- if (fsr <= 2000) {
- config->fsr_reg_mask = 0x00;
- config->fsr = 2000;
- } else if (fsr <= 4000) {
- config->fsr_reg_mask = 0x01;
- config->fsr = 4000;
- } else if (fsr <= 8000) {
- config->fsr_reg_mask = 0x02;
- config->fsr = 8000;
- } else { /* 8001 -> oo */
- config->fsr_reg_mask = 0x03;
- config->fsr = 16000;
- }
-
- if (apply) {
- unsigned char reg_df;
- result = inv_serial_read(mlsl_handle, pdata->address,
- ADXL34X_DATAFORMAT_REG, 1, &reg_df);
- reg_df &= ~ADXL34X_DATAFORMAT_FSR_MASK;
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ADXL34X_DATAFORMAT_REG,
- reg_df | config->fsr_reg_mask);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- MPL_LOGV("FSR: %d mg\n", config->fsr);
- }
- return result;
-}
-
-/**
- * @brief facility to retrieve the device configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a pointer to store the returned configuration data structure.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int adxl34x_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct adxl34x_private_data *private_data =
- (struct adxl34x_private_data *)(pdata->private_data);
-
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-/**
- * @brief device configuration facility.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a pointer to the configuration data structure.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int adxl34x_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct adxl34x_private_data *private_data =
- (struct adxl34x_private_data *)(pdata->private_data);
-
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return adxl34x_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return adxl34x_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return adxl34x_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return adxl34x_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
- return INV_SUCCESS;
-}
-
-/**
- * @brief suspends the device to put it in its lowest power mode.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int adxl34x_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
-
- /*
- struct adxl34x_config *suspend_config =
- &((struct adxl34x_private_data *)pdata->private_data)->suspend;
-
- result = adxl34x_set_odr(mlsl_handle, pdata, suspend_config,
- true, suspend_config->odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
-}
- result = adxl34x_set_fsr(mlsl_handle, pdata, suspend_config,
- true, suspend_config->fsr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
-}
- */
-
- /*
- Page 25
- When clearing the sleep bit, it is recommended that the part
- be placed into standby mode and then set back to measurement mode
- with a subsequent write.
- This is done to ensure that the device is properly biased if sleep
- mode is manually disabled; otherwise, the first few samples of data
- after the sleep bit is cleared may have additional noise,
- especially if the device was asleep when the bit was cleared. */
-
- /* go in standy-by mode (suspends measurements) */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ADXL34X_PWR_REG, ADXL34X_PWR_MEAS_MASK);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* and then in sleep */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ADXL34X_PWR_REG,
- ADXL34X_PWR_MEAS_MASK | ADXL34X_PWR_SLEEP_MASK);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return result;
-}
-
-/**
- * @brief resume the device in the proper power state given the configuration
- * chosen.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int adxl34x_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- struct adxl34x_config *resume_config =
- &((struct adxl34x_private_data *)pdata->private_data)->resume;
- unsigned char reg;
-
- /*
- Page 25
- When clearing the sleep bit, it is recommended that the part
- be placed into standby mode and then set back to measurement mode
- with a subsequent write.
- This is done to ensure that the device is properly biased if sleep
- mode is manually disabled; otherwise, the first few samples of data
- after the sleep bit is cleared may have additional noise,
- especially if the device was asleep when the bit was cleared. */
-
- /* remove sleep, but leave in stand-by */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ADXL34X_PWR_REG, ADXL34X_PWR_MEAS_MASK);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = adxl34x_set_odr(mlsl_handle, pdata, resume_config,
- true, resume_config->odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /*
- -> FSR
- -> Justiy bit for Big endianess
- -> resulution to 10 bits
- */
- reg = ADXL34X_DATAFORMAT_JUSTIFY_MASK;
- reg |= resume_config->fsr_reg_mask;
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ADXL34X_DATAFORMAT_REG, reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* go in measurement mode */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ADXL34X_PWR_REG, 0x00);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* DATA_FORMAT: full resolution of +/-2g; data is left justified */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- 0x31, reg);
-
- return result;
-}
-
-/**
- * @brief one-time device driver initialization function.
- * If the driver is built as a kernel module, this function will be
- * called when the module is loaded in the kernel.
- * If the driver is built-in in the kernel, this function will be
- * called at boot time.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int adxl34x_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- long range;
-
- struct adxl34x_private_data *private_data;
- private_data = (struct adxl34x_private_data *)
- kzalloc(sizeof(struct adxl34x_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- result = adxl34x_set_odr(mlsl_handle, pdata, &private_data->suspend,
- false, 0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = adxl34x_set_odr(mlsl_handle, pdata, &private_data->resume,
- false, 200000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- range = range_fixedpoint_to_long_mg(slave->range);
- result = adxl34x_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- false, range);
- result = adxl34x_set_fsr(mlsl_handle, pdata, &private_data->resume,
- false, range);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = adxl34x_suspend(mlsl_handle, slave, pdata);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-/**
- * @brief one-time device driver exit function.
- * If the driver is built as a kernel module, this function will be
- * called when the module is removed from the kernel.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int adxl34x_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-/**
- * @brief read the sensor data from the device.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a buffer to store the data read.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int adxl34x_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- result = inv_serial_read(mlsl_handle, pdata->address,
- slave->read_reg, slave->read_len, data);
- return result;
-}
-
-static struct ext_slave_descr adxl34x_descr = {
- .init = adxl34x_init,
- .exit = adxl34x_exit,
- .suspend = adxl34x_suspend,
- .resume = adxl34x_resume,
- .read = adxl34x_read,
- .config = adxl34x_config,
- .get_config = adxl34x_get_config,
- .name = "adxl34x", /* 5 or 6 */
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ACCEL_ID_ADXL34X,
- .read_reg = 0x32,
- .read_len = 6,
- .endian = EXT_SLAVE_LITTLE_ENDIAN,
- .range = {2, 0},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *adxl34x_get_slave_descr(void)
-{
- return &adxl34x_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct adxl34x_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int adxl34x_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct adxl34x_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- adxl34x_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int adxl34x_mod_remove(struct i2c_client *client)
-{
- struct adxl34x_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- adxl34x_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id adxl34x_mod_id[] = {
- { "adxl34x", ACCEL_ID_ADXL34X },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, adxl34x_mod_id);
-
-static struct i2c_driver adxl34x_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = adxl34x_mod_probe,
- .remove = adxl34x_mod_remove,
- .id_table = adxl34x_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "adxl34x_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init adxl34x_mod_init(void)
-{
- int res = i2c_add_driver(&adxl34x_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "adxl34x_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit adxl34x_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&adxl34x_mod_driver);
-}
-
-module_init(adxl34x_mod_init);
-module_exit(adxl34x_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate ADXL34X sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("adxl34x_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/bma150.c b/drivers/misc/inv_mpu/accel/bma150.c
deleted file mode 100644
index c35f43a..0000000
--- a/drivers/misc/inv_mpu/accel/bma150.c
+++ /dev/null
@@ -1,776 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup ACCELDL
- * @brief Provides the interface to setup and handle an accelerometer.
- *
- * @{
- * @file bma150.c
- * @brief Accelerometer setup and handling methods for Bosch BMA150.
- */
-
-/* -------------------------------------------------------------------------- */
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-
-/* -------------------------------------------------------------------------- */
-/* registers */
-#define BMA150_CTRL_REG (0x14)
-#define BMA150_INT_REG (0x15)
-#define BMA150_PWR_REG (0x0A)
-
-/* masks */
-#define BMA150_CTRL_MASK (0x18)
-#define BMA150_CTRL_MASK_ODR (0xF8)
-#define BMA150_CTRL_MASK_FSR (0xE7)
-#define BMA150_INT_MASK_WUP (0xF8)
-#define BMA150_INT_MASK_IRQ (0xDF)
-#define BMA150_PWR_MASK_SLEEP (0x01)
-#define BMA150_PWR_MASK_SOFT_RESET (0x02)
-
-/* -------------------------------------------------------------------------- */
-struct bma150_config {
- unsigned int odr; /** < output data rate mHz */
- unsigned int fsr; /** < full scale range mgees */
- unsigned int irq_type; /** < type of IRQ, see bma150_set_irq */
- unsigned char ctrl_reg; /** < control register value */
- unsigned char int_reg; /** < interrupt control register value */
-};
-
-struct bma150_private_data {
- struct bma150_config suspend; /** < suspend configuration */
- struct bma150_config resume; /** < resume configuration */
-};
-
-/**
- * @brief Simply disables the IRQ since it is not usable on BMA150 devices.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * configuration to apply to, suspend or resume
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param irq_type
- * the type of IRQ. Valid values are
- * - MPU_SLAVE_IRQ_TYPE_NONE
- * - MPU_SLAVE_IRQ_TYPE_MOTION
- * - MPU_SLAVE_IRQ_TYPE_DATA_READY
- * The only supported IRQ type is MPU_SLAVE_IRQ_TYPE_NONE which
- * corresponds to disabling the IRQ completely.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma150_set_irq(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct bma150_config *config,
- int apply,
- long irq_type)
-{
- int result = INV_SUCCESS;
-
- if (irq_type != MPU_SLAVE_IRQ_TYPE_NONE)
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
-
- config->irq_type = MPU_SLAVE_IRQ_TYPE_NONE;
- config->int_reg = 0x00;
-
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_CTRL_REG, config->ctrl_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_INT_REG, config->int_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- return result;
-}
-
-/**
- * @brief Set the output data rate for the particular configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * Config to modify with new ODR.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param odr
- * Output data rate in units of 1/1000Hz (mHz).
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma150_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct bma150_config *config,
- int apply,
- long odr)
-{
- unsigned char odr_bits = 0;
- unsigned char wup_bits = 0;
- int result = INV_SUCCESS;
-
- if (odr > 100000) {
- config->odr = 190000;
- odr_bits = 0x03;
- } else if (odr > 50000) {
- config->odr = 100000;
- odr_bits = 0x02;
- } else if (odr > 25000) {
- config->odr = 50000;
- odr_bits = 0x01;
- } else if (odr > 0) {
- config->odr = 25000;
- odr_bits = 0x00;
- } else {
- config->odr = 0;
- wup_bits = 0x00;
- }
-
- config->int_reg &= BMA150_INT_MASK_WUP;
- config->ctrl_reg &= BMA150_CTRL_MASK_ODR;
- config->ctrl_reg |= odr_bits;
-
- MPL_LOGV("ODR: %d\n", config->odr);
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_CTRL_REG, config->ctrl_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_INT_REG, config->int_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- return result;
-}
-
-/**
- * @brief Set the full scale range of the accels
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * pointer to configuration.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param fsr
- * requested full scale range.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma150_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct bma150_config *config,
- int apply,
- long fsr)
-{
- unsigned char fsr_bits;
- int result = INV_SUCCESS;
-
- if (fsr <= 2048) {
- fsr_bits = 0x00;
- config->fsr = 2048;
- } else if (fsr <= 4096) {
- fsr_bits = 0x08;
- config->fsr = 4096;
- } else {
- fsr_bits = 0x10;
- config->fsr = 8192;
- }
-
- config->ctrl_reg &= BMA150_CTRL_MASK_FSR;
- config->ctrl_reg |= fsr_bits;
-
- MPL_LOGV("FSR: %d\n", config->fsr);
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_CTRL_REG, config->ctrl_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_CTRL_REG, config->ctrl_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- return result;
-}
-
-/**
- * @brief one-time device driver initialization function.
- * If the driver is built as a kernel module, this function will be
- * called when the module is loaded in the kernel.
- * If the driver is built-in in the kernel, this function will be
- * called at boot time.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma150_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char reg;
- long range;
-
- struct bma150_private_data *private_data;
- private_data = (struct bma150_private_data *)
- kzalloc(sizeof(struct bma150_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_PWR_REG, BMA150_PWR_MASK_SOFT_RESET);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(1);
-
- result = inv_serial_read(mlsl_handle, pdata->address,
- BMA150_CTRL_REG, 1, &reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- private_data->resume.ctrl_reg = reg;
- private_data->suspend.ctrl_reg = reg;
-
- result = inv_serial_read(mlsl_handle, pdata->address,
- BMA150_INT_REG, 1, &reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- private_data->resume.int_reg = reg;
- private_data->suspend.int_reg = reg;
-
- result = bma150_set_odr(mlsl_handle, pdata, &private_data->suspend,
- false, 0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = bma150_set_odr(mlsl_handle, pdata, &private_data->resume,
- false, 200000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- range = range_fixedpoint_to_long_mg(slave->range);
- result = bma150_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- false, range);
- result = bma150_set_fsr(mlsl_handle, pdata, &private_data->resume,
- false, range);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = bma150_set_irq(mlsl_handle, pdata, &private_data->suspend,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = bma150_set_irq(mlsl_handle, pdata, &private_data->resume,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_PWR_REG, BMA150_PWR_MASK_SLEEP);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-/**
- * @brief one-time device driver exit function.
- * If the driver is built as a kernel module, this function will be
- * called when the module is removed from the kernel.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma150_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-/**
- * @brief device configuration facility.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a pointer to the configuration data structure.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma150_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct bma150_private_data *private_data =
- (struct bma150_private_data *)(pdata->private_data);
-
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return bma150_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return bma150_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return bma150_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return bma150_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- return bma150_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- return bma150_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
- return INV_SUCCESS;
-}
-
-/**
- * @brief facility to retrieve the device configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a pointer to store the returned configuration data structure.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma150_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct bma150_private_data *private_data =
- (struct bma150_private_data *)(pdata->private_data);
-
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.irq_type;
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.irq_type;
- break;
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-/**
- * @brief suspends the device to put it in its lowest power mode.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma150_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char ctrl_reg;
- unsigned char int_reg;
-
- struct bma150_private_data *private_data =
- (struct bma150_private_data *)(pdata->private_data);
-
- ctrl_reg = private_data->suspend.ctrl_reg;
- int_reg = private_data->suspend.int_reg;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_PWR_REG, BMA150_PWR_MASK_SOFT_RESET);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(1);
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_CTRL_REG, ctrl_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_INT_REG, int_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_PWR_REG, BMA150_PWR_MASK_SLEEP);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-/**
- * @brief resume the device in the proper power state given the configuration
- * chosen.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma150_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char ctrl_reg;
- unsigned char int_reg;
-
- struct bma150_private_data *private_data =
- (struct bma150_private_data *)(pdata->private_data);
-
- ctrl_reg = private_data->resume.ctrl_reg;
- int_reg = private_data->resume.int_reg;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_PWR_REG, BMA150_PWR_MASK_SOFT_RESET);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(1);
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_CTRL_REG, ctrl_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_INT_REG, int_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA150_PWR_REG, 0x00);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-/**
- * @brief read the sensor data from the device.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a buffer to store the data read.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma150_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- return inv_serial_read(mlsl_handle, pdata->address,
- slave->read_reg, slave->read_len, data);
-}
-
-static struct ext_slave_descr bma150_descr = {
- .init = bma150_init,
- .exit = bma150_exit,
- .suspend = bma150_suspend,
- .resume = bma150_resume,
- .read = bma150_read,
- .config = bma150_config,
- .get_config = bma150_get_config,
- .name = "bma150",
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ACCEL_ID_BMA150,
- .read_reg = 0x02,
- .read_len = 6,
- .endian = EXT_SLAVE_LITTLE_ENDIAN,
- .range = {2, 0},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *bma150_get_slave_descr(void)
-{
- return &bma150_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-
-/* Platform data for the MPU */
-struct bma150_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int bma150_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct bma150_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- bma150_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int bma150_mod_remove(struct i2c_client *client)
-{
- struct bma150_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- bma150_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id bma150_mod_id[] = {
- { "bma150", ACCEL_ID_BMA150 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, bma150_mod_id);
-
-static struct i2c_driver bma150_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = bma150_mod_probe,
- .remove = bma150_mod_remove,
- .id_table = bma150_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "bma150_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init bma150_mod_init(void)
-{
- int res = i2c_add_driver(&bma150_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "bma150_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit bma150_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&bma150_mod_driver);
-}
-
-module_init(bma150_mod_init);
-module_exit(bma150_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate BMA150 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("bma150_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/bma222.c b/drivers/misc/inv_mpu/accel/bma222.c
deleted file mode 100644
index e9fc99b..0000000
--- a/drivers/misc/inv_mpu/accel/bma222.c
+++ /dev/null
@@ -1,654 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/*
- * @addtogroup ACCELDL
- * @brief Provides the interface to setup and handle an accelerometer.
- *
- * @{
- * @file bma222.c
- * @brief Accelerometer setup and handling methods for Bosch BMA222.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-
-/* -------------------------------------------------------------------------- */
-
-#define BMA222_STATUS_REG (0x0A)
-#define BMA222_FSR_REG (0x0F)
-#define ADXL34X_ODR_REG (0x10)
-#define BMA222_PWR_REG (0x11)
-#define BMA222_SOFTRESET_REG (0x14)
-
-#define BMA222_STATUS_RDY_MASK (0x80)
-#define BMA222_FSR_MASK (0x0F)
-#define BMA222_ODR_MASK (0x1F)
-#define BMA222_PWR_SLEEP_MASK (0x80)
-#define BMA222_PWR_AWAKE_MASK (0x00)
-#define BMA222_SOFTRESET_MASK (0xB6)
-#define BMA222_SOFTRESET_MASK (0xB6)
-
-/* -------------------------------------------------------------------------- */
-
-struct bma222_config {
- unsigned int odr; /** < output data rate in mHz */
- unsigned int fsr; /** < full scale range mg */
-};
-
-struct bma222_private_data {
- struct bma222_config suspend; /** < suspend configuration */
- struct bma222_config resume; /** < resume configuration */
-};
-
-
-/* -------------------------------------------------------------------------- */
-
-/**
- * @brief Set the output data rate for the particular configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * Config to modify with new ODR.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param odr
- * Output data rate in units of 1/1000Hz (mHz).
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma222_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct bma222_config *config,
- int apply,
- long odr)
-{
- int result = INV_SUCCESS;
- unsigned char reg_odr;
-
- if (odr >= 1000000) {
- reg_odr = 0x0F;
- config->odr = 1000000;
- } else if (odr >= 500000) {
- reg_odr = 0x0E;
- config->odr = 500000;
- } else if (odr >= 250000) {
- reg_odr = 0x0D;
- config->odr = 250000;
- } else if (odr >= 125000) {
- reg_odr = 0x0C;
- config->odr = 125000;
- } else if (odr >= 62500) {
- reg_odr = 0x0B;
- config->odr = 62500;
- } else if (odr >= 32000) {
- reg_odr = 0x0A;
- config->odr = 32000;
- } else if (odr >= 16000) {
- reg_odr = 0x09;
- config->odr = 16000;
- } else {
- reg_odr = 0x08;
- config->odr = 8000;
- }
-
- if (apply) {
- MPL_LOGV("ODR: %d\n", config->odr);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ADXL34X_ODR_REG, reg_odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- return result;
-}
-
-/**
- * @brief Set the full scale range of the accels
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * pointer to configuration.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param fsr
- * requested full scale range.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma222_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct bma222_config *config,
- int apply,
- long fsr)
-{
- int result = INV_SUCCESS;
- unsigned char reg_fsr_mask;
-
- if (fsr <= 2000) {
- reg_fsr_mask = 0x03;
- config->fsr = 2000;
- } else if (fsr <= 4000) {
- reg_fsr_mask = 0x05;
- config->fsr = 4000;
- } else if (fsr <= 8000) {
- reg_fsr_mask = 0x08;
- config->fsr = 8000;
- } else { /* 8001 -> oo */
- reg_fsr_mask = 0x0C;
- config->fsr = 16000;
- }
-
- if (apply) {
- MPL_LOGV("FSR: %d\n", config->fsr);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA222_FSR_REG, reg_fsr_mask);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- return result;
-}
-
-/**
- * @brief one-time device driver initialization function.
- * If the driver is built as a kernel module, this function will be
- * called when the module is loaded in the kernel.
- * If the driver is built-in in the kernel, this function will be
- * called at boot time.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma222_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
-
- struct bma222_private_data *private_data;
- private_data = (struct bma222_private_data *)
- kzalloc(sizeof(struct bma222_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA222_SOFTRESET_REG, BMA222_SOFTRESET_MASK);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(1);
-
- result = bma222_set_odr(mlsl_handle, pdata, &private_data->suspend,
- false, 0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = bma222_set_odr(mlsl_handle, pdata, &private_data->resume,
- false, 200000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = bma222_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- false, 2000);
- result = bma222_set_fsr(mlsl_handle, pdata, &private_data->resume,
- false, 2000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA222_PWR_REG, BMA222_PWR_SLEEP_MASK);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-/**
- * @brief one-time device driver exit function.
- * If the driver is built as a kernel module, this function will be
- * called when the module is removed from the kernel.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma222_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-
-/**
- * @brief facility to retrieve the device configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a pointer to store the returned configuration data structure.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma222_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct bma222_private_data *private_data =
- (struct bma222_private_data *)(pdata->private_data);
-
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-/**
- * @brief device configuration facility.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a pointer to the configuration data structure.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma222_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct bma222_private_data *private_data =
- (struct bma222_private_data *)(pdata->private_data);
-
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return bma222_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return bma222_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return bma222_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return bma222_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
- return INV_SUCCESS;
-}
-
-/**
- * @brief suspends the device to put it in its lowest power mode.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma222_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- struct bma222_config *suspend_config =
- &((struct bma222_private_data *)pdata->private_data)->suspend;
-
- result = bma222_set_odr(mlsl_handle, pdata, suspend_config,
- true, suspend_config->odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = bma222_set_fsr(mlsl_handle, pdata, suspend_config,
- true, suspend_config->fsr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA222_PWR_REG, BMA222_PWR_SLEEP_MASK);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- msleep(3); /* 3 ms powerup time maximum */
- return result;
-}
-
-/**
- * @brief resume the device in the proper power state given the configuration
- * chosen.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma222_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- struct bma222_config *resume_config =
- &((struct bma222_private_data *)pdata->private_data)->resume;
-
- /* Soft reset */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA222_SOFTRESET_REG, BMA222_SOFTRESET_MASK);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(10);
-
- result = bma222_set_odr(mlsl_handle, pdata, resume_config,
- true, resume_config->odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = bma222_set_fsr(mlsl_handle, pdata, resume_config,
- true, resume_config->fsr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-/**
- * @brief read the sensor data from the device.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a buffer to store the data read.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma222_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result = INV_SUCCESS;
- result = inv_serial_read(mlsl_handle, pdata->address,
- BMA222_STATUS_REG, 1, data);
- if (data[0] & BMA222_STATUS_RDY_MASK) {
- result = inv_serial_read(mlsl_handle, pdata->address,
- slave->read_reg, slave->read_len, data);
- return result;
- } else
- return INV_ERROR_ACCEL_DATA_NOT_READY;
-}
-
-static struct ext_slave_descr bma222_descr = {
- .init = bma222_init,
- .exit = bma222_exit,
- .suspend = bma222_suspend,
- .resume = bma222_resume,
- .read = bma222_read,
- .config = bma222_config,
- .get_config = bma222_get_config,
- .name = "bma222",
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ACCEL_ID_BMA222,
- .read_reg = 0x02,
- .read_len = 6,
- .endian = EXT_SLAVE_LITTLE_ENDIAN,
- .range = {2, 0},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *bma222_get_slave_descr(void)
-{
- return &bma222_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-
-struct bma222_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int bma222_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct bma222_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- bma222_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int bma222_mod_remove(struct i2c_client *client)
-{
- struct bma222_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- bma222_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id bma222_mod_id[] = {
- { "bma222", ACCEL_ID_BMA222 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, bma222_mod_id);
-
-static struct i2c_driver bma222_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = bma222_mod_probe,
- .remove = bma222_mod_remove,
- .id_table = bma222_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "bma222_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init bma222_mod_init(void)
-{
- int res = i2c_add_driver(&bma222_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "bma222_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit bma222_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&bma222_mod_driver);
-}
-
-module_init(bma222_mod_init);
-module_exit(bma222_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate BMA222 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("bma222_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/bma250.c b/drivers/misc/inv_mpu/accel/bma250.c
deleted file mode 100644
index 6a245f4..0000000
--- a/drivers/misc/inv_mpu/accel/bma250.c
+++ /dev/null
@@ -1,787 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup ACCELDL
- * @brief Provides the interface to setup and handle an accelerometer.
- *
- * @{
- * @file bma250.c
- * @brief Accelerometer setup and handling methods for Bosch BMA250.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-
-/* -------------------------------------------------------------------------- */
-
-/* registers */
-#define BMA250_STATUS_REG (0x0A)
-#define BMA250_FSR_REG (0x0F)
-#define BMA250_ODR_REG (0x10)
-#define BMA250_PWR_REG (0x11)
-#define BMA250_SOFTRESET_REG (0x14)
-#define BMA250_INT_TYPE_REG (0x17)
-#define BMA250_INT_DST_REG (0x1A)
-#define BMA250_INT_SRC_REG (0x1E)
-
-/* masks */
-#define BMA250_STATUS_RDY_MASK (0x80)
-#define BMA250_FSR_MASK (0x0F)
-#define BMA250_ODR_MASK (0x1F)
-#define BMA250_PWR_SLEEP_MASK (0x80)
-#define BMA250_PWR_AWAKE_MASK (0x00)
-#define BMA250_SOFTRESET_MASK (0xB6)
-#define BMA250_INT_TYPE_MASK (0x10)
-#define BMA250_INT_DST_1_MASK (0x01)
-#define BMA250_INT_DST_2_MASK (0x80)
-#define BMA250_INT_SRC_MASK (0x00)
-
-/* -------------------------------------------------------------------------- */
-
-struct bma250_config {
- unsigned int odr; /** < output data rate in mHz */
- unsigned int fsr; /** < full scale range mg */
- unsigned char irq_type;
-};
-
-struct bma250_private_data {
- struct bma250_config suspend; /** < suspend configuration */
- struct bma250_config resume; /** < resume configuration */
-};
-
-/* -------------------------------------------------------------------------- */
-/**
- * @brief Sets the IRQ to fire when one of the IRQ events occur.
- * Threshold and duration will not be used unless the type is MOT or
- * NMOT.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * configuration to apply to, suspend or resume
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param irq_type
- * the type of IRQ. Valid values are
- * - MPU_SLAVE_IRQ_TYPE_NONE
- * - MPU_SLAVE_IRQ_TYPE_MOTION
- * - MPU_SLAVE_IRQ_TYPE_DATA_READY
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma250_set_irq(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct bma250_config *config,
- int apply, long irq_type)
-{
- int result = INV_SUCCESS;
- unsigned char irqtype_reg;
- unsigned char irqdst_reg;
- unsigned char irqsrc_reg;
-
- switch (irq_type) {
- case MPU_SLAVE_IRQ_TYPE_DATA_READY:
- /* data ready int. */
- irqtype_reg = BMA250_INT_TYPE_MASK;
- /* routed to interrupt pin 1 */
- irqdst_reg = BMA250_INT_DST_1_MASK;
- /* from filtered data */
- irqsrc_reg = BMA250_INT_SRC_MASK;
- break;
- /* unfinished
- case MPU_SLAVE_IRQ_TYPE_MOTION:
- reg1 = 0x00;
- reg2 = config->mot_int1_cfg;
- reg3 = ;
- break;
- */
- case MPU_SLAVE_IRQ_TYPE_NONE:
- irqtype_reg = 0x00;
- irqdst_reg = 0x00;
- irqsrc_reg = 0x00;
- break;
- default:
- return INV_ERROR_INVALID_PARAMETER;
- break;
- }
-
- config->irq_type = (unsigned char)irq_type;
-
- if (apply) {
- /* select the type of interrupt to use */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA250_INT_TYPE_REG, irqtype_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* select to which interrupt pin to route it to */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA250_INT_DST_REG, irqdst_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* select whether the interrupt works off filtered or
- unfiltered data */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA250_INT_SRC_REG, irqsrc_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- return result;
-}
-
-/**
- * @brief Set the output data rate for the particular configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * Config to modify with new ODR.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param odr
- * Output data rate in units of 1/1000Hz (mHz).
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma250_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct bma250_config *config,
- int apply,
- long odr)
-{
- int result = INV_SUCCESS;
- unsigned char reg_odr;
-
- /* Table uses bandwidth which is half the sample rate */
- odr = odr >> 1;
- if (odr >= 1000000) {
- reg_odr = 0x0F;
- config->odr = 2000000;
- } else if (odr >= 500000) {
- reg_odr = 0x0E;
- config->odr = 1000000;
- } else if (odr >= 250000) {
- reg_odr = 0x0D;
- config->odr = 500000;
- } else if (odr >= 125000) {
- reg_odr = 0x0C;
- config->odr = 250000;
- } else if (odr >= 62500) {
- reg_odr = 0x0B;
- config->odr = 125000;
- } else if (odr >= 31250) {
- reg_odr = 0x0A;
- config->odr = 62500;
- } else if (odr >= 15630) {
- reg_odr = 0x09;
- config->odr = 31250;
- } else {
- reg_odr = 0x08;
- config->odr = 15630;
- }
-
- if (apply) {
- MPL_LOGV("ODR: %d\n", config->odr);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA250_ODR_REG, reg_odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- return result;
-}
-
-/**
- * @brief Set the full scale range of the accels
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * pointer to configuration.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param fsr
- * requested full scale range.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma250_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct bma250_config *config,
- int apply,
- long fsr)
-{
- int result = INV_SUCCESS;
- unsigned char reg_fsr_mask;
-
- if (fsr <= 2000) {
- reg_fsr_mask = 0x03;
- config->fsr = 2000;
- } else if (fsr <= 4000) {
- reg_fsr_mask = 0x05;
- config->fsr = 4000;
- } else if (fsr <= 8000) {
- reg_fsr_mask = 0x08;
- config->fsr = 8000;
- } else { /* 8001 -> oo */
- reg_fsr_mask = 0x0C;
- config->fsr = 16000;
- }
-
- if (apply) {
- MPL_LOGV("FSR: %d\n", config->fsr);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA250_FSR_REG, reg_fsr_mask);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- return result;
-}
-
-/**
- * @brief one-time device driver initialization function.
- * If the driver is built as a kernel module, this function will be
- * called when the module is loaded in the kernel.
- * If the driver is built-in in the kernel, this function will be
- * called at boot time.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma250_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- long range;
-
- struct bma250_private_data *private_data;
- private_data = kzalloc(sizeof(struct bma250_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA250_SOFTRESET_REG, BMA250_SOFTRESET_MASK);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(1);
-
- result = bma250_set_odr(mlsl_handle, pdata, &private_data->suspend,
- false, 0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = bma250_set_odr(mlsl_handle, pdata, &private_data->resume,
- false, 200000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- range = range_fixedpoint_to_long_mg(slave->range);
- result = bma250_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- false, range);
- result = bma250_set_fsr(mlsl_handle, pdata, &private_data->resume,
- false, range);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = bma250_set_irq(mlsl_handle, pdata, &private_data->suspend,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = bma250_set_irq(mlsl_handle, pdata, &private_data->resume,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA250_PWR_REG, BMA250_PWR_SLEEP_MASK);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-/**
- * @brief one-time device driver exit function.
- * If the driver is built as a kernel module, this function will be
- * called when the module is removed from the kernel.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma250_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-/**
- * @brief device configuration facility.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a pointer to the configuration data structure.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma250_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct bma250_private_data *private_data =
- (struct bma250_private_data *)(pdata->private_data);
-
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return bma250_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return bma250_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return bma250_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return bma250_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- return bma250_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- return bma250_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
- return INV_SUCCESS;
-}
-
-/**
- * @brief facility to retrieve the device configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a pointer to store the returned configuration data structure.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma250_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct bma250_private_data *private_data =
- (struct bma250_private_data *)(pdata->private_data);
-
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.irq_type;
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.irq_type;
- break;
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-/**
- * @brief suspends the device to put it in its lowest power mode.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma250_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- struct bma250_config *suspend_config =
- &((struct bma250_private_data *)pdata->private_data)->suspend;
-
- result = bma250_set_odr(mlsl_handle, pdata, suspend_config,
- true, suspend_config->odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = bma250_set_fsr(mlsl_handle, pdata, suspend_config,
- true, suspend_config->fsr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = bma250_set_irq(mlsl_handle, pdata, suspend_config,
- true, suspend_config->irq_type);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA250_PWR_REG, BMA250_PWR_SLEEP_MASK);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- msleep(3); /* 3 ms powerup time maximum */
- return result;
-}
-
-/**
- * @brief resume the device in the proper power state given the configuration
- * chosen.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma250_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- struct bma250_config *resume_config =
- &((struct bma250_private_data *)pdata->private_data)->resume;
-
- result = bma250_set_odr(mlsl_handle, pdata, resume_config,
- true, resume_config->odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = bma250_set_fsr(mlsl_handle, pdata, resume_config,
- true, resume_config->fsr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = bma250_set_irq(mlsl_handle, pdata, resume_config,
- true, resume_config->irq_type);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- BMA250_PWR_REG, BMA250_PWR_AWAKE_MASK);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-/**
- * @brief read the sensor data from the device.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a buffer to store the data read.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int bma250_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result = INV_SUCCESS;
- result = inv_serial_read(mlsl_handle, pdata->address,
- BMA250_STATUS_REG, 1, data);
- if (1) { /* KLP - workaroud for small data ready window */
- result = inv_serial_read(mlsl_handle, pdata->address,
- slave->read_reg, slave->read_len, data);
- return result;
- } else
- return INV_ERROR_ACCEL_DATA_NOT_READY;
-}
-
-static struct ext_slave_descr bma250_descr = {
- .init = bma250_init,
- .exit = bma250_exit,
- .suspend = bma250_suspend,
- .resume = bma250_resume,
- .read = bma250_read,
- .config = bma250_config,
- .get_config = bma250_get_config,
- .name = "bma250",
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ACCEL_ID_BMA250,
- .read_reg = 0x02,
- .read_len = 6,
- .endian = EXT_SLAVE_LITTLE_ENDIAN,
- .range = {2, 0},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *bma250_get_slave_descr(void)
-{
- return &bma250_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-
-/* Platform data for the MPU */
-struct bma250_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int bma250_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct bma250_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- bma250_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int bma250_mod_remove(struct i2c_client *client)
-{
- struct bma250_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- bma250_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id bma250_mod_id[] = {
- { "bma250", ACCEL_ID_BMA250 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, bma250_mod_id);
-
-static struct i2c_driver bma250_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = bma250_mod_probe,
- .remove = bma250_mod_remove,
- .id_table = bma250_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "bma250_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init bma250_mod_init(void)
-{
- int res = i2c_add_driver(&bma250_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "bma250_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit bma250_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&bma250_mod_driver);
-}
-
-module_init(bma250_mod_init);
-module_exit(bma250_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate BMA250 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("bma250_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/cma3000.c b/drivers/misc/inv_mpu/accel/cma3000.c
deleted file mode 100644
index 496d1f2..0000000
--- a/drivers/misc/inv_mpu/accel/cma3000.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/*
- * @addtogroup ACCELDL
- * @brief Accelerometer setup and handling methods for VTI CMA3000.
- *
- * @{
- * @file cma3000.c
- * @brief Accelerometer setup and handling methods for VTI CMA3000
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* -------------------------------------------------------------------------- */
-
-static int cma3000_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- /* RAM reset */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address, 0x1d, 0xcd);
- return result;
-}
-
-static int cma3000_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
-
- return INV_SUCCESS;
-}
-
-static int cma3000_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- result = inv_serial_read(mlsl_handle, pdata->address,
- slave->reg, slave->len, data);
- return result;
-}
-
-static struct ext_slave_descr cma3000_descr = {
- .init = NULL,
- .exit = NULL,
- .suspend = cma3000_suspend,
- .resume = cma3000_resume,
- .read = cma3000_read,
- .config = NULL,
- .get_config = NULL,
- .name = "cma3000",
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ID_INVALID,
- .read_reg = 0x06,
- .read_len = 6,
- .endian = EXT_SLAVE_LITTLE_ENDIAN,
- .range = {2, 0},
- .trigger = NULL,
-
-};
-
-static
-struct ext_slave_descr *cma3000_get_slave_descr(void)
-{
- return &cma3000_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-
-struct cma3000_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int cma3000_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct cma3000_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- cma3000_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int cma3000_mod_remove(struct i2c_client *client)
-{
- struct cma3000_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- cma3000_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id cma3000_mod_id[] = {
- { "cma3000", ACCEL_ID_CMA3000 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, cma3000_mod_id);
-
-static struct i2c_driver cma3000_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = cma3000_mod_probe,
- .remove = cma3000_mod_remove,
- .id_table = cma3000_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "cma3000_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init cma3000_mod_init(void)
-{
- int res = i2c_add_driver(&cma3000_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "cma3000_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit cma3000_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&cma3000_mod_driver);
-}
-
-module_init(cma3000_mod_init);
-module_exit(cma3000_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate CMA3000 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("cma3000_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/kxsd9.c b/drivers/misc/inv_mpu/accel/kxsd9.c
deleted file mode 100644
index 5cb4eaf..0000000
--- a/drivers/misc/inv_mpu/accel/kxsd9.c
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup ACCELDL
- * @brief Accelerometer setup and handling methods for Kionix KXSD9.
- *
- * @{
- * @file kxsd9.c
- * @brief Accelerometer setup and handling methods for Kionix KXSD9.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* -------------------------------------------------------------------------- */
-
-static int kxsd9_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- /* CTRL_REGB: low-power standby mode */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address, 0x0d, 0x0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return result;
-}
-
-/* full scale setting - register and mask */
-#define ACCEL_KIONIX_CTRL_REG (0x0C)
-#define ACCEL_KIONIX_CTRL_MASK (0x3)
-
-static int kxsd9_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- unsigned char reg;
-
- /* Full Scale */
- reg = 0x0;
- reg &= ~ACCEL_KIONIX_CTRL_MASK;
- reg |= 0x00;
- if (slave->range.mantissa == 4) { /* 4g scale = 4.9951 */
- reg |= 0x2;
- slave->range.fraction = 9951;
- } else if (slave->range.mantissa == 7) { /* 6g scale = 7.5018 */
- reg |= 0x1;
- slave->range.fraction = 5018;
- } else if (slave->range.mantissa == 9) { /* 8g scale = 9.9902 */
- reg |= 0x0;
- slave->range.fraction = 9902;
- } else {
- slave->range.mantissa = 2; /* 2g scale = 2.5006 */
- slave->range.fraction = 5006;
- reg |= 0x3;
- }
- reg |= 0xC0; /* 100Hz LPF */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_KIONIX_CTRL_REG, reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* normal operation */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address, 0x0d, 0x40);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return INV_SUCCESS;
-}
-
-static int kxsd9_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- result = inv_serial_read(mlsl_handle, pdata->address,
- slave->read_reg, slave->read_len, data);
- return result;
-}
-
-static struct ext_slave_descr kxsd9_descr = {
- .init = NULL,
- .exit = NULL,
- .suspend = kxsd9_suspend,
- .resume = kxsd9_resume,
- .read = kxsd9_read,
- .config = NULL,
- .get_config = NULL,
- .name = "kxsd9",
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ACCEL_ID_KXSD9,
- .read_reg = 0x00,
- .read_len = 6,
- .endian = EXT_SLAVE_BIG_ENDIAN,
- .range = {2, 5006},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *kxsd9_get_slave_descr(void)
-{
- return &kxsd9_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct kxsd9_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int kxsd9_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct kxsd9_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- kxsd9_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int kxsd9_mod_remove(struct i2c_client *client)
-{
- struct kxsd9_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- kxsd9_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id kxsd9_mod_id[] = {
- { "kxsd9", ACCEL_ID_KXSD9 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, kxsd9_mod_id);
-
-static struct i2c_driver kxsd9_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = kxsd9_mod_probe,
- .remove = kxsd9_mod_remove,
- .id_table = kxsd9_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "kxsd9_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init kxsd9_mod_init(void)
-{
- int res = i2c_add_driver(&kxsd9_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "kxsd9_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit kxsd9_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&kxsd9_mod_driver);
-}
-
-module_init(kxsd9_mod_init);
-module_exit(kxsd9_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate KXSD9 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("kxsd9_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/kxtf9.c b/drivers/misc/inv_mpu/accel/kxtf9.c
deleted file mode 100644
index 80776f2..0000000
--- a/drivers/misc/inv_mpu/accel/kxtf9.c
+++ /dev/null
@@ -1,841 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup ACCELDL
- * @brief Accelerometer setup and handling methods for Kionix KXTF9.
- *
- * @{
- * @file kxtf9.c
- * @brief Accelerometer setup and handling methods for Kionix KXTF9.
-*/
-
-/* -------------------------------------------------------------------------- */
-
-#undef MPL_LOG_NDEBUG
-#define MPL_LOG_NDEBUG 1
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-#define KXTF9_XOUT_HPF_L (0x00) /* 0000 0000 */
-#define KXTF9_XOUT_HPF_H (0x01) /* 0000 0001 */
-#define KXTF9_YOUT_HPF_L (0x02) /* 0000 0010 */
-#define KXTF9_YOUT_HPF_H (0x03) /* 0000 0011 */
-#define KXTF9_ZOUT_HPF_L (0x04) /* 0001 0100 */
-#define KXTF9_ZOUT_HPF_H (0x05) /* 0001 0101 */
-#define KXTF9_XOUT_L (0x06) /* 0000 0110 */
-#define KXTF9_XOUT_H (0x07) /* 0000 0111 */
-#define KXTF9_YOUT_L (0x08) /* 0000 1000 */
-#define KXTF9_YOUT_H (0x09) /* 0000 1001 */
-#define KXTF9_ZOUT_L (0x0A) /* 0001 1010 */
-#define KXTF9_ZOUT_H (0x0B) /* 0001 1011 */
-#define KXTF9_ST_RESP (0x0C) /* 0000 1100 */
-#define KXTF9_WHO_AM_I (0x0F) /* 0000 1111 */
-#define KXTF9_TILT_POS_CUR (0x10) /* 0001 0000 */
-#define KXTF9_TILT_POS_PRE (0x11) /* 0001 0001 */
-#define KXTF9_INT_SRC_REG1 (0x15) /* 0001 0101 */
-#define KXTF9_INT_SRC_REG2 (0x16) /* 0001 0110 */
-#define KXTF9_STATUS_REG (0x18) /* 0001 1000 */
-#define KXTF9_INT_REL (0x1A) /* 0001 1010 */
-#define KXTF9_CTRL_REG1 (0x1B) /* 0001 1011 */
-#define KXTF9_CTRL_REG2 (0x1C) /* 0001 1100 */
-#define KXTF9_CTRL_REG3 (0x1D) /* 0001 1101 */
-#define KXTF9_INT_CTRL_REG1 (0x1E) /* 0001 1110 */
-#define KXTF9_INT_CTRL_REG2 (0x1F) /* 0001 1111 */
-#define KXTF9_INT_CTRL_REG3 (0x20) /* 0010 0000 */
-#define KXTF9_DATA_CTRL_REG (0x21) /* 0010 0001 */
-#define KXTF9_TILT_TIMER (0x28) /* 0010 1000 */
-#define KXTF9_WUF_TIMER (0x29) /* 0010 1001 */
-#define KXTF9_TDT_TIMER (0x2B) /* 0010 1011 */
-#define KXTF9_TDT_H_THRESH (0x2C) /* 0010 1100 */
-#define KXTF9_TDT_L_THRESH (0x2D) /* 0010 1101 */
-#define KXTF9_TDT_TAP_TIMER (0x2E) /* 0010 1110 */
-#define KXTF9_TDT_TOTAL_TIMER (0x2F) /* 0010 1111 */
-#define KXTF9_TDT_LATENCY_TIMER (0x30) /* 0011 0000 */
-#define KXTF9_TDT_WINDOW_TIMER (0x31) /* 0011 0001 */
-#define KXTF9_WUF_THRESH (0x5A) /* 0101 1010 */
-#define KXTF9_TILT_ANGLE (0x5C) /* 0101 1100 */
-#define KXTF9_HYST_SET (0x5F) /* 0101 1111 */
-
-#define KXTF9_MAX_DUR (0xFF)
-#define KXTF9_MAX_THS (0xFF)
-#define KXTF9_THS_COUNTS_P_G (32)
-
-/* -------------------------------------------------------------------------- */
-
-struct kxtf9_config {
- unsigned long odr; /* Output data rate mHz */
- unsigned int fsr; /* full scale range mg */
- unsigned int ths; /* Motion no-motion thseshold mg */
- unsigned int dur; /* Motion no-motion duration ms */
- unsigned int irq_type;
- unsigned char reg_ths;
- unsigned char reg_dur;
- unsigned char reg_odr;
- unsigned char reg_int_cfg1;
- unsigned char reg_int_cfg2;
- unsigned char ctrl_reg1;
-};
-
-struct kxtf9_private_data {
- struct kxtf9_config suspend;
- struct kxtf9_config resume;
-};
-
-static int kxtf9_set_ths(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct kxtf9_config *config, int apply, long ths)
-{
- int result = INV_SUCCESS;
- if ((ths * KXTF9_THS_COUNTS_P_G / 1000) > KXTF9_MAX_THS)
- ths = (long)(KXTF9_MAX_THS * 1000) / KXTF9_THS_COUNTS_P_G;
-
- if (ths < 0)
- ths = 0;
-
- config->ths = ths;
- config->reg_ths = (unsigned char)
- ((long)(ths * KXTF9_THS_COUNTS_P_G) / 1000);
- MPL_LOGV("THS: %d, 0x%02x\n", config->ths, (int)config->reg_ths);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_WUF_THRESH,
- config->reg_ths);
- return result;
-}
-
-static int kxtf9_set_dur(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct kxtf9_config *config, int apply, long dur)
-{
- int result = INV_SUCCESS;
- long reg_dur = (dur * config->odr) / 1000000L;
- config->dur = dur;
-
- if (reg_dur > KXTF9_MAX_DUR)
- reg_dur = KXTF9_MAX_DUR;
-
- config->reg_dur = (unsigned char)reg_dur;
- MPL_LOGV("DUR: %d, 0x%02x\n", config->dur, (int)config->reg_dur);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_WUF_TIMER,
- (unsigned char)reg_dur);
- return result;
-}
-
-/**
- * Sets the IRQ to fire when one of the IRQ events occur. Threshold and
- * duration will not be used uless the type is MOT or NMOT.
- *
- * @param config configuration to apply to, suspend or resume
- * @param irq_type The type of IRQ. Valid values are
- * - MPU_SLAVE_IRQ_TYPE_NONE
- * - MPU_SLAVE_IRQ_TYPE_MOTION
- * - MPU_SLAVE_IRQ_TYPE_DATA_READY
- */
-static int kxtf9_set_irq(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct kxtf9_config *config, int apply, long irq_type)
-{
- int result = INV_SUCCESS;
- struct kxtf9_private_data *private_data = pdata->private_data;
-
- config->irq_type = (unsigned char)irq_type;
- config->ctrl_reg1 &= ~0x22;
- if (irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- config->ctrl_reg1 |= 0x20;
- config->reg_int_cfg1 = 0x38;
- config->reg_int_cfg2 = 0x00;
- } else if (irq_type == MPU_SLAVE_IRQ_TYPE_MOTION) {
- config->ctrl_reg1 |= 0x02;
- if ((unsigned long)config ==
- (unsigned long)&private_data->suspend)
- config->reg_int_cfg1 = 0x34;
- else
- config->reg_int_cfg1 = 0x24;
- config->reg_int_cfg2 = 0xE0;
- } else {
- config->reg_int_cfg1 = 0x00;
- config->reg_int_cfg2 = 0x00;
- }
-
- if (apply) {
- /* Must clear bit 7 before writing new configuration */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1, 0x40);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_INT_CTRL_REG1,
- config->reg_int_cfg1);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_INT_CTRL_REG2,
- config->reg_int_cfg2);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1,
- config->ctrl_reg1);
- }
- MPL_LOGV("CTRL_REG1: %lx, INT_CFG1: %lx, INT_CFG2: %lx\n",
- (unsigned long)config->ctrl_reg1,
- (unsigned long)config->reg_int_cfg1,
- (unsigned long)config->reg_int_cfg2);
-
- return result;
-}
-
-/**
- * Set the Output data rate for the particular configuration
- *
- * @param config Config to modify with new ODR
- * @param odr Output data rate in units of 1/1000Hz
- */
-static int kxtf9_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct kxtf9_config *config, int apply, long odr)
-{
- unsigned char bits;
- int result = INV_SUCCESS;
-
- /* Data sheet says there is 12.5 hz, but that seems to produce a single
- * correct data value, thus we remove it from the table */
- if (odr > 400000L) {
- config->odr = 800000L;
- bits = 0x06;
- } else if (odr > 200000L) {
- config->odr = 400000L;
- bits = 0x05;
- } else if (odr > 100000L) {
- config->odr = 200000L;
- bits = 0x04;
- } else if (odr > 50000) {
- config->odr = 100000L;
- bits = 0x03;
- } else if (odr > 25000) {
- config->odr = 50000;
- bits = 0x02;
- } else if (odr != 0) {
- config->odr = 25000;
- bits = 0x01;
- } else {
- config->odr = 0;
- bits = 0;
- }
-
- if (odr != 0)
- config->ctrl_reg1 |= 0x80;
- else
- config->ctrl_reg1 &= ~0x80;
-
- config->reg_odr = bits;
- kxtf9_set_dur(mlsl_handle, pdata, config, apply, config->dur);
- MPL_LOGV("ODR: %ld, 0x%02x\n", config->odr, (int)config->ctrl_reg1);
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_DATA_CTRL_REG,
- config->reg_odr);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1, 0x40);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1,
- config->ctrl_reg1);
- }
- return result;
-}
-
-/**
- * Set the full scale range of the accels
- *
- * @param config pointer to configuration
- * @param fsr requested full scale range
- */
-static int kxtf9_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct kxtf9_config *config, int apply, long fsr)
-{
- int result = INV_SUCCESS;
-
- config->ctrl_reg1 = (config->ctrl_reg1 & 0xE7);
- if (fsr <= 2000) {
- config->fsr = 2000;
- config->ctrl_reg1 |= 0x00;
- } else if (fsr <= 4000) {
- config->fsr = 4000;
- config->ctrl_reg1 |= 0x08;
- } else {
- config->fsr = 8000;
- config->ctrl_reg1 |= 0x10;
- }
-
- MPL_LOGV("FSR: %d\n", config->fsr);
- if (apply) {
- /* Must clear bit 7 before writing new configuration */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1, 0x40);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1,
- config->ctrl_reg1);
- }
- return result;
-}
-
-static int kxtf9_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char data;
- struct kxtf9_private_data *private_data = pdata->private_data;
-
- /* Wake up */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1, 0x40);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* INT_CTRL_REG1: */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_INT_CTRL_REG1,
- private_data->suspend.reg_int_cfg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* WUF_THRESH: */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_WUF_THRESH,
- private_data->suspend.reg_ths);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* DATA_CTRL_REG */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_DATA_CTRL_REG,
- private_data->suspend.reg_odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* WUF_TIMER */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_WUF_TIMER,
- private_data->suspend.reg_dur);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Normal operation */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1,
- private_data->suspend.ctrl_reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_read(mlsl_handle, pdata->address,
- KXTF9_INT_REL, 1, &data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-/* full scale setting - register and mask */
-#define ACCEL_KIONIX_CTRL_REG (0x1b)
-#define ACCEL_KIONIX_CTRL_MASK (0x18)
-
-static int kxtf9_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- unsigned char data;
- struct kxtf9_private_data *private_data = pdata->private_data;
-
- /* Wake up */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1, 0x40);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* INT_CTRL_REG1: */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_INT_CTRL_REG1,
- private_data->resume.reg_int_cfg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* WUF_THRESH: */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_WUF_THRESH,
- private_data->resume.reg_ths);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* DATA_CTRL_REG */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_DATA_CTRL_REG,
- private_data->resume.reg_odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* WUF_TIMER */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_WUF_TIMER,
- private_data->resume.reg_dur);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Normal operation */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1,
- private_data->resume.ctrl_reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_read(mlsl_handle, pdata->address,
- KXTF9_INT_REL, 1, &data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return INV_SUCCESS;
-}
-
-static int kxtf9_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
-
- struct kxtf9_private_data *private_data;
- int result = INV_SUCCESS;
-
- private_data = (struct kxtf9_private_data *)
- kzalloc(sizeof(struct kxtf9_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- /* RAM reset */
- /* Fastest Reset */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1, 0x40);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Fastest Reset */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_DATA_CTRL_REG, 0x36);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Reset */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG3, 0xcd);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(2);
-
- pdata->private_data = private_data;
-
- private_data->resume.ctrl_reg1 = 0xC0;
- private_data->suspend.ctrl_reg1 = 0x40;
-
- result = kxtf9_set_dur(mlsl_handle, pdata, &private_data->suspend,
- false, 1000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = kxtf9_set_dur(mlsl_handle, pdata, &private_data->resume,
- false, 2540);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = kxtf9_set_odr(mlsl_handle, pdata, &private_data->suspend,
- false, 50000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = kxtf9_set_odr(mlsl_handle, pdata, &private_data->resume,
- false, 200000L);
-
- result = kxtf9_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- false, 2000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = kxtf9_set_fsr(mlsl_handle, pdata, &private_data->resume,
- false, 2000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = kxtf9_set_ths(mlsl_handle, pdata, &private_data->suspend,
- false, 80);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = kxtf9_set_ths(mlsl_handle, pdata, &private_data->resume,
- false, 40);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = kxtf9_set_irq(mlsl_handle, pdata, &private_data->suspend,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = kxtf9_set_irq(mlsl_handle, pdata, &private_data->resume,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return result;
-}
-
-static int kxtf9_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-static int kxtf9_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct kxtf9_private_data *private_data = pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return kxtf9_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return kxtf9_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return kxtf9_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return kxtf9_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_THS:
- return kxtf9_set_ths(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_THS:
- return kxtf9_set_ths(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_DUR:
- return kxtf9_set_dur(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- return kxtf9_set_dur(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- return kxtf9_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- return kxtf9_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static int kxtf9_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct kxtf9_private_data *private_data = pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_MOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.ths;
- break;
- case MPU_SLAVE_CONFIG_NMOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.ths;
- break;
- case MPU_SLAVE_CONFIG_MOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.dur;
- break;
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.dur;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.irq_type;
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.irq_type;
- break;
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static int kxtf9_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- unsigned char reg;
- result = inv_serial_read(mlsl_handle, pdata->address,
- KXTF9_INT_SRC_REG2, 1, &reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- if (!(reg & 0x10))
- return INV_ERROR_ACCEL_DATA_NOT_READY;
-
- result = inv_serial_read(mlsl_handle, pdata->address,
- slave->read_reg, slave->read_len, data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return result;
-}
-
-static struct ext_slave_descr kxtf9_descr = {
- .init = kxtf9_init,
- .exit = kxtf9_exit,
- .suspend = kxtf9_suspend,
- .resume = kxtf9_resume,
- .read = kxtf9_read,
- .config = kxtf9_config,
- .get_config = kxtf9_get_config,
- .name = "kxtf9",
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ACCEL_ID_KXTF9,
- .read_reg = 0x06,
- .read_len = 6,
- .endian = EXT_SLAVE_LITTLE_ENDIAN,
- .range = {2, 0},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *kxtf9_get_slave_descr(void)
-{
- return &kxtf9_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct kxtf9_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int kxtf9_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct kxtf9_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- kxtf9_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int kxtf9_mod_remove(struct i2c_client *client)
-{
- struct kxtf9_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- kxtf9_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id kxtf9_mod_id[] = {
- { "kxtf9", ACCEL_ID_KXTF9 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, kxtf9_mod_id);
-
-static struct i2c_driver kxtf9_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = kxtf9_mod_probe,
- .remove = kxtf9_mod_remove,
- .id_table = kxtf9_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "kxtf9_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init kxtf9_mod_init(void)
-{
- int res = i2c_add_driver(&kxtf9_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "kxtf9_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit kxtf9_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&kxtf9_mod_driver);
-}
-
-module_init(kxtf9_mod_init);
-module_exit(kxtf9_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate KXTF9 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("kxtf9_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/lis331.c b/drivers/misc/inv_mpu/accel/lis331.c
deleted file mode 100644
index bcbec25..0000000
--- a/drivers/misc/inv_mpu/accel/lis331.c
+++ /dev/null
@@ -1,745 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup ACCELDL
- * @brief Provides the interface to setup and handle an accelerometer.
- *
- * @{
- * @file lis331.c
- * @brief Accelerometer setup and handling methods for ST LIS331DLH.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#undef MPL_LOG_NDEBUG
-#define MPL_LOG_NDEBUG 1
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* full scale setting - register & mask */
-#define LIS331DLH_CTRL_REG1 (0x20)
-#define LIS331DLH_CTRL_REG2 (0x21)
-#define LIS331DLH_CTRL_REG3 (0x22)
-#define LIS331DLH_CTRL_REG4 (0x23)
-#define LIS331DLH_CTRL_REG5 (0x24)
-#define LIS331DLH_HP_FILTER_RESET (0x25)
-#define LIS331DLH_REFERENCE (0x26)
-#define LIS331DLH_STATUS_REG (0x27)
-#define LIS331DLH_OUT_X_L (0x28)
-#define LIS331DLH_OUT_X_H (0x29)
-#define LIS331DLH_OUT_Y_L (0x2a)
-#define LIS331DLH_OUT_Y_H (0x2b)
-#define LIS331DLH_OUT_Z_L (0x2b)
-#define LIS331DLH_OUT_Z_H (0x2d)
-
-#define LIS331DLH_INT1_CFG (0x30)
-#define LIS331DLH_INT1_SRC (0x31)
-#define LIS331DLH_INT1_THS (0x32)
-#define LIS331DLH_INT1_DURATION (0x33)
-
-#define LIS331DLH_INT2_CFG (0x34)
-#define LIS331DLH_INT2_SRC (0x35)
-#define LIS331DLH_INT2_THS (0x36)
-#define LIS331DLH_INT2_DURATION (0x37)
-
-/* CTRL_REG1 */
-#define LIS331DLH_CTRL_MASK (0x30)
-#define LIS331DLH_SLEEP_MASK (0x20)
-#define LIS331DLH_PWR_MODE_NORMAL (0x20)
-
-#define LIS331DLH_MAX_DUR (0x7F)
-
-
-/* -------------------------------------------------------------------------- */
-
-struct lis331dlh_config {
- unsigned int odr;
- unsigned int fsr; /* full scale range mg */
- unsigned int ths; /* Motion no-motion thseshold mg */
- unsigned int dur; /* Motion no-motion duration ms */
- unsigned char reg_ths;
- unsigned char reg_dur;
- unsigned char ctrl_reg1;
- unsigned char irq_type;
- unsigned char mot_int1_cfg;
-};
-
-struct lis331dlh_private_data {
- struct lis331dlh_config suspend;
- struct lis331dlh_config resume;
-};
-
-/* -------------------------------------------------------------------------- */
-static int lis331dlh_set_ths(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis331dlh_config *config,
- int apply, long ths)
-{
- int result = INV_SUCCESS;
- if ((unsigned int)ths >= config->fsr)
- ths = (long)config->fsr - 1;
-
- if (ths < 0)
- ths = 0;
-
- config->ths = ths;
- config->reg_ths = (unsigned char)(long)((ths * 128L) / (config->fsr));
- MPL_LOGV("THS: %d, 0x%02x\n", config->ths, (int)config->reg_ths);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_INT1_THS,
- config->reg_ths);
- return result;
-}
-
-static int lis331dlh_set_dur(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis331dlh_config *config,
- int apply, long dur)
-{
- int result = INV_SUCCESS;
- long reg_dur = (dur * config->odr) / 1000000L;
- config->dur = dur;
-
- if (reg_dur > LIS331DLH_MAX_DUR)
- reg_dur = LIS331DLH_MAX_DUR;
-
- config->reg_dur = (unsigned char)reg_dur;
- MPL_LOGV("DUR: %d, 0x%02x\n", config->dur, (int)config->reg_dur);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_INT1_DURATION,
- (unsigned char)reg_dur);
- return result;
-}
-
-/**
- * Sets the IRQ to fire when one of the IRQ events occur. Threshold and
- * duration will not be used uless the type is MOT or NMOT.
- *
- * @param config configuration to apply to, suspend or resume
- * @param irq_type The type of IRQ. Valid values are
- * - MPU_SLAVE_IRQ_TYPE_NONE
- * - MPU_SLAVE_IRQ_TYPE_MOTION
- * - MPU_SLAVE_IRQ_TYPE_DATA_READY
- */
-static int lis331dlh_set_irq(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis331dlh_config *config,
- int apply, long irq_type)
-{
- int result = INV_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
-
- config->irq_type = (unsigned char)irq_type;
- if (irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x02;
- reg2 = 0x00;
- } else if (irq_type == MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x00;
- reg2 = config->mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
-
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_CTRL_REG3, reg1);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_INT1_CFG, reg2);
- }
-
- return result;
-}
-
-/**
- * Set the Output data rate for the particular configuration
- *
- * @param config Config to modify with new ODR
- * @param odr Output data rate in units of 1/1000Hz
- */
-static int lis331dlh_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis331dlh_config *config,
- int apply, long odr)
-{
- unsigned char bits;
- int result = INV_SUCCESS;
-
- /* normal power modes */
- if (odr > 400000) {
- config->odr = 1000000;
- bits = LIS331DLH_PWR_MODE_NORMAL | 0x18;
- } else if (odr > 100000) {
- config->odr = 400000;
- bits = LIS331DLH_PWR_MODE_NORMAL | 0x10;
- } else if (odr > 50000) {
- config->odr = 100000;
- bits = LIS331DLH_PWR_MODE_NORMAL | 0x08;
- } else if (odr > 10000) {
- config->odr = 50000;
- bits = LIS331DLH_PWR_MODE_NORMAL | 0x00;
- /* low power modes */
- } else if (odr > 5000) {
- config->odr = 10000;
- bits = 0xC0;
- } else if (odr > 2000) {
- config->odr = 5000;
- bits = 0xA0;
- } else if (odr > 1000) {
- config->odr = 2000;
- bits = 0x80;
- } else if (odr > 500) {
- config->odr = 1000;
- bits = 0x60;
- } else if (odr > 0) {
- config->odr = 500;
- bits = 0x40;
- } else {
- config->odr = 0;
- bits = 0;
- }
-
- config->ctrl_reg1 = bits | (config->ctrl_reg1 & 0x7);
- lis331dlh_set_dur(mlsl_handle, pdata, config, apply, config->dur);
- MPL_LOGV("ODR: %d, 0x%02x\n", config->odr, (int)config->ctrl_reg1);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_CTRL_REG1,
- config->ctrl_reg1);
- return result;
-}
-
-/**
- * Set the full scale range of the accels
- *
- * @param config pointer to configuration
- * @param fsr requested full scale range
- */
-static int lis331dlh_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis331dlh_config *config,
- int apply, long fsr)
-{
- unsigned char reg1 = 0x40;
- int result = INV_SUCCESS;
-
- if (fsr <= 2048) {
- config->fsr = 2048;
- } else if (fsr <= 4096) {
- reg1 |= 0x30;
- config->fsr = 4096;
- } else {
- reg1 |= 0x10;
- config->fsr = 8192;
- }
-
- lis331dlh_set_ths(mlsl_handle, pdata, config, apply, config->ths);
- MPL_LOGV("FSR: %d\n", config->fsr);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_CTRL_REG4, reg1);
-
- return result;
-}
-
-static int lis331dlh_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
- struct lis331dlh_private_data *private_data =
- (struct lis331dlh_private_data *)(pdata->private_data);
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_CTRL_REG1,
- private_data->suspend.ctrl_reg1);
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_CTRL_REG2, 0x0f);
- reg1 = 0x40;
- if (private_data->suspend.fsr == 8192)
- reg1 |= 0x30;
- else if (private_data->suspend.fsr == 4096)
- reg1 |= 0x10;
- /* else bits [4..5] are already zero */
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_CTRL_REG4, reg1);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_INT1_THS,
- private_data->suspend.reg_ths);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_INT1_DURATION,
- private_data->suspend.reg_dur);
-
- if (private_data->suspend.irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x02;
- reg2 = 0x00;
- } else if (private_data->suspend.irq_type ==
- MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x00;
- reg2 = private_data->suspend.mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_CTRL_REG3, reg1);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_INT1_CFG, reg2);
- result = inv_serial_read(mlsl_handle, pdata->address,
- LIS331DLH_HP_FILTER_RESET, 1, &reg1);
- return result;
-}
-
-static int lis331dlh_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
- struct lis331dlh_private_data *private_data =
- (struct lis331dlh_private_data *)(pdata->private_data);
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_CTRL_REG1,
- private_data->resume.ctrl_reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(6);
-
- /* Full Scale */
- reg1 = 0x40;
- if (private_data->resume.fsr == 8192)
- reg1 |= 0x30;
- else if (private_data->resume.fsr == 4096)
- reg1 |= 0x10;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_CTRL_REG4, reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Configure high pass filter */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_CTRL_REG2, 0x0F);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- if (private_data->resume.irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x02;
- reg2 = 0x00;
- } else if (private_data->resume.irq_type == MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x00;
- reg2 = private_data->resume.mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_CTRL_REG3, reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_INT1_THS,
- private_data->resume.reg_ths);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_INT1_DURATION,
- private_data->resume.reg_dur);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS331DLH_INT1_CFG, reg2);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_read(mlsl_handle, pdata->address,
- LIS331DLH_HP_FILTER_RESET, 1, &reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return result;
-}
-
-static int lis331dlh_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result = INV_SUCCESS;
- result = inv_serial_read(mlsl_handle, pdata->address,
- LIS331DLH_STATUS_REG, 1, data);
- if (data[0] & 0x0F) {
- result = inv_serial_read(mlsl_handle, pdata->address,
- slave->read_reg, slave->read_len,
- data);
- return result;
- } else
- return INV_ERROR_ACCEL_DATA_NOT_READY;
-}
-
-static int lis331dlh_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- struct lis331dlh_private_data *private_data;
- long range;
- private_data = (struct lis331dlh_private_data *)
- kzalloc(sizeof(struct lis331dlh_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- private_data->resume.ctrl_reg1 = 0x37;
- private_data->suspend.ctrl_reg1 = 0x47;
- private_data->resume.mot_int1_cfg = 0x95;
- private_data->suspend.mot_int1_cfg = 0x2a;
-
- lis331dlh_set_odr(mlsl_handle, pdata, &private_data->suspend, false, 0);
- lis331dlh_set_odr(mlsl_handle, pdata, &private_data->resume,
- false, 200000);
-
- range = range_fixedpoint_to_long_mg(slave->range);
- lis331dlh_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- false, range);
- lis331dlh_set_fsr(mlsl_handle, pdata, &private_data->resume,
- false, range);
-
- lis331dlh_set_ths(mlsl_handle, pdata, &private_data->suspend,
- false, 80);
- lis331dlh_set_ths(mlsl_handle, pdata, &private_data->resume, false, 40);
-
-
- lis331dlh_set_dur(mlsl_handle, pdata, &private_data->suspend,
- false, 1000);
- lis331dlh_set_dur(mlsl_handle, pdata, &private_data->resume,
- false, 2540);
-
- lis331dlh_set_irq(mlsl_handle, pdata, &private_data->suspend,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- lis331dlh_set_irq(mlsl_handle, pdata, &private_data->resume,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- return INV_SUCCESS;
-}
-
-static int lis331dlh_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-static int lis331dlh_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct lis331dlh_private_data *private_data = pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return lis331dlh_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return lis331dlh_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return lis331dlh_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return lis331dlh_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_THS:
- return lis331dlh_set_ths(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_THS:
- return lis331dlh_set_ths(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_DUR:
- return lis331dlh_set_dur(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- return lis331dlh_set_dur(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- return lis331dlh_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- return lis331dlh_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- default:
- LOG_RESULT_LOCATION(INV_ERROR_FEATURE_NOT_IMPLEMENTED);
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static int lis331dlh_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct lis331dlh_private_data *private_data = pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_MOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.ths;
- break;
- case MPU_SLAVE_CONFIG_NMOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.ths;
- break;
- case MPU_SLAVE_CONFIG_MOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.dur;
- break;
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.dur;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.irq_type;
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.irq_type;
- break;
- default:
- LOG_RESULT_LOCATION(INV_ERROR_FEATURE_NOT_IMPLEMENTED);
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static struct ext_slave_descr lis331dlh_descr = {
- .init = lis331dlh_init,
- .exit = lis331dlh_exit,
- .suspend = lis331dlh_suspend,
- .resume = lis331dlh_resume,
- .read = lis331dlh_read,
- .config = lis331dlh_config,
- .get_config = lis331dlh_get_config,
- .name = "lis331dlh",
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ACCEL_ID_LIS331,
- .read_reg = (0x28 | 0x80), /* 0x80 for burst reads */
- .read_len = 6,
- .endian = EXT_SLAVE_BIG_ENDIAN,
- .range = {2, 480},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *lis331_get_slave_descr(void)
-{
- return &lis331dlh_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct lis331_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int lis331_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct lis331_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- lis331_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int lis331_mod_remove(struct i2c_client *client)
-{
- struct lis331_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- lis331_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id lis331_mod_id[] = {
- { "lis331", ACCEL_ID_LIS331 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, lis331_mod_id);
-
-static struct i2c_driver lis331_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = lis331_mod_probe,
- .remove = lis331_mod_remove,
- .id_table = lis331_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "lis331_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init lis331_mod_init(void)
-{
- int res = i2c_add_driver(&lis331_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "lis331_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit lis331_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&lis331_mod_driver);
-}
-
-module_init(lis331_mod_init);
-module_exit(lis331_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate LIS331 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("lis331_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/lis3dh.c b/drivers/misc/inv_mpu/accel/lis3dh.c
deleted file mode 100644
index 27206e4..0000000
--- a/drivers/misc/inv_mpu/accel/lis3dh.c
+++ /dev/null
@@ -1,728 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup ACCELDL
- * @brief Provides the interface to setup and handle an accelerometer.
- *
- * @{
- * @file lis3dh.c
- * @brief Accelerometer setup and handling methods for ST LIS3DH.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#undef MPL_LOG_NDEBUG
-#define MPL_LOG_NDEBUG 0
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* full scale setting - register & mask */
-#define LIS3DH_CTRL_REG1 (0x20)
-#define LIS3DH_CTRL_REG2 (0x21)
-#define LIS3DH_CTRL_REG3 (0x22)
-#define LIS3DH_CTRL_REG4 (0x23)
-#define LIS3DH_CTRL_REG5 (0x24)
-#define LIS3DH_CTRL_REG6 (0x25)
-#define LIS3DH_REFERENCE (0x26)
-#define LIS3DH_STATUS_REG (0x27)
-#define LIS3DH_OUT_X_L (0x28)
-#define LIS3DH_OUT_X_H (0x29)
-#define LIS3DH_OUT_Y_L (0x2a)
-#define LIS3DH_OUT_Y_H (0x2b)
-#define LIS3DH_OUT_Z_L (0x2c)
-#define LIS3DH_OUT_Z_H (0x2d)
-
-#define LIS3DH_INT1_CFG (0x30)
-#define LIS3DH_INT1_SRC (0x31)
-#define LIS3DH_INT1_THS (0x32)
-#define LIS3DH_INT1_DURATION (0x33)
-
-#define LIS3DH_MAX_DUR (0x7F)
-
-/* -------------------------------------------------------------------------- */
-
-struct lis3dh_config {
- unsigned long odr;
- unsigned int fsr; /* full scale range mg */
- unsigned int ths; /* Motion no-motion thseshold mg */
- unsigned int dur; /* Motion no-motion duration ms */
- unsigned char reg_ths;
- unsigned char reg_dur;
- unsigned char ctrl_reg1;
- unsigned char irq_type;
- unsigned char mot_int1_cfg;
-};
-
-struct lis3dh_private_data {
- struct lis3dh_config suspend;
- struct lis3dh_config resume;
-};
-
-/* -------------------------------------------------------------------------- */
-
-static int lis3dh_set_ths(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis3dh_config *config, int apply, long ths)
-{
- int result = INV_SUCCESS;
- if ((unsigned int)ths > 1000 * config->fsr)
- ths = (long)1000 * config->fsr;
-
- if (ths < 0)
- ths = 0;
-
- config->ths = ths;
- config->reg_ths = (unsigned char)(long)((ths * 128L) / (config->fsr));
- MPL_LOGV("THS: %d, 0x%02x\n", config->ths, (int)config->reg_ths);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_INT1_THS,
- config->reg_ths);
- return result;
-}
-
-static int lis3dh_set_dur(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis3dh_config *config, int apply, long dur)
-{
- int result = INV_SUCCESS;
- long reg_dur = (dur * config->odr) / 1000000L;
- config->dur = dur;
-
- if (reg_dur > LIS3DH_MAX_DUR)
- reg_dur = LIS3DH_MAX_DUR;
-
- config->reg_dur = (unsigned char)reg_dur;
- MPL_LOGV("DUR: %d, 0x%02x\n", config->dur, (int)config->reg_dur);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_INT1_DURATION,
- (unsigned char)reg_dur);
- return result;
-}
-
-/**
- * Sets the IRQ to fire when one of the IRQ events occur. Threshold and
- * duration will not be used uless the type is MOT or NMOT.
- *
- * @param config configuration to apply to, suspend or resume
- * @param irq_type The type of IRQ. Valid values are
- * - MPU_SLAVE_IRQ_TYPE_NONE
- * - MPU_SLAVE_IRQ_TYPE_MOTION
- * - MPU_SLAVE_IRQ_TYPE_DATA_READY
- */
-static int lis3dh_set_irq(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis3dh_config *config,
- int apply, long irq_type)
-{
- int result = INV_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
-
- config->irq_type = (unsigned char)irq_type;
- if (irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x10;
- reg2 = 0x00;
- } else if (irq_type == MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x40;
- reg2 = config->mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
-
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG3, reg1);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_INT1_CFG, reg2);
- }
-
- return result;
-}
-
-/**
- * Set the Output data rate for the particular configuration
- *
- * @param config Config to modify with new ODR
- * @param odr Output data rate in units of 1/1000Hz
- */
-static int lis3dh_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis3dh_config *config, int apply, long odr)
-{
- unsigned char bits;
- int result = INV_SUCCESS;
-
- if (odr > 400000L) {
- config->odr = 1250000L;
- bits = 0x90;
- } else if (odr > 200000L) {
- config->odr = 400000L;
- bits = 0x70;
- } else if (odr > 100000L) {
- config->odr = 200000L;
- bits = 0x60;
- } else if (odr > 50000) {
- config->odr = 100000L;
- bits = 0x50;
- } else if (odr > 25000) {
- config->odr = 50000;
- bits = 0x40;
- } else if (odr > 10000) {
- config->odr = 25000;
- bits = 0x30;
- } else if (odr > 1000) {
- config->odr = 10000;
- bits = 0x20;
- } else if (odr > 500) {
- config->odr = 1000;
- bits = 0x10;
- } else {
- config->odr = 0;
- bits = 0;
- }
-
- config->ctrl_reg1 = bits | (config->ctrl_reg1 & 0xf);
- lis3dh_set_dur(mlsl_handle, pdata, config, apply, config->dur);
- MPL_LOGV("ODR: %ld, 0x%02x\n", config->odr, (int)config->ctrl_reg1);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG1,
- config->ctrl_reg1);
- return result;
-}
-
-/**
- * Set the full scale range of the accels
- *
- * @param config pointer to configuration
- * @param fsr requested full scale range
- */
-static int lis3dh_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis3dh_config *config, int apply, long fsr)
-{
- int result = INV_SUCCESS;
- unsigned char reg1 = 0x48;
-
- if (fsr <= 2048) {
- config->fsr = 2048;
- } else if (fsr <= 4096) {
- reg1 |= 0x10;
- config->fsr = 4096;
- } else if (fsr <= 8192) {
- reg1 |= 0x20;
- config->fsr = 8192;
- } else {
- reg1 |= 0x30;
- config->fsr = 16348;
- }
-
- lis3dh_set_ths(mlsl_handle, pdata, config, apply, config->ths);
- MPL_LOGV("FSR: %d\n", config->fsr);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG4, reg1);
-
- return result;
-}
-
-static int lis3dh_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
- struct lis3dh_private_data *private_data = pdata->private_data;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG1,
- private_data->suspend.ctrl_reg1);
-
- reg1 = 0x48;
- if (private_data->suspend.fsr == 16384)
- reg1 |= 0x30;
- else if (private_data->suspend.fsr == 8192)
- reg1 |= 0x20;
- else if (private_data->suspend.fsr == 4096)
- reg1 |= 0x10;
- else if (private_data->suspend.fsr == 2048)
- reg1 |= 0x00;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG4, reg1);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_INT1_THS,
- private_data->suspend.reg_ths);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_INT1_DURATION,
- private_data->suspend.reg_dur);
-
- if (private_data->suspend.irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x10;
- reg2 = 0x00;
- } else if (private_data->suspend.irq_type ==
- MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x40;
- reg2 = private_data->suspend.mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG3, reg1);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_INT1_CFG, reg2);
- result = inv_serial_read(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG6, 1, &reg1);
-
- return result;
-}
-
-static int lis3dh_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char reg1;
- unsigned char reg2;
- struct lis3dh_private_data *private_data = pdata->private_data;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG1,
- private_data->resume.ctrl_reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(6);
-
- /* Full Scale */
- reg1 = 0x48;
- if (private_data->suspend.fsr == 16384)
- reg1 |= 0x30;
- else if (private_data->suspend.fsr == 8192)
- reg1 |= 0x20;
- else if (private_data->suspend.fsr == 4096)
- reg1 |= 0x10;
- else if (private_data->suspend.fsr == 2048)
- reg1 |= 0x00;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG4, reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- if (private_data->resume.irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x10;
- reg2 = 0x00;
- } else if (private_data->resume.irq_type == MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x40;
- reg2 = private_data->resume.mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG3, reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_INT1_THS,
- private_data->resume.reg_ths);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_INT1_DURATION,
- private_data->resume.reg_dur);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_INT1_CFG, reg2);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_read(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG6, 1, &reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return result;
-}
-
-static int lis3dh_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result = INV_SUCCESS;
- result = inv_serial_read(mlsl_handle, pdata->address,
- LIS3DH_STATUS_REG, 1, data);
- if (data[0] & 0x0F) {
- result = inv_serial_read(mlsl_handle, pdata->address,
- slave->read_reg, slave->read_len,
- data);
- return result;
- } else
- return INV_ERROR_ACCEL_DATA_NOT_READY;
-}
-
-static int lis3dh_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- long range;
- struct lis3dh_private_data *private_data;
- private_data = (struct lis3dh_private_data *)
- kzalloc(sizeof(struct lis3dh_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- private_data->resume.ctrl_reg1 = 0x67;
- private_data->suspend.ctrl_reg1 = 0x18;
- private_data->resume.mot_int1_cfg = 0x95;
- private_data->suspend.mot_int1_cfg = 0x2a;
-
- lis3dh_set_odr(mlsl_handle, pdata, &private_data->suspend, false, 0);
- lis3dh_set_odr(mlsl_handle, pdata, &private_data->resume,
- false, 200000L);
-
- range = range_fixedpoint_to_long_mg(slave->range);
- lis3dh_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- false, range);
- lis3dh_set_fsr(mlsl_handle, pdata, &private_data->resume,
- false, range);
-
- lis3dh_set_ths(mlsl_handle, pdata, &private_data->suspend,
- false, 80);
- lis3dh_set_ths(mlsl_handle, pdata, &private_data->resume,
- false, 40);
-
- lis3dh_set_dur(mlsl_handle, pdata, &private_data->suspend,
- false, 1000);
- lis3dh_set_dur(mlsl_handle, pdata, &private_data->resume,
- false, 2540);
-
- lis3dh_set_irq(mlsl_handle, pdata, &private_data->suspend,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- lis3dh_set_irq(mlsl_handle, pdata, &private_data->resume,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG1, 0x07);
- msleep(6);
-
- return INV_SUCCESS;
-}
-
-static int lis3dh_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-static int lis3dh_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct lis3dh_private_data *private_data = pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return lis3dh_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return lis3dh_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return lis3dh_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return lis3dh_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_THS:
- return lis3dh_set_ths(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_THS:
- return lis3dh_set_ths(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_DUR:
- return lis3dh_set_dur(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- return lis3dh_set_dur(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- return lis3dh_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- return lis3dh_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
- return INV_SUCCESS;
-}
-
-static int lis3dh_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct lis3dh_private_data *private_data = pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_MOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.ths;
- break;
- case MPU_SLAVE_CONFIG_NMOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.ths;
- break;
- case MPU_SLAVE_CONFIG_MOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.dur;
- break;
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.dur;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.irq_type;
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.irq_type;
- break;
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static struct ext_slave_descr lis3dh_descr = {
- .init = lis3dh_init,
- .exit = lis3dh_exit,
- .suspend = lis3dh_suspend,
- .resume = lis3dh_resume,
- .read = lis3dh_read,
- .config = lis3dh_config,
- .get_config = lis3dh_get_config,
- .name = "lis3dh",
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ACCEL_ID_LIS3DH,
- .read_reg = 0x28 | 0x80, /* 0x80 for burst reads */
- .read_len = 6,
- .endian = EXT_SLAVE_BIG_ENDIAN,
- .range = {2, 480},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *lis3dh_get_slave_descr(void)
-{
- return &lis3dh_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct lis3dh_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int lis3dh_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct lis3dh_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- lis3dh_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int lis3dh_mod_remove(struct i2c_client *client)
-{
- struct lis3dh_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- lis3dh_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id lis3dh_mod_id[] = {
- { "lis3dh", ACCEL_ID_LIS3DH },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, lis3dh_mod_id);
-
-static struct i2c_driver lis3dh_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = lis3dh_mod_probe,
- .remove = lis3dh_mod_remove,
- .id_table = lis3dh_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "lis3dh_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init lis3dh_mod_init(void)
-{
- int res = i2c_add_driver(&lis3dh_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "lis3dh_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit lis3dh_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&lis3dh_mod_driver);
-}
-
-module_init(lis3dh_mod_init);
-module_exit(lis3dh_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate LIS3DH sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("lis3dh_mod");
-
-/*
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/lsm303dlx_a.c b/drivers/misc/inv_mpu/accel/lsm303dlx_a.c
deleted file mode 100644
index 576282a..0000000
--- a/drivers/misc/inv_mpu/accel/lsm303dlx_a.c
+++ /dev/null
@@ -1,881 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup ACCELDL
- * @brief Provides the interface to setup and handle an accelerometer.
- *
- * @{
- * @file lsm303dlx_a.c
- * @brief Accelerometer setup and handling methods for ST LSM303DLH
- * or LSM303DLM accel.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* -------------------------------------------------------------------------- */
-
-/* full scale setting - register & mask */
-#define LSM303DLx_CTRL_REG1 (0x20)
-#define LSM303DLx_CTRL_REG2 (0x21)
-#define LSM303DLx_CTRL_REG3 (0x22)
-#define LSM303DLx_CTRL_REG4 (0x23)
-#define LSM303DLx_CTRL_REG5 (0x24)
-#define LSM303DLx_HP_FILTER_RESET (0x25)
-#define LSM303DLx_REFERENCE (0x26)
-#define LSM303DLx_STATUS_REG (0x27)
-#define LSM303DLx_OUT_X_L (0x28)
-#define LSM303DLx_OUT_X_H (0x29)
-#define LSM303DLx_OUT_Y_L (0x2a)
-#define LSM303DLx_OUT_Y_H (0x2b)
-#define LSM303DLx_OUT_Z_L (0x2b)
-#define LSM303DLx_OUT_Z_H (0x2d)
-
-#define LSM303DLx_INT1_CFG (0x30)
-#define LSM303DLx_INT1_SRC (0x31)
-#define LSM303DLx_INT1_THS (0x32)
-#define LSM303DLx_INT1_DURATION (0x33)
-
-#define LSM303DLx_INT2_CFG (0x34)
-#define LSM303DLx_INT2_SRC (0x35)
-#define LSM303DLx_INT2_THS (0x36)
-#define LSM303DLx_INT2_DURATION (0x37)
-
-#define LSM303DLx_CTRL_MASK (0x30)
-#define LSM303DLx_SLEEP_MASK (0x20)
-#define LSM303DLx_PWR_MODE_NORMAL (0x20)
-
-#define LSM303DLx_MAX_DUR (0x7F)
-
-/* -------------------------------------------------------------------------- */
-
-struct lsm303dlx_a_config {
- unsigned int odr;
- unsigned int fsr; /** < full scale range mg */
- unsigned int ths; /** < Motion no-motion thseshold mg */
- unsigned int dur; /** < Motion no-motion duration ms */
- unsigned char reg_ths;
- unsigned char reg_dur;
- unsigned char ctrl_reg1;
- unsigned char irq_type;
- unsigned char mot_int1_cfg;
-};
-
-struct lsm303dlx_a_private_data {
- struct lsm303dlx_a_config suspend;
- struct lsm303dlx_a_config resume;
-};
-
-/* -------------------------------------------------------------------------- */
-
-static int lsm303dlx_a_set_ths(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lsm303dlx_a_config *config,
- int apply,
- long ths)
-{
- int result = INV_SUCCESS;
- if ((unsigned int) ths >= config->fsr)
- ths = (long) config->fsr - 1;
-
- if (ths < 0)
- ths = 0;
-
- config->ths = ths;
- config->reg_ths = (unsigned char)(long)((ths * 128L) / (config->fsr));
- MPL_LOGV("THS: %d, 0x%02x\n", config->ths, (int)config->reg_ths);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_INT1_THS,
- config->reg_ths);
- return result;
-}
-
-static int lsm303dlx_a_set_dur(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lsm303dlx_a_config *config,
- int apply,
- long dur)
-{
- int result = INV_SUCCESS;
- long reg_dur = (dur * config->odr) / 1000000L;
- config->dur = dur;
-
- if (reg_dur > LSM303DLx_MAX_DUR)
- reg_dur = LSM303DLx_MAX_DUR;
-
- config->reg_dur = (unsigned char) reg_dur;
- MPL_LOGV("DUR: %d, 0x%02x\n", config->dur, (int)config->reg_dur);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_INT1_DURATION,
- (unsigned char)reg_dur);
- return result;
-}
-
-/**
- * Sets the IRQ to fire when one of the IRQ events occur. Threshold and
- * duration will not be used uless the type is MOT or NMOT.
- *
- * @param config configuration to apply to, suspend or resume
- * @param irq_type The type of IRQ. Valid values are
- * - MPU_SLAVE_IRQ_TYPE_NONE
- * - MPU_SLAVE_IRQ_TYPE_MOTION
- * - MPU_SLAVE_IRQ_TYPE_DATA_READY
- */
-static int lsm303dlx_a_set_irq(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lsm303dlx_a_config *config,
- int apply,
- long irq_type)
-{
- int result = INV_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
-
- config->irq_type = (unsigned char)irq_type;
- if (irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x02;
- reg2 = 0x00;
- } else if (irq_type == MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x00;
- reg2 = config->mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
-
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_CTRL_REG3, reg1);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_INT1_CFG, reg2);
- }
-
- return result;
-}
-
-/**
- * @brief Set the output data rate for the particular configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * Config to modify with new ODR.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param odr
- * Output data rate in units of 1/1000Hz (mHz).
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int lsm303dlx_a_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lsm303dlx_a_config *config,
- int apply,
- long odr)
-{
- unsigned char bits;
- int result = INV_SUCCESS;
-
- /* normal power modes */
- if (odr > 400000) {
- config->odr = 1000000;
- bits = LSM303DLx_PWR_MODE_NORMAL | 0x18;
- } else if (odr > 100000) {
- config->odr = 400000;
- bits = LSM303DLx_PWR_MODE_NORMAL | 0x10;
- } else if (odr > 50000) {
- config->odr = 100000;
- bits = LSM303DLx_PWR_MODE_NORMAL | 0x08;
- } else if (odr > 10000) {
- config->odr = 50000;
- bits = LSM303DLx_PWR_MODE_NORMAL | 0x00;
- /* low power modes */
- } else if (odr > 5000) {
- config->odr = 10000;
- bits = 0xC0;
- } else if (odr > 2000) {
- config->odr = 5000;
- bits = 0xA0;
- } else if (odr > 1000) {
- config->odr = 2000;
- bits = 0x80;
- } else if (odr > 500) {
- config->odr = 1000;
- bits = 0x60;
- } else if (odr > 0) {
- config->odr = 500;
- bits = 0x40;
- } else {
- config->odr = 0;
- bits = 0;
- }
-
- config->ctrl_reg1 = bits | (config->ctrl_reg1 & 0x7);
- lsm303dlx_a_set_dur(mlsl_handle, pdata, config, apply, config->dur);
- MPL_LOGV("ODR: %d, 0x%02x\n", config->odr, (int)config->ctrl_reg1);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_CTRL_REG1,
- config->ctrl_reg1);
- return result;
-}
-
-/**
- * @brief Set the full scale range of the accels
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * pointer to configuration.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param fsr
- * requested full scale range.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int lsm303dlx_a_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lsm303dlx_a_config *config,
- int apply,
- long fsr)
-{
- unsigned char reg1 = 0x40;
- int result = INV_SUCCESS;
-
- if (fsr <= 2048) {
- config->fsr = 2048;
- } else if (fsr <= 4096) {
- reg1 |= 0x30;
- config->fsr = 4096;
- } else {
- reg1 |= 0x10;
- config->fsr = 8192;
- }
-
- lsm303dlx_a_set_ths(mlsl_handle, pdata,
- config, apply, config->ths);
- MPL_LOGV("FSR: %d\n", config->fsr);
- if (apply)
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_CTRL_REG4, reg1);
-
- return result;
-}
-
-/**
- * @brief suspends the device to put it in its lowest power mode.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int lsm303dlx_a_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
- struct lsm303dlx_a_private_data *private_data =
- (struct lsm303dlx_a_private_data *)(pdata->private_data);
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_CTRL_REG1,
- private_data->suspend.ctrl_reg1);
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_CTRL_REG2, 0x0f);
- reg1 = 0x40;
- if (private_data->suspend.fsr == 8192)
- reg1 |= 0x30;
- else if (private_data->suspend.fsr == 4096)
- reg1 |= 0x10;
- /* else bits [4..5] are already zero */
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_CTRL_REG4, reg1);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_INT1_THS,
- private_data->suspend.reg_ths);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_INT1_DURATION,
- private_data->suspend.reg_dur);
-
- if (private_data->suspend.irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x02;
- reg2 = 0x00;
- } else if (private_data->suspend.irq_type ==
- MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x00;
- reg2 = private_data->suspend.mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_CTRL_REG3, reg1);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_INT1_CFG, reg2);
- result = inv_serial_read(mlsl_handle, pdata->address,
- LSM303DLx_HP_FILTER_RESET, 1, &reg1);
- return result;
-}
-
-/**
- * @brief resume the device in the proper power state given the configuration
- * chosen.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int lsm303dlx_a_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
- struct lsm303dlx_a_private_data *private_data =
- (struct lsm303dlx_a_private_data *)(pdata->private_data);
-
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_CTRL_REG1,
- private_data->resume.ctrl_reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(6);
-
- /* Full Scale */
- reg1 = 0x40;
- if (private_data->resume.fsr == 8192)
- reg1 |= 0x30;
- else if (private_data->resume.fsr == 4096)
- reg1 |= 0x10;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_CTRL_REG4, reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Configure high pass filter */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_CTRL_REG2, 0x0F);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- if (private_data->resume.irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x02;
- reg2 = 0x00;
- } else if (private_data->resume.irq_type ==
- MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x00;
- reg2 = private_data->resume.mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_CTRL_REG3, reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_INT1_THS,
- private_data->resume.reg_ths);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_INT1_DURATION,
- private_data->resume.reg_dur);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- LSM303DLx_INT1_CFG, reg2);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_read(mlsl_handle, pdata->address,
- LSM303DLx_HP_FILTER_RESET, 1, &reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return result;
-}
-
-/**
- * @brief read the sensor data from the device.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a buffer to store the data read.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int lsm303dlx_a_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result = INV_SUCCESS;
- result = inv_serial_read(mlsl_handle, pdata->address,
- LSM303DLx_STATUS_REG, 1, data);
- if (data[0] & 0x0F) {
- result = inv_serial_read(mlsl_handle, pdata->address,
- slave->read_reg, slave->read_len, data);
- return result;
- } else
- return INV_ERROR_ACCEL_DATA_NOT_READY;
-}
-
-/**
- * @brief one-time device driver initialization function.
- * If the driver is built as a kernel module, this function will be
- * called when the module is loaded in the kernel.
- * If the driver is built-in in the kernel, this function will be
- * called at boot time.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int lsm303dlx_a_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- long range;
- struct lsm303dlx_a_private_data *private_data;
- private_data = (struct lsm303dlx_a_private_data *)
- kzalloc(sizeof(struct lsm303dlx_a_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- private_data->resume.ctrl_reg1 = 0x37;
- private_data->suspend.ctrl_reg1 = 0x47;
- private_data->resume.mot_int1_cfg = 0x95;
- private_data->suspend.mot_int1_cfg = 0x2a;
-
- lsm303dlx_a_set_odr(mlsl_handle, pdata, &private_data->suspend,
- false, 0);
- lsm303dlx_a_set_odr(mlsl_handle, pdata, &private_data->resume,
- false, 200000);
-
- range = range_fixedpoint_to_long_mg(slave->range);
- lsm303dlx_a_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- false, range);
- lsm303dlx_a_set_fsr(mlsl_handle, pdata, &private_data->resume,
- false, range);
-
- lsm303dlx_a_set_ths(mlsl_handle, pdata, &private_data->suspend,
- false, 80);
- lsm303dlx_a_set_ths(mlsl_handle, pdata, &private_data->resume,
- false, 40);
-
- lsm303dlx_a_set_dur(mlsl_handle, pdata, &private_data->suspend,
- false, 1000);
- lsm303dlx_a_set_dur(mlsl_handle, pdata, &private_data->resume,
- false, 2540);
-
- lsm303dlx_a_set_irq(mlsl_handle, pdata, &private_data->suspend,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- lsm303dlx_a_set_irq(mlsl_handle, pdata, &private_data->resume,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- return INV_SUCCESS;
-}
-
-/**
- * @brief one-time device driver exit function.
- * If the driver is built as a kernel module, this function will be
- * called when the module is removed from the kernel.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int lsm303dlx_a_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-/**
- * @brief device configuration facility.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a pointer to the configuration data structure.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int lsm303dlx_a_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct lsm303dlx_a_private_data *private_data = pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return lsm303dlx_a_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return lsm303dlx_a_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return lsm303dlx_a_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return lsm303dlx_a_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_THS:
- return lsm303dlx_a_set_ths(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_THS:
- return lsm303dlx_a_set_ths(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_DUR:
- return lsm303dlx_a_set_dur(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- return lsm303dlx_a_set_dur(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- return lsm303dlx_a_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- return lsm303dlx_a_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- default:
- LOG_RESULT_LOCATION(INV_ERROR_FEATURE_NOT_IMPLEMENTED);
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-/**
- * @brief facility to retrieve the device configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a pointer to store the returned configuration data structure.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int lsm303dlx_a_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct lsm303dlx_a_private_data *private_data = pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_MOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.ths;
- break;
- case MPU_SLAVE_CONFIG_NMOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.ths;
- break;
- case MPU_SLAVE_CONFIG_MOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.dur;
- break;
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.dur;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.irq_type;
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.irq_type;
- break;
- default:
- LOG_RESULT_LOCATION(INV_ERROR_FEATURE_NOT_IMPLEMENTED);
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static struct ext_slave_descr lsm303dlx_a_descr = {
- .init = lsm303dlx_a_init,
- .exit = lsm303dlx_a_exit,
- .suspend = lsm303dlx_a_suspend,
- .resume = lsm303dlx_a_resume,
- .read = lsm303dlx_a_read,
- .config = lsm303dlx_a_config,
- .get_config = lsm303dlx_a_get_config,
- .name = "lsm303dlx_a",
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ACCEL_ID_LSM303DLX,
- .read_reg = (0x28 | 0x80), /* 0x80 for burst reads */
- .read_len = 6,
- .endian = EXT_SLAVE_BIG_ENDIAN,
- .range = {2, 480},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *lsm303dlx_a_get_slave_descr(void)
-{
- return &lsm303dlx_a_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct lsm303dlx_a_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int lsm303dlx_a_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct lsm303dlx_a_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- lsm303dlx_a_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int lsm303dlx_a_mod_remove(struct i2c_client *client)
-{
- struct lsm303dlx_a_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- lsm303dlx_a_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id lsm303dlx_a_mod_id[] = {
- { "lsm303dlx", ACCEL_ID_LSM303DLX },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, lsm303dlx_a_mod_id);
-
-static struct i2c_driver lsm303dlx_a_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = lsm303dlx_a_mod_probe,
- .remove = lsm303dlx_a_mod_remove,
- .id_table = lsm303dlx_a_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "lsm303dlx_a_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init lsm303dlx_a_mod_init(void)
-{
- int res = i2c_add_driver(&lsm303dlx_a_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "lsm303dlx_a_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit lsm303dlx_a_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&lsm303dlx_a_mod_driver);
-}
-
-module_init(lsm303dlx_a_mod_init);
-module_exit(lsm303dlx_a_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate LSM303DLX_A sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("lsm303dlx_a_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/mma8450.c b/drivers/misc/inv_mpu/accel/mma8450.c
deleted file mode 100644
index f698ee9..0000000
--- a/drivers/misc/inv_mpu/accel/mma8450.c
+++ /dev/null
@@ -1,804 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup ACCELDL
- * @brief Provides the interface to setup and handle an accelerometer.
- *
- * @{
- * @file mma8450.c
- * @brief Accelerometer setup and handling methods for Freescale MMA8450.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* full scale setting - register & mask */
-#define ACCEL_MMA8450_XYZ_DATA_CFG (0x16)
-
-#define ACCEL_MMA8450_CTRL_REG1 (0x38)
-#define ACCEL_MMA8450_CTRL_REG2 (0x39)
-#define ACCEL_MMA8450_CTRL_REG4 (0x3B)
-#define ACCEL_MMA8450_CTRL_REG5 (0x3C)
-
-#define ACCEL_MMA8450_CTRL_REG (0x38)
-#define ACCEL_MMA8450_CTRL_MASK (0x03)
-
-#define ACCEL_MMA8450_SLEEP_MASK (0x03)
-
-/* -------------------------------------------------------------------------- */
-
-struct mma8450_config {
- unsigned int odr;
- unsigned int fsr; /** < full scale range mg */
- unsigned int ths; /** < Motion no-motion thseshold mg */
- unsigned int dur; /** < Motion no-motion duration ms */
- unsigned char reg_ths;
- unsigned char reg_dur;
- unsigned char ctrl_reg1;
- unsigned char irq_type;
- unsigned char mot_int1_cfg;
-};
-
-struct mma8450_private_data {
- struct mma8450_config suspend;
- struct mma8450_config resume;
-};
-
-
-/* -------------------------------------------------------------------------- */
-
-static int mma8450_set_ths(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mma8450_config *config,
- int apply,
- long ths)
-{
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-static int mma8450_set_dur(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mma8450_config *config,
- int apply,
- long dur)
-{
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-/**
- * @brief Sets the IRQ to fire when one of the IRQ events occur.
- * Threshold and duration will not be used unless the type is MOT or
- * NMOT.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * configuration to apply to, suspend or resume
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param irq_type
- * the type of IRQ. Valid values are
- * - MPU_SLAVE_IRQ_TYPE_NONE
- * - MPU_SLAVE_IRQ_TYPE_MOTION
- * - MPU_SLAVE_IRQ_TYPE_DATA_READY
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma8450_set_irq(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mma8450_config *config,
- int apply,
- long irq_type)
-{
- int result = INV_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
- unsigned char reg3;
-
- config->irq_type = (unsigned char)irq_type;
- if (irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x01;
- reg2 = 0x01;
- reg3 = 0x07;
- } else if (irq_type == MPU_SLAVE_IRQ_TYPE_NONE) {
- reg1 = 0x00;
- reg2 = 0x00;
- reg3 = 0x00;
- } else {
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- }
-
- if (apply) {
- /* XYZ_DATA_CFG: event flag enabled on Z axis */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA8450_XYZ_DATA_CFG, reg3);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA8450_CTRL_REG4, reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA8450_CTRL_REG5, reg2);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- return result;
-}
-
-/**
- * @brief Set the output data rate for the particular configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * Config to modify with new ODR.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param odr
- * Output data rate in units of 1/1000Hz (mHz).
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma8450_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mma8450_config *config,
- int apply,
- long odr)
-{
- unsigned char bits;
- int result = INV_SUCCESS;
-
- if (odr > 200000) {
- config->odr = 400000;
- bits = 0x00;
- } else if (odr > 100000) {
- config->odr = 200000;
- bits = 0x04;
- } else if (odr > 50000) {
- config->odr = 100000;
- bits = 0x08;
- } else if (odr > 25000) {
- config->odr = 50000;
- bits = 0x0C;
- } else if (odr > 12500) {
- config->odr = 25000;
- bits = 0x40; /* Sleep -> Auto wake mode */
- } else if (odr > 1563) {
- config->odr = 12500;
- bits = 0x10;
- } else if (odr > 0) {
- config->odr = 1563;
- bits = 0x14;
- } else {
- config->ctrl_reg1 = 0; /* Set FS1.FS2 to Standby */
- config->odr = 0;
- bits = 0;
- }
-
- config->ctrl_reg1 = bits | (config->ctrl_reg1 & 0x3);
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA8450_CTRL_REG1, 0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA8450_CTRL_REG1, config->ctrl_reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- MPL_LOGV("ODR: %d mHz, 0x%02x\n",
- config->odr, (int)config->ctrl_reg1);
- }
- return result;
-}
-
-/**
- * @brief Set the full scale range of the accels
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * pointer to configuration.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param fsr
- * requested full scale range.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma8450_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mma8450_config *config,
- int apply,
- long fsr)
-{
- unsigned char bits;
- int result = INV_SUCCESS;
-
- if (fsr <= 2000) {
- bits = 0x01;
- config->fsr = 2000;
- } else if (fsr <= 4000) {
- bits = 0x02;
- config->fsr = 4000;
- } else {
- bits = 0x03;
- config->fsr = 8000;
- }
-
- config->ctrl_reg1 = bits | (config->ctrl_reg1 & 0xFC);
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA8450_CTRL_REG1, config->ctrl_reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- MPL_LOGV("FSR: %d mg\n", config->fsr);
- }
- return result;
-}
-
-/**
- * @brief suspends the device to put it in its lowest power mode.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma8450_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- struct mma8450_private_data *private_data = pdata->private_data;
-
- if (private_data->suspend.fsr == 4000)
- slave->range.mantissa = 4;
- else if (private_data->suspend.fsr == 8000)
- slave->range.mantissa = 8;
- else
- slave->range.mantissa = 2;
- slave->range.fraction = 0;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA8450_CTRL_REG1, 0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- if (private_data->suspend.ctrl_reg1) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA8450_CTRL_REG1,
- private_data->suspend.ctrl_reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- result = mma8450_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- true, private_data->suspend.irq_type);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return result;
-}
-
-/**
- * @brief resume the device in the proper power state given the configuration
- * chosen.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma8450_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- struct mma8450_private_data *private_data = pdata->private_data;
-
- /* Full Scale */
- if (private_data->resume.fsr == 4000)
- slave->range.mantissa = 4;
- else if (private_data->resume.fsr == 8000)
- slave->range.mantissa = 8;
- else
- slave->range.mantissa = 2;
- slave->range.fraction = 0;
-
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA8450_CTRL_REG1, 0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- if (private_data->resume.ctrl_reg1) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA8450_CTRL_REG1,
- private_data->resume.ctrl_reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- result = mma8450_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- true, private_data->resume.irq_type);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-/**
- * @brief read the sensor data from the device.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a buffer to store the data read.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma8450_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata, unsigned char *data)
-{
- int result;
- unsigned char local_data[4]; /* Status register + 3 bytes data */
- result = inv_serial_read(mlsl_handle, pdata->address,
- 0x00, sizeof(local_data), local_data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- memcpy(data, &local_data[1], (slave->read_len) - 1);
-
- MPL_LOGV("Data Not Ready: %02x %02x %02x %02x\n",
- local_data[0], local_data[1],
- local_data[2], local_data[3]);
-
- return result;
-}
-
-/**
- * @brief one-time device driver initialization function.
- * If the driver is built as a kernel module, this function will be
- * called when the module is loaded in the kernel.
- * If the driver is built-in in the kernel, this function will be
- * called at boot time.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma8450_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- struct mma8450_private_data *private_data;
- private_data = (struct mma8450_private_data *)
- kzalloc(sizeof(struct mma8450_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- mma8450_set_odr(mlsl_handle, pdata, &private_data->suspend,
- false, 0);
- mma8450_set_odr(mlsl_handle, pdata, &private_data->resume,
- false, 200000);
- mma8450_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- false, 2000);
- mma8450_set_fsr(mlsl_handle, pdata, &private_data->resume,
- false, 2000);
- mma8450_set_irq(mlsl_handle, pdata, &private_data->suspend,
- false,
- MPU_SLAVE_IRQ_TYPE_NONE);
- mma8450_set_irq(mlsl_handle, pdata, &private_data->resume,
- false,
- MPU_SLAVE_IRQ_TYPE_NONE);
- return INV_SUCCESS;
-}
-
-/**
- * @brief one-time device driver exit function.
- * If the driver is built as a kernel module, this function will be
- * called when the module is removed from the kernel.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma8450_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-/**
- * @brief device configuration facility.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a pointer to the configuration data structure.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma8450_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct mma8450_private_data *private_data = pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return mma8450_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return mma8450_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return mma8450_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return mma8450_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_THS:
- return mma8450_set_ths(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_THS:
- return mma8450_set_ths(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_DUR:
- return mma8450_set_dur(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- return mma8450_set_dur(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- return mma8450_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- return mma8450_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- default:
- LOG_RESULT_LOCATION(INV_ERROR_FEATURE_NOT_IMPLEMENTED);
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-/**
- * @brief facility to retrieve the device configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a pointer to store the returned configuration data structure.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma8450_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct mma8450_private_data *private_data = pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_MOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.ths;
- break;
- case MPU_SLAVE_CONFIG_NMOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.ths;
- break;
- case MPU_SLAVE_CONFIG_MOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.dur;
- break;
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.dur;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.irq_type;
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.irq_type;
- break;
- default:
- LOG_RESULT_LOCATION(INV_ERROR_FEATURE_NOT_IMPLEMENTED);
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static struct ext_slave_descr mma8450_descr = {
- .init = mma8450_init,
- .exit = mma8450_exit,
- .suspend = mma8450_suspend,
- .resume = mma8450_resume,
- .read = mma8450_read,
- .config = mma8450_config,
- .get_config = mma8450_get_config,
- .name = "mma8450",
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ACCEL_ID_MMA8450,
- .read_reg = 0x00,
- .read_len = 4,
- .endian = EXT_SLAVE_FS8_BIG_ENDIAN,
- .range = {2, 0},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *mma8450_get_slave_descr(void)
-{
- return &mma8450_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct mma8450_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int mma8450_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct mma8450_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- mma8450_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int mma8450_mod_remove(struct i2c_client *client)
-{
- struct mma8450_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- mma8450_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id mma8450_mod_id[] = {
- { "mma8450", ACCEL_ID_MMA8450 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, mma8450_mod_id);
-
-static struct i2c_driver mma8450_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = mma8450_mod_probe,
- .remove = mma8450_mod_remove,
- .id_table = mma8450_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "mma8450_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init mma8450_mod_init(void)
-{
- int res = i2c_add_driver(&mma8450_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "mma8450_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit mma8450_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&mma8450_mod_driver);
-}
-
-module_init(mma8450_mod_init);
-module_exit(mma8450_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate MMA8450 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("mma8450_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/mma845x.c b/drivers/misc/inv_mpu/accel/mma845x.c
deleted file mode 100644
index 5f62b22..0000000
--- a/drivers/misc/inv_mpu/accel/mma845x.c
+++ /dev/null
@@ -1,713 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup ACCELDL
- * @brief Provides the interface to setup and handle an accelerometer.
- *
- * @{
- * @file mma845x.c
- * @brief Accelerometer setup and handling methods for Freescale MMA845X
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-#define ACCEL_MMA845X_XYZ_DATA_CFG (0x0E)
-#define ACCEL_MMA845X_CTRL_REG1 (0x2A)
-#define ACCEL_MMA845X_CTRL_REG4 (0x2D)
-#define ACCEL_MMA845X_CTRL_REG5 (0x2E)
-
-#define ACCEL_MMA845X_SLEEP_MASK (0x01)
-
-/* full scale setting - register & mask */
-#define ACCEL_MMA845X_CFG_REG (0x0E)
-#define ACCEL_MMA845X_CTRL_MASK (0x03)
-
-/* -------------------------------------------------------------------------- */
-
-struct mma845x_config {
- unsigned int odr;
- unsigned int fsr; /** < full scale range mg */
- unsigned int ths; /** < Motion no-motion thseshold mg */
- unsigned int dur; /** < Motion no-motion duration ms */
- unsigned char reg_ths;
- unsigned char reg_dur;
- unsigned char ctrl_reg1;
- unsigned char irq_type;
- unsigned char mot_int1_cfg;
-};
-
-struct mma845x_private_data {
- struct mma845x_config suspend;
- struct mma845x_config resume;
-};
-
-/* -------------------------------------------------------------------------- */
-
-static int mma845x_set_ths(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mma845x_config *config,
- int apply,
- long ths)
-{
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-static int mma845x_set_dur(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mma845x_config *config,
- int apply,
- long dur)
-{
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-/**
- * @brief Sets the IRQ to fire when one of the IRQ events occur.
- * Threshold and duration will not be used unless the type is MOT or
- * NMOT.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * configuration to apply to, suspend or resume
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param irq_type
- * the type of IRQ. Valid values are
- * - MPU_SLAVE_IRQ_TYPE_NONE
- * - MPU_SLAVE_IRQ_TYPE_MOTION
- * - MPU_SLAVE_IRQ_TYPE_DATA_READY
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma845x_set_irq(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mma845x_config *config,
- int apply,
- long irq_type)
-{
- int result = INV_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
-
- config->irq_type = (unsigned char)irq_type;
- if (irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x01;
- reg2 = 0x01;
- } else if (irq_type == MPU_SLAVE_IRQ_TYPE_NONE) {
- reg1 = 0x00;
- reg2 = 0x00;
- } else {
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- }
-
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA845X_CTRL_REG4, reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA845X_CTRL_REG5, reg2);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- return result;
-}
-
-/**
- * @brief Set the output data rate for the particular configuration.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * Config to modify with new ODR.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param odr
- * Output data rate in units of 1/1000Hz (mHz).
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma845x_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mma845x_config *config,
- int apply,
- long odr)
-{
- unsigned char bits;
- int result = INV_SUCCESS;
-
- if (odr > 400000) {
- config->odr = 800000;
- bits = 0x01;
- } else if (odr > 200000) {
- config->odr = 400000;
- bits = 0x09;
- } else if (odr > 100000) {
- config->odr = 200000;
- bits = 0x11;
- } else if (odr > 50000) {
- config->odr = 100000;
- bits = 0x19;
- } else if (odr > 12500) {
- config->odr = 50000;
- bits = 0x21;
- } else if (odr > 6250) {
- config->odr = 12500;
- bits = 0x29;
- } else if (odr > 1560) {
- config->odr = 6250;
- bits = 0x31;
- } else if (odr > 0) {
- config->odr = 1560;
- bits = 0x39;
- } else {
- config->ctrl_reg1 = 0; /* Set FS1.FS2 to Standby */
- config->odr = 0;
- bits = 0;
- }
-
- config->ctrl_reg1 = bits;
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA845X_CTRL_REG1,
- config->ctrl_reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- MPL_LOGV("ODR: %d mHz, 0x%02x\n", config->odr,
- (int)config->ctrl_reg1);
- }
- return result;
-}
-
-/**
- * @brief Set the full scale range of the accels
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param pdata
- * a pointer to the slave platform data.
- * @param config
- * pointer to configuration.
- * @param apply
- * whether to apply immediately or save the settings to be applied
- * at the next resume.
- * @param fsr
- * requested full scale range.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma845x_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mma845x_config *config,
- int apply,
- long fsr)
-{
- unsigned char bits;
- int result = INV_SUCCESS;
-
- if (fsr <= 2000) {
- bits = 0x00;
- config->fsr = 2000;
- } else if (fsr <= 4000) {
- bits = 0x01;
- config->fsr = 4000;
- } else {
- bits = 0x02;
- config->fsr = 8000;
- }
-
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA845X_XYZ_DATA_CFG,
- bits);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- MPL_LOGV("FSR: %d mg\n", config->fsr);
- }
- return result;
-}
-
-/**
- * @brief suspends the device to put it in its lowest power mode.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma845x_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- struct mma845x_private_data *private_data = pdata->private_data;
-
- /* Full Scale */
- if (private_data->suspend.fsr == 4000)
- slave->range.mantissa = 4;
- else if (private_data->suspend.fsr == 8000)
- slave->range.mantissa = 8;
- else
- slave->range.mantissa = 2;
-
- slave->range.fraction = 0;
-
- result = mma845x_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- true, private_data->suspend.fsr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA845X_CTRL_REG1,
- private_data->suspend.ctrl_reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-/**
- * @brief resume the device in the proper power state given the configuration
- * chosen.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma845x_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- struct mma845x_private_data *private_data = pdata->private_data;
-
- /* Full Scale */
- if (private_data->resume.fsr == 4000)
- slave->range.mantissa = 4;
- else if (private_data->resume.fsr == 8000)
- slave->range.mantissa = 8;
- else
- slave->range.mantissa = 2;
-
- slave->range.fraction = 0;
-
- result = mma845x_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- true, private_data->resume.fsr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- ACCEL_MMA845X_CTRL_REG1,
- private_data->resume.ctrl_reg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-/**
- * @brief read the sensor data from the device.
- *
- * @param mlsl_handle
- * the handle to the serial channel the device is connected to.
- * @param slave
- * a pointer to the slave descriptor data structure.
- * @param pdata
- * a pointer to the slave platform data.
- * @param data
- * a buffer to store the data read.
- *
- * @return INV_SUCCESS if successful or a non-zero error code.
- */
-static int mma845x_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata, unsigned char *data)
-{
- int result;
- unsigned char local_data[7]; /* Status register + 6 bytes data */
- result = inv_serial_read(mlsl_handle, pdata->address,
- slave->read_reg, sizeof(local_data),
- local_data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- memcpy(data, &local_data[1], slave->read_len);
- return result;
-}
-
-static int mma845x_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- long range;
- struct mma845x_private_data *private_data;
- private_data = (struct mma845x_private_data *)
- kzalloc(sizeof(struct mma845x_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- mma845x_set_odr(mlsl_handle, pdata, &private_data->suspend,
- false, 0);
- mma845x_set_odr(mlsl_handle, pdata, &private_data->resume,
- false, 200000);
-
- range = range_fixedpoint_to_long_mg(slave->range);
- mma845x_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- false, range);
- mma845x_set_fsr(mlsl_handle, pdata, &private_data->resume,
- false, range);
-
- mma845x_set_irq(mlsl_handle, pdata, &private_data->suspend,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- mma845x_set_irq(mlsl_handle, pdata, &private_data->resume,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- return INV_SUCCESS;
-}
-
-static int mma845x_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-static int mma845x_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct mma845x_private_data *private_data = pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return mma845x_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return mma845x_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return mma845x_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return mma845x_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_THS:
- return mma845x_set_ths(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_THS:
- return mma845x_set_ths(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_DUR:
- return mma845x_set_dur(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- return mma845x_set_dur(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- return mma845x_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- return mma845x_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- default:
- LOG_RESULT_LOCATION(INV_ERROR_FEATURE_NOT_IMPLEMENTED);
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static int mma845x_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct mma845x_private_data *private_data = pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_MOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.ths;
- break;
- case MPU_SLAVE_CONFIG_NMOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.ths;
- break;
- case MPU_SLAVE_CONFIG_MOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.dur;
- break;
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.dur;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.irq_type;
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.irq_type;
- break;
- default:
- LOG_RESULT_LOCATION(INV_ERROR_FEATURE_NOT_IMPLEMENTED);
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static struct ext_slave_descr mma845x_descr = {
- .init = mma845x_init,
- .exit = mma845x_exit,
- .suspend = mma845x_suspend,
- .resume = mma845x_resume,
- .read = mma845x_read,
- .config = mma845x_config,
- .get_config = mma845x_get_config,
- .name = "mma845x",
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ACCEL_ID_MMA845X,
- .read_reg = 0x00,
- .read_len = 6,
- .endian = EXT_SLAVE_FS16_BIG_ENDIAN,
- .range = {2, 0},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *mma845x_get_slave_descr(void)
-{
- return &mma845x_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct mma845x_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int mma845x_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct mma845x_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- mma845x_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int mma845x_mod_remove(struct i2c_client *client)
-{
- struct mma845x_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- mma845x_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id mma845x_mod_id[] = {
- { "mma845x", ACCEL_ID_MMA845X },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, mma845x_mod_id);
-
-static struct i2c_driver mma845x_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = mma845x_mod_probe,
- .remove = mma845x_mod_remove,
- .id_table = mma845x_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "mma845x_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init mma845x_mod_init(void)
-{
- int res = i2c_add_driver(&mma845x_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "mma845x_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit mma845x_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&mma845x_mod_driver);
-}
-
-module_init(mma845x_mod_init);
-module_exit(mma845x_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate MMA845X sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("mma845x_mod");
-
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/mpu6050.c b/drivers/misc/inv_mpu/accel/mpu6050.c
deleted file mode 100644
index 114164e..0000000
--- a/drivers/misc/inv_mpu/accel/mpu6050.c
+++ /dev/null
@@ -1,732 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup ACCELDL
- * @brief Provides the interface to setup and handle an accelerometer.
- *
- * @{
- * @file mpu6050.c
- * @brief Accelerometer setup and handling methods for Invensense MPU6050
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/delay.h>
-#include <linux/slab.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu_411.h>
-#include "mpu6050b1.h"
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* -------------------------------------------------------------------------- */
-
-struct mpu6050_config {
- unsigned int odr; /**< output data rate 1/1000 Hz */
- unsigned int fsr; /**< full scale range mg */
- unsigned int ths; /**< mot/no-mot thseshold mg */
- unsigned int dur; /**< mot/no-mot duration ms */
- unsigned int irq_type; /**< irq type */
-};
-
-struct mpu6050_private_data {
- struct mpu6050_config suspend;
- struct mpu6050_config resume;
- struct mldl_cfg *mldl_cfg_ref;
-};
-
-static int mpu6050_set_mldl_cfg_ref(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mldl_cfg *mldl_cfg_ref)
-{
- struct mpu6050_private_data *private_data =
- (struct mpu6050_private_data *)pdata->private_data;
- private_data->mldl_cfg_ref = mldl_cfg_ref;
- return 0;
-}
-static int mpu6050_set_lp_mode(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- unsigned char lpa_freq)
-{
- unsigned char b = 0;
- /* Reducing the duration setting for lp mode */
- b = 1;
- inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_ACCEL_MOT_DUR, b);
- /* Setting the cycle bit and LPA wake up freq */
- inv_serial_read(mlsl_handle, pdata->address, MPUREG_PWR_MGMT_1, 1,
- &b);
- b |= BIT_CYCLE | BIT_PD_PTAT;
- inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_1,
- b);
- inv_serial_read(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_2, 1, &b);
- b |= lpa_freq & BITS_LPA_WAKE_CTRL;
- inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_2, b);
-
- return INV_SUCCESS;
-}
-
-static int mpu6050_set_fp_mode(void *mlsl_handle,
- struct ext_slave_platform_data *pdata)
-{
- unsigned char b;
- struct mpu6050_private_data *private_data =
- (struct mpu6050_private_data *)pdata->private_data;
- /* Resetting the cycle bit and LPA wake up freq */
- inv_serial_read(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_1, 1, &b);
- b &= ~BIT_CYCLE & ~BIT_PD_PTAT;
- inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_1, b);
- inv_serial_read(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_2, 1, &b);
- b &= ~BITS_LPA_WAKE_CTRL;
- inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_2, b);
- /* Resetting the duration setting for fp mode */
- b = (unsigned char)private_data->suspend.ths / ACCEL_MOT_DUR_LSB;
- inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_ACCEL_MOT_DUR, b);
-
- return INV_SUCCESS;
-}
-/**
- * Record the odr for use in computing duration values.
- *
- * @param config Config to set, suspend or resume structure
- * @param odr output data rate in 1/1000 hz
- */
-static int mpu6050_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mpu6050_config *config, long apply, long odr)
-{
- int result;
- unsigned char b;
- unsigned char lpa_freq = 1; /* Default value */
- long base;
- int total_divider;
- struct mpu6050_private_data *private_data =
- (struct mpu6050_private_data *)pdata->private_data;
- struct mldl_cfg *mldl_cfg_ref =
- (struct mldl_cfg *)private_data->mldl_cfg_ref;
-
- if (mldl_cfg_ref) {
- base = 1000 *
- inv_mpu_get_sampling_rate_hz(mldl_cfg_ref->mpu_gyro_cfg)
- * (mldl_cfg_ref->mpu_gyro_cfg->divider + 1);
- } else {
- /* have no reference to mldl_cfg => assume base rate is 1000 */
- base = 1000000L;
- }
-
- if (odr != 0) {
- total_divider = (base / odr) - 1;
- /* final odr MAY be different from requested odr due to
- integer truncation */
- config->odr = base / (total_divider + 1);
- } else {
- config->odr = 0;
- return 0;
- }
-
- /* if the DMP and/or gyros are on, don't set the ODR =>
- the DMP/gyro mldl_cfg->divider setting will handle it */
- if (apply
- && (mldl_cfg_ref &&
- !(mldl_cfg_ref->inv_mpu_cfg->requested_sensors &
- INV_DMP_PROCESSOR))) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_SMPLRT_DIV,
- (unsigned char)total_divider);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- MPL_LOGI("ODR : %d mHz\n", config->odr);
- }
- /* Decide whether to put accel in LP mode or pull out of LP mode
- based on the odr. */
- switch (odr) {
- case 1000:
- lpa_freq = BITS_LPA_WAKE_1HZ;
- break;
- case 2000:
- lpa_freq = BITS_LPA_WAKE_2HZ;
- break;
- case 10000:
- lpa_freq = BITS_LPA_WAKE_10HZ;
- break;
- case 40000:
- lpa_freq = BITS_LPA_WAKE_40HZ;
- break;
- default:
- inv_serial_read(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_1, 1, &b);
- b &= BIT_CYCLE;
- if (b == BIT_CYCLE) {
- MPL_LOGI(" Accel LP - > FP mode.\n ");
- mpu6050_set_fp_mode(mlsl_handle, pdata);
- }
- }
- /* If lpa_freq default value was changed, set into LP mode */
- if (lpa_freq != 1) {
- MPL_LOGI(" Accel FP - > LP mode.\n ");
- mpu6050_set_lp_mode(mlsl_handle, pdata, lpa_freq);
- }
- return 0;
-}
-
-static int mpu6050_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mpu6050_config *config, long apply, long fsr)
-{
- unsigned char fsr_mask;
- int result;
-
- if (fsr <= 2000) {
- config->fsr = 2000;
- fsr_mask = 0x00;
- } else if (fsr <= 4000) {
- config->fsr = 4000;
- fsr_mask = 0x08;
- } else if (fsr <= 8000) {
- config->fsr = 8000;
- fsr_mask = 0x10;
- } else { /* fsr = [8001, oo) */
- config->fsr = 16000;
- fsr_mask = 0x18;
- }
-
- if (apply) {
- unsigned char reg;
- result = inv_serial_read(mlsl_handle, pdata->address,
- MPUREG_ACCEL_CONFIG, 1, &reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_ACCEL_CONFIG,
- reg | fsr_mask);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- MPL_LOGV("FSR: %d\n", config->fsr);
- }
- return 0;
-}
-
-static int mpu6050_set_irq(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct mpu6050_config *config, long apply,
- long irq_type)
-{
- int result;
- unsigned char reg_int_cfg;
-
- return 0;
-
- switch (irq_type) {
- case MPU_SLAVE_IRQ_TYPE_DATA_READY:
- config->irq_type = irq_type;
- reg_int_cfg = BIT_RAW_RDY_EN;
- break;
- /* todo: add MOTION, NO_MOTION, and FREEFALL */
- case MPU_SLAVE_IRQ_TYPE_NONE:
- /* Do nothing, not even set the interrupt because it is
- shared with the gyro */
- config->irq_type = irq_type;
- return 0;
- default:
- return INV_ERROR_INVALID_PARAMETER;
- }
-
- if (apply) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_INT_ENABLE,
- reg_int_cfg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- MPL_LOGV("irq_type: %d\n", config->irq_type);
- }
-
- return 0;
-}
-
-static int mpu6050_set_ths(void *mlsl_handle,
- struct ext_slave_platform_data *slave,
- struct mpu6050_config *config, long apply, long ths)
-{
- if (ths < 0)
- ths = 0;
-
- config->ths = ths;
- MPL_LOGV("THS: %d\n", config->ths);
- return 0;
-}
-
-static int mpu6050_set_dur(void *mlsl_handle,
- struct ext_slave_platform_data *slave,
- struct mpu6050_config *config, long apply, long dur)
-{
- if (dur < 0)
- dur = 0;
-
- config->dur = dur;
- MPL_LOGV("DUR: %d\n", config->dur);
- return 0;
-}
-
-
-static int mpu6050_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- struct mpu6050_private_data *private_data;
-
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- result = mpu6050_set_odr(mlsl_handle, pdata, &private_data->suspend,
- false, 0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = mpu6050_set_odr(mlsl_handle, pdata, &private_data->resume,
- false, 200000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = mpu6050_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- false, 2000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = mpu6050_set_fsr(mlsl_handle, pdata, &private_data->resume,
- false, 2000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = mpu6050_set_irq(mlsl_handle, pdata, &private_data->suspend,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = mpu6050_set_irq(mlsl_handle, pdata, &private_data->resume,
- false, MPU_SLAVE_IRQ_TYPE_NONE);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = mpu6050_set_ths(mlsl_handle, pdata, &private_data->suspend,
- false, 80);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = mpu6050_set_ths(mlsl_handle, pdata, &private_data->resume,
- false, 40);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = mpu6050_set_dur(mlsl_handle, pdata, &private_data->suspend,
- false, 1000);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = mpu6050_set_dur(mlsl_handle, pdata, &private_data->resume,
- false, 2540);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return 0;
-}
-
-static int mpu6050_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- pdata->private_data = NULL;
- return 0;
-}
-
-static int mpu6050_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- unsigned char reg;
- int result;
- struct mpu6050_private_data *private_data =
- (struct mpu6050_private_data *)pdata->private_data;
-
- result = mpu6050_set_odr(mlsl_handle, pdata, &private_data->suspend,
- true, private_data->suspend.odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = mpu6050_set_irq(mlsl_handle, pdata, &private_data->suspend,
- true, private_data->suspend.irq_type);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_serial_read(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_2, 1, &reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- reg |= (BIT_STBY_XA | BIT_STBY_YA | BIT_STBY_ZA);
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_2, reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return 0;
-}
-
-static int mpu6050_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char reg;
- struct mpu6050_private_data *private_data =
- (struct mpu6050_private_data *)pdata->private_data;
-
- result = inv_serial_read(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_1, 1, &reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- if (reg & BIT_SLEEP) {
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_1, reg & ~BIT_SLEEP);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- msleep(20);
-
- result = inv_serial_read(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_2, 1, &reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- reg &= ~(BIT_STBY_XA | BIT_STBY_YA | BIT_STBY_ZA);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_2, reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* settings */
-
- result = mpu6050_set_fsr(mlsl_handle, pdata, &private_data->resume,
- true, private_data->resume.fsr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = mpu6050_set_odr(mlsl_handle, pdata, &private_data->resume,
- true, private_data->resume.odr);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = mpu6050_set_irq(mlsl_handle, pdata, &private_data->resume,
- true, private_data->resume.irq_type);
-
- /* motion, no_motion */
- /* TODO : port these in their respective _set_thrs and _set_dur
- functions and use the APPLY paremeter to apply just like
- _set_odr, _set_irq, and _set_fsr. */
- reg = (unsigned char)private_data->suspend.ths / ACCEL_MOT_THR_LSB;
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_ACCEL_MOT_THR, reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- reg = (unsigned char)
- ACCEL_ZRMOT_THR_LSB_CONVERSION(private_data->resume.ths);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_ACCEL_ZRMOT_THR, reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- reg = (unsigned char)private_data->suspend.ths / ACCEL_MOT_DUR_LSB;
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_ACCEL_MOT_DUR, reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- reg = (unsigned char)private_data->resume.ths / ACCEL_ZRMOT_DUR_LSB;
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- MPUREG_ACCEL_ZRMOT_DUR, reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return 0;
-}
-
-static int mpu6050_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- int x, y, z;
-
- result = inv_serial_read(mlsl_handle, pdata->address,
- slave->read_reg, slave->read_len, data);
-#if 1
- if (slave->read_len == 6) {
- /*
- pr_info("\n mantis_read cal x: %d y: %d z: %d\",
- cal_data.x, cal_data.y, cal_data.z);
-
- x = (s16)((data[0] <<8) |data[1]);
- y = (s16)((data[2] <<8) |data[3]);
- z = (s16)((data[4] <<8) |data[5]);
-
- pr_info("mantis_read RAW x: %d y: %d z: %d", x, y, z);
- */
- x = (s16)((data[0] << 8) | data[1]) - cal_data.x;
- y = (s16)((data[2] << 8) | data[3]) - cal_data.y;
- z = (s16)((data[4] << 8) | data[5]) - cal_data.z;
-
- /*
- pr_info("mantis_read CAL x: %d y: %d z: %d", x, y, z);
- */
-
- data[0] = (x & 0xff00) >> 8;
- data[1] = ((x << 4) >> 4) & 0xff;
- data[2] = (y & 0xff00) >> 8;
- data[3] = ((y << 4) >> 4) & 0xff;
- data[4] = (z & 0xff00) >> 8;
- data[5] = ((z << 4) >> 4) & 0xff;
-/*
- x = (s16)((data[0] <<8) |data[1]);
- y = (s16)((data[2] <<8) |data[3]);
- z = (s16)((data[4] <<8) |data[5]);
-
- pr_info("mantis_read CHK x: %d y: %d z: %d", x, y, z);
-*/
- }
-#endif
- return result;
-}
-
-static int mpu6050_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct mpu6050_private_data *private_data =
- (struct mpu6050_private_data *)pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return mpu6050_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return mpu6050_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return mpu6050_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return mpu6050_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_THS:
- return mpu6050_set_ths(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_THS:
- return mpu6050_set_ths(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_DUR:
- return mpu6050_set_dur(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- return mpu6050_set_dur(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- return mpu6050_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- return mpu6050_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_INTERNAL_REFERENCE:
- return mpu6050_set_mldl_cfg_ref(mlsl_handle, pdata,
- (struct mldl_cfg *)data->data);
- break;
-
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return 0;
-}
-
-static int mpu6050_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct mpu6050_private_data *private_data =
- (struct mpu6050_private_data *)pdata->private_data;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_MOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.ths;
- break;
- case MPU_SLAVE_CONFIG_NMOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.ths;
- break;
- case MPU_SLAVE_CONFIG_MOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.dur;
- break;
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.dur;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.irq_type;
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.irq_type;
- break;
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return 0;
-}
-
-static struct ext_slave_descr mpu6050_descr = {
- .init = mpu6050_init,
- .exit = mpu6050_exit,
- .suspend = mpu6050_suspend,
- .resume = mpu6050_resume,
- .read = mpu6050_read,
- .config = mpu6050_config,
- .get_config = mpu6050_get_config,
- .name = "mpu6050",
- .type = EXT_SLAVE_TYPE_ACCEL,
- .id = ACCEL_ID_MPU6050,
- .read_reg = 0x3B,
- .read_len = 6,
- .endian = EXT_SLAVE_BIG_ENDIAN,
- .range = {2, 0},
- .trigger = NULL,
-};
-
-struct ext_slave_descr *mpu6050_get_slave_descr(void)
-{
- return &mpu6050_descr;
-}
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/accel/mpu6050.h b/drivers/misc/inv_mpu/accel/mpu6050.h
deleted file mode 100644
index a779255..0000000
--- a/drivers/misc/inv_mpu/accel/mpu6050.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-
-#ifndef __MPU6050_H__
-#define __MPU6050_H__
-
-#include <linux/mpu_411.h>
-
-struct ext_slave_descr *mpu6050_get_slave_descr(void);
-
-#endif
diff --git a/drivers/misc/inv_mpu/compass/Kconfig b/drivers/misc/inv_mpu/compass/Kconfig
deleted file mode 100644
index 0881d8d..0000000
--- a/drivers/misc/inv_mpu/compass/Kconfig
+++ /dev/null
@@ -1,94 +0,0 @@
-menuconfig INV_SENSORS_MPU6050_COMPASS
- bool "Compass Slave Sensors"
- default y
- ---help---
- Say Y here to get to see options for device drivers for various
- compasses. This option alone does not add any kernel code.
-
- If you say N, all options in this submenu will be skipped and disabled.
-
-if INV_SENSORS_MPU6050_COMPASS
-
-config MPU_SENSORS_MPU6050_AK8975
- tristate "AKM ak8975"
- help
- This enables support for the AKM ak8975 compass
- This support is for integration with the MPU3050 or MPU6050 gyroscope
- device driver. Only one compass can be registered at a time.
- Specifying more that one compass in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_MPU6050_AK8972
- tristate "AKM ak8972"
- help
- This enables support for the AKM ak8972 compass
- This support is for integration with the MPU3050 or MPU6050 gyroscope
- device driver. Only one compass can be registered at a time.
- Specifying more that one compass in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_MPU6050_MMC314X
- tristate "MEMSIC mmc314x"
- help
- This enables support for the MEMSIC mmc314x compass
- This support is for integration with the MPU3050 or MPU6050 gyroscope
- device driver. Only one compass can be registered at a time.
- Specifying more that one compass in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_MPU6050_LSM303DLX_M
- tristate "ST lsm303dlx"
- help
- This enables support for the ST lsm303dlh and lsm303dlm compasses
- This support is for integration with the MPU3050 or MPU6050 gyroscope
- device driver. Only one compass can be registered at a time.
- Specifying more that one compass in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_MPU6050_MMC314XMS
- tristate "MEMSIC mmc314xMS"
- help
- This enables support for the MEMSIC mmc314xMS compass
- This support is for integration with the MPU3050 or MPU6050 gyroscope
- device driver. Only one compass can be registered at a time.
- Specifying more that one compass in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_MPU6050_YAS529
- tristate "Yamaha yas529"
- depends on INPUT_YAS_MAGNETOMETER
- help
- This enables support for the Yamaha yas529 compass
- This support is for integration with the MPU3050 or MPU6050 gyroscope
- device driver. Only one compass can be registered at a time.
- Specifying more that one compass in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_MPU6050_YAS530
- tristate "Yamaha yas530"
- help
- This enables support for the Yamaha yas530 compass
- This support is for integration with the MPU3050 or MPU6050 gyroscope
- device driver. Only one compass can be registered at a time.
- Specifying more that one compass in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_MPU6050_HSCDTD002B
- tristate "Alps hscdtd002b"
- help
- This enables support for the Alps hscdtd002b compass
- This support is for integration with the MPU3050 or MPU6050 gyroscope
- device driver. Only one compass can be registered at a time.
- Specifying more that one compass in the board file will result
- in runtime errors.
-
-config MPU_SENSORS_MPU6050_HSCDTD004A
- tristate "Alps hscdtd004a"
- help
- This enables support for the Alps hscdtd004a compass
- This support is for integration with the MPU3050 or MPU6050 gyroscope
- device driver. Only one compass can be registered at a time.
- Specifying more that one compass in the board file will result
- in runtime errors.
-
-endif
diff --git a/drivers/misc/inv_mpu/compass/Makefile b/drivers/misc/inv_mpu/compass/Makefile
deleted file mode 100644
index 5533d84..0000000
--- a/drivers/misc/inv_mpu/compass/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Compass Slaves MPUxxxx
-#
-
-obj-$(CONFIG_MPU_SENSORS_MPU6050_LSM303DLX_M) += inv_mpu_lsm303dlx_m.o
-inv_mpu_lsm303dlx_m-objs += lsm303dlx_m.o
-
-obj-$(CONFIG_MPU_SENSORS_MPU6050_MMC314X) += inv_mpu_mmc314x.o
-inv_mpu_mmc314x-objs += mmc314x.o
-
-obj-$(CONFIG_MPU_SENSORS_MPU6050_YAS529) += inv_mpu_yas529.o
-inv_mpu_yas529-objs += yas529-kernel.o
-
-obj-$(CONFIG_MPU_SENSORS_MPU6050_YAS530_411) += inv_mpu_yas530.o
-inv_mpu_yas530-objs += yas530.o
-
-obj-$(CONFIG_MPU_SENSORS_MPU6050_HSCDTD002B) += inv_mpu_hscdtd002b.o
-inv_mpu_hscdtd002b-objs += hscdtd002b.o
-
-obj-$(CONFIG_MPU_SENSORS_MPU6050_HSCDTD004A) += inv_mpu_hscdtd004a.o
-inv_mpu_hscdtd004a-objs += hscdtd004a.o
-
-obj-$(CONFIG_MPU_SENSORS_MPU6050_AK8975) += inv_mpu_ak8975.o
-inv_mpu_ak8975-objs += ak8975.o
-
-obj-$(CONFIG_MPU_SENSORS_MPU6050_AK8972) += inv_mpu_ak8972.o
-inv_mpu_ak8972-objs += ak8972.o
-
-EXTRA_CFLAGS += -Idrivers/misc/inv_mpu
-EXTRA_CFLAGS += -D__C99_DESIGNATED_INITIALIZER
diff --git a/drivers/misc/inv_mpu/compass/ak8972.c b/drivers/misc/inv_mpu/compass/ak8972.c
deleted file mode 100644
index 7eb15b4..0000000
--- a/drivers/misc/inv_mpu/compass/ak8972.c
+++ /dev/null
@@ -1,499 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup COMPASSDL
- *
- * @{
- * @file ak8972.c
- * @brief Magnetometer setup and handling methods for the AKM AK8972 compass device.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-/* -------------------------------------------------------------------------- */
-#define AK8972_REG_ST1 (0x02)
-#define AK8972_REG_HXL (0x03)
-#define AK8972_REG_ST2 (0x09)
-
-#define AK8972_REG_CNTL (0x0A)
-#define AK8972_REG_ASAX (0x10)
-#define AK8972_REG_ASAY (0x11)
-#define AK8972_REG_ASAZ (0x12)
-
-#define AK8972_CNTL_MODE_POWER_DOWN (0x00)
-#define AK8972_CNTL_MODE_SINGLE_MEASUREMENT (0x01)
-#define AK8972_CNTL_MODE_FUSE_ROM_ACCESS (0x0f)
-
-/* -------------------------------------------------------------------------- */
-struct ak8972_config {
- char asa[COMPASS_NUM_AXES]; /* axis sensitivity adjustment */
-};
-
-struct ak8972_private_data {
- struct ak8972_config init;
-};
-
-/* -------------------------------------------------------------------------- */
-static int ak8972_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char serial_data[COMPASS_NUM_AXES];
-
- struct ak8972_private_data *private_data;
- private_data = (struct ak8972_private_data *)
- kzalloc(sizeof(struct ak8972_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- AK8972_REG_CNTL,
- AK8972_CNTL_MODE_POWER_DOWN);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Wait at least 100us */
- udelay(100);
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- AK8972_REG_CNTL,
- AK8972_CNTL_MODE_FUSE_ROM_ACCESS);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Wait at least 200us */
- udelay(200);
-
- result = inv_serial_read(mlsl_handle, pdata->address,
- AK8972_REG_ASAX,
- COMPASS_NUM_AXES, serial_data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- pdata->private_data = private_data;
-
- private_data->init.asa[0] = serial_data[0];
- private_data->init.asa[1] = serial_data[1];
- private_data->init.asa[2] = serial_data[2];
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- AK8972_REG_CNTL,
- AK8972_CNTL_MODE_POWER_DOWN);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- udelay(100);
- return INV_SUCCESS;
-}
-
-static int ak8972_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-static int ak8972_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- AK8972_REG_CNTL,
- AK8972_CNTL_MODE_POWER_DOWN);
- msleep(1); /* wait at least 100us */
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return result;
-}
-
-static int ak8972_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- AK8972_REG_CNTL,
- AK8972_CNTL_MODE_SINGLE_MEASUREMENT);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return result;
-}
-
-static int ak8972_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata, unsigned char *data)
-{
- unsigned char regs[8];
- unsigned char *stat = &regs[0];
- unsigned char *stat2 = &regs[7];
- int result = INV_SUCCESS;
- int status = INV_SUCCESS;
-
- result =
- inv_serial_read(mlsl_handle, pdata->address, AK8972_REG_ST1,
- 8, regs);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Always return the data and the status registers */
- memcpy(data, &regs[1], 6);
- data[6] = regs[0];
- data[7] = regs[7];
-
- /*
- * ST : data ready -
- * Measurement has been completed and data is ready to be read.
- */
- if (*stat & 0x01)
- status = INV_SUCCESS;
-
- /*
- * ST2 : data error -
- * occurs when data read is started outside of a readable period;
- * data read would not be correct.
- * Valid in continuous measurement mode only.
- * In single measurement mode this error should not occour but we
- * stil account for it and return an error, since the data would be
- * corrupted.
- * DERR bit is self-clearing when ST2 register is read.
- */
- if (*stat2 & 0x04)
- status = INV_ERROR_COMPASS_DATA_ERROR;
- /*
- * ST2 : overflow -
- * the sum of the absolute values of all axis |X|+|Y|+|Z| < 2400uT.
- * This is likely to happen in presence of an external magnetic
- * disturbance; it indicates, the sensor data is incorrect and should
- * be ignored.
- * An error is returned.
- * HOFL bit clears when a new measurement starts.
- */
- if (*stat2 & 0x08)
- status = INV_ERROR_COMPASS_DATA_OVERFLOW;
- /*
- * ST : overrun -
- * the previous sample was not fetched and lost.
- * Valid in continuous measurement mode only.
- * In single measurement mode this error should not occour and we
- * don't consider this condition an error.
- * DOR bit is self-clearing when ST2 or any meas. data register is
- * read.
- */
- if (*stat & 0x02) {
- /* status = INV_ERROR_COMPASS_DATA_UNDERFLOW; */
- status = INV_SUCCESS;
- }
-
- /*
- * trigger next measurement if:
- * - stat is non zero;
- * - if stat is zero and stat2 is non zero.
- * Won't trigger if data is not ready and there was no error.
- */
- if (*stat != 0x00 || *stat2 != 0x00) {
- result = inv_serial_single_write(
- mlsl_handle, pdata->address,
- AK8972_REG_CNTL, AK8972_CNTL_MODE_SINGLE_MEASUREMENT);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- return status;
-}
-
-static int ak8972_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- int result;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_WRITE_REGISTERS:
- result = inv_serial_write(mlsl_handle, pdata->address,
- data->len,
- (unsigned char *)data->data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- break;
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- case MPU_SLAVE_CONFIG_MOT_THS:
- case MPU_SLAVE_CONFIG_NMOT_THS:
- case MPU_SLAVE_CONFIG_MOT_DUR:
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static int ak8972_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct ak8972_private_data *private_data = pdata->private_data;
- int result;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_READ_REGISTERS:
- {
- unsigned char *serial_data =
- (unsigned char *)data->data;
- result =
- inv_serial_read(mlsl_handle, pdata->address,
- serial_data[0], data->len - 1,
- &serial_data[1]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- break;
- }
- case MPU_SLAVE_READ_SCALE:
- {
- unsigned char *serial_data =
- (unsigned char *)data->data;
- serial_data[0] = private_data->init.asa[0];
- serial_data[1] = private_data->init.asa[1];
- serial_data[2] = private_data->init.asa[2];
- result = INV_SUCCESS;
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- break;
- }
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) = 0;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) = 8000;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- case MPU_SLAVE_CONFIG_MOT_THS:
- case MPU_SLAVE_CONFIG_NMOT_THS:
- case MPU_SLAVE_CONFIG_MOT_DUR:
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static struct ext_slave_read_trigger ak8972_read_trigger = {
- /*.reg = */ 0x0A,
- /*.value = */ 0x01
-};
-
-static struct ext_slave_descr ak8972_descr = {
- .init = ak8972_init,
- .exit = ak8972_exit,
- .suspend = ak8972_suspend,
- .resume = ak8972_resume,
- .read = ak8972_read,
- .config = ak8972_config,
- .get_config = ak8972_get_config,
- .name = "ak8972",
- .type = EXT_SLAVE_TYPE_COMPASS,
- .id = COMPASS_ID_AK8972,
- .read_reg = 0x01,
- .read_len = 9,
- .endian = EXT_SLAVE_LITTLE_ENDIAN,
- .range = {39321, 6000},
- .trigger = &ak8972_read_trigger,
-};
-
-static
-struct ext_slave_descr *ak8972_get_slave_descr(void)
-{
- return &ak8972_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct ak8972_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int ak8972_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct ak8972_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- ak8972_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int ak8972_mod_remove(struct i2c_client *client)
-{
- struct ak8972_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
- inv_mpu_unregister_slave(client, private_data->pdata,
- ak8972_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id ak8972_mod_id[] = {
- { "ak8972", COMPASS_ID_AK8972 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, ak8972_mod_id);
-
-static struct i2c_driver ak8972_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = ak8972_mod_probe,
- .remove = ak8972_mod_remove,
- .id_table = ak8972_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "ak8972_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init ak8972_mod_init(void)
-{
- int res = i2c_add_driver(&ak8972_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "ak8972_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit ak8972_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&ak8972_mod_driver);
-}
-
-module_init(ak8972_mod_init);
-module_exit(ak8972_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate AK8972 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("ak8972_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/compass/ak8975.c b/drivers/misc/inv_mpu/compass/ak8975.c
deleted file mode 100644
index b8dea1b..0000000
--- a/drivers/misc/inv_mpu/compass/ak8975.c
+++ /dev/null
@@ -1,504 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup COMPASSDL
- *
- * @{
- * @file ak8975.c
- * @brief Magnetometer setup and handling methods for the AKM AK8975,
- * AKM AK8975B, and AKM AK8975C compass devices.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-/* -------------------------------------------------------------------------- */
-#define AK8975_REG_ST1 (0x02)
-#define AK8975_REG_HXL (0x03)
-#define AK8975_REG_ST2 (0x09)
-
-#define AK8975_REG_CNTL (0x0A)
-#define AK8975_REG_ASAX (0x10)
-#define AK8975_REG_ASAY (0x11)
-#define AK8975_REG_ASAZ (0x12)
-
-#define AK8975_CNTL_MODE_POWER_DOWN (0x10)
-#define AK8975_CNTL_MODE_SINGLE_MEASUREMENT (0x11)
-#define AK8975_CNTL_MODE_FUSE_ROM_ACCESS (0x1f)
-
-/* -------------------------------------------------------------------------- */
-struct ak8975_config {
- char asa[COMPASS_NUM_AXES]; /* axis sensitivity adjustment */
-};
-
-struct ak8975_private_data {
- struct ak8975_config init;
-};
-
-/* -------------------------------------------------------------------------- */
-static int ak8975_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char serial_data[COMPASS_NUM_AXES];
-
- struct ak8975_private_data *private_data;
- private_data = (struct ak8975_private_data *)
- kzalloc(sizeof(struct ak8975_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- AK8975_REG_CNTL,
- AK8975_CNTL_MODE_POWER_DOWN);
- if (result) {
- LOG_RESULT_LOCATION(result);
- kfree(private_data);
- return result;
- }
- /* Wait at least 100us */
- udelay(100);
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- AK8975_REG_CNTL,
- AK8975_CNTL_MODE_FUSE_ROM_ACCESS);
- if (result) {
- LOG_RESULT_LOCATION(result);
- kfree(private_data);
- return result;
- }
-
- /* Wait at least 200us */
- udelay(200);
-
- result = inv_serial_read(mlsl_handle, pdata->address,
- AK8975_REG_ASAX,
- COMPASS_NUM_AXES, serial_data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- kfree(private_data);
- return result;
- }
-
- pdata->private_data = private_data;
-
- private_data->init.asa[0] = serial_data[0];
- private_data->init.asa[1] = serial_data[1];
- private_data->init.asa[2] = serial_data[2];
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- AK8975_REG_CNTL,
- AK8975_CNTL_MODE_POWER_DOWN);
- if (result) {
- LOG_RESULT_LOCATION(result);
- kfree(private_data);
- return result;
- }
-
- udelay(100);
- return INV_SUCCESS;
-}
-
-static int ak8975_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-static int ak8975_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- AK8975_REG_CNTL,
- AK8975_CNTL_MODE_POWER_DOWN);
- msleep(20); /* wait at least 100us */
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return result;
-}
-
-static int ak8975_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- AK8975_REG_CNTL,
- AK8975_CNTL_MODE_SINGLE_MEASUREMENT);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return result;
-}
-
-static int ak8975_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata, unsigned char *data)
-{
- unsigned char regs[8];
- unsigned char *stat = &regs[0];
- unsigned char *stat2 = &regs[7];
- int result = INV_SUCCESS;
- int status = INV_SUCCESS;
-
- result =
- inv_serial_read(mlsl_handle, pdata->address, AK8975_REG_ST1,
- 8, regs);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Always return the data and the status registers */
- memcpy(data, &regs[1], 6);
- data[6] = regs[0];
- data[7] = regs[7];
-
- /*
- * ST : data ready -
- * Measurement has been completed and data is ready to be read.
- */
- if (*stat & 0x01)
- status = INV_SUCCESS;
-
- /*
- * ST2 : data error -
- * occurs when data read is started outside of a readable period;
- * data read would not be correct.
- * Valid in continuous measurement mode only.
- * In single measurement mode this error should not occour but we
- * stil account for it and return an error, since the data would be
- * corrupted.
- * DERR bit is self-clearing when ST2 register is read.
- */
- if (*stat2 & 0x04)
- status = INV_ERROR_COMPASS_DATA_ERROR;
- /*
- * ST2 : overflow -
- * the sum of the absolute values of all axis |X|+|Y|+|Z| < 2400uT.
- * This is likely to happen in presence of an external magnetic
- * disturbance; it indicates, the sensor data is incorrect and should
- * be ignored.
- * An error is returned.
- * HOFL bit clears when a new measurement starts.
- */
- if (*stat2 & 0x08)
- status = INV_ERROR_COMPASS_DATA_OVERFLOW;
- /*
- * ST : overrun -
- * the previous sample was not fetched and lost.
- * Valid in continuous measurement mode only.
- * In single measurement mode this error should not occour and we
- * don't consider this condition an error.
- * DOR bit is self-clearing when ST2 or any meas. data register is
- * read.
- */
- if (*stat & 0x02) {
- /* status = INV_ERROR_COMPASS_DATA_UNDERFLOW; */
- status = INV_SUCCESS;
- }
-
- /*
- * trigger next measurement if:
- * - stat is non zero;
- * - if stat is zero and stat2 is non zero.
- * Won't trigger if data is not ready and there was no error.
- */
- if (*stat != 0x00 || *stat2 != 0x00) {
- result = inv_serial_single_write(
- mlsl_handle, pdata->address,
- AK8975_REG_CNTL, AK8975_CNTL_MODE_SINGLE_MEASUREMENT);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- return status;
-}
-
-static int ak8975_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- int result;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_WRITE_REGISTERS:
- result = inv_serial_write(mlsl_handle, pdata->address,
- data->len,
- (unsigned char *)data->data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- break;
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- case MPU_SLAVE_CONFIG_MOT_THS:
- case MPU_SLAVE_CONFIG_NMOT_THS:
- case MPU_SLAVE_CONFIG_MOT_DUR:
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static int ak8975_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct ak8975_private_data *private_data = pdata->private_data;
- int result;
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_READ_REGISTERS:
- {
- unsigned char *serial_data =
- (unsigned char *)data->data;
- result =
- inv_serial_read(mlsl_handle, pdata->address,
- serial_data[0], data->len - 1,
- &serial_data[1]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- break;
- }
- case MPU_SLAVE_READ_SCALE:
- {
- unsigned char *serial_data =
- (unsigned char *)data->data;
- serial_data[0] = private_data->init.asa[0];
- serial_data[1] = private_data->init.asa[1];
- serial_data[2] = private_data->init.asa[2];
- result = INV_SUCCESS;
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- break;
- }
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) = 0;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) = 8000;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- case MPU_SLAVE_CONFIG_MOT_THS:
- case MPU_SLAVE_CONFIG_NMOT_THS:
- case MPU_SLAVE_CONFIG_MOT_DUR:
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-static struct ext_slave_read_trigger ak8975_read_trigger = {
- /*.reg = */ 0x0A,
- /*.value = */ 0x01
-};
-
-static struct ext_slave_descr ak8975_descr = {
- .init = ak8975_init,
- .exit = ak8975_exit,
- .suspend = ak8975_suspend,
- .resume = ak8975_resume,
- .read = ak8975_read,
- .config = ak8975_config,
- .get_config = ak8975_get_config,
- .name = "ak8975",
- .type = EXT_SLAVE_TYPE_COMPASS,
- .id = COMPASS_ID_AK8975,
- .read_reg = 0x01,
- .read_len = 10,
- .endian = EXT_SLAVE_LITTLE_ENDIAN,
- .range = {9830, 4000},
- .trigger = &ak8975_read_trigger,
-};
-
-static
-struct ext_slave_descr *ak8975_get_slave_descr(void)
-{
- return &ak8975_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct ak8975_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int ak8975_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct ak8975_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- ak8975_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int ak8975_mod_remove(struct i2c_client *client)
-{
- struct ak8975_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
- inv_mpu_unregister_slave(client, private_data->pdata,
- ak8975_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id ak8975_mod_id[] = {
- { "ak8975_mod", COMPASS_ID_AK8975 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, ak8975_mod_id);
-
-static struct i2c_driver ak8975_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = ak8975_mod_probe,
- .remove = ak8975_mod_remove,
- .id_table = ak8975_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "ak8975_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init ak8975_mod_init(void)
-{
- int res = i2c_add_driver(&ak8975_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "ak8975_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit ak8975_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&ak8975_mod_driver);
-}
-
-module_init(ak8975_mod_init);
-module_exit(ak8975_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate AK8975 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("ak8975_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/compass/hscdtd002b.c b/drivers/misc/inv_mpu/compass/hscdtd002b.c
deleted file mode 100644
index 4f6013c..0000000
--- a/drivers/misc/inv_mpu/compass/hscdtd002b.c
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup COMPASSDL
- *
- * @{
- * @file hscdtd002b.c
- * @brief Magnetometer setup and handling methods for Alps HSCDTD002B
- * compass.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-/* -------------------------------------------------------------------------- */
-#define COMPASS_HSCDTD002B_STAT (0x18)
-#define COMPASS_HSCDTD002B_CTRL1 (0x1B)
-#define COMPASS_HSCDTD002B_CTRL2 (0x1C)
-#define COMPASS_HSCDTD002B_CTRL3 (0x1D)
-#define COMPASS_HSCDTD002B_DATAX (0x10)
-
-/* -------------------------------------------------------------------------- */
-static int hscdtd002b_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- /* Power mode: stand-by */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_CTRL1, 0x00);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(1); /* turn-off time */
-
- return result;
-}
-
-static int hscdtd002b_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- /* Soft reset */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_CTRL3, 0x80);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Force state; Power mode: active */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_CTRL1, 0x82);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Data ready enable */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_CTRL2, 0x08);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(1); /* turn-on time */
-
- return result;
-}
-
-static int hscdtd002b_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- unsigned char stat;
- int result = INV_SUCCESS;
- int status = INV_SUCCESS;
-
- /* Read status reg. to check if data is ready */
- result =
- inv_serial_read(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_STAT, 1, &stat);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- if (stat & 0x40) {
- result =
- inv_serial_read(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_DATAX, 6,
- (unsigned char *)data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- status = INV_SUCCESS;
- } else if (stat & 0x20) {
- status = INV_ERROR_COMPASS_DATA_OVERFLOW;
- } else {
- status = INV_ERROR_COMPASS_DATA_NOT_READY;
- }
- /* trigger next measurement read */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_CTRL3, 0x40);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return status;
-}
-
-static struct ext_slave_descr hscdtd002b_descr = {
- .init = NULL,
- .exit = NULL,
- .suspend = hscdtd002b_suspend,
- .resume = hscdtd002b_resume,
- .read = hscdtd002b_read,
- .config = NULL,
- .get_config = NULL,
- .name = "hscdtd002b",
- .type = EXT_SLAVE_TYPE_COMPASS,
- .id = COMPASS_ID_HSCDTD002B,
- .read_reg = 0x10,
- .read_len = 6,
- .endian = EXT_SLAVE_LITTLE_ENDIAN,
- .range = {9830, 4000},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *hscdtd002b_get_slave_descr(void)
-{
- return &hscdtd002b_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct hscdtd002b_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int hscdtd002b_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct hscdtd002b_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- hscdtd002b_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int hscdtd002b_mod_remove(struct i2c_client *client)
-{
- struct hscdtd002b_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- hscdtd002b_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id hscdtd002b_mod_id[] = {
- { "hscdtd002b", COMPASS_ID_HSCDTD002B },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, hscdtd002b_mod_id);
-
-static struct i2c_driver hscdtd002b_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = hscdtd002b_mod_probe,
- .remove = hscdtd002b_mod_remove,
- .id_table = hscdtd002b_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "hscdtd002b_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init hscdtd002b_mod_init(void)
-{
- int res = i2c_add_driver(&hscdtd002b_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "hscdtd002b_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit hscdtd002b_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&hscdtd002b_mod_driver);
-}
-
-module_init(hscdtd002b_mod_init);
-module_exit(hscdtd002b_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate HSCDTD002B sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("hscdtd002b_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/compass/hscdtd004a.c b/drivers/misc/inv_mpu/compass/hscdtd004a.c
deleted file mode 100644
index f091559..0000000
--- a/drivers/misc/inv_mpu/compass/hscdtd004a.c
+++ /dev/null
@@ -1,318 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup COMPASSDL
- *
- * @{
- * @file hscdtd004a.c
- * @brief Magnetometer setup and handling methods for Alps HSCDTD004A
- * compass.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-/* -------------------------------------------------------------------------- */
-#define COMPASS_HSCDTD004A_STAT (0x18)
-#define COMPASS_HSCDTD004A_CTRL1 (0x1B)
-#define COMPASS_HSCDTD004A_CTRL2 (0x1C)
-#define COMPASS_HSCDTD004A_CTRL3 (0x1D)
-#define COMPASS_HSCDTD004A_DATAX (0x10)
-
-/* -------------------------------------------------------------------------- */
-
-static int hscdtd004a_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- /* Power mode: stand-by */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_CTRL1, 0x00);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(1); /* turn-off time */
-
- return result;
-}
-
-static int hscdtd004a_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char data1, data2[2];
-
- result = inv_serial_read(mlsl_handle, pdata->address, 0xf, 1, &data1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_read(mlsl_handle, pdata->address, 0xd, 2, data2);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- if (data1 != 0x49 || data2[0] != 0x45 || data2[1] != 0x54) {
- LOG_RESULT_LOCATION(INV_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED);
- return INV_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED;
- }
- return result;
-}
-
-static int hscdtd004a_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- /* Soft reset */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_CTRL3, 0x80);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Normal state; Power mode: active */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_CTRL1, 0x82);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Data ready enable */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_CTRL2, 0x7C);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(1); /* turn-on time */
- return result;
-}
-
-static int hscdtd004a_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- unsigned char stat;
- int result = INV_SUCCESS;
- int status = INV_SUCCESS;
-
- /* Read status reg. to check if data is ready */
- result =
- inv_serial_read(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_STAT, 1, &stat);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- if (stat & 0x48) {
- result =
- inv_serial_read(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_DATAX, 6,
- (unsigned char *)data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- status = INV_SUCCESS;
- } else if (stat & 0x68) {
- status = INV_ERROR_COMPASS_DATA_OVERFLOW;
- } else {
- status = INV_ERROR_COMPASS_DATA_NOT_READY;
- }
- /* trigger next measurement read */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_CTRL3, 0x40);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return status;
-
-}
-
-static struct ext_slave_descr hscdtd004a_descr = {
- .init = hscdtd004a_init,
- .exit = NULL,
- .suspend = hscdtd004a_suspend,
- .resume = hscdtd004a_resume,
- .read = hscdtd004a_read,
- .config = NULL,
- .get_config = NULL,
- .name = "hscdtd004a",
- .type = EXT_SLAVE_TYPE_COMPASS,
- .id = COMPASS_ID_HSCDTD004A,
- .read_reg = 0x10,
- .read_len = 6,
- .endian = EXT_SLAVE_LITTLE_ENDIAN,
- .range = {9830, 4000},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *hscdtd004a_get_slave_descr(void)
-{
- return &hscdtd004a_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct hscdtd004a_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int hscdtd004a_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct hscdtd004a_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- hscdtd004a_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int hscdtd004a_mod_remove(struct i2c_client *client)
-{
- struct hscdtd004a_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- hscdtd004a_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id hscdtd004a_mod_id[] = {
- { "hscdtd004a", COMPASS_ID_HSCDTD004A },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, hscdtd004a_mod_id);
-
-static struct i2c_driver hscdtd004a_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = hscdtd004a_mod_probe,
- .remove = hscdtd004a_mod_remove,
- .id_table = hscdtd004a_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "hscdtd004a_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init hscdtd004a_mod_init(void)
-{
- int res = i2c_add_driver(&hscdtd004a_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "hscdtd004a_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit hscdtd004a_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&hscdtd004a_mod_driver);
-}
-
-module_init(hscdtd004a_mod_init);
-module_exit(hscdtd004a_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate HSCDTD004A sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("hscdtd004a_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/compass/lsm303dlx_m.c b/drivers/misc/inv_mpu/compass/lsm303dlx_m.c
deleted file mode 100644
index 32f8cdd..0000000
--- a/drivers/misc/inv_mpu/compass/lsm303dlx_m.c
+++ /dev/null
@@ -1,395 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup COMPASSDL
- *
- * @{
- * @file lsm303dlx_m.c
- * @brief Magnetometer setup and handling methods for ST LSM303
- * compass.
- * This magnetometer device is part of a combo chip with the
- * ST LIS331DLH accelerometer and the logic in entirely based
- * on the Honeywell HMC5883 magnetometer.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-/* -------------------------------------------------------------------------- */
-enum LSM_REG {
- LSM_REG_CONF_A = 0x0,
- LSM_REG_CONF_B = 0x1,
- LSM_REG_MODE = 0x2,
- LSM_REG_X_M = 0x3,
- LSM_REG_X_L = 0x4,
- LSM_REG_Z_M = 0x5,
- LSM_REG_Z_L = 0x6,
- LSM_REG_Y_M = 0x7,
- LSM_REG_Y_L = 0x8,
- LSM_REG_STATUS = 0x9,
- LSM_REG_ID_A = 0xA,
- LSM_REG_ID_B = 0xB,
- LSM_REG_ID_C = 0xC
-};
-
-enum LSM_CONF_A {
- LSM_CONF_A_DRATE_MASK = 0x1C,
- LSM_CONF_A_DRATE_0_75 = 0x00,
- LSM_CONF_A_DRATE_1_5 = 0x04,
- LSM_CONF_A_DRATE_3 = 0x08,
- LSM_CONF_A_DRATE_7_5 = 0x0C,
- LSM_CONF_A_DRATE_15 = 0x10,
- LSM_CONF_A_DRATE_30 = 0x14,
- LSM_CONF_A_DRATE_75 = 0x18,
- LSM_CONF_A_MEAS_MASK = 0x3,
- LSM_CONF_A_MEAS_NORM = 0x0,
- LSM_CONF_A_MEAS_POS = 0x1,
- LSM_CONF_A_MEAS_NEG = 0x2
-};
-
-enum LSM_CONF_B {
- LSM_CONF_B_GAIN_MASK = 0xE0,
- LSM_CONF_B_GAIN_0_9 = 0x00,
- LSM_CONF_B_GAIN_1_2 = 0x20,
- LSM_CONF_B_GAIN_1_9 = 0x40,
- LSM_CONF_B_GAIN_2_5 = 0x60,
- LSM_CONF_B_GAIN_4_0 = 0x80,
- LSM_CONF_B_GAIN_4_6 = 0xA0,
- LSM_CONF_B_GAIN_5_5 = 0xC0,
- LSM_CONF_B_GAIN_7_9 = 0xE0
-};
-
-enum LSM_MODE {
- LSM_MODE_MASK = 0x3,
- LSM_MODE_CONT = 0x0,
- LSM_MODE_SINGLE = 0x1,
- LSM_MODE_IDLE = 0x2,
- LSM_MODE_SLEEP = 0x3
-};
-
-/* -------------------------------------------------------------------------- */
-
-static int lsm303dlx_m_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- LSM_REG_MODE, LSM_MODE_SLEEP);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(3);
-
- return result;
-}
-
-static int lsm303dlx_m_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- /* Use single measurement mode. Start at sleep state. */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- LSM_REG_MODE, LSM_MODE_SLEEP);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Config normal measurement */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- LSM_REG_CONF_A, 0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Adjust gain to 320 LSB/Gauss */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- LSM_REG_CONF_B, LSM_CONF_B_GAIN_5_5);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-static int lsm303dlx_m_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- unsigned char stat;
- int result = INV_SUCCESS;
- short axis_fixed;
-
- /* Read status reg. to check if data is ready */
- result =
- inv_serial_read(mlsl_handle, pdata->address, LSM_REG_STATUS, 1,
- &stat);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- if (stat & 0x01) {
- result =
- inv_serial_read(mlsl_handle, pdata->address,
- LSM_REG_X_M, 6, (unsigned char *)data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /*drop data if overflows */
- if ((data[0] == 0xf0) || (data[2] == 0xf0)
- || (data[4] == 0xf0)) {
- /* trigger next measurement read */
- result =
- inv_serial_single_write(mlsl_handle,
- pdata->address,
- LSM_REG_MODE,
- LSM_MODE_SINGLE);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return INV_ERROR_COMPASS_DATA_OVERFLOW;
- }
- /* convert to fixed point and apply sensitivity correction for
- Z-axis */
- axis_fixed =
- (short)((unsigned short)data[5] +
- (unsigned short)data[4] * 256);
- /* scale up by 1.125 (36/32) approximate of 1.122 (320/285) */
- if (slave->id == COMPASS_ID_LSM303DLM) {
- /* NOTE/IMPORTANT:
- lsm303dlm compass axis definition doesn't
- respect the right hand rule. We invert
- the sign of the Z axis to fix that. */
- axis_fixed = (short)(-1 * axis_fixed * 36);
- } else {
- axis_fixed = (short)(axis_fixed * 36);
- }
- data[4] = axis_fixed >> 8;
- data[5] = axis_fixed & 0xFF;
-
- axis_fixed =
- (short)((unsigned short)data[3] +
- (unsigned short)data[2] * 256);
- axis_fixed = (short)(axis_fixed * 32);
- data[2] = axis_fixed >> 8;
- data[3] = axis_fixed & 0xFF;
-
- axis_fixed =
- (short)((unsigned short)data[1] +
- (unsigned short)data[0] * 256);
- axis_fixed = (short)(axis_fixed * 32);
- data[0] = axis_fixed >> 8;
- data[1] = axis_fixed & 0xFF;
-
- /* trigger next measurement read */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- LSM_REG_MODE, LSM_MODE_SINGLE);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return INV_SUCCESS;
- } else {
- /* trigger next measurement read */
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- LSM_REG_MODE, LSM_MODE_SINGLE);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return INV_ERROR_COMPASS_DATA_NOT_READY;
- }
-}
-
-static struct ext_slave_descr lsm303dlx_m_descr = {
- .init = NULL,
- .exit = NULL,
- .suspend = lsm303dlx_m_suspend,
- .resume = lsm303dlx_m_resume,
- .read = lsm303dlx_m_read,
- .config = NULL,
- .get_config = NULL,
- .name = "lsm303dlx_m",
- .type = EXT_SLAVE_TYPE_COMPASS,
- .id = ID_INVALID,
- .read_reg = 0x06,
- .read_len = 6,
- .endian = EXT_SLAVE_BIG_ENDIAN,
- .range = {10240, 0},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *lsm303dlx_m_get_slave_descr(void)
-{
- return &lsm303dlx_m_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct lsm303dlx_m_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static const struct i2c_device_id lsm303dlx_m_mod_id[] = {
- { "lsm303dlh", COMPASS_ID_LSM303DLH },
- { "lsm303dlm", COMPASS_ID_LSM303DLM },
- {}
-};
-MODULE_DEVICE_TABLE(i2c, lsm303dlx_m_mod_id);
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int lsm303dlx_m_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct lsm303dlx_m_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
- lsm303dlx_m_descr.id = devid->driver_data;
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- lsm303dlx_m_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int lsm303dlx_m_mod_remove(struct i2c_client *client)
-{
- struct lsm303dlx_m_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- lsm303dlx_m_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static struct i2c_driver lsm303dlx_m_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = lsm303dlx_m_mod_probe,
- .remove = lsm303dlx_m_mod_remove,
- .id_table = lsm303dlx_m_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "lsm303dlx_m_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init lsm303dlx_m_mod_init(void)
-{
- int res = i2c_add_driver(&lsm303dlx_m_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "lsm303dlx_m_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit lsm303dlx_m_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&lsm303dlx_m_mod_driver);
-}
-
-module_init(lsm303dlx_m_mod_init);
-module_exit(lsm303dlx_m_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate lsm303dlx_m sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("lsm303dlx_m_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/compass/mmc314x.c b/drivers/misc/inv_mpu/compass/mmc314x.c
deleted file mode 100644
index 786fadc..0000000
--- a/drivers/misc/inv_mpu/compass/mmc314x.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup COMPASSDL
- *
- * @{
- * @file mmc314x.c
- * @brief Magnetometer setup and handling methods for the
- * MEMSIC MMC314x compass.
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-/* -------------------------------------------------------------------------- */
-
-static int reset_int = 1000;
-static int read_count = 1;
-static char reset_mode; /* in Z-init section */
-
-/* -------------------------------------------------------------------------- */
-#define MMC314X_REG_ST (0x00)
-#define MMC314X_REG_X_MSB (0x01)
-
-#define MMC314X_CNTL_MODE_WAKE_UP (0x01)
-#define MMC314X_CNTL_MODE_SET (0x02)
-#define MMC314X_CNTL_MODE_RESET (0x04)
-
-/* -------------------------------------------------------------------------- */
-
-static int mmc314x_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- return result;
-}
-
-static int mmc314x_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
-
- int result;
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- MMC314X_REG_ST, MMC314X_CNTL_MODE_RESET);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(10);
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- MMC314X_REG_ST, MMC314X_CNTL_MODE_SET);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(10);
- read_count = 1;
- return INV_SUCCESS;
-}
-
-static int mmc314x_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result, ii;
- short tmp[3];
- unsigned char tmpdata[6];
-
- if (read_count > 1000)
- read_count = 1;
-
- result =
- inv_serial_read(mlsl_handle, pdata->address, MMC314X_REG_X_MSB,
- 6, (unsigned char *)data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- for (ii = 0; ii < 6; ii++)
- tmpdata[ii] = data[ii];
-
- for (ii = 0; ii < 3; ii++) {
- tmp[ii] = (short)((tmpdata[2 * ii] << 8) + tmpdata[2 * ii + 1]);
- tmp[ii] = tmp[ii] - 4096;
- tmp[ii] = tmp[ii] * 16;
- }
-
- for (ii = 0; ii < 3; ii++) {
- data[2 * ii] = (unsigned char)(tmp[ii] >> 8);
- data[2 * ii + 1] = (unsigned char)(tmp[ii]);
- }
-
- if (read_count % reset_int == 0) {
- if (reset_mode) {
- result =
- inv_serial_single_write(mlsl_handle,
- pdata->address,
- MMC314X_REG_ST,
- MMC314X_CNTL_MODE_RESET);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- reset_mode = 0;
- return INV_ERROR_COMPASS_DATA_NOT_READY;
- } else {
- result =
- inv_serial_single_write(mlsl_handle,
- pdata->address,
- MMC314X_REG_ST,
- MMC314X_CNTL_MODE_SET);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- reset_mode = 1;
- read_count++;
- return INV_ERROR_COMPASS_DATA_NOT_READY;
- }
- }
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- MMC314X_REG_ST, MMC314X_CNTL_MODE_WAKE_UP);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- read_count++;
-
- return INV_SUCCESS;
-}
-
-static struct ext_slave_descr mmc314x_descr = {
- .init = NULL,
- .exit = NULL,
- .suspend = mmc314x_suspend,
- .resume = mmc314x_resume,
- .read = mmc314x_read,
- .config = NULL,
- .get_config = NULL,
- .name = "mmc314x",
- .type = EXT_SLAVE_TYPE_COMPASS,
- .id = COMPASS_ID_MMC314X,
- .read_reg = 0x01,
- .read_len = 6,
- .endian = EXT_SLAVE_BIG_ENDIAN,
- .range = {400, 0},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *mmc314x_get_slave_descr(void)
-{
- return &mmc314x_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct mmc314x_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int mmc314x_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct mmc314x_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- mmc314x_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int mmc314x_mod_remove(struct i2c_client *client)
-{
- struct mmc314x_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- mmc314x_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id mmc314x_mod_id[] = {
- { "mmc314x", COMPASS_ID_MMC314X },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, mmc314x_mod_id);
-
-static struct i2c_driver mmc314x_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = mmc314x_mod_probe,
- .remove = mmc314x_mod_remove,
- .id_table = mmc314x_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "mmc314x_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init mmc314x_mod_init(void)
-{
- int res = i2c_add_driver(&mmc314x_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "mmc314x_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit mmc314x_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&mmc314x_mod_driver);
-}
-
-module_init(mmc314x_mod_init);
-module_exit(mmc314x_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate MMC314X sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("mmc314x_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/compass/yas529-kernel.c b/drivers/misc/inv_mpu/compass/yas529-kernel.c
deleted file mode 100644
index f53223f..0000000
--- a/drivers/misc/inv_mpu/compass/yas529-kernel.c
+++ /dev/null
@@ -1,611 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <log.h>
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/*----- YAMAHA YAS529 Registers ------*/
-enum YAS_REG {
- YAS_REG_CMDR = 0x00, /* 000 < 5 */
- YAS_REG_XOFFSETR = 0x20, /* 001 < 5 */
- YAS_REG_Y1OFFSETR = 0x40, /* 010 < 5 */
- YAS_REG_Y2OFFSETR = 0x60, /* 011 < 5 */
- YAS_REG_ICOILR = 0x80, /* 100 < 5 */
- YAS_REG_CAL = 0xA0, /* 101 < 5 */
- YAS_REG_CONFR = 0xC0, /* 110 < 5 */
- YAS_REG_DOUTR = 0xE0 /* 111 < 5 */
-};
-
-/* -------------------------------------------------------------------------- */
-
-static long a1;
-static long a2;
-static long a3;
-static long a4;
-static long a5;
-static long a6;
-static long a7;
-static long a8;
-static long a9;
-
-/* -------------------------------------------------------------------------- */
-static int yas529_sensor_i2c_write(struct i2c_adapter *i2c_adap,
- unsigned char address,
- unsigned int len, unsigned char *data)
-{
- struct i2c_msg msgs[1];
- int res;
-
- if (NULL == data || NULL == i2c_adap)
- return -EINVAL;
-
- msgs[0].addr = address;
- msgs[0].flags = 0; /* write */
- msgs[0].buf = (unsigned char *)data;
- msgs[0].len = len;
-
- res = i2c_transfer(i2c_adap, msgs, 1);
- if (res < 1)
- return res;
- else
- return 0;
-}
-
-static int yas529_sensor_i2c_read(struct i2c_adapter *i2c_adap,
- unsigned char address,
- unsigned char reg,
- unsigned int len, unsigned char *data)
-{
- struct i2c_msg msgs[2];
- int res;
-
- if (NULL == data || NULL == i2c_adap)
- return -EINVAL;
-
- msgs[0].addr = address;
- msgs[0].flags = I2C_M_RD;
- msgs[0].buf = data;
- msgs[0].len = len;
-
- res = i2c_transfer(i2c_adap, msgs, 1);
- if (res < 1)
- return res;
- else
- return 0;
-}
-
-static int yas529_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- return result;
-}
-
-static int yas529_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- unsigned char dummyData[1] = { 0 };
- unsigned char dummyRegister = 0;
- unsigned char rawData[6];
- unsigned char calData[9];
-
- short xoffset, y1offset, y2offset;
- short d2, d3, d4, d5, d6, d7, d8, d9;
-
- /* YAS529 Application Manual MS-3C - Section 4.4.5 */
- /* =============================================== */
- /* Step 1 - register initialization */
- /* zero initialization coil register - "100 00 000" */
- dummyData[0] = YAS_REG_ICOILR | 0x00;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* zero config register - "110 00 000" */
- dummyData[0] = YAS_REG_CONFR | 0x00;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Step 2 - initialization coil operation */
- dummyData[0] = YAS_REG_ICOILR | 0x11;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x01;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x12;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x02;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x13;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x03;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x14;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x04;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x15;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x05;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x16;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x06;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x17;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x07;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x10;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_ICOILR | 0x00;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Step 3 - rough offset measurement */
- /* Config register - Measurements results - "110 00 000" */
- dummyData[0] = YAS_REG_CONFR | 0x00;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Measurements command register - Rough offset measurement -
- "000 00001" */
- dummyData[0] = YAS_REG_CMDR | 0x01;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(2); /* wait at least 1.5ms */
-
- /* Measurement data read */
- result =
- yas529_sensor_i2c_read(mlsl_handle, pdata->address,
- dummyRegister, 6, rawData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- xoffset =
- (short)((unsigned short)rawData[5] +
- ((unsigned short)rawData[4] & 0x7) * 256) - 5;
- if (xoffset < 0)
- xoffset = 0;
- y1offset =
- (short)((unsigned short)rawData[3] +
- ((unsigned short)rawData[2] & 0x7) * 256) - 5;
- if (y1offset < 0)
- y1offset = 0;
- y2offset =
- (short)((unsigned short)rawData[1] +
- ((unsigned short)rawData[0] & 0x7) * 256) - 5;
- if (y2offset < 0)
- y2offset = 0;
-
- /* Step 4 - rough offset setting */
- /* Set rough offset register values */
- dummyData[0] = YAS_REG_XOFFSETR | xoffset;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_Y1OFFSETR | y1offset;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- dummyData[0] = YAS_REG_Y2OFFSETR | y2offset;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* CAL matrix read (first read is invalid) */
- /* Config register - CAL register read - "110 01 000" */
- dummyData[0] = YAS_REG_CONFR | 0x08;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* CAL data read */
- result =
- yas529_sensor_i2c_read(mlsl_handle, pdata->address,
- dummyRegister, 9, calData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Config register - CAL register read - "110 01 000" */
- dummyData[0] = YAS_REG_CONFR | 0x08;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* CAL data read */
- result =
- yas529_sensor_i2c_read(mlsl_handle, pdata->address,
- dummyRegister, 9, calData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Calculate coefficients of the sensitivity correction matrix */
- a1 = 100;
- d2 = (calData[0] & 0xFC) >> 2; /* [71..66] 6bit */
- a2 = (short)(d2 - 32);
- /* [65..62] 4bit */
- d3 = ((calData[0] & 0x03) << 2) | ((calData[1] & 0xC0) >> 6);
- a3 = (short)(d3 - 8);
- d4 = (calData[1] & 0x3F); /* [61..56] 6bit */
- a4 = (short)(d4 - 32);
- d5 = (calData[2] & 0xFC) >> 2; /* [55..50] 6bit */
- a5 = (short)(d5 - 32) + 70;
- /* [49..44] 6bit */
- d6 = ((calData[2] & 0x03) << 4) | ((calData[3] & 0xF0) >> 4);
- a6 = (short)(d6 - 32);
- /* [43..38] 6bit */
- d7 = ((calData[3] & 0x0F) << 2) | ((calData[4] & 0xC0) >> 6);
- a7 = (short)(d7 - 32);
- d8 = (calData[4] & 0x3F); /* [37..32] 6bit */
- a8 = (short)(d8 - 32);
- d9 = (calData[5] & 0xFE) >> 1; /* [31..25] 7bit */
- a9 = (short)(d9 - 64) + 130;
-
- return result;
-}
-
-static int yas529_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- unsigned char stat;
- unsigned char rawData[6];
- unsigned char dummyData[1] = { 0 };
- unsigned char dummyRegister = 0;
- int result = INV_SUCCESS;
- short SX, SY1, SY2, SY, SZ;
- short row1fixed, row2fixed, row3fixed;
-
- /* Config register - Measurements results - "110 00 000" */
- dummyData[0] = YAS_REG_CONFR | 0x00;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Measurements command register - Normal magnetic field measurement -
- "000 00000" */
- dummyData[0] = YAS_REG_CMDR | 0x00;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- msleep(10);
- /* Measurement data read */
- result =
- yas529_sensor_i2c_read(mlsl_handle, pdata->address,
- dummyRegister, 6, (unsigned char *)&rawData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- stat = rawData[0] & 0x80;
- if (stat == 0x00) {
- /* Extract raw data */
- SX = (short)((unsigned short)rawData[5] +
- ((unsigned short)rawData[4] & 0x7) * 256);
- SY1 =
- (short)((unsigned short)rawData[3] +
- ((unsigned short)rawData[2] & 0x7) * 256);
- SY2 =
- (short)((unsigned short)rawData[1] +
- ((unsigned short)rawData[0] & 0x7) * 256);
- if ((SX <= 1) || (SY1 <= 1) || (SY2 <= 1))
- return INV_ERROR_COMPASS_DATA_UNDERFLOW;
- if ((SX >= 1024) || (SY1 >= 1024) || (SY2 >= 1024))
- return INV_ERROR_COMPASS_DATA_OVERFLOW;
- /* Convert to XYZ axis */
- SX = -1 * SX;
- SY = SY2 - SY1;
- SZ = SY1 + SY2;
-
- /* Apply sensitivity correction matrix */
- row1fixed = (short)((a1 * SX + a2 * SY + a3 * SZ) >> 7) * 41;
- row2fixed = (short)((a4 * SX + a5 * SY + a6 * SZ) >> 7) * 41;
- row3fixed = (short)((a7 * SX + a8 * SY + a9 * SZ) >> 7) * 41;
-
- data[0] = row1fixed >> 8;
- data[1] = row1fixed & 0xFF;
- data[2] = row2fixed >> 8;
- data[3] = row2fixed & 0xFF;
- data[4] = row3fixed >> 8;
- data[5] = row3fixed & 0xFF;
-
- return INV_SUCCESS;
- } else {
- return INV_ERROR_COMPASS_DATA_NOT_READY;
- }
-}
-
-static struct ext_slave_descr yas529_descr = {
- .init = NULL,
- .exit = NULL,
- .suspend = yas529_suspend,
- .resume = yas529_resume,
- .read = yas529_read,
- .config = NULL,
- .get_config = NULL,
- .name = "yas529",
- .type = EXT_SLAVE_TYPE_COMPASS,
- .id = COMPASS_ID_YAS529,
- .read_reg = 0x06,
- .read_len = 6,
- .endian = EXT_SLAVE_BIG_ENDIAN,
- .range = {19660, 8000},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *yas529_get_slave_descr(void)
-{
- return &yas529_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct yas529_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int yas529_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct yas529_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- yas529_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int yas529_mod_remove(struct i2c_client *client)
-{
- struct yas529_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- yas529_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id yas529_mod_id[] = {
- { "yas529", COMPASS_ID_YAS529 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, yas529_mod_id);
-
-static struct i2c_driver yas529_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = yas529_mod_probe,
- .remove = yas529_mod_remove,
- .id_table = yas529_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "yas529_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init yas529_mod_init(void)
-{
- int res = i2c_add_driver(&yas529_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "yas529_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit yas529_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&yas529_mod_driver);
-}
-
-module_init(yas529_mod_init);
-module_exit(yas529_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate YAS529 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("yas529_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/compass/yas530.c b/drivers/misc/inv_mpu/compass/yas530.c
deleted file mode 100644
index 263990f..0000000
--- a/drivers/misc/inv_mpu/compass/yas530.c
+++ /dev/null
@@ -1,596 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup COMPASSDL
- *
- * @{
- * @file yas530.c
- * @brief Magnetometer setup and handling methods for Yamaha YAS530
- * compass when used in a user-space solution (no kernel driver).
- */
-
-/* -------------------------------------------------------------------------- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-
-#include <linux/module.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include "log.h"
-#include <linux/mpu_411.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-/* -------------------------------------------------------------------------- */
-#define YAS530_REGADDR_DEVICE_ID (0x80)
-#define YAS530_REGADDR_ACTUATE_INIT_COIL (0x81)
-#define YAS530_REGADDR_MEASURE_COMMAND (0x82)
-#define YAS530_REGADDR_CONFIG (0x83)
-#define YAS530_REGADDR_MEASURE_INTERVAL (0x84)
-#define YAS530_REGADDR_OFFSET_X (0x85)
-#define YAS530_REGADDR_OFFSET_Y1 (0x86)
-#define YAS530_REGADDR_OFFSET_Y2 (0x87)
-#define YAS530_REGADDR_TEST1 (0x88)
-#define YAS530_REGADDR_TEST2 (0x89)
-#define YAS530_REGADDR_CAL (0x90)
-#define YAS530_REGADDR_MEASURE_DATA (0xb0)
-
-/* -------------------------------------------------------------------------- */
-static int Cx, Cy1, Cy2;
-static int /*a1, */ a2, a3, a4, a5, a6, a7, a8, a9;
-static int k;
-
-static unsigned char dx, dy1, dy2;
-static unsigned char d2, d3, d4, d5, d6, d7, d8, d9, d0;
-static unsigned char dck;
-
-/* -------------------------------------------------------------------------- */
-
-static int set_hardware_offset(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- char offset_x, char offset_y1, char offset_y2)
-{
- char data;
- int result = INV_SUCCESS;
-
- data = offset_x & 0x3f;
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- YAS530_REGADDR_OFFSET_X, data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- data = offset_y1 & 0x3f;
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- YAS530_REGADDR_OFFSET_Y1, data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- data = offset_y2 & 0x3f;
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- YAS530_REGADDR_OFFSET_Y2, data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-static int set_measure_command(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- int ldtc, int fors, int dlymes)
-{
- int result = INV_SUCCESS;
-
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- YAS530_REGADDR_MEASURE_COMMAND, 0x01);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-static int measure_normal(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- int *busy, unsigned short *t,
- unsigned short *x, unsigned short *y1,
- unsigned short *y2)
-{
- unsigned char data[8];
- unsigned short b, to, xo, y1o, y2o;
- int result;
- ktime_t sleeptime;
- result = set_measure_command(mlsl_handle, slave, pdata, 0, 0, 0);
- sleeptime = ktime_set(0, 2 * NSEC_PER_MSEC);
- set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_hrtimeout(&sleeptime, HRTIMER_MODE_REL);
-
- result = inv_serial_read(mlsl_handle, pdata->address,
- YAS530_REGADDR_MEASURE_DATA, 8, data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- b = (data[0] >> 7) & 0x01;
- to = ((data[0] << 2) & 0x1fc) | ((data[1] >> 6) & 0x03);
- xo = ((data[2] << 5) & 0xfe0) | ((data[3] >> 3) & 0x1f);
- y1o = ((data[4] << 5) & 0xfe0) | ((data[5] >> 3) & 0x1f);
- y2o = ((data[6] << 5) & 0xfe0) | ((data[7] >> 3) & 0x1f);
-
- *busy = b;
- *t = to;
- *x = xo;
- *y1 = y1o;
- *y2 = y2o;
-
- return result;
-}
-
-static int check_offset(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- char offset_x, char offset_y1, char offset_y2,
- int *flag_x, int *flag_y1, int *flag_y2)
-{
- int result;
- int busy;
- short t, x, y1, y2;
-
- result = set_hardware_offset(mlsl_handle, slave, pdata,
- offset_x, offset_y1, offset_y2);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = measure_normal(mlsl_handle, slave, pdata,
- &busy, &t, &x, &y1, &y2);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- *flag_x = 0;
- *flag_y1 = 0;
- *flag_y2 = 0;
-
- if (x > 2048)
- *flag_x = 1;
- if (y1 > 2048)
- *flag_y1 = 1;
- if (y2 > 2048)
- *flag_y2 = 1;
- if (x < 2048)
- *flag_x = -1;
- if (y1 < 2048)
- *flag_y1 = -1;
- if (y2 < 2048)
- *flag_y2 = -1;
-
- return result;
-}
-
-static int measure_and_set_offset(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- char *offset)
-{
- int i;
- int result = INV_SUCCESS;
- char offset_x = 0, offset_y1 = 0, offset_y2 = 0;
- int flag_x = 0, flag_y1 = 0, flag_y2 = 0;
- static const int correct[5] = { 16, 8, 4, 2, 1 };
-
- for (i = 0; i < 5; i++) {
- result = check_offset(mlsl_handle, slave, pdata,
- offset_x, offset_y1, offset_y2,
- &flag_x, &flag_y1, &flag_y2);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- if (flag_x)
- offset_x += flag_x * correct[i];
- if (flag_y1)
- offset_y1 += flag_y1 * correct[i];
- if (flag_y2)
- offset_y2 += flag_y2 * correct[i];
- }
-
- result = set_hardware_offset(mlsl_handle, slave, pdata,
- offset_x, offset_y1, offset_y2);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- offset[0] = offset_x;
- offset[1] = offset_y1;
- offset[2] = offset_y2;
-
- return result;
-}
-
-static void coordinate_conversion(short x, short y1, short y2, short t,
- int32_t *xo, int32_t *yo, int32_t *zo)
-{
- int32_t sx, sy1, sy2, sy, sz;
- int32_t hx, hy, hz;
-
- sx = x - (Cx * t) / 100;
- sy1 = y1 - (Cy1 * t) / 100;
- sy2 = y2 - (Cy2 * t) / 100;
-
- sy = sy1 - sy2;
- sz = -sy1 - sy2;
-
- hx = k * ((100 * sx + a2 * sy + a3 * sz) / 10);
- hy = k * ((a4 * sx + a5 * sy + a6 * sz) / 10);
- hz = k * ((a7 * sx + a8 * sy + a9 * sz) / 10);
-
- *xo = hx;
- *yo = hy;
- *zo = hz;
-}
-
-static int yas530_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- return result;
-}
-
-static int yas530_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- unsigned char dummyData = 0x00;
- char offset[3] = { 0, 0, 0 };
- unsigned char data[16];
- unsigned char read_reg[1];
-
- /* =============================================== */
-
- /* Step 1 - Test register initialization */
- dummyData = 0x00;
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- YAS530_REGADDR_TEST1, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result =
- inv_serial_single_write(mlsl_handle, pdata->address,
- YAS530_REGADDR_TEST2, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Device ID read */
- result = inv_serial_read(mlsl_handle, pdata->address,
- YAS530_REGADDR_DEVICE_ID, 1, read_reg);
-
- /*Step 2 Read the CAL register */
- /* CAL data read */
- result = inv_serial_read(mlsl_handle, pdata->address,
- YAS530_REGADDR_CAL, 16, data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* CAL data Second Read */
- result = inv_serial_read(mlsl_handle, pdata->address,
- YAS530_REGADDR_CAL, 16, data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /*Cal data */
- dx = data[0];
- dy1 = data[1];
- dy2 = data[2];
- d2 = (data[3] >> 2) & 0x03f;
- d3 = ((data[3] << 2) & 0x0c) | ((data[4] >> 6) & 0x03);
- d4 = data[4] & 0x3f;
- d5 = (data[5] >> 2) & 0x3f;
- d6 = ((data[5] << 4) & 0x30) | ((data[6] >> 4) & 0x0f);
- d7 = ((data[6] << 3) & 0x78) | ((data[7] >> 5) & 0x07);
- d8 = ((data[7] << 1) & 0x3e) | ((data[8] >> 7) & 0x01);
- d9 = ((data[8] << 1) & 0xfe) | ((data[9] >> 7) & 0x01);
- d0 = (data[9] >> 2) & 0x1f;
- dck = ((data[9] << 1) & 0x06) | ((data[10] >> 7) & 0x01);
-
- /*Correction Data */
- Cx = (int)dx * 6 - 768;
- Cy1 = (int)dy1 * 6 - 768;
- Cy2 = (int)dy2 * 6 - 768;
- a2 = (int)d2 - 32;
- a3 = (int)d3 - 8;
- a4 = (int)d4 - 32;
- a5 = (int)d5 + 38;
- a6 = (int)d6 - 32;
- a7 = (int)d7 - 64;
- a8 = (int)d8 - 32;
- a9 = (int)d9;
- k = (int)d0 + 10;
-
- /*Obtain the [49:47] bits */
- dck &= 0x07;
-
- /*Step 3 : Storing the CONFIG with the CLK value */
- dummyData = 0x00 | (dck << 2);
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- YAS530_REGADDR_CONFIG, dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /*Step 4 : Set Acquisition Interval Register */
- dummyData = 0x00;
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- YAS530_REGADDR_MEASURE_INTERVAL,
- dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /*Step 5 : Reset Coil */
- dummyData = 0x00;
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- YAS530_REGADDR_ACTUATE_INIT_COIL,
- dummyData);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Offset Measurement and Set */
- result = measure_and_set_offset(mlsl_handle, slave, pdata, offset);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- return result;
-}
-
-static int yas530_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result = INV_SUCCESS;
-
- int busy;
- short t, x, y1, y2;
- int32_t xyz[3];
- short rawfixed[3];
-
- result = measure_normal(mlsl_handle, slave, pdata,
- &busy, &t, &x, &y1, &y2);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- coordinate_conversion(x, y1, y2, t, &xyz[0], &xyz[1], &xyz[2]);
-
- rawfixed[0] = (short)(xyz[0] / 100);
- rawfixed[1] = (short)(xyz[1] / 100);
- rawfixed[2] = (short)(xyz[2] / 100);
-
- data[0] = rawfixed[0] >> 8;
- data[1] = rawfixed[0] & 0xFF;
- data[2] = rawfixed[1] >> 8;
- data[3] = rawfixed[1] & 0xFF;
- data[4] = rawfixed[2] >> 8;
- data[5] = rawfixed[2] & 0xFF;
-
- if (busy)
- return INV_ERROR_COMPASS_DATA_NOT_READY;
- return result;
-}
-
-static int yas530_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- int result = INV_SUCCESS;
- //struct yas530_private_data *private_data = pdata->private_data;
-
- switch (data->key)
- {
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- }
- return result;
-}
-
-static struct ext_slave_descr yas530_descr = {
- .init = NULL,
- .exit = NULL,
- .suspend = yas530_suspend,
- .resume = yas530_resume,
- .read = yas530_read,
- .config = NULL,
- .get_config = yas530_get_config,
- .name = "yas530",
- .type = EXT_SLAVE_TYPE_COMPASS,
- .id = COMPASS_ID_YAS530,
- .read_reg = 0x06,
- .read_len = 6,
- .endian = EXT_SLAVE_BIG_ENDIAN,
- .range = {3276, 8001},
- .trigger = NULL,
-};
-
-static
-struct ext_slave_descr *yas530_get_slave_descr(void)
-{
- return &yas530_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct yas530_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int yas530_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct yas530_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- yas530_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int yas530_mod_remove(struct i2c_client *client)
-{
- struct yas530_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- yas530_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id yas530_mod_id[] = {
- { "yas530", COMPASS_ID_YAS530 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, yas530_mod_id);
-
-static struct i2c_driver yas530_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = yas530_mod_probe,
- .remove = yas530_mod_remove,
- .id_table = yas530_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "yas530_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init yas530_mod_init(void)
-{
- int res = i2c_add_driver(&yas530_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "yas530_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit yas530_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&yas530_mod_driver);
-}
-
-module_init(yas530_mod_init);
-module_exit(yas530_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate YAS530 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("yas530_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/compass/yas530_ext.c b/drivers/misc/inv_mpu/compass/yas530_ext.c
deleted file mode 100644
index 7a64258..0000000
--- a/drivers/misc/inv_mpu/compass/yas530_ext.c
+++ /dev/null
@@ -1,288 +0,0 @@
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-
-#include <linux/module.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include "log.h"
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-struct yas530_ext_private_data {
- int flags;
- char offsets[3];
- const int *correction_matrix;
-};
-
-
-extern int geomagnetic_api_read(int *xyz, int *raw, int *xy1y2, int *accuracy);
-extern int geomagnetic_api_resume(void);
-extern int geomagnetic_api_suspend(void);
-
-
-static int yas530_ext_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- geomagnetic_api_suspend();
-
- return result;
-}
-
-
-static int yas530_ext_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
-
- struct yas530_ext_private_data *private_data = pdata->private_data;
-
- geomagnetic_api_resume();
-
- return result;
-}
-
-static int yas530_ext_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result = INV_SUCCESS;
- int raw[3] = {0,};
- int xyz[3] = {0,};
- int accuracy = 0;
- int i = 0;
- short xyz_scaled[3] = {0,};
-
- geomagnetic_api_read(xyz, raw, NULL, &accuracy);
-
- xyz_scaled[0] = (short)(xyz[0]/100);
- xyz_scaled[1] = (short)(xyz[1]/100);
- xyz_scaled[2] = (short)(xyz[2]/100);
-
- data[0] = xyz_scaled[0] >> 8;
- data[1] = xyz_scaled[0] & 0xFF;
- data[2] = xyz_scaled[1] >> 8;
- data[3] = xyz_scaled[1] & 0xFF;
- data[4] = xyz_scaled[2] >> 8;
- data[5] = xyz_scaled[2] & 0xFF;
- data[6] = (unsigned char)accuracy;
-
-
- return result;
-
-}
-
-static int yas530_ext_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- int result = INV_SUCCESS;
- struct yas530_private_data *private_data = pdata->private_data;
-
-
- return result;
-
-}
-
-
-static int yas530_ext_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- int result = INV_SUCCESS;
- struct yas530_ext_private_data *private_data = pdata->private_data;
-
- switch (data->key)
- {
- default:
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- }
- return result;
-}
-
-static int yas530_ext_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
-
- struct yas530_ext_private_data *private_data;
- int result = INV_SUCCESS;
- char offset[3] = {0, 0, 0};
-
- private_data = (struct yas530_ext_private_data *)
- kzalloc(sizeof(struct yas530_ext_private_data), GFP_KERNEL);
-
- if (!private_data)
- return INV_ERROR_MEMORY_EXAUSTED;
-
- private_data->correction_matrix = pdata->private_data;
-
- pdata->private_data = private_data;
-
- return result;
-}
-
-static int yas530_ext_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- kfree(pdata->private_data);
- return INV_SUCCESS;
-}
-
-static struct ext_slave_descr yas530_ext_descr = {
- .init = yas530_ext_init,
- .exit = yas530_ext_exit,
- .suspend = yas530_ext_suspend,
- .resume = yas530_ext_resume,
- .read = yas530_ext_read,
- .config = yas530_ext_config,
- .get_config = yas530_ext_get_config,
- .name = "yas530ext",
- .type = EXT_SLAVE_TYPE_COMPASS,
- .id = COMPASS_ID_YAS530_EXT,
- .read_reg = 0x06,
- .read_len = 7,
- .endian = EXT_SLAVE_BIG_ENDIAN,
- .range = {3276, 8001},
- .trigger = NULL,
-};
-
-
-struct ext_slave_descr *yas530_ext_get_slave_descr(void)
-{
- return &yas530_ext_descr;
-}
-
-/* -------------------------------------------------------------------------- */
-struct yas530_ext_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int yas530_ext_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct yas530_ext_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- yas530_ext_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int yas530_ext_mod_remove(struct i2c_client *client)
-{
- struct yas530_ext_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- yas530_ext_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id yas530_ext_mod_id[] = {
- { "yas530ext", COMPASS_ID_YAS530_EXT},
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, yas530_ext_mod_id);
-
-static struct i2c_driver yas530_ext_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = yas530_ext_mod_probe,
- .remove = yas530_ext_mod_remove,
- .id_table = yas530_ext_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "yas530_ext_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init yas530_ext_mod_init(void)
-{
- int res = i2c_add_driver(&yas530_ext_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "yas530_ext_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit yas530_ext_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&yas530_ext_mod_driver);
-}
-
-module_init(yas530_ext_mod_init);
-module_exit(yas530_ext_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate YAS530 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("yas530_ext_mod");
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/compass/yas530_ext.h b/drivers/misc/inv_mpu/compass/yas530_ext.h
deleted file mode 100644
index 0c343ec..0000000
--- a/drivers/misc/inv_mpu/compass/yas530_ext.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-
-#ifndef __YAS530_EXT_H__
-#define __YAS530_EXT_H__
-
-#include <linux/mpu.h>
-
-struct ext_slave_descr *yas530_ext_get_slave_descr(void);
-
-#endif
diff --git a/drivers/misc/inv_mpu/log.h b/drivers/misc/inv_mpu/log.h
deleted file mode 100644
index 5630602e..0000000
--- a/drivers/misc/inv_mpu/log.h
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/*
- * This file incorporates work covered by the following copyright and
- * permission notice:
- *
- * Copyright (C) 2005 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * C/C++ logging functions. See the logging documentation for API details.
- *
- * We'd like these to be available from C code (in case we import some from
- * somewhere), so this has a C interface.
- *
- * The output will be correct when the log file is shared between multiple
- * threads and/or multiple processes so long as the operating system
- * supports O_APPEND. These calls have mutex-protected data structures
- * and so are NOT reentrant. Do not use MPL_LOG in a signal handler.
- */
-#ifndef _LIBS_CUTILS_MPL_LOG_H
-#define _LIBS_CUTILS_MPL_LOG_H
-
-#include "mltypes.h"
-#include <stdarg.h>
-
-
-#include <linux/kernel.h>
-
-
-/* --------------------------------------------------------------------- */
-
-/*
- * Normally we strip MPL_LOGV (VERBOSE messages) from release builds.
- * You can modify this (for example with "#define MPL_LOG_NDEBUG 0"
- * at the top of your source file) to change that behavior.
- */
-#ifndef MPL_LOG_NDEBUG
-#ifdef NDEBUG
-#define MPL_LOG_NDEBUG 1
-#else
-#define MPL_LOG_NDEBUG 0
-#endif
-#endif
-
-#define MPL_LOG_UNKNOWN MPL_LOG_VERBOSE
-#define MPL_LOG_DEFAULT KERN_DEFAULT
-#define MPL_LOG_VERBOSE KERN_CONT
-#define MPL_LOG_DEBUG KERN_NOTICE
-#define MPL_LOG_INFO KERN_INFO
-#define MPL_LOG_WARN KERN_WARNING
-#define MPL_LOG_ERROR KERN_ERR
-#define MPL_LOG_SILENT MPL_LOG_VERBOSE
-
-
-
-/*
- * This is the local tag used for the following simplified
- * logging macros. You can change this preprocessor definition
- * before using the other macros to change the tag.
- */
-#ifndef MPL_LOG_TAG
-#define MPL_LOG_TAG
-#endif
-
-/* --------------------------------------------------------------------- */
-
-/*
- * Simplified macro to send a verbose log message using the current MPL_LOG_TAG.
- */
-#ifndef MPL_LOGV
-#if MPL_LOG_NDEBUG
-#define MPL_LOGV(fmt, ...) \
- do { \
- if (0) \
- MPL_LOG(LOG_VERBOSE, MPL_LOG_TAG, fmt, ##__VA_ARGS__);\
- } while (0)
-#else
-#define MPL_LOGV(fmt, ...) MPL_LOG(LOG_VERBOSE, MPL_LOG_TAG, fmt, ##__VA_ARGS__)
-#endif
-#endif
-
-#ifndef CONDITION
-#define CONDITION(cond) ((cond) != 0)
-#endif
-
-#ifndef MPL_LOGV_IF
-#if MPL_LOG_NDEBUG
-#define MPL_LOGV_IF(cond, fmt, ...) \
- do { if (0) MPL_LOG(fmt, ##__VA_ARGS__); } while (0)
-#else
-#define MPL_LOGV_IF(cond, fmt, ...) \
- ((CONDITION(cond)) \
- ? MPL_LOG(LOG_VERBOSE, MPL_LOG_TAG, fmt, ##__VA_ARGS__) \
- : (void)0)
-#endif
-#endif
-
-/*
- * Simplified macro to send a debug log message using the current MPL_LOG_TAG.
- */
-#ifndef MPL_LOGD
-#define MPL_LOGD(fmt, ...) MPL_LOG(LOG_DEBUG, MPL_LOG_TAG, fmt, ##__VA_ARGS__)
-#endif
-
-#ifndef MPL_LOGD_IF
-#define MPL_LOGD_IF(cond, fmt, ...) \
- ((CONDITION(cond)) \
- ? MPL_LOG(LOG_DEBUG, MPL_LOG_TAG, fmt, ##__VA_ARGS__) \
- : (void)0)
-#endif
-
-/*
- * Simplified macro to send an info log message using the current MPL_LOG_TAG.
- */
-#ifndef MPL_LOGI
-#define MPL_LOGI(fmt, ...) pr_info(KERN_INFO MPL_LOG_TAG fmt, ##__VA_ARGS__)
-#endif
-
-#ifndef MPL_LOGI_IF
-#define MPL_LOGI_IF(cond, fmt, ...) \
- ((CONDITION(cond)) \
- ? MPL_LOG(LOG_INFO, MPL_LOG_TAG, fmt, ##__VA_ARGS__) \
- : (void)0)
-#endif
-
-/*
- * Simplified macro to send a warning log message using the current MPL_LOG_TAG.
- */
-#ifndef MPL_LOGW
-#define MPL_LOGW(fmt, ...) printk(KERN_WARNING MPL_LOG_TAG fmt, ##__VA_ARGS__)
-#endif
-
-#ifndef MPL_LOGW_IF
-#define MPL_LOGW_IF(cond, fmt, ...) \
- ((CONDITION(cond)) \
- ? MPL_LOG(LOG_WARN, MPL_LOG_TAG, fmt, ##__VA_ARGS__) \
- : (void)0)
-#endif
-
-/*
- * Simplified macro to send an error log message using the current MPL_LOG_TAG.
- */
-#ifndef MPL_LOGE
-#define MPL_LOGE(fmt, ...) printk(KERN_ERR MPL_LOG_TAG fmt, ##__VA_ARGS__)
-#endif
-
-#ifndef MPL_LOGE_IF
-#define MPL_LOGE_IF(cond, fmt, ...) \
- ((CONDITION(cond)) \
- ? MPL_LOG(LOG_ERROR, MPL_LOG_TAG, fmt, ##__VA_ARGS__) \
- : (void)0)
-#endif
-
-/* --------------------------------------------------------------------- */
-
-/*
- * Log a fatal error. If the given condition fails, this stops program
- * execution like a normal assertion, but also generating the given message.
- * It is NOT stripped from release builds. Note that the condition test
- * is -inverted- from the normal assert() semantics.
- */
-#define MPL_LOG_ALWAYS_FATAL_IF(cond, fmt, ...) \
- ((CONDITION(cond)) \
- ? ((void)android_printAssert(#cond, MPL_LOG_TAG, \
- fmt, ##__VA_ARGS__)) \
- : (void)0)
-
-#define MPL_LOG_ALWAYS_FATAL(fmt, ...) \
- (((void)android_printAssert(NULL, MPL_LOG_TAG, fmt, ##__VA_ARGS__)))
-
-/*
- * Versions of MPL_LOG_ALWAYS_FATAL_IF and MPL_LOG_ALWAYS_FATAL that
- * are stripped out of release builds.
- */
-#if MPL_LOG_NDEBUG
-#define MPL_LOG_FATAL_IF(cond, fmt, ...) \
- do { \
- if (0) \
- MPL_LOG_ALWAYS_FATAL_IF(cond, fmt, ##__VA_ARGS__); \
- } while (0)
-#define MPL_LOG_FATAL(fmt, ...) \
- do { \
- if (0) \
- MPL_LOG_ALWAYS_FATAL(fmt, ##__VA_ARGS__) \
- } while (0)
-#else
-#define MPL_LOG_FATAL_IF(cond, fmt, ...) \
- MPL_LOG_ALWAYS_FATAL_IF(cond, fmt, ##__VA_ARGS__)
-#define MPL_LOG_FATAL(fmt, ...) \
- MPL_LOG_ALWAYS_FATAL(fmt, ##__VA_ARGS__)
-#endif
-
-/*
- * Assertion that generates a log message when the assertion fails.
- * Stripped out of release builds. Uses the current MPL_LOG_TAG.
- */
-#define MPL_LOG_ASSERT(cond, fmt, ...) \
- MPL_LOG_FATAL_IF(!(cond), fmt, ##__VA_ARGS__)
-
-/* --------------------------------------------------------------------- */
-
-/*
- * Basic log message macro.
- *
- * Example:
- * MPL_LOG(MPL_LOG_WARN, NULL, "Failed with error %d", errno);
- *
- * The second argument may be NULL or "" to indicate the "global" tag.
- */
-#ifndef MPL_LOG
-#define MPL_LOG(priority, tag, fmt, ...) \
- MPL_LOG_PRI(priority, tag, fmt, ##__VA_ARGS__)
-#endif
-
-/*
- * Log macro that allows you to specify a number for the priority.
- */
-#ifndef MPL_LOG_PRI
-#define MPL_LOG_PRI(priority, tag, fmt, ...) \
- pr_debug(MPL_##priority tag fmt, ##__VA_ARGS__)
-#endif
-
-/*
- * Log macro that allows you to pass in a varargs ("args" is a va_list).
- */
-#ifndef MPL_LOG_PRI_VA
-/* not allowed in the Kernel because there is no dev_dbg that takes a va_list */
-#endif
-
-/* --------------------------------------------------------------------- */
-
-/*
- * ===========================================================================
- *
- * The stuff in the rest of this file should not be used directly.
- */
-
-int _MLPrintLog(int priority, const char *tag, const char *fmt, ...);
-int _MLPrintVaLog(int priority, const char *tag, const char *fmt, va_list args);
-/* Final implementation of actual writing to a character device */
-int _MLWriteLog(const char *buf, int buflen);
-
-static inline void __print_result_location(int result,
- const char *file,
- const char *func, int line)
-{
- MPL_LOGE("%s|%s|%d returning %d\n", file, func, line, result);
-}
-
-#define LOG_RESULT_LOCATION(condition) \
- do { \
- __print_result_location((int)(condition), __FILE__, \
- __func__, __LINE__); \
- } while (0)
-
-
-#endif /* _LIBS_CUTILS_MPL_LOG_H */
diff --git a/drivers/misc/inv_mpu/mldl_cfg.c b/drivers/misc/inv_mpu/mldl_cfg.c
deleted file mode 100644
index e2d9900..0000000
--- a/drivers/misc/inv_mpu/mldl_cfg.c
+++ /dev/null
@@ -1,1913 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup MLDL
- *
- * @{
- * @file mldl_cfg.c
- * @brief The Motion Library Driver Layer.
- */
-
-/* -------------------------------------------------------------------------- */
-#include <linux/delay.h>
-#include <linux/slab.h>
-
-#include <stddef.h>
-
-#include "mldl_cfg.h"
-#include <linux/mpu_411.h>
-#include "mpu6050b1.h"
-
-#include "mlsl.h"
-#include "mldl_print_cfg.h"
-#include "log.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "mldl_cfg:"
-
-/* -------------------------------------------------------------------------- */
-
-#define SLEEP 0
-#define WAKE_UP 7
-#define RESET 1
-#define STANDBY 1
-
-/* -------------------------------------------------------------------------- */
-
-/**
- * @brief Stop the DMP running
- *
- * @return INV_SUCCESS or non-zero error code
- */
-static int dmp_stop(struct mldl_cfg *mldl_cfg, void *gyro_handle)
-{
- unsigned char user_ctrl_reg;
- int result;
-
- if (mldl_cfg->inv_mpu_state->status & MPU_DMP_IS_SUSPENDED)
- return INV_SUCCESS;
-
- result = inv_serial_read(gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_USER_CTRL, 1, &user_ctrl_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- user_ctrl_reg = (user_ctrl_reg & (~BIT_FIFO_EN)) | BIT_FIFO_RST;
- user_ctrl_reg = (user_ctrl_reg & (~BIT_DMP_EN)) | BIT_DMP_RST;
-
- result = inv_serial_single_write(gyro_handle,
- mldl_cfg->mpu_chip_info->addr,
- MPUREG_USER_CTRL, user_ctrl_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- mldl_cfg->inv_mpu_state->status |= MPU_DMP_IS_SUSPENDED;
-
- return result;
-}
-
-/**
- * @brief Starts the DMP running
- *
- * @return INV_SUCCESS or non-zero error code
- */
-static int dmp_start(struct mldl_cfg *mldl_cfg, void *mlsl_handle)
-{
- unsigned char user_ctrl_reg;
- int result;
-
- if ((!(mldl_cfg->inv_mpu_state->status & MPU_DMP_IS_SUSPENDED) &&
- mldl_cfg->mpu_gyro_cfg->dmp_enable)
- ||
- ((mldl_cfg->inv_mpu_state->status & MPU_DMP_IS_SUSPENDED) &&
- !mldl_cfg->mpu_gyro_cfg->dmp_enable))
- return INV_SUCCESS;
-
- result = inv_serial_read(mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_USER_CTRL, 1, &user_ctrl_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_serial_single_write(
- mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_USER_CTRL,
- ((user_ctrl_reg & (~BIT_FIFO_EN))
- | BIT_FIFO_RST));
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_serial_single_write(
- mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_USER_CTRL, user_ctrl_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_serial_read(mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_USER_CTRL, 1, &user_ctrl_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- user_ctrl_reg |= BIT_DMP_EN;
-
- if (mldl_cfg->mpu_gyro_cfg->fifo_enable)
- user_ctrl_reg |= BIT_FIFO_EN;
- else
- user_ctrl_reg &= ~BIT_FIFO_EN;
-
- user_ctrl_reg |= BIT_DMP_RST;
-
- result = inv_serial_single_write(
- mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_USER_CTRL, user_ctrl_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- mldl_cfg->inv_mpu_state->status &= ~MPU_DMP_IS_SUSPENDED;
-
- return result;
-}
-
-/**
- * @brief enables/disables the I2C bypass to an external device
- * connected to MPU's secondary I2C bus.
- * @param enable
- * Non-zero to enable pass through.
- * @return INV_SUCCESS if successful, a non-zero error code otherwise.
- */
-static int mpu6050b1_set_i2c_bypass(struct mldl_cfg *mldl_cfg,
- void *mlsl_handle, unsigned char enable)
-{
- unsigned char reg;
- int result;
- unsigned char status = mldl_cfg->inv_mpu_state->status;
- if ((status & MPU_GYRO_IS_BYPASSED && enable) ||
- (!(status & MPU_GYRO_IS_BYPASSED) && !enable))
- return INV_SUCCESS;
-
- /*---- get current 'USER_CTRL' into b ----*/
- result = inv_serial_read(mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_USER_CTRL, 1, &reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- if (!enable) {
- /* setting int_config with the property flag BIT_BYPASS_EN
- should be done by the setup functions */
- result = inv_serial_single_write(
- mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_INT_PIN_CFG,
- (mldl_cfg->pdata->int_config & ~(BIT_BYPASS_EN)));
- if (!(reg & BIT_I2C_MST_EN)) {
- result =
- inv_serial_single_write(
- mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_USER_CTRL,
- (reg | BIT_I2C_MST_EN));
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- } else if (enable) {
- if (reg & BIT_AUX_IF_EN) {
- result =
- inv_serial_single_write(
- mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_USER_CTRL,
- (reg & (~BIT_I2C_MST_EN)));
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /*****************************************
- * To avoid hanging the bus we must sleep until all
- * slave transactions have been completed.
- * 24 bytes max slave reads
- * +1 byte possible extra write
- * +4 max slave address
- * ---
- * 33 Maximum bytes
- * x9 Approximate bits per byte
- * ---
- * 297 bits.
- * 2.97 ms minimum @ 100kbps
- * 0.75 ms minimum @ 400kbps.
- *****************************************/
- msleep(20);
- }
- result = inv_serial_single_write(
- mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_INT_PIN_CFG,
- (mldl_cfg->pdata->int_config | BIT_BYPASS_EN));
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- if (enable)
- mldl_cfg->inv_mpu_state->status |= MPU_GYRO_IS_BYPASSED;
- else
- mldl_cfg->inv_mpu_state->status &= ~MPU_GYRO_IS_BYPASSED;
-
- return result;
-}
-
-
-
-
-/**
- * @brief enables/disables the I2C bypass to an external device
- * connected to MPU's secondary I2C bus.
- * @param enable
- * Non-zero to enable pass through.
- * @return INV_SUCCESS if successful, a non-zero error code otherwise.
- */
-static int mpu_set_i2c_bypass(struct mldl_cfg *mldl_cfg, void *mlsl_handle,
- unsigned char enable)
-{
- return mpu6050b1_set_i2c_bypass(mldl_cfg, mlsl_handle, enable);
-}
-
-
-#define NUM_OF_PROD_REVS (ARRAY_SIZE(prod_rev_map))
-
-/* NOTE : when not indicated, product revision
- is considered an 'npp'; non production part */
-
-/* produces an unique identifier for each device based on the
- combination of product version and product revision */
-struct prod_rev_map_t {
- unsigned short mpl_product_key;
- unsigned char silicon_rev;
- unsigned short gyro_trim;
- unsigned short accel_trim;
-};
-
-/* NOTE: product entries are in chronological order */
-static struct prod_rev_map_t prod_rev_map[] = {
- /* prod_ver = 0 */
- {MPL_PROD_KEY(0, 1), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 2), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 3), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 4), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 5), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 6), MPU_SILICON_REV_A2, 131, 16384}, /* (A2/C2-1) */
- /* prod_ver = 1, forced to 0 for MPU6050 A2 */
- {MPL_PROD_KEY(0, 7), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 8), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 9), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 10), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 11), MPU_SILICON_REV_A2, 131, 16384}, /* (A2/D2-1) */
- {MPL_PROD_KEY(0, 12), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 13), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 14), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 15), MPU_SILICON_REV_A2, 131, 16384},
- {MPL_PROD_KEY(0, 27), MPU_SILICON_REV_A2, 131, 16384}, /* (A2/D4) */
- /* prod_ver = 1 */
- {MPL_PROD_KEY(1, 16), MPU_SILICON_REV_B1, 131, 16384}, /* (B1/D2-1) */
- {MPL_PROD_KEY(1, 17), MPU_SILICON_REV_B1, 131, 16384}, /* (B1/D2-2) */
- {MPL_PROD_KEY(1, 18), MPU_SILICON_REV_B1, 131, 16384}, /* (B1/D2-3) */
- {MPL_PROD_KEY(1, 19), MPU_SILICON_REV_B1, 131, 16384}, /* (B1/D2-4) */
- {MPL_PROD_KEY(1, 20), MPU_SILICON_REV_B1, 131, 16384}, /* (B1/D2-5) */
- {MPL_PROD_KEY(1, 28), MPU_SILICON_REV_B1, 131, 16384}, /* (B1/D4) */
- {MPL_PROD_KEY(1, 1), MPU_SILICON_REV_B1, 131, 16384}, /* (B1/E1-1) */
- {MPL_PROD_KEY(1, 2), MPU_SILICON_REV_B1, 131, 16384}, /* (B1/E1-2) */
- {MPL_PROD_KEY(1, 3), MPU_SILICON_REV_B1, 131, 16384}, /* (B1/E1-3) */
- {MPL_PROD_KEY(1, 4), MPU_SILICON_REV_B1, 131, 16384}, /* (B1/E1-4) */
- {MPL_PROD_KEY(1, 5), MPU_SILICON_REV_B1, 131, 16384}, /* (B1/E1-5) */
- {MPL_PROD_KEY(1, 6), MPU_SILICON_REV_B1, 131, 16384}, /* (B1/E1-6) */
- /* prod_ver = 2 */
- {MPL_PROD_KEY(2, 7), MPU_SILICON_REV_B1, 131, 16384}, /* (B2/E1-1) */
- {MPL_PROD_KEY(2, 8), MPU_SILICON_REV_B1, 131, 16384}, /* (B2/E1-2) */
- {MPL_PROD_KEY(2, 9), MPU_SILICON_REV_B1, 131, 16384}, /* (B2/E1-3) */
- {MPL_PROD_KEY(2, 10), MPU_SILICON_REV_B1, 131, 16384}, /* (B2/E1-4) */
- {MPL_PROD_KEY(2, 11), MPU_SILICON_REV_B1, 131, 16384}, /* (B2/E1-5) */
- {MPL_PROD_KEY(2, 12), MPU_SILICON_REV_B1, 131, 16384}, /* (B2/E1-6) */
- {MPL_PROD_KEY(2, 29), MPU_SILICON_REV_B1, 131, 16384}, /* (B2/D4) */
- /* prod_ver = 3 */
- {MPL_PROD_KEY(3, 30), MPU_SILICON_REV_B1, 131, 16384}, /* (B2/E2) */
- /* prod_ver = 4 */
- {MPL_PROD_KEY(4, 31), MPU_SILICON_REV_B1, 131, 8192}, /* (B2/F1) */
- {MPL_PROD_KEY(4, 1), MPU_SILICON_REV_B1, 131, 8192}, /* (B3/F1) */
- {MPL_PROD_KEY(4, 3), MPU_SILICON_REV_B1, 131, 8192}, /* (B4/F1) */
- /* prod_ver = 5 */
- {MPL_PROD_KEY(6, 19), MPU_SILICON_REV_B1, 131, 16384}, /* (B5/E2) */
- /* prod_ver = 7 */
- {MPL_PROD_KEY(7, 19), MPU_SILICON_REV_B1, 131, 16384}, /* (B5/E2) */
- /* prod_ver = 8 */
- {MPL_PROD_KEY(8, 19), MPU_SILICON_REV_B1, 131, 16384}, /* (B5/E2) */
- {MPL_PROD_KEY(40, 19), MPU_SILICON_REV_B1, 131, 16384} /* (B5/E2) */
-};
-
-/**
- * @internal
- * @brief Inverse lookup of the index of an MPL product key .
- * @param key
- * the MPL product indentifier also referred to as 'key'.
- * @return the index position of the key in the array, -1 if not found.
- */
-short index_of_key(unsigned short key)
-{
- int i;
- pr_info("%s", __func__);
- for (i = 0; i < NUM_OF_PROD_REVS; i++)
- if (prod_rev_map[i].mpl_product_key == key)
- return (short)i;
- return -1;
-}
-
-/**
- * @internal
- * @brief Get the product revision and version for MPU6050 and
- * extract all per-part specific information.
- * The product version number is read from the PRODUCT_ID register in
- * user space register map.
- * The product revision number is in read from OTP bank 0, ADDR6[7:2].
- * These 2 numbers, combined, provide an unique key to be used to
- * retrieve some per-device information such as the silicon revision
- * and the gyro and accel sensitivity trim values.
- *
- * @param mldl_cfg
- * a pointer to the mldl config data structure.
- * @param mlsl_handle
- * an file handle to the serial communication device the
- * device is connected to.
- *
- * @return 0 on success, a non-zero error code otherwise.
- */
-static int inv_get_silicon_rev_mpu6050(
- struct mldl_cfg *mldl_cfg, void *mlsl_handle)
-{
- int result;
- unsigned char prod_ver = 0x00, prod_rev = 0x00;
- unsigned char bank =
- (BIT_PRFTCH_EN | BIT_CFG_USER_BANK | MPU_MEM_OTP_BANK_0);
- unsigned short memAddr = ((bank << 8) | 0x06);
- unsigned short key;
- short index;
- struct mpu_chip_info *mpu_chip_info = mldl_cfg->mpu_chip_info;
-
- result = inv_serial_read(mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_PRODUCT_ID, 1, &prod_ver);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_serial_read_mem(mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- memAddr, 1, &prod_rev);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- prod_rev >>= 2;
-
- /* clean the prefetch and cfg user bank bits */
- result = inv_serial_single_write(
- mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_BANK_SEL, 0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- key = MPL_PROD_KEY(prod_ver, prod_rev);
- if (key == 0) {
- MPL_LOGE("Product id read as 0 "
- "indicates device is either "
- "incompatible or an MPU3050\n");
- return INV_ERROR_INVALID_MODULE;
- }
- pr_info("%s key=%d", __func__, key);
- index = index_of_key(key);
- if (index == -1 || index >= NUM_OF_PROD_REVS) {
- MPL_LOGE("Unsupported product key %d in MPL\n", key);
- return INV_ERROR_INVALID_MODULE;
- }
- /* check MPL is compiled for this device */
- if (prod_rev_map[index].silicon_rev != MPU_SILICON_REV_B1) {
- MPL_LOGE("MPL compiled for MPU6050B1 support "
- "but device is not MPU6050B1 (%d)\n", key);
- return INV_ERROR_INVALID_MODULE;
- }
-
- mpu_chip_info->product_id = prod_ver;
- mpu_chip_info->product_revision = prod_rev;
- mpu_chip_info->silicon_revision = prod_rev_map[index].silicon_rev;
- mpu_chip_info->gyro_sens_trim = prod_rev_map[index].gyro_trim;
- mpu_chip_info->accel_sens_trim = prod_rev_map[index].accel_trim;
-
- return result;
-}
-#define inv_get_silicon_rev inv_get_silicon_rev_mpu6050
-
-
-/**
- * @brief Enable / Disable the use MPU's secondary I2C interface level
- * shifters.
- * When enabled the secondary I2C interface to which the external
- * device is connected runs at VDD voltage (main supply).
- * When disabled the 2nd interface runs at VDDIO voltage.
- * See the device specification for more details.
- *
- * @note using this API may produce unpredictable results, depending on how
- * the MPU and slave device are setup on the target platform.
- * Use of this API should entirely be restricted to system
- * integrators. Once the correct value is found, there should be no
- * need to change the level shifter at runtime.
- *
- * @pre Must be called after inv_serial_start().
- * @note Typically called before inv_dmp_open().
- *
- * @param[in] enable:
- * 0 to run at VDDIO (default),
- * 1 to run at VDD.
- *
- * @return INV_SUCCESS if successfull, a non-zero error code otherwise.
- */
-static int inv_mpu_set_level_shifter_bit(struct mldl_cfg *mldl_cfg,
- void *mlsl_handle, unsigned char enable)
-{
- int result;
- unsigned char regval;
-
- result = inv_serial_read(mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_YG_OFFS_TC, 1, &regval);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- if (enable)
- regval |= BIT_I2C_MST_VDDIO;
-
- result = inv_serial_single_write(
- mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_YG_OFFS_TC, regval);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- return INV_SUCCESS;
-}
-
-
-/**
- * @internal
- * @brief MPU6050 B1 power management functions.
- * @param mldl_cfg
- * a pointer to the internal mldl_cfg data structure.
- * @param mlsl_handle
- * a file handle to the serial device used to communicate
- * with the MPU6050 B1 device.
- * @param reset
- * 1 to reset hardware.
- * @param sensors
- * Bitfield of sensors to leave on
- *
- * @return 0 on success, a non-zero error code on error.
- */
-static int mpu60xx_pwr_mgmt(struct mldl_cfg *mldl_cfg,
- void *mlsl_handle,
- unsigned int reset, unsigned long sensors)
-{
- unsigned char pwr_mgmt[2];
- unsigned char pwr_mgmt_prev[2];
- int result;
- int sleep = !(sensors & (INV_THREE_AXIS_GYRO | INV_THREE_AXIS_ACCEL
- | INV_DMP_PROCESSOR));
-
- if (reset) {
- MPL_LOGI("Reset MPU6050 B1\n");
- result = inv_serial_single_write(
- mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_PWR_MGMT_1, BIT_H_RESET);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- mldl_cfg->inv_mpu_state->status &= ~MPU_GYRO_IS_BYPASSED;
- msleep(20);
- }
-
- /* NOTE : reading both PWR_MGMT_1 and PWR_MGMT_2 for efficiency because
- they are accessible even when the device is powered off */
- result = inv_serial_read(mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_PWR_MGMT_1, 2, pwr_mgmt_prev);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- pwr_mgmt[0] = pwr_mgmt_prev[0];
- pwr_mgmt[1] = pwr_mgmt_prev[1];
-
- if (sleep) {
- mldl_cfg->inv_mpu_state->status |= MPU_DEVICE_IS_SUSPENDED;
- pwr_mgmt[0] |= BIT_SLEEP;
- } else {
- mldl_cfg->inv_mpu_state->status &= ~MPU_DEVICE_IS_SUSPENDED;
- pwr_mgmt[0] &= ~BIT_SLEEP;
- }
- if (pwr_mgmt[0] != pwr_mgmt_prev[0]) {
- result = inv_serial_single_write(
- mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_PWR_MGMT_1, pwr_mgmt[0]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- pwr_mgmt[1] &= ~(BIT_STBY_XG | BIT_STBY_YG | BIT_STBY_ZG);
- if (!(sensors & INV_X_GYRO))
- pwr_mgmt[1] |= BIT_STBY_XG;
- if (!(sensors & INV_Y_GYRO))
- pwr_mgmt[1] |= BIT_STBY_YG;
- if (!(sensors & INV_Z_GYRO))
- pwr_mgmt[1] |= BIT_STBY_ZG;
-
- if (pwr_mgmt[1] != pwr_mgmt_prev[1]) {
- result = inv_serial_single_write(
- mlsl_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_PWR_MGMT_2, pwr_mgmt[1]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- if ((pwr_mgmt[1] & (BIT_STBY_XG | BIT_STBY_YG | BIT_STBY_ZG)) ==
- (BIT_STBY_XG | BIT_STBY_YG | BIT_STBY_ZG)) {
- mldl_cfg->inv_mpu_state->status |= MPU_GYRO_IS_SUSPENDED;
- } else {
- mldl_cfg->inv_mpu_state->status &= ~MPU_GYRO_IS_SUSPENDED;
- }
-
- return INV_SUCCESS;
-}
-
-
-/**
- * @brief sets the clock source for the gyros.
- * @param mldl_cfg
- * a pointer to the struct mldl_cfg data structure.
- * @param gyro_handle
- * an handle to the serial device the gyro is assigned to.
- * @return ML_SUCCESS if successful, a non-zero error code otherwise.
- */
-static int mpu_set_clock_source(void *gyro_handle, struct mldl_cfg *mldl_cfg)
-{
- int result;
- unsigned char cur_clk_src;
- unsigned char reg;
-
- /* clock source selection */
- result = inv_serial_read(gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_PWR_MGM, 1, &reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- cur_clk_src = reg & BITS_CLKSEL;
- reg &= ~BITS_CLKSEL;
-
-
- result = inv_serial_single_write(
- gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_PWR_MGM, mldl_cfg->mpu_gyro_cfg->clk_src | reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* ERRATA:
- workaroud to switch from any MPU_CLK_SEL_PLLGYROx to
- MPU_CLK_SEL_INTERNAL and XGyro is powered up:
- 1) Select INT_OSC
- 2) PD XGyro
- 3) PU XGyro
- */
- if ((cur_clk_src == MPU_CLK_SEL_PLLGYROX
- || cur_clk_src == MPU_CLK_SEL_PLLGYROY
- || cur_clk_src == MPU_CLK_SEL_PLLGYROZ)
- && mldl_cfg->mpu_gyro_cfg->clk_src == MPU_CLK_SEL_INTERNAL
- && mldl_cfg->inv_mpu_cfg->requested_sensors & INV_X_GYRO) {
- unsigned char first_result = INV_SUCCESS;
- mldl_cfg->inv_mpu_cfg->requested_sensors &= ~INV_X_GYRO;
- result = mpu60xx_pwr_mgmt(
- mldl_cfg, gyro_handle,
- false, mldl_cfg->inv_mpu_cfg->requested_sensors);
- ERROR_CHECK_FIRST(first_result, result);
- mldl_cfg->inv_mpu_cfg->requested_sensors |= INV_X_GYRO;
- result = mpu60xx_pwr_mgmt(
- mldl_cfg, gyro_handle,
- false, mldl_cfg->inv_mpu_cfg->requested_sensors);
- ERROR_CHECK_FIRST(first_result, result);
- result = first_result;
- }
- return result;
-}
-
-/**
- * Configures the MPU I2C Master
- *
- * @mldl_cfg Handle to the configuration data
- * @gyro_handle handle to the gyro communictation interface
- * @slave Can be Null if turning off the slave
- * @slave_pdata Can be null if turning off the slave
- * @slave_id enum ext_slave_type to determine which index to use
- *
- *
- * This fucntion configures the slaves by:
- * 1) Setting up the read
- * a) Read Register
- * b) Read Length
- * 2) Set up the data trigger (MPU6050 only)
- * a) Set trigger write register
- * b) Set Trigger write value
- * 3) Set up the divider (MPU6050 only)
- * 4) Set the slave bypass mode depending on slave
- *
- * returns INV_SUCCESS or non-zero error code
- */
-
-static int mpu_set_slave_mpu60xx(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *slave_pdata,
- int slave_id)
-{
- int result;
- unsigned char reg;
- /* Slave values */
- unsigned char slave_reg;
- unsigned char slave_len;
- unsigned char slave_endian;
- unsigned char slave_address;
- /* Which MPU6050 registers to use */
- unsigned char addr_reg;
- unsigned char reg_reg;
- unsigned char ctrl_reg;
- /* Which MPU6050 registers to use for the trigger */
- unsigned char addr_trig_reg;
- unsigned char reg_trig_reg;
- unsigned char ctrl_trig_reg;
-
- unsigned char bits_slave_delay = 0;
- /* Divide down rate for the Slave, from the mpu rate */
- unsigned char d0_trig_reg;
- unsigned char delay_ctrl_orig;
- unsigned char delay_ctrl;
- long divider;
-
- if (NULL == slave || NULL == slave_pdata) {
- slave_reg = 0;
- slave_len = 0;
- slave_endian = 0;
- slave_address = 0;
- } else {
- slave_reg = slave->read_reg;
- slave_len = slave->read_len;
- slave_endian = slave->endian;
- slave_address = slave_pdata->address;
- slave_address |= BIT_I2C_READ;
- }
-
- switch (slave_id) {
- case EXT_SLAVE_TYPE_ACCEL:
- addr_reg = MPUREG_I2C_SLV1_ADDR;
- reg_reg = MPUREG_I2C_SLV1_REG;
- ctrl_reg = MPUREG_I2C_SLV1_CTRL;
- addr_trig_reg = 0;
- reg_trig_reg = 0;
- ctrl_trig_reg = 0;
- bits_slave_delay = BIT_SLV1_DLY_EN;
- break;
- case EXT_SLAVE_TYPE_COMPASS:
- addr_reg = MPUREG_I2C_SLV0_ADDR;
- reg_reg = MPUREG_I2C_SLV0_REG;
- ctrl_reg = MPUREG_I2C_SLV0_CTRL;
- addr_trig_reg = MPUREG_I2C_SLV2_ADDR;
- reg_trig_reg = MPUREG_I2C_SLV2_REG;
- ctrl_trig_reg = MPUREG_I2C_SLV2_CTRL;
- d0_trig_reg = MPUREG_I2C_SLV2_DO;
- bits_slave_delay = BIT_SLV2_DLY_EN | BIT_SLV0_DLY_EN;
- break;
- case EXT_SLAVE_TYPE_PRESSURE:
- addr_reg = MPUREG_I2C_SLV3_ADDR;
- reg_reg = MPUREG_I2C_SLV3_REG;
- ctrl_reg = MPUREG_I2C_SLV3_CTRL;
- addr_trig_reg = MPUREG_I2C_SLV4_ADDR;
- reg_trig_reg = MPUREG_I2C_SLV4_REG;
- ctrl_trig_reg = MPUREG_I2C_SLV4_CTRL;
- bits_slave_delay = BIT_SLV4_DLY_EN | BIT_SLV3_DLY_EN;
- break;
- default:
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- };
-
- /* return if this slave has already been set */
- if ((slave_address &&
- ((mldl_cfg->inv_mpu_state->i2c_slaves_enabled & bits_slave_delay)
- == bits_slave_delay)) ||
- (!slave_address &&
- (mldl_cfg->inv_mpu_state->i2c_slaves_enabled & bits_slave_delay) ==
- 0))
- return 0;
-
- result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle, true);
-
- /* Address */
- result = inv_serial_single_write(gyro_handle,
- mldl_cfg->mpu_chip_info->addr,
- addr_reg, slave_address);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- /* Register */
- result = inv_serial_single_write(gyro_handle,
- mldl_cfg->mpu_chip_info->addr,
- reg_reg, slave_reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Length, byte swapping, grouping & enable */
- if (slave_len > BITS_SLV_LENG) {
- MPL_LOGW("Limiting slave burst read length to "
- "the allowed maximum (15B, req. %d)\n", slave_len);
- slave_len = BITS_SLV_LENG;
- return INV_ERROR_INVALID_CONFIGURATION;
- }
- reg = slave_len;
- if (slave_endian == EXT_SLAVE_LITTLE_ENDIAN) {
- reg |= BIT_SLV_BYTE_SW;
- if (slave_reg & 1)
- reg |= BIT_SLV_GRP;
- }
- if (slave_address)
- reg |= BIT_SLV_ENABLE;
-
- result = inv_serial_single_write(gyro_handle,
- mldl_cfg->mpu_chip_info->addr,
- ctrl_reg, reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Trigger */
- if (addr_trig_reg) {
- /* If slave address is 0 this clears the trigger */
- result = inv_serial_single_write(gyro_handle,
- mldl_cfg->mpu_chip_info->addr,
- addr_trig_reg,
- slave_address & ~BIT_I2C_READ);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- if (slave && slave->trigger && reg_trig_reg) {
- result = inv_serial_single_write(gyro_handle,
- mldl_cfg->mpu_chip_info->addr,
- reg_trig_reg,
- slave->trigger->reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(gyro_handle,
- mldl_cfg->mpu_chip_info->addr,
- ctrl_trig_reg,
- BIT_SLV_ENABLE | 0x01);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(gyro_handle,
- mldl_cfg->mpu_chip_info->addr,
- d0_trig_reg,
- slave->trigger->value);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- } else if (ctrl_trig_reg) {
- result = inv_serial_single_write(gyro_handle,
- mldl_cfg->mpu_chip_info->addr,
- ctrl_trig_reg, 0x00);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- /* Data rate */
- if (slave) {
- struct ext_slave_config config;
- long data;
- config.key = MPU_SLAVE_CONFIG_ODR_RESUME;
- config.len = sizeof(long);
- config.apply = false;
- config.data = &data;
- if (!(slave->get_config))
- return INV_ERROR_INVALID_CONFIGURATION;
-
- result = slave->get_config(NULL, slave, slave_pdata, &config);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- MPL_LOGI("Slave %d ODR: %ld Hz\n", slave_id, data / 1000);
- divider = ((1000 * inv_mpu_get_sampling_rate_hz(
- mldl_cfg->mpu_gyro_cfg))
- / data) - 1;
- } else {
- divider = 0;
- }
-
- result = inv_serial_read(gyro_handle,
- mldl_cfg->mpu_chip_info->addr,
- MPUREG_I2C_MST_DELAY_CTRL,
- 1, &delay_ctrl_orig);
- delay_ctrl = delay_ctrl_orig;
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- if (divider > 0 && divider <= MASK_I2C_MST_DLY) {
- result = inv_serial_read(gyro_handle,
- mldl_cfg->mpu_chip_info->addr,
- MPUREG_I2C_SLV4_CTRL, 1, &reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- if ((reg & MASK_I2C_MST_DLY) &&
- ((long)(reg & MASK_I2C_MST_DLY) !=
- (divider & MASK_I2C_MST_DLY))) {
- MPL_LOGW("Changing slave divider: %ld to %ld\n",
- (long)(reg & MASK_I2C_MST_DLY),
- (divider & MASK_I2C_MST_DLY));
-
- }
- reg |= (unsigned char)(divider & MASK_I2C_MST_DLY);
- result = inv_serial_single_write(gyro_handle,
- mldl_cfg->mpu_chip_info->addr,
- MPUREG_I2C_SLV4_CTRL,
- reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- delay_ctrl |= bits_slave_delay;
- } else {
- delay_ctrl &= ~(bits_slave_delay);
- }
- if (delay_ctrl != delay_ctrl_orig) {
- result = inv_serial_single_write(
- gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_I2C_MST_DELAY_CTRL,
- delay_ctrl);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- if (slave_address)
- mldl_cfg->inv_mpu_state->i2c_slaves_enabled |=
- bits_slave_delay;
- else
- mldl_cfg->inv_mpu_state->i2c_slaves_enabled &=
- ~bits_slave_delay;
-
- return result;
-}
-
-static int mpu_set_slave(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *slave_pdata,
- int slave_id)
-{
- return mpu_set_slave_mpu60xx(mldl_cfg, gyro_handle, slave,
- slave_pdata, slave_id);
-}
-/**
- * Check to see if the gyro was reset by testing a couple of registers known
- * to change on reset.
- *
- * @mldl_cfg mldl configuration structure
- * @gyro_handle handle used to communicate with the gyro
- *
- * @return INV_SUCCESS or non-zero error code
- */
-static int mpu_was_reset(struct mldl_cfg *mldl_cfg, void *gyro_handle)
-{
- int result = INV_SUCCESS;
- unsigned char reg;
-
- result = inv_serial_read(gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_DMP_CFG_2, 1, &reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- if (mldl_cfg->mpu_gyro_cfg->dmp_cfg2 != reg)
- return true;
-
- if (0 != mldl_cfg->mpu_gyro_cfg->dmp_cfg1)
- return false;
-
- /* Inconclusive assume it was reset */
- return true;
-}
-
-
-int inv_mpu_set_firmware(struct mldl_cfg *mldl_cfg, void *mlsl_handle,
- const unsigned char *data, int size)
-{
- int bank, offset, write_size;
- int result;
- unsigned char read[MPU_MEM_BANK_SIZE];
-
- if (mldl_cfg->inv_mpu_state->status & MPU_DEVICE_IS_SUSPENDED) {
-#if INV_CACHE_DMP == 1
- memcpy(mldl_cfg->mpu_ram->ram, data, size);
- return INV_SUCCESS;
-#else
- LOG_RESULT_LOCATION(INV_ERROR_MEMORY_SET);
- return INV_ERROR_MEMORY_SET;
-#endif
- }
-
- if (!(mldl_cfg->inv_mpu_state->status & MPU_DMP_IS_SUSPENDED)) {
- LOG_RESULT_LOCATION(INV_ERROR_MEMORY_SET);
- return INV_ERROR_MEMORY_SET;
- }
- /* Write and verify memory */
- for (bank = 0; size > 0; bank++,
- size -= write_size,
- data += write_size) {
- if (size > MPU_MEM_BANK_SIZE)
- write_size = MPU_MEM_BANK_SIZE;
- else
- write_size = size;
-
- result = inv_serial_write_mem(mlsl_handle,
- mldl_cfg->mpu_chip_info->addr,
- ((bank << 8) | 0x00),
- write_size,
- data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- MPL_LOGE("Write mem error in bank %d\n", bank);
- return result;
- }
-#if 0
- result = inv_serial_read_mem(mlsl_handle,
- mldl_cfg->mpu_chip_info->addr,
- ((bank << 8) | 0x00),
- write_size,
- read);
- if (result) {
- LOG_RESULT_LOCATION(result);
- MPL_LOGE("Read mem error in bank %d\n", bank);
- return result;
- }
-
-#define ML_SKIP_CHECK 38
- for (offset = 0; offset < write_size; offset++) {
- /* skip the register memory locations */
- if (bank == 0 && offset < ML_SKIP_CHECK)
- continue;
- if (data[offset] != read[offset]) {
- result = INV_ERROR_SERIAL_WRITE;
- break;
- }
- }
-#endif
- if (result != INV_SUCCESS) {
- LOG_RESULT_LOCATION(result);
- MPL_LOGE("Read data mismatch at bank %d, offset %d\n",
- bank, offset);
- return result;
- }
- }
- return INV_SUCCESS;
-}
-
-static int gyro_resume(struct mldl_cfg *mldl_cfg, void *gyro_handle,
- unsigned long sensors)
-{
- int result;
- int ii;
- unsigned char reg;
- unsigned char regs[7];
-
- /* Wake up the part */
- result = mpu60xx_pwr_mgmt(mldl_cfg, gyro_handle, false, sensors);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Always set the INT_ENABLE and DIVIDER as the Accel Only mode for 6050
- can set these too */
- result = inv_serial_single_write(
- gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_INT_ENABLE, (mldl_cfg->mpu_gyro_cfg->int_config));
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(
- gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_SMPLRT_DIV, mldl_cfg->mpu_gyro_cfg->divider);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- if (!(mldl_cfg->inv_mpu_state->status & MPU_GYRO_NEEDS_CONFIG) &&
- !mpu_was_reset(mldl_cfg, gyro_handle)) {
- return INV_SUCCESS;
- }
-
- /* Configure the MPU */
- result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle, 1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = mpu_set_clock_source(gyro_handle, mldl_cfg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- reg = MPUREG_GYRO_CONFIG_VALUE(0, 0, 0,
- mldl_cfg->mpu_gyro_cfg->full_scale);
- result = inv_serial_single_write(
- gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_GYRO_CONFIG, reg);
- reg = MPUREG_CONFIG_VALUE(mldl_cfg->mpu_gyro_cfg->ext_sync,
- mldl_cfg->mpu_gyro_cfg->lpf);
- result = inv_serial_single_write(
- gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_CONFIG, reg);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(
- gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_DMP_CFG_1, mldl_cfg->mpu_gyro_cfg->dmp_cfg1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(
- gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_DMP_CFG_2, mldl_cfg->mpu_gyro_cfg->dmp_cfg2);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Write and verify memory */
-#if INV_CACHE_DMP != 0
- inv_mpu_set_firmware(mldl_cfg, gyro_handle,
- mldl_cfg->mpu_ram->ram, mldl_cfg->mpu_ram->length);
-#endif
-
- result = inv_serial_single_write(
- gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_XG_OFFS_TC,
- ((mldl_cfg->mpu_offsets->tc[0] << 1) & BITS_XG_OFFS_TC));
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- regs[0] = ((mldl_cfg->mpu_offsets->tc[1] << 1) & BITS_YG_OFFS_TC);
- result = inv_serial_single_write(
- gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_YG_OFFS_TC, regs[0]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_single_write(
- gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_ZG_OFFS_TC,
- ((mldl_cfg->mpu_offsets->tc[2] << 1) & BITS_ZG_OFFS_TC));
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- regs[0] = MPUREG_X_OFFS_USRH;
- for (ii = 0; ii < ARRAY_SIZE(mldl_cfg->mpu_offsets->gyro); ii++) {
- regs[1 + ii * 2] =
- (unsigned char)(mldl_cfg->mpu_offsets->gyro[ii] >> 8)
- & 0xff;
- regs[1 + ii * 2 + 1] =
- (unsigned char)(mldl_cfg->mpu_offsets->gyro[ii] & 0xff);
- }
- result = inv_serial_write(gyro_handle, mldl_cfg->mpu_chip_info->addr,
- 7, regs);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Configure slaves */
- result = inv_mpu_set_level_shifter_bit(mldl_cfg, gyro_handle,
- mldl_cfg->pdata->level_shifter);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- mldl_cfg->inv_mpu_state->status &= ~MPU_GYRO_NEEDS_CONFIG;
-
- return result;
-}
-
-int gyro_config(void *mlsl_handle,
- struct mldl_cfg *mldl_cfg,
- struct ext_slave_config *data)
-{
- struct mpu_gyro_cfg *mpu_gyro_cfg = mldl_cfg->mpu_gyro_cfg;
- struct mpu_chip_info *mpu_chip_info = mldl_cfg->mpu_chip_info;
- struct mpu_offsets *mpu_offsets = mldl_cfg->mpu_offsets;
- int ii;
-
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_INT_CONFIG:
- mpu_gyro_cfg->int_config = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_EXT_SYNC:
- mpu_gyro_cfg->ext_sync = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_FULL_SCALE:
- mpu_gyro_cfg->full_scale = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_LPF:
- mpu_gyro_cfg->lpf = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_CLK_SRC:
- mpu_gyro_cfg->clk_src = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_DIVIDER:
- mpu_gyro_cfg->divider = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_DMP_ENABLE:
- mpu_gyro_cfg->dmp_enable = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_FIFO_ENABLE:
- mpu_gyro_cfg->fifo_enable = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_DMP_CFG1:
- mpu_gyro_cfg->dmp_cfg1 = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_DMP_CFG2:
- mpu_gyro_cfg->dmp_cfg2 = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_TC:
- for (ii = 0; ii < GYRO_NUM_AXES; ii++)
- mpu_offsets->tc[ii] = ((__u8 *)data->data)[ii];
- break;
- case MPU_SLAVE_GYRO:
- for (ii = 0; ii < GYRO_NUM_AXES; ii++)
- mpu_offsets->gyro[ii] = ((__u16 *)data->data)[ii];
- break;
- case MPU_SLAVE_ADDR:
- mpu_chip_info->addr = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_PRODUCT_REVISION:
- mpu_chip_info->product_revision = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_SILICON_REVISION:
- mpu_chip_info->silicon_revision = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_PRODUCT_ID:
- mpu_chip_info->product_id = *((__u8 *)data->data);
- break;
- case MPU_SLAVE_GYRO_SENS_TRIM:
- mpu_chip_info->gyro_sens_trim = *((__u16 *)data->data);
- break;
- case MPU_SLAVE_ACCEL_SENS_TRIM:
- mpu_chip_info->accel_sens_trim = *((__u16 *)data->data);
- break;
- case MPU_SLAVE_RAM:
- if (data->len != mldl_cfg->mpu_ram->length)
- return INV_ERROR_INVALID_PARAMETER;
-
- memcpy(mldl_cfg->mpu_ram->ram, data->data, data->len);
- break;
- default:
- LOG_RESULT_LOCATION(INV_ERROR_FEATURE_NOT_IMPLEMENTED);
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
- mldl_cfg->inv_mpu_state->status |= MPU_GYRO_NEEDS_CONFIG;
- return INV_SUCCESS;
-}
-
-int gyro_get_config(void *mlsl_handle,
- struct mldl_cfg *mldl_cfg,
- struct ext_slave_config *data)
-{
- struct mpu_gyro_cfg *mpu_gyro_cfg = mldl_cfg->mpu_gyro_cfg;
- struct mpu_chip_info *mpu_chip_info = mldl_cfg->mpu_chip_info;
- struct mpu_offsets *mpu_offsets = mldl_cfg->mpu_offsets;
- int ii;
-
- if (!data->data)
- return INV_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_INT_CONFIG:
- *((__u8 *)data->data) = mpu_gyro_cfg->int_config;
- break;
- case MPU_SLAVE_EXT_SYNC:
- *((__u8 *)data->data) = mpu_gyro_cfg->ext_sync;
- break;
- case MPU_SLAVE_FULL_SCALE:
- *((__u8 *)data->data) = mpu_gyro_cfg->full_scale;
- break;
- case MPU_SLAVE_LPF:
- *((__u8 *)data->data) = mpu_gyro_cfg->lpf;
- break;
- case MPU_SLAVE_CLK_SRC:
- *((__u8 *)data->data) = mpu_gyro_cfg->clk_src;
- break;
- case MPU_SLAVE_DIVIDER:
- *((__u8 *)data->data) = mpu_gyro_cfg->divider;
- break;
- case MPU_SLAVE_DMP_ENABLE:
- *((__u8 *)data->data) = mpu_gyro_cfg->dmp_enable;
- break;
- case MPU_SLAVE_FIFO_ENABLE:
- *((__u8 *)data->data) = mpu_gyro_cfg->fifo_enable;
- break;
- case MPU_SLAVE_DMP_CFG1:
- *((__u8 *)data->data) = mpu_gyro_cfg->dmp_cfg1;
- break;
- case MPU_SLAVE_DMP_CFG2:
- *((__u8 *)data->data) = mpu_gyro_cfg->dmp_cfg2;
- break;
- case MPU_SLAVE_TC:
- for (ii = 0; ii < GYRO_NUM_AXES; ii++)
- ((__u8 *)data->data)[ii] = mpu_offsets->tc[ii];
- break;
- case MPU_SLAVE_GYRO:
- for (ii = 0; ii < GYRO_NUM_AXES; ii++)
- ((__u16 *)data->data)[ii] = mpu_offsets->gyro[ii];
- break;
- case MPU_SLAVE_ADDR:
- *((__u8 *)data->data) = mpu_chip_info->addr;
- break;
- case MPU_SLAVE_PRODUCT_REVISION:
- *((__u8 *)data->data) = mpu_chip_info->product_revision;
- break;
- case MPU_SLAVE_SILICON_REVISION:
- *((__u8 *)data->data) = mpu_chip_info->silicon_revision;
- break;
- case MPU_SLAVE_PRODUCT_ID:
- *((__u8 *)data->data) = mpu_chip_info->product_id;
- break;
- case MPU_SLAVE_GYRO_SENS_TRIM:
- *((__u16 *)data->data) = mpu_chip_info->gyro_sens_trim;
- break;
- case MPU_SLAVE_ACCEL_SENS_TRIM:
- *((__u16 *)data->data) = mpu_chip_info->accel_sens_trim;
- break;
- case MPU_SLAVE_RAM:
- if (data->len != mldl_cfg->mpu_ram->length)
- return INV_ERROR_INVALID_PARAMETER;
-
- memcpy(data->data, mldl_cfg->mpu_ram->ram, data->len);
- break;
- default:
- LOG_RESULT_LOCATION(INV_ERROR_FEATURE_NOT_IMPLEMENTED);
- return INV_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return INV_SUCCESS;
-}
-
-
-/*******************************************************************************
- *******************************************************************************
- * Exported functions
- *******************************************************************************
- ******************************************************************************/
-
-/**
- * Initializes the pdata structure to defaults.
- *
- * Opens the device to read silicon revision, product id and whoami.
- *
- * @mldl_cfg
- * The internal device configuration data structure.
- * @mlsl_handle
- * The serial communication handle.
- *
- * @return INV_SUCCESS if silicon revision, product id and woami are supported
- * by this software.
- */
-int inv_mpu_open(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle,
- void *compass_handle, void *pressure_handle)
-{
- int result;
- void *slave_handle[EXT_SLAVE_NUM_TYPES];
- int ii;
-
- /* Default is Logic HIGH, pushpull, latch disabled, anyread to clear */
- ii = 0;
- mldl_cfg->inv_mpu_cfg->ignore_system_suspend = false;
- mldl_cfg->mpu_gyro_cfg->int_config = BIT_DMP_INT_EN;
- mldl_cfg->mpu_gyro_cfg->clk_src = MPU_CLK_SEL_PLLGYROZ;
- mldl_cfg->mpu_gyro_cfg->lpf = MPU_FILTER_42HZ;
- mldl_cfg->mpu_gyro_cfg->full_scale = MPU_FS_2000DPS;
- mldl_cfg->mpu_gyro_cfg->divider = 4;
- mldl_cfg->mpu_gyro_cfg->dmp_enable = 1;
- mldl_cfg->mpu_gyro_cfg->fifo_enable = 1;
- mldl_cfg->mpu_gyro_cfg->ext_sync = 0;
- mldl_cfg->mpu_gyro_cfg->dmp_cfg1 = 0;
- mldl_cfg->mpu_gyro_cfg->dmp_cfg2 = 0;
- mldl_cfg->inv_mpu_state->status =
- MPU_DMP_IS_SUSPENDED |
- MPU_GYRO_IS_SUSPENDED |
- MPU_ACCEL_IS_SUSPENDED |
- MPU_COMPASS_IS_SUSPENDED |
- MPU_PRESSURE_IS_SUSPENDED |
- MPU_DEVICE_IS_SUSPENDED;
- mldl_cfg->inv_mpu_state->i2c_slaves_enabled = 0;
-
- slave_handle[EXT_SLAVE_TYPE_GYROSCOPE] = gyro_handle;
- slave_handle[EXT_SLAVE_TYPE_ACCEL] = accel_handle;
- slave_handle[EXT_SLAVE_TYPE_COMPASS] = compass_handle;
- slave_handle[EXT_SLAVE_TYPE_PRESSURE] = pressure_handle;
-
- if (mldl_cfg->mpu_chip_info->addr == 0) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- }
-
- /*
- * Reset,
- * Take the DMP out of sleep, and
- * read the product_id, sillicon rev and whoami
- */
- mldl_cfg->inv_mpu_state->status &= ~MPU_GYRO_IS_BYPASSED;
- result = mpu60xx_pwr_mgmt(mldl_cfg, gyro_handle, true,
- INV_THREE_AXIS_GYRO);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- result = inv_get_silicon_rev(mldl_cfg, gyro_handle);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Get the factory temperature compensation offsets */
- result = inv_serial_read(gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_XG_OFFS_TC, 1,
- &mldl_cfg->mpu_offsets->tc[0]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_read(gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_YG_OFFS_TC, 1,
- &mldl_cfg->mpu_offsets->tc[1]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_serial_read(gyro_handle, mldl_cfg->mpu_chip_info->addr,
- MPUREG_ZG_OFFS_TC, 1,
- &mldl_cfg->mpu_offsets->tc[2]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Into bypass mode before sleeping and calling the slaves init */
- result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle, true);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = inv_mpu_set_level_shifter_bit(mldl_cfg, gyro_handle,
- mldl_cfg->pdata->level_shifter);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- for (ii = 0; ii < GYRO_NUM_AXES; ii++) {
- mldl_cfg->mpu_offsets->tc[ii] =
- (mldl_cfg->mpu_offsets->tc[ii] & BITS_XG_OFFS_TC) >> 1;
- }
-
-#if INV_CACHE_DMP != 0
- result = mpu60xx_pwr_mgmt(mldl_cfg, gyro_handle, false, 0);
-#endif
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
-
- return result;
-
-}
-
-/**
- * Close the mpu interface
- *
- * @mldl_cfg pointer to the configuration structure
- * @mlsl_handle pointer to the serial layer handle
- *
- * @return INV_SUCCESS or non-zero error code
- */
-int inv_mpu_close(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle)
-{
- return 0;
-}
-
-/**
- * @brief resume the MPU device and all the other sensor
- * devices from their low power state.
- *
- * @mldl_cfg
- * pointer to the configuration structure
- * @gyro_handle
- * the main file handle to the MPU device.
- * @accel_handle
- * an handle to the accelerometer device, if sitting
- * onto a separate bus. Can match mlsl_handle if
- * the accelerometer device operates on the same
- * primary bus of MPU.
- * @compass_handle
- * an handle to the compass device, if sitting
- * onto a separate bus. Can match mlsl_handle if
- * the compass device operates on the same
- * primary bus of MPU.
- * @pressure_handle
- * an handle to the pressure sensor device, if sitting
- * onto a separate bus. Can match mlsl_handle if
- * the pressure sensor device operates on the same
- * primary bus of MPU.
- * @resume_gyro
- * whether resuming the gyroscope device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @resume_accel
- * whether resuming the accelerometer device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @resume_compass
- * whether resuming the compass device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @resume_pressure
- * whether resuming the pressure sensor device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @return INV_SUCCESS or a non-zero error code.
- */
-int inv_mpu_resume(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle,
- unsigned long sensors)
-{
- int result = INV_SUCCESS;
- int ii;
- bool resume_slave[EXT_SLAVE_NUM_TYPES];
- bool resume_dmp = sensors & INV_DMP_PROCESSOR;
- void *slave_handle[EXT_SLAVE_NUM_TYPES];
- resume_slave[EXT_SLAVE_TYPE_GYROSCOPE] =
- (sensors & (INV_X_GYRO | INV_Y_GYRO | INV_Z_GYRO));
- resume_slave[EXT_SLAVE_TYPE_ACCEL] =
- sensors & INV_THREE_AXIS_ACCEL;
- resume_slave[EXT_SLAVE_TYPE_COMPASS] =
- sensors & INV_THREE_AXIS_COMPASS;
- resume_slave[EXT_SLAVE_TYPE_PRESSURE] =
- sensors & INV_THREE_AXIS_PRESSURE;
-
- slave_handle[EXT_SLAVE_TYPE_GYROSCOPE] = gyro_handle;
- slave_handle[EXT_SLAVE_TYPE_ACCEL] = accel_handle;
- slave_handle[EXT_SLAVE_TYPE_COMPASS] = compass_handle;
- slave_handle[EXT_SLAVE_TYPE_PRESSURE] = pressure_handle;
-
- mldl_print_cfg(mldl_cfg);
-
- /* Skip the Gyro since slave[EXT_SLAVE_TYPE_GYROSCOPE] is NULL */
- for (ii = EXT_SLAVE_TYPE_ACCEL; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (resume_slave[ii] &&
- ((!mldl_cfg->slave[ii]) ||
- (!mldl_cfg->slave[ii]->resume))) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- }
- }
-
- if ((resume_slave[EXT_SLAVE_TYPE_GYROSCOPE] || resume_dmp)
- && ((mldl_cfg->inv_mpu_state->status & MPU_GYRO_IS_SUSPENDED) ||
- (mldl_cfg->inv_mpu_state->status & MPU_GYRO_NEEDS_CONFIG))) {
- result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle, 1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = dmp_stop(mldl_cfg, gyro_handle);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = gyro_resume(mldl_cfg, gyro_handle, sensors);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!mldl_cfg->slave[ii] ||
- !mldl_cfg->pdata_slave[ii] ||
- !resume_slave[ii] ||
- !(mldl_cfg->inv_mpu_state->status & (1 << ii)))
- continue;
-
- if (EXT_SLAVE_BUS_SECONDARY ==
- mldl_cfg->pdata_slave[ii]->bus) {
- result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle,
- true);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- result = mldl_cfg->slave[ii]->resume(slave_handle[ii],
- mldl_cfg->slave[ii],
- mldl_cfg->pdata_slave[ii]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- mldl_cfg->inv_mpu_state->status &= ~(1 << ii);
- }
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (resume_dmp &&
- !(mldl_cfg->inv_mpu_state->status & (1 << ii)) &&
- mldl_cfg->pdata_slave[ii] &&
- EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata_slave[ii]->bus) {
- result = mpu_set_slave(mldl_cfg,
- gyro_handle,
- mldl_cfg->slave[ii],
- mldl_cfg->pdata_slave[ii],
- mldl_cfg->slave[ii]->type);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- }
- /* Turn on the master i2c iterface if necessary */
- if (resume_dmp) {
- result = mpu_set_i2c_bypass(
- mldl_cfg, gyro_handle,
- !(mldl_cfg->inv_mpu_state->i2c_slaves_enabled));
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* Now start */
- result = dmp_start(mldl_cfg, gyro_handle);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- mldl_cfg->inv_mpu_cfg->requested_sensors = sensors;
-
- return result;
-}
-
-/**
- * @brief suspend the MPU device and all the other sensor
- * devices into their low power state.
- * @mldl_cfg
- * a pointer to the struct mldl_cfg internal data
- * structure.
- * @gyro_handle
- * the main file handle to the MPU device.
- * @accel_handle
- * an handle to the accelerometer device, if sitting
- * onto a separate bus. Can match gyro_handle if
- * the accelerometer device operates on the same
- * primary bus of MPU.
- * @compass_handle
- * an handle to the compass device, if sitting
- * onto a separate bus. Can match gyro_handle if
- * the compass device operates on the same
- * primary bus of MPU.
- * @pressure_handle
- * an handle to the pressure sensor device, if sitting
- * onto a separate bus. Can match gyro_handle if
- * the pressure sensor device operates on the same
- * primary bus of MPU.
- * @accel
- * whether suspending the accelerometer device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @compass
- * whether suspending the compass device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @pressure
- * whether suspending the pressure sensor device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @return INV_SUCCESS or a non-zero error code.
- */
-int inv_mpu_suspend(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle,
- unsigned long sensors)
-{
- int result = INV_SUCCESS;
- int ii;
- struct ext_slave_descr **slave = mldl_cfg->slave;
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- bool suspend_dmp = ((sensors & INV_DMP_PROCESSOR) == INV_DMP_PROCESSOR);
- bool suspend_slave[EXT_SLAVE_NUM_TYPES];
- void *slave_handle[EXT_SLAVE_NUM_TYPES];
-
- suspend_slave[EXT_SLAVE_TYPE_GYROSCOPE] =
- ((sensors & (INV_X_GYRO | INV_Y_GYRO | INV_Z_GYRO))
- == (INV_X_GYRO | INV_Y_GYRO | INV_Z_GYRO));
- suspend_slave[EXT_SLAVE_TYPE_ACCEL] =
- ((sensors & INV_THREE_AXIS_ACCEL) == INV_THREE_AXIS_ACCEL);
- suspend_slave[EXT_SLAVE_TYPE_COMPASS] =
- ((sensors & INV_THREE_AXIS_COMPASS) == INV_THREE_AXIS_COMPASS);
- suspend_slave[EXT_SLAVE_TYPE_PRESSURE] =
- ((sensors & INV_THREE_AXIS_PRESSURE) ==
- INV_THREE_AXIS_PRESSURE);
-
- slave_handle[EXT_SLAVE_TYPE_GYROSCOPE] = gyro_handle;
- slave_handle[EXT_SLAVE_TYPE_ACCEL] = accel_handle;
- slave_handle[EXT_SLAVE_TYPE_COMPASS] = compass_handle;
- slave_handle[EXT_SLAVE_TYPE_PRESSURE] = pressure_handle;
-
- if (suspend_dmp) {
- result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle, 1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- result = dmp_stop(mldl_cfg, gyro_handle);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- /* Gyro */
- if (suspend_slave[EXT_SLAVE_TYPE_GYROSCOPE]) {
- result = mpu60xx_pwr_mgmt(mldl_cfg, gyro_handle, false,
- ((~sensors) & INV_ALL_SENSORS));
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- bool is_suspended = mldl_cfg->inv_mpu_state->status & (1 << ii);
- if (!slave[ii] || !pdata_slave[ii] ||
- is_suspended || !suspend_slave[ii])
- continue;
-
- if (EXT_SLAVE_BUS_SECONDARY == pdata_slave[ii]->bus) {
- result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle, 1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- result = slave[ii]->suspend(slave_handle[ii],
- slave[ii],
- pdata_slave[ii]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- if (EXT_SLAVE_BUS_SECONDARY == pdata_slave[ii]->bus) {
- result = mpu_set_slave(mldl_cfg, gyro_handle,
- NULL, NULL,
- slave[ii]->type);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- mldl_cfg->inv_mpu_state->status |= (1 << ii);
- }
-
- /* Re-enable the i2c master if there are configured slaves and DMP */
- if (!suspend_dmp) {
- result = mpu_set_i2c_bypass(
- mldl_cfg, gyro_handle,
- !(mldl_cfg->inv_mpu_state->i2c_slaves_enabled));
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- mldl_cfg->inv_mpu_cfg->requested_sensors = (~sensors) & INV_ALL_SENSORS;
-
- return result;
-}
-
-int inv_mpu_slave_read(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *slave_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- int bypass_result;
- int remain_bypassed = true;
-
- if (NULL == slave || NULL == slave->read) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_CONFIGURATION);
- return INV_ERROR_INVALID_CONFIGURATION;
- }
-
- if ((EXT_SLAVE_BUS_SECONDARY == pdata->bus)
- && (!(mldl_cfg->inv_mpu_state->status & MPU_GYRO_IS_BYPASSED))) {
- remain_bypassed = false;
- result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle, 1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- result = slave->read(slave_handle, slave, pdata, data);
-
- if (!remain_bypassed) {
- bypass_result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle, 0);
- if (bypass_result) {
- LOG_RESULT_LOCATION(bypass_result);
- return bypass_result;
- }
- }
- return result;
-}
-
-int inv_mpu_slave_config(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *slave_handle,
- struct ext_slave_config *data,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- int remain_bypassed = true;
-
- if (NULL == slave || NULL == slave->config) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_CONFIGURATION);
- return INV_ERROR_INVALID_CONFIGURATION;
- }
-
- if (data->apply && (EXT_SLAVE_BUS_SECONDARY == pdata->bus)
- && (!(mldl_cfg->inv_mpu_state->status & MPU_GYRO_IS_BYPASSED))) {
- remain_bypassed = false;
- result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle, 1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- result = slave->config(slave_handle, slave, pdata, data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- if (!remain_bypassed) {
- result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle, 0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- return result;
-}
-
-int inv_mpu_get_slave_config(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *slave_handle,
- struct ext_slave_config *data,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- int remain_bypassed = true;
-
- if (NULL == slave || NULL == slave->get_config) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_CONFIGURATION);
- return INV_ERROR_INVALID_CONFIGURATION;
- }
-
- if (data->apply && (EXT_SLAVE_BUS_SECONDARY == pdata->bus)
- && (!(mldl_cfg->inv_mpu_state->status & MPU_GYRO_IS_BYPASSED))) {
- remain_bypassed = false;
- result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle, 1);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
-
- result = slave->get_config(slave_handle, slave, pdata, data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- if (!remain_bypassed) {
- result = mpu_set_i2c_bypass(mldl_cfg, gyro_handle, 0);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- }
- return result;
-}
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/mldl_cfg.h b/drivers/misc/inv_mpu/mldl_cfg.h
deleted file mode 100644
index 1d676a9..0000000
--- a/drivers/misc/inv_mpu/mldl_cfg.h
+++ /dev/null
@@ -1,381 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup MLDL
- *
- * @{
- * @file mldl_cfg.h
- * @brief The Motion Library Driver Layer Configuration header file.
- */
-
-#ifndef __MLDL_CFG_H__
-#define __MLDL_CFG_H__
-
-#include "mltypes.h"
-#include "mlsl.h"
-#include <linux/mpu_411.h>
-#include "mpu6050b1.h"
-
-#include "log.h"
-
-/*************************************************************************
- * Sensors Bit definitions
- *************************************************************************/
-
-#define INV_X_GYRO (0x0001)
-#define INV_Y_GYRO (0x0002)
-#define INV_Z_GYRO (0x0004)
-#define INV_DMP_PROCESSOR (0x0008)
-
-#define INV_X_ACCEL (0x0010)
-#define INV_Y_ACCEL (0x0020)
-#define INV_Z_ACCEL (0x0040)
-
-#define INV_X_COMPASS (0x0080)
-#define INV_Y_COMPASS (0x0100)
-#define INV_Z_COMPASS (0x0200)
-
-#define INV_X_PRESSURE (0x0300)
-#define INV_Y_PRESSURE (0x0800)
-#define INV_Z_PRESSURE (0x1000)
-
-#define INV_TEMPERATURE (0x2000)
-#define INV_TIME (0x4000)
-
-#define INV_THREE_AXIS_GYRO (0x000F)
-#define INV_THREE_AXIS_ACCEL (0x0070)
-#define INV_THREE_AXIS_COMPASS (0x0380)
-#define INV_THREE_AXIS_PRESSURE (0x1C00)
-
-#define INV_FIVE_AXIS (0x007B)
-#define INV_SIX_AXIS_GYRO_ACCEL (0x007F)
-#define INV_SIX_AXIS_ACCEL_COMPASS (0x03F0)
-#define INV_NINE_AXIS (0x03FF)
-#define INV_ALL_SENSORS (0x7FFF)
-
-#define MPL_PROD_KEY(ver, rev) (ver * 100 + rev)
-
-/* -------------------------------------------------------------------------- */
-struct mpu_ram {
- __u16 length;
- __u8 *ram;
-};
-
-struct mpu_gyro_cfg {
- __u8 int_config;
- __u8 ext_sync;
- __u8 full_scale;
- __u8 lpf;
- __u8 clk_src;
- __u8 divider;
- __u8 dmp_enable;
- __u8 fifo_enable;
- __u8 dmp_cfg1;
- __u8 dmp_cfg2;
-};
-
-/* Offset registers that can be calibrated */
-struct mpu_offsets {
- __u8 tc[GYRO_NUM_AXES];
- __u16 gyro[GYRO_NUM_AXES];
-};
-
-/* Chip related information that can be read and verified */
-struct mpu_chip_info {
- __u8 addr;
- __u8 product_revision;
- __u8 silicon_revision;
- __u8 product_id;
- __u16 gyro_sens_trim;
- /* Only used for MPU6050 */
- __u16 accel_sens_trim;
-};
-
-
-struct inv_mpu_cfg {
- __u32 requested_sensors;
- __u8 ignore_system_suspend;
-};
-
-#define MPU_GYRO_IS_SUSPENDED (0x01 << EXT_SLAVE_TYPE_GYROSCOPE)
-#define MPU_ACCEL_IS_SUSPENDED (0x01 << EXT_SLAVE_TYPE_ACCEL)
-#define MPU_COMPASS_IS_SUSPENDED (0x01 << EXT_SLAVE_TYPE_COMPASS)
-#define MPU_PRESSURE_IS_SUSPENDED (0x01 << EXT_SLAVE_TYPE_PRESSURE)
-#define MPU_GYRO_IS_BYPASSED (0x10)
-#define MPU_DMP_IS_SUSPENDED (0x20)
-#define MPU_GYRO_NEEDS_CONFIG (0x40)
-#define MPU_DEVICE_IS_SUSPENDED (0x80)
-
-/* Driver related state information */
-struct inv_mpu_state {
- __u8 status;
- /* 0-1 for 3050, bitfield of BIT_SLVx_DLY_EN, x = [0..4] */
- __u8 i2c_slaves_enabled;
-};
-
-/* Platform data for the MPU */
-struct mldl_cfg {
- struct mpu_ram *mpu_ram;
- struct mpu_gyro_cfg *mpu_gyro_cfg;
- struct mpu_offsets *mpu_offsets;
- struct mpu_chip_info *mpu_chip_info;
-
- /* MPU Related stored status and info */
- struct inv_mpu_cfg *inv_mpu_cfg;
- struct inv_mpu_state *inv_mpu_state;
-
- /* Slave related information */
- struct ext_slave_descr *slave[EXT_SLAVE_NUM_TYPES];
- /* Platform Data */
- struct mpu_platform_data *pdata;
- struct ext_slave_platform_data *pdata_slave[EXT_SLAVE_NUM_TYPES];
-};
-
-/* -------------------------------------------------------------------------- */
-
-int inv_mpu_open(struct mldl_cfg *mldl_cfg,
- void *mlsl_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle);
-int inv_mpu_close(struct mldl_cfg *mldl_cfg,
- void *mlsl_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle);
-int inv_mpu_resume(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle,
- unsigned long sensors);
-int inv_mpu_suspend(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle,
- unsigned long sensors);
-int inv_mpu_set_firmware(struct mldl_cfg *mldl_cfg,
- void *mlsl_handle,
- const unsigned char *data,
- int size);
-
-/* -------------------------------------------------------------------------- */
-/* Slave Read functions */
-int inv_mpu_slave_read(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *slave_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data);
-static inline int inv_mpu_read_accel(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle, unsigned char *data)
-{
- if (!mldl_cfg) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- }
-
- return inv_mpu_slave_read(
- mldl_cfg, gyro_handle, accel_handle,
- mldl_cfg->slave[EXT_SLAVE_TYPE_ACCEL],
- mldl_cfg->pdata_slave[EXT_SLAVE_TYPE_ACCEL],
- data);
-}
-
-static inline int inv_mpu_read_compass(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *compass_handle,
- unsigned char *data)
-{
- if (!mldl_cfg) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- }
-
- return inv_mpu_slave_read(
- mldl_cfg, gyro_handle, compass_handle,
- mldl_cfg->slave[EXT_SLAVE_TYPE_COMPASS],
- mldl_cfg->pdata_slave[EXT_SLAVE_TYPE_COMPASS],
- data);
-}
-
-static inline int inv_mpu_read_pressure(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *pressure_handle,
- unsigned char *data)
-{
- if (!mldl_cfg) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- }
-
- return inv_mpu_slave_read(
- mldl_cfg, gyro_handle, pressure_handle,
- mldl_cfg->slave[EXT_SLAVE_TYPE_PRESSURE],
- mldl_cfg->pdata_slave[EXT_SLAVE_TYPE_PRESSURE],
- data);
-}
-
-int gyro_config(void *mlsl_handle,
- struct mldl_cfg *mldl_cfg,
- struct ext_slave_config *data);
-
-/* Slave Config functions */
-int inv_mpu_slave_config(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *slave_handle,
- struct ext_slave_config *data,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata);
-static inline int inv_mpu_config_accel(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle,
- struct ext_slave_config *data)
-{
- if (!mldl_cfg) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- }
-
- return inv_mpu_slave_config(
- mldl_cfg, gyro_handle, accel_handle, data,
- mldl_cfg->slave[EXT_SLAVE_TYPE_ACCEL],
- mldl_cfg->pdata_slave[EXT_SLAVE_TYPE_ACCEL]);
-}
-
-static inline int inv_mpu_config_compass(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *compass_handle,
- struct ext_slave_config *data)
-{
- if (!mldl_cfg) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- }
-
- return inv_mpu_slave_config(
- mldl_cfg, gyro_handle, compass_handle, data,
- mldl_cfg->slave[EXT_SLAVE_TYPE_COMPASS],
- mldl_cfg->pdata_slave[EXT_SLAVE_TYPE_COMPASS]);
-}
-
-static inline int inv_mpu_config_pressure(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *pressure_handle,
- struct ext_slave_config *data)
-{
- if (!mldl_cfg) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- }
-
- return inv_mpu_slave_config(
- mldl_cfg, gyro_handle, pressure_handle, data,
- mldl_cfg->slave[EXT_SLAVE_TYPE_PRESSURE],
- mldl_cfg->pdata_slave[EXT_SLAVE_TYPE_PRESSURE]);
-}
-
-int gyro_get_config(void *mlsl_handle,
- struct mldl_cfg *mldl_cfg,
- struct ext_slave_config *data);
-
-/* Slave get config functions */
-int inv_mpu_get_slave_config(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *slave_handle,
- struct ext_slave_config *data,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata);
-
-static inline int inv_mpu_get_accel_config(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle,
- struct ext_slave_config *data)
-{
- if (!mldl_cfg) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- }
-
- return inv_mpu_get_slave_config(
- mldl_cfg, gyro_handle, accel_handle, data,
- mldl_cfg->slave[EXT_SLAVE_TYPE_ACCEL],
- mldl_cfg->pdata_slave[EXT_SLAVE_TYPE_ACCEL]);
-}
-
-static inline int inv_mpu_get_compass_config(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *compass_handle,
- struct ext_slave_config *data)
-{
- if (!mldl_cfg || !(mldl_cfg->pdata)) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- }
-
- return inv_mpu_get_slave_config(
- mldl_cfg, gyro_handle, compass_handle, data,
- mldl_cfg->slave[EXT_SLAVE_TYPE_COMPASS],
- mldl_cfg->pdata_slave[EXT_SLAVE_TYPE_COMPASS]);
-}
-
-static inline int inv_mpu_get_pressure_config(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *pressure_handle,
- struct ext_slave_config *data)
-{
- if (!mldl_cfg || !(mldl_cfg->pdata)) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- }
-
- return inv_mpu_get_slave_config(
- mldl_cfg, gyro_handle, pressure_handle, data,
- mldl_cfg->slave[EXT_SLAVE_TYPE_PRESSURE],
- mldl_cfg->pdata_slave[EXT_SLAVE_TYPE_PRESSURE]);
-}
-
-/* -------------------------------------------------------------------------- */
-
-static inline
-long inv_mpu_get_sampling_rate_hz(struct mpu_gyro_cfg *gyro_cfg)
-{
- if (((gyro_cfg->lpf) == 0) || ((gyro_cfg->lpf) == 7))
- return 8000L / (gyro_cfg->divider + 1);
- else
- return 1000L / (gyro_cfg->divider + 1);
-}
-
-static inline
-long inv_mpu_get_sampling_period_us(struct mpu_gyro_cfg *gyro_cfg)
-{
- if (((gyro_cfg->lpf) == 0) || ((gyro_cfg->lpf) == 7))
- return (long) (1000000L * (gyro_cfg->divider + 1)) / 8000L;
- else
- return (long) (1000000L * (gyro_cfg->divider + 1)) / 1000L;
-}
-
-#endif /* __MLDL_CFG_H__ */
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/mldl_print_cfg.c b/drivers/misc/inv_mpu/mldl_print_cfg.c
deleted file mode 100644
index 78d4090..0000000
--- a/drivers/misc/inv_mpu/mldl_print_cfg.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup MLDL
- *
- * @{
- * @file mldl_print_cfg.c
- * @brief The Motion Library Driver Layer.
- */
-
-#include <stddef.h>
-#include "mldl_cfg.h"
-#include "mlsl.h"
-#include <linux/mpu_411.h>
-
-#include "log.h"
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "mldl_print_cfg:"
-
-#undef MPL_LOG_NDEBUG
-#define MPL_LOG_NDEBUG 1
-
-void mldl_print_cfg(struct mldl_cfg *mldl_cfg)
-{
- struct mpu_gyro_cfg *mpu_gyro_cfg = mldl_cfg->mpu_gyro_cfg;
- struct mpu_offsets *mpu_offsets = mldl_cfg->mpu_offsets;
- struct mpu_chip_info *mpu_chip_info = mldl_cfg->mpu_chip_info;
- struct inv_mpu_cfg *inv_mpu_cfg = mldl_cfg->inv_mpu_cfg;
- struct inv_mpu_state *inv_mpu_state = mldl_cfg->inv_mpu_state;
- struct ext_slave_descr **slave = mldl_cfg->slave;
- struct mpu_platform_data *pdata = mldl_cfg->pdata;
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
-
- /* mpu_gyro_cfg */
- MPL_LOGV("int_config = %02x\n", mpu_gyro_cfg->int_config);
- MPL_LOGV("ext_sync = %02x\n", mpu_gyro_cfg->ext_sync);
- MPL_LOGV("full_scale = %02x\n", mpu_gyro_cfg->full_scale);
- MPL_LOGV("lpf = %02x\n", mpu_gyro_cfg->lpf);
- MPL_LOGV("clk_src = %02x\n", mpu_gyro_cfg->clk_src);
- MPL_LOGV("divider = %02x\n", mpu_gyro_cfg->divider);
- MPL_LOGV("dmp_enable = %02x\n", mpu_gyro_cfg->dmp_enable);
- MPL_LOGV("fifo_enable = %02x\n", mpu_gyro_cfg->fifo_enable);
- MPL_LOGV("dmp_cfg1 = %02x\n", mpu_gyro_cfg->dmp_cfg1);
- MPL_LOGV("dmp_cfg2 = %02x\n", mpu_gyro_cfg->dmp_cfg2);
- /* mpu_offsets */
- MPL_LOGV("tc[0] = %02x\n", mpu_offsets->tc[0]);
- MPL_LOGV("tc[1] = %02x\n", mpu_offsets->tc[1]);
- MPL_LOGV("tc[2] = %02x\n", mpu_offsets->tc[2]);
- MPL_LOGV("gyro[0] = %04x\n", mpu_offsets->gyro[0]);
- MPL_LOGV("gyro[1] = %04x\n", mpu_offsets->gyro[1]);
- MPL_LOGV("gyro[2] = %04x\n", mpu_offsets->gyro[2]);
-
- /* mpu_chip_info */
- MPL_LOGV("addr = %02x\n", mldl_cfg->mpu_chip_info->addr);
-
- MPL_LOGV("silicon_revision = %02x\n", mpu_chip_info->silicon_revision);
- MPL_LOGV("product_revision = %02x\n", mpu_chip_info->product_revision);
- MPL_LOGV("product_id = %02x\n", mpu_chip_info->product_id);
- MPL_LOGV("gyro_sens_trim = %02x\n", mpu_chip_info->gyro_sens_trim);
- MPL_LOGV("accel_sens_trim = %02x\n", mpu_chip_info->accel_sens_trim);
-
- MPL_LOGV("requested_sensors = %04x\n", inv_mpu_cfg->requested_sensors);
- MPL_LOGV("ignore_system_suspend= %04x\n",
- inv_mpu_cfg->ignore_system_suspend);
- MPL_LOGV("status = %04x\n", inv_mpu_state->status);
- MPL_LOGV("i2c_slaves_enabled= %04x\n",
- inv_mpu_state->i2c_slaves_enabled);
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!slave[ii])
- continue;
- MPL_LOGV("SLAVE %d:\n", ii);
- MPL_LOGV(" suspend = %02x\n", (int)slave[ii]->suspend);
- MPL_LOGV(" resume = %02x\n", (int)slave[ii]->resume);
- MPL_LOGV(" read = %02x\n", (int)slave[ii]->read);
- MPL_LOGV(" type = %02x\n", slave[ii]->type);
- MPL_LOGV(" reg = %02x\n", slave[ii]->read_reg);
- MPL_LOGV(" len = %02x\n", slave[ii]->read_len);
- MPL_LOGV(" endian = %02x\n", slave[ii]->endian);
- MPL_LOGV(" range.mantissa= %02x\n",
- slave[ii]->range.mantissa);
- MPL_LOGV(" range.fraction= %02x\n",
- slave[ii]->range.fraction);
- }
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- continue;
- MPL_LOGV("PDATA_SLAVE[%d]\n", ii);
- MPL_LOGV(" irq = %02x\n", pdata_slave[ii]->irq);
- MPL_LOGV(" adapt_num = %02x\n", pdata_slave[ii]->adapt_num);
- MPL_LOGV(" bus = %02x\n", pdata_slave[ii]->bus);
- MPL_LOGV(" address = %02x\n", pdata_slave[ii]->address);
- MPL_LOGV(" orientation=\n"
- " %2d %2d %2d\n"
- " %2d %2d %2d\n"
- " %2d %2d %2d\n",
- pdata_slave[ii]->orientation[0],
- pdata_slave[ii]->orientation[1],
- pdata_slave[ii]->orientation[2],
- pdata_slave[ii]->orientation[3],
- pdata_slave[ii]->orientation[4],
- pdata_slave[ii]->orientation[5],
- pdata_slave[ii]->orientation[6],
- pdata_slave[ii]->orientation[7],
- pdata_slave[ii]->orientation[8]);
- }
-
- MPL_LOGV("pdata->int_config = %02x\n", pdata->int_config);
- MPL_LOGV("pdata->level_shifter = %02x\n", pdata->level_shifter);
- MPL_LOGV("pdata->orientation =\n"
- " %2d %2d %2d\n"
- " %2d %2d %2d\n"
- " %2d %2d %2d\n",
- pdata->orientation[0], pdata->orientation[1],
- pdata->orientation[2], pdata->orientation[3],
- pdata->orientation[4], pdata->orientation[5],
- pdata->orientation[6], pdata->orientation[7],
- pdata->orientation[8]);
-}
diff --git a/drivers/misc/inv_mpu/mldl_print_cfg.h b/drivers/misc/inv_mpu/mldl_print_cfg.h
deleted file mode 100644
index 2e19114..0000000
--- a/drivers/misc/inv_mpu/mldl_print_cfg.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup
- * @brief
- *
- * @{
- * @file mldl_print_cfg.h
- * @brief
- *
- *
- */
-#ifndef __MLDL_PRINT_CFG__
-#define __MLDL_PRINT_CFG__
-
-#include "mldl_cfg.h"
-
-
-void mldl_print_cfg(struct mldl_cfg *mldl_cfg);
-
-#endif /* __MLDL_PRINT_CFG__ */
diff --git a/drivers/misc/inv_mpu/mlsl-kernel.c b/drivers/misc/inv_mpu/mlsl-kernel.c
deleted file mode 100644
index f1c228f..0000000
--- a/drivers/misc/inv_mpu/mlsl-kernel.c
+++ /dev/null
@@ -1,420 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-#include "mlsl.h"
-#include <linux/i2c.h>
-#include "log.h"
-#include "mpu6050b1.h"
-
-static int inv_i2c_write(struct i2c_adapter *i2c_adap,
- unsigned char address,
- unsigned int len, unsigned char const *data)
-{
- struct i2c_msg msgs[1];
- int res;
-
- if (!data || !i2c_adap) {
- LOG_RESULT_LOCATION(-EINVAL);
- return -EINVAL;
- }
-
- msgs[0].addr = address;
- msgs[0].flags = 0; /* write */
- msgs[0].buf = (unsigned char *)data;
- msgs[0].len = len;
-
- res = i2c_transfer(i2c_adap, msgs, 1);
- if (res < 1) {
- if (res == 0)
- res = -EIO;
- LOG_RESULT_LOCATION(res);
- return res;
- } else
- return 0;
-}
-
-static int inv_i2c_write_register(struct i2c_adapter *i2c_adap,
- unsigned char address,
- unsigned char reg, unsigned char value)
-{
- unsigned char data[2];
-
- data[0] = reg;
- data[1] = value;
- return inv_i2c_write(i2c_adap, address, 2, data);
-}
-
-static int inv_i2c_read(struct i2c_adapter *i2c_adap,
- unsigned char address, unsigned char reg,
- unsigned int len, unsigned char *data)
-{
- struct i2c_msg msgs[2];
- int res;
-
- if (!data || !i2c_adap) {
- LOG_RESULT_LOCATION(-EINVAL);
- return -EINVAL;
- }
-
- msgs[0].addr = address;
- msgs[0].flags = 0; /* write */
- msgs[0].buf = &reg;
- msgs[0].len = 1;
-
- msgs[1].addr = address;
- msgs[1].flags = I2C_M_RD;
- msgs[1].buf = data;
- msgs[1].len = len;
-
- res = i2c_transfer(i2c_adap, msgs, 2);
- if (res < 2) {
- if (res >= 0)
- res = -EIO;
- LOG_RESULT_LOCATION(res);
- return res;
- } else
- return 0;
-}
-
-static int mpu_memory_read(struct i2c_adapter *i2c_adap,
- unsigned char mpu_addr,
- unsigned short mem_addr,
- unsigned int len, unsigned char *data)
-{
- unsigned char bank[2];
- unsigned char addr[2];
- unsigned char buf;
-
- struct i2c_msg msgs[4];
- int res;
-
- if (!data || !i2c_adap) {
- LOG_RESULT_LOCATION(-EINVAL);
- return -EINVAL;
- }
-
- bank[0] = MPUREG_BANK_SEL;
- bank[1] = mem_addr >> 8;
-
- addr[0] = MPUREG_MEM_START_ADDR;
- addr[1] = mem_addr & 0xFF;
-
- buf = MPUREG_MEM_R_W;
-
- /* write message */
- msgs[0].addr = mpu_addr;
- msgs[0].flags = 0;
- msgs[0].buf = bank;
- msgs[0].len = sizeof(bank);
-
- msgs[1].addr = mpu_addr;
- msgs[1].flags = 0;
- msgs[1].buf = addr;
- msgs[1].len = sizeof(addr);
-
- msgs[2].addr = mpu_addr;
- msgs[2].flags = 0;
- msgs[2].buf = &buf;
- msgs[2].len = 1;
-
- msgs[3].addr = mpu_addr;
- msgs[3].flags = I2C_M_RD;
- msgs[3].buf = data;
- msgs[3].len = len;
-
- res = i2c_transfer(i2c_adap, msgs, 4);
- if (res != 4) {
- if (res >= 0)
- res = -EIO;
- LOG_RESULT_LOCATION(res);
- return res;
- } else
- return 0;
-}
-
-static int mpu_memory_write(struct i2c_adapter *i2c_adap,
- unsigned char mpu_addr,
- unsigned short mem_addr,
- unsigned int len, unsigned char const *data)
-{
- unsigned char bank[2];
- unsigned char addr[2];
- unsigned char buf[513];
-
- struct i2c_msg msgs[3];
- int res;
-
- if (!data || !i2c_adap) {
- LOG_RESULT_LOCATION(-EINVAL);
- return -EINVAL;
- }
- if (len >= (sizeof(buf) - 1)) {
- LOG_RESULT_LOCATION(-ENOMEM);
- return -ENOMEM;
- }
-
- bank[0] = MPUREG_BANK_SEL;
- bank[1] = mem_addr >> 8;
-
- addr[0] = MPUREG_MEM_START_ADDR;
- addr[1] = mem_addr & 0xFF;
-
- buf[0] = MPUREG_MEM_R_W;
- memcpy(buf + 1, data, len);
-
- /* write message */
- msgs[0].addr = mpu_addr;
- msgs[0].flags = 0;
- msgs[0].buf = bank;
- msgs[0].len = sizeof(bank);
-
- msgs[1].addr = mpu_addr;
- msgs[1].flags = 0;
- msgs[1].buf = addr;
- msgs[1].len = sizeof(addr);
-
- msgs[2].addr = mpu_addr;
- msgs[2].flags = 0;
- msgs[2].buf = (unsigned char *)buf;
- msgs[2].len = len + 1;
-
- res = i2c_transfer(i2c_adap, msgs, 3);
- if (res != 3) {
- if (res >= 0)
- res = -EIO;
- LOG_RESULT_LOCATION(res);
- return res;
- } else
- return 0;
-}
-
-int inv_serial_single_write(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned char register_addr,
- unsigned char data)
-{
- return inv_i2c_write_register((struct i2c_adapter *)sl_handle,
- slave_addr, register_addr, data);
-}
-EXPORT_SYMBOL(inv_serial_single_write);
-
-int inv_serial_write(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned short length,
- unsigned char const *data)
-{
- int result;
- const unsigned short data_length = length - 1;
- const unsigned char start_reg_addr = data[0];
- unsigned char i2c_write[SERIAL_MAX_TRANSFER_SIZE + 1];
- unsigned short bytes_written = 0;
-
- while (bytes_written < data_length) {
- unsigned short this_len = min(SERIAL_MAX_TRANSFER_SIZE,
- data_length - bytes_written);
- if (bytes_written == 0) {
- result = inv_i2c_write((struct i2c_adapter *)
- sl_handle, slave_addr,
- 1 + this_len, data);
- } else {
- /* manually increment register addr between chunks */
- i2c_write[0] = start_reg_addr + bytes_written;
- memcpy(&i2c_write[1], &data[1 + bytes_written],
- this_len);
- result = inv_i2c_write((struct i2c_adapter *)
- sl_handle, slave_addr,
- 1 + this_len, i2c_write);
- }
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- bytes_written += this_len;
- }
- return 0;
-}
-EXPORT_SYMBOL(inv_serial_write);
-
-int inv_serial_read(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned char register_addr,
- unsigned short length,
- unsigned char *data)
-{
- int result;
- unsigned short bytes_read = 0;
-
- if ((slave_addr & 0x7E) == DEFAULT_MPU_SLAVEADDR
- && (register_addr == MPUREG_FIFO_R_W ||
- register_addr == MPUREG_MEM_R_W)) {
- LOG_RESULT_LOCATION(INV_ERROR_INVALID_PARAMETER);
- return INV_ERROR_INVALID_PARAMETER;
- }
-
- while (bytes_read < length) {
- unsigned short this_len =
- min(SERIAL_MAX_TRANSFER_SIZE, length - bytes_read);
- result = inv_i2c_read((struct i2c_adapter *)sl_handle,
- slave_addr, register_addr + bytes_read,
- this_len, &data[bytes_read]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- bytes_read += this_len;
- }
- return 0;
-}
-EXPORT_SYMBOL(inv_serial_read);
-
-int inv_serial_write_mem(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned short mem_addr,
- unsigned short length,
- unsigned char const *data)
-{
- int result;
- unsigned short bytes_written = 0;
-
- if ((mem_addr & 0xFF) + length > MPU_MEM_BANK_SIZE) {
- pr_err("memory read length (%d B) extends beyond its"
- " limits (%d) if started at location %d\n", length,
- MPU_MEM_BANK_SIZE, mem_addr & 0xFF);
- return INV_ERROR_INVALID_PARAMETER;
- }
- while (bytes_written < length) {
- unsigned short this_len =
- min(SERIAL_MAX_TRANSFER_SIZE, length - bytes_written);
- result = mpu_memory_write((struct i2c_adapter *)sl_handle,
- slave_addr, mem_addr + bytes_written,
- this_len, &data[bytes_written]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- bytes_written += this_len;
- }
- return 0;
-}
-EXPORT_SYMBOL(inv_serial_write_mem);
-
-int inv_serial_read_mem(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned short mem_addr,
- unsigned short length,
- unsigned char *data)
-{
- int result;
- unsigned short bytes_read = 0;
-
- if ((mem_addr & 0xFF) + length > MPU_MEM_BANK_SIZE) {
- printk
- ("memory read length (%d B) extends beyond its limits (%d) "
- "if started at location %d\n", length,
- MPU_MEM_BANK_SIZE, mem_addr & 0xFF);
- return INV_ERROR_INVALID_PARAMETER;
- }
- while (bytes_read < length) {
- unsigned short this_len =
- min(SERIAL_MAX_TRANSFER_SIZE, length - bytes_read);
- result =
- mpu_memory_read((struct i2c_adapter *)sl_handle,
- slave_addr, mem_addr + bytes_read,
- this_len, &data[bytes_read]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- bytes_read += this_len;
- }
- return 0;
-}
-EXPORT_SYMBOL(inv_serial_read_mem);
-
-int inv_serial_write_fifo(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned short length,
- unsigned char const *data)
-{
- int result;
- unsigned char i2c_write[SERIAL_MAX_TRANSFER_SIZE + 1];
- unsigned short bytes_written = 0;
-
- if (length > FIFO_HW_SIZE) {
- printk(KERN_ERR
- "maximum fifo write length is %d\n", FIFO_HW_SIZE);
- return INV_ERROR_INVALID_PARAMETER;
- }
- while (bytes_written < length) {
- unsigned short this_len =
- min(SERIAL_MAX_TRANSFER_SIZE, length - bytes_written);
- i2c_write[0] = MPUREG_FIFO_R_W;
- memcpy(&i2c_write[1], &data[bytes_written], this_len);
- result = inv_i2c_write((struct i2c_adapter *)sl_handle,
- slave_addr, this_len + 1, i2c_write);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- bytes_written += this_len;
- }
- return 0;
-}
-EXPORT_SYMBOL(inv_serial_write_fifo);
-
-int inv_serial_read_fifo(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned short length,
- unsigned char *data)
-{
- int result;
- unsigned short bytes_read = 0;
-
- if (length > FIFO_HW_SIZE) {
- printk(KERN_ERR
- "maximum fifo read length is %d\n", FIFO_HW_SIZE);
- return INV_ERROR_INVALID_PARAMETER;
- }
- while (bytes_read < length) {
- unsigned short this_len =
- min(SERIAL_MAX_TRANSFER_SIZE, length - bytes_read);
- result = inv_i2c_read((struct i2c_adapter *)sl_handle,
- slave_addr, MPUREG_FIFO_R_W, this_len,
- &data[bytes_read]);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- bytes_read += this_len;
- }
-
- return 0;
-}
-EXPORT_SYMBOL(inv_serial_read_fifo);
-
-/**
- * @}
- */
diff --git a/drivers/misc/inv_mpu/mlsl.h b/drivers/misc/inv_mpu/mlsl.h
deleted file mode 100644
index 3fc6be9..0000000
--- a/drivers/misc/inv_mpu/mlsl.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-#ifndef __MLSL_H__
-#define __MLSL_H__
-
-/**
- * @defgroup MLSL
- * @brief Motion Library - Serial Layer.
- * The Motion Library System Layer provides the Motion Library
- * with the communication interface to the hardware.
- *
- * The communication interface is assumed to support serial
- * transfers in burst of variable length up to
- * SERIAL_MAX_TRANSFER_SIZE.
- * The default value for SERIAL_MAX_TRANSFER_SIZE is 128 bytes.
- * Transfers of length greater than SERIAL_MAX_TRANSFER_SIZE, will
- * be subdivided in smaller transfers of length <=
- * SERIAL_MAX_TRANSFER_SIZE.
- * The SERIAL_MAX_TRANSFER_SIZE definition can be modified to
- * overcome any host processor transfer size limitation down to
- * 1 B, the minimum.
- * An higher value for SERIAL_MAX_TRANSFER_SIZE will favor
- * performance and efficiency while requiring higher resource usage
- * (mostly buffering). A smaller value will increase overhead and
- * decrease efficiency but allows to operate with more resource
- * constrained processor and master serial controllers.
- * The SERIAL_MAX_TRANSFER_SIZE definition can be found in the
- * mlsl.h header file and master serial controllers.
- * The SERIAL_MAX_TRANSFER_SIZE definition can be found in the
- * mlsl.h header file.
- *
- * @{
- * @file mlsl.h
- * @brief The Motion Library System Layer.
- *
- */
-
-#include "mltypes.h"
-#include <linux/mpu_411.h>
-
-
-/* acceleration data */
-struct acc_data {
- s16 x;
- s16 y;
- s16 z;
-};
-
-/*
- * NOTE : to properly support Yamaha compass reads,
- * the max transfer size should be at least 9 B.
- * Length in bytes, typically a power of 2 >= 2
- */
-#define SERIAL_MAX_TRANSFER_SIZE 128
-
-
-/**
- * inv_serial_single_write() - used to write a single byte of data.
- * @sl_handle pointer to the serial device used for the communication.
- * @slave_addr I2C slave address of device.
- * @register_addr Register address to write.
- * @data Single byte of data to write.
- *
- * It is called by the MPL to write a single byte of data to the MPU.
- *
- * returns INV_SUCCESS if successful, a non-zero error code otherwise.
- */
-int inv_serial_single_write(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned char register_addr,
- unsigned char data);
-
-/**
- * inv_serial_write() - used to write multiple bytes of data to registers.
- * @sl_handle a file handle to the serial device used for the communication.
- * @slave_addr I2C slave address of device.
- * @register_addr Register address to write.
- * @length Length of burst of data.
- * @data Pointer to block of data.
- *
- * returns INV_SUCCESS if successful, a non-zero error code otherwise.
- */
-int inv_serial_write(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned short length,
- unsigned char const *data);
-
-/**
- * inv_serial_read() - used to read multiple bytes of data from registers.
- * @sl_handle a file handle to the serial device used for the communication.
- * @slave_addr I2C slave address of device.
- * @register_addr Register address to read.
- * @length Length of burst of data.
- * @data Pointer to block of data.
- *
- * returns INV_SUCCESS == 0 if successful; a non-zero error code otherwise.
- */
-int inv_serial_read(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned char register_addr,
- unsigned short length,
- unsigned char *data);
-
-/**
- * inv_serial_read_mem() - used to read multiple bytes of data from the memory.
- * This should be sent by I2C or SPI.
- *
- * @sl_handle a file handle to the serial device used for the communication.
- * @slave_addr I2C slave address of device.
- * @mem_addr The location in the memory to read from.
- * @length Length of burst data.
- * @data Pointer to block of data.
- *
- * returns INV_SUCCESS == 0 if successful; a non-zero error code otherwise.
- */
-int inv_serial_read_mem(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned short mem_addr,
- unsigned short length,
- unsigned char *data);
-
-/**
- * inv_serial_write_mem() - used to write multiple bytes of data to the memory.
- * @sl_handle a file handle to the serial device used for the communication.
- * @slave_addr I2C slave address of device.
- * @mem_addr The location in the memory to write to.
- * @length Length of burst data.
- * @data Pointer to block of data.
- *
- * returns INV_SUCCESS == 0 if successful; a non-zero error code otherwise.
- */
-int inv_serial_write_mem(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned short mem_addr,
- unsigned short length,
- unsigned char const *data);
-
-/**
- * inv_serial_read_fifo() - used to read multiple bytes of data from the fifo.
- * @sl_handle a file handle to the serial device used for the communication.
- * @slave_addr I2C slave address of device.
- * @length Length of burst of data.
- * @data Pointer to block of data.
- *
- * returns INV_SUCCESS == 0 if successful; a non-zero error code otherwise.
- */
-int inv_serial_read_fifo(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned short length,
- unsigned char *data);
-
-/**
- * inv_serial_write_fifo() - used to write multiple bytes of data to the fifo.
- * @sl_handle a file handle to the serial device used for the communication.
- * @slave_addr I2C slave address of device.
- * @length Length of burst of data.
- * @data Pointer to block of data.
- *
- * returns INV_SUCCESS == 0 if successful; a non-zero error code otherwise.
- */
-int inv_serial_write_fifo(
- void *sl_handle,
- unsigned char slave_addr,
- unsigned short length,
- unsigned char const *data);
-
-/**
- * @}
- */
-#endif /* __MLSL_H__ */
diff --git a/drivers/misc/inv_mpu/mltypes.h b/drivers/misc/inv_mpu/mltypes.h
deleted file mode 100644
index a249f93..0000000
--- a/drivers/misc/inv_mpu/mltypes.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup MLERROR
- * @brief Definition of the error codes used within the MPL and
- * returned to the user.
- * Every function tries to return a meaningful error code basing
- * on the occuring error condition. The error code is numeric.
- *
- * The available error codes and their associated values are:
- * - (0) INV_SUCCESS
- * - (32) INV_ERROR
- * - (22 / EINVAL) INV_ERROR_INVALID_PARAMETER
- * - (1 / EPERM) INV_ERROR_FEATURE_NOT_ENABLED
- * - (36) INV_ERROR_FEATURE_NOT_IMPLEMENTED
- * - (38) INV_ERROR_DMP_NOT_STARTED
- * - (39) INV_ERROR_DMP_STARTED
- * - (40) INV_ERROR_NOT_OPENED
- * - (41) INV_ERROR_OPENED
- * - (19 / ENODEV) INV_ERROR_INVALID_MODULE
- * - (12 / ENOMEM) INV_ERROR_MEMORY_EXAUSTED
- * - (44) INV_ERROR_DIVIDE_BY_ZERO
- * - (45) INV_ERROR_ASSERTION_FAILURE
- * - (46) INV_ERROR_FILE_OPEN
- * - (47) INV_ERROR_FILE_READ
- * - (48) INV_ERROR_FILE_WRITE
- * - (49) INV_ERROR_INVALID_CONFIGURATION
- * - (52) INV_ERROR_SERIAL_CLOSED
- * - (53) INV_ERROR_SERIAL_OPEN_ERROR
- * - (54) INV_ERROR_SERIAL_READ
- * - (55) INV_ERROR_SERIAL_WRITE
- * - (56) INV_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED
- * - (57) INV_ERROR_SM_TRANSITION
- * - (58) INV_ERROR_SM_IMPROPER_STATE
- * - (62) INV_ERROR_FIFO_OVERFLOW
- * - (63) INV_ERROR_FIFO_FOOTER
- * - (64) INV_ERROR_FIFO_READ_COUNT
- * - (65) INV_ERROR_FIFO_READ_DATA
- * - (72) INV_ERROR_MEMORY_SET
- * - (82) INV_ERROR_LOG_MEMORY_ERROR
- * - (83) INV_ERROR_LOG_OUTPUT_ERROR
- * - (92) INV_ERROR_OS_BAD_PTR
- * - (93) INV_ERROR_OS_BAD_HANDLE
- * - (94) INV_ERROR_OS_CREATE_FAILED
- * - (95) INV_ERROR_OS_LOCK_FAILED
- * - (102) INV_ERROR_COMPASS_DATA_OVERFLOW
- * - (103) INV_ERROR_COMPASS_DATA_UNDERFLOW
- * - (104) INV_ERROR_COMPASS_DATA_NOT_READY
- * - (105) INV_ERROR_COMPASS_DATA_ERROR
- * - (107) INV_ERROR_CALIBRATION_LOAD
- * - (108) INV_ERROR_CALIBRATION_STORE
- * - (109) INV_ERROR_CALIBRATION_LEN
- * - (110) INV_ERROR_CALIBRATION_CHECKSUM
- * - (111) INV_ERROR_ACCEL_DATA_OVERFLOW
- * - (112) INV_ERROR_ACCEL_DATA_UNDERFLOW
- * - (113) INV_ERROR_ACCEL_DATA_NOT_READY
- * - (114) INV_ERROR_ACCEL_DATA_ERROR
- *
- * The available warning codes and their associated values are:
- * - (115) INV_WARNING_MOTION_RACE
- * - (116) INV_WARNING_QUAT_TRASHED
- *
- * @{
- * @file mltypes.h
- * @}
- */
-
-#ifndef MLTYPES_H
-#define MLTYPES_H
-
-#include <linux/types.h>
-#include <asm-generic/errno-base.h>
-
-
-
-
-/*---------------------------
- * ML Defines
- *--------------------------*/
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-/* - ML Errors. - */
-#define ERROR_NAME(x) (#x)
-#define ERROR_CHECK_FIRST(first, x) \
- { if (INV_SUCCESS == first) first = x; }
-
-#define INV_SUCCESS (0)
-/* Generic Error code. Proprietary Error Codes only */
-#define INV_ERROR_BASE (0x20)
-#define INV_ERROR (INV_ERROR_BASE)
-
-/* Compatibility and other generic error codes */
-#define INV_ERROR_INVALID_PARAMETER (EINVAL)
-#define INV_ERROR_FEATURE_NOT_ENABLED (EPERM)
-#define INV_ERROR_FEATURE_NOT_IMPLEMENTED (INV_ERROR_BASE + 4)
-#define INV_ERROR_DMP_NOT_STARTED (INV_ERROR_BASE + 6)
-#define INV_ERROR_DMP_STARTED (INV_ERROR_BASE + 7)
-#define INV_ERROR_NOT_OPENED (INV_ERROR_BASE + 8)
-#define INV_ERROR_OPENED (INV_ERROR_BASE + 9)
-#define INV_ERROR_INVALID_MODULE (ENODEV)
-#define INV_ERROR_MEMORY_EXAUSTED (ENOMEM)
-#define INV_ERROR_DIVIDE_BY_ZERO (INV_ERROR_BASE + 12)
-#define INV_ERROR_ASSERTION_FAILURE (INV_ERROR_BASE + 13)
-#define INV_ERROR_FILE_OPEN (INV_ERROR_BASE + 14)
-#define INV_ERROR_FILE_READ (INV_ERROR_BASE + 15)
-#define INV_ERROR_FILE_WRITE (INV_ERROR_BASE + 16)
-#define INV_ERROR_INVALID_CONFIGURATION (INV_ERROR_BASE + 17)
-
-/* Serial Communication */
-#define INV_ERROR_SERIAL_CLOSED (INV_ERROR_BASE + 20)
-#define INV_ERROR_SERIAL_OPEN_ERROR (INV_ERROR_BASE + 21)
-#define INV_ERROR_SERIAL_READ (INV_ERROR_BASE + 22)
-#define INV_ERROR_SERIAL_WRITE (INV_ERROR_BASE + 23)
-#define INV_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED (INV_ERROR_BASE + 24)
-
-/* SM = State Machine */
-#define INV_ERROR_SM_TRANSITION (INV_ERROR_BASE + 25)
-#define INV_ERROR_SM_IMPROPER_STATE (INV_ERROR_BASE + 26)
-
-/* Fifo */
-#define INV_ERROR_FIFO_OVERFLOW (INV_ERROR_BASE + 30)
-#define INV_ERROR_FIFO_FOOTER (INV_ERROR_BASE + 31)
-#define INV_ERROR_FIFO_READ_COUNT (INV_ERROR_BASE + 32)
-#define INV_ERROR_FIFO_READ_DATA (INV_ERROR_BASE + 33)
-
-/* Memory & Registers, Set & Get */
-#define INV_ERROR_MEMORY_SET (INV_ERROR_BASE + 40)
-
-#define INV_ERROR_LOG_MEMORY_ERROR (INV_ERROR_BASE + 50)
-#define INV_ERROR_LOG_OUTPUT_ERROR (INV_ERROR_BASE + 51)
-
-/* OS interface errors */
-#define INV_ERROR_OS_BAD_PTR (INV_ERROR_BASE + 60)
-#define INV_ERROR_OS_BAD_HANDLE (INV_ERROR_BASE + 61)
-#define INV_ERROR_OS_CREATE_FAILED (INV_ERROR_BASE + 62)
-#define INV_ERROR_OS_LOCK_FAILED (INV_ERROR_BASE + 63)
-
-/* Compass errors */
-#define INV_ERROR_COMPASS_DATA_OVERFLOW (INV_ERROR_BASE + 70)
-#define INV_ERROR_COMPASS_DATA_UNDERFLOW (INV_ERROR_BASE + 71)
-#define INV_ERROR_COMPASS_DATA_NOT_READY (INV_ERROR_BASE + 72)
-#define INV_ERROR_COMPASS_DATA_ERROR (INV_ERROR_BASE + 73)
-
-/* Load/Store calibration */
-#define INV_ERROR_CALIBRATION_LOAD (INV_ERROR_BASE + 75)
-#define INV_ERROR_CALIBRATION_STORE (INV_ERROR_BASE + 76)
-#define INV_ERROR_CALIBRATION_LEN (INV_ERROR_BASE + 77)
-#define INV_ERROR_CALIBRATION_CHECKSUM (INV_ERROR_BASE + 78)
-
-/* Accel errors */
-#define INV_ERROR_ACCEL_DATA_OVERFLOW (INV_ERROR_BASE + 79)
-#define INV_ERROR_ACCEL_DATA_UNDERFLOW (INV_ERROR_BASE + 80)
-#define INV_ERROR_ACCEL_DATA_NOT_READY (INV_ERROR_BASE + 81)
-#define INV_ERROR_ACCEL_DATA_ERROR (INV_ERROR_BASE + 82)
-
-/* No Motion Warning States */
-#define INV_WARNING_MOTION_RACE (INV_ERROR_BASE + 83)
-#define INV_WARNING_QUAT_TRASHED (INV_ERROR_BASE + 84)
-#define INV_WARNING_GYRO_MAG (INV_ERROR_BASE + 85)
-
-#ifdef INV_USE_LEGACY_NAMES
-#define ML_SUCCESS INV_SUCCESS
-#define ML_ERROR INV_ERROR
-#define ML_ERROR_INVALID_PARAMETER INV_ERROR_INVALID_PARAMETER
-#define ML_ERROR_FEATURE_NOT_ENABLED INV_ERROR_FEATURE_NOT_ENABLED
-#define ML_ERROR_FEATURE_NOT_IMPLEMENTED INV_ERROR_FEATURE_NOT_IMPLEMENTED
-#define ML_ERROR_DMP_NOT_STARTED INV_ERROR_DMP_NOT_STARTED
-#define ML_ERROR_DMP_STARTED INV_ERROR_DMP_STARTED
-#define ML_ERROR_NOT_OPENED INV_ERROR_NOT_OPENED
-#define ML_ERROR_OPENED INV_ERROR_OPENED
-#define ML_ERROR_INVALID_MODULE INV_ERROR_INVALID_MODULE
-#define ML_ERROR_MEMORY_EXAUSTED INV_ERROR_MEMORY_EXAUSTED
-#define ML_ERROR_DIVIDE_BY_ZERO INV_ERROR_DIVIDE_BY_ZERO
-#define ML_ERROR_ASSERTION_FAILURE INV_ERROR_ASSERTION_FAILURE
-#define ML_ERROR_FILE_OPEN INV_ERROR_FILE_OPEN
-#define ML_ERROR_FILE_READ INV_ERROR_FILE_READ
-#define ML_ERROR_FILE_WRITE INV_ERROR_FILE_WRITE
-#define ML_ERROR_INVALID_CONFIGURATION INV_ERROR_INVALID_CONFIGURATION
-#define ML_ERROR_SERIAL_CLOSED INV_ERROR_SERIAL_CLOSED
-#define ML_ERROR_SERIAL_OPEN_ERROR INV_ERROR_SERIAL_OPEN_ERROR
-#define ML_ERROR_SERIAL_READ INV_ERROR_SERIAL_READ
-#define ML_ERROR_SERIAL_WRITE INV_ERROR_SERIAL_WRITE
-#define ML_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED \
- INV_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED
-#define ML_ERROR_SM_TRANSITION INV_ERROR_SM_TRANSITION
-#define ML_ERROR_SM_IMPROPER_STATE INV_ERROR_SM_IMPROPER_STATE
-#define ML_ERROR_FIFO_OVERFLOW INV_ERROR_FIFO_OVERFLOW
-#define ML_ERROR_FIFO_FOOTER INV_ERROR_FIFO_FOOTER
-#define ML_ERROR_FIFO_READ_COUNT INV_ERROR_FIFO_READ_COUNT
-#define ML_ERROR_FIFO_READ_DATA INV_ERROR_FIFO_READ_DATA
-#define ML_ERROR_MEMORY_SET INV_ERROR_MEMORY_SET
-#define ML_ERROR_LOG_MEMORY_ERROR INV_ERROR_LOG_MEMORY_ERROR
-#define ML_ERROR_LOG_OUTPUT_ERROR INV_ERROR_LOG_OUTPUT_ERROR
-#define ML_ERROR_OS_BAD_PTR INV_ERROR_OS_BAD_PTR
-#define ML_ERROR_OS_BAD_HANDLE INV_ERROR_OS_BAD_HANDLE
-#define ML_ERROR_OS_CREATE_FAILED INV_ERROR_OS_CREATE_FAILED
-#define ML_ERROR_OS_LOCK_FAILED INV_ERROR_OS_LOCK_FAILED
-#define ML_ERROR_COMPASS_DATA_OVERFLOW INV_ERROR_COMPASS_DATA_OVERFLOW
-#define ML_ERROR_COMPASS_DATA_UNDERFLOW INV_ERROR_COMPASS_DATA_UNDERFLOW
-#define ML_ERROR_COMPASS_DATA_NOT_READY INV_ERROR_COMPASS_DATA_NOT_READY
-#define ML_ERROR_COMPASS_DATA_ERROR INV_ERROR_COMPASS_DATA_ERROR
-#define ML_ERROR_CALIBRATION_LOAD INV_ERROR_CALIBRATION_LOAD
-#define ML_ERROR_CALIBRATION_STORE INV_ERROR_CALIBRATION_STORE
-#define ML_ERROR_CALIBRATION_LEN INV_ERROR_CALIBRATION_LEN
-#define ML_ERROR_CALIBRATION_CHECKSUM INV_ERROR_CALIBRATION_CHECKSUM
-#define ML_ERROR_ACCEL_DATA_OVERFLOW INV_ERROR_ACCEL_DATA_OVERFLOW
-#define ML_ERROR_ACCEL_DATA_UNDERFLOW INV_ERROR_ACCEL_DATA_UNDERFLOW
-#define ML_ERROR_ACCEL_DATA_NOT_READY INV_ERROR_ACCEL_DATA_NOT_READY
-#define ML_ERROR_ACCEL_DATA_ERROR INV_ERROR_ACCEL_DATA_ERROR
-#endif
-
-/* For Linux coding compliance */
-
-#endif /* MLTYPES_H */
diff --git a/drivers/misc/inv_mpu/mpu-dev.c b/drivers/misc/inv_mpu/mpu-dev.c
deleted file mode 100644
index c025f50..0000000
--- a/drivers/misc/inv_mpu/mpu-dev.c
+++ /dev/null
@@ -1,2348 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-#include <linux/i2c.h>
-#include <linux/i2c-dev.h>
-#include <linux/interrupt.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/stat.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/signal.h>
-#include <linux/miscdevice.h>
-#include <linux/slab.h>
-#include <linux/version.h>
-#include <linux/pm.h>
-#include <linux/mutex.h>
-#include <linux/suspend.h>
-#include <linux/poll.h>
-#include <linux/delay.h>
-
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/wait.h>
-#include <linux/uaccess.h>
-#include <linux/io.h>
-
-#include "mpuirq.h"
-#include "slaveirq.h"
-#include "mlsl.h"
-#include "mldl_cfg.h"
-#include <linux/mpu_411.h>
-
-#include "accel/mpu6050.h"
-#include "mpu-dev.h"
-
-
-#ifdef CONFIG_INPUT_YAS_MAGNETOMETER
-#include "compass/yas530_ext.h"
-#endif
-
-#include <linux/akm8975.h>
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#define MAG_VENDOR "AKM"
-#define MAG_PART_ID "AK8963C"
-#define MPU_VENDOR "INVENSENSE"
-#define MPU_PART_ID "MPU-6050"
-
-#define MPU_EARLY_SUSPEND_IN_DRIVER 1
-
-
-#define CALIBRATION_FILE_PATH "/efs/calibration_data"
-#define CALIBRATION_DATA_AMOUNT 100
-
-struct acc_data cal_data = {0, 0, 0};
-
-
-
-/* Platform data for the MPU */
-struct mpu_private_data {
- struct miscdevice dev;
- struct i2c_client *client;
-
- /* mldl_cfg data */
- struct mldl_cfg mldl_cfg;
- struct mpu_ram mpu_ram;
- struct mpu_gyro_cfg mpu_gyro_cfg;
- struct mpu_offsets mpu_offsets;
- struct mpu_chip_info mpu_chip_info;
- struct inv_mpu_cfg inv_mpu_cfg;
- struct inv_mpu_state inv_mpu_state;
-
- struct mutex mutex;
- wait_queue_head_t mpu_event_wait;
- struct completion completion;
- struct timer_list timeout;
- struct notifier_block nb;
- struct mpuirq_data mpu_pm_event;
- int response_timeout;
- unsigned long event;
- int pid;
- struct module *slave_modules[EXT_SLAVE_NUM_TYPES];
- struct {
- atomic_t enable;
- unsigned char is_activated;
- unsigned char turned_by_mpu_accel;
- } mpu_accel;
-#ifdef CONFIG_HAS_EARLYSUSPEND
- struct early_suspend early_suspend;
-#endif
-};
-
-static struct i2c_client *this_client;
-
-#define IDEAL_X 0
-#define IDEAL_Y 0
-#define IDEAL_Z -1024
-/*#define CAL_DIV 8*/
-static int CAL_DIV = 8;
-
-struct mpu_private_data *mpu_data;
-
-void mpu_accel_enable_set(int enable)
-{
-
- struct mpu_private_data *mpu =
- (struct mpu_private_data *) i2c_get_clientdata(this_client);
- struct i2c_client *client = mpu->client;
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = client->adapter;
-
- if (enable) {
- mpu->mpu_accel.is_activated =
- !(mldl_cfg->inv_mpu_state->status
- & MPU_ACCEL_IS_SUSPENDED);
-
- (void)inv_mpu_resume(mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- INV_THREE_AXIS_ACCEL);
-
- mpu->mpu_accel.turned_by_mpu_accel = 1;
- } else {
- if (!mpu->mpu_accel.is_activated
- && mpu->mpu_accel.turned_by_mpu_accel) {
-
- (void)inv_mpu_suspend(mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- INV_THREE_AXIS_ACCEL);
-
- mpu->mpu_accel.turned_by_mpu_accel = 0;
- }
- }
-
- atomic_set(&mpu->mpu_accel.enable, enable);
-}
-
-int read_accel_raw_xyz(struct acc_data *acc)
-{
- s16 x, y, z;
- struct mpu_private_data *mpu =
- (struct mpu_private_data *) i2c_get_clientdata(this_client);
- struct i2c_client *client = mpu->client;
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- int retval = 0;
- unsigned char data[6];
-
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = client->adapter;
-
-
- retval = inv_serial_read(slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- 0x68, 0x3B, 6, data);
-
- if (mldl_cfg->mpu_chip_info->accel_sens_trim == 16384)
- CAL_DIV = 16;
- x = (s16)((data[0] << 8) | data[1])/CAL_DIV;
- y = (s16)((data[2] << 8) | data[3])/CAL_DIV;
- z = (s16)((data[4] << 8) | data[5])/CAL_DIV;
-
- acc->x = x;
-
- acc->y = y;
-
- acc->z = z;
-
- /*
- pr_info("read_accel_raw_xyz acc x: %d y: %d z: %d",
- acc->x,acc->y,acc->z);
- */
- return 0;
-}
-
-static int accel_open_calibration(void)
-{
- struct file *cal_filp = NULL;
- int err = 0;
- mm_segment_t old_fs;
-
- old_fs = get_fs();
- set_fs(KERNEL_DS);
-
- cal_filp = filp_open(CALIBRATION_FILE_PATH, O_RDONLY, 0666);
- if (IS_ERR(cal_filp)) {
- pr_err("%s: Can't open calibration file", __func__);
- set_fs(old_fs);
- err = PTR_ERR(cal_filp);
- return err;
- }
-
- err = cal_filp->f_op->read(cal_filp,
- (char *)&cal_data, 3 * sizeof(s16), &cal_filp->f_pos);
- if (err != 3 * sizeof(s16)) {
- pr_err("%s: Can't read the cal data from file", __func__);
- err = -EIO;
- }
-
- pr_info("%s: (%u,%u,%u)", __func__,
- cal_data.x, cal_data.y, cal_data.z);
-
- filp_close(cal_filp, current->files);
- set_fs(old_fs);
-
- return err;
-}
-
-static int accel_do_calibrate(int enable)
-{
- struct acc_data data = { 0, };
- struct file *cal_filp = NULL;
- struct mpu_private_data *mpu =
- (struct mpu_private_data *) i2c_get_clientdata(this_client);
- /* struct i2c_client *client = mpu->client; */
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
-
- int sum[3] = { 0, };
- int err = 0;
- int i;
- mm_segment_t old_fs;
-
- /* mutex_lock(&mpu->mutex); */
- mpu_accel_enable_set(1);
- msleep(20);
-
- for (i = 0; i < CALIBRATION_DATA_AMOUNT; i++) {
- err = read_accel_raw_xyz(&data);
- if (err < 0) {
- pr_err("%s: accel_read_accel_raw_xyz() "
- "failed in the %dth loop", __func__, i);
- return err;
- }
-
- sum[0] += data.x;
- sum[1] += data.y;
- sum[2] += data.z;
- }
-
- mpu_accel_enable_set(0);
- msleep(20);
- /* mutex_unlock(&mpu->mutex); */
-
- if (mldl_cfg->mpu_chip_info->accel_sens_trim == 16384)
- CAL_DIV = 16;
-
- if (enable) {
- cal_data.x = ((sum[0] / CALIBRATION_DATA_AMOUNT)
- - IDEAL_X)*CAL_DIV;
- cal_data.y = ((sum[1] / CALIBRATION_DATA_AMOUNT)
- - IDEAL_Y)*CAL_DIV;
- cal_data.z = ((sum[2] / CALIBRATION_DATA_AMOUNT)
- - IDEAL_Z)*CAL_DIV;
- } else {
- cal_data.x = 0;
- cal_data.y = 0;
- cal_data.z = 0;
- }
-
- pr_info("%s: cal data (%d,%d,%d)", __func__,
- cal_data.x, cal_data.y, cal_data.z);
-
- old_fs = get_fs();
- set_fs(KERNEL_DS);
-
- cal_filp = filp_open(CALIBRATION_FILE_PATH,
- O_CREAT | O_TRUNC | O_WRONLY, 0666);
- if (IS_ERR(cal_filp)) {
- pr_err("%s: Can't open calibration file", __func__);
- set_fs(old_fs);
- err = PTR_ERR(cal_filp);
- return err;
- }
-
- err = cal_filp->f_op->write(cal_filp,
- (char *)&cal_data, 3 * sizeof(s16), &cal_filp->f_pos);
- if (err != 3 * sizeof(s16)) {
- pr_err("%s: Can't write the cal data to file", __func__);
- err = -EIO;
- }
-
- filp_close(cal_filp, current->files);
- set_fs(old_fs);
-
- return err;
-}
-
-static void mpu_pm_timeout(u_long data)
-{
- struct mpu_private_data *mpu = (struct mpu_private_data *)data;
- struct i2c_client *client = mpu->client;
- dev_dbg(&client->adapter->dev, "%s", __func__);
- complete(&mpu->completion);
-}
-#if 0
-static int mpu_pm_notifier_callback(struct notifier_block *nb,
- unsigned long event, void *unused)
-{
- struct mpu_private_data *mpu =
- container_of(nb, struct mpu_private_data, nb);
- struct i2c_client *client = mpu->client;
- struct timeval event_time;
- dev_dbg(&client->adapter->dev, "%s: %ld", __func__, event);
-
- /* Prevent the file handle from being closed before we initialize
- the completion event */
- pr_info("[%s] event = %ld", __func__, event);
- mutex_lock(&mpu->mutex);
- if (!(mpu->pid) ||
- (event != PM_SUSPEND_PREPARE && event != PM_POST_SUSPEND)) {
- mutex_unlock(&mpu->mutex);
- return NOTIFY_OK;
- }
-
- if (event == PM_SUSPEND_PREPARE)
- mpu->event = MPU_PM_EVENT_SUSPEND_PREPARE;
- if (event == PM_POST_SUSPEND)
- mpu->event = MPU_PM_EVENT_POST_SUSPEND;
-
- do_gettimeofday(&event_time);
- mpu->mpu_pm_event.interruptcount++;
- mpu->mpu_pm_event.irqtime =
- (((long long)event_time.tv_sec) << 32) + event_time.tv_usec;
- mpu->mpu_pm_event.data_type = MPUIRQ_DATA_TYPE_PM_EVENT;
- mpu->mpu_pm_event.data = mpu->event;
-
- if (mpu->response_timeout > 0) {
- mpu->timeout.expires = jiffies + mpu->response_timeout * HZ;
- add_timer(&mpu->timeout);
- }
- INIT_COMPLETION(mpu->completion);
- mutex_unlock(&mpu->mutex);
-
- wake_up_interruptible(&mpu->mpu_event_wait);
- wait_for_completion(&mpu->completion);
- del_timer_sync(&mpu->timeout);
- dev_dbg(&client->adapter->dev, "%s: %ld DONE", __func__, event);
- return NOTIFY_OK;
-}
-#endif
-static int mpu_early_notifier_callback(struct mpu_private_data *mpu,
- unsigned long event, void *unused)
-{
- struct i2c_client *client = mpu->client;
- struct timeval event_time;
- dev_dbg(&client->adapter->dev, "%s: %s", __func__,
- (event == MPU_PM_EVENT_SUSPEND_PREPARE) ?
- "MPU_PM_EVENT_SUSPEND_PREPARE" : "MPU_PM_EVENT_POST_SUSPEND");
-
- /* Prevent the file handle from being closed before we initialize
- the completion event */
- pr_info("[%s] event = %ld", __func__, event);
- mutex_lock(&mpu->mutex);
- if (!(mpu->pid) ||
- (event != PM_SUSPEND_PREPARE && event != PM_POST_SUSPEND)) {
- mutex_unlock(&mpu->mutex);
- return NOTIFY_OK;
- }
-
- if (event == PM_SUSPEND_PREPARE)
- mpu->event = MPU_PM_EVENT_SUSPEND_PREPARE;
- if (event == PM_POST_SUSPEND)
- mpu->event = MPU_PM_EVENT_POST_SUSPEND;
-
- do_gettimeofday(&event_time);
- mpu->mpu_pm_event.interruptcount++;
- mpu->mpu_pm_event.irqtime =
- (((long long)event_time.tv_sec) << 32) + event_time.tv_usec;
- mpu->mpu_pm_event.data_type = MPUIRQ_DATA_TYPE_PM_EVENT;
- mpu->mpu_pm_event.data = mpu->event;
-
- if (mpu->response_timeout > 0) {
- mpu->timeout.expires = jiffies + mpu->response_timeout * HZ;
- add_timer(&mpu->timeout);
- }
- INIT_COMPLETION(mpu->completion);
- mutex_unlock(&mpu->mutex);
-
- wake_up_interruptible(&mpu->mpu_event_wait);
- wait_for_completion(&mpu->completion);
- del_timer_sync(&mpu->timeout);
- dev_dbg(&client->adapter->dev, "%s: %s DONE", __func__,
- (event == MPU_PM_EVENT_SUSPEND_PREPARE) ?
- "MPU_PM_EVENT_SUSPEND_PREPARE" : "MPU_PM_EVENT_POST_SUSPEND");
- return NOTIFY_OK;
-}
-
-static int mpu_dev_open(struct inode *inode, struct file *file)
-{
- struct mpu_private_data *mpu =
- container_of(file->private_data, struct mpu_private_data, dev);
- struct i2c_client *client = mpu->client;
- int result;
- int ii;
- dev_dbg(&client->adapter->dev, "%s", __func__);
- dev_dbg(&client->adapter->dev, "current->pid %d", current->pid);
-
- accel_open_calibration();
-
- result = mutex_lock_interruptible(&mpu->mutex);
- if (mpu->pid) {
- mutex_unlock(&mpu->mutex);
- return -EBUSY;
- }
- mpu->pid = current->pid;
-
- /* Reset the sensors to the default */
- if (result) {
- dev_err(&client->adapter->dev,
- "%s: mutex_lock_interruptible returned %d",
- __func__, result);
- return result;
- }
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++)
- __module_get(mpu->slave_modules[ii]);
-
- mutex_unlock(&mpu->mutex);
- return 0;
-}
-
-/* close function - called when the "file" /dev/mpu is closed in userspace */
-static int mpu_release(struct inode *inode, struct file *file)
-{
- struct mpu_private_data *mpu =
- container_of(file->private_data, struct mpu_private_data, dev);
- struct i2c_client *client = mpu->client;
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- int result = 0;
- int ii;
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = client->adapter;
-
- mutex_lock(&mpu->mutex);
- mldl_cfg->inv_mpu_cfg->requested_sensors = 0;
- result = inv_mpu_suspend(mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- INV_ALL_SENSORS);
- mpu->pid = 0;
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++)
- module_put(mpu->slave_modules[ii]);
-
- mutex_unlock(&mpu->mutex);
- complete(&mpu->completion);
- dev_dbg(&client->adapter->dev, "mpu_release");
-
- return result;
-}
-
-/* read function called when from /dev/mpu is read. Read from the FIFO */
-static ssize_t mpu_read(struct file *file,
- char __user *buf, size_t count, loff_t *offset)
-{
- struct mpu_private_data *mpu =
- container_of(file->private_data, struct mpu_private_data, dev);
- struct i2c_client *client = mpu->client;
- size_t len = sizeof(mpu->mpu_pm_event) + sizeof(unsigned long);
- int err;
-
- if (!mpu->event && (!(file->f_flags & O_NONBLOCK)))
- wait_event_interruptible(mpu->mpu_event_wait, mpu->event);
-
- if (!mpu->event || !buf
- || count < sizeof(mpu->mpu_pm_event))
- return 0;
-
- err = copy_to_user(buf, &mpu->mpu_pm_event, sizeof(mpu->mpu_pm_event));
- if (err) {
- dev_err(&client->adapter->dev,
- "Copy to user returned %d", err);
- return -EFAULT;
- }
- mpu->event = 0;
- return len;
-}
-
-static unsigned int mpu_poll(struct file *file, struct poll_table_struct *poll)
-{
- struct mpu_private_data *mpu =
- container_of(file->private_data, struct mpu_private_data, dev);
- int mask = 0;
-
- poll_wait(file, &mpu->mpu_event_wait, poll);
- if (mpu->event)
- mask |= POLLIN | POLLRDNORM;
- return mask;
-}
-
-static int mpu_dev_ioctl_get_ext_slave_platform_data(
- struct i2c_client *client,
- struct ext_slave_platform_data __user *arg)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct ext_slave_platform_data *pdata_slave;
- struct ext_slave_platform_data local_pdata_slave;
-
- if (copy_from_user(&local_pdata_slave, arg, sizeof(local_pdata_slave)))
- return -EFAULT;
-
- if (local_pdata_slave.type >= EXT_SLAVE_NUM_TYPES)
- return -EINVAL;
-
- pdata_slave = mpu->mldl_cfg.pdata_slave[local_pdata_slave.type];
- /* All but private data and irq_data */
- if (!pdata_slave)
- return -ENODEV;
- if (copy_to_user(arg, pdata_slave, sizeof(*pdata_slave)))
- return -EFAULT;
- return 0;
-}
-
-static int mpu_dev_ioctl_get_mpu_platform_data(
- struct i2c_client *client,
- struct mpu_platform_data __user *arg)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct mpu_platform_data *pdata = mpu->mldl_cfg.pdata;
-
- if (copy_to_user(arg, pdata, sizeof(*pdata)))
- return -EFAULT;
- return 0;
-}
-
-static int mpu_dev_ioctl_get_ext_slave_descr(
- struct i2c_client *client,
- struct ext_slave_descr __user *arg)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct ext_slave_descr *slave;
- struct ext_slave_descr local_slave;
-
- if (copy_from_user(&local_slave, arg, sizeof(local_slave)))
- return -EFAULT;
-
- if (local_slave.type >= EXT_SLAVE_NUM_TYPES)
- return -EINVAL;
-
- slave = mpu->mldl_cfg.slave[local_slave.type];
- /* All but private data and irq_data */
- if (!slave)
- return -ENODEV;
- if (copy_to_user(arg, slave, sizeof(*slave)))
- return -EFAULT;
- return 0;
-}
-
-
-/**
- * slave_config() - Pass a requested slave configuration to the slave sensor
- *
- * @adapter the adaptor to use to communicate with the slave
- * @mldl_cfg the mldl configuration structuer
- * @slave pointer to the slave descriptor
- * @usr_config The configuration to pass to the slave sensor
- *
- * returns 0 or non-zero error code
- */
-static int inv_mpu_config(struct mldl_cfg *mldl_cfg,
- void *gyro_adapter,
- struct ext_slave_config __user *usr_config)
-{
- int retval = 0;
- struct ext_slave_config config;
-
- retval = copy_from_user(&config, usr_config, sizeof(config));
- if (retval)
- return -EFAULT;
-
- if (config.len && config.data) {
- void *data;
- data = kmalloc(config.len, GFP_KERNEL);
- if (!data)
- return -ENOMEM;
-
- retval = copy_from_user(data,
- (void __user *)config.data, config.len);
- if (retval) {
- retval = -EFAULT;
- kfree(data);
- return retval;
- }
- config.data = data;
- }
- retval = gyro_config(gyro_adapter, mldl_cfg, &config);
- kfree(config.data);
- return retval;
-}
-
-static int inv_mpu_get_config(struct mldl_cfg *mldl_cfg,
- void *gyro_adapter,
- struct ext_slave_config __user *usr_config)
-{
- int retval = 0;
- struct ext_slave_config config;
- void *user_data;
-
- retval = copy_from_user(&config, usr_config, sizeof(config));
- if (retval)
- return -EFAULT;
-
- user_data = config.data;
- if (config.len && config.data) {
- void *data;
- data = kmalloc(config.len, GFP_KERNEL);
- if (!data)
- return -ENOMEM;
-
- retval = copy_from_user(data,
- (void __user *)config.data, config.len);
- if (retval) {
- retval = -EFAULT;
- kfree(data);
- return retval;
- }
- config.data = data;
- }
- retval = gyro_get_config(gyro_adapter, mldl_cfg, &config);
- if (!retval)
- retval = copy_to_user((unsigned char __user *)user_data,
- config.data, config.len);
- kfree(config.data);
- return retval;
-}
-
-static int slave_config(struct mldl_cfg *mldl_cfg,
- void *gyro_adapter,
- void *slave_adapter,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config __user *usr_config)
-{
- int retval = 0;
- struct ext_slave_config config;
- if ((!slave) || (!slave->config))
- return -ENODEV;
-
- retval = copy_from_user(&config, usr_config, sizeof(config));
- if (retval)
- return -EFAULT;
-
- if (config.len && config.data) {
- void *data;
- data = kmalloc(config.len, GFP_KERNEL);
- if (!data)
- return -ENOMEM;
-
- retval = copy_from_user(data,
- (void __user *)config.data, config.len);
- if (retval) {
- retval = -EFAULT;
- kfree(data);
- return retval;
- }
- config.data = data;
- }
- retval = inv_mpu_slave_config(mldl_cfg, gyro_adapter, slave_adapter,
- &config, slave, pdata);
- kfree(config.data);
- return retval;
-}
-
-static int slave_get_config(struct mldl_cfg *mldl_cfg,
- void *gyro_adapter,
- void *slave_adapter,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config __user *usr_config)
-{
- int retval = 0;
- struct ext_slave_config config;
- void *user_data;
- if (!(slave) || !(slave->get_config))
- return -ENODEV;
-
- retval = copy_from_user(&config, usr_config, sizeof(config));
- if (retval)
- return -EFAULT;
-
- user_data = config.data;
- if (config.len && config.data) {
- void *data;
- data = kmalloc(config.len, GFP_KERNEL);
- if (!data)
- return -ENOMEM;
-
- retval = copy_from_user(data,
- (void __user *)config.data, config.len);
- if (retval) {
- retval = -EFAULT;
- kfree(data);
- return retval;
- }
- config.data = data;
- }
- retval = inv_mpu_get_slave_config(mldl_cfg, gyro_adapter,
- slave_adapter, &config, slave, pdata);
- if (retval) {
- kfree(config.data);
- return retval;
- }
- retval = copy_to_user((unsigned char __user *)user_data,
- config.data, config.len);
- kfree(config.data);
- return retval;
-}
-
-static int inv_slave_read(struct mldl_cfg *mldl_cfg,
- void *gyro_adapter,
- void *slave_adapter,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- void __user *usr_data)
-{
- int retval;
- unsigned char *data;
- data = kzalloc(slave->read_len, GFP_KERNEL);
- if (!data)
- return -EFAULT;
-
- retval = inv_mpu_slave_read(mldl_cfg, gyro_adapter, slave_adapter,
- slave, pdata, data);
-
- if ((!retval) &&
- (copy_to_user((unsigned char __user *)usr_data,
- data, slave->read_len)))
- retval = -EFAULT;
-
- kfree(data);
- return retval;
-}
-
-static int mpu_handle_mlsl(void *sl_handle,
- unsigned char addr,
- unsigned int cmd,
- struct mpu_read_write __user *usr_msg)
-{
- int retval = 0;
- struct mpu_read_write msg;
- unsigned char *user_data;
- retval = copy_from_user(&msg, usr_msg, sizeof(msg));
- if (retval)
- return -EFAULT;
-
- user_data = msg.data;
- if (msg.length && msg.data) {
- unsigned char *data;
- data = kmalloc(msg.length, GFP_KERNEL);
- if (!data)
- return -ENOMEM;
-
- retval = copy_from_user(data,
- (void __user *)msg.data, msg.length);
- if (retval) {
- retval = -EFAULT;
- kfree(data);
- return retval;
- }
- msg.data = data;
- } else {
- return -EPERM;
- }
-
- switch (cmd) {
- case MPU_READ:
- retval = inv_serial_read(sl_handle, addr,
- (unsigned char)msg.address, msg.length, msg.data);
- break;
- case MPU_WRITE:
- retval = inv_serial_write(sl_handle, addr,
- msg.length, msg.data);
- break;
- case MPU_READ_MEM:
- retval = inv_serial_read_mem(sl_handle, addr,
- msg.address, msg.length, msg.data);
- break;
- case MPU_WRITE_MEM:
- retval = inv_serial_write_mem(sl_handle, addr,
- msg.address, msg.length,
- msg.data);
- break;
- case MPU_READ_FIFO:
- retval = inv_serial_read_fifo(sl_handle, addr,
- msg.length, msg.data);
- break;
- case MPU_WRITE_FIFO:
- retval = inv_serial_write_fifo(sl_handle, addr,
- msg.length, msg.data);
- break;
-
- };
- if (retval) {
- dev_err(&((struct i2c_adapter *)sl_handle)->dev,
- "%s: i2c %d error %d",
- __func__, cmd, retval);
- kfree(msg.data);
- return retval;
- }
- retval = copy_to_user((unsigned char __user *)user_data,
- msg.data, msg.length);
- kfree(msg.data);
- return retval;
-}
-
-/* ioctl - I/O control */
-static long mpu_dev_ioctl(struct file *file,
- unsigned int cmd, unsigned long arg)
-{
- struct mpu_private_data *mpu =
- container_of(file->private_data, struct mpu_private_data, dev);
- struct i2c_client *client = mpu->client;
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- int retval = 0;
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_descr **slave = mldl_cfg->slave;
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = client->adapter;
-
- retval = mutex_lock_interruptible(&mpu->mutex);
- if (retval) {
- dev_err(&client->adapter->dev,
- "%s: mutex_lock_interruptible returned %d",
- __func__, retval);
- return retval;
- }
-
- switch (cmd) {
- case MPU_GET_EXT_SLAVE_PLATFORM_DATA:
- retval = mpu_dev_ioctl_get_ext_slave_platform_data(
- client,
- (struct ext_slave_platform_data __user *)arg);
- break;
- case MPU_GET_MPU_PLATFORM_DATA:
- retval = mpu_dev_ioctl_get_mpu_platform_data(
- client,
- (struct mpu_platform_data __user *)arg);
- break;
- case MPU_GET_EXT_SLAVE_DESCR:
- retval = mpu_dev_ioctl_get_ext_slave_descr(
- client,
- (struct ext_slave_descr __user *)arg);
- break;
- case MPU_READ:
- case MPU_WRITE:
- case MPU_READ_MEM:
- case MPU_WRITE_MEM:
- case MPU_READ_FIFO:
- case MPU_WRITE_FIFO:
- retval = mpu_handle_mlsl(
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- mldl_cfg->mpu_chip_info->addr, cmd,
- (struct mpu_read_write __user *)arg);
- break;
- case MPU_CONFIG_GYRO:
- retval = inv_mpu_config(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- (struct ext_slave_config __user *)arg);
- break;
- case MPU_CONFIG_ACCEL:
- retval = slave_config(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave[EXT_SLAVE_TYPE_ACCEL],
- pdata_slave[EXT_SLAVE_TYPE_ACCEL],
- (struct ext_slave_config __user *)arg);
- break;
- case MPU_CONFIG_COMPASS:
- retval = slave_config(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave[EXT_SLAVE_TYPE_COMPASS],
- pdata_slave[EXT_SLAVE_TYPE_COMPASS],
- (struct ext_slave_config __user *)arg);
- break;
- case MPU_CONFIG_PRESSURE:
- retval = slave_config(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- slave[EXT_SLAVE_TYPE_PRESSURE],
- pdata_slave[EXT_SLAVE_TYPE_PRESSURE],
- (struct ext_slave_config __user *)arg);
- break;
- case MPU_GET_CONFIG_GYRO:
- retval = inv_mpu_get_config(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- (struct ext_slave_config __user *)arg);
- break;
- case MPU_GET_CONFIG_ACCEL:
- retval = slave_get_config(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave[EXT_SLAVE_TYPE_ACCEL],
- pdata_slave[EXT_SLAVE_TYPE_ACCEL],
- (struct ext_slave_config __user *)arg);
- break;
- case MPU_GET_CONFIG_COMPASS:
- retval = slave_get_config(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave[EXT_SLAVE_TYPE_COMPASS],
- pdata_slave[EXT_SLAVE_TYPE_COMPASS],
- (struct ext_slave_config __user *)arg);
- break;
- case MPU_GET_CONFIG_PRESSURE:
- retval = slave_get_config(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- slave[EXT_SLAVE_TYPE_PRESSURE],
- pdata_slave[EXT_SLAVE_TYPE_PRESSURE],
- (struct ext_slave_config __user *)arg);
- break;
- case MPU_SUSPEND:
- retval = inv_mpu_suspend(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- arg);
- break;
- case MPU_RESUME:
- retval = inv_mpu_resume(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- arg);
- break;
- case MPU_PM_EVENT_HANDLED:
- dev_dbg(&client->adapter->dev, "%s: %d", __func__, cmd);
- complete(&mpu->completion);
- break;
- case MPU_READ_ACCEL:
- retval = inv_slave_read(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave[EXT_SLAVE_TYPE_ACCEL],
- pdata_slave[EXT_SLAVE_TYPE_ACCEL],
- (unsigned char __user *)arg);
- break;
- case MPU_READ_COMPASS:
- retval = inv_slave_read(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave[EXT_SLAVE_TYPE_COMPASS],
- pdata_slave[EXT_SLAVE_TYPE_COMPASS],
- (unsigned char __user *)arg);
- break;
- case MPU_READ_PRESSURE:
- retval = inv_slave_read(
- mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- slave[EXT_SLAVE_TYPE_PRESSURE],
- pdata_slave[EXT_SLAVE_TYPE_PRESSURE],
- (unsigned char __user *)arg);
- break;
- case MPU_GET_REQUESTED_SENSORS:
- if (copy_to_user(
- (__u32 __user *)arg,
- &mldl_cfg->inv_mpu_cfg->requested_sensors,
- sizeof(mldl_cfg->inv_mpu_cfg->requested_sensors)))
- retval = -EFAULT;
- break;
- case MPU_SET_REQUESTED_SENSORS:
- mldl_cfg->inv_mpu_cfg->requested_sensors = arg;
- break;
- case MPU_GET_IGNORE_SYSTEM_SUSPEND:
- if (copy_to_user(
- (unsigned char __user *)arg,
- &mldl_cfg->inv_mpu_cfg->ignore_system_suspend,
- sizeof(mldl_cfg->inv_mpu_cfg->ignore_system_suspend)))
- retval = -EFAULT;
- break;
- case MPU_SET_IGNORE_SYSTEM_SUSPEND:
- mldl_cfg->inv_mpu_cfg->ignore_system_suspend = arg;
- break;
- case MPU_GET_MLDL_STATUS:
- if (copy_to_user(
- (unsigned char __user *)arg,
- &mldl_cfg->inv_mpu_state->status,
- sizeof(mldl_cfg->inv_mpu_state->status)))
- retval = -EFAULT;
- break;
- case MPU_GET_I2C_SLAVES_ENABLED:
- if (copy_to_user(
- (unsigned char __user *)arg,
- &mldl_cfg->inv_mpu_state->i2c_slaves_enabled,
- sizeof(mldl_cfg->inv_mpu_state->i2c_slaves_enabled)))
- retval = -EFAULT;
- break;
- case MPU_READ_ACCEL_OFFSET:
- {
-
- retval = copy_to_user((signed short __user *)arg,
- &cal_data, sizeof(cal_data));
- if (INV_SUCCESS != retval) {
- dev_err(&client->adapter->dev,
- "%s: cmd %x, arg %lu",
- __func__, cmd, arg);
- }
- }
- break;
- default:
- dev_err(&client->adapter->dev,
- "%s: Unknown cmd %x, arg %lu",
- __func__, cmd, arg);
- retval = -EINVAL;
- };
-
- mutex_unlock(&mpu->mutex);
- dev_dbg(&client->adapter->dev, "%s: %08x, %08lx, %d",
- __func__, cmd, arg, retval);
-
- if (retval > 0)
- retval = -retval;
-
- return retval;
-}
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-void mpu_dev_early_suspend(struct early_suspend *h)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(this_client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
- pr_info("----------\n%s\n----------", __func__);
-
- mpu_early_notifier_callback(mpu, PM_SUSPEND_PREPARE, NULL);
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = this_client->adapter;
- mutex_lock(&mpu->mutex);
- if (!mldl_cfg->inv_mpu_cfg->ignore_system_suspend) {
- (void)inv_mpu_suspend(mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- INV_ALL_SENSORS);
- }
- mutex_unlock(&mpu->mutex);
-}
-
-void mpu_dev_early_resume(struct early_suspend *h)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(this_client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
- pr_info("----------\n%s\n----------", __func__);
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = this_client->adapter;
-
- mutex_lock(&mpu->mutex);
- if (mpu->pid && !mldl_cfg->inv_mpu_cfg->ignore_system_suspend) {
- (void)inv_mpu_resume(mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- mldl_cfg->inv_mpu_cfg->requested_sensors);
- }
- mutex_unlock(&mpu->mutex);
- mpu_early_notifier_callback(mpu, PM_POST_SUSPEND, NULL);
-}
-#endif
-
-
-void mpu_shutdown(struct i2c_client *client)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = client->adapter;
-
- mutex_lock(&mpu->mutex);
- (void)inv_mpu_suspend(mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- INV_ALL_SENSORS);
- mutex_unlock(&mpu->mutex);
- dev_dbg(&client->adapter->dev, "%s", __func__);
-}
-
-int mpu_dev_suspend(struct i2c_client *client, pm_message_t mesg)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
- pr_info("----------\n%s\n----------", __func__);
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = client->adapter;
-
- mutex_lock(&mpu->mutex);
- if (!mldl_cfg->inv_mpu_cfg->ignore_system_suspend) {
- dev_dbg(&client->adapter->dev,
- "%s: suspending on event %d", __func__, mesg.event);
- (void)inv_mpu_suspend(mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- INV_ALL_SENSORS);
- } else {
- dev_dbg(&client->adapter->dev,
- "%s: Already suspended %d", __func__, mesg.event);
- }
- mutex_unlock(&mpu->mutex);
- return 0;
-}
-
-int mpu_dev_resume(struct i2c_client *client)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
- pr_info("----------\n%s\n----------", __func__);
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = client->adapter;
-
- mutex_lock(&mpu->mutex);
- if (mpu->pid && !mldl_cfg->inv_mpu_cfg->ignore_system_suspend) {
- (void)inv_mpu_resume(mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- mldl_cfg->inv_mpu_cfg->requested_sensors);
- dev_dbg(&client->adapter->dev,
- "%s for pid %d", __func__, mpu->pid);
- }
- mutex_unlock(&mpu->mutex);
- return 0;
-}
-
-/* define which file operations are supported */
-static const struct file_operations mpu_fops = {
- .owner = THIS_MODULE,
- .read = mpu_read,
- .poll = mpu_poll,
- .unlocked_ioctl = mpu_dev_ioctl,
- .open = mpu_dev_open,
- .release = mpu_release,
-};
-
-int inv_mpu_register_slave(struct module *slave_module,
- struct i2c_client *slave_client,
- struct ext_slave_platform_data *slave_pdata,
- struct ext_slave_descr *(*get_slave_descr)(void))
-{
- struct mpu_private_data *mpu = mpu_data;
- struct mldl_cfg *mldl_cfg;
- struct ext_slave_descr *slave_descr;
- struct ext_slave_platform_data **pdata_slave;
- char *irq_name = NULL;
- int result = 0;
-
- if (!slave_client || !slave_pdata || !get_slave_descr)
- return -EINVAL;
-
- if (!mpu) {
- dev_err(&slave_client->adapter->dev,
- "%s: Null mpu_private_data", __func__);
- return -EINVAL;
- }
- mldl_cfg = &mpu->mldl_cfg;
- pdata_slave = mldl_cfg->pdata_slave;
- slave_descr = get_slave_descr();
-
- if (!slave_descr) {
- dev_err(&slave_client->adapter->dev,
- "%s: Null ext_slave_descr", __func__);
- return -EINVAL;
- }
-
- mutex_lock(&mpu->mutex);
- if (mpu->pid) {
- mutex_unlock(&mpu->mutex);
- return -EBUSY;
- }
-
- if (pdata_slave[slave_descr->type]) {
- result = -EBUSY;
- goto out_unlock_mutex;
- }
-
- slave_pdata->address = slave_client->addr;
- slave_pdata->irq = slave_client->irq;
- slave_pdata->adapt_num = i2c_adapter_id(slave_client->adapter);
-
- dev_info(&slave_client->adapter->dev,
- "%s: +%s Type %d: Addr: %2x IRQ: %2d, Adapt: %2d",
- __func__,
- slave_descr->name,
- slave_descr->type,
- slave_pdata->address,
- slave_pdata->irq,
- slave_pdata->adapt_num);
-
- switch (slave_descr->type) {
- case EXT_SLAVE_TYPE_ACCEL:
- irq_name = "accelirq";
- break;
- case EXT_SLAVE_TYPE_COMPASS:
- irq_name = "compassirq";
- break;
- case EXT_SLAVE_TYPE_PRESSURE:
- irq_name = "pressureirq";
- break;
- default:
- irq_name = "none";
- };
- if (slave_descr->init) {
- result = slave_descr->init(slave_client->adapter,
- slave_descr,
- slave_pdata);
- if (result) {
- dev_err(&slave_client->adapter->dev,
- "%s init failed %d",
- slave_descr->name, result);
- goto out_unlock_mutex;
- }
- }
-
- if (slave_descr->type == EXT_SLAVE_TYPE_ACCEL &&
- slave_descr->id == ACCEL_ID_MPU6050 &&
- slave_descr->config) {
- /* pass a reference to the mldl_cfg data
- structure to the mpu6050 accel "class" */
- struct ext_slave_config config;
- config.key = MPU_SLAVE_CONFIG_INTERNAL_REFERENCE;
- config.len = sizeof(struct mldl_cfg *);
- config.apply = true;
- config.data = mldl_cfg;
- result = slave_descr->config(
- slave_client->adapter, slave_descr,
- slave_pdata, &config);
- if (result) {
- LOG_RESULT_LOCATION(result);
- goto out_slavedescr_exit;
- }
- }
- pdata_slave[slave_descr->type] = slave_pdata;
- mpu->slave_modules[slave_descr->type] = slave_module;
- mldl_cfg->slave[slave_descr->type] = slave_descr;
-
- goto out_unlock_mutex;
-
-out_slavedescr_exit:
- if (slave_descr->exit)
- slave_descr->exit(slave_client->adapter,
- slave_descr, slave_pdata);
-out_unlock_mutex:
- mutex_unlock(&mpu->mutex);
-
- if (!result && irq_name && (slave_pdata->irq > 0)) {
- int warn_result;
- dev_info(&slave_client->adapter->dev,
- "Installing %s irq using %d",
- irq_name,
- slave_pdata->irq);
- warn_result = slaveirq_init(slave_client->adapter,
- slave_pdata, irq_name);
- if (result)
- dev_warn(&slave_client->adapter->dev,
- "%s irq assigned error: %d",
- slave_descr->name, warn_result);
- } else {
- dev_warn(&slave_client->adapter->dev,
- "%s irq not assigned: %d %d %d",
- slave_descr->name,
- result, (int)irq_name, slave_pdata->irq);
- }
-
- return result;
-}
-EXPORT_SYMBOL(inv_mpu_register_slave);
-
-void inv_mpu_unregister_slave(struct i2c_client *slave_client,
- struct ext_slave_platform_data *slave_pdata,
- struct ext_slave_descr *(*get_slave_descr)(void))
-{
- struct mpu_private_data *mpu = mpu_data;
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct ext_slave_descr *slave_descr;
- int result;
-
- dev_info(&slave_client->adapter->dev, "%s\n", __func__);
-
- if (!slave_client || !slave_pdata || !get_slave_descr)
- return;
-
- if (slave_pdata->irq)
- slaveirq_exit(slave_pdata);
-
- slave_descr = get_slave_descr();
- if (!slave_descr)
- return;
-
- mutex_lock(&mpu->mutex);
-
- if (slave_descr->exit) {
- result = slave_descr->exit(slave_client->adapter,
- slave_descr,
- slave_pdata);
- if (result)
- dev_err(&slave_client->adapter->dev,
- "Accel exit failed %d\n", result);
- }
- mldl_cfg->slave[slave_descr->type] = NULL;
- mldl_cfg->pdata_slave[slave_descr->type] = NULL;
- mpu->slave_modules[slave_descr->type] = NULL;
-
- mutex_unlock(&mpu->mutex);
-
-}
-EXPORT_SYMBOL(inv_mpu_unregister_slave);
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static const struct i2c_device_id mpu_id[] = {
- {"mpu3050", 0},
- {"mpu6050", 0},
- {"mpu6050_no_accel", 0},
- {}
-};
-MODULE_DEVICE_TABLE(i2c, mpu_id);
-
-static int mpu6050_factory_on(struct i2c_client *client)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(this_client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- int prev_gyro_suspended = 0;
-
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
-
- pr_info("----------\n%s\n----------", __func__);
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = client->adapter;
-
- mutex_lock(&mpu->mutex);
- if (1) {
- (void)inv_mpu_resume(mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE],
- mldl_cfg->inv_mpu_cfg->requested_sensors);
- }
- mutex_unlock(&mpu->mutex);
- return prev_gyro_suspended;
-}
-
-static ssize_t mpu6050_power_on(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int count = 0;
-
- dev_dbg(dev, "this_client = %d\n", (int)this_client);
- count = sprintf(buf, "%d\n", (this_client != NULL ? 1 : 0));
-
- return count;
-}
-
-static ssize_t mpu6050_get_temp(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int count = 0;
- short int temperature = 0;
- unsigned char data[2];
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(this_client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
-
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = this_client->adapter;
-
- mpu6050_factory_on(this_client);
-
- /* MPUREG_TEMP_OUT_H, */ /* 27 0x1b */
- /* MPUREG_TEMP_OUT_L, */ /* 28 0x1c */
- /* TEMP_OUT_H/L: 16-bit temperature data (2's complement data format) */
- inv_serial_read(slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- DEFAULT_MPU_SLAVEADDR,
- MPUREG_TEMP_OUT_H,
- 2,
- data);
- temperature = (short) (((data[0]) << 8) | data[1]);
- temperature = (((temperature + 521) / 340) + 35);
- pr_info("read temperature = %d\n", temperature);
-
- count = sprintf(buf, "%d\n", temperature);
-
- return count;
-}
-
-static ssize_t mpu6050_acc_read(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
-
- s16 x, y, z;
- int count = 0;
- struct mpu_private_data *mpu =
- (struct mpu_private_data *) i2c_get_clientdata(this_client);
- struct i2c_client *client = mpu->client;
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- int retval = 0;
- unsigned char data[6];
-
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = client->adapter;
-
- /* mutex_lock(&mpu->mutex); */
- mpu_accel_enable_set(1);
- msleep(20);
- retval = inv_serial_read(slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- 0x68, 0x3B, 6, data);
-
- x = (s16)(((data[0] << 8) | data[1]) - cal_data.x);/*CAL_DIV;*/
- y = (s16)(((data[2] << 8) | data[3]) - cal_data.y);/*CAL_DIV;*/
- z = (s16)(((data[4] << 8) | data[5]) - cal_data.z);/*CAL_DIV;*/
-
- z *= -1;
-
- pr_info("mpu6050_acc_read x: %d y: %d z: %d", y, x, z);
- mpu_accel_enable_set(0);
- msleep(20);
- /* mutex_unlock(&mpu->mutex); */
-
- count = sprintf(buf, "%d, %d, %d\n", y, x, z);
-
- return count;
-}
-
-static ssize_t accel_calibration_show(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
-
- int count = 0;
-
- pr_info(" accel_calibration_show %d %d %d",
- cal_data.x, cal_data.y, cal_data.z);
-
- count = sprintf(buf, "%d %d %d\n", cal_data.x, cal_data.y, cal_data.z);
- return count;
-}
-
-static ssize_t accel_calibration_store(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t size)
-{
- bool do_calib;
- int err;
- int count = 0;
- char str[11];
-
- if (sysfs_streq(buf, "1"))
- do_calib = true;
- else if (sysfs_streq(buf, "0"))
- do_calib = false;
- else {
- pr_debug("%s: invalid value %d", __func__, *buf);
- return -EINVAL;
- }
-
- err = accel_do_calibrate(do_calib);
- if (err < 0)
- pr_err("%s: accel_do_calibrate() failed", __func__);
-
- pr_info("accel_calibration_show :%d %d %d",
- cal_data.x, cal_data.y, cal_data.z);
- if (err > 0)
- err = 0;
- count = sprintf(str, "%d\n", err);
-
- strcpy(str, buf);
- return count;
-}
-
-static ssize_t mpu_vendor_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- return sprintf(buf, "%s\n", MPU_VENDOR);
-}
-
-static ssize_t mpu_name_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- return sprintf(buf, "%s\n", MPU_PART_ID);
-}
-
-static int akm8975_wait_for_data_ready(struct i2c_adapter *sl_adapter)
-{
- int err;
- u8 buf;
- int count = 10;
-
- while (1) {
- msleep(20);
- err = inv_serial_read(sl_adapter, 0x0C,
- AK8975_REG_ST1, sizeof(buf), &buf);
- if (err) {
- pr_err("%s: read data over i2c failed\n", __func__);
- return -EIO;
- }
-
- if (buf&0x1)
- break;
-
- count--;
- if (!count)
- break;
- }
- return 0;
-
-}
-
-static ssize_t ak8975_adc(struct device *dev,
- struct device_attribute *attr, char *strbuf)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *) i2c_get_clientdata(this_client);
- struct i2c_client *client = mpu->client;
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
-
-
- u8 buf[8];
- s16 x, y, z;
- int err, success;
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
-
- pr_info("%s %s", __func__, client->name);
-
- mutex_lock(&mpu->mutex);
-
- /* start ADC conversion */
- err = inv_serial_single_write(slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- 0x0C, AK8975_REG_CNTL, AK8975_MODE_SNG_MEASURE);
-
- if (err)
- pr_err("ak8975_adc write err:%d\n", err);
-
- /* wait for ADC conversion to complete */
-
- err = akm8975_wait_for_data_ready
- (slave_adapter[EXT_SLAVE_TYPE_COMPASS]);
- if (err) {
- pr_err("%s: wait for data ready failed\n", __func__);
- return err;
- }
-
- msleep(20);/*msleep(10);*/
- /* get the value and report it */
- err = inv_serial_read(slave_adapter[EXT_SLAVE_TYPE_COMPASS], 0x0C,
- AK8975_REG_ST1, sizeof(buf), buf);
-
- if (err) {
- pr_err("%s: read data over i2c failed %d\n", __func__, err);
- mutex_unlock(&mpu->mutex);
- return -EIO;
- }
- mutex_unlock(&mpu->mutex);
-
- /* buf[0] is status1, buf[7] is status2 */
- if ((buf[0] == 0) | (buf[7] == 1))
- success = 0;
- else
- success = 1;
-
- x = buf[1] | (buf[2] << 8);
- y = buf[3] | (buf[4] << 8);
- z = buf[5] | (buf[6] << 8);
-
- pr_err("%s: raw x = %d, y = %d, z = %d\n", __func__, x, y, z);
-
- return snprintf(strbuf, PAGE_SIZE, "%s, %d, %d, %d\n",
- (success ? "OK" : "NG"), x, y, z);
-}
-
-static ssize_t ak8975_check_cntl(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *) i2c_get_clientdata(this_client);
- struct i2c_client *client = mpu->client;
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
-
- int ii, err;
- u8 data;
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- mutex_lock(&mpu->mutex);
- err = inv_serial_single_write(slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- 0x0C, AK8975_REG_CNTL,
- AK8975_MODE_POWER_DOWN);
-
- if (err) {
- pr_err("ak8975_adc write err:%d\n", err);
- mutex_unlock(&mpu->mutex);
- return -EIO;
- }
- err = inv_serial_read(slave_adapter[EXT_SLAVE_TYPE_COMPASS], 0x0C,
- AK8975_REG_CNTL, sizeof(data), &data);
- if (err) {
- pr_err("%s: read data over i2c failed %d\n", __func__, err);
- mutex_unlock(&mpu->mutex);
- return -EIO;
- }
- mutex_unlock(&mpu->mutex);
-
- return snprintf(buf, PAGE_SIZE, "%s\n",
- data == AK8975_MODE_POWER_DOWN ? "OK" : "NG");
-
-}
-
-static ssize_t akm8975_rawdata_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *) i2c_get_clientdata(this_client);
- struct i2c_client *client = mpu->client;
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
-
- short x = 0, y = 0, z = 0;
- int err;
- u8 data[8];
-
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
-
- mutex_lock(&mpu->mutex);
- err = inv_serial_single_write(slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- 0x0C, AK8975_REG_CNTL,
- AK8975_MODE_SNG_MEASURE);
-
- if (err) {
- pr_err("ak8975_adc write err:%d\n", err);
- mutex_unlock(&mpu->mutex);
- goto done;
-
- }
-
- err = akm8975_wait_for_data_ready
- (slave_adapter[EXT_SLAVE_TYPE_COMPASS]);
- if (err) {
- mutex_unlock(&mpu->mutex);
- goto done;
- }
-
- /* get the value and report it */
- err = inv_serial_read(slave_adapter[EXT_SLAVE_TYPE_COMPASS], 0x0C,
- AK8975_REG_ST1, sizeof(data), data);
-
- if (err) {
- pr_err("%s: read data over i2c failed %d\n", __func__, err);
- mutex_unlock(&mpu->mutex);
- return -EIO;
- }
-
- mutex_unlock(&mpu->mutex);
-
- if (err) {
- pr_err("%s: failed to read %d bytes of mag data\n",
- __func__, sizeof(data));
- goto done;
- }
-
- if (data[0] & 0x01) {
- x = (data[2] << 8) + data[1];
- y = (data[4] << 8) + data[3];
- z = (data[6] << 8) + data[5];
- } else
- pr_err("%s: invalid raw data(st1 = %d)\n",
- __func__, data[0] & 0x01);
-
-done:
- return snprintf(buf, PAGE_SIZE, "%d,%d,%d\n", x, y, z);
-}
-
-struct ak8975_config {
- char asa[COMPASS_NUM_AXES]; /* axis sensitivity adjustment */
-};
-
-struct ak8975_private_data {
- struct ak8975_config init;
-};
-static ssize_t ak8975c_get_status(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *) i2c_get_clientdata(this_client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int success;
-
- struct ak8975_private_data *private_data =
- (struct ak8975_private_data *)
- pdata_slave[EXT_SLAVE_TYPE_COMPASS]->private_data;
- if ((private_data->init.asa[0] == 0) |
- (private_data->init.asa[0] == 0xff) |
- (private_data->init.asa[1] == 0) |
- (private_data->init.asa[1] == 0xff) |
- (private_data->init.asa[2] == 0) |
- (private_data->init.asa[2] == 0xff))
- success = 0;
- else
- success = 1;
-
- return snprintf(buf, PAGE_SIZE, "%s\n", (success ? "OK" : "NG"));
-
-}
-
-int ak8975c_selftest(struct i2c_adapter *slave_adapter,
- struct ak8975_private_data *private_data, int *sf)
-{
- int err;
- u8 data;
- u8 buf[6];
- int count = 20;
- s16 x, y, z;
-
- /* set ATSC self test bit to 1 */
- err = inv_serial_single_write(slave_adapter, 0x0C,
- AK8975_REG_ASTC, 0x40);
-
- /* start self test */
- err = inv_serial_single_write(slave_adapter, 0x0C,
- AK8975_REG_CNTL, AK8975_MODE_SELF_TEST);
-
- /* wait for data ready */
- while (1) {
- msleep(20);
- err = inv_serial_read(slave_adapter, 0x0C,
- AK8975_REG_ST1, sizeof(data), &data);
-
- if (data == 1)
- break;
- count--;
- if (!count)
- break;
- }
- err = inv_serial_read(slave_adapter, 0x0C,
- AK8975_REG_HXL, sizeof(buf), buf);
-
- /* set ATSC self test bit to 0 */
- err = inv_serial_single_write(slave_adapter, 0x0C,
- AK8975_REG_ASTC, 0x00);
-
- x = buf[0] | (buf[1] << 8);
- y = buf[2] | (buf[3] << 8);
- z = buf[4] | (buf[5] << 8);
-
- /* Hadj = (H*(Asa+128))/256 */
- x = (x*(private_data->init.asa[0] + 128)) >> 8;
- y = (y*(private_data->init.asa[1] + 128)) >> 8;
- z = (z*(private_data->init.asa[2] + 128)) >> 8;
-
- pr_info("%s: self test x = %d, y = %d, z = %d\n",
- __func__, x, y, z);
- if ((x >= -200) && (x <= 200))
- pr_info("%s: x passed self test, expect -200<=x<=200\n",
- __func__);
- else
- pr_info("%s: x failed self test, expect -200<=x<=200\n",
- __func__);
- if ((y >= -200) && (y <= 200))
- pr_info("%s: y passed self test, expect -200<=y<=200\n",
- __func__);
- else
- pr_info("%s: y failed self test, expect -200<=y<=200\n",
- __func__);
- if ((z >= -3200) && (z <= -800))
- pr_info("%s: z passed self test, expect -3200<=z<=-800\n",
- __func__);
- else
- pr_info("%s: z failed self test, expect -3200<=z<=-800\n",
- __func__);
-
- sf[0] = x;
- sf[1] = y;
- sf[2] = z;
-
- if (((x >= -200) && (x <= 200)) &&
- ((y >= -200) && (y <= 200)) &&
- ((z >= -3200) && (z <= -800)))
- return 1;
- else
- return 0;
-}
-
-static ssize_t ak8975c_get_selftest(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *) i2c_get_clientdata(this_client);
- struct i2c_client *client = mpu->client;
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
-
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- struct ak8975_private_data *private_data =
- (struct ak8975_private_data *)
- pdata_slave[EXT_SLAVE_TYPE_COMPASS]->private_data;
- int ii, success;
- int sf[3] = {0,};
- int retry = 3;
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
- do {
- retry--;
- success = ak8975c_selftest(
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- private_data, sf);
- if (success)
- break;
- } while (retry > 0);
-
- return snprintf(buf, PAGE_SIZE, "%d, %d, %d, %d\n",
- success, sf[0], sf[1], sf[2]);
-}
-
-static ssize_t akm_vendor_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- return sprintf(buf, "%s\n", MAG_VENDOR);
-}
-
-static ssize_t akm_name_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- return sprintf(buf, "%s\n", MAG_PART_ID);
-}
-
-static DEVICE_ATTR(power_on, S_IRUGO, mpu6050_power_on, NULL);
-static DEVICE_ATTR(temperature, S_IRUGO, mpu6050_get_temp, NULL);
-
-static DEVICE_ATTR(calibration, S_IRUGO | S_IWUSR,
- accel_calibration_show, accel_calibration_store);
-
-static DEVICE_ATTR(raw_data, S_IRUGO, mpu6050_acc_read, NULL);
-
-static DEVICE_ATTR(vendor, S_IRUGO, mpu_vendor_show, NULL);
-static DEVICE_ATTR(name, S_IRUGO, mpu_name_show, NULL);
-
-
-static DEVICE_ATTR(adc, S_IRUGO, ak8975_adc, NULL);
-
-static DEVICE_ATTR(dac, S_IRUGO, ak8975_check_cntl, NULL);
-static DEVICE_ATTR(status, S_IRUGO, ak8975c_get_status, NULL);
-static DEVICE_ATTR(selftest, S_IRUGO, ak8975c_get_selftest, NULL);
-
-static struct device_attribute dev_attr_mag_rawdata =
- __ATTR(raw_data, S_IRUGO, akm8975_rawdata_show, NULL);
-
-static struct device_attribute dev_attr_mag_vendor =
- __ATTR(vendor, S_IRUGO, akm_vendor_show, NULL);
-
-static struct device_attribute dev_attr_mag_name =
- __ATTR(name, S_IRUGO, akm_name_show, NULL);
-
-static struct device_attribute *gyro_sensor_attrs[] = {
- &dev_attr_power_on,
- &dev_attr_temperature,
- &dev_attr_vendor,
- &dev_attr_name,
- NULL,
-};
-
-static struct device_attribute *accel_sensor_attrs[] = {
- &dev_attr_raw_data,
- &dev_attr_calibration,
- &dev_attr_vendor,
- &dev_attr_name,
- NULL,
-};
-
-static struct device_attribute *magnetic_sensor_attrs[] = {
- &dev_attr_adc,
- &dev_attr_mag_rawdata,
- &dev_attr_dac,
- &dev_attr_status,
- &dev_attr_selftest,
- &dev_attr_mag_vendor,
- &dev_attr_mag_name,
- NULL,
-};
-
-int mpu_probe(struct i2c_client *client, const struct i2c_device_id *devid)
-{
- struct mpu_platform_data *pdata;
- struct mpu_private_data *mpu;
- struct mldl_cfg *mldl_cfg;
- struct device *gyro_sensor_device = NULL;
- struct device *accel_sensor_device = NULL;
- struct device *magnetic_sensor_device = NULL;
- int res = 0;
- int ii;
-
- pr_info("===========\n%s\n===========", __func__);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- res = -ENODEV;
- goto out_check_functionality_failed;
- }
-
- mpu = kzalloc(sizeof(struct mpu_private_data), GFP_KERNEL);
- if (!mpu) {
- res = -ENOMEM;
- goto out_alloc_data_failed;
- }
- mldl_cfg = &mpu->mldl_cfg;
- mldl_cfg->mpu_ram = &mpu->mpu_ram;
- mldl_cfg->mpu_gyro_cfg = &mpu->mpu_gyro_cfg;
- mldl_cfg->mpu_offsets = &mpu->mpu_offsets;
- mldl_cfg->mpu_chip_info = &mpu->mpu_chip_info;
- mldl_cfg->inv_mpu_cfg = &mpu->inv_mpu_cfg;
- mldl_cfg->inv_mpu_state = &mpu->inv_mpu_state;
-
- mldl_cfg->mpu_ram->length = MPU_MEM_NUM_RAM_BANKS * MPU_MEM_BANK_SIZE;
- mldl_cfg->mpu_ram->ram = kzalloc(mldl_cfg->mpu_ram->length, GFP_KERNEL);
- if (!mldl_cfg->mpu_ram->ram) {
- res = -ENOMEM;
- goto out_alloc_ram_failed;
- }
- mpu_data = mpu;
- i2c_set_clientdata(client, mpu);
- this_client = client;
- mpu->client = client;
-
- init_waitqueue_head(&mpu->mpu_event_wait);
- mutex_init(&mpu->mutex);
- init_completion(&mpu->completion);
-
-
- mpu->response_timeout = 1; /* Seconds */
- mpu->timeout.function = mpu_pm_timeout;
- mpu->timeout.data = (u_long) mpu;
- init_timer(&mpu->timeout);
-#if 0
- mpu->nb.notifier_call = mpu_pm_notifier_callback;
- mpu->nb.priority = 0;
- res = register_pm_notifier(&mpu->nb);
- if (res) {
- dev_err(&client->adapter->dev,
- "Unable to register pm_notifier %d", res);
- goto out_register_pm_notifier_failed;
- }
-#endif
- pdata = (struct mpu_platform_data *)client->dev.platform_data;
- if (!pdata) {
- dev_warn(&client->adapter->dev,
- "Missing platform data for mpu");
- }
- mldl_cfg->pdata = pdata;
-
- mldl_cfg->mpu_chip_info->addr = client->addr;
- res = inv_mpu_open(&mpu->mldl_cfg, client->adapter, NULL, NULL, NULL);
-
- if (res) {
- dev_err(&client->adapter->dev,
- "Unable to open %s %d", MPU_NAME, res);
- res = -ENODEV;
- goto out_whoami_failed;
- }
-
- mpu->dev.minor = MISC_DYNAMIC_MINOR;
- mpu->dev.name = "mpu";
- mpu->dev.fops = &mpu_fops;
- res = misc_register(&mpu->dev);
- if (res < 0) {
- dev_err(&client->adapter->dev,
- "ERROR: misc_register returned %d", res);
- goto out_misc_register_failed;
- }
-
- if (client->irq) {
- dev_info(&client->adapter->dev,
- "Installing irq using %d", client->irq);
- res = mpuirq_init(client, mldl_cfg);
- if (res)
- goto out_mpuirq_failed;
- } else {
- dev_warn(&client->adapter->dev,
- "Missing %s IRQ", MPU_NAME);
- }
- if (!strcmp(mpu_id[1].name, devid->name)) {
- /* Special case to re-use the inv_mpu_register_slave */
- struct ext_slave_platform_data *slave_pdata;
- slave_pdata = kzalloc(sizeof(*slave_pdata), GFP_KERNEL);
- if (!slave_pdata) {
- res = -ENOMEM;
- goto out_slave_pdata_kzalloc_failed;
- }
- slave_pdata->bus = EXT_SLAVE_BUS_PRIMARY;
- for (ii = 0; ii < 9; ii++)
- slave_pdata->orientation[ii] = pdata->orientation[ii];
- res = inv_mpu_register_slave(
- NULL, client,
- slave_pdata,
- mpu6050_get_slave_descr);
- if (res) {
- /* if inv_mpu_register_slave fails there are no pointer
- references to the memory allocated to slave_pdata */
- kfree(slave_pdata);
- goto out_slave_pdata_kzalloc_failed;
- }
- }
-
- res = sensors_register(gyro_sensor_device, NULL, gyro_sensor_attrs,
- "gyro_sensor");
- if (res) {
- pr_err("%s: cound not register gyro sensor device(%d).",
- __func__, res);
- goto out_sensor_register_failed;
- }
-
- res = sensors_register(accel_sensor_device, NULL, accel_sensor_attrs,
- "accelerometer_sensor");
- if (res) {
- pr_err("%s: cound not register accelerometer " \
- "sensor device(%d).",
- __func__, res);
- goto out_sensor_register_failed;
- }
-
- res = sensors_register(magnetic_sensor_device, NULL,
- magnetic_sensor_attrs, "magnetic_sensor");
- if (res) {
- pr_err("%s: cound not register magnetic sensor device(%d).",
- __func__, res);
- goto out_sensor_register_failed;
- }
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
- mpu->early_suspend.level = EARLY_SUSPEND_LEVEL_DISABLE_FB + 1;
- mpu->early_suspend.suspend = mpu_dev_early_suspend;
- mpu->early_suspend.resume = mpu_dev_early_resume;
- register_early_suspend(&mpu->early_suspend);
-#endif
-
- return res;
-
-out_sensor_register_failed:
-out_slave_pdata_kzalloc_failed:
- if (client->irq)
- mpuirq_exit();
-out_mpuirq_failed:
- misc_deregister(&mpu->dev);
-out_misc_register_failed:
- inv_mpu_close(&mpu->mldl_cfg, client->adapter, NULL, NULL, NULL);
-out_whoami_failed:
- unregister_pm_notifier(&mpu->nb);
-#if 0
-out_register_pm_notifier_failed:
-#endif
- kfree(mldl_cfg->mpu_ram->ram);
- mpu_data = NULL;
-out_alloc_ram_failed:
- kfree(mpu);
-out_alloc_data_failed:
-out_check_functionality_failed:
- dev_err(&client->adapter->dev, "%s failed %d", __func__, res);
- return res;
-
-}
-
-static int mpu_remove(struct i2c_client *client)
-{
- struct mpu_private_data *mpu = i2c_get_clientdata(client);
- struct i2c_adapter *slave_adapter[EXT_SLAVE_NUM_TYPES];
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct ext_slave_platform_data **pdata_slave = mldl_cfg->pdata_slave;
- int ii;
-
- for (ii = 0; ii < EXT_SLAVE_NUM_TYPES; ii++) {
- if (!pdata_slave[ii])
- slave_adapter[ii] = NULL;
- else
- slave_adapter[ii] =
- i2c_get_adapter(pdata_slave[ii]->adapt_num);
- }
-
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE] = client->adapter;
- dev_dbg(&client->adapter->dev, "%s", __func__);
-
- inv_mpu_close(mldl_cfg,
- slave_adapter[EXT_SLAVE_TYPE_GYROSCOPE],
- slave_adapter[EXT_SLAVE_TYPE_ACCEL],
- slave_adapter[EXT_SLAVE_TYPE_COMPASS],
- slave_adapter[EXT_SLAVE_TYPE_PRESSURE]);
-
- if (mldl_cfg->slave[EXT_SLAVE_TYPE_ACCEL] &&
- (mldl_cfg->slave[EXT_SLAVE_TYPE_ACCEL]->id ==
- ACCEL_ID_MPU6050)) {
- struct ext_slave_platform_data *slave_pdata =
- mldl_cfg->pdata_slave[EXT_SLAVE_TYPE_ACCEL];
- inv_mpu_unregister_slave(
- client,
- mldl_cfg->pdata_slave[EXT_SLAVE_TYPE_ACCEL],
- mpu6050_get_slave_descr);
- kfree(slave_pdata);
- }
-
- if (client->irq)
- mpuirq_exit();
-
- misc_deregister(&mpu->dev);
-
- unregister_pm_notifier(&mpu->nb);
-
- kfree(mpu->mldl_cfg.mpu_ram->ram);
- kfree(mpu);
-
- return 0;
-}
-
-static struct i2c_driver mpu_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = mpu_probe,
- .remove = mpu_remove,
- .id_table = mpu_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = MPU_NAME,
- },
- .address_list = normal_i2c,
- .shutdown = mpu_shutdown, /* optional */
- .suspend = mpu_dev_suspend, /* optional */
- .resume = mpu_dev_resume, /* optional */
-
-};
-
-static int __init mpu_init(void)
-{
- int res = i2c_add_driver(&mpu_driver);
- pr_info("%s: Probe name %s", __func__, MPU_NAME);
- if (res)
- pr_err("%s failed", __func__);
- return res;
-}
-
-static void __exit mpu_exit(void)
-{
- pr_info("%s", __func__);
- i2c_del_driver(&mpu_driver);
-}
-
-module_init(mpu_init);
-module_exit(mpu_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("User space character device interface for MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS(MPU_NAME);
diff --git a/drivers/misc/inv_mpu/mpu-dev.h b/drivers/misc/inv_mpu/mpu-dev.h
deleted file mode 100644
index 0b352c9..0000000
--- a/drivers/misc/inv_mpu/mpu-dev.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-
-#ifndef __MPU_DEV_H__
-#define __MPU_DEV_H__
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/mpu_411.h>
-
-int inv_mpu_register_slave(struct module *slave_module,
- struct i2c_client *client,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_descr *(*slave_descr)(void));
-
-void inv_mpu_unregister_slave(struct i2c_client *client,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_descr *(*slave_descr)(void));
-
-extern signed short gAccelOffset[3];
-extern struct class *sensors_class;
-extern int sensors_register(struct device *dev, void * drvdata,
- struct device_attribute *attributes[], char *name);
-
-#endif
diff --git a/drivers/misc/inv_mpu/mpu6050b1.h b/drivers/misc/inv_mpu/mpu6050b1.h
deleted file mode 100644
index c486784..0000000
--- a/drivers/misc/inv_mpu/mpu6050b1.h
+++ /dev/null
@@ -1,437 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup
- * @brief
- *
- * @{
- * @file mpu6050.h
- * @brief
- */
-
-#ifndef __MPU_H_
-#error Do not include this file directly. Include mpu.h instead.
-#endif
-
-#ifndef __MPU6050B1_H_
-#define __MPU6050B1_H_
-
-
-#define MPU_NAME "mpu6050"
-#define DEFAULT_MPU_SLAVEADDR 0x68
-extern struct acc_data cal_data;
-
-
-/*==== MPU6050B1 REGISTER SET ====*/
-enum {
- MPUREG_XG_OFFS_TC = 0, /* 0x00, 0 */
- MPUREG_YG_OFFS_TC, /* 0x01, 1 */
- MPUREG_ZG_OFFS_TC, /* 0x02, 2 */
- MPUREG_X_FINE_GAIN, /* 0x03, 3 */
- MPUREG_Y_FINE_GAIN, /* 0x04, 4 */
- MPUREG_Z_FINE_GAIN, /* 0x05, 5 */
- MPUREG_XA_OFFS_H, /* 0x06, 6 */
- MPUREG_XA_OFFS_L, /* 0x07, 7 */
- MPUREG_YA_OFFS_H, /* 0x08, 8 */
- MPUREG_YA_OFFS_L, /* 0x09, 9 */
- MPUREG_ZA_OFFS_H, /* 0x0a, 10 */
- MPUREG_ZA_OFFS_L, /* 0x0B, 11 */
- MPUREG_PRODUCT_ID, /* 0x0c, 12 */
- MPUREG_0D_RSVD, /* 0x0d, 13 */
- MPUREG_0E_RSVD, /* 0x0e, 14 */
- MPUREG_0F_RSVD, /* 0x0f, 15 */
- MPUREG_10_RSVD, /* 0x00, 16 */
- MPUREG_11_RSVD, /* 0x11, 17 */
- MPUREG_12_RSVD, /* 0x12, 18 */
- MPUREG_XG_OFFS_USRH, /* 0x13, 19 */
- MPUREG_XG_OFFS_USRL, /* 0x14, 20 */
- MPUREG_YG_OFFS_USRH, /* 0x15, 21 */
- MPUREG_YG_OFFS_USRL, /* 0x16, 22 */
- MPUREG_ZG_OFFS_USRH, /* 0x17, 23 */
- MPUREG_ZG_OFFS_USRL, /* 0x18, 24 */
- MPUREG_SMPLRT_DIV, /* 0x19, 25 */
- MPUREG_CONFIG, /* 0x1A, 26 */
- MPUREG_GYRO_CONFIG, /* 0x1b, 27 */
- MPUREG_ACCEL_CONFIG, /* 0x1c, 28 */
- MPUREG_ACCEL_FF_THR, /* 0x1d, 29 */
- MPUREG_ACCEL_FF_DUR, /* 0x1e, 30 */
- MPUREG_ACCEL_MOT_THR, /* 0x1f, 31 */
- MPUREG_ACCEL_MOT_DUR, /* 0x20, 32 */
- MPUREG_ACCEL_ZRMOT_THR, /* 0x21, 33 */
- MPUREG_ACCEL_ZRMOT_DUR, /* 0x22, 34 */
- MPUREG_FIFO_EN, /* 0x23, 35 */
- MPUREG_I2C_MST_CTRL, /* 0x24, 36 */
- MPUREG_I2C_SLV0_ADDR, /* 0x25, 37 */
- MPUREG_I2C_SLV0_REG, /* 0x26, 38 */
- MPUREG_I2C_SLV0_CTRL, /* 0x27, 39 */
- MPUREG_I2C_SLV1_ADDR, /* 0x28, 40 */
- MPUREG_I2C_SLV1_REG, /* 0x29, 41 */
- MPUREG_I2C_SLV1_CTRL, /* 0x2a, 42 */
- MPUREG_I2C_SLV2_ADDR, /* 0x2B, 43 */
- MPUREG_I2C_SLV2_REG, /* 0x2c, 44 */
- MPUREG_I2C_SLV2_CTRL, /* 0x2d, 45 */
- MPUREG_I2C_SLV3_ADDR, /* 0x2E, 46 */
- MPUREG_I2C_SLV3_REG, /* 0x2f, 47 */
- MPUREG_I2C_SLV3_CTRL, /* 0x30, 48 */
- MPUREG_I2C_SLV4_ADDR, /* 0x31, 49 */
- MPUREG_I2C_SLV4_REG, /* 0x32, 50 */
- MPUREG_I2C_SLV4_DO, /* 0x33, 51 */
- MPUREG_I2C_SLV4_CTRL, /* 0x34, 52 */
- MPUREG_I2C_SLV4_DI, /* 0x35, 53 */
- MPUREG_I2C_MST_STATUS, /* 0x36, 54 */
- MPUREG_INT_PIN_CFG, /* 0x37, 55 */
- MPUREG_INT_ENABLE, /* 0x38, 56 */
- MPUREG_DMP_INT_STATUS, /* 0x39, 57 */
- MPUREG_INT_STATUS, /* 0x3A, 58 */
- MPUREG_ACCEL_XOUT_H, /* 0x3B, 59 */
- MPUREG_ACCEL_XOUT_L, /* 0x3c, 60 */
- MPUREG_ACCEL_YOUT_H, /* 0x3d, 61 */
- MPUREG_ACCEL_YOUT_L, /* 0x3e, 62 */
- MPUREG_ACCEL_ZOUT_H, /* 0x3f, 63 */
- MPUREG_ACCEL_ZOUT_L, /* 0x40, 64 */
- MPUREG_TEMP_OUT_H, /* 0x41, 65 */
- MPUREG_TEMP_OUT_L, /* 0x42, 66 */
- MPUREG_GYRO_XOUT_H, /* 0x43, 67 */
- MPUREG_GYRO_XOUT_L, /* 0x44, 68 */
- MPUREG_GYRO_YOUT_H, /* 0x45, 69 */
- MPUREG_GYRO_YOUT_L, /* 0x46, 70 */
- MPUREG_GYRO_ZOUT_H, /* 0x47, 71 */
- MPUREG_GYRO_ZOUT_L, /* 0x48, 72 */
- MPUREG_EXT_SLV_SENS_DATA_00, /* 0x49, 73 */
- MPUREG_EXT_SLV_SENS_DATA_01, /* 0x4a, 74 */
- MPUREG_EXT_SLV_SENS_DATA_02, /* 0x4b, 75 */
- MPUREG_EXT_SLV_SENS_DATA_03, /* 0x4c, 76 */
- MPUREG_EXT_SLV_SENS_DATA_04, /* 0x4d, 77 */
- MPUREG_EXT_SLV_SENS_DATA_05, /* 0x4e, 78 */
- MPUREG_EXT_SLV_SENS_DATA_06, /* 0x4F, 79 */
- MPUREG_EXT_SLV_SENS_DATA_07, /* 0x50, 80 */
- MPUREG_EXT_SLV_SENS_DATA_08, /* 0x51, 81 */
- MPUREG_EXT_SLV_SENS_DATA_09, /* 0x52, 82 */
- MPUREG_EXT_SLV_SENS_DATA_10, /* 0x53, 83 */
- MPUREG_EXT_SLV_SENS_DATA_11, /* 0x54, 84 */
- MPUREG_EXT_SLV_SENS_DATA_12, /* 0x55, 85 */
- MPUREG_EXT_SLV_SENS_DATA_13, /* 0x56, 86 */
- MPUREG_EXT_SLV_SENS_DATA_14, /* 0x57, 87 */
- MPUREG_EXT_SLV_SENS_DATA_15, /* 0x58, 88 */
- MPUREG_EXT_SLV_SENS_DATA_16, /* 0x59, 89 */
- MPUREG_EXT_SLV_SENS_DATA_17, /* 0x5a, 90 */
- MPUREG_EXT_SLV_SENS_DATA_18, /* 0x5B, 91 */
- MPUREG_EXT_SLV_SENS_DATA_19, /* 0x5c, 92 */
- MPUREG_EXT_SLV_SENS_DATA_20, /* 0x5d, 93 */
- MPUREG_EXT_SLV_SENS_DATA_21, /* 0x5e, 94 */
- MPUREG_EXT_SLV_SENS_DATA_22, /* 0x5f, 95 */
- MPUREG_EXT_SLV_SENS_DATA_23, /* 0x60, 96 */
- MPUREG_ACCEL_INTEL_STATUS, /* 0x61, 97 */
- MPUREG_62_RSVD, /* 0x62, 98 */
- MPUREG_I2C_SLV0_DO, /* 0x63, 99 */
- MPUREG_I2C_SLV1_DO, /* 0x64, 100 */
- MPUREG_I2C_SLV2_DO, /* 0x65, 101 */
- MPUREG_I2C_SLV3_DO, /* 0x66, 102 */
- MPUREG_I2C_MST_DELAY_CTRL, /* 0x67, 103 */
- MPUREG_SIGNAL_PATH_RESET, /* 0x68, 104 */
- MPUREG_ACCEL_INTEL_CTRL, /* 0x69, 105 */
- MPUREG_USER_CTRL, /* 0x6A, 106 */
- MPUREG_PWR_MGMT_1, /* 0x6B, 107 */
- MPUREG_PWR_MGMT_2, /* 0x6C, 108 */
- MPUREG_BANK_SEL, /* 0x6D, 109 */
- MPUREG_MEM_START_ADDR, /* 0x6E, 100 */
- MPUREG_MEM_R_W, /* 0x6F, 111 */
- MPUREG_DMP_CFG_1, /* 0x70, 112 */
- MPUREG_DMP_CFG_2, /* 0x71, 113 */
- MPUREG_FIFO_COUNTH, /* 0x72, 114 */
- MPUREG_FIFO_COUNTL, /* 0x73, 115 */
- MPUREG_FIFO_R_W, /* 0x74, 116 */
- MPUREG_WHOAMI, /* 0x75, 117 */
-
- NUM_OF_MPU_REGISTERS /* = 0x76, 118 */
-};
-
-/*==== MPU6050B1 MEMORY ====*/
-enum MPU_MEMORY_BANKS {
- MEM_RAM_BANK_0 = 0,
- MEM_RAM_BANK_1,
- MEM_RAM_BANK_2,
- MEM_RAM_BANK_3,
- MEM_RAM_BANK_4,
- MEM_RAM_BANK_5,
- MEM_RAM_BANK_6,
- MEM_RAM_BANK_7,
- MEM_RAM_BANK_8,
- MEM_RAM_BANK_9,
- MEM_RAM_BANK_10,
- MEM_RAM_BANK_11,
- MPU_MEM_NUM_RAM_BANKS,
- MPU_MEM_OTP_BANK_0 = 16
-};
-
-
-/*==== MPU6050B1 parameters ====*/
-
-#define NUM_REGS (NUM_OF_MPU_REGISTERS)
-#define START_SENS_REGS (0x3B)
-#define NUM_SENS_REGS (0x60 - START_SENS_REGS + 1)
-
-/*---- MPU Memory ----*/
-#define NUM_BANKS (MPU_MEM_NUM_RAM_BANKS)
-#define BANK_SIZE (256)
-#define MEM_SIZE (NUM_BANKS * BANK_SIZE)
-#define MPU_MEM_BANK_SIZE (BANK_SIZE) /*alternative name */
-
-#define FIFO_HW_SIZE (1024)
-
-#define NUM_EXT_SLAVES (4)
-
-
-/*==== BITS FOR MPU6050B1 ====*/
-/*---- MPU6050B1 'XG_OFFS_TC' register (0, 1, 2) ----*/
-#define BIT_PU_SLEEP_MODE 0x80
-#define BITS_XG_OFFS_TC 0x7E
-#define BIT_OTP_BNK_VLD 0x01
-
-#define BIT_I2C_MST_VDDIO 0x80
-#define BITS_YG_OFFS_TC 0x7E
-#define BITS_ZG_OFFS_TC 0x7E
-/*---- MPU6050B1 'FIFO_EN' register (23) ----*/
-#define BIT_TEMP_OUT 0x80
-#define BIT_GYRO_XOUT 0x40
-#define BIT_GYRO_YOUT 0x20
-#define BIT_GYRO_ZOUT 0x10
-#define BIT_ACCEL 0x08
-#define BIT_SLV_2 0x04
-#define BIT_SLV_1 0x02
-#define BIT_SLV_0 0x01
-/*---- MPU6050B1 'CONFIG' register (1A) ----*/
-/*NONE 0xC0 */
-#define BITS_EXT_SYNC_SET 0x38
-#define BITS_DLPF_CFG 0x07
-/*---- MPU6050B1 'GYRO_CONFIG' register (1B) ----*/
-/* voluntarily modified label from BITS_FS_SEL to
- * BITS_GYRO_FS_SEL to avoid confusion with MPU
- */
-#define BITS_GYRO_FS_SEL 0x18
-/*NONE 0x07 */
-/*---- MPU6050B1 'ACCEL_CONFIG' register (1C) ----*/
-#define BITS_ACCEL_FS_SEL 0x18
-#define BITS_ACCEL_HPF 0x07
-/*---- MPU6050B1 'I2C_MST_CTRL' register (24) ----*/
-#define BIT_MULT_MST_EN 0x80
-#define BIT_WAIT_FOR_ES 0x40
-#define BIT_SLV_3_FIFO_EN 0x20
-#define BIT_I2C_MST_PSR 0x10
-#define BITS_I2C_MST_CLK 0x0F
-/*---- MPU6050B1 'I2C_SLV?_ADDR' register (27,2A,2D,30) ----*/
-#define BIT_I2C_READ 0x80
-#define BIT_I2C_WRITE 0x00
-#define BITS_I2C_ADDR 0x7F
-/*---- MPU6050B1 'I2C_SLV?_CTRL' register (27,2A,2D,30) ----*/
-#define BIT_SLV_ENABLE 0x80
-#define BIT_SLV_BYTE_SW 0x40
-#define BIT_SLV_REG_DIS 0x20
-#define BIT_SLV_GRP 0x10
-#define BITS_SLV_LENG 0x0F
-/*---- MPU6050B1 'I2C_SLV4_ADDR' register (31) ----*/
-#define BIT_I2C_SLV4_RNW 0x80
-/*---- MPU6050B1 'I2C_SLV4_CTRL' register (34) ----*/
-#define BIT_I2C_SLV4_EN 0x80
-#define BIT_SLV4_DONE_INT_EN 0x40
-#define BIT_SLV4_REG_DIS 0x20
-#define MASK_I2C_MST_DLY 0x1F
-/*---- MPU6050B1 'I2C_MST_STATUS' register (36) ----*/
-#define BIT_PASS_THROUGH 0x80
-#define BIT_I2C_SLV4_DONE 0x40
-#define BIT_I2C_LOST_ARB 0x20
-#define BIT_I2C_SLV4_NACK 0x10
-#define BIT_I2C_SLV3_NACK 0x08
-#define BIT_I2C_SLV2_NACK 0x04
-#define BIT_I2C_SLV1_NACK 0x02
-#define BIT_I2C_SLV0_NACK 0x01
-/*---- MPU6050B1 'INT_PIN_CFG' register (37) ----*/
-#define BIT_ACTL 0x80
-#define BIT_ACTL_LOW 0x80
-#define BIT_ACTL_HIGH 0x00
-#define BIT_OPEN 0x40
-#define BIT_LATCH_INT_EN 0x20
-#define BIT_INT_ANYRD_2CLEAR 0x10
-#define BIT_ACTL_FSYNC 0x08
-#define BIT_FSYNC_INT_EN 0x04
-#define BIT_BYPASS_EN 0x02
-#define BIT_CLKOUT_EN 0x01
-/*---- MPU6050B1 'INT_ENABLE' register (38) ----*/
-#define BIT_FF_EN 0x80
-#define BIT_MOT_EN 0x40
-#define BIT_ZMOT_EN 0x20
-#define BIT_FIFO_OVERFLOW_EN 0x10
-#define BIT_I2C_MST_INT_EN 0x08
-#define BIT_PLL_RDY_EN 0x04
-#define BIT_DMP_INT_EN 0x02
-#define BIT_RAW_RDY_EN 0x01
-/*---- MPU6050B1 'DMP_INT_STATUS' register (39) ----*/
-/*NONE 0x80 */
-/*NONE 0x40 */
-#define BIT_DMP_INT_5 0x20
-#define BIT_DMP_INT_4 0x10
-#define BIT_DMP_INT_3 0x08
-#define BIT_DMP_INT_2 0x04
-#define BIT_DMP_INT_1 0x02
-#define BIT_DMP_INT_0 0x01
-/*---- MPU6050B1 'INT_STATUS' register (3A) ----*/
-#define BIT_FF_INT 0x80
-#define BIT_MOT_INT 0x40
-#define BIT_ZMOT_INT 0x20
-#define BIT_FIFO_OVERFLOW_INT 0x10
-#define BIT_I2C_MST_INT 0x08
-#define BIT_PLL_RDY_INT 0x04
-#define BIT_DMP_INT 0x02
-#define BIT_RAW_DATA_RDY_INT 0x01
-/*---- MPU6050B1 'MPUREG_I2C_MST_DELAY_CTRL' register (0x67) ----*/
-#define BIT_DELAY_ES_SHADOW 0x80
-#define BIT_SLV4_DLY_EN 0x10
-#define BIT_SLV3_DLY_EN 0x08
-#define BIT_SLV2_DLY_EN 0x04
-#define BIT_SLV1_DLY_EN 0x02
-#define BIT_SLV0_DLY_EN 0x01
-/*---- MPU6050B1 'BANK_SEL' register (6D) ----*/
-#define BIT_PRFTCH_EN 0x40
-#define BIT_CFG_USER_BANK 0x20
-#define BITS_MEM_SEL 0x1f
-/*---- MPU6050B1 'USER_CTRL' register (6A) ----*/
-#define BIT_DMP_EN 0x80
-#define BIT_FIFO_EN 0x40
-#define BIT_I2C_MST_EN 0x20
-#define BIT_I2C_IF_DIS 0x10
-#define BIT_DMP_RST 0x08
-#define BIT_FIFO_RST 0x04
-#define BIT_I2C_MST_RST 0x02
-#define BIT_SIG_COND_RST 0x01
-/*---- MPU6050B1 'PWR_MGMT_1' register (6B) ----*/
-#define BIT_H_RESET 0x80
-#define BIT_SLEEP 0x40
-#define BIT_CYCLE 0x20
-#define BIT_PD_PTAT 0x08
-#define BITS_CLKSEL 0x07
-/*---- MPU6050B1 'PWR_MGMT_2' register (6C) ----*/
-#define BITS_LPA_WAKE_CTRL 0xC0
-#define BITS_LPA_WAKE_1HZ 0x00
-#define BITS_LPA_WAKE_2HZ 0x40
-#define BITS_LPA_WAKE_10HZ 0x80
-#define BITS_LPA_WAKE_40HZ 0xC0
-#define BIT_STBY_XA 0x20
-#define BIT_STBY_YA 0x10
-#define BIT_STBY_ZA 0x08
-#define BIT_STBY_XG 0x04
-#define BIT_STBY_YG 0x02
-#define BIT_STBY_ZG 0x01
-
-#define ACCEL_MOT_THR_LSB (32) /* mg */
-#define ACCEL_MOT_DUR_LSB (1)
-#define ACCEL_ZRMOT_THR_LSB_CONVERSION(mg) ((mg * 1000) / 255)
-#define ACCEL_ZRMOT_DUR_LSB (64)
-
-/*----------------------------------------------------------------------------*/
-/*---- Alternative names to take care of conflicts with current mpu3050.h ----*/
-/*----------------------------------------------------------------------------*/
-
-/*-- registers --*/
-#define MPUREG_DLPF_FS_SYNC MPUREG_CONFIG /* 0x1A */
-
-#define MPUREG_PWR_MGM MPUREG_PWR_MGMT_1 /* 0x6B */
-#define MPUREG_FIFO_EN1 MPUREG_FIFO_EN /* 0x23 */
-#define MPUREG_INT_CFG MPUREG_INT_ENABLE /* 0x38 */
-#define MPUREG_X_OFFS_USRH MPUREG_XG_OFFS_USRH /* 0x13 */
-#define MPUREG_WHO_AM_I MPUREG_WHOAMI /* 0x75 */
-#define MPUREG_23_RSVD MPUREG_EXT_SLV_SENS_DATA_00 /* 0x49 */
-
-/*-- bits --*/
-/* 'USER_CTRL' register */
-#define BIT_AUX_IF_EN BIT_I2C_MST_EN
-#define BIT_AUX_RD_LENG BIT_I2C_MST_EN
-#define BIT_IME_IF_RST BIT_I2C_MST_RST
-#define BIT_GYRO_RST BIT_SIG_COND_RST
-/* 'INT_ENABLE' register */
-#define BIT_RAW_RDY BIT_RAW_DATA_RDY_INT
-#define BIT_MPU_RDY_EN BIT_PLL_RDY_EN
-/* 'INT_STATUS' register */
-#define BIT_INT_STATUS_FIFO_OVERLOW BIT_FIFO_OVERFLOW_INT
-
-/*---- MPU6050 Silicon Revisions ----*/
-#define MPU_SILICON_REV_A2 1 /* MPU6050A2 Device */
-#define MPU_SILICON_REV_B1 2 /* MPU6050B1 Device */
-
-/*---- MPU6050 notable product revisions ----*/
-#define MPU_PRODUCT_KEY_B1_E1_5 105
-#define MPU_PRODUCT_KEY_B2_F1 431
-
-/*---- structure containing control variables used by MLDL ----*/
-/*---- MPU clock source settings ----*/
-/*---- MPU filter selections ----*/
-enum mpu_filter {
- MPU_FILTER_256HZ_NOLPF2 = 0,
- MPU_FILTER_188HZ,
- MPU_FILTER_98HZ,
- MPU_FILTER_42HZ,
- MPU_FILTER_20HZ,
- MPU_FILTER_10HZ,
- MPU_FILTER_5HZ,
- MPU_FILTER_2100HZ_NOLPF,
- NUM_MPU_FILTER
-};
-
-enum mpu_fullscale {
- MPU_FS_250DPS = 0,
- MPU_FS_500DPS,
- MPU_FS_1000DPS,
- MPU_FS_2000DPS,
- NUM_MPU_FS
-};
-
-enum mpu_clock_sel {
- MPU_CLK_SEL_INTERNAL = 0,
- MPU_CLK_SEL_PLLGYROX,
- MPU_CLK_SEL_PLLGYROY,
- MPU_CLK_SEL_PLLGYROZ,
- MPU_CLK_SEL_PLLEXT32K,
- MPU_CLK_SEL_PLLEXT19M,
- MPU_CLK_SEL_RESERVED,
- MPU_CLK_SEL_STOP,
- NUM_CLK_SEL
-};
-
-enum mpu_ext_sync {
- MPU_EXT_SYNC_NONE = 0,
- MPU_EXT_SYNC_TEMP,
- MPU_EXT_SYNC_GYROX,
- MPU_EXT_SYNC_GYROY,
- MPU_EXT_SYNC_GYROZ,
- MPU_EXT_SYNC_ACCELX,
- MPU_EXT_SYNC_ACCELY,
- MPU_EXT_SYNC_ACCELZ,
- NUM_MPU_EXT_SYNC
-};
-
-#define MPUREG_CONFIG_VALUE(ext_sync, lpf) \
- ((ext_sync << 3) | lpf)
-
-#define MPUREG_GYRO_CONFIG_VALUE(x_st, y_st, z_st, full_scale) \
- ((x_st ? 0x80 : 0) | \
- (y_st ? 0x70 : 0) | \
- (z_st ? 0x60 : 0) | \
- (full_scale << 3))
-
-#endif /* __MPU6050_H_ */
diff --git a/drivers/misc/inv_mpu/mpuirq.c b/drivers/misc/inv_mpu/mpuirq.c
deleted file mode 100644
index 2a850fa..0000000
--- a/drivers/misc/inv_mpu/mpuirq.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-#include <linux/interrupt.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/stat.h>
-#include <linux/irq.h>
-#include <linux/signal.h>
-#include <linux/miscdevice.h>
-#include <linux/i2c.h>
-#include <linux/i2c-dev.h>
-#include <linux/poll.h>
-
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/wait.h>
-#include <linux/uaccess.h>
-#include <linux/io.h>
-
-#include <linux/mpu_411.h>
-#include "mpuirq.h"
-#include "mldl_cfg.h"
-
-#define MPUIRQ_NAME "mpuirq"
-
-/* function which gets accel data and sends it to MPU */
-
-DECLARE_WAIT_QUEUE_HEAD(mpuirq_wait);
-
-struct mpuirq_dev_data {
- struct i2c_client *mpu_client;
- struct miscdevice *dev;
- int irq;
- int pid;
- int accel_divider;
- int data_ready;
- int timeout;
-};
-
-static struct mpuirq_dev_data mpuirq_dev_data;
-static struct mpuirq_data mpuirq_data;
-static char *interface = MPUIRQ_NAME;
-
-static int mpuirq_open(struct inode *inode, struct file *file)
-{
- dev_dbg(mpuirq_dev_data.dev->this_device,
- "%s current->pid %d\n", __func__, current->pid);
- mpuirq_dev_data.pid = current->pid;
- file->private_data = &mpuirq_dev_data;
- return 0;
-}
-
-/* close function - called when the "file" /dev/mpuirq is closed in userspace */
-static int mpuirq_release(struct inode *inode, struct file *file)
-{
- dev_dbg(mpuirq_dev_data.dev->this_device, "mpuirq_release\n");
- return 0;
-}
-
-/* read function called when from /dev/mpuirq is read */
-static ssize_t mpuirq_read(struct file *file,
- char *buf, size_t count, loff_t *ppos)
-{
- int len, err;
- struct mpuirq_dev_data *p_mpuirq_dev_data = file->private_data;
-
- if (!mpuirq_dev_data.data_ready &&
- mpuirq_dev_data.timeout && (!(file->f_flags & O_NONBLOCK))) {
- wait_event_interruptible_timeout(mpuirq_wait,
- mpuirq_dev_data.data_ready,
- mpuirq_dev_data.timeout);
- }
-
- if (mpuirq_dev_data.data_ready && NULL != buf
- && count >= sizeof(mpuirq_data)) {
- err = copy_to_user(buf, &mpuirq_data, sizeof(mpuirq_data));
- mpuirq_data.data_type = 0;
- } else {
- return 0;
- }
- if (err != 0) {
- dev_err(p_mpuirq_dev_data->dev->this_device,
- "Copy to user returned %d\n", err);
- return -EFAULT;
- }
- mpuirq_dev_data.data_ready = 0;
- len = sizeof(mpuirq_data);
- return len;
-}
-
-unsigned int mpuirq_poll(struct file *file, struct poll_table_struct *poll)
-{
- int mask = 0;
-
- poll_wait(file, &mpuirq_wait, poll);
- if (mpuirq_dev_data.data_ready)
- mask |= POLLIN | POLLRDNORM;
- return mask;
-}
-
-/* ioctl - I/O control */
-static long mpuirq_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- int data;
-
- switch (cmd) {
- case MPUIRQ_SET_TIMEOUT:
- mpuirq_dev_data.timeout = arg;
- break;
-
- case MPUIRQ_GET_INTERRUPT_CNT:
- data = mpuirq_data.interruptcount - 1;
- if (mpuirq_data.interruptcount > 1)
- mpuirq_data.interruptcount = 1;
-
- if (copy_to_user((int *)arg, &data, sizeof(int)))
- return -EFAULT;
- break;
- case MPUIRQ_GET_IRQ_TIME:
- if (copy_to_user((int *)arg, &mpuirq_data.irqtime,
- sizeof(mpuirq_data.irqtime)))
- return -EFAULT;
- mpuirq_data.irqtime = 0;
- break;
- case MPUIRQ_SET_FREQUENCY_DIVIDER:
- mpuirq_dev_data.accel_divider = arg;
- break;
- default:
- retval = -EINVAL;
- }
- return retval;
-}
-
-static irqreturn_t mpuirq_handler(int irq, void *dev_id)
-{
- static int mycount;
- struct timeval irqtime;
- mycount++;
-
- mpuirq_data.interruptcount++;
-
- /* wake up (unblock) for reading data from userspace */
- /* and ignore first interrupt generated in module init */
- mpuirq_dev_data.data_ready = 1;
-
- do_gettimeofday(&irqtime);
- mpuirq_data.irqtime = (((long long)irqtime.tv_sec) << 32);
- mpuirq_data.irqtime += irqtime.tv_usec;
- mpuirq_data.data_type = MPUIRQ_DATA_TYPE_MPU_IRQ;
- mpuirq_data.data = 0;
-
- wake_up_interruptible(&mpuirq_wait);
-
- return IRQ_HANDLED;
-
-}
-
-/* define which file operations are supported */
-const struct file_operations mpuirq_fops = {
- .owner = THIS_MODULE,
- .read = mpuirq_read,
- .poll = mpuirq_poll,
-
- .unlocked_ioctl = mpuirq_ioctl,
- .open = mpuirq_open,
- .release = mpuirq_release,
-};
-
-static struct miscdevice mpuirq_device = {
- .minor = MISC_DYNAMIC_MINOR,
- .name = MPUIRQ_NAME,
- .fops = &mpuirq_fops,
-};
-
-int mpuirq_init(struct i2c_client *mpu_client, struct mldl_cfg *mldl_cfg)
-{
-
- int res;
-
- mpuirq_dev_data.mpu_client = mpu_client;
-
- dev_info(&mpu_client->adapter->dev,
- "Module Param interface = %s\n", interface);
-
- mpuirq_dev_data.irq = mpu_client->irq;
- mpuirq_dev_data.pid = 0;
- mpuirq_dev_data.accel_divider = -1;
- mpuirq_dev_data.data_ready = 0;
- mpuirq_dev_data.timeout = 0;
- mpuirq_dev_data.dev = &mpuirq_device;
-
- if (mpuirq_dev_data.irq) {
- unsigned long flags;
- if (BIT_ACTL_LOW == ((mldl_cfg->pdata->int_config) & BIT_ACTL))
- flags = IRQF_TRIGGER_FALLING;
- else
- flags = IRQF_TRIGGER_RISING;
-
- flags |= IRQF_SHARED;
- res =
- request_irq(mpuirq_dev_data.irq, mpuirq_handler, flags,
- interface, &mpuirq_dev_data.irq);
-
- /* mpu_irq Interrupt isr enable */
- if (mldl_cfg->pdata && mldl_cfg->pdata->enable_irq_handler)
- mldl_cfg->pdata->enable_irq_handler();
- if (res) {
- dev_err(&mpu_client->adapter->dev,
- "myirqtest: cannot register IRQ %d\n",
- mpuirq_dev_data.irq);
- } else {
- res = misc_register(&mpuirq_device);
- if (res < 0) {
- dev_err(&mpu_client->adapter->dev,
- "misc_register returned %d\n", res);
- free_irq(mpuirq_dev_data.irq,
- &mpuirq_dev_data.irq);
- }
- }
-
- } else {
- res = 0;
- }
-
- return res;
-}
-
-void mpuirq_exit(void)
-{
- if (mpuirq_dev_data.irq > 0)
- free_irq(mpuirq_dev_data.irq, &mpuirq_dev_data.irq);
-
- dev_info(mpuirq_device.this_device, "Unregistering %s\n", MPUIRQ_NAME);
- misc_deregister(&mpuirq_device);
-
- return;
-}
-
-module_param(interface, charp, S_IRUGO | S_IWUSR);
-MODULE_PARM_DESC(interface, "The Interface name");
diff --git a/drivers/misc/inv_mpu/mpuirq.h b/drivers/misc/inv_mpu/mpuirq.h
deleted file mode 100644
index 3348071..0000000
--- a/drivers/misc/inv_mpu/mpuirq.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-#ifndef __MPUIRQ__
-#define __MPUIRQ__
-
-#include <linux/i2c-dev.h>
-#include <linux/time.h>
-#include <linux/ioctl.h>
-#include "mldl_cfg.h"
-
-#define MPUIRQ_SET_TIMEOUT _IOW(MPU_IOCTL, 0x40, unsigned long)
-#define MPUIRQ_GET_INTERRUPT_CNT _IOR(MPU_IOCTL, 0x41, unsigned long)
-#define MPUIRQ_GET_IRQ_TIME _IOR(MPU_IOCTL, 0x42, struct timeval)
-#define MPUIRQ_SET_FREQUENCY_DIVIDER _IOW(MPU_IOCTL, 0x43, unsigned long)
-
-void mpuirq_exit(void);
-int mpuirq_init(struct i2c_client *mpu_client, struct mldl_cfg *mldl_cfg);
-
-#endif
diff --git a/drivers/misc/inv_mpu/pressure/Kconfig b/drivers/misc/inv_mpu/pressure/Kconfig
deleted file mode 100644
index 9fe7763..0000000
--- a/drivers/misc/inv_mpu/pressure/Kconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-menuconfig: INV_SENSORS_PRESSURE
- bool "Pressure Sensor Slaves"
- depends on INV_SENSORS
- default y
- help
- Select y to see a list of supported pressure sensors that can be
- integrated with the MPUxxxx set of motion processors.
-
-if INV_SENSORS_PRESSURE
-
-config MPU_SENSORS_BMA085_411
- tristate "Bosch BMA085"
- help
- This enables support for the Bosch bma085 pressure sensor
- This support is for integration with the MPU3050 or MPU6050 gyroscope
- device driver. Only one accelerometer can be registered at a time.
- Specifying more that one accelerometer in the board file will result
- in runtime errors.
-
-endif
diff --git a/drivers/misc/inv_mpu/pressure/Makefile b/drivers/misc/inv_mpu/pressure/Makefile
deleted file mode 100644
index a69ee3a..0000000
--- a/drivers/misc/inv_mpu/pressure/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Pressure Slaves to MPUxxxx
-#
-obj-$(CONFIG_MPU_SENSORS_BMA085_411) += inv_mpu_bma085.o
-inv_mpu_bma085-objs += bma085.o
-
-EXTRA_CFLAGS += -Idrivers/misc/inv_mpu
-EXTRA_CFLAGS += -D__C99_DESIGNATED_INITIALIZER
diff --git a/drivers/misc/inv_mpu/pressure/bma085.c b/drivers/misc/inv_mpu/pressure/bma085.c
deleted file mode 100644
index 696d2b6..0000000
--- a/drivers/misc/inv_mpu/pressure/bma085.c
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Pressure Driver Layer)
- * @brief Provides the interface to setup and handle a pressure
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file bma085.c
- * @brief Pressure setup and handling methods.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include "mpu-dev.h"
-
-#include <linux/mpu.h>
-#include "mlsl.h"
-#include "log.h"
-
-/*
- * this structure holds all device specific calibration parameters
- */
-struct bmp085_calibration_param_t {
- short ac1;
- short ac2;
- short ac3;
- unsigned short ac4;
- unsigned short ac5;
- unsigned short ac6;
- short b1;
- short b2;
- short mb;
- short mc;
- short md;
- long param_b5;
-};
-
-struct bmp085_calibration_param_t cal_param;
-
-#define PRESSURE_BMA085_PARAM_MG 3038 /* calibration parameter */
-#define PRESSURE_BMA085_PARAM_MH -7357 /* calibration parameter */
-#define PRESSURE_BMA085_PARAM_MI 3791 /* calibration parameter */
-
-/*********************************************
- * Pressure Initialization Functions
- *********************************************/
-
-static int bma085_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = INV_SUCCESS;
- return result;
-}
-
-#define PRESSURE_BMA085_PROM_START_ADDR (0xAA)
-#define PRESSURE_BMA085_PROM_DATA_LEN (22)
-#define PRESSURE_BMP085_CTRL_MEAS_REG (0xF4)
-/* temperature measurent */
-#define PRESSURE_BMP085_T_MEAS (0x2E)
-/* pressure measurement; oversampling_setting */
-#define PRESSURE_BMP085_P_MEAS_OSS_0 (0x34)
-#define PRESSURE_BMP085_P_MEAS_OSS_1 (0x74)
-#define PRESSURE_BMP085_P_MEAS_OSS_2 (0xB4)
-#define PRESSURE_BMP085_P_MEAS_OSS_3 (0xF4)
-#define PRESSURE_BMP085_ADC_OUT_MSB_REG (0xF6)
-#define PRESSURE_BMP085_ADC_OUT_LSB_REG (0xF7)
-
-static int bma085_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char data[PRESSURE_BMA085_PROM_DATA_LEN];
-
- result =
- inv_serial_read(mlsl_handle, pdata->address,
- PRESSURE_BMA085_PROM_START_ADDR,
- PRESSURE_BMA085_PROM_DATA_LEN, data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
-
- /* parameters AC1-AC6 */
- cal_param.ac1 = (data[0] << 8) | data[1];
- cal_param.ac2 = (data[2] << 8) | data[3];
- cal_param.ac3 = (data[4] << 8) | data[5];
- cal_param.ac4 = (data[6] << 8) | data[7];
- cal_param.ac5 = (data[8] << 8) | data[9];
- cal_param.ac6 = (data[10] << 8) | data[11];
-
- /* parameters B1,B2 */
- cal_param.b1 = (data[12] << 8) | data[13];
- cal_param.b2 = (data[14] << 8) | data[15];
-
- /* parameters MB,MC,MD */
- cal_param.mb = (data[16] << 8) | data[17];
- cal_param.mc = (data[18] << 8) | data[19];
- cal_param.md = (data[20] << 8) | data[21];
-
- return result;
-}
-
-static int bma085_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- long pressure, x1, x2, x3, b3, b6;
- unsigned long b4, b7;
- unsigned long up;
- unsigned short ut;
- short oversampling_setting = 0;
- short temperature;
- long divisor;
-
- /* get temprature */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- PRESSURE_BMP085_CTRL_MEAS_REG,
- PRESSURE_BMP085_T_MEAS);
- msleep(5);
- result =
- inv_serial_read(mlsl_handle, pdata->address,
- PRESSURE_BMP085_ADC_OUT_MSB_REG, 2,
- (unsigned char *)data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- ut = (data[0] << 8) | data[1];
-
- x1 = (((long) ut - (long)cal_param.ac6) * (long)cal_param.ac5) >> 15;
- divisor = x1 + cal_param.md;
- if (!divisor)
- return INV_ERROR_DIVIDE_BY_ZERO;
-
- x2 = ((long)cal_param.mc << 11) / (x1 + cal_param.md);
- cal_param.param_b5 = x1 + x2;
- /* temperature in 0.1 degree C */
- temperature = (short)((cal_param.param_b5 + 8) >> 4);
-
- /* get pressure */
- result = inv_serial_single_write(mlsl_handle, pdata->address,
- PRESSURE_BMP085_CTRL_MEAS_REG,
- PRESSURE_BMP085_P_MEAS_OSS_0);
- msleep(5);
- result =
- inv_serial_read(mlsl_handle, pdata->address,
- PRESSURE_BMP085_ADC_OUT_MSB_REG, 2,
- (unsigned char *)data);
- if (result) {
- LOG_RESULT_LOCATION(result);
- return result;
- }
- up = (((unsigned long) data[0] << 8) | ((unsigned long) data[1]));
-
- b6 = cal_param.param_b5 - 4000;
- /* calculate B3 */
- x1 = (b6*b6) >> 12;
- x1 *= cal_param.b2;
- x1 >>= 11;
-
- x2 = (cal_param.ac2*b6);
- x2 >>= 11;
-
- x3 = x1 + x2;
-
- b3 = (((((long)cal_param.ac1) * 4 + x3)
- << oversampling_setting) + 2) >> 2;
-
- /* calculate B4 */
- x1 = (cal_param.ac3 * b6) >> 13;
- x2 = (cal_param.b1 * ((b6*b6) >> 12)) >> 16;
- x3 = ((x1 + x2) + 2) >> 2;
- b4 = (cal_param.ac4 * (unsigned long) (x3 + 32768)) >> 15;
- if (!b4)
- return INV_ERROR;
-
- b7 = ((unsigned long)(up - b3) * (50000>>oversampling_setting));
- if (b7 < 0x80000000)
- pressure = (b7 << 1) / b4;
- else
- pressure = (b7 / b4) << 1;
-
- x1 = pressure >> 8;
- x1 *= x1;
- x1 = (x1 * PRESSURE_BMA085_PARAM_MG) >> 16;
- x2 = (pressure * PRESSURE_BMA085_PARAM_MH) >> 16;
- /* pressure in Pa */
- pressure += (x1 + x2 + PRESSURE_BMA085_PARAM_MI) >> 4;
-
- data[0] = (unsigned char)(pressure >> 16);
- data[1] = (unsigned char)(pressure >> 8);
- data[2] = (unsigned char)(pressure & 0xFF);
-
- return result;
-}
-
-static struct ext_slave_descr bma085_descr = {
- .init = NULL,
- .exit = NULL,
- .suspend = bma085_suspend,
- .resume = bma085_resume,
- .read = bma085_read,
- .config = NULL,
- .get_config = NULL,
- .name = "bma085",
- .type = EXT_SLAVE_TYPE_PRESSURE,
- .id = PRESSURE_ID_BMA085,
- .read_reg = 0xF6,
- .read_len = 3,
- .endian = EXT_SLAVE_BIG_ENDIAN,
- .range = {0, 0},
-};
-
-static
-struct ext_slave_descr *bma085_get_slave_descr(void)
-{
- return &bma085_descr;
-}
-
-/* Platform data for the MPU */
-struct bma085_mod_private_data {
- struct i2c_client *client;
- struct ext_slave_platform_data *pdata;
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static int bma085_mod_probe(struct i2c_client *client,
- const struct i2c_device_id *devid)
-{
- struct ext_slave_platform_data *pdata;
- struct bma085_mod_private_data *private_data;
- int result = 0;
-
- dev_info(&client->adapter->dev, "%s: %s\n", __func__, devid->name);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- result = -ENODEV;
- goto out_no_free;
- }
-
- pdata = client->dev.platform_data;
- if (!pdata) {
- dev_err(&client->adapter->dev,
- "Missing platform data for slave %s\n", devid->name);
- result = -EFAULT;
- goto out_no_free;
- }
-
- private_data = kzalloc(sizeof(*private_data), GFP_KERNEL);
- if (!private_data) {
- result = -ENOMEM;
- goto out_no_free;
- }
-
- i2c_set_clientdata(client, private_data);
- private_data->client = client;
- private_data->pdata = pdata;
-
- result = inv_mpu_register_slave(THIS_MODULE, client, pdata,
- bma085_get_slave_descr);
- if (result) {
- dev_err(&client->adapter->dev,
- "Slave registration failed: %s, %d\n",
- devid->name, result);
- goto out_free_memory;
- }
-
- return result;
-
-out_free_memory:
- kfree(private_data);
-out_no_free:
- dev_err(&client->adapter->dev, "%s failed %d\n", __func__, result);
- return result;
-
-}
-
-static int bma085_mod_remove(struct i2c_client *client)
-{
- struct bma085_mod_private_data *private_data =
- i2c_get_clientdata(client);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- inv_mpu_unregister_slave(client, private_data->pdata,
- bma085_get_slave_descr);
-
- kfree(private_data);
- return 0;
-}
-
-static const struct i2c_device_id bma085_mod_id[] = {
- { "bma085", PRESSURE_ID_BMA085 },
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, bma085_mod_id);
-
-static struct i2c_driver bma085_mod_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = bma085_mod_probe,
- .remove = bma085_mod_remove,
- .id_table = bma085_mod_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = "bma085_mod",
- },
- .address_list = normal_i2c,
-};
-
-static int __init bma085_mod_init(void)
-{
- int res = i2c_add_driver(&bma085_mod_driver);
- pr_info("%s: Probe name %s\n", __func__, "bma085_mod");
- if (res)
- pr_err("%s failed\n", __func__);
- return res;
-}
-
-static void __exit bma085_mod_exit(void)
-{
- pr_info("%s\n", __func__);
- i2c_del_driver(&bma085_mod_driver);
-}
-
-module_init(bma085_mod_init);
-module_exit(bma085_mod_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Driver to integrate BMA085 sensor with the MPU");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("bma085_mod");
-/**
- * @}
-**/
diff --git a/drivers/misc/inv_mpu/sensors_core.c b/drivers/misc/inv_mpu/sensors_core.c
deleted file mode 100644
index b652631..0000000
--- a/drivers/misc/inv_mpu/sensors_core.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Universal sensors core class
- *
- * Author : Ryunkyun Park <ryun.park@samsung.com>
- */
-
-#include <linux/module.h>
-#include <linux/types.h>
-#include <linux/init.h>
-#include <linux/device.h>
-#include <linux/fs.h>
-#include <linux/err.h>
-/* #include <linux/sensors_core.h> */
-
-struct class *sensors_class;
-static atomic_t sensor_count;
-static DEFINE_MUTEX(sensors_mutex);
-
-/**
- * Create sysfs interface
- */
-static void set_sensor_attr(struct device *dev,
- struct device_attribute *attributes[])
-{
- int i;
-
- for (i = 0; attributes[i] != NULL; i++) {
- if ((device_create_file(dev, attributes[i])) < 0) {
- pr_info("[SENSOR CORE] fail!!! device_create_file" \
- "( dev, attributes[%d] )\n", i);
- }
- }
-}
-
-int sensors_register(struct device *dev, void *drvdata,
- struct device_attribute *attributes[], char *name)
-{
- int ret = 0;
-
- if (!sensors_class) {
- sensors_class = class_create(THIS_MODULE, "sensors");
- if (IS_ERR(sensors_class))
- return PTR_ERR(sensors_class);
- }
-
- mutex_lock(&sensors_mutex);
-
- dev = device_create(sensors_class, NULL, 0, drvdata, "%s", name);
-
- if (IS_ERR(dev)) {
- ret = PTR_ERR(dev);
- pr_err("[SENSORS CORE] device_create failed! [%d]\n", ret);
- return ret;
- }
-
- set_sensor_attr(dev, attributes);
-
- atomic_inc(&sensor_count);
-
- mutex_unlock(&sensors_mutex);
-
- return 0;
-}
-
-void sensors_unregister(struct device *dev)
-{
- /* TODO : Unregister device */
-}
-
-static int __init sensors_class_init(void)
-{
- pr_info("[SENSORS CORE] sensors_class_init\n");
- sensors_class = class_create(THIS_MODULE, "sensors");
-
- if (IS_ERR(sensors_class))
- return PTR_ERR(sensors_class);
-
- atomic_set(&sensor_count, 0);
- sensors_class->dev_uevent = NULL;
-
- return 0;
-}
-
-static void __exit sensors_class_exit(void)
-{
- class_destroy(sensors_class);
-}
-
-EXPORT_SYMBOL_GPL(sensors_register);
-EXPORT_SYMBOL_GPL(sensors_unregister);
-
-/* exported for the APM Power driver, APM emulation */
-EXPORT_SYMBOL_GPL(sensors_class);
-
-subsys_initcall(sensors_class_init);
-module_exit(sensors_class_exit);
-
-MODULE_DESCRIPTION("Universal sensors core class");
-MODULE_AUTHOR("Ryunkyun Park <ryun.park@samsung.com>");
-MODULE_LICENSE("GPL");
diff --git a/drivers/misc/inv_mpu/slaveirq.c b/drivers/misc/inv_mpu/slaveirq.c
deleted file mode 100644
index fdabcdd..0000000
--- a/drivers/misc/inv_mpu/slaveirq.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-#include <linux/interrupt.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/stat.h>
-#include <linux/irq.h>
-#include <linux/signal.h>
-#include <linux/miscdevice.h>
-#include <linux/i2c.h>
-#include <linux/i2c-dev.h>
-#include <linux/poll.h>
-
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/wait.h>
-#include <linux/uaccess.h>
-#include <linux/io.h>
-#include <linux/wait.h>
-#include <linux/slab.h>
-
-#include <linux/mpu_411.h>
-#include "slaveirq.h"
-#include "mldl_cfg.h"
-
-/* function which gets slave data and sends it to SLAVE */
-
-struct slaveirq_dev_data {
- struct miscdevice dev;
- struct i2c_client *slave_client;
- struct mpuirq_data data;
- wait_queue_head_t slaveirq_wait;
- int irq;
- int pid;
- int data_ready;
- int timeout;
-};
-
-/* The following depends on patch fa1f68db6ca7ebb6fc4487ac215bffba06c01c28
- * drivers: misc: pass miscdevice pointer via file private data
- */
-static int slaveirq_open(struct inode *inode, struct file *file)
-{
- /* Device node is availabe in the file->private_data, this is
- * exactly what we want so we leave it there */
- struct slaveirq_dev_data *data =
- container_of(file->private_data, struct slaveirq_dev_data, dev);
-
- dev_dbg(data->dev.this_device,
- "%s current->pid %d\n", __func__, current->pid);
- data->pid = current->pid;
- return 0;
-}
-
-static int slaveirq_release(struct inode *inode, struct file *file)
-{
- struct slaveirq_dev_data *data =
- container_of(file->private_data, struct slaveirq_dev_data, dev);
- dev_dbg(data->dev.this_device, "slaveirq_release\n");
- return 0;
-}
-
-/* read function called when from /dev/slaveirq is read */
-static ssize_t slaveirq_read(struct file *file,
- char *buf, size_t count, loff_t *ppos)
-{
- int len, err;
- struct slaveirq_dev_data *data =
- container_of(file->private_data, struct slaveirq_dev_data, dev);
-
- if (!data->data_ready && data->timeout &&
- !(file->f_flags & O_NONBLOCK)) {
- wait_event_interruptible_timeout(data->slaveirq_wait,
- data->data_ready,
- data->timeout);
- }
-
- if (data->data_ready && NULL != buf && count >= sizeof(data->data)) {
- err = copy_to_user(buf, &data->data, sizeof(data->data));
- data->data.data_type = 0;
- } else {
- return 0;
- }
- if (err != 0) {
- dev_err(data->dev.this_device,
- "Copy to user returned %d\n", err);
- return -EFAULT;
- }
- data->data_ready = 0;
- len = sizeof(data->data);
- return len;
-}
-
-static unsigned int slaveirq_poll(struct file *file,
- struct poll_table_struct *poll)
-{
- int mask = 0;
- struct slaveirq_dev_data *data =
- container_of(file->private_data, struct slaveirq_dev_data, dev);
-
- poll_wait(file, &data->slaveirq_wait, poll);
- if (data->data_ready)
- mask |= POLLIN | POLLRDNORM;
- return mask;
-}
-
-/* ioctl - I/O control */
-static long slaveirq_ioctl(struct file *file,
- unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- int tmp;
- struct slaveirq_dev_data *data =
- container_of(file->private_data, struct slaveirq_dev_data, dev);
-
- switch (cmd) {
- case SLAVEIRQ_SET_TIMEOUT:
- data->timeout = arg;
- break;
-
- case SLAVEIRQ_GET_INTERRUPT_CNT:
- tmp = data->data.interruptcount - 1;
- if (data->data.interruptcount > 1)
- data->data.interruptcount = 1;
-
- if (copy_to_user((int *)arg, &tmp, sizeof(int)))
- return -EFAULT;
- break;
- case SLAVEIRQ_GET_IRQ_TIME:
- if (copy_to_user((int *)arg, &data->data.irqtime,
- sizeof(data->data.irqtime)))
- return -EFAULT;
- data->data.irqtime = 0;
- break;
- default:
- retval = -EINVAL;
- }
- return retval;
-}
-
-static irqreturn_t slaveirq_handler(int irq, void *dev_id)
-{
- struct slaveirq_dev_data *data = (struct slaveirq_dev_data *)dev_id;
- static int mycount;
- struct timeval irqtime;
- mycount++;
-
- data->data.interruptcount++;
-
- /* wake up (unblock) for reading data from userspace */
- data->data_ready = 1;
-
- do_gettimeofday(&irqtime);
- data->data.irqtime = (((long long)irqtime.tv_sec) << 32);
- data->data.irqtime += irqtime.tv_usec;
- data->data.data_type |= 1;
-
- wake_up_interruptible(&data->slaveirq_wait);
-
- return IRQ_HANDLED;
-
-}
-
-/* define which file operations are supported */
-static const struct file_operations slaveirq_fops = {
- .owner = THIS_MODULE,
- .read = slaveirq_read,
- .poll = slaveirq_poll,
-
-#if HAVE_COMPAT_IOCTL
- .compat_ioctl = slaveirq_ioctl,
-#endif
-#if HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = slaveirq_ioctl,
-#endif
- .open = slaveirq_open,
- .release = slaveirq_release,
-};
-
-int slaveirq_init(struct i2c_adapter *slave_adapter,
- struct ext_slave_platform_data *pdata, char *name)
-{
-
- int res;
- struct slaveirq_dev_data *data;
-
- if (!pdata->irq)
- return -EINVAL;
-
- pdata->irq_data = kzalloc(sizeof(*data), GFP_KERNEL);
- data = (struct slaveirq_dev_data *)pdata->irq_data;
- if (!data)
- return -ENOMEM;
-
- data->dev.minor = MISC_DYNAMIC_MINOR;
- data->dev.name = name;
- data->dev.fops = &slaveirq_fops;
- data->irq = pdata->irq;
- data->pid = 0;
- data->data_ready = 0;
- data->timeout = 0;
-
- init_waitqueue_head(&data->slaveirq_wait);
-
- res = request_irq(data->irq, slaveirq_handler,
- IRQF_TRIGGER_RISING | IRQF_SHARED,
- data->dev.name, data);
-
- if (res) {
- dev_err(&slave_adapter->dev,
- "myirqtest: cannot register IRQ %d\n", data->irq);
- goto out_request_irq;
- }
-
- res = misc_register(&data->dev);
- if (res < 0) {
- dev_err(&slave_adapter->dev,
- "misc_register returned %d\n", res);
- goto out_misc_register;
- }
-
- return res;
-
-out_misc_register:
- free_irq(data->irq, data);
-out_request_irq:
- kfree(pdata->irq_data);
- pdata->irq_data = NULL;
-
- return res;
-}
-
-void slaveirq_exit(struct ext_slave_platform_data *pdata)
-{
- struct slaveirq_dev_data *data = pdata->irq_data;
-
- if (!pdata->irq_data || data->irq <= 0)
- return;
-
- dev_info(data->dev.this_device, "Unregistering %s\n", data->dev.name);
-
- free_irq(data->irq, data);
- misc_deregister(&data->dev);
- kfree(pdata->irq_data);
- pdata->irq_data = NULL;
-}
diff --git a/drivers/misc/inv_mpu/slaveirq.h b/drivers/misc/inv_mpu/slaveirq.h
deleted file mode 100644
index 6926634..0000000
--- a/drivers/misc/inv_mpu/slaveirq.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-#ifndef __SLAVEIRQ__
-#define __SLAVEIRQ__
-
-#include <linux/i2c-dev.h>
-
-#include <linux/mpu.h>
-#include "mpuirq.h"
-
-#define SLAVEIRQ_SET_TIMEOUT _IOW(MPU_IOCTL, 0x50, unsigned long)
-#define SLAVEIRQ_GET_INTERRUPT_CNT _IOR(MPU_IOCTL, 0x51, unsigned long)
-#define SLAVEIRQ_GET_IRQ_TIME _IOR(MPU_IOCTL, 0x52, unsigned long)
-
-void slaveirq_exit(struct ext_slave_platform_data *pdata);
-int slaveirq_init(struct i2c_adapter *slave_adapter,
- struct ext_slave_platform_data *pdata, char *name);
-
-#endif
diff --git a/drivers/misc/inv_mpu/timerirq.c b/drivers/misc/inv_mpu/timerirq.c
deleted file mode 100644
index b7b0b1e..0000000
--- a/drivers/misc/inv_mpu/timerirq.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-#include <linux/interrupt.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/stat.h>
-#include <linux/signal.h>
-#include <linux/miscdevice.h>
-#include <linux/i2c.h>
-#include <linux/i2c-dev.h>
-#include <linux/poll.h>
-
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/wait.h>
-#include <linux/uaccess.h>
-#include <linux/io.h>
-#include <linux/timer.h>
-#include <linux/slab.h>
-
-#include <linux/mpu_411.h>
-#include "mltypes.h"
-#include "timerirq.h"
-
-/* function which gets timer data and sends it to TIMER */
-struct timerirq_data {
- int pid;
- int data_ready;
- int run;
- int timeout;
- unsigned long period;
- struct mpuirq_data data;
- struct completion timer_done;
- wait_queue_head_t timerirq_wait;
- struct timer_list timer;
- struct miscdevice *dev;
-};
-
-static struct miscdevice *timerirq_dev_data;
-
-static void timerirq_handler(unsigned long arg)
-{
- struct timerirq_data *data = (struct timerirq_data *)arg;
- struct timeval irqtime;
-
- data->data.interruptcount++;
-
- data->data_ready = 1;
-
- do_gettimeofday(&irqtime);
- data->data.irqtime = (((long long)irqtime.tv_sec) << 32);
- data->data.irqtime += irqtime.tv_usec;
- data->data.data_type |= 1;
-
- dev_dbg(data->dev->this_device,
- "%s, %lld, %ld\n", __func__, data->data.irqtime,
- (unsigned long)data);
-
- wake_up_interruptible(&data->timerirq_wait);
-
- if (data->run)
- mod_timer(&data->timer,
- jiffies + msecs_to_jiffies(data->period));
- else
- complete(&data->timer_done);
-}
-
-static int start_timerirq(struct timerirq_data *data)
-{
- dev_dbg(data->dev->this_device,
- "%s current->pid %d\n", __func__, current->pid);
-
- /* Timer already running... success */
- if (data->run)
- return 0;
-
- /* Don't allow a period of 0 since this would fire constantly */
- if (!data->period)
- return -EINVAL;
-
- data->run = true;
- data->data_ready = false;
-
- init_completion(&data->timer_done);
- setup_timer(&data->timer, timerirq_handler, (unsigned long)data);
-
- return mod_timer(&data->timer,
- jiffies + msecs_to_jiffies(data->period));
-}
-
-static int stop_timerirq(struct timerirq_data *data)
-{
- dev_dbg(data->dev->this_device,
- "%s current->pid %lx\n", __func__, (unsigned long)data);
-
- if (data->run) {
- data->run = false;
- mod_timer(&data->timer, jiffies + 1);
- wait_for_completion(&data->timer_done);
- }
- return 0;
-}
-
-/* The following depends on patch fa1f68db6ca7ebb6fc4487ac215bffba06c01c28
- * drivers: misc: pass miscdevice pointer via file private data
- */
-static int timerirq_open(struct inode *inode, struct file *file)
-{
- /* Device node is availabe in the file->private_data, this is
- * exactly what we want so we leave it there */
- struct miscdevice *dev_data = file->private_data;
- struct timerirq_data *data = kzalloc(sizeof(*data), GFP_KERNEL);
- if (!data)
- return -ENOMEM;
-
- data->dev = dev_data;
- file->private_data = data;
- data->pid = current->pid;
- init_waitqueue_head(&data->timerirq_wait);
-
- dev_dbg(data->dev->this_device,
- "%s current->pid %d\n", __func__, current->pid);
- return 0;
-}
-
-static int timerirq_release(struct inode *inode, struct file *file)
-{
- struct timerirq_data *data = file->private_data;
- dev_dbg(data->dev->this_device, "timerirq_release\n");
- if (data->run)
- stop_timerirq(data);
- kfree(data);
- return 0;
-}
-
-/* read function called when from /dev/timerirq is read */
-static ssize_t timerirq_read(struct file *file,
- char *buf, size_t count, loff_t *ppos)
-{
- int len, err;
- struct timerirq_data *data = file->private_data;
-
- if (!data->data_ready && data->timeout &&
- !(file->f_flags & O_NONBLOCK)) {
- wait_event_interruptible_timeout(data->timerirq_wait,
- data->data_ready,
- data->timeout);
- }
-
- if (data->data_ready && NULL != buf && count >= sizeof(data->data)) {
- err = copy_to_user(buf, &data->data, sizeof(data->data));
- data->data.data_type = 0;
- } else {
- return 0;
- }
- if (err != 0) {
- dev_err(data->dev->this_device,
- "Copy to user returned %d\n", err);
- return -EFAULT;
- }
- data->data_ready = 0;
- len = sizeof(data->data);
- return len;
-}
-
-static unsigned int timerirq_poll(struct file *file,
- struct poll_table_struct *poll)
-{
- int mask = 0;
- struct timerirq_data *data = file->private_data;
-
- poll_wait(file, &data->timerirq_wait, poll);
- if (data->data_ready)
- mask |= POLLIN | POLLRDNORM;
- return mask;
-}
-
-/* ioctl - I/O control */
-static long timerirq_ioctl(struct file *file,
- unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- int tmp;
- struct timerirq_data *data = file->private_data;
-
- dev_dbg(data->dev->this_device,
- "%s current->pid %d, %d, %ld\n",
- __func__, current->pid, cmd, arg);
-
- if (!data)
- return -EFAULT;
-
- switch (cmd) {
- case TIMERIRQ_SET_TIMEOUT:
- data->timeout = arg;
- break;
- case TIMERIRQ_GET_INTERRUPT_CNT:
- tmp = data->data.interruptcount - 1;
- if (data->data.interruptcount > 1)
- data->data.interruptcount = 1;
-
- if (copy_to_user((int *)arg, &tmp, sizeof(int)))
- return -EFAULT;
- break;
- case TIMERIRQ_START:
- data->period = arg;
- retval = start_timerirq(data);
- break;
- case TIMERIRQ_STOP:
- retval = stop_timerirq(data);
- break;
- default:
- retval = -EINVAL;
- }
- return retval;
-}
-
-/* define which file operations are supported */
-static const struct file_operations timerirq_fops = {
- .owner = THIS_MODULE,
- .read = timerirq_read,
- .poll = timerirq_poll,
-
-#if HAVE_COMPAT_IOCTL
- .compat_ioctl = timerirq_ioctl,
-#endif
-#if HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = timerirq_ioctl,
-#endif
- .open = timerirq_open,
- .release = timerirq_release,
-};
-
-static int __init timerirq_init(void)
-{
-
- int res;
- static struct miscdevice *data;
-
- data = kzalloc(sizeof(*data), GFP_KERNEL);
- if (!data)
- return -ENOMEM;
- timerirq_dev_data = data;
- data->minor = MISC_DYNAMIC_MINOR;
- data->name = "timerirq";
- data->fops = &timerirq_fops;
-
- res = misc_register(data);
- if (res < 0) {
- dev_err(data->this_device, "misc_register returned %d\n", res);
- return res;
- }
-
- return res;
-}
-
-module_init(timerirq_init);
-
-static void __exit timerirq_exit(void)
-{
- struct miscdevice *data = timerirq_dev_data;
-
- dev_info(data->this_device, "Unregistering %s\n", data->name);
-
- misc_deregister(data);
- kfree(data);
-
- timerirq_dev_data = NULL;
-}
-
-module_exit(timerirq_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Timer IRQ device driver.");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("timerirq");
diff --git a/drivers/misc/inv_mpu/timerirq.h b/drivers/misc/inv_mpu/timerirq.h
deleted file mode 100644
index f69f07a..0000000
--- a/drivers/misc/inv_mpu/timerirq.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- $License:
- Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-#ifndef __TIMERIRQ__
-#define __TIMERIRQ__
-
-#include <linux/mpu.h>
-
-#define TIMERIRQ_SET_TIMEOUT _IOW(MPU_IOCTL, 0x60, unsigned long)
-#define TIMERIRQ_GET_INTERRUPT_CNT _IOW(MPU_IOCTL, 0x61, unsigned long)
-#define TIMERIRQ_START _IOW(MPU_IOCTL, 0x62, unsigned long)
-#define TIMERIRQ_STOP _IO(MPU_IOCTL, 0x63)
-
-#endif
diff --git a/drivers/misc/modem_if_na/Kconfig b/drivers/misc/modem_if_na/Kconfig
deleted file mode 100644
index d2679e4..0000000
--- a/drivers/misc/modem_if_na/Kconfig
+++ /dev/null
@@ -1,30 +0,0 @@
-menuconfig SEC_MODEM
- bool "Samsung Mobile Modem Interface"
- default n
- ---help---
- Samsung Modem Interface Driver.
-
-config CDMA_MODEM_CBP71
- bool "modem chip : VIA CBP7.1"
- depends on SEC_MODEM
- default n
-
-config LTE_MODEM_CMC220
- bool "modem chip : cmc220"
- depends on SEC_MODEM
- default n
-
-config LINK_DEVICE_DPRAM
- bool "modem driver link device DPRAM"
- depends on SEC_MODEM
- default n
-
-config LINK_DEVICE_USB
- bool "modem driver link device USB"
- depends on SEC_MODEM
- default n
-
-config INTERNAL_MODEM_IF
- bool "modem feature for INTERNAL MODEM IF"
- depends on SEC_MODEM
- default n
diff --git a/drivers/misc/modem_if_na/Makefile b/drivers/misc/modem_if_na/Makefile
deleted file mode 100644
index d680f41..0000000
--- a/drivers/misc/modem_if_na/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# Makefile of modem_if
-
-obj-y += modem.o modem_io_device.o modem_net_flowcontrol_device.o
-
-obj-$(CONFIG_CDMA_MODEM_CBP71) += modem_modemctl_device_cbp71.o
-obj-$(CONFIG_LTE_MODEM_CMC220) += modem_modemctl_device_cmc220.o lte_modem_bootloader.o
-obj-$(CONFIG_LINK_DEVICE_DPRAM) += modem_link_device_dpram.o
-obj-$(CONFIG_LINK_DEVICE_USB) += modem_link_device_usb.o modem_link_pm_usb.o
diff --git a/drivers/misc/modem_if_na/lte_modem_bootloader.c b/drivers/misc/modem_if_na/lte_modem_bootloader.c
deleted file mode 100644
index 0798b38..0000000
--- a/drivers/misc/modem_if_na/lte_modem_bootloader.c
+++ /dev/null
@@ -1,320 +0,0 @@
-/* Lte modem bootloader support for Samsung Tuna Board.
- *
- * Copyright (C) 2011 Google, Inc.
- * Copyright (C) 2011 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/interrupt.h>
-#include <linux/platform_device.h>
-#include <linux/miscdevice.h>
-
-#include <linux/uaccess.h>
-#include <linux/fs.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/slab.h>
-#include <linux/mutex.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/wakelock.h>
-#include <linux/delay.h>
-#include <linux/spi/spi.h>
-
-#include <linux/platform_data/lte_modem_bootloader.h>
-
-#define LEN_XMIT_DELEY 10
-#define MAX_XMIT_SIZE 16
-
-int factory_mode;
-
-enum xmit_bootloader_status {
- XMIT_BOOT_READY,
- XMIT_LOADER_READY,
-};
-
-struct lte_modem_bootloader {
- struct spi_device *spi_dev;
- struct miscdevice dev;
-
- struct mutex lock;
-
- unsigned int gpio_lte2ap_status;
- enum xmit_bootloader_status xmit_status;
-};
-#define to_loader(misc) container_of(misc, struct lte_modem_bootloader, dev);
-
-static inline
-int spi_xmit(struct lte_modem_bootloader *loader,
- const char *buf, int size_per_xmit)
-{
- int i;
- int ret;
- unsigned char xmit_buf[MAX_XMIT_SIZE];
- struct spi_message msg;
- struct spi_transfer xfers[MAX_XMIT_SIZE];
-
- memcpy(xmit_buf, buf, sizeof(xmit_buf));
- spi_message_init(&msg);
- memset(xfers, 0, sizeof(xfers));
- for (i = 0; i < size_per_xmit ; i++) {
- xfers[i].cs_change = 1;
- xfers[i].len = 1;
- xfers[i].tx_buf = xmit_buf + i;
- spi_message_add_tail(&xfers[i], &msg);
- }
- ret = spi_sync(loader->spi_dev, &msg);
-
- if (ret < 0)
- dev_err(&loader->spi_dev->dev,
- "%s - error %d\n", __func__, ret);
-
- return ret;
-}
-
-
-static
-int bootloader_write(struct lte_modem_bootloader *loader,
- const char *addr, const int len)
-{
- int i;
- int ret = 0;
- unsigned char lenbuf[4];
-
- if (loader->xmit_status == XMIT_LOADER_READY) {
- memcpy(lenbuf, &len, ARRAY_SIZE(lenbuf));
- ret = spi_xmit(loader, lenbuf,
- ARRAY_SIZE(lenbuf));
- if (ret < 0)
- return ret;
- msleep(LEN_XMIT_DELEY);
- }
-
- for (i = 0 ; i < len / MAX_XMIT_SIZE ; i++) {
- ret = spi_xmit(loader,
- addr + i * MAX_XMIT_SIZE,
- MAX_XMIT_SIZE);
- if (ret < 0)
- return ret;
- }
- ret = spi_xmit(loader, addr + i * MAX_XMIT_SIZE , len % MAX_XMIT_SIZE);
-
- return 0;
-}
-
-
-static
-int bootloader_open(struct inode *inode, struct file *flip)
-{
- struct lte_modem_bootloader *loader = to_loader(flip->private_data);
- flip->private_data = loader;
-
- return 0;
-}
-
-static
-long bootloader_ioctl(struct file *flip,
- unsigned int cmd, unsigned long arg)
-{
- int ret = 0;
- int status;
- struct lte_modem_bootloader_param param;
- struct lte_modem_bootloader *loader = flip->private_data;
-
- mutex_lock(&loader->lock);
- switch (cmd) {
- case IOCTL_LTE_MODEM_XMIT_BOOT:
-
- ret = copy_from_user(&param, (const void __user *)arg,
- sizeof(param));
- if (ret) {
- dev_err(&loader->spi_dev->dev, "%s - can not copy userdata\n",
- __func__);
- ret = -EFAULT;
- goto exit_err;
- }
-
- dev_info(&loader->spi_dev->dev,
- "IOCTL_LTE_MODEM_XMIT_BOOT - bin size: %d\n",
- param.len);
-
- ret = bootloader_write(loader, param.buf, param.len);
- if (ret < 0) {
- dev_err(&loader->spi_dev->dev, "failed to xmit boot bin\n");
- } else {
- if (loader->xmit_status == XMIT_BOOT_READY)
- loader->xmit_status = XMIT_LOADER_READY;
- else
- loader->xmit_status = XMIT_BOOT_READY;
- }
-
- break;
- case IOCTL_LTE_MODEM_LTE2AP_STATUS:
- status = gpio_get_value(loader->gpio_lte2ap_status);
- pr_debug("LTE2AP status :%d\n", status);
- ret = copy_to_user((unsigned int *)arg, &status,
- sizeof(status));
-
- break;
-
- case IOCTL_LTE_MODEM_FACTORY_MODE_ON:
- factory_mode = 1;
- pr_info("usb %s, Factory Mode On\n", __func__);
- break;
-
- case IOCTL_LTE_MODEM_FACTORY_MODE_OFF:
- factory_mode = 0;
- pr_info("usb %s, Factory Mode Off\n", __func__);
- break;
-
- default:
- dev_err(&loader->spi_dev->dev,
- "%s - ioctl cmd error\n",
- __func__);
- ret = -ENOIOCTLCMD;
-
- break;
- }
- mutex_unlock(&loader->lock);
-
-exit_err:
- return ret;
-}
-
-static const struct file_operations lte_modem_bootloader_fops = {
- .owner = THIS_MODULE,
- .open = bootloader_open,
- .unlocked_ioctl = bootloader_ioctl,
-};
-
-static
-int bootloader_gpio_setup(struct lte_modem_bootloader *loader)
-{
- if (!loader->gpio_lte2ap_status)
- return -EINVAL;
-
- gpio_request(loader->gpio_lte2ap_status, "GPIO_LTE2AP_STATUS");
- gpio_direction_input(loader->gpio_lte2ap_status);
-
- return 0;
-}
-
-static
-int __devinit lte_modem_bootloader_probe(struct spi_device *spi)
-{
- int ret;
-
- struct lte_modem_bootloader *loader;
- struct lte_modem_bootloader_platform_data *pdata;
-
- loader = kzalloc(sizeof(*loader), GFP_KERNEL);
- if (!loader) {
- pr_err("failed to allocate for lte_modem_bootloader\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
- mutex_init(&loader->lock);
-
- spi->bits_per_word = 8;
-
- if (spi_setup(spi)) {
- pr_err("failed to setup spi for lte_modem_bootloader\n");
- ret = -EINVAL;
- goto err_setup;
- }
-
- loader->spi_dev = spi;
-
- if (!spi->dev.platform_data) {
- pr_err("failed to get platform data for lte_modem_bootloader\n");
- ret = -EINVAL;
- goto err_setup;
- }
- pdata = (struct lte_modem_bootloader_platform_data *) \
- spi->dev.platform_data;
- loader->gpio_lte2ap_status = pdata->gpio_lte2ap_status;
-
- ret = bootloader_gpio_setup(loader);
- if (ret) {
- pr_err("failed to set gpio for lte_modem_boot_loader\n");
- goto err_setup;
- }
-
- loader->gpio_lte2ap_status = pdata->gpio_lte2ap_status;
- loader->xmit_status = XMIT_BOOT_READY;
-
- spi_set_drvdata(spi, loader);
-
- loader->dev.minor = MISC_DYNAMIC_MINOR;
- loader->dev.name = "lte_spi";
- loader->dev.fops = &lte_modem_bootloader_fops;
- ret = misc_register(&loader->dev);
- if (ret) {
- pr_err("failed to register misc dev for lte_modem_bootloader\n");
- goto err_setup;
- }
- pr_info("lte_modem_bootloader successfully probed\n");
-
- factory_mode = 0;
-
- return 0;
-
-err_setup:
- mutex_destroy(&loader->lock);
- kfree(loader);
-
-err_alloc:
-
- return ret;
-}
-
-static
-int __devexit lte_modem_bootloader_remove(struct spi_device *spi)
-{
- struct lte_modem_bootloader *loader = spi_get_drvdata(spi);
-
- misc_deregister(&loader->dev);
- mutex_destroy(&loader->lock);
- kfree(loader);
-
- return 0;
-}
-
-static
-struct spi_driver lte_modem_bootloader_driver = {
- .driver = {
- .name = "lte_modem_spi",
- .bus = &spi_bus_type,
- .owner = THIS_MODULE,
- },
- .probe = lte_modem_bootloader_probe,
- .remove = __devexit_p(lte_modem_bootloader_remove),
-};
-
-static
-int __init lte_modem_bootloader_init(void)
-{
- return spi_register_driver(&lte_modem_bootloader_driver);
-}
-
-static
-void __exit lte_modem_bootloader_exit(void)
-{
- spi_unregister_driver(&lte_modem_bootloader_driver);
-}
-
-module_init(lte_modem_bootloader_init);
-module_exit(lte_modem_bootloader_exit);
-
-MODULE_DESCRIPTION("LTE Modem Bootloader driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/misc/modem_if_na/modem.c b/drivers/misc/modem_if_na/modem.c
deleted file mode 100644
index dde1ea1..0000000
--- a/drivers/misc/modem_if_na/modem.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/* linux/drivers/modem/modem.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/interrupt.h>
-#include <linux/platform_device.h>
-#include <linux/miscdevice.h>
-
-#include <linux/uaccess.h>
-#include <linux/fs.h>
-#include <linux/io.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/slab.h>
-#include <linux/mutex.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/wakelock.h>
-
-#include <linux/platform_data/modem_na.h>
-#include "modem_prj.h"
-#include "modem_variation.h"
-
-
-static struct modem_ctl *create_modemctl_device(struct platform_device *pdev)
-{
- int ret = 0;
- struct modem_data *pdata;
- struct modem_ctl *modemctl;
- struct device *dev = &pdev->dev;
-
- /* create modem control device */
- modemctl = kzalloc(sizeof(struct modem_ctl), GFP_KERNEL);
- if (!modemctl)
- return NULL;
-
- modemctl->dev = dev;
- modemctl->phone_state = STATE_OFFLINE;
-
- pdata = pdev->dev.platform_data;
- modemctl->name = pdata->name;
-
- /* init modemctl device for getting modemctl operations */
- ret = call_modem_init_func(modemctl, pdata);
- if (ret) {
- printk(KERN_ERR "[MODEM_IF] call_modem_init_func is failed\n");
- kfree(modemctl);
- return NULL;
- }
-
- pr_debug("[MODEM_IF] %s:create_modemctl_device DONE\n", modemctl->name);
- return modemctl;
-}
-
-static struct io_device *create_io_device(struct modem_io_t *io_t,
- struct modem_ctl *modemctl, enum modem_network modem_net)
-{
- int ret = 0;
- struct io_device *iod = NULL;
-
- iod = kzalloc(sizeof(struct io_device), GFP_KERNEL);
- if (!iod) {
- pr_err("[MODEM_IF] io device memory alloc fail\n");
- return NULL;
- }
-
- iod->name = io_t->name;
- iod->id = io_t->id;
- iod->format = io_t->format;
- iod->io_typ = io_t->io_type;
- iod->net_typ = modem_net;
-
- /* link between io device and modem control */
- iod->mc = modemctl;
- if (iod->format == IPC_FMT)
- modemctl->iod = iod;
-
- /* register misc device or net device */
- ret = init_io_device(iod);
- if (ret) {
- kfree(iod);
- return NULL;
- }
-
- pr_debug("[MODEM_IF] %s : create_io_device DONE\n", io_t->name);
- return iod;
-}
-static int __devinit modem_probe(struct platform_device *pdev)
-{
- int i;
- struct modem_data *pdata;
- struct modem_ctl *modemctl;
- struct io_device *iod[MAX_NUM_IO_DEV];
- struct link_device *ld;
- struct io_raw_devices *io_raw_devs = NULL;
-
- pdata = pdev->dev.platform_data;
- memset(iod, 0, sizeof(iod));
-
- modemctl = create_modemctl_device(pdev);
- if (!modemctl) {
- printk(KERN_ERR "[MODEM_IF] modemctl is null\n");
- return -ENOMEM;
- }
- /* create link device */
- ld = call_link_init_func(pdev, pdata->link_type);
- if (!ld)
- goto err_free_modemctl;
-
- io_raw_devs = kzalloc(sizeof(struct io_raw_devices), GFP_KERNEL);
- if (!io_raw_devs) {
- printk(KERN_ERR "[MODEM_IF] io_raw_devs is null\n");
- return -ENOMEM;
- }
-
- /* create io deivces and connect to modemctl device */
- for (i = 0; i < pdata->num_iodevs; i++) {
- iod[i] = create_io_device(&pdata->iodevs[i], modemctl,
- pdata->modem_net);
- if (!iod[i])
- goto err_free_modemctl;
-
- if (iod[i]->format == IPC_RAW) {
- int ch = iod[i]->id & 0x1F;
- io_raw_devs->raw_devices[ch] = iod[i];
- io_raw_devs->num_of_raw_devs++;
- iod[i]->link = ld;
- } else {
- /* connect io devices to one link device */
- ld->attach(ld, iod[i]);
- }
-
- if (iod[i]->format == IPC_MULTI_RAW)
- iod[i]->private_data = (void *)io_raw_devs;
- }
-
- platform_set_drvdata(pdev, modemctl);
-
- pr_debug("[MODEM_IF] modem_probe DONE\n");
- return 0;
-
-err_free_modemctl:
- for (i = 0; i < pdata->num_iodevs; i++)
- if (iod[i] != NULL)
- kfree(iod[i]);
-
- if (io_raw_devs != NULL)
- kfree(io_raw_devs);
-
- if (modemctl != NULL)
- kfree(modemctl);
-
- return -ENOMEM;
-}
-
-static void modem_shutdown(struct platform_device *pdev)
-{
- struct device *dev = &pdev->dev;
- struct modem_ctl *mc = dev_get_drvdata(dev);
-
- if (!mc)
- return;
-
- free_irq(mc->irq_phone_active, mc);
-
- if (mc->ops.modem_off)
- mc->ops.modem_off(mc);
-}
-
-static int modem_suspend(struct device *pdev)
-{
- struct modem_ctl *mc = dev_get_drvdata(pdev);
- gpio_set_value(mc->gpio_pda_active, 0);
- return 0;
-}
-
-static int modem_resume(struct device *pdev)
-{
- struct modem_ctl *mc = dev_get_drvdata(pdev);
- gpio_set_value(mc->gpio_pda_active, 1);
- return 0;
-}
-
-static const struct dev_pm_ops modem_pm_ops = {
- .suspend = modem_suspend,
- .resume = modem_resume,
-};
-
-static struct platform_driver modem_driver = {
- .probe = modem_probe,
- .shutdown = modem_shutdown,
- .driver = {
- .name = "modem_if",
- .pm = &modem_pm_ops,
- },
-};
-
-static int __init modem_init(void)
-{
- return platform_driver_register(&modem_driver);
-}
-
-module_init(modem_init);
-
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Samsung Modem Interface Driver");
diff --git a/drivers/misc/modem_if_na/modem_io_device.c b/drivers/misc/modem_if_na/modem_io_device.c
deleted file mode 100644
index 1a936b1..0000000
--- a/drivers/misc/modem_if_na/modem_io_device.c
+++ /dev/null
@@ -1,965 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_io_device.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-#include <linux/sched.h>
-#include <linux/fs.h>
-#include <linux/poll.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/if_arp.h>
-#include <linux/ip.h>
-#include <linux/if_ether.h>
-#include <linux/etherdevice.h>
-#include <linux/ratelimit.h>
-
-#include <linux/platform_data/modem_na.h>
-#include "modem_prj.h"
-
-
-#define HDLC_START 0x7F
-#define HDLC_END 0x7E
-#define SIZE_OF_HDLC_START 1
-#define SIZE_OF_HDLC_END 1
-#define MAX_RXDATA_SIZE (4096 - 512)
-
-static const char hdlc_start[1] = { HDLC_START };
-static const char hdlc_end[1] = { HDLC_END };
-
-struct fmt_hdr {
- u16 len;
- u8 control;
-} __packed;
-
-struct raw_hdr {
- u32 len;
- u8 channel;
- u8 control;
-} __packed;
-
-struct rfs_hdr {
- u32 len;
- u8 cmd;
- u8 id;
-} __packed;
-
-static const char const *modem_state_name[] = {
- [STATE_OFFLINE] = "OFFLINE",
- [STATE_CRASH_EXIT] = "CRASH_EXIT",
- [STATE_BOOTING] = "BOOTING",
- [STATE_ONLINE] = "ONLINE",
- [STATE_LOADER_DONE] = "LOADER_DONE",
- [STATE_NV_REBUILDING] = "NV_REBUILDING",
-};
-
-static int rx_iodev_skb(struct io_device *iod);
-
-static int get_header_size(struct io_device *iod)
-{
- switch (iod->format) {
- case IPC_FMT:
- return sizeof(struct fmt_hdr);
-
- case IPC_RAW:
- case IPC_MULTI_RAW:
- return sizeof(struct raw_hdr);
-
- case IPC_RFS:
- return sizeof(struct rfs_hdr);
-
- case IPC_BOOT:
- /* minimum size for transaction align */
- return 4;
-
- case IPC_RAMDUMP:
- default:
- return 0;
- }
-}
-
-static int get_hdlc_size(struct io_device *iod, char *buf)
-{
- struct fmt_hdr *fmt_header;
- struct raw_hdr *raw_header;
- struct rfs_hdr *rfs_header;
-
- pr_debug("[MODEM_IF] buf : %02x %02x %02x (%d)\n", *buf, *(buf + 1),
- *(buf + 2), __LINE__);
-
- switch (iod->format) {
- case IPC_FMT:
- fmt_header = (struct fmt_hdr *)buf;
- return fmt_header->len;
- case IPC_RAW:
- case IPC_MULTI_RAW:
- raw_header = (struct raw_hdr *)buf;
- return raw_header->len;
- case IPC_RFS:
- rfs_header = (struct rfs_hdr *)buf;
- return rfs_header->len;
- default:
- break;
- }
- return 0;
-}
-
-static void *get_header(struct io_device *iod, size_t count,
- char *frame_header_buf)
-{
- struct fmt_hdr *fmt_h;
- struct raw_hdr *raw_h;
- struct rfs_hdr *rfs_h;
-
- switch (iod->format) {
- case IPC_FMT:
- fmt_h = (struct fmt_hdr *)frame_header_buf;
-
- fmt_h->len = count + sizeof(struct fmt_hdr);
- fmt_h->control = 0;
-
- return (void *)frame_header_buf;
-
- case IPC_RAW:
- case IPC_MULTI_RAW:
- raw_h = (struct raw_hdr *)frame_header_buf;
-
- raw_h->len = count + sizeof(struct raw_hdr);
- raw_h->channel = iod->id & 0x1F;
- raw_h->control = 0;
-
- return (void *)frame_header_buf;
-
- case IPC_RFS:
- rfs_h = (struct rfs_hdr *)frame_header_buf;
-
- rfs_h->len = count + sizeof(struct raw_hdr);
- rfs_h->id = iod->id;
-
- return (void *)frame_header_buf;
-
- default:
- return 0;
- }
-}
-
-static inline int rx_hdlc_head_start_check(char *buf)
-{
- /* check hdlc head and return size of start byte */
- return (buf[0] == HDLC_START) ? SIZE_OF_HDLC_START : -EBADMSG;
-}
-
-static inline int rx_hdlc_tail_check(char *buf)
-{
- /* check hdlc tail and return size of tail byte */
- return (buf[0] == HDLC_END) ? SIZE_OF_HDLC_END : -EBADMSG;
-}
-
-/* remove hdlc header and store IPC header */
-static int rx_hdlc_head_check(struct io_device *iod, char *buf, unsigned rest)
-{
- struct header_data *hdr = &iod->h_data;
- int head_size = get_header_size(iod);
- int done_len = 0;
- int len = 0;
- struct modem_data *md = (struct modem_data *)\
- iod->mc->dev->platform_data;
-
- /* first frame, remove start header 7F */
- if (!hdr->start) {
- len = rx_hdlc_head_start_check(buf);
- if (len < 0) {
- pr_err("[MODEM_IF] Wrong HDLC start: 0x%x(%s)\n",
- *buf, iod->name);
- return len; /*Wrong hdlc start*/
- }
-
- pr_debug("[MODEM_IF] check len : %d, rest : %d (%d)\n", len,
- rest, __LINE__);
-
- /* set the start flag of current packet */
- hdr->start = HDLC_START;
- hdr->len = 0;
-
- buf += len;
- done_len += len;
- rest -= len; /* rest, call by value */
- }
-
- pr_debug("[MODEM_IF] check len : %d, rest : %d (%d)\n", len, rest,
- __LINE__);
-
- /* store the IPC header to iod priv */
- if (hdr->len < head_size) {
- len = min(rest, head_size - hdr->len);
- memcpy(hdr->hdr + hdr->len, buf, len);
-
- /* Skip the dummy byte inserted for 2-byte alignment in header.
- RAW format header size is 6 bytes. Start + 6 + 1 (skip byte) */
- if (md->align == 1) {
- if ((iod->format == IPC_RAW
- || iod->format == IPC_MULTI_RAW)
- && (iod->net_typ == CDMA_NETWORK)
- && !(len & 0x01))
- len++;
- }
- hdr->len += len;
- done_len += len;
- }
-
- pr_debug("[MODEM_IF] check done_len : %d, rest : %d (%d)\n", done_len,
- rest, __LINE__);
- return done_len;
-}
-
-/* alloc skb and copy dat to skb */
-static int rx_hdlc_data_check(struct io_device *iod, char *buf, unsigned rest)
-{
- struct header_data *hdr = &iod->h_data;
- struct sk_buff *skb = iod->skb_recv;
- int head_size = get_header_size(iod);
- int data_size = get_hdlc_size(iod, hdr->hdr) - head_size;
- int alloc_size = min(data_size, MAX_RXDATA_SIZE);
- int len;
- int done_len = 0;
- int rest_len = data_size - hdr->flag_len;
-
- /* first payload data - alloc skb */
- if (!skb) {
- switch (iod->format) {
- case IPC_RFS:
- alloc_size = min(data_size + head_size, \
- MAX_RXDATA_SIZE);
- skb = alloc_skb(alloc_size, GFP_ATOMIC);
- if (unlikely(!skb))
- return -ENOMEM;
- /* copy the RFS haeder to skb->data */
- memcpy(skb_put(skb, head_size), hdr->hdr, head_size);
- break;
-
- case IPC_MULTI_RAW:
- if (data_size > MAX_RXDATA_SIZE) { \
- pr_err("%s: %s: packet size too large (%d)\n",\
- __func__, iod->name, data_size);
- return -EINVAL;
- }
-
- if (iod->net_typ == UMTS_NETWORK)
- skb = alloc_skb(alloc_size, GFP_ATOMIC);
- else
- skb = alloc_skb(alloc_size +
- sizeof(struct ethhdr), GFP_ATOMIC);
- if (unlikely(!skb))
- return -ENOMEM;
-
- if (iod->net_typ != UMTS_NETWORK)
- skb_reserve(skb, sizeof(struct ethhdr));
- break;
-
- default:
- skb = alloc_skb(alloc_size, GFP_ATOMIC);
- if (unlikely(!skb))
- return -ENOMEM;
- break;
- }
- iod->skb_recv = skb;
- }
-
- while (rest > 0) {
- len = min(rest, alloc_size - skb->len);
- len = min(len, rest_len);
- memcpy(skb_put(skb, len), buf, len);
- buf += len;
- done_len += len;
- hdr->flag_len += len;
- rest -= len;
- rest_len -= len;
-
- if (!rest_len || !rest)
- break;
-
- rx_iodev_skb(iod);
- iod->skb_recv = NULL;
-
- alloc_size = min(rest_len, MAX_RXDATA_SIZE);
- skb = alloc_skb(alloc_size, GFP_ATOMIC);
- if (unlikely(!skb))
- return -ENOMEM;
- iod->skb_recv = skb;
- }
-
- return done_len;
-}
-
-static int rx_iodev_skb_raw(struct io_device *iod)
-{
- int err;
- struct sk_buff *skb = iod->skb_recv;
- struct net_device *ndev;
- struct iphdr *ip_header;
- struct ethhdr *ehdr;
- const char source[ETH_ALEN] = SOURCE_MAC_ADDR;
-
- switch (iod->io_typ) {
- case IODEV_MISC:
- skb_queue_tail(&iod->sk_rx_q, iod->skb_recv);
- wake_up(&iod->wq);
- return 0;
-
- case IODEV_NET:
- ndev = iod->ndev;
- if (!ndev)
- return NET_RX_DROP;
-
- skb->dev = ndev;
- ndev->stats.rx_packets++;
- ndev->stats.rx_bytes += skb->len;
-
- /* check the version of IP */
- ip_header = (struct iphdr *)skb->data;
- if (ip_header->version == IP6VERSION)
- skb->protocol = htons(ETH_P_IPV6);
- else
- skb->protocol = htons(ETH_P_IP);
-
- if (iod->net_typ == UMTS_NETWORK) {
- skb_reset_mac_header(skb);
- } else {
- ehdr = (void *)skb_push(skb, sizeof(struct ethhdr));
- memcpy(ehdr->h_dest, ndev->dev_addr, ETH_ALEN);
- memcpy(ehdr->h_source, source, ETH_ALEN);
- ehdr->h_proto = skb->protocol;
- skb->ip_summed = CHECKSUM_NONE;
- skb_reset_mac_header(skb);
-
- skb_pull(skb, sizeof(struct ethhdr));
- }
-
- err = netif_rx_ni(skb);
- if (err != NET_RX_SUCCESS)
- dev_err(&ndev->dev, "rx error: %d\n", err);
- return err;
-
- default:
- pr_err("[MODEM_IF] wrong io_type : %d\n", iod->io_typ);
- return -EINVAL;
- }
-}
-
-static void rx_iodev_work(struct work_struct *work)
-{
- int ret;
- struct sk_buff *skb;
- struct io_device *real_iod;
- struct io_device *iod = container_of(work, struct io_device,
- rx_work.work);
-
- skb = skb_dequeue(&iod->sk_rx_q);
- while (skb) {
- real_iod = *((struct io_device **)skb->cb);
- real_iod->skb_recv = skb;
-
- ret = rx_iodev_skb_raw(real_iod);
- if (ret == NET_RX_DROP) {
- pr_err("[MODEM_IF] %s: queue delayed work!\n",
- __func__);
- skb_queue_head(&iod->sk_rx_q, skb);
- schedule_delayed_work(&iod->rx_work,
- msecs_to_jiffies(20));
- break;
- } else if (ret < 0)
- dev_kfree_skb_any(skb);
-
- skb = skb_dequeue(&iod->sk_rx_q);
- }
-}
-
-
-static int rx_multipdp(struct io_device *iod)
-{
- u8 ch;
- struct raw_hdr *raw_header = (struct raw_hdr *)&iod->h_data.hdr;
- struct io_raw_devices *io_raw_devs =
- (struct io_raw_devices *)iod->private_data;
- struct io_device *real_iod;
-
- ch = raw_header->channel;
- real_iod = io_raw_devs->raw_devices[ch];
- if (!real_iod) {
- pr_err("[MODEM_IF] %s: wrong channel %d\n", __func__, ch);
- return -1;
- }
-
- *((struct io_device **)iod->skb_recv->cb) = real_iod;
- skb_queue_tail(&iod->sk_rx_q, iod->skb_recv);
- pr_debug("sk_rx_qlen:%d\n", iod->sk_rx_q.qlen);
-
- schedule_delayed_work(&iod->rx_work, 0);
- return 0;
-}
-
-/* de-mux function draft */
-static int rx_iodev_skb(struct io_device *iod)
-{
- switch (iod->format) {
- case IPC_MULTI_RAW:
- return rx_multipdp(iod);
-
- case IPC_FMT:
- case IPC_RFS:
- default:
- skb_queue_tail(&iod->sk_rx_q, iod->skb_recv);
-
- pr_debug("[MODEM_IF] wake up fmt,rfs skb\n");
- wake_up(&iod->wq);
- return 0;
- }
-}
-
-static int rx_hdlc_packet(struct io_device *iod, const char *data,
- unsigned recv_size)
-{
- unsigned rest = recv_size;
- char *buf = (char *)data;
- int err = 0;
- int len;
- struct modem_data *md = (struct modem_data *)\
- iod->mc->dev->platform_data;
-
-
- if (rest <= 0)
- goto exit;
-
- pr_debug("[MODEM_IF] RX_SIZE=%d\n", rest);
-
- if (iod->h_data.flag_len)
- goto data_check;
-
-next_frame:
- err = len = rx_hdlc_head_check(iod, buf, rest);
- if (err < 0)
- goto exit; /* buf++; rest--; goto next_frame; */
- pr_debug("[MODEM_IF] check len : %d, rest : %d (%d)\n", len, rest,
- __LINE__);
-
- buf += len;
- rest -= len;
- if (rest <= 0)
- goto exit;
-
-data_check:
- err = len = rx_hdlc_data_check(iod, buf, rest);
- if (err < 0)
- goto exit;
- pr_debug("[MODEM_IF] check len : %d, rest : %d (%d)\n", len, rest,
- __LINE__);
-
- /* If the lenght of actual data is odd. Skip the dummy bit*/
- if (md->align == 1) {
- if ((iod->format == IPC_RAW || iod->format == IPC_MULTI_RAW)
- && (iod->net_typ == CDMA_NETWORK) && (len & 0x01))
- len++;
- }
- buf += len;
- rest -= len;
-
- if (!rest && iod->h_data.flag_len)
- return 0;
- else if (rest <= 0)
- goto exit;
-
- err = len = rx_hdlc_tail_check(buf);
- if (err < 0) {
- pr_err("[MODEM_IF] Wrong HDLC end: 0x%x(%s)\n",
- *buf, iod->name);
- goto exit;
- }
- pr_debug("[MODEM_IF] check len : %d, rest : %d (%d)\n", len, rest,
- __LINE__);
-
- /* Skip the dummy byte inserted for 2-byte alignment in header.
- Ox7E 00.*/
- if (md->align == 1) {
- if ((iod->format == IPC_RAW || iod->format == IPC_MULTI_RAW)
- && (iod->net_typ == CDMA_NETWORK))
- len++;
- }
- buf += len;
- rest -= len;
- if (rest < 0)
- goto exit;
-
- err = rx_iodev_skb(iod);
- if (err < 0)
- goto exit;
-
- /* initialize header & skb */
- iod->skb_recv = NULL;
- memset(&iod->h_data, 0x00, sizeof(struct header_data));
-
- if (rest)
- goto next_frame;
-
-exit:
- /* free buffers. mipi-hsi re-use recv buf */
- if (rest < 0)
- err = -ERANGE;
-
- if (err < 0) {
- /* clear headers */
- memset(&iod->h_data, 0x00, sizeof(struct header_data));
-
- if (iod->skb_recv) {
- dev_kfree_skb_any(iod->skb_recv);
- iod->skb_recv = NULL;
- }
- }
-
- return err;
-}
-
-/* called from link device when a packet arrives for this io device */
-static int io_dev_recv_data_from_link_dev(struct io_device *iod,
- const char *data, unsigned int len)
-{
- struct sk_buff *skb;
- int err;
-
- switch (iod->format) {
- case IPC_FMT:
- case IPC_RAW:
- case IPC_RFS:
- case IPC_MULTI_RAW:
- err = rx_hdlc_packet(iod, data, len);
- if (err < 0)
- pr_err("[MODEM_IF] fail process hdlc fram\n");
- return err;
-
- case IPC_CMD:
- /* TODO- handle flow control command from CP */
- return 0;
-
- case IPC_BOOT:
- case IPC_RAMDUMP:
- /* save packet to sk_buff */
- skb = alloc_skb(len, GFP_ATOMIC);
- if (!skb) {
- pr_err("[MODEM_IF] fail alloc skb (%d)\n", __LINE__);
- return -ENOMEM;
- }
-
- pr_debug("[MODEM_IF] boot len : %d\n", len);
-
- memcpy(skb_put(skb, len), data, len);
- skb_queue_tail(&iod->sk_rx_q, skb);
- pr_debug("[MODEM_IF] skb len : %d\n", skb->len);
-
- wake_up(&iod->wq);
- return len;
-
- default:
- return -EINVAL;
- }
-}
-
-/* inform the IO device that the modem is now online or offline or
- * crashing or whatever...
- */
-static void io_dev_modem_state_changed(struct io_device *iod,
- enum modem_state state)
-{
- iod->mc->phone_state = state;
- pr_info("[MODEM_IF] %s state changed: %s\n", \
- iod->name, modem_state_name[state]);
-
- if ((state == STATE_CRASH_EXIT) || (state == STATE_NV_REBUILDING))
- wake_up(&iod->wq);
-}
-
-static int misc_open(struct inode *inode, struct file *filp)
-{
- struct io_device *iod = to_io_device(filp->private_data);
- filp->private_data = (void *)iod;
-
- if (iod->format != IPC_BOOT && iod->format != IPC_RAMDUMP)
- pr_info("[MODEM_IF] misc_open : %s\n", iod->name);
-
- if (iod->link->init_comm)
- return iod->link->init_comm(iod->link, iod);
- return 0;
-}
-
-static int misc_release(struct inode *inode, struct file *filp)
-{
- struct io_device *iod = (struct io_device *)filp->private_data;
-
- if (iod->format != IPC_BOOT && iod->format != IPC_RAMDUMP)
- pr_info("[MODEM_IF] misc_release : %s\n", iod->name);
-
- if (iod->link->terminate_comm)
- iod->link->terminate_comm(iod->link, iod);
-
- skb_queue_purge(&iod->sk_rx_q);
- return 0;
-}
-
-static unsigned int misc_poll(struct file *filp,
- struct poll_table_struct *wait)
-{
- struct io_device *iod = (struct io_device *)filp->private_data;
-
- poll_wait(filp, &iod->wq, wait);
-
- if ((!skb_queue_empty(&iod->sk_rx_q))
- && (iod->mc->phone_state != STATE_OFFLINE))
- return POLLIN | POLLRDNORM;
- else if ((iod->mc->phone_state == STATE_CRASH_EXIT) ||
- (iod->mc->phone_state == STATE_NV_REBUILDING))
- return POLLHUP;
- else
- return 0;
-}
-
-static long misc_ioctl(struct file *filp, unsigned int cmd, unsigned long _arg)
-{
- int p_state;
- struct io_device *iod = (struct io_device *)filp->private_data;
-
- pr_debug("[MODEM_IF] misc_ioctl : 0x%x\n", cmd);
-
- switch (cmd) {
- case IOCTL_MODEM_ON:
- pr_debug("[MODEM_IF] misc_ioctl : IOCTL_MODEM_ON\n");
- return iod->mc->ops.modem_on(iod->mc);
-
- case IOCTL_MODEM_OFF:
- pr_debug("[MODEM_IF] misc_ioctl : IOCTL_MODEM_OFF\n");
- return iod->mc->ops.modem_off(iod->mc);
-
- case IOCTL_MODEM_RESET:
- pr_debug("[MODEM_IF] misc_ioctl : IOCTL_MODEM_RESET\n");
- return iod->mc->ops.modem_reset(iod->mc);
-
- case IOCTL_MODEM_FORCE_CRASH_EXIT:
- pr_debug("[MODEM_IF] misc_ioctl : IOCTL_MODEM_FORCE_CRASH_EXIT\n");
- return iod->mc->ops.modem_force_crash_exit(iod->mc);
-
- case IOCTL_MODEM_DUMP_RESET:
- pr_debug("[MODEM_IF] misc_ioctl : IOCTL_MODEM_FORCE_CRASH_EXIT\n");
- return iod->mc->ops.modem_dump_reset(iod->mc);
-
- case IOCTL_MODEM_BOOT_ON:
- pr_debug("[MODEM_IF] misc_ioctl : IOCTL_MODEM_BOOT_ON\n");
- return iod->mc->ops.modem_boot_on(iod->mc);
-
- case IOCTL_MODEM_BOOT_OFF:
- pr_debug("[MODEM_IF] misc_ioctl : IOCTL_MODEM_BOOT_OFF\n");
- return iod->mc->ops.modem_boot_off(iod->mc);
-
- /* TODO - will remove this command after ril updated */
- case IOCTL_MODEM_START:
- pr_debug("[MODEM_IF] misc_ioctl : IOCTL_MODEM_START\n");
- return 0;
-
- case IOCTL_MODEM_STATUS:
- pr_debug("[MODEM_IF] misc_ioctl : IOCTL_MODEM_STATUS\n");
- p_state = iod->mc->phone_state;
- if (p_state == STATE_NV_REBUILDING) {
- pr_info("[MODEM_IF] nv rebuild state : %d\n", p_state);
- iod->mc->phone_state = STATE_ONLINE;
- }
- return p_state;
-
- case IOCTL_MODEM_DUMP_START:
- pr_debug("[MODEM_IF] misc_ioctl : IOCTL_MODEM_DUMP_START\n");
- return iod->link->dump_start(iod->link, iod);
-
- case IOCTL_MODEM_DUMP_UPDATE:
- pr_debug("[MODEM_IF] misc_ioctl : IOCTL_MODEM_DUMP_UPDATE\n");
- return iod->link->dump_update(iod->link, iod, _arg);
-
- case IOCTL_MODEM_GOTA_START:
- pr_debug("[GOTA] misc_ioctl : IOCTL_MODEM_GOTA_START\n");
- return iod->link->gota_start(iod->link, iod);
-
- case IOCTL_MODEM_FW_UPDATE:
- pr_debug("[GOTA] misc_ioctl : IOCTL_MODEM_FW_UPDATE\n");
- return iod->link->modem_update(iod->link, iod, _arg);
-
- default:
- return -EINVAL;
- }
-}
-
-static ssize_t misc_write(struct file *filp, const char __user * buf,
- size_t count, loff_t *ppos)
-{
- struct io_device *iod = (struct io_device *)filp->private_data;
- int frame_len = 0;
- char frame_header_buf[sizeof(struct raw_hdr)];
- struct sk_buff *skb;
-
- /* TODO - check here flow control for only raw data */
-
- if (iod->format == IPC_BOOT || iod->format == IPC_RAMDUMP)
- frame_len = count + get_header_size(iod);
- else
- frame_len = count + SIZE_OF_HDLC_START + get_header_size(iod)
- + SIZE_OF_HDLC_END;
-
- skb = alloc_skb(frame_len, GFP_KERNEL);
- if (!skb) {
- pr_err("[MODEM_IF] fail alloc skb (%d)\n", __LINE__);
- return -ENOMEM;
- }
-
- switch (iod->format) {
- case IPC_BOOT:
- case IPC_RAMDUMP:
- if (copy_from_user(skb_put(skb, count), buf, count) != 0) {
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
- break;
-
- case IPC_RFS:
- memcpy(skb_put(skb, SIZE_OF_HDLC_START), hdlc_start,
- SIZE_OF_HDLC_START);
- if (copy_from_user(skb_put(skb, count), buf, count) != 0) {
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
- memcpy(skb_put(skb, SIZE_OF_HDLC_END), hdlc_end,
- SIZE_OF_HDLC_END);
- break;
-
- default:
- memcpy(skb_put(skb, SIZE_OF_HDLC_START), hdlc_start,
- SIZE_OF_HDLC_START);
- memcpy(skb_put(skb, get_header_size(iod)),
- get_header(iod, count, frame_header_buf),
- get_header_size(iod));
- if (copy_from_user(skb_put(skb, count), buf, count) != 0) {
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
- memcpy(skb_put(skb, SIZE_OF_HDLC_END), hdlc_end,
- SIZE_OF_HDLC_END);
- break;
- }
-
- /* send data with sk_buff, link device will put sk_buff
- * into the specific sk_buff_q and run work-q to send data
- */
- return iod->link->send(iod->link, iod, skb);
-}
-
-static ssize_t misc_read(struct file *filp, char *buf, size_t count,
- loff_t *f_pos)
-{
- struct io_device *iod = (struct io_device *)filp->private_data;
- struct sk_buff *skb;
- int pktsize = 0;
-
- skb = skb_dequeue(&iod->sk_rx_q);
- if (!skb) {
- printk_ratelimited(KERN_ERR "[MODEM_IF] no data from sk_rx_q, "
- "modem_state : %s(%s)\n",
- modem_state_name[iod->mc->phone_state], iod->name);
- return 0;
- }
-
- if (skb->len > count) {
- pr_err("[MODEM_IF] skb len is too big = %d,%d!(%d)\n",
- count, skb->len, __LINE__);
- dev_kfree_skb_any(skb);
- return -EIO;
- }
- pr_debug("[MODEM_IF] skb len : %d\n", skb->len);
-
- pktsize = skb->len;
- if (copy_to_user(buf, skb->data, pktsize) != 0)
- return -EIO;
- dev_kfree_skb_any(skb);
-
- pr_debug("[MODEM_IF] copy to user : %d\n", pktsize);
-
- return pktsize;
-}
-
-static const struct file_operations misc_io_fops = {
- .owner = THIS_MODULE,
- .open = misc_open,
- .release = misc_release,
- .poll = misc_poll,
- .unlocked_ioctl = misc_ioctl,
- .write = misc_write,
- .read = misc_read,
-};
-
-static int vnet_open(struct net_device *ndev)
-{
- netif_start_queue(ndev);
- return 0;
-}
-
-static int vnet_stop(struct net_device *ndev)
-{
- netif_stop_queue(ndev);
- return 0;
-}
-
-static int vnet_xmit(struct sk_buff *skb, struct net_device *ndev)
-{
- int ret;
- struct raw_hdr hd;
- struct sk_buff *skb_new;
- struct vnet *vnet = netdev_priv(ndev);
- struct io_device *iod = vnet->iod;
-
- /* umts doesn't need to discard ethernet header */
- if (iod->net_typ != UMTS_NETWORK) {
- if (iod->id >= PSD_DATA_CHID_BEGIN &&
- iod->id <= PSD_DATA_CHID_END)
- skb_pull(skb, sizeof(struct ethhdr));
- }
-
- hd.len = skb->len + sizeof(hd);
- hd.control = 0;
- hd.channel = iod->id & 0x1F;
-
- skb_new = skb_copy_expand(skb, sizeof(hd) + sizeof(hdlc_start),
- sizeof(hdlc_end), GFP_ATOMIC);
- if (!skb_new) {
- dev_kfree_skb_any(skb);
- return -ENOMEM;
- }
-
- memcpy(skb_push(skb_new, sizeof(hd)), &hd, sizeof(hd));
- memcpy(skb_push(skb_new, sizeof(hdlc_start)), hdlc_start,
- sizeof(hdlc_start));
- memcpy(skb_put(skb_new, sizeof(hdlc_end)), hdlc_end, sizeof(hdlc_end));
-
- ret = iod->link->send(iod->link, iod, skb_new);
- if (ret < 0) {
- dev_kfree_skb_any(skb);
- return NETDEV_TX_BUSY;
- }
-
- ndev->stats.tx_packets++;
- ndev->stats.tx_bytes += skb->len;
- dev_kfree_skb_any(skb);
-
- return NETDEV_TX_OK;
-}
-
-static struct net_device_ops vnet_ops = {
- .ndo_open = vnet_open,
- .ndo_stop = vnet_stop,
- .ndo_start_xmit = vnet_xmit,
-};
-
-static void vnet_setup(struct net_device *ndev)
-{
- ndev->netdev_ops = &vnet_ops;
- ndev->type = ARPHRD_PPP;
- ndev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
- ndev->addr_len = 0;
- ndev->hard_header_len = 0;
- ndev->tx_queue_len = 1000;
- ndev->mtu = ETH_DATA_LEN;
- ndev->watchdog_timeo = 5 * HZ;
-}
-
-static void vnet_setup_ether(struct net_device *ndev)
-{
- ndev->netdev_ops = &vnet_ops;
- ndev->type = ARPHRD_ETHER;
- ndev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST | IFF_SLAVE;
- ndev->addr_len = ETH_ALEN;
- random_ether_addr(ndev->dev_addr);
- ndev->hard_header_len = 0;
- ndev->tx_queue_len = 1000;
- ndev->mtu = ETH_DATA_LEN;
- ndev->watchdog_timeo = 5 * HZ;
-}
-
-int init_io_device(struct io_device *iod)
-{
- int ret = 0;
- struct vnet *vnet;
-
- /* get modem state from modem control device */
- iod->modem_state_changed = io_dev_modem_state_changed;
- /* get data from link device */
- iod->recv = io_dev_recv_data_from_link_dev;
-
- INIT_LIST_HEAD(&iod->list);
-
- /* register misc or net drv */
- switch (iod->io_typ) {
- case IODEV_MISC:
- init_waitqueue_head(&iod->wq);
- skb_queue_head_init(&iod->sk_rx_q);
- INIT_DELAYED_WORK(&iod->rx_work, rx_iodev_work);
-
- iod->miscdev.minor = MISC_DYNAMIC_MINOR;
- iod->miscdev.name = iod->name;
- iod->miscdev.fops = &misc_io_fops;
-
- ret = misc_register(&iod->miscdev);
- if (ret)
- pr_err("failed to register misc io device : %s\n",
- iod->name);
-
- break;
-
- case IODEV_NET:
- if (iod->net_typ == UMTS_NETWORK)
- iod->ndev = alloc_netdev(0, iod->name, vnet_setup);
- else
- iod->ndev = alloc_netdev(0, iod->name,
- vnet_setup_ether);
- if (!iod->ndev) {
- pr_err("failed to alloc netdev\n");
- return -ENOMEM;
- }
-
- ret = register_netdev(iod->ndev);
- if (ret)
- free_netdev(iod->ndev);
-
- pr_debug("%s: %d(iod:0x%p)\n", __func__, __LINE__, iod);
- vnet = netdev_priv(iod->ndev);
- pr_debug("%s: %d(vnet:0x%p)\n", __func__, __LINE__, vnet);
- vnet->iod = iod;
-
- break;
-
- case IODEV_DUMMY:
- skb_queue_head_init(&iod->sk_rx_q);
- INIT_DELAYED_WORK(&iod->rx_work, rx_iodev_work);
-
- break;
-
- default:
- pr_err("wrong io_type : %d\n", iod->io_typ);
- return -EINVAL;
- }
-
- pr_debug("[MODEM_IF] %s(%d) : init_io_device() done : %d\n",
- iod->name, iod->io_typ, ret);
- return ret;
-}
diff --git a/drivers/misc/modem_if_na/modem_link_device_dpram.c b/drivers/misc/modem_if_na/modem_link_device_dpram.c
deleted file mode 100644
index bf4f61a..0000000
--- a/drivers/misc/modem_if_na/modem_link_device_dpram.c
+++ /dev/null
@@ -1,1504 +0,0 @@
-/*
- * Copyright (C) 2011 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/interrupt.h>
-#include <linux/timer.h>
-#include <linux/wakelock.h>
-#include <linux/delay.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/vmalloc.h>
-#include <linux/if_arp.h>
-#include <linux/platform_device.h>
-#include <linux/platform_data/modem_na.h>
-#include <linux/io.h>
-#include "modem_prj.h"
-#include "modem_link_device_dpram.h"
-
-/* interrupt masks.*/
-#define INT_MASK_VALID 0x0080
-#define INT_MASK_CMD 0x0040
-#define INT_MASK_REQ_ACK_F 0x0020
-#define INT_MASK_REQ_ACK_R 0x0010
-#define INT_MASK_RES_ACK_F 0x0008
-#define INT_MASK_RES_ACK_R 0x0004
-#define INT_MASK_SEND_F 0x0002
-#define INT_MASK_SEND_R 0x0001
-#define INT_VALID(x) ((x) & INT_MASK_VALID)
-#define INT_CMD_VALID(x) ((x) & INT_MASK_CMD)
-#define INT_NON_CMD(x) (INT_MASK_VALID | (x))
-#define INT_CMD(x) (INT_MASK_VALID | INT_MASK_CMD | (x))
-
-#define INT_CMD_MASK(x) ((x) & 0xF)
-#define INT_CMD_INIT_START 0x1
-#define INT_CMD_INIT_END 0x2
-#define INT_CMD_REQ_ACTIVE 0x3
-#define INT_CMD_RES_ACTIVE 0x4
-#define INT_CMD_REQ_TIME_SYNC 0x5
-#define INT_CMD_PHONE_START 0x8
-#define INT_CMD_ERR_DISPLAY 0x9
-#define INT_CMD_PHONE_DEEP_SLEEP 0xA
-#define INT_CMD_NV_REBUILDING 0xB
-#define INT_CMD_EMER_DOWN 0xC
-#define INT_CMD_PIF_INIT_DONE 0xD
-#define INT_CMD_SILENT_NV_REBUILDING 0xE
-#define INT_CMD_NORMAL_POWER_OFF 0xF
-
-/* special interrupt cmd indicating modem boot failure. */
-#define INT_POWERSAFE_FAIL 0xDEAD
-
-#define GOTA_CMD_VALID(x) (((x) & 0xA000) == 0xA000)
-#define GOTA_RESULT_FAIL 0x2
-#define GOTA_RESULT_SUCCESS 0x1
-#define GOTA_CMD_MASK(x) (((x) >> 8) & 0xF)
-#define GOTA_CMD_RECEIVE_READY 0x1
-#define GOTA_CMD_DOWNLOAD_START_REQ 0x2
-#define GOTA_CMD_DOWNLOAD_START_RESP 0x3
-#define GOTA_CMD_IMAGE_SEND_REQ 0x4
-#define GOTA_CMD_IMAGE_SEND_RESP 0x5
-#define GOTA_CMD_SEND_DONE_REQ 0x6
-#define GOTA_CMD_SEND_DONE_RESP 0x7
-#define GOTA_CMD_STATUS_UPDATE 0x8
-#define GOTA_CMD_UPDATE_DONE 0x9
-#define GOTA_CMD_EFS_CLEAR_RESP 0xB
-#define GOTA_CMD_ALARM_BOOT_OK 0xC
-#define GOTA_CMD_ALARM_BOOT_FAIL 0xD
-
-#define CMD_DL_START_REQ 0x9200
-#define CMD_IMG_SEND_REQ 0x9400
-#define CMD_DL_SEND_DONE_REQ 0x9600
-#define CMD_UL_RECEIVE_RESP 0x9601
-#define CMD_UL_RECEIVE_DONE_RESP 0x9801
-
-#define START_INDEX 0x7F
-#define END_INDEX 0x7E
-
-#define DP_MAGIC_CODE 0xAA
-#define DP_MAGIC_DMDL 0x4445444C
-#define DP_MAGIC_UMDL 0x4445444D
-#define DP_DPRAM_SIZE 0x4000
-#define DP_DEFAULT_WRITE_LEN 8168
-#define DP_DEFAULT_DUMP_LEN 16366
-#ifdef CONFIG_INTERNAL_MODEM_IF
-#define DP_DUMP_HEADER_SIZE 8
-#else
-#define DP_DUMP_HEADER_SIZE 7
-#endif
-#define GOTA_TIMEOUT (50 * HZ)
-#define GOTA_SEND_TIMEOUT (200 * HZ)
-#define DUMP_TIMEOUT (30 * HZ)
-#define DUMP_START_TIMEOUT (100 * HZ)
-#define IDPRAM_PHY_START 0x13A00000
-#define IDPRAM_SIZE 0x4000
-
-
-
-static int
-dpram_download(struct dpram_link_device *dpld, const char *buf, int len);
-static int
-dpram_upload(struct dpram_link_device *dpld, struct dpram_firmware *uploaddata);
-static inline void
-dpram_writeh(u16 value, void __iomem *p_dest);
-static void
-dpram_clear(struct dpram_link_device *dpld);
-static struct io_device *
-dpram_find_iod(struct dpram_link_device *dpld, int id);
-static void
-dpram_write_command(struct dpram_link_device *dpld, u16 cmd);
-static inline int
-dpram_readh(void __iomem *p_dest);
-
-#ifdef CONFIG_INTERNAL_MODEM_IF
-
-#define INT_MASK_CMD_PDA_SLEEP 0x0C
-#define INT_MASK_CMD_DPRAM_DOWN 0x0C
-#define INT_MASK_CMD_PDA_WAKEUP 0x0A
-#define INT_MASK_CMD_CP_WAKEUP_START 0x0A
-#define INT_MASK_CMD_DPRAM_DOWN_NACK 0x07
-
-#include <plat/gpio-cfg.h>
-#include <linux/suspend.h>
-
-struct idpram_link_pm_data *pm;
-
-void idpram_magickey_init(struct idpram_link_pm_data *pm_data)
-{
- u16 acc_code = 0x01;
-
- dpram_writeh(DP_MAGIC_CODE, &pm_data->dpld->dpram->magic);
- dpram_writeh(acc_code, &pm_data->dpld->dpram->enable);
-}
-
-int idpram_get_write_lock(struct idpram_link_pm_data *pm_data)
-{
- return atomic_read(&pm_data->write_lock);
-}
-
-static int idpram_write_lock(struct idpram_link_pm_data *pm_data, int lock)
-{
- int lock_value = 0;
-
- mif_info("MIF: idpram write_lock(%d)\n", lock);
-
- switch (lock) {
- case 0: /* unlock */
- if (atomic_read(&pm_data->write_lock))
- lock_value = atomic_dec_return(&pm_data->write_lock);
- if (lock_value)
- mif_err("MIF: ipdram write unlock but lock value=%d\n",
- lock_value);
- break;
- case 1: /* lock */
- if (!atomic_read(&pm_data->write_lock))
- lock_value = atomic_inc_return(&pm_data->write_lock);
- if (lock_value != 1)
- mif_err("MIF: ipdram write lock but lock value=%d\n",
- lock_value);
- break;
- }
- return 0;
-}
-
-static int idpram_resume_init(struct idpram_link_pm_data *pm_data)
-{
-
- pm_data->pm_states = IDPRAM_PM_RESUME_START;
- pm_data->last_pm_mailbox = 0;
-
- dpram_clear(pm_data->dpld);
- idpram_magickey_init(pm_data);
-
- /* Initialize the dpram controller */
- pm_data->mdata->sfr_init();
-
- /*re-initialize internal dpram gpios */
- s3c_gpio_cfgpin(pm_data->mdata->gpio_mbx_intr, S3C_GPIO_SFN(0x2));
-
- idpram_write_lock(pm_data, 0);
- return 0;
-}
-
-
-void idpram_timeout_handler(struct idpram_link_pm_data *pm_data)
-{
- struct io_device *iod = dpram_find_iod(pm_data->dpld, FMT_IDX);
-
- mif_info("MIF: <%s>", __func__);
-
- if (!gpio_get_value(pm_data->mdata->gpio_phone_active)) {
- mif_err("MIF: <%s:%s> (Crash silent Reset)\n",
- __func__, pm_data->dpld->ld.name);
-
- if (iod && iod->modem_state_changed)
- iod->modem_state_changed(iod, STATE_CRASH_EXIT);
- }
-}
-
-static int idpram_resume_check(struct idpram_link_pm_data *pm_data)
-{
- /* check last pm mailbox */
- mif_info("MIF: idpram %s, last_pm_mailbox=%x\n", __func__,
- pm_data->last_pm_mailbox);
-
- if (pm_data->last_pm_mailbox == INT_CMD(INT_MASK_CMD_PDA_WAKEUP)) {
- pm_data->last_pm_mailbox = 0;
- return 0;
- }
-
- dpram_write_command(pm_data->dpld, INT_CMD(INT_MASK_CMD_PDA_WAKEUP));
- mif_info("MIF: idpram sent PDA_WAKEUP Mailbox(0x%x)\n",
- INT_CMD(INT_MASK_CMD_PDA_WAKEUP));
-
- return -1;
-}
-
-static void idpram_resume_retry(struct work_struct *work)
-{
- struct idpram_link_pm_data *pm_data =
- container_of(work, struct idpram_link_pm_data, \
- resume_work.work);
-
- mif_debug("MIF: %s\n", __func__);
-
- if (!idpram_resume_check(pm_data)) {
- mif_info("MIF: idpram resume ok\n");
- idpram_write_lock(pm_data, 0);
- wake_lock_timeout(&pm_data->hold_wlock, msecs_to_jiffies(20));
- return;
- }
- if (pm_data->resume_retry--) {
- schedule_delayed_work(&pm_data->resume_work, \
- msecs_to_jiffies(200));
- wake_lock_timeout(&pm_data->hold_wlock, msecs_to_jiffies(260));
- } else {
- mif_info("MIF: idpram resume T-I-M-E-O-UT\n");
- idpram_timeout_handler(pm_data);
- /* hold wakelock until uevnet sent to rild */
- wake_lock_timeout(&pm_data->hold_wlock, HZ*7);
- idpram_write_lock(pm_data, 0);
- }
-}
-
-
-static irqreturn_t link_ap_wakeup_handler(int irq, void *data)
-{
- struct idpram_link_pm_data *pm_data = data;
-
- mif_info("MIF: <%s> 5 seconds.\n", __func__);
- wake_lock_timeout(&pm_data->host_wakeup_wlock, 5*HZ);
-
- return IRQ_HANDLED;
-}
-
-static int idpram_pm_suspend(struct device *dev)
-{
- struct idpram_link_pm_data *pm_data = pm;
-
- pm_data->pm_states = IDPRAM_PM_SUSPEND_START;
- gpio_set_value(pm_data->mdata->gpio_pda_active, 0);
-
- mif_debug("MIF: <%s>\n", __func__);
-
- return 0;
-}
-static int idpram_pm_resume(struct device *dev)
-{
- struct idpram_link_pm_data *pm_data = pm;
-
- idpram_resume_init(pm_data);
- gpio_set_value(pm_data->mdata->gpio_pda_active, 1);
- mif_debug("MIF: <%s>\n", __func__);
- return 0;
-}
-
-static int __devinit idpram_pm_probe(struct platform_device *pdev)
-{
- return 0;
-}
-static void idpram_pm_shutdown(struct platform_device *pdev)
-{
-}
-
-static const struct dev_pm_ops idpram_pm_ops = {
- .suspend = idpram_pm_suspend,
- .resume = idpram_pm_resume,
-};
-
-static struct platform_driver idpram_pm_driver = {
- .probe = idpram_pm_probe,
- .shutdown = idpram_pm_shutdown,
- .driver = {
- .name = "idparam_pm",
- .pm = &idpram_pm_ops,
- },
-};
-
-static void idpram_powerup_start(struct idpram_link_pm_data *pm_data)
-{
- pm_data->last_pm_mailbox = INT_CMD(INT_MASK_CMD_PDA_WAKEUP);
- pm_data->pm_states = IDPRAM_PM_ACTIVE;
- mif_debug("MIF: <%s>\n", __func__);
-}
-
-static void idpram_power_down_nack(struct idpram_link_pm_data *pm_data)
-{
- pm_data->last_pm_mailbox = INT_CMD(INT_MASK_CMD_DPRAM_DOWN_NACK);
- complete(&pm_data->idpram_down);
- mif_debug("MIF: <%s>\n", __func__);
-}
-
-static void idpram_power_down(struct idpram_link_pm_data *pm_data)
-{
- pm_data->last_pm_mailbox = INT_CMD(INT_MASK_CMD_DPRAM_DOWN);
- complete(&pm_data->idpram_down);
- mif_debug("MIF: <%s>\n", __func__);
-}
-
-static int idpram_post_resume(struct idpram_link_pm_data *pm_data)
-{
- int gpio_val = 0;
-
- mif_info("MIF: idpram %s\n", __func__);
-
- switch (pm_data->pm_states) {
- /* schedule_work */
- case IDPRAM_PM_DPRAM_POWER_DOWN:
- gpio_set_value(pm_data->mdata->gpio_pda_active, 0);
- mif_info("MIF: idpram PDA_ACTIVE LOW\n");
-
- msleep(50);
-
- idpram_resume_init(pm_data);
-
- msleep(50);
-
- gpio_set_value(pm_data->mdata->gpio_pda_active, 1);
-
- msleep(20);
-
- gpio_val = gpio_get_value(pm_data->mdata->gpio_pda_active);
- mif_info("MIF: idpram PDA_ACTIVE (%d)\n", gpio_val);
-
- if (gpio_val == 0) {
- gpio_set_value(pm_data->mdata->gpio_pda_active, 1);
- mif_info("MIF: idpram PDA_ACTIVE set again.\n");
- }
- break;
-
- case IDPRAM_PM_RESUME_START:
- break;
-
- case IDPRAM_PM_SUSPEND_PREPARE:
- break;
- }
- return 0;
-}
-
-
-static int idpram_pre_suspend(struct idpram_link_pm_data *pm_data)
-{
- int timeout_ret = 0;
- int suspend_retry = 2;
- u16 intr_out = INT_CMD(INT_MASK_CMD_PDA_SLEEP);
-
- pm_data->pm_states = IDPRAM_PM_SUSPEND_PREPARE;
- pm_data->last_pm_mailbox = 0;
- idpram_write_lock(pm_data, 1);
-
- gpio_set_value(pm_data->mdata->gpio_mbx_intr, 1);
-
- /* prevent PDA_ACTIVE ststus is low */
- gpio_set_value(pm_data->mdata->gpio_pda_active, 1);
-
- if (!atomic_read(&pm_data->read_lock)) {
- do {
- init_completion(&pm_data->idpram_down);
- dpram_write_command(pm_data->dpld, intr_out);
- mif_err("MIF: idpram sent PDA_SLEEP Mailbox(0x%X)\n",
- intr_out);
- timeout_ret =
- wait_for_completion_timeout(&pm_data->idpram_down,
- (HZ/5));
- mif_err("MIF: suspend_enter cnt = %d\n",
- suspend_retry);
- } while (!timeout_ret && suspend_retry--);
-
- switch (pm_data->last_pm_mailbox) {
- case INT_CMD(INT_MASK_CMD_DPRAM_DOWN):
- break;
-
- /* if nack or other interrup, hold wakelock for DPM resume*/
- case INT_CMD(INT_MASK_CMD_DPRAM_DOWN_NACK):
- mif_err("MIF: idpram dpram down get NACK\n");
-
- default:
- mif_err("MIF: CP dpram Down not ready! intr=0x%X\n",
- dpram_readh(&pm_data->dpld->dpram->mbx_cp2ap));
- wake_lock_timeout(&pm_data->hold_wlock,
- msecs_to_jiffies(500));
- idpram_write_lock(pm_data, 0);
- return 0;
- }
- /*
- * Because, if dpram was powered down, cp dpram random intr was
- * ocurred. so, fixed by muxing cp dpram intr pin to GPIO output
- * high,..
- */
- gpio_set_value(pm_data->mdata->gpio_mbx_intr, 1);
- s3c_gpio_cfgpin(pm_data->mdata->gpio_mbx_intr, S3C_GPIO_OUTPUT);
- pm_data->pm_states = IDPRAM_PM_DPRAM_POWER_DOWN;
-
- return 0;
- } else {
- mif_err("MIF: idpram hold read_lock\n");
- return -EBUSY;
- }
-}
-
-static int idpram_notifier_event(struct notifier_block *this,
- unsigned long event, void *ptr)
-{
- int err;
-
- switch (event) {
- case PM_SUSPEND_PREPARE:
- mif_debug("MIF: PM_SUSPEND_PREPARE+\n");
- err = idpram_pre_suspend(pm);
- if (err)
- mif_err("MIF: pre-suspend err\n");
- break;
-
- case PM_POST_SUSPEND:
- mif_debug("MIF: PM_POST_SUSPEND+\n");
- err = idpram_post_resume(pm);
- if (err)
- mif_err("MIF: pre-suspend err\n");
- break;
- }
- return NOTIFY_DONE;
-}
-
-static struct notifier_block idpram_link_pm_notifier = {
- .notifier_call = idpram_notifier_event,
-};
-
-static int idpram_link_pm_init
-(
-struct dpram_link_device *idpram_ld,
-struct platform_device *pdev
-)
-{
- int r = 0;
- unsigned irq = 0;
- struct modem_data *pdata =
- (struct modem_data *)pdev->dev.platform_data;
-
- mif_info("MIF: <%s>\n", __func__);
-
- pm = kzalloc(sizeof(struct idpram_link_pm_data), GFP_KERNEL);
- if (!pm) {
- mif_err("MIF: %s: link_pm_data is NULL\n", __func__);
- return -ENOMEM;
- }
-
- pm->mdata = pdata;
- pm->dpld = idpram_ld;
- idpram_ld->link_pm_data = pm;
-
- /*for pm notifire*/
- register_pm_notifier(&idpram_link_pm_notifier);
-
-
- init_completion(&pm->idpram_down);
- wake_lock_init(&pm->host_wakeup_wlock,
- WAKE_LOCK_SUSPEND,
- "HOST_WAKEUP_WLOCK");
- wake_lock_init(&pm->rd_wlock, WAKE_LOCK_SUSPEND, "dpram_pwrdn");
- wake_lock_init(&pm->hold_wlock, WAKE_LOCK_SUSPEND, "dpram_hold");
- wake_lock_init(&pm->wakeup_wlock, WAKE_LOCK_SUSPEND, "dpram_wakeup");
- atomic_set(&pm->read_lock, 0);
- atomic_set(&pm->write_lock, 0);
- INIT_DELAYED_WORK(&pm->resume_work, idpram_resume_retry);
-
- r = platform_driver_register(&idpram_pm_driver);
- if (r) {
- mif_err("MIF: wakelocks_init: platform_driver_register failed\n");
- goto err_platform_driver_register;
- }
-
- irq = gpio_to_irq(pdata->gpio_ap_wakeup);
- r = request_irq(irq, link_ap_wakeup_handler,
- IRQF_TRIGGER_RISING,
- "idpram_host_wakeup", (void *)pm);
-
- mif_info("MIF: <%s> DPRAM IRQ# = %d, %d\n", __func__,
- irq,
- pm->mdata->gpio_ap_wakeup);
-
- if (r) {
- mif_err("MIF: %s:fail to request irq(%d) host_wake_irq\n",
- __func__, r);
- goto err_request_irq;
- }
-
- r = enable_irq_wake(irq);
- if (r) {
- mif_err("MIF: %s: failed to enable_irq_wake:%d host_wake_irq\n",
- __func__, r);
- goto err_set_wake_irq;
- }
-
- mif_info("MIF: <%s> END\n", __func__);
- return 0;
-
-err_set_wake_irq:
- free_irq(irq, (void *)pm);
-err_request_irq:
- platform_driver_unregister(&idpram_pm_driver);
-err_platform_driver_register:
- kfree(pm);
- return r;
-}
-#endif /*CONFIG_INTERNAL_MODEM_IF*/
-
-
-
-static inline int dpram_readh(void __iomem *p_dest)
-{
- unsigned long dest = (unsigned long)p_dest;
- return ioread16(dest);
-}
-
-static inline void dpram_writew(u32 value, void __iomem *p_dest)
-{
- unsigned long dest = (unsigned long)p_dest;
- iowrite32(value, dest);
-}
-
-static inline void dpram_writeh(u16 value, void __iomem *p_dest)
-{
- unsigned long dest = (unsigned long)p_dest;
- iowrite16(value, dest);
-}
-
-static inline void dpram_writeb(u8 value, void __iomem *p_dest)
-{
- unsigned long dest = (unsigned long)p_dest;
- iowrite8(value, dest);
-}
-
-
-static void dpram_write_command(struct dpram_link_device *dpld, u16 cmd)
-{
- dpram_writeh(cmd, &dpld->dpram->mbx_ap2cp);
-}
-
-static void dpram_clear_interrupt(struct dpram_link_device *dpld)
-{
- dpram_writeh(0, &dpld->dpram->mbx_cp2ap);
-}
-
-static void dpram_drop_data(struct dpram_device *device, u16 head)
-{
- dpram_writeh(head, &device->in->tail);
-}
-
-static void dpram_zero_circ(struct dpram_circ *circ)
-{
- dpram_writeh(0, &circ->head);
- dpram_writeh(0, &circ->tail);
-}
-
-static void dpram_clear(struct dpram_link_device *dpld)
-{
- dpram_zero_circ(&dpld->dpram->fmt_out);
- dpram_zero_circ(&dpld->dpram->raw_out);
- dpram_zero_circ(&dpld->dpram->fmt_in);
- dpram_zero_circ(&dpld->dpram->raw_in);
-}
-
-static bool dpram_circ_valid(int size, u16 head, u16 tail)
-{
- if (head >= size) {
- mif_err("MIF: head(%d) >= size(%d)\n", head, size);
- return false;
- }
- if (tail >= size) {
- mif_err("MIF: tail(%d) >= size(%d)\n", tail, size);
- return false;
- }
- return true;
-}
-
-static int dpram_init_and_report(struct dpram_link_device *dpld)
-{
- const u16 init_end = INT_CMD(INT_CMD_INIT_END);
- u16 magic;
- u16 enable;
-
- dpram_writeh(0, &dpld->dpram->enable);
- dpram_clear(dpld);
- dpram_writeh(DP_MAGIC_CODE, &dpld->dpram->magic);
- dpram_writeh(1, &dpld->dpram->enable);
-
- /* Send init end code to modem */
- dpram_write_command(dpld, init_end);
-
- magic = dpram_readh(&dpld->dpram->magic);
- if (magic != DP_MAGIC_CODE) {
- mif_err("MIF:: %s: Failed to check magic\n", __func__);
- return -1;
- }
-
- enable = dpram_readh(&dpld->dpram->enable);
- if (!enable) {
- mif_err("MIF:: %s: DPRAM enable failed\n", __func__);
- return -1;
- }
-
- return 0;
-}
-
-static struct io_device *dpram_find_iod(struct dpram_link_device *dpld, int id)
-{
- struct io_device *iod;
-
- list_for_each_entry(iod, &dpld->list_of_io_devices, list) {
- if ((id == FMT_IDX && iod->format == IPC_FMT) ||
- (id == RAW_IDX && iod->format == IPC_MULTI_RAW))
- return iod;
- }
-
- return NULL;
-}
-
-static void cmd_req_active_handler(struct dpram_link_device *dpld)
-{
- dpram_write_command(dpld, INT_CMD(INT_CMD_RES_ACTIVE));
-}
-
-static void cmd_error_display_handler(struct dpram_link_device *dpld)
-{
- struct io_device *iod = dpram_find_iod(dpld, FMT_IDX);
-
- mif_info("MIF: Received 0xc9 from modem (CP Crash)\n");
- mif_info("MIF: %s\n", dpld->dpram->fmt_in_buff);
-
- if (iod && iod->modem_state_changed)
- iod->modem_state_changed(iod, STATE_CRASH_EXIT);
-}
-
-static void cmd_phone_start_handler(struct dpram_link_device *dpld)
-{
- mif_debug("MIF: Received 0xc8 from modem (Boot OK)\n");
- complete_all(&dpld->dpram_init_cmd);
- dpram_init_and_report(dpld);
-}
-
-static void cmd_nv_rebuild_handler(struct dpram_link_device *dpld)
-{
- struct io_device *iod = dpram_find_iod(dpld, FMT_IDX);
-
- mif_info("MIF: Received nv rebuilding from modem\n");
- mif_info("MIF: %s\n", dpld->dpram->fmt_in_buff);
-
- if (iod && iod->modem_state_changed)
- iod->modem_state_changed(iod, STATE_NV_REBUILDING);
-}
-
-
-static void command_handler(struct dpram_link_device *dpld, u16 cmd)
-{
- mif_debug("MIF: %s: %x\n", __func__, cmd);
-
- switch (INT_CMD_MASK(cmd)) {
- case INT_CMD_REQ_ACTIVE:
- cmd_req_active_handler(dpld);
- break;
-
- case INT_CMD_ERR_DISPLAY:
- cmd_error_display_handler(dpld);
- break;
-
- case INT_CMD_PHONE_START:
- cmd_phone_start_handler(dpld);
- break;
-
- case INT_CMD_NV_REBUILDING:
- mif_err("[MODEM_IF] NV_REBUILDING\n");
- cmd_nv_rebuild_handler(dpld);
- break;
-
- case INT_CMD_PIF_INIT_DONE:
- complete_all(&dpld->modem_pif_init_done);
- break;
-
- case INT_CMD_SILENT_NV_REBUILDING:
- mif_err("[MODEM_IF] SILENT_NV_REBUILDING\n");
- break;
-
-#ifdef CONFIG_INTERNAL_MODEM_IF
- case INT_MASK_CMD_DPRAM_DOWN:
- idpram_power_down(dpld->link_pm_data);
- break;
-
- case INT_MASK_CMD_DPRAM_DOWN_NACK:
- idpram_power_down_nack(dpld->link_pm_data);
- break;
-
- case INT_MASK_CMD_CP_WAKEUP_START:
- idpram_powerup_start(dpld->link_pm_data);
- break;
-#else
- case INT_CMD_NORMAL_POWER_OFF:
- /*ToDo:*/
- /*kernel_sec_set_cp_ack()*/;
- break;
-
- case INT_CMD_REQ_TIME_SYNC:
- case INT_CMD_PHONE_DEEP_SLEEP:
- case INT_CMD_EMER_DOWN:
- break;
-#endif
-
- default:
- mif_err("Unknown command.. %x\n", cmd);
- }
-}
-
-
-static int dpram_process_modem_update(struct dpram_link_device *dpld,
- struct dpram_firmware *pfw)
-{
- int ret = 0;
- char *buff = vmalloc(pfw->size);
-
- mif_debug("[GOTA] modem size =[%d]\n", pfw->size);
-
- if (!buff)
- return -ENOMEM;
-
- ret = copy_from_user(buff, pfw->firmware, pfw->size);
- if (ret < 0) {
- mif_err("[%s:%d] Copy from user failed\n", __func__, __LINE__);
- goto out;
- }
-
- ret = dpram_download(dpld, buff, pfw->size);
- if (ret < 0)
- mif_err("firmware write failed\n");
-
-out:
- vfree(buff);
- return ret;
-}
-
-
-static int dpram_modem_update(struct link_device *ld, struct io_device *iod,
- unsigned long _arg)
-{
- int ret;
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
- struct dpram_firmware fw;
-
- mif_debug("[GOTA] dpram_modem_update\n");
-
- ret = copy_from_user(&fw, (void __user *)_arg, sizeof(fw));
- if (ret < 0) {
- mif_err("copy from user failed!");
- return ret;
- }
-
- return dpram_process_modem_update(dpld, &fw);
-}
-
-static int dpram_dump_update(struct link_device *ld, struct io_device *iod,
- unsigned long _arg)
-{
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
- struct dpram_firmware *fw = (struct dpram_firmware *)_arg ;
-
- mif_debug("MIF: dpram_dump_update()\n");
-
- return dpram_upload(dpld, fw);
-}
-
-static int dpram_read(struct dpram_link_device *dpld,
- struct dpram_device *device, int dev_idx)
-{
- struct io_device *iod;
- int size;
- int tmp_size;
- u16 head, tail;
- char *buff;
-
- head = dpram_readh(&device->in->head);
- tail = dpram_readh(&device->in->tail);
- mif_debug("=====> %s, head: %d, tail: %d\n", __func__, head, tail);
-
- if (head == tail) {
- mif_err("MIF: %s: head == tail\n", __func__);
- goto err_dpram_read;
- }
-
- if (!dpram_circ_valid(device->in_buff_size, head, tail)) {
- mif_err("MIF: %s: invalid circular buffer\n", __func__);
- dpram_zero_circ(device->in);
- goto err_dpram_read;
- }
-
- iod = dpram_find_iod(dpld, dev_idx);
- if (!iod) {
- mif_err("MIF: iod == NULL\n");
- goto err_dpram_read;
- }
-
- /* Get data size in DPRAM*/
- size = (head > tail) ? (head - tail) :
- (device->in_buff_size - tail + head);
-
- /* ----- (tail) 7f 00 00 7e (head) ----- */
- if (head > tail) {
- buff = device->in_buff_addr + tail;
- if (iod->recv(iod, buff, size) < 0) {
- mif_err("MIF: %s: recv error, dropping data\n",
- __func__);
- dpram_drop_data(device, head);
- goto err_dpram_read;
- }
- } else { /* 00 7e (head) ----------- (tail) 7f 00 */
- /* 1. tail -> buffer end.*/
- tmp_size = device->in_buff_size - tail;
- buff = device->in_buff_addr + tail;
- if (iod->recv(iod, buff, tmp_size) < 0) {
- mif_err("MIF: %s: recv error, dropping data\n",
- __func__);
- dpram_drop_data(device, head);
- goto err_dpram_read;
- }
-
- /* 2. buffer start -> head.*/
- if (size > tmp_size) {
- buff = (char *)device->in_buff_addr;
- if (iod->recv(iod, buff, (size - tmp_size)) < 0) {
- mif_err("MIF: %s: recv error, dropping data\n",
- __func__);
- dpram_drop_data(device, head);
- goto err_dpram_read;
- }
- }
- }
-
- /* new tail */
- tail = (u16)((tail + size) % device->in_buff_size);
- dpram_writeh(tail, &device->in->tail);
-
- return size;
-
-err_dpram_read:
- return -EINVAL;
-}
-
-static void non_command_handler(struct dpram_link_device *dpld,
- u16 non_cmd)
-{
- struct dpram_device *device = NULL;
- u16 head, tail;
- u16 magic, access;
- int ret = 0;
-
- mif_debug("MIF: Entering non_command_handler(0x%04X)\n", non_cmd);
-
- magic = dpram_readh(&dpld->dpram->magic);
- access = dpram_readh(&dpld->dpram->enable);
-
- if (!access || magic != DP_MAGIC_CODE) {
- mif_err("fmr recevie error!!!! access = 0x%x, magic =0x%x",
- access, magic);
- return;
- }
-
- /* Check formatted data region */
- device = &dpld->dev_map[FMT_IDX];
- head = dpram_readh(&device->in->head);
- tail = dpram_readh(&device->in->tail);
-
- if (!dpram_circ_valid(device->in_buff_size, head, tail)) {
- mif_err("MIF: %s: invalid circular buffer\n", __func__);
- dpram_zero_circ(device->in);
- return;
- }
-
- if (head != tail) {
- if (non_cmd & INT_MASK_REQ_ACK_F)
- atomic_inc(&dpld->fmt_txq_req_ack_rcvd);
-
- ret = dpram_read(dpld, device, FMT_IDX);
- if (ret < 0)
- mif_err("%s, dpram_read failed\n", __func__);
-
- if (atomic_read(&dpld->fmt_txq_req_ack_rcvd) > 0) {
- dpram_write_command(dpld,
- INT_NON_CMD(INT_MASK_RES_ACK_F));
- atomic_set(&dpld->fmt_txq_req_ack_rcvd, 0);
- }
- } else {
- if (non_cmd & INT_MASK_REQ_ACK_F) {
- dpram_write_command(dpld,
- INT_NON_CMD(INT_MASK_RES_ACK_F));
- atomic_set(&dpld->fmt_txq_req_ack_rcvd, 0);
- }
- }
-
- /* Check raw data region */
- device = &dpld->dev_map[RAW_IDX];
- head = dpram_readh(&device->in->head);
- tail = dpram_readh(&device->in->tail);
-
- if (!dpram_circ_valid(device->in_buff_size, head, tail)) {
- mif_err("MIF: %s: invalid circular buffer\n", __func__);
- dpram_zero_circ(device->in);
- return;
- }
-
- if (head != tail) {
- if (non_cmd & INT_MASK_REQ_ACK_R)
- atomic_inc(&dpld->raw_txq_req_ack_rcvd);
-
- ret = dpram_read(dpld, device, RAW_IDX);
- if (ret < 0)
- mif_err("%s, dpram_read failed\n", __func__);
-
- if (atomic_read(&dpld->raw_txq_req_ack_rcvd) > 0) {
- dpram_write_command(dpld,
- INT_NON_CMD(INT_MASK_RES_ACK_R));
- atomic_set(&dpld->raw_txq_req_ack_rcvd, 0);
- }
- } else {
- if (non_cmd & INT_MASK_REQ_ACK_R) {
- dpram_write_command(dpld,
- INT_NON_CMD(INT_MASK_RES_ACK_R));
- atomic_set(&dpld->raw_txq_req_ack_rcvd, 0);
- }
- }
-}
-
-static void gota_cmd_handler(struct dpram_link_device *dpld, u16 cmd)
-{
- if (cmd & GOTA_RESULT_FAIL) {
- mif_err("[GOTA] Command failed: %04x\n", cmd);
- return;
- }
-
- switch (GOTA_CMD_MASK(cmd)) {
- case GOTA_CMD_RECEIVE_READY:
- mif_debug("[GOTA] Send CP-->AP RECEIVE_READY\n");
- dpram_write_command(dpld, CMD_DL_START_REQ);
- break;
-
- case GOTA_CMD_DOWNLOAD_START_RESP:
- mif_debug("[GOTA] Send CP-->AP DOWNLOAD_START_RESP\n");
- complete_all(&dpld->gota_download_start_complete);
- break;
-
- case GOTA_CMD_SEND_DONE_RESP:
- mif_debug("[GOTA] Send CP-->AP SEND_DONE_RESP\n");
- complete_all(&dpld->gota_send_done);
- break;
-
- case GOTA_CMD_UPDATE_DONE:
- mif_debug("[GOTA] Send CP-->AP UPDATE_DONE\n");
- complete_all(&dpld->gota_update_done);
- break;
-
- case GOTA_CMD_IMAGE_SEND_RESP:
- mif_debug("MIF: Send CP-->AP IMAGE_SEND_RESP\n");
- complete_all(&dpld->dump_receive_done);
- break;
-
- default:
- mif_err("[GOTA] Unknown command.. %x\n", cmd);
- }
-}
-
-static irqreturn_t dpram_irq_handler(int irq, void *p_ld)
-{
- u16 cp2ap;
-
- struct link_device *ld = (struct link_device *)p_ld;
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
-
- cp2ap = dpram_readh(&dpld->dpram->mbx_cp2ap);
-#if 0
- mif_err("MIF: received CP2AP = 0x%x\n", cp2ap);
-#endif
- if (cp2ap == INT_POWERSAFE_FAIL) {
- mif_err("MIF: Received POWERSAFE_FAIL\n");
- goto exit_irq;
- }
-
- if (GOTA_CMD_VALID(cp2ap))
- gota_cmd_handler(dpld, cp2ap);
- else if (INT_CMD_VALID(cp2ap))
- command_handler(dpld, cp2ap);
- else if (INT_VALID(cp2ap))
- non_command_handler(dpld, cp2ap);
- else
- mif_err("MIF: Invalid command %04x\n", cp2ap);
-
-exit_irq:
-#ifdef CONFIG_INTERNAL_MODEM_IF
- dpld->clear_interrupt();
-#endif
- return IRQ_HANDLED;
-}
-
-static int dpram_attach_io_dev(struct link_device *ld, struct io_device *iod)
-{
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
-
- iod->link = ld;
- /* list up io devices */
- list_add(&iod->list, &dpld->list_of_io_devices);
-
- return 0;
-}
-
-static int dpram_write(struct dpram_link_device *dpld,
- struct dpram_device *device,
- const unsigned char *buf,
- int len)
-{
- u16 head;
- u16 tail;
- u16 irq_mask;
- int free_space;
- int last_size;
-
-#ifdef CONFIG_INTERNAL_MODEM_IF
- /* Internal DPRAM, check dpram ready?*/
- if (idpram_get_write_lock(dpld->link_pm_data)) {
- printk(KERN_INFO "dpram_write_net - not ready return -EAGAIN\n");
- return -EAGAIN;
- }
-#endif
-
- head = dpram_readh(&device->out->head);
- tail = dpram_readh(&device->out->tail);
-
- if (!dpram_circ_valid(device->out_buff_size, head, tail)) {
- mif_err("MIF: %s: invalid circular buffer\n", __func__);
- dpram_zero_circ(device->out);
- return -EINVAL;
- }
-
- free_space = (head < tail) ? tail - head - 1 :
- device->out_buff_size + tail - head - 1;
- if (len > free_space) {
- mif_debug("WRITE: No space in Q\n"
- "len[%d] free_space[%d] head[%u] tail[%u] out_buff_size =%d\n",
- len, free_space, head, tail, device->out_buff_size);
- return -EINVAL;
- }
-
- mif_debug("WRITE: len[%d] free_space[%d] head[%u] tail[%u] out_buff_size =%d\n",
- len, free_space, head, tail, device->out_buff_size);
-
- if (head < tail) {
- /* +++++++++ head ---------- tail ++++++++++ */
- memcpy((device->out_buff_addr + head), buf, len);
- } else {
- /* ------ tail +++++++++++ head ------------ */
- last_size = device->out_buff_size - head;
- memcpy((device->out_buff_addr + head), buf,
- len > last_size ? last_size : len);
- if (len > last_size) {
- memcpy(device->out_buff_addr, (buf + last_size),
- (len - last_size));
- }
- }
-
- /* Update new head */
- head = (u16)((head + len) % device->out_buff_size);
- dpram_writeh(head, &device->out->head);
-
- irq_mask = INT_MASK_VALID;
-
- if (len > 0)
- irq_mask |= device->mask_send;
-
- dpram_write_command(dpld, irq_mask);
-
- return len;
-}
-
-static void dpram_write_work(struct work_struct *work)
-{
- struct link_device *ld =
- container_of(work, struct link_device, tx_delayed_work.work);
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
- struct dpram_device *device;
- struct sk_buff *skb;
- bool reschedule = false;
- int ret;
-
- device = &dpld->dev_map[FMT_IDX];
- while ((skb = skb_dequeue(&ld->sk_fmt_tx_q))) {
- ret = dpram_write(dpld, device, skb->data, skb->len);
- if (ret < 0) {
- skb_queue_head(&ld->sk_fmt_tx_q, skb);
- reschedule = true;
- break;
- }
- dev_kfree_skb_any(skb);
- }
-
- device = &dpld->dev_map[RAW_IDX];
- while ((skb = skb_dequeue(&ld->sk_raw_tx_q))) {
- ret = dpram_write(dpld, device, skb->data, skb->len);
- if (ret < 0) {
- skb_queue_head(&ld->sk_raw_tx_q, skb);
- reschedule = true;
- break;
- }
- dev_kfree_skb_any(skb);
- }
-
- if (reschedule)
- schedule_delayed_work(&ld->tx_delayed_work,
- msecs_to_jiffies(10));
-}
-
-static int dpram_send(struct link_device *ld, struct io_device *iod,
- struct sk_buff *skb)
-{
- int len = skb->len;
- mif_debug("%s: iod->format = %d\n", __func__, iod->format);
-
- switch (iod->format) {
- case IPC_FMT:
- skb_queue_tail(&ld->sk_fmt_tx_q, skb);
- break;
-
- case IPC_RAW:
- skb_queue_tail(&ld->sk_raw_tx_q, skb);
- break;
-
- case IPC_BOOT:
- case IPC_RFS:
- default:
- dev_kfree_skb_any(skb);
- return 0;
- }
-
- schedule_delayed_work(&ld->tx_delayed_work, 0);
- return len;
-}
-
-static void dpram_table_init(struct dpram_link_device *dpld)
-{
- struct dpram_device *dev;
- struct dpram_map __iomem *dpram = dpld->dpram;
-
- dev = &dpld->dev_map[FMT_IDX];
- dev->in = &dpram->fmt_in;
- dev->in_buff_addr = dpram->fmt_in_buff;
- dev->in_buff_size = DP_FMT_IN_BUFF_SIZE;
- dev->out = &dpram->fmt_out;
- dev->out_buff_addr = dpram->fmt_out_buff;
- dev->out_buff_size = DP_FMT_OUT_BUFF_SIZE;
- dev->mask_req_ack = INT_MASK_REQ_ACK_F;
- dev->mask_res_ack = INT_MASK_RES_ACK_F;
- dev->mask_send = INT_MASK_SEND_F;
-
- dev = &dpld->dev_map[RAW_IDX];
- dev->in = &dpram->raw_in;
- dev->in_buff_addr = dpram->raw_in_buff;
- dev->in_buff_size = DP_RAW_IN_BUFF_SIZE;
- dev->out = &dpram->raw_out;
- dev->out_buff_addr = dpram->raw_out_buff;
- dev->out_buff_size = DP_RAW_OUT_BUFF_SIZE;
- dev->mask_req_ack = INT_MASK_REQ_ACK_R;
- dev->mask_res_ack = INT_MASK_RES_ACK_R;
- dev->mask_send = INT_MASK_SEND_R;
-}
-
-static int dpram_set_dlmagic(struct link_device *ld, struct io_device *iod)
-{
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
- dpram_writew(DP_MAGIC_DMDL, &dpld->dpram->magic);
- return 0;
-}
-
-static int dpram_set_ulmagic(struct link_device *ld, struct io_device *iod)
-{
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
- struct dpram_map *dpram = (void *)dpld->dpram;
- u8 *dest;
- dest = (u8 *)(&dpram->fmt_out);
-
- dpram_writew(DP_MAGIC_UMDL, &dpld->dpram->magic);
-
- dpram_writeb((u8)START_INDEX, dest + 0);
- dpram_writeb((u8)0x1, dest + 1);
- dpram_writeb((u8)0x1, dest + 2);
- dpram_writeb((u8)0x0, dest + 3);
- dpram_writeb((u8)END_INDEX, dest + 4);
-
- init_completion(&dpld->gota_download_start_complete);
- dpram_write_command(dpld, CMD_DL_START_REQ);
-
- return 0;
-}
-
-static int
-dpram_download(struct dpram_link_device *dpld, const char *buf, int len)
-{
- struct dpram_map *dpram = (void *)dpld->dpram;
- struct dpram_ota_header header;
- u16 nframes;
- u16 curframe = 1;
- u16 plen;
- u8 *dest;
- int ret;
-
- nframes = DIV_ROUND_UP(len, DP_DEFAULT_WRITE_LEN);
-
- mif_debug("[GOTA] download len = %d\n", len);
-
- header.start_index = START_INDEX;
- header.nframes = nframes;
-
-#ifdef CONFIG_INTERNAL_MODEM_IF
- dpld->board_ota_reset();
-#endif
- while (len > 0) {
- plen = min(len, DP_DEFAULT_WRITE_LEN);
- dest = (u8 *)&dpram->fmt_out;
-
- mif_debug("[GOTA] Start write frame %d/%d\n", \
- curframe, nframes);
-
- header.curframe = curframe;
- header.len = plen;
-
- memcpy(dest, &header, sizeof(header));
- dest += sizeof(header);
-
- memcpy(dest, buf, plen);
- dest += plen;
- buf += plen;
- len -= plen;
-
- dpram_writeb(END_INDEX, dest+3);
-
- init_completion(&dpld->gota_send_done);
-
- if (curframe == 1) {
-#ifdef CONFIG_INTERNAL_MODEM_IF
- init_completion(&dpld->gota_download_start_complete);
- dpram_write_command(dpld, 0);
-#endif
- ret = wait_for_completion_interruptible_timeout(
- &dpld->gota_download_start_complete,
- GOTA_TIMEOUT);
- if (!ret) {
- mif_err("[GOTA] CP didn't send DOWNLOAD_START\n");
- return -ENXIO;
- }
- }
-
- dpram_write_command(dpld, CMD_IMG_SEND_REQ);
- ret = wait_for_completion_interruptible_timeout(
- &dpld->gota_send_done, GOTA_SEND_TIMEOUT);
- if (!ret) {
- mif_err("[GOTA] CP didn't send SEND_DONE_RESP\n");
- return -ENXIO;
- }
-
- curframe++;
- }
-
- dpram_write_command(dpld, CMD_DL_SEND_DONE_REQ);
- ret = wait_for_completion_interruptible_timeout(
- &dpld->gota_update_done, GOTA_TIMEOUT);
- if (!ret) {
- mif_err("[GOTA] CP didn't send UPDATE_DONE_NOTIFICATION\n");
- return -ENXIO;
- }
-
- return 0;
-}
-
-static int
-dpram_upload(struct dpram_link_device *dpld, struct dpram_firmware *uploaddata)
-{
- struct dpram_map *dpram = (void *)dpld->dpram;
- struct ul_header header;
- u8 *dest;
- u8 *buff = vmalloc(DP_DEFAULT_DUMP_LEN);
- u16 plen = 0;
- u32 tlen = 0;
- int ret;
- int region = 0;
-
- mif_debug("MIF: dpram_upload()\n");
-
- ret = wait_for_completion_interruptible_timeout(
- &dpld->gota_download_start_complete,
- DUMP_START_TIMEOUT);
- if (!ret) {
- mif_err("[GOTA] CP didn't send DOWNLOAD_START\n");
- goto err_out;
- }
-
- wake_lock(&dpld->dpram_wake_lock);
-
- memset(buff, 0, DP_DEFAULT_DUMP_LEN);
-
- dpram_write_command(dpld, CMD_IMG_SEND_REQ);
- mif_debug("MIF: write CMD_IMG_SEND_REQ(0x9400)\n");
-
- while (1) {
- init_completion(&dpld->dump_receive_done);
- ret = wait_for_completion_interruptible_timeout(
- &dpld->dump_receive_done, DUMP_TIMEOUT);
- if (!ret) {
- mif_err("MIF: CP didn't send DATA_SEND_DONE_RESP\n");
- goto err_out;
- }
-
- dest = (u8 *)(&dpram->fmt_out);
-
-#ifdef CONFIG_INTERNAL_MODEM_IF
- header.bop = *(u16 *)(dest);
- header.total_frame = *(u16 *)(dest + 2);
- header.curr_frame = *(u16 *)(dest + 4);
- header.len = *(u16 *)(dest + 6);
-#else
- header.bop = *(u8 *)(dest);
- header.total_frame = *(u16 *)(dest + 1);
- header.curr_frame = *(u16 *)(dest + 3);
- header.len = *(u16 *)(dest + 5);
-#endif
-
- mif_err("total frame:%d, current frame:%d, data len:%d\n",
- header.total_frame, header.curr_frame,
- header.len);
-
- dest += DP_DUMP_HEADER_SIZE;
- plen = min(header.len, (u16)DP_DEFAULT_DUMP_LEN);
-
- memcpy(buff, dest, plen);
- dest += plen;
-
- ret = copy_to_user(uploaddata->firmware + tlen, buff, plen);
- if (ret < 0) {
- mif_err("MIF: Copy to user failed\n");
- goto err_out;
- }
-
- tlen += plen;
-
- if (header.total_frame == header.curr_frame) {
- if (region) {
- uploaddata->is_delta = tlen - uploaddata->size;
- dpram_write_command(dpld, CMD_UL_RECEIVE_RESP);
- break;
- } else {
- uploaddata->size = tlen;
- region = 1;
- }
- }
- dpram_write_command(dpld, CMD_UL_RECEIVE_RESP);
- }
-
- mif_debug("1st dump region data size=%d\n", uploaddata->size);
- mif_debug("2st dump region data size=%d\n", uploaddata->is_delta);
-
- init_completion(&dpld->gota_send_done);
- ret = wait_for_completion_interruptible_timeout(
- &dpld->gota_send_done, DUMP_TIMEOUT);
- if (!ret) {
- mif_err("[GOTA] CP didn't send SEND_DONE_RESP\n");
- goto err_out;
- }
-
- dpram_write_command(dpld, CMD_UL_RECEIVE_DONE_RESP);
- mif_debug("MIF: write CMD_UL_RECEIVE_DONE_RESP(0x9801)\n");
-
- dpram_writew(0, &dpld->dpram->magic); /*clear magic code */
-
- wake_unlock(&dpld->dpram_wake_lock);
-
- vfree(buff);
- return 0;
-
-err_out:
- vfree(buff);
- dpram_writew(0, &dpld->dpram->magic);
- mif_err("CDMA dump error out\n");
- wake_unlock(&dpld->dpram_wake_lock);
- return -EIO;
-}
-
-struct link_device *dpram_create_link_device(struct platform_device *pdev)
-{
- int ret;
- struct dpram_link_device *dpld;
- struct link_device *ld;
- struct resource *res;
- unsigned long flag = 0;
-#ifdef CONFIG_INTERNAL_MODEM_IF
- struct modem_data *pdata = (struct modem_data *)pdev->dev.platform_data;
-#endif
- BUILD_BUG_ON(sizeof(struct dpram_map) != DP_DPRAM_SIZE);
-
- dpld = kzalloc(sizeof(struct dpram_link_device), GFP_KERNEL);
- if (!dpld)
- return NULL;
- ld = &dpld->ld;
-
- INIT_LIST_HEAD(&dpld->list_of_io_devices);
- skb_queue_head_init(&ld->sk_fmt_tx_q);
- skb_queue_head_init(&ld->sk_raw_tx_q);
- INIT_DELAYED_WORK(&ld->tx_delayed_work, dpram_write_work);
-
- wake_lock_init(&dpld->dpram_wake_lock, WAKE_LOCK_SUSPEND, "DPRAM");
-
- init_completion(&dpld->modem_pif_init_done);
- init_completion(&dpld->dpram_init_cmd);
- init_completion(&dpld->gota_send_done);
- init_completion(&dpld->gota_update_done);
- init_completion(&dpld->gota_download_start_complete);
- init_completion(&dpld->dump_receive_done);
-
- ld->name = "dpram";
- ld->attach = dpram_attach_io_dev;
- ld->send = dpram_send;
- ld->gota_start = dpram_set_dlmagic;
- ld->modem_update = dpram_modem_update;
- ld->dump_start = dpram_set_ulmagic;
- ld->dump_update = dpram_dump_update;
-
-#ifdef CONFIG_INTERNAL_MODEM_IF
- dpld->clear_interrupt = pdata->clear_intr;
- dpld->board_ota_reset = pdata->ota_reset;
-#endif
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res) {
- mif_err("MIF: Failed to get mem region\n");
- goto err;
- }
- dpld->dpram = ioremap(res->start, resource_size(res));
- printk(KERN_INFO " MIF: start address:0x%08x\n", \
- res->start);
- dpld->irq = platform_get_irq_byname(pdev, "dpram_irq");
- if (!dpld->irq) {
- mif_err("MIF: %s: Failed to get IRQ\n", __func__);
- goto err;
- }
-
- dpram_table_init(dpld);
-
- atomic_set(&dpld->raw_txq_req_ack_rcvd, 0);
- atomic_set(&dpld->fmt_txq_req_ack_rcvd, 0);
-
- dpram_writeh(0, &dpld->dpram->magic);
-#ifdef CONFIG_INTERNAL_MODEM_IF
- ret = idpram_link_pm_init(dpld, pdev);
-
- if (ret)
- mif_err("MIF: idpram_link_pm_init fail.(%d)\n", ret);
-#endif
- flag = IRQF_DISABLED;
- printk(KERN_ERR "dpram irq: %d\n", dpld->irq);
- dpld->clear_interrupt();
- ret = request_irq(dpld->irq, dpram_irq_handler, flag,
- "dpram irq", ld);
- if (ret) {
- mif_err("MIF: DPRAM interrupt handler failed\n");
- goto err;
- }
-
- return ld;
-
-err:
- iounmap(dpld->dpram);
- kfree(dpld);
- return NULL;
-}
diff --git a/drivers/misc/modem_if_na/modem_link_device_dpram.h b/drivers/misc/modem_if_na/modem_link_device_dpram.h
deleted file mode 100644
index aaa8e82..0000000
--- a/drivers/misc/modem_if_na/modem_link_device_dpram.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright (C) 2011 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-#include <linux/wakelock.h>
-
-#ifndef __MODEM_LINK_DEVICE_DPRAM_H__
-#define __MODEM_LINK_DEVICE_DPRAM_H__
-
-#define FMT_IDX 0
-#define RAW_IDX 1
-#define MAX_IDX 2
-#define DP_FMT_OUT_BUFF_SIZE 2044
-#define DP_RAW_OUT_BUFF_SIZE 6128
-#define DP_FMT_IN_BUFF_SIZE 2044
-#define DP_RAW_IN_BUFF_SIZE 6128
-struct dpram_circ {
- u16 head;
- u16 tail;
-};
-
-struct dpram_ota_header {
- u8 start_index;
- u16 nframes;
- u16 curframe;
- u16 len;
-
-} __packed;
-
-struct dpram_map {
- u16 magic;
- u16 enable;
-
- struct dpram_circ fmt_out;
- u8 fmt_out_buff[DP_FMT_OUT_BUFF_SIZE];
-
- struct dpram_circ raw_out;
- u8 raw_out_buff[DP_RAW_OUT_BUFF_SIZE];
-
- struct dpram_circ fmt_in;
- u8 fmt_in_buff[DP_FMT_IN_BUFF_SIZE];
-
- struct dpram_circ raw_in;
- u8 raw_in_buff[DP_RAW_IN_BUFF_SIZE];
-
- u8 padding[16];
-#ifdef CONFIG_INTERNAL_MODEM_IF
- u16 mbx_ap2cp;
- u16 mbx_cp2ap;
-#else
- u16 mbx_cp2ap;
- u16 mbx_ap2cp;
-#endif
-} __packed;
-
-struct dpram_device {
- struct dpram_circ __iomem *in;
- u8 __iomem *in_buff_addr;
- int in_buff_size;
-
- struct dpram_circ __iomem *out;
- u8 __iomem *out_buff_addr;
- int out_buff_size;
-
- u16 mask_req_ack;
- u16 mask_res_ack;
- u16 mask_send;
-};
-
-struct ul_header {
-#ifdef CONFIG_INTERNAL_MODEM_IF
- u16 bop;
- u16 total_frame;
- u16 curr_frame;
- u16 len;
-#else
- u8 bop;
- u16 total_frame;
- u16 curr_frame;
- u16 len;
-#endif
-};
-
-#ifdef CONFIG_INTERNAL_MODEM_IF
-enum idpram_link_pm_states {
- IDPRAM_PM_SUSPEND_PREPARE,
- IDPRAM_PM_DPRAM_POWER_DOWN,
- IDPRAM_PM_SUSPEND_START,
- IDPRAM_PM_RESUME_START,
- IDPRAM_PM_ACTIVE,
-};
-
-struct idpram_link_pm_data {
- struct dpram_link_device *dpld;
- struct modem_data *mdata;
-
- unsigned last_pm_mailbox; /* 0xCC or 0x CA*/
- unsigned resume_retry;
- unsigned pm_states;
-
- int idpram_wpend;
-
- struct completion idpram_down;
-
- struct delayed_work resume_work;
-
- atomic_t read_lock;
- atomic_t write_lock;
-
- struct wake_lock host_wakeup_wlock;
- struct wake_lock rd_wlock;
- struct wake_lock hold_wlock;
- struct wake_lock wakeup_wlock;
-};
-#endif
-
-
-struct dpram_link_device {
- struct link_device ld;
-
- /* maybe -list of io devices for the link device to use
- * to find where to send incoming packets to */
- struct list_head list_of_io_devices;
-
- atomic_t raw_txq_req_ack_rcvd;
- atomic_t fmt_txq_req_ack_rcvd;
-
- struct dpram_map __iomem *dpram;
- struct dpram_device dev_map[MAX_IDX];
-
- struct wake_lock dpram_wake_lock;
-
- struct completion dpram_init_cmd;
- struct completion modem_pif_init_done;
- struct completion gota_download_start_complete;
- struct completion gota_send_done;
- struct completion gota_update_done;
- struct completion dump_receive_done;
-
- int irq;
-#ifdef CONFIG_INTERNAL_MODEM_IF
- void (*clear_interrupt)(void);
- int (*board_ota_reset) (void);
- struct idpram_link_pm_data *link_pm_data;
- int (*init_magic_num)(struct dpram_link_device *dpld);
-#else
- void (*clear_interrupt)(struct dpram_link_device *);
-#endif
-};
-
-/* converts from struct link_device* to struct xxx_link_device* */
-#define to_dpram_link_device(linkdev) \
- container_of(linkdev, struct dpram_link_device, ld)
-
-#endif
diff --git a/drivers/misc/modem_if_na/modem_link_device_usb.c b/drivers/misc/modem_if_na/modem_link_device_usb.c
deleted file mode 100644
index 6bdd7b5..0000000
--- a/drivers/misc/modem_if_na/modem_link_device_usb.c
+++ /dev/null
@@ -1,1031 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#define DEBUG
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/device.h>
-#include <linux/sched.h>
-#include <linux/irq.h>
-#include <linux/poll.h>
-#include <linux/gpio.h>
-#include <linux/if_arp.h>
-#include <linux/platform_device.h>
-#include <linux/suspend.h>
-
-#include <linux/platform_data/modem_na.h>
-#include "modem_prj.h"
-#include "modem_link_device_usb.h"
-#include "modem_link_pm_usb.h"
-
-#include <mach/regs-gpio.h>
-
-#define URB_COUNT 4
-
-extern int factory_mode;
-
-static int enable_autosuspend;
-static int wakelock_held;
-
-static int usb_tx_urb_with_skb(struct usb_link_device *usb_ld,
- struct sk_buff *skb, struct if_usb_devdata *pipe_data);
-
-static void
-usb_change_modem_state(struct usb_link_device *usb_ld, enum modem_state state);
-
-static int usb_attach_io_dev(struct link_device *ld,
- struct io_device *iod)
-{
- struct usb_link_device *usb_ld = to_usb_link_device(ld);
-
- iod->link = ld;
-
- /* list up io devices */
- list_add(&iod->list, &usb_ld->list_of_io_devices);
-
- return 0;
-}
-
-static void
-usb_free_urbs(struct usb_link_device *usb_ld, struct if_usb_devdata *pipe)
-{
- struct usb_device *usbdev = usb_ld->usbdev;
- struct urb *urb;
-
- while ((urb = usb_get_from_anchor(&pipe->urbs))) {
- usb_poison_urb(urb);
- usb_free_coherent(usbdev, pipe->rx_buf_size,
- urb->transfer_buffer, urb->transfer_dma);
- urb->transfer_buffer = NULL;
- usb_put_urb(urb);
- usb_free_urb(urb);
- }
-}
-
-static int usb_init_communication(struct link_device *ld,
- struct io_device *iod)
-{
- int err = 0;
- switch (iod->format) {
- case IPC_BOOT:
- ld->com_state = COM_BOOT;
- skb_queue_purge(&ld->sk_fmt_tx_q);
- break;
-
- case IPC_RAMDUMP:
- ld->com_state = COM_CRASH;
- break;
-
- case IPC_FMT:
- case IPC_RFS:
- case IPC_RAW:
-
- default:
- ld->com_state = COM_ONLINE;
- break;
- }
-
- mif_debug("com_state = %d\n", ld->com_state);
- return err;
-}
-
-static void usb_terminate_communication(
- struct link_device *ld, struct io_device *iod)
-{
- if (iod->format != IPC_BOOT && iod->format != IPC_RAMDUMP)
- mif_debug("com_state = %d\n", ld->com_state);
-}
-
-static int usb_rx_submit(struct if_usb_devdata *pipe, struct urb *urb,
- gfp_t gfp_flags)
-{
- int ret;
-
- usb_anchor_urb(urb, &pipe->reading);
- ret = usb_submit_urb(urb, gfp_flags);
- if (ret) {
- usb_unanchor_urb(urb);
- usb_anchor_urb(urb, &pipe->urbs);
- mif_err("submit urb fail with ret (%d)\n", ret);
- }
-
- usb_mark_last_busy(urb->dev);
- return ret;
-}
-
-static void usb_rx_complete(struct urb *urb)
-{
- struct if_usb_devdata *pipe_data = urb->context;
- struct usb_link_device *usb_ld = usb_get_intfdata(pipe_data->data_intf);
- struct io_device *iod;
- int iod_format = IPC_FMT;
- int ret;
-
- usb_mark_last_busy(urb->dev);
-
- switch (urb->status) {
- case 0:
- case -ENOENT:
- if (!urb->actual_length)
- goto re_submit;
- /* call iod recv */
- /* how we can distinguish boot ch with fmt ch ?? */
- switch (pipe_data->format) {
- case IF_USB_FMT_EP:
- iod_format = IPC_FMT;
- /*
- print_hex_dump(KERN_INFO, "[FMT-RX] ",
- DUMP_PREFIX_OFFSET, 16, 1,
- urb->transfer_buffer,
- min(urb->actual_length, (u32)64), true);
- */
- break;
- case IF_USB_RAW_EP:
- iod_format = IPC_MULTI_RAW;
- break;
- case IF_USB_RFS_EP:
- iod_format = IPC_RFS;
- break;
- default:
- break;
- }
-
- list_for_each_entry(iod, &usb_ld->list_of_io_devices, list) {
- /* during boot stage fmt end point */
- /* shared with boot io device */
- /* when we use fmt device only, at boot and ipc exchange
- it can be reduced to 1 device */
- if (iod_format == IPC_FMT &&
- usb_ld->ld.com_state == COM_BOOT)
- iod_format = IPC_BOOT;
- if (iod_format == IPC_FMT &&
- usb_ld->ld.com_state == COM_CRASH)
- iod_format = IPC_RAMDUMP;
-
- if (iod->format == iod_format) {
- ret = iod->recv(iod,
- (char *)urb->transfer_buffer,
- urb->actual_length);
- if (ret < 0)
- mif_err("io device recv error :%d\n",
- ret);
- break;
- }
- }
-re_submit:
- if (urb->status || atomic_read(&usb_ld->suspend_count))
- break;
-
- usb_mark_last_busy(urb->dev);
- usb_rx_submit(pipe_data, urb, GFP_ATOMIC);
- return;
- case -ESHUTDOWN:
- case -EPROTO:
- break;
- case -EOVERFLOW:
- mif_err("RX overflow\n");
- break;
- default:
- mif_err("RX complete Status (%d)\n", urb->status);
- break;
- }
-
- usb_anchor_urb(urb, &pipe_data->urbs);
-}
-
-static int usb_send(struct link_device *ld, struct io_device *iod,
- struct sk_buff *skb)
-{
- struct sk_buff_head *txq;
-
- if (iod->format == IPC_RAW)
- txq = &ld->sk_raw_tx_q;
- else
- txq = &ld->sk_fmt_tx_q;
-
- /* save io device into cb area */
- *((struct io_device **)skb->cb) = iod;
- /* en queue skb data */
- skb_queue_tail(txq, skb);
-
- queue_delayed_work(ld->tx_wq, &ld->tx_delayed_work, 0);
-
- return skb->len;
-}
-
-static void usb_tx_complete(struct urb *urb)
-{
- int ret = 0;
- struct sk_buff *skb = urb->context;
-
- switch (urb->status) {
- case 0:
- break;
- default:
- mif_err("TX error (%d)\n", urb->status);
- }
-
- usb_mark_last_busy(urb->dev);
- ret = pm_runtime_put_autosuspend(&urb->dev->dev);
- if (ret < 0)
- mif_debug("pm_runtime_put_autosuspend failed : ret(%d)\n", ret);
- usb_free_urb(urb);
- dev_kfree_skb_any(skb);
-}
-
-static void if_usb_force_disconnect(struct work_struct *work)
-{
- struct usb_link_device *usb_ld =
- container_of(work, struct usb_link_device, disconnect_work);
- struct usb_device *udev = usb_ld->usbdev;
-
- if (!udev || !(&udev->dev))
- return;
-
- pm_runtime_get_sync(&udev->dev);
- if (udev->state != USB_STATE_NOTATTACHED) {
- usb_force_disconnect(udev);
- mif_info("force disconnect by modem not responding!!\n");
- }
- pm_runtime_put_autosuspend(&udev->dev);
-}
-
-static void
-usb_change_modem_state(struct usb_link_device *usb_ld, enum modem_state state)
-{
- struct io_device *iod;
-
- list_for_each_entry(iod, &usb_ld->list_of_io_devices, list) {
- if (iod->format == IPC_FMT) {
- iod->modem_state_changed(iod, state);
- return;
- }
- }
-}
-
-static int usb_tx_urb_with_skb(struct usb_link_device *usb_ld,
- struct sk_buff *skb, struct if_usb_devdata *pipe_data)
-{
- int ret, cnt = 0;
- struct urb *urb;
- struct usb_device *usbdev = usb_ld->usbdev;
- unsigned long flags;
-
- if (!usbdev || (usbdev->state == USB_STATE_NOTATTACHED) ||
- usb_ld->host_wake_timeout_flag)
- return -ENODEV;
-
- pm_runtime_get_noresume(&usbdev->dev);
-
- if (usbdev->dev.power.runtime_status == RPM_SUSPENDED ||
- usbdev->dev.power.runtime_status == RPM_SUSPENDING) {
- usb_ld->resume_status = AP_INITIATED_RESUME;
- SET_SLAVE_WAKEUP(usb_ld->pdata, 1);
-
- while (!wait_event_interruptible_timeout(usb_ld->l2_wait,
- usbdev->dev.power.runtime_status == RPM_ACTIVE
- || pipe_data->disconnected,
- HOST_WAKEUP_TIMEOUT_JIFFIES)) {
-
- if (cnt == MAX_RETRY) {
- mif_err("host wakeup timeout !!\n");
- SET_SLAVE_WAKEUP(usb_ld->pdata, 0);
- pm_runtime_put_autosuspend(&usbdev->dev);
- schedule_work(&usb_ld->disconnect_work);
- usb_ld->host_wake_timeout_flag = 1;
- return -1;
- }
- mif_err("host wakeup timeout ! retry..\n");
- SET_SLAVE_WAKEUP(usb_ld->pdata, 0);
- udelay(100);
- SET_SLAVE_WAKEUP(usb_ld->pdata, 1);
- cnt++;
- }
-
- if (pipe_data->disconnected) {
- SET_SLAVE_WAKEUP(usb_ld->pdata, 0);
- pm_runtime_put_autosuspend(&usbdev->dev);
- return -ENODEV;
- }
-
- mif_debug("wait_q done (runtime_status=%d)\n",
- usbdev->dev.power.runtime_status);
- }
-
- urb = usb_alloc_urb(0, GFP_KERNEL);
- if (!urb) {
- mif_err("alloc urb error\n");
- if (pm_runtime_put_autosuspend(&usbdev->dev) < 0)
- mif_debug("pm_runtime_put_autosuspend fail\n");
- return -ENOMEM;
- }
-
- urb->transfer_flags = URB_ZERO_PACKET;
- usb_fill_bulk_urb(urb, usbdev, pipe_data->tx_pipe, skb->data,
- skb->len, usb_tx_complete, (void *)skb);
-
- spin_lock_irqsave(&usb_ld->lock, flags);
- if (atomic_read(&usb_ld->suspend_count)) {
- /* transmission will be done in resume */
- usb_anchor_urb(urb, &usb_ld->deferred);
- usb_put_urb(urb);
- mif_debug("anchor urb (0x%p)\n", urb);
- spin_unlock_irqrestore(&usb_ld->lock, flags);
- return 0;
- }
- spin_unlock_irqrestore(&usb_ld->lock, flags);
-
- ret = usb_submit_urb(urb, GFP_KERNEL);
- if (ret < 0) {
- mif_err("usb_submit_urb with ret(%d)\n", ret);
- if (pm_runtime_put_autosuspend(&usbdev->dev) < 0)
- mif_debug("pm_runtime_put_autosuspend fail\n");
- }
- return ret;
-}
-
-static void usb_tx_work(struct work_struct *work)
-{
- int ret = 0;
- struct link_device *ld =
- container_of(work, struct link_device, tx_delayed_work.work);
- struct usb_link_device *usb_ld = to_usb_link_device(ld);
- struct io_device *iod;
- struct sk_buff *skb;
- struct if_usb_devdata *pipe_data;
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
-
- /*TODO: check the PHONE ACTIVE STATES */
- /* because tx data wait until hub on with wait_for_complettion, it
- should queue to single_threaded work queue */
- if (!link_pm_set_active(usb_ld))
- return;
-
- while (ld->sk_fmt_tx_q.qlen || ld->sk_raw_tx_q.qlen) {
- /* send skb from fmt_txq and raw_txq,
- * one by one for fair flow control */
- skb = skb_dequeue(&ld->sk_fmt_tx_q);
- if (skb) {
- iod = *((struct io_device **)skb->cb);
- switch (iod->format) {
- case IPC_FMT:
- /*
- print_hex_dump(KERN_INFO, "[FMT-TX] ",
- DUMP_PREFIX_OFFSET, 16, 1,
- skb->data,
- min(skb->len, (u32)64), true);
- */
- case IPC_BOOT:
- case IPC_RAMDUMP:
- /* boot device uses same intf with fmt*/
- pipe_data = &usb_ld->devdata[IF_USB_FMT_EP];
- break;
- case IPC_RFS:
- pipe_data = &usb_ld->devdata[IF_USB_RFS_EP];
- break;
- default:
- /* wrong packet for fmt tx q , drop it */
- dev_kfree_skb_any(skb);
- continue;
- }
-
- ret = usb_tx_urb_with_skb(usb_ld, skb, pipe_data);
- if (ret < 0) {
- mif_err("usb_tx_urb_with_skb, ret(%d)\n",
- ret);
- skb_queue_head(&ld->sk_fmt_tx_q, skb);
-
- if (edc_inc(&usb_ld->urb_edc, EDC_MAX_ERRORS,
- EDC_ERROR_TIMEFRAME)) {
- mif_err("maximum error in URB exceeded\n");
- usb_change_modem_state(usb_ld,
- STATE_CRASH_EXIT);
- }
- return;
- }
- }
-
- skb = skb_dequeue(&ld->sk_raw_tx_q);
- if (skb) {
- pipe_data = &usb_ld->devdata[IF_USB_RAW_EP];
- ret = usb_tx_urb_with_skb(usb_ld, skb, pipe_data);
- if (ret < 0) {
- mif_err("usb_tx_urb_with_skb "
- "for raw, ret(%d)\n",
- ret);
- skb_queue_head(&ld->sk_raw_tx_q, skb);
-
- if (edc_inc(&usb_ld->urb_edc, EDC_MAX_ERRORS,
- EDC_ERROR_TIMEFRAME)) {
- mif_err("maximum error in URB exceeded\n");
- usb_change_modem_state(usb_ld,
- STATE_CRASH_EXIT);
- }
- return;
- }
- }
- }
-}
-
-static int if_usb_suspend(struct usb_interface *intf, pm_message_t message)
-{
- struct usb_link_device *usb_ld = usb_get_intfdata(intf);
- int i;
-
- if (atomic_inc_return(&usb_ld->suspend_count) == IF_USB_DEVNUM_MAX) {
- mif_debug("L2\n");
-
- for (i = 0; i < IF_USB_DEVNUM_MAX; i++)
- usb_kill_anchored_urbs(&usb_ld->devdata[i].reading);
-
- /*
- if (usb_ld->link_pm_data->cpufreq_unlock)
- usb_ld->link_pm_data->cpufreq_unlock();
- */
- if (wakelock_held) {
- wakelock_held = 0;
- wake_unlock(&usb_ld->susplock);
- }
- }
-
- return 0;
-}
-
-static void runtime_pm_work(struct work_struct *work)
-{
- struct usb_link_device *usb_ld = container_of(work,
- struct usb_link_device, runtime_pm_work.work);
- int ret;
-
- ret = pm_request_autosuspend(&usb_ld->usbdev->dev);
-
- if (ret == -EAGAIN || ret == 1)
- queue_delayed_work(system_nrt_wq, &usb_ld->runtime_pm_work,
- msecs_to_jiffies(50));
-}
-
-static void post_resume_work(struct work_struct *work)
-{
- struct usb_link_device *usb_ld = container_of(work,
- struct usb_link_device, post_resume_work.work);
-
- /* lock cpu frequency when L2->L0 */
- /*
- if (usb_ld->link_pm_data->cpufreq_lock)
- usb_ld->link_pm_data->cpufreq_lock();
- */
-}
-
-static void wait_enumeration_work(struct work_struct *work)
-{
- struct usb_link_device *usb_ld = container_of(work,
- struct usb_link_device, wait_enumeration.work);
-
- /* Work around code for factory device test & verification.
- * To measure device sleep current speedly, do not call silent reset in
- * factory mode. CMC22x disconect usb forcely and go sleep
- * without normal L3 process if in factory mode. Also AP do. */
- if (factory_mode)
- return;
-
- if (usb_ld->if_usb_connected == 0) {
- mif_err("USB disconnected and not enumerated for long time\n");
- usb_change_modem_state(usb_ld, STATE_CRASH_EXIT);
- }
-}
-
-static int if_usb_resume(struct usb_interface *intf)
-{
- int i, ret;
- struct sk_buff *skb;
- struct usb_link_device *usb_ld = usb_get_intfdata(intf);
- struct if_usb_devdata *pipe;
- struct urb *urb;
-
- spin_lock_irq(&usb_ld->lock);
- if (!atomic_dec_return(&usb_ld->suspend_count)) {
- spin_unlock_irq(&usb_ld->lock);
-
- mif_debug("\n");
- wake_lock(&usb_ld->susplock);
- wakelock_held = 1;
-
- /* HACK: Runtime pm does not allow requesting autosuspend from
- * resume callback, delayed it after resume */
- queue_delayed_work(system_nrt_wq, &usb_ld->runtime_pm_work,
- msecs_to_jiffies(50));
-
- for (i = 0; i < IF_USB_DEVNUM_MAX; i++) {
- pipe = &usb_ld->devdata[i];
- while ((urb = usb_get_from_anchor(&pipe->urbs))) {
- ret = usb_rx_submit(pipe, urb, GFP_KERNEL);
- if (ret < 0) {
- usb_put_urb(urb);
- mif_err(
- "usb_rx_submit error with (%d)\n",
- ret);
- return ret;
- }
- usb_put_urb(urb);
- }
- }
-
- while ((urb = usb_get_from_anchor(&usb_ld->deferred))) {
- mif_debug("got urb (0x%p) from anchor & resubmit\n",
- urb);
- ret = usb_submit_urb(urb, GFP_KERNEL);
- if (ret < 0) {
- mif_err("resubmit failed\n");
- skb = urb->context;
- dev_kfree_skb_any(skb);
- usb_free_urb(urb);
- if (pm_runtime_put_autosuspend(
- &usb_ld->usbdev->dev) < 0)
- mif_debug(
- "pm_runtime_put_autosuspend fail\n");
- }
- }
- SET_SLAVE_WAKEUP(usb_ld->pdata, 1);
- udelay(100);
- SET_SLAVE_WAKEUP(usb_ld->pdata, 0);
-
- if (!link_pm_is_connected(usb_ld))
- enable_autosuspend = 1;
-
- /* if_usb_resume() is atomic. post_resume_work is
- * a kind of bottom halves
- */
- /*
- queue_delayed_work(system_nrt_wq, &usb_ld->post_resume_work, 0);
- */
-
- return 0;
- }
-
- spin_unlock_irq(&usb_ld->lock);
- return 0;
-}
-
-static int if_usb_reset_resume(struct usb_interface *intf)
-{
- int ret;
-
- mif_debug("\n");
- ret = if_usb_resume(intf);
- return ret;
-}
-
-static struct usb_device_id if_usb_ids[] = {
- { USB_DEVICE(0x04e8, 0x6999), /* CMC221 LTE Modem */
- /*.driver_info = 0,*/
- },
- { } /* terminating entry */
-};
-MODULE_DEVICE_TABLE(usb, if_usb_ids);
-
-static struct usb_driver if_usb_driver;
-static void if_usb_disconnect(struct usb_interface *intf)
-{
- struct usb_link_device *usb_ld = usb_get_intfdata(intf);
- struct usb_device *usbdev = usb_ld->usbdev;
- int dev_id = intf->altsetting->desc.bInterfaceNumber;
- struct if_usb_devdata *pipe_data = &usb_ld->devdata[dev_id];
-
- usb_set_intfdata(intf, NULL);
-
- pipe_data->disconnected = 1;
- smp_wmb();
-
- wake_up(&usb_ld->l2_wait);
- if (wakelock_held) {
- wakelock_held = 0;
- wake_unlock(&usb_ld->susplock);
- }
- /*
- if (usb_ld->if_usb_connected) {
- disable_irq_wake(usb_ld->pdata->irq_host_wakeup);
- free_irq(usb_ld->pdata->irq_host_wakeup, usb_ld);
- }
- */
-
- usb_ld->if_usb_connected = 0;
- usb_ld->flow_suspend = 1;
-
- dev_dbg(&usbdev->dev, "%s\n", __func__);
- usb_ld->dev_count--;
- usb_driver_release_interface(&if_usb_driver, pipe_data->data_intf);
-
- usb_kill_anchored_urbs(&pipe_data->reading);
- usb_free_urbs(usb_ld, pipe_data);
-
- if (usb_ld->dev_count == 0) {
- cancel_delayed_work_sync(&usb_ld->runtime_pm_work);
- /*
- cancel_delayed_work_sync(&usb_ld->post_resume_work);
- */
- cancel_delayed_work_sync(&usb_ld->ld.tx_delayed_work);
- cancel_work_sync(&usb_ld->disconnect_work);
- usb_put_dev(usbdev);
- usb_ld->usbdev = NULL;
-
- wake_lock(&usb_ld->link_pm_data->boot_wake);
-
- schedule_delayed_work(&usb_ld->wait_enumeration,
- WAIT_ENUMURATION_TIMEOUT_JIFFIES);
- }
-}
-
-static int __devinit if_usb_probe(struct usb_interface *intf,
- const struct usb_device_id *id)
-{
- struct usb_host_interface *data_desc;
- struct usb_link_device *usb_ld =
- (struct usb_link_device *)id->driver_info;
- struct link_device *ld = &usb_ld->ld;
- struct usb_interface *data_intf;
- struct usb_device *usbdev = interface_to_usbdev(intf);
- struct device *dev;
- struct if_usb_devdata *pipe;
- struct urb *urb;
- int i;
- int j;
- int dev_id;
- int err;
-
- /* To detect usb device order probed */
- dev_id = intf->cur_altsetting->desc.bInterfaceNumber;
-
- if (dev_id >= IF_USB_DEVNUM_MAX) {
- dev_err(&intf->dev, "Device id %d cannot support\n",
- dev_id);
- return -EINVAL;
- }
-
- if (!usb_ld) {
- dev_err(&intf->dev,
- "if_usb device doesn't be allocated\n");
- err = ENOMEM;
- goto out;
- }
-
- mif_info("probe dev_id=%d usb_device_id(0x%p), usb_ld (0x%p)\n",
- dev_id, id, usb_ld);
-
- usb_ld->usbdev = usbdev;
-
- usb_get_dev(usbdev);
-
- for (i = 0; i < IF_USB_DEVNUM_MAX; i++) {
- data_intf = usb_ifnum_to_if(usbdev, i);
-
- /* remap endpoint of RAW to no.1 for LTE modem */
- if (i == 0)
- pipe = &usb_ld->devdata[1];
- else if (i == 1)
- pipe = &usb_ld->devdata[0];
- else
- pipe = &usb_ld->devdata[i];
-
- pipe->disconnected = 0;
- pipe->data_intf = data_intf;
- data_desc = data_intf->cur_altsetting;
-
- /* Endpoints */
- if (usb_pipein(data_desc->endpoint[0].desc.bEndpointAddress)) {
- pipe->rx_pipe = usb_rcvbulkpipe(usbdev,
- data_desc->endpoint[0].desc.bEndpointAddress);
- pipe->tx_pipe = usb_sndbulkpipe(usbdev,
- data_desc->endpoint[1].desc.bEndpointAddress);
- pipe->rx_buf_size = 1024*4;
- } else {
- pipe->rx_pipe = usb_rcvbulkpipe(usbdev,
- data_desc->endpoint[1].desc.bEndpointAddress);
- pipe->tx_pipe = usb_sndbulkpipe(usbdev,
- data_desc->endpoint[0].desc.bEndpointAddress);
- pipe->rx_buf_size = 1024*4;
- }
-
- if (i == 0) {
- dev_info(&usbdev->dev, "USB IF USB device found\n");
- } else {
- err = usb_driver_claim_interface(&if_usb_driver,
- data_intf, usb_ld);
- if (err < 0) {
- mif_err("failed to cliam usb interface\n");
- goto out;
- }
- }
-
- usb_set_intfdata(data_intf, usb_ld);
- usb_ld->dev_count++;
- pm_suspend_ignore_children(&data_intf->dev, true);
-
- for (j = 0; j < URB_COUNT; j++) {
- urb = usb_alloc_urb(0, GFP_KERNEL);
- if (!urb) {
- mif_err("alloc urb fail\n");
- err = -ENOMEM;
- goto out2;
- }
-
- urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
- urb->transfer_buffer = usb_alloc_coherent(usbdev,
- pipe->rx_buf_size, GFP_KERNEL,
- &urb->transfer_dma);
- if (!urb->transfer_buffer) {
- mif_err(
- "Failed to allocate transfer buffer\n");
- usb_free_urb(urb);
- err = -ENOMEM;
- goto out2;
- }
-
- usb_fill_bulk_urb(urb, usbdev, pipe->rx_pipe,
- urb->transfer_buffer, pipe->rx_buf_size,
- usb_rx_complete, pipe);
- usb_anchor_urb(urb, &pipe->urbs);
- }
- }
-
- /* temporary call reset_resume */
- atomic_set(&usb_ld->suspend_count, 1);
- if_usb_reset_resume(data_intf);
- atomic_set(&usb_ld->suspend_count, 0);
-
- SET_HOST_ACTIVE(usb_ld->pdata, 1);
- usb_ld->host_wake_timeout_flag = 0;
-
- if (gpio_get_value(usb_ld->pdata->gpio_phone_active)) {
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
- int delay = AUTOSUSPEND_DELAY_MS;
- pm_runtime_set_autosuspend_delay(&usbdev->dev, delay);
- dev = &usb_ld->usbdev->dev;
- if (dev->parent) {
- dev_dbg(&usbdev->dev, "if_usb Runtime PM Start!!\n");
- usb_enable_autosuspend(usb_ld->usbdev);
- pm_runtime_allow(dev);
-
- if (pm_data->block_autosuspend)
- pm_runtime_forbid(dev);
- }
-
- enable_irq_wake(usb_ld->pdata->irq_host_wakeup);
-
- usb_ld->flow_suspend = 0;
- /* Queue work if skbs were pending before a disconnect/probe */
- if (ld->sk_fmt_tx_q.qlen || ld->sk_raw_tx_q.qlen)
- queue_delayed_work(ld->tx_wq, &ld->tx_delayed_work, 0);
-
- wake_unlock(&usb_ld->link_pm_data->boot_wake);
-
- usb_ld->if_usb_connected = 1;
- usb_change_modem_state(usb_ld, STATE_ONLINE);
- } else {
- usb_change_modem_state(usb_ld, STATE_LOADER_DONE);
- }
-
- edc_init(&usb_ld->urb_edc);
-
- return 0;
-
-out2:
- usb_ld->dev_count--;
- for (i = 0; i < IF_USB_DEVNUM_MAX; i++)
- usb_free_urbs(usb_ld, &usb_ld->devdata[i]);
-out:
- usb_set_intfdata(intf, NULL);
- return err;
-}
-
-irqreturn_t usb_resume_irq(int irq, void *data)
-{
- int ret;
- struct usb_link_device *usb_ld = data;
- int hwup;
- static int wake_status = -1;
- struct device *dev;
-
- hwup = gpio_get_value(usb_ld->pdata->gpio_host_wakeup);
- if (hwup == wake_status) {
- mif_err("Received spurious wake irq: %d", hwup);
- return IRQ_HANDLED;
- }
- wake_status = hwup;
-
- irq_set_irq_type(irq, hwup ? IRQF_TRIGGER_LOW : IRQF_TRIGGER_HIGH);
- /*
- * exynos BSP has problem when using level interrupt.
- * If we change irq type from interrupt handler,
- * we can get level interrupt twice.
- * this is temporary solution until SYS.LSI resolve this problem.
- */
- __raw_writel(eint_irq_to_bit(irq), S5P_EINT_PEND(EINT_REG_NR(irq)));
- wake_lock_timeout(&usb_ld->gpiolock, 100);
-
- mif_err("< H-WUP %d\n", hwup);
-
- if (!link_pm_is_connected(usb_ld) &&
- !(!hwup && enable_autosuspend)) {
- return IRQ_HANDLED;
- } else {
- enable_autosuspend = 0;
- }
-
- if (hwup) {
- dev = &usb_ld->usbdev->dev;
- mif_info("runtime status=%d\n",
- dev->power.runtime_status);
-
- /* if usb3503 was on, usb_if was resumed by probe */
- /*
- if (has_hub(usb_ld) &&
- (dev->power.runtime_status == RPM_ACTIVE ||
- dev->power.runtime_status == RPM_RESUMING))
- return IRQ_HANDLED;
- */
-
- device_lock(dev);
- if (dev->power.is_prepared || dev->power.is_suspended) {
- pm_runtime_get_noresume(dev);
- ret = 0;
- } else {
- ret = pm_runtime_get_sync(dev);
- }
- device_unlock(dev);
- if (ret < 0) {
- mif_err("pm_runtime_get fail (%d)\n", ret);
- return IRQ_HANDLED;
- }
- } else {
- if (usb_ld->resume_status == AP_INITIATED_RESUME)
- wake_up(&usb_ld->l2_wait);
- usb_ld->resume_status = CP_INITIATED_RESUME;
- pm_runtime_mark_last_busy(&usb_ld->usbdev->dev);
- pm_runtime_put_autosuspend(&usb_ld->usbdev->dev);
- }
-
- return IRQ_HANDLED;
-}
-
-static int if_usb_init(struct usb_link_device *usb_ld)
-{
- int ret;
- int i;
- struct if_usb_devdata *pipe;
-
- /* give it to probe, or global variable needed */
- if_usb_ids[0].driver_info = (unsigned long)usb_ld;
-
- for (i = 0; i < IF_USB_DEVNUM_MAX; i++) {
- pipe = &usb_ld->devdata[i];
- pipe->format = i;
- pipe->disconnected = 1;
- init_usb_anchor(&pipe->urbs);
- init_usb_anchor(&pipe->reading);
- }
-
- init_waitqueue_head(&usb_ld->l2_wait);
- init_usb_anchor(&usb_ld->deferred);
-
- ret = usb_register(&if_usb_driver);
- if (ret) {
- mif_err("usb_register_driver() fail : %d\n", ret);
- return ret;
- }
-
- return 0;
-}
-
-struct link_device *usb_create_link_device(void *data)
-{
- int ret;
- struct modem_data *pdata;
- struct platform_device *pdev = (struct platform_device *)data;
- struct usb_link_device *usb_ld = NULL;
- struct link_device *ld = NULL;
-
- pdata = pdev->dev.platform_data;
-
- usb_ld = kzalloc(sizeof(struct usb_link_device), GFP_KERNEL);
- if (!usb_ld)
- goto err;
-
- INIT_LIST_HEAD(&usb_ld->list_of_io_devices);
- skb_queue_head_init(&usb_ld->ld.sk_fmt_tx_q);
- skb_queue_head_init(&usb_ld->ld.sk_raw_tx_q);
- spin_lock_init(&usb_ld->lock);
-
- ld = &usb_ld->ld;
- usb_ld->pdata = pdata;
-
- ld->name = "usb";
- ld->attach = usb_attach_io_dev;
- ld->init_comm = usb_init_communication;
- ld->terminate_comm = usb_terminate_communication;
- ld->send = usb_send;
- ld->com_state = COM_NONE;
-
- /*ld->tx_wq = create_singlethread_workqueue("usb_tx_wq");*/
- ld->tx_wq = alloc_workqueue("usb_tx_wq",
- WQ_HIGHPRI | WQ_UNBOUND | WQ_RESCUER, 1);
-
- if (!ld->tx_wq) {
- mif_err("fail to create work Q.\n");
- goto err;
- }
-
- usb_ld->pdata->irq_host_wakeup = gpio_to_irq(platform_get_irq(pdev, 1));
- wake_lock_init(&usb_ld->gpiolock, WAKE_LOCK_SUSPEND,
- "modem_usb_gpio_wake");
- wake_lock_init(&usb_ld->susplock, WAKE_LOCK_SUSPEND,
- "modem_usb_suspend_block");
-
- INIT_DELAYED_WORK(&ld->tx_delayed_work, usb_tx_work);
- INIT_DELAYED_WORK(&usb_ld->runtime_pm_work, runtime_pm_work);
- /*
- INIT_DELAYED_WORK(&usb_ld->post_resume_work, post_resume_work);
- */
- INIT_DELAYED_WORK(&usb_ld->wait_enumeration, wait_enumeration_work);
- INIT_WORK(&usb_ld->disconnect_work, if_usb_force_disconnect);
-
- /* create link pm device */
- ret = link_pm_init(usb_ld, data);
- if (ret)
- goto err;
-
- ret = if_usb_init(usb_ld);
- if (ret)
- goto err;
-
- return ld;
-err:
- if (ld && ld->tx_wq)
- destroy_workqueue(ld->tx_wq);
-
- kfree(usb_ld);
-
- return NULL;
-}
-
-static struct usb_driver if_usb_driver = {
- .name = "if_usb_driver",
- .probe = if_usb_probe,
- .disconnect = if_usb_disconnect,
- .id_table = if_usb_ids,
- .suspend = if_usb_suspend,
- .resume = if_usb_resume,
- .reset_resume = if_usb_reset_resume,
- .supports_autosuspend = 1,
-};
-
-static void __exit if_usb_exit(void)
-{
- usb_deregister(&if_usb_driver);
-}
-
-
-/* lte specific functions */
-
-static int lte_wake_resume(struct device *pdev)
-{
- struct modem_data *pdata = pdev->platform_data;
- int val;
-
- val = gpio_get_value(pdata->gpio_host_wakeup);
- if (!val) {
- mif_debug("> S-WUP 1\n");
- gpio_set_value(pdata->gpio_slave_wakeup, 1);
- }
-
- return 0;
-}
-
-static const struct dev_pm_ops lte_wake_pm_ops = {
- .resume = lte_wake_resume,
-};
-
-static struct platform_driver lte_wake_driver = {
- .driver = {
- .name = "modem_lte_wake",
- .pm = &lte_wake_pm_ops,
- },
-};
-
-static int __init lte_wake_init(void)
-{
- return platform_driver_register(&lte_wake_driver);
-}
-module_init(lte_wake_init);
diff --git a/drivers/misc/modem_if_na/modem_link_device_usb.h b/drivers/misc/modem_if_na/modem_link_device_usb.h
deleted file mode 100644
index 0db83b1..0000000
--- a/drivers/misc/modem_if_na/modem_link_device_usb.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#ifndef __MODEM_LINK_DEVICE_USB_H__
-#define __MODEM_LINK_DEVICE_USB_H__
-
-#include <linux/usb.h>
-#include <linux/wakelock.h>
-
-#define IF_USB_DEVNUM_MAX 3
-
-#define IF_USB_FMT_EP 0
-#define IF_USB_RAW_EP 1
-#define IF_USB_RFS_EP 2
-
-#define AUTOSUSPEND_DELAY_MS 500
-#define HOST_WAKEUP_TIMEOUT_JIFFIES msecs_to_jiffies(500)
-#define WAIT_ENUMURATION_TIMEOUT_JIFFIES msecs_to_jiffies(30000)
-#define MAX_RETRY 3
-
-enum RESUME_STATUS {
- CP_INITIATED_RESUME,
- AP_INITIATED_RESUME,
-};
-
-enum {
- EDC_MAX_ERRORS = 5,
- EDC_ERROR_TIMEFRAME = HZ,
-};
-
-struct edc {
- unsigned long timestart;
- u16 errorcount;
-};
-
-static inline void edc_init(struct edc *edc)
-{
- edc->timestart = jiffies;
-}
-
-static inline int edc_inc(struct edc *edc, u16 max_err, u16 timeframe)
-{
- unsigned long now;
-
- now = jiffies;
- if (now - edc->timestart > timeframe) {
- edc->errorcount = 1;
- edc->timestart = now;
- } else if (++edc->errorcount > max_err) {
- edc->errorcount = 0;
- edc->timestart = now;
- return 1;
- }
- return 0;
-}
-
-struct if_usb_devdata {
- struct usb_interface *data_intf;
- unsigned int tx_pipe;
- unsigned int rx_pipe;
- u8 disconnected;
-
- int format;
- struct usb_anchor urbs;
- struct usb_anchor reading;
- unsigned int rx_buf_size;
-};
-
-struct usb_link_device {
- /*COMMON LINK DEVICE*/
- struct link_device ld;
-
- struct modem_data *pdata;
-
- /*USB SPECIFIC LINK DEVICE*/
- struct usb_device *usbdev;
- struct if_usb_devdata devdata[IF_USB_DEVNUM_MAX];
- struct delayed_work runtime_pm_work;
- struct delayed_work post_resume_work;
- struct delayed_work wait_enumeration;
- struct work_struct disconnect_work;
-
- struct wake_lock gpiolock;
- struct wake_lock susplock;
-
- unsigned int dev_count;
- unsigned int suspended;
- atomic_t suspend_count;
- enum RESUME_STATUS resume_status;
- int if_usb_connected;
- int flow_suspend;
- int host_wake_timeout_flag;
-
- unsigned gpio_slave_wakeup;
- unsigned gpio_host_wakeup;
- unsigned gpio_host_active;
- int irq_host_wakeup;
- struct delayed_work dwork;
- struct work_struct resume_work;
- int cpcrash_flag;
- wait_queue_head_t l2_wait;
-
- spinlock_t lock;
- struct usb_anchor deferred;
-
- /* LINK PM DEVICE DATA */
- struct link_pm_data *link_pm_data;
-
- /*COMMON LINK DEVICE*/
- /* maybe -list of io devices for the link device to use */
- /* to find where to send incoming packets to */
- struct list_head list_of_io_devices;
-
- struct edc urb_edc;
-};
-/* converts from struct link_device* to struct xxx_link_device* */
-#define to_usb_link_device(linkdev) \
- container_of(linkdev, struct usb_link_device, ld)
-
-#define SET_SLAVE_WAKEUP(_pdata, _value) \
-do { \
- gpio_set_value(_pdata->gpio_slave_wakeup, _value); \
- mif_debug("> S-WUP %s\n", _value ? "1" : "0"); \
-} while (0)
-
-#define SET_HOST_ACTIVE(_pdata, _value) \
-do { \
- gpio_set_value(_pdata->gpio_host_active, _value); \
- mif_debug("> H-ACT %s\n", _value ? "1" : "0"); \
-} while (0)
-
-#define has_hub(usb_ld) ((usb_ld)->link_pm_data->has_usbhub)
-
-irqreturn_t usb_resume_irq(int irq, void *data);
-
-#endif
diff --git a/drivers/misc/modem_if_na/modem_link_pm_usb.c b/drivers/misc/modem_if_na/modem_link_pm_usb.c
deleted file mode 100644
index 4907de7..0000000
--- a/drivers/misc/modem_if_na/modem_link_pm_usb.c
+++ /dev/null
@@ -1,370 +0,0 @@
-/*
- * Copyright (C) 2012 Samsung Electronics.
- *
- * 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.
- *
- */
-
-/*
- * TODO (last updated Apr 13, 2012):
- * - move usb hub feature to board file
- * currently, some code was commented out by CONFIG_USBHUB_USB3503
- * - Both usb_ld and link_pm_data have same gpio member.
- * we have to remove it from one of them and
- * make helper function for gpio handling.
- */
-
-#define DEBUG
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/device.h>
-#include <linux/sched.h>
-#include <linux/irq.h>
-#include <linux/poll.h>
-#include <linux/gpio.h>
-#include <linux/if_arp.h>
-#include <linux/platform_device.h>
-#include <linux/suspend.h>
-
-#include "modem_link_pm_usb.h"
-
-bool link_pm_is_connected(struct usb_link_device *usb_ld)
-{
-#ifdef CONFIG_USBHUB_USB3503
- if (has_hub(usb_ld)) {
- if (usb_ld->link_pm_data->hub_status == HUB_STATE_RESUMMING
- || usb_ld->link_pm_data->hub_init_lock)
- return false;
-
- if (usb_ld->link_pm_data->hub_status == HUB_STATE_OFF) {
- schedule_delayed_work(
- &usb_ld->link_pm_data->link_pm_hub, 0);
- return false;
- }
- }
-#endif
- if (!usb_ld->if_usb_connected) {
- mif_err("if not connected\n");
- return false;
- }
-
- return true;
-}
-
-#ifdef CONFIG_USBHUB_USB3503
-static void link_pm_hub_work(struct work_struct *work)
-{
- int err;
- struct link_pm_data *pm_data =
- container_of(work, struct link_pm_data, link_pm_hub.work);
-
- if (pm_data->hub_status == HUB_STATE_ACTIVE)
- return;
-
- if (!pm_data->port_enable) {
- mif_err("mif: hub power func not assinged\n");
- return;
- }
- wake_lock(&pm_data->hub_lock);
-
- /* If kernel if suspend, wait the ehci resume */
- if (pm_data->dpm_suspending) {
- mif_info("dpm_suspending\n");
- schedule_delayed_work(&pm_data->link_pm_hub,
- msecs_to_jiffies(500));
- goto exit;
- }
-
- switch (pm_data->hub_status) {
- case HUB_STATE_OFF:
- pm_data->hub_status = HUB_STATE_RESUMMING;
- mif_trace("hub off->on\n");
-
- /* skip 1st time before first probe */
- if (pm_data->root_hub)
- pm_runtime_get_sync(pm_data->root_hub);
- err = pm_data->port_enable(2, 1);
- if (err < 0) {
- mif_err("hub on fail err=%d\n", err);
- err = pm_data->port_enable(2, 0);
- if (err < 0)
- mif_err("hub off fail err=%d\n", err);
- pm_data->hub_status = HUB_STATE_OFF;
- if (pm_data->root_hub)
- pm_runtime_put_sync(pm_data->root_hub);
- goto exit;
- }
- /* resume root hub */
- schedule_delayed_work(&pm_data->link_pm_hub,
- msecs_to_jiffies(100));
- break;
- case HUB_STATE_RESUMMING:
- if (pm_data->hub_on_retry_cnt++ > 50) {
- pm_data->hub_on_retry_cnt = 0;
- pm_data->hub_status = HUB_STATE_OFF;
- if (pm_data->root_hub)
- pm_runtime_put_sync(pm_data->root_hub);
- }
- mif_trace("hub resumming\n");
- schedule_delayed_work(&pm_data->link_pm_hub,
- msecs_to_jiffies(200));
- break;
- case HUB_STATE_PREACTIVE:
- mif_trace("hub active\n");
- pm_data->hub_on_retry_cnt = 0;
- wake_unlock(&pm_data->hub_lock);
- pm_data->hub_status = HUB_STATE_ACTIVE;
- complete(&pm_data->hub_active);
- if (pm_data->root_hub)
- pm_runtime_put_sync(pm_data->root_hub);
- break;
- }
-exit:
- return;
-}
-#endif
-
-static int link_pm_hub_standby(struct link_pm_data *pm_data)
-{
- int err = 0;
-
-#ifdef CONFIG_USBHUB_USB3503
- mif_info("wait hub standby\n");
-
- if (!pm_data->port_enable) {
- mif_err("hub power func not assinged\n");
- return -ENODEV;
- }
-
- err = pm_data->port_enable(2, 0);
- if (err < 0)
- mif_err("hub off fail err=%d\n", err);
-
- pm_data->hub_status = HUB_STATE_OFF;
-#endif
- return err;
-}
-
-bool link_pm_set_active(struct usb_link_device *usb_ld)
-{
- int ret;
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
-
- if (has_hub(usb_ld)) {
- if (pm_data->hub_status != HUB_STATE_ACTIVE) {
- INIT_COMPLETION(pm_data->hub_active);
- SET_SLAVE_WAKEUP(usb_ld->pdata, 1);
- ret = wait_for_completion_timeout(&pm_data->hub_active,
- msecs_to_jiffies(2000));
- if (!ret) { /*timeout*/
- mif_err("hub on timeout - retry\n");
- SET_SLAVE_WAKEUP(usb_ld->pdata, 0);
- queue_delayed_work(usb_ld->ld.tx_wq,
- &usb_ld->ld.tx_delayed_work, 0);
- return false;
- }
- }
- } else {
- /* TODO do something */
- }
- return true;
-}
-
-static long link_pm_ioctl(struct file *file, unsigned int cmd,
- unsigned long arg)
-{
- int value, err = 0;
- struct task_struct *task = get_current();
- struct link_pm_data *pm_data = file->private_data;
- struct usb_link_device *usb_ld = pm_data->usb_ld;
- char taskname[TASK_COMM_LEN];
-
- mif_info("cmd: 0x%08x\n", cmd);
-
- switch (cmd) {
- case IOCTL_LINK_CONTROL_ACTIVE:
- if (copy_from_user(&value, (const void __user *)arg,
- sizeof(int)))
- return -EFAULT;
- gpio_set_value(pm_data->gpio_link_active, value);
- break;
- case IOCTL_LINK_GET_HOSTWAKE:
- return !gpio_get_value(pm_data->gpio_link_hostwake);
- case IOCTL_LINK_CONNECTED:
- return pm_data->usb_ld->if_usb_connected;
- case IOCTL_LINK_PORT_ON: /* hub only */
- /* ignore cp host wakeup irq, set the hub_init_lock when AP try
- CP off and release hub_init_lock when CP boot done */
- pm_data->hub_init_lock = 0;
- if (pm_data->root_hub) {
- pm_runtime_resume(pm_data->root_hub);
- pm_runtime_forbid(pm_data->root_hub->parent);
- }
- if (pm_data->port_enable) {
- err = pm_data->port_enable(2, 1);
- if (err < 0) {
- mif_err("hub on fail err=%d\n", err);
- goto exit;
- }
- pm_data->hub_status = HUB_STATE_RESUMMING;
- }
- break;
- case IOCTL_LINK_PORT_OFF: /* hub only */
- err = link_pm_hub_standby(pm_data);
- if (err < 0) {
- mif_err("usb3503 active fail\n");
- goto exit;
- }
- pm_data->hub_init_lock = 1;
- pm_data->hub_handshake_done = 0;
-
- break;
- case IOCTL_LINK_BLOCK_AUTOSUSPEND: /* block autosuspend forever */
- mif_info("blocked autosuspend by `%s(%d)'\n",
- get_task_comm(taskname, task), task->pid);
- pm_data->block_autosuspend = true;
- if (usb_ld->usbdev)
- pm_runtime_forbid(&usb_ld->usbdev->dev);
- break;
- case IOCTL_LINK_ENABLE_AUTOSUSPEND: /* Enable autosuspend */
- mif_info("autosuspend enabled by `%s(%d)'\n",
- get_task_comm(taskname, task), task->pid);
- pm_data->block_autosuspend = false;
- if (usb_ld->usbdev)
- pm_runtime_allow(&usb_ld->usbdev->dev);
- else {
- mif_err("Enable autosuspend failed\n");
- err = -ENODEV;
- }
- break;
- default:
- break;
- }
-exit:
- return err;
-}
-
-static int link_pm_open(struct inode *inode, struct file *file)
-{
- struct link_pm_data *pm_data =
- (struct link_pm_data *)file->private_data;
- file->private_data = (void *)pm_data;
- return 0;
-}
-
-static int link_pm_release(struct inode *inode, struct file *file)
-{
- file->private_data = NULL;
- return 0;
-}
-
-static const struct file_operations link_pm_fops = {
- .owner = THIS_MODULE,
- .open = link_pm_open,
- .release = link_pm_release,
- .unlocked_ioctl = link_pm_ioctl,
-};
-
-static int link_pm_notifier_event(struct notifier_block *this,
- unsigned long event, void *ptr)
-{
- struct link_pm_data *pm_data =
- container_of(this, struct link_pm_data, pm_notifier);
-
- switch (event) {
- case PM_SUSPEND_PREPARE:
- pm_data->dpm_suspending = true;
- link_pm_hub_standby(pm_data);
- return NOTIFY_OK;
- case PM_POST_SUSPEND:
- pm_data->dpm_suspending = false;
- return NOTIFY_OK;
- }
- return NOTIFY_DONE;
-}
-
-int link_pm_init(struct usb_link_device *usb_ld, void *data)
-{
- int err;
- int irq;
- struct platform_device *pdev = (struct platform_device *)data;
- struct modem_data *pdata =
- (struct modem_data *)pdev->dev.platform_data;
- struct modemlink_pm_data *pm_pdata = pdata->link_pm_data;
- struct link_pm_data *pm_data =
- kzalloc(sizeof(struct link_pm_data), GFP_KERNEL);
- if (!pm_data) {
- mif_err("link_pm_data is NULL\n");
- return -ENOMEM;
- }
- /* get link pm data from modemcontrol's platform data */
- pm_data->gpio_link_active = pm_pdata->gpio_link_active;
- pm_data->gpio_link_hostwake = pm_pdata->gpio_link_hostwake;
- pm_data->gpio_link_slavewake = pm_pdata->gpio_link_slavewake;
- pm_data->link_reconnect = pm_pdata->link_reconnect;
- pm_data->port_enable = pm_pdata->port_enable;
- pm_data->cpufreq_lock = pm_pdata->cpufreq_lock;
- pm_data->cpufreq_unlock = pm_pdata->cpufreq_unlock;
- pm_data->autosuspend_delay_ms = pm_pdata->autosuspend_delay_ms;
- pm_data->block_autosuspend = false;
-
- pm_data->usb_ld = usb_ld;
- pm_data->link_pm_active = false;
- usb_ld->link_pm_data = pm_data;
-
- pm_data->miscdev.minor = MISC_DYNAMIC_MINOR;
- pm_data->miscdev.name = "link_pm";
- pm_data->miscdev.fops = &link_pm_fops;
-
- err = misc_register(&pm_data->miscdev);
- if (err < 0) {
- mif_err("fail to register pm device(%d)\n", err);
- goto err_misc_register;
- }
-
- pm_data->hub_init_lock = 1;
- irq = gpio_to_irq(usb_ld->pdata->gpio_host_wakeup);
- err = request_threaded_irq(irq, NULL, usb_resume_irq,
- IRQF_TRIGGER_HIGH | IRQF_ONESHOT, "modem_usb_wake", usb_ld);
- if (err) {
- mif_err("Failed to allocate an interrupt(%d)\n", irq);
- goto err_request_irq;
- }
- enable_irq_wake(irq);
-
- pm_data->has_usbhub = pm_pdata->has_usbhub;
-
-#ifdef CONFIG_USBHUB_USB3503
- if (has_hub(usb_ld)) {
- init_completion(&pm_data->hub_active);
- pm_data->hub_status = HUB_STATE_OFF;
- pm_pdata->p_hub_status = &pm_data->hub_status;
- pm_data->hub_handshake_done = 0;
- pm_data->root_hub = NULL;
- wake_lock_init(&pm_data->hub_lock, WAKE_LOCK_SUSPEND,
- "modem_hub_enum_lock");
- INIT_DELAYED_WORK(&pm_data->link_pm_hub, link_pm_hub_work);
- }
-#endif
-
- wake_lock_init(&pm_data->boot_wake, WAKE_LOCK_SUSPEND, "boot_usb");
-
- pm_data->pm_notifier.notifier_call = link_pm_notifier_event;
- register_pm_notifier(&pm_data->pm_notifier);
-
- return 0;
-
-err_request_irq:
- misc_deregister(&pm_data->miscdev);
-err_misc_register:
- kfree(pm_data);
- return err;
-}
diff --git a/drivers/misc/modem_if_na/modem_link_pm_usb.h b/drivers/misc/modem_if_na/modem_link_pm_usb.h
deleted file mode 100644
index a4d4ea3..0000000
--- a/drivers/misc/modem_if_na/modem_link_pm_usb.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2012 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#ifndef __MODEM_LINK_PM_USB_H__
-#define __MODEM_LINK_PM_USB_H__
-
-#include <linux/platform_data/modem_na.h>
-#include "modem_prj.h"
-#include "modem_link_device_usb.h"
-
-#define IOCTL_LINK_CONTROL_ENABLE _IO('o', 0x30)
-#define IOCTL_LINK_CONTROL_ACTIVE _IO('o', 0x31)
-#define IOCTL_LINK_GET_HOSTWAKE _IO('o', 0x32)
-#define IOCTL_LINK_CONNECTED _IO('o', 0x33)
-#define IOCTL_LINK_SET_BIAS_CLEAR _IO('o', 0x34)
-
-#define IOCTL_LINK_PORT_ON _IO('o', 0x35)
-#define IOCTL_LINK_PORT_OFF _IO('o', 0x36)
-#define IOCTL_LINK_BLOCK_AUTOSUSPEND _IO('o', 0x37)
-#define IOCTL_LINK_ENABLE_AUTOSUSPEND _IO('o', 0x38)
-
-enum hub_status {
- HUB_STATE_OFF, /* usb3503 0ff*/
- HUB_STATE_RESUMMING, /* usb3503 on, but enummerattion was not yet*/
- HUB_STATE_PREACTIVE,
- HUB_STATE_ACTIVE, /* hub and CMC221 enumerate */
-};
-
-struct link_pm_data {
- struct miscdevice miscdev;
- struct usb_link_device *usb_ld;
- unsigned gpio_link_active;
- unsigned gpio_link_hostwake;
- unsigned gpio_link_slavewake;
- int (*link_reconnect)(void);
- int link_reconnect_cnt;
-
- struct workqueue_struct *wq;
- struct completion active_done;
-/*USB3503*/
- struct completion hub_active;
- int hub_status;
- bool has_usbhub;
- /* ignore hub on by host wakeup irq before cp power on*/
- int hub_init_lock;
- /* C1 stay disconnect status after send 'a', skip 'a' next enumeration*/
- int hub_handshake_done;
- struct wake_lock hub_lock;
- struct delayed_work link_pm_hub;
- int hub_on_retry_cnt;
- struct device *root_hub;
-
- struct delayed_work link_pm_work;
- struct delayed_work link_pm_start;
- struct delayed_work link_reconnect_work;
- bool resume_requested;
- bool link_pm_active;
-
- struct wake_lock l2_wake;
- struct wake_lock boot_wake;
- struct notifier_block pm_notifier;
- bool dpm_suspending;
-
- int (*port_enable)(int, int);
-
- int (*cpufreq_lock)(void);
- int (*cpufreq_unlock)(void);
-
- int autosuspend_delay_ms; /* if zero, the default value is used */
- bool block_autosuspend;
-};
-
-bool link_pm_set_active(struct usb_link_device *usb_ld);
-bool link_pm_is_connected(struct usb_link_device *usb_ld);
-int link_pm_init(struct usb_link_device *usb_ld, void *data);
-
-#endif
diff --git a/drivers/misc/modem_if_na/modem_modemctl_device_cbp71.c b/drivers/misc/modem_if_na/modem_modemctl_device_cbp71.c
deleted file mode 100644
index 17f493c..0000000
--- a/drivers/misc/modem_if_na/modem_modemctl_device_cbp71.c
+++ /dev/null
@@ -1,269 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_modemctl_device_cbp7.1.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-
-#include <linux/platform_data/modem_na.h>
-#include "modem_prj.h"
-#include "modem_link_device_dpram.h"
-
-#define PIF_TIMEOUT (180 * HZ)
-#define DPRAM_INIT_TIMEOUT (15 * HZ)
-
-
-static irqreturn_t phone_active_irq_handler(int irq, void *_mc)
-{
- int phone_reset = 0;
- int phone_active_value = 0;
- int phone_state = 0;
- struct modem_ctl *mc = (struct modem_ctl *)_mc;
-
- if (!mc->gpio_cp_reset || !mc->gpio_phone_active) {
- pr_err("MIF :<%s> no gpio data\n", __func__);
- return IRQ_HANDLED;
- }
- phone_reset = gpio_get_value(mc->gpio_cp_reset);
- phone_active_value = gpio_get_value(mc->gpio_phone_active);
- pr_info("MIF : <%s>phone_active : %d\n", \
- __func__, phone_active_value);
- if (phone_reset && phone_active_value) {
- phone_state = STATE_ONLINE;
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, phone_state);
- } else if (phone_reset && !phone_active_value) {
- if (mc->phone_state == STATE_ONLINE) {
- phone_state = STATE_CRASH_EXIT;
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod,
- phone_state);
- }
- } else {
- phone_state = STATE_OFFLINE;
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, phone_state);
- }
-
- if (phone_active_value)
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_LOW);
- else
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_HIGH);
-
- pr_info("MIF : <%s> phone_state=%d\n", \
- __func__, phone_state);
-
- return IRQ_HANDLED;
-}
-static int cbp71_on(struct modem_ctl *mc)
-{
-
- int ret;
-
- struct dpram_link_device *dpram_ld =
- to_dpram_link_device(mc->iod->link);
-
- pr_err("MIF : cbp71_on()\n");
-
- if (!mc->gpio_cp_off || !mc->gpio_cp_reset || !mc->gpio_cp_on) {
- pr_err("MIF : <%s>no gpio data\n", __func__);
- return -ENXIO;
- }
- gpio_set_value(mc->gpio_cp_on, 1);
- mdelay(10);
- gpio_set_value(mc->gpio_cp_reset, GPIO_LEVEL_LOW);
- gpio_set_value(mc->gpio_cp_off, GPIO_LEVEL_LOW);
- mdelay(600);
- gpio_set_value(mc->gpio_cp_reset, GPIO_LEVEL_HIGH);
- gpio_set_value(mc->gpio_cp_on, GPIO_LEVEL_HIGH);
-
-
- mc->iod->modem_state_changed(mc->iod, STATE_BOOTING);
-
- /* Wait here until the PHONE is up.
- * Waiting as the this called from IOCTL->UM thread */
- pr_debug("MIF : power control waiting for INT_MASK_CMD_PIF_INIT_DONE\n");
-
- mc->clear_intr();
-
- msleep(100);
-
- gpio_set_value(mc->gpio_pda_active, 1);
- printk(KERN_INFO "MIF : PDA_ACTIVE sets high.\n");
-
- ret = wait_for_completion_interruptible_timeout(
- &dpram_ld->dpram_init_cmd, DPRAM_INIT_TIMEOUT);
- if (!ret) {
- /* ret will be 0 on timeout, < zero if interrupted */
- pr_warn("MIF : INIT_START cmd was not arrived.\n");
- pr_warn("init_cmd_wait_condition is 0 and wait timeout happend\n");
- return -ENXIO;
- }
-
- ret = wait_for_completion_interruptible_timeout(
- &dpram_ld->modem_pif_init_done, PIF_TIMEOUT);
- if (!ret) {
- pr_warn("MIF : PIF init failed\n");
- pr_warn("pif_init_wait_condition is 0 and wait timeout happend\n");
- return -ENXIO;
- }
-
- pr_debug("MIF : complete cbp71_on\n");
-
- mc->iod->modem_state_changed(mc->iod, STATE_ONLINE);
-
- return 0;
-}
-
-static int cbp71_off(struct modem_ctl *mc)
-{
- int phone_wait_cnt = 0;
- pr_err("MIF : cbp71_off()\n");
-
- if (!mc->gpio_cp_off || !mc->gpio_cp_reset || !mc->gpio_phone_active) {
- pr_err("MIF : no gpio data\n");
- return -ENXIO;
- }
-
- /* confirm phone off */
- while (1) {
- if (gpio_get_value(mc->gpio_phone_active)) {
- if (phone_wait_cnt > 5) {
- pr_info("MIF:<%s> Try to Turn Phone Off(%d)\n",
- __func__,
- gpio_get_value(mc->gpio_phone_active));
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_cp_off, \
- 0);
- }
- if (phone_wait_cnt > 7) {
- pr_err("MIF:<%s> PHONE OFF Failed\n", __func__);
- break;
- }
- phone_wait_cnt++;
- msleep(100);
- } else {
- pr_info("MIF:<%s> PHONE OFF Success\n", __func__);
- break;
- }
- }
-
- /* set VIA off again */
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_cp_off, 0);
-
- mc->iod->modem_state_changed(mc->iod, STATE_OFFLINE);
-
- return 0;
-}
-
-static int cbp71_reset(struct modem_ctl *mc)
-{
- int ret = 0;
-
- pr_debug("MIF : cbp71_reset()\n");
-
- ret = cbp71_off(mc);
- if (ret)
- return -ENXIO;
-
- msleep(100);
-
- ret = cbp71_on(mc);
- if (ret)
- return -ENXIO;
-
- return 0;
-}
-
-static int cbp71_boot_on(struct modem_ctl *mc)
-{
- pr_debug("MIF : cbp71_boot_on()\n");
-
- if (!mc->gpio_cp_reset) {
- pr_err("MIF : no gpio data\n");
- return -ENXIO;
- }
- gpio_set_value(mc->gpio_cp_reset, 0);
- msleep(600);
- gpio_set_value(mc->gpio_cp_reset, 1);
-
- mc->iod->modem_state_changed(mc->iod, STATE_BOOTING);
-
- return 0;
-}
-
-static int cbp71_boot_off(struct modem_ctl *mc)
-{
- pr_debug("MIF : cbp71_boot_off()\n");
- return 0;
-}
-
-static void cbp71_get_ops(struct modem_ctl *mc)
-{
- mc->ops.modem_on = cbp71_on;
- mc->ops.modem_off = cbp71_off;
- mc->ops.modem_reset = cbp71_reset;
- mc->ops.modem_boot_on = cbp71_boot_on;
- mc->ops.modem_boot_off = cbp71_boot_off;
-}
-
-int cbp71_init_modemctl_device(struct modem_ctl *mc,
- struct modem_data *pdata)
-{
- int ret = 0;
- unsigned long flag = 0;
-
- mc->gpio_cp_on = pdata->gpio_cp_on;
- mc->gpio_cp_off = pdata->gpio_cp_off;
- mc->gpio_cp_reset = pdata->gpio_cp_reset;
- mc->gpio_pda_active = pdata->gpio_pda_active;
- mc->gpio_phone_active = pdata->gpio_phone_active;
- mc->gpio_cp_off = pdata->gpio_cp_off;
-
-#ifdef CONFIG_INTERNAL_MODEM_IF
- mc->clear_intr = pdata->clear_intr;
-#endif
- mc->irq_phone_active = gpio_to_irq(mc->gpio_phone_active);
- pr_err("MIF : <%s> PHONE_ACTIVE IRQ# = %d\n",
- __func__, mc->irq_phone_active);
-
- cbp71_get_ops(mc);
- flag = IRQF_TRIGGER_HIGH;
-
- ret = request_irq(mc->irq_phone_active,
- phone_active_irq_handler,
- flag, "phone_active", mc);
- if (ret) {
- pr_err("MIF : failed to irq_phone_active request_irq: %d\n"
- , ret);
- return ret;
- }
-
- ret = enable_irq_wake(mc->irq_phone_active);
- if (ret) {
- pr_err("MIF :<%s> failed to enable_irq_wake:%d\n",
- __func__, ret);
- free_irq(mc->irq_phone_active, mc);
- return ret;
- }
- return ret;
-}
diff --git a/drivers/misc/modem_if_na/modem_modemctl_device_cmc220.c b/drivers/misc/modem_if_na/modem_modemctl_device_cmc220.c
deleted file mode 100644
index 48639b8..0000000
--- a/drivers/misc/modem_if_na/modem_modemctl_device_cmc220.c
+++ /dev/null
@@ -1,254 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_modemctl_device_cmc220.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/platform_device.h>
-
-#include <linux/platform_data/modem_na.h>
-#include "modem_prj.h"
-#include "modem_link_device_usb.h"
-
-static int cmc220_on(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] %s()\n", __func__);
-
- if (!mc->gpio_cp_off || !mc->gpio_cp_on || !mc->gpio_cp_reset) {
- pr_err("[MODEM_IF] no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_on, 1);
- msleep(300);
- gpio_set_value(mc->gpio_cp_reset, 1);
- msleep(100);
- gpio_set_value(mc->gpio_cp_off, 0);
- msleep(300);
- mc->phone_state = STATE_BOOTING;
- return 0;
-}
-
-static int cmc220_off(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] %s()\n", __func__);
-
- if (!mc->gpio_cp_off || !mc->gpio_cp_on || !mc->gpio_cp_reset) {
- pr_err("[MODEM_IF] no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_on, 0);
- msleep(100);
- gpio_set_value(mc->gpio_cp_off, 1);
- msleep(100);
- gpio_set_value(mc->gpio_cp_reset, 0);
-
- mc->phone_state = STATE_OFFLINE;
-
- return 0;
-}
-
-static int cmc220_force_crash_exit(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] %s: # %d\n", __func__, ++(mc->crash_cnt));
-
- mc->phone_state = STATE_CRASH_EXIT;/* DUMP START */
-
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, mc->phone_state);
-
- return 0;
-}
-
-static int cmc220_dump_reset(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] %s()\n", __func__);
-
- if (!mc->gpio_cp_reset)
- return -ENXIO;
-
- gpio_set_value(mc->gpio_host_active, 0);
- mc->cpcrash_flag = 1;
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- msleep(100);
- gpio_set_value(mc->gpio_cp_reset, 1);
- msleep(300);
-
- mc->phone_state = STATE_BOOTING;
-
- return 0;
-}
-
-static int cmc220_reset(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] %s()\n", __func__);
-
- if (!mc->gpio_cp_reset)
- return -ENXIO;
-
- if (cmc220_off(mc))
- return -ENXIO;
- msleep(100);
- if (cmc220_on(mc))
- return -ENXIO;
-
- mc->phone_state = STATE_BOOTING;
-
- return 0;
-}
-
-static int cmc220_boot_on(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] %s()\n", __func__);
- return 0;
-}
-
-static int cmc220_boot_off(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] %s()\n", __func__);
- return 0;
-}
-
-static int cmc220_get_active(struct modem_ctl *mc)
-{
- if (!mc->gpio_phone_active || !mc->gpio_cp_reset)
- return -ENXIO;
-
- pr_debug("cp %d phone %d\n",
- gpio_get_value(mc->gpio_cp_reset),
- gpio_get_value(mc->gpio_phone_active));
-
- if (gpio_get_value(mc->gpio_cp_reset))
- return gpio_get_value(mc->gpio_phone_active);
-
- return 0;
-}
-
-
-static void mc_work(struct work_struct *work_arg)
-{
-
- struct modem_ctl *mc = container_of(work_arg, struct modem_ctl,
- dwork.work);
-
- int phone_active;
-
- phone_active = cmc220_get_active(mc);
- if (phone_active < 0) {
- pr_err("[MODEM_IF] gpio not initialized\n");
- return;
- }
-
- switch (mc->phone_state) {
- case STATE_CRASH_EXIT:
- case STATE_BOOTING:
- case STATE_LOADER_DONE:
- if (phone_active) {
- if (mc->cpcrash_flag) {
- pr_info("[MODEM_IF] LTE DUMP END!!\n");
- mc->cpcrash_flag = 0;
- }
- }
- break;
- case STATE_ONLINE:
- if (!phone_active) {
- pr_info("[MODEM_IF] LTE CRASHED!! LTE DUMP START!!\n");
- mc->phone_state = STATE_CRASH_EXIT;
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod,
- mc->phone_state);
- }
- break;
- default:
- mc->phone_state = STATE_OFFLINE;
- pr_err("[MODEM_IF], phone_status changed to invalid!!\n");
- break;
- }
-}
-
-
-
-static irqreturn_t phone_active_irq_handler(int irq, void *_mc)
-{
- struct modem_ctl *mc = (struct modem_ctl *)_mc;
-
- schedule_delayed_work(&mc->dwork, 20);
-
- return IRQ_HANDLED;
-}
-
-static void cmc220_get_ops(struct modem_ctl *mc)
-{
- mc->ops.modem_on = cmc220_on;
- mc->ops.modem_off = cmc220_off;
- mc->ops.modem_reset = cmc220_reset;
- mc->ops.modem_boot_on = cmc220_boot_on;
- mc->ops.modem_boot_off = cmc220_boot_off;
- mc->ops.modem_force_crash_exit = cmc220_force_crash_exit;
- mc->ops.modem_dump_reset = cmc220_dump_reset;
-}
-
-int cmc220_init_modemctl_device(struct modem_ctl *mc,
- struct modem_data *pdata)
-{
- int ret = 0;
- struct platform_device *pdev;
-
- mc->gpio_cp_on = pdata->gpio_cp_on;
- mc->gpio_reset_req_n = pdata->gpio_reset_req_n;
- mc->gpio_cp_reset = pdata->gpio_cp_reset;
- mc->gpio_pda_active = pdata->gpio_pda_active;
- mc->gpio_phone_active = pdata->gpio_phone_active;
- mc->gpio_cp_dump_int = pdata->gpio_cp_dump_int;
- mc->gpio_flm_uart_sel = pdata->gpio_flm_uart_sel;
- mc->gpio_cp_warm_reset = pdata->gpio_cp_warm_reset;
- mc->gpio_cp_off = pdata->gpio_cp_off;
- mc->gpio_slave_wakeup = pdata->gpio_slave_wakeup;
- mc->gpio_host_active = pdata->gpio_host_active;
- mc->gpio_host_wakeup = pdata->gpio_host_wakeup;
-
- pdev = to_platform_device(mc->dev);
- mc->irq_phone_active = gpio_to_irq(mc->gpio_phone_active);
-
- cmc220_get_ops(mc);
-
- dev_set_drvdata(mc->dev, mc);
-
- INIT_DELAYED_WORK(&mc->dwork, mc_work);
-
- ret = request_irq(mc->irq_phone_active, phone_active_irq_handler,
- IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
- "lte_phone_active", mc);
- if (ret) {
- pr_err("[MODEM_IF] Failed to allocate an interrupt(%d)\n",
- mc->irq_phone_active);
- goto irq_fail;
- }
- mc->irq[0] = mc->irq_phone_active;
- enable_irq_wake(mc->irq_phone_active);
- /*disable_irq(mc->irq_phone_active);*/
-
- return ret;
-
-irq_fail:
- kfree(mc);
- return ret;
-}
diff --git a/drivers/misc/modem_if_na/modem_net_flowcontrol_device.c b/drivers/misc/modem_if_na/modem_net_flowcontrol_device.c
deleted file mode 100644
index 6660079..0000000
--- a/drivers/misc/modem_if_na/modem_net_flowcontrol_device.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_net_flowcontrol_device.c
- *
- * Copyright (C) 2011 Google, Inc.
- * Copyright (C) 2011 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/errno.h>
-#include <linux/types.h>
-#include <linux/fcntl.h>
-#include <linux/sched.h>
-#include <linux/netdevice.h>
-#include <linux/if_arp.h>
-#include <linux/platform_data/modem_na.h>
-
-#include "modem_prj.h"
-
-
-#define NET_FLOWCONTROL_DEV_NAME_LEN 8
-
-static int modem_net_flowcontrol_device_open(
- struct inode *inode, struct file *filp)
-{
- return 0;
-}
-
-static int modem_net_flowcontrol_device_release(
- struct inode *inode, struct file *filp)
-{
- return 0;
-}
-
-static long modem_net_flowcontrol_device_ioctl(
- struct file *filp, unsigned int cmd, unsigned long arg)
-{
- struct net *this_net;
- struct net_device *ndev;
- char dev_name[NET_FLOWCONTROL_DEV_NAME_LEN];
- u8 chan;
-
- if (copy_from_user(&chan, (void __user *)arg, sizeof(char)))
- return -EFAULT;
-
- if (chan > 15)
- return -ENODEV;
-
- snprintf(dev_name, NET_FLOWCONTROL_DEV_NAME_LEN, "rmnet%d", (int)chan);
- this_net = get_net_ns_by_pid(current->pid);
- ndev = __dev_get_by_name(this_net, dev_name);
- if (ndev == NULL) {
- pr_err("[MODEM_IF] %s: device = %s not exist\n", __func__,
- dev_name);
- return -ENODEV;
- }
-
- switch (cmd) {
- case IOCTL_MODEM_NET_SUSPEND:
- netif_stop_queue(ndev);
- pr_info("[MODEM_IF] NET SUSPEND(%s)\n", dev_name);
- break;
- case IOCTL_MODEM_NET_RESUME:
- netif_wake_queue(ndev);
- pr_info("[MODEM_IF] NET RESUME(%s)\n", dev_name);
- break;
- default:
- return -EINVAL;
- }
- return 0;
-}
-
-static const struct file_operations modem_net_flowcontrol_device_fops = {
- .owner = THIS_MODULE,
- .open = modem_net_flowcontrol_device_open,
- .release = modem_net_flowcontrol_device_release,
- .unlocked_ioctl = modem_net_flowcontrol_device_ioctl,
-};
-
-static int __init modem_net_flowcontrol_device_init(void)
-{
- int ret = 0;
- struct io_device *net_flowcontrol_dev;
-
- net_flowcontrol_dev = kzalloc(sizeof(struct io_device), GFP_KERNEL);
- if (!net_flowcontrol_dev) {
- pr_err("[MODEM_IF] net_flowcontrol_dev io device memory alloc fail\n");
- return -ENOMEM;
- }
-
- net_flowcontrol_dev->miscdev.minor = MISC_DYNAMIC_MINOR;
- net_flowcontrol_dev->miscdev.name = "modem_br";
- net_flowcontrol_dev->miscdev.fops = &modem_net_flowcontrol_device_fops;
-
- ret = misc_register(&net_flowcontrol_dev->miscdev);
- if (ret)
- pr_err("[MODEM_IF] failed to register misc br device : %s\n",
- net_flowcontrol_dev->miscdev.name);
-
- return ret;
-}
-
-module_init(modem_net_flowcontrol_device_init);
-
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Samsung Modem IF Net Flowcontrol Driver");
diff --git a/drivers/misc/modem_if_na/modem_prj.h b/drivers/misc/modem_if_na/modem_prj.h
deleted file mode 100644
index e5f27d8..0000000
--- a/drivers/misc/modem_if_na/modem_prj.h
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#ifndef __MODEM_PRJ_H__
-#define __MODEM_PRJ_H__
-
-#include <linux/wait.h>
-#include <linux/miscdevice.h>
-#include <linux/skbuff.h>
-
-
-#define MAX_LINK_DEVTYPE 3
-#define MAX_RAW_DEVS 32
-#define MAX_NUM_IO_DEV (MAX_RAW_DEVS + 4)
-
-#define IOCTL_MODEM_ON _IO('o', 0x19)
-#define IOCTL_MODEM_OFF _IO('o', 0x20)
-#define IOCTL_MODEM_RESET _IO('o', 0x21)
-#define IOCTL_MODEM_BOOT_ON _IO('o', 0x22)
-#define IOCTL_MODEM_BOOT_OFF _IO('o', 0x23)
-#define IOCTL_MODEM_START _IO('o', 0x24)
-
-#define IOCTL_MODEM_SEND _IO('o', 0x25)
-#define IOCTL_MODEM_RECV _IO('o', 0x26)
-
-#define IOCTL_MODEM_STATUS _IO('o', 0x27)
-#define IOCTL_MODEM_GOTA_START _IO('o', 0x28)
-#define IOCTL_MODEM_FW_UPDATE _IO('o', 0x29)
-
-#define IOCTL_MODEM_NET_SUSPEND _IO('o', 0x30)
-#define IOCTL_MODEM_NET_RESUME _IO('o', 0x31)
-#define IOCTL_MODEM_DUMP_START _IO('o', 0x32)
-#define IOCTL_MODEM_DUMP_UPDATE _IO('o', 0x33)
-#define IOCTL_MODEM_FORCE_CRASH_EXIT _IO('o', 0x34)
-#define IOCTL_MODEM_DUMP_RESET _IO('o', 0x35)
-
-#define IPC_HEADER_MAX_SIZE 6 /* fmt 3, raw 6, rfs 6 */
-
-#define PSD_DATA_CHID_BEGIN 0x2A
-#define PSD_DATA_CHID_END 0x38
-
-#define IP6VERSION 6
-
-#define SOURCE_MAC_ADDR {0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC}
-
-/* Does modem ctl structure will use state ? or status defined below ?*/
-/* Be careful!! below sequence shouldn't be changed*/
-enum modem_state {
- STATE_OFFLINE,
- __UNUSED__,
- STATE_CRASH_EXIT,
- STATE_BOOTING,
- STATE_ONLINE,
- STATE_NV_REBUILDING,
- STATE_LOADER_DONE,
-};
-
-enum {
- COM_NONE,
- COM_ONLINE,
- COM_HANDSHAKE,
- COM_BOOT,
- COM_CRASH,
- COM_BOOT_EBL,
-};
-
-struct header_data {
- char hdr[IPC_HEADER_MAX_SIZE];
- unsigned len;
- unsigned flag_len;
- char start; /*hdlc start header 0x7F*/
-};
-
-/* buffer type for modem image */
-struct dpram_firmware {
- char *firmware;
- int size;
- int is_delta;
-};
-
-
-struct vnet {
- struct io_device *iod;
-};
-
-struct io_device {
- struct list_head list;
- char *name;
-
- wait_queue_head_t wq;
-
- struct miscdevice miscdev;
- struct net_device *ndev;
-
- /* ID and Format for channel on the link */
- unsigned id;
- enum dev_format format;
- enum modem_io io_typ;
- enum modem_network net_typ;
-
- struct sk_buff_head sk_rx_q;
-
- /* work for each io device, when delayed work needed
- * use this for private io device rx action
- */
- struct delayed_work rx_work;
-
- /* for fragmentation data from link device */
- struct sk_buff *skb_recv;
- struct header_data h_data;
-
- /* called from linkdevice when a packet arrives for this iodevice */
- int (*recv)(struct io_device *iod, const char *data, unsigned int len);
-
- /* inform the IO device that the modem is now online or offline or
- * crashing or whatever...
- */
- void (*modem_state_changed)(struct io_device *iod, enum modem_state);
-
- struct link_device *link;
- struct modem_ctl *mc;
-
- void *private_data;
-};
-#define to_io_device(misc) container_of(misc, struct io_device, miscdev)
-
-struct io_raw_devices {
- struct io_device *raw_devices[MAX_RAW_DEVS];
- int num_of_raw_devs;
-};
-
-struct link_device {
- char *name;
-
- struct sk_buff_head sk_fmt_tx_q;
- struct sk_buff_head sk_raw_tx_q;
-
- struct workqueue_struct *tx_wq;
- struct workqueue_struct *tx_raw_wq;
- struct work_struct tx_work;
- struct delayed_work tx_delayed_work;
-
- unsigned com_state;
-
- /* called during init to associate an io device with this link */
- int (*attach)(struct link_device *ld, struct io_device *iod);
-
- /* init communication - setting link driver */
- int (*init_comm)(struct link_device *ld, struct io_device *iod);
- /* terminate communication */
- void (*terminate_comm)(struct link_device *ld, struct io_device *iod);
-
- /* called by an io_device when it has a packet to send over link
- * - the io device is passed so the link device can look at id and
- * format fields to determine how to route/format the packet
- */
- int (*send)(struct link_device *ld, struct io_device *iod,
- struct sk_buff *skb);
-
- int (*gota_start)(struct link_device *ld, struct io_device *iod);
- int (*dump_start)(struct link_device *ld, struct io_device *iod);
-
- int (*modem_update)(
- struct link_device *ld,
- struct io_device *iod,
- unsigned long arg);
- int (*dump_update)(
- struct link_device *ld,
- struct io_device *iod,
- unsigned long arg);
-};
-
-struct modemctl_ops {
- int (*modem_on) (struct modem_ctl *);
- int (*modem_off) (struct modem_ctl *);
- int (*modem_reset) (struct modem_ctl *);
- int (*modem_boot_on) (struct modem_ctl *);
- int (*modem_boot_off) (struct modem_ctl *);
- int (*modem_force_crash_exit) (struct modem_ctl *);
- int (*modem_dump_reset) (struct modem_ctl *);
-};
-
-struct modem_ctl {
- struct device *dev;
- char *name;
-
- int phone_state;
-
- unsigned gpio_cp_on;
- unsigned gpio_reset_req_n;
- unsigned gpio_cp_reset;
- unsigned gpio_pda_active;
- unsigned gpio_phone_active;
- unsigned gpio_cp_dump_int;
- unsigned gpio_flm_uart_sel;
- unsigned gpio_cp_warm_reset;
- unsigned gpio_cp_off;
-
- int irq_phone_active;
-
- struct work_struct work;
-
-#if defined(CONFIG_LTE_MODEM_CMC221) || defined(CONFIG_LTE_MODEM_CMC220)
- const struct attribute_group *group;
- unsigned gpio_slave_wakeup;
- unsigned gpio_host_wakeup;
- unsigned gpio_host_active;
- int irq_host_wakeup;
- struct delayed_work dwork;
- struct work_struct resume_work;
- int wakeup_flag; /*flag for CP boot GPIO sync flag*/
- int cpcrash_flag;
- int crash_cnt;
- struct completion *l2_done;
- int irq[3];
-#endif /*CONFIG_LTE_MODEM_CMC221*/
-
-#ifdef CONFIG_INTERNAL_MODEM_IF
- void (*clear_intr)(void);
-#endif
- struct modemctl_ops ops;
- struct io_device *iod;
-};
-
-int init_io_device(struct io_device *iod);
-
-#endif
diff --git a/drivers/misc/modem_if_na/modem_utils.c b/drivers/misc/modem_if_na/modem_utils.c
deleted file mode 100644
index 594b7b0..0000000
--- a/drivers/misc/modem_if_na/modem_utils.c
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- * Copyright (C) 2011 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/netdevice.h>
-#include <linux/platform_data/modem_na.h>
-#include <linux/platform_device.h>
-#include <linux/skbuff.h>
-#include <linux/ip.h>
-#include <linux/tcp.h>
-#include <linux/udp.h>
-#include <net/ip.h>
-
-#include "modem_prj.h"
-#include "modem_utils.h"
-
-#define CMD_SUSPEND ((unsigned short)(0x00CA))
-#define CMD_RESUME ((unsigned short)(0x00CB))
-
-static char ip_flags[16];
-static char tcp_flags[32];
-
-
-/* dump2hex
- * dump data to hex as fast as possible.
- * the length of @buf must be greater than "@len * 3"
- * it need 3 bytes per one data byte to print.
- */
-static inline int dump2hex(char *buf, const char *data, size_t len)
-{
- static const char *hex = "0123456789abcdef";
- char *dest = buf;
- int i;
-
- for (i = 0; i < len; i++) {
- *dest++ = hex[(data[i] >> 4) & 0xf];
- *dest++ = hex[data[i] & 0xf];
- *dest++ = ' ';
- }
- if (likely(len > 0))
- dest--; /* last space will be overwrited with null */
-
- *dest = '\0';
-
- return dest - buf;
-}
-
-/* print buffer as hex string */
-int pr_buffer(const char *tag, const char *data, size_t data_len,
- size_t max_len)
-{
- size_t len = min(data_len, max_len);
- unsigned char hexstr[len ? len * 3 : 1]; /* 1 <= sizeof <= max_len*3 */
- dump2hex(hexstr, data, len);
- return printk(KERN_DEBUG "[MIF] %s(%u): %s%s\n", tag, data_len, hexstr,
- len == data_len ? "" : " ...");
-}
-
-/* flow control CMD from CP, it use in serial devices */
-int link_rx_flowctl_cmd(struct link_device *ld, const char *data, size_t len)
-{
- unsigned short *cmd, *end = (unsigned short *)(data + len);
- struct io_device *iod = NULL, *multi_raw_iod;
- int i;
-
- pr_debug("[MODEM_IF] flow control cmd: size=%d\n", len);
-
- multi_raw_iod = find_iodev(ld, IPC_MULTI_RAW);
- if (!multi_raw_iod || !multi_raw_iod->private_data) {
- pr_err("[MODEM_IF] %s: no multi raw device\n", __func__);
- return -ENODEV;
- }
-
- for (cmd = (unsigned short *)data; cmd < end; cmd++) {
- switch (*cmd) {
- case CMD_SUSPEND:
- raw_devs_for_each(multi_raw_iod, i, iod) {
- if (iod->io_typ == IODEV_NET && iod->ndev)
- netif_stop_queue(iod->ndev);
- }
- ld->raw_tx_suspended = true;
- pr_info("[MODEM_IF] flowctl CMD_SUSPEND(%04X)\n", *cmd);
- break;
-
- case CMD_RESUME:
- raw_devs_for_each(multi_raw_iod, i, iod) {
- if (iod->io_typ == IODEV_NET && iod->ndev)
- netif_wake_queue(iod->ndev);
- }
- ld->raw_tx_suspended = false;
- complete_all(&ld->raw_tx_resumed_by_cp);
- pr_info("[MODEM_IF] flowctl CMD_RESUME(%04X)\n", *cmd);
- break;
-
- default:
- pr_err("[MODEM_IF] flowctl BAD CMD: %04X\n", *cmd);
- break;
- }
- }
-
- return 0;
-}
-
-void mif_print_data(char *buf, int len)
-{
- int words = len >> 4;
- int residue = len - (words << 4);
- int i;
- char *b;
- char last[80];
- char tb[8];
-
- /* Make the last line, if ((len % 16) > 0) */
- if (residue > 0) {
- memset(last, 0, sizeof(last));
- memset(tb, 0, sizeof(tb));
- b = buf + (words << 4);
-
- sprintf(last, "%04X: ", (words << 4));
- for (i = 0; i < residue; i++) {
- sprintf(tb, "%02x ", b[i]);
- strcat(last, tb);
- if ((i & 0x3) == 0x3) {
- sprintf(tb, " ");
- strcat(last, tb);
- }
- }
- }
-
- for (i = 0; i < words; i++) {
- b = buf + (i << 4);
- printk(KERN_ERR "%04X: "
- "%02x %02x %02x %02x %02x %02x %02x %02x "
- "%02x %02x %02x %02x %02x %02x %02x %02x\n",
- (i << 4),
- b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7],
- b[8], b[9], b[10], b[11], b[12], b[13], b[14], b[15]);
- }
-
- /* Print the last line */
- if (residue > 0)
- printk(KERN_ERR "%s\n", last);
-}
-
-void print_sipc4_hdlc_fmt_frame(const u8 *psrc)
-{
- u8 *frm; /* HDLC Frame */
- struct fmt_hdr *hh; /* HDLC Header */
- struct sipc_fmt_hdr *fh; /* IPC Header */
- u16 hh_len = sizeof(struct fmt_hdr);
- u16 fh_len = sizeof(struct sipc_fmt_hdr);
- u8 *data;
- int dlen;
-
- /* Actual HDLC header starts from after START flag (0x7F) */
- frm = (u8 *)(psrc + 1);
-
- /* Point HDLC header and IPC header */
- hh = (struct fmt_hdr *)(frm);
- fh = (struct sipc_fmt_hdr *)(frm + hh_len);
-
- /* Point IPC data */
- data = frm + (hh_len + fh_len);
- dlen = hh->len - (hh_len + fh_len);
-
- pr_err("--------------------HDLC & FMT HEADER----------------------\n");
-
- pr_err("HDLC len = %d, HDLC control = 0x%02x\n", hh->len, hh->control);
-
- pr_err("(M)0x%02X, (S)0x%02X, (T)0x%02X, mseq:%d, aseq:%d, len:%d\n",
- fh->main_cmd, fh->sub_cmd, fh->cmd_type,
- fh->msg_seq, fh->ack_seq, fh->len);
-
- pr_err("-----------------------IPC FMT DATA------------------------\n");
-
- if (dlen > 0) {
- if (dlen > 64)
- dlen = 64;
- mif_print_data(data, dlen);
- }
-
- pr_err("-----------------------------------------------------------\n");
-}
-
-void print_sipc4_fmt_frame(const u8 *psrc)
-{
- struct sipc_fmt_hdr *fh = (struct sipc_fmt_hdr *)psrc;
- u16 fh_len = sizeof(struct sipc_fmt_hdr);
- u8 *data;
- int dlen;
-
- /* Point IPC data */
- data = (u8 *)(psrc + fh_len);
- dlen = fh->len - fh_len;
-
- pr_err("----------------------IPC FMT HEADER-----------------------\n");
-
- pr_err("(M)0x%02X, (S)0x%02X, (T)0x%02X, mseq:%d, aseq:%d, len:%d\n",
- fh->main_cmd, fh->sub_cmd, fh->cmd_type,
- fh->msg_seq, fh->ack_seq, fh->len);
-
- pr_err("-----------------------IPC FMT DATA------------------------\n");
-
- if (dlen > 0)
- mif_print_data(data, dlen);
-
- pr_err("-----------------------------------------------------------\n");
-}
-
-static void print_tcp_header(u8 *pkt)
-{
- int i;
- struct tcphdr *tcph = (struct tcphdr *)pkt;
- u8 *opt = pkt + TCP_HDR_SIZE;
- unsigned opt_len = (tcph->doff << 2) - TCP_HDR_SIZE;
-
-/*-------------------------------------------------------------------------
-
- TCP Header Format
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Port | Destination Port |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Sequence Number |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Acknowledgment Number |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Data | |C|E|U|A|P|R|S|F| |
- | Offset| Rsvd |W|C|R|C|S|S|Y|I| Window |
- | | |R|E|G|K|H|T|N|N| |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Checksum | Urgent Pointer |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Options | Padding |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | data |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
--------------------------------------------------------------------------*/
-
- memset(tcp_flags, 0, sizeof(tcp_flags));
- if (tcph->cwr)
- strcat(tcp_flags, "CWR ");
- if (tcph->ece)
- strcat(tcp_flags, "ECE ");
- if (tcph->urg)
- strcat(tcp_flags, "URG ");
- if (tcph->ack)
- strcat(tcp_flags, "ACK ");
- if (tcph->psh)
- strcat(tcp_flags, "PSH ");
- if (tcph->rst)
- strcat(tcp_flags, "RST ");
- if (tcph->syn)
- strcat(tcp_flags, "SYN ");
- if (tcph->fin)
- strcat(tcp_flags, "FIN ");
-
- pr_err("TCP:: Src Port = %u, Dst Port = %u\n",
- ntohs(tcph->source), ntohs(tcph->dest));
- pr_err("TCP:: SEQ = 0x%08X(%u), ACK = 0x%08X(%u)\n",
- ntohs(tcph->seq), ntohs(tcph->seq),
- ntohs(tcph->ack_seq), ntohs(tcph->ack_seq));
- pr_err("TCP:: Flags = %s\n", tcp_flags);
- pr_err("TCP:: Window = %u, Checksum = 0x%04X, Urg Pointer = %u\n",
- ntohs(tcph->window), ntohs(tcph->check), ntohs(tcph->urg_ptr));
-
- if (opt_len > 0) {
- printk(KERN_ERR "TCP:: Options = ");
- for (i = 0; i < opt_len; i++)
- printk("%02X ", opt[i]);
- printk("\n");
- }
-}
-
-static void print_udp_header(u8 *pkt)
-{
- struct udphdr *udph = (struct udphdr *)pkt;
-
-/*-------------------------------------------------------------------------
-
- UDP Header Format
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Port | Destination Port |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Length | Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | data |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
--------------------------------------------------------------------------*/
-
- pr_err("UDP:: Src Port = %u, Dst Prt = %u\n",
- ntohs(udph->source), ntohs(udph->dest));
- pr_err("UDP:: Length = %u, Checksum = 0x%04X\n",
- ntohs(udph->len), ntohs(udph->check));
-
- if (ntohs(udph->dest) == 53)
- pr_err("UDP:: DNS query!!!\n");
-
- if (ntohs(udph->source) == 53)
- pr_err("UDP:: DNS response!!!\n");
-}
-
-void print_ip4_packet(u8 *ip_pkt)
-{
- struct iphdr *iph = (struct iphdr *)ip_pkt;
- u8 *pkt = ip_pkt + (iph->ihl << 2);
- u16 flags = (ntohs(iph->frag_off) & 0xE000);
- u16 frag_off = (ntohs(iph->frag_off) & 0x1FFF);
-
- pr_err("-----------------------------------------------------------\n");
-
-/*---------------------------------------------------------------------------
-
- IPv4 Header Format
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- |Version| IHL |Type of Service| Total Length |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Identification |C|D|M| Fragment Offset |
- | |E|F|F| |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Time to Live | Protocol | Header Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Destination Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Options | Padding |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- IHL - Header Length
- Flags - Consist of 3 bits
- The 1st bit is "Congestion" bit.
- The 2nd bit is "Dont Fragment" bit.
- The 3rd bit is "More Fragments" bit.
-
----------------------------------------------------------------------------*/
-
- memset(ip_flags, 0, sizeof(ip_flags));
- if (flags & IP_CE)
- strcat(ip_flags, "CE ");
- if (flags & IP_DF)
- strcat(ip_flags, "DF ");
- if (flags & IP_MF)
- strcat(ip_flags, "MF ");
-
- pr_err("IP4:: Version = %u, Header Length = %u, TOS = %u, Length = %u\n",
- iph->version, (iph->ihl << 2), iph->tos, ntohs(iph->tot_len));
- pr_err("IP4:: ID = %u, Fragment Offset = %u\n",
- ntohs(iph->id), frag_off);
- pr_err("IP4:: Flags = %s\n", ip_flags);
- pr_err("IP4:: TTL = %u, Protocol = %u, Header Checksum = 0x%04X\n",
- iph->ttl, iph->protocol, ntohs(iph->check));
- pr_err("IP4:: Src IP Addr = %u.%u.%u.%u, Dst IP Addr = %u.%u.%u.%u\n",
- ip_pkt[12], ip_pkt[13], ip_pkt[14], ip_pkt[15],
- ip_pkt[16], ip_pkt[17], ip_pkt[18], ip_pkt[19]);
-
- switch (iph->protocol) {
- case 6:
- /* TCP */
- print_tcp_header(pkt);
- break;
-
- case 17:
- /* UDP */
- print_udp_header(pkt);
- break;
-
- default:
- break;
- }
-
- pr_err("-----------------------------------------------------------\n");
-}
diff --git a/drivers/misc/modem_if_na/modem_utils.h b/drivers/misc/modem_if_na/modem_utils.h
deleted file mode 100644
index 0c37e1b..0000000
--- a/drivers/misc/modem_if_na/modem_utils.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (C) 2011 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#ifndef __MODEM_UTILS_H__
-#define __MODEM_UTILS_H__
-
-#define RAW_DEV(rdevs, i) (((struct io_raw_devices *)rdevs)->raw_devices[i])
-
-/**
- * raw_devs_for_each - iterate raw devices of multi raw device
- * @iod: struct io_device *iod
- * @index: int index
- * @multiraw: struct io_device *multiraw
- */
-#define raw_devs_for_each(multiraw, index, iod) \
- for (index = 0; iod = RAW_DEV(multiraw->private_data, index), \
- index < MAX_RAW_DEVS; index++) \
- if (iod)
-
-/**
- * io_devs_for_each - iterate io devices of list_of_io_devices
- * @iod: struct io_device *iod
- * @ld: struct link_device *ld
- */
-#define io_devs_for_each(iod, ld) \
- list_for_each_entry(iod, (ld)->list_of_io_devices, list) \
- if (iod->link_types & LINKTYPE((ld)->link_type))
-
-
-static inline struct io_device *find_iodev(struct link_device *ld,
- enum dev_format format)
-{
- struct io_device *iod;
-
- io_devs_for_each(iod, ld) {
- if (iod->format == format)
- return iod;
- }
- return NULL;
-}
-
-/** countbits - count number of 1 bits as fastest way
- * @n: number
- */
-static inline unsigned int countbits(unsigned int n)
-{
- unsigned int i;
- for (i = 0; n != 0; i++)
- n &= (n - 1);
- return i;
-}
-
-/* print buffer as hex string */
-int pr_buffer(const char *tag, const char *data, size_t data_len,
- size_t max_len);
-
-/* print a sk_buff as hex string */
-#define pr_skb(tag, skb) \
- pr_buffer(tag, (char *)((skb)->data), (size_t)((skb)->len), (size_t)16)
-
-/* print a urb as hex string */
-#define pr_urb(tag, urb) \
- pr_buffer(tag, (char *)((urb)->transfer_buffer), \
- (size_t)((urb)->actual_length), (size_t)16)
-
-/* flow control CMD from CP, it use in serial devices */
-int link_rx_flowctl_cmd(struct link_device *ld, const char *data, size_t len);
-
-void mif_print_data(char *buf, int len);
-void print_sipc4_hdlc_fmt_frame(const u8 *psrc);
-void print_sipc4_fmt_frame(const u8 *psrc);
-
-/*---------------------------------------------------------------------------
-
- IPv4 Header Format
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- |Version| IHL |Type of Service| Total Length |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Identification |C|D|M| Fragment Offset |
- | |E|F|F| |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Time to Live | Protocol | Header Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Destination Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Options | Padding |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- IHL - Header Length
- Flags - Consist of 3 bits
- The 1st bit is "Congestion" bit.
- The 2nd bit is "Dont Fragment" bit.
- The 3rd bit is "More Fragments" bit.
-
----------------------------------------------------------------------------*/
-#define IPV4_HDR_SIZE 20
-
-/*-------------------------------------------------------------------------
-
- TCP Header Format
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Port | Destination Port |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Sequence Number |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Acknowledgment Number |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Data | |C|E|U|A|P|R|S|F| |
- | Offset| Rsvd |W|C|R|C|S|S|Y|I| Window |
- | | |R|E|G|K|H|T|N|N| |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Checksum | Urgent Pointer |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Options | Padding |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | data |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
--------------------------------------------------------------------------*/
-#define TCP_HDR_SIZE 20
-
-/*-------------------------------------------------------------------------
-
- UDP Header Format
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Port | Destination Port |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Length | Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | data |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
--------------------------------------------------------------------------*/
-#define UDP_HDR_SIZE 8
-
-void print_ip4_packet(u8 *ip_pkt);
-
-#endif/*__MODEM_UTILS_H__*/
diff --git a/drivers/misc/modem_if_na/modem_variation.h b/drivers/misc/modem_if_na/modem_variation.h
deleted file mode 100644
index 1bf2d13..0000000
--- a/drivers/misc/modem_if_na/modem_variation.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#ifndef __MODEM_VARIATION_H__
-#define __MODEM_VARIATION_H__
-
-#define DECLARE_MODEM_INIT(type) \
- int type ## _init_modemctl_device(struct modem_ctl *mc, \
- struct modem_data *pdata)
-#define DECLARE_MODEM_INIT_DUMMY(type) \
- DECLARE_MODEM_INIT(type) { return 0; }
-
-#define DECLARE_LINK_INIT(type) \
- struct link_device *type ## _create_link_device( \
- struct platform_device *pdev)
-#define DECLARE_LINK_INIT_DUMMY(type) \
- DECLARE_LINK_INIT(type) { return NULL; }
-
-#define MODEM_INIT_CALL(type) type ## _init_modemctl_device
-#define LINK_INIT_CALL(type) type ## _create_link_device
-
-/* add declaration of modem & link type */
-/* modem device support */
-#ifdef CONFIG_UMTS_MODEM_XMM6260
-DECLARE_MODEM_INIT(xmm6260);
-#else
-DECLARE_MODEM_INIT_DUMMY(xmm6260)
-#endif
-
-#ifdef CONFIG_LTE_MODEM_CMC221
-DECLARE_MODEM_INIT(cmc221);
-#else
-DECLARE_MODEM_INIT_DUMMY(cmc221)
-#endif
-
-#ifdef CONFIG_CDMA_MODEM_CBP71
-DECLARE_MODEM_INIT(cbp71);
-#else
-DECLARE_MODEM_INIT_DUMMY(cbp71)
-#endif
-
-#ifdef CONFIG_LTE_MODEM_CMC220
-DECLARE_MODEM_INIT(cmc220);
-#else
-DECLARE_MODEM_INIT_DUMMY(cmc220)
-#endif
-/* link device support */
-#ifdef CONFIG_UMTS_LINK_MIPI
-DECLARE_LINK_INIT(mipi);
-#else
-DECLARE_LINK_INIT_DUMMY(mipi)
-#endif
-
-#ifdef CONFIG_LINK_DEVICE_DPRAM
-DECLARE_LINK_INIT(dpram);
-#else
-DECLARE_LINK_INIT_DUMMY(dpram)
-#endif
-
-#ifdef CONFIG_LINK_DEVICE_USB
-DECLARE_LINK_INIT(usb);
-#else
-DECLARE_LINK_INIT_DUMMY(usb)
-#endif
-
-#ifdef CONFIG_UMTS_LINK_HSIC
-DECLARE_LINK_INIT(hsic);
-#else
-DECLARE_LINK_INIT_DUMMY(hsic)
-#endif
-
-#ifdef CONFIG_UMTS_LINK_SPI
-DECLARE_LINK_INIT(spi);
-#else
-DECLARE_LINK_INIT_DUMMY(spi)
-#endif
-
-typedef int (*modem_init_call)(struct modem_ctl *, struct modem_data *);
-modem_init_call modem_init_func[] = {
- MODEM_INIT_CALL(xmm6260),
- MODEM_INIT_CALL(cbp71),
- MODEM_INIT_CALL(cmc221),
- MODEM_INIT_CALL(cmc220),
-};
-
-typedef struct link_device *(*link_init_call)(struct platform_device *);
-link_init_call link_init_func[] = {
- LINK_INIT_CALL(mipi),
- LINK_INIT_CALL(dpram),
- LINK_INIT_CALL(spi),
- LINK_INIT_CALL(usb),
- LINK_INIT_CALL(hsic),
-};
-
-static int call_modem_init_func(struct modem_ctl *mc, struct modem_data *pdata)
-{
- if (modem_init_func[pdata->modem_type])
- return modem_init_func[pdata->modem_type](mc, pdata);
- else
- return -ENOTSUPP;
-}
-
-static struct link_device *call_link_init_func(struct platform_device *pdev,
- enum modem_link link_type)
-{
- if (link_init_func[link_type])
- return link_init_func[link_type](pdev);
- else
- return NULL;
-}
-
-#endif
diff --git a/drivers/misc/modem_if_u1/Kconfig b/drivers/misc/modem_if_u1/Kconfig
deleted file mode 100644
index 6a6eeab..0000000
--- a/drivers/misc/modem_if_u1/Kconfig
+++ /dev/null
@@ -1,104 +0,0 @@
-menuconfig SEC_MODEM
- bool "Samsung Mobile Modem Interface"
- default n
- ---help---
- Samsung Modem Interface Driver.
-
-config UMTS_MODEM_XMM6260
- bool "modem chip : IMC XMM6260"
- depends on SEC_MODEM
- default n
-
-config UMTS_MODEM_XMM6262
- bool "modem chip : IMC XMM6262"
- depends on SEC_MODEM
- default n
-
-config CDMA_MODEM_CBP71
- bool "modem chip : VIA CBP7.1"
- depends on SEC_MODEM
- default n
-
-config CDMA_MODEM_CBP72
- bool "modem chip : VIA CBP7.2"
- depends on SEC_MODEM
- default n
-
-config LTE_MODEM_CMC221
- bool "modem chip : SEC CMC221"
- depends on SEC_MODEM
- default n
-
-config CDMA_MODEM_MDM6600
- bool "modem chip : QC MDM6600"
- depends on SEC_MODEM
- default n
-
-config TDSCDMA_MODEM_SPRD8803
- bool "modem chip : SPRD SC8803"
- depends on SEC_MODEM
- default n
-
-config GSM_MODEM_ESC6270
- bool "modem chip : QC ESC6270"
- depends on SEC_MODEM
- default n
-
-config LINK_DEVICE_MIPI
- bool "modem driver link device MIPI-HSI"
- depends on SEC_MODEM
- default n
-
-config LINK_DEVICE_DPRAM
- bool "modem driver link device DPRAM"
- depends on SEC_MODEM
- default n
-
-config LINK_DEVICE_PLD
- bool "modem driver link device PLD"
- depends on SEC_MODEM
- default n
-config LINK_DEVICE_USB
- bool "modem driver link device USB"
- depends on SEC_MODEM
- default n
-
-config LINK_DEVICE_HSIC
- bool "modem driver link device HSIC"
- depends on SEC_MODEM
- default n
-
-config LINK_DEVICE_C2C
- bool "modem driver link device C2C"
- depends on SEC_MODEM
- default n
-
-config LINK_DEVICE_SPI
- bool "modem driver link device SPI"
- depends on SEC_MODEM
- default n
-
-config WORKQUEUE_FRONT
- bool "IPC: SPI workqueue front"
- depends on SEC_MODEM
- default n
-
-config IPC_CMC22x_OLD_RFS
- bool "IPC: CMC22x ancient RFS"
- depends on SEC_MODEM
- default n
-
-config SIPC_VER_5
- bool "IPC: Samsung IPC 5.0"
- depends on SEC_MODEM
- default n
-
-config SIM_DETECT
- bool "SIM_DETECT pin"
- depends on SEC_MODEM
- default n
-
-config SIM_SLOT_SWITCH
- bool "SIM_SLOT_SWITCH"
- depends on SEC_MODEM
- default n
diff --git a/drivers/misc/modem_if_u1/Makefile b/drivers/misc/modem_if_u1/Makefile
deleted file mode 100644
index 5bd62ea..0000000
--- a/drivers/misc/modem_if_u1/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Makefile of modem_if
-
-EXTRA_CFLAGS += -Idrivers/misc/modem_if
-
-obj-y += sipc5_modem.o sipc5_io_device.o
-obj-y += sipc4_modem.o sipc4_io_device.o
-obj-y += modem_net_flowcontrol_device.o modem_utils.o
-
-obj-$(CONFIG_UMTS_MODEM_XMM6260) += modem_modemctl_device_xmm6260.o
-obj-$(CONFIG_UMTS_MODEM_XMM6262) += modem_modemctl_device_xmm6262.o
-obj-$(CONFIG_CDMA_MODEM_CBP71) += modem_modemctl_device_cbp71.o
-obj-$(CONFIG_CDMA_MODEM_CBP72) += modem_modemctl_device_cbp72.o
-obj-$(CONFIG_LTE_MODEM_CMC221) += modem_modemctl_device_cmc221.o lte_modem_bootloader.o
-obj-$(CONFIG_CDMA_MODEM_MDM6600) += modem_modemctl_device_mdm6600.o
-obj-$(CONFIG_GSM_MODEM_ESC6270) += modem_modemctl_device_esc6270.o
-obj-$(CONFIG_TDSCDMA_MODEM_SPRD8803) += modem_modemctl_device_sprd8803.o
-
-obj-$(CONFIG_LINK_DEVICE_MIPI) += modem_link_device_mipi.o
-obj-$(CONFIG_LINK_DEVICE_DPRAM) += modem_link_device_dpram.o modem_link_device_dpram_ext_op.o
-obj-$(CONFIG_LINK_DEVICE_PLD) += modem_link_device_pld.o modem_link_device_pld_ext_op.o
-obj-$(CONFIG_LINK_DEVICE_USB) += modem_link_device_usb.o modem_link_pm_usb.o
-obj-$(CONFIG_LINK_DEVICE_HSIC) += modem_link_device_hsic.o
-obj-$(CONFIG_LINK_DEVICE_C2C) += modem_link_device_c2c.o
-obj-$(CONFIG_LINK_DEVICE_SPI) += modem_link_device_spi.o
-
-obj-$(CONFIG_SIM_SLOT_SWITCH) += modem_sim_slot_switch.o
diff --git a/drivers/misc/modem_if_u1/lte_modem_bootloader.c b/drivers/misc/modem_if_u1/lte_modem_bootloader.c
deleted file mode 100644
index f259aae..0000000
--- a/drivers/misc/modem_if_u1/lte_modem_bootloader.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/* Lte modem bootloader support for Samsung Tuna Board.
- *
- * Copyright (C) 2011 Google, Inc.
- * Copyright (C) 2011 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/interrupt.h>
-#include <linux/platform_device.h>
-#include <linux/miscdevice.h>
-
-#include <linux/uaccess.h>
-#include <linux/fs.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/slab.h>
-#include <linux/mutex.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/wakelock.h>
-#include <linux/delay.h>
-#include <linux/spi/spi.h>
-
-#include <linux/platform_data/modem.h>
-#include <linux/platform_data/lte_modem_bootloader.h>
-
-#define LEN_XMIT_DELEY 100
-
-#ifdef AIRPLAIN_MODE_TEST
-int lte_airplain_mode;
-#endif
-
-enum xmit_bootloader_status {
- XMIT_BOOT_READY = 0,
- XMIT_LOADER_READY,
-};
-
-struct lte_modem_bootloader {
- struct spi_device *spi_dev;
- struct miscdevice dev;
-
- struct mutex lock;
-
- unsigned int gpio_lte2ap_status;
- enum xmit_bootloader_status xmit_status;
-};
-#define to_loader(misc) container_of(misc, struct lte_modem_bootloader, dev);
-
-static inline
-int spi_xmit(struct lte_modem_bootloader *loader,
- const unsigned char val)
-{
- unsigned char buf[1];
- int ret;
- struct spi_message msg;
-
- struct spi_transfer xfer = {
- .len = 1,
- .tx_buf = buf,
- };
-
- buf[0] = val;
-
- spi_message_init(&msg);
- spi_message_add_tail(&xfer, &msg);
-
- ret = spi_sync(loader->spi_dev, &msg);
-
- if (ret < 0)
- mif_err("error %d\n", ret);
-
- return ret;
-}
-
-static
-int bootloader_write(struct lte_modem_bootloader *loader,
- const char *addr, const int len)
-{
- int i;
- int ret = 0;
- unsigned char lenbuf[4];
-
- if (loader->xmit_status == XMIT_LOADER_READY) {
- memcpy(lenbuf, &len, ARRAY_SIZE(lenbuf));
- for (i = 0 ; i < ARRAY_SIZE(lenbuf) ; i++) {
- ret = spi_xmit(loader, lenbuf[i]);
- if (ret < 0)
- return ret;
- }
- msleep(LEN_XMIT_DELEY);
- }
-
- for (i = 0 ; i < len ; i++) {
- ret = spi_xmit(loader, addr[i]);
- if (ret < 0)
- return ret;
- }
-
- return 0;
-}
-
-
-static
-int bootloader_open(struct inode *inode, struct file *flip)
-{
- struct lte_modem_bootloader *loader = to_loader(flip->private_data);
- flip->private_data = loader;
-
- return 0;
-}
-
-static
-long bootloader_ioctl(struct file *flip,
- unsigned int cmd, unsigned long arg)
-{
- int ret = 0;
- int status;
- struct lte_modem_bootloader_param param;
- struct lte_modem_bootloader *loader = flip->private_data;
-
- mutex_lock(&loader->lock);
- switch (cmd) {
- case IOCTL_LTE_MODEM_XMIT_BOOT:
-
- ret = copy_from_user(&param, (const void __user *)arg,
- sizeof(param));
- if (ret) {
- mif_err("can not copy userdata\n");
- ret = -EFAULT;
- goto exit_err;
- }
-
- dev_info(&loader->spi_dev->dev,
- "IOCTL_LTE_MODEM_XMIT_BOOT - bin size: %d\n",
- param.len);
-
- ret = bootloader_write(loader, param.buf, param.len);
- if (ret < 0)
- mif_err("failed to xmit boot bin\n");
- else {
- if (loader->xmit_status == XMIT_BOOT_READY)
- loader->xmit_status = XMIT_LOADER_READY;
- else
- loader->xmit_status = XMIT_BOOT_READY;
- }
-
- break;
- case IOCTL_LTE_MODEM_LTE2AP_STATUS:
- status = gpio_get_value(loader->gpio_lte2ap_status);
- mif_debug("LTE2AP status :%d\n", status);
- ret = copy_to_user((unsigned int *)arg, &status,
- sizeof(status));
-
- break;
-#ifdef AIRPLAIN_MODE_TEST
- case IOCTL_LTE_MODEM_AIRPLAIN_ON:
- lte_airplain_mode = 1;
- mif_info("IOCTL_LTE_MODEM LPM_ON\n");
- break;
- case IOCTL_LTE_MODEM_AIRPLAIN_OFF:
- mif_info("IOCTL_LTE_MODEM LPM_OFF\n");
- lte_airplain_mode = 0;
- break;
-#endif
- default:
- mif_err("ioctl cmd error\n");
- ret = -ENOIOCTLCMD;
-
- break;
- }
- mutex_unlock(&loader->lock);
-
-exit_err:
- return ret;
-}
-
-static const struct file_operations lte_modem_bootloader_fops = {
- .owner = THIS_MODULE,
- .open = bootloader_open,
- .unlocked_ioctl = bootloader_ioctl,
-};
-
-static
-int bootloader_gpio_setup(struct lte_modem_bootloader *loader)
-{
- if (!loader->gpio_lte2ap_status)
- return -EINVAL;
-
- gpio_request(loader->gpio_lte2ap_status, "GPIO_LTE2AP_STATUS");
- gpio_direction_input(loader->gpio_lte2ap_status);
-
- return 0;
-}
-
-static
-int __devinit lte_modem_bootloader_probe(struct spi_device *spi)
-{
- int ret;
-
- struct lte_modem_bootloader *loader;
- struct lte_modem_bootloader_platform_data *pdata;
-
- loader = kzalloc(sizeof(*loader), GFP_KERNEL);
- if (!loader) {
- mif_err("failed to allocate for lte_modem_bootloader\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
- mutex_init(&loader->lock);
-
- spi->bits_per_word = 8;
-
- if (spi_setup(spi)) {
- mif_err("failed to setup spi for lte_modem_bootloader\n");
- ret = -EINVAL;
- goto err_setup;
- }
-
- loader->spi_dev = spi;
-
- if (!spi->dev.platform_data) {
- mif_err("failed to get platform data for lte_modem_bootloader\n");
- ret = -EINVAL;
- goto err_setup;
- }
- pdata = (struct lte_modem_bootloader_platform_data *)
- spi->dev.platform_data;
- loader->gpio_lte2ap_status = pdata->gpio_lte2ap_status;
-
- ret = bootloader_gpio_setup(loader);
- if (ret) {
- mif_err("failed to set gpio for lte_modem_boot_loader\n");
- goto err_setup;
- }
-
- loader->gpio_lte2ap_status = pdata->gpio_lte2ap_status;
- loader->xmit_status = XMIT_BOOT_READY;
-
- spi_set_drvdata(spi, loader);
-
- loader->dev.minor = MISC_DYNAMIC_MINOR;
- loader->dev.name = "lte_spi";
- loader->dev.fops = &lte_modem_bootloader_fops;
- ret = misc_register(&loader->dev);
- if (ret) {
- mif_err("failed to register misc dev for lte_modem_bootloader\n");
- goto err_setup;
- }
- mif_info("lte_modem_bootloader successfully probed\n");
-#ifdef AIRPLAIN_MODE_TEST
- lte_airplain_mode = 0;
-#endif
- return 0;
-
-err_setup:
- mutex_destroy(&loader->lock);
- kfree(loader);
-
-err_alloc:
-
- return ret;
-}
-
-static
-int __devexit lte_modem_bootloader_remove(struct spi_device *spi)
-{
- struct lte_modem_bootloader *loader = spi_get_drvdata(spi);
-
- misc_deregister(&loader->dev);
- mutex_destroy(&loader->lock);
- kfree(loader);
-
- return 0;
-}
-
-static
-struct spi_driver lte_modem_bootloader_driver = {
- .driver = {
- .name = "lte_modem_spi",
- .bus = &spi_bus_type,
- .owner = THIS_MODULE,
- },
- .probe = lte_modem_bootloader_probe,
- .remove = __devexit_p(lte_modem_bootloader_remove),
-};
-
-static
-int __init lte_modem_bootloader_init(void)
-{
- return spi_register_driver(&lte_modem_bootloader_driver);
-}
-
-static
-void __exit lte_modem_bootloader_exit(void)
-{
- spi_unregister_driver(&lte_modem_bootloader_driver);
-}
-
-module_init(lte_modem_bootloader_init);
-module_exit(lte_modem_bootloader_exit);
-
-MODULE_DESCRIPTION("LTE Modem Bootloader driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/misc/modem_if_u1/modem_link_device_c2c.c b/drivers/misc/modem_if_u1/modem_link_device_c2c.c
deleted file mode 100644
index acbaadf..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_c2c.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* /linux/drivers/new_modem_if/link_dev_c2c.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/interrupt.h>
-#include <linux/timer.h>
-#include <linux/wakelock.h>
-#include <linux/delay.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/vmalloc.h>
-#include <linux/proc_fs.h>
-#include <linux/if_arp.h>
-#include <linux/platform_device.h>
-
-#include <linux/platform_data/modem.h>
-#include <linux/platform_data/c2c.h>
-#include "modem_prj.h"
-#include "modem_link_device_c2c.h"
-
-struct link_device *c2c_create_link_device(struct platform_device *pdev)
-{
- struct c2c_link_device *dpld;
- struct link_device *ld;
- struct modem_data *pdata;
-
- pdata = pdev->dev.platform_data;
-
- dpld = kzalloc(sizeof(struct c2c_link_device), GFP_KERNEL);
- if (!dpld) {
- mif_err("dpld == NULL\n");
- return NULL;
- }
-
- wake_lock_init(&dpld->c2c_wake_lock, WAKE_LOCK_SUSPEND, "c2c_wakelock");
- wake_lock(&dpld->c2c_wake_lock);
-
- ld = &dpld->ld;
- dpld->pdata = pdata;
-
- ld->name = "c2c";
-
- mif_info("%s is created!!!\n", dpld->ld.name);
-
- return ld;
-}
diff --git a/drivers/misc/modem_if_u1/modem_link_device_c2c.h b/drivers/misc/modem_if_u1/modem_link_device_c2c.h
deleted file mode 100644
index 7ec9aa6..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_c2c.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-#include <linux/wakelock.h>
-
-#ifndef __MODEM_LINK_DEVICE_C2C_H__
-#define __MODEM_LINK_DEVICE_C2C_H__
-
-#define DPRAM_ERR_MSG_LEN 128
-#define DPRAM_ERR_DEVICE "c2cerr"
-
-#define MAX_IDX 2
-
-#define DPRAM_BASE_PTR 0x4000000
-
-#define DPRAM_START_ADDRESS 0
-#define DPRAM_MAGIC_CODE_ADDRESS DPRAM_START_ADDRESS
-#define DPRAM_GOTA_MAGIC_CODE_SIZE 0x4
-#define DPRAM_PDA2PHONE_FORMATTED_START_ADDRESS \
- (DPRAM_START_ADDRESS + DPRAM_GOTA_MAGIC_CODE_SIZE)
-#define BSP_DPRAM_BASE_SIZE 0x1ff8
-#define DPRAM_END_OF_ADDRESS (BSP_DPRAM_BASE_SIZE - 1)
-#define DPRAM_INTERRUPT_SIZE 0x2
-#define DPRAM_PDA2PHONE_INTERRUPT_ADDRESS \
- (DPRAM_START_ADDRESS + BSP_DPRAM_BASE_SIZE - DPRAM_INTERRUPT_SIZE*2)
-#define DPRAM_PHONE2PDA_INTERRUPT_ADDRESS \
- (DPRAM_START_ADDRESS + BSP_DPRAM_BASE_SIZE)
-#define DPRAM_BUFFER_SIZE \
- (DPRAM_PHONE2PDA_INTERRUPT_ADDRESS -\
- DPRAM_PDA2PHONE_FORMATTED_START_ADDRESS)
-#define DPRAM_INDEX_SIZE 0x2
-
-#define MAGIC_DMDL 0x4445444C
-#define MAGIC_UMDL 0x4445444D
-
-#define DPRAM_PACKET_DATA_SIZE 0x3f00
-#define DPRAM_PACKET_HEADER_SIZE 0x7
-
-#define INT_GOTA_MASK_VALID 0xA000
-#define INT_DPRAM_DUMP_MASK_VALID 0xA000
-#define MASK_CMD_RECEIVE_READY_NOTIFICATION 0xA100
-#define MASK_CMD_DOWNLOAD_START_REQUEST 0xA200
-#define MASK_CMD_DOWNLOAD_START_RESPONSE 0xA301
-#define MASK_CMD_IMAGE_SEND_REQUEST 0xA400
-#define MASK_CMD_IMAGE_SEND_RESPONSE 0xA500
-#define MASK_CMD_SEND_DONE_REQUEST 0xA600
-#define MASK_CMD_SEND_DONE_RESPONSE 0xA701
-#define MASK_CMD_STATUS_UPDATE_NOTIFICATION 0xA800
-#define MASK_CMD_UPDATE_DONE_NOTIFICATION 0xA900
-#define MASK_CMD_EFS_CLEAR_RESPONSE 0xAB00
-#define MASK_CMD_ALARM_BOOT_OK 0xAC00
-#define MASK_CMD_ALARM_BOOT_FAIL 0xAD00
-
-#define WRITEIMG_HEADER_SIZE 8
-#define WRITEIMG_TAIL_SIZE 4
-#define WRITEIMG_BODY_SIZE \
- (DPRAM_BUFFER_SIZE - WRITEIMG_HEADER_SIZE - WRITEIMG_TAIL_SIZE)
-
-#define DPDN_DEFAULT_WRITE_LEN WRITEIMG_BODY_SIZE
-#define CMD_DL_START_REQ 0x9200
-#define CMD_IMG_SEND_REQ 0x9400
-#define CMD_DL_SEND_DONE_REQ 0x9600
-
-#define CMD_UL_START_REQ 0x9200
-#define CMD_UL_START_READY 0x9400
-#define CMD_UL_SEND_RESP 0x9601
-#define CMD_UL_SEND_DONE_RESP 0x9801
-#define CMD_UL_SEND_REQ 0xA500
-#define CMD_UL_START_RESPONSE 0xA301
-#define CMD_UL_SEND_DONE_REQ 0xA700
-#define CMD_RECEIVE_READY_NOTIFICATION 0xA100
-
-#define MASK_CMD_RESULT_FAIL 0x0002
-#define MASK_CMD_RESULT_SUCCESS 0x0001
-
-#define START_INDEX 0x007F
-#define END_INDEX 0x007E
-
-#define CMD_IMG_SEND_REQ 0x9400
-
-#define CRC_TAB_SIZE 256
-#define CRC_16_L_SEED 0xFFFF
-
-struct c2c_device {
- /* DPRAM memory addresses */
- u16 *in_head_addr;
- u16 *in_tail_addr;
- u8 *in_buff_addr;
- unsigned long in_buff_size;
-
- u16 *out_head_addr;
- u16 *out_tail_addr;
- u8 *out_buff_addr;
- unsigned long out_buff_size;
-
- unsigned long in_head_saved;
- unsigned long in_tail_saved;
- unsigned long out_head_saved;
- unsigned long out_tail_saved;
-
- u16 mask_req_ack;
- u16 mask_res_ack;
- u16 mask_send;
-};
-
-struct memory_region {
- u8 *control;
- u8 *fmt_out;
- u8 *raw_out;
- u8 *fmt_in;
- u8 *raw_in;
- u8 *mbx;
-};
-
-struct UldDataHeader {
- u8 bop;
- u16 total_frame;
- u16 curr_frame;
- u16 len;
-};
-
-struct c2c_link_device {
- struct link_device ld;
-
- struct modem_data *pdata;
-
- /*only c2c*/
- struct wake_lock c2c_wake_lock;
- atomic_t raw_txq_req_ack_rcvd;
- atomic_t fmt_txq_req_ack_rcvd;
- u8 net_stop_flag;
- int phone_sync;
- u8 phone_status;
-
- struct work_struct xmit_work_struct;
-
- struct workqueue_struct *gota_wq;
- struct work_struct gota_cmd_work;
-
- struct c2c_device dev_map[MAX_IDX];
-
- struct wake_lock dumplock;
-
- u8 c2c_read_data[131072];
-
- int c2c_init_cmd_wait_condition;
- wait_queue_head_t c2c_init_cmd_wait_q;
-
- int modem_pif_init_wait_condition;
- wait_queue_head_t modem_pif_init_done_wait_q;
-
- struct completion gota_download_start_complete;
-
- int gota_send_done_cmd_wait_condition;
- wait_queue_head_t gota_send_done_cmd_wait_q;
-
- int gota_update_done_cmd_wait_condition;
- wait_queue_head_t gota_update_done_cmd_wait_q;
-
- int upload_send_req_wait_condition;
- wait_queue_head_t upload_send_req_wait_q;
-
- int upload_send_done_wait_condition;
- wait_queue_head_t upload_send_done_wait_q;
-
- int upload_start_req_wait_condition;
- wait_queue_head_t upload_start_req_wait_q;
-
- int upload_packet_start_condition;
- wait_queue_head_t upload_packet_start_wait_q;
-
- u16 gota_irq_handler_cmd;
-
- u16 c2c_dump_handler_cmd;
-
- int dump_region_number;
-
- unsigned int is_c2c_err ;
-
- int c2c_dump_start;
- int gota_start;
-
- char c2c_err_buf[DPRAM_ERR_MSG_LEN];
-
- struct fasync_struct *c2c_err_async_q;
-
- void (*clear_interrupt)(struct c2c_link_device *);
-
- struct memory_region m_region;
-
- unsigned long fmt_out_buff_size;
- unsigned long raw_out_buff_size;
- unsigned long fmt_in_buff_size;
- unsigned long raw_in_buff_size;
-
- struct delayed_work delayed_tx;
- struct sk_buff *delayed_skb;
- u8 delayed_count;
-};
-
-/* converts from struct link_device* to struct xxx_link_device* */
-#define to_c2c_link_device(linkdev) \
- container_of(linkdev, struct c2c_link_device, ld)
-
-#endif
diff --git a/drivers/misc/modem_if_u1/modem_link_device_dpram.c b/drivers/misc/modem_if_u1/modem_link_device_dpram.c
deleted file mode 100644
index 8b99669..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_dpram.c
+++ /dev/null
@@ -1,2657 +0,0 @@
-/*
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/time.h>
-#include <linux/interrupt.h>
-#include <linux/timer.h>
-#include <linux/wakelock.h>
-#include <linux/delay.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/vmalloc.h>
-#include <linux/if_arp.h>
-#include <linux/platform_device.h>
-#include <linux/kallsyms.h>
-#include <linux/platform_data/modem.h>
-
-#include "modem_prj.h"
-#include "modem_link_device_dpram.h"
-#include "modem_utils.h"
-
-static void handle_cp_crash(struct dpram_link_device *dpld);
-static void trigger_force_cp_crash(struct dpram_link_device *dpld);
-
-/**
- * set_circ_pointer
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- * @dir: direction of communication (TX or RX)
- * @ptr: type of the queue pointer (HEAD or TAIL)
- * @addr: address of the queue pointer
- * @val: value to be written to the queue pointer
- *
- * Writes a value to a pointer in a circular queue with verification
- */
-static inline void set_circ_pointer(struct dpram_link_device *dpld, int id,
- int dir, int ptr, void __iomem *addr, u16 val)
-{
- struct link_device *ld = &dpld->ld;
- int cnt = 0;
- u16 saved = 0;
-
- iowrite16(val, addr);
-
- while (1) {
- /* Check the value written to the address */
- saved = ioread16(addr);
- if (likely(saved == val))
- break;
-
- cnt++;
- mif_err("%s: ERR! %s_%s.%s saved(%d) != val(%d), count %d\n",
- ld->name, get_dev_name(id), circ_dir(dir),
- circ_ptr(ptr), saved, val, cnt);
- if (cnt >= MAX_RETRY_CNT) {
- trigger_force_cp_crash(dpld);
- break;
- }
-
- udelay(100);
-
- /* Write the value again */
- iowrite16(val, addr);
- }
-}
-
-/**
- * register_isr
- * @irq: IRQ number for a DPRAM interrupt
- * @isr: function pointer to an interrupt service routine
- * @flags: set of interrupt flags
- * @name: name of the interrupt
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Registers the ISR for the IRQ number
- */
-static int register_isr(unsigned int irq, irqreturn_t (*isr)(int, void*),
- unsigned long flags, const char *name,
- struct dpram_link_device *dpld)
-{
- int ret;
-
- ret = request_irq(irq, isr, flags, name, dpld);
- if (ret) {
- mif_info("%s: ERR! request_irq fail (err %d)\n", name, ret);
- return ret;
- }
-
- ret = enable_irq_wake(irq);
- if (ret)
- mif_info("%s: ERR! enable_irq_wake fail (err %d)\n", name, ret);
-
- mif_info("%s (#%d) handler registered\n", name, irq);
-
- return 0;
-}
-
-/**
- * clear_intr
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Clears the CP-to-AP interrupt register in a DPRAM
- */
-static inline void clear_intr(struct dpram_link_device *dpld)
-{
- if (likely(dpld->need_intr_clear))
- dpld->ext_op->clear_intr(dpld);
-}
-
-/**
- * recv_intr
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Returns the value of the CP-to-AP interrupt register in a DPRAM
- */
-static inline u16 recv_intr(struct dpram_link_device *dpld)
-{
- return ioread16(dpld->mbx2ap);
-}
-
-/**
- * send_intr
- * @dpld: pointer to an instance of dpram_link_device structure
- * @mask: value to be written to the AP-to-CP interrupt register in a DPRAM
- */
-static inline void send_intr(struct dpram_link_device *dpld, u16 mask)
-{
- iowrite16(mask, dpld->mbx2cp);
-}
-
-/**
- * get_magic
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Returns the value of the "magic code" field in a DPRAM
- */
-static inline u16 get_magic(struct dpram_link_device *dpld)
-{
- return ioread16(dpld->magic);
-}
-
-/**
- * set_magic
- * @dpld: pointer to an instance of dpram_link_device structure
- * @val: value to be written to the "magic code" field in a DPRAM
- */
-static inline void set_magic(struct dpram_link_device *dpld, u16 val)
-{
- iowrite16(val, dpld->magic);
-}
-
-/**
- * get_access
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Returns the value of the "access enable" field in a DPRAM
- */
-static inline u16 get_access(struct dpram_link_device *dpld)
-{
- return ioread16(dpld->access);
-}
-
-/**
- * set_access
- * @dpld: pointer to an instance of dpram_link_device structure
- * @val: value to be written to the "access enable" field in a DPRAM
- */
-static inline void set_access(struct dpram_link_device *dpld, u16 val)
-{
- iowrite16(val, dpld->access);
-}
-
-/**
- * get_tx_head
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns the value of a head (in) pointer in a TX queue
- */
-static inline u32 get_tx_head(struct dpram_link_device *dpld, int id)
-{
- return ioread16(dpld->dev[id]->txq.head);
-}
-
-/**
- * get_tx_tail
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns the value of a tail (out) pointer in a TX queue
- *
- * It is useless for an AP to read a tail pointer in a TX queue twice to verify
- * whether or not the value in the pointer is valid, because it can already have
- * been updated by a CP after the first access from the AP.
- */
-static inline u32 get_tx_tail(struct dpram_link_device *dpld, int id)
-{
- return ioread16(dpld->dev[id]->txq.tail);
-}
-
-/**
- * set_tx_head
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- * @in: value to be written to the head pointer in a TXQ
- */
-static inline void set_tx_head(struct dpram_link_device *dpld, int id, u32 in)
-{
- set_circ_pointer(dpld, id, TX, HEAD, dpld->dev[id]->txq.head, in);
-}
-
-/**
- * set_tx_tail
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- * @out: value to be written to the tail pointer in a TXQ
- */
-static inline void set_tx_tail(struct dpram_link_device *dpld, int id, u32 out)
-{
- set_circ_pointer(dpld, id, TX, TAIL, dpld->dev[id]->txq.tail, out);
-}
-
-/**
- * get_tx_buff
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns the start address of the buffer in a TXQ
- */
-static inline u8 *get_tx_buff(struct dpram_link_device *dpld, int id)
-{
- return dpld->dev[id]->txq.buff;
-}
-
-/**
- * get_tx_buff_size
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns the size of the buffer in a TXQ
- */
-static inline u32 get_tx_buff_size(struct dpram_link_device *dpld, int id)
-{
- return dpld->dev[id]->txq.size;
-}
-
-/**
- * get_rx_head
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns the value of a head (in) pointer in an RX queue
- *
- * It is useless for an AP to read a head pointer in an RX queue twice to verify
- * whether or not the value in the pointer is valid, because it can already have
- * been updated by a CP after the first access from the AP.
- */
-static inline u32 get_rx_head(struct dpram_link_device *dpld, int id)
-{
- return ioread16(dpld->dev[id]->rxq.head);
-}
-
-/**
- * get_rx_tail
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns the value of a tail (in) pointer in an RX queue
- */
-static inline u32 get_rx_tail(struct dpram_link_device *dpld, int id)
-{
- return ioread16(dpld->dev[id]->rxq.tail);
-}
-
-/**
- * set_rx_head
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- * @in: value to be written to the head pointer in an RXQ
- */
-static inline void set_rx_head(struct dpram_link_device *dpld, int id, u32 in)
-{
- set_circ_pointer(dpld, id, TX, HEAD, dpld->dev[id]->rxq.head, in);
-}
-
-/**
- * set_rx_tail
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- * @out: value to be written to the tail pointer in an RXQ
- */
-static inline void set_rx_tail(struct dpram_link_device *dpld, int id, u32 out)
-{
- set_circ_pointer(dpld, id, TX, TAIL, dpld->dev[id]->rxq.tail, out);
-}
-
-/**
- * get_rx_buff
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns the start address of the buffer in an RXQ
- */
-static inline u8 *get_rx_buff(struct dpram_link_device *dpld, int id)
-{
- return dpld->dev[id]->rxq.buff;
-}
-
-/**
- * get_rx_buff_size
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns the size of the buffer in an RXQ
- */
-static inline u32 get_rx_buff_size(struct dpram_link_device *dpld, int id)
-{
- return dpld->dev[id]->rxq.size;
-}
-
-/**
- * get_mask_req_ack
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns the REQ_ACK mask value for the IPC device
- */
-static inline u16 get_mask_req_ack(struct dpram_link_device *dpld, int id)
-{
- return dpld->dev[id]->mask_req_ack;
-}
-
-/**
- * get_mask_res_ack
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns the RES_ACK mask value for the IPC device
- */
-static inline u16 get_mask_res_ack(struct dpram_link_device *dpld, int id)
-{
- return dpld->dev[id]->mask_res_ack;
-}
-
-/**
- * get_mask_send
- * @dpld: pointer to an instance of dpram_link_device structure
- * @id: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns the SEND mask value for the IPC device
- */
-static inline u16 get_mask_send(struct dpram_link_device *dpld, int id)
-{
- return dpld->dev[id]->mask_send;
-}
-
-/**
- * set_dpram_map
- * @dpld: pointer to an instance of dpram_link_device structure
- * @map: pointer to an instance of mif_irq_map structure
- *
- * Sets variables in an mif_irq_map instance as current DPRAM status for IPC
- * logging.
- */
-static void set_dpram_map(struct dpram_link_device *dpld,
- struct mif_irq_map *map)
-{
- map->magic = get_magic(dpld);
- map->access = get_access(dpld);
-
- map->fmt_tx_in = get_tx_head(dpld, IPC_FMT);
- map->fmt_tx_out = get_tx_tail(dpld, IPC_FMT);
- map->fmt_rx_in = get_rx_head(dpld, IPC_FMT);
- map->fmt_rx_out = get_rx_tail(dpld, IPC_FMT);
- map->raw_tx_in = get_tx_head(dpld, IPC_RAW);
- map->raw_tx_out = get_tx_tail(dpld, IPC_RAW);
- map->raw_rx_in = get_rx_head(dpld, IPC_RAW);
- map->raw_rx_out = get_rx_tail(dpld, IPC_RAW);
-
- map->cp2ap = recv_intr(dpld);
-}
-
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
-/**
- * log_dpram_status
- * @dpld: pointer to an instance of dpram_link_device structure
- * @str: pointer to a string that will be printed with a DPRAM status log
- *
- * Prints current DPRAM status with a string to a kernel log.
- */
-static inline void log_dpram_status(struct dpram_link_device *dpld, char *str)
-{
- struct utc_time utc;
-
- get_utc_time(&utc);
-
- pr_info("%s: %s: %s: [%02d:%02d:%02d.%03d] "
- "ACC{%X %d} FMT{TI:%u TO:%u RI:%u RO:%u} "
- "RAW{TI:%u TO:%u RI:%u RO:%u} INTR{0x%X}\n",
- MIF_TAG, dpld->ld.mc->name, str,
- utc.hour, utc.min, utc.sec, utc.msec,
- get_magic(dpld), get_access(dpld),
- get_tx_head(dpld, IPC_FMT), get_tx_tail(dpld, IPC_FMT),
- get_rx_head(dpld, IPC_FMT), get_rx_tail(dpld, IPC_FMT),
- get_tx_head(dpld, IPC_RAW), get_tx_tail(dpld, IPC_RAW),
- get_rx_head(dpld, IPC_RAW), get_rx_tail(dpld, IPC_RAW),
- recv_intr(dpld));
-}
-
-/**
- * save_dpram_dump_work
- * @work: pointer to an instance of work_struct structure
- *
- * Performs actual file operation for saving a DPRAM dump.
- */
-static void save_dpram_dump_work(struct work_struct *work)
-{
- struct dpram_link_device *dpld;
- struct link_device *ld;
- struct trace_queue *trq;
- struct trace_data *trd;
- struct file *fp;
- struct timespec *ts;
- u8 *dump;
- int rcvd;
- char *path;
- struct utc_time utc;
-
- dpld = container_of(work, struct dpram_link_device, dump_dwork.work);
- ld = &dpld->ld;
- trq = &dpld->dump_list;
- path = dpld->dump_path;
-
- while (1) {
- trd = trq_get_data_slot(trq);
- if (!trd)
- break;
-
- ts = &trd->ts;
- dump = trd->data;
- rcvd = trd->size;
-
- ts2utc(ts, &utc);
- snprintf(path, MIF_MAX_PATH_LEN,
- "%s/%s_dump_%d%02d%02d-%02d%02d%02d",
- MIF_LOG_DIR, ld->name, utc.year, utc.mon, utc.day,
- utc.hour, utc.min, utc.sec);
-
- fp = mif_open_file(path);
- if (fp) {
- mif_save_file(fp, dump, rcvd);
- mif_close_file(fp);
- } else {
- mif_err("%s: ERR! %s open fail\n", ld->name, path);
- mif_print_dump(dump, rcvd, 16);
- }
-
- kfree(dump);
- }
-}
-
-/**
- * save_dpram_dump
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Saves a current DPRAM dump.
- *
- * Actual file operation (save) will be performed by save_dpram_dump_work() that
- * is invoked by a delayed work.
- */
-static void save_dpram_dump(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
- struct trace_data *trd;
- u8 *buff;
- struct timespec ts;
-
- buff = kzalloc(dpld->size, GFP_ATOMIC);
- if (!buff) {
- mif_err("%s: ERR! kzalloc fail\n", ld->name);
- return;
- }
-
- getnstimeofday(&ts);
-
- memcpy(buff, dpld->base, dpld->size);
-
- trd = trq_get_free_slot(&dpld->dump_list);
- if (!trd) {
- mif_err("%s: ERR! trq_get_free_slot fail\n", ld->name);
- mif_print_dump(buff, dpld->size, 16);
- kfree(buff);
- return;
- }
-
- memcpy(&trd->ts, &ts, sizeof(struct timespec));
- trd->data = buff;
- trd->size = dpld->size;
-
- queue_delayed_work(system_nrt_wq, &dpld->dump_dwork, 0);
-}
-
-/**
- * pr_trace
- * @dpld: pointer to an instance of dpram_link_device structure
- * @dev: IPC device (IPC_FMT, IPC_RAW, etc.)
- * @ts: pointer to an instance of timespec structure
- * @buff: start address of a buffer into which RX IPC messages were copied
- * @rcvd: size of data in the buffer
- *
- * Prints IPC messages in a local memory buffer to a kernel log.
- */
-static void pr_trace(struct dpram_link_device *dpld, int dev,
- struct timespec *ts, u8 *buff, u32 rcvd)
-{
- struct link_device *ld = &dpld->ld;
- struct utc_time utc;
-
- ts2utc(ts, &utc);
-
- pr_info("%s: [%d-%02d-%02d %02d:%02d:%02d.%03d] %s trace (%s)\n",
- MIF_TAG, utc.year, utc.mon, utc.day, utc.hour, utc.min, utc.sec,
- utc.msec, get_dev_name(dev), ld->name);
-
- mif_print_dump(buff, rcvd, 4);
-
- return;
-}
-
-/**
- * print_ipc_trace
- * @dpld: pointer to an instance of dpram_link_device structure
- * @dev: IPC device (IPC_FMT, IPC_RAW, etc.)
- * @stat: pointer to an instance of dpram_circ_status structure
- *
- * Prints IPC messages currently in an RX circular queue to a kernel log.
- */
-static void print_ipc_trace(struct dpram_link_device *dpld, int dev,
- struct dpram_circ_status *stat)
-{
- u8 *buff = dpld->buff;
- struct timespec ts;
-
- getnstimeofday(&ts);
-
- /* Copy IPC messages from a DPRAM RXQ to a local buffer */
- memset(buff, 0, dpld->size);
- circ_read(buff, stat->buff, stat->qsize, stat->out, stat->size);
-
- /* Print IPC messages in the local buffer to a kernel log */
- pr_trace(dpld, dev, &ts, buff, stat->size);
-}
-
-/**
- * save_ipc_trace_work
- * @work: pointer to an instance of work_struct structure
- *
- * Performs actual file operation for saving RX IPC trace.
- */
-static void save_ipc_trace_work(struct work_struct *work)
-{
- struct dpram_link_device *dpld;
- struct link_device *ld;
- struct trace_queue *trq;
- struct trace_data *trd;
- struct file *fp;
- struct timespec *ts;
- int dev;
- u8 *dump;
- int rcvd;
- u8 *buff;
- char *path;
- struct utc_time utc;
-
- dpld = container_of(work, struct dpram_link_device, trace_dwork.work);
- ld = &dpld->ld;
- trq = &dpld->trace_list;
- path = dpld->trace_path;
-
- buff = kzalloc(dpld->size << 3, GFP_KERNEL);
- if (!buff) {
- while (1) {
- trd = trq_get_data_slot(trq);
- if (!trd)
- break;
-
- ts = &trd->ts;
- dev = trd->dev;
- dump = trd->data;
- rcvd = trd->size;
- pr_trace(dpld, dev, ts, dump, rcvd);
-
- kfree(dump);
- }
- return;
- }
-
- while (1) {
- trd = trq_get_data_slot(trq);
- if (!trd)
- break;
-
- ts = &trd->ts;
- dev = trd->dev;
- dump = trd->data;
- rcvd = trd->size;
-
- ts2utc(ts, &utc);
- snprintf(path, MIF_MAX_PATH_LEN,
- "%s/%s_%s_%d%02d%02d-%02d%02d%02d",
- MIF_LOG_DIR, ld->name, get_dev_name(dev),
- utc.year, utc.mon, utc.day, utc.hour, utc.min, utc.sec);
-
- fp = mif_open_file(path);
- if (fp) {
- int len;
-
- snprintf(buff, MIF_MAX_PATH_LEN,
- "[%d-%02d-%02d %02d:%02d:%02d.%03d]\n",
- utc.year, utc.mon, utc.day, utc.hour, utc.min,
- utc.sec, utc.msec);
- len = strlen(buff);
- mif_dump2format4(dump, rcvd, (buff + len), NULL);
- strcat(buff, "\n");
- len = strlen(buff);
-
- mif_save_file(fp, buff, len);
-
- memset(buff, 0, len);
- mif_close_file(fp);
- } else {
- mif_err("%s: %s open fail\n", ld->name, path);
- pr_trace(dpld, dev, ts, dump, rcvd);
- }
-
- kfree(dump);
- }
-
- kfree(buff);
-}
-
-/**
- * save_ipc_trace
- * @dpld: pointer to an instance of dpram_link_device structure
- * @dev: IPC device (IPC_FMT, IPC_RAW, etc.)
- * @stat: pointer to an instance of dpram_circ_status structure
- *
- * Saves IPC messages currently in an RX circular queue.
- *
- * Actual file operation (save) will be performed by save_ipc_trace_work() that
- * is invoked by a delayed work.
- */
-static void save_ipc_trace(struct dpram_link_device *dpld, int dev,
- struct dpram_circ_status *stat)
-{
- struct link_device *ld = &dpld->ld;
- struct trace_data *trd;
- u8 *buff;
- struct timespec ts;
-
- buff = kzalloc(stat->size, GFP_ATOMIC);
- if (!buff) {
- mif_err("%s: %s: ERR! kzalloc fail\n",
- ld->name, get_dev_name(dev));
- print_ipc_trace(dpld, dev, stat);
- return;
- }
-
- getnstimeofday(&ts);
-
- circ_read(buff, stat->buff, stat->qsize, stat->out, stat->size);
-
- trd = trq_get_free_slot(&dpld->trace_list);
- if (!trd) {
- mif_err("%s: %s: ERR! trq_get_free_slot fail\n",
- ld->name, get_dev_name(dev));
- pr_trace(dpld, dev, &ts, buff, stat->size);
- kfree(buff);
- return;
- }
-
- memcpy(&trd->ts, &ts, sizeof(struct timespec));
- trd->dev = dev;
- trd->data = buff;
- trd->size = stat->size;
-
- queue_delayed_work(system_nrt_wq, &dpld->trace_dwork, 0);
-}
-#endif
-
-/**
- * check_magic_access
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Returns 0 if the "magic code" and "access enable" values are valid, otherwise
- * returns -EACCES.
- */
-static int check_magic_access(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
- int i;
- u16 magic = get_magic(dpld);
- u16 access = get_access(dpld);
-
- /* Returns 0 if the "magic code" and "access enable" are valid */
- if (likely(magic == DPRAM_MAGIC_CODE && access == 1))
- return 0;
-
- /* Retry up to 100 times with 100 us delay per each retry */
- for (i = 1; i <= 100; i++) {
- mif_info("%s: magic:%X access:%X -> retry:%d\n",
- ld->name, magic, access, i);
- udelay(100);
-
- magic = get_magic(dpld);
- access = get_access(dpld);
- if (likely(magic == DPRAM_MAGIC_CODE && access == 1))
- return 0;
- }
-
- mif_info("%s: !CRISIS! magic:%X access:%X\n", ld->name, magic, access);
- return -EACCES;
-}
-
-/**
- * ipc_active
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Returns whether or not IPC via the dpram_link_device instance is possible.
- */
-static bool ipc_active(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
-
- /* Check DPRAM mode */
- if (ld->mode != LINK_MODE_IPC) {
- mif_err("%s: ERR! <%pf> ld->mode != LINK_MODE_IPC\n",
- ld->name, __builtin_return_address(0));
- return false;
- }
-
- /* Check "magic code" and "access enable" values */
- if (check_magic_access(dpld) < 0) {
- mif_err("%s: ERR! <%pf> check_magic_access fail\n",
- ld->name, __builtin_return_address(0));
- return false;
- }
-
- return true;
-}
-
-/**
- * dpram_can_sleep
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Returns tha value of the "need_wake_up" variable in a dpram_link_device
- * instance that is set in dpram_create_link_device().
- */
-static inline bool dpram_can_sleep(struct dpram_link_device *dpld)
-{
- return dpld->need_wake_up;
-}
-
-/**
- * dpram_wake_up
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Wakes up a DPRAM if it can sleep and increases the "accessing" counter in the
- * dpram_link_device instance.
- *
- * CAUTION!!! dpram_allow_sleep() MUST be invoked after dpram_wake_up() success
- * to decrease the "accessing" counter.
- */
-static int dpram_wake_up(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
-
- if (unlikely(!dpram_can_sleep(dpld)))
- return 0;
-
- if (dpld->ext_op->wakeup(dpld) < 0) {
- mif_err("%s: ERR! <%pf> wakeup fail, once\n",
- ld->name, __builtin_return_address(0));
-
- dpld->ext_op->sleep(dpld);
-
- udelay(10);
-
- if (dpld->ext_op->wakeup(dpld) < 0) {
- mif_err("%s: ERR! <%pf> wakeup fail, twice\n",
- ld->name, __builtin_return_address(0));
- return -EACCES;
- }
- }
-
- atomic_inc(&dpld->accessing);
- return 0;
-}
-
-/**
- * dpram_allow_sleep
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Decreases the "accessing" counter in the dpram_link_device instance if it can
- * sleep and allows the DPRAM to sleep only if the value of "accessing" counter
- * is less than or equal to 0.
- *
- * MUST be invoked after dpram_wake_up() success to decrease the "accessing"
- * counter.
- */
-static void dpram_allow_sleep(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
-
- if (unlikely(!dpram_can_sleep(dpld)))
- return;
-
- if (atomic_dec_return(&dpld->accessing) <= 0) {
- dpld->ext_op->sleep(dpld);
- atomic_set(&dpld->accessing, 0);
- mif_debug("%s: DPRAM sleep possible\n", ld->name);
- }
-}
-
-/**
- * handle_no_cp_crash_ack
- * @arg: pointer to an instance of dpram_link_device structure
- *
- * Invokes handle_cp_crash() to enter the CRASH_EXIT state if there was no
- * CRASH_ACK from a CP in FORCE_CRASH_ACK_TIMEOUT.
- */
-static void handle_no_cp_crash_ack(unsigned long arg)
-{
- struct dpram_link_device *dpld = (struct dpram_link_device *)arg;
- struct link_device *ld = &dpld->ld;
-
- mif_err("%s: ERR! No CRASH_EXIT ACK from CP\n", ld->mc->name);
-
- if (!wake_lock_active(&dpld->wlock))
- wake_lock(&dpld->wlock);
-
- handle_cp_crash(dpld);
-}
-
-/**
- * trigger_force_cp_crash
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Triggers an enforced CP crash.
- */
-static void trigger_force_cp_crash(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
-
- if (ld->mode == LINK_MODE_ULOAD) {
- mif_err("%s: CP crash is already in progress\n", ld->mc->name);
- return;
- }
-
- disable_irq_nosync(dpld->irq);
-
- ld->mode = LINK_MODE_ULOAD;
- mif_info("%s: called by %pf\n", ld->name, __builtin_return_address(0));
-
- dpram_wake_up(dpld);
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- /* Take a DPRAM dump */
- save_dpram_dump(dpld);
-#endif
-
- enable_irq(dpld->irq);
-
- /* Send CRASH_EXIT command to a CP */
- send_intr(dpld, INT_CMD(INT_CMD_CRASH_EXIT));
-
- /* If there is no CRASH_ACK from a CP in FORCE_CRASH_ACK_TIMEOUT,
- handle_no_cp_crash_ack() will be executed. */
- mif_add_timer(&dpld->crash_ack_timer, FORCE_CRASH_ACK_TIMEOUT,
- handle_no_cp_crash_ack, (unsigned long)dpld);
-
- return;
-}
-
-/**
- * ext_command_handler
- * @dpld: pointer to an instance of dpram_link_device structure
- * @cmd: extended DPRAM command from a CP
- *
- * Processes an extended command from a CP
- */
-static void ext_command_handler(struct dpram_link_device *dpld, u16 cmd)
-{
- struct link_device *ld = &dpld->ld;
- u16 resp;
-
- switch (EXT_CMD_MASK(cmd)) {
- case EXT_CMD_SET_SPEED_LOW:
- if (dpld->dpctl->setup_speed) {
- dpld->dpctl->setup_speed(DPRAM_SPEED_LOW);
- resp = INT_EXT_CMD(EXT_CMD_SET_SPEED_LOW);
- send_intr(dpld, resp);
- }
- break;
-
- case EXT_CMD_SET_SPEED_MID:
- if (dpld->dpctl->setup_speed) {
- dpld->dpctl->setup_speed(DPRAM_SPEED_MID);
- resp = INT_EXT_CMD(EXT_CMD_SET_SPEED_MID);
- send_intr(dpld, resp);
- }
- break;
-
- case EXT_CMD_SET_SPEED_HIGH:
- if (dpld->dpctl->setup_speed) {
- dpld->dpctl->setup_speed(DPRAM_SPEED_HIGH);
- resp = INT_EXT_CMD(EXT_CMD_SET_SPEED_HIGH);
- send_intr(dpld, resp);
- }
- break;
-
- default:
- mif_info("%s: unknown command 0x%04X\n", ld->name, cmd);
- break;
- }
-}
-
-/**
- * udl_command_handler
- * @dpld: pointer to an instance of dpram_link_device structure
- * @cmd: DPRAM upload/download command from a CP
- *
- * Processes a command for upload/download from a CP
- */
-static void udl_command_handler(struct dpram_link_device *dpld, u16 cmd)
-{
- struct link_device *ld = &dpld->ld;
-
- if (cmd & UDL_RESULT_FAIL) {
- mif_info("%s: ERR! Command failed: %04x\n", ld->name, cmd);
- return;
- }
-
- switch (UDL_CMD_MASK(cmd)) {
- case UDL_CMD_RECV_READY:
- mif_debug("%s: Send CP-->AP RECEIVE_READY\n", ld->name);
- send_intr(dpld, CMD_IMG_START_REQ);
- break;
- default:
- complete_all(&dpld->udl_cmd_complete);
- }
-}
-
-/**
- * cmd_req_active_handler
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Handles the REQ_ACTIVE command from a CP.
- */
-static void cmd_req_active_handler(struct dpram_link_device *dpld)
-{
- send_intr(dpld, INT_CMD(INT_CMD_RES_ACTIVE));
-}
-
-/**
- * cmd_crash_reset_handler
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Handles the CRASH_RESET command from a CP.
- */
-static void cmd_crash_reset_handler(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
- struct io_device *iod = NULL;
- int i;
-
- ld->mode = LINK_MODE_ULOAD;
-
- if (!wake_lock_active(&dpld->wlock))
- wake_lock(&dpld->wlock);
-
- /* Stop network interfaces */
- mif_netif_stop(ld);
-
- /* Purge the skb_txq in every IPC device (IPC_FMT, IPC_RAW, etc.) */
- for (i = 0; i < ld->max_ipc_dev; i++)
- skb_queue_purge(ld->skb_txq[i]);
-
- mif_err("%s: Recv 0xC7 (CRASH_RESET)\n", ld->name);
-
- /* Change the modem state to STATE_CRASH_RESET for the FMT IO device */
- iod = link_get_iod_with_format(ld, IPC_FMT);
- iod->modem_state_changed(iod, STATE_CRASH_RESET);
-
- /* Change the modem state to STATE_CRASH_RESET for the BOOT IO device */
- iod = link_get_iod_with_format(ld, IPC_BOOT);
- iod->modem_state_changed(iod, STATE_CRASH_RESET);
-}
-
-/**
- * handle_cp_crash
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Actual handler for the CRASH_EXIT command from a CP.
- */
-static void handle_cp_crash(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
- struct io_device *iod;
- int i;
-
- /* Stop network interfaces */
- mif_netif_stop(ld);
-
- /* Purge the skb_txq in every IPC device (IPC_FMT, IPC_RAW, etc.) */
- for (i = 0; i < ld->max_ipc_dev; i++)
- skb_queue_purge(ld->skb_txq[i]);
-
- /* Change the modem state to STATE_CRASH_EXIT for the FMT IO device */
- iod = link_get_iod_with_format(ld, IPC_FMT);
- iod->modem_state_changed(iod, STATE_CRASH_EXIT);
-
- /* Change the modem state to STATE_CRASH_EXIT for the BOOT IO device */
- iod = link_get_iod_with_format(ld, IPC_BOOT);
- iod->modem_state_changed(iod, STATE_CRASH_EXIT);
-}
-
-/**
- * cmd_crash_exit_handler
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Handles the CRASH_EXIT command from a CP.
- */
-static void cmd_crash_exit_handler(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
-
- ld->mode = LINK_MODE_ULOAD;
-
- if (!wake_lock_active(&dpld->wlock))
- wake_lock(&dpld->wlock);
-
- del_timer(&dpld->crash_ack_timer);
-
- dpram_wake_up(dpld);
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- save_dpram_dump(dpld);
-#endif
-
- if (dpld->ext_op && dpld->ext_op->crash_log)
- dpld->ext_op->crash_log(dpld);
-
- mif_err("%s: Recv 0xC9 (CRASH_EXIT)\n", ld->name);
-
- handle_cp_crash(dpld);
-}
-
-/**
- * init_dpram_ipc
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Initializes IPC via DPRAM.
- */
-static int init_dpram_ipc(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
- int i;
-
- if (ld->mode == LINK_MODE_IPC &&
- get_magic(dpld) == DPRAM_MAGIC_CODE &&
- get_access(dpld) == 1)
- mif_info("%s: IPC already initialized\n", ld->name);
-
- /* Clear pointers in every circular queue */
- for (i = 0; i < ld->max_ipc_dev; i++) {
- set_tx_head(dpld, i, 0);
- set_tx_tail(dpld, i, 0);
- set_rx_head(dpld, i, 0);
- set_rx_tail(dpld, i, 0);
- }
-
- /* Initialize variables for efficient TX/RX processing */
- for (i = 0; i < ld->max_ipc_dev; i++)
- dpld->iod[i] = link_get_iod_with_format(ld, i);
- dpld->iod[IPC_RAW] = link_get_iod_with_format(ld, IPC_MULTI_RAW);
-
- if (dpld->iod[IPC_RAW]->recv_skb)
- dpld->rx_with_skb = true;
-
- for (i = 0; i < ld->max_ipc_dev; i++) {
- spin_lock_init(&dpld->tx_lock[i]);
- atomic_set(&dpld->res_required[i], 0);
- }
-
- /* Enable IPC */
- if (wake_lock_active(&dpld->wlock))
- wake_unlock(&dpld->wlock);
-
- atomic_set(&dpld->accessing, 0);
-
- set_magic(dpld, DPRAM_MAGIC_CODE);
- set_access(dpld, 1);
- if (get_magic(dpld) != DPRAM_MAGIC_CODE || get_access(dpld) != 1)
- return -EACCES;
-
- ld->mode = LINK_MODE_IPC;
-
- return 0;
-}
-
-/**
- * cmd_phone_start_handler
- * @dpld: pointer to an instance of dpram_link_device structure
- *
- * Handles the PHONE_START command from a CP.
- */
-static void cmd_phone_start_handler(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
- struct io_device *iod = NULL;
-
- mif_info("%s: Recv 0xC8 (CP_START)\n", ld->name);
-
- init_dpram_ipc(dpld);
-
- iod = link_get_iod_with_format(ld, IPC_FMT);
- if (!iod) {
- mif_info("%s: ERR! no iod\n", ld->name);
- return;
- }
-
- if (dpld->ext_op && dpld->ext_op->cp_start_handler)
- dpld->ext_op->cp_start_handler(dpld);
-
- if (ld->mc->phone_state != STATE_ONLINE) {
- mif_info("%s: phone_state: %d -> ONLINE\n",
- ld->name, ld->mc->phone_state);
- iod->modem_state_changed(iod, STATE_ONLINE);
- }
-
- mif_info("%s: Send 0xC2 (INIT_END)\n", ld->name);
- send_intr(dpld, INT_CMD(INT_CMD_INIT_END));
-}
-
-/**
- * command_handler: processes a DPRAM command from a CP
- * @dpld: pointer to an instance of dpram_link_device structure
- * @cmd: DPRAM command from a CP
- */
-static void command_handler(struct dpram_link_device *dpld, u16 cmd)
-{
- struct link_device *ld = &dpld->ld;
-
- switch (INT_CMD_MASK(cmd)) {
- case INT_CMD_REQ_ACTIVE:
- cmd_req_active_handler(dpld);
- break;
-
- case INT_CMD_CRASH_RESET:
- dpld->init_status = DPRAM_INIT_STATE_NONE;
- cmd_crash_reset_handler(dpld);
- break;
-
- case INT_CMD_CRASH_EXIT:
- dpld->init_status = DPRAM_INIT_STATE_NONE;
- cmd_crash_exit_handler(dpld);
- break;
-
- case INT_CMD_PHONE_START:
- dpld->init_status = DPRAM_INIT_STATE_READY;
- cmd_phone_start_handler(dpld);
- complete_all(&dpld->dpram_init_cmd);
- break;
-
- case INT_CMD_NV_REBUILDING:
- mif_info("%s: NV_REBUILDING\n", ld->name);
- break;
-
- case INT_CMD_PIF_INIT_DONE:
- complete_all(&dpld->modem_pif_init_done);
- break;
-
- case INT_CMD_SILENT_NV_REBUILDING:
- mif_info("%s: SILENT_NV_REBUILDING\n", ld->name);
- break;
-
- case INT_CMD_NORMAL_PWR_OFF:
- /*ToDo:*/
- /*kernel_sec_set_cp_ack()*/;
- break;
-
- case INT_CMD_REQ_TIME_SYNC:
- case INT_CMD_CP_DEEP_SLEEP:
- case INT_CMD_EMER_DOWN:
- break;
-
- default:
- mif_info("%s: unknown command 0x%04X\n", ld->name, cmd);
- }
-}
-
-/**
- * ipc_rx_task
- * @data: pointer to an instance of dpram_link_device structure
- *
- * Invokes the recv method in the io_device instance to perform receiving IPC
- * messages from each mif_rxb.
- */
-static void ipc_rx_task(unsigned long data)
-{
- struct dpram_link_device *dpld = (struct dpram_link_device *)data;
- struct link_device *ld = &dpld->ld;
- struct io_device *iod;
- struct mif_rxb *rxb;
- int qlen;
- int i;
-
- for (i = 0; i < ld->max_ipc_dev; i++) {
- iod = dpld->iod[i];
- qlen = rxbq_size(&dpld->rxbq[i]);
- while (qlen > 0) {
- rxb = rxbq_get_data_rxb(&dpld->rxbq[i]);
- iod->recv(iod, ld, rxb->data, rxb->len);
- rxb_clear(rxb);
- qlen--;
- }
- }
-}
-
-/**
- * get_rxq_rcvd
- * @dpld: pointer to an instance of dpram_link_device structure
- * @dev: IPC device (IPC_FMT, IPC_RAW, etc.)
- * OUT @stat: pointer to an instance of dpram_circ_status structure
- *
- * Stores {start address of the buffer in a RXQ, size of the buffer, in & out
- * pointer values, size of received data} into the 'stat' instance.
- *
- * Returns the size of received data in the buffer or an error code.
- */
-static int get_rxq_rcvd(struct dpram_link_device *dpld, int dev,
- struct dpram_circ_status *stat)
-{
- struct link_device *ld = &dpld->ld;
- int cnt = 0;
- u32 qsize;
- u32 head;
- u32 tail;
- int rcvd;
-
- while (1) {
- qsize = get_rx_buff_size(dpld, dev);
- head = get_rx_head(dpld, dev);
- tail = get_rx_tail(dpld, dev);
- rcvd = circ_get_usage(qsize, head, tail);
-
- mif_debug("%s: %s_RXQ qsize[%u] in[%u] out[%u] rcvd[%u]\n",
- ld->name, get_dev_name(dev), qsize, head, tail, rcvd);
-
- if (circ_valid(qsize, head, tail))
- break;
-
- cnt++;
- mif_err("%s: ERR! <%pf> "
- "%s_RXQ invalid (qsize:%d in:%d out:%d rcvd:%d), "
- "count %d\n",
- ld->name, __builtin_return_address(0),
- get_dev_name(dev), qsize, head, tail, rcvd, cnt);
- if (cnt >= MAX_RETRY_CNT) {
- rcvd = -EIO;
- break;
- }
-
- udelay(100);
- }
-
- stat->buff = get_rx_buff(dpld, dev);
- stat->qsize = qsize;
- stat->in = head;
- stat->out = tail;
- stat->size = rcvd;
-
- return rcvd;
-}
-
-/**
- * recv_ipc_with_rxb: receives IPC messages from an RXQ with mif_rxb
- * @dpld: pointer to an instance of dpram_link_device structure
- * @dev: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns
- * ret < 0 : error
- * ret == 0 : no data
- * ret > 0 : valid data
- *
- * Requires a bottom half (e.g. ipc_rx_task) that will invoke the recv method in
- * the io_device instance.
- */
-static int recv_ipc_with_rxb(struct dpram_link_device *dpld, int dev)
-{
- struct link_device *ld = &dpld->ld;
- struct mif_rxb *rxb;
- struct dpram_circ_status stat;
- int rcvd;
- u8 *dst;
- struct mif_irq_map map;
-
- rcvd = get_rxq_rcvd(dpld, dev, &stat);
- if (unlikely(rcvd <= 0)) {
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- if (rcvd < 0)
- trigger_force_cp_crash(dpld);
-#endif
- goto exit;
- }
-
- if (dev == IPC_FMT) {
-#if 0
- log_dpram_status(dpld, "CP2MIF");
-#endif
- set_dpram_map(dpld, &map);
- mif_irq_log(ld->mc->msd, map, "ipc_recv", sizeof("ipc_recv"));
- }
-
- /* Allocate an rxb */
- rxb = rxbq_get_free_rxb(&dpld->rxbq[dev]);
- if (!rxb) {
- mif_info("%s: ERR! %s rxbq_get_free_rxb fail\n",
- ld->name, get_dev_name(dev));
- rcvd = -ENOMEM;
- goto exit;
- }
-
- /* Read data from the RXQ */
- dst = rxb_put(rxb, stat.size);
- circ_read(dst, stat.buff, stat.qsize, stat.out, stat.size);
-
-exit:
- /* Update tail (out) pointer to empty out the RXQ */
- set_rx_tail(dpld, dev, stat.in);
-
- return rcvd;
-}
-
-/**
- * recv_ipc_with_skb: receives SIPC5 messages from an RXQ with skb
- * @dpld: pointer to an instance of dpram_link_device structure
- * @dev: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Returns
- * ret < 0 : error
- * ret == 0 : no data
- * ret > 0 : valid data
- *
- * Requires a recv_skb method in the io_device instance, so this function must
- * be used for only SIPC5.
- */
-static int recv_ipc_with_skb(struct dpram_link_device *dpld, int dev)
-{
- struct link_device *ld = &dpld->ld;
- struct io_device *iod = dpld->iod[dev];
- struct sk_buff *skb;
- /**
- * variables for the status of the circular queue
- */
- u8 __iomem *src;
- struct dpram_circ_status stat;
- /**
- * variables for RX processing
- */
- int qsize; /* size of the queue */
- int rcvd; /* size of data in the RXQ or error */
- int rest; /* size of the rest data */
- int idx; /* index to the start of current frame */
- u8 *frm; /* pointer to current frame */
- u8 *dst; /* pointer to the destination buffer */
- int len; /* length of current frame */
- int tot; /* total length including padding data */
- /**
- * variables for debug logging
- */
- struct mif_irq_map map;
-
- /* Get data size in the RXQ and in/out pointer values */
- rcvd = get_rxq_rcvd(dpld, dev, &stat);
- if (unlikely(rcvd <= 0)) {
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- if (rcvd < 0)
- trigger_force_cp_crash(dpld);
-#endif
- goto exit;
- }
-
- /* Take a log for debugging */
- if (dev == IPC_FMT) {
-#if 0
- log_dpram_status(dpld, "CP2MIF");
-#endif
- set_dpram_map(dpld, &map);
- mif_irq_log(ld->mc->msd, map, "ipc_recv", sizeof("ipc_recv"));
- }
-
- src = stat.buff;
- qsize = stat.qsize;
- rest = stat.size;
- idx = stat.out;
-
- while (rest > 0) {
- /* Calculate the start of an SIPC5 frame */
- frm = src + idx;
-
- /* Check the SIPC5 frame */
- len = sipc5_check_frame_in_dev(ld, dev, frm, rest);
- if (len <= 0) {
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- log_dpram_status(dpld, "CP2MIF");
- save_ipc_trace(dpld, dev, &stat);
- trigger_force_cp_crash(dpld);
-#endif
- rcvd = -EBADMSG;
- goto exit;
- }
-
- /* Calculate total length of the frame (data + padding) */
- tot = len + sipc5_calc_padding_size(len);
-
- /* Allocate an skb */
- skb = dev_alloc_skb(tot);
- if (!skb) {
- mif_err("%s: ERR! %s dev_alloc_skb fail\n",
- ld->name, get_dev_name(dev));
- rcvd = -ENOMEM;
- goto exit;
- }
-
- /* Read the frame from the RXQ */
- dst = skb_put(skb, tot);
- circ_read(dst, src, qsize, idx, tot);
-
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- /* Take a log for debugging */
- if (unlikely(dev == IPC_FMT)) {
- char str[MIF_MAX_STR_LEN];
- snprintf(str, MIF_MAX_STR_LEN, "%s: CP2MIF",
- ld->mc->name);
- pr_ipc(str, skb->data, (skb->len > 20 ? 20 : skb->len));
- }
-#endif
-
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- /* Verify data copied to the skb */
- if (ld->aligned && memcmp16_to_io(frm, dst, 4)) {
- mif_err("%s: memcmp16_to_io fail\n", ld->name);
- trigger_force_cp_crash(dpld);
- rcvd = -EIO;
- goto exit;
- }
-#endif
-
- /* Remove padding in the skb */
- skb_trim(skb, len);
-
- /* Pass the frame to the corresponding IO device */
- iod->recv_skb(iod, ld, skb);
-
- /* Calculate new idx value */
- rest -= tot;
- idx += tot;
- if (idx >= qsize)
- idx -= qsize;
- }
-
-exit:
- /* Update tail (out) pointer to empty out the RXQ */
- set_rx_tail(dpld, dev, stat.in);
-
- return rcvd;
-}
-
-/**
- * recv_ipc_msg: receives IPC messages from every RXQ
- * @dpld: pointer to an instance of dpram_link_device structure
- * @intr: interrupt value from a CP
- *
- * 1) Receives all IPC message frames currently in every DPRAM RXQ.
- * 2) Sends RES_ACK responses if there are REQ_ACK requests from a CP.
- * 3) Completes all threads waiting for the corresponding RES_ACK from a CP if
- * there is any RES_ACK response.
- */
-static void recv_ipc_msg(struct dpram_link_device *dpld, u16 intr)
-{
- struct link_device *ld = &dpld->ld;
- int i = 0;
- int ret = 0;
- u16 mask = 0;
-
- if (!ipc_active(dpld))
- return;
-
- /* Read data from DPRAM */
- for (i = 0; i < ld->max_ipc_dev; i++) {
- if (dpld->rx_with_skb)
- ret = recv_ipc_with_skb(dpld, i);
- else
- ret = recv_ipc_with_rxb(dpld, i);
-
- /* Check and process REQ_ACK (at this time, in == out) */
- if (intr & get_mask_req_ack(dpld, i)) {
- mif_debug("%s: send %s_RES_ACK\n",
- ld->name, get_dev_name(i));
- mask |= get_mask_res_ack(dpld, i);
- }
- }
-
- if (!dpld->rx_with_skb) {
- /* Schedule soft IRQ for RX */
- tasklet_hi_schedule(&dpld->rx_tsk);
- }
-
- if (mask) {
- send_intr(dpld, INT_NON_CMD(mask));
- mif_debug("%s: send intr 0x%04X\n", ld->name, mask);
- }
-
- if (intr && INT_MASK_RES_ACK_SET) {
- if (intr && INT_MASK_RES_ACK_R)
- complete_all(&dpld->req_ack_cmpl[IPC_RAW]);
- else if (intr && INT_MASK_RES_ACK_F)
- complete_all(&dpld->req_ack_cmpl[IPC_FMT]);
- else
- complete_all(&dpld->req_ack_cmpl[IPC_RFS]);
- }
-}
-
-/**
- * cmd_msg_handler: processes a DPRAM command or receives IPC messages
- * @dpld: pointer to an instance of dpram_link_device structure
- * @intr: interrupt value from a CP
- *
- * Invokes command_handler for a DPRAM command or recv_ipc_msg for IPC messages.
- */
-static inline void cmd_msg_handler(struct dpram_link_device *dpld, u16 intr)
-{
- if (unlikely(INT_CMD_VALID(intr)))
- command_handler(dpld, intr);
- else
- recv_ipc_msg(dpld, intr);
-}
-
-/**
- * intr_handler: processes an interrupt from a CP
- * @dpld: pointer to an instance of dpram_link_device structure
- * @intr: interrupt value from a CP
- *
- * Call flow for normal interrupt handling:
- * cmd_msg_handler -> command_handler -> cmd_xxx_handler
- * cmd_msg_handler -> recv_ipc_msg -> recv_ipc_with_skb/recv_ipc_with_rxb ...
- */
-static inline void intr_handler(struct dpram_link_device *dpld, u16 intr)
-{
- char *name = dpld->ld.name;
-
- if (unlikely(intr == INT_POWERSAFE_FAIL)) {
- mif_info("%s: intr == INT_POWERSAFE_FAIL\n", name);
- return;
- }
-
- if (unlikely(EXT_UDL_CMD(intr))) {
- if (likely(EXT_INT_VALID(intr))) {
- if (UDL_CMD_VALID(intr))
- udl_command_handler(dpld, intr);
- else if (EXT_CMD_VALID(intr))
- ext_command_handler(dpld, intr);
- else
- mif_info("%s: ERR! invalid intr 0x%04X\n",
- name, intr);
- } else {
- mif_info("%s: ERR! invalid intr 0x%04X\n", name, intr);
- }
-
- return;
- }
-
- if (likely(INT_VALID(intr)))
- cmd_msg_handler(dpld, intr);
- else
- mif_info("%s: ERR! invalid intr 0x%04X\n", name, intr);
-}
-
-/**
- * ap_idpram_irq_handler: interrupt handler for an internal DPRAM in an AP
- * @irq: IRQ number
- * @data: pointer to a data
- *
- * 1) Reads the interrupt value
- * 2) Performs interrupt handling
- */
-static irqreturn_t ap_idpram_irq_handler(int irq, void *data)
-{
- struct dpram_link_device *dpld = (struct dpram_link_device *)data;
- struct link_device *ld = (struct link_device *)&dpld->ld;
- u16 int2ap = recv_intr(dpld);
-
- if (unlikely(ld->mode == LINK_MODE_OFFLINE))
- return IRQ_HANDLED;
-
- intr_handler(dpld, int2ap);
-
- return IRQ_HANDLED;
-}
-
-/**
- * cp_idpram_irq_handler: interrupt handler for an internal DPRAM in a CP
- * @irq: IRQ number
- * @data: pointer to a data
- *
- * 1) Wakes up the DPRAM
- * 2) Reads the interrupt value
- * 3) Performs interrupt handling
- * 4) Clears the interrupt port (port = memory or register)
- * 5) Allows the DPRAM to sleep
- */
-static irqreturn_t cp_idpram_irq_handler(int irq, void *data)
-{
- struct dpram_link_device *dpld = (struct dpram_link_device *)data;
- struct link_device *ld = (struct link_device *)&dpld->ld;
- u16 int2ap;
-
- if (unlikely(ld->mode == LINK_MODE_OFFLINE))
- return IRQ_HANDLED;
-
- if (dpram_wake_up(dpld) < 0) {
- trigger_force_cp_crash(dpld);
- return IRQ_HANDLED;
- }
-
- int2ap = recv_intr(dpld);
-
- intr_handler(dpld, int2ap);
-
- clear_intr(dpld);
-
- dpram_allow_sleep(dpld);
-
- return IRQ_HANDLED;
-}
-
-/**
- * ext_dpram_irq_handler: interrupt handler for a normal external DPRAM
- * @irq: IRQ number
- * @data: pointer to a data
- *
- * 1) Reads the interrupt value
- * 2) Performs interrupt handling
- */
-static irqreturn_t ext_dpram_irq_handler(int irq, void *data)
-{
- struct dpram_link_device *dpld = (struct dpram_link_device *)data;
- struct link_device *ld = (struct link_device *)&dpld->ld;
- u16 int2ap = recv_intr(dpld);
-
- if (unlikely(ld->mode == LINK_MODE_OFFLINE))
- return IRQ_HANDLED;
-
- intr_handler(dpld, int2ap);
-
- return IRQ_HANDLED;
-}
-
-/**
- * get_txq_space
- * @dpld: pointer to an instance of dpram_link_device structure
- * @dev: IPC device (IPC_FMT, IPC_RAW, etc.)
- * OUT @stat: pointer to an instance of dpram_circ_status structure
- *
- * Stores {start address of the buffer in a TXQ, size of the buffer, in & out
- * pointer values, size of free space} into the 'stat' instance.
- *
- * Returns the size of free space in the buffer or an error code.
- */
-static int get_txq_space(struct dpram_link_device *dpld, int dev,
- struct dpram_circ_status *stat)
-{
- struct link_device *ld = &dpld->ld;
- int cnt = 0;
- u32 qsize;
- u32 head;
- u32 tail;
- int space;
-
- while (1) {
- qsize = get_tx_buff_size(dpld, dev);
- head = get_tx_head(dpld, dev);
- tail = get_tx_tail(dpld, dev);
- space = circ_get_space(qsize, head, tail);
-
- mif_debug("%s: %s_TXQ qsize[%u] in[%u] out[%u] space[%u]\n",
- ld->name, get_dev_name(dev), qsize, head, tail, space);
-
- if (circ_valid(qsize, head, tail))
- break;
-
- cnt++;
- mif_err("%s: ERR! <%pf> "
- "%s_TXQ invalid (qsize:%d in:%d out:%d space:%d), "
- "count %d\n",
- ld->name, __builtin_return_address(0),
- get_dev_name(dev), qsize, head, tail, space, cnt);
- if (cnt >= MAX_RETRY_CNT) {
- space = -EIO;
- break;
- }
-
- udelay(100);
- }
-
- stat->buff = get_tx_buff(dpld, dev);
- stat->qsize = qsize;
- stat->in = head;
- stat->out = tail;
- stat->size = space;
-
- return space;
-}
-
-/**
- * write_ipc_to_txq
- * @dpld: pointer to an instance of dpram_link_device structure
- * @dev: IPC device (IPC_FMT, IPC_RAW, etc.)
- * @stat: pointer to an instance of dpram_circ_status structure
- * @skb: pointer to an instance of sk_buff structure
- *
- * Must be invoked only when there is enough space in the TXQ.
- */
-static void write_ipc_to_txq(struct dpram_link_device *dpld, int dev,
- struct dpram_circ_status *stat, struct sk_buff *skb)
-{
- struct link_device *ld = &dpld->ld;
- u8 __iomem *buff = stat->buff;
- u32 qsize = stat->qsize;
- u32 in = stat->in;
- u8 *src = skb->data;
- u32 len = skb->len;
- u32 inp;
- struct mif_irq_map map;
-
- /* Write data to the TXQ */
- circ_write(buff, src, qsize, in, len);
-
- /* Update new head (in) pointer */
- inp = in + len;
- if (inp >= qsize)
- inp -= qsize;
- set_tx_head(dpld, dev, inp);
-
- /* Take a log for debugging */
- if (dev == IPC_FMT) {
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- char tag[MIF_MAX_STR_LEN];
- snprintf(tag, MIF_MAX_STR_LEN, "%s: MIF2CP", ld->mc->name);
- pr_ipc(tag, src, (len > 20 ? 20 : len));
-#if 0
- log_dpram_status(dpld, "MIF2CP");
-#endif
-#endif
- set_dpram_map(dpld, &map);
- mif_irq_log(ld->mc->msd, map, "ipc_write", sizeof("ipc_write"));
- mif_ipc_log(MIF_IPC_AP2CP, ld->mc->msd, skb->data, skb->len);
- }
-
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- /* Verify data written to the TXQ */
- if (ld->aligned && memcmp16_to_io((buff + in), src, 4)) {
- mif_err("%s: memcmp16_to_io fail\n", ld->name);
- trigger_force_cp_crash(dpld);
- }
-#endif
-}
-
-/**
- * xmit_ipc_msg
- * @dpld: pointer to an instance of dpram_link_device structure
- * @dev: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * Tries to transmit IPC messages in the skb_txq of @dev as many as possible.
- *
- * Returns total length of IPC messages transmitted or an error code.
- */
-static int xmit_ipc_msg(struct dpram_link_device *dpld, int dev)
-{
- struct link_device *ld = &dpld->ld;
- struct sk_buff_head *txq = ld->skb_txq[dev];
- struct sk_buff *skb;
- unsigned long flags;
- struct dpram_circ_status stat;
- int space;
- int copied = 0;
-
- /* Acquire the spin lock for a TXQ */
- spin_lock_irqsave(&dpld->tx_lock[dev], flags);
-
- while (1) {
- /* Get the size of free space in the TXQ */
- space = get_txq_space(dpld, dev, &stat);
- if (unlikely(space < 0)) {
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- /* Trigger a enforced CP crash */
- trigger_force_cp_crash(dpld);
-#endif
- /* Empty out the TXQ */
- set_tx_head(dpld, dev, stat.out);
- copied = -EIO;
- break;
- }
-
- skb = skb_dequeue(txq);
- if (unlikely(!skb))
- break;
-
- /* Check the free space size comparing with skb->len */
- if (unlikely(space < skb->len)) {
- atomic_set(&dpld->res_required[dev], 1);
- /* Take the skb back to the skb_txq */
- skb_queue_head(txq, skb);
- mif_info("%s: %s qsize[%u] "
- "in[%u] out[%u] free[%u] < len[%u]\n",
- ld->name, get_dev_name(dev), stat.qsize,
- stat.in, stat.out, space, skb->len);
- copied = -ENOSPC;
- break;
- }
-
- /* TX only when there is enough space in the TXQ */
- write_ipc_to_txq(dpld, dev, &stat, skb);
- copied += skb->len;
- dev_kfree_skb_any(skb);
- }
-
- /* Release the spin lock */
- spin_unlock_irqrestore(&dpld->tx_lock[dev], flags);
-
- return copied;
-}
-
-/**
- * wait_for_res_ack
- * @dpld: pointer to an instance of dpram_link_device structure
- * @dev: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * 1) Sends an REQ_ACK interrupt for @dev to CP.
- * 2) Waits for the corresponding RES_ACK for @dev from CP.
- *
- * Returns the return value from wait_for_completion_interruptible_timeout().
- */
-static int wait_for_res_ack(struct dpram_link_device *dpld, int dev)
-{
- struct link_device *ld = &dpld->ld;
- struct completion *cmpl = &dpld->req_ack_cmpl[dev];
- unsigned long timeout = RES_ACK_WAIT_TIMEOUT;
- int ret;
- u16 mask;
-
- mask = get_mask_req_ack(dpld, dev);
- mif_info("%s: send %s_REQ_ACK\n", ld->name, get_dev_name(dev));
- send_intr(dpld, INT_NON_CMD(mask));
-
- ret = wait_for_completion_interruptible_timeout(cmpl, timeout);
- /* ret == 0 on timeout, ret < 0 if interrupted */
- if (ret == 0) {
- mif_info("%s: TIMEOUT! no %s_RES_ACK\n",
- ld->name, get_dev_name(dev));
- } else if (ret < 0) {
- mif_info("%s: %s: interrupted (ret %d)\n",
- ld->name, get_dev_name(dev), ret);
- }
-
- return ret;
-}
-
-/**
- * process_res_ack
- * @dpld: pointer to an instance of dpram_link_device structure
- * @dev: IPC device (IPC_FMT, IPC_RAW, etc.)
- *
- * 1) Tries to transmit IPC messages in the skb_txq by invoking xmit_ipc_msg()
- * function.
- * 2) Sends an interrupt to CP if there is no error from xmit_ipc_msg().
- * 3) Restarts DPRAM flow control if xmit_ipc_msg() returns -ENOSPC.
- *
- * Returns the return value from xmit_ipc_msg().
- */
-static int process_res_ack(struct dpram_link_device *dpld, int dev)
-{
- struct link_device *ld = &dpld->ld;
- int ret;
- u16 mask;
-
- mif_info("%s: recv %s_RES_ACK\n", ld->name, get_dev_name(dev));
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- log_dpram_status(dpld, "LATEST");
-#endif
-
- ret = xmit_ipc_msg(dpld, dev);
- if (ret > 0) {
- mask = get_mask_send(dpld, dev);
- send_intr(dpld, INT_NON_CMD(mask));
- atomic_set(&dpld->res_required[dev], 0);
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- mif_info("%s: xmit_ipc_msg done (%d bytes)\n", ld->name, ret);
-#endif
- goto exit;
- }
-
- if (ret == 0) {
- mif_info("%s: %s skb_txq empty\n", ld->name, get_dev_name(dev));
- atomic_set(&dpld->res_required[dev], 0);
- goto exit;
- }
-
- /* At this point, ret < 0 */
- if (ret == -ENOSPC) {
- /*
- ** dpld->res_required[dev] is set in xmit_ipc_msg()
- */
- mif_info("%s: xmit_ipc_msg fail (err -ENOSPC)\n", ld->name);
- queue_delayed_work(ld->tx_wq, ld->tx_dwork[dev], 0);
- } else {
- mif_err("%s: ERR! xmit_ipc_msg fail (err %d)\n",
- ld->name, ret);
- }
-
-exit:
- return ret;
-}
-
-/**
- * fmt_tx_work: performs TX for FMT IPC device under DPRAM flow control
- * @work: pointer to an instance of the work_struct structure
- *
- * 1) Starts waiting for RES_ACK of FMT IPC device.
- * 2) Returns immediately if the wait is interrupted.
- * 3) Restarts DPRAM flow control if there is a timeout from the wait.
- * 4) Otherwise, it performs processing RES_ACK for FMT IPC device.
- */
-static void fmt_tx_work(struct work_struct *work)
-{
- struct link_device *ld;
- struct dpram_link_device *dpld;
- unsigned long delay = REQ_ACK_DELAY;
- int ret;
-
- ld = container_of(work, struct link_device, fmt_tx_dwork.work);
- dpld = to_dpram_link_device(ld);
-
- ret = wait_for_res_ack(dpld, IPC_FMT);
- /* ret == 0 on timeout, ret < 0 if interrupted */
- if (ret < 0)
- return;
- else if (ret == 0)
- queue_delayed_work(ld->tx_wq, ld->tx_dwork[IPC_FMT], delay);
- else
- process_res_ack(dpld, IPC_FMT);
-}
-
-/**
- * raw_tx_work: performs TX for RAW IPC device under DPRAM flow control.
- * @work: pointer to an instance of the work_struct structure
- *
- * 1) Starts waiting for RES_ACK of RAW IPC device.
- * 2) Returns immediately if the wait is interrupted.
- * 3) Restarts DPRAM flow control if there is a timeout from the wait.
- * 4) Otherwise, it performs processing RES_ACK for RAW IPC device.
- */
-static void raw_tx_work(struct work_struct *work)
-{
- struct link_device *ld;
- struct dpram_link_device *dpld;
- unsigned long delay = REQ_ACK_DELAY;
- int ret;
-
- ld = container_of(work, struct link_device, raw_tx_dwork.work);
- dpld = to_dpram_link_device(ld);
-
- ret = wait_for_res_ack(dpld, IPC_RAW);
- /* ret == 0 on timeout, ret < 0 if interrupted */
- if (ret < 0)
- return;
-
- if (ret == 0) {
- queue_delayed_work(ld->tx_wq, ld->tx_dwork[IPC_RAW], delay);
- return;
- }
-
- ret = process_res_ack(dpld, IPC_RAW);
- if (ret > 0)
- mif_netif_wake(ld);
-}
-
-/**
- * rfs_tx_work: performs TX for RFS IPC device under DPRAM flow control
- * @work: pointer to an instance of the work_struct structure
- *
- * 1) Starts waiting for RES_ACK of RFS IPC device.
- * 2) Returns immediately if the wait is interrupted.
- * 3) Restarts DPRAM flow control if there is a timeout from the wait.
- * 4) Otherwise, it performs processing RES_ACK for RFS IPC device.
- */
-static void rfs_tx_work(struct work_struct *work)
-{
- struct link_device *ld;
- struct dpram_link_device *dpld;
- unsigned long delay = REQ_ACK_DELAY;
- int ret;
-
- ld = container_of(work, struct link_device, rfs_tx_dwork.work);
- dpld = to_dpram_link_device(ld);
-
- ret = wait_for_res_ack(dpld, IPC_RFS);
- /* ret == 0 on timeout, ret < 0 if interrupted */
- if (ret < 0)
- return;
- else if (ret == 0)
- queue_delayed_work(ld->tx_wq, ld->tx_dwork[IPC_RFS], delay);
- else
- process_res_ack(dpld, IPC_RFS);
-}
-
-/**
- * dpram_send_ipc
- * @dpld: pointer to an instance of dpram_link_device structure
- * @dev: IPC device (IPC_FMT, IPC_RAW, etc.)
- * @iod: pointer to an instance of the io_device structure
- * @skb: pointer to an skb that will be transmitted
- *
- * 1) Enqueues an skb to the skb_txq for @dev in the link device instance.
- * 2) Tries to transmit IPC messages in the skb_txq by invoking xmit_ipc_msg()
- * function.
- * 3) Sends an interrupt to CP if there is no error from xmit_ipc_msg().
- * 4) Starts DPRAM flow control if xmit_ipc_msg() returns -ENOSPC.
- */
-static void dpram_send_ipc(struct dpram_link_device *dpld, int dev,
- struct io_device *iod, struct sk_buff *skb)
-{
- struct link_device *ld = &dpld->ld;
- struct sk_buff_head *txq = ld->skb_txq[dev];
- int ret;
- u16 mask;
-
- if (unlikely(txq->qlen >= MAX_SKB_TXQ_DEPTH)) {
- mif_err("%s: %s txq->qlen %d >= %d\n", ld->name,
- get_dev_name(dev), txq->qlen, MAX_SKB_TXQ_DEPTH);
- if (iod->io_typ == IODEV_NET || iod->format == IPC_MULTI_RAW) {
- dev_kfree_skb_any(skb);
- return;
- }
- }
-
- skb_queue_tail(txq, skb);
-
- if (dpram_wake_up(dpld) < 0) {
- trigger_force_cp_crash(dpld);
- return;
- }
-
- if (!ipc_active(dpld)) {
- mif_info("%s: IPC is NOT active\n", ld->name);
- goto exit;
- }
-
- if (atomic_read(&dpld->res_required[dev]) > 0) {
- mif_info("%s: %s_TXQ is full\n", ld->name, get_dev_name(dev));
- goto exit;
- }
-
- ret = xmit_ipc_msg(dpld, dev);
- if (likely(ret > 0)) {
- mask = get_mask_send(dpld, dev);
- send_intr(dpld, INT_NON_CMD(mask));
- goto exit;
- }
-
- if (ret == 0) {
- mif_info("%s: %s skb_txq empty\n", ld->name, get_dev_name(dev));
- goto exit;
- }
-
- /* At this point, ret < 0 */
- if (ret == -ENOSPC) {
- /*
- ** dpld->res_required[dev] is set in xmit_ipc_msg()
- */
- if (dev == IPC_RAW)
- mif_netif_stop(ld);
- mif_info("%s->%s: xmit_ipc_msg fail (err -ENOSPC)\n",
- iod->name, ld->name);
- queue_delayed_work(ld->tx_wq, ld->tx_dwork[dev], 0);
- } else {
- mif_err("%s->%s: ERR! xmit_ipc_msg fail (err %d)\n",
- iod->name, ld->name, ret);
- }
-
-exit:
- dpram_allow_sleep(dpld);
-}
-
-static int dpram_send_cp_binary(struct link_device *ld, struct sk_buff *skb)
-{
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
-
- if (dpld->ext_op && dpld->ext_op->download_binary)
- return dpld->ext_op->download_binary(dpld, skb);
- else
- return -ENODEV;
-}
-
-/**
- * dpram_send
- * @ld: pointer to an instance of the link_device structure
- * @iod: pointer to an instance of the io_device structure
- * @skb: pointer to an skb that will be transmitted
- *
- * Returns the length of data transmitted or an error code.
- *
- * Normal call flow for an IPC message:
- * dpram_send_ipc -> xmit_ipc_msg -> write_ipc_to_txq
- *
- * Call flow on congestion in a DPRAM IPC TXQ:
- * dpram_send_ipc -> xmit_ipc_msg ,,, queue_delayed_work
- * => xxx_tx_work -> wait_for_res_ack
- * => recv_ipc_msg
- * => process_res_ack -> xmit_ipc_msg (,,, queue_delayed_work ...)
- */
-static int dpram_send(struct link_device *ld, struct io_device *iod,
- struct sk_buff *skb)
-{
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
- int dev = iod->format;
- int len = skb->len;
-
- switch (dev) {
- case IPC_FMT:
- case IPC_RAW:
- case IPC_RFS:
- if (likely(ld->mode == LINK_MODE_IPC)) {
- dpram_send_ipc(dpld, dev, iod, skb);
- } else {
- mif_info("%s: ld->mode != LINK_MODE_IPC\n", ld->name);
- dev_kfree_skb_any(skb);
- }
- return len;
-
- case IPC_BOOT:
- return dpram_send_cp_binary(ld, skb);
-
- default:
- mif_info("%s: ERR! no TXQ for %s\n", ld->name, iod->name);
- dev_kfree_skb_any(skb);
- return -ENODEV;
- }
-}
-
-static int dpram_force_dump(struct link_device *ld, struct io_device *iod)
-{
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
- trigger_force_cp_crash(dpld);
- return 0;
-}
-
-static int dpram_dump_start(struct link_device *ld, struct io_device *iod)
-{
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
-
- if (dpld->ext_op && dpld->ext_op->dump_start)
- return dpld->ext_op->dump_start(dpld);
- else
- return -ENODEV;
-}
-
-static int dpram_dump_update(struct link_device *ld, struct io_device *iod,
- unsigned long arg)
-{
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
-
- if (dpld->ext_op && dpld->ext_op->dump_update)
- return dpld->ext_op->dump_update(dpld, (void *)arg);
- else
- return -ENODEV;
-}
-
-static int dpram_ioctl(struct link_device *ld, struct io_device *iod,
- unsigned int cmd, unsigned long arg)
-{
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
- int err = 0;
-
- mif_info("%s: cmd 0x%08X\n", ld->name, cmd);
-
- switch (cmd) {
- case IOCTL_DPRAM_INIT_STATUS:
- mif_debug("%s: get dpram init status\n", ld->name);
- return dpld->init_status;
-
- default:
- if (dpld->ext_ioctl) {
- err = dpld->ext_ioctl(dpld, iod, cmd, arg);
- } else {
- mif_err("%s: ERR! invalid cmd 0x%08X\n", ld->name, cmd);
- err = -EINVAL;
- }
-
- break;
- }
-
- return err;
-}
-
-static void dpram_dump_memory(struct link_device *ld, char *buff)
-{
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
- dpram_wake_up(dpld);
- memcpy(buff, dpld->base, dpld->size);
- dpram_allow_sleep(dpld);
-}
-
-static void dpram_remap_std_16k_region(struct dpram_link_device *dpld)
-{
- struct dpram_ipc_16k_map *dpram_map;
- struct dpram_ipc_device *dev;
-
- dpram_map = (struct dpram_ipc_16k_map *)dpld->base;
-
- /* "magic code" and "access enable" fields */
- dpld->ipc_map.magic = (u16 __iomem *)&dpram_map->magic;
- dpld->ipc_map.access = (u16 __iomem *)&dpram_map->access;
-
- /* FMT */
- dev = &dpld->ipc_map.dev[IPC_FMT];
-
- strcpy(dev->name, "FMT");
- dev->id = IPC_FMT;
-
- dev->txq.head = (u16 __iomem *)&dpram_map->fmt_tx_head;
- dev->txq.tail = (u16 __iomem *)&dpram_map->fmt_tx_tail;
- dev->txq.buff = (u8 __iomem *)&dpram_map->fmt_tx_buff[0];
- dev->txq.size = DP_16K_FMT_TX_BUFF_SZ;
-
- dev->rxq.head = (u16 __iomem *)&dpram_map->fmt_rx_head;
- dev->rxq.tail = (u16 __iomem *)&dpram_map->fmt_rx_tail;
- dev->rxq.buff = (u8 __iomem *)&dpram_map->fmt_rx_buff[0];
- dev->rxq.size = DP_16K_FMT_RX_BUFF_SZ;
-
- dev->mask_req_ack = INT_MASK_REQ_ACK_F;
- dev->mask_res_ack = INT_MASK_RES_ACK_F;
- dev->mask_send = INT_MASK_SEND_F;
-
- /* RAW */
- dev = &dpld->ipc_map.dev[IPC_RAW];
-
- strcpy(dev->name, "RAW");
- dev->id = IPC_RAW;
-
- dev->txq.head = (u16 __iomem *)&dpram_map->raw_tx_head;
- dev->txq.tail = (u16 __iomem *)&dpram_map->raw_tx_tail;
- dev->txq.buff = (u8 __iomem *)&dpram_map->raw_tx_buff[0];
- dev->txq.size = DP_16K_RAW_TX_BUFF_SZ;
-
- dev->rxq.head = (u16 __iomem *)&dpram_map->raw_rx_head;
- dev->rxq.tail = (u16 __iomem *)&dpram_map->raw_rx_tail;
- dev->rxq.buff = (u8 __iomem *)&dpram_map->raw_rx_buff[0];
- dev->rxq.size = DP_16K_RAW_RX_BUFF_SZ;
-
- dev->mask_req_ack = INT_MASK_REQ_ACK_R;
- dev->mask_res_ack = INT_MASK_RES_ACK_R;
- dev->mask_send = INT_MASK_SEND_R;
-
- /* interrupt ports */
- dpld->ipc_map.mbx_cp2ap = (u16 __iomem *)&dpram_map->mbx_cp2ap;
- dpld->ipc_map.mbx_ap2cp = (u16 __iomem *)&dpram_map->mbx_ap2cp;
-}
-
-static int dpram_table_init(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
- u8 __iomem *dp_base;
- int i;
-
- if (!dpld->base) {
- mif_err("%s: ERR! dpld->base == NULL\n", ld->name);
- return -EINVAL;
- }
- dp_base = dpld->base;
-
- /* Map for booting */
- if (dpld->ext_op && dpld->ext_op->init_boot_map) {
- dpld->ext_op->init_boot_map(dpld);
- } else {
- dpld->bt_map.magic = (u32 *)(dp_base);
- dpld->bt_map.buff = (u8 *)(dp_base + DP_BOOT_BUFF_OFFSET);
- dpld->bt_map.size = dpld->size - 8;
- }
-
- /* Map for download (FOTA, UDL, etc.) */
- if (dpld->ext_op && dpld->ext_op->init_dl_map) {
- dpld->ext_op->init_dl_map(dpld);
- } else {
- dpld->dl_map.magic = (u32 *)(dp_base);
- dpld->dl_map.buff = (u8 *)(dp_base + DP_DLOAD_BUFF_OFFSET);
- }
-
- /* Map for upload mode */
- if (dpld->ext_op && dpld->ext_op->init_ul_map) {
- dpld->ext_op->init_ul_map(dpld);
- } else {
- dpld->ul_map.magic = (u32 *)(dp_base);
- dpld->ul_map.buff = (u8 *)(dp_base + DP_ULOAD_BUFF_OFFSET);
- }
-
- /* Map for IPC */
- if (dpld->ext_op && dpld->ext_op->init_ipc_map) {
- dpld->ext_op->init_ipc_map(dpld);
- } else if (dpld->dpctl->ipc_map) {
- memcpy(&dpld->ipc_map, dpld->dpctl->ipc_map,
- sizeof(struct dpram_ipc_map));
- } else {
- if (dpld->size == DPRAM_SIZE_16KB)
- dpram_remap_std_16k_region(dpld);
- else
- return -EINVAL;
- }
-
- dpld->magic = dpld->ipc_map.magic;
- dpld->access = dpld->ipc_map.access;
- for (i = 0; i < ld->max_ipc_dev; i++)
- dpld->dev[i] = &dpld->ipc_map.dev[i];
- dpld->mbx2ap = dpld->ipc_map.mbx_cp2ap;
- dpld->mbx2cp = dpld->ipc_map.mbx_ap2cp;
-
- return 0;
-}
-
-static void dpram_setup_common_op(struct dpram_link_device *dpld)
-{
- dpld->recv_intr = recv_intr;
- dpld->send_intr = send_intr;
- dpld->get_magic = get_magic;
- dpld->set_magic = set_magic;
- dpld->get_access = get_access;
- dpld->set_access = set_access;
- dpld->get_tx_head = get_tx_head;
- dpld->get_tx_tail = get_tx_tail;
- dpld->set_tx_head = set_tx_head;
- dpld->set_tx_tail = set_tx_tail;
- dpld->get_tx_buff = get_tx_buff;
- dpld->get_tx_buff_size = get_tx_buff_size;
- dpld->get_rx_head = get_rx_head;
- dpld->get_rx_tail = get_rx_tail;
- dpld->set_rx_head = set_rx_head;
- dpld->set_rx_tail = set_rx_tail;
- dpld->get_rx_buff = get_rx_buff;
- dpld->get_rx_buff_size = get_rx_buff_size;
- dpld->get_mask_req_ack = get_mask_req_ack;
- dpld->get_mask_res_ack = get_mask_res_ack;
- dpld->get_mask_send = get_mask_send;
- dpld->ipc_rx_handler = cmd_msg_handler;
-}
-
-static int dpram_link_init(struct link_device *ld, struct io_device *iod)
-{
- return 0;
-}
-
-static void dpram_link_terminate(struct link_device *ld, struct io_device *iod)
-{
- if (iod->format == IPC_FMT && ld->mode == LINK_MODE_IPC) {
- if (!atomic_read(&iod->opened)) {
- ld->mode = LINK_MODE_OFFLINE;
- mif_err("%s: %s: link mode is changed: IPC->OFFLINE\n",
- iod->name, ld->name);
- }
- }
-
- return;
-}
-
-struct link_device *dpram_create_link_device(struct platform_device *pdev)
-{
- struct dpram_link_device *dpld = NULL;
- struct link_device *ld = NULL;
- struct modem_data *modem = NULL;
- struct modemlink_dpram_control *dpctl = NULL;
- struct resource *res = NULL;
- resource_size_t res_size;
- unsigned long task_data;
- int ret = 0;
- int i = 0;
- int bsize;
- int qsize;
-
- /*
- ** Alloc an instance of dpram_link_device structure
- */
- dpld = kzalloc(sizeof(struct dpram_link_device), GFP_KERNEL);
- if (!dpld) {
- mif_err("ERR! kzalloc dpld fail\n");
- goto err;
- }
- ld = &dpld->ld;
-
- /*
- ** Get the modem (platform) data
- */
- modem = (struct modem_data *)pdev->dev.platform_data;
- if (!modem) {
- mif_err("ERR! modem == NULL\n");
- goto err;
- }
- mif_info("modem = %s\n", modem->name);
- mif_info("link device = %s\n", modem->link_name);
-
- /*
- ** Retrieve modem data and DPRAM control data from the modem data
- */
- ld->mdm_data = modem;
- ld->name = modem->link_name;
- ld->ipc_version = modem->ipc_version;
-
- if (!modem->dpram_ctl) {
- mif_err("ERR! modem->dpram_ctl == NULL\n");
- goto err;
- }
- dpctl = modem->dpram_ctl;
-
- dpld->dpctl = dpctl;
- dpld->type = dpctl->dp_type;
-
- if (ld->ipc_version < SIPC_VER_50) {
- if (!dpctl->max_ipc_dev) {
- mif_err("%s: ERR! no max_ipc_dev\n", ld->name);
- goto err;
- }
-
- ld->aligned = dpctl->aligned;
- ld->max_ipc_dev = dpctl->max_ipc_dev;
- } else {
- ld->aligned = 1;
- ld->max_ipc_dev = MAX_SIPC5_DEV;
- }
-
- /*
- ** Set attributes as a link device
- */
- ld->init_comm = dpram_link_init;
- ld->terminate_comm = dpram_link_terminate;
- ld->send = dpram_send;
- ld->force_dump = dpram_force_dump;
- ld->dump_start = dpram_dump_start;
- ld->dump_update = dpram_dump_update;
- ld->ioctl = dpram_ioctl;
-
- INIT_LIST_HEAD(&ld->list);
-
- skb_queue_head_init(&ld->sk_fmt_tx_q);
- skb_queue_head_init(&ld->sk_raw_tx_q);
- skb_queue_head_init(&ld->sk_rfs_tx_q);
- ld->skb_txq[IPC_FMT] = &ld->sk_fmt_tx_q;
- ld->skb_txq[IPC_RAW] = &ld->sk_raw_tx_q;
- ld->skb_txq[IPC_RFS] = &ld->sk_rfs_tx_q;
-
- /*
- ** Set up function pointers
- */
- dpram_setup_common_op(dpld);
- dpld->dpram_dump = dpram_dump_memory;
- dpld->ext_op = dpram_get_ext_op(modem->modem_type);
- if (dpld->ext_op && dpld->ext_op->ioctl)
- dpld->ext_ioctl = dpld->ext_op->ioctl;
- if (dpld->ext_op && dpld->ext_op->wakeup && dpld->ext_op->sleep)
- dpld->need_wake_up = true;
- if (dpld->ext_op && dpld->ext_op->clear_intr)
- dpld->need_intr_clear = true;
-
- /*
- ** Retrieve DPRAM resource
- */
- if (!dpctl->dp_base) {
- res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
- STR_DPRAM_BASE);
- if (!res) {
- mif_err("%s: ERR! no DPRAM resource\n", ld->name);
- goto err;
- }
- res_size = resource_size(res);
-
- dpctl->dp_base = ioremap_nocache(res->start, res_size);
- if (!dpctl->dp_base) {
- mif_err("%s: ERR! ioremap_nocache for BASE fail\n",
- ld->name);
- goto err;
- }
- dpctl->dp_size = res_size;
- }
- dpld->base = dpctl->dp_base;
- dpld->size = dpctl->dp_size;
-
- mif_info("%s: type %d, aligned %d, base 0x%08X, size %d\n",
- ld->name, dpld->type, ld->aligned, (int)dpld->base, dpld->size);
-
- /*
- ** Retrieve DPRAM SFR resource if exists
- */
- res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
- STR_DPRAM_SFR_BASE);
- if (res) {
- res_size = resource_size(res);
- dpld->sfr_base = ioremap_nocache(res->start, res_size);
- if (!dpld->sfr_base) {
- mif_err("%s: ERR! ioremap_nocache for SFR fail\n",
- ld->name);
- goto err;
- }
- }
-
- /* Initialize DPRAM map (physical map -> logical map) */
- ret = dpram_table_init(dpld);
- if (ret < 0) {
- mif_err("%s: ERR! dpram_table_init fail (err %d)\n",
- ld->name, ret);
- goto err;
- }
-
- /* Disable IPC */
- if (!dpctl->disabled) {
- set_magic(dpld, 0);
- set_access(dpld, 0);
- }
- dpld->init_status = DPRAM_INIT_STATE_NONE;
-
- /* Initialize locks, completions, and bottom halves */
- snprintf(dpld->wlock_name, MIF_MAX_NAME_LEN, "%s_wlock", ld->name);
- wake_lock_init(&dpld->wlock, WAKE_LOCK_SUSPEND, dpld->wlock_name);
-
- init_completion(&dpld->dpram_init_cmd);
- init_completion(&dpld->modem_pif_init_done);
- init_completion(&dpld->udl_start_complete);
- init_completion(&dpld->udl_cmd_complete);
- init_completion(&dpld->crash_start_complete);
- init_completion(&dpld->crash_recv_done);
- for (i = 0; i < ld->max_ipc_dev; i++)
- init_completion(&dpld->req_ack_cmpl[i]);
-
- task_data = (unsigned long)dpld;
- tasklet_init(&dpld->rx_tsk, ipc_rx_task, task_data);
-
- ld->tx_wq = create_singlethread_workqueue("dpram_tx_wq");
- if (!ld->tx_wq) {
- mif_err("%s: ERR! fail to create tx_wq\n", ld->name);
- goto err;
- }
- INIT_DELAYED_WORK(&ld->fmt_tx_dwork, fmt_tx_work);
- INIT_DELAYED_WORK(&ld->raw_tx_dwork, raw_tx_work);
- INIT_DELAYED_WORK(&ld->rfs_tx_dwork, rfs_tx_work);
- ld->tx_dwork[IPC_FMT] = &ld->fmt_tx_dwork;
- ld->tx_dwork[IPC_RAW] = &ld->raw_tx_dwork;
- ld->tx_dwork[IPC_RFS] = &ld->rfs_tx_dwork;
-
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- INIT_DELAYED_WORK(&dpld->dump_dwork, save_dpram_dump_work);
- INIT_DELAYED_WORK(&dpld->trace_dwork, save_ipc_trace_work);
- spin_lock_init(&dpld->dump_list.lock);
- spin_lock_init(&dpld->trace_list.lock);
-#endif
-
- /* Prepare RXB queue */
- qsize = DPRAM_MAX_RXBQ_SIZE;
- for (i = 0; i < ld->max_ipc_dev; i++) {
- bsize = rxbq_get_page_size(get_rx_buff_size(dpld, i));
- dpld->rxbq[i].size = qsize;
- dpld->rxbq[i].in = 0;
- dpld->rxbq[i].out = 0;
- dpld->rxbq[i].rxb = rxbq_create_pool(bsize, qsize);
- if (!dpld->rxbq[i].rxb) {
- mif_err("%s: ERR! %s rxbq_create_pool fail\n",
- ld->name, get_dev_name(i));
- goto err;
- }
- mif_info("%s: %s rxbq_pool created (bsize:%d, qsize:%d)\n",
- ld->name, get_dev_name(i), bsize, qsize);
- }
-
- /* Prepare a multi-purpose miscellaneous buffer */
- dpld->buff = kzalloc(dpld->size, GFP_KERNEL);
- if (!dpld->buff) {
- mif_err("%s: ERR! kzalloc dpld->buff fail\n", ld->name);
- goto err;
- }
-
- /*
- ** Retrieve DPRAM IRQ GPIO#, IRQ#, and IRQ flags
- */
- dpld->gpio_dpram_int = modem->gpio_dpram_int;
-
- if (dpctl->dpram_irq) {
- dpld->irq = dpctl->dpram_irq;
- } else {
- dpld->irq = platform_get_irq_byname(pdev, STR_DPRAM_IRQ);
- if (dpld->irq < 0) {
- mif_err("%s: ERR! no DPRAM IRQ resource\n", ld->name);
- goto err;
- }
- }
-
- if (dpctl->dpram_irq_flags)
- dpld->irq_flags = dpctl->dpram_irq_flags;
- else
- dpld->irq_flags = (IRQF_NO_SUSPEND | IRQF_TRIGGER_LOW);
-
- /*
- ** Register DPRAM interrupt handler
- */
- snprintf(dpld->irq_name, MIF_MAX_NAME_LEN, "%s_irq", ld->name);
- if (dpld->ext_op && dpld->ext_op->irq_handler)
- dpld->irq_handler = dpld->ext_op->irq_handler;
- else if (dpld->type == CP_IDPRAM)
- dpld->irq_handler = cp_idpram_irq_handler;
- else if (dpld->type == AP_IDPRAM)
- dpld->irq_handler = ap_idpram_irq_handler;
- else
- dpld->irq_handler = ext_dpram_irq_handler;
-
- ret = register_isr(dpld->irq, dpld->irq_handler, dpld->irq_flags,
- dpld->irq_name, dpld);
- if (ret)
- goto err;
-
- return ld;
-
-err:
- if (dpld) {
- if (dpld->buff)
- kfree(dpld->buff);
- kfree(dpld);
- }
-
- return NULL;
-}
-
diff --git a/drivers/misc/modem_if_u1/modem_link_device_dpram.h b/drivers/misc/modem_if_u1/modem_link_device_dpram.h
deleted file mode 100644
index 1f986c9..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_dpram.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-#ifndef __MODEM_LINK_DEVICE_DPRAM_H__
-#define __MODEM_LINK_DEVICE_DPRAM_H__
-
-#include "modem_link_device_memory.h"
-
-/*
- magic_code +
- access_enable +
- fmt_tx_head + fmt_tx_tail + fmt_tx_buff +
- raw_tx_head + raw_tx_tail + raw_tx_buff +
- fmt_rx_head + fmt_rx_tail + fmt_rx_buff +
- raw_rx_head + raw_rx_tail + raw_rx_buff +
- mbx_cp2ap +
- mbx_ap2cp
- = 2 +
- 2 +
- 2 + 2 + 1336 +
- 2 + 2 + 4564 +
- 2 + 2 + 1336 +
- 2 + 2 + 9124 +
- 2 +
- 2
- = 16384
-*/
-#define DP_16K_FMT_TX_BUFF_SZ 1336
-#define DP_16K_RAW_TX_BUFF_SZ 4564
-#define DP_16K_FMT_RX_BUFF_SZ 1336
-#define DP_16K_RAW_RX_BUFF_SZ 9124
-
-struct dpram_ipc_16k_map {
- u16 magic;
- u16 access;
-
- u16 fmt_tx_head;
- u16 fmt_tx_tail;
- u8 fmt_tx_buff[DP_16K_FMT_TX_BUFF_SZ];
-
- u16 raw_tx_head;
- u16 raw_tx_tail;
- u8 raw_tx_buff[DP_16K_RAW_TX_BUFF_SZ];
-
- u16 fmt_rx_head;
- u16 fmt_rx_tail;
- u8 fmt_rx_buff[DP_16K_FMT_RX_BUFF_SZ];
-
- u16 raw_rx_head;
- u16 raw_rx_tail;
- u8 raw_rx_buff[DP_16K_RAW_RX_BUFF_SZ];
-
- u16 mbx_cp2ap;
- u16 mbx_ap2cp;
-};
-
-struct dpram_sfr {
- u16 __iomem *int2cp;
- u16 __iomem *int2ap;
- u16 __iomem *clr_int2ap;
- u16 __iomem *reset;
- u16 __iomem *msg2cp;
- u16 __iomem *msg2ap;
-};
-
-struct dpram_ext_op;
-
-struct dpram_link_device {
- struct link_device ld;
-
- /* DPRAM address and size */
- enum dpram_type type; /* DPRAM type */
- u8 __iomem *base; /* Virtual address of DPRAM */
- u32 size; /* DPRAM size */
-
- /* Whether or not this DPRAM can go asleep */
- bool need_wake_up;
-
- /* Whether or not this DPRAM needs interrupt clearing */
- bool need_intr_clear;
-
- /* DPRAM SFR */
- u8 __iomem *sfr_base; /* Virtual address of SFR */
- struct dpram_sfr sfr;
-
- /* DPRAM IRQ GPIO# */
- unsigned gpio_dpram_int;
-
- /* DPRAM IRQ from CP */
- int irq;
- unsigned long irq_flags;
- char irq_name[MIF_MAX_NAME_LEN];
-
- /* Link to DPRAM control functions dependent on each platform */
- struct modemlink_dpram_control *dpctl;
-
- /* Physical configuration -> logical configuration */
- union {
- struct dpram_boot_map bt_map;
- struct qc_dpram_boot_map qc_bt_map;
- };
-
- struct dpram_dload_map dl_map;
- struct dpram_uload_map ul_map;
-
- /* IPC device map */
- struct dpram_ipc_map ipc_map;
-
- /* Pointers (aliases) to IPC device map */
- u16 __iomem *magic;
- u16 __iomem *access;
- struct dpram_ipc_device *dev[MAX_IPC_DEV];
- u16 __iomem *mbx2ap;
- u16 __iomem *mbx2cp;
-
- /* Wakelock for DPRAM device */
- struct wake_lock wlock;
- char wlock_name[MIF_MAX_NAME_LEN];
-
- /* For booting */
- unsigned boot_start_complete;
- struct completion dpram_init_cmd;
- struct completion modem_pif_init_done;
-
- /* For UDL */
- struct tasklet_struct ul_tsk;
- struct tasklet_struct dl_tsk;
- struct completion udl_start_complete;
- struct completion udl_cmd_complete;
- struct dpram_udl_check udl_check;
- struct dpram_udl_param udl_param;
-
- /* For CP crash dump */
- struct timer_list crash_ack_timer;
- struct completion crash_start_complete;
- struct completion crash_recv_done;
- struct timer_list crash_timer;
- int crash_rcvd; /* Count of CP crash dump packets received */
-
- /* For locking TX process */
- spinlock_t tx_lock[MAX_IPC_DEV];
-
- /* For TX under DPRAM flow control */
- struct completion req_ack_cmpl[MAX_IPC_DEV];
-
- /* For efficient RX process */
- struct tasklet_struct rx_tsk;
- struct mif_rxb_queue rxbq[MAX_IPC_DEV];
- struct io_device *iod[MAX_IPC_DEV];
- bool rx_with_skb;
-
- /* For retransmission after buffer full state */
- atomic_t res_required[MAX_IPC_DEV];
-
- /* For wake-up/sleep control */
- atomic_t accessing;
-
- /* Multi-purpose miscellaneous buffer */
- u8 *buff;
-
- /* DPRAM IPC initialization status */
- int init_status;
-
- /* Alias to device-specific IOCTL function */
- int (*ext_ioctl)(struct dpram_link_device *dpld, struct io_device *iod,
- unsigned int cmd, unsigned long arg);
-
- /* Alias to DPRAM IRQ handler */
- irqreturn_t (*irq_handler)(int irq, void *data);
-
- /* For DPRAM dump */
- void (*dpram_dump)(struct link_device *ld, char *buff);
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- char dump_path[MIF_MAX_PATH_LEN];
- char trace_path[MIF_MAX_PATH_LEN];
- struct trace_queue dump_list;
- struct trace_queue trace_list;
- struct delayed_work dump_dwork;
- struct delayed_work trace_dwork;
-#endif
-
- /* Common operations for each DPRAM */
- u16 (*recv_intr)(struct dpram_link_device *dpld);
- void (*send_intr)(struct dpram_link_device *dpld, u16 mask);
- u16 (*get_magic)(struct dpram_link_device *dpld);
- void (*set_magic)(struct dpram_link_device *dpld, u16 value);
- u16 (*get_access)(struct dpram_link_device *dpld);
- void (*set_access)(struct dpram_link_device *dpld, u16 value);
- u32 (*get_tx_head)(struct dpram_link_device *dpld, int id);
- u32 (*get_tx_tail)(struct dpram_link_device *dpld, int id);
- void (*set_tx_head)(struct dpram_link_device *dpld, int id, u32 head);
- void (*set_tx_tail)(struct dpram_link_device *dpld, int id, u32 tail);
- u8 *(*get_tx_buff)(struct dpram_link_device *dpld, int id);
- u32 (*get_tx_buff_size)(struct dpram_link_device *dpld, int id);
- u32 (*get_rx_head)(struct dpram_link_device *dpld, int id);
- u32 (*get_rx_tail)(struct dpram_link_device *dpld, int id);
- void (*set_rx_head)(struct dpram_link_device *dpld, int id, u32 head);
- void (*set_rx_tail)(struct dpram_link_device *dpld, int id, u32 tail);
- u8 *(*get_rx_buff)(struct dpram_link_device *dpld, int id);
- u32 (*get_rx_buff_size)(struct dpram_link_device *dpld, int id);
- u16 (*get_mask_req_ack)(struct dpram_link_device *dpld, int id);
- u16 (*get_mask_res_ack)(struct dpram_link_device *dpld, int id);
- u16 (*get_mask_send)(struct dpram_link_device *dpld, int id);
- void (*ipc_rx_handler)(struct dpram_link_device *dpld, u16 int2ap);
-
- /* Extended operations for various modems */
- struct dpram_ext_op *ext_op;
-};
-
-/* converts from struct link_device* to struct xxx_link_device* */
-#define to_dpram_link_device(linkdev) \
- container_of(linkdev, struct dpram_link_device, ld)
-
-struct dpram_ext_op {
- int exist;
-
- void (*init_boot_map)(struct dpram_link_device *dpld);
- void (*init_dl_map)(struct dpram_link_device *dpld);
- void (*init_ul_map)(struct dpram_link_device *dpld);
- void (*init_ipc_map)(struct dpram_link_device *dpld);
-
- int (*download_binary)(struct dpram_link_device *dpld,
- struct sk_buff *skb);
-
- void (*cp_start_handler)(struct dpram_link_device *dpld);
-
- void (*crash_log)(struct dpram_link_device *dpld);
- int (*dump_start)(struct dpram_link_device *dpld);
- int (*dump_update)(struct dpram_link_device *dpld, void *arg);
-
- int (*ioctl)(struct dpram_link_device *dpld, struct io_device *iod,
- unsigned int cmd, unsigned long arg);
-
- irqreturn_t (*irq_handler)(int irq, void *data);
- void (*clear_intr)(struct dpram_link_device *dpld);
-
- int (*wakeup)(struct dpram_link_device *dpld);
- void (*sleep)(struct dpram_link_device *dpld);
-};
-
-struct dpram_ext_op *dpram_get_ext_op(enum modem_t modem);
-
-#endif
diff --git a/drivers/misc/modem_if_u1/modem_link_device_dpram_ext_op.c b/drivers/misc/modem_if_u1/modem_link_device_dpram_ext_op.c
deleted file mode 100644
index b67063b..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_dpram_ext_op.c
+++ /dev/null
@@ -1,1309 +0,0 @@
-/*
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/time.h>
-#include <linux/interrupt.h>
-#include <linux/timer.h>
-#include <linux/wakelock.h>
-#include <linux/delay.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/vmalloc.h>
-#include <linux/if_arp.h>
-#include <linux/platform_device.h>
-#include <linux/kallsyms.h>
-#include <linux/platform_data/modem.h>
-
-#include "modem_prj.h"
-#include "modem_link_device_dpram.h"
-#include "modem_utils.h"
-
-#if defined(CONFIG_LTE_MODEM_CMC221)
-/*
-** For host (flashless) booting via DPRAM
-*/
-#define CMC22x_AP_BOOT_DOWN_DONE 0x54329876
-#define CMC22x_CP_REQ_MAIN_BIN 0xA5A5A5A5
-#define CMC22x_CP_REQ_NV_DATA 0x5A5A5A5A
-#define CMC22x_CP_DUMP_MAGIC 0xDEADDEAD
-
-#define CMC22x_HOST_DOWN_START 0x1234
-#define CMC22x_HOST_DOWN_END 0x4321
-#define CMC22x_REG_NV_DOWN_END 0xABCD
-#define CMC22x_CAL_NV_DOWN_END 0xDCBA
-
-#define CMC22x_1ST_BUFF_READY 0xAAAA
-#define CMC22x_2ND_BUFF_READY 0xBBBB
-#define CMC22x_1ST_BUFF_FULL 0x1111
-#define CMC22x_2ND_BUFF_FULL 0x2222
-
-#define CMC22x_CP_RECV_NV_END 0x8888
-#define CMC22x_CP_CAL_OK 0x4F4B
-#define CMC22x_CP_CAL_BAD 0x4552
-#define CMC22x_CP_DUMP_END 0xFADE
-
-#define CMC22x_DUMP_BUFF_SIZE 8192 /* 8 KB */
-#endif
-
-#if defined(CONFIG_CDMA_MODEM_CBP72)
-static void cbp72_init_boot_map(struct dpram_link_device *dpld)
-{
- struct dpram_boot_map *bt_map = &dpld->bt_map;
-
- bt_map->magic = (u32 *)dpld->base;
- bt_map->buff = (u8 *)(dpld->base + DP_BOOT_BUFF_OFFSET);
- bt_map->size = dpld->size - 4;
-}
-
-static void cbp72_init_dl_map(struct dpram_link_device *dpld)
-{
- dpld->dl_map.magic = (u32 *)dpld->base;
- dpld->dl_map.buff = (u8 *)(dpld->base + DP_DLOAD_BUFF_OFFSET);
-}
-
-static int _cbp72_edpram_wait_resp(struct dpram_link_device *dpld, u32 resp)
-{
- struct link_device *ld = &dpld->ld;
- int ret;
- int int2cp;
-
- ret = wait_for_completion_interruptible_timeout(
- &dpld->udl_cmd_complete, UDL_TIMEOUT);
- if (!ret) {
- mif_info("%s: ERR! No UDL_CMD_RESP!!!\n", ld->name);
- return -ENXIO;
- }
-
- int2cp = dpld->recv_intr(dpld);
- mif_debug("%s: int2cp = 0x%x\n", ld->name, int2cp);
- if (resp == int2cp || int2cp == 0xA700)
- return int2cp;
- else
- return -EINVAL;
-}
-
-static int _cbp72_edpram_download_bin(struct dpram_link_device *dpld,
- struct sk_buff *skb)
-{
- struct link_device *ld = &dpld->ld;
- struct dpram_boot_frame *bf = (struct dpram_boot_frame *)skb->data;
- u8 __iomem *buff = dpld->bt_map.buff;
- int err = 0;
-
- if (bf->len > dpld->bt_map.size) {
- mif_info("%s: ERR! Out of DPRAM boundary\n", ld->name);
- err = -EINVAL;
- goto exit;
- }
-
- if (bf->len)
- memcpy(buff, bf->data, bf->len);
-
- init_completion(&dpld->udl_cmd_complete);
-
- if (bf->req)
- dpld->send_intr(dpld, (u16)bf->req);
-
- if (bf->resp) {
- err = _cbp72_edpram_wait_resp(dpld, bf->resp);
- if (err < 0) {
- mif_info("%s: ERR! wait_response fail (%d)\n",
- ld->name, err);
- goto exit;
- } else if (err == bf->resp) {
- err = skb->len;
- }
- }
-
-exit:
- dev_kfree_skb_any(skb);
- return err;
-}
-
-static int cbp72_download_binary(struct dpram_link_device *dpld,
- struct sk_buff *skb)
-{
- if (dpld->type == EXT_DPRAM)
- return _cbp72_edpram_download_bin(dpld, skb);
- else
- return -ENODEV;
-}
-
-static int cbp72_dump_start(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
- u8 *dest = dpld->ul_map.buff;
- int ret;
-
- ld->mode = LINK_MODE_ULOAD;
-
- ret = del_timer(&dpld->crash_timer);
- wake_lock(&dpld->wlock);
-
- iowrite32(DP_MAGIC_UMDL, dpld->ul_map.magic);
-
- iowrite8((u8)START_FLAG, dest + 0);
- iowrite8((u8)0x1, dest + 1);
- iowrite8((u8)0x1, dest + 2);
- iowrite8((u8)0x0, dest + 3);
- iowrite8((u8)END_FLAG, dest + 4);
-
- init_completion(&dpld->crash_start_complete);
-
- return 0;
-}
-
-static int _cbp72_edpram_upload(struct dpram_link_device *dpld,
- struct dpram_dump_arg *dump, unsigned char __user *target)
-{
- struct link_device *ld = &dpld->ld;
- struct ul_header header;
- u8 *dest = NULL;
- u8 *buff = NULL;
- u16 plen = 0;
- int err = 0;
- int ret = 0;
- int buff_size = 0;
-
- mif_debug("\n");
-
- init_completion(&dpld->udl_cmd_complete);
-
- mif_debug("%s: req %x, resp %x", ld->name, dump->req, dump->resp);
-
- if (dump->req)
- dpld->send_intr(dpld, (u16)dump->req);
-
- if (dump->resp) {
- err = _cbp72_edpram_wait_resp(dpld, dump->resp);
- if (err < 0) {
- mif_info("%s: ERR! wait_response fail (%d)\n",
- ld->name, err);
- goto exit;
- }
- }
-
- if (dump->cmd)
- return err;
-
- dest = (u8 *)dpld->ul_map.buff;
-
- header.bop = *(u8 *)(dest);
- header.total_frame = *(u16 *)(dest + 1);
- header.curr_frame = *(u16 *)(dest + 3);
- header.len = *(u16 *)(dest + 5);
-
- mif_debug("%s: total frame:%d, current frame:%d, data len:%d\n",
- ld->name, header.total_frame, header.curr_frame, header.len);
-
- plen = min_t(u16, header.len, DP_DEFAULT_DUMP_LEN);
-
- buff = vmalloc(DP_DEFAULT_DUMP_LEN);
- if (!buff) {
- err = -ENOMEM;
- goto exit;
- }
-
- memcpy(buff, dest + sizeof(struct ul_header), plen);
- ret = copy_to_user(dump->buff, buff, plen);
- if (ret < 0) {
- mif_info("%s: ERR! dump copy_to_user fail\n", ld->name);
- err = -EIO;
- goto exit;
- }
- buff_size = plen;
-
- ret = copy_to_user(target + 4, &buff_size, sizeof(int));
- if (ret < 0) {
- mif_info("%s: ERR! size copy_to_user fail\n", ld->name);
- err = -EIO;
- goto exit;
- }
-
- vfree(buff);
- return err;
-
-exit:
- if (buff)
- vfree(buff);
- iowrite32(0, dpld->ul_map.magic);
- wake_unlock(&dpld->wlock);
- return err;
-}
-
-static int cbp72_dump_update(struct dpram_link_device *dpld, void *arg)
-{
- struct link_device *ld = &dpld->ld;
- struct dpram_dump_arg dump;
- int ret;
-
- ret = copy_from_user(&dump, (void __user *)arg, sizeof(dump));
- if (ret < 0) {
- mif_info("%s: ERR! copy_from_user fail\n", ld->name);
- return ret;
- }
-
- return _cbp72_edpram_upload(dpld, &dump, (unsigned char __user *)arg);
-}
-
-static int cbp72_set_dl_magic(struct link_device *ld, struct io_device *iod)
-{
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
-
- ld->mode = LINK_MODE_DLOAD;
-
- iowrite32(DP_MAGIC_DMDL, dpld->dl_map.magic);
-
- return 0;
-}
-
-static int cbp72_ioctl(struct dpram_link_device *dpld, struct io_device *iod,
- unsigned int cmd, unsigned long arg)
-{
- struct link_device *ld = &dpld->ld;
- int err = 0;
-
- switch (cmd) {
- case IOCTL_MODEM_DL_START:
- err = cbp72_set_dl_magic(ld, iod);
- if (err < 0)
- mif_err("%s: ERR! set_dl_magic fail\n", ld->name);
- break;
-
- default:
- mif_err("%s: ERR! invalid cmd 0x%08X\n", ld->name, cmd);
- err = -EINVAL;
- break;
- }
-
- return err;
-}
-#endif
-
-#if defined(CONFIG_LTE_MODEM_CMC221)
-/* For CMC221 SFR for IDPRAM */
-#define CMC_INT2CP_REG 0x10 /* Interrupt to CP */
-#define CMC_INT2AP_REG 0x50
-#define CMC_CLR_INT_REG 0x28 /* Clear Interrupt to AP */
-#define CMC_RESET_REG 0x3C
-#define CMC_PUT_REG 0x40 /* AP->CP reg for hostbooting */
-#define CMC_GET_REG 0x50 /* CP->AP reg for hostbooting */
-
-static void cmc221_init_boot_map(struct dpram_link_device *dpld)
-{
- struct dpram_boot_map *bt_map = &dpld->bt_map;
-
- bt_map->buff = dpld->base;
- bt_map->size = dpld->size;
- bt_map->req = (u32 *)(dpld->base + DP_BOOT_REQ_OFFSET);
- bt_map->resp = (u32 *)(dpld->base + DP_BOOT_RESP_OFFSET);
-}
-
-static void cmc221_init_dl_map(struct dpram_link_device *dpld)
-{
- dpld->dl_map.magic = (u32 *)dpld->base;
- dpld->dl_map.buff = (u8 *)dpld->base;
-}
-
-static void cmc221_init_ul_map(struct dpram_link_device *dpld)
-{
- dpld->ul_map.magic = (u32 *)dpld->base;
- dpld->ul_map.buff = (u8 *)dpld->base;
-}
-
-static void cmc221_init_ipc_map(struct dpram_link_device *dpld)
-{
- struct dpram_ipc_16k_map *dpram_map;
- struct dpram_ipc_device *dev;
- u8 __iomem *sfr_base = dpld->sfr_base;
-
- dpram_map = (struct dpram_ipc_16k_map *)dpld->base;
-
- /* Magic code and access enable fields */
- dpld->ipc_map.magic = (u16 __iomem *)&dpram_map->magic;
- dpld->ipc_map.access = (u16 __iomem *)&dpram_map->access;
-
- /* FMT */
- dev = &dpld->ipc_map.dev[IPC_FMT];
-
- strcpy(dev->name, "FMT");
- dev->id = IPC_FMT;
-
- dev->txq.head = (u16 __iomem *)&dpram_map->fmt_tx_head;
- dev->txq.tail = (u16 __iomem *)&dpram_map->fmt_tx_tail;
- dev->txq.buff = (u8 __iomem *)&dpram_map->fmt_tx_buff[0];
- dev->txq.size = DP_16K_FMT_TX_BUFF_SZ;
-
- dev->rxq.head = (u16 __iomem *)&dpram_map->fmt_rx_head;
- dev->rxq.tail = (u16 __iomem *)&dpram_map->fmt_rx_tail;
- dev->rxq.buff = (u8 __iomem *)&dpram_map->fmt_rx_buff[0];
- dev->rxq.size = DP_16K_FMT_RX_BUFF_SZ;
-
- dev->mask_req_ack = INT_MASK_REQ_ACK_F;
- dev->mask_res_ack = INT_MASK_RES_ACK_F;
- dev->mask_send = INT_MASK_SEND_F;
-
- /* RAW */
- dev = &dpld->ipc_map.dev[IPC_RAW];
-
- strcpy(dev->name, "RAW");
- dev->id = IPC_RAW;
-
- dev->txq.head = (u16 __iomem *)&dpram_map->raw_tx_head;
- dev->txq.tail = (u16 __iomem *)&dpram_map->raw_tx_tail;
- dev->txq.buff = (u8 __iomem *)&dpram_map->raw_tx_buff[0];
- dev->txq.size = DP_16K_RAW_TX_BUFF_SZ;
-
- dev->rxq.head = (u16 __iomem *)&dpram_map->raw_rx_head;
- dev->rxq.tail = (u16 __iomem *)&dpram_map->raw_rx_tail;
- dev->rxq.buff = (u8 __iomem *)&dpram_map->raw_rx_buff[0];
- dev->rxq.size = DP_16K_RAW_RX_BUFF_SZ;
-
- dev->mask_req_ack = INT_MASK_REQ_ACK_R;
- dev->mask_res_ack = INT_MASK_RES_ACK_R;
- dev->mask_send = INT_MASK_SEND_R;
-
- /* SFR */
- dpld->sfr.int2cp = (u16 __iomem *)(sfr_base + CMC_INT2CP_REG);
- dpld->sfr.int2ap = (u16 __iomem *)(sfr_base + CMC_INT2AP_REG);
- dpld->sfr.clr_int2ap = (u16 __iomem *)(sfr_base + CMC_CLR_INT_REG);
- dpld->sfr.reset = (u16 __iomem *)(sfr_base + CMC_RESET_REG);
- dpld->sfr.msg2cp = (u16 __iomem *)(sfr_base + CMC_PUT_REG);
- dpld->sfr.msg2ap = (u16 __iomem *)(sfr_base + CMC_GET_REG);
-
- /* Interrupt ports */
- dpld->ipc_map.mbx_cp2ap = dpld->sfr.int2ap;
- dpld->ipc_map.mbx_ap2cp = dpld->sfr.int2cp;
-}
-
-static inline void cmc221_idpram_reset(struct dpram_link_device *dpld)
-{
- iowrite16(1, dpld->sfr.reset);
-}
-
-static inline u16 cmc221_idpram_recv_msg(struct dpram_link_device *dpld)
-{
- return ioread16(dpld->sfr.msg2ap);
-}
-
-static inline void cmc221_idpram_send_msg(struct dpram_link_device *dpld,
- u16 msg)
-{
- iowrite16(msg, dpld->sfr.msg2cp);
-}
-
-static int _cmc221_idpram_wait_resp(struct dpram_link_device *dpld, u32 resp)
-{
- struct link_device *ld = &dpld->ld;
- int count = 50000;
- u32 rcvd = 0;
-
- if (resp == CMC22x_CP_REQ_NV_DATA) {
- while (1) {
- rcvd = ioread32(dpld->bt_map.resp);
- if (rcvd == resp)
- break;
-
- rcvd = cmc221_idpram_recv_msg(dpld);
- if (rcvd == 0x9999) {
- mif_info("%s: Invalid resp 0x%04X\n",
- ld->name, rcvd);
- panic("CP Crash ... BAD CRC in CP");
- }
-
- if (count-- < 0) {
- mif_info("%s: Invalid resp 0x%08X\n",
- ld->name, rcvd);
- return -EAGAIN;
- }
-
- udelay(100);
- }
- } else {
- while (1) {
- rcvd = cmc221_idpram_recv_msg(dpld);
-
- if (rcvd == resp)
- break;
-
- if (resp == CMC22x_CP_RECV_NV_END &&
- rcvd == CMC22x_CP_CAL_BAD) {
- mif_info("%s: CMC22x_CP_CAL_BAD\n", ld->name);
- break;
- }
-
- if (count-- < 0) {
- mif_info("%s: Invalid resp 0x%04X\n",
- ld->name, rcvd);
- return -EAGAIN;
- }
-
- udelay(100);
- }
- }
-
- return rcvd;
-}
-
-static int _cmc221_idpram_send_boot(struct dpram_link_device *dpld, void *arg)
-{
- struct link_device *ld = &dpld->ld;
- u8 __iomem *bt_buff = dpld->bt_map.buff;
- struct dpram_boot_img cp_img;
- u8 *img_buff = NULL;
- int err = 0;
- int cnt = 0;
-
- ld->mode = LINK_MODE_BOOT;
-
- dpld->dpctl->setup_speed(DPRAM_SPEED_LOW);
-
- /* Test memory... After testing, memory is cleared. */
- if (mif_test_dpram(ld->name, bt_buff, dpld->bt_map.size) < 0) {
- mif_info("%s: ERR! mif_test_dpram fail!\n", ld->name);
- ld->mode = LINK_MODE_OFFLINE;
- return -EIO;
- }
-
- memset(&cp_img, 0, sizeof(struct dpram_boot_img));
-
- /* Get information about the boot image */
- err = copy_from_user(&cp_img, arg, sizeof(cp_img));
- mif_info("%s: CP image addr = 0x%08X, size = %d\n",
- ld->name, (int)cp_img.addr, cp_img.size);
-
- /* Alloc a buffer for the boot image */
- img_buff = kzalloc(dpld->bt_map.size, GFP_KERNEL);
- if (!img_buff) {
- mif_info("%s: ERR! kzalloc fail\n", ld->name);
- ld->mode = LINK_MODE_OFFLINE;
- return -ENOMEM;
- }
-
- /* Copy boot image from the user space to the image buffer */
- err = copy_from_user(img_buff, cp_img.addr, cp_img.size);
-
- /* Copy boot image to DPRAM and verify it */
- memcpy(bt_buff, img_buff, cp_img.size);
- if (memcmp16_to_io(bt_buff, img_buff, cp_img.size)) {
- mif_info("%s: ERR! Boot may be broken!!!\n", ld->name);
- goto err;
- }
-
- cmc221_idpram_reset(dpld);
- usleep_range(1000, 2000);
-
- if (cp_img.mode == HOST_BOOT_MODE_NORMAL) {
- mif_info("%s: HOST_BOOT_MODE_NORMAL\n", ld->name);
- mif_info("%s: Send req 0x%08X\n", ld->name, cp_img.req);
- iowrite32(cp_img.req, dpld->bt_map.req);
-
- /* Wait for cp_img.resp for up to 2 seconds */
- mif_info("%s: Wait resp 0x%08X\n", ld->name, cp_img.resp);
- while (ioread32(dpld->bt_map.resp) != cp_img.resp) {
- cnt++;
- usleep_range(1000, 2000);
-
- if (cnt > 1000) {
- mif_info("%s: ERR! Invalid resp 0x%08X\n",
- ld->name, ioread32(dpld->bt_map.resp));
- goto err;
- }
- }
- } else {
- mif_info("%s: HOST_BOOT_MODE_DUMP\n", ld->name);
- }
-
- kfree(img_buff);
-
- mif_info("%s: Send BOOT done\n", ld->name);
-
- dpld->dpctl->setup_speed(DPRAM_SPEED_HIGH);
-
- return 0;
-
-err:
- ld->mode = LINK_MODE_OFFLINE;
- kfree(img_buff);
-
- mif_info("%s: ERR! Boot send fail!!!\n", ld->name);
- return -EIO;
-}
-
-static int cmc221_download_boot(struct dpram_link_device *dpld, void *arg)
-{
- if (dpld->type == CP_IDPRAM)
- return _cmc221_idpram_send_boot(dpld, arg);
- else
- return -ENODEV;
-}
-
-static int _cmc221_idpram_download_bin(struct dpram_link_device *dpld,
- struct sk_buff *skb)
-{
- int err = 0;
- int ret = 0;
- struct link_device *ld = &dpld->ld;
- struct dpram_boot_frame *bf = (struct dpram_boot_frame *)skb->data;
- u8 __iomem *buff = (dpld->bt_map.buff + bf->offset);
-
- if ((bf->offset + bf->len) > dpld->bt_map.size) {
- mif_info("%s: ERR! Out of DPRAM boundary\n", ld->name);
- err = -EINVAL;
- goto exit;
- }
-
- if (bf->len)
- memcpy(buff, bf->data, bf->len);
-
- if (bf->req)
- cmc221_idpram_send_msg(dpld, (u16)bf->req);
-
- if (bf->resp) {
- err = _cmc221_idpram_wait_resp(dpld, bf->resp);
- if (err < 0)
- mif_info("%s: ERR! wait_response fail (err %d)\n",
- ld->name, err);
- }
-
- if (bf->req == CMC22x_CAL_NV_DOWN_END)
- mif_info("%s: CMC22x_CAL_NV_DOWN_END\n", ld->name);
-
-exit:
- if (err < 0)
- ret = err;
- else
- ret = skb->len;
-
- dev_kfree_skb_any(skb);
-
- return ret;
-}
-
-static int cmc221_download_binary(struct dpram_link_device *dpld,
- struct sk_buff *skb)
-{
- if (dpld->type == CP_IDPRAM)
- return _cmc221_idpram_download_bin(dpld, skb);
- else
- return -ENODEV;
-}
-
-static int cmc221_dump_start(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
- int ret;
-
- ld->mode = LINK_MODE_ULOAD;
-
- ret = del_timer(&dpld->crash_timer);
- wake_lock(&dpld->wlock);
-
- dpld->crash_rcvd = 0;
- iowrite32(CMC22x_CP_DUMP_MAGIC, dpld->ul_map.magic);
-
- init_completion(&dpld->crash_start_complete);
-
- return 0;
-}
-
-static void _cmc221_idpram_wait_dump(unsigned long arg)
-{
- struct dpram_link_device *dpld = (struct dpram_link_device *)arg;
- u16 msg;
-
- msg = cmc221_idpram_recv_msg(dpld);
- if (msg == CMC22x_CP_DUMP_END) {
- complete_all(&dpld->crash_recv_done);
- return;
- }
-
- if (((dpld->crash_rcvd & 0x1) == 0) && (msg == CMC22x_1ST_BUFF_FULL)) {
- complete_all(&dpld->crash_recv_done);
- return;
- }
-
- if (((dpld->crash_rcvd & 0x1) == 1) && (msg == CMC22x_2ND_BUFF_FULL)) {
- complete_all(&dpld->crash_recv_done);
- return;
- }
-
- mif_add_timer(&dpld->crash_timer, DUMP_WAIT_TIMEOUT,
- _cmc221_idpram_wait_dump, (unsigned long)dpld);
-}
-
-static int _cmc221_idpram_upload(struct dpram_link_device *dpld,
- struct dpram_dump_arg *dumparg)
-{
- struct link_device *ld = &dpld->ld;
- int ret;
- u8 __iomem *src;
- int buff_size = CMC22x_DUMP_BUFF_SIZE;
-
- if ((dpld->crash_rcvd & 0x1) == 0)
- cmc221_idpram_send_msg(dpld, CMC22x_1ST_BUFF_READY);
- else
- cmc221_idpram_send_msg(dpld, CMC22x_2ND_BUFF_READY);
-
- init_completion(&dpld->crash_recv_done);
-
- mif_add_timer(&dpld->crash_timer, DUMP_WAIT_TIMEOUT,
- _cmc221_idpram_wait_dump, (unsigned long)dpld);
-
- ret = wait_for_completion_interruptible_timeout(
- &dpld->crash_recv_done, DUMP_TIMEOUT);
- if (!ret) {
- mif_info("%s: ERR! CP didn't send dump data!!!\n", ld->name);
- goto err_out;
- }
-
- if (cmc221_idpram_recv_msg(dpld) == CMC22x_CP_DUMP_END) {
- mif_info("%s: CMC22x_CP_DUMP_END\n", ld->name);
- return 0;
- }
-
- if ((dpld->crash_rcvd & 0x1) == 0)
- src = dpld->ul_map.buff;
- else
- src = dpld->ul_map.buff + CMC22x_DUMP_BUFF_SIZE;
-
- memcpy(dpld->buff, src, buff_size);
-
- ret = copy_to_user(dumparg->buff, dpld->buff, buff_size);
- if (ret < 0) {
- mif_info("%s: ERR! copy_to_user fail\n", ld->name);
- goto err_out;
- }
-
- dpld->crash_rcvd++;
- return buff_size;
-
-err_out:
- return -EIO;
-}
-
-static int cmc221_dump_update(struct dpram_link_device *dpld, void *arg)
-{
- struct link_device *ld = &dpld->ld;
- struct dpram_dump_arg dump;
- int ret;
-
- ret = copy_from_user(&dump, (void __user *)arg, sizeof(dump));
- if (ret < 0) {
- mif_info("%s: ERR! copy_from_user fail\n", ld->name);
- return ret;
- }
-
- return _cmc221_idpram_upload(dpld, &dump);
-}
-
-static int cmc221_ioctl(struct dpram_link_device *dpld, struct io_device *iod,
- unsigned int cmd, unsigned long arg)
-{
- struct link_device *ld = &dpld->ld;
- int err = 0;
-
- switch (cmd) {
- case IOCTL_DPRAM_SEND_BOOT:
- err = cmc221_download_boot(dpld, (void *)arg);
- if (err < 0)
- mif_info("%s: ERR! download_boot fail\n", ld->name);
- break;
-
- default:
- mif_err("%s: ERR! invalid cmd 0x%08X\n", ld->name, cmd);
- err = -EINVAL;
- break;
- }
-
- return err;
-}
-
-static void cmc221_idpram_clr_int2ap(struct dpram_link_device *dpld)
-{
- iowrite16(0xFFFF, dpld->sfr.clr_int2ap);
-}
-
-static int cmc221_idpram_wakeup(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
- struct modem_data *mdm_data = ld->mdm_data;
- int cnt = 0;
-
- gpio_set_value(mdm_data->gpio_dpram_wakeup, 1);
-
- while (!gpio_get_value(mdm_data->gpio_dpram_status)) {
- if (cnt++ > 10) {
- if (in_irq())
- mif_err("ERR! gpio_dpram_status == 0 in IRQ\n");
- else
- mif_err("ERR! gpio_dpram_status == 0\n");
- return -EACCES;
- }
-
- mif_info("gpio_dpram_status == 0 (cnt %d)\n", cnt);
- if (in_interrupt())
- udelay(1000);
- else
- usleep_range(1000, 2000);
- }
-
- return 0;
-}
-
-static void cmc221_idpram_sleep(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
- gpio_set_value(ld->mdm_data->gpio_dpram_wakeup, 0);
-}
-#endif
-
-#if defined(CONFIG_CDMA_MODEM_MDM6600) || defined(CONFIG_GSM_MODEM_ESC6270)
-enum qc_dload_tag {
- QC_DLOAD_TAG_NONE = 0,
- QC_DLOAD_TAG_BIN,
- QC_DLOAD_TAG_NV,
- QC_DLOAD_TAG_MAX
-};
-
-static void qc_dload_task(unsigned long data);
-
-static void qc_init_boot_map(struct dpram_link_device *dpld)
-{
- struct qc_dpram_boot_map *qbt_map = &dpld->qc_bt_map;
- struct modemlink_dpram_control *dpctl = dpld->dpctl;
-
- qbt_map->buff = dpld->base;
- qbt_map->frame_size = (u16 *)(dpld->base + dpctl->boot_size_offset);
- qbt_map->tag = (u16 *)(dpld->base + dpctl->boot_tag_offset);
- qbt_map->count = (u16 *)(dpld->base + dpctl->boot_count_offset);
-
- tasklet_init(&dpld->dl_tsk, qc_dload_task, (unsigned long)dpld);
-}
-
-static int qc_prepare_download(struct dpram_link_device *dpld)
-{
- int retval = 0;
- int count = 0;
-
- while (1) {
- if (dpld->udl_check.copy_start) {
- dpld->udl_check.copy_start = 0;
- break;
- }
-
- usleep_range(10000, 11000);
-
- count++;
- if (count > 300) {
- mif_err("ERR! count %d\n", count);
- return -1;
- }
- }
-
- return retval;
-}
-
-static void _qc_do_download(struct dpram_link_device *dpld,
- struct dpram_udl_param *param)
-{
- struct qc_dpram_boot_map *qbt_map = &dpld->qc_bt_map;
-
- if (param->size <= dpld->dpctl->max_boot_frame_size) {
- memcpy(qbt_map->buff, param->addr, param->size);
- iowrite16(param->size, qbt_map->frame_size);
- iowrite16(param->tag, qbt_map->tag);
- iowrite16(param->count, qbt_map->count);
- dpld->send_intr(dpld, 0xDB12);
- } else {
- mif_info("param->size %d\n", param->size);
- }
-}
-
-static int _qc_download(struct dpram_link_device *dpld, void *arg,
- enum qc_dload_tag tag)
-{
- int retval = 0;
- int count = 0;
- int cnt_limit;
- unsigned char *img;
- struct dpram_udl_param param;
-
- retval = copy_from_user((void *)&param, (void *)arg, sizeof(param));
- if (retval < 0) {
- mif_err("ERR! copy_from_user fail\n");
- return -1;
- }
-
- img = vmalloc(param.size);
- if (!img) {
- mif_err("ERR! vmalloc fail\n");
- return -1;
- }
- memset(img, 0, param.size);
- memcpy(img, param.addr, param.size);
-
- dpld->udl_check.total_size = param.size;
- dpld->udl_check.rest_size = param.size;
- dpld->udl_check.send_size = 0;
- dpld->udl_check.copy_complete = 0;
-
- dpld->udl_param.addr = img;
- dpld->udl_param.size = dpld->dpctl->max_boot_frame_size;
- if (tag == QC_DLOAD_TAG_NV)
- dpld->udl_param.count = 1;
- else
- dpld->udl_param.count = param.count;
- dpld->udl_param.tag = tag;
-
- if (dpld->udl_check.rest_size < dpld->dpctl->max_boot_frame_size)
- dpld->udl_param.size = dpld->udl_check.rest_size;
-
- /* Download image (binary or NV) */
- _qc_do_download(dpld, &dpld->udl_param);
-
- /* Wait for completion
- */
- if (tag == QC_DLOAD_TAG_NV)
- cnt_limit = 200;
- else
- cnt_limit = 1000;
-
- while (1) {
- if (dpld->udl_check.copy_complete) {
- dpld->udl_check.copy_complete = 0;
- retval = 0;
- break;
- }
-
- usleep_range(10000, 11000);
-
- count++;
- if (count > cnt_limit) {
- dpld->udl_check.total_size = 0;
- dpld->udl_check.rest_size = 0;
- mif_err("ERR! count %d\n", count);
- retval = -1;
- break;
- }
- }
-
- vfree(img);
-
- return retval;
-}
-
-static int qc_download_binary(struct dpram_link_device *dpld, void *arg)
-{
- return _qc_download(dpld, arg, QC_DLOAD_TAG_BIN);
-}
-
-static int qc_download_nv(struct dpram_link_device *dpld, void *arg)
-{
- return _qc_download(dpld, arg, QC_DLOAD_TAG_NV);
-}
-
-static void qc_dload_task(unsigned long data)
-{
- struct dpram_link_device *dpld = (struct dpram_link_device *)data;
-
- dpld->udl_check.send_size += dpld->udl_param.size;
- dpld->udl_check.rest_size -= dpld->udl_param.size;
-
- dpld->udl_param.addr += dpld->udl_param.size;
-
- if (dpld->udl_check.send_size >= dpld->udl_check.total_size) {
- dpld->udl_check.copy_complete = 1;
- dpld->udl_param.tag = 0;
- return;
- }
-
- if (dpld->udl_check.rest_size < dpld->dpctl->max_boot_frame_size)
- dpld->udl_param.size = dpld->udl_check.rest_size;
-
- dpld->udl_param.count += 1;
-
- _qc_do_download(dpld, &dpld->udl_param);
-}
-
-static void qc_dload_cmd_handler(struct dpram_link_device *dpld, u16 cmd)
-{
- switch (cmd) {
- case 0x1234:
- dpld->udl_check.copy_start = 1;
- break;
-
- case 0xDBAB:
- if (dpld->udl_check.total_size)
- tasklet_schedule(&dpld->dl_tsk);
- break;
-
- case 0xABCD:
- dpld->udl_check.boot_complete = 1;
- break;
-
- default:
- mif_err("ERR! unknown command 0x%04X\n", cmd);
- }
-}
-
-static int qc_boot_start(struct dpram_link_device *dpld)
-{
- u16 mask = 0;
- int count = 0;
-
- /* Send interrupt -> '0x4567' */
- mask = 0x4567;
- dpld->send_intr(dpld, mask);
-
- while (1) {
- if (dpld->udl_check.boot_complete) {
- dpld->udl_check.boot_complete = 0;
- break;
- }
-
- usleep_range(10000, 11000);
-
- count++;
- if (count > 200) {
- mif_err("ERR! count %d\n", count);
- return -1;
- }
- }
-
- return 0;
-}
-
-static int qc_boot_post_process(struct dpram_link_device *dpld)
-{
- int count = 0;
-
- while (1) {
- if (dpld->boot_start_complete) {
- dpld->boot_start_complete = 0;
- break;
- }
-
- usleep_range(10000, 11000);
-
- count++;
- if (count > 200) {
- mif_err("ERR! count %d\n", count);
- return -1;
- }
- }
-
- return 0;
-}
-
-static void qc_start_handler(struct dpram_link_device *dpld)
-{
- /*
- * INT_MASK_VALID | INT_MASK_CMD | INT_MASK_CP_AIRPLANE_BOOT |
- * INT_MASK_CP_AP_ANDROID | INT_MASK_CMD_INIT_END
- */
- u16 mask = (0x0080 | 0x0040 | 0x1000 | 0x0100 | 0x0002);
-
- dpld->boot_start_complete = 1;
-
- /* Send INIT_END code to CP */
- mif_info("send 0x%04X (INIT_END)\n", mask);
-
- dpld->send_intr(dpld, mask);
-}
-
-static void qc_crash_log(struct dpram_link_device *dpld)
-{
- struct link_device *ld = &dpld->ld;
- static unsigned char buf[151];
- u8 __iomem *data = NULL;
-
- data = dpld->get_rx_buff(dpld, IPC_FMT);
- memcpy(buf, data, (sizeof(buf) - 1));
-
- mif_info("PHONE ERR MSG\t| %s Crash\n", ld->mdm_data->name);
- mif_info("PHONE ERR MSG\t| %s\n", buf);
-}
-
-static int _qc_data_upload(struct dpram_link_device *dpld,
- struct dpram_udl_param *param)
-{
- struct qc_dpram_boot_map *qbt_map = &dpld->qc_bt_map;
- int retval = 0;
- u16 intval = 0;
- int count = 0;
-
- while (1) {
- if (!gpio_get_value(dpld->gpio_dpram_int)) {
- intval = dpld->recv_intr(dpld);
- if (intval == 0xDBAB) {
- break;
- } else {
- mif_err("intr 0x%08x\n", intval);
- return -1;
- }
- }
-
- usleep_range(1000, 2000);
-
- count++;
- if (count > 200) {
- mif_err("<%s:%d>\n", __func__, __LINE__);
- return -1;
- }
- }
-
- param->size = ioread16(qbt_map->frame_size);
- memcpy(param->addr, qbt_map->buff, param->size);
- param->tag = ioread16(qbt_map->tag);
- param->count = ioread16(qbt_map->count);
-
- dpld->send_intr(dpld, 0xDB12);
-
- return retval;
-}
-
-static int qc_uload_step1(struct dpram_link_device *dpld)
-{
- int retval = 0;
- int count = 0;
- u16 intval = 0;
- u16 mask = 0;
-
- mif_info("+---------------------------------------------+\n");
- mif_info("| UPLOAD PHONE SDRAM |\n");
- mif_info("+---------------------------------------------+\n");
-
- while (1) {
- if (!gpio_get_value(dpld->gpio_dpram_int)) {
- intval = dpld->recv_intr(dpld);
- mif_info("intr 0x%04x\n", intval);
- if (intval == 0x1234) {
- break;
- } else {
- mif_info("ERR! invalid intr\n");
- return -1;
- }
- }
-
- usleep_range(1000, 2000);
-
- count++;
- if (count > 200) {
- intval = dpld->recv_intr(dpld);
- mif_info("count %d, intr 0x%04x\n", count, intval);
- if (intval == 0x1234)
- break;
- return -1;
- }
- }
-
- mask = 0xDEAD;
- dpld->send_intr(dpld, mask);
-
- return retval;
-}
-
-static int qc_uload_step2(struct dpram_link_device *dpld, void *arg)
-{
- int retval = 0;
- struct dpram_udl_param param;
-
- retval = copy_from_user((void *)&param, (void *)arg, sizeof(param));
- if (retval < 0) {
- mif_err("ERR! copy_from_user fail (err %d)\n", retval);
- return -1;
- }
-
- retval = _qc_data_upload(dpld, &param);
- if (retval < 0) {
- mif_err("ERR! _qc_data_upload fail (err %d)\n", retval);
- return -1;
- }
-
- if (!(param.count % 500))
- mif_info("param->count = %d\n", param.count);
-
- if (param.tag == 4) {
- enable_irq(dpld->irq);
- mif_info("param->tag = %d\n", param.tag);
- }
-
- retval = copy_to_user((unsigned long *)arg, &param, sizeof(param));
- if (retval < 0) {
- mif_err("ERR! copy_to_user fail (err %d)\n", retval);
- return -1;
- }
-
- return retval;
-}
-
-static int qc_ioctl(struct dpram_link_device *dpld, struct io_device *iod,
- unsigned int cmd, unsigned long arg)
-{
- struct link_device *ld = &dpld->ld;
- int err = 0;
-
- switch (cmd) {
- case IOCTL_DPRAM_PHONE_POWON:
- err = qc_prepare_download(dpld);
- if (err < 0)
- mif_info("%s: ERR! prepare_download fail\n", ld->name);
- break;
-
- case IOCTL_DPRAM_PHONEIMG_LOAD:
- err = qc_download_binary(dpld, (void *)arg);
- if (err < 0)
- mif_info("%s: ERR! download_binary fail\n", ld->name);
- break;
-
- case IOCTL_DPRAM_NVDATA_LOAD:
- err = qc_download_nv(dpld, (void *)arg);
- if (err < 0)
- mif_info("%s: ERR! download_nv fail\n", ld->name);
- break;
-
- case IOCTL_DPRAM_PHONE_BOOTSTART:
- err = qc_boot_start(dpld);
- if (err < 0) {
- mif_info("%s: ERR! boot_start fail\n", ld->name);
- break;
- }
-
- err = qc_boot_post_process(dpld);
- if (err < 0)
- mif_info("%s: ERR! boot_post_process fail\n", ld->name);
-
- break;
-
- case IOCTL_DPRAM_PHONE_UPLOAD_STEP1:
- disable_irq_nosync(dpld->irq);
- err = qc_uload_step1(dpld);
- if (err < 0) {
- enable_irq(dpld->irq);
- mif_info("%s: ERR! upload_step1 fail\n", ld->name);
- }
- break;
-
- case IOCTL_DPRAM_PHONE_UPLOAD_STEP2:
- err = qc_uload_step2(dpld, (void *)arg);
- if (err < 0) {
- enable_irq(dpld->irq);
- mif_info("%s: ERR! upload_step2 fail\n", ld->name);
- }
- break;
-
- default:
- mif_err("%s: ERR! invalid cmd 0x%08X\n", ld->name, cmd);
- err = -EINVAL;
- break;
- }
-
- return err;
-}
-
-static irqreturn_t qc_dpram_irq_handler(int irq, void *data)
-{
- struct dpram_link_device *dpld = (struct dpram_link_device *)data;
- struct link_device *ld = (struct link_device *)&dpld->ld;
- u16 int2ap = 0;
-
- if (unlikely(ld->mode == LINK_MODE_OFFLINE))
- return IRQ_HANDLED;
-
- int2ap = dpld->recv_intr(dpld);
-
- if (int2ap == INT_POWERSAFE_FAIL) {
- mif_info("%s: int2ap == INT_POWERSAFE_FAIL\n", ld->name);
- goto exit;
- }
-
- if (int2ap == 0x1234 || int2ap == 0xDBAB || int2ap == 0xABCD) {
- qc_dload_cmd_handler(dpld, int2ap);
- goto exit;
- } else if (int2ap == 0x4321 || int2ap == 0x5432) {
- mif_err("%s: ERR! CP err cmd (err %d)\n", __func__, int2ap);
- goto exit;
- }
-
- if (likely(INT_VALID(int2ap)))
- dpld->ipc_rx_handler(dpld, int2ap);
- else
- mif_info("%s: ERR! invalid intr 0x%04X\n", ld->name, int2ap);
-
-exit:
- return IRQ_HANDLED;
-}
-#endif
-
-static struct dpram_ext_op ext_op_set[] = {
-#ifdef CONFIG_CDMA_MODEM_CBP72
- [VIA_CBP72] = {
- .exist = 1,
- .init_boot_map = cbp72_init_boot_map,
- .init_dl_map = cbp72_init_dl_map,
- .download_binary = cbp72_download_binary,
- .dump_start = cbp72_dump_start,
- .dump_update = cbp72_dump_update,
- .ioctl = cbp72_ioctl,
- },
-#endif
-#ifdef CONFIG_LTE_MODEM_CMC221
- [SEC_CMC221] = {
- .exist = 1,
- .init_boot_map = cmc221_init_boot_map,
- .init_dl_map = cmc221_init_dl_map,
- .init_ul_map = cmc221_init_ul_map,
- .init_ipc_map = cmc221_init_ipc_map,
- .download_binary = cmc221_download_binary,
- .dump_start = cmc221_dump_start,
- .dump_update = cmc221_dump_update,
- .ioctl = cmc221_ioctl,
- .clear_intr = cmc221_idpram_clr_int2ap,
- .wakeup = cmc221_idpram_wakeup,
- .sleep = cmc221_idpram_sleep,
- },
-#endif
-#if defined(CONFIG_CDMA_MODEM_MDM6600)
- [QC_MDM6600] = {
- .exist = 1,
- .init_boot_map = qc_init_boot_map,
- .cp_start_handler = qc_start_handler,
- .crash_log = qc_crash_log,
- .ioctl = qc_ioctl,
- .irq_handler = qc_dpram_irq_handler,
- },
-#endif
-#if defined(CONFIG_GSM_MODEM_ESC6270)
- [QC_ESC6270] = {
- .exist = 1,
- .init_boot_map = qc_init_boot_map,
- .cp_start_handler = qc_start_handler,
- .crash_log = qc_crash_log,
- .ioctl = qc_ioctl,
- .irq_handler = qc_dpram_irq_handler,
- },
-#endif
-};
-
-struct dpram_ext_op *dpram_get_ext_op(enum modem_t modem)
-{
- if (ext_op_set[modem].exist)
- return &ext_op_set[modem];
- else
- return NULL;
-}
-
diff --git a/drivers/misc/modem_if_u1/modem_link_device_hsic.c b/drivers/misc/modem_if_u1/modem_link_device_hsic.c
deleted file mode 100644
index 955c620..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_hsic.c
+++ /dev/null
@@ -1,1604 +0,0 @@
-/* /linux/drivers/new_modem_if/link_dev_usb.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/device.h>
-#include <linux/sched.h>
-#include <linux/irq.h>
-#include <linux/poll.h>
-#include <linux/gpio.h>
-#include <linux/if_arp.h>
-#include <linux/usb.h>
-#include <linux/usb/cdc.h>
-#include <linux/pm_runtime.h>
-#include <linux/cdev.h>
-#include <linux/platform_device.h>
-#include <linux/wakelock.h>
-#include <linux/suspend.h>
-#include <linux/version.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include "modem_link_device_hsic.h"
-#include "modem_utils.h"
-
-static struct modem_ctl *if_usb_get_modemctl(struct link_pm_data *pm_data);
-static int link_pm_runtime_get_active(struct link_pm_data *pm_data);
-static int usb_tx_urb_with_skb(struct usb_device *usbdev, struct sk_buff *skb,
- struct if_usb_devdata *pipe_data);
-#ifdef FOR_TEGRA
-#define ehci_vendor_txfilltuning tegra_ehci_txfilltuning
-#else
-#define ehci_vendor_txfilltuning()
-#endif
-static void usb_rx_complete(struct urb *urb);
-
-static int start_ipc(struct link_device *ld, struct io_device *iod)
-{
- struct sk_buff *skb;
- char data[1] = {'a'};
- int err;
- struct usb_link_device *usb_ld = to_usb_link_device(ld);
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
- struct device *dev = &usb_ld->usbdev->dev;
- struct if_usb_devdata *pipe_data = &usb_ld->devdata[IF_USB_FMT_EP];
-
- if (!usb_ld->if_usb_connected) {
- mif_err("HSIC not connected, skip start ipc\n");
- err = -ENODEV;
- goto exit;
- }
-
-retry:
- if (ld->mc->phone_state != STATE_ONLINE) {
- mif_err("MODEM is not online, skip start ipc\n");
- err = -ENODEV;
- goto exit;
- }
-
- /* check usb runtime pm first */
- if (dev->power.runtime_status != RPM_ACTIVE) {
- if (!pm_data->resume_requested) {
- mif_debug("QW PM\n");
- INIT_COMPLETION(pm_data->active_done);
- queue_delayed_work(pm_data->wq,
- &pm_data->link_pm_work, 0);
- }
- mif_debug("Wait pm\n");
- err = wait_for_completion_timeout(&pm_data->active_done,
- msecs_to_jiffies(500));
- /* timeout or -ERESTARTSYS */
- if (err <= 0)
- goto retry;
- }
-
- pm_runtime_get_sync(dev);
-
- mif_err("send 'a'\n");
-
- skb = alloc_skb(16, GFP_ATOMIC);
- if (unlikely(!skb)) {
- pm_runtime_put(dev);
- return -ENOMEM;
- }
- memcpy(skb_put(skb, 1), data, 1);
- skbpriv(skb)->iod = iod;
- skbpriv(skb)->ld = ld;
-
- if (!usb_ld->if_usb_connected || !usb_ld->usbdev)
- return -ENODEV;
-
- usb_mark_last_busy(usb_ld->usbdev);
- err = usb_tx_urb_with_skb(usb_ld->usbdev, skb, pipe_data);
- if (err < 0) {
- mif_err("usb_tx_urb fail\n");
- dev_kfree_skb_any(skb);
- }
-
- pm_runtime_put(dev);
-exit:
- return err;
-}
-
-static void stop_ipc(struct link_device *ld)
-{
- ld->com_state = COM_NONE;
-}
-
-static int usb_init_communication(struct link_device *ld,
- struct io_device *iod)
-{
- struct task_struct *task = get_current();
- char str[TASK_COMM_LEN];
-
- mif_info("%d:%s\n", task->pid, get_task_comm(str, task));
-
- /* Send IPC Start ASCII 'a' */
- if (iod->id == 0x1)
- return start_ipc(ld, iod);
-
- return 0;
-}
-
-static void usb_terminate_communication(struct link_device *ld,
- struct io_device *iod)
-{
- if (iod->id != 0x1 || iod->format != IPC_FMT)
- return;
-
- if (iod->mc->phone_state == STATE_CRASH_RESET ||
- iod->mc->phone_state == STATE_CRASH_EXIT)
- stop_ipc(ld);
-}
-
-static int usb_rx_submit(struct usb_link_device *usb_ld,
- struct if_usb_devdata *pipe_data,
- gfp_t gfp_flags)
-{
- int ret;
- struct urb *urb;
-
- if (pipe_data->disconnected)
- return -ENOENT;
-
- ehci_vendor_txfilltuning();
-
- urb = pipe_data->urb;
-
- urb->transfer_flags = 0;
- usb_fill_bulk_urb(urb, pipe_data->usbdev,
- pipe_data->rx_pipe, pipe_data->rx_buf,
- pipe_data->rx_buf_size, usb_rx_complete,
- (void *)pipe_data);
-
- if (pipe_data->disconnected)
- return -ENOENT;
-
- usb_mark_last_busy(usb_ld->usbdev);
- ret = usb_submit_urb(urb, gfp_flags);
- if (ret)
- mif_err("submit urb fail with ret (%d)\n", ret);
-
- return ret;
-}
-
-static void usb_rx_retry_work(struct work_struct *work)
-{
- int ret = 0;
- struct usb_link_device *usb_ld =
- container_of(work, struct usb_link_device, rx_retry_work.work);
- struct urb *urb = usb_ld->retry_urb;
- struct if_usb_devdata *pipe_data = urb->context;
- struct io_device *iod;
- int iod_format;
-
- if (!usb_ld->if_usb_connected || !usb_ld->usbdev)
- return;
-
- if (usb_ld->usbdev)
- usb_mark_last_busy(usb_ld->usbdev);
- switch (pipe_data->format) {
- case IF_USB_FMT_EP:
- if (usb_ld->if_usb_is_main) {
- pr_urb("IPC-RX, retry", urb);
- iod_format = IPC_FMT;
- } else {
- iod_format = IPC_BOOT;
- }
- break;
- case IF_USB_RAW_EP:
- iod_format = IPC_MULTI_RAW;
- break;
- case IF_USB_RFS_EP:
- iod_format = IPC_RFS;
- pr_urb("RFS-RX, retry", urb);
- break;
- case IF_USB_CMD_EP:
- iod_format = IPC_CMD;
- break;
- default:
- iod_format = -1;
- break;
- }
-
- iod = link_get_iod_with_format(&usb_ld->ld, iod_format);
- if (iod) {
- ret = iod->recv(iod, &usb_ld->ld, (char *)urb->transfer_buffer,
- urb->actual_length);
- if (ret == -ENOMEM) {
- /* TODO: check the retry count */
- /* retry the delay work after 20ms and resubit*/
- mif_err("ENOMEM, +retry 20ms\n");
- if (usb_ld->usbdev)
- usb_mark_last_busy(usb_ld->usbdev);
- usb_ld->retry_urb = urb;
- if (usb_ld->rx_retry_cnt++ < 10)
- queue_delayed_work(usb_ld->ld.tx_wq,
- &usb_ld->rx_retry_work, 10);
- return;
- }
- if (ret < 0)
- mif_err("io device recv error (%d)\n", ret);
- usb_ld->rx_retry_cnt = 0;
- }
-
- if (usb_ld->usbdev)
- usb_mark_last_busy(usb_ld->usbdev);
- usb_rx_submit(usb_ld, pipe_data, GFP_ATOMIC);
-}
-
-
-static void usb_rx_complete(struct urb *urb)
-{
- struct if_usb_devdata *pipe_data = urb->context;
- struct usb_link_device *usb_ld = pipe_data->usb_ld;
- struct io_device *iod;
- int iod_format;
- int ret;
-
- if (usb_ld->usbdev)
- usb_mark_last_busy(usb_ld->usbdev);
-
- switch (urb->status) {
- case -ENOENT:
- /* case for 'link pm suspended but rx data had remained' */
- mif_debug("urb->status = -ENOENT\n");
- case 0:
- if (!urb->actual_length) {
- mif_debug("urb has zero length!\n");
- goto rx_submit;
- }
-
- usb_ld->link_pm_data->rx_cnt++;
- /* call iod recv */
- /* how we can distinguish boot ch with fmt ch ?? */
- switch (pipe_data->format) {
- case IF_USB_FMT_EP:
- if (usb_ld->if_usb_is_main) {
- pr_urb("IPC-RX", urb);
- iod_format = IPC_FMT;
- } else {
- iod_format = IPC_BOOT;
- }
- break;
- case IF_USB_RAW_EP:
- iod_format = IPC_MULTI_RAW;
- break;
- case IF_USB_RFS_EP:
- iod_format = IPC_RFS;
- break;
- case IF_USB_CMD_EP:
- iod_format = IPC_CMD;
- break;
- default:
- iod_format = -1;
- break;
- }
-
- /* flow control CMD by CP, not use io device */
- if (unlikely(iod_format == IPC_CMD)) {
- ret = link_rx_flowctl_cmd(&usb_ld->ld,
- (char *)urb->transfer_buffer,
- urb->actual_length);
- if (ret < 0)
- mif_err("no multi raw device (%d)\n", ret);
- goto rx_submit;
- }
-
- iod = link_get_iod_with_format(&usb_ld->ld, iod_format);
- if (iod) {
- ret = iod->recv(iod,
- &usb_ld->ld,
- (char *)urb->transfer_buffer,
- urb->actual_length);
- if (ret == -ENOMEM) {
- /* retry the delay work and resubit*/
- mif_err("ENOMEM, retry\n");
- if (usb_ld->usbdev)
- usb_mark_last_busy(usb_ld->usbdev);
- usb_ld->retry_urb = urb;
- queue_delayed_work(usb_ld->ld.tx_wq,
- &usb_ld->rx_retry_work, 0);
- return;
- }
- if (ret < 0)
- mif_err("io device recv error (%d)\n", ret);
- }
-rx_submit:
- if (urb->status == 0) {
- if (usb_ld->usbdev)
- usb_mark_last_busy(usb_ld->usbdev);
- usb_rx_submit(usb_ld, pipe_data, GFP_ATOMIC);
- }
- break;
- default:
- mif_err("urb err status = %d\n", urb->status);
- break;
- }
-}
-
-static int usb_send(struct link_device *ld, struct io_device *iod,
- struct sk_buff *skb)
-{
- struct sk_buff_head *txq;
- size_t tx_size;
- struct usb_link_device *usb_ld = to_usb_link_device(ld);
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
-
- switch (iod->format) {
- case IPC_RAW:
- txq = &ld->sk_raw_tx_q;
-
- if (unlikely(ld->raw_tx_suspended)) {
- /* Unlike misc_write, vnet_xmit is in interrupt.
- * Despite call netif_stop_queue on CMD_SUSPEND,
- * packets can be reached here.
- */
- if (in_irq()) {
- mif_err("raw tx is suspended, "
- "drop packet. size=%d",
- skb->len);
- return -EBUSY;
- }
-
- mif_err("wait RESUME CMD...\n");
- INIT_COMPLETION(ld->raw_tx_resumed_by_cp);
- wait_for_completion(&ld->raw_tx_resumed_by_cp);
- mif_err("resumed done.\n");
- }
- break;
- case IPC_BOOT:
- case IPC_FMT:
- case IPC_RFS:
- default:
- txq = &ld->sk_fmt_tx_q;
- break;
- }
- /* store the tx size before run the tx_delayed_work*/
- tx_size = skb->len;
-
- /* drop packet, when link is not online */
- if (ld->com_state == COM_BOOT && iod->format != IPC_BOOT) {
- mif_err("%s: drop packet, size=%d, com_state=%d\n",
- iod->name, skb->len, ld->com_state);
- dev_kfree_skb_any(skb);
- return 0;
- }
-
- /* en queue skb data */
- skb_queue_tail(txq, skb);
- /* Hold wake_lock for getting schedule the tx_work */
- wake_lock(&pm_data->tx_async_wake);
-
- if (!work_pending(&ld->tx_delayed_work.work))
- queue_delayed_work(ld->tx_wq, &ld->tx_delayed_work, 0);
-
- return tx_size;
-}
-
-static void usb_tx_complete(struct urb *urb)
-{
- struct sk_buff *skb = urb->context;
- struct io_device *iod = skbpriv(skb)->iod;
- struct link_device *ld = skbpriv(skb)->ld;
- struct usb_link_device *usb_ld = to_usb_link_device(ld);
-
- switch (urb->status) {
- case 0:
- break;
- case -ENOENT:
- case -ECONNRESET:
- case -ESHUTDOWN:
- default:
- if (iod->format != IPC_BOOT)
- mif_info("TX error (%d)\n", urb->status);
- }
-
- dev_kfree_skb_any(skb);
- if (urb->dev && usb_ld->if_usb_connected)
- usb_mark_last_busy(urb->dev);
- usb_free_urb(urb);
-}
-
-/* Even if usb_tx_urb_with_skb is failed, does not release the skb to retry */
-static int usb_tx_urb_with_skb(struct usb_device *usbdev, struct sk_buff *skb,
- struct if_usb_devdata *pipe_data)
-{
- int ret;
- struct urb *urb;
-
- if (pipe_data->disconnected)
- return -ENOENT;
-
- urb = usb_alloc_urb(0, GFP_KERNEL);
- if (!urb) {
- mif_err("alloc urb error\n");
- return -ENOMEM;
- }
-
- urb->transfer_flags = URB_ZERO_PACKET;
- usb_fill_bulk_urb(urb, pipe_data->usbdev, pipe_data->tx_pipe, skb->data,
- skb->len, usb_tx_complete, (void *)skb);
-
- usb_mark_last_busy(usbdev);
- ret = usb_submit_urb(urb, GFP_KERNEL);
- if (ret < 0) {
- mif_err("usb_submit_urb with ret(%d)\n", ret);
- usb_free_urb(urb);
- return ret;
- }
- return 0;
-}
-
-
-static int _usb_tx_work(struct sk_buff *skb)
-{
- struct sk_buff_head *txq;
- struct io_device *iod = skbpriv(skb)->iod;
- struct link_device *ld = skbpriv(skb)->ld;
- struct usb_link_device *usb_ld = to_usb_link_device(ld);
- struct if_usb_devdata *pipe_data;
-
- switch (iod->format) {
- case IPC_BOOT:
- case IPC_FMT:
- /* boot device uses same intf with fmt*/
- pipe_data = &usb_ld->devdata[IF_USB_FMT_EP];
- txq = &ld->sk_fmt_tx_q;
- break;
- case IPC_RAW:
- pipe_data = &usb_ld->devdata[IF_USB_RAW_EP];
- txq = &ld->sk_raw_tx_q;
- break;
- case IPC_RFS:
- pipe_data = &usb_ld->devdata[IF_USB_RFS_EP];
- txq = &ld->sk_fmt_tx_q;
- break;
- default:
- /* wrong packet, drop it */
- pipe_data = NULL;
- txq = NULL;
- break;
- }
-
- if (!pipe_data)
- return -ENOENT;
-
- if (iod->format == IPC_FMT && usb_ld->if_usb_is_main)
- pr_skb("IPC-TX", skb);
-
- if (iod->format == IPC_RAW)
- mif_debug("TX[RAW]\n");
-
- return usb_tx_urb_with_skb(usb_ld->usbdev, skb, pipe_data);
-}
-
-
-static void usb_tx_work(struct work_struct *work)
-{
- int ret = 0;
- struct link_device *ld =
- container_of(work, struct link_device, tx_delayed_work.work);
- struct usb_link_device *usb_ld = to_usb_link_device(ld);
- struct sk_buff *skb;
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
-
- if (!usb_ld->usbdev) {
- mif_info("usbdev is invalid\n");
- return;
- }
-
- pm_data->tx_cnt++;
-
- while (ld->sk_fmt_tx_q.qlen || ld->sk_raw_tx_q.qlen) {
- /* request and check usb runtime pm first */
- ret = link_pm_runtime_get_active(pm_data);
- if (ret < 0) {
- if (ret == -ENODEV) {
- mif_err("link not avail, retry reconnect.\n");
- goto exit;
- }
- goto retry_tx_work;
- }
-
- /* If AP try to tx when interface disconnect->reconnect probe,
- * usbdev was created but one of interface channel device are
- * probing, _usb_tx_work return to -ENOENT then runtime usage
- * count allways positive and never enter to L2
- */
- if (!usb_ld->if_usb_connected) {
- mif_info("link is available, but if was not readey\n");
- goto retry_tx_work;
- }
- pm_runtime_get_sync(&usb_ld->usbdev->dev);
-
- ret = 0;
- /* send skb from fmt_txq and raw_txq,*/
- /* one by one for fair flow control */
- skb = skb_dequeue(&ld->sk_fmt_tx_q);
- if (skb)
- ret = _usb_tx_work(skb);
-
- if (ret) {
- mif_err("usb_tx_urb_with_skb for fmt_q %d\n", ret);
- skb_queue_head(&ld->sk_fmt_tx_q, skb);
-
- if (ret == -ENODEV || ret == -ENOENT)
- goto exit;
-
- /* tx fail and usbdev alived, retry tx work */
- pm_runtime_put(&usb_ld->usbdev->dev);
- goto retry_tx_work;
- }
-
- skb = skb_dequeue(&ld->sk_raw_tx_q);
- if (skb)
- ret = _usb_tx_work(skb);
-
- if (ret) {
- mif_err("usb_tx_urb_with_skb for raw_q %d\n", ret);
- skb_queue_head(&ld->sk_raw_tx_q, skb);
-
- if (ret == -ENODEV || ret == -ENOENT)
- goto exit;
-
- pm_runtime_put(&usb_ld->usbdev->dev);
- goto retry_tx_work;
- }
-
- pm_runtime_put(&usb_ld->usbdev->dev);
- }
- wake_unlock(&pm_data->tx_async_wake);
-exit:
- return;
-
-retry_tx_work:
- queue_delayed_work(ld->tx_wq, &ld->tx_delayed_work,
- msecs_to_jiffies(20));
- return;
-}
-
-/*
-#ifdef CONFIG_LINK_PM
-*/
-
-static int link_pm_runtime_get_active(struct link_pm_data *pm_data)
-{
- int ret;
- struct usb_link_device *usb_ld = pm_data->usb_ld;
- struct device *dev = &usb_ld->usbdev->dev;
-
- if (!usb_ld->if_usb_connected || usb_ld->ld.com_state == COM_NONE)
- return -ENODEV;
-
- if (pm_data->dpm_suspending) {
- mif_err("Kernel in suspending try get_active later\n");
- /* during dpm_suspending..
- * if AP get tx data, wake up. */
- wake_lock(&pm_data->l2_wake);
- return -EAGAIN;
- }
-
- if (dev->power.runtime_status == RPM_ACTIVE) {
- pm_data->resume_retry_cnt = 0;
- return 0;
- }
-
- if (!pm_data->resume_requested) {
- mif_debug("QW PM\n");
- queue_delayed_work(pm_data->wq, &pm_data->link_pm_work, 0);
- }
- mif_debug("Wait pm\n");
- INIT_COMPLETION(pm_data->active_done);
- ret = wait_for_completion_timeout(&pm_data->active_done,
- msecs_to_jiffies(500));
-
- /* If usb link was disconnected while waiting ACTIVE State, usb device
- * was removed, usb_ld->usbdev->dev is invalid and below
- * dev->power.runtime_status is also invalid address.
- * It will be occured LPA L3 -> AP iniated L0 -> disconnect -> link
- * timeout
- */
- if (!usb_ld->if_usb_connected || usb_ld->ld.com_state == COM_NONE) {
- mif_info("link disconnected after timed-out\n");
- return -ENODEV;
- }
-
- if (dev->power.runtime_status != RPM_ACTIVE) {
- mif_info("link_active (%d) retry\n",
- dev->power.runtime_status);
- return -EAGAIN;
- }
- mif_debug("link_active success(%d)\n", ret);
- return 0;
-}
-
-static void link_pm_runtime_start(struct work_struct *work)
-{
- struct link_pm_data *pm_data =
- container_of(work, struct link_pm_data, link_pm_start.work);
- struct usb_device *usbdev = pm_data->usb_ld->usbdev;
- struct device *dev, *hdev;
- struct link_device *ld = &pm_data->usb_ld->ld;
-
- if (!pm_data->usb_ld->if_usb_connected
- || pm_data->usb_ld->ld.com_state == COM_NONE) {
- mif_debug("disconnect status, ignore\n");
- return;
- }
-
- dev = &pm_data->usb_ld->usbdev->dev;
-
- /* wait interface driver resumming */
- if (dev->power.runtime_status == RPM_SUSPENDED) {
- mif_info("suspended yet, delayed work\n");
- queue_delayed_work(pm_data->wq, &pm_data->link_pm_start,
- msecs_to_jiffies(20));
- return;
- }
-
- if (pm_data->usb_ld->usbdev && dev->parent) {
- mif_info("rpm_status: %d\n",
- dev->power.runtime_status);
- pm_runtime_set_autosuspend_delay(dev, 200);
- hdev = usbdev->bus->root_hub->dev.parent;
- mif_info("EHCI runtime %s, %s\n", dev_driver_string(hdev),
- dev_name(hdev));
- pm_runtime_allow(dev);
- pm_runtime_allow(hdev);/*ehci*/
- pm_data->link_pm_active = true;
- pm_data->resume_requested = false;
- pm_data->link_reconnect_cnt = 5;
- pm_data->resume_retry_cnt = 0;
-
- /* retry prvious link tx q */
- queue_delayed_work(ld->tx_wq, &ld->tx_delayed_work, 0);
- }
-}
-
-static void link_pm_force_cp_dump(struct link_pm_data *pm_data)
-{
- struct modem_ctl *mc = if_usb_get_modemctl(pm_data);
-
- mif_err("Set modem crash ap_dump_int by %pF\n",
- __builtin_return_address(0));
-
- if (mc->gpio_ap_dump_int) {
- if (gpio_get_value(mc->gpio_ap_dump_int)) {
- gpio_set_value(mc->gpio_ap_dump_int, 0);
- msleep(20);
- }
- gpio_set_value(mc->gpio_ap_dump_int, 1);
- msleep(20);
- mif_err("AP_DUMP_INT(%d)\n",
- gpio_get_value(mc->gpio_ap_dump_int));
- gpio_set_value(mc->gpio_ap_dump_int, 0);
- }
-}
-
-static void link_pm_change_modem_state(struct link_pm_data *pm_data,
- enum modem_state state)
-{
- struct modem_ctl *mc = if_usb_get_modemctl(pm_data);
-
- if (!mc->iod || pm_data->usb_ld->ld.com_state != COM_ONLINE)
- return;
-
- mif_err("set modem state %d by %pF\n", state,
- __builtin_return_address(0));
- mc->iod->modem_state_changed(mc->iod, state);
- mc->bootd->modem_state_changed(mc->bootd, state);
-}
-
-static void link_pm_reconnect_work(struct work_struct *work)
-{
- struct link_pm_data *pm_data =
- container_of(work, struct link_pm_data,
- link_reconnect_work.work);
- struct modem_ctl *mc = if_usb_get_modemctl(pm_data);
-
- if (!mc || pm_data->usb_ld->if_usb_connected)
- return;
-
- if (pm_data->usb_ld->ld.com_state != COM_ONLINE)
- return;
-
- if (pm_data->link_reconnect_cnt--) {
- if (mc->phone_state == STATE_ONLINE &&
- !pm_data->link_reconnect())
- /* try reconnect and check */
- schedule_delayed_work(&pm_data->link_reconnect_work,
- msecs_to_jiffies(500));
- else /* under cp crash or reset, just return */
- return;
- } else {
- /* try to recover cp */
- mif_err("recover connection: silent reset\n");
- link_pm_change_modem_state(pm_data, STATE_CRASH_RESET);
- }
-}
-
-static inline int link_pm_slave_wake(struct link_pm_data *pm_data)
-{
- int spin = 20;
-
- /* when slave device is in sleep, wake up slave cpu first */
- if (gpio_get_value(pm_data->gpio_link_hostwake)
- != HOSTWAKE_TRIGLEVEL) {
- if (gpio_get_value(pm_data->gpio_link_slavewake)) {
- gpio_set_value(pm_data->gpio_link_slavewake, 0);
- mif_info("gpio [SWK] set [0]\n");
- mdelay(5);
- }
- gpio_set_value(pm_data->gpio_link_slavewake, 1);
- mif_info("gpio [SWK] set [1]\n");
- mdelay(5);
-
- /* wait host wake signal*/
- while (spin-- && gpio_get_value(pm_data->gpio_link_hostwake) !=
- HOSTWAKE_TRIGLEVEL)
- mdelay(5);
- }
- return spin;
-}
-
-static void link_pm_runtime_work(struct work_struct *work)
-{
- int ret;
- struct link_pm_data *pm_data =
- container_of(work, struct link_pm_data, link_pm_work.work);
- struct device *dev = &pm_data->usb_ld->usbdev->dev;
-
- if (!pm_data->usb_ld->if_usb_connected || pm_data->dpm_suspending)
- return;
-
- if (pm_data->usb_ld->ld.com_state == COM_NONE)
- return;
-
- mif_debug("for dev 0x%p : current %d\n", dev,
- dev->power.runtime_status);
-
- switch (dev->power.runtime_status) {
- case RPM_ACTIVE:
- pm_data->resume_retry_cnt = 0;
- pm_data->resume_requested = false;
- complete(&pm_data->active_done);
-
- return;
- case RPM_SUSPENDED:
- if (pm_data->resume_requested)
- break;
- pm_data->resume_requested = true;
- wake_lock(&pm_data->rpm_wake);
- ret = link_pm_slave_wake(pm_data);
- if (ret < 0) {
- mif_err("slave wake fail\n");
- wake_unlock(&pm_data->rpm_wake);
- break;
- }
-
- if (!pm_data->usb_ld->if_usb_connected) {
- wake_unlock(&pm_data->rpm_wake);
- return;
- }
-
- ret = pm_runtime_resume(dev);
- if (ret < 0) {
- mif_err("resume error(%d)\n", ret);
- if (!pm_data->usb_ld->if_usb_connected) {
- wake_unlock(&pm_data->rpm_wake);
- return;
- }
- /* force to go runtime idle before retry resume */
- if (dev->power.timer_expires == 0 &&
- !dev->power.request_pending) {
- mif_debug("run time idle\n");
- pm_runtime_idle(dev);
- }
- }
- wake_unlock(&pm_data->rpm_wake);
- break;
- case RPM_SUSPENDING:
- /* Checking the usb_runtime_suspend running time.*/
- mif_info("rpm_states=%d", dev->power.runtime_status);
- msleep(20);
- break;
- default:
- break;
- }
- pm_data->resume_requested = false;
-
- /* check until runtime_status goes to active */
- /* attemp 10 times, or re-establish modem-link */
- /* if pm_runtime_resume run properly, rpm status must be in ACTIVE */
- if (dev->power.runtime_status == RPM_ACTIVE) {
- pm_data->resume_retry_cnt = 0;
- complete(&pm_data->active_done);
- } else if (pm_data->resume_retry_cnt++ > 10) {
- mif_err("runtime_status(%d), retry_cnt(%d)\n",
- dev->power.runtime_status, pm_data->resume_retry_cnt);
- link_pm_change_modem_state(pm_data, STATE_CRASH_RESET);
- } else
- queue_delayed_work(pm_data->wq, &pm_data->link_pm_work,
- msecs_to_jiffies(20));
-}
-
-static irqreturn_t link_pm_irq_handler(int irq, void *data)
-{
- int value;
- struct link_pm_data *pm_data = data;
-
-#if defined(CONFIG_SLP)
- pm_wakeup_event(pm_data->miscdev.this_device, 0);
-#endif
-
- if (!pm_data->link_pm_active)
- return IRQ_HANDLED;
-
- /* host wake up HIGH */
- /*
- resume usb runtime pm start
- */
- /* host wake up LOW */
- /*
- slave usb enumeration end,
- host can send usb packet after
- runtime pm status changes to ACTIVE
- */
- value = gpio_get_value(pm_data->gpio_link_hostwake);
- mif_info("gpio [HWK] get [%d]\n", value);
-
- /*
- * igonore host wakeup interrupt at suspending kernel
- */
- if (pm_data->dpm_suspending) {
- mif_info("ignore request by suspending\n");
- /* Ignore HWK but AP got to L2 by suspending fail */
- wake_lock(&pm_data->l2_wake);
- return IRQ_HANDLED;
- }
-
- if (value == HOSTWAKE_TRIGLEVEL) {
- /* move to slave wake function */
- /* runtime pm goes to active */
- /*
- if (gpio_get_value(pm_data->gpio_link_active)) {
- mif_err("gpio [H ACTV : %d] set 1\n",
- gpio_get_value(pm_data->gpio_link_active));
- gpio_set_value(pm_data->gpio_link_active, 1);
- }
- */
- queue_delayed_work(pm_data->wq, &pm_data->link_pm_work, 0);
- } else {
- /* notification of enumeration process from slave device
- * But it does not mean whole connection is in resume, so do not
- * notify resume completion here.
-
- if (pm_data->link_pm_active && !pm_data->active_done.done)
- complete(&pm_data->active_done);
- */
- /* clear slave cpu wake up pin */
- gpio_set_value(pm_data->gpio_link_slavewake, 0);
- mif_debug("gpio [SWK] set [0]\n");
- }
- return IRQ_HANDLED;
-}
-
-static long link_pm_ioctl(struct file *file, unsigned int cmd,
- unsigned long arg)
-{
- int value;
- struct link_pm_data *pm_data = file->private_data;
- struct modem_ctl *mc = if_usb_get_modemctl(pm_data);
-
- mif_info("%x\n", cmd);
-
- switch (cmd) {
- case IOCTL_LINK_CONTROL_ENABLE:
- if (copy_from_user(&value, (const void __user *)arg,
- sizeof(int)))
- return -EFAULT;
- if (pm_data->link_ldo_enable)
- pm_data->link_ldo_enable(!!value);
- if (pm_data->gpio_link_enable)
- gpio_set_value(pm_data->gpio_link_enable, value);
- break;
- case IOCTL_LINK_CONTROL_ACTIVE:
- if (copy_from_user(&value, (const void __user *)arg,
- sizeof(int)))
- return -EFAULT;
- gpio_set_value(pm_data->gpio_link_active, value);
- break;
- case IOCTL_LINK_GET_HOSTWAKE:
- return !gpio_get_value(pm_data->gpio_link_hostwake);
- case IOCTL_LINK_CONNECTED:
- return pm_data->usb_ld->if_usb_connected;
- case IOCTL_LINK_SET_BIAS_CLEAR:
- if (copy_from_user(&value, (const void __user *)arg,
- sizeof(int)))
- return -EFAULT;
- if (value) {
- gpio_direction_output(pm_data->gpio_link_slavewake, 0);
- gpio_direction_output(pm_data->gpio_link_hostwake, 0);
- } else {
- gpio_direction_output(pm_data->gpio_link_slavewake, 0);
- gpio_direction_input(pm_data->gpio_link_hostwake);
- irq_set_irq_type(pm_data->irq_link_hostwake,
- IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING);
- }
- case IOCTL_LINK_GET_PHONEACTIVE:
- return gpio_get_value(mc->gpio_phone_active);
- default:
- break;
- }
-
- return 0;
-}
-
-static int link_pm_open(struct inode *inode, struct file *file)
-{
- struct link_pm_data *pm_data =
- (struct link_pm_data *)file->private_data;
- file->private_data = (void *)pm_data;
- return 0;
-}
-
-static int link_pm_release(struct inode *inode, struct file *file)
-{
- file->private_data = NULL;
- return 0;
-}
-
-static const struct file_operations link_pm_fops = {
- .owner = THIS_MODULE,
- .open = link_pm_open,
- .release = link_pm_release,
- .unlocked_ioctl = link_pm_ioctl,
-};
-
-static int link_pm_notifier_event(struct notifier_block *this,
- unsigned long event, void *ptr)
-{
- struct link_pm_data *pm_data =
- container_of(this, struct link_pm_data, pm_notifier);
-#ifdef CONFIG_UMTS_MODEM_XMM6262
- struct modem_ctl *mc = if_usb_get_modemctl(pm_data);
-#endif
-
- switch (event) {
- case PM_SUSPEND_PREPARE:
-#ifdef CONFIG_HIBERNATION
- case PM_HIBERNATION_PREPARE:
- case PM_RESTORE_PREPARE:
-#endif
- pm_data->dpm_suspending = true;
-#ifdef CONFIG_UMTS_MODEM_XMM6262
- /* set PDA Active High if previous state was LPA */
- if (!gpio_get_value(pm_data->gpio_link_active)) {
- mif_info("PDA active High to LPA suspend spot\n");
- gpio_set_value(mc->gpio_pda_active, 1);
- }
-#endif
- mif_debug("dpm suspending set to true\n");
- return NOTIFY_OK;
- case PM_POST_SUSPEND:
-#ifdef CONFIG_HIBERNATION
- case PM_POST_HIBERNATION:
- case PM_POST_RESTORE:
-#endif
- pm_data->dpm_suspending = false;
- if (gpio_get_value(pm_data->gpio_link_hostwake)
- == HOSTWAKE_TRIGLEVEL) {
- queue_delayed_work(pm_data->wq, &pm_data->link_pm_work,
- 0);
- mif_info("post resume\n");
- }
-#ifdef CONFIG_UMTS_MODEM_XMM6262
- /* LPA to Kernel suspend and User Freezing task fail resume,
- restore to LPA GPIO states. */
- if (!gpio_get_value(pm_data->gpio_link_active)) {
- mif_info("PDA active low to LPA GPIO state\n");
- gpio_set_value(mc->gpio_pda_active, 0);
- }
-#endif
- mif_debug("dpm suspending set to false\n");
- return NOTIFY_OK;
- }
- return NOTIFY_DONE;
-}
-
-static struct modem_ctl *if_usb_get_modemctl(struct link_pm_data *pm_data)
-{
- struct io_device *iod;
-
- iod = link_get_iod_with_format(&pm_data->usb_ld->ld, IPC_FMT);
- if (!iod) {
- mif_err("no iodevice for modem control\n");
- return NULL;
- }
-
- return iod->mc;
-}
-
-static int if_usb_suspend(struct usb_interface *intf, pm_message_t message)
-{
- struct if_usb_devdata *devdata = usb_get_intfdata(intf);
- struct link_pm_data *pm_data = devdata->usb_ld->link_pm_data;
- if (!devdata->disconnected && devdata->state == STATE_RESUMED) {
- usb_kill_urb(devdata->urb);
- devdata->state = STATE_SUSPENDED;
- }
-
- devdata->usb_ld->suspended++;
-
- if (devdata->usb_ld->suspended == LINKPM_DEV_NUM) {
- mif_debug("[if_usb_suspended]\n");
- wake_lock_timeout(&pm_data->l2_wake, msecs_to_jiffies(50));
-#ifdef CONFIG_SLP
- pm_wakeup_event(pm_data->miscdev.this_device,
- msecs_to_jiffies(20));
-#endif
- /* XMM6262 Host wakeup toggle recovery */
- if (!pm_data->rx_cnt && !pm_data->tx_cnt) {
- if (pm_data->ipc_debug_cnt++ > 10) {
- mif_err("No TX/RX after resume 10times\n");
- link_pm_change_modem_state(pm_data,
- STATE_CRASH_RESET);
- }
- } else {
- pm_data->ipc_debug_cnt = 0;
- pm_data->rx_cnt = 0;
- pm_data->tx_cnt = 0;
- }
- }
- return 0;
-}
-
-static int if_usb_resume(struct usb_interface *intf)
-{
- int ret;
- struct if_usb_devdata *devdata = usb_get_intfdata(intf);
- struct link_pm_data *pm_data = devdata->usb_ld->link_pm_data;
-
- if (!devdata->disconnected && devdata->state == STATE_SUSPENDED) {
- ret = usb_rx_submit(devdata->usb_ld, devdata, GFP_ATOMIC);
- if (ret < 0) {
- mif_err("usb_rx_submit error with (%d)\n", ret);
- return ret;
- }
- devdata->state = STATE_RESUMED;
- }
-
- /* For debugging - nomal case, never reach below... */
- if (pm_data->resume_retry_cnt > 5) {
- mif_err("retry_cnt=%d, rpm_status=%d",
- pm_data->resume_retry_cnt,
- devdata->usb_ld->usbdev->dev.power.runtime_status);
- pm_data->resume_retry_cnt = 0;
- }
-
- devdata->usb_ld->suspended--;
- if (!devdata->usb_ld->suspended) {
- mif_debug("[if_usb_resumed]\n");
- wake_lock(&pm_data->l2_wake);
- }
-
- return 0;
-}
-
-static int if_usb_reset_resume(struct usb_interface *intf)
-{
- int ret;
- struct if_usb_devdata *devdata = usb_get_intfdata(intf);
- struct link_pm_data *pm_data = devdata->usb_ld->link_pm_data;
-
- ret = if_usb_resume(intf);
- pm_data->ipc_debug_cnt = 0;
- /*
- * for runtime suspend, kick runtime pm at L3 -> L0 reset resume
- */
- if (!devdata->usb_ld->suspended)
- queue_delayed_work(pm_data->wq, &pm_data->link_pm_start, 0);
- return ret;
-}
-
-static void if_usb_disconnect(struct usb_interface *intf)
-{
- struct if_usb_devdata *devdata = usb_get_intfdata(intf);
- struct link_pm_data *pm_data = devdata->usb_ld->link_pm_data;
- struct device *dev, *hdev;
- struct link_device *ld = &devdata->usb_ld->ld;
-
- mif_info("\n");
-
- if (devdata->disconnected)
- return;
-
- devdata->usb_ld->if_usb_connected = 0;
-
- usb_driver_release_interface(to_usb_driver(intf->dev.driver), intf);
-
- usb_kill_urb(devdata->urb);
-
- hdev = devdata->usbdev->bus->root_hub->dev.parent;
- pm_runtime_forbid(hdev); /*ehci*/
-
- mif_info("put dev 0x%p\n", devdata->usbdev);
- usb_put_dev(devdata->usbdev);
-
- devdata->data_intf = NULL;
- devdata->usbdev = NULL;
- /* if possible, merge below 2 variables */
- devdata->disconnected = 1;
- devdata->state = STATE_SUSPENDED;
- pm_data->ipc_debug_cnt = 0;
-
- devdata->usb_ld->suspended = 0;
- wake_lock(&pm_data->boot_wake);
-
- usb_set_intfdata(intf, NULL);
-
- /* cancel runtime start delayed works */
- cancel_delayed_work_sync(&pm_data->link_pm_start);
- cancel_delayed_work_sync(&ld->tx_delayed_work);
-
- /* if reconnect function exist , try reconnect without reset modem
- * reconnect function checks modem is under crash or not, so we don't
- * need check crash state here. reconnect work checks and determine
- * further works
- */
- if (!pm_data->link_reconnect)
- return;
-
- if (devdata->usb_ld->ld.com_state != COM_ONLINE) {
- cancel_delayed_work(&pm_data->link_reconnect_work);
- return;
- } else {
- if (pm_data->ehci_reg_dump)
- pm_data->ehci_reg_dump(hdev);
- schedule_delayed_work(&pm_data->link_reconnect_work,
- msecs_to_jiffies(500));
- }
- return;
-}
-
-static int if_usb_set_pipe(struct usb_link_device *usb_ld,
- const struct usb_host_interface *desc, int pipe)
-{
- if (pipe < 0 || pipe >= IF_USB_DEVNUM_MAX) {
- mif_err("undefined endpoint, exceed max\n");
- return -EINVAL;
- }
-
- mif_info("set %d\n", pipe);
-
- if ((usb_pipein(desc->endpoint[0].desc.bEndpointAddress)) &&
- (usb_pipeout(desc->endpoint[1].desc.bEndpointAddress))) {
- usb_ld->devdata[pipe].rx_pipe = usb_rcvbulkpipe(usb_ld->usbdev,
- desc->endpoint[0].desc.bEndpointAddress);
- usb_ld->devdata[pipe].tx_pipe = usb_sndbulkpipe(usb_ld->usbdev,
- desc->endpoint[1].desc.bEndpointAddress);
- } else if ((usb_pipeout(desc->endpoint[0].desc.bEndpointAddress)) &&
- (usb_pipein(desc->endpoint[1].desc.bEndpointAddress))) {
- usb_ld->devdata[pipe].rx_pipe = usb_rcvbulkpipe(usb_ld->usbdev,
- desc->endpoint[1].desc.bEndpointAddress);
- usb_ld->devdata[pipe].tx_pipe = usb_sndbulkpipe(usb_ld->usbdev,
- desc->endpoint[0].desc.bEndpointAddress);
- } else {
- mif_err("undefined endpoint\n");
- return -EINVAL;
- }
-
- return 0;
-}
-
-static int __devinit if_usb_probe(struct usb_interface *intf,
- const struct usb_device_id *id)
-{
- int err;
- int pipe;
- const struct usb_cdc_union_desc *union_hdr;
- const struct usb_host_interface *data_desc;
- unsigned char *buf = intf->altsetting->extra;
- int buflen = intf->altsetting->extralen;
- struct usb_interface *data_intf;
- struct usb_device *usbdev = interface_to_usbdev(intf);
- struct usb_driver *usbdrv = to_usb_driver(intf->dev.driver);
- struct usb_id_info *info = (struct usb_id_info *)id->driver_info;
- struct usb_link_device *usb_ld = info->usb_ld;
-
- mif_info("usbdev = 0x%p\n", usbdev);
-
- pr_debug("%s: Class=%d, SubClass=%d, Protocol=%d\n", __func__,
- intf->altsetting->desc.bInterfaceClass,
- intf->altsetting->desc.bInterfaceSubClass,
- intf->altsetting->desc.bInterfaceProtocol);
-
- /* if usb disconnected, AP try to reconnect 5 times.
- * but because if_sub_connected is configured
- * at the end of if_usb_probe, there was a chance
- * that swk will be called again during enumeration.
- * so.. cancel reconnect work_queue in this case. */
- if (usb_ld->ld.com_state == COM_ONLINE)
- cancel_delayed_work(&usb_ld->link_pm_data->link_reconnect_work);
-
- usb_ld->usbdev = usbdev;
- pm_runtime_forbid(&usbdev->dev);
- usb_ld->link_pm_data->link_pm_active = false;
- usb_ld->link_pm_data->dpm_suspending = false;
- usb_ld->link_pm_data->ipc_debug_cnt = 0;
- usb_ld->if_usb_is_main = (info->intf_id != BOOT_DOWN);
-
- union_hdr = NULL;
- /* for WMC-ACM compatibility, WMC-ACM use an end-point for control msg*/
- if (intf->altsetting->desc.bInterfaceSubClass != USB_CDC_SUBCLASS_ACM) {
- mif_err("ignore Non ACM end-point\n");
- return -EINVAL;
- }
-
- if (!buflen) {
- if (intf->cur_altsetting->endpoint->extralen &&
- intf->cur_altsetting->endpoint->extra) {
- buflen = intf->cur_altsetting->endpoint->extralen;
- buf = intf->cur_altsetting->endpoint->extra;
- } else {
- mif_err("Zero len descriptor reference\n");
- return -EINVAL;
- }
- }
-
- while (buflen > 0) {
- if (buf[1] == USB_DT_CS_INTERFACE) {
- switch (buf[2]) {
- case USB_CDC_UNION_TYPE:
- if (union_hdr)
- break;
- union_hdr = (struct usb_cdc_union_desc *)buf;
- break;
- default:
- break;
- }
- }
- buf += buf[0];
- buflen -= buf[0];
- }
-
- if (!union_hdr) {
- mif_err("USB CDC is not union type\n");
- return -EINVAL;
- }
-
- data_intf = usb_ifnum_to_if(usbdev, union_hdr->bSlaveInterface0);
- if (!data_intf) {
- mif_err("data_inferface is NULL\n");
- return -ENODEV;
- }
-
- data_desc = data_intf->altsetting;
- if (!data_desc) {
- mif_err("data_desc is NULL\n");
- return -ENODEV;
- }
-
- switch (info->intf_id) {
- case BOOT_DOWN:
- pipe = IF_USB_BOOT_EP;
- usb_ld->ld.com_state = COM_BOOT;
- /* purge previous boot fmt/raw tx q
- clear all tx q*/
- skb_queue_purge(&usb_ld->ld.sk_fmt_tx_q);
- skb_queue_purge(&usb_ld->ld.sk_raw_tx_q);
- break;
- case IPC_CHANNEL:
- pipe = intf->altsetting->desc.bInterfaceNumber / 2;
- usb_ld->ld.com_state = COM_ONLINE;
- break;
- default:
- pipe = -1;
- break;
- }
-
- if (if_usb_set_pipe(usb_ld, data_desc, pipe) < 0)
- return -EINVAL;
-
- usb_ld->devdata[pipe].usbdev = usb_get_dev(usbdev);
- mif_info("devdata usbdev = 0x%p\n",
- usb_ld->devdata[pipe].usbdev);
- usb_ld->devdata[pipe].usb_ld = usb_ld;
- usb_ld->devdata[pipe].data_intf = data_intf;
- usb_ld->devdata[pipe].format = pipe;
- usb_ld->devdata[pipe].disconnected = 0;
- usb_ld->devdata[pipe].state = STATE_RESUMED;
-
- usb_ld->suspended = 0;
-
- err = usb_driver_claim_interface(usbdrv, data_intf,
- (void *)&usb_ld->devdata[pipe]);
- if (err < 0) {
- mif_err("usb_driver_claim() failed\n");
- return err;
- }
-
- pm_suspend_ignore_children(&usbdev->dev, true);
-
- usb_set_intfdata(intf, (void *)&usb_ld->devdata[pipe]);
-
- /* rx start for this endpoint */
- usb_rx_submit(usb_ld, &usb_ld->devdata[pipe], GFP_KERNEL);
-
- if (info->intf_id == IPC_CHANNEL &&
- !work_pending(&usb_ld->link_pm_data->link_pm_start.work)) {
- queue_delayed_work(usb_ld->link_pm_data->wq,
- &usb_ld->link_pm_data->link_pm_start,
- msecs_to_jiffies(500));
- wake_lock(&usb_ld->link_pm_data->l2_wake);
- wake_unlock(&usb_ld->link_pm_data->boot_wake);
- }
-
- /* HSIC main comm channel has been established */
- if (pipe == IF_USB_CMD_EP)
- link_pm_change_modem_state(usb_ld->link_pm_data, STATE_ONLINE);
-
- if (pipe == IF_USB_CMD_EP || info->intf_id == BOOT_DOWN)
- usb_ld->if_usb_connected = 1;
-
- mif_info("successfully done\n");
-
- return 0;
-}
-
-static void if_usb_free_pipe_data(struct usb_link_device *usb_ld)
-{
- int i;
- for (i = 0; i < IF_USB_DEVNUM_MAX; i++) {
- kfree(usb_ld->devdata[i].rx_buf);
- usb_kill_urb(usb_ld->devdata[i].urb);
- }
-}
-
-static struct usb_id_info hsic_boot_down_info = {
- .intf_id = BOOT_DOWN,
-};
-static struct usb_id_info hsic_channel_info = {
- .intf_id = IPC_CHANNEL,
-};
-
-static struct usb_device_id if_usb_ids[] = {
- {USB_DEVICE_AND_INTERFACE_INFO(IMC_BOOT_VID, IMC_BOOT_PID,
- USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, USB_CDC_PROTO_NONE),
- .driver_info = (unsigned long)&hsic_boot_down_info,},
- {USB_DEVICE_AND_INTERFACE_INFO(IMC_MAIN_VID, IMC_MAIN_PID,
- USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, 1),
- .driver_info = (unsigned long)&hsic_channel_info,},
- {USB_DEVICE(STE_BOOT_VID, STE_BOOT_PID),
- .driver_info = (unsigned long)&hsic_boot_down_info,},
- {USB_DEVICE(STE_MAIN_VID, STE_MAIN_PID),
- .driver_info = (unsigned long)&hsic_channel_info,},
- {}
-};
-MODULE_DEVICE_TABLE(usb, if_usb_ids);
-
-static struct usb_driver if_usb_driver = {
- .name = "cdc_modem",
- .probe = if_usb_probe,
- .disconnect = if_usb_disconnect,
- .id_table = if_usb_ids,
- .suspend = if_usb_suspend,
- .resume = if_usb_resume,
- .reset_resume = if_usb_reset_resume,
- .supports_autosuspend = 1,
-};
-
-static int if_usb_init(struct link_device *ld)
-{
- int ret;
- int i;
- struct usb_link_device *usb_ld = to_usb_link_device(ld);
- struct if_usb_devdata *pipe_data;
- struct usb_id_info *id_info;
-
- /* to connect usb link device with usb interface driver */
- for (i = 0; i < ARRAY_SIZE(if_usb_ids); i++) {
- id_info = (struct usb_id_info *)if_usb_ids[i].driver_info;
- if (id_info)
- id_info->usb_ld = usb_ld;
- }
-
- ret = usb_register(&if_usb_driver);
- if (ret) {
- mif_err("usb_register_driver() fail : %d\n", ret);
- return ret;
- }
-
- /* allocate rx buffer for usb receive */
- for (i = 0; i < IF_USB_DEVNUM_MAX; i++) {
- pipe_data = &usb_ld->devdata[i];
- pipe_data->format = i;
- pipe_data->rx_buf_size = 16 * 1024;
-
- pipe_data->rx_buf = kmalloc(pipe_data->rx_buf_size,
- GFP_DMA | GFP_KERNEL);
- if (!pipe_data->rx_buf) {
- if_usb_free_pipe_data(usb_ld);
- ret = -ENOMEM;
- break;
- }
-
- pipe_data->urb = usb_alloc_urb(0, GFP_KERNEL);
- if (!pipe_data->urb) {
- mif_err("alloc urb fail\n");
- if_usb_free_pipe_data(usb_ld);
- return -ENOMEM;
- }
- }
-
- mif_info("if_usb_init() done : %d, usb_ld (0x%p)\n",
- ret, usb_ld);
- return ret;
-}
-
-static int usb_link_pm_init(struct usb_link_device *usb_ld, void *data)
-{
- int r;
- struct platform_device *pdev = (struct platform_device *)data;
- struct modem_data *pdata =
- (struct modem_data *)pdev->dev.platform_data;
- struct modemlink_pm_data *pm_pdata;
- struct link_pm_data *pm_data =
- kzalloc(sizeof(struct link_pm_data), GFP_KERNEL);
-
- if (!pdata || !pdata->link_pm_data) {
- mif_err("platform data is NULL\n");
- return -EINVAL;
- }
- pm_pdata = pdata->link_pm_data;
-
- if (!pm_data) {
- mif_err("link_pm_data is NULL\n");
- return -ENOMEM;
- }
-
- /* get link pm data from modemcontrol's platform data */
- pm_data->gpio_link_active = pm_pdata->gpio_link_active;
- pm_data->gpio_link_enable = pm_pdata->gpio_link_enable;
- pm_data->gpio_link_hostwake = pm_pdata->gpio_link_hostwake;
- pm_data->gpio_link_slavewake = pm_pdata->gpio_link_slavewake;
- pm_data->irq_link_hostwake = gpio_to_irq(pm_data->gpio_link_hostwake);
- pm_data->link_ldo_enable = pm_pdata->link_ldo_enable;
- pm_data->link_reconnect = pm_pdata->link_reconnect;
- pm_data->ehci_reg_dump = pm_pdata->ehci_reg_dump;
-
- pm_data->usb_ld = usb_ld;
- pm_data->link_pm_active = false;
- pm_data->ipc_debug_cnt = 0;
- usb_ld->link_pm_data = pm_data;
-
- pm_data->miscdev.minor = MISC_DYNAMIC_MINOR;
- pm_data->miscdev.name = "link_pm";
- pm_data->miscdev.fops = &link_pm_fops;
-
- r = misc_register(&pm_data->miscdev);
- if (r < 0) {
- mif_err("fail to register pm device(%d)\n", r);
- goto err_misc_register;
- }
-
- r = request_irq(pm_data->irq_link_hostwake, link_pm_irq_handler,
- IRQF_NO_SUSPEND | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
- "hostwake", (void *)pm_data);
- if (r) {
- mif_err("fail to request irq(%d)\n", r);
- goto err_request_irq;
- }
-
- r = enable_irq_wake(pm_data->irq_link_hostwake);
- if (r) {
- mif_err("failed to enable_irq_wake:%d\n", r);
- goto err_set_wake_irq;
- }
-
- /* create work queue & init work for runtime pm */
- pm_data->wq = create_singlethread_workqueue("linkpmd");
- if (!pm_data->wq) {
- mif_err("fail to create wq\n");
- goto err_create_wq;
- }
-
- pm_data->pm_notifier.notifier_call = link_pm_notifier_event;
- register_pm_notifier(&pm_data->pm_notifier);
-
- init_completion(&pm_data->active_done);
- INIT_DELAYED_WORK(&pm_data->link_pm_work, link_pm_runtime_work);
- INIT_DELAYED_WORK(&pm_data->link_pm_start, link_pm_runtime_start);
- INIT_DELAYED_WORK(&pm_data->link_reconnect_work,
- link_pm_reconnect_work);
- wake_lock_init(&pm_data->l2_wake, WAKE_LOCK_SUSPEND, "l2_hsic");
- wake_lock_init(&pm_data->boot_wake, WAKE_LOCK_SUSPEND, "boot_hsic");
- wake_lock_init(&pm_data->rpm_wake, WAKE_LOCK_SUSPEND, "rpm_hsic");
- wake_lock_init(&pm_data->tx_async_wake, WAKE_LOCK_SUSPEND, "tx_hsic");
-
-#if defined(CONFIG_SLP)
- device_init_wakeup(pm_data->miscdev.this_device, true);
-#endif
-
- return 0;
-
-err_create_wq:
- disable_irq_wake(pm_data->irq_link_hostwake);
-err_set_wake_irq:
- free_irq(pm_data->irq_link_hostwake, (void *)pm_data);
-err_request_irq:
- misc_deregister(&pm_data->miscdev);
-err_misc_register:
- kfree(pm_data);
- return r;
-}
-
-struct link_device *hsic_create_link_device(void *data)
-{
- int ret;
- struct usb_link_device *usb_ld;
- struct link_device *ld;
-
- usb_ld = kzalloc(sizeof(struct usb_link_device), GFP_KERNEL);
- if (!usb_ld)
- return NULL;
-
- INIT_LIST_HEAD(&usb_ld->ld.list);
- skb_queue_head_init(&usb_ld->ld.sk_fmt_tx_q);
- skb_queue_head_init(&usb_ld->ld.sk_raw_tx_q);
-
- ld = &usb_ld->ld;
-
- ld->name = "usb";
- ld->init_comm = usb_init_communication;
- ld->terminate_comm = usb_terminate_communication;
- ld->send = usb_send;
- ld->com_state = COM_NONE;
- ld->raw_tx_suspended = false;
- init_completion(&ld->raw_tx_resumed_by_cp);
-
- ld->tx_wq = create_singlethread_workqueue("usb_tx_wq");
- if (!ld->tx_wq) {
- mif_err("fail to create work Q.\n");
- goto err;
- }
-
- INIT_DELAYED_WORK(&ld->tx_delayed_work, usb_tx_work);
- INIT_DELAYED_WORK(&usb_ld->rx_retry_work, usb_rx_retry_work);
- usb_ld->rx_retry_cnt = 0;
-
- /* create link pm device */
- ret = usb_link_pm_init(usb_ld, data);
- if (ret)
- goto err;
-
- ret = if_usb_init(ld);
- if (ret)
- goto err;
-
- mif_info("%s : create_link_device DONE\n", usb_ld->ld.name);
- return (void *)ld;
-err:
- kfree(usb_ld);
- return NULL;
-}
-
-static void __exit if_usb_exit(void)
-{
- usb_deregister(&if_usb_driver);
-}
diff --git a/drivers/misc/modem_if_u1/modem_link_device_hsic.h b/drivers/misc/modem_if_u1/modem_link_device_hsic.h
deleted file mode 100644
index 604b067..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_hsic.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#ifndef __MODEM_LINK_DEVICE_USB_H__
-#define __MODEM_LINK_DEVICE_USB_H__
-
-
-enum {
- IF_USB_BOOT_EP = 0,
- IF_USB_FMT_EP = 0,
- IF_USB_RAW_EP,
- IF_USB_RFS_EP,
- IF_USB_CMD_EP,
- IF_USB_DEVNUM_MAX,
-};
-
-/* each pipe has 2 ep for in/out */
-#define LINKPM_DEV_NUM (IF_USB_DEVNUM_MAX * 2)
-/******************/
-/* xmm6260 specific */
-
-#define IOCTL_LINK_CONTROL_ENABLE _IO('o', 0x30)
-#define IOCTL_LINK_CONTROL_ACTIVE _IO('o', 0x31)
-#define IOCTL_LINK_GET_HOSTWAKE _IO('o', 0x32)
-#define IOCTL_LINK_CONNECTED _IO('o', 0x33)
-#define IOCTL_LINK_SET_BIAS_CLEAR _IO('o', 0x34)
-#define IOCTL_LINK_GET_PHONEACTIVE _IO('o', 0x35)
-
-/* VID,PID for IMC - XMM6260, XMM6262*/
-#define IMC_BOOT_VID 0x058b
-#define IMC_BOOT_PID 0x0041
-#define IMC_MAIN_VID 0x1519
-#define IMC_MAIN_PID 0x0020
-/* VID,PID for STE - M7400 */
-#define STE_BOOT_VID 0x04cc
-#define STE_BOOT_PID 0x7400
-#define STE_MAIN_VID 0x04cc
-#define STE_MAIN_PID 0x2333
-
-enum {
- BOOT_DOWN = 0,
- IPC_CHANNEL
-};
-
-enum ch_state {
- STATE_SUSPENDED,
- STATE_RESUMED,
-};
-
-#define HOSTWAKE_TRIGLEVEL 0
-/******************/
-
-struct link_pm_info {
- struct usb_link_device *usb_ld;
-};
-
-struct usb_id_info {
- int intf_id;
- struct usb_link_device *usb_ld;
-};
-
-struct link_pm_data {
- struct miscdevice miscdev;
- struct usb_link_device *usb_ld;
- unsigned irq_link_hostwake;
- int (*link_ldo_enable)(bool);
- unsigned gpio_link_enable;
- unsigned gpio_link_active;
- unsigned gpio_link_hostwake;
- unsigned gpio_link_slavewake;
- int (*link_reconnect)(void);
- int link_reconnect_cnt;
-
- struct workqueue_struct *wq;
- struct completion active_done;
- struct delayed_work link_pm_work;
- struct delayed_work link_pm_start;
- struct delayed_work link_reconnect_work;
- bool resume_requested;
- bool link_pm_active;
- int resume_retry_cnt;
-
- struct wake_lock l2_wake;
- struct wake_lock boot_wake;
- struct wake_lock rpm_wake;
- struct wake_lock tx_async_wake;
- struct notifier_block pm_notifier;
- bool dpm_suspending;
-
- /* Host wakeup toggle debugging */
- unsigned ipc_debug_cnt;
- unsigned long tx_cnt;
- unsigned long rx_cnt;
-
- void (*ehci_reg_dump)(struct device *);
-};
-
-struct if_usb_devdata {
- struct usb_interface *data_intf;
- struct usb_link_device *usb_ld;
- struct usb_device *usbdev;
- unsigned int tx_pipe;
- unsigned int rx_pipe;
- u8 disconnected;
-
- int format;
- struct urb *urb;
- void *rx_buf;
- unsigned int rx_buf_size;
- enum ch_state state;
-};
-
-struct usb_link_device {
- /*COMMON LINK DEVICE*/
- struct link_device ld;
-
- /*USB SPECIFIC LINK DEVICE*/
- struct usb_device *usbdev;
- struct if_usb_devdata devdata[IF_USB_DEVNUM_MAX];
- unsigned int dev_count;
- unsigned int suspended;
- int if_usb_connected;
-
- bool if_usb_is_main; /* boot,down(false) or main(true) */
-
- /* LINK PM DEVICE DATA */
- struct link_pm_data *link_pm_data;
-
- /*RX retry work by -ENOMEM*/
- struct delayed_work rx_retry_work;
- struct urb *retry_urb;
- unsigned rx_retry_cnt;
-};
-/* converts from struct link_device* to struct xxx_link_device* */
-#define to_usb_link_device(linkdev) \
- container_of(linkdev, struct usb_link_device, ld)
-
-
-#ifdef FOR_TEGRA
-extern void tegra_ehci_txfilltuning(void);
-#endif
-
-#endif
diff --git a/drivers/misc/modem_if_u1/modem_link_device_memory.h b/drivers/misc/modem_if_u1/modem_link_device_memory.h
deleted file mode 100644
index 2e83f0b..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_memory.h
+++ /dev/null
@@ -1,552 +0,0 @@
-/*
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-#ifndef __MODEM_LINK_DEVICE_MEMORY_H__
-#define __MODEM_LINK_DEVICE_MEMORY_H__
-
-#include <linux/spinlock.h>
-#include <linux/wakelock.h>
-#include <linux/workqueue.h>
-#include <linux/timer.h>
-#include <linux/platform_data/modem.h>
-
-#include "modem_prj.h"
-
-#define DPRAM_MAGIC_CODE 0xAA
-
-/* interrupt masks.*/
-#define INT_MASK_VALID 0x0080
-#define INT_MASK_CMD 0x0040
-#define INT_VALID(x) ((x) & INT_MASK_VALID)
-#define INT_CMD_VALID(x) ((x) & INT_MASK_CMD)
-#define INT_NON_CMD(x) (INT_MASK_VALID | (x))
-#define INT_CMD(x) (INT_MASK_VALID | INT_MASK_CMD | (x))
-
-#define EXT_UDL_MASK 0xF000
-#define EXT_UDL_CMD(x) ((x) & EXT_UDL_MASK)
-#define EXT_INT_VALID_MASK 0x8000
-#define EXT_CMD_VALID_MASK 0x4000
-#define UDL_CMD_VALID_MASK 0x2000
-#define EXT_INT_VALID(x) ((x) & EXT_INT_VALID_MASK)
-#define EXT_CMD_VALID(x) ((x) & EXT_CMD_VALID_MASK)
-#define UDL_CMD_VALID(x) ((x) & UDL_CMD_VALID_MASK)
-#define INT_EXT_CMD(x) (EXT_INT_VALID_MASK | EXT_CMD_VALID_MASK | (x))
-
-#define EXT_CMD_MASK(x) ((x) & 0x0FFF)
-#define EXT_CMD_SET_SPEED_LOW 0x0011
-#define EXT_CMD_SET_SPEED_MID 0x0012
-#define EXT_CMD_SET_SPEED_HIGH 0x0013
-
-#define UDL_RESULT_SUCCESS 0x1
-#define UDL_RESULT_FAIL 0x2
-
-#define UDL_CMD_MASK(x) (((x) >> 8) & 0xF)
-#define UDL_CMD_RECV_READY 0x1
-#define UDL_CMD_DL_START_REQ 0x2
-#define UDL_CMD_DL_START_RESP 0x3
-#define UDL_CMD_IMAGE_SEND_REQ 0x4
-#define UDL_CMD_SEND_DONE_RESP 0x5
-#define UDL_CMD_SEND_DONE_REQ 0x6
-#define UDL_CMD_UPDATE_DONE 0x7
-#define UDL_CMD_STATUS_UPDATE 0x8
-#define UDL_CMD_IMAGE_SEND_RESP 0x9
-#define UDL_CMD_EFS_CLEAR_RESP 0xB
-#define UDL_CMD_ALARM_BOOT_OK 0xC
-#define UDL_CMD_ALARM_BOOT_FAIL 0xD
-
-#define CMD_IMG_START_REQ 0x9200
-#define CMD_IMG_SEND_REQ 0x9400
-#define CMD_DL_SEND_DONE_REQ 0x9600
-#define CMD_UL_RECV_RESP 0x9601
-#define CMD_UL_RECV_DONE_RESP 0x9801
-
-/* special interrupt cmd indicating modem boot failure. */
-#define INT_POWERSAFE_FAIL 0xDEAD
-
-#define INT_MASK_REQ_ACK_F 0x0020
-#define INT_MASK_REQ_ACK_R 0x0010
-#define INT_MASK_RES_ACK_F 0x0008
-#define INT_MASK_RES_ACK_R 0x0004
-#define INT_MASK_SEND_F 0x0002
-#define INT_MASK_SEND_R 0x0001
-
-#define INT_MASK_REQ_ACK_RFS 0x0400 /* Request RES_ACK_RFS */
-#define INT_MASK_RES_ACK_RFS 0x0200 /* Response of REQ_ACK_RFS */
-#define INT_MASK_SEND_RFS 0x0100 /* Indicate sending RFS data */
-
-#define INT_MASK_RES_ACK_SET \
- (INT_MASK_RES_ACK_F | INT_MASK_RES_ACK_R | INT_MASK_RES_ACK_RFS)
-
-#define INT_MASK_SEND_SET \
- (INT_MASK_SEND_F | INT_MASK_SEND_R | INT_MASK_SEND_RFS)
-
-#define INT_CMD_MASK(x) ((x) & 0xF)
-#define INT_CMD_INIT_START 0x1
-#define INT_CMD_INIT_END 0x2
-#define INT_CMD_REQ_ACTIVE 0x3
-#define INT_CMD_RES_ACTIVE 0x4
-#define INT_CMD_REQ_TIME_SYNC 0x5
-#define INT_CMD_CRASH_RESET 0x7
-#define INT_CMD_PHONE_START 0x8
-#define INT_CMD_ERR_DISPLAY 0x9
-#define INT_CMD_CRASH_EXIT 0x9
-#define INT_CMD_CP_DEEP_SLEEP 0xA
-#define INT_CMD_NV_REBUILDING 0xB
-#define INT_CMD_EMER_DOWN 0xC
-#define INT_CMD_PIF_INIT_DONE 0xD
-#define INT_CMD_SILENT_NV_REBUILDING 0xE
-#define INT_CMD_NORMAL_PWR_OFF 0xF
-
-#define START_FLAG 0x7F
-#define END_FLAG 0x7E
-
-#define DP_MAGIC_DMDL 0x4445444C
-#define DP_MAGIC_UMDL 0x4445444D
-#define DP_DPRAM_SIZE 0x4000
-#define DP_DEFAULT_WRITE_LEN 8168
-#define DP_DEFAULT_DUMP_LEN 16128
-#define DP_DUMP_HEADER_SIZE 7
-
-#define UDL_TIMEOUT (50 * HZ)
-#define UDL_SEND_TIMEOUT (200 * HZ)
-#define FORCE_CRASH_ACK_TIMEOUT (5 * HZ)
-#define DUMP_TIMEOUT (30 * HZ)
-#define DUMP_START_TIMEOUT (100 * HZ)
-#define DUMP_WAIT_TIMEOUT (HZ >> 10) /* 1/1024 second */
-#define RES_ACK_WAIT_TIMEOUT (HZ >> 8) /* 1/256 second */
-#define REQ_ACK_DELAY (HZ >> 7) /* 1/128 second */
-
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
-#define MAX_RETRY_CNT 1
-#else
-#define MAX_RETRY_CNT 3
-#endif
-
-#define MAX_SKB_TXQ_DEPTH 1024
-
-enum host_boot_mode {
- HOST_BOOT_MODE_NORMAL,
- HOST_BOOT_MODE_DUMP,
-};
-
-enum dpram_init_status {
- DPRAM_INIT_STATE_NONE,
- DPRAM_INIT_STATE_READY,
-};
-
-enum circ_dir_type {
- TX,
- RX,
-};
-
-enum circ_ptr_type {
- HEAD,
- TAIL,
-};
-
-struct dpram_boot_img {
- char *addr;
- int size;
- enum host_boot_mode mode;
- unsigned req;
- unsigned resp;
-};
-
-#define MAX_PAYLOAD_SIZE 0x2000
-struct dpram_boot_frame {
- unsigned req; /* AP->CP request */
- unsigned resp; /* response expected by AP */
- ssize_t len; /* data size in the buffer */
- unsigned offset; /* offset to write into DPRAM */
- char data[MAX_PAYLOAD_SIZE];
-};
-
-/* buffer type for modem image */
-struct dpram_dump_arg {
- char *buff; /* pointer to the buffer */
- int buff_size; /* buffer size */
- unsigned req; /* AP->CP request */
- unsigned resp; /* CP->AP response */
- bool cmd; /* AP->CP command */
-};
-
-struct dpram_boot_map {
- u32 __iomem *magic;
- u8 __iomem *buff;
- u32 __iomem *req;
- u32 __iomem *resp;
- u32 size;
-};
-
-struct qc_dpram_boot_map {
- u8 __iomem *buff;
- u16 __iomem *frame_size;
- u16 __iomem *tag;
- u16 __iomem *count;
-};
-
-struct dpram_dload_map {
- u32 __iomem *magic;
- u8 __iomem *buff;
-};
-
-struct dpram_uload_map {
- u32 __iomem *magic;
- u8 __iomem *buff;
-};
-
-struct ul_header {
- u8 bop;
- u16 total_frame;
- u16 curr_frame;
- u16 len;
-} __packed;
-
-struct dpram_udl_param {
- unsigned char *addr;
- unsigned int size;
- unsigned int count;
- unsigned int tag;
-};
-
-struct dpram_udl_check {
- unsigned int total_size;
- unsigned int rest_size;
- unsigned int send_size;
- unsigned int copy_start;
- unsigned int copy_complete;
- unsigned int boot_complete;
-};
-
-struct dpram_circ_status {
- u8 *buff;
- unsigned int qsize; /* the size of a circular buffer */
- unsigned int in;
- unsigned int out;
- int size; /* the size of free space or received data */
-};
-
-#define DP_BOOT_BUFF_OFFSET 4
-#define DP_DLOAD_BUFF_OFFSET 4
-#define DP_ULOAD_BUFF_OFFSET 4
-#define DP_BOOT_REQ_OFFSET 0
-#define DP_BOOT_RESP_OFFSET 8
-
-static inline bool circ_valid(u32 qsize, u32 in, u32 out)
-{
- if (in >= qsize)
- return false;
-
- if (out >= qsize)
- return false;
-
- return true;
-}
-
-static inline int circ_get_space(int qsize, int in, int out)
-{
- return (in < out) ? (out - in - 1) : (qsize + out - in - 1);
-}
-
-static inline int circ_get_usage(int qsize, int in, int out)
-{
- return (in >= out) ? (in - out) : (qsize - out + in);
-}
-
-/**
- * circ_read
- * @dst: start address of the destination buffer
- * @src: start address of the buffer in a circular queue
- * @qsize: size of the circular queue
- * @out: offset to read
- * @len: length of data to be read
- *
- * Should be invoked after checking data length
- */
-static inline void circ_read(u8 *dst, u8 __iomem *src, u32 qsize, u32 out,
- u32 len)
-{
- unsigned len1;
-
- if ((out + len) <= qsize) {
- /* ----- (out) (in) ----- */
- /* ----- 7f 00 00 7e ----- */
- memcpy(dst, (src + out), len);
- } else {
- /* (in) ----------- (out) */
- /* 00 7e ----------- 7f 00 */
-
- /* 1) data start (out) ~ buffer end */
- len1 = qsize - out;
- memcpy(dst, (src + out), len1);
-
- /* 2) buffer start ~ data end (in?) */
- memcpy((dst + len1), src, (len - len1));
- }
-}
-
-/**
- * circ_write
- * @dst: pointer to the start of the circular queue
- * @src: pointer to the source
- * @qsize: size of the circular queue
- * @in: offset to write
- * @len: length of data to be written
- *
- * Should be invoked after checking free space
- */
-static inline void circ_write(u8 __iomem *dst, u8 *src, u32 qsize, u32 in,
- u32 len)
-{
- u32 space;
-
- if ((in + len) < qsize) {
- /* (in) ----------- (out) */
- /* 00 7e ----------- 7f 00 */
- memcpy((dst + in), src, len);
- } else {
- /* ----- (out) (in) ----- */
- /* ----- 7f 00 00 7e ----- */
-
- /* 1) space start (in) ~ buffer end */
- space = qsize - in;
- memcpy((dst + in), src, ((len > space) ? space : len));
-
- /* 2) buffer start ~ data end */
- if (len > space)
- memcpy(dst, (src + space), (len - space));
- }
-}
-
-/**
- * circ_dir
- * @dir: communication direction (enum circ_dir_type)
- *
- * Returns the direction of a circular queue
- *
- */
-static const inline char *circ_dir(enum circ_dir_type dir)
-{
- if (dir == TX)
- return "TXQ";
- else
- return "RXQ";
-}
-
-/**
- * circ_ptr
- * @ptr: circular queue pointer (enum circ_ptr_type)
- *
- * Returns the name of a circular queue pointer
- *
- */
-static const inline char *circ_ptr(enum circ_ptr_type ptr)
-{
- if (ptr == HEAD)
- return "head";
- else
- return "tail";
-}
-
-#if 1
-#define DPRAM_MAX_RXBQ_SIZE 256
-
-struct mif_rxb {
- u8 *buff;
- unsigned size;
-
- u8 *data;
- unsigned len;
-};
-
-struct mif_rxb_queue {
- int size;
- int in;
- int out;
- struct mif_rxb *rxb;
-};
-
-/*
-** RXB (DPRAM RX buffer) functions
-*/
-static inline struct mif_rxb *rxbq_create_pool(unsigned size, int count)
-{
- struct mif_rxb *rxb;
- u8 *buff;
- int i;
-
- rxb = kzalloc(sizeof(struct mif_rxb) * count, GFP_KERNEL);
- if (!rxb) {
- mif_info("ERR! kzalloc rxb fail\n");
- return NULL;
- }
-
- buff = kzalloc((size * count), GFP_KERNEL|GFP_DMA);
- if (!buff) {
- mif_info("ERR! kzalloc buff fail\n");
- kfree(rxb);
- return NULL;
- }
-
- for (i = 0; i < count; i++) {
- rxb[i].buff = buff;
- rxb[i].size = size;
- buff += size;
- }
-
- return rxb;
-}
-
-static inline unsigned rxbq_get_page_size(unsigned len)
-{
- return ((len + PAGE_SIZE - 1) >> PAGE_SHIFT) << PAGE_SHIFT;
-}
-
-static inline bool rxbq_empty(struct mif_rxb_queue *rxbq)
-{
- return (rxbq->in == rxbq->out) ? true : false;
-}
-
-static inline int rxbq_free_size(struct mif_rxb_queue *rxbq)
-{
- int in = rxbq->in;
- int out = rxbq->out;
- int qsize = rxbq->size;
- return (in < out) ? (out - in - 1) : (qsize + out - in - 1);
-}
-
-static inline struct mif_rxb *rxbq_get_free_rxb(struct mif_rxb_queue *rxbq)
-{
- struct mif_rxb *rxb = NULL;
-
- if (likely(rxbq_free_size(rxbq) > 0)) {
- rxb = &rxbq->rxb[rxbq->in];
- rxbq->in++;
- if (rxbq->in >= rxbq->size)
- rxbq->in -= rxbq->size;
- rxb->data = rxb->buff;
- }
-
- return rxb;
-}
-
-static inline int rxbq_size(struct mif_rxb_queue *rxbq)
-{
- int in = rxbq->in;
- int out = rxbq->out;
- int qsize = rxbq->size;
- return (in >= out) ? (in - out) : (qsize - out + in);
-}
-
-static inline struct mif_rxb *rxbq_get_data_rxb(struct mif_rxb_queue *rxbq)
-{
- struct mif_rxb *rxb = NULL;
-
- if (likely(!rxbq_empty(rxbq))) {
- rxb = &rxbq->rxb[rxbq->out];
- rxbq->out++;
- if (rxbq->out >= rxbq->size)
- rxbq->out -= rxbq->size;
- }
-
- return rxb;
-}
-
-static inline u8 *rxb_put(struct mif_rxb *rxb, unsigned len)
-{
- rxb->len = len;
- return rxb->data;
-}
-
-static inline void rxb_clear(struct mif_rxb *rxb)
-{
- rxb->data = NULL;
- rxb->len = 0;
-}
-#endif
-
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
-#define MAX_TRACE_SIZE 1024
-
-struct trace_data {
- struct timespec ts;
- enum dev_format dev;
- u8 *data;
- int size;
-};
-
-struct trace_queue {
- spinlock_t lock;
- int in;
- int out;
- struct trace_data trd[MAX_TRACE_SIZE];
-};
-
-static inline struct trace_data *trq_get_free_slot(struct trace_queue *trq)
-{
- int in = trq->in;
- int out = trq->out;
- int qsize = MAX_TRACE_SIZE;
- struct trace_data *trd = NULL;
- unsigned long int flags;
-
- spin_lock_irqsave(&trq->lock, flags);
-
- if (circ_get_space(qsize, in, out) < 1) {
- spin_unlock_irqrestore(&trq->lock, flags);
- return NULL;
- }
-
- trd = &trq->trd[in];
-
- in++;
- if (in == qsize)
- trq->in = 0;
- else
- trq->in = in;
-
- spin_unlock_irqrestore(&trq->lock, flags);
-
- return trd;
-}
-
-static inline struct trace_data *trq_get_data_slot(struct trace_queue *trq)
-{
- int in = trq->in;
- int out = trq->out;
- int qsize = MAX_TRACE_SIZE;
- struct trace_data *trd = NULL;
- unsigned long int flags;
-
- spin_lock_irqsave(&trq->lock, flags);
-
- if (circ_get_usage(qsize, in, out) < 1) {
- spin_unlock_irqrestore(&trq->lock, flags);
- return NULL;
- }
-
- trd = &trq->trd[out];
-
- out++;
- if (out == qsize)
- trq->out = 0;
- else
- trq->out = out;
-
- spin_unlock_irqrestore(&trq->lock, flags);
-
- return trd;
-}
-#endif
-
-#endif
diff --git a/drivers/misc/modem_if_u1/modem_link_device_mipi.c b/drivers/misc/modem_if_u1/modem_link_device_mipi.c
deleted file mode 100644
index f2804e9..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_mipi.c
+++ /dev/null
@@ -1,1418 +0,0 @@
-/* /linux/drivers/new_modem_if/link_dev_mipi.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/device.h>
-#include <linux/sched.h>
-#include <linux/irq.h>
-#include <linux/poll.h>
-#include <linux/gpio.h>
-#include <linux/if_arp.h>
-#include <linux/wakelock.h>
-#include <linux/semaphore.h>
-#include <linux/hsi_driver_if.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include "modem_link_device_mipi.h"
-#include "modem_utils.h"
-
-static int mipi_hsi_init_communication(struct link_device *ld,
- struct io_device *iod)
-{
- struct mipi_link_device *mipi_ld = to_mipi_link_device(ld);
-
- switch (iod->format) {
- case IPC_FMT:
- return hsi_init_handshake(mipi_ld, HSI_INIT_MODE_NORMAL);
-
- case IPC_BOOT:
- return hsi_init_handshake(mipi_ld,
- HSI_INIT_MODE_FLASHLESS_BOOT);
-
- case IPC_RAMDUMP:
- return hsi_init_handshake(mipi_ld,
- HSI_INIT_MODE_CP_RAMDUMP);
-
- case IPC_RFS:
- case IPC_RAW:
- default:
- return 0;
- }
-}
-
-static void mipi_hsi_terminate_communication(
- struct link_device *ld, struct io_device *iod)
-{
- struct mipi_link_device *mipi_ld = to_mipi_link_device(ld);
-
- switch (iod->format) {
- case IPC_BOOT:
- if (&mipi_ld->hsi_channles[HSI_FLASHLESS_CHANNEL].opened)
- if_hsi_close_channel(&mipi_ld->hsi_channles[
- HSI_FLASHLESS_CHANNEL]);
- break;
-
- case IPC_RAMDUMP:
- if (&mipi_ld->hsi_channles[HSI_CP_RAMDUMP_CHANNEL].opened)
- if_hsi_close_channel(&mipi_ld->hsi_channles[
- HSI_CP_RAMDUMP_CHANNEL]);
- break;
-
- case IPC_FMT:
- case IPC_RFS:
- case IPC_RAW:
- default:
- break;
- }
-}
-
-static int mipi_hsi_send(struct link_device *ld, struct io_device *iod,
- struct sk_buff *skb)
-{
- int ret;
- struct mipi_link_device *mipi_ld = to_mipi_link_device(ld);
-
- struct sk_buff_head *txq;
-
- switch (iod->format) {
- case IPC_RAW:
- txq = &ld->sk_raw_tx_q;
- break;
-
- case IPC_RAMDUMP:
- ret = if_hsi_write(&mipi_ld->hsi_channles[
- HSI_CP_RAMDUMP_CHANNEL],
- (u32 *)skb->data, skb->len);
- if (ret < 0) {
- mif_err("[MIPI-HSI] write fail : %d\n", ret);
- dev_kfree_skb_any(skb);
- return ret;
- } else
- mif_debug("[MIPI-HSI] write Done\n");
- dev_kfree_skb_any(skb);
- return ret;
-
- case IPC_BOOT:
- ret = if_hsi_write(&mipi_ld->hsi_channles[
- HSI_FLASHLESS_CHANNEL],
- (u32 *)skb->data, skb->len);
- if (ret < 0) {
- mif_err("[MIPI-HSI] write fail : %d\n", ret);
- dev_kfree_skb_any(skb);
- return ret;
- } else
- mif_debug("[MIPI-HSI] write Done\n");
- dev_kfree_skb_any(skb);
- return ret;
-
- case IPC_FMT:
- case IPC_RFS:
- default:
- txq = &ld->sk_fmt_tx_q;
- break;
- }
-
- /* save io device */
- skbpriv(skb)->iod = iod;
- /* en queue skb data */
- skb_queue_tail(txq, skb);
-
- queue_work(ld->tx_wq, &ld->tx_work);
- return skb->len;
-}
-
-static void mipi_hsi_tx_work(struct work_struct *work)
-{
- int ret;
- struct link_device *ld = container_of(work, struct link_device,
- tx_work);
- struct mipi_link_device *mipi_ld = to_mipi_link_device(ld);
- struct io_device *iod;
- struct sk_buff *fmt_skb;
- struct sk_buff *raw_skb;
- int send_channel = 0;
-
- while (ld->sk_fmt_tx_q.qlen || ld->sk_raw_tx_q.qlen) {
- mif_debug("[MIPI-HSI] fmt qlen : %d, raw qlen:%d\n",
- ld->sk_fmt_tx_q.qlen, ld->sk_raw_tx_q.qlen);
-
- fmt_skb = skb_dequeue(&ld->sk_fmt_tx_q);
- if (fmt_skb) {
- iod = skbpriv(fmt_skb)->iod;
-
- mif_debug("[MIPI-HSI] dequeue. fmt qlen : %d\n",
- ld->sk_fmt_tx_q.qlen);
-
- if (ld->com_state != COM_ONLINE) {
- mif_err("[MIPI-HSI] CP not ready\n");
- skb_queue_head(&ld->sk_fmt_tx_q, fmt_skb);
- return;
- }
-
- switch (iod->format) {
- case IPC_FMT:
- send_channel = HSI_FMT_CHANNEL;
- break;
-
- case IPC_RFS:
- send_channel = HSI_RFS_CHANNEL;
- break;
-
- case IPC_BOOT:
- send_channel = HSI_FLASHLESS_CHANNEL;
- break;
-
- case IPC_RAMDUMP:
- send_channel = HSI_CP_RAMDUMP_CHANNEL;
- break;
-
- default:
- break;
- }
- ret = if_hsi_protocol_send(mipi_ld, send_channel,
- (u32 *)fmt_skb->data, fmt_skb->len);
- if (ret < 0) {
- /* TODO: Re Enqueue */
- mif_err("[MIPI-HSI] write fail : %d\n", ret);
- } else
- mif_debug("[MIPI-HSI] write Done\n");
-
- dev_kfree_skb_any(fmt_skb);
- }
-
- raw_skb = skb_dequeue(&ld->sk_raw_tx_q);
- if (raw_skb) {
- if (ld->com_state != COM_ONLINE) {
- mif_err("[MIPI-HSI] RAW CP not ready\n");
- skb_queue_head(&ld->sk_raw_tx_q, raw_skb);
- return;
- }
-
- mif_debug("[MIPI-HSI] dequeue. raw qlen:%d\n",
- ld->sk_raw_tx_q.qlen);
-
- ret = if_hsi_protocol_send(mipi_ld, HSI_RAW_CHANNEL,
- (u32 *)raw_skb->data, raw_skb->len);
- if (ret < 0) {
- /* TODO: Re Enqueue */
- mif_err("[MIPI-HSI] write fail : %d\n", ret);
- } else
- mif_debug("[MIPI-HSI] write Done\n");
-
- dev_kfree_skb_any(raw_skb);
- }
- }
-}
-
-static int __devinit if_hsi_probe(struct hsi_device *dev);
-static struct hsi_device_driver if_hsi_driver = {
- .ctrl_mask = ANY_HSI_CONTROLLER,
- .probe = if_hsi_probe,
- .driver = {
- .name = "if_hsi_driver"
- },
-};
-
-static int if_hsi_set_wakeline(struct if_hsi_channel *channel,
- unsigned int state)
-{
- int ret;
-
- spin_lock_bh(&channel->acwake_lock);
- if (channel->acwake == state) {
- spin_unlock_bh(&channel->acwake_lock);
- return 0;
- }
-
- ret = hsi_ioctl(channel->dev, state ?
- HSI_IOCTL_ACWAKE_UP : HSI_IOCTL_ACWAKE_DOWN, NULL);
- if (ret) {
- mif_err("[MIPI-HSI] ACWAKE(%d) setting fail : %d\n", state,
- ret);
- /* duplicate operation */
- if (ret == -EPERM)
- channel->acwake = state;
- spin_unlock_bh(&channel->acwake_lock);
- return ret;
- }
-
- channel->acwake = state;
- spin_unlock_bh(&channel->acwake_lock);
-
- mif_debug("[MIPI-HSI] ACWAKE_%d(%d)\n", channel->channel_id, state);
- return 0;
-}
-
-static void if_hsi_acwake_down_func(unsigned long data)
-{
- int i;
- struct if_hsi_channel *channel;
- struct mipi_link_device *mipi_ld = (struct mipi_link_device *)data;
-
- mif_debug("[MIPI-HSI]\n");
-
- for (i = 0; i < HSI_NUM_OF_USE_CHANNELS; i++) {
- channel = &mipi_ld->hsi_channles[i];
-
- if ((channel->send_step == STEP_IDLE) &&
- (channel->recv_step == STEP_IDLE)) {
- if_hsi_set_wakeline(channel, 0);
- } else {
- mod_timer(&mipi_ld->hsi_acwake_down_timer, jiffies +
- HSI_ACWAKE_DOWN_TIMEOUT);
- mif_debug("[MIPI-HSI] mod_timer done(%d)\n",
- HSI_ACWAKE_DOWN_TIMEOUT);
- return;
- }
- }
-}
-
-static int if_hsi_open_channel(struct if_hsi_channel *channel)
-{
- int ret;
-
- if (channel->opened) {
- mif_debug("[MIPI-HSI] channel %d is already opened\n",
- channel->channel_id);
- return 0;
- }
-
- ret = hsi_open(channel->dev);
- if (ret) {
- mif_err("[MIPI-HSI] hsi_open fail : %d\n", ret);
- return ret;
- }
- channel->opened = 1;
-
- channel->send_step = STEP_IDLE;
- channel->recv_step = STEP_IDLE;
-
- mif_debug("[MIPI-HSI] hsi_open Done : %d\n", channel->channel_id);
- return 0;
-}
-
-static int if_hsi_close_channel(struct if_hsi_channel *channel)
-{
- unsigned long int flags;
-
- if (!channel->opened) {
- mif_debug("[MIPI-HSI] channel %d is already closed\n",
- channel->channel_id);
- return 0;
- }
-
- if_hsi_set_wakeline(channel, 0);
- hsi_write_cancel(channel->dev);
- hsi_read_cancel(channel->dev);
-
- spin_lock_irqsave(&channel->tx_state_lock, flags);
- channel->tx_state &= ~HSI_CHANNEL_TX_STATE_WRITING;
- spin_unlock_irqrestore(&channel->tx_state_lock, flags);
- spin_lock_irqsave(&channel->rx_state_lock, flags);
- channel->rx_state &= ~HSI_CHANNEL_RX_STATE_READING;
- spin_unlock_irqrestore(&channel->rx_state_lock, flags);
-
- hsi_close(channel->dev);
- channel->opened = 0;
-
- channel->send_step = STEP_CLOSED;
- channel->recv_step = STEP_CLOSED;
-
- mif_debug("[MIPI-HSI] hsi_close Done : %d\n", channel->channel_id);
- return 0;
-}
-
-static void mipi_hsi_start_work(struct work_struct *work)
-{
- int ret;
- u32 start_cmd = 0xC2;
- struct mipi_link_device *mipi_ld =
- container_of(work, struct mipi_link_device,
- start_work.work);
-
- ret = if_hsi_protocol_send(mipi_ld, HSI_CMD_CHANNEL, &start_cmd, 1);
- if (ret < 0) {
- /* TODO: Re Enqueue */
- mif_err("[MIPI-HSI] First write fail : %d\n", ret);
- } else {
- mif_debug("[MIPI-HSI] First write Done : %d\n", ret);
- mipi_ld->ld.com_state = COM_ONLINE;
- }
-}
-
-static int hsi_init_handshake(struct mipi_link_device *mipi_ld, int mode)
-{
- int ret;
- int i;
- struct hst_ctx tx_config;
- struct hsr_ctx rx_config;
-
- switch (mode) {
- case HSI_INIT_MODE_NORMAL:
- if (timer_pending(&mipi_ld->hsi_acwake_down_timer))
- del_timer(&mipi_ld->hsi_acwake_down_timer);
-
- for (i = 0; i < HSI_NUM_OF_USE_CHANNELS; i++) {
- if (mipi_ld->hsi_channles[i].opened) {
- hsi_write_cancel(mipi_ld->hsi_channles[i].dev);
- hsi_read_cancel(mipi_ld->hsi_channles[i].dev);
- } else {
- ret = if_hsi_open_channel(
- &mipi_ld->hsi_channles[i]);
- if (ret)
- return ret;
- }
-
- hsi_ioctl(mipi_ld->hsi_channles[i].dev,
- HSI_IOCTL_GET_TX, &tx_config);
- tx_config.mode = 2;
- tx_config.divisor = 0; /* Speed : 96MHz */
- tx_config.channels = HSI_MAX_CHANNELS;
- hsi_ioctl(mipi_ld->hsi_channles[i].dev,
- HSI_IOCTL_SET_TX, &tx_config);
-
- hsi_ioctl(mipi_ld->hsi_channles[i].dev,
- HSI_IOCTL_GET_RX, &rx_config);
- rx_config.mode = 2;
- rx_config.divisor = 0; /* Speed : 96MHz */
- rx_config.channels = HSI_MAX_CHANNELS;
- hsi_ioctl(mipi_ld->hsi_channles[i].dev,
- HSI_IOCTL_SET_RX, &rx_config);
- mif_debug("[MIPI-HSI] Set TX/RX MIPI-HSI\n");
-
- hsi_ioctl(mipi_ld->hsi_channles[i].dev,
- HSI_IOCTL_SET_ACREADY_NORMAL, NULL);
- mif_debug("[MIPI-HSI] ACREADY_NORMAL\n");
- }
-
- if (mipi_ld->ld.com_state != COM_ONLINE)
- mipi_ld->ld.com_state = COM_HANDSHAKE;
-
- ret = hsi_read(mipi_ld->hsi_channles[HSI_CONTROL_CHANNEL].dev,
- mipi_ld->hsi_channles[HSI_CONTROL_CHANNEL].rx_data,
- 1);
- if (ret)
- mif_err("[MIPI-HSI] hsi_read fail : %d\n", ret);
-
- if (mipi_ld->ld.com_state != COM_ONLINE)
- schedule_delayed_work(&mipi_ld->start_work, 3 * HZ);
-
- mif_debug("[MIPI-HSI] hsi_init_handshake Done : MODE_NORMAL\n");
- return 0;
-
- case HSI_INIT_MODE_FLASHLESS_BOOT:
- mipi_ld->ld.com_state = COM_BOOT;
-
- if (mipi_ld->hsi_channles[HSI_FLASHLESS_CHANNEL].opened) {
- hsi_write_cancel(mipi_ld->hsi_channles[
- HSI_FLASHLESS_CHANNEL].dev);
- hsi_read_cancel(mipi_ld->hsi_channles[
- HSI_FLASHLESS_CHANNEL].dev);
- } else {
- ret = if_hsi_open_channel(
- &mipi_ld->hsi_channles[HSI_FLASHLESS_CHANNEL]);
- if (ret)
- return ret;
- }
-
- hsi_ioctl(mipi_ld->hsi_channles[HSI_FLASHLESS_CHANNEL].dev,
- HSI_IOCTL_GET_TX, &tx_config);
- tx_config.mode = 2;
- tx_config.divisor = 0; /* Speed : 96MHz */
- tx_config.channels = 1;
- hsi_ioctl(mipi_ld->hsi_channles[HSI_FLASHLESS_CHANNEL].dev,
- HSI_IOCTL_SET_TX, &tx_config);
-
- hsi_ioctl(mipi_ld->hsi_channles[HSI_FLASHLESS_CHANNEL].dev,
- HSI_IOCTL_GET_RX, &rx_config);
- rx_config.mode = 2;
- rx_config.divisor = 0; /* Speed : 96MHz */
- rx_config.channels = 1;
- hsi_ioctl(mipi_ld->hsi_channles[HSI_FLASHLESS_CHANNEL].dev,
- HSI_IOCTL_SET_RX, &rx_config);
- mif_debug("[MIPI-HSI] Set TX/RX MIPI-HSI\n");
-
- if (!wake_lock_active(&mipi_ld->wlock)) {
- wake_lock(&mipi_ld->wlock);
- mif_debug("[MIPI-HSI] wake_lock\n");
- }
-
- if_hsi_set_wakeline(
- &mipi_ld->hsi_channles[HSI_FLASHLESS_CHANNEL], 1);
-
- ret = hsi_read(mipi_ld->hsi_channles[HSI_FLASHLESS_CHANNEL].dev,
- mipi_ld->hsi_channles[HSI_FLASHLESS_CHANNEL].rx_data,
- HSI_FLASHBOOT_ACK_LEN / 4);
- if (ret)
- mif_err("[MIPI-HSI] hsi_read fail : %d\n", ret);
-
- hsi_ioctl(mipi_ld->hsi_channles[HSI_FLASHLESS_CHANNEL].dev,
- HSI_IOCTL_SET_ACREADY_NORMAL, NULL);
-
- mif_debug("[MIPI-HSI] hsi_init_handshake Done : FLASHLESS_BOOT\n");
- return 0;
-
- case HSI_INIT_MODE_CP_RAMDUMP:
- mipi_ld->ld.com_state = COM_CRASH;
-
- if (mipi_ld->hsi_channles[HSI_CP_RAMDUMP_CHANNEL].opened) {
- hsi_write_cancel(mipi_ld->hsi_channles[
- HSI_CP_RAMDUMP_CHANNEL].dev);
- hsi_read_cancel(mipi_ld->hsi_channles[
- HSI_CP_RAMDUMP_CHANNEL].dev);
- } else {
- ret = if_hsi_open_channel(
- &mipi_ld->hsi_channles[HSI_CP_RAMDUMP_CHANNEL]);
- if (ret)
- return ret;
- }
-
- hsi_ioctl(mipi_ld->hsi_channles[HSI_CP_RAMDUMP_CHANNEL].dev,
- HSI_IOCTL_GET_TX, &tx_config);
- tx_config.mode = 2;
- tx_config.divisor = 0; /* Speed : 96MHz */
- tx_config.channels = 1;
- hsi_ioctl(mipi_ld->hsi_channles[HSI_CP_RAMDUMP_CHANNEL].dev,
- HSI_IOCTL_SET_TX, &tx_config);
-
- hsi_ioctl(mipi_ld->hsi_channles[HSI_CP_RAMDUMP_CHANNEL].dev,
- HSI_IOCTL_GET_RX, &rx_config);
- rx_config.mode = 2;
- rx_config.divisor = 0; /* Speed : 96MHz */
- rx_config.channels = 1;
- hsi_ioctl(mipi_ld->hsi_channles[HSI_CP_RAMDUMP_CHANNEL].dev,
- HSI_IOCTL_SET_RX, &rx_config);
- mif_debug("[MIPI-HSI] Set TX/RX MIPI-HSI\n");
-
- if (!wake_lock_active(&mipi_ld->wlock)) {
- wake_lock(&mipi_ld->wlock);
- mif_debug("[MIPI-HSI] wake_lock\n");
- }
-
- if_hsi_set_wakeline(
- &mipi_ld->hsi_channles[HSI_CP_RAMDUMP_CHANNEL], 1);
-
- ret = hsi_read(
- mipi_ld->hsi_channles[HSI_CP_RAMDUMP_CHANNEL].dev,
- mipi_ld->hsi_channles[HSI_CP_RAMDUMP_CHANNEL].rx_data,
- DUMP_ERR_INFO_SIZE);
- if (ret)
- mif_err("[MIPI-HSI] hsi_read fail : %d\n", ret);
-
- hsi_ioctl(mipi_ld->hsi_channles[HSI_CP_RAMDUMP_CHANNEL].dev,
- HSI_IOCTL_SET_ACREADY_NORMAL, NULL);
-
- mif_debug("[MIPI-HSI] hsi_init_handshake Done : RAMDUMP\n");
- return 0;
-
- default:
- return -EINVAL;
- }
-}
-
-static u32 if_hsi_create_cmd(u32 cmd_type, int ch, void *arg)
-{
- u32 cmd = 0;
- unsigned int size = 0;
-
- switch (cmd_type) {
- case HSI_LL_MSG_BREAK:
- return 0;
-
- case HSI_LL_MSG_CONN_CLOSED:
- cmd = ((HSI_LL_MSG_CONN_CLOSED & 0x0000000F) << 28)
- |((ch & 0x000000FF) << 24);
- return cmd;
-
- case HSI_LL_MSG_ACK:
- size = *(unsigned int *)arg;
-
- cmd = ((HSI_LL_MSG_ACK & 0x0000000F) << 28)
- |((ch & 0x000000FF) << 24) | ((size & 0x00FFFFFF));
- return cmd;
-
- case HSI_LL_MSG_NAK:
- cmd = ((HSI_LL_MSG_NAK & 0x0000000F) << 28)
- |((ch & 0x000000FF) << 24);
- return cmd;
-
- case HSI_LL_MSG_OPEN_CONN_OCTET:
- size = *(unsigned int *)arg;
-
- cmd = ((HSI_LL_MSG_OPEN_CONN_OCTET & 0x0000000F)
- << 28) | ((ch & 0x000000FF) << 24)
- | ((size & 0x00FFFFFF));
- return cmd;
-
- case HSI_LL_MSG_OPEN_CONN:
- case HSI_LL_MSG_CONF_RATE:
- case HSI_LL_MSG_CANCEL_CONN:
- case HSI_LL_MSG_CONN_READY:
- case HSI_LL_MSG_ECHO:
- case HSI_LL_MSG_INFO_REQ:
- case HSI_LL_MSG_INFO:
- case HSI_LL_MSG_CONFIGURE:
- case HSI_LL_MSG_ALLOCATE_CH:
- case HSI_LL_MSG_RELEASE_CH:
- case HSI_LL_MSG_INVALID:
- default:
- mif_err("[MIPI-HSI] ERROR... CMD Not supported : %08x\n",
- cmd_type);
- return -EINVAL;
- }
-}
-
-static void if_hsi_cmd_work(struct work_struct *work)
-{
- int ret;
- unsigned long int flags;
- struct mipi_link_device *mipi_ld =
- container_of(work, struct mipi_link_device, cmd_work);
- struct if_hsi_channel *channel =
- &mipi_ld->hsi_channles[HSI_CONTROL_CHANNEL];
- struct if_hsi_command *hsi_cmd;
-
- mif_debug("[MIPI-HSI] cmd_work\n");
-
- do {
- spin_lock_irqsave(&mipi_ld->list_cmd_lock, flags);
- if (!list_empty(&mipi_ld->list_of_hsi_cmd)) {
- hsi_cmd = list_entry(mipi_ld->list_of_hsi_cmd.next,
- struct if_hsi_command, list);
- list_del(&hsi_cmd->list);
- spin_unlock_irqrestore(&mipi_ld->list_cmd_lock, flags);
-
- channel->send_step = STEP_TX;
- if_hsi_set_wakeline(channel, 1);
- mod_timer(&mipi_ld->hsi_acwake_down_timer, jiffies +
- HSI_ACWAKE_DOWN_TIMEOUT);
- } else {
- spin_unlock_irqrestore(&mipi_ld->list_cmd_lock, flags);
- channel->send_step = STEP_IDLE;
- break;
- }
- mif_debug("[MIPI-HSI] take command : %08x\n", hsi_cmd->command);
-
- ret = if_hsi_write(channel, &hsi_cmd->command, 4);
- if (ret < 0) {
- mif_err("[MIPI-HSI] write command fail : %d\n", ret);
- if_hsi_set_wakeline(channel, 0);
- channel->send_step = STEP_IDLE;
- return;
- }
- mif_debug("[MIPI-HSI] SEND CMD : %08x\n", hsi_cmd->command);
-
- kfree(hsi_cmd);
- } while (true);
-}
-
-static int if_hsi_send_command(struct mipi_link_device *mipi_ld,
- u32 cmd_type, int ch, u32 param)
-{
- unsigned long int flags;
- struct if_hsi_command *hsi_cmd;
-
- hsi_cmd = kmalloc(sizeof(struct if_hsi_command), GFP_ATOMIC);
- if (!hsi_cmd) {
- mif_err("[MIPI-HSI] hsi_cmd kmalloc fail\n");
- return -ENOMEM;
- }
- INIT_LIST_HEAD(&hsi_cmd->list);
-
- hsi_cmd->command = if_hsi_create_cmd(cmd_type, ch, &param);
- mif_debug("[MIPI-HSI] made command : %08x\n", hsi_cmd->command);
-
- spin_lock_irqsave(&mipi_ld->list_cmd_lock, flags);
- list_add_tail(&hsi_cmd->list, &mipi_ld->list_of_hsi_cmd);
- spin_unlock_irqrestore(&mipi_ld->list_cmd_lock, flags);
-
- mif_debug("[MIPI-HSI] queue_work : cmd_work\n");
- queue_work(mipi_ld->mipi_wq, &mipi_ld->cmd_work);
-
- return 0;
-}
-
-static int if_hsi_decode_cmd(u32 *cmd_data, u32 *cmd, u32 *ch,
- u32 *param)
-{
- u32 data = *cmd_data;
- u8 lrc_cal, lrc_act;
- u8 val1, val2, val3;
-
- *cmd = ((data & 0xF0000000) >> 28);
- switch (*cmd) {
- case HSI_LL_MSG_BREAK:
- mif_err("[MIPI-HSI] Command MSG_BREAK Received\n");
- return -1;
-
- case HSI_LL_MSG_OPEN_CONN:
- *ch = ((data & 0x0F000000) >> 24);
- *param = ((data & 0x00FFFF00) >> 8);
- val1 = ((data & 0xFF000000) >> 24);
- val2 = ((data & 0x00FF0000) >> 16);
- val3 = ((data & 0x0000FF00) >> 8);
- lrc_act = (data & 0x000000FF);
- lrc_cal = val1 ^ val2 ^ val3;
-
- if (lrc_cal != lrc_act) {
- mif_err("[MIPI-HSI] CAL is broken\n");
- return -1;
- }
- return 0;
-
- case HSI_LL_MSG_CONN_READY:
- case HSI_LL_MSG_CONN_CLOSED:
- case HSI_LL_MSG_CANCEL_CONN:
- case HSI_LL_MSG_NAK:
- *ch = ((data & 0x0F000000) >> 24);
- return 0;
-
- case HSI_LL_MSG_ACK:
- *ch = ((data & 0x0F000000) >> 24);
- *param = (data & 0x00FFFFFF);
- return 0;
-
- case HSI_LL_MSG_CONF_RATE:
- *ch = ((data & 0x0F000000) >> 24);
- *param = ((data & 0x0F000000) >> 24);
- return 0;
-
- case HSI_LL_MSG_OPEN_CONN_OCTET:
- *ch = ((data & 0x0F000000) >> 24);
- *param = (data & 0x00FFFFFF);
- return 0;
-
- case HSI_LL_MSG_ECHO:
- case HSI_LL_MSG_INFO_REQ:
- case HSI_LL_MSG_INFO:
- case HSI_LL_MSG_CONFIGURE:
- case HSI_LL_MSG_ALLOCATE_CH:
- case HSI_LL_MSG_RELEASE_CH:
- case HSI_LL_MSG_INVALID:
- default:
- mif_err("[MIPI-HSI] Invalid command received : %08x\n", *cmd);
- *cmd = HSI_LL_MSG_INVALID;
- *ch = HSI_LL_INVALID_CHANNEL;
- return -1;
- }
- return 0;
-}
-
-static int if_hsi_rx_cmd_handle(struct mipi_link_device *mipi_ld, u32 cmd,
- u32 ch, u32 param)
-{
- int ret;
- struct if_hsi_channel *channel = &mipi_ld->hsi_channles[ch];
-
- mif_debug("[MIPI-HSI] if_hsi_rx_cmd_handle cmd=0x%x, ch=%d, param=%d\n",
- cmd, ch, param);
-
- switch (cmd) {
- case HSI_LL_MSG_OPEN_CONN_OCTET:
- switch (channel->recv_step) {
- case STEP_IDLE:
- channel->recv_step = STEP_TO_ACK;
-
- if (!wake_lock_active(&mipi_ld->wlock)) {
- wake_lock(&mipi_ld->wlock);
- mif_debug("[MIPI-HSI] wake_lock\n");
- }
-
- if_hsi_set_wakeline(channel, 1);
- mod_timer(&mipi_ld->hsi_acwake_down_timer, jiffies +
- HSI_ACWAKE_DOWN_TIMEOUT);
- mif_debug("[MIPI-HSI] mod_timer done(%d)\n",
- HSI_ACWAKE_DOWN_TIMEOUT);
-
- ret = if_hsi_send_command(mipi_ld, HSI_LL_MSG_ACK, ch,
- param);
- if (ret) {
- mif_err("[MIPI-HSI] if_hsi_send_command fail : %d\n",
- ret);
- return ret;
- }
-
- channel->packet_size = param;
- channel->recv_step = STEP_RX;
- if (param % 4)
- param += (4 - (param % 4));
- channel->rx_count = param;
- ret = hsi_read(channel->dev, channel->rx_data,
- channel->rx_count / 4);
- if (ret) {
- mif_err("[MIPI-HSI] hsi_read fail : %d\n", ret);
- return ret;
- }
- return 0;
-
- case STEP_NOT_READY:
- ret = if_hsi_send_command(mipi_ld, HSI_LL_MSG_NAK, ch,
- param);
- if (ret) {
- mif_err("[MIPI-HSI] if_hsi_send_command fail : %d\n",
- ret);
- return ret;
- }
- return 0;
-
- default:
- mif_err("[MIPI-HSI] wrong state : %08x, recv_step : %d\n",
- cmd, channel->recv_step);
- return -1;
- }
-
- case HSI_LL_MSG_ACK:
- case HSI_LL_MSG_NAK:
- switch (channel->send_step) {
- case STEP_WAIT_FOR_ACK:
- case STEP_SEND_OPEN_CONN:
- if (cmd == HSI_LL_MSG_ACK) {
- channel->send_step = STEP_TX;
- channel->got_nack = 0;
- mif_debug("[MIPI-HSI] got ack\n");
- } else {
- channel->send_step = STEP_WAIT_FOR_ACK;
- channel->got_nack = 1;
- mif_debug("[MIPI-HSI] got nack\n");
- }
-
- up(&channel->ack_done_sem);
- return 0;
-
- default:
- mif_err("[MIPI-HSI] wrong state : %08x\n", cmd);
- return -1;
- }
-
- case HSI_LL_MSG_CONN_CLOSED:
- switch (channel->send_step) {
- case STEP_TX:
- case STEP_WAIT_FOR_CONN_CLOSED:
- mif_debug("[MIPI-HSI] got close\n");
-
- channel->send_step = STEP_IDLE;
- up(&channel->close_conn_done_sem);
- return 0;
-
- default:
- mif_err("[MIPI-HSI] wrong state : %08x\n", cmd);
- return -1;
- }
-
- case HSI_LL_MSG_OPEN_CONN:
- case HSI_LL_MSG_ECHO:
- case HSI_LL_MSG_CANCEL_CONN:
- case HSI_LL_MSG_CONF_RATE:
- default:
- mif_err("[MIPI-HSI] ERROR... CMD Not supported : %08x\n", cmd);
- return -EINVAL;
- }
-}
-
-static int if_hsi_protocol_send(struct mipi_link_device *mipi_ld, int ch,
- u32 *data, unsigned int len)
-{
- int ret;
- int retry_count = 0;
- int ack_timeout_cnt = 0;
- struct io_device *iod;
- struct if_hsi_channel *channel = &mipi_ld->hsi_channles[ch];
-
- if (channel->send_step != STEP_IDLE) {
- mif_err("[MIPI-HSI] send step is not IDLE : %d\n",
- channel->send_step);
- return -EBUSY;
- }
- channel->send_step = STEP_SEND_OPEN_CONN;
-
- if (!wake_lock_active(&mipi_ld->wlock)) {
- wake_lock(&mipi_ld->wlock);
- mif_debug("[MIPI-HSI] wake_lock\n");
- }
-
- if_hsi_set_wakeline(channel, 1);
- mod_timer(&mipi_ld->hsi_acwake_down_timer, jiffies +
- HSI_ACWAKE_DOWN_TIMEOUT);
- mif_debug("[MIPI-HSI] mod_timer done(%d)\n",
- HSI_ACWAKE_DOWN_TIMEOUT);
-
-retry_send:
-
- ret = if_hsi_send_command(mipi_ld, HSI_LL_MSG_OPEN_CONN_OCTET, ch,
- len);
- if (ret) {
- mif_err("[MIPI-HSI] if_hsi_send_command fail : %d\n", ret);
- if_hsi_set_wakeline(channel, 0);
- channel->send_step = STEP_IDLE;
- return -1;
- }
-
- channel->send_step = STEP_WAIT_FOR_ACK;
-
- if (down_timeout(&channel->ack_done_sem, HSI_ACK_DONE_TIMEOUT) < 0) {
- mif_err("[MIPI-HSI] ch=%d, ack_done timeout\n",
- channel->channel_id);
-
- if_hsi_set_wakeline(channel, 0);
-
- if (mipi_ld->ld.com_state == COM_ONLINE) {
- ack_timeout_cnt++;
- if (ack_timeout_cnt < 10) {
- if_hsi_set_wakeline(channel, 1);
- mif_err("[MIPI-HSI] ch=%d, retry send open. cnt : %d\n",
- channel->channel_id, ack_timeout_cnt);
- goto retry_send;
- }
-
- /* try to recover cp */
- iod = link_get_iod_with_format(&mipi_ld->ld, IPC_FMT);
- if (iod)
- iod->modem_state_changed(iod,
- STATE_CRASH_RESET);
- }
-
- channel->send_step = STEP_IDLE;
- return -ETIMEDOUT;
- }
- mif_debug("[MIPI-HSI] ch=%d, got ack_done=%d\n", channel->channel_id,
- channel->got_nack);
-
- if (channel->got_nack && (retry_count < 10)) {
- mif_debug("[MIPI-HSI] ch=%d, got nack=%d retry=%d\n",
- channel->channel_id, channel->got_nack,
- retry_count);
- retry_count++;
- msleep_interruptible(1);
- goto retry_send;
- }
- retry_count = 0;
-
- channel->send_step = STEP_TX;
-
- ret = if_hsi_write(channel, data, len);
- if (ret < 0) {
- mif_err("[MIPI-HSI] if_hsi_write fail : %d\n", ret);
- if_hsi_set_wakeline(channel, 0);
- channel->send_step = STEP_IDLE;
- return ret;
- }
- mif_debug("[MIPI-HSI] SEND DATA : %08x(%d)\n", *data, len);
-
- mif_debug("%08x %08x %08x %08x %08x %08x %08x %08x\n",
- *channel->tx_data, *(channel->tx_data + 1),
- *(channel->tx_data + 2), *(channel->tx_data + 3),
- *(channel->tx_data + 4), *(channel->tx_data + 5),
- *(channel->tx_data + 6), *(channel->tx_data + 7));
-
- channel->send_step = STEP_WAIT_FOR_CONN_CLOSED;
- if (down_timeout(&channel->close_conn_done_sem,
- HSI_CLOSE_CONN_DONE_TIMEOUT) < 0) {
- mif_err("[MIPI-HSI] ch=%d, close conn timeout\n",
- channel->channel_id);
- if_hsi_set_wakeline(channel, 0);
- channel->send_step = STEP_IDLE;
- return -ETIMEDOUT;
- }
- mif_debug("[MIPI-HSI] ch=%d, got close_conn_done\n",
- channel->channel_id);
-
- channel->send_step = STEP_IDLE;
-
- mif_debug("[MIPI-HSI] write protocol Done : %d\n", channel->tx_count);
- return channel->tx_count;
-}
-
-static int if_hsi_write(struct if_hsi_channel *channel, u32 *data,
- unsigned int size)
-{
- int ret;
- unsigned long int flags;
-
- spin_lock_irqsave(&channel->tx_state_lock, flags);
- if (channel->tx_state & HSI_CHANNEL_TX_STATE_WRITING) {
- spin_unlock_irqrestore(&channel->tx_state_lock, flags);
- return -EBUSY;
- }
- channel->tx_state |= HSI_CHANNEL_TX_STATE_WRITING;
- spin_unlock_irqrestore(&channel->tx_state_lock, flags);
-
- channel->tx_data = data;
- if (size % 4)
- size += (4 - (size % 4));
- channel->tx_count = size;
-
- mif_debug("[MIPI-HSI] submit write data : 0x%x(%d)\n",
- *(u32 *)channel->tx_data, channel->tx_count);
- ret = hsi_write(channel->dev, channel->tx_data, channel->tx_count / 4);
- if (ret) {
- mif_err("[MIPI-HSI] ch=%d, hsi_write fail : %d\n",
- channel->channel_id, ret);
-
- spin_lock_irqsave(&channel->tx_state_lock, flags);
- channel->tx_state &= ~HSI_CHANNEL_TX_STATE_WRITING;
- spin_unlock_irqrestore(&channel->tx_state_lock, flags);
-
- return ret;
- }
-
- if (down_timeout(&channel->write_done_sem,
- HSI_WRITE_DONE_TIMEOUT) < 0) {
- mif_err("[MIPI-HSI] ch=%d, hsi_write_done timeout : %d\n",
- channel->channel_id, size);
-
- mif_err("[MIPI-HSI] data : %08x %08x %08x %08x %08x ...\n",
- *channel->tx_data, *(channel->tx_data + 1),
- *(channel->tx_data + 2), *(channel->tx_data + 3),
- *(channel->tx_data + 4));
-
- hsi_write_cancel(channel->dev);
-
- spin_lock_irqsave(&channel->tx_state_lock, flags);
- channel->tx_state &= ~HSI_CHANNEL_TX_STATE_WRITING;
- spin_unlock_irqrestore(&channel->tx_state_lock, flags);
-
- return -ETIMEDOUT;
- }
-
- if (channel->tx_count != size)
- mif_err("[MIPI-HSI] ch:%d,write_done fail,write_size:%d,origin_size:%d\n",
- channel->channel_id, channel->tx_count, size);
-
- mif_debug("[MIPI-HSI] len:%d, id:%d, data : %08x %08x %08x %08x %08x ...\n",
- channel->tx_count, channel->channel_id, *channel->tx_data,
- *(channel->tx_data + 1), *(channel->tx_data + 2),
- *(channel->tx_data + 3), *(channel->tx_data + 4));
-
- return channel->tx_count;
-}
-
-static void if_hsi_write_done(struct hsi_device *dev, unsigned int size)
-{
- unsigned long int flags;
- struct mipi_link_device *mipi_ld =
- (struct mipi_link_device *)if_hsi_driver.priv_data;
- struct if_hsi_channel *channel = &mipi_ld->hsi_channles[dev->n_ch];
-
- mif_debug("[MIPI-HSI] got write data : 0x%x(%d)\n",
- *(u32 *)channel->tx_data, size);
-
- spin_lock_irqsave(&channel->tx_state_lock, flags);
- channel->tx_state &= ~HSI_CHANNEL_TX_STATE_WRITING;
- spin_unlock_irqrestore(&channel->tx_state_lock, flags);
-
- mif_debug("%08x %08x %08x %08x %08x %08x %08x %08x\n",
- *channel->tx_data, *(channel->tx_data + 1),
- *(channel->tx_data + 2), *(channel->tx_data + 3),
- *(channel->tx_data + 4), *(channel->tx_data + 5),
- *(channel->tx_data + 6), *(channel->tx_data + 7));
-
- channel->tx_count = 4 * size;
- up(&channel->write_done_sem);
-}
-
-static void if_hsi_read_done(struct hsi_device *dev, unsigned int size)
-{
- int ret;
- unsigned long int flags;
- u32 cmd = 0, ch = 0, param = 0;
- struct mipi_link_device *mipi_ld =
- (struct mipi_link_device *)if_hsi_driver.priv_data;
- struct if_hsi_channel *channel = &mipi_ld->hsi_channles[dev->n_ch];
- struct io_device *iod;
- enum dev_format format_type = 0;
-
- mif_debug("[MIPI-HSI] got read data : 0x%x(%d)\n",
- *(u32 *)channel->rx_data, size);
-
- spin_lock_irqsave(&channel->rx_state_lock, flags);
- channel->rx_state &= ~HSI_CHANNEL_RX_STATE_READING;
- spin_unlock_irqrestore(&channel->rx_state_lock, flags);
-
- channel->rx_count = 4 * size;
-
- switch (channel->channel_id) {
- case HSI_CONTROL_CHANNEL:
- switch (mipi_ld->ld.com_state) {
- case COM_HANDSHAKE:
- case COM_ONLINE:
- mif_debug("[MIPI-HSI] RECV CMD : %08x\n",
- *channel->rx_data);
-
- if (channel->rx_count != 4) {
- mif_err("[MIPI-HSI] wrong command len : %d\n",
- channel->rx_count);
- return;
- }
-
- ret = if_hsi_decode_cmd(channel->rx_data, &cmd, &ch,
- &param);
- if (ret)
- mif_err("[MIPI-HSI] decode_cmd fail=%d, "
- "cmd=%x\n", ret, cmd);
- else {
- mif_debug("[MIPI-HSI] decode_cmd : %08x\n",
- cmd);
- ret = if_hsi_rx_cmd_handle(mipi_ld, cmd, ch,
- param);
- if (ret)
- mif_err("[MIPI-HSI] handle cmd "
- "cmd=%x\n", cmd);
- }
-
- ret = hsi_read(channel->dev, channel->rx_data, 1);
- if (ret)
- mif_err("[MIPI-HSI] hsi_read fail : %d\n", ret);
-
- return;
-
- case COM_BOOT:
- mif_debug("[MIPI-HSI] receive data : 0x%x(%d)\n",
- *channel->rx_data, channel->rx_count);
-
- iod = link_get_iod_with_format(&mipi_ld->ld, IPC_BOOT);
- if (iod) {
- channel->packet_size = *channel->rx_data;
- mif_debug("[MIPI-HSI] flashless packet size : "
- "%d\n", channel->packet_size);
-
- ret = iod->recv(iod,
- &mipi_ld->ld,
- (char *)channel->rx_data + 4,
- HSI_FLASHBOOT_ACK_LEN - 4);
- if (ret < 0)
- mif_err("[MIPI-HSI] recv call "
- "fail : %d\n", ret);
- }
-
- ret = hsi_read(channel->dev, channel->rx_data,
- HSI_FLASHBOOT_ACK_LEN / 4);
- if (ret)
- mif_err("[MIPI-HSI] hsi_read fail : %d\n", ret);
- return;
-
- case COM_CRASH:
- mif_debug("[MIPI-HSI] receive data : 0x%x(%d)\n",
- *channel->rx_data, channel->rx_count);
-
- iod = link_get_iod_with_format(&mipi_ld->ld,
- IPC_RAMDUMP);
- if (iod) {
- channel->packet_size = *channel->rx_data;
- mif_debug("[MIPI-HSI] ramdump packet size : "
- "%d\n", channel->packet_size);
-
- ret = iod->recv(iod,
- &mipi_ld->ld,
- (char *)channel->rx_data + 4,
- channel->packet_size);
- if (ret < 0)
- mif_err("[MIPI-HSI] recv call "
- "fail : %d\n", ret);
- }
-
- ret = hsi_read(channel->dev, channel->rx_data,
- DUMP_PACKET_SIZE);
- if (ret)
- mif_err("[MIPI-HSI] hsi_read fail : %d\n", ret);
- return;
-
- case COM_NONE:
- default:
- mif_err("[MIPI-HSI] receive data in wrong state : 0x%x(%d)\n",
- *channel->rx_data, channel->rx_count);
- return;
- }
- break;
-
- case HSI_FMT_CHANNEL:
- mif_debug("[MIPI-HSI] iodevice format : IPC_FMT\n");
- format_type = IPC_FMT;
- break;
- case HSI_RAW_CHANNEL:
- mif_debug("[MIPI-HSI] iodevice format : IPC_MULTI_RAW\n");
- format_type = IPC_MULTI_RAW;
- break;
- case HSI_RFS_CHANNEL:
- mif_debug("[MIPI-HSI] iodevice format : IPC_RFS\n");
- format_type = IPC_RFS;
- break;
-
- case HSI_CMD_CHANNEL:
- mif_debug("[MIPI-HSI] receive command data : 0x%x\n",
- *channel->rx_data);
-
- ch = channel->channel_id;
- param = 0;
- ret = if_hsi_send_command(mipi_ld, HSI_LL_MSG_CONN_CLOSED,
- ch, param);
- if (ret)
- mif_err("[MIPI-HSI] send_cmd fail=%d\n", ret);
-
- channel->recv_step = STEP_IDLE;
- return;
-
- default:
- return;
- }
-
- iod = link_get_iod_with_format(&mipi_ld->ld, format_type);
- if (iod) {
- mif_debug("[MIPI-HSI] iodevice format : %d\n", iod->format);
-
- channel->recv_step = STEP_NOT_READY;
-
- mif_debug("[MIPI-HSI] RECV DATA : %08x(%d)-%d\n",
- *channel->rx_data, channel->packet_size,
- iod->format);
-
- mif_debug("%08x %08x %08x %08x %08x %08x %08x %08x\n",
- *channel->rx_data, *(channel->rx_data + 1),
- *(channel->rx_data + 2), *(channel->rx_data + 3),
- *(channel->rx_data + 4), *(channel->rx_data + 5),
- *(channel->rx_data + 6), *(channel->rx_data + 7));
-
- ret = iod->recv(iod, &mipi_ld->ld,
- (char *)channel->rx_data, channel->packet_size);
- if (ret < 0)
- mif_err("[MIPI-HSI] recv call fail : %d\n", ret);
-
- ch = channel->channel_id;
- param = 0;
- ret = if_hsi_send_command(mipi_ld,
- HSI_LL_MSG_CONN_CLOSED, ch, param);
- if (ret)
- mif_err("[MIPI-HSI] send_cmd fail=%d\n", ret);
-
- channel->recv_step = STEP_IDLE;
- }
-}
-
-static void if_hsi_port_event(struct hsi_device *dev, unsigned int event,
- void *arg)
-{
- int acwake_level = 1;
- struct mipi_link_device *mipi_ld =
- (struct mipi_link_device *)if_hsi_driver.priv_data;
-
- switch (event) {
- case HSI_EVENT_BREAK_DETECTED:
- mif_err("[MIPI-HSI] HSI_EVENT_BREAK_DETECTED\n");
- return;
-
- case HSI_EVENT_HSR_DATAAVAILABLE:
- mif_err("[MIPI-HSI] HSI_EVENT_HSR_DATAAVAILABLE\n");
- return;
-
- case HSI_EVENT_CAWAKE_UP:
- if (dev->n_ch == HSI_CONTROL_CHANNEL) {
- if (!wake_lock_active(&mipi_ld->wlock)) {
- wake_lock(&mipi_ld->wlock);
- mif_debug("[MIPI-HSI] wake_lock\n");
- }
- mif_debug("[MIPI-HSI] CAWAKE_%d(1)\n", dev->n_ch);
- }
- return;
-
- case HSI_EVENT_CAWAKE_DOWN:
- if (dev->n_ch == HSI_CONTROL_CHANNEL)
- mif_debug("[MIPI-HSI] CAWAKE_%d(0)\n", dev->n_ch);
-
- if ((dev->n_ch == HSI_CONTROL_CHANNEL) &&
- mipi_ld->hsi_channles[HSI_CONTROL_CHANNEL].opened) {
- hsi_ioctl(
- mipi_ld->hsi_channles[HSI_CONTROL_CHANNEL].dev,
- HSI_IOCTL_GET_ACWAKE, &acwake_level);
-
- mif_debug("[MIPI-HSI] GET_ACWAKE. Ch : %d, level : %d\n",
- dev->n_ch, acwake_level);
-
- if (!acwake_level) {
- wake_unlock(&mipi_ld->wlock);
- mif_debug("[MIPI-HSI] wake_unlock\n");
- }
- }
- return;
-
- case HSI_EVENT_ERROR:
- mif_err("[MIPI-HSI] HSI_EVENT_ERROR\n");
- return;
-
- default:
- mif_err("[MIPI-HSI] Unknown Event : %d\n", event);
- return;
- }
-}
-
-static int __devinit if_hsi_probe(struct hsi_device *dev)
-{
- int port = 0;
- unsigned long *address;
- struct mipi_link_device *mipi_ld =
- (struct mipi_link_device *)if_hsi_driver.priv_data;
-
- for (port = 0; port < HSI_MAX_PORTS; port++) {
- if (if_hsi_driver.ch_mask[port])
- break;
- }
- address = (unsigned long *)&if_hsi_driver.ch_mask[port];
-
- if (test_bit(dev->n_ch, address) && (dev->n_p == port)) {
- /* Register callback func */
- hsi_set_write_cb(dev, if_hsi_write_done);
- hsi_set_read_cb(dev, if_hsi_read_done);
- hsi_set_port_event_cb(dev, if_hsi_port_event);
-
- /* Init device data */
- mipi_ld->hsi_channles[dev->n_ch].dev = dev;
- mipi_ld->hsi_channles[dev->n_ch].tx_count = 0;
- mipi_ld->hsi_channles[dev->n_ch].rx_count = 0;
- mipi_ld->hsi_channles[dev->n_ch].tx_state = 0;
- mipi_ld->hsi_channles[dev->n_ch].rx_state = 0;
- mipi_ld->hsi_channles[dev->n_ch].packet_size = 0;
- mipi_ld->hsi_channles[dev->n_ch].acwake = 0;
- mipi_ld->hsi_channles[dev->n_ch].send_step = STEP_UNDEF;
- mipi_ld->hsi_channles[dev->n_ch].recv_step = STEP_UNDEF;
- spin_lock_init(&mipi_ld->hsi_channles[dev->n_ch].tx_state_lock);
- spin_lock_init(&mipi_ld->hsi_channles[dev->n_ch].rx_state_lock);
- spin_lock_init(&mipi_ld->hsi_channles[dev->n_ch].acwake_lock);
- sema_init(&mipi_ld->hsi_channles[dev->n_ch].write_done_sem,
- 0);
- sema_init(&mipi_ld->hsi_channles[dev->n_ch].ack_done_sem,
- 0);
- sema_init(&mipi_ld->hsi_channles[dev->n_ch].close_conn_done_sem,
- 0);
- }
-
- mif_debug("[MIPI-HSI] if_hsi_probe() done. ch : %d\n", dev->n_ch);
- return 0;
-}
-
-static int if_hsi_init(struct link_device *ld)
-{
- int ret;
- int i = 0;
- struct mipi_link_device *mipi_ld = to_mipi_link_device(ld);
-
- for (i = 0; i < HSI_MAX_PORTS; i++)
- if_hsi_driver.ch_mask[i] = 0;
-
- for (i = 0; i < HSI_MAX_CHANNELS; i++) {
- mipi_ld->hsi_channles[i].dev = NULL;
- mipi_ld->hsi_channles[i].opened = 0;
- mipi_ld->hsi_channles[i].channel_id = i;
- }
- if_hsi_driver.ch_mask[0] = CHANNEL_MASK;
-
- /* TODO - need to get priv data (request to TI) */
- if_hsi_driver.priv_data = (void *)mipi_ld;
- ret = hsi_register_driver(&if_hsi_driver);
- if (ret) {
- mif_err("[MIPI-HSI] hsi_register_driver() fail : %d\n", ret);
- return ret;
- }
-
- mipi_ld->mipi_wq = create_singlethread_workqueue("mipi_cmd_wq");
- if (!mipi_ld->mipi_wq) {
- mif_err("[MIPI-HSI] fail to create work Q.\n");
- return -ENOMEM;
- }
- INIT_WORK(&mipi_ld->cmd_work, if_hsi_cmd_work);
- INIT_DELAYED_WORK(&mipi_ld->start_work, mipi_hsi_start_work);
-
- setup_timer(&mipi_ld->hsi_acwake_down_timer, if_hsi_acwake_down_func,
- (unsigned long)mipi_ld);
-
- /* TODO - allocate rx buff */
- mipi_ld->hsi_channles[HSI_CONTROL_CHANNEL].rx_data =
- kmalloc(64 * 1024, GFP_DMA | GFP_ATOMIC);
- if (!mipi_ld->hsi_channles[HSI_CONTROL_CHANNEL].rx_data) {
- mif_err("[MIPI-HSI] alloc HSI_CONTROL_CHANNEL rx_data fail\n");
- return -ENOMEM;
- }
- mipi_ld->hsi_channles[HSI_FMT_CHANNEL].rx_data =
- kmalloc(256 * 1024, GFP_DMA | GFP_ATOMIC);
- if (!mipi_ld->hsi_channles[HSI_FMT_CHANNEL].rx_data) {
- mif_err("[MIPI-HSI] alloc HSI_FMT_CHANNEL rx_data fail\n");
- return -ENOMEM;
- }
- mipi_ld->hsi_channles[HSI_RAW_CHANNEL].rx_data =
- kmalloc(256 * 1024, GFP_DMA | GFP_ATOMIC);
- if (!mipi_ld->hsi_channles[HSI_RAW_CHANNEL].rx_data) {
- mif_err("[MIPI-HSI] alloc HSI_RAW_CHANNEL rx_data fail\n");
- return -ENOMEM;
- }
- mipi_ld->hsi_channles[HSI_RFS_CHANNEL].rx_data =
- kmalloc(256 * 1024, GFP_DMA | GFP_ATOMIC);
- if (!mipi_ld->hsi_channles[HSI_RFS_CHANNEL].rx_data) {
- mif_err("[MIPI-HSI] alloc HSI_RFS_CHANNEL rx_data fail\n");
- return -ENOMEM;
- }
- mipi_ld->hsi_channles[HSI_CMD_CHANNEL].rx_data =
- kmalloc(256 * 1024, GFP_DMA | GFP_ATOMIC);
- if (!mipi_ld->hsi_channles[HSI_CMD_CHANNEL].rx_data) {
- mif_err("[MIPI-HSI] alloc HSI_CMD_CHANNEL rx_data fail\n");
- return -ENOMEM;
- }
-
- return 0;
-}
-
-struct link_device *mipi_create_link_device(struct platform_device *pdev)
-{
- int ret;
- struct mipi_link_device *mipi_ld;
- struct link_device *ld;
-
- /* for dpram int */
- /* struct modem_data *pdata = pdev->dev.platform_data; */
-
- mipi_ld = kzalloc(sizeof(struct mipi_link_device), GFP_KERNEL);
- if (!mipi_ld)
- return NULL;
-
- INIT_LIST_HEAD(&mipi_ld->list_of_hsi_cmd);
- spin_lock_init(&mipi_ld->list_cmd_lock);
- skb_queue_head_init(&mipi_ld->ld.sk_fmt_tx_q);
- skb_queue_head_init(&mipi_ld->ld.sk_raw_tx_q);
-
- wake_lock_init(&mipi_ld->wlock, WAKE_LOCK_SUSPEND, "mipi_link");
-
- ld = &mipi_ld->ld;
-
- ld->name = "mipi_hsi";
- ld->init_comm = mipi_hsi_init_communication;
- ld->terminate_comm = mipi_hsi_terminate_communication;
- ld->send = mipi_hsi_send;
- ld->com_state = COM_NONE;
-
- /* for dpram int */
- /* ld->irq = gpio_to_irq(pdata->gpio); s*/
-
- ld->tx_wq = create_singlethread_workqueue("mipi_tx_wq");
- if (!ld->tx_wq) {
- mif_err("[MIPI-HSI] fail to create work Q.\n");
- return NULL;
- }
- INIT_WORK(&ld->tx_work, mipi_hsi_tx_work);
-
- ret = if_hsi_init(ld);
- if (ret)
- return NULL;
-
- return ld;
-}
diff --git a/drivers/misc/modem_if_u1/modem_link_device_mipi.h b/drivers/misc/modem_if_u1/modem_link_device_mipi.h
deleted file mode 100644
index 8ca4968..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_mipi.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#ifndef __MODEM_LINK_DEVICE_MIPI_H__
-#define __MODEM_LINK_DEVICE_MIPI_H__
-
-
-#define HSI_MAX_CHANNELS 16
-#define CHANNEL_MASK 0xFF
-
-#define HSI_CHANNEL_TX_STATE_UNAVAIL (1 << 0)
-#define HSI_CHANNEL_TX_STATE_WRITING (1 << 1)
-#define HSI_CHANNEL_RX_STATE_UNAVAIL (1 << 0)
-#define HSI_CHANNEL_RX_STATE_READING (1 << 1)
-
-#define HSI_WRITE_DONE_TIMEOUT (HZ)
-#define HSI_READ_DONE_TIMEOUT (HZ)
-#define HSI_ACK_DONE_TIMEOUT (HZ)
-#define HSI_CLOSE_CONN_DONE_TIMEOUT (HZ)
-#define HSI_ACWAKE_DOWN_TIMEOUT (HZ / 2)
-
-#define HSI_CONTROL_CHANNEL 0
-#define HSI_FLASHLESS_CHANNEL 0
-#define HSI_CP_RAMDUMP_CHANNEL 0
-#define HSI_FMT_CHANNEL 1
-#define HSI_RAW_CHANNEL 2
-#define HSI_RFS_CHANNEL 3
-#define HSI_CMD_CHANNEL 4
-#define HSI_NUM_OF_USE_CHANNELS 5
-
-#define HSI_LL_INVALID_CHANNEL 0xFF
-
-#define HSI_FLASHBOOT_ACK_LEN 16
-#define DUMP_PACKET_SIZE 12289 /* 48K + 4 length, word unit */
-#define DUMP_ERR_INFO_SIZE 39 /* 150 bytes + 4 length , word unit */
-
-enum {
- HSI_LL_MSG_BREAK, /* 0x0 */
- HSI_LL_MSG_ECHO,
- HSI_LL_MSG_INFO_REQ,
- HSI_LL_MSG_INFO,
- HSI_LL_MSG_CONFIGURE,
- HSI_LL_MSG_ALLOCATE_CH,
- HSI_LL_MSG_RELEASE_CH,
- HSI_LL_MSG_OPEN_CONN,
- HSI_LL_MSG_CONN_READY,
- HSI_LL_MSG_CONN_CLOSED, /* 0x9 */
- HSI_LL_MSG_CANCEL_CONN,
- HSI_LL_MSG_ACK, /* 0xB */
- HSI_LL_MSG_NAK, /* 0xC */
- HSI_LL_MSG_CONF_RATE,
- HSI_LL_MSG_OPEN_CONN_OCTET, /* 0xE */
- HSI_LL_MSG_INVALID = 0xFF,
-};
-
-enum {
- STEP_UNDEF,
- STEP_CLOSED,
- STEP_NOT_READY,
- STEP_IDLE,
- STEP_ERROR,
- STEP_SEND_OPEN_CONN,
- STEP_SEND_ACK,
- STEP_WAIT_FOR_ACK,
- STEP_TO_ACK,
- STEP_SEND_NACK,
- STEP_GET_NACK,
- STEP_SEND_CONN_READY,
- STEP_WAIT_FOR_CONN_READY,
- STEP_SEND_CONF_RATE,
- STEP_WAIT_FOR_CONF_ACK,
- STEP_TX,
- STEP_RX,
- STEP_SEND_CONN_CLOSED,
- STEP_WAIT_FOR_CONN_CLOSED,
- STEP_SEND_BREAK,
-};
-
-
-struct if_hsi_channel {
- struct hsi_device *dev;
- unsigned int channel_id;
-
- u32 *tx_data;
- unsigned int tx_count;
- u32 *rx_data;
- unsigned int rx_count;
- unsigned int packet_size;
-
- unsigned int tx_state;
- unsigned int rx_state;
- spinlock_t tx_state_lock;
- spinlock_t rx_state_lock;
-
- unsigned int send_step;
- unsigned int recv_step;
-
- unsigned int got_nack;
- unsigned int acwake;
- spinlock_t acwake_lock;
-
- struct semaphore write_done_sem;
- struct semaphore ack_done_sem;
- struct semaphore close_conn_done_sem;
-
- unsigned int opened;
-};
-
-struct if_hsi_command {
- u32 command;
- struct list_head list;
-};
-
-struct mipi_link_device {
- struct link_device ld;
-
- /* mipi specific link data */
- struct if_hsi_channel hsi_channles[HSI_MAX_CHANNELS];
- struct list_head list_of_hsi_cmd;
- spinlock_t list_cmd_lock;
-
- struct workqueue_struct *mipi_wq;
- struct work_struct cmd_work;
- struct delayed_work start_work;
-
- struct wake_lock wlock;
- struct timer_list hsi_acwake_down_timer;
-};
-/* converts from struct link_device* to struct xxx_link_device* */
-#define to_mipi_link_device(linkdev) \
- container_of(linkdev, struct mipi_link_device, ld)
-
-
-enum {
- HSI_INIT_MODE_NORMAL,
- HSI_INIT_MODE_FLASHLESS_BOOT,
- HSI_INIT_MODE_CP_RAMDUMP,
-};
-static int hsi_init_handshake(struct mipi_link_device *mipi_ld, int mode);
-static int if_hsi_write(struct if_hsi_channel *channel, u32 *data,
- unsigned int size);
-static int if_hsi_protocol_send(struct mipi_link_device *mipi_ld, int ch,
- u32 *data, unsigned int len);
-static int if_hsi_close_channel(struct if_hsi_channel *channel);
-
-#endif
diff --git a/drivers/misc/modem_if_u1/modem_link_device_pld.c b/drivers/misc/modem_if_u1/modem_link_device_pld.c
deleted file mode 100644
index 68a91c1..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_pld.c
+++ /dev/null
@@ -1,1627 +0,0 @@
-/*
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/time.h>
-#include <linux/interrupt.h>
-#include <linux/timer.h>
-#include <linux/wakelock.h>
-#include <linux/delay.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/vmalloc.h>
-#include <linux/if_arp.h>
-#include <linux/platform_device.h>
-#include <linux/kallsyms.h>
-#include <linux/platform_data/modem.h>
-
-#include "modem_prj.h"
-#include "modem_link_device_pld.h"
-#include "modem_utils.h"
-
-
-/*
-** Function prototypes for basic DPRAM operations
-*/
-static inline void clear_intr(struct pld_link_device *pld);
-static inline u16 recv_intr(struct pld_link_device *pld);
-static inline void send_intr(struct pld_link_device *pld, u16 mask);
-
-static inline u16 get_magic(struct pld_link_device *pld);
-static inline void set_magic(struct pld_link_device *pld, u16 val);
-static inline u16 get_access(struct pld_link_device *pld);
-static inline void set_access(struct pld_link_device *pld, u16 val);
-
-static inline u32 get_tx_head(struct pld_link_device *pld, int id);
-static inline u32 get_tx_tail(struct pld_link_device *pld, int id);
-static inline void set_tx_head(struct pld_link_device *pld, int id, u32 in);
-static inline void set_tx_tail(struct pld_link_device *pld, int id, u32 out);
-static inline u8 *get_tx_buff(struct pld_link_device *pld, int id);
-static inline u32 get_tx_buff_size(struct pld_link_device *pld, int id);
-
-static inline u32 get_rx_head(struct pld_link_device *pld, int id);
-static inline u32 get_rx_tail(struct pld_link_device *pld, int id);
-static inline void set_rx_head(struct pld_link_device *pld, int id, u32 in);
-static inline void set_rx_tail(struct pld_link_device *pld, int id, u32 out);
-static inline u8 *get_rx_buff(struct pld_link_device *pld, int id);
-static inline u32 get_rx_buff_size(struct pld_link_device *pld, int id);
-
-static inline u16 get_mask_req_ack(struct pld_link_device *pld, int id);
-static inline u16 get_mask_res_ack(struct pld_link_device *pld, int id);
-static inline u16 get_mask_send(struct pld_link_device *pld, int id);
-
-static void handle_cp_crash(struct pld_link_device *pld);
-static int trigger_force_cp_crash(struct pld_link_device *pld);
-
-/*
-** Functions for debugging
-*/
-static void set_dpram_map(struct pld_link_device *pld,
- struct mif_irq_map *map)
-{
- map->magic = get_magic(pld);
- map->access = get_access(pld);
-
- map->fmt_tx_in = get_tx_head(pld, IPC_FMT);
- map->fmt_tx_out = get_tx_tail(pld, IPC_FMT);
- map->fmt_rx_in = get_rx_head(pld, IPC_FMT);
- map->fmt_rx_out = get_rx_tail(pld, IPC_FMT);
- map->raw_tx_in = get_tx_head(pld, IPC_RAW);
- map->raw_tx_out = get_tx_tail(pld, IPC_RAW);
- map->raw_rx_in = get_rx_head(pld, IPC_RAW);
- map->raw_rx_out = get_rx_tail(pld, IPC_RAW);
-
- map->cp2ap = recv_intr(pld);
-}
-
-/*
-** DPRAM operations
-*/
-static int pld_register_isr(unsigned irq, irqreturn_t (*isr)(int, void*),
- unsigned long flag, const char *name,
- struct pld_link_device *pld)
-{
- int ret = 0;
-
- ret = request_irq(irq, isr, flag, name, pld);
- if (ret) {
- mif_info("%s: ERR! request_irq fail (err %d)\n", name, ret);
- return ret;
- }
-
- ret = enable_irq_wake(irq);
- if (ret)
- mif_info("%s: ERR! enable_irq_wake fail (err %d)\n", name, ret);
-
- mif_info("%s (#%d) handler registered\n", name, irq);
-
- return 0;
-}
-
-static inline void clear_intr(struct pld_link_device *pld)
-{
- if (pld->ext_op && pld->ext_op->clear_intr)
- pld->ext_op->clear_intr(pld);
-}
-
-static inline u16 recv_intr(struct pld_link_device *pld)
-{
- u16 val1 = 0, val2 = 0, cnt = 3;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- do {
- /* Check head value written */
- iowrite16(PLD_ADDR_MASK(&pld->mbx2ap[0]),
- pld->address_buffer);
- val1 = ioread16(pld->base);
-
- iowrite16(PLD_ADDR_MASK(&pld->mbx2ap[0]),
- pld->address_buffer);
- val2 = ioread16(pld->base);
-
- if (likely(val1 == val2)) {
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
- }
-
- mif_err("ERR: intr1(%d) != intr1(%d)\n", val1, val2);
-
- } while (cnt--);
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
-
- return val1;
-}
-
-static inline void send_intr(struct pld_link_device *pld, u16 mask)
-{
- int cnt = 3;
- u32 val = 0;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- iowrite16(PLD_ADDR_MASK(&pld->mbx2cp[0]),
- pld->address_buffer);
- iowrite16((u16)mask, pld->base);
-
- do {
- /* Check head value written */
- iowrite16(PLD_ADDR_MASK(&pld->mbx2cp[0]),
- pld->address_buffer);
- val = ioread16(pld->base);
-
- if (likely(val == mask)) {
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return;
- }
-
- mif_err("ERR: intr1(%d) != intr2(%d)\n", val, mask);
- udelay(100);
-
- /* Write head value again */
- iowrite16(PLD_ADDR_MASK(&pld->mbx2cp[0]),
- pld->address_buffer);
- iowrite16((u16)mask, pld->base);
- } while (cnt--);
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
-
- return;
-}
-
-static inline u16 get_magic(struct pld_link_device *pld)
-{
- u16 val1 = 0, val2 = 0, cnt = 3;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- do {
- /* Check head value written */
- iowrite16(PLD_ADDR_MASK(&pld->magic_ap2cp[0]),
- pld->address_buffer);
- val1 = ioread16(pld->base);
-
- iowrite16(PLD_ADDR_MASK(&pld->magic_ap2cp[0]),
- pld->address_buffer);
- val2 = ioread16(pld->base);
-
- if (likely(val1 == val2)) {
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
- }
-
- mif_err("ERR: txq.head(%d) != in(%d)\n", val1, val2);
- udelay(100);
-
- } while (cnt--);
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
-
-}
-
-static inline void set_magic(struct pld_link_device *pld, u16 in)
-{
- int cnt = 3;
- u32 val = 0;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- iowrite16(PLD_ADDR_MASK(&pld->magic_ap2cp[0]),
- pld->address_buffer);
- iowrite16((u16)in, pld->base);
-
- do {
- /* Check head value written */
- iowrite16(PLD_ADDR_MASK(&pld->magic_ap2cp[0]),
- pld->address_buffer);
- val = ioread16(pld->base);
-
- if (likely(val == in)) {
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return;
- }
-
- mif_err("ERR: magic1(%d) != magic2(%d)\n", val, in);
- udelay(100);
-
- /* Write head value again */
- iowrite16(PLD_ADDR_MASK(&pld->magic_ap2cp[0]),
- pld->address_buffer);
- iowrite16((u16)in, pld->base);
- } while (cnt--);
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return;
-}
-
-static inline u16 get_access(struct pld_link_device *pld)
-{
- u16 val1 = 0, val2 = 0, cnt = 3;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- do {
- /* Check head value written */
- iowrite16(PLD_ADDR_MASK(&pld->access_ap2cp[0]),
- pld->address_buffer);
- val1 = ioread16(pld->base);
-
- iowrite16(PLD_ADDR_MASK(&pld->access_ap2cp[0]),
- pld->address_buffer);
- val2 = ioread16(pld->base);
-
- if (likely(val1 == val2)) {
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
- }
-
- mif_err("ERR: access1(%d) != access2(%d)\n", val1, val2);
- udelay(100);
-
- } while (cnt--);
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
-
-}
-
-static inline void set_access(struct pld_link_device *pld, u16 in)
-{
- int cnt = 3;
- u32 val = 0;
- unsigned long int flags;
-
- iowrite16(PLD_ADDR_MASK(&pld->access_ap2cp[0]),
- pld->address_buffer);
- iowrite16((u16)in, pld->base);
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- do {
- /* Check head value written */
- iowrite16(PLD_ADDR_MASK(&pld->access_ap2cp[0]),
- pld->address_buffer);
- val = ioread16(pld->base);
-
- if (likely(val == in)) {
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return;
- }
-
- mif_err("ERR: access(%d) != access(%d)\n", val, in);
- udelay(100);
-
- /* Write head value again */
- iowrite16(PLD_ADDR_MASK(&pld->access_ap2cp[0]),
- pld->address_buffer);
- iowrite16((u16)in, pld->base);
- } while (cnt--);
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return;
-}
-
-static inline u32 get_tx_head(struct pld_link_device *pld, int id)
-{
- u16 val1 = 0, val2 = 0, cnt = 3;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- do {
- /* Check head value written */
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->txq.head)[0]),
- pld->address_buffer);
- val1 = ioread16(pld->base);
-
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->txq.head)[0]),
- pld->address_buffer);
- val2 = ioread16(pld->base);
-
- if (likely(val1 == val2)) {
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
- }
-
- mif_err("ERR: %s txq.head(%d) != in(%d)\n",
- get_dev_name(id), val1, val2);
- udelay(100);
-
- } while (cnt--);
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
-}
-
-static inline u32 get_tx_tail(struct pld_link_device *pld, int id)
-{
- u16 val1 = 0, val2 = 0, cnt = 3;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- do {
- /* Check head value written */
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->txq.tail)[0]),
- pld->address_buffer);
- val1 = ioread16(pld->base);
-
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->txq.tail)[0]),
- pld->address_buffer);
- val2 = ioread16(pld->base);
-
- if (likely(val1 == val2)) {
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
- }
-
- mif_err("ERR: %s txq.tail(%d) != in(%d)\n",
- get_dev_name(id), val1, val2);
- udelay(100);
-
- } while (cnt--);
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
-}
-
-static inline void set_tx_head(struct pld_link_device *pld, int id, u32 in)
-{
- int cnt = 3;
- u32 val = 0;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->txq.head)[0]),
- pld->address_buffer);
- iowrite16((u16)in, pld->base);
-
- do {
- /* Check head value written */
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->txq.head)[0]),
- pld->address_buffer);
- val = ioread16(pld->base);
-
- if (likely(val == in)) {
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return;
- }
-
- mif_err("ERR: %s txq.head(%d) != in(%d)\n",
- get_dev_name(id), val, in);
- udelay(100);
-
- /* Write head value again */
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->txq.head)[0]),
- pld->address_buffer);
- iowrite16((u16)in, pld->base);
- } while (cnt--);
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return;
-}
-
-static inline void set_tx_tail(struct pld_link_device *pld, int id, u32 out)
-{
- return;
-}
-
-static inline u8 *get_tx_buff(struct pld_link_device *pld, int id)
-{
- return pld->dev[id]->txq.buff;
-}
-
-static inline u32 get_tx_buff_size(struct pld_link_device *pld, int id)
-{
- return pld->dev[id]->txq.size;
-}
-
-static inline u32 get_rx_head(struct pld_link_device *pld, int id)
-{
- u16 val1 = 0, val2 = 0, cnt = 3;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- do {
- /* Check head value written */
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->rxq.head)[0]),
- pld->address_buffer);
- val1 = ioread16(pld->base);
-
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->rxq.head)[0]),
- pld->address_buffer);
- val2 = ioread16(pld->base);
-
- if (likely(val1 == val2)) {
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
- }
-
- mif_err("ERR: %s rxq.head(%d) != in(%d)\n",
- get_dev_name(id), val1, val2);
- udelay(100);
-
- } while (cnt--);
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
-}
-
-static inline u32 get_rx_tail(struct pld_link_device *pld, int id)
-{
- u16 val1 = 0, val2 = 0, cnt = 3;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- do {
- /* Check head value written */
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->rxq.tail)[0]),
- pld->address_buffer);
- val1 = ioread16(pld->base);
-
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->rxq.tail)[0]),
- pld->address_buffer);
- val2 = ioread16(pld->base);
-
- if (likely(val1 == val2)) {
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
- }
-
- mif_err("ERR: %s rxq.tail(%d) != in(%d)\n",
- get_dev_name(id), val1, val2);
- udelay(100);
-
- } while (cnt--);
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return val1;
-}
-
-static inline void set_rx_head(struct pld_link_device *pld, int id, u32 in)
-{
- return;
-}
-
-static inline void set_rx_tail(struct pld_link_device *pld, int id, u32 out)
-{
- int cnt = 3;
- u32 val = 0;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->rxq.tail)[0]),
- pld->address_buffer);
- iowrite16((u16)out, pld->base);
-
- do {
- /* Check tail value written */
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->rxq.tail)[0]),
- pld->address_buffer);
- val = ioread16(pld->base);
-
- if (val == out) {
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return;
- }
-
- mif_err("ERR: %s rxq.tail(%d) != out(%d)\n",
- get_dev_name(id), val, out);
- udelay(100);
-
- /* Write tail value again */
- iowrite16(PLD_ADDR_MASK(&(pld->dev[id]->rxq.tail)[0]),
- pld->address_buffer);
- iowrite16((u16)out, pld->base);
- } while (cnt--);
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- return;
-}
-
-static inline u8 *get_rx_buff(struct pld_link_device *pld, int id)
-{
- return pld->dev[id]->rxq.buff;
-}
-
-static inline u32 get_rx_buff_size(struct pld_link_device *pld, int id)
-{
- return pld->dev[id]->rxq.size;
-}
-
-static inline u16 get_mask_req_ack(struct pld_link_device *pld, int id)
-{
- return pld->dev[id]->mask_req_ack;
-}
-
-static inline u16 get_mask_res_ack(struct pld_link_device *pld, int id)
-{
- return pld->dev[id]->mask_res_ack;
-}
-
-static inline u16 get_mask_send(struct pld_link_device *pld, int id)
-{
- return pld->dev[id]->mask_send;
-}
-
-/* Get free space in the TXQ as well as in & out pointers */
-static inline int get_txq_space(struct pld_link_device *pld, int dev, u32 qsize,
- u32 *in, u32 *out)
-{
- struct link_device *ld = &pld->ld;
- int cnt = 3;
- u32 head;
- u32 tail;
- int space;
-
- do {
- head = get_tx_head(pld, dev);
- tail = get_tx_tail(pld, dev);
-
- space = (head < tail) ? (tail - head - 1) :
- (qsize + tail - head - 1);
- mif_debug("%s: %s_TXQ qsize[%u] in[%u] out[%u] space[%u]\n",
- ld->name, get_dev_name(dev), qsize, head, tail, space);
-
- if (circ_valid(qsize, head, tail)) {
- *in = head;
- *out = tail;
- return space;
- }
-
- mif_info("%s: CAUTION! <%pf> "
- "%s_TXQ invalid (size:%d in:%d out:%d)\n",
- ld->name, __builtin_return_address(0),
- get_dev_name(dev), qsize, head, tail);
-
- udelay(100);
- } while (cnt--);
-
- *in = 0;
- *out = 0;
- return -EINVAL;
-}
-
-static void reset_tx_circ(struct pld_link_device *pld, int dev)
-{
- set_tx_head(pld, dev, 0);
- set_tx_tail(pld, dev, 0);
- if (dev == IPC_FMT)
- trigger_force_cp_crash(pld);
-}
-
-/* Get data size in the RXQ as well as in & out pointers */
-static inline int get_rxq_rcvd(struct pld_link_device *pld, int dev, u32 qsize,
- u32 *in, u32 *out)
-{
- struct link_device *ld = &pld->ld;
- int cnt = 3;
- u32 head;
- u32 tail;
- u32 rcvd;
-
- do {
- head = get_rx_head(pld, dev);
- tail = get_rx_tail(pld, dev);
- if (head == tail) {
- *in = head;
- *out = tail;
- return 0;
- }
-
- rcvd = (head > tail) ? (head - tail) : (qsize - tail + head);
- mif_info("%s: %s_RXQ qsize[%u] in[%u] out[%u] rcvd[%u]\n",
- ld->name, get_dev_name(dev), qsize, head, tail, rcvd);
-
- if (circ_valid(qsize, head, tail)) {
- *in = head;
- *out = tail;
- return rcvd;
- }
-
- mif_info("%s: CAUTION! <%pf> "
- "%s_RXQ invalid (size:%d in:%d out:%d)\n",
- ld->name, __builtin_return_address(0),
- get_dev_name(dev), qsize, head, tail);
-
- udelay(100);
- } while (cnt--);
-
- *in = 0;
- *out = 0;
- return -EINVAL;
-}
-
-static void reset_rx_circ(struct pld_link_device *pld, int dev)
-{
- set_rx_head(pld, dev, 0);
- set_rx_tail(pld, dev, 0);
- if (dev == IPC_FMT)
- trigger_force_cp_crash(pld);
-}
-
-static int check_access(struct pld_link_device *pld)
-{
- struct link_device *ld = &pld->ld;
- int i;
- u16 magic = get_magic(pld);
- u16 access = get_access(pld);
-
- if (likely(magic == DPRAM_MAGIC_CODE && access == 1))
- return 0;
-
- for (i = 1; i <= 100; i++) {
- mif_info("%s: ERR! magic:%X access:%X -> retry:%d\n",
- ld->name, magic, access, i);
- udelay(100);
-
- magic = get_magic(pld);
- access = get_access(pld);
- if (likely(magic == DPRAM_MAGIC_CODE && access == 1))
- return 0;
- }
-
- mif_info("%s: !CRISIS! magic:%X access:%X\n", ld->name, magic, access);
- return -EACCES;
-}
-
-static bool ipc_active(struct pld_link_device *pld)
-{
- struct link_device *ld = &pld->ld;
-
- /* Check DPRAM mode */
- if (ld->mode != LINK_MODE_IPC) {
- mif_info("%s: <%pf> ld->mode != LINK_MODE_IPC\n",
- ld->name, __builtin_return_address(0));
- return false;
- }
-
- if (check_access(pld) < 0) {
- mif_info("%s: ERR! <%pf> check_access fail\n",
- ld->name, __builtin_return_address(0));
- return false;
- }
-
- return true;
-}
-
-static void pld_ipc_write(struct pld_link_device *pld, int dev,
- u32 qsize, u32 in, u32 out, struct sk_buff *skb)
-{
- struct link_device *ld = &pld->ld;
- u8 __iomem *buff = get_tx_buff(pld, dev);
- u8 *src = skb->data;
- u32 len = skb->len;
- u32 inp;
- struct mif_irq_map map;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- if (in < out) {
- /* +++++++++ in ---------- out ++++++++++ */
- iowrite16(PLD_ADDR_MASK(&(buff+in)[0]), pld->address_buffer);
- memcpy(pld->base, src, len);
- } else {
- /* ------ out +++++++++++ in ------------ */
- u32 space = qsize - in;
-
- /* 1) in -> buffer end */
- iowrite16(PLD_ADDR_MASK(&(buff+in)[0]), pld->address_buffer);
- memcpy(pld->base, src, ((len > space) ? space : len));
-
- if (len > space) {
- iowrite16(PLD_ADDR_MASK(&buff[0]),
- pld->address_buffer);
- memcpy(pld->base, (src+space), (len-space));
- }
- }
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
-
- /* update new in pointer */
- inp = in + len;
- if (inp >= qsize)
- inp -= qsize;
- set_tx_head(pld, dev, inp);
-
- if (dev == IPC_FMT) {
- set_dpram_map(pld, &map);
- mif_irq_log(ld->mc->msd, map, "ipc_write", sizeof("ipc_write"));
- mif_ipc_log(MIF_IPC_AP2CP, ld->mc->msd, skb->data, skb->len);
- }
-}
-
-static int pld_try_ipc_tx(struct pld_link_device *pld, int dev)
-{
- struct link_device *ld = &pld->ld;
- struct sk_buff_head *txq = ld->skb_txq[dev];
- struct sk_buff *skb;
- unsigned long int flags;
- u32 qsize = get_tx_buff_size(pld, dev);
- u32 in;
- u32 out;
- int space;
- int copied = 0;
-
- spin_lock_irqsave(&pld->tx_rx_lock, flags);
-
- while (1) {
- space = get_txq_space(pld, dev, qsize, &in, &out);
- if (unlikely(space < 0)) {
- spin_unlock_irqrestore(&pld->tx_rx_lock, flags);
- reset_tx_circ(pld, dev);
- return space;
- }
-
- skb = skb_dequeue(txq);
- if (unlikely(!skb))
- break;
-
- if (unlikely(space < skb->len)) {
- atomic_set(&pld->res_required[dev], 1);
- skb_queue_head(txq, skb);
- spin_unlock_irqrestore(&pld->tx_rx_lock, flags);
- mif_info("%s: %s "
- "qsize[%u] in[%u] out[%u] free[%u] < len[%u]\n",
- ld->name, get_dev_name(dev),
- qsize, in, out, space, skb->len);
- return -ENOSPC;
- }
-
- /* TX if there is enough room in the queue */
- pld_ipc_write(pld, dev, qsize, in, out, skb);
- copied += skb->len;
- dev_kfree_skb_any(skb);
- }
-
- spin_unlock_irqrestore(&pld->tx_rx_lock, flags);
-
- return copied;
-}
-
-static void pld_ipc_rx_task(unsigned long data)
-{
- struct pld_link_device *pld = (struct pld_link_device *)data;
- struct link_device *ld = &pld->ld;
- struct io_device *iod;
- struct mif_rxb *rxb;
- unsigned qlen;
- int i;
-
- for (i = 0; i < ld->max_ipc_dev; i++) {
- iod = pld->iod[i];
- qlen = rxbq_size(&pld->rxbq[i]);
- while (qlen > 0) {
- rxb = rxbq_get_data_rxb(&pld->rxbq[i]);
- iod->recv(iod, ld, rxb->data, rxb->len);
- rxb_clear(rxb);
- qlen--;
- }
- }
-}
-
-static void pld_ipc_read(struct pld_link_device *pld, int dev, u8 *dst,
- u8 __iomem *src, u32 out, u32 len, u32 qsize)
-{
- u8 *ori_det = dst;
- unsigned long flags;
-
- spin_lock_irqsave(&pld->pld_lock, flags);
-
- if ((out + len) <= qsize) {
- /* ----- (out) (in) ----- */
- /* ----- 7f 00 00 7e ----- */
- iowrite16(PLD_ADDR_MASK(&(src+out)[0]), pld->address_buffer);
- memcpy(dst, pld->base, len);
- } else {
- /* (in) ----------- (out) */
- /* 00 7e ----------- 7f 00 */
- unsigned len1 = qsize - out;
-
- /* 1) out -> buffer end */
- iowrite16(PLD_ADDR_MASK(&(src+out)[0]), pld->address_buffer);
- memcpy(dst, pld->base, len1);
-
- /* 2) buffer start -> in */
- dst += len1;
- iowrite16(PLD_ADDR_MASK(&src[0]), pld->address_buffer);
- memcpy(dst, pld->base, (len - len1));
- }
-
- spin_unlock_irqrestore(&pld->pld_lock, flags);
- if (pld->ld.mode == LINK_MODE_IPC && ori_det[0] != 0x7F) {
- mif_info("ipc read error!! in[%d], out[%d]\n",
- get_rx_head(pld, dev),
- get_rx_tail(pld, dev));
- }
-
-}
-
-/*
- ret < 0 : error
- ret == 0 : no data
- ret > 0 : valid data
-*/
-static int pld_ipc_recv_data_with_rxb(struct pld_link_device *pld, int dev)
-{
- struct link_device *ld = &pld->ld;
- struct mif_rxb *rxb;
- u8 __iomem *src = get_rx_buff(pld, dev);
- u32 qsize = get_rx_buff_size(pld, dev);
- u32 in;
- u32 out;
- u32 rcvd;
- struct mif_irq_map map;
- unsigned long int flags;
-
- spin_lock_irqsave(&pld->tx_rx_lock, flags);
-
- rcvd = get_rxq_rcvd(pld, dev, qsize, &in, &out);
- if (rcvd <= 0) {
- spin_unlock_irqrestore(&pld->tx_rx_lock, flags);
- return rcvd;
- }
-
- if (dev == IPC_FMT) {
- set_dpram_map(pld, &map);
- mif_irq_log(ld->mc->msd, map, "ipc_recv", sizeof("ipc_recv"));
- }
-
- /* Allocate an rxb */
- rxb = rxbq_get_free_rxb(&pld->rxbq[dev]);
- if (!rxb) {
- mif_info("%s: ERR! %s rxbq_get_free_rxb fail\n",
- ld->name, get_dev_name(dev));
- spin_unlock_irqrestore(&pld->tx_rx_lock, flags);
- return -ENOMEM;
- }
-
- /* Read data from each DPRAM buffer */
- pld_ipc_read(pld, dev, rxb_put(rxb, rcvd), src, out, rcvd, qsize);
-
- /* Calculate and set new out */
- out += rcvd;
- if (out >= qsize)
- out -= qsize;
- set_rx_tail(pld, dev, out);
-
- spin_unlock_irqrestore(&pld->tx_rx_lock, flags);
- return rcvd;
-}
-
-static void non_command_handler(struct pld_link_device *pld, u16 non_cmd)
-{
- struct link_device *ld = &pld->ld;
- int i = 0;
- int ret = 0;
- u16 mask = 0;
-
- if (!ipc_active(pld))
- return;
-
- /* Read data from DPRAM */
- for (i = 0; i < ld->max_ipc_dev; i++) {
- ret = pld_ipc_recv_data_with_rxb(pld, i);
- if (ret < 0)
- reset_rx_circ(pld, i);
-
- /* Check and process REQ_ACK (at this time, in == out) */
- if (non_cmd & get_mask_req_ack(pld, i)) {
- mif_debug("%s: send %s_RES_ACK\n",
- ld->name, get_dev_name(i));
- mask |= get_mask_res_ack(pld, i);
- }
- }
-
- /* Schedule soft IRQ for RX */
- tasklet_hi_schedule(&pld->rx_tsk);
-
- /* Try TX via DPRAM */
- for (i = 0; i < ld->max_ipc_dev; i++) {
- if (atomic_read(&pld->res_required[i]) > 0) {
- ret = pld_try_ipc_tx(pld, i);
- if (ret > 0) {
- atomic_set(&pld->res_required[i], 0);
- mask |= get_mask_send(pld, i);
- } else if (ret == -ENOSPC) {
- mask |= get_mask_req_ack(pld, i);
- }
- }
- }
-
- if (mask) {
- send_intr(pld, INT_NON_CMD(mask));
- mif_debug("%s: send intr 0x%04X\n", ld->name, mask);
- }
-}
-
-static void handle_cp_crash(struct pld_link_device *pld)
-{
- struct link_device *ld = &pld->ld;
- struct io_device *iod;
- int i;
-
- for (i = 0; i < ld->max_ipc_dev; i++) {
- mif_info("%s: purging %s_skb_txq\b", ld->name, get_dev_name(i));
- skb_queue_purge(ld->skb_txq[i]);
- }
-
- iod = link_get_iod_with_format(ld, IPC_FMT);
- iod->modem_state_changed(iod, STATE_CRASH_EXIT);
-
- iod = link_get_iod_with_format(ld, IPC_BOOT);
- iod->modem_state_changed(iod, STATE_CRASH_EXIT);
-
- iod = link_get_iod_with_channel(ld, RMNET0_CH_ID);
- if (iod)
- iodevs_for_each(iod->msd, iodev_netif_stop, 0);
-}
-
-static void handle_no_crash_ack(unsigned long arg)
-{
- struct pld_link_device *pld = (struct pld_link_device *)arg;
- struct link_device *ld = &pld->ld;
-
- mif_err("%s: ERR! No CRASH_EXIT ACK from CP\n", ld->mc->name);
-
- if (!wake_lock_active(&pld->wlock))
- wake_lock(&pld->wlock);
-
- handle_cp_crash(pld);
-}
-
-static int trigger_force_cp_crash(struct pld_link_device *pld)
-{
- struct link_device *ld = &pld->ld;
-
- if (ld->mode == LINK_MODE_ULOAD) {
- mif_err("%s: CP crash is already in progress\n", ld->mc->name);
- return 0;
- }
-
- ld->mode = LINK_MODE_ULOAD;
- mif_err("%s: called by %pf\n", ld->name, __builtin_return_address(0));
-
- send_intr(pld, INT_CMD(INT_CMD_CRASH_EXIT));
-
- mif_add_timer(&pld->crash_ack_timer, FORCE_CRASH_ACK_TIMEOUT,
- handle_no_crash_ack, (unsigned long)pld);
-
- return 0;
-}
-
-static int pld_init_ipc(struct pld_link_device *pld)
-{
- struct link_device *ld = &pld->ld;
- int i;
-
- if (ld->mode == LINK_MODE_IPC &&
- get_magic(pld) == DPRAM_MAGIC_CODE &&
- get_access(pld) == 1)
- mif_info("%s: IPC already initialized\n", ld->name);
-
- /* Clear pointers in every circular queue */
- for (i = 0; i < ld->max_ipc_dev; i++) {
- set_tx_head(pld, i, 0);
- set_tx_tail(pld, i, 0);
- set_rx_head(pld, i, 0);
- set_rx_tail(pld, i, 0);
- }
-
- /* Initialize variables for efficient TX/RX processing */
- for (i = 0; i < ld->max_ipc_dev; i++)
- pld->iod[i] = link_get_iod_with_format(ld, i);
- pld->iod[IPC_RAW] = link_get_iod_with_format(ld, IPC_MULTI_RAW);
-
- for (i = 0; i < ld->max_ipc_dev; i++)
- atomic_set(&pld->res_required[i], 0);
-
- spin_lock_init(&pld->tx_rx_lock);
-
- /* Enable IPC */
- atomic_set(&pld->accessing, 0);
-
- set_magic(pld, DPRAM_MAGIC_CODE);
- set_access(pld, 1);
- if (get_magic(pld) != DPRAM_MAGIC_CODE || get_access(pld) != 1)
- return -EACCES;
-
- ld->mode = LINK_MODE_IPC;
-
- if (wake_lock_active(&pld->wlock))
- wake_unlock(&pld->wlock);
-
- return 0;
-}
-
-static void cmd_req_active_handler(struct pld_link_device *pld)
-{
- send_intr(pld, INT_CMD(INT_CMD_RES_ACTIVE));
-}
-
-static void cmd_crash_reset_handler(struct pld_link_device *pld)
-{
- struct link_device *ld = &pld->ld;
- struct io_device *iod = NULL;
-
- ld->mode = LINK_MODE_ULOAD;
-
- if (!wake_lock_active(&pld->wlock))
- wake_lock(&pld->wlock);
-
- mif_err("%s: Recv 0xC7 (CRASH_RESET)\n", ld->name);
-
- iod = link_get_iod_with_format(ld, IPC_FMT);
- iod->modem_state_changed(iod, STATE_CRASH_RESET);
-
- iod = link_get_iod_with_format(ld, IPC_BOOT);
- iod->modem_state_changed(iod, STATE_CRASH_RESET);
-}
-
-static void cmd_crash_exit_handler(struct pld_link_device *pld)
-{
- struct link_device *ld = &pld->ld;
-
- ld->mode = LINK_MODE_ULOAD;
-
- if (!wake_lock_active(&pld->wlock))
- wake_lock(&pld->wlock);
-
- mif_err("%s: Recv 0xC9 (CRASH_EXIT)\n", ld->name);
-
- del_timer(&pld->crash_ack_timer);
-
- if (pld->ext_op && pld->ext_op->crash_log)
- pld->ext_op->crash_log(pld);
-
- handle_cp_crash(pld);
-}
-
-static void cmd_phone_start_handler(struct pld_link_device *pld)
-{
- struct link_device *ld = &pld->ld;
- struct io_device *iod = NULL;
-
- mif_info("%s: Recv 0xC8 (CP_START)\n", ld->name);
-
- pld_init_ipc(pld);
-
- iod = link_get_iod_with_format(ld, IPC_FMT);
- if (!iod) {
- mif_info("%s: ERR! no iod\n", ld->name);
- return;
- }
-
- if (pld->ext_op && pld->ext_op->cp_start_handler)
- pld->ext_op->cp_start_handler(pld);
-
- if (ld->mc->phone_state != STATE_ONLINE) {
- mif_info("%s: phone_state: %d -> ONLINE\n",
- ld->name, ld->mc->phone_state);
- iod->modem_state_changed(iod, STATE_ONLINE);
- }
-
- mif_info("%s: Send 0xC2 (INIT_END)\n", ld->name);
- send_intr(pld, INT_CMD(INT_CMD_INIT_END));
-}
-
-static void command_handler(struct pld_link_device *pld, u16 cmd)
-{
- struct link_device *ld = &pld->ld;
-
- switch (INT_CMD_MASK(cmd)) {
- case INT_CMD_REQ_ACTIVE:
- cmd_req_active_handler(pld);
- break;
-
- case INT_CMD_CRASH_RESET:
- pld->init_status = DPRAM_INIT_STATE_NONE;
- cmd_crash_reset_handler(pld);
- break;
-
- case INT_CMD_CRASH_EXIT:
- pld->init_status = DPRAM_INIT_STATE_NONE;
- cmd_crash_exit_handler(pld);
- break;
-
- case INT_CMD_PHONE_START:
- pld->init_status = DPRAM_INIT_STATE_READY;
- cmd_phone_start_handler(pld);
- complete_all(&pld->dpram_init_cmd);
- break;
-
- case INT_CMD_NV_REBUILDING:
- mif_info("%s: NV_REBUILDING\n", ld->name);
- break;
-
- case INT_CMD_PIF_INIT_DONE:
- complete_all(&pld->modem_pif_init_done);
- break;
-
- case INT_CMD_SILENT_NV_REBUILDING:
- mif_info("%s: SILENT_NV_REBUILDING\n", ld->name);
- break;
-
- case INT_CMD_NORMAL_PWR_OFF:
- /*ToDo:*/
- /*kernel_sec_set_cp_ack()*/;
- break;
-
- case INT_CMD_REQ_TIME_SYNC:
- case INT_CMD_CP_DEEP_SLEEP:
- case INT_CMD_EMER_DOWN:
- break;
-
- default:
- mif_info("%s: unknown command 0x%04X\n", ld->name, cmd);
- }
-}
-
-static irqreturn_t pld_irq_handler(int irq, void *data)
-{
- struct pld_link_device *pld = (struct pld_link_device *)data;
- struct link_device *ld = (struct link_device *)&pld->ld;
- u16 int2ap = 0;
-
- if (unlikely(ld->mode == LINK_MODE_OFFLINE))
- return IRQ_HANDLED;
-
- int2ap = recv_intr(pld);
-
- if (unlikely(int2ap == INT_POWERSAFE_FAIL)) {
- mif_info("%s: int2ap == INT_POWERSAFE_FAIL\n", ld->name);
- goto exit;
- } else if (int2ap == 0x1234 || int2ap == 0xDBAB || int2ap == 0xABCD) {
- if (pld->ext_op && pld->ext_op->dload_cmd_handler) {
- pld->ext_op->dload_cmd_handler(pld, int2ap);
- goto exit;
- }
- }
-
- if (likely(INT_VALID(int2ap))) {
- if (unlikely(INT_CMD_VALID(int2ap)))
- command_handler(pld, int2ap);
- else
- non_command_handler(pld, int2ap);
- } else {
- mif_info("%s: ERR! invalid intr 0x%04X\n",
- ld->name, int2ap);
- }
-
-exit:
- clear_intr(pld);
- return IRQ_HANDLED;
-}
-
-static void pld_send_ipc(struct link_device *ld, int dev,
- struct io_device *iod, struct sk_buff *skb)
-{
- struct pld_link_device *pld = to_pld_link_device(ld);
- struct sk_buff_head *txq = ld->skb_txq[dev];
- int ret;
- u16 mask;
-
- skb_queue_tail(txq, skb);
- if (txq->qlen > 1024) {
- mif_debug("%s: %s txq->qlen %d > 1024\n",
- ld->name, get_dev_name(dev), txq->qlen);
- }
-
- if (!ipc_active(pld))
- goto exit;
-
- if (atomic_read(&pld->res_required[dev]) > 0) {
- mif_debug("%s: %s_TXQ is full\n", ld->name, get_dev_name(dev));
- goto exit;
- }
-
- ret = pld_try_ipc_tx(pld, dev);
- if (ret > 0) {
- mask = get_mask_send(pld, dev);
- send_intr(pld, INT_NON_CMD(mask));
- } else if (ret == -ENOSPC) {
- mask = get_mask_req_ack(pld, dev);
- send_intr(pld, INT_NON_CMD(mask));
- mif_info("%s: Send REQ_ACK 0x%04X\n", ld->name, mask);
- } else {
- mif_info("%s: pld_try_ipc_tx fail (err %d)\n", ld->name, ret);
- }
-
-exit:
- return;
-}
-
-static int pld_send(struct link_device *ld, struct io_device *iod,
- struct sk_buff *skb)
-{
- enum dev_format dev = iod->format;
- int len = skb->len;
-
- switch (dev) {
- case IPC_FMT:
- case IPC_RAW:
- case IPC_RFS:
- if (likely(ld->mode == LINK_MODE_IPC)) {
- pld_send_ipc(ld, dev, iod, skb);
- } else {
- mif_info("%s: ld->mode != LINK_MODE_IPC\n", ld->name);
- dev_kfree_skb_any(skb);
- }
- return len;
-
- default:
- mif_info("%s: ERR! no TXQ for %s\n", ld->name, iod->name);
- dev_kfree_skb_any(skb);
- return -ENODEV;
- }
-}
-
-static int pld_force_dump(struct link_device *ld, struct io_device *iod)
-{
- struct pld_link_device *pld = to_pld_link_device(ld);
- trigger_force_cp_crash(pld);
- return 0;
-}
-
-static int pld_dump_start(struct link_device *ld, struct io_device *iod)
-{
- struct pld_link_device *pld = to_pld_link_device(ld);
-
- if (pld->ext_op && pld->ext_op->dump_start)
- return pld->ext_op->dump_start(pld);
- else
- return -ENODEV;
-}
-
-static int pld_dump_update(struct link_device *ld, struct io_device *iod,
- unsigned long arg)
-{
- struct pld_link_device *pld = to_pld_link_device(ld);
-
- if (pld->ext_op && pld->ext_op->dump_update)
- return pld->ext_op->dump_update(pld, (void *)arg);
- else
- return -ENODEV;
-}
-
-static int pld_ioctl(struct link_device *ld, struct io_device *iod,
- unsigned int cmd, unsigned long arg)
-{
- struct pld_link_device *pld = to_pld_link_device(ld);
- int err = 0;
-
-/*
- mif_info("%s: cmd 0x%08X\n", ld->name, cmd);
-*/
-
- switch (cmd) {
- case IOCTL_DPRAM_INIT_STATUS:
- mif_debug("%s: get dpram init status\n", ld->name);
- return pld->init_status;
-
- default:
- if (pld->ext_ioctl) {
- err = pld->ext_ioctl(pld, iod, cmd, arg);
- } else {
- mif_err("%s: ERR! invalid cmd 0x%08X\n", ld->name, cmd);
- err = -EINVAL;
- }
-
- break;
- }
-
- return err;
-}
-
-static int pld_table_init(struct pld_link_device *pld)
-{
- struct link_device *ld = &pld->ld;
- u8 __iomem *dp_base;
- int i;
-
- if (!pld->base) {
- mif_info("%s: ERR! pld->base == NULL\n", ld->name);
- return -EINVAL;
- }
- dp_base = pld->base;
-
- /* Map for IPC */
- if (pld->dpctl->ipc_map) {
- memcpy(&pld->ipc_map, pld->dpctl->ipc_map,
- sizeof(struct dpram_ipc_map));
- }
-
- pld->magic_ap2cp = pld->ipc_map.magic_ap2cp;
- pld->access_ap2cp = pld->ipc_map.access_ap2cp;
-
- pld->magic_cp2ap = pld->ipc_map.magic_cp2ap;
- pld->access_cp2ap = pld->ipc_map.access_cp2ap;
-
- pld->address_buffer = pld->ipc_map.address_buffer;
-
- for (i = 0; i < ld->max_ipc_dev; i++)
- pld->dev[i] = &pld->ipc_map.dev[i];
- pld->mbx2ap = pld->ipc_map.mbx_cp2ap;
- pld->mbx2cp = pld->ipc_map.mbx_ap2cp;
-
- /* Map for booting */
- if (pld->ext_op && pld->ext_op->init_boot_map) {
- pld->ext_op->init_boot_map(pld);
- } else {
- pld->bt_map.magic = (u32 *)(dp_base);
- pld->bt_map.buff = (u8 *)(dp_base + DP_BOOT_BUFF_OFFSET);
- pld->bt_map.size = pld->size - 8;
- }
-
- /* Map for download (FOTA, UDL, etc.) */
- if (pld->ext_op && pld->ext_op->init_dl_map) {
- pld->ext_op->init_dl_map(pld);
- } else {
- pld->dl_map.magic = (u32 *)(dp_base);
- pld->dl_map.buff = (u8 *)(dp_base + DP_DLOAD_BUFF_OFFSET);
- }
-
- /* Map for upload mode */
- if (pld->ext_op && pld->ext_op->init_ul_map) {
- pld->ext_op->init_ul_map(pld);
- } else {
- pld->ul_map.magic = (u32 *)(dp_base);
- pld->ul_map.buff = (u8 *)(dp_base + DP_ULOAD_BUFF_OFFSET);
- }
-
- return 0;
-}
-
-static void pld_setup_common_op(struct pld_link_device *pld)
-{
- pld->clear_intr = clear_intr;
- pld->recv_intr = recv_intr;
- pld->send_intr = send_intr;
- pld->get_magic = get_magic;
- pld->set_magic = set_magic;
- pld->get_access = get_access;
- pld->set_access = set_access;
- pld->get_tx_head = get_tx_head;
- pld->get_tx_tail = get_tx_tail;
- pld->set_tx_head = set_tx_head;
- pld->set_tx_tail = set_tx_tail;
- pld->get_tx_buff = get_tx_buff;
- pld->get_tx_buff_size = get_tx_buff_size;
- pld->get_rx_head = get_rx_head;
- pld->get_rx_tail = get_rx_tail;
- pld->set_rx_head = set_rx_head;
- pld->set_rx_tail = set_rx_tail;
- pld->get_rx_buff = get_rx_buff;
- pld->get_rx_buff_size = get_rx_buff_size;
- pld->get_mask_req_ack = get_mask_req_ack;
- pld->get_mask_res_ack = get_mask_res_ack;
- pld->get_mask_send = get_mask_send;
-}
-
-static int pld_link_init(struct link_device *ld, struct io_device *iod)
-{
- return 0;
-}
-
-static void pld_link_terminate(struct link_device *ld, struct io_device *iod)
-{
- return;
-}
-
-struct link_device *pld_create_link_device(struct platform_device *pdev)
-{
- struct modem_data *mdm_data = NULL;
- struct pld_link_device *pld = NULL;
- struct link_device *ld = NULL;
- struct resource *res = NULL;
- resource_size_t res_size;
- struct modemlink_dpram_control *dpctl = NULL;
- unsigned long task_data;
- int ret = 0;
- int i = 0;
- int bsize;
- int qsize;
-
- /* Get the platform data */
- mdm_data = (struct modem_data *)pdev->dev.platform_data;
- if (!mdm_data) {
- mif_info("ERR! mdm_data == NULL\n");
- goto err;
- }
- mif_info("modem = %s\n", mdm_data->name);
- mif_info("link device = %s\n", mdm_data->link_name);
-
- if (!mdm_data->dpram_ctl) {
- mif_info("ERR! mdm_data->dpram_ctl == NULL\n");
- goto err;
- }
- dpctl = mdm_data->dpram_ctl;
-
- /* Alloc DPRAM link device structure */
- pld = kzalloc(sizeof(struct pld_link_device), GFP_KERNEL);
- if (!pld) {
- mif_info("ERR! kzalloc pld fail\n");
- goto err;
- }
- ld = &pld->ld;
-
- /* Retrieve modem data and DPRAM control data from the modem data */
- ld->mdm_data = mdm_data;
- ld->name = mdm_data->link_name;
- ld->ipc_version = mdm_data->ipc_version;
-
- /* Retrieve the most basic data for IPC from the modem data */
- pld->dpctl = dpctl;
- pld->type = dpctl->dp_type;
-
- if (mdm_data->ipc_version < SIPC_VER_50) {
- if (!dpctl->max_ipc_dev) {
- mif_info("ERR! no max_ipc_dev\n");
- goto err;
- }
-
- ld->aligned = dpctl->aligned;
- ld->max_ipc_dev = dpctl->max_ipc_dev;
- } else {
- ld->aligned = 1;
- ld->max_ipc_dev = MAX_SIPC5_DEV;
- }
-
- /* Set attributes as a link device */
- ld->init_comm = pld_link_init;
- ld->terminate_comm = pld_link_terminate;
- ld->send = pld_send;
- ld->force_dump = pld_force_dump;
- ld->dump_start = pld_dump_start;
- ld->dump_update = pld_dump_update;
- ld->ioctl = pld_ioctl;
-
- INIT_LIST_HEAD(&ld->list);
-
- skb_queue_head_init(&ld->sk_fmt_tx_q);
- skb_queue_head_init(&ld->sk_raw_tx_q);
- skb_queue_head_init(&ld->sk_rfs_tx_q);
- ld->skb_txq[IPC_FMT] = &ld->sk_fmt_tx_q;
- ld->skb_txq[IPC_RAW] = &ld->sk_raw_tx_q;
- ld->skb_txq[IPC_RFS] = &ld->sk_rfs_tx_q;
-
- /* Set up function pointers */
- pld_setup_common_op(pld);
- pld->ext_op = pld_get_ext_op(mdm_data->modem_type);
- if (pld->ext_op && pld->ext_op->ioctl)
- pld->ext_ioctl = pld->ext_op->ioctl;
-
- /* Retrieve DPRAM resource */
- if (!dpctl->dp_base) {
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res) {
- mif_info("%s: ERR! platform_get_resource fail\n",
- ld->name);
- goto err;
- }
- res_size = resource_size(res);
-
- dpctl->dp_base = ioremap_nocache(res->start, res_size);
- dpctl->dp_size = res_size;
- }
- pld->base = dpctl->dp_base;
- pld->size = dpctl->dp_size;
-
- mif_info("%s: type %d, aligned %d, base 0x%08X, size %d\n",
- ld->name, pld->type, ld->aligned, (int)pld->base, pld->size);
-
- /* Initialize DPRAM map (physical map -> logical map) */
- ret = pld_table_init(pld);
- if (ret < 0) {
- mif_info("%s: ERR! pld_table_init fail (err %d)\n",
- ld->name, ret);
- goto err;
- }
-
- spin_lock_init(&pld->pld_lock);
-
- /* Disable IPC */
- set_magic(pld, 0);
- set_access(pld, 0);
-
- pld->init_status = DPRAM_INIT_STATE_NONE;
-
- /* Initialize locks, completions, and bottom halves */
- snprintf(pld->wlock_name, MIF_MAX_NAME_LEN, "%s_wlock", ld->name);
- wake_lock_init(&pld->wlock, WAKE_LOCK_SUSPEND, pld->wlock_name);
-
- init_completion(&pld->dpram_init_cmd);
- init_completion(&pld->modem_pif_init_done);
- init_completion(&pld->udl_start_complete);
- init_completion(&pld->udl_cmd_complete);
- init_completion(&pld->crash_start_complete);
- init_completion(&pld->crash_recv_done);
-
- task_data = (unsigned long)pld;
- tasklet_init(&pld->rx_tsk, pld_ipc_rx_task, task_data);
-
- /* Prepare RXB queue */
- qsize = DPRAM_MAX_RXBQ_SIZE;
- for (i = 0; i < ld->max_ipc_dev; i++) {
- bsize = rxbq_get_page_size(get_rx_buff_size(pld, i));
- pld->rxbq[i].size = qsize;
- pld->rxbq[i].in = 0;
- pld->rxbq[i].out = 0;
- pld->rxbq[i].rxb = rxbq_create_pool(bsize, qsize);
- if (!pld->rxbq[i].rxb) {
- mif_info("%s: ERR! %s rxbq_create_pool fail\n",
- ld->name, get_dev_name(i));
- goto err;
- }
- mif_info("%s: %s rxbq_pool created (bsize:%d, qsize:%d)\n",
- ld->name, get_dev_name(i), bsize, qsize);
- }
-
- /* Prepare a multi-purpose miscellaneous buffer */
- pld->buff = kzalloc(pld->size, GFP_KERNEL);
- if (!pld->buff) {
- mif_info("%s: ERR! kzalloc pld->buff fail\n", ld->name);
- goto err;
- }
-
- /* Retrieve DPRAM IRQ GPIO# */
- pld->gpio_dpram_int = mdm_data->gpio_dpram_int;
-
- /* Retrieve DPRAM IRQ# */
- if (!dpctl->dpram_irq) {
- dpctl->dpram_irq = platform_get_irq_byname(pdev, "dpram_irq");
- if (dpctl->dpram_irq < 0) {
- mif_info("%s: ERR! platform_get_irq_byname fail\n",
- ld->name);
- goto err;
- }
- }
- pld->irq = dpctl->dpram_irq;
-
- /* Retrieve DPRAM IRQ flags */
- if (!dpctl->dpram_irq_flags)
- dpctl->dpram_irq_flags = (IRQF_NO_SUSPEND | IRQF_TRIGGER_LOW);
- pld->irq_flags = dpctl->dpram_irq_flags;
-
- /* Register DPRAM interrupt handler */
- snprintf(pld->irq_name, MIF_MAX_NAME_LEN, "%s_irq", ld->name);
- ret = pld_register_isr(pld->irq, pld_irq_handler, pld->irq_flags,
- pld->irq_name, pld);
- if (ret)
- goto err;
-
- return ld;
-
-err:
- if (pld) {
- kfree(pld->buff);
- kfree(pld);
- }
-
- return NULL;
-}
-
diff --git a/drivers/misc/modem_if_u1/modem_link_device_pld.h b/drivers/misc/modem_if_u1/modem_link_device_pld.h
deleted file mode 100644
index 89c44b2..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_pld.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-#ifndef __MODEM_LINK_DEVICE_PLD_H__
-#define __MODEM_LINK_DEVICE_PLD_H__
-
-#include "modem_link_device_memory.h"
-
-#define PLD_ADDR_MASK(x) (0x00003FFF & (unsigned long)(x))
-
-/*
- mbx_ap2cp + 0x0
- magic_code +
- access_enable +
- padding +
- mbx_cp2ap + 0x1000
- magic_code +
- access_enable +
- padding +
- fmt_tx_head + fmt_tx_tail + fmt_tx_buff + 0x2000
- raw_tx_head + raw_tx_tail + raw_tx_buff +
- fmt_rx_head + fmt_rx_tail + fmt_rx_buff + 0x3000
- raw_rx_head + raw_rx_tail + raw_rx_buff +
- = 2 +
- 4094 +
- 2 +
- 4094 +
- 2 +
- 2 +
- 2 + 2 + 1020 +
- 2 + 2 + 3064 +
- 2 + 2 + 1020 +
- 2 + 2 + 3064
- */
-
-#define PLD_FMT_TX_BUFF_SZ 1024
-#define PLD_RAW_TX_BUFF_SZ 3072
-#define PLD_FMT_RX_BUFF_SZ 1024
-#define PLD_RAW_RX_BUFF_SZ 3072
-
-#define MAX_MSM_EDPRAM_IPC_DEV 2 /* FMT, RAW */
-
-struct pld_ipc_map {
- u16 mbx_ap2cp;
- u16 magic_ap2cp;
- u16 access_ap2cp;
- u16 fmt_tx_head;
- u16 raw_tx_head;
- u16 fmt_rx_tail;
- u16 raw_rx_tail;
- u16 temp1;
- u8 padding1[4080];
-
- u16 mbx_cp2ap;
- u16 magic_cp2ap;
- u16 access_cp2ap;
- u16 fmt_tx_tail;
- u16 raw_tx_tail;
- u16 fmt_rx_head;
- u16 raw_rx_head;
- u16 temp2;
- u8 padding2[4080];
-
- u8 fmt_tx_buff[PLD_FMT_TX_BUFF_SZ];
- u8 raw_tx_buff[PLD_RAW_TX_BUFF_SZ];
- u8 fmt_rx_buff[PLD_RAW_TX_BUFF_SZ];
- u8 raw_rx_buff[PLD_RAW_RX_BUFF_SZ];
-
- u8 padding3[16384];
-
- u16 address_buffer;
-};
-
-struct pld_ext_op;
-
-struct pld_link_device {
- struct link_device ld;
-
- /* DPRAM address and size */
- enum dpram_type type; /* DPRAM type */
- u8 __iomem *base; /* DPRAM base virtual address */
- u32 size; /* DPRAM size */
-
- /* DPRAM IRQ GPIO# */
- unsigned gpio_dpram_int;
-
- /* DPRAM IRQ from CP */
- int irq;
- unsigned long irq_flags;
- char irq_name[MIF_MAX_NAME_LEN];
-
- /* Link to DPRAM control functions dependent on each platform */
- struct modemlink_dpram_control *dpctl;
-
- /* Physical configuration -> logical configuration */
- union {
- struct dpram_boot_map bt_map;
- struct qc_dpram_boot_map qc_bt_map;
- };
-
- struct dpram_dload_map dl_map;
- struct dpram_uload_map ul_map;
-
- /* IPC device map */
- struct dpram_ipc_map ipc_map;
-
- /* Pointers (aliases) to IPC device map */
- u16 __iomem *magic_ap2cp;
- u16 __iomem *access_ap2cp;
- u16 __iomem *magic_cp2ap;
- u16 __iomem *access_cp2ap;
- u16 __iomem *address_buffer;
-
- struct dpram_ipc_device *dev[MAX_IPC_DEV];
- u16 __iomem *mbx2ap;
- u16 __iomem *mbx2cp;
-
- /* Wakelock for DPRAM device */
- struct wake_lock wlock;
- char wlock_name[MIF_MAX_NAME_LEN];
-
- /* For booting */
- unsigned boot_start_complete;
- struct completion dpram_init_cmd;
- struct completion modem_pif_init_done;
-
- /* For UDL */
- struct tasklet_struct ul_tsk;
- struct tasklet_struct dl_tsk;
- struct completion udl_start_complete;
- struct completion udl_cmd_complete;
- struct dpram_udl_check udl_check;
- struct dpram_udl_param udl_param;
-
- /* For CP crash dump */
- struct timer_list crash_ack_timer;
- struct completion crash_start_complete;
- struct completion crash_recv_done;
- struct timer_list crash_timer;
- int crash_rcvd; /* Count of CP crash dump packets received */
-
- /* For locking TX process */
- spinlock_t tx_rx_lock;
- spinlock_t pld_lock;
-
- /* For efficient RX process */
- struct tasklet_struct rx_tsk;
- struct mif_rxb_queue rxbq[MAX_IPC_DEV];
- struct io_device *iod[MAX_IPC_DEV];
-
- /* For retransmission after buffer full state */
- atomic_t res_required[MAX_IPC_DEV];
-
- /* For wake-up/sleep control */
- atomic_t accessing;
-
- /* Multi-purpose miscellaneous buffer */
- u8 *buff;
-
- /* PLD IPC initialization status */
- int init_status;
-
- /* Alias to device-specific IOCTL function */
- int (*ext_ioctl)(struct pld_link_device *pld, struct io_device *iod,
- unsigned int cmd, unsigned long arg);
-
- /* Common operations for each DPRAM */
- void (*clear_intr)(struct pld_link_device *pld);
- u16 (*recv_intr)(struct pld_link_device *pld);
- void (*send_intr)(struct pld_link_device *pld, u16 mask);
- u16 (*get_magic)(struct pld_link_device *pld);
- void (*set_magic)(struct pld_link_device *pld, u16 value);
- u16 (*get_access)(struct pld_link_device *pld);
- void (*set_access)(struct pld_link_device *pld, u16 value);
- u32 (*get_tx_head)(struct pld_link_device *pld, int id);
- u32 (*get_tx_tail)(struct pld_link_device *pld, int id);
- void (*set_tx_head)(struct pld_link_device *pld, int id, u32 head);
- void (*set_tx_tail)(struct pld_link_device *pld, int id, u32 tail);
- u8 *(*get_tx_buff)(struct pld_link_device *pld, int id);
- u32 (*get_tx_buff_size)(struct pld_link_device *pld, int id);
- u32 (*get_rx_head)(struct pld_link_device *pld, int id);
- u32 (*get_rx_tail)(struct pld_link_device *pld, int id);
- void (*set_rx_head)(struct pld_link_device *pld, int id, u32 head);
- void (*set_rx_tail)(struct pld_link_device *pld, int id, u32 tail);
- u8 *(*get_rx_buff)(struct pld_link_device *pld, int id);
- u32 (*get_rx_buff_size)(struct pld_link_device *pld, int id);
- u16 (*get_mask_req_ack)(struct pld_link_device *pld, int id);
- u16 (*get_mask_res_ack)(struct pld_link_device *pld, int id);
- u16 (*get_mask_send)(struct pld_link_device *pld, int id);
-
- /* Extended operations for various modems */
- struct pld_ext_op *ext_op;
-};
-
-/* converts from struct link_device* to struct xxx_link_device* */
-#define to_pld_link_device(linkdev) \
- container_of(linkdev, struct pld_link_device, ld)
-
-struct pld_ext_op {
- int exist;
-
- void (*init_boot_map)(struct pld_link_device *pld);
- void (*init_dl_map)(struct pld_link_device *pld);
- void (*init_ul_map)(struct pld_link_device *pld);
-
- void (*dload_cmd_handler)(struct pld_link_device *pld, u16 cmd);
-
- void (*cp_start_handler)(struct pld_link_device *pld);
-
- void (*crash_log)(struct pld_link_device *pld);
- int (*dump_start)(struct pld_link_device *pld);
- int (*dump_update)(struct pld_link_device *pld, void *arg);
-
- int (*ioctl)(struct pld_link_device *pld, struct io_device *iod,
- unsigned int cmd, unsigned long arg);
-
- void (*clear_intr)(struct pld_link_device *pld);
-};
-
-struct pld_ext_op *pld_get_ext_op(enum modem_t modem);
-#endif
diff --git a/drivers/misc/modem_if_u1/modem_link_device_pld_ext_op.c b/drivers/misc/modem_if_u1/modem_link_device_pld_ext_op.c
deleted file mode 100644
index 4f2df8f..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_pld_ext_op.c
+++ /dev/null
@@ -1,556 +0,0 @@
-/*
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/time.h>
-#include <linux/interrupt.h>
-#include <linux/timer.h>
-#include <linux/wakelock.h>
-#include <linux/delay.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/vmalloc.h>
-#include <linux/if_arp.h>
-#include <linux/platform_device.h>
-#include <linux/kallsyms.h>
-#include <linux/platform_data/modem.h>
-
-#include "modem_prj.h"
-#include "modem_link_device_pld.h"
-#include "modem_utils.h"
-
-#if defined(CONFIG_CDMA_MODEM_MDM6600) || defined(CONFIG_GSM_MODEM_ESC6270)
-enum qc_dload_tag {
- QC_DLOAD_TAG_NONE = 0,
- QC_DLOAD_TAG_BIN,
- QC_DLOAD_TAG_NV,
- QC_DLOAD_TAG_MAX
-};
-
-static void qc_dload_task(unsigned long data);
-
-static void qc_init_boot_map(struct pld_link_device *pld)
-{
- struct qc_dpram_boot_map *qbt_map = &pld->qc_bt_map;
- struct modemlink_dpram_control *dpctl = pld->dpctl;
-
- qbt_map->buff = pld->dev[0]->txq.buff;
- qbt_map->frame_size = (u16 *)(pld->base + dpctl->boot_size_offset);
- qbt_map->tag = (u16 *)(pld->base + dpctl->boot_tag_offset);
- qbt_map->count = (u16 *)(pld->base + dpctl->boot_count_offset);
-
- tasklet_init(&pld->dl_tsk, qc_dload_task, (unsigned long)pld);
-}
-
-static void qc_dload_map(struct pld_link_device *pld, u8 is_upload)
-{
- struct qc_dpram_boot_map *qbt_map = &pld->qc_bt_map;
- struct modemlink_dpram_control *dpctl = pld->dpctl;
- unsigned int upload_offset = 0;
-
- if (is_upload == 1) {
- upload_offset = 0x1000;
- qbt_map->buff = pld->dev[0]->rxq.buff;
- } else {
- upload_offset = 0;
- qbt_map->buff = pld->dev[0]->txq.buff;
- }
-
- qbt_map->frame_size = (u16 *)(pld->base +
- dpctl->boot_size_offset + upload_offset);
- qbt_map->tag = (u16 *)(pld->base +
- dpctl->boot_tag_offset + upload_offset);
- qbt_map->count = (u16 *)(pld->base +
- dpctl->boot_count_offset + upload_offset);
-
-}
-
-static int qc_prepare_download(struct pld_link_device *pld)
-{
- int retval = 0;
- int count = 0;
-
- qc_dload_map(pld, 0);
-
- while (1) {
- if (pld->udl_check.copy_start) {
- pld->udl_check.copy_start = 0;
- break;
- }
-
- usleep_range(10000, 11000);
-
- count++;
- if (count > 1000) {
- mif_err("ERR! count %d\n", count);
- return -1;
- }
- }
-
- return retval;
-}
-
-static void _qc_do_download(struct pld_link_device *pld,
- struct dpram_udl_param *param)
-{
- struct qc_dpram_boot_map *qbt_map = &pld->qc_bt_map;
-
- if (param->size <= pld->dpctl->max_boot_frame_size) {
- iowrite16(PLD_ADDR_MASK(&qbt_map->buff[0]),
- pld->address_buffer);
- memcpy(pld->base, param->addr, param->size);
-
- iowrite16(PLD_ADDR_MASK(&qbt_map->frame_size[0]),
- pld->address_buffer);
- iowrite16(param->size, pld->base);
-
- iowrite16(PLD_ADDR_MASK(&qbt_map->tag[0]),
- pld->address_buffer);
- iowrite16(param->tag, pld->base);
-
- iowrite16(PLD_ADDR_MASK(&qbt_map->count[0]),
- pld->address_buffer);
- iowrite16(param->count, pld->base);
-
- pld->send_intr(pld, 0xDB12);
- } else {
- mif_info("param->size %d\n", param->size);
- }
-}
-
-static int _qc_download(struct pld_link_device *pld, void *arg,
- enum qc_dload_tag tag)
-{
- int retval = 0;
- int count = 0;
- int cnt_limit;
- unsigned char *img;
- struct dpram_udl_param param;
-
- retval = copy_from_user((void *)&param, (void *)arg, sizeof(param));
- if (retval < 0) {
- mif_err("ERR! copy_from_user fail\n");
- return -1;
- }
-
- img = vmalloc(param.size);
- if (!img) {
- mif_err("ERR! vmalloc fail\n");
- return -1;
- }
- memset(img, 0, param.size);
- memcpy(img, param.addr, param.size);
-
- pld->udl_check.total_size = param.size;
- pld->udl_check.rest_size = param.size;
- pld->udl_check.send_size = 0;
- pld->udl_check.copy_complete = 0;
-
- pld->udl_param.addr = img;
- pld->udl_param.size = pld->dpctl->max_boot_frame_size;
- if (tag == QC_DLOAD_TAG_NV)
- pld->udl_param.count = 1;
- else
- pld->udl_param.count = param.count;
- pld->udl_param.tag = tag;
-
- if (pld->udl_check.rest_size < pld->dpctl->max_boot_frame_size)
- pld->udl_param.size = pld->udl_check.rest_size;
-
- /* Download image (binary or NV) */
- _qc_do_download(pld, &pld->udl_param);
-
- /* Wait for completion
- */
- if (tag == QC_DLOAD_TAG_NV)
- cnt_limit = 200;
- else
- cnt_limit = 1000;
-
- while (1) {
- if (pld->udl_check.copy_complete) {
- pld->udl_check.copy_complete = 0;
- retval = 0;
- break;
- }
-
- usleep_range(10000, 11000);
-
- count++;
- if (count > cnt_limit) {
- mif_err("ERR! count %d\n", count);
- retval = -1;
- break;
- }
- }
-
- vfree(img);
-
- return retval;
-}
-
-static int qc_download_bin(struct pld_link_device *pld, void *arg)
-{
- return _qc_download(pld, arg, QC_DLOAD_TAG_BIN);
-}
-
-static int qc_download_nv(struct pld_link_device *pld, void *arg)
-{
- return _qc_download(pld, arg, QC_DLOAD_TAG_NV);
-}
-
-static void qc_dload_task(unsigned long data)
-{
- struct pld_link_device *pld = (struct pld_link_device *)data;
-
- pld->udl_check.send_size += pld->udl_param.size;
- pld->udl_check.rest_size -= pld->udl_param.size;
-
- pld->udl_param.addr += pld->udl_param.size;
-
- if (pld->udl_check.send_size >= pld->udl_check.total_size) {
- pld->udl_check.copy_complete = 1;
- pld->udl_param.tag = 0;
- return;
- }
-
- if (pld->udl_check.rest_size < pld->dpctl->max_boot_frame_size)
- pld->udl_param.size = pld->udl_check.rest_size;
-
- pld->udl_param.count += 1;
-
- _qc_do_download(pld, &pld->udl_param);
-}
-
-static void qc_dload_cmd_handler(struct pld_link_device *pld, u16 cmd)
-{
- switch (cmd) {
- case 0x1234:
- pld->udl_check.copy_start = 1;
- break;
-
- case 0xDBAB:
- tasklet_schedule(&pld->dl_tsk);
- break;
-
- case 0xABCD:
- mif_info("[%s] booting Start\n", pld->ld.name);
- pld->udl_check.boot_complete = 1;
- break;
-
- default:
- mif_err("ERR! unknown command 0x%04X\n", cmd);
- }
-}
-
-static int qc_boot_start(struct pld_link_device *pld)
-{
- u16 mask = 0;
- int count = 0;
-
- /* Send interrupt -> '0x4567' */
- mask = 0x4567;
- pld->send_intr(pld, mask);
-
- while (1) {
- if (pld->udl_check.boot_complete) {
- pld->udl_check.boot_complete = 0;
- break;
- }
-
- usleep_range(10000, 11000);
-
- count++;
- if (count > 200) {
- mif_err("ERR! count %d\n", count);
- return -1;
- }
- }
-
- return 0;
-}
-
-static int qc_boot_post_process(struct pld_link_device *pld)
-{
- int count = 0;
-
- while (1) {
- if (pld->boot_start_complete) {
- pld->boot_start_complete = 0;
- break;
- }
-
- usleep_range(10000, 11000);
-
- count++;
- if (count > 200) {
- mif_err("ERR! count %d\n", count);
- return -1;
- }
- }
-
- return 0;
-}
-
-static void qc_start_handler(struct pld_link_device *pld)
-{
- /*
- * INT_MASK_VALID | INT_MASK_CMD | INT_MASK_CP_AIRPLANE_BOOT |
- * INT_MASK_CP_AP_ANDROID | INT_MASK_CMD_INIT_END
- */
- u16 mask = (0x0080 | 0x0040 | 0x1000 | 0x0100 | 0x0002);
-
- pld->boot_start_complete = 1;
-
- /* Send INIT_END code to CP */
- mif_info("send 0x%04X (INIT_END)\n", mask);
-
- pld->send_intr(pld, mask);
-}
-
-static void qc_crash_log(struct pld_link_device *pld)
-{
- struct link_device *ld = &pld->ld;
- static unsigned char buf[151];
- u8 __iomem *data = NULL;
-
- data = pld->get_rx_buff(pld, IPC_FMT);
- memcpy(buf, data, (sizeof(buf) - 1));
-
- mif_info("PHONE ERR MSG\t| %s Crash\n", ld->mdm_data->name);
- mif_info("PHONE ERR MSG\t| %s\n", buf);
-}
-
-static int _qc_data_upload(struct pld_link_device *pld,
- struct dpram_udl_param *param)
-{
- struct qc_dpram_boot_map *qbt_map = &pld->qc_bt_map;
- int retval = 0;
- u16 intval = 0;
- int count = 0;
-
- while (1) {
- if (!gpio_get_value(pld->gpio_dpram_int)) {
- intval = pld->recv_intr(pld);
- if (intval == 0xDBAB) {
- break;
- } else {
- mif_err("intr 0x%08x\n", intval);
- return -1;
- }
- }
-
- usleep_range(1000, 2000);
-
- count++;
- if (count > 200) {
- mif_err("<%s:%d>\n", __func__, __LINE__);
- return -1;
- }
- }
-
- iowrite16(PLD_ADDR_MASK(&qbt_map->frame_size[0]),
- pld->address_buffer);
- param->size = ioread16(pld->base);
-
- iowrite16(PLD_ADDR_MASK(&qbt_map->tag[0]),
- pld->address_buffer);
- param->tag = ioread16(pld->base);
-
- iowrite16(PLD_ADDR_MASK(&qbt_map->count[0]),
- pld->address_buffer);
- param->count = ioread16(pld->base);
-
- iowrite16(PLD_ADDR_MASK(&qbt_map->buff[0]),
- pld->address_buffer);
- memcpy(param->addr, pld->base, param->size);
-
- pld->send_intr(pld, 0xDB12);
-
- return retval;
-}
-
-static int qc_uload_step1(struct pld_link_device *pld)
-{
- int retval = 0;
- int count = 0;
- u16 intval = 0;
- u16 mask = 0;
-
- qc_dload_map(pld, 1);
-
- mif_info("+---------------------------------------------+\n");
- mif_info("| UPLOAD PHONE SDRAM |\n");
- mif_info("+---------------------------------------------+\n");
-
- while (1) {
- if (!gpio_get_value(pld->gpio_dpram_int)) {
- intval = pld->recv_intr(pld);
- mif_info("intr 0x%04x\n", intval);
- if (intval == 0x1234) {
- break;
- } else {
- mif_info("ERR! invalid intr\n");
- return -1;
- }
- }
-
- usleep_range(1000, 2000);
-
- count++;
- if (count > 200) {
- intval = pld->recv_intr(pld);
- mif_info("count %d, intr 0x%04x\n", count, intval);
- if (intval == 0x1234)
- break;
- return -1;
- }
- }
-
- mask = 0xDEAD;
- pld->send_intr(pld, mask);
-
- return retval;
-}
-
-static int qc_uload_step2(struct pld_link_device *pld, void *arg)
-{
- int retval = 0;
- struct dpram_udl_param param;
-
- retval = copy_from_user((void *)&param, (void *)arg, sizeof(param));
- if (retval < 0) {
- mif_err("ERR! copy_from_user fail (err %d)\n", retval);
- return -1;
- }
-
- retval = _qc_data_upload(pld, &param);
- if (retval < 0) {
- mif_err("ERR! _qc_data_upload fail (err %d)\n", retval);
- return -1;
- }
-
- if (!(param.count % 500))
- mif_info("param->count = %d\n", param.count);
-
- if (param.tag == 4) {
- enable_irq(pld->irq);
- mif_info("param->tag = %d\n", param.tag);
- }
-
- retval = copy_to_user((unsigned long *)arg, &param, sizeof(param));
- if (retval < 0) {
- mif_err("ERR! copy_to_user fail (err %d)\n", retval);
- return -1;
- }
-
- return retval;
-}
-
-static int qc_ioctl(struct pld_link_device *pld, struct io_device *iod,
- unsigned int cmd, unsigned long arg)
-{
- struct link_device *ld = &pld->ld;
- int err = 0;
-
- switch (cmd) {
- case IOCTL_DPRAM_PHONE_POWON:
- err = qc_prepare_download(pld);
- if (err < 0)
- mif_info("%s: ERR! prepare_download fail\n", ld->name);
- break;
-
- case IOCTL_DPRAM_PHONEIMG_LOAD:
- err = qc_download_bin(pld, (void *)arg);
- if (err < 0)
- mif_info("%s: ERR! download_bin fail\n", ld->name);
- break;
-
- case IOCTL_DPRAM_NVDATA_LOAD:
- err = qc_download_nv(pld, (void *)arg);
- if (err < 0)
- mif_info("%s: ERR! download_nv fail\n", ld->name);
- break;
-
- case IOCTL_DPRAM_PHONE_BOOTSTART:
- err = qc_boot_start(pld);
- if (err < 0) {
- mif_info("%s: ERR! boot_start fail\n", ld->name);
- break;
- }
-
- err = qc_boot_post_process(pld);
- if (err < 0)
- mif_info("%s: ERR! boot_post_process fail\n", ld->name);
-
- break;
-
- case IOCTL_DPRAM_PHONE_UPLOAD_STEP1:
- disable_irq_nosync(pld->irq);
- err = qc_uload_step1(pld);
- if (err < 0) {
- enable_irq(pld->irq);
- mif_info("%s: ERR! upload_step1 fail\n", ld->name);
- }
- break;
-
- case IOCTL_DPRAM_PHONE_UPLOAD_STEP2:
- err = qc_uload_step2(pld, (void *)arg);
- if (err < 0) {
- enable_irq(pld->irq);
- mif_info("%s: ERR! upload_step2 fail\n", ld->name);
- }
- break;
-
- default:
- mif_err("%s: ERR! invalid cmd 0x%08X\n", ld->name, cmd);
- err = -EINVAL;
- break;
- }
-
- return err;
-}
-#endif
-
-static struct pld_ext_op ext_op_set[] = {
-#if defined(CONFIG_CDMA_MODEM_MDM6600)
- [QC_MDM6600] = {
- .exist = 1,
- .init_boot_map = qc_init_boot_map,
- .dload_cmd_handler = qc_dload_cmd_handler,
- .cp_start_handler = qc_start_handler,
- .crash_log = qc_crash_log,
- .ioctl = qc_ioctl,
- },
-#endif
-#if defined(CONFIG_GSM_MODEM_ESC6270)
- [QC_ESC6270] = {
- .exist = 1,
- .init_boot_map = qc_init_boot_map,
- .dload_cmd_handler = qc_dload_cmd_handler,
- .cp_start_handler = qc_start_handler,
- .crash_log = qc_crash_log,
- .ioctl = qc_ioctl,
- },
-#endif
-};
-
-struct pld_ext_op *pld_get_ext_op(enum modem_t modem)
-{
- if (ext_op_set[modem].exist)
- return &ext_op_set[modem];
- else
- return NULL;
-}
diff --git a/drivers/misc/modem_if_u1/modem_link_device_spi.c b/drivers/misc/modem_if_u1/modem_link_device_spi.c
deleted file mode 100644
index 6faa24a..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_spi.c
+++ /dev/null
@@ -1,1787 +0,0 @@
-/*
- * Copyright (C) 2011 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/time.h>
-#include <linux/interrupt.h>
-#include <linux/timer.h>
-#include <linux/wakelock.h>
-#include <linux/delay.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/vmalloc.h>
-#include <linux/if_arp.h>
-#include <linux/platform_device.h>
-#include <linux/spi/spi.h>
-#include <linux/suspend.h>
-#include <linux/kthread.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include "modem_link_device_spi.h"
-#include "modem_utils.h"
-
-/* For function which has void parmeter */
-static struct spi_link_device *p_spild;
-static struct spi_device *p_spi;
-
-static void spi_send_work(int spi_sigs, bool spi_work_t)
-{
- struct spi_work_type *spi_wq;
-
- spi_wq = kmalloc(sizeof(struct spi_work_type), GFP_ATOMIC);
- if (unlikely(!spi_wq)) {
- pr_err("[LNK/E] <%s> Failed to kmalloc()\n", __func__);
- return;
- }
-
- spi_wq->signal_code = spi_sigs;
- INIT_WORK(&spi_wq->work, spi_work);
-
- if (spi_work_t == SPI_WORK_FRONT)
- queue_work_front(p_spild->spi_wq, (struct work_struct *)spi_wq);
- else
- queue_work(p_spild->spi_wq, (struct work_struct *)spi_wq);
-}
-
-static irqreturn_t spi_srdy_irq_handler(int irq, void *p_ld)
-{
- struct link_device *ld = (struct link_device *)p_ld;
- struct spi_link_device *spild = to_spi_link_device(ld);
-
- irqreturn_t result = IRQ_HANDLED;
-
- if (!spild->boot_done)
- return result;
-
- if (!wake_lock_active(&spild->spi_wake_lock)
- && spild->send_modem_spi != 1) {
- wake_lock(&spild->spi_wake_lock);
- pr_debug("[SPI] [%s](%d) spi_wakelock locked . spild->spi_state[%d]\n",
- __func__, __LINE__, (int)spild->spi_state);
- }
-
- if (spild->send_modem_spi == 1)
- up(&spild->srdy_sem);
-
- /* SRDY interrupt work on SPI_STATE_IDLE state for receive data */
- if (spild->spi_state == SPI_STATE_IDLE
- || spild->spi_state == SPI_STATE_RX_TERMINATE
- || spild->spi_state == SPI_STATE_TX_TERMINATE)
- spi_send_work(SPI_WORK_RECEIVE, SPI_WORK_FRONT);
-
- return result;
-}
-
-static irqreturn_t spi_subsrdy_irq_handler(int irq, void *p_ld)
-{
- struct link_device *ld = (struct link_device *)p_ld;
- struct spi_link_device *spild = to_spi_link_device(ld);
-
- irqreturn_t result = IRQ_HANDLED;
-
- /* SRDY interrupt work on SPI_STATE_TX_WAIT state for send data */
- if (spild->spi_state == SPI_STATE_TX_WAIT)
- return result;
-
- pr_debug("%s spild->spi_state[%d]\n",
- "[SPI] spi_main_subsrdy_rising_handler :",
- (int)spild->spi_state);
-
-
- return result;
-}
-
-static int spi_send
-(
- struct link_device *ld,
- struct io_device *iod,
- struct sk_buff *skb
-)
-{
- struct sk_buff_head *txq;
- enum dev_format fmt = iod->format;
-
- const u32 cmd_ready = 0x12341234;
- const u32 cmd_start = 0x45674567;
- int ret;
- u32 data;
-
- switch (fmt) {
- case IPC_FMT:
- case IPC_RAW:
- case IPC_RFS:
- txq = ld->skb_txq[fmt];
- skb_queue_tail(txq, skb);
-
- ret = skb->len;
-
- break;
-
- case IPC_BOOT:
- if (get_user(data, (u32 __user *)skb->data))
- return -EFAULT;
-
- if (data == cmd_ready) {
- p_spild->ril_send_modem_img = 1;
- p_spild->ril_send_cnt = 0;
- } else if (data == cmd_start) {
- p_spild->ril_send_modem_img = 0;
- if (!queue_work(p_spild->ipc_spi_wq,
- &p_spild->send_modem_w))
- pr_err("(%d) already exist w-q\n",
- __LINE__);
- } else {
- if (p_spild->ril_send_modem_img) {
- memcpy((void *)(p_spild->p_virtual_buff
- + p_spild->ril_send_cnt),
- skb->data, skb->len);
- p_spild->ril_send_cnt += skb->len;
- }
- }
- ret = skb->len;
- dev_kfree_skb_any(skb);
-
- return ret;
-
- default:
- pr_err("[LNK/E] <%s:%s> No TXQ for %s\n",
- __func__, ld->name, iod->name);
- dev_kfree_skb_any(skb);
- return 0;
- }
-
- spi_send_work(SPI_WORK_SEND, SPI_WORK);
-
- return ret;
-}
-
-
-static int spi_register_isr
-(
- unsigned irq,
- irqreturn_t (*isr)(int, void*),
- unsigned long flag,
- const char *name,
- struct link_device *ld
-)
-{
- int ret = 0;
-
- ret = request_irq(irq, isr, flag, name, ld);
- if (ret) {
- pr_err("[LNK/E] <%s> request_irq fail (%d)\n",
- __func__, ret);
- goto err;
- }
-
- ret = enable_irq_wake(irq);
- if (ret) {
- pr_err("[LNK/E] <%s> enable_irq_wake fail (%d)\n",
- __func__, ret);
- free_irq(irq, ld);
- goto err;
- }
-
- pr_debug("[LNK] <%s> IRQ#%d handler is registered.\n", __func__, irq);
-
-err:
- return ret;
-}
-
-void spi_unregister_isr(unsigned irq, void *data)
-{
- free_irq(irq, data);
-}
-
-int spi_tx_rx_sync(u8 *tx_d, u8 *rx_d, unsigned len)
-{
- struct spi_transfer t;
- struct spi_message msg;
-
- memset(&t, 0, sizeof t);
-
- t.len = len;
-
- t.tx_buf = tx_d;
- t.rx_buf = rx_d;
-
- t.cs_change = 0;
-
- t.bits_per_word = 32;
- t.speed_hz = 12000000;
-
- spi_message_init(&msg);
- spi_message_add_tail(&t, &msg);
-
- return spi_sync(p_spi, &msg);
-}
-
-static int spi_buff_write
-(
- struct spi_link_device *spild,
- int dev_id,
- const char *buff,
- unsigned size
-)
-{
- u32 templength, buf_length;
- u32 spi_data_mux;
- u32 spi_packet_free_length;
-
- u8 *spi_packet;
- struct spi_data_packet_header *spi_packet_header;
-
- spi_packet_header = (struct spi_data_packet_header *)spild->buff;
- spi_packet = (char *)spild->buff;
-
- spi_packet_free_length = SPI_DATA_PACKET_MAX_PACKET_BODY_SIZE -
- spi_packet_header->current_data_size;
-
- buf_length = size + SPI_DATA_MUX_SIZE + SPI_DATA_LENGTH_SIZE;
-
- /* not enough space in spi packet */
- if (spi_packet_free_length < buf_length) {
- spi_packet_header->more = 1;
- return 0;
- }
-
- /* check spi mux type */
- switch (dev_id) {
- case IPC_FMT:
- spi_data_mux = SPI_DATA_MUX_IPC;
- break;
-
- case IPC_RAW:
- spi_data_mux = SPI_DATA_MUX_RAW;
- break;
-
- case IPC_RFS:
- spi_data_mux = SPI_DATA_MUX_RFS;
- break;
-
- default:
- pr_err("%s %s\n",
- "[SPI] ERROR : spi_buff_write:",
- "invalid dev_id");
- return 0;
- }
-
- /* copy spi mux field */
- memcpy(spi_packet + SPI_DATA_PACKET_HEADER_SIZE +
- spi_packet_header->current_data_size,
- &spi_data_mux, SPI_DATA_MUX_SIZE);
- spi_packet_header->current_data_size += SPI_DATA_MUX_SIZE;
-
- /* copy spi data length field */
- templength = size-SPI_DATA_BOF_SIZE-SPI_DATA_EOF_SIZE;
- memcpy(spi_packet + SPI_DATA_PACKET_HEADER_SIZE +
- spi_packet_header->current_data_size,
- &templength, SPI_DATA_LENGTH_SIZE);
- spi_packet_header->current_data_size += SPI_DATA_LENGTH_SIZE;
-
- /* copy data field */
- memcpy(spi_packet + SPI_DATA_PACKET_HEADER_SIZE +
- spi_packet_header->current_data_size,
- buff, size);
- spi_packet_header->current_data_size += size;
-
- return buf_length;
-}
-
-
-static void spi_prepare_tx_packet(void)
-{
- struct link_device *ld;
- struct sk_buff *skb;
- int ret;
- int i;
-
- ld = &p_spild->ld;
-
- for (i = 0; i < p_spild->max_ipc_dev; i++) {
- while ((skb = skb_dequeue(ld->skb_txq[i]))) {
- ret = spi_buff_write(p_spild, i, skb->data, skb->len);
- if (!ret) {
- skb_queue_head(ld->skb_txq[i], skb);
- break;
- }
- dev_kfree_skb_any(skb);
- }
- }
-}
-
-
-static void spi_start_data_send(void)
-{
- struct link_device *ld;
- int i;
-
- ld = &p_spild->ld;
-
- for (i = 0; i < p_spild->max_ipc_dev; i++) {
- if (skb_queue_len(ld->skb_txq[i]) > 0)
- spi_send_work(SPI_WORK_SEND, SPI_WORK);
- }
-}
-
-static void spi_tx_work(void)
-{
- struct spi_link_device *spild;
- struct io_device *iod;
- char *spi_packet_buf;
- char *spi_sync_buf;
-
- spild = p_spild;
- iod = link_get_iod_with_format(&spild->ld, IPC_FMT);
- if (!iod) {
- mif_err("no iodevice for modem control\n");
- return;
- }
-
- if (iod->mc->phone_state == STATE_CRASH_EXIT)
- return;
-
- /* check SUB SRDY, SRDY state */
- if (gpio_get_value(spild->gpio_ipc_sub_srdy) ==
- SPI_GPIOLEVEL_HIGH ||
- gpio_get_value(spild->gpio_ipc_srdy) ==
- SPI_GPIOLEVEL_HIGH) {
- spi_start_data_send();
- return;
- }
-
- if (get_console_suspended())
- return;
-
- if (spild->spi_state == SPI_STATE_END)
- return;
-
- /* change state SPI_STATE_IDLE to SPI_STATE_TX_WAIT */
- spild->spi_state = SPI_STATE_TX_WAIT;
- spild->spi_timer_tx_state = SPI_STATE_TIME_START;
-
- gpio_set_value(spild->gpio_ipc_mrdy, SPI_GPIOLEVEL_HIGH);
-
- /* Start TX timer */
- spild->spi_tx_timer.expires =
- jiffies + ((SPI_TIMER_TX_WAIT_TIME * HZ) / 1000);
- add_timer(&spild->spi_tx_timer);
- /* check SUBSRDY state */
- while (gpio_get_value(spild->gpio_ipc_sub_srdy) ==
- SPI_GPIOLEVEL_LOW) {
- if (spild->spi_timer_tx_state == SPI_STATE_TIME_OVER) {
- pr_err("%s spild->spi_state=[%d]\n",
- "[spi_tx_work] == spi Fail to receiving SUBSRDY CONF :"
- , (int)spild->spi_state);
-
- spild->spi_timer_tx_state = SPI_STATE_TIME_START;
-
- gpio_set_value(spild->gpio_ipc_mrdy,
- SPI_GPIOLEVEL_LOW);
-
- /* change state SPI_STATE_TX_WAIT */
- /* to SPI_STATE_IDLE */
- spild->spi_state = SPI_STATE_IDLE;
- spi_send_work(SPI_WORK_SEND, SPI_WORK);
-
- return;
- }
- }
- /* Stop TX timer */
- del_timer(&spild->spi_tx_timer);
-
- if (spild->spi_state != SPI_STATE_START
- && spild->spi_state != SPI_STATE_END
- && spild->spi_state != SPI_STATE_INIT) {
- spi_packet_buf = spild->buff;
- spi_sync_buf = spild->sync_buff;
-
- gpio_set_value(spild->gpio_ipc_sub_mrdy, SPI_GPIOLEVEL_HIGH);
- gpio_set_value(spild->gpio_ipc_mrdy, SPI_GPIOLEVEL_LOW);
-
- /* change state SPI_STATE_TX_WAIT to
- SPI_MAIN_STATE_TX_SENDING */
- spild->spi_state = SPI_STATE_TX_SENDING;
-
- memset(spi_packet_buf, 0, SPI_MAX_PACKET_SIZE);
- memset(spi_sync_buf, 0, SPI_MAX_PACKET_SIZE);
-
- spi_prepare_tx_packet();
-
- if (spi_tx_rx_sync((void *)spi_packet_buf, (void *)spi_sync_buf,
- SPI_MAX_PACKET_SIZE)) {
- /* TODO: save failed packet */
- /* back data to each queue */
- pr_err("[SPI] spi_dev_send fail\n");
-
- /* add cp reset when spi sync fail */
- if (iod)
- iod->modem_state_changed(iod,
- STATE_CRASH_RESET);
- }
-
- spild->spi_state = SPI_STATE_TX_TERMINATE;
-
- gpio_set_value(spild->gpio_ipc_sub_mrdy, SPI_GPIOLEVEL_LOW);
-
- /* change state SPI_MAIN_STATE_TX_SENDING to SPI_STATE_IDLE */
- spild->spi_state = SPI_STATE_IDLE;
- spi_start_data_send();
- } else
- pr_err("[SPI] ERR : _start_packet_tx:spild->spi_state[%d]",
- (int)spild->spi_state);
-
- return;
-}
-
-int spi_buff_read(struct spi_link_device *spild)
-{
- struct link_device *ld;
- struct spi_data_packet_header *spi_packet_header;
- struct sk_buff *skb;
- char *spi_packet;
- int dev_id;
- unsigned int spi_packet_length;
- unsigned int spi_packet_cur_pos = SPI_DATA_PACKET_HEADER_SIZE;
-
- unsigned int spi_data_mux;
- unsigned int spi_data_length;
- unsigned int data_length;
- u8 *spi_cur_data;
- u8 *dst;
-
- spi_packet = spild->buff;
- ld = &spild->ld;
-
- /* check spi packet header */
- if (*(unsigned int *)spi_packet == 0x00000000
- || *(unsigned int *)spi_packet == 0xFFFFFFFF) {
- /* if spi header is invalid, */
- /* read spi header again with next 4 byte */
- spi_packet += SPI_DATA_PACKET_HEADER_SIZE;
- }
-
- /* read spi packet header */
- spi_packet_header = (struct spi_data_packet_header *)spi_packet;
- spi_packet_length = SPI_DATA_PACKET_HEADER_SIZE +
- spi_packet_header->current_data_size;
-
-
- do {
- /* read spi data mux and set current queue */
- memcpy(&spi_data_mux,
- spi_packet + spi_packet_cur_pos, SPI_DATA_MUX_SIZE);
-
- switch (spi_data_mux & SPI_DATA_MUX_NORMAL_MASK) {
- case SPI_DATA_MUX_IPC:
- dev_id = IPC_FMT;
- break;
-
- case SPI_DATA_MUX_RAW:
- dev_id = IPC_RAW;
- break;
-
- case SPI_DATA_MUX_RFS:
- dev_id = IPC_RFS;
- break;
-
- default:
- pr_err("%s len[%u], pos[%u]\n",
- "[SPI] ERROR : spi_buff_read : MUX error",
- spi_packet_length, spi_packet_cur_pos);
-
- return spi_packet_cur_pos -
- SPI_DATA_PACKET_HEADER_SIZE;
- }
-
- /* read spi data length */
- memcpy(&spi_data_length, spi_packet +
- spi_packet_cur_pos + SPI_DATA_LENGTH_OFFSET,
- SPI_DATA_LENGTH_SIZE);
-
- data_length = spi_data_length + SPI_DATA_BOF_SIZE +
- SPI_DATA_EOF_SIZE;
-
- spi_data_length += SPI_DATA_HEADER_SIZE;
-
- /* read data and make spi data */
- spi_cur_data = spi_packet + spi_packet_cur_pos;
-
- /* enqueue spi data */
- skb = alloc_skb(data_length, GFP_ATOMIC);
- if (unlikely(!skb)) {
- pr_err("%s %s\n",
- "[SPI] ERROR : spi_buff_read:",
- "Can't allocate memory for SPI");
- return -ENOMEM;
- }
-
- dst = skb_put(skb, data_length);
-
- memcpy(dst, spi_packet +
- spi_packet_cur_pos + SPI_DATA_BOF_OFFSET,
- data_length);
-
- skb_queue_tail(&spild->skb_rxq[dev_id], skb);
-
- /* move spi packet current posision */
- spi_packet_cur_pos += spi_data_length;
- } while ((spi_packet_length - 1) > spi_packet_cur_pos);
-
- return 1;
-}
-
-static void spi_rx_work(void)
-{
- struct link_device *ld;
- struct spi_link_device *spild;
- struct sk_buff *skb;
- struct io_device *iod;
- char *spi_packet_buf;
- char *spi_sync_buf;
- int i;
-
- spild = p_spild;
- ld = &spild->ld;
- if (!spild)
- pr_err("[LNK/E] <%s> dpld == NULL\n", __func__);
-
- iod = link_get_iod_with_format(&spild->ld, IPC_FMT);
- if (!iod) {
- mif_err("no iodevice for modem control\n");
- return;
- }
-
- if (iod->mc->phone_state == STATE_CRASH_EXIT)
- return;
-
- if (!wake_lock_active(&spild->spi_wake_lock) ||
- gpio_get_value(spild->gpio_ipc_srdy) == SPI_GPIOLEVEL_LOW ||
- get_console_suspended() ||
- spild->spi_state == SPI_STATE_END)
- return;
-
- spild->spi_state = SPI_STATE_RX_WAIT;
- spild->spi_timer_rx_state = SPI_STATE_TIME_START;
-
- gpio_set_value(spild->gpio_ipc_sub_mrdy, SPI_GPIOLEVEL_HIGH);
- /* Start TX timer */
- spild->spi_rx_timer.expires =
- jiffies + ((SPI_TIMER_RX_WAIT_TIME * HZ) / 1000);
- add_timer(&spild->spi_rx_timer);
-
- /* check SUBSRDY state */
- while (gpio_get_value(spild->gpio_ipc_sub_srdy) ==
- SPI_GPIOLEVEL_LOW) {
- if (spild->spi_timer_rx_state == SPI_STATE_TIME_OVER) {
- pr_err("[SPI] ERROR(Failed MASTER RX:%d ms)",
- SPI_TIMER_RX_WAIT_TIME);
-
- spild->spi_timer_rx_state = SPI_STATE_TIME_START;
-
- gpio_set_value(spild->gpio_ipc_sub_mrdy,
- SPI_GPIOLEVEL_LOW);
-
- /* change state SPI_MAIN_STATE_RX_WAIT */
- /* to SPI_STATE_IDLE */
- spild->spi_state = SPI_STATE_IDLE;
-
- return;
- }
- }
- /* Stop TX timer */
- del_timer(&spild->spi_rx_timer);
-
- if (spild->spi_state == SPI_STATE_START
- || spild->spi_state == SPI_STATE_END
- || spild->spi_state == SPI_STATE_INIT)
- return;
-
- spi_packet_buf = spild->buff;
- spi_sync_buf = spild->sync_buff;
-
- memset(spi_packet_buf, 0, SPI_MAX_PACKET_SIZE);
- memset(spi_sync_buf, 0, SPI_MAX_PACKET_SIZE);
-
- if (spi_tx_rx_sync((void *)spi_sync_buf, (void *)spi_packet_buf,
- SPI_MAX_PACKET_SIZE) == 0) {
- /* parsing SPI packet */
- if (spi_buff_read(spild) > 0) {
- /* call function for send data to IPC, RAW, RFS */
- for (i = 0; i < spild->max_ipc_dev; i++) {
- iod = spild->iod[i];
- while ((skb = skb_dequeue(&spild->skb_rxq[i]))
- != NULL) {
- if (iod->recv(iod, ld, skb->data,
- skb->len) < 0)
- pr_err("[LNK/E] <%s:%s> recv fail\n",
- __func__, ld->name);
- dev_kfree_skb_any(skb);
- }
- }
- }
- } else {
- pr_err("%s %s\n", "[SPI] ERROR : spi_rx_work :",
- "spi sync failed");
-
- /* add cp reset when spi sync fail */
- if (iod)
- iod->modem_state_changed(iod,
- STATE_CRASH_RESET);
- }
-
- spild->spi_state = SPI_STATE_RX_TERMINATE;
-
- gpio_set_value(spild->gpio_ipc_sub_mrdy, SPI_GPIOLEVEL_LOW);
-
- /* change state SPI_MAIN_STATE_RX_WAIT to SPI_STATE_IDLE */
- spild->spi_state = SPI_STATE_IDLE;
- spi_start_data_send();
-}
-
-
-static int spi_init_ipc(struct spi_link_device *spild)
-{
- struct link_device *ld = &spild->ld;
-
- int i;
-
- /* Make aliases to each IO device */
- for (i = 0; i < MAX_DEV_FORMAT; i++)
- spild->iod[i] = link_get_iod_with_format(ld, i);
-
- spild->iod[IPC_RAW] = spild->iod[IPC_MULTI_RAW];
-
- /* List up the IO devices connected to each IPC channel */
- for (i = 0; i < MAX_DEV_FORMAT; i++) {
- if (spild->iod[i])
- pr_err("[LNK] <%s:%s> spild->iod[%d]->name = %s\n",
- __func__, ld->name, i, spild->iod[i]->name);
- else
- pr_err("[LNK] <%s:%s> No spild->iod[%d]\n",
- __func__, ld->name, i);
- }
-
- ld->mode = LINK_MODE_IPC;
-
- return 0;
-}
-
-unsigned int sprd_crc_calc(char *buf_ptr, unsigned int len)
-{
- unsigned int i;
- unsigned short crc = 0;
-
- while (len-- != 0) {
- for (i = 0x80; i != 0 ; i = i>>1) {
- if ((crc & 0x8000) != 0) {
- crc = crc << 1 ;
- crc = crc ^ 0x1021;
- } else {
- crc = crc << 1 ;
- }
-
- if ((*buf_ptr & i) != 0)
- crc = crc ^ 0x1021;
- }
- buf_ptr++;
- }
-
- return crc;
-
-}
-
-unsigned short sprd_crc_calc_fdl(unsigned short *src, int len)
-{
- unsigned int sum = 0;
- unsigned short SourceValue, DestValue = 0;
- unsigned short lowSourceValue, hiSourceValue = 0;
-
- /* Get sum value of the source.*/
- while (len > 1) {
- SourceValue = *src++;
- DestValue = 0;
- lowSourceValue = (SourceValue & 0xFF00) >> 8;
- hiSourceValue = (SourceValue & 0x00FF) << 8;
- DestValue = lowSourceValue | hiSourceValue;
-
- sum += DestValue;
- len -= 2;
- }
-
- if (len == 1)
- sum += *((unsigned char *) src);
-
- sum = (sum >> 16) + (sum & 0x0FFFF);
- sum += (sum >> 16);
-
- return ~sum;
-}
-
-int encode_msg(struct sprd_image_buf *img, int bcrc)
-{
- u16 crc; /* CRC value*/
- u8 *src_ptr; /* source buffer pointer*/
- int dest_len; /* output buffer length*/
- u8 *dest_ptr; /* dest buffer pointer*/
- u8 high_crc, low_crc = 0;
- register int curr;
-
- /* CRC Check. */
- src_ptr = img->tx_b;
-
- /* CRC Check. */
- if (bcrc)
- crc = sprd_crc_calc(src_ptr, img->tx_size);
- else
- crc = sprd_crc_calc_fdl
- ((unsigned short *)src_ptr, img->tx_size);
-
- high_crc = (crc>>8) & 0xFF;
- low_crc = crc & 0xFF;
-
- /* Get the total size to be allocated.*/
- dest_len = 0;
-
- for (curr = 0; curr < img->tx_size; curr++) {
- switch (*(src_ptr+curr)) {
- case HDLC_FLAG:
- case HDLC_ESCAPE:
- dest_len += 2;
- break;
- default:
- dest_len++;
- break;
- }
- }
-
- switch (low_crc) {
- case HDLC_FLAG:
- case HDLC_ESCAPE:
- dest_len += 2;
- break;
- default:
- dest_len++;
- }
-
- switch (high_crc) {
- case HDLC_FLAG:
- case HDLC_ESCAPE:
- dest_len += 2;
- break;
- default:
- dest_len++;
- }
-
- dest_ptr = kmalloc(dest_len + 2, GFP_ATOMIC);
- /* Memory Allocate fail.*/
- if (dest_ptr == NULL)
- return -ENOMEM;
-
- *dest_ptr = HDLC_FLAG;
- dest_len = 1;
-
- /* do escape*/
- for (curr = 0; curr < img->tx_size; curr++) {
- switch (*(src_ptr+curr)) {
- case HDLC_FLAG:
- case HDLC_ESCAPE:
- *(dest_ptr + dest_len++) = HDLC_ESCAPE;
- *(dest_ptr + dest_len++) =
- *(src_ptr + curr) ^ HDLC_ESCAPE_MASK;
- break;
- default:
- *(dest_ptr + dest_len++) = *(src_ptr + curr);
- break;
- }
- }
-
- switch (high_crc) {
- case HDLC_FLAG:
- case HDLC_ESCAPE:
- *(dest_ptr + dest_len++) = HDLC_ESCAPE;
- *(dest_ptr + dest_len++) = high_crc ^ HDLC_ESCAPE_MASK;
- break;
- default:
- *(dest_ptr + dest_len++) = high_crc;
- }
-
- switch (low_crc) {
- case HDLC_FLAG:
- case HDLC_ESCAPE:
- *(dest_ptr + dest_len++) = HDLC_ESCAPE;
- *(dest_ptr + dest_len++) = low_crc ^ HDLC_ESCAPE_MASK;
- break;
- default:
- *(dest_ptr + dest_len++) = low_crc;
- }
-
-
- *(dest_ptr + dest_len++) = HDLC_FLAG;
-
- memcpy(img->encoded_tx_b, dest_ptr, dest_len);
- img->encoded_tx_size = dest_len;
-
- kfree(dest_ptr);
- return 0;
-}
-
-int decode_msg(struct sprd_image_buf *img, int bcrc)
-{
- u16 crc; /* CRC value*/
- u8 *src_ptr; /* source buffer pointer*/
- int dest_len; /* output buffer length*/
- u8 *dest_ptr; /* dest buffer pointer*/
- register int curr;
-
- /* Check if exist End Flag.*/
- src_ptr = img->rx_b;
-
- dest_len = 0;
-
- if (img->rx_size < 4)
- return -EINVAL;
-
- /* Get the total size to be allocated for decoded message.*/
- for (curr = 1; curr < img->rx_size - 1; curr++) {
- switch (*(src_ptr + curr)) {
- case HDLC_ESCAPE:
- curr++;
- dest_len++;
- break;
- default:
- dest_len++;
- break;
- }
- }
-
- /* Allocate meomory for decoded message*/
- dest_ptr = kmalloc(dest_len, GFP_ATOMIC);
- /* Memory allocate fail.*/
- if (dest_ptr == NULL)
- return -ENOMEM;
-
- memset(dest_ptr, 0, dest_len);
-
- curr = 0;
- dest_len = 0;
- /* Do de-escape.*/
- for (curr = 1; curr < img->rx_size - 1; curr++) {
- switch (*(src_ptr + curr)) {
- case HDLC_ESCAPE:
- curr++;
- *(dest_ptr + dest_len) =
- *(src_ptr + curr) ^ HDLC_ESCAPE_MASK;
- break;
- default:
- *(dest_ptr + dest_len) = *(src_ptr + curr);
- break;
- }
-
- dest_len = dest_len + 1;
- }
-
- /* CRC Check. */
- if (bcrc)
- crc = sprd_crc_calc(dest_ptr, dest_len);
- else
- crc = sprd_crc_calc_fdl((unsigned short *)dest_ptr, dest_len);
-
- if (crc != CRC_16_L_OK) {
- pr_err("CRC error : 0x%X", crc);
- kfree(dest_ptr);
- return -EPERM;
- }
-
- memcpy(img->decoded_rx_b, dest_ptr, dest_len - CRC_CHECK_SIZE);
- img->decoded_rx_size = dest_len - CRC_CHECK_SIZE ;
-
- kfree(dest_ptr);
- return 0;
-}
-
-static int spi_send_modem_bin_execute_cmd
- (u8 *spi_ptr, u32 spi_size, u16 spi_type,
- u16 spi_crc, struct sprd_image_buf *sprd_img)
-{
- int i, retval;
- u16 send_packet_size;
- u8 *send_packet_data;
- u16 d1_crc;
- u16 d2_crc = spi_crc;
- u16 type = spi_type;
-
- /* D1 */
- send_packet_size = spi_size; /* u32 -> u16 */
- sprd_img->tx_size = 6;
- M_16_SWAP(d2_crc);
- memcpy(sprd_img->tx_b, &send_packet_size, sizeof(send_packet_size));
- memcpy((sprd_img->tx_b+2), &type, sizeof(type));
- memcpy((sprd_img->tx_b+4), &d2_crc, sizeof(d2_crc));
-
- d1_crc = sprd_crc_calc_fdl
- ((unsigned short *)sprd_img->tx_b, sprd_img->tx_size);
- M_16_SWAP(d1_crc);
- memcpy((sprd_img->tx_b+6), &d1_crc, sizeof(d1_crc));
- sprd_img->tx_size += 2;
-
- if (down_timeout(&p_spild->srdy_sem, 2 * HZ)) {
- pr_err("(%d) SRDY TimeOUT!!! SRDY : %d, SEM : %d\n",
- __LINE__,
- gpio_get_value(p_spild->gpio_modem_bin_srdy),
- p_spild->srdy_sem.count);
- goto err;
- }
-
- retval = spi_tx_rx_sync
- (sprd_img->tx_b, sprd_img->rx_b, sprd_img->tx_size);
- if (retval != 0) {
- pr_err("(%d) spi sync error : %d\n",
- __LINE__, retval);
- goto err;
- }
-
- if ((type == 0x0003) || (type == 0x0004)) {
- pr_err("D2 Skip!!\n");
- goto ACK;
- }
-
- /* D2 */
- send_packet_data = spi_ptr;
-
- if (down_timeout(&p_spild->srdy_sem, 2 * HZ)) {
- pr_err("(%d) SRDY TimeOUT!!! SRDY : %d, SEM : %d\n", __LINE__,
- gpio_get_value(p_spild->gpio_modem_bin_srdy),
- p_spild->srdy_sem.count);
- goto err;
- }
-
- retval = spi_tx_rx_sync
- (send_packet_data, sprd_img->rx_b, send_packet_size);
- if (retval != 0) {
- pr_err("(%d) spi sync error : %d\n", __LINE__, retval);
- goto err;
- }
-
-ACK:
-
- if (p_spild->is_cp_reset) {
- while (!gpio_get_value(p_spild->gpio_modem_bin_srdy))
- ;
- } else {
- if (down_timeout(&p_spild->srdy_sem, 2 * HZ)) {
- pr_err("(%d) SRDY TimeOUT!!! SRDY : %d, SEM : %d\n",
- __LINE__,
- gpio_get_value(p_spild->gpio_modem_bin_srdy),
- p_spild->srdy_sem.count);
-
- pr_err("[SPI DUMP] TX_D1(%d) : [%02x %02x %02x %02x %02x %02x %02x %02x]\n",
- sprd_img->tx_size, sprd_img->tx_b[0],
- sprd_img->tx_b[1], sprd_img->tx_b[2],
- sprd_img->tx_b[3], sprd_img->tx_b[4],
- sprd_img->tx_b[5], sprd_img->tx_b[6],
- sprd_img->tx_b[7]);
- pr_err("[SPI DUMP] TX_D2(%d) :[%02x %02x %02x %02x %02x %02x %02x %02x]\n",
- send_packet_size, spi_ptr[0], spi_ptr[1],
- spi_ptr[2], spi_ptr[3], spi_ptr[4],
- spi_ptr[5], spi_ptr[6], spi_ptr[7]);
-
- /* WA (CP Reset) jongmoon.suh */
- if (gpio_get_value(p_spild->gpio_modem_bin_srdy))
- ;
- else
- goto err;
-
- }
- }
-
- memset(sprd_img->tx_b, 0, SPRD_BLOCK_SIZE+10);
- retval = spi_tx_rx_sync(sprd_img->tx_b, sprd_img->rx_b, 8);
- if (retval != 0) {
- pr_err("(%d) spi sync error : %d\n",
- __LINE__, retval);
- goto err;
- }
-
- memcpy(sprd_img->decoded_rx_b, sprd_img->rx_b, 4);
-
- if ((*(sprd_img->decoded_rx_b+0) == 0x00) && \
- (*(sprd_img->decoded_rx_b+1) == 0x80) && \
- (*(sprd_img->decoded_rx_b+2) == 0x00) && \
- (*(sprd_img->decoded_rx_b+3) == 0x00)) {
- pr_debug("[SPRD] CP sent ACK");
- } else {
- pr_err("Transfer ACK error! srdy_sem = %d\n",
- p_spild->srdy_sem.count);
- pr_err("[SPI DUMP] RX(%d) : [ ", sprd_img->rx_size);
- for (i = 0; i < 15; i++)
- pr_err("%02x ", *((u8 *)(sprd_img->rx_b + i)));
- pr_err("]");
-
- goto err;
- }
-
- return retval;
-
-err:
- return -EINVAL;
-}
-
-static int spi_send_modem_bin_xmit_img
- (enum image_type type, struct image_buf *img)
-{
- int retval = 0;
- struct sprd_image_buf sprd_img;
- unsigned int data_size;
- unsigned int send_size = 0;
- unsigned int rest_size = 0;
- unsigned int spi_size = 0;
- unsigned int address = 0;
- unsigned int fdl1_size = 0;
- /* No Translate */
- u16 crc = 0;
- u16 spi_type = 0;
-
- unsigned char *spi_ptr;
- unsigned char *ptr;
- int i, j = 0;
-
- u16 sprd_packet_size = SPRD_BLOCK_SIZE;
-
- sprd_img.tx_b = kmalloc(SPRD_BLOCK_SIZE*2, GFP_ATOMIC);
- if (!sprd_img.tx_b) {
- pr_err("(%d) tx_b kmalloc fail.",
- __LINE__);
- return -ENOMEM;
- }
- memset(sprd_img.tx_b, 0, SPRD_BLOCK_SIZE*2);
-
- sprd_img.rx_b = kmalloc(SPRD_BLOCK_SIZE*2, GFP_ATOMIC);
- if (!sprd_img.rx_b) {
- pr_err("(%d) rx_b kmalloc fail.",
- __LINE__);
- retval = -ENOMEM;
- goto err3;
- }
- memset(sprd_img.rx_b, 0, SPRD_BLOCK_SIZE*2);
-
- sprd_img.encoded_tx_b = kmalloc(SPRD_BLOCK_SIZE*2, GFP_ATOMIC);
- if (!sprd_img.encoded_tx_b) {
- pr_err("(%d) encoded_tx_b kmalloc fail.",
- __LINE__);
- retval = -ENOMEM;
- goto err2;
- }
- memset(sprd_img.encoded_tx_b, 0, SPRD_BLOCK_SIZE*2);
-
- sprd_img.decoded_rx_b = kmalloc(SPRD_BLOCK_SIZE*2, GFP_ATOMIC);
- if (!sprd_img.decoded_rx_b) {
- pr_err("(%d) encoded_rx_b kmalloc fail.",
- __LINE__);
- retval = -ENOMEM;
- goto err1;
- }
- memset(sprd_img.decoded_rx_b, 0, SPRD_BLOCK_SIZE*2);
-
- pr_debug("(%d) spi_send_modem_bin_xmit_img type : %d.\n",
- __LINE__, type);
- memcpy(&fdl1_size, (void *)(p_spild->p_virtual_buff + 4), 4);
-
- switch (type) {
- case MODEM_MAIN:
- memcpy(&img->address,
- (void *)(p_spild->p_virtual_buff + 8), 4);
- memcpy(&img->length,
- (void *)(p_spild->p_virtual_buff + 12), 4);
- img->buf = (unsigned char *)
- (p_spild->p_virtual_buff + 0x30 + fdl1_size);
- img->offset = img->length + fdl1_size + 0x30;
- pr_debug("(%d) spi_send_modem_bin_xmit_img save MAIN to img.\n",
- __LINE__);
-
- break;
-
- case MODEM_DSP:
- memcpy(&img->address,
- (void *)(p_spild->p_virtual_buff + 16), 4);
- memcpy(&img->length,
- (void *)(p_spild->p_virtual_buff + 20), 4);
- img->buf = (unsigned char *)
- (p_spild->p_virtual_buff + img->offset);
- img->offset += img->length;
- pr_debug("(%d) spi_send_modem_bin_xmit_img save DSP to img.\n",
- __LINE__);
-
- break;
-
- case MODEM_NV:
- memcpy(&img->address,
- (void *)(p_spild->p_virtual_buff + 24), 4);
- memcpy(&img->length,
- (void *)(p_spild->p_virtual_buff + 28), 4);
- img->buf = (unsigned char *)
- (p_spild->p_virtual_buff + img->offset);
- img->offset += img->length;
- pr_debug("(%d) spi_send_modem_bin_xmit_img save NV to img.\n",
- __LINE__);
-
- break;
-
- case MODEM_EFS:
- memcpy(&img->address,
- (void *)(p_spild->p_virtual_buff + 32), 4);
- memcpy(&img->length,
- (void *)(p_spild->p_virtual_buff + 36), 4);
- img->buf = (unsigned char *)
- (p_spild->p_virtual_buff + img->offset);
- img->offset += img->length;
- pr_debug("(%d) spi_send_modem_bin_xmit_img save EFS to img.\n",
- __LINE__);
-
- break;
- case MODEM_RUN:
- memset(sprd_img.encoded_tx_b, 0, SPRD_BLOCK_SIZE*2);
- sprd_img.encoded_tx_size = 0;
- spi_type = 0x0004;
- crc = 0;
-
- spi_ptr = sprd_img.encoded_tx_b;
- spi_size = sprd_img.encoded_tx_size;
-
- retval = spi_send_modem_bin_execute_cmd
- (spi_ptr, spi_size, spi_type, crc, &sprd_img);
- if (retval < 0) {
- pr_err("(%d) spi_send_modem_bin_execute_cmd fail : %d",
- __LINE__, retval);
- goto err0;
- }
- return retval;
-
- default:
- pr_err("(%d) spi_send_modem_bin_xmit_img wrong : %d.",
- __LINE__, type);
- goto err0;
- }
-
- pr_debug("(%d) Start send img. size : %d\n",
- __LINE__, img->length);
-
- ptr = img->buf;
- data_size = sprd_packet_size;
- rest_size = img->length;
- address = img->address;
-
- M_32_SWAP(img->address);
- M_32_SWAP(img->length);
-
- /* Send Transfer Start */
- sprd_img.tx_size = 8;
- memcpy((sprd_img.tx_b+0), &img->address, sizeof(img->address));
- memcpy((sprd_img.tx_b+4), &img->length, sizeof(img->length));
-
- spi_type = 0x0001;
- crc = sprd_crc_calc_fdl
- ((unsigned short *)sprd_img.tx_b, sprd_img.tx_size);
- memcpy(sprd_img.encoded_tx_b, sprd_img.tx_b, sprd_img.tx_size);
- sprd_img.encoded_tx_size = sprd_img.tx_size;
-
- spi_ptr = sprd_img.encoded_tx_b;
- spi_size = sprd_img.encoded_tx_size;
-
- pr_debug("(%d) [Transfer Start, Type = %d, Packet = %d]\n",
- __LINE__, type, sprd_packet_size);
- retval = spi_send_modem_bin_execute_cmd
- (spi_ptr, spi_size, spi_type, crc, &sprd_img);
- if (retval < 0) {
- pr_err("(%d) spi_send_modem_bin_execute_cmd fail : %d",
- __LINE__, retval);
- goto err0;
- }
- M_32_SWAP(img->length);
-
- /* Send Data */
- for (i = 0; send_size < img->length; i++) {
- if (rest_size < sprd_packet_size)
- data_size = rest_size;
-
- sprd_img.encoded_tx_size = sprd_packet_size;
- for (j = 0; j < data_size; j++)
- *(sprd_img.encoded_tx_b+j) = *(ptr + j);
-
- spi_type = 0x0002;
- crc = sprd_crc_calc_fdl
- ((unsigned short *)sprd_img.encoded_tx_b,
- sprd_img.encoded_tx_size);
-
- spi_ptr = sprd_img.encoded_tx_b;
- spi_size = sprd_img.encoded_tx_size;
-
- retval = spi_send_modem_bin_execute_cmd
- (spi_ptr, spi_size, spi_type, crc, &sprd_img);
- if (retval < 0) {
- pr_err("(%d) spi_send_modem_bin_execute_cmd fail : %d, %d",
- __LINE__, retval, i);
- goto err0;
- }
-
- send_size += data_size;
- rest_size -= data_size;
- ptr += data_size;
-
- if (!(i % 100))
- pr_debug("(%d) [%d] 0x%x size done, rest size: 0x%x\n",
- __LINE__, i, send_size, rest_size);
- }
-
- /* Send Transfer End */
- memset(sprd_img.encoded_tx_b, 0, SPRD_BLOCK_SIZE * 2);
- sprd_img.encoded_tx_size = 0;
-
- spi_type = 0x0003;
- crc = 0;
-
- spi_ptr = sprd_img.encoded_tx_b;
- spi_size = sprd_img.encoded_tx_size;
-
- pr_debug("(%d) [Transfer END]\n", __LINE__);
- retval = spi_send_modem_bin_execute_cmd
- (spi_ptr, spi_size, spi_type, crc, &sprd_img);
- if (retval < 0) {
- pr_err("(%d) spi_send_modem_bin_execute_cmd fail : %d",
- __LINE__, retval);
- goto err0;
- }
-
-err0:
- kfree(sprd_img.decoded_rx_b);
-err1:
- kfree(sprd_img.encoded_tx_b);
-err2:
- kfree(sprd_img.rx_b);
-err3:
- kfree(sprd_img.tx_b);
-
- return retval;
-
-}
-
-static void spi_send_modem_bin(struct work_struct *send_modem_w)
-{
- struct spi_link_device *spild;
- struct io_device *iod;
- int retval;
- struct image_buf img;
- unsigned long tick1, tick2 = 0;
-
- spild = p_spild;
- iod = link_get_iod_with_format(&spild->ld, IPC_FMT);
- if (!iod) {
- mif_err("no iodevice for modem control\n");
- return;
- }
-
- tick1 = jiffies_to_msecs(jiffies);
-
- retval = spi_send_modem_bin_xmit_img(MODEM_MAIN, &img);
- if (retval < 0) {
- pr_err("(%d) spi_send_modem_bin_xmit_img fail : %d",
- __LINE__, retval);
- goto err;
- }
-
- retval = spi_send_modem_bin_xmit_img(MODEM_DSP, &img);
- if (retval < 0) {
- pr_err("(%d) spi_send_modem_bin_xmit_img fail : %d",
- __LINE__, retval);
- goto err;
- }
-
- retval = spi_send_modem_bin_xmit_img(MODEM_NV, &img);
- if (retval < 0) {
- pr_err("(%d) spi_send_modem_bin_xmit_img fail : %d",
- __LINE__, retval);
- goto err;
- }
-
- retval = spi_send_modem_bin_xmit_img(MODEM_EFS, &img);
- if (retval < 0) {
- pr_err("(%d) spi_send_modem_bin_xmit_img fail : %d",
- __LINE__, retval);
- goto err;
- }
-
- retval = spi_send_modem_bin_xmit_img(MODEM_RUN, &img);
- if (retval < 0) {
- pr_err("(%d) spi_send_modem_bin_xmit_img fail : %d",
- __LINE__, retval);
- goto err;
- }
-
- p_spild->send_modem_spi = 0;
- p_spild->is_cp_reset = 0;
- tick2 = jiffies_to_msecs(jiffies);
- pr_info("Downloading takes %lu msec\n", (tick2-tick1));
-
- spi_init_ipc(p_spild);
-
- sprd_boot_done = 1;
- p_spild->ril_send_cnt = 0;
- p_spild->spi_state = SPI_STATE_IDLE;
-
- if (iod)
- iod->modem_state_changed(iod,
- STATE_ONLINE);
- return;
-err:
- if (iod)
- iod->modem_state_changed(iod,
- STATE_OFFLINE);
- return;
-
-}
-
-static inline int _request_mem(struct spi_v_buff *od)
-{
- if (!p_spild->p_virtual_buff) {
- od->mmio = vmalloc(od->size);
- if (!od->mmio) {
- pr_err("(%d) Failed to vmalloc size : %lu\n", __LINE__,
- od->size);
-
- return -EBUSY;
- } else {
- pr_err("(%d) vmalloc Done. mmio : 0x%08x\n", __LINE__,
- (u32)od->mmio);
- }
- }
-
- memset((void *)od->mmio, 0, od->size);
-
- p_spild->p_virtual_buff = od->mmio;
-
- return 0;
-}
-
-void spi_tx_timer_callback(unsigned long param)
-{
- if (p_spild->spi_state == SPI_STATE_TX_WAIT) {
- p_spild->spi_timer_tx_state = SPI_STATE_TIME_OVER;
- pr_debug("[SPI] spi_tx_timer_callback -timer expires\n");
- }
-}
-
-void spi_rx_timer_callback(unsigned long param)
-{
- if (p_spild->spi_state == SPI_STATE_RX_WAIT) {
- p_spild->spi_timer_rx_state = SPI_STATE_TIME_OVER;
- pr_debug("[SPI] spi_rx_timer_callback -timer expires\n");
- }
-}
-
-int spi_sema_init(void)
-{
- pr_info("[SPI] Srdy sema init\n");
- sema_init(&p_spild->srdy_sem, 0);
- p_spild->send_modem_spi = 1;
- return 0;
-}
-
-static void spi_work(struct work_struct *work)
-{
- int signal_code;
-
- struct spi_work_type *spi_wq =
- container_of(work, struct spi_work_type, work);
-
- signal_code = spi_wq->signal_code;
-
- if (p_spild->spi_state == SPI_STATE_END
- || p_spild->spi_state == SPI_STATE_START) {
- kfree(spi_wq);
- return;
- }
-
- switch (signal_code) {
- case SPI_WORK_SEND:
- if (p_spild->spi_state == SPI_STATE_IDLE)
- spi_tx_work();
- break;
- case SPI_WORK_RECEIVE:
- if (p_spild->spi_state == SPI_STATE_IDLE
- || p_spild->spi_state == SPI_STATE_TX_TERMINATE
- || p_spild->spi_state == SPI_STATE_RX_TERMINATE)
- spi_rx_work();
- break;
-
- default:
- pr_err("[SPI] ERROR(No signal_code in spi_work[%d])\n",
- signal_code);
- break;
- }
-
- kfree(spi_wq);
- if (wake_lock_active(&p_spild->spi_wake_lock)) {
- wake_unlock(&p_spild->spi_wake_lock);
- pr_debug("[SPI] [%s](%d) spi_wakelock unlocked .\n",
- __func__, __LINE__);
- }
-}
-
-static int link_pm_notifier_event(struct notifier_block *this,
- unsigned long event, void *ptr)
-{
- struct io_device *iod;
- struct link_pm_data *pm_data =
- container_of(this, struct link_pm_data, pm_notifier);
-
- iod = link_get_iod_with_format(&pm_data->spild->ld, IPC_FMT);
- if (!iod) {
- pr_err("no iodevice for modem control\n");
- return NOTIFY_BAD;
- }
-
- switch (event) {
- case PM_SUSPEND_PREPARE:
- /* set TD PDA Active High if previous state was LPA */
- mif_info("TD PDA active low to LPA suspend spot\n");
- gpio_set_value(iod->mc->gpio_pda_active, 0);
-
- return NOTIFY_OK;
- case PM_POST_SUSPEND:
- /* LPA to Kernel suspend and User Freezing task fail resume,
- restore to LPA GPIO states. */
- mif_info("TD PDA active High to LPA GPIO state\n");
- gpio_set_value(iod->mc->gpio_pda_active, 1);
- return NOTIFY_OK;
- }
- return NOTIFY_DONE;
-}
-
-static int spi_probe(struct spi_device *spi)
-{
- int ret;
-
- p_spi = spi;
- p_spi->mode = SPI_MODE_1;
- p_spi->bits_per_word = 32;
-
- ret = spi_setup(p_spi);
- if (ret != 0) {
-
- pr_err("[%s] spi setup error\n", __func__);
-
- return ret;
- }
-
- pr_info("[%s] spi probe done\n", __func__);
-
- return ret;
-}
-
-static int spi_remove(struct spi_device *spi)
-{
- return 0;
-}
-
-static struct spi_driver spi_driver = {
- .probe = spi_probe,
- .remove = __devexit_p(spi_remove),
- .driver = {
- .name = "modem_if_spi",
- .bus = &spi_bus_type,
- .owner = THIS_MODULE,
- },
-};
-
-static int spi_link_init(void)
-{
- int ret;
- struct spi_v_buff *od;
- struct link_device *ld = &p_spild->ld;
-
- p_spild->gpio_modem_bin_srdy = p_spild->gpio_ipc_srdy;
-
- pr_info("(%d) gpio_mrdy : %d, gpio_srdy : %d(%d)\n", __LINE__,
- p_spild->gpio_ipc_mrdy, p_spild->gpio_modem_bin_srdy,
- gpio_get_value(p_spild->gpio_ipc_srdy));
-
- od = kzalloc(sizeof(struct spi_v_buff), GFP_KERNEL);
- if (!od) {
- pr_err("(%d) failed to allocate device\n", __LINE__);
- ret = -ENOMEM;
- goto err;
- }
-
- od->base = 0;
- od->size = SZ_16M; /* 16M */
- if (p_spild->p_virtual_buff)
- od->mmio = p_spild->p_virtual_buff;
- ret = _request_mem(od);
- if (ret)
- goto err;
-
- sema_init(&p_spild->srdy_sem, 0);
-
- INIT_WORK(&p_spild->send_modem_w,
- spi_send_modem_bin);
-
- wake_lock_init(&p_spild->spi_wake_lock,
- WAKE_LOCK_SUSPEND,
- "samsung-spiwakelock");
-
- /* Register SPI Srdy interrupt handler */
- ret = spi_register_isr(gpio_to_irq(p_spild->gpio_ipc_srdy),
- spi_srdy_irq_handler, IRQF_TRIGGER_RISING,
- "spi_srdy_rising", ld);
-
- if (ret)
- goto err;
-
- /* Register SPI SubSrdy interrupt handler */
- ret = spi_register_isr(gpio_to_irq(p_spild->gpio_ipc_sub_srdy),
- spi_subsrdy_irq_handler, IRQF_TRIGGER_RISING,
- "spi_subsrdy_rising", ld);
-
- if (ret)
- goto err;
-
- p_spild->boot_done = 1;
-
- pr_info("[%s] Done\n", __func__);
- return 0;
-
-err:
- kfree(od);
- return ret;
-}
-
-/*=====================================
-* Description spi restart for CP slient reset
-=====================================*/
-void spi_set_restart(void)
-{
- struct link_device *ld = &p_spild->ld;
-
- pr_info("[SPI] spi_set_restart(spi_main_state=[%d])\n",
- (int)p_spild->spi_state);
-
- gpio_set_value(p_spild->gpio_ipc_sub_mrdy, SPI_GPIOLEVEL_LOW);
-
- p_spild->spi_state = SPI_STATE_END;
-
- /* Flush SPI work queue */
- flush_workqueue(p_spild->spi_wq);
-
- /* Unregister SPI Srdy interrupt handler */
- spi_unregister_isr(gpio_to_irq(p_spild->gpio_ipc_srdy), ld);
-
- /* Unregister SPI SubSrdy interrupt handler */
- spi_unregister_isr(gpio_to_irq(p_spild->gpio_ipc_sub_srdy), ld);
-
- if (wake_lock_active(&p_spild->spi_wake_lock)) {
- wake_unlock(&p_spild->spi_wake_lock);
- pr_err("[SPI] [%s](%d) spi_wakelock unlocked.\n",
- __func__, __LINE__);
- }
- wake_lock_destroy(&p_spild->spi_wake_lock);
-}
-
-
-int spi_thread_restart(void)
-{
- int retval;
-
- p_spild->send_modem_spi = 1;
- p_spild->is_cp_reset = 1;
- sprd_boot_done = 0;
-
- pr_info("[modem_if_spi] spi_thread_restart\n");
-
- spi_set_restart();
-
- /* Create SPI device */
- retval = spi_link_init();
- if (retval)
- goto exit;
-
- return 0;
-
-exit:
- return retval;
-}
-EXPORT_SYMBOL(spi_thread_restart);
-
-static int spi_link_pm_init(struct spi_link_device *spild,
- struct platform_device *pdev)
-{
- struct modem_data *pdata =
- (struct modem_data *)pdev->dev.platform_data;
- struct modemlink_pm_data *pm_pdata;
- struct link_pm_data *pm_data =
- kzalloc(sizeof(struct link_pm_data), GFP_KERNEL);
-
- if (!pdata || !pdata->link_pm_data) {
- mif_err("platform data is NULL\n");
- return -EINVAL;
- }
- pm_pdata = pdata->link_pm_data;
-
- if (!pm_data) {
- mif_err("link_pm_data is NULL\n");
- return -ENOMEM;
- }
-
- pm_data->spild = spild;
- spild->link_pm_data = pm_data;
-
- pm_data->pm_notifier.notifier_call = link_pm_notifier_event;
- register_pm_notifier(&pm_data->pm_notifier);
-
- return 0;
-}
-
-struct link_device *spi_create_link_device(struct platform_device *pdev)
-{
- struct spi_link_device *spild = NULL;
- struct link_device *ld;
- struct modem_data *pdata;
-
- int ret;
- int i;
-
- /* Get the platform data */
- pdata = (struct modem_data *)pdev->dev.platform_data;
- if (!pdata) {
- pr_err("[LNK/E] <%s> pdata == NULL\n", __func__);
- goto err;
- }
-
- pr_info("[LNK] <%s> link device = %s\n", __func__, pdata->link_name);
- pr_info("[LNK] <%s> modem = %s\n", __func__, pdata->name);
-
- /* Alloc SPI link device structure */
- p_spild = spild = kzalloc(sizeof(struct spi_link_device), GFP_KERNEL);
- if (!spild) {
- pr_err("[LNK/E] <%s> Failed to kzalloc()\n", __func__);
- goto err;
- }
- ld = &spild->ld;
-
- /* Extract modem data and SPI control data from the platform data */
- ld->mdm_data = pdata;
- ld->name = "spi";
-
- if (ld->aligned)
- pr_err("[LNK] <%s> Aligned access is required!!!\n", __func__);
-
-
- ld->send = spi_send;
-
- INIT_LIST_HEAD(&ld->list);
-
- skb_queue_head_init(&ld->sk_fmt_tx_q);
- skb_queue_head_init(&ld->sk_raw_tx_q);
- skb_queue_head_init(&ld->sk_rfs_tx_q);
- ld->skb_txq[IPC_FMT] = &ld->sk_fmt_tx_q;
- ld->skb_txq[IPC_RAW] = &ld->sk_raw_tx_q;
- ld->skb_txq[IPC_RFS] = &ld->sk_rfs_tx_q;
-
- spild->spi_wq = create_singlethread_workqueue("spi_wq");
- if (!spild->spi_wq) {
- pr_err("[LNK/E] <%s> Fail to create workqueue for spi_wq\n",
- __func__);
- goto err;
- }
-
- spild->spi_state = SPI_STATE_END;
- spild->max_ipc_dev = IPC_RFS+1; /* FMT, RAW, RFS */
-
- for (i = 0; i < spild->max_ipc_dev; i++)
- skb_queue_head_init(&spild->skb_rxq[i]);
-
- /* Prepare a clean buffer for SPI access */
- spild->buff = kzalloc(SPI_MAX_PACKET_SIZE, GFP_KERNEL);
- spild->sync_buff = kzalloc(SPI_MAX_PACKET_SIZE, GFP_KERNEL);
-
- memset(spild->buff , 0, SPI_MAX_PACKET_SIZE);
- memset(spild->sync_buff , 0, SPI_MAX_PACKET_SIZE);
-
- if (!spild->buff) {
- pr_err("[LNK/E] <%s> Failed to alloc spild->buff\n", __func__);
- goto err;
- }
-
- /* Initialize SPI pin value */
- spild->gpio_ipc_mrdy = pdata->gpio_ipc_mrdy;
- spild->gpio_ipc_srdy = pdata->gpio_ipc_srdy;
- spild->gpio_ipc_sub_mrdy = pdata->gpio_ipc_sub_mrdy;
- spild->gpio_ipc_sub_srdy = pdata->gpio_ipc_sub_srdy;
-
- spild->gpio_ap_cp_int1 = pdata->gpio_ap_cp_int1;
- spild->gpio_ap_cp_int2 = pdata->gpio_ap_cp_int2;
-
- /* Create SPI Timer */
- init_timer(&spild->spi_tx_timer);
-
- spild->spi_tx_timer.expires =
- jiffies + ((SPI_TIMER_TX_WAIT_TIME * HZ) / 1000);
-
- spild->spi_tx_timer.data = 0;
- spild->spi_tx_timer.function = spi_tx_timer_callback;
-
- init_timer(&spild->spi_rx_timer);
-
- spild->spi_rx_timer.expires =
- jiffies + ((SPI_TIMER_RX_WAIT_TIME * HZ) / 1000);
-
- spild->spi_rx_timer.data = 0;
- spild->spi_rx_timer.function = spi_rx_timer_callback;
-
- ret = spi_register_driver(&spi_driver);
- if (ret < 0) {
- pr_err("spi_register_driver() fail : %d\n", ret);
- goto err;
- }
-
- /* create link pm device */
- ret = spi_link_pm_init(spild, pdev);
- if (ret)
- goto err;
-
- /* Create SPI device */
- ret = spi_link_init();
- if (ret)
- goto err;
-
- /* creat work queue thread */
- p_spild->ipc_spi_wq = create_singlethread_workqueue("ipc_spi_wq");
-
- if (!p_spild->ipc_spi_wq) {
- pr_err("[%s] get workqueue thread fail\n",
- __func__);
-
- ret = -ENOMEM;
- goto err;
- }
-
- return ld;
-
-err:
- kfree(spild->buff);
- kfree(spild);
- return NULL;
-}
diff --git a/drivers/misc/modem_if_u1/modem_link_device_spi.h b/drivers/misc/modem_if_u1/modem_link_device_spi.h
deleted file mode 100644
index 3e2456e..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_spi.h
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- * Copyright (C) 2011 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-#ifndef __MODEM_LINK_DEVICE_SPI_H__
-#define __MODEM_LINK_DEVICE_SPI_H__
-
-#include <linux/wakelock.h>
-#include <linux/workqueue.h>
-#include <linux/timer.h>
-#include <linux/platform_data/modem.h>
-
-
-#define SPI_TIMER_TX_WAIT_TIME 60 /* ms */
-#define SPI_TIMER_RX_WAIT_TIME 500 /* ms */
-
-#define SPI_MAX_PACKET_SIZE (2048 * 6)
-#define SPI_TASK_EVENT_COUNT 64
-#define SPI_DATA_BOF 0x7F
-#define SPI_DATA_EOF 0x7E
-#define SPI_DATA_FF_PADDING_HEADER 0xFFFFFFFF
-
-#define SPI_DATA_MUX_NORMAL_MASK 0x0F
-#define SPI_DATA_MUX_MORE_H 0x10
-#define SPI_DATA_MUX_MORE_M 0x20
-#define SPI_DATA_MUX_MORE_T 0x30
-
-#define SPI_DATA_MUX_SIZE 2
-#define SPI_DATA_LENGTH_SIZE 4
-#define SPI_DATA_BOF_SIZE 1
-#define SPI_DATA_INNER_LENGTH_SIZE 4
-#define SPI_DATA_IPC_INNER_LENGTH_SIZE 2
-#define SPI_DATA_IPC_INNER_CONTROL_SIZE 1
-#define SPI_DATA_EOF_SIZE 1
-#define SPI_DATA_HEADER_SIZE (SPI_DATA_MUX_SIZE+ \
- SPI_DATA_LENGTH_SIZE+SPI_DATA_BOF_SIZE+SPI_DATA_EOF_SIZE)
-#define SPI_DATA_HEADER_SIZE_FRONT (SPI_DATA_MUX_SIZE+ \
- SPI_DATA_LENGTH_SIZE+SPI_DATA_BOF_SIZE)
-#define SPI_DATA_IPC_INNER_HEADER_SIZE \
- (SPI_DATA_IPC_INNER_LENGTH_SIZE+ \
- SPI_DATA_IPC_INNER_CONTROL_SIZE)
-#define SPI_DATA_SIZE(X) (SPI_DATA_HEADER_SIZE+X)
-
-#define SPI_DATA_LENGTH_OFFSET SPI_DATA_MUX_SIZE
-#define SPI_DATA_BOF_OFFSET (SPI_DATA_LENGTH_OFFSET+ \
- SPI_DATA_LENGTH_SIZE)
-#define SPI_DATA_DATA_OFFSET (SPI_DATA_BOF_OFFSET+ \
- SPI_DATA_BOF_SIZE)
-#define SPI_DATA_EOF_OFFSET(X) (SPI_DATA_DATA_OFFSET+X)
-
-#define SPI_DATA_PACKET_HEADER_SIZE 4
-#define SPI_DATA_PACKET_MUX_ERROR_SPARE_SIZE 4
-#define SPI_DATA_PACKET_MAX_PACKET_BODY_SIZE \
- (SPI_MAX_PACKET_SIZE-SPI_DATA_PACKET_HEADER_SIZE- \
- SPI_DATA_PACKET_MUX_ERROR_SPARE_SIZE)
-
-#define SPI_DATA_MIN_SIZE (SPI_DATA_HEADER_SIZE*2)
-#define SPI_DATA_MAX_SIZE_PER_PACKET (SPI_MAX_PACKET_SIZE- \
- SPI_DATA_PACKET_HEADER_SIZE-SPI_DATA_HEADER_SIZE- \
- SPI_DATA_PACKET_MUX_ERROR_SPARE_SIZE)
-
-#define SPI_DATA_DIVIDE_BUFFER_SIZE SPI_MAX_PACKET_SIZE
-
-struct spi_work_type {
- struct work_struct work;
- int signal_code;
-};
-
-enum spi_msg_t {
- SPI_WORK_SEND,
- SPI_WORK_RECEIVE
-};
-
-enum spi_work_t {
- SPI_WORK,
- SPI_WORK_FRONT
-};
-
-enum spi_state_t {
- SPI_STATE_START, /* before init complete */
- SPI_STATE_INIT, /* initialising */
- SPI_STATE_IDLE, /* suspend. Waiting for event */
- /* state to start tx. Become from idle */
- SPI_STATE_TX_START,
- SPI_STATE_TX_CONFIRM,
- /* (in case of master) */
- /* wait srdy rising interrupt to check slave preparing */
- /* (in case of slave) */
- /* wait submrdy rising interrupt to check sync complete */
- SPI_STATE_TX_WAIT,
- SPI_STATE_TX_SENDING, /* tx data sending */
- SPI_STATE_TX_TERMINATE,
- SPI_STATE_TX_MORE,
-
- /* in case of slave, wait submrdy rising interrupt to */
- SPI_STATE_RX_WAIT,
-
- /* check sync complete then it starts to read buffer */
- SPI_STATE_RX_MORE,
- SPI_STATE_RX_TERMINATE,
- SPI_STATE_END /* spi task is stopped */
-};
-
-enum spi_timer_state_t {
- SPI_STATE_TIME_START,
- SPI_STATE_TIME_OVER
-};
-
-enum spi_gpiolevel_t {
- SPI_GPIOLEVEL_LOW = 0,
- SPI_GPIOLEVEL_HIGH
-};
-
-enum spi_data_type_t {
- SPI_DATA_MUX_IPC = 0x01,
- SPI_DATA_MUX_RAW = 0x02,
- SPI_DATA_MUX_RFS = 0x03,
- SPI_DATA_MUX_CMD = 0x04,
-};
-
-struct spi_data_packet_header {
- /* 12bit : packet size less than SPI_DEV_PACKET_SIZE */
- unsigned long current_data_size:31;
- /* 1bit : packet division flag */
- unsigned long more:1;
-};
-
-struct link_pm_data {
- struct miscdevice miscdev;
- struct spi_link_device *spild;
-
- struct notifier_block pm_notifier;
-};
-
-struct spi_link_device {
- struct link_device ld;
-
- /* Link to SPI control functions dependent on each platform */
- int max_ipc_dev;
-
- /* Wakelock for SPI device */
- struct wake_lock spi_wake_lock;
- /* Workqueue for modem bin transfers */
- struct workqueue_struct *ipc_spi_wq;
-
- /* SPI state */
- int spi_state;
-
- /* SPI Timer state */
- int spi_timer_tx_state;
- int spi_timer_rx_state;
-
- /* SPI GPIO pins */
- unsigned int gpio_ipc_mrdy;
- unsigned int gpio_ipc_srdy;
- unsigned int gpio_ipc_sub_mrdy;
- unsigned int gpio_ipc_sub_srdy;
-
- unsigned int gpio_modem_bin_srdy;
-
- unsigned int gpio_ap_cp_int1;
- unsigned int gpio_ap_cp_int2;
-
- /* value for checking spi pin status */
- unsigned long mrdy_low_time_save;
- unsigned long mrdy_high_time_save;
-
- /* SPI Wait Timer */
- struct timer_list spi_tx_timer;
- struct timer_list spi_rx_timer;
-
- struct workqueue_struct *spi_wq;
- struct spi_work_type spi_work;
-
- /* For send modem bin */
- struct work_struct send_modem_w;
-
- struct io_device *iod[MAX_DEV_FORMAT];
- struct sk_buff_head skb_rxq[MAX_DEV_FORMAT];
-
- /* LINK PM DEVICE DATA */
- struct link_pm_data *link_pm_data;
-
- /* Multi-purpose miscellaneous buffer */
- u8 *buff;
- u8 *sync_buff;
-
- struct semaphore srdy_sem;
-
- int send_modem_spi;
- int is_cp_reset;
- int boot_done;
- int ril_send_modem_img;
- unsigned long ril_send_cnt;
-
- void __iomem *p_virtual_buff;
-};
-
-/* converts from struct link_device* to struct xxx_link_device* */
-#define to_spi_link_device(linkdev) \
- container_of(linkdev, struct spi_link_device, ld)
-
-struct spi_v_buff {
- unsigned long base;
- unsigned long size;
- void __iomem *mmio;
-};
-
-extern unsigned int lpcharge;
-extern int get_console_suspended(void);
-static void spi_work(struct work_struct *work);
-
-/* Send SPRD main image through SPI */
-#define SPRD_BLOCK_SIZE 32768
-
-enum image_type {
- MODEM_MAIN,
- MODEM_DSP,
- MODEM_NV,
- MODEM_EFS,
- MODEM_RUN,
-};
-
-struct image_buf {
- unsigned int length;
- unsigned int offset;
- unsigned int address;
- unsigned char *buf;
-};
-
-struct sprd_image_buf {
- u8 *tx_b;
- u8 *rx_b;
- u8 *encoded_tx_b;
- u8 *decoded_rx_b;
-
- int tx_size;
- int rx_size;
- int encoded_tx_size;
- int decoded_rx_size;
-};
-
-/* CRC */
-#define CRC_16_L_OK 0x0
-#define HDLC_FLAG 0x7E
-#define HDLC_ESCAPE 0x7D
-#define HDLC_ESCAPE_MASK 0x20
-#define CRC_CHECK_SIZE 0x02
-
-#define M_32_SWAP(a) { \
- u32 _tmp; \
- _tmp = a; \
- ((u8 *)&a)[0] = ((u8 *)&_tmp)[3]; \
- ((u8 *)&a)[1] = ((u8 *)&_tmp)[2]; \
- ((u8 *)&a)[2] = ((u8 *)&_tmp)[1]; \
- ((u8 *)&a)[3] = ((u8 *)&_tmp)[0]; \
- }
-
-#define M_16_SWAP(a) { \
- u16 _tmp; \
- _tmp = (u16)a; \
- ((u8 *)&a)[0] = ((u8 *)&_tmp)[1]; \
- ((u8 *)&a)[1] = ((u8 *)&_tmp)[0]; \
- }
-
-#endif
diff --git a/drivers/misc/modem_if_u1/modem_link_device_usb.c b/drivers/misc/modem_if_u1/modem_link_device_usb.c
deleted file mode 100644
index 457b6c9..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_usb.c
+++ /dev/null
@@ -1,1028 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#define DEBUG
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/device.h>
-#include <linux/sched.h>
-#include <linux/irq.h>
-#include <linux/poll.h>
-#include <linux/gpio.h>
-#include <linux/if_arp.h>
-#include <linux/platform_device.h>
-#include <linux/suspend.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include "modem_link_device_usb.h"
-#include "modem_utils.h"
-#include "modem_link_pm_usb.h"
-
-#include <mach/regs-gpio.h>
-
-#define URB_COUNT 4
-
-static int usb_tx_urb_with_skb(struct usb_link_device *usb_ld,
- struct sk_buff *skb, struct if_usb_devdata *pipe_data);
-
-static void
-usb_free_urbs(struct usb_link_device *usb_ld, struct if_usb_devdata *pipe)
-{
- struct usb_device *usbdev = usb_ld->usbdev;
- struct urb *urb;
-
- while ((urb = usb_get_from_anchor(&pipe->urbs))) {
- usb_poison_urb(urb);
- usb_free_coherent(usbdev, pipe->rx_buf_size,
- urb->transfer_buffer, urb->transfer_dma);
- urb->transfer_buffer = NULL;
- usb_put_urb(urb);
- usb_free_urb(urb);
- }
-}
-
-static int start_ipc(struct link_device *ld, struct io_device *iod)
-{
- struct sk_buff *skb;
- char data[1] = {'a'};
- int err;
- struct usb_link_device *usb_ld = to_usb_link_device(ld);
- struct if_usb_devdata *pipe_data = &usb_ld->devdata[IF_USB_FMT_EP];
-
- if (has_hub(usb_ld) && usb_ld->link_pm_data->hub_handshake_done) {
- mif_err("Already send start ipc, skip start ipc\n");
- err = 0;
- goto exit;
- }
-
- if (!usb_ld->if_usb_connected) {
- mif_err("HSIC/USB not connected, skip start ipc\n");
- err = -ENODEV;
- goto exit;
- }
-
- if (has_hub(usb_ld) &&
- usb_ld->if_usb_initstates == INIT_IPC_START_DONE) {
- mif_debug("Already IPC started\n");
- err = 0;
- goto exit;
- }
-
- mif_info("send 'a'\n");
-
- skb = alloc_skb(16, GFP_ATOMIC);
- if (unlikely(!skb))
- return -ENOMEM;
- memcpy(skb_put(skb, 1), data, 1);
-
- skbpriv(skb)->iod = iod;
- skbpriv(skb)->ld = &usb_ld->ld;
- err = usb_tx_urb_with_skb(usb_ld, skb, pipe_data);
- if (err < 0) {
- mif_err("usb_tx_urb fail\n");
- goto exit;
- }
- usb_ld->link_pm_data->hub_handshake_done = true;
- usb_ld->if_usb_initstates = INIT_IPC_START_DONE;
-exit:
- return err;
-}
-
-static int usb_init_communication(struct link_device *ld,
- struct io_device *iod)
-{
- int err = 0;
- switch (iod->format) {
- case IPC_BOOT:
- ld->com_state = COM_BOOT;
- skb_queue_purge(&ld->sk_fmt_tx_q);
- break;
-
- case IPC_RAMDUMP:
- ld->com_state = COM_CRASH;
- break;
-
- case IPC_FMT:
- err = start_ipc(ld, iod);
- break;
-
- case IPC_RFS:
- case IPC_RAW:
-
- default:
- ld->com_state = COM_ONLINE;
- break;
- }
-
- mif_debug("com_state = %d\n", ld->com_state);
- return err;
-}
-
-static void usb_terminate_communication(
- struct link_device *ld, struct io_device *iod)
-{
- mif_debug("com_state = %d\n", ld->com_state);
-}
-
-static int usb_rx_submit(struct if_usb_devdata *pipe, struct urb *urb,
- gfp_t gfp_flags)
-{
- int ret;
-
- usb_anchor_urb(urb, &pipe->reading);
- ret = usb_submit_urb(urb, gfp_flags);
- if (ret) {
- usb_unanchor_urb(urb);
- usb_anchor_urb(urb, &pipe->urbs);
- mif_err("submit urb fail with ret (%d)\n", ret);
- }
-
- usb_mark_last_busy(urb->dev);
- return ret;
-}
-
-static void usb_rx_complete(struct urb *urb)
-{
- struct if_usb_devdata *pipe_data = urb->context;
- struct usb_link_device *usb_ld = usb_get_intfdata(pipe_data->data_intf);
- struct io_device *iod;
- int iod_format = IPC_FMT;
- int ret;
-
- usb_mark_last_busy(urb->dev);
-
- switch (urb->status) {
- case 0:
- case -ENOENT:
- if (!urb->actual_length)
- goto re_submit;
- /* call iod recv */
- /* how we can distinguish boot ch with fmt ch ?? */
- switch (pipe_data->format) {
- case IF_USB_FMT_EP:
- iod_format = IPC_FMT;
- pr_buffer("rx", (char *)urb->transfer_buffer,
- (size_t)urb->actual_length, 16);
- break;
- case IF_USB_RAW_EP:
- iod_format = IPC_MULTI_RAW;
- break;
- case IF_USB_RFS_EP:
- iod_format = IPC_RFS;
- break;
- default:
- break;
- }
-
- /* during boot stage fmt end point */
- /* shared with boot io device */
- /* when we use fmt device only, at boot and ipc exchange
- it can be reduced to 1 device */
- if (iod_format == IPC_FMT &&
- usb_ld->ld.com_state == COM_BOOT)
- iod_format = IPC_BOOT;
- if (iod_format == IPC_FMT &&
- usb_ld->ld.com_state == COM_CRASH)
- iod_format = IPC_RAMDUMP;
-
- iod = link_get_iod_with_format(&usb_ld->ld, iod_format);
- if (iod) {
- ret = iod->recv(iod,
- &usb_ld->ld,
- (char *)urb->transfer_buffer,
- urb->actual_length);
- if (ret < 0)
- mif_err("io device recv error :%d\n", ret);
- }
-re_submit:
- if (urb->status || atomic_read(&usb_ld->suspend_count))
- break;
-
- usb_mark_last_busy(urb->dev);
- usb_rx_submit(pipe_data, urb, GFP_ATOMIC);
- return;
- case -ESHUTDOWN:
- case -EPROTO:
- break;
- case -EOVERFLOW:
- mif_err("RX overflow\n");
- break;
- default:
- mif_err("RX complete Status (%d)\n", urb->status);
- break;
- }
-
- usb_anchor_urb(urb, &pipe_data->urbs);
-}
-
-static int usb_send(struct link_device *ld, struct io_device *iod,
- struct sk_buff *skb)
-{
- struct sk_buff_head *txq;
- size_t tx_size;
-
- if (iod->format == IPC_RAW)
- txq = &ld->sk_raw_tx_q;
- else
- txq = &ld->sk_fmt_tx_q;
-
- /* store the tx size before run the tx_delayed_work*/
- tx_size = skb->len;
-
- /* en queue skb data */
- skb_queue_tail(txq, skb);
-
- queue_delayed_work(ld->tx_wq, &ld->tx_delayed_work, 0);
-
- return tx_size;
-}
-
-static void usb_tx_complete(struct urb *urb)
-{
- int ret = 0;
- struct sk_buff *skb = urb->context;
-
- switch (urb->status) {
- case 0:
- break;
- default:
- mif_err("TX error (%d)\n", urb->status);
- }
-
- usb_mark_last_busy(urb->dev);
- ret = pm_runtime_put_autosuspend(&urb->dev->dev);
- if (ret < 0 && ret != -EAGAIN)
- mif_debug("pm_runtime_put_autosuspend failed: %d\n", ret);
- usb_free_urb(urb);
- dev_kfree_skb_any(skb);
-}
-
-static void if_usb_force_disconnect(struct work_struct *work)
-{
- struct usb_link_device *usb_ld =
- container_of(work, struct usb_link_device, disconnect_work);
- struct usb_device *udev = usb_ld->usbdev;
-
- /* if already disconnected before run this workqueue */
- if (!udev || !(&udev->dev) || !usb_ld->if_usb_connected)
- return;
-
- /* disconnect udev's parent if usb hub used */
- if (has_hub(usb_ld))
- udev = udev->parent;
-
- pm_runtime_get_sync(&udev->dev);
- if (udev->state != USB_STATE_NOTATTACHED) {
- usb_force_disconnect(udev);
- mif_info("force disconnect\n");
- }
- pm_runtime_put_autosuspend(&udev->dev);
-}
-
-static void
-usb_change_modem_state(struct usb_link_device *usb_ld, enum modem_state state)
-{
- struct io_device *iod;
-
- iod = link_get_iod_with_format(&usb_ld->ld, IPC_FMT);
- if (iod)
- iod->modem_state_changed(iod, state);
-}
-
-static int usb_tx_urb_with_skb(struct usb_link_device *usb_ld,
- struct sk_buff *skb, struct if_usb_devdata *pipe_data)
-{
- int ret, cnt = 0;
- struct urb *urb;
- struct usb_device *usbdev = usb_ld->usbdev;
- unsigned long flags;
-
- if (!usbdev || (usbdev->state == USB_STATE_NOTATTACHED) ||
- usb_ld->host_wake_timeout_flag)
- return -ENODEV;
-
- pm_runtime_get_noresume(&usbdev->dev);
-
- if (usbdev->dev.power.runtime_status == RPM_SUSPENDED ||
- usbdev->dev.power.runtime_status == RPM_SUSPENDING) {
- usb_ld->resume_status = AP_INITIATED_RESUME;
- SET_SLAVE_WAKEUP(usb_ld->pdata, 1);
-
- while (!wait_event_interruptible_timeout(usb_ld->l2_wait,
- usbdev->dev.power.runtime_status == RPM_ACTIVE
- || pipe_data->disconnected,
- HOST_WAKEUP_TIMEOUT_JIFFIES)) {
-
- if (cnt == MAX_RETRY) {
- mif_err("host wakeup timeout !!\n");
- SET_SLAVE_WAKEUP(usb_ld->pdata, 0);
- pm_runtime_put_autosuspend(&usbdev->dev);
- schedule_work(&usb_ld->disconnect_work);
- usb_ld->host_wake_timeout_flag = 1;
- return -1;
- }
- mif_err("host wakeup timeout ! retry..\n");
- SET_SLAVE_WAKEUP(usb_ld->pdata, 0);
- udelay(100);
- SET_SLAVE_WAKEUP(usb_ld->pdata, 1);
- cnt++;
- }
-
- if (pipe_data->disconnected) {
- SET_SLAVE_WAKEUP(usb_ld->pdata, 0);
- pm_runtime_put_autosuspend(&usbdev->dev);
- return -ENODEV;
- }
-
- mif_debug("wait_q done (runtime_status=%d)\n",
- usbdev->dev.power.runtime_status);
- }
-
- urb = usb_alloc_urb(0, GFP_KERNEL);
- if (!urb) {
- mif_err("alloc urb error\n");
- if (pm_runtime_put_autosuspend(&usbdev->dev) < 0)
- mif_debug("pm_runtime_put_autosuspend fail\n");
- return -ENOMEM;
- }
-
- urb->transfer_flags = URB_ZERO_PACKET;
- usb_fill_bulk_urb(urb, usbdev, pipe_data->tx_pipe, skb->data,
- skb->len, usb_tx_complete, (void *)skb);
-
- spin_lock_irqsave(&usb_ld->lock, flags);
- if (atomic_read(&usb_ld->suspend_count)) {
- /* transmission will be done in resume */
- usb_anchor_urb(urb, &usb_ld->deferred);
- usb_put_urb(urb);
- mif_debug("anchor urb (0x%p)\n", urb);
- spin_unlock_irqrestore(&usb_ld->lock, flags);
- return 0;
- }
- spin_unlock_irqrestore(&usb_ld->lock, flags);
-
- ret = usb_submit_urb(urb, GFP_KERNEL);
- if (ret < 0) {
- mif_err("usb_submit_urb with ret(%d)\n", ret);
- if (pm_runtime_put_autosuspend(&usbdev->dev) < 0)
- mif_debug("pm_runtime_put_autosuspend fail\n");
- }
- return ret;
-}
-
-static void usb_tx_work(struct work_struct *work)
-{
- int ret = 0;
- struct link_device *ld =
- container_of(work, struct link_device, tx_delayed_work.work);
- struct usb_link_device *usb_ld = to_usb_link_device(ld);
- struct io_device *iod;
- struct sk_buff *skb;
- struct if_usb_devdata *pipe_data;
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
-
- /*TODO: check the PHONE ACTIVE STATES */
- /* because tx data wait until hub on with wait_for_complettion, it
- should queue to single_threaded work queue */
- if (!link_pm_set_active(usb_ld))
- return;
-
- while (ld->sk_fmt_tx_q.qlen || ld->sk_raw_tx_q.qlen) {
- /* send skb from fmt_txq and raw_txq,
- * one by one for fair flow control */
- skb = skb_dequeue(&ld->sk_fmt_tx_q);
- if (skb) {
- iod = skbpriv(skb)->iod;
- switch (iod->format) {
- case IPC_BOOT:
- case IPC_RAMDUMP:
- case IPC_FMT:
- /* boot device uses same intf with fmt*/
- pipe_data = &usb_ld->devdata[IF_USB_FMT_EP];
- break;
- case IPC_RFS:
- pipe_data = &usb_ld->devdata[IF_USB_RFS_EP];
- break;
- default:
- /* wrong packet for fmt tx q , drop it */
- dev_kfree_skb_any(skb);
- continue;
- }
-
- ret = usb_tx_urb_with_skb(usb_ld, skb, pipe_data);
- if (ret < 0) {
- mif_err("usb_tx_urb_with_skb, ret(%d)\n",
- ret);
- skb_queue_head(&ld->sk_fmt_tx_q, skb);
- return;
- }
- }
-
- skb = skb_dequeue(&ld->sk_raw_tx_q);
- if (skb) {
- pipe_data = &usb_ld->devdata[IF_USB_RAW_EP];
- ret = usb_tx_urb_with_skb(usb_ld, skb, pipe_data);
- if (ret < 0) {
- mif_err("usb_tx_urb_with_skb "
- "for raw, ret(%d)\n",
- ret);
- skb_queue_head(&ld->sk_raw_tx_q, skb);
- return;
- }
- }
- }
-}
-
-static int if_usb_suspend(struct usb_interface *intf, pm_message_t message)
-{
- struct usb_link_device *usb_ld = usb_get_intfdata(intf);
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
- int i;
-
- if (atomic_inc_return(&usb_ld->suspend_count) == IF_USB_DEVNUM_MAX) {
- mif_debug("L2\n");
-
- for (i = 0; i < IF_USB_DEVNUM_MAX; i++)
- usb_kill_anchored_urbs(&usb_ld->devdata[i].reading);
-
- if (pm_data->freq_unlock)
- pm_data->freq_unlock(&usb_ld->usbdev->dev);
-
- wake_unlock(&usb_ld->susplock);
- }
-
- return 0;
-}
-
-static void runtime_pm_work(struct work_struct *work)
-{
- struct usb_link_device *usb_ld = container_of(work,
- struct usb_link_device, runtime_pm_work.work);
- int ret;
-
- ret = pm_request_autosuspend(&usb_ld->usbdev->dev);
-
- if (ret == -EAGAIN || ret == 1)
- queue_delayed_work(system_nrt_wq, &usb_ld->runtime_pm_work,
- msecs_to_jiffies(50));
-}
-
-static void post_resume_work(struct work_struct *work)
-{
- struct usb_link_device *usb_ld = container_of(work,
- struct usb_link_device, post_resume_work.work);
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
- struct usb_device *udev = usb_ld->usbdev;
-
- /* if already disconnected before run this workqueue */
- if (!udev || !(&udev->dev) || !usb_ld->if_usb_connected)
- return;
-
- /* lock cpu/bus frequency when L2->L0 */
- if (pm_data->freq_lock)
- pm_data->freq_lock(&udev->dev);
-}
-
-static void wait_enumeration_work(struct work_struct *work)
-{
- struct usb_link_device *usb_ld = container_of(work,
- struct usb_link_device, wait_enumeration.work);
- if (usb_ld->if_usb_connected == 0) {
- mif_err("USB disconnected and not enumerated for long time\n");
- usb_change_modem_state(usb_ld, STATE_CRASH_EXIT);
- }
-}
-
-static int if_usb_resume(struct usb_interface *intf)
-{
- int i, ret;
- struct sk_buff *skb;
- struct usb_link_device *usb_ld = usb_get_intfdata(intf);
- struct if_usb_devdata *pipe;
- struct urb *urb;
-
- spin_lock_irq(&usb_ld->lock);
- if (!atomic_dec_return(&usb_ld->suspend_count)) {
- spin_unlock_irq(&usb_ld->lock);
-
- mif_debug("\n");
- wake_lock(&usb_ld->susplock);
-
- /* HACK: Runtime pm does not allow requesting autosuspend from
- * resume callback, delayed it after resume */
- queue_delayed_work(system_nrt_wq, &usb_ld->runtime_pm_work,
- msecs_to_jiffies(50));
-
- for (i = 0; i < IF_USB_DEVNUM_MAX; i++) {
- pipe = &usb_ld->devdata[i];
- while ((urb = usb_get_from_anchor(&pipe->urbs))) {
- ret = usb_rx_submit(pipe, urb, GFP_KERNEL);
- if (ret < 0) {
- usb_put_urb(urb);
- mif_err(
- "usb_rx_submit error with (%d)\n",
- ret);
- return ret;
- }
- usb_put_urb(urb);
- }
- }
-
- while ((urb = usb_get_from_anchor(&usb_ld->deferred))) {
- mif_debug("got urb (0x%p) from anchor & resubmit\n",
- urb);
- ret = usb_submit_urb(urb, GFP_KERNEL);
- if (ret < 0) {
- mif_err("resubmit failed\n");
- skb = urb->context;
- dev_kfree_skb_any(skb);
- usb_free_urb(urb);
- ret = pm_runtime_put_autosuspend(
- &usb_ld->usbdev->dev);
- if (ret < 0 && ret != -EAGAIN)
- mif_debug("pm_runtime_put_autosuspend "
- "failed: %d\n", ret);
- }
- }
- SET_SLAVE_WAKEUP(usb_ld->pdata, 1);
- udelay(100);
- SET_SLAVE_WAKEUP(usb_ld->pdata, 0);
-
- /* if_usb_resume() is atomic. post_resume_work is
- * a kind of bottom halves
- */
- queue_delayed_work(system_nrt_wq, &usb_ld->post_resume_work, 0);
-
- return 0;
- }
-
- spin_unlock_irq(&usb_ld->lock);
- return 0;
-}
-
-static int if_usb_reset_resume(struct usb_interface *intf)
-{
- int ret;
-
- mif_debug("\n");
- ret = if_usb_resume(intf);
- return ret;
-}
-
-static struct usb_device_id if_usb_ids[] = {
- { USB_DEVICE(0x04e8, 0x6999), /* CMC221 LTE Modem */
- /*.driver_info = 0,*/
- },
- { } /* terminating entry */
-};
-MODULE_DEVICE_TABLE(usb, if_usb_ids);
-
-static struct usb_driver if_usb_driver;
-static void if_usb_disconnect(struct usb_interface *intf)
-{
- struct usb_link_device *usb_ld = usb_get_intfdata(intf);
- struct usb_device *usbdev = usb_ld->usbdev;
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
- int dev_id = intf->altsetting->desc.bInterfaceNumber;
- struct if_usb_devdata *pipe_data = &usb_ld->devdata[dev_id];
-
-
- usb_set_intfdata(intf, NULL);
-
- pipe_data->disconnected = 1;
- smp_wmb();
-
- wake_up(&usb_ld->l2_wait);
-
- usb_ld->if_usb_connected = 0;
- usb_ld->flow_suspend = 1;
-
- dev_dbg(&usbdev->dev, "%s\n", __func__);
- usb_ld->dev_count--;
- usb_driver_release_interface(&if_usb_driver, pipe_data->data_intf);
-
- usb_kill_anchored_urbs(&pipe_data->reading);
- usb_free_urbs(usb_ld, pipe_data);
-
- if (usb_ld->dev_count == 0) {
- cancel_delayed_work_sync(&usb_ld->runtime_pm_work);
- cancel_delayed_work_sync(&usb_ld->post_resume_work);
- cancel_delayed_work_sync(&usb_ld->ld.tx_delayed_work);
- usb_put_dev(usbdev);
- usb_ld->usbdev = NULL;
- if (!has_hub(usb_ld))
- pm_runtime_forbid(pm_data->root_hub);
- }
-}
-
-static int __devinit if_usb_probe(struct usb_interface *intf,
- const struct usb_device_id *id)
-{
- struct usb_host_interface *data_desc;
- struct usb_link_device *usb_ld =
- (struct usb_link_device *)id->driver_info;
- struct link_device *ld = &usb_ld->ld;
- struct usb_interface *data_intf;
- struct usb_device *usbdev = interface_to_usbdev(intf);
- struct device *dev, *ehci_dev, *root_hub;
- struct if_usb_devdata *pipe;
- struct urb *urb;
- int i;
- int j;
- int dev_id;
- int err;
-
- /* To detect usb device order probed */
- dev_id = intf->cur_altsetting->desc.bInterfaceNumber;
-
- if (dev_id >= IF_USB_DEVNUM_MAX) {
- dev_err(&intf->dev, "Device id %d cannot support\n",
- dev_id);
- return -EINVAL;
- }
-
- if (!usb_ld) {
- dev_err(&intf->dev,
- "if_usb device doesn't be allocated\n");
- err = ENOMEM;
- goto out;
- }
-
- mif_info("probe dev_id=%d usb_device_id(0x%p), usb_ld (0x%p)\n",
- dev_id, id, usb_ld);
-
- usb_ld->usbdev = usbdev;
- usb_get_dev(usbdev);
-
- for (i = 0; i < IF_USB_DEVNUM_MAX; i++) {
- data_intf = usb_ifnum_to_if(usbdev, i);
-
- /* remap endpoint of RAW to no.1 for LTE modem */
- if (i == 0)
- pipe = &usb_ld->devdata[1];
- else if (i == 1)
- pipe = &usb_ld->devdata[0];
- else
- pipe = &usb_ld->devdata[i];
-
- pipe->disconnected = 0;
- pipe->data_intf = data_intf;
- data_desc = data_intf->cur_altsetting;
-
- /* Endpoints */
- if (usb_pipein(data_desc->endpoint[0].desc.bEndpointAddress)) {
- pipe->rx_pipe = usb_rcvbulkpipe(usbdev,
- data_desc->endpoint[0].desc.bEndpointAddress);
- pipe->tx_pipe = usb_sndbulkpipe(usbdev,
- data_desc->endpoint[1].desc.bEndpointAddress);
- pipe->rx_buf_size = 1024*4;
- } else {
- pipe->rx_pipe = usb_rcvbulkpipe(usbdev,
- data_desc->endpoint[1].desc.bEndpointAddress);
- pipe->tx_pipe = usb_sndbulkpipe(usbdev,
- data_desc->endpoint[0].desc.bEndpointAddress);
- pipe->rx_buf_size = 1024*4;
- }
-
- if (i == 0) {
- dev_info(&usbdev->dev, "USB IF USB device found\n");
- } else {
- err = usb_driver_claim_interface(&if_usb_driver,
- data_intf, usb_ld);
- if (err < 0) {
- mif_err("failed to cliam usb interface\n");
- goto out;
- }
- }
-
- usb_set_intfdata(data_intf, usb_ld);
- usb_ld->dev_count++;
- pm_suspend_ignore_children(&data_intf->dev, true);
-
- for (j = 0; j < URB_COUNT; j++) {
- urb = usb_alloc_urb(0, GFP_KERNEL);
- if (!urb) {
- mif_err("alloc urb fail\n");
- err = -ENOMEM;
- goto out2;
- }
-
- urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
- urb->transfer_buffer = usb_alloc_coherent(usbdev,
- pipe->rx_buf_size, GFP_KERNEL,
- &urb->transfer_dma);
- if (!urb->transfer_buffer) {
- mif_err(
- "Failed to allocate transfer buffer\n");
- usb_free_urb(urb);
- err = -ENOMEM;
- goto out2;
- }
-
- usb_fill_bulk_urb(urb, usbdev, pipe->rx_pipe,
- urb->transfer_buffer, pipe->rx_buf_size,
- usb_rx_complete, pipe);
- usb_anchor_urb(urb, &pipe->urbs);
- }
- }
-
- /* temporary call reset_resume */
- atomic_set(&usb_ld->suspend_count, 1);
- if_usb_reset_resume(data_intf);
- atomic_set(&usb_ld->suspend_count, 0);
-
- SET_HOST_ACTIVE(usb_ld->pdata, 1);
- usb_ld->host_wake_timeout_flag = 0;
-
- if (gpio_get_value(usb_ld->pdata->gpio_phone_active)) {
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
- int delay = pm_data->autosuspend_delay_ms ?:
- DEFAULT_AUTOSUSPEND_DELAY_MS;
- pm_runtime_set_autosuspend_delay(&usbdev->dev, delay);
- dev = &usbdev->dev;
- if (dev->parent) {
- dev_dbg(&usbdev->dev, "if_usb Runtime PM Start!!\n");
- usb_enable_autosuspend(usb_ld->usbdev);
- /* s5p-ehci runtime pm allow - usb phy suspend mode */
- root_hub = &usbdev->bus->root_hub->dev;
- ehci_dev = root_hub->parent;
- mif_debug("ehci device = %s, %s\n",
- dev_driver_string(ehci_dev),
- dev_name(ehci_dev));
- pm_runtime_allow(ehci_dev);
-
- if (!pm_data->autosuspend)
- pm_runtime_forbid(dev);
-
- if (has_hub(usb_ld))
- link_pm_preactive(pm_data);
-
- pm_data->root_hub = root_hub;
- }
-
- usb_ld->flow_suspend = 0;
- /* Queue work if skbs were pending before a disconnect/probe */
- if (ld->sk_fmt_tx_q.qlen || ld->sk_raw_tx_q.qlen)
- queue_delayed_work(ld->tx_wq, &ld->tx_delayed_work, 0);
-
- usb_ld->if_usb_connected = 1;
- /*USB3503*/
- mif_debug("hub active complete\n");
-
- usb_change_modem_state(usb_ld, STATE_ONLINE);
- } else {
- usb_change_modem_state(usb_ld, STATE_LOADER_DONE);
- }
-
- /* check dynamic switching gpio received
- * before usb enumeration is completed
- */
- if (ld->mc->need_switch_to_usb) {
- ld->mc->need_switch_to_usb = false;
- rawdevs_set_tx_link(ld->msd, LINKDEV_USB);
- }
-
- return 0;
-
-out2:
- usb_ld->dev_count--;
- for (i = 0; i < IF_USB_DEVNUM_MAX; i++)
- usb_free_urbs(usb_ld, &usb_ld->devdata[i]);
-out:
- usb_set_intfdata(intf, NULL);
- return err;
-}
-
-irqreturn_t usb_resume_irq(int irq, void *data)
-{
- int ret;
- struct usb_link_device *usb_ld = data;
- int hwup;
- static int wake_status = -1;
- struct device *dev;
-
- hwup = gpio_get_value(usb_ld->pdata->gpio_host_wakeup);
- if (hwup == wake_status) {
- mif_err("Received spurious wake irq: %d", hwup);
- return IRQ_HANDLED;
- }
- wake_status = hwup;
-
- irq_set_irq_type(irq, hwup ? IRQF_TRIGGER_LOW : IRQF_TRIGGER_HIGH);
- /*
- * exynos BSP has problem when using level interrupt.
- * If we change irq type from interrupt handler,
- * we can get level interrupt twice.
- * this is temporary solution until SYS.LSI resolve this problem.
- */
- __raw_writel(eint_irq_to_bit(irq), S5P_EINT_PEND(EINT_REG_NR(irq)));
- wake_lock_timeout(&usb_ld->gpiolock, 100);
-
- mif_err("< H-WUP %d\n", hwup);
-
- if (!link_pm_is_connected(usb_ld))
- return IRQ_HANDLED;
-
- if (hwup) {
- dev = &usb_ld->usbdev->dev;
- mif_info("runtime status=%d\n",
- dev->power.runtime_status);
-
- /* if usb3503 was on, usb_if was resumed by probe */
- if (has_hub(usb_ld) &&
- (dev->power.runtime_status == RPM_ACTIVE ||
- dev->power.runtime_status == RPM_RESUMING))
- return IRQ_HANDLED;
-
- device_lock(dev);
- if (dev->power.is_prepared || dev->power.is_suspended) {
- pm_runtime_get_noresume(dev);
- ret = 0;
- } else {
- ret = pm_runtime_get_sync(dev);
- }
- device_unlock(dev);
- if (ret < 0) {
- mif_err("pm_runtime_get fail (%d)\n", ret);
- return IRQ_HANDLED;
- }
- } else {
- if (usb_ld->resume_status == AP_INITIATED_RESUME)
- wake_up(&usb_ld->l2_wait);
- usb_ld->resume_status = CP_INITIATED_RESUME;
- pm_runtime_mark_last_busy(&usb_ld->usbdev->dev);
- pm_runtime_put_autosuspend(&usb_ld->usbdev->dev);
- }
-
- return IRQ_HANDLED;
-}
-
-static int if_usb_init(struct usb_link_device *usb_ld)
-{
- int ret;
- int i;
- struct if_usb_devdata *pipe;
-
- /* give it to probe, or global variable needed */
- if_usb_ids[0].driver_info = (unsigned long)usb_ld;
-
- for (i = 0; i < IF_USB_DEVNUM_MAX; i++) {
- pipe = &usb_ld->devdata[i];
- pipe->format = i;
- pipe->disconnected = 1;
- init_usb_anchor(&pipe->urbs);
- init_usb_anchor(&pipe->reading);
- }
-
- init_waitqueue_head(&usb_ld->l2_wait);
- init_usb_anchor(&usb_ld->deferred);
-
- ret = usb_register(&if_usb_driver);
- if (ret) {
- mif_err("usb_register_driver() fail : %d\n", ret);
- return ret;
- }
-
- return 0;
-}
-
-struct link_device *usb_create_link_device(void *data)
-{
- int ret;
- struct modem_data *pdata;
- struct platform_device *pdev = (struct platform_device *)data;
- struct usb_link_device *usb_ld = NULL;
- struct link_device *ld = NULL;
-
- pdata = pdev->dev.platform_data;
-
- usb_ld = kzalloc(sizeof(struct usb_link_device), GFP_KERNEL);
- if (!usb_ld)
- goto err;
-
- INIT_LIST_HEAD(&usb_ld->ld.list);
- skb_queue_head_init(&usb_ld->ld.sk_fmt_tx_q);
- skb_queue_head_init(&usb_ld->ld.sk_raw_tx_q);
- spin_lock_init(&usb_ld->lock);
-
- ld = &usb_ld->ld;
- usb_ld->pdata = pdata;
-
- ld->name = "usb";
- ld->init_comm = usb_init_communication;
- ld->terminate_comm = usb_terminate_communication;
- ld->send = usb_send;
- ld->com_state = COM_NONE;
-
- /*ld->tx_wq = create_singlethread_workqueue("usb_tx_wq");*/
- ld->tx_wq = alloc_workqueue("usb_tx_wq",
- WQ_HIGHPRI | WQ_UNBOUND | WQ_RESCUER, 1);
-
- if (!ld->tx_wq) {
- mif_err("fail to create work Q.\n");
- goto err;
- }
-
- usb_ld->pdata->irq_host_wakeup = platform_get_irq(pdev, 1);
- wake_lock_init(&usb_ld->gpiolock, WAKE_LOCK_SUSPEND,
- "modem_usb_gpio_wake");
- wake_lock_init(&usb_ld->susplock, WAKE_LOCK_SUSPEND,
- "modem_usb_suspend_block");
-
- INIT_DELAYED_WORK(&ld->tx_delayed_work, usb_tx_work);
- INIT_DELAYED_WORK(&usb_ld->runtime_pm_work, runtime_pm_work);
- INIT_DELAYED_WORK(&usb_ld->post_resume_work, post_resume_work);
- INIT_DELAYED_WORK(&usb_ld->wait_enumeration, wait_enumeration_work);
- INIT_WORK(&usb_ld->disconnect_work, if_usb_force_disconnect);
-
- /* create link pm device */
- ret = link_pm_init(usb_ld, data);
- if (ret)
- goto err;
-
- ret = if_usb_init(usb_ld);
- if (ret)
- goto err;
-
- return ld;
-err:
- if (ld && ld->tx_wq)
- destroy_workqueue(ld->tx_wq);
-
- kfree(usb_ld);
-
- return NULL;
-}
-
-static struct usb_driver if_usb_driver = {
- .name = "if_usb_driver",
- .probe = if_usb_probe,
- .disconnect = if_usb_disconnect,
- .id_table = if_usb_ids,
- .suspend = if_usb_suspend,
- .resume = if_usb_resume,
- .reset_resume = if_usb_reset_resume,
- .supports_autosuspend = 1,
-};
-
-static void __exit if_usb_exit(void)
-{
- usb_deregister(&if_usb_driver);
-}
-
-bool usb_is_enumerated(struct modem_shared *msd)
-{
- struct link_device *ld = find_linkdev(msd, LINKDEV_USB);
- if (ld)
- return to_usb_link_device(ld)->usbdev != NULL;
- else
- return false;
-}
-
-
-/* lte specific functions */
-
-static int lte_wake_resume(struct device *pdev)
-{
- struct modem_data *pdata = pdev->platform_data;
- int val;
-
- val = gpio_get_value(pdata->gpio_host_wakeup);
- if (!val) {
- mif_debug("> S-WUP 1\n");
- gpio_set_value(pdata->gpio_slave_wakeup, 1);
- }
-
- return 0;
-}
-
-static const struct dev_pm_ops lte_wake_pm_ops = {
- .resume = lte_wake_resume,
-};
-
-static struct platform_driver lte_wake_driver = {
- .driver = {
- .name = "modem_lte_wake",
- .pm = &lte_wake_pm_ops,
- },
-};
-
-static int __init lte_wake_init(void)
-{
- return platform_driver_register(&lte_wake_driver);
-}
-module_init(lte_wake_init);
diff --git a/drivers/misc/modem_if_u1/modem_link_device_usb.h b/drivers/misc/modem_if_u1/modem_link_device_usb.h
deleted file mode 100644
index 8233fd1..0000000
--- a/drivers/misc/modem_if_u1/modem_link_device_usb.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#ifndef __MODEM_LINK_DEVICE_USB_H__
-#define __MODEM_LINK_DEVICE_USB_H__
-
-#include <linux/usb.h>
-#include <linux/wakelock.h>
-
-#define IF_USB_DEVNUM_MAX 3
-
-#define IF_USB_FMT_EP 0
-#define IF_USB_RAW_EP 1
-#define IF_USB_RFS_EP 2
-
-#define DEFAULT_AUTOSUSPEND_DELAY_MS 500
-#define HOST_WAKEUP_TIMEOUT_JIFFIES msecs_to_jiffies(500)
-#define WAIT_ENUMURATION_TIMEOUT_JIFFIES msecs_to_jiffies(15000)
-#define MAX_RETRY 30
-
-#define IOCTL_LINK_CONTROL_ENABLE _IO('o', 0x30)
-#define IOCTL_LINK_CONTROL_ACTIVE _IO('o', 0x31)
-#define IOCTL_LINK_GET_HOSTWAKE _IO('o', 0x32)
-#define IOCTL_LINK_CONNECTED _IO('o', 0x33)
-#define IOCTL_LINK_SET_BIAS_CLEAR _IO('o', 0x34)
-
-#define IOCTL_LINK_PORT_ON _IO('o', 0x35)
-#define IOCTL_LINK_PORT_OFF _IO('o', 0x36)
-
-enum RESUME_STATUS {
- CP_INITIATED_RESUME,
- AP_INITIATED_RESUME,
-};
-
-enum IPC_INIT_STATUS {
- INIT_IPC_NOT_READY,
- INIT_IPC_START_DONE, /* send 'a' done */
-};
-
-enum hub_status {
- HUB_STATE_OFF, /* usb3503 0ff*/
- HUB_STATE_RESUMMING, /* usb3503 on, but enummerattion was not yet*/
- HUB_STATE_ACTIVE, /* hub and CMC221 enumerate */
-};
-
-struct if_usb_devdata {
- struct usb_interface *data_intf;
- unsigned int tx_pipe;
- unsigned int rx_pipe;
- u8 disconnected;
-
- int format;
- struct usb_anchor urbs;
- struct usb_anchor reading;
- unsigned int rx_buf_size;
-};
-
-struct usb_link_device {
- /*COMMON LINK DEVICE*/
- struct link_device ld;
-
- struct modem_data *pdata;
-
- /*USB SPECIFIC LINK DEVICE*/
- struct usb_device *usbdev;
- struct if_usb_devdata devdata[IF_USB_DEVNUM_MAX];
- struct delayed_work runtime_pm_work;
- struct delayed_work post_resume_work;
- struct delayed_work wait_enumeration;
- struct work_struct disconnect_work;
-
- struct wake_lock gpiolock;
- struct wake_lock susplock;
-
- unsigned int dev_count;
- unsigned int suspended;
- atomic_t suspend_count;
- enum RESUME_STATUS resume_status;
- int if_usb_connected;
- int if_usb_initstates;
- int flow_suspend;
- int host_wake_timeout_flag;
-
- unsigned gpio_slave_wakeup;
- unsigned gpio_host_wakeup;
- unsigned gpio_host_active;
- int irq_host_wakeup;
- struct delayed_work dwork;
- struct work_struct resume_work;
- int cpcrash_flag;
- wait_queue_head_t l2_wait;
-
- spinlock_t lock;
- struct usb_anchor deferred;
-
- /* LINK PM DEVICE DATA */
- struct link_pm_data *link_pm_data;
-};
-/* converts from struct link_device* to struct xxx_link_device* */
-#define to_usb_link_device(linkdev) \
- container_of(linkdev, struct usb_link_device, ld)
-
-#define SET_SLAVE_WAKEUP(_pdata, _value) \
-do { \
- gpio_set_value(_pdata->gpio_slave_wakeup, _value); \
- mif_debug("> S-WUP %s\n", _value ? "1" : "0"); \
-} while (0)
-
-#define SET_HOST_ACTIVE(_pdata, _value) \
-do { \
- gpio_set_value(_pdata->gpio_host_active, _value); \
- mif_debug("> H-ACT %s\n", _value ? "1" : "0"); \
-} while (0)
-
-#define has_hub(usb_ld) ((usb_ld)->link_pm_data->has_usbhub)
-
-irqreturn_t usb_resume_irq(int irq, void *data);
-bool usb_is_enumerated(struct modem_shared *msd);
-
-#endif
diff --git a/drivers/misc/modem_if_u1/modem_link_pm_usb.c b/drivers/misc/modem_if_u1/modem_link_pm_usb.c
deleted file mode 100644
index 1b2614e..0000000
--- a/drivers/misc/modem_if_u1/modem_link_pm_usb.c
+++ /dev/null
@@ -1,417 +0,0 @@
-/*
- * Copyright (C) 2012 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#define DEBUG
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/device.h>
-#include <linux/sched.h>
-#include <linux/irq.h>
-#include <linux/poll.h>
-#include <linux/gpio.h>
-#include <linux/if_arp.h>
-#include <linux/platform_device.h>
-#include <linux/suspend.h>
-
-#include "modem_link_pm_usb.h"
-
-static inline void start_hub_work(struct link_pm_data *pm_data, int delay)
-{
- if (pm_data->hub_work_running == false) {
- pm_data->hub_work_running = true;
- wake_lock(&pm_data->hub_lock);
- mif_debug("link_pm_hub_work is started\n");
- }
-
- schedule_delayed_work(&pm_data->link_pm_hub, msecs_to_jiffies(delay));
-}
-
-static inline void end_hub_work(struct link_pm_data *pm_data)
-{
- wake_unlock(&pm_data->hub_lock);
- pm_data->hub_work_running = false;
- mif_debug("link_pm_hub_work is done\n");
-}
-
-bool link_pm_is_connected(struct usb_link_device *usb_ld)
-{
- if (has_hub(usb_ld)) {
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
- if (pm_data->hub_init_lock)
- return false;
-
- if (pm_data->hub_status == HUB_STATE_OFF) {
- if (pm_data->hub_work_running == false)
- start_hub_work(pm_data, 0);
- return false;
- }
- }
-
- if (!usb_ld->if_usb_connected) {
- mif_err("mif: if not connected\n");
- return false;
- }
-
- return true;
-}
-
-void link_pm_preactive(struct link_pm_data *pm_data)
-{
- if (pm_data->root_hub) {
- mif_info("pre-active\n");
- pm_data->hub_on_retry_cnt = 0;
- complete(&pm_data->hub_active);
- pm_runtime_put_sync(pm_data->root_hub);
- }
-
- pm_data->hub_status = HUB_STATE_ACTIVE;
-}
-
-static void link_pm_hub_work(struct work_struct *work)
-{
- int err;
- struct link_pm_data *pm_data =
- container_of(work, struct link_pm_data, link_pm_hub.work);
-
- if (pm_data->hub_status == HUB_STATE_ACTIVE) {
- end_hub_work(pm_data);
- return;
- }
-
- if (!pm_data->port_enable) {
- mif_err("mif: hub power func not assinged\n");
- end_hub_work(pm_data);
- return;
- }
-
- /* If kernel if suspend, wait the ehci resume */
- if (pm_data->dpm_suspending) {
- mif_info("dpm_suspending\n");
- start_hub_work(pm_data, 500);
- return;
- }
-
- switch (pm_data->hub_status) {
- case HUB_STATE_OFF:
- pm_data->hub_status = HUB_STATE_RESUMMING;
- mif_trace("hub off->on\n");
-
- /* skip 1st time before first probe */
- if (pm_data->root_hub)
- pm_runtime_get_sync(pm_data->root_hub);
- err = pm_data->port_enable(2, 1);
- if (err < 0) {
- mif_err("hub on fail err=%d\n", err);
- err = pm_data->port_enable(2, 0);
- if (err < 0)
- mif_err("hub off fail err=%d\n", err);
- pm_data->hub_status = HUB_STATE_OFF;
- if (pm_data->root_hub)
- pm_runtime_put_sync(pm_data->root_hub);
- end_hub_work(pm_data);
- } else {
- /* resume root hub */
- start_hub_work(pm_data, 100);
- }
- break;
- case HUB_STATE_RESUMMING:
- if (pm_data->hub_on_retry_cnt++ > 50) {
- pm_data->hub_on_retry_cnt = 0;
- pm_data->hub_status = HUB_STATE_OFF;
- if (pm_data->root_hub)
- pm_runtime_put_sync(pm_data->root_hub);
- end_hub_work(pm_data);
- } else {
- mif_info("hub resumming: %d\n",
- pm_data->hub_on_retry_cnt);
- start_hub_work(pm_data, 200);
- }
- break;
- }
-exit:
- return;
-}
-
-static int link_pm_hub_standby(void *args)
-{
- struct link_pm_data *pm_data = args;
- struct usb_link_device *usb_ld = pm_data->usb_ld;
- int err = 0;
-
- if (!pm_data->port_enable) {
- mif_err("port power func not assinged\n");
- return -ENODEV;
- }
-
- err = pm_data->port_enable(2, 0);
- if (err < 0)
- mif_err("hub off fail err=%d\n", err);
-
- pm_data->hub_status = HUB_STATE_OFF;
-
- /* this function is atomic.
- * make force disconnect in workqueue..
- */
- if (pm_data->usb_ld->if_usb_connected)
- schedule_work(&usb_ld->disconnect_work);
-
- return err;
-}
-
-bool link_pm_set_active(struct usb_link_device *usb_ld)
-{
- int ret;
- struct link_pm_data *pm_data = usb_ld->link_pm_data;
-
- if (has_hub(usb_ld)) {
- if (pm_data->hub_status != HUB_STATE_ACTIVE) {
- INIT_COMPLETION(pm_data->hub_active);
- SET_SLAVE_WAKEUP(usb_ld->pdata, 1);
- ret = wait_for_completion_timeout(&pm_data->hub_active,
- msecs_to_jiffies(2000));
- if (!ret) { /*timeout*/
- mif_err("hub on timeout - retry\n");
- SET_SLAVE_WAKEUP(usb_ld->pdata, 0);
- queue_delayed_work(usb_ld->ld.tx_wq,
- &usb_ld->ld.tx_delayed_work, 0);
- return false;
- }
- }
- } else {
- /* TODO do something */
- }
- return true;
-}
-
-static long link_pm_ioctl(struct file *file, unsigned int cmd,
- unsigned long arg)
-{
- int value, err = 0;
- struct link_pm_data *pm_data = file->private_data;
- struct usb_link_device *usb_ld = pm_data->usb_ld;
-
- mif_info("cmd: 0x%08x\n", cmd);
-
- switch (cmd) {
- case IOCTL_LINK_CONTROL_ACTIVE:
- if (copy_from_user(&value, (const void __user *)arg,
- sizeof(int)))
- return -EFAULT;
- gpio_set_value(pm_data->gpio_link_active, value);
- break;
- case IOCTL_LINK_GET_HOSTWAKE:
- return !gpio_get_value(pm_data->gpio_link_hostwake);
- case IOCTL_LINK_CONNECTED:
- return usb_ld->if_usb_connected;
- case IOCTL_LINK_PORT_ON:
- /* ignore cp host wakeup irq, set the hub_init_lock when AP try
- CP off and release hub_init_lock when CP boot done */
- pm_data->hub_init_lock = 0;
- if (pm_data->root_hub)
- pm_runtime_get_sync(pm_data->root_hub);
- if (pm_data->port_enable) {
- err = pm_data->port_enable(2, 1);
- if (err < 0) {
- mif_err("hub on fail err=%d\n", err);
- goto exit;
- }
- pm_data->hub_status = HUB_STATE_RESUMMING;
- }
- break;
- case IOCTL_LINK_PORT_OFF:
- err = link_pm_hub_standby(pm_data);
- if (err < 0) {
- mif_err("usb3503 active fail\n");
- goto exit;
- }
- pm_data->hub_init_lock = 1;
- pm_data->hub_handshake_done = 0;
- break;
- default:
- break;
- }
-exit:
- return err;
-}
-
-static ssize_t show_autosuspend(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- char *p = buf;
- struct miscdevice *miscdev = dev_get_drvdata(dev);
- struct link_pm_data *pm_data = container_of(miscdev,
- struct link_pm_data, miscdev);
- struct usb_link_device *usb_ld = pm_data->usb_ld;
-
- p += sprintf(buf, "%s\n", pm_data->autosuspend ? "on" : "off");
-
- return p - buf;
-}
-
-static ssize_t store_autosuspend(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- struct miscdevice *miscdev = dev_get_drvdata(dev);
- struct link_pm_data *pm_data = container_of(miscdev,
- struct link_pm_data, miscdev);
- struct usb_link_device *usb_ld = pm_data->usb_ld;
- struct task_struct *task = get_current();
- char taskname[TASK_COMM_LEN];
-
- mif_info("autosuspend: %s: %s(%d)'\n",
- buf, get_task_comm(taskname, task), task->pid);
-
- if (!strncmp(buf, "on", 2)) {
- pm_data->autosuspend = true;
- if (usb_ld->usbdev)
- pm_runtime_allow(&usb_ld->usbdev->dev);
- } else if (!strncmp(buf, "off", 3)) {
- pm_data->autosuspend = false;
- if (usb_ld->usbdev)
- pm_runtime_forbid(&usb_ld->usbdev->dev);
- }
-
- return count;
-}
-
-static struct device_attribute attr_autosuspend =
- __ATTR(autosuspend, S_IRUGO | S_IWUSR,
- show_autosuspend, store_autosuspend);
-
-static int link_pm_open(struct inode *inode, struct file *file)
-{
- struct link_pm_data *pm_data =
- (struct link_pm_data *)file->private_data;
- file->private_data = (void *)pm_data;
- return 0;
-}
-
-static int link_pm_release(struct inode *inode, struct file *file)
-{
- file->private_data = NULL;
- return 0;
-}
-
-static const struct file_operations link_pm_fops = {
- .owner = THIS_MODULE,
- .open = link_pm_open,
- .release = link_pm_release,
- .unlocked_ioctl = link_pm_ioctl,
-};
-
-static int link_pm_notifier_event(struct notifier_block *this,
- unsigned long event, void *ptr)
-{
- struct link_pm_data *pm_data =
- container_of(this, struct link_pm_data, pm_notifier);
- struct usb_link_device *usb_ld = pm_data->usb_ld;
-
- switch (event) {
- case PM_SUSPEND_PREPARE:
- pm_data->dpm_suspending = true;
- if (has_hub(usb_ld))
- link_pm_hub_standby(pm_data);
- return NOTIFY_OK;
- case PM_POST_SUSPEND:
- pm_data->dpm_suspending = false;
- return NOTIFY_OK;
- }
- return NOTIFY_DONE;
-}
-
-int link_pm_init(struct usb_link_device *usb_ld, void *data)
-{
- int err;
- int irq;
- struct platform_device *pdev = (struct platform_device *)data;
- struct modem_data *pdata =
- (struct modem_data *)pdev->dev.platform_data;
- struct modemlink_pm_data *pm_pdata = pdata->link_pm_data;
- struct link_pm_data *pm_data =
- kzalloc(sizeof(struct link_pm_data), GFP_KERNEL);
- if (!pm_data) {
- mif_err("link_pm_data is NULL\n");
- return -ENOMEM;
- }
- /* get link pm data from modemcontrol's platform data */
- pm_data->gpio_link_active = pm_pdata->gpio_link_active;
- pm_data->gpio_link_hostwake = pm_pdata->gpio_link_hostwake;
- pm_data->gpio_link_slavewake = pm_pdata->gpio_link_slavewake;
- pm_data->link_reconnect = pm_pdata->link_reconnect;
- pm_data->port_enable = pm_pdata->port_enable;
- pm_data->freq_lock = pm_pdata->freq_lock;
- pm_data->freq_unlock = pm_pdata->freq_unlock;
- pm_data->autosuspend_delay_ms = pm_pdata->autosuspend_delay_ms;
- pm_data->autosuspend = true;
-
- pm_data->usb_ld = usb_ld;
- usb_ld->link_pm_data = pm_data;
-
- pm_data->miscdev.minor = MISC_DYNAMIC_MINOR;
- pm_data->miscdev.name = "link_pm";
- pm_data->miscdev.fops = &link_pm_fops;
-
- err = misc_register(&pm_data->miscdev);
- if (err < 0) {
- mif_err("fail to register pm device(%d)\n", err);
- goto err_misc_register;
- }
-
- err = device_create_file(pm_data->miscdev.this_device,
- &attr_autosuspend);
- if (err) {
- mif_err("fail to create file: autosuspend: %d\n", err);
- goto err_create_file;
- }
-
- pm_data->hub_init_lock = 1;
- irq = gpio_to_irq(usb_ld->pdata->gpio_host_wakeup);
- err = request_threaded_irq(irq, NULL, usb_resume_irq,
- IRQF_TRIGGER_HIGH | IRQF_ONESHOT, "modem_usb_wake", usb_ld);
- if (err) {
- mif_err("Failed to allocate an interrupt(%d)\n", irq);
- goto err_request_irq;
- }
- enable_irq_wake(irq);
-
- pm_data->has_usbhub = pm_pdata->has_usbhub;
-
- if (has_hub(usb_ld)) {
- init_completion(&pm_data->hub_active);
- pm_data->hub_status = HUB_STATE_OFF;
- pm_data->hub_handshake_done = 0;
- pm_data->root_hub = NULL;
-
- pm_pdata->hub_standby = link_pm_hub_standby;
- pm_pdata->hub_pm_data = pm_data;
-
- wake_lock_init(&pm_data->hub_lock, WAKE_LOCK_SUSPEND,
- "modem_hub_enum_lock");
- INIT_DELAYED_WORK(&pm_data->link_pm_hub, link_pm_hub_work);
- pm_data->hub_work_running = false;
- }
-
- pm_data->pm_notifier.notifier_call = link_pm_notifier_event;
- register_pm_notifier(&pm_data->pm_notifier);
-
- return 0;
-
-err_request_irq:
-err_create_file:
- misc_deregister(&pm_data->miscdev);
-err_misc_register:
- kfree(pm_data);
- return err;
-}
diff --git a/drivers/misc/modem_if_u1/modem_link_pm_usb.h b/drivers/misc/modem_if_u1/modem_link_pm_usb.h
deleted file mode 100644
index d26af76..0000000
--- a/drivers/misc/modem_if_u1/modem_link_pm_usb.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2012 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#ifndef __MODEM_LINK_PM_USB_H__
-#define __MODEM_LINK_PM_USB_H__
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include "modem_link_device_usb.h"
-
-struct link_pm_data {
- struct miscdevice miscdev;
- struct usb_link_device *usb_ld;
- unsigned gpio_link_active;
- unsigned gpio_link_hostwake;
- unsigned gpio_link_slavewake;
- int (*link_reconnect)(void);
- int link_reconnect_cnt;
-
- struct workqueue_struct *wq;
- struct completion active_done;
-
-/*USB3503*/
- struct completion hub_active;
- int hub_status;
- bool has_usbhub;
- /* ignore hub on by host wakeup irq before cp power on*/
- int hub_init_lock;
- /* C1 stay disconnect status after send 'a', skip 'a' next enumeration*/
- int hub_handshake_done;
- struct wake_lock hub_lock;
- struct delayed_work link_pm_hub;
- bool hub_work_running;
- int hub_on_retry_cnt;
- struct device *root_hub;
-
- struct notifier_block pm_notifier;
- bool dpm_suspending;
-
- int (*port_enable)(int, int);
-
- int (*freq_lock)(struct device *dev);
- int (*freq_unlock)(struct device *dev);
-
- int autosuspend_delay_ms; /* if zero, the default value is used */
- bool autosuspend;
-};
-
-bool link_pm_set_active(struct usb_link_device *usb_ld);
-bool link_pm_is_connected(struct usb_link_device *usb_ld);
-void link_pm_preactive(struct link_pm_data *pm_data);
-int link_pm_init(struct usb_link_device *usb_ld, void *data);
-
-#endif
diff --git a/drivers/misc/modem_if_u1/modem_modemctl_device_cbp71.c b/drivers/misc/modem_if_u1/modem_modemctl_device_cbp71.c
deleted file mode 100644
index 28f2ce7..0000000
--- a/drivers/misc/modem_if_u1/modem_modemctl_device_cbp71.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_modemctl_device_cbp7.1.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include "modem_link_device_dpram.h"
-
-#define PIF_TIMEOUT (180 * HZ)
-#define DPRAM_INIT_TIMEOUT (15 * HZ)
-
-static int cbp71_on(struct modem_ctl *mc)
-{
- int RetVal = 0;
- int dpram_init_RetVal = 0;
- struct link_device *ld = get_current_link(mc->iod);
- struct dpram_link_device *dpram_ld = to_dpram_link_device(ld);
-
- mif_info("cbp71_on()\n");
-
- if (!mc->gpio_cp_off || !mc->gpio_cp_reset) {
- mif_err("no gpio data\n");
- return -ENXIO;
- }
- gpio_set_value(mc->gpio_cp_reset, 0);
- msleep(600);
- gpio_set_value(mc->gpio_cp_reset, 1);
- msleep(100);
- gpio_set_value(mc->gpio_cp_off, 0);
- msleep(300);
-
- gpio_set_value(mc->gpio_pda_active, 1);
-
- mc->iod->modem_state_changed(mc->iod, STATE_BOOTING);
-
- /* Wait here until the PHONE is up.
- * Waiting as the this called from IOCTL->UM thread */
- mif_debug("power control waiting for INT_MASK_CMD_PIF_INIT_DONE\n");
-
- /* 1HZ = 1 clock tick, 100 default */
- dpram_ld->clear_interrupt(dpram_ld);
-
- dpram_init_RetVal =
- wait_event_interruptible_timeout(
- dpram_ld->dpram_init_cmd_wait_q,
- dpram_ld->dpram_init_cmd_wait_condition,
- DPRAM_INIT_TIMEOUT);
-
- if (!dpram_init_RetVal) {
- /*RetVal will be 0 on timeout, non zero if interrupted */
- mif_err("INIT_START cmd was not arrived.\n");
- mif_err("init_cmd_wait_condition is 0 and wait timeout happend\n");
- return -ENXIO;
- }
-
- RetVal = wait_event_interruptible_timeout(
- dpram_ld->modem_pif_init_done_wait_q,
- dpram_ld->modem_pif_init_wait_condition,
- PIF_TIMEOUT);
-
- if (!RetVal) {
- /*RetVal will be 0 on timeout, non zero if interrupted */
- mif_err("PIF init failed\n");
- mif_err("pif_init_wait_condition is 0 and wait timeout happend\n");
- return -ENXIO;
- }
-
- mif_debug("complete cbp71_on\n");
-
- mc->iod->modem_state_changed(mc->iod, STATE_ONLINE);
-
- return 0;
-}
-
-static int cbp71_off(struct modem_ctl *mc)
-{
- mif_debug("cbp71_off()\n");
-
- if (!mc->gpio_cp_off || !mc->gpio_cp_reset) {
- mif_err("no gpio data\n");
- return -ENXIO;
- }
-
- mif_err("Phone power Off. - do nothing\n");
-
- mc->iod->modem_state_changed(mc->iod, STATE_OFFLINE);
-
- return 0;
-}
-
-static int cbp71_reset(struct modem_ctl *mc)
-{
- int ret = 0;
-
- mif_debug("cbp71_reset()\n");
-
- ret = cbp71_off(mc);
- if (ret)
- return -ENXIO;
-
- msleep(100);
-
- ret = cbp71_on(mc);
- if (ret)
- return -ENXIO;
-
- return 0;
-}
-
-static int cbp71_boot_on(struct modem_ctl *mc)
-{
- mif_debug("cbp71_boot_on()\n");
-
- if (!mc->gpio_cp_reset) {
- mif_err("no gpio data\n");
- return -ENXIO;
- }
- gpio_set_value(mc->gpio_cp_reset, 0);
- msleep(600);
- gpio_set_value(mc->gpio_cp_reset, 1);
-
- mc->iod->modem_state_changed(mc->iod, STATE_BOOTING);
-
- return 0;
-}
-
-static int cbp71_boot_off(struct modem_ctl *mc)
-{
- mif_debug("cbp71_boot_off()\n");
- return 0;
-}
-
-static irqreturn_t phone_active_irq_handler(int irq, void *_mc)
-{
- int phone_reset = 0;
- int phone_active_value = 0;
- int phone_state = 0;
- struct modem_ctl *mc = (struct modem_ctl *)_mc;
-
- if (!mc->gpio_cp_reset || !mc->gpio_phone_active) {
- mif_err("no gpio data\n");
- return IRQ_HANDLED;
- }
-
- phone_reset = gpio_get_value(mc->gpio_cp_reset);
- phone_active_value = gpio_get_value(mc->gpio_phone_active);
-
- if (phone_reset && phone_active_value)
- phone_state = STATE_ONLINE;
- else if (phone_reset && !phone_active_value)
- phone_state = STATE_CRASH_EXIT;
- else
- phone_state = STATE_OFFLINE;
-
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, phone_state);
-
- if (phone_active_value)
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_LOW);
- else
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_HIGH);
-
- mif_info("phone_active_irq_handler : phone_state=%d\n", phone_state);
-
- return IRQ_HANDLED;
-}
-
-static void cbp71_get_ops(struct modem_ctl *mc)
-{
- mc->ops.modem_on = cbp71_on;
- mc->ops.modem_off = cbp71_off;
- mc->ops.modem_reset = cbp71_reset;
- mc->ops.modem_boot_on = cbp71_boot_on;
- mc->ops.modem_boot_off = cbp71_boot_off;
-}
-
-int cbp71_init_modemctl_device(struct modem_ctl *mc,
- struct modem_data *pdata)
-{
- int ret = 0;
- struct platform_device *pdev;
-
- mc->gpio_cp_on = pdata->gpio_cp_on;
- mc->gpio_reset_req_n = pdata->gpio_reset_req_n;
- mc->gpio_cp_reset = pdata->gpio_cp_reset;
- mc->gpio_pda_active = pdata->gpio_pda_active;
- mc->gpio_phone_active = pdata->gpio_phone_active;
- mc->gpio_cp_dump_int = pdata->gpio_cp_dump_int;
- mc->gpio_flm_uart_sel = pdata->gpio_flm_uart_sel;
- mc->gpio_cp_warm_reset = pdata->gpio_cp_warm_reset;
- mc->gpio_cp_off = pdata->gpio_cp_off;
-
- pdev = to_platform_device(mc->dev);
- mc->irq_phone_active = platform_get_irq(pdev, 0);
-
- cbp71_get_ops(mc);
-
- /*TODO: check*/
- ret = request_irq(mc->irq_phone_active, phone_active_irq_handler,
- IRQF_TRIGGER_HIGH, "phone_active", mc);
- if (ret) {
- mif_err("failed to irq_phone_active request_irq: %d\n"
- , ret);
- return ret;
- }
-
- ret = enable_irq_wake(mc->irq_phone_active);
- if (ret)
- mif_err("failed to enable_irq_wake:%d\n", ret);
-
- return ret;
-}
diff --git a/drivers/misc/modem_if_u1/modem_modemctl_device_cbp72.c b/drivers/misc/modem_if_u1/modem_modemctl_device_cbp72.c
deleted file mode 100644
index 2617be8..0000000
--- a/drivers/misc/modem_if_u1/modem_modemctl_device_cbp72.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_modemctl_device_cbp7.1.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/platform_device.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include "modem_link_device_dpram.h"
-
-#define PIF_TIMEOUT (180 * HZ)
-#define DPRAM_INIT_TIMEOUT (30 * HZ)
-
-
-static irqreturn_t phone_active_handler(int irq, void *arg)
-{
- struct modem_ctl *mc = (struct modem_ctl *)arg;
- int phone_reset = gpio_get_value(mc->gpio_cp_reset);
- int phone_active = gpio_get_value(mc->gpio_phone_active);
- int phone_state = mc->phone_state;
-
- mif_info("state = %d, phone_reset = %d, phone_active = %d\n",
- phone_state, phone_reset, phone_active);
-
- if (phone_reset && phone_active) {
- if (mc->phone_state == STATE_BOOTING) {
- phone_state = STATE_ONLINE;
- mc->bootd->modem_state_changed(mc->bootd, phone_state);
- }
- } else if (phone_reset && !phone_active) {
- if (mc->phone_state == STATE_ONLINE) {
- phone_state = STATE_CRASH_EXIT;
- mc->bootd->modem_state_changed(mc->bootd, phone_state);
- }
- } else {
- phone_state = STATE_OFFLINE;
- if (mc->bootd && mc->bootd->modem_state_changed)
- mc->bootd->modem_state_changed(mc->bootd, phone_state);
- }
-
- if (phone_active)
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_LOW);
- else
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_HIGH);
-
- mif_info("phone_state = %d\n", phone_state);
-
- return IRQ_HANDLED;
-}
-
-static int cbp72_on(struct modem_ctl *mc)
-{
- mif_info("start!!!\n");
-
- /* prevent sleep during bootloader downloading */
- if (!wake_lock_active(&mc->mc_wake_lock))
- wake_lock(&mc->mc_wake_lock);
-
- gpio_set_value(mc->gpio_cp_on, 0);
- if (mc->gpio_cp_off)
- gpio_set_value(mc->gpio_cp_off, 1);
- gpio_set_value(mc->gpio_cp_reset, 0);
-
- msleep(500);
-
- gpio_set_value(mc->gpio_cp_on, 1);
- if (mc->gpio_cp_off)
- gpio_set_value(mc->gpio_cp_off, 0);
-
- msleep(100);
-
- gpio_set_value(mc->gpio_cp_reset, 1);
-
- msleep(300);
-
- gpio_set_value(mc->gpio_pda_active, 1);
-
- mc->bootd->modem_state_changed(mc->bootd, STATE_BOOTING);
-
- mif_info("complete!!!\n");
-
- return 0;
-}
-
-static int cbp72_off(struct modem_ctl *mc)
-{
- mif_info("cbp72_off()\n");
-
- if (!mc->gpio_cp_off || !mc->gpio_cp_reset) {
- mif_err("no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_cp_on, 0);
- gpio_set_value(mc->gpio_cp_off, 1);
-
- mc->bootd->modem_state_changed(mc->bootd, STATE_OFFLINE);
-
- return 0;
-}
-
-static int cbp72_reset(struct modem_ctl *mc)
-{
- int ret = 0;
-
- mif_debug("cbp72_reset()\n");
-
- ret = cbp72_off(mc);
- if (ret)
- return -ENXIO;
-
- msleep(100);
-
- ret = cbp72_on(mc);
- if (ret)
- return -ENXIO;
-
- return 0;
-}
-
-static int cbp72_boot_on(struct modem_ctl *mc)
-{
- mif_info("\n");
-
- if (!mc->gpio_cp_reset) {
- mif_err("no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_reset, 0);
-
- msleep(600);
-
- gpio_set_value(mc->gpio_cp_reset, 1);
-
- mc->bootd->modem_state_changed(mc->bootd, STATE_BOOTING);
-
- return 0;
-}
-
-static int cbp72_boot_off(struct modem_ctl *mc)
-{
- int ret;
- struct link_device *ld = get_current_link(mc->bootd);
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
- mif_debug("\n");
- /* Wait here until the PHONE is up.
- * Waiting as the this called from IOCTL->UM thread */
- mif_info("Waiting for INT_CMD_PHONE_START\n");
- ret = wait_for_completion_interruptible_timeout(
- &dpld->dpram_init_cmd, DPRAM_INIT_TIMEOUT);
- if (!ret) {
- /* ret == 0 on timeout, ret < 0 if interrupted */
- mif_err("Timeout!!! (PHONE_START was not arrived.)\n");
- return -ENXIO;
- }
-
- mif_info("Waiting for INT_CMD_PIF_INIT_DONE\n");
- ret = wait_for_completion_interruptible_timeout(
- &dpld->modem_pif_init_done, PIF_TIMEOUT);
- if (!ret) {
- mif_err("Timeout!!! (PIF_INIT_DONE was not arrived.)\n");
- return -ENXIO;
- }
- mc->bootd->modem_state_changed(mc->bootd, STATE_ONLINE);
-
- wake_unlock(&mc->mc_wake_lock);
-
- return 0;
-}
-
-static int cbp72_force_crash_exit(struct modem_ctl *mc)
-{
- struct link_device *ld = get_current_link(mc->bootd);
-
- mif_err("device = %s\n", mc->bootd->name);
-
- /* Make DUMP start */
- ld->force_dump(ld, mc->bootd);
-
- msleep_interruptible(1000);
-
- mc->bootd->modem_state_changed(mc->bootd, STATE_CRASH_EXIT);
-
- return 0;
-}
-
-static void cbp72_get_ops(struct modem_ctl *mc)
-{
- mc->ops.modem_on = cbp72_on;
- mc->ops.modem_off = cbp72_off;
- mc->ops.modem_reset = cbp72_reset;
- mc->ops.modem_boot_on = cbp72_boot_on;
- mc->ops.modem_boot_off = cbp72_boot_off;
- mc->ops.modem_force_crash_exit = cbp72_force_crash_exit;
-}
-
-int cbp72_init_modemctl_device(struct modem_ctl *mc, struct modem_data *pdata)
-{
- int ret = 0;
- int irq = 0;
- unsigned long flag = 0;
- struct platform_device *pdev = NULL;
-
- mc->gpio_cp_on = pdata->gpio_cp_on;
- mc->gpio_cp_off = pdata->gpio_cp_off;
- mc->gpio_reset_req_n = pdata->gpio_reset_req_n;
- mc->gpio_cp_reset = pdata->gpio_cp_reset;
- mc->gpio_pda_active = pdata->gpio_pda_active;
- mc->gpio_phone_active = pdata->gpio_phone_active;
- mc->gpio_cp_dump_int = pdata->gpio_cp_dump_int;
- mc->gpio_flm_uart_sel = pdata->gpio_flm_uart_sel;
- mc->gpio_cp_warm_reset = pdata->gpio_cp_warm_reset;
-
- if (!mc->gpio_cp_on || !mc->gpio_cp_reset || !mc->gpio_phone_active) {
- mif_err("no GPIO data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- if (mc->gpio_cp_off)
- gpio_set_value(mc->gpio_cp_off, 1);
- gpio_set_value(mc->gpio_cp_on, 0);
-
- cbp72_get_ops(mc);
-
- pdev = to_platform_device(mc->dev);
- mc->irq_phone_active = platform_get_irq_byname(pdev, "cp_active_irq");
- if (!mc->irq_phone_active) {
- mif_err("get irq fail\n");
- return -1;
- }
-
- irq = mc->irq_phone_active;
- mif_info("PHONE_ACTIVE IRQ# = %d\n", irq);
-
- flag = IRQF_TRIGGER_HIGH;
- ret = request_irq(irq, phone_active_handler, flag, "cbp_active", mc);
- if (ret) {
- mif_err("request_irq fail (%d)\n", ret);
- return ret;
- }
-
- wake_lock_init(&mc->mc_wake_lock, WAKE_LOCK_SUSPEND, "cbp72_wake_lock");
-
- ret = enable_irq_wake(irq);
- if (ret)
- mif_err("enable_irq_wake fail (%d)\n", ret);
-
- return 0;
-}
-
diff --git a/drivers/misc/modem_if_u1/modem_modemctl_device_cmc221.c b/drivers/misc/modem_if_u1/modem_modemctl_device_cmc221.c
deleted file mode 100644
index eddc91a..0000000
--- a/drivers/misc/modem_if_u1/modem_modemctl_device_cmc221.c
+++ /dev/null
@@ -1,317 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_modemctl_device_cmc221.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-#include <linux/init.h>
-
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/platform_device.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include "modem_link_device_usb.h"
-#include "modem_link_device_dpram.h"
-#include "modem_utils.h"
-
-#define PIF_TIMEOUT (180 * HZ)
-#define DPRAM_INIT_TIMEOUT (30 * HZ)
-
-static void mc_state_fsm(struct modem_ctl *mc)
-{
- struct link_device *ld = get_current_link(mc->iod);
- int cp_on = gpio_get_value(mc->gpio_cp_on);
- int cp_reset = gpio_get_value(mc->gpio_cp_reset);
- int cp_active = gpio_get_value(mc->gpio_phone_active);
- int old_state = mc->phone_state;
- int new_state = mc->phone_state;
-
- mif_err("%s: old_state:%d cp_on:%d cp_reset:%d cp_active:%d\n",
- mc->name, old_state, cp_on, cp_reset, cp_active);
-
- if (!cp_active) {
- if (!cp_on) {
- gpio_set_value(mc->gpio_cp_reset, 0);
- new_state = STATE_OFFLINE;
- ld->mode = LINK_MODE_OFFLINE;
- mif_err("%s: new_state = PHONE_PWR_OFF\n", mc->name);
- } else if (old_state == STATE_ONLINE) {
- new_state = STATE_CRASH_EXIT;
- mif_err("%s: new_state = CRASH_EXIT\n", mc->name);
- } else {
- mif_err("%s: Don't care!!!\n", mc->name);
- }
- }
-
- if (old_state != new_state) {
- mc->bootd->modem_state_changed(mc->bootd, new_state);
- mc->iod->modem_state_changed(mc->iod, new_state);
- }
-}
-
-static irqreturn_t phone_active_handler(int irq, void *arg)
-{
- struct modem_ctl *mc = (struct modem_ctl *)arg;
- int cp_reset = gpio_get_value(mc->gpio_cp_reset);
-
- if (cp_reset)
- mc_state_fsm(mc);
-
- return IRQ_HANDLED;
-}
-
-/* TX dynamic switching between DPRAM and USB in one modem */
-static irqreturn_t dynamic_switching_handler(int irq, void *arg)
-{
- struct modem_ctl *mc = (struct modem_ctl *)arg;
- int txpath = gpio_get_value(mc->gpio_dynamic_switching);
- bool enumerated = usb_is_enumerated(mc->msd);
-
- mif_err("txpath=%d, enumeration=%d\n", txpath, enumerated);
-
- /* do not switch to USB, when USB is not enumerated. */
- if (!enumerated && txpath) {
- mc->need_switch_to_usb = true;
- return IRQ_HANDLED;
- }
-
- mc->need_switch_to_usb = false;
- rawdevs_set_tx_link(mc->msd, txpath ? LINKDEV_USB : LINKDEV_DPRAM);
-
- return IRQ_HANDLED;
-}
-
-static int cmc221_on(struct modem_ctl *mc)
-{
- struct link_device *ld = get_current_link(mc->iod);
-
- if (!wake_lock_active(&mc->mc_wake_lock))
- wake_lock(&mc->mc_wake_lock);
- set_sromc_access(true);
-
- mc->phone_state = STATE_OFFLINE;
- ld->mode = LINK_MODE_OFFLINE;
-
- mif_err("%s\n", mc->name);
-
- disable_irq_nosync(mc->irq_phone_active);
-
- gpio_set_value(mc->gpio_cp_on, 0);
- msleep(100);
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- msleep(500);
-
- gpio_set_value(mc->gpio_cp_on, 1);
- msleep(100);
-
- gpio_set_value(mc->gpio_cp_reset, 1);
-
- return 0;
-}
-
-static int cmc221_off(struct modem_ctl *mc)
-{
- int cp_on = gpio_get_value(mc->gpio_cp_on);
-
- mif_err("%s\n", mc->name);
-
- if (mc->phone_state == STATE_OFFLINE || cp_on == 0)
- return 0;
-
- if (!wake_lock_active(&mc->mc_wake_lock))
- wake_lock(&mc->mc_wake_lock);
- set_sromc_access(true);
-
- gpio_set_value(mc->gpio_cp_on, 0);
-
- return 0;
-}
-
-static int cmc221_force_crash_exit(struct modem_ctl *mc)
-{
- struct link_device *ld = get_current_link(mc->bootd);
-
- mif_err("%s\n", mc->name);
-
- /* Make DUMP start */
- ld->force_dump(ld, mc->bootd);
-
- return 0;
-}
-
-static int cmc221_dump_reset(struct modem_ctl *mc)
-{
- mif_err("%s\n", mc->name);
-
- if (!wake_lock_active(&mc->mc_wake_lock))
- wake_lock(&mc->mc_wake_lock);
- set_sromc_access(true);
-
- gpio_set_value(mc->gpio_host_active, 0);
- gpio_set_value(mc->gpio_cp_reset, 0);
-
- udelay(200);
-
- gpio_set_value(mc->gpio_cp_reset, 1);
-
- msleep(300);
-
- return 0;
-}
-
-static int cmc221_reset(struct modem_ctl *mc)
-{
- mif_err("%s\n", mc->name);
-
- if (cmc221_off(mc))
- return -ENXIO;
-
- msleep(100);
-
- if (cmc221_on(mc))
- return -ENXIO;
-
- return 0;
-}
-
-static int cmc221_boot_on(struct modem_ctl *mc)
-{
- mif_err("%s\n", mc->name);
-
- gpio_set_value(mc->gpio_pda_active, 1);
-
- mc->bootd->modem_state_changed(mc->bootd, STATE_BOOTING);
- mc->iod->modem_state_changed(mc->iod, STATE_BOOTING);
-
- return 0;
-}
-
-static int cmc221_boot_off(struct modem_ctl *mc)
-{
- int ret;
- struct link_device *ld = get_current_link(mc->bootd);
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
-
- mif_err("%s\n", mc->name);
-
- ret = wait_for_completion_interruptible_timeout(&dpld->dpram_init_cmd,
- DPRAM_INIT_TIMEOUT);
- if (!ret) {
- /* ret == 0 on timeout, ret < 0 if interrupted */
- mif_err("%s: ERR! timeout (CP_START not arrived)\n", mc->name);
- return -ENXIO;
- }
-
- enable_irq(mc->irq_phone_active);
-
- return 0;
-}
-
-static int cmc221_boot_done(struct modem_ctl *mc)
-{
- mif_err("%s\n", mc->name);
-
- set_sromc_access(false);
- if (wake_lock_active(&mc->mc_wake_lock))
- wake_unlock(&mc->mc_wake_lock);
-
- return 0;
-}
-
-static void cmc221_get_ops(struct modem_ctl *mc)
-{
- mc->ops.modem_on = cmc221_on;
- mc->ops.modem_off = cmc221_off;
- mc->ops.modem_reset = cmc221_reset;
- mc->ops.modem_boot_on = cmc221_boot_on;
- mc->ops.modem_boot_off = cmc221_boot_off;
- mc->ops.modem_boot_done = cmc221_boot_done;
- mc->ops.modem_force_crash_exit = cmc221_force_crash_exit;
- mc->ops.modem_dump_reset = cmc221_dump_reset;
-}
-
-int cmc221_init_modemctl_device(struct modem_ctl *mc, struct modem_data *pdata)
-{
- int ret = 0;
- int irq = 0;
- unsigned long flag = 0;
- struct platform_device *pdev = NULL;
-
- mc->gpio_cp_on = pdata->gpio_cp_on;
- mc->gpio_cp_reset = pdata->gpio_cp_reset;
- mc->gpio_phone_active = pdata->gpio_phone_active;
- mc->gpio_pda_active = pdata->gpio_pda_active;
-#if 0 /*TODO: check the GPIO map*/
- mc->gpio_cp_dump_int = pdata->gpio_cp_dump_int;
- mc->gpio_flm_uart_sel = pdata->gpio_flm_uart_sel;
- mc->gpio_slave_wakeup = pdata->gpio_slave_wakeup;
- mc->gpio_host_active = pdata->gpio_host_active;
- mc->gpio_host_wakeup = pdata->gpio_host_wakeup;
-#endif
- mc->gpio_dynamic_switching = pdata->gpio_dynamic_switching;
- mc->need_switch_to_usb = false;
-
- if (!mc->gpio_cp_on || !mc->gpio_cp_reset || !mc->gpio_phone_active) {
- mif_err("%s: ERR! no GPIO data\n", mc->name);
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_cp_on, 0);
-
- cmc221_get_ops(mc);
- dev_set_drvdata(mc->dev, mc);
-
- pdev = to_platform_device(mc->dev);
- mc->irq_phone_active = platform_get_irq_byname(pdev, STR_CP_ACTIVE_IRQ);
- if (!mc->irq_phone_active) {
- mif_err("%s: ERR! get cp_active_irq fail\n", mc->name);
- return -1;
- }
- mif_err("%s: PHONE_ACTIVE IRQ# = %d\n", mc->name, mc->irq_phone_active);
-
- wake_lock_init(&mc->mc_wake_lock, WAKE_LOCK_SUSPEND, "cmc_wake_lock");
-
- flag = IRQF_TRIGGER_FALLING | IRQF_NO_SUSPEND;
- irq = mc->irq_phone_active;
- ret = request_irq(irq, phone_active_handler, flag, "cmc_active", mc);
- if (ret) {
- mif_err("%s: ERR! request_irq(#%d) fail (err %d)\n",
- mc->name, irq, ret);
- return ret;
- }
- ret = enable_irq_wake(irq);
- if (ret) {
- mif_err("%s: WARNING! enable_irq_wake(#%d) fail (err %d)\n",
- mc->name, irq, ret);
- }
-
- flag = IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_NO_SUSPEND;
- if (mc->gpio_dynamic_switching) {
- irq = gpio_to_irq(mc->gpio_dynamic_switching);
- mif_err("%s: DYNAMIC_SWITCH IRQ# = %d\n", mc->name, irq);
- ret = request_irq(irq, dynamic_switching_handler, flag,
- "dynamic_switching", mc);
- if (ret) {
- mif_err("%s: ERR! request_irq(#%d) fail (err %d)\n",
- mc->name, irq, ret);
- return ret;
- }
- }
-
- return 0;
-}
diff --git a/drivers/misc/modem_if_u1/modem_modemctl_device_esc6270.c b/drivers/misc/modem_if_u1/modem_modemctl_device_esc6270.c
deleted file mode 100644
index adc2eee..0000000
--- a/drivers/misc/modem_if_u1/modem_modemctl_device_esc6270.c
+++ /dev/null
@@ -1,343 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_modemctl_device_esc6270.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/platform_device.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include <linux/regulator/consumer.h>
-
-#include <plat/gpio-cfg.h>
-
-#if defined(CONFIG_LINK_DEVICE_DPRAM)
-#include "modem_link_device_dpram.h"
-#elif defined(CONFIG_LINK_DEVICE_PLD)
-#include "modem_link_device_pld.h"
-#endif
-
-#if defined(CONFIG_LINK_DEVICE_DPRAM) || defined(CONFIG_LINK_DEVICE_PLD)
-#include <linux/mfd/max77693.h>
-
-#define PIF_TIMEOUT (180 * HZ)
-#define DPRAM_INIT_TIMEOUT (30 * HZ)
-
-static int esc6270_on(struct modem_ctl *mc)
-{
- int ret;
- struct link_device *ld = get_current_link(mc->iod);
-
- pr_info("[MODEM_IF:ESC] <%s> start!!!\n", __func__);
-
- if (!mc->gpio_cp_reset) {
- pr_err("[MODEM_IF:ESC] no gpio data\n");
- return -ENXIO;
- }
-
- if (mc->gpio_reset_req_n)
- gpio_set_value(mc->gpio_reset_req_n, 1);
-
- gpio_set_value(mc->gpio_cp_reset, 1);
- msleep(30);
-
- gpio_set_value(mc->gpio_cp_on, 1);
- msleep(500);
-
- gpio_set_value(mc->gpio_cp_on, 0);
- msleep(500);
-
- gpio_set_value(mc->gpio_pda_active, 1);
-
- mc->iod->modem_state_changed(mc->iod, STATE_BOOTING);
- ld->mode = LINK_MODE_BOOT;
-
- return 0;
-}
-
-static int esc6270_off(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF:ESC] esc6270_off()\n");
-
-#if 1
- if (!mc->gpio_cp_reset) {
- pr_err("[MODEM_IF:ESC] no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_cp_on, 0);
-#endif
-
- mc->iod->modem_state_changed(mc->iod, STATE_OFFLINE);
-
- return 0;
-}
-
-static int esc6270_reset(struct modem_ctl *mc)
-{
- int ret = 0;
-
- pr_debug("[MODEM_IF:ESC] esc6270_reset()\n");
-
- ret = esc6270_off(mc);
- if (ret)
- return -ENXIO;
-
- msleep(100);
-
- ret = esc6270_on(mc);
- if (ret)
- return -ENXIO;
-
- return 0;
-}
-
-int esc6270_boot_on(struct modem_ctl *mc)
-{
- struct link_device *ld = get_current_link(mc->iod);
-#if defined(CONFIG_LINK_DEVICE_DPRAM)
- /* clear intr */
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
- u16 recv_msg = dpld->recv_intr(dpld);
-
- pr_info("[MODEM_IF:ESC] dpram intr: %x\n", recv_msg);
-#endif
-
- pr_info("[MODEM_IF:ESC] <%s>\n", __func__);
-
- /* Need to init uart byt gpio_flm_uart_sel GPIO */
- if (!mc->gpio_cp_reset || !mc->gpio_flm_uart_sel) {
- pr_err("[MODEM_IF:ESC] no gpio data\n");
- return -ENXIO;
- }
- gpio_set_value(mc->gpio_flm_uart_sel, 1);
-
- pr_info(" - ESC_PHONE_ON : %d, ESC_RESET_N : %d\n",
- gpio_get_value(mc->gpio_cp_on),
- gpio_get_value(mc->gpio_cp_reset));
-
- gpio_set_value(mc->gpio_cp_on, 0);
- gpio_direction_output(mc->gpio_cp_reset, 0);
- msleep(100);
-
- gpio_direction_output(mc->gpio_cp_on, 1);
- msleep(44);
-
- pr_info(" - ESC_PHONE_ON : %d, ESC_RESET_N : %d\n",
- gpio_get_value(mc->gpio_cp_on),
- gpio_get_value(mc->gpio_cp_reset));
-
- gpio_direction_input(mc->gpio_cp_reset);
- msleep(600);
- gpio_direction_output(mc->gpio_cp_on, 0);
-
- msleep(20);
- pr_info(" - ESC_PHONE_ON : %d, ESC_RESET_N : %d\n",
- gpio_get_value(mc->gpio_cp_on),
- gpio_get_value(mc->gpio_cp_reset));
-
-#if defined(CONFIG_LINK_DEVICE_PLD)
- gpio_direction_output(mc->gpio_fpga_cs_n, 1);
-#endif
-
- mc->iod->modem_state_changed(mc->iod, STATE_BOOTING);
- ld->mode = LINK_MODE_BOOT;
-
- return 0;
-}
-
-static int esc6270_boot_off(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF:ESC] <%s>\n", __func__);
-
- if (!mc->gpio_flm_uart_sel) {
- pr_err("[MODEM_IF:ESC] no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_flm_uart_sel, 0);
-
- mc->iod->modem_state_changed(mc->iod, STATE_OFFLINE);
-
- return 0;
-}
-
-static int esc6270_active_count;
-
-static irqreturn_t phone_active_irq_handler(int irq, void *arg)
-{
- struct modem_ctl *mc = (struct modem_ctl *)arg;
- int phone_reset = 0;
- int phone_active = 0;
- int phone_state = 0;
- int cp_dump_int = 0;
-
- if (!mc->gpio_cp_reset ||
- !mc->gpio_phone_active) { /* || !mc->gpio_cp_dump_int) { */
- pr_err("[MODEM_IF:ESC] no gpio data\n");
- return IRQ_HANDLED;
- }
-
- phone_reset = gpio_get_value(mc->gpio_cp_reset);
- phone_active = gpio_get_value(mc->gpio_phone_active);
- cp_dump_int = gpio_get_value(mc->gpio_cp_dump_int);
-
- pr_info("[MODEM_IF:ESC] <%s> phone_reset=%d, phone_active=%d, cp_dump_int=%d\n",
- __func__, phone_reset, phone_active, cp_dump_int);
-
- if (phone_reset && phone_active) {
- phone_state = STATE_ONLINE;
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, phone_state);
- } else if (phone_reset && !phone_active) {
- if (mc->phone_state == STATE_ONLINE) {
- phone_state = STATE_CRASH_EXIT;
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod,
- phone_state);
- }
- } else {
- phone_state = STATE_OFFLINE;
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, phone_state);
- }
-
- if (phone_active)
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_LOW);
- else
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_HIGH);
-
- pr_info("[MODEM_IF::ESC] <%s> phone_state = %d\n",
- __func__, phone_state);
-
- return IRQ_HANDLED;
-}
-
-#if defined(CONFIG_SIM_DETECT)
-static irqreturn_t sim_detect_irq_handler(int irq, void *_mc)
-{
- struct modem_ctl *mc = (struct modem_ctl *)_mc;
-
- pr_info("[MODEM_IF:ESC] <%s> gpio_sim_detect = %d\n",
- __func__, gpio_get_value(mc->gpio_sim_detect));
-
- if (mc->iod && mc->iod->sim_state_changed)
- mc->iod->sim_state_changed(mc->iod,
- !gpio_get_value(mc->gpio_sim_detect));
-
- return IRQ_HANDLED;
-}
-#endif
-
-static void esc6270_get_ops(struct modem_ctl *mc)
-{
- mc->ops.modem_on = esc6270_on;
- mc->ops.modem_off = esc6270_off;
- mc->ops.modem_reset = esc6270_reset;
- mc->ops.modem_boot_on = esc6270_boot_on;
- mc->ops.modem_boot_off = esc6270_boot_off;
-}
-
-int esc6270_init_modemctl_device(struct modem_ctl *mc, struct modem_data *pdata)
-{
- int ret = 0;
- struct platform_device *pdev;
-
- mc->gpio_cp_on = pdata->gpio_cp_on;
- mc->gpio_reset_req_n = pdata->gpio_reset_req_n;
- mc->gpio_cp_reset = pdata->gpio_cp_reset;
- mc->gpio_pda_active = pdata->gpio_pda_active;
- mc->gpio_phone_active = pdata->gpio_phone_active;
- mc->gpio_cp_dump_int = pdata->gpio_cp_dump_int;
- mc->gpio_flm_uart_sel = pdata->gpio_flm_uart_sel;
- mc->gpio_cp_warm_reset = pdata->gpio_cp_warm_reset;
- mc->gpio_sim_detect = pdata->gpio_sim_detect;
-
-#if defined(CONFIG_LINK_DEVICE_PLD)
- mc->gpio_fpga_cs_n = pdata->gpio_fpga1_cs_n;
-#endif
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_cp_on, 0);
-
- pdev = to_platform_device(mc->dev);
- mc->irq_phone_active = platform_get_irq_byname(pdev, "cp_active_irq");
- pr_info("[MODEM_IF:ESC] <%s> PHONE_ACTIVE IRQ# = %d\n",
- __func__, mc->irq_phone_active);
-
- esc6270_get_ops(mc);
-
- if (mc->irq_phone_active) {
- ret = request_irq(mc->irq_phone_active,
- phone_active_irq_handler,
- IRQF_TRIGGER_HIGH,
- "esc_active",
- mc);
- if (ret) {
- pr_err("[MODEM_IF:ESC] <%s> failed to request_irq IRQ# %d (err=%d)\n",
- __func__, mc->irq_phone_active, ret);
- return ret;
- }
-
- ret = enable_irq_wake(mc->irq_phone_active);
- if (ret) {
- pr_err("[MODEM_IF:ESC] %s: failed to enable_irq_wake IRQ# %d (err=%d)\n",
- __func__, mc->irq_phone_active, ret);
- free_irq(mc->irq_phone_active, mc);
- return ret;
- }
- }
-
-#if defined(CONFIG_SIM_DETECT)
- mc->irq_sim_detect = platform_get_irq_byname(pdev, "sim_irq");
- pr_info("[MODEM_IF:ESC] <%s> SIM_DECTCT IRQ# = %d\n",
- __func__, mc->irq_sim_detect);
-
- if (mc->irq_sim_detect) {
- ret = request_irq(mc->irq_sim_detect, sim_detect_irq_handler,
- IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
- "esc_sim_detect", mc);
- if (ret) {
- mif_err("failed to request_irq: %d\n", ret);
- mc->sim_state.online = false;
- mc->sim_state.changed = false;
- return ret;
- }
-
- ret = enable_irq_wake(mc->irq_sim_detect);
- if (ret) {
- mif_err("failed to enable_irq_wake: %d\n", ret);
- free_irq(mc->irq_sim_detect, mc);
- mc->sim_state.online = false;
- mc->sim_state.changed = false;
- return ret;
- }
-
- /* initialize sim_state => insert: gpio=0, remove: gpio=1 */
- mc->sim_state.online = !gpio_get_value(mc->gpio_sim_detect);
- }
-#endif
-
- return ret;
-}
-#endif
diff --git a/drivers/misc/modem_if_u1/modem_modemctl_device_mdm6600.c b/drivers/misc/modem_if_u1/modem_modemctl_device_mdm6600.c
deleted file mode 100644
index e2f6b0b..0000000
--- a/drivers/misc/modem_if_u1/modem_modemctl_device_mdm6600.c
+++ /dev/null
@@ -1,790 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_modemctl_device_mdm6600.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/platform_device.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include <linux/regulator/consumer.h>
-
-#include <plat/gpio-cfg.h>
-
-#if defined(CONFIG_MACH_M0_CTC)
-#include <linux/mfd/max77693.h>
-#endif
-
-#if defined(CONFIG_MACH_U1_KOR_LGT)
-#include <linux/mfd/max8997.h>
-
-static int mdm6600_on(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] mdm6600_on()\n");
-
- if (!mc->gpio_cp_reset || !mc->gpio_cp_reset_msm || !mc->gpio_cp_on) {
- pr_err("[MODEM_IF] no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_pda_active, 0);
- gpio_set_value(mc->gpio_cp_reset, 1);
- gpio_set_value(mc->gpio_cp_reset_msm, 1);
- msleep(30);
- gpio_set_value(mc->gpio_cp_on, 1);
- msleep(300);
- gpio_set_value(mc->gpio_cp_on, 0);
- msleep(500);
-
- gpio_set_value(mc->gpio_pda_active, 1);
-
- mc->iod->modem_state_changed(mc->iod, STATE_BOOTING);
-
- return 0;
-}
-
-static int mdm6600_off(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] mdm6600_off()\n");
-
- if (!mc->gpio_cp_reset || !mc->gpio_cp_reset_msm || !mc->gpio_cp_on) {
- pr_err("[MODEM_IF] no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_on, 0);
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_cp_reset_msm, 0);
-
- mc->iod->modem_state_changed(mc->iod, STATE_OFFLINE);
-
- return 0;
-}
-
-static int mdm6600_reset(struct modem_ctl *mc)
-{
- int ret;
-
- pr_info("[MODEM_IF] mdm6600_reset()\n");
-
- if (!mc->gpio_cp_reset || !mc->gpio_cp_reset_msm || !mc->gpio_cp_on) {
- pr_err("[MODEM_IF] no gpio data\n");
- return -ENXIO;
- }
-
- if (system_rev >= 0x05) {
- dev_err(mc->dev, "[%s] system_rev: %d\n", __func__, system_rev);
-
- gpio_set_value(mc->gpio_cp_reset_msm, 0);
- msleep(100); /* no spec, confirm later exactly how much time
- needed to initialize CP with RESET_PMU_N */
- gpio_set_value(mc->gpio_cp_reset_msm, 1);
- msleep(40); /* > 37.2 + 2 msec */
- } else {
- dev_err(mc->dev, "[%s] system_rev: %d\n", __func__, system_rev);
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- msleep(500); /* no spec, confirm later exactly how much time
- needed to initialize CP with RESET_PMU_N */
- gpio_set_value(mc->gpio_cp_reset, 1);
- msleep(40); /* > 37.2 + 2 msec */
- }
-
- return 0;
-}
-
-static int mdm6600_boot_on(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] mdm6600_boot_on()\n");
-
- if (!mc->gpio_boot_sw_sel) {
- pr_err("[MODEM_IF] no gpio data\n");
- return -ENXIO;
- }
-
- if (mc->vbus_on)
- mc->vbus_on();
-
- if (mc->gpio_boot_sw_sel)
- gpio_set_value(mc->gpio_boot_sw_sel, 0);
- mc->usb_boot = true;
-
- return 0;
-}
-
-static int mdm6600_boot_off(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] mdm6600_boot_off()\n");
-
- if (!mc->gpio_boot_sw_sel) {
- pr_err("[MODEM_IF] no gpio data\n");
- return -ENXIO;
- }
-
- if (mc->vbus_off)
- mc->vbus_off();
-
- if (mc->gpio_boot_sw_sel)
- gpio_set_value(mc->gpio_boot_sw_sel, 1);
- mc->usb_boot = false;
-
- return 0;
-}
-
-static int count;
-
-static irqreturn_t phone_active_irq_handler(int irq, void *_mc)
-{
- int phone_reset = 0;
- int phone_active_value = 0;
- int cp_dump_value = 0;
- int phone_state = 0;
- struct modem_ctl *mc = (struct modem_ctl *)_mc;
-
- if (!mc->gpio_cp_reset || !mc->gpio_phone_active
-/*|| !mc->gpio_cp_dump_int */) {
- pr_err("[MODEM_IF] no gpio data\n");
- return IRQ_HANDLED;
- }
-
- phone_reset = gpio_get_value(mc->gpio_cp_reset);
- phone_active_value = gpio_get_value(mc->gpio_phone_active);
-
- pr_info("[MODEM_IF] PA EVENT : reset =%d, pa=%d, cp_dump=%d\n",
- phone_reset, phone_active_value, cp_dump_value);
-
- if (phone_reset && phone_active_value) {
- phone_state = STATE_ONLINE;
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, phone_state);
- } else if (phone_reset && !phone_active_value) {
- if (count == 1) {
- phone_state = STATE_CRASH_EXIT;
- if (mc->iod) {
- ld = get_current_link(mc->iod);
- if (ld->terminate_comm)
- ld->terminate_comm(ld, mc->iod);
- }
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed
- (mc->iod, phone_state);
- count = 0;
- } else {
- count++;
- }
- } else {
- phone_state = STATE_OFFLINE;
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, phone_state);
- }
-
- pr_info("phone_active_irq_handler : phone_state=%d\n", phone_state);
-
- return IRQ_HANDLED;
-}
-
-static void mdm6600_get_ops(struct modem_ctl *mc)
-{
- mc->ops.modem_on = mdm6600_on;
- mc->ops.modem_off = mdm6600_off;
- mc->ops.modem_reset = mdm6600_reset;
- mc->ops.modem_boot_on = mdm6600_boot_on;
- mc->ops.modem_boot_off = mdm6600_boot_off;
-}
-
-int mdm6600_init_modemctl_device(struct modem_ctl *mc, struct modem_data *pdata)
-{
- int ret;
- struct platform_device *pdev;
-
- mc->gpio_cp_on = pdata->gpio_cp_on;
- mc->gpio_cp_reset = pdata->gpio_cp_reset;
- mc->gpio_pda_active = pdata->gpio_pda_active;
- mc->gpio_phone_active = pdata->gpio_phone_active;
- mc->gpio_cp_reset_msm = pdata->gpio_cp_reset_msm;
- mc->gpio_boot_sw_sel = pdata->gpio_boot_sw_sel;
-
- mc->vbus_on = pdata->vbus_on;
- mc->vbus_off = pdata->vbus_off;
-
- pdev = to_platform_device(mc->dev);
- mc->irq_phone_active = platform_get_irq_byname(pdev, "cp_active_irq");
- pr_info("[MODEM_IF] <%s> PHONE_ACTIVE IRQ# = %d\n",
- __func__, mc->irq_phone_active);
-
- mdm6600_get_ops(mc);
-
- ret = request_irq(mc->irq_phone_active, phone_active_irq_handler,
- IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
- "phone_active", mc);
- if (ret) {
- pr_err("[MODEM_IF] %s: failed to request_irq:%d\n",
- __func__, ret);
- goto err_request_irq;
- }
-
- ret = enable_irq_wake(mc->irq_phone_active);
- if (ret) {
- pr_err("[MODEM_IF] %s: failed to enable_irq_wake:%d\n",
- __func__, ret);
- goto err_set_wake_irq;
- }
-
- return ret;
-
- err_set_wake_irq:
- free_irq(mc->irq_phone_active, mc);
- err_request_irq:
- return ret;
-}
-#endif /* CONFIG_MACH_U1_KOR_LGT */
-
-#if defined(CONFIG_MACH_M0_CTC) || defined(CONFIG_MACH_T0_CHN_CTC)
-
-#if defined(CONFIG_LINK_DEVICE_DPRAM)
-#include "modem_link_device_dpram.h"
-#elif defined(CONFIG_LINK_DEVICE_PLD)
-#include "modem_link_device_pld.h"
-#endif
-
-#define PIF_TIMEOUT (180 * HZ)
-#define DPRAM_INIT_TIMEOUT (30 * HZ)
-
-#if defined(CONFIG_MACH_M0_DUOSCTC) || defined(CONFIG_MACH_M0_GRANDECTC) || \
- defined(CONFIG_MACH_T0_CHN_CTC)
-static void mdm6600_vbus_on(void)
-{
- struct regulator *regulator;
-
- pr_info("[MSM] <%s>\n", __func__);
-
-#if defined(CONFIG_MACH_T0_CHN_CTC)
- if (system_rev == 4)
- regulator = regulator_get(NULL, "vcc_1.8v_lcd");
- else
- regulator = regulator_get(NULL, "vcc_1.8v_usb");
-#else
- regulator = regulator_get(NULL, "vusbhub_osc_1.8v");
-#endif
- if (IS_ERR(regulator)) {
- pr_err("[MSM] error getting regulator_get <%s>\n", __func__);
- return ;
- }
- regulator_enable(regulator);
- regulator_put(regulator);
-
- pr_info("[MSM] <%s> enable\n", __func__);
-}
-
-static void mdm6600_vbus_off(void)
-{
- struct regulator *regulator;
-
- pr_info("[MSM] <%s>\n", __func__);
-
-#if defined(CONFIG_MACH_T0_CHN_CTC)
- if (system_rev == 4)
- regulator = regulator_get(NULL, "vcc_1.8v_lcd");
- else
- regulator = regulator_get(NULL, "vcc_1.8v_usb");
-#else
- regulator = regulator_get(NULL, "vusbhub_osc_1.8v");
-#endif
- if (IS_ERR(regulator)) {
- pr_err("[MSM] error getting regulator_get <%s>\n", __func__);
- return ;
- }
- regulator_disable(regulator);
- regulator_put(regulator);
-
- pr_info("[MSM] <%s> disable\n", __func__);
-}
-#endif
-
-static int mdm6600_on(struct modem_ctl *mc)
-{
- struct link_device *ld = get_current_link(mc->iod);
-
- pr_info("[MSM] <%s>\n", __func__);
-
- if (!mc->gpio_reset_req_n || !mc->gpio_cp_reset
- || !mc->gpio_cp_on || !mc->gpio_pda_active) {
- pr_err("[MSM] no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_pda_active, 1);
-
- gpio_set_value(mc->gpio_cp_on, 1);
- msleep(500);
-
- gpio_set_value(mc->gpio_reset_req_n, 1);
- msleep(50);
-
- gpio_set_value(mc->gpio_cp_reset, 1);
- msleep(50);
-
- gpio_set_value(mc->gpio_cp_on, 0);
- msleep(500);
-
-#if defined(CONFIG_LINK_DEVICE_PLD)
- gpio_set_value(mc->gpio_fpga_cs_n, 1);
-#endif
-
- mc->iod->modem_state_changed(mc->iod, STATE_BOOTING);
- ld->mode = LINK_MODE_BOOT;
-
- return 0;
-}
-
-static int mdm6600_off(struct modem_ctl *mc)
-{
- pr_info("[MSM] <%s>\n", __func__);
-
- if (!mc->gpio_cp_reset || !mc->gpio_cp_on) {
- pr_err("[MSM] no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_reset_req_n, 0);
- gpio_set_value(mc->gpio_cp_on, 0);
-
- msleep(200);
-
- mc->iod->modem_state_changed(mc->iod, STATE_OFFLINE);
-
- return 0;
-}
-
-static int mdm6600_reset(struct modem_ctl *mc)
-{
- int ret = 0;
- struct link_device *ld = get_current_link(mc->iod);
-
- pr_info("[MSM] <%s>\n", __func__);
-
- if (!mc->gpio_reset_req_n || !mc->gpio_cp_reset
- || !mc->gpio_cp_on || !mc->gpio_pda_active) {
- pr_err("[MSM] no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_reset_req_n, 0);
- gpio_set_value(mc->gpio_cp_on, 0);
-
- msleep(100);
-
- gpio_set_value(mc->gpio_cp_on, 1);
- msleep(300);
-
- gpio_set_value(mc->gpio_reset_req_n, 1);
- msleep(50);
-
- gpio_set_value(mc->gpio_cp_reset, 1);
- msleep(50);
-
- gpio_set_value(mc->gpio_cp_on, 0);
- msleep(100);
-
- gpio_set_value(mc->gpio_pda_active, 1);
-
- mc->iod->modem_state_changed(mc->iod, STATE_BOOTING);
- ld->mode = LINK_MODE_BOOT;
-
- return 0;
-}
-
-static int mdm6600_boot_on(struct modem_ctl *mc)
-{
- struct regulator *regulator;
- struct link_device *ld = get_current_link(mc->iod);
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
-
- pr_info("[MSM] <%s>\n", __func__);
-
- dpld->recv_intr(dpld);
-
- if (!mc->gpio_flm_uart_sel) {
- pr_err("[MSM] no gpio data\n");
- return -ENXIO;
- }
-
-#if defined(CONFIG_MACH_M0_DUOSCTC) || defined(CONFIG_MACH_T0_CHN_CTC)
- mdm6600_vbus_on();
-#elif defined(CONFIG_MACH_M0_GRANDECTC)
- if (system_rev >= 14)
- mdm6600_vbus_on();
-#endif
-
- pr_info("[MSM] <%s> %s\n", __func__, "USB_BOOT_EN initializing");
- if (system_rev < 11) {
-
- gpio_direction_output(GPIO_USB_BOOT_EN, 0);
- s3c_gpio_setpull(GPIO_USB_BOOT_EN, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_USB_BOOT_EN, 0);
-
- gpio_direction_output(GPIO_BOOT_SW_SEL, 0);
- s3c_gpio_setpull(GPIO_BOOT_SW_SEL, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_BOOT_SW_SEL, 0);
-
- msleep(100);
-
- gpio_direction_output(GPIO_USB_BOOT_EN, 1);
- gpio_set_value(GPIO_USB_BOOT_EN, 1);
-
- pr_info("[MSM] <%s> USB_BOOT_EN:[%d]\n", __func__,
- gpio_get_value(GPIO_USB_BOOT_EN));
-
- gpio_direction_output(GPIO_BOOT_SW_SEL, 1);
- gpio_set_value(GPIO_BOOT_SW_SEL, 1);
-
- pr_info("[MSM] <%s> BOOT_SW_SEL : [%d]\n", __func__,
- gpio_get_value(GPIO_BOOT_SW_SEL));
- } else if (system_rev == 11) {
- gpio_direction_output(GPIO_USB_BOOT_EN, 0);
- s3c_gpio_setpull(GPIO_USB_BOOT_EN, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_USB_BOOT_EN, 0);
-
- gpio_direction_output(GPIO_USB_BOOT_EN_REV06, 0);
- s3c_gpio_setpull(GPIO_USB_BOOT_EN_REV06, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_USB_BOOT_EN_REV06, 0);
-
- msleep(100);
-
- gpio_direction_output(GPIO_USB_BOOT_EN, 1);
- gpio_set_value(GPIO_USB_BOOT_EN, 1);
-
- pr_info("[MSM] <%s> USB_BOOT_EN:[%d]\n", __func__,
- gpio_get_value(GPIO_USB_BOOT_EN));
-
- gpio_direction_output(GPIO_USB_BOOT_EN_REV06, 1);
- gpio_set_value(GPIO_USB_BOOT_EN_REV06, 1);
-
- pr_info("[MSM(%d)] <%s> USB_BOOT_EN:[%d]\n", system_rev,
- __func__, gpio_get_value(GPIO_USB_BOOT_EN_REV06));
-
- gpio_direction_output(GPIO_BOOT_SW_SEL, 0);
- s3c_gpio_setpull(GPIO_BOOT_SW_SEL, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_BOOT_SW_SEL, 0);
-
- gpio_direction_output(GPIO_BOOT_SW_SEL_REV06, 0);
- s3c_gpio_setpull(GPIO_BOOT_SW_SEL_REV06, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_BOOT_SW_SEL_REV06, 0);
-
- msleep(100);
-
- gpio_direction_output(GPIO_BOOT_SW_SEL, 1);
- gpio_set_value(GPIO_BOOT_SW_SEL, 1);
-
- pr_info("[MSM] <%s> BOOT_SW_SEL : [%d]\n", __func__,
- gpio_get_value(GPIO_BOOT_SW_SEL));
-
- gpio_direction_output(GPIO_BOOT_SW_SEL_REV06, 1);
- gpio_set_value(GPIO_BOOT_SW_SEL_REV06, 1);
-
- pr_info("[MSM(%d)] <%s> BOOT_SW_SEL : [%d]\n", system_rev,
- __func__, gpio_get_value(GPIO_BOOT_SW_SEL_REV06));
-
- } else { /* system_rev>11 */
- gpio_direction_output(GPIO_USB_BOOT_EN_REV06, 0);
- s3c_gpio_setpull(GPIO_USB_BOOT_EN_REV06, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_USB_BOOT_EN_REV06, 0);
-
- gpio_direction_output(GPIO_BOOT_SW_SEL_REV06, 0);
- s3c_gpio_setpull(GPIO_BOOT_SW_SEL_REV06, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_BOOT_SW_SEL_REV06, 0);
-
- msleep(100);
-
- gpio_direction_output(GPIO_USB_BOOT_EN_REV06, 1);
- gpio_set_value(GPIO_USB_BOOT_EN_REV06, 1);
-
- pr_info("[MSM] <%s> USB_BOOT_EN:[%d]\n", __func__,
- gpio_get_value(GPIO_USB_BOOT_EN_REV06));
-
- gpio_direction_output(GPIO_BOOT_SW_SEL_REV06, 1);
- gpio_set_value(GPIO_BOOT_SW_SEL_REV06, 1);
-
- pr_info("[MSM] <%s> BOOT_SW_SEL : [%d]\n", __func__,
- gpio_get_value(GPIO_BOOT_SW_SEL_REV06));
-
- }
-
- mc->iod->modem_state_changed(mc->iod, STATE_BOOTING);
-
- return 0;
-}
-
-static int mdm6600_boot_off(struct modem_ctl *mc)
-{
- pr_info("[MSM] <%s>\n", __func__);
-
- if (!mc->gpio_flm_uart_sel
-#if defined(CONFIG_MACH_M0_CTC)
- || !mc->gpio_flm_uart_sel_rev06
-#endif
- ) {
- pr_err("[MSM] no gpio data\n");
- return -ENXIO;
- }
-
-#if defined(CONFIG_MACH_M0_DUOSCTC) || defined(CONFIG_MACH_T0_CHN_CTC)
- mdm6600_vbus_off();
-#elif defined(CONFIG_MACH_M0_GRANDECTC)
- if (system_rev >= 14)
- mdm6600_vbus_off();
-#endif
-
- if (system_rev < 11) {
- gpio_direction_output(GPIO_USB_BOOT_EN, 0);
- s3c_gpio_setpull(GPIO_USB_BOOT_EN, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_USB_BOOT_EN, 0);
- gpio_direction_output(GPIO_BOOT_SW_SEL, 0);
- s3c_gpio_setpull(GPIO_BOOT_SW_SEL, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_BOOT_SW_SEL, 0);
-
- } else if (system_rev == 11) {
- gpio_direction_output(GPIO_USB_BOOT_EN, 0);
- s3c_gpio_setpull(GPIO_USB_BOOT_EN, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_USB_BOOT_EN, 0);
-
- gpio_direction_output(GPIO_BOOT_SW_SEL, 0);
- s3c_gpio_setpull(GPIO_BOOT_SW_SEL, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_BOOT_SW_SEL, 0);
-
-#if defined(CONFIG_MACH_M0_CTC)
- gpio_direction_output(GPIO_USB_BOOT_EN_REV06, 0);
- s3c_gpio_setpull(GPIO_USB_BOOT_EN_REV06, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_USB_BOOT_EN_REV06, 0);
-
- gpio_direction_output(GPIO_BOOT_SW_SEL_REV06, 0);
- s3c_gpio_setpull(GPIO_BOOT_SW_SEL_REV06, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_BOOT_SW_SEL_REV06, 0);
-#endif
-
- } else { /* system_rev>11 */
-#if defined(CONFIG_MACH_M0_CTC)
- gpio_direction_output(GPIO_USB_BOOT_EN_REV06, 0);
- s3c_gpio_setpull(GPIO_USB_BOOT_EN_REV06, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_USB_BOOT_EN_REV06, 0);
-
- gpio_direction_output(GPIO_BOOT_SW_SEL_REV06, 0);
- s3c_gpio_setpull(GPIO_BOOT_SW_SEL_REV06, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_BOOT_SW_SEL_REV06, 0);
-#endif
- }
-
-#if defined(CONFIG_MACH_M0_CTC)
- if (max7693_muic_cp_usb_state()) {
- msleep(30);
- gpio_direction_output(GPIO_USB_BOOT_EN, 1);
- s3c_gpio_setpull(GPIO_USB_BOOT_EN, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_USB_BOOT_EN, 1);
- gpio_direction_output(GPIO_USB_BOOT_EN_REV06, 1);
- s3c_gpio_setpull(GPIO_USB_BOOT_EN_REV06, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_USB_BOOT_EN_REV06, 1);
- }
-#endif
-
- gpio_set_value(GPIO_BOOT_SW_SEL, 0);
-
- return 0;
-}
-
-
-static int mdm6600_force_crash_exit(struct modem_ctl *mc)
-{
- pr_info("[MSM] <%s>\n", __func__);
-
- if (!mc->gpio_cp_reset || !mc->gpio_cp_on) {
- pr_err("[MSM] no gpio data\n");
- return -ENXIO;
- }
-
- s3c_gpio_cfgpin(mc->gpio_cp_dump_int, S3C_GPIO_OUTPUT);
- gpio_direction_output(mc->gpio_cp_dump_int, 1);
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_cp_on, 0);
- gpio_set_value(mc->gpio_cp_reset, 1);
-
- return 0;
-}
-
-static irqreturn_t phone_active_irq_handler(int irq, void *arg)
-{
- struct modem_ctl *mc = (struct modem_ctl *)arg;
- int phone_reset = 0;
- int phone_active = 0;
- int phone_state = 0;
- int cp_dump_int = 0;
-
- if (!mc->gpio_cp_reset ||
- !mc->gpio_phone_active || !mc->gpio_cp_dump_int) {
- pr_err("[MSM] no gpio data\n");
- return IRQ_HANDLED;
- }
-
- phone_reset = gpio_get_value(mc->gpio_cp_reset);
- phone_active = gpio_get_value(mc->gpio_phone_active);
- cp_dump_int = gpio_get_value(mc->gpio_cp_dump_int);
-
- pr_info("[MSM] <%s> phone_reset=%d, phone_active=%d, cp_dump_int=%d\n",
- __func__, phone_reset, phone_active, cp_dump_int);
-
- if (phone_reset && phone_active) {
- phone_state = STATE_ONLINE;
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, phone_state);
- } else if (phone_reset && !phone_active) {
- if (mc->phone_state == STATE_ONLINE) {
- phone_state = STATE_CRASH_EXIT;
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod,
- phone_state);
- }
- } else {
- phone_state = STATE_OFFLINE;
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, phone_state);
- }
-
- if (phone_active)
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_LOW);
- else
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_HIGH);
-
- pr_info("[MSM] <%s> phone_state = %d\n", __func__, phone_state);
-
- return IRQ_HANDLED;
-}
-
-#if defined(CONFIG_SIM_DETECT)
-static irqreturn_t sim_detect_irq_handler(int irq, void *_mc)
-{
- struct modem_ctl *mc = (struct modem_ctl *)_mc;
-
- pr_info("[MSM] <%s> gpio_sim_detect = %d\n",
- __func__, gpio_get_value(mc->gpio_sim_detect));
-
- if (mc->iod && mc->iod->sim_state_changed)
- mc->iod->sim_state_changed(mc->iod,
- !gpio_get_value(mc->gpio_sim_detect));
-
- return IRQ_HANDLED;
-}
-#endif
-
-static void mdm6600_get_ops(struct modem_ctl *mc)
-{
- mc->ops.modem_on = mdm6600_on;
- mc->ops.modem_off = mdm6600_off;
- mc->ops.modem_reset = mdm6600_reset;
- mc->ops.modem_boot_on = mdm6600_boot_on;
- mc->ops.modem_boot_off = mdm6600_boot_off;
- mc->ops.modem_force_crash_exit = mdm6600_force_crash_exit;
-}
-
-int mdm6600_init_modemctl_device(struct modem_ctl *mc, struct modem_data *pdata)
-{
- int ret = 0;
- struct platform_device *pdev;
-
- mc->gpio_cp_on = pdata->gpio_cp_on;
- mc->gpio_reset_req_n = pdata->gpio_reset_req_n;
- mc->gpio_cp_reset = pdata->gpio_cp_reset;
- mc->gpio_pda_active = pdata->gpio_pda_active;
- mc->gpio_phone_active = pdata->gpio_phone_active;
- mc->gpio_cp_dump_int = pdata->gpio_cp_dump_int;
- mc->gpio_flm_uart_sel = pdata->gpio_flm_uart_sel;
-#if defined(CONFIG_MACH_M0_CTC)
- mc->gpio_flm_uart_sel_rev06 = pdata->gpio_flm_uart_sel_rev06;
-#endif
- mc->gpio_cp_warm_reset = pdata->gpio_cp_warm_reset;
- mc->gpio_sim_detect = pdata->gpio_sim_detect;
-
-#if defined(CONFIG_LINK_DEVICE_PLD)
- mc->gpio_fpga_cs_n = pdata->gpio_fpga2_cs_n;
-#endif
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_cp_on, 0);
-
- pdev = to_platform_device(mc->dev);
- mc->irq_phone_active = platform_get_irq_byname(pdev, "cp_active_irq");
- pr_info("[MSM] <%s> PHONE_ACTIVE IRQ# = %d\n",
- __func__, mc->irq_phone_active);
-
- mdm6600_get_ops(mc);
-
- ret = request_irq(mc->irq_phone_active,
- phone_active_irq_handler,
- IRQF_TRIGGER_HIGH, "msm_active", mc);
- if (ret) {
- pr_err("[MSM] <%s> failed to request_irq IRQ# %d (err=%d)\n",
- __func__, mc->irq_phone_active, ret);
- return ret;
- }
-
- ret = enable_irq_wake(mc->irq_phone_active);
- if (ret) {
- pr_err("[MSM] %s: failed to enable_irq_wake IRQ# %d (err=%d)\n",
- __func__, mc->irq_phone_active, ret);
- free_irq(mc->irq_phone_active, mc);
- return ret;
- }
-
-#if defined(CONFIG_SIM_DETECT)
- mc->irq_sim_detect = platform_get_irq_byname(pdev, "sim_irq");
- pr_info("[MSM] <%s> SIM_DECTCT IRQ# = %d\n",
- __func__, mc->irq_sim_detect);
-
- if (mc->irq_sim_detect) {
- ret = request_irq(mc->irq_sim_detect, sim_detect_irq_handler,
- IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
- "msm_sim_detect", mc);
- if (ret) {
- mif_err("[MSM] failed to request_irq: %d\n", ret);
- mc->sim_state.online = false;
- mc->sim_state.changed = false;
- return ret;
- }
-
- ret = enable_irq_wake(mc->irq_sim_detect);
- if (ret) {
- mif_err("[MSM] failed to enable_irq_wake: %d\n", ret);
- free_irq(mc->irq_sim_detect, mc);
- mc->sim_state.online = false;
- mc->sim_state.changed = false;
- return ret;
- }
-
- /* initialize sim_state => insert: gpio=0, remove: gpio=1 */
- mc->sim_state.online = !gpio_get_value(mc->gpio_sim_detect);
- }
-#endif
-
- return ret;
-}
-#endif
diff --git a/drivers/misc/modem_if_u1/modem_modemctl_device_sprd8803.c b/drivers/misc/modem_if_u1/modem_modemctl_device_sprd8803.c
deleted file mode 100644
index c352e89..0000000
--- a/drivers/misc/modem_if_u1/modem_modemctl_device_sprd8803.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_modemctl_device_sprd8803.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/platform_device.h>
-#include <linux/cma.h>
-#include <plat/devs.h>
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include <plat/gpio-cfg.h>
-
-spinlock_t irq_lock;
-int irq_lock_flag;
-
-int sprd_boot_done;
-extern int spi_thread_restart(void);
-
-static int sprd8803_on(struct modem_ctl *mc)
-{
- if (!mc->gpio_cp_on || !mc->gpio_pda_active) {
- pr_err("[MODEM_IF] no gpio data\n");
- return -ENXIO;
- }
-
- s3c_gpio_cfgpin(EXYNOS4_GPA1(4), S3C_GPIO_SFN(2));
- s3c_gpio_cfgpin(EXYNOS4_GPA1(5), S3C_GPIO_SFN(2));
-
-#ifdef CONFIG_SEC_DUAL_MODEM_MODE
- gpio_set_value(mc->gpio_sim_io_sel, 1);
- gpio_set_value(mc->gpio_cp_ctrl1, 0);
- gpio_set_value(mc->gpio_cp_ctrl2, 1);
-#endif
- msleep(100);
- pr_info("[MODEM_IF] %s\n", __func__);
- gpio_set_value(mc->gpio_cp_on, 1);
- gpio_set_value(mc->gpio_pda_active, 1);
-
- spin_lock(&irq_lock);
- if (!irq_lock_flag) {
- enable_irq(mc->irq_phone_active);
- enable_irq(gpio_to_irq(mc->gpio_cp_dump_int));
- enable_irq_wake(mc->irq_phone_active);
- enable_irq_wake(gpio_to_irq(mc->gpio_cp_dump_int));
- irq_lock_flag = 1;
- }
- spin_unlock(&irq_lock);
-
- mc->phone_state = STATE_BOOTING;
-
- return 0;
-}
-
-static int sprd8803_off(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] %s\n", __func__);
-
- if (!mc->gpio_cp_on) {
- mif_err("no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_on, 0);
-
- spin_lock(&irq_lock);
- if (irq_lock_flag) {
- disable_irq(mc->irq_phone_active);
- disable_irq(gpio_to_irq(mc->gpio_cp_dump_int));
- disable_irq_wake(mc->irq_phone_active);
- disable_irq_wake(gpio_to_irq(mc->gpio_cp_dump_int));
- irq_lock_flag = 0;
- }
- spin_unlock(&irq_lock);
-
- mc->phone_state = STATE_OFFLINE;
-
- return 0;
-}
-
-static int sprd8803_reset(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] %s\n", __func__);
-
- spi_thread_restart();
-
- return 0;
-}
-
-static int sprd8803_boot_on(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] %s %d\n", __func__, mc->phone_state);
- return mc->phone_state;
-}
-
-static int sprd8803_boot_off(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] %s\n", __func__);
- spi_sema_init();
- return 0;
-}
-
-static int sprd8803_dump_reset(struct modem_ctl *mc)
-{
- pr_info("[MODEM_IF] %s\n", __func__);
-
- if (!mc->gpio_ap_cp_int2)
- return -ENXIO;
-
- gpio_set_value(mc->gpio_ap_cp_int2, 0);
- mc->phone_state = STATE_OFFLINE;
- msleep(100);
- gpio_set_value(mc->gpio_ap_cp_int2, 1);
-
- return 0;
-}
-
-static irqreturn_t phone_active_irq_handler(int irq, void *_mc)
-{
- int phone_reset = 0;
- int phone_active_value = 0;
- int cp_dump_value = 0;
- int phone_state = 0;
- struct modem_ctl *mc = (struct modem_ctl *)_mc;
-
- disable_irq_nosync(mc->irq_phone_active);
-
- if (!mc->gpio_phone_active ||
- !mc->gpio_cp_dump_int) {
- pr_err("[MODEM_IF] no gpio data\n");
- goto exit;
- }
-
- if (!sprd_boot_done)
- goto exit;
-
- phone_active_value = gpio_get_value(mc->gpio_phone_active);
- cp_dump_value = gpio_get_value(mc->gpio_cp_dump_int);
-
- pr_err("PA EVENT : pa=%d, cp_dump=%d\n",
- phone_active_value, cp_dump_value);
-
- if (phone_active_value)
- phone_state = STATE_ONLINE;
- else
- phone_state = STATE_OFFLINE;
-
- if (phone_active_value && cp_dump_value)
- phone_state = STATE_CRASH_EXIT;
-
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, phone_state);
-
- if (mc->bootd && mc->bootd->modem_state_changed)
- mc->bootd->modem_state_changed(mc->bootd, phone_state);
-
-exit:
- enable_irq(mc->irq_phone_active);
-
- return IRQ_HANDLED;
-}
-
-static void sprd8803_get_ops(struct modem_ctl *mc)
-{
- mc->ops.modem_on = sprd8803_on;
- mc->ops.modem_off = sprd8803_off;
- mc->ops.modem_reset = sprd8803_reset;
- mc->ops.modem_boot_on = sprd8803_boot_on;
- mc->ops.modem_boot_off = sprd8803_boot_off;
- mc->ops.modem_dump_reset = sprd8803_dump_reset;
- mc->ops.modem_force_crash_exit = sprd8803_dump_reset;
-}
-
-int sprd8803_init_modemctl_device(struct modem_ctl *mc,
- struct modem_data *pdata)
-{
- int ret = 0;
- int irq_cp_dump_int;
- struct platform_device *pdev;
-
- mc->gpio_cp_on = pdata->gpio_cp_on;
- mc->gpio_pda_active = pdata->gpio_pda_active;
- mc->gpio_phone_active = pdata->gpio_phone_active;
- mc->gpio_cp_dump_int = pdata->gpio_cp_dump_int;
- mc->gpio_ap_cp_int1 = pdata->gpio_ap_cp_int1;
- mc->gpio_ap_cp_int2 = pdata->gpio_ap_cp_int2;
-
-#ifdef CONFIG_SEC_DUAL_MODEM_MODE
- mc->gpio_sim_io_sel = pdata->gpio_sim_io_sel;
- mc->gpio_cp_ctrl1 = pdata->gpio_cp_ctrl1;
- mc->gpio_cp_ctrl2 = pdata->gpio_cp_ctrl2;
-#endif
-
-
- pdev = to_platform_device(mc->dev);
- mc->irq_phone_active = gpio_to_irq(mc->gpio_phone_active);
- irq_cp_dump_int = gpio_to_irq(mc->gpio_cp_dump_int);
-
- sprd8803_get_ops(mc);
-
- ret = request_irq(mc->irq_phone_active, phone_active_irq_handler,
- IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
- "phone_active", mc);
- if (ret) {
- pr_err("[MODEM_IF] %s: failed to request_irq:%d\n",
- __func__, ret);
- return ret;
- }
-
- ret = enable_irq_wake(mc->irq_phone_active);
- if (ret) {
- pr_err("[MODEM_IF] %s: failed to enable_irq_wake:%d\n",
- __func__, ret);
- free_irq(mc->irq_phone_active, mc);
- }
-
- ret = request_irq(irq_cp_dump_int, phone_active_irq_handler,
- IRQF_TRIGGER_RISING,
- "cp_dump_int", mc);
- if (ret) {
- pr_err("[MODEM_IF] %s: failed to request_irq:%d\n",
- __func__, ret);
- return ret;
- }
-
- ret = enable_irq_wake(irq_cp_dump_int);
- if (ret) {
- pr_err("[MODEM_IF] %s: failed to enable_irq_wake:%d\n",
- __func__, ret);
- free_irq(irq_cp_dump_int, mc);
- }
-
- irq_lock_flag = 1;
- spin_lock_init(&irq_lock);
-
- spin_lock(&irq_lock);
- if (irq_lock_flag) {
- disable_irq(mc->irq_phone_active);
- disable_irq(gpio_to_irq(mc->gpio_cp_dump_int));
- disable_irq_wake(mc->irq_phone_active);
- disable_irq_wake(gpio_to_irq(mc->gpio_cp_dump_int));
- irq_lock_flag = 0;
- }
- spin_unlock(&irq_lock);
-
- return ret;
-}
diff --git a/drivers/misc/modem_if_u1/modem_modemctl_device_xmm6260.c b/drivers/misc/modem_if_u1/modem_modemctl_device_xmm6260.c
deleted file mode 100644
index c2d5067..0000000
--- a/drivers/misc/modem_if_u1/modem_modemctl_device_xmm6260.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_modemctl_device_xmm6260.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/platform_device.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-
-static int xmm6260_on(struct modem_ctl *mc)
-{
- mif_info("xmm6260_on()\n");
-
- if (!mc->gpio_cp_reset || !mc->gpio_cp_on || !mc->gpio_reset_req_n) {
- mif_err("no gpio data\n");
- return -ENXIO;
- }
-
- if (mc->gpio_revers_bias_clear)
- mc->gpio_revers_bias_clear();
-
-
- gpio_set_value(mc->gpio_cp_on, 0);
- gpio_set_value(mc->gpio_cp_reset, 0);
- udelay(160);
- gpio_set_value(mc->gpio_pda_active, 0);
- msleep(500); /* must be >500ms for CP can boot up under -20 degrees */
- gpio_set_value(mc->gpio_cp_reset, 1);
- udelay(160);
- gpio_set_value(mc->gpio_reset_req_n, 1);
- udelay(160);
- gpio_set_value(mc->gpio_cp_on, 1);
- udelay(60);
- gpio_set_value(mc->gpio_cp_on, 0);
- msleep(20);
-
- if (mc->gpio_revers_bias_restore)
- mc->gpio_revers_bias_restore();
-
-
- gpio_set_value(mc->gpio_pda_active, 1);
-
- mc->phone_state = STATE_BOOTING;
-
- return 0;
-
-}
-
-static int xmm6260_off(struct modem_ctl *mc)
-{
- mif_info("xmm6260_off()\n");
-
- if (!mc->gpio_cp_reset || !mc->gpio_cp_on) {
- mif_err("no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_on, 0);
- gpio_set_value(mc->gpio_cp_reset, 0);
-
- mc->phone_state = STATE_OFFLINE;
-
- return 0;
-}
-
-
-static int xmm6260_reset(struct modem_ctl *mc)
-{
-
- mif_info("xmm6260_reset()\n");
-
- if (!mc->gpio_cp_reset || !mc->gpio_reset_req_n)
- return -ENXIO;
-
- if (mc->gpio_revers_bias_clear)
- mc->gpio_revers_bias_clear();
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_reset_req_n, 0);
-
- mc->phone_state = STATE_OFFLINE;
-
- msleep(20);
-
- gpio_set_value(mc->gpio_cp_reset, 1);
-/* TODO: check the reset timming with C2C connection */
- udelay(160);
-
- gpio_set_value(mc->gpio_reset_req_n, 1);
- udelay(100);
-
- gpio_set_value(mc->gpio_cp_on, 1);
- udelay(60);
- gpio_set_value(mc->gpio_cp_on, 0);
- msleep(20);
-
- if (mc->gpio_revers_bias_restore)
- mc->gpio_revers_bias_restore();
-
- mc->phone_state = STATE_BOOTING;
-
- return 0;
-}
-
-static int xmm6260_boot_on(struct modem_ctl *mc)
-{
- mif_info("xmm6260_boot_on()\n");
-
- if (!mc->gpio_flm_uart_sel) {
- mif_err("no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_flm_uart_sel, 0);
-
- return 0;
-}
-
-static int xmm6260_boot_off(struct modem_ctl *mc)
-{
- mif_info("xmm6260_boot_off()\n");
-
- if (!mc->gpio_flm_uart_sel) {
- mif_err("no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_flm_uart_sel, 1);
-
- return 0;
-}
-
-static irqreturn_t phone_active_irq_handler(int irq, void *_mc)
-{
- int phone_reset = 0;
- int phone_active_value = 0;
- int cp_dump_value = 0;
- int phone_state = 0;
- struct modem_ctl *mc = (struct modem_ctl *)_mc;
- struct link_device *ld;
-
- disable_irq_nosync(mc->irq_phone_active);
-
- if (!mc->gpio_cp_reset || !mc->gpio_phone_active ||
- !mc->gpio_cp_dump_int) {
- mif_err("no gpio data\n");
- return IRQ_HANDLED;
- }
-
- phone_reset = gpio_get_value(mc->gpio_cp_reset);
- phone_active_value = gpio_get_value(mc->gpio_phone_active);
- cp_dump_value = gpio_get_value(mc->gpio_cp_dump_int);
-
- mif_info("PA EVENT : reset =%d, pa=%d, cp_dump=%d\n",
- phone_reset, phone_active_value, cp_dump_value);
-
- if (phone_reset && phone_active_value)
- phone_state = STATE_BOOTING;
- else if (phone_reset && !phone_active_value) {
- if (mc->phone_state == STATE_BOOTING)
- goto set_type;
- if (cp_dump_value)
- phone_state = STATE_CRASH_EXIT;
- else
- phone_state = STATE_CRASH_RESET;
- if (mc->iod) {
- ld = get_current_link(mc->iod);
- if (ld->terminate_comm)
- ld->terminate_comm(ld, mc->iod);
- }
- } else
- phone_state = STATE_OFFLINE;
-
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, phone_state);
-
- if (mc->bootd && mc->bootd->modem_state_changed)
- mc->bootd->modem_state_changed(mc->bootd, phone_state);
-
-set_type:
- if (phone_active_value)
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_LOW);
- else
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_HIGH);
- enable_irq(mc->irq_phone_active);
-
- return IRQ_HANDLED;
-}
-
-static irqreturn_t sim_detect_irq_handler(int irq, void *_mc)
-{
- struct modem_ctl *mc = (struct modem_ctl *)_mc;
-
- if (mc->iod && mc->iod->sim_state_changed)
- mc->iod->sim_state_changed(mc->iod,
- !gpio_get_value(mc->gpio_sim_detect));
-
- return IRQ_HANDLED;
-}
-
-static void xmm6260_get_ops(struct modem_ctl *mc)
-{
- mc->ops.modem_on = xmm6260_on;
- mc->ops.modem_off = xmm6260_off;
- mc->ops.modem_reset = xmm6260_reset;
- mc->ops.modem_boot_on = xmm6260_boot_on;
- mc->ops.modem_boot_off = xmm6260_boot_off;
-}
-
-int xmm6260_init_modemctl_device(struct modem_ctl *mc,
- struct modem_data *pdata)
-{
- int ret;
- struct platform_device *pdev;
-
- mc->gpio_cp_on = pdata->gpio_cp_on;
- mc->gpio_reset_req_n = pdata->gpio_reset_req_n;
- mc->gpio_cp_reset = pdata->gpio_cp_reset;
- mc->gpio_pda_active = pdata->gpio_pda_active;
- mc->gpio_phone_active = pdata->gpio_phone_active;
- mc->gpio_cp_dump_int = pdata->gpio_cp_dump_int;
- mc->gpio_flm_uart_sel = pdata->gpio_flm_uart_sel;
- mc->gpio_cp_warm_reset = pdata->gpio_cp_warm_reset;
- mc->gpio_revers_bias_clear = pdata->gpio_revers_bias_clear;
- mc->gpio_revers_bias_restore = pdata->gpio_revers_bias_restore;
- mc->gpio_sim_detect = pdata->gpio_sim_detect;
-
- pdev = to_platform_device(mc->dev);
- /* mc->irq_phone_active = platform_get_irq(pdev, 0); */
- mc->irq_phone_active = gpio_to_irq(mc->gpio_phone_active);
-
- if (mc->gpio_sim_detect)
- mc->irq_sim_detect = gpio_to_irq(mc->gpio_sim_detect);
-
- xmm6260_get_ops(mc);
-
- /* initialize phone active */
- ret = request_irq(mc->irq_phone_active, phone_active_irq_handler,
- IRQF_NO_SUSPEND | IRQF_TRIGGER_HIGH,
- "phone_active", mc);
- if (ret) {
- mif_err("failed to request_irq:%d\n", ret);
- goto err_phone_active_request_irq;
- }
-
- ret = enable_irq_wake(mc->irq_phone_active);
- if (ret) {
- mif_err("failed to enable_irq_wake:%d\n", ret);
- goto err_phone_active_set_wake_irq;
- }
-
- /* initialize sim_state if gpio_sim_detect exists */
- mc->sim_state.online = false;
- mc->sim_state.changed = false;
- if (mc->gpio_sim_detect) {
- ret = request_irq(mc->irq_sim_detect, sim_detect_irq_handler,
- IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
- "sim_detect", mc);
- if (ret) {
- mif_err("failed to request_irq: %d\n", ret);
- goto err_sim_detect_request_irq;
- }
-
- ret = enable_irq_wake(mc->irq_sim_detect);
- if (ret) {
- mif_err("failed to enable_irq_wake: %d\n", ret);
- goto err_sim_detect_set_wake_irq;
- }
-
- /* initialize sim_state => insert: gpio=0, remove: gpio=1 */
- mc->sim_state.online = !gpio_get_value(mc->gpio_sim_detect);
- }
-
- return ret;
-
-err_sim_detect_set_wake_irq:
- free_irq(mc->irq_sim_detect, mc);
-err_sim_detect_request_irq:
- mc->sim_state.online = false;
- mc->sim_state.changed = false;
-err_phone_active_set_wake_irq:
- free_irq(mc->irq_phone_active, mc);
-err_phone_active_request_irq:
- return ret;
-}
diff --git a/drivers/misc/modem_if_u1/modem_modemctl_device_xmm6262.c b/drivers/misc/modem_if_u1/modem_modemctl_device_xmm6262.c
deleted file mode 100644
index 518bb8f..0000000
--- a/drivers/misc/modem_if_u1/modem_modemctl_device_xmm6262.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_modemctl_device_xmm6262.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#define DEBUG
-
-#include <linux/init.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/platform_device.h>
-#include <linux/cma.h>
-#include <plat/devs.h>
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-
-static int xmm6262_on(struct modem_ctl *mc)
-{
- mif_info("\n");
-
- if (!mc->gpio_cp_reset || !mc->gpio_cp_on || !mc->gpio_reset_req_n) {
- mif_err("no gpio data\n");
- return -ENXIO;
- }
-
- if (mc->gpio_revers_bias_clear)
- mc->gpio_revers_bias_clear();
-
-#ifdef CONFIG_SEC_DUAL_MODEM_MODE
- gpio_set_value(mc->gpio_sim_io_sel, 0);
- gpio_set_value(mc->gpio_cp_ctrl1, 1);
- gpio_set_value(mc->gpio_cp_ctrl2, 0);
-#endif
-
- /* TODO */
- gpio_set_value(mc->gpio_reset_req_n, 0);
- gpio_set_value(mc->gpio_cp_on, 0);
- gpio_set_value(mc->gpio_cp_reset, 0);
- msleep(100);
- gpio_set_value(mc->gpio_cp_reset, 1);
- /* If XMM6262 was connected with C2C, AP wait 50ms to BB Reset*/
- msleep(50);
- gpio_set_value(mc->gpio_reset_req_n, 1);
-
- gpio_set_value(mc->gpio_cp_on, 1);
- udelay(60);
- gpio_set_value(mc->gpio_cp_on, 0);
- msleep(20);
-
- mc->phone_state = STATE_BOOTING;
-
- if (mc->gpio_revers_bias_restore)
- mc->gpio_revers_bias_restore();
- gpio_set_value(mc->gpio_pda_active, 1);
-
-
- return 0;
-}
-
-static int xmm6262_off(struct modem_ctl *mc)
-{
- mif_info("\n");
-
- if (!mc->gpio_cp_reset || !mc->gpio_cp_on) {
- mif_err("no gpio data\n");
- return -ENXIO;
- }
-
- gpio_set_value(mc->gpio_cp_on, 0);
- gpio_set_value(mc->gpio_cp_reset, 0);
-
- return 0;
-}
-
-static int xmm6262_reset(struct modem_ctl *mc)
-{
- mif_info("\n");
-
- if (!mc->gpio_cp_reset || !mc->gpio_reset_req_n)
- return -ENXIO;
-
- if (mc->gpio_revers_bias_clear)
- mc->gpio_revers_bias_clear();
-
- gpio_set_value(mc->gpio_cp_reset, 0);
- gpio_set_value(mc->gpio_reset_req_n, 0);
-
- mc->phone_state = STATE_OFFLINE;
-
- msleep(20);
-
- gpio_set_value(mc->gpio_cp_reset, 1);
- /* TODO: check the reset timming with C2C connection */
- udelay(160);
-
- gpio_set_value(mc->gpio_reset_req_n, 1);
- udelay(100);
-
- gpio_set_value(mc->gpio_cp_on, 1);
- udelay(60);
- gpio_set_value(mc->gpio_cp_on, 0);
- msleep(20);
-
- if (mc->gpio_revers_bias_restore)
- mc->gpio_revers_bias_restore();
-
- mc->phone_state = STATE_BOOTING;
-
- return 0;
-}
-
-static irqreturn_t phone_active_irq_handler(int irq, void *_mc)
-{
- int phone_reset = 0;
- int phone_active_value = 0;
- int cp_dump_value = 0;
- int phone_state = 0;
- struct modem_ctl *mc = (struct modem_ctl *)_mc;
-
- disable_irq_nosync(mc->irq_phone_active);
-
- if (!mc->gpio_cp_reset || !mc->gpio_phone_active ||
- !mc->gpio_cp_dump_int) {
- mif_err("no gpio data\n");
- return IRQ_HANDLED;
- }
-
- phone_reset = gpio_get_value(mc->gpio_cp_reset);
- phone_active_value = gpio_get_value(mc->gpio_phone_active);
- cp_dump_value = gpio_get_value(mc->gpio_cp_dump_int);
-
- mif_info("PA EVENT : reset =%d, pa=%d, cp_dump=%d\n",
- phone_reset, phone_active_value, cp_dump_value);
-
- if (phone_reset && phone_active_value) {
- phone_state = STATE_BOOTING;
- } else if (mc->dev->power.is_suspended && !phone_active_value) {
- /*fixing dpm timeout by port2 resume retry*/
- mif_err("CP reset while dpm resume\n");
- xmm6262_off(mc);
- phone_state = STATE_CRASH_RESET;
- } else if (phone_reset && !phone_active_value) {
- phone_state =
- (cp_dump_value) ? STATE_CRASH_EXIT : STATE_CRASH_RESET;
- } else {
- phone_state = STATE_OFFLINE;
- }
-
- if (mc->iod && mc->iod->modem_state_changed)
- mc->iod->modem_state_changed(mc->iod, phone_state);
-
- if (mc->bootd && mc->bootd->modem_state_changed)
- mc->bootd->modem_state_changed(mc->bootd, phone_state);
-
- if (phone_active_value)
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_LOW);
- else
- irq_set_irq_type(mc->irq_phone_active, IRQ_TYPE_LEVEL_HIGH);
- enable_irq(mc->irq_phone_active);
-
- return IRQ_HANDLED;
-}
-
-#ifdef CONFIG_FAST_BOOT
-#include <linux/reboot.h>
-extern bool fake_shut_down;
-static void mif_sim_detect_complete(struct modem_ctl *mc)
-{
- if (mc->sim_shutdown_req) {
- mif_info("fake shutdown sim changed shutdown\n");
- kernel_power_off();
- /*kernel_restart(NULL);*/
- mc->sim_shutdown_req = false;
- }
-}
-
-static int mif_init_sim_shutdown(struct modem_ctl *mc)
-{
- mc->sim_shutdown_req = false;
- mc->modem_complete = mif_sim_detect_complete;
-
- return 0;
-}
-
-static void mif_check_fake_shutdown(struct modem_ctl *mc, bool online)
-{
- if (fake_shut_down && mc->sim_state.online != online)
- mc->sim_shutdown_req = true;
-}
-
-#else
-static inline int mif_init_sim_shutdown(struct modem_ctl *mc) { return 0; }
-#define mif_check_fake_shutdown(a, b) do {} while (0)
-#endif
-
-
-#define SIM_DETECT_DEBUG
-static irqreturn_t sim_detect_irq_handler(int irq, void *_mc)
-{
- struct modem_ctl *mc = (struct modem_ctl *)_mc;
-#ifdef SIM_DETECT_DEBUG
- int val = gpio_get_value(mc->gpio_sim_detect);
- static int unchange;
- static int prev_val;
-
- if (mc->phone_state == STATE_BOOTING) {
- mif_info("BOOTING, reset unchange\n");
- unchange = 0;
- }
-
- if (prev_val == val) {
- if (unchange++ > 50) {
- mif_err("Abnormal SIM detect GPIO irqs");
- disable_irq_nosync(mc->gpio_sim_detect);
- panic("SIM detect IRQ Error");
- }
- } else {
- unchange = 0;
- }
- prev_val = val;
-#endif
- if (mc->iod && mc->iod->sim_state_changed) {
- mif_check_fake_shutdown(mc,
- gpio_get_value(mc->gpio_sim_detect) == mc->sim_polarity
- );
- mc->iod->sim_state_changed(mc->iod,
- gpio_get_value(mc->gpio_sim_detect) == mc->sim_polarity
- );
- }
-
- return IRQ_HANDLED;
-}
-
-static void xmm6262_get_ops(struct modem_ctl *mc)
-{
- mc->ops.modem_on = xmm6262_on;
- mc->ops.modem_off = xmm6262_off;
- mc->ops.modem_reset = xmm6262_reset;
-}
-
-int xmm6262_init_modemctl_device(struct modem_ctl *mc,
- struct modem_data *pdata)
-{
- int ret = 0;
- struct platform_device *pdev;
-
- mc->gpio_reset_req_n = pdata->gpio_reset_req_n;
- mc->gpio_cp_on = pdata->gpio_cp_on;
- mc->gpio_cp_reset = pdata->gpio_cp_reset;
- mc->gpio_pda_active = pdata->gpio_pda_active;
- mc->gpio_phone_active = pdata->gpio_phone_active;
- mc->gpio_cp_dump_int = pdata->gpio_cp_dump_int;
- mc->gpio_ap_dump_int = pdata->gpio_ap_dump_int;
- mc->gpio_flm_uart_sel = pdata->gpio_flm_uart_sel;
- mc->gpio_cp_warm_reset = pdata->gpio_cp_warm_reset;
- mc->gpio_sim_detect = pdata->gpio_sim_detect;
- mc->sim_polarity = pdata->sim_polarity;
-
- mc->gpio_revers_bias_clear = pdata->gpio_revers_bias_clear;
- mc->gpio_revers_bias_restore = pdata->gpio_revers_bias_restore;
-
-#ifdef CONFIG_SEC_DUAL_MODEM_MODE
- mc->gpio_sim_io_sel = pdata->gpio_sim_io_sel;
- mc->gpio_cp_ctrl1 = pdata->gpio_cp_ctrl1;
- mc->gpio_cp_ctrl2 = pdata->gpio_cp_ctrl2;
-#endif
-
-
- pdev = to_platform_device(mc->dev);
- mc->irq_phone_active = gpio_to_irq(mc->gpio_phone_active);
-
- if (mc->gpio_sim_detect)
- mc->irq_sim_detect = gpio_to_irq(mc->gpio_sim_detect);
-
- xmm6262_get_ops(mc);
-
- ret = request_irq(mc->irq_phone_active, phone_active_irq_handler,
- IRQF_NO_SUSPEND | IRQF_TRIGGER_HIGH,
- "phone_active", mc);
- if (ret) {
- mif_err("failed to request_irq:%d\n", ret);
- goto err_phone_active_request_irq;
- }
-
- ret = enable_irq_wake(mc->irq_phone_active);
- if (ret) {
- mif_err("failed to enable_irq_wake:%d\n", ret);
- goto err_phone_active_set_wake_irq;
- }
-
- /* initialize sim_state if gpio_sim_detect exists */
- mc->sim_state.online = false;
- mc->sim_state.changed = false;
- if (mc->gpio_sim_detect) {
- ret = request_irq(mc->irq_sim_detect, sim_detect_irq_handler,
- IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
- "sim_detect", mc);
- if (ret) {
- mif_err("failed to request_irq: %d\n", ret);
- goto err_sim_detect_request_irq;
- }
-
- ret = enable_irq_wake(mc->irq_sim_detect);
- if (ret) {
- mif_err("failed to enable_irq_wake: %d\n", ret);
- goto err_sim_detect_set_wake_irq;
- }
-
- /* initialize sim_state => insert: gpio=0, remove: gpio=1 */
- mc->sim_state.online =
- gpio_get_value(mc->gpio_sim_detect) == mc->sim_polarity;
-
- ret = mif_init_sim_shutdown(mc);
- if (ret) {
- mif_err("failed to sim fake shutdown init: %d\n", ret);
- goto err_sim_detect_set_wake_irq;
- }
- }
-
- return ret;
-
-err_sim_detect_set_wake_irq:
- free_irq(mc->irq_sim_detect, mc);
-err_sim_detect_request_irq:
- mc->sim_state.online = false;
- mc->sim_state.changed = false;
-err_phone_active_set_wake_irq:
- free_irq(mc->irq_phone_active, mc);
-err_phone_active_request_irq:
- return ret;
-}
diff --git a/drivers/misc/modem_if_u1/modem_net_flowcontrol_device.c b/drivers/misc/modem_if_u1/modem_net_flowcontrol_device.c
deleted file mode 100644
index b3f055d..0000000
--- a/drivers/misc/modem_if_u1/modem_net_flowcontrol_device.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_net_flowcontrol_device.c
- *
- * Copyright (C) 2011 Google, Inc.
- * Copyright (C) 2011 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/errno.h>
-#include <linux/types.h>
-#include <linux/fcntl.h>
-#include <linux/sched.h>
-#include <linux/netdevice.h>
-#include <linux/if_arp.h>
-#include <linux/platform_data/modem.h>
-
-#include "modem_prj.h"
-
-
-#define NET_FLOWCONTROL_DEV_NAME_LEN 8
-
-static int modem_net_flowcontrol_device_open(
- struct inode *inode, struct file *filp)
-{
- return 0;
-}
-
-static int modem_net_flowcontrol_device_release(
- struct inode *inode, struct file *filp)
-{
- return 0;
-}
-
-static long modem_net_flowcontrol_device_ioctl(
- struct file *filp, unsigned int cmd, unsigned long arg)
-{
- struct net *this_net;
- struct net_device *ndev;
- char dev_name[NET_FLOWCONTROL_DEV_NAME_LEN];
- u8 chan;
-
- if (copy_from_user(&chan, (void __user *)arg, sizeof(char)))
- return -EFAULT;
-
- if (chan > 15)
- return -ENODEV;
-
- snprintf(dev_name, NET_FLOWCONTROL_DEV_NAME_LEN, "rmnet%d", (int)chan);
- this_net = get_net_ns_by_pid(current->pid);
- ndev = __dev_get_by_name(this_net, dev_name);
- if (ndev == NULL) {
- mif_err("device = %s not exist\n", dev_name);
- return -ENODEV;
- }
-
- switch (cmd) {
- case IOCTL_MODEM_NET_SUSPEND:
- netif_stop_queue(ndev);
- mif_info("NET SUSPEND(%s)\n", dev_name);
- break;
- case IOCTL_MODEM_NET_RESUME:
- netif_wake_queue(ndev);
- mif_info("NET RESUME(%s)\n", dev_name);
- break;
- default:
- return -EINVAL;
- }
- return 0;
-}
-
-static const struct file_operations modem_net_flowcontrol_device_fops = {
- .owner = THIS_MODULE,
- .open = modem_net_flowcontrol_device_open,
- .release = modem_net_flowcontrol_device_release,
- .unlocked_ioctl = modem_net_flowcontrol_device_ioctl,
-};
-
-static int __init modem_net_flowcontrol_device_init(void)
-{
- int ret = 0;
- struct io_device *net_flowcontrol_dev;
-
- net_flowcontrol_dev = kzalloc(sizeof(struct io_device), GFP_KERNEL);
- if (!net_flowcontrol_dev) {
- mif_err("net_flowcontrol_dev io device memory alloc fail\n");
- return -ENOMEM;
- }
-
- net_flowcontrol_dev->miscdev.minor = MISC_DYNAMIC_MINOR;
- net_flowcontrol_dev->miscdev.name = "modem_br";
- net_flowcontrol_dev->miscdev.fops = &modem_net_flowcontrol_device_fops;
-
- ret = misc_register(&net_flowcontrol_dev->miscdev);
- if (ret) {
- mif_err("failed to register misc br device : %s\n",
- net_flowcontrol_dev->miscdev.name);
- kfree(net_flowcontrol_dev);
- }
-
- return ret;
-}
-
-module_init(modem_net_flowcontrol_device_init);
-
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Samsung Modem IF Net Flowcontrol Driver");
diff --git a/drivers/misc/modem_if_u1/modem_prj.h b/drivers/misc/modem_if_u1/modem_prj.h
deleted file mode 100644
index 7141502..0000000
--- a/drivers/misc/modem_if_u1/modem_prj.h
+++ /dev/null
@@ -1,773 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#ifndef __MODEM_PRJ_H__
-#define __MODEM_PRJ_H__
-
-#include <linux/wait.h>
-#include <linux/miscdevice.h>
-#include <linux/skbuff.h>
-#include <linux/completion.h>
-#include <linux/wakelock.h>
-#include <linux/rbtree.h>
-#include <linux/spinlock.h>
-#include <linux/cdev.h>
-#include <linux/types.h>
-
-#define MAX_CPINFO_SIZE 512
-
-#define MAX_LINK_DEVTYPE 3
-
-#define MAX_FMT_DEVS 10
-#define MAX_RAW_DEVS 32
-#define MAX_RFS_DEVS 10
-#define MAX_NUM_IO_DEV (MAX_FMT_DEVS + MAX_RAW_DEVS + MAX_RFS_DEVS)
-
-#define MAX_IOD_RXQ_LEN 2048
-
-#define IOCTL_MODEM_ON _IO('o', 0x19)
-#define IOCTL_MODEM_OFF _IO('o', 0x20)
-#define IOCTL_MODEM_RESET _IO('o', 0x21)
-#define IOCTL_MODEM_BOOT_ON _IO('o', 0x22)
-#define IOCTL_MODEM_BOOT_OFF _IO('o', 0x23)
-#define IOCTL_MODEM_BOOT_DONE _IO('o', 0x24)
-
-#define IOCTL_MODEM_PROTOCOL_SUSPEND _IO('o', 0x25)
-#define IOCTL_MODEM_PROTOCOL_RESUME _IO('o', 0x26)
-
-#define IOCTL_MODEM_STATUS _IO('o', 0x27)
-#define IOCTL_MODEM_DL_START _IO('o', 0x28)
-#define IOCTL_MODEM_FW_UPDATE _IO('o', 0x29)
-
-#define IOCTL_MODEM_NET_SUSPEND _IO('o', 0x30)
-#define IOCTL_MODEM_NET_RESUME _IO('o', 0x31)
-
-#define IOCTL_MODEM_DUMP_START _IO('o', 0x32)
-#define IOCTL_MODEM_DUMP_UPDATE _IO('o', 0x33)
-#define IOCTL_MODEM_FORCE_CRASH_EXIT _IO('o', 0x34)
-#define IOCTL_MODEM_CP_UPLOAD _IO('o', 0x35)
-#define IOCTL_MODEM_DUMP_RESET _IO('o', 0x36)
-
-#if defined(CONFIG_SEC_DUAL_MODEM_MODE)
-#define IOCTL_MODEM_SWITCH_MODEM _IO('o', 0x37)
-#endif
-
-#define IOCTL_DPRAM_SEND_BOOT _IO('o', 0x40)
-#define IOCTL_DPRAM_INIT_STATUS _IO('o', 0x43)
-
-/* ioctl command definitions. */
-#define IOCTL_DPRAM_PHONE_POWON _IO('o', 0xd0)
-#define IOCTL_DPRAM_PHONEIMG_LOAD _IO('o', 0xd1)
-#define IOCTL_DPRAM_NVDATA_LOAD _IO('o', 0xd2)
-#define IOCTL_DPRAM_PHONE_BOOTSTART _IO('o', 0xd3)
-
-#define IOCTL_DPRAM_PHONE_UPLOAD_STEP1 _IO('o', 0xde)
-#define IOCTL_DPRAM_PHONE_UPLOAD_STEP2 _IO('o', 0xdf)
-
-/* ioctl command for IPC Logger */
-#define IOCTL_MIF_LOG_DUMP _IO('o', 0x51)
-#define IOCTL_MIF_DPRAM_DUMP _IO('o', 0x52)
-
-/* modem status */
-#define MODEM_OFF 0
-#define MODEM_CRASHED 1
-#define MODEM_RAMDUMP 2
-#define MODEM_POWER_ON 3
-#define MODEM_BOOTING_NORMAL 4
-#define MODEM_BOOTING_RAMDUMP 5
-#define MODEM_DUMPING 6
-#define MODEM_RUNNING 7
-
-#define HDLC_HEADER_MAX_SIZE 6 /* fmt 3, raw 6, rfs 6 */
-
-#define PSD_DATA_CHID_BEGIN 0x2A
-#define PSD_DATA_CHID_END 0x38
-
-#define PS_DATA_CH_0 10
-#define PS_DATA_CH_LAST 24
-#define RMNET0_CH_ID PS_DATA_CH_0
-
-#define IP6VERSION 6
-
-#define SOURCE_MAC_ADDR {0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC}
-
-/* IP loopback */
-#define CP2AP_LOOPBACK_CHANNEL 30 /* CP -> AP -> CP */
-#define DATA_LOOPBACK_CHANNEL 31 /* AP -> CP -> AP */
-
-/* Debugging features */
-#define MIF_LOG_DIR "/sdcard/log"
-#define MIF_MAX_PATH_LEN 256
-#define MIF_MAX_NAME_LEN 64
-#define MIF_MAX_STR_LEN 32
-
-/* Does modem ctl structure will use state ? or status defined below ?*/
-enum modem_state {
- STATE_OFFLINE,
- STATE_CRASH_RESET, /* silent reset */
- STATE_CRASH_EXIT, /* cp ramdump */
- STATE_BOOTING,
- STATE_ONLINE,
- STATE_NV_REBUILDING, /* <= rebuilding start */
- STATE_LOADER_DONE,
- STATE_SIM_ATTACH,
- STATE_SIM_DETACH,
-#if defined(CONFIG_SEC_DUAL_MODEM_MODE)
- STATE_MODEM_SWITCH,
-#endif
-};
-
-enum com_state {
- COM_NONE,
- COM_ONLINE,
- COM_HANDSHAKE,
- COM_BOOT,
- COM_CRASH,
-};
-
-enum link_mode {
- LINK_MODE_OFFLINE = 0,
- LINK_MODE_BOOT,
- LINK_MODE_IPC,
- LINK_MODE_DLOAD,
- LINK_MODE_ULOAD,
-};
-
-struct sim_state {
- bool online; /* SIM is online? */
- bool changed; /* online is changed? */
-};
-
-#define HDLC_START 0x7F
-#define HDLC_END 0x7E
-#define SIZE_OF_HDLC_START 1
-#define SIZE_OF_HDLC_END 1
-#define MAX_LINK_PADDING_SIZE 3
-
-struct header_data {
- char hdr[HDLC_HEADER_MAX_SIZE];
- unsigned len;
- unsigned frag_len;
- char start; /*hdlc start header 0x7F*/
-};
-
-struct fmt_hdr {
- u16 len;
- u8 control;
-} __packed;
-
-struct raw_hdr {
- u32 len;
- u8 channel;
- u8 control;
-} __packed;
-
-struct rfs_hdr {
- u32 len;
- u8 cmd;
- u8 id;
-} __packed;
-
-struct sipc_fmt_hdr {
- u16 len;
- u8 msg_seq;
- u8 ack_seq;
- u8 main_cmd;
- u8 sub_cmd;
- u8 cmd_type;
-} __packed;
-
-#define SIPC5_START_MASK 0b11111000
-#define SIPC5_CONFIG_MASK 0b00000111
-#define SIPC5_EXT_FIELD_MASK 0b00000011
-
-#define SIPC5_PADDING_EXIST 0b00000100
-#define SIPC5_EXT_FIELD_EXIST 0b00000010
-#define SIPC5_CTL_FIELD_EXIST 0b00000001
-
-#define SIPC5_MAX_HEADER_SIZE 6
-#define SIPC5_HEADER_SIZE_WITH_EXT_LEN 6
-#define SIPC5_HEADER_SIZE_WITH_CTL_FLD 5
-#define SIPC5_MIN_HEADER_SIZE 4
-#define SIPC5_CONFIG_SIZE 1
-#define SIPC5_CH_ID_SIZE 1
-
-#define SIPC5_CONFIG_OFFSET 0
-#define SIPC5_CH_ID_OFFSET 1
-#define SIPC5_LEN_OFFSET 2
-#define SIPC5_CTL_OFFSET 4
-
-#define SIPC5_CH_ID_PDP_0 10
-#define SIPC5_CH_ID_PDP_LAST 24
-#define SIPC5_CH_ID_FMT_0 235
-#define SIPC5_CH_ID_RFS_0 245
-#define SIPC5_CH_ID_MAX 255
-
-#define SIPC5_CH_ID_FLOW_CTRL 255
-#define FLOW_CTRL_SUSPEND ((u8)(0xCA))
-#define FLOW_CTRL_RESUME ((u8)(0xCB))
-
-/* If iod->id is 0, do not need to store to `iodevs_tree_fmt' in SIPC4 */
-#define sipc4_is_not_reserved_channel(ch) ((ch) != 0)
-
-/* Channel 0, 5, 6, 27, 255 are reserved in SIPC5.
- * see SIPC5 spec: 2.2.2 Channel Identification (Ch ID) Field.
- * They do not need to store in `iodevs_tree_fmt'
- */
-#define sipc5_is_not_reserved_channel(ch) \
- ((ch) != 0 && (ch) != 5 && (ch) != 6 && (ch) != 27 && (ch) != 255)
-
-struct sipc5_link_hdr {
- u8 cfg;
- u8 ch;
- u16 len;
- union {
- u8 ctl;
- u16 ext_len;
- };
-} __packed;
-
-struct sipc5_frame_data {
- /* Config octet */
- u8 config;
-
- /* Channel ID */
- u8 ch_id;
-
- /* Control for multiple FMT frame */
- u8 control;
-
- /* Frame configuration set by header analysis */
- bool padding;
- bool ctl_fld;
- bool ext_len;
-
- /* Frame length calculated from the length fields */
- unsigned len;
-
- /* The length of link layer header */
- unsigned hdr_len;
-
- /* The length of received header */
- unsigned hdr_rcvd;
-
- /* The length of data payload */
- unsigned data_len;
-
- /* The length of received data */
- unsigned data_rcvd;
-
- /* Header buffer */
- u8 hdr[SIPC5_MAX_HEADER_SIZE];
-};
-
-struct vnet {
- struct io_device *iod;
-};
-
-/* for fragmented data from link devices */
-struct fragmented_data {
- struct sk_buff *skb_recv;
- struct header_data h_data;
- struct sipc5_frame_data f_data;
- /* page alloc fail retry*/
- unsigned realloc_offset;
-};
-#define fragdata(iod, ld) (&(iod)->fragments[(ld)->link_type])
-
-/** struct skbuff_priv - private data of struct sk_buff
- * this is matched to char cb[48] of struct sk_buff
- */
-struct skbuff_private {
- struct io_device *iod;
- struct link_device *ld;
- struct io_device *real_iod; /* for rx multipdp */
- u8 ch_id;
- u8 control;
-} __packed;
-
-static inline struct skbuff_private *skbpriv(struct sk_buff *skb)
-{
- BUILD_BUG_ON(sizeof(struct skbuff_private) > sizeof(skb->cb));
- return (struct skbuff_private *)&skb->cb;
-}
-
-struct io_device {
- /* rb_tree node for an io device */
- struct rb_node node_chan;
- struct rb_node node_fmt;
-
- /* Name of the IO device */
- char *name;
-
- /* Reference count */
- atomic_t opened;
-
- /* Wait queue for the IO device */
- wait_queue_head_t wq;
-
- /* Misc and net device structures for the IO device */
- struct miscdevice miscdev;
- struct net_device *ndev;
-
- /* ID and Format for channel on the link */
- unsigned id;
- enum modem_link link_types;
- enum dev_format format;
- enum modem_io io_typ;
- enum modem_network net_typ;
-
- /* The name of the application that will use this IO device */
- char *app;
-
- /* Whether or not handover among 2+ link devices */
- bool use_handover;
-
- /* SIPC version */
- enum sipc_ver ipc_version;
-
- /* Rx queue of sk_buff */
- struct sk_buff_head sk_rx_q;
-
- /*
- ** work for each io device, when delayed work needed
- ** use this for private io device rx action
- */
- struct delayed_work rx_work;
-
- struct fragmented_data fragments[LINKDEV_MAX];
-
- /* for multi-frame */
- struct sk_buff *skb[128];
-
- /* called from linkdevice when a packet arrives for this iodevice */
- int (*recv)(struct io_device *iod, struct link_device *ld,
- const char *data, unsigned int len);
- int (*recv_skb)(struct io_device *iod, struct link_device *ld,
- struct sk_buff *skb);
-
- /* inform the IO device that the modem is now online or offline or
- * crashing or whatever...
- */
- void (*modem_state_changed)(struct io_device *iod, enum modem_state);
-
- /* inform the IO device that the SIM is not inserting or removing */
- void (*sim_state_changed)(struct io_device *iod, bool sim_online);
-
- struct modem_ctl *mc;
- struct modem_shared *msd;
-
- struct wake_lock wakelock;
- long waketime;
-
- /* DO NOT use __current_link directly
- * you MUST use skbpriv(skb)->ld in mc, link, etc..
- */
- struct link_device *__current_link;
-};
-#define to_io_device(misc) container_of(misc, struct io_device, miscdev)
-
-/* get_current_link, set_current_link don't need to use locks.
- * In ARM, set_current_link and get_current_link are compiled to
- * each one instruction (str, ldr) as atomic_set, atomic_read.
- * And, the order of set_current_link and get_current_link is not important.
- */
-#define get_current_link(iod) ((iod)->__current_link)
-#define set_current_link(iod, ld) ((iod)->__current_link = (ld))
-
-struct link_device {
- struct list_head list;
- char *name;
-
- enum modem_link link_type;
- unsigned aligned;
-
- /* Maximum IPC device = the last IPC device (e.g. IPC_RFS) + 1 */
- int max_ipc_dev;
-
- /* SIPC version */
- enum sipc_ver ipc_version;
-
- /* Modem data */
- struct modem_data *mdm_data;
-
- /* Modem control */
- struct modem_ctl *mc;
-
- /* Modem shared data */
- struct modem_shared *msd;
-
- /* Operation mode of the link device */
- enum link_mode mode;
-
- struct io_device *fmt_iods[4];
-
- /* TX queue of socket buffers */
- struct sk_buff_head sk_fmt_tx_q;
- struct sk_buff_head sk_raw_tx_q;
- struct sk_buff_head sk_rfs_tx_q;
-
- struct sk_buff_head *skb_txq[MAX_IPC_DEV];
-
- bool raw_tx_suspended; /* for misc dev */
- struct completion raw_tx_resumed_by_cp;
-
- /**
- * This flag is for TX flow control on network interface.
- * This must be set and clear only by a flow control command from CP.
- */
- bool suspend_netif_tx;
-
- struct workqueue_struct *tx_wq;
- struct work_struct tx_work;
- struct delayed_work tx_delayed_work;
-
- struct delayed_work *tx_dwork[MAX_IPC_DEV];
- struct delayed_work fmt_tx_dwork;
- struct delayed_work raw_tx_dwork;
- struct delayed_work rfs_tx_dwork;
-
- struct workqueue_struct *rx_wq;
- struct work_struct rx_work;
- struct delayed_work rx_delayed_work;
-
- enum com_state com_state;
-
- /* init communication - setting link driver */
- int (*init_comm)(struct link_device *ld, struct io_device *iod);
-
- /* terminate communication */
- void (*terminate_comm)(struct link_device *ld, struct io_device *iod);
-
- /* called by an io_device when it has a packet to send over link
- * - the io device is passed so the link device can look at id and
- * format fields to determine how to route/format the packet
- */
- int (*send)(struct link_device *ld, struct io_device *iod,
- struct sk_buff *skb);
-
- int (*udl_start)(struct link_device *ld, struct io_device *iod);
-
- int (*force_dump)(struct link_device *ld, struct io_device *iod);
-
- int (*dump_start)(struct link_device *ld, struct io_device *iod);
-
- int (*modem_update)(struct link_device *ld, struct io_device *iod,
- unsigned long arg);
-
- int (*dump_update)(struct link_device *ld, struct io_device *iod,
- unsigned long arg);
-
- int (*ioctl)(struct link_device *ld, struct io_device *iod,
- unsigned cmd, unsigned long _arg);
-};
-
-/** rx_alloc_skb - allocate an skbuff and set skb's iod, ld
- * @length: length to allocate
- * @iod: struct io_device *
- * @ld: struct link_device *
- *
- * %NULL is returned if there is no free memory.
- */
-static inline struct sk_buff *rx_alloc_skb(unsigned int length,
- struct io_device *iod, struct link_device *ld)
-{
- struct sk_buff *skb;
-
- if (iod->format == IPC_MULTI_RAW || iod->format == IPC_RAW)
- skb = dev_alloc_skb(length);
- else
- skb = alloc_skb(length, GFP_ATOMIC);
-
- if (likely(skb)) {
- skbpriv(skb)->iod = iod;
- skbpriv(skb)->ld = ld;
- }
- return skb;
-}
-
-struct modemctl_ops {
- int (*modem_on) (struct modem_ctl *);
- int (*modem_off) (struct modem_ctl *);
- int (*modem_reset) (struct modem_ctl *);
- int (*modem_boot_on) (struct modem_ctl *);
- int (*modem_boot_off) (struct modem_ctl *);
- int (*modem_boot_done) (struct modem_ctl *);
- int (*modem_force_crash_exit) (struct modem_ctl *);
- int (*modem_dump_reset) (struct modem_ctl *);
-};
-
-/* for IPC Logger */
-struct mif_storage {
- char *addr;
- unsigned int cnt;
-};
-
-/* modem_shared - shared data for all io/link devices and a modem ctl
- * msd : mc : iod : ld = 1 : 1 : M : N
- */
-struct modem_shared {
- /* list of link devices */
- struct list_head link_dev_list;
-
- /* rb_tree root of io devices. */
- struct rb_root iodevs_tree_chan; /* group by channel */
- struct rb_root iodevs_tree_fmt; /* group by dev_format */
-
- /* for IPC Logger */
- struct mif_storage storage;
- spinlock_t lock;
-
- /* loopbacked IP address
- * default is 0.0.0.0 (disabled)
- * after you setted this, you can use IP packet loopback using this IP.
- * exam: echo 1.2.3.4 > /sys/devices/virtual/misc/umts_multipdp/loopback
- */
- __be32 loopback_ipaddr;
-};
-
-struct modem_ctl {
- struct device *dev;
- char *name;
- struct modem_data *mdm_data;
-
- struct modem_shared *msd;
-
- enum modem_state phone_state;
- struct sim_state sim_state;
-
- unsigned gpio_cp_on;
- unsigned gpio_reset_req_n;
- unsigned gpio_cp_reset;
- unsigned gpio_pda_active;
- unsigned gpio_phone_active;
- unsigned gpio_cp_dump_int;
- unsigned gpio_ap_dump_int;
- unsigned gpio_flm_uart_sel;
-#if defined(CONFIG_MACH_M0_CTC)
- unsigned gpio_flm_uart_sel_rev06;
-#endif
- unsigned gpio_cp_warm_reset;
- unsigned gpio_cp_off;
- unsigned gpio_sim_detect;
- unsigned gpio_dynamic_switching;
-
- int irq_phone_active;
- int irq_sim_detect;
-
-#ifdef CONFIG_LTE_MODEM_CMC221
- const struct attribute_group *group;
- unsigned gpio_slave_wakeup;
- unsigned gpio_host_wakeup;
- unsigned gpio_host_active;
- int irq_host_wakeup;
-
- struct delayed_work dwork;
-#endif /*CONFIG_LTE_MODEM_CMC221*/
-
- struct work_struct work;
-
-#if defined(CONFIG_MACH_U1_KOR_LGT)
- unsigned gpio_cp_reset_msm;
- unsigned gpio_boot_sw_sel;
- void (*vbus_on)(void);
- void (*vbus_off)(void);
- bool usb_boot;
-#endif
-
-#ifdef CONFIG_TDSCDMA_MODEM_SPRD8803
- unsigned gpio_ap_cp_int1;
- unsigned gpio_ap_cp_int2;
-#endif
-
-#ifdef CONFIG_SEC_DUAL_MODEM_MODE
- unsigned gpio_sim_io_sel;
- unsigned gpio_cp_ctrl1;
- unsigned gpio_cp_ctrl2;
-#endif
-
-#ifdef CONFIG_LINK_DEVICE_PLD
- unsigned gpio_fpga_cs_n;
-#endif
-
- struct modemctl_ops ops;
- struct io_device *iod;
- struct io_device *bootd;
-
- /* Wakelock for modem_ctl */
- struct wake_lock mc_wake_lock;
-
- void (*gpio_revers_bias_clear)(void);
- void (*gpio_revers_bias_restore)(void);
-
- bool need_switch_to_usb;
- bool sim_polarity;
-
- bool sim_shutdown_req;
- void (*modem_complete)(struct modem_ctl *mc);
-
-};
-
-int sipc4_init_io_device(struct io_device *iod);
-int sipc5_init_io_device(struct io_device *iod);
-
-/**
- * get_dev_name
- * @dev: IPC device (enum dev_format)
- *
- * Returns IPC device name as a string.
- *
- */
-static const inline char *get_dev_name(int dev)
-{
- if (dev == IPC_FMT)
- return "FMT";
- else if (dev == IPC_RAW)
- return "RAW";
- else if (dev == IPC_RFS)
- return "RFS";
- else if (dev == IPC_BOOT)
- return "BOOT";
- else if (dev == IPC_RAMDUMP)
- return "DUMP";
- else
- return "NONE";
-}
-
-/**
- * sipc5_start_valid
- * @cfg: configuration field of an SIPC5 link frame
- *
- * Returns TRUE if the start (configuration field) of an SIPC5 link frame
- * is valid or returns FALSE if it is not valid.
- *
- */
-static inline int sipc5_start_valid(u8 cfg)
-{
- return (cfg & SIPC5_START_MASK) == SIPC5_START_MASK;
-}
-
-/**
- * sipc5_get_hdr_len
- * @cfg: configuration field of an SIPC5 link frame
- *
- * Returns the length of SIPC5 link layer header in an SIPC5 link frame
- *
- */
-static inline unsigned sipc5_get_hdr_len(u8 cfg)
-{
- if (cfg & SIPC5_EXT_FIELD_EXIST) {
- if (cfg & SIPC5_CTL_FIELD_EXIST)
- return SIPC5_HEADER_SIZE_WITH_CTL_FLD;
- else
- return SIPC5_HEADER_SIZE_WITH_EXT_LEN;
- } else {
- return SIPC5_MIN_HEADER_SIZE;
- }
-}
-
-/**
- * sipc5_get_ch_id
- * @frm: pointer to an SIPC5 frame
- *
- * Returns the channel ID in an SIPC5 link frame
- *
- */
-static inline u8 sipc5_get_ch_id(u8 *frm)
-{
- return *(frm + SIPC5_CH_ID_OFFSET);
-}
-
-/**
- * sipc5_get_frame_sz16
- * @frm: pointer to an SIPC5 link frame
- *
- * Returns the length of an SIPC5 link frame without the extended length field
- *
- */
-static inline int sipc5_get_frame_sz16(u8 *frm)
-{
- int sz16 = (int)(*((u16 *)(frm + SIPC5_LEN_OFFSET)));
- return sz16;
-}
-
-/**
- * sipc5_get_frame_sz32
- * @frm: pointer to an SIPC5 frame
- *
- * Returns the length of an SIPC5 link frame with the extended length field
- *
- */
-static inline int sipc5_get_frame_sz32(u8 *frm)
-{
- int sz32 = (int)(*((u32 *)(frm + SIPC5_LEN_OFFSET)));
- return sz32;
-}
-
-/**
- * sipc5_calc_padding_size
- * @len: length of an SIPC5 link frame
- *
- * Returns the padding size for an SIPC5 link frame
- *
- */
-static inline int sipc5_calc_padding_size(int len)
-{
- int residue = len & 0x3;
- return residue ? (4 - residue) : 0;
-}
-
-/**
- * sipc5_check_frame_in_dev
- * @ld: pointer to the link device structure
- * @dev: IPC device (enum dev_format)
- * @frm: pointer to the start of an SIPC5 frame
- * @rest: size of the rest data in the device buffer including this frame
- *
- * Returns
- * < 0 : error
- * == 0 : no data
- * > 0 : valid data
- *
- */
-static inline int sipc5_check_frame_in_dev(struct link_device *ld, int dev,
- u8 *frm, int rest)
-{
- int len;
-
- if (unlikely(!sipc5_start_valid(frm[0]))) {
- mif_err("%s: ERR! %s invalid start 0x%02X\n",
- ld->name, get_dev_name(dev), frm[0]);
- return -EBADMSG;
- }
-
- len = sipc5_get_frame_sz16(frm);
- if (unlikely(len > rest)) {
- mif_err("%s: ERR! %s len %d > rest %d\n",
- ld->name, get_dev_name(dev), len, rest);
- return -EBADMSG;
- }
-
- return len;
-}
-
-extern void set_sromc_access(bool access);
-
-#if defined(CONFIG_TDSCDMA_MODEM_SPRD8803) && defined(CONFIG_LINK_DEVICE_SPI)
-extern int spi_sema_init(void);
-extern int sprd_boot_done;
-#endif
-
-#endif
diff --git a/drivers/misc/modem_if_u1/modem_sim_slot_switch.c b/drivers/misc/modem_if_u1/modem_sim_slot_switch.c
deleted file mode 100644
index 366d0fa..0000000
--- a/drivers/misc/modem_if_u1/modem_sim_slot_switch.c
+++ /dev/null
@@ -1,108 +0,0 @@
-#include <linux/i2c.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/err.h>
-
-#include <plat/gpio-cfg.h>
-
-#include <mach/gpio.h>
-
-extern struct class *sec_class;
-struct device *slot_switch_dev;
-
-static ssize_t get_slot_switch(struct device *dev, struct device_attribute *attr, char *buf)
-{
- int value;
-
- //return '0' slot path is '||', return '1' slot path is 'X'
- value = gpio_get_value(GPIO_UIM_SIM_SEL);
-#if defined(CONFIG_MACH_T0_CHN_CTC)
- if (system_rev <= 7)
- value = (~value & 0x1);
-#endif
- printk("Current Slot is %x\n", value);
-
- return sprintf(buf, "%d\n", value);
-}
-
-static ssize_t set_slot_switch(struct device *dev, struct device_attribute *attr, const char *buf, size_t size)
-{
- int value;
-
- sscanf(buf, "%d", &value);
-
- switch(value) {
- case 0:
-#if defined(CONFIG_MACH_T0_CHN_CTC)
- if (system_rev <= 7)
- gpio_set_value(GPIO_UIM_SIM_SEL, 1);
- else
-#endif
- gpio_set_value(GPIO_UIM_SIM_SEL, 0);
- printk("set slot switch to %x\n", gpio_get_value(GPIO_UIM_SIM_SEL));
- break;
- case 1:
-#if defined(CONFIG_MACH_T0_CHN_CTC)
- if (system_rev <= 7)
- gpio_set_value(GPIO_UIM_SIM_SEL, 0);
- else
-#endif
- gpio_set_value(GPIO_UIM_SIM_SEL, 1);
- printk("set slot switch to %x\n", gpio_get_value(GPIO_UIM_SIM_SEL));
- break;
- default:
- printk("Enter 0 or 1!!\n");
- }
-
- return size;
-}
-
-static DEVICE_ATTR(slot_sel, S_IRUGO | S_IWUSR | S_IWGRP,
- get_slot_switch, set_slot_switch);
-
-static int __init slot_switch_manager_init(void)
-{
- int ret = 0;
- int err = 0;
-
- printk("slot_switch_manager_init\n");
-
- //initailize uim_sim_switch gpio
- err = gpio_request(GPIO_UIM_SIM_SEL, "PDA_ACTIVE");
- if (err) {
- pr_err("fail to request gpio %s, gpio %d, errno %d\n",
- "PDA_ACTIVE", GPIO_UIM_SIM_SEL, err);
- } else {
- gpio_direction_output(GPIO_UIM_SIM_SEL, 1);
- s3c_gpio_setpull(GPIO_UIM_SIM_SEL, S3C_GPIO_PULL_NONE);
-#if defined(CONFIG_MACH_T0_CHN_CTC)
- if (system_rev <= 7)
- gpio_set_value(GPIO_UIM_SIM_SEL, 1);
- else
-#endif
- gpio_set_value(GPIO_UIM_SIM_SEL, 0);
- }
-
- //initailize slot switch device
- slot_switch_dev = device_create(sec_class,
- NULL, 0, NULL, "slot_switch");
- if (IS_ERR(slot_switch_dev))
- pr_err("Failed to create device(switch)!\n");
-
- if (device_create_file(slot_switch_dev, &dev_attr_slot_sel) < 0)
- pr_err("Failed to create device file(%s)!\n",
- dev_attr_slot_sel.attr.name);
-
- return ret;
-}
-
-static void __exit slot_switch_manager_exit(void)
-{
-}
-
-module_init(slot_switch_manager_init);
-module_exit(slot_switch_manager_exit);
-
-MODULE_AUTHOR("SAMSUNG ELECTRONICS CO., LTD");
-MODULE_DESCRIPTION("Slot Switch");
-MODULE_LICENSE("GPL");
diff --git a/drivers/misc/modem_if_u1/modem_utils.c b/drivers/misc/modem_if_u1/modem_utils.c
deleted file mode 100644
index 113a199..0000000
--- a/drivers/misc/modem_if_u1/modem_utils.c
+++ /dev/null
@@ -1,1237 +0,0 @@
-/*
- * Copyright (C) 2011 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-#include <linux/interrupt.h>
-#include <linux/miscdevice.h>
-#include <linux/netdevice.h>
-#include <linux/skbuff.h>
-#include <linux/ip.h>
-#include <net/ip.h>
-#include <linux/tcp.h>
-#include <linux/udp.h>
-#include <linux/rtc.h>
-#include <linux/time.h>
-
-#include <linux/uaccess.h>
-#include <linux/fs.h>
-#include <linux/io.h>
-#include <linux/wait.h>
-#include <linux/time.h>
-#include <linux/sched.h>
-#include <linux/slab.h>
-#include <linux/mutex.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/wakelock.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include "modem_variation.h"
-#include "modem_utils.h"
-
-#define CMD_SUSPEND ((unsigned short)(0x00CA))
-#define CMD_RESUME ((unsigned short)(0x00CB))
-
-#define TX_SEPARATOR "mif: >>>>>>>>>> Outgoing packet "
-#define RX_SEPARATOR "mif: Incoming packet <<<<<<<<<<"
-#define LINE_SEPARATOR \
- "mif: ------------------------------------------------------------"
-#define LINE_BUFF_SIZE 80
-
-static const char *hex = "0123456789abcdef";
-
-void ts2utc(struct timespec *ts, struct utc_time *utc)
-{
- struct tm tm;
-
- time_to_tm((ts->tv_sec - (sys_tz.tz_minuteswest * 60)), 0, &tm);
- utc->year = 1900 + tm.tm_year;
- utc->mon = 1 + tm.tm_mon;
- utc->day = tm.tm_mday;
- utc->hour = tm.tm_hour;
- utc->min = tm.tm_min;
- utc->sec = tm.tm_sec;
- utc->msec = (ts->tv_nsec > 0) ? (ts->tv_nsec / 1000000) : 0;
-}
-
-void get_utc_time(struct utc_time *utc)
-{
- struct timespec ts;
- getnstimeofday(&ts);
- ts2utc(&ts, utc);
-}
-
-#ifdef CONFIG_LINK_DEVICE_DPRAM
-#include "modem_link_device_dpram.h"
-int mif_dump_dpram(struct io_device *iod)
-{
- struct link_device *ld = get_current_link(iod);
- struct dpram_link_device *dpld = to_dpram_link_device(ld);
- u32 size = dpld->size;
- unsigned long read_len = 0;
- struct sk_buff *skb;
- char *buff;
-
- buff = kzalloc(size, GFP_ATOMIC);
- if (!buff) {
- mif_err("ERR! kzalloc fail\n");
- return -ENOMEM;
- } else {
- dpld->dpram_dump(ld, buff);
- }
-
- while (read_len < size) {
- skb = alloc_skb(MAX_IPC_SKB_SIZE, GFP_ATOMIC);
- if (!skb) {
- mif_err("ERR! alloc_skb fail\n");
- kfree(buff);
- return -ENOMEM;
- }
- memcpy(skb_put(skb, MAX_IPC_SKB_SIZE),
- buff + read_len, MAX_IPC_SKB_SIZE);
- skb_queue_tail(&iod->sk_rx_q, skb);
- read_len += MAX_IPC_SKB_SIZE;
- wake_up(&iod->wq);
- }
- kfree(buff);
- return 0;
-}
-#endif
-
-int mif_dump_log(struct modem_shared *msd, struct io_device *iod)
-{
- struct sk_buff *skb;
- unsigned long read_len = 0;
- unsigned long int flags;
-
- spin_lock_irqsave(&msd->lock, flags);
- while (read_len < MAX_MIF_BUFF_SIZE) {
- skb = alloc_skb(MAX_IPC_SKB_SIZE, GFP_ATOMIC);
- if (!skb) {
- mif_err("ERR! alloc_skb fail\n");
- spin_unlock_irqrestore(&msd->lock, flags);
- return -ENOMEM;
- }
- memcpy(skb_put(skb, MAX_IPC_SKB_SIZE),
- msd->storage.addr + read_len, MAX_IPC_SKB_SIZE);
- skb_queue_tail(&iod->sk_rx_q, skb);
- read_len += MAX_IPC_SKB_SIZE;
- wake_up(&iod->wq);
- }
- spin_unlock_irqrestore(&msd->lock, flags);
- return 0;
-}
-
-static unsigned long long get_kernel_time(void)
-{
- int this_cpu;
- unsigned long flags;
- unsigned long long time;
-
- preempt_disable();
- raw_local_irq_save(flags);
-
- this_cpu = smp_processor_id();
- time = cpu_clock(this_cpu);
-
- preempt_enable();
- raw_local_irq_restore(flags);
-
- return time;
-}
-
-void mif_ipc_log(enum mif_log_id id,
- struct modem_shared *msd, const char *data, size_t len)
-{
- struct mif_ipc_block *block;
- unsigned long int flags;
-
- spin_lock_irqsave(&msd->lock, flags);
-
- block = (struct mif_ipc_block *)
- (msd->storage.addr + (MAX_LOG_SIZE * msd->storage.cnt));
- msd->storage.cnt = ((msd->storage.cnt + 1) < MAX_LOG_CNT) ?
- msd->storage.cnt + 1 : 0;
-
- spin_unlock_irqrestore(&msd->lock, flags);
-
- block->id = id;
- block->time = get_kernel_time();
- block->len = (len > MAX_IPC_LOG_SIZE) ? MAX_IPC_LOG_SIZE : len;
- memcpy(block->buff, data, block->len);
-}
-
-void _mif_irq_log(enum mif_log_id id, struct modem_shared *msd,
- struct mif_irq_map map, const char *data, size_t len)
-{
- struct mif_irq_block *block;
- unsigned long int flags;
-
- spin_lock_irqsave(&msd->lock, flags);
-
- block = (struct mif_irq_block *)
- (msd->storage.addr + (MAX_LOG_SIZE * msd->storage.cnt));
- msd->storage.cnt = ((msd->storage.cnt + 1) < MAX_LOG_CNT) ?
- msd->storage.cnt + 1 : 0;
-
- spin_unlock_irqrestore(&msd->lock, flags);
-
- block->id = id;
- block->time = get_kernel_time();
- memcpy(&(block->map), &map, sizeof(struct mif_irq_map));
- if (data)
- memcpy(block->buff, data,
- (len > MAX_IRQ_LOG_SIZE) ? MAX_IRQ_LOG_SIZE : len);
-}
-
-void _mif_com_log(enum mif_log_id id,
- struct modem_shared *msd, const char *format, ...)
-{
- struct mif_common_block *block;
- unsigned long int flags;
- va_list args;
- int ret;
-
- spin_lock_irqsave(&msd->lock, flags);
-
- block = (struct mif_common_block *)
- (msd->storage.addr + (MAX_LOG_SIZE * msd->storage.cnt));
- msd->storage.cnt = ((msd->storage.cnt + 1) < MAX_LOG_CNT) ?
- msd->storage.cnt + 1 : 0;
-
- spin_unlock_irqrestore(&msd->lock, flags);
-
- block->id = id;
- block->time = get_kernel_time();
-
- va_start(args, format);
- ret = vsnprintf(block->buff, MAX_COM_LOG_SIZE, format, args);
- va_end(args);
-}
-
-void _mif_time_log(enum mif_log_id id, struct modem_shared *msd,
- struct timespec epoch, const char *data, size_t len)
-{
- struct mif_time_block *block;
- unsigned long int flags;
-
- spin_lock_irqsave(&msd->lock, flags);
-
- block = (struct mif_time_block *)
- (msd->storage.addr + (MAX_LOG_SIZE * msd->storage.cnt));
- msd->storage.cnt = ((msd->storage.cnt + 1) < MAX_LOG_CNT) ?
- msd->storage.cnt + 1 : 0;
-
- spin_unlock_irqrestore(&msd->lock, flags);
-
- block->id = id;
- block->time = get_kernel_time();
- memcpy(&block->epoch, &epoch, sizeof(struct timespec));
-
- if (data)
- memcpy(block->buff, data,
- (len > MAX_IRQ_LOG_SIZE) ? MAX_IRQ_LOG_SIZE : len);
-}
-
-/* dump2hex
- * dump data to hex as fast as possible.
- * the length of @buff must be greater than "@len * 3"
- * it need 3 bytes per one data byte to print.
- */
-static inline int dump2hex(char *buff, const char *data, size_t len)
-{
- char *dest = buff;
- int i;
-
- for (i = 0; i < len; i++) {
- *dest++ = hex[(data[i] >> 4) & 0xf];
- *dest++ = hex[data[i] & 0xf];
- *dest++ = ' ';
- }
- if (likely(len > 0))
- dest--; /* last space will be overwrited with null */
-
- *dest = '\0';
-
- return dest - buff;
-}
-
-void pr_ipc(const char *tag, const char *data, size_t len)
-{
- struct utc_time utc;
- unsigned char str[128];
-
- get_utc_time(&utc);
- dump2hex(str, data, (len > 32 ? 32 : len));
- pr_info("%s: %s: [%02d:%02d:%02d.%03d] %s\n",
- MIF_TAG, tag, utc.hour, utc.min, utc.sec, utc.msec, str);
-}
-
-/* print buffer as hex string */
-int pr_buffer(const char *tag, const char *data, size_t data_len,
- size_t max_len)
-{
- size_t len = min(data_len, max_len);
- unsigned char str[len ? len * 3 : 1]; /* 1 <= sizeof <= max_len*3 */
- dump2hex(str, data, len);
-
- /* don't change this printk to mif_debug for print this as level7 */
- return printk(KERN_INFO "%s: %s(%u): %s%s\n", MIF_TAG, tag, data_len,
- str, (len == data_len) ? "" : " ...");
-}
-
-/* flow control CM from CP, it use in serial devices */
-int link_rx_flowctl_cmd(struct link_device *ld, const char *data, size_t len)
-{
- struct modem_shared *msd = ld->msd;
- unsigned short *cmd, *end = (unsigned short *)(data + len);
-
- mif_debug("flow control cmd: size=%d\n", len);
-
- for (cmd = (unsigned short *)data; cmd < end; cmd++) {
- switch (*cmd) {
- case CMD_SUSPEND:
- iodevs_for_each(msd, iodev_netif_stop, 0);
- ld->raw_tx_suspended = true;
- mif_info("flowctl CMD_SUSPEND(%04X)\n", *cmd);
- break;
-
- case CMD_RESUME:
- iodevs_for_each(msd, iodev_netif_wake, 0);
- ld->raw_tx_suspended = false;
- complete_all(&ld->raw_tx_resumed_by_cp);
- mif_info("flowctl CMD_RESUME(%04X)\n", *cmd);
- break;
-
- default:
- mif_err("flowctl BAD CMD: %04X\n", *cmd);
- break;
- }
- }
-
- return 0;
-}
-
-struct io_device *get_iod_with_channel(struct modem_shared *msd,
- unsigned channel)
-{
- struct rb_node *n = msd->iodevs_tree_chan.rb_node;
- struct io_device *iodev;
- while (n) {
- iodev = rb_entry(n, struct io_device, node_chan);
- if (channel < iodev->id)
- n = n->rb_left;
- else if (channel > iodev->id)
- n = n->rb_right;
- else
- return iodev;
- }
- return NULL;
-}
-
-struct io_device *get_iod_with_format(struct modem_shared *msd,
- enum dev_format format)
-{
- struct rb_node *n = msd->iodevs_tree_fmt.rb_node;
- struct io_device *iodev;
- while (n) {
- iodev = rb_entry(n, struct io_device, node_fmt);
- if (format < iodev->format)
- n = n->rb_left;
- else if (format > iodev->format)
- n = n->rb_right;
- else
- return iodev;
- }
- return NULL;
-}
-
-struct io_device *insert_iod_with_channel(struct modem_shared *msd,
- unsigned channel, struct io_device *iod)
-{
- struct rb_node **p = &msd->iodevs_tree_chan.rb_node;
- struct rb_node *parent = NULL;
- struct io_device *iodev;
- while (*p) {
- parent = *p;
- iodev = rb_entry(parent, struct io_device, node_chan);
- if (channel < iodev->id)
- p = &(*p)->rb_left;
- else if (channel > iodev->id)
- p = &(*p)->rb_right;
- else
- return iodev;
- }
- rb_link_node(&iod->node_chan, parent, p);
- rb_insert_color(&iod->node_chan, &msd->iodevs_tree_chan);
- return NULL;
-}
-
-struct io_device *insert_iod_with_format(struct modem_shared *msd,
- enum dev_format format, struct io_device *iod)
-{
- struct rb_node **p = &msd->iodevs_tree_fmt.rb_node;
- struct rb_node *parent = NULL;
- struct io_device *iodev;
- while (*p) {
- parent = *p;
- iodev = rb_entry(parent, struct io_device, node_fmt);
- if (format < iodev->format)
- p = &(*p)->rb_left;
- else if (format > iodev->format)
- p = &(*p)->rb_right;
- else
- return iodev;
- }
- rb_link_node(&iod->node_fmt, parent, p);
- rb_insert_color(&iod->node_fmt, &msd->iodevs_tree_fmt);
- return NULL;
-}
-
-void iodevs_for_each(struct modem_shared *msd, action_fn action, void *args)
-{
- struct io_device *iod;
- struct rb_node *node = rb_first(&msd->iodevs_tree_chan);
- for (; node; node = rb_next(node)) {
- iod = rb_entry(node, struct io_device, node_chan);
- action(iod, args);
- }
-}
-
-void iodev_netif_wake(struct io_device *iod, void *args)
-{
- if (iod->io_typ == IODEV_NET && iod->ndev) {
- netif_wake_queue(iod->ndev);
- mif_info("%s\n", iod->name);
- }
-}
-
-void iodev_netif_stop(struct io_device *iod, void *args)
-{
- if (iod->io_typ == IODEV_NET && iod->ndev) {
- netif_stop_queue(iod->ndev);
- mif_info("%s\n", iod->name);
- }
-}
-
-static void iodev_set_tx_link(struct io_device *iod, void *args)
-{
- struct link_device *ld = (struct link_device *)args;
- if (iod->format == IPC_RAW && IS_CONNECTED(iod, ld)) {
- set_current_link(iod, ld);
- mif_err("%s -> %s\n", iod->name, ld->name);
- }
-}
-
-void rawdevs_set_tx_link(struct modem_shared *msd, enum modem_link link_type)
-{
- struct link_device *ld = find_linkdev(msd, link_type);
- if (ld)
- iodevs_for_each(msd, iodev_set_tx_link, ld);
-}
-
-void mif_netif_stop(struct link_device *ld)
-{
- struct io_device *iod;
-
- if (ld->ipc_version < SIPC_VER_50)
- iod = link_get_iod_with_channel(ld, 0x20 | RMNET0_CH_ID);
- else
- iod = link_get_iod_with_channel(ld, RMNET0_CH_ID);
-
- if (iod)
- iodevs_for_each(iod->msd, iodev_netif_stop, 0);
-}
-
-void mif_netif_wake(struct link_device *ld)
-{
- struct io_device *iod;
-
- /**
- * If ld->suspend_netif_tx is true, this means that there was a SUSPEND
- * flow control command from CP so MIF must wait for a RESUME command
- * from CP.
- */
- if (ld->suspend_netif_tx) {
- mif_info("%s: waiting for FLOW_CTRL_RESUME\n", ld->name);
- return;
- }
-
- if (ld->ipc_version < SIPC_VER_50)
- iod = link_get_iod_with_channel(ld, 0x20 | RMNET0_CH_ID);
- else
- iod = link_get_iod_with_channel(ld, RMNET0_CH_ID);
-
- if (iod)
- iodevs_for_each(iod->msd, iodev_netif_wake, 0);
-}
-
-/**
- * ipv4str_to_be32 - ipv4 string to be32 (big endian 32bits integer)
- * @return: return zero when errors occurred
- */
-__be32 ipv4str_to_be32(const char *ipv4str, size_t count)
-{
- unsigned char ip[4];
- char ipstr[16]; /* == strlen("xxx.xxx.xxx.xxx") + 1 */
- char *next = ipstr;
- char *p;
- int i;
-
- strncpy(ipstr, ipv4str, ARRAY_SIZE(ipstr));
-
- for (i = 0; i < 4; i++) {
- p = strsep(&next, ".");
- if (kstrtou8(p, 10, &ip[i]) < 0)
- return 0; /* == 0.0.0.0 */
- }
-
- return *((__be32 *)ip);
-}
-
-void mif_add_timer(struct timer_list *timer, unsigned long expire,
- void (*function)(unsigned long), unsigned long data)
-{
- if (timer_pending(timer))
- return;
-
- init_timer(timer);
- timer->expires = get_jiffies_64() + expire;
- timer->function = function;
- timer->data = data;
- add_timer(timer);
-}
-
-void mif_print_data(const char *buff, int len)
-{
- int words = len >> 4;
- int residue = len - (words << 4);
- int i;
- char *b;
- char last[80];
- char tb[8];
-
- /* Make the last line, if ((len % 16) > 0) */
- if (residue > 0) {
- memset(last, 0, sizeof(last));
- memset(tb, 0, sizeof(tb));
- b = (char *)buff + (words << 4);
-
- sprintf(last, "%04X: ", (words << 4));
- for (i = 0; i < residue; i++) {
- sprintf(tb, "%02x ", b[i]);
- strcat(last, tb);
- if ((i & 0x3) == 0x3) {
- sprintf(tb, " ");
- strcat(last, tb);
- }
- }
- }
-
- for (i = 0; i < words; i++) {
- b = (char *)buff + (i << 4);
- mif_err("%04X: "
- "%02x %02x %02x %02x %02x %02x %02x %02x "
- "%02x %02x %02x %02x %02x %02x %02x %02x\n",
- (i << 4),
- b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7],
- b[8], b[9], b[10], b[11], b[12], b[13], b[14], b[15]);
- }
-
- /* Print the last line */
- if (residue > 0)
- mif_err("%s\n", last);
-}
-
-void mif_dump2format16(const char *data, int len, char *buff, char *tag)
-{
- char *d;
- int i;
- int words = len >> 4;
- int residue = len - (words << 4);
- char line[LINE_BUFF_SIZE];
- char tb[8];
-
- for (i = 0; i < words; i++) {
- memset(line, 0, LINE_BUFF_SIZE);
- d = (char *)data + (i << 4);
-
- if (tag)
- sprintf(line, "%s%04X| "
- "%02x %02x %02x %02x "
- "%02x %02x %02x %02x "
- "%02x %02x %02x %02x "
- "%02x %02x %02x %02x\n",
- tag, (i << 4),
- d[0], d[1], d[2], d[3],
- d[4], d[5], d[6], d[7],
- d[8], d[9], d[10], d[11],
- d[12], d[13], d[14], d[15]);
- else
- sprintf(line, "%04X| "
- "%02x %02x %02x %02x "
- "%02x %02x %02x %02x "
- "%02x %02x %02x %02x "
- "%02x %02x %02x %02x\n",
- (i << 4),
- d[0], d[1], d[2], d[3],
- d[4], d[5], d[6], d[7],
- d[8], d[9], d[10], d[11],
- d[12], d[13], d[14], d[15]);
-
- strcat(buff, line);
- }
-
- /* Make the last line, if (len % 16) > 0 */
- if (residue > 0) {
- memset(line, 0, LINE_BUFF_SIZE);
- memset(tb, 0, sizeof(tb));
- d = (char *)data + (words << 4);
-
- if (tag)
- sprintf(line, "%s%04X|", tag, (words << 4));
- else
- sprintf(line, "%04X|", (words << 4));
-
- for (i = 0; i < residue; i++) {
- sprintf(tb, " %02x", d[i]);
- strcat(line, tb);
- if ((i & 0x3) == 0x3) {
- sprintf(tb, " ");
- strcat(line, tb);
- }
- }
- strcat(line, "\n");
-
- strcat(buff, line);
- }
-}
-
-void mif_dump2format4(const char *data, int len, char *buff, char *tag)
-{
- char *d;
- int i;
- int words = len >> 2;
- int residue = len - (words << 2);
- char line[LINE_BUFF_SIZE];
- char tb[8];
-
- for (i = 0; i < words; i++) {
- memset(line, 0, LINE_BUFF_SIZE);
- d = (char *)data + (i << 2);
-
- if (tag)
- sprintf(line, "%s%04X| %02x %02x %02x %02x\n",
- tag, (i << 2), d[0], d[1], d[2], d[3]);
- else
- sprintf(line, "%04X| %02x %02x %02x %02x\n",
- (i << 2), d[0], d[1], d[2], d[3]);
-
- strcat(buff, line);
- }
-
- /* Make the last line, if (len % 4) > 0 */
- if (residue > 0) {
- memset(line, 0, LINE_BUFF_SIZE);
- memset(tb, 0, sizeof(tb));
- d = (char *)data + (words << 2);
-
- if (tag)
- sprintf(line, "%s%04X|", tag, (words << 2));
- else
- sprintf(line, "%04X|", (words << 2));
-
- for (i = 0; i < residue; i++) {
- sprintf(tb, " %02x", d[i]);
- strcat(line, tb);
- }
- strcat(line, "\n");
-
- strcat(buff, line);
- }
-}
-
-void mif_print_dump(const char *data, int len, int width)
-{
- char *buff;
-
- buff = kzalloc(len << 3, GFP_ATOMIC);
- if (!buff) {
- mif_err("ERR! kzalloc fail\n");
- return;
- }
-
- if (width == 16)
- mif_dump2format16(data, len, buff, LOG_TAG);
- else
- mif_dump2format4(data, len, buff, LOG_TAG);
-
- pr_info("%s", buff);
-
- kfree(buff);
-}
-
-void print_sipc4_hdlc_fmt_frame(const u8 *psrc)
-{
- u8 *frm; /* HDLC Frame */
- struct fmt_hdr *hh; /* HDLC Header */
- struct sipc_fmt_hdr *fh; /* IPC Header */
- u16 hh_len = sizeof(struct fmt_hdr);
- u16 fh_len = sizeof(struct sipc_fmt_hdr);
- u8 *data;
- int dlen;
-
- /* Actual HDLC header starts from after START flag (0x7F) */
- frm = (u8 *)(psrc + 1);
-
- /* Point HDLC header and IPC header */
- hh = (struct fmt_hdr *)(frm);
- fh = (struct sipc_fmt_hdr *)(frm + hh_len);
-
- /* Point IPC data */
- data = frm + (hh_len + fh_len);
- dlen = hh->len - (hh_len + fh_len);
-
- mif_err("--------------------HDLC & FMT HEADER----------------------\n");
-
- mif_err("HDLC: length %d, control 0x%02x\n", hh->len, hh->control);
-
- mif_err("(M)0x%02X, (S)0x%02X, (T)0x%02X, mseq %d, aseq %d, len %d\n",
- fh->main_cmd, fh->sub_cmd, fh->cmd_type,
- fh->msg_seq, fh->ack_seq, fh->len);
-
- mif_err("-----------------------IPC FMT DATA------------------------\n");
-
- if (dlen > 0) {
- if (dlen > 64)
- dlen = 64;
- mif_print_data(data, dlen);
- }
-
- mif_err("-----------------------------------------------------------\n");
-}
-
-void print_sipc4_fmt_frame(const u8 *psrc)
-{
- struct sipc_fmt_hdr *fh = (struct sipc_fmt_hdr *)psrc;
- u16 fh_len = sizeof(struct sipc_fmt_hdr);
- u8 *data;
- int dlen;
-
- /* Point IPC data */
- data = (u8 *)(psrc + fh_len);
- dlen = fh->len - fh_len;
-
- mif_err("----------------------IPC FMT HEADER-----------------------\n");
-
- mif_err("(M)0x%02X, (S)0x%02X, (T)0x%02X, mseq:%d, aseq:%d, len:%d\n",
- fh->main_cmd, fh->sub_cmd, fh->cmd_type,
- fh->msg_seq, fh->ack_seq, fh->len);
-
- mif_err("-----------------------IPC FMT DATA------------------------\n");
-
- if (dlen > 0)
- mif_print_data(data, dlen);
-
- mif_err("-----------------------------------------------------------\n");
-}
-
-void print_sipc5_link_fmt_frame(const u8 *psrc)
-{
- u8 *lf; /* Link Frame */
- struct sipc5_link_hdr *lh; /* Link Header */
- struct sipc_fmt_hdr *fh; /* IPC Header */
- u16 lh_len;
- u16 fh_len;
- u8 *data;
- int dlen;
-
- lf = (u8 *)psrc;
-
- /* Point HDLC header and IPC header */
- lh = (struct sipc5_link_hdr *)lf;
- if (lh->cfg & SIPC5_CTL_FIELD_EXIST)
- lh_len = SIPC5_HEADER_SIZE_WITH_CTL_FLD;
- else
- lh_len = SIPC5_MIN_HEADER_SIZE;
- fh = (struct sipc_fmt_hdr *)(lf + lh_len);
- fh_len = sizeof(struct sipc_fmt_hdr);
-
- /* Point IPC data */
- data = lf + (lh_len + fh_len);
- dlen = lh->len - (lh_len + fh_len);
-
- mif_err("--------------------LINK & FMT HEADER----------------------\n");
-
- mif_err("LINK: cfg 0x%02X, ch %d, len %d\n", lh->cfg, lh->ch, lh->len);
-
- mif_err("(M)0x%02X, (S)0x%02X, (T)0x%02X, mseq:%d, aseq:%d, len:%d\n",
- fh->main_cmd, fh->sub_cmd, fh->cmd_type,
- fh->msg_seq, fh->ack_seq, fh->len);
-
- mif_err("-----------------------IPC FMT DATA------------------------\n");
-
- if (dlen > 0) {
- if (dlen > 64)
- dlen = 64;
- mif_print_data(data, dlen);
- }
-
- mif_err("-----------------------------------------------------------\n");
-}
-
-static void strcat_tcp_header(char *buff, u8 *pkt)
-{
- struct tcphdr *tcph = (struct tcphdr *)pkt;
- int eol;
- char line[LINE_BUFF_SIZE];
- char flag_str[32];
-
-/*-------------------------------------------------------------------------
-
- TCP Header Format
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Port | Destination Port |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Sequence Number |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Acknowledgment Number |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Data | |C|E|U|A|P|R|S|F| |
- | Offset| Rsvd |W|C|R|C|S|S|Y|I| Window |
- | | |R|E|G|K|H|T|N|N| |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Checksum | Urgent Pointer |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Options | Padding |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | data |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
--------------------------------------------------------------------------*/
-
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE,
- "%s: TCP:: Src.Port %u, Dst.Port %u\n",
- MIF_TAG, ntohs(tcph->source), ntohs(tcph->dest));
- strcat(buff, line);
-
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE,
- "%s: TCP:: SEQ 0x%08X(%u), ACK 0x%08X(%u)\n",
- MIF_TAG, ntohs(tcph->seq), ntohs(tcph->seq),
- ntohs(tcph->ack_seq), ntohs(tcph->ack_seq));
- strcat(buff, line);
-
- memset(line, 0, LINE_BUFF_SIZE);
- memset(flag_str, 0, sizeof(flag_str));
- if (tcph->cwr)
- strcat(flag_str, "CWR ");
- if (tcph->ece)
- strcat(flag_str, "ECE");
- if (tcph->urg)
- strcat(flag_str, "URG ");
- if (tcph->ack)
- strcat(flag_str, "ACK ");
- if (tcph->psh)
- strcat(flag_str, "PSH ");
- if (tcph->rst)
- strcat(flag_str, "RST ");
- if (tcph->syn)
- strcat(flag_str, "SYN ");
- if (tcph->fin)
- strcat(flag_str, "FIN ");
- eol = strlen(flag_str) - 1;
- if (eol > 0)
- flag_str[eol] = 0;
- snprintf(line, LINE_BUFF_SIZE, "%s: TCP:: Flags {%s}\n",
- MIF_TAG, flag_str);
- strcat(buff, line);
-
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE,
- "%s: TCP:: Window %u, Checksum 0x%04X, Urgent %u\n", MIF_TAG,
- ntohs(tcph->window), ntohs(tcph->check), ntohs(tcph->urg_ptr));
- strcat(buff, line);
-}
-
-static void strcat_udp_header(char *buff, u8 *pkt)
-{
- struct udphdr *udph = (struct udphdr *)pkt;
- char line[LINE_BUFF_SIZE];
-
-/*-------------------------------------------------------------------------
-
- UDP Header Format
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Port | Destination Port |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Length | Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | data |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
--------------------------------------------------------------------------*/
-
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE,
- "%s: UDP:: Src.Port %u, Dst.Port %u\n",
- MIF_TAG, ntohs(udph->source), ntohs(udph->dest));
- strcat(buff, line);
-
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE,
- "%s: UDP:: Length %u, Checksum 0x%04X\n",
- MIF_TAG, ntohs(udph->len), ntohs(udph->check));
- strcat(buff, line);
-
- if (ntohs(udph->dest) == 53) {
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE, "%s: UDP:: DNS query!!!\n",
- MIF_TAG);
- strcat(buff, line);
- }
-
- if (ntohs(udph->source) == 53) {
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE, "%s: UDP:: DNS response!!!\n",
- MIF_TAG);
- strcat(buff, line);
- }
-}
-
-void print_ip4_packet(const u8 *ip_pkt, bool tx)
-{
- char *buff;
- struct iphdr *iph = (struct iphdr *)ip_pkt;
- u8 *pkt = (u8 *)ip_pkt + (iph->ihl << 2);
- u16 flags = (ntohs(iph->frag_off) & 0xE000);
- u16 frag_off = (ntohs(iph->frag_off) & 0x1FFF);
- int eol;
- char line[LINE_BUFF_SIZE];
- char flag_str[16];
-
-/*---------------------------------------------------------------------------
- IPv4 Header Format
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- |Version| IHL |Type of Service| Total Length |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Identification |C|D|M| Fragment Offset |
- | |E|F|F| |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Time to Live | Protocol | Header Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Destination Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Options | Padding |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- IHL - Header Length
- Flags - Consist of 3 bits
- The 1st bit is "Congestion" bit.
- The 2nd bit is "Dont Fragment" bit.
- The 3rd bit is "More Fragments" bit.
-
----------------------------------------------------------------------------*/
-
- if (iph->version != 4)
- return;
-
- buff = kzalloc(4096, GFP_ATOMIC);
- if (!buff)
- return;
-
-
- memset(line, 0, LINE_BUFF_SIZE);
- if (tx)
- snprintf(line, LINE_BUFF_SIZE, "\n%s\n", TX_SEPARATOR);
- else
- snprintf(line, LINE_BUFF_SIZE, "\n%s\n", RX_SEPARATOR);
- strcat(buff, line);
-
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE, "%s\n", LINE_SEPARATOR);
- strcat(buff, line);
-
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE,
- "%s: IP4:: Version %u, Header Length %u, TOS %u, Length %u\n",
- MIF_TAG, iph->version, (iph->ihl << 2), iph->tos,
- ntohs(iph->tot_len));
- strcat(buff, line);
-
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE, "%s: IP4:: ID %u, Fragment Offset %u\n",
- MIF_TAG, ntohs(iph->id), frag_off);
- strcat(buff, line);
-
- memset(line, 0, LINE_BUFF_SIZE);
- memset(flag_str, 0, sizeof(flag_str));
- if (flags & IP_CE)
- strcat(flag_str, "CE ");
- if (flags & IP_DF)
- strcat(flag_str, "DF ");
- if (flags & IP_MF)
- strcat(flag_str, "MF ");
- eol = strlen(flag_str) - 1;
- if (eol > 0)
- flag_str[eol] = 0;
- snprintf(line, LINE_BUFF_SIZE, "%s: IP4:: Flags {%s}\n",
- MIF_TAG, flag_str);
- strcat(buff, line);
-
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE,
- "%s: IP4:: TTL %u, Protocol %u, Header Checksum 0x%04X\n",
- MIF_TAG, iph->ttl, iph->protocol, ntohs(iph->check));
- strcat(buff, line);
-
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE,
- "%s: IP4:: Src.IP %u.%u.%u.%u, Dst.IP %u.%u.%u.%u\n",
- MIF_TAG, ip_pkt[12], ip_pkt[13], ip_pkt[14], ip_pkt[15],
- ip_pkt[16], ip_pkt[17], ip_pkt[18], ip_pkt[19]);
- strcat(buff, line);
-
- switch (iph->protocol) {
- case 6: /* TCP */
- strcat_tcp_header(buff, pkt);
- break;
-
- case 17: /* UDP */
- strcat_udp_header(buff, pkt);
- break;
-
- default:
- break;
- }
-
- memset(line, 0, LINE_BUFF_SIZE);
- snprintf(line, LINE_BUFF_SIZE, "%s\n", LINE_SEPARATOR);
- strcat(buff, line);
-
- pr_info("%s", buff);
-
- kfree(buff);
-}
-
-bool is_dns_packet(const u8 *ip_pkt)
-{
- struct iphdr *iph = (struct iphdr *)ip_pkt;
- struct udphdr *udph = (struct udphdr *)(ip_pkt + (iph->ihl << 2));
-
- /* If this packet is not a UDP packet, return here. */
- if (iph->protocol != 17)
- return false;
-
- if (ntohs(udph->dest) == 53 || ntohs(udph->source) == 53)
- return true;
- else
- return false;
-}
-
-bool is_syn_packet(const u8 *ip_pkt)
-{
- struct iphdr *iph = (struct iphdr *)ip_pkt;
- struct tcphdr *tcph = (struct tcphdr *)(ip_pkt + (iph->ihl << 2));
-
- /* If this packet is not a TCP packet, return here. */
- if (iph->protocol != 6)
- return false;
-
- if (tcph->syn || tcph->fin)
- return true;
- else
- return false;
-}
-
-int memcmp16_to_io(const void __iomem *to, void *from, int size)
-{
- u16 *d = (u16 *)to;
- u16 *s = (u16 *)from;
- int count = size >> 1;
- int diff = 0;
- int i;
- u16 d1;
- u16 s1;
-
- for (i = 0; i < count; i++) {
- d1 = ioread16(d);
- s1 = *s;
- if (d1 != s1) {
- diff++;
- mif_err("ERR! [%d] d:0x%04X != s:0x%04X\n", i, d1, s1);
- }
- d++;
- s++;
- }
-
- return diff;
-}
-
-int mif_test_dpram(char *dp_name, u8 __iomem *start, u32 size)
-{
- u8 __iomem *dst;
- int i;
- u16 val;
-
- mif_info("%s: start = 0x%p, size = %d\n", dp_name, start, size);
-
- dst = start;
- for (i = 0; i < (size >> 1); i++) {
- iowrite16((i & 0xFFFF), dst);
- dst += 2;
- }
-
- dst = start;
- for (i = 0; i < (size >> 1); i++) {
- val = ioread16(dst);
- if (val != (i & 0xFFFF)) {
- mif_info("%s: ERR! dst[%d] 0x%04X != 0x%04X\n",
- dp_name, i, val, (i & 0xFFFF));
- return -EINVAL;
- }
- dst += 2;
- }
-
- dst = start;
- for (i = 0; i < (size >> 1); i++) {
- iowrite16(0x00FF, dst);
- dst += 2;
- }
-
- dst = start;
- for (i = 0; i < (size >> 1); i++) {
- val = ioread16(dst);
- if (val != 0x00FF) {
- mif_info("%s: ERR! dst[%d] 0x%04X != 0x00FF\n",
- dp_name, i, val);
- return -EINVAL;
- }
- dst += 2;
- }
-
- dst = start;
- for (i = 0; i < (size >> 1); i++) {
- iowrite16(0x0FF0, dst);
- dst += 2;
- }
-
- dst = start;
- for (i = 0; i < (size >> 1); i++) {
- val = ioread16(dst);
- if (val != 0x0FF0) {
- mif_info("%s: ERR! dst[%d] 0x%04X != 0x0FF0\n",
- dp_name, i, val);
- return -EINVAL;
- }
- dst += 2;
- }
-
- dst = start;
- for (i = 0; i < (size >> 1); i++) {
- iowrite16(0xFF00, dst);
- dst += 2;
- }
-
- dst = start;
- for (i = 0; i < (size >> 1); i++) {
- val = ioread16(dst);
- if (val != 0xFF00) {
- mif_info("%s: ERR! dst[%d] 0x%04X != 0xFF00\n",
- dp_name, i, val);
- return -EINVAL;
- }
- dst += 2;
- }
-
- dst = start;
- for (i = 0; i < (size >> 1); i++) {
- iowrite16(0, dst);
- dst += 2;
- }
-
- dst = start;
- for (i = 0; i < (size >> 1); i++) {
- val = ioread16(dst);
- if (val != 0) {
- mif_info("%s: ERR! dst[%d] 0x%04X != 0\n",
- dp_name, i, val);
- return -EINVAL;
- }
- dst += 2;
- }
-
- mif_info("%s: PASS!!!\n", dp_name);
- return 0;
-}
-
-struct file *mif_open_file(const char *path)
-{
- struct file *fp;
- mm_segment_t old_fs;
-
- old_fs = get_fs();
- set_fs(get_ds());
-
- fp = filp_open(path, O_RDWR|O_CREAT|O_APPEND, 0666);
-
- set_fs(old_fs);
-
- if (IS_ERR(fp))
- return NULL;
-
- return fp;
-}
-
-void mif_save_file(struct file *fp, const char *buff, size_t size)
-{
- int ret;
- mm_segment_t old_fs;
-
- old_fs = get_fs();
- set_fs(get_ds());
-
- ret = fp->f_op->write(fp, buff, size, &fp->f_pos);
- if (ret < 0)
- mif_err("ERR! write fail\n");
-
- set_fs(old_fs);
-}
-
-void mif_close_file(struct file *fp)
-{
- mm_segment_t old_fs;
-
- old_fs = get_fs();
- set_fs(get_ds());
-
- filp_close(fp, NULL);
-
- set_fs(old_fs);
-}
-
diff --git a/drivers/misc/modem_if_u1/modem_utils.h b/drivers/misc/modem_if_u1/modem_utils.h
deleted file mode 100644
index 219e059..0000000
--- a/drivers/misc/modem_if_u1/modem_utils.h
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * Copyright (C) 2011 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#ifndef __MODEM_UTILS_H__
-#define __MODEM_UTILS_H__
-
-#include <linux/rbtree.h>
-
-#define IS_CONNECTED(iod, ld) ((iod)->link_types & LINKTYPE((ld)->link_type))
-
-#define MAX_MIF_BUFF_SIZE 0x80000 /* 512kb */
-#define MAX_MIF_SEPA_SIZE 32
-#define MIF_SEPARATOR "IPC_LOGGER(VER1.1)"
-#define MIF_SEPARATOR_DPRAM "DPRAM_LOGGER(VER1.1)"
-#define MAX_IPC_SKB_SIZE 4096
-#define MAX_LOG_SIZE 64
-
-#define MIF_TAG "mif"
-
-#define MAX_LOG_CNT (MAX_MIF_BUFF_SIZE / MAX_LOG_SIZE)
-#define MIF_ID_SIZE sizeof(enum mif_log_id)
-
-#define MAX_IPC_LOG_SIZE \
- (MAX_LOG_SIZE - sizeof(enum mif_log_id) \
- - sizeof(unsigned long long) - sizeof(size_t))
-#define MAX_IRQ_LOG_SIZE \
- (MAX_LOG_SIZE - sizeof(enum mif_log_id) \
- - sizeof(unsigned long long) - sizeof(struct mif_irq_map))
-#define MAX_COM_LOG_SIZE \
- (MAX_LOG_SIZE - sizeof(enum mif_log_id) \
- - sizeof(unsigned long long))
-#define MAX_TIM_LOG_SIZE \
- (MAX_LOG_SIZE - sizeof(enum mif_log_id) \
- - sizeof(unsigned long long) - sizeof(struct timespec))
-
-enum mif_log_id {
- MIF_IPC_RL2AP = 1,
- MIF_IPC_AP2CP,
- MIF_IPC_CP2AP,
- MIF_IPC_AP2RL,
- MIF_IRQ,
- MIF_COM,
- MIF_TIME
-};
-
-struct mif_irq_map {
- u16 magic;
- u16 access;
-
- u16 fmt_tx_in;
- u16 fmt_tx_out;
- u16 fmt_rx_in;
- u16 fmt_rx_out;
-
- u16 raw_tx_in;
- u16 raw_tx_out;
- u16 raw_rx_in;
- u16 raw_rx_out;
-
- u16 cp2ap;
-};
-
-struct mif_ipc_block {
- enum mif_log_id id;
- unsigned long long time;
- size_t len;
- char buff[MAX_IPC_LOG_SIZE];
-};
-
-struct mif_irq_block {
- enum mif_log_id id;
- unsigned long long time;
- struct mif_irq_map map;
- char buff[MAX_IRQ_LOG_SIZE];
-};
-
-struct mif_common_block {
- enum mif_log_id id;
- unsigned long long time;
- char buff[MAX_COM_LOG_SIZE];
-};
-
-struct mif_time_block {
- enum mif_log_id id;
- unsigned long long time;
- struct timespec epoch;
- char buff[MAX_TIM_LOG_SIZE];
-};
-
-struct utc_time {
- u16 year;
- u8 mon:4,
- day:4;
- u8 hour;
- u8 min;
- u8 sec;
- u16 msec;
-} __packed;
-
-void ts2utc(struct timespec *ts, struct utc_time *utc);
-void get_utc_time(struct utc_time *utc);
-
-int mif_dump_dpram(struct io_device *);
-int mif_dump_log(struct modem_shared *, struct io_device *);
-
-#define mif_irq_log(msd, map, data, len) \
- _mif_irq_log(MIF_IRQ, msd, map, data, len)
-#define mif_com_log(msd, format, ...) \
- _mif_com_log(MIF_COM, msd, pr_fmt(format), ##__VA_ARGS__)
-#define mif_time_log(msd, epoch, data, len) \
- _mif_time_log(MIF_TIME, msd, epoch, data, len)
-
-void mif_ipc_log(enum mif_log_id,
- struct modem_shared *, const char *, size_t);
-void _mif_irq_log(enum mif_log_id,
- struct modem_shared *, struct mif_irq_map, const char *, size_t);
-void _mif_com_log(enum mif_log_id,
- struct modem_shared *, const char *, ...);
-void _mif_time_log(enum mif_log_id,
- struct modem_shared *, struct timespec, const char *, size_t);
-
-/** find_linkdev - find a link device
- * @msd: struct modem_shared *
- */
-static inline struct link_device *find_linkdev(struct modem_shared *msd,
- enum modem_link link_type)
-{
- struct link_device *ld;
- list_for_each_entry(ld, &msd->link_dev_list, list) {
- if (ld->link_type == link_type)
- return ld;
- }
- return NULL;
-}
-
-/** countbits - count number of 1 bits as fastest way
- * @n: number
- */
-static inline unsigned int countbits(unsigned int n)
-{
- unsigned int i;
- for (i = 0; n != 0; i++)
- n &= (n - 1);
- return i;
-}
-
-/* print IPC message as hex string with UTC time */
-void pr_ipc(const char *tag, const char *data, size_t len);
-
-/* print buffer as hex string */
-int pr_buffer(const char *tag, const char *data, size_t data_len,
- size_t max_len);
-
-/* print a sk_buff as hex string */
-#define pr_skb(tag, skb) \
- pr_buffer(tag, (char *)((skb)->data), (size_t)((skb)->len), (size_t)16)
-
-/* print a urb as hex string */
-#define pr_urb(tag, urb) \
- pr_buffer(tag, (char *)((urb)->transfer_buffer), \
- (size_t)((urb)->actual_length), (size_t)16)
-
-/* Stop/wake all TX queues in network interfaces */
-void mif_netif_stop(struct link_device *ld);
-void mif_netif_wake(struct link_device *ld);
-
-/* flow control CMD from CP, it use in serial devices */
-int link_rx_flowctl_cmd(struct link_device *ld, const char *data, size_t len);
-
-/* get iod from tree functions */
-
-struct io_device *get_iod_with_format(struct modem_shared *msd,
- enum dev_format format);
-struct io_device *get_iod_with_channel(struct modem_shared *msd,
- unsigned channel);
-
-static inline struct io_device *link_get_iod_with_format(
- struct link_device *ld, enum dev_format format)
-{
- struct io_device *iod = get_iod_with_format(ld->msd, format);
- return (iod && IS_CONNECTED(iod, ld)) ? iod : NULL;
-}
-
-static inline struct io_device *link_get_iod_with_channel(
- struct link_device *ld, unsigned channel)
-{
- struct io_device *iod = get_iod_with_channel(ld->msd, channel);
- return (iod && IS_CONNECTED(iod, ld)) ? iod : NULL;
-}
-
-/* insert iod to tree functions */
-struct io_device *insert_iod_with_format(struct modem_shared *msd,
- enum dev_format format, struct io_device *iod);
-struct io_device *insert_iod_with_channel(struct modem_shared *msd,
- unsigned channel, struct io_device *iod);
-
-/* iodev for each */
-typedef void (*action_fn)(struct io_device *iod, void *args);
-void iodevs_for_each(struct modem_shared *msd, action_fn action, void *args);
-
-/* netif wake/stop queue of iod */
-void iodev_netif_wake(struct io_device *iod, void *args);
-void iodev_netif_stop(struct io_device *iod, void *args);
-
-/* change tx_link of raw devices */
-void rawdevs_set_tx_link(struct modem_shared *msd, enum modem_link link_type);
-
-__be32 ipv4str_to_be32(const char *ipv4str, size_t count);
-
-void mif_add_timer(struct timer_list *timer, unsigned long expire,
- void (*function)(unsigned long), unsigned long data);
-
-/* debug helper functions for sipc4, sipc5 */
-void mif_print_data(const char *buff, int len);
-void mif_dump2format16(const char *data, int len, char *buff, char *tag);
-void mif_dump2format4(const char *data, int len, char *buff, char *tag);
-void mif_print_dump(const char *data, int len, int width);
-void print_sipc4_hdlc_fmt_frame(const u8 *psrc);
-void print_sipc4_fmt_frame(const u8 *psrc);
-void print_sipc5_link_fmt_frame(const u8 *psrc);
-
-/*---------------------------------------------------------------------------
-
- IPv4 Header Format
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- |Version| IHL |Type of Service| Total Length |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Identification |C|D|M| Fragment Offset |
- | |E|F|F| |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Time to Live | Protocol | Header Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Destination Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Options | Padding |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- IHL - Header Length
- Flags - Consist of 3 bits
- The 1st bit is "Congestion" bit.
- The 2nd bit is "Dont Fragment" bit.
- The 3rd bit is "More Fragments" bit.
-
----------------------------------------------------------------------------*/
-#define IPV4_HDR_SIZE 20
-
-/*-------------------------------------------------------------------------
-
- TCP Header Format
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Port | Destination Port |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Sequence Number |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Acknowledgment Number |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Data | |C|E|U|A|P|R|S|F| |
- | Offset| Rsvd |W|C|R|C|S|S|Y|I| Window |
- | | |R|E|G|K|H|T|N|N| |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Checksum | Urgent Pointer |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Options | Padding |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | data |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
--------------------------------------------------------------------------*/
-#define TCP_HDR_SIZE 20
-
-/*-------------------------------------------------------------------------
-
- UDP Header Format
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Port | Destination Port |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Length | Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | data |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
--------------------------------------------------------------------------*/
-#define UDP_HDR_SIZE 8
-
-void print_ip4_packet(const u8 *ip_pkt, bool tx);
-bool is_dns_packet(const u8 *ip_pkt);
-bool is_syn_packet(const u8 *ip_pkt);
-
-int memcmp16_to_io(const void __iomem *to, void *from, int size);
-int mif_test_dpram(char *dp_name, u8 __iomem *start, u32 size);
-struct file *mif_open_file(const char *path);
-void mif_save_file(struct file *fp, const char *buff, size_t size);
-void mif_close_file(struct file *fp);
-
-#endif/*__MODEM_UTILS_H__*/
diff --git a/drivers/misc/modem_if_u1/modem_variation.h b/drivers/misc/modem_if_u1/modem_variation.h
deleted file mode 100644
index b5ec61b..0000000
--- a/drivers/misc/modem_if_u1/modem_variation.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * 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.
- *
- */
-
-#ifndef __MODEM_VARIATION_H__
-#define __MODEM_VARIATION_H__
-
-#include <linux/platform_data/modem.h>
-
-#define DECLARE_MODEM_INIT(type) \
- int type ## _init_modemctl_device(struct modem_ctl *mc, \
- struct modem_data *pdata)
-#define DECLARE_MODEM_INIT_DUMMY(type) \
- static DECLARE_MODEM_INIT(type) { return 0; }
-
-#define DECLARE_LINK_INIT(type) \
- struct link_device *type ## _create_link_device( \
- struct platform_device *pdev)
-#define DECLARE_LINK_INIT_DUMMY(type) \
- static DECLARE_LINK_INIT(type) { return NULL; }
-
-#define MODEM_INIT_CALL(type) type ## _init_modemctl_device
-#define LINK_INIT_CALL(type) type ## _create_link_device
-
-/* add declaration of modem & link type */
-/* modem device support */
-DECLARE_MODEM_INIT_DUMMY(dummy)
-
-#ifdef CONFIG_UMTS_MODEM_XMM6260
-DECLARE_MODEM_INIT(xmm6260);
-#else
-DECLARE_MODEM_INIT_DUMMY(xmm6260)
-#endif
-
-#ifdef CONFIG_UMTS_MODEM_XMM6262
-DECLARE_MODEM_INIT(xmm6262);
-#else
-DECLARE_MODEM_INIT_DUMMY(xmm6262)
-#endif
-
-#ifdef CONFIG_CDMA_MODEM_CBP71
-DECLARE_MODEM_INIT(cbp71);
-#else
-DECLARE_MODEM_INIT_DUMMY(cbp71)
-#endif
-
-#ifdef CONFIG_CDMA_MODEM_CBP72
-DECLARE_MODEM_INIT(cbp72);
-#else
-DECLARE_MODEM_INIT_DUMMY(cbp72)
-#endif
-
-#ifdef CONFIG_LTE_MODEM_CMC221
-DECLARE_MODEM_INIT(cmc221);
-#else
-DECLARE_MODEM_INIT_DUMMY(cmc221)
-#endif
-
-#ifdef CONFIG_CDMA_MODEM_MDM6600
-DECLARE_MODEM_INIT(mdm6600);
-#else
-DECLARE_MODEM_INIT_DUMMY(mdm6600)
-#endif
-
-#ifdef CONFIG_GSM_MODEM_ESC6270
-DECLARE_MODEM_INIT(esc6270);
-#else
-DECLARE_MODEM_INIT_DUMMY(esc6270)
-#endif
-
-#ifdef CONFIG_TDSCDMA_MODEM_SPRD8803
-DECLARE_MODEM_INIT(sprd8803);
-#else
-DECLARE_MODEM_INIT_DUMMY(sprd8803)
-#endif
-
-/* link device support */
-DECLARE_LINK_INIT_DUMMY(undefined)
-
-#ifdef CONFIG_LINK_DEVICE_MIPI
-DECLARE_LINK_INIT(mipi);
-#else
-DECLARE_LINK_INIT_DUMMY(mipi)
-#endif
-
-#ifdef CONFIG_LINK_DEVICE_DPRAM
-DECLARE_LINK_INIT(dpram);
-#else
-DECLARE_LINK_INIT_DUMMY(dpram)
-#endif
-
-#ifdef CONFIG_LINK_DEVICE_PLD
-DECLARE_LINK_INIT(pld);
-#else
-DECLARE_LINK_INIT_DUMMY(pld)
-#endif
-
-#ifdef CONFIG_LINK_DEVICE_SPI
-DECLARE_LINK_INIT(spi);
-#else
-DECLARE_LINK_INIT_DUMMY(spi)
-#endif
-
-#ifdef CONFIG_LINK_DEVICE_USB
-DECLARE_LINK_INIT(usb);
-#else
-DECLARE_LINK_INIT_DUMMY(usb)
-#endif
-
-#ifdef CONFIG_LINK_DEVICE_HSIC
-DECLARE_LINK_INIT(hsic);
-#else
-DECLARE_LINK_INIT_DUMMY(hsic)
-#endif
-
-#ifdef CONFIG_LINK_DEVICE_C2C
-DECLARE_LINK_INIT(c2c);
-#else
-DECLARE_LINK_INIT_DUMMY(c2c)
-#endif
-
-typedef int (*modem_init_call)(struct modem_ctl *, struct modem_data *);
-static modem_init_call modem_init_func[] = {
- MODEM_INIT_CALL(xmm6260),
- MODEM_INIT_CALL(xmm6262),
- MODEM_INIT_CALL(cbp71),
- MODEM_INIT_CALL(cbp72),
- MODEM_INIT_CALL(cmc221),
- MODEM_INIT_CALL(mdm6600),
- MODEM_INIT_CALL(esc6270),
- MODEM_INIT_CALL(sprd8803),
- MODEM_INIT_CALL(dummy),
-};
-
-typedef struct link_device *(*link_init_call)(struct platform_device *);
-static link_init_call link_init_func[] = {
- LINK_INIT_CALL(undefined),
- LINK_INIT_CALL(mipi),
- LINK_INIT_CALL(dpram),
- LINK_INIT_CALL(spi),
- LINK_INIT_CALL(usb),
- LINK_INIT_CALL(hsic),
- LINK_INIT_CALL(c2c),
- LINK_INIT_CALL(pld),
-};
-
-static int call_modem_init_func(struct modem_ctl *mc, struct modem_data *pdata)
-{
- if (modem_init_func[pdata->modem_type])
- return modem_init_func[pdata->modem_type](mc, pdata);
- else
- return -ENOTSUPP;
-}
-
-static struct link_device *call_link_init_func(struct platform_device *pdev,
- enum modem_link link_type)
-{
- if (link_init_func[link_type])
- return link_init_func[link_type](pdev);
- else
- return NULL;
-}
-
-#endif
diff --git a/drivers/misc/modem_if_u1/sipc4_io_device.c b/drivers/misc/modem_if_u1/sipc4_io_device.c
deleted file mode 100644
index 7330c28..0000000
--- a/drivers/misc/modem_if_u1/sipc4_io_device.c
+++ /dev/null
@@ -1,1710 +0,0 @@
-/* /linux/drivers/misc/modem_if/modem_io_device.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-#include <linux/sched.h>
-#include <linux/fs.h>
-#include <linux/poll.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/if_arp.h>
-#include <linux/ip.h>
-#include <linux/if_ether.h>
-#include <linux/etherdevice.h>
-#include <linux/device.h>
-
-#include <linux/platform_data/modem.h>
-#ifdef CONFIG_LINK_DEVICE_C2C
-#include <linux/platform_data/c2c.h>
-#endif
-#include "modem_prj.h"
-#include "modem_utils.h"
-
-/*
- * MAX_RXDATA_SIZE is used at making skb, when it called with page size
- * it need more bytes to allocate itself (Ex, cache byte, shared info,
- * padding...)
- * So, give restriction to allocation size below 1 page to prevent
- * big pages broken.
- */
-#define MAX_RXDATA_SIZE 0x0E00 /* 4 * 1024 - 512 */
-#define MAX_BOOTDATA_SIZE 0x4008 /* EBL package format*/
-#define MAX_MULTI_FMT_SIZE 0x4000 /* 16 * 1024 */
-
-static const char hdlc_start[1] = { HDLC_START };
-static const char hdlc_end[1] = { HDLC_END };
-
-static int rx_iodev_skb(struct sk_buff *skb);
-
-static ssize_t show_waketime(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- unsigned int msec;
- char *p = buf;
- struct miscdevice *miscdev = dev_get_drvdata(dev);
- struct io_device *iod = container_of(miscdev, struct io_device,
- miscdev);
-
- msec = jiffies_to_msecs(iod->waketime);
-
- p += sprintf(buf, "raw waketime : %ums\n", msec);
-
- return p - buf;
-}
-
-static ssize_t store_waketime(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- unsigned long msec;
- int ret;
- struct miscdevice *miscdev = dev_get_drvdata(dev);
- struct io_device *iod = container_of(miscdev, struct io_device,
- miscdev);
-
- ret = strict_strtoul(buf, 10, &msec);
- if (ret)
- return count;
-
- iod->waketime = msecs_to_jiffies(msec);
-
- return count;
-}
-
-static struct device_attribute attr_waketime =
- __ATTR(waketime, S_IRUGO | S_IWUSR, show_waketime, store_waketime);
-
-static ssize_t show_loopback(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct miscdevice *miscdev = dev_get_drvdata(dev);
- struct modem_shared *msd =
- container_of(miscdev, struct io_device, miscdev)->msd;
- unsigned char *ip = (unsigned char *)&msd->loopback_ipaddr;
- char *p = buf;
-
- p += sprintf(buf, "%u.%u.%u.%u\n", ip[0], ip[1], ip[2], ip[3]);
-
- return p - buf;
-}
-
-static ssize_t store_loopback(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- struct miscdevice *miscdev = dev_get_drvdata(dev);
- struct modem_shared *msd =
- container_of(miscdev, struct io_device, miscdev)->msd;
-
- msd->loopback_ipaddr = ipv4str_to_be32(buf, count);
-
- return count;
-}
-
-static struct device_attribute attr_loopback =
- __ATTR(loopback, S_IRUGO | S_IWUSR, show_loopback, store_loopback);
-
-static int get_header_size(struct io_device *iod)
-{
- switch (iod->format) {
- case IPC_FMT:
- return sizeof(struct fmt_hdr);
-
- case IPC_RAW:
- case IPC_MULTI_RAW:
- return sizeof(struct raw_hdr);
-
- case IPC_RFS:
- return sizeof(struct rfs_hdr);
-
- case IPC_BOOT:
- /* minimum size for transaction align */
- return 4;
-
- case IPC_RAMDUMP:
- default:
- return 0;
- }
-}
-
-static int get_hdlc_size(struct io_device *iod, char *buf)
-{
- struct fmt_hdr *fmt_header;
- struct raw_hdr *raw_header;
- struct rfs_hdr *rfs_header;
-
- mif_debug("buf : %02x %02x %02x (%d)\n", *buf, *(buf + 1),
- *(buf + 2), __LINE__);
-
- switch (iod->format) {
- case IPC_FMT:
- fmt_header = (struct fmt_hdr *)buf;
- if (iod->mc->mdm_data->ipc_version == SIPC_VER_42)
- return fmt_header->len & 0x3FFF;
- else
- return fmt_header->len;
- case IPC_RAW:
- case IPC_MULTI_RAW:
- raw_header = (struct raw_hdr *)buf;
- return raw_header->len;
- case IPC_RFS:
- rfs_header = (struct rfs_hdr *)buf;
- return rfs_header->len;
- default:
- break;
- }
- return 0;
-}
-
-static void *get_header(struct io_device *iod, size_t count,
- char *frame_header_buf)
-{
- struct fmt_hdr *fmt_h;
- struct raw_hdr *raw_h;
- struct rfs_hdr *rfs_h;
-
- switch (iod->format) {
- case IPC_FMT:
- fmt_h = (struct fmt_hdr *)frame_header_buf;
-
- fmt_h->len = count + sizeof(struct fmt_hdr);
- fmt_h->control = 0;
-
- return (void *)frame_header_buf;
-
- case IPC_RAW:
- case IPC_MULTI_RAW:
- raw_h = (struct raw_hdr *)frame_header_buf;
-
- raw_h->len = count + sizeof(struct raw_hdr);
- raw_h->channel = iod->id & 0x1F;
- raw_h->control = 0;
-
- return (void *)frame_header_buf;
-
- case IPC_RFS:
- rfs_h = (struct rfs_hdr *)frame_header_buf;
-
- rfs_h->len = count + sizeof(struct raw_hdr);
- rfs_h->id = iod->id;
-
- return (void *)frame_header_buf;
-
- default:
- return 0;
- }
-}
-
-static inline int calc_padding_size(struct io_device *iod,
- struct link_device *ld, unsigned len)
-{
- if (ld->aligned)
- return (4 - (len & 0x3)) & 0x3;
- else
- return 0;
-}
-
-static inline int rx_hdlc_head_start_check(char *buf)
-{
- /* check hdlc head and return size of start byte */
- return (buf[0] == HDLC_START) ? SIZE_OF_HDLC_START : -EBADMSG;
-}
-
-static inline int rx_hdlc_tail_check(char *buf)
-{
- /* check hdlc tail and return size of tail byte */
- return (buf[0] == HDLC_END) ? SIZE_OF_HDLC_END : -EBADMSG;
-}
-
-/* remove hdlc header and store IPC header */
-static int rx_hdlc_head_check(struct io_device *iod, struct link_device *ld,
- char *buf, unsigned rest)
-{
- struct header_data *hdr = &fragdata(iod, ld)->h_data;
- int head_size = get_header_size(iod);
- int done_len = 0;
- int len = 0;
-
- /* first frame, remove start header 7F */
- if (!hdr->start) {
- len = rx_hdlc_head_start_check(buf);
- if (len < 0) {
- mif_err("Wrong HDLC start: 0x%x\n", *buf);
- return len; /*Wrong hdlc start*/
- }
-
- mif_debug("check len : %d, rest : %d (%d)\n", len,
- rest, __LINE__);
-
- /* set the start flag of current packet */
- hdr->start = HDLC_START;
- hdr->len = 0;
-
- /* debug print */
- switch (iod->format) {
- case IPC_FMT:
- case IPC_RAW:
- case IPC_MULTI_RAW:
- case IPC_RFS:
- /* TODO: print buf... */
- break;
-
- case IPC_CMD:
- case IPC_BOOT:
- case IPC_RAMDUMP:
- default:
- break;
- }
-
- buf += len;
- done_len += len;
- rest -= len; /* rest, call by value */
- }
-
- mif_debug("check len : %d, rest : %d (%d)\n",
- len, rest, __LINE__);
-
- /* store the HDLC header to iod priv */
- if (hdr->len < head_size) {
- len = min(rest, head_size - hdr->len);
- memcpy(hdr->hdr + hdr->len, buf, len);
- hdr->len += len;
- done_len += len;
- }
-
- mif_debug("check done_len : %d, rest : %d (%d)\n", done_len,
- rest, __LINE__);
- return done_len;
-}
-
-/* alloc skb and copy data to skb */
-static int rx_hdlc_data_check(struct io_device *iod, struct link_device *ld,
- char *buf, unsigned rest)
-{
- struct header_data *hdr = &fragdata(iod, ld)->h_data;
- struct sk_buff *skb = fragdata(iod, ld)->skb_recv;
- int head_size = get_header_size(iod);
- int data_size = get_hdlc_size(iod, hdr->hdr) - head_size;
- int alloc_size;
- int len = 0;
- int done_len = 0;
- int rest_len = data_size - hdr->frag_len;
- int continue_len = fragdata(iod, ld)->realloc_offset;
-
- mif_debug("head_size : %d, data_size : %d (%d)\n", head_size,
- data_size, __LINE__);
-
- if (continue_len) {
- /* check the HDLC header*/
- if (rx_hdlc_head_start_check(buf) == SIZE_OF_HDLC_START) {
- rest_len -= (head_size + SIZE_OF_HDLC_START);
- continue_len += (head_size + SIZE_OF_HDLC_START);
- }
-
- buf += continue_len;
- rest -= continue_len;
- done_len += continue_len;
- fragdata(iod, ld)->realloc_offset = 0;
-
- mif_debug("realloc_offset = %d\n", continue_len);
- }
-
- /* first payload data - alloc skb */
- if (!skb) {
- /* make skb data size under MAX_RXDATA_SIZE */
- alloc_size = min(data_size, MAX_RXDATA_SIZE);
- alloc_size = min(alloc_size, rest_len);
-
- /* exceptional case for RFS channel
- * make skb for header info first
- */
- if (iod->format == IPC_RFS && !hdr->frag_len) {
- skb = rx_alloc_skb(head_size, iod, ld);
- if (unlikely(!skb))
- return -ENOMEM;
- memcpy(skb_put(skb, head_size), hdr->hdr, head_size);
- rx_iodev_skb(skb);
- }
-
- /* allocate first packet for data, when its size exceed
- * MAX_RXDATA_SIZE, this packet will split to
- * multiple packets
- */
- skb = rx_alloc_skb(alloc_size, iod, ld);
- if (unlikely(!skb)) {
- fragdata(iod, ld)->realloc_offset = continue_len;
- return -ENOMEM;
- }
- fragdata(iod, ld)->skb_recv = skb;
- }
-
- while (rest) {
- /* copy length cannot exceed rest_len */
- len = min_t(int, rest_len, rest);
- /* copy length should be under skb tailroom size */
- len = min(len, skb_tailroom(skb));
- /* when skb tailroom is bigger than MAX_RXDATA_SIZE
- * restrict its size to MAX_RXDATA_SIZE just for convinience */
- len = min(len, MAX_RXDATA_SIZE);
-
- /* copy bytes to skb */
- memcpy(skb_put(skb, len), buf, len);
-
- /* adjusting variables */
- buf += len;
- rest -= len;
- done_len += len;
- rest_len -= len;
- hdr->frag_len += len;
-
- /* check if it is final for this packet sequence */
- if (!rest_len || !rest)
- break;
-
- /* more bytes are remain for this packet sequence
- * pass fully loaded skb to rx queue
- * and allocate another skb for continues data recv chain
- */
- rx_iodev_skb(skb);
- fragdata(iod, ld)->skb_recv = NULL;
-
- alloc_size = min(rest_len, MAX_RXDATA_SIZE);
-
- skb = rx_alloc_skb(alloc_size, iod, ld);
- if (unlikely(!skb)) {
- fragdata(iod, ld)->realloc_offset = done_len;
- return -ENOMEM;
- }
- fragdata(iod, ld)->skb_recv = skb;
- }
-
- mif_debug("rest : %d, alloc_size : %d , len : %d (%d)\n",
- rest, alloc_size, skb->len, __LINE__);
-
- return done_len;
-}
-
-static int rx_multi_fmt_frame(struct sk_buff *rx_skb)
-{
- struct io_device *iod = skbpriv(rx_skb)->iod;
- struct link_device *ld = skbpriv(rx_skb)->ld;
- struct fmt_hdr *fh =
- (struct fmt_hdr *)fragdata(iod, ld)->h_data.hdr;
- unsigned int id = fh->control & 0x7F;
- struct sk_buff *skb = iod->skb[id];
- unsigned char *data = fragdata(iod, ld)->skb_recv->data;
- unsigned int rcvd = fragdata(iod, ld)->skb_recv->len;
-
- if (!skb) {
- /* If there has been no multiple frame with this ID */
- if (!(fh->control & 0x80)) {
- /* It is a single frame because the "more" bit is 0. */
-#if 0
- mif_err("\n<%s> Rx FMT frame (len %d)\n",
- iod->name, rcvd);
- print_sipc4_fmt_frame(data);
- mif_err("\n");
-#endif
- skb_queue_tail(&iod->sk_rx_q,
- fragdata(iod, ld)->skb_recv);
- mif_debug("wake up wq of %s\n", iod->name);
- wake_up(&iod->wq);
- return 0;
- } else {
- struct fmt_hdr *fh = NULL;
- skb = rx_alloc_skb(MAX_MULTI_FMT_SIZE, iod, ld);
- if (!skb) {
- mif_err("<%d> alloc_skb fail\n",
- __LINE__);
- return -ENOMEM;
- }
- iod->skb[id] = skb;
-
- fh = (struct fmt_hdr *)data;
- mif_info("Start multi-frame (ID %d, len %d)",
- id, fh->len);
- }
- }
-
- /* Start multi-frame processing */
-
- memcpy(skb_put(skb, rcvd), data, rcvd);
- dev_kfree_skb_any(fragdata(iod, ld)->skb_recv);
-
- if (fh->control & 0x80) {
- /* The last frame has not arrived yet. */
- mif_info("Receiving (ID %d, %d bytes)\n",
- id, skb->len);
- } else {
- /* It is the last frame because the "more" bit is 0. */
- mif_info("The Last (ID %d, %d bytes received)\n",
- id, skb->len);
-#if 0
- mif_err("\n<%s> Rx FMT frame (len %d)\n",
- iod->name, skb->len);
- print_sipc4_fmt_frame(skb->data);
- mif_err("\n");
-#endif
- skb_queue_tail(&iod->sk_rx_q, skb);
- iod->skb[id] = NULL;
- mif_info("wake up wq of %s\n", iod->name);
- wake_up(&iod->wq);
- }
-
- return 0;
-}
-
-static int rx_multi_fmt_frame_sipc42(struct sk_buff *rx_skb)
-{
- struct io_device *iod = skbpriv(rx_skb)->iod;
- struct link_device *ld = skbpriv(rx_skb)->ld;
- struct fmt_hdr *fh =
- (struct fmt_hdr *)fragdata(iod, ld)->h_data.hdr;
- unsigned int id = fh->control & 0x7F;
- struct sk_buff *skb = iod->skb[id];
- unsigned char *data = fragdata(iod, ld)->skb_recv->data;
- unsigned int rcvd = fragdata(iod, ld)->skb_recv->len;
-
- u8 ch;
- struct io_device *real_iod = NULL;
-
- ch = (fh->len & 0xC000) >> 14;
- fh->len = fh->len & 0x3FFF;
- real_iod = ld->fmt_iods[ch];
- if (!real_iod) {
- mif_err("wrong channel %d\n", ch);
- return -1;
- }
- skbpriv(rx_skb)->real_iod = real_iod;
-
- if (!skb) {
- /* If there has been no multiple frame with this ID */
- if (!(fh->control & 0x80)) {
- /* It is a single frame because the "more" bit is 0. */
-#if 0
- mif_err("\n<%s> Rx FMT frame (len %d)\n",
- iod->name, rcvd);
- print_sipc4_fmt_frame(data);
- mif_err("\n");
-#endif
- skb_queue_tail(&real_iod->sk_rx_q,
- fragdata(iod, ld)->skb_recv);
- mif_debug("wake up wq of %s\n", iod->name);
- wake_up(&real_iod->wq);
- return 0;
- } else {
- struct fmt_hdr *fh = NULL;
- skb = rx_alloc_skb(MAX_MULTI_FMT_SIZE, real_iod, ld);
- if (!skb) {
- mif_err("alloc_skb fail\n");
- return -ENOMEM;
- }
- real_iod->skb[id] = skb;
-
- fh = (struct fmt_hdr *)data;
- mif_err("Start multi-frame (ID %d, len %d)",
- id, fh->len);
- }
- }
-
- /* Start multi-frame processing */
-
- memcpy(skb_put(skb, rcvd), data, rcvd);
- dev_kfree_skb_any(fragdata(real_iod, ld)->skb_recv);
-
- if (fh->control & 0x80) {
- /* The last frame has not arrived yet. */
- mif_err("Receiving (ID %d, %d bytes)\n",
- id, skb->len);
- } else {
- /* It is the last frame because the "more" bit is 0. */
- mif_err("The Last (ID %d, %d bytes received)\n",
- id, skb->len);
-#if 0
- mif_err("\n<%s> Rx FMT frame (len %d)\n",
- iod->name, skb->len);
- print_sipc4_fmt_frame(skb->data);
- mif_err("\n");
-#endif
- skb_queue_tail(&real_iod->sk_rx_q, skb);
- real_iod->skb[id] = NULL;
- mif_info("wake up wq of %s\n", real_iod->name);
- wake_up(&real_iod->wq);
- }
-
- return 0;
-}
-
-static int rx_iodev_skb_raw(struct sk_buff *skb)
-{
- int err = 0;
- struct io_device *iod = skbpriv(skb)->real_iod;
- struct net_device *ndev = NULL;
- struct iphdr *ip_header = NULL;
- struct ethhdr *ehdr = NULL;
- const char source[ETH_ALEN] = SOURCE_MAC_ADDR;
-
- /* check the real_iod is open? */
- /*
- if (atomic_read(&iod->opened) == 0) {
- mif_err("<%s> is not opened.\n",
- iod->name);
- pr_skb("drop packet", skb);
- return -ENOENT;
- }
- */
-
- switch (iod->io_typ) {
- case IODEV_MISC:
- mif_debug("<%s> sk_rx_q.qlen = %d\n",
- iod->name, iod->sk_rx_q.qlen);
- skb_queue_tail(&iod->sk_rx_q, skb);
- wake_up(&iod->wq);
- return 0;
-
- case IODEV_NET:
- ndev = iod->ndev;
- if (!ndev) {
- mif_err("<%s> ndev == NULL",
- iod->name);
- return -EINVAL;
- }
-
- skb->dev = ndev;
- ndev->stats.rx_packets++;
- ndev->stats.rx_bytes += skb->len;
-
- /* check the version of IP */
- ip_header = (struct iphdr *)skb->data;
- if (ip_header->version == IP6VERSION)
- skb->protocol = htons(ETH_P_IPV6);
- else
- skb->protocol = htons(ETH_P_IP);
-
- if (iod->use_handover) {
- skb_push(skb, sizeof(struct ethhdr));
- ehdr = (void *)skb->data;
- memcpy(ehdr->h_dest, ndev->dev_addr, ETH_ALEN);
- memcpy(ehdr->h_source, source, ETH_ALEN);
- ehdr->h_proto = skb->protocol;
- skb->ip_summed = CHECKSUM_UNNECESSARY;
- skb_reset_mac_header(skb);
-
- skb_pull(skb, sizeof(struct ethhdr));
- }
-
- if (in_irq())
- err = netif_rx(skb);
- else
- err = netif_rx_ni(skb);
-
- if (err != NET_RX_SUCCESS)
- dev_err(&ndev->dev, "rx error: %d\n", err);
-
- return err;
-
- default:
- mif_err("wrong io_type : %d\n", iod->io_typ);
- return -EINVAL;
- }
-}
-
-static void rx_iodev_work(struct work_struct *work)
-{
- int ret = 0;
- struct sk_buff *skb = NULL;
- struct io_device *iod = container_of(work, struct io_device,
- rx_work.work);
-
- while ((skb = skb_dequeue(&iod->sk_rx_q)) != NULL) {
- ret = rx_iodev_skb_raw(skb);
- if (ret < 0) {
- mif_err("<%s> rx_iodev_skb_raw err = %d",
- iod->name, ret);
- dev_kfree_skb_any(skb);
- } else if (ret == NET_RX_DROP) {
- mif_err("<%s> ret == NET_RX_DROP\n",
- iod->name);
- schedule_delayed_work(&iod->rx_work,
- msecs_to_jiffies(100));
- break;
- }
- }
-}
-
-static int rx_multipdp(struct sk_buff *skb)
-{
- u8 ch;
- struct io_device *iod = skbpriv(skb)->iod;
- struct link_device *ld = skbpriv(skb)->ld;
- struct raw_hdr *raw_header =
- (struct raw_hdr *)fragdata(iod, ld)->h_data.hdr;
- struct io_device *real_iod = NULL;
-
- ch = raw_header->channel;
- if (ch == DATA_LOOPBACK_CHANNEL && ld->msd->loopback_ipaddr)
- ch = RMNET0_CH_ID;
-
- real_iod = link_get_iod_with_channel(ld, 0x20 | ch);
- if (!real_iod) {
- mif_err("wrong channel %d\n", ch);
- return -1;
- }
-
- skbpriv(skb)->real_iod = real_iod;
- skb_queue_tail(&iod->sk_rx_q, skb);
- mif_debug("sk_rx_qlen:%d\n", iod->sk_rx_q.qlen);
-
- schedule_delayed_work(&iod->rx_work, 0);
- return 0;
-}
-
-/* de-mux function draft */
-static int rx_iodev_skb(struct sk_buff *skb)
-{
- struct io_device *iod = skbpriv(skb)->iod;
-
- switch (iod->format) {
- case IPC_MULTI_RAW:
- return rx_multipdp(skb);
-
- case IPC_FMT:
- if (iod->mc->mdm_data->ipc_version == SIPC_VER_42)
- return rx_multi_fmt_frame_sipc42(skb);
- else
- return rx_multi_fmt_frame(skb);
-
- case IPC_RFS:
- default:
- skb_queue_tail(&iod->sk_rx_q, skb);
- mif_debug("wake up wq of %s\n", iod->name);
- wake_up(&iod->wq);
- return 0;
- }
-}
-
-static int rx_hdlc_packet(struct io_device *iod, struct link_device *ld,
- const char *data, unsigned recv_size)
-{
- int rest = (int)recv_size;
- char *buf = (char *)data;
- int err = 0;
- int len = 0;
- unsigned rcvd = 0;
-
- if (rest <= 0)
- goto exit;
-
- mif_debug("RX_SIZE = %d, ld: %s\n", rest, ld->name);
-
- if (fragdata(iod, ld)->h_data.frag_len) {
- /*
- If the fragdata(iod, ld)->h_data.frag_len field is
- not zero, there is a HDLC frame that is waiting for more data
- or HDLC_END in the skb (fragdata(iod, ld)->skb_recv).
- In this case, rx_hdlc_head_check() must be skipped.
- */
- goto data_check;
- }
-
-next_frame:
- err = len = rx_hdlc_head_check(iod, ld, buf, rest);
- if (err < 0)
- goto exit;
- mif_debug("check len : %d, rest : %d (%d)\n", len, rest,
- __LINE__);
-
- buf += len;
- rest -= len;
- if (rest <= 0)
- goto exit;
-
-data_check:
- /*
- If the return value of rx_hdlc_data_check() is zero, there remains
- only HDLC_END that will be received.
- */
- err = len = rx_hdlc_data_check(iod, ld, buf, rest);
- if (err < 0)
- goto exit;
- mif_debug("check len : %d, rest : %d (%d)\n", len, rest,
- __LINE__);
-
- buf += len;
- rest -= len;
-
- if (!rest && fragdata(iod, ld)->h_data.frag_len) {
- /*
- Data is being received and more data or HDLC_END does not
- arrive yet, but there is no more data in the buffer. More
- data may come within the next frame from the link device.
- */
- return 0;
- } else if (rest <= 0)
- goto exit;
-
- /* At this point, one HDLC frame except HDLC_END has been received. */
-
- err = len = rx_hdlc_tail_check(buf);
- if (err < 0) {
- mif_err("Wrong HDLC end: 0x%02X\n", *buf);
- goto exit;
- }
- mif_debug("check len : %d, rest : %d (%d)\n", len, rest,
- __LINE__);
- buf += len;
- rest -= len;
-
- /* At this point, one complete HDLC frame has been received. */
-
- /*
- The padding size is applied for the next HDLC frame. Zero will be
- returned by calc_padding_size() if the link device does not require
- 4-byte aligned access.
- */
- rcvd = get_hdlc_size(iod, fragdata(iod, ld)->h_data.hdr) +
- (SIZE_OF_HDLC_START + SIZE_OF_HDLC_END);
- len = calc_padding_size(iod, ld, rcvd);
- buf += len;
- rest -= len;
- if (rest < 0)
- goto exit;
-
- err = rx_iodev_skb(fragdata(iod, ld)->skb_recv);
- if (err < 0)
- goto exit;
-
- /* initialize header & skb */
- fragdata(iod, ld)->skb_recv = NULL;
- memset(&fragdata(iod, ld)->h_data, 0x00,
- sizeof(struct header_data));
- fragdata(iod, ld)->realloc_offset = 0;
-
- if (rest)
- goto next_frame;
-
-exit:
- /* free buffers. mipi-hsi re-use recv buf */
-
- if (rest < 0)
- err = -ERANGE;
-
- if (err == -ENOMEM) {
- if (!(fragdata(iod, ld)->h_data.frag_len))
- memset(&fragdata(iod, ld)->h_data, 0x00,
- sizeof(struct header_data));
- return err;
- }
-
- if (err < 0 && fragdata(iod, ld)->skb_recv) {
- dev_kfree_skb_any(fragdata(iod, ld)->skb_recv);
- fragdata(iod, ld)->skb_recv = NULL;
-
- /* clear headers */
- memset(&fragdata(iod, ld)->h_data, 0x00,
- sizeof(struct header_data));
- fragdata(iod, ld)->realloc_offset = 0;
- }
-
- return err;
-}
-
-static int rx_rfs_packet(struct io_device *iod, struct link_device *ld,
- const char *data, unsigned size)
-{
- int err = 0;
- int pad = 0;
- int rcvd = 0;
- struct sk_buff *skb;
-
- if (data[0] != HDLC_START) {
- mif_err("Dropping RFS packet ... "
- "size = %d, start = %02X %02X %02X %02X\n",
- size,
- data[0], data[1], data[2], data[3]);
- return -EINVAL;
- }
-
- if (data[size-1] != HDLC_END) {
- for (pad = 1; pad < 4; pad++)
- if (data[(size-1)-pad] == HDLC_END)
- break;
-
- if (pad >= 4) {
- char *b = (char *)data;
- unsigned sz = size;
- mif_err("size %d, No END_FLAG!!!\n", size);
- mif_err("end = %02X %02X %02X %02X\n",
- b[sz-4], b[sz-3], b[sz-2], b[sz-1]);
- return -EINVAL;
- } else {
- mif_info("padding = %d\n", pad);
- }
- }
-
- skb = rx_alloc_skb(size, iod, ld);
- if (unlikely(!skb)) {
- mif_err("alloc_skb fail\n");
- return -ENOMEM;
- }
-
- /* copy the RFS haeder to skb->data */
- rcvd = size - sizeof(hdlc_start) - sizeof(hdlc_end) - pad;
- memcpy(skb_put(skb, rcvd), ((char *)data + sizeof(hdlc_start)), rcvd);
-
- fragdata(iod, ld)->skb_recv = skb;
- err = rx_iodev_skb(fragdata(iod, ld)->skb_recv);
-
- return err;
-}
-
-/* called from link device when a packet arrives for this io device */
-static int io_dev_recv_data_from_link_dev(struct io_device *iod,
- struct link_device *ld, const char *data, unsigned int len)
-{
- struct sk_buff *skb;
- int err;
- unsigned int alloc_size, rest_len;
- char *cur;
-
-
- /* check the iod(except IODEV_DUMMY) is open?
- * if the iod is MULTIPDP, check this data on rx_iodev_skb_raw()
- * because, we cannot know the channel no in here.
- */
- /*
- if (iod->io_typ != IODEV_DUMMY && atomic_read(&iod->opened) == 0) {
- mif_err("<%s> is not opened.\n", iod->name);
- pr_buffer("drop packet", data, len, 16u);
- return -ENOENT;
- }
- */
-
- switch (iod->format) {
- case IPC_RFS:
-#ifdef CONFIG_IPC_CMC22x_OLD_RFS
- err = rx_rfs_packet(iod, ld, data, len);
- return err;
-#endif
-
- case IPC_FMT:
- case IPC_RAW:
- case IPC_MULTI_RAW:
- if (iod->waketime)
- wake_lock_timeout(&iod->wakelock, iod->waketime);
- err = rx_hdlc_packet(iod, ld, data, len);
- if (err < 0)
- mif_err("fail process HDLC frame\n");
- return err;
-
- case IPC_CMD:
- /* TODO- handle flow control command from CP */
- return 0;
-
- case IPC_BOOT:
- case IPC_RAMDUMP:
- /* save packet to sk_buff */
- skb = rx_alloc_skb(len, iod, ld);
- if (skb) {
- mif_debug("boot len : %d\n", len);
-
- memcpy(skb_put(skb, len), data, len);
- skb_queue_tail(&iod->sk_rx_q, skb);
- mif_debug("skb len : %d\n", skb->len);
-
- wake_up(&iod->wq);
- return len;
- }
- /* 32KB page alloc fail case, alloc 3.5K a page.. */
- mif_info("(%d)page fail, alloc fragment pages\n", len);
-
- rest_len = len;
- cur = (char *)data;
- while (rest_len) {
- alloc_size = min_t(unsigned int, MAX_RXDATA_SIZE,
- rest_len);
- skb = rx_alloc_skb(alloc_size, iod, ld);
- if (!skb) {
- mif_err("fail alloc skb (%d)\n", __LINE__);
- return -ENOMEM;
- }
- mif_debug("boot len : %d\n", alloc_size);
-
- memcpy(skb_put(skb, alloc_size), cur, alloc_size);
- skb_queue_tail(&iod->sk_rx_q, skb);
- mif_debug("skb len : %d\n", skb->len);
-
- rest_len -= alloc_size;
- cur += alloc_size;
- }
- wake_up(&iod->wq);
- return len;
-
- default:
- return -EINVAL;
- }
-}
-
-/* inform the IO device that the modem is now online or offline or
- * crashing or whatever...
- */
-static void io_dev_modem_state_changed(struct io_device *iod,
- enum modem_state state)
-{
- iod->mc->phone_state = state;
- mif_err("modem state changed. (iod: %s, state: %d)\n",
- iod->name, state);
-
- if ((state == STATE_CRASH_RESET) || (state == STATE_CRASH_EXIT)
- || (state == STATE_NV_REBUILDING))
- wake_up(&iod->wq);
-}
-
-/**
- * io_dev_sim_state_changed
- * @iod: IPC's io_device
- * @sim_online: SIM is online?
- */
-static void io_dev_sim_state_changed(struct io_device *iod, bool sim_online)
-{
- if (atomic_read(&iod->opened) == 0) {
- mif_err("iod is not opened: %s\n", iod->name);
- /* update latest sim status */
- iod->mc->sim_state.online = sim_online;
- } else if (iod->mc->sim_state.online == sim_online) {
- mif_err("sim state not changed.\n");
- } else {
- iod->mc->sim_state.online = sim_online;
- iod->mc->sim_state.changed = true;
- wake_lock_timeout(&iod->mc->bootd->wakelock,
- iod->mc->bootd->waketime);
- mif_err("sim state changed. (iod: %s, state: "
- "[online=%d, changed=%d])\n",
- iod->name, iod->mc->sim_state.online,
- iod->mc->sim_state.changed);
- wake_up(&iod->wq);
- }
-}
-
-static int misc_open(struct inode *inode, struct file *filp)
-{
- struct io_device *iod = to_io_device(filp->private_data);
- struct modem_shared *msd = iod->msd;
- struct link_device *ld;
- int ret;
- filp->private_data = (void *)iod;
-
- mif_err("iod = %s\n", iod->name);
- atomic_inc(&iod->opened);
-
- list_for_each_entry(ld, &msd->link_dev_list, list) {
- if (IS_CONNECTED(iod, ld) && ld->init_comm) {
- ret = ld->init_comm(ld, iod);
- if (ret < 0) {
- mif_err("%s: init_comm error: %d\n",
- ld->name, ret);
- return ret;
- }
- }
- }
-
- return 0;
-}
-
-static int misc_release(struct inode *inode, struct file *filp)
-{
- struct io_device *iod = (struct io_device *)filp->private_data;
- struct modem_shared *msd = iod->msd;
- struct link_device *ld;
-
- mif_err("iod = %s\n", iod->name);
- atomic_dec(&iod->opened);
- skb_queue_purge(&iod->sk_rx_q);
-
- list_for_each_entry(ld, &msd->link_dev_list, list) {
- if (IS_CONNECTED(iod, ld) && ld->terminate_comm)
- ld->terminate_comm(ld, iod);
- }
-
- return 0;
-}
-
-static unsigned int misc_poll(struct file *filp, struct poll_table_struct *wait)
-{
- struct io_device *iod = (struct io_device *)filp->private_data;
-
- poll_wait(filp, &iod->wq, wait);
-
- if ((!skb_queue_empty(&iod->sk_rx_q)) &&
- (iod->mc->phone_state != STATE_OFFLINE)) {
- return POLLIN | POLLRDNORM;
- } else if ((iod->mc->phone_state == STATE_CRASH_RESET) ||
- (iod->mc->phone_state == STATE_CRASH_EXIT) ||
- (iod->mc->phone_state == STATE_NV_REBUILDING) ||
-#if defined(CONFIG_SEC_DUAL_MODEM_MODE)
- (iod->mc->phone_state == STATE_MODEM_SWITCH) ||
-#endif
- (iod->mc->sim_state.changed)) {
- if (iod->format == IPC_RAW) {
- msleep(20);
- return 0;
- }
- return POLLHUP;
- } else {
- return 0;
- }
-}
-
-static long misc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
-{
- int p_state;
- struct io_device *iod = (struct io_device *)filp->private_data;
- struct link_device *ld = get_current_link(iod);
- char cpinfo_buf[530] = "CP Crash ";
- unsigned long size;
- int ret;
- char str[TASK_COMM_LEN];
-
- mif_debug("cmd = 0x%x\n", cmd);
-
- switch (cmd) {
- case IOCTL_MODEM_ON:
- mif_debug("misc_ioctl : IOCTL_MODEM_ON\n");
- return iod->mc->ops.modem_on(iod->mc);
-
- case IOCTL_MODEM_OFF:
- mif_debug("misc_ioctl : IOCTL_MODEM_OFF\n");
- return iod->mc->ops.modem_off(iod->mc);
-
- case IOCTL_MODEM_RESET:
- mif_debug("misc_ioctl : IOCTL_MODEM_RESET\n");
- return iod->mc->ops.modem_reset(iod->mc);
-
- case IOCTL_MODEM_BOOT_ON:
- mif_debug("misc_ioctl : IOCTL_MODEM_BOOT_ON\n");
- return iod->mc->ops.modem_boot_on(iod->mc);
-
- case IOCTL_MODEM_BOOT_OFF:
- mif_debug("misc_ioctl : IOCTL_MODEM_BOOT_OFF\n");
- return iod->mc->ops.modem_boot_off(iod->mc);
-
- /* TODO - will remove this command after ril updated */
- case IOCTL_MODEM_BOOT_DONE:
- mif_debug("misc_ioctl : IOCTL_MODEM_BOOT_DONE\n");
- return 0;
-
- case IOCTL_MODEM_STATUS:
- mif_debug("misc_ioctl : IOCTL_MODEM_STATUS\n");
-
- p_state = iod->mc->phone_state;
- if ((p_state == STATE_CRASH_RESET) ||
- (p_state == STATE_CRASH_EXIT)) {
- mif_err("<%s> send err state : %d\n",
- iod->name, p_state);
- } else if (iod->mc->sim_state.changed &&
- !strcmp(get_task_comm(str, get_current()), "rild")) {
- int s_state = iod->mc->sim_state.online ?
- STATE_SIM_ATTACH : STATE_SIM_DETACH;
- iod->mc->sim_state.changed = false;
-
- mif_info("SIM states (%d) to %s\n", s_state, str);
- return s_state;
- } else if (p_state == STATE_NV_REBUILDING) {
- mif_info("send nv rebuild state : %d\n",
- p_state);
- iod->mc->phone_state = STATE_ONLINE;
- }
- return p_state;
-
- case IOCTL_MODEM_PROTOCOL_SUSPEND:
- mif_info("misc_ioctl : IOCTL_MODEM_PROTOCOL_SUSPEND\n");
-
- if (iod->format != IPC_MULTI_RAW)
- return -EINVAL;
-
- iodevs_for_each(iod->msd, iodev_netif_stop, 0);
- return 0;
-
- case IOCTL_MODEM_PROTOCOL_RESUME:
- mif_info("misc_ioctl : IOCTL_MODEM_PROTOCOL_RESUME\n");
-
- if (iod->format != IPC_MULTI_RAW)
- return -EINVAL;
-
- iodevs_for_each(iod->msd, iodev_netif_wake, 0);
- return 0;
-
- case IOCTL_MODEM_DUMP_START:
- mif_err("misc_ioctl : IOCTL_MODEM_DUMP_START\n");
- return ld->dump_start(ld, iod);
-
- case IOCTL_MODEM_DUMP_UPDATE:
- mif_debug("misc_ioctl : IOCTL_MODEM_DUMP_UPDATE\n");
- return ld->dump_update(ld, iod, arg);
-
- case IOCTL_MODEM_FORCE_CRASH_EXIT:
- mif_debug("misc_ioctl : IOCTL_MODEM_FORCE_CRASH_EXIT\n");
- if (iod->mc->ops.modem_force_crash_exit)
- return iod->mc->ops.modem_force_crash_exit(iod->mc);
- return -EINVAL;
-
- case IOCTL_MODEM_CP_UPLOAD:
- mif_err("misc_ioctl : IOCTL_MODEM_CP_UPLOAD\n");
- if (copy_from_user(cpinfo_buf + strlen(cpinfo_buf),
- (void __user *)arg, MAX_CPINFO_SIZE) != 0)
- panic("CP Crash");
- else
- panic(cpinfo_buf);
- return 0;
-
- case IOCTL_MODEM_DUMP_RESET:
- mif_err("misc_ioctl : IOCTL_MODEM_DUMP_RESET\n");
- return iod->mc->ops.modem_dump_reset(iod->mc);
-
-#if defined(CONFIG_SEC_DUAL_MODEM_MODE)
- case IOCTL_MODEM_SWITCH_MODEM:
- mif_err("misc_ioctl : IOCTL_MODEM_SWITCH_MODEM\n");
- iod->mc->phone_state = STATE_MODEM_SWITCH;
- wake_up(&iod->wq);
- return 0;
-#endif
-
- case IOCTL_MIF_LOG_DUMP:
- size = MAX_MIF_BUFF_SIZE;
- ret = copy_to_user((void __user *)arg, &size,
- sizeof(unsigned long));
- if (ret < 0)
- return -EFAULT;
-
- mif_dump_log(iod->mc->msd, iod);
- return 0;
-
- case IOCTL_MIF_DPRAM_DUMP:
-#ifdef CONFIG_LINK_DEVICE_DPRAM
- if (iod->mc->mdm_data->link_types & LINKTYPE(LINKDEV_DPRAM)) {
- size = iod->mc->mdm_data->dpram_ctl->dp_size;
- ret = copy_to_user((void __user *)arg, &size,
- sizeof(unsigned long));
- if (ret < 0)
- return -EFAULT;
- mif_dump_dpram(iod);
- return 0;
- }
-#endif
- return -EINVAL;
-
- default:
- /* If you need to handle the ioctl for specific link device,
- * then assign the link ioctl handler to ld->ioctl
- * It will be call for specific link ioctl */
- if (ld->ioctl)
- return ld->ioctl(ld, iod, cmd, arg);
-
- mif_err("misc_ioctl : ioctl 0x%X is not defined.\n", cmd);
- return -EINVAL;
- }
- return 0;
-}
-
-static size_t _boot_write(struct io_device *iod, const char __user *buf,
- size_t count)
-{
- int rest_len = count, frame_len = 0;
- char *cur = (char *)buf;
- struct sk_buff *skb = NULL;
- struct link_device *ld = get_current_link(iod);
- int ret;
-
- while (rest_len) {
- frame_len = min(rest_len, MAX_BOOTDATA_SIZE);
- skb = alloc_skb(frame_len, GFP_KERNEL);
- if (!skb) {
- mif_err("fail alloc skb (%d)\n", __LINE__);
- return -ENOMEM;
- }
- if (copy_from_user(
- skb_put(skb, frame_len), cur, frame_len) != 0) {
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
- rest_len -= frame_len;
- cur += frame_len;
-
- skbpriv(skb)->iod = iod;
- skbpriv(skb)->ld = ld;
-
- ret = ld->send(ld, iod, skb);
- if (ret < 0) {
- dev_kfree_skb_any(skb);
- return ret;
- }
- }
- return count;
-}
-
-static ssize_t misc_write(struct file *filp, const char __user *buf,
- size_t count, loff_t *ppos)
-{
- struct io_device *iod = (struct io_device *)filp->private_data;
- struct link_device *ld = get_current_link(iod);
- int frame_len = 0;
- char frame_header_buf[sizeof(struct raw_hdr)];
- struct sk_buff *skb;
- int err;
- size_t tx_size;
-
- /* TODO - check here flow control for only raw data */
-
- frame_len = SIZE_OF_HDLC_START +
- get_header_size(iod) +
- count +
- SIZE_OF_HDLC_END;
- if (ld->aligned)
- frame_len += MAX_LINK_PADDING_SIZE;
-
- skb = alloc_skb(frame_len, GFP_KERNEL);
- if (!skb) {
- if (frame_len > MAX_BOOTDATA_SIZE && iod->format == IPC_BOOT) {
- mif_info("large alloc fail\n");
- return _boot_write(iod, buf, count);
- }
- mif_err("fail alloc skb (%d)\n", __LINE__);
- return -ENOMEM;
- }
-
- switch (iod->format) {
- case IPC_BOOT:
- case IPC_RAMDUMP:
- if (copy_from_user(skb_put(skb, count), buf, count) != 0) {
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
- break;
-
- case IPC_RFS:
- memcpy(skb_put(skb, SIZE_OF_HDLC_START), hdlc_start,
- SIZE_OF_HDLC_START);
- if (copy_from_user(skb_put(skb, count), buf, count) != 0) {
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
- memcpy(skb_put(skb, SIZE_OF_HDLC_END), hdlc_end,
- SIZE_OF_HDLC_END);
- break;
-
- default:
- memcpy(skb_put(skb, SIZE_OF_HDLC_START), hdlc_start,
- SIZE_OF_HDLC_START);
- memcpy(skb_put(skb, get_header_size(iod)),
- get_header(iod, count, frame_header_buf),
- get_header_size(iod));
- if (copy_from_user(skb_put(skb, count), buf, count) != 0) {
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
- memcpy(skb_put(skb, SIZE_OF_HDLC_END), hdlc_end,
- SIZE_OF_HDLC_END);
- break;
- }
-
- skb_put(skb, calc_padding_size(iod, ld, skb->len));
-
-#if 0
- if (iod->format == IPC_FMT) {
- mif_err("\n<%s> Tx HDLC FMT frame (len %d)\n",
- iod->name, skb->len);
- print_sipc4_hdlc_fmt_frame(skb->data);
- mif_err("\n");
- }
-#endif
-#if 0
- if (iod->format == IPC_RAW) {
- mif_err("\n<%s> Tx HDLC RAW frame (len %d)\n",
- iod->name, skb->len);
- mif_print_data(skb->data, (skb->len < 64 ? skb->len : 64));
- mif_err("\n");
- }
-#endif
-#if 0
- if (iod->format == IPC_RFS) {
- mif_err("\n<%s> Tx HDLC RFS frame (len %d)\n",
- iod->name, skb->len);
- mif_print_data(skb->data, (skb->len < 64 ? skb->len : 64));
- mif_err("\n");
- }
-#endif
-
- /* send data with sk_buff, link device will put sk_buff
- * into the specific sk_buff_q and run work-q to send data
- */
- tx_size = skb->len;
-
- skbpriv(skb)->iod = iod;
- skbpriv(skb)->ld = ld;
-
- err = ld->send(ld, iod, skb);
- if (err < 0) {
- dev_kfree_skb_any(skb);
- return err;
- }
-
- if (err != tx_size)
- mif_err("WARNNING: wrong tx size: %s, format=%d "
- "count=%d, tx_size=%d, return_size=%d",
- iod->name, iod->format, count, tx_size, err);
-
- /* Temporaly enable t he RFS log for debugging IPC RX pedding issue */
- if (iod->format == IPC_RFS)
- mif_info("write rfs size = %d\n", count);
-
- return count;
-}
-
-static ssize_t misc_read(struct file *filp, char *buf, size_t count,
- loff_t *f_pos)
-{
- struct io_device *iod = (struct io_device *)filp->private_data;
- struct sk_buff *skb = NULL;
- int pktsize = 0;
- unsigned int rest_len, copy_len;
- char *cur = buf;
-
- skb = skb_dequeue(&iod->sk_rx_q);
- if (!skb) {
- mif_err("<%s> no data from sk_rx_q\n", iod->name);
- return 0;
- }
- mif_debug("<%s> skb->len : %d\n", iod->name, skb->len);
-
- if (iod->format == IPC_BOOT) {
- pktsize = rest_len = count;
- while (rest_len) {
- if (skb->len > rest_len) {
- /* BOOT device receviced rx data as serial
- stream, return data by User requested size */
- mif_err("skb->len %d > count %d\n", skb->len,
- rest_len);
- pr_skb("BOOT-wRX", skb);
- if (copy_to_user(cur, skb->data, rest_len)
- != 0) {
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
- cur += rest_len;
- skb_pull(skb, rest_len);
- if (skb->len) {
- mif_info("queue-head, skb->len = %d\n",
- skb->len);
- skb_queue_head(&iod->sk_rx_q, skb);
- }
- mif_debug("return %u\n", rest_len);
- return rest_len;
- }
-
- copy_len = min(rest_len, skb->len);
- if (copy_to_user(cur, skb->data, copy_len) != 0) {
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
- cur += skb->len;
- dev_kfree_skb_any(skb);
- rest_len -= copy_len;
-
- if (!rest_len)
- break;
-
- skb = skb_dequeue(&iod->sk_rx_q);
- if (!skb) {
- mif_err("<%s> %d / %d sk_rx_q\n", iod->name,
- (count - rest_len), count);
- return count - rest_len;
- }
- }
- } else {
- if (skb->len > count) {
- mif_err("<%s> skb->len %d > count %d\n", iod->name,
- skb->len, count);
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
- pktsize = skb->len;
- if (copy_to_user(buf, skb->data, pktsize) != 0) {
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
- if (iod->format == IPC_FMT)
- mif_debug("copied %d bytes to user\n", pktsize);
-
- dev_kfree_skb_any(skb);
- }
- return pktsize;
-}
-
-#ifdef CONFIG_LINK_DEVICE_C2C
-static int misc_mmap(struct file *filp, struct vm_area_struct *vma)
-{
- int r = 0;
- unsigned long size = 0;
- unsigned long pfn = 0;
- unsigned long offset = 0;
- struct io_device *iod = (struct io_device *)filp->private_data;
-
- if (!vma)
- return -EFAULT;
-
- size = vma->vm_end - vma->vm_start;
- offset = vma->vm_pgoff << PAGE_SHIFT;
- if (offset + size > (C2C_CP_RGN_SIZE + C2C_SH_RGN_SIZE)) {
- mif_err("offset + size > C2C_CP_RGN_SIZE\n");
- return -EINVAL;
- }
-
- /* Set the noncacheable property to the region */
- vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
- vma->vm_flags |= VM_RESERVED | VM_IO;
-
- pfn = __phys_to_pfn(C2C_CP_RGN_ADDR + offset);
- r = remap_pfn_range(vma, vma->vm_start, pfn, size, vma->vm_page_prot);
- if (r) {
- mif_err("Failed in remap_pfn_range()!!!\n");
- return -EAGAIN;
- }
-
- mif_err("VA = 0x%08lx, offset = 0x%lx, size = %lu\n",
- vma->vm_start, offset, size);
-
- return 0;
-}
-#endif
-
-static const struct file_operations misc_io_fops = {
- .owner = THIS_MODULE,
- .open = misc_open,
- .release = misc_release,
- .poll = misc_poll,
- .unlocked_ioctl = misc_ioctl,
- .write = misc_write,
- .read = misc_read,
-#ifdef CONFIG_LINK_DEVICE_C2C
- .mmap = misc_mmap,
-#endif
-};
-
-static int vnet_open(struct net_device *ndev)
-{
- struct vnet *vnet = netdev_priv(ndev);
- netif_start_queue(ndev);
- atomic_inc(&vnet->iod->opened);
- return 0;
-}
-
-static int vnet_stop(struct net_device *ndev)
-{
- struct vnet *vnet = netdev_priv(ndev);
- atomic_dec(&vnet->iod->opened);
- netif_stop_queue(ndev);
- return 0;
-}
-
-static int vnet_xmit(struct sk_buff *skb, struct net_device *ndev)
-{
- int ret = 0;
- int headroom = 0;
- int tailroom = 0;
- struct sk_buff *skb_new = NULL;
- struct vnet *vnet = netdev_priv(ndev);
- struct io_device *iod = vnet->iod;
- struct link_device *ld = get_current_link(iod);
- struct raw_hdr hd;
- struct iphdr *ip_header = NULL;
-
- /* When use `handover' with Network Bridge,
- * user -> TCP/IP(kernel) -> bridge device -> TCP/IP(kernel) -> this.
- *
- * We remove the one ethernet header of skb before using skb->len,
- * because the skb has two ethernet headers.
- */
- if (iod->use_handover) {
- if (iod->id >= PSD_DATA_CHID_BEGIN &&
- iod->id <= PSD_DATA_CHID_END)
- skb_pull(skb, sizeof(struct ethhdr));
- }
-
- /* ip loop-back */
- ip_header = (struct iphdr *)skb->data;
- if (iod->msd->loopback_ipaddr &&
- ip_header->daddr == iod->msd->loopback_ipaddr) {
- swap(ip_header->saddr, ip_header->daddr);
- hd.channel = DATA_LOOPBACK_CHANNEL;
- } else {
- hd.channel = iod->id & 0x1F;
- }
- hd.len = skb->len + sizeof(hd);
- hd.control = 0;
-
- headroom = sizeof(hd) + sizeof(hdlc_start);
- tailroom = sizeof(hdlc_end);
- if (ld->aligned)
- tailroom += MAX_LINK_PADDING_SIZE;
- if (skb_headroom(skb) < headroom || skb_tailroom(skb) < tailroom) {
- skb_new = skb_copy_expand(skb, headroom, tailroom, GFP_ATOMIC);
- /* skb_copy_expand success or not, free old skb from caller */
- dev_kfree_skb_any(skb);
- if (!skb_new)
- return -ENOMEM;
- } else
- skb_new = skb;
-
- memcpy(skb_push(skb_new, sizeof(hd)), &hd, sizeof(hd));
- memcpy(skb_push(skb_new, sizeof(hdlc_start)), hdlc_start,
- sizeof(hdlc_start));
- memcpy(skb_put(skb_new, sizeof(hdlc_end)), hdlc_end, sizeof(hdlc_end));
- skb_put(skb_new, calc_padding_size(iod, ld, skb_new->len));
-
- skbpriv(skb_new)->iod = iod;
- skbpriv(skb_new)->ld = ld;
-
- ret = ld->send(ld, iod, skb_new);
- if (ret < 0) {
- netif_stop_queue(ndev);
- dev_kfree_skb_any(skb_new);
- return NETDEV_TX_BUSY;
- }
-
- ndev->stats.tx_packets++;
- ndev->stats.tx_bytes += skb->len;
-
- return NETDEV_TX_OK;
-}
-
-static struct net_device_ops vnet_ops = {
- .ndo_open = vnet_open,
- .ndo_stop = vnet_stop,
- .ndo_start_xmit = vnet_xmit,
-};
-
-static void vnet_setup(struct net_device *ndev)
-{
- ndev->netdev_ops = &vnet_ops;
- ndev->type = ARPHRD_PPP;
- ndev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
- ndev->addr_len = 0;
- ndev->hard_header_len = 0;
- ndev->tx_queue_len = 1000;
- ndev->mtu = ETH_DATA_LEN;
- ndev->watchdog_timeo = 5 * HZ;
-}
-
-static void vnet_setup_ether(struct net_device *ndev)
-{
- ndev->netdev_ops = &vnet_ops;
- ndev->type = ARPHRD_ETHER;
- ndev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST | IFF_SLAVE;
- ndev->addr_len = ETH_ALEN;
- random_ether_addr(ndev->dev_addr);
- ndev->hard_header_len = 0;
- ndev->tx_queue_len = 1000;
- ndev->mtu = ETH_DATA_LEN;
- ndev->watchdog_timeo = 5 * HZ;
-}
-
-int sipc4_init_io_device(struct io_device *iod)
-{
- int ret = 0;
- struct vnet *vnet;
-
- /* Get modem state from modem control device */
- iod->modem_state_changed = io_dev_modem_state_changed;
-
- iod->sim_state_changed = io_dev_sim_state_changed;
-
- /* Get data from link device */
- iod->recv = io_dev_recv_data_from_link_dev;
-
- /* Register misc or net device */
- switch (iod->io_typ) {
- case IODEV_MISC:
- init_waitqueue_head(&iod->wq);
- skb_queue_head_init(&iod->sk_rx_q);
- INIT_DELAYED_WORK(&iod->rx_work, rx_iodev_work);
-
- iod->miscdev.minor = MISC_DYNAMIC_MINOR;
- iod->miscdev.name = iod->name;
- iod->miscdev.fops = &misc_io_fops;
-
- ret = misc_register(&iod->miscdev);
- if (ret)
- mif_err("failed to register misc io device : %s\n",
- iod->name);
-
- break;
-
- case IODEV_NET:
- skb_queue_head_init(&iod->sk_rx_q);
- if (iod->use_handover)
- iod->ndev = alloc_netdev(0, iod->name,
- vnet_setup_ether);
- else
- iod->ndev = alloc_netdev(0, iod->name, vnet_setup);
-
- if (!iod->ndev) {
- mif_err("failed to alloc netdev\n");
- return -ENOMEM;
- }
-
- ret = register_netdev(iod->ndev);
- if (ret)
- free_netdev(iod->ndev);
-
- mif_debug("(iod:0x%p)\n", iod);
- vnet = netdev_priv(iod->ndev);
- mif_debug("(vnet:0x%p)\n", vnet);
- vnet->iod = iod;
-
- break;
-
- case IODEV_DUMMY:
- skb_queue_head_init(&iod->sk_rx_q);
- INIT_DELAYED_WORK(&iod->rx_work, rx_iodev_work);
-
- iod->miscdev.minor = MISC_DYNAMIC_MINOR;
- iod->miscdev.name = iod->name;
- iod->miscdev.fops = &misc_io_fops;
-
- ret = misc_register(&iod->miscdev);
- if (ret)
- mif_err("failed to register misc io device : %s\n",
- iod->name);
- ret = device_create_file(iod->miscdev.this_device,
- &attr_waketime);
- if (ret)
- mif_err("failed to create `waketime' file : %s\n",
- iod->name);
- ret = device_create_file(iod->miscdev.this_device,
- &attr_loopback);
- if (ret)
- mif_err("failed to create `loopback file' : %s\n",
- iod->name);
- break;
-
- default:
- mif_err("wrong io_type : %d\n", iod->io_typ);
- return -EINVAL;
- }
-
- mif_debug("%s(%d) : init_io_device() done : %d\n",
- iod->name, iod->io_typ, ret);
- return ret;
-}
-
diff --git a/drivers/misc/modem_if_u1/sipc4_modem.c b/drivers/misc/modem_if_u1/sipc4_modem.c
deleted file mode 100644
index 542b482..0000000
--- a/drivers/misc/modem_if_u1/sipc4_modem.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/* linux/drivers/modem/modem.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/interrupt.h>
-#include <linux/platform_device.h>
-#include <linux/miscdevice.h>
-
-#include <linux/uaccess.h>
-#include <linux/fs.h>
-#include <linux/io.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/slab.h>
-#include <linux/mutex.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/wakelock.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include "modem_variation.h"
-#include "modem_utils.h"
-
-#define FMT_WAKE_TIME (HZ/2)
-#define RFS_WAKE_TIME (HZ*3)
-#define RAW_WAKE_TIME (HZ*6)
-
-static struct modem_shared *create_modem_shared_data(void)
-{
- struct modem_shared *msd;
-
- msd = kzalloc(sizeof(struct modem_shared), GFP_KERNEL);
- if (!msd)
- return NULL;
-
- /* initialize link device list */
- INIT_LIST_HEAD(&msd->link_dev_list);
-
- /* initialize tree of io devices */
- msd->iodevs_tree_chan = RB_ROOT;
- msd->iodevs_tree_fmt = RB_ROOT;
-
- msd->storage.cnt = 0;
- msd->storage.addr =
- kzalloc(MAX_MIF_BUFF_SIZE + MAX_MIF_SEPA_SIZE, GFP_KERNEL);
- if (!msd->storage.addr) {
- mif_err("IPC logger buff alloc failed!!\n");
- return NULL;
- }
- memset(msd->storage.addr, 0, MAX_MIF_BUFF_SIZE);
- memcpy(msd->storage.addr, MIF_SEPARATOR, MAX_MIF_SEPA_SIZE);
- msd->storage.addr += MAX_MIF_SEPA_SIZE;
- spin_lock_init(&msd->lock);
-
- return msd;
-}
-
-static struct modem_ctl *create_modemctl_device(struct platform_device *pdev,
- struct modem_shared *msd)
-{
- int ret = 0;
- struct modem_data *pdata;
- struct modem_ctl *modemctl;
- struct device *dev = &pdev->dev;
-
- /* create modem control device */
- modemctl = kzalloc(sizeof(struct modem_ctl), GFP_KERNEL);
- if (!modemctl)
- return NULL;
-
- modemctl->msd = msd;
- modemctl->dev = dev;
- modemctl->phone_state = STATE_OFFLINE;
-
- pdata = pdev->dev.platform_data;
- modemctl->mdm_data = pdata;
- modemctl->name = pdata->name;
-
- /* init modemctl device for getting modemctl operations */
- ret = call_modem_init_func(modemctl, pdata);
- if (ret) {
- kfree(modemctl);
- return NULL;
- }
-
- mif_info("%s is created!!!\n", pdata->name);
-
- return modemctl;
-}
-
-static struct io_device *create_io_device(struct modem_io_t *io_t,
- struct modem_shared *msd, struct modem_ctl *modemctl,
- struct modem_data *pdata)
-{
- int ret = 0;
- struct io_device *iod = NULL;
-
- iod = kzalloc(sizeof(struct io_device), GFP_KERNEL);
- if (!iod) {
- mif_err("iod == NULL\n");
- return NULL;
- }
-
- rb_init_node(&iod->node_chan);
- rb_init_node(&iod->node_fmt);
-
- iod->name = io_t->name;
- iod->id = io_t->id;
- iod->format = io_t->format;
- iod->io_typ = io_t->io_type;
- iod->link_types = io_t->links;
- iod->net_typ = pdata->modem_net;
- iod->use_handover = pdata->use_handover;
- iod->ipc_version = pdata->ipc_version;
- atomic_set(&iod->opened, 0);
-
- /* link between io device and modem control */
- iod->mc = modemctl;
- if (iod->format == IPC_FMT)
- modemctl->iod = iod;
- if (iod->format == IPC_BOOT) {
- modemctl->bootd = iod;
- mif_info("Bood device = %s\n", iod->name);
- }
-
- /* link between io device and modem shared */
- iod->msd = msd;
-
- /* add iod to rb_tree */
- if (iod->format != IPC_RAW)
- insert_iod_with_format(msd, iod->format, iod);
-
- if (sipc4_is_not_reserved_channel(iod->id))
- insert_iod_with_channel(msd, iod->id, iod);
-
- /* register misc device or net device */
- ret = sipc4_init_io_device(iod);
- if (ret) {
- kfree(iod);
- mif_err("sipc4_init_io_device fail (%d)\n", ret);
- return NULL;
- }
-
- mif_debug("%s is created!!!\n", iod->name);
- return iod;
-}
-
-static int attach_devices(struct io_device *iod, enum modem_link tx_link)
-{
- struct modem_shared *msd = iod->msd;
- struct link_device *ld;
-
- /* find link type for this io device */
- list_for_each_entry(ld, &msd->link_dev_list, list) {
- if (IS_CONNECTED(iod, ld)) {
- /* The count 1 bits of iod->link_types is count
- * of link devices of this iod.
- * If use one link device,
- * or, 2+ link devices and this link is tx_link,
- * set iod's link device with ld
- */
- if ((countbits(iod->link_types) <= 1) ||
- (tx_link == ld->link_type)) {
- mif_debug("set %s->%s\n", iod->name, ld->name);
-
- set_current_link(iod, ld);
-
- if (iod->ipc_version == SIPC_VER_42) {
- if (iod->format == IPC_FMT) {
- int ch = iod->id & 0x03;
- ld->fmt_iods[ch] = iod;
- }
- }
- }
- }
- }
-
- /* if use rx dynamic switch, set tx_link at modem_io_t of
- * board-*-modems.c
- */
- if (!get_current_link(iod)) {
- mif_err("%s->link == NULL\n", iod->name);
- BUG();
- }
-
- switch (iod->format) {
- case IPC_FMT:
- wake_lock_init(&iod->wakelock, WAKE_LOCK_SUSPEND, iod->name);
- iod->waketime = FMT_WAKE_TIME;
- break;
-
- case IPC_RFS:
- wake_lock_init(&iod->wakelock, WAKE_LOCK_SUSPEND, iod->name);
- iod->waketime = RFS_WAKE_TIME;
- break;
-
- case IPC_MULTI_RAW:
- wake_lock_init(&iod->wakelock, WAKE_LOCK_SUSPEND, iod->name);
- iod->waketime = RAW_WAKE_TIME;
- break;
- case IPC_BOOT:
- wake_lock_init(&iod->wakelock, WAKE_LOCK_SUSPEND, iod->name);
- iod->waketime = 3 * HZ;
- default:
- break;
- }
-
- return 0;
-}
-
-static int __devinit modem_probe(struct platform_device *pdev)
-{
- int i;
- struct modem_data *pdata = pdev->dev.platform_data;
- struct modem_shared *msd = NULL;
- struct modem_ctl *modemctl = NULL;
- struct io_device *iod[pdata->num_iodevs];
- struct link_device *ld;
-
- mif_err("%s\n", pdev->name);
- memset(iod, 0, sizeof(iod));
-
- msd = create_modem_shared_data();
- if (!msd) {
- mif_err("msd == NULL\n");
- goto err_free_modemctl;
- }
-
- modemctl = create_modemctl_device(pdev, msd);
- if (!modemctl) {
- mif_err("modemctl == NULL\n");
- goto err_free_modemctl;
- }
-
- /* create link device */
- /* support multi-link device */
- for (i = 0; i < LINKDEV_MAX ; i++) {
- /* find matching link type */
- if (pdata->link_types & LINKTYPE(i)) {
- ld = call_link_init_func(pdev, i);
- if (!ld)
- goto err_free_modemctl;
-
- mif_err("link created: %s\n", ld->name);
- ld->link_type = i;
- ld->mc = modemctl;
- ld->msd = msd;
- list_add(&ld->list, &msd->link_dev_list);
- }
- }
-
- /* create io deivces and connect to modemctl device */
- for (i = 0; i < pdata->num_iodevs; i++) {
- iod[i] = create_io_device(&pdata->iodevs[i], msd, modemctl,
- pdata);
- if (!iod[i]) {
- mif_err("iod[%d] == NULL\n", i);
- goto err_free_modemctl;
- }
-
- attach_devices(iod[i], pdata->iodevs[i].tx_link);
- }
-
- platform_set_drvdata(pdev, modemctl);
-
- mif_info("Complete!!!\n");
- return 0;
-
-err_free_modemctl:
- for (i = 0; i < pdata->num_iodevs; i++)
- if (iod[i] != NULL)
- kfree(iod[i]);
-
- if (modemctl != NULL)
- kfree(modemctl);
-
- if (msd != NULL)
- kfree(msd);
-
- return -ENOMEM;
-}
-
-static void modem_shutdown(struct platform_device *pdev)
-{
- struct device *dev = &pdev->dev;
- struct modem_ctl *mc = dev_get_drvdata(dev);
- mc->ops.modem_off(mc);
- mc->phone_state = STATE_OFFLINE;
-}
-
-static int modem_suspend(struct device *pdev)
-{
-#ifndef CONFIG_LINK_DEVICE_HSIC
- struct modem_ctl *mc = dev_get_drvdata(pdev);
-
- if (mc->gpio_pda_active)
- gpio_set_value(mc->gpio_pda_active, 0);
-#endif
-
- return 0;
-}
-
-static int modem_resume(struct device *pdev)
-{
-#ifndef CONFIG_LINK_DEVICE_HSIC
- struct modem_ctl *mc = dev_get_drvdata(pdev);
-
- if (mc->gpio_pda_active)
- gpio_set_value(mc->gpio_pda_active, 1);
-#endif
-
- return 0;
-}
-
-#ifdef CONFIG_FAST_BOOT
-static void modem_complete(struct device *pdev)
-{
- struct modem_ctl *mc = dev_get_drvdata(pdev);
-
- if (mc->modem_complete)
- mc->modem_complete(mc);
-}
-#endif
-
-static const struct dev_pm_ops modem_pm_ops = {
- .suspend = modem_suspend,
- .resume = modem_resume,
-#ifdef CONFIG_FAST_BOOT
- .complete = modem_complete,
-#endif
-};
-
-static struct platform_driver modem_driver = {
- .probe = modem_probe,
- .shutdown = modem_shutdown,
- .driver = {
- .name = "modem_if",
- .pm = &modem_pm_ops,
- },
-};
-
-static int __init modem_init(void)
-{
- return platform_driver_register(&modem_driver);
-}
-
-module_init(modem_init);
-
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Samsung Modem Interface Driver");
diff --git a/drivers/misc/modem_if_u1/sipc5_io_device.c b/drivers/misc/modem_if_u1/sipc5_io_device.c
deleted file mode 100644
index 2613531..0000000
--- a/drivers/misc/modem_if_u1/sipc5_io_device.c
+++ /dev/null
@@ -1,1608 +0,0 @@
-/* /linux/drivers/misc/modem_if/sipc5_io_device.c
- *
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-#include <linux/sched.h>
-#include <linux/fs.h>
-#include <linux/poll.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/if_arp.h>
-#include <linux/ip.h>
-#include <linux/if_ether.h>
-#include <linux/etherdevice.h>
-#include <linux/device.h>
-
-#include <linux/platform_data/modem.h>
-#ifdef CONFIG_LINK_DEVICE_C2C
-#include <linux/platform_data/c2c.h>
-#endif
-#include "modem_prj.h"
-#include "modem_utils.h"
-
-static ssize_t show_waketime(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- unsigned int msec;
- char *p = buf;
- struct miscdevice *miscdev = dev_get_drvdata(dev);
- struct io_device *iod = container_of(miscdev, struct io_device,
- miscdev);
-
- msec = jiffies_to_msecs(iod->waketime);
-
- p += sprintf(buf, "raw waketime : %ums\n", msec);
-
- return p - buf;
-}
-
-static ssize_t store_waketime(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- unsigned long msec;
- int ret;
- struct miscdevice *miscdev = dev_get_drvdata(dev);
- struct io_device *iod = container_of(miscdev, struct io_device,
- miscdev);
-
- ret = strict_strtoul(buf, 10, &msec);
- if (ret)
- return count;
-
- iod->waketime = msecs_to_jiffies(msec);
-
- return count;
-}
-
-static struct device_attribute attr_waketime =
- __ATTR(waketime, S_IRUGO | S_IWUSR, show_waketime, store_waketime);
-
-static ssize_t show_loopback(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct miscdevice *miscdev = dev_get_drvdata(dev);
- struct modem_shared *msd =
- container_of(miscdev, struct io_device, miscdev)->msd;
- unsigned char *ip = (unsigned char *)&msd->loopback_ipaddr;
- char *p = buf;
-
- p += sprintf(buf, "%u.%u.%u.%u\n", ip[0], ip[1], ip[2], ip[3]);
-
- return p - buf;
-}
-
-static ssize_t store_loopback(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- struct miscdevice *miscdev = dev_get_drvdata(dev);
- struct modem_shared *msd =
- container_of(miscdev, struct io_device, miscdev)->msd;
-
- msd->loopback_ipaddr = ipv4str_to_be32(buf, count);
-
- return count;
-}
-
-static struct device_attribute attr_loopback =
- __ATTR(loopback, S_IRUGO | S_IWUSR, show_loopback, store_loopback);
-
-static void iodev_showtxlink(struct io_device *iod, void *args)
-{
- char **p = (char **)args;
- struct link_device *ld = get_current_link(iod);
-
- if (iod->io_typ == IODEV_NET && IS_CONNECTED(iod, ld))
- *p += sprintf(*p, "%s: %s\n", iod->name, ld->name);
-}
-
-static ssize_t show_txlink(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct miscdevice *miscdev = dev_get_drvdata(dev);
- struct modem_shared *msd =
- container_of(miscdev, struct io_device, miscdev)->msd;
- char *p = buf;
-
- iodevs_for_each(msd, iodev_showtxlink, &p);
-
- return p - buf;
-}
-
-static ssize_t store_txlink(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- /* don't change without gpio dynamic switching */
- return -EINVAL;
-}
-
-static struct device_attribute attr_txlink =
- __ATTR(txlink, S_IRUGO | S_IWUSR, show_txlink, store_txlink);
-
-/**
- * rx_check_frame_cfg
- * @cfg: configuration field of a link layer header
- * @frm: pointer to the sipc5_frame_data buffer
- *
- * 1) Checks whether or not an extended field exists
- * 2) Calculates the length of a link layer header
- *
- * Returns the size of a link layer header
- *
- * Must be invoked only when the configuration field of the link layer header
- * is validated with sipc5_start_valid() function
- */
-static int rx_check_frame_cfg(u8 cfg, struct sipc5_frame_data *frm)
-{
- frm->config = cfg;
-
- if (likely(cfg & SIPC5_PADDING_EXIST))
- frm->padding = true;
-
- if (unlikely(cfg & SIPC5_EXT_FIELD_EXIST)) {
- if (cfg & SIPC5_CTL_FIELD_EXIST) {
- frm->ctl_fld = true;
- frm->hdr_len = SIPC5_HEADER_SIZE_WITH_CTL_FLD;
- } else {
- frm->ext_len = true;
- frm->hdr_len = SIPC5_HEADER_SIZE_WITH_EXT_LEN;
- }
- } else {
- frm->hdr_len = SIPC5_MIN_HEADER_SIZE;
- }
-
- return frm->hdr_len;
-}
-
-/**
- * rx_build_meta_data
- * @ld: pointer to the link device
- * @frm: pointer to the sipc5_frame_data buffer
- *
- * Fills each field of sipc5_frame_data from a link layer header
- * 1) Extracts the channel ID
- * 2) Calculates the length of a link layer frame
- * 3) Extracts a control field if exists
- * 4) Calculates the length of an IPC message packet in the link layer frame
- *
- */
-static void rx_build_meta_data(struct link_device *ld,
- struct sipc5_frame_data *frm)
-{
- u16 *sz16 = (u16 *)(frm->hdr + SIPC5_LEN_OFFSET);
- u32 *sz32 = (u32 *)(frm->hdr + SIPC5_LEN_OFFSET);
-
- frm->ch_id = frm->hdr[SIPC5_CH_ID_OFFSET];
-
- if (unlikely(frm->ext_len))
- frm->len = *sz32;
- else
- frm->len = *sz16;
-
- if (unlikely(frm->ctl_fld))
- frm->control = frm->hdr[SIPC5_CTL_OFFSET];
-
- frm->data_len = frm->len - frm->hdr_len;
-
- mif_debug("%s: FRM ch:%d len:%d ctl:%02X data.len:%d\n",
- ld->name, frm->ch_id, frm->len, frm->control, frm->data_len);
-}
-
-/**
- * tx_build_link_header
- * @frm: pointer to the sipc5_frame_data buffer
- * @iod: pointer to the IO device
- * @ld: pointer to the link device
- * @count: length of the data to be transmitted
- *
- * Builds the meta data for an SIPC5 frame and the link layer header of it
- * Returns the link layer header length for an SIPC5 frame or 0 for other frame
- */
-static unsigned tx_build_link_header(struct sipc5_frame_data *frm,
- struct io_device *iod, struct link_device *ld, ssize_t count)
-{
- u8 *buff = frm->hdr;
- u16 *sz16 = (u16 *)(buff + SIPC5_LEN_OFFSET);
- u32 *sz32 = (u32 *)(buff + SIPC5_LEN_OFFSET);
-
- memset(frm, 0, sizeof(struct sipc5_frame_data));
-
- if (iod->format == IPC_CMD ||
- iod->format == IPC_BOOT ||
- iod->format == IPC_RAMDUMP) {
- frm->len = count;
- return 0;
- }
-
- frm->config = SIPC5_START_MASK;
-
- if (iod->format == IPC_FMT && count > 2048) {
- frm->ctl_fld = true;
- frm->config |= SIPC5_EXT_FIELD_EXIST;
- frm->config |= SIPC5_CTL_FIELD_EXIST;
- }
-
- if (iod->id >= SIPC5_CH_ID_RFS_0 && count > 0xFFFF) {
- frm->ext_len = true;
- frm->config |= SIPC5_EXT_FIELD_EXIST;
- }
-
- if (ld->aligned)
- frm->config |= SIPC5_PADDING_EXIST;
-
- frm->ch_id = iod->id;
-
- frm->hdr_len = sipc5_get_hdr_len(frm->config);
- frm->data_len = count;
- frm->len = frm->hdr_len + frm->data_len;
-
- buff[SIPC5_CONFIG_OFFSET] = frm->config;
- buff[SIPC5_CH_ID_OFFSET] = frm->ch_id;
-
- if (unlikely(frm->ext_len))
- *sz32 = (u32)frm->len;
- else
- *sz16 = (u16)frm->len;
-
- if (unlikely(frm->ctl_fld))
- buff[SIPC5_CTL_OFFSET] = frm->control;
-
- return frm->hdr_len;
-}
-
-static inline int enqueue_skb_to_iod(struct sk_buff *skb, struct io_device *iod)
-{
- struct sk_buff_head *rxq = &iod->sk_rx_q;
- struct sk_buff *victim;
-
- skb_queue_tail(rxq, skb);
- if (unlikely(rxq->qlen > MAX_IOD_RXQ_LEN)) {
- mif_info("%s: %s application may be dead (rxq->qlen %d > %d)\n",
- iod->name, iod->app ? iod->app : "corresponding",
- rxq->qlen, MAX_IOD_RXQ_LEN);
- victim = skb_dequeue(rxq);
- if (victim)
- dev_kfree_skb_any(victim);
- return -ENOSPC;
- } else {
- mif_debug("%s: rxq->qlen = %d\n", iod->name, rxq->qlen);
- return 0;
- }
-}
-
-static int rx_fmt_frame(struct sk_buff *skb)
-{
- struct io_device *iod = skbpriv(skb)->iod;
- struct link_device *ld = skbpriv(skb)->ld;
- struct sipc_fmt_hdr *fh;
- struct sk_buff *rx_skb;
- u8 ctrl = skbpriv(skb)->control;
- unsigned id = ctrl & 0x7F;
-
- if (iod->skb[id] == NULL) {
- /*
- ** There has been no multiple frame with this ID.
- */
- if ((ctrl & 0x80) == 0) {
- /*
- ** It is a single frame because the "more" bit is 0.
- */
- enqueue_skb_to_iod(skb, iod);
- wake_up(&iod->wq);
- return 0;
- }
-
- /*
- ** The start of multiple frames
- */
- fh = (struct sipc_fmt_hdr *)skb->data;
- mif_debug("%s: start multi-frame (ID:%d len:%d)\n",
- iod->name, id, fh->len);
-
- rx_skb = rx_alloc_skb(fh->len, iod, ld);
- if (!rx_skb) {
- mif_info("%s: ERR! rx_alloc_skb fail\n", iod->name);
- return -ENOMEM;
- }
-
- iod->skb[id] = rx_skb;
- } else {
- rx_skb = iod->skb[id];
- }
-
- /*
- ** Start multi-frame processing
- */
- memcpy(skb_put(rx_skb, skb->len), skb->data, skb->len);
- dev_kfree_skb_any(skb);
-
- if (ctrl & 0x80) {
- /* The last frame has not arrived yet. */
- mif_debug("%s: recv multi-frame (ID:%d rcvd:%d)\n",
- iod->name, id, rx_skb->len);
- } else {
- /* It is the last frame because the "more" bit is 0. */
- mif_debug("%s: end multi-frame (ID:%d rcvd:%d)\n",
- iod->name, id, rx_skb->len);
- enqueue_skb_to_iod(rx_skb, iod);
- iod->skb[id] = NULL;
- wake_up(&iod->wq);
- }
-
- return 0;
-}
-
-static int rx_raw_misc(struct sk_buff *skb)
-{
- struct io_device *iod = skbpriv(skb)->iod; /* same with real_iod */
-
- enqueue_skb_to_iod(skb, iod);
- wake_up(&iod->wq);
-
- return 0;
-}
-
-static int rx_multi_pdp(struct sk_buff *skb)
-{
- struct io_device *iod = skbpriv(skb)->iod; /* same with real_iod */
- struct net_device *ndev;
- struct iphdr *iphdr;
- struct ethhdr *ehdr;
- int ret;
- const char source[ETH_ALEN] = SOURCE_MAC_ADDR;
-
- ndev = iod->ndev;
- if (!ndev) {
- mif_info("%s: ERR! no iod->ndev\n", iod->name);
- return -ENODEV;
- }
-
- skb->dev = ndev;
- ndev->stats.rx_packets++;
- ndev->stats.rx_bytes += skb->len;
-
- /* check the version of IP */
- iphdr = (struct iphdr *)skb->data;
- if (iphdr->version == IP6VERSION)
- skb->protocol = htons(ETH_P_IPV6);
- else
- skb->protocol = htons(ETH_P_IP);
-
- if (iod->use_handover) {
- skb_push(skb, sizeof(struct ethhdr));
- ehdr = (void *)skb->data;
- memcpy(ehdr->h_dest, ndev->dev_addr, ETH_ALEN);
- memcpy(ehdr->h_source, source, ETH_ALEN);
- ehdr->h_proto = skb->protocol;
- skb->ip_summed = CHECKSUM_UNNECESSARY;
- skb_reset_mac_header(skb);
-
- skb_pull(skb, sizeof(struct ethhdr));
- }
-
- if (in_interrupt())
- ret = netif_rx(skb);
- else
- ret = netif_rx_ni(skb);
-
- if (ret != NET_RX_SUCCESS)
- mif_info("%s: ERR! netif_rx fail (err %d)\n", iod->name, ret);
-
- return ret;
-}
-
-static int rx_loopback(struct sk_buff *skb)
-{
- struct io_device *iod = skbpriv(skb)->iod;
- struct link_device *ld = get_current_link(iod);
- struct sipc5_frame_data frm;
- unsigned headroom;
- unsigned tailroom = 0;
- int ret;
-
- headroom = tx_build_link_header(&frm, iod, ld, skb->len);
-
- if (ld->aligned)
- tailroom = sipc5_calc_padding_size(headroom + skb->len);
-
- /* We need not to expand skb in here. dev_alloc_skb (in rx_alloc_skb)
- * already alloc 32bytes padding in headroom. 32bytes are enough.
- */
-
- /* store IPC link header to start of skb
- * this is skb_push not skb_put. different with misc_write.
- */
- memcpy(skb_push(skb, headroom), frm.hdr, headroom);
-
- /* store padding */
- if (tailroom)
- skb_put(skb, tailroom);
-
- /* forward */
- ret = ld->send(ld, iod, skb);
- if (ret < 0)
- mif_err("%s->%s: ld->send fail: %d\n", iod->name,
- ld->name, ret);
- return ret;
-}
-
-static int rx_netif_flow_ctrl(struct link_device *ld, struct sk_buff *skb)
-{
- u8 cmd = skb->data[0];
-
- if (cmd == FLOW_CTRL_SUSPEND) {
- if (ld->suspend_netif_tx)
- goto exit;
- ld->suspend_netif_tx = true;
- mif_netif_stop(ld);
- mif_info("%s: FLOW_CTRL_SUSPEND\n", ld->name);
- } else if (cmd == FLOW_CTRL_RESUME) {
- if (!ld->suspend_netif_tx)
- goto exit;
- ld->suspend_netif_tx = false;
- mif_netif_wake(ld);
- mif_info("%s: FLOW_CTRL_RESUME\n", ld->name);
- } else {
- mif_info("%s: ERR! invalid command %02X\n", ld->name, cmd);
- }
-
-exit:
- dev_kfree_skb_any(skb);
- return 0;
-}
-
-static int rx_demux(struct link_device *ld, struct sk_buff *skb)
-{
- struct io_device *iod = NULL;
- char *link = ld->name;
- u8 ch = skbpriv(skb)->ch_id;
-
- if (unlikely(ch == 0)) {
- mif_info("%s: ERR! invalid ch# %d\n", link, ch);
- return -ENODEV;
- }
-
- if (unlikely(ch == SIPC5_CH_ID_FLOW_CTRL))
- return rx_netif_flow_ctrl(ld, skb);
-
- /* IP loopback */
- if (ch == DATA_LOOPBACK_CHANNEL && ld->msd->loopback_ipaddr)
- ch = RMNET0_CH_ID;
-
- iod = link_get_iod_with_channel(ld, ch);
- if (unlikely(!iod)) {
- mif_info("%s: ERR! no iod for ch# %d\n", link, ch);
- return -ENODEV;
- }
-
- skbpriv(skb)->ld = ld;
- skbpriv(skb)->iod = iod;
- skbpriv(skb)->real_iod = iod;
-
- /* don't care about CP2AP_LOOPBACK_CHANNEL is opened */
- if (unlikely(iod->id == CP2AP_LOOPBACK_CHANNEL))
- return rx_loopback(skb);
-
- if (atomic_read(&iod->opened) <= 0) {
- mif_info("%s: ERR! %s is not opened\n", link, iod->name);
- return -ENODEV;
- }
-
- if (ch >= SIPC5_CH_ID_RFS_0)
- return rx_raw_misc(skb);
- else if (ch >= SIPC5_CH_ID_FMT_0)
- return rx_fmt_frame(skb);
- else if (iod->io_typ == IODEV_MISC)
- return rx_raw_misc(skb);
- else
- return rx_multi_pdp(skb);
-}
-
-/* Check and store link layer header, then alloc an skb */
-static int rx_header_from_serial(struct io_device *iod, struct link_device *ld,
- u8 *buff, unsigned size, struct sipc5_frame_data *frm)
-{
- char *link = ld->name;
- struct sk_buff *skb;
- int len;
- u8 cfg = buff[0];
-
- mif_debug("%s: size %d\n", link, size);
-
- if (!frm->config) {
- if (unlikely(!sipc5_start_valid(cfg))) {
- mif_info("%s: ERR! wrong start (0x%02x)\n", link, cfg);
- return -EBADMSG;
- }
- rx_check_frame_cfg(cfg, frm);
-
- /* Copy the link layer header to the header buffer */
- len = min(frm->hdr_len, size);
- memcpy(frm->hdr, buff, len);
- } else {
- /* Copy the link layer header to the header buffer */
- len = min((frm->hdr_len - frm->hdr_rcvd), size);
- memcpy((frm->hdr + frm->hdr_rcvd), buff, len);
- }
-
- frm->hdr_rcvd += len;
-
- mif_debug("%s: FRM hdr_len:%d, hdr_rcvd:%d\n",
- link, frm->hdr_len, frm->hdr_rcvd);
-
- if (frm->hdr_rcvd >= frm->hdr_len) {
- rx_build_meta_data(ld, frm);
- skb = rx_alloc_skb(frm->data_len, iod, ld);
- fragdata(iod, ld)->skb_recv = skb;
- skbpriv(skb)->ch_id = frm->ch_id;
- skbpriv(skb)->control = frm->control;
- }
-
- return len;
-}
-
-/* copy data to skb */
-static int rx_payload_from_serial(struct io_device *iod, struct link_device *ld,
- u8 *buff, unsigned size, struct sipc5_frame_data *frm)
-{
- struct sk_buff *skb = fragdata(iod, ld)->skb_recv;
- char *link = ld->name;
- unsigned rest = frm->data_len - frm->data_rcvd;
- unsigned len;
-
- /* rest == (frm->data_len - frm->data_rcvd) == tailroom of skb */
- rest = frm->data_len - frm->data_rcvd;
- mif_debug("%s: FRM data.len:%d data.rcvd:%d rest:%d size:%d\n",
- link, frm->data_len, frm->data_rcvd, rest, size);
-
- /* If there is no skb, data must be dropped. */
- len = min(rest, size);
- if (skb)
- memcpy(skb_put(skb, len), buff, len);
-
- frm->data_rcvd += len;
-
- mif_debug("%s: FRM data_len:%d, data_rcvd:%d\n",
- link, frm->data_len, frm->data_rcvd);
-
- return len;
-}
-
-static int rx_frame_from_serial(struct io_device *iod, struct link_device *ld,
- const char *data, unsigned size)
-{
- struct sipc5_frame_data *frm = &fragdata(iod, ld)->f_data;
- struct sk_buff *skb;
- char *link = ld->name;
- u8 *buff = (u8 *)data;
- int rest = (int)size;
- int err = 0;
- int done = 0;
-
- mif_debug("%s: size = %d\n", link, size);
-
- if (frm->hdr_rcvd >= frm->hdr_len && frm->data_rcvd < frm->data_len) {
- /*
- ** There is an skb that is waiting for more SIPC5 data.
- ** In this case, rx_header_from_serial() must be skipped.
- */
- mif_debug("%s: FRM data.len:%d data.rcvd:%d -> recv_data\n",
- link, frm->data_len, frm->data_rcvd);
- goto recv_data;
- }
-
-next_frame:
- /* Receive and analyze header, then prepare an akb */
- err = done = rx_header_from_serial(iod, ld, buff, rest, frm);
- if (err < 0)
- goto err_exit;
-
- buff += done;
- rest -= done;
- mif_debug("%s: rx_header() -> done:%d rest:%d\n", link, done, rest);
- if (rest < 0)
- goto err_range;
-
- if (rest == 0)
- return size;
-
-recv_data:
- err = 0;
-
- mif_debug("%s: done:%d rest:%d -> rx_payload()\n", link, done, rest);
-
- done = rx_payload_from_serial(iod, ld, buff, rest, frm);
- buff += done;
- rest -= done;
-
- mif_debug("%s: rx_payload() -> done:%d rest:%d\n", link, done, rest);
-
- if (rest == 0 && frm->data_rcvd < frm->data_len) {
- /*
- Data is being received and more data will come within the next
- frame from the link device.
- */
- return size;
- }
-
- /* At this point, one complete link layer frame has been received. */
-
- /* A padding size is applied to access the next IPC frame. */
- if (frm->padding) {
- done = sipc5_calc_padding_size(frm->len);
- if (done > rest) {
- mif_info("%s: ERR! padding %d > rest %d\n",
- link, done, rest);
- goto err_exit;
- }
-
- buff += done;
- rest -= done;
-
- mif_debug("%s: padding:%d -> rest:%d\n", link, done, rest);
-
- if (rest < 0)
- goto err_range;
-
- }
-
- skb = fragdata(iod, ld)->skb_recv;
- if (likely(skb)) {
- mif_debug("%s: len:%d -> rx_demux()\n", link, skb->len);
- err = rx_demux(ld, skb);
- if (err < 0)
- dev_kfree_skb_any(skb);
- } else {
- mif_debug("%s: len:%d -> drop\n", link, skb->len);
- }
-
- /* initialize the skb_recv and the frame_data buffer */
- fragdata(iod, ld)->skb_recv = NULL;
- memset(frm, 0, sizeof(struct sipc5_frame_data));
-
- if (rest > 0)
- goto next_frame;
-
- if (rest <= 0)
- return size;
-
-err_exit:
- if (fragdata(iod, ld)->skb_recv &&
- frm->hdr_rcvd >= frm->hdr_len && frm->data_rcvd >= frm->data_len) {
- dev_kfree_skb_any(fragdata(iod, ld)->skb_recv);
- memset(frm, 0, sizeof(struct sipc5_frame_data));
- fragdata(iod, ld)->skb_recv = NULL;
- mif_info("%s: ERR! clear frag\n", link);
- }
- return err;
-
-err_range:
- mif_info("%s: ERR! size:%d vs. rest:%d\n", link, size, rest);
- return size;
-}
-
-/**
- * rx_header_from_mem
- * @ld: pointer to the link device
- * @buff: pointer to the frame
- * @rest: size of the frame
- * @frm: pointer to the sipc5_frame_data buffer
- *
- * 1) Verifies a link layer header configuration of a frame
- * 2) Stores the link layer header to the header buffer
- * 3) Builds and stores the meta data of the frame into a meta data buffer
- * 4) Verifies the length of the frame
- *
- * Returns SIPC5 header length
- */
-static int rx_header_from_mem(struct link_device *ld, u8 *buff, unsigned rest,
- struct sipc5_frame_data *frm)
-{
- char *link = ld->name;
- u8 cfg = buff[0];
-
- /* Verify link layer header configuration */
- if (unlikely(!sipc5_start_valid(cfg))) {
- mif_info("%s: ERR! wrong start (0x%02x)\n", link, cfg);
- return -EBADMSG;
- }
- rx_check_frame_cfg(cfg, frm);
-
- /* Store the link layer header to the header buffer */
- memcpy(frm->hdr, buff, frm->hdr_len);
- frm->hdr_rcvd = frm->hdr_len;
-
- /* Build and store the meta data of this frame */
- rx_build_meta_data(ld, frm);
-
- /* Verify frame length */
- if (unlikely(frm->len > rest)) {
- mif_info("%s: ERR! frame length %d > rest %d\n",
- link, frm->len, rest);
- return -EBADMSG;
- }
-
- return frm->hdr_rcvd;
-}
-
-/* copy data to skb */
-static int rx_payload_from_mem(struct sk_buff *skb, u8 *buff, unsigned len)
-{
- /* If there is no skb, data must be dropped. */
- if (skb)
- memcpy(skb_put(skb, len), buff, len);
- return len;
-}
-
-static int rx_frame_from_mem(struct io_device *iod, struct link_device *ld,
- const char *data, unsigned size)
-{
- struct sipc5_frame_data *frm = &fragdata(iod, ld)->f_data;
- struct sk_buff *skb;
- char *link = ld->name;
- u8 *buff = (u8 *)data;
- int rest = (int)size;
- int len;
- int done;
-
- mif_debug("%s: size = %d\n", link, size);
-
- while (rest > 0) {
- /* Initialize the frame data buffer */
- memset(frm, 0, sizeof(struct sipc5_frame_data));
- skb = NULL;
-
- /* Receive and analyze link layer header */
- done = rx_header_from_mem(ld, buff, rest, frm);
- if (unlikely(done < 0))
- return -EBADMSG;
-
- /* Verify rest size */
- rest -= done;
- if (rest < 0) {
- mif_info("%s: ERR! rx_header -> rest %d\n", link, rest);
- return -ERANGE;
- }
-
- /* Move buff pointer to the payload */
- buff += done;
-
- /* Prepare an akb */
- len = frm->data_len;
- skb = rx_alloc_skb(len, iod, ld);
-
- /* Store channel ID and control fields to the CB of the skb */
- skbpriv(skb)->ch_id = frm->ch_id;
- skbpriv(skb)->control = frm->control;
-
- /* Receive payload */
- mif_debug("%s: done:%d rest:%d len:%d -> rx_payload()\n",
- link, done, rest, len);
- done = rx_payload_from_mem(skb, buff, len);
- rest -= done;
- if (rest < 0) {
- mif_info("%s: ERR! rx_payload() -> rest %d\n",
- link, rest);
- if (skb)
- dev_kfree_skb_any(skb);
- return -ERANGE;
- }
- buff += done;
-
- /* A padding size is applied to access the next IPC frame. */
- if (frm->padding) {
- done = sipc5_calc_padding_size(frm->len);
- if (done > rest) {
- mif_info("%s: ERR! padding %d > rest %d\n",
- link, done, rest);
- if (skb)
- dev_kfree_skb_any(skb);
- return -ERANGE;
- }
- buff += done;
- rest -= done;
- }
-
- if (likely(skb)) {
- mif_debug("%s: len:%d -> rx_demux()\n", link, skb->len);
- if (rx_demux(ld, skb) < 0)
- dev_kfree_skb_any(skb);
- } else {
- mif_debug("%s: len:%d -> drop\n", link, skb->len);
- }
- }
-
- return 0;
-}
-
-/* called from link device when a packet arrives for this io device */
-static int io_dev_recv_data_from_link_dev(struct io_device *iod,
- struct link_device *ld, const char *data, unsigned int len)
-{
- struct sk_buff *skb;
- char *link = ld->name;
- int err;
-
- if (!data) {
- mif_info("%s: ERR! !data\n", link);
- return -EINVAL;
- }
-
- if (len <= 0) {
- mif_info("%s: ERR! len %d <= 0\n", link, len);
- return -EINVAL;
- }
-
- switch (iod->format) {
- case IPC_FMT:
- case IPC_RAW:
- case IPC_RFS:
- case IPC_MULTI_RAW:
- if (iod->waketime)
- wake_lock_timeout(&iod->wakelock, iod->waketime);
-
- if (ld->link_type == LINKDEV_DPRAM && ld->aligned)
- err = rx_frame_from_mem(iod, ld, data, len);
- else
- err = rx_frame_from_serial(iod, ld, data, len);
-
- if (err < 0)
- mif_info("%s: ERR! rx_frame_from_link fail (err %d)\n",
- link, err);
-
- return err;
-
- case IPC_CMD:
- case IPC_BOOT:
- case IPC_RAMDUMP:
- /* save packet to sk_buff */
- skb = rx_alloc_skb(len, iod, ld);
- if (!skb) {
- mif_info("%s: ERR! rx_alloc_skb fail\n", link);
- return -ENOMEM;
- }
-
- mif_debug("%s: len:%d -> iod:%s\n", link, len, iod->name);
-
- memcpy(skb_put(skb, len), data, len);
-
- enqueue_skb_to_iod(skb, iod);
- wake_up(&iod->wq);
-
- return len;
-
- default:
- mif_info("%s: ERR! unknown format %d\n", link, iod->format);
- return -EINVAL;
- }
-}
-
-static int rx_frame_from_skb(struct io_device *iod, struct link_device *ld,
- struct sk_buff *skb)
-{
- struct sipc5_frame_data *frm = &fragdata(iod, ld)->f_data;
- u8 cfg = skb->data[0];
-
- /* Initialize the frame data buffer */
- memset(frm, 0, sizeof(struct sipc5_frame_data));
-
- /*
- ** The start of a link layer header has already been checked in the
- ** link device.
- */
-
- /* Analyze the configuration of the link layer header */
- rx_check_frame_cfg(cfg, frm);
-
- /* Store the link layer header to the header buffer */
- memcpy(frm->hdr, skb->data, frm->hdr_len);
- frm->hdr_rcvd = frm->hdr_len;
-
- /* Build and store the meta data of this frame */
- rx_build_meta_data(ld, frm);
-
- /*
- ** The length of the frame has already been checked in the link device.
- */
-
- /* Trim the link layer header off the frame */
- skb_pull(skb, frm->hdr_len);
-
- /* Store channel ID and control fields to the CB of the skb */
- skbpriv(skb)->ch_id = frm->ch_id;
- skbpriv(skb)->control = frm->control;
-
- /* Demux the frame */
- if (rx_demux(ld, skb) < 0) {
- mif_info("%s: ERR! rx_demux fail\n", ld->name);
- return -EINVAL;
- }
-
- return 0;
-}
-
-/* called from link device when a packet arrives for this io device */
-static int io_dev_recv_skb_from_link_dev(struct io_device *iod,
- struct link_device *ld, struct sk_buff *skb)
-{
- char *link = ld->name;
- enum dev_format dev = iod->format;
- int err;
-
- switch (dev) {
- case IPC_FMT:
- case IPC_RAW:
- case IPC_RFS:
- case IPC_MULTI_RAW:
- if (iod->waketime)
- wake_lock_timeout(&iod->wakelock, iod->waketime);
-
- err = rx_frame_from_skb(iod, ld, skb);
- if (err < 0) {
- dev_kfree_skb_any(skb);
- mif_info("%s: ERR! rx_frame_from_skb fail (err %d)\n",
- link, err);
- }
-
- return err;
-
- default:
- mif_info("%s: ERR! unknown device %d\n", link, dev);
- return -EINVAL;
- }
-}
-
-/* inform the IO device that the modem is now online or offline or
- * crashing or whatever...
- */
-static void io_dev_modem_state_changed(struct io_device *iod,
- enum modem_state state)
-{
- mif_info("%s: %s state changed (state %d)\n",
- iod->name, iod->mc->name, state);
-
- iod->mc->phone_state = state;
-
- if (state == STATE_CRASH_RESET || state == STATE_CRASH_EXIT ||
- state == STATE_NV_REBUILDING)
- wake_up(&iod->wq);
-}
-
-/**
- * io_dev_sim_state_changed
- * @iod: IPC's io_device
- * @sim_online: SIM is online?
- */
-static void io_dev_sim_state_changed(struct io_device *iod, bool sim_online)
-{
- if (atomic_read(&iod->opened) == 0) {
- mif_info("%s: ERR! not opened\n", iod->name);
- } else if (iod->mc->sim_state.online == sim_online) {
- mif_info("%s: SIM state not changed\n", iod->name);
- } else {
- iod->mc->sim_state.online = sim_online;
- iod->mc->sim_state.changed = true;
- mif_info("%s: SIM state changed {online %d, changed %d}\n",
- iod->name, iod->mc->sim_state.online,
- iod->mc->sim_state.changed);
- wake_up(&iod->wq);
- }
-}
-
-static void iodev_dump_status(struct io_device *iod, void *args)
-{
- if (iod->format == IPC_RAW && iod->io_typ == IODEV_NET) {
- struct link_device *ld = get_current_link(iod);
- mif_com_log(iod->mc->msd, "%s: %s\n", iod->name, ld->name);
- }
-}
-
-static int misc_open(struct inode *inode, struct file *filp)
-{
- struct io_device *iod = to_io_device(filp->private_data);
- struct modem_shared *msd = iod->msd;
- struct link_device *ld;
- int ret;
- filp->private_data = (void *)iod;
-
- atomic_inc(&iod->opened);
-
- list_for_each_entry(ld, &msd->link_dev_list, list) {
- if (IS_CONNECTED(iod, ld) && ld->init_comm) {
- ret = ld->init_comm(ld, iod);
- if (ret < 0) {
- mif_info("%s: init_comm fail(%d)\n",
- ld->name, ret);
- return ret;
- }
- }
- }
-
- mif_err("%s (opened %d)\n", iod->name, atomic_read(&iod->opened));
-
- return 0;
-}
-
-static int misc_release(struct inode *inode, struct file *filp)
-{
- struct io_device *iod = (struct io_device *)filp->private_data;
- struct modem_shared *msd = iod->msd;
- struct link_device *ld;
-
- atomic_dec(&iod->opened);
- skb_queue_purge(&iod->sk_rx_q);
-
- list_for_each_entry(ld, &msd->link_dev_list, list) {
- if (IS_CONNECTED(iod, ld) && ld->terminate_comm)
- ld->terminate_comm(ld, iod);
- }
-
- mif_err("%s (opened %d)\n", iod->name, atomic_read(&iod->opened));
-
- return 0;
-}
-
-static unsigned int misc_poll(struct file *filp, struct poll_table_struct *wait)
-{
- struct io_device *iod = (struct io_device *)filp->private_data;
-
- poll_wait(filp, &iod->wq, wait);
-
- if (!skb_queue_empty(&iod->sk_rx_q) &&
- iod->mc->phone_state != STATE_OFFLINE) {
- return POLLIN | POLLRDNORM;
- } else if ((iod->mc->phone_state == STATE_CRASH_RESET) ||
- (iod->mc->phone_state == STATE_CRASH_EXIT) ||
- (iod->mc->phone_state == STATE_NV_REBUILDING) ||
- (iod->mc->sim_state.changed)) {
- if (iod->format == IPC_RAW) {
- msleep(20);
- return 0;
- }
- return POLLHUP;
- } else {
- return 0;
- }
-}
-
-static long misc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
-{
- int p_state;
- struct io_device *iod = (struct io_device *)filp->private_data;
- struct link_device *ld = get_current_link(iod);
- char cpinfo_buf[530] = "CP Crash ";
- unsigned long size;
- int ret;
-
- switch (cmd) {
- case IOCTL_MODEM_ON:
- mif_info("%s: IOCTL_MODEM_ON\n", iod->name);
- return iod->mc->ops.modem_on(iod->mc);
-
- case IOCTL_MODEM_OFF:
- mif_info("%s: IOCTL_MODEM_OFF\n", iod->name);
- return iod->mc->ops.modem_off(iod->mc);
-
- case IOCTL_MODEM_RESET:
- mif_info("%s: IOCTL_MODEM_RESET\n", iod->name);
- return iod->mc->ops.modem_reset(iod->mc);
-
- case IOCTL_MODEM_BOOT_ON:
- mif_info("%s: IOCTL_MODEM_BOOT_ON\n", iod->name);
- return iod->mc->ops.modem_boot_on(iod->mc);
-
- case IOCTL_MODEM_BOOT_OFF:
- mif_info("%s: IOCTL_MODEM_BOOT_OFF\n", iod->name);
- return iod->mc->ops.modem_boot_off(iod->mc);
-
- case IOCTL_MODEM_BOOT_DONE:
- mif_err("%s: IOCTL_MODEM_BOOT_DONE\n", iod->name);
- if (iod->mc->ops.modem_boot_done)
- return iod->mc->ops.modem_boot_done(iod->mc);
- else
- return 0;
-
- case IOCTL_MODEM_STATUS:
- mif_debug("%s: IOCTL_MODEM_STATUS\n", iod->name);
-
- p_state = iod->mc->phone_state;
- if ((p_state == STATE_CRASH_RESET) ||
- (p_state == STATE_CRASH_EXIT)) {
- mif_info("%s: IOCTL_MODEM_STATUS (state %d)\n",
- iod->name, p_state);
- } else if (iod->mc->sim_state.changed) {
- int s_state = iod->mc->sim_state.online ?
- STATE_SIM_ATTACH : STATE_SIM_DETACH;
- iod->mc->sim_state.changed = false;
- return s_state;
- } else if (p_state == STATE_NV_REBUILDING) {
- mif_info("%s: IOCTL_MODEM_STATUS (state %d)\n",
- iod->name, p_state);
- iod->mc->phone_state = STATE_ONLINE;
- }
- return p_state;
-
- case IOCTL_MODEM_PROTOCOL_SUSPEND:
- mif_debug("%s: IOCTL_MODEM_PROTOCOL_SUSPEND\n",
- iod->name);
-
- if (iod->format != IPC_MULTI_RAW)
- return -EINVAL;
-
- iodevs_for_each(iod->msd, iodev_netif_stop, 0);
- return 0;
-
- case IOCTL_MODEM_PROTOCOL_RESUME:
- mif_info("%s: IOCTL_MODEM_PROTOCOL_RESUME\n",
- iod->name);
-
- if (iod->format != IPC_MULTI_RAW)
- return -EINVAL;
-
- iodevs_for_each(iod->msd, iodev_netif_wake, 0);
- return 0;
-
- case IOCTL_MODEM_DUMP_START:
- mif_info("%s: IOCTL_MODEM_DUMP_START\n", iod->name);
- return ld->dump_start(ld, iod);
-
- case IOCTL_MODEM_DUMP_UPDATE:
- mif_debug("%s: IOCTL_MODEM_DUMP_UPDATE\n", iod->name);
- return ld->dump_update(ld, iod, arg);
-
- case IOCTL_MODEM_FORCE_CRASH_EXIT:
- mif_info("%s: IOCTL_MODEM_FORCE_CRASH_EXIT\n", iod->name);
- if (iod->mc->ops.modem_force_crash_exit)
- return iod->mc->ops.modem_force_crash_exit(iod->mc);
- return -EINVAL;
-
- case IOCTL_MODEM_CP_UPLOAD:
- mif_info("%s: IOCTL_MODEM_CP_UPLOAD\n", iod->name);
- if (copy_from_user(cpinfo_buf + strlen(cpinfo_buf),
- (void __user *)arg, MAX_CPINFO_SIZE) != 0)
- return -EFAULT;
- panic(cpinfo_buf);
- return 0;
-
- case IOCTL_MODEM_DUMP_RESET:
- mif_info("%s: IOCTL_MODEM_DUMP_RESET\n", iod->name);
- return iod->mc->ops.modem_dump_reset(iod->mc);
-
- case IOCTL_MIF_LOG_DUMP:
- iodevs_for_each(iod->msd, iodev_dump_status, 0);
- size = MAX_MIF_BUFF_SIZE;
- ret = copy_to_user((void __user *)arg, &size,
- sizeof(unsigned long));
- if (ret < 0)
- return -EFAULT;
-
- mif_dump_log(iod->mc->msd, iod);
- return 0;
-
- case IOCTL_MIF_DPRAM_DUMP:
-#ifdef CONFIG_LINK_DEVICE_DPRAM
- if (iod->mc->mdm_data->link_types & LINKTYPE(LINKDEV_DPRAM)) {
- size = iod->mc->mdm_data->dpram_ctl->dp_size;
- ret = copy_to_user((void __user *)arg, &size,
- sizeof(unsigned long));
- if (ret < 0)
- return -EFAULT;
- mif_dump_dpram(iod);
- return 0;
- }
-#endif
- return -EINVAL;
-
- default:
- /* If you need to handle the ioctl for specific link device,
- * then assign the link ioctl handler to ld->ioctl
- * It will be call for specific link ioctl */
- if (ld->ioctl)
- return ld->ioctl(ld, iod, cmd, arg);
-
- mif_info("%s: ERR! cmd 0x%X not defined.\n", iod->name, cmd);
- return -EINVAL;
- }
- return 0;
-}
-
-static ssize_t misc_write(struct file *filp, const char __user *data,
- size_t count, loff_t *fpos)
-{
- struct io_device *iod = (struct io_device *)filp->private_data;
- struct link_device *ld = get_current_link(iod);
- struct sk_buff *skb;
- int ret;
- unsigned headroom = 0;
- unsigned tailroom = 0;
- size_t tx_size;
- struct sipc5_frame_data frm;
-
- if (iod->format <= IPC_RFS && iod->id == 0)
- return -EINVAL;
-
- headroom = tx_build_link_header(&frm, iod, ld, count);
-
- if (ld->aligned)
- tailroom = sipc5_calc_padding_size(headroom + count);
-
- tx_size = headroom + count + tailroom;
-
- skb = alloc_skb(tx_size, GFP_KERNEL);
- if (!skb) {
- mif_info("%s: ERR! alloc_skb fail (tx_size:%d)\n",
- iod->name, tx_size);
- return -ENOMEM;
- }
-
- /* store IPC link header*/
- memcpy(skb_put(skb, headroom), frm.hdr, headroom);
-
- /* store IPC message */
- if (copy_from_user(skb_put(skb, count), data, count) != 0) {
- if (skb)
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
-
- if (iod->format == IPC_FMT) {
- struct timespec epoch;
- u8 *msg = (skb->data + headroom);
-#if 0
- char str[MIF_MAX_STR_LEN];
- snprintf(str, MIF_MAX_STR_LEN, "%s: RL2MIF", iod->mc->name);
- pr_ipc(str, msg, (count > 16 ? 16 : count));
-#endif
- getnstimeofday(&epoch);
- mif_time_log(iod->mc->msd, epoch, NULL, 0);
- mif_ipc_log(MIF_IPC_RL2AP, iod->mc->msd, msg, count);
- }
-
- /* store padding */
- if (tailroom)
- skb_put(skb, tailroom);
-
- /* send data with sk_buff, link device will put sk_buff
- * into the specific sk_buff_q and run work-q to send data
- */
- skbpriv(skb)->iod = iod;
- skbpriv(skb)->ld = ld;
-
- ret = ld->send(ld, iod, skb);
- if (ret < 0) {
- mif_info("%s: ERR! ld->send fail (err %d)\n", iod->name, ret);
- return ret;
- }
-
- if (ret != tx_size)
- mif_info("%s: wrong tx size (count:%d tx_size:%d ret:%d)\n",
- iod->name, count, tx_size, ret);
-
- return count;
-}
-
-static ssize_t misc_read(struct file *filp, char *buf, size_t count,
- loff_t *fpos)
-{
- struct io_device *iod = (struct io_device *)filp->private_data;
- struct sk_buff_head *rxq = &iod->sk_rx_q;
- struct sk_buff *skb;
- int copied = 0;
-
- skb = skb_dequeue(rxq);
- if (!skb) {
- mif_info("%s: ERR! no data in rxq\n", iod->name);
- return 0;
- }
-
- if (iod->format == IPC_FMT) {
- struct timespec epoch;
-#if 0
- char str[MIF_MAX_STR_LEN];
- snprintf(str, MIF_MAX_STR_LEN, "%s: MIF2RL", iod->mc->name);
- pr_ipc(str, skb->data, (skb->len > 16 ? 16 : skb->len));
-#endif
- getnstimeofday(&epoch);
- mif_time_log(iod->mc->msd, epoch, NULL, 0);
- mif_ipc_log(MIF_IPC_AP2RL, iod->mc->msd, skb->data, skb->len);
- }
-
- copied = skb->len > count ? count : skb->len;
-
- if (copy_to_user(buf, skb->data, copied)) {
- mif_info("%s: ERR! copy_to_user fail\n", iod->name);
- dev_kfree_skb_any(skb);
- return -EFAULT;
- }
-
- mif_debug("%s: data:%d copied:%d qlen:%d\n",
- iod->name, skb->len, copied, rxq->qlen);
-
- if (skb->len > count) {
- skb_pull(skb, count);
- skb_queue_head(rxq, skb);
- } else {
- dev_kfree_skb_any(skb);
- }
-
- return copied;
-}
-
-#ifdef CONFIG_LINK_DEVICE_C2C
-static int misc_mmap(struct file *filp, struct vm_area_struct *vma)
-{
- int r = 0;
- unsigned long size = 0;
- unsigned long pfn = 0;
- unsigned long offset = 0;
- struct io_device *iod = (struct io_device *)filp->private_data;
-
- if (!vma)
- return -EFAULT;
-
- size = vma->vm_end - vma->vm_start;
- offset = vma->vm_pgoff << PAGE_SHIFT;
- if (offset + size > (C2C_CP_RGN_SIZE + C2C_SH_RGN_SIZE)) {
- mif_info("ERR: offset + size > C2C_CP_RGN_SIZE\n");
- return -EINVAL;
- }
-
- /* Set the noncacheable property to the region */
- vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
- vma->vm_flags |= VM_RESERVED | VM_IO;
-
- pfn = __phys_to_pfn(C2C_CP_RGN_ADDR + offset);
- r = remap_pfn_range(vma, vma->vm_start, pfn, size, vma->vm_page_prot);
- if (r) {
- mif_info("ERR: Failed in remap_pfn_range()!!!\n");
- return -EAGAIN;
- }
-
- mif_info("%s: VA = 0x%08lx, offset = 0x%lx, size = %lu\n",
- iod->name, vma->vm_start, offset, size);
-
- return 0;
-}
-#endif
-
-static const struct file_operations misc_io_fops = {
- .owner = THIS_MODULE,
- .open = misc_open,
- .release = misc_release,
- .poll = misc_poll,
- .unlocked_ioctl = misc_ioctl,
- .write = misc_write,
- .read = misc_read,
-#ifdef CONFIG_LINK_DEVICE_C2C
- .mmap = misc_mmap,
-#endif
-};
-
-static int vnet_open(struct net_device *ndev)
-{
- struct vnet *vnet = netdev_priv(ndev);
-
- mif_err("%s\n", vnet->iod->name);
-
- netif_start_queue(ndev);
- atomic_inc(&vnet->iod->opened);
- return 0;
-}
-
-static int vnet_stop(struct net_device *ndev)
-{
- struct vnet *vnet = netdev_priv(ndev);
-
- mif_err("%s\n", vnet->iod->name);
-
- atomic_dec(&vnet->iod->opened);
- netif_stop_queue(ndev);
- skb_queue_purge(&vnet->iod->sk_rx_q);
- return 0;
-}
-
-static int vnet_xmit(struct sk_buff *skb, struct net_device *ndev)
-{
- struct vnet *vnet = netdev_priv(ndev);
- struct io_device *iod = vnet->iod;
- struct link_device *ld = get_current_link(iod);
- struct sk_buff *skb_new;
- int ret;
- unsigned headroom = 0;
- unsigned tailroom = 0;
- unsigned long tx_bytes = skb->len;
- struct iphdr *ip_header = NULL;
- struct sipc5_frame_data frm;
-
- /* When use `handover' with Network Bridge,
- * user -> bridge device(rmnet0) -> real rmnet(xxxx_rmnet0) -> here.
- * bridge device is ethernet device unlike xxxx_rmnet(net device).
- * We remove the an ethernet header of skb before using skb->len,
- * because bridge device added an ethernet header to skb.
- */
- if (iod->use_handover) {
- if (iod->id >= PS_DATA_CH_0 && iod->id <= PS_DATA_CH_LAST)
- skb_pull(skb, sizeof(struct ethhdr));
- }
-
- headroom = tx_build_link_header(&frm, iod, ld, skb->len);
-
- /* ip loop-back */
- ip_header = (struct iphdr *)skb->data;
- if (iod->msd->loopback_ipaddr &&
- ip_header->daddr == iod->msd->loopback_ipaddr) {
- swap(ip_header->saddr, ip_header->daddr);
- frm.ch_id = DATA_LOOPBACK_CHANNEL;
- frm.hdr[SIPC5_CH_ID_OFFSET] = DATA_LOOPBACK_CHANNEL;
- }
-
- if (ld->aligned)
- tailroom = sipc5_calc_padding_size(frm.len);
-
- if (skb_headroom(skb) < headroom || skb_tailroom(skb) < tailroom) {
- mif_debug("%s: skb_copy_expand needed\n", iod->name);
- skb_new = skb_copy_expand(skb, headroom, tailroom, GFP_ATOMIC);
- /* skb_copy_expand success or not, free old skb from caller */
- dev_kfree_skb_any(skb);
- if (!skb_new) {
- mif_info("%s: ERR! skb_copy_expand fail\n", iod->name);
- return NETDEV_TX_BUSY;
- }
- } else {
- skb_new = skb;
- }
-
- memcpy(skb_push(skb_new, headroom), frm.hdr, headroom);
- if (tailroom)
- skb_put(skb_new, tailroom);
-
- skbpriv(skb_new)->iod = iod;
- skbpriv(skb_new)->ld = ld;
-
- ret = ld->send(ld, iod, skb_new);
- if (ret < 0) {
- netif_stop_queue(ndev);
- mif_info("%s: ERR! ld->send fail (err %d)\n", iod->name, ret);
- return NETDEV_TX_BUSY;
- }
-
- ndev->stats.tx_packets++;
- ndev->stats.tx_bytes += tx_bytes;
-
- return NETDEV_TX_OK;
-}
-
-static struct net_device_ops vnet_ops = {
- .ndo_open = vnet_open,
- .ndo_stop = vnet_stop,
- .ndo_start_xmit = vnet_xmit,
-};
-
-static void vnet_setup(struct net_device *ndev)
-{
- ndev->netdev_ops = &vnet_ops;
- ndev->type = ARPHRD_PPP;
- ndev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
- ndev->addr_len = 0;
- ndev->hard_header_len = 0;
- ndev->tx_queue_len = 1000;
- ndev->mtu = ETH_DATA_LEN;
- ndev->watchdog_timeo = 5 * HZ;
-}
-
-static void vnet_setup_ether(struct net_device *ndev)
-{
- ndev->netdev_ops = &vnet_ops;
- ndev->type = ARPHRD_ETHER;
- ndev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST | IFF_SLAVE;
- ndev->addr_len = ETH_ALEN;
- random_ether_addr(ndev->dev_addr);
- ndev->hard_header_len = 0;
- ndev->tx_queue_len = 1000;
- ndev->mtu = ETH_DATA_LEN;
- ndev->watchdog_timeo = 5 * HZ;
-}
-
-int sipc5_init_io_device(struct io_device *iod)
-{
- int ret = 0;
- struct vnet *vnet;
-
- /* Get modem state from modem control device */
- iod->modem_state_changed = io_dev_modem_state_changed;
-
- iod->sim_state_changed = io_dev_sim_state_changed;
-
- /* Get data from link device */
- mif_debug("%s: SIPC version = %d\n", iod->name, iod->ipc_version);
- iod->recv = io_dev_recv_data_from_link_dev;
- iod->recv_skb = io_dev_recv_skb_from_link_dev;
-
- /* Register misc or net device */
- switch (iod->io_typ) {
- case IODEV_MISC:
- init_waitqueue_head(&iod->wq);
- skb_queue_head_init(&iod->sk_rx_q);
-
- iod->miscdev.minor = MISC_DYNAMIC_MINOR;
- iod->miscdev.name = iod->name;
- iod->miscdev.fops = &misc_io_fops;
-
- ret = misc_register(&iod->miscdev);
- if (ret)
- mif_info("%s: ERR! misc_register failed\n", iod->name);
-
- break;
-
- case IODEV_NET:
- skb_queue_head_init(&iod->sk_rx_q);
- if (iod->use_handover)
- iod->ndev = alloc_netdev(0, iod->name,
- vnet_setup_ether);
- else
- iod->ndev = alloc_netdev(0, iod->name, vnet_setup);
-
- if (!iod->ndev) {
- mif_info("%s: ERR! alloc_netdev fail\n", iod->name);
- return -ENOMEM;
- }
-
- ret = register_netdev(iod->ndev);
- if (ret) {
- mif_info("%s: ERR! register_netdev fail\n", iod->name);
- free_netdev(iod->ndev);
- }
-
- mif_debug("iod 0x%p\n", iod);
- vnet = netdev_priv(iod->ndev);
- mif_debug("vnet 0x%p\n", vnet);
- vnet->iod = iod;
-
- break;
-
- case IODEV_DUMMY:
- skb_queue_head_init(&iod->sk_rx_q);
-
- iod->miscdev.minor = MISC_DYNAMIC_MINOR;
- iod->miscdev.name = iod->name;
- iod->miscdev.fops = &misc_io_fops;
-
- ret = misc_register(&iod->miscdev);
- if (ret)
- mif_info("%s: ERR! misc_register fail\n", iod->name);
- ret = device_create_file(iod->miscdev.this_device,
- &attr_waketime);
- if (ret)
- mif_info("%s: ERR! device_create_file fail\n",
- iod->name);
- ret = device_create_file(iod->miscdev.this_device,
- &attr_loopback);
- if (ret)
- mif_err("failed to create `loopback file' : %s\n",
- iod->name);
- ret = device_create_file(iod->miscdev.this_device,
- &attr_txlink);
- if (ret)
- mif_err("failed to create `txlink file' : %s\n",
- iod->name);
- break;
-
- default:
- mif_info("%s: ERR! wrong io_type %d\n", iod->name, iod->io_typ);
- return -EINVAL;
- }
-
- return ret;
-}
-
diff --git a/drivers/misc/modem_if_u1/sipc5_modem.c b/drivers/misc/modem_if_u1/sipc5_modem.c
deleted file mode 100644
index 9a66b97..0000000
--- a/drivers/misc/modem_if_u1/sipc5_modem.c
+++ /dev/null
@@ -1,385 +0,0 @@
-/* linux/drivers/modem/modem.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010 Samsung Electronics.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/interrupt.h>
-#include <linux/platform_device.h>
-#include <linux/miscdevice.h>
-#include <linux/if_arp.h>
-
-#include <linux/uaccess.h>
-#include <linux/fs.h>
-#include <linux/io.h>
-#include <linux/wait.h>
-#include <linux/sched.h>
-#include <linux/slab.h>
-#include <linux/mutex.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/delay.h>
-#include <linux/wakelock.h>
-
-#include <linux/platform_data/modem.h>
-#include "modem_prj.h"
-#include "modem_variation.h"
-#include "modem_utils.h"
-
-#define FMT_WAKE_TIME (HZ/2)
-#define RAW_WAKE_TIME (HZ*6)
-
-static struct modem_shared *create_modem_shared_data(void)
-{
- struct modem_shared *msd;
- int size = MAX_MIF_BUFF_SIZE;
-
- msd = kzalloc(sizeof(struct modem_shared), GFP_KERNEL);
- if (!msd)
- return NULL;
-
- /* initialize link device list */
- INIT_LIST_HEAD(&msd->link_dev_list);
-
- /* initialize tree of io devices */
- msd->iodevs_tree_chan = RB_ROOT;
- msd->iodevs_tree_fmt = RB_ROOT;
-
- msd->storage.cnt = 0;
- msd->storage.addr = kzalloc(MAX_MIF_BUFF_SIZE +
- (MAX_MIF_SEPA_SIZE * 2), GFP_KERNEL);
- if (!msd->storage.addr) {
- mif_err("IPC logger buff alloc failed!!\n");
- return NULL;
- }
- memset(msd->storage.addr, 0, size + (MAX_MIF_SEPA_SIZE * 2));
- memcpy(msd->storage.addr, MIF_SEPARATOR, MAX_MIF_SEPA_SIZE);
- msd->storage.addr += MAX_MIF_SEPA_SIZE;
- memcpy(msd->storage.addr, &size, MAX_MIF_SEPA_SIZE);
- msd->storage.addr += MAX_MIF_SEPA_SIZE;
- spin_lock_init(&msd->lock);
-
- return msd;
-}
-
-static struct modem_ctl *create_modemctl_device(struct platform_device *pdev,
- struct modem_shared *msd)
-{
- int ret = 0;
- struct modem_data *pdata;
- struct modem_ctl *modemctl;
- struct device *dev = &pdev->dev;
-
- /* create modem control device */
- modemctl = kzalloc(sizeof(struct modem_ctl), GFP_KERNEL);
- if (!modemctl)
- return NULL;
-
- modemctl->msd = msd;
- modemctl->dev = dev;
- modemctl->phone_state = STATE_OFFLINE;
-
- pdata = pdev->dev.platform_data;
- modemctl->mdm_data = pdata;
- modemctl->name = pdata->name;
-
- /* init modemctl device for getting modemctl operations */
- ret = call_modem_init_func(modemctl, pdata);
- if (ret) {
- kfree(modemctl);
- return NULL;
- }
-
- mif_info("%s is created!!!\n", pdata->name);
-
- return modemctl;
-}
-
-static struct io_device *create_io_device(struct modem_io_t *io_t,
- struct modem_shared *msd, struct modem_ctl *modemctl,
- struct modem_data *pdata)
-{
- int ret = 0;
- struct io_device *iod = NULL;
-
- iod = kzalloc(sizeof(struct io_device), GFP_KERNEL);
- if (!iod) {
- mif_err("iod == NULL\n");
- return NULL;
- }
-
- rb_init_node(&iod->node_chan);
- rb_init_node(&iod->node_fmt);
-
- iod->name = io_t->name;
- iod->id = io_t->id;
- iod->format = io_t->format;
- iod->io_typ = io_t->io_type;
- iod->link_types = io_t->links;
- iod->app = io_t->app;
- iod->net_typ = pdata->modem_net;
- iod->use_handover = pdata->use_handover;
- iod->ipc_version = pdata->ipc_version;
- atomic_set(&iod->opened, 0);
-
- /* link between io device and modem control */
- iod->mc = modemctl;
- if (iod->format == IPC_FMT)
- modemctl->iod = iod;
- if (iod->format == IPC_BOOT) {
- modemctl->bootd = iod;
- mif_info("Bood device = %s\n", iod->name);
- }
-
- /* link between io device and modem shared */
- iod->msd = msd;
-
- /* add iod to rb_tree */
- if (iod->format != IPC_RAW)
- insert_iod_with_format(msd, iod->format, iod);
-
- if (sipc5_is_not_reserved_channel(iod->id))
- insert_iod_with_channel(msd, iod->id, iod);
-
- /* register misc device or net device */
- ret = sipc5_init_io_device(iod);
- if (ret) {
- kfree(iod);
- mif_err("sipc5_init_io_device fail (%d)\n", ret);
- return NULL;
- }
-
- mif_debug("%s is created!!!\n", iod->name);
- return iod;
-}
-
-static int attach_devices(struct io_device *iod, enum modem_link tx_link)
-{
- struct modem_shared *msd = iod->msd;
- struct link_device *ld;
- unsigned ch;
-
- /* find link type for this io device */
- list_for_each_entry(ld, &msd->link_dev_list, list) {
- if (IS_CONNECTED(iod, ld)) {
- /* The count 1 bits of iod->link_types is count
- * of link devices of this iod.
- * If use one link device,
- * or, 2+ link devices and this link is tx_link,
- * set iod's link device with ld
- */
- if ((countbits(iod->link_types) <= 1) ||
- (tx_link == ld->link_type)) {
- mif_debug("set %s->%s\n", iod->name, ld->name);
- set_current_link(iod, ld);
- }
- }
- }
-
- /* if use rx dynamic switch, set tx_link at modem_io_t of
- * board-*-modems.c
- */
- if (!get_current_link(iod)) {
- mif_err("%s->link == NULL\n", iod->name);
- BUG();
- }
-
- switch (iod->format) {
- case IPC_FMT:
- wake_lock_init(&iod->wakelock, WAKE_LOCK_SUSPEND, iod->name);
- iod->waketime = FMT_WAKE_TIME;
- break;
-
- case IPC_RAW:
- wake_lock_init(&iod->wakelock, WAKE_LOCK_SUSPEND, iod->name);
- iod->waketime = RAW_WAKE_TIME;
- break;
-
- case IPC_RFS:
- wake_lock_init(&iod->wakelock, WAKE_LOCK_SUSPEND, iod->name);
- iod->waketime = RAW_WAKE_TIME;
- break;
-
- case IPC_MULTI_RAW:
- wake_lock_init(&iod->wakelock, WAKE_LOCK_SUSPEND, iod->name);
- iod->waketime = RAW_WAKE_TIME;
- break;
-
- case IPC_BOOT:
- wake_lock_init(&iod->wakelock, WAKE_LOCK_SUSPEND, iod->name);
- iod->waketime = RAW_WAKE_TIME;
- break;
-
- default:
- break;
- }
-
- return 0;
-}
-
-static int __devinit modem_probe(struct platform_device *pdev)
-{
- int i;
- struct modem_data *pdata = pdev->dev.platform_data;
- struct modem_shared *msd = NULL;
- struct modem_ctl *modemctl = NULL;
- struct io_device *iod[pdata->num_iodevs];
- struct link_device *ld;
-
- mif_err("%s\n", pdev->name);
- memset(iod, 0, sizeof(iod));
-
- msd = create_modem_shared_data();
- if (!msd) {
- mif_err("msd == NULL\n");
- goto err_free_modemctl;
- }
-
- modemctl = create_modemctl_device(pdev, msd);
- if (!modemctl) {
- mif_err("modemctl == NULL\n");
- goto err_free_modemctl;
- }
-
- /* create link device */
- /* support multi-link device */
- for (i = 0; i < LINKDEV_MAX ; i++) {
- /* find matching link type */
- if (pdata->link_types & LINKTYPE(i)) {
- ld = call_link_init_func(pdev, i);
- if (!ld)
- goto err_free_modemctl;
-
- mif_err("link created: %s\n", ld->name);
- ld->link_type = i;
- ld->mc = modemctl;
- ld->msd = msd;
- list_add(&ld->list, &msd->link_dev_list);
- }
- }
-
- /* create io deivces and connect to modemctl device */
- for (i = 0; i < pdata->num_iodevs; i++) {
- iod[i] = create_io_device(&pdata->iodevs[i], msd, modemctl,
- pdata);
- if (!iod[i]) {
- mif_err("iod[%d] == NULL\n", i);
- goto err_free_modemctl;
- }
-
- attach_devices(iod[i], pdata->iodevs[i].tx_link);
- }
-
- platform_set_drvdata(pdev, modemctl);
-
- mif_err("Complete!!!\n");
-
- return 0;
-
-err_free_modemctl:
- for (i = 0; i < pdata->num_iodevs; i++)
- if (iod[i] != NULL)
- kfree(iod[i]);
-
- if (modemctl != NULL)
- kfree(modemctl);
-
- if (msd != NULL)
- kfree(msd);
-
- return -ENOMEM;
-}
-
-static void modem_shutdown(struct platform_device *pdev)
-{
- struct device *dev = &pdev->dev;
- struct modem_ctl *mc = dev_get_drvdata(dev);
- struct utc_time utc;
-
- mc->ops.modem_off(mc);
- mc->phone_state = STATE_OFFLINE;
-
- get_utc_time(&utc);
- mif_info("%s: at [%02d:%02d:%02d.%03d]\n",
- mc->name, utc.hour, utc.min, utc.sec, utc.msec);
-}
-
-static int modem_suspend(struct device *pdev)
-{
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- struct utc_time utc;
-#endif
-
-#ifndef CONFIG_LINK_DEVICE_HSIC
- struct modem_ctl *mc = dev_get_drvdata(pdev);
-
- if (mc->gpio_pda_active) {
- gpio_set_value(mc->gpio_pda_active, 0);
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- get_utc_time(&utc);
- mif_info("%s: at [%02d:%02d:%02d.%03d]\n",
- mc->name, utc.hour, utc.min, utc.sec, utc.msec);
-#endif
- }
-#endif
-
- return 0;
-}
-
-static int modem_resume(struct device *pdev)
-{
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- struct utc_time utc;
-#endif
-
-#ifndef CONFIG_LINK_DEVICE_HSIC
- struct modem_ctl *mc = dev_get_drvdata(pdev);
-
- if (mc->gpio_pda_active) {
- gpio_set_value(mc->gpio_pda_active, 1);
-#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP
- get_utc_time(&utc);
- mif_info("%s: at [%02d:%02d:%02d.%03d]\n",
- mc->name, utc.hour, utc.min, utc.sec, utc.msec);
-#endif
- }
-#endif
-
- return 0;
-}
-
-static const struct dev_pm_ops modem_pm_ops = {
- .suspend = modem_suspend,
- .resume = modem_resume,
-};
-
-static struct platform_driver modem_driver = {
- .probe = modem_probe,
- .shutdown = modem_shutdown,
- .driver = {
- .name = "mif_sipc5",
- .pm = &modem_pm_ops,
- },
-};
-
-static int __init modem_init(void)
-{
- return platform_driver_register(&modem_driver);
-}
-
-module_init(modem_init);
-
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Samsung Modem Interface Driver");
diff --git a/drivers/misc/mpu3050/Kconfig b/drivers/misc/mpu3050/Kconfig
deleted file mode 100755
index 933aa33..0000000
--- a/drivers/misc/mpu3050/Kconfig
+++ /dev/null
@@ -1,147 +0,0 @@
-
-menu "Motion Sensors Support"
-
-config MPU_NONE
- bool "None"
-
-config MPU_SENSORS_MPU6000
- tristate "MPU6000"
- depends on I2C
-
-choice
- prompt "Accelerometer Type"
- depends on MPU_SENSORS_MPU3050
- default MPU_SENSORS_ACCELEROMETER_NONE
-
-config MPU_SENSORS_ACCELEROMETER_NONE
- bool "NONE"
- depends on MPU_SENSORS_MPU3050 || MPU_SENSORS_MPU6000
-
-config MPU_SENSORS_ADXL346
- bool "ADI adxl346"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_BMA150
- bool "Bosch BMA150"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_BMA222
- bool "Bosch BMA222"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_KXSD9
- bool "Kionix KXSD9"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_KXUD9
- bool "Kionix KXUD9"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_KXTF9
- bool "Kionix KXTF9"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_LIS331DLH
- bool "ST lis331dlh"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_LIS3DH
- bool "ST lis3dh"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_LSM303DLHA
- bool "ST lsm303dlh"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_MMA8450
- bool "Freescale mma8450"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_MMA845X
- bool "Freescale mma8451/8452/8453"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_KXTF9_LIS3DH
- bool "Kionix KXTF9+ ST LIS3DH"
- depends on MPU_SENSORS_MPU3050
-
-endchoice
-
-choice
- prompt "Compass Type"
- depends on MPU_SENSORS_MPU6000 || MPU_SENSORS_MPU3050
- default MPU_SENSORS_COMPASS_NONE
-
-config MPU_SENSORS_COMPASS_NONE
- bool "NONE"
- depends on MPU_SENSORS_MPU6000 || MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_AK8975
- bool "AKM ak8975"
- depends on MPU_SENSORS_MPU6000 || MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_MMC314X
- bool "MEMSIC mmc314x"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_MMC328X
- bool "MEMSIC mmc328x"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_AMI30X
- bool "Aichi Steel ami30X"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_HMC5883
- bool "Honeywell hmc5883"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_LSM303DLHM
- bool "ST lsm303dlh"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_MMC314X
- bool "MEMSIC mmc314xMS"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_YAS529
- bool "Yamaha yas529"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_HSCDTD002B
- bool "Alps hscdtd002b"
- depends on MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_HSCDTD004A
- bool "Alps hscdtd004a"
- depends on MPU_SENSORS_MPU3050
-
-endchoice
-
-choice
- prompt "Pressure Type"
- depends on MPU_SENSORS_MPU6000 || MPU_SENSORS_MPU3050
- default MPU_SENSORS_PRESSURE_NONE
-
-config MPU_SENSORS_PRESSURE_NONE
- bool "NONE"
- depends on MPU_SENSORS_MPU6000 || MPU_SENSORS_MPU3050
-
-config MPU_SENSORS_BMA085
- bool "Bosch BMA085"
- depends on MPU_SENSORS_MPU6000 || MPU_SENSORS_MPU3050
-
-endchoice
-
-
-config MPU_SENSORS_CORE
- tristate "Sensors core"
-
-config MPU_SENSORS_TIMERIRQ
- tristate "Timer IRQ"
-
-config MPU_SENSORS_DEBUG
- bool "MPU debug"
- depends on MPU_SENSORS_MPU3050 || MPU_SENSORS_MPU6000 || MPU_SENSORS_TIMERIRQ
-
-endmenu
diff --git a/drivers/misc/mpu3050/Makefile b/drivers/misc/mpu3050/Makefile
deleted file mode 100755
index 7432122..0000000
--- a/drivers/misc/mpu3050/Makefile
+++ /dev/null
@@ -1,145 +0,0 @@
-#
-# Kernel makefile for motions sensors
-#
-#
-
-# MPU
-obj-$(CONFIG_MPU_SENSORS_MPU3050) += mpu3050.o
-mpu3050-objs += mpuirq.o \
- slaveirq.o \
- mpu-dev.o \
- mpu-i2c.o \
- mlsl-kernel.o \
- mlos-kernel.o \
- mpu-accel.o \
- $(MLLITE_DIR)mldl_cfg.o
-
-#
-# Accel options
-#
-ifdef CONFIG_MPU_SENSORS_ADXL346
-mpu3050-objs += $(MLLITE_DIR)accel/adxl346.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_BMA150
-mpu3050-objs += $(MLLITE_DIR)accel/bma150.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_BMA222
-mpu3050-objs += $(MLLITE_DIR)accel/bma222.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_KXSD9
-mpu3050-objs += $(MLLITE_DIR)accel/kxsd9.o
-endif
-
-ifdef CONFIG_MACH_BOSE_ATT
- mpu3050-objs += $(MLLITE_DIR)accel/kxud9.o
- mpu3050-objs += $(MLLITE_DIR)accel/kxtf9.o
-else
-ifdef CONFIG_MPU_SENSORS_KXUD9
-mpu3050-objs += $(MLLITE_DIR)accel/kxud9.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_KXTF9
-mpu3050-objs += $(MLLITE_DIR)accel/kxtf9.o
-endif
-endif
-
-ifdef CONFIG_MPU_SENSORS_LIS331DLH
-mpu3050-objs += $(MLLITE_DIR)accel/lis331.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_LIS3DH
-mpu3050-objs += $(MLLITE_DIR)accel/lis3dh.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_LSM303DLHA
-mpu3050-objs += $(MLLITE_DIR)accel/lsm303a.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_MMA8450
-mpu3050-objs += $(MLLITE_DIR)accel/mma8450.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_MMA845X
-mpu3050-objs += $(MLLITE_DIR)accel/mma845x.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_KXTF9_LIS3DH
-mpu3050-objs += $(MLLITE_DIR)accel/kxtf9.o
-mpu3050-objs += $(MLLITE_DIR)accel/lis3dh.o
-endif
-
-#
-# Compass options
-#
-ifdef CONFIG_MPU_SENSORS_AK8975
-mpu3050-objs += $(MLLITE_DIR)compass/mpuak8975.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_AMI30X
-mpu3050-objs += $(MLLITE_DIR)compass/ami30x.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_HMC5883
-mpu3050-objs += $(MLLITE_DIR)compass/hmc5883.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_LSM303DLHM
-mpu3050-objs += $(MLLITE_DIR)compass/lsm303m.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_MMC314X
-mpu3050-objs += $(MLLITE_DIR)compass/mmc314x.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_MMC328X
-mpu3050-objs += $(MLLITE_DIR)compass/mmc328x.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_YAS529
-mpu3050-objs += $(MLLITE_DIR)compass/yas529-kernel.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_HSCDTD002B
-mpu3050-objs += $(MLLITE_DIR)compass/hscdtd002b.o
-endif
-
-ifdef CONFIG_MPU_SENSORS_HSCDTD004A
-mpu3050-objs += $(MLLITE_DIR)compass/hscdtd004a.o
-endif
-
-#
-# Pressure options
-#
-ifdef CONFIG_MPU_SENSORS_BMA085
-mpu3050-objs += $(MLLITE_DIR)pressure/bma085.o
-endif
-
-ccflags-y += -I$(M)/$(MLLITE_DIR) \
- -I$(M)/../../include \
- -Idrivers/misc/mpu3050 \
- -Iinclude/linux
-
-obj-$(CONFIG_MPU_SENSORS_MPU6000)+= mpu6000.o
-mpu6000-objs += mpuirq.o \
- slaveirq.o \
- mpu-dev.o \
- mpu-i2c.o \
- mlsl-kernel.o \
- mlos-kernel.o \
- $(MLLITE_DIR)mldl_cfg.o \
- $(MLLITE_DIR)accel/mantis.o
-
-ifdef CONFIG_MPU_SENSORS_MPU6000
-ccflags-y += -DM_HW
-endif
-
-obj-$(CONFIG_MPU_SENSORS_CORE) += sensors_core.o
-obj-$(CONFIG_MPU_SENSORS_TIMERIRQ)+= timerirq.o
-
-ifdef CONFIG_MPU_SENSORS_DEBUG
-ccflags-y += -DDEBUG
-endif
-
diff --git a/drivers/misc/mpu3050/README b/drivers/misc/mpu3050/README
deleted file mode 100755
index 2734dc1..0000000
--- a/drivers/misc/mpu3050/README
+++ /dev/null
@@ -1,250 +0,0 @@
-Kernel driver mpu
-=====================
-
-Supported chips:
- * InvenSense IMU3050
- Prefix: 'mpu3050'
- Datasheet:
- PS-MPU-3000A-00.2.4b.pdf
-
- * InvenSense IMU6000
- Prefix: 'mpu6000'
- Datasheet:
- MPU-6000A-00 v1.0.pdf
-
-Author: InvenSense <http://invensense.com>
-
-Description
------------
-The mpu is a motion processor unit that controls the mpu3050 gyroscope, a slave
-accelerometer, a compass and a pressure sensor, or the mpu6000 and slave
-compass. This document describes how to install the driver into a Linux kernel
-and a small note about how to set up the file permissions in an android file
-system.
-
-Sysfs entries
--------------
-/dev/mpu
-/dev/mpuirq
-/dev/accelirq
-/dev/compassirq
-/dev/pressureirq
-
-General Remarks MPU3050
------------------------
-* Valid addresses for the MPU3050 is 0x68.
-* Accelerometer must be on the secondary I2C bus for MPU3050, the
- magnetometer must be on the primary bus and pressure sensor must
- be on the primary bus.
-
-General Remarks MPU6000
------------------------
-* Valid addresses for the MPU6000 is 0x68.
-* Magnetometer must be on the secondary I2C bus for the MPU6000.
-* Accelerometer slave address must be set to 0x68
-* Gyro and Accel orientation matrices should be the same
-
-Programming the chip using /dev/mpu
-----------------------------------
-Programming of MPU3050 or MPU6000 is done by first opening the /dev/mpu file and
-then performing a series of IOCTLS on the handle returned. The IOCTL codes can
-be found in mpu.h. Typically this is done by the mllite library in user
-space.
-
-Adding to a Kernel
-==================
-
-The mpu driver is designed to be inserted in the drivers/misc part of the
-kernel. Extracting the tarball from the root kernel dir will place the
-contents of the tarball here:
-
- <kernel root dir>/drivers/misc/mpu3050
- <kernel root dir>/include/linux/mpu.h
- <kernel root dir>/include/linux/mpu3050.h
- <kernel root dir>/include/linux/mpu6000.h
-
-After this is done the drivers/misc/Kconfig must be edited to add the line:
-
- source "drivers/misc/mpu3050/Kconfig"
-
-Similarly drivers/misc/Makefile must be edited to add the line:
-
- obj-y += mpu3050/
-
-Configuration can then be done as normal.
-
-NOTE: This driver depends on a kernel patch to drivers/char/char.c. This patch
-started to be included in most 2.6.35 based kernels.
-drivers: misc: pass miscdevice pointer via file private data
-https://patchwork.kernel.org/patch/96412/
-
----
- drivers/char/misc.c | 1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-
-diff --git a/drivers/char/misc.c b/drivers/char/misc.c
-index 92ab03d..cd650ca 100644
---- a/drivers/char/misc.c
-+++ b/drivers/char/misc.c
-@@ -144,6 +144,7 @@ static int misc_open(struct inode * inode, struct file * file)
- old_fops = file->f_op;
- file->f_op = new_fops;
- if (file->f_op->open) {
-+ file->private_data = c;
- err=file->f_op->open(inode,file);
- if (err) {
- fops_put(file->f_op);
----
-
-Board and Platform Data
------------------------
-
-In order for the driver to work, board and platform data specific to the device
-needs to be added to the board file. A mpu3050_platform_data structure must
-be created and populated and set in the i2c_board_info_structure. For details
-of each structure member see mpu.h. All values below are simply an example and
-should be modified for your platform.
-
-#include <linux/mpu.h>
-
-#if defined(CONFIG_SENSORS_MPU3050) || defined(CONFIG_SENSORS_MPU3050_MODULE)
-
-#define SENSOR_MPU_NAME "mpu3050"
-
-static struct mpu3050_platform_data mpu_data = {
- .int_config = 0x10,
- .orientation = { -1, 0, 0,
- 0, 1, 0,
- 0, 0, -1 },
- /* accel */
- .accel = {
-#ifdef CONFIG_SENSORS_MPU3050_MODULE
- .get_slave_descr = NULL,
-#else
- .get_slave_descr = get_accel_slave_descr,
-#endif
- .adapt_num = 2,
- .bus = EXT_SLAVE_BUS_SECONDARY,
- .address = 0x0F,
- .orientation = { -1, 0, 0,
- 0, 1, 0,
- 0, 0, -1 },
- },
- /* compass */
- .compass = {
-#ifdef CONFIG_SENSORS_MPU3050_MODULE
- .get_slave_descr = NULL,
-#else
- .get_slave_descr = get_compass_slave_descr,
-#endif
- .adapt_num = 2,
- .bus = EXT_SLAVE_BUS_PRIMARY,
- .address = 0x0E,
- .orientation = { 1, 0, 0,
- 0, 1, 0,
- 0, 0, 1 },
- },
- /* pressure */
- .pressure = {
-#ifdef CONFIG_SENSORS_MPU3050_MODULE
- .get_slave_descr = NULL,
-#else
- .get_slave_descr = get_pressure_slave_descr,
-#endif
- .adapt_num = 2,
- .bus = EXT_SLAVE_BUS_PRIMARY,
- .address = 0x77,
- .orientation = { 1, 0, 0,
- 0, 1, 0,
- 0, 0, 1 },
- },
-};
-#endif
-
-#if defined(CONFIG_SENSORS_MPU6000) || defined(CONFIG_SENSORS_MPU6000_MODULE)
-
-#define SENSOR_MPU_NAME "mpu6000"
-
-static struct mpu3050_platform_data mpu_data = {
- .int_config = 0x10,
- .orientation = { -1, 0, 0,
- 0, 1, 0,
- 0, 0, -1 },
- /* accel */
- .accel = {
-#ifdef CONFIG_SENSORS_MPU6000_MODULE
- .get_slave_descr = NULL,
-#else
- .get_slave_descr = get_accel_slave_descr,
-#endif
- .adapt_num = 2,
- .bus = EXT_SLAVE_BUS_PRIMARY,
- .address = 0x68,
- .orientation = { -1, 0, 0,
- 0, 1, 0,
- 0, 0, -1 },
- },
- /* compass */
- .compass = {
-#ifdef CONFIG_SENSORS_MPU6000_MODULE
- .get_slave_descr = NULL,
-#else
- .get_slave_descr = get_compass_slave_descr,
-#endif
- .adapt_num = 2,
- .bus = EXT_SLAVE_BUS_SECONDARY,
- .address = 0x0E,
- .orientation = { 1, 0, 0,
- 0, 1, 0,
- 0, 0, 1 },
- },
- /* pressure */
- .pressure = {
-#ifdef CONFIG_SENSORS_MPU6000_MODULE
- .get_slave_descr = NULL,
-#else
- .get_slave_descr = get_pressure_slave_descr,
-#endif
- .adapt_num = 2,
- .bus = EXT_SLAVE_BUS_PRIMARY,
- .address = 0x77,
- .orientation = { 1, 0, 0,
- 0, 1, 0,
- 0, 0, 1 },
- },
-
-};
-#endif
-
-static struct i2c_board_info __initdata beagle_i2c_2_boardinfo[] = {
- {
- I2C_BOARD_INFO(SENSOR_MPU_NAME, 0x68),
- .irq = (IH_GPIO_BASE + MPU_GPIO_IRQ),
- .platform_data = &mpu_data,
- },
-};
-
-Typically the IRQ is a GPIO input pin and needs to be configured properly. If
-in the above example GPIO 168 corresponds to IRQ 299, the following should be
-done as well:
-
-#define MPU_GPIO_IRQ 168
-
- gpio_request(MPU_GPIO_IRQ,"MPUIRQ");
- gpio_direction_input(MPU_GPIO_IRQ)
-
-
-Android File Permissions
-========================
-
-To set up the file permissions on an android system, the /dev/mpu and
-/dev/mpuirq files needs to be added to the system/core/init/devices.c file
-inside the perms_ structure.
-
-static struct perms_ devperms[] = {
- { "/dev/mpu" ,0640, AID_SYSTEM, AID_SYSTEM, 1 },
-};
-
-Sufficient file permissions need to be give to read and write it by the system.
-
diff --git a/drivers/misc/mpu3050/accel/adxl346.c b/drivers/misc/mpu3050/accel/adxl346.c
deleted file mode 100755
index 14cb38a..0000000
--- a/drivers/misc/mpu3050/accel/adxl346.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file adxl346.c
- * @brief Accelerometer setup and handling methods for AD adxl346.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-#define ACCEL_ADI346_SLEEP_REG (0x2D)
-#define ACCEL_ADI346_SLEEP_MASK (0x04)
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*****************************************
- Accelerometer Initialization Functions
-*****************************************/
-
-int adxl346_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char reg;
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- ACCEL_ADI346_SLEEP_REG, 1, &reg);
- ERROR_CHECK(result);
- reg |= ACCEL_ADI346_SLEEP_MASK;
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_ADI346_SLEEP_REG, reg);
- ERROR_CHECK(result);
- return result;
-}
-
-/* full scale setting - register & mask */
-#define ACCEL_ADI346_CTRL_REG (0x31)
-#define ACCEL_ADI346_CTRL_MASK (0x03)
-
-int adxl346_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- unsigned char reg;
-
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- ACCEL_ADI346_SLEEP_REG, 1, &reg);
- ERROR_CHECK(result);
- reg &= ~ACCEL_ADI346_SLEEP_MASK;
- /*wake up if sleeping */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_ADI346_SLEEP_REG, reg);
- ERROR_CHECK(result);
- /*MLOSSleep(10) */
-
- /* Full Scale */
- reg = 0x04;
- reg &= ~ACCEL_ADI346_CTRL_MASK;
- if (slave->range.mantissa == 4)
- reg |= 0x1;
- else if (slave->range.mantissa == 8)
- reg |= 0x2;
- else if (slave->range.mantissa == 16)
- reg |= 0x3;
- else {
- slave->range.mantissa = 2;
- reg |= 0x0;
- }
- slave->range.fraction = 0;
-
- /* DATA_FORMAT: full resolution of +/-2g; data is left justified */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x31, reg);
- ERROR_CHECK(result);
- /* BW_RATE: normal power operation with output data rate of 200Hz */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x2C, 0x0B);
- ERROR_CHECK(result);
- /* POWER_CTL: power on in measurement mode */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x2D, 0x28);
- ERROR_CHECK(result);
- /*--- after wake up, it takes at least [1/(data rate) + 1.1]ms ==>
- 6.1ms to get valid sensor data ---*/
- MLOSSleep(10);
-
- return result;
-}
-
-int adxl346_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, slave->len, data);
- return result;
-}
-
-struct ext_slave_descr adxl346_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ adxl346_suspend,
- /*.resume = */ adxl346_resume,
- /*.read = */ adxl346_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "adx1346",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ ACCEL_ID_ADI346,
- /*.reg = */ 0x32,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_LITTLE_ENDIAN,
- /*.range = */ {2, 0},
-};
-
-struct ext_slave_descr *adxl346_get_slave_descr(void)
-{
- return &adxl346_descr;
-}
-EXPORT_SYMBOL(adxl346_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/accel/bma150.c b/drivers/misc/mpu3050/accel/bma150.c
deleted file mode 100755
index 30fed15..0000000
--- a/drivers/misc/mpu3050/accel/bma150.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file bma150.c
- * @brief Accelerometer setup and handling methods.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlos.h"
-#include "mlsl.h"
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*********************************************
- Accelerometer Initialization Functions
-**********************************************/
-
-static int bma150_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x0a, 0x01);
- MLOSSleep(3); /* 3 ms powerup time maximum */
- ERROR_CHECK(result);
- return result;
-}
-
-/* full scale setting - register and mask */
-#define ACCEL_BOSCH_CTRL_REG (0x14)
-#define ACCEL_BOSCH_CTRL_MASK (0x18)
-
-static int bma150_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char reg = 0;
-
- /* Soft reset */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x0a, 0x02);
- ERROR_CHECK(result);
- MLOSSleep(3);
-
- result =
- MLSLSerialRead(mlsl_handle, pdata->address, 0x14, 1, &reg);
- ERROR_CHECK(result);
-
- /* Bandwidth */
- reg &= 0xc0;
- reg |= 3; /* 3=190 Hz */
-
- /* Full Scale */
- reg &= ~ACCEL_BOSCH_CTRL_MASK;
- if (slave->range.mantissa == 4)
- reg |= 0x08;
- else if (slave->range.mantissa == 8)
- reg |= 0x10;
- else {
- slave->range.mantissa = 2;
- reg |= 0x00;
- }
- slave->range.fraction = 0;
-
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x14, reg);
- ERROR_CHECK(result);
-
- return result;
-}
-
-static int bma150_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, slave->len, data);
- return result;
-}
-
-static struct ext_slave_descr bma150_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ bma150_suspend,
- /*.resume = */ bma150_resume,
- /*.read = */ bma150_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "bma150",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ ACCEL_ID_BMA150,
- /*.reg = */ 0x02,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_LITTLE_ENDIAN,
- /*.range = */ {2, 0},
-};
-
-struct ext_slave_descr *bma150_get_slave_descr(void)
-{
- return &bma150_descr;
-}
-EXPORT_SYMBOL(bma150_get_slave_descr);
-
-#ifdef __KERNEL__
-MODULE_AUTHOR("Invensense");
-MODULE_DESCRIPTION("User space IRQ handler for MPU3xxx devices");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("bma");
-#endif
-
-/**
- * @}
- */
diff --git a/drivers/misc/mpu3050/accel/bma222.c b/drivers/misc/mpu3050/accel/bma222.c
deleted file mode 100755
index 534a1e5..0000000
--- a/drivers/misc/mpu3050/accel/bma222.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/*
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file bma222.c
- * @brief Accelerometer setup and handling methods.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlos.h"
-#include "mlsl.h"
-
-#define ACCEL_BMA222_RANGE_REG (0x0F)
-#define ACCEL_BMA222_BW_REG (0x10)
-#define ACCEL_BMA222_SUSPEND_REG (0x11)
-#define ACCEL_BMA222_SFT_RST_REG (0x14)
-
-/*********************************************
- Accelerometer Initialization Functions
-**********************************************/
-
-static int bma222_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
-
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_BMA222_SUSPEND_REG, 0x80);
- ERROR_CHECK(result);
-
- return result;
-}
-
-static int bma222_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char reg = 0;
-
- /* Soft reset */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_BMA222_SFT_RST_REG, 0xB6);
- ERROR_CHECK(result);
- MLOSSleep(10);
-
- /*Bandwidth */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_BMA222_BW_REG, 0x0C);
- ERROR_CHECK(result);
-
- /* Full Scale */
- if (slave->range.mantissa == 4)
- reg |= 0x05;
- else if (slave->range.mantissa == 8)
- reg |= 0x08;
- else if (slave->range.mantissa == 16)
- reg |= 0x0C;
- else {
- slave->range.mantissa = 2;
- reg |= 0x03;
- }
- slave->range.fraction = 0;
-
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_BMA222_RANGE_REG, reg);
- ERROR_CHECK(result);
-
- return result;
-}
-
-static int bma222_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, slave->len, data);
- return result;
-}
-
-static struct ext_slave_descr bma222_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ bma222_suspend,
- /*.resume = */ bma222_resume,
- /*.read = */ bma222_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "bma222",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ ACCEL_ID_BMA222,
- /*.reg = */ 0x02,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_LITTLE_ENDIAN,
- /*.range = */ {2, 0},
-};
-
-struct ext_slave_descr *bma222_get_slave_descr(void)
-{
- return &bma222_descr;
-}
-EXPORT_SYMBOL(bma222_get_slave_descr);
-
-/*
- * @}
- */
diff --git a/drivers/misc/mpu3050/accel/cma3000.c b/drivers/misc/mpu3050/accel/cma3000.c
deleted file mode 100755
index 0592595..0000000
--- a/drivers/misc/mpu3050/accel/cma3000.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file cma3000.c
- * @brief Accelerometer setup and handling methods for VTI CMA3000
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-#include "accel.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*****************************************
- Accelerometer Initialization Functions
-*****************************************/
-
-int cma3000_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- /* RAM reset */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x1d, 0xcd);
- return result;
-}
-
-int cma3000_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
-
-
- return ML_SUCCESS;
-}
-
-int cma3000_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, slave->len, data);
- return result;
-}
-
-struct ext_slave_descr cma3000_descr = {
- /*.suspend = */ cma3000_suspend,
- /*.resume = */ cma3000_resume,
- /*.read = */ cma3000_read,
- /*.name = */ "cma3000",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ ID_INVALID,
- /* fixme - id to added when support becomes available */
- /*.reg = */ 0x06,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_LITTLE_ENDIAN,
- /*.range = */ 65536,
-};
-
-struct ext_slave_descr *cma3000_get_slave_descr(void)
-{
- return &cma3000_descr;
-}
-EXPORT_SYMBOL(cma3000_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/accel/kxsd9.c b/drivers/misc/mpu3050/accel/kxsd9.c
deleted file mode 100755
index 77bc52c..0000000
--- a/drivers/misc/mpu3050/accel/kxsd9.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file kxsd9.c
- * @brief Accelerometer setup and handling methods.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/kernel.h>
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*****************************************
- Accelerometer Initialization Functions
-*****************************************/
-
-static int kxsd9_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- /* CTRL_REGB: low-power standby mode */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x0d, 0x0);
- ERROR_CHECK(result);
- return result;
-}
-
-/* full scale setting - register and mask */
-#define ACCEL_KIONIX_CTRL_REG (0x0C)
-#define ACCEL_KIONIX_CTRL_MASK (0x3)
-
-static int kxsd9_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- unsigned char reg;
-
- /* Full Scale */
- reg = 0x0;
- reg &= ~ACCEL_KIONIX_CTRL_MASK;
- reg |= 0x00;
- if (slave->range.mantissa == 4) { /* 4g scale = 4.9951 */
- reg |= 0x2;
- slave->range.fraction = 9951;
- } else if (slave->range.mantissa == 7) { /* 6g scale = 7.5018 */
- reg |= 0x1;
- slave->range.fraction = 5018;
- } else if (slave->range.mantissa == 9) { /* 8g scale = 9.9902 */
- reg |= 0x0;
- slave->range.fraction = 9902;
- } else {
- slave->range.mantissa = 2; /* 2g scale = 2.5006 */
- slave->range.fraction = 5006;
- reg |= 0x3;
- }
- reg |= 0xC0; /* 100Hz LPF */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_KIONIX_CTRL_REG, reg);
- ERROR_CHECK(result);
- /* normal operation */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x0d, 0x40);
- ERROR_CHECK(result);
-
- return ML_SUCCESS;
-}
-
-static int kxsd9_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, slave->len, data);
- return result;
-}
-
-static struct ext_slave_descr kxsd9_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ kxsd9_suspend,
- /*.resume = */ kxsd9_resume,
- /*.read = */ kxsd9_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "kxsd9",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ ACCEL_ID_KXSD9,
- /*.reg = */ 0x00,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_BIG_ENDIAN,
- /*.range = */ {2, 5006},
-};
-
-struct ext_slave_descr *kxsd9_get_slave_descr(void)
-{
- return &kxsd9_descr;
-}
-EXPORT_SYMBOL(kxsd9_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/accel/kxtf9.c b/drivers/misc/mpu3050/accel/kxtf9.c
deleted file mode 100644
index 8069f3c..0000000
--- a/drivers/misc/mpu3050/accel/kxtf9.c
+++ /dev/null
@@ -1,641 +0,0 @@
-/*
- * $License:
- * Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file kxtf9.c
- * @brief Accelerometer setup and handling methods.
-*/
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#undef MPL_LOG_NDEBUG
-#define MPL_LOG_NDEBUG 1
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-#define KXTF9_XOUT_HPF_L (0x00) /* 0000 0000 */
-#define KXTF9_XOUT_HPF_H (0x01) /* 0000 0001 */
-#define KXTF9_YOUT_HPF_L (0x02) /* 0000 0010 */
-#define KXTF9_YOUT_HPF_H (0x03) /* 0000 0011 */
-#define KXTF9_ZOUT_HPF_L (0x04) /* 0001 0100 */
-#define KXTF9_ZOUT_HPF_H (0x05) /* 0001 0101 */
-#define KXTF9_XOUT_L (0x06) /* 0000 0110 */
-#define KXTF9_XOUT_H (0x07) /* 0000 0111 */
-#define KXTF9_YOUT_L (0x08) /* 0000 1000 */
-#define KXTF9_YOUT_H (0x09) /* 0000 1001 */
-#define KXTF9_ZOUT_L (0x0A) /* 0001 1010 */
-#define KXTF9_ZOUT_H (0x0B) /* 0001 1011 */
-#define KXTF9_ST_RESP (0x0C) /* 0000 1100 */
-#define KXTF9_WHO_AM_I (0x0F) /* 0000 1111 */
-#define KXTF9_TILT_POS_CUR (0x10) /* 0001 0000 */
-#define KXTF9_TILT_POS_PRE (0x11) /* 0001 0001 */
-#define KXTF9_INT_SRC_REG1 (0x15) /* 0001 0101 */
-#define KXTF9_INT_SRC_REG2 (0x16) /* 0001 0110 */
-#define KXTF9_STATUS_REG (0x18) /* 0001 1000 */
-#define KXTF9_INT_REL (0x1A) /* 0001 1010 */
-#define KXTF9_CTRL_REG1 (0x1B) /* 0001 1011 */
-#define KXTF9_CTRL_REG2 (0x1C) /* 0001 1100 */
-#define KXTF9_CTRL_REG3 (0x1D) /* 0001 1101 */
-#define KXTF9_INT_CTRL_REG1 (0x1E) /* 0001 1110 */
-#define KXTF9_INT_CTRL_REG2 (0x1F) /* 0001 1111 */
-#define KXTF9_INT_CTRL_REG3 (0x20) /* 0010 0000 */
-#define KXTF9_DATA_CTRL_REG (0x21) /* 0010 0001 */
-#define KXTF9_TILT_TIMER (0x28) /* 0010 1000 */
-#define KXTF9_WUF_TIMER (0x29) /* 0010 1001 */
-#define KXTF9_TDT_TIMER (0x2B) /* 0010 1011 */
-#define KXTF9_TDT_H_THRESH (0x2C) /* 0010 1100 */
-#define KXTF9_TDT_L_THRESH (0x2D) /* 0010 1101 */
-#define KXTF9_TDT_TAP_TIMER (0x2E) /* 0010 1110 */
-#define KXTF9_TDT_TOTAL_TIMER (0x2F) /* 0010 1111 */
-#define KXTF9_TDT_LATENCY_TIMER (0x30) /* 0011 0000 */
-#define KXTF9_TDT_WINDOW_TIMER (0x31) /* 0011 0001 */
-#define KXTF9_WUF_THRESH (0x5A) /* 0101 1010 */
-#define KXTF9_TILT_ANGLE (0x5C) /* 0101 1100 */
-#define KXTF9_HYST_SET (0x5F) /* 0101 1111 */
-
-#define KXTF9_MAX_DUR (0xFF)
-#define KXTF9_MAX_THS (0xFF)
-#define KXTF9_THS_COUNTS_P_G (32)
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-struct kxtf9_config {
- unsigned int odr; /* Output data rate mHz */
- unsigned int fsr; /* full scale range mg */
- unsigned int ths; /* Motion no-motion thseshold mg */
- unsigned int dur; /* Motion no-motion duration ms */
- unsigned int irq_type;
- unsigned char reg_ths;
- unsigned char reg_dur;
- unsigned char reg_odr;
- unsigned char reg_int_cfg1;
- unsigned char reg_int_cfg2;
- unsigned char ctrl_reg1;
-};
-
-struct kxtf9_private_data {
- struct kxtf9_config suspend;
- struct kxtf9_config resume;
-};
-
-extern struct acc_data cal_data;
-/*
- * Accelerometer Initialization Functions
- */
-
-static int kxtf9_set_ths(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct kxtf9_config *config, int apply, long ths)
-{
- int result = ML_SUCCESS;
- if ((ths * KXTF9_THS_COUNTS_P_G / 1000) > KXTF9_MAX_THS)
- ths = (KXTF9_MAX_THS * 1000) / KXTF9_THS_COUNTS_P_G;
-
- if (ths < 0)
- ths = 0;
-
- config->ths = ths;
- config->reg_ths = (unsigned char)
- ((long)(ths * KXTF9_THS_COUNTS_P_G) / 1000);
- MPL_LOGV("THS: %d, 0x%02x\n", config->ths, (int)config->reg_ths);
- if (apply)
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_WUF_THRESH,
- config->reg_ths);
- return result;
-}
-
-static int kxtf9_set_dur(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct kxtf9_config *config, int apply, long dur)
-{
- int result = ML_SUCCESS;
- long reg_dur = (dur * config->odr) / 1000000;
- config->dur = dur;
-
- if (reg_dur > KXTF9_MAX_DUR)
- reg_dur = KXTF9_MAX_DUR;
-
- config->reg_dur = (unsigned char)reg_dur;
- MPL_LOGV("DUR: %d, 0x%02x\n", config->dur, (int)config->reg_dur);
- if (apply)
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_WUF_TIMER,
- (unsigned char)reg_dur);
- return result;
-}
-
-/**
- * Sets the IRQ to fire when one of the IRQ events occur. Threshold and
- * duration will not be used uless the type is MOT or NMOT.
- *
- * @param config configuration to apply to, suspend or resume
- * @param irq_type The type of IRQ. Valid values are
- * - MPU_SLAVE_IRQ_TYPE_NONE
- * - MPU_SLAVE_IRQ_TYPE_MOTION
- * - MPU_SLAVE_IRQ_TYPE_DATA_READY
- */
-static int kxtf9_set_irq(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct kxtf9_config *config, int apply, long irq_type)
-{
- int result = ML_SUCCESS;
- struct kxtf9_private_data *private_data = pdata->private_data;
-
- config->irq_type = (unsigned char)irq_type;
- config->ctrl_reg1 &= ~0x22;
- if (irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- config->ctrl_reg1 |= 0x20;
- config->reg_int_cfg1 = 0x38;
- config->reg_int_cfg2 = 0x00;
- } else if (irq_type == MPU_SLAVE_IRQ_TYPE_MOTION) {
- config->ctrl_reg1 |= 0x02;
- if ((unsigned long)config ==
- (unsigned long)&private_data->suspend)
- config->reg_int_cfg1 = 0x34;
- else
- config->reg_int_cfg1 = 0x24;
- config->reg_int_cfg2 = 0xE0;
- } else {
- config->reg_int_cfg1 = 0x00;
- config->reg_int_cfg2 = 0x00;
- }
-
- if (apply) {
- /* Must clear bit 7 before writing new configuration */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1, 0x40);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_INT_CTRL_REG1,
- config->reg_int_cfg1);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_INT_CTRL_REG2,
- config->reg_int_cfg2);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1,
- config->ctrl_reg1);
- }
- MPL_LOGV("CTRL_REG1: %lx, INT_CFG1: %lx, INT_CFG2: %lx\n",
- (unsigned long)config->ctrl_reg1,
- (unsigned long)config->reg_int_cfg1,
- (unsigned long)config->reg_int_cfg2);
-
- return result;
-}
-
-/**
- * Set the Output data rate for the particular configuration
- *
- * @param config Config to modify with new ODR
- * @param odr Output data rate in units of 1/1000Hz
- */
-static int kxtf9_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct kxtf9_config *config, int apply, long odr)
-{
- unsigned char bits;
- int result = ML_SUCCESS;
-
- /* Data sheet says there is 12.5 hz, but that seems to produce a single
- * correct data value, thus we remove it from the table */
- if (odr > 400000) {
- config->odr = 800000;
- bits = 0x06;
- } else if (odr > 200000) {
- config->odr = 400000;
- bits = 0x05;
- } else if (odr > 100000) {
- config->odr = 200000;
- bits = 0x04;
- } else if (odr > 50000) {
- config->odr = 100000;
- bits = 0x03;
- } else if (odr > 25000) {
- config->odr = 50000;
- bits = 0x02;
- } else if (odr != 0) {
- config->odr = 25000;
- bits = 0x01;
- } else {
- config->odr = 0;
- bits = 0;
- }
-
- if (odr != 0)
- config->ctrl_reg1 |= 0x80;
-
- config->reg_odr = bits;
- kxtf9_set_dur(mlsl_handle, pdata, config, apply, config->dur);
- MPL_LOGV("ODR: %d, 0x%02x\n", config->odr, (int)config->ctrl_reg1);
- if (apply) {
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_DATA_CTRL_REG,
- config->reg_odr);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1, 0x40);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1,
- config->ctrl_reg1);
- }
- return result;
-}
-
-/**
- * Set the full scale range of the accels
- *
- * @param config pointer to configuration
- * @param fsr requested full scale range
- */
-static int kxtf9_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct kxtf9_config *config, int apply, long fsr)
-{
- int result = ML_SUCCESS;
-
- config->ctrl_reg1 = (config->ctrl_reg1 & 0xE7);
- if (fsr <= 2000) {
- config->fsr = 2000;
- config->ctrl_reg1 |= 0x00;
- } else if (fsr <= 4000) {
- config->fsr = 4000;
- config->ctrl_reg1 |= 0x08;
- } else {
- config->fsr = 8000;
- config->ctrl_reg1 |= 0x10;
- }
-
- MPL_LOGV("FSR: %d\n", config->fsr);
- if (apply) {
- /* Must clear bit 7 before writing new configuration */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1, 0x40);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1,
- config->ctrl_reg1);
- }
- return result;
-}
-
-static int kxtf9_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1, 0x0);
- ERROR_CHECK(result);
- return result;
-}
-
-/* full scale setting - register and mask */
-#define ACCEL_KIONIX_CTRL_REG (0x1b)
-#define ACCEL_KIONIX_CTRL_MASK (0x18)
-
-static int kxtf9_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- unsigned char data;
- struct kxtf9_private_data *private_data = pdata->private_data;
-
- /* Wake up */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1, 0x40);
- ERROR_CHECK(result);
- /* INT_CTRL_REG1: */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_INT_CTRL_REG1,
- private_data->resume.reg_int_cfg1);
- ERROR_CHECK(result);
- /* WUF_THRESH: */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_WUF_THRESH,
- private_data->resume.reg_ths);
- ERROR_CHECK(result);
- /* DATA_CTRL_REG */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_DATA_CTRL_REG,
- private_data->resume.reg_odr);
- ERROR_CHECK(result);
- /* WUF_TIMER */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_WUF_TIMER,
- private_data->resume.reg_dur);
- ERROR_CHECK(result);
-
- /* Normal operation */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1,
- private_data->resume.ctrl_reg1);
- ERROR_CHECK(result);
- MLOSSleep(20);
-
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- KXTF9_INT_REL, 1, &data);
- ERROR_CHECK(result);
-
- return ML_SUCCESS;
-}
-
-static int kxtf9_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
-
- struct kxtf9_private_data *private_data;
- unsigned char i, buf;
- unsigned char tf9_addr[] = { 0x0F, 0x0E, 0x0D, 0x0C };
- unsigned char tmp_addr = 0;
-
- int result = ML_SUCCESS;
-
- private_data = (struct kxtf9_private_data *)
- MLOSMalloc(sizeof(struct kxtf9_private_data));
-
- if (!private_data)
- return ML_ERROR_MEMORY_EXAUSTED;
-
- for (i = 0; i < 4; i++) {
- pr_info("%s: #%d: try to access with 0x%02x slave address",
- __func__, i, tf9_addr[i]);
-
- /* Check Device ID */
- result = MLSLSerialRead(mlsl_handle,
- tf9_addr[i], KXTF9_WHO_AM_I, 1, &buf);
-
- pr_info("%s : WHO_AM_I = 0x%02x", __func__, buf);
- if (result == ML_SUCCESS) {
- tmp_addr = tf9_addr[i];
- pr_info("%s : slave addr = 0x%02x", __func__, tmp_addr);
- break;
- }
- }
-
- /* RAM reset */
- result = MLSLSerialWriteSingle(mlsl_handle, tmp_addr,
- KXTF9_CTRL_REG3, 0xcd);
- ERROR_CHECK(result);
- MLOSSleep(100);
-
- /* Set ODR(Output Data Rate) */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_DATA_CTRL_REG, 0x36);
- ERROR_CHECK(result);
-
- /* Set Main feature as 2g(Bit4/3=00)
- 12-bit(Bit-6=1) and turn on standby mode(Bit-7=0)
- */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- KXTF9_CTRL_REG1, 0x40);
- ERROR_CHECK(result);
-
- pdata->private_data = private_data;
-
- private_data->resume.ctrl_reg1 = 0xC0;
- private_data->suspend.ctrl_reg1 = 0x40;
-
- result = kxtf9_set_dur(mlsl_handle, pdata, &private_data->suspend,
- FALSE, 1000);
- ERROR_CHECK(result);
- result = kxtf9_set_dur(mlsl_handle, pdata, &private_data->resume,
- FALSE, 2540);
- ERROR_CHECK(result);
-
- result = kxtf9_set_odr(mlsl_handle, pdata, &private_data->suspend,
- FALSE, 50000);
- ERROR_CHECK(result);
- result = kxtf9_set_odr(mlsl_handle, pdata, &private_data->resume,
- FALSE, 200000);
-
- result = kxtf9_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- FALSE, 2000);
- ERROR_CHECK(result);
- result = kxtf9_set_fsr(mlsl_handle, pdata, &private_data->resume,
- FALSE, 2000);
- ERROR_CHECK(result);
-
- result = kxtf9_set_ths(mlsl_handle, pdata, &private_data->suspend,
- FALSE, 80);
- ERROR_CHECK(result);
- result = kxtf9_set_ths(mlsl_handle, pdata, &private_data->resume,
- FALSE, 40);
- ERROR_CHECK(result);
-
- result = kxtf9_set_irq(mlsl_handle, pdata, &private_data->suspend,
- FALSE, MPU_SLAVE_IRQ_TYPE_NONE);
- ERROR_CHECK(result);
- result = kxtf9_set_irq(mlsl_handle, pdata, &private_data->resume,
- FALSE, MPU_SLAVE_IRQ_TYPE_NONE);
- ERROR_CHECK(result);
- return result;
-}
-
-static int kxtf9_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- if (pdata->private_data)
- return MLOSFree(pdata->private_data);
- else
- return ML_SUCCESS;
-}
-
-static int kxtf9_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct kxtf9_private_data *private_data = pdata->private_data;
- if (!data->data)
- return ML_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return kxtf9_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return kxtf9_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return kxtf9_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return kxtf9_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_THS:
- return kxtf9_set_ths(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_THS:
- return kxtf9_set_ths(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_DUR:
- return kxtf9_set_dur(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- return kxtf9_set_dur(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- return kxtf9_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply, *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- return kxtf9_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- data->apply, *((long *)data->data));
- default:
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return ML_SUCCESS;
-}
-
-static int kxtf9_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct kxtf9_private_data *private_data = pdata->private_data;
- if (!data->data)
- return ML_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_MOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.ths;
- break;
- case MPU_SLAVE_CONFIG_NMOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.ths;
- break;
- case MPU_SLAVE_CONFIG_MOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.dur;
- break;
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.dur;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->suspend.irq_type;
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long)private_data->resume.irq_type;
- break;
- default:
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return ML_SUCCESS;
-}
-
-static int kxtf9_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- int x, y, z;
-
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, slave->len, data);
-
- if (slave->len == 6) {
- x = (s16) ((data[1] << 4) | (data[0] >> 4)) + cal_data.x;
- y = (s16) ((data[3] << 4) | (data[2] >> 4)) + cal_data.y;
- z = (s16) ((data[5] << 4) | (data[4] >> 4)) + cal_data.z;
-
- data[0] = (x & 0xf) << 4;
- data[1] = (x & 0xff0) >> 4;
- data[2] = (y & 0xf) << 4;
- data[3] = (y & 0xff0) >> 4;
- data[4] = (z & 0xf) << 4;
- data[5] = (z & 0xff0) >> 4;
- }
-
- ERROR_CHECK(result);
- return result;
-}
-
-static struct ext_slave_descr kxtf9_descr = {
- /*.init = */ kxtf9_init,
- /*.exit = */ kxtf9_exit,
- /*.suspend = */ kxtf9_suspend,
- /*.resume = */ kxtf9_resume,
- /*.read = */ kxtf9_read,
- /*.config = */ kxtf9_config,
- /*.get_config = */ kxtf9_get_config,
- /*.name = */ "kxtf9",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ ACCEL_ID_KXTF9,
- /*.reg = */ 0x06,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_LITTLE_ENDIAN,
- /*.range = */ {2, 0},
-};
-
-struct ext_slave_descr *kxtf9_get_slave_descr(void)
-{
- return &kxtf9_descr;
-}
-EXPORT_SYMBOL(kxtf9_get_slave_descr);
diff --git a/drivers/misc/mpu3050/accel/kxud9.c b/drivers/misc/mpu3050/accel/kxud9.c
deleted file mode 100755
index 651219e..0000000
--- a/drivers/misc/mpu3050/accel/kxud9.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file kxud9.c
- * @brief Accelerometer setup and handling methods.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/kernel.h>
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*****************************************
- Accelerometer Initialization Functions
- *****************************************/
-
-static int kxud9_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- /* CTRL_REGB: low-power standby mode */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x0d, 0x0);
- ERROR_CHECK(result);
- return result;
-}
-
-/* full scale setting - register and mask */
-#define ACCEL_KIONIX_CTRL_REG (0x0C)
-#define ACCEL_KIONIX_CTRL_MASK (0x3)
-
-static int kxud9_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- unsigned char reg;
-
- /* Full Scale */
- reg = 0x0;
- reg &= ~ACCEL_KIONIX_CTRL_MASK;
- reg |= 0x00;
- if (slave->range.mantissa == 4) { /* 4g scale = 4.9951 */
- reg |= 0x2;
- slave->range.fraction = 9951;
- } else if (slave->range.mantissa == 7) { /* 6g scale = 7.5018 */
- reg |= 0x1;
- slave->range.fraction = 5018;
- } else if (slave->range.mantissa == 9) { /* 8g scale = 9.9902 */
- reg |= 0x0;
- slave->range.fraction = 9902;
- } else {
- slave->range.mantissa = 2; /* 2g scale = 2.5006 */
- slave->range.fraction = 5006;
- reg |= 0x3;
- }
- reg |= 0xC0; /* 100Hz LPF */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_KIONIX_CTRL_REG, reg);
- ERROR_CHECK(result);
- /* normal operation */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x0d, 0x40);
- ERROR_CHECK(result);
-
- return ML_SUCCESS;
-}
-
-static int kxud9_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, slave->len, data);
- return result;
-}
-
-static struct ext_slave_descr kxud9_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ kxud9_suspend,
- /*.resume = */ kxud9_resume,
- /*.read = */ kxud9_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "kxud9",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ /* ACCEL_ID_KXUD9, */ ACCEL_ID_KXSD9,
- /*.reg = */ 0x00,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_BIG_ENDIAN,
- /*.range = */ {2, 5006},
-};
-
-struct ext_slave_descr *kxud9_get_slave_descr(void)
-{
- return &kxud9_descr;
-}
-EXPORT_SYMBOL(kxud9_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/accel/lis331.c b/drivers/misc/mpu3050/accel/lis331.c
deleted file mode 100755
index 53c599b..0000000
--- a/drivers/misc/mpu3050/accel/lis331.c
+++ /dev/null
@@ -1,617 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file lis331.c
- * @brief Accelerometer setup and handling methods for ST LIS331
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#undef MPL_LOG_NDEBUG
-#define MPL_LOG_NDEBUG 1
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* full scale setting - register & mask */
-#define LIS331_CTRL_REG1 (0x20)
-#define LIS331_CTRL_REG2 (0x21)
-#define LIS331_CTRL_REG3 (0x22)
-#define LIS331_CTRL_REG4 (0x23)
-#define LIS331_CTRL_REG5 (0x24)
-#define LIS331_HP_FILTER_RESET (0x25)
-#define LIS331_REFERENCE (0x26)
-#define LIS331_STATUS_REG (0x27)
-#define LIS331_OUT_X_L (0x28)
-#define LIS331_OUT_X_H (0x29)
-#define LIS331_OUT_Y_L (0x2a)
-#define LIS331_OUT_Y_H (0x2b)
-#define LIS331_OUT_Z_L (0x2b)
-#define LIS331_OUT_Z_H (0x2d)
-
-#define LIS331_INT1_CFG (0x30)
-#define LIS331_INT1_SRC (0x31)
-#define LIS331_INT1_THS (0x32)
-#define LIS331_INT1_DURATION (0x33)
-
-#define LIS331_INT2_CFG (0x34)
-#define LIS331_INT2_SRC (0x35)
-#define LIS331_INT2_THS (0x36)
-#define LIS331_INT2_DURATION (0x37)
-
-#define LIS331_CTRL_MASK (0x30)
-#define LIS331_SLEEP_MASK (0x20)
-
-#define LIS331_MAX_DUR (0x7F)
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-struct lis331dlh_config {
- unsigned int odr;
- unsigned int fsr; /* full scale range mg */
- unsigned int ths; /* Motion no-motion thseshold mg */
- unsigned int dur; /* Motion no-motion duration ms */
- unsigned char reg_ths;
- unsigned char reg_dur;
- unsigned char ctrl_reg1;
- unsigned char irq_type;
- unsigned char mot_int1_cfg;
-};
-
-struct lis331dlh_private_data {
- struct lis331dlh_config suspend;
- struct lis331dlh_config resume;
-};
-
-
-/*****************************************
- Accelerometer Initialization Functions
-*****************************************/
-
-static int lis331dlh_set_ths(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis331dlh_config *config,
- int apply,
- long ths)
-{
- int result = ML_SUCCESS;
- if ((unsigned int) ths >= config->fsr)
- ths = (long) config->fsr - 1;
-
- if (ths < 0)
- ths = 0;
-
- config->ths = ths;
- config->reg_ths = (unsigned char)(long)((ths * 128L) / (config->fsr));
- MPL_LOGV("THS: %d, 0x%02x\n", config->ths, (int)config->reg_ths);
- if (apply)
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_INT1_THS,
- config->reg_ths);
- return result;
-}
-
-static int lis331dlh_set_dur(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis331dlh_config *config,
- int apply,
- long dur)
-{
- int result = ML_SUCCESS;
- long reg_dur = (dur * config->odr) / 1000000L;
- config->dur = dur;
-
- if (reg_dur > LIS331_MAX_DUR)
- reg_dur = LIS331_MAX_DUR;
-
- config->reg_dur = (unsigned char) reg_dur;
- MPL_LOGV("DUR: %d, 0x%02x\n", config->dur, (int)config->reg_dur);
- if (apply)
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_INT1_DURATION,
- (unsigned char)reg_dur);
- return result;
-}
-
-/**
- * Sets the IRQ to fire when one of the IRQ events occur. Threshold and
- * duration will not be used uless the type is MOT or NMOT.
- *
- * @param config configuration to apply to, suspend or resume
- * @param irq_type The type of IRQ. Valid values are
- * - MPU_SLAVE_IRQ_TYPE_NONE
- * - MPU_SLAVE_IRQ_TYPE_MOTION
- * - MPU_SLAVE_IRQ_TYPE_DATA_READY
- */
-static int lis331dlh_set_irq(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis331dlh_config *config,
- int apply,
- long irq_type)
-{
- int result = ML_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
-
- config->irq_type = (unsigned char)irq_type;
- if (irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x02;
- reg2 = 0x00;
- } else if (irq_type == MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x00;
- reg2 = config->mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
-
- if (apply) {
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_CTRL_REG3, reg1);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_INT1_CFG, reg2);
- }
-
- return result;
-}
-
-/**
- * Set the Output data rate for the particular configuration
- *
- * @param config Config to modify with new ODR
- * @param odr Output data rate in units of 1/1000Hz
- */
-static int lis331dlh_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis331dlh_config *config,
- int apply,
- long odr)
-{
- unsigned char bits;
- int result = ML_SUCCESS;
-
- if (odr > 400000) {
- config->odr = 1000000;
- bits = 0x38;
- } else if (odr > 100000) {
- config->odr = 400000;
- bits = 0x30;
- } else if (odr > 50000) {
- config->odr = 100000;
- bits = 0x28;
- } else if (odr > 10000) {
- config->odr = 50000;
- bits = 0x20;
- } else if (odr > 5000) {
- config->odr = 10000;
- bits = 0xC0;
- } else if (odr > 2000) {
- config->odr = 5000;
- bits = 0xB0;
- } else if (odr > 1000) {
- config->odr = 2000;
- bits = 0x80;
- } else if (odr > 500) {
- config->odr = 1000;
- bits = 0x60;
- } else if (odr > 0) {
- config->odr = 500;
- bits = 0x40;
- } else {
- config->odr = 0;
- bits = 0;
- }
-
- config->ctrl_reg1 = bits | (config->ctrl_reg1 & 0x7);
- lis331dlh_set_dur(mlsl_handle, pdata,
- config, apply, config->dur);
- MPL_LOGV("ODR: %d, 0x%02x\n", config->odr, (int)config->ctrl_reg1);
- if (apply)
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_CTRL_REG1,
- config->ctrl_reg1);
- return result;
-}
-
-/**
- * Set the full scale range of the accels
- *
- * @param config pointer to configuration
- * @param fsr requested full scale range
- */
-static int lis331dlh_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis331dlh_config *config,
- int apply,
- long fsr)
-{
- unsigned char reg1 = 0x40;
- int result = ML_SUCCESS;
-
- if (fsr <= 2048) {
- config->fsr = 2048;
- } else if (fsr <= 4096) {
- reg1 |= 0x30;
- config->fsr = 4096;
- } else {
- reg1 |= 0x10;
- config->fsr = 8192;
- }
-
- lis331dlh_set_ths(mlsl_handle, pdata,
- config, apply, config->ths);
- MPL_LOGV("FSR: %d\n", config->fsr);
- if (apply)
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_CTRL_REG4, reg1);
-
- return result;
-}
-
-static int lis331dlh_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
- struct lis331dlh_private_data *private_data = pdata->private_data;
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_CTRL_REG1,
- private_data->suspend.ctrl_reg1);
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_CTRL_REG2, 0x0f);
- reg1 = 0x40;
- if (private_data->suspend.fsr == 8192)
- reg1 |= 0x30;
- else if (private_data->suspend.fsr == 4096)
- reg1 |= 0x10;
- /* else bits [4..5] are already zero */
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_CTRL_REG4, reg1);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_INT1_THS,
- private_data->suspend.reg_ths);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_INT1_DURATION,
- private_data->suspend.reg_dur);
-
- if (private_data->suspend.irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x02;
- reg2 = 0x00;
- } else if (private_data->suspend.irq_type ==
- MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x00;
- reg2 = private_data->suspend.mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_CTRL_REG3, reg1);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_INT1_CFG, reg2);
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- LIS331_HP_FILTER_RESET, 1, &reg1);
- return result;
-}
-
-static int lis331dlh_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
- struct lis331dlh_private_data *private_data = pdata->private_data;
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_CTRL_REG1,
- private_data->resume.ctrl_reg1);
- ERROR_CHECK(result);
- MLOSSleep(6);
-
- /* Full Scale */
- reg1 = 0x40;
- if (private_data->resume.fsr == 8192)
- reg1 |= 0x30;
- else if (private_data->resume.fsr == 4096)
- reg1 |= 0x10;
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_CTRL_REG4, reg1);
- ERROR_CHECK(result);
-
- /* Configure high pass filter */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_CTRL_REG2, 0x0F);
- ERROR_CHECK(result);
-
- if (private_data->resume.irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x02;
- reg2 = 0x00;
- } else if (private_data->resume.irq_type ==
- MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x00;
- reg2 = private_data->resume.mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_CTRL_REG3, reg1);
- ERROR_CHECK(result);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_INT1_THS,
- private_data->resume.reg_ths);
- ERROR_CHECK(result);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_INT1_DURATION,
- private_data->resume.reg_dur);
- ERROR_CHECK(result);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS331_INT1_CFG, reg2);
- ERROR_CHECK(result);
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- LIS331_HP_FILTER_RESET, 1, &reg1);
- ERROR_CHECK(result);
- return result;
-}
-
-static int lis331dlh_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result = ML_SUCCESS;
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- LIS331_STATUS_REG, 1, data);
- if (data[0] & 0x0F) {
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, slave->len, data);
- return result;
- } else
- return ML_ERROR_ACCEL_DATA_NOT_READY;
-}
-
-static int lis331dlh_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- struct lis331dlh_private_data *private_data;
- private_data = (struct lis331dlh_private_data *)
- MLOSMalloc(sizeof(struct lis331dlh_private_data));
-
- if (!private_data)
- return ML_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- private_data->resume.ctrl_reg1 = 0x37;
- private_data->suspend.ctrl_reg1 = 0x47;
- private_data->resume.mot_int1_cfg = 0x95;
- private_data->suspend.mot_int1_cfg = 0x2a;
-
- lis331dlh_set_odr(mlsl_handle, pdata, &private_data->suspend,
- FALSE, 0);
- lis331dlh_set_odr(mlsl_handle, pdata, &private_data->resume,
- FALSE, 200000);
- lis331dlh_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- FALSE, 2048);
- lis331dlh_set_fsr(mlsl_handle, pdata, &private_data->resume,
- FALSE, 2048);
- lis331dlh_set_ths(mlsl_handle, pdata, &private_data->suspend,
- FALSE, 80);
- lis331dlh_set_ths(mlsl_handle, pdata, &private_data->resume,
- FALSE, 40);
- lis331dlh_set_dur(mlsl_handle, pdata, &private_data->suspend,
- FALSE, 1000);
- lis331dlh_set_dur(mlsl_handle, pdata, &private_data->resume,
- FALSE, 2540);
- lis331dlh_set_irq(mlsl_handle, pdata, &private_data->suspend,
- FALSE,
- MPU_SLAVE_IRQ_TYPE_NONE);
- lis331dlh_set_irq(mlsl_handle, pdata, &private_data->resume,
- FALSE,
- MPU_SLAVE_IRQ_TYPE_NONE);
- return ML_SUCCESS;
-}
-
-static int lis331dlh_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- if (pdata->private_data)
- return MLOSFree(pdata->private_data);
- else
- return ML_SUCCESS;
-}
-
-static int lis331dlh_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct lis331dlh_private_data *private_data = pdata->private_data;
- if (!data->data)
- return ML_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return lis331dlh_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return lis331dlh_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return lis331dlh_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return lis331dlh_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_THS:
- return lis331dlh_set_ths(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_THS:
- return lis331dlh_set_ths(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_DUR:
- return lis331dlh_set_dur(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- return lis331dlh_set_dur(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- return lis331dlh_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- return lis331dlh_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- default:
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return ML_SUCCESS;
-}
-
-static int lis331dlh_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct lis331dlh_private_data *private_data = pdata->private_data;
- if (!data->data)
- return ML_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_MOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.ths;
- break;
- case MPU_SLAVE_CONFIG_NMOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.ths;
- break;
- case MPU_SLAVE_CONFIG_MOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.dur;
- break;
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.dur;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.irq_type;
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.irq_type;
- break;
- default:
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return ML_SUCCESS;
-}
-
-static struct ext_slave_descr lis331dlh_descr = {
- /*.init = */ lis331dlh_init,
- /*.exit = */ lis331dlh_exit,
- /*.suspend = */ lis331dlh_suspend,
- /*.resume = */ lis331dlh_resume,
- /*.read = */ lis331dlh_read,
- /*.config = */ lis331dlh_config,
- /*.get_config = */ lis331dlh_get_config,
- /*.name = */ "lis331dlh",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ ACCEL_ID_LIS331,
- /*.reg = */ (0x28 | 0x80), /* 0x80 for burst reads */
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_BIG_ENDIAN,
- /*.range = */ {2, 480},
-};
-
-struct ext_slave_descr *lis331dlh_get_slave_descr(void)
-{
- return &lis331dlh_descr;
-}
-EXPORT_SYMBOL(lis331dlh_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/accel/lis3dh.c b/drivers/misc/mpu3050/accel/lis3dh.c
deleted file mode 100755
index 594cd42..0000000
--- a/drivers/misc/mpu3050/accel/lis3dh.c
+++ /dev/null
@@ -1,625 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file lis3dh.c
- * @brief Accelerometer setup and handling methods for ST LIS3DH
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#undef MPL_LOG_NDEBUG
-#define MPL_LOG_NDEBUG 0
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* full scale setting - register & mask */
-#define LIS3DH_CTRL_REG1 (0x20)
-#define LIS3DH_CTRL_REG2 (0x21)
-#define LIS3DH_CTRL_REG3 (0x22)
-#define LIS3DH_CTRL_REG4 (0x23)
-#define LIS3DH_CTRL_REG5 (0x24)
-#define LIS3DH_CTRL_REG6 (0x25)
-#define LIS3DH_REFERENCE (0x26)
-#define LIS3DH_STATUS_REG (0x27)
-#define LIS3DH_OUT_X_L (0x28)
-#define LIS3DH_OUT_X_H (0x29)
-#define LIS3DH_OUT_Y_L (0x2a)
-#define LIS3DH_OUT_Y_H (0x2b)
-#define LIS3DH_OUT_Z_L (0x2b)
-#define LIS3DH_OUT_Z_H (0x2d)
-
-#define LIS3DH_INT1_CFG (0x30)
-#define LIS3DH_INT1_SRC (0x31)
-#define LIS3DH_INT1_THS (0x32)
-#define LIS3DH_INT1_DURATION (0x33)
-
-#define LIS3DH_MAX_DUR (0x7F)
-
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-struct lis3dh_config {
- unsigned int odr;
- unsigned int fsr; /* full scale range mg */
- unsigned int ths; /* Motion no-motion thseshold mg */
- unsigned int dur; /* Motion no-motion duration ms */
- unsigned char reg_ths;
- unsigned char reg_dur;
- unsigned char ctrl_reg1;
- unsigned char irq_type;
- unsigned char mot_int1_cfg;
-};
-
-struct lis3dh_private_data {
- struct lis3dh_config suspend;
- struct lis3dh_config resume;
-};
-
-
-/*****************************************
- Accelerometer Initialization Functions
-*****************************************/
-
-static int lis3dh_set_ths(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis3dh_config *config,
- int apply,
- long ths)
-{
- int result = ML_SUCCESS;
- if ((unsigned int) ths > 1000 * config->fsr)
- ths = (long) 1000 * config->fsr;
-
- if (ths < 0)
- ths = 0;
-
- config->ths = ths;
- config->reg_ths = (unsigned char)(long)((ths * 128L) / (config->fsr));
- MPL_LOGV("THS: %d, 0x%02x\n", config->ths, (int)config->reg_ths);
- if (apply)
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_INT1_THS,
- config->reg_ths);
- return result;
-}
-
-static int lis3dh_set_dur(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis3dh_config *config,
- int apply,
- long dur)
-{
- int result = ML_SUCCESS;
- long reg_dur = (dur * config->odr) / 1000000L;
- config->dur = dur;
-
- if (reg_dur > LIS3DH_MAX_DUR)
- reg_dur = LIS3DH_MAX_DUR;
-
- config->reg_dur = (unsigned char) reg_dur;
- MPL_LOGV("DUR: %d, 0x%02x\n", config->dur, (int)config->reg_dur);
- if (apply)
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_INT1_DURATION,
- (unsigned char)reg_dur);
- return result;
-}
-
-/**
- * Sets the IRQ to fire when one of the IRQ events occur. Threshold and
- * duration will not be used uless the type is MOT or NMOT.
- *
- * @param config configuration to apply to, suspend or resume
- * @param irq_type The type of IRQ. Valid values are
- * - MPU_SLAVE_IRQ_TYPE_NONE
- * - MPU_SLAVE_IRQ_TYPE_MOTION
- * - MPU_SLAVE_IRQ_TYPE_DATA_READY
- */
-static int lis3dh_set_irq(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis3dh_config *config,
- int apply,
- long irq_type)
-{
- int result = ML_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
-
- config->irq_type = (unsigned char)irq_type;
- if (irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x10;
- reg2 = 0x00;
- } else if (irq_type == MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x40;
- reg2 = config->mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
-
- if (apply) {
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG3, reg1);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_INT1_CFG, reg2);
- }
-
- return result;
-}
-
-/**
- * Set the Output data rate for the particular configuration
- *
- * @param config Config to modify with new ODR
- * @param odr Output data rate in units of 1/1000Hz
- */
-static int lis3dh_set_odr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis3dh_config *config,
- int apply,
- long odr)
-{
- unsigned char bits;
- int result = ML_SUCCESS;
-
- if (odr > 400000) {
- config->odr = 1250000;
- bits = 0x90;
- } else if (odr > 200000) {
- config->odr = 400000;
- bits = 0x70;
- } else if (odr > 100000) {
- config->odr = 200000;
- bits = 0x60;
- } else if (odr > 50000) {
- config->odr = 100000;
- bits = 0x50;
- } else if (odr > 25000) {
- config->odr = 50000;
- bits = 0x40;
- } else if (odr > 10000) {
- config->odr = 25000;
- bits = 0x30;
- } else if (odr > 1000) {
- config->odr = 10000;
- bits = 0x20;
- } else if (odr > 500) {
- config->odr = 1000;
- bits = 0x10;
- } else {
- config->odr = 0;
- bits = 0;
- }
-
- config->ctrl_reg1 = bits | (config->ctrl_reg1 & 0xf);
- lis3dh_set_dur(mlsl_handle, pdata,
- config, apply, config->dur);
- MPL_LOGV("ODR: %d, 0x%02x\n", config->odr, (int)config->ctrl_reg1);
- if (apply)
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG1,
- config->ctrl_reg1);
- return result;
-}
-
-/**
- * Set the full scale range of the accels
- *
- * @param config pointer to configuration
- * @param fsr requested full scale range
- */
-static int lis3dh_set_fsr(void *mlsl_handle,
- struct ext_slave_platform_data *pdata,
- struct lis3dh_config *config,
- int apply,
- long fsr)
-{
- int result = ML_SUCCESS;
- unsigned char reg1 = 0x48;
-
- if (fsr <= 2048) {
- config->fsr = 2048;
- } else if (fsr <= 4096) {
- reg1 |= 0x10;
- config->fsr = 4096;
- } else if (fsr <= 8192) {
- reg1 |= 0x20;
- config->fsr = 8192;
- } else {
- reg1 |= 0x30;
- config->fsr = 16348;
- }
-
- lis3dh_set_ths(mlsl_handle, pdata,
- config, apply, config->ths);
- MPL_LOGV("FSR: %d\n", config->fsr);
- if (apply)
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG4, reg1);
-
- return result;
-}
-
-static int lis3dh_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- unsigned char reg1;
- unsigned char reg2;
- struct lis3dh_private_data *private_data = pdata->private_data;
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG1,
- private_data->suspend.ctrl_reg1);
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG2, 0x31);
- reg1 = 0x48;
- if (private_data->suspend.fsr == 16384)
- reg1 |= 0x30;
- else if (private_data->suspend.fsr == 8192)
- reg1 |= 0x20;
- else if (private_data->suspend.fsr == 4096)
- reg1 |= 0x10;
- else if (private_data->suspend.fsr == 2048)
- reg1 |= 0x00;
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG4, reg1);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_INT1_THS,
- private_data->suspend.reg_ths);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_INT1_DURATION,
- private_data->suspend.reg_dur);
-
- if (private_data->suspend.irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x10;
- reg2 = 0x00;
- } else if (private_data->suspend.irq_type ==
- MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x40;
- reg2 = private_data->suspend.mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG3, reg1);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_INT1_CFG, reg2);
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG6, 1, &reg1);
-
- return result;
-
-}
-
-static int lis3dh_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- tMLError result;
- unsigned char reg1;
- unsigned char reg2;
- struct lis3dh_private_data *private_data = pdata->private_data;
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG1,
- private_data->resume.ctrl_reg1);
- ERROR_CHECK(result);
- MLOSSleep(6);
-
- /* Full Scale */
- reg1 = 0x48;
- if (private_data->suspend.fsr == 16384)
- reg1 |= 0x30;
- else if (private_data->suspend.fsr == 8192)
- reg1 |= 0x20;
- else if (private_data->suspend.fsr == 4096)
- reg1 |= 0x10;
- else if (private_data->suspend.fsr == 2048)
- reg1 |= 0x00;
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG4, reg1);
- ERROR_CHECK(result);
-
- /* Configure high pass filter */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG2, 0x31);
- ERROR_CHECK(result);
-
- if (private_data->resume.irq_type == MPU_SLAVE_IRQ_TYPE_DATA_READY) {
- reg1 = 0x10;
- reg2 = 0x00;
- } else if (private_data->resume.irq_type ==
- MPU_SLAVE_IRQ_TYPE_MOTION) {
- reg1 = 0x40;
- reg2 = private_data->resume.mot_int1_cfg;
- } else {
- reg1 = 0x00;
- reg2 = 0x00;
- }
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG3, reg1);
- ERROR_CHECK(result);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_INT1_THS,
- private_data->resume.reg_ths);
- ERROR_CHECK(result);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_INT1_DURATION,
- private_data->resume.reg_dur);
- ERROR_CHECK(result);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_INT1_CFG, reg2);
- ERROR_CHECK(result);
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG6, 1, &reg1);
- ERROR_CHECK(result);
- return result;
-}
-
-static int lis3dh_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result = ML_SUCCESS;
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- LIS3DH_STATUS_REG, 1, data);
- if (data[0] & 0x0F) {
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, slave->len, data);
- return result;
- } else
- return ML_ERROR_ACCEL_DATA_NOT_READY;
-}
-
-static int lis3dh_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- tMLError result;
-
- struct lis3dh_private_data *private_data;
- private_data = (struct lis3dh_private_data *)
- MLOSMalloc(sizeof(struct lis3dh_private_data));
-
- if (!private_data)
- return ML_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- private_data->resume.ctrl_reg1 = 0x67;
- private_data->suspend.ctrl_reg1 = 0x18;
- private_data->resume.mot_int1_cfg = 0x95;
- private_data->suspend.mot_int1_cfg = 0x2a;
-
- lis3dh_set_odr(mlsl_handle, pdata, &private_data->suspend,
- FALSE, 0);
- lis3dh_set_odr(mlsl_handle, pdata, &private_data->resume,
- FALSE, 200000);
- lis3dh_set_fsr(mlsl_handle, pdata, &private_data->suspend,
- FALSE, 2048);
- lis3dh_set_fsr(mlsl_handle, pdata, &private_data->resume,
- FALSE, 2048);
- lis3dh_set_ths(mlsl_handle, pdata, &private_data->suspend,
- FALSE, 80);
- lis3dh_set_ths(mlsl_handle, pdata, &private_data->resume,
- FALSE, 40);
- lis3dh_set_dur(mlsl_handle, pdata, &private_data->suspend,
- FALSE, 1000);
- lis3dh_set_dur(mlsl_handle, pdata, &private_data->resume,
- FALSE, 2540);
- lis3dh_set_irq(mlsl_handle, pdata, &private_data->suspend,
- FALSE,
- MPU_SLAVE_IRQ_TYPE_NONE);
- lis3dh_set_irq(mlsl_handle, pdata, &private_data->resume,
- FALSE,
- MPU_SLAVE_IRQ_TYPE_NONE);
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LIS3DH_CTRL_REG1, 0x07);
- MLOSSleep(6);
-
- return ML_SUCCESS;
-}
-
-static int lis3dh_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- if (pdata->private_data)
- return MLOSFree(pdata->private_data);
- else
- return ML_SUCCESS;
-}
-
-static int lis3dh_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct lis3dh_private_data *private_data = pdata->private_data;
- if (!data->data)
- return ML_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- return lis3dh_set_odr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- return lis3dh_set_odr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- return lis3dh_set_fsr(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- return lis3dh_set_fsr(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_THS:
- return lis3dh_set_ths(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_THS:
- return lis3dh_set_ths(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_MOT_DUR:
- return lis3dh_set_dur(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- return lis3dh_set_dur(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- return lis3dh_set_irq(mlsl_handle, pdata,
- &private_data->suspend,
- data->apply,
- *((long *)data->data));
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- return lis3dh_set_irq(mlsl_handle, pdata,
- &private_data->resume,
- data->apply,
- *((long *)data->data));
- default:
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
- return ML_SUCCESS;
-}
-
-static int lis3dh_get_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct lis3dh_private_data *private_data = pdata->private_data;
- if (!data->data)
- return ML_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.odr;
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.odr;
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.fsr;
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.fsr;
- break;
- case MPU_SLAVE_CONFIG_MOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.ths;
- break;
- case MPU_SLAVE_CONFIG_NMOT_THS:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.ths;
- break;
- case MPU_SLAVE_CONFIG_MOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.dur;
- break;
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.dur;
- break;
- case MPU_SLAVE_CONFIG_IRQ_SUSPEND:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->suspend.irq_type;
- break;
- case MPU_SLAVE_CONFIG_IRQ_RESUME:
- (*(unsigned long *)data->data) =
- (unsigned long) private_data->resume.irq_type;
- break;
- default:
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return ML_SUCCESS;
-}
-
-static struct ext_slave_descr lis3dh_descr = {
- /*.init = */ lis3dh_init,
- /*.exit = */ lis3dh_exit,
- /*.suspend = */ lis3dh_suspend,
- /*.resume = */ lis3dh_resume,
- /*.read = */ lis3dh_read,
- /*.config = */ lis3dh_config,
- /*.get_config = */ lis3dh_get_config,
- /*.name = */ "lis3dh",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ ACCEL_ID_LIS3DH,
- /*.reg = */ 0x28 | 0x80, /* 0x80 for burst reads */
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_BIG_ENDIAN,
- /*.range = */ {2, 480},
-};
-
-struct ext_slave_descr *lis3dh_get_slave_descr(void)
-{
- return &lis3dh_descr;
-}
-EXPORT_SYMBOL(lis3dh_get_slave_descr);
-
-/*
- * @}
-*/
diff --git a/drivers/misc/mpu3050/accel/lsm303a.c b/drivers/misc/mpu3050/accel/lsm303a.c
deleted file mode 100755
index b849496..0000000
--- a/drivers/misc/mpu3050/accel/lsm303a.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file lsm303a.c
- * @brief Accelerometer setup and handling methods for ST LSM303
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-#define ACCEL_ST_SLEEP_REG (0x20)
-#define ACCEL_ST_SLEEP_MASK (0x20)
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*****************************************
- Accelerometer Initialization Functions
-*****************************************/
-
-int lsm303dlha_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char reg;
-
- result =
- MLSLSerialRead(mlsl_handle, pdata->address, ACCEL_ST_SLEEP_REG,
- 1, &reg);
- ERROR_CHECK(result);
- reg &= ~(0x27);
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_ST_SLEEP_REG, reg);
- ERROR_CHECK(result);
- return result;
-}
-
-/* full scale setting - register & mask */
-#define ACCEL_ST_CTRL_REG (0x23)
-#define ACCEL_ST_CTRL_MASK (0x30)
-
-int lsm303dlha_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- unsigned char reg;
-
- result =
- MLSLSerialRead(mlsl_handle, pdata->address, ACCEL_ST_SLEEP_REG,
- 1, &reg);
- ERROR_CHECK(result);
- reg |= 0x27;
- /*wake up if sleeping */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_ST_SLEEP_REG, reg);
- ERROR_CHECK(result);
-
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x20, 0x37);
- ERROR_CHECK(result);
- MLOSSleep(500);
-
- reg = 0x40;
-
- /* Full Scale */
- reg &= ~ACCEL_ST_CTRL_MASK;
- if (slave->range.mantissa == 4) {
- slave->range.fraction = 960;
- reg |= 0x10;
- } else if (slave->range.mantissa == 8) {
- slave->range.fraction = 1920;
- reg |= 0x30;
- } else {
- slave->range.mantissa = 2;
- slave->range.fraction = 480;
- reg |= 0x00;
- }
-
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x23, reg);
- ERROR_CHECK(result);
-
- /* Configure high pass filter */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x21, 0x0F);
- ERROR_CHECK(result);
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x32, 0x00);
- ERROR_CHECK(result);
- /* Configure INT1_DURATION */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x33, 0x7F);
- ERROR_CHECK(result);
- /* Configure INT1_CFG */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x30, 0x95);
- ERROR_CHECK(result);
- MLOSSleep(50);
- return result;
-}
-
-int lsm303dlha_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, slave->len, data);
- return result;
-}
-
-struct ext_slave_descr lsm303dlha_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ lsm303dlha_suspend,
- /*.resume = */ lsm303dlha_resume,
- /*.read = */ lsm303dlha_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "lsm303dlha",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ ACCEL_ID_LSM303,
- /*.reg = */ (0x28 | 0x80), /* 0x80 for burst reads */
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_BIG_ENDIAN,
- /*.range = */ {2, 480},
-};
-
-struct ext_slave_descr *lsm303dlha_get_slave_descr(void)
-{
- return &lsm303dlha_descr;
-}
-EXPORT_SYMBOL(lsm303dlha_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/accel/mantis.c b/drivers/misc/mpu3050/accel/mantis.c
deleted file mode 100755
index 1cb9847..0000000
--- a/drivers/misc/mpu3050/accel/mantis.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file lis331.c
- * @brief Accelerometer setup and handling methods for Invensense MANTIS
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-struct mantis_config {
- unsigned int odr; /* output data rate 1/1000 Hz*/
- unsigned int fsr; /* full scale range mg */
- unsigned int ths; /* Motion no-motion thseshold mg */
- unsigned int dur; /* Motion no-motion duration ms */
-};
-
-struct mantis_private_data {
- struct mantis_config suspend;
- struct mantis_config resume;
-};
-
-
-/*****************************************
- *Accelerometer Initialization Functions
- *****************************************/
-/**
- * Record the odr for use in computing duration values.
- *
- * @param config Config to set, suspend or resume structure
- * @param odr output data rate in 1/1000 hz
- */
-void mantis_set_odr(struct mantis_config *config,
- long odr)
-{
- config->odr = odr;
-}
-
-void mantis_set_ths(struct mantis_config *config,
- long ths)
-{
- if (ths < 0)
- ths = 0;
-
- config->ths = ths;
- MPL_LOGV("THS: %d\n", config->ths);
-}
-
-void mantis_set_dur(struct mantis_config *config,
- long dur)
-{
- if (dur < 0)
- dur = 0;
-
- config->dur = dur;
- MPL_LOGV("DUR: %d\n", config->dur);
-}
-
-static void mantis_set_fsr(
- struct mantis_config *config,
- long fsr)
-{
- if (fsr <= 2000)
- config->fsr = 2000;
- else if (fsr <= 4000)
- config->fsr = 4000;
- else
- config->fsr = 8000;
-
- MPL_LOGV("FSR: %d\n", config->fsr);
-}
-
-static int mantis_init(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- struct mantis_private_data *private_data;
- private_data = (struct mantis_private_data *)
- MLOSMalloc(sizeof(struct mantis_private_data));
-
- if (!private_data)
- return ML_ERROR_MEMORY_EXAUSTED;
-
- pdata->private_data = private_data;
-
- mantis_set_odr(&private_data->suspend, 0);
- mantis_set_odr(&private_data->resume, 200000);
- mantis_set_fsr(&private_data->suspend, 2000);
- mantis_set_fsr(&private_data->resume, 2000);
- mantis_set_ths(&private_data->suspend, 80);
- mantis_set_ths(&private_data->resume, 40);
- mantis_set_dur(&private_data->suspend, 1000);
- mantis_set_dur(&private_data->resume, 2540);
- return ML_SUCCESS;
-}
-
-static int mantis_exit(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- if (pdata->private_data)
- return MLOSFree(pdata->private_data);
- else
- return ML_SUCCESS;
-}
-
-int mantis_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- unsigned char reg;
- int result;
-
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_2, 1, &reg);
- ERROR_CHECK(result);
- reg |= (BIT_STBY_XA | BIT_STBY_YA | BIT_STBY_ZA);
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_2, reg);
- ERROR_CHECK(result);
-
- return ML_SUCCESS;
-}
-
-int mantis_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- unsigned char reg;
- struct mantis_private_data *private_data;
-
- private_data = (struct mantis_private_data *) pdata->private_data;
-
- MLSLSerialRead(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_2, 1, &reg);
-
- reg &= ~(BIT_STBY_XA | BIT_STBY_YA | BIT_STBY_ZA);
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- MPUREG_PWR_MGMT_2, reg);
- ERROR_CHECK(result);
-
- if (slave->range.mantissa == 2)
- reg = 0;
- else if (slave->range.mantissa == 4)
- reg = 1 << 3;
- else if (slave->range.mantissa == 8)
- reg = 2 << 3;
- else if (slave->range.mantissa == 16)
- reg = 3 << 3;
- else
- return ML_ERROR;
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- MPUREG_ACCEL_CONFIG, reg);
- ERROR_CHECK(result);
-
- reg = (unsigned char) private_data->suspend.ths / ACCEL_MOT_THR_LSB;
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- MPUREG_ACCEL_MOT_THR, reg);
- ERROR_CHECK(result);
-
- reg = (unsigned char)
- ACCEL_ZRMOT_THR_LSB_CONVERSION(private_data->resume.ths);
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- MPUREG_ACCEL_ZRMOT_THR, reg);
- ERROR_CHECK(result);
-
- reg = (unsigned char) private_data->suspend.ths / ACCEL_MOT_DUR_LSB;
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- MPUREG_ACCEL_MOT_DUR, reg);
- ERROR_CHECK(result);
-
- reg = (unsigned char) private_data->resume.ths / ACCEL_ZRMOT_DUR_LSB;
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- MPUREG_ACCEL_ZRMOT_DUR, reg);
- ERROR_CHECK(result);
- return result;
-}
-
-int mantis_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata, unsigned char *data)
-{
- int result;
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, slave->len, data);
- return result;
-}
-
-static int mantis_config(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- struct ext_slave_config *data)
-{
- struct mantis_private_data *private_data = pdata->private_data;
- if (!data->data)
- return ML_ERROR_INVALID_PARAMETER;
-
- switch (data->key) {
- case MPU_SLAVE_CONFIG_ODR_SUSPEND:
- mantis_set_odr(&private_data->suspend,
- *((long *)data->data));
- break;
- case MPU_SLAVE_CONFIG_ODR_RESUME:
- mantis_set_odr(&private_data->resume,
- *((long *)data->data));
- break;
- case MPU_SLAVE_CONFIG_FSR_SUSPEND:
- mantis_set_fsr(&private_data->suspend,
- *((long *)data->data));
- break;
- case MPU_SLAVE_CONFIG_FSR_RESUME:
- mantis_set_fsr(&private_data->resume,
- *((long *)data->data));
- break;
- case MPU_SLAVE_CONFIG_MOT_THS:
- mantis_set_ths(&private_data->suspend,
- (*((long *)data->data)));
- break;
- case MPU_SLAVE_CONFIG_NMOT_THS:
- mantis_set_ths(&private_data->resume,
- (*((long *)data->data)));
- break;
- case MPU_SLAVE_CONFIG_MOT_DUR:
- mantis_set_dur(&private_data->suspend,
- (*((long *)data->data)));
- break;
- case MPU_SLAVE_CONFIG_NMOT_DUR:
- mantis_set_dur(&private_data->resume,
- (*((long *)data->data)));
- break;
- default:
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
- };
-
- return ML_SUCCESS;
-}
-
-struct ext_slave_descr mantis_descr = {
- /*.init = */ mantis_init,
- /*.exit = */ mantis_exit,
- /*.suspend = */ mantis_suspend,
- /*.resume = */ mantis_resume,
- /*.read = */ mantis_read,
- /*.config = */ mantis_config,
- /*.get_config = */ NULL,
- /*.name = */ "mantis",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ ACCEL_ID_MPU6000,
- /*.reg = */ 0xA8,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_BIG_ENDIAN,
- /*.range = */ {2, 0},
-};
-
-struct ext_slave_descr *mantis_get_slave_descr(void)
-{
- return &mantis_descr;
-}
-EXPORT_SYMBOL(mantis_get_slave_descr);
-
-/**
- * @}
- */
-
diff --git a/drivers/misc/mpu3050/accel/mma8450.c b/drivers/misc/mpu3050/accel/mma8450.c
deleted file mode 100755
index b5b3728..0000000
--- a/drivers/misc/mpu3050/accel/mma8450.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file mma8450.c
- * @brief Accelerometer setup and handling methods for Freescale MMA8450
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#include <stdlib.h>
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-#include <string.h>
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-#define ACCEL_MMA8450_SLEEP_REG (0x38)
-#define ACCEL_MMA8450_SLEEP_MASK (0x3)
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*****************************************
- Accelerometer Initialization Functions
-*****************************************/
-
-int mma8450_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char reg;
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- ACCEL_MMA8450_SLEEP_REG, 1, &reg);
- ERROR_CHECK(result);
- reg &= ~ACCEL_MMA8450_SLEEP_MASK;
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_MMA8450_SLEEP_REG, reg);
- ERROR_CHECK(result);
- return result;
-}
-
-/* full scale setting - register & mask */
-#define ACCEL_MMA8450_CTRL_REG (0x38)
-#define ACCEL_MMA8450_CTRL_MASK (0x3)
-
-int mma8450_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- unsigned char reg;
-
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- ACCEL_MMA8450_CTRL_REG, 1, &reg);
- ERROR_CHECK(result);
-
- /* data rate = 200Hz */
- reg &= 0xE3;
- reg |= 0x4;
-
- /* Full Scale */
- reg &= ~ACCEL_MMA8450_CTRL_MASK;
- if (slave->range.mantissa == 4)
- reg |= 0x2;
- else if (slave->range.mantissa == 8)
- reg |= 0x3;
- else {
- slave->range.mantissa = 2;
- reg |= 0x1;
- }
- slave->range.fraction = 0;
-
- /* XYZ_DATA_CFG: event flag enabled on all axis */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address, 0x16, 0x05);
- ERROR_CHECK(result);
- /* CTRL_REG1: rate + scale config + wakeup */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_MMA8450_CTRL_REG, reg);
- ERROR_CHECK(result);
-
- return result;
-}
-
-int mma8450_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata, unsigned char *data)
-{
- int result;
- unsigned char local_data[4]; /* Status register + 3 bytes data */
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, sizeof(local_data), local_data);
- ERROR_CHECK(result);
- memcpy(data, &local_data[1], (slave->len) - 1);
- return result;
-}
-
-struct ext_slave_descr mma8450_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ mma8450_suspend,
- /*.resume = */ mma8450_resume,
- /*.read = */ mma8450_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "mma8450",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ ACCEL_ID_MMA8450,
- /*.reg = */ 0x00,
- /*.len = */ 4,
- /*.endian = */ EXT_SLAVE_FS8_BIG_ENDIAN,
- /*.range = */ {2, 0},
-};
-
-struct ext_slave_descr *mma8450_get_slave_descr(void)
-{
- return &mma8450_descr;
-}
-
-EXPORT_SYMBOL(mma8450_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/accel/mma845x.c b/drivers/misc/mpu3050/accel/mma845x.c
deleted file mode 100755
index 27150ad..0000000
--- a/drivers/misc/mpu3050/accel/mma845x.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file mma845x.c
- * @brief Accelerometer setup and handling methods for Freescale MMA845X
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include <stdlib.h>
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-#include <string.h>
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-#define ACCEL_MMA845X_CTRL_REG1 (0x2A)
-#define ACCEL_MMA845X_SLEEP_MASK (0x01)
-
-/* full scale setting - register & mask */
-#define ACCEL_MMA845X_CFG_REG (0x0E)
-#define ACCEL_MMA845X_CTRL_MASK (0x03)
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*****************************************
- Accelerometer Initialization Functions
-*****************************************/
-
-int mma845x_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char reg;
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- ACCEL_MMA845X_CTRL_REG1, 1, &reg);
- ERROR_CHECK(result);
- reg &= ~ACCEL_MMA845X_SLEEP_MASK;
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_MMA845X_CTRL_REG1, reg);
- ERROR_CHECK(result);
- return result;
-}
-
-
-int mma845x_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- unsigned char reg;
-
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- ACCEL_MMA845X_CFG_REG, 1, &reg);
- ERROR_CHECK(result);
-
- /* data rate = 200Hz */
-
- /* Full Scale */
- reg &= ~ACCEL_MMA845X_CTRL_MASK;
- if (slave->range.mantissa == 4)
- reg |= 0x1;
- else if (slave->range.mantissa == 8)
- reg |= 0x2;
- else {
- slave->range.mantissa = 2;
- reg |= 0x0;
- }
- slave->range.fraction = 0;
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_MMA845X_CFG_REG, reg);
- ERROR_CHECK(result);
- /* 200Hz + active mode */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- ACCEL_MMA845X_CTRL_REG1, 0x11);
- ERROR_CHECK(result);
-
- return result;
-}
-
-int mma845x_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result;
- unsigned char local_data[7]; /* Status register + 6 bytes data */
- result = MLSLSerialRead(mlsl_handle, pdata->address,
- slave->reg, sizeof(local_data), local_data);
- ERROR_CHECK(result);
- memcpy(data, &local_data[1], slave->len);
- return result;
-}
-
-struct ext_slave_descr mma845x_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ mma845x_suspend,
- /*.resume = */ mma845x_resume,
- /*.read = */ mma845x_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "mma845x",
- /*.type = */ EXT_SLAVE_TYPE_ACCELEROMETER,
- /*.id = */ ACCEL_ID_MMA845X,
- /*.reg = */ 0x00,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_FS16_BIG_ENDIAN,
- /*.range = */ {2, 0},
-};
-
-struct ext_slave_descr *mma845x_get_slave_descr(void)
-{
- return &mma845x_descr;
-}
-EXPORT_SYMBOL(mma845x_get_slave_descr);
-
-/**
- * @}
- */
diff --git a/drivers/misc/mpu3050/compass/ami304.c b/drivers/misc/mpu3050/compass/ami304.c
deleted file mode 100755
index 5c33861..0000000
--- a/drivers/misc/mpu3050/compass/ami304.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup COMPASSDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file ami304.c
- * @brief Magnetometer setup and handling methods for Aichi ami304 compass.
-*/
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-#define AMI304_REG_DATAX (0x10)
-#define AMI304_REG_STAT1 (0x18)
-#define AMI304_REG_CNTL1 (0x1B)
-#define AMI304_REG_CNTL2 (0x1C)
-#define AMI304_REG_CNTL3 (0x1D)
-
-#define AMI304_BIT_CNTL1_PC1 (0x80)
-#define AMI304_BIT_CNTL1_ODR1 (0x10)
-#define AMI304_BIT_CNTL1_FS1 (0x02)
-
-#define AMI304_BIT_CNTL2_IEN (0x10)
-#define AMI304_BIT_CNTL2_DREN (0x08)
-#define AMI304_BIT_CNTL2_DRP (0x04)
-#define AMI304_BIT_CNTL3_F0RCE (0x40)
-
-int ami304_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char reg;
- result =
- MLSLSerialRead(mlsl_handle, pdata->address, AMI304_REG_CNTL1,
- 1, &reg);
- ERROR_CHECK(result);
-
- reg &= ~(AMI304_BIT_CNTL1_PC1|AMI304_BIT_CNTL1_FS1);
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AMI304_REG_CNTL1, reg);
- ERROR_CHECK(result);
-
- return result;
-}
-
-int ami304_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- /* Set CNTL1 reg to power model active */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AMI304_REG_CNTL1,
- AMI304_BIT_CNTL1_PC1|AMI304_BIT_CNTL1_FS1);
- ERROR_CHECK(result);
- /* Set CNTL2 reg to DRDY active high and enabled */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AMI304_REG_CNTL2,
- AMI304_BIT_CNTL2_DREN |
- AMI304_BIT_CNTL2_DRP);
- ERROR_CHECK(result);
- /* Set CNTL3 reg to forced measurement period */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AMI304_REG_CNTL3, AMI304_BIT_CNTL3_F0RCE);
-
- return result;
-}
-
-int ami304_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata, unsigned char *data)
-{
- unsigned char stat;
- int result = ML_SUCCESS;
-
- /* Read status reg and check if data ready (DRDY) */
- result =
- MLSLSerialRead(mlsl_handle, pdata->address, AMI304_REG_STAT1,
- 1, &stat);
- ERROR_CHECK(result);
-
- if (stat & 0x40) {
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- AMI304_REG_DATAX, 6,
- (unsigned char *) data);
- ERROR_CHECK(result);
- /* start another measurement */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AMI304_REG_CNTL3,
- AMI304_BIT_CNTL3_F0RCE);
- ERROR_CHECK(result);
-
- return ML_SUCCESS;
- }
-
- return ML_ERROR_COMPASS_DATA_NOT_READY;
-}
-
-struct ext_slave_descr ami304_descr = {
- /*.suspend = */ ami304_suspend,
- /*.resume = */ ami304_resume,
- /*.read = */ ami304_read,
- /*.name = */ "ami304",
- /*.type = */ EXT_SLAVE_TYPE_COMPASS,
- /*.id = */ COMPASS_ID_AICHI,
- /*.reg = */ 0x06,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_LITTLE_ENDIAN,
- /*.range = */ {5461, 3333}
-};
-
-struct ext_slave_descr *ami304_get_slave_descr(void)
-{
- return &ami304_descr;
-}
-
-#ifdef __KERNEL__
-EXPORT_SYMBOL(ami304_get_slave_descr);
-#endif
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/compass/ami30x.c b/drivers/misc/mpu3050/compass/ami30x.c
deleted file mode 100755
index 5e4a33e..0000000
--- a/drivers/misc/mpu3050/compass/ami30x.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup COMPASSDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file ami30x.c
- * @brief Magnetometer setup and handling methods for Aichi AMI304/AMI305
- * compass.
-*/
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-#define AMI30X_REG_DATAX (0x10)
-#define AMI30X_REG_STAT1 (0x18)
-#define AMI30X_REG_CNTL1 (0x1B)
-#define AMI30X_REG_CNTL2 (0x1C)
-#define AMI30X_REG_CNTL3 (0x1D)
-
-#define AMI30X_BIT_CNTL1_PC1 (0x80)
-#define AMI30X_BIT_CNTL1_ODR1 (0x10)
-#define AMI30X_BIT_CNTL1_FS1 (0x02)
-
-#define AMI30X_BIT_CNTL2_IEN (0x10)
-#define AMI30X_BIT_CNTL2_DREN (0x08)
-#define AMI30X_BIT_CNTL2_DRP (0x04)
-#define AMI30X_BIT_CNTL3_F0RCE (0x40)
-
-int ami30x_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result;
- unsigned char reg;
- result =
- MLSLSerialRead(mlsl_handle, pdata->address, AMI30X_REG_CNTL1,
- 1, &reg);
- ERROR_CHECK(result);
-
- reg &= ~(AMI30X_BIT_CNTL1_PC1|AMI30X_BIT_CNTL1_FS1);
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AMI30X_REG_CNTL1, reg);
- ERROR_CHECK(result);
-
- return result;
-}
-
-int ami30x_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- /* Set CNTL1 reg to power model active */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AMI30X_REG_CNTL1,
- AMI30X_BIT_CNTL1_PC1|AMI30X_BIT_CNTL1_FS1);
- ERROR_CHECK(result);
- /* Set CNTL2 reg to DRDY active high and enabled */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AMI30X_REG_CNTL2,
- AMI30X_BIT_CNTL2_DREN |
- AMI30X_BIT_CNTL2_DRP);
- ERROR_CHECK(result);
- /* Set CNTL3 reg to forced measurement period */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AMI30X_REG_CNTL3, AMI30X_BIT_CNTL3_F0RCE);
-
- return result;
-}
-
-int ami30x_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata, unsigned char *data)
-{
- unsigned char stat;
- int result = ML_SUCCESS;
-
- /* Read status reg and check if data ready (DRDY) */
- result =
- MLSLSerialRead(mlsl_handle, pdata->address, AMI30X_REG_STAT1,
- 1, &stat);
- ERROR_CHECK(result);
-
- if (stat & 0x40) {
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- AMI30X_REG_DATAX, 6,
- (unsigned char *) data);
- ERROR_CHECK(result);
- /* start another measurement */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AMI30X_REG_CNTL3,
- AMI30X_BIT_CNTL3_F0RCE);
- ERROR_CHECK(result);
-
- return ML_SUCCESS;
- }
-
- return ML_ERROR_COMPASS_DATA_NOT_READY;
-}
-
-struct ext_slave_descr ami30x_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ ami30x_suspend,
- /*.resume = */ ami30x_resume,
- /*.read = */ ami30x_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "ami30x",
- /*.type = */ EXT_SLAVE_TYPE_COMPASS,
- /*.id = */ COMPASS_ID_AMI30X,
- /*.reg = */ 0x06,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_LITTLE_ENDIAN,
- /*.range = */ {5461, 3333}
- /* For AMI305,the range field needs to be modified to {9830.4f}*/
-};
-
-struct ext_slave_descr *ami30x_get_slave_descr(void)
-{
- return &ami30x_descr;
-}
-EXPORT_SYMBOL(ami30x_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/compass/hmc5883.c b/drivers/misc/mpu3050/compass/hmc5883.c
deleted file mode 100755
index 051b071..0000000
--- a/drivers/misc/mpu3050/compass/hmc5883.c
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @brief Provides the interface to setup and handle a compass
- * connected to the primary I2C interface of the gyroscope.
- *
- * @{
- * @file hmc5883.c
- * @brief Magnetometer setup and handling methods for honeywell hmc5883
- * compass.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-/*-----HONEYWELL HMC5883 Registers ------*/
-enum HMC_REG {
- HMC_REG_CONF_A = 0x0,
- HMC_REG_CONF_B = 0x1,
- HMC_REG_MODE = 0x2,
- HMC_REG_X_M = 0x3,
- HMC_REG_X_L = 0x4,
- HMC_REG_Z_M = 0x5,
- HMC_REG_Z_L = 0x6,
- HMC_REG_Y_M = 0x7,
- HMC_REG_Y_L = 0x8,
- HMC_REG_STATUS = 0x9,
- HMC_REG_ID_A = 0xA,
- HMC_REG_ID_B = 0xB,
- HMC_REG_ID_C = 0xC
-};
-
-enum HMC_CONF_A {
- HMC_CONF_A_DRATE_MASK = 0x1C,
- HMC_CONF_A_DRATE_0_75 = 0x00,
- HMC_CONF_A_DRATE_1_5 = 0x04,
- HMC_CONF_A_DRATE_3 = 0x08,
- HMC_CONF_A_DRATE_7_5 = 0x0C,
- HMC_CONF_A_DRATE_15 = 0x10,
- HMC_CONF_A_DRATE_30 = 0x14,
- HMC_CONF_A_DRATE_75 = 0x18,
- HMC_CONF_A_MEAS_MASK = 0x3,
- HMC_CONF_A_MEAS_NORM = 0x0,
- HMC_CONF_A_MEAS_POS = 0x1,
- HMC_CONF_A_MEAS_NEG = 0x2
-};
-
-enum HMC_CONF_B {
- HMC_CONF_B_GAIN_MASK = 0xE0,
- HMC_CONF_B_GAIN_0_9 = 0x00,
- HMC_CONF_B_GAIN_1_2 = 0x20,
- HMC_CONF_B_GAIN_1_9 = 0x40,
- HMC_CONF_B_GAIN_2_5 = 0x60,
- HMC_CONF_B_GAIN_4_0 = 0x80,
- HMC_CONF_B_GAIN_4_6 = 0xA0,
- HMC_CONF_B_GAIN_5_5 = 0xC0,
- HMC_CONF_B_GAIN_7_9 = 0xE0
-};
-
-enum HMC_MODE {
- HMC_MODE_MASK = 0x3,
- HMC_MODE_CONT = 0x0,
- HMC_MODE_SINGLE = 0x1,
- HMC_MODE_IDLE = 0x2,
- HMC_MODE_SLEEP = 0x3
-};
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*****************************************
- Accelerometer Initialization Functions
-*****************************************/
-
-int hmc5883_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- HMC_REG_MODE, HMC_MODE_SLEEP);
- ERROR_CHECK(result);
- MLOSSleep(3);
-
- return result;
-}
-
-int hmc5883_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- /* Use single measurement mode. Start at sleep state. */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- HMC_REG_MODE, HMC_MODE_SLEEP);
- ERROR_CHECK(result);
- /* Config normal measurement */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- HMC_REG_CONF_A, 0);
- ERROR_CHECK(result);
- /* Adjust gain to 307 LSB/Gauss */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- HMC_REG_CONF_B, HMC_CONF_B_GAIN_5_5);
- ERROR_CHECK(result);
-
- return result;
-}
-
-int hmc5883_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- unsigned char stat;
- tMLError result = ML_SUCCESS;
- unsigned char tmp;
- short axisFixed;
-
- /* Read status reg. to check if data is ready */
- result =
- MLSLSerialRead(mlsl_handle, pdata->address, HMC_REG_STATUS, 1,
- &stat);
- ERROR_CHECK(result);
- if (stat & 0x01) {
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- HMC_REG_X_M, 6, (unsigned char *) data);
- ERROR_CHECK(result);
-
- /* switch YZ axis to proper position */
- tmp = data[2];
- data[2] = data[4];
- data[4] = tmp;
- tmp = data[3];
- data[3] = data[5];
- data[5] = tmp;
-
- /*drop data if overflows */
- if ((data[0] == 0xf0) || (data[2] == 0xf0)
- || (data[4] == 0xf0)) {
- /* trigger next measurement read */
- result =
- MLSLSerialWriteSingle(mlsl_handle,
- pdata->address,
- HMC_REG_MODE,
- HMC_MODE_SINGLE);
- ERROR_CHECK(result);
- return ML_ERROR_COMPASS_DATA_OVERFLOW;
- }
- /* convert to fixed point and apply sensitivity correction for
- Z-axis */
- axisFixed =
- (short) ((unsigned short) data[5] +
- (unsigned short) data[4] * 256);
- /* scale up by 1.125 (36/32) */
- axisFixed = (short) (axisFixed * 36);
- data[4] = axisFixed >> 8;
- data[5] = axisFixed & 0xFF;
-
- axisFixed =
- (short) ((unsigned short) data[3] +
- (unsigned short) data[2] * 256);
- axisFixed = (short) (axisFixed * 32);
- data[2] = axisFixed >> 8;
- data[3] = axisFixed & 0xFF;
-
- axisFixed =
- (short) ((unsigned short) data[1] +
- (unsigned short) data[0] * 256);
- axisFixed = (short) (axisFixed * 32);
- data[0] = axisFixed >> 8;
- data[1] = axisFixed & 0xFF;
-
- /* trigger next measurement read */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- HMC_REG_MODE, HMC_MODE_SINGLE);
- ERROR_CHECK(result);
-
- return ML_SUCCESS;
- } else {
- /* trigger next measurement read */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- HMC_REG_MODE, HMC_MODE_SINGLE);
- ERROR_CHECK(result);
-
- return ML_ERROR_COMPASS_DATA_NOT_READY;
- }
-}
-
-struct ext_slave_descr hmc5883_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ hmc5883_suspend,
- /*.resume = */ hmc5883_resume,
- /*.read = */ hmc5883_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "hmc5883",
- /*.type = */ EXT_SLAVE_TYPE_COMPASS,
- /*.id = */ COMPASS_ID_HMC5883,
- /*.reg = */ 0x06,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_BIG_ENDIAN,
- /*.range = */ {10673, 6156},
-};
-
-struct ext_slave_descr *hmc5883_get_slave_descr(void)
-{
- return &hmc5883_descr;
-}
-EXPORT_SYMBOL(hmc5883_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/compass/hscdtd002b.c b/drivers/misc/mpu3050/compass/hscdtd002b.c
deleted file mode 100755
index bf26cae..0000000
--- a/drivers/misc/mpu3050/compass/hscdtd002b.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @brief Provides the interface to setup and handle a compass
- * connected to the primary I2C interface of the gyroscope.
- *
- * @{
- * @file hscdtd002b.c
- * @brief Magnetometer setup and handling methods for Alps hscdtd002b
- * compass.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-/*----- ALPS HSCDTD002B Registers ------*/
-#define COMPASS_HSCDTD002B_STAT (0x18)
-#define COMPASS_HSCDTD002B_CTRL1 (0x1B)
-#define COMPASS_HSCDTD002B_CTRL2 (0x1C)
-#define COMPASS_HSCDTD002B_CTRL3 (0x1D)
-#define COMPASS_HSCDTD002B_DATAX (0x10)
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*****************************************
- Compass Initialization Functions
-*****************************************/
-
-int hscdtd002b_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- /* Power mode: stand-by */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_CTRL1, 0x00);
- ERROR_CHECK(result);
- MLOSSleep(1); /* turn-off time */
-
- return result;
-}
-
-int hscdtd002b_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- /* Soft reset */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_CTRL3, 0x80);
- ERROR_CHECK(result);
- /* Force state; Power mode: active */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_CTRL1, 0x82);
- ERROR_CHECK(result);
- /* Data ready enable */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_CTRL2, 0x08);
- ERROR_CHECK(result);
- MLOSSleep(1); /* turn-on time */
-
- return result;
-}
-
-int hscdtd002b_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- unsigned char stat;
- tMLError result = ML_SUCCESS;
- int status = ML_SUCCESS;
-
- /* Read status reg. to check if data is ready */
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_STAT, 1, &stat);
- ERROR_CHECK(result);
- if (stat & 0x40) {
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_DATAX, 6,
- (unsigned char *) data);
- ERROR_CHECK(result);
- status = ML_SUCCESS;
- } else if (stat & 0x20) {
- status = ML_ERROR_COMPASS_DATA_OVERFLOW;
- } else {
- status = ML_ERROR_COMPASS_DATA_NOT_READY;
- }
- /* trigger next measurement read */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- COMPASS_HSCDTD002B_CTRL3, 0x40);
- ERROR_CHECK(result);
-
- return status;
-}
-
-struct ext_slave_descr hscdtd002b_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ hscdtd002b_suspend,
- /*.resume = */ hscdtd002b_resume,
- /*.read = */ hscdtd002b_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "hscdtd002b",
- /*.type = */ EXT_SLAVE_TYPE_COMPASS,
- /*.id = */ COMPASS_ID_HSCDTD002B,
- /*.reg = */ 0x10,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_LITTLE_ENDIAN,
- /*.range = */ {9830, 4000},
-};
-
-struct ext_slave_descr *hscdtd002b_get_slave_descr(void)
-{
- return &hscdtd002b_descr;
-}
-EXPORT_SYMBOL(hscdtd002b_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/compass/hscdtd004a.c b/drivers/misc/mpu3050/compass/hscdtd004a.c
deleted file mode 100755
index 43fc14a..0000000
--- a/drivers/misc/mpu3050/compass/hscdtd004a.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @brief Provides the interface to setup and handle a compass
- * connected to the primary I2C interface of the gyroscope.
- *
- * @{
- * @file hscdtd004a.c
- * @brief Magnetometer setup and handling methods for Alps hscdtd004a
- * compass.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-/*----- ALPS HSCDTD004A Registers ------*/
-#define COMPASS_HSCDTD004A_STAT (0x18)
-#define COMPASS_HSCDTD004A_CTRL1 (0x1B)
-#define COMPASS_HSCDTD004A_CTRL2 (0x1C)
-#define COMPASS_HSCDTD004A_CTRL3 (0x1D)
-#define COMPASS_HSCDTD004A_DATAX (0x10)
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*****************************************
- Compass Initialization Functions
-*****************************************/
-
-int hscdtd004a_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- /* Power mode: stand-by */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_CTRL1, 0x00);
- ERROR_CHECK(result);
- MLOSSleep(1); /* turn-off time */
-
- return result;
-}
-
-int hscdtd004a_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- /* Soft reset */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_CTRL3, 0x80);
- ERROR_CHECK(result);
- /* Normal state; Power mode: active */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_CTRL1, 0x82);
- ERROR_CHECK(result);
- /* Data ready enable */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_CTRL2, 0x7C);
- ERROR_CHECK(result);
- MLOSSleep(1); /* turn-on time */
- return result;
-}
-
-int hscdtd004a_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- unsigned char stat;
- tMLError result = ML_SUCCESS;
- int status = ML_SUCCESS;
-
- /* Read status reg. to check if data is ready */
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_STAT, 1, &stat);
- ERROR_CHECK(result);
- if (stat & 0x48) {
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_DATAX, 6,
- (unsigned char *) data);
- ERROR_CHECK(result);
- status = ML_SUCCESS;
- } else if (stat & 0x68) {
- status = ML_ERROR_COMPASS_DATA_OVERFLOW;
- } else {
- status = ML_ERROR_COMPASS_DATA_NOT_READY;
- }
- /* trigger next measurement read */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- COMPASS_HSCDTD004A_CTRL3, 0x40);
- ERROR_CHECK(result);
- return status;
-
-}
-
-struct ext_slave_descr hscdtd004a_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ hscdtd004a_suspend,
- /*.resume = */ hscdtd004a_resume,
- /*.read = */ hscdtd004a_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "hscdtd004a",
- /*.type = */ EXT_SLAVE_TYPE_COMPASS,
- /*.id = */ COMPASS_ID_HSCDTD004A,
- /*.reg = */ 0x10,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_LITTLE_ENDIAN,
- /*.range = */ {9830, 4000},
-};
-
-struct ext_slave_descr *hscdtd004a_get_slave_descr(void)
-{
- return &hscdtd004a_descr;
-}
-EXPORT_SYMBOL(hscdtd004a_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/compass/lsm303m.c b/drivers/misc/mpu3050/compass/lsm303m.c
deleted file mode 100755
index 871d002..0000000
--- a/drivers/misc/mpu3050/compass/lsm303m.c
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @brief Provides the interface to setup and handle a compass
- * connected to the primary I2C interface of the gyroscope.
- *
- * @{
- * @file lsm303m.c
- * @brief Magnetometer setup and handling methods for ST LSM303.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-/*----- ST LSM303 Registers ------*/
-enum LSM_REG {
- LSM_REG_CONF_A = 0x0,
- LSM_REG_CONF_B = 0x1,
- LSM_REG_MODE = 0x2,
- LSM_REG_X_M = 0x3,
- LSM_REG_X_L = 0x4,
- LSM_REG_Z_M = 0x5,
- LSM_REG_Z_L = 0x6,
- LSM_REG_Y_M = 0x7,
- LSM_REG_Y_L = 0x8,
- LSM_REG_STATUS = 0x9,
- LSM_REG_ID_A = 0xA,
- LSM_REG_ID_B = 0xB,
- LSM_REG_ID_C = 0xC
-};
-
-enum LSM_CONF_A {
- LSM_CONF_A_DRATE_MASK = 0x1C,
- LSM_CONF_A_DRATE_0_75 = 0x00,
- LSM_CONF_A_DRATE_1_5 = 0x04,
- LSM_CONF_A_DRATE_3 = 0x08,
- LSM_CONF_A_DRATE_7_5 = 0x0C,
- LSM_CONF_A_DRATE_15 = 0x10,
- LSM_CONF_A_DRATE_30 = 0x14,
- LSM_CONF_A_DRATE_75 = 0x18,
- LSM_CONF_A_MEAS_MASK = 0x3,
- LSM_CONF_A_MEAS_NORM = 0x0,
- LSM_CONF_A_MEAS_POS = 0x1,
- LSM_CONF_A_MEAS_NEG = 0x2
-};
-
-enum LSM_CONF_B {
- LSM_CONF_B_GAIN_MASK = 0xE0,
- LSM_CONF_B_GAIN_0_9 = 0x00,
- LSM_CONF_B_GAIN_1_2 = 0x20,
- LSM_CONF_B_GAIN_1_9 = 0x40,
- LSM_CONF_B_GAIN_2_5 = 0x60,
- LSM_CONF_B_GAIN_4_0 = 0x80,
- LSM_CONF_B_GAIN_4_6 = 0xA0,
- LSM_CONF_B_GAIN_5_5 = 0xC0,
- LSM_CONF_B_GAIN_7_9 = 0xE0
-};
-
-enum LSM_MODE {
- LSM_MODE_MASK = 0x3,
- LSM_MODE_CONT = 0x0,
- LSM_MODE_SINGLE = 0x1,
- LSM_MODE_IDLE = 0x2,
- LSM_MODE_SLEEP = 0x3
-};
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*****************************************
- Accelerometer Initialization Functions
-*****************************************/
-
-int lsm303dlhm_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LSM_REG_MODE, LSM_MODE_SLEEP);
- ERROR_CHECK(result);
- MLOSSleep(3);
-
- return result;
-}
-
-int lsm303dlhm_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- /* Use single measurement mode. Start at sleep state. */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LSM_REG_MODE, LSM_MODE_SLEEP);
- ERROR_CHECK(result);
- /* Config normal measurement */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LSM_REG_CONF_A, 0);
- ERROR_CHECK(result);
- /* Adjust gain to 320 LSB/Gauss */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LSM_REG_CONF_B, LSM_CONF_B_GAIN_5_5);
- ERROR_CHECK(result);
-
- return result;
-}
-
-int lsm303dlhm_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- unsigned char stat;
- tMLError result = ML_SUCCESS;
- short axisFixed;
-
- /* Read status reg. to check if data is ready */
- result =
- MLSLSerialRead(mlsl_handle, pdata->address, LSM_REG_STATUS, 1,
- &stat);
- ERROR_CHECK(result);
- if (stat & 0x01) {
- result =
- MLSLSerialRead(mlsl_handle, pdata->address,
- LSM_REG_X_M, 6, (unsigned char *) data);
- ERROR_CHECK(result);
-
- /*drop data if overflows */
- if ((data[0] == 0xf0) || (data[2] == 0xf0)
- || (data[4] == 0xf0)) {
- /* trigger next measurement read */
- result =
- MLSLSerialWriteSingle(mlsl_handle,
- pdata->address,
- LSM_REG_MODE,
- LSM_MODE_SINGLE);
- ERROR_CHECK(result);
- return ML_ERROR_COMPASS_DATA_OVERFLOW;
- }
- /* convert to fixed point and apply sensitivity correction for
- Z-axis */
- axisFixed =
- (short) ((unsigned short) data[5] +
- (unsigned short) data[4] * 256);
- /* scale up by 1.125 (36/32) approximate of 1.122 (320/285) */
- axisFixed = (short) (axisFixed * 36);
- data[4] = axisFixed >> 8;
- data[5] = axisFixed & 0xFF;
-
- axisFixed =
- (short) ((unsigned short) data[3] +
- (unsigned short) data[2] * 256);
- axisFixed = (short) (axisFixed * 32);
- data[2] = axisFixed >> 8;
- data[3] = axisFixed & 0xFF;
-
- axisFixed =
- (short) ((unsigned short) data[1] +
- (unsigned short) data[0] * 256);
- axisFixed = (short) (axisFixed * 32);
- data[0] = axisFixed >> 8;
- data[1] = axisFixed & 0xFF;
-
- /* trigger next measurement read */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LSM_REG_MODE, LSM_MODE_SINGLE);
- ERROR_CHECK(result);
-
- return ML_SUCCESS;
- } else {
- /* trigger next measurement read */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- LSM_REG_MODE, LSM_MODE_SINGLE);
- ERROR_CHECK(result);
-
- return ML_ERROR_COMPASS_DATA_NOT_READY;
- }
-}
-
-struct ext_slave_descr lsm303dlhm_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ lsm303dlhm_suspend,
- /*.resume = */ lsm303dlhm_resume,
- /*.read = */ lsm303dlhm_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "lsm303dlhm",
- /*.type = */ EXT_SLAVE_TYPE_COMPASS,
- /*.id = */ COMPASS_ID_LSM303,
- /*.reg = */ 0x06,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_BIG_ENDIAN,
- /*.range = */ {10240, 0},
-};
-
-struct ext_slave_descr *lsm303dlhm_get_slave_descr(void)
-{
- return &lsm303dlhm_descr;
-}
-EXPORT_SYMBOL(lsm303dlhm_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/compass/mmc314x.c b/drivers/misc/mpu3050/compass/mmc314x.c
deleted file mode 100755
index 010d7a7..0000000
--- a/drivers/misc/mpu3050/compass/mmc314x.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file mmc314x.c
- * @brief Magnetometer setup and handling methods for ???? compass.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-static int reset_int = 1000;
-static int read_count = 1;
-static char reset_mode; /* in Z-init section */
-
-#define MMC314X_REG_ST (0x00)
-#define MMC314X_REG_X_MSB (0x01)
-
-#define MMC314X_CNTL_MODE_WAKE_UP (0x01)
-#define MMC314X_CNTL_MODE_SET (0x02)
-#define MMC314X_CNTL_MODE_RESET (0x04)
-
-/*****************************************
- Accelerometer Initialization Functions
-*****************************************/
-
-int mmc314x_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- return result;
-}
-
-int mmc314x_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
-
- int result;
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- MMC314X_REG_ST, MMC314X_CNTL_MODE_RESET);
- ERROR_CHECK(result);
- MLOSSleep(10);
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- MMC314X_REG_ST, MMC314X_CNTL_MODE_SET);
- ERROR_CHECK(result);
- MLOSSleep(10);
- read_count = 1;
- return ML_SUCCESS;
-}
-
-int mmc314x_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata,
- unsigned char *data)
-{
- int result, ii;
- short tmp[3];
- unsigned char tmpdata[6];
-
-
- if (read_count > 1000)
- read_count = 1;
-
- result =
- MLSLSerialRead(mlsl_handle, pdata->address, MMC314X_REG_X_MSB,
- 6, (unsigned char *) data);
- ERROR_CHECK(result);
-
- for (ii = 0; ii < 6; ii++)
- tmpdata[ii] = data[ii];
-
- for (ii = 0; ii < 3; ii++) {
- tmp[ii] =
- (short) ((tmpdata[2 * ii] << 8) + tmpdata[2 * ii + 1]);
- tmp[ii] = tmp[ii] - 4096;
- tmp[ii] = tmp[ii] * 16;
- }
-
- for (ii = 0; ii < 3; ii++) {
- data[2 * ii] = (unsigned char) (tmp[ii] >> 8);
- data[2 * ii + 1] = (unsigned char) (tmp[ii]);
- }
-
- if (read_count % reset_int == 0) {
- if (reset_mode) {
- result =
- MLSLSerialWriteSingle(mlsl_handle,
- pdata->address,
- MMC314X_REG_ST,
- MMC314X_CNTL_MODE_RESET);
- ERROR_CHECK(result);
- reset_mode = 0;
- return ML_ERROR_COMPASS_DATA_NOT_READY;
- } else {
- result =
- MLSLSerialWriteSingle(mlsl_handle,
- pdata->address,
- MMC314X_REG_ST,
- MMC314X_CNTL_MODE_SET);
- ERROR_CHECK(result);
- reset_mode = 1;
- read_count++;
- return ML_ERROR_COMPASS_DATA_NOT_READY;
- }
- }
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- MMC314X_REG_ST,
- MMC314X_CNTL_MODE_WAKE_UP);
- ERROR_CHECK(result);
- read_count++;
-
- return ML_SUCCESS;
-}
-
-struct ext_slave_descr mmc314x_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ mmc314x_suspend,
- /*.resume = */ mmc314x_resume,
- /*.read = */ mmc314x_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "mmc314x",
- /*.type = */ EXT_SLAVE_TYPE_COMPASS,
- /*.id = */ COMPASS_ID_MMC314X,
- /*.reg = */ 0x01,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_BIG_ENDIAN,
- /*.range = */ {400, 0},
-};
-
-struct ext_slave_descr *mmc314x_get_slave_descr(void)
-{
- return &mmc314x_descr;
-}
-EXPORT_SYMBOL(mmc314x_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/compass/mmc328x.c b/drivers/misc/mpu3050/compass/mmc328x.c
deleted file mode 100755
index d2914f3..0000000
--- a/drivers/misc/mpu3050/compass/mmc328x.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright (C) 2010 MEMSIC, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include <linux/i2c.h>
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-
-#define MMC328X_I2C_ADDR 0x30
-
-#define MMC328X_REG_CTRL 0x07
-#define MMC328X_REG_DATA 0x00
-#define MMC328X_REG_DS 0x06
-
-#define MMC328X_CTRL_TM 0x01
-#define MMC328X_CTRL_RM 0x20
-
-#define MMC328X_DELAY_TM 10 /* ms */
-#define MMC328X_DELAY_RM 10 /* ms */
-#define MMC328X_DELAY_STDN 1 /* ms */
-
-static int mmc328x_i2c_rx_data(void *mlsl_handle,
- struct ext_slave_platform_data *pdata, char *buf, int len)
-{
- uint8_t i;
- struct i2c_msg msgs[2] = { 0, };
-
- if (NULL == buf || NULL == mlsl_handle)
- return -EINVAL;
-
- msgs[0].addr = pdata->address;
- msgs[0].flags = 0;
- msgs[0].len = 1;
- msgs[0].buf = buf;
-
- msgs[1].addr = pdata->address;
- msgs[1].flags = I2C_M_RD;
- msgs[1].len = len;
- msgs[1].buf = buf;
-
- if (i2c_transfer(mlsl_handle, msgs, 2) >= 0)
- return -1;
-
- return 0;
-}
-
-static int mmc328x_i2c_tx_data(void *mlsl_handle,
- struct ext_slave_platform_data *pdata, char *buf, int len)
-{
- struct i2c_msg msgs[1];
- int res;
-
- if (NULL == buf || NULL == mlsl_handle)
- return -EINVAL;
-
- msgs[0].addr = pdata->address;
- msgs[0].flags = 0; /* write */
- msgs[0].buf = (unsigned char *)buf;
- msgs[0].len = len;
-
- res = i2c_transfer(mlsl_handle, msgs, 1);
- if (res < 1)
- return res;
- else
- return 0;
-}
-
-int memsic_api_resume(void *mlsl_handle,
- struct ext_slave_platform_data *pdata)
-{
-#if 0
- unsigned char data[2] = { 0 };
-
- data[0] = MMC328X_REG_CTRL;
- data[1] = MMC328X_CTRL_RM;
- if (mmc328x_i2c_tx_data(mlsl_handle, pdata, data, 2) < 0)
- return -1;
-
- msleep(MMC328X_DELAY_RM);
-#endif
- return 0;
-}
-
-int memsic_api_suspend(void *mlsl_handle,
- struct ext_slave_platform_data *pdata)
-{
-#if 0
- unsigned char data[2] = { 0 };
-
- data[0] = MMC328X_REG_CTRL;
- data[1] = 0;
- if (mmc328x_i2c_tx_data(mlsl_handle, pdata, data, 2) < 0)
- return -1;
- msleep(MMC328X_DELAY_RM);
-
- data[0] = MMC328X_REG_CTRL;
- data[1] = 0;
- mmc328x_i2c_tx_data(mlsl_handle, pdata, data, 2);
- msleep(MMC328X_DELAY_TM);
-#endif
- return 0;
-}
-
-int memsic_api_read(void *mlsl_handle, struct ext_slave_platform_data *pdata,
- unsigned char *raw_data, int *accuracy)
-{
- unsigned char data[6] = { 0 };
- int MD_times = 0;
-
- data[0] = MMC328X_REG_CTRL;
- data[1] = MMC328X_CTRL_TM;
- mmc328x_i2c_tx_data(mlsl_handle, pdata, data, 2);
- msleep(MMC328X_DELAY_TM);
-
- data[0] = MMC328X_REG_DS;
- if (mmc328x_i2c_rx_data(mlsl_handle, pdata, data, 1) < 0)
- return -EFAULT;
-
- while (!(data[0] & 0x01)) {
- msleep(20);
- data[0] = MMC328X_REG_DS;
-
- if (mmc328x_i2c_rx_data(mlsl_handle, pdata, data, 1) < 0)
- return -EFAULT;
-
- if (data[0] & 0x01)
- break;
-
- MD_times++;
-
- if (MD_times > 2)
- return -EFAULT;
- }
-
- data[0] = MMC328X_REG_DATA;
- if (mmc328x_i2c_rx_data(mlsl_handle, pdata, data, 6) < 0)
- return -EFAULT;
-
- memcpy(raw_data, data, sizeof(unsigned char) * 6);
-
- *accuracy = 0;
-
- return 0;
-}
-
-int mmc328x_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata, unsigned char *data)
-{
- int xyz[3] = { 0, };
- int accuracy = 0;
-
- memsic_api_read(mlsl_handle, pdata, data, &accuracy);
-
- return ML_SUCCESS;
-}
-
-int mmc328x_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- memsic_api_suspend(mlsl_handle, pdata);
- return result;
-}
-
-int mmc328x_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
-
- memsic_api_resume(mlsl_handle, pdata);
- return ML_SUCCESS;
-}
-
-struct ext_slave_descr mmc328x_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ mmc328x_suspend,
- /*.resume = */ mmc328x_resume,
- /*.read = */ mmc328x_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "mmc328x",
- /*.type = */ EXT_SLAVE_TYPE_COMPASS,
- /*.id = */ COMPASS_ID_MMC328X,
- /*.reg = */ 0x01,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_BIG_ENDIAN,
- /*.range = */ {400, 0},
-};
-
-struct ext_slave_descr *mmc328x_get_slave_descr(void)
-{
- return &mmc328x_descr;
-}
-EXPORT_SYMBOL(mmc328x_get_slave_descr);
-
-/**
- * @}
-**/
diff --git a/drivers/misc/mpu3050/compass/mpuak8975.c b/drivers/misc/mpu3050/compass/mpuak8975.c
deleted file mode 100755
index 991de77..0000000
--- a/drivers/misc/mpu3050/compass/mpuak8975.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup COMPASSDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file AK8975.c
- * @brief Magnetometer setup and handling methods for AKM 8975 compass.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#include <string.h>
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#endif
-
-#include "mpu.h"
-#include "mlsl.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-compass"
-
-
-#define AK8975_REG_ST1 (0x02)
-#define AK8975_REG_HXL (0x03)
-#define AK8975_REG_ST2 (0x09)
-
-#define AK8975_REG_CNTL (0x0A)
-
-#define AK8975_CNTL_MODE_POWER_DOWN (0x00)
-#define AK8975_CNTL_MODE_SINGLE_MEASUREMENT (0x01)
-
-int ak8975_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AK8975_REG_CNTL,
- AK8975_CNTL_MODE_POWER_DOWN);
- MLOSSleep(1); /* wait at least 100us */
- ERROR_CHECK(result);
- return result;
-}
-
-int ak8975_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AK8975_REG_CNTL,
- AK8975_CNTL_MODE_SINGLE_MEASUREMENT);
- ERROR_CHECK(result);
- return result;
-}
-
-int ak8975_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata, unsigned char *data)
-{
- unsigned char regs[8];
- unsigned char *stat = &regs[0];
- unsigned char *stat2 = &regs[7];
- int result = ML_SUCCESS;
- int status = ML_SUCCESS;
-
- result =
- MLSLSerialRead(mlsl_handle, pdata->address, AK8975_REG_ST1,
- 8, regs);
- ERROR_CHECK(result);
-
- /*
- * ST : data ready -
- * Measurement has been completed and data is ready to be read.
- */
- if (*stat & 0x01) {
- memcpy(data, &regs[1], 6);
- status = ML_SUCCESS;
- }
-
- /*
- * ST2 : data error -
- * occurs when data read is started outside of a readable period;
- * data read would not be correct.
- * Valid in continuous measurement mode only.
- * In single measurement mode this error should not occour but we
- * stil account for it and return an error, since the data would be
- * corrupted.
- * DERR bit is self-clearing when ST2 register is read.
- */
- if (*stat2 & 0x04)
- status = ML_ERROR_COMPASS_DATA_ERROR;
- /*
- * ST2 : overflow -
- * the sum of the absolute values of all axis |X|+|Y|+|Z| < 2400uT.
- * This is likely to happen in presence of an external magnetic
- * disturbance; it indicates, the sensor data is incorrect and should
- * be ignored.
- * An error is returned.
- * HOFL bit clears when a new measurement starts.
- */
- if (*stat2 & 0x08)
- status = ML_ERROR_COMPASS_DATA_OVERFLOW;
- /*
- * ST : overrun -
- * the previous sample was not fetched and lost.
- * Valid in continuous measurement mode only.
- * In single measurement mode this error should not occour and we
- * don't consider this condition an error.
- * DOR bit is self-clearing when ST2 or any meas. data register is
- * read.
- */
- if (*stat & 0x02) {
- /* status = ML_ERROR_COMPASS_DATA_UNDERFLOW; */
- status = ML_SUCCESS;
- }
-
- /*
- * trigger next measurement if:
- * - stat is non zero;
- * - if stat is zero and stat2 is non zero.
- * Won't trigger if data is not ready and there was no error.
- */
- if (*stat != 0x00 || *stat2 != 0x00) {
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->address,
- AK8975_REG_CNTL,
- AK8975_CNTL_MODE_SINGLE_MEASUREMENT);
- ERROR_CHECK(result);
- }
-
- return status;
-}
-
-struct ext_slave_descr ak8975_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ ak8975_suspend,
- /*.resume = */ ak8975_resume,
- /*.read = */ ak8975_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "ak8975",
- /*.type = */ EXT_SLAVE_TYPE_COMPASS,
- /*.id = */ COMPASS_ID_AKM,
- /*.reg = */ 0x01,
- /*.len = */ 9,
- /*.endian = */ EXT_SLAVE_LITTLE_ENDIAN,
- /*.range = */ {9830, 4000}
-};
-
-struct ext_slave_descr *ak8975_get_slave_descr(void)
-{
- return &ak8975_descr;
-}
-EXPORT_SYMBOL(ak8975_get_slave_descr);
-
-/**
- * @}
- */
diff --git a/drivers/misc/mpu3050/compass/yas529-kernel.c b/drivers/misc/mpu3050/compass/yas529-kernel.c
deleted file mode 100755
index 239ab66..0000000
--- a/drivers/misc/mpu3050/compass/yas529-kernel.c
+++ /dev/null
@@ -1,477 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-/**
- * @defgroup ACCELDL (Motion Library - Accelerometer Driver Layer)
- * @brief Provides the interface to setup and handle an accelerometers
- * connected to the secondary I2C interface of the gyroscope.
- *
- * @{
- * @file yas529.c
- * @brief Magnetometer setup and handling methods for Yamaha yas529
- * compass.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#ifdef __KERNEL__
-#include <linux/module.h>
-#include <linux/i2c.h>
-#endif
-
-#include "mpu.h"
-#include "mlos.h"
-
-#include <log.h>
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "MPL-acc"
-
-/*----- YAMAHA YAS529 Registers ------*/
-enum YAS_REG {
- YAS_REG_CMDR = 0x00, /* 000 < 5 */
- YAS_REG_XOFFSETR = 0x20, /* 001 < 5 */
- YAS_REG_Y1OFFSETR = 0x40, /* 010 < 5 */
- YAS_REG_Y2OFFSETR = 0x60, /* 011 < 5 */
- YAS_REG_ICOILR = 0x80, /* 100 < 5 */
- YAS_REG_CAL = 0xA0, /* 101 < 5 */
- YAS_REG_CONFR = 0xC0, /* 110 < 5 */
- YAS_REG_DOUTR = 0xE0 /* 111 < 5 */
-};
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-static long a1;
-static long a2;
-static long a3;
-static long a4;
-static long a5;
-static long a6;
-static long a7;
-static long a8;
-static long a9;
-
-/*****************************************
- Yamaha I2C access functions
-*****************************************/
-
-static int yas529_sensor_i2c_write(struct i2c_adapter *i2c_adap,
- unsigned char address,
- unsigned int len, unsigned char *data)
-{
- struct i2c_msg msgs[1];
- int res;
-
- if (NULL == data || NULL == i2c_adap)
- return -EINVAL;
-
- msgs[0].addr = address;
- msgs[0].flags = 0; /* write */
- msgs[0].buf = (unsigned char *) data;
- msgs[0].len = len;
-
- res = i2c_transfer(i2c_adap, msgs, 1);
- if (res < 1)
- return res;
- else
- return 0;
-}
-
-static int yas529_sensor_i2c_read(struct i2c_adapter *i2c_adap,
- unsigned char address,
- unsigned char reg,
- unsigned int len, unsigned char *data)
-{
- struct i2c_msg msgs[2];
- int res;
-
- if (NULL == data || NULL == i2c_adap)
- return -EINVAL;
-
- msgs[0].addr = address;
- msgs[0].flags = I2C_M_RD;
- msgs[0].buf = data;
- msgs[0].len = len;
-
- res = i2c_transfer(i2c_adap, msgs, 1);
- if (res < 1)
- return res;
- else
- return 0;
-}
-
-/*****************************************
- Accelerometer Initialization Functions
-*****************************************/
-
-int yas529_suspend(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- return result;
-}
-
-int yas529_resume(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata)
-{
- int result = ML_SUCCESS;
-
- unsigned char dummyData[1] = { 0 };
- unsigned char dummyRegister = 0;
- unsigned char rawData[6];
- unsigned char calData[9];
-
- short xoffset, y1offset, y2offset;
- short d2, d3, d4, d5, d6, d7, d8, d9;
-
- /* YAS529 Application Manual MS-3C - Section 4.4.5 */
- /* =============================================== */
- /* Step 1 - register initialization */
- /* zero initialization coil register - "100 00 000" */
- dummyData[0] = YAS_REG_ICOILR | 0x00;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- /* zero config register - "110 00 000" */
- dummyData[0] = YAS_REG_CONFR | 0x00;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
-
- /* Step 2 - initialization coil operation */
- dummyData[0] = YAS_REG_ICOILR | 0x11;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x01;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x12;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x02;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x13;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x03;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x14;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x04;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x15;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x05;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x16;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x06;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x17;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x07;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x10;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_ICOILR | 0x00;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
-
- /* Step 3 - rough offset measurement */
- /* Config register - Measurements results - "110 00 000" */
- dummyData[0] = YAS_REG_CONFR | 0x00;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- /* Measurements command register - Rough offset measurement -
- "000 00001" */
- dummyData[0] = YAS_REG_CMDR | 0x01;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- MLOSSleep(2); /* wait at least 1.5ms */
-
- /* Measurement data read */
- result =
- yas529_sensor_i2c_read(mlsl_handle, pdata->address,
- dummyRegister, 6, rawData);
- ERROR_CHECK(result);
- xoffset =
- (short) ((unsigned short) rawData[5] +
- ((unsigned short) rawData[4] & 0x7) * 256) - 5;
- if (xoffset < 0)
- xoffset = 0;
- y1offset =
- (short) ((unsigned short) rawData[3] +
- ((unsigned short) rawData[2] & 0x7) * 256) - 5;
- if (y1offset < 0)
- y1offset = 0;
- y2offset =
- (short) ((unsigned short) rawData[1] +
- ((unsigned short) rawData[0] & 0x7) * 256) - 5;
- if (y2offset < 0)
- y2offset = 0;
-
- /* Step 4 - rough offset setting */
- /* Set rough offset register values */
- dummyData[0] = YAS_REG_XOFFSETR | xoffset;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_Y1OFFSETR | y1offset;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- dummyData[0] = YAS_REG_Y2OFFSETR | y2offset;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
-
- /* CAL matrix read (first read is invalid) */
- /* Config register - CAL register read - "110 01 000" */
- dummyData[0] = YAS_REG_CONFR | 0x08;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- /* CAL data read */
- result =
- yas529_sensor_i2c_read(mlsl_handle, pdata->address,
- dummyRegister, 9, calData);
- ERROR_CHECK(result);
- /* Config register - CAL register read - "110 01 000" */
- dummyData[0] = YAS_REG_CONFR | 0x08;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- /* CAL data read */
- result =
- yas529_sensor_i2c_read(mlsl_handle, pdata->address,
- dummyRegister, 9, calData);
- ERROR_CHECK(result);
-
- /* Calculate coefficients of the sensitivity corrcetion matrix */
-#if 1 /* production sensor */
- a1 = 100;
- d2 = (calData[0] & 0xFC) >> 2; /* [71..66] 6bit */
- a2 = (short) (d2 - 32);
- /* [65..62] 4bit */
- d3 = ((calData[0] & 0x03) << 2) | ((calData[1] & 0xC0) >> 6);
- a3 = (short) (d3 - 8);
- d4 = (calData[1] & 0x3F); /* [61..56] 6bit */
- a4 = (short) (d4 - 32);
- d5 = (calData[2] & 0xFC) >> 2; /* [55..50] 6bit */
- a5 = (short) (d5 - 32) + 70;
- /* [49..44] 6bit */
- d6 = ((calData[2] & 0x03) << 4) | ((calData[3] & 0xF0) >> 4);
- a6 = (short) (d6 - 32);
- /* [43..38] 6bit */
- d7 = ((calData[3] & 0x0F) << 2) | ((calData[4] & 0xC0) >> 6);
- a7 = (short) (d7 - 32);
- d8 = (calData[4] & 0x3F); /* [37..32] 6bit */
- a8 = (short) (d8 - 32);
- d9 = (calData[5] & 0xFE) >> 1; /* [31..25] 7bit */
- a9 = (short) (d9 - 64) + 130;
-#else /* evaluation sensor */
- a1 = 1.0f;
- /* [71..66] 6bit */
- d2 = (calData[0] & 0xFC) >> 2;
- a2 = (short) d2;
- /* [65..60] 6bit */
- d3 = ((calData[0] & 0x03) << 4) | ((calData[1] & 0xF0) >> 4);
- a3 = (short) d3;
- /* [59..54] 6bit */
- d4 = ((calData[1] & 0x0F) << 2) | ((calData[2] & 0xC0) >> 6);
- a4 = (short) d4;
- /* [53..48] 6bit */
- d5 = (calData[2] & 0x3F);
- a5 = (short) (d5 + 70);
- /* [47..42] 6bit */
- d6 = ((calData[3] & 0xFC) >> 2);
- a6 = (short) d6;
- /* [41..36] 6bit */
- d7 = ((calData[3] & 0x03) << 4) | ((calData[4] & 0xF0) >> 4);
- a7 = (short) d7;
- /* [35..30] 6bit */
- d8 = ((calData[4] & 0x0F) << 2) | ((calData[5] & 0xC0) >> 6);
- a8 = (short) d8;
- /* [29..24] 6bit */
- d9 = (calData[5] & 0x3F);
- a9 = (short) (d9 + 150);
-#endif
-
- return result;
-}
-
-int yas529_read(void *mlsl_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *pdata, unsigned char *data)
-{
- unsigned char stat;
- unsigned char rawData[6];
- unsigned char dummyData[1] = { 0 };
- unsigned char dummyRegister = 0;
- tMLError result = ML_SUCCESS;
- short SX, SY1, SY2, SY, SZ;
- short row1fixed, row2fixed, row3fixed;
-
- /* Config register - Measurements results - "110 00 000" */
- dummyData[0] = YAS_REG_CONFR | 0x00;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- /* Measurements command register - Normal magnetic field measurement -
- "000 00000" */
- dummyData[0] = YAS_REG_CMDR | 0x00;
- result =
- yas529_sensor_i2c_write(mlsl_handle, pdata->address, 1,
- dummyData);
- ERROR_CHECK(result);
- MLOSSleep(10);
- /* Measurement data read */
- result =
- yas529_sensor_i2c_read(mlsl_handle, pdata->address,
- dummyRegister, 6,
- (unsigned char *) &rawData);
- ERROR_CHECK(result);
-
- stat = rawData[0] & 0x80;
- if (stat == 0x00) {
- /* Extract raw data */
- SX = (short) ((unsigned short) rawData[5] +
- ((unsigned short) rawData[4] & 0x7) * 256);
- SY1 =
- (short) ((unsigned short) rawData[3] +
- ((unsigned short) rawData[2] & 0x7) * 256);
- SY2 =
- (short) ((unsigned short) rawData[1] +
- ((unsigned short) rawData[0] & 0x7) * 256);
- if ((SX <= 1) || (SY1 <= 1) || (SY2 <= 1))
- return ML_ERROR_COMPASS_DATA_UNDERFLOW;
- if ((SX >= 1024) || (SY1 >= 1024) || (SY2 >= 1024))
- return ML_ERROR_COMPASS_DATA_OVERFLOW;
- /* Convert to XYZ axis */
- SX = -1 * SX;
- SY = SY2 - SY1;
- SZ = SY1 + SY2;
-
- /* Apply sensitivity correction matrix */
- row1fixed =
- (short) ((a1 * SX + a2 * SY + a3 * SZ) >> 7) * 41;
- row2fixed =
- (short) ((a4 * SX + a5 * SY + a6 * SZ) >> 7) * 41;
- row3fixed =
- (short) ((a7 * SX + a8 * SY + a9 * SZ) >> 7) * 41;
-
- data[0] = row1fixed >> 8;
- data[1] = row1fixed & 0xFF;
- data[2] = row2fixed >> 8;
- data[3] = row2fixed & 0xFF;
- data[4] = row3fixed >> 8;
- data[5] = row3fixed & 0xFF;
-
- return ML_SUCCESS;
- } else {
- return ML_ERROR_COMPASS_DATA_NOT_READY;
- }
-}
-
-struct ext_slave_descr yas529_descr = {
- /*.init = */ NULL,
- /*.exit = */ NULL,
- /*.suspend = */ yas529_suspend,
- /*.resume = */ yas529_resume,
- /*.read = */ yas529_read,
- /*.config = */ NULL,
- /*.get_config = */ NULL,
- /*.name = */ "yas529",
- /*.type = */ EXT_SLAVE_TYPE_COMPASS,
- /*.id = */ COMPASS_ID_YAS529,
- /*.reg = */ 0x06,
- /*.len = */ 6,
- /*.endian = */ EXT_SLAVE_BIG_ENDIAN,
- /*.range = */ {19660, 8000},
-};
-
-struct ext_slave_descr *yas529_get_slave_descr(void)
-{
- return &yas529_descr;
-}
-EXPORT_SYMBOL(yas529_get_slave_descr);
-
-/**
- * @}
- */
diff --git a/drivers/misc/mpu3050/log.h b/drivers/misc/mpu3050/log.h
deleted file mode 100755
index 197b774..0000000
--- a/drivers/misc/mpu3050/log.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- Copyright (C) 1995-97 Simon G. Vogl
- Copyright (C) 1998-99 Frodo Looijaard <frodol@dds.nl>
- Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com>
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/*
- * C/C++ logging functions. See the logging documentation for API details.
- *
- * We'd like these to be available from C code (in case we import some from
- * somewhere), so this has a C interface.
- *
- * The output will be correct when the log file is shared between multiple
- * threads and/or multiple processes so long as the operating system
- * supports O_APPEND. These calls have mutex-protected data structures
- * and so are NOT reentrant. Do not use MPL_LOG in a signal handler.
- */
-#ifndef _LIBS_CUTILS_MPL_LOG_H
-#define _LIBS_CUTILS_MPL_LOG_H
-
-#include <stdarg.h>
-
-#ifdef ANDROID
-#include <utils/Log.h> /* For the LOG macro */
-#endif
-
-#ifdef __KERNEL__
-#include <linux/kernel.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* --------------------------------------------------------------------- */
-
-/*
- * Normally we strip MPL_LOGV (VERBOSE messages) from release builds.
- * You can modify this (for example with "#define MPL_LOG_NDEBUG 0"
- * at the top of your source file) to change that behavior.
- */
-#ifndef MPL_LOG_NDEBUG
-#ifdef NDEBUG
-#define MPL_LOG_NDEBUG 1
-#else
-#define MPL_LOG_NDEBUG 0
-#endif
-#endif
-
-#ifdef __KERNEL__
-#define MPL_LOG_UNKNOWN MPL_LOG_VERBOSE
-#define MPL_LOG_DEFAULT KERN_DEFAULT
-#define MPL_LOG_VERBOSE KERN_CONT
-#define MPL_LOG_DEBUG KERN_NOTICE
-#define MPL_LOG_INFO KERN_INFO
-#define MPL_LOG_WARN KERN_WARNING
-#define MPL_LOG_ERROR KERN_ERR
-#define MPL_LOG_SILENT MPL_LOG_VERBOSE
-
-#else
- /* Based off the log priorities in android
- /system/core/include/android/log.h */
-#define MPL_LOG_UNKNOWN (0)
-#define MPL_LOG_DEFAULT (1)
-#define MPL_LOG_VERBOSE (2)
-#define MPL_LOG_DEBUG (3)
-#define MPL_LOG_INFO (4)
-#define MPL_LOG_WARN (5)
-#define MPL_LOG_ERROR (6)
-#define MPL_LOG_SILENT (8)
-#endif
-
-
-/*
- * This is the local tag used for the following simplified
- * logging macros. You can change this preprocessor definition
- * before using the other macros to change the tag.
- */
-#ifndef MPL_LOG_TAG
-#ifdef __KERNEL__
-#define MPL_LOG_TAG
-#else
-#define MPL_LOG_TAG NULL
-#endif
-#endif
-
-/* --------------------------------------------------------------------- */
-
-/*
- * Simplified macro to send a verbose log message using the current MPL_LOG_TAG.
- */
-#ifndef MPL_LOGV
-#if MPL_LOG_NDEBUG
-#define MPL_LOGV(...) ((void)0)
-#else
-#define MPL_LOGV(...) ((void)MPL_LOG(LOG_VERBOSE, MPL_LOG_TAG, __VA_ARGS__))
-#endif
-#endif
-
-#ifndef CONDITION
-#define CONDITION(cond) ((cond) != 0)
-#endif
-
-#ifndef MPL_LOGV_IF
-#if MPL_LOG_NDEBUG
-#define MPL_LOGV_IF(cond, ...) ((void)0)
-#else
-#define MPL_LOGV_IF(cond, ...) \
- ((CONDITION(cond)) \
- ? ((void)MPL_LOG(LOG_VERBOSE, MPL_LOG_TAG, __VA_ARGS__)) \
- : (void)0)
-#endif
-#endif
-
-/*
- * Simplified macro to send a debug log message using the current MPL_LOG_TAG.
- */
-#ifndef MPL_LOGD
-#define MPL_LOGD(...) ((void)MPL_LOG(LOG_DEBUG, MPL_LOG_TAG, __VA_ARGS__))
-#endif
-
-#ifndef MPL_LOGD_IF
-#define MPL_LOGD_IF(cond, ...) \
- ((CONDITION(cond)) \
- ? ((void)MPL_LOG(LOG_DEBUG, MPL_LOG_TAG, __VA_ARGS__)) \
- : (void)0)
-#endif
-
-/*
- * Simplified macro to send an info log message using the current MPL_LOG_TAG.
- */
-#ifndef MPL_LOGI
-#define MPL_LOGI(...) ((void)MPL_LOG(LOG_INFO, MPL_LOG_TAG, __VA_ARGS__))
-#endif
-
-#ifndef MPL_LOGI_IF
-#define MPL_LOGI_IF(cond, ...) \
- ((CONDITION(cond)) \
- ? ((void)MPL_LOG(LOG_INFO, MPL_LOG_TAG, __VA_ARGS__)) \
- : (void)0)
-#endif
-
-/*
- * Simplified macro to send a warning log message using the current MPL_LOG_TAG.
- */
-#ifndef MPL_LOGW
-#define MPL_LOGW(...) ((void)MPL_LOG(LOG_WARN, MPL_LOG_TAG, __VA_ARGS__))
-#endif
-
-#ifndef MPL_LOGW_IF
-#define MPL_LOGW_IF(cond, ...) \
- ((CONDITION(cond)) \
- ? ((void)MPL_LOG(LOG_WARN, MPL_LOG_TAG, __VA_ARGS__)) \
- : (void)0)
-#endif
-
-/*
- * Simplified macro to send an error log message using the current MPL_LOG_TAG.
- */
-#ifndef MPL_LOGE
-#define MPL_LOGE(...) ((void)MPL_LOG(LOG_ERROR, MPL_LOG_TAG, __VA_ARGS__))
-#endif
-
-#ifndef MPL_LOGE_IF
-#define MPL_LOGE_IF(cond, ...) \
- ((CONDITION(cond)) \
- ? ((void)MPL_LOG(LOG_ERROR, MPL_LOG_TAG, __VA_ARGS__)) \
- : (void)0)
-#endif
-
-/* --------------------------------------------------------------------- */
-
-/*
- * Log a fatal error. If the given condition fails, this stops program
- * execution like a normal assertion, but also generating the given message.
- * It is NOT stripped from release builds. Note that the condition test
- * is -inverted- from the normal assert() semantics.
- */
-#define MPL_LOG_ALWAYS_FATAL_IF(cond, ...) \
- ((CONDITION(cond)) \
- ? ((void)android_printAssert(#cond, MPL_LOG_TAG, __VA_ARGS__)) \
- : (void)0)
-
-#define MPL_LOG_ALWAYS_FATAL(...) \
- (((void)android_printAssert(NULL, MPL_LOG_TAG, __VA_ARGS__)))
-
-/*
- * Versions of MPL_LOG_ALWAYS_FATAL_IF and MPL_LOG_ALWAYS_FATAL that
- * are stripped out of release builds.
- */
-#if MPL_LOG_NDEBUG
-
-#define MPL_LOG_FATAL_IF(cond, ...) ((void)0)
-#define MPL_LOG_FATAL(...) ((void)0)
-
-#else
-
-#define MPL_LOG_FATAL_IF(cond, ...) MPL_LOG_ALWAYS_FATAL_IF(cond, __VA_ARGS__)
-#define MPL_LOG_FATAL(...) MPL_LOG_ALWAYS_FATAL(__VA_ARGS__)
-
-#endif
-
-/*
- * Assertion that generates a log message when the assertion fails.
- * Stripped out of release builds. Uses the current MPL_LOG_TAG.
- */
-#define MPL_LOG_ASSERT(cond, ...) MPL_LOG_FATAL_IF(!(cond), __VA_ARGS__)
-
-/* --------------------------------------------------------------------- */
-
-/*
- * Basic log message macro.
- *
- * Example:
- * MPL_LOG(MPL_LOG_WARN, NULL, "Failed with error %d", errno);
- *
- * The second argument may be NULL or "" to indicate the "global" tag.
- */
-#ifndef MPL_LOG
-#define MPL_LOG(priority, tag, ...) \
- MPL_LOG_PRI(priority, tag, __VA_ARGS__)
-#endif
-
-/*
- * Log macro that allows you to specify a number for the priority.
- */
-#ifndef MPL_LOG_PRI
-#ifdef ANDROID
-#define MPL_LOG_PRI(priority, tag, ...) \
- LOG(priority, tag, __VA_ARGS__)
-#elif defined __KERNEL__
-#define MPL_LOG_PRI(priority, tag, ...) \
- printk(MPL_##priority tag __VA_ARGS__)
-#else
-#define MPL_LOG_PRI(priority, tag, ...) \
- _MLPrintLog(MPL_##priority, tag, __VA_ARGS__)
-#endif
-#endif
-
-/*
- * Log macro that allows you to pass in a varargs ("args" is a va_list).
- */
-#ifndef MPL_LOG_PRI_VA
-#ifdef ANDROID
-#define MPL_LOG_PRI_VA(priority, tag, fmt, args) \
- android_vprintLog(priority, NULL, tag, fmt, args)
-#elif defined __KERNEL__
-#define MPL_LOG_PRI_VA(priority, tag, fmt, args) \
- vprintk(MPL_##priority tag fmt, args)
-#else
-#define MPL_LOG_PRI_VA(priority, tag, fmt, args) \
- _MLPrintVaLog(priority, NULL, tag, fmt, args)
-#endif
-#endif
-
-/* --------------------------------------------------------------------- */
-
-/*
- * ===========================================================================
- *
- * The stuff in the rest of this file should not be used directly.
- */
-
-#ifndef ANDROID
- int _MLPrintLog(int priority, const char *tag, const char *fmt,
- ...);
- int _MLPrintVaLog(int priority, const char *tag, const char *fmt,
- va_list args);
-/* Final implementation of actual writing to a character device */
- int _MLWriteLog(const char *buf, int buflen);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* _LIBS_CUTILS_MPL_LOG_H */
diff --git a/drivers/misc/mpu3050/mldl_cfg.c b/drivers/misc/mpu3050/mldl_cfg.c
deleted file mode 100755
index 6ce2c98..0000000
--- a/drivers/misc/mpu3050/mldl_cfg.c
+++ /dev/null
@@ -1,1742 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup MLDL
- *
- * @{
- * @file mldl_cfg.c
- * @brief The Motion Library Driver Layer.
- */
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#include <stddef.h>
-
-#include "mldl_cfg.h"
-#include "mpu.h"
-
-#include "mlsl.h"
-#include "mlos.h"
-
-#include "log.h"
-#include "mpu-accel.h"
-
-#undef MPL_LOG_TAG
-#define MPL_LOG_TAG "mldl_cfg:"
-
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-#ifdef M_HW
-#define SLEEP 0
-#define WAKE_UP 7
-#define RESET 1
-#define STANDBY 1
-#else
-/* licteral significance of all parameters used in MLDLPowerMgmtMPU */
-#define SLEEP 1
-#define WAKE_UP 0
-#define RESET 1
-#define STANDBY 1
-#endif
-
-/*---------------------*/
-/*- Prototypes. -*/
-/*---------------------*/
-
-/*----------------------*/
-/*- Static Functions. -*/
-/*----------------------*/
-
-static int dmp_stop(struct mldl_cfg *mldl_cfg, void *gyro_handle)
-{
- unsigned char userCtrlReg;
- int result;
-
- if (!mldl_cfg->dmp_is_running)
- return ML_SUCCESS;
-
- result = MLSLSerialRead(gyro_handle, mldl_cfg->addr,
- MPUREG_USER_CTRL, 1, &userCtrlReg);
- ERROR_CHECK(result);
- userCtrlReg = (userCtrlReg & (~BIT_FIFO_EN)) | BIT_FIFO_RST;
- userCtrlReg = (userCtrlReg & (~BIT_DMP_EN)) | BIT_DMP_RST;
-
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_USER_CTRL, userCtrlReg);
- ERROR_CHECK(result);
- mldl_cfg->dmp_is_running = 0;
-
- return result;
-
-}
-/**
- * @brief Starts the DMP running
- *
- * @return ML_SUCCESS or non-zero error code
- */
-static int dmp_start(struct mldl_cfg *pdata, void *mlsl_handle)
-{
- unsigned char userCtrlReg;
- int result;
-
- if (pdata->dmp_is_running == pdata->dmp_enable)
- return ML_SUCCESS;
-
- result = MLSLSerialRead(mlsl_handle, pdata->addr,
- MPUREG_USER_CTRL, 1, &userCtrlReg);
- ERROR_CHECK(result);
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_USER_CTRL,
- ((userCtrlReg & (~BIT_FIFO_EN))
- | BIT_FIFO_RST));
- ERROR_CHECK(result);
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_USER_CTRL, userCtrlReg);
- ERROR_CHECK(result);
-
- result = MLSLSerialRead(mlsl_handle, pdata->addr,
- MPUREG_USER_CTRL, 1, &userCtrlReg);
- ERROR_CHECK(result);
-
- if (pdata->dmp_enable)
- userCtrlReg |= BIT_DMP_EN;
- else
- userCtrlReg &= ~BIT_DMP_EN;
-
- if (pdata->fifo_enable)
- userCtrlReg |= BIT_FIFO_EN;
- else
- userCtrlReg &= ~BIT_FIFO_EN;
-
- userCtrlReg |= BIT_DMP_RST;
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_USER_CTRL, userCtrlReg);
- ERROR_CHECK(result);
- pdata->dmp_is_running = pdata->dmp_enable;
-
- return result;
-}
-
-/**
- * @brief enables/disables the I2C bypass to an external device
- * connected to MPU's secondary I2C bus.
- * @param enable
- * Non-zero to enable pass through.
- * @return ML_SUCCESS if successful, a non-zero error code otherwise.
- */
-static int MLDLSetI2CBypass(struct mldl_cfg *mldl_cfg,
- void *mlsl_handle,
- unsigned char enable)
-{
- unsigned char b;
- int result;
-
- if ((mldl_cfg->gyro_is_bypassed && enable) ||
- (!mldl_cfg->gyro_is_bypassed && !enable))
- return ML_SUCCESS;
-
- /*---- get current 'USER_CTRL' into b ----*/
- result = MLSLSerialRead(mlsl_handle, mldl_cfg->addr,
- MPUREG_USER_CTRL, 1, &b);
- ERROR_CHECK(result);
-
- b &= ~BIT_AUX_IF_EN;
-
- if (!enable) {
- result = MLSLSerialWriteSingle(mlsl_handle, mldl_cfg->addr,
- MPUREG_USER_CTRL,
- (b | BIT_AUX_IF_EN));
- ERROR_CHECK(result);
- } else {
- /* Coming out of I2C is tricky due to several erratta. Do not
- * modify this algorithm
- */
- /*
- * 1) wait for the right time and send the command to change
- * the aux i2c slave address to an invalid address that will
- * get nack'ed
- *
- * 0x00 is broadcast. 0x7F is unlikely to be used by any aux.
- */
- result = MLSLSerialWriteSingle(mlsl_handle, mldl_cfg->addr,
- MPUREG_AUX_SLV_ADDR, 0x7F);
- ERROR_CHECK(result);
- /*
- * 2) wait enough time for a nack to occur, then go into
- * bypass mode:
- */
- MLOSSleep(2);
- result = MLSLSerialWriteSingle(mlsl_handle, mldl_cfg->addr,
- MPUREG_USER_CTRL, (b));
- ERROR_CHECK(result);
- /*
- * 3) wait for up to one MPU cycle then restore the slave
- * address
- */
- MLOSSleep(SAMPLING_PERIOD_US(mldl_cfg) / 1000);
- result = MLSLSerialWriteSingle(mlsl_handle, mldl_cfg->addr,
- MPUREG_AUX_SLV_ADDR,
- mldl_cfg->pdata->
- accel.address);
- ERROR_CHECK(result);
-
- /*
- * 4) reset the ime interface
- */
-#ifdef M_HW
- result = MLSLSerialWriteSingle(mlsl_handle, mldl_cfg->addr,
- MPUREG_USER_CTRL,
- (b | BIT_I2C_MST_RST));
-
-#else
- result = MLSLSerialWriteSingle(mlsl_handle, mldl_cfg->addr,
- MPUREG_USER_CTRL,
- (b | BIT_AUX_IF_RST));
-#endif
- ERROR_CHECK(result);
- MLOSSleep(2);
- }
- mldl_cfg->gyro_is_bypassed = enable;
-
- return result;
-}
-
-struct tsProdRevMap {
- unsigned char siliconRev;
- unsigned short sensTrim;
-};
-
-#define NUM_OF_PROD_REVS (DIM(prodRevsMap))
-
-/* NOTE : 'npp' is a non production part */
-#ifdef M_HW
-#define OLDEST_PROD_REV_SUPPORTED 1
-static struct tsProdRevMap prodRevsMap[] = {
- {0, 0},
- {MPU_SILICON_REV_A1, 131}, /* 1 A1 (npp) */
- {MPU_SILICON_REV_A1, 131}, /* 2 A1 (npp) */
- {MPU_SILICON_REV_A1, 131}, /* 3 A1 (npp) */
- {MPU_SILICON_REV_A1, 131}, /* 4 A1 (npp) */
- {MPU_SILICON_REV_A1, 131}, /* 5 A1 (npp) */
- {MPU_SILICON_REV_A1, 131}, /* 6 A1 (npp) */
- {MPU_SILICON_REV_A1, 131}, /* 7 A1 (npp) */
- {MPU_SILICON_REV_A1, 131}, /* 8 A1 (npp) */
-};
-
-#else /* !M_HW */
-#define OLDEST_PROD_REV_SUPPORTED 11
-
-static struct tsProdRevMap prodRevsMap[] = {
- {0, 0},
- {MPU_SILICON_REV_A4, 131}, /* 1 A? OBSOLETED */
- {MPU_SILICON_REV_A4, 131}, /* 2 | */
- {MPU_SILICON_REV_A4, 131}, /* 3 V */
- {MPU_SILICON_REV_A4, 131}, /* 4 */
- {MPU_SILICON_REV_A4, 131}, /* 5 */
- {MPU_SILICON_REV_A4, 131}, /* 6 */
- {MPU_SILICON_REV_A4, 131}, /* 7 */
- {MPU_SILICON_REV_A4, 131}, /* 8 */
- {MPU_SILICON_REV_A4, 131}, /* 9 */
- {MPU_SILICON_REV_A4, 131}, /* 10 */
- {MPU_SILICON_REV_B1, 131}, /* 11 B1 */
- {MPU_SILICON_REV_B1, 131}, /* 12 | */
- {MPU_SILICON_REV_B1, 131}, /* 13 V */
- {MPU_SILICON_REV_B1, 131}, /* 14 B4 */
- {MPU_SILICON_REV_B4, 131}, /* 15 | */
- {MPU_SILICON_REV_B4, 131}, /* 16 V */
- {MPU_SILICON_REV_B4, 131}, /* 17 */
- {MPU_SILICON_REV_B4, 131}, /* 18 */
- {MPU_SILICON_REV_B4, 115}, /* 19 */
- {MPU_SILICON_REV_B4, 115}, /* 20 */
- {MPU_SILICON_REV_B6, 131}, /* 21 B6 (B6/A9) */
- {MPU_SILICON_REV_B4, 115}, /* 22 B4 (B7/A10) */
- {MPU_SILICON_REV_B6, 0}, /* 23 B6 (npp) */
- {MPU_SILICON_REV_B6, 0}, /* 24 | (npp) */
- {MPU_SILICON_REV_B6, 0}, /* 25 V (npp) */
- {MPU_SILICON_REV_B6, 131}, /* 26 (B6/A11) */
-};
-#endif /* !M_HW */
-
-/**
- * @internal
- * @brief Get the silicon revision ID from OTP.
- * The silicon revision number is in read from OTP bank 0,
- * ADDR6[7:2]. The corresponding ID is retrieved by lookup
- * in a map.
- * @return The silicon revision ID (0 on error).
- */
-static int MLDLGetSiliconRev(struct mldl_cfg *pdata,
- void *mlsl_handle)
-{
- int result;
- unsigned char index = 0x00;
- unsigned char bank =
- (BIT_PRFTCH_EN | BIT_CFG_USER_BANK | MPU_MEM_OTP_BANK_0);
- unsigned short memAddr = ((bank << 8) | 0x06);
-
- result = MLSLSerialReadMem(mlsl_handle, pdata->addr,
- memAddr, 1, &index);
- ERROR_CHECK(result)
- if (result)
- return result;
- index >>= 2;
-
- /* clean the prefetch and cfg user bank bits */
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_BANK_SEL, 0);
- ERROR_CHECK(result)
- if (result)
- return result;
-
- if (index < OLDEST_PROD_REV_SUPPORTED || NUM_OF_PROD_REVS <= index) {
- pdata->silicon_revision = 0;
- pdata->trim = 0;
- MPL_LOGE("Unsupported Product Revision Detected : %d\n", index);
- return ML_ERROR_INVALID_MODULE;
- }
-
- pdata->silicon_revision = prodRevsMap[index].siliconRev;
- pdata->trim = prodRevsMap[index].sensTrim;
-
- if (pdata->trim == 0) {
- MPL_LOGE("sensitivity trim is 0"
- " - unsupported non production part.\n");
- return ML_ERROR_INVALID_MODULE;
- }
-
- return result;
-}
-
-/**
- * @brief Enable/Disable the use MPU's VDDIO level shifters.
- * When enabled the voltage interface with AUX or other external
- * accelerometer is using Vlogic instead of VDD (supply).
- *
- * @note Must be called after MLSerialOpen().
- * @note Typically be called before MLDmpOpen().
- * If called after MLDmpOpen(), must be followed by a call to
- * MLDLApplyLevelShifterBit() to write the setting on the hw.
- *
- * @param[in] enable
- * 1 to enable, 0 to disable
- *
- * @return ML_SUCCESS if successfull, a non-zero error code otherwise.
-**/
-static int MLDLSetLevelShifterBit(struct mldl_cfg *pdata,
- void *mlsl_handle,
- unsigned char enable)
-{
-#ifndef M_HW
- int result;
- unsigned char reg;
- unsigned char mask;
- unsigned char regval;
-
- if (0 == pdata->silicon_revision)
- return ML_ERROR_INVALID_PARAMETER;
-
- /*-- on parts before B6 the VDDIO bit is bit 7 of ACCEL_BURST_ADDR --
- NOTE: this is incompatible with ST accelerometers where the VDDIO
- bit MUST be set to enable ST's internal logic to autoincrement
- the register address on burst reads --*/
- if ((pdata->silicon_revision & 0xf) < MPU_SILICON_REV_B6) {
- reg = MPUREG_ACCEL_BURST_ADDR;
- mask = 0x80;
- } else {
- /*-- on B6 parts the VDDIO bit was moved to FIFO_EN2 =>
- the mask is always 0x04 --*/
- reg = MPUREG_FIFO_EN2;
- mask = 0x04;
- }
-
- result = MLSLSerialRead(mlsl_handle, pdata->addr, reg, 1, &regval);
- if (result)
- return result;
-
- if (enable)
- regval |= mask;
- else
- regval &= ~mask;
-
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->addr, reg, regval);
-
- return result;
-#else
- return ML_SUCCESS;
-#endif
-}
-
-
-#ifdef M_HW
-/**
- * @internal
- * @param reset 1 to reset hardware
- */
-static tMLError mpu60xx_pwr_mgmt(struct mldl_cfg *pdata,
- void *mlsl_handle,
- unsigned char reset,
- unsigned char powerselection)
-{
- unsigned char b;
- tMLError result;
-
- if (powerselection < 0 || powerselection > 7)
- return ML_ERROR_INVALID_PARAMETER;
-
- result =
- MLSLSerialRead(mlsl_handle, pdata->addr, MPUREG_PWR_MGMT_1, 1,
- &b);
- ERROR_CHECK(result);
-
- b &= ~(BITS_PWRSEL);
-
- if (reset) {
- /* Current sillicon has an errata where the reset will get
- * nacked. Ignore the error code for now. */
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_PWR_MGM, b | BIT_H_RESET);
-#define M_HW_RESET_ERRATTA
-#ifndef M_HW_RESET_ERRATTA
- ERROR_CHECK(result);
-#else
- MLOSSleep(50);
-#endif
- }
-
- b |= (powerselection << 4);
-
- if (b & BITS_PWRSEL)
- pdata->gyro_is_suspended = FALSE;
- else
- pdata->gyro_is_suspended = TRUE;
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_PWR_MGM, b);
- ERROR_CHECK(result);
-
- return ML_SUCCESS;
-}
-
-/**
- * @internal
- */
-static tMLError MLDLStandByGyros(struct mldl_cfg *pdata,
- void *mlsl_handle,
- unsigned char disable_gx,
- unsigned char disable_gy,
- unsigned char disable_gz)
-{
- unsigned char b;
- tMLError result;
-
- result =
- MLSLSerialRead(mlsl_handle, pdata->addr, MPUREG_PWR_MGMT_2, 1,
- &b);
- ERROR_CHECK(result);
-
- b &= ~(BIT_STBY_XG | BIT_STBY_YG | BIT_STBY_ZG);
- b |= (disable_gx << 2 | disable_gy << 1 | disable_gz);
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_PWR_MGMT_2, b);
- ERROR_CHECK(result);
-
- return ML_SUCCESS;
-}
-
-/**
- * @internal
- */
-static tMLError MLDLStandByAccels(struct mldl_cfg *pdata,
- void *mlsl_handle,
- unsigned char disable_ax,
- unsigned char disable_ay,
- unsigned char disable_az)
-{
- unsigned char b;
- tMLError result;
-
- result =
- MLSLSerialRead(mlsl_handle, pdata->addr, MPUREG_PWR_MGMT_2, 1,
- &b);
- ERROR_CHECK(result);
-
- b &= ~(BIT_STBY_XA | BIT_STBY_YA | BIT_STBY_ZA);
- b |= (disable_ax << 2 | disable_ay << 1 | disable_az);
-
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_PWR_MGMT_2, b);
- ERROR_CHECK(result);
-
- return ML_SUCCESS;
-}
-
-#else /* ! M_HW */
-
-/**
- * @internal
- * @brief This function controls the power management on the MPU device.
- * The entire chip can be put to low power sleep mode, or individual
- * gyros can be turned on/off.
- *
- * Putting the device into sleep mode depending upon the changing needs
- * of the associated applications is a recommended method for reducing
- * power consuption. It is a safe opearation in that sleep/wake up of
- * gyros while running will not result in any interruption of data.
- *
- * Although it is entirely allowed to put the device into full sleep
- * while running the DMP, it is not recomended because it will disrupt
- * the ongoing calculations carried on inside the DMP and consequently
- * the sensor fusion algorithm. Furthermore, while in sleep mode
- * read & write operation from the app processor on both registers and
- * memory are disabled and can only regained by restoring the MPU in
- * normal power mode.
- * Disabling any of the gyro axis will reduce the associated power
- * consuption from the PLL but will not stop the DMP from running
- * state.
- *
- * @param reset
- * Non-zero to reset the device. Note that this setting
- * is volatile and the corresponding register bit will
- * clear itself right after being applied.
- * @param sleep
- * Non-zero to put device into full sleep.
- * @param disable_gx
- * Non-zero to disable gyro X.
- * @param disable_gy
- * Non-zero to disable gyro Y.
- * @param disable_gz
- * Non-zero to disable gyro Z.
- *
- * @return ML_SUCCESS if successfull; a non-zero error code otherwise.
- */
-static int MLDLPowerMgmtMPU(struct mldl_cfg *pdata,
- void *mlsl_handle,
- unsigned char reset,
- unsigned char sleep,
- unsigned char disable_gx,
- unsigned char disable_gy,
- unsigned char disable_gz)
-{
- unsigned char b;
- int result;
-
- result =
- MLSLSerialRead(mlsl_handle, pdata->addr, MPUREG_PWR_MGM, 1,
- &b);
- ERROR_CHECK(result);
-
- /* If we are awake, we need to put it in bypass before resetting */
- if ((!(b & BIT_SLEEP)) && reset)
- result = MLDLSetI2CBypass(pdata, mlsl_handle, 1);
-
- /* If we are awake, we need stop the dmp sleeping */
- if ((!(b & BIT_SLEEP)) && sleep)
- dmp_stop(pdata, mlsl_handle);
-
- /* Reset if requested */
- if (reset) {
- MPL_LOGV("Reset MPU3050\n");
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_PWR_MGM, b | BIT_H_RESET);
- ERROR_CHECK(result);
- MLOSSleep(5);
- pdata->gyro_needs_reset = FALSE;
- /* Some chips are awake after reset and some are asleep,
- * check the status */
- result = MLSLSerialRead(mlsl_handle, pdata->addr,
- MPUREG_PWR_MGM, 1, &b);
- ERROR_CHECK(result);
- }
-
- /* Update the suspended state just in case we return early */
- if (b & BIT_SLEEP)
- pdata->gyro_is_suspended = TRUE;
- else
- pdata->gyro_is_suspended = FALSE;
-
- /* if power status match requested, nothing else's left to do */
- if ((b & (BIT_SLEEP | BIT_STBY_XG | BIT_STBY_YG | BIT_STBY_ZG)) ==
- (((sleep != 0) * BIT_SLEEP) |
- ((disable_gx != 0) * BIT_STBY_XG) |
- ((disable_gy != 0) * BIT_STBY_YG) |
- ((disable_gz != 0) * BIT_STBY_ZG))) {
- return ML_SUCCESS;
- }
-
- /*
- * This specific transition between states needs to be reinterpreted:
- * (1,1,1,1) -> (0,1,1,1) has to become
- * (1,1,1,1) -> (1,0,0,0) -> (0,1,1,1)
- * where
- * (1,1,1,1) is (sleep=1,disable_gx=1,disable_gy=1,disable_gz=1)
- */
- if ((b & (BIT_SLEEP | BIT_STBY_XG | BIT_STBY_YG | BIT_STBY_ZG)) ==
- (BIT_SLEEP | BIT_STBY_XG | BIT_STBY_YG | BIT_STBY_ZG)
- && ((!sleep) && disable_gx && disable_gy && disable_gz)) {
- result = MLDLPowerMgmtMPU(pdata, mlsl_handle, 0, 1, 0, 0, 0);
- if (result)
- return result;
- b |= BIT_SLEEP;
- b &= ~(BIT_STBY_XG | BIT_STBY_YG | BIT_STBY_ZG);
- }
-
- if ((b & BIT_SLEEP) != ((sleep != 0) * BIT_SLEEP)) {
- if (sleep) {
- result = MLDLSetI2CBypass(pdata, mlsl_handle, 1);
- ERROR_CHECK(result);
- b |= BIT_SLEEP;
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_PWR_MGM, b);
- ERROR_CHECK(result);
- pdata->gyro_is_suspended = TRUE;
- } else {
- b &= ~BIT_SLEEP;
- result =
- MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_PWR_MGM, b);
- ERROR_CHECK(result);
- pdata->gyro_is_suspended = FALSE;
- MLOSSleep(5);
- }
- }
- /*---
- WORKAROUND FOR PUTTING GYRO AXIS in STAND-BY MODE
- 1) put one axis at a time in stand-by
- ---*/
- if ((b & BIT_STBY_XG) != ((disable_gx != 0) * BIT_STBY_XG)) {
- b ^= BIT_STBY_XG;
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_PWR_MGM, b);
- ERROR_CHECK(result);
- }
- if ((b & BIT_STBY_YG) != ((disable_gy != 0) * BIT_STBY_YG)) {
- b ^= BIT_STBY_YG;
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_PWR_MGM, b);
- ERROR_CHECK(result);
- }
- if ((b & BIT_STBY_ZG) != ((disable_gz != 0) * BIT_STBY_ZG)) {
- b ^= BIT_STBY_ZG;
- result = MLSLSerialWriteSingle(mlsl_handle, pdata->addr,
- MPUREG_PWR_MGM, b);
- ERROR_CHECK(result);
- }
-
- return ML_SUCCESS;
-}
-#endif /* M_HW */
-
-
-void mpu_print_cfg(struct mldl_cfg *mldl_cfg)
-{
- struct mpu3050_platform_data *pdata = mldl_cfg->pdata;
- struct ext_slave_platform_data *accel = &mldl_cfg->pdata->accel;
- struct ext_slave_platform_data *compass =
- &mldl_cfg->pdata->compass;
- struct ext_slave_platform_data *pressure =
- &mldl_cfg->pdata->pressure;
-
- MPL_LOGD("mldl_cfg.addr = %02x\n", mldl_cfg->addr);
- MPL_LOGD("mldl_cfg.int_config = %02x\n",
- mldl_cfg->int_config);
- MPL_LOGD("mldl_cfg.ext_sync = %02x\n", mldl_cfg->ext_sync);
- MPL_LOGD("mldl_cfg.full_scale = %02x\n",
- mldl_cfg->full_scale);
- MPL_LOGD("mldl_cfg.lpf = %02x\n", mldl_cfg->lpf);
- MPL_LOGD("mldl_cfg.clk_src = %02x\n", mldl_cfg->clk_src);
- MPL_LOGD("mldl_cfg.divider = %02x\n", mldl_cfg->divider);
- MPL_LOGD("mldl_cfg.dmp_enable = %02x\n",
- mldl_cfg->dmp_enable);
- MPL_LOGD("mldl_cfg.fifo_enable = %02x\n",
- mldl_cfg->fifo_enable);
- MPL_LOGD("mldl_cfg.dmp_cfg1 = %02x\n", mldl_cfg->dmp_cfg1);
- MPL_LOGD("mldl_cfg.dmp_cfg2 = %02x\n", mldl_cfg->dmp_cfg2);
- MPL_LOGD("mldl_cfg.offset_tc[0] = %02x\n",
- mldl_cfg->offset_tc[0]);
- MPL_LOGD("mldl_cfg.offset_tc[1] = %02x\n",
- mldl_cfg->offset_tc[1]);
- MPL_LOGD("mldl_cfg.offset_tc[2] = %02x\n",
- mldl_cfg->offset_tc[2]);
- MPL_LOGD("mldl_cfg.silicon_revision = %02x\n",
- mldl_cfg->silicon_revision);
- MPL_LOGD("mldl_cfg.product_id = %02x\n",
- mldl_cfg->product_id);
- MPL_LOGD("mldl_cfg.trim = %02x\n", mldl_cfg->trim);
- MPL_LOGD("mldl_cfg.requested_sensors= %04lx\n",
- mldl_cfg->requested_sensors);
-
- if (mldl_cfg->accel) {
- MPL_LOGD("slave_accel->suspend = %02x\n",
- (int) mldl_cfg->accel->suspend);
- MPL_LOGD("slave_accel->resume = %02x\n",
- (int) mldl_cfg->accel->resume);
- MPL_LOGD("slave_accel->read = %02x\n",
- (int) mldl_cfg->accel->read);
- MPL_LOGD("slave_accel->type = %02x\n",
- mldl_cfg->accel->type);
- MPL_LOGD("slave_accel->reg = %02x\n",
- mldl_cfg->accel->reg);
- MPL_LOGD("slave_accel->len = %02x\n",
- mldl_cfg->accel->len);
- MPL_LOGD("slave_accel->endian = %02x\n",
- mldl_cfg->accel->endian);
- MPL_LOGD("slave_accel->range.mantissa= %02lx\n",
- mldl_cfg->accel->range.mantissa);
- MPL_LOGD("slave_accel->range.fraction= %02lx\n",
- mldl_cfg->accel->range.fraction);
- } else {
- MPL_LOGD("slave_accel = NULL\n");
- }
-
- if (mldl_cfg->compass) {
- MPL_LOGD("slave_compass->suspend = %02x\n",
- (int) mldl_cfg->compass->suspend);
- MPL_LOGD("slave_compass->resume = %02x\n",
- (int) mldl_cfg->compass->resume);
- MPL_LOGD("slave_compass->read = %02x\n",
- (int) mldl_cfg->compass->read);
- MPL_LOGD("slave_compass->type = %02x\n",
- mldl_cfg->compass->type);
- MPL_LOGD("slave_compass->reg = %02x\n",
- mldl_cfg->compass->reg);
- MPL_LOGD("slave_compass->len = %02x\n",
- mldl_cfg->compass->len);
- MPL_LOGD("slave_compass->endian = %02x\n",
- mldl_cfg->compass->endian);
- MPL_LOGD("slave_compass->range.mantissa= %02lx\n",
- mldl_cfg->compass->range.mantissa);
- MPL_LOGD("slave_compass->range.fraction= %02lx\n",
- mldl_cfg->compass->range.fraction);
-
- } else {
- MPL_LOGD("slave_compass = NULL\n");
- }
-
- if (mldl_cfg->pressure) {
- MPL_LOGD("slave_pressure->suspend = %02x\n",
- (int) mldl_cfg->pressure->suspend);
- MPL_LOGD("slave_pressure->resume = %02x\n",
- (int) mldl_cfg->pressure->resume);
- MPL_LOGD("slave_pressure->read = %02x\n",
- (int) mldl_cfg->pressure->read);
- MPL_LOGD("slave_pressure->type = %02x\n",
- mldl_cfg->pressure->type);
- MPL_LOGD("slave_pressure->reg = %02x\n",
- mldl_cfg->pressure->reg);
- MPL_LOGD("slave_pressure->len = %02x\n",
- mldl_cfg->pressure->len);
- MPL_LOGD("slave_pressure->endian = %02x\n",
- mldl_cfg->pressure->endian);
- MPL_LOGD("slave_pressure->range.mantissa= %02lx\n",
- mldl_cfg->pressure->range.mantissa);
- MPL_LOGD("slave_pressure->range.fraction= %02lx\n",
- mldl_cfg->pressure->range.fraction);
-
- } else {
- MPL_LOGD("slave_pressure = NULL\n");
- }
- MPL_LOGD("accel->get_slave_descr = %x\n",
- (unsigned int) accel->get_slave_descr);
- MPL_LOGD("accel->irq = %02x\n", accel->irq);
- MPL_LOGD("accel->adapt_num = %02x\n", accel->adapt_num);
- MPL_LOGD("accel->bus = %02x\n", accel->bus);
- MPL_LOGD("accel->address = %02x\n", accel->address);
- MPL_LOGD("accel->orientation =\n"
- " %2d %2d %2d\n"
- " %2d %2d %2d\n"
- " %2d %2d %2d\n",
- accel->orientation[0], accel->orientation[1],
- accel->orientation[2], accel->orientation[3],
- accel->orientation[4], accel->orientation[5],
- accel->orientation[6], accel->orientation[7],
- accel->orientation[8]);
- MPL_LOGD("compass->get_slave_descr = %x\n",
- (unsigned int) compass->get_slave_descr);
- MPL_LOGD("compass->irq = %02x\n", compass->irq);
- MPL_LOGD("compass->adapt_num = %02x\n", compass->adapt_num);
- MPL_LOGD("compass->bus = %02x\n", compass->bus);
- MPL_LOGD("compass->address = %02x\n", compass->address);
- MPL_LOGD("compass->orientation =\n"
- " %2d %2d %2d\n"
- " %2d %2d %2d\n"
- " %2d %2d %2d\n",
- compass->orientation[0], compass->orientation[1],
- compass->orientation[2], compass->orientation[3],
- compass->orientation[4], compass->orientation[5],
- compass->orientation[6], compass->orientation[7],
- compass->orientation[8]);
- MPL_LOGD("pressure->get_slave_descr = %x\n",
- (unsigned int) pressure->get_slave_descr);
- MPL_LOGD("pressure->irq = %02x\n", pressure->irq);
- MPL_LOGD("pressure->adapt_num = %02x\n", pressure->adapt_num);
- MPL_LOGD("pressure->bus = %02x\n", pressure->bus);
- MPL_LOGD("pressure->address = %02x\n", pressure->address);
- MPL_LOGD("pressure->orientation =\n"
- " %2d %2d %2d\n"
- " %2d %2d %2d\n"
- " %2d %2d %2d\n",
- pressure->orientation[0], pressure->orientation[1],
- pressure->orientation[2], pressure->orientation[3],
- pressure->orientation[4], pressure->orientation[5],
- pressure->orientation[6], pressure->orientation[7],
- pressure->orientation[8]);
-
- MPL_LOGD("pdata->int_config = %02x\n", pdata->int_config);
- MPL_LOGD("pdata->level_shifter = %02x\n",
- pdata->level_shifter);
- MPL_LOGD("pdata->orientation =\n"
- " %2d %2d %2d\n"
- " %2d %2d %2d\n"
- " %2d %2d %2d\n",
- pdata->orientation[0], pdata->orientation[1],
- pdata->orientation[2], pdata->orientation[3],
- pdata->orientation[4], pdata->orientation[5],
- pdata->orientation[6], pdata->orientation[7],
- pdata->orientation[8]);
-
- MPL_LOGD("Struct sizes: mldl_cfg: %d, "
- "ext_slave_descr:%d, "
- "mpu3050_platform_data:%d: RamOffset: %d\n",
- sizeof(struct mldl_cfg), sizeof(struct ext_slave_descr),
- sizeof(struct mpu3050_platform_data),
- offsetof(struct mldl_cfg, ram));
-}
-
-int mpu_set_slave(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- struct ext_slave_descr *slave,
- struct ext_slave_platform_data *slave_pdata)
-{
- int result;
- unsigned char reg;
- unsigned char slave_reg;
- unsigned char slave_len;
- unsigned char slave_endian;
- unsigned char slave_address;
-
- result = MLDLSetI2CBypass(mldl_cfg, gyro_handle, TRUE);
-
- if (NULL == slave || NULL == slave_pdata) {
- slave_reg = 0;
- slave_len = 0;
- slave_endian = 0;
- slave_address = 0;
- } else {
- slave_reg = slave->reg;
- slave_len = slave->len;
- slave_endian = slave->endian;
- slave_address = slave_pdata->address;
- }
-
- /* Address */
- result = MLSLSerialWriteSingle(gyro_handle,
- mldl_cfg->addr,
- MPUREG_AUX_SLV_ADDR,
- slave_address);
- ERROR_CHECK(result);
- /* Register */
- result = MLSLSerialRead(gyro_handle, mldl_cfg->addr,
- MPUREG_ACCEL_BURST_ADDR, 1,
- &reg);
- ERROR_CHECK(result);
- reg = ((reg & 0x80) | slave_reg);
- result = MLSLSerialWriteSingle(gyro_handle,
- mldl_cfg->addr,
- MPUREG_ACCEL_BURST_ADDR,
- reg);
- ERROR_CHECK(result);
-
-#ifdef M_HW
- /* Length, byte swapping, grouping & enable */
- if (slave_len > BITS_SLV_LENG) {
- MPL_LOGW("Limiting slave burst read length to "
- "the allowed maximum (15B, req. %d)\n",
- slave_len);
- slave_len = BITS_SLV_LENG;
- }
- reg = slave_len;
- if (slave_endian == EXT_SLAVE_LITTLE_ENDIAN)
- reg |= BIT_SLV_BYTE_SW;
- reg |= BIT_SLV_GRP;
- reg |= BIT_SLV_ENABLE;
-
- result = MLSLSerialWriteSingle(gyro_handle,
- mldl_cfg->addr,
- MPUREG_I2C_SLV0_CTRL,
- reg);
-#else
- /* Length */
- result = MLSLSerialRead(gyro_handle, mldl_cfg->addr,
- MPUREG_USER_CTRL, 1, &reg);
- ERROR_CHECK(result);
- reg = (reg & ~BIT_AUX_RD_LENG);
- result = MLSLSerialWriteSingle(gyro_handle,
- mldl_cfg->addr,
- MPUREG_USER_CTRL, reg);
- ERROR_CHECK(result);
-#endif
-
- if (slave_address) {
- result = MLDLSetI2CBypass(mldl_cfg, gyro_handle, FALSE);
- ERROR_CHECK(result);
- }
- return result;
-}
-
-/**
- * Check to see if the gyro was reset by testing a couple of registers known
- * to change on reset.
- *
- * @param mldl_cfg mldl configuration structure
- * @param gyro_handle handle used to communicate with the gyro
- *
- * @return ML_SUCCESS or non-zero error code
- */
-static int mpu_was_reset(struct mldl_cfg *mldl_cfg, void *gyro_handle)
-{
- int result = ML_SUCCESS;
- unsigned char reg;
-
- result = MLSLSerialRead(gyro_handle, mldl_cfg->addr,
- MPUREG_DMP_CFG_2, 1, &reg);
- ERROR_CHECK(result);
-
- if (mldl_cfg->dmp_cfg2 != reg)
- return TRUE;
-
- if (0 != mldl_cfg->dmp_cfg1)
- return FALSE;
-
- result = MLSLSerialRead(gyro_handle, mldl_cfg->addr,
- MPUREG_SMPLRT_DIV, 1, &reg);
- ERROR_CHECK(result);
- if (reg != mldl_cfg->divider)
- return TRUE;
-
- if (0 != mldl_cfg->divider)
- return FALSE;
-
- /* Inconclusive assume it was reset */
- return TRUE;
-}
-
-static int gyro_resume(struct mldl_cfg *mldl_cfg, void *gyro_handle)
-{
- int result;
- int ii;
- int jj;
- unsigned char reg;
- unsigned char regs[7];
-
- /* Wake up the part */
-#ifdef M_HW
- result = mpu60xx_pwr_mgmt(mldl_cfg, gyro_handle, RESET,
- WAKE_UP);
- ERROR_CHECK(result);
-
- /* Configure the MPU */
- result = MLDLSetI2CBypass(mldl_cfg, gyro_handle, 1);
- ERROR_CHECK(result);
- /* setting int_config with the propert flag BIT_BYPASS_EN
- should be done by the setup functions */
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_INT_PIN_CFG,
- (mldl_cfg->pdata->int_config |
- BIT_BYPASS_EN));
- ERROR_CHECK(result);
- /* temporary: masking out higher bits to avoid switching
- intelligence */
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_INT_ENABLE,
- (mldl_cfg->int_config));
- ERROR_CHECK(result);
-#else
- result = MLDLPowerMgmtMPU(mldl_cfg, gyro_handle, 0, 0,
- mldl_cfg->gyro_power & BIT_STBY_XG,
- mldl_cfg->gyro_power & BIT_STBY_YG,
- mldl_cfg->gyro_power & BIT_STBY_ZG);
-
- if (!mldl_cfg->gyro_needs_reset &&
- !mpu_was_reset(mldl_cfg, gyro_handle)) {
- return ML_SUCCESS;
- }
-
- result = MLDLPowerMgmtMPU(mldl_cfg, gyro_handle, 1, 0,
- mldl_cfg->gyro_power & BIT_STBY_XG,
- mldl_cfg->gyro_power & BIT_STBY_YG,
- mldl_cfg->gyro_power & BIT_STBY_ZG);
- ERROR_CHECK(result);
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_INT_CFG,
- (mldl_cfg->int_config |
- mldl_cfg->pdata->int_config));
- ERROR_CHECK(result);
-#endif
-
- result = MLSLSerialRead(gyro_handle, mldl_cfg->addr,
- MPUREG_PWR_MGM, 1, &reg);
- ERROR_CHECK(result);
- reg &= ~BITS_CLKSEL;
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_PWR_MGM,
- mldl_cfg->clk_src | reg);
- ERROR_CHECK(result);
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_SMPLRT_DIV,
- mldl_cfg->divider);
- ERROR_CHECK(result);
-
-#ifdef M_HW
- reg = DLPF_FS_SYNC_VALUE(0, mldl_cfg->full_scale, 0);
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_GYRO_CONFIG, reg);
- reg = DLPF_FS_SYNC_VALUE(mldl_cfg->ext_sync, 0, mldl_cfg->lpf);
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_CONFIG, reg);
-#else
- reg = DLPF_FS_SYNC_VALUE(mldl_cfg->ext_sync,
- mldl_cfg->full_scale, mldl_cfg->lpf);
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_DLPF_FS_SYNC, reg);
-#endif
- ERROR_CHECK(result);
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_DMP_CFG_1,
- mldl_cfg->dmp_cfg1);
- ERROR_CHECK(result);
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_DMP_CFG_2,
- mldl_cfg->dmp_cfg2);
- ERROR_CHECK(result);
-
- /* Write and verify memory */
- for (ii = 0; ii < MPU_MEM_NUM_RAM_BANKS; ii++) {
- unsigned char read[MPU_MEM_BANK_SIZE];
-
- result = MLSLSerialWriteMem(gyro_handle,
- mldl_cfg->addr,
- ((ii << 8) | 0x00),
- MPU_MEM_BANK_SIZE,
- mldl_cfg->ram[ii]);
- ERROR_CHECK(result);
- result = MLSLSerialReadMem(gyro_handle, mldl_cfg->addr,
- ((ii << 8) | 0x00),
- MPU_MEM_BANK_SIZE, read);
- ERROR_CHECK(result);
-
-#ifdef M_HW
-#define ML_SKIP_CHECK 38
-#else
-#define ML_SKIP_CHECK 20
-#endif
- for (jj = 0; jj < MPU_MEM_BANK_SIZE; jj++) {
- /* skip the register memory locations */
- if (ii == 0 && jj < ML_SKIP_CHECK)
- continue;
- if (mldl_cfg->ram[ii][jj] != read[jj]) {
- result = ML_ERROR_SERIAL_WRITE;
- break;
- }
- }
- ERROR_CHECK(result);
- }
-
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_XG_OFFS_TC,
- mldl_cfg->offset_tc[0]);
- ERROR_CHECK(result);
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_YG_OFFS_TC,
- mldl_cfg->offset_tc[1]);
- ERROR_CHECK(result);
- result = MLSLSerialWriteSingle(gyro_handle, mldl_cfg->addr,
- MPUREG_ZG_OFFS_TC,
- mldl_cfg->offset_tc[2]);
- ERROR_CHECK(result);
-
- regs[0] = MPUREG_X_OFFS_USRH;
- for (ii = 0; ii < DIM(mldl_cfg->offset); ii++) {
- regs[1 + ii * 2] =
- (unsigned char)(mldl_cfg->offset[ii] >> 8)
- & 0xff;
- regs[1 + ii * 2 + 1] =
- (unsigned char)(mldl_cfg->offset[ii] & 0xff);
- }
- result = MLSLSerialWrite(gyro_handle, mldl_cfg->addr, 7, regs);
- ERROR_CHECK(result);
-
- /* Configure slaves */
- result = MLDLSetLevelShifterBit(mldl_cfg, gyro_handle,
- mldl_cfg->pdata->level_shifter);
- ERROR_CHECK(result);
- return result;
-}
-/*******************************************************************************
- *******************************************************************************
- * Exported functions
- *******************************************************************************
- ******************************************************************************/
-
-/**
- * Initializes the pdata structure to defaults.
- *
- * Opens the device to read silicon revision, product id and whoami.
- *
- * @param mldl_cfg
- * The internal device configuration data structure.
- * @param mlsl_handle
- * The serial communication handle.
- *
- * @return ML_SUCCESS if silicon revision, product id and woami are supported
- * by this software.
- */
-int mpu3050_open(struct mldl_cfg *mldl_cfg,
- void *mlsl_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle)
-{
- int result;
- /* Default is Logic HIGH, pushpull, latch disabled, anyread to clear */
- mldl_cfg->int_config = BIT_INT_ANYRD_2CLEAR | BIT_DMP_INT_EN;
- mldl_cfg->clk_src = MPU_CLK_SEL_PLLGYROZ;
- mldl_cfg->lpf = MPU_FILTER_42HZ;
- mldl_cfg->full_scale = MPU_FS_2000DPS;
- mldl_cfg->divider = 4;
- mldl_cfg->dmp_enable = 1;
- mldl_cfg->fifo_enable = 1;
- mldl_cfg->ext_sync = 0;
- mldl_cfg->dmp_cfg1 = 0;
- mldl_cfg->dmp_cfg2 = 0;
- mldl_cfg->gyro_power = 0;
- mldl_cfg->gyro_is_bypassed = TRUE;
- mldl_cfg->dmp_is_running = FALSE;
- mldl_cfg->gyro_is_suspended = TRUE;
- mldl_cfg->accel_is_suspended = TRUE;
- mldl_cfg->compass_is_suspended = TRUE;
- mldl_cfg->pressure_is_suspended = TRUE;
- mldl_cfg->gyro_needs_reset = FALSE;
- if (mldl_cfg->addr == 0) {
-#ifdef __KERNEL__
- return ML_ERROR_INVALID_PARAMETER;
-#else
- mldl_cfg->addr = 0x68;
-#endif
- }
-
- /*
- * Reset,
- * Take the DMP out of sleep, and
- * read the product_id, sillicon rev and whoami
- */
-#ifdef M_HW
- result = mpu60xx_pwr_mgmt(mldl_cfg, mlsl_handle,
- RESET, WAKE_UP);
-#else
- result = MLDLPowerMgmtMPU(mldl_cfg, mlsl_handle, RESET, 0, 0, 0, 0);
-#endif
- ERROR_CHECK(result);
-
- result = MLDLGetSiliconRev(mldl_cfg, mlsl_handle);
- ERROR_CHECK(result);
-#ifndef M_HW
- result = MLSLSerialRead(mlsl_handle, mldl_cfg->addr,
- MPUREG_PRODUCT_ID, 1,
- &mldl_cfg->product_id);
- ERROR_CHECK(result);
-#endif
-
- /* Get the factory temperature compensation offsets */
- result = MLSLSerialRead(mlsl_handle, mldl_cfg->addr,
- MPUREG_XG_OFFS_TC, 1,
- &mldl_cfg->offset_tc[0]);
- ERROR_CHECK(result);
- result = MLSLSerialRead(mlsl_handle, mldl_cfg->addr,
- MPUREG_YG_OFFS_TC, 1,
- &mldl_cfg->offset_tc[1]);
- ERROR_CHECK(result);
- result = MLSLSerialRead(mlsl_handle, mldl_cfg->addr,
- MPUREG_ZG_OFFS_TC, 1,
- &mldl_cfg->offset_tc[2]);
- ERROR_CHECK(result);
-
- /* Configure the MPU */
-#ifdef M_HW
- result = mpu60xx_pwr_mgmt(mldl_cfg, mlsl_handle,
- FALSE, SLEEP);
-#else
- result =
- MLDLPowerMgmtMPU(mldl_cfg, mlsl_handle, 0, SLEEP, 0, 0, 0);
-#endif
- ERROR_CHECK(result);
-
- if (mldl_cfg->accel && mldl_cfg->accel->init) {
- result = mldl_cfg->accel->init(accel_handle,
- mldl_cfg->accel,
- &mldl_cfg->pdata->accel);
- ERROR_CHECK(result);
- }
-
- if (mldl_cfg->compass && mldl_cfg->compass->init) {
- result = mldl_cfg->compass->init(compass_handle,
- mldl_cfg->compass,
- &mldl_cfg->pdata->compass);
- if (ML_SUCCESS != result) {
- MPL_LOGE("mldl_cfg->compass->init returned %d\n",
- result);
- goto out_accel;
- }
- }
- if (mldl_cfg->pressure && mldl_cfg->pressure->init) {
- result = mldl_cfg->pressure->init(pressure_handle,
- mldl_cfg->pressure,
- &mldl_cfg->pdata->pressure);
- if (ML_SUCCESS != result) {
- MPL_LOGE("mldl_cfg->pressure->init returned %d\n",
- result);
- goto out_compass;
- }
- }
-
- mldl_cfg->requested_sensors = ML_THREE_AXIS_GYRO;
- if (mldl_cfg->accel && mldl_cfg->accel->resume)
- mldl_cfg->requested_sensors |= ML_THREE_AXIS_ACCEL;
-
- if (mldl_cfg->compass && mldl_cfg->compass->resume)
- mldl_cfg->requested_sensors |= ML_THREE_AXIS_COMPASS;
-
- if (mldl_cfg->pressure && mldl_cfg->pressure->resume)
- mldl_cfg->requested_sensors |= ML_THREE_AXIS_PRESSURE;
-
- return result;
-
-out_compass:
- if (mldl_cfg->compass->init)
- mldl_cfg->compass->exit(compass_handle,
- mldl_cfg->compass,
- &mldl_cfg->pdata->compass);
-out_accel:
- if (mldl_cfg->accel->init)
- mldl_cfg->accel->exit(accel_handle,
- mldl_cfg->accel,
- &mldl_cfg->pdata->accel);
- return result;
-
-}
-
-/**
- * Close the mpu3050 interface
- *
- * @param mldl_cfg pointer to the configuration structure
- * @param mlsl_handle pointer to the serial layer handle
- *
- * @return ML_SUCCESS or non-zero error code
- */
-int mpu3050_close(struct mldl_cfg *mldl_cfg,
- void *mlsl_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle)
-{
- int result = ML_SUCCESS;
- int ret_result = ML_SUCCESS;
-
- if (mldl_cfg->accel && mldl_cfg->accel->exit) {
- result = mldl_cfg->accel->exit(accel_handle,
- mldl_cfg->accel,
- &mldl_cfg->pdata->accel);
- if (ML_SUCCESS != result)
- MPL_LOGE("Accel exit failed %d\n", result);
- ret_result = result;
- }
- if (ML_SUCCESS == ret_result)
- ret_result = result;
-
- if (mldl_cfg->compass && mldl_cfg->compass->exit) {
- result = mldl_cfg->compass->exit(compass_handle,
- mldl_cfg->compass,
- &mldl_cfg->pdata->compass);
- if (ML_SUCCESS != result)
- MPL_LOGE("Compass exit failed %d\n", result);
- }
- if (ML_SUCCESS == ret_result)
- ret_result = result;
-
- if (mldl_cfg->pressure && mldl_cfg->pressure->exit) {
- result = mldl_cfg->pressure->exit(pressure_handle,
- mldl_cfg->pressure,
- &mldl_cfg->pdata->pressure);
- if (ML_SUCCESS != result)
- MPL_LOGE("Pressure exit failed %d\n", result);
- }
- if (ML_SUCCESS == ret_result)
- ret_result = result;
-
- return ret_result;
-}
-
-/**
- * @brief resume the MPU3050 device and all the other sensor
- * devices from their low power state.
- *
- * @param mldl_cfg
- * pointer to the configuration structure
- * @param gyro_handle
- * the main file handle to the MPU3050 device.
- * @param accel_handle
- * an handle to the accelerometer device, if sitting
- * onto a separate bus. Can match mlsl_handle if
- * the accelerometer device operates on the same
- * primary bus of MPU.
- * @param compass_handle
- * an handle to the compass device, if sitting
- * onto a separate bus. Can match mlsl_handle if
- * the compass device operates on the same
- * primary bus of MPU.
- * @param pressure_handle
- * an handle to the pressure sensor device, if sitting
- * onto a separate bus. Can match mlsl_handle if
- * the pressure sensor device operates on the same
- * primary bus of MPU.
- * @param resume_gyro
- * whether resuming the gyroscope device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @param resume_accel
- * whether resuming the accelerometer device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @param resume_compass
- * whether resuming the compass device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @param resume_pressure
- * whether resuming the pressure sensor device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @return ML_SUCCESS or a non-zero error code.
- */
-int mpu3050_resume(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle,
- bool resume_gyro,
- bool resume_accel,
- bool resume_compass,
- bool resume_pressure)
-{
- int result = ML_SUCCESS;
-
-#ifdef CONFIG_MPU_SENSORS_DEBUG
- mpu_print_cfg(mldl_cfg);
-#endif
-
- if (resume_accel &&
- ((!mldl_cfg->accel) || (!mldl_cfg->accel->resume)))
- return ML_ERROR_INVALID_PARAMETER;
- if (resume_compass &&
- ((!mldl_cfg->compass) || (!mldl_cfg->compass->resume)))
- return ML_ERROR_INVALID_PARAMETER;
- if (resume_pressure &&
- ((!mldl_cfg->pressure) || (!mldl_cfg->pressure->resume)))
- return ML_ERROR_INVALID_PARAMETER;
-
- if (resume_gyro && mldl_cfg->gyro_is_suspended) {
- result = gyro_resume(mldl_cfg, gyro_handle);
- ERROR_CHECK(result);
- }
-
- if (resume_accel && mldl_cfg->accel_is_suspended) {
- if (!mldl_cfg->gyro_is_suspended &&
- EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata->accel.bus) {
- result = MLDLSetI2CBypass(mldl_cfg, gyro_handle, TRUE);
- ERROR_CHECK(result);
- }
-
-#if 0
- result = mldl_cfg->accel->resume(accel_handle,
- mldl_cfg->accel,
- &mldl_cfg->pdata->accel);
-#else
- result = mpu_accel_resume(mldl_cfg);
-#endif
- ERROR_CHECK(result);
- mldl_cfg->accel_is_suspended = FALSE;
- }
-
- if (!mldl_cfg->gyro_is_suspended && !mldl_cfg->accel_is_suspended &&
- EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata->accel.bus) {
- result = mpu_set_slave(mldl_cfg,
- gyro_handle,
- mldl_cfg->accel,
- &mldl_cfg->pdata->accel);
- ERROR_CHECK(result);
- }
-
- if (resume_compass && mldl_cfg->compass_is_suspended) {
- if (!mldl_cfg->gyro_is_suspended &&
- EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata->compass.bus) {
- result = MLDLSetI2CBypass(mldl_cfg, gyro_handle, TRUE);
- ERROR_CHECK(result);
- }
- result = mldl_cfg->compass->resume(compass_handle,
- mldl_cfg->compass,
- &mldl_cfg->pdata->
- compass);
- ERROR_CHECK(result);
- mldl_cfg->compass_is_suspended = FALSE;
- }
-
- if (!mldl_cfg->gyro_is_suspended && !mldl_cfg->compass_is_suspended &&
- EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata->compass.bus) {
- result = mpu_set_slave(mldl_cfg,
- gyro_handle,
- mldl_cfg->compass,
- &mldl_cfg->pdata->compass);
- ERROR_CHECK(result);
- }
-
- if (resume_pressure && mldl_cfg->pressure_is_suspended) {
- if (!mldl_cfg->gyro_is_suspended &&
- EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata->pressure.bus) {
- result = MLDLSetI2CBypass(mldl_cfg, gyro_handle, TRUE);
- ERROR_CHECK(result);
- }
- result = mldl_cfg->pressure->resume(pressure_handle,
- mldl_cfg->pressure,
- &mldl_cfg->pdata->
- pressure);
- ERROR_CHECK(result);
- mldl_cfg->pressure_is_suspended = FALSE;
- }
-
- if (!mldl_cfg->gyro_is_suspended && !mldl_cfg->pressure_is_suspended &&
- EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata->pressure.bus) {
- result = mpu_set_slave(mldl_cfg,
- gyro_handle,
- mldl_cfg->pressure,
- &mldl_cfg->pdata->pressure);
- ERROR_CHECK(result);
- }
-
- /* Now start */
- if (resume_gyro) {
- result = dmp_start(mldl_cfg, gyro_handle);
- ERROR_CHECK(result);
- }
-
- return result;
-}
-
-/**
- * @brief suspend the MPU3050 device and all the other sensor
- * devices into their low power state.
- * @param gyro_handle
- * the main file handle to the MPU3050 device.
- * @param accel_handle
- * an handle to the accelerometer device, if sitting
- * onto a separate bus. Can match gyro_handle if
- * the accelerometer device operates on the same
- * primary bus of MPU.
- * @param compass_handle
- * an handle to the compass device, if sitting
- * onto a separate bus. Can match gyro_handle if
- * the compass device operates on the same
- * primary bus of MPU.
- * @param pressure_handle
- * an handle to the pressure sensor device, if sitting
- * onto a separate bus. Can match gyro_handle if
- * the pressure sensor device operates on the same
- * primary bus of MPU.
- * @param accel
- * whether suspending the accelerometer device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @param compass
- * whether suspending the compass device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @param pressure
- * whether suspending the pressure sensor device is
- * actually needed (if the device supports low power
- * mode of some sort).
- * @return ML_SUCCESS or a non-zero error code.
- */
-int mpu3050_suspend(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle,
- bool suspend_gyro,
- bool suspend_accel,
- bool suspend_compass,
- bool suspend_pressure)
-{
- int result = ML_SUCCESS;
-
- if (suspend_gyro && !mldl_cfg->gyro_is_suspended) {
-#ifdef M_HW
- return ML_SUCCESS;
- /* This puts the bus into bypass mode */
- result = MLDLSetI2CBypass(mldl_cfg, gyro_handle, 1);
- ERROR_CHECK(result);
- result = mpu60xx_pwr_mgmt(mldl_cfg, gyro_handle, 0, SLEEP);
-#else
- result = MLDLPowerMgmtMPU(mldl_cfg, gyro_handle,
- 0, SLEEP, 0, 0, 0);
-#endif
- ERROR_CHECK(result);
- }
-
- if (!mldl_cfg->accel_is_suspended && suspend_accel &&
- mldl_cfg->accel && mldl_cfg->accel->suspend) {
- if (!mldl_cfg->gyro_is_suspended &&
- EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata->accel.bus) {
- result = mpu_set_slave(mldl_cfg, gyro_handle,
- NULL, NULL);
- ERROR_CHECK(result);
- }
-
-#if 0
- result = mldl_cfg->accel->suspend(accel_handle,
- mldl_cfg->accel,
- &mldl_cfg->pdata->accel);
-#else
- result = mpu_accel_suspend(mldl_cfg);
-#endif
- ERROR_CHECK(result);
- mldl_cfg->accel_is_suspended = TRUE;
- }
-
- if (!mldl_cfg->compass_is_suspended && suspend_compass &&
- mldl_cfg->compass && mldl_cfg->compass->suspend) {
- if (!mldl_cfg->gyro_is_suspended &&
- EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata->compass.bus) {
- result = mpu_set_slave(mldl_cfg, gyro_handle,
- NULL, NULL);
- ERROR_CHECK(result);
- }
- result = mldl_cfg->compass->suspend(compass_handle,
- mldl_cfg->compass,
- &mldl_cfg->
- pdata->compass);
- ERROR_CHECK(result);
- mldl_cfg->compass_is_suspended = TRUE;
- }
-
- if (!mldl_cfg->pressure_is_suspended && suspend_pressure &&
- mldl_cfg->pressure && mldl_cfg->pressure->suspend) {
- if (!mldl_cfg->gyro_is_suspended &&
- EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata->pressure.bus) {
- result = mpu_set_slave(mldl_cfg, gyro_handle,
- NULL, NULL);
- ERROR_CHECK(result);
- }
- result = mldl_cfg->pressure->suspend(pressure_handle,
- mldl_cfg->pressure,
- &mldl_cfg->
- pdata->pressure);
- ERROR_CHECK(result);
- mldl_cfg->pressure_is_suspended = TRUE;
- }
- return result;
-}
-
-
-/**
- * @brief read raw sensor data from the accelerometer device
- * in use.
- * @param mldl_cfg
- * A pointer to the struct mldl_cfg data structure.
- * @param accel_handle
- * The handle to the device the accelerometer is connected to.
- * @param data
- * a buffer to store the raw sensor data.
- * @return ML_SUCCESS if successful, a non-zero error code otherwise.
- */
-int mpu3050_read_accel(struct mldl_cfg *mldl_cfg,
- void *accel_handle, unsigned char *data)
-{
- if (NULL != mldl_cfg->accel && NULL != mldl_cfg->accel->read)
- if ((EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata->accel.bus)
- && (!mldl_cfg->gyro_is_bypassed))
- return ML_ERROR_FEATURE_NOT_ENABLED;
- else
- return mldl_cfg->accel->read(accel_handle,
- mldl_cfg->accel,
- &mldl_cfg->pdata->accel,
- data);
- else
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-/**
- * @brief read raw sensor data from the compass device
- * in use.
- * @param mldl_cfg
- * A pointer to the struct mldl_cfg data structure.
- * @param compass_handle
- * The handle to the device the compass is connected to.
- * @param data
- * a buffer to store the raw sensor data.
- * @return ML_SUCCESS if successful, a non-zero error code otherwise.
- */
-int mpu3050_read_compass(struct mldl_cfg *mldl_cfg,
- void *compass_handle, unsigned char *data)
-{
- if (NULL != mldl_cfg->compass && NULL != mldl_cfg->compass->read)
- if ((EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata->compass.bus)
- && (!mldl_cfg->gyro_is_bypassed))
- return ML_ERROR_FEATURE_NOT_ENABLED;
- else
- return mldl_cfg->compass->read(compass_handle,
- mldl_cfg->compass,
- &mldl_cfg->pdata->compass,
- data);
- else
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-/**
- * @brief read raw sensor data from the pressure device
- * in use.
- * @param mldl_cfg
- * A pointer to the struct mldl_cfg data structure.
- * @param pressure_handle
- * The handle to the device the pressure sensor is connected to.
- * @param data
- * a buffer to store the raw sensor data.
- * @return ML_SUCCESS if successful, a non-zero error code otherwise.
- */
-int mpu3050_read_pressure(struct mldl_cfg *mldl_cfg,
- void *pressure_handle, unsigned char *data)
-{
- if (NULL != mldl_cfg->pressure && NULL != mldl_cfg->pressure->read)
- if ((EXT_SLAVE_BUS_SECONDARY == mldl_cfg->pdata->pressure.bus)
- && (!mldl_cfg->gyro_is_bypassed))
- return ML_ERROR_FEATURE_NOT_ENABLED;
- else
- return mldl_cfg->pressure->read(
- pressure_handle,
- mldl_cfg->pressure,
- &mldl_cfg->pdata->pressure,
- data);
- else
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-int mpu3050_config_accel(struct mldl_cfg *mldl_cfg,
- void *accel_handle,
- struct ext_slave_config *data)
-{
- if (NULL != mldl_cfg->accel && NULL != mldl_cfg->accel->config)
- return mldl_cfg->accel->config(accel_handle,
- mldl_cfg->accel,
- &mldl_cfg->pdata->accel,
- data);
- else
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-
-}
-
-int mpu3050_config_compass(struct mldl_cfg *mldl_cfg,
- void *compass_handle,
- struct ext_slave_config *data)
-{
- if (NULL != mldl_cfg->compass && NULL != mldl_cfg->compass->config)
- return mldl_cfg->compass->config(compass_handle,
- mldl_cfg->compass,
- &mldl_cfg->pdata->compass,
- data);
- else
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-
-}
-
-int mpu3050_config_pressure(struct mldl_cfg *mldl_cfg,
- void *pressure_handle,
- struct ext_slave_config *data)
-{
- if (NULL != mldl_cfg->pressure && NULL != mldl_cfg->pressure->config)
- return mldl_cfg->pressure->config(pressure_handle,
- mldl_cfg->pressure,
- &mldl_cfg->pdata->pressure,
- data);
- else
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-int mpu3050_get_config_accel(struct mldl_cfg *mldl_cfg,
- void *accel_handle,
- struct ext_slave_config *data)
-{
- if (NULL != mldl_cfg->accel && NULL != mldl_cfg->accel->get_config)
- return mldl_cfg->accel->get_config(accel_handle,
- mldl_cfg->accel,
- &mldl_cfg->pdata->accel,
- data);
- else
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-
-}
-
-int mpu3050_get_config_compass(struct mldl_cfg *mldl_cfg,
- void *compass_handle,
- struct ext_slave_config *data)
-{
- if (NULL != mldl_cfg->compass && NULL != mldl_cfg->compass->get_config)
- return mldl_cfg->compass->get_config(compass_handle,
- mldl_cfg->compass,
- &mldl_cfg->pdata->compass,
- data);
- else
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-
-}
-
-int mpu3050_get_config_pressure(struct mldl_cfg *mldl_cfg,
- void *pressure_handle,
- struct ext_slave_config *data)
-{
- if (NULL != mldl_cfg->pressure &&
- NULL != mldl_cfg->pressure->get_config)
- return mldl_cfg->pressure->get_config(pressure_handle,
- mldl_cfg->pressure,
- &mldl_cfg->pdata->pressure,
- data);
- else
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-
-/**
- *@}
- */
diff --git a/drivers/misc/mpu3050/mldl_cfg.h b/drivers/misc/mpu3050/mldl_cfg.h
deleted file mode 100755
index b893946..0000000
--- a/drivers/misc/mpu3050/mldl_cfg.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @addtogroup MLDL
- *
- * @{
- * @file mldl_cfg.h
- * @brief The Motion Library Driver Layer Configuration header file.
- */
-
-#ifndef __MLDL_CFG_H__
-#define __MLDL_CFG_H__
-
-/* ------------------ */
-/* - Include Files. - */
-/* ------------------ */
-
-#include "mlsl.h"
-#include "mpu.h"
-
-/* --------------------- */
-/* - Defines. - */
-/* --------------------- */
-
-/*************************************************************************/
-/* Sensors */
-/*************************************************************************/
-
-#define ML_X_GYRO (0x0001)
-#define ML_Y_GYRO (0x0002)
-#define ML_Z_GYRO (0x0004)
-#define ML_DMP_PROCESSOR (0x0008)
-
-#define ML_X_ACCEL (0x0010)
-#define ML_Y_ACCEL (0x0020)
-#define ML_Z_ACCEL (0x0040)
-
-#define ML_X_COMPASS (0x0080)
-#define ML_Y_COMPASS (0x0100)
-#define ML_Z_COMPASS (0x0200)
-
-#define ML_X_PRESSURE (0x0300)
-#define ML_Y_PRESSURE (0x0800)
-#define ML_Z_PRESSURE (0x1000)
-
-#define ML_TEMPERATURE (0x2000)
-#define ML_TIME (0x4000)
-
-#define ML_THREE_AXIS_GYRO (0x000F)
-#define ML_THREE_AXIS_ACCEL (0x0070)
-#define ML_THREE_AXIS_COMPASS (0x0380)
-#define ML_THREE_AXIS_PRESSURE (0x1C00)
-
-#define ML_FIVE_AXIS (0x007B)
-#define ML_SIX_AXIS_GYRO_ACCEL (0x007F)
-#define ML_SIX_AXIS_ACCEL_COMPASS (0x03F0)
-#define ML_NINE_AXIS (0x03FF)
-#define ML_ALL_SENSORS (0x7FFF)
-
-#define SAMPLING_RATE_HZ(mldl_cfg) \
- ((((((mldl_cfg)->lpf) == 0) || (((mldl_cfg)->lpf) == 7)) \
- ? (8000) \
- : (1000)) \
- / ((mldl_cfg)->divider + 1))
-
-#define SAMPLING_PERIOD_US(mldl_cfg) \
- ((1000000L * ((mldl_cfg)->divider + 1)) / \
- (((((mldl_cfg)->lpf) == 0) || (((mldl_cfg)->lpf) == 7)) \
- ? (8000) \
- : (1000)))
-/* --------------------- */
-/* - Variables. - */
-/* --------------------- */
-
-/*exteded variables for only kernel*/
-struct mldl_ext_cfg {
- void *mpuacc_data; /*Mpu-Accel Data*/
-};
-
-
-/* Platform data for the MPU */
-struct mldl_cfg {
- /* MPU related configuration */
- unsigned long requested_sensors;
- unsigned char addr;
- unsigned char int_config;
- unsigned char ext_sync;
- unsigned char full_scale;
- unsigned char lpf;
- unsigned char clk_src;
- unsigned char divider;
- unsigned char dmp_enable;
- unsigned char fifo_enable;
- unsigned char dmp_cfg1;
- unsigned char dmp_cfg2;
- unsigned char gyro_power;
- unsigned char offset_tc[MPU_NUM_AXES];
- unsigned short offset[MPU_NUM_AXES];
- unsigned char ram[MPU_MEM_NUM_RAM_BANKS][MPU_MEM_BANK_SIZE];
-
- /* MPU Related stored status and info */
- unsigned char silicon_revision;
- unsigned char product_id;
- unsigned short trim;
-
- /* Driver/Kernel related state information */
- int gyro_is_bypassed;
- int dmp_is_running;
- int gyro_is_suspended;
- int accel_is_suspended;
- int compass_is_suspended;
- int pressure_is_suspended;
- int gyro_needs_reset;
-
- /* Slave related information */
- struct ext_slave_descr *accel;
- struct ext_slave_descr *compass;
- struct ext_slave_descr *pressure;
-
- /* Platform Data */
- struct mpu3050_platform_data *pdata;
-
- /*---------------------------------------------------*/
- /*KERNEL ONLY VARIABLES */
- /*---------------------------------------------------*/
- struct mldl_ext_cfg ext;
-};
-
-
-int mpu3050_open(struct mldl_cfg *mldl_cfg,
- void *mlsl_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle);
-int mpu3050_close(struct mldl_cfg *mldl_cfg,
- void *mlsl_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle);
-int mpu3050_resume(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle,
- bool resume_gyro,
- bool resume_accel,
- bool resume_compass,
- bool resume_pressure);
-int mpu3050_suspend(struct mldl_cfg *mldl_cfg,
- void *gyro_handle,
- void *accel_handle,
- void *compass_handle,
- void *pressure_handle,
- bool suspend_gyro,
- bool suspend_accel,
- bool suspend_compass,
- bool suspend_pressure);
-int mpu3050_read_accel(struct mldl_cfg *mldl_cfg,
- void *accel_handle,
- unsigned char *data);
-int mpu3050_read_compass(struct mldl_cfg *mldl_cfg,
- void *compass_handle,
- unsigned char *data);
-int mpu3050_read_pressure(struct mldl_cfg *mldl_cfg, void *mlsl_handle,
- unsigned char *data);
-
-int mpu3050_config_accel(struct mldl_cfg *mldl_cfg,
- void *accel_handle,
- struct ext_slave_config *data);
-int mpu3050_config_compass(struct mldl_cfg *mldl_cfg,
- void *compass_handle,
- struct ext_slave_config *data);
-int mpu3050_config_pressure(struct mldl_cfg *mldl_cfg,
- void *pressure_handle,
- struct ext_slave_config *data);
-
-int mpu3050_get_config_accel(struct mldl_cfg *mldl_cfg,
- void *accel_handle,
- struct ext_slave_config *data);
-int mpu3050_get_config_compass(struct mldl_cfg *mldl_cfg,
- void *compass_handle,
- struct ext_slave_config *data);
-int mpu3050_get_config_pressure(struct mldl_cfg *mldl_cfg,
- void *pressure_handle,
- struct ext_slave_config *data);
-
-
-#endif /* __MLDL_CFG_H__ */
-
-/**
- *@}
- */
diff --git a/drivers/misc/mpu3050/mlos-kernel.c b/drivers/misc/mpu3050/mlos-kernel.c
deleted file mode 100755
index 02f1843..0000000
--- a/drivers/misc/mpu3050/mlos-kernel.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-/**
- * @defgroup
- * @brief
- *
- * @{
- * @file mlos-kernel.c
- * @brief
- *
- *
- */
-
-#include "mlos.h"
-#include <linux/delay.h>
-#include <linux/slab.h>
-#include <linux/time.h>
-
-void *MLOSMalloc(unsigned int numBytes)
-{
- return kmalloc(numBytes, GFP_KERNEL);
-}
-
-tMLError MLOSFree(void *ptr)
-{
- kfree(ptr);
- return ML_SUCCESS;
-}
-
-tMLError MLOSCreateMutex(HANDLE *mutex)
-{
- /* @todo implement if needed */
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-tMLError MLOSLockMutex(HANDLE mutex)
-{
- /* @todo implement if needed */
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-tMLError MLOSUnlockMutex(HANDLE mutex)
-{
- /* @todo implement if needed */
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-tMLError MLOSDestroyMutex(HANDLE handle)
-{
- /* @todo implement if needed */
- return ML_ERROR_FEATURE_NOT_IMPLEMENTED;
-}
-
-FILE *MLOSFOpen(char *filename)
-{
- /* @todo implement if needed */
- return NULL;
-}
-
-void MLOSFClose(FILE *fp)
-{
- /* @todo implement if needed */
-}
-
-void MLOSSleep(int mSecs)
-{
- msleep(mSecs);
-}
-
-unsigned long MLOSGetTickCount(void)
-{
- struct timespec now;
-
- getnstimeofday(&now);
-
- return (long)(now.tv_sec * 1000L + now.tv_nsec / 1000000L);
-}
diff --git a/drivers/misc/mpu3050/mlos.h b/drivers/misc/mpu3050/mlos.h
deleted file mode 100755
index 4ebb86c..0000000
--- a/drivers/misc/mpu3050/mlos.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-#ifndef _MLOS_H
-#define _MLOS_H
-
-#ifndef __KERNEL__
-#include <stdio.h>
-#endif
-
-#include "mltypes.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- /* ------------ */
- /* - Defines. - */
- /* ------------ */
-
- /* - MLOSCreateFile defines. - */
-
-#define MLOS_GENERIC_READ ((unsigned int)0x80000000)
-#define MLOS_GENERIC_WRITE ((unsigned int)0x40000000)
-#define MLOS_FILE_SHARE_READ ((unsigned int)0x00000001)
-#define MLOS_FILE_SHARE_WRITE ((unsigned int)0x00000002)
-#define MLOS_OPEN_EXISTING ((unsigned int)0x00000003)
-
- /* ---------- */
- /* - Enums. - */
- /* ---------- */
-
- /* --------------- */
- /* - Structures. - */
- /* --------------- */
-
- /* --------------------- */
- /* - Function p-types. - */
- /* --------------------- */
-
- void *MLOSMalloc(unsigned int numBytes);
- tMLError MLOSFree(void *ptr);
- tMLError MLOSCreateMutex(HANDLE *mutex);
- tMLError MLOSLockMutex(HANDLE mutex);
- tMLError MLOSUnlockMutex(HANDLE mutex);
- FILE *MLOSFOpen(char *filename);
- void MLOSFClose(FILE *fp);
-
- tMLError MLOSDestroyMutex(HANDLE handle);
-
- void MLOSSleep(int mSecs);
- unsigned long MLOSGetTickCount(void);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* _MLOS_H */
diff --git a/drivers/misc/mpu3050/mlsl-kernel.c b/drivers/misc/mpu3050/mlsl-kernel.c
deleted file mode 100755
index 908b16f..0000000
--- a/drivers/misc/mpu3050/mlsl-kernel.c
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-#include "mlsl.h"
-#include "mpu-i2c.h"
-
-/* ------------ */
-/* - Defines. - */
-/* ------------ */
-
-/* ---------------------- */
-/* - Types definitions. - */
-/* ---------------------- */
-
-/* --------------------- */
-/* - Function p-types. - */
-/* --------------------- */
-
-/**
- * @brief used to open the I2C or SPI serial port.
- * This port is used to send and receive data to the MPU device.
- * @param portNum
- * The COM port number associated with the device in use.
- * @return ML_SUCCESS if successful, a non-zero error code otherwise.
- */
-tMLError MLSLSerialOpen(char const *port, void **sl_handle)
-{
- return ML_SUCCESS;
-}
-
-/**
- * @brief used to reset any buffering the driver may be doing
- * @return ML_SUCCESS if successful, a non-zero error code otherwise.
- */
-tMLError MLSLSerialReset(void *sl_handle)
-{
- return ML_SUCCESS;
-}
-
-/**
- * @brief used to close the I2C or SPI serial port.
- * This port is used to send and receive data to the MPU device.
- * @return ML_SUCCESS if successful, a non-zero error code otherwise.
- */
-tMLError MLSLSerialClose(void *sl_handle)
-{
- return ML_SUCCESS;
-}
-
-/**
- * @brief used to read a single byte of data.
- * This should be sent by I2C or SPI.
- *
- * @param slaveAddr I2C slave address of device.
- * @param registerAddr Register address to read.
- * @param data Single byte of data to read.
- *
- * @return ML_SUCCESS if the command is successful, an error code otherwise.
- */
-tMLError MLSLSerialWriteSingle(void *sl_handle,
- unsigned char slaveAddr,
- unsigned char registerAddr,
- unsigned char data)
-{
- return sensor_i2c_write_register((struct i2c_adapter *) sl_handle,
- slaveAddr, registerAddr, data);
-}
-
-
-/**
- * @brief used to write multiple bytes of data from registers.
- * This should be sent by I2C.
- *
- * @param slaveAddr I2C slave address of device.
- * @param registerAddr Register address to write.
- * @param length Length of burst of data.
- * @param data Pointer to block of data.
- *
- * @return ML_SUCCESS if successful, a non-zero error code otherwise.
- */
-tMLError MLSLSerialWrite(void *sl_handle,
- unsigned char slaveAddr,
- unsigned short length, unsigned char const *data)
-{
- tMLError result;
- const unsigned short dataLength = length - 1;
- const unsigned char startRegAddr = data[0];
- unsigned char i2cWrite[SERIAL_MAX_TRANSFER_SIZE + 1];
- unsigned short bytesWritten = 0;
-
- while (bytesWritten < dataLength) {
- unsigned short thisLen = min(SERIAL_MAX_TRANSFER_SIZE,
- dataLength - bytesWritten);
- if (bytesWritten == 0) {
- result = sensor_i2c_write((struct i2c_adapter *)
- sl_handle, slaveAddr,
- 1 + thisLen, data);
- } else {
- /* manually increment register addr between chunks */
- i2cWrite[0] = startRegAddr + bytesWritten;
- memcpy(&i2cWrite[1], &data[1 + bytesWritten],
- thisLen);
- result = sensor_i2c_write((struct i2c_adapter *)
- sl_handle, slaveAddr,
- 1 + thisLen, i2cWrite);
- }
- if (ML_SUCCESS != result)
- return result;
- bytesWritten += thisLen;
- }
- return ML_SUCCESS;
-}
-
-
-/**
- * @brief used to read multiple bytes of data from registers.
- * This should be sent by I2C.
- *
- * @param slaveAddr I2C slave address of device.
- * @param registerAddr Register address to read.
- * @param length Length of burst of data.
- * @param data Pointer to block of data.
- *
- * @return Zero if successful; an error code otherwise
- */
-tMLError MLSLSerialRead(void *sl_handle,
- unsigned char slaveAddr,
- unsigned char registerAddr,
- unsigned short length, unsigned char *data)
-{
- tMLError result;
- unsigned short bytesRead = 0;
-
- if (registerAddr == MPUREG_FIFO_R_W
- || registerAddr == MPUREG_MEM_R_W) {
- return ML_ERROR_INVALID_PARAMETER;
- }
- while (bytesRead < length) {
- unsigned short thisLen =
- min(SERIAL_MAX_TRANSFER_SIZE, length - bytesRead);
- result =
- sensor_i2c_read((struct i2c_adapter *) sl_handle,
- slaveAddr, registerAddr + bytesRead,
- thisLen, &data[bytesRead]);
- if (ML_SUCCESS != result)
- return result;
- bytesRead += thisLen;
- }
- return ML_SUCCESS;
-}
-
-
-/**
- * @brief used to write multiple bytes of data to the memory.
- * This should be sent by I2C.
- *
- * @param slaveAddr I2C slave address of device.
- * @param memAddr The location in the memory to write to.
- * @param length Length of burst data.
- * @param data Pointer to block of data.
- *
- * @return Zero if successful; an error code otherwise
- */
-tMLError MLSLSerialWriteMem(void *sl_handle,
- unsigned char slaveAddr,
- unsigned short memAddr,
- unsigned short length,
- unsigned char const *data)
-{
- tMLError result;
- unsigned short bytesWritten = 0;
-
- if ((memAddr & 0xFF) + length > MPU_MEM_BANK_SIZE) {
- printk
- ("memory read length (%d B) extends beyond its limits (%d) "
- "if started at location %d\n", length,
- MPU_MEM_BANK_SIZE, memAddr & 0xFF);
- return ML_ERROR_INVALID_PARAMETER;
- }
- while (bytesWritten < length) {
- unsigned short thisLen =
- min(SERIAL_MAX_TRANSFER_SIZE, length - bytesWritten);
- result =
- mpu_memory_write((struct i2c_adapter *) sl_handle,
- slaveAddr, memAddr + bytesWritten,
- thisLen, &data[bytesWritten]);
- if (ML_SUCCESS != result)
- return result;
- bytesWritten += thisLen;
- }
- return ML_SUCCESS;
-}
-
-
-/**
- * @brief used to read multiple bytes of data from the memory.
- * This should be sent by I2C.
- *
- * @param slaveAddr I2C slave address of device.
- * @param memAddr The location in the memory to read from.
- * @param length Length of burst data.
- * @param data Pointer to block of data.
- *
- * @return Zero if successful; an error code otherwise
- */
-tMLError MLSLSerialReadMem(void *sl_handle,
- unsigned char slaveAddr,
- unsigned short memAddr,
- unsigned short length, unsigned char *data)
-{
- tMLError result;
- unsigned short bytesRead = 0;
-
- if ((memAddr & 0xFF) + length > MPU_MEM_BANK_SIZE) {
- printk
- ("memory read length (%d B) extends beyond its limits (%d) "
- "if started at location %d\n", length,
- MPU_MEM_BANK_SIZE, memAddr & 0xFF);
- return ML_ERROR_INVALID_PARAMETER;
- }
- while (bytesRead < length) {
- unsigned short thisLen =
- min(SERIAL_MAX_TRANSFER_SIZE, length - bytesRead);
- result =
- mpu_memory_read((struct i2c_adapter *) sl_handle,
- slaveAddr, memAddr + bytesRead,
- thisLen, &data[bytesRead]);
- if (ML_SUCCESS != result)
- return result;
- bytesRead += thisLen;
- }
- return ML_SUCCESS;
-}
-
-
-/**
- * @brief used to write multiple bytes of data to the fifo.
- * This should be sent by I2C.
- *
- * @param slaveAddr I2C slave address of device.
- * @param length Length of burst of data.
- * @param data Pointer to block of data.
- *
- * @return Zero if successful; an error code otherwise
- */
-tMLError MLSLSerialWriteFifo(void *sl_handle,
- unsigned char slaveAddr,
- unsigned short length,
- unsigned char const *data)
-{
- tMLError result;
- unsigned char i2cWrite[SERIAL_MAX_TRANSFER_SIZE + 1];
- unsigned short bytesWritten = 0;
-
- if (length > FIFO_HW_SIZE) {
- printk(KERN_ERR
- "maximum fifo write length is %d\n", FIFO_HW_SIZE);
- return ML_ERROR_INVALID_PARAMETER;
- }
- while (bytesWritten < length) {
- unsigned short thisLen =
- min(SERIAL_MAX_TRANSFER_SIZE, length - bytesWritten);
- i2cWrite[0] = MPUREG_FIFO_R_W;
- memcpy(&i2cWrite[1], &data[bytesWritten], thisLen);
- result = sensor_i2c_write((struct i2c_adapter *) sl_handle,
- slaveAddr, thisLen + 1,
- i2cWrite);
- if (ML_SUCCESS != result)
- return result;
- bytesWritten += thisLen;
- }
- return ML_SUCCESS;
-}
-
-
-/**
- * @brief used to read multiple bytes of data from the fifo.
- * This should be sent by I2C.
- *
- * @param slaveAddr I2C slave address of device.
- * @param length Length of burst of data.
- * @param data Pointer to block of data.
- *
- * @return Zero if successful; an error code otherwise
- */
-tMLError MLSLSerialReadFifo(void *sl_handle,
- unsigned char slaveAddr,
- unsigned short length, unsigned char *data)
-{
- tMLError result;
- unsigned short bytesRead = 0;
-
- if (length > FIFO_HW_SIZE) {
- printk(KERN_ERR
- "maximum fifo read length is %d\n", FIFO_HW_SIZE);
- return ML_ERROR_INVALID_PARAMETER;
- }
- while (bytesRead < length) {
- unsigned short thisLen =
- min(SERIAL_MAX_TRANSFER_SIZE, length - bytesRead);
- result =
- sensor_i2c_read((struct i2c_adapter *) sl_handle,
- slaveAddr, MPUREG_FIFO_R_W, thisLen,
- &data[bytesRead]);
- if (ML_SUCCESS != result)
- return result;
- bytesRead += thisLen;
- }
-
- return ML_SUCCESS;
-}
-
-/**
- * @}
- */
diff --git a/drivers/misc/mpu3050/mlsl.h b/drivers/misc/mpu3050/mlsl.h
deleted file mode 100755
index 51fe401..0000000
--- a/drivers/misc/mpu3050/mlsl.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-#ifndef __MSSL_H__
-#define __MSSL_H__
-
-#include "mltypes.h"
-#include "mpu.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ------------ */
-/* - Defines. - */
-/* ------------ */
-/* acceleration data */
-struct acc_data {
- s16 x;
- s16 y;
- s16 z;
-};
-
-
-/*
- * NOTE : to properly support Yamaha compass reads,
- * the max transfer size should be at least 9 B.
- * Length in bytes, typically a power of 2 >= 2
- */
-#define SERIAL_MAX_TRANSFER_SIZE 128
-
-/* ---------------------- */
-/* - Types definitions. - */
-/* ---------------------- */
-
-/* --------------------- */
-/* - Function p-types. - */
-/* --------------------- */
-
- tMLError MLSLSerialOpen(char const *port,
- void **sl_handle);
- tMLError MLSLSerialReset(void *sl_handle);
- tMLError MLSLSerialClose(void *sl_handle);
-
- tMLError MLSLSerialWriteSingle(void *sl_handle,
- unsigned char slaveAddr,
- unsigned char registerAddr,
- unsigned char data);
-
- tMLError MLSLSerialRead(void *sl_handle,
- unsigned char slaveAddr,
- unsigned char registerAddr,
- unsigned short length,
- unsigned char *data);
-
- tMLError MLSLSerialWrite(void *sl_handle,
- unsigned char slaveAddr,
- unsigned short length,
- unsigned char const *data);
-
- tMLError MLSLSerialReadMem(void *sl_handle,
- unsigned char slaveAddr,
- unsigned short memAddr,
- unsigned short length,
- unsigned char *data);
-
- tMLError MLSLSerialWriteMem(void *sl_handle,
- unsigned char slaveAddr,
- unsigned short memAddr,
- unsigned short length,
- unsigned char const *data);
-
- tMLError MLSLSerialReadFifo(void *sl_handle,
- unsigned char slaveAddr,
- unsigned short length,
- unsigned char *data);
-
- tMLError MLSLSerialWriteFifo(void *sl_handle,
- unsigned char slaveAddr,
- unsigned short length,
- unsigned char const *data);
-
- tMLError MLSLWriteCal(unsigned char *cal, unsigned int len);
- tMLError MLSLReadCal(unsigned char *cal, unsigned int len);
- tMLError MLSLGetCalLength(unsigned int *len);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * @}
- */
-#endif /* MLSL_H */
diff --git a/drivers/misc/mpu3050/mltypes.h b/drivers/misc/mpu3050/mltypes.h
deleted file mode 100755
index 5c1b684..0000000
--- a/drivers/misc/mpu3050/mltypes.h
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup MLERROR
- * @brief Motion Library - Error definitions.
- * Definition of the error codes used within the MPL and returned
- * to the user.
- * Every function tries to return a meaningful error code basing
- * on the occuring error condition. The error code is numeric.
- *
- * The available error codes and their associated values are:
- * - (0) ML_SUCCESS
- * - (1) ML_ERROR
- * - (2) ML_ERROR_INVALID_PARAMETER
- * - (3) ML_ERROR_FEATURE_NOT_ENABLED
- * - (4) ML_ERROR_FEATURE_NOT_IMPLEMENTED
- * - (6) ML_ERROR_DMP_NOT_STARTED
- * - (7) ML_ERROR_DMP_STARTED
- * - (8) ML_ERROR_NOT_OPENED
- * - (9) ML_ERROR_OPENED
- * - (10) ML_ERROR_INVALID_MODULE
- * - (11) ML_ERROR_MEMORY_EXAUSTED
- * - (12) ML_ERROR_DIVIDE_BY_ZERO
- * - (13) ML_ERROR_ASSERTION_FAILURE
- * - (14) ML_ERROR_FILE_OPEN
- * - (15) ML_ERROR_FILE_READ
- * - (16) ML_ERROR_FILE_WRITE
- * - (20) ML_ERROR_SERIAL_CLOSED
- * - (21) ML_ERROR_SERIAL_OPEN_ERROR
- * - (22) ML_ERROR_SERIAL_READ
- * - (23) ML_ERROR_SERIAL_WRITE
- * - (24) ML_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED
- * - (25) ML_ERROR_SM_TRANSITION
- * - (26) ML_ERROR_SM_IMPROPER_STATE
- * - (30) ML_ERROR_FIFO_OVERFLOW
- * - (31) ML_ERROR_FIFO_FOOTER
- * - (32) ML_ERROR_FIFO_READ_COUNT
- * - (33) ML_ERROR_FIFO_READ_DATA
- * - (40) ML_ERROR_MEMORY_SET
- * - (50) ML_ERROR_LOG_MEMORY_ERROR
- * - (51) ML_ERROR_LOG_OUTPUT_ERROR
- * - (60) ML_ERROR_OS_BAD_PTR
- * - (61) ML_ERROR_OS_BAD_HANDLE
- * - (62) ML_ERROR_OS_CREATE_FAILED
- * - (63) ML_ERROR_OS_LOCK_FAILED
- * - (70) ML_ERROR_COMPASS_DATA_OVERFLOW
- * - (71) ML_ERROR_COMPASS_DATA_UNDERFLOW
- * - (72) ML_ERROR_COMPASS_DATA_NOT_READY
- * - (73) ML_ERROR_COMPASS_DATA_ERROR
- * - (75) ML_ERROR_CALIBRATION_LOAD
- * - (76) ML_ERROR_CALIBRATION_STORE
- * - (77) ML_ERROR_CALIBRATION_LEN
- * - (78) ML_ERROR_CALIBRATION_CHECKSUM
- *
- * @{
- * @file mltypes.h
- * @}
- */
-
-#ifndef MLTYPES_H
-#define MLTYPES_H
-
-#ifdef __KERNEL__
-#include <linux/types.h>
-#else
-#include "stdint_invensense.h"
-#endif
-#include "log.h"
-
-/*---------------------------
- ML Types
----------------------------*/
-
-/**
- * @struct tMLError mltypes.h "mltypes"
- * @brief The MPL Error Code return type.
- *
- * @code
- * typedef unsigned char tMLError;
- * @endcode
- */
-typedef unsigned char tMLError;
-
-#if defined(LINUX) || defined(__KERNEL__)
-typedef unsigned int HANDLE;
-#endif
-
-#ifdef __KERNEL__
-typedef HANDLE FILE;
-#endif
-
-#ifndef __cplusplus
-#ifndef __KERNEL__
-typedef int_fast8_t bool;
-#endif
-#endif
-
-/*---------------------------
- ML Defines
----------------------------*/
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-/* Dimension of an array */
-#ifndef DIM
-#define DIM(array) (sizeof(array)/sizeof((array)[0]))
-#endif
-
-/* - ML Errors. - */
-#define ERROR_NAME(x) (#x)
-#define ERROR_CHECK(x) \
- { \
- if (ML_SUCCESS != x) { \
- MPL_LOGE("%s|%s|%d returning %d\n", \
- __FILE__, __func__, __LINE__, x); \
- return x; \
- } \
- }
-
-#define ERROR_CHECK_FIRST(first, x) \
- { if (ML_SUCCESS == first) first = x; }
-
-#define ML_SUCCESS (0)
-/* Generic Error code. Proprietary Error Codes only */
-#define ML_ERROR (1)
-
-/* Compatibility and other generic error codes */
-#define ML_ERROR_INVALID_PARAMETER (2)
-#define ML_ERROR_FEATURE_NOT_ENABLED (3)
-#define ML_ERROR_FEATURE_NOT_IMPLEMENTED (4)
-#define ML_ERROR_DMP_NOT_STARTED (6)
-#define ML_ERROR_DMP_STARTED (7)
-#define ML_ERROR_NOT_OPENED (8)
-#define ML_ERROR_OPENED (9)
-#define ML_ERROR_INVALID_MODULE (10)
-#define ML_ERROR_MEMORY_EXAUSTED (11)
-#define ML_ERROR_DIVIDE_BY_ZERO (12)
-#define ML_ERROR_ASSERTION_FAILURE (13)
-#define ML_ERROR_FILE_OPEN (14)
-#define ML_ERROR_FILE_READ (15)
-#define ML_ERROR_FILE_WRITE (16)
-#define ML_ERROR_INVALID_CONFIGURATION (17)
-
-/* Serial Communication */
-#define ML_ERROR_SERIAL_CLOSED (20)
-#define ML_ERROR_SERIAL_OPEN_ERROR (21)
-#define ML_ERROR_SERIAL_READ (22)
-#define ML_ERROR_SERIAL_WRITE (23)
-#define ML_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED (24)
-
-/* SM = State Machine */
-#define ML_ERROR_SM_TRANSITION (25)
-#define ML_ERROR_SM_IMPROPER_STATE (26)
-
-/* Fifo */
-#define ML_ERROR_FIFO_OVERFLOW (30)
-#define ML_ERROR_FIFO_FOOTER (31)
-#define ML_ERROR_FIFO_READ_COUNT (32)
-#define ML_ERROR_FIFO_READ_DATA (33)
-
-/* Memory & Registers, Set & Get */
-#define ML_ERROR_MEMORY_SET (40)
-
-#define ML_ERROR_LOG_MEMORY_ERROR (50)
-#define ML_ERROR_LOG_OUTPUT_ERROR (51)
-
-/* OS interface errors */
-#define ML_ERROR_OS_BAD_PTR (60)
-#define ML_ERROR_OS_BAD_HANDLE (61)
-#define ML_ERROR_OS_CREATE_FAILED (62)
-#define ML_ERROR_OS_LOCK_FAILED (63)
-
-/* Compass errors */
-#define ML_ERROR_COMPASS_DATA_OVERFLOW (70)
-#define ML_ERROR_COMPASS_DATA_UNDERFLOW (71)
-#define ML_ERROR_COMPASS_DATA_NOT_READY (72)
-#define ML_ERROR_COMPASS_DATA_ERROR (73)
-
-/* Load/Store calibration */
-#define ML_ERROR_CALIBRATION_LOAD (75)
-#define ML_ERROR_CALIBRATION_STORE (76)
-#define ML_ERROR_CALIBRATION_LEN (77)
-#define ML_ERROR_CALIBRATION_CHECKSUM (78)
-
-/* Accel errors */
-#define ML_ERROR_ACCEL_DATA_OVERFLOW (79)
-#define ML_ERROR_ACCEL_DATA_UNDERFLOW (80)
-#define ML_ERROR_ACCEL_DATA_NOT_READY (81)
-#define ML_ERROR_ACCEL_DATA_ERROR (82)
-
-/* For Linux coding compliance */
-#ifndef __KERNEL__
-#define EXPORT_SYMBOL(x)
-#endif
-
-/*---------------------------
- p-Types
----------------------------*/
-
-#endif /* MLTYPES_H */
diff --git a/drivers/misc/mpu3050/mpu-accel.c b/drivers/misc/mpu3050/mpu-accel.c
deleted file mode 100755
index 4b5c641..0000000
--- a/drivers/misc/mpu3050/mpu-accel.c
+++ /dev/null
@@ -1,679 +0,0 @@
-/*
- mpu-accel.c - mpu3050 input device interface
-
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include <linux/i2c.h>
-#include <linux/i2c-dev.h>
-#include <linux/interrupt.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/stat.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/signal.h>
-#include <linux/miscdevice.h>
-#include <linux/slab.h>
-#include <linux/version.h>
-#include <linux/pm.h>
-#include <linux/mutex.h>
-#include <linux/suspend.h>
-
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/wait.h>
-#include <linux/uaccess.h>
-#include <linux/io.h>
-#include <linux/input.h>
-
-#include "mpuirq.h"
-#include "slaveirq.h"
-#include "mlsl.h"
-#include "mpu-i2c.h"
-#include "mldl_cfg.h"
-#include "mpu.h"
-#include "mpu-accel.h"
-
-#define MPUACC_DEBUG 0
-#define MPUACC_DEBUG_CFG 0
-
-#define MPUACCEL_INPUT_NAME "mpu-accel"
-
-struct mpuaccel_data {
- struct input_dev *input_data;
- struct delayed_work work;
- struct mutex data_mutex;
-
- struct mldl_cfg *mldl_cfg;
- void *accel_handle;
-
- atomic_t enable;
- atomic_t poll_delay;
- int device_is_on;
-#ifdef MPUACC_USES_CACHED_DATA
- unsigned char cached_data[6];
-#endif /* MPUACC_USES_CACHED_DATA */
-};
-
-static struct mpuaccel_data *pThisData;
-extern struct acc_data cal_data;
-
-static void mpu_accel_print_mldl_cfg(struct mldl_cfg *mldl_cfg)
-{
- if (MPUACC_DEBUG_CFG) {
- pr_info("requested_sensors:%ld\n", mldl_cfg->requested_sensors);
-/* pr_info("ignore_system_suspend:%d\n", mldl_cfg->ignore_system_suspend); */
- pr_info("addr:%d\n", mldl_cfg->addr);
- pr_info("int_config:%d\n", mldl_cfg->int_config);
- pr_info("ext_sync:%d\n", mldl_cfg->ext_sync);
- pr_info("full_scale:%d\n", mldl_cfg->full_scale);
- pr_info("dmp_enable:%d\n", mldl_cfg->dmp_enable);
- pr_info("fifo_enable:%d\n", mldl_cfg->fifo_enable);
- pr_info("dmp_cfg1:%d\n", mldl_cfg->dmp_cfg1);
- pr_info("dmp_cfg2:%d\n", mldl_cfg->dmp_cfg2);
- pr_info("gyro_power:%d\n", mldl_cfg->gyro_power);
- pr_info("gyro_is_bypassed:%d\n", mldl_cfg->gyro_is_bypassed);
- pr_info("dmp_is_running:%d\n", mldl_cfg->dmp_is_running);
- pr_info("gyro_is_suspended:%d\n", mldl_cfg->gyro_is_suspended);
- pr_info("accel_is_suspended:%d\n",
- mldl_cfg->accel_is_suspended);
- pr_info("compass_is_suspended:%d\n",
- mldl_cfg->compass_is_suspended);
- pr_info("pressure_is_suspended:%d\n",
- mldl_cfg->pressure_is_suspended);
- pr_info("gyro_needs_reset:%d\n", mldl_cfg->gyro_needs_reset);
- }
-}
-
-static int mpu_accel_mutex_lock(struct mpuaccel_data *data)
-{
- mutex_lock(&data->data_mutex);
-
- return ML_SUCCESS;
-}
-
-static int mpu_accel_mutex_unlock(struct mpuaccel_data *data)
-{
- mutex_unlock(&data->data_mutex);
-
- return ML_SUCCESS;
-}
-
-static int mpu_accel_activate_device(struct mpuaccel_data *data, int enable)
-{
- int result = ML_SUCCESS;
- struct mldl_cfg *mldl_cfg = data->mldl_cfg;
-
- if (enable) {
- /*turn on accel */
- if (NULL != mldl_cfg->accel
- && NULL != mldl_cfg->accel->resume) {
- result = mldl_cfg->accel->resume(data->accel_handle,
- mldl_cfg->accel,
- &mldl_cfg->pdata->
- accel);
- }
- } else {
- /*turn off accel */
- if (NULL != mldl_cfg->accel
- && NULL != mldl_cfg->accel->suspend) {
- result = mldl_cfg->accel->suspend(data->accel_handle,
- mldl_cfg->accel,
- &mldl_cfg->pdata->
- accel);
- }
- }
-
- if (result == ML_SUCCESS)
- data->device_is_on = enable;
-
- if (MPUACC_DEBUG)
- pr_info("activate device:%d, result=%d\n", enable, result);
-
- return result;
-}
-
-static int mpu_accel_get_data_from_device(struct mpuaccel_data *data,
- unsigned char *buffer)
-{
- int result = ML_SUCCESS;
- struct mldl_cfg *mldl_cfg = data->mldl_cfg;
-
- if (NULL != mldl_cfg->accel && NULL != mldl_cfg->accel->read) {
- result = mldl_cfg->accel->read(data->accel_handle,
- mldl_cfg->accel,
- &mldl_cfg->pdata->accel, buffer);
- }
-
- return result;
-}
-
-static int mpu_accel_get_data_from_mpu(struct mpuaccel_data *data, unsigned char *buffer)
-{
- int result = ML_SUCCESS;
- struct mldl_cfg *mldl_cfg = data->mldl_cfg;
- result =
- MLSLSerialRead(data->accel_handle, mldl_cfg->addr, 0x23, 6, buffer);
- return result;
-}
-
-static int mpu_accel_get_data(struct mpuaccel_data *data, unsigned char *buffer,
- int *from_mpu)
-{
- int res = ML_SUCCESS;
- struct mldl_cfg *mldl_cfg = data->mldl_cfg;
-
- if (mldl_cfg->accel_is_suspended == 1 ||
- (mldl_cfg->dmp_is_running == 0
- && mldl_cfg->accel_is_suspended == 0)) {
-
- if (from_mpu != NULL)
- *from_mpu = 0;
-
- /*
- Retrieve accel data from accel device driver directly.
- */
- res = mpu_accel_get_data_from_device(data, buffer);
- } else if (mldl_cfg->dmp_is_running &&
- mldl_cfg->accel_is_suspended == 0) {
-
- if (from_mpu != NULL)
- *from_mpu = 1;
-
- /*
- Retrieve accel data from MPU registers(0x23 to 0x28).
- */
- res = mpu_accel_get_data_from_mpu(data, buffer);
- }
-
- return res;
-}
-
-static int mpu_accel_build_data(struct mpuaccel_data *data,
- const unsigned char *buffer, s16 *val)
-{
- struct mldl_cfg *mldl_cfg = data->mldl_cfg;
- int endian = mldl_cfg->accel->endian;
- int dev_id = mldl_cfg->accel->id;
-
- if (endian == EXT_SLAVE_LITTLE_ENDIAN) {
- if (dev_id == ACCEL_ID_BMA150)
- *val = (*(s16 *)&buffer[0]) >> 6;
- else if (dev_id == ACCEL_ID_KXTF9) {
- *val =
- (short)(((signed char)buffer[1] << 4) |
- (buffer[0] >> 4));
- } else
- *val = (buffer[1] << 8) | buffer[0];
- } else if (endian == EXT_SLAVE_BIG_ENDIAN) {
- *val = (buffer[0] << 8) | buffer[1];
- }
-
- return ML_SUCCESS;
-}
-
-static void mpu_accel_input_work_func(struct work_struct *work)
-{
- int res = 0;
- int poll_time = 0;
- int enable = 0;
- int i = 0;
-
- struct mpuaccel_data *data = container_of((struct delayed_work *)work,
- struct mpuaccel_data, work);
-
- struct mldl_cfg *mldl_cfg = data->mldl_cfg;
-
- poll_time = atomic_read(&data->poll_delay);
-
- if (MPUACC_DEBUG)
- pr_info("________________START____________________\n");
- if (MPUACC_DEBUG_CFG)
- mpu_accel_print_mldl_cfg(mldl_cfg);
-
- mpu_accel_mutex_lock(data);
- enable = atomic_read(&data->enable);
- mpu_accel_mutex_unlock(data);
-
- if (enable) {
- unsigned char buffer[6] = { 0, };
- s16 raw[3] = { 0, };
- int data_is_avail = 0;
- int data_is_from_mpu = 0;
-
- mpu_accel_mutex_lock(data);
- mpu_accel_get_data(data, buffer, &data_is_from_mpu);
- mpu_accel_mutex_unlock(data);
-
- if (res == ML_SUCCESS)
- data_is_avail = 1;
-
- if (data_is_avail) {
- int data_is_valid = 0;
-
- for (i = 0; i < 3; i++) {
- mpu_accel_build_data(data, &buffer[i * 2],
- &raw[i]);
- }
- raw[0] += cal_data.x;
- raw[1] += cal_data.y;
- raw[2] += cal_data.z;
-
- if (raw[0] && raw[1] && raw[2])
- data_is_valid = 1;
-
- if (data_is_valid) {
- int accel[3] = { 0, };
-
- /*apply mounting matrix */
- for (i = 0; i < 3; i++) {
-#ifdef MPUACC_USES_MOUNTING_MATRIX
- int j = 0;
- for (j = 0; j < 3; j++) {
- accel[i] +=
- mldl_cfg->pdata->accel.
- orientation[i * 3 +
- j] * raw[j];
- }
-#else
- accel[i] = raw[i];
-#endif
- }
-
- if (MPUACC_DEBUG) {
- if (data_is_from_mpu == 1)
- pr_info
- ("MPU_ACCEL:[%d][%d][%d]\n",
- accel[0], accel[1],
- accel[2]);
- else
- pr_info("ACCEL:[%d][%d][%d]\n",
- accel[0], accel[1],
- accel[2]);
- }
-#ifdef MPUACC_USES_CACHED_DATA
- memcpy(data->cached_data, buffer,
- sizeof(unsigned char) * 6);
-#endif /* #ifdef MPUACC_USES_CACHED_DATA */
- input_report_rel(data->input_data, REL_X,
- accel[0]);
- input_report_rel(data->input_data, REL_Y,
- accel[1]);
- input_report_rel(data->input_data, REL_Z,
- accel[2]);
- input_sync(data->input_data);
-
- if (MPUACC_DEBUG)
- pr_info("input device is updated\n");
- }
- }
- }
-
- if (MPUACC_DEBUG)
- pr_info("________________END____________________\n");
-
- mpu_accel_mutex_lock(data);
- enable = atomic_read(&data->enable);
- mpu_accel_mutex_unlock(data);
-
- if (enable) {
- if (poll_time > 0) {
- schedule_delayed_work(&data->work,
- msecs_to_jiffies(poll_time)
- /*+ 1 */);
- } else {
- schedule_delayed_work(&data->work, 0);
- }
-
- }
-
-}
-
-static int mpu_accel_enable(struct mpuaccel_data *data)
-{
- int res = ML_SUCCESS;
- struct mldl_cfg *mldl_cfg = data->mldl_cfg;
-
- if (MPUACC_DEBUG)
- pr_info("mpu_accel_enable : %d\n", atomic_read(&data->enable));
-
- if (atomic_read(&data->enable) != 1) {
-
- if (MPUACC_DEBUG)
- pr_info("mpu_accel_enable : enabled\n");
-
- if (mldl_cfg->accel_is_suspended == 1) {
- if (MPUACC_DEBUG)
- pr_info("mpu_accel_enable : turn on accel\n");
- mpu_accel_activate_device(data, 1);
- }
-
- atomic_set(&data->enable, 1);
- schedule_delayed_work(&data->work, 0);
-
- }
-
- return res;
-}
-
-static int mpu_accel_disable(struct mpuaccel_data *data)
-{
- int res = ML_SUCCESS;
- struct mldl_cfg *mldl_cfg = data->mldl_cfg;
-
- if (MPUACC_DEBUG)
- pr_info("mpu_accel_disable : %d\n", atomic_read(&data->enable));
-
- if (atomic_read(&data->enable) != 0) {
- atomic_set(&data->enable, 0);
- cancel_delayed_work(&data->work);
-
- if (MPUACC_DEBUG)
- pr_info("mpu_accel_disable : disabled\n");
-
- if (mldl_cfg->accel_is_suspended == 1) {
- if (MPUACC_DEBUG)
- pr_info("mpu_accel_disable : turn off accel\n");
-
- /*turn off accel */
- mpu_accel_activate_device(data, 0);
- }
- }
-
- return res;
-}
-
-static ssize_t mpu_accel_delay_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct input_dev *input_data = to_input_dev(dev);
- struct mpuaccel_data *data = input_get_drvdata(input_data);
-
- return sprintf(buf, "%d\n", atomic_read(&data->poll_delay));
-}
-
-static ssize_t mpu_accel_delay_store(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- struct input_dev *input_data = to_input_dev(dev);
- struct mpuaccel_data *data = input_get_drvdata(input_data);
- int value = simple_strtoul(buf, NULL, 10);
-
- atomic_set(&data->poll_delay, value);
- return count;
-}
-
-static ssize_t mpu_accel_enable_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct input_dev *input_data = to_input_dev(dev);
- struct mpuaccel_data *data = input_get_drvdata(input_data);
-
- return sprintf(buf, "%d\n", atomic_read(&data->enable));
-}
-
-static ssize_t
-mpu_accel_enable_store(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- struct input_dev *input_data = to_input_dev(dev);
- struct mpuaccel_data *data = input_get_drvdata(input_data);
- int value;
-
- value = simple_strtoul(buf, NULL, 10);
- if (value != 0 && value != 1)
- return count;
-
- mpu_accel_mutex_lock(data);
-
- if (value)
- mpu_accel_enable(data);
- else
- mpu_accel_disable(data);
-
- mpu_accel_mutex_unlock(data);
-
- return count;
-}
-
-int mpu_accel_is_active_device(void)
-{
- int is_active = 0;
-
- if (pThisData != NULL) {
- mpu_accel_mutex_lock(pThisData);
- is_active = pThisData->device_is_on;
- mpu_accel_mutex_unlock(pThisData);
- }
-
- return is_active;
-}
-
-#ifdef MPUACC_USES_CACHED_DATA
-int mpu_accel_get_cached_data(unsigned char *cache)
-{
- int res = ML_ERROR;
-
- if (pThisData != NULL) {
- if (pThisData->device_is_on == 1) {
- memcpy(cache, pThisData->cached_data,
- sizeof(unsigned char) * 6);
- pr_info("cached data:[%d][%d][%d][%d][%d][%d]\n",
- cache[0], cache[1],
- cache[2], cache[3],
- cache[4], cache[5]);
- res = ML_SUCCESS;
- }
-
- }
-
- return res;
-}
-#endif /* MPUACC_USES_CACHED_DATA */
-
-static DEVICE_ATTR(poll_delay, S_IRUGO | S_IWUSR | S_IWGRP,
- mpu_accel_delay_show, mpu_accel_delay_store);
-static DEVICE_ATTR(enable, S_IRUGO | S_IWUSR | S_IWGRP,
- mpu_accel_enable_show, mpu_accel_enable_store);
-
-static struct attribute *mpuaccel_attributes[] = {
- &dev_attr_poll_delay.attr,
- &dev_attr_enable.attr,
- NULL
-};
-
-static struct attribute_group mpuaccel_attribute_group = {
- .attrs = mpuaccel_attributes
-};
-
-int mpu_accel_init(struct mldl_cfg *mldl_cfg, void *accel_handle)
-{
- struct input_dev *input_data = NULL;
- struct mpuaccel_data *data = NULL;
- int res = 0;
-
- data = kzalloc(sizeof(struct mpuaccel_data), GFP_KERNEL);
- if (data == NULL) {
- res = -ENOMEM;
- goto err;
- }
-
- data->mldl_cfg = mldl_cfg;
- data->accel_handle = accel_handle;
- atomic_set(&data->enable, 0);
- atomic_set(&data->poll_delay, 20); /* set 20ms to polling time */
-
- mutex_init(&data->data_mutex);
-
- INIT_DELAYED_WORK(&data->work, mpu_accel_input_work_func);
-
- input_data = input_allocate_device();
- if (input_data == NULL) {
- res = -ENOMEM;
- pr_err(
- "mpu_accel_probe: Failed to allocate input_data device\n");
- goto err;
- }
-
- input_data->name = MPUACCEL_INPUT_NAME;
- input_data->id.bustype = BUS_I2C;
-
- set_bit(EV_REL, input_data->evbit);
- input_set_capability(input_data, EV_REL, REL_X);
- input_set_capability(input_data, EV_REL, REL_Y);
- input_set_capability(input_data, EV_REL, REL_Z);
-
- data->input_data = input_data;
-
- res = input_register_device(input_data);
- if (res) {
- pr_err(
- "mpu_accel_init: Unable to register input_data device: %s\n",
- input_data->name);
- goto err;
- }
-
- input_set_drvdata(input_data, data);
- mldl_cfg->ext.mpuacc_data = (void *)data;
-
- pThisData = data;
-
- res = sysfs_create_group(&input_data->dev.kobj,
- &mpuaccel_attribute_group);
- if (res) {
- pr_err(
- "mpu_accel_init: sysfs_create_group failed[%s]\n",
- input_data->name);
- goto err;
- }
-
- return res;
-
-err:
- sysfs_remove_group(&input_data->dev.kobj, &mpuaccel_attribute_group);
- input_free_device(input_data);
- kfree(data);
- return res;
-
-}
-
-int mpu_accel_exit(struct mldl_cfg *mldl_cfg)
-{
- struct mpuaccel_data *data = NULL;
-
- if (mldl_cfg == NULL)
- return ML_ERROR;
-
- data = (struct mpuaccel_data *)mldl_cfg->ext.mpuacc_data;
-
- if (data != NULL) {
- sysfs_remove_group(&(data->input_data->dev.kobj),
- &mpuaccel_attribute_group);
- input_free_device(data->input_data);
-
- kfree(data);
- data = NULL;
-
- mldl_cfg->ext.mpuacc_data = NULL;
- }
-
- return ML_SUCCESS;
-}
-
-int mpu_accel_suspend(struct mldl_cfg *mldl_cfg)
-{
- int result = ML_SUCCESS;
- int enable = 0;
- struct mpuaccel_data *data = NULL;
-
- if (mldl_cfg == NULL)
- return ML_ERROR;
-
- data = (struct mpuaccel_data *)mldl_cfg->ext.mpuacc_data;
-
- mpu_accel_mutex_lock(data);
- enable = atomic_read(&data->enable);
-
- pr_info("%s: device_is_on = %d, enable = %d\n",
- __func__, data->device_is_on, enable);
-
- if (data->device_is_on == 1 && enable == 0) {
- pr_info("%s: mpu_accel_activate_device 0\n", __func__);
- result = mpu_accel_activate_device(data, 0);
- }
-
- mpu_accel_mutex_unlock(data);
-
- return result;
-}
-
-int mpu_accel_resume(struct mldl_cfg *mldl_cfg)
-{
- int result = ML_SUCCESS;
- int enable = 0;
- struct mpuaccel_data *data = NULL;
-
- if (mldl_cfg == NULL)
- return ML_ERROR;
-
- data = (struct mpuaccel_data *)mldl_cfg->ext.mpuacc_data;
-
- mpu_accel_mutex_lock(data);
- enable = atomic_read(&data->enable);
-
- pr_info("%s: device_is_on = %d, enable = %d\n",
- __func__, data->device_is_on, enable);
-
- if (data->device_is_on == 0 && enable == 0) {
- pr_info("%s: mpu_accel_activate_device 1\n", __func__);
- result = mpu_accel_activate_device(data, 1);
- }
-
- mpu_accel_mutex_unlock(data);
-
- return result;
-}
-
-int mpu_accel_read(struct mldl_cfg *mldl_cfg, unsigned char *buffer)
-{
- int result = ML_SUCCESS;
- int enable = 0;
- struct mpuaccel_data *data = NULL;
-
- if (mldl_cfg == NULL)
- return ML_ERROR;
-
- data = (struct mpuaccel_data *)mldl_cfg->ext.mpuacc_data;
-
- mpu_accel_mutex_lock(data);
- enable = atomic_read(&data->enable);
-#ifdef MPUACC_USES_CACHED_DATA
- if (enable == 1)
- memcpy(buffer, data->cached_data, sizeof(unsigned char) * 6);
- else
-#endif /* MPUACC_USES_CACHED_DATA */
- result = mpu_accel_get_data_from_device(data, buffer);
- mpu_accel_mutex_unlock(data);
-
- return result;
-}
diff --git a/drivers/misc/mpu3050/mpu-accel.h b/drivers/misc/mpu3050/mpu-accel.h
deleted file mode 100755
index 5dd57c9..0000000
--- a/drivers/misc/mpu3050/mpu-accel.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#undef MPUACC_USES_CACHED_DATA
-#define MPUACC_USES_MOUNTING_MATRIX
-
-int mpu_accel_init(struct mldl_cfg *mldl_cfg, void *accel_handle);
-int mpu_accel_exit(struct mldl_cfg *mldl_cfg);
-int mpu_accel_suspend(struct mldl_cfg *mldl_cfg);
-int mpu_accel_resume(struct mldl_cfg *mldl_cfg);
-int mpu_accel_read(struct mldl_cfg *mldl_cfg, unsigned char *buffer);
diff --git a/drivers/misc/mpu3050/mpu-dev.c b/drivers/misc/mpu3050/mpu-dev.c
deleted file mode 100755
index ef04ed7..0000000
--- a/drivers/misc/mpu3050/mpu-dev.c
+++ /dev/null
@@ -1,2280 +0,0 @@
-/*
- mpu-dev.c - mpu3050 char device interface
-
- Copyright (C) 1995-97 Simon G. Vogl
- Copyright (C) 1998-99 Frodo Looijaard <frodol@dds.nl>
- Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com>
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-/* Code inside mpudev_ioctl_rdrw is copied from i2c-dev.c
- */
-
-#include <linux/i2c.h>
-#include <linux/i2c-dev.h>
-#include <linux/interrupt.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/stat.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/signal.h>
-#include <linux/miscdevice.h>
-#include <linux/slab.h>
-#include <linux/version.h>
-#include <linux/pm.h>
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/wait.h>
-#include <linux/uaccess.h>
-#include <linux/io.h>
-
-#include "mpuirq.h"
-#include "slaveirq.h"
-#include "mlsl.h"
-#include "mlos.h"
-#include "mpu-i2c.h"
-#include "mldl_cfg.h"
-#include "mpu-accel.h"
-
-#include "mpu.h"
-
-#define ACCEL_VENDOR_NAME "KIONIX"
-#define ACCEL_CHIP_NAME "KXTF9"
-
-#define GYRO_VENDOR_NAME "INVENSENSE"
-#define GYRO_CHIP_NAME "MPU-3050"
-
-#define MPU3050_EARLY_SUSPEND_IN_DRIVER 1
-
-#define CALIBRATION_FILE_PATH "/efs/calibration_data"
-#define CALIBRATION_DATA_AMOUNT 100
-
-struct acc_data cal_data;
-
-/* Platform data for the MPU */
-struct mpu_private_data {
- struct mldl_cfg mldl_cfg;
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
- struct early_suspend early_suspend;
-#endif
-};
-
-static int is_lis3dh;
-
-#define IDEAL_X 0
-#define IDEAL_Y 0
-#define IDEAL_Z 1024
-
-static int pid;
-
-static struct i2c_client *this_client;
-
-int read_accel_raw_xyz(struct acc_data *acc)
-{
- unsigned char acc_data[6];
- s32 temp;
- struct mldl_cfg *mldl_cfg;
-
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(this_client);
-
- if (!mpu) {
- pr_info("%s : mpu data is NULL, mpu3050 Init error", __func__);
- return 0;
- }
-
- mldl_cfg = &mpu->mldl_cfg;
-
- if (mldl_cfg->accel_is_suspended == 1 ||
- (mldl_cfg->dmp_is_running == 0
- && mldl_cfg->accel_is_suspended == 0)) {
- if (is_lis3dh) {
- if (mldl_cfg->accel_is_suspended == 1) {
- sensor_i2c_write_register(this_client->adapter,
- 0x19, 0x20, 0x67);
- MLOSSleep(1);
- }
- sensor_i2c_read(this_client->adapter,
- 0x19, 0x28 | 0x80, 6, acc_data);
- if (mldl_cfg->accel_is_suspended == 1) {
- sensor_i2c_write_register(this_client->adapter,
- 0x19, 0x20, 0x18);
- MLOSSleep(1);
- }
- } else
- sensor_i2c_read(this_client->adapter,
- 0x0F, 0x06, 6, acc_data);
- } else if (mldl_cfg->dmp_is_running &&
- mldl_cfg->accel_is_suspended == 0) {
- if (sensor_i2c_read(this_client->adapter,
- DEFAULT_MPU_SLAVEADDR,
- 0x23, 6, acc_data) != 0)
- return -1;
- } else
- return -1;
-
- if (is_lis3dh) {
- acc->x = ((acc_data[0] << 8) | acc_data[1]);
- acc->x = (acc->x >> 4);
- acc->y = ((acc_data[2] << 8) | acc_data[3]);
- acc->y = (acc->y >> 4);
- acc->z = ((acc_data[4] << 8) | acc_data[5]);
- acc->z = (acc->z >> 4);
- } else {
- temp = ((acc_data[1] << 4) | (acc_data[0] >> 4));
- if (temp < 2048)
- acc->x = (s16) (-temp);
- else
- acc->x = (s16) (4096 - temp);
-
- temp = ((acc_data[3] << 4) | (acc_data[2] >> 4));
- if (temp < 2048)
- acc->y = (s16) (-temp);
- else
- acc->y = (s16) (4096 - temp);
-
- temp = ((acc_data[5] << 4) | (acc_data[4] >> 4));
- if (temp < 2048)
- acc->z = (s16) (1024 - temp);
- else
- acc->z = (s16) (3072 - temp);
- }
- return 0;
-}
-
-static int accel_open_calibration(void)
-{
- struct file *cal_filp = NULL;
- int err = 0;
- mm_segment_t old_fs;
-
- old_fs = get_fs();
- set_fs(KERNEL_DS);
-
- cal_filp = filp_open(CALIBRATION_FILE_PATH, O_RDONLY, 0666);
- if (IS_ERR(cal_filp)) {
- pr_err("%s: Can't open calibration file\n", __func__);
- set_fs(old_fs);
- err = PTR_ERR(cal_filp);
-
- cal_data.x = 0;
- cal_data.y = 0;
- cal_data.z = 0;
-
- return err;
- }
-
- err = cal_filp->f_op->read(cal_filp,
- (char *)&cal_data, 3 * sizeof(s16),
- &cal_filp->f_pos);
- if (err != 3 * sizeof(s16)) {
- pr_err("%s: Can't read the cal data from file\n", __func__);
- err = -EIO;
- }
-
- pr_info("%s : (%u,%u,%u)\n", __func__,
- cal_data.x, cal_data.y, cal_data.z);
-
- filp_close(cal_filp, current->files);
- set_fs(old_fs);
-
- return err;
-}
-
-static int accel_do_calibrate(bool do_calib)
-{
- struct acc_data data = { 0, };
- struct file *cal_filp = NULL;
- int sum[3] = { 0, };
- int err = 0;
- int i;
- mm_segment_t old_fs;
-
- if (do_calib) {
- for (i = 0; i < CALIBRATION_DATA_AMOUNT; i++) {
- err = read_accel_raw_xyz(&data);
- if (err < 0) {
- pr_err("%s: accel_read_accel_raw_xyz() "
- "failed in the %dth loop\n",
- __func__, i);
- return err;
- }
-
- sum[0] += data.x;
- sum[1] += data.y;
- sum[2] += data.z;
- }
-
-
- if (is_lis3dh) {
- cal_data.x = IDEAL_X - cal_data.x;
- cal_data.y = IDEAL_Y - cal_data.y;
- cal_data.z = IDEAL_Z - cal_data.z;
- } else {
- cal_data.x = sum[0] / CALIBRATION_DATA_AMOUNT;
- cal_data.y = sum[1] / CALIBRATION_DATA_AMOUNT;
- cal_data.z = sum[2] / CALIBRATION_DATA_AMOUNT;
- }
- } else {
- cal_data.x = 0;
- cal_data.y = 0;
- cal_data.z = 0;
- }
-
- pr_info("%s: cal data (%d,%d,%d)\n", __func__,
- cal_data.x, cal_data.y, cal_data.z);
-
- old_fs = get_fs();
- set_fs(KERNEL_DS);
-
- cal_filp = filp_open(CALIBRATION_FILE_PATH,
- O_CREAT | O_TRUNC | O_WRONLY, 0666);
- if (IS_ERR(cal_filp)) {
- pr_err("%s: Can't open calibration file\n", __func__);
- set_fs(old_fs);
- err = PTR_ERR(cal_filp);
- return err;
- }
-
- err = cal_filp->f_op->write(cal_filp,
- (char *)&cal_data, 3 * sizeof(s16),
- &cal_filp->f_pos);
- if (err != 3 * sizeof(s16)) {
- pr_err("%s: Can't write the cal data to file\n", __func__);
- err = -EIO;
- }
-
- filp_close(cal_filp, current->files);
- set_fs(old_fs);
-
- return err;
-}
-
-static int mpu_open(struct inode *inode, struct file *file)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(this_client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
-
- accel_open_calibration();
-
- pr_info("%s", __func__);
- dev_dbg(&this_client->adapter->dev, "mpu_open\n");
- dev_dbg(&this_client->adapter->dev, "current->pid %d\n", current->pid);
- pid = current->pid;
- file->private_data = this_client;
-
- /* we could do some checking on the flags supplied by "open" */
- /* i.e. O_NONBLOCK */
- /* -> set some flag to disable interruptible_sleep_on in mpu_read */
-
- /* Reset the sensors to the default */
- mldl_cfg->requested_sensors = ML_THREE_AXIS_GYRO;
- if (mldl_cfg->accel && mldl_cfg->accel->resume)
- mldl_cfg->requested_sensors |= ML_THREE_AXIS_ACCEL;
-
- if (mldl_cfg->compass && mldl_cfg->compass->resume)
- mldl_cfg->requested_sensors |= ML_THREE_AXIS_COMPASS;
-
- if (mldl_cfg->pressure && mldl_cfg->pressure->resume)
- mldl_cfg->requested_sensors |= ML_THREE_AXIS_PRESSURE;
-
- return 0;
-}
-
-/* close function - called when the "file" /dev/mpu is closed in userspace */
-static int mpu_release(struct inode *inode, struct file *file)
-{
- struct i2c_client *client = (struct i2c_client *)file->private_data;
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *accel_adapter;
- struct i2c_adapter *compass_adapter;
- struct i2c_adapter *pressure_adapter;
- int result = 0;
-
- pid = 0;
-
- accel_adapter = i2c_get_adapter(mldl_cfg->pdata->accel.adapt_num);
- compass_adapter = i2c_get_adapter(mldl_cfg->pdata->compass.adapt_num);
- pressure_adapter = i2c_get_adapter(mldl_cfg->pdata->pressure.adapt_num);
- result = mpu3050_suspend(mldl_cfg, client->adapter,
- accel_adapter, compass_adapter,
- pressure_adapter, TRUE, TRUE, TRUE, TRUE);
- pr_info("%s", __func__);
- dev_dbg(&this_client->adapter->dev, "mpu_release\n");
- return result;
-}
-
-static noinline int mpudev_ioctl_rdrw(struct i2c_client *client,
- unsigned long arg)
-{
- struct i2c_rdwr_ioctl_data rdwr_arg;
- struct i2c_msg *rdwr_pa;
- u8 __user **data_ptrs;
- int i, res;
-
- if (copy_from_user(&rdwr_arg,
- (struct i2c_rdwr_ioctl_data __user *)arg,
- sizeof(rdwr_arg)))
- return -EFAULT;
-
- /* Put an arbitrary limit on the number of messages that can
- * be sent at once */
- if (rdwr_arg.nmsgs > I2C_RDRW_IOCTL_MAX_MSGS)
- return -EINVAL;
-
- rdwr_pa = (struct i2c_msg *)
- kmalloc(rdwr_arg.nmsgs * sizeof(struct i2c_msg), GFP_KERNEL);
- if (!rdwr_pa)
- return -ENOMEM;
-
- if (copy_from_user(rdwr_pa, rdwr_arg.msgs,
- rdwr_arg.nmsgs * sizeof(struct i2c_msg))) {
- kfree(rdwr_pa);
- return -EFAULT;
- }
-
- data_ptrs = kmalloc(rdwr_arg.nmsgs * sizeof(u8 __user *), GFP_KERNEL);
- if (data_ptrs == NULL) {
- kfree(rdwr_pa);
- return -ENOMEM;
- }
-
- res = 0;
- for (i = 0; i < rdwr_arg.nmsgs; i++) {
- /* Limit the size of the message to a sane amount;
- * and don't let length change either. */
- if ((rdwr_pa[i].len > 8192) ||
- (rdwr_pa[i].flags & I2C_M_RECV_LEN)) {
- res = -EINVAL;
- break;
- }
- data_ptrs[i] = (u8 __user *) rdwr_pa[i].buf;
- rdwr_pa[i].buf = kmalloc(rdwr_pa[i].len, GFP_KERNEL);
- if (rdwr_pa[i].buf == NULL) {
- res = -ENOMEM;
- break;
- }
- if (copy_from_user(rdwr_pa[i].buf, data_ptrs[i],
- rdwr_pa[i].len)) {
- ++i; /* Needs to be kfreed too */
- res = -EFAULT;
- break;
- }
- }
- if (res < 0) {
- int j;
- for (j = 0; j < i; ++j)
- kfree(rdwr_pa[j].buf);
- kfree(data_ptrs);
- kfree(rdwr_pa);
- return res;
- }
-
- res = i2c_transfer(client->adapter, rdwr_pa, rdwr_arg.nmsgs);
- while (i-- > 0) {
- if (res >= 0 && (rdwr_pa[i].flags & I2C_M_RD)) {
- if (copy_to_user(data_ptrs[i], rdwr_pa[i].buf,
- rdwr_pa[i].len))
- res = -EFAULT;
- }
- kfree(rdwr_pa[i].buf);
- }
- kfree(data_ptrs);
- kfree(rdwr_pa);
- return res;
-}
-
-/* read function called when from /dev/mpu is read. Read from the FIFO */
-static ssize_t mpu_read(struct file *file,
- char __user *buf, size_t count, loff_t *offset)
-{
- char *tmp;
- int ret;
-
- struct i2c_client *client = (struct i2c_client *)file->private_data;
-
- if (count > 8192)
- count = 8192;
-
- tmp = kmalloc(count, GFP_KERNEL);
- if (tmp == NULL)
- return -ENOMEM;
-
- pr_info("%s: i2c-dev: i2c-%d reading %zu bytes.\n", __func__,
- iminor(file->f_path.dentry->d_inode), count);
-
-/* @todo fix this to do a i2c trasnfer from the FIFO */
- ret = i2c_master_recv(client, tmp, count);
- if (ret >= 0) {
- ret = copy_to_user(buf, tmp, count) ? -EFAULT : ret;
- if (ret)
- ret = -EFAULT;
- }
- kfree(tmp);
- return ret;
-}
-
-static int mpu_ioctl_set_mpu_pdata(struct i2c_client *client, unsigned long arg)
-{
- int ii;
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct mpu3050_platform_data *pdata = mpu->mldl_cfg.pdata;
- struct mpu3050_platform_data local_pdata;
-
- if (copy_from_user(&local_pdata, (unsigned char __user *)arg,
- sizeof(local_pdata)))
- return -EFAULT;
-
- pdata->int_config = local_pdata.int_config;
- for (ii = 0; ii < DIM(pdata->orientation); ii++)
- pdata->orientation[ii] = local_pdata.orientation[ii];
- pdata->level_shifter = local_pdata.level_shifter;
-
- pdata->accel.address = local_pdata.accel.address;
- for (ii = 0; ii < DIM(pdata->accel.orientation); ii++)
- pdata->accel.orientation[ii] =
- local_pdata.accel.orientation[ii];
-
- pdata->compass.address = local_pdata.compass.address;
- for (ii = 0; ii < DIM(pdata->compass.orientation); ii++)
- pdata->compass.orientation[ii] =
- local_pdata.compass.orientation[ii];
-
- pdata->pressure.address = local_pdata.pressure.address;
- for (ii = 0; ii < DIM(pdata->pressure.orientation); ii++)
- pdata->pressure.orientation[ii] =
- local_pdata.pressure.orientation[ii];
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- return ML_SUCCESS;
-}
-
-static int
-mpu_ioctl_set_mpu_config(struct i2c_client *client, unsigned long arg)
-{
- int ii;
- int result = ML_SUCCESS;
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct mldl_cfg *temp_mldl_cfg;
-
- dev_dbg(&this_client->adapter->dev, "%s\n", __func__);
-
- temp_mldl_cfg = kzalloc(sizeof(struct mldl_cfg), GFP_KERNEL);
- if (NULL == temp_mldl_cfg)
- return -ENOMEM;
-
- /*
- * User space is not allowed to modify accel compass pressure or
- * pdata structs, as well as silicon_revision product_id or trim
- */
- if (copy_from_user(temp_mldl_cfg, (struct mldl_cfg __user *)arg,
- offsetof(struct mldl_cfg, silicon_revision))) {
- result = -EFAULT;
- goto out;
- }
-
- if (mldl_cfg->gyro_is_suspended) {
- if (mldl_cfg->addr != temp_mldl_cfg->addr)
- mldl_cfg->gyro_needs_reset = TRUE;
-
- if (mldl_cfg->int_config != temp_mldl_cfg->int_config)
- mldl_cfg->gyro_needs_reset = TRUE;
-
- if (mldl_cfg->ext_sync != temp_mldl_cfg->ext_sync)
- mldl_cfg->gyro_needs_reset = TRUE;
-
- if (mldl_cfg->full_scale != temp_mldl_cfg->full_scale)
- mldl_cfg->gyro_needs_reset = TRUE;
-
- if (mldl_cfg->lpf != temp_mldl_cfg->lpf)
- mldl_cfg->gyro_needs_reset = TRUE;
-
- if (mldl_cfg->clk_src != temp_mldl_cfg->clk_src)
- mldl_cfg->gyro_needs_reset = TRUE;
-
- if (mldl_cfg->divider != temp_mldl_cfg->divider)
- mldl_cfg->gyro_needs_reset = TRUE;
-
- if (mldl_cfg->dmp_enable != temp_mldl_cfg->dmp_enable)
- mldl_cfg->gyro_needs_reset = TRUE;
-
- if (mldl_cfg->fifo_enable != temp_mldl_cfg->fifo_enable)
- mldl_cfg->gyro_needs_reset = TRUE;
-
- if (mldl_cfg->dmp_cfg1 != temp_mldl_cfg->dmp_cfg1)
- mldl_cfg->gyro_needs_reset = TRUE;
-
- if (mldl_cfg->dmp_cfg2 != temp_mldl_cfg->dmp_cfg2)
- mldl_cfg->gyro_needs_reset = TRUE;
-
- if (mldl_cfg->gyro_power != temp_mldl_cfg->gyro_power)
- mldl_cfg->gyro_needs_reset = TRUE;
-
- for (ii = 0; ii < MPU_NUM_AXES; ii++)
- if (mldl_cfg->offset_tc[ii] !=
- temp_mldl_cfg->offset_tc[ii])
- mldl_cfg->gyro_needs_reset = TRUE;
-
- for (ii = 0; ii < MPU_NUM_AXES; ii++)
- if (mldl_cfg->offset[ii] != temp_mldl_cfg->offset[ii])
- mldl_cfg->gyro_needs_reset = TRUE;
-
- if (memcmp(mldl_cfg->ram, temp_mldl_cfg->ram,
- MPU_MEM_NUM_RAM_BANKS * MPU_MEM_BANK_SIZE *
- sizeof(unsigned char)))
- mldl_cfg->gyro_needs_reset = TRUE;
- }
-
- memcpy(mldl_cfg, temp_mldl_cfg,
- offsetof(struct mldl_cfg, silicon_revision));
-
-out:
- kfree(temp_mldl_cfg);
- return result;
-}
-
-static int
-mpu_ioctl_get_mpu_config(struct i2c_client *client, unsigned long arg)
-{
- /* Have to be careful as there are 3 pointers in the mldl_cfg
- * structure */
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct mldl_cfg *local_mldl_cfg;
- int retval = 0;
-
- local_mldl_cfg = kzalloc(sizeof(struct mldl_cfg), GFP_KERNEL);
- if (NULL == local_mldl_cfg)
- return -ENOMEM;
-
- retval =
- copy_from_user(local_mldl_cfg, (struct mldl_cfg __user *)arg,
- sizeof(struct mldl_cfg));
- if (retval) {
- dev_err(&this_client->adapter->dev,
- "%s|%s:%d: EFAULT on arg\n",
- __FILE__, __func__, __LINE__);
- retval = -EFAULT;
- goto out;
- }
-
- /* Fill in the accel, compass, pressure and pdata pointers */
- if (mldl_cfg->accel) {
- retval = copy_to_user((void __user *)local_mldl_cfg->accel,
- mldl_cfg->accel,
- sizeof(*mldl_cfg->accel));
- if (retval) {
- dev_err(&this_client->adapter->dev,
- "%s|%s:%d: EFAULT on accel\n",
- __FILE__, __func__, __LINE__);
- retval = -EFAULT;
- goto out;
- }
- }
-
- if (mldl_cfg->compass) {
- retval = copy_to_user((void __user *)local_mldl_cfg->compass,
- mldl_cfg->compass,
- sizeof(*mldl_cfg->compass));
- if (retval) {
- dev_err(&this_client->adapter->dev,
- "%s|%s:%d: EFAULT on compass\n",
- __FILE__, __func__, __LINE__);
- retval = -EFAULT;
- goto out;
- }
- }
-
- if (mldl_cfg->pressure) {
- retval = copy_to_user((void __user *)local_mldl_cfg->pressure,
- mldl_cfg->pressure,
- sizeof(*mldl_cfg->pressure));
- if (retval) {
- dev_err(&this_client->adapter->dev,
- "%s|%s:%d: EFAULT on pressure\n",
- __FILE__, __func__, __LINE__);
- retval = -EFAULT;
- goto out;
- }
- }
-
- if (mldl_cfg->pdata) {
- retval = copy_to_user((void __user *)local_mldl_cfg->pdata,
- mldl_cfg->pdata,
- sizeof(*mldl_cfg->pdata));
- if (retval) {
- dev_err(&this_client->adapter->dev,
- "%s|%s:%d: EFAULT on pdata\n",
- __FILE__, __func__, __LINE__);
- retval = -EFAULT;
- goto out;
- }
- }
-
- /* Do not modify the accel, compass, pressure and pdata pointers */
- retval = copy_to_user((struct mldl_cfg __user *)arg,
- mldl_cfg, offsetof(struct mldl_cfg, accel));
-
- if (retval)
- retval = -EFAULT;
-out:
- kfree(local_mldl_cfg);
- return retval;
-}
-
-/**
- * Pass a requested slave configuration to the slave sensor
- *
- * @param adapter the adaptor to use to communicate with the slave
- * @param mldl_cfg the mldl configuration structuer
- * @param slave pointer to the slave descriptor
- * @param usr_config The configuration to pass to the slave sensor
- *
- * @return 0 or non-zero error code
- */
-static int slave_config(void *adapter,
- struct mldl_cfg *mldl_cfg,
- struct ext_slave_descr *slave,
- struct ext_slave_config __user *usr_config)
-{
- int retval = ML_SUCCESS;
- if ((slave) && (slave->config)) {
- struct ext_slave_config config;
- retval = copy_from_user(&config, usr_config, sizeof(config));
- if (retval)
- return -EFAULT;
-
- if (config.len && config.data) {
- int *data;
- data = kzalloc(config.len, GFP_KERNEL);
- if (!data)
- return ML_ERROR_MEMORY_EXAUSTED;
-
- retval = copy_from_user(data,
- (void __user *)config.data,
- config.len);
- if (retval) {
- retval = -EFAULT;
- kfree(data);
- return retval;
- }
- config.data = data;
- }
- retval = slave->config(adapter,
- slave, &mldl_cfg->pdata->accel, &config);
- kfree(config.data);
- }
- return retval;
-}
-
-/**
- * Get a requested slave configuration from the slave sensor
- *
- * @param adapter the adaptor to use to communicate with the slave
- * @param mldl_cfg the mldl configuration structuer
- * @param slave pointer to the slave descriptor
- * @param usr_config The configuration for the slave to fill out
- *
- * @return 0 or non-zero error code
- */
-static int slave_get_config(void *adapter,
- struct mldl_cfg *mldl_cfg,
- struct ext_slave_descr *slave,
- struct ext_slave_config __user *usr_config)
-{
- int retval = ML_SUCCESS;
- if ((slave) && (slave->get_config)) {
- struct ext_slave_config config;
- void *user_data;
- retval = copy_from_user(&config, usr_config, sizeof(config));
- if (retval)
- return -EFAULT;
-
- user_data = config.data;
- if (config.len && config.data) {
- int *data;
- data = kzalloc(config.len, GFP_KERNEL);
- if (!data)
- return ML_ERROR_MEMORY_EXAUSTED;
-
- retval = copy_from_user(data,
- (void __user *)config.data,
- config.len);
- if (retval) {
- retval = -EFAULT;
- kfree(data);
- return retval;
- }
- config.data = data;
- }
- retval = slave->get_config(adapter,
- slave,
- &mldl_cfg->pdata->accel, &config);
- if (retval) {
- kfree(config.data);
- return retval;
- }
- retval = copy_to_user((unsigned char __user *)user_data,
- config.data, config.len);
- kfree(config.data);
- }
- return retval;
-}
-
-/* ioctl - I/O control */
-static long mpu_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-{
- struct i2c_client *client = (struct i2c_client *)file->private_data;
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- int retval = 0;
- struct i2c_adapter *accel_adapter;
- struct i2c_adapter *compass_adapter;
- struct i2c_adapter *pressure_adapter;
-
- accel_adapter = i2c_get_adapter(mldl_cfg->pdata->accel.adapt_num);
- compass_adapter = i2c_get_adapter(mldl_cfg->pdata->compass.adapt_num);
- pressure_adapter = i2c_get_adapter(mldl_cfg->pdata->pressure.adapt_num);
-
- switch (cmd) {
- case I2C_RDWR:
- mpudev_ioctl_rdrw(client, arg);
- break;
- case I2C_SLAVE:
- if ((arg & 0x7E) != (client->addr & 0x7E)) {
- dev_err(&this_client->adapter->dev,
- "%s: Invalid I2C_SLAVE arg %lu\n",
- __func__, arg);
- }
- break;
- case MPU_SET_MPU_CONFIG:
- retval = mpu_ioctl_set_mpu_config(client, arg);
- break;
- case MPU_SET_INT_CONFIG:
- mldl_cfg->int_config = (unsigned char)arg;
- break;
- case MPU_SET_EXT_SYNC:
- mldl_cfg->ext_sync = (enum mpu_ext_sync)arg;
- break;
- case MPU_SET_FULL_SCALE:
- mldl_cfg->full_scale = (enum mpu_fullscale)arg;
- break;
- case MPU_SET_LPF:
- mldl_cfg->lpf = (enum mpu_filter)arg;
- break;
- case MPU_SET_CLK_SRC:
- mldl_cfg->clk_src = (enum mpu_clock_sel)arg;
- break;
- case MPU_SET_DIVIDER:
- mldl_cfg->divider = (unsigned char)arg;
- break;
- case MPU_SET_LEVEL_SHIFTER:
- mldl_cfg->pdata->level_shifter = (unsigned char)arg;
- break;
- case MPU_SET_DMP_ENABLE:
- mldl_cfg->dmp_enable = (unsigned char)arg;
- break;
- case MPU_SET_FIFO_ENABLE:
- mldl_cfg->fifo_enable = (unsigned char)arg;
- break;
- case MPU_SET_DMP_CFG1:
- mldl_cfg->dmp_cfg1 = (unsigned char)arg;
- break;
- case MPU_SET_DMP_CFG2:
- mldl_cfg->dmp_cfg2 = (unsigned char)arg;
- break;
- case MPU_SET_OFFSET_TC:
- retval = copy_from_user(mldl_cfg->offset_tc,
- (unsigned char __user *)arg,
- sizeof(mldl_cfg->offset_tc));
- if (retval)
- retval = -EFAULT;
- break;
- case MPU_SET_RAM:
- retval = copy_from_user(mldl_cfg->ram,
- (unsigned char __user *)arg,
- sizeof(mldl_cfg->ram));
- if (retval)
- retval = -EFAULT;
- break;
- case MPU_SET_PLATFORM_DATA:
- retval = mpu_ioctl_set_mpu_pdata(client, arg);
- break;
- case MPU_GET_MPU_CONFIG:
- retval = mpu_ioctl_get_mpu_config(client, arg);
- break;
- case MPU_GET_INT_CONFIG:
- retval = put_user(mldl_cfg->int_config,
- (unsigned char __user *)arg);
- break;
- case MPU_GET_EXT_SYNC:
- retval = put_user(mldl_cfg->ext_sync,
- (unsigned char __user *)arg);
- break;
- case MPU_GET_FULL_SCALE:
- retval = put_user(mldl_cfg->full_scale,
- (unsigned char __user *)arg);
- break;
- case MPU_GET_LPF:
- retval = put_user(mldl_cfg->lpf, (unsigned char __user *)arg);
- break;
- case MPU_GET_CLK_SRC:
- retval = put_user(mldl_cfg->clk_src,
- (unsigned char __user *)arg);
- break;
- case MPU_GET_DIVIDER:
- retval = put_user(mldl_cfg->divider,
- (unsigned char __user *)arg);
- break;
- case MPU_GET_LEVEL_SHIFTER:
- retval = put_user(mldl_cfg->pdata->level_shifter,
- (unsigned char __user *)arg);
- break;
- case MPU_GET_DMP_ENABLE:
- retval = put_user(mldl_cfg->dmp_enable,
- (unsigned char __user *)arg);
- break;
- case MPU_GET_FIFO_ENABLE:
- retval = put_user(mldl_cfg->fifo_enable,
- (unsigned char __user *)arg);
- break;
- case MPU_GET_DMP_CFG1:
- retval = put_user(mldl_cfg->dmp_cfg1,
- (unsigned char __user *)arg);
- break;
- case MPU_GET_DMP_CFG2:
- retval = put_user(mldl_cfg->dmp_cfg2,
- (unsigned char __user *)arg);
- break;
- case MPU_GET_OFFSET_TC:
- retval = copy_to_user((unsigned char __user *)arg,
- mldl_cfg->offset_tc,
- sizeof(mldl_cfg->offset_tc));
- if (retval)
- retval = -EFAULT;
- break;
- case MPU_GET_RAM:
- retval = copy_to_user((unsigned char __user *)arg,
- mldl_cfg->ram, sizeof(mldl_cfg->ram));
- if (retval)
- retval = -EFAULT;
- break;
- case MPU_CONFIG_ACCEL:
- retval = slave_config(accel_adapter, mldl_cfg,
- mldl_cfg->accel,
- (struct ext_slave_config __user *)arg);
- break;
- case MPU_CONFIG_COMPASS:
- retval = slave_config(compass_adapter, mldl_cfg,
- mldl_cfg->compass,
- (struct ext_slave_config __user *)arg);
- break;
- case MPU_CONFIG_PRESSURE:
- retval = slave_config(pressure_adapter, mldl_cfg,
- mldl_cfg->pressure,
- (struct ext_slave_config __user *)arg);
- break;
- case MPU_GET_CONFIG_ACCEL:
- retval = slave_get_config(accel_adapter, mldl_cfg,
- mldl_cfg->accel,
- (struct ext_slave_config __user *)
- arg);
- break;
- case MPU_GET_CONFIG_COMPASS:
- retval = slave_get_config(compass_adapter, mldl_cfg,
- mldl_cfg->compass,
- (struct ext_slave_config __user *)
- arg);
- break;
- case MPU_GET_CONFIG_PRESSURE:
- retval = slave_get_config(pressure_adapter, mldl_cfg,
- mldl_cfg->pressure,
- (struct ext_slave_config __user *)
- arg);
- break;
- case MPU_SUSPEND:
- {
- unsigned long sensors;
- sensors = ~(mldl_cfg->requested_sensors);
- retval = mpu3050_suspend(mldl_cfg,
- client->adapter,
- accel_adapter,
- compass_adapter,
- pressure_adapter,
- ((sensors & ML_THREE_AXIS_GYRO)
- == ML_THREE_AXIS_GYRO),
- ((sensors &
- ML_THREE_AXIS_ACCEL)
- == ML_THREE_AXIS_ACCEL),
- ((sensors &
- ML_THREE_AXIS_COMPASS)
- == ML_THREE_AXIS_COMPASS),
- ((sensors &
- ML_THREE_AXIS_PRESSURE)
- == ML_THREE_AXIS_PRESSURE));
- }
- break;
- case MPU_RESUME:
- {
- unsigned long sensors;
- sensors = mldl_cfg->requested_sensors;
- retval = mpu3050_resume(mldl_cfg,
- client->adapter,
- accel_adapter,
- compass_adapter,
- pressure_adapter,
- sensors & ML_THREE_AXIS_GYRO,
- sensors & ML_THREE_AXIS_ACCEL,
- sensors & ML_THREE_AXIS_COMPASS,
- sensors &
- ML_THREE_AXIS_PRESSURE);
- }
- break;
- case MPU_READ_ACCEL:
- {
- unsigned char data[6];
- retval = mpu3050_read_accel(mldl_cfg, client->adapter,
- data);
-
- if ((ML_SUCCESS == retval) &&
- (copy_to_user((unsigned char __user *)arg,
- data, sizeof(data))))
- retval = -EFAULT;
- }
- break;
- case MPU_READ_COMPASS:
- {
- unsigned char data[6];
- struct i2c_adapter *compass_adapt =
- i2c_get_adapter(mldl_cfg->pdata->compass.adapt_num);
- retval = mpu3050_read_compass(mldl_cfg, compass_adapt,
- data);
- if ((ML_SUCCESS == retval) &&
- (copy_to_user((unsigned char *)arg,
- data, sizeof(data))))
- retval = -EFAULT;
- }
- break;
- case MPU_READ_PRESSURE:
- {
- unsigned char data[3];
- struct i2c_adapter *pressure_adapt =
- i2c_get_adapter(mldl_cfg->pdata->pressure.
- adapt_num);
- retval =
- mpu3050_read_pressure(mldl_cfg, pressure_adapt,
- data);
- if ((ML_SUCCESS == retval)
- &&
- (copy_to_user
- ((unsigned char __user *)arg, data, sizeof(data))))
- retval = -EFAULT;
- }
- break;
- case MPU_READ_MEMORY:
- case MPU_WRITE_MEMORY:
- default:
- dev_err(&this_client->adapter->dev,
- "%s: Unknown cmd %d, arg %lu\n", __func__, cmd, arg);
- retval = -EINVAL;
- }
-
- return retval;
-}
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-void mpu3050_early_suspend(struct early_suspend *h)
-{
- struct mpu_private_data *mpu = container_of(h,
- struct mpu_private_data,
- early_suspend);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *accel_adapter;
- struct i2c_adapter *compass_adapter;
- struct i2c_adapter *pressure_adapter;
- pr_info("%s", __func__);
-
- accel_adapter = i2c_get_adapter(mldl_cfg->pdata->accel.adapt_num);
- compass_adapter = i2c_get_adapter(mldl_cfg->pdata->compass.adapt_num);
- pressure_adapter = i2c_get_adapter(mldl_cfg->pdata->pressure.adapt_num);
-
- dev_dbg(&this_client->adapter->dev, "%s: %d, %d\n", __func__,
- h->level, mpu->mldl_cfg.gyro_is_suspended);
- if (MPU3050_EARLY_SUSPEND_IN_DRIVER)
- (void)mpu3050_suspend(mldl_cfg, this_client->adapter,
- accel_adapter, compass_adapter,
- pressure_adapter, TRUE, TRUE, TRUE, TRUE);
-}
-
-void mpu3050_early_resume(struct early_suspend *h)
-{
- struct mpu_private_data *mpu = container_of(h,
- struct mpu_private_data,
- early_suspend);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *accel_adapter;
- struct i2c_adapter *compass_adapter;
- struct i2c_adapter *pressure_adapter;
-
- accel_adapter = i2c_get_adapter(mldl_cfg->pdata->accel.adapt_num);
- compass_adapter = i2c_get_adapter(mldl_cfg->pdata->compass.adapt_num);
- pressure_adapter = i2c_get_adapter(mldl_cfg->pdata->pressure.adapt_num);
-
- if (MPU3050_EARLY_SUSPEND_IN_DRIVER) {
- if (pid) {
- unsigned long sensors = mldl_cfg->requested_sensors;
- (void)mpu3050_resume(mldl_cfg,
- this_client->adapter,
- accel_adapter,
- compass_adapter,
- pressure_adapter,
- sensors & ML_THREE_AXIS_GYRO,
- sensors & ML_THREE_AXIS_ACCEL,
- sensors & ML_THREE_AXIS_COMPASS,
- sensors & ML_THREE_AXIS_PRESSURE);
- dev_dbg(&this_client->adapter->dev,
- "%s for pid %d\n", __func__, pid);
- }
- }
- dev_dbg(&this_client->adapter->dev, "%s: %d\n", __func__, h->level);
- pr_info("%s: h->level = %d\n", __func__, h->level);
-}
-#endif
-
-void mpu_shutdown(struct i2c_client *client)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *accel_adapter;
- struct i2c_adapter *compass_adapter;
- struct i2c_adapter *pressure_adapter;
- pr_info("%s", __func__);
- accel_adapter = i2c_get_adapter(mldl_cfg->pdata->accel.adapt_num);
- compass_adapter = i2c_get_adapter(mldl_cfg->pdata->compass.adapt_num);
- pressure_adapter = i2c_get_adapter(mldl_cfg->pdata->pressure.adapt_num);
-
- (void)mpu3050_suspend(mldl_cfg, this_client->adapter,
- accel_adapter, compass_adapter, pressure_adapter,
- TRUE, TRUE, TRUE, TRUE);
- dev_dbg(&this_client->adapter->dev, "%s\n", __func__);
-}
-
-int mpu_suspend(struct i2c_client *client, pm_message_t mesg)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *accel_adapter;
- struct i2c_adapter *compass_adapter;
- struct i2c_adapter *pressure_adapter;
-
- accel_adapter = i2c_get_adapter(mldl_cfg->pdata->accel.adapt_num);
- compass_adapter = i2c_get_adapter(mldl_cfg->pdata->compass.adapt_num);
- pressure_adapter = i2c_get_adapter(mldl_cfg->pdata->pressure.adapt_num);
- pr_info("%s", __func__);
- if (!mpu->mldl_cfg.gyro_is_suspended) {
- dev_dbg(&this_client->adapter->dev,
- "%s: suspending on event %d\n", __func__, mesg.event);
- (void)mpu3050_suspend(mldl_cfg, this_client->adapter,
- accel_adapter, compass_adapter,
- pressure_adapter, TRUE, TRUE, TRUE, TRUE);
- } else {
- dev_dbg(&this_client->adapter->dev,
- "%s: Already suspended %d\n", __func__, mesg.event);
- }
- return 0;
-}
-
-int mpu_resume(struct i2c_client *client)
-{
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *accel_adapter;
- struct i2c_adapter *compass_adapter;
- struct i2c_adapter *pressure_adapter;
-
- accel_adapter = i2c_get_adapter(mldl_cfg->pdata->accel.adapt_num);
- pr_info("%s: accel_adapter = %p\n", __func__, accel_adapter);
-
- compass_adapter = i2c_get_adapter(mldl_cfg->pdata->compass.adapt_num);
- pressure_adapter = i2c_get_adapter(mldl_cfg->pdata->pressure.adapt_num);
-
- if (pid) {
- unsigned long sensors = mldl_cfg->requested_sensors;
- (void)mpu3050_resume(mldl_cfg, this_client->adapter,
- accel_adapter,
- compass_adapter,
- pressure_adapter,
- sensors & ML_THREE_AXIS_GYRO,
- sensors & ML_THREE_AXIS_ACCEL,
- sensors & ML_THREE_AXIS_COMPASS,
- sensors & ML_THREE_AXIS_PRESSURE);
- dev_dbg(&this_client->adapter->dev,
- "%s for pid %d\n", __func__, pid);
- }
-
- pr_info("%s: pid = %d\n", __func__, pid);
- return 0;
-}
-
-/* define which file operations are supported */
-static const struct file_operations mpu_fops = {
- .owner = THIS_MODULE,
- .read = mpu_read,
-#if HAVE_COMPAT_IOCTL
- .compat_ioctl = mpu_ioctl,
-#endif
-#if HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = mpu_ioctl,
-#endif
- .open = mpu_open,
- .release = mpu_release,
-};
-
-static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-
-static struct miscdevice i2c_mpu_device = {
- .minor = MISC_DYNAMIC_MINOR,
- .name = "mpu", /* Same for both 3050 and 6000 */
- .fops = &mpu_fops,
-};
-
-#define FACTORY_TEST
-#ifdef FACTORY_TEST
-
-static ssize_t mpu3050_power_on(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int count = 0;
-
- pr_info("%s : this_client = %d\n", __func__, (int)this_client);
- count = sprintf(buf, "%d\n", (this_client != NULL ? 1 : 0));
-
- return count;
-}
-
-static int mpu3050_factory_on(struct i2c_client *client)
-{
- struct mpu_private_data *mpu = i2c_get_clientdata(client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *accel_adapter;
- struct i2c_adapter *compass_adapter;
- struct i2c_adapter *pressure_adapter;
- int prev_gyro_suspended;
- pr_info("%s", __func__);
- accel_adapter = i2c_get_adapter(mldl_cfg->pdata->accel.adapt_num);
- compass_adapter = i2c_get_adapter(mldl_cfg->pdata->compass.adapt_num);
- pressure_adapter = i2c_get_adapter(mldl_cfg->pdata->pressure.adapt_num);
-
- prev_gyro_suspended = mldl_cfg->gyro_is_suspended;
- if (prev_gyro_suspended) {
- unsigned long sensors = mldl_cfg->requested_sensors;
- (void)mpu3050_resume(mldl_cfg,
- client->adapter,
- accel_adapter,
- compass_adapter,
- pressure_adapter,
- sensors & ML_THREE_AXIS_GYRO,
- sensors & ML_THREE_AXIS_ACCEL,
- sensors & ML_THREE_AXIS_COMPASS,
- sensors & ML_THREE_AXIS_PRESSURE);
- }
-
- return prev_gyro_suspended;
-}
-
-static void mpu3050_factory_off(struct i2c_client *client)
-{
- struct mpu_private_data *mpu = i2c_get_clientdata(client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct i2c_adapter *accel_adapter;
- struct i2c_adapter *compass_adapter;
- struct i2c_adapter *pressure_adapter;
- pr_info("%s", __func__);
- accel_adapter = i2c_get_adapter(mldl_cfg->pdata->accel.adapt_num);
- compass_adapter = i2c_get_adapter(mldl_cfg->pdata->compass.adapt_num);
- pressure_adapter = i2c_get_adapter(mldl_cfg->pdata->pressure.adapt_num);
-
- (void)mpu3050_suspend(mldl_cfg,
- client->adapter,
- accel_adapter,
- compass_adapter,
- pressure_adapter, TRUE, TRUE, TRUE, TRUE);
-}
-
-static ssize_t mpu3050_get_temp(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int count = 0;
- short int temperature = 0;
- unsigned char data[2];
- int prev_gyro_suspended;
- pr_info("%s", __func__);
- prev_gyro_suspended = mpu3050_factory_on(this_client);
-
- /*MPUREG_TEMP_OUT_H, 27 0x1b */
- /*MPUREG_TEMP_OUT_L, 28 0x1c */
- /* TEMP_OUT_H/L: 16-bit temperature data (2's complement data format) */
- sensor_i2c_read(this_client->adapter, DEFAULT_MPU_SLAVEADDR,
- MPUREG_TEMP_OUT_H, 2, data);
- temperature = (short)(((data[0]) << 8) | data[1]);
- temperature = (((temperature + 13200) / 280) + 35);
- pr_info("%s :read temperature = %d\n", __func__, temperature);
-
- count = sprintf(buf, "%d\n", temperature);
-
- if (prev_gyro_suspended)
- mpu3050_factory_off(this_client);
-
- return count;
-}
-
-/*
- Defines
-*/
-
-#define DEBUG_OUT 1
-
-#define DEF_GYRO_FULLSCALE (2000) /* gyro full scale dps */
-#define DEF_GYRO_SENS (32768.f/DEF_GYRO_FULLSCALE)
- /* gyro sensitivity LSB/dps */
-#define DEF_PACKET_THRESH (75) /* 600 ms / 8ms / sample */
-#define DEF_TIMING_TOL (.05f) /* 5% */
-#define DEF_BIAS_THRESH (40*DEF_GYRO_SENS)
- /* 40 dps in LSBs */
-#define DEF_RMS_THRESH_SQ (0.4f*0.4f*DEF_GYRO_SENS*DEF_GYRO_SENS)
- /* (.2 dps in LSBs ) ^ 2 */
-#define DEF_TEST_TIME_PER_AXIS (600) /* ms of time spent collecting
- data for each axis,
- multiple of 600ms */
-
-/*
- Macros
-*/
-
-#define CHECK_TEST_ERROR(x) \
- if (x) { \
- pr_info("error %d @ %s|%d\n", x, __func__, __LINE__); \
- return -1; \
- }
-
-#define SHORT_TO_TEMP_C(shrt) (((shrt+13200)/280)+35)
-#define CHARS_TO_SHORT(d) ((((short)(d)[0])<<8)+(d)[1])
-#define fabs(x) (((x) < 0) ? -(x) : (x))
-
-void mpu3050_usleep(unsigned long t)
-{
- unsigned long start = MLOSGetTickCount();
- while (MLOSGetTickCount() - start < t / 1000) {
- }
-}
-
-#define X (0)
-#define Y (1)
-#define Z (2)
-
-static short mpu3050_selftest_gyro_avg[3];
-static int mpu3050_selftest_result;
-static int mpu3050_selftest_bias[3];
-static int mpu3050_selftest_rms[3];
-
-int mpu3050_test_gyro(struct i2c_client *client, short gyro_biases[3],
- short *temp_avg)
-{
- void *mlsl_handle = client->adapter;
- int retVal = 0;
- tMLError result;
-
- int total_count = 0;
- int total_count_axis[3] = { 0, 0, 0 };
- int packet_count;
- unsigned char regs[7];
-
- char a_name[3][2] = { "X", "Y", "Z" };
- int temperature;
- int Avg[3];
- int RMS[3];
- int i, j, tmp;
- unsigned char dataout[20];
-
- short *x, *y, *z;
-
- x = kzalloc(sizeof(*x) * (DEF_TEST_TIME_PER_AXIS / 8 * 4), GFP_KERNEL);
- y = kzalloc(sizeof(*y) * (DEF_TEST_TIME_PER_AXIS / 8 * 4), GFP_KERNEL);
- z = kzalloc(sizeof(*z) * (DEF_TEST_TIME_PER_AXIS / 8 * 4), GFP_KERNEL);
-
- temperature = 0;
-
- /* sample rate = 8ms */
- result = MLSLSerialWriteSingle(mlsl_handle, client->addr,
- MPUREG_SMPLRT_DIV, 0x07);
-
- if (result)
- goto out_i2c_faild;
-
- regs[0] = 0x03; /* filter = 42Hz, analog_sample rate = 1 KHz */
- switch (DEF_GYRO_FULLSCALE) {
- case 2000:
- regs[0] |= 0x18;
- break;
- case 1000:
- regs[0] |= 0x10;
- break;
- case 500:
- regs[0] |= 0x08;
- break;
- case 250:
- default:
- regs[0] |= 0x00;
- break;
- }
- result = MLSLSerialWriteSingle(mlsl_handle, client->addr,
- MPUREG_DLPF_FS_SYNC, regs[0]);
- if (result)
- goto out_i2c_faild;
-
- result = MLSLSerialWriteSingle(mlsl_handle, client->addr,
- MPUREG_INT_CFG, 0x00);
-
- /* 1st, timing test */
- for (j = 0; j < 3; j++) {
-
- pr_info("%s :Collecting gyro data from %s gyro PLL\n",
- __func__, a_name[j]);
-
- /* turn on all gyros, use gyro X for clocking
- Set to Y and Z for 2nd and 3rd iteration */
- result = MLSLSerialWriteSingle(mlsl_handle, client->addr,
- MPUREG_PWR_MGM, j + 1);
- if (result)
- goto out_i2c_faild;
-
- /* wait for 2 ms after switching clock source */
- mpu3050_usleep(2000);
-
- /* we will enable XYZ gyro in FIFO and nothing else */
- result = MLSLSerialWriteSingle(mlsl_handle, client->addr,
- MPUREG_FIFO_EN2, 0x00);
- if (result)
- goto out_i2c_faild;
- /* enable/reset FIFO */
- result = MLSLSerialWriteSingle(mlsl_handle, client->addr,
- MPUREG_USER_CTRL, 0x42);
-
- tmp = (int)(DEF_TEST_TIME_PER_AXIS / 600);
-
- while (tmp-- > 0) {
- /* enable XYZ gyro in FIFO and nothing else */
- result =
- MLSLSerialWriteSingle(mlsl_handle, client->addr,
- MPUREG_FIFO_EN1, 0x70);
- if (result)
- goto out_i2c_faild;
-
- /* wait for 600 ms for data */
- mpu3050_usleep(600000);
-
- /* stop storing gyro in the FIFO */
- result =
- MLSLSerialWriteSingle(mlsl_handle, client->addr,
- MPUREG_FIFO_EN1, 0x00);
- if (result)
- goto out_i2c_faild;
-
- /* Getting number of bytes in FIFO */
- result = MLSLSerialRead(mlsl_handle, client->addr,
- MPUREG_FIFO_COUNTH, 2, dataout);
- if (result)
- goto out_i2c_faild;
- /* number of 6 B packets in the FIFO */
- packet_count = CHARS_TO_SHORT(dataout) / 6;
- pr_info("%s :Packet Count: %d - ",
- __func__, packet_count);
-
- if (abs(packet_count - DEF_PACKET_THRESH)
- <= /* Within +-5% range */
- (int)(DEF_TIMING_TOL * DEF_PACKET_THRESH + .5)) {
- for (i = 0; i < packet_count; i++) {
- /* getting FIFO data */
- result =
- MLSLSerialReadFifo(mlsl_handle,
- client->addr, 6,
- dataout);
- if (result)
- goto out_i2c_faild;
-
- x[total_count + i] =
- CHARS_TO_SHORT(&dataout[0]);
- y[total_count + i] =
- CHARS_TO_SHORT(&dataout[2]);
- z[total_count + i] =
- CHARS_TO_SHORT(&dataout[4]);
- if (DEBUG_OUT && 0) {
- pr_info("%s :Gyros %-4d " \
- ": %+13d %+13d %+13d\n",
- __func__, total_count + i,
- x[total_count + i],
- y[total_count + i],
- z[total_count + i]);
- }
- }
- total_count += packet_count;
- total_count_axis[j] += packet_count;
- pr_info("%s :OK\n", __func__);
- } else {
- retVal |= 1 << j;
- pr_info("%s :NOK - samples ignored\n",
- __func__);
- }
- }
-
- /* remove gyros from FIFO */
- result = MLSLSerialWriteSingle(mlsl_handle, client->addr,
- MPUREG_FIFO_EN1, 0x00);
- if (result)
- goto out_i2c_faild;
-
- /* Read Temperature */
- result = MLSLSerialRead(mlsl_handle, client->addr,
- MPUREG_TEMP_OUT_H, 2, dataout);
- temperature += (short)CHARS_TO_SHORT(dataout);
- }
-
- pr_info("%s :\nTotal %d samples\n\n", __func__, total_count);
-
- /* 2nd, check bias from X and Y PLL clock source */
- tmp = total_count != 0 ? total_count : 1;
- for (i = 0, Avg[X] = .0f, Avg[Y] = .0f, Avg[Z] = .0f;
- i < total_count; i++) {
- Avg[X] += x[i];
- Avg[Y] += y[i];
- Avg[Z] += z[i];
- }
-
- Avg[X] /= tmp;
- Avg[Y] /= tmp;
- Avg[Z] /= tmp;
-
- pr_info("%s :bias : %+13d %+13d %+13d (LSB)\n",
- __func__, Avg[X], Avg[Y], Avg[Z]);
- if (DEBUG_OUT) {
- pr_info("%s : : %+13d %+13d %+13d (dps)\n",
- __func__, Avg[X] / 131, Avg[Y] / 131, Avg[Z] / 131);
- }
- for (j = 0; j < 3; j++) {
- if (abs(Avg[j]) > (int)DEF_BIAS_THRESH) {
- pr_info("%s :%s-Gyro bias (%.0d) exceeded threshold "
- "(threshold = %f)\n", __func__,
- a_name[j], Avg[j], DEF_BIAS_THRESH);
- retVal |= 1 << (3 + j);
- }
- }
-
- /* 3rd and finally, check RMS */
- for (i = 0, RMS[X] = 0.f, RMS[Y] = 0.f, RMS[Z] = 0.f;
- i < total_count; i++) {
- RMS[X] += (x[i] - Avg[X]) * (x[i] - Avg[X]);
- RMS[Y] += (y[i] - Avg[Y]) * (y[i] - Avg[Y]);
- RMS[Z] += (z[i] - Avg[Z]) * (z[i] - Avg[Z]);
- }
-
- for (j = 0; j < 3; j++) {
- if (RMS[j] > (int)DEF_RMS_THRESH_SQ * total_count) {
- pr_info
- ("%s :%s-Gyro RMS (%d) exceeded threshold (%.4f)\n",
- __func__, a_name[j], RMS[j] / total_count,
- DEF_RMS_THRESH_SQ);
- retVal |= 1 << (6 + j);
- }
- }
-
- pr_info("%s :RMS^2 : %+13d %+13d %+13d (LSB-rms)\n",
- __func__,
- (RMS[X] / total_count),
- (RMS[Y] / total_count), (RMS[Z] / total_count));
- if (RMS[X] == 0 || RMS[Y] == 0 || RMS[Z] == 0) {
- /*If any of the RMS noise value returns zero,
- then we might have dead gyro or FIFO/register failure,
- or the part is sleeping */
- retVal |= 1 << 9;
- }
-
- temperature /= 3;
- if (DEBUG_OUT)
- pr_info("%s :Temperature : %+13d %13s %13s (deg. C)\n",
- __func__, SHORT_TO_TEMP_C(temperature), "", "");
-
- /* load into final storage */
- *temp_avg = (short)temperature;
- gyro_biases[X] = (short)Avg[X];
- gyro_biases[Y] = (short)Avg[Y];
- gyro_biases[Z] = (short)Avg[Z];
-
- mpu3050_selftest_bias[X] = (int)Avg[X];
- mpu3050_selftest_bias[Y] = (int)Avg[Y];
- mpu3050_selftest_bias[Z] = (int)Avg[Z];
-
- mpu3050_selftest_rms[X] = RMS[X] / total_count;
- mpu3050_selftest_rms[Y] = RMS[Y] / total_count;
- mpu3050_selftest_rms[Z] = RMS[Z] / total_count;
-
-out_i2c_faild:
- if (result)
- pr_info("%s : error %d", __func__, result);
-
- kfree(x);
- kfree(y);
- kfree(z);
-
- return retVal;
-}
-
-int mpu3050_self_test_once(struct i2c_client *client)
-{
- void *mlsl_handle = client->adapter;
- int result = 0;
-
- short temp_avg;
-
- unsigned char regs[5];
- unsigned long testStart = MLOSGetTickCount();
-
- pr_info("%s :Collecting %d groups of 600 ms samples for each axis\n\n",
- __func__, DEF_TEST_TIME_PER_AXIS / 600);
-
- result = MLSLSerialRead(mlsl_handle, client->addr,
- MPUREG_PWR_MGM, 1, regs);
- CHECK_TEST_ERROR(result);
- /* reset */
- result = MLSLSerialWriteSingle(mlsl_handle, client->addr,
- MPUREG_PWR_MGM, regs[0] | 0x80);
- CHECK_TEST_ERROR(result);
- MLOSSleep(5);
- /* wake up */
- if (regs[0] & 0x40) {
- result = MLSLSerialWriteSingle(mlsl_handle, client->addr,
- MPUREG_PWR_MGM, 0x00);
- CHECK_TEST_ERROR(result);
- }
- MLOSSleep(60);
-
- /* collect gyro and temperature data */
- mpu3050_selftest_result = mpu3050_test_gyro(client,
- mpu3050_selftest_gyro_avg,
- &temp_avg);
-
- pr_info("%s :\nTest time : %ld ms\n",
- __func__, MLOSGetTickCount() - testStart);
-
- return mpu3050_selftest_result;
-}
-
-static ssize_t mpu3050_self_test(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- unsigned char gyro_data[6];
- short int raw[3];
- int count = 0;
- int res = 0;
- int prev_gyro_suspended;
-
-/*MPUREG_GYRO_XOUT_H, 29 0x1d */
-/*MPUREG_GYRO_XOUT_L, 30 0x1e */
-/*MPUREG_GYRO_YOUT_H, 31 0x1f */
-/*MPUREG_GYRO_YOUT_L, 32 0x20 */
-/*MPUREG_GYRO_ZOUT_H, 33 0x21 */
-/*MPUREG_GYRO_ZOUT_L, 34 0x22 */
-
-/* GYRO_XOUT_H/L: 16-bit X gyro output data (2's complement data format) */
-/* GYRO_YOUT_H/L: 16-bit Y gyro output data (2's complement data format) */
-/* GYRO_ZOUT_H/L: 16-bit Z gyro output data (2's complement data format) */
-
- prev_gyro_suspended = mpu3050_factory_on(this_client);
-
- mpu3050_self_test_once(this_client);
-
- res = sensor_i2c_read(this_client->adapter, DEFAULT_MPU_SLAVEADDR,
- MPUREG_GYRO_XOUT_H, 6, gyro_data);
-
- if (res)
- return 0;
-
- raw[0] = (short)(((gyro_data[0]) << 8) | gyro_data[1]);
- raw[1] = (short)(((gyro_data[2]) << 8) | gyro_data[3]);
- raw[2] = (short)(((gyro_data[4]) << 8) | gyro_data[5]);
-
- pr_info("%s: %s %s, %d, %d, %d, %d, %d, %d\n", __func__, buf,
- (!mpu3050_selftest_result ? "OK" : "NG"),
- raw[0], raw[1], raw[2],
- mpu3050_selftest_gyro_avg[0],
- mpu3050_selftest_gyro_avg[1], mpu3050_selftest_gyro_avg[2]);
-
- count = sprintf(buf, "%s, %d, %d, %d, %d, %d, %d\n",
- (!mpu3050_selftest_result ? "OK" : "NG"),
- mpu3050_selftest_bias[0], mpu3050_selftest_bias[1],
- mpu3050_selftest_bias[2],
- mpu3050_selftest_rms[0],
- mpu3050_selftest_rms[1], mpu3050_selftest_rms[2]);
-
- if (prev_gyro_suspended)
- mpu3050_factory_off(this_client);
-
- return count;
-}
-
-static ssize_t mpu3050_acc_read(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- unsigned char acc_data[6];
- s16 x, y, z;
- s32 temp;
-
- struct mpu_private_data *mpu =
- (struct mpu_private_data *)i2c_get_clientdata(this_client);
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
-
- if (mldl_cfg->accel_is_suspended == 1 ||
- (mldl_cfg->dmp_is_running == 0
- && mldl_cfg->accel_is_suspended == 0)) {
- if (is_lis3dh) {
- if (mldl_cfg->accel_is_suspended == 1) {
- sensor_i2c_write_register(this_client->adapter,
- 0x19, 0x20, 0x67);
- MLOSSleep(1);
- }
- sensor_i2c_read(this_client->adapter,
- 0x19, 0x28 | 0x80, 6, acc_data);
-
- if (mldl_cfg->accel_is_suspended == 1) {
- sensor_i2c_write_register(this_client->adapter,
- 0x19, 0x20, 0x18);
- MLOSSleep(1);
- }
- } else
- sensor_i2c_read(this_client->adapter,
- 0x0F, 0x06, 6, acc_data);
- } else if (mldl_cfg->dmp_is_running &&
- mldl_cfg->accel_is_suspended == 0) {
- sensor_i2c_read(this_client->adapter,
- DEFAULT_MPU_SLAVEADDR, 0x23, 6, acc_data);
- }
-
- if (is_lis3dh) {
- x = ((acc_data[0] << 8) | acc_data[1]);
- x = (x >> 4) + cal_data.x;
- y = ((acc_data[2] << 8) | acc_data[3]);
- y = (y >> 4) + cal_data.y;
- z = ((acc_data[4] << 8) | acc_data[5]);
- z = (z >> 4) + cal_data.z;
- } else {
- temp = (s16) ((acc_data[1] << 4) | (acc_data[0] >> 4))
- + cal_data.x;
- if (temp < 2048)
- x = (s16) (temp);
- else
- x = (s16) ((4096 - temp)) * (-1);
-
- temp = (s16) ((acc_data[3] << 4) | (acc_data[2] >> 4))
- + cal_data.y;
- if (temp < 2048)
- y = (s16) (temp);
- else
- y = (s16) ((4096 - temp)) * (-1);
-
- temp = (s16) ((acc_data[5] << 4) | (acc_data[4] >> 4))
- + cal_data.z;
- if (temp < 2048)
- z = (s16) (temp);
- else
- z = (s16) ((4096 - temp)) * (-1);
- }
-
-#if defined(CONFIG_MACH_P8)
- /* x *= (-1); */
- /* y *= (-1); */
- z *= (-1);
- return sprintf(buf, "%d, %d, %d\n", y, x, z);
-
-#elif defined(CONFIG_MACH_P8LTE)
- x *= (-1);
- /* y *= (-1); */
- /* z *= (-1); */
- return sprintf(buf, "%d, %d, %d\n", y, x, z);
-
-#elif defined(CONFIG_MACH_P2)
- /* x *= (-1); */
- /* y *= (-1); */
- z *= (-1);
- return sprintf(buf, "%d, %d, %d\n", y, x, z);
-
-#else
- x *= (-1);
- y *= (-1);
- z *= (-1);
- return sprintf(buf, "%d, %d, %d\n", y, x, z);
-
-#endif
-
-}
-
-static ssize_t accel_calibration_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int err;
-
- err = accel_open_calibration();
- if (err < 0)
- pr_err("%s: accel_open_calibration() failed\n", __func__);
-
- pr_info("accel_calibration_show :%d %d %d\n",
- cal_data.x, cal_data.y, cal_data.z);
-
- if (err < 0)
- err = 0;
- else
- err = 1;
-
- if (cal_data.x == 0 && cal_data.y == 0 && cal_data.z == 0)
- err = 0;
-
- return sprintf(buf, "%d %d %d %d\n",
- err, cal_data.x, cal_data.y, cal_data.z);
-}
-
-static ssize_t accel_calibration_store(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t size)
-{
- bool do_calib;
- int err;
- int count = 0;
- char str[11];
-
- if (sysfs_streq(buf, "1"))
- do_calib = true;
- else if (sysfs_streq(buf, "0"))
- do_calib = false;
- else {
- pr_debug("%s: invalid value %d\n", __func__, *buf);
- return -EINVAL;
- }
-
- err = accel_do_calibrate(do_calib);
- if (err < 0)
- pr_err("%s: accel_do_calibrate() failed\n", __func__);
-
- pr_info("accel_calibration_show :%d %d %d\n",
- cal_data.x, cal_data.y, cal_data.z);
- if (err > 0)
- err = 0;
- count = sprintf(str, "%d\n", err);
-
- strcpy(str, buf);
- return count;
-}
-
-static ssize_t get_accel_vendor_name(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- return sprintf(buf, "%s\n", ACCEL_VENDOR_NAME);
-}
-
-static ssize_t get_accel_chip_name(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- return sprintf(buf, "%s\n", ACCEL_CHIP_NAME);
-}
-
-static ssize_t get_gyro_vendor_name(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- return sprintf(buf, "%s\n", GYRO_VENDOR_NAME);
-}
-
-static ssize_t get_gyro_chip_name(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- return sprintf(buf, "%s\n", GYRO_CHIP_NAME);
-}
-
-static struct device_attribute dev_attr_accel_vendor =
- __ATTR(vendor, S_IRUGO, get_accel_vendor_name, NULL);
-static struct device_attribute dev_attr_accel_chip =
- __ATTR(name, S_IRUGO, get_accel_chip_name, NULL);
-
-static struct device_attribute dev_attr_gyro_vendor =
- __ATTR(vendor, S_IRUGO, get_gyro_vendor_name, NULL);
-static struct device_attribute dev_attr_gyro_chip =
- __ATTR(name, S_IRUGO, get_gyro_chip_name, NULL);
-
-static DEVICE_ATTR(calibration, 0664,
- accel_calibration_show, accel_calibration_store);
-static DEVICE_ATTR(raw_data, S_IRUGO, mpu3050_acc_read, NULL);
-
-static DEVICE_ATTR(power_on, S_IRUGO | S_IWUSR, mpu3050_power_on, NULL);
-static DEVICE_ATTR(temperature, S_IRUGO | S_IWUSR, mpu3050_get_temp, NULL);
-static DEVICE_ATTR(selftest, S_IRUGO | S_IWUSR, mpu3050_self_test, NULL);
-
-static DEVICE_ATTR(gyro_power_on, S_IRUGO | S_IWUSR, mpu3050_power_on, NULL);
-static DEVICE_ATTR(gyro_get_temp, S_IRUGO | S_IWUSR, mpu3050_get_temp, NULL);
-static DEVICE_ATTR(gyro_selftest, S_IRUGO | S_IWUSR, mpu3050_self_test, NULL);
-
-
-static struct device_attribute *accel_sensor_attrs[] = {
- &dev_attr_raw_data,
- &dev_attr_calibration,
- &dev_attr_accel_vendor,
- &dev_attr_accel_chip,
- NULL,
-};
-
-static struct device_attribute *gyro_sensor_attrs[] = {
- &dev_attr_power_on,
- &dev_attr_temperature,
- &dev_attr_selftest,
- &dev_attr_gyro_vendor,
- &dev_attr_gyro_chip,
- NULL,
-};
-
-extern struct class *sec_class;
-extern struct class *sensors_class;
-
-static struct device *sec_mpu3050_dev;
-static struct device *accel_sensor_device;
-static struct device *gyro_sensor_device;
-
-extern int sensors_register(struct device *dev, void *drvdata,
- struct device_attribute *attributes[], char *name);
-#endif
-#define FEATURE_MPU_AUTO_PROBING
-
-#if defined(CONFIG_MPU_SENSORS_KXTF9_LIS3DH)
-
-static int mpu350_auto_probe_accel(struct mpu3050_platform_data *pdata)
-{
- int ret = ML_SUCCESS;
- unsigned char reg = 0;
- struct mpu_private_data *mpu;
- struct mldl_cfg *mldl_cfg;
- struct i2c_adapter *accel_adapter = NULL;
- struct ext_slave_descr *slave_descr = NULL;
- accel_adapter = i2c_get_adapter(pdata->accel.adapt_num);
-
- slave_descr = lis3dh_get_slave_descr();
- ret = MLSLSerialRead(accel_adapter, 0x19, 0x0, 1, &reg);
- if (ret == 0) {
- pdata->accel.get_slave_descr = lis3dh_get_slave_descr;
- pdata->accel.address = 0x19;
-
- mpu = (struct mpu_private_data *)
- i2c_get_clientdata(this_client);
- mldl_cfg = &mpu->mldl_cfg;
- mldl_cfg->accel = slave_descr;
-/*
- printk("auto probe : found %s\n",
- pdata->accel.get_slave_descr()->name);
-*/
- is_lis3dh = 1;
- }
- return ret;
-}
-
-#endif
-
-int mpu3050_probe(struct i2c_client *client, const struct i2c_device_id *devid)
-{
- struct mpu3050_platform_data *pdata;
- struct mpu_private_data *mpu;
- struct mldl_cfg *mldl_cfg;
- int res = 0;
- int retry = 5;
-
- struct i2c_adapter *accel_adapter = NULL;
- struct i2c_adapter *compass_adapter = NULL;
- struct i2c_adapter *pressure_adapter = NULL;
-
- pr_info("================%s===============\n", __func__);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
- if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
- res = -ENODEV;
- goto out_check_functionality_failed;
- }
-#ifdef FACTORY_TEST
- res = sensors_register(accel_sensor_device, NULL,
- accel_sensor_attrs, "accelerometer_sensor");
- if (res)
- pr_err("%s: cound not register accelerometer "\
- "sensor device(%d).\n", __func__, res);
-
- res = sensors_register(gyro_sensor_device, NULL,
- gyro_sensor_attrs, "gyro_sensor");
- if (res)
- pr_err("%s: cound not register gyro "\
- "sensor device(%d).\n", __func__, res);
-
- sec_mpu3050_dev = device_create(sec_class, NULL, 0, NULL,
- "sec_mpu3050");
- if (IS_ERR(sec_mpu3050_dev))
- pr_info("%s :Failed to create device!", __func__);
-
- if (device_create_file(sec_mpu3050_dev, &dev_attr_gyro_power_on) < 0) {
- pr_info("%s :Failed to create device file(%s)!\n", __func__,
- dev_attr_gyro_power_on.attr.name);
- return -1;
- }
- if (device_create_file(sec_mpu3050_dev, &dev_attr_gyro_get_temp) < 0) {
- pr_info("%s :Failed to create device file(%s)!\n", __func__,
- dev_attr_gyro_get_temp.attr.name);
- device_remove_file(sec_mpu3050_dev, &dev_attr_gyro_power_on);
- return -1;
- }
- if (device_create_file(sec_mpu3050_dev, &dev_attr_gyro_selftest) < 0) {
- pr_info("%s :Failed to create device file(%s)!\n", __func__,
- dev_attr_gyro_selftest.attr.name);
- device_remove_file(sec_mpu3050_dev, &dev_attr_gyro_power_on);
- device_remove_file(sec_mpu3050_dev, &dev_attr_gyro_get_temp);
- return -1;
- }
-#endif
- mpu = kzalloc(sizeof(struct mpu_private_data), GFP_KERNEL);
- if (!mpu) {
- res = -ENOMEM;
- goto out_alloc_data_failed;
- }
-
- i2c_set_clientdata(client, mpu);
- this_client = client;
- mldl_cfg = &mpu->mldl_cfg;
- pdata = (struct mpu3050_platform_data *)client->dev.platform_data;
- if (!pdata) {
- dev_warn(&this_client->adapter->dev,
- "Warning no platform data for mpu3050\n");
- } else {
- mldl_cfg->pdata = pdata;
-
- pdata->accel.get_slave_descr = get_accel_slave_descr;
- pdata->compass.get_slave_descr = get_compass_slave_descr;
- pdata->pressure.get_slave_descr = get_pressure_slave_descr;
-
- is_lis3dh = 0;
-#if defined(CONFIG_MPU_SENSORS_KXTF9_LIS3DH)
- mpu350_auto_probe_accel(pdata);
- if (pdata->accel.get_slave_descr && !is_lis3dh) {
- mldl_cfg->accel = pdata->accel.get_slave_descr();
- dev_info(&this_client->adapter->dev,
- "%s: +%s\n", MPU_NAME, mldl_cfg->accel->name);
- accel_adapter = i2c_get_adapter(pdata->accel.adapt_num);
-
- if (!accel_adapter) {
- pr_info("%s : accel_adapter i2c get fail",
- __func__);
- goto out_accel_failed;
- }
-
- if (pdata->accel.irq > 0) {
- dev_info(&this_client->adapter->dev,
- "Installing Accel irq using %d\n",
- pdata->accel.irq);
- res = slaveirq_init(accel_adapter,
- &pdata->accel, "accelirq");
- if (res)
- goto out_accelirq_failed;
- } else {
- dev_warn(&this_client->adapter->dev,
- "WARNING: Accel irq not assigned\n");
- }
- } else
-#else
- if (pdata->accel.get_slave_descr) {
- mldl_cfg->accel = pdata->accel.get_slave_descr();
- dev_info(&this_client->adapter->dev,
- "%s: +%s\n", MPU_NAME, mldl_cfg->accel->name);
- accel_adapter = i2c_get_adapter(pdata->accel.adapt_num);
-
- if (!accel_adapter) {
- pr_info("%s : accel_adapter i2c get fail",
- __func__);
- goto out_accel_failed;
- }
-
- if (pdata->accel.irq > 0) {
- dev_info(&this_client->adapter->dev,
- "Installing Accel irq using %d\n",
- pdata->accel.irq);
- res = slaveirq_init(accel_adapter,
- &pdata->accel, "accelirq");
- if (res)
- goto out_accelirq_failed;
- } else {
- dev_warn(&this_client->adapter->dev,
- "WARNING: Accel irq not assigned\n");
- }
- } else
-#endif
- {
- dev_warn(&this_client->adapter->dev,
- "%s: No Accel Present\n", MPU_NAME);
- }
-
- if (pdata->compass.get_slave_descr) {
- mldl_cfg->compass = pdata->compass.get_slave_descr();
- dev_info(&this_client->adapter->dev,
- "%s: +%s\n", MPU_NAME,
- mldl_cfg->compass->name);
- compass_adapter =
- i2c_get_adapter(pdata->compass.adapt_num);
-
- if (!compass_adapter) {
- pr_info("%s : compass_adapter i2c get fail",
- __func__);
- goto out_compass_failed;
- }
-
- if (pdata->compass.irq > 0) {
- dev_info(&this_client->adapter->dev,
- "Installing Compass irq using %d\n",
- pdata->compass.irq);
- res = slaveirq_init(compass_adapter,
- &pdata->compass,
- "compassirq");
- if (res)
- goto out_compassirq_failed;
- } else {
- dev_warn(&this_client->adapter->dev,
- "WARNING: Compass irq not assigned\n");
- }
- } else {
- dev_warn(&this_client->adapter->dev,
- "%s: No Compass Present\n", MPU_NAME);
- }
-
- if (pdata->pressure.get_slave_descr) {
- mldl_cfg->pressure = pdata->pressure.get_slave_descr();
- dev_info(&this_client->adapter->dev,
- "%s: +%s\n", MPU_NAME,
- mldl_cfg->pressure->name);
- pressure_adapter =
- i2c_get_adapter(pdata->pressure.adapt_num);
-
- if (!pressure_adapter) {
- pr_info("%s : pressure_adapter i2c get fail",
- __func__);
- goto out_pressure_failed;
- }
-
- if (pdata->pressure.irq > 0) {
- dev_info(&this_client->adapter->dev,
- "Installing Pressure irq using %d\n",
- pdata->pressure.irq);
- res = slaveirq_init(pressure_adapter,
- &pdata->pressure,
- "pressureirq");
- if (res)
- goto out_pressureirq_failed;
- } else {
- dev_warn(&this_client->adapter->dev,
- "WARNING: Pressure irq not assigned\n");
- }
- } else {
- dev_warn(&this_client->adapter->dev,
- "%s: No Pressure Present\n", MPU_NAME);
- }
- }
-
- mldl_cfg->addr = client->addr;
-
- do {
- res = mpu3050_open(&mpu->mldl_cfg, client->adapter,
- accel_adapter, compass_adapter,
- pressure_adapter);
- if (res) {
- dev_err(&this_client->adapter->dev,
- "%s i2c Init Error, ret = %d\n", MPU_NAME, res);
- mpu3050_usleep(5000);
- }
- } while (retry-- && res);
-
- if (res) {
- dev_err(&this_client->adapter->dev,
- "Unable to open %s %d\n", MPU_NAME, res);
- res = -ENODEV;
- goto out_whoami_failed;
- }
-
- res = misc_register(&i2c_mpu_device);
- if (res < 0) {
- dev_err(&this_client->adapter->dev,
- "ERROR: misc_register returned %d\n", res);
- goto out_misc_register_failed;
- }
-
- if (this_client->irq > 0) {
- dev_info(&this_client->adapter->dev,
- "Installing irq using %d\n", this_client->irq);
- res = mpuirq_init(this_client);
- if (res)
- goto out_mpuirq_failed;
- } else {
- dev_warn(&this_client->adapter->dev,
- "WARNING: %s irq not assigned\n", MPU_NAME);
- }
-
- mpu_accel_init(&mpu->mldl_cfg, client->adapter);
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
- mpu->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1;
- mpu->early_suspend.suspend = mpu3050_early_suspend;
- mpu->early_suspend.resume = mpu3050_early_resume;
- register_early_suspend(&mpu->early_suspend);
-#endif
- return res;
-
-out_mpuirq_failed:
- misc_deregister(&i2c_mpu_device);
-out_misc_register_failed:
- mpu3050_close(&mpu->mldl_cfg, client->adapter,
- accel_adapter, compass_adapter, pressure_adapter);
-out_whoami_failed:
- if (pdata && pdata->pressure.get_slave_descr && pdata->pressure.irq)
- slaveirq_exit(&pdata->pressure);
-out_pressureirq_failed:
-out_pressure_failed:
- if (pdata && pdata->compass.get_slave_descr && pdata->compass.irq)
- slaveirq_exit(&pdata->compass);
-out_compassirq_failed:
-out_compass_failed:
- if (pdata && pdata->accel.get_slave_descr && pdata->accel.irq)
- slaveirq_exit(&pdata->accel);
-out_accelirq_failed:
-out_accel_failed:
- kfree(mpu);
-out_alloc_data_failed:
-out_check_functionality_failed:
- dev_err(&this_client->adapter->dev, "%s failed %d\n", __func__, res);
- return res;
-}
-
-static int mpu3050_remove(struct i2c_client *client)
-{
- struct mpu_private_data *mpu = i2c_get_clientdata(client);
- struct i2c_adapter *accel_adapter;
- struct i2c_adapter *compass_adapter;
- struct i2c_adapter *pressure_adapter;
- struct mldl_cfg *mldl_cfg = &mpu->mldl_cfg;
- struct mpu3050_platform_data *pdata = mldl_cfg->pdata;
-
- accel_adapter = i2c_get_adapter(mldl_cfg->pdata->accel.adapt_num);
- compass_adapter = i2c_get_adapter(mldl_cfg->pdata->compass.adapt_num);
- pressure_adapter = i2c_get_adapter(mldl_cfg->pdata->pressure.adapt_num);
-
- dev_dbg(&client->adapter->dev, "%s\n", __func__);
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
- unregister_early_suspend(&mpu->early_suspend);
-#endif
- mpu3050_close(mldl_cfg, client->adapter,
- accel_adapter, compass_adapter, pressure_adapter);
-
- if (client->irq)
- mpuirq_exit();
-
- if (pdata && pdata->pressure.get_slave_descr && pdata->pressure.irq)
- slaveirq_exit(&pdata->pressure);
-
- if (pdata && pdata->compass.get_slave_descr && pdata->compass.irq)
- slaveirq_exit(&pdata->compass);
-
- if (pdata && pdata->accel.get_slave_descr && pdata->accel.irq)
- slaveirq_exit(&pdata->accel);
-
- misc_deregister(&i2c_mpu_device);
- kfree(mpu);
-
- mpu_accel_exit(mldl_cfg);
-
- return 0;
-}
-
-static const struct i2c_device_id mpu3050_id[] = {
- {MPU_NAME, 0},
- {}
-};
-
-MODULE_DEVICE_TABLE(i2c, mpu3050_id);
-
-static struct i2c_driver mpu3050_driver = {
- .class = I2C_CLASS_HWMON,
- .probe = mpu3050_probe,
- .remove = mpu3050_remove,
- .id_table = mpu3050_id,
- .driver = {
- .owner = THIS_MODULE,
- .name = MPU_NAME,
- },
- .address_list = normal_i2c,
- .shutdown = mpu_shutdown, /* optional */
- .suspend = mpu_suspend, /* optional */
- .resume = mpu_resume, /* optional */
-};
-
-static int __init mpu_init(void)
-{
- int res = i2c_add_driver(&mpu3050_driver);
- pid = 0;
-
- pr_info("%s res=%d\n", __func__, res);
- if (res)
- dev_err(&this_client->adapter->dev, "%s failed\n", __func__);
- return res;
-}
-
-static void __exit mpu_exit(void)
-{
- pr_info(KERN_DEBUG "%s\n", __func__);
- i2c_del_driver(&mpu3050_driver);
-}
-
-module_init(mpu_init);
-module_exit(mpu_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("User space character device interface for MPU3050");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS(MPU_NAME);
diff --git a/drivers/misc/mpu3050/mpu-i2c.c b/drivers/misc/mpu3050/mpu-i2c.c
deleted file mode 100755
index b1298d3..0000000
--- a/drivers/misc/mpu3050/mpu-i2c.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-/**
- * @defgroup
- * @brief
- *
- * @{
- * @file mpu-i2c.c
- * @brief
- *
- */
-
-#include <linux/i2c.h>
-#include "mpu.h"
-
-int sensor_i2c_write(struct i2c_adapter *i2c_adap,
- unsigned char address,
- unsigned int len, unsigned char const *data)
-{
- struct i2c_msg msgs[1];
- int res;
-
- if (NULL == data || NULL == i2c_adap)
- return -EINVAL;
-
- msgs[0].addr = address;
- msgs[0].flags = 0; /* write */
- msgs[0].buf = (unsigned char *) data;
- msgs[0].len = len;
-
- res = i2c_transfer(i2c_adap, msgs, 1);
- if (res < 1)
- return res;
- else
- return 0;
-}
-
-int sensor_i2c_write_register(struct i2c_adapter *i2c_adap,
- unsigned char address,
- unsigned char reg, unsigned char value)
-{
- unsigned char data[2];
-
- data[0] = reg;
- data[1] = value;
- return sensor_i2c_write(i2c_adap, address, 2, data);
-}
-
-int sensor_i2c_read(struct i2c_adapter *i2c_adap,
- unsigned char address,
- unsigned char reg,
- unsigned int len, unsigned char *data)
-{
- struct i2c_msg msgs[2];
- int res;
-
- if (NULL == data || NULL == i2c_adap)
- return -EINVAL;
-
- msgs[0].addr = address;
- msgs[0].flags = 0; /* write */
- msgs[0].buf = &reg;
- msgs[0].len = 1;
-
- msgs[1].addr = address;
- msgs[1].flags = I2C_M_RD;
- msgs[1].buf = data;
- msgs[1].len = len;
-
- res = i2c_transfer(i2c_adap, msgs, 2);
- if (res < 2)
- return res;
- else
- return 0;
-}
-
-int mpu_memory_read(struct i2c_adapter *i2c_adap,
- unsigned char mpu_addr,
- unsigned short mem_addr,
- unsigned int len, unsigned char *data)
-{
- unsigned char bank[2];
- unsigned char addr[2];
- unsigned char buf;
-
- struct i2c_msg msgs[4];
- int ret;
-
- if (NULL == data || NULL == i2c_adap)
- return -EINVAL;
-
- bank[0] = MPUREG_BANK_SEL;
- bank[1] = mem_addr >> 8;
-
- addr[0] = MPUREG_MEM_START_ADDR;
- addr[1] = mem_addr & 0xFF;
-
- buf = MPUREG_MEM_R_W;
-
- /* Write Message */
- msgs[0].addr = mpu_addr;
- msgs[0].flags = 0;
- msgs[0].buf = bank;
- msgs[0].len = sizeof(bank);
-
- msgs[1].addr = mpu_addr;
- msgs[1].flags = 0;
- msgs[1].buf = addr;
- msgs[1].len = sizeof(addr);
-
- msgs[2].addr = mpu_addr;
- msgs[2].flags = 0;
- msgs[2].buf = &buf;
- msgs[2].len = 1;
-
- msgs[3].addr = mpu_addr;
- msgs[3].flags = I2C_M_RD;
- msgs[3].buf = data;
- msgs[3].len = len;
-
- ret = i2c_transfer(i2c_adap, msgs, 4);
- if (ret != 4)
- return ret;
- else
- return 0;
-}
-
-int mpu_memory_write(struct i2c_adapter *i2c_adap,
- unsigned char mpu_addr,
- unsigned short mem_addr,
- unsigned int len, unsigned char const *data)
-{
- unsigned char bank[2];
- unsigned char addr[2];
- unsigned char buf[513];
-
- struct i2c_msg msgs[3];
- int ret;
-
- if (NULL == data || NULL == i2c_adap)
- return -EINVAL;
- if (len >= (sizeof(buf) - 1))
- return -ENOMEM;
-
- bank[0] = MPUREG_BANK_SEL;
- bank[1] = mem_addr >> 8;
-
- addr[0] = MPUREG_MEM_START_ADDR;
- addr[1] = mem_addr & 0xFF;
-
- buf[0] = MPUREG_MEM_R_W;
- memcpy(buf + 1, data, len);
-
- /* Write Message */
- msgs[0].addr = mpu_addr;
- msgs[0].flags = 0;
- msgs[0].buf = bank;
- msgs[0].len = sizeof(bank);
-
- msgs[1].addr = mpu_addr;
- msgs[1].flags = 0;
- msgs[1].buf = addr;
- msgs[1].len = sizeof(addr);
-
- msgs[2].addr = mpu_addr;
- msgs[2].flags = 0;
- msgs[2].buf = (unsigned char *) buf;
- msgs[2].len = len + 1;
-
- ret = i2c_transfer(i2c_adap, msgs, 3);
- if (ret != 3)
- return ret;
- else
- return 0;
-}
-
-/**
- * @}
- */
diff --git a/drivers/misc/mpu3050/mpu-i2c.h b/drivers/misc/mpu3050/mpu-i2c.h
deleted file mode 100755
index 0bbc8c6..0000000
--- a/drivers/misc/mpu3050/mpu-i2c.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-/**
- * @defgroup
- * @brief
- *
- * @{
- * @file mpu-i2c.c
- * @brief
- *
- *
- */
-
-#ifndef __MPU_I2C_H__
-#define __MPU_I2C_H__
-
-#include <linux/i2c.h>
-
-int sensor_i2c_write(struct i2c_adapter *i2c_adap,
- unsigned char address,
- unsigned int len, unsigned char const *data);
-
-int sensor_i2c_write_register(struct i2c_adapter *i2c_adap,
- unsigned char address,
- unsigned char reg, unsigned char value);
-
-int sensor_i2c_read(struct i2c_adapter *i2c_adap,
- unsigned char address,
- unsigned char reg,
- unsigned int len, unsigned char *data);
-
-int mpu_memory_read(struct i2c_adapter *i2c_adap,
- unsigned char mpu_addr,
- unsigned short mem_addr,
- unsigned int len, unsigned char *data);
-
-int mpu_memory_write(struct i2c_adapter *i2c_adap,
- unsigned char mpu_addr,
- unsigned short mem_addr,
- unsigned int len, unsigned char const *data);
-
-#endif /* __MPU_I2C_H__ */
diff --git a/drivers/misc/mpu3050/mpuirq.c b/drivers/misc/mpu3050/mpuirq.c
deleted file mode 100755
index 8623855..0000000
--- a/drivers/misc/mpu3050/mpuirq.c
+++ /dev/null
@@ -1,448 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-#include <linux/interrupt.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/stat.h>
-#include <linux/irq.h>
-#include <linux/signal.h>
-#include <linux/miscdevice.h>
-#include <linux/i2c.h>
-#include <linux/i2c-dev.h>
-#include <linux/workqueue.h>
-#include <linux/poll.h>
-
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/wait.h>
-#include <linux/uaccess.h>
-#include <linux/io.h>
-
-#include "mpu.h"
-#include "mpuirq.h"
-#include "mldl_cfg.h"
-#include "mpu-i2c.h"
-#include "mpu-accel.h"
-
-#ifdef FEATURE_GYRO_SELFTEST_INTERRUPT
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/ioport.h>
-#include <linux/delay.h>
-#include <linux/serial_core.h>
-#include <linux/io.h>
-#include <linux/platform_device.h>
-
-#include <mach/regs-gpio.h>
-
-#include <mach/map.h>
-#include <mach/regs-mem.h>
-#include <mach/regs-clock.h>
-#include <mach/media.h>
-#include <mach/gpio.h>
-#endif
-#define MPUIRQ_NAME "mpuirq"
-
-/* function which gets accel data and sends it to MPU */
-
-DECLARE_WAIT_QUEUE_HEAD(mpuirq_wait);
-
-struct mpuirq_dev_data {
- struct work_struct work;
- struct i2c_client *mpu_client;
- struct miscdevice *dev;
- int irq;
- int pid;
- int accel_divider;
- int data_ready;
- int timeout;
-};
-
-static struct mpuirq_dev_data mpuirq_dev_data;
-static struct mpuirq_data mpuirq_data;
-static char *interface = MPUIRQ_NAME;
-
-static void mpu_accel_data_work_fcn(struct work_struct *work);
-
-#ifdef FEATURE_GYRO_SELFTEST_INTERRUPT
-static irqreturn_t mpuirq_selftest_handler(int irq, void *dev_id);
-unsigned long long selftest_get_times[10];
-#endif
-
-static int mpuirq_open(struct inode *inode, struct file *file);
-static int mpuirq_release(struct inode *inode, struct file *file);
-static ssize_t mpuirq_read(struct file *file, char *buf, size_t count,
- loff_t *ppos);
-unsigned int mpuirq_poll(struct file *file, struct poll_table_struct *poll);
-static long mpuirq_ioctl(struct file *file, unsigned int cmd,
- unsigned long arg);
-static irqreturn_t mpuirq_handler(int irq, void *dev_id);
-
-static int mpuirq_open(struct inode *inode, struct file *file)
-{
- dev_dbg(mpuirq_dev_data.dev->this_device,
- "%s current->pid %d\n", __func__, current->pid);
- mpuirq_dev_data.pid = current->pid;
- file->private_data = &mpuirq_dev_data;
- /* we could do some checking on the flags supplied by "open" */
- /* i.e. O_NONBLOCK */
- /* -> set some flag to disable interruptible_sleep_on in mpuirq_read */
- return 0;
-}
-
-/* close function - called when the "file" /dev/mpuirq is closed in userspace */
-static int mpuirq_release(struct inode *inode, struct file *file)
-{
- dev_dbg(mpuirq_dev_data.dev->this_device, "mpuirq_release\n");
- return 0;
-}
-
-/* read function called when from /dev/mpuirq is read */
-static ssize_t mpuirq_read(struct file *file,
- char *buf, size_t count, loff_t * ppos)
-{
- int len, err;
- struct mpuirq_dev_data *p_mpuirq_dev_data = file->private_data;
-
- if (!mpuirq_dev_data.data_ready && mpuirq_dev_data.timeout > 0) {
- wait_event_interruptible_timeout(mpuirq_wait,
- mpuirq_dev_data.data_ready,
- mpuirq_dev_data.timeout);
- }
-
- if (mpuirq_dev_data.data_ready && NULL != buf
- && count >= sizeof(mpuirq_data)) {
- err = copy_to_user(buf, &mpuirq_data, sizeof(mpuirq_data));
- mpuirq_data.data_type = 0;
- } else {
- return 0;
- }
- if (err != 0) {
- dev_err(p_mpuirq_dev_data->dev->this_device,
- "Copy to user returned %d\n", err);
- return -EFAULT;
- }
- mpuirq_dev_data.data_ready = 0;
- len = sizeof(mpuirq_data);
- return len;
-}
-
-unsigned int mpuirq_poll(struct file *file, struct poll_table_struct *poll)
-{
- int mask = 0;
-
- poll_wait(file, &mpuirq_wait, poll);
- if (mpuirq_dev_data.data_ready)
- mask |= POLLIN | POLLRDNORM;
- return mask;
-}
-
-/* ioctl - I/O control */
-static long mpuirq_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- int data;
-
- switch (cmd) {
- case MPUIRQ_SET_TIMEOUT:
- mpuirq_dev_data.timeout = arg;
- break;
-
- case MPUIRQ_GET_INTERRUPT_CNT:
- data = mpuirq_data.interruptcount - 1;
- if (mpuirq_data.interruptcount > 1)
- mpuirq_data.interruptcount = 1;
-
- if (copy_to_user((int *)arg, &data, sizeof(int)))
- return -EFAULT;
- break;
- case MPUIRQ_GET_IRQ_TIME:
- if (copy_to_user((int *)arg, &mpuirq_data.irqtime,
- sizeof(mpuirq_data.irqtime)))
- return -EFAULT;
- mpuirq_data.irqtime = 0;
- break;
- case MPUIRQ_SET_FREQUENCY_DIVIDER:
- mpuirq_dev_data.accel_divider = arg;
- break;
-
-#ifdef FEATURE_GYRO_SELFTEST_INTERRUPT
- case MPUIRQ_SET_SELFTEST_IRQ_HANDLER:
- {
- int res;
- /* unregister mpuirq handler */
- if (mpuirq_dev_data.irq > 0) {
- free_irq(mpuirq_dev_data.irq,
- &mpuirq_dev_data.irq);
- }
- /* register selftest irq handler */
- if (mpuirq_dev_data.irq > 0) {
- struct mldl_cfg *mldl_cfg =
- (struct mldl_cfg *)
- i2c_get_clientdata(mpuirq_dev_data.
- mpu_client);
- unsigned long flags;
-
- if (BIT_ACTL_LOW ==
- ((mldl_cfg->pdata->int_config) & BIT_ACTL))
- flags = IRQF_TRIGGER_FALLING;
- else
- flags = IRQF_TRIGGER_RISING;
-
- res = request_irq(mpuirq_dev_data.irq,
- mpuirq_selftest_handler, flags,
- interface,
- &mpuirq_dev_data.irq);
-
- if (res) {
- pr_info("MPUIRQ_SET_SELFTEST_IRQ_" \
- "HANDLER: cannot register IRQ %d\n",
- mpuirq_dev_data.irq);
- }
- }
- }
- break;
- case MPUIRQ_SET_MPUIRQ_HANDLER:
- {
- int res;
- /* unregister selftest irq handler */
- if (mpuirq_dev_data.irq > 0)
- free_irq(mpuirq_dev_data.irq,
- &mpuirq_dev_data.irq);
-
- /* register mpuirq handler */
- if (mpuirq_dev_data.irq > 0) {
- struct mldl_cfg *mldl_cfg =
- (struct mldl_cfg *)
- i2c_get_clientdata(mpuirq_dev_data.
- mpu_client);
- unsigned long flags;
-
- if (BIT_ACTL_LOW ==
- ((mldl_cfg->pdata->int_config) & BIT_ACTL))
- flags = IRQF_TRIGGER_FALLING;
- else
- flags = IRQF_TRIGGER_RISING;
-
- res =
- request_irq(mpuirq_dev_data.irq,
- mpuirq_handler, flags,
- interface,
- &mpuirq_dev_data.irq);
- }
- }
- break;
- case MPUIRQ_GET_MPUIRQ_JIFFIES:
- {
-
- mpuirq_data.mpuirq_jiffies = 0;
-
- if (copy_to_user
- ((void *)arg, selftest_get_times,
- sizeof(selftest_get_times))) {
- memset(selftest_get_times, 0,
- sizeof(selftest_get_times));
- return -EFAULT;
- }
-
- memset(selftest_get_times, 0,
- sizeof(selftest_get_times));
- }
- break;
-#endif
- default:
- retval = -EINVAL;
- }
- return retval;
-}
-
-static void mpu_accel_data_work_fcn(struct work_struct *work)
-{
- struct mpuirq_dev_data *mpuirq_dev_data =
- (struct mpuirq_dev_data *)work;
- struct mldl_cfg *mldl_cfg = (struct mldl_cfg *)
- i2c_get_clientdata(mpuirq_dev_data->mpu_client);
- struct i2c_adapter *accel_adapter;
- unsigned char wbuff[16];
- unsigned char rbuff[16];
- int ii;
-
- accel_adapter = i2c_get_adapter(mldl_cfg->pdata->accel.adapt_num);
- mldl_cfg->accel->read(accel_adapter,
- mldl_cfg->accel, &mldl_cfg->pdata->accel, rbuff);
-
- /* @todo add other data formats here as well */
- if (EXT_SLAVE_BIG_ENDIAN == mldl_cfg->accel->endian) {
- for (ii = 0; ii < 3; ii++) {
- wbuff[2 * ii + 1] = rbuff[2 * ii + 1];
- wbuff[2 * ii + 2] = rbuff[2 * ii + 0];
- }
- } else {
- memcpy(wbuff + 1, rbuff, mldl_cfg->accel->len);
- }
-
- wbuff[7] = 0;
- wbuff[8] = 1; /*set semaphore */
-
- mpu_memory_write(mpuirq_dev_data->mpu_client->adapter,
- mldl_cfg->addr, 0x0108, 8, wbuff);
-}
-
-#ifdef FEATURE_GYRO_SELFTEST_INTERRUPT
-static irqreturn_t mpuirq_selftest_handler(int irq, void *dev_id)
-{
-/* static int mycount=0; */
- struct timeval irqtime;
- unsigned long long temp_time;
-
- do_gettimeofday(&irqtime);
-
- temp_time = (((long long)irqtime.tv_sec) << 32);
- temp_time += irqtime.tv_usec;
-
- if (mpuirq_data.mpuirq_jiffies < 10)
- selftest_get_times[mpuirq_data.mpuirq_jiffies++] = temp_time;
-
- return IRQ_HANDLED;
-}
-#endif
-
-static irqreturn_t mpuirq_handler(int irq, void *dev_id)
-{
- static int mycount;
- struct timeval irqtime;
- mycount++;
-
- mpuirq_data.interruptcount++;
-
- /* wake up (unblock) for reading data from userspace */
- /* and ignore first interrupt generated in module init */
- mpuirq_dev_data.data_ready = 1;
-
- do_gettimeofday(&irqtime);
- mpuirq_data.irqtime = (((long long)irqtime.tv_sec) << 32);
- mpuirq_data.irqtime += irqtime.tv_usec;
-
- if ((mpuirq_dev_data.accel_divider >= 0) &&
- (0 == (mycount % (mpuirq_dev_data.accel_divider + 1)))) {
- schedule_work((struct work_struct *)(&mpuirq_dev_data));
- }
-
- wake_up_interruptible(&mpuirq_wait);
-
- return IRQ_HANDLED;
-
-}
-
-/* define which file operations are supported */
-const struct file_operations mpuirq_fops = {
- .owner = THIS_MODULE,
- .read = mpuirq_read,
- .poll = mpuirq_poll,
-
-#if HAVE_COMPAT_IOCTL
- .compat_ioctl = mpuirq_ioctl,
-#endif
-#if HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = mpuirq_ioctl,
-#endif
- .open = mpuirq_open,
- .release = mpuirq_release,
-};
-
-static struct miscdevice mpuirq_device = {
- .minor = MISC_DYNAMIC_MINOR,
- .name = MPUIRQ_NAME,
- .fops = &mpuirq_fops,
-};
-
-int mpuirq_init(struct i2c_client *mpu_client)
-{
-
- int res;
- struct mldl_cfg *mldl_cfg =
- (struct mldl_cfg *)i2c_get_clientdata(mpu_client);
-
- /* work_struct initialization */
- INIT_WORK((struct work_struct *)&mpuirq_dev_data,
- mpu_accel_data_work_fcn);
- mpuirq_dev_data.mpu_client = mpu_client;
-
- dev_info(&mpu_client->adapter->dev,
- "Module Param interface = %s\n", interface);
-
- mpuirq_dev_data.irq = mpu_client->irq;
- mpuirq_dev_data.pid = 0;
- mpuirq_dev_data.accel_divider = -1;
- mpuirq_dev_data.data_ready = 0;
- mpuirq_dev_data.timeout = 0;
- mpuirq_dev_data.dev = &mpuirq_device;
-
- if (mpuirq_dev_data.irq) {
- unsigned long flags;
- if (BIT_ACTL_LOW == ((mldl_cfg->pdata->int_config) & BIT_ACTL))
- flags = IRQF_TRIGGER_FALLING;
- else
- flags = IRQF_TRIGGER_RISING;
-
- res =
- request_irq(mpuirq_dev_data.irq, mpuirq_handler, flags,
- interface, &mpuirq_dev_data.irq);
- if (res) {
- dev_err(&mpu_client->adapter->dev,
- "myirqtest: cannot register IRQ %d\n",
- mpuirq_dev_data.irq);
- } else {
- res = misc_register(&mpuirq_device);
- if (res < 0) {
- dev_err(&mpu_client->adapter->dev,
- "misc_register returned %d\n", res);
- free_irq(mpuirq_dev_data.irq,
- &mpuirq_dev_data.irq);
- }
- }
-
- } else {
- res = 0;
- }
-
- return res;
-}
-
-void mpuirq_exit(void)
-{
- /* Free the IRQ first before flushing the work */
- if (mpuirq_dev_data.irq > 0)
- free_irq(mpuirq_dev_data.irq, &mpuirq_dev_data.irq);
-
- flush_scheduled_work();
-
- dev_info(mpuirq_device.this_device, "Unregistering %s\n", MPUIRQ_NAME);
- misc_deregister(&mpuirq_device);
-
- return;
-}
-
-module_param(interface, charp, S_IRUGO | S_IWUSR);
-MODULE_PARM_DESC(interface, "The Interface name");
diff --git a/drivers/misc/mpu3050/mpuirq.h b/drivers/misc/mpu3050/mpuirq.h
deleted file mode 100755
index d6c1987..0000000
--- a/drivers/misc/mpu3050/mpuirq.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-#ifndef __MPUIRQ__
-#define __MPUIRQ__
-
-#ifdef __KERNEL__
-#include <linux/i2c-dev.h>
-#endif
-
-#define MPUIRQ_ENABLE_DEBUG (1)
-#define MPUIRQ_GET_INTERRUPT_CNT (2)
-#define MPUIRQ_GET_IRQ_TIME (3)
-#define MPUIRQ_GET_LED_VALUE (4)
-#define MPUIRQ_SET_TIMEOUT (5)
-#define MPUIRQ_SET_ACCEL_INFO (6)
-#define MPUIRQ_SET_FREQUENCY_DIVIDER (7)
-
-#ifdef FEATURE_GYRO_SELFTEST_INTERRUPT
-#define MPUIRQ_GET_MPUIRQ_JIFFIES (8)
-#define MPUIRQ_SET_SELFTEST_IRQ_HANDLER (9)
-#define MPUIRQ_SET_MPUIRQ_HANDLER (10)
-#endif
-
-#ifdef __KERNEL__
-
-void mpuirq_exit(void);
-int mpuirq_init(struct i2c_client *mpu_client);
-
-#endif
-
-#endif
diff --git a/drivers/misc/mpu3050/sensors_core.c b/drivers/misc/mpu3050/sensors_core.c
deleted file mode 100755
index b652631..0000000
--- a/drivers/misc/mpu3050/sensors_core.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Universal sensors core class
- *
- * Author : Ryunkyun Park <ryun.park@samsung.com>
- */
-
-#include <linux/module.h>
-#include <linux/types.h>
-#include <linux/init.h>
-#include <linux/device.h>
-#include <linux/fs.h>
-#include <linux/err.h>
-/* #include <linux/sensors_core.h> */
-
-struct class *sensors_class;
-static atomic_t sensor_count;
-static DEFINE_MUTEX(sensors_mutex);
-
-/**
- * Create sysfs interface
- */
-static void set_sensor_attr(struct device *dev,
- struct device_attribute *attributes[])
-{
- int i;
-
- for (i = 0; attributes[i] != NULL; i++) {
- if ((device_create_file(dev, attributes[i])) < 0) {
- pr_info("[SENSOR CORE] fail!!! device_create_file" \
- "( dev, attributes[%d] )\n", i);
- }
- }
-}
-
-int sensors_register(struct device *dev, void *drvdata,
- struct device_attribute *attributes[], char *name)
-{
- int ret = 0;
-
- if (!sensors_class) {
- sensors_class = class_create(THIS_MODULE, "sensors");
- if (IS_ERR(sensors_class))
- return PTR_ERR(sensors_class);
- }
-
- mutex_lock(&sensors_mutex);
-
- dev = device_create(sensors_class, NULL, 0, drvdata, "%s", name);
-
- if (IS_ERR(dev)) {
- ret = PTR_ERR(dev);
- pr_err("[SENSORS CORE] device_create failed! [%d]\n", ret);
- return ret;
- }
-
- set_sensor_attr(dev, attributes);
-
- atomic_inc(&sensor_count);
-
- mutex_unlock(&sensors_mutex);
-
- return 0;
-}
-
-void sensors_unregister(struct device *dev)
-{
- /* TODO : Unregister device */
-}
-
-static int __init sensors_class_init(void)
-{
- pr_info("[SENSORS CORE] sensors_class_init\n");
- sensors_class = class_create(THIS_MODULE, "sensors");
-
- if (IS_ERR(sensors_class))
- return PTR_ERR(sensors_class);
-
- atomic_set(&sensor_count, 0);
- sensors_class->dev_uevent = NULL;
-
- return 0;
-}
-
-static void __exit sensors_class_exit(void)
-{
- class_destroy(sensors_class);
-}
-
-EXPORT_SYMBOL_GPL(sensors_register);
-EXPORT_SYMBOL_GPL(sensors_unregister);
-
-/* exported for the APM Power driver, APM emulation */
-EXPORT_SYMBOL_GPL(sensors_class);
-
-subsys_initcall(sensors_class_init);
-module_exit(sensors_class_exit);
-
-MODULE_DESCRIPTION("Universal sensors core class");
-MODULE_AUTHOR("Ryunkyun Park <ryun.park@samsung.com>");
-MODULE_LICENSE("GPL");
diff --git a/drivers/misc/mpu3050/slaveirq.c b/drivers/misc/mpu3050/slaveirq.c
deleted file mode 100755
index 2ee5385..0000000
--- a/drivers/misc/mpu3050/slaveirq.c
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-#include <linux/interrupt.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/stat.h>
-#include <linux/irq.h>
-#include <linux/signal.h>
-#include <linux/miscdevice.h>
-#include <linux/i2c.h>
-#include <linux/i2c-dev.h>
-#include <linux/poll.h>
-
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/wait.h>
-#include <linux/uaccess.h>
-#include <linux/io.h>
-#include <linux/wait.h>
-#include <linux/slab.h>
-
-#include "mpu.h"
-#include "slaveirq.h"
-#include "mldl_cfg.h"
-#include "mpu-i2c.h"
-
-/* function which gets slave data and sends it to SLAVE */
-
-struct slaveirq_dev_data {
- struct miscdevice dev;
- struct i2c_client *slave_client;
- struct mpuirq_data data;
- wait_queue_head_t slaveirq_wait;
- int irq;
- int pid;
- int data_ready;
- int timeout;
-};
-
-/* The following depends on patch fa1f68db6ca7ebb6fc4487ac215bffba06c01c28
- * drivers: misc: pass miscdevice pointer via file private data
- */
-static int slaveirq_open(struct inode *inode, struct file *file)
-{
- /* Device node is availabe in the file->private_data, this is
- * exactly what we want so we leave it there */
- struct slaveirq_dev_data *data =
- container_of(file->private_data, struct slaveirq_dev_data, dev);
-
- dev_dbg(data->dev.this_device,
- "%s current->pid %d\n", __func__, current->pid);
- data->pid = current->pid;
- return 0;
-}
-
-static int slaveirq_release(struct inode *inode, struct file *file)
-{
- struct slaveirq_dev_data *data =
- container_of(file->private_data, struct slaveirq_dev_data, dev);
- dev_dbg(data->dev.this_device, "slaveirq_release\n");
- return 0;
-}
-
-/* read function called when from /dev/slaveirq is read */
-static ssize_t slaveirq_read(struct file *file,
- char *buf, size_t count, loff_t *ppos)
-{
- int len, err;
- struct slaveirq_dev_data *data =
- container_of(file->private_data, struct slaveirq_dev_data, dev);
-
- if (!data->data_ready) {
- wait_event_interruptible_timeout(data->slaveirq_wait,
- data->data_ready,
- data->timeout);
- }
-
- if (data->data_ready && NULL != buf
- && count >= sizeof(data->data)) {
- err = copy_to_user(buf, &data->data, sizeof(data->data));
- data->data.data_type = 0;
- } else {
- return 0;
- }
- if (err != 0) {
- dev_err(data->dev.this_device,
- "Copy to user returned %d\n", err);
- return -EFAULT;
- }
- data->data_ready = 0;
- len = sizeof(data->data);
- return len;
-}
-
-unsigned int slaveirq_poll(struct file *file, struct poll_table_struct *poll)
-{
- int mask = 0;
- struct slaveirq_dev_data *data =
- container_of(file->private_data, struct slaveirq_dev_data, dev);
-
- poll_wait(file, &data->slaveirq_wait, poll);
- if (data->data_ready)
- mask |= POLLIN | POLLRDNORM;
- return mask;
-}
-
-/* ioctl - I/O control */
-static long slaveirq_ioctl(struct file *file,
- unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- int tmp;
- struct slaveirq_dev_data *data =
- container_of(file->private_data, struct slaveirq_dev_data, dev);
-
- switch (cmd) {
- case SLAVEIRQ_SET_TIMEOUT:
- data->timeout = arg;
- break;
-
- case SLAVEIRQ_GET_INTERRUPT_CNT:
- tmp = data->data.interruptcount - 1;
- if (data->data.interruptcount > 1)
- data->data.interruptcount = 1;
-
- if (copy_to_user((int *) arg, &tmp, sizeof(int)))
- return -EFAULT;
- break;
- case SLAVEIRQ_GET_IRQ_TIME:
- if (copy_to_user((int *) arg, &data->data.irqtime,
- sizeof(data->data.irqtime)))
- return -EFAULT;
- data->data.irqtime = 0;
- break;
- default:
- retval = -EINVAL;
- }
- return retval;
-}
-
-static irqreturn_t slaveirq_handler(int irq, void *dev_id)
-{
- struct slaveirq_dev_data *data = (struct slaveirq_dev_data *)dev_id;
- static int mycount;
- struct timeval irqtime;
- mycount++;
-
- data->data.interruptcount++;
-
- /* wake up (unblock) for reading data from userspace */
- /* and ignore first interrupt generated in module init */
- data->data_ready = 1;
-
- do_gettimeofday(&irqtime);
- data->data.irqtime = (((long long) irqtime.tv_sec) << 32);
- data->data.irqtime += irqtime.tv_usec;
- data->data.data_type |= 1;
-
- wake_up_interruptible(&data->slaveirq_wait);
-
- return IRQ_HANDLED;
-
-}
-
-/* define which file operations are supported */
-static const struct file_operations slaveirq_fops = {
- .owner = THIS_MODULE,
- .read = slaveirq_read,
- .poll = slaveirq_poll,
-
-#if HAVE_COMPAT_IOCTL
- .compat_ioctl = slaveirq_ioctl,
-#endif
-#if HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = slaveirq_ioctl,
-#endif
- .open = slaveirq_open,
- .release = slaveirq_release,
-};
-
-int slaveirq_init(struct i2c_adapter *slave_adapter,
- struct ext_slave_platform_data *pdata,
- char *name)
-{
-
- int res;
- struct slaveirq_dev_data *data;
-
- if (!pdata->irq)
- return -EINVAL;
-
- pdata->irq_data = kzalloc(sizeof(*data),
- GFP_KERNEL);
- data = (struct slaveirq_dev_data *) pdata->irq_data;
- if (!data)
- return -ENOMEM;
-
- data->dev.minor = MISC_DYNAMIC_MINOR;
- data->dev.name = name;
- data->dev.fops = &slaveirq_fops;
- data->irq = pdata->irq;
- data->pid = 0;
- data->data_ready = 0;
- data->timeout = 0;
-
- res = request_irq(data->irq, slaveirq_handler, IRQF_TRIGGER_RISING,
- data->dev.name, data);
-
- if (res) {
- dev_err(&slave_adapter->dev,
- "myirqtest: cannot register IRQ %d\n",
- data->irq);
- goto out_request_irq;
- }
-
- res = misc_register(&data->dev);
- if (res < 0) {
- dev_err(&slave_adapter->dev,
- "misc_register returned %d\n",
- res);
- goto out_misc_register;
- }
-
- init_waitqueue_head(&data->slaveirq_wait);
- return res;
-
-out_misc_register:
- free_irq(data->irq, data);
-out_request_irq:
- kfree(pdata->irq_data);
- pdata->irq_data = NULL;
-
- return res;
-}
-
-void slaveirq_exit(struct ext_slave_platform_data *pdata)
-{
- struct slaveirq_dev_data *data = pdata->irq_data;
-
- if (!pdata->irq_data || data->irq <= 0)
- return;
-
- dev_info(data->dev.this_device, "Unregistering %s\n",
- data->dev.name);
-
- free_irq(data->irq, data);
- misc_deregister(&data->dev);
- kfree(pdata->irq_data);
- pdata->irq_data = NULL;
-}
diff --git a/drivers/misc/mpu3050/slaveirq.h b/drivers/misc/mpu3050/slaveirq.h
deleted file mode 100755
index ca9c7e4..0000000
--- a/drivers/misc/mpu3050/slaveirq.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-#ifndef __SLAVEIRQ__
-#define __SLAVEIRQ__
-
-#ifdef __KERNEL__
-#include <linux/i2c-dev.h>
-#endif
-
-#include "mpu.h"
-#include "mpuirq.h"
-
-#define SLAVEIRQ_ENABLE_DEBUG (1)
-#define SLAVEIRQ_GET_INTERRUPT_CNT (2)
-#define SLAVEIRQ_GET_IRQ_TIME (3)
-#define SLAVEIRQ_GET_LED_VALUE (4)
-#define SLAVEIRQ_SET_TIMEOUT (5)
-#define SLAVEIRQ_SET_SLAVE_INFO (6)
-
-#ifdef __KERNEL__
-
-void slaveirq_exit(struct ext_slave_platform_data *pdata);
-int slaveirq_init(struct i2c_adapter *slave_adapter,
- struct ext_slave_platform_data *pdata,
- char *name);
-
-#endif
-
-#endif
diff --git a/drivers/misc/mpu3050/timerirq.c b/drivers/misc/mpu3050/timerirq.c
deleted file mode 100755
index 53b42d2..0000000
--- a/drivers/misc/mpu3050/timerirq.c
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
-$License:
-Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-$
-*/
-#include <linux/interrupt.h>
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/stat.h>
-#include <linux/signal.h>
-#include <linux/miscdevice.h>
-#include <linux/i2c.h>
-#include <linux/i2c-dev.h>
-#include <linux/poll.h>
-
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/wait.h>
-#include <linux/uaccess.h>
-#include <linux/io.h>
-#include <linux/timer.h>
-#include <linux/slab.h>
-
-#include "mpu.h"
-#include "mltypes.h"
-#include "timerirq.h"
-
-/* function which gets timer data and sends it to TIMER */
-struct timerirq_data {
- int pid;
- int data_ready;
- int run;
- int timeout;
- unsigned long period;
- struct mpuirq_data data;
- struct completion timer_done;
- wait_queue_head_t timerirq_wait;
- struct timer_list timer;
- struct miscdevice *dev;
-};
-
-static struct miscdevice *timerirq_dev_data;
-
-static void timerirq_handler(unsigned long arg)
-{
- struct timerirq_data *data = (struct timerirq_data *)arg;
- struct timeval irqtime;
-
- /* dev_info(data->dev->this_device,
- "%s, %ld\n", __func__, (unsigned long)data); */
-
- data->data.interruptcount++;
-
- data->data_ready = 1;
-
- do_gettimeofday(&irqtime);
- data->data.irqtime = (((long long) irqtime.tv_sec) << 32);
- data->data.irqtime += irqtime.tv_usec;
- data->data.data_type |= 1;
-
- wake_up_interruptible(&data->timerirq_wait);
-
- if (data->run)
- mod_timer(&data->timer,
- jiffies + msecs_to_jiffies(data->period));
- else
- complete(&data->timer_done);
-}
-
-static int start_timerirq(struct timerirq_data *data)
-{
- dev_dbg(data->dev->this_device,
- "%s current->pid %d\n", __func__, current->pid);
-
- /* Timer already running... success */
- if (data->run)
- return 0;
-
- /* Don't allow a period of 0 since this would fire constantly */
- if (!data->period)
- return -EINVAL;
-
- data->run = TRUE;
- data->data_ready = FALSE;
-
- init_completion(&data->timer_done);
- setup_timer(&data->timer, timerirq_handler, (unsigned long)data);
-
- return mod_timer(&data->timer,
- jiffies + msecs_to_jiffies(data->period));
-}
-
-static int stop_timerirq(struct timerirq_data *data)
-{
- dev_dbg(data->dev->this_device,
- "%s current->pid %lx\n", __func__, (unsigned long)data);
-
- if (data->run) {
- data->run = FALSE;
- mod_timer(&data->timer, jiffies + 1);
- wait_for_completion(&data->timer_done);
- }
- return 0;
-}
-
-/* The following depends on patch fa1f68db6ca7ebb6fc4487ac215bffba06c01c28
- * drivers: misc: pass miscdevice pointer via file private data
- */
-static int timerirq_open(struct inode *inode, struct file *file)
-{
- /* Device node is availabe in the file->private_data, this is
- * exactly what we want so we leave it there */
- struct miscdevice *dev_data = file->private_data;
- struct timerirq_data *data = kzalloc(sizeof(*data), GFP_KERNEL);
- if (!data)
- return -ENOMEM;
-
- data->dev = dev_data;
- file->private_data = data;
- data->pid = current->pid;
- init_waitqueue_head(&data->timerirq_wait);
-
- dev_dbg(data->dev->this_device,
- "%s current->pid %d\n", __func__, current->pid);
- return 0;
-}
-
-static int timerirq_release(struct inode *inode, struct file *file)
-{
- struct timerirq_data *data = file->private_data;
- dev_dbg(data->dev->this_device, "timerirq_release\n");
- if (data->run)
- stop_timerirq(data);
- kfree(data);
- return 0;
-}
-
-/* read function called when from /dev/timerirq is read */
-static ssize_t timerirq_read(struct file *file,
- char *buf, size_t count, loff_t *ppos)
-{
- int len, err;
- struct timerirq_data *data = file->private_data;
-
- if (!data->data_ready &&
- data->timeout) {
- wait_event_interruptible_timeout(data->timerirq_wait,
- data->data_ready,
- data->timeout);
- }
-
- if (data->data_ready && NULL != buf
- && count >= sizeof(data->data)) {
- err = copy_to_user(buf, &data->data, sizeof(data->data));
- data->data.data_type = 0;
- } else {
- return 0;
- }
- if (err != 0) {
- dev_err(data->dev->this_device,
- "Copy to user returned %d\n", err);
- return -EFAULT;
- }
- data->data_ready = 0;
- len = sizeof(data->data);
- return len;
-}
-
-static unsigned int timerirq_poll(struct file *file,
- struct poll_table_struct *poll)
-{
- int mask = 0;
- struct timerirq_data *data = file->private_data;
-
- poll_wait(file, &data->timerirq_wait, poll);
- if (data->data_ready)
- mask |= POLLIN | POLLRDNORM;
- return mask;
-}
-
-/* ioctl - I/O control */
-static long timerirq_ioctl(struct file *file,
- unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- int tmp;
- struct timerirq_data *data = file->private_data;
-
- dev_dbg(data->dev->this_device,
- "%s current->pid %d, %d, %ld\n",
- __func__, current->pid, cmd, arg);
-
- if (!data)
- return -EFAULT;
-
- switch (cmd) {
- case TIMERIRQ_SET_TIMEOUT:
- data->timeout = arg;
- break;
- case TIMERIRQ_GET_INTERRUPT_CNT:
- tmp = data->data.interruptcount - 1;
- if (data->data.interruptcount > 1)
- data->data.interruptcount = 1;
-
- if (copy_to_user((int *) arg, &tmp, sizeof(int)))
- return -EFAULT;
- break;
- case TIMERIRQ_START:
- data->period = arg;
- retval = start_timerirq(data);
- break;
- case TIMERIRQ_STOP:
- retval = stop_timerirq(data);
- break;
- default:
- retval = -EINVAL;
- }
- return retval;
-}
-
-/* define which file operations are supported */
-static const struct file_operations timerirq_fops = {
- .owner = THIS_MODULE,
- .read = timerirq_read,
- .poll = timerirq_poll,
-
-#if HAVE_COMPAT_IOCTL
- .compat_ioctl = timerirq_ioctl,
-#endif
-#if HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = timerirq_ioctl,
-#endif
- .open = timerirq_open,
- .release = timerirq_release,
-};
-
-static int __init timerirq_init(void)
-{
-
- int res;
- static struct miscdevice *data;
-
- data = kzalloc(sizeof(*data), GFP_KERNEL);
- if (!data)
- return -ENOMEM;
- timerirq_dev_data = data;
- data->minor = MISC_DYNAMIC_MINOR;
- data->name = "timerirq";
- data->fops = &timerirq_fops;
-
- res = misc_register(data);
- if (res < 0) {
- dev_err(data->this_device,
- "misc_register returned %d\n", res);
- kfree(data);
- return res;
- }
-
- return res;
-}
-module_init(timerirq_init);
-
-static void __exit timerirq_exit(void)
-{
- struct miscdevice *data = timerirq_dev_data;
-
- dev_info(data->this_device, "Unregistering %s\n",
- data->name);
-
- misc_deregister(data);
- kfree(data);
-
- timerirq_dev_data = NULL;
-}
-module_exit(timerirq_exit);
-
-MODULE_AUTHOR("Invensense Corporation");
-MODULE_DESCRIPTION("Timer IRQ device driver.");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("timerirq");
diff --git a/drivers/misc/mpu3050/timerirq.h b/drivers/misc/mpu3050/timerirq.h
deleted file mode 100755
index a38b490..0000000
--- a/drivers/misc/mpu3050/timerirq.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- $License:
- Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- $
- */
-
-#ifndef __TIMERIRQ__
-#define __TIMERIRQ__
-
-#define TIMERIRQ_SET_TIMEOUT (5)
-#define TIMERIRQ_GET_INTERRUPT_CNT (7)
-#define TIMERIRQ_START (8)
-#define TIMERIRQ_STOP (9)
-
-#endif
diff --git a/drivers/misc/tzic.c b/drivers/misc/tzic.c
deleted file mode 100644
index 6a5e3ba..0000000
--- a/drivers/misc/tzic.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Samsung TZIC Driver
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * 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.
- */
-
-#define KMSG_COMPONENT "TZIC"
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/fs.h>
-#include <linux/platform_device.h>
-#include <linux/debugfs.h>
-#include <linux/cdev.h>
-#include <linux/uaccess.h>
-#include <linux/sched.h>
-#include <linux/list.h>
-#include <linux/mutex.h>
-#include <linux/android_pmem.h>
-#include <linux/io.h>
-#include <linux/types.h>
-#include <asm/smc.h>
-
-#define TZIC_DEV "tzic"
-#define SMC_CMD_STORE_BINFO (-201)
-
-static int gotoCpu0(void);
-static int gotoAllCpu(void) __attribute__ ((unused));
-
-u32 exynos_smc1(u32 cmd, u32 arg1, u32 arg2, u32 arg3)
-{
- register u32 reg0 __asm__("r0") = cmd;
- register u32 reg1 __asm__("r1") = arg1;
- register u32 reg2 __asm__("r2") = arg2;
- register u32 reg3 __asm__("r3") = arg3;
-
- __asm__ volatile (
-#ifdef REQUIRES_SEC
- ".arch_extension sec\n"
-#endif
- "smc 0\n"
- : "+r"(reg0), "+r"(reg1), "+r"(reg2), "+r"(reg3)
- );
-
- return reg0;
-}
-
-#if defined(CONFIG_FELICA)
-int exynos_smc_read_oemflag(u32 ctrl_word, u32 *val)
-{
- register u32 reg0 __asm__("r0");
- register u32 reg1 __asm__("r1");
- register u32 reg2 __asm__("r2");
- register u32 reg3 __asm__("r3");
- u32 idx = 0;
-
- for (idx = 0; reg2 != ctrl_word; idx++) {
- reg0 = -202;
- reg1 = 1;
- reg2 = idx;
-
- __asm__ volatile (
-#ifdef REQUIRES_SEC
- ".arch_extension sec\n"
-#endif
- "smc 0\n"
- :"+r" (reg0), "+r"(reg1),
- "+r"(reg2), "+r"(reg3)
- );
- if (reg1)
- return -1;
- }
-
- reg0 = -202;
- reg1 = 1;
- reg2 = idx;
-
- __asm__ volatile (
-#ifdef REQUIRES_SEC
- ".arch_extension sec\n"
-#endif
- "smc 0\n"
- :"+r" (reg0), "+r"(reg1), "+r"(reg2),
- "+r"(reg3)
- );
- if (reg1)
- return -1;
-
- *val = reg2;
-
- return 0;
-}
-#endif
-
-static DEFINE_MUTEX(tzic_mutex);
-static struct class *driver_class;
-static dev_t tzic_device_no;
-static struct cdev tzic_cdev;
-
-#define LOG printk
-#define TZIC_IOC_MAGIC 0x9E
-#define TZIC_IOCTL_SET_FUSE_REQ _IO(TZIC_IOC_MAGIC, 1)
-#define TZIC_IOCTL_GET_FUSE_REQ _IOR(TZIC_IOC_MAGIC, 0, unsigned int)
-
-static long tzic_ioctl(struct file *file, unsigned cmd, unsigned long arg)
-{
- int ret = 0;
-
- ret = gotoCpu0();
- if (0 != ret) {
- LOG(KERN_INFO "changing core failed!");
- return -1;
- }
-
- if (cmd == TZIC_IOCTL_SET_FUSE_REQ) {
- LOG(KERN_INFO "set_fuse");
- exynos_smc1(SMC_CMD_STORE_BINFO, 0x80010001, 0, 0);
- exynos_smc1(SMC_CMD_STORE_BINFO, 0x00000001, 0, 0);
- } else if (cmd == TZIC_IOCTL_GET_FUSE_REQ) {
- LOG(KERN_INFO "get_fuse");
-#if defined(CONFIG_FELICA)
- exynos_smc_read_oemflag(0x80010001, (u32 *) arg);
-#else
- LOG(KERN_INFO "get_fuse not supported : CONFIG_FELICA");
-#endif
- } else {
- LOG(KERN_INFO "command error");
- }
-
- gotoAllCpu();
-
- return 0;
-}
-
-static const struct file_operations tzic_fops = {
- .owner = THIS_MODULE,
- .unlocked_ioctl = tzic_ioctl,
-};
-
-static int __init tzic_init(void)
-{
- int rc;
- struct device *class_dev;
-
- rc = alloc_chrdev_region(&tzic_device_no, 0, 1, TZIC_DEV);
- if (rc < 0) {
- LOG(KERN_INFO "alloc_chrdev_region failed %d", rc);
- return rc;
- }
-
- driver_class = class_create(THIS_MODULE, TZIC_DEV);
- if (IS_ERR(driver_class)) {
- rc = -ENOMEM;
- LOG(KERN_INFO "class_create failed %d", rc);
- goto unregister_chrdev_region;
- }
-
- class_dev = device_create(driver_class, NULL, tzic_device_no, NULL,
- TZIC_DEV);
- if (!class_dev) {
- LOG(KERN_INFO "class_device_create failed %d", rc);
- rc = -ENOMEM;
- goto class_destroy;
- }
-
- cdev_init(&tzic_cdev, &tzic_fops);
- tzic_cdev.owner = THIS_MODULE;
-
- rc = cdev_add(&tzic_cdev, MKDEV(MAJOR(tzic_device_no), 0), 1);
- if (rc < 0) {
- LOG(KERN_INFO "cdev_add failed %d", rc);
- goto class_device_destroy;
- }
-
- return 0;
-
- class_device_destroy:
- device_destroy(driver_class, tzic_device_no);
- class_destroy:
- class_destroy(driver_class);
- unregister_chrdev_region:
- unregister_chrdev_region(tzic_device_no, 1);
- return rc;
-}
-
-static void __exit tzic_exit(void)
-{
- device_destroy(driver_class, tzic_device_no);
- class_destroy(driver_class);
- unregister_chrdev_region(tzic_device_no, 1);
-}
-
-static int gotoCpu0(void)
-{
- int ret = 0;
- struct cpumask mask = CPU_MASK_CPU0;
-
- LOG(KERN_INFO "System has %d CPU's, we are on CPU #%d\n"
- "\tBinding this process to CPU #0.\n"
- "\tactive mask is %lx, setting it to mask=%lx\n",
- nr_cpu_ids,
- raw_smp_processor_id(), cpu_active_mask->bits[0], mask.bits[0]);
- ret = set_cpus_allowed_ptr(current, &mask);
- if (0 != ret)
- LOG(KERN_INFO "set_cpus_allowed_ptr=%d.\n", ret);
- LOG(KERN_INFO "And now we are on CPU #%d", raw_smp_processor_id());
-
- return ret;
-}
-
-static int gotoAllCpu(void)
-{
- int ret = 0;
- struct cpumask mask = CPU_MASK_ALL;
-
- LOG(KERN_INFO "System has %d CPU's, we are on CPU #%d\n"
- "\tBinding this process to CPU #0.\n"
- "\tactive mask is %lx, setting it to mask=%lx\n",
- nr_cpu_ids,
- raw_smp_processor_id(), cpu_active_mask->bits[0], mask.bits[0]);
- ret = set_cpus_allowed_ptr(current, &mask);
- if (0 != ret)
- LOG(KERN_INFO "set_cpus_allowed_ptr=%d.\n", ret);
- LOG(KERN_INFO "And now we are on CPU #%d", raw_smp_processor_id());
-
- return ret;
-}
-
-MODULE_LICENSE("GPL v2");
-MODULE_DESCRIPTION("Samsung TZIC Driver");
-MODULE_VERSION("1.00");
-
-module_init(tzic_init);
-module_exit(tzic_exit);
diff --git a/drivers/net/wireless/ath/ath6kl/bmi.c b/drivers/net/wireless/ath/ath6kl/bmi.c
deleted file mode 100755
index 05d1d89..0000000
--- a/drivers/net/wireless/ath/ath6kl/bmi.c
+++ /dev/null
@@ -1,548 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "core.h"
-#include "hif-ops.h"
-#include "target.h"
-#include "debug.h"
-
-int ath6kl_bmi_done(struct ath6kl *ar)
-{
- int ret;
- u32 cid = BMI_DONE;
-
- if (ar->bmi.done_sent) {
- ath6kl_dbg(ATH6KL_DBG_BMI, "bmi done skipped\n");
- return 0;
- }
-
- ar->bmi.done_sent = true;
-
- ret = ath6kl_hif_bmi_write(ar, (u8 *)&cid, sizeof(cid));
- if (ret) {
- ath6kl_err("Unable to send bmi done: %d\n", ret);
- return ret;
- }
-
- return 0;
-}
-
-int ath6kl_bmi_get_target_info(struct ath6kl *ar,
- struct ath6kl_bmi_target_info *targ_info)
-{
- int ret;
- u32 cid = BMI_GET_TARGET_INFO;
-
- if (ar->bmi.done_sent) {
- ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
- return -EACCES;
- }
-
- ret = ath6kl_hif_bmi_write(ar, (u8 *)&cid, sizeof(cid));
- if (ret) {
- ath6kl_err("Unable to send get target info: %d\n", ret);
- return ret;
- }
-
- if (ar->hif_type == ATH6KL_HIF_TYPE_USB) {
- ret = ath6kl_hif_bmi_read(ar, (u8 *)targ_info,
- sizeof(*targ_info));
- } else {
- ret = ath6kl_hif_bmi_read(ar, (u8 *)&targ_info->version,
- sizeof(targ_info->version));
- }
-
- if (ret) {
- ath6kl_err("Unable to recv target info: %d\n", ret);
- return ret;
- }
-
- if (le32_to_cpu(targ_info->version) == TARGET_VERSION_SENTINAL) {
- /* Determine how many bytes are in the Target's targ_info */
- ret = ath6kl_hif_bmi_read(ar,
- (u8 *)&targ_info->byte_count,
- sizeof(targ_info->byte_count));
- if (ret) {
- ath6kl_err("unable to read target info byte count: %d\n",
- ret);
- return ret;
- }
-
- /*
- * The target's targ_info doesn't match the host's targ_info.
- * We need to do some backwards compatibility to make this work.
- */
- if (le32_to_cpu(targ_info->byte_count) != sizeof(*targ_info)) {
- WARN_ON(1);
- return -EINVAL;
- }
-
- /* Read the remainder of the targ_info */
- ret = ath6kl_hif_bmi_read(ar,
- ((u8 *)targ_info) +
- sizeof(targ_info->byte_count),
- sizeof(*targ_info) -
- sizeof(targ_info->byte_count));
-
- if (ret) {
- ath6kl_err("Unable to read target info (%d bytes): %d\n",
- targ_info->byte_count, ret);
- return ret;
- }
- }
-
- ath6kl_dbg(ATH6KL_DBG_BMI, "target info (ver: 0x%x type: 0x%x)\n",
- targ_info->version, targ_info->type);
-
- return 0;
-}
-
-int ath6kl_bmi_read(struct ath6kl *ar, u32 addr, u8 *buf, u32 len)
-{
- u32 cid = BMI_READ_MEMORY;
- int ret;
- u32 offset;
- u32 len_remain, rx_len;
- u16 size;
-
- if (ar->bmi.done_sent) {
- ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
- return -EACCES;
- }
-
- size = ar->bmi.max_data_size + sizeof(cid) + sizeof(addr) + sizeof(len);
- if (size > ar->bmi.max_cmd_size) {
- WARN_ON(1);
- return -EINVAL;
- }
- memset(ar->bmi.cmd_buf, 0, size);
-
- ath6kl_dbg(ATH6KL_DBG_BMI,
- "bmi read memory: device: addr: 0x%x, len: %d\n",
- addr, len);
-
- len_remain = len;
-
- while (len_remain) {
- rx_len = (len_remain < ar->bmi.max_data_size) ?
- len_remain : ar->bmi.max_data_size;
- offset = 0;
- memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
- offset += sizeof(cid);
- memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
- offset += sizeof(addr);
- memcpy(&(ar->bmi.cmd_buf[offset]), &rx_len, sizeof(rx_len));
- offset += sizeof(len);
-
- ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
- if (ret) {
- ath6kl_err("Unable to write to the device: %d\n",
- ret);
- return ret;
- }
- ret = ath6kl_hif_bmi_read(ar, ar->bmi.cmd_buf, rx_len);
- if (ret) {
- ath6kl_err("Unable to read from the device: %d\n",
- ret);
- return ret;
- }
- memcpy(&buf[len - len_remain], ar->bmi.cmd_buf, rx_len);
- len_remain -= rx_len; addr += rx_len;
- }
-
- return 0;
-}
-
-int ath6kl_bmi_write(struct ath6kl *ar, u32 addr, u8 *buf, u32 len)
-{
- u32 cid = BMI_WRITE_MEMORY;
- int ret;
- u32 offset;
- u32 len_remain, tx_len;
- const u32 header = sizeof(cid) + sizeof(addr) + sizeof(len);
- u8 aligned_buf[400];
- u8 *src;
-
- if (ar->bmi.done_sent) {
- ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
- return -EACCES;
- }
-
- if ((ar->bmi.max_data_size + header) > ar->bmi.max_cmd_size) {
- WARN_ON(1);
- return -EINVAL;
- }
-
- if (WARN_ON(ar->bmi.max_data_size > sizeof(aligned_buf)))
- return -E2BIG;
-
- memset(ar->bmi.cmd_buf, 0, ar->bmi.max_data_size + header);
-
- ath6kl_dbg(ATH6KL_DBG_BMI,
- "bmi write memory: addr: 0x%x, len: %d\n", addr, len);
-
- len_remain = len;
- while (len_remain) {
- src = &buf[len - len_remain];
-
- if (len_remain < (ar->bmi.max_data_size - header)) {
- if (len_remain & 3) {
- /* align it with 4 bytes */
- len_remain = len_remain +
- (4 - (len_remain & 3));
- memcpy(aligned_buf, src, len_remain);
- src = aligned_buf;
- }
- tx_len = len_remain;
- } else {
- tx_len = (ar->bmi.max_data_size - header);
- }
-
- offset = 0;
- memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
- offset += sizeof(cid);
- memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
- offset += sizeof(addr);
- memcpy(&(ar->bmi.cmd_buf[offset]), &tx_len, sizeof(tx_len));
- offset += sizeof(tx_len);
- memcpy(&(ar->bmi.cmd_buf[offset]), src, tx_len);
- offset += tx_len;
-
- ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
- if (ret) {
- ath6kl_err("Unable to write to the device: %d\n",
- ret);
- return ret;
- }
- len_remain -= tx_len; addr += tx_len;
- }
-
- return 0;
-}
-
-int ath6kl_bmi_execute(struct ath6kl *ar, u32 addr, u32 *param)
-{
- u32 cid = BMI_EXECUTE;
- int ret;
- u32 offset;
- u16 size;
-
- if (ar->bmi.done_sent) {
- ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
- return -EACCES;
- }
-
- size = sizeof(cid) + sizeof(addr) + sizeof(param);
- if (size > ar->bmi.max_cmd_size) {
- WARN_ON(1);
- return -EINVAL;
- }
- memset(ar->bmi.cmd_buf, 0, size);
-
- ath6kl_dbg(ATH6KL_DBG_BMI, "bmi execute: addr: 0x%x, param: %d)\n",
- addr, *param);
-
- offset = 0;
- memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
- offset += sizeof(cid);
- memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
- offset += sizeof(addr);
- memcpy(&(ar->bmi.cmd_buf[offset]), param, sizeof(*param));
- offset += sizeof(*param);
-
- ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
- if (ret) {
- ath6kl_err("Unable to write to the device: %d\n", ret);
- return ret;
- }
-
- ret = ath6kl_hif_bmi_read(ar, ar->bmi.cmd_buf, sizeof(*param));
- if (ret) {
- ath6kl_err("Unable to read from the device: %d\n", ret);
- return ret;
- }
-
- memcpy(param, ar->bmi.cmd_buf, sizeof(*param));
-
- return 0;
-}
-
-int ath6kl_bmi_set_app_start(struct ath6kl *ar, u32 addr)
-{
- u32 cid = BMI_SET_APP_START;
- int ret;
- u32 offset;
- u16 size;
-
- if (ar->bmi.done_sent) {
- ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
- return -EACCES;
- }
-
- size = sizeof(cid) + sizeof(addr);
- if (size > ar->bmi.max_cmd_size) {
- WARN_ON(1);
- return -EINVAL;
- }
- memset(ar->bmi.cmd_buf, 0, size);
-
- ath6kl_dbg(ATH6KL_DBG_BMI, "bmi set app start: addr: 0x%x\n", addr);
-
- offset = 0;
- memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
- offset += sizeof(cid);
- memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
- offset += sizeof(addr);
-
- ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
- if (ret) {
- ath6kl_err("Unable to write to the device: %d\n", ret);
- return ret;
- }
-
- return 0;
-}
-
-int ath6kl_bmi_reg_read(struct ath6kl *ar, u32 addr, u32 *param)
-{
- u32 cid = BMI_READ_SOC_REGISTER;
- int ret;
- u32 offset;
- u16 size;
-
- if (ar->bmi.done_sent) {
- ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
- return -EACCES;
- }
-
- size = sizeof(cid) + sizeof(addr);
- if (size > ar->bmi.max_cmd_size) {
- WARN_ON(1);
- return -EINVAL;
- }
- memset(ar->bmi.cmd_buf, 0, size);
-
- ath6kl_dbg(ATH6KL_DBG_BMI, "bmi read SOC reg: addr: 0x%x\n", addr);
-
- offset = 0;
- memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
- offset += sizeof(cid);
- memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
- offset += sizeof(addr);
-
- ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
- if (ret) {
- ath6kl_err("Unable to write to the device: %d\n", ret);
- return ret;
- }
-
- ret = ath6kl_hif_bmi_read(ar, ar->bmi.cmd_buf, sizeof(*param));
- if (ret) {
- ath6kl_err("Unable to read from the device: %d\n", ret);
- return ret;
- }
- memcpy(param, ar->bmi.cmd_buf, sizeof(*param));
-
- return 0;
-}
-
-int ath6kl_bmi_reg_write(struct ath6kl *ar, u32 addr, u32 param)
-{
- u32 cid = BMI_WRITE_SOC_REGISTER;
- int ret;
- u32 offset;
- u16 size;
-
- if (ar->bmi.done_sent) {
- ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
- return -EACCES;
- }
-
- size = sizeof(cid) + sizeof(addr) + sizeof(param);
- if (size > ar->bmi.max_cmd_size) {
- WARN_ON(1);
- return -EINVAL;
- }
- memset(ar->bmi.cmd_buf, 0, size);
-
- ath6kl_dbg(ATH6KL_DBG_BMI,
- "bmi write SOC reg: addr: 0x%x, param: %d\n",
- addr, param);
-
- offset = 0;
- memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
- offset += sizeof(cid);
- memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
- offset += sizeof(addr);
- memcpy(&(ar->bmi.cmd_buf[offset]), &param, sizeof(param));
- offset += sizeof(param);
-
- ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
- if (ret) {
- ath6kl_err("Unable to write to the device: %d\n", ret);
- return ret;
- }
-
- return 0;
-}
-
-int ath6kl_bmi_lz_data(struct ath6kl *ar, u8 *buf, u32 len)
-{
- u32 cid = BMI_LZ_DATA;
- int ret;
- u32 offset;
- u32 len_remain, tx_len;
- const u32 header = sizeof(cid) + sizeof(len);
- u16 size;
-
- if (ar->bmi.done_sent) {
- ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
- return -EACCES;
- }
-
- size = ar->bmi.max_data_size + header;
- if (size > ar->bmi.max_cmd_size) {
- WARN_ON(1);
- return -EINVAL;
- }
- memset(ar->bmi.cmd_buf, 0, size);
-
- ath6kl_dbg(ATH6KL_DBG_BMI, "bmi send LZ data: len: %d)\n",
- len);
-
- len_remain = len;
- while (len_remain) {
- tx_len = (len_remain < (ar->bmi.max_data_size - header)) ?
- len_remain : (ar->bmi.max_data_size - header);
-
- offset = 0;
- memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
- offset += sizeof(cid);
- memcpy(&(ar->bmi.cmd_buf[offset]), &tx_len, sizeof(tx_len));
- offset += sizeof(tx_len);
- memcpy(&(ar->bmi.cmd_buf[offset]), &buf[len - len_remain],
- tx_len);
- offset += tx_len;
-
- ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
- if (ret) {
- ath6kl_err("Unable to write to the device: %d\n",
- ret);
- return ret;
- }
-
- len_remain -= tx_len;
- }
-
- return 0;
-}
-
-int ath6kl_bmi_lz_stream_start(struct ath6kl *ar, u32 addr)
-{
- u32 cid = BMI_LZ_STREAM_START;
- int ret;
- u32 offset;
- u16 size;
-
- if (ar->bmi.done_sent) {
- ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
- return -EACCES;
- }
-
- size = sizeof(cid) + sizeof(addr);
- if (size > ar->bmi.max_cmd_size) {
- WARN_ON(1);
- return -EINVAL;
- }
- memset(ar->bmi.cmd_buf, 0, size);
-
- ath6kl_dbg(ATH6KL_DBG_BMI,
- "bmi LZ stream start: addr: 0x%x)\n",
- addr);
-
- offset = 0;
- memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
- offset += sizeof(cid);
- memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
- offset += sizeof(addr);
-
- ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
- if (ret) {
- ath6kl_err("Unable to start LZ stream to the device: %d\n",
- ret);
- return ret;
- }
-
- return 0;
-}
-
-int ath6kl_bmi_fast_download(struct ath6kl *ar, u32 addr, u8 *buf, u32 len)
-{
- int ret;
- u32 last_word = 0;
- u32 last_word_offset = len & ~0x3;
- u32 unaligned_bytes = len & 0x3;
-
- ret = ath6kl_bmi_lz_stream_start(ar, addr);
- if (ret)
- return ret;
-
- if (unaligned_bytes) {
- /* copy the last word into a zero padded buffer */
- memcpy(&last_word, &buf[last_word_offset], unaligned_bytes);
- }
-
- ret = ath6kl_bmi_lz_data(ar, buf, last_word_offset);
- if (ret)
- return ret;
-
- if (unaligned_bytes)
- ret = ath6kl_bmi_lz_data(ar, (u8 *)&last_word, 4);
-
- if (!ret) {
- /* Close compressed stream and open a new (fake) one.
- * This serves mainly to flush Target caches. */
- ret = ath6kl_bmi_lz_stream_start(ar, 0x00);
- }
- return ret;
-}
-
-void ath6kl_bmi_reset(struct ath6kl *ar)
-{
- ar->bmi.done_sent = false;
-}
-
-int ath6kl_bmi_init(struct ath6kl *ar)
-{
- if (WARN_ON(ar->bmi.max_data_size == 0))
- return -EINVAL;
-
- /* cmd + addr + len + data_size */
- ar->bmi.max_cmd_size = ar->bmi.max_data_size + (sizeof(u32) * 3);
-
- ar->bmi.cmd_buf = kzalloc(ar->bmi.max_cmd_size, GFP_ATOMIC);
- if (!ar->bmi.cmd_buf)
- return -ENOMEM;
-
- return 0;
-}
-
-void ath6kl_bmi_cleanup(struct ath6kl *ar)
-{
- kfree(ar->bmi.cmd_buf);
- ar->bmi.cmd_buf = NULL;
-}
diff --git a/drivers/net/wireless/ath/ath6kl/bmi.h b/drivers/net/wireless/ath/ath6kl/bmi.h
deleted file mode 100755
index 114f7b2..0000000
--- a/drivers/net/wireless/ath/ath6kl/bmi.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- * Copyright (c) 2011 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef BMI_H
-#define BMI_H
-
-/*
- * Bootloader Messaging Interface (BMI)
- *
- * BMI is a very simple messaging interface used during initialization
- * to read memory, write memory, execute code, and to define an
- * application entry PC.
- *
- * It is used to download an application to ATH6KL, to provide
- * patches to code that is already resident on ATH6KL, and generally
- * to examine and modify state. The Host has an opportunity to use
- * BMI only once during bootup. Once the Host issues a BMI_DONE
- * command, this opportunity ends.
- *
- * The Host writes BMI requests to mailbox0, and reads BMI responses
- * from mailbox0. BMI requests all begin with a command
- * (see below for specific commands), and are followed by
- * command-specific data.
- *
- * Flow control:
- * The Host can only issue a command once the Target gives it a
- * "BMI Command Credit", using ATH6KL Counter #4. As soon as the
- * Target has completed a command, it issues another BMI Command
- * Credit (so the Host can issue the next command).
- *
- * BMI handles all required Target-side cache flushing.
- */
-
-/* BMI Commands */
-
-#define BMI_NO_COMMAND 0
-
-#define BMI_DONE 1
-/*
- * Semantics: Host is done using BMI
- * Request format:
- * u32 command (BMI_DONE)
- * Response format: none
- */
-
-#define BMI_READ_MEMORY 2
-/*
- * Semantics: Host reads ATH6KL memory
- * Request format:
- * u32 command (BMI_READ_MEMORY)
- * u32 address
- * u32 length, at most BMI_DATASZ_MAX
- * Response format:
- * u8 data[length]
- */
-
-#define BMI_WRITE_MEMORY 3
-/*
- * Semantics: Host writes ATH6KL memory
- * Request format:
- * u32 command (BMI_WRITE_MEMORY)
- * u32 address
- * u32 length, at most BMI_DATASZ_MAX
- * u8 data[length]
- * Response format: none
- */
-
-#define BMI_EXECUTE 4
-/*
- * Semantics: Causes ATH6KL to execute code
- * Request format:
- * u32 command (BMI_EXECUTE)
- * u32 address
- * u32 parameter
- * Response format:
- * u32 return value
- */
-
-#define BMI_SET_APP_START 5
-/*
- * Semantics: Set Target application starting address
- * Request format:
- * u32 command (BMI_SET_APP_START)
- * u32 address
- * Response format: none
- */
-
-#define BMI_READ_SOC_REGISTER 6
-/*
- * Semantics: Read a 32-bit Target SOC register.
- * Request format:
- * u32 command (BMI_READ_REGISTER)
- * u32 address
- * Response format:
- * u32 value
- */
-
-#define BMI_WRITE_SOC_REGISTER 7
-/*
- * Semantics: Write a 32-bit Target SOC register.
- * Request format:
- * u32 command (BMI_WRITE_REGISTER)
- * u32 address
- * u32 value
- *
- * Response format: none
- */
-
-#define BMI_GET_TARGET_ID 8
-#define BMI_GET_TARGET_INFO 8
-/*
- * Semantics: Fetch the 4-byte Target information
- * Request format:
- * u32 command (BMI_GET_TARGET_ID/INFO)
- * Response format1 (old firmware):
- * u32 TargetVersionID
- * Response format2 (newer firmware):
- * u32 TARGET_VERSION_SENTINAL
- * struct bmi_target_info;
- */
-
-#define TARGET_VERSION_SENTINAL 0xffffffff
-#define TARGET_TYPE_AR6003 3
-#define TARGET_TYPE_AR6004 5
-#define BMI_ROMPATCH_INSTALL 9
-/*
- * Semantics: Install a ROM Patch.
- * Request format:
- * u32 command (BMI_ROMPATCH_INSTALL)
- * u32 Target ROM Address
- * u32 Target RAM Address or Value (depending on Target Type)
- * u32 Size, in bytes
- * u32 Activate? 1-->activate;
- * 0-->install but do not activate
- * Response format:
- * u32 PatchID
- */
-
-#define BMI_ROMPATCH_UNINSTALL 10
-/*
- * Semantics: Uninstall a previously-installed ROM Patch,
- * automatically deactivating, if necessary.
- * Request format:
- * u32 command (BMI_ROMPATCH_UNINSTALL)
- * u32 PatchID
- *
- * Response format: none
- */
-
-#define BMI_ROMPATCH_ACTIVATE 11
-/*
- * Semantics: Activate a list of previously-installed ROM Patches.
- * Request format:
- * u32 command (BMI_ROMPATCH_ACTIVATE)
- * u32 rompatch_count
- * u32 PatchID[rompatch_count]
- *
- * Response format: none
- */
-
-#define BMI_ROMPATCH_DEACTIVATE 12
-/*
- * Semantics: Deactivate a list of active ROM Patches.
- * Request format:
- * u32 command (BMI_ROMPATCH_DEACTIVATE)
- * u32 rompatch_count
- * u32 PatchID[rompatch_count]
- *
- * Response format: none
- */
-
-
-#define BMI_LZ_STREAM_START 13
-/*
- * Semantics: Begin an LZ-compressed stream of input
- * which is to be uncompressed by the Target to an
- * output buffer at address. The output buffer must
- * be sufficiently large to hold the uncompressed
- * output from the compressed input stream. This BMI
- * command should be followed by a series of 1 or more
- * BMI_LZ_DATA commands.
- * u32 command (BMI_LZ_STREAM_START)
- * u32 address
- * Note: Not supported on all versions of ROM firmware.
- */
-
-#define BMI_LZ_DATA 14
-/*
- * Semantics: Host writes ATH6KL memory with LZ-compressed
- * data which is uncompressed by the Target. This command
- * must be preceded by a BMI_LZ_STREAM_START command. A series
- * of BMI_LZ_DATA commands are considered part of a single
- * input stream until another BMI_LZ_STREAM_START is issued.
- * Request format:
- * u32 command (BMI_LZ_DATA)
- * u32 length (of compressed data),
- * at most BMI_DATASZ_MAX
- * u8 CompressedData[length]
- * Response format: none
- * Note: Not supported on all versions of ROM firmware.
- */
-
-#define BMI_COMMUNICATION_TIMEOUT 1000 /* in msec */
-
-struct ath6kl;
-struct ath6kl_bmi_target_info {
- __le32 byte_count; /* size of this structure */
- __le32 version; /* target version id */
- __le32 type; /* target type */
-} __packed;
-
-int ath6kl_bmi_init(struct ath6kl *ar);
-void ath6kl_bmi_cleanup(struct ath6kl *ar);
-void ath6kl_bmi_reset(struct ath6kl *ar);
-
-int ath6kl_bmi_done(struct ath6kl *ar);
-int ath6kl_bmi_get_target_info(struct ath6kl *ar,
- struct ath6kl_bmi_target_info *targ_info);
-int ath6kl_bmi_read(struct ath6kl *ar, u32 addr, u8 *buf, u32 len);
-int ath6kl_bmi_write(struct ath6kl *ar, u32 addr, u8 *buf, u32 len);
-int ath6kl_bmi_execute(struct ath6kl *ar,
- u32 addr, u32 *param);
-int ath6kl_bmi_set_app_start(struct ath6kl *ar,
- u32 addr);
-int ath6kl_bmi_reg_read(struct ath6kl *ar, u32 addr, u32 *param);
-int ath6kl_bmi_reg_write(struct ath6kl *ar, u32 addr, u32 param);
-int ath6kl_bmi_lz_data(struct ath6kl *ar,
- u8 *buf, u32 len);
-int ath6kl_bmi_lz_stream_start(struct ath6kl *ar,
- u32 addr);
-int ath6kl_bmi_fast_download(struct ath6kl *ar,
- u32 addr, u8 *buf, u32 len);
-#endif
diff --git a/drivers/net/wireless/ath/ath6kl/btc.h b/drivers/net/wireless/ath/ath6kl/btc.h
deleted file mode 100644
index 71075a8..0000000
--- a/drivers/net/wireless/ath/ath6kl/btc.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef BTC_H
-#define BTC_H
-#include <net/iw_handler.h>
-
-#define EVENT_ID_LEN 2
-
-void cfg80211_send_genevent_to_app(struct net_device *dev,
- u16 event_id,
- u8 *datap, int len)
-{
- char *buf;
- u16 size;
- union iwreq_data wrqu;
-
- size = len + EVENT_ID_LEN;
-
- if (size > IW_GENERIC_IE_MAX)
- return;
-
- buf = kmalloc(size, GFP_ATOMIC);
- if (buf == NULL)
- return;
-
- memset(buf, 0, size);
- memcpy(buf, &event_id, EVENT_ID_LEN);
- memcpy(buf + EVENT_ID_LEN, datap, len);
-
- memset(&wrqu, 0, sizeof(wrqu));
- wrqu.data.length = size;
- wireless_send_event(dev, IWEVGENIE, &wrqu, buf);
- kfree(buf);
-}
-
-void cfg80211_send_event_to_app(struct net_device *dev,
- u16 event_id,
- u8 *datap, int len)
-{
- char *buf;
- u16 size;
- union iwreq_data wrqu;
-
- size = len + EVENT_ID_LEN;
-
- if (size > IW_CUSTOM_MAX)
- return;
-
- buf = kmalloc(size, GFP_ATOMIC);
- if (buf == NULL)
- return;
-
- memset(buf, 0, size);
- memcpy(buf, &event_id, EVENT_ID_LEN);
- memcpy(buf + EVENT_ID_LEN, datap, len);
-
- memset(&wrqu, 0, sizeof(wrqu));
- wrqu.data.length = size;
- wireless_send_event(dev, IWEVCUSTOM, &wrqu, buf);
- kfree(buf);
-}
-#endif
diff --git a/drivers/net/wireless/ath/ath6kl/c210.c b/drivers/net/wireless/ath/ath6kl/c210.c
deleted file mode 100644
index bb5f189..0000000
--- a/drivers/net/wireless/ath/ath6kl/c210.c
+++ /dev/null
@@ -1,152 +0,0 @@
-#include <linux/device.h>
-#include <linux/regulator/consumer.h>
-#include <linux/gpio.h>
-#include <linux/err.h>
-#include <linux/platform_device.h>
-
-#include "core.h"
-
-typedef int A_BOOL;
-typedef unsigned char A_UCHAR;
-typedef unsigned long A_ATH_TIMER;
-typedef int8_t A_INT8;
-typedef int16_t A_INT16;
-typedef int32_t A_INT32;
-typedef u_int8_t A_UINT8;
-typedef u_int16_t A_UINT16;
-typedef u_int32_t A_UINT32;
-
-#define WMI_MAX_SSID_LEN 32
-#define ATH_MAC_LEN 6 /* length of mac in bytes */
-
-#define __ATTRIB_PACK
-#define POSTPACK __ATTRIB_PACK
-#define PREPACK
-
-typedef PREPACK struct {
- PREPACK union {
- A_UINT8 ie[17];
- A_INT32 wac_status;
- } POSTPACK info;
-} POSTPACK WMI_GET_WAC_INFO;
-
-struct ar_wep_key {
- A_UINT8 arKeyIndex;
- A_UINT8 arKeyLen;
- A_UINT8 arKey[64];
-} ;
-
-#define A_MDELAY(msecs) mdelay(msecs)
-
-#define WMI_MAX_RATE_MASK 2
-
-#define GET_INODE_FROM_FILEP(filp) \
- (filp)->f_path.dentry->d_inode
-typedef char A_CHAR;
-int android_readwrite_file(const A_CHAR *filename, A_CHAR *rbuf, const A_CHAR *wbuf, size_t length)
-{
- int ret = 0;
- struct file *filp = (struct file *)-ENOENT;
- mm_segment_t oldfs;
- oldfs = get_fs();
- set_fs(KERNEL_DS);
-
- do {
- int mode = (wbuf) ? O_RDWR|O_CREAT : O_RDONLY;
- filp = filp_open(filename, mode,
- S_IRUSR | S_IWUSR | S_IRGRP |
- S_IWGRP | S_IROTH | S_IWOTH);
-
- if (IS_ERR(filp) || !filp->f_op) {
- ret = -ENOENT;
- break;
- }
-
- if (length == 0) {
- /* Read the length of the file only */
- struct inode *inode;
-
- inode = GET_INODE_FROM_FILEP(filp);
- if (!inode) {
- printk(KERN_INFO "android_readwrite_file: Error 2\n");
- ret = -ENOENT;
- break;
- }
- ret = i_size_read(inode->i_mapping->host);
- break;
- }
-
- if (wbuf) {
- if ((ret=filp->f_op->write(filp, wbuf, length, &filp->f_pos)) < 0) {
- printk(KERN_INFO "android_readwrite_file: Error 3\n");
- break;
- }
- } else {
- if ((ret=filp->f_op->read(filp, rbuf, length, &filp->f_pos)) < 0) {
- printk(KERN_INFO "android_readwrite_file: Error 4\n");
- break;
- }
- }
- } while (0);
-
- if (!IS_ERR(filp)) {
- filp_close(filp, NULL);
- }
-
- set_fs(oldfs);
- printk(KERN_INFO "android_readwrite_file: ret=%d\n", ret);
-
- return ret;
-}
-
-extern void wlan_setup_power(int on, int detect);
-
-static int ath6kl_pm_probe(struct platform_device *pdev)
-{
- wlan_setup_power(1,1);
- return 0;
-}
-
-static int ath6kl_pm_remove(struct platform_device *pdev)
-{
- wlan_setup_power(0,1);
- return 0;
-}
-
-static int ath6kl_pm_suspend(struct platform_device *pdev, pm_message_t state)
-{
- return 0;
-}
-
-static inline void *ar6k_priv(struct net_device *dev)
-{
- return (wdev_priv(dev->ieee80211_ptr));
-}
-
-static int ath6kl_pm_resume(struct platform_device *pdev)
-{
- return 0;
-}
-
-
-static struct platform_driver ath6kl_pm_device = {
- .probe = ath6kl_pm_probe,
- .remove = ath6kl_pm_remove,
- .suspend = ath6kl_pm_suspend,
- .resume = ath6kl_pm_resume,
- .driver = {
- .name = "wlan_ar6000_pm_dev",
- },
-};
-
-void __init ath6kl_sdio_init_c210(void)
-{
- platform_driver_register(&ath6kl_pm_device);
- A_MDELAY(50);
-}
-
-void __exit ath6kl_sdio_exit_c210(void)
-{
- platform_driver_unregister(&ath6kl_pm_device);
- A_MDELAY(1000);
-}
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
deleted file mode 100755
index cceb9fd..0000000
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ /dev/null
@@ -1,3623 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <linux/moduleparam.h>
-#include <linux/inetdevice.h>
-
-#include "core.h"
-#include "cfg80211.h"
-#include "debug.h"
-#include "hif-ops.h"
-#include "testmode.h"
-#include "cfg80211_btcoex.h"
-#include "pm.h"
-
-#ifdef CONFIG_MACH_PX
-#include <mach/gpio.h>
-#define GPIO_WLAN_nRST EXYNOS4_GPL0(4)
-#else
-#define GPIO_WLAN_nRST 0
-#endif
-
-static unsigned int ath6kl_p2p = 1;
-static unsigned int ath6kl_first_2g_only = 1;
-
-module_param(ath6kl_p2p, uint, 0644);
-module_param(ath6kl_first_2g_only, uint, 0644);
-
-#define RATETAB_ENT(_rate, _rateid, _flags) { \
- .bitrate = (_rate), \
- .flags = (_flags), \
- .hw_value = (_rateid), \
-}
-
-#define CHAN2G(_channel, _freq, _flags) { \
- .band = IEEE80211_BAND_2GHZ, \
- .hw_value = (_channel), \
- .center_freq = (_freq), \
- .flags = (_flags), \
- .max_antenna_gain = 0, \
- .max_power = 30, \
-}
-
-#define CHAN5G(_channel, _flags) { \
- .band = IEEE80211_BAND_5GHZ, \
- .hw_value = (_channel), \
- .center_freq = 5000 + (5 * (_channel)), \
- .flags = (_flags), \
- .max_antenna_gain = 0, \
- .max_power = 30, \
-}
-
-static struct ieee80211_rate ath6kl_rates[] = {
- RATETAB_ENT(10, 0x1, 0),
- RATETAB_ENT(20, 0x2, 0),
- RATETAB_ENT(55, 0x4, 0),
- RATETAB_ENT(110, 0x8, 0),
- RATETAB_ENT(60, 0x10, 0),
- RATETAB_ENT(90, 0x20, 0),
- RATETAB_ENT(120, 0x40, 0),
- RATETAB_ENT(180, 0x80, 0),
- RATETAB_ENT(240, 0x100, 0),
- RATETAB_ENT(360, 0x200, 0),
- RATETAB_ENT(480, 0x400, 0),
- RATETAB_ENT(540, 0x800, 0),
-};
-
-#define ath6kl_a_rates (ath6kl_rates + 4)
-#define ath6kl_a_rates_size 8
-#define ath6kl_g_rates (ath6kl_rates + 0)
-#define ath6kl_g_rates_size 12
-
-
-static struct ieee80211_channel ath6kl_2ghz_channels[] = {
- CHAN2G(1, 2412, 0),
- CHAN2G(2, 2417, 0),
- CHAN2G(3, 2422, 0),
- CHAN2G(4, 2427, 0),
- CHAN2G(5, 2432, 0),
- CHAN2G(6, 2437, 0),
- CHAN2G(7, 2442, 0),
- CHAN2G(8, 2447, 0),
- CHAN2G(9, 2452, 0),
- CHAN2G(10, 2457, 0),
- CHAN2G(11, 2462, 0),
- CHAN2G(12, 2467, 0),
- CHAN2G(13, 2472, 0),
- CHAN2G(14, 2484, 0),
-};
-
-static struct ieee80211_channel ath6kl_5ghz_a_channels[] = {
- CHAN5G(34, 0), CHAN5G(36, 0),
- CHAN5G(38, 0), CHAN5G(40, 0),
- CHAN5G(42, 0), CHAN5G(44, 0),
- CHAN5G(46, 0), CHAN5G(48, 0),
- CHAN5G(52, 0), CHAN5G(56, 0),
- CHAN5G(60, 0), CHAN5G(64, 0),
- CHAN5G(100, 0), CHAN5G(104, 0),
- CHAN5G(108, 0), CHAN5G(112, 0),
- CHAN5G(116, 0), CHAN5G(120, 0),
- CHAN5G(124, 0), CHAN5G(128, 0),
- CHAN5G(132, 0), CHAN5G(136, 0),
- CHAN5G(140, 0), CHAN5G(149, 0),
- CHAN5G(153, 0), CHAN5G(157, 0),
- CHAN5G(161, 0), CHAN5G(165, 0),
- CHAN5G(184, 0), CHAN5G(188, 0),
- CHAN5G(192, 0), CHAN5G(196, 0),
- CHAN5G(200, 0), CHAN5G(204, 0),
- CHAN5G(208, 0), CHAN5G(212, 0),
- CHAN5G(216, 0),
-};
-
-static struct ieee80211_supported_band ath6kl_band_2ghz = {
- .n_channels = ARRAY_SIZE(ath6kl_2ghz_channels),
- .channels = ath6kl_2ghz_channels,
- .n_bitrates = ath6kl_g_rates_size,
- .bitrates = ath6kl_g_rates,
-
-};
-
-static struct ieee80211_supported_band ath6kl_band_5ghz = {
- .n_channels = ARRAY_SIZE(ath6kl_5ghz_a_channels),
- .channels = ath6kl_5ghz_a_channels,
- .n_bitrates = ath6kl_a_rates_size,
- .bitrates = ath6kl_a_rates,
-
-};
-
-#define CCKM_KRK_CIPHER_SUITE 0x004096ff /* use for KRK */
-
-/* returns true if scheduled scan was stopped */
-static bool __ath6kl_cfg80211_sscan_stop(struct ath6kl_vif *vif)
-{
- struct ath6kl *ar = vif->ar;
-
- if (ar->state != ATH6KL_STATE_SCHED_SCAN)
- return false;
-
- del_timer_sync(&vif->sched_scan_timer);
-
- ath6kl_wmi_set_host_sleep_mode_cmd(ar->wmi, vif->fw_vif_idx,
- ATH6KL_HOST_MODE_AWAKE);
-
- ar->state = ATH6KL_STATE_ON;
-
- return true;
-}
-
-static void ath6kl_cfg80211_sscan_disable(struct ath6kl_vif *vif)
-{
- struct ath6kl *ar = vif->ar;
- bool stopped;
-
- stopped = __ath6kl_cfg80211_sscan_stop(vif);
-
- if (!stopped)
- return;
-
- cfg80211_sched_scan_stopped(ar->wiphy);
-}
-
-static int ath6kl_set_wpa_version(struct ath6kl_vif *vif,
- enum nl80211_wpa_versions wpa_version)
-{
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: %u\n", __func__, wpa_version);
-
- if (!wpa_version) {
- vif->auth_mode = NONE_AUTH;
- } else if (wpa_version & NL80211_WPA_VERSION_2) {
- vif->auth_mode = WPA2_AUTH;
- } else if (wpa_version & NL80211_WPA_VERSION_1) {
- vif->auth_mode = WPA_AUTH;
- } else {
- ath6kl_err("%s: %u not supported\n", __func__, wpa_version);
- return -ENOTSUPP;
- }
-
- return 0;
-}
-
-static int ath6kl_set_auth_type(struct ath6kl_vif *vif,
- enum nl80211_auth_type auth_type)
-{
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: 0x%x\n", __func__, auth_type);
-
- switch (auth_type) {
- case NL80211_AUTHTYPE_OPEN_SYSTEM:
- vif->dot11_auth_mode = OPEN_AUTH;
- break;
- case NL80211_AUTHTYPE_SHARED_KEY:
- vif->dot11_auth_mode = SHARED_AUTH;
- break;
- case NL80211_AUTHTYPE_NETWORK_EAP:
- vif->dot11_auth_mode = LEAP_AUTH;
- break;
-
- case NL80211_AUTHTYPE_AUTOMATIC:
- vif->dot11_auth_mode = OPEN_AUTH | SHARED_AUTH;
- break;
-
- default:
- ath6kl_err("%s: 0x%x not spported\n", __func__, auth_type);
- return -ENOTSUPP;
- }
-
- return 0;
-}
-
-static int ath6kl_set_cipher(struct ath6kl_vif *vif, u32 cipher, bool ucast)
-{
- u8 *ar_cipher = ucast ? &vif->prwise_crypto : &vif->grp_crypto;
- u8 *ar_cipher_len = ucast ? &vif->prwise_crypto_len :
- &vif->grp_crypto_len;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: cipher 0x%x, ucast %u\n",
- __func__, cipher, ucast);
-
- switch (cipher) {
- case 0:
- /* our own hack to use value 0 as no crypto used */
- *ar_cipher = NONE_CRYPT;
- *ar_cipher_len = 0;
- break;
- case WLAN_CIPHER_SUITE_WEP40:
- *ar_cipher = WEP_CRYPT;
- *ar_cipher_len = 5;
- break;
- case WLAN_CIPHER_SUITE_WEP104:
- *ar_cipher = WEP_CRYPT;
- *ar_cipher_len = 13;
- break;
- case WLAN_CIPHER_SUITE_TKIP:
- *ar_cipher = TKIP_CRYPT;
- *ar_cipher_len = 0;
- break;
- case WLAN_CIPHER_SUITE_CCMP:
- *ar_cipher = AES_CRYPT;
- *ar_cipher_len = 0;
- break;
- case WLAN_CIPHER_SUITE_SMS4:
- *ar_cipher = WAPI_CRYPT;
- *ar_cipher_len = 0;
- break;
- default:
- ath6kl_err("cipher 0x%x not supported\n", cipher);
- return -ENOTSUPP;
- }
-
- return 0;
-}
-
-static void ath6kl_set_key_mgmt(struct ath6kl_vif *vif, u32 key_mgmt)
-{
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: 0x%x\n", __func__, key_mgmt);
-
- if (key_mgmt == WLAN_AKM_SUITE_PSK) {
- if (vif->auth_mode == WPA_AUTH)
- vif->auth_mode = WPA_PSK_AUTH;
- else if (vif->auth_mode == WPA2_AUTH)
- vif->auth_mode = WPA2_PSK_AUTH;
- } else if (key_mgmt == 0x00409600) {
- if (vif->auth_mode == WPA_AUTH)
- vif->auth_mode = WPA_AUTH_CCKM;
- else if (vif->auth_mode == WPA2_AUTH)
- vif->auth_mode = WPA2_AUTH_CCKM;
- } else if (key_mgmt != WLAN_AKM_SUITE_8021X) {
- vif->auth_mode = NONE_AUTH;
- }
-}
-
-static bool ath6kl_cfg80211_ready(struct ath6kl_vif *vif)
-{
- struct ath6kl *ar = vif->ar;
-
- if (!test_bit(WMI_READY, &ar->flag)) {
- ath6kl_err("wmi is not ready\n");
- return false;
- }
-
- if (!test_bit(WLAN_ENABLED, &vif->flags)) {
- ath6kl_err("wlan disabled\n");
- return false;
- }
-
- return true;
-}
-
-static bool ath6kl_is_wpa_ie(const u8 *pos)
-{
- return pos[0] == WLAN_EID_WPA && pos[1] >= 4 &&
- pos[2] == 0x00 && pos[3] == 0x50 &&
- pos[4] == 0xf2 && pos[5] == 0x01;
-}
-
-static bool ath6kl_is_rsn_ie(const u8 *pos)
-{
- return pos[0] == WLAN_EID_RSN;
-}
-
-static bool ath6kl_is_wps_ie(const u8 *pos)
-{
- return (pos[0] == WLAN_EID_VENDOR_SPECIFIC &&
- pos[1] >= 4 &&
- pos[2] == 0x00 && pos[3] == 0x50 && pos[4] == 0xf2 &&
- pos[5] == 0x04);
-}
-
-static int ath6kl_set_assoc_req_ies(struct ath6kl_vif *vif, const u8 *ies,
- size_t ies_len)
-{
- struct ath6kl *ar = vif->ar;
- const u8 *pos;
- u8 *buf = NULL;
- size_t len = 0;
- int ret;
-
- /*
- * Clear previously set flag
- */
-
- ar->connect_ctrl_flags &= ~CONNECT_WPS_FLAG;
-
- /*
- * Filter out RSN/WPA IE(s)
- */
-
- if (ies && ies_len) {
- buf = kmalloc(ies_len, GFP_KERNEL);
- if (buf == NULL)
- return -ENOMEM;
- pos = ies;
-
- while (pos + 1 < ies + ies_len) {
- if (pos + 2 + pos[1] > ies + ies_len)
- break;
- if (!(ath6kl_is_wpa_ie(pos) || ath6kl_is_rsn_ie(pos))) {
- memcpy(buf + len, pos, 2 + pos[1]);
- len += 2 + pos[1];
- }
-
- if (ath6kl_is_wps_ie(pos))
- ar->connect_ctrl_flags |= CONNECT_WPS_FLAG;
-
- pos += 2 + pos[1];
- }
- }
-
- ret = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx,
- WMI_FRAME_ASSOC_REQ, buf, len);
- kfree(buf);
- return ret;
-}
-
-static int ath6kl_nliftype_to_drv_iftype(enum nl80211_iftype type, u8 *nw_type)
-{
- switch (type) {
- case NL80211_IFTYPE_STATION:
- *nw_type = INFRA_NETWORK;
- break;
- case NL80211_IFTYPE_ADHOC:
- *nw_type = ADHOC_NETWORK;
- break;
- case NL80211_IFTYPE_AP:
- *nw_type = AP_NETWORK;
- break;
- case NL80211_IFTYPE_P2P_CLIENT:
- *nw_type = INFRA_NETWORK;
- break;
- case NL80211_IFTYPE_P2P_GO:
- *nw_type = AP_NETWORK;
- break;
- default:
- ath6kl_err("invalid interface type %u\n", type);
- return -ENOTSUPP;
- }
-
- return 0;
-}
-
-static bool ath6kl_is_valid_iftype(struct ath6kl *ar, enum nl80211_iftype type,
- u8 *if_idx, u8 *nw_type)
-{
- int i;
-
- if (ath6kl_nliftype_to_drv_iftype(type, nw_type))
- return false;
-
- if (ar->ibss_if_active || ((type == NL80211_IFTYPE_ADHOC) &&
- ar->num_vif))
- return false;
-
- if (type == NL80211_IFTYPE_STATION ||
- type == NL80211_IFTYPE_AP || type == NL80211_IFTYPE_ADHOC) {
- for (i = 0; i < ar->vif_max; i++) {
- if ((ar->avail_idx_map >> i) & BIT(0)) {
- *if_idx = i;
- return true;
- }
- }
- }
-
- if (type == NL80211_IFTYPE_P2P_CLIENT ||
- type == NL80211_IFTYPE_P2P_GO) {
- for (i = ar->max_norm_iface; i < ar->vif_max; i++) {
- if ((ar->avail_idx_map >> i) & BIT(0)) {
- *if_idx = i;
- return true;
- }
- }
- }
-
- return false;
-}
-
-static int ath6kl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_connect_params *sme)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_vif *vif = netdev_priv(dev);
- int status;
- u8 nw_subtype = (ar->p2p) ? SUBTYPE_P2PDEV : SUBTYPE_NONE;
- u16 interval;
-
- ath6kl_cfg80211_sscan_disable(vif);
-
- vif->sme_state = SME_CONNECTING;
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- if (test_bit(DESTROY_IN_PROGRESS, &ar->flag)) {
- ath6kl_err("destroy in progress\n");
- return -EBUSY;
- }
-
- if (test_bit(SKIP_SCAN, &ar->flag) &&
- ((sme->channel && sme->channel->center_freq == 0) ||
- (sme->bssid && is_zero_ether_addr(sme->bssid)))) {
- ath6kl_err("SkipScan: channel or bssid invalid\n");
- return -EINVAL;
- }
-
- if (down_interruptible(&ar->sem)) {
- ath6kl_err("busy, couldn't get access\n");
- return -ERESTARTSYS;
- }
-
- if (test_bit(DESTROY_IN_PROGRESS, &ar->flag)) {
- ath6kl_err("busy, destroy in progress\n");
- up(&ar->sem);
- return -EBUSY;
- }
-
- if (ar->tx_pending[ath6kl_wmi_get_control_ep(ar->wmi)]) {
- /*
- * sleep until the command queue drains
- */
- wait_event_interruptible_timeout(ar->event_wq,
- ar->tx_pending[ath6kl_wmi_get_control_ep(ar->wmi)] == 0,
- WMI_TIMEOUT);
- if (signal_pending(current)) {
- ath6kl_err("cmd queue drain timeout\n");
- up(&ar->sem);
- return -EINTR;
- }
- }
-
- status = ath6kl_set_assoc_req_ies(vif, sme->ie, sme->ie_len);
- if (status) {
- up(&ar->sem);
- return status;
- }
-
- if (sme->ie == NULL || sme->ie_len == 0)
- ar->connect_ctrl_flags &= ~CONNECT_WPS_FLAG;
-
- if (test_bit(CONNECTED, &vif->flags) &&
- vif->ssid_len == sme->ssid_len &&
- !memcmp(vif->ssid, sme->ssid, vif->ssid_len)) {
- vif->reconnect_flag = true;
- status = ath6kl_wmi_reconnect_cmd(ar->wmi, vif->fw_vif_idx,
- vif->req_bssid,
- vif->ch_hint);
-
- up(&ar->sem);
- if (status) {
- ath6kl_err("wmi_reconnect_cmd failed\n");
- return -EIO;
- }
- return 0;
- } else if (vif->ssid_len == sme->ssid_len &&
- !memcmp(vif->ssid, sme->ssid, vif->ssid_len)) {
- ath6kl_disconnect(vif);
- }
-
- memset(vif->ssid, 0, sizeof(vif->ssid));
- vif->ssid_len = sme->ssid_len;
- memcpy(vif->ssid, sme->ssid, sme->ssid_len);
-
- if (sme->channel)
- vif->ch_hint = sme->channel->center_freq;
-
- memset(vif->req_bssid, 0, sizeof(vif->req_bssid));
- if (sme->bssid && !is_broadcast_ether_addr(sme->bssid))
- memcpy(vif->req_bssid, sme->bssid, sizeof(vif->req_bssid));
-
- ath6kl_set_wpa_version(vif, sme->crypto.wpa_versions);
-
- status = ath6kl_set_auth_type(vif, sme->auth_type);
- if (status) {
- up(&ar->sem);
- return status;
- }
-
- if (sme->crypto.n_ciphers_pairwise)
- ath6kl_set_cipher(vif, sme->crypto.ciphers_pairwise[0], true);
- else
- ath6kl_set_cipher(vif, 0, true);
-
- ath6kl_set_cipher(vif, sme->crypto.cipher_group, false);
-
- if (sme->crypto.n_akm_suites)
- ath6kl_set_key_mgmt(vif, sme->crypto.akm_suites[0]);
-
- if ((sme->key_len) &&
- (vif->auth_mode == NONE_AUTH) &&
- (vif->prwise_crypto == WEP_CRYPT)) {
- struct ath6kl_key *key = NULL;
-
- if (sme->key_idx > WMI_MAX_KEY_INDEX) {
- ath6kl_err("key index %d out of bounds\n",
- sme->key_idx);
- up(&ar->sem);
- return -ENOENT;
- }
-
- key = &vif->keys[sme->key_idx];
- key->key_len = sme->key_len;
- memcpy(key->key, sme->key, key->key_len);
- key->cipher = vif->prwise_crypto;
- vif->def_txkey_index = sme->key_idx;
-
- ath6kl_wmi_addkey_cmd(ar->wmi, vif->fw_vif_idx, sme->key_idx,
- vif->prwise_crypto,
- GROUP_USAGE | TX_USAGE,
- key->key_len,
- NULL, 0,
- key->key, KEY_OP_INIT_VAL, NULL,
- NO_SYNC_WMIFLAG);
- }
-
- if (!ar->usr_bss_filter) {
- clear_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags);
- if (ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx,
- ALL_BSS_FILTER, 0) != 0) {
- ath6kl_err("couldn't set bss filtering\n");
- up(&ar->sem);
- return -EIO;
- }
- }
-
- vif->nw_type = vif->next_mode;
-
- if (vif->wdev.iftype == NL80211_IFTYPE_P2P_CLIENT)
- nw_subtype = SUBTYPE_P2PCLIENT;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: connect called with authmode %d dot11 auth %d"
- " PW crypto %d PW crypto len %d GRP crypto %d"
- " GRP crypto len %d channel hint %u\n",
- __func__,
- vif->auth_mode, vif->dot11_auth_mode, vif->prwise_crypto,
- vif->prwise_crypto_len, vif->grp_crypto,
- vif->grp_crypto_len, vif->ch_hint);
-
- vif->reconnect_flag = 0;
-
- if (vif->nw_type == INFRA_NETWORK) {
- interval = max(vif->listen_intvl_t,
- (u16) ATH6KL_MAX_WOW_LISTEN_INTL);
- status = ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx,
- interval,
- 0);
- if (status) {
- ath6kl_err("couldn't set listen intervel\n");
- up(&ar->sem);
- return status;
- }
- }
-
- status = ath6kl_wmi_connect_cmd(ar->wmi, vif->fw_vif_idx, vif->nw_type,
- vif->dot11_auth_mode, vif->auth_mode,
- vif->prwise_crypto,
- vif->prwise_crypto_len,
- vif->grp_crypto, vif->grp_crypto_len,
- vif->ssid_len, vif->ssid,
- vif->req_bssid, vif->ch_hint,
- ar->connect_ctrl_flags, nw_subtype);
-
- up(&ar->sem);
-
- if (status == -EINVAL) {
- memset(vif->ssid, 0, sizeof(vif->ssid));
- vif->ssid_len = 0;
- ath6kl_err("invalid request\n");
- return -ENOENT;
- } else if (status) {
- ath6kl_err("ath6kl_wmi_connect_cmd failed\n");
- return -EIO;
- }
-
- if ((!(ar->connect_ctrl_flags & CONNECT_DO_WPA_OFFLOAD)) &&
- ((vif->auth_mode == WPA_PSK_AUTH)
- || (vif->auth_mode == WPA2_PSK_AUTH))) {
- mod_timer(&vif->disconnect_timer,
- jiffies + msecs_to_jiffies(DISCON_TIMER_INTVAL));
- }
-
- ar->connect_ctrl_flags &= ~CONNECT_DO_WPA_OFFLOAD;
- set_bit(CONNECT_PEND, &vif->flags);
-
- return 0;
-}
-
-static struct cfg80211_bss *
-ath6kl_add_bss_if_needed(struct ath6kl_vif *vif,
- enum network_type nw_type,
- const u8 *bssid,
- struct ieee80211_channel *chan,
- const u8 *beacon_ie,
- size_t beacon_ie_len)
-{
- struct ath6kl *ar = vif->ar;
- struct cfg80211_bss *bss;
- u16 cap_mask, cap_val;
- u8 *ie;
-
- if (nw_type & ADHOC_NETWORK) {
- cap_mask = WLAN_CAPABILITY_IBSS;
- cap_val = WLAN_CAPABILITY_IBSS;
- } else {
- cap_mask = WLAN_CAPABILITY_ESS;
- cap_val = WLAN_CAPABILITY_ESS;
- }
-
- bss = cfg80211_get_bss(ar->wiphy, chan, bssid,
- vif->ssid, vif->ssid_len,
- cap_mask, cap_val);
- if (bss == NULL) {
- /*
- * Since cfg80211 may not yet know about the BSS,
- * generate a partial entry until the first BSS info
- * event becomes available.
- *
- * Prepend SSID element since it is not included in the Beacon
- * IEs from the target.
- */
- ie = kmalloc(2 + vif->ssid_len + beacon_ie_len, GFP_KERNEL);
- if (ie == NULL)
- return NULL;
- ie[0] = WLAN_EID_SSID;
- ie[1] = vif->ssid_len;
- memcpy(ie + 2, vif->ssid, vif->ssid_len);
- memcpy(ie + 2 + vif->ssid_len, beacon_ie, beacon_ie_len);
- bss = cfg80211_inform_bss(ar->wiphy, chan,
- bssid, 0, cap_val, 100,
- ie, 2 + vif->ssid_len + beacon_ie_len,
- 0, GFP_KERNEL);
- if (bss)
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "added bss %s to "
- "cfg80211\n", sec_conv_mac(bssid));
- kfree(ie);
- } else
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "cfg80211 already has a bss\n");
-
- return bss;
-}
-
-void ath6kl_cfg80211_connect_event(struct ath6kl_vif *vif, u16 channel,
- u8 *bssid, u16 listen_intvl,
- u16 beacon_intvl,
- enum network_type nw_type,
- u8 beacon_ie_len, u8 assoc_req_len,
- u8 assoc_resp_len, u8 *assoc_info)
-{
- struct ieee80211_channel *chan;
- struct ath6kl *ar = vif->ar;
- struct cfg80211_bss *bss;
-
- /* capinfo + listen interval */
- u8 assoc_req_ie_offset = sizeof(u16) + sizeof(u16);
-
- /* capinfo + status code + associd */
- u8 assoc_resp_ie_offset = sizeof(u16) + sizeof(u16) + sizeof(u16);
-
- u8 *assoc_req_ie = assoc_info + beacon_ie_len + assoc_req_ie_offset;
- u8 *assoc_resp_ie = assoc_info + beacon_ie_len + assoc_req_len +
- assoc_resp_ie_offset;
-
- assoc_req_len -= assoc_req_ie_offset;
- assoc_resp_len -= assoc_resp_ie_offset;
-
- /*
- * Store Beacon interval here; DTIM period will be available only once
- * a Beacon frame from the AP is seen.
- */
- vif->assoc_bss_beacon_int = beacon_intvl;
- clear_bit(DTIM_PERIOD_AVAIL, &vif->flags);
-
- if (nw_type & ADHOC_NETWORK) {
- if (vif->wdev.iftype != NL80211_IFTYPE_ADHOC) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: ath6k not in ibss mode\n", __func__);
- return;
- }
- }
-
- if (nw_type & INFRA_NETWORK) {
- if (vif->wdev.iftype != NL80211_IFTYPE_STATION &&
- vif->wdev.iftype != NL80211_IFTYPE_P2P_CLIENT) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: ath6k not in station mode\n", __func__);
- return;
- }
- }
-
- chan = ieee80211_get_channel(ar->wiphy, (int) channel);
-
- bss = ath6kl_add_bss_if_needed(vif, nw_type, bssid, chan,
- assoc_info, beacon_ie_len);
- if (!bss) {
- ath6kl_err("could not add cfg80211 bss entry\n");
- return;
- }
-
- if (nw_type & ADHOC_NETWORK) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "ad-hoc %s selected\n",
- nw_type & ADHOC_CREATOR ? "creator" : "joiner");
- cfg80211_ibss_joined(vif->ndev, bssid, GFP_KERNEL);
- cfg80211_put_bss(bss);
- return;
- }
-
- if (vif->sme_state == SME_CONNECTING) {
- /* inform connect result to cfg80211 */
- vif->sme_state = SME_CONNECTED;
- cfg80211_connect_result(vif->ndev, bssid,
- assoc_req_ie, assoc_req_len,
- assoc_resp_ie, assoc_resp_len,
- WLAN_STATUS_SUCCESS, GFP_KERNEL);
- cfg80211_put_bss(bss);
- } else if (vif->sme_state == SME_CONNECTED) {
- /* inform roam event to cfg80211 */
- cfg80211_roamed_bss(vif->ndev, bss, assoc_req_ie, assoc_req_len,
- assoc_resp_ie, assoc_resp_len, GFP_KERNEL);
- }
-}
-
-static int ath6kl_cfg80211_disconnect(struct wiphy *wiphy,
- struct net_device *dev, u16 reason_code)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_vif *vif = netdev_priv(dev);
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: reason=%u\n", __func__,
- reason_code);
-
- ath6kl_cfg80211_sscan_disable(vif);
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- if (test_bit(DESTROY_IN_PROGRESS, &ar->flag)) {
- ath6kl_err("busy, destroy in progress\n");
- return -EBUSY;
- }
-
- if (down_interruptible(&ar->sem)) {
- ath6kl_err("busy, couldn't get access\n");
- return -ERESTARTSYS;
- }
-
- vif->reconnect_flag = 0;
- ath6kl_disconnect(vif);
- memset(vif->ssid, 0, sizeof(vif->ssid));
- vif->ssid_len = 0;
-
- if (!test_bit(SKIP_SCAN, &ar->flag))
- memset(vif->req_bssid, 0, sizeof(vif->req_bssid));
-
- up(&ar->sem);
-
- vif->sme_state = SME_DISCONNECTED;
-
- return 0;
-}
-
-void ath6kl_cfg80211_disconnect_event(struct ath6kl_vif *vif, u8 reason,
- u8 *bssid, u8 assoc_resp_len,
- u8 *assoc_info, u16 proto_reason)
-{
- struct ath6kl *ar = vif->ar;
-
- if (vif->scan_req) {
- cfg80211_scan_done(vif->scan_req, true);
- vif->scan_req = NULL;
- }
-
- if (vif->nw_type & ADHOC_NETWORK) {
- if (vif->wdev.iftype != NL80211_IFTYPE_ADHOC) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: ath6k not in ibss mode\n", __func__);
- return;
- }
- memset(bssid, 0, ETH_ALEN);
- cfg80211_ibss_joined(vif->ndev, bssid, GFP_KERNEL);
- return;
- }
-
- if (vif->nw_type & INFRA_NETWORK) {
- if (vif->wdev.iftype != NL80211_IFTYPE_STATION &&
- vif->wdev.iftype != NL80211_IFTYPE_P2P_CLIENT) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: ath6k not in station mode\n", __func__);
- return;
- }
- }
-
- /*
- * Send a disconnect command to target when a disconnect event is
- * received with reason code other than 3 (DISCONNECT_CMD - disconnect
- * request from host) to make the firmware stop trying to connect even
- * after giving disconnect event. There will be one more disconnect
- * event for this disconnect command with reason code DISCONNECT_CMD
- * which will be notified to cfg80211.
- */
- if (is_zero_ether_addr((const u8 *) bssid) ||
- memcmp(bssid, "\x44\x44\x44\x44\x44\x44", ETH_ALEN) == 0) {
-
- if (reason != DISCONNECT_CMD) {
- ath6kl_wmi_disconnect_cmd(ar->wmi, vif->fw_vif_idx);
- return;
- }
- }
-
- clear_bit(CONNECT_PEND, &vif->flags);
-
- if (vif->sme_state == SME_CONNECTING) {
- cfg80211_connect_result(vif->ndev,
- bssid, NULL, 0,
- NULL, 0,
- WLAN_STATUS_UNSPECIFIED_FAILURE,
- GFP_KERNEL);
- } else if (vif->sme_state == SME_CONNECTED) {
- cfg80211_disconnected(vif->ndev, reason,
- NULL, 0, GFP_KERNEL);
- }
-
- vif->sme_state = SME_DISCONNECTED;
-}
-
-static int ath6kl_set_probed_ssids(struct ath6kl *ar,
- struct ath6kl_vif *vif,
- struct cfg80211_ssid *ssids, int n_ssids)
-{
- u8 i;
-
- if (n_ssids > MAX_PROBED_SSIDS)
- return -EINVAL;
-
- for (i = 0; i < n_ssids; i++) {
- ath6kl_wmi_probedssid_cmd(ar->wmi, vif->fw_vif_idx, i,
- ssids[i].ssid_len ?
- SPECIFIC_SSID_FLAG : ANY_SSID_FLAG,
- ssids[i].ssid_len,
- ssids[i].ssid);
- }
-
- /* Make sure no old entries are left behind */
- for (i = n_ssids; i < MAX_PROBED_SSIDS; i++) {
- ath6kl_wmi_probedssid_cmd(ar->wmi, vif->fw_vif_idx, i,
- DISABLE_SSID_FLAG, 0, NULL);
- }
-
- return 0;
-}
-
-
-static int ath6kl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
- struct cfg80211_scan_request *request)
-{
- struct ath6kl *ar = ath6kl_priv(ndev);
- struct ath6kl_vif *vif = netdev_priv(ndev);
- s8 n_channels = 0;
- u16 *channels = NULL;
- int ret = 0;
- u32 force_fg_scan = 0;
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- ath6kl_cfg80211_sscan_disable(vif);
-
- if (!ar->usr_bss_filter) {
- clear_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags);
- ret = ath6kl_wmi_bssfilter_cmd(
- ar->wmi, vif->fw_vif_idx,
- (test_bit(CONNECTED, &vif->flags) ?
- ALL_BUT_BSS_FILTER : ALL_BSS_FILTER), 0);
- if (ret) {
- ath6kl_err("couldn't set bss filtering\n");
- return ret;
- }
- }
-
- ret = ath6kl_set_probed_ssids(ar, vif, request->ssids,
- request->n_ssids);
- if (ret < 0)
- return ret;
-
- /* this also clears IE in fw if it's not set */
- ret = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx,
- WMI_FRAME_PROBE_REQ,
- request->ie, request->ie_len);
- if (ret) {
- ath6kl_err("failed to set Probe Request appie for "
- "scan");
- return ret;
- }
-
- /*
- * Scan only the requested channels if the request specifies a set of
- * channels. If the list is longer than the target supports, do not
- * configure the list and instead, scan all available channels.
- */
- ath6kl_err("channel num %d \n",request->n_channels);
-#ifdef CONFIG_MACH_PX
- if (request->n_channels > 0) {
-#else
- if (request->n_channels > 0 &&
- request->n_channels <= WMI_MAX_CHANNELS) {
-#endif
- u8 i;
-
- n_channels = request->n_channels;
-
- channels = kzalloc(n_channels * sizeof(u16), GFP_KERNEL);
- if (channels == NULL) {
- ath6kl_warn("failed to set scan channels, "
- "scan all channels");
- n_channels = 0;
- }
-
- for (i = 0; i < n_channels; i++) {
-#if 0
- ath6kl_err("scanning channel %d\n",request->channels[i]->center_freq);
-#endif
- if (ath6kl_first_2g_only
- && request->channels[i]->center_freq > 5000) {
- ath6kl_err("skip 5ghz channel %d %d\n",
- ath6kl_first_2g_only,
- request->channels[i]->center_freq);
- continue;
- }
-
- channels[i] = request->channels[i]->center_freq;
- }
- }
-
- if (ath6kl_first_2g_only)
- ath6kl_first_2g_only = 0;
-
- if (test_bit(CONNECTED, &vif->flags))
- force_fg_scan = 1;
-
- vif->scan_req = request;
-
- if (test_bit(ATH6KL_FW_CAPABILITY_STA_P2PDEV_DUPLEX,
- ar->fw_capabilities)) {
- /*
- * If capable of doing P2P mgmt operations using
- * station interface, send additional information like
- * supported rates to advertise and xmit rates for
- * probe requests
- */
- if (request->no_cck) {
-#ifdef CONFIG_HAS_WAKELOCK
- ath6kl_p2p_release_wakelock(ar);
- ath6kl_p2p_acquire_wakelock(ar , n_channels * 200);
-#endif
- }
- ret = ath6kl_wmi_beginscan_cmd(ar->wmi, vif->fw_vif_idx,
- WMI_LONG_SCAN, force_fg_scan,
- false, 0,
- ATH6KL_FG_SCAN_INTERVAL,
- n_channels, channels,
- request->no_cck,
- request->rates);
- } else {
- ret = ath6kl_wmi_startscan_cmd(ar->wmi, vif->fw_vif_idx,
- WMI_LONG_SCAN, force_fg_scan,
- false, 0,
- ATH6KL_FG_SCAN_INTERVAL,
- n_channels, channels);
- }
- if (ret) {
- ath6kl_err("wmi_startscan_cmd failed\n");
- vif->scan_req = NULL;
- }
-
- kfree(channels);
-
- return ret;
-}
-
-void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, bool aborted)
-{
- struct ath6kl *ar = vif->ar;
- int i;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: status%s\n", __func__,
- aborted ? " aborted" : "");
-
- if (!vif->scan_req)
- return;
-
- if (aborted)
- goto out;
-
- if (vif->scan_req->n_ssids && vif->scan_req->ssids[0].ssid_len) {
- for (i = 0; i < vif->scan_req->n_ssids; i++) {
- ath6kl_wmi_probedssid_cmd(ar->wmi, vif->fw_vif_idx,
- i + 1, DISABLE_SSID_FLAG,
- 0, NULL);
- }
- }
-
-out:
- cfg80211_scan_done(vif->scan_req, aborted);
- vif->scan_req = NULL;
-}
-
-static int ath6kl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
- u8 key_index, bool pairwise,
- const u8 *mac_addr,
- struct key_params *params)
-{
- struct ath6kl *ar = ath6kl_priv(ndev);
- struct ath6kl_vif *vif = netdev_priv(ndev);
- struct ath6kl_key *key = NULL;
- int seq_len = 0;
- u8 key_usage;
- u8 key_type;
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- if (params->cipher == CCKM_KRK_CIPHER_SUITE) {
- if (params->key_len != WMI_KRK_LEN)
- return -EINVAL;
- return ath6kl_wmi_add_krk_cmd(ar->wmi, vif->fw_vif_idx,
- params->key);
- }
-
- if (key_index > WMI_MAX_KEY_INDEX) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: key index %d out of bounds\n", __func__,
- key_index);
- return -ENOENT;
- }
-
- key = &vif->keys[key_index];
- memset(key, 0, sizeof(struct ath6kl_key));
-
- if (pairwise)
- key_usage = PAIRWISE_USAGE;
- else
- key_usage = GROUP_USAGE;
-
- seq_len = params->seq_len;
- if (params->cipher == WLAN_CIPHER_SUITE_SMS4 &&
- seq_len > ATH6KL_KEY_SEQ_LEN) {
- /* Only first half of the WPI PN is configured */
- seq_len = ATH6KL_KEY_SEQ_LEN;
- }
- if (params->key_len > WLAN_MAX_KEY_LEN ||
- seq_len > sizeof(key->seq))
- return -EINVAL;
-
- key->key_len = params->key_len;
- memcpy(key->key, params->key, key->key_len);
- key->seq_len = seq_len;
- memcpy(key->seq, params->seq, key->seq_len);
- key->cipher = params->cipher;
-
- switch (key->cipher) {
- case WLAN_CIPHER_SUITE_WEP40:
- case WLAN_CIPHER_SUITE_WEP104:
- key_type = WEP_CRYPT;
- break;
-
- case WLAN_CIPHER_SUITE_TKIP:
- key_type = TKIP_CRYPT;
- break;
-
- case WLAN_CIPHER_SUITE_CCMP:
- key_type = AES_CRYPT;
- break;
- case WLAN_CIPHER_SUITE_SMS4:
- key_type = WAPI_CRYPT;
- break;
-
- default:
- return -ENOTSUPP;
- }
-
- if (((vif->auth_mode == WPA_PSK_AUTH)
- || (vif->auth_mode == WPA2_PSK_AUTH))
- && (key_usage & GROUP_USAGE))
- del_timer(&vif->disconnect_timer);
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: index %d, key_len %d, key_type 0x%x, key_usage 0x%x, seq_len %d\n",
- __func__, key_index, key->key_len, key_type,
- key_usage, key->seq_len);
-
- if (vif->nw_type == AP_NETWORK && !pairwise &&
- (key_type == TKIP_CRYPT || key_type == AES_CRYPT ||
- key_type == WAPI_CRYPT)) {
- ar->ap_mode_bkey.valid = true;
- ar->ap_mode_bkey.key_index = key_index;
- ar->ap_mode_bkey.key_type = key_type;
- ar->ap_mode_bkey.key_len = key->key_len;
- memcpy(ar->ap_mode_bkey.key, key->key, key->key_len);
- if (!test_bit(CONNECTED, &vif->flags)) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "Delay initial group "
- "key configuration until AP mode has been "
- "started\n");
- /*
- * The key will be set in ath6kl_connect_ap_mode() once
- * the connected event is received from the target.
- */
- return 0;
- }
- }
-
- if (vif->next_mode == AP_NETWORK && key_type == WEP_CRYPT &&
- !test_bit(CONNECTED, &vif->flags)) {
- /*
- * Store the key locally so that it can be re-configured after
- * the AP mode has properly started
- * (ath6kl_install_statioc_wep_keys).
- */
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "Delay WEP key configuration "
- "until AP mode has been started\n");
- vif->wep_key_list[key_index].key_len = key->key_len;
- memcpy(vif->wep_key_list[key_index].key, key->key,
- key->key_len);
- return 0;
- }
-
- return ath6kl_wmi_addkey_cmd(ar->wmi, vif->fw_vif_idx, key_index,
- key_type, key_usage, key->key_len,
- key->seq, key->seq_len, key->key,
- KEY_OP_INIT_VAL,
- (u8 *) mac_addr, SYNC_BOTH_WMIFLAG);
-}
-
-static int ath6kl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
- u8 key_index, bool pairwise,
- const u8 *mac_addr)
-{
- struct ath6kl *ar = ath6kl_priv(ndev);
- struct ath6kl_vif *vif = netdev_priv(ndev);
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: index %d\n", __func__, key_index);
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- if (key_index > WMI_MAX_KEY_INDEX) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: key index %d out of bounds\n", __func__,
- key_index);
- return -ENOENT;
- }
-
- if (!vif->keys[key_index].key_len) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: index %d is empty\n", __func__, key_index);
- return 0;
- }
-
- vif->keys[key_index].key_len = 0;
-
- return ath6kl_wmi_deletekey_cmd(ar->wmi, vif->fw_vif_idx, key_index);
-}
-
-static int ath6kl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *ndev,
- u8 key_index, bool pairwise,
- const u8 *mac_addr, void *cookie,
- void (*callback) (void *cookie,
- struct key_params *))
-{
- struct ath6kl_vif *vif = netdev_priv(ndev);
- struct ath6kl_key *key = NULL;
- struct key_params params;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: index %d\n", __func__, key_index);
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- if (key_index > WMI_MAX_KEY_INDEX) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: key index %d out of bounds\n", __func__,
- key_index);
- return -ENOENT;
- }
-
- key = &vif->keys[key_index];
- memset(&params, 0, sizeof(params));
- params.cipher = key->cipher;
- params.key_len = key->key_len;
- params.seq_len = key->seq_len;
- params.seq = key->seq;
- params.key = key->key;
-
- callback(cookie, &params);
-
- return key->key_len ? 0 : -ENOENT;
-}
-
-static int ath6kl_cfg80211_set_default_key(struct wiphy *wiphy,
- struct net_device *ndev,
- u8 key_index, bool unicast,
- bool multicast)
-{
- struct ath6kl *ar = ath6kl_priv(ndev);
- struct ath6kl_vif *vif = netdev_priv(ndev);
- struct ath6kl_key *key = NULL;
- u8 key_usage;
- enum crypto_type key_type = NONE_CRYPT;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: index %d\n", __func__, key_index);
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- if (key_index > WMI_MAX_KEY_INDEX) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: key index %d out of bounds\n",
- __func__, key_index);
- return -ENOENT;
- }
-
- if (!vif->keys[key_index].key_len) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: invalid key index %d\n",
- __func__, key_index);
- return -EINVAL;
- }
-
- vif->def_txkey_index = key_index;
- key = &vif->keys[vif->def_txkey_index];
- key_usage = GROUP_USAGE;
- if (vif->prwise_crypto == WEP_CRYPT)
- key_usage |= TX_USAGE;
- if (unicast)
- key_type = vif->prwise_crypto;
- if (multicast)
- key_type = vif->grp_crypto;
-
- if (vif->next_mode == AP_NETWORK && !test_bit(CONNECTED, &vif->flags))
- return 0; /* Delay until AP mode has been started */
-
- return ath6kl_wmi_addkey_cmd(ar->wmi, vif->fw_vif_idx,
- vif->def_txkey_index,
- key_type, key_usage,
- key->key_len, key->seq, key->seq_len,
- key->key,
- KEY_OP_INIT_VAL, NULL,
- SYNC_BOTH_WMIFLAG);
-}
-
-void ath6kl_cfg80211_tkip_micerr_event(struct ath6kl_vif *vif, u8 keyid,
- bool ismcast)
-{
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: keyid %d, ismcast %d\n", __func__, keyid, ismcast);
-
- cfg80211_michael_mic_failure(vif->ndev, vif->bssid,
- (ismcast ? NL80211_KEYTYPE_GROUP :
- NL80211_KEYTYPE_PAIRWISE), keyid, NULL,
- GFP_KERNEL);
-}
-
-static int ath6kl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed)
-{
- struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy);
- struct ath6kl_vif *vif;
- int ret;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: changed 0x%x\n", __func__,
- changed);
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- if (changed & WIPHY_PARAM_RTS_THRESHOLD) {
- ret = ath6kl_wmi_set_rts_cmd(ar->wmi, wiphy->rts_threshold);
- if (ret != 0) {
- ath6kl_err("ath6kl_wmi_set_rts_cmd failed\n");
- return -EIO;
- }
- }
-
- return 0;
-}
-
-/*
- * The type nl80211_tx_power_setting replaces the following
- * data type from 2.6.36 onwards
-*/
-static int ath6kl_cfg80211_set_txpower(struct wiphy *wiphy,
- enum nl80211_tx_power_setting type,
- int mbm)
-{
- struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy);
- struct ath6kl_vif *vif;
- u8 ath6kl_dbm;
- int dbm = MBM_TO_DBM(mbm);
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: type 0x%x, dbm %d\n", __func__,
- type, dbm);
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- switch (type) {
- case NL80211_TX_POWER_AUTOMATIC:
- return 0;
- case NL80211_TX_POWER_LIMITED:
- ar->tx_pwr = ath6kl_dbm = dbm;
- break;
- default:
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: type 0x%x not supported\n",
- __func__, type);
- return -EOPNOTSUPP;
- }
-
- ath6kl_wmi_set_tx_pwr_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_dbm);
-
- return 0;
-}
-
-static int ath6kl_cfg80211_get_txpower(struct wiphy *wiphy, int *dbm)
-{
- struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy);
- struct ath6kl_vif *vif;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- if (test_bit(CONNECTED, &vif->flags)) {
- ar->tx_pwr = 0;
-
- if (ath6kl_wmi_get_tx_pwr_cmd(ar->wmi, vif->fw_vif_idx) != 0) {
- ath6kl_err("ath6kl_wmi_get_tx_pwr_cmd failed\n");
- return -EIO;
- }
-
- wait_event_interruptible_timeout(ar->event_wq, ar->tx_pwr != 0,
- 5 * HZ);
-
- if (signal_pending(current)) {
- ath6kl_err("target did not respond\n");
- return -EINTR;
- }
- }
-
- *dbm = ar->tx_pwr;
- return 0;
-}
-
-static int ath6kl_cfg80211_set_power_mgmt(struct wiphy *wiphy,
- struct net_device *dev,
- bool pmgmt, int timeout)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct wmi_power_mode_cmd mode;
- struct ath6kl_vif *vif = netdev_priv(dev);
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: pmgmt %d, timeout %d\n",
- __func__, pmgmt, timeout);
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- if (pmgmt) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: rec power\n", __func__);
- mode.pwr_mode = REC_POWER;
- } else {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: max perf\n", __func__);
- mode.pwr_mode = MAX_PERF_POWER;
- }
-
- if (ath6kl_wmi_powermode_cmd(ar->wmi, vif->fw_vif_idx,
- mode.pwr_mode) != 0) {
- ath6kl_err("wmi_powermode_cmd failed\n");
- return -EIO;
- }
-
- return 0;
-}
-
-static struct net_device *ath6kl_cfg80211_add_iface(struct wiphy *wiphy,
- char *name,
- enum nl80211_iftype type,
- u32 *flags,
- struct vif_params *params)
-{
- struct ath6kl *ar = wiphy_priv(wiphy);
- struct net_device *ndev;
- u8 if_idx, nw_type;
-
- if (ar->num_vif == ar->vif_max) {
- ath6kl_err("Reached maximum number of supported vif\n");
- return ERR_PTR(-EINVAL);
- }
-
- if (!ath6kl_is_valid_iftype(ar, type, &if_idx, &nw_type)) {
- ath6kl_err("Not a supported interface type\n");
- return ERR_PTR(-EINVAL);
- }
-
- ndev = ath6kl_interface_add(ar, name, type, if_idx, nw_type);
- if (!ndev)
- return ERR_PTR(-ENOMEM);
-
- ar->num_vif++;
-
- return ndev;
-}
-
-static int ath6kl_cfg80211_del_iface(struct wiphy *wiphy,
- struct net_device *ndev)
-{
- struct ath6kl *ar = wiphy_priv(wiphy);
- struct ath6kl_vif *vif = netdev_priv(ndev);
-
- spin_lock_bh(&ar->list_lock);
- list_del(&vif->list);
- spin_unlock_bh(&ar->list_lock);
-
- ath6kl_cleanup_vif(vif, test_bit(WMI_READY, &ar->flag));
-
- ath6kl_deinit_if_data(vif);
-
- return 0;
-}
-
-static int ath6kl_cfg80211_change_iface(struct wiphy *wiphy,
- struct net_device *ndev,
- enum nl80211_iftype type, u32 *flags,
- struct vif_params *params)
-{
- struct ath6kl_vif *vif = netdev_priv(ndev);
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: type %u\n", __func__, type);
-
- switch (type) {
- case NL80211_IFTYPE_STATION:
- vif->next_mode = INFRA_NETWORK;
- break;
- case NL80211_IFTYPE_ADHOC:
- vif->next_mode = ADHOC_NETWORK;
- break;
- case NL80211_IFTYPE_AP:
- vif->next_mode = AP_NETWORK;
- break;
- case NL80211_IFTYPE_P2P_CLIENT:
- vif->next_mode = INFRA_NETWORK;
- break;
- case NL80211_IFTYPE_P2P_GO:
- vif->next_mode = AP_NETWORK;
- break;
- default:
- ath6kl_err("invalid interface type %u\n", type);
- return -EOPNOTSUPP;
- }
-
- vif->wdev.iftype = type;
-
- return 0;
-}
-
-static int ath6kl_cfg80211_join_ibss(struct wiphy *wiphy,
- struct net_device *dev,
- struct cfg80211_ibss_params *ibss_param)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_vif *vif = netdev_priv(dev);
- int status;
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- vif->ssid_len = ibss_param->ssid_len;
- memcpy(vif->ssid, ibss_param->ssid, vif->ssid_len);
-
- if (ibss_param->channel)
- vif->ch_hint = ibss_param->channel->center_freq;
-
- if (ibss_param->channel_fixed) {
- /*
- * TODO: channel_fixed: The channel should be fixed, do not
- * search for IBSSs to join on other channels. Target
- * firmware does not support this feature, needs to be
- * updated.
- */
- return -EOPNOTSUPP;
- }
-
- memset(vif->req_bssid, 0, sizeof(vif->req_bssid));
- if (ibss_param->bssid && !is_broadcast_ether_addr(ibss_param->bssid))
- memcpy(vif->req_bssid, ibss_param->bssid,
- sizeof(vif->req_bssid));
-
- ath6kl_set_wpa_version(vif, 0);
-
- status = ath6kl_set_auth_type(vif, NL80211_AUTHTYPE_OPEN_SYSTEM);
- if (status)
- return status;
-
- if (ibss_param->privacy) {
- ath6kl_set_cipher(vif, WLAN_CIPHER_SUITE_WEP40, true);
- ath6kl_set_cipher(vif, WLAN_CIPHER_SUITE_WEP40, false);
- } else {
- ath6kl_set_cipher(vif, 0, true);
- ath6kl_set_cipher(vif, 0, false);
- }
-
- vif->nw_type = vif->next_mode;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "%s: connect called with authmode %d dot11 auth %d"
- " PW crypto %d PW crypto len %d GRP crypto %d"
- " GRP crypto len %d channel hint %u\n",
- __func__,
- vif->auth_mode, vif->dot11_auth_mode, vif->prwise_crypto,
- vif->prwise_crypto_len, vif->grp_crypto,
- vif->grp_crypto_len, vif->ch_hint);
-
- status = ath6kl_wmi_connect_cmd(ar->wmi, vif->fw_vif_idx, vif->nw_type,
- vif->dot11_auth_mode, vif->auth_mode,
- vif->prwise_crypto,
- vif->prwise_crypto_len,
- vif->grp_crypto, vif->grp_crypto_len,
- vif->ssid_len, vif->ssid,
- vif->req_bssid, vif->ch_hint,
- ar->connect_ctrl_flags, SUBTYPE_NONE);
- set_bit(CONNECT_PEND, &vif->flags);
-
- return 0;
-}
-
-static int ath6kl_cfg80211_leave_ibss(struct wiphy *wiphy,
- struct net_device *dev)
-{
- struct ath6kl_vif *vif = netdev_priv(dev);
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- ath6kl_disconnect(vif);
- memset(vif->ssid, 0, sizeof(vif->ssid));
- vif->ssid_len = 0;
-
- return 0;
-}
-
-static const u32 cipher_suites[] = {
- WLAN_CIPHER_SUITE_WEP40,
- WLAN_CIPHER_SUITE_WEP104,
- WLAN_CIPHER_SUITE_TKIP,
- WLAN_CIPHER_SUITE_CCMP,
- CCKM_KRK_CIPHER_SUITE,
- WLAN_CIPHER_SUITE_SMS4,
-};
-
-static bool is_rate_legacy(s32 rate)
-{
- static const s32 legacy[] = { 1000, 2000, 5500, 11000,
- 6000, 9000, 12000, 18000, 24000,
- 36000, 48000, 54000
- };
- u8 i;
-
- for (i = 0; i < ARRAY_SIZE(legacy); i++)
- if (rate == legacy[i])
- return true;
-
- return false;
-}
-
-static bool is_rate_ht20(s32 rate, u8 *mcs, bool *sgi)
-{
- static const s32 ht20[] = { 6500, 13000, 19500, 26000, 39000,
- 52000, 58500, 65000, 72200
- };
- u8 i;
-
- for (i = 0; i < ARRAY_SIZE(ht20); i++) {
- if (rate == ht20[i]) {
- if (i == ARRAY_SIZE(ht20) - 1)
- /* last rate uses sgi */
- *sgi = true;
- else
- *sgi = false;
-
- *mcs = i;
- return true;
- }
- }
- return false;
-}
-
-static bool is_rate_ht40(s32 rate, u8 *mcs, bool *sgi)
-{
- static const s32 ht40[] = { 13500, 27000, 40500, 54000,
- 81000, 108000, 121500, 135000,
- 150000
- };
- u8 i;
-
- for (i = 0; i < ARRAY_SIZE(ht40); i++) {
- if (rate == ht40[i]) {
- if (i == ARRAY_SIZE(ht40) - 1)
- /* last rate uses sgi */
- *sgi = true;
- else
- *sgi = false;
-
- *mcs = i;
- return true;
- }
- }
-
- return false;
-}
-
-static int ath6kl_get_station(struct wiphy *wiphy, struct net_device *dev,
- u8 *mac, struct station_info *sinfo)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_vif *vif = netdev_priv(dev);
- long left;
- bool sgi;
- s32 rate;
- int ret;
- u8 mcs;
-
- if (memcmp(mac, vif->bssid, ETH_ALEN) != 0)
- return -ENOENT;
-
- if (down_interruptible(&ar->sem))
- return -EBUSY;
-
- set_bit(STATS_UPDATE_PEND, &vif->flags);
-
- ret = ath6kl_wmi_get_stats_cmd(ar->wmi, vif->fw_vif_idx);
-
- if (ret != 0) {
- up(&ar->sem);
- return -EIO;
- }
-
- left = wait_event_interruptible_timeout(ar->event_wq,
- !test_bit(STATS_UPDATE_PEND,
- &vif->flags),
- WMI_TIMEOUT);
-
- up(&ar->sem);
-
- if (left == 0)
- return -ETIMEDOUT;
- else if (left < 0)
- return left;
-
- if (vif->target_stats.rx_byte) {
- sinfo->rx_bytes = vif->target_stats.rx_byte;
- sinfo->filled |= STATION_INFO_RX_BYTES;
- sinfo->rx_packets = vif->target_stats.rx_pkt;
- sinfo->filled |= STATION_INFO_RX_PACKETS;
- }
-
- if (vif->target_stats.tx_byte) {
- sinfo->tx_bytes = vif->target_stats.tx_byte;
- sinfo->filled |= STATION_INFO_TX_BYTES;
- sinfo->tx_packets = vif->target_stats.tx_pkt;
- sinfo->filled |= STATION_INFO_TX_PACKETS;
- }
-
- sinfo->signal = vif->target_stats.cs_rssi;
- sinfo->filled |= STATION_INFO_SIGNAL;
-
- rate = vif->target_stats.tx_ucast_rate;
-
- if (is_rate_legacy(rate)) {
- sinfo->txrate.legacy = rate / 100;
- } else if (is_rate_ht20(rate, &mcs, &sgi)) {
- if (sgi) {
- sinfo->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI;
- sinfo->txrate.mcs = mcs - 1;
- } else {
- sinfo->txrate.mcs = mcs;
- }
-
- sinfo->txrate.flags |= RATE_INFO_FLAGS_MCS;
- } else if (is_rate_ht40(rate, &mcs, &sgi)) {
- if (sgi) {
- sinfo->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI;
- sinfo->txrate.mcs = mcs - 1;
- } else {
- sinfo->txrate.mcs = mcs;
- }
-
- sinfo->txrate.flags |= RATE_INFO_FLAGS_40_MHZ_WIDTH;
- sinfo->txrate.flags |= RATE_INFO_FLAGS_MCS;
- } else {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "invalid rate from stats: %d\n", rate);
- ath6kl_debug_war(ar, ATH6KL_WAR_INVALID_RATE);
- return 0;
- }
-
- sinfo->filled |= STATION_INFO_TX_BITRATE;
-
- if (test_bit(CONNECTED, &vif->flags) &&
- test_bit(DTIM_PERIOD_AVAIL, &vif->flags) &&
- vif->nw_type == INFRA_NETWORK) {
- sinfo->filled |= STATION_INFO_BSS_PARAM;
- sinfo->bss_param.flags = 0;
- sinfo->bss_param.dtim_period = vif->assoc_bss_dtim_period;
- sinfo->bss_param.beacon_interval = vif->assoc_bss_beacon_int;
- }
-
- return 0;
-}
-
-static int ath6kl_set_pmksa(struct wiphy *wiphy, struct net_device *netdev,
- struct cfg80211_pmksa *pmksa)
-{
- struct ath6kl *ar = ath6kl_priv(netdev);
- struct ath6kl_vif *vif = netdev_priv(netdev);
-
- return ath6kl_wmi_setpmkid_cmd(ar->wmi, vif->fw_vif_idx, pmksa->bssid,
- pmksa->pmkid, true);
-}
-
-static int ath6kl_del_pmksa(struct wiphy *wiphy, struct net_device *netdev,
- struct cfg80211_pmksa *pmksa)
-{
- struct ath6kl *ar = ath6kl_priv(netdev);
- struct ath6kl_vif *vif = netdev_priv(netdev);
-
- return ath6kl_wmi_setpmkid_cmd(ar->wmi, vif->fw_vif_idx, pmksa->bssid,
- pmksa->pmkid, false);
-}
-
-static int ath6kl_flush_pmksa(struct wiphy *wiphy, struct net_device *netdev)
-{
- struct ath6kl *ar = ath6kl_priv(netdev);
- struct ath6kl_vif *vif = netdev_priv(netdev);
-
- if (test_bit(CONNECTED, &vif->flags))
- return ath6kl_wmi_setpmkid_cmd(ar->wmi, vif->fw_vif_idx,
- vif->bssid, NULL, false);
- return 0;
-}
-
-static int ath6kl_wow_usr(struct ath6kl *ar, struct ath6kl_vif *vif,
- struct cfg80211_wowlan *wow, u32 *filter)
-{
- int ret, pos;
- u8 mask[WOW_MASK_SIZE];
- u16 i;
-
- /* Configure the patterns that we received from the user. */
- for (i = 0; i < wow->n_patterns; i++) {
-
- /*
- * Convert given nl80211 specific mask value to equivalent
- * driver specific mask value and send it to the chip along
- * with patterns. For example, If the mask value defined in
- * struct cfg80211_wowlan is 0xA (equivalent binary is 1010),
- * then equivalent driver specific mask value is
- * "0xFF 0x00 0xFF 0x00".
- */
- memset(&mask, 0, sizeof(mask));
- for (pos = 0; pos < wow->patterns[i].pattern_len; pos++) {
- if (wow->patterns[i].mask[pos / 8] & (0x1 << (pos % 8)))
- mask[pos] = 0xFF;
- }
- /*
- * Note: Pattern's offset is not passed as part of wowlan
- * parameter from CFG layer. So it's always passed as ZERO
- * to the firmware. It means, given WOW patterns are always
- * matched from the first byte of received pkt in the firmware.
- */
- ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi,
- vif->fw_vif_idx, WOW_LIST_ID,
- wow->patterns[i].pattern_len,
- 0 /* pattern offset */,
- wow->patterns[i].pattern, mask);
- if (ret)
- return ret;
- }
-
- if (wow->disconnect)
- *filter |= WOW_FILTER_OPTION_NWK_DISASSOC;
-
- if (wow->magic_pkt)
- *filter |= WOW_FILTER_OPTION_MAGIC_PACKET;
-
- if (wow->gtk_rekey_failure)
- *filter |= WOW_FILTER_OPTION_GTK_ERROR;
-
- if (wow->eap_identity_req)
- *filter |= WOW_FILTER_OPTION_EAP_REQ;
-
- if (wow->four_way_handshake)
- *filter |= WOW_FILTER_OPTION_8021X_4WAYHS;
-
- return 0;
-}
-
-static int ath6kl_wow_ap(struct ath6kl *ar, struct ath6kl_vif *vif)
-{
- static const u8 unicst_pattern[] = { 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x08 };
- static const u8 unicst_mask[] = { 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x7f };
- u8 unicst_offset = 0;
- static const u8 arp_pattern[] = { 0x08, 0x06 };
- static const u8 arp_mask[] = { 0xff, 0xff };
- u8 arp_offset = 20;
- static const u8 discvr_pattern[] = { 0xe0, 0x00, 0x00, 0xf8 };
- static const u8 discvr_mask[] = { 0xf0, 0x00, 0x00, 0xf8 };
- u8 discvr_offset = 38;
- static const u8 dhcp_pattern[] = { 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x43 /* port 67 */ };
- static const u8 dhcp_mask[] = { 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xff /* port 67 */ };
- u8 dhcp_offset = 0;
- int ret;
-
- /* Setup unicast IP, EAPOL-like and ARP pkt pattern */
- ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi,
- vif->fw_vif_idx, WOW_LIST_ID,
- sizeof(unicst_pattern), unicst_offset,
- unicst_pattern, unicst_mask);
- if (ret) {
- ath6kl_err("failed to add WOW unicast IP pattern\n");
- return ret;
- }
-
- /* Setup all ARP pkt pattern */
- ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi,
- vif->fw_vif_idx, WOW_LIST_ID,
- sizeof(arp_pattern), arp_offset,
- arp_pattern, arp_mask);
- if (ret) {
- ath6kl_err("failed to add WOW ARP pattern\n");
- return ret;
- }
-
- /*
- * Setup multicast pattern for mDNS 224.0.0.251,
- * SSDP 239.255.255.250 and LLMNR 224.0.0.252
- */
- ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi,
- vif->fw_vif_idx, WOW_LIST_ID,
- sizeof(discvr_pattern), discvr_offset,
- discvr_pattern, discvr_mask);
- if (ret) {
- ath6kl_err("failed to add WOW mDNS/SSDP/LLMNR pattern\n");
- return ret;
- }
-
- /* Setup all DHCP broadcast pkt pattern */
- ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi,
- vif->fw_vif_idx, WOW_LIST_ID,
- sizeof(dhcp_pattern), dhcp_offset,
- dhcp_pattern, dhcp_mask);
- if (ret) {
- ath6kl_err("failed to add WOW DHCP broadcast pattern\n");
- return ret;
- }
-
- return 0;
-}
-
-static int ath6kl_wow_sta(struct ath6kl *ar, struct ath6kl_vif *vif)
-{
- struct net_device *ndev = vif->ndev;
- static const u8 discvr_pattern[] = { 0xe0, 0x00, 0x00, 0xf8 };
- static const u8 discvr_mask[] = { 0xf0, 0x00, 0x00, 0xf8 };
- u8 discvr_offset = 38;
- u8 mac_mask[ETH_ALEN];
- int ret;
-
- /* Setup unicast pkt pattern */
- memset(mac_mask, 0xff, ETH_ALEN);
- ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi,
- vif->fw_vif_idx, WOW_LIST_ID,
- ETH_ALEN, 0, ndev->dev_addr,
- mac_mask);
- if (ret) {
- ath6kl_err("failed to add WOW unicast pattern\n");
- return ret;
- }
-
- /*
- * Setup multicast pattern for mDNS 224.0.0.251,
- * SSDP 239.255.255.250 and LLMNR 224.0.0.252
- */
- if ((ndev->flags & IFF_ALLMULTI) ||
- (ndev->flags & IFF_MULTICAST && netdev_mc_count(ndev) > 0)) {
- ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi,
- vif->fw_vif_idx, WOW_LIST_ID,
- sizeof(discvr_pattern), discvr_offset,
- discvr_pattern, discvr_mask);
- if (ret) {
- ath6kl_err("failed to add WOW mDNS/SSDP/LLMNR "
- "pattern\n");
- return ret;
- }
- }
-
- return 0;
-}
-
-static int is_hsleep_mode_procsed(struct ath6kl_vif *vif)
-{
- return test_bit(HOST_SLEEP_MODE_CMD_PROCESSED, &vif->flags);
-}
-
-static bool is_ctrl_ep_empty(struct ath6kl *ar)
-{
- return !ar->tx_pending[ar->ctrl_ep];
-}
-
-static int ath6kl_cfg80211_host_sleep(struct ath6kl *ar, struct ath6kl_vif *vif)
-{
- int ret, left;
-
- clear_bit(HOST_SLEEP_MODE_CMD_PROCESSED, &vif->flags);
-
- ret = ath6kl_wmi_set_host_sleep_mode_cmd(ar->wmi, vif->fw_vif_idx,
- ATH6KL_HOST_MODE_ASLEEP);
- if (ret)
- return ret;
-
- left = wait_event_interruptible_timeout(ar->event_wq,
- is_hsleep_mode_procsed(vif),
- WMI_TIMEOUT);
- if (left == 0) {
- ath6kl_warn("timeout, didn't get host sleep cmd processed event\n");
- ret = -ETIMEDOUT;
- } else if (left < 0) {
- ath6kl_warn("error while waiting for host sleep cmd processed event %d\n",
- left);
- ret = left;
- }
-
- if (ar->tx_pending[ar->ctrl_ep]) {
- left = wait_event_interruptible_timeout(ar->event_wq,
- is_ctrl_ep_empty(ar),
- WMI_TIMEOUT);
- if (left == 0) {
- ath6kl_warn("clear wmi ctrl data timeout\n");
- ret = -ETIMEDOUT;
- } else if (left < 0) {
- ath6kl_warn("clear wmi ctrl data failed: %d\n", left);
- ret = left;
- }
- }
-
- return ret;
-}
-
-static int ath6kl_wow_suspend(struct ath6kl *ar, struct cfg80211_wowlan *wow)
-{
- struct in_device *in_dev;
- struct in_ifaddr *ifa;
- struct ath6kl_vif *vif;
- int ret;
- u32 filter = 0;
- u16 i, bmiss_time;
- u8 index = 0;
- __be32 ips[MAX_IP_ADDRS];
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- if (!test_bit(CONNECTED, &vif->flags))
- return -ENOTCONN;
-
- if (wow && (wow->n_patterns > WOW_MAX_FILTERS_PER_LIST))
- return -EINVAL;
-
- /* Clear existing WOW patterns */
- for (i = 0; i < WOW_MAX_FILTERS_PER_LIST; i++)
- ath6kl_wmi_del_wow_pattern_cmd(ar->wmi, vif->fw_vif_idx,
- WOW_LIST_ID, i);
-
- /*
- * Skip the default WOW pattern configuration
- * if the driver receives any WOW patterns from
- * the user.
- */
- if (wow)
- ret = ath6kl_wow_usr(ar, vif, wow, &filter);
- else if (vif->nw_type == AP_NETWORK)
- ret = ath6kl_wow_ap(ar, vif);
- else
- ret = ath6kl_wow_sta(ar, vif);
-
- if (ret)
- return ret;
-
- netif_stop_queue(vif->ndev);
-
- if (vif->nw_type != AP_NETWORK) {
- ret = ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx,
- ATH6KL_MAX_WOW_LISTEN_INTL,
- 0);
- if (ret)
- return ret;
-
- /* Set listen interval x 15 times as bmiss time */
- bmiss_time = ATH6KL_MAX_WOW_LISTEN_INTL * 15;
- if (bmiss_time > ATH6KL_MAX_BMISS_TIME)
- bmiss_time = ATH6KL_MAX_BMISS_TIME;
-
- ret = ath6kl_wmi_bmisstime_cmd(ar->wmi, vif->fw_vif_idx,
- bmiss_time, 0);
- if (ret)
- return ret;
-
- ret = ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx,
- 0xFFFF, 0, 0xFFFF, 0, 0, 0,
- 0, 0, 0, 0);
- if (ret)
- return ret;
- }
-
- ar->state = ATH6KL_STATE_SUSPENDING;
-
- /* Setup own IP addr for ARP agent. */
- in_dev = __in_dev_get_rtnl(vif->ndev);
- if (!in_dev)
- goto skip_arp;
-
- ifa = in_dev->ifa_list;
- memset(&ips, 0, sizeof(ips));
-
- /* Configure IP addr only if IP address count < MAX_IP_ADDRS */
- while (index < MAX_IP_ADDRS && ifa) {
- ips[index] = ifa->ifa_local;
- ifa = ifa->ifa_next;
- index++;
- }
-
- if (ifa) {
- ath6kl_err("total IP addr count is exceeding fw limit\n");
- return -EINVAL;
- }
-
- ret = ath6kl_wmi_set_ip_cmd(ar->wmi, vif->fw_vif_idx, ips[0], ips[1]);
- if (ret) {
- ath6kl_err("fail to setup ip for arp agent\n");
- return ret;
- }
-
-skip_arp:
- ret = ath6kl_wmi_set_wow_mode_cmd(ar->wmi, vif->fw_vif_idx,
- ATH6KL_WOW_MODE_ENABLE,
- filter,
- WOW_HOST_REQ_DELAY);
- if (ret)
- return ret;
-
- ret = ath6kl_cfg80211_host_sleep(ar, vif);
- if (ret)
- return ret;
-
-
- ret = ath6kl_hif_wait_for_pending_recv(ar);
-
- return ret;
-}
-
-static int ath6kl_wow_resume(struct ath6kl *ar)
-{
- struct ath6kl_vif *vif;
- int ret;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- if (ar->state == ATH6KL_STATE_RESUMING)
- return 0;
-
- ar->state = ATH6KL_STATE_RESUMING;
-
-#ifdef CONFIG_HAS_WAKELOCK
- wake_lock_timeout(&ar->wake_lock, 5 * HZ);
-#endif
- ret = ath6kl_wmi_set_host_sleep_mode_cmd(ar->wmi, vif->fw_vif_idx,
- ATH6KL_HOST_MODE_AWAKE);
- if (ret) {
- ath6kl_warn("Failed to configure host sleep mode for "
- "wow resume: %d\n", ret);
- ar->state = ATH6KL_STATE_WOW;
- return ret;
- }
-
- if (vif->nw_type != AP_NETWORK) {
- ret = ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx,
- 0, 0, 0, 0, 0, 0, 3, 0, 0, 0);
- if (ret)
- return ret;
-
- ret = ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx,
- vif->listen_intvl_t, 0);
- if (ret)
- return ret;
-
- ret = ath6kl_wmi_bmisstime_cmd(ar->wmi, vif->fw_vif_idx,
- vif->bmiss_time_t, 0);
- if (ret)
- return ret;
- }
-
- ar->state = ATH6KL_STATE_ON;
-
- netif_wake_queue(vif->ndev);
-
- return 0;
-}
-
-static int ath6kl_cfg80211_deepsleep_suspend(struct ath6kl *ar)
-{
- struct ath6kl_vif *vif;
- int ret;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- ath6kl_cfg80211_stop_all(ar);
-
- /* Save the current power mode before enabling power save */
- ar->wmi->saved_pwr_mode = ar->wmi->pwr_mode;
-
- ret = ath6kl_wmi_powermode_cmd(ar->wmi, 0, REC_POWER);
- if (ret)
- return ret;
-
- /* Disable WOW mode */
- ret = ath6kl_wmi_set_wow_mode_cmd(ar->wmi, vif->fw_vif_idx,
- ATH6KL_WOW_MODE_DISABLE,
- 0, 0);
- if (ret)
- return ret;
-
- /* Flush all non control pkts in TX path */
- ath6kl_tx_data_cleanup(ar);
-
- ret = ath6kl_cfg80211_host_sleep(ar, vif);
- if (ret)
- return ret;
-
-
- ret = ath6kl_hif_wait_for_pending_recv(ar);
-
- return ret;
-}
-
-static int ath6kl_cfg80211_deepsleep_resume(struct ath6kl *ar)
-{
- struct ath6kl_vif *vif;
- int ret;
-
- vif = ath6kl_vif_first(ar);
-
- if (!vif)
- return -EIO;
-
- if (ar->wmi->pwr_mode != ar->wmi->saved_pwr_mode) {
- ret = ath6kl_wmi_powermode_cmd(ar->wmi, 0,
- ar->wmi->saved_pwr_mode);
- if (ret)
- return ret;
- }
-
- ret = ath6kl_wmi_set_host_sleep_mode_cmd(ar->wmi, vif->fw_vif_idx,
- ATH6KL_HOST_MODE_AWAKE);
- if (ret)
- return ret;
-
- ar->state = ATH6KL_STATE_ON;
-
- /* Reset scan parameter to default values */
- ret = ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx,
- 0, 0, 0, 0, 0, 0, 3, 0, 0, 0);
- if (ret)
- return ret;
-
- return 0;
-}
-
-int ath6kl_cfg80211_suspend(struct ath6kl *ar,
- enum ath6kl_cfg_suspend_mode mode,
- struct cfg80211_wowlan *wow)
-{
- enum ath6kl_state prev_state;
- int ret;
- struct ath6kl_vif *vif;
-
- switch (mode) {
- case ATH6KL_CFG_SUSPEND_WOW:
-
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "wow mode suspend\n");
-
- /* Flush all non control pkts in TX path */
- ath6kl_tx_data_cleanup(ar);
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi, vif->fw_vif_idx,
- false);
- if (ret)
- return ret;
-
- prev_state = ar->state;
-
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "ath6kl_wow_suspend()+ check GPIO_WLAN_nRST - %d\n",
- GPIO_WLAN_nRST ? gpio_get_value(GPIO_WLAN_nRST) : 0xFF);
- ret = ath6kl_wow_suspend(ar, wow);
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "ath6kl_wow_suspend()- check GPIO_WLAN_nRST - %d\n",
- GPIO_WLAN_nRST ? gpio_get_value(GPIO_WLAN_nRST) : 0xFF);
- if (ret) {
- ath6kl_err("wow suspend failed: %d\n", ret);
- ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi,
- vif->fw_vif_idx, true);
- ar->state = prev_state;
- return ret;
- }
- set_bit(WOW_RESUME_PRINT, &ar->flag);
- ar->state = ATH6KL_STATE_WOW;
- break;
-
- case ATH6KL_CFG_SUSPEND_DEEPSLEEP:
-
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "deepsleep mode suspend\n");
-
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "ath6kl_deepsleep_suspend()+ check GPIO_WLAN_nRST - %d\n",
- GPIO_WLAN_nRST ? gpio_get_value(GPIO_WLAN_nRST) : 0xFF);
- ret = ath6kl_cfg80211_deepsleep_suspend(ar);
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "ath6kl_deepsleep_suspend()- check GPIO_WLAN_nRST - %d\n",
- GPIO_WLAN_nRST ? gpio_get_value(GPIO_WLAN_nRST) : 0xFF);
-
- if (ret) {
- ath6kl_err("deepsleep suspend failed: %d\n", ret);
- return ret;
- }
-
- ar->state = ATH6KL_STATE_DEEPSLEEP;
-
- break;
-
- case ATH6KL_CFG_SUSPEND_CUTPOWER:
-
- ath6kl_cfg80211_stop_all(ar);
-
- if (ar->state == ATH6KL_STATE_OFF) {
- ath6kl_dbg(ATH6KL_DBG_SUSPEND,
- "suspend hw off, no action for cutpower\n");
- break;
- }
-
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "suspend cutting power\n");
-
- ret = ath6kl_init_hw_stop(ar);
- if (ret) {
- ath6kl_warn("failed to stop hw during suspend: %d\n",
- ret);
- }
-
- ar->state = ATH6KL_STATE_CUTPOWER;
-
- break;
-
- case ATH6KL_CFG_SUSPEND_SCHED_SCAN:
- /*
- * Nothing needed for schedule scan, firmware is already in
- * wow mode and sleeping most of the time.
- */
- break;
-
- default:
- break;
- }
-
- return 0;
-}
-
-int ath6kl_cfg80211_resume(struct ath6kl *ar)
-{
- int ret;
- struct ath6kl_vif *vif;
-
- switch (ar->state) {
- case ATH6KL_STATE_WOW:
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "wow mode resume\n");
-
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "ath6kl_wow_resume()+ check GPIO_WLAN_nRST - %d\n",
- GPIO_WLAN_nRST ? gpio_get_value(GPIO_WLAN_nRST) : 0xFF);
- ret = ath6kl_wow_resume(ar);
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "ath6kl_wow_resume()- check GPIO_WLAN_nRST - %d\n",
- GPIO_WLAN_nRST ? gpio_get_value(GPIO_WLAN_nRST) : 0xFF);
- if (ret) {
- ath6kl_warn("wow mode resume failed: %d\n", ret);
- return ret;
- }
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi, vif->fw_vif_idx,
- true);
-
- if (ret)
- return ret;
-
- break;
-
- case ATH6KL_STATE_DEEPSLEEP:
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "deep sleep resume\n");
-
-
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "ath6kl_deepsleep_resume()+ check GPIO_WLAN_nRST - %d\n",
- GPIO_WLAN_nRST ? gpio_get_value(GPIO_WLAN_nRST) : 0xFF);
- ret = ath6kl_cfg80211_deepsleep_resume(ar);
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "ath6kl_deepsleep_resume()- check GPIO_WLAN_nRST - %d\n",
- GPIO_WLAN_nRST ? gpio_get_value(GPIO_WLAN_nRST) : 0xFF);
- if (ret) {
- ath6kl_warn("deep sleep resume failed: %d\n", ret);
- return ret;
- }
- break;
-
- case ATH6KL_STATE_CUTPOWER:
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "resume restoring power\n");
-
- ret = ath6kl_init_hw_start(ar);
- if (ret) {
- ath6kl_warn("Failed to boot hw in resume: %d\n", ret);
- return ret;
- }
- break;
-
- case ATH6KL_STATE_SCHED_SCAN:
-#ifdef CONFIG_HAS_WAKELOCK
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "sched scan 30s wake lock\n");
- wake_lock_timeout(&ar->wake_lock, 30 * HZ);
-#endif
- break;
-
- default:
- break;
- }
-
- return 0;
-}
-
-#if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-
-/* hif layer decides what suspend mode to use */
-static int __ath6kl_cfg80211_suspend(struct wiphy *wiphy,
- struct cfg80211_wowlan *wow)
-{
-#ifdef CONFIG_MACH_PX
- return 0;
-#else
- struct ath6kl *ar = wiphy_priv(wiphy);
-
- return ath6kl_hif_suspend(ar, wow);
-#endif
-}
-
-static int __ath6kl_cfg80211_resume(struct wiphy *wiphy)
-{
-#ifdef CONFIG_MACH_PX
- return 0;
-#else
- struct ath6kl *ar = wiphy_priv(wiphy);
-
- return ath6kl_hif_resume(ar);
-#endif
-}
-
-/*
- * FIXME: WOW suspend mode is selected if the host sdio controller supports
- * both sdio irq wake up and keep power. The target pulls sdio data line to
- * wake up the host when WOW pattern matches. This causes sdio irq handler
- * is being called in the host side which internally hits ath6kl's RX path.
- *
- * Since sdio interrupt is not disabled, RX path executes even before
- * the host executes the actual resume operation from PM module.
- *
- * In the current scenario, WOW resume should happen before start processing
- * any data from the target. So It's required to perform WOW resume in RX path.
- * Ideally we should perform WOW resume only in the actual platform
- * resume path. This area needs bit rework to avoid WOW resume in RX path.
- *
- * ath6kl_check_wow_status() is called from ath6kl_rx().
- */
-void ath6kl_check_wow_status(struct ath6kl *ar, struct sk_buff *skb,
- bool is_event_pkt)
-{
-
- if (in_interrupt()) {
- ath6kl_dbg(ATH6KL_DBG_SUSPEND,
- "%s() called in sw interrupt context\n", __func__);
- return;
- }
-
- if (ar->state == ATH6KL_STATE_SUSPENDING) {
- ath6kl_dbg(ATH6KL_DBG_SUSPEND,
- "%s() received IRQ while we are WoW suspending\n",
- __func__);
- return;
- }
-
- ath6kl_config_suspend_wake_lock(ar, skb, is_event_pkt);
-
- if (ar->state == ATH6KL_STATE_WOW || ar->state == ATH6KL_STATE_SCHED_SCAN)
- ath6kl_cfg80211_resume(ar);
-
-}
-
-#else
-
-void ath6kl_check_wow_status(struct ath6kl *ar, struct sk_buff *skb,
- bool is_event_pkt)
-{
-}
-#endif
-
-static int ath6kl_set_channel(struct wiphy *wiphy, struct net_device *dev,
- struct ieee80211_channel *chan,
- enum nl80211_channel_type channel_type)
-{
- struct ath6kl_vif *vif;
-
- /*
- * 'dev' could be NULL if a channel change is required for the hardware
- * device itself, instead of a particular VIF.
- *
- * FIXME: To be handled properly when monitor mode is supported.
- */
- if (!dev)
- return -EBUSY;
-
- vif = netdev_priv(dev);
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: center_freq=%u hw_value=%u\n",
- __func__, chan->center_freq, chan->hw_value);
- vif->next_chan = chan->center_freq;
-
- return 0;
-}
-
-static int ath6kl_priv_cmd(struct wiphy *wiphy, struct net_device *dev,
- char *priv_cmd)
-{
- struct ath6kl_vif *vif;
- struct ath6kl *ar;
-
- if (!dev)
- return -EBUSY;
-
- vif = netdev_priv(dev);
- ar = wiphy_priv(wiphy);
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: priv_cmd %s\n",
- __func__, priv_cmd);
-
- if (strcasecmp(priv_cmd, "STOP") == 0) {
-
- /* assume that sleep policy is deep-sleep mode
- ath6kl will support cutpower-mode as well in generlized way */
- if (down_interruptible(&ar->sem)) {
- ath6kl_err("busy, couldn't get access\n");
- return -ERESTARTSYS;
- }
-
- if (test_bit(CONNECTED, &vif->flags) ||
- test_bit(CONNECT_PEND, &vif->flags)) {
- vif->reconnect_flag = 0;
- ath6kl_disconnect(vif);
- memset(vif->ssid, 0, sizeof(vif->ssid));
- vif->ssid_len = 0;
-
- if (!test_bit(SKIP_SCAN, &ar->flag))
- memset(vif->req_bssid, 0,
- sizeof(vif->req_bssid));
- }
-
- up(&ar->sem);
-
- if (vif->scan_req) {
- cfg80211_scan_done(vif->scan_req, true);
- vif->scan_req = NULL;
- }
-
- set_bit(SLEEP_POLICY_ENABLED, &vif->flags);
- ath6kl_hif_suspend(ar, NULL);
- } else if (strcasecmp(priv_cmd, "START") == 0) {
- ath6kl_hif_resume(ar);
- clear_bit(SLEEP_POLICY_ENABLED, &vif->flags);
- }
-
- return 0;
-
-}
-
-static bool ath6kl_is_p2p_ie(const u8 *pos)
-{
- return pos[0] == WLAN_EID_VENDOR_SPECIFIC && pos[1] >= 4 &&
- pos[2] == 0x50 && pos[3] == 0x6f &&
- pos[4] == 0x9a && pos[5] == 0x09;
-}
-
-static int ath6kl_set_ap_probe_resp_ies(struct ath6kl_vif *vif,
- const u8 *ies, size_t ies_len)
-{
- struct ath6kl *ar = vif->ar;
- const u8 *pos;
- u8 *buf = NULL;
- size_t len = 0;
- int ret;
-
- /*
- * Filter out P2P IE(s) since they will be included depending on
- * the Probe Request frame in ath6kl_send_go_probe_resp().
- */
-
- if (ies && ies_len) {
- buf = kmalloc(ies_len, GFP_KERNEL);
- if (buf == NULL)
- return -ENOMEM;
- pos = ies;
- while (pos + 1 < ies + ies_len) {
- if (pos + 2 + pos[1] > ies + ies_len)
- break;
- if (!ath6kl_is_p2p_ie(pos)) {
- memcpy(buf + len, pos, 2 + pos[1]);
- len += 2 + pos[1];
- }
- pos += 2 + pos[1];
- }
- }
-
- ret = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx,
- WMI_FRAME_PROBE_RESP, buf, len);
- kfree(buf);
- return ret;
-}
-
-static int ath6kl_ap_beacon(struct wiphy *wiphy, struct net_device *dev,
- struct beacon_parameters *info, bool add)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_vif *vif = netdev_priv(dev);
- struct ieee80211_mgmt *mgmt;
- bool hidden = false;
- u8 *ies;
- int ies_len;
- struct wmi_connect_cmd p;
- int res;
- int i, ret;
- u8 *rsn_ie;
- int rsn_ie_len;
- u16 cnt;
- u16 rsn_capb;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: add=%d\n", __func__, add);
-
- if (!ath6kl_cfg80211_ready(vif))
- return -EIO;
-
- if (vif->next_mode != AP_NETWORK)
- return -EOPNOTSUPP;
-
- /* this also clears IE in fw if it's not set */
- res = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx,
- WMI_FRAME_BEACON,
- info->beacon_ies,
- info->beacon_ies_len);
- if (res)
- return res;
-
- /* this also clears IE in fw if it's not set */
- res = ath6kl_set_ap_probe_resp_ies(vif, info->proberesp_ies,
- info->proberesp_ies_len);
- if (res)
- return res;
-
- /* this also clears IE in fw if it's not set */
- res = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx,
- WMI_FRAME_ASSOC_RESP,
- info->assocresp_ies,
- info->assocresp_ies_len);
- if (res)
- return res;
-
- if (!add)
- return 0;
-
- ar->ap_mode_bkey.valid = false;
-
- /* TODO:
- * info->interval
- * info->dtim_period
- */
-
- if (info->head == NULL)
- return -EINVAL;
- mgmt = (struct ieee80211_mgmt *) info->head;
- ies = mgmt->u.beacon.variable;
- if (ies > info->head + info->head_len)
- return -EINVAL;
- ies_len = info->head + info->head_len - ies;
-
- if (info->ssid == NULL)
- return -EINVAL;
- memcpy(vif->ssid, info->ssid, info->ssid_len);
- vif->ssid_len = info->ssid_len;
- if (info->hidden_ssid != NL80211_HIDDEN_SSID_NOT_IN_USE)
- hidden = true;
-
- res = ath6kl_wmi_ap_hidden_ssid(ar->wmi, vif->fw_vif_idx, hidden);
- if (res)
- return res;
-
- ret = ath6kl_set_auth_type(vif, info->auth_type);
- if (ret)
- return ret;
-
- memset(&p, 0, sizeof(p));
-
- for (i = 0; i < info->crypto.n_akm_suites; i++) {
- switch (info->crypto.akm_suites[i]) {
- case WLAN_AKM_SUITE_8021X:
- if (info->crypto.wpa_versions & NL80211_WPA_VERSION_1)
- p.auth_mode |= WPA_AUTH;
- if (info->crypto.wpa_versions & NL80211_WPA_VERSION_2)
- p.auth_mode |= WPA2_AUTH;
- break;
- case WLAN_AKM_SUITE_PSK:
- if (info->crypto.wpa_versions & NL80211_WPA_VERSION_1)
- p.auth_mode |= WPA_PSK_AUTH;
- if (info->crypto.wpa_versions & NL80211_WPA_VERSION_2)
- p.auth_mode |= WPA2_PSK_AUTH;
- break;
- }
- }
- if (p.auth_mode == 0)
- p.auth_mode = NONE_AUTH;
- vif->auth_mode = p.auth_mode;
-
- for (i = 0; i < info->crypto.n_ciphers_pairwise; i++) {
- switch (info->crypto.ciphers_pairwise[i]) {
- case WLAN_CIPHER_SUITE_WEP40:
- case WLAN_CIPHER_SUITE_WEP104:
- p.prwise_crypto_type |= WEP_CRYPT;
- break;
- case WLAN_CIPHER_SUITE_TKIP:
- p.prwise_crypto_type |= TKIP_CRYPT;
- break;
- case WLAN_CIPHER_SUITE_CCMP:
- p.prwise_crypto_type |= AES_CRYPT;
- break;
- case WLAN_CIPHER_SUITE_SMS4:
- p.prwise_crypto_type |= WAPI_CRYPT;
- break;
- }
- }
- if (p.prwise_crypto_type == 0) {
- p.prwise_crypto_type = NONE_CRYPT;
- ath6kl_set_cipher(vif, 0, true);
- } else if (info->crypto.n_ciphers_pairwise == 1)
- ath6kl_set_cipher(vif, info->crypto.ciphers_pairwise[0], true);
-
- switch (info->crypto.cipher_group) {
- case WLAN_CIPHER_SUITE_WEP40:
- case WLAN_CIPHER_SUITE_WEP104:
- p.grp_crypto_type = WEP_CRYPT;
- break;
- case WLAN_CIPHER_SUITE_TKIP:
- p.grp_crypto_type = TKIP_CRYPT;
- break;
- case WLAN_CIPHER_SUITE_CCMP:
- p.grp_crypto_type = AES_CRYPT;
- break;
- case WLAN_CIPHER_SUITE_SMS4:
- p.grp_crypto_type = WAPI_CRYPT;
- break;
- default:
- p.grp_crypto_type = NONE_CRYPT;
- break;
- }
- ath6kl_set_cipher(vif, info->crypto.cipher_group, false);
-
- p.nw_type = AP_NETWORK;
- vif->nw_type = vif->next_mode;
-
- p.ssid_len = vif->ssid_len;
- memcpy(p.ssid, vif->ssid, vif->ssid_len);
- p.dot11_auth_mode = vif->dot11_auth_mode;
- p.ch = cpu_to_le16(vif->next_chan);
-
- /*
- * Get the PTKSA replay counter in the RSN IE. Supplicant
- * will use the RSN IE in M3 message and firmware has to
- * advertise the same in beacon/probe response. Send
- * the complete RSN IE capability field to firmware
- */
- if ((p.auth_mode & (WPA2_AUTH | WPA2_PSK_AUTH)) && (info->tail) &&
- test_bit(ATH6KL_FW_CAPABILITY_RSN_CAP_OVERRIDE,
- ar->fw_capabilities)) {
- rsn_capb = 0;
- rsn_ie = (u8 *)cfg80211_find_ie(WLAN_EID_RSN, info->tail,
- info->tail_len);
- if (rsn_ie) {
- rsn_ie_len = *(rsn_ie + 1);
- rsn_ie += 2; /* skip element id and length */
- do {
- /* skip version, group cipher */
- if (rsn_ie_len < 6)
- break;
- rsn_ie += 6;
- rsn_ie_len -= 6;
- /* skip pairwise cipher suite */
- if (rsn_ie_len < 2)
- break;
- cnt = *((u16 *)rsn_ie);
- rsn_ie += (2 + cnt * 4);
- rsn_ie_len -= (2 + cnt * 4);
- /* skip akm suite */
- if (rsn_ie_len < 2)
- break;
- cnt = *((u16 *)rsn_ie);
- rsn_ie += (2 + cnt * 4);
- rsn_ie_len -= (2 + cnt * 4);
- if (rsn_ie_len < 2)
- break;
- rsn_capb = *((u16 *)rsn_ie);
- } while (0);
- rsn_capb = cpu_to_le16(rsn_capb);
- res = ath6kl_wmi_set_ie_cmd(ar->wmi, vif->fw_vif_idx,
- WLAN_EID_RSN, WMI_RSN_IE_CAPB,
- (const u8 *)&rsn_capb, sizeof(rsn_capb));
- if (res < 0)
- return res;
- }
- }
-
- /* Enable uAPSD support by default */
- res = ath6kl_wmi_ap_set_apsd(ar->wmi, vif->fw_vif_idx, true);
- if (res < 0)
- return res;
-
- if (vif->wdev.iftype == NL80211_IFTYPE_P2P_GO) {
- p.nw_subtype = SUBTYPE_P2PGO;
- } else {
- /*
- * Due to firmware limitation, it is not possible to
- * do P2P mgmt operations in AP mode
- */
- p.nw_subtype = SUBTYPE_NONE;
- }
-
- res = ath6kl_wmi_ap_profile_commit(ar->wmi, vif->fw_vif_idx, &p);
- if (res < 0)
- return res;
-
- return 0;
-}
-
-static int ath6kl_add_beacon(struct wiphy *wiphy, struct net_device *dev,
- struct beacon_parameters *info)
-{
- return ath6kl_ap_beacon(wiphy, dev, info, true);
-}
-
-static int ath6kl_set_beacon(struct wiphy *wiphy, struct net_device *dev,
- struct beacon_parameters *info)
-{
- return ath6kl_ap_beacon(wiphy, dev, info, false);
-}
-
-static int ath6kl_del_beacon(struct wiphy *wiphy, struct net_device *dev)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_vif *vif = netdev_priv(dev);
-
- if (vif->nw_type != AP_NETWORK)
- return -EOPNOTSUPP;
- if (!test_bit(CONNECTED, &vif->flags))
- return -ENOTCONN;
-
- ath6kl_wmi_disconnect_cmd(ar->wmi, vif->fw_vif_idx);
- clear_bit(CONNECTED, &vif->flags);
-
- return 0;
-}
-
-static const u8 bcast_addr[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
-
-static int ath6kl_del_station(struct wiphy *wiphy, struct net_device *dev,
- u8 *mac)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_vif *vif = netdev_priv(dev);
- const u8 *addr = mac ? mac : bcast_addr;
-
- return ath6kl_wmi_ap_set_mlme(ar->wmi, vif->fw_vif_idx, WMI_AP_DEAUTH,
- addr, WLAN_REASON_PREV_AUTH_NOT_VALID);
-}
-
-static int ath6kl_change_station(struct wiphy *wiphy, struct net_device *dev,
- u8 *mac, struct station_parameters *params)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_vif *vif = netdev_priv(dev);
-
- if (vif->nw_type != AP_NETWORK)
- return -EOPNOTSUPP;
-
- /* Use this only for authorizing/unauthorizing a station */
- if (!(params->sta_flags_mask & BIT(NL80211_STA_FLAG_AUTHORIZED)))
- return -EOPNOTSUPP;
-
- if (params->sta_flags_set & BIT(NL80211_STA_FLAG_AUTHORIZED))
- return ath6kl_wmi_ap_set_mlme(ar->wmi, vif->fw_vif_idx,
- WMI_AP_MLME_AUTHORIZE, mac, 0);
- return ath6kl_wmi_ap_set_mlme(ar->wmi, vif->fw_vif_idx,
- WMI_AP_MLME_UNAUTHORIZE, mac, 0);
-}
-
-static int ath6kl_remain_on_channel(struct wiphy *wiphy,
- struct net_device *dev,
- struct ieee80211_channel *chan,
- enum nl80211_channel_type channel_type,
- unsigned int duration,
- u64 *cookie)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_vif *vif = netdev_priv(dev);
- u32 id;
-#ifdef CONFIG_HAS_WAKELOCK
- ath6kl_p2p_release_wakelock(ar);
- ath6kl_p2p_acquire_wakelock(ar , duration + 100);
-#endif
- /* TODO: if already pending or ongoing remain-on-channel,
- * return -EBUSY */
- id = ++vif->last_roc_id;
- if (id == 0) {
- /* Do not use 0 as the cookie value */
- id = ++vif->last_roc_id;
- }
- *cookie = id;
-
- return ath6kl_wmi_remain_on_chnl_cmd(ar->wmi, vif->fw_vif_idx,
- chan->center_freq, duration);
-}
-
-static int ath6kl_cancel_remain_on_channel(struct wiphy *wiphy,
- struct net_device *dev,
- u64 cookie)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_vif *vif = netdev_priv(dev);
-
- if (cookie != vif->last_roc_id)
- return -ENOENT;
- vif->last_cancel_roc_id = cookie;
-
- return ath6kl_wmi_cancel_remain_on_chnl_cmd(ar->wmi, vif->fw_vif_idx);
-}
-
-static int ath6kl_send_go_probe_resp(struct ath6kl_vif *vif,
- const u8 *buf, size_t len,
- unsigned int freq)
-{
- struct ath6kl *ar = vif->ar;
- const u8 *pos;
- u8 *p2p;
- int p2p_len;
- int ret;
- const struct ieee80211_mgmt *mgmt;
-
- mgmt = (const struct ieee80211_mgmt *) buf;
-
- /* Include P2P IE(s) from the frame generated in user space. */
-
- p2p = kmalloc(len, GFP_KERNEL);
- if (p2p == NULL)
- return -ENOMEM;
- p2p_len = 0;
-
- pos = mgmt->u.probe_resp.variable;
- while (pos + 1 < buf + len) {
- if (pos + 2 + pos[1] > buf + len)
- break;
- if (ath6kl_is_p2p_ie(pos)) {
- memcpy(p2p + p2p_len, pos, 2 + pos[1]);
- p2p_len += 2 + pos[1];
- }
- pos += 2 + pos[1];
- }
-
- ret = ath6kl_wmi_send_probe_response_cmd(ar->wmi, vif->fw_vif_idx, freq,
- mgmt->da, p2p, p2p_len);
- kfree(p2p);
- return ret;
-}
-
-static bool ath6kl_mgmt_powersave_ap(struct ath6kl_vif *vif,
- u32 id,
- u32 freq,
- u32 wait,
- const u8 *buf,
- size_t len,
- bool *more_data,
- bool no_cck)
-{
- struct ieee80211_mgmt *mgmt;
- struct ath6kl_sta *conn;
- bool is_psq_empty = false;
- struct ath6kl_mgmt_buff *mgmt_buf;
- size_t mgmt_buf_size;
- struct ath6kl *ar = vif->ar;
-
- mgmt = (struct ieee80211_mgmt *) buf;
- if (is_multicast_ether_addr(mgmt->da))
- return false;
-
- conn = ath6kl_find_sta(vif, mgmt->da);
- if (!conn)
- return false;
-
- if (conn->sta_flags & STA_PS_SLEEP) {
- if (!(conn->sta_flags & STA_PS_POLLED)) {
- /* Queue the frames if the STA is sleeping */
- mgmt_buf_size = len + sizeof(struct ath6kl_mgmt_buff);
- mgmt_buf = kmalloc(mgmt_buf_size, GFP_KERNEL);
- if (!mgmt_buf)
- return false;
-
- INIT_LIST_HEAD(&mgmt_buf->list);
- mgmt_buf->id = id;
- mgmt_buf->freq = freq;
- mgmt_buf->wait = wait;
- mgmt_buf->len = len;
- mgmt_buf->no_cck = no_cck;
- memcpy(mgmt_buf->buf, buf, len);
- spin_lock_bh(&conn->psq_lock);
- is_psq_empty = skb_queue_empty(&conn->psq) &&
- (conn->mgmt_psq_len == 0);
- list_add_tail(&mgmt_buf->list, &conn->mgmt_psq);
- conn->mgmt_psq_len++;
- spin_unlock_bh(&conn->psq_lock);
-
- /*
- * If this is the first pkt getting queued
- * for this STA, update the PVB for this
- * STA.
- */
- if (is_psq_empty)
- ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx,
- conn->aid, 1);
- return true;
- }
-
- /*
- * This tx is because of a PsPoll.
- * Determine if MoreData bit has to be set.
- */
- spin_lock_bh(&conn->psq_lock);
- if (!skb_queue_empty(&conn->psq) || (conn->mgmt_psq_len != 0))
- *more_data = true;
- spin_unlock_bh(&conn->psq_lock);
- }
-
- return false;
-}
-
-/* Check if SSID length is greater than DIRECT- */
-static bool ath6kl_is_p2p_go_ssid(const u8 *buf, size_t len)
-{
- const struct ieee80211_mgmt *mgmt;
- mgmt = (const struct ieee80211_mgmt *) buf;
-
- /* variable[1] contains the SSID tag length */
- if (buf + len >= &mgmt->u.probe_resp.variable[1] &&
- (mgmt->u.probe_resp.variable[1] > P2P_WILDCARD_SSID_LEN)) {
- return true;
- }
-
- return false;
-}
-
-static int ath6kl_mgmt_tx(struct wiphy *wiphy, struct net_device *dev,
- struct ieee80211_channel *chan, bool offchan,
- enum nl80211_channel_type channel_type,
- bool channel_type_valid, unsigned int wait,
- const u8 *buf, size_t len, bool no_cck,
- bool dont_wait_for_ack, u64 *cookie)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_vif *vif = netdev_priv(dev);
- u32 id;
- const struct ieee80211_mgmt *mgmt;
- bool more_data, queued;
-
- mgmt = (const struct ieee80211_mgmt *) buf;
- if (vif->nw_type == AP_NETWORK && test_bit(CONNECTED, &vif->flags) &&
- ieee80211_is_probe_resp(mgmt->frame_control) &&
- ath6kl_is_p2p_go_ssid(buf, len)) {
- /*
- * Send Probe Response frame in GO mode using a separate WMI
- * command to allow the target to fill in the generic IEs.
- */
- *cookie = 0; /* TX status not supported */
- return ath6kl_send_go_probe_resp(vif, buf, len,
- chan->center_freq);
- }
-
- id = vif->send_action_id++;
- if (id == 0) {
- /*
- * 0 is a reserved value in the WMI command and shall not be
- * used for the command.
- */
- id = vif->send_action_id++;
- }
-
- *cookie = id;
-
- /* AP mode Power saving processing */
- if (vif->nw_type == AP_NETWORK) {
- queued = ath6kl_mgmt_powersave_ap(vif,
- id, chan->center_freq,
- wait, buf,
- len, &more_data, no_cck);
- if (queued)
- return 0;
- }
-
- return ath6kl_wmi_send_mgmt_cmd(ar->wmi, vif->fw_vif_idx, id,
- chan->center_freq, wait,
- buf, len, no_cck);
-}
-
-static void ath6kl_mgmt_frame_register(struct wiphy *wiphy,
- struct net_device *dev,
- u16 frame_type, bool reg)
-{
- struct ath6kl_vif *vif = netdev_priv(dev);
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: frame_type=0x%x reg=%d\n",
- __func__, frame_type, reg);
- if (frame_type == IEEE80211_STYPE_PROBE_REQ) {
- /*
- * Note: This notification callback is not allowed to sleep, so
- * we cannot send WMI_PROBE_REQ_REPORT_CMD here. Instead, we
- * hardcode target to report Probe Request frames all the time.
- */
- vif->probe_req_report = reg;
- }
-}
-
-static int ath6kl_cfg80211_sscan_start(struct wiphy *wiphy,
- struct net_device *dev,
- struct cfg80211_sched_scan_request *request)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_vif *vif = netdev_priv(dev);
- u16 interval;
- int ret;
-
- if (ar->state != ATH6KL_STATE_ON)
- return -EIO;
-
- if (vif->sme_state != SME_DISCONNECTED)
- return -EBUSY;
-
- ath6kl_cfg80211_scan_complete_event(vif, true);
-
- ret = ath6kl_set_probed_ssids(ar, vif, request->ssids,
- request->n_ssids);
- if (ret < 0)
- return ret;
-
-
- /* fw uses seconds, also make sure that it's >0 */
- interval = max_t(u16, 1, request->interval / 1000);
-
- ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx,
- interval, interval,
- 10, 0, 0, 0, 3, 0, 0, 0);
-
- ret = ath6kl_wmi_set_wow_mode_cmd(ar->wmi, vif->fw_vif_idx,
- ATH6KL_WOW_MODE_ENABLE,
- WOW_FILTER_SSID,
- WOW_HOST_REQ_DELAY);
- if (ret) {
- ath6kl_warn("Failed to enable wow with ssid filter: %d\n", ret);
- return ret;
- }
-
- /* this also clears IE in fw if it's not set */
- ret = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx,
- WMI_FRAME_PROBE_REQ,
- request->ie, request->ie_len);
- if (ret) {
- ath6kl_warn("Failed to set probe request IE for scheduled scan: %d",
- ret);
- return ret;
- }
-
- ret = ath6kl_wmi_set_host_sleep_mode_cmd(ar->wmi, vif->fw_vif_idx,
- ATH6KL_HOST_MODE_ASLEEP);
- if (ret) {
- ath6kl_warn("Failed to enable host sleep mode for sched scan: %d\n",
- ret);
- return ret;
- }
-
- ar->state = ATH6KL_STATE_SCHED_SCAN;
-
- return ret;
-}
-
-static int ath6kl_cfg80211_sscan_stop(struct wiphy *wiphy,
- struct net_device *dev)
-{
- struct ath6kl_vif *vif = netdev_priv(dev);
- bool stopped;
-
- stopped = __ath6kl_cfg80211_sscan_stop(vif);
-
- if (!stopped)
- return -EIO;
-
- return 0;
-}
-
-
-static int ath6kl_notify_p2p_flush(struct wiphy *wiphy)
-{
- ath6kl_err("%s() Enter - steven", __func__);
-
- cfg80211_unlink_allbss(wiphy);
-
- return 0;
-}
-
-static const struct ieee80211_txrx_stypes
-ath6kl_mgmt_stypes[NUM_NL80211_IFTYPES] = {
- [NL80211_IFTYPE_STATION] = {
- .tx = BIT(IEEE80211_STYPE_ACTION >> 4) |
- BIT(IEEE80211_STYPE_PROBE_RESP >> 4),
- .rx = BIT(IEEE80211_STYPE_ACTION >> 4) |
- BIT(IEEE80211_STYPE_PROBE_REQ >> 4)
- },
- [NL80211_IFTYPE_AP] = {
- .tx = BIT(IEEE80211_STYPE_ACTION >> 4) |
- BIT(IEEE80211_STYPE_PROBE_RESP >> 4),
- .rx = BIT(IEEE80211_STYPE_ACTION >> 4) |
- BIT(IEEE80211_STYPE_PROBE_REQ >> 4)
- },
- [NL80211_IFTYPE_P2P_CLIENT] = {
- .tx = BIT(IEEE80211_STYPE_ACTION >> 4) |
- BIT(IEEE80211_STYPE_PROBE_RESP >> 4),
- .rx = BIT(IEEE80211_STYPE_ACTION >> 4) |
- BIT(IEEE80211_STYPE_PROBE_REQ >> 4)
- },
- [NL80211_IFTYPE_P2P_GO] = {
- .tx = BIT(IEEE80211_STYPE_ACTION >> 4) |
- BIT(IEEE80211_STYPE_PROBE_RESP >> 4),
- .rx = BIT(IEEE80211_STYPE_ACTION >> 4) |
- BIT(IEEE80211_STYPE_PROBE_REQ >> 4)
- },
-};
-
-static struct cfg80211_ops ath6kl_cfg80211_ops = {
- .add_virtual_intf = ath6kl_cfg80211_add_iface,
- .del_virtual_intf = ath6kl_cfg80211_del_iface,
- .change_virtual_intf = ath6kl_cfg80211_change_iface,
- .scan = ath6kl_cfg80211_scan,
- .connect = ath6kl_cfg80211_connect,
- .disconnect = ath6kl_cfg80211_disconnect,
- .add_key = ath6kl_cfg80211_add_key,
- .get_key = ath6kl_cfg80211_get_key,
- .del_key = ath6kl_cfg80211_del_key,
- .set_default_key = ath6kl_cfg80211_set_default_key,
- .set_wiphy_params = ath6kl_cfg80211_set_wiphy_params,
- .set_tx_power = ath6kl_cfg80211_set_txpower,
- .get_tx_power = ath6kl_cfg80211_get_txpower,
- .set_power_mgmt = ath6kl_cfg80211_set_power_mgmt,
- .join_ibss = ath6kl_cfg80211_join_ibss,
- .leave_ibss = ath6kl_cfg80211_leave_ibss,
- .get_station = ath6kl_get_station,
- .set_pmksa = ath6kl_set_pmksa,
- .del_pmksa = ath6kl_del_pmksa,
- .flush_pmksa = ath6kl_flush_pmksa,
- CFG80211_TESTMODE_CMD(ath6kl_tm_cmd)
-#if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
- .suspend = __ath6kl_cfg80211_suspend,
- .resume = __ath6kl_cfg80211_resume,
-#endif
- .set_channel = ath6kl_set_channel,
- .add_beacon = ath6kl_add_beacon,
- .set_beacon = ath6kl_set_beacon,
- .del_beacon = ath6kl_del_beacon,
- .del_station = ath6kl_del_station,
- .change_station = ath6kl_change_station,
- .remain_on_channel = ath6kl_remain_on_channel,
- .cancel_remain_on_channel = ath6kl_cancel_remain_on_channel,
- .mgmt_tx = ath6kl_mgmt_tx,
- .mgmt_frame_register = ath6kl_mgmt_frame_register,
- .notify_btcoex_inq_status = ath6kl_notify_btcoex_inq_status,
- .notify_btcoex_sco_status = ath6kl_notify_btcoex_sco_status,
- .notify_btcoex_a2dp_status = ath6kl_notify_btcoex_a2dp_status,
- .notify_btcoex_acl_info = ath6kl_notify_btcoex_acl_info,
- .notify_btcoex_antenna_config = ath6kl_notify_btcoex_antenna_config,
- .notify_btcoex_bt_vendor = ath6kl_notify_btcoex_bt_vendor,
- .notify_btcoex = ath6kl_notify_btcoex,
- .notify_p2p_flush = ath6kl_notify_p2p_flush,
- .sched_scan_start = ath6kl_cfg80211_sscan_start,
- .sched_scan_stop = ath6kl_cfg80211_sscan_stop,
- .priv_cmd = ath6kl_priv_cmd,
-};
-
-void ath6kl_cfg80211_stop(struct ath6kl_vif *vif)
-{
- ath6kl_cfg80211_sscan_disable(vif);
-
- switch (vif->sme_state) {
- case SME_DISCONNECTED:
- break;
- case SME_CONNECTING:
- cfg80211_connect_result(vif->ndev, vif->bssid, NULL, 0,
- NULL, 0,
- WLAN_STATUS_UNSPECIFIED_FAILURE,
- GFP_KERNEL);
- break;
- case SME_CONNECTED:
- cfg80211_disconnected(vif->ndev, 0, NULL, 0, GFP_KERNEL);
- break;
- }
-
- if (test_bit(CONNECTED, &vif->flags) ||
- test_bit(CONNECT_PEND, &vif->flags))
- ath6kl_wmi_disconnect_cmd(vif->ar->wmi, vif->fw_vif_idx);
-
- vif->sme_state = SME_DISCONNECTED;
- clear_bit(CONNECTED, &vif->flags);
- clear_bit(CONNECT_PEND, &vif->flags);
-
- /* disable scanning */
- if (ath6kl_wmi_scanparams_cmd(vif->ar->wmi, vif->fw_vif_idx, 0xFFFF,
- 0, 0, 0, 0, 0, 0, 0, 0, 0) != 0)
- ath6kl_warn("failed to disable scan during stop\n");
-
- ath6kl_cfg80211_scan_complete_event(vif, true);
-}
-
-void ath6kl_cfg80211_stop_all(struct ath6kl *ar)
-{
- struct ath6kl_vif *vif;
-
- vif = ath6kl_vif_first(ar);
- if (!vif) {
- /* save the current power mode before enabling power save */
- ar->wmi->saved_pwr_mode = ar->wmi->pwr_mode;
-
- if (ath6kl_wmi_powermode_cmd(ar->wmi, 0, REC_POWER) != 0)
- ath6kl_warn("ath6kl_deep_sleep_enable: "
- "wmi_powermode_cmd failed\n");
- return;
- }
-
- /*
- * FIXME: we should take ar->list_lock to protect changes in the
- * vif_list, but that's not trivial to do as ath6kl_cfg80211_stop()
- * sleeps.
- */
- list_for_each_entry(vif, &ar->vif_list, list)
- ath6kl_cfg80211_stop(vif);
-}
-
-struct ath6kl *ath6kl_core_alloc(struct device *dev)
-{
- struct ath6kl *ar;
- struct wiphy *wiphy;
- u8 ctr;
-
- /* create a new wiphy for use with cfg80211 */
- wiphy = wiphy_new(&ath6kl_cfg80211_ops, sizeof(struct ath6kl));
-
- if (!wiphy) {
- ath6kl_err("couldn't allocate wiphy device\n");
- return NULL;
- }
-
- ar = wiphy_priv(wiphy);
- ar->p2p = !!ath6kl_p2p;
- ar->wiphy = wiphy;
- ar->dev = dev;
-
- ar->vif_max = 1;
-
- ar->max_norm_iface = 1;
-
- spin_lock_init(&ar->lock);
- spin_lock_init(&ar->mcastpsq_lock);
- spin_lock_init(&ar->list_lock);
-
- init_waitqueue_head(&ar->event_wq);
- sema_init(&ar->sem, 1);
-
- INIT_LIST_HEAD(&ar->amsdu_rx_buffer_queue);
- INIT_LIST_HEAD(&ar->vif_list);
-
- clear_bit(WMI_ENABLED, &ar->flag);
- clear_bit(SKIP_SCAN, &ar->flag);
- clear_bit(DESTROY_IN_PROGRESS, &ar->flag);
-
- ar->tx_pwr = 0;
- ar->intra_bss = 1;
- ar->lrssi_roam_threshold = DEF_LRSSI_ROAM_THRESHOLD;
-
- ar->state = ATH6KL_STATE_OFF;
-
- memset((u8 *)ar->sta_list, 0,
- AP_MAX_NUM_STA * sizeof(struct ath6kl_sta));
-
- /* Init the PS queues */
- for (ctr = 0; ctr < AP_MAX_NUM_STA; ctr++) {
- spin_lock_init(&ar->sta_list[ctr].psq_lock);
- skb_queue_head_init(&ar->sta_list[ctr].psq);
- skb_queue_head_init(&ar->sta_list[ctr].apsdq);
- ar->sta_list[ctr].mgmt_psq_len = 0;
- INIT_LIST_HEAD(&ar->sta_list[ctr].mgmt_psq);
- ar->sta_list[ctr].aggr_conn =
- kzalloc(sizeof(struct aggr_info_conn), GFP_KERNEL);
- if (!ar->sta_list[ctr].aggr_conn) {
- ath6kl_err("Failed to allocate memory for sta aggregation information\n");
- ath6kl_core_cleanup(ar);
- return NULL;
- }
- }
-
- skb_queue_head_init(&ar->mcastpsq);
-
- memcpy(ar->ap_country_code, DEF_AP_COUNTRY_CODE, 3);
-
- return ar;
-}
-
-int ath6kl_register_ieee80211_hw(struct ath6kl *ar)
-{
- struct wiphy *wiphy = ar->wiphy;
- int ret;
-
- wiphy->mgmt_stypes = ath6kl_mgmt_stypes;
-
- wiphy->max_remain_on_channel_duration = 5000;
-
- /* set device pointer for wiphy */
- set_wiphy_dev(wiphy, ar->dev);
-
- wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
- BIT(NL80211_IFTYPE_ADHOC) |
- BIT(NL80211_IFTYPE_AP);
- if (ar->p2p) {
- wiphy->interface_modes |= BIT(NL80211_IFTYPE_P2P_GO) |
- BIT(NL80211_IFTYPE_P2P_CLIENT);
- }
-
- /* max num of ssids that can be probed during scanning */
- wiphy->max_scan_ssids = MAX_PROBED_SSIDS;
- wiphy->max_scan_ie_len = 1000; /* FIX: what is correct limit? */
- wiphy->bands[IEEE80211_BAND_2GHZ] = &ath6kl_band_2ghz;
- wiphy->bands[IEEE80211_BAND_5GHZ] = &ath6kl_band_5ghz;
- wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM;
-
- wiphy->cipher_suites = cipher_suites;
- wiphy->n_cipher_suites = ARRAY_SIZE(cipher_suites);
-
- wiphy->wowlan.flags = WIPHY_WOWLAN_MAGIC_PKT |
- WIPHY_WOWLAN_DISCONNECT |
- WIPHY_WOWLAN_GTK_REKEY_FAILURE |
- WIPHY_WOWLAN_SUPPORTS_GTK_REKEY |
- WIPHY_WOWLAN_EAP_IDENTITY_REQ |
- WIPHY_WOWLAN_4WAY_HANDSHAKE;
- wiphy->wowlan.n_patterns = WOW_MAX_FILTERS_PER_LIST;
- wiphy->wowlan.pattern_min_len = 1;
- wiphy->wowlan.pattern_max_len = WOW_PATTERN_SIZE;
-
- wiphy->max_sched_scan_ssids = MAX_PROBED_SSIDS;
-
- ath6kl_setup_android_resource(ar);
-
- ret = wiphy_register(wiphy);
- if (ret < 0) {
- ath6kl_err("couldn't register wiphy device\n");
- return ret;
- }
-
- return 0;
-}
-
-static int ath6kl_init_if_data(struct ath6kl_vif *vif)
-{
- vif->aggr_cntxt = aggr_init(vif);
- if (!vif->aggr_cntxt) {
- ath6kl_err("failed to initialize aggr\n");
- return -ENOMEM;
- }
-
- setup_timer(&vif->disconnect_timer, disconnect_timer_handler,
- (unsigned long) vif->ndev);
- setup_timer(&vif->sched_scan_timer, ath6kl_wmi_sscan_timer,
- (unsigned long) vif);
-
- set_bit(WMM_ENABLED, &vif->flags);
- spin_lock_init(&vif->if_lock);
-
- INIT_LIST_HEAD(&vif->mc_filter);
-
- return 0;
-}
-
-void ath6kl_deinit_if_data(struct ath6kl_vif *vif)
-{
- struct ath6kl *ar = vif->ar;
- struct ath6kl_mc_filter *mc_filter, *tmp;
-
- aggr_module_destroy(vif->aggr_cntxt);
-
- ar->avail_idx_map |= BIT(vif->fw_vif_idx);
-
- if (vif->nw_type == ADHOC_NETWORK)
- ar->ibss_if_active = false;
-
- list_for_each_entry_safe(mc_filter, tmp, &vif->mc_filter, list) {
- list_del(&mc_filter->list);
- kfree(mc_filter);
- }
-
- unregister_netdevice(vif->ndev);
-
- ar->num_vif--;
-}
-
-struct net_device *ath6kl_interface_add(struct ath6kl *ar, char *name,
- enum nl80211_iftype type, u8 fw_vif_idx,
- u8 nw_type)
-{
- struct net_device *ndev;
- struct ath6kl_vif *vif;
-
- ndev = alloc_netdev(sizeof(*vif), name, ether_setup);
- if (!ndev)
- return NULL;
-
- vif = netdev_priv(ndev);
- ndev->ieee80211_ptr = &vif->wdev;
- vif->wdev.wiphy = ar->wiphy;
- vif->ar = ar;
- vif->ndev = ndev;
- SET_NETDEV_DEV(ndev, wiphy_dev(vif->wdev.wiphy));
- vif->wdev.netdev = ndev;
- vif->wdev.iftype = type;
- vif->fw_vif_idx = fw_vif_idx;
- vif->nw_type = vif->next_mode = nw_type;
- vif->bg_scan_period = 0;
- vif->scan_ctrl_flag = 0;
- vif->listen_intvl_t = ATH6KL_DEFAULT_LISTEN_INTVAL;
- vif->bmiss_time_t = ATH6KL_DEFAULT_BMISS_TIME;
-
- memset((u8 *)&vif->scparams, 0, sizeof(vif->scparams));
- vif->scparams.bg_period = WLAN_CONFIG_BG_SCAN_INTERVAL;
- vif->scparams.maxact_chdwell_time = WLAN_CONFIG_MAXACT_CHDWELL_TIME;
- vif->scparams.pas_chdwell_time = WLAN_CONFIG_PASSIVE_CHDWELL_TIME;
- vif->scparams.short_scan_ratio = WMI_SHORTSCANRATIO_DEFAULT;
- vif->scparams.scan_ctrl_flags = DEFAULT_SCAN_CTRL_FLAGS;
-
- vif->pspoll_num = WLAN_CONFIG_PSPOLL_NUM;
- vif->mcastrate = WLAN_CONFIG_MCAST_RATE;
- vif->force_reload = false;
- vif->sdio_remove = false;
-
- memcpy(ndev->dev_addr, ar->mac_addr, ETH_ALEN);
- if (fw_vif_idx != 0)
- ndev->dev_addr[0] = (ndev->dev_addr[0] ^ (1 << fw_vif_idx)) |
- 0x2;
-
- init_netdev(ndev);
-
- ath6kl_init_control_info(vif);
-
- /* TODO: Pass interface specific pointer instead of ar */
- if (ath6kl_init_if_data(vif))
- goto err;
-
- if (register_netdevice(ndev))
- goto err;
-
- ar->avail_idx_map &= ~BIT(fw_vif_idx);
- vif->sme_state = SME_DISCONNECTED;
- set_bit(WLAN_ENABLED, &vif->flags);
- ar->wlan_pwr_state = WLAN_POWER_STATE_ON;
- set_bit(NETDEV_REGISTERED, &vif->flags);
-
- if (type == NL80211_IFTYPE_ADHOC)
- ar->ibss_if_active = true;
-
- spin_lock_bh(&ar->list_lock);
- list_add_tail(&vif->list, &ar->vif_list);
- spin_unlock_bh(&ar->list_lock);
-
- return ndev;
-
-err:
- aggr_module_destroy(vif->aggr_cntxt);
- free_netdev(ndev);
- return NULL;
-}
-
-void ath6kl_deinit_ieee80211_hw(struct ath6kl *ar)
-{
- int i;
-
- ath6kl_cleanup_android_resource(ar);
-
- for (i = 0; i < AP_MAX_NUM_STA; i++)
- kfree(ar->sta_list[i].aggr_conn);
-
- wiphy_unregister(ar->wiphy);
- wiphy_free(ar->wiphy);
-}
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.h b/drivers/net/wireless/ath/ath6kl/cfg80211.h
deleted file mode 100755
index ae375b6..0000000
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef ATH6KL_CFG80211_H
-#define ATH6KL_CFG80211_H
-
-enum ath6kl_cfg_suspend_mode {
- ATH6KL_CFG_SUSPEND_DEEPSLEEP,
- ATH6KL_CFG_SUSPEND_CUTPOWER,
- ATH6KL_CFG_SUSPEND_WOW,
- ATH6KL_CFG_SUSPEND_SCHED_SCAN,
-};
-
-struct net_device *ath6kl_interface_add(struct ath6kl *ar, char *name,
- enum nl80211_iftype type,
- u8 fw_vif_idx, u8 nw_type);
-int ath6kl_register_ieee80211_hw(struct ath6kl *ar);
-struct ath6kl *ath6kl_core_alloc(struct device *dev);
-void ath6kl_deinit_ieee80211_hw(struct ath6kl *ar);
-
-void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, bool aborted);
-
-void ath6kl_cfg80211_connect_event(struct ath6kl_vif *vif, u16 channel,
- u8 *bssid, u16 listen_intvl,
- u16 beacon_intvl,
- enum network_type nw_type,
- u8 beacon_ie_len, u8 assoc_req_len,
- u8 assoc_resp_len, u8 *assoc_info);
-
-void ath6kl_cfg80211_disconnect_event(struct ath6kl_vif *vif, u8 reason,
- u8 *bssid, u8 assoc_resp_len,
- u8 *assoc_info, u16 proto_reason);
-
-void ath6kl_cfg80211_tkip_micerr_event(struct ath6kl_vif *vif, u8 keyid,
- bool ismcast);
-
-int ath6kl_cfg80211_suspend(struct ath6kl *ar,
- enum ath6kl_cfg_suspend_mode mode,
- struct cfg80211_wowlan *wow);
-
-int ath6kl_cfg80211_resume(struct ath6kl *ar);
-
-void ath6kl_cfg80211_stop(struct ath6kl_vif *vif);
-void ath6kl_cfg80211_stop_all(struct ath6kl *ar);
-
-#endif /* ATH6KL_CFG80211_H */
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211_btcoex.c b/drivers/net/wireless/ath/ath6kl/cfg80211_btcoex.c
deleted file mode 100644
index 399ffd7..0000000
--- a/drivers/net/wireless/ath/ath6kl/cfg80211_btcoex.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <linux/moduleparam.h>
-#include <linux/inetdevice.h>
-
-#ifdef CONFIG_HAS_WAKELOCK
-#include <linux/wakelock.h>
-#endif
-
-#include "core.h"
-#include "cfg80211.h"
-#include "debug.h"
-#include "hif-ops.h"
-#include "testmode.h"
-#include "cfg80211_btcoex.h"
-
-bool ath6kl_btcoex_cfg80211_ready(struct ath6kl_vif *vif)
-{
- struct ath6kl *ar = vif->ar;
-
- if (!test_bit(WMI_READY, &ar->flag)) {
- ath6kl_err("wmi is not ready\n");
- return false;
- }
-
- if (!test_bit(WLAN_ENABLED, &vif->flags)) {
- ath6kl_err("wlan disabled\n");
- return false;
- }
-
- return true;
-}
-#define OP_TYPE_SCO 0x01
-#define OP_TYPE_A2DP 0x02
-#define OP_TYPE_INQUIRY 0x03
-#define OP_TYPE_ESCO 0x04
-
-int ath6kl_notify_btcoex_inq_status(struct wiphy *wiphy, bool status)
-{
- struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy);
- struct ath6kl_vif *vif;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "BT coex scan status:%d\n", status);
-
- if (!ath6kl_btcoex_cfg80211_ready(vif))
- return -EIO;
-
- return ath6kl_wmi_set_btcoex_bt_op_status(ar->wmi, OP_TYPE_INQUIRY,
- status);
-}
-
-int ath6kl_notify_btcoex_sco_status(struct wiphy *wiphy, bool status,
- bool esco, u32 tx_interval,
- u32 tx_pkt_len)
-{
- struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy);
- struct ath6kl_vif *vif;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- if (!ath6kl_btcoex_cfg80211_ready(vif))
- return -EIO;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "BT Coex sco status:%d sco type %s tx interval %d tx pk len %d\n",
- status, esco ? "ESCO" : "SCO", tx_interval, tx_pkt_len);
-
- if (status)
- ath6kl_wmi_set_btcoex_sco_op(ar->wmi, esco, tx_interval,
- tx_pkt_len);
-
- return ath6kl_wmi_set_btcoex_bt_op_status(ar->wmi, OP_TYPE_SCO,
- status);
-}
-
-int ath6kl_notify_btcoex_a2dp_status(struct wiphy *wiphy, bool status)
-{
- struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy);
- struct ath6kl_vif *vif;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- if (!ath6kl_btcoex_cfg80211_ready(vif))
- return -EIO;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "BT coex A2DP status:%d\n", status);
-
- if (status)
- ath6kl_wmi_set_btcoex_a2dp_op(ar->wmi,
- ar->btcoex_info.acl_role,
- ar->btcoex_info.remote_lmp_ver,
- ar->btcoex_info.bt_vendor);
-
- return ath6kl_wmi_set_btcoex_bt_op_status(ar->wmi, OP_TYPE_A2DP,
- status);
-}
-
-#define MAX_LMP_VER 6
-int ath6kl_notify_btcoex_acl_info(struct wiphy *wiphy,
- enum nl80211_btcoex_acl_role role,
- u32 lmp_ver)
-{
- struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy);
-
- if (lmp_ver > MAX_LMP_VER)
- return -EINVAL;
-
- if (role > NL80211_BTCOEX_ACL_ROLE_SLAVE)
- return -EINVAL;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "BT coex ACL role:%d Lmp ver %d\n",
- role, lmp_ver);
-
- ar->btcoex_info.acl_role = role;
- ar->btcoex_info.remote_lmp_ver = lmp_ver;
-
- return 0;
-}
-
-#define BTCOEX_COLOCATED_BT_DEFAULT 1
-#define BTCOEX_COLOCATED_BT_QCOM 2
-
-inline int get_bt_vendor_id(enum nl80211_btcoex_vendor_list vendor)
-{
- switch (vendor) {
- case NL80211_BTCOEX_VENDOR_DEFAULT:
- return BTCOEX_COLOCATED_BT_DEFAULT;
- case NL80211_BTCOEX_VENDOR_QCOM:
- return BTCOEX_COLOCATED_BT_QCOM;
- }
-
- return BTCOEX_COLOCATED_BT_DEFAULT;
-}
-
-int ath6kl_notify_btcoex_antenna_config(struct wiphy *wiphy,
- enum nl80211_btcoex_antenna_config config)
-{
- struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy);
-
- if (config > NL80211_BTCOEX_ANTENNA_SA)
- return -EINVAL;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "BT coex Antenna configuration:%d\n",
- config);
- ath6kl_wmi_set_btcoex_set_colocated_bt(ar->wmi,
- get_bt_vendor_id
- (ar->btcoex_info.bt_vendor));
-
- return ath6kl_wmi_set_btcoex_set_fe_antenna(ar->wmi, config);
-}
-int ath6kl_notify_btcoex_bt_vendor(struct wiphy *wiphy,
- enum nl80211_btcoex_vendor_list vendor)
-{
- struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy);
-
- if (vendor > NL80211_BTCOEX_VENDOR_QCOM)
- return -EINVAL;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "vendor :%d\n", vendor);
-
- ar->btcoex_info.bt_vendor = vendor;
-
- return 0;
-}
-
-int ath6kl_notify_btcoex(struct wiphy *wiphy, u8 *buf,
- int len)
-{
- struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy);
- struct ath6kl_vif *vif;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "BT coex wmi command:%p\n", buf);
-
- if (!ath6kl_btcoex_cfg80211_ready(vif))
- return -EIO;
-
- return ath6kl_wmi_send_btcoex_cmd(ar->wmi, buf,
- len);
-}
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211_btcoex.h b/drivers/net/wireless/ath/ath6kl/cfg80211_btcoex.h
deleted file mode 100644
index 01c6181..0000000
--- a/drivers/net/wireless/ath/ath6kl/cfg80211_btcoex.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-int ath6kl_notify_btcoex_inq_status(struct wiphy *wiphy, bool status);
-int ath6kl_notify_btcoex_sco_status(struct wiphy *wiphy, bool status,
- bool esco, u32 tx_interval,
- u32 tx_pkt_len);
-int ath6kl_notify_btcoex_a2dp_status(struct wiphy *wiphy, bool status);
-int ath6kl_notify_btcoex_acl_info(struct wiphy *wiphy,
- enum nl80211_btcoex_acl_role role,
- u32 lmp_ver);
-int ath6kl_notify_btcoex_antenna_config(struct wiphy *wiphy,
- enum nl80211_btcoex_antenna_config config);
-int ath6kl_notify_btcoex_bt_vendor(struct wiphy *wiphy,
- enum nl80211_btcoex_vendor_list vendor);
-int ath6kl_notify_btcoex(struct wiphy *wiphy, u8 *buf,
- int len);
diff --git a/drivers/net/wireless/ath/ath6kl/common.h b/drivers/net/wireless/ath/ath6kl/common.h
deleted file mode 100755
index 88a5459..0000000
--- a/drivers/net/wireless/ath/ath6kl/common.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2010-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef COMMON_H
-#define COMMON_H
-
-#include <linux/netdevice.h>
-
-#define ATH6KL_MAX_IE 256
-
-extern int ath6kl_printk(const char *level, const char *fmt, ...);
-
-/*
- * Reflects the version of binary interface exposed by ATH6KL target
- * firmware. Needs to be incremented by 1 for any change in the firmware
- * that requires upgrade of the driver on the host side for the change to
- * work correctly
- */
-#define ATH6KL_ABI_VERSION 1
-
-#define SIGNAL_QUALITY_METRICS_NUM_MAX 2
-
-enum {
- SIGNAL_QUALITY_METRICS_SNR = 0,
- SIGNAL_QUALITY_METRICS_RSSI,
- SIGNAL_QUALITY_METRICS_ALL,
-};
-
-/*
- * Data Path
- */
-
-#define WMI_MAX_TX_DATA_FRAME_LENGTH \
- (1500 + sizeof(struct wmi_data_hdr) + \
- sizeof(struct ethhdr) + \
- sizeof(struct ath6kl_llc_snap_hdr))
-
-/* An AMSDU frame */ /* The MAX AMSDU length of AR6003 is 3839 */
-#define WMI_MAX_AMSDU_RX_DATA_FRAME_LENGTH \
- (3840 + sizeof(struct wmi_data_hdr) + \
- sizeof(struct ethhdr) + \
- sizeof(struct ath6kl_llc_snap_hdr))
-
-#define EPPING_ALIGNMENT_PAD \
- (((sizeof(struct htc_frame_hdr) + 3) & (~0x3)) \
- - sizeof(struct htc_frame_hdr))
-
-struct ath6kl_llc_snap_hdr {
- u8 dsap;
- u8 ssap;
- u8 cntl;
- u8 org_code[3];
- __be16 eth_type;
-} __packed;
-
-enum crypto_type {
- NONE_CRYPT = 0x01,
- WEP_CRYPT = 0x02,
- TKIP_CRYPT = 0x04,
- AES_CRYPT = 0x08,
- WAPI_CRYPT = 0x10,
-};
-
-struct htc_endpoint_credit_dist;
-struct ath6kl;
-enum htc_credit_dist_reason;
-struct ath6kl_htc_credit_info;
-
-struct ath6kl *ath6kl_core_alloc(struct device *sdev);
-int ath6kl_core_init(struct ath6kl *ar);
-void ath6kl_core_cleanup(struct ath6kl *ar);
-struct sk_buff *ath6kl_buf_alloc(int size);
-#endif /* COMMON_H */
diff --git a/drivers/net/wireless/ath/ath6kl/core.h b/drivers/net/wireless/ath/ath6kl/core.h
deleted file mode 100755
index 97c1ae5..0000000
--- a/drivers/net/wireless/ath/ath6kl/core.h
+++ /dev/null
@@ -1,932 +0,0 @@
-/*
- * Copyright (c) 2010-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef CORE_H
-#define CORE_H
-
-#include <linux/etherdevice.h>
-#include <linux/rtnetlink.h>
-#include <linux/firmware.h>
-#include <linux/sched.h>
-#include <linux/circ_buf.h>
-#include <net/cfg80211.h>
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-#ifdef CONFIG_HAS_WAKELOCK
-#include <linux/wakelock.h>
-#endif
-#include "htc.h"
-#include "wmi.h"
-#include "bmi.h"
-#include "target.h"
-#include "wmi_btcoex.h"
-
-#define MAX_ATH6KL 1
-#define ATH6KL_MAX_RX_BUFFERS 16
-#define ATH6KL_BUFFER_SIZE 1664
-#define ATH6KL_MAX_AMSDU_RX_BUFFERS 4
-#define ATH6KL_AMSDU_REFILL_THRESHOLD 3
-#define ATH6KL_AMSDU_BUFFER_SIZE (WMI_MAX_AMSDU_RX_DATA_FRAME_LENGTH + 128)
-#define MAX_MSDU_SUBFRAME_PAYLOAD_LEN 1508
-#define MIN_MSDU_SUBFRAME_PAYLOAD_LEN 46
-
-#define USER_SAVEDKEYS_STAT_INIT 0
-#define USER_SAVEDKEYS_STAT_RUN 1
-
-#define ATH6KL_TX_TIMEOUT 10
-#define ATH6KL_MAX_ENDPOINTS 4
-#define MAX_NODE_NUM 15
-
-#define ATH6KL_APSD_ALL_FRAME 0xFFFF
-#define ATH6KL_APSD_NUM_OF_AC 0x4
-#define ATH6KL_APSD_FRAME_MASK 0xF
-
-/* Extra bytes for htc header alignment */
-#define ATH6KL_HTC_ALIGN_BYTES 3
-
-/* MAX_HI_COOKIE_NUM are reserved for high priority traffic */
-#define MAX_DEF_COOKIE_NUM 180
-#define MAX_HI_COOKIE_NUM 18 /* 10% of MAX_COOKIE_NUM */
-#define MAX_COOKIE_NUM (MAX_DEF_COOKIE_NUM + MAX_HI_COOKIE_NUM)
-
-#define MAX_DEFAULT_SEND_QUEUE_DEPTH (MAX_DEF_COOKIE_NUM / WMM_NUM_AC)
-
-#define DISCON_TIMER_INTVAL 10000 /* in msec */
-
-/* Channel dwell time in fg scan */
-#define ATH6KL_FG_SCAN_INTERVAL 60 /* in ms */
-
-/*
- * background scan interval (sec)
- * disable background scan interval: 65535
- * default: 60 sec
- * to restore the default value: 0
- *
- * For P2P and PMKID cache, bg scan should be enabled.
- */
-#ifdef CONFIG_MACH_PX
-#define WLAN_CONFIG_BG_SCAN_INTERVAL 65535
-#else
-#define WLAN_CONFIG_BG_SCAN_INTERVAL 0
-#endif
-/*
- * maximum active dwell time (ms)
- * default: 20 ms
- * to restore the default value: 0
- */
-#ifdef CONFIG_MACH_PX
-#define WLAN_CONFIG_MAXACT_CHDWELL_TIME 60
-#else
-#define WLAN_CONFIG_MAXACT_CHDWELL_TIME 20
-#endif
-/*
- * passive dwell time (ms)
- * default: 50 ms
- * to restore the default value: 0
- */
-#ifdef CONFIG_MACH_PX
-#define WLAN_CONFIG_PASSIVE_CHDWELL_TIME 120
-#else
-#define WLAN_CONFIG_PASSIVE_CHDWELL_TIME 50
-#endif
-#define WMI_SHORTSCANRATIO_DEFAULT 3
-#define DEFAULT_SCAN_CTRL_FLAGS (CONNECT_SCAN_CTRL_FLAGS | \
- SCAN_CONNECTED_CTRL_FLAGS | ACTIVE_SCAN_CTRL_FLAGS | \
- ROAM_SCAN_CTRL_FLAGS | ENABLE_AUTO_CTRL_FLAGS)
-
-/*
- * 0: to disable sending ps-poll in TIM interrupt
- * 1: to send one ps-poll (the default)
- */
-#ifdef CONFIG_MACH_PX
-#define WLAN_CONFIG_PSPOLL_NUM 0
-#else
-#define WLAN_CONFIG_PSPOLL_NUM 1
-#endif
-
-#define WLAN_CONFIG_MCAST_RATE 60
-
-/* includes also the null byte */
-#define ATH6KL_FIRMWARE_MAGIC "QCA-ATH6KL"
-
-enum ath6kl_fw_ie_type {
- ATH6KL_FW_IE_FW_VERSION = 0,
- ATH6KL_FW_IE_TIMESTAMP = 1,
- ATH6KL_FW_IE_OTP_IMAGE = 2,
- ATH6KL_FW_IE_FW_IMAGE = 3,
- ATH6KL_FW_IE_PATCH_IMAGE = 4,
- ATH6KL_FW_IE_RESERVED_RAM_SIZE = 5,
- ATH6KL_FW_IE_CAPABILITIES = 6,
- ATH6KL_FW_IE_PATCH_ADDR = 7,
- ATH6KL_FW_IE_BOARD_ADDR = 8,
- ATH6KL_FW_IE_VIF_MAX = 9,
-};
-
-enum ath6kl_fw_capability {
- ATH6KL_FW_CAPABILITY_HOST_P2P = 0,
- ATH6KL_FW_CAPABILITY_SCHED_SCAN = 1,
-
- /*
- * Firmware is capable of supporting P2P mgmt operations on a
- * station interface. After group formation, the station
- * interface will become a P2P client/GO interface as the case may be
- */
- ATH6KL_FW_CAPABILITY_STA_P2PDEV_DUPLEX,
-
- ATH6KL_FW_CAPABILITY_INACTIVITY_TIMEOUT,
-
- ATH6KL_FW_CAPABILITY_RSN_CAP_OVERRIDE,
-
- /* this needs to be last */
- ATH6KL_FW_CAPABILITY_MAX,
-};
-
-#define ATH6KL_CAPABILITY_LEN (ALIGN(ATH6KL_FW_CAPABILITY_MAX, 32) / 32)
-
-struct ath6kl_fw_ie {
- __le32 id;
- __le32 len;
- u8 data[0];
-};
-
-#define ATH6KL_FW_API2_FILE "fw-2.bin"
-#define ATH6KL_FW_API3_FILE "fw-3.bin"
-
-/* AR6003 1.0 definitions */
-#define AR6003_HW_1_0_VERSION 0x300002ba
-
-/* AR6003 2.0 definitions */
-#define AR6003_HW_2_0_VERSION 0x30000384
-#define AR6003_HW_2_0_PATCH_DOWNLOAD_ADDRESS 0x57e910
-#define AR6003_HW_2_0_FW_DIR "ath6k/AR6003/hw2.0"
-#define AR6003_HW_2_0_OTP_FILE "otp.bin.z77"
-#define AR6003_HW_2_0_FIRMWARE_FILE "athwlan.bin.z77"
-#define AR6003_HW_2_0_TCMD_FIRMWARE_FILE "athtcmd_ram.bin"
-#define AR6003_HW_2_0_PATCH_FILE "data.patch.bin"
-#define AR6003_HW_2_0_BOARD_DATA_FILE "ath6k/AR6003/hw2.0/bdata.bin"
-#define AR6003_HW_2_0_DEFAULT_BOARD_DATA_FILE \
- "ath6k/AR6003/hw2.0/bdata.SD31.bin"
-
-/* AR6003 3.0 definitions */
-#define AR6003_HW_2_1_1_VERSION 0x30000582
-#define AR6003_HW_2_1_1_FW_DIR "ath6k/AR6003/hw2.1.1"
-#define AR6003_HW_2_1_1_OTP_FILE "otp.bin"
-#define AR6003_HW_2_1_1_FIRMWARE_FILE "athwlan.bin"
-#define AR6003_HW_2_1_1_TCMD_FIRMWARE_FILE "athtcmd_ram.bin"
-#define AR6003_HW_2_1_1_UTF_FIRMWARE_FILE "utf.bin"
-#define AR6003_HW_2_1_1_TESTSCRIPT_FILE "nullTestFlow.bin"
-#define AR6003_HW_2_1_1_PATCH_FILE "data.patch.bin"
-#define AR6003_HW_2_1_1_BOARD_DATA_FILE "ath6k/AR6003/hw2.1.1/bdata.bin"
-#define AR6003_HW_2_1_1_DEFAULT_BOARD_DATA_FILE \
- "ath6k/AR6003/hw2.1.1/bdata.SD31.bin"
-
-#ifdef CONFIG_MACH_PX
-#define AR6003_HW_2_1_1_TCMD_BOARD_DATA_FILE \
- "ath6k/AR6003/hw2.1.1/bdata.tcmd.bin"
-#endif
-
-/* AR6004 1.0 definitions */
-#define AR6004_HW_1_0_VERSION 0x30000623
-#define AR6004_HW_1_0_FW_DIR "ath6k/AR6004/hw1.0"
-#define AR6004_HW_1_0_FIRMWARE_FILE "fw.ram.bin"
-#define AR6004_HW_1_0_BOARD_DATA_FILE "ath6k/AR6004/hw1.0/bdata.bin"
-#define AR6004_HW_1_0_DEFAULT_BOARD_DATA_FILE \
- "ath6k/AR6004/hw1.0/bdata.DB132.bin"
-
-/* AR6004 1.1 definitions */
-#define AR6004_HW_1_1_VERSION 0x30000001
-#define AR6004_HW_1_1_FW_DIR "ath6k/AR6004/hw1.1"
-#define AR6004_HW_1_1_FIRMWARE_FILE "fw.ram.bin"
-#define AR6004_HW_1_1_BOARD_DATA_FILE "ath6k/AR6004/hw1.1/bdata.bin"
-#define AR6004_HW_1_1_DEFAULT_BOARD_DATA_FILE \
- "ath6k/AR6004/hw1.1/bdata.DB132.bin"
-
-/* Per STA data, used in AP mode */
-#define STA_PS_AWAKE BIT(0)
-#define STA_PS_SLEEP BIT(1)
-#define STA_PS_POLLED BIT(2)
-#define STA_PS_APSD_TRIGGER BIT(3)
-#define STA_PS_APSD_EOSP BIT(4)
-
-/* HTC TX packet tagging definitions */
-#define ATH6KL_CONTROL_PKT_TAG HTC_TX_PACKET_TAG_USER_DEFINED
-#define ATH6KL_DATA_PKT_TAG (ATH6KL_CONTROL_PKT_TAG + 1)
-
-#define AR6003_CUST_DATA_SIZE 16
-
-#define AGGR_WIN_IDX(x, y) ((x) % (y))
-#define AGGR_INCR_IDX(x, y) AGGR_WIN_IDX(((x) + 1), (y))
-#define AGGR_DCRM_IDX(x, y) AGGR_WIN_IDX(((x) - 1), (y))
-#define ATH6KL_MAX_SEQ_NO 0xFFF
-#define ATH6KL_NEXT_SEQ_NO(x) (((x) + 1) & ATH6KL_MAX_SEQ_NO)
-
-#define NUM_OF_TIDS 8
-#define AGGR_SZ_DEFAULT 8
-
-#define AGGR_WIN_SZ_MIN 2
-#define AGGR_WIN_SZ_MAX 8
-
-#define TID_WINDOW_SZ(_x) ((_x) << 1)
-
-#define AGGR_NUM_OF_FREE_NETBUFS 16
-
-#ifdef CONFIG_MACH_PX
-#define AGGR_RX_TIMEOUT 100 /* in ms */
-#else
-#define AGGR_RX_TIMEOUT 400 /* in ms */
-#endif
-
-#define WMI_TIMEOUT (2 * HZ)
-
-#define MBOX_YIELD_LIMIT 99
-
-#define ATH6KL_DEFAULT_LISTEN_INTVAL 100 /* in TUs */
-#define ATH6KL_DEFAULT_BMISS_TIME 1500
-#define ATH6KL_MAX_WOW_LISTEN_INTL 300 /* in TUs */
-#define ATH6KL_MAX_BMISS_TIME 5000
-
-/* configuration lags */
-/*
- * ATH6KL_CONF_IGNORE_ERP_BARKER: Ignore the barker premable in
- * ERP IE of beacon to determine the short premable support when
- * sending (Re)Assoc req.
- * ATH6KL_CONF_IGNORE_PS_FAIL_EVT_IN_SCAN: Don't send the power
- * module state transition failure events which happen during
- * scan, to the host.
- */
-#define ATH6KL_CONF_IGNORE_ERP_BARKER BIT(0)
-#define ATH6KL_CONF_IGNORE_PS_FAIL_EVT_IN_SCAN BIT(1)
-#define ATH6KL_CONF_ENABLE_11N BIT(2)
-#define ATH6KL_CONF_ENABLE_TX_BURST BIT(3)
-#define ATH6KL_CONF_UART_DEBUG BIT(4)
-
-#define P2P_WILDCARD_SSID_LEN 7 /* DIRECT- */
-
-enum wlan_low_pwr_state {
- WLAN_POWER_STATE_ON,
- WLAN_POWER_STATE_CUT_PWR,
- WLAN_POWER_STATE_DEEP_SLEEP,
- WLAN_POWER_STATE_WOW
-};
-
-enum sme_state {
- SME_DISCONNECTED,
- SME_CONNECTING,
- SME_CONNECTED
-};
-
-struct skb_hold_q {
- struct sk_buff *skb;
- bool is_amsdu;
- u16 seq_no;
-};
-
-struct rxtid {
- bool aggr;
- bool progress;
- bool timer_mon;
- u16 win_sz;
- u16 seq_next;
- u32 hold_q_sz;
- struct skb_hold_q *hold_q;
- struct sk_buff_head q;
- spinlock_t lock;
-};
-
-struct rxtid_stats {
- u32 num_into_aggr;
- u32 num_dups;
- u32 num_oow;
- u32 num_mpdu;
- u32 num_amsdu;
- u32 num_delivered;
- u32 num_timeouts;
- u32 num_hole;
- u32 num_bar;
-};
-
-struct aggr_info_conn {
- u8 aggr_sz;
- u8 timer_scheduled;
- struct timer_list timer;
- struct net_device *dev;
- struct rxtid rx_tid[NUM_OF_TIDS];
- struct rxtid_stats stat[NUM_OF_TIDS];
- struct aggr_info *aggr_info;
-};
-
-struct aggr_info {
- struct aggr_info_conn *aggr_conn;
- struct sk_buff_head rx_amsdu_freeq;
-};
-
-struct ath6kl_wep_key {
- u8 key_index;
- u8 key_len;
- u8 key[64];
-};
-
-#define ATH6KL_KEY_SEQ_LEN 8
-
-struct ath6kl_key {
- u8 key[WLAN_MAX_KEY_LEN];
- u8 key_len;
- u8 seq[ATH6KL_KEY_SEQ_LEN];
- u8 seq_len;
- u32 cipher;
-};
-
-struct ath6kl_node_mapping {
- u8 mac_addr[ETH_ALEN];
- u8 ep_id;
- u8 tx_pend;
-};
-
-struct ath6kl_cookie {
- struct sk_buff *skb;
- u32 map_no;
- struct htc_packet htc_pkt;
- struct ath6kl_cookie *arc_list_next;
-};
-
-struct ath6kl_mgmt_buff {
- struct list_head list;
- u32 freq;
- u32 wait;
- u32 id;
- bool no_cck;
- size_t len;
- u8 buf[0];
-};
-
-struct ath6kl_sta {
- u16 sta_flags;
- u8 mac[ETH_ALEN];
- u8 aid;
- u8 keymgmt;
- u8 ucipher;
- u8 auth;
- u8 wpa_ie[ATH6KL_MAX_IE];
- struct sk_buff_head psq;
- spinlock_t psq_lock;
- struct list_head mgmt_psq;
- size_t mgmt_psq_len;
- u8 apsd_info;
- struct sk_buff_head apsdq;
- struct aggr_info_conn *aggr_conn;
-};
-
-struct ath6kl_version {
- u32 target_ver;
- u32 wlan_ver;
- u32 abi_ver;
-};
-
-struct ath6kl_bmi {
- u32 cmd_credits;
- bool done_sent;
- u8 *cmd_buf;
- u32 max_data_size;
- u32 max_cmd_size;
-};
-
-struct target_stats {
- u64 tx_pkt;
- u64 tx_byte;
- u64 tx_ucast_pkt;
- u64 tx_ucast_byte;
- u64 tx_mcast_pkt;
- u64 tx_mcast_byte;
- u64 tx_bcast_pkt;
- u64 tx_bcast_byte;
- u64 tx_rts_success_cnt;
- u64 tx_pkt_per_ac[4];
-
- u64 tx_err;
- u64 tx_fail_cnt;
- u64 tx_retry_cnt;
- u64 tx_mult_retry_cnt;
- u64 tx_rts_fail_cnt;
-
- u64 rx_pkt;
- u64 rx_byte;
- u64 rx_ucast_pkt;
- u64 rx_ucast_byte;
- u64 rx_mcast_pkt;
- u64 rx_mcast_byte;
- u64 rx_bcast_pkt;
- u64 rx_bcast_byte;
- u64 rx_frgment_pkt;
-
- u64 rx_err;
- u64 rx_crc_err;
- u64 rx_key_cache_miss;
- u64 rx_decrypt_err;
- u64 rx_dupl_frame;
-
- u64 tkip_local_mic_fail;
- u64 tkip_cnter_measures_invoked;
- u64 tkip_replays;
- u64 tkip_fmt_err;
- u64 ccmp_fmt_err;
- u64 ccmp_replays;
-
- u64 pwr_save_fail_cnt;
-
- u64 cs_bmiss_cnt;
- u64 cs_low_rssi_cnt;
- u64 cs_connect_cnt;
- u64 cs_discon_cnt;
-
- s32 tx_ucast_rate;
- s32 rx_ucast_rate;
-
- u32 lq_val;
-
- u32 wow_pkt_dropped;
- u16 wow_evt_discarded;
-
- s16 noise_floor_calib;
- s16 cs_rssi;
- s16 cs_ave_beacon_rssi;
- u8 cs_ave_beacon_snr;
- u8 cs_last_roam_msec;
- u8 cs_snr;
-
- u8 wow_host_pkt_wakeups;
- u8 wow_host_evt_wakeups;
-
- u32 arp_received;
- u32 arp_matched;
- u32 arp_replied;
-};
-
-struct ath6kl_mbox_info {
- u32 htc_addr;
- u32 htc_ext_addr;
- u32 htc_ext_sz;
-
- u32 block_size;
-
- u32 gmbox_addr;
-
- u32 gmbox_sz;
-};
-
-/*
- * 802.11i defines an extended IV for use with non-WEP ciphers.
- * When the EXTIV bit is set in the key id byte an additional
- * 4 bytes immediately follow the IV for TKIP. For CCMP the
- * EXTIV bit is likewise set but the 8 bytes represent the
- * CCMP header rather than IV+extended-IV.
- */
-
-#define ATH6KL_KEYBUF_SIZE 16
-#define ATH6KL_MICBUF_SIZE (8+8) /* space for both tx and rx */
-
-#define ATH6KL_KEY_XMIT 0x01
-#define ATH6KL_KEY_RECV 0x02
-#define ATH6KL_KEY_DEFAULT 0x80 /* default xmit key */
-
-/* Initial group key for AP mode */
-struct ath6kl_req_key {
- bool valid;
- u8 key_index;
- int key_type;
- u8 key[WLAN_MAX_KEY_LEN];
- u8 key_len;
-};
-
-/*
- * Bluetooth WiFi co-ex information.
- * This structure keeps track of the Bluetooth related status.
- * This involves the Bluetooth ACL link role, Bluetooth remote lmp version.
- */
-struct ath6kl_btcoex {
- u32 acl_role; /* Master/slave role of Bluetooth ACL link */
- u32 remote_lmp_ver; /* LMP version of the remote device. */
- u32 bt_vendor; /* Keeps track of the Bluetooth chip vendor */
-};
-enum ath6kl_hif_type {
- ATH6KL_HIF_TYPE_SDIO,
- ATH6KL_HIF_TYPE_USB,
-};
-
-/* Max number of filters that hw supports */
-#define ATH6K_MAX_MC_FILTERS_PER_LIST 7
-struct ath6kl_mc_filter {
- struct list_head list;
- char hw_addr[ATH6KL_MCAST_FILTER_MAC_ADDR_SIZE];
-};
-
-/*
- * Driver's maximum limit, note that some firmwares support only one vif
- * and the runtime (current) limit must be checked from ar->vif_max.
- */
-#define ATH6KL_VIF_MAX 3
-
-/* vif flags info */
-enum ath6kl_vif_state {
- CONNECTED,
- CONNECT_PEND,
- WMM_ENABLED,
- NETQ_STOPPED,
- DTIM_EXPIRED,
- NETDEV_REGISTERED,
- CLEAR_BSSFILTER_ON_BEACON,
- DTIM_PERIOD_AVAIL,
- WLAN_ENABLED,
- STATS_UPDATE_PEND,
- HOST_SLEEP_MODE_CMD_PROCESSED,
- SLEEP_POLICY_ENABLED,
-};
-
-struct ath6kl_vif {
- struct list_head list;
- struct wireless_dev wdev;
- struct net_device *ndev;
- struct ath6kl *ar;
- /* Lock to protect vif specific net_stats and flags */
- spinlock_t if_lock;
- u8 fw_vif_idx;
- unsigned long flags;
- int ssid_len;
- u8 ssid[IEEE80211_MAX_SSID_LEN];
- u8 dot11_auth_mode;
- u8 auth_mode;
- u8 prwise_crypto;
- u8 prwise_crypto_len;
- u8 grp_crypto;
- u8 grp_crypto_len;
- u8 def_txkey_index;
- u8 next_mode;
- u8 nw_type;
- u8 bssid[ETH_ALEN];
- u8 req_bssid[ETH_ALEN];
- u16 ch_hint;
- u16 bss_ch;
- struct ath6kl_wep_key wep_key_list[WMI_MAX_KEY_INDEX + 1];
- struct ath6kl_key keys[WMI_MAX_KEY_INDEX + 1];
- struct aggr_info *aggr_cntxt;
-
- struct timer_list disconnect_timer;
- struct timer_list sched_scan_timer;
-
- struct cfg80211_scan_request *scan_req;
- enum sme_state sme_state;
- int reconnect_flag;
- u32 last_roc_id;
- u32 last_cancel_roc_id;
- u32 send_action_id;
- bool probe_req_report;
- u16 next_chan;
- u16 assoc_bss_beacon_int;
- u16 bg_scan_period;
- u8 scan_ctrl_flag;
- u16 listen_intvl_t;
- u16 bmiss_time_t;
- u8 assoc_bss_dtim_period;
- struct net_device_stats net_stats;
- struct target_stats target_stats;
-
- struct list_head mc_filter;
-
- struct wmi_scan_params_cmd scparams;
- unsigned int pspoll_num;
- u16 mcastrate;
- bool force_reload;
- bool sdio_remove;
-};
-
-#define WOW_LIST_ID 0
-#define WOW_HOST_REQ_DELAY 500 /* ms */
-
-#define ATH6KL_SCHED_SCAN_RESULT_DELAY 5000 /* ms */
-
-/* Flag info */
-enum ath6kl_dev_state {
- WMI_ENABLED,
- WMI_READY,
- WMI_CTRL_EP_FULL,
- TESTMODE,
- DESTROY_IN_PROGRESS,
- SKIP_SCAN,
- ROAM_TBL_PEND,
- FIRST_BOOT,
- WOW_RESUME_PRINT,
-};
-
-enum ath6kl_state {
- ATH6KL_STATE_OFF,
- ATH6KL_STATE_ON,
- ATH6KL_STATE_SUSPENDING,
- ATH6KL_STATE_RESUMING,
- ATH6KL_STATE_DEEPSLEEP,
- ATH6KL_STATE_CUTPOWER,
- ATH6KL_STATE_WOW,
- ATH6KL_STATE_SCHED_SCAN,
-};
-
-struct ath6kl {
- struct device *dev;
- struct wiphy *wiphy;
-
- enum ath6kl_state state;
-
- struct ath6kl_bmi bmi;
- const struct ath6kl_hif_ops *hif_ops;
- struct wmi *wmi;
- int tx_pending[ENDPOINT_MAX];
- int total_tx_data_pend;
- struct htc_target *htc_target;
- enum ath6kl_hif_type hif_type;
- void *hif_priv;
- struct list_head vif_list;
- /* Lock to avoid race in vif_list entries among add/del/traverse */
- spinlock_t list_lock;
- u8 num_vif;
- unsigned int vif_max;
- u8 max_norm_iface;
- u8 avail_idx_map;
- spinlock_t lock;
- struct semaphore sem;
- u8 lrssi_roam_threshold;
- struct ath6kl_version version;
- u32 target_type;
- u8 tx_pwr;
- struct ath6kl_node_mapping node_map[MAX_NODE_NUM];
- u8 ibss_ps_enable;
- bool ibss_if_active;
- u8 node_num;
- u8 next_ep_id;
- struct ath6kl_cookie *cookie_list;
- u32 cookie_count;
- enum htc_endpoint_id ac2ep_map[WMM_NUM_AC];
- bool ac_stream_active[WMM_NUM_AC];
- u8 ac_stream_pri_map[WMM_NUM_AC];
- u8 hiac_stream_active_pri;
- u8 ep2ac_map[ENDPOINT_MAX];
- enum htc_endpoint_id ctrl_ep;
- struct ath6kl_htc_credit_info credit_state_info;
- u32 connect_ctrl_flags;
- u32 user_key_ctrl;
- u8 usr_bss_filter;
- struct ath6kl_sta sta_list[AP_MAX_NUM_STA];
- u8 sta_list_index;
- struct ath6kl_req_key ap_mode_bkey;
- struct sk_buff_head mcastpsq;
- spinlock_t mcastpsq_lock;
- u8 intra_bss;
- struct wmi_ap_mode_stat ap_stats;
- u8 ap_country_code[3];
- struct list_head amsdu_rx_buffer_queue;
- u8 rx_meta_ver;
- enum wlan_low_pwr_state wlan_pwr_state;
- u8 mac_addr[ETH_ALEN];
-#define AR_MCAST_FILTER_MAC_ADDR_SIZE 4
- struct {
- void *rx_report;
- size_t rx_report_len;
- } tm;
-
- struct ath6kl_hw {
- u32 id;
- const char *name;
- u32 dataset_patch_addr;
- u32 app_load_addr;
- u32 app_start_override_addr;
- u32 board_ext_data_addr;
- u32 reserved_ram_size;
- u32 board_addr;
- u32 refclk_hz;
- u32 uarttx_pin;
- u32 testscript_addr;
-
- struct ath6kl_hw_fw {
- const char *dir;
- const char *otp;
- const char *fw;
- const char *tcmd;
- const char *patch;
- const char *utf;
- const char *testscript;
- } fw;
-
- const char *fw_board;
- const char *fw_default_board;
- } hw;
-
- u16 conf_flags;
- u16 suspend_mode;
- u16 wow_suspend_mode;
- wait_queue_head_t event_wq;
- struct ath6kl_mbox_info mbox_info;
-
- struct ath6kl_cookie cookie_mem[MAX_COOKIE_NUM];
- unsigned long flag;
-
- u8 *fw_board;
- size_t fw_board_len;
-
- u8 *fw_otp;
- size_t fw_otp_len;
-
- u8 *fw;
- size_t fw_len;
-
- u8 *fw_patch;
- size_t fw_patch_len;
-
- u8 *fw_testscript;
- size_t fw_testscript_len;
-
- unsigned int fw_api;
- unsigned long fw_capabilities[ATH6KL_CAPABILITY_LEN];
-
- struct workqueue_struct *ath6kl_wq;
-
- struct dentry *debugfs_phy;
-
- bool p2p;
-
- struct ath6kl_btcoex btcoex_info;
-
- unsigned int psminfo;
-
-#ifdef CONFIG_ATH6KL_DEBUG
- struct {
- struct sk_buff_head fwlog_queue;
- struct completion fwlog_completion;
- bool fwlog_open;
-
- u32 fwlog_mask;
-
- unsigned int dbgfs_diag_reg;
- u32 diag_reg_addr_wr;
- u32 diag_reg_val_wr;
-
- struct {
- unsigned int invalid_rate;
- } war_stats;
-
- u8 *roam_tbl;
- unsigned int roam_tbl_len;
-
- u8 keepalive;
- u8 disc_timeout;
- } debug;
-#endif /* CONFIG_ATH6KL_DEBUG */
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
- struct early_suspend early_suspend;
- bool screen_off;
-#endif /* CONFIG_HAS_EARLYSUSPEND */
-
-#ifdef CONFIG_HAS_WAKELOCK
- struct wake_lock wake_lock;
- struct wake_lock p2p_wake_lock;
-#endif /* CONFIG_HAS_WAKELOCK */
-
-};
-
-#ifdef CONFIG_MACH_PX
-/*
- For this 3.2.0.4402 image:
- 00561734 g O .bss 00000004 epc1
- 00561738 g O .bss 00000004 epc2
- 0056173c g O .bss 00000004 epc3
- 00561740 g O .bss 00000004 epc4
-
- For this 3.2.0.64 image:
- 00561fa4 g O .bss 00000004 epc1
-*/
-
-#define EPC1_ADDR 0x00
-
-void ath6kl_print_ar6k_registers(struct ath6kl *ar);
-#endif
-
-static inline struct ath6kl *ath6kl_priv(struct net_device *dev)
-{
- return ((struct ath6kl_vif *) netdev_priv(dev))->ar;
-}
-
-static inline u32 ath6kl_get_hi_item_addr(struct ath6kl *ar,
- u32 item_offset)
-{
- u32 addr = 0;
-
- if (ar->target_type == TARGET_TYPE_AR6003)
- addr = ATH6KL_AR6003_HI_START_ADDR + item_offset;
- else if (ar->target_type == TARGET_TYPE_AR6004)
- addr = ATH6KL_AR6004_HI_START_ADDR + item_offset;
-
- return addr;
-}
-
-int ath6kl_configure_target(struct ath6kl *ar);
-void ath6kl_detect_error(unsigned long ptr);
-void disconnect_timer_handler(unsigned long ptr);
-void init_netdev(struct net_device *dev);
-void ath6kl_cookie_init(struct ath6kl *ar);
-void ath6kl_cookie_cleanup(struct ath6kl *ar);
-void ath6kl_rx(struct htc_target *target, struct htc_packet *packet);
-void ath6kl_tx_complete(void *context, struct list_head *packet_queue);
-enum htc_send_full_action ath6kl_tx_queue_full(struct htc_target *target,
- struct htc_packet *packet);
-void ath6kl_stop_txrx(struct ath6kl *ar);
-void ath6kl_cleanup_amsdu_rxbufs(struct ath6kl *ar);
-int ath6kl_diag_write32(struct ath6kl *ar, u32 address, __le32 value);
-int ath6kl_diag_write(struct ath6kl *ar, u32 address, void *data, u32 length);
-int ath6kl_diag_read32(struct ath6kl *ar, u32 address, u32 *value);
-int ath6kl_diag_read(struct ath6kl *ar, u32 address, void *data, u32 length);
-int ath6kl_read_fwlogs(struct ath6kl *ar);
-void ath6kl_init_profile_info(struct ath6kl_vif *vif);
-void ath6kl_tx_data_cleanup(struct ath6kl *ar);
-
-struct ath6kl_cookie *ath6kl_alloc_cookie(struct ath6kl *ar);
-void ath6kl_free_cookie(struct ath6kl *ar, struct ath6kl_cookie *cookie);
-int ath6kl_data_tx(struct sk_buff *skb, struct net_device *dev);
-
-struct aggr_info *aggr_init(struct ath6kl_vif *vif);
-void aggr_conn_init(struct ath6kl_vif *vif, struct aggr_info *aggr_info,
- struct aggr_info_conn *aggr_conn);
-void ath6kl_rx_refill(struct htc_target *target,
- enum htc_endpoint_id endpoint);
-void ath6kl_refill_amsdu_rxbufs(struct ath6kl *ar, int count);
-struct htc_packet *ath6kl_alloc_amsdu_rxbuf(struct htc_target *target,
- enum htc_endpoint_id endpoint,
- int len);
-void aggr_module_destroy(struct aggr_info *aggr_info);
-void aggr_reset_state(struct aggr_info_conn *aggr_conn);
-
-struct ath6kl_sta *ath6kl_find_sta(struct ath6kl_vif *vif, u8 * node_addr);
-struct ath6kl_sta *ath6kl_find_sta_by_aid(struct ath6kl *ar, u8 aid);
-
-void ath6kl_ready_event(void *devt, u8 * datap, u32 sw_ver, u32 abi_ver);
-int ath6kl_control_tx(void *devt, struct sk_buff *skb,
- enum htc_endpoint_id eid);
-void ath6kl_connect_event(struct ath6kl_vif *vif, u16 channel,
- u8 *bssid, u16 listen_int,
- u16 beacon_int, enum network_type net_type,
- u8 beacon_ie_len, u8 assoc_req_len,
- u8 assoc_resp_len, u8 *assoc_info);
-void ath6kl_connect_ap_mode_bss(struct ath6kl_vif *vif, u16 channel);
-void ath6kl_connect_ap_mode_sta(struct ath6kl_vif *vif, u16 aid, u8 *mac_addr,
- u8 keymgmt, u8 ucipher, u8 auth,
- u8 assoc_req_len, u8 *assoc_info, u8 apsd_info);
-void ath6kl_disconnect_event(struct ath6kl_vif *vif, u8 reason,
- u8 *bssid, u8 assoc_resp_len,
- u8 *assoc_info, u16 prot_reason_status);
-void ath6kl_tkip_micerr_event(struct ath6kl_vif *vif, u8 keyid, bool ismcast);
-void ath6kl_txpwr_rx_evt(void *devt, u8 tx_pwr);
-void ath6kl_scan_complete_evt(struct ath6kl_vif *vif, int status);
-void ath6kl_tgt_stats_event(struct ath6kl_vif *vif, u8 *ptr, u32 len);
-void ath6kl_indicate_tx_activity(void *devt, u8 traffic_class, bool active);
-enum htc_endpoint_id ath6kl_ac2_endpoint_id(void *devt, u8 ac);
-
-void ath6kl_pspoll_event(struct ath6kl_vif *vif, u8 aid);
-
-void ath6kl_dtimexpiry_event(struct ath6kl_vif *vif);
-void ath6kl_disconnect(struct ath6kl_vif *vif);
-void aggr_recv_delba_req_evt(struct ath6kl_vif *vif, u8 tid);
-void aggr_recv_addba_req_evt(struct ath6kl_vif *vif, u8 tid, u16 seq_no,
- u8 win_sz);
-void ath6kl_wakeup_event(void *dev);
-
-void ath6kl_reset_device(struct ath6kl *ar, u32 target_type,
- bool wait_fot_compltn, bool cold_reset);
-void ath6kl_init_control_info(struct ath6kl_vif *vif);
-void ath6kl_deinit_if_data(struct ath6kl_vif *vif);
-void ath6kl_core_free(struct ath6kl *ar);
-struct ath6kl_vif *ath6kl_vif_first(struct ath6kl *ar);
-void ath6kl_cleanup_vif(struct ath6kl_vif *vif, bool wmi_ready);
-int ath6kl_init_hw_start(struct ath6kl *ar);
-int ath6kl_init_hw_stop(struct ath6kl *ar);
-void ath6kl_check_wow_status(struct ath6kl *ar, struct sk_buff *skb,
- bool is_event_pkt);
-#ifdef CONFIG_MACH_PX
-void ath6kl_sdio_init_c210(void);
-void ath6kl_sdio_exit_c210(void);
-#else
-void ath6kl_sdio_init_msm(void);
-void ath6kl_sdio_exit_msm(void);
-#endif
-void ath6kl_mangle_mac_address(struct ath6kl *ar);
-
-#endif /* CORE_H */
diff --git a/drivers/net/wireless/ath/ath6kl/dbglog.c b/drivers/net/wireless/ath/ath6kl/dbglog.c
deleted file mode 100644
index 3498aac..0000000
--- a/drivers/net/wireless/ath/ath6kl/dbglog.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (c) 2011 Qualcomm Atheros
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <linux/module.h>
-#include <linux/circ_buf.h>
-#include "core.h"
-#include "debug.h"
-#include "dbglog.h"
-
-#define DEVICE_NAME "ath6kl-dbglog"
-#define DBGLOG_BUFSIZ 8192
-static int major_num;
-static int num_readers;
-static struct circ_buf dbglog_buf;
-static spinlock_t dbglog_lock;
-static wait_queue_head_t dbglog_wait;
-static struct class *dbglog_class;
-static struct device *dbglog_dev;
-
-
-void ath6kl_dbglog_add(const u8 *buf, size_t len)
-{
- size_t i;
- int added = 0;
- int cspace;
-
- if (major_num < 0 || dbglog_buf.buf == NULL)
- return;
-
- spin_lock_bh(&dbglog_lock);
- i = 0;
- while (i < len) {
- if (CIRC_SPACE(dbglog_buf.head, dbglog_buf.tail,
- DBGLOG_BUFSIZ) == 0) {
- spin_unlock_bh(&dbglog_lock);
- if (num_readers)
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "dbglog buffer overflow");
- return;
- }
- cspace = CIRC_SPACE_TO_END(dbglog_buf.head, dbglog_buf.tail,
- DBGLOG_BUFSIZ);
- if ((size_t) cspace > len - i)
- cspace = len - i;
- memcpy(&dbglog_buf.buf[dbglog_buf.head], &buf[i], cspace);
- dbglog_buf.head = (dbglog_buf.head + cspace) &
- (DBGLOG_BUFSIZ - 1);
- i += cspace;
- added++;
- }
- spin_unlock_bh(&dbglog_lock);
- if (added)
- wake_up(&dbglog_wait);
-}
-
-static int ath6kl_dbglog_open(struct inode *inode, struct file *filp)
-{
- if (major_num < 0 || dbglog_buf.buf == NULL)
- return -EOPNOTSUPP;
-
- if (num_readers)
- return -EBUSY;
-
- num_readers++;
- try_module_get(THIS_MODULE);
-
- return 0;
-}
-
-static int ath6kl_dbglog_release(struct inode *inode, struct file *filp)
-{
- num_readers--;
- module_put(THIS_MODULE);
- return 0;
-}
-
-static bool ath6kl_dbglog_empty(void)
-{
- return CIRC_CNT(dbglog_buf.head, dbglog_buf.tail, DBGLOG_BUFSIZ) == 0;
-}
-
-static ssize_t ath6kl_dbglog_read(struct file *filp, char *buf, size_t len,
- loff_t *offset)
-{
- char *pos = buf;
-
- wait_event_interruptible(dbglog_wait, !ath6kl_dbglog_empty());
- spin_lock_bh(&dbglog_lock);
- while (len &&
- CIRC_CNT(dbglog_buf.head, dbglog_buf.tail, DBGLOG_BUFSIZ) > 0) {
- int ccnt = CIRC_CNT_TO_END(dbglog_buf.head, dbglog_buf.tail,
- DBGLOG_BUFSIZ);
- spin_unlock_bh(&dbglog_lock);
- if ((size_t) ccnt > len)
- ccnt = len;
- if (copy_to_user(pos, &dbglog_buf.buf[dbglog_buf.tail], ccnt))
- return -EFAULT;
- pos += ccnt;
- spin_lock_bh(&dbglog_lock);
- dbglog_buf.tail = (dbglog_buf.tail + ccnt) &
- (DBGLOG_BUFSIZ - 1);
- len -= ccnt;
- }
- spin_unlock_bh(&dbglog_lock);
-
- return pos - buf;
-}
-
-static ssize_t ath6kl_dbglog_write(struct file *filp, const char *buf,
- size_t len, loff_t *off)
-{
- return -EOPNOTSUPP;
-}
-
-static struct file_operations fops = {
- .open = ath6kl_dbglog_open,
- .release = ath6kl_dbglog_release,
- .read = ath6kl_dbglog_read,
- .write = ath6kl_dbglog_write,
-};
-
-int ath6kl_dbglog_init(void)
-{
- major_num = -1;
- dbglog_buf.buf = kmalloc(DBGLOG_BUFSIZ, GFP_KERNEL);
- if (dbglog_buf.buf == NULL)
- return -ENOMEM;
-
- dbglog_buf.head = dbglog_buf.tail = 0;
-
- major_num = register_chrdev(0, DEVICE_NAME, &fops);
- if (major_num < 0) {
- ath6kl_err("Failed to register chrdev for dbglog: %d\n",
- major_num);
- return major_num;
- }
-
- dbglog_class = class_create(THIS_MODULE, DEVICE_NAME);
- dbglog_dev = device_create(dbglog_class, NULL, MKDEV(major_num, 0),
- NULL, DEVICE_NAME);
-
- spin_lock_init(&dbglog_lock);
- init_waitqueue_head(&dbglog_wait);
-
- return 0;
-}
-
-void ath6kl_dbglog_deinit(void)
-{
- device_destroy(dbglog_class, MKDEV(major_num, 0));
- class_unregister(dbglog_class);
- class_destroy(dbglog_class);
- unregister_chrdev(major_num, DEVICE_NAME);
- kfree(dbglog_buf.buf);
-}
diff --git a/drivers/net/wireless/ath/ath6kl/dbglog.h b/drivers/net/wireless/ath/ath6kl/dbglog.h
deleted file mode 100644
index 9c244be..0000000
--- a/drivers/net/wireless/ath/ath6kl/dbglog.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2011 Qualcomm Atheros
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef DBGLOG_H
-#define DBGLOG_H
-
-void ath6kl_dbglog_add(const u8 *buf, size_t len);
-int ath6kl_dbglog_init(void);
-void ath6kl_dbglog_deinit(void);
-
-#endif /* DBGLOG_H */
diff --git a/drivers/net/wireless/ath/ath6kl/debug.c b/drivers/net/wireless/ath/ath6kl/debug.c
deleted file mode 100755
index 28b3e77..0000000
--- a/drivers/net/wireless/ath/ath6kl/debug.c
+++ /dev/null
@@ -1,2022 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "core.h"
-
-#include <linux/skbuff.h>
-#include <linux/fs.h>
-#include <linux/vmalloc.h>
-#include <linux/export.h>
-
-#include "debug.h"
-#include "debugfs_pri.h"
-#include "target.h"
-
-struct ath6kl_fwlog_slot {
- __le32 timestamp;
- __le32 length;
-
- /* max ATH6KL_FWLOG_PAYLOAD_SIZE bytes */
- u8 payload[0];
-};
-
-#define ATH6KL_FWLOG_MAX_ENTRIES 20
-
-#define ATH6KL_FWLOG_VALID_MASK 0x1ffff
-
-int ath6kl_printk(const char *level, const char *fmt, ...)
-{
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
- struct va_format vaf;
-#endif
- va_list args;
- int rtn;
-
- va_start(args, fmt);
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
- vaf.fmt = fmt;
- vaf.va = &args;
-
- rtn = printk("%sath6kl: %pV", level, &vaf);
-#else
- printk("%sath6kl: ", level);
- rtn = vprintk(fmt, args);
-#endif
-
- va_end(args);
-
- return rtn;
-}
-
-char *sec_conv_mac(const u8 *mac)
-{
- static char ret_mac[16];
- char *p = ret_mac;
-
- p = pack_hex_byte(p, mac[0]);
- *p++ = '_';
- p = pack_hex_byte(p, mac[4]);
- *p++ = ':';
- p = pack_hex_byte(p, mac[5]);
- *p++ = '\0';
-
- return ret_mac;
-}
-
-#ifdef CONFIG_ATH6KL_DEBUG
-
-#define REG_OUTPUT_LEN_PER_LINE 25
-#define REGTYPE_STR_LEN 100
-
-struct ath6kl_diag_reg_info {
- u32 reg_start;
- u32 reg_end;
- const char *reg_info;
-};
-
-static const struct ath6kl_diag_reg_info diag_reg[] = {
- { 0x20000, 0x200fc, "General DMA and Rx registers" },
- { 0x28000, 0x28900, "MAC PCU register & keycache" },
- { 0x20800, 0x20a40, "QCU" },
- { 0x21000, 0x212f0, "DCU" },
- { 0x4000, 0x42e4, "RTC" },
- { 0x540000, 0x540000 + (256 * 1024), "RAM" },
- { 0x29800, 0x2B210, "Base Band" },
- { 0x1C000, 0x1C748, "Analog" },
-};
-
-void ath6kl_dump_registers(struct ath6kl_device *dev,
- struct ath6kl_irq_proc_registers *irq_proc_reg,
- struct ath6kl_irq_enable_reg *irq_enable_reg)
-{
-
- ath6kl_dbg(ATH6KL_DBG_ANY, ("<------- Register Table -------->\n"));
-
- if (irq_proc_reg != NULL) {
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "Host Int status: 0x%x\n",
- irq_proc_reg->host_int_status);
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "CPU Int status: 0x%x\n",
- irq_proc_reg->cpu_int_status);
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "Error Int status: 0x%x\n",
- irq_proc_reg->error_int_status);
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "Counter Int status: 0x%x\n",
- irq_proc_reg->counter_int_status);
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "Mbox Frame: 0x%x\n",
- irq_proc_reg->mbox_frame);
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "Rx Lookahead Valid: 0x%x\n",
- irq_proc_reg->rx_lkahd_valid);
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "Rx Lookahead 0: 0x%x\n",
- irq_proc_reg->rx_lkahd[0]);
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "Rx Lookahead 1: 0x%x\n",
- irq_proc_reg->rx_lkahd[1]);
-
- if (dev->ar->mbox_info.gmbox_addr != 0) {
- /*
- * If the target supports GMBOX hardware, dump some
- * additional state.
- */
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "GMBOX Host Int status 2: 0x%x\n",
- irq_proc_reg->host_int_status2);
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "GMBOX RX Avail: 0x%x\n",
- irq_proc_reg->gmbox_rx_avail);
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "GMBOX lookahead alias 0: 0x%x\n",
- irq_proc_reg->rx_gmbox_lkahd_alias[0]);
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "GMBOX lookahead alias 1: 0x%x\n",
- irq_proc_reg->rx_gmbox_lkahd_alias[1]);
- }
-
- }
-
- if (irq_enable_reg != NULL) {
- ath6kl_dbg(ATH6KL_DBG_ANY,
- "Int status Enable: 0x%x\n",
- irq_enable_reg->int_status_en);
- ath6kl_dbg(ATH6KL_DBG_ANY, "Counter Int status Enable: 0x%x\n",
- irq_enable_reg->cntr_int_status_en);
- }
- ath6kl_dbg(ATH6KL_DBG_ANY, "<------------------------------->\n");
-}
-
-static void dump_cred_dist(struct htc_endpoint_credit_dist *ep_dist)
-{
- ath6kl_dbg(ATH6KL_DBG_CREDIT,
- "--- endpoint: %d svc_id: 0x%X ---\n",
- ep_dist->endpoint, ep_dist->svc_id);
- ath6kl_dbg(ATH6KL_DBG_CREDIT, " dist_flags : 0x%X\n",
- ep_dist->dist_flags);
- ath6kl_dbg(ATH6KL_DBG_CREDIT, " cred_norm : %d\n",
- ep_dist->cred_norm);
- ath6kl_dbg(ATH6KL_DBG_CREDIT, " cred_min : %d\n",
- ep_dist->cred_min);
- ath6kl_dbg(ATH6KL_DBG_CREDIT, " credits : %d\n",
- ep_dist->credits);
- ath6kl_dbg(ATH6KL_DBG_CREDIT, " cred_assngd : %d\n",
- ep_dist->cred_assngd);
- ath6kl_dbg(ATH6KL_DBG_CREDIT, " seek_cred : %d\n",
- ep_dist->seek_cred);
- ath6kl_dbg(ATH6KL_DBG_CREDIT, " cred_sz : %d\n",
- ep_dist->cred_sz);
- ath6kl_dbg(ATH6KL_DBG_CREDIT, " cred_per_msg : %d\n",
- ep_dist->cred_per_msg);
- ath6kl_dbg(ATH6KL_DBG_CREDIT, " cred_to_dist : %d\n",
- ep_dist->cred_to_dist);
- ath6kl_dbg(ATH6KL_DBG_CREDIT, " txq_depth : %d\n",
- get_queue_depth(&ep_dist->htc_ep->txq));
- ath6kl_dbg(ATH6KL_DBG_CREDIT,
- "----------------------------------\n");
-}
-
-/* FIXME: move to htc.c */
-void dump_cred_dist_stats(struct htc_target *target)
-{
- struct htc_endpoint_credit_dist *ep_list;
-
- if (!AR_DBG_LVL_CHECK(ATH6KL_DBG_CREDIT))
- return;
-
- list_for_each_entry(ep_list, &target->cred_dist_list, list)
- dump_cred_dist(ep_list);
-
- ath6kl_dbg(ATH6KL_DBG_CREDIT,
- "credit distribution total %d free %d\n",
- target->credit_info->total_avail_credits,
- target->credit_info->cur_free_credits);
-}
-
-static int ath6kl_debugfs_open(struct inode *inode, struct file *file)
-{
- file->private_data = inode->i_private;
- return 0;
-}
-
-void ath6kl_debug_war(struct ath6kl *ar, enum ath6kl_war war)
-{
- switch (war) {
- case ATH6KL_WAR_INVALID_RATE:
- ar->debug.war_stats.invalid_rate++;
- break;
- }
-}
-
-static ssize_t read_file_war_stats(struct file *file, char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- char *buf;
- unsigned int len = 0, buf_len = 1500;
- ssize_t ret_cnt;
-
- buf = kzalloc(buf_len, GFP_KERNEL);
- if (!buf)
- return -ENOMEM;
-
- len += scnprintf(buf + len, buf_len - len, "\n");
- len += scnprintf(buf + len, buf_len - len, "%25s\n",
- "Workaround stats");
- len += scnprintf(buf + len, buf_len - len, "%25s\n\n",
- "=================");
- len += scnprintf(buf + len, buf_len - len, "%20s %10u\n",
- "Invalid rates", ar->debug.war_stats.invalid_rate);
-
- if (WARN_ON(len > buf_len))
- len = buf_len;
-
- ret_cnt = simple_read_from_buffer(user_buf, count, ppos, buf, len);
-
- kfree(buf);
- return ret_cnt;
-}
-
-static const struct file_operations fops_war_stats = {
- .read = read_file_war_stats,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-void ath6kl_debug_fwlog_event(struct ath6kl *ar, const void *buf, size_t len)
-{
- struct ath6kl_fwlog_slot *slot;
- struct sk_buff *skb;
- size_t slot_len;
-
- if (WARN_ON(len > ATH6KL_FWLOG_PAYLOAD_SIZE))
- return;
-
- slot_len = sizeof(*slot) + ATH6KL_FWLOG_PAYLOAD_SIZE;
-
- skb = alloc_skb(slot_len, GFP_KERNEL);
- if (!skb)
- return;
-
- slot = (struct ath6kl_fwlog_slot *) skb_put(skb, slot_len);
- slot->timestamp = cpu_to_le32(jiffies);
- slot->length = cpu_to_le32(len);
- memcpy(slot->payload, buf, len);
-
- /* Need to pad each record to fixed length ATH6KL_FWLOG_PAYLOAD_SIZE */
- memset(slot->payload + len, 0, ATH6KL_FWLOG_PAYLOAD_SIZE - len);
-
- spin_lock(&ar->debug.fwlog_queue.lock);
-
- __skb_queue_tail(&ar->debug.fwlog_queue, skb);
- complete(&ar->debug.fwlog_completion);
-
- /* drop oldest entries */
- while (skb_queue_len(&ar->debug.fwlog_queue) >
- ATH6KL_FWLOG_MAX_ENTRIES) {
- skb = __skb_dequeue(&ar->debug.fwlog_queue);
- kfree_skb(skb);
- }
-
- spin_unlock(&ar->debug.fwlog_queue.lock);
-
- return;
-}
-
-static int ath6kl_fwlog_open(struct inode *inode, struct file *file)
-{
- struct ath6kl *ar = inode->i_private;
-
- if (ar->debug.fwlog_open)
- return -EBUSY;
-
- ar->debug.fwlog_open = true;
-
- file->private_data = inode->i_private;
- return 0;
-}
-
-static int ath6kl_fwlog_release(struct inode *inode, struct file *file)
-{
- struct ath6kl *ar = inode->i_private;
-
- ar->debug.fwlog_open = false;
-
- return 0;
-}
-
-static ssize_t ath6kl_fwlog_read(struct file *file, char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct sk_buff *skb;
- ssize_t ret_cnt;
- size_t len = 0;
- char *buf;
-
- buf = vmalloc(count);
- if (!buf)
- return -ENOMEM;
-
- /* read undelivered logs from firmware */
- ath6kl_read_fwlogs(ar);
-
- spin_lock(&ar->debug.fwlog_queue.lock);
-
- while ((skb = __skb_dequeue(&ar->debug.fwlog_queue))) {
- if (skb->len > count - len) {
- /* not enough space, put skb back and leave */
- __skb_queue_head(&ar->debug.fwlog_queue, skb);
- break;
- }
-
-
- memcpy(buf + len, skb->data, skb->len);
- len += skb->len;
-
- kfree_skb(skb);
- }
-
- spin_unlock(&ar->debug.fwlog_queue.lock);
-
- /* FIXME: what to do if len == 0? */
-
- ret_cnt = simple_read_from_buffer(user_buf, count, ppos, buf, len);
-
- vfree(buf);
-
- return ret_cnt;
-}
-
-static const struct file_operations fops_fwlog = {
- .open = ath6kl_fwlog_open,
- .release = ath6kl_fwlog_release,
- .read = ath6kl_fwlog_read,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_fwlog_block_read(struct file *file,
- char __user *user_buf,
- size_t count,
- loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct sk_buff *skb;
- ssize_t ret_cnt;
- size_t len = 0, not_copied;
- char *buf;
- int ret;
-
- buf = vmalloc(count);
- if (!buf)
- return -ENOMEM;
-
- spin_lock(&ar->debug.fwlog_queue.lock);
-
- if (skb_queue_len(&ar->debug.fwlog_queue) == 0) {
- /* we must init under queue lock */
- init_completion(&ar->debug.fwlog_completion);
-
- spin_unlock(&ar->debug.fwlog_queue.lock);
-
- ret = wait_for_completion_interruptible(
- &ar->debug.fwlog_completion);
- if (ret == -ERESTARTSYS) {
- vfree(buf);
- return ret;
- }
-
- spin_lock(&ar->debug.fwlog_queue.lock);
- }
-
- while ((skb = __skb_dequeue(&ar->debug.fwlog_queue))) {
- if (skb->len > count - len) {
- /* not enough space, put skb back and leave */
- __skb_queue_head(&ar->debug.fwlog_queue, skb);
- break;
- }
-
-
- memcpy(buf + len, skb->data, skb->len);
- len += skb->len;
-
- kfree_skb(skb);
- }
-
- spin_unlock(&ar->debug.fwlog_queue.lock);
-
- /* FIXME: what to do if len == 0? */
-
- not_copied = copy_to_user(user_buf, buf, len);
- if (not_copied != 0) {
- ret_cnt = -EFAULT;
- goto out;
- }
-
- *ppos = *ppos + len;
-
- ret_cnt = len;
-
-out:
- vfree(buf);
-
- return ret_cnt;
-}
-
-static const struct file_operations fops_fwlog_block = {
- .open = ath6kl_fwlog_open,
- .release = ath6kl_fwlog_release,
- .read = ath6kl_fwlog_block_read,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_fwlog_mask_read(struct file *file, char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- char buf[16];
- int len;
-
- len = snprintf(buf, sizeof(buf), "0x%x\n", ar->debug.fwlog_mask);
-
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
-}
-
-static ssize_t ath6kl_fwlog_mask_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- int ret;
-
- ret = kstrtou32_from_user(user_buf, count, 0, &ar->debug.fwlog_mask);
- if (ret)
- return ret;
-
- ret = ath6kl_wmi_config_debug_module_cmd(ar->wmi,
- ATH6KL_FWLOG_VALID_MASK,
- ar->debug.fwlog_mask);
- if (ret)
- return ret;
-
- return count;
-}
-
-static const struct file_operations fops_fwlog_mask = {
- .open = ath6kl_debugfs_open,
- .read = ath6kl_fwlog_mask_read,
- .write = ath6kl_fwlog_mask_write,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t read_file_tgt_stats(struct file *file, char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct ath6kl_vif *vif;
- struct target_stats *tgt_stats;
- char *buf;
- unsigned int len = 0, buf_len = 1500;
- int i;
- long left;
- ssize_t ret_cnt;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- tgt_stats = &vif->target_stats;
-
- buf = kzalloc(buf_len, GFP_KERNEL);
- if (!buf)
- return -ENOMEM;
-
- if (down_interruptible(&ar->sem)) {
- kfree(buf);
- return -EBUSY;
- }
-
- set_bit(STATS_UPDATE_PEND, &vif->flags);
-
- if (ath6kl_wmi_get_stats_cmd(ar->wmi, 0)) {
- up(&ar->sem);
- kfree(buf);
- return -EIO;
- }
-
- left = wait_event_interruptible_timeout(ar->event_wq,
- !test_bit(STATS_UPDATE_PEND,
- &vif->flags), WMI_TIMEOUT);
-
- up(&ar->sem);
-
- if (left <= 0) {
- kfree(buf);
- return -ETIMEDOUT;
- }
-
- len += scnprintf(buf + len, buf_len - len, "\n");
- len += scnprintf(buf + len, buf_len - len, "%25s\n",
- "Target Tx stats");
- len += scnprintf(buf + len, buf_len - len, "%25s\n\n",
- "=================");
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Ucast packets", tgt_stats->tx_ucast_pkt);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Bcast packets", tgt_stats->tx_bcast_pkt);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Ucast byte", tgt_stats->tx_ucast_byte);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Bcast byte", tgt_stats->tx_bcast_byte);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Rts success cnt", tgt_stats->tx_rts_success_cnt);
- for (i = 0; i < 4; i++)
- len += scnprintf(buf + len, buf_len - len,
- "%18s %d %10llu\n", "PER on ac",
- i, tgt_stats->tx_pkt_per_ac[i]);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Error", tgt_stats->tx_err);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Fail count", tgt_stats->tx_fail_cnt);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Retry count", tgt_stats->tx_retry_cnt);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Multi retry cnt", tgt_stats->tx_mult_retry_cnt);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Rts fail cnt", tgt_stats->tx_rts_fail_cnt);
- len += scnprintf(buf + len, buf_len - len, "%25s %10llu\n\n",
- "TKIP counter measure used",
- tgt_stats->tkip_cnter_measures_invoked);
-
- len += scnprintf(buf + len, buf_len - len, "%25s\n",
- "Target Rx stats");
- len += scnprintf(buf + len, buf_len - len, "%25s\n",
- "=================");
-
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Ucast packets", tgt_stats->rx_ucast_pkt);
- len += scnprintf(buf + len, buf_len - len, "%20s %10d\n",
- "Ucast Rate", tgt_stats->rx_ucast_rate);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Bcast packets", tgt_stats->rx_bcast_pkt);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Ucast byte", tgt_stats->rx_ucast_byte);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Bcast byte", tgt_stats->rx_bcast_byte);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Fragmented pkt", tgt_stats->rx_frgment_pkt);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Error", tgt_stats->rx_err);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "CRC Err", tgt_stats->rx_crc_err);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Key chache miss", tgt_stats->rx_key_cache_miss);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Decrypt Err", tgt_stats->rx_decrypt_err);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Duplicate frame", tgt_stats->rx_dupl_frame);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Tkip Mic failure", tgt_stats->tkip_local_mic_fail);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "TKIP format err", tgt_stats->tkip_fmt_err);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "CCMP format Err", tgt_stats->ccmp_fmt_err);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n\n",
- "CCMP Replay Err", tgt_stats->ccmp_replays);
-
- len += scnprintf(buf + len, buf_len - len, "%25s\n",
- "Misc Target stats");
- len += scnprintf(buf + len, buf_len - len, "%25s\n",
- "=================");
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Beacon Miss count", tgt_stats->cs_bmiss_cnt);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Num Connects", tgt_stats->cs_connect_cnt);
- len += scnprintf(buf + len, buf_len - len, "%20s %10llu\n",
- "Num disconnects", tgt_stats->cs_discon_cnt);
- len += scnprintf(buf + len, buf_len - len, "%20s %10d\n",
- "Beacon avg rssi", tgt_stats->cs_ave_beacon_rssi);
- len += scnprintf(buf + len, buf_len - len, "%20s %10d\n",
- "ARP pkt received", tgt_stats->arp_received);
- len += scnprintf(buf + len, buf_len - len, "%20s %10d\n",
- "ARP pkt matched", tgt_stats->arp_matched);
- len += scnprintf(buf + len, buf_len - len, "%20s %10d\n",
- "ARP pkt replied", tgt_stats->arp_replied);
-
- if (len > buf_len)
- len = buf_len;
-
- ret_cnt = simple_read_from_buffer(user_buf, count, ppos, buf, len);
-
- kfree(buf);
- return ret_cnt;
-}
-
-static const struct file_operations fops_tgt_stats = {
- .read = read_file_tgt_stats,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-#define print_credit_info(fmt_str, ep_list_field) \
- (len += scnprintf(buf + len, buf_len - len, fmt_str, \
- ep_list->ep_list_field))
-#define CREDIT_INFO_DISPLAY_STRING_LEN 200
-#define CREDIT_INFO_LEN 128
-
-static ssize_t read_file_credit_dist_stats(struct file *file,
- char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct htc_target *target = ar->htc_target;
- struct htc_endpoint_credit_dist *ep_list;
- char *buf;
- unsigned int buf_len, len = 0;
- ssize_t ret_cnt;
-
- buf_len = CREDIT_INFO_DISPLAY_STRING_LEN +
- get_queue_depth(&target->cred_dist_list) * CREDIT_INFO_LEN;
- buf = kzalloc(buf_len, GFP_KERNEL);
- if (!buf)
- return -ENOMEM;
-
- len += scnprintf(buf + len, buf_len - len, "%25s%5d\n",
- "Total Avail Credits: ",
- target->credit_info->total_avail_credits);
- len += scnprintf(buf + len, buf_len - len, "%25s%5d\n",
- "Free credits :",
- target->credit_info->cur_free_credits);
-
- len += scnprintf(buf + len, buf_len - len,
- " Epid Flags Cred_norm Cred_min Credits Cred_assngd"
- " Seek_cred Cred_sz Cred_per_msg Cred_to_dist"
- " qdepth\n");
-
- list_for_each_entry(ep_list, &target->cred_dist_list, list) {
- print_credit_info(" %2d", endpoint);
- print_credit_info("%10x", dist_flags);
- print_credit_info("%8d", cred_norm);
- print_credit_info("%9d", cred_min);
- print_credit_info("%9d", credits);
- print_credit_info("%10d", cred_assngd);
- print_credit_info("%13d", seek_cred);
- print_credit_info("%12d", cred_sz);
- print_credit_info("%9d", cred_per_msg);
- print_credit_info("%14d", cred_to_dist);
- len += scnprintf(buf + len, buf_len - len, "%12d\n",
- get_queue_depth(&ep_list->htc_ep->txq));
- }
-
- if (len > buf_len)
- len = buf_len;
-
- ret_cnt = simple_read_from_buffer(user_buf, count, ppos, buf, len);
- kfree(buf);
- return ret_cnt;
-}
-
-static const struct file_operations fops_credit_dist_stats = {
- .read = read_file_credit_dist_stats,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static unsigned int print_endpoint_stat(struct htc_target *target, char *buf,
- unsigned int buf_len, unsigned int len,
- int offset, const char *name)
-{
- int i;
- struct htc_endpoint_stats *ep_st;
- u32 *counter;
-
- len += scnprintf(buf + len, buf_len - len, "%s:", name);
- for (i = 0; i < ENDPOINT_MAX; i++) {
- ep_st = &target->endpoint[i].ep_st;
- counter = ((u32 *) ep_st) + (offset / 4);
- len += scnprintf(buf + len, buf_len - len, " %u", *counter);
- }
- len += scnprintf(buf + len, buf_len - len, "\n");
-
- return len;
-}
-
-static ssize_t ath6kl_endpoint_stats_read(struct file *file,
- char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct htc_target *target = ar->htc_target;
- char *buf;
- unsigned int buf_len, len = 0;
- ssize_t ret_cnt;
-
- buf_len = sizeof(struct htc_endpoint_stats) / sizeof(u32) *
- (25 + ENDPOINT_MAX * 11);
- buf = kmalloc(buf_len, GFP_KERNEL);
- if (!buf)
- return -ENOMEM;
-
-#define EPSTAT(name) \
- len = print_endpoint_stat(target, buf, buf_len, len, \
- offsetof(struct htc_endpoint_stats, name), \
- #name)
- EPSTAT(cred_low_indicate);
- EPSTAT(tx_issued);
- EPSTAT(tx_pkt_bundled);
- EPSTAT(tx_bundles);
- EPSTAT(tx_dropped);
- EPSTAT(tx_cred_rpt);
- EPSTAT(cred_rpt_from_rx);
- EPSTAT(cred_rpt_from_other);
- EPSTAT(cred_rpt_ep0);
- EPSTAT(cred_from_rx);
- EPSTAT(cred_from_other);
- EPSTAT(cred_from_ep0);
- EPSTAT(cred_cosumd);
- EPSTAT(cred_retnd);
- EPSTAT(rx_pkts);
- EPSTAT(rx_lkahds);
- EPSTAT(rx_bundl);
- EPSTAT(rx_bundle_lkahd);
- EPSTAT(rx_bundle_from_hdr);
- EPSTAT(rx_alloc_thresh_hit);
- EPSTAT(rxalloc_thresh_byte);
-#undef EPSTAT
-
- if (len > buf_len)
- len = buf_len;
-
- ret_cnt = simple_read_from_buffer(user_buf, count, ppos, buf, len);
- kfree(buf);
- return ret_cnt;
-}
-
-static ssize_t ath6kl_endpoint_stats_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct htc_target *target = ar->htc_target;
- int ret, i;
- u32 val;
- struct htc_endpoint_stats *ep_st;
-
- ret = kstrtou32_from_user(user_buf, count, 0, &val);
- if (ret)
- return ret;
- if (val == 0) {
- for (i = 0; i < ENDPOINT_MAX; i++) {
- ep_st = &target->endpoint[i].ep_st;
- memset(ep_st, 0, sizeof(*ep_st));
- }
- }
-
- return count;
-}
-
-static const struct file_operations fops_endpoint_stats = {
- .open = ath6kl_debugfs_open,
- .read = ath6kl_endpoint_stats_read,
- .write = ath6kl_endpoint_stats_write,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static unsigned long ath6kl_get_num_reg(void)
-{
- int i;
- unsigned long n_reg = 0;
-
- for (i = 0; i < ARRAY_SIZE(diag_reg); i++)
- n_reg = n_reg +
- (diag_reg[i].reg_end - diag_reg[i].reg_start) / 4 + 1;
-
- return n_reg;
-}
-
-static bool ath6kl_dbg_is_diag_reg_valid(u32 reg_addr)
-{
- int i;
-
- for (i = 0; i < ARRAY_SIZE(diag_reg); i++) {
- if (reg_addr >= diag_reg[i].reg_start &&
- reg_addr <= diag_reg[i].reg_end)
- return true;
- }
-
- return false;
-}
-
-static ssize_t ath6kl_regread_read(struct file *file, char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- u8 buf[50];
- unsigned int len = 0;
-
- if (ar->debug.dbgfs_diag_reg)
- len += scnprintf(buf + len, sizeof(buf) - len, "0x%x\n",
- ar->debug.dbgfs_diag_reg);
- else
- len += scnprintf(buf + len, sizeof(buf) - len,
- "All diag registers\n");
-
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
-}
-
-static ssize_t ath6kl_regread_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- u8 buf[50];
- unsigned int len;
- unsigned long reg_addr;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
-
- buf[len] = '\0';
-
- if (strict_strtoul(buf, 0, &reg_addr))
- return -EINVAL;
-
- if ((reg_addr % 4) != 0)
- return -EINVAL;
-
- if (reg_addr && !ath6kl_dbg_is_diag_reg_valid(reg_addr))
- return -EINVAL;
-
- ar->debug.dbgfs_diag_reg = reg_addr;
-
- return count;
-}
-
-static const struct file_operations fops_diag_reg_read = {
- .read = ath6kl_regread_read,
- .write = ath6kl_regread_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static int ath6kl_regdump_open(struct inode *inode, struct file *file)
-{
- struct ath6kl *ar = inode->i_private;
- u8 *buf;
- unsigned long int reg_len;
- unsigned int len = 0, n_reg;
- u32 addr;
- __le32 reg_val;
- int i, status;
-
- /* Dump all the registers if no register is specified */
- if (!ar->debug.dbgfs_diag_reg)
- n_reg = ath6kl_get_num_reg();
- else
- n_reg = 1;
-
- reg_len = n_reg * REG_OUTPUT_LEN_PER_LINE;
- if (n_reg > 1)
- reg_len += REGTYPE_STR_LEN;
-
- buf = vmalloc(reg_len);
- if (!buf)
- return -ENOMEM;
-
- if (n_reg == 1) {
- addr = ar->debug.dbgfs_diag_reg;
-
- status = ath6kl_diag_read32(ar,
- TARG_VTOP(ar->target_type, addr),
- (u32 *)&reg_val);
- if (status)
- goto fail_reg_read;
-
- len += scnprintf(buf + len, reg_len - len,
- "0x%06x 0x%08x\n", addr, le32_to_cpu(reg_val));
- goto done;
- }
-
- for (i = 0; i < ARRAY_SIZE(diag_reg); i++) {
- len += scnprintf(buf + len, reg_len - len,
- "%s\n", diag_reg[i].reg_info);
- for (addr = diag_reg[i].reg_start;
- addr <= diag_reg[i].reg_end; addr += 4) {
- status = ath6kl_diag_read32(ar,
- TARG_VTOP(ar->target_type, addr),
- (u32 *)&reg_val);
- if (status)
- goto fail_reg_read;
-
- len += scnprintf(buf + len, reg_len - len,
- "0x%06x 0x%08x\n",
- addr, le32_to_cpu(reg_val));
- }
- }
-
-done:
- file->private_data = buf;
- return 0;
-
-fail_reg_read:
- ath6kl_warn("Unable to read memory:%u\n", addr);
- vfree(buf);
- return -EIO;
-}
-
-static ssize_t ath6kl_regdump_read(struct file *file, char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- u8 *buf = file->private_data;
- return simple_read_from_buffer(user_buf, count, ppos, buf, strlen(buf));
-}
-
-static int ath6kl_regdump_release(struct inode *inode, struct file *file)
-{
- vfree(file->private_data);
- return 0;
-}
-
-static const struct file_operations fops_reg_dump = {
- .open = ath6kl_regdump_open,
- .read = ath6kl_regdump_read,
- .release = ath6kl_regdump_release,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_lrssi_roam_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- unsigned long lrssi_roam_threshold;
- char buf[32];
- ssize_t len;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
-
- buf[len] = '\0';
- if (strict_strtoul(buf, 0, &lrssi_roam_threshold))
- return -EINVAL;
-
- ar->lrssi_roam_threshold = lrssi_roam_threshold;
-
- ath6kl_wmi_set_roam_lrssi_cmd(ar->wmi, ar->lrssi_roam_threshold);
-
- return count;
-}
-
-static ssize_t ath6kl_lrssi_roam_read(struct file *file,
- char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- char buf[32];
- unsigned int len;
-
- len = snprintf(buf, sizeof(buf), "%u\n", ar->lrssi_roam_threshold);
-
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
-}
-
-static const struct file_operations fops_lrssi_roam_threshold = {
- .read = ath6kl_lrssi_roam_read,
- .write = ath6kl_lrssi_roam_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_regwrite_read(struct file *file,
- char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- u8 buf[32];
- unsigned int len = 0;
-
- len = scnprintf(buf, sizeof(buf), "Addr: 0x%x Val: 0x%x\n",
- ar->debug.diag_reg_addr_wr, ar->debug.diag_reg_val_wr);
-
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
-}
-
-static ssize_t ath6kl_regwrite_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- char buf[32];
- char *sptr, *token;
- unsigned int len = 0;
- u32 reg_addr, reg_val;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
-
- buf[len] = '\0';
- sptr = buf;
-
- token = strsep(&sptr, "=");
- if (!token)
- return -EINVAL;
-
- if (kstrtou32(token, 0, &reg_addr))
- return -EINVAL;
-
- if (!ath6kl_dbg_is_diag_reg_valid(reg_addr))
- return -EINVAL;
-
- if (kstrtou32(sptr, 0, &reg_val))
- return -EINVAL;
-
- ar->debug.diag_reg_addr_wr = reg_addr;
- ar->debug.diag_reg_val_wr = reg_val;
-
- if (ath6kl_diag_write32(ar, ar->debug.diag_reg_addr_wr,
- cpu_to_le32(ar->debug.diag_reg_val_wr)))
- return -EIO;
-
- return count;
-}
-
-static const struct file_operations fops_diag_reg_write = {
- .read = ath6kl_regwrite_read,
- .write = ath6kl_regwrite_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-int ath6kl_debug_roam_tbl_event(struct ath6kl *ar, const void *buf,
- size_t len)
-{
- const struct wmi_target_roam_tbl *tbl;
- u16 num_entries;
-
- if (len < sizeof(*tbl))
- return -EINVAL;
-
- tbl = (const struct wmi_target_roam_tbl *) buf;
- num_entries = le16_to_cpu(tbl->num_entries);
- if (sizeof(*tbl) + num_entries * sizeof(struct wmi_bss_roam_info) >
- len)
- return -EINVAL;
-
- if (ar->debug.roam_tbl == NULL ||
- ar->debug.roam_tbl_len < (unsigned int) len) {
- kfree(ar->debug.roam_tbl);
- ar->debug.roam_tbl = kmalloc(len, GFP_ATOMIC);
- if (ar->debug.roam_tbl == NULL)
- return -ENOMEM;
- }
-
- memcpy(ar->debug.roam_tbl, buf, len);
- ar->debug.roam_tbl_len = len;
-
- if (test_bit(ROAM_TBL_PEND, &ar->flag)) {
- clear_bit(ROAM_TBL_PEND, &ar->flag);
- wake_up(&ar->event_wq);
- }
-
- return 0;
-}
-
-static ssize_t ath6kl_roam_table_read(struct file *file, char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- int ret;
- long left;
- struct wmi_target_roam_tbl *tbl;
- u16 num_entries, i;
- char *buf;
- unsigned int len, buf_len;
- ssize_t ret_cnt;
-
- if (down_interruptible(&ar->sem))
- return -EBUSY;
-
- set_bit(ROAM_TBL_PEND, &ar->flag);
-
- ret = ath6kl_wmi_get_roam_tbl_cmd(ar->wmi);
- if (ret) {
- up(&ar->sem);
- return ret;
- }
-
- left = wait_event_interruptible_timeout(
- ar->event_wq, !test_bit(ROAM_TBL_PEND, &ar->flag), WMI_TIMEOUT);
- up(&ar->sem);
-
- if (left <= 0)
- return -ETIMEDOUT;
-
- if (ar->debug.roam_tbl == NULL)
- return -ENOMEM;
-
- tbl = (struct wmi_target_roam_tbl *) ar->debug.roam_tbl;
- num_entries = le16_to_cpu(tbl->num_entries);
-
- buf_len = 100 + num_entries * 100;
- buf = kzalloc(buf_len, GFP_KERNEL);
- if (buf == NULL)
- return -ENOMEM;
- len = 0;
- len += scnprintf(buf + len, buf_len - len,
- "roam_mode=%u\n\n"
- "# roam_util bssid rssi rssidt last_rssi util bias\n",
- le16_to_cpu(tbl->roam_mode));
-
- for (i = 0; i < num_entries; i++) {
- struct wmi_bss_roam_info *info = &tbl->info[i];
- len += scnprintf(buf + len, buf_len - len,
- "%d %pM %d %d %d %d %d\n",
- a_sle32_to_cpu(info->roam_util), info->bssid,
- info->rssi, info->rssidt, info->last_rssi,
- info->util, info->bias);
- }
-
- if (len > buf_len)
- len = buf_len;
-
- ret_cnt = simple_read_from_buffer(user_buf, count, ppos, buf, len);
-
- kfree(buf);
- return ret_cnt;
-}
-
-static const struct file_operations fops_roam_table = {
- .read = ath6kl_roam_table_read,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_force_roam_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- int ret;
- char buf[20];
- size_t len;
- u8 bssid[ETH_ALEN];
- int i;
- int addr[ETH_ALEN];
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
- buf[len] = '\0';
-
- if (sscanf(buf, "%02x:%02x:%02x:%02x:%02x:%02x",
- &addr[0], &addr[1], &addr[2], &addr[3], &addr[4], &addr[5])
- != ETH_ALEN)
- return -EINVAL;
- for (i = 0; i < ETH_ALEN; i++)
- bssid[i] = addr[i];
-
- ret = ath6kl_wmi_force_roam_cmd(ar->wmi, bssid);
- if (ret)
- return ret;
-
- return count;
-}
-
-static const struct file_operations fops_force_roam = {
- .write = ath6kl_force_roam_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_roam_mode_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- int ret;
- char buf[20];
- size_t len;
- enum wmi_roam_mode mode;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
- buf[len] = '\0';
- if (len > 0 && buf[len - 1] == '\n')
- buf[len - 1] = '\0';
-
- if (strcasecmp(buf, "default") == 0)
- mode = WMI_DEFAULT_ROAM_MODE;
- else if (strcasecmp(buf, "bssbias") == 0)
- mode = WMI_HOST_BIAS_ROAM_MODE;
- else if (strcasecmp(buf, "lock") == 0)
- mode = WMI_LOCK_BSS_MODE;
- else
- return -EINVAL;
-
- ret = ath6kl_wmi_set_roam_mode_cmd(ar->wmi, mode);
- if (ret)
- return ret;
-
- return count;
-}
-
-static const struct file_operations fops_roam_mode = {
- .write = ath6kl_roam_mode_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-void ath6kl_debug_set_keepalive(struct ath6kl *ar, u8 keepalive)
-{
- ar->debug.keepalive = keepalive;
-}
-
-static ssize_t ath6kl_keepalive_read(struct file *file, char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- char buf[16];
- int len;
-
- len = snprintf(buf, sizeof(buf), "%u\n", ar->debug.keepalive);
-
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
-}
-
-static ssize_t ath6kl_keepalive_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- int ret;
- u8 val;
-
- ret = kstrtou8_from_user(user_buf, count, 0, &val);
- if (ret)
- return ret;
-
- ret = ath6kl_wmi_set_keepalive_cmd(ar->wmi, 0, val);
- if (ret)
- return ret;
-
- return count;
-}
-
-static const struct file_operations fops_keepalive = {
- .open = ath6kl_debugfs_open,
- .read = ath6kl_keepalive_read,
- .write = ath6kl_keepalive_write,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-void ath6kl_debug_set_disconnect_timeout(struct ath6kl *ar, u8 timeout)
-{
- ar->debug.disc_timeout = timeout;
-}
-
-static ssize_t ath6kl_disconnect_timeout_read(struct file *file,
- char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- char buf[16];
- int len;
-
- len = snprintf(buf, sizeof(buf), "%u\n", ar->debug.disc_timeout);
-
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
-}
-
-static ssize_t ath6kl_disconnect_timeout_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- int ret;
- u8 val;
-
- ret = kstrtou8_from_user(user_buf, count, 0, &val);
- if (ret)
- return ret;
-
- ret = ath6kl_wmi_disctimeout_cmd(ar->wmi, 0, val);
- if (ret)
- return ret;
-
- return count;
-}
-
-static const struct file_operations fops_disconnect_timeout = {
- .open = ath6kl_debugfs_open,
- .read = ath6kl_disconnect_timeout_read,
- .write = ath6kl_disconnect_timeout_write,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_create_qos_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
-
- struct ath6kl *ar = file->private_data;
- struct ath6kl_vif *vif;
- char buf[200];
- ssize_t len;
- char *sptr, *token;
- struct wmi_create_pstream_cmd pstream;
- u32 val32;
- u16 val16;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
- buf[len] = '\0';
- sptr = buf;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &pstream.user_pri))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &pstream.traffic_direc))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &pstream.traffic_class))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &pstream.traffic_type))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &pstream.voice_psc_cap))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.min_service_int = cpu_to_le32(val32);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.max_service_int = cpu_to_le32(val32);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.inactivity_int = cpu_to_le32(val32);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.suspension_int = cpu_to_le32(val32);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.service_start_time = cpu_to_le32(val32);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &pstream.tsid))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou16(token, 0, &val16))
- return -EINVAL;
- pstream.nominal_msdu = cpu_to_le16(val16);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou16(token, 0, &val16))
- return -EINVAL;
- pstream.max_msdu = cpu_to_le16(val16);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.min_data_rate = cpu_to_le32(val32);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.mean_data_rate = cpu_to_le32(val32);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.peak_data_rate = cpu_to_le32(val32);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.max_burst_size = cpu_to_le32(val32);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.delay_bound = cpu_to_le32(val32);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.min_phy_rate = cpu_to_le32(val32);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.sba = cpu_to_le32(val32);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou32(token, 0, &val32))
- return -EINVAL;
- pstream.medium_time = cpu_to_le32(val32);
-
- pstream.nominal_phy = ((le32_to_cpu(pstream.min_phy_rate) / 1000) / 1000);
-
- ath6kl_wmi_create_pstream_cmd(ar->wmi, vif->fw_vif_idx, &pstream);
-
- return count;
-}
-
-static const struct file_operations fops_create_qos = {
- .write = ath6kl_create_qos_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_delete_qos_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
-
- struct ath6kl *ar = file->private_data;
- struct ath6kl_vif *vif;
- char buf[100];
- ssize_t len;
- char *sptr, *token;
- u8 traffic_class;
- u8 tsid;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
- buf[len] = '\0';
- sptr = buf;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &traffic_class))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &tsid))
- return -EINVAL;
-
- ath6kl_wmi_delete_pstream_cmd(ar->wmi, vif->fw_vif_idx,
- traffic_class, tsid);
-
- return count;
-}
-
-static const struct file_operations fops_delete_qos = {
- .write = ath6kl_delete_qos_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_bgscan_int_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct ath6kl_vif *vif;
- u16 bgscan_int;
- char buf[32];
- ssize_t len;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
-
- buf[len] = '\0';
- if (kstrtou16(buf, 0, &bgscan_int))
- return -EINVAL;
-
- if (bgscan_int == 0)
- bgscan_int = 0xffff;
-
- vif->bg_scan_period = bgscan_int;
- ath6kl_wmi_scanparams_cmd(ar->wmi, 0, 0, 0, bgscan_int, 0, 0, 0, 3,
- vif->scan_ctrl_flag, 0, 0);
-
- return count;
-}
-
-static const struct file_operations fops_bgscan_int = {
- .write = ath6kl_bgscan_int_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_listen_int_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct ath6kl_vif *vif;
- u16 listen_interval;
- char buf[32];
- ssize_t len;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
-
- buf[len] = '\0';
- if (kstrtou16(buf, 0, &listen_interval))
- return -EINVAL;
-
- if ((listen_interval < 15) || (listen_interval > 3000))
- return -EINVAL;
-
- vif->listen_intvl_t = listen_interval;
- ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx,
- vif->listen_intvl_t, 0);
-
- return count;
-}
-
-static ssize_t ath6kl_listen_int_read(struct file *file,
- char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct ath6kl_vif *vif;
- char buf[32];
- int len;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- len = scnprintf(buf, sizeof(buf), "%u\n", vif->listen_intvl_t);
-
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
-}
-
-static const struct file_operations fops_listen_int = {
- .read = ath6kl_listen_int_read,
- .write = ath6kl_listen_int_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_mcastrate_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct ath6kl_vif *vif;
- u16 mcastrate;
- char buf[32];
- ssize_t len;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
-
- buf[len] = '\0';
- if (kstrtou16(buf, 0, &mcastrate))
- return -EINVAL;
-
- vif->mcastrate = mcastrate;
- ath6kl_wmi_mcastrate_cmd(ar->wmi, vif->fw_vif_idx,
- vif->mcastrate);
-
- return count;
-}
-
-static ssize_t ath6kl_mcastrate_read(struct file *file,
- char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct ath6kl_vif *vif;
- char buf[32];
- int len;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- len = scnprintf(buf, sizeof(buf), "%u\n", vif->mcastrate);
-
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
-}
-
-static const struct file_operations fops_mcastrate = {
- .read = ath6kl_mcastrate_read,
- .write = ath6kl_mcastrate_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_power_params_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- u8 buf[100];
- unsigned int len = 0;
- char *sptr, *token;
- u16 idle_period, ps_poll_num, dtim,
- tx_wakeup, num_tx;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
- buf[len] = '\0';
- sptr = buf;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou16(token, 0, &idle_period))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou16(token, 0, &ps_poll_num))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou16(token, 0, &dtim))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou16(token, 0, &tx_wakeup))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou16(token, 0, &num_tx))
- return -EINVAL;
-
- ath6kl_wmi_pmparams_cmd(ar->wmi, 0, idle_period, ps_poll_num,
- dtim, tx_wakeup, num_tx, 0);
-
- return count;
-}
-
-static const struct file_operations fops_power_params = {
- .write = ath6kl_power_params_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_lrssi_roam_config_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct low_rssi_scan_params lrssi_params;
- char buf[32];
- ssize_t len;
- char *sptr, *token;
- u16 val16;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
-
- buf[len] = '\0';
- sptr = buf;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou16(token, 0, &val16))
- return -EINVAL;
- lrssi_params.lrssi_scan_period = cpu_to_le16(val16);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou16(token, 0, &val16))
- return -EINVAL;
- lrssi_params.lrssi_scan_threshold = cpu_to_le16(val16);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou16(token, 0, &val16))
- return -EINVAL;
- lrssi_params.lrssi_roam_threshold = cpu_to_le16(val16);
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &lrssi_params.roam_rssi_floor))
- return -EINVAL;
-
- ath6kl_wmi_set_roam_lrssi_config_cmd(ar->wmi, &lrssi_params);
-
- return count;
-}
-
-static const struct file_operations fops_lrssi_roam_config = {
- .write = ath6kl_lrssi_roam_config_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_ht_cap_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct ath6kl_vif *vif;
- struct wmi_set_ht_cap_cmd ht_cap;
- char buf[32];
- ssize_t len;
- char *sptr, *token;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
-
- buf[len] = '\0';
- sptr = buf;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &ht_cap.band))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &ht_cap.enable))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &ht_cap.chan_width_40m_supported))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &ht_cap.short_gi_20mhz))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &ht_cap.short_gi_40mhz))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &ht_cap.intolerance_40mhz))
- return -EINVAL;
-
- token = strsep(&sptr, " ");
- if (!token)
- return -EINVAL;
- if (kstrtou8(token, 0, &ht_cap.max_ampdu_len_exp))
- return -EINVAL;
-
- ath6kl_wmi_set_ht_cap_cmd(ar->wmi, vif->fw_vif_idx, &ht_cap);
-
- return count;
-}
-
-static const struct file_operations fops_ht_cap = {
- .write = ath6kl_ht_cap_write,
- .open = ath6kl_debugfs_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-int ath6kl_debug_init(struct ath6kl *ar)
-{
- skb_queue_head_init(&ar->debug.fwlog_queue);
- init_completion(&ar->debug.fwlog_completion);
-
- /*
- * Actually we are lying here but don't know how to read the mask
- * value from the firmware.
- */
- ar->debug.fwlog_mask = 0;
-
- ar->debugfs_phy = debugfs_create_dir("ath6kl",
- ar->wiphy->debugfsdir);
- if (!ar->debugfs_phy)
- return -ENOMEM;
-
- debugfs_create_file("tgt_stats", S_IRUSR, ar->debugfs_phy, ar,
- &fops_tgt_stats);
-
- debugfs_create_file("credit_dist_stats", S_IRUSR, ar->debugfs_phy, ar,
- &fops_credit_dist_stats);
-
- debugfs_create_file("endpoint_stats", S_IRUSR | S_IWUSR,
- ar->debugfs_phy, ar, &fops_endpoint_stats);
-
- debugfs_create_file("fwlog", S_IRUSR, ar->debugfs_phy, ar,
- &fops_fwlog);
-
- debugfs_create_file("fwlog_block", S_IRUSR, ar->debugfs_phy, ar,
- &fops_fwlog_block);
-
- debugfs_create_file("fwlog_mask", S_IRUSR | S_IWUSR, ar->debugfs_phy,
- ar, &fops_fwlog_mask);
-
- debugfs_create_file("reg_addr", S_IRUSR | S_IWUSR, ar->debugfs_phy, ar,
- &fops_diag_reg_read);
-
- debugfs_create_file("reg_dump", S_IRUSR, ar->debugfs_phy, ar,
- &fops_reg_dump);
-
- debugfs_create_file("lrssi_roam_threshold", S_IRUSR | S_IWUSR,
- ar->debugfs_phy, ar, &fops_lrssi_roam_threshold);
-
- debugfs_create_file("reg_write", S_IRUSR | S_IWUSR,
- ar->debugfs_phy, ar, &fops_diag_reg_write);
-
- debugfs_create_file("war_stats", S_IRUSR, ar->debugfs_phy, ar,
- &fops_war_stats);
-
- debugfs_create_file("roam_table", S_IRUSR, ar->debugfs_phy, ar,
- &fops_roam_table);
-
- debugfs_create_file("force_roam", S_IWUSR, ar->debugfs_phy, ar,
- &fops_force_roam);
-
- debugfs_create_file("roam_mode", S_IWUSR, ar->debugfs_phy, ar,
- &fops_roam_mode);
-
- debugfs_create_file("keepalive", S_IRUSR | S_IWUSR, ar->debugfs_phy, ar,
- &fops_keepalive);
-
- debugfs_create_file("disconnect_timeout", S_IRUSR | S_IWUSR,
- ar->debugfs_phy, ar, &fops_disconnect_timeout);
-
- debugfs_create_file("create_qos", S_IWUSR, ar->debugfs_phy, ar,
- &fops_create_qos);
-
- debugfs_create_file("delete_qos", S_IWUSR, ar->debugfs_phy, ar,
- &fops_delete_qos);
-
- debugfs_create_file("bgscan_interval", S_IWUSR,
- ar->debugfs_phy, ar, &fops_bgscan_int);
-
- debugfs_create_file("listen_interval", S_IRUSR | S_IWUSR,
- ar->debugfs_phy, ar, &fops_listen_int);
-
- debugfs_create_file("mcast_rate", S_IRUSR | S_IWUSR,
- ar->debugfs_phy, ar, &fops_mcastrate);
-
- debugfs_create_file("power_params", S_IWUSR, ar->debugfs_phy, ar,
- &fops_power_params);
-
- debugfs_create_file("lrssi_roam_config", S_IRUSR, ar->debugfs_phy, ar,
- &fops_lrssi_roam_config);
-
- debugfs_create_file("ht_cap", S_IRUSR, ar->debugfs_phy, ar,
- &fops_ht_cap);
-
- return ath6kl_init_debugfs_pri(ar);
-}
-
-void ath6kl_debug_cleanup(struct ath6kl *ar)
-{
- skb_queue_purge(&ar->debug.fwlog_queue);
- kfree(ar->debug.roam_tbl);
-}
-
-#endif
diff --git a/drivers/net/wireless/ath/ath6kl/debug.h b/drivers/net/wireless/ath/ath6kl/debug.h
deleted file mode 100755
index aaecb5d..0000000
--- a/drivers/net/wireless/ath/ath6kl/debug.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (c) 2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef DEBUG_H
-#define DEBUG_H
-
-#include "hif.h"
-
-enum ATH6K_DEBUG_MASK {
- ATH6KL_DBG_CREDIT = BIT(0),
- /* hole */
- ATH6KL_DBG_WLAN_TX = BIT(2), /* wlan tx */
- ATH6KL_DBG_WLAN_RX = BIT(3), /* wlan rx */
- ATH6KL_DBG_BMI = BIT(4), /* bmi tracing */
- ATH6KL_DBG_HTC = BIT(5),
- ATH6KL_DBG_HIF = BIT(6),
- ATH6KL_DBG_IRQ = BIT(7), /* interrupt processing */
- /* hole */
- /* hole */
- ATH6KL_DBG_WMI = BIT(10), /* wmi tracing */
- ATH6KL_DBG_TRC = BIT(11), /* generic func tracing */
- ATH6KL_DBG_SCATTER = BIT(12), /* hif scatter tracing */
- ATH6KL_DBG_WLAN_CFG = BIT(13), /* cfg80211 i/f file tracing */
- ATH6KL_DBG_RAW_BYTES = BIT(14), /* dump tx/rx frames */
- ATH6KL_DBG_AGGR = BIT(15), /* aggregation */
- ATH6KL_DBG_SDIO = BIT(16),
- ATH6KL_DBG_SDIO_DUMP = BIT(17),
- ATH6KL_DBG_BOOT = BIT(18), /* driver init and fw boot */
- ATH6KL_DBG_WMI_DUMP = BIT(19),
- ATH6KL_DBG_SUSPEND = BIT(20),
- ATH6KL_DBG_USB = BIT(21),
- ATH6KL_DBG_ANY = 0xffffffff /* enable all logs */
-};
-
-extern unsigned int debug_mask;
-extern __printf(2, 3)
-int ath6kl_printk(const char *level, const char *fmt, ...);
-char *sec_conv_mac(const u8 *mac);
-
-#define ath6kl_info(fmt, ...) \
- ath6kl_printk(KERN_INFO, fmt, ##__VA_ARGS__)
-#define ath6kl_err(fmt, ...) \
- ath6kl_printk(KERN_INFO, fmt, ##__VA_ARGS__)
-#define ath6kl_warn(fmt, ...) \
- ath6kl_printk(KERN_INFO, fmt, ##__VA_ARGS__)
-
-#define AR_DBG_LVL_CHECK(mask) (debug_mask & mask)
-
-enum ath6kl_war {
- ATH6KL_WAR_INVALID_RATE,
-};
-
-#ifdef CONFIG_ATH6KL_DEBUG
-#define ath6kl_dbg(mask, fmt, ...) \
- ({ \
- int rtn; \
- if (debug_mask & mask) \
- rtn = ath6kl_printk(KERN_DEBUG, fmt, ##__VA_ARGS__); \
- else \
- rtn = 0; \
- \
- rtn; \
- })
-
-static inline void ath6kl_dbg_dump(enum ATH6K_DEBUG_MASK mask,
- const char *msg, const char *prefix,
- const void *buf, size_t len)
-{
- if (debug_mask & mask) {
- if (msg)
- ath6kl_dbg(mask, "%s\n", msg);
-
- print_hex_dump_bytes(prefix, DUMP_PREFIX_OFFSET, buf, len);
- }
-}
-
-void ath6kl_dump_registers(struct ath6kl_device *dev,
- struct ath6kl_irq_proc_registers *irq_proc_reg,
- struct ath6kl_irq_enable_reg *irq_en_reg);
-void dump_cred_dist_stats(struct htc_target *target);
-void ath6kl_debug_fwlog_event(struct ath6kl *ar, const void *buf, size_t len);
-void ath6kl_debug_war(struct ath6kl *ar, enum ath6kl_war war);
-int ath6kl_debug_roam_tbl_event(struct ath6kl *ar, const void *buf,
- size_t len);
-void ath6kl_debug_set_keepalive(struct ath6kl *ar, u8 keepalive);
-void ath6kl_debug_set_disconnect_timeout(struct ath6kl *ar, u8 timeout);
-int ath6kl_debug_init(struct ath6kl *ar);
-void ath6kl_debug_cleanup(struct ath6kl *ar);
-
-#else
-static inline int ath6kl_dbg(enum ATH6K_DEBUG_MASK dbg_mask,
- const char *fmt, ...)
-{
- return 0;
-}
-
-static inline void ath6kl_dbg_dump(enum ATH6K_DEBUG_MASK mask,
- const char *msg, const char *prefix,
- const void *buf, size_t len)
-{
-}
-
-static inline void ath6kl_dump_registers(struct ath6kl_device *dev,
- struct ath6kl_irq_proc_registers *irq_proc_reg,
- struct ath6kl_irq_enable_reg *irq_en_reg)
-{
-
-}
-static inline void dump_cred_dist_stats(struct htc_target *target)
-{
-}
-
-static inline void ath6kl_debug_fwlog_event(struct ath6kl *ar,
- const void *buf, size_t len)
-{
-}
-
-static inline void ath6kl_debug_war(struct ath6kl *ar, enum ath6kl_war war)
-{
-}
-
-static inline int ath6kl_debug_roam_tbl_event(struct ath6kl *ar,
- const void *buf, size_t len)
-{
- return 0;
-}
-
-static inline void ath6kl_debug_set_keepalive(struct ath6kl *ar, u8 keepalive)
-{
-}
-
-static inline void ath6kl_debug_set_disconnect_timeout(struct ath6kl *ar,
- u8 timeout)
-{
-}
-
-static inline int ath6kl_debug_init(struct ath6kl *ar)
-{
- return 0;
-}
-
-static inline void ath6kl_debug_cleanup(struct ath6kl *ar)
-{
-}
-
-#endif
-#endif
diff --git a/drivers/net/wireless/ath/ath6kl/debugfs_pri.c b/drivers/net/wireless/ath/ath6kl/debugfs_pri.c
deleted file mode 100644
index 1130cb2..0000000
--- a/drivers/net/wireless/ath/ath6kl/debugfs_pri.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright (c) 2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifdef CONFIG_ATH6KL_DEBUG
-
-#include <linux/skbuff.h>
-#include <linux/export.h>
-#include "core.h"
-#include "wmi.h"
-#include "debug.h"
-#include "debugfs_pri.h"
-
-struct wmi_set_inact_period_cmd {
- __le32 inact_period;
- u8 num_null_func;
-} __packed;
-
-static inline struct sk_buff *ath6kl_wmi_get_new_buf_pri(u32 size)
-{
- struct sk_buff *skb;
-
- skb = ath6kl_buf_alloc(size);
- if (!skb)
- return NULL;
-
- skb_put(skb, size);
- if (size)
- memset(skb->data, 0, size);
-
- return skb;
-}
-
-static int ath6kl_wmi_inact_period_cmd(struct wmi *wmi, u32 inact_period,
- u8 num_null_func)
-{
- struct sk_buff *skb;
- struct wmi_set_inact_period_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf_pri(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_inact_period_cmd *) skb->data;
- cmd->inact_period = cpu_to_le32(inact_period);
- cmd->num_null_func = num_null_func;
-
- ret = ath6kl_wmi_cmd_send(wmi, 0, skb, WMI_AP_CONN_INACT_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-static int ath6kl_wmi_set_err_report_bitmask(struct wmi *wmi, u8 if_idx,
- u32 mask)
-{
- struct sk_buff *skb;
- struct wmi_tgt_err_report_mask *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf_pri(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_tgt_err_report_mask *) skb->data;
- cmd->mask = cpu_to_le32(mask);
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb,
- WMI_TARGET_ERROR_REPORT_BITMASK_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_error_report_event(struct wmi *wmi, u8 *data, int len)
-{
- struct wmi_tgt_err_report_evt *report;
-
- if (len < sizeof(*report))
- return -EINVAL;
-
- report = (struct wmi_tgt_err_report_evt *) data;
- ath6kl_dbg(ATH6KL_DBG_WMI, "Reason for error report: 0x%x\n",
- report->err_val);
-
- return 0;
-}
-
-static int ath6kl_debugfs_open_pri(struct inode *inode, struct file *file)
-{
- file->private_data = inode->i_private;
- return 0;
-}
-
-static ssize_t ath6kl_inact_period_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- int ret;
- char buf[32];
- u32 inact_period;
- size_t len;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
-
- buf[len] = '\0';
- if (kstrtou32(buf, 0, &inact_period))
- return -EINVAL;
-
- ret = ath6kl_wmi_inact_period_cmd(ar->wmi, inact_period, 0);
-
- if (ret)
- return ret;
-
- return count;
-}
-
-static const struct file_operations fops_inact_period = {
- .write = ath6kl_inact_period_write,
- .open = ath6kl_debugfs_open_pri,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_bmisstime_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct ath6kl_vif *vif;
- u16 bmiss_time;
- char buf[32];
- ssize_t len;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- len = min(count, sizeof(buf) - 1);
- if (copy_from_user(buf, user_buf, len))
- return -EFAULT;
-
- buf[len] = '\0';
- if (kstrtou16(buf, 0, &bmiss_time))
- return -EINVAL;
-
- vif->bmiss_time_t = bmiss_time;
-
- /* Enable error report event for bmiss */
- ath6kl_wmi_set_err_report_bitmask(ar->wmi, vif->fw_vif_idx,
- ATH6KL_ERR_REPORT_BMISS_MASK);
-
- ath6kl_wmi_bmisstime_cmd(ar->wmi, vif->fw_vif_idx,
- vif->bmiss_time_t, 0);
- return count;
-}
-
-static ssize_t ath6kl_bmisstime_read(struct file *file,
- char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct ath6kl_vif *vif;
- char buf[32];
- int len;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- len = scnprintf(buf, sizeof(buf), "%u\n", vif->bmiss_time_t);
-
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
-}
-
-static const struct file_operations fops_bmisstime = {
- .read = ath6kl_bmisstime_read,
- .write = ath6kl_bmisstime_write,
- .open = ath6kl_debugfs_open_pri,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-static ssize_t ath6kl_scan_ctrl_flag_write(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ath6kl *ar = file->private_data;
- struct ath6kl_vif *vif;
- u8 ctrl_flag;
- int ret;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return -EIO;
-
- ret = kstrtou8_from_user(user_buf, count, 0, &ctrl_flag);
- if (ret)
- return ret;
-
- if (ctrl_flag > ATH6KL_MAX_SCAN_CTRL_FLAGS)
- ctrl_flag = ATH6KL_DEFAULT_SCAN_CTRL_FLAGS;
-
- vif->scan_ctrl_flag = ctrl_flag;
- ath6kl_wmi_scanparams_cmd(ar->wmi, 0, 0, 0, vif->bg_scan_period, 0, 0,
- 0, 3, ctrl_flag, 0, 0);
-
- return count;
-}
-
-static const struct file_operations fops_scanctrl_flag = {
- .write = ath6kl_scan_ctrl_flag_write,
- .open = ath6kl_debugfs_open_pri,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-int ath6kl_init_debugfs_pri(struct ath6kl *ar)
-{
- debugfs_create_file("inactivity_period", S_IWUSR, ar->debugfs_phy, ar,
- &fops_inact_period);
-
- debugfs_create_file("bmiss_time", S_IRUSR | S_IWUSR, ar->debugfs_phy,
- ar, &fops_bmisstime);
-
- debugfs_create_file("scan_ctrl_flag", S_IRUSR, ar->debugfs_phy, ar,
- &fops_scanctrl_flag);
-
- return 0;
-}
-
-#endif
diff --git a/drivers/net/wireless/ath/ath6kl/debugfs_pri.h b/drivers/net/wireless/ath/ath6kl/debugfs_pri.h
deleted file mode 100644
index de862f2..0000000
--- a/drivers/net/wireless/ath/ath6kl/debugfs_pri.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef DEBUG_PRI_H
-#define DEBUG_PRI_H
-
-#ifdef CONFIG_ATH6KL_DEBUG
-
-#define ATH6KL_ERR_REPORT_BMISS_MASK BIT(3)
-
-struct wmi_tgt_err_report_mask {
- __le32 mask;
-};
-
-struct wmi_tgt_err_report_evt {
- __le32 err_val;
-} __packed;
-
-#define ATH6KL_DEFAULT_SCAN_CTRL_FLAGS (CONNECT_SCAN_CTRL_FLAGS | \
- SCAN_CONNECTED_CTRL_FLAGS | \
- ACTIVE_SCAN_CTRL_FLAGS | \
- ROAM_SCAN_CTRL_FLAGS | \
- ENABLE_AUTO_CTRL_FLAGS)
-
-#define ATH6KL_MAX_SCAN_CTRL_FLAGS 0x7F
-
-int ath6kl_wmi_error_report_event(struct wmi *wmi, u8 *data, int len);
-int ath6kl_init_debugfs_pri(struct ath6kl *ar);
-#endif
-#endif
diff --git a/drivers/net/wireless/ath/ath6kl/hif-ops.h b/drivers/net/wireless/ath/ath6kl/hif-ops.h
deleted file mode 100755
index fb2b196..0000000
--- a/drivers/net/wireless/ath/ath6kl/hif-ops.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- * Copyright (c) 2011 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef HIF_OPS_H
-#define HIF_OPS_H
-
-#include "hif.h"
-#include "debug.h"
-
-static inline int hif_read_write_sync(struct ath6kl *ar, u32 addr, u8 *buf,
- u32 len, u32 request)
-{
- ath6kl_dbg(ATH6KL_DBG_HIF,
- "hif %s sync addr 0x%x buf 0x%p len %d request 0x%x\n",
- (request & HIF_WRITE) ? "write" : "read",
- addr, buf, len, request);
-
- return ar->hif_ops->read_write_sync(ar, addr, buf, len, request);
-}
-
-static inline int hif_write_async(struct ath6kl *ar, u32 address, u8 *buffer,
- u32 length, u32 request,
- struct htc_packet *packet)
-{
- ath6kl_dbg(ATH6KL_DBG_HIF,
- "hif write async addr 0x%x buf 0x%p len %d request 0x%x\n",
- address, buffer, length, request);
-
- return ar->hif_ops->write_async(ar, address, buffer, length,
- request, packet);
-}
-static inline void ath6kl_hif_irq_enable(struct ath6kl *ar)
-{
- ath6kl_dbg(ATH6KL_DBG_HIF, "hif irq enable\n");
-
- return ar->hif_ops->irq_enable(ar);
-}
-
-static inline void ath6kl_hif_irq_disable(struct ath6kl *ar)
-{
- ath6kl_dbg(ATH6KL_DBG_HIF, "hif irq disable\n");
-
- return ar->hif_ops->irq_disable(ar);
-}
-
-static inline struct hif_scatter_req *hif_scatter_req_get(struct ath6kl *ar)
-{
- return ar->hif_ops->scatter_req_get(ar);
-}
-
-static inline void hif_scatter_req_add(struct ath6kl *ar,
- struct hif_scatter_req *s_req)
-{
- return ar->hif_ops->scatter_req_add(ar, s_req);
-}
-
-static inline int ath6kl_hif_enable_scatter(struct ath6kl *ar)
-{
- return ar->hif_ops->enable_scatter(ar);
-}
-
-static inline int ath6kl_hif_scat_req_rw(struct ath6kl *ar,
- struct hif_scatter_req *scat_req)
-{
- return ar->hif_ops->scat_req_rw(ar, scat_req);
-}
-
-static inline void ath6kl_hif_cleanup_scatter(struct ath6kl *ar)
-{
- return ar->hif_ops->cleanup_scatter(ar);
-}
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-static inline int ath6kl_hif_suspend(struct ath6kl *ar,
- struct cfg80211_wowlan *wow)
-{
- ath6kl_dbg(ATH6KL_DBG_HIF, "hif suspend\n");
-
- return ar->hif_ops->suspend(ar, wow);
-}
-#endif
-
-/*
- * Read from the ATH6KL through its diagnostic window. No cooperation from
- * the Target is required for this.
- */
-static inline int ath6kl_hif_diag_read32(struct ath6kl *ar, u32 address,
- u32 *value)
-{
- return ar->hif_ops->diag_read32(ar, address, value);
-}
-
-/*
- * Write to the ATH6KL through its diagnostic window. No cooperation from
- * the Target is required for this.
- */
-static inline int ath6kl_hif_diag_write32(struct ath6kl *ar, u32 address,
- __le32 value)
-{
- return ar->hif_ops->diag_write32(ar, address, value);
-}
-
-static inline int ath6kl_hif_bmi_read(struct ath6kl *ar, u8 *buf, u32 len)
-{
- return ar->hif_ops->bmi_read(ar, buf, len);
-}
-
-static inline int ath6kl_hif_bmi_write(struct ath6kl *ar, u8 *buf, u32 len)
-{
- return ar->hif_ops->bmi_write(ar, buf, len);
-}
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-static inline int ath6kl_hif_resume(struct ath6kl *ar)
-{
- ath6kl_dbg(ATH6KL_DBG_HIF, "hif resume\n");
-
- return ar->hif_ops->resume(ar);
-}
-#endif
-
-static inline int ath6kl_hif_power_on(struct ath6kl *ar)
-{
- ath6kl_dbg(ATH6KL_DBG_HIF, "hif power on\n");
-
- return ar->hif_ops->power_on(ar);
-}
-
-static inline int ath6kl_hif_power_off(struct ath6kl *ar)
-{
- ath6kl_dbg(ATH6KL_DBG_HIF, "hif power off\n");
-
- return ar->hif_ops->power_off(ar);
-}
-
-static inline void ath6kl_hif_stop(struct ath6kl *ar)
-{
- ath6kl_dbg(ATH6KL_DBG_HIF, "hif stop\n");
-
- ar->hif_ops->stop(ar);
-}
-
-#endif
diff --git a/drivers/net/wireless/ath/ath6kl/hif.c b/drivers/net/wireless/ath/ath6kl/hif.c
deleted file mode 100755
index 2793ab6..0000000
--- a/drivers/net/wireless/ath/ath6kl/hif.c
+++ /dev/null
@@ -1,791 +0,0 @@
-/*
- * Copyright (c) 2007-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-#include "hif.h"
-
-#include "core.h"
-#include "target.h"
-#include "hif-ops.h"
-#include "debug.h"
-
-#define MAILBOX_FOR_BLOCK_SIZE 1
-
-#define ATH6KL_TIME_QUANTUM 10 /* in ms */
-
-static int ath6kl_hif_cp_scat_dma_buf(struct hif_scatter_req *req,
- bool from_dma)
-{
- u8 *buf;
- int i;
-
- buf = req->virt_dma_buf;
-
- for (i = 0; i < req->scat_entries; i++) {
-
- if (from_dma)
- memcpy(req->scat_list[i].buf, buf,
- req->scat_list[i].len);
- else
- memcpy(buf, req->scat_list[i].buf,
- req->scat_list[i].len);
-
- buf += req->scat_list[i].len;
- }
-
- return 0;
-}
-
-int ath6kl_hif_rw_comp_handler(void *context, int status)
-{
- struct htc_packet *packet = context;
-
- ath6kl_dbg(ATH6KL_DBG_HIF, "hif rw completion pkt 0x%p status %d\n",
- packet, status);
-
- packet->status = status;
- packet->completion(packet->context, packet);
-
- return 0;
-}
-#define REG_DUMP_COUNT_AR6003 60
-#define REGISTER_DUMP_LEN_MAX 60
-
-static void ath6kl_hif_dump_fw_crash(struct ath6kl *ar)
-{
- __le32 regdump_val[REGISTER_DUMP_LEN_MAX];
- u32 i, address, regdump_addr = 0;
- int ret;
-
- if (ar->target_type != TARGET_TYPE_AR6003)
- return;
-
- /* the reg dump pointer is copied to the host interest area */
- address = ath6kl_get_hi_item_addr(ar, HI_ITEM(hi_failure_state));
- address = TARG_VTOP(ar->target_type, address);
-
- /* read RAM location through diagnostic window */
- ret = ath6kl_diag_read32(ar, address, &regdump_addr);
-
- if (ret || !regdump_addr) {
- ath6kl_warn("failed to get ptr to register dump area: %d\n",
- ret);
- return;
- }
-
- ath6kl_dbg(ATH6KL_DBG_IRQ, "register dump data address 0x%x\n",
- regdump_addr);
- regdump_addr = TARG_VTOP(ar->target_type, regdump_addr);
-
- /* fetch register dump data */
- ret = ath6kl_diag_read(ar, regdump_addr, (u8 *)&regdump_val[0],
- REG_DUMP_COUNT_AR6003 * (sizeof(u32)));
- if (ret) {
- ath6kl_warn("failed to get register dump: %d\n", ret);
- return;
- }
-
- ath6kl_info("crash dump:\n");
- ath6kl_info("hw 0x%x fw %s\n", ar->wiphy->hw_version,
- ar->wiphy->fw_version);
-
- BUILD_BUG_ON(REG_DUMP_COUNT_AR6003 % 4);
-
- for (i = 0; i < REG_DUMP_COUNT_AR6003; i += 4) {
- ath6kl_info("%d: 0x%8.8x 0x%8.8x 0x%8.8x 0x%8.8x\n",
- i,
- le32_to_cpu(regdump_val[i]),
- le32_to_cpu(regdump_val[i + 1]),
- le32_to_cpu(regdump_val[i + 2]),
- le32_to_cpu(regdump_val[i + 3]));
- }
-
-}
-
-static int ath6kl_hif_proc_dbg_intr(struct ath6kl_device *dev)
-{
- u32 dummy;
- int ret;
- struct ath6kl_vif *vif;
-
- vif = ath6kl_vif_first(dev->ar);
-
- ath6kl_warn("firmware crashed\n");
-
- /*
- * read counter to clear the interrupt, the debug error interrupt is
- * counter 0.
- */
- ret = hif_read_write_sync(dev->ar, COUNT_DEC_ADDRESS,
- (u8 *)&dummy, 4, HIF_RD_SYNC_BYTE_INC);
- if (ret)
- ath6kl_warn("Failed to clear debug interrupt: %d\n", ret);
-
- ath6kl_hif_dump_fw_crash(dev->ar);
- ath6kl_read_fwlogs(dev->ar);
-
- cfg80211_priv_event(vif->ndev, "HANG", GFP_ATOMIC);
-
- return ret;
-}
-
-/* mailbox recv message polling */
-int ath6kl_hif_poll_mboxmsg_rx(struct ath6kl_device *dev, u32 *lk_ahd,
- int timeout)
-{
- struct ath6kl_irq_proc_registers *rg;
- int status = 0, i;
- u8 htc_mbox = 1 << HTC_MAILBOX;
-
- for (i = timeout / ATH6KL_TIME_QUANTUM; i > 0; i--) {
- /* this is the standard HIF way, load the reg table */
- status = hif_read_write_sync(dev->ar, HOST_INT_STATUS_ADDRESS,
- (u8 *) &dev->irq_proc_reg,
- sizeof(dev->irq_proc_reg),
- HIF_RD_SYNC_BYTE_INC);
-
- if (status) {
- ath6kl_err("failed to read reg table\n");
- return status;
- }
-
- /* check for MBOX data and valid lookahead */
- if (dev->irq_proc_reg.host_int_status & htc_mbox) {
- if (dev->irq_proc_reg.rx_lkahd_valid &
- htc_mbox) {
- /*
- * Mailbox has a message and the look ahead
- * is valid.
- */
- rg = &dev->irq_proc_reg;
- *lk_ahd =
- le32_to_cpu(rg->rx_lkahd[HTC_MAILBOX]);
- break;
- }
- }
-
- /* delay a little */
- mdelay(ATH6KL_TIME_QUANTUM);
- ath6kl_dbg(ATH6KL_DBG_HIF, "hif retry mbox poll try %d\n", i);
- }
-
- if (i == 0) {
- ath6kl_err("timeout waiting for recv message\n");
- status = -ETIME;
- /* check if the target asserted */
- if (dev->irq_proc_reg.counter_int_status &
- ATH6KL_TARGET_DEBUG_INTR_MASK)
- /*
- * Target failure handler will be called in case of
- * an assert.
- */
- ath6kl_hif_proc_dbg_intr(dev);
- }
-
- return status;
-}
-
-/*
- * Disable packet reception (used in case the host runs out of buffers)
- * using the interrupt enable registers through the host I/F
- */
-int ath6kl_hif_rx_control(struct ath6kl_device *dev, bool enable_rx)
-{
- struct ath6kl_irq_enable_reg regs;
- int status = 0;
-
- ath6kl_dbg(ATH6KL_DBG_HIF, "hif rx %s\n",
- enable_rx ? "enable" : "disable");
-
- /* take the lock to protect interrupt enable shadows */
- spin_lock_bh(&dev->lock);
-
- if (enable_rx)
- dev->irq_en_reg.int_status_en |=
- SM(INT_STATUS_ENABLE_MBOX_DATA, 0x01);
- else
- dev->irq_en_reg.int_status_en &=
- ~SM(INT_STATUS_ENABLE_MBOX_DATA, 0x01);
-
- memcpy(&regs, &dev->irq_en_reg, sizeof(regs));
-
- spin_unlock_bh(&dev->lock);
-
- status = hif_read_write_sync(dev->ar, INT_STATUS_ENABLE_ADDRESS,
- &regs.int_status_en,
- sizeof(struct ath6kl_irq_enable_reg),
- HIF_WR_SYNC_BYTE_INC);
-
- return status;
-}
-
-int ath6kl_hif_submit_scat_req(struct ath6kl_device *dev,
- struct hif_scatter_req *scat_req, bool read)
-{
- int status = 0;
-
- if (read) {
- scat_req->req = HIF_RD_SYNC_BLOCK_FIX;
- scat_req->addr = dev->ar->mbox_info.htc_addr;
- } else {
- scat_req->req = HIF_WR_ASYNC_BLOCK_INC;
-
- scat_req->addr =
- (scat_req->len > HIF_MBOX_WIDTH) ?
- dev->ar->mbox_info.htc_ext_addr :
- dev->ar->mbox_info.htc_addr;
- }
-
- ath6kl_dbg(ATH6KL_DBG_HIF,
- "hif submit scatter request entries %d len %d mbox 0x%x %s %s\n",
- scat_req->scat_entries, scat_req->len,
- scat_req->addr, !read ? "async" : "sync",
- (read) ? "rd" : "wr");
-
- if (!read && scat_req->virt_scat) {
- status = ath6kl_hif_cp_scat_dma_buf(scat_req, false);
- if (status) {
- scat_req->status = status;
- scat_req->complete(dev->ar->htc_target, scat_req);
- return 0;
- }
- }
-
- status = ath6kl_hif_scat_req_rw(dev->ar, scat_req);
-
- if (read) {
- /* in sync mode, we can touch the scatter request */
- scat_req->status = status;
- if (!status && scat_req->virt_scat)
- scat_req->status =
- ath6kl_hif_cp_scat_dma_buf(scat_req, true);
- }
-
- return status;
-}
-
-static int ath6kl_hif_proc_counter_intr(struct ath6kl_device *dev)
-{
- u8 counter_int_status;
-
- ath6kl_dbg(ATH6KL_DBG_IRQ, "counter interrupt\n");
-
- counter_int_status = dev->irq_proc_reg.counter_int_status &
- dev->irq_en_reg.cntr_int_status_en;
-
- ath6kl_dbg(ATH6KL_DBG_IRQ,
- "valid interrupt source(s) in COUNTER_INT_STATUS: 0x%x\n",
- counter_int_status);
-
- /*
- * NOTE: other modules like GMBOX may use the counter interrupt for
- * credit flow control on other counters, we only need to check for
- * the debug assertion counter interrupt.
- */
- if (counter_int_status & ATH6KL_TARGET_DEBUG_INTR_MASK)
- return ath6kl_hif_proc_dbg_intr(dev);
-
- return 0;
-}
-
-static int ath6kl_hif_proc_err_intr(struct ath6kl_device *dev)
-{
- int status;
- u8 error_int_status;
- u8 reg_buf[4];
-
- ath6kl_dbg(ATH6KL_DBG_IRQ, "error interrupt\n");
-
- error_int_status = dev->irq_proc_reg.error_int_status & 0x0F;
- if (!error_int_status) {
- WARN_ON(1);
- return -EIO;
- }
-
- ath6kl_dbg(ATH6KL_DBG_IRQ,
- "valid interrupt source(s) in ERROR_INT_STATUS: 0x%x\n",
- error_int_status);
-
- if (MS(ERROR_INT_STATUS_WAKEUP, error_int_status))
- ath6kl_dbg(ATH6KL_DBG_IRQ, "error : wakeup\n");
-
- if (MS(ERROR_INT_STATUS_RX_UNDERFLOW, error_int_status))
- ath6kl_err("rx underflow\n");
-
- if (MS(ERROR_INT_STATUS_TX_OVERFLOW, error_int_status))
- ath6kl_err("tx overflow\n");
-
- /* Clear the interrupt */
- dev->irq_proc_reg.error_int_status &= ~error_int_status;
-
- /* set W1C value to clear the interrupt, this hits the register first */
- reg_buf[0] = error_int_status;
- reg_buf[1] = 0;
- reg_buf[2] = 0;
- reg_buf[3] = 0;
-
- status = hif_read_write_sync(dev->ar, ERROR_INT_STATUS_ADDRESS,
- reg_buf, 4, HIF_WR_SYNC_BYTE_FIX);
-
- if (status)
- WARN_ON(1);
-
- return status;
-}
-
-static int ath6kl_hif_proc_cpu_intr(struct ath6kl_device *dev)
-{
- int status;
- u8 cpu_int_status;
- u8 reg_buf[4];
-
- ath6kl_dbg(ATH6KL_DBG_IRQ, "cpu interrupt\n");
-
- cpu_int_status = dev->irq_proc_reg.cpu_int_status &
- dev->irq_en_reg.cpu_int_status_en;
- if (!cpu_int_status) {
- WARN_ON(1);
- return -EIO;
- }
-
- ath6kl_dbg(ATH6KL_DBG_IRQ,
- "valid interrupt source(s) in CPU_INT_STATUS: 0x%x\n",
- cpu_int_status);
-
- /* Clear the interrupt */
- dev->irq_proc_reg.cpu_int_status &= ~cpu_int_status;
-
- /*
- * Set up the register transfer buffer to hit the register 4 times ,
- * this is done to make the access 4-byte aligned to mitigate issues
- * with host bus interconnects that restrict bus transfer lengths to
- * be a multiple of 4-bytes.
- */
-
- /* set W1C value to clear the interrupt, this hits the register first */
- reg_buf[0] = cpu_int_status;
- /* the remaining are set to zero which have no-effect */
- reg_buf[1] = 0;
- reg_buf[2] = 0;
- reg_buf[3] = 0;
-
- status = hif_read_write_sync(dev->ar, CPU_INT_STATUS_ADDRESS,
- reg_buf, 4, HIF_WR_SYNC_BYTE_FIX);
-
- if (status)
- WARN_ON(1);
-
- return status;
-}
-
-/* process pending interrupts synchronously */
-static int proc_pending_irqs(struct ath6kl_device *dev, bool *done)
-{
- struct ath6kl_irq_proc_registers *rg;
- int status = 0;
- u8 host_int_status = 0;
- u32 lk_ahd = 0;
- u8 htc_mbox = 1 << HTC_MAILBOX;
- struct ath6kl_vif *vif;
- vif = ath6kl_vif_first(dev->ar);
- ath6kl_dbg(ATH6KL_DBG_IRQ, "proc_pending_irqs: (dev: 0x%p)\n", dev);
-
- /*
- * NOTE: HIF implementation guarantees that the context of this
- * call allows us to perform SYNCHRONOUS I/O, that is we can block,
- * sleep or call any API that can block or switch thread/task
- * contexts. This is a fully schedulable context.
- */
-#ifdef CONFIG_MACH_PX
- if (vif->sdio_remove == true) {
- *done = true;
- goto out;
- }
-#endif
- /*
- * Process pending intr only when int_status_en is clear, it may
- * result in unnecessary bus transaction otherwise. Target may be
- * unresponsive at the time.
- */
- if (dev->irq_en_reg.int_status_en) {
- /*
- * Read the first 28 bytes of the HTC register table. This
- * will yield us the value of different int status
- * registers and the lookahead registers.
- *
- * length = sizeof(int_status) + sizeof(cpu_int_status)
- * + sizeof(error_int_status) +
- * sizeof(counter_int_status) +
- * sizeof(mbox_frame) + sizeof(rx_lkahd_valid)
- * + sizeof(hole) + sizeof(rx_lkahd) +
- * sizeof(int_status_en) +
- * sizeof(cpu_int_status_en) +
- * sizeof(err_int_status_en) +
- * sizeof(cntr_int_status_en);
- */
- status = hif_read_write_sync(dev->ar, HOST_INT_STATUS_ADDRESS,
- (u8 *) &dev->irq_proc_reg,
- sizeof(dev->irq_proc_reg),
- HIF_RD_SYNC_BYTE_INC);
- if (status)
- goto out;
-
- if (AR_DBG_LVL_CHECK(ATH6KL_DBG_IRQ))
- ath6kl_dump_registers(dev, &dev->irq_proc_reg,
- &dev->irq_en_reg);
-
- /* Update only those registers that are enabled */
- host_int_status = dev->irq_proc_reg.host_int_status &
- dev->irq_en_reg.int_status_en;
-
- /* Look at mbox status */
- if (host_int_status & htc_mbox) {
- /*
- * Mask out pending mbox value, we use "lookAhead as
- * the real flag for mbox processing.
- */
- host_int_status &= ~htc_mbox;
- if (dev->irq_proc_reg.rx_lkahd_valid &
- htc_mbox) {
- rg = &dev->irq_proc_reg;
- lk_ahd = le32_to_cpu(rg->rx_lkahd[HTC_MAILBOX]);
-
- if (vif->force_reload == true) {
- lk_ahd = 0;
- }
- if (!lk_ahd) {
- ath6kl_err("lookAhead is zero! force_reload = %d\n", vif->force_reload);
-#ifdef CONFIG_MACH_PX
- cfg80211_priv_event(vif->ndev, "HANG", GFP_ATOMIC);
- ath6kl_hif_rx_control(dev, false);
- ssleep(3);
- status = -ENOMEM;
-#endif
- }
- }
- }
- }
-
- if (!host_int_status && !lk_ahd) {
- *done = true;
- goto out;
- }
-
- if (lk_ahd) {
- int fetched = 0;
-
- ath6kl_dbg(ATH6KL_DBG_IRQ,
- "pending mailbox msg, lk_ahd: 0x%X\n", lk_ahd);
- /*
- * Mailbox Interrupt, the HTC layer may issue async
- * requests to empty the mailbox. When emptying the recv
- * mailbox we use the async handler above called from the
- * completion routine of the callers read request. This can
- * improve performance by reducing context switching when
- * we rapidly pull packets.
- */
- status = ath6kl_htc_rxmsg_pending_handler(dev->htc_cnxt,
- lk_ahd, &fetched);
-#ifdef CONFIG_MACH_PX
- if (status && status != -ECANCELED) {
- cfg80211_priv_event(vif->ndev, "HANG", GFP_ATOMIC);
- ath6kl_hif_rx_control(dev, false);
- ssleep(3);
- goto out;
- }
-#else
- if (status)
- goto out;
-#endif
- if (!fetched)
- /*
- * HTC could not pull any messages out due to lack
- * of resources.
- */
- dev->htc_cnxt->chk_irq_status_cnt = 0;
- }
-
- /* now handle the rest of them */
- ath6kl_dbg(ATH6KL_DBG_IRQ,
- "valid interrupt source(s) for other interrupts: 0x%x\n",
- host_int_status);
-
- if (MS(HOST_INT_STATUS_CPU, host_int_status)) {
- /* CPU Interrupt */
- status = ath6kl_hif_proc_cpu_intr(dev);
- if (status)
- goto out;
- }
-
- if (MS(HOST_INT_STATUS_ERROR, host_int_status)) {
- /* Error Interrupt */
- status = ath6kl_hif_proc_err_intr(dev);
- if (status)
- goto out;
- }
-
- if (MS(HOST_INT_STATUS_COUNTER, host_int_status))
- /* Counter Interrupt */
- status = ath6kl_hif_proc_counter_intr(dev);
-
-out:
- /*
- * An optimization to bypass reading the IRQ status registers
- * unecessarily which can re-wake the target, if upper layers
- * determine that we are in a low-throughput mode, we can rely on
- * taking another interrupt rather than re-checking the status
- * registers which can re-wake the target.
- *
- * NOTE : for host interfaces that makes use of detecting pending
- * mbox messages at hif can not use this optimization due to
- * possible side effects, SPI requires the host to drain all
- * messages from the mailbox before exiting the ISR routine.
- */
-
- ath6kl_dbg(ATH6KL_DBG_IRQ,
- "bypassing irq status re-check, forcing done\n");
-
- if (!dev->htc_cnxt->chk_irq_status_cnt)
- *done = true;
-
- ath6kl_dbg(ATH6KL_DBG_IRQ,
- "proc_pending_irqs: (done:%d, status=%d\n", *done, status);
-
- return status;
-}
-
-/* interrupt handler, kicks off all interrupt processing */
-int ath6kl_hif_intr_bh_handler(struct ath6kl *ar)
-{
-#ifdef CONFIG_MACH_PX
- struct ath6kl_device *dev;
- unsigned long timeout;
- int status = 0;
- bool done = false;
-
- if ((ar != NULL) && (ar->htc_target != NULL) && (ar->htc_target->dev != NULL))
- dev = ar->htc_target->dev;
- else
- return status;
-#else
- struct ath6kl_device *dev = ar->htc_target->dev;
- unsigned long timeout;
- int status = 0;
- bool done = false;
-#endif
-
- /*
- * Reset counter used to flag a re-scan of IRQ status registers on
- * the target.
- */
- dev->htc_cnxt->chk_irq_status_cnt = 0;
-
- /*
- * IRQ processing is synchronous, interrupt status registers can be
- * re-read.
- */
- timeout = jiffies + msecs_to_jiffies(ATH6KL_HIF_COMMUNICATION_TIMEOUT);
-#ifdef CONFIG_MACH_PX
- while (time_before(jiffies, timeout) && !done && (dev != NULL))
-#else
- while (time_before(jiffies, timeout) && !done)
-#endif
- {
- status = proc_pending_irqs(dev, &done);
- if (status)
- break;
- }
-
- return status;
-}
-
-static int ath6kl_hif_enable_intrs(struct ath6kl_device *dev)
-{
- struct ath6kl_irq_enable_reg regs;
- int status;
-
- spin_lock_bh(&dev->lock);
-
- /* Enable all but ATH6KL CPU interrupts */
- dev->irq_en_reg.int_status_en =
- SM(INT_STATUS_ENABLE_ERROR, 0x01) |
- SM(INT_STATUS_ENABLE_CPU, 0x01) |
- SM(INT_STATUS_ENABLE_COUNTER, 0x01);
-
- /*
- * NOTE: There are some cases where HIF can do detection of
- * pending mbox messages which is disabled now.
- */
- dev->irq_en_reg.int_status_en |= SM(INT_STATUS_ENABLE_MBOX_DATA, 0x01);
-
- /* Set up the CPU Interrupt status Register */
- dev->irq_en_reg.cpu_int_status_en = 0;
-
- /* Set up the Error Interrupt status Register */
- dev->irq_en_reg.err_int_status_en =
- SM(ERROR_STATUS_ENABLE_RX_UNDERFLOW, 0x01) |
- SM(ERROR_STATUS_ENABLE_TX_OVERFLOW, 0x1);
-
- /*
- * Enable Counter interrupt status register to get fatal errors for
- * debugging.
- */
- dev->irq_en_reg.cntr_int_status_en = SM(COUNTER_INT_STATUS_ENABLE_BIT,
- ATH6KL_TARGET_DEBUG_INTR_MASK);
- memcpy(&regs, &dev->irq_en_reg, sizeof(regs));
-
- spin_unlock_bh(&dev->lock);
-
- status = hif_read_write_sync(dev->ar, INT_STATUS_ENABLE_ADDRESS,
- &regs.int_status_en, sizeof(regs),
- HIF_WR_SYNC_BYTE_INC);
-
- if (status)
- ath6kl_err("failed to update interrupt ctl reg err: %d\n",
- status);
-
- return status;
-}
-
-int ath6kl_hif_disable_intrs(struct ath6kl_device *dev)
-{
- struct ath6kl_irq_enable_reg regs;
-
- spin_lock_bh(&dev->lock);
- /* Disable all interrupts */
- dev->irq_en_reg.int_status_en = 0;
- dev->irq_en_reg.cpu_int_status_en = 0;
- dev->irq_en_reg.err_int_status_en = 0;
- dev->irq_en_reg.cntr_int_status_en = 0;
- memcpy(&regs, &dev->irq_en_reg, sizeof(regs));
- spin_unlock_bh(&dev->lock);
-
- return hif_read_write_sync(dev->ar, INT_STATUS_ENABLE_ADDRESS,
- &regs.int_status_en, sizeof(regs),
- HIF_WR_SYNC_BYTE_INC);
-}
-
-/* enable device interrupts */
-int ath6kl_hif_unmask_intrs(struct ath6kl_device *dev)
-{
- int status = 0;
-
- /*
- * Make sure interrupt are disabled before unmasking at the HIF
- * layer. The rationale here is that between device insertion
- * (where we clear the interrupts the first time) and when HTC
- * is finally ready to handle interrupts, other software can perform
- * target "soft" resets. The ATH6KL interrupt enables reset back to an
- * "enabled" state when this happens.
- */
- ath6kl_hif_disable_intrs(dev);
-
- /* unmask the host controller interrupts */
- ath6kl_hif_irq_enable(dev->ar);
- status = ath6kl_hif_enable_intrs(dev);
-
- return status;
-}
-
-/* disable all device interrupts */
-int ath6kl_hif_mask_intrs(struct ath6kl_device *dev)
-{
- /*
- * Mask the interrupt at the HIF layer to avoid any stray interrupt
- * taken while we zero out our shadow registers in
- * ath6kl_hif_disable_intrs().
- */
- ath6kl_hif_irq_disable(dev->ar);
-
- return ath6kl_hif_disable_intrs(dev);
-}
-
-int ath6kl_hif_setup(struct ath6kl_device *dev)
-{
- int status = 0;
-
- spin_lock_init(&dev->lock);
-
- /*
- * NOTE: we actually get the block size of a mailbox other than 0,
- * for SDIO the block size on mailbox 0 is artificially set to 1.
- * So we use the block size that is set for the other 3 mailboxes.
- */
- dev->htc_cnxt->block_sz = dev->ar->mbox_info.block_size;
-
- /* must be a power of 2 */
- if ((dev->htc_cnxt->block_sz & (dev->htc_cnxt->block_sz - 1)) != 0) {
- WARN_ON(1);
- status = -EINVAL;
- goto fail_setup;
- }
-
- /* assemble mask, used for padding to a block */
- dev->htc_cnxt->block_mask = dev->htc_cnxt->block_sz - 1;
-
- ath6kl_dbg(ATH6KL_DBG_HIF, "hif block size %d mbox addr 0x%x\n",
- dev->htc_cnxt->block_sz, dev->ar->mbox_info.htc_addr);
-
- /* usb doesn't support enabling interrupts */
- /* FIXME: remove check once USB support is implemented */
- if (dev->ar->hif_type == ATH6KL_HIF_TYPE_USB)
- return 0;
-
- status = ath6kl_hif_disable_intrs(dev);
-
-fail_setup:
- return status;
-
-}
-
-int ath6kl_hif_wait_for_pending_recv(struct ath6kl *ar)
-{
- int loop_cnt = 5;
- u8 host_int_status;
- int status = 0;
-
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
-
- do {
- int irq_cnt = 10;
- while (atomic_read(&ar_sdio->irq_handling) && --irq_cnt > 0) {
- /* wait until irq handler finished all the jobs */
- schedule_timeout_interruptible(HZ / 10);
- }
- /* check if there is any pending irq due to force done */
- host_int_status = 0;
- status = hif_read_write_sync(ar, HOST_INT_STATUS_ADDRESS,
- (u8 *)&host_int_status, sizeof(host_int_status),
- HIF_RD_SYNC_BYTE_INC);
- /* force it to query again due to resources issue*/
- if (status)
- host_int_status = 1;
- else
- host_int_status = (host_int_status & (1 << 0));
-
- if (host_int_status) {
- /* Wait until irq handler finishes its job */
- schedule_timeout_interruptible(1);
- }
- } while (host_int_status && --loop_cnt > 0);
-
- if (host_int_status || loop_cnt == 0) {
- ath6kl_err("%s(), Unable clear up pending IRQ"
- "before the system suspended\n", __func__);
- return -1;
- }
-
- return 0;
-}
diff --git a/drivers/net/wireless/ath/ath6kl/hif.h b/drivers/net/wireless/ath/ath6kl/hif.h
deleted file mode 100755
index 92ec268..0000000
--- a/drivers/net/wireless/ath/ath6kl/hif.h
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- * Copyright (c) 2011 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef HIF_H
-#define HIF_H
-
-#include "common.h"
-#include "core.h"
-
-#include <linux/scatterlist.h>
-
-#define BUS_REQUEST_MAX_NUM 64
-#define HIF_MBOX_BLOCK_SIZE 128
-#define HIF_MBOX0_BLOCK_SIZE 1
-
-#define HIF_DMA_BUFFER_SIZE (32 * 1024)
-#define CMD53_FIXED_ADDRESS 1
-#define CMD53_INCR_ADDRESS 2
-
-#define MAX_SCATTER_REQUESTS 4
-#define MAX_SCATTER_ENTRIES_PER_REQ 16
-#define MAX_SCATTER_REQ_TRANSFER_SIZE (32 * 1024)
-
-#define MANUFACTURER_ID_AR6003_BASE 0x300
-#define MANUFACTURER_ID_AR6004_BASE 0x400
- /* SDIO manufacturer ID and Codes */
-#define MANUFACTURER_ID_ATH6KL_BASE_MASK 0xFF00
-#define MANUFACTURER_CODE 0x271 /* Atheros */
-
-/* Mailbox address in SDIO address space */
-#define HIF_MBOX_BASE_ADDR 0x800
-#define HIF_MBOX_WIDTH 0x800
-
-#define HIF_MBOX_END_ADDR (HTC_MAILBOX_NUM_MAX * HIF_MBOX_WIDTH - 1)
-
-/* version 1 of the chip has only a 12K extended mbox range */
-#define HIF_MBOX0_EXT_BASE_ADDR 0x4000
-#define HIF_MBOX0_EXT_WIDTH (12*1024)
-
-/* GMBOX addresses */
-#define HIF_GMBOX_BASE_ADDR 0x7000
-#define HIF_GMBOX_WIDTH 0x4000
-
-/* interrupt mode register */
-#define CCCR_SDIO_IRQ_MODE_REG 0xF0
-
-/* mode to enable special 4-bit interrupt assertion without clock */
-#define SDIO_IRQ_MODE_ASYNC_4BIT_IRQ (1 << 0)
-
-/* HTC runs over mailbox 0 */
-#define HTC_MAILBOX 0
-
-#define ATH6KL_TARGET_DEBUG_INTR_MASK 0x01
-
-/* FIXME: are these duplicates with MAX_SCATTER_ values in hif.h? */
-#define ATH6KL_SCATTER_ENTRIES_PER_REQ 16
-#define ATH6KL_MAX_TRANSFER_SIZE_PER_SCATTER (16 * 1024)
-#define ATH6KL_SCATTER_REQS 4
-
-#define ATH6KL_HIF_COMMUNICATION_TIMEOUT 1000
-
-struct bus_request {
- struct list_head list;
-
- /* request data */
- u32 address;
-
- u8 *buffer;
- u32 length;
- u32 request;
- struct htc_packet *packet;
- int status;
-
- /* this is a scatter request */
- struct hif_scatter_req *scat_req;
-};
-
-/* direction of transfer (read/write) */
-#define HIF_READ 0x00000001
-#define HIF_WRITE 0x00000002
-#define HIF_DIR_MASK (HIF_READ | HIF_WRITE)
-
-/*
- * emode - This indicates the whether the command is to be executed in a
- * blocking or non-blocking fashion (HIF_SYNCHRONOUS/
- * HIF_ASYNCHRONOUS). The read/write data paths in HTC have been
- * implemented using the asynchronous mode allowing the the bus
- * driver to indicate the completion of operation through the
- * registered callback routine. The requirement primarily comes
- * from the contexts these operations get called from (a driver's
- * transmit context or the ISR context in case of receive).
- * Support for both of these modes is essential.
- */
-#define HIF_SYNCHRONOUS 0x00000010
-#define HIF_ASYNCHRONOUS 0x00000020
-#define HIF_EMODE_MASK (HIF_SYNCHRONOUS | HIF_ASYNCHRONOUS)
-
-/*
- * dmode - An interface may support different kinds of commands based on
- * the tradeoff between the amount of data it can carry and the
- * setup time. Byte and Block modes are supported (HIF_BYTE_BASIS/
- * HIF_BLOCK_BASIS). In case of latter, the data is rounded off
- * to the nearest block size by padding. The size of the block is
- * configurable at compile time using the HIF_BLOCK_SIZE and is
- * negotiated with the target during initialization after the
- * ATH6KL interrupts are enabled.
- */
-#define HIF_BYTE_BASIS 0x00000040
-#define HIF_BLOCK_BASIS 0x00000080
-#define HIF_DMODE_MASK (HIF_BYTE_BASIS | HIF_BLOCK_BASIS)
-
-/*
- * amode - This indicates if the address has to be incremented on ATH6KL
- * after every read/write operation (HIF?FIXED_ADDRESS/
- * HIF_INCREMENTAL_ADDRESS).
- */
-#define HIF_FIXED_ADDRESS 0x00000100
-#define HIF_INCREMENTAL_ADDRESS 0x00000200
-#define HIF_AMODE_MASK (HIF_FIXED_ADDRESS | HIF_INCREMENTAL_ADDRESS)
-
-#define HIF_WR_ASYNC_BYTE_INC \
- (HIF_WRITE | HIF_ASYNCHRONOUS | \
- HIF_BYTE_BASIS | HIF_INCREMENTAL_ADDRESS)
-
-#define HIF_WR_ASYNC_BLOCK_INC \
- (HIF_WRITE | HIF_ASYNCHRONOUS | \
- HIF_BLOCK_BASIS | HIF_INCREMENTAL_ADDRESS)
-
-#define HIF_WR_SYNC_BYTE_FIX \
- (HIF_WRITE | HIF_SYNCHRONOUS | \
- HIF_BYTE_BASIS | HIF_FIXED_ADDRESS)
-
-#define HIF_WR_SYNC_BYTE_INC \
- (HIF_WRITE | HIF_SYNCHRONOUS | \
- HIF_BYTE_BASIS | HIF_INCREMENTAL_ADDRESS)
-
-#define HIF_WR_SYNC_BLOCK_INC \
- (HIF_WRITE | HIF_SYNCHRONOUS | \
- HIF_BLOCK_BASIS | HIF_INCREMENTAL_ADDRESS)
-
-#define HIF_RD_SYNC_BYTE_INC \
- (HIF_READ | HIF_SYNCHRONOUS | \
- HIF_BYTE_BASIS | HIF_INCREMENTAL_ADDRESS)
-
-#define HIF_RD_SYNC_BYTE_FIX \
- (HIF_READ | HIF_SYNCHRONOUS | \
- HIF_BYTE_BASIS | HIF_FIXED_ADDRESS)
-
-#define HIF_RD_ASYNC_BLOCK_FIX \
- (HIF_READ | HIF_ASYNCHRONOUS | \
- HIF_BLOCK_BASIS | HIF_FIXED_ADDRESS)
-
-#define HIF_RD_SYNC_BLOCK_FIX \
- (HIF_READ | HIF_SYNCHRONOUS | \
- HIF_BLOCK_BASIS | HIF_FIXED_ADDRESS)
-
-struct hif_scatter_item {
- u8 *buf;
- int len;
- struct htc_packet *packet;
-};
-
-struct hif_scatter_req {
- struct list_head list;
- /* address for the read/write operation */
- u32 addr;
-
- /* request flags */
- u32 req;
-
- /* total length of entire transfer */
- u32 len;
-
- bool virt_scat;
-
- void (*complete) (struct htc_target *, struct hif_scatter_req *);
- int status;
- int scat_entries;
-
- struct bus_request *busrequest;
- struct scatterlist *sgentries;
-
- /* bounce buffer for upper layers to copy to/from */
- u8 *virt_dma_buf;
-
- struct hif_scatter_item scat_list[1];
-
- u32 scat_q_depth;
-};
-
-struct ath6kl_irq_proc_registers {
- u8 host_int_status;
- u8 cpu_int_status;
- u8 error_int_status;
- u8 counter_int_status;
- u8 mbox_frame;
- u8 rx_lkahd_valid;
- u8 host_int_status2;
- u8 gmbox_rx_avail;
- __le32 rx_lkahd[2];
- __le32 rx_gmbox_lkahd_alias[2];
-} __packed;
-
-struct ath6kl_irq_enable_reg {
- u8 int_status_en;
- u8 cpu_int_status_en;
- u8 err_int_status_en;
- u8 cntr_int_status_en;
-} __packed;
-
-struct ath6kl_device {
- spinlock_t lock;
- struct ath6kl_irq_proc_registers irq_proc_reg;
- struct ath6kl_irq_enable_reg irq_en_reg;
- struct htc_target *htc_cnxt;
- struct ath6kl *ar;
-};
-
-struct ath6kl_sdio {
- struct sdio_func *func;
-
- spinlock_t lock;
-
- /* free list */
- struct list_head bus_req_freeq;
-
- /* available bus requests */
- struct bus_request bus_req[BUS_REQUEST_MAX_NUM];
-
- struct ath6kl *ar;
-
- u8 *dma_buffer;
-
- /* protects access to dma_buffer */
- struct mutex dma_buffer_mutex;
-
- /* scatter request list head */
- struct list_head scat_req;
-
- atomic_t irq_handling;
- wait_queue_head_t irq_wq;
-
- spinlock_t scat_lock;
- bool scatter_enabled;
-
- bool is_disabled;
- const struct sdio_device_id *id;
- struct work_struct wr_async_work;
- struct list_head wr_asyncq;
- spinlock_t wr_async_lock;
-};
-
-static inline struct ath6kl_sdio *ath6kl_sdio_priv(struct ath6kl *ar)
-{
- return ar->hif_priv;
-}
-
-struct ath6kl_hif_ops {
- int (*read_write_sync)(struct ath6kl *ar, u32 addr, u8 *buf,
- u32 len, u32 request);
- int (*write_async)(struct ath6kl *ar, u32 address, u8 *buffer,
- u32 length, u32 request, struct htc_packet *packet);
-
- void (*irq_enable)(struct ath6kl *ar);
- void (*irq_disable)(struct ath6kl *ar);
-
- struct hif_scatter_req *(*scatter_req_get)(struct ath6kl *ar);
- void (*scatter_req_add)(struct ath6kl *ar,
- struct hif_scatter_req *s_req);
- int (*enable_scatter)(struct ath6kl *ar);
- int (*scat_req_rw) (struct ath6kl *ar,
- struct hif_scatter_req *scat_req);
- void (*cleanup_scatter)(struct ath6kl *ar);
- int (*suspend)(struct ath6kl *ar, struct cfg80211_wowlan *wow);
- int (*resume)(struct ath6kl *ar);
- int (*diag_read32)(struct ath6kl *ar, u32 address, u32 *value);
- int (*diag_write32)(struct ath6kl *ar, u32 address, __le32 value);
- int (*bmi_read)(struct ath6kl *ar, u8 *buf, u32 len);
- int (*bmi_write)(struct ath6kl *ar, u8 *buf, u32 len);
- int (*power_on)(struct ath6kl *ar);
- int (*power_off)(struct ath6kl *ar);
- void (*stop)(struct ath6kl *ar);
-};
-
-int ath6kl_hif_setup(struct ath6kl_device *dev);
-int ath6kl_hif_unmask_intrs(struct ath6kl_device *dev);
-int ath6kl_hif_mask_intrs(struct ath6kl_device *dev);
-int ath6kl_hif_poll_mboxmsg_rx(struct ath6kl_device *dev,
- u32 *lk_ahd, int timeout);
-int ath6kl_hif_rx_control(struct ath6kl_device *dev, bool enable_rx);
-int ath6kl_hif_disable_intrs(struct ath6kl_device *dev);
-
-int ath6kl_hif_rw_comp_handler(void *context, int status);
-int ath6kl_hif_intr_bh_handler(struct ath6kl *ar);
-
-/* Scatter Function and Definitions */
-int ath6kl_hif_submit_scat_req(struct ath6kl_device *dev,
- struct hif_scatter_req *scat_req, bool read);
-
-int ath6kl_hif_wait_for_pending_recv(struct ath6kl *ar);
-#endif
diff --git a/drivers/net/wireless/ath/ath6kl/htc.c b/drivers/net/wireless/ath/ath6kl/htc.c
deleted file mode 100755
index 16729fb..0000000
--- a/drivers/net/wireless/ath/ath6kl/htc.c
+++ /dev/null
@@ -1,2888 +0,0 @@
-/*
- * Copyright (c) 2007-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "core.h"
-#include "hif.h"
-#include "debug.h"
-#include "hif-ops.h"
-#include <asm/unaligned.h>
-
-#define CALC_TXRX_PADDED_LEN(dev, len) (__ALIGN_MASK((len), (dev)->block_mask))
-
-/* threshold to re-enable Tx bundling for an AC*/
-#define TX_RESUME_BUNDLE_THRESHOLD 1500
-
-/* Functions for Tx credit handling */
-static void ath6kl_credit_deposit(struct ath6kl_htc_credit_info *cred_info,
- struct htc_endpoint_credit_dist *ep_dist,
- int credits)
-{
- ath6kl_dbg(ATH6KL_DBG_CREDIT, "credit deposit ep %d credits %d\n",
- ep_dist->endpoint, credits);
-
- ep_dist->credits += credits;
- ep_dist->cred_assngd += credits;
- cred_info->cur_free_credits -= credits;
-}
-
-static void ath6kl_credit_init(struct ath6kl_htc_credit_info *cred_info,
- struct list_head *ep_list,
- int tot_credits)
-{
- struct htc_endpoint_credit_dist *cur_ep_dist;
- int count;
-
- ath6kl_dbg(ATH6KL_DBG_CREDIT, "credit init total %d\n", tot_credits);
-
- cred_info->cur_free_credits = tot_credits;
- cred_info->total_avail_credits = tot_credits;
-
- list_for_each_entry(cur_ep_dist, ep_list, list) {
- if (cur_ep_dist->endpoint == ENDPOINT_0)
- continue;
-
- cur_ep_dist->cred_min = cur_ep_dist->cred_per_msg;
-
- if (tot_credits > 4) {
- if ((cur_ep_dist->svc_id == WMI_DATA_BK_SVC) ||
- (cur_ep_dist->svc_id == WMI_DATA_BE_SVC)) {
- ath6kl_credit_deposit(cred_info,
- cur_ep_dist,
- cur_ep_dist->cred_min);
- cur_ep_dist->dist_flags |= HTC_EP_ACTIVE;
- }
- }
-
- if (cur_ep_dist->svc_id == WMI_CONTROL_SVC) {
- ath6kl_credit_deposit(cred_info, cur_ep_dist,
- cur_ep_dist->cred_min);
- /*
- * Control service is always marked active, it
- * never goes inactive EVER.
- */
- cur_ep_dist->dist_flags |= HTC_EP_ACTIVE;
- } else if (cur_ep_dist->svc_id == WMI_DATA_BK_SVC)
- /* this is the lowest priority data endpoint */
- /* FIXME: this looks fishy, check */
- cred_info->lowestpri_ep_dist = cur_ep_dist->list;
-
- /*
- * Streams have to be created (explicit | implicit) for all
- * kinds of traffic. BE endpoints are also inactive in the
- * beginning. When BE traffic starts it creates implicit
- * streams that redistributes credits.
- *
- * Note: all other endpoints have minimums set but are
- * initially given NO credits. credits will be distributed
- * as traffic activity demands
- */
- }
-
- WARN_ON(cred_info->cur_free_credits <= 0);
-
- list_for_each_entry(cur_ep_dist, ep_list, list) {
- if (cur_ep_dist->endpoint == ENDPOINT_0)
- continue;
-
- if (cur_ep_dist->svc_id == WMI_CONTROL_SVC)
- cur_ep_dist->cred_norm = cur_ep_dist->cred_per_msg;
- else {
- /*
- * For the remaining data endpoints, we assume that
- * each cred_per_msg are the same. We use a simple
- * calculation here, we take the remaining credits
- * and determine how many max messages this can
- * cover and then set each endpoint's normal value
- * equal to 3/4 this amount.
- */
- count = (cred_info->cur_free_credits /
- cur_ep_dist->cred_per_msg)
- * cur_ep_dist->cred_per_msg;
- count = (count * 3) >> 2;
- count = max(count, cur_ep_dist->cred_per_msg);
- cur_ep_dist->cred_norm = count;
-
- }
-
- ath6kl_dbg(ATH6KL_DBG_CREDIT,
- "credit ep %d svc_id %d credits %d per_msg %d norm %d min %d\n",
- cur_ep_dist->endpoint,
- cur_ep_dist->svc_id,
- cur_ep_dist->credits,
- cur_ep_dist->cred_per_msg,
- cur_ep_dist->cred_norm,
- cur_ep_dist->cred_min);
- }
-}
-
-/* initialize and setup credit distribution */
-int ath6kl_credit_setup(void *htc_handle,
- struct ath6kl_htc_credit_info *cred_info)
-{
- u16 servicepriority[5];
-
- memset(cred_info, 0, sizeof(struct ath6kl_htc_credit_info));
-
- servicepriority[0] = WMI_CONTROL_SVC; /* highest */
- servicepriority[1] = WMI_DATA_VO_SVC;
- servicepriority[2] = WMI_DATA_VI_SVC;
- servicepriority[3] = WMI_DATA_BE_SVC;
- servicepriority[4] = WMI_DATA_BK_SVC; /* lowest */
-
- /* set priority list */
- ath6kl_htc_set_credit_dist(htc_handle, cred_info, servicepriority, 5);
-
- return 0;
-}
-
-/* reduce an ep's credits back to a set limit */
-static void ath6kl_credit_reduce(struct ath6kl_htc_credit_info *cred_info,
- struct htc_endpoint_credit_dist *ep_dist,
- int limit)
-{
- int credits;
-
- ath6kl_dbg(ATH6KL_DBG_CREDIT, "credit reduce ep %d limit %d\n",
- ep_dist->endpoint, limit);
-
- ep_dist->cred_assngd = limit;
-
- if (ep_dist->credits <= limit)
- return;
-
- credits = ep_dist->credits - limit;
- ep_dist->credits -= credits;
- cred_info->cur_free_credits += credits;
-}
-
-static void ath6kl_credit_update(struct ath6kl_htc_credit_info *cred_info,
- struct list_head *epdist_list)
-{
- struct htc_endpoint_credit_dist *cur_dist_list;
-
- list_for_each_entry(cur_dist_list, epdist_list, list) {
- if (cur_dist_list->endpoint == ENDPOINT_0)
- continue;
-
- if (cur_dist_list->cred_to_dist > 0) {
- cur_dist_list->credits +=
- cur_dist_list->cred_to_dist;
- cur_dist_list->cred_to_dist = 0;
- if (cur_dist_list->credits >
- cur_dist_list->cred_assngd)
- ath6kl_credit_reduce(cred_info,
- cur_dist_list,
- cur_dist_list->cred_assngd);
-
- if (cur_dist_list->credits >
- cur_dist_list->cred_norm)
- ath6kl_credit_reduce(cred_info, cur_dist_list,
- cur_dist_list->cred_norm);
-
- if (!(cur_dist_list->dist_flags & HTC_EP_ACTIVE)) {
- if (cur_dist_list->txq_depth == 0)
- ath6kl_credit_reduce(cred_info,
- cur_dist_list, 0);
- }
- }
- }
-}
-
-/*
- * HTC has an endpoint that needs credits, ep_dist is the endpoint in
- * question.
- */
-static void ath6kl_credit_seek(struct ath6kl_htc_credit_info *cred_info,
- struct htc_endpoint_credit_dist *ep_dist)
-{
- struct htc_endpoint_credit_dist *curdist_list;
- int credits = 0;
- int need;
-
- if (ep_dist->svc_id == WMI_CONTROL_SVC)
- goto out;
-
- if ((ep_dist->svc_id == WMI_DATA_VI_SVC) ||
- (ep_dist->svc_id == WMI_DATA_VO_SVC))
- if ((ep_dist->cred_assngd >= ep_dist->cred_norm))
- goto out;
-
- /*
- * For all other services, we follow a simple algorithm of:
- *
- * 1. checking the free pool for credits
- * 2. checking lower priority endpoints for credits to take
- */
-
- credits = min(cred_info->cur_free_credits, ep_dist->seek_cred);
-
- if (credits >= ep_dist->seek_cred)
- goto out;
-
- /*
- * We don't have enough in the free pool, try taking away from
- * lower priority services The rule for taking away credits:
- *
- * 1. Only take from lower priority endpoints
- * 2. Only take what is allocated above the minimum (never
- * starve an endpoint completely)
- * 3. Only take what you need.
- */
-
- list_for_each_entry_reverse(curdist_list,
- &cred_info->lowestpri_ep_dist,
- list) {
- if (curdist_list == ep_dist)
- break;
-
- need = ep_dist->seek_cred - cred_info->cur_free_credits;
-
- if ((curdist_list->cred_assngd - need) >=
- curdist_list->cred_min) {
- /*
- * The current one has been allocated more than
- * it's minimum and it has enough credits assigned
- * above it's minimum to fulfill our need try to
- * take away just enough to fulfill our need.
- */
- ath6kl_credit_reduce(cred_info, curdist_list,
- curdist_list->cred_assngd - need);
-
- if (cred_info->cur_free_credits >=
- ep_dist->seek_cred)
- break;
- }
-
- if (curdist_list->endpoint == ENDPOINT_0)
- break;
- }
-
- credits = min(cred_info->cur_free_credits, ep_dist->seek_cred);
-
-out:
- /* did we find some credits? */
- if (credits)
- ath6kl_credit_deposit(cred_info, ep_dist, credits);
-
- ep_dist->seek_cred = 0;
-}
-
-/* redistribute credits based on activity change */
-static void ath6kl_credit_redistribute(struct ath6kl_htc_credit_info *info,
- struct list_head *ep_dist_list)
-{
- struct htc_endpoint_credit_dist *curdist_list;
-
- list_for_each_entry(curdist_list, ep_dist_list, list) {
- if (curdist_list->endpoint == ENDPOINT_0)
- continue;
-
- if ((curdist_list->svc_id == WMI_DATA_BK_SVC) ||
- (curdist_list->svc_id == WMI_DATA_BE_SVC))
- curdist_list->dist_flags |= HTC_EP_ACTIVE;
-
- if ((curdist_list->svc_id != WMI_CONTROL_SVC) &&
- !(curdist_list->dist_flags & HTC_EP_ACTIVE)) {
- if (curdist_list->txq_depth == 0)
- ath6kl_credit_reduce(info, curdist_list, 0);
- else
- ath6kl_credit_reduce(info,
- curdist_list,
- curdist_list->cred_min);
- }
- }
-}
-
-/*
- *
- * This function is invoked whenever endpoints require credit
- * distributions. A lock is held while this function is invoked, this
- * function shall NOT block. The ep_dist_list is a list of distribution
- * structures in prioritized order as defined by the call to the
- * htc_set_credit_dist() api.
- */
-static void ath6kl_credit_distribute(struct ath6kl_htc_credit_info *cred_info,
- struct list_head *ep_dist_list,
- enum htc_credit_dist_reason reason)
-{
- switch (reason) {
- case HTC_CREDIT_DIST_SEND_COMPLETE:
- ath6kl_credit_update(cred_info, ep_dist_list);
- break;
- case HTC_CREDIT_DIST_ACTIVITY_CHANGE:
- ath6kl_credit_redistribute(cred_info, ep_dist_list);
- break;
- default:
- break;
- }
-
- WARN_ON(cred_info->cur_free_credits > cred_info->total_avail_credits);
- WARN_ON(cred_info->cur_free_credits < 0);
-}
-
-static void ath6kl_htc_tx_buf_align(u8 **buf, unsigned long len)
-{
- u8 *align_addr;
-
- if (!IS_ALIGNED((unsigned long) *buf, 4)) {
- align_addr = PTR_ALIGN(*buf - 4, 4);
- memmove(align_addr, *buf, len);
- *buf = align_addr;
- }
-}
-
-static void ath6kl_htc_tx_prep_pkt(struct htc_packet *packet, u8 flags,
- int ctrl0, int ctrl1)
-{
- struct htc_frame_hdr *hdr;
-
- packet->buf -= HTC_HDR_LENGTH;
- hdr = (struct htc_frame_hdr *)packet->buf;
-
- /* Endianess? */
- put_unaligned((u16)packet->act_len, &hdr->payld_len);
- hdr->flags = flags;
- hdr->eid = packet->endpoint;
- hdr->ctrl[0] = ctrl0;
- hdr->ctrl[1] = ctrl1;
-}
-
-static void htc_reclaim_txctrl_buf(struct htc_target *target,
- struct htc_packet *pkt)
-{
- spin_lock_bh(&target->htc_lock);
- list_add_tail(&pkt->list, &target->free_ctrl_txbuf);
- spin_unlock_bh(&target->htc_lock);
-}
-
-static struct htc_packet *htc_get_control_buf(struct htc_target *target,
- bool tx)
-{
- struct htc_packet *packet = NULL;
- struct list_head *buf_list;
-
- buf_list = tx ? &target->free_ctrl_txbuf : &target->free_ctrl_rxbuf;
-
- spin_lock_bh(&target->htc_lock);
-
- if (list_empty(buf_list)) {
- spin_unlock_bh(&target->htc_lock);
- return NULL;
- }
-
- packet = list_first_entry(buf_list, struct htc_packet, list);
- list_del(&packet->list);
- spin_unlock_bh(&target->htc_lock);
-
- if (tx)
- packet->buf = packet->buf_start + HTC_HDR_LENGTH;
-
- return packet;
-}
-
-static void htc_tx_comp_update(struct htc_target *target,
- struct htc_endpoint *endpoint,
- struct htc_packet *packet)
-{
- packet->completion = NULL;
- packet->buf += HTC_HDR_LENGTH;
-
- if (!packet->status)
- return;
-
- ath6kl_err("req failed (status:%d, ep:%d, len:%d creds:%d)\n",
- packet->status, packet->endpoint, packet->act_len,
- packet->info.tx.cred_used);
-
- /* on failure to submit, reclaim credits for this packet */
- spin_lock_bh(&target->tx_lock);
- endpoint->cred_dist.cred_to_dist +=
- packet->info.tx.cred_used;
- endpoint->cred_dist.txq_depth = get_queue_depth(&endpoint->txq);
-
- ath6kl_dbg(ATH6KL_DBG_HTC, "htc tx ctxt 0x%p dist 0x%p\n",
- target->credit_info, &target->cred_dist_list);
-
- ath6kl_credit_distribute(target->credit_info,
- &target->cred_dist_list,
- HTC_CREDIT_DIST_SEND_COMPLETE);
-
- spin_unlock_bh(&target->tx_lock);
-}
-
-static void htc_tx_complete(struct htc_endpoint *endpoint,
- struct list_head *txq)
-{
- if (list_empty(txq))
- return;
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc tx complete ep %d pkts %d\n",
- endpoint->eid, get_queue_depth(txq));
-
- ath6kl_tx_complete(endpoint->target->dev->ar, txq);
-}
-
-static void htc_tx_comp_handler(struct htc_target *target,
- struct htc_packet *packet)
-{
- struct htc_endpoint *endpoint = &target->endpoint[packet->endpoint];
- struct list_head container;
-
- ath6kl_dbg(ATH6KL_DBG_HTC, "htc tx complete seqno %d\n",
- packet->info.tx.seqno);
-
- htc_tx_comp_update(target, endpoint, packet);
- INIT_LIST_HEAD(&container);
- list_add_tail(&packet->list, &container);
- /* do completion */
- htc_tx_complete(endpoint, &container);
-}
-
-static void htc_async_tx_scat_complete(struct htc_target *target,
- struct hif_scatter_req *scat_req)
-{
- struct htc_endpoint *endpoint;
- struct htc_packet *packet;
- struct list_head tx_compq;
- int i;
-
- INIT_LIST_HEAD(&tx_compq);
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc tx scat complete len %d entries %d\n",
- scat_req->len, scat_req->scat_entries);
-
- if (scat_req->status)
- ath6kl_err("send scatter req failed: %d\n", scat_req->status);
-
- packet = scat_req->scat_list[0].packet;
- endpoint = &target->endpoint[packet->endpoint];
-
- /* walk through the scatter list and process */
- for (i = 0; i < scat_req->scat_entries; i++) {
- packet = scat_req->scat_list[i].packet;
- if (!packet) {
- WARN_ON(1);
- return;
- }
-
- packet->status = scat_req->status;
- htc_tx_comp_update(target, endpoint, packet);
- list_add_tail(&packet->list, &tx_compq);
- }
-
- /* free scatter request */
- hif_scatter_req_add(target->dev->ar, scat_req);
-
- /* complete all packets */
- htc_tx_complete(endpoint, &tx_compq);
-}
-
-static int ath6kl_htc_tx_issue(struct htc_target *target,
- struct htc_packet *packet)
-{
- int status;
- bool sync = false;
- u32 padded_len, send_len;
-
- if (!packet->completion)
- sync = true;
-
- send_len = packet->act_len + HTC_HDR_LENGTH;
-
- padded_len = CALC_TXRX_PADDED_LEN(target, send_len);
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc tx issue len %d seqno %d padded_len %d mbox 0x%X %s\n",
- send_len, packet->info.tx.seqno, padded_len,
- target->dev->ar->mbox_info.htc_addr,
- sync ? "sync" : "async");
-
- if (sync) {
- status = hif_read_write_sync(target->dev->ar,
- target->dev->ar->mbox_info.htc_addr,
- packet->buf, padded_len,
- HIF_WR_SYNC_BLOCK_INC);
-
- packet->status = status;
- packet->buf += HTC_HDR_LENGTH;
- } else
- status = hif_write_async(target->dev->ar,
- target->dev->ar->mbox_info.htc_addr,
- packet->buf, padded_len,
- HIF_WR_ASYNC_BLOCK_INC, packet);
-
- return status;
-}
-
-static int htc_check_credits(struct htc_target *target,
- struct htc_endpoint *ep, u8 *flags,
- enum htc_endpoint_id eid, unsigned int len,
- int *req_cred)
-{
-
- *req_cred = (len > target->tgt_cred_sz) ?
- DIV_ROUND_UP(len, target->tgt_cred_sz) : 1;
-
- ath6kl_dbg(ATH6KL_DBG_CREDIT, "credit check need %d got %d\n",
- *req_cred, ep->cred_dist.credits);
-
- if (ep->cred_dist.credits < *req_cred) {
- if (eid == ENDPOINT_0)
- return -EINVAL;
-
- /* Seek more credits */
- ep->cred_dist.seek_cred = *req_cred - ep->cred_dist.credits;
-
- ath6kl_credit_seek(target->credit_info, &ep->cred_dist);
-
- ep->cred_dist.seek_cred = 0;
-
- if (ep->cred_dist.credits < *req_cred) {
- ath6kl_dbg(ATH6KL_DBG_CREDIT,
- "credit not found for ep %d\n",
- eid);
- return -EINVAL;
- }
- }
-
- ep->cred_dist.credits -= *req_cred;
- ep->ep_st.cred_cosumd += *req_cred;
-
- /* When we are getting low on credits, ask for more */
- if (ep->cred_dist.credits < ep->cred_dist.cred_per_msg) {
- ep->cred_dist.seek_cred =
- ep->cred_dist.cred_per_msg - ep->cred_dist.credits;
-
- ath6kl_credit_seek(target->credit_info, &ep->cred_dist);
-
- /* see if we were successful in getting more */
- if (ep->cred_dist.credits < ep->cred_dist.cred_per_msg) {
- /* tell the target we need credits ASAP! */
- *flags |= HTC_FLAGS_NEED_CREDIT_UPDATE;
- ep->ep_st.cred_low_indicate += 1;
- ath6kl_dbg(ATH6KL_DBG_CREDIT,
- "credit we need credits asap\n");
- }
- }
-
- return 0;
-}
-
-static void ath6kl_htc_tx_pkts_get(struct htc_target *target,
- struct htc_endpoint *endpoint,
- struct list_head *queue)
-{
- int req_cred;
- u8 flags;
- struct htc_packet *packet;
- unsigned int len;
-
- while (true) {
-
- flags = 0;
-
- if (list_empty(&endpoint->txq))
- break;
- packet = list_first_entry(&endpoint->txq, struct htc_packet,
- list);
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc tx got packet 0x%p queue depth %d\n",
- packet, get_queue_depth(&endpoint->txq));
-
- len = CALC_TXRX_PADDED_LEN(target,
- packet->act_len + HTC_HDR_LENGTH);
-
- if (htc_check_credits(target, endpoint, &flags,
- packet->endpoint, len, &req_cred))
- break;
-
- /* now we can fully move onto caller's queue */
- packet = list_first_entry(&endpoint->txq, struct htc_packet,
- list);
- list_move_tail(&packet->list, queue);
-
- /* save the number of credits this packet consumed */
- packet->info.tx.cred_used = req_cred;
-
- /* all TX packets are handled asynchronously */
- packet->completion = htc_tx_comp_handler;
- packet->context = target;
- endpoint->ep_st.tx_issued += 1;
-
- /* save send flags */
- packet->info.tx.flags = flags;
- packet->info.tx.seqno = endpoint->seqno;
- endpoint->seqno++;
- }
-}
-
-/* See if the padded tx length falls on a credit boundary */
-static int htc_get_credit_padding(unsigned int cred_sz, int *len,
- struct htc_endpoint *ep)
-{
- int rem_cred, cred_pad;
-
- rem_cred = *len % cred_sz;
-
- /* No padding needed */
- if (!rem_cred)
- return 0;
-
- if (!(ep->conn_flags & HTC_FLGS_TX_BNDL_PAD_EN))
- return -1;
-
- /*
- * The transfer consumes a "partial" credit, this
- * packet cannot be bundled unless we add
- * additional "dummy" padding (max 255 bytes) to
- * consume the entire credit.
- */
- cred_pad = *len < cred_sz ? (cred_sz - *len) : rem_cred;
-
- if ((cred_pad > 0) && (cred_pad <= 255))
- *len += cred_pad;
- else
- /* The amount of padding is too large, send as non-bundled */
- return -1;
-
- return cred_pad;
-}
-
-static int ath6kl_htc_tx_setup_scat_list(struct htc_target *target,
- struct htc_endpoint *endpoint,
- struct hif_scatter_req *scat_req,
- int n_scat,
- struct list_head *queue)
-{
- struct htc_packet *packet;
- int i, len, rem_scat, cred_pad;
- int status = 0;
-
- rem_scat = target->max_tx_bndl_sz;
-
- for (i = 0; i < n_scat; i++) {
- scat_req->scat_list[i].packet = NULL;
-
- if (list_empty(queue))
- break;
-
- packet = list_first_entry(queue, struct htc_packet, list);
- len = CALC_TXRX_PADDED_LEN(target,
- packet->act_len + HTC_HDR_LENGTH);
-
- cred_pad = htc_get_credit_padding(target->tgt_cred_sz,
- &len, endpoint);
- if (cred_pad < 0 || rem_scat < len) {
- status = -ENOSPC;
- break;
- }
-
- rem_scat -= len;
- /* now remove it from the queue */
- list_del(&packet->list);
-
- scat_req->scat_list[i].packet = packet;
- /* prepare packet and flag message as part of a send bundle */
- ath6kl_htc_tx_prep_pkt(packet,
- packet->info.tx.flags | HTC_FLAGS_SEND_BUNDLE,
- cred_pad, packet->info.tx.seqno);
- /* Make sure the buffer is 4-byte aligned */
- ath6kl_htc_tx_buf_align(&packet->buf,
- packet->act_len + HTC_HDR_LENGTH);
- scat_req->scat_list[i].buf = packet->buf;
- scat_req->scat_list[i].len = len;
-
- scat_req->len += len;
- scat_req->scat_entries++;
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc tx adding (%d) pkt 0x%p seqno %d len %d remaining %d\n",
- i, packet, packet->info.tx.seqno, len, rem_scat);
- }
-
- /* Roll back scatter setup in case of any failure */
- if (scat_req->scat_entries < HTC_MIN_HTC_MSGS_TO_BUNDLE) {
- for (i = scat_req->scat_entries - 1; i >= 0; i--) {
- packet = scat_req->scat_list[i].packet;
- if (packet) {
- packet->buf += HTC_HDR_LENGTH;
- list_add(&packet->list, queue);
- }
- }
- return -EAGAIN;
- }
-
- return status;
-}
-
-/*
- * Drain a queue and send as bundles this function may return without fully
- * draining the queue when
- *
- * 1. scatter resources are exhausted
- * 2. a message that will consume a partial credit will stop the
- * bundling process early
- * 3. we drop below the minimum number of messages for a bundle
- */
-static void ath6kl_htc_tx_bundle(struct htc_endpoint *endpoint,
- struct list_head *queue,
- int *sent_bundle, int *n_bundle_pkts)
-{
- struct htc_target *target = endpoint->target;
- struct hif_scatter_req *scat_req = NULL;
- int n_scat, n_sent_bundle = 0, tot_pkts_bundle = 0;
- int status;
- u32 txb_mask;
- u8 ac = WMM_NUM_AC;
-
- if ((HTC_CTRL_RSVD_SVC != endpoint->svc_id) ||
- (WMI_CONTROL_SVC != endpoint->svc_id))
- ac = target->dev->ar->ep2ac_map[endpoint->eid];
-
- while (true) {
- status = 0;
- n_scat = get_queue_depth(queue);
- n_scat = min(n_scat, target->msg_per_bndl_max);
-
- if (n_scat < HTC_MIN_HTC_MSGS_TO_BUNDLE)
- /* not enough to bundle */
- break;
-
- scat_req = hif_scatter_req_get(target->dev->ar);
-
- if (!scat_req) {
- /* no scatter resources */
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc tx no more scatter resources\n");
- break;
- }
-
- if ((ac < WMM_NUM_AC) && (ac != WMM_AC_BK)) {
- if (WMM_AC_BE == ac)
- /*
- * BE, BK have priorities and bit
- * positions reversed
- */
- txb_mask = (1 << WMM_AC_BK);
- else
- /*
- * any AC with priority lower than
- * itself
- */
- txb_mask = ((1 << ac) - 1);
- /*
- * when the scatter request resources drop below a
- * certain threshold, disable Tx bundling for all
- * AC's with priority lower than the current requesting
- * AC. Otherwise re-enable Tx bundling for them
- */
- if (scat_req->scat_q_depth < ATH6KL_SCATTER_REQS)
- target->tx_bndl_mask &= ~txb_mask;
- else
- target->tx_bndl_mask |= txb_mask;
- }
-
- ath6kl_dbg(ATH6KL_DBG_HTC, "htc tx pkts to scatter: %d\n",
- n_scat);
-
- scat_req->len = 0;
- scat_req->scat_entries = 0;
-
- status = ath6kl_htc_tx_setup_scat_list(target, endpoint,
- scat_req, n_scat,
- queue);
- if (status == -EAGAIN) {
- hif_scatter_req_add(target->dev->ar, scat_req);
- break;
- }
-
- /* send path is always asynchronous */
- scat_req->complete = htc_async_tx_scat_complete;
- n_sent_bundle++;
- tot_pkts_bundle += scat_req->scat_entries;
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc tx scatter bytes %d entries %d\n",
- scat_req->len, scat_req->scat_entries);
- ath6kl_hif_submit_scat_req(target->dev, scat_req, false);
-
- if (status)
- break;
- }
-
- *sent_bundle = n_sent_bundle;
- *n_bundle_pkts = tot_pkts_bundle;
- ath6kl_dbg(ATH6KL_DBG_HTC, "htc tx bundle sent %d pkts\n",
- n_sent_bundle);
-
- return;
-}
-
-static void ath6kl_htc_tx_from_queue(struct htc_target *target,
- struct htc_endpoint *endpoint)
-{
- struct list_head txq;
- struct htc_packet *packet;
- int bundle_sent;
- int n_pkts_bundle;
- u8 ac = WMM_NUM_AC;
-
- spin_lock_bh(&target->tx_lock);
-
- endpoint->tx_proc_cnt++;
- if (endpoint->tx_proc_cnt > 1) {
- endpoint->tx_proc_cnt--;
- spin_unlock_bh(&target->tx_lock);
- ath6kl_dbg(ATH6KL_DBG_HTC, "htc tx busy\n");
- return;
- }
-
- /*
- * drain the endpoint TX queue for transmission as long
- * as we have enough credits.
- */
- INIT_LIST_HEAD(&txq);
-
- if ((HTC_CTRL_RSVD_SVC != endpoint->svc_id) ||
- (WMI_CONTROL_SVC != endpoint->svc_id))
- ac = target->dev->ar->ep2ac_map[endpoint->eid];
-
- while (true) {
-
- if (list_empty(&endpoint->txq))
- break;
-
- ath6kl_htc_tx_pkts_get(target, endpoint, &txq);
-
- if (list_empty(&txq))
- break;
-
- spin_unlock_bh(&target->tx_lock);
-
- bundle_sent = 0;
- n_pkts_bundle = 0;
-
- while (true) {
- /* try to send a bundle on each pass */
- if ((target->tx_bndl_mask) &&
- (get_queue_depth(&txq) >=
- HTC_MIN_HTC_MSGS_TO_BUNDLE)) {
- int temp1 = 0, temp2 = 0;
-
- /* check if bundling is enabled for an AC */
- if (target->tx_bndl_mask & (1 << ac)) {
- ath6kl_htc_tx_bundle(endpoint, &txq,
- &temp1, &temp2);
- bundle_sent += temp1;
- n_pkts_bundle += temp2;
- }
- }
-
- if (list_empty(&txq))
- break;
-
- packet = list_first_entry(&txq, struct htc_packet,
- list);
- list_del(&packet->list);
-
- ath6kl_htc_tx_prep_pkt(packet, packet->info.tx.flags,
- 0, packet->info.tx.seqno);
- ath6kl_htc_tx_issue(target, packet);
- }
-
- spin_lock_bh(&target->tx_lock);
-
- endpoint->ep_st.tx_bundles += bundle_sent;
- endpoint->ep_st.tx_pkt_bundled += n_pkts_bundle;
-
- /*
- * if an AC has bundling disabled and no tx bundling
- * has occured continously for a certain number of TX,
- * enable tx bundling for this AC
- */
- if (!bundle_sent) {
- if (!(target->tx_bndl_mask & (1 << ac)) &&
- (ac < WMM_NUM_AC)) {
- if (++target->ac_tx_count[ac] >=
- TX_RESUME_BUNDLE_THRESHOLD) {
- target->ac_tx_count[ac] = 0;
- target->tx_bndl_mask |= (1 << ac);
- }
- }
- } else {
- /* tx bundling will reset the counter */
- if (ac < WMM_NUM_AC)
- target->ac_tx_count[ac] = 0;
- }
- }
-
- endpoint->tx_proc_cnt = 0;
- spin_unlock_bh(&target->tx_lock);
-}
-
-static bool ath6kl_htc_tx_try(struct htc_target *target,
- struct htc_endpoint *endpoint,
- struct htc_packet *tx_pkt)
-{
- struct htc_ep_callbacks ep_cb;
- int txq_depth;
- bool overflow = false;
-
- ep_cb = endpoint->ep_cb;
-
- spin_lock_bh(&target->tx_lock);
- txq_depth = get_queue_depth(&endpoint->txq);
- spin_unlock_bh(&target->tx_lock);
-
- if (txq_depth >= endpoint->max_txq_depth)
- overflow = true;
-
- if (overflow)
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc tx overflow ep %d depth %d max %d\n",
- endpoint->eid, txq_depth,
- endpoint->max_txq_depth);
-
- if (overflow && ep_cb.tx_full) {
- if (ep_cb.tx_full(endpoint->target, tx_pkt) ==
- HTC_SEND_FULL_DROP) {
- endpoint->ep_st.tx_dropped += 1;
- return false;
- }
- }
-
- spin_lock_bh(&target->tx_lock);
- list_add_tail(&tx_pkt->list, &endpoint->txq);
- spin_unlock_bh(&target->tx_lock);
-
- ath6kl_htc_tx_from_queue(target, endpoint);
-
- return true;
-}
-
-static void htc_chk_ep_txq(struct htc_target *target)
-{
- struct htc_endpoint *endpoint;
- struct htc_endpoint_credit_dist *cred_dist;
-
- /*
- * Run through the credit distribution list to see if there are
- * packets queued. NOTE: no locks need to be taken since the
- * distribution list is not dynamic (cannot be re-ordered) and we
- * are not modifying any state.
- */
- list_for_each_entry(cred_dist, &target->cred_dist_list, list) {
- endpoint = cred_dist->htc_ep;
-
- spin_lock_bh(&target->tx_lock);
- if (!list_empty(&endpoint->txq)) {
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc creds ep %d credits %d pkts %d\n",
- cred_dist->endpoint,
- endpoint->cred_dist.credits,
- get_queue_depth(&endpoint->txq));
- spin_unlock_bh(&target->tx_lock);
- /*
- * Try to start the stalled queue, this list is
- * ordered by priority. If there are credits
- * available the highest priority queue will get a
- * chance to reclaim credits from lower priority
- * ones.
- */
- ath6kl_htc_tx_from_queue(target, endpoint);
- spin_lock_bh(&target->tx_lock);
- }
- spin_unlock_bh(&target->tx_lock);
- }
-}
-
-static int htc_setup_tx_complete(struct htc_target *target)
-{
- struct htc_packet *send_pkt = NULL;
- int status;
-
- send_pkt = htc_get_control_buf(target, true);
-
- if (!send_pkt)
- return -ENOMEM;
-
- if (target->htc_tgt_ver >= HTC_VERSION_2P1) {
- struct htc_setup_comp_ext_msg *setup_comp_ext;
- u32 flags = 0;
-
- setup_comp_ext =
- (struct htc_setup_comp_ext_msg *)send_pkt->buf;
- memset(setup_comp_ext, 0, sizeof(*setup_comp_ext));
- setup_comp_ext->msg_id =
- cpu_to_le16(HTC_MSG_SETUP_COMPLETE_EX_ID);
-
- if (target->msg_per_bndl_max > 0) {
- /* Indicate HTC bundling to the target */
- flags |= HTC_SETUP_COMP_FLG_RX_BNDL_EN;
- setup_comp_ext->msg_per_rxbndl =
- target->msg_per_bndl_max;
- }
-
- memcpy(&setup_comp_ext->flags, &flags,
- sizeof(setup_comp_ext->flags));
- set_htc_pkt_info(send_pkt, NULL, (u8 *) setup_comp_ext,
- sizeof(struct htc_setup_comp_ext_msg),
- ENDPOINT_0, HTC_SERVICE_TX_PACKET_TAG);
-
- } else {
- struct htc_setup_comp_msg *setup_comp;
- setup_comp = (struct htc_setup_comp_msg *)send_pkt->buf;
- memset(setup_comp, 0, sizeof(struct htc_setup_comp_msg));
- setup_comp->msg_id = cpu_to_le16(HTC_MSG_SETUP_COMPLETE_ID);
- set_htc_pkt_info(send_pkt, NULL, (u8 *) setup_comp,
- sizeof(struct htc_setup_comp_msg),
- ENDPOINT_0, HTC_SERVICE_TX_PACKET_TAG);
- }
-
- /* we want synchronous operation */
- send_pkt->completion = NULL;
- ath6kl_htc_tx_prep_pkt(send_pkt, 0, 0, 0);
- status = ath6kl_htc_tx_issue(target, send_pkt);
-
- if (send_pkt != NULL)
- htc_reclaim_txctrl_buf(target, send_pkt);
-
- return status;
-}
-
-void ath6kl_htc_set_credit_dist(struct htc_target *target,
- struct ath6kl_htc_credit_info *credit_info,
- u16 srvc_pri_order[], int list_len)
-{
- struct htc_endpoint *endpoint;
- int i, ep;
-
- target->credit_info = credit_info;
-
- list_add_tail(&target->endpoint[ENDPOINT_0].cred_dist.list,
- &target->cred_dist_list);
-
- for (i = 0; i < list_len; i++) {
- for (ep = ENDPOINT_1; ep < ENDPOINT_MAX; ep++) {
- endpoint = &target->endpoint[ep];
- if (endpoint->svc_id == srvc_pri_order[i]) {
- list_add_tail(&endpoint->cred_dist.list,
- &target->cred_dist_list);
- break;
- }
- }
- if (ep >= ENDPOINT_MAX) {
- WARN_ON(1);
- return;
- }
- }
-}
-
-int ath6kl_htc_tx(struct htc_target *target, struct htc_packet *packet)
-{
- struct htc_endpoint *endpoint;
- struct list_head queue;
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc tx ep id %d buf 0x%p len %d\n",
- packet->endpoint, packet->buf, packet->act_len);
-
- if (packet->endpoint >= ENDPOINT_MAX) {
- WARN_ON(1);
- return -EINVAL;
- }
-
- endpoint = &target->endpoint[packet->endpoint];
-
- if (!ath6kl_htc_tx_try(target, endpoint, packet)) {
- packet->status = (target->htc_flags & HTC_OP_STATE_STOPPING) ?
- -ECANCELED : -ENOSPC;
- INIT_LIST_HEAD(&queue);
- list_add(&packet->list, &queue);
- htc_tx_complete(endpoint, &queue);
- }
-
- return 0;
-}
-
-/* flush endpoint TX queue */
-void ath6kl_htc_flush_txep(struct htc_target *target,
- enum htc_endpoint_id eid, u16 tag)
-{
- struct htc_packet *packet, *tmp_pkt;
- struct list_head discard_q, container;
- struct htc_endpoint *endpoint = &target->endpoint[eid];
-
- if (!endpoint->svc_id) {
- WARN_ON(1);
- return;
- }
-
- /* initialize the discard queue */
- INIT_LIST_HEAD(&discard_q);
-
- spin_lock_bh(&target->tx_lock);
-
- list_for_each_entry_safe(packet, tmp_pkt, &endpoint->txq, list) {
- if ((tag == HTC_TX_PACKET_TAG_ALL) ||
- (tag == packet->info.tx.tag))
- list_move_tail(&packet->list, &discard_q);
- }
-
- spin_unlock_bh(&target->tx_lock);
-
- list_for_each_entry_safe(packet, tmp_pkt, &discard_q, list) {
- packet->status = -ECANCELED;
- list_del(&packet->list);
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc tx flushing pkt 0x%p len %d ep %d tag 0x%x\n",
- packet, packet->act_len,
- packet->endpoint, packet->info.tx.tag);
-
- INIT_LIST_HEAD(&container);
- list_add_tail(&packet->list, &container);
- htc_tx_complete(endpoint, &container);
- }
-
-}
-
-static void ath6kl_htc_flush_txep_all(struct htc_target *target)
-{
- struct htc_endpoint *endpoint;
- int i;
-
- dump_cred_dist_stats(target);
-
- for (i = ENDPOINT_0; i < ENDPOINT_MAX; i++) {
- endpoint = &target->endpoint[i];
- if (endpoint->svc_id == 0)
- /* not in use.. */
- continue;
- ath6kl_htc_flush_txep(target, i, HTC_TX_PACKET_TAG_ALL);
- }
-}
-
-void ath6kl_htc_indicate_activity_change(struct htc_target *target,
- enum htc_endpoint_id eid, bool active)
-{
- struct htc_endpoint *endpoint = &target->endpoint[eid];
- bool dist = false;
-
- if (endpoint->svc_id == 0) {
- WARN_ON(1);
- return;
- }
-
- spin_lock_bh(&target->tx_lock);
-
- if (active) {
- if (!(endpoint->cred_dist.dist_flags & HTC_EP_ACTIVE)) {
- endpoint->cred_dist.dist_flags |= HTC_EP_ACTIVE;
- dist = true;
- }
- } else {
- if (endpoint->cred_dist.dist_flags & HTC_EP_ACTIVE) {
- endpoint->cred_dist.dist_flags &= ~HTC_EP_ACTIVE;
- dist = true;
- }
- }
-
- if (dist) {
- endpoint->cred_dist.txq_depth =
- get_queue_depth(&endpoint->txq);
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc tx activity ctxt 0x%p dist 0x%p\n",
- target->credit_info, &target->cred_dist_list);
-
- ath6kl_credit_distribute(target->credit_info,
- &target->cred_dist_list,
- HTC_CREDIT_DIST_ACTIVITY_CHANGE);
- }
-
- spin_unlock_bh(&target->tx_lock);
-
- if (dist && !active)
- htc_chk_ep_txq(target);
-}
-
-/* HTC Rx */
-
-static inline void ath6kl_htc_rx_update_stats(struct htc_endpoint *endpoint,
- int n_look_ahds)
-{
- endpoint->ep_st.rx_pkts++;
- if (n_look_ahds == 1)
- endpoint->ep_st.rx_lkahds++;
- else if (n_look_ahds > 1)
- endpoint->ep_st.rx_bundle_lkahd++;
-}
-
-static inline bool htc_valid_rx_frame_len(struct htc_target *target,
- enum htc_endpoint_id eid, int len)
-{
- return (eid == target->dev->ar->ctrl_ep) ?
- len <= ATH6KL_BUFFER_SIZE : len <= ATH6KL_AMSDU_BUFFER_SIZE;
-}
-
-static int htc_add_rxbuf(struct htc_target *target, struct htc_packet *packet)
-{
- struct list_head queue;
-
- INIT_LIST_HEAD(&queue);
- list_add_tail(&packet->list, &queue);
- return ath6kl_htc_add_rxbuf_multiple(target, &queue);
-}
-
-static void htc_reclaim_rxbuf(struct htc_target *target,
- struct htc_packet *packet,
- struct htc_endpoint *ep)
-{
- if (packet->info.rx.rx_flags & HTC_RX_PKT_NO_RECYCLE) {
- htc_rxpkt_reset(packet);
- packet->status = -ECANCELED;
- ep->ep_cb.rx(ep->target, packet);
- } else {
- htc_rxpkt_reset(packet);
- htc_add_rxbuf((void *)(target), packet);
- }
-}
-
-static void reclaim_rx_ctrl_buf(struct htc_target *target,
- struct htc_packet *packet)
-{
- spin_lock_bh(&target->htc_lock);
- list_add_tail(&packet->list, &target->free_ctrl_rxbuf);
- spin_unlock_bh(&target->htc_lock);
-}
-
-static int ath6kl_htc_rx_packet(struct htc_target *target,
- struct htc_packet *packet,
- u32 rx_len)
-{
- struct ath6kl_device *dev = target->dev;
- u32 padded_len;
- int status;
-
- padded_len = CALC_TXRX_PADDED_LEN(target, rx_len);
-
- if (padded_len > packet->buf_len) {
- ath6kl_err("not enough receive space for packet - padlen %d recvlen %d bufferlen %d\n",
- padded_len, rx_len, packet->buf_len);
- return -ENOMEM;
- }
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc rx 0x%p hdr x%x len %d mbox 0x%x\n",
- packet, packet->info.rx.exp_hdr,
- padded_len, dev->ar->mbox_info.htc_addr);
-
- status = hif_read_write_sync(dev->ar,
- dev->ar->mbox_info.htc_addr,
- packet->buf, padded_len,
- HIF_RD_SYNC_BLOCK_FIX);
-
- packet->status = status;
-
- return status;
-}
-
-/*
- * optimization for recv packets, we can indicate a
- * "hint" that there are more single-packets to fetch
- * on this endpoint.
- */
-static void ath6kl_htc_rx_set_indicate(u32 lk_ahd,
- struct htc_endpoint *endpoint,
- struct htc_packet *packet)
-{
- struct htc_frame_hdr *htc_hdr = (struct htc_frame_hdr *)&lk_ahd;
-
- if (htc_hdr->eid == packet->endpoint) {
- if (!list_empty(&endpoint->rx_bufq))
- packet->info.rx.indicat_flags |=
- HTC_RX_FLAGS_INDICATE_MORE_PKTS;
- }
-}
-
-static void ath6kl_htc_rx_chk_water_mark(struct htc_endpoint *endpoint)
-{
- struct htc_ep_callbacks ep_cb = endpoint->ep_cb;
-
- if (ep_cb.rx_refill_thresh > 0) {
- spin_lock_bh(&endpoint->target->rx_lock);
- if (get_queue_depth(&endpoint->rx_bufq)
- < ep_cb.rx_refill_thresh) {
- spin_unlock_bh(&endpoint->target->rx_lock);
- ep_cb.rx_refill(endpoint->target, endpoint->eid);
- return;
- }
- spin_unlock_bh(&endpoint->target->rx_lock);
- }
-}
-
-/* This function is called with rx_lock held */
-static int ath6kl_htc_rx_setup(struct htc_target *target,
- struct htc_endpoint *ep,
- u32 *lk_ahds, struct list_head *queue, int n_msg)
-{
- struct htc_packet *packet;
- /* FIXME: type of lk_ahds can't be right */
- struct htc_frame_hdr *htc_hdr = (struct htc_frame_hdr *)lk_ahds;
- struct htc_ep_callbacks ep_cb;
- int status = 0, j, full_len;
- bool no_recycle;
-
- full_len = CALC_TXRX_PADDED_LEN(target,
- le16_to_cpu(htc_hdr->payld_len) +
- sizeof(*htc_hdr));
-
- if (!htc_valid_rx_frame_len(target, ep->eid, full_len)) {
- ath6kl_warn("Rx buffer requested with invalid length"
- " htc_hdr : eid - %d, flags = 0x%x, len - %d\n",
- htc_hdr->eid, htc_hdr->flags, le16_to_cpu(htc_hdr->payld_len));
- return -EINVAL;
- }
-
- ep_cb = ep->ep_cb;
- for (j = 0; j < n_msg; j++) {
-
- /*
- * Reset flag, any packets allocated using the
- * rx_alloc() API cannot be recycled on
- * cleanup,they must be explicitly returned.
- */
- no_recycle = false;
-
- if (ep_cb.rx_allocthresh &&
- (full_len > ep_cb.rx_alloc_thresh)) {
- ep->ep_st.rx_alloc_thresh_hit += 1;
- ep->ep_st.rxalloc_thresh_byte +=
- le16_to_cpu(htc_hdr->payld_len);
-
- spin_unlock_bh(&target->rx_lock);
- no_recycle = true;
-
- packet = ep_cb.rx_allocthresh(ep->target, ep->eid,
- full_len);
- spin_lock_bh(&target->rx_lock);
- } else {
- /* refill handler is being used */
- if (list_empty(&ep->rx_bufq)) {
- if (ep_cb.rx_refill) {
- spin_unlock_bh(&target->rx_lock);
- ep_cb.rx_refill(ep->target, ep->eid);
- spin_lock_bh(&target->rx_lock);
- }
- }
-
- if (list_empty(&ep->rx_bufq))
- packet = NULL;
- else {
- packet = list_first_entry(&ep->rx_bufq,
- struct htc_packet, list);
- list_del(&packet->list);
- }
- }
-
- if (!packet) {
- target->rx_st_flags |= HTC_RECV_WAIT_BUFFERS;
- target->ep_waiting = ep->eid;
- return -ENOSPC;
- }
-
- /* clear flags */
- packet->info.rx.rx_flags = 0;
- packet->info.rx.indicat_flags = 0;
- packet->status = 0;
-
- if (no_recycle)
- /*
- * flag that these packets cannot be
- * recycled, they have to be returned to
- * the user
- */
- packet->info.rx.rx_flags |= HTC_RX_PKT_NO_RECYCLE;
-
- /* Caller needs to free this upon any failure */
- list_add_tail(&packet->list, queue);
-
- if (target->htc_flags & HTC_OP_STATE_STOPPING) {
- status = -ECANCELED;
- break;
- }
-
- if (j) {
- packet->info.rx.rx_flags |= HTC_RX_PKT_REFRESH_HDR;
- packet->info.rx.exp_hdr = 0xFFFFFFFF;
- } else
- /* set expected look ahead */
- packet->info.rx.exp_hdr = *lk_ahds;
-
- packet->act_len = le16_to_cpu(htc_hdr->payld_len) +
- HTC_HDR_LENGTH;
- }
-
- return status;
-}
-
-static int ath6kl_htc_rx_alloc(struct htc_target *target,
- u32 lk_ahds[], int msg,
- struct htc_endpoint *endpoint,
- struct list_head *queue)
-{
- int status = 0;
- struct htc_packet *packet, *tmp_pkt;
- struct htc_frame_hdr *htc_hdr;
- int i, n_msg;
- struct ath6kl_vif *vif;
- vif = ath6kl_vif_first(target->dev->ar);
-
- spin_lock_bh(&target->rx_lock);
-
- for (i = 0; i < msg; i++) {
-
- htc_hdr = (struct htc_frame_hdr *)&lk_ahds[i];
-
- if (htc_hdr->eid >= ENDPOINT_MAX) {
- ath6kl_err("invalid ep in look-ahead: %d\n",
- htc_hdr->eid);
- status = -ENOMEM;
- break;
- }
-
- if (htc_hdr->eid != endpoint->eid) {
- ath6kl_err("invalid ep in look-ahead: %d should be : %d (index:%d)\n",
- htc_hdr->eid, endpoint->eid, i);
- status = -ENOMEM;
- break;
- }
-
- if (le16_to_cpu(htc_hdr->payld_len) > HTC_MAX_PAYLOAD_LENGTH) {
- ath6kl_err("payload len %d exceeds max htc : %d !\n",
- htc_hdr->payld_len,
- (u32) HTC_MAX_PAYLOAD_LENGTH);
- status = -ENOMEM;
- break;
- }
-
- if (endpoint->svc_id == 0) {
- ath6kl_err("ep %d is not connected !\n", htc_hdr->eid);
- status = -ENOMEM;
- break;
- }
-
- if (htc_hdr->flags & HTC_FLG_RX_BNDL_CNT) {
- /*
- * HTC header indicates that every packet to follow
- * has the same padded length so that it can be
- * optimally fetched as a full bundle.
- */
- n_msg = (htc_hdr->flags & HTC_FLG_RX_BNDL_CNT) >>
- HTC_FLG_RX_BNDL_CNT_S;
-
- /* the count doesn't include the starter frame */
- n_msg++;
- if (n_msg > target->msg_per_bndl_max) {
- status = -ENOMEM;
- break;
- }
-
- endpoint->ep_st.rx_bundle_from_hdr += 1;
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc rx bundle pkts %d\n",
- n_msg);
- } else
- /* HTC header only indicates 1 message to fetch */
- n_msg = 1;
-
- /* Setup packet buffers for each message */
- status = ath6kl_htc_rx_setup(target, endpoint, &lk_ahds[i],
- queue, n_msg);
-
- /*
- * This is due to unavailabilty of buffers to rx entire data.
- * Return no error so that free buffers from queue can be used
- * to receive partial data.
- */
- if (status == -ENOSPC) {
- spin_unlock_bh(&target->rx_lock);
- return 0;
- }
-
- if (status)
- break;
- }
-
- spin_unlock_bh(&target->rx_lock);
-
- if (status) {
- list_for_each_entry_safe(packet, tmp_pkt, queue, list) {
- list_del(&packet->list);
- htc_reclaim_rxbuf(target, packet,
- &target->endpoint[packet->endpoint]);
- }
- }
-
- return status;
-}
-
-static void htc_ctrl_rx(struct htc_target *context, struct htc_packet *packets)
-{
- if (packets->endpoint != ENDPOINT_0) {
- WARN_ON(1);
- return;
- }
-
- if (packets->status == -ECANCELED) {
- reclaim_rx_ctrl_buf(context, packets);
- return;
- }
-
- if (packets->act_len > 0) {
- ath6kl_err("htc_ctrl_rx, got message with len:%zu\n",
- packets->act_len + HTC_HDR_LENGTH);
-
- ath6kl_dbg_dump(ATH6KL_DBG_HTC,
- "htc rx unexpected endpoint 0 message", "",
- packets->buf - HTC_HDR_LENGTH,
- packets->act_len + HTC_HDR_LENGTH);
- }
-
- htc_reclaim_rxbuf(context, packets, &context->endpoint[0]);
-}
-
-static void htc_proc_cred_rpt(struct htc_target *target,
- struct htc_credit_report *rpt,
- int n_entries,
- enum htc_endpoint_id from_ep)
-{
- struct htc_endpoint *endpoint;
- int tot_credits = 0, i;
- bool dist = false;
-
- spin_lock_bh(&target->tx_lock);
-
- for (i = 0; i < n_entries; i++, rpt++) {
- if (rpt->eid >= ENDPOINT_MAX) {
- WARN_ON(1);
- spin_unlock_bh(&target->tx_lock);
- return;
- }
-
- endpoint = &target->endpoint[rpt->eid];
-
- ath6kl_dbg(ATH6KL_DBG_CREDIT,
- "credit report ep %d credits %d\n",
- rpt->eid, rpt->credits);
-
- endpoint->ep_st.tx_cred_rpt += 1;
- endpoint->ep_st.cred_retnd += rpt->credits;
-
- if (from_ep == rpt->eid) {
- /*
- * This credit report arrived on the same endpoint
- * indicating it arrived in an RX packet.
- */
- endpoint->ep_st.cred_from_rx += rpt->credits;
- endpoint->ep_st.cred_rpt_from_rx += 1;
- } else if (from_ep == ENDPOINT_0) {
- /* credit arrived on endpoint 0 as a NULL message */
- endpoint->ep_st.cred_from_ep0 += rpt->credits;
- endpoint->ep_st.cred_rpt_ep0 += 1;
- } else {
- endpoint->ep_st.cred_from_other += rpt->credits;
- endpoint->ep_st.cred_rpt_from_other += 1;
- }
-
- if (rpt->eid == ENDPOINT_0)
- /* always give endpoint 0 credits back */
- endpoint->cred_dist.credits += rpt->credits;
- else {
- endpoint->cred_dist.cred_to_dist += rpt->credits;
- dist = true;
- }
-
- /*
- * Refresh tx depth for distribution function that will
- * recover these credits NOTE: this is only valid when
- * there are credits to recover!
- */
- endpoint->cred_dist.txq_depth =
- get_queue_depth(&endpoint->txq);
-
- tot_credits += rpt->credits;
- }
-
- if (dist) {
- /*
- * This was a credit return based on a completed send
- * operations note, this is done with the lock held
- */
- ath6kl_credit_distribute(target->credit_info,
- &target->cred_dist_list,
- HTC_CREDIT_DIST_SEND_COMPLETE);
- }
-
- spin_unlock_bh(&target->tx_lock);
-
- if (tot_credits)
- htc_chk_ep_txq(target);
-}
-
-static int htc_parse_trailer(struct htc_target *target,
- struct htc_record_hdr *record,
- u8 *record_buf, u32 *next_lk_ahds,
- enum htc_endpoint_id endpoint,
- int *n_lk_ahds)
-{
- struct htc_bundle_lkahd_rpt *bundle_lkahd_rpt;
- struct htc_lookahead_report *lk_ahd;
- int len;
-
- switch (record->rec_id) {
- case HTC_RECORD_CREDITS:
- len = record->len / sizeof(struct htc_credit_report);
- if (!len) {
- WARN_ON(1);
- return -EINVAL;
- }
-
- htc_proc_cred_rpt(target,
- (struct htc_credit_report *) record_buf,
- len, endpoint);
- break;
- case HTC_RECORD_LOOKAHEAD:
- len = record->len / sizeof(*lk_ahd);
- if (!len) {
- WARN_ON(1);
- return -EINVAL;
- }
-
- lk_ahd = (struct htc_lookahead_report *) record_buf;
- if ((lk_ahd->pre_valid == ((~lk_ahd->post_valid) & 0xFF))
- && next_lk_ahds) {
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc rx lk_ahd found pre_valid 0x%x post_valid 0x%x\n",
- lk_ahd->pre_valid, lk_ahd->post_valid);
-
- /* look ahead bytes are valid, copy them over */
- memcpy((u8 *)&next_lk_ahds[0], lk_ahd->lk_ahd, 4);
-
- ath6kl_dbg_dump(ATH6KL_DBG_HTC,
- "htc rx next look ahead",
- "", next_lk_ahds, 4);
-
- if (n_lk_ahds)
- *n_lk_ahds = 1;
- }
- break;
- case HTC_RECORD_LOOKAHEAD_BUNDLE:
- len = record->len / sizeof(*bundle_lkahd_rpt);
- if (!len || (len > HTC_HOST_MAX_MSG_PER_BUNDLE)) {
- WARN_ON(1);
- return -EINVAL;
- }
-
- if (next_lk_ahds) {
- int i;
-
- bundle_lkahd_rpt =
- (struct htc_bundle_lkahd_rpt *) record_buf;
-
- ath6kl_dbg_dump(ATH6KL_DBG_HTC, "htc rx bundle lk_ahd",
- "", record_buf, record->len);
-
- for (i = 0; i < len; i++) {
- memcpy((u8 *)&next_lk_ahds[i],
- bundle_lkahd_rpt->lk_ahd, 4);
- bundle_lkahd_rpt++;
- }
-
- if (n_lk_ahds)
- *n_lk_ahds = i;
- }
- break;
- default:
- ath6kl_err("unhandled record: id:%d len:%d\n",
- record->rec_id, record->len);
- break;
- }
-
- return 0;
-
-}
-
-static int htc_proc_trailer(struct htc_target *target,
- u8 *buf, int len, u32 *next_lk_ahds,
- int *n_lk_ahds, enum htc_endpoint_id endpoint)
-{
- struct htc_record_hdr *record;
- int orig_len;
- int status;
- u8 *record_buf;
- u8 *orig_buf;
-
- ath6kl_dbg(ATH6KL_DBG_HTC, "htc rx trailer len %d\n", len);
- ath6kl_dbg_dump(ATH6KL_DBG_HTC, NULL, "", buf, len);
-
- orig_buf = buf;
- orig_len = len;
- status = 0;
-
- while (len > 0) {
-
- if (len < sizeof(struct htc_record_hdr)) {
- status = -ENOMEM;
- break;
- }
- /* these are byte aligned structs */
- record = (struct htc_record_hdr *) buf;
- len -= sizeof(struct htc_record_hdr);
- buf += sizeof(struct htc_record_hdr);
-
- if (record->len > len) {
- ath6kl_err("invalid record len: %d (id:%d) buf has: %d bytes left\n",
- record->len, record->rec_id, len);
- status = -ENOMEM;
- break;
- }
- record_buf = buf;
-
- status = htc_parse_trailer(target, record, record_buf,
- next_lk_ahds, endpoint, n_lk_ahds);
-
- if (status)
- break;
-
- /* advance buffer past this record for next time around */
- buf += record->len;
- len -= record->len;
- }
-
- if (status)
- ath6kl_dbg_dump(ATH6KL_DBG_HTC, "htc rx bad trailer",
- "", orig_buf, orig_len);
-
- return status;
-}
-
-static int ath6kl_htc_rx_process_hdr(struct htc_target *target,
- struct htc_packet *packet,
- u32 *next_lkahds, int *n_lkahds)
-{
- int status = 0;
- u16 payload_len;
- u32 lk_ahd;
- struct htc_frame_hdr *htc_hdr = (struct htc_frame_hdr *)packet->buf;
-
- if (n_lkahds != NULL)
- *n_lkahds = 0;
-
- /*
- * NOTE: we cannot assume the alignment of buf, so we use the safe
- * macros to retrieve 16 bit fields.
- */
- payload_len = le16_to_cpu(get_unaligned(&htc_hdr->payld_len));
-
- memcpy((u8 *)&lk_ahd, packet->buf, sizeof(lk_ahd));
-
- if (packet->info.rx.rx_flags & HTC_RX_PKT_REFRESH_HDR) {
- /*
- * Refresh the expected header and the actual length as it
- * was unknown when this packet was grabbed as part of the
- * bundle.
- */
- packet->info.rx.exp_hdr = lk_ahd;
- packet->act_len = payload_len + HTC_HDR_LENGTH;
-
- /* validate the actual header that was refreshed */
- if (packet->act_len > packet->buf_len) {
- ath6kl_err("refreshed hdr payload len (%d) in bundled recv is invalid (hdr: 0x%X)\n",
- payload_len, lk_ahd);
- /*
- * Limit this to max buffer just to print out some
- * of the buffer.
- */
- packet->act_len = min(packet->act_len, packet->buf_len);
- status = -ENOMEM;
- goto fail_rx;
- }
-
- if (packet->endpoint != htc_hdr->eid) {
- ath6kl_err("refreshed hdr ep (%d) does not match expected ep (%d)\n",
- htc_hdr->eid, packet->endpoint);
- status = -ENOMEM;
- goto fail_rx;
- }
- }
-
- if (lk_ahd != packet->info.rx.exp_hdr) {
- ath6kl_err("%s(): lk_ahd mismatch! (pPkt:0x%p flags:0x%X)\n",
- __func__, packet, packet->info.rx.rx_flags);
- ath6kl_dbg_dump(ATH6KL_DBG_HTC, "htc rx expected lk_ahd",
- "", &packet->info.rx.exp_hdr, 4);
- ath6kl_dbg_dump(ATH6KL_DBG_HTC, "htc rx current header",
- "", (u8 *)&lk_ahd, sizeof(lk_ahd));
- status = -ENOMEM;
- goto fail_rx;
- }
-
- if (htc_hdr->flags & HTC_FLG_RX_TRAILER) {
- if (htc_hdr->ctrl[0] < sizeof(struct htc_record_hdr) ||
- htc_hdr->ctrl[0] > payload_len) {
- ath6kl_err("%s(): invalid hdr (payload len should be :%d, CB[0] is:%d)\n",
- __func__, payload_len, htc_hdr->ctrl[0]);
- status = -ENOMEM;
- goto fail_rx;
- }
-
- if (packet->info.rx.rx_flags & HTC_RX_PKT_IGNORE_LOOKAHEAD) {
- next_lkahds = NULL;
- n_lkahds = NULL;
- }
-
- status = htc_proc_trailer(target, packet->buf + HTC_HDR_LENGTH
- + payload_len - htc_hdr->ctrl[0],
- htc_hdr->ctrl[0], next_lkahds,
- n_lkahds, packet->endpoint);
-
- if (status)
- goto fail_rx;
-
- packet->act_len -= htc_hdr->ctrl[0];
- }
-
- packet->buf += HTC_HDR_LENGTH;
- packet->act_len -= HTC_HDR_LENGTH;
-
-fail_rx:
- if (status)
- ath6kl_dbg_dump(ATH6KL_DBG_HTC, "htc rx bad packet",
- "", packet->buf, packet->act_len);
-
- return status;
-}
-
-static void ath6kl_htc_rx_complete(struct htc_endpoint *endpoint,
- struct htc_packet *packet)
-{
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc rx complete ep %d packet 0x%p\n",
- endpoint->eid, packet);
- endpoint->ep_cb.rx(endpoint->target, packet);
-}
-
-static int ath6kl_htc_rx_bundle(struct htc_target *target,
- struct list_head *rxq,
- struct list_head *sync_compq,
- int *n_pkt_fetched, bool part_bundle)
-{
- struct hif_scatter_req *scat_req;
- struct htc_packet *packet;
- int rem_space = target->max_rx_bndl_sz;
- int n_scat_pkt, status = 0, i, len;
-
- n_scat_pkt = get_queue_depth(rxq);
- n_scat_pkt = min(n_scat_pkt, target->msg_per_bndl_max);
-
- if ((get_queue_depth(rxq) - n_scat_pkt) > 0) {
- /*
- * We were forced to split this bundle receive operation
- * all packets in this partial bundle must have their
- * lookaheads ignored.
- */
- part_bundle = true;
-
- /*
- * This would only happen if the target ignored our max
- * bundle limit.
- */
- ath6kl_warn("%s(): partial bundle detected num:%d , %d\n",
- __func__, get_queue_depth(rxq), n_scat_pkt);
- }
-
- len = 0;
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc rx bundle depth %d pkts %d\n",
- get_queue_depth(rxq), n_scat_pkt);
-
- scat_req = hif_scatter_req_get(target->dev->ar);
-
- if (scat_req == NULL)
- goto fail_rx_pkt;
-
- for (i = 0; i < n_scat_pkt; i++) {
- int pad_len;
-
- packet = list_first_entry(rxq, struct htc_packet, list);
- list_del(&packet->list);
-
- pad_len = CALC_TXRX_PADDED_LEN(target,
- packet->act_len);
-
- if ((rem_space - pad_len) < 0) {
- list_add(&packet->list, rxq);
- break;
- }
-
- rem_space -= pad_len;
-
- if (part_bundle || (i < (n_scat_pkt - 1)))
- /*
- * Packet 0..n-1 cannot be checked for look-aheads
- * since we are fetching a bundle the last packet
- * however can have it's lookahead used
- */
- packet->info.rx.rx_flags |=
- HTC_RX_PKT_IGNORE_LOOKAHEAD;
-
- /* NOTE: 1 HTC packet per scatter entry */
- scat_req->scat_list[i].buf = packet->buf;
- scat_req->scat_list[i].len = pad_len;
-
- packet->info.rx.rx_flags |= HTC_RX_PKT_PART_OF_BUNDLE;
-
- list_add_tail(&packet->list, sync_compq);
-
- WARN_ON(!scat_req->scat_list[i].len);
- len += scat_req->scat_list[i].len;
- }
-
- scat_req->len = len;
- scat_req->scat_entries = i;
-
- status = ath6kl_hif_submit_scat_req(target->dev, scat_req, true);
-
- if (!status)
- *n_pkt_fetched = i;
-
- /* free scatter request */
- hif_scatter_req_add(target->dev->ar, scat_req);
-
-fail_rx_pkt:
-
- return status;
-}
-
-static int ath6kl_htc_rx_process_packets(struct htc_target *target,
- struct list_head *comp_pktq,
- u32 lk_ahds[],
- int *n_lk_ahd)
-{
- struct htc_packet *packet, *tmp_pkt;
- struct htc_endpoint *ep;
- int status = 0;
-
- list_for_each_entry_safe(packet, tmp_pkt, comp_pktq, list) {
- ep = &target->endpoint[packet->endpoint];
-
- /* process header for each of the recv packet */
- status = ath6kl_htc_rx_process_hdr(target, packet, lk_ahds,
- n_lk_ahd);
- if (status)
- return status;
-
- list_del(&packet->list);
-
- if (list_empty(comp_pktq)) {
- /*
- * Last packet's more packet flag is set
- * based on the lookahead.
- */
- if (*n_lk_ahd > 0)
- ath6kl_htc_rx_set_indicate(lk_ahds[0],
- ep, packet);
- } else
- /*
- * Packets in a bundle automatically have
- * this flag set.
- */
- packet->info.rx.indicat_flags |=
- HTC_RX_FLAGS_INDICATE_MORE_PKTS;
-
- ath6kl_htc_rx_update_stats(ep, *n_lk_ahd);
-
- if (packet->info.rx.rx_flags & HTC_RX_PKT_PART_OF_BUNDLE)
- ep->ep_st.rx_bundl += 1;
-
- ath6kl_htc_rx_complete(ep, packet);
- }
-
- return status;
-}
-
-static int ath6kl_htc_rx_fetch(struct htc_target *target,
- struct list_head *rx_pktq,
- struct list_head *comp_pktq)
-{
- int fetched_pkts;
- bool part_bundle = false;
- int status = 0;
- struct list_head tmp_rxq;
- struct htc_packet *packet, *tmp_pkt;
-
- /* now go fetch the list of HTC packets */
- while (!list_empty(rx_pktq)) {
- fetched_pkts = 0;
-
- INIT_LIST_HEAD(&tmp_rxq);
-
- if (target->rx_bndl_enable && (get_queue_depth(rx_pktq) > 1)) {
- /*
- * There are enough packets to attempt a
- * bundle transfer and recv bundling is
- * allowed.
- */
- status = ath6kl_htc_rx_bundle(target, rx_pktq,
- &tmp_rxq,
- &fetched_pkts,
- part_bundle);
- if (status)
- goto fail_rx;
-
- if (!list_empty(rx_pktq))
- part_bundle = true;
-
- list_splice_tail_init(&tmp_rxq, comp_pktq);
- }
-
- if (!fetched_pkts) {
-
- packet = list_first_entry(rx_pktq, struct htc_packet,
- list);
-
- /* fully synchronous */
- packet->completion = NULL;
-
- if (!list_is_singular(rx_pktq))
- /*
- * look_aheads in all packet
- * except the last one in the
- * bundle must be ignored
- */
- packet->info.rx.rx_flags |=
- HTC_RX_PKT_IGNORE_LOOKAHEAD;
-
- /* go fetch the packet */
- status = ath6kl_htc_rx_packet(target, packet,
- packet->act_len);
-
- list_move_tail(&packet->list, &tmp_rxq);
-
- if (status)
- goto fail_rx;
-
- list_splice_tail_init(&tmp_rxq, comp_pktq);
- }
- }
-
- return 0;
-
-fail_rx:
-
- /*
- * Cleanup any packets we allocated but didn't use to
- * actually fetch any packets.
- */
-
- list_for_each_entry_safe(packet, tmp_pkt, rx_pktq, list) {
- list_del(&packet->list);
- htc_reclaim_rxbuf(target, packet,
- &target->endpoint[packet->endpoint]);
- }
-
- list_for_each_entry_safe(packet, tmp_pkt, &tmp_rxq, list) {
- list_del(&packet->list);
- htc_reclaim_rxbuf(target, packet,
- &target->endpoint[packet->endpoint]);
- }
-
- return status;
-}
-
-int ath6kl_htc_rxmsg_pending_handler(struct htc_target *target,
- u32 msg_look_ahead, int *num_pkts)
-{
- struct htc_packet *packets, *tmp_pkt;
- struct htc_endpoint *endpoint;
- struct list_head rx_pktq, comp_pktq;
- int status = 0;
- u32 look_aheads[HTC_HOST_MAX_MSG_PER_BUNDLE];
- int num_look_ahead = 1;
- enum htc_endpoint_id id;
- int n_fetched = 0;
- struct ath6kl_vif *vif;
- vif = ath6kl_vif_first(target->dev->ar);
-
- INIT_LIST_HEAD(&comp_pktq);
- *num_pkts = 0;
-
- /*
- * On first entry copy the look_aheads into our temp array for
- * processing
- */
- look_aheads[0] = msg_look_ahead;
-
- while (true) {
-
- /*
- * First lookahead sets the expected endpoint IDs for all
- * packets in a bundle.
- */
- id = ((struct htc_frame_hdr *)&look_aheads[0])->eid;
- endpoint = &target->endpoint[id];
-
- if (id >= ENDPOINT_MAX) {
- ath6kl_err("MsgPend, invalid endpoint in look-ahead: %d\n",
- id);
- status = -ENOMEM;
- break;
- }
-
- INIT_LIST_HEAD(&rx_pktq);
- INIT_LIST_HEAD(&comp_pktq);
-
- /*
- * Try to allocate as many HTC RX packets indicated by the
- * look_aheads.
- */
- status = ath6kl_htc_rx_alloc(target, look_aheads,
- num_look_ahead, endpoint,
- &rx_pktq);
- if (status)
- break;
-
- if (get_queue_depth(&rx_pktq) >= 2)
- /*
- * A recv bundle was detected, force IRQ status
- * re-check again
- */
- target->chk_irq_status_cnt = 1;
-
- n_fetched += get_queue_depth(&rx_pktq);
-
- num_look_ahead = 0;
-
- status = ath6kl_htc_rx_fetch(target, &rx_pktq, &comp_pktq);
-
- if (!status)
- ath6kl_htc_rx_chk_water_mark(endpoint);
-
- /* Process fetched packets */
- status = ath6kl_htc_rx_process_packets(target, &comp_pktq,
- look_aheads,
- &num_look_ahead);
-
- if (!num_look_ahead || status)
- break;
-
- /*
- * For SYNCH processing, if we get here, we are running
- * through the loop again due to a detected lookahead. Set
- * flag that we should re-check IRQ status registers again
- * before leaving IRQ processing, this can net better
- * performance in high throughput situations.
- */
- target->chk_irq_status_cnt = 1;
- }
-
- if (status) {
- ath6kl_err("failed to get pending recv messages: %d\n",
- status);
-
- /* cleanup any packets in sync completion queue */
- list_for_each_entry_safe(packets, tmp_pkt, &comp_pktq, list) {
- list_del(&packets->list);
- htc_reclaim_rxbuf(target, packets,
- &target->endpoint[packets->endpoint]);
- }
-
- if (target->htc_flags & HTC_OP_STATE_STOPPING) {
- ath6kl_warn("host is going to stop blocking receiver for htc_stop\n");
- ath6kl_hif_rx_control(target->dev, false);
- }
- }
-
- /*
- * Before leaving, check to see if host ran out of buffers and
- * needs to stop the receiver.
- */
- if (target->rx_st_flags & HTC_RECV_WAIT_BUFFERS) {
- ath6kl_warn("host has no rx buffers blocking receiver to prevent overrun\n");
- ath6kl_hif_rx_control(target->dev, false);
- }
- *num_pkts = n_fetched;
-
- return status;
-}
-
-/*
- * Synchronously wait for a control message from the target,
- * This function is used at initialization time ONLY. At init messages
- * on ENDPOINT 0 are expected.
- */
-static struct htc_packet *htc_wait_for_ctrl_msg(struct htc_target *target)
-{
- struct htc_packet *packet = NULL;
- struct htc_frame_hdr *htc_hdr;
- u32 look_ahead;
-
- if (ath6kl_hif_poll_mboxmsg_rx(target->dev, &look_ahead,
- HTC_TARGET_RESPONSE_TIMEOUT))
- return NULL;
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc rx wait ctrl look_ahead 0x%X\n", look_ahead);
-
- htc_hdr = (struct htc_frame_hdr *)&look_ahead;
-
- if (htc_hdr->eid != ENDPOINT_0)
- return NULL;
-
- packet = htc_get_control_buf(target, false);
-
- if (!packet)
- return NULL;
-
- packet->info.rx.rx_flags = 0;
- packet->info.rx.exp_hdr = look_ahead;
- packet->act_len = le16_to_cpu(htc_hdr->payld_len) + HTC_HDR_LENGTH;
-
- if (packet->act_len > packet->buf_len)
- goto fail_ctrl_rx;
-
- /* we want synchronous operation */
- packet->completion = NULL;
-
- /* get the message from the device, this will block */
- if (ath6kl_htc_rx_packet(target, packet, packet->act_len))
- goto fail_ctrl_rx;
-
- /* process receive header */
- packet->status = ath6kl_htc_rx_process_hdr(target, packet, NULL, NULL);
-
- if (packet->status) {
- ath6kl_err("htc_wait_for_ctrl_msg, ath6kl_htc_rx_process_hdr failed (status = %d)\n",
- packet->status);
- goto fail_ctrl_rx;
- }
-
- return packet;
-
-fail_ctrl_rx:
- if (packet != NULL) {
- htc_rxpkt_reset(packet);
- reclaim_rx_ctrl_buf(target, packet);
- }
-
- return NULL;
-}
-
-int ath6kl_htc_add_rxbuf_multiple(struct htc_target *target,
- struct list_head *pkt_queue)
-{
- struct htc_endpoint *endpoint;
- struct htc_packet *first_pkt;
- bool rx_unblock = false;
- int status = 0, depth;
-
- if (list_empty(pkt_queue))
- return -ENOMEM;
-
- first_pkt = list_first_entry(pkt_queue, struct htc_packet, list);
-
- if (first_pkt->endpoint >= ENDPOINT_MAX)
- return status;
-
- depth = get_queue_depth(pkt_queue);
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc rx add multiple ep id %d cnt %d len %d\n",
- first_pkt->endpoint, depth, first_pkt->buf_len);
-
- endpoint = &target->endpoint[first_pkt->endpoint];
-
- if (target->htc_flags & HTC_OP_STATE_STOPPING) {
- struct htc_packet *packet, *tmp_pkt;
-
- /* walk through queue and mark each one canceled */
- list_for_each_entry_safe(packet, tmp_pkt, pkt_queue, list) {
- packet->status = -ECANCELED;
- list_del(&packet->list);
- ath6kl_htc_rx_complete(endpoint, packet);
- }
-
- return status;
- }
-
- spin_lock_bh(&target->rx_lock);
-
- list_splice_tail_init(pkt_queue, &endpoint->rx_bufq);
-
- /* check if we are blocked waiting for a new buffer */
- if (target->rx_st_flags & HTC_RECV_WAIT_BUFFERS) {
- if (target->ep_waiting == first_pkt->endpoint) {
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc rx blocked on ep %d, unblocking\n",
- target->ep_waiting);
- target->rx_st_flags &= ~HTC_RECV_WAIT_BUFFERS;
- target->ep_waiting = ENDPOINT_MAX;
- rx_unblock = true;
- }
- }
-
- spin_unlock_bh(&target->rx_lock);
-
- if (rx_unblock && !(target->htc_flags & HTC_OP_STATE_STOPPING))
- /* TODO : implement a buffer threshold count? */
- ath6kl_hif_rx_control(target->dev, true);
-
- return status;
-}
-
-void ath6kl_htc_flush_rx_buf(struct htc_target *target)
-{
- struct htc_endpoint *endpoint;
- struct htc_packet *packet, *tmp_pkt;
- int i;
-
- for (i = ENDPOINT_0; i < ENDPOINT_MAX; i++) {
- endpoint = &target->endpoint[i];
- if (!endpoint->svc_id)
- /* not in use.. */
- continue;
-
- spin_lock_bh(&target->rx_lock);
- list_for_each_entry_safe(packet, tmp_pkt,
- &endpoint->rx_bufq, list) {
- list_del(&packet->list);
- spin_unlock_bh(&target->rx_lock);
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc rx flush pkt 0x%p len %d ep %d\n",
- packet, packet->buf_len,
- packet->endpoint);
- /*
- * packets in rx_bufq of endpoint 0 have originally
- * been queued from target->free_ctrl_rxbuf where
- * packet and packet->buf_start are allocated
- * separately using kmalloc(). For other endpoint
- * rx_bufq, it is allocated as skb where packet is
- * skb->head. Take care of this difference while freeing
- * the memory.
- */
- if (packet->endpoint == ENDPOINT_0) {
- kfree(packet->buf_start);
- kfree(packet);
- } else {
- dev_kfree_skb(packet->pkt_cntxt);
- }
- spin_lock_bh(&target->rx_lock);
- }
- spin_unlock_bh(&target->rx_lock);
- }
-}
-
-int ath6kl_htc_conn_service(struct htc_target *target,
- struct htc_service_connect_req *conn_req,
- struct htc_service_connect_resp *conn_resp)
-{
- struct htc_packet *rx_pkt = NULL;
- struct htc_packet *tx_pkt = NULL;
- struct htc_conn_service_resp *resp_msg;
- struct htc_conn_service_msg *conn_msg;
- struct htc_endpoint *endpoint;
- enum htc_endpoint_id assigned_ep = ENDPOINT_MAX;
- unsigned int max_msg_sz = 0;
- int status = 0;
-
- ath6kl_dbg(ATH6KL_DBG_HTC,
- "htc connect service target 0x%p service id 0x%x\n",
- target, conn_req->svc_id);
-
- if (conn_req->svc_id == HTC_CTRL_RSVD_SVC) {
- /* special case for pseudo control service */
- assigned_ep = ENDPOINT_0;
- max_msg_sz = HTC_MAX_CTRL_MSG_LEN;
- } else {
- /* allocate a packet to send to the target */
- tx_pkt = htc_get_control_buf(target, true);
-
- if (!tx_pkt)
- return -ENOMEM;
-
- conn_msg = (struct htc_conn_service_msg *)tx_pkt->buf;
- memset(conn_msg, 0, sizeof(*conn_msg));
- conn_msg->msg_id = cpu_to_le16(HTC_MSG_CONN_SVC_ID);
- conn_msg->svc_id = cpu_to_le16(conn_req->svc_id);
- conn_msg->conn_flags = cpu_to_le16(conn_req->conn_flags);
-
- set_htc_pkt_info(tx_pkt, NULL, (u8 *) conn_msg,
- sizeof(*conn_msg) + conn_msg->svc_meta_len,
- ENDPOINT_0, HTC_SERVICE_TX_PACKET_TAG);
-
- /* we want synchronous operation */
- tx_pkt->completion = NULL;
- ath6kl_htc_tx_prep_pkt(tx_pkt, 0, 0, 0);
- status = ath6kl_htc_tx_issue(target, tx_pkt);
-
- if (status)
- goto fail_tx;
-
- /* wait for response */
- rx_pkt = htc_wait_for_ctrl_msg(target);
-
- if (!rx_pkt) {
- status = -ENOMEM;
- goto fail_tx;
- }
-
- resp_msg = (struct htc_conn_service_resp *)rx_pkt->buf;
-
- if ((le16_to_cpu(resp_msg->msg_id) != HTC_MSG_CONN_SVC_RESP_ID)
- || (rx_pkt->act_len < sizeof(*resp_msg))) {
- status = -ENOMEM;
- goto fail_tx;
- }
-
- conn_resp->resp_code = resp_msg->status;
- /* check response status */
- if (resp_msg->status != HTC_SERVICE_SUCCESS) {
- ath6kl_err("target failed service 0x%X connect request (status:%d)\n",
- resp_msg->svc_id, resp_msg->status);
- status = -ENOMEM;
- goto fail_tx;
- }
-
- assigned_ep = (enum htc_endpoint_id)resp_msg->eid;
- max_msg_sz = le16_to_cpu(resp_msg->max_msg_sz);
- }
-
- if (assigned_ep >= ENDPOINT_MAX || !max_msg_sz) {
- status = -ENOMEM;
- goto fail_tx;
- }
-
- endpoint = &target->endpoint[assigned_ep];
- endpoint->eid = assigned_ep;
- if (endpoint->svc_id) {
- status = -ENOMEM;
- goto fail_tx;
- }
-
- /* return assigned endpoint to caller */
- conn_resp->endpoint = assigned_ep;
- conn_resp->len_max = max_msg_sz;
-
- /* setup the endpoint */
-
- /* this marks the endpoint in use */
- endpoint->svc_id = conn_req->svc_id;
-
- endpoint->max_txq_depth = conn_req->max_txq_depth;
- endpoint->len_max = max_msg_sz;
- endpoint->ep_cb = conn_req->ep_cb;
- endpoint->cred_dist.svc_id = conn_req->svc_id;
- endpoint->cred_dist.htc_ep = endpoint;
- endpoint->cred_dist.endpoint = assigned_ep;
- endpoint->cred_dist.cred_sz = target->tgt_cred_sz;
-
- if (conn_req->max_rxmsg_sz) {
- /*
- * Override cred_per_msg calculation, this optimizes
- * the credit-low indications since the host will actually
- * issue smaller messages in the Send path.
- */
- if (conn_req->max_rxmsg_sz > max_msg_sz) {
- status = -ENOMEM;
- goto fail_tx;
- }
- endpoint->cred_dist.cred_per_msg =
- conn_req->max_rxmsg_sz / target->tgt_cred_sz;
- } else
- endpoint->cred_dist.cred_per_msg =
- max_msg_sz / target->tgt_cred_sz;
-
- if (!endpoint->cred_dist.cred_per_msg)
- endpoint->cred_dist.cred_per_msg = 1;
-
- /* save local connection flags */
- endpoint->conn_flags = conn_req->flags;
-
-fail_tx:
- if (tx_pkt)
- htc_reclaim_txctrl_buf(target, tx_pkt);
-
- if (rx_pkt) {
- htc_rxpkt_reset(rx_pkt);
- reclaim_rx_ctrl_buf(target, rx_pkt);
- }
-
- return status;
-}
-
-static void reset_ep_state(struct htc_target *target)
-{
- struct htc_endpoint *endpoint;
- int i;
-
- for (i = ENDPOINT_0; i < ENDPOINT_MAX; i++) {
- endpoint = &target->endpoint[i];
- memset(&endpoint->cred_dist, 0, sizeof(endpoint->cred_dist));
- endpoint->svc_id = 0;
- endpoint->len_max = 0;
- endpoint->max_txq_depth = 0;
- memset(&endpoint->ep_st, 0,
- sizeof(endpoint->ep_st));
- INIT_LIST_HEAD(&endpoint->rx_bufq);
- INIT_LIST_HEAD(&endpoint->txq);
- endpoint->target = target;
- }
-
- /* reset distribution list */
- /* FIXME: free existing entries */
- INIT_LIST_HEAD(&target->cred_dist_list);
-}
-
-int ath6kl_htc_get_rxbuf_num(struct htc_target *target,
- enum htc_endpoint_id endpoint)
-{
- int num;
-
- spin_lock_bh(&target->rx_lock);
- num = get_queue_depth(&(target->endpoint[endpoint].rx_bufq));
- spin_unlock_bh(&target->rx_lock);
- return num;
-}
-
-static void htc_setup_msg_bndl(struct htc_target *target)
-{
- /* limit what HTC can handle */
- target->msg_per_bndl_max = min(HTC_HOST_MAX_MSG_PER_BUNDLE,
- target->msg_per_bndl_max);
-
- if (ath6kl_hif_enable_scatter(target->dev->ar)) {
- target->msg_per_bndl_max = 0;
- return;
- }
-
- /* limit bundle what the device layer can handle */
- target->msg_per_bndl_max = min(target->max_scat_entries,
- target->msg_per_bndl_max);
-
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "htc bundling allowed msg_per_bndl_max %d\n",
- target->msg_per_bndl_max);
-
- /* Max rx bundle size is limited by the max tx bundle size */
- target->max_rx_bndl_sz = target->max_xfer_szper_scatreq;
- /* Max tx bundle size if limited by the extended mbox address range */
- target->max_tx_bndl_sz = min(HIF_MBOX0_EXT_WIDTH,
- target->max_xfer_szper_scatreq);
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "htc max_rx_bndl_sz %d max_tx_bndl_sz %d\n",
- target->max_rx_bndl_sz, target->max_tx_bndl_sz);
-
- if (target->max_tx_bndl_sz)
- /* tx_bndl_mask is enabled per AC, each has 1 bit */
- target->tx_bndl_mask = (1 << WMM_NUM_AC) - 1;
-
- if (target->max_rx_bndl_sz)
- target->rx_bndl_enable = true;
-
- if ((target->tgt_cred_sz % target->block_sz) != 0) {
- ath6kl_warn("credit size: %d is not block aligned! Disabling send bundling\n",
- target->tgt_cred_sz);
-
- /*
- * Disallow send bundling since the credit size is
- * not aligned to a block size the I/O block
- * padding will spill into the next credit buffer
- * which is fatal.
- */
- target->tx_bndl_mask = 0;
- }
-}
-
-int ath6kl_htc_wait_target(struct htc_target *target)
-{
- struct htc_packet *packet = NULL;
- struct htc_ready_ext_msg *rdy_msg;
- struct htc_service_connect_req connect;
- struct htc_service_connect_resp resp;
- int status;
-
- /* FIXME: remove once USB support is implemented */
- if (target->dev->ar->hif_type == ATH6KL_HIF_TYPE_USB) {
- ath6kl_err("HTC doesn't support USB yet. Patience!\n");
- return -EOPNOTSUPP;
- }
-
- /* we should be getting 1 control message that the target is ready */
- packet = htc_wait_for_ctrl_msg(target);
-
- if (!packet)
- return -ENOMEM;
-
- /* we controlled the buffer creation so it's properly aligned */
- rdy_msg = (struct htc_ready_ext_msg *)packet->buf;
-
- if ((le16_to_cpu(rdy_msg->ver2_0_info.msg_id) != HTC_MSG_READY_ID) ||
- (packet->act_len < sizeof(struct htc_ready_msg))) {
- status = -ENOMEM;
- goto fail_wait_target;
- }
-
- if (!rdy_msg->ver2_0_info.cred_cnt || !rdy_msg->ver2_0_info.cred_sz) {
- status = -ENOMEM;
- goto fail_wait_target;
- }
-
- target->tgt_creds = le16_to_cpu(rdy_msg->ver2_0_info.cred_cnt);
- target->tgt_cred_sz = le16_to_cpu(rdy_msg->ver2_0_info.cred_sz);
-
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "htc target ready credits %d size %d\n",
- target->tgt_creds, target->tgt_cred_sz);
-
- /* check if this is an extended ready message */
- if (packet->act_len >= sizeof(struct htc_ready_ext_msg)) {
- /* this is an extended message */
- target->htc_tgt_ver = rdy_msg->htc_ver;
- target->msg_per_bndl_max = rdy_msg->msg_per_htc_bndl;
- } else {
- /* legacy */
- target->htc_tgt_ver = HTC_VERSION_2P0;
- target->msg_per_bndl_max = 0;
- }
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "htc using protocol %s (%d)\n",
- (target->htc_tgt_ver == HTC_VERSION_2P0) ? "2.0" : ">= 2.1",
- target->htc_tgt_ver);
-
- if (target->msg_per_bndl_max > 0)
- htc_setup_msg_bndl(target);
-
- /* setup our pseudo HTC control endpoint connection */
- memset(&connect, 0, sizeof(connect));
- memset(&resp, 0, sizeof(resp));
- connect.ep_cb.rx = htc_ctrl_rx;
- connect.ep_cb.rx_refill = NULL;
- connect.ep_cb.tx_full = NULL;
- connect.max_txq_depth = NUM_CONTROL_BUFFERS;
- connect.svc_id = HTC_CTRL_RSVD_SVC;
-
- /* connect fake service */
- status = ath6kl_htc_conn_service((void *)target, &connect, &resp);
-
- if (status)
- /*
- * FIXME: this call doesn't make sense, the caller should
- * call ath6kl_htc_cleanup() when it wants remove htc
- */
- ath6kl_hif_cleanup_scatter(target->dev->ar);
-
-fail_wait_target:
- if (packet) {
- htc_rxpkt_reset(packet);
- reclaim_rx_ctrl_buf(target, packet);
- }
-
- return status;
-}
-
-/*
- * Start HTC, enable interrupts and let the target know
- * host has finished setup.
- */
-int ath6kl_htc_start(struct htc_target *target)
-{
- struct htc_packet *packet;
- int status;
-
- memset(&target->dev->irq_proc_reg, 0,
- sizeof(target->dev->irq_proc_reg));
-
- /* Disable interrupts at the chip level */
- ath6kl_hif_disable_intrs(target->dev);
-
- target->htc_flags = 0;
- target->rx_st_flags = 0;
-
- /* Push control receive buffers into htc control endpoint */
- while ((packet = htc_get_control_buf(target, false)) != NULL) {
- status = htc_add_rxbuf(target, packet);
- if (status)
- return status;
- }
-
- /* NOTE: the first entry in the distribution list is ENDPOINT_0 */
- ath6kl_credit_init(target->credit_info, &target->cred_dist_list,
- target->tgt_creds);
-
- dump_cred_dist_stats(target);
-
- /* Indicate to the target of the setup completion */
- status = htc_setup_tx_complete(target);
-
- if (status)
- return status;
-
- /* unmask interrupts */
- status = ath6kl_hif_unmask_intrs(target->dev);
-
- if (status)
- ath6kl_htc_stop(target);
-
- return status;
-}
-
-static int ath6kl_htc_reset(struct htc_target *target)
-{
- u32 block_size, ctrl_bufsz;
- struct htc_packet *packet;
- int i;
-
- reset_ep_state(target);
-
- block_size = target->dev->ar->mbox_info.block_size;
-
- ctrl_bufsz = (block_size > HTC_MAX_CTRL_MSG_LEN) ?
- (block_size + HTC_HDR_LENGTH) :
- (HTC_MAX_CTRL_MSG_LEN + HTC_HDR_LENGTH);
-
- for (i = 0; i < NUM_CONTROL_BUFFERS; i++) {
- packet = kzalloc(sizeof(*packet), GFP_KERNEL);
- if (!packet)
- return -ENOMEM;
-
- packet->buf_start = kzalloc(ctrl_bufsz, GFP_KERNEL);
- if (!packet->buf_start) {
- kfree(packet);
- return -ENOMEM;
- }
-
- packet->buf_len = ctrl_bufsz;
- if (i < NUM_CONTROL_RX_BUFFERS) {
- packet->act_len = 0;
- packet->buf = packet->buf_start;
- packet->endpoint = ENDPOINT_0;
- list_add_tail(&packet->list, &target->free_ctrl_rxbuf);
- } else
- list_add_tail(&packet->list, &target->free_ctrl_txbuf);
- }
-
- return 0;
-}
-
-/* htc_stop: stop interrupt reception, and flush all queued buffers */
-void ath6kl_htc_stop(struct htc_target *target)
-{
- spin_lock_bh(&target->htc_lock);
- target->htc_flags |= HTC_OP_STATE_STOPPING;
- spin_unlock_bh(&target->htc_lock);
-
- /*
- * Masking interrupts is a synchronous operation, when this
- * function returns all pending HIF I/O has completed, we can
- * safely flush the queues.
- */
- ath6kl_hif_mask_intrs(target->dev);
-
- ath6kl_htc_flush_txep_all(target);
-
- ath6kl_htc_flush_rx_buf(target);
-
- ath6kl_htc_reset(target);
-}
-
-void *ath6kl_htc_create(struct ath6kl *ar)
-{
- struct htc_target *target = NULL;
- int status = 0;
-
- target = kzalloc(sizeof(*target), GFP_KERNEL);
- if (!target) {
- ath6kl_err("unable to allocate memory\n");
- return NULL;
- }
-
- target->dev = kzalloc(sizeof(*target->dev), GFP_KERNEL);
- if (!target->dev) {
- ath6kl_err("unable to allocate memory\n");
- status = -ENOMEM;
- goto err_htc_cleanup;
- }
-
- spin_lock_init(&target->htc_lock);
- spin_lock_init(&target->rx_lock);
- spin_lock_init(&target->tx_lock);
-
- INIT_LIST_HEAD(&target->free_ctrl_txbuf);
- INIT_LIST_HEAD(&target->free_ctrl_rxbuf);
- INIT_LIST_HEAD(&target->cred_dist_list);
-
- target->dev->ar = ar;
- target->dev->htc_cnxt = target;
- target->ep_waiting = ENDPOINT_MAX;
-
- status = ath6kl_hif_setup(target->dev);
- if (status)
- goto err_htc_cleanup;
-
- status = ath6kl_htc_reset(target);
- if (status)
- goto err_htc_cleanup;
-
- return target;
-
-err_htc_cleanup:
- ath6kl_htc_cleanup(target);
-
- return NULL;
-}
-
-/* cleanup the HTC instance */
-void ath6kl_htc_cleanup(struct htc_target *target)
-{
- struct htc_packet *packet, *tmp_packet;
-
- /* FIXME: remove check once USB support is implemented */
- if (target->dev->ar->hif_type != ATH6KL_HIF_TYPE_USB)
- ath6kl_hif_cleanup_scatter(target->dev->ar);
-
- list_for_each_entry_safe(packet, tmp_packet,
- &target->free_ctrl_txbuf, list) {
- list_del(&packet->list);
- kfree(packet->buf_start);
- kfree(packet);
- }
-
- list_for_each_entry_safe(packet, tmp_packet,
- &target->free_ctrl_rxbuf, list) {
- list_del(&packet->list);
- kfree(packet->buf_start);
- kfree(packet);
- }
-
- kfree(target->dev);
- kfree(target);
-}
diff --git a/drivers/net/wireless/ath/ath6kl/htc.h b/drivers/net/wireless/ath/ath6kl/htc.h
deleted file mode 100755
index 5197665..0000000
--- a/drivers/net/wireless/ath/ath6kl/htc.h
+++ /dev/null
@@ -1,621 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- * Copyright (c) 2011 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef HTC_H
-#define HTC_H
-
-#include "common.h"
-
-/* frame header flags */
-
-/* send direction */
-#define HTC_FLAGS_NEED_CREDIT_UPDATE (1 << 0)
-#define HTC_FLAGS_SEND_BUNDLE (1 << 1)
-
-/* receive direction */
-#define HTC_FLG_RX_UNUSED (1 << 0)
-#define HTC_FLG_RX_TRAILER (1 << 1)
-/* Bundle count maske and shift */
-#define HTC_FLG_RX_BNDL_CNT (0xF0)
-#define HTC_FLG_RX_BNDL_CNT_S 4
-
-#define HTC_HDR_LENGTH (sizeof(struct htc_frame_hdr))
-#define HTC_MAX_PAYLOAD_LENGTH (4096 - sizeof(struct htc_frame_hdr))
-
-/* HTC control message IDs */
-
-#define HTC_MSG_READY_ID 1
-#define HTC_MSG_CONN_SVC_ID 2
-#define HTC_MSG_CONN_SVC_RESP_ID 3
-#define HTC_MSG_SETUP_COMPLETE_ID 4
-#define HTC_MSG_SETUP_COMPLETE_EX_ID 5
-
-#define HTC_MAX_CTRL_MSG_LEN 256
-
-#define HTC_VERSION_2P0 0x00
-#define HTC_VERSION_2P1 0x01
-
-#define HTC_SERVICE_META_DATA_MAX_LENGTH 128
-
-#define HTC_CONN_FLGS_THRESH_LVL_QUAT 0x0
-#define HTC_CONN_FLGS_THRESH_LVL_HALF 0x1
-#define HTC_CONN_FLGS_THRESH_LVL_THREE_QUAT 0x2
-#define HTC_CONN_FLGS_REDUCE_CRED_DRIB 0x4
-#define HTC_CONN_FLGS_THRESH_MASK 0x3
-
-/* connect response status codes */
-#define HTC_SERVICE_SUCCESS 0
-#define HTC_SERVICE_NOT_FOUND 1
-#define HTC_SERVICE_FAILED 2
-
-/* no resources (i.e. no more endpoints) */
-#define HTC_SERVICE_NO_RESOURCES 3
-
-/* specific service is not allowing any more endpoints */
-#define HTC_SERVICE_NO_MORE_EP 4
-
-/* report record IDs */
-#define HTC_RECORD_NULL 0
-#define HTC_RECORD_CREDITS 1
-#define HTC_RECORD_LOOKAHEAD 2
-#define HTC_RECORD_LOOKAHEAD_BUNDLE 3
-
-#define HTC_SETUP_COMP_FLG_RX_BNDL_EN (1 << 0)
-
-#define MAKE_SERVICE_ID(group, index) \
- (int)(((int)group << 8) | (int)(index))
-
-/* NOTE: service ID of 0x0000 is reserved and should never be used */
-#define HTC_CTRL_RSVD_SVC MAKE_SERVICE_ID(RSVD_SERVICE_GROUP, 1)
-#define WMI_CONTROL_SVC MAKE_SERVICE_ID(WMI_SERVICE_GROUP, 0)
-#define WMI_DATA_BE_SVC MAKE_SERVICE_ID(WMI_SERVICE_GROUP, 1)
-#define WMI_DATA_BK_SVC MAKE_SERVICE_ID(WMI_SERVICE_GROUP, 2)
-#define WMI_DATA_VI_SVC MAKE_SERVICE_ID(WMI_SERVICE_GROUP, 3)
-#define WMI_DATA_VO_SVC MAKE_SERVICE_ID(WMI_SERVICE_GROUP, 4)
-#define WMI_MAX_SERVICES 5
-
-#define WMM_NUM_AC 4
-
-/* reserved and used to flush ALL packets */
-#define HTC_TX_PACKET_TAG_ALL 0
-#define HTC_SERVICE_TX_PACKET_TAG 1
-#define HTC_TX_PACKET_TAG_USER_DEFINED (HTC_SERVICE_TX_PACKET_TAG + 9)
-
-/* more packets on this endpoint are being fetched */
-#define HTC_RX_FLAGS_INDICATE_MORE_PKTS (1 << 0)
-
-/* TODO.. for BMI */
-#define ENDPOINT1 0
-/* TODO -remove me, but we have to fix BMI first */
-#define HTC_MAILBOX_NUM_MAX 4
-
-/* enable send bundle padding for this endpoint */
-#define HTC_FLGS_TX_BNDL_PAD_EN (1 << 0)
-#define HTC_EP_ACTIVE ((u32) (1u << 31))
-
-/* HTC operational parameters */
-#define HTC_TARGET_RESPONSE_TIMEOUT 2000 /* in ms */
-#define HTC_TARGET_DEBUG_INTR_MASK 0x01
-#define HTC_TARGET_CREDIT_INTR_MASK 0xF0
-
-#define HTC_HOST_MAX_MSG_PER_BUNDLE 8
-#define HTC_MIN_HTC_MSGS_TO_BUNDLE 2
-
-/* packet flags */
-
-#define HTC_RX_PKT_IGNORE_LOOKAHEAD (1 << 0)
-#define HTC_RX_PKT_REFRESH_HDR (1 << 1)
-#define HTC_RX_PKT_PART_OF_BUNDLE (1 << 2)
-#define HTC_RX_PKT_NO_RECYCLE (1 << 3)
-
-#define NUM_CONTROL_BUFFERS 8
-#define NUM_CONTROL_TX_BUFFERS 2
-#define NUM_CONTROL_RX_BUFFERS (NUM_CONTROL_BUFFERS - NUM_CONTROL_TX_BUFFERS)
-
-#define HTC_RECV_WAIT_BUFFERS (1 << 0)
-#define HTC_OP_STATE_STOPPING (1 << 0)
-
-/*
- * The frame header length and message formats defined herein were selected
- * to accommodate optimal alignment for target processing. This reduces
- * code size and improves performance. Any changes to the header length may
- * alter the alignment and cause exceptions on the target. When adding to
- * the messagestructures insure that fields are properly aligned.
- */
-
-/* HTC frame header
- *
- * NOTE: do not remove or re-arrange the fields, these are minimally
- * required to take advantage of 4-byte lookaheads in some hardware
- * implementations.
- */
-struct htc_frame_hdr {
- u8 eid;
- u8 flags;
-
- /* length of data (including trailer) that follows the header */
- __le16 payld_len;
-
- /* end of 4-byte lookahead */
-
- u8 ctrl[2];
-} __packed;
-
-/* HTC ready message */
-struct htc_ready_msg {
- __le16 msg_id;
- __le16 cred_cnt;
- __le16 cred_sz;
- u8 max_ep;
- u8 pad;
-} __packed;
-
-/* extended HTC ready message */
-struct htc_ready_ext_msg {
- struct htc_ready_msg ver2_0_info;
- u8 htc_ver;
- u8 msg_per_htc_bndl;
-} __packed;
-
-/* connect service */
-struct htc_conn_service_msg {
- __le16 msg_id;
- __le16 svc_id;
- __le16 conn_flags;
- u8 svc_meta_len;
- u8 pad;
-} __packed;
-
-/* connect response */
-struct htc_conn_service_resp {
- __le16 msg_id;
- __le16 svc_id;
- u8 status;
- u8 eid;
- __le16 max_msg_sz;
- u8 svc_meta_len;
- u8 pad;
-} __packed;
-
-struct htc_setup_comp_msg {
- __le16 msg_id;
-} __packed;
-
-/* extended setup completion message */
-struct htc_setup_comp_ext_msg {
- __le16 msg_id;
- __le32 flags;
- u8 msg_per_rxbndl;
- u8 Rsvd[3];
-} __packed;
-
-struct htc_record_hdr {
- u8 rec_id;
- u8 len;
-} __packed;
-
-struct htc_credit_report {
- u8 eid;
- u8 credits;
-} __packed;
-
-/*
- * NOTE: The lk_ahd array is guarded by a pre_valid
- * and Post Valid guard bytes. The pre_valid bytes must
- * equal the inverse of the post_valid byte.
- */
-struct htc_lookahead_report {
- u8 pre_valid;
- u8 lk_ahd[4];
- u8 post_valid;
-} __packed;
-
-struct htc_bundle_lkahd_rpt {
- u8 lk_ahd[4];
-} __packed;
-
-/* Current service IDs */
-
-enum htc_service_grp_ids {
- RSVD_SERVICE_GROUP = 0,
- WMI_SERVICE_GROUP = 1,
-
- HTC_TEST_GROUP = 254,
- HTC_SERVICE_GROUP_LAST = 255
-};
-
-/* ------ endpoint IDS ------ */
-
-enum htc_endpoint_id {
- ENDPOINT_UNUSED = -1,
- ENDPOINT_0 = 0,
- ENDPOINT_1 = 1,
- ENDPOINT_2 = 2,
- ENDPOINT_3,
- ENDPOINT_4,
- ENDPOINT_5,
- ENDPOINT_6,
- ENDPOINT_7,
- ENDPOINT_8,
- ENDPOINT_MAX,
-};
-
-struct htc_tx_packet_info {
- u16 tag;
- int cred_used;
- u8 flags;
- int seqno;
-};
-
-struct htc_rx_packet_info {
- u32 exp_hdr;
- u32 rx_flags;
- u32 indicat_flags;
-};
-
-struct htc_target;
-
-/* wrapper around endpoint-specific packets */
-struct htc_packet {
- struct list_head list;
-
- /* caller's per packet specific context */
- void *pkt_cntxt;
-
- /*
- * the true buffer start , the caller can store the real
- * buffer start here. In receive callbacks, the HTC layer
- * sets buf to the start of the payload past the header.
- * This field allows the caller to reset buf when it recycles
- * receive packets back to HTC.
- */
- u8 *buf_start;
-
- /*
- * Pointer to the start of the buffer. In the transmit
- * direction this points to the start of the payload. In the
- * receive direction, however, the buffer when queued up
- * points to the start of the HTC header but when returned
- * to the caller points to the start of the payload
- */
- u8 *buf;
- u32 buf_len;
-
- /* actual length of payload */
- u32 act_len;
-
- /* endpoint that this packet was sent/recv'd from */
- enum htc_endpoint_id endpoint;
-
- /* completion status */
-
- int status;
- union {
- struct htc_tx_packet_info tx;
- struct htc_rx_packet_info rx;
- } info;
-
- void (*completion) (struct htc_target *, struct htc_packet *);
- struct htc_target *context;
-};
-
-enum htc_send_full_action {
- HTC_SEND_FULL_KEEP = 0,
- HTC_SEND_FULL_DROP = 1,
-};
-
-struct htc_ep_callbacks {
- void (*rx) (struct htc_target *, struct htc_packet *);
- void (*rx_refill) (struct htc_target *, enum htc_endpoint_id endpoint);
- enum htc_send_full_action (*tx_full) (struct htc_target *,
- struct htc_packet *);
- struct htc_packet *(*rx_allocthresh) (struct htc_target *,
- enum htc_endpoint_id, int);
- int rx_alloc_thresh;
- int rx_refill_thresh;
-};
-
-/* service connection information */
-struct htc_service_connect_req {
- u16 svc_id;
- u16 conn_flags;
- struct htc_ep_callbacks ep_cb;
- int max_txq_depth;
- u32 flags;
- unsigned int max_rxmsg_sz;
-};
-
-/* service connection response information */
-struct htc_service_connect_resp {
- u8 buf_len;
- u8 act_len;
- enum htc_endpoint_id endpoint;
- unsigned int len_max;
- u8 resp_code;
-};
-
-/* endpoint distributionstructure */
-struct htc_endpoint_credit_dist {
- struct list_head list;
-
- /* Service ID (set by HTC) */
- u16 svc_id;
-
- /* endpoint for this distributionstruct (set by HTC) */
- enum htc_endpoint_id endpoint;
-
- u32 dist_flags;
-
- /*
- * credits for normal operation, anything above this
- * indicates the endpoint is over-subscribed.
- */
- int cred_norm;
-
- /* floor for credit distribution */
- int cred_min;
-
- int cred_assngd;
-
- /* current credits available */
- int credits;
-
- /*
- * pending credits to distribute on this endpoint, this
- * is set by HTC when credit reports arrive. The credit
- * distribution functions sets this to zero when it distributes
- * the credits.
- */
- int cred_to_dist;
-
- /*
- * the number of credits that the current pending TX packet needs
- * to transmit. This is set by HTC when endpoint needs credits in
- * order to transmit.
- */
- int seek_cred;
-
- /* size in bytes of each credit */
- int cred_sz;
-
- /* credits required for a maximum sized messages */
- int cred_per_msg;
-
- /* reserved for HTC use */
- struct htc_endpoint *htc_ep;
-
- /*
- * current depth of TX queue , i.e. messages waiting for credits
- * This field is valid only when HTC_CREDIT_DIST_ACTIVITY_CHANGE
- * or HTC_CREDIT_DIST_SEND_COMPLETE is indicated on an endpoint
- * that has non-zero credits to recover.
- */
- int txq_depth;
-};
-
-/*
- * credit distibution code that is passed into the distrbution function,
- * there are mandatory and optional codes that must be handled
- */
-enum htc_credit_dist_reason {
- HTC_CREDIT_DIST_SEND_COMPLETE = 0,
- HTC_CREDIT_DIST_ACTIVITY_CHANGE = 1,
- HTC_CREDIT_DIST_SEEK_CREDITS,
-};
-
-struct ath6kl_htc_credit_info {
- int total_avail_credits;
- int cur_free_credits;
-
- /* list of lowest priority endpoints */
- struct list_head lowestpri_ep_dist;
-};
-
-/* endpoint statistics */
-struct htc_endpoint_stats {
- /*
- * number of times the host set the credit-low flag in a send
- * message on this endpoint
- */
- u32 cred_low_indicate;
-
- u32 tx_issued;
- u32 tx_pkt_bundled;
- u32 tx_bundles;
- u32 tx_dropped;
-
- /* running count of total credit reports received for this endpoint */
- u32 tx_cred_rpt;
-
- /* credit reports received from this endpoint's RX packets */
- u32 cred_rpt_from_rx;
-
- /* credit reports received from RX packets of other endpoints */
- u32 cred_rpt_from_other;
-
- /* credit reports received from endpoint 0 RX packets */
- u32 cred_rpt_ep0;
-
- /* count of credits received via Rx packets on this endpoint */
- u32 cred_from_rx;
-
- /* count of credits received via another endpoint */
- u32 cred_from_other;
-
- /* count of credits received via another endpoint */
- u32 cred_from_ep0;
-
- /* count of consummed credits */
- u32 cred_cosumd;
-
- /* count of credits returned */
- u32 cred_retnd;
-
- u32 rx_pkts;
-
- /* count of lookahead records found in Rx msg */
- u32 rx_lkahds;
-
- /* count of recv packets received in a bundle */
- u32 rx_bundl;
-
- /* count of number of bundled lookaheads */
- u32 rx_bundle_lkahd;
-
- /* count of the number of bundle indications from the HTC header */
- u32 rx_bundle_from_hdr;
-
- /* the number of times the recv allocation threshold was hit */
- u32 rx_alloc_thresh_hit;
-
- /* total number of bytes */
- u32 rxalloc_thresh_byte;
-};
-
-struct htc_endpoint {
- enum htc_endpoint_id eid;
- u16 svc_id;
- struct list_head txq;
- struct list_head rx_bufq;
- struct htc_endpoint_credit_dist cred_dist;
- struct htc_ep_callbacks ep_cb;
- int max_txq_depth;
- int len_max;
- int tx_proc_cnt;
- int rx_proc_cnt;
- struct htc_target *target;
- u8 seqno;
- u32 conn_flags;
- struct htc_endpoint_stats ep_st;
-};
-
-struct htc_control_buffer {
- struct htc_packet packet;
- u8 *buf;
-};
-
-struct ath6kl_device;
-
-/* our HTC target state */
-struct htc_target {
- struct htc_endpoint endpoint[ENDPOINT_MAX];
-
- /* contains struct htc_endpoint_credit_dist */
- struct list_head cred_dist_list;
-
- struct list_head free_ctrl_txbuf;
- struct list_head free_ctrl_rxbuf;
- struct ath6kl_htc_credit_info *credit_info;
- int tgt_creds;
- unsigned int tgt_cred_sz;
- spinlock_t htc_lock;
- spinlock_t rx_lock;
- spinlock_t tx_lock;
- struct ath6kl_device *dev;
- u32 htc_flags;
- u32 rx_st_flags;
- enum htc_endpoint_id ep_waiting;
- u8 htc_tgt_ver;
-
- /* max messages per bundle for HTC */
- int msg_per_bndl_max;
-
- u32 tx_bndl_mask;
- int rx_bndl_enable;
- int max_rx_bndl_sz;
- int max_tx_bndl_sz;
-
- u32 block_sz;
- u32 block_mask;
-
- int max_scat_entries;
- int max_xfer_szper_scatreq;
-
- int chk_irq_status_cnt;
-
- /* counts the number of Tx without bundling continously per AC */
- u32 ac_tx_count[WMM_NUM_AC];
-};
-
-void *ath6kl_htc_create(struct ath6kl *ar);
-void ath6kl_htc_set_credit_dist(struct htc_target *target,
- struct ath6kl_htc_credit_info *cred_info,
- u16 svc_pri_order[], int len);
-int ath6kl_htc_wait_target(struct htc_target *target);
-int ath6kl_htc_start(struct htc_target *target);
-int ath6kl_htc_conn_service(struct htc_target *target,
- struct htc_service_connect_req *req,
- struct htc_service_connect_resp *resp);
-int ath6kl_htc_tx(struct htc_target *target, struct htc_packet *packet);
-void ath6kl_htc_stop(struct htc_target *target);
-void ath6kl_htc_cleanup(struct htc_target *target);
-void ath6kl_htc_flush_txep(struct htc_target *target,
- enum htc_endpoint_id endpoint, u16 tag);
-void ath6kl_htc_flush_rx_buf(struct htc_target *target);
-void ath6kl_htc_indicate_activity_change(struct htc_target *target,
- enum htc_endpoint_id endpoint,
- bool active);
-int ath6kl_htc_get_rxbuf_num(struct htc_target *target,
- enum htc_endpoint_id endpoint);
-int ath6kl_htc_add_rxbuf_multiple(struct htc_target *target,
- struct list_head *pktq);
-int ath6kl_htc_rxmsg_pending_handler(struct htc_target *target,
- u32 msg_look_ahead, int *n_pkts);
-
-int ath6kl_credit_setup(void *htc_handle,
- struct ath6kl_htc_credit_info *cred_info);
-
-static inline void set_htc_pkt_info(struct htc_packet *packet, void *context,
- u8 *buf, unsigned int len,
- enum htc_endpoint_id eid, u16 tag)
-{
- packet->pkt_cntxt = context;
- packet->buf = buf;
- packet->act_len = len;
- packet->endpoint = eid;
- packet->info.tx.tag = tag;
-}
-
-static inline void htc_rxpkt_reset(struct htc_packet *packet)
-{
- packet->buf = packet->buf_start;
- packet->act_len = 0;
-}
-
-static inline void set_htc_rxpkt_info(struct htc_packet *packet, void *context,
- u8 *buf, unsigned long len,
- enum htc_endpoint_id eid)
-{
- packet->pkt_cntxt = context;
- packet->buf = buf;
- packet->buf_start = buf;
- packet->buf_len = len;
- packet->endpoint = eid;
-}
-
-static inline int get_queue_depth(struct list_head *queue)
-{
- struct list_head *tmp_list;
- int depth = 0;
-
- list_for_each(tmp_list, queue)
- depth++;
-
- return depth;
-}
-
-#endif
diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c
deleted file mode 100755
index ba587f9..0000000
--- a/drivers/net/wireless/ath/ath6kl/init.c
+++ /dev/null
@@ -1,2330 +0,0 @@
-
-/*
- * Copyright (c) 2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <linux/moduleparam.h>
-#include <linux/errno.h>
-//#include <linux/of.h>
-#include <linux/mmc/sdio_func.h>
-#include "core.h"
-#include "cfg80211.h"
-#include "target.h"
-#include "debug.h"
-#include "hif-ops.h"
-#include "pm.h"
-#include <linux/vmalloc.h>
-
-unsigned int debug_mask = ATH6KL_DBG_WMI | ATH6KL_DBG_BOOT |
- ATH6KL_DBG_WLAN_CFG | ATH6KL_DBG_SUSPEND |
- ATH6KL_DBG_TRC;
-static unsigned int testmode;
-#ifdef CONFIG_MACH_PX
-/* WoW2 (deepsleep), Suspend (WoW) */
-static unsigned int suspend_mode = WLAN_POWER_STATE_WOW;
-static unsigned int wow_mode = WLAN_POWER_STATE_DEEP_SLEEP;
-#else
-static unsigned int suspend_mode;
-static unsigned int wow_mode;
-#endif
-static unsigned int uart_debug;
-#ifdef CONFIG_MACH_PX
-static unsigned int ar6k_clock = 26000000;
-#else
-static unsigned int ar6k_clock = 19200000;
-#endif
-
-#ifdef CONFIG_ATH6KL_LOCALE_USA
-static unsigned short reg_domain = 0x8348;
-#else
-static unsigned short reg_domain = 0xffff;
-#endif
-
-static unsigned short lrssi = 10;
-
-static unsigned short en_ani = 1;
-
-module_param(debug_mask, uint, 0644);
-module_param(testmode, uint, 0644);
-module_param(suspend_mode, uint, 0644);
-module_param(wow_mode, uint, 0644);
-module_param(uart_debug, uint, 0644);
-module_param(ar6k_clock, uint, 0644);
-module_param(reg_domain, ushort, 0644);
-module_param(lrssi, ushort, 0644);
-module_param(en_ani, ushort, 0644);
-
-
-static const struct ath6kl_hw hw_list[] = {
- {
- .id = AR6003_HW_2_0_VERSION,
- .name = "ar6003 hw 2.0",
- .dataset_patch_addr = 0x57e884,
- .app_load_addr = 0x543180,
- .board_ext_data_addr = 0x57e500,
- .reserved_ram_size = 6912,
- .refclk_hz = 26000000,
- .uarttx_pin = 8,
-
- /* hw2.0 needs override address hardcoded */
- .app_start_override_addr = 0x944C00,
-
- .fw = {
- .dir = AR6003_HW_2_0_FW_DIR,
- .otp = AR6003_HW_2_0_OTP_FILE,
- .fw = AR6003_HW_2_0_FIRMWARE_FILE,
- .tcmd = AR6003_HW_2_0_TCMD_FIRMWARE_FILE,
- .patch = AR6003_HW_2_0_PATCH_FILE,
- },
-
- .fw_board = AR6003_HW_2_0_BOARD_DATA_FILE,
- .fw_default_board = AR6003_HW_2_0_DEFAULT_BOARD_DATA_FILE,
- },
- {
- .id = AR6003_HW_2_1_1_VERSION,
- .name = "ar6003 hw 2.1.1",
- .dataset_patch_addr = 0x57ff74,
- .app_load_addr = 0x1234,
- .board_ext_data_addr = 0x542330,
- .reserved_ram_size = 512,
- .refclk_hz = 26000000,
- .uarttx_pin = 8,
- .testscript_addr = 0x57ef74,
-
- .fw = {
- .dir = AR6003_HW_2_1_1_FW_DIR,
- .otp = AR6003_HW_2_1_1_OTP_FILE,
- .fw = AR6003_HW_2_1_1_FIRMWARE_FILE,
- .tcmd = AR6003_HW_2_1_1_TCMD_FIRMWARE_FILE,
- .patch = AR6003_HW_2_1_1_PATCH_FILE,
- .utf = AR6003_HW_2_1_1_UTF_FIRMWARE_FILE,
- .testscript = AR6003_HW_2_1_1_TESTSCRIPT_FILE,
- },
-
- .fw_board = AR6003_HW_2_1_1_BOARD_DATA_FILE,
- .fw_default_board = AR6003_HW_2_1_1_DEFAULT_BOARD_DATA_FILE,
- },
- {
- .id = AR6004_HW_1_0_VERSION,
- .name = "ar6004 hw 1.0",
- .dataset_patch_addr = 0x57e884,
- .app_load_addr = 0x1234,
- .board_ext_data_addr = 0x437000,
- .reserved_ram_size = 19456,
- .board_addr = 0x433900,
- .refclk_hz = 26000000,
- .uarttx_pin = 11,
-
- .fw = {
- .dir = AR6004_HW_1_0_FW_DIR,
- .fw = AR6004_HW_1_0_FIRMWARE_FILE,
- },
-
- .fw_board = AR6004_HW_1_0_BOARD_DATA_FILE,
- .fw_default_board = AR6004_HW_1_0_DEFAULT_BOARD_DATA_FILE,
- },
- {
- .id = AR6004_HW_1_1_VERSION,
- .name = "ar6004 hw 1.1",
- .dataset_patch_addr = 0x57e884,
- .app_load_addr = 0x1234,
- .board_ext_data_addr = 0x437000,
- .reserved_ram_size = 11264,
- .board_addr = 0x43d400,
- .refclk_hz = 40000000,
- .uarttx_pin = 11,
-
- .fw = {
- .dir = AR6004_HW_1_1_FW_DIR,
- .fw = AR6004_HW_1_1_FIRMWARE_FILE,
- },
-
- .fw_board = AR6004_HW_1_1_BOARD_DATA_FILE,
- .fw_default_board = AR6004_HW_1_1_DEFAULT_BOARD_DATA_FILE,
- },
-};
-
-/*
- * Include definitions here that can be used to tune the WLAN module
- * behavior. Different customers can tune the behavior as per their needs,
- * here.
- */
-
-/*
- * This configuration item enable/disable keepalive support.
- * Keepalive support: In the absence of any data traffic to AP, null
- * frames will be sent to the AP at periodic interval, to keep the association
- * active. This configuration item defines the periodic interval.
- * Use value of zero to disable keepalive support
- * Default: 60 seconds
- */
-#define WLAN_CONFIG_KEEP_ALIVE_INTERVAL 60
-
-/*
- * This configuration item sets the value of disconnect timeout
- * Firmware delays sending the disconnec event to the host for this
- * timeout after is gets disconnected from the current AP.
- * If the firmware successly roams within the disconnect timeout
- * it sends a new connect event
- */
-#define WLAN_CONFIG_DISCONNECT_TIMEOUT 10
-
-
-#define ATH6KL_DATA_OFFSET 64
-
-typedef char A_CHAR;
-extern int android_readwrite_file(const A_CHAR *filename, A_CHAR *rbuf, const A_CHAR *wbuf, size_t length);
-
- /*
- * Number of bytes in board data that we are interested
- * in while setting regulatory domain from host
- */
-#define REG_DMN_BOARD_DATA_LEN 16
-
-/* Modifies regulatory domain in board data in target RAM */
-static int ath6kl_set_reg_dmn(struct ath6kl *ar)
-{
- u8 buf[REG_DMN_BOARD_DATA_LEN];
- __le16 old_sum, old_ver, old_rd, old_rd_next;
- __le32 brd_dat_addr = 0, new_sum, new_rd;
- int ret;
-
- ret = ath6kl_bmi_read(ar, AR6003_BOARD_DATA_ADDR,
- (u8 *)&brd_dat_addr, 4);
- if (ret)
- return ret;
-
- memset(buf, 0, sizeof(buf));
- ret = ath6kl_bmi_read(ar, brd_dat_addr, buf, sizeof(buf));
- if (ret)
- return ret;
-
- memcpy((u8 *)&old_sum, buf + AR6003_BOARD_DATA_OFFSET, 2);
- memcpy((u8 *)&old_ver, buf + AR6003_BOARD_DATA_OFFSET + 2, 2);
- memcpy((u8 *)&old_rd, buf + AR6003_RD_OFFSET, 2);
- memcpy((u8 *)&old_rd_next, buf + AR6003_RD_OFFSET + 2, 2);
-
- /*
- * Overwrite the new regulatory domain and preserve the
- * MAC addr which is in the same word.
- */
- new_rd = cpu_to_le32((le32_to_cpu(old_rd_next) << 16) + reg_domain);
- ret = ath6kl_bmi_write(ar,
- cpu_to_le32(le32_to_cpu(brd_dat_addr) + AR6003_RD_OFFSET),
- (u8 *)&new_rd, 4);
- if (ret)
- return ret;
-
- /*
- * Recompute the board data checksum with the new regulatory
- * domain, preserve the version information which is in the
- * same word.
- */
- new_sum = cpu_to_le32((le32_to_cpu(old_ver) << 16) +
- (le32_to_cpu(old_sum) ^ le32_to_cpu(old_rd) ^
- reg_domain));
- ret = ath6kl_bmi_write(ar,
- cpu_to_le32(le32_to_cpu(brd_dat_addr) +
- AR6003_BOARD_DATA_OFFSET),
- (u8 *)&new_sum, 4);
-
- return ret;
-}
-
-struct sk_buff *ath6kl_buf_alloc(int size)
-{
- struct sk_buff *skb;
- u16 reserved;
-
- /* Add chacheline space at front and back of buffer */
- reserved = (2 * L1_CACHE_BYTES) + ATH6KL_DATA_OFFSET +
- sizeof(struct htc_packet) + ATH6KL_HTC_ALIGN_BYTES;
- skb = dev_alloc_skb(size + reserved);
-
- if (skb)
- skb_reserve(skb, reserved - L1_CACHE_BYTES);
- return skb;
-}
-
-void ath6kl_init_profile_info(struct ath6kl_vif *vif)
-{
- vif->ssid_len = 0;
- memset(vif->ssid, 0, sizeof(vif->ssid));
-
- vif->dot11_auth_mode = OPEN_AUTH;
- vif->auth_mode = NONE_AUTH;
- vif->prwise_crypto = NONE_CRYPT;
- vif->prwise_crypto_len = 0;
- vif->grp_crypto = NONE_CRYPT;
- vif->grp_crypto_len = 0;
- memset(vif->wep_key_list, 0, sizeof(vif->wep_key_list));
- memset(vif->req_bssid, 0, sizeof(vif->req_bssid));
- memset(vif->bssid, 0, sizeof(vif->bssid));
- vif->bss_ch = 0;
-}
-
-static int ath6kl_set_host_app_area(struct ath6kl *ar)
-{
- u32 address, data;
- struct host_app_area host_app_area;
-
- /* Fetch the address of the host_app_area_s
- * instance in the host interest area */
- address = ath6kl_get_hi_item_addr(ar, HI_ITEM(hi_app_host_interest));
- address = TARG_VTOP(ar->target_type, address);
-
- if (ath6kl_diag_read32(ar, address, &data))
- return -EIO;
-
- address = TARG_VTOP(ar->target_type, data);
- host_app_area.wmi_protocol_ver = cpu_to_le32(WMI_PROTOCOL_VERSION);
- if (ath6kl_diag_write(ar, address, (u8 *) &host_app_area,
- sizeof(struct host_app_area)))
- return -EIO;
-
- return 0;
-}
-
-static inline void set_ac2_ep_map(struct ath6kl *ar,
- u8 ac,
- enum htc_endpoint_id ep)
-{
- ar->ac2ep_map[ac] = ep;
- ar->ep2ac_map[ep] = ac;
-}
-
-/* connect to a service */
-static int ath6kl_connectservice(struct ath6kl *ar,
- struct htc_service_connect_req *con_req,
- char *desc)
-{
- int status;
- struct htc_service_connect_resp response;
-
- memset(&response, 0, sizeof(response));
-
- status = ath6kl_htc_conn_service(ar->htc_target, con_req, &response);
- if (status) {
- ath6kl_err("failed to connect to %s service status:%d\n",
- desc, status);
- return status;
- }
-
- switch (con_req->svc_id) {
- case WMI_CONTROL_SVC:
- if (test_bit(WMI_ENABLED, &ar->flag))
- ath6kl_wmi_set_control_ep(ar->wmi, response.endpoint);
- ar->ctrl_ep = response.endpoint;
- break;
- case WMI_DATA_BE_SVC:
- set_ac2_ep_map(ar, WMM_AC_BE, response.endpoint);
- break;
- case WMI_DATA_BK_SVC:
- set_ac2_ep_map(ar, WMM_AC_BK, response.endpoint);
- break;
- case WMI_DATA_VI_SVC:
- set_ac2_ep_map(ar, WMM_AC_VI, response.endpoint);
- break;
- case WMI_DATA_VO_SVC:
- set_ac2_ep_map(ar, WMM_AC_VO, response.endpoint);
- break;
- default:
- ath6kl_err("service id is not mapped %d\n", con_req->svc_id);
- return -EINVAL;
- }
-
- return 0;
-}
-
-static int ath6kl_init_service_ep(struct ath6kl *ar)
-{
- struct htc_service_connect_req connect;
-
- memset(&connect, 0, sizeof(connect));
-
- /* these fields are the same for all service endpoints */
- connect.ep_cb.rx = ath6kl_rx;
- connect.ep_cb.rx_refill = ath6kl_rx_refill;
- connect.ep_cb.tx_full = ath6kl_tx_queue_full;
-
- /*
- * Set the max queue depth so that our ath6kl_tx_queue_full handler
- * gets called.
- */
- connect.max_txq_depth = MAX_DEFAULT_SEND_QUEUE_DEPTH;
- connect.ep_cb.rx_refill_thresh = ATH6KL_MAX_RX_BUFFERS / 4;
- if (!connect.ep_cb.rx_refill_thresh)
- connect.ep_cb.rx_refill_thresh++;
-
- /* connect to control service */
- connect.svc_id = WMI_CONTROL_SVC;
- if (ath6kl_connectservice(ar, &connect, "WMI CONTROL"))
- return -EIO;
-
- connect.flags |= HTC_FLGS_TX_BNDL_PAD_EN;
-
- /*
- * Limit the HTC message size on the send path, although e can
- * receive A-MSDU frames of 4K, we will only send ethernet-sized
- * (802.3) frames on the send path.
- */
- connect.max_rxmsg_sz = WMI_MAX_TX_DATA_FRAME_LENGTH;
-
- /*
- * To reduce the amount of committed memory for larger A_MSDU
- * frames, use the recv-alloc threshold mechanism for larger
- * packets.
- */
- connect.ep_cb.rx_alloc_thresh = ATH6KL_BUFFER_SIZE;
- connect.ep_cb.rx_allocthresh = ath6kl_alloc_amsdu_rxbuf;
-
- /*
- * For the remaining data services set the connection flag to
- * reduce dribbling, if configured to do so.
- */
- connect.conn_flags |= HTC_CONN_FLGS_REDUCE_CRED_DRIB;
- connect.conn_flags &= ~HTC_CONN_FLGS_THRESH_MASK;
- connect.conn_flags |= HTC_CONN_FLGS_THRESH_LVL_HALF;
-
- connect.svc_id = WMI_DATA_BE_SVC;
-
- if (ath6kl_connectservice(ar, &connect, "WMI DATA BE"))
- return -EIO;
-
- /* connect to back-ground map this to WMI LOW_PRI */
- connect.svc_id = WMI_DATA_BK_SVC;
- if (ath6kl_connectservice(ar, &connect, "WMI DATA BK"))
- return -EIO;
-
- /* connect to Video service, map this to to HI PRI */
- connect.svc_id = WMI_DATA_VI_SVC;
- if (ath6kl_connectservice(ar, &connect, "WMI DATA VI"))
- return -EIO;
-
- /*
- * Connect to VO service, this is currently not mapped to a WMI
- * priority stream due to historical reasons. WMI originally
- * defined 3 priorities over 3 mailboxes We can change this when
- * WMI is reworked so that priorities are not dependent on
- * mailboxes.
- */
- connect.svc_id = WMI_DATA_VO_SVC;
- if (ath6kl_connectservice(ar, &connect, "WMI DATA VO"))
- return -EIO;
-
- return 0;
-}
-
-void ath6kl_init_control_info(struct ath6kl_vif *vif)
-{
- ath6kl_init_profile_info(vif);
- vif->def_txkey_index = 0;
- memset(vif->wep_key_list, 0, sizeof(vif->wep_key_list));
- vif->ch_hint = 0;
-}
-
-/*
- * Set HTC/Mbox operational parameters, this can only be called when the
- * target is in the BMI phase.
- */
-static int ath6kl_set_htc_params(struct ath6kl *ar, u32 mbox_isr_yield_val,
- u8 htc_ctrl_buf)
-{
- int status;
- u32 blk_size;
-
- blk_size = ar->mbox_info.block_size;
-
- if (htc_ctrl_buf)
- blk_size |= ((u32)htc_ctrl_buf) << 16;
-
- /* set the host interest area for the block size */
- status = ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_mbox_io_block_sz)),
- (u8 *)&blk_size,
- 4);
- if (status) {
- ath6kl_err("bmi_write_memory for IO block size failed\n");
- goto out;
- }
-
- ath6kl_dbg(ATH6KL_DBG_TRC, "block size set: %d (target addr:0x%X)\n",
- blk_size,
- ath6kl_get_hi_item_addr(ar, HI_ITEM(hi_mbox_io_block_sz)));
-
- if (mbox_isr_yield_val) {
- /* set the host interest area for the mbox ISR yield limit */
- status = ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_mbox_isr_yield_limit)),
- (u8 *)&mbox_isr_yield_val,
- 4);
- if (status) {
- ath6kl_err("bmi_write_memory for yield limit failed\n");
- goto out;
- }
- }
-
-out:
- return status;
-}
-
-static int ath6kl_target_config_wlan_params(struct ath6kl *ar, int idx)
-{
- int status = 0;
- int ret;
-#ifdef CONFIG_MACH_PX
- struct ath6kl_vif *vif = ath6kl_get_vif_by_index(ar, idx);
-#endif
- /*
- * Configure the device for rx dot11 header rules. "0,0" are the
- * default values. Required if checksum offload is needed. Set
- * RxMetaVersion to 2.
- */
- if (ath6kl_wmi_set_rx_frame_format_cmd(ar->wmi, idx,
- ar->rx_meta_ver, 0, 0)) {
- ath6kl_err("unable to set the rx frame format\n");
- status = -EIO;
- }
-
-
-#ifdef CONFIG_MACH_PX
- if (ar->conf_flags & ATH6KL_CONF_IGNORE_PS_FAIL_EVT_IN_SCAN) {
- if ((ath6kl_wmi_pmparams_cmd(ar->wmi, idx,
- 0, vif->pspoll_num, 0, 0, 1,
- IGNORE_POWER_SAVE_FAIL_EVENT_DURING_SCAN)) != 0) {
- ath6kl_err("unable to set power save fail event policy during scan\n");
- status = -EIO;
- }
- } else {
- if ((ath6kl_wmi_pmparams_cmd(ar->wmi, idx, 0,
- vif->pspoll_num, 0, 0, 1, 0)) != 0) {
- ath6kl_err("unable to set pm params\n");
- status = -EIO;
- }
- }
-#else
- if (ar->conf_flags & ATH6KL_CONF_IGNORE_PS_FAIL_EVT_IN_SCAN)
- if ((ath6kl_wmi_pmparams_cmd(ar->wmi, idx, 0, 1, 0, 0, 1,
- IGNORE_POWER_SAVE_FAIL_EVENT_DURING_SCAN)) != 0) {
- ath6kl_err("unable to set power save fail event policy\n");
- status = -EIO;
- }
-#endif
-
-
- if (!(ar->conf_flags & ATH6KL_CONF_IGNORE_ERP_BARKER))
- if ((ath6kl_wmi_set_lpreamble_cmd(ar->wmi, idx, 0,
- WMI_DONOT_IGNORE_BARKER_IN_ERP)) != 0) {
- ath6kl_err("unable to set barker preamble policy\n");
- status = -EIO;
- }
-
- if (ath6kl_wmi_set_keepalive_cmd(ar->wmi, idx,
- WLAN_CONFIG_KEEP_ALIVE_INTERVAL)) {
- ath6kl_err("unable to set keep alive interval\n");
- status = -EIO;
- }
-
- if (ath6kl_wmi_disctimeout_cmd(ar->wmi, idx,
- WLAN_CONFIG_DISCONNECT_TIMEOUT)) {
- ath6kl_err("unable to set disconnect timeout\n");
- status = -EIO;
- }
-
- if (!(ar->conf_flags & ATH6KL_CONF_ENABLE_TX_BURST))
- if (ath6kl_wmi_set_wmm_txop(ar->wmi, idx, WMI_TXOP_DISABLED)) {
- ath6kl_err("unable to set txop bursting\n");
- status = -EIO;
- }
-
- if (ar->p2p && (ar->vif_max == 1 || idx)) {
- ret = ath6kl_wmi_info_req_cmd(ar->wmi, idx,
- P2P_FLAG_CAPABILITIES_REQ |
- P2P_FLAG_MACADDR_REQ |
- P2P_FLAG_HMODEL_REQ);
- if (ret) {
- ath6kl_dbg(ATH6KL_DBG_TRC, "failed to request P2P "
- "capabilities (%d) - assuming P2P not "
- "supported\n", ret);
- ar->p2p = 0;
- }
- }
-
- if (ar->p2p && (ar->vif_max == 1 || idx)) {
- /* Enable Probe Request reporting for P2P */
- ret = ath6kl_wmi_probe_report_req_cmd(ar->wmi, idx, true);
- if (ret) {
- ath6kl_dbg(ATH6KL_DBG_TRC, "failed to enable Probe "
- "Request reporting (%d)\n", ret);
- }
- }
-
-#ifdef CONFIG_MACH_PX
- if (vif->nw_type == INFRA_NETWORK) {
- ath6kl_dbg(ATH6KL_DBG_TRC, "AR6K: bg scan interval = %d, active dwell time = %d, passive dwell time = %d\n",
- vif->scparams.bg_period,
- vif->scparams.maxact_chdwell_time,
- vif->scparams.pas_chdwell_time);
-
- ath6kl_wmi_scanparams_cmd(ar->wmi, idx,
- vif->scparams.fg_start_period,
- vif->scparams.fg_end_period, vif->scparams.bg_period,
- vif->scparams.minact_chdwell_time,
- vif->scparams.maxact_chdwell_time,
- vif->scparams.pas_chdwell_time,
- vif->scparams.short_scan_ratio,
- vif->scparams.scan_ctrl_flags,
- vif->scparams.max_dfsch_act_time,
- vif->scparams.maxact_scan_per_ssid);
-
- ath6kl_wmi_set_roam_lrssi_cmd(ar->wmi, lrssi);
- }
-#endif
- return status;
-}
-
-int ath6kl_configure_target(struct ath6kl *ar)
-{
- u32 param, ram_reserved_size;
- u8 fw_iftype, fw_mode = 0, fw_submode = 0;
- int i, status;
-
- param = uart_debug;
- if (ath6kl_bmi_write(ar, ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_serial_enable)), (u8 *)&param, 4)) {
- ath6kl_err("bmi_write_memory for uart debug failed\n");
- return -EIO;
- }
-
- /*
- * Note: Even though the firmware interface type is
- * chosen as BSS_STA for all three interfaces, can
- * be configured to IBSS/AP as long as the fw submode
- * remains normal mode (0 - AP, STA and IBSS). But
- * due to an target assert in firmware only one interface is
- * configured for now.
- */
- fw_iftype = HI_OPTION_FW_MODE_BSS_STA;
-
- for (i = 0; i < ar->vif_max; i++)
- fw_mode |= fw_iftype << (i * HI_OPTION_FW_MODE_BITS);
-
- /*
- * By default, submodes :
- * vif[0] - AP/STA/IBSS
- * vif[1] - "P2P dev"/"P2P GO"/"P2P Client"
- * vif[2] - "P2P dev"/"P2P GO"/"P2P Client"
- */
-
- for (i = 0; i < ar->max_norm_iface; i++)
- fw_submode |= HI_OPTION_FW_SUBMODE_NONE <<
- (i * HI_OPTION_FW_SUBMODE_BITS);
-
- for (i = ar->max_norm_iface; i < ar->vif_max; i++)
- fw_submode |= HI_OPTION_FW_SUBMODE_P2PDEV <<
- (i * HI_OPTION_FW_SUBMODE_BITS);
-
- if (ar->p2p && ar->vif_max == 1)
- fw_submode = HI_OPTION_FW_SUBMODE_P2PDEV;
-
- param = HTC_PROTOCOL_VERSION;
- if (ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_app_host_interest)),
- (u8 *)&param, 4) != 0) {
- ath6kl_err("bmi_write_memory for htc version failed\n");
- return -EIO;
- }
-
- /* set the firmware mode to STA/IBSS/AP */
- param = 0;
-
- if (ath6kl_bmi_read(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_option_flag)),
- (u8 *)&param, 4) != 0) {
- ath6kl_err("bmi_read_memory for setting fwmode failed\n");
- return -EIO;
- }
-
- param |= (ar->vif_max << HI_OPTION_NUM_DEV_SHIFT);
- param |= fw_mode << HI_OPTION_FW_MODE_SHIFT;
- param |= fw_submode << HI_OPTION_FW_SUBMODE_SHIFT;
-
- param |= (0 << HI_OPTION_MAC_ADDR_METHOD_SHIFT);
- param |= (0 << HI_OPTION_FW_BRIDGE_SHIFT);
-
- if (ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_option_flag)),
- (u8 *)&param,
- 4) != 0) {
- ath6kl_err("bmi_write_memory for setting fwmode failed\n");
- return -EIO;
- }
-
- ath6kl_dbg(ATH6KL_DBG_TRC, "firmware mode set\n");
-
- /*
- * Hardcode the address use for the extended board data
- * Ideally this should be pre-allocate by the OS at boot time
- * But since it is a new feature and board data is loaded
- * at init time, we have to workaround this from host.
- * It is difficult to patch the firmware boot code,
- * but possible in theory.
- */
-
- param = ar->hw.board_ext_data_addr;
- ram_reserved_size = ar->hw.reserved_ram_size;
-
- if (ath6kl_bmi_write(ar, ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_board_ext_data)),
- (u8 *)&param, 4) != 0) {
- ath6kl_err("bmi_write_memory for hi_board_ext_data failed\n");
- return -EIO;
- }
-
- if (ath6kl_bmi_write(ar, ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_end_ram_reserve_sz)),
- (u8 *)&ram_reserved_size, 4) != 0) {
- ath6kl_err("bmi_write_memory for hi_end_ram_reserve_sz failed\n");
- return -EIO;
- }
-
- /* set the block size for the target */
- if (ath6kl_set_htc_params(ar, MBOX_YIELD_LIMIT, 0))
- /* use default number of control buffers */
- return -EIO;
-
- /* Configure GPIO AR600x UART */
- param = ar->hw.uarttx_pin;
- status = ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_dbg_uart_txpin)),
- (u8 *)&param, 4);
- if (status)
- return status;
-
- /* Configure target refclk_hz */
- param = ar->hw.refclk_hz;
- status = ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_refclk_hz)),
- (u8 *)&param, 4);
- if (status)
- return status;
-
- return 0;
-}
-
-void ath6kl_core_free(struct ath6kl *ar)
-{
- wiphy_free(ar->wiphy);
-}
-
-void ath6kl_core_cleanup(struct ath6kl *ar)
-{
- ath6kl_hif_power_off(ar);
-
- destroy_workqueue(ar->ath6kl_wq);
-
- if (ar->htc_target)
- ath6kl_htc_cleanup(ar->htc_target);
-
- ath6kl_cookie_cleanup(ar);
-
- ath6kl_cleanup_amsdu_rxbufs(ar);
-
- ath6kl_bmi_cleanup(ar);
-
- ath6kl_debug_cleanup(ar);
-
- vfree(ar->fw_board);
- vfree(ar->fw_otp);
- vfree(ar->fw);
- vfree(ar->fw_patch);
- vfree(ar->fw_testscript);
-
- ath6kl_deinit_ieee80211_hw(ar);
-}
-
-/* firmware upload */
-static int ath6kl_get_fw(struct ath6kl *ar, const char *filename,
- u8 **fw, size_t *fw_len)
-{
- const struct firmware *fw_entry;
- int ret;
-
- ret = request_firmware(&fw_entry, filename, ar->dev);
- if (ret)
- return ret;
-
- *fw_len = fw_entry->size;
- *fw = vmalloc(fw_entry->size);
-
- if (*fw == NULL)
- ret = -ENOMEM;
-
- memcpy(*fw, fw_entry->data, fw_entry->size);
-
- release_firmware(fw_entry);
-
- return ret;
-}
-
-#if 0
-#ifdef CONFIG_OF
-/*
- * Check the device tree for a board-id and use it to construct
- * the pathname to the firmware file. Used (for now) to find a
- * fallback to the "bdata.bin" file--typically a symlink to the
- * appropriate board-specific file.
- */
-static bool check_device_tree(struct ath6kl *ar)
-{
- static const char *board_id_prop = "atheros,board-id";
- struct device_node *node;
- char board_filename[64];
- const char *board_id;
- int ret;
-
- for_each_compatible_node(node, NULL, "atheros,ath6kl") {
- board_id = of_get_property(node, board_id_prop, NULL);
- if (board_id == NULL) {
- ath6kl_warn("No \"%s\" property on %s node.\n",
- board_id_prop, node->name);
- continue;
- }
- snprintf(board_filename, sizeof(board_filename),
- "%s/bdata.%s.bin", ar->hw.fw.dir, board_id);
-
- ret = ath6kl_get_fw(ar, board_filename, &ar->fw_board,
- &ar->fw_board_len);
- if (ret) {
- ath6kl_err("Failed to get DT board file %s: %d\n",
- board_filename, ret);
- continue;
- }
- return true;
- }
- return false;
-}
-#else
-static bool check_device_tree(struct ath6kl *ar)
-{
- return false;
-}
-#endif /* CONFIG_OF */
-#endif
-static int ath6kl_fetch_board_file(struct ath6kl *ar)
-{
- const char *filename;
- int ret;
-
- if (ar->fw_board != NULL)
- return 0;
-
- if (WARN_ON(ar->hw.fw_board == NULL))
- return -EINVAL;
-
- filename = ar->hw.fw_board;
-
- ret = ath6kl_get_fw(ar, filename, &ar->fw_board,
- &ar->fw_board_len);
- if (ret == 0) {
- /* managed to get proper board file */
- return 0;
- }
-#if 0
- if (check_device_tree(ar)) {
- /* got board file from device tree */
- return 0;
- }
-#endif
- /* there was no proper board file, try to use default instead */
- ath6kl_warn("Failed to get board file %s (%d), trying to find default board file.\n",
- filename, ret);
-
- filename = ar->hw.fw_default_board;
-
- ret = ath6kl_get_fw(ar, filename, &ar->fw_board,
- &ar->fw_board_len);
- if (ret) {
- ath6kl_err("Failed to get default board file %s: %d\n",
- filename, ret);
- return ret;
- }
-
- ath6kl_warn("WARNING! No proper board file was not found, instead using a default board file.\n");
- ath6kl_warn("Most likely your hardware won't work as specified. Install correct board file!\n");
-
- return 0;
-}
-
-static int ath6kl_fetch_otp_file(struct ath6kl *ar)
-{
- char filename[100];
- int ret;
-
- if (ar->fw_otp != NULL)
- return 0;
-
- if (ar->hw.fw.otp == NULL) {
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "no OTP file configured for this hw\n");
- return 0;
- }
-
- snprintf(filename, sizeof(filename), "%s/%s",
- ar->hw.fw.dir, ar->hw.fw.otp);
-
- ret = ath6kl_get_fw(ar, filename, &ar->fw_otp,
- &ar->fw_otp_len);
- if (ret) {
- ath6kl_err("Failed to get OTP file %s: %d\n",
- filename, ret);
- return ret;
- }
-
- return 0;
-}
-
-static int ath6kl_fetch_testmode_file(struct ath6kl *ar)
-{
- char filename[100];
- int ret;
-
- if (testmode == 0)
- return 0;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "testmode %d\n", testmode);
-
- if (testmode == 2) {
- if (ar->hw.fw.utf == NULL) {
- ath6kl_warn("testmode 2 not supported\n");
- return -EOPNOTSUPP;
- }
-
- snprintf(filename, sizeof(filename), "%s/%s",
- ar->hw.fw.dir, ar->hw.fw.utf);
- } else {
- if (ar->hw.fw.tcmd == NULL) {
- ath6kl_warn("testmode 1 not supported\n");
- return -EOPNOTSUPP;
- }
-
- snprintf(filename, sizeof(filename), "%s/%s",
- ar->hw.fw.dir, ar->hw.fw.tcmd);
- }
-
- set_bit(TESTMODE, &ar->flag);
-
- ret = ath6kl_get_fw(ar, filename, &ar->fw, &ar->fw_len);
- if (ret) {
- ath6kl_err("Failed to get testmode %d firmware file %s: %d\n",
- testmode, filename, ret);
- return ret;
- }
-
- return 0;
-}
-
-static int ath6kl_fetch_fw_file(struct ath6kl *ar)
-{
- char filename[100];
- int ret;
-
- if (ar->fw != NULL)
- return 0;
-
- /* FIXME: remove WARN_ON() as we won't support FW API 1 for long */
- if (WARN_ON(ar->hw.fw.fw == NULL))
- return -EINVAL;
-
- snprintf(filename, sizeof(filename), "%s/%s",
- ar->hw.fw.dir, ar->hw.fw.fw);
-
- ret = ath6kl_get_fw(ar, filename, &ar->fw, &ar->fw_len);
- if (ret) {
- ath6kl_err("Failed to get firmware file %s: %d\n",
- filename, ret);
- return ret;
- }
-
- return 0;
-}
-
-static int ath6kl_fetch_patch_file(struct ath6kl *ar)
-{
- char filename[100];
- int ret;
-
- if (ar->fw_patch != NULL)
- return 0;
-
- if (ar->hw.fw.patch == NULL)
- return 0;
-
- snprintf(filename, sizeof(filename), "%s/%s",
- ar->hw.fw.dir, ar->hw.fw.patch);
-
- ret = ath6kl_get_fw(ar, filename, &ar->fw_patch,
- &ar->fw_patch_len);
- if (ret) {
- ath6kl_err("Failed to get patch file %s: %d\n",
- filename, ret);
- return ret;
- }
-
- return 0;
-}
-
-static int ath6kl_fetch_testscript_file(struct ath6kl *ar)
-{
- char filename[100];
- int ret;
-
- if (testmode != 2)
- return 0;
-
- if (ar->fw_testscript != NULL)
- return 0;
-
- if (ar->hw.fw.testscript == NULL)
- return 0;
-
- snprintf(filename, sizeof(filename), "%s/%s",
- ar->hw.fw.dir, ar->hw.fw.testscript);
-
- ret = ath6kl_get_fw(ar, filename, &ar->fw_testscript,
- &ar->fw_testscript_len);
- if (ret) {
- ath6kl_err("Failed to get testscript file %s: %d\n",
- filename, ret);
- return ret;
- }
-
- return 0;
-}
-
-static int ath6kl_fetch_fw_api1(struct ath6kl *ar)
-{
- int ret;
-
- ret = ath6kl_fetch_otp_file(ar);
- if (ret)
- return ret;
-
- ret = ath6kl_fetch_fw_file(ar);
- if (ret)
- return ret;
-
- ret = ath6kl_fetch_patch_file(ar);
- if (ret)
- return ret;
-
- ret = ath6kl_fetch_testscript_file(ar);
- if (ret)
- return ret;
-
- return 0;
-}
-
-static int ath6kl_fetch_fw_apin(struct ath6kl *ar, const char *name)
-{
- size_t magic_len, len, ie_len;
- const struct firmware *fw;
- struct ath6kl_fw_ie *hdr;
- char filename[100];
- const u8 *data;
- int ret, ie_id, i, index, bit;
- __le32 *val;
-
- snprintf(filename, sizeof(filename), "%s/%s", ar->hw.fw.dir, name);
-
- ret = request_firmware(&fw, filename, ar->dev);
- if (ret)
- return ret;
-
- data = fw->data;
- len = fw->size;
-
- /* magic also includes the null byte, check that as well */
- magic_len = strlen(ATH6KL_FIRMWARE_MAGIC) + 1;
-
- if (len < magic_len) {
- ret = -EINVAL;
- goto out;
- }
-
- if (memcmp(data, ATH6KL_FIRMWARE_MAGIC, magic_len) != 0) {
- ret = -EINVAL;
- goto out;
- }
-
- len -= magic_len;
- data += magic_len;
-
- /* loop elements */
- while (len > sizeof(struct ath6kl_fw_ie)) {
- /* hdr is unaligned! */
- hdr = (struct ath6kl_fw_ie *) data;
-
- ie_id = le32_to_cpup(&hdr->id);
- ie_len = le32_to_cpup(&hdr->len);
-
- len -= sizeof(*hdr);
- data += sizeof(*hdr);
-
- if (len < ie_len) {
- ret = -EINVAL;
- goto out;
- }
-
- switch (ie_id) {
- case ATH6KL_FW_IE_OTP_IMAGE:
- ath6kl_dbg(ATH6KL_DBG_BOOT, "found otp image ie (%zd B)\n",
- ie_len);
-
- ar->fw_otp = vmalloc(ie_len);
-
- if (ar->fw_otp == NULL) {
- ret = -ENOMEM;
- goto out;
- }
-
- memcpy(ar->fw_otp, data, ie_len);
- ar->fw_otp_len = ie_len;
- break;
- case ATH6KL_FW_IE_FW_IMAGE:
- ath6kl_dbg(ATH6KL_DBG_BOOT, "found fw image ie (%zd B)\n",
- ie_len);
-
- /* in testmode we already might have a fw file */
- if (ar->fw != NULL)
- break;
-
- ar->fw = vmalloc(ie_len);
-
- if (ar->fw == NULL) {
- ret = -ENOMEM;
- goto out;
-
- }
- memcpy(ar->fw, data, ie_len);
- ar->fw_len = ie_len;
- break;
- case ATH6KL_FW_IE_PATCH_IMAGE:
- ath6kl_dbg(ATH6KL_DBG_BOOT, "found patch image ie (%zd B)\n",
- ie_len);
-
- ar->fw_patch = vmalloc(ie_len);
-
- if (ar->fw_patch == NULL) {
- ret = -ENOMEM;
- goto out;
- }
-
- memcpy(ar->fw_patch, data, ie_len);
- ar->fw_patch_len = ie_len;
- break;
- case ATH6KL_FW_IE_RESERVED_RAM_SIZE:
- val = (__le32 *) data;
- ar->hw.reserved_ram_size = le32_to_cpup(val);
-
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "found reserved ram size ie 0x%d\n",
- ar->hw.reserved_ram_size);
- break;
- case ATH6KL_FW_IE_CAPABILITIES:
- if (ie_len < DIV_ROUND_UP(ATH6KL_FW_CAPABILITY_MAX, 8))
- break;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "found firmware capabilities ie (%zd B)\n",
- ie_len);
-
- for (i = 0; i < ATH6KL_FW_CAPABILITY_MAX; i++) {
- index = i / 8;
- bit = i % 8;
-
- if (data[index] & (1 << bit))
- __set_bit(i, ar->fw_capabilities);
- }
-
- ath6kl_dbg_dump(ATH6KL_DBG_BOOT, "capabilities", "",
- ar->fw_capabilities,
- sizeof(ar->fw_capabilities));
- break;
- case ATH6KL_FW_IE_PATCH_ADDR:
- if (ie_len != sizeof(*val))
- break;
-
- val = (__le32 *) data;
- ar->hw.dataset_patch_addr = le32_to_cpup(val);
-
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "found patch address ie 0x%x\n",
- ar->hw.dataset_patch_addr);
- break;
- case ATH6KL_FW_IE_BOARD_ADDR:
- if (ie_len != sizeof(*val))
- break;
-
- val = (__le32 *) data;
- ar->hw.board_addr = le32_to_cpup(val);
-
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "found board address ie 0x%x\n",
- ar->hw.board_addr);
- break;
- case ATH6KL_FW_IE_VIF_MAX:
- if (ie_len != sizeof(*val))
- break;
-
- val = (__le32 *) data;
- ar->vif_max = min_t(unsigned int, le32_to_cpup(val),
- ATH6KL_VIF_MAX);
-
- if (ar->vif_max > 1 && !ar->p2p)
- ar->max_norm_iface = 2;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "found vif max ie %d\n", ar->vif_max);
- break;
- default:
- ath6kl_dbg(ATH6KL_DBG_BOOT, "Unknown fw ie: %u\n",
- le32_to_cpup(&hdr->id));
- break;
- }
-
- len -= ie_len;
- data += ie_len;
- };
-
- ret = 0;
-out:
- release_firmware(fw);
-
- return ret;
-}
-
-static int ath6kl_fetch_firmwares(struct ath6kl *ar)
-{
- int ret;
-
-#ifdef CONFIG_MACH_PX
- if (testmode)
- ar->hw.fw_board = AR6003_HW_2_1_1_TCMD_BOARD_DATA_FILE;
-#endif
-
- ret = ath6kl_fetch_board_file(ar);
- if (ret)
- return ret;
-
- ret = ath6kl_fetch_testmode_file(ar);
- if (ret)
- return ret;
-
- ret = ath6kl_fetch_fw_apin(ar, ATH6KL_FW_API3_FILE);
- if (ret == 0) {
- ar->fw_api = 3;
- goto out;
- }
-
- ret = ath6kl_fetch_fw_apin(ar, ATH6KL_FW_API2_FILE);
- if (ret == 0) {
- ar->fw_api = 2;
- goto out;
- }
-
- ret = ath6kl_fetch_fw_api1(ar);
- if (ret)
- return ret;
-
- ar->fw_api = 1;
-
-out:
- ath6kl_dbg(ATH6KL_DBG_BOOT, "using fw api %d\n", ar->fw_api);
-
- return 0;
-}
-
-static int ath6kl_upload_board_file(struct ath6kl *ar)
-{
- u32 board_address, board_ext_address, param;
- u32 board_data_size, board_ext_data_size;
- int ret;
-
- if (WARN_ON(ar->fw_board == NULL))
- return -ENOENT;
-
- /*
- * Determine where in Target RAM to write Board Data.
- * For AR6004, host determine Target RAM address for
- * writing board data.
- */
- if (ar->hw.board_addr != 0) {
- board_address = ar->hw.board_addr;
- ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_board_data)),
- (u8 *) &board_address, 4);
- } else {
- ath6kl_bmi_read(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_board_data)),
- (u8 *) &board_address, 4);
- }
-
- /* determine where in target ram to write extended board data */
- ath6kl_bmi_read(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_board_ext_data)),
- (u8 *) &board_ext_address, 4);
-
- if (ar->target_type == TARGET_TYPE_AR6003 &&
- board_ext_address == 0) {
- ath6kl_err("Failed to get board file target address.\n");
- return -EINVAL;
- }
-
- switch (ar->target_type) {
- case TARGET_TYPE_AR6003:
- board_data_size = AR6003_BOARD_DATA_SZ;
- board_ext_data_size = AR6003_BOARD_EXT_DATA_SZ;
- if (ar->fw_board_len > (board_data_size + board_ext_data_size))
- board_ext_data_size = AR6003_BOARD_EXT_DATA_SZ_V2;
- break;
- case TARGET_TYPE_AR6004:
- board_data_size = AR6004_BOARD_DATA_SZ;
- board_ext_data_size = AR6004_BOARD_EXT_DATA_SZ;
- break;
- default:
- WARN_ON(1);
- return -EINVAL;
- break;
- }
-
- if (board_ext_address &&
- ar->fw_board_len == (board_data_size + board_ext_data_size)) {
-
- /* write extended board data */
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "writing extended board data to 0x%x (%d B)\n",
- board_ext_address, board_ext_data_size);
-
- ret = ath6kl_bmi_write(ar, board_ext_address,
- ar->fw_board + board_data_size,
- board_ext_data_size);
- if (ret) {
- ath6kl_err("Failed to write extended board data: %d\n",
- ret);
- return ret;
- }
-
- /* record that extended board data is initialized */
- param = (board_ext_data_size << 16) | 1;
-
- ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_board_ext_data_config)),
- (unsigned char *) &param, 4);
- }
-
- if (ar->fw_board_len < board_data_size) {
- ath6kl_err("Too small board file: %zu\n", ar->fw_board_len);
- ret = -EINVAL;
- return ret;
- }
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "writing board file to 0x%x (%d B)\n",
- board_address, board_data_size);
-
- ret = ath6kl_bmi_write(ar, board_address, ar->fw_board,
- board_data_size);
-
- if (ret) {
- ath6kl_err("Board file bmi write failed: %d\n", ret);
- return ret;
- }
-
- /* record the fact that Board Data IS initialized */
- param = 1;
- ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_board_data_initialized)),
- (u8 *)&param, 4);
-
- return ret;
-}
-
-static int ath6kl_upload_otp(struct ath6kl *ar)
-{
- u32 address, param;
- bool from_hw = false;
- int ret;
-
- if (ar->fw_otp == NULL)
- return 0;
-
- address = ar->hw.app_load_addr;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "writing otp to 0x%x (%zd B)\n", address,
- ar->fw_otp_len);
-
- ret = ath6kl_bmi_fast_download(ar, address, ar->fw_otp,
- ar->fw_otp_len);
- if (ret) {
- ath6kl_err("Failed to upload OTP file: %d\n", ret);
- return ret;
- }
-
- /* read firmware start address */
- ret = ath6kl_bmi_read(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_app_start)),
- (u8 *) &address, sizeof(address));
-
- if (ret) {
- ath6kl_err("Failed to read hi_app_start: %d\n", ret);
- return ret;
- }
-
- if (ar->hw.app_start_override_addr == 0) {
- ar->hw.app_start_override_addr = address;
- from_hw = true;
- }
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "app_start_override_addr%s 0x%x\n",
- from_hw ? " (from hw)" : "",
- ar->hw.app_start_override_addr);
-
- /* execute the OTP code */
- ath6kl_dbg(ATH6KL_DBG_BOOT, "executing OTP at 0x%x\n",
- ar->hw.app_start_override_addr);
-
-#ifdef CONFIG_MACH_PX
- /* SOFTMAC has higher priority than OTP MAC */
- param = 1;
-#else
- param = 0;
-#endif
-
- ath6kl_bmi_execute(ar, ar->hw.app_start_override_addr, &param);
-
- return ret;
-}
-
-static int ath6kl_upload_firmware(struct ath6kl *ar)
-{
- u32 address;
- int ret;
-
- if (WARN_ON(ar->fw == NULL))
- return 0;
-
- address = ar->hw.app_load_addr;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "writing firmware to 0x%x (%zd B)\n",
- address, ar->fw_len);
-
- ret = ath6kl_bmi_fast_download(ar, address, ar->fw, ar->fw_len);
-
- if (ret) {
- ath6kl_err("Failed to write firmware: %d\n", ret);
- return ret;
- }
-
- /*
- * Set starting address for firmware
- * Don't need to setup app_start override addr on AR6004
- */
- if (ar->target_type != TARGET_TYPE_AR6004) {
- address = ar->hw.app_start_override_addr;
- ath6kl_bmi_set_app_start(ar, address);
- }
- return ret;
-}
-
-static int ath6kl_upload_patch(struct ath6kl *ar)
-{
- u32 address, param;
- int ret;
-
- if (ar->fw_patch == NULL)
- return 0;
-
- address = ar->hw.dataset_patch_addr;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "writing patch to 0x%x (%zd B)\n",
- address, ar->fw_patch_len);
-
- ret = ath6kl_bmi_write(ar, address, ar->fw_patch, ar->fw_patch_len);
- if (ret) {
- ath6kl_err("Failed to write patch file: %d\n", ret);
- return ret;
- }
-
- param = address;
- ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_dset_list_head)),
- (unsigned char *) &param, 4);
-
- return 0;
-}
-
-static int ath6kl_upload_testscript(struct ath6kl *ar)
-{
- u32 address, param;
- int ret;
-
- if (testmode != 2)
- return 0;
-
- if (ar->fw_testscript == NULL)
- return 0;
-
- address = ar->hw.testscript_addr;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "writing testscript to 0x%x (%zd B)\n",
- address, ar->fw_testscript_len);
-
- ret = ath6kl_bmi_write(ar, address, ar->fw_testscript,
- ar->fw_testscript_len);
- if (ret) {
- ath6kl_err("Failed to write testscript file: %d\n", ret);
- return ret;
- }
-
- param = address;
- ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_ota_testscript)),
- (unsigned char *) &param, 4);
-
- param = 4096;
- ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_end_ram_reserve_sz)),
- (unsigned char *) &param, 4);
-
- param = 1;
- ath6kl_bmi_write(ar,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_test_apps_related)),
- (unsigned char *) &param, 4);
-
- return 0;
-}
-
-#ifdef GLOBALCONFIG_WLAN_COUNTRY_CODE
-#define COUNTRY_MAX 76
-struct channels {
- char country[30];
- char ccode[6];
- unsigned short reg_dmn_code;
-}
-pArray[COUNTRY_MAX] = {
- {"Afghanistan", "AF 0", 0x406a},
- {"Albania", "AL 0", 0x8008},
- {"Algeria", "DZ 0", 0x800c},
- {"Angola", "AD 0", 0x406a},
- {"Austria", "AT 0", 0x8028},
- {"Australia", "AU 0", 0x8024},
- {"Bangladesh", "BD 0", 0x8032},
- {"Belgium", "BE 0", 0x8038},
- {"Bosnia", "BA 0", 0x8046},
- {"Bulgaria", "BG 0", 0x8064},
- {"Croatia", "HR 0", 0x80bf},
- {"Greece", "GR 0", 0x812c},
- {"Czech Republic", "CZ 0", 0x80cb},
- {"Egypt", "EG 0", 0x8332},
- {"Nordic", "FI 0", 0x80f6},
- {"Finland", "FI 0", 0x80f6},
- {"France", "FR 0", 0x80FA},
- {"Gabon", "GA 0", 0x406a},
- {"Germany", "DE 0", 0x8114},
- {"Ghana", "GH 0", 0x406a},
- {"Greece", "GR 0", 0x812c},
- {"Hungary", "HU 0", 0x815c},
- {"Iceland", "IS 0", 0x8160},
- {"India", "IN 0", 0x8164},
- {"Indonesia", "ID 0", 0x8168},
- {"Iraq", "IQ 0", 0x406a},
- {"IE", "IE 0", 0x8174},
- {"Ireland", "IE 0", 0x8174},
- {"Israel", "IL 0", 0x8178},
- {"Italy", "IT 0", 0x817c},
- {"Jamaica", "JM 0", 0x8184},
- {"Jordan", "JO 0", 0x8190},
- {"Central Asia", "KZ 0", 0x818e},
- {"Kazakhstan", "KZ 0", 0x818e},
- {"Kenya", "KE 0", 0x8198},
- {"BALTIC", "LV 0", 0x81ac},
- {"Libya", "LY 0", 0x406a},
- {"Lithuania", "LT 0", 0x81b8},
- {"Luxemburg", "LU 0", 0x81ba},
- {"Macedonia", "MK 0", 0x8327},
- {"Malaysia", "MY 0", 0x81ca},
- {"Mongolia", "MN 0", 0x406a},
- {"Montenegro", "ME 0", 0x837b},
- {"Morocco", "MA 0", 0x81f8},
- {"Nepal", "NP 0", 0x820c},
- {"Netherlands", "NL 0", 0x8210},
- {"The Netherlands", "NL 0", 0x8210},
- {"New Zealand", "NZ 0", 0x822a},
- {"Nigeria", "NG 0", 0x406a},
- {"Norway", "NO 0", 0x8242},
- {"Pakistan", "PK 0", 0x824a},
- {"Philippines", "PH 0", 0x8260},
- {"Poland", "PL 0", 0x8268},
- {"Portugal", "PT 0", 0x826c},
- {"Romania", "RO 0", 0x8282},
- {"Russia", "RU 0", 0x8283},
- {"KSA", "SA 0", 0x82aa},
- {"Senegal", "SN 0", 0x406a},
- {"Serbia", "RS 0", 0x8114},
- {"Singapore", "SG 0", 0x82be},
- {"Slovakia", "SK 0", 0x82bf},
- {"Slovenia", "SI 0", 0x82c1},
- {"South Africa", "ZA 0", 0x82c6},
- {"Spain", "ES 0", 0x82D4},
- {"Sri Lanka", "LK 0", 0x8090},
- {"Sweden", "SE 0", 0x82f0},
- {"Switzerland", "CH 0", 0x82f4},
- {"Thailand", "TH 0", 0x82fc},
- {"Tunisia", "TN 0", 0x8314},
- {"Turkey", "TR 0", 0x8318},
- {"Ukraine", "UA 0", 0x8324},
- {"UK", "GB 0", 0x833A},
- {"UK &IRE", "GB 0", 0x833A},
- {"United Kingdom", "GB 0", 0x833A},
- {"Uzbekistan", "UZ 0", 0x835c},
- {"Vietnam", "VN 0", 0x82c0}
-};
-
-static unsigned short ath6kl_get_reg_dmn_code(u8 *ccode)
-{
- int i = 0;
-
- for (i = 0; i < COUNTRY_MAX; i++) {
- if (strncmp(ccode, pArray[i].ccode, 2) == 0) {
- ath6kl_dbg(ATH6KL_DBG_BOOT, "%s: %s %s 0x%x",
- __func__, pArray[i].country, pArray[i].ccode,
- pArray[i].reg_dmn_code);
- return pArray[i].reg_dmn_code;
- }
- }
-
- ath6kl_err("%s() Failed to find reg_domain code for %s\n",
- __func__, ccode);
-
- return 0xffff;
-}
-
-static void ath6kl_update_ccodeinfo(struct ath6kl *ar)
-{
- char ccode_filename[32];
-
- do {
- int ret = 0;
- size_t length;
- u8 *pdata = NULL;
-
- snprintf(ccode_filename, sizeof(ccode_filename),
- "/data/.ccode.info");
-
- ret = android_readwrite_file(ccode_filename, NULL, NULL, 0);
-
- if (ret < 0)
- break;
- else
- length = ret;
-
- pdata = vmalloc(length + 1);
-
- if (!pdata) {
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "%s: Cannot allocate buffer for ccode_info (%d)\n",
- __func__, length);
- break;
- }
-
- if (android_readwrite_file(ccode_filename,
- (char *)pdata, NULL, length) != length) {
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "%s: file read error, length %d\n",
- __func__, length);
- vfree(pdata);
- break;
- }
- pdata[length] = '\0';
-
- if (reg_domain == 0xffff)
- reg_domain = ath6kl_get_reg_dmn_code(pdata);
-
-
- vfree(pdata);
- } while (0);
-}
-#endif
-
-static void ath6kl_update_psminfo(struct ath6kl *ar)
-{
- char psm_filename[32];
- ar->psminfo = 1;
-
- do {
- int ret = 0;
- size_t length;
- u8 *pdata = NULL;
-
- snprintf(psm_filename, sizeof(psm_filename), "/data/.psm.info");
-
- ret = android_readwrite_file(psm_filename, NULL, NULL, 0);
-
- if (ret < 0)
- break;
- else
- length = ret;
-
- pdata = vmalloc(length);
-
- if (!pdata) {
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "%s: Cannot allocate buffer for psm_info (%d)\n",
- __func__, length);
- break;
- }
-
- if (android_readwrite_file(psm_filename,
- (char *)pdata, NULL, length) != length) {
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "%s: file read error, length %d\n",
- __func__, length);
- vfree(pdata);
- break;
- }
-
- ar->psminfo = *pdata - '0';
- ath6kl_dbg(ATH6KL_DBG_BOOT,"%s: psm_info is %d\n", __FUNCTION__, ar->psminfo);
- vfree(pdata);
- } while (0);
-}
-
-static int ath6kl_init_upload(struct ath6kl *ar)
-{
- u32 param, options, sleep, address;
- int status = 0;
-
- if (ar->target_type != TARGET_TYPE_AR6003 &&
- ar->target_type != TARGET_TYPE_AR6004)
- return -EINVAL;
-
- /* temporarily disable system sleep */
- address = MBOX_BASE_ADDRESS + LOCAL_SCRATCH_ADDRESS;
- status = ath6kl_bmi_reg_read(ar, address, &param);
- if (status)
- return status;
-
- options = param;
-
- param |= ATH6KL_OPTION_SLEEP_DISABLE;
- status = ath6kl_bmi_reg_write(ar, address, param);
- if (status)
- return status;
-
- address = RTC_BASE_ADDRESS + SYSTEM_SLEEP_ADDRESS;
- status = ath6kl_bmi_reg_read(ar, address, &param);
- if (status)
- return status;
-
- sleep = param;
-
- param |= SM(SYSTEM_SLEEP_DISABLE, 1);
- status = ath6kl_bmi_reg_write(ar, address, param);
- if (status)
- return status;
-
- ath6kl_dbg(ATH6KL_DBG_TRC, "old options: %d, old sleep: %d\n",
- options, sleep);
-
- /* program analog PLL register */
- /* no need to control 40/44MHz clock on AR6004 */
- if (ar->target_type != TARGET_TYPE_AR6004) {
- status = ath6kl_bmi_reg_write(ar, ATH6KL_ANALOG_PLL_REGISTER,
- 0xF9104001);
-
- if (status)
- return status;
-
- /* Run at 80/88MHz by default */
- param = SM(CPU_CLOCK_STANDARD, 1);
-
- address = RTC_BASE_ADDRESS + CPU_CLOCK_ADDRESS;
- status = ath6kl_bmi_reg_write(ar, address, param);
- if (status)
- return status;
- }
-
- param = 0;
- address = RTC_BASE_ADDRESS + LPO_CAL_ADDRESS;
- param = SM(LPO_CAL_ENABLE, 1);
- status = ath6kl_bmi_reg_write(ar, address, param);
- if (status)
- return status;
-
- /* WAR to avoid SDIO CRC err */
- if (ar->version.target_ver == AR6003_HW_2_0_VERSION ||
- ar->version.target_ver == AR6003_HW_2_1_1_VERSION) {
- ath6kl_err("temporary war to avoid sdio crc error\n");
-
- param = 0x20;
-
- address = GPIO_BASE_ADDRESS + GPIO_PIN10_ADDRESS;
- status = ath6kl_bmi_reg_write(ar, address, param);
- if (status)
- return status;
-
- address = GPIO_BASE_ADDRESS + GPIO_PIN11_ADDRESS;
- status = ath6kl_bmi_reg_write(ar, address, param);
- if (status)
- return status;
-
- address = GPIO_BASE_ADDRESS + GPIO_PIN12_ADDRESS;
- status = ath6kl_bmi_reg_write(ar, address, param);
- if (status)
- return status;
-
- address = GPIO_BASE_ADDRESS + GPIO_PIN13_ADDRESS;
- status = ath6kl_bmi_reg_write(ar, address, param);
- if (status)
- return status;
- }
-
- ath6kl_bmi_init(ar);
- ath6kl_bmi_reg_write(ar, 0x540678, ar6k_clock);
-
- /* write EEPROM data to Target RAM */
- status = ath6kl_upload_board_file(ar);
- if (status)
- return status;
-
- /* transfer One time Programmable data */
- status = ath6kl_upload_otp(ar);
- if (status)
- return status;
-
- /* Download Target firmware */
- status = ath6kl_upload_firmware(ar);
- if (status)
- return status;
-
- status = ath6kl_upload_patch(ar);
- if (status)
- return status;
-
- /* Download the test script */
- status = ath6kl_upload_testscript(ar);
- if (status)
- return status;
-
- /* Restore system sleep */
- address = RTC_BASE_ADDRESS + SYSTEM_SLEEP_ADDRESS;
- status = ath6kl_bmi_reg_write(ar, address, sleep);
- if (status)
- return status;
-
- address = MBOX_BASE_ADDRESS + LOCAL_SCRATCH_ADDRESS;
-
- if (en_ani)
- param = options & ~0x20;
- else
- param = options | 0x20;
-
- status = ath6kl_bmi_reg_write(ar, address, param);
- if (status)
- return status;
-
- return status;
-}
-
-static int ath6kl_init_hw_params(struct ath6kl *ar)
-{
- const struct ath6kl_hw *hw;
- int i;
-
- for (i = 0; i < ARRAY_SIZE(hw_list); i++) {
- hw = &hw_list[i];
-
- if (hw->id == ar->version.target_ver)
- break;
- }
-
- if (i == ARRAY_SIZE(hw_list)) {
- ath6kl_err("Unsupported hardware version: 0x%x\n",
- ar->version.target_ver);
- return -EINVAL;
- }
-
- ar->hw = *hw;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "target_ver 0x%x target_type 0x%x dataset_patch 0x%x app_load_addr 0x%x\n",
- ar->version.target_ver, ar->target_type,
- ar->hw.dataset_patch_addr, ar->hw.app_load_addr);
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "app_start_override_addr 0x%x board_ext_data_addr 0x%x reserved_ram_size 0x%x",
- ar->hw.app_start_override_addr, ar->hw.board_ext_data_addr,
- ar->hw.reserved_ram_size);
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "refclk_hz %d uarttx_pin %d",
- ar->hw.refclk_hz, ar->hw.uarttx_pin);
-
- return 0;
-}
-
-static const char *ath6kl_init_get_hif_name(enum ath6kl_hif_type type)
-{
- switch (type) {
- case ATH6KL_HIF_TYPE_SDIO:
- return "sdio";
- case ATH6KL_HIF_TYPE_USB:
- return "usb";
- }
-
- return NULL;
-}
-
-int ath6kl_init_hw_start(struct ath6kl *ar)
-{
- long timeleft;
- int ret, i;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "hw start\n");
-
- ret = ath6kl_hif_power_on(ar);
- if (ret)
- return ret;
-
- ret = ath6kl_configure_target(ar);
- if (ret)
- goto err_power_off;
-
- ret = ath6kl_init_upload(ar);
- if (ret)
- goto err_power_off;
-
- if (reg_domain != 0xffff) {
- ret = ath6kl_set_reg_dmn(ar);
- if (ret)
- goto err_power_off;
- }
-
- /* Do we need to finish the BMI phase */
- /* FIXME: return error from ath6kl_bmi_done() */
- if (ath6kl_bmi_done(ar)) {
- ret = -EIO;
- goto err_power_off;
- }
-
- /*
- * The reason we have to wait for the target here is that the
- * driver layer has to init BMI in order to set the host block
- * size.
- */
- if (ath6kl_htc_wait_target(ar->htc_target)) {
- ret = -EIO;
- goto err_power_off;
- }
-
- if (ath6kl_init_service_ep(ar)) {
- ret = -EIO;
- goto err_cleanup_scatter;
- }
-
- /* setup credit distribution */
- ath6kl_credit_setup(ar->htc_target, &ar->credit_state_info);
-
- /* start HTC */
- ret = ath6kl_htc_start(ar->htc_target);
- if (ret) {
- /* FIXME: call this */
- ath6kl_cookie_cleanup(ar);
- goto err_cleanup_scatter;
- }
-
- /* Wait for Wmi event to be ready */
- timeleft = wait_event_interruptible_timeout(ar->event_wq,
- test_bit(WMI_READY,
- &ar->flag),
- WMI_TIMEOUT);
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "firmware booted\n");
-
-
- if (test_and_clear_bit(FIRST_BOOT, &ar->flag)) {
- ath6kl_info("%s %s fw %s api %d%s\n",
- ar->hw.name,
- ath6kl_init_get_hif_name(ar->hif_type),
- ar->wiphy->fw_version,
- ar->fw_api,
- test_bit(TESTMODE, &ar->flag) ? " testmode" : "");
- }
-
- if (ar->version.abi_ver != ATH6KL_ABI_VERSION) {
- ath6kl_err("abi version mismatch: host(0x%x), target(0x%x)\n",
- ATH6KL_ABI_VERSION, ar->version.abi_ver);
- ret = -EIO;
- goto err_htc_stop;
- }
-
- if (!timeleft || signal_pending(current)) {
- ath6kl_err("wmi is not ready or wait was interrupted\n");
- ret = -EIO;
- goto err_htc_stop;
- }
-
- ath6kl_dbg(ATH6KL_DBG_TRC, "%s: wmi is ready\n", __func__);
-
- /* communicate the wmi protocol verision to the target */
- /* FIXME: return error */
- if ((ath6kl_set_host_app_area(ar)) != 0)
- ath6kl_err("unable to set the host app area\n");
-
- for (i = 0; i < ar->vif_max; i++) {
- ret = ath6kl_target_config_wlan_params(ar, i);
- if (ret)
- goto err_htc_stop;
- }
-
- ar->state = ATH6KL_STATE_ON;
-#ifdef CONFIG_MACH_PX
- wake_up(&ar->event_wq);
-#endif
-
- return 0;
-
-err_htc_stop:
- ath6kl_htc_stop(ar->htc_target);
-err_cleanup_scatter:
- ath6kl_hif_cleanup_scatter(ar);
-err_power_off:
- ath6kl_hif_power_off(ar);
-
- return ret;
-}
-
-int ath6kl_init_hw_stop(struct ath6kl *ar)
-{
- int ret;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "hw stop\n");
-
- ath6kl_htc_stop(ar->htc_target);
-
- ath6kl_hif_stop(ar);
-
- ath6kl_bmi_reset(ar);
-
- ret = ath6kl_hif_power_off(ar);
- if (ret)
- ath6kl_warn("failed to power off hif: %d\n", ret);
-
- ar->state = ATH6KL_STATE_OFF;
-
- return 0;
-}
-
-int ath6kl_core_init(struct ath6kl *ar)
-{
- struct ath6kl_bmi_target_info targ_info;
- struct net_device *ndev;
- int ret = 0, i;
-
- ar->ath6kl_wq = create_singlethread_workqueue("ath6kl");
- if (!ar->ath6kl_wq)
- return -ENOMEM;
-
- ret = ath6kl_bmi_init(ar);
- if (ret)
- goto err_wq;
-
- /*
- * Turn on power to get hardware (target) version and leave power
- * on delibrately as we will boot the hardware anyway within few
- * seconds.
- */
- ret = ath6kl_hif_power_on(ar);
- if (ret)
- goto err_bmi_cleanup;
-
- ret = ath6kl_bmi_get_target_info(ar, &targ_info);
- if (ret)
- goto err_power_off;
-
- ar->version.target_ver = le32_to_cpu(targ_info.version);
- ar->target_type = le32_to_cpu(targ_info.type);
- ar->wiphy->hw_version = le32_to_cpu(targ_info.version);
-
- ret = ath6kl_init_hw_params(ar);
- if (ret)
- goto err_power_off;
-
- ar->htc_target = ath6kl_htc_create(ar);
-
- if (!ar->htc_target) {
- ret = -ENOMEM;
- goto err_power_off;
- }
-
- ret = ath6kl_fetch_firmwares(ar);
- if (ret)
- goto err_htc_cleanup;
-
- ath6kl_mangle_mac_address(ar);
- ath6kl_update_psminfo(ar);
-#ifdef GLOBALCONFIG_WLAN_COUNTRY_CODE
- ath6kl_update_ccodeinfo(ar);
-#endif
-
- /* FIXME: we should free all firmwares in the error cases below */
-
- /* Indicate that WMI is enabled (although not ready yet) */
- set_bit(WMI_ENABLED, &ar->flag);
- ar->wmi = ath6kl_wmi_init(ar);
- if (!ar->wmi) {
- ath6kl_err("failed to initialize wmi\n");
- ret = -EIO;
- goto err_htc_cleanup;
- }
-
- ath6kl_dbg(ATH6KL_DBG_TRC, "%s: got wmi @ 0x%p.\n", __func__, ar->wmi);
-
- ret = ath6kl_register_ieee80211_hw(ar);
- if (ret)
- goto err_node_cleanup;
-
- ret = ath6kl_debug_init(ar);
- if (ret) {
- wiphy_unregister(ar->wiphy);
- goto err_node_cleanup;
- }
-
- for (i = 0; i < ar->vif_max; i++)
- ar->avail_idx_map |= BIT(i);
-
- rtnl_lock();
-
- /* Add an initial station interface */
- ndev = ath6kl_interface_add(ar, "wlan%d", NL80211_IFTYPE_STATION, 0,
- INFRA_NETWORK);
-
- rtnl_unlock();
-
- if (!ndev) {
- ath6kl_err("Failed to instantiate a network device\n");
- ret = -ENOMEM;
- wiphy_unregister(ar->wiphy);
- goto err_debug_init;
- }
-
-
- ath6kl_dbg(ATH6KL_DBG_TRC, "%s: name=%s dev=0x%p, ar=0x%p\n",
- __func__, ndev->name, ndev, ar);
-
- /* setup access class priority mappings */
- ar->ac_stream_pri_map[WMM_AC_BK] = 0; /* lowest */
- ar->ac_stream_pri_map[WMM_AC_BE] = 1;
- ar->ac_stream_pri_map[WMM_AC_VI] = 2;
- ar->ac_stream_pri_map[WMM_AC_VO] = 3; /* highest */
-
- /* allocate some buffers that handle larger AMSDU frames */
- ath6kl_refill_amsdu_rxbufs(ar, ATH6KL_MAX_AMSDU_RX_BUFFERS);
-
- ath6kl_cookie_init(ar);
-
- ar->conf_flags = ATH6KL_CONF_IGNORE_ERP_BARKER |
- ATH6KL_CONF_ENABLE_11N | ATH6KL_CONF_ENABLE_TX_BURST;
-
- if (suspend_mode &&
- suspend_mode >= WLAN_POWER_STATE_CUT_PWR &&
- suspend_mode <= WLAN_POWER_STATE_WOW)
- ar->suspend_mode = suspend_mode;
- else
- ar->suspend_mode = 0;
-
- if (suspend_mode == WLAN_POWER_STATE_WOW &&
- (wow_mode == WLAN_POWER_STATE_CUT_PWR ||
- wow_mode == WLAN_POWER_STATE_DEEP_SLEEP))
- ar->wow_suspend_mode = wow_mode;
- else
- ar->wow_suspend_mode = 0;
-
- ar->wiphy->flags |= WIPHY_FLAG_SUPPORTS_FW_ROAM |
- WIPHY_FLAG_HAVE_AP_SME |
- WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD;
-
-#ifdef CONFIG_MACH_PX
-#else
- if (test_bit(ATH6KL_FW_CAPABILITY_SCHED_SCAN, ar->fw_capabilities))
- ar->wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN;
-#endif
-
- ar->wiphy->probe_resp_offload =
- NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS |
- NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 |
- NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P |
- NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U;
-
- set_bit(FIRST_BOOT, &ar->flag);
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
- ndev->hw_features |= NETIF_F_IP_CSUM | NETIF_F_RXCSUM;
-#endif
-
- ret = ath6kl_init_hw_start(ar);
- if (ret) {
- ath6kl_err("Failed to start hardware: %d\n", ret);
- goto err_rxbuf_cleanup;
- }
-
- /* give our connected endpoints some buffers */
- ath6kl_rx_refill(ar->htc_target, ar->ctrl_ep);
- ath6kl_rx_refill(ar->htc_target, ar->ac2ep_map[WMM_AC_BE]);
-
- /*
- * Set mac address which is received in ready event
- * FIXME: Move to ath6kl_interface_add()
- */
- memcpy(ndev->dev_addr, ar->mac_addr, ETH_ALEN);
-
- return ret;
-
-err_rxbuf_cleanup:
- ath6kl_htc_flush_rx_buf(ar->htc_target);
- ath6kl_cleanup_amsdu_rxbufs(ar);
- rtnl_lock();
- ath6kl_deinit_if_data(netdev_priv(ndev));
- rtnl_unlock();
- wiphy_unregister(ar->wiphy);
-err_debug_init:
- ath6kl_debug_cleanup(ar);
-err_node_cleanup:
- ath6kl_cleanup_android_resource(ar);
- ath6kl_wmi_shutdown(ar->wmi);
- clear_bit(WMI_ENABLED, &ar->flag);
- ar->wmi = NULL;
-err_htc_cleanup:
- ath6kl_htc_cleanup(ar->htc_target);
-err_power_off:
- ath6kl_hif_power_off(ar);
-err_bmi_cleanup:
- ath6kl_bmi_cleanup(ar);
-err_wq:
- destroy_workqueue(ar->ath6kl_wq);
-
- return ret;
-}
-
-void ath6kl_cleanup_vif(struct ath6kl_vif *vif, bool wmi_ready)
-{
- static u8 bcast_mac[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
- bool discon_issued;
-
- netif_stop_queue(vif->ndev);
-
- clear_bit(WLAN_ENABLED, &vif->flags);
-
- if (wmi_ready) {
- discon_issued = test_bit(CONNECTED, &vif->flags) ||
- test_bit(CONNECT_PEND, &vif->flags);
- ath6kl_disconnect(vif);
- del_timer(&vif->disconnect_timer);
-
- if (discon_issued)
- ath6kl_disconnect_event(vif, DISCONNECT_CMD,
- (vif->nw_type & AP_NETWORK) ?
- bcast_mac : vif->bssid,
- 0, NULL, 0);
- }
-
- if (vif->scan_req) {
- cfg80211_scan_done(vif->scan_req, true);
- vif->scan_req = NULL;
- }
-}
-
-void ath6kl_stop_txrx(struct ath6kl *ar)
-{
- struct ath6kl_vif *vif, *tmp_vif;
- int i;
-
- set_bit(DESTROY_IN_PROGRESS, &ar->flag);
-
- if (down_interruptible(&ar->sem)) {
- ath6kl_err("down_interruptible failed\n");
- return;
- }
-
- for (i = 0; i < AP_MAX_NUM_STA; i++)
- aggr_reset_state(ar->sta_list[i].aggr_conn);
-
- spin_lock_bh(&ar->list_lock);
- list_for_each_entry_safe(vif, tmp_vif, &ar->vif_list, list) {
- list_del(&vif->list);
- spin_unlock_bh(&ar->list_lock);
- ath6kl_cleanup_vif(vif, test_bit(WMI_READY, &ar->flag));
- rtnl_lock();
- ath6kl_deinit_if_data(vif);
- rtnl_unlock();
- spin_lock_bh(&ar->list_lock);
- }
- spin_unlock_bh(&ar->list_lock);
-
- clear_bit(WMI_READY, &ar->flag);
-
- /*
- * After wmi_shudown all WMI events will be dropped. We
- * need to cleanup the buffers allocated in AP mode and
- * give disconnect notification to stack, which usually
- * happens in the disconnect_event. Simulate the disconnect
- * event by calling the function directly. Sometimes
- * disconnect_event will be received when the debug logs
- * are collected.
- */
- ath6kl_wmi_shutdown(ar->wmi);
-
- clear_bit(WMI_ENABLED, &ar->flag);
- if (ar->htc_target) {
- ath6kl_dbg(ATH6KL_DBG_TRC, "%s: shut down htc\n", __func__);
- ath6kl_htc_stop(ar->htc_target);
- }
-
- /*
- * Try to reset the device if we can. The driver may have been
- * configure NOT to reset the target during a debug session.
- */
- ath6kl_dbg(ATH6KL_DBG_TRC,
- "attempting to reset target on instance destroy\n");
- ath6kl_reset_device(ar, ar->target_type, true, true);
-
- clear_bit(WLAN_ENABLED, &ar->flag);
-}
diff --git a/drivers/net/wireless/ath/ath6kl/main.c b/drivers/net/wireless/ath/ath6kl/main.c
deleted file mode 100755
index 9c674e6..0000000
--- a/drivers/net/wireless/ath/ath6kl/main.c
+++ /dev/null
@@ -1,1324 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "core.h"
-#include "hif-ops.h"
-#include "cfg80211.h"
-#include "target.h"
-#include "debug.h"
-#include "wmiconfig.h"
-
-struct ath6kl_sta *ath6kl_find_sta(struct ath6kl_vif *vif, u8 *node_addr)
-{
- struct ath6kl *ar = vif->ar;
- struct ath6kl_sta *conn = NULL;
- u8 i, max_conn;
-
- max_conn = (vif->nw_type == AP_NETWORK) ? AP_MAX_NUM_STA : 0;
-
- for (i = 0; i < max_conn; i++) {
- if (memcmp(node_addr, ar->sta_list[i].mac, ETH_ALEN) == 0) {
- conn = &ar->sta_list[i];
- break;
- }
- }
-
- return conn;
-}
-
-struct ath6kl_sta *ath6kl_find_sta_by_aid(struct ath6kl *ar, u8 aid)
-{
- struct ath6kl_sta *conn = NULL;
- u8 ctr;
-
- for (ctr = 0; ctr < AP_MAX_NUM_STA; ctr++) {
- if (ar->sta_list[ctr].aid == aid) {
- conn = &ar->sta_list[ctr];
- break;
- }
- }
- return conn;
-}
-
-static void ath6kl_add_new_sta(struct ath6kl_vif *vif, u8 *mac, u16 aid,
- u8 *wpaie, size_t ielen, u8 keymgmt,
- u8 ucipher, u8 auth, u8 apsd_info)
-{
- struct ath6kl *ar = vif->ar;
- struct ath6kl_sta *sta;
- u8 free_slot;
-
- free_slot = aid - 1;
-
- sta = &ar->sta_list[free_slot];
- memcpy(sta->mac, mac, ETH_ALEN);
- if (ielen <= ATH6KL_MAX_IE)
- memcpy(sta->wpa_ie, wpaie, ielen);
- sta->aid = aid;
- sta->keymgmt = keymgmt;
- sta->ucipher = ucipher;
- sta->auth = auth;
- sta->apsd_info = apsd_info;
-
- ar->sta_list_index = ar->sta_list_index | (1 << free_slot);
- ar->ap_stats.sta[free_slot].aid = cpu_to_le32(aid);
- aggr_conn_init(vif, vif->aggr_cntxt, sta->aggr_conn);
-}
-
-static void ath6kl_sta_cleanup(struct ath6kl *ar, u8 i)
-{
- struct ath6kl_sta *sta = &ar->sta_list[i];
- struct ath6kl_mgmt_buff *entry, *tmp;
-
- /* empty the queued pkts in the PS queue if any */
- spin_lock_bh(&sta->psq_lock);
- skb_queue_purge(&sta->psq);
- skb_queue_purge(&sta->apsdq);
-
- if (sta->mgmt_psq_len != 0) {
- list_for_each_entry_safe(entry, tmp, &sta->mgmt_psq, list) {
- kfree(entry);
- }
- INIT_LIST_HEAD(&sta->mgmt_psq);
- sta->mgmt_psq_len = 0;
- }
-
- spin_unlock_bh(&sta->psq_lock);
-
- memset(&ar->ap_stats.sta[sta->aid - 1], 0,
- sizeof(struct wmi_per_sta_stat));
- memset(sta->mac, 0, ETH_ALEN);
- memset(sta->wpa_ie, 0, ATH6KL_MAX_IE);
- sta->aid = 0;
- sta->sta_flags = 0;
-
- ar->sta_list_index = ar->sta_list_index & ~(1 << i);
- aggr_reset_state(sta->aggr_conn);
-}
-
-static u8 ath6kl_remove_sta(struct ath6kl *ar, u8 *mac, u16 reason)
-{
- u8 i, removed = 0;
-
- if (is_zero_ether_addr(mac))
- return removed;
-
- if (is_broadcast_ether_addr(mac)) {
- ath6kl_dbg(ATH6KL_DBG_TRC, "deleting all station\n");
-
- for (i = 0; i < AP_MAX_NUM_STA; i++) {
- if (!is_zero_ether_addr(ar->sta_list[i].mac)) {
- ath6kl_sta_cleanup(ar, i);
- removed = 1;
- }
- }
- } else {
- for (i = 0; i < AP_MAX_NUM_STA; i++) {
- if (memcmp(ar->sta_list[i].mac, mac, ETH_ALEN) == 0) {
- ath6kl_dbg(ATH6KL_DBG_TRC,
- "deleting station %s aid=%d reason=%d\n",
- sec_conv_mac(mac),
- ar->sta_list[i].aid, reason);
- ath6kl_sta_cleanup(ar, i);
- removed = 1;
- break;
- }
- }
- }
-
- return removed;
-}
-
-enum htc_endpoint_id ath6kl_ac2_endpoint_id(void *devt, u8 ac)
-{
- struct ath6kl *ar = devt;
- return ar->ac2ep_map[ac];
-}
-
-struct ath6kl_cookie *ath6kl_alloc_cookie(struct ath6kl *ar)
-{
- struct ath6kl_cookie *cookie;
-
- cookie = ar->cookie_list;
- if (cookie != NULL) {
- ar->cookie_list = cookie->arc_list_next;
- ar->cookie_count--;
- }
-
- return cookie;
-}
-
-void ath6kl_cookie_init(struct ath6kl *ar)
-{
- u32 i;
-
- ar->cookie_list = NULL;
- ar->cookie_count = 0;
-
- memset(ar->cookie_mem, 0, sizeof(ar->cookie_mem));
-
- for (i = 0; i < MAX_COOKIE_NUM; i++)
- ath6kl_free_cookie(ar, &ar->cookie_mem[i]);
-}
-
-void ath6kl_cookie_cleanup(struct ath6kl *ar)
-{
- ar->cookie_list = NULL;
- ar->cookie_count = 0;
-}
-
-void ath6kl_free_cookie(struct ath6kl *ar, struct ath6kl_cookie *cookie)
-{
- /* Insert first */
-
- if (!ar || !cookie)
- return;
-
- cookie->arc_list_next = ar->cookie_list;
- ar->cookie_list = cookie;
- ar->cookie_count++;
-}
-
-/*
- * Read from the hardware through its diagnostic window. No cooperation
- * from the firmware is required for this.
- */
-int ath6kl_diag_read32(struct ath6kl *ar, u32 address, u32 *value)
-{
- int ret;
-
- ret = ath6kl_hif_diag_read32(ar, address, value);
- if (ret) {
- ath6kl_warn("failed to read32 through diagnose window: %d\n",
- ret);
- return ret;
- }
-
- return 0;
-}
-
-/*
- * Write to the ATH6KL through its diagnostic window. No cooperation from
- * the Target is required for this.
- */
-int ath6kl_diag_write32(struct ath6kl *ar, u32 address, __le32 value)
-{
- int ret;
-
- ret = ath6kl_hif_diag_write32(ar, address, value);
-
- if (ret) {
- ath6kl_err("failed to write 0x%x during diagnose window to 0x%d\n",
- address, value);
- return ret;
- }
-
- return 0;
-}
-
-int ath6kl_diag_read(struct ath6kl *ar, u32 address, void *data, u32 length)
-{
- u32 count, *buf = data;
- int ret;
-
- if (WARN_ON(length % 4))
- return -EINVAL;
-
- for (count = 0; count < length / 4; count++, address += 4) {
- ret = ath6kl_diag_read32(ar, address, &buf[count]);
- if (ret)
- return ret;
- }
-
- return 0;
-}
-
-int ath6kl_diag_write(struct ath6kl *ar, u32 address, void *data, u32 length)
-{
- u32 count;
- __le32 *buf = data;
- int ret;
-
- if (WARN_ON(length % 4))
- return -EINVAL;
-
- for (count = 0; count < length / 4; count++, address += 4) {
- ret = ath6kl_diag_write32(ar, address, buf[count]);
- if (ret)
- return ret;
- }
-
- return 0;
-}
-
-int ath6kl_read_fwlogs(struct ath6kl *ar)
-{
- struct ath6kl_dbglog_hdr debug_hdr;
- struct ath6kl_dbglog_buf debug_buf;
- u32 address, length, dropped, firstbuf, debug_hdr_addr;
- int ret, loop;
- u8 *buf;
-
- buf = kmalloc(ATH6KL_FWLOG_PAYLOAD_SIZE, GFP_KERNEL);
- if (!buf)
- return -ENOMEM;
-
- address = TARG_VTOP(ar->target_type,
- ath6kl_get_hi_item_addr(ar,
- HI_ITEM(hi_dbglog_hdr)));
-
- ret = ath6kl_diag_read32(ar, address, &debug_hdr_addr);
- if (ret)
- goto out;
-
- /* Get the contents of the ring buffer */
- if (debug_hdr_addr == 0) {
- ath6kl_warn("Invalid address for debug_hdr_addr\n");
- ret = -EINVAL;
- goto out;
- }
-
- address = TARG_VTOP(ar->target_type, debug_hdr_addr);
- ath6kl_diag_read(ar, address, &debug_hdr, sizeof(debug_hdr));
-
- address = TARG_VTOP(ar->target_type,
- le32_to_cpu(debug_hdr.dbuf_addr));
- firstbuf = address;
- dropped = le32_to_cpu(debug_hdr.dropped);
- ath6kl_diag_read(ar, address, &debug_buf, sizeof(debug_buf));
-
- loop = 100;
-
- do {
- address = TARG_VTOP(ar->target_type,
- le32_to_cpu(debug_buf.buffer_addr));
- length = le32_to_cpu(debug_buf.length);
-
- if (length != 0 && (le32_to_cpu(debug_buf.length) <=
- le32_to_cpu(debug_buf.bufsize))) {
- length = ALIGN(length, 4);
-
- ret = ath6kl_diag_read(ar, address,
- buf, length);
- if (ret)
- goto out;
-
- ath6kl_debug_fwlog_event(ar, buf, length);
- }
-
- address = TARG_VTOP(ar->target_type,
- le32_to_cpu(debug_buf.next));
- ath6kl_diag_read(ar, address, &debug_buf, sizeof(debug_buf));
- if (ret)
- goto out;
-
- loop--;
-
- if (WARN_ON(loop == 0)) {
- ret = -ETIMEDOUT;
- goto out;
- }
- } while (address != firstbuf);
-
-out:
- kfree(buf);
-
- return ret;
-}
-
-#ifdef CONFIG_MACH_PX
-void ath6kl_print_ar6k_registers(struct ath6kl *ar)
-{
-#if 0
- u32 reg_addr;
- u32 epc_addr1, epc_addr2, epc_addr3, epc_addr4;
- u32 epc1, epc2, epc3, epc4;
- u32 intrs, resetc, ssleep;
- int ret;
-
- epc_addr1 = EPC1_ADDR;
- if (epc_addr1 != 0x00)
- {
- epc_addr2 = epc_addr1 + 4;
- epc_addr3 = epc_addr1 + 8;
- epc_addr4 = epc_addr1 + 12;
-
- reg_addr = TARG_VTOP(ar->target_type, le32_to_cpu(epc_addr1));
-
- ret = ath6kl_diag_read32(ar, reg_addr, &epc1);
- if (ret)
- ath6kl_err("diag_read of epc1 is failed\n");
-
-
- reg_addr = TARG_VTOP(ar->target_type, le32_to_cpu(epc_addr2));
-
- ret = ath6kl_diag_read32(ar, reg_addr, &epc2);
- if (ret)
- ath6kl_err("diag_read of epc2 is failed\n");
-
-
- reg_addr = TARG_VTOP(ar->target_type, le32_to_cpu(epc_addr3));
-
- ret = ath6kl_diag_read32(ar, reg_addr, &epc3);
- if (ret)
- ath6kl_err("diag_read of epc3 is failed\n");
-
-
- reg_addr = TARG_VTOP(ar->target_type, le32_to_cpu(epc_addr4));
-
- ret = ath6kl_diag_read32(ar, reg_addr, &epc4);
- if (ret)
- ath6kl_err("diag_read of epc4 is failed\n");
-
- ath6kl_dbg(ATH6KL_DBG_TRC, "ath6kl:reg_dump EPC: %x %x %x %x\n",
- epc1, epc2, epc3, epc4);
- }
-
- /* Interrupt Status */
- reg_addr = TARG_VTOP(ar->target_type, le32_to_cpu(0x4034));
-
- ret = ath6kl_diag_read32(ar, reg_addr, &intrs);
- if (ret)
- ath6kl_err("diag_read of intrs is failed\n");
- else
- ath6kl_dbg(ATH6KL_DBG_TRC,
- "ath6kl:reg_dump interrupt status: %x\n", intrs);
-
- /* Reset Cause */
- reg_addr = TARG_VTOP(ar->target_type, le32_to_cpu(0x40C0));
-
- ret = ath6kl_diag_read32(ar, reg_addr, &resetc);
- if (ret)
- ath6kl_err("diag_read of resetc is failed\n");
- else
- ath6kl_dbg(ATH6KL_DBG_TRC, "ath6kl:reg_dump reset cause: %x\n",
- resetc);
-
-
- /* System Sleep */
- reg_addr = TARG_VTOP(ar->target_type, le32_to_cpu(0x40C4));
-
- ret = ath6kl_diag_read32(ar, reg_addr, &ssleep);
- if (ret)
- ath6kl_err("diag_read of ssleep is failed\n");
- else
- ath6kl_dbg(ATH6KL_DBG_TRC,
- "ath6kl:reg_dump system sleep: %x\n", ssleep);
-#endif
-}
-#endif
-
-/* FIXME: move to a better place, target.h? */
-#define AR6003_RESET_CONTROL_ADDRESS 0x00004000
-#define AR6004_RESET_CONTROL_ADDRESS 0x00004000
-
-void ath6kl_reset_device(struct ath6kl *ar, u32 target_type,
- bool wait_fot_compltn, bool cold_reset)
-{
- int status = 0;
- u32 address;
- __le32 data;
-
- if (target_type != TARGET_TYPE_AR6003 &&
- target_type != TARGET_TYPE_AR6004)
- return;
-
- data = cold_reset ? cpu_to_le32(RESET_CONTROL_COLD_RST) :
- cpu_to_le32(RESET_CONTROL_MBOX_RST);
-
- switch (target_type) {
- case TARGET_TYPE_AR6003:
- address = AR6003_RESET_CONTROL_ADDRESS;
- break;
- case TARGET_TYPE_AR6004:
- address = AR6004_RESET_CONTROL_ADDRESS;
- break;
- }
-
- status = ath6kl_diag_write32(ar, address, data);
-
- if (status)
- ath6kl_err("failed to reset target\n");
-}
-
-static void ath6kl_install_static_wep_keys(struct ath6kl_vif *vif)
-{
- u8 index;
- u8 keyusage;
-
- for (index = 0; index <= WMI_MAX_KEY_INDEX; index++) {
- if (vif->wep_key_list[index].key_len) {
- keyusage = GROUP_USAGE;
- if (index == vif->def_txkey_index)
- keyusage |= TX_USAGE;
-
- ath6kl_wmi_addkey_cmd(vif->ar->wmi, vif->fw_vif_idx,
- index,
- WEP_CRYPT,
- keyusage,
- vif->wep_key_list[index].key_len,
- NULL, 0,
- vif->wep_key_list[index].key,
- KEY_OP_INIT_VAL, NULL,
- NO_SYNC_WMIFLAG);
- }
- }
-}
-
-void ath6kl_connect_ap_mode_bss(struct ath6kl_vif *vif, u16 channel)
-{
- struct ath6kl *ar = vif->ar;
- struct ath6kl_req_key *ik;
- int res;
- u8 key_rsc[ATH6KL_KEY_SEQ_LEN];
-
- ik = &ar->ap_mode_bkey;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "AP mode started on %u MHz\n", channel);
-
- switch (vif->auth_mode) {
- case NONE_AUTH:
- if (vif->prwise_crypto == WEP_CRYPT)
- ath6kl_install_static_wep_keys(vif);
- if (!ik->valid || ik->key_type != WAPI_CRYPT)
- break;
- /* for WAPI, we need to set the delayed group key, continue: */
- case WPA_PSK_AUTH:
- case WPA2_PSK_AUTH:
- case (WPA_PSK_AUTH | WPA2_PSK_AUTH):
- if (!ik->valid)
- break;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "Delayed addkey for "
- "the initial group key for AP mode\n");
- memset(key_rsc, 0, sizeof(key_rsc));
- res = ath6kl_wmi_addkey_cmd(
- ar->wmi, vif->fw_vif_idx, ik->key_index, ik->key_type,
- GROUP_USAGE, ik->key_len, key_rsc, ATH6KL_KEY_SEQ_LEN,
- ik->key,
- KEY_OP_INIT_VAL, NULL, SYNC_BOTH_WMIFLAG);
- if (res) {
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "Delayed "
- "addkey failed: %d\n", res);
- }
- break;
- }
-
- ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, NONE_BSS_FILTER, 0);
- set_bit(CONNECTED, &vif->flags);
- netif_carrier_on(vif->ndev);
-}
-
-void ath6kl_connect_ap_mode_sta(struct ath6kl_vif *vif, u16 aid, u8 *mac_addr,
- u8 keymgmt, u8 ucipher, u8 auth,
- u8 assoc_req_len, u8 *assoc_info, u8 apsd_info)
-{
- u8 *ies = NULL, *wpa_ie = NULL, *pos;
- size_t ies_len = 0;
- struct station_info sinfo;
-
- ath6kl_dbg(ATH6KL_DBG_TRC, "new station %s aid=%d\n",
- sec_conv_mac(mac_addr), aid);
-
- if (assoc_req_len > sizeof(struct ieee80211_hdr_3addr)) {
- struct ieee80211_mgmt *mgmt =
- (struct ieee80211_mgmt *) assoc_info;
- if (ieee80211_is_assoc_req(mgmt->frame_control) &&
- assoc_req_len >= sizeof(struct ieee80211_hdr_3addr) +
- sizeof(mgmt->u.assoc_req)) {
- ies = mgmt->u.assoc_req.variable;
- ies_len = assoc_info + assoc_req_len - ies;
- } else if (ieee80211_is_reassoc_req(mgmt->frame_control) &&
- assoc_req_len >= sizeof(struct ieee80211_hdr_3addr)
- + sizeof(mgmt->u.reassoc_req)) {
- ies = mgmt->u.reassoc_req.variable;
- ies_len = assoc_info + assoc_req_len - ies;
- }
- }
-
- pos = ies;
- while (pos && pos + 1 < ies + ies_len) {
- if (pos + 2 + pos[1] > ies + ies_len)
- break;
- if (pos[0] == WLAN_EID_RSN)
- wpa_ie = pos; /* RSN IE */
- else if (pos[0] == WLAN_EID_VENDOR_SPECIFIC &&
- pos[1] >= 4 &&
- pos[2] == 0x00 && pos[3] == 0x50 && pos[4] == 0xf2) {
- if (pos[5] == 0x01)
- wpa_ie = pos; /* WPA IE */
- else if (pos[5] == 0x04) {
- wpa_ie = pos; /* WPS IE */
- break; /* overrides WPA/RSN IE */
- }
- } else if (pos[0] == 0x44 && wpa_ie == NULL) {
- /*
- * Note: WAPI Parameter Set IE re-uses Element ID that
- * was officially allocated for BSS AC Access Delay. As
- * such, we need to be a bit more careful on when
- * parsing the frame. However, BSS AC Access Delay
- * element is not supposed to be included in
- * (Re)Association Request frames, so this should not
- * cause problems.
- */
- wpa_ie = pos; /* WAPI IE */
- break;
- }
- pos += 2 + pos[1];
- }
-
- ath6kl_add_new_sta(vif, mac_addr, aid, wpa_ie,
- wpa_ie ? 2 + wpa_ie[1] : 0,
- keymgmt, ucipher, auth, apsd_info);
-
- /* send event to application */
- memset(&sinfo, 0, sizeof(sinfo));
-
- /* TODO: sinfo.generation */
-
- sinfo.assoc_req_ies = ies;
- sinfo.assoc_req_ies_len = ies_len;
- sinfo.filled |= STATION_INFO_ASSOC_REQ_IES;
-
- cfg80211_new_sta(vif->ndev, mac_addr, &sinfo, GFP_KERNEL);
-
- netif_wake_queue(vif->ndev);
-}
-
-void disconnect_timer_handler(unsigned long ptr)
-{
- struct net_device *dev = (struct net_device *)ptr;
- struct ath6kl_vif *vif = netdev_priv(dev);
-
- ath6kl_init_profile_info(vif);
- ath6kl_disconnect(vif);
-}
-
-void ath6kl_disconnect(struct ath6kl_vif *vif)
-{
- if (test_bit(CONNECTED, &vif->flags) ||
- test_bit(CONNECT_PEND, &vif->flags)) {
- ath6kl_wmi_disconnect_cmd(vif->ar->wmi, vif->fw_vif_idx);
- /*
- * Disconnect command is issued, clear the connect pending
- * flag. The connected flag will be cleared in
- * disconnect event notification.
- */
- clear_bit(CONNECT_PEND, &vif->flags);
- }
-}
-
-/* WMI Event handlers */
-
-void ath6kl_ready_event(void *devt, u8 *datap, u32 sw_ver, u32 abi_ver)
-{
- struct ath6kl *ar = devt;
-
- memcpy(ar->mac_addr, datap, ETH_ALEN);
- ath6kl_dbg(ATH6KL_DBG_TRC, "%s: mac addr = %s\n",
- __func__, sec_conv_mac(ar->mac_addr));
-
- ar->version.wlan_ver = sw_ver;
- ar->version.abi_ver = abi_ver;
-
- snprintf(ar->wiphy->fw_version,
- sizeof(ar->wiphy->fw_version),
- "%u.%u.%u.%u",
- (ar->version.wlan_ver & 0xf0000000) >> 28,
- (ar->version.wlan_ver & 0x0f000000) >> 24,
- (ar->version.wlan_ver & 0x00ff0000) >> 16,
- (ar->version.wlan_ver & 0x0000ffff));
-
- /* indicate to the waiting thread that the ready event was received */
- set_bit(WMI_READY, &ar->flag);
- wake_up(&ar->event_wq);
-}
-
-void ath6kl_scan_complete_evt(struct ath6kl_vif *vif, int status)
-{
- struct ath6kl *ar = vif->ar;
- bool aborted = false;
-
- if (status != WMI_SCAN_STATUS_SUCCESS)
- aborted = true;
-
- ath6kl_cfg80211_scan_complete_event(vif, aborted);
-
- if (!ar->usr_bss_filter) {
- clear_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags);
- ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx,
- NONE_BSS_FILTER, 0);
- }
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "scan complete: %d\n", status);
-}
-
-void ath6kl_connect_event(struct ath6kl_vif *vif, u16 channel, u8 *bssid,
- u16 listen_int, u16 beacon_int,
- enum network_type net_type, u8 beacon_ie_len,
- u8 assoc_req_len, u8 assoc_resp_len,
- u8 *assoc_info)
-{
- struct ath6kl *ar = vif->ar;
-
- ath6kl_cfg80211_connect_event(vif, channel, bssid,
- listen_int, beacon_int,
- net_type, beacon_ie_len,
- assoc_req_len, assoc_resp_len,
- assoc_info);
-
- memcpy(vif->bssid, bssid, sizeof(vif->bssid));
- vif->bss_ch = channel;
-
- if ((vif->nw_type == INFRA_NETWORK))
- ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx,
- vif->listen_intvl_t, 0);
-
- netif_wake_queue(vif->ndev);
-
- /* Update connect & link status atomically */
- spin_lock_bh(&vif->if_lock);
- set_bit(CONNECTED, &vif->flags);
- clear_bit(CONNECT_PEND, &vif->flags);
- netif_carrier_on(vif->ndev);
- spin_unlock_bh(&vif->if_lock);
-
- aggr_reset_state(vif->aggr_cntxt->aggr_conn);
- vif->reconnect_flag = 0;
-
- if ((vif->nw_type == ADHOC_NETWORK) && ar->ibss_ps_enable) {
- memset(ar->node_map, 0, sizeof(ar->node_map));
- ar->node_num = 0;
- ar->next_ep_id = ENDPOINT_2;
- }
-
- if (!ar->usr_bss_filter) {
- set_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags);
- ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx,
- CURRENT_BSS_FILTER, 0);
- }
-}
-
-void ath6kl_tkip_micerr_event(struct ath6kl_vif *vif, u8 keyid, bool ismcast)
-{
- struct ath6kl_sta *sta;
- struct ath6kl *ar = vif->ar;
- u8 tsc[6];
-
- /*
- * For AP case, keyid will have aid of STA which sent pkt with
- * MIC error. Use this aid to get MAC & send it to hostapd.
- */
- if (vif->nw_type == AP_NETWORK) {
- sta = ath6kl_find_sta_by_aid(ar, (keyid >> 2));
- if (!sta)
- return;
-
- ath6kl_dbg(ATH6KL_DBG_TRC,
- "ap tkip mic error received from aid=%d\n", keyid);
-
- memset(tsc, 0, sizeof(tsc)); /* FIX: get correct TSC */
- cfg80211_michael_mic_failure(vif->ndev, sta->mac,
- NL80211_KEYTYPE_PAIRWISE, keyid,
- tsc, GFP_KERNEL);
- } else
- ath6kl_cfg80211_tkip_micerr_event(vif, keyid, ismcast);
-
-}
-
-static void ath6kl_update_target_stats(struct ath6kl_vif *vif, u8 *ptr, u32 len)
-{
- struct wmi_target_stats *tgt_stats =
- (struct wmi_target_stats *) ptr;
- struct ath6kl *ar = vif->ar;
- struct target_stats *stats = &vif->target_stats;
- struct tkip_ccmp_stats *ccmp_stats;
- u8 ac;
-
- if (len < sizeof(*tgt_stats))
- return;
-
- ath6kl_dbg(ATH6KL_DBG_TRC, "updating target stats\n");
-
- stats->tx_pkt += le32_to_cpu(tgt_stats->stats.tx.pkt);
- stats->tx_byte += le32_to_cpu(tgt_stats->stats.tx.byte);
- stats->tx_ucast_pkt += le32_to_cpu(tgt_stats->stats.tx.ucast_pkt);
- stats->tx_ucast_byte += le32_to_cpu(tgt_stats->stats.tx.ucast_byte);
- stats->tx_mcast_pkt += le32_to_cpu(tgt_stats->stats.tx.mcast_pkt);
- stats->tx_mcast_byte += le32_to_cpu(tgt_stats->stats.tx.mcast_byte);
- stats->tx_bcast_pkt += le32_to_cpu(tgt_stats->stats.tx.bcast_pkt);
- stats->tx_bcast_byte += le32_to_cpu(tgt_stats->stats.tx.bcast_byte);
- stats->tx_rts_success_cnt +=
- le32_to_cpu(tgt_stats->stats.tx.rts_success_cnt);
-
- for (ac = 0; ac < WMM_NUM_AC; ac++)
- stats->tx_pkt_per_ac[ac] +=
- le32_to_cpu(tgt_stats->stats.tx.pkt_per_ac[ac]);
-
- stats->tx_err += le32_to_cpu(tgt_stats->stats.tx.err);
- stats->tx_fail_cnt += le32_to_cpu(tgt_stats->stats.tx.fail_cnt);
- stats->tx_retry_cnt += le32_to_cpu(tgt_stats->stats.tx.retry_cnt);
- stats->tx_mult_retry_cnt +=
- le32_to_cpu(tgt_stats->stats.tx.mult_retry_cnt);
- stats->tx_rts_fail_cnt +=
- le32_to_cpu(tgt_stats->stats.tx.rts_fail_cnt);
- stats->tx_ucast_rate =
- ath6kl_wmi_get_rate(a_sle32_to_cpu(tgt_stats->stats.tx.ucast_rate));
-
- stats->rx_pkt += le32_to_cpu(tgt_stats->stats.rx.pkt);
- stats->rx_byte += le32_to_cpu(tgt_stats->stats.rx.byte);
- stats->rx_ucast_pkt += le32_to_cpu(tgt_stats->stats.rx.ucast_pkt);
- stats->rx_ucast_byte += le32_to_cpu(tgt_stats->stats.rx.ucast_byte);
- stats->rx_mcast_pkt += le32_to_cpu(tgt_stats->stats.rx.mcast_pkt);
- stats->rx_mcast_byte += le32_to_cpu(tgt_stats->stats.rx.mcast_byte);
- stats->rx_bcast_pkt += le32_to_cpu(tgt_stats->stats.rx.bcast_pkt);
- stats->rx_bcast_byte += le32_to_cpu(tgt_stats->stats.rx.bcast_byte);
- stats->rx_frgment_pkt += le32_to_cpu(tgt_stats->stats.rx.frgment_pkt);
- stats->rx_err += le32_to_cpu(tgt_stats->stats.rx.err);
- stats->rx_crc_err += le32_to_cpu(tgt_stats->stats.rx.crc_err);
- stats->rx_key_cache_miss +=
- le32_to_cpu(tgt_stats->stats.rx.key_cache_miss);
- stats->rx_decrypt_err += le32_to_cpu(tgt_stats->stats.rx.decrypt_err);
- stats->rx_dupl_frame += le32_to_cpu(tgt_stats->stats.rx.dupl_frame);
- stats->rx_ucast_rate =
- ath6kl_wmi_get_rate(a_sle32_to_cpu(tgt_stats->stats.rx.ucast_rate));
-
- ccmp_stats = &tgt_stats->stats.tkip_ccmp_stats;
-
- stats->tkip_local_mic_fail +=
- le32_to_cpu(ccmp_stats->tkip_local_mic_fail);
- stats->tkip_cnter_measures_invoked +=
- le32_to_cpu(ccmp_stats->tkip_cnter_measures_invoked);
- stats->tkip_fmt_err += le32_to_cpu(ccmp_stats->tkip_fmt_err);
-
- stats->ccmp_fmt_err += le32_to_cpu(ccmp_stats->ccmp_fmt_err);
- stats->ccmp_replays += le32_to_cpu(ccmp_stats->ccmp_replays);
-
- stats->pwr_save_fail_cnt +=
- le32_to_cpu(tgt_stats->pm_stats.pwr_save_failure_cnt);
- stats->noise_floor_calib =
- a_sle32_to_cpu(tgt_stats->noise_floor_calib);
-
- stats->cs_bmiss_cnt +=
- le32_to_cpu(tgt_stats->cserv_stats.cs_bmiss_cnt);
- stats->cs_low_rssi_cnt +=
- le32_to_cpu(tgt_stats->cserv_stats.cs_low_rssi_cnt);
- stats->cs_connect_cnt +=
- le16_to_cpu(tgt_stats->cserv_stats.cs_connect_cnt);
- stats->cs_discon_cnt +=
- le16_to_cpu(tgt_stats->cserv_stats.cs_discon_cnt);
-
- stats->cs_ave_beacon_rssi =
- a_sle16_to_cpu(tgt_stats->cserv_stats.cs_ave_beacon_rssi);
-
- stats->cs_last_roam_msec =
- tgt_stats->cserv_stats.cs_last_roam_msec;
- stats->cs_snr = tgt_stats->cserv_stats.cs_snr;
- stats->cs_rssi = a_sle16_to_cpu(tgt_stats->cserv_stats.cs_rssi);
-
- stats->lq_val = le32_to_cpu(tgt_stats->lq_val);
-
- stats->wow_pkt_dropped +=
- le32_to_cpu(tgt_stats->wow_stats.wow_pkt_dropped);
- stats->wow_host_pkt_wakeups +=
- tgt_stats->wow_stats.wow_host_pkt_wakeups;
- stats->wow_host_evt_wakeups +=
- tgt_stats->wow_stats.wow_host_evt_wakeups;
- stats->wow_evt_discarded +=
- le16_to_cpu(tgt_stats->wow_stats.wow_evt_discarded);
-
- stats->arp_received = le32_to_cpu(tgt_stats->arp_stats.arp_received);
- stats->arp_replied = le32_to_cpu(tgt_stats->arp_stats.arp_replied);
- stats->arp_matched = le32_to_cpu(tgt_stats->arp_stats.arp_matched);
-
- ath6kl_wmicfg_send_stats(vif, stats);
-
- if (test_bit(STATS_UPDATE_PEND, &vif->flags)) {
- clear_bit(STATS_UPDATE_PEND, &vif->flags);
- wake_up(&ar->event_wq);
- }
-}
-
-static void ath6kl_add_le32(__le32 *var, __le32 val)
-{
- *var = cpu_to_le32(le32_to_cpu(*var) + le32_to_cpu(val));
-}
-
-void ath6kl_tgt_stats_event(struct ath6kl_vif *vif, u8 *ptr, u32 len)
-{
- struct wmi_ap_mode_stat *p = (struct wmi_ap_mode_stat *) ptr;
- struct ath6kl *ar = vif->ar;
- struct wmi_ap_mode_stat *ap = &ar->ap_stats;
- struct wmi_per_sta_stat *st_ap, *st_p;
- u8 ac;
-
- if (vif->nw_type == AP_NETWORK) {
- if (len < sizeof(*p))
- return;
-
- for (ac = 0; ac < AP_MAX_NUM_STA; ac++) {
- st_ap = &ap->sta[ac];
- st_p = &p->sta[ac];
-
- ath6kl_add_le32(&st_ap->tx_bytes, st_p->tx_bytes);
- ath6kl_add_le32(&st_ap->tx_pkts, st_p->tx_pkts);
- ath6kl_add_le32(&st_ap->tx_error, st_p->tx_error);
- ath6kl_add_le32(&st_ap->tx_discard, st_p->tx_discard);
- ath6kl_add_le32(&st_ap->rx_bytes, st_p->rx_bytes);
- ath6kl_add_le32(&st_ap->rx_pkts, st_p->rx_pkts);
- ath6kl_add_le32(&st_ap->rx_error, st_p->rx_error);
- ath6kl_add_le32(&st_ap->rx_discard, st_p->rx_discard);
- }
-
- } else {
- ath6kl_update_target_stats(vif, ptr, len);
- }
-}
-
-void ath6kl_wakeup_event(void *dev)
-{
- struct ath6kl *ar = (struct ath6kl *) dev;
-
- wake_up(&ar->event_wq);
-}
-
-void ath6kl_txpwr_rx_evt(void *devt, u8 tx_pwr)
-{
- struct ath6kl *ar = (struct ath6kl *) devt;
-
- ar->tx_pwr = tx_pwr;
- wake_up(&ar->event_wq);
-}
-
-void ath6kl_pspoll_event(struct ath6kl_vif *vif, u8 aid)
-{
- struct ath6kl_sta *conn;
- struct sk_buff *skb;
- bool psq_empty = false;
- struct ath6kl *ar = vif->ar;
- struct ath6kl_mgmt_buff *mgmt_buf;
-
- conn = ath6kl_find_sta_by_aid(ar, aid);
-
- if (!conn)
- return;
- /*
- * Send out a packet queued on ps queue. When the ps queue
- * becomes empty update the PVB for this station.
- */
- spin_lock_bh(&conn->psq_lock);
- psq_empty = skb_queue_empty(&conn->psq) && (conn->mgmt_psq_len == 0);
- spin_unlock_bh(&conn->psq_lock);
-
- if (psq_empty)
- /* TODO: Send out a NULL data frame */
- return;
-
- spin_lock_bh(&conn->psq_lock);
- if (conn->mgmt_psq_len > 0) {
- mgmt_buf = list_first_entry(&conn->mgmt_psq,
- struct ath6kl_mgmt_buff, list);
- list_del(&mgmt_buf->list);
- conn->mgmt_psq_len--;
- spin_unlock_bh(&conn->psq_lock);
-
- conn->sta_flags |= STA_PS_POLLED;
- ath6kl_wmi_send_mgmt_cmd(ar->wmi, vif->fw_vif_idx,
- mgmt_buf->id, mgmt_buf->freq,
- mgmt_buf->wait, mgmt_buf->buf,
- mgmt_buf->len, mgmt_buf->no_cck);
- conn->sta_flags &= ~STA_PS_POLLED;
- kfree(mgmt_buf);
- } else {
- skb = skb_dequeue(&conn->psq);
- spin_unlock_bh(&conn->psq_lock);
-
- conn->sta_flags |= STA_PS_POLLED;
- ath6kl_data_tx(skb, vif->ndev);
- conn->sta_flags &= ~STA_PS_POLLED;
- }
-
- spin_lock_bh(&conn->psq_lock);
- psq_empty = skb_queue_empty(&conn->psq) && (conn->mgmt_psq_len == 0);
- spin_unlock_bh(&conn->psq_lock);
-
- if (psq_empty)
- ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, conn->aid, 0);
-}
-
-void ath6kl_dtimexpiry_event(struct ath6kl_vif *vif)
-{
- bool mcastq_empty = false;
- struct sk_buff *skb;
- struct ath6kl *ar = vif->ar;
-
- /*
- * If there are no associated STAs, ignore the DTIM expiry event.
- * There can be potential race conditions where the last associated
- * STA may disconnect & before the host could clear the 'Indicate
- * DTIM' request to the firmware, the firmware would have just
- * indicated a DTIM expiry event. The race is between 'clear DTIM
- * expiry cmd' going from the host to the firmware & the DTIM
- * expiry event happening from the firmware to the host.
- */
- if (!ar->sta_list_index)
- return;
-
- spin_lock_bh(&ar->mcastpsq_lock);
- mcastq_empty = skb_queue_empty(&ar->mcastpsq);
- spin_unlock_bh(&ar->mcastpsq_lock);
-
- if (mcastq_empty)
- return;
-
- /* set the STA flag to dtim_expired for the frame to go out */
- set_bit(DTIM_EXPIRED, &vif->flags);
-
- spin_lock_bh(&ar->mcastpsq_lock);
- while ((skb = skb_dequeue(&ar->mcastpsq)) != NULL) {
- spin_unlock_bh(&ar->mcastpsq_lock);
-
- ath6kl_data_tx(skb, vif->ndev);
-
- spin_lock_bh(&ar->mcastpsq_lock);
- }
- spin_unlock_bh(&ar->mcastpsq_lock);
-
- clear_bit(DTIM_EXPIRED, &vif->flags);
-
- /* clear the LSB of the BitMapCtl field of the TIM IE */
- ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, MCAST_AID, 0);
-}
-
-void ath6kl_disconnect_event(struct ath6kl_vif *vif, u8 reason, u8 *bssid,
- u8 assoc_resp_len, u8 *assoc_info,
- u16 prot_reason_status)
-{
- struct ath6kl *ar = vif->ar;
-
- if (vif->nw_type == AP_NETWORK) {
- if (!ath6kl_remove_sta(ar, bssid, prot_reason_status))
- return;
-
- /* if no more associated STAs, empty the mcast PS q */
- if (ar->sta_list_index == 0) {
- spin_lock_bh(&ar->mcastpsq_lock);
- skb_queue_purge(&ar->mcastpsq);
- spin_unlock_bh(&ar->mcastpsq_lock);
-
- /* clear the LSB of the TIM IE's BitMapCtl field */
- if (test_bit(WMI_READY, &ar->flag))
- ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx,
- MCAST_AID, 0);
- }
-
- if (!is_broadcast_ether_addr(bssid)) {
- /* send event to application */
- cfg80211_del_sta(vif->ndev, bssid, GFP_KERNEL);
- }
-
- if (memcmp(vif->ndev->dev_addr, bssid, ETH_ALEN) == 0) {
- memset(vif->wep_key_list, 0, sizeof(vif->wep_key_list));
- clear_bit(CONNECTED, &vif->flags);
- }
- return;
- }
-
- ath6kl_cfg80211_disconnect_event(vif, reason, bssid,
- assoc_resp_len, assoc_info,
- prot_reason_status);
-
- aggr_reset_state(vif->aggr_cntxt->aggr_conn);
-
- del_timer(&vif->disconnect_timer);
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "disconnect reason is %d\n", reason);
-
- /*
- * If the event is due to disconnect cmd from the host, only they
- * the target would stop trying to connect. Under any other
- * condition, target would keep trying to connect.
- */
- if (reason == DISCONNECT_CMD) {
- if (!ar->usr_bss_filter && test_bit(WMI_READY, &ar->flag))
- ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx,
- NONE_BSS_FILTER, 0);
- } else {
- set_bit(CONNECT_PEND, &vif->flags);
- if (((reason == ASSOC_FAILED) &&
- (prot_reason_status == 0x11)) ||
- ((reason == ASSOC_FAILED) && (prot_reason_status == 0x0)
- && (vif->reconnect_flag == 1))) {
- set_bit(CONNECTED, &vif->flags);
- return;
- }
- }
-
- /* update connect & link status atomically */
- spin_lock_bh(&vif->if_lock);
- clear_bit(CONNECTED, &vif->flags);
- netif_carrier_off(vif->ndev);
- spin_unlock_bh(&vif->if_lock);
-
- if ((reason != CSERV_DISCONNECT) || (vif->reconnect_flag != 1))
- vif->reconnect_flag = 0;
-
- if (reason != CSERV_DISCONNECT)
- ar->user_key_ctrl = 0;
-
- netif_stop_queue(vif->ndev);
- memset(vif->bssid, 0, sizeof(vif->bssid));
- vif->bss_ch = 0;
-
- ath6kl_tx_data_cleanup(ar);
-}
-
-struct ath6kl_vif *ath6kl_vif_first(struct ath6kl *ar)
-{
- struct ath6kl_vif *vif;
-
- spin_lock_bh(&ar->list_lock);
- if (list_empty(&ar->vif_list)) {
- spin_unlock_bh(&ar->list_lock);
- return NULL;
- }
-
- vif = list_first_entry(&ar->vif_list, struct ath6kl_vif, list);
-
- spin_unlock_bh(&ar->list_lock);
-
- return vif;
-}
-
-static int ath6kl_open(struct net_device *dev)
-{
- struct ath6kl_vif *vif = netdev_priv(dev);
-
- set_bit(WLAN_ENABLED, &vif->flags);
-
- if (test_bit(CONNECTED, &vif->flags)) {
- netif_carrier_on(dev);
- netif_wake_queue(dev);
- } else
- netif_carrier_off(dev);
-
- return 0;
-}
-
-static int ath6kl_close(struct net_device *dev)
-{
- struct ath6kl_vif *vif = netdev_priv(dev);
-
- netif_stop_queue(dev);
-
- ath6kl_cfg80211_stop(vif);
-
- clear_bit(WLAN_ENABLED, &vif->flags);
-
- return 0;
-}
-
-static struct net_device_stats *ath6kl_get_stats(struct net_device *dev)
-{
- struct ath6kl_vif *vif = netdev_priv(dev);
-
- return &vif->net_stats;
-}
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-static int ath6kl_set_features(struct net_device *dev, u32 features)
-{
- struct ath6kl_vif *vif = netdev_priv(dev);
- struct ath6kl *ar = vif->ar;
- int err = 0;
-
- if ((features & NETIF_F_RXCSUM) &&
- (ar->rx_meta_ver != WMI_META_VERSION_2)) {
- ar->rx_meta_ver = WMI_META_VERSION_2;
- err = ath6kl_wmi_set_rx_frame_format_cmd(ar->wmi,
- vif->fw_vif_idx,
- ar->rx_meta_ver, 0, 0);
- if (err) {
- dev->features = features & ~NETIF_F_RXCSUM;
- return err;
- }
- } else if (!(features & NETIF_F_RXCSUM) &&
- (ar->rx_meta_ver == WMI_META_VERSION_2)) {
- ar->rx_meta_ver = 0;
- err = ath6kl_wmi_set_rx_frame_format_cmd(ar->wmi,
- vif->fw_vif_idx,
- ar->rx_meta_ver, 0, 0);
- if (err) {
- dev->features = features | NETIF_F_RXCSUM;
- return err;
- }
-
- }
-
- return err;
-}
-#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) */
-
-static void ath6kl_set_multicast_list(struct net_device *ndev)
-{
- struct ath6kl_vif *vif = netdev_priv(ndev);
- bool mc_all_on = false;
- int mc_count = netdev_mc_count(ndev);
- struct netdev_hw_addr *ha;
- bool found;
- struct ath6kl_mc_filter *mc_filter, *tmp;
- struct list_head mc_filter_new;
- int ret;
-
- if (!test_bit(WMI_READY, &vif->ar->flag) ||
- !test_bit(WLAN_ENABLED, &vif->flags))
- return;
-
- /* Enable multicast-all filter. */
- mc_all_on = !!(ndev->flags & IFF_PROMISC) ||
- !!(ndev->flags & IFF_ALLMULTI) ||
- !!(mc_count > ATH6K_MAX_MC_FILTERS_PER_LIST) ||
- (vif->ar->state == ATH6KL_STATE_ON);
-
- if (!(ndev->flags & IFF_MULTICAST))
- mc_all_on = false;
-
- ath6kl_dbg(ATH6KL_DBG_TRC, "multicast state IFF_ALLMULTI = %d , IFF_MULTICAST = %d, "
- "mc_count = %d, mc_all_on = %d",
- ndev->flags & IFF_ALLMULTI, ndev->flags & IFF_MULTICAST, mc_count,
- mc_all_on);
-
- /* Enable/disable "multicast-all" filter*/
- ath6kl_dbg(ATH6KL_DBG_TRC, "%s multicast-all filter\n",
- mc_all_on ? "enabling" : "disabling");
-
- ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi, vif->fw_vif_idx,
- mc_all_on);
-
- if (ret) {
- ath6kl_warn("Failed to %s multicast receive\n",
- mc_all_on ? "enable" : "disable");
- return;
- }
-
- /* Keep the driver and firmware mcast list in sync. */
- list_for_each_entry_safe(mc_filter, tmp, &vif->mc_filter, list) {
- found = false;
- netdev_for_each_mc_addr(ha, ndev) {
- if (memcmp(ha->addr, mc_filter->hw_addr,
- ATH6KL_MCAST_FILTER_MAC_ADDR_SIZE) == 0) {
- found = true;
- break;
- }
- }
-
- if (!found) {
- /*
- * Delete the filter which was previously set
- * but not in the new request.
- */
- ath6kl_dbg(ATH6KL_DBG_TRC,
- "Removing %s from multicast filter\n",
- sec_conv_mac(mc_filter->hw_addr));
- ret = ath6kl_wmi_add_del_mcast_filter_cmd(vif->ar->wmi,
- vif->fw_vif_idx, mc_filter->hw_addr,
- false);
- if (ret) {
- ath6kl_warn("Failed to remove multicast filter:%s\n",
- sec_conv_mac(mc_filter->hw_addr));
- return;
- }
-
- list_del(&mc_filter->list);
- kfree(mc_filter);
- }
- }
-
- INIT_LIST_HEAD(&mc_filter_new);
-
- netdev_for_each_mc_addr(ha, ndev) {
- found = false;
- list_for_each_entry(mc_filter, &vif->mc_filter, list) {
- if (memcmp(ha->addr, mc_filter->hw_addr,
- ATH6KL_MCAST_FILTER_MAC_ADDR_SIZE) == 0) {
- found = true;
- break;
- }
- }
-
- if (!found) {
- mc_filter = kzalloc(sizeof(struct ath6kl_mc_filter),
- GFP_ATOMIC);
- if (!mc_filter) {
- WARN_ON(1);
- goto out;
- }
-
- if (memcmp(ha->addr, "\x33\x33\x00\x00\x00\x01", ETH_ALEN) == 0) {
- ath6kl_warn("Skipped : %s\n", sec_conv_mac(ha->addr));
- kfree(mc_filter);
- continue;
- } else {
- memcpy(mc_filter->hw_addr, ha->addr,
- ATH6KL_MCAST_FILTER_MAC_ADDR_SIZE);
- /* Set the multicast filter */
- ath6kl_dbg(ATH6KL_DBG_TRC,
- "Adding %s to multicast filter list\n",
- sec_conv_mac(mc_filter->hw_addr));
- ret = ath6kl_wmi_add_del_mcast_filter_cmd(vif->ar->wmi,
- vif->fw_vif_idx, mc_filter->hw_addr,
- true);
- if (ret) {
- ath6kl_warn("Failed to add multicast filter :%s\n",
- sec_conv_mac(mc_filter->hw_addr));
- kfree(mc_filter);
- goto out;
- }
- }
-
- list_add_tail(&mc_filter->list, &mc_filter_new);
- }
- }
-
-out:
- list_splice_tail(&mc_filter_new, &vif->mc_filter);
-}
-
-static struct net_device_ops ath6kl_netdev_ops = {
- .ndo_open = ath6kl_open,
- .ndo_stop = ath6kl_close,
- .ndo_start_xmit = ath6kl_data_tx,
- .ndo_get_stats = ath6kl_get_stats,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
- .ndo_set_features = ath6kl_set_features,
-#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) */
- .ndo_set_rx_mode = ath6kl_set_multicast_list,
-};
-
-void init_netdev(struct net_device *dev)
-{
- netdev_attach_ops(dev, &ath6kl_netdev_ops);
- dev->destructor = free_netdev;
- dev->watchdog_timeo = ATH6KL_TX_TIMEOUT;
-
- dev->needed_headroom = ETH_HLEN;
- dev->needed_headroom += sizeof(struct ath6kl_llc_snap_hdr) +
- sizeof(struct wmi_data_hdr) + HTC_HDR_LENGTH
- + WMI_MAX_TX_META_SZ + ATH6KL_HTC_ALIGN_BYTES;
-
- return;
-}
diff --git a/drivers/net/wireless/ath/ath6kl/msm.c b/drivers/net/wireless/ath/ath6kl/msm.c
deleted file mode 100644
index c9013bf..0000000
--- a/drivers/net/wireless/ath/ath6kl/msm.c
+++ /dev/null
@@ -1,425 +0,0 @@
-#include <linux/device.h>
-#include <linux/regulator/consumer.h>
-#include <linux/gpio.h>
-#include <linux/err.h>
-
-#ifdef CONFIG_ARCH_MSM7X27A
-#include <mach/rpc_pmapp.h>
-#include <linux/qcomwlan7x27a_pwrif.h>
-#else
-#include <linux/platform_device.h>
-/* replace with plaftform specific changes */
-#endif
-
-#include "core.h"
-
-typedef int A_BOOL;
-typedef unsigned char A_UCHAR;
-typedef unsigned long A_ATH_TIMER;
-typedef int8_t A_INT8;
-typedef int16_t A_INT16;
-typedef int32_t A_INT32;
-typedef u_int8_t A_UINT8;
-typedef u_int16_t A_UINT16;
-typedef u_int32_t A_UINT32;
-
-#define WMI_MAX_SSID_LEN 32
-#define ATH_MAC_LEN 6 /* length of mac in bytes */
-
-#define __ATTRIB_PACK
-#define POSTPACK __ATTRIB_PACK
-#define PREPACK
-
-typedef PREPACK struct {
- PREPACK union {
- A_UINT8 ie[17];
- A_INT32 wac_status;
- } POSTPACK info;
-} POSTPACK WMI_GET_WAC_INFO;
-
-struct ar_wep_key {
- A_UINT8 arKeyIndex;
- A_UINT8 arKeyLen;
- A_UINT8 arKey[64];
-} ;
-
-#ifdef CONFIG_ARCH_MSM7X27A
-/* BeginMMC polling stuff */
-#define MMC_MSM_DEV "msm_sdcc.2"
-#define A_MDELAY(msecs) mdelay(msecs)
-/* End MMC polling stuff */
-#else
-/* replace with plaftform specific changes */
-#endif
-
-#define WMI_MAX_RATE_MASK 2
-
-
-
-#define GET_INODE_FROM_FILEP(filp) \
- (filp)->f_path.dentry->d_inode
-typedef char A_CHAR;
-int android_readwrite_file(const A_CHAR *filename, A_CHAR *rbuf, const A_CHAR *wbuf, size_t length)
-{
- int ret = 0;
- struct file *filp = (struct file *)-ENOENT;
- mm_segment_t oldfs;
- oldfs = get_fs();
- set_fs(KERNEL_DS);
-
- do {
- int mode = (wbuf) ? O_RDWR : O_RDONLY;
- filp = filp_open(filename, mode, S_IRUSR);
-
- if (IS_ERR(filp) || !filp->f_op) {
- ret = -ENOENT;
- break;
- }
-
- if (length == 0) {
- /* Read the length of the file only */
- struct inode *inode;
-
- inode = GET_INODE_FROM_FILEP(filp);
- if (!inode) {
- printk(KERN_ERR "android_readwrite_file: Error 2\n");
- ret = -ENOENT;
- break;
- }
- ret = i_size_read(inode->i_mapping->host);
- break;
- }
-
- if (wbuf) {
- if ((ret=filp->f_op->write(filp, wbuf, length, &filp->f_pos)) < 0) {
- printk(KERN_ERR "android_readwrite_file: Error 3\n");
- break;
- }
- } else {
- if ((ret=filp->f_op->read(filp, rbuf, length, &filp->f_pos)) < 0) {
- printk(KERN_ERR "android_readwrite_file: Error 4\n");
- break;
- }
- }
- } while (0);
-
- if (!IS_ERR(filp)) {
- filp_close(filp, NULL);
- }
-
- set_fs(oldfs);
- printk(KERN_ERR "android_readwrite_file: ret=%d\n", ret);
-
- return ret;
-}
-
-
-#ifdef CONFIG_ARCH_MSM7X27A
-
-#define WLAN_GPIO_EXT_POR_N 134
-#define A0_CLOCK
-static const char *id = "WLAN";
-
-enum {
- WLAN_VREG_L17 = 0,
- WLAN_VREG_L19
-};
-
-struct wlan_vreg_info {
- const char *vreg_id;
- unsigned int level_min;
- unsigned int level_max;
- unsigned int pmapp_id;
- unsigned int is_vreg_pin_controlled;
- struct regulator *reg;
-};
-
-
-static struct wlan_vreg_info vreg_info[] = {
- {"bt", 3300000, 3300000, 21, 1, NULL},
- {"wlan4", 1800000, 1800000, 23, 1, NULL},
-};
-
-static int qrf6285_init_regs(void)
-{
- struct regulator_bulk_data regs[ARRAY_SIZE(vreg_info)];
- int i, rc;
-
- for (i = 0; i < ARRAY_SIZE(regs); i++) {
- regs[i].supply = vreg_info[i].vreg_id;
- regs[i].min_uV = vreg_info[i].level_min;
- regs[i].max_uV = vreg_info[i].level_max;
- }
-
- rc = regulator_bulk_get(NULL, ARRAY_SIZE(regs), regs);
- if (rc) {
- pr_err("%s: could not get regulators: %d\n", __func__, rc);
- goto out;
- }
-
- for (i = 0; i < ARRAY_SIZE(regs); i++)
- vreg_info[i].reg = regs[i].consumer;
-
- return 0;
-
-out:
- return rc;
-}
-
-int msm7x27a_wifi_power(bool on)
-{
-
- int rc = 0, index = 0;
- static bool init_done;
- static int resultFlag = 0, flag = 1;
-
- if (unlikely(!init_done)) {
- rc = qrf6285_init_regs();
- if (rc)
- return rc;
- else
- init_done = true;
- }
-
- for (index = 0; index < ARRAY_SIZE(vreg_info); index++) {
- if (on) {
-
- rc = regulator_set_voltage(vreg_info[index].reg,
- vreg_info[index].level_min,
- vreg_info[index].level_max);
- if (rc) {
- pr_err("%s:%s set voltage failed %d\n",
- __func__, vreg_info[index].vreg_id, rc);
-
- goto vreg_fail;
- }
-
- rc = regulator_enable(vreg_info[index].reg);
- if (rc) {
- pr_err("%s:%s vreg enable failed %d\n",
- __func__, vreg_info[index].vreg_id, rc);
-
- goto vreg_fail;
- }
-
- if (vreg_info[index].is_vreg_pin_controlled) {
- rc = pmapp_vreg_lpm_pincntrl_vote(id,
- vreg_info[index].pmapp_id,
- PMAPP_CLOCK_ID_A0, 1);
- if (rc) {
- pr_err("%s:%s pmapp_vreg_lpm_pincntrl"
- " for enable failed %d\n",
- __func__,
- vreg_info[index].vreg_id, rc);
- goto vreg_clock_vote_fail;
- }
- }
-
- if (index == WLAN_VREG_L17)
- usleep(5);
- else if (index == WLAN_VREG_L19)
- usleep(10);
-
- } else {
-
- if (vreg_info[index].is_vreg_pin_controlled) {
- rc = pmapp_vreg_lpm_pincntrl_vote(id,
- vreg_info[index].pmapp_id,
- PMAPP_CLOCK_ID_A0, 0);
- if (rc) {
- pr_err("%s:%s pmapp_vreg_lpm_pincntrl"
- " for disable failed %d\n",
- __func__,
- vreg_info[index].vreg_id, rc);
- }
- }
- rc = regulator_disable(vreg_info[index].reg);
- if (rc) {
- pr_err("%s:%s vreg disable failed %d\n",
- __func__, vreg_info[index].vreg_id, rc);
- }
- }
-
- }
-
- if (on) {
- rc = gpio_request(WLAN_GPIO_EXT_POR_N, "WLAN_DEEP_SLEEP_N");
- if (rc) {
- pr_err("WLAN reset GPIO %d request failed %d\n",
- WLAN_GPIO_EXT_POR_N, rc);
- goto fail;
- }
-
- if(flag)
- {
- flag=0;
- rc = gpio_direction_output(WLAN_GPIO_EXT_POR_N, 1);
- if (rc < 0) {
- pr_err("WLAN reset GPIO %d set direction failed %d\n",
- WLAN_GPIO_EXT_POR_N, rc);
- goto fail_gpio_dir_out;
- }
- }
- printk("\n vote for WLAN GPIO 134 done. \n");
-#ifdef A0_CLOCK
- rc = pmapp_clock_vote(id, PMAPP_CLOCK_ID_A0, PMAPP_CLOCK_VOTE_ON);
- if (rc) {
- pr_err("%s: Configuring A0 to turn on"
- " failed %d\n", __func__, rc);
- }
- printk("\nVote for A0 clock done\n");
- /*
- * Configure A0 clock to be slave to
- * WLAN_CLK_PWR_REQ
- */
- rc = pmapp_clock_vote(id, PMAPP_CLOCK_ID_A0,
- PMAPP_CLOCK_VOTE_PIN_CTRL);
- if (rc) {
- pr_err("%s: Configuring A0 to Pin"
- " controllable failed %d\n",
- __func__, rc);
- goto vreg_clock_vote_fail;
- }
-#else
-
- rc = pmapp_clock_vote(id, PMAPP_CLOCK_ID_A0, PMAPP_CLOCK_VOTE_OFF);
- if (rc) {
- pr_err("%s: Configuring A0 to turn off"
- " failed %d\n", __func__, rc);
- }
- printk("\n Vote against A0 clock done\n");
-#endif
-
- } else {
-
- if(!resultFlag){
- gpio_set_value_cansleep(WLAN_GPIO_EXT_POR_N, 0);
- rc = gpio_direction_input(WLAN_GPIO_EXT_POR_N);
- if (rc) {
- pr_err("WLAN reset GPIO %d set direction failed %d\n",
- WLAN_GPIO_EXT_POR_N, rc);
- }
- gpio_free(WLAN_GPIO_EXT_POR_N);
- printk("\n vote against WLAN GPIO 134 done. \n");
- }
- rc = pmapp_clock_vote(id, PMAPP_CLOCK_ID_A0,
- PMAPP_CLOCK_VOTE_OFF);
- if (rc) {
- pr_err("%s: Configuring A0 to turn OFF"
- " failed %d\n", __func__, rc);
- }
- }
-
- printk("Interface %s success \n",on?"initialization":"deinitialization");
- resultFlag = 0;
- return 0;
-
-fail_gpio_dir_out:
- gpio_free(WLAN_GPIO_EXT_POR_N);
-vreg_fail:
- index--;
-vreg_clock_vote_fail:
- while (index >= 0) {
- rc = regulator_disable(vreg_info[index].reg);
- if (rc) {
- pr_err("%s:%s vreg disable failed %d\n",
- __func__, vreg_info[index].vreg_id, rc);
- }
- index--;
- }
-fail:
- resultFlag = 1;
- printk("Interface %s failed \n",on?"initialization":"deinitialization");
- return 0;
-}
-
-#else
-/* replace with plaftform specific changes */
-#endif
-
-static int ath6kl_pm_probe(struct platform_device *pdev)
-{
-#ifdef CONFIG_ARCH_MSM7X27A
- msm7x27a_wifi_power(1);
-#else
- /* replace with plaftform specific changes */
-#endif
-
- return 0;
-}
-
-static int ath6kl_pm_remove(struct platform_device *pdev)
-{
-#ifdef CONFIG_ARCH_MSM7X27A
- msm7x27a_wifi_power(0);
-#else
- /* replace with plaftform specific changes */
-#endif
-
- return 0;
-}
-
-static int ath6kl_pm_suspend(struct platform_device *pdev, pm_message_t state)
-{
- return 0;
-}
-
-static inline void *ar6k_priv(struct net_device *dev)
-{
- return (wdev_priv(dev->ieee80211_ptr));
-}
-
-static int ath6kl_pm_resume(struct platform_device *pdev)
-{
- return 0;
-}
-
-
-static struct platform_driver ath6kl_pm_device = {
- .probe = ath6kl_pm_probe,
- .remove = ath6kl_pm_remove,
- .suspend = ath6kl_pm_suspend,
- .resume = ath6kl_pm_resume,
- .driver = {
- .name = "wlan_ar6000_pm_dev",
- },
-};
-
-void __init ath6kl_sdio_init_platform(void)
-{
- char buf[3];
- int length;
-
- platform_driver_register(&ath6kl_pm_device);
-
-#ifdef CONFIG_ARCH_MSM7X27A
- length = snprintf(buf, sizeof(buf), "%d\n", 1 ? 1 : 0);
- android_readwrite_file("/sys/devices/platform/" MMC_MSM_DEV "/polling", NULL, buf, length);
- length = snprintf(buf, sizeof(buf), "%d\n", 0 ? 1 : 0);
- android_readwrite_file("/sys/devices/platform/" MMC_MSM_DEV "/polling", NULL, buf, length);
-
- A_MDELAY(50);
-#else
- /* replace with plaftform specific changes */
-#endif
-}
-
-void __exit ath6kl_sdio_exit_platform(void)
-{
- char buf[3];
- int length;
- platform_driver_unregister(&ath6kl_pm_device);
-
-#ifdef CONFIG_ARCH_MSM7X27A
- length = snprintf(buf, sizeof(buf), "%d\n", 1 ? 1 : 0);
- /* fall back to polling */
- android_readwrite_file("/sys/devices/platform/" MMC_MSM_DEV "/polling", NULL, buf, length);
- length = snprintf(buf, sizeof(buf), "%d\n", 0 ? 1 : 0);
- /* fall back to polling */
- android_readwrite_file("/sys/devices/platform/" MMC_MSM_DEV "/polling", NULL, buf, length);
-
- A_MDELAY(1000);
-#else
- /* replace with plaftform specific changes */
-#endif
-}
diff --git a/drivers/net/wireless/ath/ath6kl/pm.c b/drivers/net/wireless/ath/ath6kl/pm.c
deleted file mode 100644
index 5238f30..0000000
--- a/drivers/net/wireless/ath/ath6kl/pm.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "core.h"
-#include "debug.h"
-
-static bool ath6kl_parse_event_pkt_for_wake_lock(struct ath6kl *ar,
- struct sk_buff *skb)
-{
- u16 cmd_id;
- bool need_wake = false;
-
- if (skb->len < sizeof(u16))
- return need_wake;
-
- cmd_id = *(const u16 *) skb->data;
- cmd_id = le16_to_cpu(cmd_id);
-
- if (test_and_clear_bit(WOW_RESUME_PRINT, &ar->flag)) {
- if (cmd_id == WMI_CONNECT_EVENTID)
- ath6kl_dbg(ATH6KL_DBG_SUSPEND,
- "(wow) WMI_CONNECT_EVENTID\n");
- else
- ath6kl_dbg(ATH6KL_DBG_SUSPEND,
- "(wow) wmi event id : 0x%x\n", cmd_id);
- }
-
- switch (cmd_id) {
- case WMI_CONNECT_EVENTID:
- need_wake = true;
- break;
- default:
- /* Don't wake lock the system for other events */
- break;
- }
-
- return need_wake;
-}
-
-static bool ath6kl_parse_ip_pkt_for_wake_lock(struct sk_buff *skb)
-{
- const u8 ipsec_keepalve[] = { 0x11, 0x94, 0x11, 0x94, 0x00,
- 0x09, 0x00, 0x00, 0xff };
- bool need_wake = true;
- u16 size;
- u8 *udp;
- u8 ihl;
-
- if (skb->len >= 24 && (*((u8 *)skb->data + 23) == 0x11)) {
-
- udp = (u8 *)skb->data + 14;
- ihl = (*udp & 0x0f) * sizeof(u32);
- udp += ihl;
- size = 14 + ihl + sizeof(ipsec_keepalve);
-
- if ((skb->len >= size) &&
- !memcmp(udp, ipsec_keepalve, sizeof(ipsec_keepalve) - 3) &&
- udp[8] == 0xff) {
- /*
- * RFC 3948 UDP Encapsulation of IPsec ESP Packets
- * src and dest port must be 4500
- * Receivers MUST NOT depend upon the UDP checksum
- * being zero
- * Sender must use 1 byte payload with 0xff
- * Receiver SHOULD ignore a received NAT-keepalive pkt
- *
- * IPSec over UDP NAT keepalive packet. Just ignore
- */
- need_wake = false;
- }
- }
-
- return need_wake;
-}
-
-static bool ath6kl_parse_data_pkt_for_wake_lock(struct ath6kl *ar,
- struct sk_buff *skb)
-{
- struct net_device *ndev;
- struct ath6kl_vif *vif;
- struct ethhdr *hdr;
- bool need_wake = false;
- u16 dst_port;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return need_wake;
-
- if (skb->len < sizeof(struct ethhdr))
- return need_wake;
-
- hdr = (struct ethhdr *) skb->data;
-
- if (test_and_clear_bit(WOW_RESUME_PRINT, &ar->flag)) {
- ath6kl_dbg(ATH6KL_DBG_SUSPEND,
- "(wow) dest mac:%s, src mac:%s, type/len :%04x\n",
- sec_conv_mac(hdr->h_dest),
- sec_conv_mac(hdr->h_source),
- be16_to_cpu(hdr->h_proto));
- }
-
- if (!is_multicast_ether_addr(hdr->h_dest)) {
- switch (ntohs(hdr->h_proto)) {
- case 0x0800: /* IP */
- need_wake = ath6kl_parse_ip_pkt_for_wake_lock(skb);
- break;
- case 0x888e: /* EAPOL */
- case 0x88c7: /* RSN_PREAUTH */
- case 0x88b4: /* WAPI */
- need_wake = true;
- break;
- default:
- break;
- }
- } else if (!is_broadcast_ether_addr(hdr->h_dest)) {
- if (skb->len >= 14 + 20) { /* mDNS packets */
- u8 *dst_ipaddr = (u8 *)(skb->data + 14 + 20 - 4);
- ndev = vif->ndev;
- if (((dst_ipaddr[3] & 0xf8) == 0xf8) &&
- (vif->nw_type == AP_NETWORK ||
- (ndev->flags & IFF_ALLMULTI ||
- ndev->flags & IFF_MULTICAST)))
- need_wake = true;
- }
- } else if (vif->nw_type == AP_NETWORK) {
- switch (ntohs(hdr->h_proto)) {
- case 0x0800: /* IP */
- if (skb->len >= 14 + 20 + 2) {
- dst_port = *(u16 *)(skb->data + 14 + 20);
- /* dhcp req */
- need_wake = (ntohs(dst_port) == 0x43);
- }
- break;
- case 0x0806:
- need_wake = true;
- default:
- break;
- }
- }
-
- return need_wake;
-}
-
-void ath6kl_config_suspend_wake_lock(struct ath6kl *ar, struct sk_buff *skb,
- bool is_event_pkt)
-{
- struct ath6kl_vif *vif;
-#ifdef CONFIG_HAS_WAKELOCK
- unsigned long wl_timeout = 5;
-#endif
- bool need_wake = false;
-
- vif = ath6kl_vif_first(ar);
- if (!vif)
- return;
-
- if (
-#ifdef CONFIG_HAS_EARLYSUSPEND
- ar->screen_off &&
-#endif
- skb && test_bit(CONNECTED, &vif->flags)) {
- if (is_event_pkt) { /* Ctrl pkt received */
- need_wake =
- ath6kl_parse_event_pkt_for_wake_lock(ar, skb);
- if (need_wake) {
-#ifdef CONFIG_HAS_WAKELOCK
- wl_timeout = 3 * HZ;
-#endif
- }
- } else /* Data pkt received */
- need_wake = ath6kl_parse_data_pkt_for_wake_lock(ar,
- skb);
- }
-
- if (need_wake) {
-#ifdef CONFIG_HAS_WAKELOCK
- /*
- * Keep the host wake up if there is any event
- * and pkt comming in.
- */
- wake_lock_timeout(&ar->wake_lock, wl_timeout);
-#endif
- }
-}
-#ifdef CONFIG_HAS_WAKELOCK
-void ath6kl_p2p_acquire_wakelock(struct ath6kl *ar, int wl_timeout)
-{
- if (!wake_lock_active(&ar->p2p_wake_lock))
- wake_lock_timeout(&ar->p2p_wake_lock, wl_timeout);
- return;
-}
-
-void ath6kl_p2p_release_wakelock(struct ath6kl *ar)
-{
- if (wake_lock_active(&ar->p2p_wake_lock))
- wake_unlock(&ar->p2p_wake_lock);
- return;
-}
-#endif
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-static void ath6kl_early_suspend(struct early_suspend *handler)
-{
- struct ath6kl *ar = container_of(handler, struct ath6kl, early_suspend);
-
- if (ar)
- ar->screen_off = true;
-}
-
-static void ath6kl_late_resume(struct early_suspend *handler)
-{
- struct ath6kl *ar = container_of(handler, struct ath6kl, early_suspend);
-
- if (ar)
- ar->screen_off = false;
-}
-#endif
-
-void ath6kl_setup_android_resource(struct ath6kl *ar)
-{
-#ifdef CONFIG_HAS_EARLYSUSPEND
- ar->screen_off = false;
- ar->early_suspend.suspend = ath6kl_early_suspend;
- ar->early_suspend.resume = ath6kl_late_resume;
- ar->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN;
- register_early_suspend(&ar->early_suspend);
-#endif
-#ifdef CONFIG_HAS_WAKELOCK
- wake_lock_init(&ar->wake_lock, WAKE_LOCK_SUSPEND, "ath6kl_suspend_wl");
- wake_lock_init(&ar->p2p_wake_lock,
- WAKE_LOCK_SUSPEND,
- "ath6kl_p2p_suspend_wl");
-#endif
-}
-
-void ath6kl_cleanup_android_resource(struct ath6kl *ar)
-{
-#ifdef CONFIG_HAS_EARLYSUSPEND
- unregister_early_suspend(&ar->early_suspend);
-#endif
-#ifdef CONFIG_HAS_WAKELOCK
- wake_lock_destroy(&ar->wake_lock);
- wake_lock_destroy(&ar->p2p_wake_lock);
-#endif
-}
diff --git a/drivers/net/wireless/ath/ath6kl/pm.h b/drivers/net/wireless/ath/ath6kl/pm.h
deleted file mode 100644
index 1ac989b..0000000
--- a/drivers/net/wireless/ath/ath6kl/pm.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-void ath6kl_config_suspend_wake_lock(struct ath6kl *ar, struct sk_buff *skb,
- bool is_event_pkt);
-void ath6kl_setup_android_resource(struct ath6kl *ar);
-void ath6kl_cleanup_android_resource(struct ath6kl *ar);
-#ifdef CONFIG_HAS_WAKELOCK
-void ath6kl_p2p_acquire_wakelock(struct ath6kl *ar, int wl_timeout);
-void ath6kl_p2p_release_wakelock(struct ath6kl *ar);
-#endif
diff --git a/drivers/net/wireless/ath/ath6kl/sdio.c b/drivers/net/wireless/ath/ath6kl/sdio.c
deleted file mode 100755
index d4ea7ad..0000000
--- a/drivers/net/wireless/ath/ath6kl/sdio.c
+++ /dev/null
@@ -1,1534 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <linux/module.h>
-#include <linux/mmc/card.h>
-#include <linux/mmc/mmc.h>
-#include <linux/mmc/host.h>
-#include <linux/mmc/sdio_func.h>
-#include <linux/mmc/sdio_ids.h>
-#include <linux/mmc/sdio.h>
-#include <linux/mmc/sd.h>
-#include "hif.h"
-#include "hif-ops.h"
-#include "target.h"
-#include "debug.h"
-#include "cfg80211.h"
-
-#define CMD53_ARG_READ 0
-#define CMD53_ARG_WRITE 1
-#define CMD53_ARG_BLOCK_BASIS 1
-#define CMD53_ARG_FIXED_ADDRESS 0
-#define CMD53_ARG_INCR_ADDRESS 1
-
-/*
- * Macro to check if DMA buffer is WORD-aligned and DMA-able.
- * Most host controllers assume the buffer is DMA'able and will
- * bug-check otherwise (i.e. buffers on the stack). virt_addr_valid
- * check fails on stack memory.
- */
-static inline bool buf_needs_bounce(u8 *buf)
-{
- return ((unsigned long) buf & 0x3) || !virt_addr_valid(buf);
-}
-
-static void ath6kl_sdio_set_mbox_info(struct ath6kl *ar)
-{
- struct ath6kl_mbox_info *mbox_info = &ar->mbox_info;
-
- /* EP1 has an extended range */
- mbox_info->htc_addr = HIF_MBOX_BASE_ADDR;
- mbox_info->htc_ext_addr = HIF_MBOX0_EXT_BASE_ADDR;
- mbox_info->htc_ext_sz = HIF_MBOX0_EXT_WIDTH;
- mbox_info->block_size = HIF_MBOX_BLOCK_SIZE;
- mbox_info->gmbox_addr = HIF_GMBOX_BASE_ADDR;
- mbox_info->gmbox_sz = HIF_GMBOX_WIDTH;
-}
-
-static inline void ath6kl_sdio_set_cmd53_arg(u32 *arg, u8 rw, u8 func,
- u8 mode, u8 opcode, u32 addr,
- u16 blksz)
-{
- *arg = (((rw & 1) << 31) |
- ((func & 0x7) << 28) |
- ((mode & 1) << 27) |
- ((opcode & 1) << 26) |
- ((addr & 0x1FFFF) << 9) |
- (blksz & 0x1FF));
-}
-
-static inline void ath6kl_sdio_set_cmd52_arg(u32 *arg, u8 write, u8 raw,
- unsigned int address,
- unsigned char val)
-{
- const u8 func = 0;
-
- *arg = ((write & 1) << 31) |
- ((func & 0x7) << 28) |
- ((raw & 1) << 27) |
- (1 << 26) |
- ((address & 0x1FFFF) << 9) |
- (1 << 8) |
- (val & 0xFF);
-}
-
-static int ath6kl_sdio_func0_cmd52_wr_byte(struct mmc_card *card,
- unsigned int address,
- unsigned char byte)
-{
- struct mmc_command io_cmd;
-
- memset(&io_cmd, 0, sizeof(io_cmd));
- ath6kl_sdio_set_cmd52_arg(&io_cmd.arg, 1, 0, address, byte);
- io_cmd.opcode = SD_IO_RW_DIRECT;
- io_cmd.flags = MMC_RSP_R5 | MMC_CMD_AC;
-
- return mmc_wait_for_cmd(card->host, &io_cmd, 0);
-}
-
-static int ath6kl_sdio_io(struct sdio_func *func, u32 request, u32 addr,
- u8 *buf, u32 len)
-{
- int ret = 0;
-
-
- if (request & HIF_WRITE) {
- /* FIXME: looks like ugly workaround for something */
- if (addr >= HIF_MBOX_BASE_ADDR &&
- addr <= HIF_MBOX_END_ADDR)
- addr += (HIF_MBOX_WIDTH - len);
-
- /* FIXME: this also looks like ugly workaround */
- if (addr == HIF_MBOX0_EXT_BASE_ADDR)
- addr += HIF_MBOX0_EXT_WIDTH - len;
-
- if (request & HIF_FIXED_ADDRESS)
- ret = sdio_writesb(func, addr, buf, len);
- else
- ret = sdio_memcpy_toio(func, addr, buf, len);
- } else {
- if (request & HIF_FIXED_ADDRESS)
- ret = sdio_readsb(func, buf, addr, len);
- else
- ret = sdio_memcpy_fromio(func, buf, addr, len);
- }
-
-
- ath6kl_dbg(ATH6KL_DBG_SDIO, "%s addr 0x%x%s buf 0x%p len %d\n",
- request & HIF_WRITE ? "wr" : "rd", addr,
- request & HIF_FIXED_ADDRESS ? " (fixed)" : "", buf, len);
- ath6kl_dbg_dump(ATH6KL_DBG_SDIO_DUMP, NULL, "sdio ", buf, len);
-
- return ret;
-}
-
-static struct bus_request *ath6kl_sdio_alloc_busreq(struct ath6kl_sdio *ar_sdio)
-{
- struct bus_request *bus_req;
-
- spin_lock_bh(&ar_sdio->lock);
-
- if (list_empty(&ar_sdio->bus_req_freeq)) {
- spin_unlock_bh(&ar_sdio->lock);
- return NULL;
- }
-
- bus_req = list_first_entry(&ar_sdio->bus_req_freeq,
- struct bus_request, list);
- list_del(&bus_req->list);
-
- spin_unlock_bh(&ar_sdio->lock);
- ath6kl_dbg(ATH6KL_DBG_SCATTER, "%s: bus request 0x%p\n",
- __func__, bus_req);
-
- return bus_req;
-}
-
-static void ath6kl_sdio_free_bus_req(struct ath6kl_sdio *ar_sdio,
- struct bus_request *bus_req)
-{
- ath6kl_dbg(ATH6KL_DBG_SCATTER, "%s: bus request 0x%p\n",
- __func__, bus_req);
-
- spin_lock_bh(&ar_sdio->lock);
- list_add_tail(&bus_req->list, &ar_sdio->bus_req_freeq);
- spin_unlock_bh(&ar_sdio->lock);
-}
-
-static void ath6kl_sdio_setup_scat_data(struct hif_scatter_req *scat_req,
- struct mmc_data *data)
-{
- struct scatterlist *sg;
- int i;
-
- data->blksz = HIF_MBOX_BLOCK_SIZE;
- data->blocks = scat_req->len / HIF_MBOX_BLOCK_SIZE;
-
- ath6kl_dbg(ATH6KL_DBG_SCATTER,
- "hif-scatter: (%s) addr: 0x%X, (block len: %d, block count: %d) , (tot:%d,sg:%d)\n",
- (scat_req->req & HIF_WRITE) ? "WR" : "RD", scat_req->addr,
- data->blksz, data->blocks, scat_req->len,
- scat_req->scat_entries);
-
- data->flags = (scat_req->req & HIF_WRITE) ? MMC_DATA_WRITE :
- MMC_DATA_READ;
-
- /* fill SG entries */
- sg = scat_req->sgentries;
- sg_init_table(sg, scat_req->scat_entries);
-
- /* assemble SG list */
- for (i = 0; i < scat_req->scat_entries; i++, sg++) {
- ath6kl_dbg(ATH6KL_DBG_SCATTER, "%d: addr:0x%p, len:%d\n",
- i, scat_req->scat_list[i].buf,
- scat_req->scat_list[i].len);
-
- sg_set_buf(sg, scat_req->scat_list[i].buf,
- scat_req->scat_list[i].len);
- }
-
- /* set scatter-gather table for request */
- data->sg = scat_req->sgentries;
- data->sg_len = scat_req->scat_entries;
-}
-
-static int ath6kl_sdio_scat_rw(struct ath6kl_sdio *ar_sdio,
- struct bus_request *req)
-{
- struct mmc_request mmc_req;
- struct mmc_command cmd;
- struct mmc_data data;
- struct hif_scatter_req *scat_req;
- u8 opcode, rw;
- int status, len;
-
- scat_req = req->scat_req;
-
- if (scat_req->virt_scat) {
- len = scat_req->len;
- if (scat_req->req & HIF_BLOCK_BASIS)
- len = round_down(len, HIF_MBOX_BLOCK_SIZE);
-
- status = ath6kl_sdio_io(ar_sdio->func, scat_req->req,
- scat_req->addr, scat_req->virt_dma_buf,
- len);
- goto scat_complete;
- }
-
- memset(&mmc_req, 0, sizeof(struct mmc_request));
- memset(&cmd, 0, sizeof(struct mmc_command));
- memset(&data, 0, sizeof(struct mmc_data));
-
- ath6kl_sdio_setup_scat_data(scat_req, &data);
-
- opcode = (scat_req->req & HIF_FIXED_ADDRESS) ?
- CMD53_ARG_FIXED_ADDRESS : CMD53_ARG_INCR_ADDRESS;
-
- rw = (scat_req->req & HIF_WRITE) ? CMD53_ARG_WRITE : CMD53_ARG_READ;
-
- /* Fixup the address so that the last byte will fall on MBOX EOM */
- if (scat_req->req & HIF_WRITE) {
- if (scat_req->addr == HIF_MBOX_BASE_ADDR)
- scat_req->addr += HIF_MBOX_WIDTH - scat_req->len;
- else
- /* Uses extended address range */
- scat_req->addr += HIF_MBOX0_EXT_WIDTH - scat_req->len;
- }
-
- /* set command argument */
- ath6kl_sdio_set_cmd53_arg(&cmd.arg, rw, ar_sdio->func->num,
- CMD53_ARG_BLOCK_BASIS, opcode, scat_req->addr,
- data.blocks);
-
- cmd.opcode = SD_IO_RW_EXTENDED;
- cmd.flags = MMC_RSP_SPI_R5 | MMC_RSP_R5 | MMC_CMD_ADTC;
-
- mmc_req.cmd = &cmd;
- mmc_req.data = &data;
-
- mmc_set_data_timeout(&data, ar_sdio->func->card);
- /* synchronous call to process request */
- mmc_wait_for_req(ar_sdio->func->card->host, &mmc_req);
-
- status = cmd.error ? cmd.error : data.error;
-
-scat_complete:
- scat_req->status = status;
-
- if (scat_req->status)
- ath6kl_err("Scatter write request failed:%d\n",
- scat_req->status);
-
- if (scat_req->req & HIF_ASYNCHRONOUS)
- scat_req->complete(ar_sdio->ar->htc_target, scat_req);
-
- return status;
-}
-
-static int ath6kl_sdio_alloc_prep_scat_req(struct ath6kl_sdio *ar_sdio,
- int n_scat_entry, int n_scat_req,
- bool virt_scat)
-{
- struct hif_scatter_req *s_req;
- struct bus_request *bus_req;
- int i, scat_req_sz, scat_list_sz, sg_sz = 0, buf_sz;
- u8 *virt_buf;
-
- scat_list_sz = (n_scat_entry - 1) * sizeof(struct hif_scatter_item);
- scat_req_sz = sizeof(*s_req) + scat_list_sz;
-
- if (!virt_scat)
- sg_sz = sizeof(struct scatterlist) * n_scat_entry;
- else
- buf_sz = 2 * L1_CACHE_BYTES +
- ATH6KL_MAX_TRANSFER_SIZE_PER_SCATTER;
-
- for (i = 0; i < n_scat_req; i++) {
- /* allocate the scatter request */
- s_req = kzalloc(scat_req_sz, GFP_KERNEL);
- if (!s_req)
- return -ENOMEM;
-
- if (virt_scat) {
- virt_buf = kzalloc(buf_sz, GFP_KERNEL);
- if (!virt_buf) {
- kfree(s_req);
- return -ENOMEM;
- }
-
- s_req->virt_dma_buf =
- (u8 *)L1_CACHE_ALIGN((unsigned long)virt_buf);
- } else {
- /* allocate sglist */
- s_req->sgentries = kzalloc(sg_sz, GFP_KERNEL);
-
- if (!s_req->sgentries) {
- kfree(s_req);
- return -ENOMEM;
- }
- }
-
- /* allocate a bus request for this scatter request */
- bus_req = ath6kl_sdio_alloc_busreq(ar_sdio);
- if (!bus_req) {
- kfree(s_req->sgentries);
- kfree(s_req->virt_dma_buf);
- kfree(s_req);
- return -ENOMEM;
- }
-
- /* assign the scatter request to this bus request */
- bus_req->scat_req = s_req;
- s_req->busrequest = bus_req;
-
- s_req->virt_scat = virt_scat;
-
- /* add it to the scatter pool */
- hif_scatter_req_add(ar_sdio->ar, s_req);
- }
-
- return 0;
-}
-
-static int ath6kl_sdio_read_write_sync(struct ath6kl *ar, u32 addr, u8 *buf,
- u32 len, u32 request)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- u8 *tbuf = NULL;
- int ret;
- bool bounced = false;
-
- if (request & HIF_BLOCK_BASIS)
- len = round_down(len, HIF_MBOX_BLOCK_SIZE);
-
- if (buf_needs_bounce(buf)) {
- if (!ar_sdio->dma_buffer)
- return -ENOMEM;
- mutex_lock(&ar_sdio->dma_buffer_mutex);
- tbuf = ar_sdio->dma_buffer;
-
- if (request & HIF_WRITE)
- memcpy(tbuf, buf, len);
-
- bounced = true;
- } else
- tbuf = buf;
-
- ret = ath6kl_sdio_io(ar_sdio->func, request, addr, tbuf, len);
- if ((request & HIF_READ) && bounced)
- memcpy(buf, tbuf, len);
-
- if (bounced)
- mutex_unlock(&ar_sdio->dma_buffer_mutex);
-
- return ret;
-}
-
-static int ath6kl_sdio_read_write_sync_pri(struct ath6kl *ar, u32 addr, u8 *buf,
- u32 len, u32 request)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- int ret;
-
- sdio_claim_host(ar_sdio->func);
- ret = ath6kl_sdio_read_write_sync(ar, addr, buf, len, request);
- sdio_release_host(ar_sdio->func);
- return ret;
-}
-
-
-static void __ath6kl_sdio_write_async(struct ath6kl_sdio *ar_sdio,
- struct bus_request *req)
-{
- if (req->scat_req)
- ath6kl_sdio_scat_rw(ar_sdio, req);
- else {
- void *context;
- int status;
- u32 addr, len, request;
- u8 *buf;
-
- addr = req->address;
- len = req->length;
- request = req->request;
- buf = req->buffer;
-
- context = req->packet;
- ath6kl_sdio_free_bus_req(ar_sdio, req);
-
- status = ath6kl_sdio_read_write_sync(ar_sdio->ar, addr, buf,
- len, request);
- ath6kl_hif_rw_comp_handler(context, status);
- }
-}
-
-static void ath6kl_sdio_write_async_work(struct work_struct *work)
-{
- struct ath6kl_sdio *ar_sdio;
- struct bus_request *req, *tmp_req;
-
- ar_sdio = container_of(work, struct ath6kl_sdio, wr_async_work);
-
- spin_lock_bh(&ar_sdio->wr_async_lock);
- list_for_each_entry_safe(req, tmp_req, &ar_sdio->wr_asyncq, list) {
- list_del(&req->list);
- spin_unlock_bh(&ar_sdio->wr_async_lock);
- sdio_claim_host(ar_sdio->func);
- __ath6kl_sdio_write_async(ar_sdio, req);
- sdio_release_host(ar_sdio->func);
- spin_lock_bh(&ar_sdio->wr_async_lock);
- }
- spin_unlock_bh(&ar_sdio->wr_async_lock);
-}
-
-static void ath6kl_sdio_irq_handler(struct sdio_func *func)
-{
- int status;
- struct ath6kl_sdio *ar_sdio;
-
- ath6kl_dbg(ATH6KL_DBG_SDIO, "irq\n");
-
- ar_sdio = sdio_get_drvdata(func);
- atomic_set(&ar_sdio->irq_handling, 1);
- /*
- * Release the host during interrups so we can pick it back up when
- * we process commands.
- */
- sdio_release_host(ar_sdio->func);
-
- status = ath6kl_hif_intr_bh_handler(ar_sdio->ar);
- sdio_claim_host(ar_sdio->func);
- atomic_set(&ar_sdio->irq_handling, 0);
- wake_up(&ar_sdio->irq_wq);
-
- WARN_ON_ONCE(status && status != -ECANCELED);
-}
-
-static int ath6kl_sdio_power_on(struct ath6kl *ar)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- struct sdio_func *func = ar_sdio->func;
- int ret = 0;
-
- if (!ar_sdio->is_disabled)
- return 0;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "sdio power on\n");
-
- sdio_claim_host(func);
-
- ret = sdio_enable_func(func);
- if (ret) {
- ath6kl_err("Unable to enable sdio func: %d)\n", ret);
- sdio_release_host(func);
- return ret;
- }
-
- sdio_release_host(func);
-
- /*
- * Wait for hardware to initialise. It should take a lot less than
- * 10 ms but let's be conservative here.
- */
- msleep(10);
-
- ar_sdio->is_disabled = false;
-
- return ret;
-}
-
-static int ath6kl_sdio_power_off(struct ath6kl *ar)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- int ret;
-
- if (ar_sdio->is_disabled)
- return 0;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "sdio power off\n");
-
- /* Disable the card */
- sdio_claim_host(ar_sdio->func);
- ret = sdio_disable_func(ar_sdio->func);
- sdio_release_host(ar_sdio->func);
-
- if (ret)
- return ret;
-
- ar_sdio->is_disabled = true;
-
- return ret;
-}
-
-static int ath6kl_sdio_write_async(struct ath6kl *ar, u32 address, u8 *buffer,
- u32 length, u32 request,
- struct htc_packet *packet)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- struct bus_request *bus_req;
-
- bus_req = ath6kl_sdio_alloc_busreq(ar_sdio);
-
- if (!bus_req)
- return -ENOMEM;
-
- bus_req->address = address;
- bus_req->buffer = buffer;
- bus_req->length = length;
- bus_req->request = request;
- bus_req->packet = packet;
-
- spin_lock_bh(&ar_sdio->wr_async_lock);
- list_add_tail(&bus_req->list, &ar_sdio->wr_asyncq);
- spin_unlock_bh(&ar_sdio->wr_async_lock);
- queue_work(ar->ath6kl_wq, &ar_sdio->wr_async_work);
-
- return 0;
-}
-
-static void ath6kl_sdio_irq_enable(struct ath6kl *ar)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- int ret;
-
- sdio_claim_host(ar_sdio->func);
-
- /* Register the isr */
- ret = sdio_claim_irq(ar_sdio->func, ath6kl_sdio_irq_handler);
- if (ret)
- ath6kl_err("Failed to claim sdio irq: %d\n", ret);
-
- sdio_release_host(ar_sdio->func);
-}
-
-static bool ath6kl_sdio_is_on_irq(struct ath6kl *ar)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
-
- return !atomic_read(&ar_sdio->irq_handling);
-}
-
-static void ath6kl_sdio_irq_disable(struct ath6kl *ar)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- int ret;
-
- sdio_claim_host(ar_sdio->func);
-
- if (atomic_read(&ar_sdio->irq_handling)) {
- sdio_release_host(ar_sdio->func);
-
- ret = wait_event_interruptible(ar_sdio->irq_wq,
- ath6kl_sdio_is_on_irq(ar));
- if (ret)
- return;
-
- sdio_claim_host(ar_sdio->func);
- }
-
- ret = sdio_release_irq(ar_sdio->func);
- if (ret)
- ath6kl_err("Failed to release sdio irq: %d\n", ret);
-
- sdio_release_host(ar_sdio->func);
-}
-
-static struct hif_scatter_req *ath6kl_sdio_scatter_req_get(struct ath6kl *ar)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- struct hif_scatter_req *node = NULL;
-
- spin_lock_bh(&ar_sdio->scat_lock);
-
- if (!list_empty(&ar_sdio->scat_req)) {
- node = list_first_entry(&ar_sdio->scat_req,
- struct hif_scatter_req, list);
- list_del(&node->list);
-
- node->scat_q_depth = get_queue_depth(&ar_sdio->scat_req);
- }
-
- spin_unlock_bh(&ar_sdio->scat_lock);
-
- return node;
-}
-
-static void ath6kl_sdio_scatter_req_add(struct ath6kl *ar,
- struct hif_scatter_req *s_req)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
-
- spin_lock_bh(&ar_sdio->scat_lock);
-
- list_add_tail(&s_req->list, &ar_sdio->scat_req);
-
- spin_unlock_bh(&ar_sdio->scat_lock);
-
-}
-
-/* scatter gather read write request */
-static int ath6kl_sdio_async_rw_scatter(struct ath6kl *ar,
- struct hif_scatter_req *scat_req)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- u32 request = scat_req->req;
- int status = 0;
-
- if (!scat_req->len)
- return -EINVAL;
-
- ath6kl_dbg(ATH6KL_DBG_SCATTER,
- "hif-scatter: total len: %d scatter entries: %d\n",
- scat_req->len, scat_req->scat_entries);
-
- if (request & HIF_SYNCHRONOUS) {
- sdio_claim_host(ar_sdio->func);
- status = ath6kl_sdio_scat_rw(ar_sdio, scat_req->busrequest);
- sdio_release_host(ar_sdio->func);
- }
- else {
- spin_lock_bh(&ar_sdio->wr_async_lock);
- list_add_tail(&scat_req->busrequest->list, &ar_sdio->wr_asyncq);
- spin_unlock_bh(&ar_sdio->wr_async_lock);
- queue_work(ar->ath6kl_wq, &ar_sdio->wr_async_work);
- }
-
- return status;
-}
-
-/* clean up scatter support */
-static void ath6kl_sdio_cleanup_scatter(struct ath6kl *ar)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- struct hif_scatter_req *s_req, *tmp_req;
-
- /* empty the free list */
- spin_lock_bh(&ar_sdio->scat_lock);
- list_for_each_entry_safe(s_req, tmp_req, &ar_sdio->scat_req, list) {
- list_del(&s_req->list);
- spin_unlock_bh(&ar_sdio->scat_lock);
-
- /*
- * FIXME: should we also call completion handler with
- * ath6kl_hif_rw_comp_handler() with status -ECANCELED so
- * that the packet is properly freed?
- */
- if (s_req->busrequest)
- ath6kl_sdio_free_bus_req(ar_sdio, s_req->busrequest);
- kfree(s_req->virt_dma_buf);
- kfree(s_req->sgentries);
- kfree(s_req);
-
- spin_lock_bh(&ar_sdio->scat_lock);
- }
- spin_unlock_bh(&ar_sdio->scat_lock);
-}
-
-/* setup of HIF scatter resources */
-static int ath6kl_sdio_enable_scatter(struct ath6kl *ar)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- struct htc_target *target = ar->htc_target;
- int ret;
- bool virt_scat = false;
-
- if (ar_sdio->scatter_enabled)
- return 0;
-
- ar_sdio->scatter_enabled = true;
-
- /* check if host supports scatter and it meets our requirements */
- if (ar_sdio->func->card->host->max_segs < MAX_SCATTER_ENTRIES_PER_REQ) {
- ath6kl_err("host only supports scatter of :%d entries, need: %d\n",
- ar_sdio->func->card->host->max_segs,
- MAX_SCATTER_ENTRIES_PER_REQ);
- virt_scat = true;
- }
-
- if (!virt_scat) {
- ret = ath6kl_sdio_alloc_prep_scat_req(ar_sdio,
- MAX_SCATTER_ENTRIES_PER_REQ,
- MAX_SCATTER_REQUESTS, virt_scat);
-
- if (!ret) {
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "hif-scatter enabled requests %d entries %d\n",
- MAX_SCATTER_REQUESTS,
- MAX_SCATTER_ENTRIES_PER_REQ);
-
- target->max_scat_entries = MAX_SCATTER_ENTRIES_PER_REQ;
- target->max_xfer_szper_scatreq =
- MAX_SCATTER_REQ_TRANSFER_SIZE;
- } else {
- ath6kl_sdio_cleanup_scatter(ar);
- ath6kl_warn("hif scatter resource setup failed, trying virtual scatter method\n");
- }
- }
-
- if (virt_scat || ret) {
- ret = ath6kl_sdio_alloc_prep_scat_req(ar_sdio,
- ATH6KL_SCATTER_ENTRIES_PER_REQ,
- ATH6KL_SCATTER_REQS, virt_scat);
-
- if (ret) {
- ath6kl_err("failed to alloc virtual scatter resources !\n");
- ath6kl_sdio_cleanup_scatter(ar);
- return ret;
- }
-
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "virtual scatter enabled requests %d entries %d\n",
- ATH6KL_SCATTER_REQS, ATH6KL_SCATTER_ENTRIES_PER_REQ);
-
- target->max_scat_entries = ATH6KL_SCATTER_ENTRIES_PER_REQ;
- target->max_xfer_szper_scatreq =
- ATH6KL_MAX_TRANSFER_SIZE_PER_SCATTER;
- }
-
- return 0;
-}
-
-static int ath6kl_sdio_config(struct ath6kl *ar)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- struct sdio_func *func = ar_sdio->func;
- int ret;
-
- sdio_claim_host(func);
-
- /* give us some time to enable, in ms */
- func->enable_timeout = 100;
-
- ret = sdio_set_block_size(func, HIF_MBOX_BLOCK_SIZE);
- if (ret) {
- ath6kl_err("Set sdio block size %d failed: %d)\n",
- HIF_MBOX_BLOCK_SIZE, ret);
- goto out;
- }
-
-out:
- sdio_release_host(func);
-
- return ret;
-}
-
-static int ath6kl_sdio_setup_irq_mode(struct ath6kl *ar)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- struct sdio_func *func = ar_sdio->func;
- int ret = 0;
-
- sdio_claim_host(func);
-
- if ((ar_sdio->id->device & MANUFACTURER_ID_ATH6KL_BASE_MASK) >=
- MANUFACTURER_ID_AR6003_BASE) {
- /* enable 4-bit ASYNC interrupt on AR6003 or later */
- ret = ath6kl_sdio_func0_cmd52_wr_byte(func->card,
- CCCR_SDIO_IRQ_MODE_REG,
- SDIO_IRQ_MODE_ASYNC_4BIT_IRQ);
- if (ret) {
- ath6kl_err("Failed to enable 4-bit async irq mode %d\n",
- ret);
- goto out;
- }
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "4-bit async irq mode enabled\n");
- }
-
-out:
- sdio_release_host(func);
-
- return ret;
-}
-
-static int ath6kl_set_sdio_pm_caps(struct ath6kl *ar)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- struct sdio_func *func = ar_sdio->func;
- mmc_pm_flag_t flags;
- int ret;
-
- flags = sdio_get_host_pm_caps(func);
-
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "sdio suspend pm_caps 0x%x\n", flags);
-#ifdef CONFIG_MACH_PX
-#else
- if (!(flags & MMC_PM_WAKE_SDIO_IRQ) ||
- !(flags & MMC_PM_KEEP_POWER))
- return -EINVAL;
-#endif
-
- ret = sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER);
- if (ret) {
- ath6kl_err("set sdio keep pwr flag failed: %d\n", ret);
- return ret;
- }
-
- /* sdio irq wakes up host */
- ret = sdio_set_host_pm_flags(func, MMC_PM_WAKE_SDIO_IRQ);
- if (ret)
- ath6kl_err("set sdio wake irq flag failed: %d\n", ret);
-
- return ret;
-}
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-static int ath6kl_sdio_suspend(struct ath6kl *ar, struct cfg80211_wowlan *wow)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- struct sdio_func *func = ar_sdio->func;
- mmc_pm_flag_t flags;
- bool try_deepsleep = false;
- int ret;
- struct ath6kl_vif *vif;
- int connected = 0;
- int force_sleep_policy = 0;
-
- vif = ath6kl_vif_first(ar);
- connected = test_bit(CONNECTED, &vif->flags);
- force_sleep_policy = test_bit(SLEEP_POLICY_ENABLED, &vif->flags);
-
- if (force_sleep_policy) {
- try_deepsleep = true;
- goto deep_sleep;
- }
-
- if (ar->state == ATH6KL_STATE_SCHED_SCAN) {
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "sched scan is in progress\n");
-
- ret = ath6kl_set_sdio_pm_caps(ar);
-
- if (ret)
- return ret;
-
- ret = ath6kl_cfg80211_suspend(ar,
- ATH6KL_CFG_SUSPEND_SCHED_SCAN,
- NULL);
- return ret;
-
- }
-
- if (ar->suspend_mode == WLAN_POWER_STATE_WOW ||
- (!ar->suspend_mode && wow)) {
-
- ret = ath6kl_set_sdio_pm_caps(ar);
- if (ret)
- return ret;
-
- if (connected) {
- ret = ath6kl_cfg80211_suspend(ar,
- ATH6KL_CFG_SUSPEND_WOW, wow);
- return ret;
- } else {
- if (!ar->wow_suspend_mode ||
- ar->wow_suspend_mode == WLAN_POWER_STATE_DEEP_SLEEP)
- try_deepsleep = true;
- else if (ar->wow_suspend_mode \
- == WLAN_POWER_STATE_CUT_PWR)
- goto cut_pwr;
- }
- }
-
-deep_sleep:
- if (ar->suspend_mode == WLAN_POWER_STATE_DEEP_SLEEP ||
- !ar->suspend_mode || try_deepsleep) {
-
-#ifdef CONFIG_MACH_PX
- ret = ath6kl_set_sdio_pm_caps(ar);
- if (ret)
- return ret;
-#else
- flags = sdio_get_host_pm_caps(func);
- if (!(flags & MMC_PM_KEEP_POWER))
- return -1;
-
- ret = sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER);
- if (ret)
- return ret;
-
- /*
- * Workaround to support Deep Sleep with MSM, set the host pm
- * flag as MMC_PM_WAKE_SDIO_IRQ to allow SDCC deiver to disable
- * the sdc2_clock and internally allows MSM to enter
- * TCXO shutdown properly.
- */
- if ((flags & MMC_PM_WAKE_SDIO_IRQ)) {
- ret = sdio_set_host_pm_flags(func,
- MMC_PM_WAKE_SDIO_IRQ);
- if (ret)
- return ret;
- }
-#endif
- ret = ath6kl_cfg80211_suspend(ar, ATH6KL_CFG_SUSPEND_DEEPSLEEP,
- NULL);
-
- return ret;
- }
-
-cut_pwr:
- return ath6kl_cfg80211_suspend(ar, ATH6KL_CFG_SUSPEND_CUTPOWER, NULL);
-}
-
-static int ath6kl_sdio_resume(struct ath6kl *ar)
-{
-
-#if !defined(CONFIG_MACH_P8LTE)
- ath6kl_sdio_setup_irq_mode(ar);
-#endif
-
- switch (ar->state) {
- case ATH6KL_STATE_OFF:
- case ATH6KL_STATE_CUTPOWER:
- ath6kl_dbg(ATH6KL_DBG_SUSPEND,
- "sdio resume configuring sdio\n");
-
- /* need to set sdio settings after power is cut from sdio */
- ath6kl_sdio_config(ar);
- break;
-
- case ATH6KL_STATE_ON:
- break;
-
- case ATH6KL_STATE_DEEPSLEEP:
- break;
-
- case ATH6KL_STATE_WOW:
- break;
-
- case ATH6KL_STATE_SCHED_SCAN:
- break;
-
- case ATH6KL_STATE_SUSPENDING:
- break;
-
- case ATH6KL_STATE_RESUMING:
- break;
- }
-
- ath6kl_cfg80211_resume(ar);
-
- return 0;
-}
-#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) */
-
-/* set the window address register (using 4-byte register access ). */
-static int ath6kl_set_addrwin_reg(struct ath6kl *ar, u32 reg_addr, u32 addr)
-{
- int status;
- u8 addr_val[4];
- s32 i;
-
- /*
- * Write bytes 1,2,3 of the register to set the upper address bytes,
- * the LSB is written last to initiate the access cycle
- */
-
- for (i = 1; i <= 3; i++) {
- /*
- * Fill the buffer with the address byte value we want to
- * hit 4 times.
- */
- memset(addr_val, ((u8 *)&addr)[i], 4);
-
- /*
- * Hit each byte of the register address with a 4-byte
- * write operation to the same address, this is a harmless
- * operation.
- */
- status = ath6kl_sdio_read_write_sync_pri(ar, reg_addr + i, addr_val,
- 4, HIF_WR_SYNC_BYTE_FIX);
- if (status)
- break;
- }
-
- if (status) {
- ath6kl_err("%s: failed to write initial bytes of 0x%x "
- "to window reg: 0x%X\n", __func__,
- addr, reg_addr);
- return status;
- }
-
- /*
- * Write the address register again, this time write the whole
- * 4-byte value. The effect here is that the LSB write causes the
- * cycle to start, the extra 3 byte write to bytes 1,2,3 has no
- * effect since we are writing the same values again
- */
- status = ath6kl_sdio_read_write_sync_pri(ar, reg_addr, (u8 *)(&addr),
- 4, HIF_WR_SYNC_BYTE_INC);
-
- if (status) {
- ath6kl_err("%s: failed to write 0x%x to window reg: 0x%X\n",
- __func__, addr, reg_addr);
- return status;
- }
-
- return 0;
-}
-
-static int ath6kl_sdio_diag_read32(struct ath6kl *ar, u32 address, u32 *data)
-{
- int status;
-
- /* set window register to start read cycle */
- status = ath6kl_set_addrwin_reg(ar, WINDOW_READ_ADDR_ADDRESS,
- address);
-
- if (status)
- return status;
-
- /* read the data */
- status = ath6kl_sdio_read_write_sync_pri(ar, WINDOW_DATA_ADDRESS,
- (u8 *)data, sizeof(u32), HIF_RD_SYNC_BYTE_INC);
- if (status) {
- ath6kl_err("%s: failed to read from window data addr\n",
- __func__);
- return status;
- }
-
- return status;
-}
-
-static int ath6kl_sdio_diag_write32(struct ath6kl *ar, u32 address,
- __le32 data)
-{
- int status;
- u32 val = (__force u32) data;
-
- /* set write data */
- status = ath6kl_sdio_read_write_sync_pri(ar, WINDOW_DATA_ADDRESS,
- (u8 *) &val, sizeof(u32), HIF_WR_SYNC_BYTE_INC);
- if (status) {
- ath6kl_err("%s: failed to write 0x%x to window data addr\n",
- __func__, data);
- return status;
- }
-
- /* set window register, which starts the write cycle */
- return ath6kl_set_addrwin_reg(ar, WINDOW_WRITE_ADDR_ADDRESS,
- address);
-}
-
-static int ath6kl_sdio_bmi_credits(struct ath6kl *ar)
-{
- u32 addr;
- unsigned long timeout;
- int ret;
-
- ar->bmi.cmd_credits = 0;
-
- /* Read the counter register to get the command credits */
- addr = COUNT_DEC_ADDRESS + (HTC_MAILBOX_NUM_MAX + ENDPOINT1) * 4;
-
- timeout = jiffies + msecs_to_jiffies(BMI_COMMUNICATION_TIMEOUT);
- while (time_before(jiffies, timeout) && !ar->bmi.cmd_credits) {
-
- /*
- * Hit the credit counter with a 4-byte access, the first byte
- * read will hit the counter and cause a decrement, while the
- * remaining 3 bytes has no effect. The rationale behind this
- * is to make all HIF accesses 4-byte aligned.
- */
- ret = ath6kl_sdio_read_write_sync_pri(ar, addr,
- (u8 *)&ar->bmi.cmd_credits, 4,
- HIF_RD_SYNC_BYTE_INC);
- if (ret) {
- ath6kl_err("Unable to decrement the command credit "
- "count register: %d\n", ret);
- return ret;
- }
-
- /* The counter is only 8 bits.
- * Ignore anything in the upper 3 bytes
- */
- ar->bmi.cmd_credits &= 0xFF;
- }
-
- if (!ar->bmi.cmd_credits) {
- ath6kl_err("bmi communication timeout\n");
- return -ETIMEDOUT;
- }
-
- return 0;
-}
-
-static int ath6kl_bmi_get_rx_lkahd(struct ath6kl *ar)
-{
- unsigned long timeout;
- u32 rx_word = 0;
- int ret = 0;
-
- timeout = jiffies + msecs_to_jiffies(BMI_COMMUNICATION_TIMEOUT);
- while ((time_before(jiffies, timeout)) && !rx_word) {
- ret = ath6kl_sdio_read_write_sync_pri(ar,
- RX_LOOKAHEAD_VALID_ADDRESS,
- (u8 *)&rx_word, sizeof(rx_word),
- HIF_RD_SYNC_BYTE_INC);
- if (ret) {
- ath6kl_err("unable to read RX_LOOKAHEAD_VALID\n");
- return ret;
- }
-
- /* all we really want is one bit */
- rx_word &= (1 << ENDPOINT1);
- }
-
- if (!rx_word) {
- ath6kl_err("bmi_recv_buf FIFO empty\n");
- return -EINVAL;
- }
-
- return ret;
-}
-
-static int ath6kl_sdio_bmi_write(struct ath6kl *ar, u8 *buf, u32 len)
-{
- int ret;
- u32 addr;
-
- ret = ath6kl_sdio_bmi_credits(ar);
- if (ret)
- return ret;
-
- addr = ar->mbox_info.htc_addr;
-
- ret = ath6kl_sdio_read_write_sync_pri(ar, addr, buf, len,
- HIF_WR_SYNC_BYTE_INC);
- if (ret)
- ath6kl_err("unable to send the bmi data to the device\n");
-
- return ret;
-}
-
-static int ath6kl_sdio_bmi_read(struct ath6kl *ar, u8 *buf, u32 len)
-{
- int ret;
- u32 addr;
-
- /*
- * During normal bootup, small reads may be required.
- * Rather than issue an HIF Read and then wait as the Target
- * adds successive bytes to the FIFO, we wait here until
- * we know that response data is available.
- *
- * This allows us to cleanly timeout on an unexpected
- * Target failure rather than risk problems at the HIF level.
- * In particular, this avoids SDIO timeouts and possibly garbage
- * data on some host controllers. And on an interconnect
- * such as Compact Flash (as well as some SDIO masters) which
- * does not provide any indication on data timeout, it avoids
- * a potential hang or garbage response.
- *
- * Synchronization is more difficult for reads larger than the
- * size of the MBOX FIFO (128B), because the Target is unable
- * to push the 129th byte of data until AFTER the Host posts an
- * HIF Read and removes some FIFO data. So for large reads the
- * Host proceeds to post an HIF Read BEFORE all the data is
- * actually available to read. Fortunately, large BMI reads do
- * not occur in practice -- they're supported for debug/development.
- *
- * So Host/Target BMI synchronization is divided into these cases:
- * CASE 1: length < 4
- * Should not happen
- *
- * CASE 2: 4 <= length <= 128
- * Wait for first 4 bytes to be in FIFO
- * If CONSERVATIVE_BMI_READ is enabled, also wait for
- * a BMI command credit, which indicates that the ENTIRE
- * response is available in the the FIFO
- *
- * CASE 3: length > 128
- * Wait for the first 4 bytes to be in FIFO
- *
- * For most uses, a small timeout should be sufficient and we will
- * usually see a response quickly; but there may be some unusual
- * (debug) cases of BMI_EXECUTE where we want an larger timeout.
- * For now, we use an unbounded busy loop while waiting for
- * BMI_EXECUTE.
- *
- * If BMI_EXECUTE ever needs to support longer-latency execution,
- * especially in production, this code needs to be enhanced to sleep
- * and yield. Also note that BMI_COMMUNICATION_TIMEOUT is currently
- * a function of Host processor speed.
- */
- if (len >= 4) { /* NB: Currently, always true */
- ret = ath6kl_bmi_get_rx_lkahd(ar);
- if (ret)
- return ret;
- }
-
- addr = ar->mbox_info.htc_addr;
- ret = ath6kl_sdio_read_write_sync_pri(ar, addr, buf, len,
- HIF_RD_SYNC_BYTE_INC);
- if (ret) {
- ath6kl_err("Unable to read the bmi data from the device: %d\n",
- ret);
- return ret;
- }
-
- return 0;
-}
-
-static void ath6kl_sdio_stop(struct ath6kl *ar)
-{
- struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
- struct bus_request *req, *tmp_req;
- void *context;
-
- /* FIXME: make sure that wq is not queued again */
-
- cancel_work_sync(&ar_sdio->wr_async_work);
-
- spin_lock_bh(&ar_sdio->wr_async_lock);
-
- list_for_each_entry_safe(req, tmp_req, &ar_sdio->wr_asyncq, list) {
- list_del(&req->list);
-
- if (req->scat_req) {
- /* this is a scatter gather request */
- req->scat_req->status = -ECANCELED;
- req->scat_req->complete(ar_sdio->ar->htc_target,
- req->scat_req);
- } else {
- context = req->packet;
- ath6kl_sdio_free_bus_req(ar_sdio, req);
- ath6kl_hif_rw_comp_handler(context, -ECANCELED);
- }
- }
-
- spin_unlock_bh(&ar_sdio->wr_async_lock);
-
- WARN_ON(get_queue_depth(&ar_sdio->scat_req) != 4);
-}
-
-static const struct ath6kl_hif_ops ath6kl_sdio_ops = {
- .read_write_sync = ath6kl_sdio_read_write_sync_pri,
- .write_async = ath6kl_sdio_write_async,
- .irq_enable = ath6kl_sdio_irq_enable,
- .irq_disable = ath6kl_sdio_irq_disable,
- .scatter_req_get = ath6kl_sdio_scatter_req_get,
- .scatter_req_add = ath6kl_sdio_scatter_req_add,
- .enable_scatter = ath6kl_sdio_enable_scatter,
- .scat_req_rw = ath6kl_sdio_async_rw_scatter,
- .cleanup_scatter = ath6kl_sdio_cleanup_scatter,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
- .suspend = ath6kl_sdio_suspend,
- .resume = ath6kl_sdio_resume,
-#endif
- .diag_read32 = ath6kl_sdio_diag_read32,
- .diag_write32 = ath6kl_sdio_diag_write32,
- .bmi_read = ath6kl_sdio_bmi_read,
- .bmi_write = ath6kl_sdio_bmi_write,
- .power_on = ath6kl_sdio_power_on,
- .power_off = ath6kl_sdio_power_off,
- .stop = ath6kl_sdio_stop,
-};
-
-#if defined(CONFIG_PM_SLEEP) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-
-/*
- * Empty handlers so that mmc subsystem doesn't remove us entirely during
- * suspend. We instead follow cfg80211 suspend/resume handlers.
- */
-static int ath6kl_sdio_pm_suspend(struct device *device)
-{
-#ifdef CONFIG_MACH_PX
- struct sdio_func *func;
- struct ath6kl_sdio *ar_sdio;
- int ret;
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "sdio pm suspend\n");
-
- func = dev_to_sdio_func(device);
- ar_sdio = sdio_get_drvdata(func);
-
- sdio_release_host(func);
- ret = ath6kl_sdio_suspend(ar_sdio->ar, NULL);
- sdio_claim_host(func);
-
- return ret;
-#else
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "sdio pm suspend\n");
-
- return 0;
-#endif
-}
-
-static int ath6kl_sdio_pm_resume(struct device *device)
-{
-#ifdef CONFIG_MACH_PX
- struct sdio_func *func;
- struct ath6kl_sdio *ar_sdio;
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "sdio pm resume\n");
-
- func = dev_to_sdio_func(device);
- ar_sdio = sdio_get_drvdata(func);
-
- return ath6kl_sdio_resume(ar_sdio->ar);
-#else
- ath6kl_dbg(ATH6KL_DBG_SUSPEND, "sdio pm resume\n");
-
- return 0;
-#endif
-}
-
-#ifdef CONFIG_MACH_PX
-static struct dev_pm_ops ath6kl_sdio_pm_ops = {
- .suspend = ath6kl_sdio_pm_suspend,
- .resume = ath6kl_sdio_pm_resume,
-};
-#else
-static SIMPLE_DEV_PM_OPS(ath6kl_sdio_pm_ops, ath6kl_sdio_pm_suspend,
- ath6kl_sdio_pm_resume);
-#endif
-
-#define ATH6KL_SDIO_PM_OPS (&ath6kl_sdio_pm_ops)
-
-#else
-
-#define ATH6KL_SDIO_PM_OPS NULL
-
-#endif /* CONFIG_PM_SLEEP */
-
-static int ath6kl_sdio_probe(struct sdio_func *func,
- const struct sdio_device_id *id)
-{
- int ret;
- struct ath6kl_sdio *ar_sdio;
- struct ath6kl *ar;
- int count;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "sdio new func %d vendor 0x%x device 0x%x block 0x%x/0x%x\n",
- func->num, func->vendor, func->device,
- func->max_blksize, func->cur_blksize);
-
- ar_sdio = kzalloc(sizeof(struct ath6kl_sdio), GFP_KERNEL);
- if (!ar_sdio)
- return -ENOMEM;
-
- ar_sdio->dma_buffer = kzalloc(HIF_DMA_BUFFER_SIZE, GFP_KERNEL);
- if (!ar_sdio->dma_buffer) {
- ret = -ENOMEM;
- goto err_hif;
- }
-
- ar_sdio->func = func;
- sdio_set_drvdata(func, ar_sdio);
-
- ar_sdio->id = id;
- ar_sdio->is_disabled = true;
-
- spin_lock_init(&ar_sdio->lock);
- spin_lock_init(&ar_sdio->scat_lock);
- spin_lock_init(&ar_sdio->wr_async_lock);
- mutex_init(&ar_sdio->dma_buffer_mutex);
-
- INIT_LIST_HEAD(&ar_sdio->scat_req);
- INIT_LIST_HEAD(&ar_sdio->bus_req_freeq);
- INIT_LIST_HEAD(&ar_sdio->wr_asyncq);
-
- INIT_WORK(&ar_sdio->wr_async_work, ath6kl_sdio_write_async_work);
- init_waitqueue_head(&ar_sdio->irq_wq);
-
- for (count = 0; count < BUS_REQUEST_MAX_NUM; count++)
- ath6kl_sdio_free_bus_req(ar_sdio, &ar_sdio->bus_req[count]);
-
- ar = ath6kl_core_alloc(&ar_sdio->func->dev);
- if (!ar) {
- ath6kl_err("Failed to alloc ath6kl core\n");
- ret = -ENOMEM;
- goto err_dma;
- }
-
- ar_sdio->ar = ar;
- ar->hif_type = ATH6KL_HIF_TYPE_SDIO;
- ar->hif_priv = ar_sdio;
- ar->hif_ops = &ath6kl_sdio_ops;
- ar->bmi.max_data_size = 256;
-
- ath6kl_sdio_set_mbox_info(ar);
-
- ret = ath6kl_sdio_setup_irq_mode(ar);
- if (ret) {
- ath6kl_err("Failed to setup sdio irq mode: %d\n", ret);
- goto err_core_alloc;
- }
-
- ret = ath6kl_sdio_config(ar);
- if (ret) {
- ath6kl_err("Failed to config sdio: %d\n", ret);
- goto err_core_alloc;
- }
-
- ret = ath6kl_core_init(ar);
- if (ret) {
- ath6kl_err("Failed to init ath6kl core\n");
- goto err_core_alloc;
- }
-
- return ret;
-
-err_core_alloc:
- ath6kl_core_free(ar_sdio->ar);
-err_dma:
- kfree(ar_sdio->dma_buffer);
-err_hif:
- kfree(ar_sdio);
-
- return ret;
-}
-
-static void ath6kl_sdio_remove(struct sdio_func *func)
-{
- struct ath6kl_sdio *ar_sdio;
- struct ath6kl_vif *vif;
- long timeleft;
-
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "sdio removed func %d vendor 0x%x device 0x%x\n",
- func->num, func->vendor, func->device);
-
- ar_sdio = sdio_get_drvdata(func);
-#ifdef CONFIG_MACH_PX
- vif = ath6kl_vif_first(ar_sdio->ar);
- /* Wait for Wmi event to be ready */
- timeleft = wait_event_interruptible_timeout(ar_sdio->ar->event_wq,
- ar_sdio->ar->state == ATH6KL_STATE_ON,
- WMI_TIMEOUT);
-
- ath6kl_hif_rx_control(ar_sdio->ar->htc_target->dev, false);
- vif->sdio_remove = true;
-#endif
-
- ath6kl_stop_txrx(ar_sdio->ar);
- cancel_work_sync(&ar_sdio->wr_async_work);
-
- ath6kl_core_cleanup(ar_sdio->ar);
-
- kfree(ar_sdio->dma_buffer);
- kfree(ar_sdio);
-}
-
-static const struct sdio_device_id ath6kl_sdio_devices[] = {
- {SDIO_DEVICE(MANUFACTURER_CODE, (MANUFACTURER_ID_AR6003_BASE | 0x0))},
- {SDIO_DEVICE(MANUFACTURER_CODE, (MANUFACTURER_ID_AR6003_BASE | 0x1))},
- {SDIO_DEVICE(MANUFACTURER_CODE, (MANUFACTURER_ID_AR6004_BASE | 0x0))},
- {SDIO_DEVICE(MANUFACTURER_CODE, (MANUFACTURER_ID_AR6004_BASE | 0x1))},
- {},
-};
-
-MODULE_DEVICE_TABLE(sdio, ath6kl_sdio_devices);
-
-static struct sdio_driver ath6kl_sdio_driver = {
- .name = "ath6kl_sdio",
- .id_table = ath6kl_sdio_devices,
- .probe = ath6kl_sdio_probe,
- .remove = ath6kl_sdio_remove,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
- .drv.pm = ATH6KL_SDIO_PM_OPS,
-#endif
-};
-
-static int __init ath6kl_sdio_init(void)
-{
- int ret;
-#ifdef CONFIG_MACH_PX
- ath6kl_sdio_init_c210();
-#else
- ath6kl_sdio_init_msm();
-#endif
- ret = sdio_register_driver(&ath6kl_sdio_driver);
- if (ret)
- ath6kl_err("sdio driver registration failed: %d\n", ret);
-
- return ret;
-}
-
-static void __exit ath6kl_sdio_exit(void)
-{
- sdio_unregister_driver(&ath6kl_sdio_driver);
-#ifdef CONFIG_MACH_PX
- ath6kl_sdio_exit_c210();
-#else
- ath6kl_sdio_exit_msm();
-#endif
-
-}
-
-module_init(ath6kl_sdio_init);
-module_exit(ath6kl_sdio_exit);
-
-MODULE_AUTHOR("Atheros Communications, Inc.");
-MODULE_DESCRIPTION("Driver support for Atheros AR600x SDIO devices");
-MODULE_LICENSE("Dual BSD/GPL");
-
-MODULE_FIRMWARE(AR6003_HW_2_0_FW_DIR "/" AR6003_HW_2_0_OTP_FILE);
-MODULE_FIRMWARE(AR6003_HW_2_0_FW_DIR "/" AR6003_HW_2_0_FIRMWARE_FILE);
-MODULE_FIRMWARE(AR6003_HW_2_0_FW_DIR "/" AR6003_HW_2_0_PATCH_FILE);
-MODULE_FIRMWARE(AR6003_HW_2_0_BOARD_DATA_FILE);
-MODULE_FIRMWARE(AR6003_HW_2_0_DEFAULT_BOARD_DATA_FILE);
-MODULE_FIRMWARE(AR6003_HW_2_1_1_FW_DIR "/" AR6003_HW_2_1_1_OTP_FILE);
-MODULE_FIRMWARE(AR6003_HW_2_1_1_FW_DIR "/" AR6003_HW_2_1_1_FIRMWARE_FILE);
-MODULE_FIRMWARE(AR6003_HW_2_1_1_FW_DIR "/" AR6003_HW_2_1_1_PATCH_FILE);
-MODULE_FIRMWARE(AR6003_HW_2_1_1_BOARD_DATA_FILE);
-MODULE_FIRMWARE(AR6003_HW_2_1_1_DEFAULT_BOARD_DATA_FILE);
-MODULE_FIRMWARE(AR6004_HW_1_0_FW_DIR "/" AR6004_HW_1_0_FIRMWARE_FILE);
-MODULE_FIRMWARE(AR6004_HW_1_0_BOARD_DATA_FILE);
-MODULE_FIRMWARE(AR6004_HW_1_0_DEFAULT_BOARD_DATA_FILE);
-MODULE_FIRMWARE(AR6004_HW_1_1_FW_DIR "/" AR6004_HW_1_1_FIRMWARE_FILE);
-MODULE_FIRMWARE(AR6004_HW_1_1_BOARD_DATA_FILE);
-MODULE_FIRMWARE(AR6004_HW_1_1_DEFAULT_BOARD_DATA_FILE);
diff --git a/drivers/net/wireless/ath/ath6kl/softmac.c b/drivers/net/wireless/ath/ath6kl/softmac.c
deleted file mode 100644
index 3725871..0000000
--- a/drivers/net/wireless/ath/ath6kl/softmac.c
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Copyright (c) 2011 Atheros Communications Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "core.h"
-#include "debug.h"
-#include <linux/vmalloc.h>
-#include <linux/random.h>
-#define MAC_FILE "ath6k/AR6003/hw2.1.1/softmac"
-
-typedef char A_CHAR;
-extern int android_readwrite_file(const A_CHAR *filename, A_CHAR *rbuf, const A_CHAR *wbuf, size_t length);
-
-/* Bleh, same offsets. */
-#define AR6003_MAC_ADDRESS_OFFSET 0x16
-#define AR6004_MAC_ADDRESS_OFFSET 0x16
-
-/* Global variables, sane coding be damned. */
-u8 *ath6kl_softmac;
-size_t ath6kl_softmac_len;
-
-static void ath6kl_calculate_crc(u32 target_type, u8 *data, size_t len)
-{
- u16 *crc, *data_idx;
- u16 checksum;
- int i;
-
- if (target_type == TARGET_TYPE_AR6003) {
- crc = (u16 *)(data + 0x04);
- } else if (target_type == TARGET_TYPE_AR6004) {
- len = 1024;
- crc = (u16 *)(data + 0x04);
- } else {
- ath6kl_err("Invalid target type\n");
- return;
- }
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "Old Checksum: %u\n", *crc);
-
- *crc = 0;
- checksum = 0;
- data_idx = (u16 *)data;
-
- for (i = 0; i < len; i += 2) {
- checksum = checksum ^ (*data_idx);
- data_idx++;
- }
-
- *crc = cpu_to_le16(checksum);
-
- ath6kl_dbg(ATH6KL_DBG_BOOT, "New Checksum: %u\n", checksum);
-}
-
-#ifdef CONFIG_MACH_PX
-static int ath6kl_fetch_nvmac_info(struct ath6kl *ar)
-{
- char softmac_temp[64];
- int ret = 0, ath6kl_softmac_len = 0;
- int isnvmac_imei = 0, isnvmac_wifi = 0;
- int isnvmac_file = 0, ismac_file = 0;
-
- char nvfilepath[32] = {0};
- char *nvfilepath_imei = "/efs/imei/.nvmac.info";
- char *nvfilepath_wifi = "/efs/wifi/.nvmac.info";
- char *softmac_filename = "/efs/wifi/.mac.info";
- char *softmac_old_filename = "/data/.mac.info";
-
- do {
- /*
- isnvmac_imei = android_readwrite_file(nvfilepath_imei,
- NULL, NULL, 0);
- isnvmac_wifi = android_readwrite_file(nvfilepath_wifi,
- NULL, NULL, 0); */
- ismac_file = android_readwrite_file(softmac_filename,
- NULL, NULL, 0);
-
- /*
- if (isnvmac_imei >= 16 && isnvmac_wifi >= 16) {
- strcpy(nvfilepath, nvfilepath_wifi);
- isnvmac_file = isnvmac_wifi;
- } else if (isnvmac_wifi >= 16) {
- strcpy(nvfilepath, nvfilepath_wifi);
- isnvmac_file = isnvmac_wifi;
- } else if (isnvmac_imei >= 16) {
- strcpy(nvfilepath, nvfilepath_imei);
- isnvmac_file = isnvmac_imei;
- } */
-
- /* copy .nvmac.info file to .mac.info
- wifi driver will use .mac.info finally */
- /*
- if (isnvmac_file >= 16) {
- ret = android_readwrite_file(nvfilepath,
- (char *)softmac_temp, NULL, isnvmac_file);
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "%s: Read Mac Address on nvmac.info - %d\n",
- __func__, ret);
- ret = android_readwrite_file(softmac_filename,
- NULL, (char *)softmac_temp, ret);
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "%s: Write Mac Address on mac.info - %d\n",
- __func__, ret);
- ret = android_readwrite_file(softmac_old_filename,
- NULL, (char *)softmac_temp, ret);
- } */
-
- //if (isnvmac_file < 16 && ismac_file < 16) {
- if (ismac_file < 16) {
- snprintf(softmac_temp, sizeof(softmac_temp),
- "00:12:34:%02x:%02x:%02x",
- random32() & 0xff,
- random32() & 0xff,
- random32() & 0xff);
-
- ret = android_readwrite_file(softmac_filename, NULL,
- (char *)softmac_temp, strlen(softmac_temp));
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "%s: Write Random Mac on mac.info - %d\n",
- __func__, ret);
- ret = android_readwrite_file(softmac_old_filename, NULL,
- (char *)softmac_temp, strlen(softmac_temp));
- }
-
-
- ret = android_readwrite_file(softmac_filename, NULL, NULL, 0);
- if (ret < 0)
- break;
- else
- ath6kl_softmac_len = ret;
-
- ath6kl_softmac = vmalloc(ath6kl_softmac_len);
- if (!ath6kl_softmac) {
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "%s: Cannot allocate buffer for %s (%d)\n",
- __func__, softmac_filename, ath6kl_softmac_len);
- ret = -ENOMEM;
- break;
- }
-
- ret = android_readwrite_file(softmac_filename,
- (char *)ath6kl_softmac,
- NULL, ath6kl_softmac_len);
-
- if (ret != ath6kl_softmac_len) {
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "%s: file read error, length %d\n",
- __func__, ath6kl_softmac_len);
- vfree(ath6kl_softmac);
- ret = -1;
- break;
- }
-
- if (!strncmp(ath6kl_softmac, "00:00:00:00:00:00", 17)) {
- ath6kl_dbg(ATH6KL_DBG_BOOT, "%s: mac address is zero\n",
- __func__);
- vfree(ath6kl_softmac);
- ret = -1;
- break;
- }
-
- ret = 0;
- } while (0);
-
- return ret;
-}
-
-#else
-static int ath6kl_fetch_mac_file(struct ath6kl *ar)
-{
- const struct firmware *fw_entry;
- int ret = 0;
-
-
- ret = request_firmware(&fw_entry, MAC_FILE, ar->dev);
- if (ret)
- return ret;
-
- ath6kl_softmac_len = fw_entry->size;
- ath6kl_softmac = kmemdup(fw_entry->data, fw_entry->size, GFP_KERNEL);
-
- if (ath6kl_softmac == NULL)
- ret = -ENOMEM;
-
- release_firmware(fw_entry);
-
- return ret;
-}
-#endif
-
-void ath6kl_mangle_mac_address(struct ath6kl *ar)
-{
- u8 *ptr_mac;
- int i, ret;
-#ifdef CONFIG_MACH_PX
- unsigned int softmac[6];
-#endif
-
- switch (ar->target_type) {
- case TARGET_TYPE_AR6003:
- ptr_mac = ar->fw_board + AR6003_MAC_ADDRESS_OFFSET;
- break;
- case TARGET_TYPE_AR6004:
- ptr_mac = ar->fw_board + AR6004_MAC_ADDRESS_OFFSET;
- break;
- default:
- ath6kl_err("Invalid Target Type\n");
- return;
- }
-
-#if 0
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "MAC from EEPROM %02X:%02X:%02X:%02X:%02X:%02X\n",
- ptr_mac[0], ptr_mac[1], ptr_mac[2],
- ptr_mac[3], ptr_mac[4], ptr_mac[5]);
-#endif
-
-#ifdef CONFIG_MACH_PX
- ret = ath6kl_fetch_nvmac_info(ar);
-
- if (ret) {
- ath6kl_err("MAC address file not found\n");
- return;
- }
-
- if (sscanf(ath6kl_softmac, "%02x:%02x:%02x:%02x:%02x:%02x",
- &softmac[0], &softmac[1], &softmac[2],
- &softmac[3], &softmac[4], &softmac[5])==6) {
-
- for (i=0; i<6; ++i) {
- ptr_mac[i] = softmac[i] & 0xff;
- }
- }
-
- ath6kl_dbg(ATH6KL_DBG_BOOT,
- "MAC from SoftMAC %02X_%02X:%02X\n",
- ptr_mac[0], ptr_mac[4], ptr_mac[5]);
- vfree(ath6kl_softmac);
-#else
- ret = ath6kl_fetch_mac_file(ar);
- if (ret) {
- ath6kl_err("MAC address file not found\n");
- return;
- }
-
- for (i = 0; i < ETH_ALEN; ++i) {
- ptr_mac[i] = ath6kl_softmac[i] & 0xff;
- }
-
- kfree(ath6kl_softmac);
-#endif
-
- ath6kl_calculate_crc(ar->target_type, ar->fw_board, ar->fw_board_len);
-}
diff --git a/drivers/net/wireless/ath/ath6kl/target.h b/drivers/net/wireless/ath/ath6kl/target.h
deleted file mode 100755
index fa0faa4..0000000
--- a/drivers/net/wireless/ath/ath6kl/target.h
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- * Copyright (c) 2004-2010 Atheros Communications Inc.
- * Copyright (c) 2011 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef TARGET_H
-#define TARGET_H
-
-#define AR6003_BOARD_DATA_ADDR 0x00540654
-#define AR6003_BOARD_DATA_INIT_ADDR 0x00540658
-#define AR6003_BOARD_DATA_OFFSET 4
-#define AR6003_RD_OFFSET 12
-
-#define AR6003_BOARD_DATA_SZ 1024
-#define AR6003_BOARD_EXT_DATA_SZ 768
-#define AR6003_BOARD_EXT_DATA_SZ_V2 1024
-
-#define AR6004_BOARD_DATA_SZ 6144
-#define AR6004_BOARD_EXT_DATA_SZ 0
-
-#define RESET_CONTROL_ADDRESS 0x00000000
-#define RESET_CONTROL_COLD_RST 0x00000100
-#define RESET_CONTROL_MBOX_RST 0x00000004
-
-#define CPU_CLOCK_STANDARD_S 0
-#define CPU_CLOCK_STANDARD 0x00000003
-#define CPU_CLOCK_ADDRESS 0x00000020
-
-#define CLOCK_CONTROL_ADDRESS 0x00000028
-#define CLOCK_CONTROL_LF_CLK32_S 2
-#define CLOCK_CONTROL_LF_CLK32 0x00000004
-
-#define SYSTEM_SLEEP_ADDRESS 0x000000c4
-#define SYSTEM_SLEEP_DISABLE_S 0
-#define SYSTEM_SLEEP_DISABLE 0x00000001
-
-#define LPO_CAL_ADDRESS 0x000000e0
-#define LPO_CAL_ENABLE_S 20
-#define LPO_CAL_ENABLE 0x00100000
-
-#define GPIO_PIN10_ADDRESS 0x00000050
-#define GPIO_PIN11_ADDRESS 0x00000054
-#define GPIO_PIN12_ADDRESS 0x00000058
-#define GPIO_PIN13_ADDRESS 0x0000005c
-
-#define HOST_INT_STATUS_ADDRESS 0x00000400
-#define HOST_INT_STATUS_ERROR_S 7
-#define HOST_INT_STATUS_ERROR 0x00000080
-
-#define HOST_INT_STATUS_CPU_S 6
-#define HOST_INT_STATUS_CPU 0x00000040
-
-#define HOST_INT_STATUS_COUNTER_S 4
-#define HOST_INT_STATUS_COUNTER 0x00000010
-
-#define CPU_INT_STATUS_ADDRESS 0x00000401
-
-#define ERROR_INT_STATUS_ADDRESS 0x00000402
-#define ERROR_INT_STATUS_WAKEUP_S 2
-#define ERROR_INT_STATUS_WAKEUP 0x00000004
-
-#define ERROR_INT_STATUS_RX_UNDERFLOW_S 1
-#define ERROR_INT_STATUS_RX_UNDERFLOW 0x00000002
-
-#define ERROR_INT_STATUS_TX_OVERFLOW_S 0
-#define ERROR_INT_STATUS_TX_OVERFLOW 0x00000001
-
-#define COUNTER_INT_STATUS_ADDRESS 0x00000403
-#define COUNTER_INT_STATUS_COUNTER_S 0
-#define COUNTER_INT_STATUS_COUNTER 0x000000ff
-
-#define RX_LOOKAHEAD_VALID_ADDRESS 0x00000405
-
-#define INT_STATUS_ENABLE_ADDRESS 0x00000418
-#define INT_STATUS_ENABLE_ERROR_S 7
-#define INT_STATUS_ENABLE_ERROR 0x00000080
-
-#define INT_STATUS_ENABLE_CPU_S 6
-#define INT_STATUS_ENABLE_CPU 0x00000040
-
-#define INT_STATUS_ENABLE_INT_S 5
-#define INT_STATUS_ENABLE_INT 0x00000020
-#define INT_STATUS_ENABLE_COUNTER_S 4
-#define INT_STATUS_ENABLE_COUNTER 0x00000010
-
-#define INT_STATUS_ENABLE_MBOX_DATA_S 0
-#define INT_STATUS_ENABLE_MBOX_DATA 0x0000000f
-
-#define CPU_INT_STATUS_ENABLE_ADDRESS 0x00000419
-#define CPU_INT_STATUS_ENABLE_BIT_S 0
-#define CPU_INT_STATUS_ENABLE_BIT 0x000000ff
-
-#define ERROR_STATUS_ENABLE_ADDRESS 0x0000041a
-#define ERROR_STATUS_ENABLE_RX_UNDERFLOW_S 1
-#define ERROR_STATUS_ENABLE_RX_UNDERFLOW 0x00000002
-
-#define ERROR_STATUS_ENABLE_TX_OVERFLOW_S 0
-#define ERROR_STATUS_ENABLE_TX_OVERFLOW 0x00000001
-
-#define COUNTER_INT_STATUS_ENABLE_ADDRESS 0x0000041b
-#define COUNTER_INT_STATUS_ENABLE_BIT_S 0
-#define COUNTER_INT_STATUS_ENABLE_BIT 0x000000ff
-
-#define COUNT_ADDRESS 0x00000420
-
-#define COUNT_DEC_ADDRESS 0x00000440
-
-#define WINDOW_DATA_ADDRESS 0x00000474
-#define WINDOW_WRITE_ADDR_ADDRESS 0x00000478
-#define WINDOW_READ_ADDR_ADDRESS 0x0000047c
-#define CPU_DBG_SEL_ADDRESS 0x00000483
-#define CPU_DBG_ADDRESS 0x00000484
-
-#define LOCAL_SCRATCH_ADDRESS 0x000000c0
-#define ATH6KL_OPTION_SLEEP_DISABLE 0x08
-
-#define RTC_BASE_ADDRESS 0x00004000
-#define GPIO_BASE_ADDRESS 0x00014000
-#define MBOX_BASE_ADDRESS 0x00018000
-#define ANALOG_INTF_BASE_ADDRESS 0x0001c000
-
-/* real name of the register is unknown */
-#define ATH6KL_ANALOG_PLL_REGISTER (ANALOG_INTF_BASE_ADDRESS + 0x284)
-
-#define SM(f, v) (((v) << f##_S) & f)
-#define MS(f, v) (((v) & f) >> f##_S)
-
-/*
- * xxx_HOST_INTEREST_ADDRESS is the address in Target RAM of the
- * host_interest structure.
- *
- * Host Interest is shared between Host and Target in order to coordinate
- * between the two, and is intended to remain constant (with additions only
- * at the end).
- */
-#define ATH6KL_AR6003_HI_START_ADDR 0x00540600
-#define ATH6KL_AR6004_HI_START_ADDR 0x00400800
-
-/*
- * These are items that the Host may need to access
- * via BMI or via the Diagnostic Window. The position
- * of items in this structure must remain constant.
- * across firmware revisions!
- *
- * Types for each item must be fixed size across target and host platforms.
- * The structure is used only to calculate offset for each register with
- * HI_ITEM() macro, no values are stored to it.
- *
- * More items may be added at the end.
- */
-struct host_interest {
- /*
- * Pointer to application-defined area, if any.
- * Set by Target application during startup.
- */
- u32 hi_app_host_interest; /* 0x00 */
-
- /* Pointer to register dump area, valid after Target crash. */
- u32 hi_failure_state; /* 0x04 */
-
- /* Pointer to debug logging header */
- u32 hi_dbglog_hdr; /* 0x08 */
-
- u32 hi_unused1; /* 0x0c */
-
- /*
- * General-purpose flag bits, similar to ATH6KL_OPTION_* flags.
- * Can be used by application rather than by OS.
- */
- u32 hi_option_flag; /* 0x10 */
-
- /*
- * Boolean that determines whether or not to
- * display messages on the serial port.
- */
- u32 hi_serial_enable; /* 0x14 */
-
- /* Start address of DataSet index, if any */
- u32 hi_dset_list_head; /* 0x18 */
-
- /* Override Target application start address */
- u32 hi_app_start; /* 0x1c */
-
- /* Clock and voltage tuning */
- u32 hi_skip_clock_init; /* 0x20 */
- u32 hi_core_clock_setting; /* 0x24 */
- u32 hi_cpu_clock_setting; /* 0x28 */
- u32 hi_system_sleep_setting; /* 0x2c */
- u32 hi_xtal_control_setting; /* 0x30 */
- u32 hi_pll_ctrl_setting_24ghz; /* 0x34 */
- u32 hi_pll_ctrl_setting_5ghz; /* 0x38 */
- u32 hi_ref_voltage_trim_setting; /* 0x3c */
- u32 hi_clock_info; /* 0x40 */
-
- /*
- * Flash configuration overrides, used only
- * when firmware is not executing from flash.
- * (When using flash, modify the global variables
- * with equivalent names.)
- */
- u32 hi_bank0_addr_value; /* 0x44 */
- u32 hi_bank0_read_value; /* 0x48 */
- u32 hi_bank0_write_value; /* 0x4c */
- u32 hi_bank0_config_value; /* 0x50 */
-
- /* Pointer to Board Data */
- u32 hi_board_data; /* 0x54 */
- u32 hi_board_data_initialized; /* 0x58 */
-
- u32 hi_dset_ram_index_tbl; /* 0x5c */
-
- u32 hi_desired_baud_rate; /* 0x60 */
- u32 hi_dbglog_config; /* 0x64 */
- u32 hi_end_ram_reserve_sz; /* 0x68 */
- u32 hi_mbox_io_block_sz; /* 0x6c */
-
- u32 hi_num_bpatch_streams; /* 0x70 -- unused */
- u32 hi_mbox_isr_yield_limit; /* 0x74 */
-
- u32 hi_refclk_hz; /* 0x78 */
- u32 hi_ext_clk_detected; /* 0x7c */
- u32 hi_dbg_uart_txpin; /* 0x80 */
- u32 hi_dbg_uart_rxpin; /* 0x84 */
- u32 hi_hci_uart_baud; /* 0x88 */
- u32 hi_hci_uart_pin_assignments; /* 0x8C */
- /*
- * NOTE: byte [0] = tx pin, [1] = rx pin, [2] = rts pin, [3] = cts
- * pin
- */
- u32 hi_hci_uart_baud_scale_val; /* 0x90 */
- u32 hi_hci_uart_baud_step_val; /* 0x94 */
-
- u32 hi_allocram_start; /* 0x98 */
- u32 hi_allocram_sz; /* 0x9c */
- u32 hi_hci_bridge_flags; /* 0xa0 */
- u32 hi_hci_uart_support_pins; /* 0xa4 */
- /*
- * NOTE: byte [0] = RESET pin (bit 7 is polarity),
- * bytes[1]..bytes[3] are for future use
- */
- u32 hi_hci_uart_pwr_mgmt_params; /* 0xa8 */
- /*
- * 0xa8 - [1]: 0 = UART FC active low, 1 = UART FC active high
- * [31:16]: wakeup timeout in ms
- */
-
- /* Pointer to extended board data */
- u32 hi_board_ext_data; /* 0xac */
- u32 hi_board_ext_data_config; /* 0xb0 */
-
- /*
- * Bit [0] : valid
- * Bit[31:16: size
- */
- /*
- * hi_reset_flag is used to do some stuff when target reset.
- * such as restore app_start after warm reset or
- * preserve host Interest area, or preserve ROM data, literals etc.
- */
- u32 hi_reset_flag; /* 0xb4 */
- /* indicate hi_reset_flag is valid */
- u32 hi_reset_flag_valid; /* 0xb8 */
- u32 hi_hci_uart_pwr_mgmt_params_ext; /* 0xbc */
- /*
- * 0xbc - [31:0]: idle timeout in ms
- */
- /* ACS flags */
- u32 hi_acs_flags; /* 0xc0 */
- u32 hi_console_flags; /* 0xc4 */
- u32 hi_nvram_state; /* 0xc8 */
- u32 hi_option_flag2; /* 0xcc */
-
- /* If non-zero, override values sent to Host in WMI_READY event. */
- u32 hi_sw_version_override; /* 0xd0 */
- u32 hi_abi_version_override; /* 0xd4 */
-
- /*
- * Percentage of high priority RX traffic to total expected RX traffic -
- * applicable only to ar6004
- */
- u32 hi_hp_rx_traffic_ratio; /* 0xd8 */
-
- /* test applications flags */
- u32 hi_test_apps_related ; /* 0xdc */
- /* location of test script */
- u32 hi_ota_testscript; /* 0xe0 */
- /* location of CAL data */
- u32 hi_cal_data; /* 0xe4 */
- /* Number of packet log buffers */
- u32 hi_pktlog_num_buffers; /* 0xe8 */
-
-} __packed;
-
-#define HI_ITEM(item) offsetof(struct host_interest, item)
-
-#define HI_OPTION_MAC_ADDR_METHOD_SHIFT 3
-
-#define HI_OPTION_FW_MODE_IBSS 0x0
-#define HI_OPTION_FW_MODE_BSS_STA 0x1
-#define HI_OPTION_FW_MODE_AP 0x2
-
-#define HI_OPTION_FW_SUBMODE_NONE 0x0
-#define HI_OPTION_FW_SUBMODE_P2PDEV 0x1
-#define HI_OPTION_FW_SUBMODE_P2PCLIENT 0x2
-#define HI_OPTION_FW_SUBMODE_P2PGO 0x3
-
-#define HI_OPTION_NUM_DEV_SHIFT 0x9
-
-#define HI_OPTION_FW_BRIDGE_SHIFT 0x04
-
-/* Fw Mode/SubMode Mask
-|------------------------------------------------------------------------------|
-| SUB | SUB | SUB | SUB | | | |
-| MODE[3] | MODE[2] | MODE[1] | MODE[0] | MODE[3] | MODE[2] | MODE[1] | MODE[0|
-| (2) | (2) | (2) | (2) | (2) | (2) | (2) | (2)
-|------------------------------------------------------------------------------|
-*/
-#define HI_OPTION_FW_MODE_BITS 0x2
-#define HI_OPTION_FW_MODE_SHIFT 0xC
-
-#define HI_OPTION_FW_SUBMODE_BITS 0x2
-#define HI_OPTION_FW_SUBMODE_SHIFT 0x14
-
-/* Convert a Target virtual address into a Target physical address */
-#define AR6003_VTOP(vaddr) ((vaddr) & 0x001fffff)
-#define AR6004_VTOP(vaddr) (vaddr)
-
-#define TARG_VTOP(target_type, vaddr) \
- (((target_type) == TARGET_TYPE_AR6003) ? AR6003_VTOP(vaddr) : \
- (((target_type) == TARGET_TYPE_AR6004) ? AR6004_VTOP(vaddr) : 0))
-
-#define ATH6KL_FWLOG_PAYLOAD_SIZE 1500
-
-struct ath6kl_dbglog_buf {
- __le32 next;
- __le32 buffer_addr;
- __le32 bufsize;
- __le32 length;
- __le32 count;
- __le32 free;
-} __packed;
-
-struct ath6kl_dbglog_hdr {
- __le32 dbuf_addr;
- __le32 dropped;
-} __packed;
-
-#endif
diff --git a/drivers/net/wireless/ath/ath6kl/testmode.c b/drivers/net/wireless/ath/ath6kl/testmode.c
deleted file mode 100755
index f4a5cc3..0000000
--- a/drivers/net/wireless/ath/ath6kl/testmode.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (c) 2010-2011 Atheros Communications Inc.
- * Copyright (c) 2011 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "testmode.h"
-#include "debug.h"
-
-#include <net/netlink.h>
-#include "wmiconfig.h"
-
-enum ath6kl_tm_attr {
- __ATH6KL_TM_ATTR_INVALID = 0,
- ATH6KL_TM_ATTR_CMD = 1,
- ATH6KL_TM_ATTR_DATA = 2,
-
- /* keep last */
- __ATH6KL_TM_ATTR_AFTER_LAST,
- ATH6KL_TM_ATTR_MAX = __ATH6KL_TM_ATTR_AFTER_LAST - 1,
-};
-
-enum ath6kl_tm_cmd {
- ATH6KL_TM_CMD_TCMD = 0,
- ATH6KL_TM_CMD_RX_REPORT = 1, /* not used anymore */
- ATH6KL_TM_CMD_WMI_CMD = 0xF000,
-};
-
-#define ATH6KL_TM_DATA_MAX_LEN 5000
-
-static const struct nla_policy ath6kl_tm_policy[ATH6KL_TM_ATTR_MAX + 1] = {
- [ATH6KL_TM_ATTR_CMD] = { .type = NLA_U32 },
- [ATH6KL_TM_ATTR_DATA] = { .type = NLA_BINARY,
- .len = ATH6KL_TM_DATA_MAX_LEN },
-};
-
-
-void ath6kl_tm_rx_event(struct ath6kl *ar, void *buf, size_t buf_len)
-{
- struct sk_buff *skb;
-
- if (!buf || buf_len == 0)
- return;
-
- skb = cfg80211_testmode_alloc_event_skb(ar->wiphy, buf_len, GFP_KERNEL);
- if (!skb) {
- ath6kl_warn("failed to allocate testmode rx skb!\n");
- return;
- }
- NLA_PUT_U32(skb, ATH6KL_TM_ATTR_CMD, ATH6KL_TM_CMD_TCMD);
- NLA_PUT(skb, ATH6KL_TM_ATTR_DATA, buf_len, buf);
- cfg80211_testmode_event(skb, GFP_KERNEL);
- return;
-
-nla_put_failure:
- kfree_skb(skb);
- ath6kl_warn("nla_put failed on testmode rx skb!\n");
-}
-
-int ath6kl_tm_cmd(struct wiphy *wiphy, void *data, int len)
-{
- struct ath6kl *ar = wiphy_priv(wiphy);
- struct nlattr *tb[ATH6KL_TM_ATTR_MAX + 1];
- int err, buf_len;
- void *buf;
- u32 wmi_cmd;
- struct sk_buff *skb;
-
- err = nla_parse(tb, ATH6KL_TM_ATTR_MAX, data, len,
- ath6kl_tm_policy);
- if (err)
- return err;
-
- if (!tb[ATH6KL_TM_ATTR_CMD])
- return -EINVAL;
-
- switch (nla_get_u32(tb[ATH6KL_TM_ATTR_CMD])) {
- case ATH6KL_TM_CMD_WMI_CMD:
- if (!tb[ATH6KL_TM_ATTR_DATA])
- return -EINVAL;
-
- buf = nla_data(tb[ATH6KL_TM_ATTR_DATA]);
- buf_len = nla_len(tb[ATH6KL_TM_ATTR_DATA]);
-
- /* First four bytes hold the wmi_cmd and the rest is the data */
- skb = ath6kl_wmi_get_buf(buf_len-4);
- if (!skb)
- return -ENOMEM;
-
- memcpy(&wmi_cmd, buf, sizeof(wmi_cmd));
- memcpy(skb->data, (u32 *)buf + 1, buf_len - 4);
- ath6kl_wmi_cmd_send(ar->wmi, 0, skb, wmi_cmd, NO_SYNC_WMIFLAG);
-
- return 0;
-
- break;
- case ATH6KL_TM_CMD_TCMD:
- if (!tb[ATH6KL_TM_ATTR_DATA])
- return -EINVAL;
-
- buf = nla_data(tb[ATH6KL_TM_ATTR_DATA]);
- buf_len = nla_len(tb[ATH6KL_TM_ATTR_DATA]);
-
- ath6kl_wmi_test_cmd(ar->wmi, buf, buf_len);
-
- return 0;
-
- break;
- case ATH6KL_TM_CMD_RX_REPORT:
- default:
- return -EOPNOTSUPP;
- }
-}
diff --git a/drivers/net/wireless/ath/ath6kl/testmode.h b/drivers/net/wireless/ath/ath6kl/testmode.h
deleted file mode 100755
index fe651d6..0000000
--- a/drivers/net/wireless/ath/ath6kl/testmode.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2010-2011 Atheros Communications Inc.
- * Copyright (c) 2011 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "core.h"
-
-#ifdef CONFIG_NL80211_TESTMODE
-
-void ath6kl_tm_rx_event(struct ath6kl *ar, void *buf, size_t buf_len);
-int ath6kl_tm_cmd(struct wiphy *wiphy, void *data, int len);
-
-#else
-
-static inline void ath6kl_tm_rx_event(struct ath6kl *ar, void *buf,
- size_t buf_len)
-{
-}
-
-static inline int ath6kl_tm_cmd(struct wiphy *wiphy, void *data, int len)
-{
- return 0;
-}
-
-#endif
diff --git a/drivers/net/wireless/ath/ath6kl/txrx.c b/drivers/net/wireless/ath/ath6kl/txrx.c
deleted file mode 100644
index b8924dd..0000000
--- a/drivers/net/wireless/ath/ath6kl/txrx.c
+++ /dev/null
@@ -1,1853 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "core.h"
-#include "debug.h"
-
-/*
- * tid - tid_mux0..tid_mux3
- * aid - tid_mux4..tid_mux7
- */
-#define ATH6KL_TID_MASK 0xf
-#define ATH6KL_AID_SHIFT 4
-
-static inline u8 ath6kl_get_tid(u8 tid_mux)
-{
- return tid_mux & ATH6KL_TID_MASK;
-}
-
-static inline u8 ath6kl_get_aid(u8 tid_mux)
-{
- return tid_mux >> ATH6KL_AID_SHIFT;
-}
-
-static u8 ath6kl_ibss_map_epid(struct sk_buff *skb, struct net_device *dev,
- u32 *map_no)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ethhdr *eth_hdr;
- u32 i, ep_map = -1;
- u8 *datap;
-
- *map_no = 0;
- datap = skb->data;
- eth_hdr = (struct ethhdr *) (datap + sizeof(struct wmi_data_hdr));
-
- if (is_multicast_ether_addr(eth_hdr->h_dest))
- return ENDPOINT_2;
-
- for (i = 0; i < ar->node_num; i++) {
- if (memcmp(eth_hdr->h_dest, ar->node_map[i].mac_addr,
- ETH_ALEN) == 0) {
- *map_no = i + 1;
- ar->node_map[i].tx_pend++;
- return ar->node_map[i].ep_id;
- }
-
- if ((ep_map == -1) && !ar->node_map[i].tx_pend)
- ep_map = i;
- }
-
- if (ep_map == -1) {
- ep_map = ar->node_num;
- ar->node_num++;
- if (ar->node_num > MAX_NODE_NUM)
- return ENDPOINT_UNUSED;
- }
-
- memcpy(ar->node_map[ep_map].mac_addr, eth_hdr->h_dest, ETH_ALEN);
-
- for (i = ENDPOINT_2; i <= ENDPOINT_5; i++) {
- if (!ar->tx_pending[i]) {
- ar->node_map[ep_map].ep_id = i;
- break;
- }
-
- /*
- * No free endpoint is available, start redistribution on
- * the inuse endpoints.
- */
- if (i == ENDPOINT_5) {
- ar->node_map[ep_map].ep_id = ar->next_ep_id;
- ar->next_ep_id++;
- if (ar->next_ep_id > ENDPOINT_5)
- ar->next_ep_id = ENDPOINT_2;
- }
- }
-
- *map_no = ep_map + 1;
- ar->node_map[ep_map].tx_pend++;
-
- return ar->node_map[ep_map].ep_id;
-}
-
-static bool ath6kl_process_uapsdq(struct ath6kl_sta *conn,
- struct ath6kl_vif *vif,
- struct sk_buff *skb,
- u32 *flags)
-{
- struct ath6kl *ar = vif->ar;
- bool is_apsdq_empty = false;
- struct ethhdr *datap = (struct ethhdr *) skb->data;
- u8 up = 0, traffic_class, *ip_hdr;
- u16 ether_type;
- struct ath6kl_llc_snap_hdr *llc_hdr;
-
- if (conn->sta_flags & STA_PS_APSD_TRIGGER) {
- /*
- * This tx is because of a uAPSD trigger, determine
- * more and EOSP bit. Set EOSP if queue is empty
- * or sufficient frames are delivered for this trigger.
- */
- spin_lock_bh(&conn->psq_lock);
- if (!skb_queue_empty(&conn->apsdq))
- *flags |= WMI_DATA_HDR_FLAGS_MORE;
- else if (conn->sta_flags & STA_PS_APSD_EOSP)
- *flags |= WMI_DATA_HDR_FLAGS_EOSP;
- *flags |= WMI_DATA_HDR_FLAGS_UAPSD;
- spin_unlock_bh(&conn->psq_lock);
- return false;
- } else if (!conn->apsd_info)
- return false;
-
- if (test_bit(WMM_ENABLED, &vif->flags)) {
- ether_type = be16_to_cpu(datap->h_proto);
- if (is_ethertype(ether_type)) {
- /* packet is in DIX format */
- ip_hdr = (u8 *)(datap + 1);
- } else {
- /* packet is in 802.3 format */
- llc_hdr = (struct ath6kl_llc_snap_hdr *)
- (datap + 1);
- ether_type = be16_to_cpu(llc_hdr->eth_type);
- ip_hdr = (u8 *)(llc_hdr + 1);
- }
-
- if (ether_type == IP_ETHERTYPE)
- up = ath6kl_wmi_determine_user_priority(
- ip_hdr, 0);
- } else {
- up = 0;
- }
-
- traffic_class = ath6kl_wmi_get_traffic_class(up);
-
- if ((conn->apsd_info & (1 << traffic_class)) == 0)
- return false;
-
- /* Queue the frames if the STA is sleeping */
- spin_lock_bh(&conn->psq_lock);
- is_apsdq_empty = skb_queue_empty(&conn->apsdq);
- skb_queue_tail(&conn->apsdq, skb);
- spin_unlock_bh(&conn->psq_lock);
-
- /*
- * If this is the first pkt getting queued
- * for this STA, update the PVB for this STA
- */
- if (is_apsdq_empty) {
- ath6kl_wmi_set_apsd_bfrd_traf(ar->wmi,
- vif->fw_vif_idx,
- conn->aid, 1, 0);
- }
- *flags |= WMI_DATA_HDR_FLAGS_UAPSD;
-
- return true;
-}
-
-static bool ath6kl_process_psq(struct ath6kl_sta *conn,
- struct ath6kl_vif *vif,
- struct sk_buff *skb,
- u32 *flags)
-{
- bool is_psq_empty = false;
- struct ath6kl *ar = vif->ar;
-
- if (conn->sta_flags & STA_PS_POLLED) {
- spin_lock_bh(&conn->psq_lock);
- if (!skb_queue_empty(&conn->psq))
- *flags |= WMI_DATA_HDR_FLAGS_MORE;
- spin_unlock_bh(&conn->psq_lock);
- return false;
- }
-
- /* Queue the frames if the STA is sleeping */
- spin_lock_bh(&conn->psq_lock);
- is_psq_empty = skb_queue_empty(&conn->psq);
- skb_queue_tail(&conn->psq, skb);
- spin_unlock_bh(&conn->psq_lock);
-
- /*
- * If this is the first pkt getting queued
- * for this STA, update the PVB for this
- * STA.
- */
- if (is_psq_empty)
- ath6kl_wmi_set_pvb_cmd(ar->wmi,
- vif->fw_vif_idx,
- conn->aid, 1);
- return true;
-}
-
-static bool ath6kl_powersave_ap(struct ath6kl_vif *vif, struct sk_buff *skb,
- u32 *flags)
-{
- struct ethhdr *datap = (struct ethhdr *) skb->data;
- struct ath6kl_sta *conn = NULL;
- bool ps_queued = false;
- struct ath6kl *ar = vif->ar;
-
- if (is_multicast_ether_addr(datap->h_dest)) {
- u8 ctr = 0;
- bool q_mcast = false;
-
- for (ctr = 0; ctr < AP_MAX_NUM_STA; ctr++) {
- if (ar->sta_list[ctr].sta_flags & STA_PS_SLEEP) {
- q_mcast = true;
- break;
- }
- }
-
- if (q_mcast) {
- /*
- * If this transmit is not because of a Dtim Expiry
- * q it.
- */
- if (!test_bit(DTIM_EXPIRED, &vif->flags)) {
- bool is_mcastq_empty = false;
-
- spin_lock_bh(&ar->mcastpsq_lock);
- is_mcastq_empty =
- skb_queue_empty(&ar->mcastpsq);
- skb_queue_tail(&ar->mcastpsq, skb);
- spin_unlock_bh(&ar->mcastpsq_lock);
-
- /*
- * If this is the first Mcast pkt getting
- * queued indicate to the target to set the
- * BitmapControl LSB of the TIM IE.
- */
- if (is_mcastq_empty)
- ath6kl_wmi_set_pvb_cmd(ar->wmi,
- vif->fw_vif_idx,
- MCAST_AID, 1);
-
- ps_queued = true;
- } else {
- /*
- * This transmit is because of Dtim expiry.
- * Determine if MoreData bit has to be set.
- */
- spin_lock_bh(&ar->mcastpsq_lock);
- if (!skb_queue_empty(&ar->mcastpsq))
- *flags |= WMI_DATA_HDR_FLAGS_MORE;
- spin_unlock_bh(&ar->mcastpsq_lock);
- }
- }
- } else {
- conn = ath6kl_find_sta(vif, datap->h_dest);
- if (!conn) {
- dev_kfree_skb(skb);
-
- /* Inform the caller that the skb is consumed */
- return true;
- }
-
- if (conn->sta_flags & STA_PS_SLEEP) {
- ps_queued = ath6kl_process_uapsdq(conn,
- vif, skb, flags);
- if (!(*flags & WMI_DATA_HDR_FLAGS_UAPSD))
- ps_queued = ath6kl_process_psq(conn,
- vif, skb, flags);
- }
- }
- return ps_queued;
-}
-
-/* Tx functions */
-
-int ath6kl_control_tx(void *devt, struct sk_buff *skb,
- enum htc_endpoint_id eid)
-{
- struct ath6kl *ar = devt;
- int status = 0;
- struct ath6kl_cookie *cookie = NULL;
- struct ath6kl_vif *vif;
- vif = ath6kl_vif_first(ar);
-
- if (WARN_ON_ONCE(ar->state == ATH6KL_STATE_WOW))
- goto fail_ctrl_tx;
-
- if (!test_bit(WMI_READY, &ar->flag))
- goto fail_ctrl_tx;
-
- spin_lock_bh(&ar->lock);
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_TX,
- "%s: skb=0x%p, len=0x%x eid =%d\n", __func__,
- skb, skb->len, eid);
-
- if (test_bit(WMI_CTRL_EP_FULL, &ar->flag) && (eid == ar->ctrl_ep)) {
- /*
- * Control endpoint is full, don't allocate resources, we
- * are just going to drop this packet.
- */
- cookie = NULL;
- ath6kl_err("wmi ctrl ep full, dropping pkt : 0x%p, len:%d\n",
- skb, skb->len);
-#ifdef CONFIG_MACH_PX
- if (vif->nw_type == INFRA_NETWORK)
- vif->force_reload = true;
-#endif
- } else
- cookie = ath6kl_alloc_cookie(ar);
-
- if (cookie == NULL) {
- spin_unlock_bh(&ar->lock);
- status = -ENOMEM;
- goto fail_ctrl_tx;
- }
-
- ar->tx_pending[eid]++;
-
- if (eid != ar->ctrl_ep)
- ar->total_tx_data_pend++;
-
- spin_unlock_bh(&ar->lock);
-
- cookie->skb = skb;
- cookie->map_no = 0;
- set_htc_pkt_info(&cookie->htc_pkt, cookie, skb->data, skb->len,
- eid, ATH6KL_CONTROL_PKT_TAG);
-
- /*
- * This interface is asynchronous, if there is an error, cleanup
- * will happen in the TX completion callback.
- */
- ath6kl_htc_tx(ar->htc_target, &cookie->htc_pkt);
-
- return 0;
-
-fail_ctrl_tx:
- dev_kfree_skb(skb);
- return status;
-}
-
-int ath6kl_data_tx(struct sk_buff *skb, struct net_device *dev)
-{
- struct ath6kl *ar = ath6kl_priv(dev);
- struct ath6kl_cookie *cookie = NULL;
- enum htc_endpoint_id eid = ENDPOINT_UNUSED;
- struct ath6kl_vif *vif = netdev_priv(dev);
- u32 map_no = 0;
- u16 htc_tag = ATH6KL_DATA_PKT_TAG;
- u8 ac = 99 ; /* initialize to unmapped ac */
- bool chk_adhoc_ps_mapping = false;
- int ret;
- struct wmi_tx_meta_v2 meta_v2;
- void *meta;
- u8 csum_start = 0, csum_dest = 0, csum = skb->ip_summed;
- u8 meta_ver = 0;
- u32 flags = 0;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_TX,
- "%s: skb=0x%p, data=0x%p, len=0x%x, actual_len=0x%x\n", __func__,
- skb, skb->data, skb->len, skb->tail - skb->data);
-
- /* If target is not associated */
- if (!test_bit(CONNECTED, &vif->flags)) {
- dev_kfree_skb(skb);
- return 0;
- }
-
- if (WARN_ON_ONCE(ar->state != ATH6KL_STATE_ON)) {
- dev_kfree_skb(skb);
- return 0;
- }
-
- if (!test_bit(WMI_READY, &ar->flag))
- goto fail_tx;
-
- /* AP mode Power saving processing */
- if (vif->nw_type == AP_NETWORK) {
- if (ath6kl_powersave_ap(vif, skb, &flags))
- return 0;
- }
-
- if (test_bit(WMI_ENABLED, &ar->flag)) {
- if ((dev->features & NETIF_F_IP_CSUM) &&
- (csum == CHECKSUM_PARTIAL)) {
- csum_start = skb->csum_start -
- (skb_network_header(skb) - skb->head) +
- sizeof(struct ath6kl_llc_snap_hdr);
- csum_dest = skb->csum_offset + csum_start;
- }
-
- if (skb_headroom(skb) < dev->needed_headroom)
- {
- struct sk_buff *tmp_skb = skb;
-
- skb = skb_realloc_headroom(skb, dev->needed_headroom);
- kfree_skb(tmp_skb);
- if (skb == NULL) {
- vif->net_stats.tx_dropped++;
- return 0;
- }
- }
-
- if (ath6kl_wmi_dix_2_dot3(ar->wmi, skb)) {
- ath6kl_err("ath6kl_wmi_dix_2_dot3 failed\n");
- goto fail_tx;
- }
-
- if ((dev->features & NETIF_F_IP_CSUM) &&
- (csum == CHECKSUM_PARTIAL)) {
- meta_v2.csum_start = csum_start;
- meta_v2.csum_dest = csum_dest;
-
- /* instruct target to calculate checksum */
- meta_v2.csum_flags = WMI_META_V2_FLAG_CSUM_OFFLOAD;
- meta_ver = WMI_META_VERSION_2;
- meta = &meta_v2;
- } else {
- meta_ver = 0;
- meta = NULL;
- }
-
- ret = ath6kl_wmi_data_hdr_add(ar->wmi, skb,
- DATA_MSGTYPE, flags, 0,
- meta_ver,
- meta, vif->fw_vif_idx);
-
- if (ret) {
- ath6kl_warn("failed to add wmi data header:%d\n"
- , ret);
- goto fail_tx;
- }
-
- if ((vif->nw_type == ADHOC_NETWORK) &&
- ar->ibss_ps_enable && test_bit(CONNECTED, &vif->flags))
- chk_adhoc_ps_mapping = true;
- else {
- /* get the stream mapping */
- ret = ath6kl_wmi_implicit_create_pstream(ar->wmi,
- vif->fw_vif_idx, skb,
- 0, test_bit(WMM_ENABLED, &vif->flags), &ac);
- if (ret)
- goto fail_tx;
- }
- } else
- goto fail_tx;
-
- spin_lock_bh(&ar->lock);
-
- if (chk_adhoc_ps_mapping)
- eid = ath6kl_ibss_map_epid(skb, dev, &map_no);
- else
- eid = ar->ac2ep_map[ac];
-
- if (eid == 0 || eid == ENDPOINT_UNUSED) {
- ath6kl_err("eid %d is not mapped!\n", eid);
- spin_unlock_bh(&ar->lock);
- goto fail_tx;
- }
-
- /* allocate resource for this packet */
- cookie = ath6kl_alloc_cookie(ar);
-
- if (!cookie) {
- spin_unlock_bh(&ar->lock);
- goto fail_tx;
- }
-
- /* update counts while the lock is held */
- ar->tx_pending[eid]++;
- ar->total_tx_data_pend++;
-
- spin_unlock_bh(&ar->lock);
-
- if (!IS_ALIGNED((unsigned long) skb->data - HTC_HDR_LENGTH, 4) &&
- skb_cloned(skb)) {
- /*
- * We will touch (move the buffer data to align it. Since the
- * skb buffer is cloned and not only the header is changed, we
- * have to copy it to allow the changes. Since we are copying
- * the data here, we may as well align it by reserving suitable
- * headroom to avoid the memmove in ath6kl_htc_tx_buf_align().
- */
- struct sk_buff *nskb;
-
- nskb = skb_copy_expand(skb, HTC_HDR_LENGTH, 0, GFP_ATOMIC);
- if (nskb == NULL)
- goto fail_tx;
- kfree_skb(skb);
- skb = nskb;
- }
-
- cookie->skb = skb;
- cookie->map_no = map_no;
- set_htc_pkt_info(&cookie->htc_pkt, cookie, skb->data, skb->len,
- eid, htc_tag);
-
- ath6kl_dbg_dump(ATH6KL_DBG_RAW_BYTES, __func__, "tx ",
- skb->data, skb->len);
- /*
- * HTC interface is asynchronous, if this fails, cleanup will
- * happen in the ath6kl_tx_complete callback.
- */
- ath6kl_htc_tx(ar->htc_target, &cookie->htc_pkt);
-
- return 0;
-
-fail_tx:
- dev_kfree_skb(skb);
-
- vif->net_stats.tx_dropped++;
- vif->net_stats.tx_aborted_errors++;
-
- return 0;
-}
-
-/* indicate tx activity or inactivity on a WMI stream */
-void ath6kl_indicate_tx_activity(void *devt, u8 traffic_class, bool active)
-{
- struct ath6kl *ar = devt;
- enum htc_endpoint_id eid;
- int i;
-
- eid = ar->ac2ep_map[traffic_class];
-
- if (!test_bit(WMI_ENABLED, &ar->flag))
- goto notify_htc;
-
- spin_lock_bh(&ar->lock);
-
- ar->ac_stream_active[traffic_class] = active;
-
- if (active) {
- /*
- * Keep track of the active stream with the highest
- * priority.
- */
- if (ar->ac_stream_pri_map[traffic_class] >
- ar->hiac_stream_active_pri)
- /* set the new highest active priority */
- ar->hiac_stream_active_pri =
- ar->ac_stream_pri_map[traffic_class];
-
- } else {
- /*
- * We may have to search for the next active stream
- * that is the highest priority.
- */
- if (ar->hiac_stream_active_pri ==
- ar->ac_stream_pri_map[traffic_class]) {
- /*
- * The highest priority stream just went inactive
- * reset and search for the "next" highest "active"
- * priority stream.
- */
- ar->hiac_stream_active_pri = 0;
-
- for (i = 0; i < WMM_NUM_AC; i++) {
- if (ar->ac_stream_active[i] &&
- (ar->ac_stream_pri_map[i] >
- ar->hiac_stream_active_pri))
- /*
- * Set the new highest active
- * priority.
- */
- ar->hiac_stream_active_pri =
- ar->ac_stream_pri_map[i];
- }
- }
- }
-
- spin_unlock_bh(&ar->lock);
-
-notify_htc:
- /* notify HTC, this may cause credit distribution changes */
- ath6kl_htc_indicate_activity_change(ar->htc_target, eid, active);
-}
-
-enum htc_send_full_action ath6kl_tx_queue_full(struct htc_target *target,
- struct htc_packet *packet)
-{
- struct ath6kl *ar = target->dev->ar;
- struct ath6kl_vif *vif;
- enum htc_endpoint_id endpoint = packet->endpoint;
- enum htc_send_full_action action = HTC_SEND_FULL_KEEP;
-
- if (endpoint == ar->ctrl_ep) {
- /*
- * Under normal WMI if this is getting full, then something
- * is running rampant the host should not be exhausting the
- * WMI queue with too many commands the only exception to
- * this is during testing using endpointping.
- */
- set_bit(WMI_CTRL_EP_FULL, &ar->flag);
- ath6kl_err("wmi ctrl ep is full\n");
- return action;
- }
-
- if (packet->info.tx.tag == ATH6KL_CONTROL_PKT_TAG)
- return action;
-
- /*
- * The last MAX_HI_COOKIE_NUM "batch" of cookies are reserved for
- * the highest active stream.
- */
- if (ar->ac_stream_pri_map[ar->ep2ac_map[endpoint]] <
- ar->hiac_stream_active_pri &&
- ar->cookie_count <= MAX_HI_COOKIE_NUM)
- /*
- * Give preference to the highest priority stream by
- * dropping the packets which overflowed.
- */
- action = HTC_SEND_FULL_DROP;
-
- /* FIXME: Locking */
- spin_lock_bh(&ar->list_lock);
- list_for_each_entry(vif, &ar->vif_list, list) {
- if (vif->nw_type == ADHOC_NETWORK ||
- action != HTC_SEND_FULL_DROP) {
- spin_unlock_bh(&ar->list_lock);
-
- set_bit(NETQ_STOPPED, &vif->flags);
- netif_stop_queue(vif->ndev);
-
- return action;
- }
- }
- spin_unlock_bh(&ar->list_lock);
-
- return action;
-}
-
-/* TODO this needs to be looked at */
-static void ath6kl_tx_clear_node_map(struct ath6kl_vif *vif,
- enum htc_endpoint_id eid, u32 map_no)
-{
- struct ath6kl *ar = vif->ar;
- u32 i;
-
- if (vif->nw_type != ADHOC_NETWORK)
- return;
-
- if (!ar->ibss_ps_enable)
- return;
-
- if (eid == ar->ctrl_ep)
- return;
-
- if (map_no == 0)
- return;
-
- map_no--;
- ar->node_map[map_no].tx_pend--;
-
- if (ar->node_map[map_no].tx_pend)
- return;
-
- if (map_no != (ar->node_num - 1))
- return;
-
- for (i = ar->node_num; i > 0; i--) {
- if (ar->node_map[i - 1].tx_pend)
- break;
-
- memset(&ar->node_map[i - 1], 0,
- sizeof(struct ath6kl_node_mapping));
- ar->node_num--;
- }
-}
-
-void ath6kl_tx_complete(void *context, struct list_head *packet_queue)
-{
- struct ath6kl *ar = context;
- struct sk_buff_head skb_queue;
- struct htc_packet *packet;
- struct sk_buff *skb;
- struct ath6kl_cookie *ath6kl_cookie;
- u32 map_no = 0;
- int status;
- enum htc_endpoint_id eid;
- bool wake_event = false;
- bool flushing[ATH6KL_VIF_MAX] = {false};
- u8 if_idx;
- struct ath6kl_vif *vif;
- bool ctrl_ep = false;
-
- skb_queue_head_init(&skb_queue);
-
- /* lock the driver as we update internal state */
- spin_lock_bh(&ar->lock);
-
- /* reap completed packets */
- while (!list_empty(packet_queue)) {
-
- packet = list_first_entry(packet_queue, struct htc_packet,
- list);
- list_del(&packet->list);
-
- ath6kl_cookie = (struct ath6kl_cookie *)packet->pkt_cntxt;
- if (!ath6kl_cookie)
- goto fatal;
-
- status = packet->status;
- skb = ath6kl_cookie->skb;
- eid = packet->endpoint;
- map_no = ath6kl_cookie->map_no;
-
- if (!skb || !skb->data)
- goto fatal;
-
- __skb_queue_tail(&skb_queue, skb);
-
- if (!status && (packet->act_len != skb->len))
- goto fatal;
-
- ar->tx_pending[eid]--;
-
- if (eid != ar->ctrl_ep)
- ar->total_tx_data_pend--;
-
- if (eid == ar->ctrl_ep) {
- if (test_bit(WMI_CTRL_EP_FULL, &ar->flag))
- clear_bit(WMI_CTRL_EP_FULL, &ar->flag);
-
- if (ar->tx_pending[eid] == 0)
- wake_event = true;
- ctrl_ep = true;
-
- } else {
- if_idx = wmi_data_hdr_get_if_idx(
- (struct wmi_data_hdr *) packet->buf);
-
- vif = ath6kl_get_vif_by_index(ar, if_idx);
- if (!vif) {
- ath6kl_free_cookie(ar, ath6kl_cookie);
- continue;
- }
-
- if (status) {
- if (status == -ECANCELED)
- /* a packet was flushed */
- flushing[if_idx] = true;
-
- vif->net_stats.tx_errors++;
-
- if (status != -ENOSPC && status != -ECANCELED)
- ath6kl_warn("tx complete error: %d\n", status);
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_TX,
- "%s: skb=0x%p data=0x%p len=0x%x eid=%d %s\n",
- __func__, skb, packet->buf, packet->act_len,
- eid, "error!");
- } else {
- ath6kl_dbg(ATH6KL_DBG_WLAN_TX,
- "%s: skb=0x%p data=0x%p len=0x%x eid=%d %s\n",
- __func__, skb, packet->buf, packet->act_len,
- eid, "OK");
-
- flushing[if_idx] = false;
- vif->net_stats.tx_packets++;
- vif->net_stats.tx_bytes += skb->len;
- }
-
- ath6kl_tx_clear_node_map(vif, eid, map_no);
- if (test_bit(NETQ_STOPPED, &vif->flags))
- clear_bit(NETQ_STOPPED, &vif->flags);
- }
-
-
- ath6kl_free_cookie(ar, ath6kl_cookie);
- }
-
- spin_unlock_bh(&ar->lock);
-
- __skb_queue_purge(&skb_queue);
-
- /* FIXME: Locking */
- if (!ctrl_ep) {
- spin_lock_bh(&ar->list_lock);
- list_for_each_entry(vif, &ar->vif_list, list) {
- if (test_bit(CONNECTED, &vif->flags) &&
- !flushing[vif->fw_vif_idx]) {
- spin_unlock_bh(&ar->list_lock);
- netif_wake_queue(vif->ndev);
- spin_lock_bh(&ar->list_lock);
- }
- }
- spin_unlock_bh(&ar->list_lock);
- }
-
- if (wake_event)
- wake_up(&ar->event_wq);
-
- return;
-
-fatal:
- WARN_ON(1);
- spin_unlock_bh(&ar->lock);
- return;
-}
-
-void ath6kl_tx_data_cleanup(struct ath6kl *ar)
-{
- int i;
-
- /* flush all the data (non-control) streams */
- for (i = 0; i < WMM_NUM_AC; i++)
- ath6kl_htc_flush_txep(ar->htc_target, ar->ac2ep_map[i],
- ATH6KL_DATA_PKT_TAG);
-}
-
-/* Rx functions */
-
-static void ath6kl_deliver_frames_to_nw_stack(struct net_device *dev,
- struct sk_buff *skb)
-{
- if (!skb)
- return;
-
- skb->dev = dev;
-
- if (!(skb->dev->flags & IFF_UP)) {
- dev_kfree_skb(skb);
- return;
- }
-
- skb->protocol = eth_type_trans(skb, skb->dev);
-
-#ifdef CONFIG_MACH_PX
- skb->len = skb->tail - skb->data;
-#endif
-
- netif_rx_ni(skb);
-}
-
-static void ath6kl_alloc_netbufs(struct sk_buff_head *q, u16 num)
-{
- struct sk_buff *skb;
-
- while (num) {
- skb = ath6kl_buf_alloc(ATH6KL_BUFFER_SIZE);
- if (!skb) {
- ath6kl_err("netbuf allocation failed\n");
- return;
- }
- skb_queue_tail(q, skb);
- num--;
- }
-}
-
-static struct sk_buff *aggr_get_free_skb(struct aggr_info *p_aggr)
-{
- struct sk_buff *skb = NULL;
-
- if (skb_queue_len(&p_aggr->rx_amsdu_freeq) <
- (AGGR_NUM_OF_FREE_NETBUFS >> 2))
- ath6kl_alloc_netbufs(&p_aggr->rx_amsdu_freeq,
- AGGR_NUM_OF_FREE_NETBUFS);
-
- skb = skb_dequeue(&p_aggr->rx_amsdu_freeq);
-
- return skb;
-}
-
-void ath6kl_rx_refill(struct htc_target *target, enum htc_endpoint_id endpoint)
-{
- struct ath6kl *ar = target->dev->ar;
- struct sk_buff *skb;
- int rx_buf;
- int n_buf_refill;
- struct htc_packet *packet;
- struct list_head queue;
-
- n_buf_refill = ATH6KL_MAX_RX_BUFFERS -
- ath6kl_htc_get_rxbuf_num(ar->htc_target, endpoint);
-
- if (n_buf_refill <= 0)
- return;
-
- INIT_LIST_HEAD(&queue);
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_RX,
- "%s: providing htc with %d buffers at eid=%d\n",
- __func__, n_buf_refill, endpoint);
-
- for (rx_buf = 0; rx_buf < n_buf_refill; rx_buf++) {
- skb = ath6kl_buf_alloc(ATH6KL_BUFFER_SIZE);
- if (!skb)
- break;
-
- packet = (struct htc_packet *) skb->head;
- if (!IS_ALIGNED((unsigned long) skb->data, 4))
- skb->data = PTR_ALIGN(skb->data - 4, 4);
- set_htc_rxpkt_info(packet, skb, skb->data,
- ATH6KL_BUFFER_SIZE, endpoint);
- list_add_tail(&packet->list, &queue);
- }
-
- if (!list_empty(&queue))
- ath6kl_htc_add_rxbuf_multiple(ar->htc_target, &queue);
-}
-
-void ath6kl_refill_amsdu_rxbufs(struct ath6kl *ar, int count)
-{
- struct htc_packet *packet;
- struct sk_buff *skb;
-
- while (count) {
- skb = ath6kl_buf_alloc(ATH6KL_AMSDU_BUFFER_SIZE);
- if (!skb)
- return;
-
- packet = (struct htc_packet *) skb->head;
- if (!IS_ALIGNED((unsigned long) skb->data, 4))
- skb->data = PTR_ALIGN(skb->data - 4, 4);
- set_htc_rxpkt_info(packet, skb, skb->data,
- ATH6KL_AMSDU_BUFFER_SIZE, 0);
- spin_lock_bh(&ar->lock);
- list_add_tail(&packet->list, &ar->amsdu_rx_buffer_queue);
- spin_unlock_bh(&ar->lock);
- count--;
- }
-}
-
-/*
- * Callback to allocate a receive buffer for a pending packet. We use a
- * pre-allocated list of buffers of maximum AMSDU size (4K).
- */
-struct htc_packet *ath6kl_alloc_amsdu_rxbuf(struct htc_target *target,
- enum htc_endpoint_id endpoint,
- int len)
-{
- struct ath6kl *ar = target->dev->ar;
- struct htc_packet *packet = NULL;
- struct list_head *pkt_pos;
- int refill_cnt = 0, depth = 0;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_RX, "%s: eid=%d, len:%d\n",
- __func__, endpoint, len);
-
- if ((len <= ATH6KL_BUFFER_SIZE) ||
- (len > ATH6KL_AMSDU_BUFFER_SIZE))
- return NULL;
-
- spin_lock_bh(&ar->lock);
-
- if (list_empty(&ar->amsdu_rx_buffer_queue)) {
- spin_unlock_bh(&ar->lock);
- refill_cnt = ATH6KL_MAX_AMSDU_RX_BUFFERS;
- goto refill_buf;
- }
-
- packet = list_first_entry(&ar->amsdu_rx_buffer_queue,
- struct htc_packet, list);
- list_del(&packet->list);
- list_for_each(pkt_pos, &ar->amsdu_rx_buffer_queue)
- depth++;
-
- refill_cnt = ATH6KL_MAX_AMSDU_RX_BUFFERS - depth;
- spin_unlock_bh(&ar->lock);
-
- /* set actual endpoint ID */
- packet->endpoint = endpoint;
-
-refill_buf:
- if (refill_cnt >= ATH6KL_AMSDU_REFILL_THRESHOLD)
- ath6kl_refill_amsdu_rxbufs(ar, refill_cnt);
-
- return packet;
-}
-
-static void aggr_slice_amsdu(struct aggr_info *p_aggr,
- struct rxtid *rxtid, struct sk_buff *skb)
-{
- struct sk_buff *new_skb;
- struct ethhdr *hdr;
- u16 frame_8023_len, payload_8023_len, mac_hdr_len, amsdu_len;
- u8 *framep;
-
- mac_hdr_len = sizeof(struct ethhdr);
- framep = skb->data + mac_hdr_len;
- amsdu_len = skb->len - mac_hdr_len;
-
- while (amsdu_len > mac_hdr_len) {
- hdr = (struct ethhdr *) framep;
- payload_8023_len = ntohs(hdr->h_proto);
-
- if (payload_8023_len < MIN_MSDU_SUBFRAME_PAYLOAD_LEN ||
- payload_8023_len > MAX_MSDU_SUBFRAME_PAYLOAD_LEN) {
- ath6kl_err("802.3 AMSDU frame bound check failed. len %d\n",
- payload_8023_len);
- break;
- }
-
- frame_8023_len = payload_8023_len + mac_hdr_len;
- new_skb = aggr_get_free_skb(p_aggr);
- if (!new_skb) {
- ath6kl_err("no buffer available\n");
- break;
- }
-
- memcpy(new_skb->data, framep, frame_8023_len);
- skb_put(new_skb, frame_8023_len);
- if (ath6kl_wmi_dot3_2_dix(new_skb)) {
- ath6kl_err("dot3_2_dix error\n");
- dev_kfree_skb(new_skb);
- break;
- }
-
- skb_queue_tail(&rxtid->q, new_skb);
-
- /* Is this the last subframe within this aggregate ? */
- if ((amsdu_len - frame_8023_len) == 0)
- break;
-
- /* Add the length of A-MSDU subframe padding bytes -
- * Round to nearest word.
- */
- frame_8023_len = ALIGN(frame_8023_len, 4);
-
- framep += frame_8023_len;
- amsdu_len -= frame_8023_len;
- }
-
- dev_kfree_skb(skb);
-}
-
-static void aggr_deque_frms(struct aggr_info_conn *agg_conn, u8 tid,
- u16 seq_no, u8 order)
-{
- struct sk_buff *skb;
- struct rxtid *rxtid;
- struct skb_hold_q *node;
- u16 idx, idx_end, seq_end;
- struct rxtid_stats *stats;
-
- rxtid = &agg_conn->rx_tid[tid];
- stats = &agg_conn->stat[tid];
-
- idx = AGGR_WIN_IDX(rxtid->seq_next, rxtid->hold_q_sz);
-
- /*
- * idx_end is typically the last possible frame in the window,
- * but changes to 'the' seq_no, when BAR comes. If seq_no
- * is non-zero, we will go up to that and stop.
- * Note: last seq no in current window will occupy the same
- * index position as index that is just previous to start.
- * An imp point : if win_sz is 7, for seq_no space of 4095,
- * then, there would be holes when sequence wrap around occurs.
- * Target should judiciously choose the win_sz, based on
- * this condition. For 4095, (TID_WINDOW_SZ = 2 x win_sz
- * 2, 4, 8, 16 win_sz works fine).
- * We must deque from "idx" to "idx_end", including both.
- */
- seq_end = seq_no ? seq_no : rxtid->seq_next;
- idx_end = AGGR_WIN_IDX(seq_end, rxtid->hold_q_sz);
-
- spin_lock_bh(&rxtid->lock);
-
- do {
- node = &rxtid->hold_q[idx];
- if ((order == 1) && (!node->skb))
- break;
-
- if (node->skb) {
- if (node->is_amsdu)
- aggr_slice_amsdu(agg_conn->aggr_info, rxtid,
- node->skb);
- else
- skb_queue_tail(&rxtid->q, node->skb);
- node->skb = NULL;
- } else
- stats->num_hole++;
-
- rxtid->seq_next = ATH6KL_NEXT_SEQ_NO(rxtid->seq_next);
- idx = AGGR_WIN_IDX(rxtid->seq_next, rxtid->hold_q_sz);
- } while (idx != idx_end);
-
- spin_unlock_bh(&rxtid->lock);
-
- stats->num_delivered += skb_queue_len(&rxtid->q);
-
- while ((skb = skb_dequeue(&rxtid->q)))
- ath6kl_deliver_frames_to_nw_stack(agg_conn->dev, skb);
-}
-
-static bool aggr_process_recv_frm(struct aggr_info_conn *agg_conn, u8 tid,
- u16 seq_no,
- bool is_amsdu, struct sk_buff *frame)
-{
- struct rxtid *rxtid;
- struct rxtid_stats *stats;
- struct sk_buff *skb;
- struct skb_hold_q *node;
- u16 idx, st, cur, end;
- bool is_queued = false;
- u16 extended_end;
-
- rxtid = &agg_conn->rx_tid[tid];
- stats = &agg_conn->stat[tid];
-
- stats->num_into_aggr++;
-
- if (!rxtid->aggr) {
- if (is_amsdu) {
- aggr_slice_amsdu(agg_conn->aggr_info, rxtid, frame);
- is_queued = true;
- stats->num_amsdu++;
- while ((skb = skb_dequeue(&rxtid->q)))
- ath6kl_deliver_frames_to_nw_stack(agg_conn->dev,
- skb);
- }
- return is_queued;
- }
-
- /* Check the incoming sequence no, if it's in the window */
- st = rxtid->seq_next;
- cur = seq_no;
- end = (st + rxtid->hold_q_sz-1) & ATH6KL_MAX_SEQ_NO;
-
- if (((st < end) && (cur < st || cur > end)) ||
- ((st > end) && (cur > end) && (cur < st))) {
- extended_end = (end + rxtid->hold_q_sz - 1) &
- ATH6KL_MAX_SEQ_NO;
-
- if (((end < extended_end) &&
- (cur < end || cur > extended_end)) ||
- ((end > extended_end) && (cur > extended_end) &&
- (cur < end))) {
- aggr_deque_frms(agg_conn, tid, 0, 0);
- if (cur >= rxtid->hold_q_sz - 1)
- rxtid->seq_next = cur - (rxtid->hold_q_sz - 1);
- else
- rxtid->seq_next = ATH6KL_MAX_SEQ_NO -
- (rxtid->hold_q_sz - 2 - cur);
- } else {
- /*
- * Dequeue only those frames that are outside the
- * new shifted window.
- */
- if (cur >= rxtid->hold_q_sz - 1)
- st = cur - (rxtid->hold_q_sz - 1);
- else
- st = ATH6KL_MAX_SEQ_NO -
- (rxtid->hold_q_sz - 2 - cur);
-
- aggr_deque_frms(agg_conn, tid, st, 0);
- }
-
- stats->num_oow++;
- }
-
- idx = AGGR_WIN_IDX(seq_no, rxtid->hold_q_sz);
-
- node = &rxtid->hold_q[idx];
-
- spin_lock_bh(&rxtid->lock);
-
- /*
- * Is the cur frame duplicate or something beyond our window(hold_q
- * -> which is 2x, already)?
- *
- * 1. Duplicate is easy - drop incoming frame.
- * 2. Not falling in current sliding window.
- * 2a. is the frame_seq_no preceding current tid_seq_no?
- * -> drop the frame. perhaps sender did not get our ACK.
- * this is taken care of above.
- * 2b. is the frame_seq_no beyond window(st, TID_WINDOW_SZ);
- * -> Taken care of it above, by moving window forward.
- */
- dev_kfree_skb(node->skb);
- stats->num_dups++;
-
- node->skb = frame;
- is_queued = true;
- node->is_amsdu = is_amsdu;
- node->seq_no = seq_no;
-
- if (node->is_amsdu)
- stats->num_amsdu++;
- else
- stats->num_mpdu++;
-
- spin_unlock_bh(&rxtid->lock);
-
- aggr_deque_frms(agg_conn, tid, 0, 1);
-
- if (agg_conn->timer_scheduled)
- rxtid->progress = true;
- else
- for (idx = 0 ; idx < rxtid->hold_q_sz; idx++) {
- if (rxtid->hold_q[idx].skb) {
- /*
- * There is a frame in the queue and no
- * timer so start a timer to ensure that
- * the frame doesn't remain stuck
- * forever.
- */
- agg_conn->timer_scheduled = true;
- mod_timer(&agg_conn->timer,
- (jiffies +
- HZ * (AGGR_RX_TIMEOUT) / 1000));
- rxtid->progress = false;
- rxtid->timer_mon = true;
- break;
- }
- }
-
- return is_queued;
-}
-
-static void ath6kl_uapsd_trigger_frame_rx(struct ath6kl_vif *vif,
- struct ath6kl_sta *conn)
-{
- struct ath6kl *ar = vif->ar;
- bool is_apsdq_empty, is_apsdq_empty_at_start;
- u32 num_frames_to_deliver, flags;
- struct sk_buff *skb = NULL;
-
- /*
- * If the APSD q for this STA is not empty, dequeue and
- * send a pkt from the head of the q. Also update the
- * More data bit in the WMI_DATA_HDR if there are
- * more pkts for this STA in the APSD q.
- * If there are no more pkts for this STA,
- * update the APSD bitmap for this STA.
- */
-
- num_frames_to_deliver = (conn->apsd_info >> ATH6KL_APSD_NUM_OF_AC) &
- ATH6KL_APSD_FRAME_MASK;
- /*
- * Number of frames to send in a service period is
- * indicated by the station
- * in the QOS_INFO of the association request
- * If it is zero, send all frames
- */
- if (!num_frames_to_deliver)
- num_frames_to_deliver = ATH6KL_APSD_ALL_FRAME;
-
- spin_lock_bh(&conn->psq_lock);
- is_apsdq_empty = skb_queue_empty(&conn->apsdq);
- spin_unlock_bh(&conn->psq_lock);
- is_apsdq_empty_at_start = is_apsdq_empty;
-
- while ((!is_apsdq_empty) && (num_frames_to_deliver)) {
-
- spin_lock_bh(&conn->psq_lock);
- skb = skb_dequeue(&conn->apsdq);
- is_apsdq_empty = skb_queue_empty(&conn->apsdq);
- spin_unlock_bh(&conn->psq_lock);
-
- /*
- * Set the STA flag to Trigger delivery,
- * so that the frame will go out
- */
- conn->sta_flags |= STA_PS_APSD_TRIGGER;
- num_frames_to_deliver--;
-
- /* Last frame in the service period, set EOSP or queue empty */
- if ((is_apsdq_empty) || (!num_frames_to_deliver))
- conn->sta_flags |= STA_PS_APSD_EOSP;
-
- ath6kl_data_tx(skb, vif->ndev);
- conn->sta_flags &= ~(STA_PS_APSD_TRIGGER);
- conn->sta_flags &= ~(STA_PS_APSD_EOSP);
- }
-
- if (is_apsdq_empty) {
- if (is_apsdq_empty_at_start)
- flags = WMI_AP_APSD_NO_DELIVERY_FRAMES;
- else
- flags = 0;
-
- ath6kl_wmi_set_apsd_bfrd_traf(ar->wmi,
- vif->fw_vif_idx,
- conn->aid, 0, flags);
- }
-
- return;
-}
-
-void ath6kl_rx(struct htc_target *target, struct htc_packet *packet)
-{
- struct ath6kl *ar = target->dev->ar;
- struct sk_buff *skb = packet->pkt_cntxt;
- struct wmi_rx_meta_v2 *meta;
- struct wmi_data_hdr *dhdr;
- int min_hdr_len;
- u8 meta_type, dot11_hdr = 0;
- int status = packet->status;
- enum htc_endpoint_id ept = packet->endpoint;
- bool is_amsdu, prev_ps, ps_state = false;
- bool trig_state = false;
- struct ath6kl_sta *conn = NULL;
- struct sk_buff *skb1 = NULL;
- struct ethhdr *datap = NULL;
- struct ath6kl_vif *vif;
- struct aggr_info_conn *aggr_conn;
- u16 seq_no, offset;
- u8 tid, if_idx;
-
- ath6kl_dbg(ATH6KL_DBG_WLAN_RX,
- "%s: ar=0x%p eid=%d, skb=0x%p, data=0x%p, len=0x%x status:%d",
- __func__, ar, ept, skb, packet->buf,
- packet->act_len, status);
-
- if (status || !(skb->data + HTC_HDR_LENGTH)) {
- dev_kfree_skb(skb);
- return;
- }
-
- skb_put(skb, packet->act_len + HTC_HDR_LENGTH);
- skb_pull(skb, HTC_HDR_LENGTH);
-
- if (ept == ar->ctrl_ep) {
- if_idx =
- wmi_cmd_hdr_get_if_idx((struct wmi_cmd_hdr *) skb->data);
- } else {
- if_idx =
- wmi_data_hdr_get_if_idx((struct wmi_data_hdr *) skb->data);
- }
-
- vif = ath6kl_get_vif_by_index(ar, if_idx);
- if (!vif) {
- dev_kfree_skb(skb);
- return;
- }
-
- /*
- * Take lock to protect buffer counts and adaptive power throughput
- * state.
- */
- spin_lock_bh(&vif->if_lock);
-
- vif->net_stats.rx_packets++;
- vif->net_stats.rx_bytes += packet->act_len;
-
- spin_unlock_bh(&vif->if_lock);
-
-
- //ath6kl_dbg_dump(ATH6KL_DBG_RAW_BYTES, __func__, "rx ",
- // skb->data, skb->len);
-
- skb->dev = vif->ndev;
-
- if (!test_bit(WMI_ENABLED, &ar->flag)) {
- if (EPPING_ALIGNMENT_PAD > 0)
- skb_pull(skb, EPPING_ALIGNMENT_PAD);
- ath6kl_deliver_frames_to_nw_stack(vif->ndev, skb);
- return;
- }
-
- if (ept == ar->ctrl_ep) {
- ath6kl_check_wow_status(ar, skb, true);
- ath6kl_wmi_control_rx(ar->wmi, skb);
- return;
- }
-
- min_hdr_len = sizeof(struct ethhdr) + sizeof(struct wmi_data_hdr) +
- sizeof(struct ath6kl_llc_snap_hdr);
-
- dhdr = (struct wmi_data_hdr *) skb->data;
-
- ath6kl_check_wow_status(ar, skb, false);
-
- /*
- * In the case of AP mode we may receive NULL data frames
- * that do not have LLC hdr. They are 16 bytes in size.
- * Allow these frames in the AP mode.
- */
- if (vif->nw_type != AP_NETWORK &&
- ((packet->act_len < min_hdr_len) ||
- (packet->act_len > WMI_MAX_AMSDU_RX_DATA_FRAME_LENGTH))) {
- ath6kl_info("frame len is too short or too long\n");
- vif->net_stats.rx_errors++;
- vif->net_stats.rx_length_errors++;
- dev_kfree_skb(skb);
- return;
- }
-
- /* Get the Power save state of the STA */
- if (vif->nw_type == AP_NETWORK) {
- meta_type = wmi_data_hdr_get_meta(dhdr);
-
- ps_state = !!((dhdr->info >> WMI_DATA_HDR_PS_SHIFT) &
- WMI_DATA_HDR_PS_MASK);
-
- offset = sizeof(struct wmi_data_hdr);
- trig_state = !!(le16_to_cpu(dhdr->info3) & WMI_DATA_HDR_TRIG);
-
- switch (meta_type) {
- case 0:
- break;
- case WMI_META_VERSION_1:
- offset += sizeof(struct wmi_rx_meta_v1);
- break;
- case WMI_META_VERSION_2:
- offset += sizeof(struct wmi_rx_meta_v2);
- break;
- default:
- break;
- }
-
- datap = (struct ethhdr *) (skb->data + offset);
- conn = ath6kl_find_sta(vif, datap->h_source);
-
- if (!conn) {
- dev_kfree_skb(skb);
- return;
- }
-
- /*
- * If there is a change in PS state of the STA,
- * take appropriate steps:
- *
- * 1. If Sleep-->Awake, flush the psq for the STA
- * Clear the PVB for the STA.
- * 2. If Awake-->Sleep, Starting queueing frames
- * the STA.
- */
- prev_ps = !!(conn->sta_flags & STA_PS_SLEEP);
-
- if (ps_state)
- conn->sta_flags |= STA_PS_SLEEP;
- else
- conn->sta_flags &= ~STA_PS_SLEEP;
-
- /* Accept trigger only when the station is in sleep */
- if ((conn->sta_flags & STA_PS_SLEEP) && trig_state)
- ath6kl_uapsd_trigger_frame_rx(vif, conn);
-
- if (prev_ps ^ !!(conn->sta_flags & STA_PS_SLEEP)) {
- if (!(conn->sta_flags & STA_PS_SLEEP)) {
- struct sk_buff *skbuff = NULL;
- bool is_apsdq_empty;
- struct ath6kl_mgmt_buff *mgmt;
- u8 idx;
-
- spin_lock_bh(&conn->psq_lock);
- while (conn->mgmt_psq_len > 0) {
- mgmt = list_first_entry(
- &conn->mgmt_psq,
- struct ath6kl_mgmt_buff,
- list);
- list_del(&mgmt->list);
- conn->mgmt_psq_len--;
- spin_unlock_bh(&conn->psq_lock);
- idx = vif->fw_vif_idx;
-
- ath6kl_wmi_send_mgmt_cmd(ar->wmi,
- idx,
- mgmt->id,
- mgmt->freq,
- mgmt->wait,
- mgmt->buf,
- mgmt->len,
- mgmt->no_cck);
-
- kfree(mgmt);
- spin_lock_bh(&conn->psq_lock);
- }
- conn->mgmt_psq_len = 0;
- while ((skbuff = skb_dequeue(&conn->psq))) {
- spin_unlock_bh(&conn->psq_lock);
- ath6kl_data_tx(skbuff, vif->ndev);
- spin_lock_bh(&conn->psq_lock);
- }
-
- is_apsdq_empty = skb_queue_empty(&conn->apsdq);
- while ((skbuff = skb_dequeue(&conn->apsdq))) {
- spin_unlock_bh(&conn->psq_lock);
- ath6kl_data_tx(skbuff, vif->ndev);
- spin_lock_bh(&conn->psq_lock);
- }
- spin_unlock_bh(&conn->psq_lock);
-
- if (!is_apsdq_empty)
- ath6kl_wmi_set_apsd_bfrd_traf(
- ar->wmi,
- vif->fw_vif_idx,
- conn->aid, 0, 0);
-
- /* Clear the PVB for this STA */
- ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx,
- conn->aid, 0);
- }
- }
-
- /* drop NULL data frames here */
- if ((packet->act_len < min_hdr_len) ||
- (packet->act_len >
- WMI_MAX_AMSDU_RX_DATA_FRAME_LENGTH)) {
- dev_kfree_skb(skb);
- return;
- }
- }
-
- is_amsdu = wmi_data_hdr_is_amsdu(dhdr) ? true : false;
- tid = wmi_data_hdr_get_up(dhdr);
- seq_no = wmi_data_hdr_get_seqno(dhdr);
- meta_type = wmi_data_hdr_get_meta(dhdr);
- dot11_hdr = wmi_data_hdr_get_dot11(dhdr);
- skb_pull(skb, sizeof(struct wmi_data_hdr));
-
- switch (meta_type) {
- case WMI_META_VERSION_1:
- skb_pull(skb, sizeof(struct wmi_rx_meta_v1));
- break;
- case WMI_META_VERSION_2:
- meta = (struct wmi_rx_meta_v2 *) skb->data;
- if (meta->csum_flags & 0x1) {
- skb->ip_summed = CHECKSUM_COMPLETE;
- skb->csum = (__force __wsum) meta->csum;
- }
- skb_pull(skb, sizeof(struct wmi_rx_meta_v2));
- break;
- default:
- break;
- }
-
- if (dot11_hdr)
- status = ath6kl_wmi_dot11_hdr_remove(ar->wmi, skb);
- else if (!is_amsdu)
- status = ath6kl_wmi_dot3_2_dix(skb);
-
- if (status) {
- /*
- * Drop frames that could not be processed (lack of
- * memory, etc.)
- */
- dev_kfree_skb(skb);
- return;
- }
-
- if (!(vif->ndev->flags & IFF_UP)) {
- dev_kfree_skb(skb);
- return;
- }
-
- if (vif->nw_type == AP_NETWORK) {
- datap = (struct ethhdr *) skb->data;
- if (is_multicast_ether_addr(datap->h_dest))
- /*
- * Bcast/Mcast frames should be sent to the
- * OS stack as well as on the air.
- */
- skb1 = skb_copy(skb, GFP_ATOMIC);
- else {
- /*
- * Search for a connected STA with dstMac
- * as the Mac address. If found send the
- * frame to it on the air else send the
- * frame up the stack.
- */
- conn = ath6kl_find_sta(vif, datap->h_dest);
-
- if (conn && ar->intra_bss) {
- skb1 = skb;
- skb = NULL;
- } else if (conn && !ar->intra_bss) {
- dev_kfree_skb(skb);
- skb = NULL;
- }
- }
- if (skb1)
- ath6kl_data_tx(skb1, vif->ndev);
-
- if (skb == NULL) {
- /* nothing to deliver up the stack */
- return;
- }
- }
-
- datap = (struct ethhdr *) skb->data;
-
- if (is_unicast_ether_addr(datap->h_dest)) {
- if (vif->nw_type == AP_NETWORK) {
- conn = ath6kl_find_sta(vif, datap->h_source);
- if (!conn)
- return;
- aggr_conn = conn->aggr_conn;
- } else
- aggr_conn = vif->aggr_cntxt->aggr_conn;
-
- if (aggr_process_recv_frm(aggr_conn, tid, seq_no,
- is_amsdu, skb)) {
- /* aggregation code will handle the skb */
- return;
- }
- }
-
- ath6kl_deliver_frames_to_nw_stack(vif->ndev, skb);
-}
-
-static void aggr_timeout(unsigned long arg)
-{
- u8 i, j;
- struct aggr_info_conn *aggr_conn = (struct aggr_info_conn *) arg;
- struct rxtid *rxtid;
- struct rxtid_stats *stats;
-
- for (i = 0; i < NUM_OF_TIDS; i++) {
- rxtid = &aggr_conn->rx_tid[i];
- stats = &aggr_conn->stat[i];
-
- if (!rxtid->aggr || !rxtid->timer_mon || rxtid->progress)
- continue;
-
- stats->num_timeouts++;
- ath6kl_dbg(ATH6KL_DBG_AGGR,
- "aggr timeout (st %d end %d)\n",
- rxtid->seq_next,
- ((rxtid->seq_next + rxtid->hold_q_sz-1) &
- ATH6KL_MAX_SEQ_NO));
- aggr_deque_frms(aggr_conn, i, 0, 0);
- }
-
- aggr_conn->timer_scheduled = false;
-
- for (i = 0; i < NUM_OF_TIDS; i++) {
- rxtid = &aggr_conn->rx_tid[i];
-
- if (rxtid->aggr && rxtid->hold_q) {
- for (j = 0; j < rxtid->hold_q_sz; j++) {
- if (rxtid->hold_q[j].skb) {
- aggr_conn->timer_scheduled = true;
- rxtid->timer_mon = true;
- rxtid->progress = false;
- break;
- }
- }
-
- if (j >= rxtid->hold_q_sz)
- rxtid->timer_mon = false;
- }
- }
-
- if (aggr_conn->timer_scheduled)
- mod_timer(&aggr_conn->timer,
- jiffies + msecs_to_jiffies(AGGR_RX_TIMEOUT));
-}
-
-static void aggr_delete_tid_state(struct aggr_info_conn *aggr_conn, u8 tid)
-{
- struct rxtid *rxtid;
- struct rxtid_stats *stats;
-
- if (!aggr_conn || tid >= NUM_OF_TIDS)
- return;
-
- rxtid = &aggr_conn->rx_tid[tid];
- stats = &aggr_conn->stat[tid];
-
- if (rxtid->aggr)
- aggr_deque_frms(aggr_conn, tid, 0, 0);
-
- rxtid->aggr = false;
- rxtid->progress = false;
- rxtid->timer_mon = false;
- rxtid->win_sz = 0;
- rxtid->seq_next = 0;
- rxtid->hold_q_sz = 0;
-
- kfree(rxtid->hold_q);
- rxtid->hold_q = NULL;
-
- memset(stats, 0, sizeof(struct rxtid_stats));
-}
-
-void aggr_recv_addba_req_evt(struct ath6kl_vif *vif, u8 tid_mux, u16 seq_no,
- u8 win_sz)
-{
- struct ath6kl_sta *sta;
- struct aggr_info_conn *aggr_conn = NULL;
- struct rxtid *rxtid;
- struct rxtid_stats *stats;
- u16 hold_q_size;
- u8 tid, aid;
-
- if (vif->nw_type == AP_NETWORK) {
- aid = ath6kl_get_aid(tid_mux);
- sta = ath6kl_find_sta_by_aid(vif->ar, aid);
- if (sta)
- aggr_conn = sta->aggr_conn;
- } else
- aggr_conn = vif->aggr_cntxt->aggr_conn;
-
- if (!aggr_conn)
- return;
-
- tid = ath6kl_get_tid(tid_mux);
- if (tid >= NUM_OF_TIDS)
- return;
-
- rxtid = &aggr_conn->rx_tid[tid];
- stats = &aggr_conn->stat[tid];
-
- if (win_sz < AGGR_WIN_SZ_MIN || win_sz > AGGR_WIN_SZ_MAX)
- ath6kl_dbg(ATH6KL_DBG_WLAN_RX, "%s: win_sz %d, tid %d\n",
- __func__, win_sz, tid);
-
- if (rxtid->aggr)
- aggr_delete_tid_state(aggr_conn, tid);
-
- rxtid->seq_next = seq_no;
- hold_q_size = TID_WINDOW_SZ(win_sz) * sizeof(struct skb_hold_q);
- rxtid->hold_q = kzalloc(hold_q_size, GFP_KERNEL);
- if (!rxtid->hold_q)
- return;
-
- rxtid->win_sz = win_sz;
- rxtid->hold_q_sz = TID_WINDOW_SZ(win_sz);
- if (!skb_queue_empty(&rxtid->q))
- return;
-
- rxtid->aggr = true;
-}
-
-void aggr_conn_init(struct ath6kl_vif *vif, struct aggr_info *aggr_info,
- struct aggr_info_conn *aggr_conn)
-{
- struct rxtid *rxtid;
- u8 i;
-
- aggr_conn->aggr_sz = AGGR_SZ_DEFAULT;
- aggr_conn->dev = vif->ndev;
- init_timer(&aggr_conn->timer);
- aggr_conn->timer.function = aggr_timeout;
- aggr_conn->timer.data = (unsigned long) aggr_conn;
- aggr_conn->aggr_info = aggr_info;
-
- aggr_conn->timer_scheduled = false;
-
- for (i = 0; i < NUM_OF_TIDS; i++) {
- rxtid = &aggr_conn->rx_tid[i];
- rxtid->aggr = false;
- rxtid->progress = false;
- rxtid->timer_mon = false;
- skb_queue_head_init(&rxtid->q);
- spin_lock_init(&rxtid->lock);
- }
-
-}
-
-struct aggr_info *aggr_init(struct ath6kl_vif *vif)
-{
- struct aggr_info *p_aggr = NULL;
-
- p_aggr = kzalloc(sizeof(struct aggr_info), GFP_KERNEL);
- if (!p_aggr) {
- ath6kl_err("failed to alloc memory for aggr_node\n");
- return NULL;
- }
-
- p_aggr->aggr_conn = kzalloc(sizeof(struct aggr_info_conn), GFP_KERNEL);
- if (!p_aggr->aggr_conn) {
- ath6kl_err("failed to alloc memory for connection specific aggr info\n");
- kfree(p_aggr);
- return NULL;
- }
-
- aggr_conn_init(vif, p_aggr, p_aggr->aggr_conn);
-
- skb_queue_head_init(&p_aggr->rx_amsdu_freeq);
- ath6kl_alloc_netbufs(&p_aggr->rx_amsdu_freeq, AGGR_NUM_OF_FREE_NETBUFS);
-
- return p_aggr;
-}
-
-void aggr_recv_delba_req_evt(struct ath6kl_vif *vif, u8 tid_mux)
-{
- struct ath6kl_sta *sta;
- struct rxtid *rxtid;
- struct aggr_info_conn *aggr_conn = NULL;
- u8 tid, aid;
-
- if (vif->nw_type == AP_NETWORK) {
- aid = ath6kl_get_aid(tid_mux);
- sta = ath6kl_find_sta_by_aid(vif->ar, aid);
- if (sta)
- aggr_conn = sta->aggr_conn;
- } else
- aggr_conn = vif->aggr_cntxt->aggr_conn;
-
- if (!aggr_conn)
- return;
-
- tid = ath6kl_get_tid(tid_mux);
- if (tid >= NUM_OF_TIDS)
- return;
-
- rxtid = &aggr_conn->rx_tid[tid];
-
- if (rxtid->aggr)
- aggr_delete_tid_state(aggr_conn, tid);
-}
-
-void aggr_reset_state(struct aggr_info_conn *aggr_conn)
-{
- u8 tid;
-
- if (!aggr_conn)
- return;
-
- if (aggr_conn->timer_scheduled) {
- del_timer(&aggr_conn->timer);
- aggr_conn->timer_scheduled = false;
- }
-
- for (tid = 0; tid < NUM_OF_TIDS; tid++)
- aggr_delete_tid_state(aggr_conn, tid);
-}
-
-/* clean up our amsdu buffer list */
-void ath6kl_cleanup_amsdu_rxbufs(struct ath6kl *ar)
-{
- struct htc_packet *packet, *tmp_pkt;
-
- spin_lock_bh(&ar->lock);
- if (list_empty(&ar->amsdu_rx_buffer_queue)) {
- spin_unlock_bh(&ar->lock);
- return;
- }
-
- list_for_each_entry_safe(packet, tmp_pkt, &ar->amsdu_rx_buffer_queue,
- list) {
- list_del(&packet->list);
- spin_unlock_bh(&ar->lock);
- dev_kfree_skb(packet->pkt_cntxt);
- spin_lock_bh(&ar->lock);
- }
-
- spin_unlock_bh(&ar->lock);
-}
-
-void aggr_module_destroy(struct aggr_info *aggr_info)
-{
- if (!aggr_info)
- return;
-
- aggr_reset_state(aggr_info->aggr_conn);
- skb_queue_purge(&aggr_info->rx_amsdu_freeq);
- kfree(aggr_info->aggr_conn);
- kfree(aggr_info);
-}
diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
deleted file mode 100755
index daf5122..0000000
--- a/drivers/net/wireless/ath/ath6kl/usb.c
+++ /dev/null
@@ -1,433 +0,0 @@
-/*
- * Copyright (c) 2007-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <linux/module.h>
-#include <linux/usb.h>
-
-#include "debug.h"
-#include "core.h"
-
-/* usb device object */
-struct ath6kl_usb {
- struct usb_device *udev;
- struct usb_interface *interface;
- u8 *diag_cmd_buffer;
- u8 *diag_resp_buffer;
- struct ath6kl *ar;
-};
-
-/* diagnostic command defnitions */
-#define ATH6KL_USB_CONTROL_REQ_SEND_BMI_CMD 1
-#define ATH6KL_USB_CONTROL_REQ_RECV_BMI_RESP 2
-#define ATH6KL_USB_CONTROL_REQ_DIAG_CMD 3
-#define ATH6KL_USB_CONTROL_REQ_DIAG_RESP 4
-
-#define ATH6KL_USB_CTRL_DIAG_CC_READ 0
-#define ATH6KL_USB_CTRL_DIAG_CC_WRITE 1
-
-struct ath6kl_usb_ctrl_diag_cmd_write {
- __le32 cmd;
- __le32 address;
- __le32 value;
- __le32 _pad[1];
-} __packed;
-
-struct ath6kl_usb_ctrl_diag_cmd_read {
- __le32 cmd;
- __le32 address;
-} __packed;
-
-struct ath6kl_usb_ctrl_diag_resp_read {
- __le32 value;
-} __packed;
-
-#define ATH6KL_USB_MAX_DIAG_CMD (sizeof(struct ath6kl_usb_ctrl_diag_cmd_write))
-#define ATH6KL_USB_MAX_DIAG_RESP (sizeof(struct ath6kl_usb_ctrl_diag_resp_read))
-
-static void ath6kl_usb_destroy(struct ath6kl_usb *ar_usb)
-{
- usb_set_intfdata(ar_usb->interface, NULL);
-
- kfree(ar_usb->diag_cmd_buffer);
- kfree(ar_usb->diag_resp_buffer);
-
- kfree(ar_usb);
-}
-
-static struct ath6kl_usb *ath6kl_usb_create(struct usb_interface *interface)
-{
- struct ath6kl_usb *ar_usb = NULL;
- struct usb_device *dev = interface_to_usbdev(interface);
- int status = 0;
-
- ar_usb = kzalloc(sizeof(struct ath6kl_usb), GFP_KERNEL);
- if (ar_usb == NULL)
- goto fail_ath6kl_usb_create;
-
- memset(ar_usb, 0, sizeof(struct ath6kl_usb));
- usb_set_intfdata(interface, ar_usb);
- ar_usb->udev = dev;
- ar_usb->interface = interface;
-
- ar_usb->diag_cmd_buffer = kzalloc(ATH6KL_USB_MAX_DIAG_CMD, GFP_KERNEL);
- if (ar_usb->diag_cmd_buffer == NULL) {
- status = -ENOMEM;
- goto fail_ath6kl_usb_create;
- }
-
- ar_usb->diag_resp_buffer = kzalloc(ATH6KL_USB_MAX_DIAG_RESP,
- GFP_KERNEL);
- if (ar_usb->diag_resp_buffer == NULL) {
- status = -ENOMEM;
- goto fail_ath6kl_usb_create;
- }
-
-fail_ath6kl_usb_create:
- if (status != 0) {
- ath6kl_usb_destroy(ar_usb);
- ar_usb = NULL;
- }
- return ar_usb;
-}
-
-static void ath6kl_usb_device_detached(struct usb_interface *interface)
-{
- struct ath6kl_usb *ar_usb;
-
- ar_usb = usb_get_intfdata(interface);
- if (ar_usb == NULL)
- return;
-
- ath6kl_stop_txrx(ar_usb->ar);
-
- ath6kl_core_cleanup(ar_usb->ar);
-
- ath6kl_usb_destroy(ar_usb);
-}
-
-static int ath6kl_usb_submit_ctrl_out(struct ath6kl_usb *ar_usb,
- u8 req, u16 value, u16 index, void *data,
- u32 size)
-{
- u8 *buf = NULL;
- int ret;
-
- if (size > 0) {
- buf = kmalloc(size, GFP_KERNEL);
- if (buf == NULL)
- return -ENOMEM;
-
- memcpy(buf, data, size);
- }
-
- /* note: if successful returns number of bytes transfered */
- ret = usb_control_msg(ar_usb->udev,
- usb_sndctrlpipe(ar_usb->udev, 0),
- req,
- USB_DIR_OUT | USB_TYPE_VENDOR |
- USB_RECIP_DEVICE, value, index, buf,
- size, 1000);
-
- if (ret < 0) {
- ath6kl_dbg(ATH6KL_DBG_USB, "%s failed,result = %d\n",
- __func__, ret);
- }
-
- kfree(buf);
-
- return 0;
-}
-
-static int ath6kl_usb_submit_ctrl_in(struct ath6kl_usb *ar_usb,
- u8 req, u16 value, u16 index, void *data,
- u32 size)
-{
- u8 *buf = NULL;
- int ret;
-
- if (size > 0) {
- buf = kmalloc(size, GFP_KERNEL);
- if (buf == NULL)
- return -ENOMEM;
- }
-
- /* note: if successful returns number of bytes transfered */
- ret = usb_control_msg(ar_usb->udev,
- usb_rcvctrlpipe(ar_usb->udev, 0),
- req,
- USB_DIR_IN | USB_TYPE_VENDOR |
- USB_RECIP_DEVICE, value, index, buf,
- size, 2 * HZ);
-
- if (ret < 0) {
- ath6kl_dbg(ATH6KL_DBG_USB, "%s failed,result = %d\n",
- __func__, ret);
- }
-
- memcpy((u8 *) data, buf, size);
-
- kfree(buf);
-
- return 0;
-}
-
-static int ath6kl_usb_ctrl_msg_exchange(struct ath6kl_usb *ar_usb,
- u8 req_val, u8 *req_buf, u32 req_len,
- u8 resp_val, u8 *resp_buf, u32 *resp_len)
-{
- int ret;
-
- /* send command */
- ret = ath6kl_usb_submit_ctrl_out(ar_usb, req_val, 0, 0,
- req_buf, req_len);
-
- if (ret != 0)
- return ret;
-
- if (resp_buf == NULL) {
- /* no expected response */
- return ret;
- }
-
- /* get response */
- ret = ath6kl_usb_submit_ctrl_in(ar_usb, resp_val, 0, 0,
- resp_buf, *resp_len);
-
- return ret;
-}
-
-static int ath6kl_usb_diag_read32(struct ath6kl *ar, u32 address, u32 *data)
-{
- struct ath6kl_usb *ar_usb = ar->hif_priv;
- struct ath6kl_usb_ctrl_diag_resp_read *resp;
- struct ath6kl_usb_ctrl_diag_cmd_read *cmd;
- u32 resp_len;
- int ret;
-
- cmd = (struct ath6kl_usb_ctrl_diag_cmd_read *) ar_usb->diag_cmd_buffer;
-
- memset(cmd, 0, sizeof(*cmd));
- cmd->cmd = ATH6KL_USB_CTRL_DIAG_CC_READ;
- cmd->address = cpu_to_le32(address);
- resp_len = sizeof(*resp);
-
- ret = ath6kl_usb_ctrl_msg_exchange(ar_usb,
- ATH6KL_USB_CONTROL_REQ_DIAG_CMD,
- (u8 *) cmd,
- sizeof(struct ath6kl_usb_ctrl_diag_cmd_write),
- ATH6KL_USB_CONTROL_REQ_DIAG_RESP,
- ar_usb->diag_resp_buffer, &resp_len);
-
- if (ret)
- return ret;
-
- resp = (struct ath6kl_usb_ctrl_diag_resp_read *)
- ar_usb->diag_resp_buffer;
-
- *data = le32_to_cpu(resp->value);
-
- return ret;
-}
-
-static int ath6kl_usb_diag_write32(struct ath6kl *ar, u32 address, __le32 data)
-{
- struct ath6kl_usb *ar_usb = ar->hif_priv;
- struct ath6kl_usb_ctrl_diag_cmd_write *cmd;
-
- cmd = (struct ath6kl_usb_ctrl_diag_cmd_write *) ar_usb->diag_cmd_buffer;
-
- memset(cmd, 0, sizeof(struct ath6kl_usb_ctrl_diag_cmd_write));
- cmd->cmd = cpu_to_le32(ATH6KL_USB_CTRL_DIAG_CC_WRITE);
- cmd->address = cpu_to_le32(address);
- cmd->value = data;
-
- return ath6kl_usb_ctrl_msg_exchange(ar_usb,
- ATH6KL_USB_CONTROL_REQ_DIAG_CMD,
- (u8 *) cmd,
- sizeof(*cmd),
- 0, NULL, NULL);
-
-}
-
-static int ath6kl_usb_bmi_read(struct ath6kl *ar, u8 *buf, u32 len)
-{
- struct ath6kl_usb *ar_usb = ar->hif_priv;
- int ret;
-
- /* get response */
- ret = ath6kl_usb_submit_ctrl_in(ar_usb,
- ATH6KL_USB_CONTROL_REQ_RECV_BMI_RESP,
- 0, 0, buf, len);
- if (ret != 0) {
- ath6kl_err("Unable to read the bmi data from the device: %d\n",
- ret);
- return ret;
- }
-
- return 0;
-}
-
-static int ath6kl_usb_bmi_write(struct ath6kl *ar, u8 *buf, u32 len)
-{
- struct ath6kl_usb *ar_usb = ar->hif_priv;
- int ret;
-
- /* send command */
- ret = ath6kl_usb_submit_ctrl_out(ar_usb,
- ATH6KL_USB_CONTROL_REQ_SEND_BMI_CMD,
- 0, 0, buf, len);
- if (ret != 0) {
- ath6kl_err("unable to send the bmi data to the device: %d\n",
- ret);
- return ret;
- }
-
- return 0;
-}
-
-static int ath6kl_usb_power_on(struct ath6kl *ar)
-{
- return 0;
-}
-
-static int ath6kl_usb_power_off(struct ath6kl *ar)
-{
- return 0;
-}
-
-static const struct ath6kl_hif_ops ath6kl_usb_ops = {
- .diag_read32 = ath6kl_usb_diag_read32,
- .diag_write32 = ath6kl_usb_diag_write32,
- .bmi_read = ath6kl_usb_bmi_read,
- .bmi_write = ath6kl_usb_bmi_write,
- .power_on = ath6kl_usb_power_on,
- .power_off = ath6kl_usb_power_off,
-};
-
-/* ath6kl usb driver registered functions */
-static int ath6kl_usb_probe(struct usb_interface *interface,
- const struct usb_device_id *id)
-{
- struct usb_device *dev = interface_to_usbdev(interface);
- struct ath6kl *ar;
- struct ath6kl_usb *ar_usb = NULL;
- int vendor_id, product_id;
- int ret = 0;
-
- usb_get_dev(dev);
-
- vendor_id = le16_to_cpu(dev->descriptor.idVendor);
- product_id = le16_to_cpu(dev->descriptor.idProduct);
-
- ath6kl_dbg(ATH6KL_DBG_USB, "vendor_id = %04x\n", vendor_id);
- ath6kl_dbg(ATH6KL_DBG_USB, "product_id = %04x\n", product_id);
-
- if (interface->cur_altsetting)
- ath6kl_dbg(ATH6KL_DBG_USB, "USB Interface %d\n",
- interface->cur_altsetting->desc.bInterfaceNumber);
-
-
- if (dev->speed == USB_SPEED_HIGH)
- ath6kl_dbg(ATH6KL_DBG_USB, "USB 2.0 Host\n");
- else
- ath6kl_dbg(ATH6KL_DBG_USB, "USB 1.1 Host\n");
-
- ar_usb = ath6kl_usb_create(interface);
-
- if (ar_usb == NULL) {
- ret = -ENOMEM;
- goto err_usb_put;
- }
-
- ar = ath6kl_core_alloc(&ar_usb->udev->dev);
- if (ar == NULL) {
- ath6kl_err("Failed to alloc ath6kl core\n");
- ret = -ENOMEM;
- goto err_usb_destroy;
- }
-
- ar->hif_priv = ar_usb;
- ar->hif_type = ATH6KL_HIF_TYPE_USB;
- ar->hif_ops = &ath6kl_usb_ops;
- ar->mbox_info.block_size = 16;
- ar->bmi.max_data_size = 252;
-
- ar_usb->ar = ar;
-
- ret = ath6kl_core_init(ar);
- if (ret) {
- ath6kl_err("Failed to init ath6kl core: %d\n", ret);
- goto err_core_free;
- }
-
- return ret;
-
-err_core_free:
- ath6kl_core_free(ar);
-err_usb_destroy:
- ath6kl_usb_destroy(ar_usb);
-err_usb_put:
- usb_put_dev(dev);
-
- return ret;
-}
-
-static void ath6kl_usb_remove(struct usb_interface *interface)
-{
- usb_put_dev(interface_to_usbdev(interface));
- ath6kl_usb_device_detached(interface);
-}
-
-/* table of devices that work with this driver */
-static struct usb_device_id ath6kl_usb_ids[] = {
- {USB_DEVICE(0x0cf3, 0x9374)},
- { /* Terminating entry */ },
-};
-
-MODULE_DEVICE_TABLE(usb, ath6kl_usb_ids);
-
-static struct usb_driver ath6kl_usb_driver = {
- .name = "ath6kl_usb",
- .probe = ath6kl_usb_probe,
- .disconnect = ath6kl_usb_remove,
- .id_table = ath6kl_usb_ids,
-};
-
-static int ath6kl_usb_init(void)
-{
- usb_register(&ath6kl_usb_driver);
- return 0;
-}
-
-static void ath6kl_usb_exit(void)
-{
- usb_deregister(&ath6kl_usb_driver);
-}
-
-module_init(ath6kl_usb_init);
-module_exit(ath6kl_usb_exit);
-
-MODULE_AUTHOR("Atheros Communications, Inc.");
-MODULE_DESCRIPTION("Driver support for Atheros AR600x USB devices");
-MODULE_LICENSE("Dual BSD/GPL");
-
-MODULE_FIRMWARE(AR6004_HW_1_0_FW_DIR "/" AR6004_HW_1_0_FIRMWARE_FILE);
-MODULE_FIRMWARE(AR6004_HW_1_0_BOARD_DATA_FILE);
-MODULE_FIRMWARE(AR6004_HW_1_0_DEFAULT_BOARD_DATA_FILE);
-MODULE_FIRMWARE(AR6004_HW_1_1_FW_DIR "/" AR6004_HW_1_1_FIRMWARE_FILE);
-MODULE_FIRMWARE(AR6004_HW_1_1_BOARD_DATA_FILE);
-MODULE_FIRMWARE(AR6004_HW_1_1_DEFAULT_BOARD_DATA_FILE);
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.c b/drivers/net/wireless/ath/ath6kl/wmi.c
deleted file mode 100755
index f7afb1d..0000000
--- a/drivers/net/wireless/ath/ath6kl/wmi.c
+++ /dev/null
@@ -1,3947 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <linux/ip.h>
-#include "core.h"
-#include "debug.h"
-#include "testmode.h"
-#include "../regd.h"
-#include "../regd_common.h"
-#include "btc.h"
-#include "debugfs_pri.h"
-
-static int ath6kl_wmi_sync_point(struct wmi *wmi, u8 if_idx);
-
-static const s32 wmi_rate_tbl[][2] = {
- /* {W/O SGI, with SGI} */
- {1000, 1000},
- {2000, 2000},
- {5500, 5500},
- {11000, 11000},
- {6000, 6000},
- {9000, 9000},
- {12000, 12000},
- {18000, 18000},
- {24000, 24000},
- {36000, 36000},
- {48000, 48000},
- {54000, 54000},
- {6500, 7200},
- {13000, 14400},
- {19500, 21700},
- {26000, 28900},
- {39000, 43300},
- {52000, 57800},
- {58500, 65000},
- {65000, 72200},
- {13500, 15000},
- {27000, 30000},
- {40500, 45000},
- {54000, 60000},
- {81000, 90000},
- {108000, 120000},
- {121500, 135000},
- {135000, 150000},
- {0, 0}
-};
-
-/* 802.1d to AC mapping. Refer pg 57 of WMM-test-plan-v1.2 */
-static const u8 up_to_ac[] = {
- WMM_AC_BE,
- WMM_AC_BK,
- WMM_AC_BK,
- WMM_AC_BE,
- WMM_AC_VI,
- WMM_AC_VI,
- WMM_AC_VO,
- WMM_AC_VO,
-};
-
-void ath6kl_wmi_set_control_ep(struct wmi *wmi, enum htc_endpoint_id ep_id)
-{
- if (WARN_ON(ep_id == ENDPOINT_UNUSED || ep_id >= ENDPOINT_MAX))
- return;
-
- wmi->ep_id = ep_id;
-}
-
-enum htc_endpoint_id ath6kl_wmi_get_control_ep(struct wmi *wmi)
-{
- return wmi->ep_id;
-}
-
-struct ath6kl_vif *ath6kl_get_vif_by_index(struct ath6kl *ar, u8 if_idx)
-{
- struct ath6kl_vif *vif, *found = NULL;
-
- if (WARN_ON(if_idx > (ar->vif_max - 1)))
- return NULL;
-
- /* FIXME: Locking */
- spin_lock_bh(&ar->list_lock);
- list_for_each_entry(vif, &ar->vif_list, list) {
- if (vif->fw_vif_idx == if_idx) {
- found = vif;
- break;
- }
- }
- spin_unlock_bh(&ar->list_lock);
-
- return found;
-}
-
-/* Performs DIX to 802.3 encapsulation for transmit packets.
- * Assumes the entire DIX header is contigous and that there is
- * enough room in the buffer for a 802.3 mac header and LLC+SNAP headers.
- */
-int ath6kl_wmi_dix_2_dot3(struct wmi *wmi, struct sk_buff *skb)
-{
- struct ath6kl_llc_snap_hdr *llc_hdr;
- struct ethhdr *eth_hdr;
- size_t new_len;
- __be16 type;
- u8 *datap;
- u16 size;
-
- if (WARN_ON(skb == NULL))
- return -EINVAL;
-
- size = sizeof(struct ath6kl_llc_snap_hdr) + sizeof(struct wmi_data_hdr);
- if (skb_headroom(skb) < size)
- return -ENOMEM;
-
- eth_hdr = (struct ethhdr *) skb->data;
- type = eth_hdr->h_proto;
-
- if (!is_ethertype(be16_to_cpu(type))) {
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "%s: pkt is already in 802.3 format\n", __func__);
- return 0;
- }
-
- new_len = skb->len - sizeof(*eth_hdr) + sizeof(*llc_hdr);
-
- skb_push(skb, sizeof(struct ath6kl_llc_snap_hdr));
- datap = skb->data;
-
- eth_hdr->h_proto = cpu_to_be16(new_len);
-
- memcpy(datap, eth_hdr, sizeof(*eth_hdr));
-
- llc_hdr = (struct ath6kl_llc_snap_hdr *)(datap + sizeof(*eth_hdr));
- llc_hdr->dsap = 0xAA;
- llc_hdr->ssap = 0xAA;
- llc_hdr->cntl = 0x03;
- llc_hdr->org_code[0] = 0x0;
- llc_hdr->org_code[1] = 0x0;
- llc_hdr->org_code[2] = 0x0;
- llc_hdr->eth_type = type;
-
- return 0;
-}
-
-static int ath6kl_wmi_meta_add(struct wmi *wmi, struct sk_buff *skb,
- u8 *version, void *tx_meta_info)
-{
- struct wmi_tx_meta_v1 *v1;
- struct wmi_tx_meta_v2 *v2;
-
- if (WARN_ON(skb == NULL || version == NULL))
- return -EINVAL;
-
- switch (*version) {
- case WMI_META_VERSION_1:
- skb_push(skb, WMI_MAX_TX_META_SZ);
- v1 = (struct wmi_tx_meta_v1 *) skb->data;
- v1->pkt_id = 0;
- v1->rate_plcy_id = 0;
- *version = WMI_META_VERSION_1;
- break;
- case WMI_META_VERSION_2:
- skb_push(skb, WMI_MAX_TX_META_SZ);
- v2 = (struct wmi_tx_meta_v2 *) skb->data;
- memcpy(v2, (struct wmi_tx_meta_v2 *) tx_meta_info,
- sizeof(struct wmi_tx_meta_v2));
- break;
- }
-
- return 0;
-}
-
-int ath6kl_wmi_data_hdr_add(struct wmi *wmi, struct sk_buff *skb,
- u8 msg_type, u32 flags,
- enum wmi_data_hdr_data_type data_type,
- u8 meta_ver, void *tx_meta_info, u8 if_idx)
-{
- struct wmi_data_hdr *data_hdr;
- int ret;
-
- if (WARN_ON(skb == NULL || (if_idx > wmi->parent_dev->vif_max - 1)))
- return -EINVAL;
-
- if (tx_meta_info) {
- ret = ath6kl_wmi_meta_add(wmi, skb, &meta_ver, tx_meta_info);
- if (ret)
- return ret;
- }
-
- skb_push(skb, sizeof(struct wmi_data_hdr));
-
- data_hdr = (struct wmi_data_hdr *)skb->data;
- memset(data_hdr, 0, sizeof(struct wmi_data_hdr));
-
- data_hdr->info = msg_type << WMI_DATA_HDR_MSG_TYPE_SHIFT;
- data_hdr->info |= data_type << WMI_DATA_HDR_DATA_TYPE_SHIFT;
-
- if (flags & WMI_DATA_HDR_FLAGS_MORE)
- data_hdr->info |= WMI_DATA_HDR_MORE;
-
- if (flags & WMI_DATA_HDR_FLAGS_EOSP)
- data_hdr->info3 |= cpu_to_le16(WMI_DATA_HDR_EOSP);
-
- data_hdr->info2 |= cpu_to_le16(meta_ver << WMI_DATA_HDR_META_SHIFT);
- data_hdr->info3 |= cpu_to_le16(if_idx & WMI_DATA_HDR_IF_IDX_MASK);
-
- return 0;
-}
-
-u8 ath6kl_wmi_determine_user_priority(u8 *pkt, u32 layer2_pri)
-{
- struct iphdr *ip_hdr = (struct iphdr *) pkt;
- u8 ip_pri;
-
- /*
- * Determine IPTOS priority
- *
- * IP-TOS - 8bits
- * : DSCP(6-bits) ECN(2-bits)
- * : DSCP - P2 P1 P0 X X X
- * where (P2 P1 P0) form 802.1D
- */
- ip_pri = ip_hdr->tos >> 5;
- ip_pri &= 0x7;
-
- if ((layer2_pri & 0x7) > ip_pri)
- return (u8) layer2_pri & 0x7;
- else
- return ip_pri;
-}
-
-u8 ath6kl_wmi_get_traffic_class(u8 user_priority)
-{
- return up_to_ac[user_priority & 0x7];
-}
-
-int ath6kl_wmi_implicit_create_pstream(struct wmi *wmi, u8 if_idx,
- struct sk_buff *skb,
- u32 layer2_priority, bool wmm_enabled,
- u8 *ac)
-{
- struct wmi_data_hdr *data_hdr;
- struct ath6kl_llc_snap_hdr *llc_hdr;
- struct wmi_create_pstream_cmd cmd;
- u32 meta_size, hdr_size;
- u16 ip_type = IP_ETHERTYPE;
- u8 stream_exist, usr_pri;
- u8 traffic_class = WMM_AC_BE;
- u8 *datap;
-
- if (WARN_ON(skb == NULL))
- return -EINVAL;
-
- datap = skb->data;
- data_hdr = (struct wmi_data_hdr *) datap;
-
- meta_size = ((le16_to_cpu(data_hdr->info2) >> WMI_DATA_HDR_META_SHIFT) &
- WMI_DATA_HDR_META_MASK) ? WMI_MAX_TX_META_SZ : 0;
-
- if (!wmm_enabled) {
- /* If WMM is disabled all traffic goes as BE traffic */
- usr_pri = 0;
- } else {
- hdr_size = sizeof(struct ethhdr);
-
- llc_hdr = (struct ath6kl_llc_snap_hdr *)(datap +
- sizeof(struct
- wmi_data_hdr) +
- meta_size + hdr_size);
-
- if (llc_hdr->eth_type == htons(ip_type)) {
- /*
- * Extract the endpoint info from the TOS field
- * in the IP header.
- */
- usr_pri =
- ath6kl_wmi_determine_user_priority(((u8 *) llc_hdr) +
- sizeof(struct ath6kl_llc_snap_hdr),
- layer2_priority);
- } else
- usr_pri = layer2_priority & 0x7;
-
- /*
- * Queue the EAPOL frames in the same WMM_AC_VO queue
- * as that of management frames.
- */
- if (skb->protocol == cpu_to_be16(ETH_P_PAE))
- usr_pri = WMI_VOICE_USER_PRIORITY;
- }
-
- /*
- * workaround for WMM S5
- *
- * FIXME: wmi->traffic_class is always 100 so this test doesn't
- * make sense
- */
- if ((wmi->traffic_class == WMM_AC_VI) &&
- ((usr_pri == 5) || (usr_pri == 4)))
- usr_pri = 1;
-
- /* Convert user priority to traffic class */
- traffic_class = up_to_ac[usr_pri & 0x7];
-
- wmi_data_hdr_set_up(data_hdr, usr_pri);
-
- spin_lock_bh(&wmi->lock);
- stream_exist = wmi->fat_pipe_exist;
- spin_unlock_bh(&wmi->lock);
-
- if (!(stream_exist & (1 << traffic_class))) {
- memset(&cmd, 0, sizeof(cmd));
- cmd.traffic_class = traffic_class;
- cmd.user_pri = usr_pri;
- cmd.inactivity_int =
- cpu_to_le32(WMI_IMPLICIT_PSTREAM_INACTIVITY_INT);
- /* Implicit streams are created with TSID 0xFF */
- cmd.tsid = WMI_IMPLICIT_PSTREAM;
- ath6kl_wmi_create_pstream_cmd(wmi, if_idx, &cmd);
- }
-
- *ac = traffic_class;
-
- return 0;
-}
-
-int ath6kl_wmi_dot11_hdr_remove(struct wmi *wmi, struct sk_buff *skb)
-{
- struct ieee80211_hdr_3addr *pwh, wh;
- struct ath6kl_llc_snap_hdr *llc_hdr;
- struct ethhdr eth_hdr;
- u32 hdr_size;
- u8 *datap;
- __le16 sub_type;
-
- if (WARN_ON(skb == NULL))
- return -EINVAL;
-
- datap = skb->data;
- pwh = (struct ieee80211_hdr_3addr *) datap;
-
- sub_type = pwh->frame_control & cpu_to_le16(IEEE80211_FCTL_STYPE);
-
- memcpy((u8 *) &wh, datap, sizeof(struct ieee80211_hdr_3addr));
-
- /* Strip off the 802.11 header */
- if (sub_type == cpu_to_le16(IEEE80211_STYPE_QOS_DATA)) {
- hdr_size = roundup(sizeof(struct ieee80211_qos_hdr),
- sizeof(u32));
- skb_pull(skb, hdr_size);
- } else if (sub_type == cpu_to_le16(IEEE80211_STYPE_DATA))
- skb_pull(skb, sizeof(struct ieee80211_hdr_3addr));
-
- datap = skb->data;
- llc_hdr = (struct ath6kl_llc_snap_hdr *)(datap);
-
- memset(&eth_hdr, 0, sizeof(eth_hdr));
- eth_hdr.h_proto = llc_hdr->eth_type;
-
- switch ((le16_to_cpu(wh.frame_control)) &
- (IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS)) {
- case 0:
- memcpy(eth_hdr.h_dest, wh.addr1, ETH_ALEN);
- memcpy(eth_hdr.h_source, wh.addr2, ETH_ALEN);
- break;
- case IEEE80211_FCTL_TODS:
- memcpy(eth_hdr.h_dest, wh.addr3, ETH_ALEN);
- memcpy(eth_hdr.h_source, wh.addr2, ETH_ALEN);
- break;
- case IEEE80211_FCTL_FROMDS:
- memcpy(eth_hdr.h_dest, wh.addr1, ETH_ALEN);
- memcpy(eth_hdr.h_source, wh.addr3, ETH_ALEN);
- break;
- case IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS:
- break;
- }
-
- skb_pull(skb, sizeof(struct ath6kl_llc_snap_hdr));
- skb_push(skb, sizeof(eth_hdr));
-
- datap = skb->data;
-
- memcpy(datap, &eth_hdr, sizeof(eth_hdr));
-
- return 0;
-}
-
-/*
- * Performs 802.3 to DIX encapsulation for received packets.
- * Assumes the entire 802.3 header is contigous.
- */
-int ath6kl_wmi_dot3_2_dix(struct sk_buff *skb)
-{
- struct ath6kl_llc_snap_hdr *llc_hdr;
- struct ethhdr eth_hdr;
- u8 *datap;
-
- if (WARN_ON(skb == NULL))
- return -EINVAL;
-
- datap = skb->data;
-
- memcpy(&eth_hdr, datap, sizeof(eth_hdr));
-
- llc_hdr = (struct ath6kl_llc_snap_hdr *) (datap + sizeof(eth_hdr));
- eth_hdr.h_proto = llc_hdr->eth_type;
-
- skb_pull(skb, sizeof(struct ath6kl_llc_snap_hdr));
- datap = skb->data;
-
- memcpy(datap, &eth_hdr, sizeof(eth_hdr));
-
- return 0;
-}
-
-static int ath6kl_wmi_tx_complete_event_rx(u8 *datap, int len)
-{
- struct tx_complete_msg_v1 *msg_v1;
- struct wmi_tx_complete_event *evt;
- int index;
- u16 size;
-
- evt = (struct wmi_tx_complete_event *) datap;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "comp: %d %d %d\n",
- evt->num_msg, evt->msg_len, evt->msg_type);
-
- if (!AR_DBG_LVL_CHECK(ATH6KL_DBG_WMI))
- return 0;
-
- for (index = 0; index < evt->num_msg; index++) {
- size = sizeof(struct wmi_tx_complete_event) +
- (index * sizeof(struct tx_complete_msg_v1));
- msg_v1 = (struct tx_complete_msg_v1 *)(datap + size);
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "msg: %d %d %d %d\n",
- msg_v1->status, msg_v1->pkt_id,
- msg_v1->rate_idx, msg_v1->ack_failures);
- }
-
- return 0;
-}
-
-static int ath6kl_wmi_remain_on_chnl_event_rx(struct wmi *wmi, u8 *datap,
- int len, struct ath6kl_vif *vif)
-{
- struct wmi_remain_on_chnl_event *ev;
- u32 freq;
- u32 dur;
- struct ieee80211_channel *chan;
- struct ath6kl *ar = wmi->parent_dev;
- u32 id;
-
- if (len < sizeof(*ev))
- return -EINVAL;
-
- ev = (struct wmi_remain_on_chnl_event *) datap;
- freq = le32_to_cpu(ev->freq);
- dur = le32_to_cpu(ev->duration);
- ath6kl_dbg(ATH6KL_DBG_WMI, "remain_on_chnl: freq=%u dur=%u\n",
- freq, dur);
- chan = ieee80211_get_channel(ar->wiphy, freq);
- if (!chan) {
- ath6kl_dbg(ATH6KL_DBG_WMI, "remain_on_chnl: Unknown channel "
- "(freq=%u)\n", freq);
- return -EINVAL;
- }
- id = vif->last_roc_id;
- cfg80211_ready_on_channel(vif->ndev, id, chan, NL80211_CHAN_NO_HT,
- dur, GFP_ATOMIC);
-
- return 0;
-}
-
-static int ath6kl_wmi_cancel_remain_on_chnl_event_rx(struct wmi *wmi,
- u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_cancel_remain_on_chnl_event *ev;
- u32 freq;
- u32 dur;
- struct ieee80211_channel *chan;
- struct ath6kl *ar = wmi->parent_dev;
- u32 id;
-
- if (len < sizeof(*ev))
- return -EINVAL;
-
- ev = (struct wmi_cancel_remain_on_chnl_event *) datap;
- freq = le32_to_cpu(ev->freq);
- dur = le32_to_cpu(ev->duration);
- ath6kl_dbg(ATH6KL_DBG_WMI, "cancel_remain_on_chnl: freq=%u dur=%u "
- "status=%u\n", freq, dur, ev->status);
- chan = ieee80211_get_channel(ar->wiphy, freq);
- if (!chan) {
- ath6kl_dbg(ATH6KL_DBG_WMI, "cancel_remain_on_chnl: Unknown "
- "channel (freq=%u)\n", freq);
- return -EINVAL;
- }
- if (vif->last_cancel_roc_id &&
- vif->last_cancel_roc_id + 1 == vif->last_roc_id)
- id = vif->last_cancel_roc_id; /* event for cancel command */
- else
- id = vif->last_roc_id; /* timeout on uncanceled r-o-c */
- vif->last_cancel_roc_id = 0;
- cfg80211_remain_on_channel_expired(vif->ndev, id, chan,
- NL80211_CHAN_NO_HT, GFP_ATOMIC);
-
- return 0;
-}
-
-static int ath6kl_wmi_tx_status_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_tx_status_event *ev;
- u32 id;
-
- if (len < sizeof(*ev))
- return -EINVAL;
-
- ev = (struct wmi_tx_status_event *) datap;
- id = le32_to_cpu(ev->id);
- ath6kl_dbg(ATH6KL_DBG_WMI, "tx_status: id=%x ack_status=%u\n",
- id, ev->ack_status);
-
- mutex_lock(&wmi->lock_mgmt);
- if (wmi->last_mgmt_tx_frame) {
- cfg80211_mgmt_tx_status(vif->ndev, id,
- wmi->last_mgmt_tx_frame,
- wmi->last_mgmt_tx_frame_len,
- !!ev->ack_status, GFP_ATOMIC);
- kfree(wmi->last_mgmt_tx_frame);
- wmi->last_mgmt_tx_frame = NULL;
- wmi->last_mgmt_tx_frame_len = 0;
- }
- mutex_unlock(&wmi->lock_mgmt);
-
- return 0;
-}
-
-static int ath6kl_wmi_rx_probe_req_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_p2p_rx_probe_req_event *ev;
- u32 freq;
- u16 dlen;
-
- if (len < sizeof(*ev))
- return -EINVAL;
-
- ev = (struct wmi_p2p_rx_probe_req_event *) datap;
- freq = le32_to_cpu(ev->freq);
- dlen = le16_to_cpu(ev->len);
- if (datap + len < ev->data + dlen) {
- ath6kl_err("invalid wmi_p2p_rx_probe_req_event: "
- "len=%d dlen=%u\n", len, dlen);
- return -EINVAL;
- }
- ath6kl_dbg(ATH6KL_DBG_WMI, "rx_probe_req: len=%u freq=%u "
- "probe_req_report=%d\n",
- dlen, freq, vif->probe_req_report);
-
- if (vif->probe_req_report || vif->nw_type == AP_NETWORK)
- cfg80211_rx_mgmt(vif->ndev, freq, ev->data, dlen, GFP_ATOMIC);
-
- return 0;
-}
-
-static int ath6kl_wmi_p2p_capabilities_event_rx(u8 *datap, int len)
-{
- struct wmi_p2p_capabilities_event *ev;
- u16 dlen;
-
- if (len < sizeof(*ev))
- return -EINVAL;
-
- ev = (struct wmi_p2p_capabilities_event *) datap;
- dlen = le16_to_cpu(ev->len);
- ath6kl_dbg(ATH6KL_DBG_WMI, "p2p_capab: len=%u\n", dlen);
-
- return 0;
-}
-
-static int ath6kl_wmi_rx_action_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_rx_action_event *ev;
- u32 freq;
- u16 dlen;
-
- if (len < sizeof(*ev))
- return -EINVAL;
-
- ev = (struct wmi_rx_action_event *) datap;
- freq = le32_to_cpu(ev->freq);
- dlen = le16_to_cpu(ev->len);
- if (datap + len < ev->data + dlen) {
- ath6kl_err("invalid wmi_rx_action_event: "
- "len=%d dlen=%u\n", len, dlen);
- return -EINVAL;
- }
- ath6kl_dbg(ATH6KL_DBG_WMI, "rx_action: len=%u freq=%u\n", dlen, freq);
- cfg80211_rx_mgmt(vif->ndev, freq, ev->data, dlen, GFP_ATOMIC);
-
- return 0;
-}
-
-static int ath6kl_wmi_p2p_info_event_rx(u8 *datap, int len)
-{
- struct wmi_p2p_info_event *ev;
- u32 flags;
- u16 dlen;
-
- if (len < sizeof(*ev))
- return -EINVAL;
-
- ev = (struct wmi_p2p_info_event *) datap;
- flags = le32_to_cpu(ev->info_req_flags);
- dlen = le16_to_cpu(ev->len);
- ath6kl_dbg(ATH6KL_DBG_WMI, "p2p_info: flags=%x len=%d\n", flags, dlen);
-
- if (flags & P2P_FLAG_CAPABILITIES_REQ) {
- struct wmi_p2p_capabilities *cap;
- if (dlen < sizeof(*cap))
- return -EINVAL;
- cap = (struct wmi_p2p_capabilities *) ev->data;
- ath6kl_dbg(ATH6KL_DBG_WMI, "p2p_info: GO Power Save = %d\n",
- cap->go_power_save);
- }
-
- if (flags & P2P_FLAG_MACADDR_REQ) {
- struct wmi_p2p_macaddr *mac;
- if (dlen < sizeof(*mac))
- return -EINVAL;
- mac = (struct wmi_p2p_macaddr *) ev->data;
- ath6kl_dbg(ATH6KL_DBG_WMI, "p2p_info: MAC Address = %s\n",
- sec_conv_mac(mac->mac_addr));
- }
-
- if (flags & P2P_FLAG_HMODEL_REQ) {
- struct wmi_p2p_hmodel *mod;
- if (dlen < sizeof(*mod))
- return -EINVAL;
- mod = (struct wmi_p2p_hmodel *) ev->data;
- ath6kl_dbg(ATH6KL_DBG_WMI, "p2p_info: P2P Model = %d (%s)\n",
- mod->p2p_model,
- mod->p2p_model ? "host" : "firmware");
- }
- return 0;
-}
-
-static inline struct sk_buff *ath6kl_wmi_get_new_buf(u32 size)
-{
- struct sk_buff *skb;
-
- skb = ath6kl_buf_alloc(size);
- if (!skb)
- return NULL;
-
- skb_put(skb, size);
- if (size)
- memset(skb->data, 0, size);
-
- return skb;
-}
-
-/* Send a "simple" wmi command -- one with no arguments */
-static int ath6kl_wmi_simple_cmd(struct wmi *wmi, u8 if_idx,
- enum wmi_cmd_id cmd_id)
-{
- struct sk_buff *skb;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(0);
- if (!skb)
- return -ENOMEM;
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, cmd_id, NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-static int ath6kl_wmi_ready_event_rx(struct wmi *wmi, u8 *datap, int len)
-{
- struct wmi_ready_event_2 *ev = (struct wmi_ready_event_2 *) datap;
-
- if (len < sizeof(struct wmi_ready_event_2))
- return -EINVAL;
-
- ath6kl_ready_event(wmi->parent_dev, ev->mac_addr,
- le32_to_cpu(ev->sw_version),
- le32_to_cpu(ev->abi_version));
-
- return 0;
-}
-
-/*
- * Mechanism to modify the roaming behavior in the firmware. The lower rssi
- * at which the station has to roam can be passed with
- * WMI_SET_LRSSI_SCAN_PARAMS. Subtract 96 from RSSI to get the signal level
- * in dBm.
- */
-int ath6kl_wmi_set_roam_lrssi_cmd(struct wmi *wmi, u8 lrssi)
-{
- struct sk_buff *skb;
- struct roam_ctrl_cmd *cmd;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct roam_ctrl_cmd *) skb->data;
-
-#ifdef CONFIG_MACH_PX
- if (wmi->parent_dev->psminfo == 0)
- cmd->info.params.lrssi_scan_period = 0xFFFF;
- else
- cmd->info.params.lrssi_scan_period = cpu_to_le16(DEF_LRSSI_SCAN_PERIOD);
-#else
- cmd->info.params.lrssi_scan_period = cpu_to_le16(DEF_LRSSI_SCAN_PERIOD);
-#endif
-
- cmd->info.params.lrssi_scan_threshold = a_cpu_to_sle16(lrssi +
- DEF_SCAN_FOR_ROAM_INTVL);
- cmd->info.params.lrssi_roam_threshold = a_cpu_to_sle16(lrssi);
- cmd->info.params.roam_rssi_floor = DEF_LRSSI_ROAM_FLOOR;
- cmd->roam_ctrl = WMI_SET_LRSSI_SCAN_PARAMS;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "lrssi_scan_period %d, lrssi_scan_threshold = %d, "
- "lrssi_roam_threshold = %d, roam_rssi_floor = %d\n",
- cmd->info.params.lrssi_scan_period, cmd->info.params.lrssi_scan_threshold,
- cmd->info.params.lrssi_roam_threshold, cmd->info.params.roam_rssi_floor);
-
- ath6kl_wmi_cmd_send(wmi, 0, skb, WMI_SET_ROAM_CTRL_CMDID,
- NO_SYNC_WMIFLAG);
-
- return 0;
-}
-
-int ath6kl_wmi_set_roam_lrssi_config_cmd(struct wmi *wmi,
- struct low_rssi_scan_params *params)
-{
- struct sk_buff *skb;
- struct roam_ctrl_cmd *cmd;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct roam_ctrl_cmd *) skb->data;
- ath6kl_dbg(ATH6KL_DBG_WMI, "lrssi_scan_period %d, lrssi_scan_threshold = %d, "
- "lrssi_roam_threshold = %d, roam_rssi_floor = %d\n",
- params->lrssi_scan_period, params->lrssi_scan_threshold,
- params->lrssi_roam_threshold, params->roam_rssi_floor);
-
- if (params->lrssi_scan_period == 0)
- cmd->info.params.lrssi_scan_period = 0xFFFF;
- else
- cmd->info.params.lrssi_scan_period = params->lrssi_scan_period;
- cmd->info.params.lrssi_scan_threshold = params->lrssi_scan_threshold;
- cmd->info.params.lrssi_roam_threshold = params->lrssi_roam_threshold;
- cmd->info.params.roam_rssi_floor = params->roam_rssi_floor;
- cmd->roam_ctrl = WMI_SET_LRSSI_SCAN_PARAMS;
-
- ath6kl_wmi_cmd_send(wmi, 0, skb, WMI_SET_ROAM_CTRL_CMDID,
- NO_SYNC_WMIFLAG);
-
- return 0;
-}
-
-int ath6kl_wmi_force_roam_cmd(struct wmi *wmi, const u8 *bssid)
-{
- struct sk_buff *skb;
- struct roam_ctrl_cmd *cmd;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct roam_ctrl_cmd *) skb->data;
- memset(cmd, 0, sizeof(*cmd));
-
- memcpy(cmd->info.bssid, bssid, ETH_ALEN);
- cmd->roam_ctrl = WMI_FORCE_ROAM;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "force roam to %s\n", sec_conv_mac(bssid));
- return ath6kl_wmi_cmd_send(wmi, 0, skb, WMI_SET_ROAM_CTRL_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-int ath6kl_wmi_set_roam_mode_cmd(struct wmi *wmi, enum wmi_roam_mode mode)
-{
- struct sk_buff *skb;
- struct roam_ctrl_cmd *cmd;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct roam_ctrl_cmd *) skb->data;
- memset(cmd, 0, sizeof(*cmd));
-
- cmd->info.roam_mode = mode;
- cmd->roam_ctrl = WMI_SET_ROAM_MODE;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "set roam mode %d\n", mode);
- return ath6kl_wmi_cmd_send(wmi, 0, skb, WMI_SET_ROAM_CTRL_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-static int ath6kl_wmi_connect_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_connect_event *ev;
- u8 *pie, *peie;
-
- if (len < sizeof(struct wmi_connect_event))
- return -EINVAL;
-
- ev = (struct wmi_connect_event *) datap;
-
- if (vif->nw_type == AP_NETWORK) {
- /* AP mode start/STA connected event */
- struct net_device *dev = vif->ndev;
- if (memcmp(dev->dev_addr, ev->u.ap_bss.bssid, ETH_ALEN) == 0) {
- ath6kl_dbg(ATH6KL_DBG_WMI, "%s: freq %d bssid %s "
- "(AP started)\n",
- __func__, le16_to_cpu(ev->u.ap_bss.ch),
- sec_conv_mac(ev->u.ap_bss.bssid));
- ath6kl_connect_ap_mode_bss(
- vif, le16_to_cpu(ev->u.ap_bss.ch));
- } else {
- ath6kl_dbg(ATH6KL_DBG_WMI, "%s: aid %u mac_addr %s "
- "auth=%u keymgmt=%u cipher=%u apsd_info=%u "
- "(STA connected)\n",
- __func__, ev->u.ap_sta.aid,
- sec_conv_mac(ev->u.ap_sta.mac_addr),
- ev->u.ap_sta.auth,
- ev->u.ap_sta.keymgmt,
- le16_to_cpu(ev->u.ap_sta.cipher),
- ev->u.ap_sta.apsd_info);
-
- ath6kl_connect_ap_mode_sta(
- vif, ev->u.ap_sta.aid, ev->u.ap_sta.mac_addr,
- ev->u.ap_sta.keymgmt,
- le16_to_cpu(ev->u.ap_sta.cipher),
- ev->u.ap_sta.auth, ev->assoc_req_len,
- ev->assoc_info + ev->beacon_ie_len,
- ev->u.ap_sta.apsd_info);
- }
- return 0;
- }
-
- /* STA/IBSS mode connection event */
-
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "wmi event connect freq %d bssid %s listen_intvl %d beacon_intvl %d type %d\n",
- le16_to_cpu(ev->u.sta.ch), sec_conv_mac(ev->u.sta.bssid),
- le16_to_cpu(ev->u.sta.listen_intvl),
- le16_to_cpu(ev->u.sta.beacon_intvl),
- le32_to_cpu(ev->u.sta.nw_type));
-
- /* Start of assoc rsp IEs */
- pie = ev->assoc_info + ev->beacon_ie_len +
- ev->assoc_req_len + (sizeof(u16) * 3); /* capinfo, status, aid */
-
- /* End of assoc rsp IEs */
- peie = ev->assoc_info + ev->beacon_ie_len + ev->assoc_req_len +
- ev->assoc_resp_len;
-
- while (pie < peie) {
- switch (*pie) {
- case WLAN_EID_VENDOR_SPECIFIC:
- if (pie[1] > 3 && pie[2] == 0x00 && pie[3] == 0x50 &&
- pie[4] == 0xf2 && pie[5] == WMM_OUI_TYPE) {
- /* WMM OUT (00:50:F2) */
- if (pie[1] > 5
- && pie[6] == WMM_PARAM_OUI_SUBTYPE)
- wmi->is_wmm_enabled = true;
- }
- break;
- }
-
- if (wmi->is_wmm_enabled)
- break;
-
- pie += pie[1] + 2;
- }
-
- ath6kl_connect_event(vif, le16_to_cpu(ev->u.sta.ch),
- ev->u.sta.bssid,
- le16_to_cpu(ev->u.sta.listen_intvl),
- le16_to_cpu(ev->u.sta.beacon_intvl),
- le32_to_cpu(ev->u.sta.nw_type),
- ev->beacon_ie_len, ev->assoc_req_len,
- ev->assoc_resp_len, ev->assoc_info);
-
- return 0;
-}
-
-static struct country_code_to_enum_rd *
-ath6kl_regd_find_country(u16 countryCode)
-{
- int i;
-
- for (i = 0; i < ARRAY_SIZE(allCountries); i++) {
- if (allCountries[i].countryCode == countryCode)
- return &allCountries[i];
- }
-
- return NULL;
-}
-
-static struct reg_dmn_pair_mapping *
-ath6kl_get_regpair(u16 regdmn)
-{
- int i;
-
- if (regdmn == NO_ENUMRD)
- return NULL;
-
- for (i = 0; i < ARRAY_SIZE(regDomainPairs); i++) {
- if (regDomainPairs[i].regDmnEnum == regdmn)
- return &regDomainPairs[i];
- }
-
- return NULL;
-}
-
-static struct country_code_to_enum_rd *
-ath6kl_regd_find_country_by_rd(u16 regdmn)
-{
- int i;
-
- for (i = 0; i < ARRAY_SIZE(allCountries); i++) {
- if (allCountries[i].regDmnEnum == regdmn)
- return &allCountries[i];
- }
-
- return NULL;
-}
-
-static void ath6kl_wmi_regdomain_event(struct wmi *wmi, u8 *datap, int len)
-{
-
- struct ath6kl_wmi_regdomain *ev;
- struct country_code_to_enum_rd *country = NULL;
- struct reg_dmn_pair_mapping *regpair = NULL;
- char alpha2[2];
- u32 reg_code;
-
- ev = (struct ath6kl_wmi_regdomain *) datap;
- reg_code = le32_to_cpu(ev->reg_code);
-
- if ((reg_code >> ATH6KL_COUNTRY_RD_SHIFT) & COUNTRY_ERD_FLAG)
- country = ath6kl_regd_find_country((u16) reg_code);
- else if (!(((u16) reg_code & WORLD_SKU_MASK) == WORLD_SKU_PREFIX)) {
-
- regpair = ath6kl_get_regpair((u16) reg_code);
- country = ath6kl_regd_find_country_by_rd((u16) reg_code);
- ath6kl_dbg(ATH6KL_DBG_WMI, "Regpair used: 0x%0x\n",
- regpair->regDmnEnum);
- }
-
- if (country) {
- alpha2[0] = country->isoName[0];
- alpha2[1] = country->isoName[1];
-
- regulatory_hint(wmi->parent_dev->wiphy, alpha2);
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "Country alpha2 being used: %c%c\n",
- alpha2[0], alpha2[1]);
- }
-}
-
-static int ath6kl_wmi_disconnect_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_disconnect_event *ev;
- wmi->traffic_class = 100;
-
- if (len < sizeof(struct wmi_disconnect_event))
- return -EINVAL;
-
- ev = (struct wmi_disconnect_event *) datap;
-
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "wmi event disconnect proto_reason %d bssid %s wmi_reason %d assoc_resp_len %d\n",
- le16_to_cpu(ev->proto_reason_status),
- sec_conv_mac(ev->bssid),
- ev->disconn_reason, ev->assoc_resp_len);
-
- wmi->is_wmm_enabled = false;
-
- ath6kl_disconnect_event(vif, ev->disconn_reason,
- ev->bssid, ev->assoc_resp_len, ev->assoc_info,
- le16_to_cpu(ev->proto_reason_status));
-
- return 0;
-}
-
-static int ath6kl_wmi_peer_node_event_rx(struct wmi *wmi, u8 *datap, int len)
-{
- struct wmi_peer_node_event *ev;
-
- if (len < sizeof(struct wmi_peer_node_event))
- return -EINVAL;
-
- ev = (struct wmi_peer_node_event *) datap;
-
- if (ev->event_code == PEER_NODE_JOIN_EVENT)
- ath6kl_dbg(ATH6KL_DBG_WMI, "joined node with mac addr: %s\n",
- sec_conv_mac(ev->peer_mac_addr));
- else if (ev->event_code == PEER_NODE_LEAVE_EVENT)
- ath6kl_dbg(ATH6KL_DBG_WMI, "left node with mac addr: %s\n",
- sec_conv_mac(ev->peer_mac_addr));
-
- return 0;
-}
-
-static int ath6kl_wmi_tkip_micerr_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_tkip_micerr_event *ev;
-
- if (len < sizeof(struct wmi_tkip_micerr_event))
- return -EINVAL;
-
- ev = (struct wmi_tkip_micerr_event *) datap;
-
- ath6kl_tkip_micerr_event(vif, ev->key_id, ev->is_mcast);
-
- return 0;
-}
-
-void ath6kl_wmi_sscan_timer(unsigned long ptr)
-{
- struct ath6kl_vif *vif = (struct ath6kl_vif *) ptr;
-
- cfg80211_sched_scan_results(vif->ar->wiphy);
-}
-
-static int ath6kl_wmi_bssinfo_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_bss_info_hdr2 *bih;
- u8 *buf;
- struct ieee80211_channel *channel;
- struct ath6kl *ar = wmi->parent_dev;
- struct ieee80211_mgmt *mgmt;
- struct cfg80211_bss *bss;
-
- if (len <= sizeof(struct wmi_bss_info_hdr2))
- return -EINVAL;
-
- bih = (struct wmi_bss_info_hdr2 *) datap;
- buf = datap + sizeof(struct wmi_bss_info_hdr2);
- len -= sizeof(struct wmi_bss_info_hdr2);
-
-#if 0
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "bss info evt - ch %u, snr %d, rssi %d, bssid \"%pM\" "
- "frame_type=%d\n",
- bih->ch, bih->snr, bih->snr - 95, bih->bssid,
- bih->frame_type);
-#endif
-
- if (bih->frame_type != BEACON_FTYPE &&
- bih->frame_type != PROBERESP_FTYPE)
- return 0; /* Only update BSS table for now */
-
- if (bih->frame_type == BEACON_FTYPE &&
- test_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags)) {
- clear_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags);
- ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx,
- NONE_BSS_FILTER, 0);
- }
-
- channel = ieee80211_get_channel(ar->wiphy, le16_to_cpu(bih->ch));
- if (channel == NULL)
- return -EINVAL;
-
- if (len < 8 + 2 + 2)
- return -EINVAL;
-
- if (bih->frame_type == BEACON_FTYPE && test_bit(CONNECTED, &vif->flags)
- && memcmp(bih->bssid, vif->bssid, ETH_ALEN) == 0) {
- const u8 *tim;
- tim = cfg80211_find_ie(WLAN_EID_TIM, buf + 8 + 2 + 2,
- len - 8 - 2 - 2);
- if (tim && tim[1] >= 2) {
- vif->assoc_bss_dtim_period = tim[3];
- set_bit(DTIM_PERIOD_AVAIL, &vif->flags);
- }
- }
-
- /*
- * In theory, use of cfg80211_inform_bss() would be more natural here
- * since we do not have the full frame. However, at least for now,
- * cfg80211 can only distinguish Beacon and Probe Response frames from
- * each other when using cfg80211_inform_bss_frame(), so let's build a
- * fake IEEE 802.11 header to be able to take benefit of this.
- */
- mgmt = kmalloc(24 + len, GFP_ATOMIC);
- if (mgmt == NULL)
- return -EINVAL;
-
- if (bih->frame_type == BEACON_FTYPE) {
- mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
- IEEE80211_STYPE_BEACON);
- memset(mgmt->da, 0xff, ETH_ALEN);
- } else {
- struct net_device *dev = vif->ndev;
-
- mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
- IEEE80211_STYPE_PROBE_RESP);
- memcpy(mgmt->da, dev->dev_addr, ETH_ALEN);
- }
- mgmt->duration = cpu_to_le16(0);
- memcpy(mgmt->sa, bih->bssid, ETH_ALEN);
- memcpy(mgmt->bssid, bih->bssid, ETH_ALEN);
- mgmt->seq_ctrl = cpu_to_le16(0);
-
- memcpy(&mgmt->u.beacon, buf, len);
-
- bss = cfg80211_inform_bss_frame(ar->wiphy, channel, mgmt,
- 24 + len, (bih->snr - 95) * 100,
- GFP_ATOMIC);
- kfree(mgmt);
- if (bss == NULL)
- return -ENOMEM;
- cfg80211_put_bss(bss);
-
- /*
- * Firmware doesn't return any event when scheduled scan has
- * finished, so we need to use a timer to find out when there are
- * no more results.
- *
- * The timer is started from the first bss info received, otherwise
- * the timer would not ever fire if the scan interval is short
- * enough.
- */
- if (ar->state == ATH6KL_STATE_SCHED_SCAN &&
- !timer_pending(&vif->sched_scan_timer)) {
- mod_timer(&vif->sched_scan_timer, jiffies +
- msecs_to_jiffies(ATH6KL_SCHED_SCAN_RESULT_DELAY));
- }
-
- return 0;
-}
-
-/* Inactivity timeout of a fatpipe(pstream) at the target */
-static int ath6kl_wmi_pstream_timeout_event_rx(struct wmi *wmi, u8 *datap,
- int len)
-{
- struct wmi_pstream_timeout_event *ev;
-
- if (len < sizeof(struct wmi_pstream_timeout_event))
- return -EINVAL;
-
- ev = (struct wmi_pstream_timeout_event *) datap;
-
- /*
- * When the pstream (fat pipe == AC) timesout, it means there were
- * no thinStreams within this pstream & it got implicitly created
- * due to data flow on this AC. We start the inactivity timer only
- * for implicitly created pstream. Just reset the host state.
- */
- spin_lock_bh(&wmi->lock);
- wmi->stream_exist_for_ac[ev->traffic_class] = 0;
- wmi->fat_pipe_exist &= ~(1 << ev->traffic_class);
- spin_unlock_bh(&wmi->lock);
-
- /* Indicate inactivity to driver layer for this fatpipe (pstream) */
- ath6kl_indicate_tx_activity(wmi->parent_dev, ev->traffic_class, false);
-
- return 0;
-}
-
-static int ath6kl_wmi_bitrate_reply_rx(struct wmi *wmi, u8 *datap, int len)
-{
- struct wmi_bit_rate_reply *reply;
- s32 rate;
- u32 sgi, index;
-
- if (len < sizeof(struct wmi_bit_rate_reply))
- return -EINVAL;
-
- reply = (struct wmi_bit_rate_reply *) datap;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "rateindex %d\n", reply->rate_index);
-
- if (reply->rate_index == (s8) RATE_AUTO) {
- rate = RATE_AUTO;
- } else {
- index = reply->rate_index & 0x7f;
- sgi = (reply->rate_index & 0x80) ? 1 : 0;
- rate = wmi_rate_tbl[index][sgi];
- }
-
- ath6kl_wakeup_event(wmi->parent_dev);
-
- return 0;
-}
-
-static int ath6kl_wmi_test_rx(struct wmi *wmi, u8 *datap, int len)
-{
- ath6kl_tm_rx_event(wmi->parent_dev, datap, len);
-
- return 0;
-}
-
-static int ath6kl_wmi_ratemask_reply_rx(struct wmi *wmi, u8 *datap, int len)
-{
- if (len < sizeof(struct wmi_fix_rates_reply))
- return -EINVAL;
-
- ath6kl_wakeup_event(wmi->parent_dev);
-
- return 0;
-}
-
-static int ath6kl_wmi_ch_list_reply_rx(struct wmi *wmi, u8 *datap, int len)
-{
- if (len < sizeof(struct wmi_channel_list_reply))
- return -EINVAL;
-
- ath6kl_wakeup_event(wmi->parent_dev);
-
- return 0;
-}
-
-static int ath6kl_wmi_tx_pwr_reply_rx(struct wmi *wmi, u8 *datap, int len)
-{
- struct wmi_tx_pwr_reply *reply;
-
- if (len < sizeof(struct wmi_tx_pwr_reply))
- return -EINVAL;
-
- reply = (struct wmi_tx_pwr_reply *) datap;
- ath6kl_txpwr_rx_evt(wmi->parent_dev, reply->dbM);
-
- return 0;
-}
-
-static int ath6kl_wmi_keepalive_reply_rx(struct wmi *wmi, u8 *datap, int len)
-{
- if (len < sizeof(struct wmi_get_keepalive_cmd))
- return -EINVAL;
-
- ath6kl_wakeup_event(wmi->parent_dev);
-
- return 0;
-}
-
-static int ath6kl_wmi_scan_complete_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_scan_complete_event *ev;
-
- ev = (struct wmi_scan_complete_event *) datap;
-
- ath6kl_scan_complete_evt(vif, a_sle32_to_cpu(ev->status));
- wmi->is_probe_ssid = false;
-
- return 0;
-}
-
-static int ath6kl_wmi_neighbor_report_event_rx(struct wmi *wmi, u8 *datap,
- int len, struct ath6kl_vif *vif)
-{
- struct wmi_neighbor_report_event *ev;
- u8 i;
-
- if (len < sizeof(*ev))
- return -EINVAL;
- ev = (struct wmi_neighbor_report_event *) datap;
- if (sizeof(*ev) + ev->num_neighbors * sizeof(struct wmi_neighbor_info)
- > len) {
- ath6kl_dbg(ATH6KL_DBG_WMI, "truncated neighbor event "
- "(num=%d len=%d)\n", ev->num_neighbors, len);
- return -EINVAL;
- }
- for (i = 0; i < ev->num_neighbors; i++) {
- ath6kl_dbg(ATH6KL_DBG_WMI, "neighbor %d/%d - %s 0x%x\n",
- i + 1, ev->num_neighbors,
- sec_conv_mac(ev->neighbor[i].bssid),
- ev->neighbor[i].bss_flags);
- cfg80211_pmksa_candidate_notify(vif->ndev, i,
- ev->neighbor[i].bssid,
- !!(ev->neighbor[i].bss_flags &
- WMI_PREAUTH_CAPABLE_BSS),
- GFP_ATOMIC);
- }
-
- return 0;
-}
-
-/*
- * Target is reporting a programming error. This is for
- * developer aid only. Target only checks a few common violations
- * and it is responsibility of host to do all error checking.
- * Behavior of target after wmi error event is undefined.
- * A reset is recommended.
- */
-static int ath6kl_wmi_error_event_rx(struct wmi *wmi, u8 *datap, int len)
-{
- const char *type = "unknown error";
- struct wmi_cmd_error_event *ev;
- ev = (struct wmi_cmd_error_event *) datap;
-
- switch (ev->err_code) {
- case INVALID_PARAM:
- type = "invalid parameter";
- break;
- case ILLEGAL_STATE:
- type = "invalid state";
- break;
- case INTERNAL_ERROR:
- type = "internal error";
- break;
- }
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "programming error, cmd=%d %s\n",
- ev->cmd_id, type);
-
- return 0;
-}
-
-static int ath6kl_wmi_stats_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- ath6kl_tgt_stats_event(vif, datap, len);
-
- return 0;
-}
-
-static u8 ath6kl_wmi_get_upper_threshold(s16 rssi,
- struct sq_threshold_params *sq_thresh,
- u32 size)
-{
- u32 index;
- u8 threshold = (u8) sq_thresh->upper_threshold[size - 1];
-
- /* The list is already in sorted order. Get the next lower value */
- for (index = 0; index < size; index++) {
- if (rssi < sq_thresh->upper_threshold[index]) {
- threshold = (u8) sq_thresh->upper_threshold[index];
- break;
- }
- }
-
- return threshold;
-}
-
-static u8 ath6kl_wmi_get_lower_threshold(s16 rssi,
- struct sq_threshold_params *sq_thresh,
- u32 size)
-{
- u32 index;
- u8 threshold = (u8) sq_thresh->lower_threshold[size - 1];
-
- /* The list is already in sorted order. Get the next lower value */
- for (index = 0; index < size; index++) {
- if (rssi > sq_thresh->lower_threshold[index]) {
- threshold = (u8) sq_thresh->lower_threshold[index];
- break;
- }
- }
-
- return threshold;
-}
-
-static int ath6kl_wmi_send_rssi_threshold_params(struct wmi *wmi,
- struct wmi_rssi_threshold_params_cmd *rssi_cmd)
-{
- struct sk_buff *skb;
- struct wmi_rssi_threshold_params_cmd *cmd;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_rssi_threshold_params_cmd *) skb->data;
- memcpy(cmd, rssi_cmd, sizeof(struct wmi_rssi_threshold_params_cmd));
-
- return ath6kl_wmi_cmd_send(wmi, 0, skb, WMI_RSSI_THRESHOLD_PARAMS_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-static int ath6kl_wmi_rssi_threshold_event_rx(struct wmi *wmi, u8 *datap,
- int len)
-{
- struct wmi_rssi_threshold_event *reply;
- struct wmi_rssi_threshold_params_cmd cmd;
- struct sq_threshold_params *sq_thresh;
- enum wmi_rssi_threshold_val new_threshold;
- u8 upper_rssi_threshold, lower_rssi_threshold;
- s16 rssi;
- int ret;
-
- if (len < sizeof(struct wmi_rssi_threshold_event))
- return -EINVAL;
-
- reply = (struct wmi_rssi_threshold_event *) datap;
- new_threshold = (enum wmi_rssi_threshold_val) reply->range;
- rssi = a_sle16_to_cpu(reply->rssi);
-
- sq_thresh = &wmi->sq_threshld[SIGNAL_QUALITY_METRICS_RSSI];
-
- /*
- * Identify the threshold breached and communicate that to the app.
- * After that install a new set of thresholds based on the signal
- * quality reported by the target
- */
- if (new_threshold) {
- /* Upper threshold breached */
- if (rssi < sq_thresh->upper_threshold[0]) {
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "spurious upper rssi threshold event: %d\n",
- rssi);
- } else if ((rssi < sq_thresh->upper_threshold[1]) &&
- (rssi >= sq_thresh->upper_threshold[0])) {
- new_threshold = WMI_RSSI_THRESHOLD1_ABOVE;
- } else if ((rssi < sq_thresh->upper_threshold[2]) &&
- (rssi >= sq_thresh->upper_threshold[1])) {
- new_threshold = WMI_RSSI_THRESHOLD2_ABOVE;
- } else if ((rssi < sq_thresh->upper_threshold[3]) &&
- (rssi >= sq_thresh->upper_threshold[2])) {
- new_threshold = WMI_RSSI_THRESHOLD3_ABOVE;
- } else if ((rssi < sq_thresh->upper_threshold[4]) &&
- (rssi >= sq_thresh->upper_threshold[3])) {
- new_threshold = WMI_RSSI_THRESHOLD4_ABOVE;
- } else if ((rssi < sq_thresh->upper_threshold[5]) &&
- (rssi >= sq_thresh->upper_threshold[4])) {
- new_threshold = WMI_RSSI_THRESHOLD5_ABOVE;
- } else if (rssi >= sq_thresh->upper_threshold[5]) {
- new_threshold = WMI_RSSI_THRESHOLD6_ABOVE;
- }
- } else {
- /* Lower threshold breached */
- if (rssi > sq_thresh->lower_threshold[0]) {
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "spurious lower rssi threshold event: %d %d\n",
- rssi, sq_thresh->lower_threshold[0]);
- } else if ((rssi > sq_thresh->lower_threshold[1]) &&
- (rssi <= sq_thresh->lower_threshold[0])) {
- new_threshold = WMI_RSSI_THRESHOLD6_BELOW;
- } else if ((rssi > sq_thresh->lower_threshold[2]) &&
- (rssi <= sq_thresh->lower_threshold[1])) {
- new_threshold = WMI_RSSI_THRESHOLD5_BELOW;
- } else if ((rssi > sq_thresh->lower_threshold[3]) &&
- (rssi <= sq_thresh->lower_threshold[2])) {
- new_threshold = WMI_RSSI_THRESHOLD4_BELOW;
- } else if ((rssi > sq_thresh->lower_threshold[4]) &&
- (rssi <= sq_thresh->lower_threshold[3])) {
- new_threshold = WMI_RSSI_THRESHOLD3_BELOW;
- } else if ((rssi > sq_thresh->lower_threshold[5]) &&
- (rssi <= sq_thresh->lower_threshold[4])) {
- new_threshold = WMI_RSSI_THRESHOLD2_BELOW;
- } else if (rssi <= sq_thresh->lower_threshold[5]) {
- new_threshold = WMI_RSSI_THRESHOLD1_BELOW;
- }
- }
-
- /* Calculate and install the next set of thresholds */
- lower_rssi_threshold = ath6kl_wmi_get_lower_threshold(rssi, sq_thresh,
- sq_thresh->lower_threshold_valid_count);
- upper_rssi_threshold = ath6kl_wmi_get_upper_threshold(rssi, sq_thresh,
- sq_thresh->upper_threshold_valid_count);
-
- /* Issue a wmi command to install the thresholds */
- cmd.thresh_above1_val = a_cpu_to_sle16(upper_rssi_threshold);
- cmd.thresh_below1_val = a_cpu_to_sle16(lower_rssi_threshold);
- cmd.weight = sq_thresh->weight;
- cmd.poll_time = cpu_to_le32(sq_thresh->polling_interval);
-
- ret = ath6kl_wmi_send_rssi_threshold_params(wmi, &cmd);
- if (ret) {
- ath6kl_err("unable to configure rssi thresholds\n");
- return -EIO;
- }
-
- return 0;
-}
-
-static int ath6kl_wmi_cac_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_cac_event *reply;
- struct ieee80211_tspec_ie *ts;
- u16 active_tsids, tsinfo;
- u8 tsid, index;
- u8 ts_id;
-
- if (len < sizeof(struct wmi_cac_event))
- return -EINVAL;
-
- reply = (struct wmi_cac_event *) datap;
-
- if ((reply->cac_indication == CAC_INDICATION_ADMISSION_RESP) &&
- (reply->status_code != IEEE80211_TSPEC_STATUS_ADMISS_ACCEPTED)) {
-
- ts = (struct ieee80211_tspec_ie *) &(reply->tspec_suggestion);
- tsinfo = le16_to_cpu(ts->tsinfo);
- tsid = (tsinfo >> IEEE80211_WMM_IE_TSPEC_TID_SHIFT) &
- IEEE80211_WMM_IE_TSPEC_TID_MASK;
-
- ath6kl_wmi_delete_pstream_cmd(wmi, vif->fw_vif_idx,
- reply->ac, tsid);
- } else if (reply->cac_indication == CAC_INDICATION_NO_RESP) {
- /*
- * Following assumes that there is only one outstanding
- * ADDTS request when this event is received
- */
- spin_lock_bh(&wmi->lock);
- active_tsids = wmi->stream_exist_for_ac[reply->ac];
- spin_unlock_bh(&wmi->lock);
-
- for (index = 0; index < sizeof(active_tsids) * 8; index++) {
- if ((active_tsids >> index) & 1)
- break;
- }
- if (index < (sizeof(active_tsids) * 8))
- ath6kl_wmi_delete_pstream_cmd(wmi, vif->fw_vif_idx,
- reply->ac, index);
- }
-
- /*
- * Clear active tsids and Add missing handling
- * for delete qos stream from AP
- */
- else if (reply->cac_indication == CAC_INDICATION_DELETE) {
-
- ts = (struct ieee80211_tspec_ie *) &(reply->tspec_suggestion);
- tsinfo = le16_to_cpu(ts->tsinfo);
- ts_id = ((tsinfo >> IEEE80211_WMM_IE_TSPEC_TID_SHIFT) &
- IEEE80211_WMM_IE_TSPEC_TID_MASK);
-
- spin_lock_bh(&wmi->lock);
- wmi->stream_exist_for_ac[reply->ac] &= ~(1 << ts_id);
- active_tsids = wmi->stream_exist_for_ac[reply->ac];
- spin_unlock_bh(&wmi->lock);
-
- /* Indicate stream inactivity to driver layer only if all tsids
- * within this AC are deleted.
- */
- if (!active_tsids) {
- ath6kl_indicate_tx_activity(wmi->parent_dev, reply->ac,
- false);
- wmi->fat_pipe_exist &= ~(1 << reply->ac);
- }
- }
-
- return 0;
-}
-
-static int ath6kl_wmi_send_snr_threshold_params(struct wmi *wmi,
- struct wmi_snr_threshold_params_cmd *snr_cmd)
-{
- struct sk_buff *skb;
- struct wmi_snr_threshold_params_cmd *cmd;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_snr_threshold_params_cmd *) skb->data;
- memcpy(cmd, snr_cmd, sizeof(struct wmi_snr_threshold_params_cmd));
-
- return ath6kl_wmi_cmd_send(wmi, 0, skb, WMI_SNR_THRESHOLD_PARAMS_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-static int ath6kl_wmi_snr_threshold_event_rx(struct wmi *wmi, u8 *datap,
- int len)
-{
- struct wmi_snr_threshold_event *reply;
- struct sq_threshold_params *sq_thresh;
- struct wmi_snr_threshold_params_cmd cmd;
- enum wmi_snr_threshold_val new_threshold;
- u8 upper_snr_threshold, lower_snr_threshold;
- s16 snr;
- int ret;
-
- if (len < sizeof(struct wmi_snr_threshold_event))
- return -EINVAL;
-
- reply = (struct wmi_snr_threshold_event *) datap;
-
- new_threshold = (enum wmi_snr_threshold_val) reply->range;
- snr = reply->snr;
-
- sq_thresh = &wmi->sq_threshld[SIGNAL_QUALITY_METRICS_SNR];
-
- /*
- * Identify the threshold breached and communicate that to the app.
- * After that install a new set of thresholds based on the signal
- * quality reported by the target.
- */
- if (new_threshold) {
- /* Upper threshold breached */
- if (snr < sq_thresh->upper_threshold[0]) {
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "spurious upper snr threshold event: %d\n",
- snr);
- } else if ((snr < sq_thresh->upper_threshold[1]) &&
- (snr >= sq_thresh->upper_threshold[0])) {
- new_threshold = WMI_SNR_THRESHOLD1_ABOVE;
- } else if ((snr < sq_thresh->upper_threshold[2]) &&
- (snr >= sq_thresh->upper_threshold[1])) {
- new_threshold = WMI_SNR_THRESHOLD2_ABOVE;
- } else if ((snr < sq_thresh->upper_threshold[3]) &&
- (snr >= sq_thresh->upper_threshold[2])) {
- new_threshold = WMI_SNR_THRESHOLD3_ABOVE;
- } else if (snr >= sq_thresh->upper_threshold[3]) {
- new_threshold = WMI_SNR_THRESHOLD4_ABOVE;
- }
- } else {
- /* Lower threshold breached */
- if (snr > sq_thresh->lower_threshold[0]) {
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "spurious lower snr threshold event: %d\n",
- sq_thresh->lower_threshold[0]);
- } else if ((snr > sq_thresh->lower_threshold[1]) &&
- (snr <= sq_thresh->lower_threshold[0])) {
- new_threshold = WMI_SNR_THRESHOLD4_BELOW;
- } else if ((snr > sq_thresh->lower_threshold[2]) &&
- (snr <= sq_thresh->lower_threshold[1])) {
- new_threshold = WMI_SNR_THRESHOLD3_BELOW;
- } else if ((snr > sq_thresh->lower_threshold[3]) &&
- (snr <= sq_thresh->lower_threshold[2])) {
- new_threshold = WMI_SNR_THRESHOLD2_BELOW;
- } else if (snr <= sq_thresh->lower_threshold[3]) {
- new_threshold = WMI_SNR_THRESHOLD1_BELOW;
- }
- }
-
- /* Calculate and install the next set of thresholds */
- lower_snr_threshold = ath6kl_wmi_get_lower_threshold(snr, sq_thresh,
- sq_thresh->lower_threshold_valid_count);
- upper_snr_threshold = ath6kl_wmi_get_upper_threshold(snr, sq_thresh,
- sq_thresh->upper_threshold_valid_count);
-
- /* Issue a wmi command to install the thresholds */
- cmd.thresh_above1_val = upper_snr_threshold;
- cmd.thresh_below1_val = lower_snr_threshold;
- cmd.weight = sq_thresh->weight;
- cmd.poll_time = cpu_to_le32(sq_thresh->polling_interval);
-
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "snr: %d, threshold: %d, lower: %d, upper: %d\n",
- snr, new_threshold,
- lower_snr_threshold, upper_snr_threshold);
-
- ret = ath6kl_wmi_send_snr_threshold_params(wmi, &cmd);
- if (ret) {
- ath6kl_err("unable to configure snr threshold\n");
- return -EIO;
- }
-
- return 0;
-}
-
-static int ath6kl_wmi_aplist_event_rx(struct wmi *wmi, u8 *datap, int len)
-{
- u16 ap_info_entry_size;
- struct wmi_aplist_event *ev = (struct wmi_aplist_event *) datap;
- struct wmi_ap_info_v1 *ap_info_v1;
- u8 index;
-
- if (len < sizeof(struct wmi_aplist_event) ||
- ev->ap_list_ver != APLIST_VER1)
- return -EINVAL;
-
- ap_info_entry_size = sizeof(struct wmi_ap_info_v1);
- ap_info_v1 = (struct wmi_ap_info_v1 *) ev->ap_list;
-
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "number of APs in aplist event: %d\n", ev->num_ap);
-
- if (len < (int) (sizeof(struct wmi_aplist_event) +
- (ev->num_ap - 1) * ap_info_entry_size))
- return -EINVAL;
-
- /* AP list version 1 contents */
- for (index = 0; index < ev->num_ap; index++) {
- ath6kl_dbg(ATH6KL_DBG_WMI, "AP#%d BSSID %s Channel %d\n",
- index, sec_conv_mac(ap_info_v1->bssid),
- ap_info_v1->channel);
- ap_info_v1++;
- }
-
- return 0;
-}
-
-int ath6kl_wmi_cmd_send(struct wmi *wmi, u8 if_idx, struct sk_buff *skb,
- enum wmi_cmd_id cmd_id, enum wmi_sync_flag sync_flag)
-{
- struct wmi_cmd_hdr *cmd_hdr;
- enum htc_endpoint_id ep_id = wmi->ep_id;
- int ret;
- u16 info1;
-
- if (WARN_ON(skb == NULL || (if_idx > (wmi->parent_dev->vif_max - 1))))
- return -EINVAL;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "wmi tx id %d len %d flag %d\n",
- cmd_id, skb->len, sync_flag);
- ath6kl_dbg_dump(ATH6KL_DBG_WMI_DUMP, NULL, "wmi tx ",
- skb->data, skb->len);
-
- if (sync_flag >= END_WMIFLAG) {
- dev_kfree_skb(skb);
- return -EINVAL;
- }
-
- if ((sync_flag == SYNC_BEFORE_WMIFLAG) ||
- (sync_flag == SYNC_BOTH_WMIFLAG)) {
- /*
- * Make sure all data currently queued is transmitted before
- * the cmd execution. Establish a new sync point.
- */
- ath6kl_wmi_sync_point(wmi, if_idx);
- }
-
- skb_push(skb, sizeof(struct wmi_cmd_hdr));
-
- cmd_hdr = (struct wmi_cmd_hdr *) skb->data;
- cmd_hdr->cmd_id = cpu_to_le16(cmd_id);
- info1 = if_idx & WMI_CMD_HDR_IF_ID_MASK;
- cmd_hdr->info1 = cpu_to_le16(info1);
-
- /* Only for OPT_TX_CMD, use BE endpoint. */
- if (cmd_id == WMI_OPT_TX_FRAME_CMDID) {
- ret = ath6kl_wmi_data_hdr_add(wmi, skb, OPT_MSGTYPE,
- false, false, 0, NULL, if_idx);
- if (ret) {
- dev_kfree_skb(skb);
- return ret;
- }
- ep_id = ath6kl_ac2_endpoint_id(wmi->parent_dev, WMM_AC_BE);
- }
-
- ath6kl_control_tx(wmi->parent_dev, skb, ep_id);
-
- if ((sync_flag == SYNC_AFTER_WMIFLAG) ||
- (sync_flag == SYNC_BOTH_WMIFLAG)) {
- /*
- * Make sure all new data queued waits for the command to
- * execute. Establish a new sync point.
- */
- ath6kl_wmi_sync_point(wmi, if_idx);
- }
-
- return 0;
-}
-
-int ath6kl_wmi_connect_cmd(struct wmi *wmi, u8 if_idx,
- enum network_type nw_type,
- enum dot11_auth_mode dot11_auth_mode,
- enum auth_mode auth_mode,
- enum crypto_type pairwise_crypto,
- u8 pairwise_crypto_len,
- enum crypto_type group_crypto,
- u8 group_crypto_len, int ssid_len, u8 *ssid,
- u8 *bssid, u16 channel, u32 ctrl_flags,
- u8 nw_subtype)
-{
- struct sk_buff *skb;
- struct wmi_connect_cmd *cc;
- int ret;
-
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "wmi connect bssid %s freq %d flags 0x%x ssid_len %d "
- "type %d dot11_auth %d auth %d pairwise %d group %d\n",
- sec_conv_mac(bssid), channel, ctrl_flags, ssid_len, nw_type,
- dot11_auth_mode, auth_mode, pairwise_crypto, group_crypto);
- ath6kl_dbg_dump(ATH6KL_DBG_WMI, NULL, "ssid ", ssid, ssid_len);
-
- wmi->traffic_class = 100;
-
- if ((pairwise_crypto == NONE_CRYPT) && (group_crypto != NONE_CRYPT))
- return -EINVAL;
-
- if ((pairwise_crypto != NONE_CRYPT) && (group_crypto == NONE_CRYPT))
- return -EINVAL;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(struct wmi_connect_cmd));
- if (!skb)
- return -ENOMEM;
-
- cc = (struct wmi_connect_cmd *) skb->data;
-
- if (ssid_len)
- memcpy(cc->ssid, ssid, ssid_len);
-
- cc->ssid_len = ssid_len;
- cc->nw_type = nw_type;
- cc->dot11_auth_mode = dot11_auth_mode;
- cc->auth_mode = auth_mode;
- cc->prwise_crypto_type = pairwise_crypto;
- cc->prwise_crypto_len = pairwise_crypto_len;
- cc->grp_crypto_type = group_crypto;
- cc->grp_crypto_len = group_crypto_len;
- cc->ch = cpu_to_le16(channel);
- cc->ctrl_flags = cpu_to_le32(ctrl_flags);
- cc->nw_subtype = nw_subtype;
-
- if (bssid != NULL)
- memcpy(cc->bssid, bssid, ETH_ALEN);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_CONNECT_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-int ath6kl_wmi_reconnect_cmd(struct wmi *wmi, u8 if_idx, u8 *bssid,
- u16 channel)
-{
- struct sk_buff *skb;
- struct wmi_reconnect_cmd *cc;
- int ret;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "wmi reconnect bssid %s freq %d\n",
- sec_conv_mac(bssid), channel);
-
- wmi->traffic_class = 100;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(struct wmi_reconnect_cmd));
- if (!skb)
- return -ENOMEM;
-
- cc = (struct wmi_reconnect_cmd *) skb->data;
- cc->channel = cpu_to_le16(channel);
-
- if (bssid != NULL)
- memcpy(cc->bssid, bssid, ETH_ALEN);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_RECONNECT_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-int ath6kl_wmi_disconnect_cmd(struct wmi *wmi, u8 if_idx)
-{
- int ret;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "wmi disconnect\n");
-
- wmi->traffic_class = 100;
-
- /* Disconnect command does not need to do a SYNC before. */
- ret = ath6kl_wmi_simple_cmd(wmi, if_idx, WMI_DISCONNECT_CMDID);
-
- return ret;
-}
-
-int ath6kl_wmi_beginscan_cmd(struct wmi *wmi, u8 if_idx,
- enum wmi_scan_type scan_type,
- u32 force_fgscan, u32 is_legacy,
- u32 home_dwell_time, u32 force_scan_interval,
- s8 num_chan, u16 *ch_list, u32 no_cck, u32 *rates)
-{
- struct sk_buff *skb;
- struct wmi_begin_scan_cmd *sc;
-#ifdef CONFIG_MACH_PX
- unsigned int size;
-#else
- s8 size;
-#endif
- int i, band, ret;
- struct ath6kl *ar = wmi->parent_dev;
- int num_rates;
-
- size = sizeof(struct wmi_begin_scan_cmd);
-
- if ((scan_type != WMI_LONG_SCAN) && (scan_type != WMI_SHORT_SCAN))
- return -EINVAL;
-
-#ifdef CONFIG_MACH_PX
-#else
- if (num_chan > WMI_MAX_CHANNELS)
- return -EINVAL;
-#endif
-
- if (num_chan)
- size += sizeof(u16) * (num_chan - 1);
-
- skb = ath6kl_wmi_get_new_buf(size);
- if (!skb)
- return -ENOMEM;
-
- sc = (struct wmi_begin_scan_cmd *) skb->data;
- sc->scan_type = scan_type;
- sc->force_fg_scan = cpu_to_le32(force_fgscan);
- sc->is_legacy = cpu_to_le32(is_legacy);
- sc->home_dwell_time = cpu_to_le32(home_dwell_time);
- sc->force_scan_intvl = cpu_to_le32(force_scan_interval);
- sc->no_cck = cpu_to_le32(no_cck);
- sc->num_ch = num_chan;
-
- for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
- struct ieee80211_supported_band *sband =
- ar->wiphy->bands[band];
- u32 ratemask = rates[band];
- u8 *supp_rates = sc->supp_rates[band].rates;
- num_rates = 0;
-
- for (i = 0; i < sband->n_bitrates; i++) {
- if ((BIT(i) & ratemask) == 0)
- continue; /* skip rate */
- supp_rates[num_rates++] =
- (u8) (sband->bitrates[i].bitrate / 5);
- }
- sc->supp_rates[band].nrates = num_rates;
- }
-
- for (i = 0; i < num_chan; i++)
- sc->ch_list[i] = cpu_to_le16(ch_list[i]);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_BEGIN_SCAN_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-/* ath6kl_wmi_start_scan_cmd is to be deprecated. Use
- * ath6kl_wmi_begin_scan_cmd instead. The new function supports P2P
- * mgmt operations using station interface.
- */
-int ath6kl_wmi_startscan_cmd(struct wmi *wmi, u8 if_idx,
- enum wmi_scan_type scan_type,
- u32 force_fgscan, u32 is_legacy,
- u32 home_dwell_time, u32 force_scan_interval,
- s8 num_chan, u16 *ch_list)
-{
- struct sk_buff *skb;
- struct wmi_start_scan_cmd *sc;
- s8 size;
- int i, ret;
-
- size = sizeof(struct wmi_start_scan_cmd);
-
- if ((scan_type != WMI_LONG_SCAN) && (scan_type != WMI_SHORT_SCAN))
- return -EINVAL;
-
- if (num_chan > WMI_MAX_CHANNELS)
- return -EINVAL;
-
- if (num_chan)
- size += sizeof(u16) * (num_chan - 1);
-
- skb = ath6kl_wmi_get_new_buf(size);
- if (!skb)
- return -ENOMEM;
-
- sc = (struct wmi_start_scan_cmd *) skb->data;
- sc->scan_type = scan_type;
- sc->force_fg_scan = cpu_to_le32(force_fgscan);
- sc->is_legacy = cpu_to_le32(is_legacy);
- sc->home_dwell_time = cpu_to_le32(home_dwell_time);
- sc->force_scan_intvl = cpu_to_le32(force_scan_interval);
- sc->num_ch = num_chan;
-
- for (i = 0; i < num_chan; i++)
- sc->ch_list[i] = cpu_to_le16(ch_list[i]);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_START_SCAN_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-int ath6kl_wmi_scanparams_cmd(struct wmi *wmi, u8 if_idx,
- u16 fg_start_sec,
- u16 fg_end_sec, u16 bg_sec,
- u16 minact_chdw_msec, u16 maxact_chdw_msec,
- u16 pas_chdw_msec, u8 short_scan_ratio,
- u8 scan_ctrl_flag, u32 max_dfsch_act_time,
- u16 maxact_scan_per_ssid)
-{
- struct sk_buff *skb;
- struct wmi_scan_params_cmd *sc;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*sc));
- if (!skb)
- return -ENOMEM;
-
- sc = (struct wmi_scan_params_cmd *) skb->data;
- sc->fg_start_period = cpu_to_le16(fg_start_sec);
- sc->fg_end_period = cpu_to_le16(fg_end_sec);
- sc->bg_period = cpu_to_le16(bg_sec);
- sc->minact_chdwell_time = cpu_to_le16(minact_chdw_msec);
- sc->maxact_chdwell_time = cpu_to_le16(maxact_chdw_msec);
- sc->pas_chdwell_time = cpu_to_le16(pas_chdw_msec);
- sc->short_scan_ratio = short_scan_ratio;
- sc->scan_ctrl_flags = scan_ctrl_flag;
- sc->max_dfsch_act_time = cpu_to_le32(max_dfsch_act_time);
- sc->maxact_scan_per_ssid = cpu_to_le16(maxact_scan_per_ssid);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_SCAN_PARAMS_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_bssfilter_cmd(struct wmi *wmi, u8 if_idx, u8 filter, u32 ie_mask)
-{
- struct sk_buff *skb;
- struct wmi_bss_filter_cmd *cmd;
- int ret;
-
- if (filter >= LAST_BSS_FILTER)
- return -EINVAL;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_bss_filter_cmd *) skb->data;
- cmd->bss_filter = filter;
- cmd->ie_mask = cpu_to_le32(ie_mask);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_BSS_FILTER_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_probedssid_cmd(struct wmi *wmi, u8 if_idx, u8 index, u8 flag,
- u8 ssid_len, u8 *ssid)
-{
- struct sk_buff *skb;
- struct wmi_probed_ssid_cmd *cmd;
- int ret;
-
- if (index > MAX_PROBED_SSIDS)
- return -EINVAL;
-
- if (ssid_len > sizeof(cmd->ssid))
- return -EINVAL;
-
- if ((flag & (DISABLE_SSID_FLAG | ANY_SSID_FLAG)) && (ssid_len > 0))
- return -EINVAL;
-
- if ((flag & SPECIFIC_SSID_FLAG) && !ssid_len)
- return -EINVAL;
-
- if (flag & SPECIFIC_SSID_FLAG)
- wmi->is_probe_ssid = true;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_probed_ssid_cmd *) skb->data;
- cmd->entry_index = index;
- cmd->flag = flag;
- cmd->ssid_len = ssid_len;
- memcpy(cmd->ssid, ssid, ssid_len);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_PROBED_SSID_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_listeninterval_cmd(struct wmi *wmi, u8 if_idx,
- u16 listen_interval,
- u16 listen_beacons)
-{
- struct sk_buff *skb;
- struct wmi_listen_int_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_listen_int_cmd *) skb->data;
- cmd->listen_intvl = cpu_to_le16(listen_interval);
- cmd->num_beacons = cpu_to_le16(listen_beacons);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_LISTEN_INT_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_mcastrate_cmd(struct wmi *wmi, u8 if_idx,
- u16 bitrate)
-{
- struct sk_buff *skb;
- struct wmi_set_mcastrate_cmd *cmd;
- int ret;
-
- printk(KERN_INFO "\tmcastrate = %d\n", bitrate);
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_mcastrate_cmd *) skb->data;
- cmd->bitrate = bitrate;
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_MCASTRATE_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-int ath6kl_wmi_bmisstime_cmd(struct wmi *wmi, u8 if_idx,
- u16 bmiss_time,
- u16 num_beacons)
-{
- struct sk_buff *skb;
- struct wmi_bmiss_time_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_bmiss_time_cmd *) skb->data;
- cmd->bmiss_time = cpu_to_le16(bmiss_time);
- cmd->num_beacons = cpu_to_le16(num_beacons);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_BMISS_TIME_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_powermode_cmd(struct wmi *wmi, u8 if_idx, u8 pwr_mode)
-{
- struct sk_buff *skb;
- struct wmi_power_mode_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_power_mode_cmd *) skb->data;
-
- if(wmi->parent_dev->psminfo == 0)
- {
- pwr_mode = MAX_PERF_POWER;
- ath6kl_dbg(ATH6KL_DBG_WMI, "%s() pwr_mode = %d\n",
- __func__, pwr_mode);
- }
-
- cmd->pwr_mode = pwr_mode;
- wmi->pwr_mode = pwr_mode;
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_POWER_MODE_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_pmparams_cmd(struct wmi *wmi, u8 if_idx, u16 idle_period,
- u16 ps_poll_num, u16 dtim_policy,
- u16 tx_wakeup_policy, u16 num_tx_to_wakeup,
- u16 ps_fail_event_policy)
-{
- struct sk_buff *skb;
- struct wmi_power_params_cmd *pm;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*pm));
- if (!skb)
- return -ENOMEM;
-
- pm = (struct wmi_power_params_cmd *)skb->data;
- pm->idle_period = cpu_to_le16(idle_period);
- pm->pspoll_number = cpu_to_le16(ps_poll_num);
- pm->dtim_policy = cpu_to_le16(dtim_policy);
- pm->tx_wakeup_policy = cpu_to_le16(tx_wakeup_policy);
- pm->num_tx_to_wakeup = cpu_to_le16(num_tx_to_wakeup);
- pm->ps_fail_event_policy = cpu_to_le16(ps_fail_event_policy);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_POWER_PARAMS_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_disctimeout_cmd(struct wmi *wmi, u8 if_idx, u8 timeout)
-{
- struct sk_buff *skb;
- struct wmi_disc_timeout_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_disc_timeout_cmd *) skb->data;
- cmd->discon_timeout = timeout;
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_DISC_TIMEOUT_CMDID,
- NO_SYNC_WMIFLAG);
-
- if (ret == 0)
- ath6kl_debug_set_disconnect_timeout(wmi->parent_dev, timeout);
-
- return ret;
-}
-
-int ath6kl_wmi_addkey_cmd(struct wmi *wmi, u8 if_idx, u8 key_index,
- enum crypto_type key_type,
- u8 key_usage, u8 key_len,
- u8 *key_rsc, unsigned int key_rsc_len,
- u8 *key_material,
- u8 key_op_ctrl, u8 *mac_addr,
- enum wmi_sync_flag sync_flag)
-{
- struct sk_buff *skb;
- struct wmi_add_cipher_key_cmd *cmd;
- int ret;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "addkey cmd: key_index=%u key_type=%d "
- "key_usage=%d key_len=%d key_op_ctrl=%d\n",
- key_index, key_type, key_usage, key_len, key_op_ctrl);
-
- if ((key_index > WMI_MAX_KEY_INDEX) || (key_len > WMI_MAX_KEY_LEN) ||
- (key_material == NULL) || key_rsc_len > 8)
- return -EINVAL;
-
- if ((WEP_CRYPT != key_type) && (NULL == key_rsc))
- return -EINVAL;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_add_cipher_key_cmd *) skb->data;
- cmd->key_index = key_index;
- cmd->key_type = key_type;
- cmd->key_usage = key_usage;
- cmd->key_len = key_len;
- memcpy(cmd->key, key_material, key_len);
-
- if (key_rsc != NULL)
- memcpy(cmd->key_rsc, key_rsc, key_rsc_len);
-
- cmd->key_op_ctrl = key_op_ctrl;
-
- if (mac_addr)
- memcpy(cmd->key_mac_addr, mac_addr, ETH_ALEN);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_ADD_CIPHER_KEY_CMDID,
- sync_flag);
-
- return ret;
-}
-
-int ath6kl_wmi_add_krk_cmd(struct wmi *wmi, u8 if_idx, u8 *krk)
-{
- struct sk_buff *skb;
- struct wmi_add_krk_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_add_krk_cmd *) skb->data;
- memcpy(cmd->krk, krk, WMI_KRK_LEN);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_ADD_KRK_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-int ath6kl_wmi_deletekey_cmd(struct wmi *wmi, u8 if_idx, u8 key_index)
-{
- struct sk_buff *skb;
- struct wmi_delete_cipher_key_cmd *cmd;
- int ret;
-
- if (key_index > WMI_MAX_KEY_INDEX)
- return -EINVAL;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_delete_cipher_key_cmd *) skb->data;
- cmd->key_index = key_index;
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_DELETE_CIPHER_KEY_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-int ath6kl_wmi_setpmkid_cmd(struct wmi *wmi, u8 if_idx, const u8 *bssid,
- const u8 *pmkid, bool set)
-{
- struct sk_buff *skb;
- struct wmi_setpmkid_cmd *cmd;
- int ret;
-
- if (bssid == NULL)
- return -EINVAL;
-
- if (set && pmkid == NULL)
- return -EINVAL;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_setpmkid_cmd *) skb->data;
- memcpy(cmd->bssid, bssid, ETH_ALEN);
- if (set) {
- memcpy(cmd->pmkid, pmkid, sizeof(cmd->pmkid));
- cmd->enable = PMKID_ENABLE;
- } else {
- memset(cmd->pmkid, 0, sizeof(cmd->pmkid));
- cmd->enable = PMKID_DISABLE;
- }
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_PMKID_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-static int ath6kl_wmi_data_sync_send(struct wmi *wmi, struct sk_buff *skb,
- enum htc_endpoint_id ep_id, u8 if_idx)
-{
- struct wmi_data_hdr *data_hdr;
- int ret;
-
- if (WARN_ON(skb == NULL || ep_id == wmi->ep_id))
- return -EINVAL;
-
- skb_push(skb, sizeof(struct wmi_data_hdr));
-
- data_hdr = (struct wmi_data_hdr *) skb->data;
- data_hdr->info = SYNC_MSGTYPE << WMI_DATA_HDR_MSG_TYPE_SHIFT;
- data_hdr->info3 = cpu_to_le16(if_idx & WMI_DATA_HDR_IF_IDX_MASK);
-
- ret = ath6kl_control_tx(wmi->parent_dev, skb, ep_id);
-
- return ret;
-}
-
-static int ath6kl_wmi_sync_point(struct wmi *wmi, u8 if_idx)
-{
- struct sk_buff *skb;
- struct wmi_sync_cmd *cmd;
- struct wmi_data_sync_bufs data_sync_bufs[WMM_NUM_AC];
- enum htc_endpoint_id ep_id;
- u8 index, num_pri_streams = 0;
- int ret = 0;
- u8 fat_pipe_exist;
-
- memset(data_sync_bufs, 0, sizeof(data_sync_bufs));
-
- spin_lock_bh(&wmi->lock);
-
- fat_pipe_exist = wmi->fat_pipe_exist;
-
- for (index = 0; index < WMM_NUM_AC; index++) {
- if (fat_pipe_exist & (1 << index)) {
- num_pri_streams++;
- data_sync_bufs[num_pri_streams - 1].traffic_class =
- index;
- }
- }
-
- spin_unlock_bh(&wmi->lock);
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb) {
- ret = -ENOMEM;
- goto free_skb;
- }
-
- cmd = (struct wmi_sync_cmd *) skb->data;
-
- /*
- * In the SYNC cmd sent on the control Ep, send a bitmap
- * of the data eps on which the Data Sync will be sent
- */
- cmd->data_sync_map = fat_pipe_exist;
-
- for (index = 0; index < num_pri_streams; index++) {
- data_sync_bufs[index].skb = ath6kl_buf_alloc(0);
- if (data_sync_bufs[index].skb == NULL) {
- ret = -ENOMEM;
- break;
- }
- }
-
- /*
- * If buffer allocation for any of the dataSync fails,
- * then do not send the Synchronize cmd on the control ep
- */
- if (ret)
- goto free_skb;
-
- /*
- * Send sync cmd followed by sync data messages on all
- * endpoints being used
- */
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SYNCHRONIZE_CMDID,
- NO_SYNC_WMIFLAG);
-
- if (ret)
- goto free_skb;
-
- /* cmd buffer sent, we no longer own it */
- skb = NULL;
-
- for (index = 0; index < num_pri_streams; index++) {
-
- if (WARN_ON(!data_sync_bufs[index].skb))
- break;
-
- ep_id = ath6kl_ac2_endpoint_id(wmi->parent_dev,
- data_sync_bufs[index].
- traffic_class);
- ret =
- ath6kl_wmi_data_sync_send(wmi, data_sync_bufs[index].skb,
- ep_id, if_idx);
-
- if (ret)
- break;
-
- data_sync_bufs[index].skb = NULL;
- }
-
-free_skb:
- /* free up any resources left over (possibly due to an error) */
- if (skb)
- dev_kfree_skb(skb);
-
- for (index = 0; index < num_pri_streams; index++) {
- if (data_sync_bufs[index].skb != NULL) {
- dev_kfree_skb((struct sk_buff *)data_sync_bufs[index].
- skb);
- }
- }
-
- return ret;
-}
-
-int ath6kl_wmi_create_pstream_cmd(struct wmi *wmi, u8 if_idx,
- struct wmi_create_pstream_cmd *params)
-{
- struct sk_buff *skb;
- struct wmi_create_pstream_cmd *cmd;
- u8 fatpipe_exist_for_ac = 0;
- s32 min_phy = 0;
- s32 nominal_phy = 0;
- int ret;
-
- if (!((params->user_pri < 8) &&
- (params->user_pri <= 0x7) &&
- (up_to_ac[params->user_pri & 0x7] == params->traffic_class) &&
- (params->traffic_direc == UPLINK_TRAFFIC ||
- params->traffic_direc == DNLINK_TRAFFIC ||
- params->traffic_direc == BIDIR_TRAFFIC) &&
- (params->traffic_type == TRAFFIC_TYPE_APERIODIC ||
- params->traffic_type == TRAFFIC_TYPE_PERIODIC) &&
- (params->voice_psc_cap == DISABLE_FOR_THIS_AC ||
- params->voice_psc_cap == ENABLE_FOR_THIS_AC ||
- params->voice_psc_cap == ENABLE_FOR_ALL_AC) &&
- (params->tsid == WMI_IMPLICIT_PSTREAM ||
- params->tsid <= WMI_MAX_THINSTREAM))) {
- return -EINVAL;
- }
-
- /*
- * Check nominal PHY rate is >= minimalPHY,
- * so that DUT can allow TSRS IE
- */
-
- /* Get the physical rate (units of bps) */
- min_phy = ((le32_to_cpu(params->min_phy_rate) / 1000) / 1000);
-
- /* Check minimal phy < nominal phy rate */
- if (params->nominal_phy >= min_phy) {
- /* unit of 500 kbps */
- nominal_phy = (params->nominal_phy * 1000) / 500;
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "TSRS IE enabled::MinPhy %x->NominalPhy ===> %x\n",
- min_phy, nominal_phy);
-
- params->nominal_phy = nominal_phy;
- } else {
- params->nominal_phy = 0;
- }
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "sending create_pstream_cmd: ac=%d tsid:%d\n",
- params->traffic_class, params->tsid);
-
- cmd = (struct wmi_create_pstream_cmd *) skb->data;
- memcpy(cmd, params, sizeof(*cmd));
-
- /* This is an implicitly created Fat pipe */
- if ((u32) params->tsid == (u32) WMI_IMPLICIT_PSTREAM) {
- spin_lock_bh(&wmi->lock);
- fatpipe_exist_for_ac = (wmi->fat_pipe_exist &
- (1 << params->traffic_class));
- wmi->fat_pipe_exist |= (1 << params->traffic_class);
- spin_unlock_bh(&wmi->lock);
- } else {
- /* explicitly created thin stream within a fat pipe */
- spin_lock_bh(&wmi->lock);
- fatpipe_exist_for_ac = (wmi->fat_pipe_exist &
- (1 << params->traffic_class));
- wmi->stream_exist_for_ac[params->traffic_class] |=
- (1 << params->tsid);
- /*
- * If a thinstream becomes active, the fat pipe automatically
- * becomes active
- */
- wmi->fat_pipe_exist |= (1 << params->traffic_class);
- spin_unlock_bh(&wmi->lock);
- }
-
- /*
- * Indicate activty change to driver layer only if this is the
- * first TSID to get created in this AC explicitly or an implicit
- * fat pipe is getting created.
- */
- if (!fatpipe_exist_for_ac)
- ath6kl_indicate_tx_activity(wmi->parent_dev,
- params->traffic_class, true);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_CREATE_PSTREAM_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_delete_pstream_cmd(struct wmi *wmi, u8 if_idx, u8 traffic_class,
- u8 tsid)
-{
- struct sk_buff *skb;
- struct wmi_delete_pstream_cmd *cmd;
- u16 active_tsids = 0;
- int ret;
-
- if (traffic_class > 3) {
- ath6kl_err("invalid traffic class: %d\n", traffic_class);
- return -EINVAL;
- }
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_delete_pstream_cmd *) skb->data;
- cmd->traffic_class = traffic_class;
- cmd->tsid = tsid;
-
- spin_lock_bh(&wmi->lock);
- active_tsids = wmi->stream_exist_for_ac[traffic_class];
- spin_unlock_bh(&wmi->lock);
-
- if (!(active_tsids & (1 << tsid))) {
- dev_kfree_skb(skb);
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "TSID %d doesn't exist for traffic class: %d\n",
- tsid, traffic_class);
- return -ENODATA;
- }
-
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "sending delete_pstream_cmd: traffic class: %d tsid=%d\n",
- traffic_class, tsid);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_DELETE_PSTREAM_CMDID,
- SYNC_BEFORE_WMIFLAG);
-
- spin_lock_bh(&wmi->lock);
- wmi->stream_exist_for_ac[traffic_class] &= ~(1 << tsid);
- active_tsids = wmi->stream_exist_for_ac[traffic_class];
- spin_unlock_bh(&wmi->lock);
-
- /*
- * Indicate stream inactivity to driver layer only if all tsids
- * within this AC are deleted.
- */
- if (!active_tsids) {
- ath6kl_indicate_tx_activity(wmi->parent_dev,
- traffic_class, false);
- wmi->fat_pipe_exist &= ~(1 << traffic_class);
- }
-
- return ret;
-}
-
-int ath6kl_wmi_set_ip_cmd(struct wmi *wmi, u8 if_idx,
- __be32 ips0, __be32 ips1)
-{
- struct sk_buff *skb;
- struct wmi_set_ip_cmd *cmd;
- int ret;
-
- /* Multicast address are not valid */
- if (ipv4_is_multicast(ips0) ||
- ipv4_is_multicast(ips1))
- return -EINVAL;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(struct wmi_set_ip_cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_ip_cmd *) skb->data;
- cmd->ips[0] = ips0;
- cmd->ips[1] = ips1;
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_IP_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-static void ath6kl_wmi_relinquish_implicit_pstream_credits(struct wmi *wmi)
-{
- u16 active_tsids;
- u8 stream_exist;
- int i;
-
- /*
- * Relinquish credits from all implicitly created pstreams
- * since when we go to sleep. If user created explicit
- * thinstreams exists with in a fatpipe leave them intact
- * for the user to delete.
- */
- spin_lock_bh(&wmi->lock);
- stream_exist = wmi->fat_pipe_exist;
- spin_unlock_bh(&wmi->lock);
-
- for (i = 0; i < WMM_NUM_AC; i++) {
- if (stream_exist & (1 << i)) {
-
- /*
- * FIXME: Is this lock & unlock inside
- * for loop correct? may need rework.
- */
- spin_lock_bh(&wmi->lock);
- active_tsids = wmi->stream_exist_for_ac[i];
- spin_unlock_bh(&wmi->lock);
-
- /*
- * If there are no user created thin streams
- * delete the fatpipe
- */
- if (!active_tsids) {
- stream_exist &= ~(1 << i);
- /*
- * Indicate inactivity to driver layer for
- * this fatpipe (pstream)
- */
- ath6kl_indicate_tx_activity(wmi->parent_dev,
- i, false);
- }
- }
- }
-
- /* FIXME: Can we do this assignment without locking ? */
- spin_lock_bh(&wmi->lock);
- wmi->fat_pipe_exist = stream_exist;
- spin_unlock_bh(&wmi->lock);
-}
-
-int ath6kl_wmi_set_host_sleep_mode_cmd(struct wmi *wmi, u8 if_idx,
- enum ath6kl_host_mode host_mode)
-{
- struct sk_buff *skb;
- struct wmi_set_host_sleep_mode_cmd *cmd;
- int ret;
-
- if ((host_mode != ATH6KL_HOST_MODE_ASLEEP) &&
- (host_mode != ATH6KL_HOST_MODE_AWAKE)) {
- ath6kl_err("invalid host sleep mode: %d\n", host_mode);
- return -EINVAL;
- }
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_host_sleep_mode_cmd *) skb->data;
-
- if (host_mode == ATH6KL_HOST_MODE_ASLEEP) {
- ath6kl_wmi_relinquish_implicit_pstream_credits(wmi);
- cmd->asleep = cpu_to_le32(1);
- } else
- cmd->awake = cpu_to_le32(1);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb,
- WMI_SET_HOST_SLEEP_MODE_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-/* This command has zero length payload */
-static int ath6kl_wmi_host_sleep_mode_cmd_prcd_evt_rx(struct wmi *wmi,
- struct ath6kl_vif *vif)
-{
- struct ath6kl *ar = wmi->parent_dev;
-
- set_bit(HOST_SLEEP_MODE_CMD_PROCESSED, &vif->flags);
- wake_up(&ar->event_wq);
-
- return 0;
-}
-
-int ath6kl_wmi_set_wow_mode_cmd(struct wmi *wmi, u8 if_idx,
- enum ath6kl_wow_mode wow_mode,
- u32 filter, u16 host_req_delay)
-{
- struct sk_buff *skb;
- struct wmi_set_wow_mode_cmd *cmd;
- int ret;
-
- if ((wow_mode != ATH6KL_WOW_MODE_ENABLE) &&
- wow_mode != ATH6KL_WOW_MODE_DISABLE) {
- ath6kl_err("invalid wow mode: %d\n", wow_mode);
- return -EINVAL;
- }
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_wow_mode_cmd *) skb->data;
- cmd->enable_wow = cpu_to_le32(wow_mode);
- cmd->filter = cpu_to_le32(filter);
- cmd->host_req_delay = cpu_to_le16(host_req_delay);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_WOW_MODE_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_add_wow_pattern_cmd(struct wmi *wmi, u8 if_idx,
- u8 list_id, u8 filter_size,
- u8 filter_offset, const u8 *filter,
- const u8 *mask)
-{
- struct sk_buff *skb;
- struct wmi_add_wow_pattern_cmd *cmd;
- u16 size;
- u8 *filter_mask;
- int ret;
-
- /*
- * Allocate additional memory in the buffer to hold
- * filter and mask value, which is twice of filter_size.
- */
- size = sizeof(*cmd) + (2 * filter_size);
-
- skb = ath6kl_wmi_get_new_buf(size);
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_add_wow_pattern_cmd *) skb->data;
- cmd->filter_list_id = list_id;
- cmd->filter_size = filter_size;
- cmd->filter_offset = filter_offset;
-
- memcpy(cmd->filter, filter, filter_size);
-
- filter_mask = (u8 *) (cmd->filter + filter_size);
- memcpy(filter_mask, mask, filter_size);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_ADD_WOW_PATTERN_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-int ath6kl_wmi_del_wow_pattern_cmd(struct wmi *wmi, u8 if_idx,
- u16 list_id, u16 filter_id)
-{
- struct sk_buff *skb;
- struct wmi_del_wow_pattern_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_del_wow_pattern_cmd *) skb->data;
- cmd->filter_list_id = cpu_to_le16(list_id);
- cmd->filter_id = cpu_to_le16(filter_id);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_DEL_WOW_PATTERN_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-static int ath6kl_wmi_cmd_send_xtnd(struct wmi *wmi, struct sk_buff *skb,
- enum wmix_command_id cmd_id,
- enum wmi_sync_flag sync_flag)
-{
- struct wmix_cmd_hdr *cmd_hdr;
- int ret;
-
- skb_push(skb, sizeof(struct wmix_cmd_hdr));
-
- cmd_hdr = (struct wmix_cmd_hdr *) skb->data;
- cmd_hdr->cmd_id = cpu_to_le32(cmd_id);
-
- ret = ath6kl_wmi_cmd_send(wmi, 0, skb, WMI_EXTENSION_CMDID, sync_flag);
-
- return ret;
-}
-
-int ath6kl_wmi_get_challenge_resp_cmd(struct wmi *wmi, u32 cookie, u32 source)
-{
- struct sk_buff *skb;
- struct wmix_hb_challenge_resp_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmix_hb_challenge_resp_cmd *) skb->data;
- cmd->cookie = cpu_to_le32(cookie);
- cmd->source = cpu_to_le32(source);
-
- ret = ath6kl_wmi_cmd_send_xtnd(wmi, skb, WMIX_HB_CHALLENGE_RESP_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_config_debug_module_cmd(struct wmi *wmi, u32 valid, u32 config)
-{
- struct ath6kl_wmix_dbglog_cfg_module_cmd *cmd;
- struct sk_buff *skb;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct ath6kl_wmix_dbglog_cfg_module_cmd *) skb->data;
- cmd->valid = cpu_to_le32(valid);
- cmd->config = cpu_to_le32(config);
-
- ret = ath6kl_wmi_cmd_send_xtnd(wmi, skb, WMIX_DBGLOG_CFG_MODULE_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_get_stats_cmd(struct wmi *wmi, u8 if_idx)
-{
- return ath6kl_wmi_simple_cmd(wmi, if_idx, WMI_GET_STATISTICS_CMDID);
-}
-
-int ath6kl_wmi_set_tx_pwr_cmd(struct wmi *wmi, u8 if_idx, u8 dbM)
-{
- struct sk_buff *skb;
- struct wmi_set_tx_pwr_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(struct wmi_set_tx_pwr_cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_tx_pwr_cmd *) skb->data;
- cmd->dbM = dbM;
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_TX_PWR_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-int ath6kl_wmi_get_tx_pwr_cmd(struct wmi *wmi, u8 if_idx)
-{
- return ath6kl_wmi_simple_cmd(wmi, if_idx, WMI_GET_TX_PWR_CMDID);
-}
-
-int ath6kl_wmi_get_roam_tbl_cmd(struct wmi *wmi)
-{
- return ath6kl_wmi_simple_cmd(wmi, 0, WMI_GET_ROAM_TBL_CMDID);
-}
-
-int ath6kl_wmi_set_lpreamble_cmd(struct wmi *wmi, u8 if_idx, u8 status,
- u8 preamble_policy)
-{
- struct sk_buff *skb;
- struct wmi_set_lpreamble_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(struct wmi_set_lpreamble_cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_lpreamble_cmd *) skb->data;
- cmd->status = status;
- cmd->preamble_policy = preamble_policy;
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_LPREAMBLE_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_set_rts_cmd(struct wmi *wmi, u16 threshold)
-{
- struct sk_buff *skb;
- struct wmi_set_rts_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(struct wmi_set_rts_cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_rts_cmd *) skb->data;
- cmd->threshold = cpu_to_le16(threshold);
-
- ret = ath6kl_wmi_cmd_send(wmi, 0, skb, WMI_SET_RTS_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_set_wmm_txop(struct wmi *wmi, u8 if_idx, enum wmi_txop_cfg cfg)
-{
- struct sk_buff *skb;
- struct wmi_set_wmm_txop_cmd *cmd;
- int ret;
-
- if (!((cfg == WMI_TXOP_DISABLED) || (cfg == WMI_TXOP_ENABLED)))
- return -EINVAL;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(struct wmi_set_wmm_txop_cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_wmm_txop_cmd *) skb->data;
- cmd->txop_enable = cfg;
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_WMM_TXOP_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_set_keepalive_cmd(struct wmi *wmi, u8 if_idx,
- u8 keep_alive_intvl)
-{
- struct sk_buff *skb;
- struct wmi_set_keepalive_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_keepalive_cmd *) skb->data;
- cmd->keep_alive_intvl = keep_alive_intvl;
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_KEEPALIVE_CMDID,
- NO_SYNC_WMIFLAG);
-
- if (ret == 0)
- ath6kl_debug_set_keepalive(wmi->parent_dev, keep_alive_intvl);
-
- return ret;
-}
-
-int ath6kl_wmi_test_cmd(struct wmi *wmi, void *buf, size_t len)
-{
- struct sk_buff *skb;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(len);
- if (!skb)
- return -ENOMEM;
-
- memcpy(skb->data, buf, len);
-
- ret = ath6kl_wmi_cmd_send(wmi, 0, skb, WMI_TEST_CMDID, NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-int ath6kl_wmi_mcast_filter_cmd(struct wmi *wmi, u8 if_idx, bool mc_all_on)
-{
- struct sk_buff *skb;
- struct wmi_mcast_filter_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_mcast_filter_cmd *) skb->data;
- cmd->mcast_all_enable = mc_all_on;
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_MCAST_FILTER_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-int ath6kl_wmi_add_del_mcast_filter_cmd(struct wmi *wmi, u8 if_idx,
- u8 *filter, bool add_filter)
-{
- struct sk_buff *skb;
- struct wmi_mcast_filter_add_del_cmd *cmd;
- int ret;
-
- if ((filter[0] != 0x33 || filter[1] != 0x33) &&
- (filter[0] != 0x01 || filter[1] != 0x00 ||
- filter[2] != 0x5e || filter[3] > 0x7f)) {
- ath6kl_warn("invalid multicast filter address\n");
- return -EINVAL;
- }
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_mcast_filter_add_del_cmd *) skb->data;
- memcpy(cmd->mcast_mac, filter, ATH6KL_MCAST_FILTER_MAC_ADDR_SIZE);
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb,
- add_filter ? WMI_SET_MCAST_FILTER_CMDID :
- WMI_DEL_MCAST_FILTER_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-int ath6kl_wmi_set_ht_cap_cmd(struct wmi *wmi, u8 if_idx,
- struct wmi_set_ht_cap_cmd *params)
-{
- struct sk_buff *skb;
- struct wmi_set_ht_cap_cmd *cmd;
- struct ath6kl *ar = wmi->parent_dev;
- struct ieee80211_supported_band *sband;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_ht_cap_cmd *) skb->data;
- ath6kl_dbg(ATH6KL_DBG_WMI, "bands %d, ht_supported = %d, "
- "chan_width_40m_supported %d, short_gi_20mhz = %d, "
- "short_gi_40mhz = %d, intolerance_40mhz = %d\n",
- params->band, params->enable,
- params->chan_width_40m_supported, params->short_gi_20mhz,
- params->short_gi_40mhz, params->intolerance_40mhz);
- memcpy(cmd, params, sizeof(*cmd));
-
- sband = ar->wiphy->bands[params->band];
- sband->ht_cap.ht_supported = params->enable;
- if (params->chan_width_40m_supported)
- sband->ht_cap.cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40;
- else
- sband->ht_cap.cap &= ~IEEE80211_HT_CAP_SUP_WIDTH_20_40;
-
- if (params->short_gi_20mhz)
- sband->ht_cap.cap |= IEEE80211_HT_CAP_SGI_20;
- else
- sband->ht_cap.cap &= ~IEEE80211_HT_CAP_SGI_20;
-
- if (params->short_gi_40mhz)
- sband->ht_cap.cap |= IEEE80211_HT_CAP_SGI_40;
- else
- sband->ht_cap.cap &= ~IEEE80211_HT_CAP_SGI_40;
-
- if (params->intolerance_40mhz)
- sband->ht_cap.cap |= IEEE80211_HT_CAP_40MHZ_INTOLERANT;
- else
- sband->ht_cap.cap &= ~IEEE80211_HT_CAP_40MHZ_INTOLERANT;
-
- if (params->max_ampdu_len_exp)
- sband->ht_cap.cap |= IEEE80211_HT_CAP_MAX_AMSDU;
- else
- sband->ht_cap.cap &= ~IEEE80211_HT_CAP_MAX_AMSDU;
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_HT_CAP_CMDID,
- NO_SYNC_WMIFLAG);
- return ret;
-}
-
-
-s32 ath6kl_wmi_get_rate(s8 rate_index)
-{
- u32 sgi;
-
- if (rate_index == RATE_AUTO)
- return 0;
-
- /* SGI is stored as the MSG of the rate_index */
- if (rate_index & 0x80) {
- rate_index &= 0x7f;
- sgi = 1;
- } else {
- sgi = 0;
- }
-
- if (rate_index > RATE_MCS_7_40)
- rate_index = RATE_MCS_7_40;
-
- return wmi_rate_tbl[(u32) rate_index][sgi];
-}
-
-static int ath6kl_wmi_get_pmkid_list_event_rx(struct wmi *wmi, u8 *datap,
- u32 len)
-{
- struct wmi_pmkid_list_reply *reply;
- u32 expected_len;
-
- if (len < sizeof(struct wmi_pmkid_list_reply))
- return -EINVAL;
-
- reply = (struct wmi_pmkid_list_reply *)datap;
- expected_len = sizeof(reply->num_pmkid) +
- le32_to_cpu(reply->num_pmkid) * WMI_PMKID_LEN;
-
- if (len < expected_len)
- return -EINVAL;
-
- return 0;
-}
-
-static int ath6kl_wmi_addba_req_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_addba_req_event *cmd = (struct wmi_addba_req_event *) datap;
-
- aggr_recv_addba_req_evt(vif, cmd->tid,
- le16_to_cpu(cmd->st_seq_no), cmd->win_sz);
-
- return 0;
-}
-
-static int ath6kl_wmi_delba_req_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_delba_event *cmd = (struct wmi_delba_event *) datap;
-
- aggr_recv_delba_req_evt(vif, cmd->tid);
-
- return 0;
-}
-
-/* AP mode functions */
-
-int ath6kl_wmi_ap_profile_commit(struct wmi *wmip, u8 if_idx,
- struct wmi_connect_cmd *p)
-{
- struct sk_buff *skb;
- struct wmi_connect_cmd *cm;
- int res;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cm));
- if (!skb)
- return -ENOMEM;
-
- cm = (struct wmi_connect_cmd *) skb->data;
- memcpy(cm, p, sizeof(*cm));
-
- res = ath6kl_wmi_cmd_send(wmip, if_idx, skb, WMI_AP_CONFIG_COMMIT_CMDID,
- NO_SYNC_WMIFLAG);
- ath6kl_dbg(ATH6KL_DBG_WMI, "%s: nw_type=%u auth_mode=%u ch=%u "
- "ctrl_flags=0x%x-> res=%d\n",
- __func__, p->nw_type, p->auth_mode, le16_to_cpu(p->ch),
- le32_to_cpu(p->ctrl_flags), res);
- return res;
-}
-
-int ath6kl_wmi_ap_set_mlme(struct wmi *wmip, u8 if_idx, u8 cmd, const u8 *mac,
- u16 reason)
-{
- struct sk_buff *skb;
- struct wmi_ap_set_mlme_cmd *cm;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cm));
- if (!skb)
- return -ENOMEM;
-
- cm = (struct wmi_ap_set_mlme_cmd *) skb->data;
- memcpy(cm->mac, mac, ETH_ALEN);
- cm->reason = cpu_to_le16(reason);
- cm->cmd = cmd;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "ap_set_mlme: cmd=%d reason=%d\n", cm->cmd,
- cm->reason);
-
- return ath6kl_wmi_cmd_send(wmip, if_idx, skb, WMI_AP_SET_MLME_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-int ath6kl_wmi_ap_hidden_ssid(struct wmi *wmi, u8 if_idx, bool enable)
-{
- struct sk_buff *skb;
- struct wmi_ap_hidden_ssid_cmd *cmd;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_ap_hidden_ssid_cmd *) skb->data;
- cmd->hidden_ssid = enable ? 1 : 0;
-
- return ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_AP_HIDDEN_SSID_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-/* This command will be used to enable/disable AP uAPSD feature */
-int ath6kl_wmi_ap_set_apsd(struct wmi *wmi, u8 if_idx, u8 enable)
-{
- struct wmi_ap_set_apsd_cmd *cmd;
- struct sk_buff *skb;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_ap_set_apsd_cmd *)skb->data;
- cmd->enable = enable;
-
- return ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_AP_SET_APSD_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-int ath6kl_wmi_set_apsd_bfrd_traf(struct wmi *wmi, u8 if_idx,
- u16 aid, u16 bitmap, u32 flags)
-{
- struct wmi_ap_apsd_buffered_traffic_cmd *cmd;
- struct sk_buff *skb;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_ap_apsd_buffered_traffic_cmd *)skb->data;
- cmd->aid = cpu_to_le16(aid);
- cmd->bitmap = cpu_to_le16(bitmap);
- cmd->flags = cpu_to_le32(flags);
-
- return ath6kl_wmi_cmd_send(wmi, if_idx, skb,
- WMI_AP_APSD_BUFFERED_TRAFFIC_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-static int ath6kl_wmi_pspoll_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- struct wmi_pspoll_event *ev;
-
- if (len < sizeof(struct wmi_pspoll_event))
- return -EINVAL;
-
- ev = (struct wmi_pspoll_event *) datap;
-
- ath6kl_pspoll_event(vif, le16_to_cpu(ev->aid));
-
- return 0;
-}
-
-static int ath6kl_wmi_dtimexpiry_event_rx(struct wmi *wmi, u8 *datap, int len,
- struct ath6kl_vif *vif)
-{
- ath6kl_dtimexpiry_event(vif);
-
- return 0;
-}
-
-int ath6kl_wmi_set_pvb_cmd(struct wmi *wmi, u8 if_idx, u16 aid,
- bool flag)
-{
- struct sk_buff *skb;
- struct wmi_ap_set_pvb_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(struct wmi_ap_set_pvb_cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_ap_set_pvb_cmd *) skb->data;
- cmd->aid = cpu_to_le16(aid);
- cmd->rsvd = cpu_to_le16(0);
- cmd->flag = cpu_to_le32(flag);
-
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_AP_SET_PVB_CMDID,
- NO_SYNC_WMIFLAG);
-
- return 0;
-}
-
-int ath6kl_wmi_set_rx_frame_format_cmd(struct wmi *wmi, u8 if_idx,
- u8 rx_meta_ver,
- bool rx_dot11_hdr, bool defrag_on_host)
-{
- struct sk_buff *skb;
- struct wmi_rx_frame_format_cmd *cmd;
- int ret;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_rx_frame_format_cmd *) skb->data;
- cmd->dot11_hdr = rx_dot11_hdr ? 1 : 0;
- cmd->defrag_on_host = defrag_on_host ? 1 : 0;
- cmd->meta_ver = rx_meta_ver;
-
- /* Delete the local aggr state, on host */
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_RX_FRAME_FORMAT_CMDID,
- NO_SYNC_WMIFLAG);
-
- return ret;
-}
-
-int ath6kl_wmi_set_appie_cmd(struct wmi *wmi, u8 if_idx, u8 mgmt_frm_type,
- const u8 *ie, u8 ie_len)
-{
- struct sk_buff *skb;
- struct wmi_set_appie_cmd *p;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*p) + ie_len);
- if (!skb)
- return -ENOMEM;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "set_appie_cmd: mgmt_frm_type=%u "
- "ie_len=%u\n", mgmt_frm_type, ie_len);
- p = (struct wmi_set_appie_cmd *) skb->data;
- p->mgmt_frm_type = mgmt_frm_type;
- p->ie_len = ie_len;
-
- if (ie != NULL && ie_len > 0)
- memcpy(p->ie_info, ie, ie_len);
-
- return ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_APPIE_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-int ath6kl_wmi_set_ie_cmd(struct wmi *wmi, u8 if_idx, u8 ie_id, u8 ie_field,
- const u8 *ie_info, u8 ie_len)
-{
- struct sk_buff *skb;
- struct wmi_set_ie_cmd *p;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*p) + ie_len);
- if (!skb)
- return -ENOMEM;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "set_ie_cmd: ie_id=%u ie_ie_field=%u "
- "ie_len=%u\n", ie_id, ie_field, ie_len);
- p = (struct wmi_set_ie_cmd *) skb->data;
- p->ie_id = ie_id;
- p->ie_field = ie_field;
- p->ie_len = ie_len;
- if (ie_info != NULL && ie_len > 0)
- memcpy(p->ie_info, ie_info, ie_len);
-
- return ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SET_IE_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-int ath6kl_wmi_disable_11b_rates_cmd(struct wmi *wmi, bool disable)
-{
- struct sk_buff *skb;
- struct wmi_disable_11b_rates_cmd *cmd;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
- if (!skb)
- return -ENOMEM;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "disable_11b_rates_cmd: disable=%u\n",
- disable);
- cmd = (struct wmi_disable_11b_rates_cmd *) skb->data;
- cmd->disable = disable ? 1 : 0;
-
- return ath6kl_wmi_cmd_send(wmi, 0, skb, WMI_DISABLE_11B_RATES_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-int ath6kl_wmi_remain_on_chnl_cmd(struct wmi *wmi, u8 if_idx, u32 freq, u32 dur)
-{
- struct sk_buff *skb;
- struct wmi_remain_on_chnl_cmd *p;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*p));
- if (!skb)
- return -ENOMEM;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "remain_on_chnl_cmd: freq=%u dur=%u\n",
- freq, dur);
- p = (struct wmi_remain_on_chnl_cmd *) skb->data;
- p->freq = cpu_to_le32(freq);
- p->duration = cpu_to_le32(dur);
- return ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_REMAIN_ON_CHNL_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-/* ath6kl_wmi_send_action_cmd is to be deprecated. Use
- * ath6kl_wmi_send_mgmt_cmd instead. The new function supports P2P
- * mgmt operations using station interface.
- */
-static int ath6kl_wmi_send_action_cmd(struct wmi *wmi, u8 if_idx, u32 id,
- u32 freq, u32 wait, const u8 *data,
- u16 data_len)
-{
- struct sk_buff *skb;
- struct wmi_send_action_cmd *p;
- u8 *buf;
- int ret;
-
- if (wait)
- return -EINVAL; /* Offload for wait not supported */
-
- buf = kmalloc(data_len, GFP_KERNEL);
- if (!buf)
- return -ENOMEM;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*p) + data_len);
- if (!skb) {
- kfree(buf);
- return -ENOMEM;
- }
-
- mutex_lock(&wmi->lock_mgmt);
- if (wmi->last_mgmt_tx_frame)
- kfree(wmi->last_mgmt_tx_frame);
-
- memcpy(buf, data, data_len);
- wmi->last_mgmt_tx_frame = buf;
- wmi->last_mgmt_tx_frame_len = data_len;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "send_action_cmd: id=%u freq=%u wait=%u "
- "len=%u\n", id, freq, wait, data_len);
- p = (struct wmi_send_action_cmd *) skb->data;
- p->id = cpu_to_le32(id);
- p->freq = cpu_to_le32(freq);
- p->wait = cpu_to_le32(wait);
- p->len = cpu_to_le16(data_len);
- memcpy(p->data, data, data_len);
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SEND_ACTION_CMDID,
- NO_SYNC_WMIFLAG);
- mutex_unlock(&wmi->lock_mgmt);
- return ret;
-}
-
-static int __ath6kl_wmi_send_mgmt_cmd(struct wmi *wmi, u8 if_idx, u32 id,
- u32 freq, u32 wait, const u8 *data,
- u16 data_len, u32 no_cck)
-{
- struct sk_buff *skb;
- struct wmi_send_mgmt_cmd *p;
- u8 *buf;
- int ret;
-
- if (wait)
- return -EINVAL; /* Offload for wait not supported */
-
- buf = kmalloc(data_len, GFP_KERNEL);
- if (!buf)
- return -ENOMEM;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*p) + data_len);
- if (!skb) {
- kfree(buf);
- return -ENOMEM;
- }
-
- mutex_lock(&wmi->lock_mgmt);
- if (wmi->last_mgmt_tx_frame)
- kfree(wmi->last_mgmt_tx_frame);
-
- memcpy(buf, data, data_len);
- wmi->last_mgmt_tx_frame = buf;
- wmi->last_mgmt_tx_frame_len = data_len;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "send_action_cmd: id=%u freq=%u wait=%u "
- "len=%u\n", id, freq, wait, data_len);
- p = (struct wmi_send_mgmt_cmd *) skb->data;
- p->id = cpu_to_le32(id);
- p->freq = cpu_to_le32(freq);
- p->wait = cpu_to_le32(wait);
- p->no_cck = cpu_to_le32(no_cck);
- p->len = cpu_to_le16(data_len);
- memcpy(p->data, data, data_len);
- ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_SEND_MGMT_CMDID,
- NO_SYNC_WMIFLAG);
- mutex_unlock(&wmi->lock_mgmt);
-
- return ret;
-}
-
-int ath6kl_wmi_send_mgmt_cmd(struct wmi *wmi, u8 if_idx, u32 id, u32 freq,
- u32 wait, const u8 *data, u16 data_len,
- u32 no_cck)
-{
- int status;
- struct ath6kl *ar = wmi->parent_dev;
-
- if (test_bit(ATH6KL_FW_CAPABILITY_STA_P2PDEV_DUPLEX,
- ar->fw_capabilities)) {
- /*
- * If capable of doing P2P mgmt operations using
- * station interface, send additional information like
- * supported rates to advertise and xmit rates for
- * probe requests
- */
- status = __ath6kl_wmi_send_mgmt_cmd(ar->wmi, if_idx, id, freq,
- wait, data, data_len,
- no_cck);
- } else {
- status = ath6kl_wmi_send_action_cmd(ar->wmi, if_idx, id, freq,
- wait, data, data_len);
- }
-
- return status;
-}
-
-int ath6kl_wmi_send_probe_response_cmd(struct wmi *wmi, u8 if_idx, u32 freq,
- const u8 *dst, const u8 *data,
- u16 data_len)
-{
- struct sk_buff *skb;
- struct wmi_p2p_probe_response_cmd *p;
- size_t cmd_len = sizeof(*p) + data_len;
-
- if (data_len == 0)
- cmd_len++; /* work around target minimum length requirement */
-
- skb = ath6kl_wmi_get_new_buf(cmd_len);
- if (!skb)
- return -ENOMEM;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "send_probe_response_cmd: freq=%u dst=%s "
- "len=%u\n", freq, sec_conv_mac(dst), data_len);
- p = (struct wmi_p2p_probe_response_cmd *) skb->data;
- p->freq = cpu_to_le32(freq);
- memcpy(p->destination_addr, dst, ETH_ALEN);
- p->len = cpu_to_le16(data_len);
- memcpy(p->data, data, data_len);
- return ath6kl_wmi_cmd_send(wmi, if_idx, skb,
- WMI_SEND_PROBE_RESPONSE_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-int ath6kl_wmi_probe_report_req_cmd(struct wmi *wmi, u8 if_idx, bool enable)
-{
- struct sk_buff *skb;
- struct wmi_probe_req_report_cmd *p;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*p));
- if (!skb)
- return -ENOMEM;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "probe_report_req_cmd: enable=%u\n",
- enable);
- p = (struct wmi_probe_req_report_cmd *) skb->data;
- p->enable = enable ? 1 : 0;
- return ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_PROBE_REQ_REPORT_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-int ath6kl_wmi_info_req_cmd(struct wmi *wmi, u8 if_idx, u32 info_req_flags)
-{
- struct sk_buff *skb;
- struct wmi_get_p2p_info *p;
-
- skb = ath6kl_wmi_get_new_buf(sizeof(*p));
- if (!skb)
- return -ENOMEM;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "info_req_cmd: flags=%x\n",
- info_req_flags);
- p = (struct wmi_get_p2p_info *) skb->data;
- p->info_req_flags = cpu_to_le32(info_req_flags);
- return ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_GET_P2P_INFO_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-int ath6kl_wmi_cancel_remain_on_chnl_cmd(struct wmi *wmi, u8 if_idx)
-{
- ath6kl_dbg(ATH6KL_DBG_WMI, "cancel_remain_on_chnl_cmd\n");
- return ath6kl_wmi_simple_cmd(wmi, if_idx,
- WMI_CANCEL_REMAIN_ON_CHNL_CMDID);
-}
-
-static int ath6kl_wmi_control_rx_xtnd(struct wmi *wmi, struct sk_buff *skb)
-{
- struct wmix_cmd_hdr *cmd;
- u32 len;
- u16 id;
- u8 *datap;
- int ret = 0;
-
- if (skb->len < sizeof(struct wmix_cmd_hdr)) {
- ath6kl_err("bad packet 1\n");
- return -EINVAL;
- }
-
- cmd = (struct wmix_cmd_hdr *) skb->data;
- id = le32_to_cpu(cmd->cmd_id);
-
- skb_pull(skb, sizeof(struct wmix_cmd_hdr));
-
- datap = skb->data;
- len = skb->len;
-
- switch (id) {
- case WMIX_HB_CHALLENGE_RESP_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "wmi event hb challenge resp\n");
- break;
- case WMIX_DBGLOG_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "wmi event dbglog len %d\n", len);
- ath6kl_debug_fwlog_event(wmi->parent_dev, datap, len);
- break;
- default:
- ath6kl_warn("unknown cmd id 0x%x\n", id);
- ret = -EINVAL;
- break;
- }
-
- return ret;
-}
-
-static int ath6kl_wmi_roam_tbl_event_rx(struct wmi *wmi, u8 *datap, int len)
-{
- return ath6kl_debug_roam_tbl_event(wmi->parent_dev, datap, len);
-}
-
-/* Control Path */
-int ath6kl_wmi_control_rx(struct wmi *wmi, struct sk_buff *skb)
-{
- struct wmi_cmd_hdr *cmd;
- struct ath6kl_vif *vif;
- __le32 regcode;
- u32 len;
- u16 id;
- u8 if_idx;
- u8 *datap;
- int ret = 0;
-
- if (WARN_ON(skb == NULL))
- return -EINVAL;
-
- if (skb->len < sizeof(struct wmi_cmd_hdr)) {
- ath6kl_err("bad packet 1\n");
- dev_kfree_skb(skb);
- return -EINVAL;
- }
-
- cmd = (struct wmi_cmd_hdr *) skb->data;
- id = le16_to_cpu(cmd->cmd_id);
- if_idx = le16_to_cpu(cmd->info1) & WMI_CMD_HDR_IF_ID_MASK;
-
- skb_pull(skb, sizeof(struct wmi_cmd_hdr));
-
- datap = skb->data;
- len = skb->len;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "wmi rx id %d len %d\n", id, len);
- ath6kl_dbg_dump(ATH6KL_DBG_WMI_DUMP, NULL, "wmi rx ",
- datap, len);
-
- vif = ath6kl_get_vif_by_index(wmi->parent_dev, if_idx);
- if (!vif) {
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "Wmi event for unavailable vif, vif_index:%d\n",
- if_idx);
- dev_kfree_skb(skb);
- return -EINVAL;
- }
-
- switch (id) {
- case WMI_GET_BITRATE_CMDID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_GET_BITRATE_CMDID\n");
- ret = ath6kl_wmi_bitrate_reply_rx(wmi, datap, len);
- break;
- case WMI_GET_CHANNEL_LIST_CMDID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_GET_CHANNEL_LIST_CMDID\n");
- ret = ath6kl_wmi_ch_list_reply_rx(wmi, datap, len);
- break;
- case WMI_GET_TX_PWR_CMDID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_GET_TX_PWR_CMDID\n");
- ret = ath6kl_wmi_tx_pwr_reply_rx(wmi, datap, len);
- break;
- case WMI_READY_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_READY_EVENTID\n");
- ret = ath6kl_wmi_ready_event_rx(wmi, datap, len);
- cfg80211_send_event_to_app(skb->dev, id, datap, len);
- break;
- case WMI_CONNECT_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_CONNECT_EVENTID\n");
- ret = ath6kl_wmi_connect_event_rx(wmi, datap, len, vif);
- cfg80211_send_genevent_to_app(skb->dev, id, datap, len);
- break;
- case WMI_DISCONNECT_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_DISCONNECT_EVENTID\n");
- ret = ath6kl_wmi_disconnect_event_rx(wmi, datap, len, vif);
- cfg80211_send_event_to_app(skb->dev, id, datap, len);
- break;
- case WMI_PEER_NODE_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_PEER_NODE_EVENTID\n");
- ret = ath6kl_wmi_peer_node_event_rx(wmi, datap, len);
- cfg80211_send_event_to_app(skb->dev, id, datap, len);
- break;
- case WMI_TKIP_MICERR_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_TKIP_MICERR_EVENTID\n");
- ret = ath6kl_wmi_tkip_micerr_event_rx(wmi, datap, len, vif);
- break;
- case WMI_BSSINFO_EVENTID:
- /* ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_BSSINFO_EVENTID\n"); */
- ret = ath6kl_wmi_bssinfo_event_rx(wmi, datap, len, vif);
- break;
- case WMI_REGDOMAIN_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_REGDOMAIN_EVENTID\n");
- memcpy(&regcode, datap, 4);
- ath6kl_info("%s: 0x%x WWR:%d\n",
- le32_to_cpu(regcode) & BIT(31) ?
- "Country Code" : "Reg Domain",
- le32_to_cpu(regcode) & 0xfff,
- !!(le32_to_cpu(regcode) & BIT(30)));
- ath6kl_wmi_regdomain_event(wmi, datap, len);
- break;
- case WMI_PSTREAM_TIMEOUT_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_PSTREAM_TIMEOUT_EVENTID\n");
- ret = ath6kl_wmi_pstream_timeout_event_rx(wmi, datap, len);
- cfg80211_send_event_to_app(skb->dev, id, datap, len);
- break;
- case WMI_NEIGHBOR_REPORT_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_NEIGHBOR_REPORT_EVENTID\n");
- ret = ath6kl_wmi_neighbor_report_event_rx(wmi, datap, len,
- vif);
- break;
- case WMI_SCAN_COMPLETE_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_SCAN_COMPLETE_EVENTID\n");
- ret = ath6kl_wmi_scan_complete_rx(wmi, datap, len, vif);
- cfg80211_send_event_to_app(skb->dev, id, datap, len);
- break;
- case WMI_CMDERROR_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_CMDERROR_EVENTID\n");
- ret = ath6kl_wmi_error_event_rx(wmi, datap, len);
- break;
- case WMI_REPORT_STATISTICS_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_REPORT_STATISTICS_EVENTID\n");
- ret = ath6kl_wmi_stats_event_rx(wmi, datap, len, vif);
- break;
- case WMI_RSSI_THRESHOLD_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_RSSI_THRESHOLD_EVENTID\n");
- ret = ath6kl_wmi_rssi_threshold_event_rx(wmi, datap, len);
- break;
- case WMI_ERROR_REPORT_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_ERROR_REPORT_EVENTID\n");
- ath6kl_wmi_error_report_event(wmi, datap, len);
- cfg80211_send_event_to_app(skb->dev, id, datap, len);
- break;
- case WMI_OPT_RX_FRAME_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_OPT_RX_FRAME_EVENTID\n");
- /* this event has been deprecated */
- break;
- case WMI_REPORT_ROAM_TBL_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_REPORT_ROAM_TBL_EVENTID\n");
- ret = ath6kl_wmi_roam_tbl_event_rx(wmi, datap, len);
- break;
- case WMI_EXTENSION_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_EXTENSION_EVENTID\n");
- ret = ath6kl_wmi_control_rx_xtnd(wmi, skb);
- break;
- case WMI_CAC_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_CAC_EVENTID\n");
- ret = ath6kl_wmi_cac_event_rx(wmi, datap, len, vif);
- break;
- case WMI_CHANNEL_CHANGE_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_CHANNEL_CHANGE_EVENTID\n");
- break;
- case WMI_REPORT_ROAM_DATA_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_REPORT_ROAM_DATA_EVENTID\n");
- break;
- case WMI_TEST_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_TEST_EVENTID\n");
- ret = ath6kl_wmi_test_rx(wmi, datap, len);
- break;
- case WMI_GET_FIXRATES_CMDID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_GET_FIXRATES_CMDID\n");
- ret = ath6kl_wmi_ratemask_reply_rx(wmi, datap, len);
- break;
- case WMI_TX_RETRY_ERR_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_TX_RETRY_ERR_EVENTID\n");
- cfg80211_send_event_to_app(skb->dev, id, datap, len);
- break;
- case WMI_SNR_THRESHOLD_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_SNR_THRESHOLD_EVENTID\n");
- ret = ath6kl_wmi_snr_threshold_event_rx(wmi, datap, len);
- break;
- case WMI_LQ_THRESHOLD_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_LQ_THRESHOLD_EVENTID\n");
- cfg80211_send_event_to_app(skb->dev, id, datap, len);
- break;
- case WMI_APLIST_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_APLIST_EVENTID\n");
- ret = ath6kl_wmi_aplist_event_rx(wmi, datap, len);
- break;
- case WMI_GET_KEEPALIVE_CMDID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_GET_KEEPALIVE_CMDID\n");
- ret = ath6kl_wmi_keepalive_reply_rx(wmi, datap, len);
- break;
- case WMI_GET_WOW_LIST_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_GET_WOW_LIST_EVENTID\n");
- break;
- case WMI_GET_PMKID_LIST_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_GET_PMKID_LIST_EVENTID\n");
- ret = ath6kl_wmi_get_pmkid_list_event_rx(wmi, datap, len);
- break;
- case WMI_PSPOLL_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_PSPOLL_EVENTID\n");
- ret = ath6kl_wmi_pspoll_event_rx(wmi, datap, len, vif);
- break;
- case WMI_DTIMEXPIRY_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_DTIMEXPIRY_EVENTID\n");
- ret = ath6kl_wmi_dtimexpiry_event_rx(wmi, datap, len, vif);
- break;
- case WMI_SET_PARAMS_REPLY_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_SET_PARAMS_REPLY_EVENTID\n");
- break;
- case WMI_ADDBA_REQ_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_ADDBA_REQ_EVENTID\n");
- ret = ath6kl_wmi_addba_req_event_rx(wmi, datap, len, vif);
- break;
- case WMI_ADDBA_RESP_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_ADDBA_RESP_EVENTID\n");
- break;
- case WMI_DELBA_REQ_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_DELBA_REQ_EVENTID\n");
- ret = ath6kl_wmi_delba_req_event_rx(wmi, datap, len, vif);
- break;
- case WMI_REPORT_BTCOEX_CONFIG_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "WMI_REPORT_BTCOEX_CONFIG_EVENTID\n");
- break;
- case WMI_REPORT_BTCOEX_STATS_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "WMI_REPORT_BTCOEX_STATS_EVENTID\n");
- break;
- case WMI_TX_COMPLETE_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_TX_COMPLETE_EVENTID\n");
- ret = ath6kl_wmi_tx_complete_event_rx(datap, len);
- break;
- case WMI_SET_HOST_SLEEP_MODE_CMD_PROCESSED_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "WMI_SET_HOST_SLEEP_MODE_CMD_PROCESSED_EVENTID");
- ret = ath6kl_wmi_host_sleep_mode_cmd_prcd_evt_rx(wmi, vif);
- break;
- case WMI_REMAIN_ON_CHNL_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_REMAIN_ON_CHNL_EVENTID\n");
- ret = ath6kl_wmi_remain_on_chnl_event_rx(wmi, datap, len, vif);
- break;
- case WMI_CANCEL_REMAIN_ON_CHNL_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "WMI_CANCEL_REMAIN_ON_CHNL_EVENTID\n");
- ret = ath6kl_wmi_cancel_remain_on_chnl_event_rx(wmi, datap,
- len, vif);
- break;
- case WMI_TX_STATUS_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_TX_STATUS_EVENTID\n");
- ret = ath6kl_wmi_tx_status_event_rx(wmi, datap, len, vif);
- break;
- case WMI_RX_PROBE_REQ_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_RX_PROBE_REQ_EVENTID\n");
- ret = ath6kl_wmi_rx_probe_req_event_rx(wmi, datap, len, vif);
- break;
- case WMI_P2P_CAPABILITIES_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_P2P_CAPABILITIES_EVENTID\n");
- ret = ath6kl_wmi_p2p_capabilities_event_rx(datap, len);
- break;
- case WMI_RX_ACTION_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_RX_ACTION_EVENTID\n");
- ret = ath6kl_wmi_rx_action_event_rx(wmi, datap, len, vif);
- break;
- case WMI_P2P_INFO_EVENTID:
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_P2P_INFO_EVENTID\n");
- ret = ath6kl_wmi_p2p_info_event_rx(datap, len);
- break;
- default:
- ath6kl_dbg(ATH6KL_DBG_WMI, "unknown cmd id 0x%x\n", id);
- ret = -EINVAL;
- break;
- }
-
- dev_kfree_skb(skb);
-
- return ret;
-}
-
-void ath6kl_wmi_reset(struct wmi *wmi)
-{
- spin_lock_bh(&wmi->lock);
-
- wmi->fat_pipe_exist = 0;
- memset(wmi->stream_exist_for_ac, 0, sizeof(wmi->stream_exist_for_ac));
-
- spin_unlock_bh(&wmi->lock);
-}
-
-void *ath6kl_wmi_init(struct ath6kl *dev)
-{
- struct wmi *wmi;
-
- wmi = kzalloc(sizeof(struct wmi), GFP_KERNEL);
- if (!wmi)
- return NULL;
-
- spin_lock_init(&wmi->lock);
- mutex_init(&wmi->lock_mgmt);
-
- wmi->parent_dev = dev;
-
- wmi->pwr_mode = REC_POWER;
-
- ath6kl_wmi_reset(wmi);
-
- return wmi;
-}
-
-void ath6kl_wmi_shutdown(struct wmi *wmi)
-{
- if (!wmi)
- return;
-
- kfree(wmi->last_mgmt_tx_frame);
- kfree(wmi);
-}
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.h b/drivers/net/wireless/ath/ath6kl/wmi.h
deleted file mode 100755
index 1e6c48d..0000000
--- a/drivers/net/wireless/ath/ath6kl/wmi.h
+++ /dev/null
@@ -1,2602 +0,0 @@
-/*
- * Copyright (c) 2010-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * This file contains the definitions of the WMI protocol specified in the
- * Wireless Module Interface (WMI). It includes definitions of all the
- * commands and events. Commands are messages from the host to the WM.
- * Events and Replies are messages from the WM to the host.
- */
-
-#ifndef WMI_H
-#define WMI_H
-
-#include <linux/ieee80211.h>
-
-#include "htc.h"
-
-#define HTC_PROTOCOL_VERSION 0x0002
-#define WMI_PROTOCOL_VERSION 0x0002
-#define WMI_CONTROL_MSG_MAX_LEN 256
-#define is_ethertype(type_or_len) ((type_or_len) >= 0x0600)
-
-#define IP_ETHERTYPE 0x0800
-
-#define WMI_IMPLICIT_PSTREAM 0xFF
-#define WMI_MAX_THINSTREAM 15
-
-#define SSID_IE_LEN_INDEX 13
-
-/* Host side link management data structures */
-#define SIG_QUALITY_THRESH_LVLS 6
-#define SIG_QUALITY_UPPER_THRESH_LVLS SIG_QUALITY_THRESH_LVLS
-#define SIG_QUALITY_LOWER_THRESH_LVLS SIG_QUALITY_THRESH_LVLS
-
-#define A_BAND_24GHZ 0
-#define A_BAND_5GHZ 1
-#define A_NUM_BANDS 2
-
-/* in ms */
-#define WMI_IMPLICIT_PSTREAM_INACTIVITY_INT 5000
-
-/*
- * There are no signed versions of __le16 and __le32, so for a temporary
- * solution come up with our own version. The idea is from fs/ntfs/types.h.
- *
- * Use a_ prefix so that it doesn't conflict if we get proper support to
- * linux/types.h.
- */
-typedef __s16 __bitwise a_sle16;
-typedef __s32 __bitwise a_sle32;
-
-static inline a_sle32 a_cpu_to_sle32(s32 val)
-{
- return (__force a_sle32) cpu_to_le32(val);
-}
-
-static inline s32 a_sle32_to_cpu(a_sle32 val)
-{
- return le32_to_cpu((__force __le32) val);
-}
-
-static inline a_sle16 a_cpu_to_sle16(s16 val)
-{
- return (__force a_sle16) cpu_to_le16(val);
-}
-
-static inline s16 a_sle16_to_cpu(a_sle16 val)
-{
- return le16_to_cpu((__force __le16) val);
-}
-
-struct sq_threshold_params {
- s16 upper_threshold[SIG_QUALITY_UPPER_THRESH_LVLS];
- s16 lower_threshold[SIG_QUALITY_LOWER_THRESH_LVLS];
- u32 upper_threshold_valid_count;
- u32 lower_threshold_valid_count;
- u32 polling_interval;
- u8 weight;
- u8 last_rssi;
- u8 last_rssi_poll_event;
-};
-
-struct wmi_data_sync_bufs {
- u8 traffic_class;
- struct sk_buff *skb;
-};
-
-/* WMM stream classes */
-#define WMM_NUM_AC 4
-#define WMM_AC_BE 0 /* best effort */
-#define WMM_AC_BK 1 /* background */
-#define WMM_AC_VI 2 /* video */
-#define WMM_AC_VO 3 /* voice */
-
-#define WMI_VOICE_USER_PRIORITY 0x7
-
-struct wmi {
- u16 stream_exist_for_ac[WMM_NUM_AC];
- u8 fat_pipe_exist;
- struct ath6kl *parent_dev;
- u8 pwr_mode;
- spinlock_t lock;
- struct mutex lock_mgmt;
- enum htc_endpoint_id ep_id;
- struct sq_threshold_params
- sq_threshld[SIGNAL_QUALITY_METRICS_NUM_MAX];
- bool is_wmm_enabled;
- u8 traffic_class;
- bool is_probe_ssid;
-
- u8 *last_mgmt_tx_frame;
- size_t last_mgmt_tx_frame_len;
- u8 saved_pwr_mode;
-};
-
-struct host_app_area {
- __le32 wmi_protocol_ver;
-} __packed;
-
-enum wmi_msg_type {
- DATA_MSGTYPE = 0x0,
- CNTL_MSGTYPE,
- SYNC_MSGTYPE,
- OPT_MSGTYPE,
-};
-
-/*
- * Macros for operating on WMI_DATA_HDR (info) field
- */
-
-#define WMI_DATA_HDR_MSG_TYPE_MASK 0x03
-#define WMI_DATA_HDR_MSG_TYPE_SHIFT 0
-#define WMI_DATA_HDR_UP_MASK 0x07
-#define WMI_DATA_HDR_UP_SHIFT 2
-
-/* In AP mode, the same bit (b5) is used to indicate Power save state in
- * the Rx dir and More data bit state in the tx direction.
- */
-#define WMI_DATA_HDR_PS_MASK 0x1
-#define WMI_DATA_HDR_PS_SHIFT 5
-
-#define WMI_DATA_HDR_MORE 0x20
-
-enum wmi_data_hdr_data_type {
- WMI_DATA_HDR_DATA_TYPE_802_3 = 0,
- WMI_DATA_HDR_DATA_TYPE_802_11,
-
- /* used to be used for the PAL */
- WMI_DATA_HDR_DATA_TYPE_ACL,
-};
-
-/* Bitmap of data header flags */
-enum wmi_data_hdr_flags {
- WMI_DATA_HDR_FLAGS_MORE = 0x1,
- WMI_DATA_HDR_FLAGS_EOSP = 0x2,
- WMI_DATA_HDR_FLAGS_UAPSD = 0x4,
-};
-
-#define WMI_DATA_HDR_DATA_TYPE_MASK 0x3
-#define WMI_DATA_HDR_DATA_TYPE_SHIFT 6
-
-/* Macros for operating on WMI_DATA_HDR (info2) field */
-#define WMI_DATA_HDR_SEQNO_MASK 0xFFF
-#define WMI_DATA_HDR_SEQNO_SHIFT 0
-
-#define WMI_DATA_HDR_AMSDU_MASK 0x1
-#define WMI_DATA_HDR_AMSDU_SHIFT 12
-
-#define WMI_DATA_HDR_META_MASK 0x7
-#define WMI_DATA_HDR_META_SHIFT 13
-
-/* Macros for operating on WMI_DATA_HDR (info3) field */
-#define WMI_DATA_HDR_IF_IDX_MASK 0xF
-
-#define WMI_DATA_HDR_TRIG 0x10
-#define WMI_DATA_HDR_EOSP 0x10
-
-struct wmi_data_hdr {
- s8 rssi;
-
- /*
- * usage of 'info' field(8-bit):
- *
- * b1:b0 - WMI_MSG_TYPE
- * b4:b3:b2 - UP(tid)
- * b5 - Used in AP mode.
- * More-data in tx dir, PS in rx.
- * b7:b6 - Dot3 header(0),
- * Dot11 Header(1),
- * ACL data(2)
- */
- u8 info;
-
- /*
- * usage of 'info2' field(16-bit):
- *
- * b11:b0 - seq_no
- * b12 - A-MSDU?
- * b15:b13 - META_DATA_VERSION 0 - 7
- */
- __le16 info2;
-
- /*
- * usage of info3, 16-bit:
- * b3:b0 - Interface index
- * b4 - uAPSD trigger in rx & EOSP in tx
- * b15:b5 - Reserved
- */
- __le16 info3;
-} __packed;
-
-static inline u8 wmi_data_hdr_get_up(struct wmi_data_hdr *dhdr)
-{
- return (dhdr->info >> WMI_DATA_HDR_UP_SHIFT) & WMI_DATA_HDR_UP_MASK;
-}
-
-static inline void wmi_data_hdr_set_up(struct wmi_data_hdr *dhdr,
- u8 usr_pri)
-{
- dhdr->info &= ~(WMI_DATA_HDR_UP_MASK << WMI_DATA_HDR_UP_SHIFT);
- dhdr->info |= usr_pri << WMI_DATA_HDR_UP_SHIFT;
-}
-
-static inline u8 wmi_data_hdr_get_dot11(struct wmi_data_hdr *dhdr)
-{
- u8 data_type;
-
- data_type = (dhdr->info >> WMI_DATA_HDR_DATA_TYPE_SHIFT) &
- WMI_DATA_HDR_DATA_TYPE_MASK;
- return (data_type == WMI_DATA_HDR_DATA_TYPE_802_11);
-}
-
-static inline u16 wmi_data_hdr_get_seqno(struct wmi_data_hdr *dhdr)
-{
- return (le16_to_cpu(dhdr->info2) >> WMI_DATA_HDR_SEQNO_SHIFT) &
- WMI_DATA_HDR_SEQNO_MASK;
-}
-
-static inline u8 wmi_data_hdr_is_amsdu(struct wmi_data_hdr *dhdr)
-{
- return (le16_to_cpu(dhdr->info2) >> WMI_DATA_HDR_AMSDU_SHIFT) &
- WMI_DATA_HDR_AMSDU_MASK;
-}
-
-static inline u8 wmi_data_hdr_get_meta(struct wmi_data_hdr *dhdr)
-{
- return (le16_to_cpu(dhdr->info2) >> WMI_DATA_HDR_META_SHIFT) &
- WMI_DATA_HDR_META_MASK;
-}
-
-static inline u8 wmi_data_hdr_get_if_idx(struct wmi_data_hdr *dhdr)
-{
- return le16_to_cpu(dhdr->info3) & WMI_DATA_HDR_IF_IDX_MASK;
-}
-
-/* Tx meta version definitions */
-#define WMI_MAX_TX_META_SZ 12
-#define WMI_META_VERSION_1 0x01
-#define WMI_META_VERSION_2 0x02
-
-/* Flag to signal to FW to calculate TCP checksum */
-#define WMI_META_V2_FLAG_CSUM_OFFLOAD 0x01
-
-struct wmi_tx_meta_v1 {
- /* packet ID to identify the tx request */
- u8 pkt_id;
-
- /* rate policy to be used for the tx of this frame */
- u8 rate_plcy_id;
-} __packed;
-
-struct wmi_tx_meta_v2 {
- /*
- * Offset from start of the WMI header for csum calculation to
- * begin.
- */
- u8 csum_start;
-
- /* offset from start of WMI header where final csum goes */
- u8 csum_dest;
-
- /* no of bytes over which csum is calculated */
- u8 csum_flags;
-} __packed;
-
-struct wmi_rx_meta_v1 {
- u8 status;
-
- /* rate index mapped to rate at which this packet was received. */
- u8 rix;
-
- /* rssi of packet */
- u8 rssi;
-
- /* rf channel during packet reception */
- u8 channel;
-
- __le16 flags;
-} __packed;
-
-struct wmi_rx_meta_v2 {
- __le16 csum;
-
- /* bit 0 set -partial csum valid bit 1 set -test mode */
- u8 csum_flags;
-} __packed;
-
-#define WMI_CMD_HDR_IF_ID_MASK 0xF
-
-/* Control Path */
-struct wmi_cmd_hdr {
- __le16 cmd_id;
-
- /* info1 - 16 bits
- * b03:b00 - id
- * b15:b04 - unused */
- __le16 info1;
-
- /* for alignment */
- __le16 reserved;
-} __packed;
-
-static inline u8 wmi_cmd_hdr_get_if_idx(struct wmi_cmd_hdr *chdr)
-{
- return le16_to_cpu(chdr->info1) & WMI_CMD_HDR_IF_ID_MASK;
-}
-
-/* List of WMI commands */
-enum wmi_cmd_id {
- WMI_CONNECT_CMDID = 0x0001,
- WMI_RECONNECT_CMDID,
- WMI_DISCONNECT_CMDID,
- WMI_SYNCHRONIZE_CMDID,
- WMI_CREATE_PSTREAM_CMDID,
- WMI_DELETE_PSTREAM_CMDID,
- /* WMI_START_SCAN_CMDID is to be deprecated. Use
- * WMI_BEGIN_SCAN_CMDID instead. The new cmd supports P2P mgmt
- * operations using station interface.
- */
- WMI_START_SCAN_CMDID,
- WMI_SET_SCAN_PARAMS_CMDID,
- WMI_SET_BSS_FILTER_CMDID,
- WMI_SET_PROBED_SSID_CMDID, /* 10 */
- WMI_SET_LISTEN_INT_CMDID,
- WMI_SET_BMISS_TIME_CMDID,
- WMI_SET_DISC_TIMEOUT_CMDID,
- WMI_GET_CHANNEL_LIST_CMDID,
- WMI_SET_BEACON_INT_CMDID,
- WMI_GET_STATISTICS_CMDID,
- WMI_SET_CHANNEL_PARAMS_CMDID,
- WMI_SET_POWER_MODE_CMDID,
- WMI_SET_IBSS_PM_CAPS_CMDID,
- WMI_SET_POWER_PARAMS_CMDID, /* 20 */
- WMI_SET_POWERSAVE_TIMERS_POLICY_CMDID,
- WMI_ADD_CIPHER_KEY_CMDID,
- WMI_DELETE_CIPHER_KEY_CMDID,
- WMI_ADD_KRK_CMDID,
- WMI_DELETE_KRK_CMDID,
- WMI_SET_PMKID_CMDID,
- WMI_SET_TX_PWR_CMDID,
- WMI_GET_TX_PWR_CMDID,
- WMI_SET_ASSOC_INFO_CMDID,
- WMI_ADD_BAD_AP_CMDID, /* 30 */
- WMI_DELETE_BAD_AP_CMDID,
- WMI_SET_TKIP_COUNTERMEASURES_CMDID,
- WMI_RSSI_THRESHOLD_PARAMS_CMDID,
- WMI_TARGET_ERROR_REPORT_BITMASK_CMDID,
- WMI_SET_ACCESS_PARAMS_CMDID,
- WMI_SET_RETRY_LIMITS_CMDID,
- WMI_SET_OPT_MODE_CMDID,
- WMI_OPT_TX_FRAME_CMDID,
- WMI_SET_VOICE_PKT_SIZE_CMDID,
- WMI_SET_MAX_SP_LEN_CMDID, /* 40 */
- WMI_SET_ROAM_CTRL_CMDID,
- WMI_GET_ROAM_TBL_CMDID,
- WMI_GET_ROAM_DATA_CMDID,
- WMI_ENABLE_RM_CMDID,
- WMI_SET_MAX_OFFHOME_DURATION_CMDID,
- WMI_EXTENSION_CMDID, /* Non-wireless extensions */
- WMI_SNR_THRESHOLD_PARAMS_CMDID,
- WMI_LQ_THRESHOLD_PARAMS_CMDID,
- WMI_SET_LPREAMBLE_CMDID,
- WMI_SET_RTS_CMDID, /* 50 */
- WMI_CLR_RSSI_SNR_CMDID,
- WMI_SET_FIXRATES_CMDID,
- WMI_GET_FIXRATES_CMDID,
- WMI_SET_AUTH_MODE_CMDID,
- WMI_SET_REASSOC_MODE_CMDID,
- WMI_SET_WMM_CMDID,
- WMI_SET_WMM_TXOP_CMDID,
- WMI_TEST_CMDID,
-
- /* COEX AR6002 only */
- WMI_SET_BT_STATUS_CMDID,
- WMI_SET_BT_PARAMS_CMDID, /* 60 */
-
- WMI_SET_KEEPALIVE_CMDID,
- WMI_GET_KEEPALIVE_CMDID,
- WMI_SET_APPIE_CMDID,
- WMI_GET_APPIE_CMDID,
- WMI_SET_WSC_STATUS_CMDID,
-
- /* Wake on Wireless */
- WMI_SET_HOST_SLEEP_MODE_CMDID,
- WMI_SET_WOW_MODE_CMDID,
- WMI_GET_WOW_LIST_CMDID,
- WMI_ADD_WOW_PATTERN_CMDID,
- WMI_DEL_WOW_PATTERN_CMDID, /* 70 */
-
- WMI_SET_FRAMERATES_CMDID,
- WMI_SET_AP_PS_CMDID,
- WMI_SET_QOS_SUPP_CMDID,
- WMI_SET_IE_CMDID,
-
- /* WMI_THIN_RESERVED_... mark the start and end
- * values for WMI_THIN_RESERVED command IDs. These
- * command IDs can be found in wmi_thin.h */
- WMI_THIN_RESERVED_START = 0x8000,
- WMI_THIN_RESERVED_END = 0x8fff,
-
- /* Developer commands starts at 0xF000 */
- WMI_SET_BITRATE_CMDID = 0xF000,
- WMI_GET_BITRATE_CMDID,
- WMI_SET_WHALPARAM_CMDID,
- WMI_SET_MAC_ADDRESS_CMDID,
- WMI_SET_AKMP_PARAMS_CMDID,
- WMI_SET_PMKID_LIST_CMDID,
- WMI_GET_PMKID_LIST_CMDID,
- WMI_ABORT_SCAN_CMDID,
- WMI_SET_TARGET_EVENT_REPORT_CMDID,
-
- /* Unused */
- WMI_UNUSED1,
- WMI_UNUSED2,
-
- /* AP mode commands */
- WMI_AP_HIDDEN_SSID_CMDID,
- WMI_AP_SET_NUM_STA_CMDID,
- WMI_AP_ACL_POLICY_CMDID,
- WMI_AP_ACL_MAC_LIST_CMDID,
- WMI_AP_CONFIG_COMMIT_CMDID,
- WMI_AP_SET_MLME_CMDID,
- WMI_AP_SET_PVB_CMDID,
- WMI_AP_CONN_INACT_CMDID,
- WMI_AP_PROT_SCAN_TIME_CMDID,
- WMI_AP_SET_COUNTRY_CMDID,
- WMI_AP_SET_DTIM_CMDID,
- WMI_AP_MODE_STAT_CMDID,
-
- WMI_SET_IP_CMDID,
- WMI_SET_PARAMS_CMDID,
- WMI_SET_MCAST_FILTER_CMDID,
- WMI_DEL_MCAST_FILTER_CMDID,
-
- WMI_ALLOW_AGGR_CMDID,
- WMI_ADDBA_REQ_CMDID,
- WMI_DELBA_REQ_CMDID,
- WMI_SET_HT_CAP_CMDID,
- WMI_SET_HT_OP_CMDID,
- WMI_SET_TX_SELECT_RATES_CMDID,
- WMI_SET_TX_SGI_PARAM_CMDID,
- WMI_SET_RATE_POLICY_CMDID,
-
- WMI_HCI_CMD_CMDID,
- WMI_RX_FRAME_FORMAT_CMDID,
- WMI_SET_THIN_MODE_CMDID,
- WMI_SET_BT_WLAN_CONN_PRECEDENCE_CMDID,
-
- WMI_AP_SET_11BG_RATESET_CMDID,
- WMI_SET_PMK_CMDID,
- WMI_MCAST_FILTER_CMDID,
-
- /* COEX CMDID AR6003 */
- WMI_SET_BTCOEX_FE_ANT_CMDID,
- WMI_SET_BTCOEX_COLOCATED_BT_DEV_CMDID,
- WMI_SET_BTCOEX_SCO_CONFIG_CMDID,
- WMI_SET_BTCOEX_A2DP_CONFIG_CMDID,
- WMI_SET_BTCOEX_ACLCOEX_CONFIG_CMDID,
- WMI_SET_BTCOEX_BTINQUIRY_PAGE_CONFIG_CMDID,
- WMI_SET_BTCOEX_DEBUG_CMDID,
- WMI_SET_BTCOEX_BT_OPERATING_STATUS_CMDID,
- WMI_GET_BTCOEX_STATS_CMDID,
- WMI_GET_BTCOEX_CONFIG_CMDID,
-
- WMI_SET_DFS_ENABLE_CMDID, /* F034 */
- WMI_SET_DFS_MINRSSITHRESH_CMDID,
- WMI_SET_DFS_MAXPULSEDUR_CMDID,
- WMI_DFS_RADAR_DETECTED_CMDID,
-
- /* P2P commands */
- WMI_P2P_SET_CONFIG_CMDID, /* F038 */
- WMI_WPS_SET_CONFIG_CMDID,
- WMI_SET_REQ_DEV_ATTR_CMDID,
- WMI_P2P_FIND_CMDID,
- WMI_P2P_STOP_FIND_CMDID,
- WMI_P2P_GO_NEG_START_CMDID,
- WMI_P2P_LISTEN_CMDID,
-
- WMI_CONFIG_TX_MAC_RULES_CMDID, /* F040 */
- WMI_SET_PROMISCUOUS_MODE_CMDID,
- WMI_RX_FRAME_FILTER_CMDID,
- WMI_SET_CHANNEL_CMDID,
-
- /* WAC commands */
- WMI_ENABLE_WAC_CMDID,
- WMI_WAC_SCAN_REPLY_CMDID,
- WMI_WAC_CTRL_REQ_CMDID,
- WMI_SET_DIV_PARAMS_CMDID,
-
- WMI_GET_PMK_CMDID,
- WMI_SET_PASSPHRASE_CMDID,
- WMI_SEND_ASSOC_RES_CMDID,
- WMI_SET_ASSOC_REQ_RELAY_CMDID,
-
- /* ACS command, consists of sub-commands */
- WMI_ACS_CTRL_CMDID,
- WMI_SET_EXCESS_TX_RETRY_THRES_CMDID,
- WMI_SET_TBD_TIME_CMDID, /*added for wmiconfig command for TBD */
-
- /* Pktlog cmds */
- WMI_PKTLOG_ENABLE_CMDID,
- WMI_PKTLOG_DISABLE_CMDID,
-
- /* More P2P Cmds */
- WMI_P2P_GO_NEG_REQ_RSP_CMDID,
- WMI_P2P_GRP_INIT_CMDID,
- WMI_P2P_GRP_FORMATION_DONE_CMDID,
- WMI_P2P_INVITE_CMDID,
- WMI_P2P_INVITE_REQ_RSP_CMDID,
- WMI_P2P_PROV_DISC_REQ_CMDID,
- WMI_P2P_SET_CMDID,
-
- WMI_GET_RFKILL_MODE_CMDID,
- WMI_SET_RFKILL_MODE_CMDID,
- WMI_AP_SET_APSD_CMDID,
- WMI_AP_APSD_BUFFERED_TRAFFIC_CMDID,
-
- WMI_P2P_SDPD_TX_CMDID, /* F05C */
- WMI_P2P_STOP_SDPD_CMDID,
- WMI_P2P_CANCEL_CMDID,
- /* Ultra low power store / recall commands */
- WMI_STORERECALL_CONFIGURE_CMDID,
- WMI_STORERECALL_RECALL_CMDID,
- WMI_STORERECALL_HOST_READY_CMDID,
- WMI_FORCE_TARGET_ASSERT_CMDID,
-
- WMI_SET_PROBED_SSID_EX_CMDID,
- WMI_SET_NETWORK_LIST_OFFLOAD_CMDID,
- WMI_SET_ARP_NS_OFFLOAD_CMDID,
- WMI_ADD_WOW_EXT_PATTERN_CMDID,
- WMI_GTK_OFFLOAD_OP_CMDID,
- WMI_REMAIN_ON_CHNL_CMDID,
- WMI_CANCEL_REMAIN_ON_CHNL_CMDID,
- /* WMI_SEND_ACTION_CMDID is to be deprecated. Use
- * WMI_SEND_MGMT_CMDID instead. The new cmd supports P2P mgmt
- * operations using station interface.
- */
- WMI_SEND_ACTION_CMDID,
- WMI_PROBE_REQ_REPORT_CMDID,
- WMI_DISABLE_11B_RATES_CMDID,
- WMI_SEND_PROBE_RESPONSE_CMDID,
- WMI_GET_P2P_INFO_CMDID,
- WMI_AP_JOIN_BSS_CMDID,
-
- WMI_SMPS_ENABLE_CMDID,
- WMI_SMPS_CONFIG_CMDID,
- WMI_SET_RATECTRL_PARM_CMDID,
- /* LPL specific commands*/
- WMI_LPL_FORCE_ENABLE_CMDID,
- WMI_LPL_SET_POLICY_CMDID,
- WMI_LPL_GET_POLICY_CMDID,
- WMI_LPL_GET_HWSTATE_CMDID,
- WMI_LPL_SET_PARAMS_CMDID,
- WMI_LPL_GET_PARAMS_CMDID,
-
- WMI_SET_BUNDLE_PARAM_CMDID,
-
- /*GreenTx specific commands*/
-
- WMI_GREENTX_PARAMS_CMDID,
-
- WMI_RTT_MEASREQ_CMDID,
- WMI_RTT_CAPREQ_CMDID,
- WMI_RTT_STATUSREQ_CMDID,
-
- /* WPS Commands */
- WMI_WPS_START_CMDID,
- WMI_GET_WPS_STATUS_CMDID,
-
- /* More P2P commands */
- WMI_SET_NOA_CMDID,
- WMI_GET_NOA_CMDID,
- WMI_SET_OPPPS_CMDID,
- WMI_GET_OPPPS_CMDID,
- WMI_ADD_PORT_CMDID,
- WMI_DEL_PORT_CMDID,
-
- /* 802.11w cmd */
- WMI_SET_RSN_CAP_CMDID,
- WMI_GET_RSN_CAP_CMDID,
- WMI_SET_IGTK_CMDID,
-
- WMI_RX_FILTER_COALESCE_FILTER_OP_CMDID,
- WMI_RX_FILTER_SET_FRAME_TEST_LIST_CMDID,
-
- WMI_SEND_MGMT_CMDID,
- WMI_BEGIN_SCAN_CMDID,
-
- WMI_SET_MCASTRATE_CMDID,
-};
-
-enum wmi_mgmt_frame_type {
- WMI_FRAME_BEACON = 0,
- WMI_FRAME_PROBE_REQ,
- WMI_FRAME_PROBE_RESP,
- WMI_FRAME_ASSOC_REQ,
- WMI_FRAME_ASSOC_RESP,
- WMI_NUM_MGMT_FRAME
-};
-
-enum wmi_ie_field_type {
- WMI_RSN_IE_CAPB = 0x1,
- WMI_IE_FULL = 0xFF /* indicats full IE */
-};
-
-/* WMI_CONNECT_CMDID */
-enum network_type {
- INFRA_NETWORK = 0x01,
- ADHOC_NETWORK = 0x02,
- ADHOC_CREATOR = 0x04,
- AP_NETWORK = 0x10,
-};
-
-enum network_subtype {
- SUBTYPE_NONE,
- SUBTYPE_BT,
- SUBTYPE_P2PDEV,
- SUBTYPE_P2PCLIENT,
- SUBTYPE_P2PGO,
-};
-
-enum dot11_auth_mode {
- OPEN_AUTH = 0x01,
- SHARED_AUTH = 0x02,
-
- /* different from IEEE_AUTH_MODE definitions */
- LEAP_AUTH = 0x04,
-};
-
-enum auth_mode {
- NONE_AUTH = 0x01,
- WPA_AUTH = 0x02,
- WPA2_AUTH = 0x04,
- WPA_PSK_AUTH = 0x08,
- WPA2_PSK_AUTH = 0x10,
- WPA_AUTH_CCKM = 0x20,
- WPA2_AUTH_CCKM = 0x40,
-};
-
-#define WMI_MAX_KEY_INDEX 3
-
-#define WMI_MAX_KEY_LEN 32
-
-/*
- * NB: these values are ordered carefully; there are lots of
- * of implications in any reordering. In particular beware
- * that 4 is not used to avoid conflicting with IEEE80211_F_PRIVACY.
- */
-#define ATH6KL_CIPHER_WEP 0
-#define ATH6KL_CIPHER_TKIP 1
-#define ATH6KL_CIPHER_AES_OCB 2
-#define ATH6KL_CIPHER_AES_CCM 3
-#define ATH6KL_CIPHER_CKIP 5
-#define ATH6KL_CIPHER_CCKM_KRK 6
-#define ATH6KL_CIPHER_NONE 7 /* pseudo value */
-
-/*
- * 802.11 rate set.
- */
-#define ATH6KL_RATE_MAXSIZE 15 /* max rates we'll handle */
-
-#define ATH_OUI_TYPE 0x01
-#define WPA_OUI_TYPE 0x01
-#define WMM_PARAM_OUI_SUBTYPE 0x01
-#define WMM_OUI_TYPE 0x02
-#define WSC_OUT_TYPE 0x04
-
-enum wmi_connect_ctrl_flags_bits {
- CONNECT_ASSOC_POLICY_USER = 0x0001,
- CONNECT_SEND_REASSOC = 0x0002,
- CONNECT_IGNORE_WPAx_GROUP_CIPHER = 0x0004,
- CONNECT_PROFILE_MATCH_DONE = 0x0008,
- CONNECT_IGNORE_AAC_BEACON = 0x0010,
- CONNECT_CSA_FOLLOW_BSS = 0x0020,
- CONNECT_DO_WPA_OFFLOAD = 0x0040,
- CONNECT_DO_NOT_DEAUTH = 0x0080,
- CONNECT_WPS_FLAG = 0x0100,
-};
-
-struct wmi_connect_cmd {
- u8 nw_type;
- u8 dot11_auth_mode;
- u8 auth_mode;
- u8 prwise_crypto_type;
- u8 prwise_crypto_len;
- u8 grp_crypto_type;
- u8 grp_crypto_len;
- u8 ssid_len;
- u8 ssid[IEEE80211_MAX_SSID_LEN];
- __le16 ch;
- u8 bssid[ETH_ALEN];
- __le32 ctrl_flags;
- u8 nw_subtype;
-} __packed;
-
-/* WMI_RECONNECT_CMDID */
-struct wmi_reconnect_cmd {
- /* channel hint */
- __le16 channel;
-
- /* mandatory if set */
- u8 bssid[ETH_ALEN];
-} __packed;
-
-/* WMI_ADD_CIPHER_KEY_CMDID */
-enum key_usage {
- PAIRWISE_USAGE = 0x00,
- GROUP_USAGE = 0x01,
-
- /* default Tx Key - static WEP only */
- TX_USAGE = 0x02,
-};
-
-/*
- * Bit Flag
- * Bit 0 - Initialise TSC - default is Initialize
- */
-#define KEY_OP_INIT_TSC 0x01
-#define KEY_OP_INIT_RSC 0x02
-
-/* default initialise the TSC & RSC */
-#define KEY_OP_INIT_VAL 0x03
-#define KEY_OP_VALID_MASK 0x03
-
-struct wmi_add_cipher_key_cmd {
- u8 key_index;
- u8 key_type;
-
- /* enum key_usage */
- u8 key_usage;
-
- u8 key_len;
-
- /* key replay sequence counter */
- u8 key_rsc[8];
-
- u8 key[WLAN_MAX_KEY_LEN];
-
- /* additional key control info */
- u8 key_op_ctrl;
-
- u8 key_mac_addr[ETH_ALEN];
-} __packed;
-
-/* WMI_DELETE_CIPHER_KEY_CMDID */
-struct wmi_delete_cipher_key_cmd {
- u8 key_index;
-} __packed;
-
-#define WMI_KRK_LEN 16
-
-/* WMI_ADD_KRK_CMDID */
-struct wmi_add_krk_cmd {
- u8 krk[WMI_KRK_LEN];
-} __packed;
-
-/* WMI_SETPMKID_CMDID */
-
-#define WMI_PMKID_LEN 16
-
-enum pmkid_enable_flg {
- PMKID_DISABLE = 0,
- PMKID_ENABLE = 1,
-};
-
-struct wmi_setpmkid_cmd {
- u8 bssid[ETH_ALEN];
-
- /* enum pmkid_enable_flg */
- u8 enable;
-
- u8 pmkid[WMI_PMKID_LEN];
-} __packed;
-
-/* WMI_START_SCAN_CMD */
-enum wmi_scan_type {
- WMI_LONG_SCAN = 0,
- WMI_SHORT_SCAN = 1,
-};
-
-struct wmi_supp_rates {
- u8 nrates;
- u8 rates[ATH6KL_RATE_MAXSIZE];
-};
-
-struct wmi_begin_scan_cmd {
- __le32 force_fg_scan;
-
- /* for legacy cisco AP compatibility */
- __le32 is_legacy;
-
- /* max duration in the home channel(msec) */
- __le32 home_dwell_time;
-
- /* time interval between scans (msec) */
- __le32 force_scan_intvl;
-
- /* no CCK rates */
- __le32 no_cck;
-
- /* enum wmi_scan_type */
- u8 scan_type;
-
- /* Supported rates to advertise in the probe request frames */
- struct wmi_supp_rates supp_rates[IEEE80211_NUM_BANDS];
-
- /* how many channels follow */
- u8 num_ch;
-
- /* channels in Mhz */
- __le16 ch_list[1];
-} __packed;
-
-/* wmi_start_scan_cmd is to be deprecated. Use
- * wmi_begin_scan_cmd instead. The new structure supports P2P mgmt
- * operations using station interface.
- */
-struct wmi_start_scan_cmd {
- __le32 force_fg_scan;
-
- /* for legacy cisco AP compatibility */
- __le32 is_legacy;
-
- /* max duration in the home channel(msec) */
- __le32 home_dwell_time;
-
- /* time interval between scans (msec) */
- __le32 force_scan_intvl;
-
- /* enum wmi_scan_type */
- u8 scan_type;
-
- /* how many channels follow */
- u8 num_ch;
-
- /* channels in Mhz */
- __le16 ch_list[1];
-} __packed;
-
-/*
- * Warning: scan control flag value of 0xFF is used to disable
- * all flags in WMI_SCAN_PARAMS_CMD. Do not add any more
- * flags here
- */
-enum wmi_scan_ctrl_flags_bits {
-
- /* set if can scan in the connect cmd */
- CONNECT_SCAN_CTRL_FLAGS = 0x01,
-
- /* set if scan for the SSID it is already connected to */
- SCAN_CONNECTED_CTRL_FLAGS = 0x02,
-
- /* set if enable active scan */
- ACTIVE_SCAN_CTRL_FLAGS = 0x04,
-
- /* set if enable roam scan when bmiss and lowrssi */
- ROAM_SCAN_CTRL_FLAGS = 0x08,
-
- /* set if follows customer BSSINFO reporting rule */
- REPORT_BSSINFO_CTRL_FLAGS = 0x10,
-
- /* if disabled, target doesn't scan after a disconnect event */
- ENABLE_AUTO_CTRL_FLAGS = 0x20,
-
- /*
- * Scan complete event with canceled status will be generated when
- * a scan is prempted before it gets completed.
- */
- ENABLE_SCAN_ABORT_EVENT = 0x40
-};
-
-struct wmi_scan_params_cmd {
- /* sec */
- __le16 fg_start_period;
-
- /* sec */
- __le16 fg_end_period;
-
- /* sec */
- __le16 bg_period;
-
- /* msec */
- __le16 maxact_chdwell_time;
-
- /* msec */
- __le16 pas_chdwell_time;
-
- /* how many shorts scan for one long */
- u8 short_scan_ratio;
-
- u8 scan_ctrl_flags;
-
- /* msec */
- __le16 minact_chdwell_time;
-
- /* max active scans per ssid */
- __le16 maxact_scan_per_ssid;
-
- /* msecs */
- __le32 max_dfsch_act_time;
-} __packed;
-
-/* WMI_SET_BSS_FILTER_CMDID */
-enum wmi_bss_filter {
- /* no beacons forwarded */
- NONE_BSS_FILTER = 0x0,
-
- /* all beacons forwarded */
- ALL_BSS_FILTER,
-
- /* only beacons matching profile */
- PROFILE_FILTER,
-
- /* all but beacons matching profile */
- ALL_BUT_PROFILE_FILTER,
-
- /* only beacons matching current BSS */
- CURRENT_BSS_FILTER,
-
- /* all but beacons matching BSS */
- ALL_BUT_BSS_FILTER,
-
- /* beacons matching probed ssid */
- PROBED_SSID_FILTER,
-
- /* marker only */
- LAST_BSS_FILTER,
-};
-
-struct wmi_bss_filter_cmd {
- /* see, enum wmi_bss_filter */
- u8 bss_filter;
-
- /* for alignment */
- u8 reserved1;
-
- /* for alignment */
- __le16 reserved2;
-
- __le32 ie_mask;
-} __packed;
-
-/* WMI_SET_PROBED_SSID_CMDID */
-#define MAX_PROBED_SSIDS 16
-
-enum wmi_ssid_flag {
- /* disables entry */
- DISABLE_SSID_FLAG = 0,
-
- /* probes specified ssid */
- SPECIFIC_SSID_FLAG = 0x01,
-
- /* probes for any ssid */
- ANY_SSID_FLAG = 0x02,
-};
-
-struct wmi_probed_ssid_cmd {
- /* 0 to MAX_PROBED_SSIDS - 1 */
- u8 entry_index;
-
- /* see, enum wmi_ssid_flg */
- u8 flag;
-
- u8 ssid_len;
- u8 ssid[IEEE80211_MAX_SSID_LEN];
-} __packed;
-
-/*
- * WMI_SET_LISTEN_INT_CMDID
- * The Listen interval is between 15 and 3000 TUs
- */
-struct wmi_listen_int_cmd {
- __le16 listen_intvl;
- __le16 num_beacons;
-} __packed;
-
-/* WMI_SET_BMISS_TIME_CMDID */
-struct wmi_bmiss_time_cmd {
- __le16 bmiss_time;
- __le16 num_beacons;
-};
-
-/* WMI_SET_POWER_MODE_CMDID */
-enum wmi_power_mode {
- REC_POWER = 0x01,
- MAX_PERF_POWER,
-};
-
-struct wmi_power_mode_cmd {
- /* see, enum wmi_power_mode */
- u8 pwr_mode;
-} __packed;
-
-/*
- * Policy to determnine whether power save failure event should be sent to
- * host during scanning
- */
-enum power_save_fail_event_policy {
- SEND_POWER_SAVE_FAIL_EVENT_ALWAYS = 1,
- IGNORE_POWER_SAVE_FAIL_EVENT_DURING_SCAN = 2,
-};
-
-struct wmi_power_params_cmd {
- /* msec */
- __le16 idle_period;
-
- __le16 pspoll_number;
- __le16 dtim_policy;
- __le16 tx_wakeup_policy;
- __le16 num_tx_to_wakeup;
- __le16 ps_fail_event_policy;
-} __packed;
-
-/* WMI_SET_DISC_TIMEOUT_CMDID */
-struct wmi_disc_timeout_cmd {
- /* seconds */
- u8 discon_timeout;
-} __packed;
-
-enum dir_type {
- UPLINK_TRAFFIC = 0,
- DNLINK_TRAFFIC = 1,
- BIDIR_TRAFFIC = 2,
-};
-
-enum voiceps_cap_type {
- DISABLE_FOR_THIS_AC = 0,
- ENABLE_FOR_THIS_AC = 1,
- ENABLE_FOR_ALL_AC = 2,
-};
-
-enum traffic_type {
- TRAFFIC_TYPE_APERIODIC = 0,
- TRAFFIC_TYPE_PERIODIC = 1,
-};
-
-/* WMI_SYNCHRONIZE_CMDID */
-struct wmi_sync_cmd {
- u8 data_sync_map;
-} __packed;
-
-/* WMI_CREATE_PSTREAM_CMDID */
-struct wmi_create_pstream_cmd {
- /* msec */
- __le32 min_service_int;
-
- /* msec */
- __le32 max_service_int;
-
- /* msec */
- __le32 inactivity_int;
-
- /* msec */
- __le32 suspension_int;
-
- __le32 service_start_time;
-
- /* in bps */
- __le32 min_data_rate;
-
- /* in bps */
- __le32 mean_data_rate;
-
- /* in bps */
- __le32 peak_data_rate;
-
- __le32 max_burst_size;
- __le32 delay_bound;
-
- /* in bps */
- __le32 min_phy_rate;
-
- __le32 sba;
- __le32 medium_time;
-
- /* in octects */
- __le16 nominal_msdu;
-
- /* in octects */
- __le16 max_msdu;
-
- u8 traffic_class;
-
- /* see, enum dir_type */
- u8 traffic_direc;
-
- u8 rx_queue_num;
-
- /* see, enum traffic_type */
- u8 traffic_type;
-
- /* see, enum voiceps_cap_type */
- u8 voice_psc_cap;
- u8 tsid;
-
- /* 802.1D user priority */
- u8 user_pri;
-
- /* nominal phy rate */
- u8 nominal_phy;
-} __packed;
-
-/* WMI_DELETE_PSTREAM_CMDID */
-struct wmi_delete_pstream_cmd {
- u8 tx_queue_num;
- u8 rx_queue_num;
- u8 traffic_direc;
- u8 traffic_class;
- u8 tsid;
-} __packed;
-
-/* WMI_SET_CHANNEL_PARAMS_CMDID */
-enum wmi_phy_mode {
- WMI_11A_MODE = 0x1,
- WMI_11G_MODE = 0x2,
- WMI_11AG_MODE = 0x3,
- WMI_11B_MODE = 0x4,
- WMI_11GONLY_MODE = 0x5,
-};
-
-#define WMI_MAX_CHANNELS 32
-
-/*
- * WMI_RSSI_THRESHOLD_PARAMS_CMDID
- * Setting the polltime to 0 would disable polling. Threshold values are
- * in the ascending order, and should agree to:
- * (lowThreshold_lowerVal < lowThreshold_upperVal < highThreshold_lowerVal
- * < highThreshold_upperVal)
- */
-
-struct wmi_rssi_threshold_params_cmd {
- /* polling time as a factor of LI */
- __le32 poll_time;
-
- /* lowest of upper */
- a_sle16 thresh_above1_val;
-
- a_sle16 thresh_above2_val;
- a_sle16 thresh_above3_val;
- a_sle16 thresh_above4_val;
- a_sle16 thresh_above5_val;
-
- /* highest of upper */
- a_sle16 thresh_above6_val;
-
- /* lowest of bellow */
- a_sle16 thresh_below1_val;
-
- a_sle16 thresh_below2_val;
- a_sle16 thresh_below3_val;
- a_sle16 thresh_below4_val;
- a_sle16 thresh_below5_val;
-
- /* highest of bellow */
- a_sle16 thresh_below6_val;
-
- /* "alpha" */
- u8 weight;
-
- u8 reserved[3];
-} __packed;
-
-/*
- * WMI_SNR_THRESHOLD_PARAMS_CMDID
- * Setting the polltime to 0 would disable polling.
- */
-
-struct wmi_snr_threshold_params_cmd {
- /* polling time as a factor of LI */
- __le32 poll_time;
-
- /* "alpha" */
- u8 weight;
-
- /* lowest of uppper */
- u8 thresh_above1_val;
-
- u8 thresh_above2_val;
- u8 thresh_above3_val;
-
- /* highest of upper */
- u8 thresh_above4_val;
-
- /* lowest of bellow */
- u8 thresh_below1_val;
-
- u8 thresh_below2_val;
- u8 thresh_below3_val;
-
- /* highest of bellow */
- u8 thresh_below4_val;
-
- u8 reserved[3];
-} __packed;
-
-enum wmi_preamble_policy {
- WMI_IGNORE_BARKER_IN_ERP = 0,
- WMI_DONOT_IGNORE_BARKER_IN_ERP
-};
-
-struct wmi_set_lpreamble_cmd {
- u8 status;
- u8 preamble_policy;
-} __packed;
-
-struct wmi_set_rts_cmd {
- __le16 threshold;
-} __packed;
-
-/* WMI_SET_TX_PWR_CMDID */
-struct wmi_set_tx_pwr_cmd {
- /* in dbM units */
- u8 dbM;
-} __packed;
-
-struct wmi_tx_pwr_reply {
- /* in dbM units */
- u8 dbM;
-} __packed;
-
-struct wmi_report_sleep_state_event {
- __le32 sleep_state;
-};
-
-enum wmi_report_sleep_status {
- WMI_REPORT_SLEEP_STATUS_IS_DEEP_SLEEP = 0,
- WMI_REPORT_SLEEP_STATUS_IS_AWAKE
-};
-enum target_event_report_config {
- /* default */
- DISCONN_EVT_IN_RECONN = 0,
-
- NO_DISCONN_EVT_IN_RECONN
-};
-
-struct wmi_mcast_filter_cmd {
- u8 mcast_all_enable;
-} __packed;
-
-#define ATH6KL_MCAST_FILTER_MAC_ADDR_SIZE 6
-struct wmi_mcast_filter_add_del_cmd {
- u8 mcast_mac[ATH6KL_MCAST_FILTER_MAC_ADDR_SIZE];
-} __packed;
-
-/* Command Replies */
-
-/* WMI_GET_CHANNEL_LIST_CMDID reply */
-struct wmi_channel_list_reply {
- u8 reserved;
-
- /* number of channels in reply */
- u8 num_ch;
-
- /* channel in Mhz */
- __le16 ch_list[1];
-} __packed;
-
-/* List of Events (target to host) */
-enum wmi_event_id {
- WMI_READY_EVENTID = 0x1001,
- WMI_CONNECT_EVENTID,
- WMI_DISCONNECT_EVENTID,
- WMI_BSSINFO_EVENTID,
- WMI_CMDERROR_EVENTID,
- WMI_REGDOMAIN_EVENTID,
- WMI_PSTREAM_TIMEOUT_EVENTID,
- WMI_NEIGHBOR_REPORT_EVENTID,
- WMI_TKIP_MICERR_EVENTID,
- WMI_SCAN_COMPLETE_EVENTID, /* 0x100a */
- WMI_REPORT_STATISTICS_EVENTID,
- WMI_RSSI_THRESHOLD_EVENTID,
- WMI_ERROR_REPORT_EVENTID,
- WMI_OPT_RX_FRAME_EVENTID,
- WMI_REPORT_ROAM_TBL_EVENTID,
- WMI_EXTENSION_EVENTID,
- WMI_CAC_EVENTID,
- WMI_SNR_THRESHOLD_EVENTID,
- WMI_LQ_THRESHOLD_EVENTID,
- WMI_TX_RETRY_ERR_EVENTID, /* 0x1014 */
- WMI_REPORT_ROAM_DATA_EVENTID,
- WMI_TEST_EVENTID,
- WMI_APLIST_EVENTID,
- WMI_GET_WOW_LIST_EVENTID,
- WMI_GET_PMKID_LIST_EVENTID,
- WMI_CHANNEL_CHANGE_EVENTID,
- WMI_PEER_NODE_EVENTID,
- WMI_PSPOLL_EVENTID,
- WMI_DTIMEXPIRY_EVENTID,
- WMI_WLAN_VERSION_EVENTID,
- WMI_SET_PARAMS_REPLY_EVENTID,
- WMI_ADDBA_REQ_EVENTID, /*0x1020 */
- WMI_ADDBA_RESP_EVENTID,
- WMI_DELBA_REQ_EVENTID,
- WMI_TX_COMPLETE_EVENTID,
- WMI_HCI_EVENT_EVENTID,
- WMI_ACL_DATA_EVENTID,
- WMI_REPORT_SLEEP_STATE_EVENTID,
- WMI_REPORT_BTCOEX_STATS_EVENTID,
- WMI_REPORT_BTCOEX_CONFIG_EVENTID,
- WMI_GET_PMK_EVENTID,
-
- /* DFS Events */
- WMI_DFS_HOST_ATTACH_EVENTID,
- WMI_DFS_HOST_INIT_EVENTID,
- WMI_DFS_RESET_DELAYLINES_EVENTID,
- WMI_DFS_RESET_RADARQ_EVENTID,
- WMI_DFS_RESET_AR_EVENTID,
- WMI_DFS_RESET_ARQ_EVENTID,
- WMI_DFS_SET_DUR_MULTIPLIER_EVENTID,
- WMI_DFS_SET_BANGRADAR_EVENTID,
- WMI_DFS_SET_DEBUGLEVEL_EVENTID,
- WMI_DFS_PHYERR_EVENTID,
-
- /* CCX Evants */
- WMI_CCX_RM_STATUS_EVENTID,
-
- /* P2P Events */
- WMI_P2P_GO_NEG_RESULT_EVENTID,
-
- WMI_WAC_SCAN_DONE_EVENTID,
- WMI_WAC_REPORT_BSS_EVENTID,
- WMI_WAC_START_WPS_EVENTID,
- WMI_WAC_CTRL_REQ_REPLY_EVENTID,
-
- WMI_REPORT_WMM_PARAMS_EVENTID,
- WMI_WAC_REJECT_WPS_EVENTID,
-
- /* More P2P Events */
- WMI_P2P_GO_NEG_REQ_EVENTID,
- WMI_P2P_INVITE_REQ_EVENTID,
- WMI_P2P_INVITE_RCVD_RESULT_EVENTID,
- WMI_P2P_INVITE_SENT_RESULT_EVENTID,
- WMI_P2P_PROV_DISC_RESP_EVENTID,
- WMI_P2P_PROV_DISC_REQ_EVENTID,
-
- /* RFKILL Events */
- WMI_RFKILL_STATE_CHANGE_EVENTID,
- WMI_RFKILL_GET_MODE_CMD_EVENTID,
-
- WMI_P2P_START_SDPD_EVENTID,
- WMI_P2P_SDPD_RX_EVENTID,
-
- WMI_SET_HOST_SLEEP_MODE_CMD_PROCESSED_EVENTID = 0x1047,
-
- WMI_THIN_RESERVED_START_EVENTID = 0x8000,
- /* Events in this range are reserved for thinmode */
- WMI_THIN_RESERVED_END_EVENTID = 0x8fff,
-
- WMI_SET_CHANNEL_EVENTID,
- WMI_ASSOC_REQ_EVENTID,
-
- /* Generic ACS event */
- WMI_ACS_EVENTID,
- WMI_STORERECALL_STORE_EVENTID,
- WMI_WOW_EXT_WAKE_EVENTID,
- WMI_GTK_OFFLOAD_STATUS_EVENTID,
- WMI_NETWORK_LIST_OFFLOAD_EVENTID,
- WMI_REMAIN_ON_CHNL_EVENTID,
- WMI_CANCEL_REMAIN_ON_CHNL_EVENTID,
- WMI_TX_STATUS_EVENTID,
- WMI_RX_PROBE_REQ_EVENTID,
- WMI_P2P_CAPABILITIES_EVENTID,
- WMI_RX_ACTION_EVENTID,
- WMI_P2P_INFO_EVENTID,
-};
-
-struct wmi_ready_event_2 {
- __le32 sw_version;
- __le32 abi_version;
- u8 mac_addr[ETH_ALEN];
- u8 phy_cap;
-} __packed;
-
-/* Connect Event */
-struct wmi_connect_event {
- union {
- struct {
- __le16 ch;
- u8 bssid[ETH_ALEN];
- __le16 listen_intvl;
- __le16 beacon_intvl;
- __le32 nw_type;
- } sta;
- struct {
- u8 phymode;
- u8 aid;
- u8 mac_addr[ETH_ALEN];
- u8 auth;
- u8 keymgmt;
- __le16 cipher;
- u8 apsd_info;
- u8 unused[3];
- } ap_sta;
- struct {
- __le16 ch;
- u8 bssid[ETH_ALEN];
- u8 unused[8];
- } ap_bss;
- } u;
- u8 beacon_ie_len;
- u8 assoc_req_len;
- u8 assoc_resp_len;
- u8 assoc_info[1];
-} __packed;
-
-/* Disconnect Event */
-enum wmi_disconnect_reason {
- NO_NETWORK_AVAIL = 0x01,
-
- /* bmiss */
- LOST_LINK = 0x02,
-
- DISCONNECT_CMD = 0x03,
- BSS_DISCONNECTED = 0x04,
- AUTH_FAILED = 0x05,
- ASSOC_FAILED = 0x06,
- NO_RESOURCES_AVAIL = 0x07,
- CSERV_DISCONNECT = 0x08,
- INVALID_PROFILE = 0x0a,
- DOT11H_CHANNEL_SWITCH = 0x0b,
- PROFILE_MISMATCH = 0x0c,
- CONNECTION_EVICTED = 0x0d,
- IBSS_MERGE = 0xe,
-};
-
-#define ATH6KL_COUNTRY_RD_SHIFT 16
-
-struct ath6kl_wmi_regdomain {
- __le32 reg_code;
-};
-
-struct wmi_disconnect_event {
- /* reason code, see 802.11 spec. */
- __le16 proto_reason_status;
-
- /* set if known */
- u8 bssid[ETH_ALEN];
-
- /* see WMI_DISCONNECT_REASON */
- u8 disconn_reason;
-
- u8 assoc_resp_len;
- u8 assoc_info[1];
-} __packed;
-
-/*
- * BSS Info Event.
- * Mechanism used to inform host of the presence and characteristic of
- * wireless networks present. Consists of bss info header followed by
- * the beacon or probe-response frame body. The 802.11 header is no included.
- */
-enum wmi_bi_ftype {
- BEACON_FTYPE = 0x1,
- PROBERESP_FTYPE,
- ACTION_MGMT_FTYPE,
- PROBEREQ_FTYPE,
-};
-
-#ifdef CONFIG_MACH_PX
-#define DEF_LRSSI_SCAN_PERIOD ( 5 * 1000 )
-#else
-#define DEF_LRSSI_SCAN_PERIOD 5
-#endif
-#define DEF_LRSSI_ROAM_THRESHOLD 20
-#define DEF_LRSSI_ROAM_FLOOR 60
-#ifdef CONFIG_MACH_PX
-#define DEF_SCAN_FOR_ROAM_INTVL 5
-#else
-#define DEF_SCAN_FOR_ROAM_INTVL 2
-#endif
-
-enum wmi_roam_ctrl {
- WMI_FORCE_ROAM = 1,
- WMI_SET_ROAM_MODE,
- WMI_SET_HOST_BIAS,
- WMI_SET_LRSSI_SCAN_PARAMS,
-};
-
-enum wmi_roam_mode {
- WMI_DEFAULT_ROAM_MODE = 1, /* RSSI based roam */
- WMI_HOST_BIAS_ROAM_MODE = 2, /* Host bias based roam */
- WMI_LOCK_BSS_MODE = 3, /* Lock to the current BSS */
-};
-
-struct bss_bias {
- u8 bssid[ETH_ALEN];
- s8 bias;
-} __packed;
-
-struct bss_bias_info {
- u8 num_bss;
- struct bss_bias bss_bias[0];
-} __packed;
-
-struct low_rssi_scan_params {
- __le16 lrssi_scan_period;
- a_sle16 lrssi_scan_threshold;
- a_sle16 lrssi_roam_threshold;
- u8 roam_rssi_floor;
- u8 reserved[1];
-} __packed;
-
-struct roam_ctrl_cmd {
- union {
- u8 bssid[ETH_ALEN]; /* WMI_FORCE_ROAM */
- u8 roam_mode; /* WMI_SET_ROAM_MODE */
- struct bss_bias_info bss; /* WMI_SET_HOST_BIAS */
- struct low_rssi_scan_params params; /* WMI_SET_LRSSI_SCAN_PARAMS
- */
- } __packed info;
- u8 roam_ctrl;
-} __packed;
-
-/* BSS INFO HDR version 2.0 */
-struct wmi_bss_info_hdr2 {
- __le16 ch; /* frequency in MHz */
-
- /* see, enum wmi_bi_ftype */
- u8 frame_type;
-
- u8 snr; /* note: rssi = snr - 95 dBm */
- u8 bssid[ETH_ALEN];
- __le16 ie_mask;
-} __packed;
-
-/* Command Error Event */
-enum wmi_error_code {
- INVALID_PARAM = 0x01,
- ILLEGAL_STATE = 0x02,
- INTERNAL_ERROR = 0x03,
-};
-
-struct wmi_cmd_error_event {
- __le16 cmd_id;
- u8 err_code;
-} __packed;
-
-struct wmi_pstream_timeout_event {
- u8 tx_queue_num;
- u8 rx_queue_num;
- u8 traffic_direc;
- u8 traffic_class;
-} __packed;
-
-/*
- * The WMI_NEIGHBOR_REPORT Event is generated by the target to inform
- * the host of BSS's it has found that matches the current profile.
- * It can be used by the host to cache PMKs and/to initiate pre-authentication
- * if the BSS supports it. The first bssid is always the current associated
- * BSS.
- * The bssid and bssFlags information repeats according to the number
- * or APs reported.
- */
-enum wmi_bss_flags {
- WMI_DEFAULT_BSS_FLAGS = 0x00,
- WMI_PREAUTH_CAPABLE_BSS = 0x01,
- WMI_PMKID_VALID_BSS = 0x02,
-};
-
-struct wmi_neighbor_info {
- u8 bssid[ETH_ALEN];
- u8 bss_flags; /* enum wmi_bss_flags */
-} __packed;
-
-struct wmi_neighbor_report_event {
- u8 num_neighbors;
- struct wmi_neighbor_info neighbor[0];
-} __packed;
-
-/* TKIP MIC Error Event */
-struct wmi_tkip_micerr_event {
- u8 key_id;
- u8 is_mcast;
-} __packed;
-
-enum wmi_scan_status {
- WMI_SCAN_STATUS_SUCCESS = 0,
-};
-
-/* WMI_SCAN_COMPLETE_EVENTID */
-struct wmi_scan_complete_event {
- a_sle32 status;
-} __packed;
-
-#define MAX_OPT_DATA_LEN 1400
-
-/*
- * Special frame receive Event.
- * Mechanism used to inform host of the receiption of the special frames.
- * Consists of special frame info header followed by special frame body.
- * The 802.11 header is not included.
- */
-struct wmi_opt_rx_info_hdr {
- __le16 ch;
- u8 frame_type;
- s8 snr;
- u8 src_addr[ETH_ALEN];
- u8 bssid[ETH_ALEN];
-} __packed;
-
-/* Reporting statistic */
-struct tx_stats {
- __le32 pkt;
- __le32 byte;
- __le32 ucast_pkt;
- __le32 ucast_byte;
- __le32 mcast_pkt;
- __le32 mcast_byte;
- __le32 bcast_pkt;
- __le32 bcast_byte;
- __le32 rts_success_cnt;
- __le32 pkt_per_ac[4];
- __le32 err_per_ac[4];
-
- __le32 err;
- __le32 fail_cnt;
- __le32 retry_cnt;
- __le32 mult_retry_cnt;
- __le32 rts_fail_cnt;
- a_sle32 ucast_rate;
-} __packed;
-
-struct rx_stats {
- __le32 pkt;
- __le32 byte;
- __le32 ucast_pkt;
- __le32 ucast_byte;
- __le32 mcast_pkt;
- __le32 mcast_byte;
- __le32 bcast_pkt;
- __le32 bcast_byte;
- __le32 frgment_pkt;
-
- __le32 err;
- __le32 crc_err;
- __le32 key_cache_miss;
- __le32 decrypt_err;
- __le32 dupl_frame;
- a_sle32 ucast_rate;
-} __packed;
-
-struct tkip_ccmp_stats {
- __le32 tkip_local_mic_fail;
- __le32 tkip_cnter_measures_invoked;
- __le32 tkip_replays;
- __le32 tkip_fmt_err;
- __le32 ccmp_fmt_err;
- __le32 ccmp_replays;
-} __packed;
-
-struct pm_stats {
- __le32 pwr_save_failure_cnt;
- __le16 stop_tx_failure_cnt;
- __le16 atim_tx_failure_cnt;
- __le16 atim_rx_failure_cnt;
- __le16 bcn_rx_failure_cnt;
-} __packed;
-
-struct cserv_stats {
- __le32 cs_bmiss_cnt;
- __le32 cs_low_rssi_cnt;
- __le16 cs_connect_cnt;
- __le16 cs_discon_cnt;
- a_sle16 cs_ave_beacon_rssi;
- __le16 cs_roam_count;
- a_sle16 cs_rssi;
- u8 cs_snr;
- u8 cs_ave_beacon_snr;
- u8 cs_last_roam_msec;
-} __packed;
-
-struct wlan_net_stats {
- struct tx_stats tx;
- struct rx_stats rx;
- struct tkip_ccmp_stats tkip_ccmp_stats;
-} __packed;
-
-struct arp_stats {
- __le32 arp_received;
- __le32 arp_matched;
- __le32 arp_replied;
-} __packed;
-
-struct wlan_wow_stats {
- __le32 wow_pkt_dropped;
- __le16 wow_evt_discarded;
- u8 wow_host_pkt_wakeups;
- u8 wow_host_evt_wakeups;
-} __packed;
-
-struct wmi_target_stats {
- __le32 lq_val;
- a_sle32 noise_floor_calib;
- struct pm_stats pm_stats;
- struct wlan_net_stats stats;
- struct wlan_wow_stats wow_stats;
- struct arp_stats arp_stats;
- struct cserv_stats cserv_stats;
-} __packed;
-
-/*
- * WMI_RSSI_THRESHOLD_EVENTID.
- * Indicate the RSSI events to host. Events are indicated when we breach a
- * thresold value.
- */
-enum wmi_rssi_threshold_val {
- WMI_RSSI_THRESHOLD1_ABOVE = 0,
- WMI_RSSI_THRESHOLD2_ABOVE,
- WMI_RSSI_THRESHOLD3_ABOVE,
- WMI_RSSI_THRESHOLD4_ABOVE,
- WMI_RSSI_THRESHOLD5_ABOVE,
- WMI_RSSI_THRESHOLD6_ABOVE,
- WMI_RSSI_THRESHOLD1_BELOW,
- WMI_RSSI_THRESHOLD2_BELOW,
- WMI_RSSI_THRESHOLD3_BELOW,
- WMI_RSSI_THRESHOLD4_BELOW,
- WMI_RSSI_THRESHOLD5_BELOW,
- WMI_RSSI_THRESHOLD6_BELOW
-};
-
-struct wmi_rssi_threshold_event {
- a_sle16 rssi;
- u8 range;
-} __packed;
-
-enum wmi_snr_threshold_val {
- WMI_SNR_THRESHOLD1_ABOVE = 1,
- WMI_SNR_THRESHOLD1_BELOW,
- WMI_SNR_THRESHOLD2_ABOVE,
- WMI_SNR_THRESHOLD2_BELOW,
- WMI_SNR_THRESHOLD3_ABOVE,
- WMI_SNR_THRESHOLD3_BELOW,
- WMI_SNR_THRESHOLD4_ABOVE,
- WMI_SNR_THRESHOLD4_BELOW
-};
-
-struct wmi_snr_threshold_event {
- /* see, enum wmi_snr_threshold_val */
- u8 range;
-
- u8 snr;
-} __packed;
-
-/* WMI_REPORT_ROAM_TBL_EVENTID */
-#define MAX_ROAM_TBL_CAND 5
-
-struct wmi_bss_roam_info {
- a_sle32 roam_util;
- u8 bssid[ETH_ALEN];
- s8 rssi;
- s8 rssidt;
- s8 last_rssi;
- s8 util;
- s8 bias;
-
- /* for alignment */
- u8 reserved;
-} __packed;
-
-struct wmi_target_roam_tbl {
- __le16 roam_mode;
- __le16 num_entries;
- struct wmi_bss_roam_info info[];
-} __packed;
-
-/* WMI_CAC_EVENTID */
-enum cac_indication {
- CAC_INDICATION_ADMISSION = 0x00,
- CAC_INDICATION_ADMISSION_RESP = 0x01,
- CAC_INDICATION_DELETE = 0x02,
- CAC_INDICATION_NO_RESP = 0x03,
-};
-
-#define WMM_TSPEC_IE_LEN 63
-
-struct wmi_cac_event {
- u8 ac;
- u8 cac_indication;
- u8 status_code;
- u8 tspec_suggestion[WMM_TSPEC_IE_LEN];
-} __packed;
-
-/* WMI_APLIST_EVENTID */
-
-enum aplist_ver {
- APLIST_VER1 = 1,
-};
-
-struct wmi_ap_info_v1 {
- u8 bssid[ETH_ALEN];
- __le16 channel;
-} __packed;
-
-union wmi_ap_info {
- struct wmi_ap_info_v1 ap_info_v1;
-} __packed;
-
-struct wmi_aplist_event {
- u8 ap_list_ver;
- u8 num_ap;
- union wmi_ap_info ap_list[1];
-} __packed;
-
-/* Developer Commands */
-
-/*
- * WMI_SET_BITRATE_CMDID
- *
- * Get bit rate cmd uses same definition as set bit rate cmd
- */
-enum wmi_bit_rate {
- RATE_AUTO = -1,
- RATE_1Mb = 0,
- RATE_2Mb = 1,
- RATE_5_5Mb = 2,
- RATE_11Mb = 3,
- RATE_6Mb = 4,
- RATE_9Mb = 5,
- RATE_12Mb = 6,
- RATE_18Mb = 7,
- RATE_24Mb = 8,
- RATE_36Mb = 9,
- RATE_48Mb = 10,
- RATE_54Mb = 11,
- RATE_MCS_0_20 = 12,
- RATE_MCS_1_20 = 13,
- RATE_MCS_2_20 = 14,
- RATE_MCS_3_20 = 15,
- RATE_MCS_4_20 = 16,
- RATE_MCS_5_20 = 17,
- RATE_MCS_6_20 = 18,
- RATE_MCS_7_20 = 19,
- RATE_MCS_0_40 = 20,
- RATE_MCS_1_40 = 21,
- RATE_MCS_2_40 = 22,
- RATE_MCS_3_40 = 23,
- RATE_MCS_4_40 = 24,
- RATE_MCS_5_40 = 25,
- RATE_MCS_6_40 = 26,
- RATE_MCS_7_40 = 27,
-};
-
-struct wmi_bit_rate_reply {
- /* see, enum wmi_bit_rate */
- s8 rate_index;
-} __packed;
-
-/*
- * WMI_SET_FIXRATES_CMDID
- *
- * Get fix rates cmd uses same definition as set fix rates cmd
- */
-struct wmi_fix_rates_reply {
- /* see wmi_bit_rate */
- __le32 fix_rate_mask;
-} __packed;
-
-enum roam_data_type {
- /* get the roam time data */
- ROAM_DATA_TIME = 1,
-};
-
-struct wmi_target_roam_time {
- __le32 disassoc_time;
- __le32 no_txrx_time;
- __le32 assoc_time;
- __le32 allow_txrx_time;
- u8 disassoc_bssid[ETH_ALEN];
- s8 disassoc_bss_rssi;
- u8 assoc_bssid[ETH_ALEN];
- s8 assoc_bss_rssi;
-} __packed;
-
-enum wmi_txop_cfg {
- WMI_TXOP_DISABLED = 0,
- WMI_TXOP_ENABLED
-};
-
-struct wmi_set_wmm_txop_cmd {
- u8 txop_enable;
-} __packed;
-
-struct wmi_set_keepalive_cmd {
- u8 keep_alive_intvl;
-} __packed;
-
-struct wmi_get_keepalive_cmd {
- __le32 configured;
- u8 keep_alive_intvl;
-} __packed;
-
-struct wmi_set_mcastrate_cmd {
- u16 bitrate;
-} __packed;
-
-struct wmi_set_appie_cmd {
- u8 mgmt_frm_type; /* enum wmi_mgmt_frame_type */
- u8 ie_len;
- u8 ie_info[0];
-} __packed;
-
-struct wmi_set_ie_cmd {
- u8 ie_id;
- u8 ie_field; /* enum wmi_ie_field_type */
- u8 ie_len;
- u8 reserved;
- u8 ie_info[0];
-} __packed;
-
-/* Notify the WSC registration status to the target */
-#define WSC_REG_ACTIVE 1
-#define WSC_REG_INACTIVE 0
-
-#define WOW_MAX_FILTERS_PER_LIST 4
-#define WOW_PATTERN_SIZE 64
-#define WOW_MASK_SIZE 64
-
-#define MAC_MAX_FILTERS_PER_LIST 4
-
-struct wow_filter {
- u8 wow_valid_filter;
- u8 wow_filter_id;
- u8 wow_filter_size;
- u8 wow_filter_offset;
- u8 wow_filter_mask[WOW_MASK_SIZE];
- u8 wow_filter_pattern[WOW_PATTERN_SIZE];
-} __packed;
-
-#define MAX_IP_ADDRS 2
-
-struct wmi_set_ip_cmd {
- /* IP in network byte order */
- __be32 ips[MAX_IP_ADDRS];
-} __packed;
-
-enum ath6kl_wow_filters {
- WOW_FILTER_SSID = BIT(1),
- WOW_FILTER_OPTION_MAGIC_PACKET = BIT(2),
- WOW_FILTER_OPTION_EAP_REQ = BIT(3),
- WOW_FILTER_OPTION_PATTERNS = BIT(4),
- WOW_FILTER_OPTION_OFFLOAD_ARP = BIT(5),
- WOW_FILTER_OPTION_OFFLOAD_NS = BIT(6),
- WOW_FILTER_OPTION_OFFLOAD_GTK = BIT(7),
- WOW_FILTER_OPTION_8021X_4WAYHS = BIT(8),
- WOW_FILTER_OPTION_NLO_DISCVRY = BIT(9),
- WOW_FILTER_OPTION_NWK_DISASSOC = BIT(10),
- WOW_FILTER_OPTION_GTK_ERROR = BIT(11),
- WOW_FILTER_OPTION_TEST_MODE = BIT(15),
-};
-
-enum ath6kl_host_mode {
- ATH6KL_HOST_MODE_AWAKE,
- ATH6KL_HOST_MODE_ASLEEP,
-};
-
-struct wmi_set_host_sleep_mode_cmd {
- __le32 awake;
- __le32 asleep;
-} __packed;
-
-enum ath6kl_wow_mode {
- ATH6KL_WOW_MODE_DISABLE,
- ATH6KL_WOW_MODE_ENABLE,
-};
-
-struct wmi_set_wow_mode_cmd {
- __le32 enable_wow;
- __le32 filter;
- __le16 host_req_delay;
-} __packed;
-
-struct wmi_add_wow_pattern_cmd {
- u8 filter_list_id;
- u8 filter_size;
- u8 filter_offset;
- u8 filter[0];
-} __packed;
-
-struct wmi_del_wow_pattern_cmd {
- __le16 filter_list_id;
- __le16 filter_id;
-} __packed;
-
-/* WMI_SET_AKMP_PARAMS_CMD */
-
-struct wmi_pmkid {
- u8 pmkid[WMI_PMKID_LEN];
-} __packed;
-
-/* WMI_GET_PMKID_LIST_CMD Reply */
-struct wmi_pmkid_list_reply {
- __le32 num_pmkid;
- u8 bssid_list[ETH_ALEN][1];
- struct wmi_pmkid pmkid_list[1];
-} __packed;
-
-/* WMI_ADDBA_REQ_EVENTID */
-struct wmi_addba_req_event {
- u8 tid;
- u8 win_sz;
- __le16 st_seq_no;
-
- /* f/w response for ADDBA Req; OK (0) or failure (!=0) */
- u8 status;
-} __packed;
-
-/* WMI_ADDBA_RESP_EVENTID */
-struct wmi_addba_resp_event {
- u8 tid;
-
- /* OK (0), failure (!=0) */
- u8 status;
-
- /* three values: not supported(0), 3839, 8k */
- __le16 amsdu_sz;
-} __packed;
-
-/* WMI_DELBA_EVENTID
- * f/w received a DELBA for peer and processed it.
- * Host is notified of this
- */
-struct wmi_delba_event {
- u8 tid;
- u8 is_peer_initiator;
- __le16 reason_code;
-} __packed;
-
-#define PEER_NODE_JOIN_EVENT 0x00
-#define PEER_NODE_LEAVE_EVENT 0x01
-#define PEER_FIRST_NODE_JOIN_EVENT 0x10
-#define PEER_LAST_NODE_LEAVE_EVENT 0x11
-
-struct wmi_peer_node_event {
- u8 event_code;
- u8 peer_mac_addr[ETH_ALEN];
-} __packed;
-
-/* Transmit complete event data structure(s) */
-
-/* version 1 of tx complete msg */
-struct tx_complete_msg_v1 {
-#define TX_COMPLETE_STATUS_SUCCESS 0
-#define TX_COMPLETE_STATUS_RETRIES 1
-#define TX_COMPLETE_STATUS_NOLINK 2
-#define TX_COMPLETE_STATUS_TIMEOUT 3
-#define TX_COMPLETE_STATUS_OTHER 4
-
- u8 status;
-
- /* packet ID to identify parent packet */
- u8 pkt_id;
-
- /* rate index on successful transmission */
- u8 rate_idx;
-
- /* number of ACK failures in tx attempt */
- u8 ack_failures;
-} __packed;
-
-struct wmi_tx_complete_event {
- /* no of tx comp msgs following this struct */
- u8 num_msg;
-
- /* length in bytes for each individual msg following this struct */
- u8 msg_len;
-
- /* version of tx complete msg data following this struct */
- u8 msg_type;
-
- /* individual messages follow this header */
- u8 reserved;
-} __packed;
-
-/*
- * ------- AP Mode definitions --------------
- */
-
-/*
- * !!! Warning !!!
- * -Changing the following values needs compilation of both driver and firmware
- */
-#define AP_MAX_NUM_STA 10
-
-/* Spl. AID used to set DTIM flag in the beacons */
-#define MCAST_AID 0xFF
-
-#define DEF_AP_COUNTRY_CODE "US "
-
-/* Used with WMI_AP_SET_NUM_STA_CMDID */
-
-/*
- * Used with WMI_AP_SET_MLME_CMDID
- */
-
-/* MLME Commands */
-#define WMI_AP_MLME_ASSOC 1 /* associate station */
-#define WMI_AP_DISASSOC 2 /* disassociate station */
-#define WMI_AP_DEAUTH 3 /* deauthenticate station */
-#define WMI_AP_MLME_AUTHORIZE 4 /* authorize station */
-#define WMI_AP_MLME_UNAUTHORIZE 5 /* unauthorize station */
-
-struct wmi_ap_set_mlme_cmd {
- u8 mac[ETH_ALEN];
- __le16 reason; /* 802.11 reason code */
- u8 cmd; /* operation to perform (WMI_AP_*) */
-} __packed;
-
-struct wmi_ap_set_pvb_cmd {
- __le32 flag;
- __le16 rsvd;
- __le16 aid;
-} __packed;
-
-struct wmi_rx_frame_format_cmd {
- /* version of meta data for rx packets <0 = default> (0-7 = valid) */
- u8 meta_ver;
-
- /*
- * 1 == leave .11 header intact,
- * 0 == replace .11 header with .3 <default>
- */
- u8 dot11_hdr;
-
- /*
- * 1 == defragmentation is performed by host,
- * 0 == performed by target <default>
- */
- u8 defrag_on_host;
-
- /* for alignment */
- u8 reserved[1];
-} __packed;
-
-struct wmi_ap_hidden_ssid_cmd {
- u8 hidden_ssid;
-} __packed;
-
-/* AP mode events */
-struct wmi_ap_set_apsd_cmd {
- u8 enable;
-} __packed;
-
-enum wmi_ap_apsd_buffered_traffic_flags {
- WMI_AP_APSD_NO_DELIVERY_FRAMES = 0x1,
-};
-
-struct wmi_ap_apsd_buffered_traffic_cmd {
- __le16 aid;
- __le16 bitmap;
- __le32 flags;
-} __packed;
-
-/* WMI_PS_POLL_EVENT */
-struct wmi_pspoll_event {
- __le16 aid;
-} __packed;
-
-struct wmi_per_sta_stat {
- __le32 tx_bytes;
- __le32 tx_pkts;
- __le32 tx_error;
- __le32 tx_discard;
- __le32 rx_bytes;
- __le32 rx_pkts;
- __le32 rx_error;
- __le32 rx_discard;
- __le32 aid;
-} __packed;
-
-struct wmi_ap_mode_stat {
- __le32 action;
- struct wmi_per_sta_stat sta[AP_MAX_NUM_STA + 1];
-} __packed;
-
-/* End of AP mode definitions */
-
-struct wmi_remain_on_chnl_cmd {
- __le32 freq;
- __le32 duration;
-} __packed;
-
-/* wmi_send_action_cmd is to be deprecated. Use
- * wmi_send_mgmt_cmd instead. The new structure supports P2P mgmt
- * operations using station interface.
- */
-struct wmi_send_action_cmd {
- __le32 id;
- __le32 freq;
- __le32 wait;
- __le16 len;
- u8 data[0];
-} __packed;
-
-struct wmi_send_mgmt_cmd {
- __le32 id;
- __le32 freq;
- __le32 wait;
- __le32 no_cck;
- __le16 len;
- u8 data[0];
-} __packed;
-
-struct wmi_tx_status_event {
- __le32 id;
- u8 ack_status;
-} __packed;
-
-struct wmi_probe_req_report_cmd {
- u8 enable;
-} __packed;
-
-struct wmi_disable_11b_rates_cmd {
- u8 disable;
-} __packed;
-
-struct wmi_set_appie_extended_cmd {
- u8 role_id;
- u8 mgmt_frm_type;
- u8 ie_len;
- u8 ie_info[0];
-} __packed;
-
-struct wmi_remain_on_chnl_event {
- __le32 freq;
- __le32 duration;
-} __packed;
-
-struct wmi_cancel_remain_on_chnl_event {
- __le32 freq;
- __le32 duration;
- u8 status;
-} __packed;
-
-struct wmi_rx_action_event {
- __le32 freq;
- __le16 len;
- u8 data[0];
-} __packed;
-
-struct wmi_p2p_capabilities_event {
- __le16 len;
- u8 data[0];
-} __packed;
-
-struct wmi_p2p_rx_probe_req_event {
- __le32 freq;
- __le16 len;
- u8 data[0];
-} __packed;
-
-#define P2P_FLAG_CAPABILITIES_REQ (0x00000001)
-#define P2P_FLAG_MACADDR_REQ (0x00000002)
-#define P2P_FLAG_HMODEL_REQ (0x00000002)
-
-struct wmi_get_p2p_info {
- __le32 info_req_flags;
-} __packed;
-
-struct wmi_p2p_info_event {
- __le32 info_req_flags;
- __le16 len;
- u8 data[0];
-} __packed;
-
-struct wmi_p2p_capabilities {
- u8 go_power_save;
-} __packed;
-
-struct wmi_p2p_macaddr {
- u8 mac_addr[ETH_ALEN];
-} __packed;
-
-struct wmi_p2p_hmodel {
- u8 p2p_model;
-} __packed;
-
-struct wmi_p2p_probe_response_cmd {
- __le32 freq;
- u8 destination_addr[ETH_ALEN];
- __le16 len;
- u8 data[0];
-} __packed;
-
-struct wmi_set_ht_cap_cmd {
- u8 band;
- u8 enable;
- u8 chan_width_40m_supported;
- u8 short_gi_20mhz;
- u8 short_gi_40mhz;
- u8 intolerance_40mhz;
- u8 max_ampdu_len_exp;
-} __packed;
-
-
-/* Extended WMI (WMIX)
- *
- * Extended WMIX commands are encapsulated in a WMI message with
- * cmd=WMI_EXTENSION_CMD.
- *
- * Extended WMI commands are those that are needed during wireless
- * operation, but which are not really wireless commands. This allows,
- * for instance, platform-specific commands. Extended WMI commands are
- * embedded in a WMI command message with WMI_COMMAND_ID=WMI_EXTENSION_CMDID.
- * Extended WMI events are similarly embedded in a WMI event message with
- * WMI_EVENT_ID=WMI_EXTENSION_EVENTID.
- */
-struct wmix_cmd_hdr {
- __le32 cmd_id;
-} __packed;
-
-enum wmix_command_id {
- WMIX_DSETOPEN_REPLY_CMDID = 0x2001,
- WMIX_DSETDATA_REPLY_CMDID,
- WMIX_GPIO_OUTPUT_SET_CMDID,
- WMIX_GPIO_INPUT_GET_CMDID,
- WMIX_GPIO_REGISTER_SET_CMDID,
- WMIX_GPIO_REGISTER_GET_CMDID,
- WMIX_GPIO_INTR_ACK_CMDID,
- WMIX_HB_CHALLENGE_RESP_CMDID,
- WMIX_DBGLOG_CFG_MODULE_CMDID,
- WMIX_PROF_CFG_CMDID, /* 0x200a */
- WMIX_PROF_ADDR_SET_CMDID,
- WMIX_PROF_START_CMDID,
- WMIX_PROF_STOP_CMDID,
- WMIX_PROF_COUNT_GET_CMDID,
-};
-
-enum wmix_event_id {
- WMIX_DSETOPENREQ_EVENTID = 0x3001,
- WMIX_DSETCLOSE_EVENTID,
- WMIX_DSETDATAREQ_EVENTID,
- WMIX_GPIO_INTR_EVENTID,
- WMIX_GPIO_DATA_EVENTID,
- WMIX_GPIO_ACK_EVENTID,
- WMIX_HB_CHALLENGE_RESP_EVENTID,
- WMIX_DBGLOG_EVENTID,
- WMIX_PROF_COUNT_EVENTID,
-};
-
-/*
- * ------Error Detection support-------
- */
-
-/*
- * WMIX_HB_CHALLENGE_RESP_CMDID
- * Heartbeat Challenge Response command
- */
-struct wmix_hb_challenge_resp_cmd {
- __le32 cookie;
- __le32 source;
-} __packed;
-
-struct ath6kl_wmix_dbglog_cfg_module_cmd {
- __le32 valid;
- __le32 config;
-} __packed;
-
-/* End of Extended WMI (WMIX) */
-
-enum wmi_sync_flag {
- NO_SYNC_WMIFLAG = 0,
-
- /* transmit all queued data before cmd */
- SYNC_BEFORE_WMIFLAG,
-
- /* any new data waits until cmd execs */
- SYNC_AFTER_WMIFLAG,
-
- SYNC_BOTH_WMIFLAG,
-
- /* end marker */
- END_WMIFLAG
-};
-
-enum htc_endpoint_id ath6kl_wmi_get_control_ep(struct wmi *wmi);
-void ath6kl_wmi_set_control_ep(struct wmi *wmi, enum htc_endpoint_id ep_id);
-int ath6kl_wmi_dix_2_dot3(struct wmi *wmi, struct sk_buff *skb);
-int ath6kl_wmi_data_hdr_add(struct wmi *wmi, struct sk_buff *skb,
- u8 msg_type, u32 flags,
- enum wmi_data_hdr_data_type data_type,
- u8 meta_ver, void *tx_meta_info, u8 if_idx);
-
-int ath6kl_wmi_dot11_hdr_remove(struct wmi *wmi, struct sk_buff *skb);
-int ath6kl_wmi_dot3_2_dix(struct sk_buff *skb);
-int ath6kl_wmi_implicit_create_pstream(struct wmi *wmi, u8 if_idx,
- struct sk_buff *skb, u32 layer2_priority,
- bool wmm_enabled, u8 *ac);
-
-int ath6kl_wmi_control_rx(struct wmi *wmi, struct sk_buff *skb);
-
-int ath6kl_wmi_cmd_send(struct wmi *wmi, u8 if_idx, struct sk_buff *skb,
- enum wmi_cmd_id cmd_id, enum wmi_sync_flag sync_flag);
-
-int ath6kl_wmi_connect_cmd(struct wmi *wmi, u8 if_idx,
- enum network_type nw_type,
- enum dot11_auth_mode dot11_auth_mode,
- enum auth_mode auth_mode,
- enum crypto_type pairwise_crypto,
- u8 pairwise_crypto_len,
- enum crypto_type group_crypto,
- u8 group_crypto_len, int ssid_len, u8 *ssid,
- u8 *bssid, u16 channel, u32 ctrl_flags,
- u8 nw_subtype);
-
-int ath6kl_wmi_reconnect_cmd(struct wmi *wmi, u8 if_idx, u8 *bssid,
- u16 channel);
-int ath6kl_wmi_disconnect_cmd(struct wmi *wmi, u8 if_idx);
-int ath6kl_wmi_startscan_cmd(struct wmi *wmi, u8 if_idx,
- enum wmi_scan_type scan_type,
- u32 force_fgscan, u32 is_legacy,
- u32 home_dwell_time, u32 force_scan_interval,
- s8 num_chan, u16 *ch_list);
-
-int ath6kl_wmi_beginscan_cmd(struct wmi *wmi, u8 if_idx,
- enum wmi_scan_type scan_type,
- u32 force_fgscan, u32 is_legacy,
- u32 home_dwell_time, u32 force_scan_interval,
- s8 num_chan, u16 *ch_list, u32 no_cck,
- u32 *rates);
-
-int ath6kl_wmi_scanparams_cmd(struct wmi *wmi, u8 if_idx, u16 fg_start_sec,
- u16 fg_end_sec, u16 bg_sec,
- u16 minact_chdw_msec, u16 maxact_chdw_msec,
- u16 pas_chdw_msec, u8 short_scan_ratio,
- u8 scan_ctrl_flag, u32 max_dfsch_act_time,
- u16 maxact_scan_per_ssid);
-int ath6kl_wmi_bssfilter_cmd(struct wmi *wmi, u8 if_idx, u8 filter,
- u32 ie_mask);
-int ath6kl_wmi_probedssid_cmd(struct wmi *wmi, u8 if_idx, u8 index, u8 flag,
- u8 ssid_len, u8 *ssid);
-int ath6kl_wmi_listeninterval_cmd(struct wmi *wmi, u8 if_idx,
- u16 listen_interval,
- u16 listen_beacons);
-int ath6kl_wmi_mcastrate_cmd(struct wmi *wmi, u8 if_idx,
- u16 bitrate);
-int ath6kl_wmi_bmisstime_cmd(struct wmi *wmi, u8 if_idx,
- u16 bmiss_time,
- u16 bmiss_beacons);
-int ath6kl_wmi_powermode_cmd(struct wmi *wmi, u8 if_idx, u8 pwr_mode);
-int ath6kl_wmi_pmparams_cmd(struct wmi *wmi, u8 if_idx, u16 idle_period,
- u16 ps_poll_num, u16 dtim_policy,
- u16 tx_wakup_policy, u16 num_tx_to_wakeup,
- u16 ps_fail_event_policy);
-int ath6kl_wmi_create_pstream_cmd(struct wmi *wmi, u8 if_idx,
- struct wmi_create_pstream_cmd *pstream);
-int ath6kl_wmi_delete_pstream_cmd(struct wmi *wmi, u8 if_idx, u8 traffic_class,
- u8 tsid);
-int ath6kl_wmi_disctimeout_cmd(struct wmi *wmi, u8 if_idx, u8 timeout);
-
-int ath6kl_wmi_set_rts_cmd(struct wmi *wmi, u16 threshold);
-int ath6kl_wmi_set_lpreamble_cmd(struct wmi *wmi, u8 if_idx, u8 status,
- u8 preamble_policy);
-
-int ath6kl_wmi_get_challenge_resp_cmd(struct wmi *wmi, u32 cookie, u32 source);
-int ath6kl_wmi_config_debug_module_cmd(struct wmi *wmi, u32 valid, u32 config);
-
-int ath6kl_wmi_get_stats_cmd(struct wmi *wmi, u8 if_idx);
-int ath6kl_wmi_addkey_cmd(struct wmi *wmi, u8 if_idx, u8 key_index,
- enum crypto_type key_type,
- u8 key_usage, u8 key_len,
- u8 *key_rsc, unsigned int key_rsc_len,
- u8 *key_material,
- u8 key_op_ctrl, u8 *mac_addr,
- enum wmi_sync_flag sync_flag);
-int ath6kl_wmi_add_krk_cmd(struct wmi *wmi, u8 if_idx, u8 *krk);
-int ath6kl_wmi_deletekey_cmd(struct wmi *wmi, u8 if_idx, u8 key_index);
-int ath6kl_wmi_setpmkid_cmd(struct wmi *wmi, u8 if_idx, const u8 *bssid,
- const u8 *pmkid, bool set);
-int ath6kl_wmi_set_tx_pwr_cmd(struct wmi *wmi, u8 if_idx, u8 dbM);
-int ath6kl_wmi_get_tx_pwr_cmd(struct wmi *wmi, u8 if_idx);
-int ath6kl_wmi_get_roam_tbl_cmd(struct wmi *wmi);
-
-int ath6kl_wmi_set_wmm_txop(struct wmi *wmi, u8 if_idx, enum wmi_txop_cfg cfg);
-int ath6kl_wmi_set_keepalive_cmd(struct wmi *wmi, u8 if_idx,
- u8 keep_alive_intvl);
-int ath6kl_wmi_test_cmd(struct wmi *wmi, void *buf, size_t len);
-
-s32 ath6kl_wmi_get_rate(s8 rate_index);
-
-int ath6kl_wmi_set_ip_cmd(struct wmi *wmi, u8 if_idx,
- __be32 ips0, __be32 ips1);
-int ath6kl_wmi_set_host_sleep_mode_cmd(struct wmi *wmi, u8 if_idx,
- enum ath6kl_host_mode host_mode);
-int ath6kl_wmi_set_wow_mode_cmd(struct wmi *wmi, u8 if_idx,
- enum ath6kl_wow_mode wow_mode,
- u32 filter, u16 host_req_delay);
-int ath6kl_wmi_add_wow_pattern_cmd(struct wmi *wmi, u8 if_idx,
- u8 list_id, u8 filter_size,
- u8 filter_offset, const u8 *filter,
- const u8 *mask);
-int ath6kl_wmi_del_wow_pattern_cmd(struct wmi *wmi, u8 if_idx,
- u16 list_id, u16 filter_id);
-int ath6kl_wmi_set_roam_lrssi_cmd(struct wmi *wmi, u8 lrssi);
-int ath6kl_wmi_set_roam_lrssi_config_cmd(struct wmi *wmi,
- struct low_rssi_scan_params *params);
-int ath6kl_wmi_force_roam_cmd(struct wmi *wmi, const u8 *bssid);
-int ath6kl_wmi_set_roam_mode_cmd(struct wmi *wmi, enum wmi_roam_mode mode);
-int ath6kl_wmi_mcast_filter_cmd(struct wmi *wmi, u8 if_idx, bool mc_all_on);
-int ath6kl_wmi_add_del_mcast_filter_cmd(struct wmi *wmi, u8 if_idx,
- u8 *filter, bool add_filter);
-int ath6kl_wmi_set_ht_cap_cmd(struct wmi *wmi, u8 if_idx,
- struct wmi_set_ht_cap_cmd *params);
-
-/* AP mode uAPSD */
-int ath6kl_wmi_ap_set_apsd(struct wmi *wmi, u8 if_idx, u8 enable);
-
-int ath6kl_wmi_set_apsd_bfrd_traf(struct wmi *wmi,
- u8 if_idx, u16 aid,
- u16 bitmap, u32 flags);
-
-int ath6kl_wmi_mcast_filter_cmd(struct wmi *wmi, u8 if_idx, bool mc_all_on);
-int ath6kl_wmi_add_del_mcast_filter_cmd(struct wmi *wmi, u8 if_idx,
- u8 *filter, bool add_filter);
-
-u8 ath6kl_wmi_get_traffic_class(u8 user_priority);
-
-u8 ath6kl_wmi_determine_user_priority(u8 *pkt, u32 layer2_pri);
-/* AP mode */
-int ath6kl_wmi_ap_hidden_ssid(struct wmi *wmi, u8 if_idx, bool enable);
-int ath6kl_wmi_ap_profile_commit(struct wmi *wmip, u8 if_idx,
- struct wmi_connect_cmd *p);
-
-int ath6kl_wmi_ap_set_mlme(struct wmi *wmip, u8 if_idx, u8 cmd,
- const u8 *mac, u16 reason);
-
-int ath6kl_wmi_set_pvb_cmd(struct wmi *wmi, u8 if_idx, u16 aid, bool flag);
-
-int ath6kl_wmi_set_rx_frame_format_cmd(struct wmi *wmi, u8 if_idx,
- u8 rx_meta_version,
- bool rx_dot11_hdr, bool defrag_on_host);
-
-int ath6kl_wmi_set_appie_cmd(struct wmi *wmi, u8 if_idx, u8 mgmt_frm_type,
- const u8 *ie, u8 ie_len);
-
-int ath6kl_wmi_set_ie_cmd(struct wmi *wmi, u8 if_idx, u8 ie_id, u8 ie_field,
- const u8 *ie_info, u8 ie_len);
-
-/* P2P */
-int ath6kl_wmi_disable_11b_rates_cmd(struct wmi *wmi, bool disable);
-
-int ath6kl_wmi_remain_on_chnl_cmd(struct wmi *wmi, u8 if_idx, u32 freq,
- u32 dur);
-
-int ath6kl_wmi_send_mgmt_cmd(struct wmi *wmi, u8 if_idx, u32 id, u32 freq,
- u32 wait, const u8 *data, u16 data_len,
- u32 no_cck);
-
-int ath6kl_wmi_send_probe_response_cmd(struct wmi *wmi, u8 if_idx, u32 freq,
- const u8 *dst, const u8 *data,
- u16 data_len);
-
-int ath6kl_wmi_probe_report_req_cmd(struct wmi *wmi, u8 if_idx, bool enable);
-
-int ath6kl_wmi_info_req_cmd(struct wmi *wmi, u8 if_idx, u32 info_req_flags);
-
-int ath6kl_wmi_cancel_remain_on_chnl_cmd(struct wmi *wmi, u8 if_idx);
-
-int ath6kl_wmi_set_appie_cmd(struct wmi *wmi, u8 if_idx, u8 mgmt_frm_type,
- const u8 *ie, u8 ie_len);
-
-void ath6kl_wmi_sscan_timer(unsigned long ptr);
-
-struct ath6kl_vif *ath6kl_get_vif_by_index(struct ath6kl *ar, u8 if_idx);
-void *ath6kl_wmi_init(struct ath6kl *devt);
-void ath6kl_wmi_shutdown(struct wmi *wmi);
-void ath6kl_wmi_reset(struct wmi *wmi);
-
-#endif /* WMI_H */
diff --git a/drivers/net/wireless/ath/ath6kl/wmi_btcoex.c b/drivers/net/wireless/ath/ath6kl/wmi_btcoex.c
deleted file mode 100644
index 280522b..0000000
--- a/drivers/net/wireless/ath/ath6kl/wmi_btcoex.c
+++ /dev/null
@@ -1,627 +0,0 @@
-/*
- * Copyright (c) 2004-2011 Atheros Communications Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <linux/ip.h>
-#include "core.h"
-#include "wmi_btcoex.h"
-#include "debug.h"
-
-#define BT_COEX_OP_ACTIVE 0x01
-#define BT_COEX_OP_INACTIVE 0x02
-
-#define BT_COEX_DEFAULT_LINK 0x00
-
-static inline struct sk_buff *ath6kl_wmi_btcoex_get_new_buf(u32 size)
-{
- struct sk_buff *skb;
-
- skb = ath6kl_buf_alloc(size);
- if (!skb)
- return NULL;
-
- skb_put(skb, size);
- if (size)
- memset(skb->data, 0, size);
-
- return skb;
-}
-int ath6kl_wmi_set_btcoex_bt_op_status(struct wmi *wmi, u8 op_id, bool flag)
-{
- struct sk_buff *skb;
- struct wmi_btcoex_bt_op_status_cmd *cmd;
- int op_status;
-
- skb = ath6kl_wmi_btcoex_get_new_buf(sizeof
- (struct wmi_btcoex_bt_op_status_cmd));
- if (!skb)
- return -ENOMEM;
-
- if (flag)
- op_status = BT_COEX_OP_ACTIVE;
- else
- op_status = BT_COEX_OP_INACTIVE;
-
- cmd = (struct wmi_btcoex_bt_op_status_cmd *) skb->data;
- cmd->op_type = cpu_to_le32(op_id);
- cmd->op_status = cpu_to_le32(op_status);
- cmd->link_id = cpu_to_le32(BT_COEX_DEFAULT_LINK);
-
- ath6kl_dbg(ATH6KL_DBG_WMI,
- "WMI_SET_BTCOEX_BT_OPERATING_STATUS_CMDID\n");
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tBT Op status->op_type: %x\n",
- cmd->op_type);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tBT Op status->op_status: %x\n",
- cmd->op_status);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tBT Op status->link_id: %x\n",
- cmd->link_id);
-
- return ath6kl_wmi_cmd_send(wmi, 0, skb,
- WMI_SET_BTCOEX_BT_OPERATING_STATUS_CMDID,
- NO_SYNC_WMIFLAG);
-}
-static inline int btcoex_get_max_slot(int tx_pkt_len)
-{
- int slot = 2;
-
- if (tx_pkt_len <= 90)
- slot = 1; /* EV3 or 2-EV3 or 3-EV3 */
- else
- slot = 3; /* EV4 or EV5 or 2-EV5 3-EV5 */
-
- slot *= 2;
-
- return slot;
-}
-
-#define SCO_SLOT_DEFAULT 2
-#define SCO_IDLE_SLOT_DEFAULT 4
-#define SCO_FLAGS_DEFAULT 0
-#define SCO_LINK_ID_DEFAULT 0
-#define SCO_CYCLES_FORCE_TRIGGER_DEFAULT 10
-#define SCO_DATA_RES_TIMEOUT_DEFAULT 20
-#define SCO_STOMP_DUTY_CYCLE_DEFAULT 2
-#define SCO_STOMP_DUTY_CYCLE_MAX_DEFAULT 6
-#define SCO_PS_POLL_LATENCY_FRACTION_DEFAULT 2
-#define SCO_STOMP_COUNT_IN_100MS_DEFAULT 3
-#define SCO_CONT_STOMP_MAX_DEFAULT 3
-#define SCO_MIN_RATE_MBPS_DEFAULT 36
-#define SCO_LOW_RATE_CNT_DEFAULT 5
-#define SCO_HI_PKT_RATIO_DEFAULT 5
-#define SCO_MAX_AGGR_SIZE_DEFAULT 1
-#define SCO_SCAN_INTERVAL_DEFAULT 100
-#define SCO_MAX_SCAN_STOMP_CNT_INTERVAL 2
-
-static inline void set_default_sco(struct wmi_set_btcoex_sco_config_cmd *cmd)
-{
- struct btcoex_sco_config *sco_config = &cmd->sco_config;
- struct btcoex_pspoll_mode_sco_config *ppoll_config =
- &cmd->sco_pspoll_config;
- struct btcoex_optmode_sco_config *optmode_config =
- &cmd->sco_optmode_config;
- struct btcoex_wlan_sco_config *wlan_config = &cmd->sco_wlan_config;
-
-
- sco_config->sco_slots = cpu_to_le32(SCO_SLOT_DEFAULT);
- sco_config->sco_idle_slots = cpu_to_le32(SCO_IDLE_SLOT_DEFAULT);
- sco_config->sco_flags = cpu_to_le32(SCO_FLAGS_DEFAULT);
- sco_config->link_id = cpu_to_le32(SCO_LINK_ID_DEFAULT);
-
- ppoll_config->sco_cycle_force_trigger =
- cpu_to_le32(SCO_CYCLES_FORCE_TRIGGER_DEFAULT);
- ppoll_config->sco_data_res_to =
- cpu_to_le32(SCO_DATA_RES_TIMEOUT_DEFAULT);
- ppoll_config->sco_stomp_duty_cycle_val =
- cpu_to_le32(SCO_STOMP_DUTY_CYCLE_DEFAULT);
- ppoll_config->sco_stomp_duty_cycle_max_val =
- cpu_to_le32(SCO_STOMP_DUTY_CYCLE_MAX_DEFAULT);
- ppoll_config->sco_pspoll_latency_fraction =
- cpu_to_le32(SCO_PS_POLL_LATENCY_FRACTION_DEFAULT);
-
- optmode_config->sco_stomp_cnt_in_100ms =
- cpu_to_le32(SCO_STOMP_COUNT_IN_100MS_DEFAULT);
- optmode_config->sco_cont_stomp_cnt_max =
- cpu_to_le32(SCO_CONT_STOMP_MAX_DEFAULT);
- optmode_config->sco_min_low_rate_mbps =
- cpu_to_le32(SCO_MIN_RATE_MBPS_DEFAULT);
- optmode_config->sco_low_rate_cnt =
- cpu_to_le32(SCO_LOW_RATE_CNT_DEFAULT);
- optmode_config->sco_hi_pkt_ratio =
- cpu_to_le32(SCO_HI_PKT_RATIO_DEFAULT);
- optmode_config->sco_max_aggr_size =
- cpu_to_le32(SCO_MAX_AGGR_SIZE_DEFAULT);
-
- wlan_config->scan_interval =
- cpu_to_le32(SCO_SCAN_INTERVAL_DEFAULT);
- wlan_config->max_scan_stomp_cnt =
- cpu_to_le32(SCO_MAX_SCAN_STOMP_CNT_INTERVAL);
-
-}
-#define WMI_SCO_CONFIG_FLAG_IS_EDR_CAPABLE (1 << 1)
-
-#define IDLE_SLOT_THREASHOLD 10
-#define MAX_AGGR_SIZE_ABOVE_THREASHOLD 8
-#define POLL_LATENCY_BELOW_THRESHOLD 1
-#define POLL_LATENCY_ABOVE_THRESHOLD 2
-#define POLL_LATENCY_BELOW_THRESHOLD_EDR 2
-#define POLL_LATENCY_ABOVE_THRESHOLD_EDR 3
-#define STOMP_CYCLE_ABOVE_THREASHOLD 2
-#define STOMP_CYCLE_BELOW_THREASHOLD 5
-#define STOMP_CYCLE_ABOVE_THREASHOLD_EDR 2
-#define STOMP_CYCLE_BELOW_THREASHOLD_EDR 5
-#define MAX_STOMP_CNT_BELOW_THRESHOLD 4
-#define MAX_STOMP_CNT_ABOVE_THRESHOLD 2
-#define MAX_STOMP_CNT_BELOW_THRESHOLD_EDR 4
-#define MAX_STOMP_CNT_ABOVE_THRESHOLD_EDR 2
-int ath6kl_wmi_set_btcoex_sco_op(struct wmi *wmi, bool esco, u32 tx_interval,
- u32 tx_pkt_len)
-{
-
- struct sk_buff *skb;
- int max_slot;
-
- struct wmi_set_btcoex_sco_config_cmd *cmd;
- struct btcoex_sco_config *sco_config;
- struct btcoex_pspoll_mode_sco_config *ppoll_config;
- struct btcoex_optmode_sco_config *optmode_config;
- struct btcoex_wlan_sco_config *wlan_config;
-
- skb = ath6kl_wmi_btcoex_get_new_buf(sizeof
- (struct wmi_set_btcoex_sco_config_cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_btcoex_sco_config_cmd *)skb->data;
- set_default_sco(cmd);
-
- set_default_sco(cmd);
- sco_config = &cmd->sco_config;
- ppoll_config = &cmd->sco_pspoll_config;
- optmode_config = &cmd->sco_optmode_config;
- wlan_config = &cmd->sco_wlan_config;
-
- if (esco)
- max_slot = btcoex_get_max_slot(tx_pkt_len);
- else
- max_slot = SCO_SLOT_DEFAULT;
-
- sco_config->sco_slots = cpu_to_le32(max_slot);
-
- if (tx_interval >= max_slot)
- sco_config->sco_idle_slots =
- cpu_to_le32(tx_interval - max_slot);
-
-
- if (sco_config->sco_idle_slots >= IDLE_SLOT_THREASHOLD)
- optmode_config->sco_max_aggr_size =
- cpu_to_le32(MAX_AGGR_SIZE_ABOVE_THREASHOLD);
-
- if (esco) {
- sco_config->sco_flags |= WMI_SCO_CONFIG_FLAG_IS_EDR_CAPABLE;
-
- if (sco_config->sco_idle_slots >= IDLE_SLOT_THREASHOLD) {
- ppoll_config->sco_pspoll_latency_fraction =
- cpu_to_le32(POLL_LATENCY_ABOVE_THRESHOLD_EDR);
- ppoll_config->sco_stomp_duty_cycle_val =
- cpu_to_le32(STOMP_CYCLE_ABOVE_THREASHOLD_EDR);
- wlan_config->max_scan_stomp_cnt =
- cpu_to_le32(MAX_STOMP_CNT_ABOVE_THRESHOLD_EDR);
- } else {
- ppoll_config->sco_pspoll_latency_fraction =
- cpu_to_le32(POLL_LATENCY_BELOW_THRESHOLD_EDR);
- ppoll_config->sco_stomp_duty_cycle_val =
- cpu_to_le32(STOMP_CYCLE_BELOW_THREASHOLD_EDR);
- wlan_config->max_scan_stomp_cnt =
- cpu_to_le32(MAX_STOMP_CNT_BELOW_THRESHOLD_EDR);
- }
- } else {
- if (sco_config->sco_idle_slots >= IDLE_SLOT_THREASHOLD) {
- ppoll_config->sco_pspoll_latency_fraction =
- cpu_to_le32(POLL_LATENCY_ABOVE_THRESHOLD);
- ppoll_config->sco_stomp_duty_cycle_val =
- cpu_to_le32(STOMP_CYCLE_ABOVE_THREASHOLD);
- wlan_config->max_scan_stomp_cnt =
- cpu_to_le32(MAX_STOMP_CNT_ABOVE_THRESHOLD);
- } else {
- ppoll_config->sco_pspoll_latency_fraction =
- cpu_to_le32(POLL_LATENCY_BELOW_THRESHOLD);
- ppoll_config->sco_stomp_duty_cycle_val =
- cpu_to_le32(STOMP_CYCLE_BELOW_THREASHOLD);
- wlan_config->max_scan_stomp_cnt =
- cpu_to_le32(MAX_STOMP_CNT_BELOW_THRESHOLD);
- }
- }
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_SET_BTCOEX_SCO_CONFIG_CMDID\n");
- ath6kl_dbg(ATH6KL_DBG_WMI, "wmi_set_btcoex_sco_config_cmd :\n");
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tsco_config->sco_slots:%x\n",
- sco_config->sco_slots);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tsco_config->sco_idle_slots:%x\n",
- sco_config->sco_idle_slots);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tsco_config->sco_flags:%x\n",
- sco_config->sco_flags);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tsco_config->link_id:%x\n",
- sco_config->link_id);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\n");
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tpspoll_sco_config->sco_cycle_force_trigger %x\n",
- ppoll_config->sco_cycle_force_trigger);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tpspoll_sco_config->sco_data_res_to %x\n",
- ppoll_config->sco_data_res_to);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tpspoll_config->sco_stomp_duty_cycle_val %x\n",
- ppoll_config->sco_stomp_duty_cycle_val);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tpspoll_config->sco_stomp_duty_cycle_max_val %x\n",
- ppoll_config->sco_stomp_duty_cycle_max_val);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tpspoll_config->sco_pspoll_latency_fraction %x\n",
- ppoll_config->sco_pspoll_latency_fraction);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\n");
- ath6kl_dbg(ATH6KL_DBG_WMI, "\toptmode_config->sco_stomp_cnt_in_100ms %x\n",
- optmode_config->sco_stomp_cnt_in_100ms);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\toptmode_config->sco_cont_stomp_cnt_max %x\n",
- optmode_config->sco_cont_stomp_cnt_max);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\toptmode_config->sco_min_low_rate_mbps %x\n",
- optmode_config->sco_min_low_rate_mbps);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\toptmode_config->sco_low_rate_cnt %x\n",
- optmode_config->sco_low_rate_cnt);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\toptmode_config->sco_hi_pkt_ratio %x\n",
- optmode_config->sco_hi_pkt_ratio);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\toptmode_config->sco_max_aggr_size %x\n",
- optmode_config->sco_max_aggr_size);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\n");
- ath6kl_dbg(ATH6KL_DBG_WMI, "\twlan_config->scan_interval %x\n",
- wlan_config->scan_interval);
- ath6kl_dbg(ATH6KL_DBG_WMI, "\twlan_config->max_scan_stomp_cnt %x\n",
- wlan_config->max_scan_stomp_cnt);
-
- return ath6kl_wmi_cmd_send(wmi, 0, skb,
- WMI_SET_BTCOEX_SCO_CONFIG_CMDID,
- NO_SYNC_WMIFLAG);
-}
-#define BTCOEX_A2DP_FLAG_DEFAULT 0
-#define BTCOEX_A2DP_LINK_ID_DEFAULT 0
-#define BTCOEX_A2DP_WLAN_MAX_DUR_DEFAULT 30
-#define BTCOEX_A2DP_MIN_BURST_CNT_DEFAULT 3
-#define BTCOEX_A2DP_DATA_RESP_TO_DEFAULT 20
-#define BTCOEX_A2DP_LOW_RATE_MBPS_DEFAULT 36
-#define BTCOEX_A2DP_LOW_RATE_CNT_DEFAULT 5
-#define BTCOEX_A2DP_HI_PKT_RATIO_DEFAULT 5
-#define BTCOEX_A2DP_MAX_AGGR_SIZE 1
-#define BTCOEX_A2DP_PKT_STOMP_CNT_DEFAULT 6
-
-static inline void dump_a2dp_cmd(struct wmi_set_btcoex_a2dp_config_cmd *cmd)
-{
- struct btcoex_a2dp_config *a2dp_config = &cmd->a2dp_config;
- struct btcoex_pspoll_a2dp_config *pspoll_config = &cmd->pspoll_config;
- struct btcoex_a2dp_optmode_config *optmode_config =
- &cmd->optmode_config;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "a2dp_config->a2dp_flags:%x\n",
- a2dp_config->a2dp_flags);
- ath6kl_dbg(ATH6KL_DBG_WMI, "a2dp_config->link_id:%x\n",
- a2dp_config->link_id);
- ath6kl_dbg(ATH6KL_DBG_WMI, "pspoll_config->a2dp_wlan_max_dur:%x\n",
- pspoll_config->a2dp_wlan_max_dur);
- ath6kl_dbg(ATH6KL_DBG_WMI, "pspoll_config->a2dp_min_bus_cnt:%x\n",
- pspoll_config->a2dp_min_bus_cnt);
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "optmode_config->a2dp_min_low_rate_mbps:%x\n",
- optmode_config->a2dp_min_low_rate_mbps);
- ath6kl_dbg(ATH6KL_DBG_WMI, "optmode_config->a2dp_low_rate_cnt:%x\n",
- optmode_config->a2dp_low_rate_cnt);
- ath6kl_dbg(ATH6KL_DBG_WMI, "optmode_config->a2dp_hi_pkt_ratio:%x\n",
- optmode_config->a2dp_hi_pkt_ratio);
- ath6kl_dbg(ATH6KL_DBG_WMI, "optmode_config->a2dp_max_aggr_size:%x\n",
- optmode_config->a2dp_max_aggr_size);
- ath6kl_dbg(ATH6KL_DBG_WMI, "optmode_config->a2dp_pkt_stomp_cnt:%x\n",
- optmode_config->a2dp_pkt_stomp_cnt);
-}
-
-static inline void set_default_a2dp(struct wmi_set_btcoex_a2dp_config_cmd *cmd)
-{
- struct btcoex_a2dp_config *a2dp_config = &cmd->a2dp_config;
- struct btcoex_pspoll_a2dp_config *pspoll_config = &cmd->pspoll_config;
- struct btcoex_a2dp_optmode_config *optmode_config =
- &cmd->optmode_config;
-
- a2dp_config->a2dp_flags = cpu_to_le32(BTCOEX_A2DP_FLAG_DEFAULT);
- a2dp_config->link_id = cpu_to_le32(BTCOEX_A2DP_LINK_ID_DEFAULT);
-
- pspoll_config->a2dp_wlan_max_dur =
- cpu_to_le32(BTCOEX_A2DP_WLAN_MAX_DUR_DEFAULT);
- pspoll_config->a2dp_min_bus_cnt =
- cpu_to_le32(BTCOEX_A2DP_MIN_BURST_CNT_DEFAULT);
- pspoll_config->a2dp_data_res_to =
- cpu_to_le32(BTCOEX_A2DP_DATA_RESP_TO_DEFAULT);
-
- optmode_config->a2dp_min_low_rate_mbps =
- cpu_to_le32(BTCOEX_A2DP_LOW_RATE_MBPS_DEFAULT);
- optmode_config->a2dp_low_rate_cnt =
- cpu_to_le32(BTCOEX_A2DP_LOW_RATE_CNT_DEFAULT);
- optmode_config->a2dp_hi_pkt_ratio =
- cpu_to_le32(BTCOEX_A2DP_HI_PKT_RATIO_DEFAULT);
- optmode_config->a2dp_max_aggr_size =
- cpu_to_le32(BTCOEX_A2DP_MAX_AGGR_SIZE);
- optmode_config->a2dp_pkt_stomp_cnt =
- cpu_to_le32(BTCOEX_A2DP_PKT_STOMP_CNT_DEFAULT);
-}
-
-#define BTCOEX_A2DP_WLAN_MAX_DUR_QCOM_BT 25
-#define BTCOEX_A2DP_MIN_BURST_CNT_QCOM_BT 3
-#define BTCOEX_A2DP_PKT_STOMP_CNT_QCOM_BT 2
-#define A2DP_CONFIG_ALLOW_OPTIMIZATION (1 << 0)
-static inline void set_qcom_a2dp(struct wmi_set_btcoex_a2dp_config_cmd *cmd)
-{
- struct btcoex_a2dp_config *a2dp_config = &cmd->a2dp_config;
- struct btcoex_pspoll_a2dp_config *pspoll_config = &cmd->pspoll_config;
- struct btcoex_a2dp_optmode_config *optmode_config =
- &cmd->optmode_config;
-
- a2dp_config->a2dp_flags |= cpu_to_le32(A2DP_CONFIG_ALLOW_OPTIMIZATION);
-
- pspoll_config->a2dp_wlan_max_dur =
- cpu_to_le32(BTCOEX_A2DP_WLAN_MAX_DUR_QCOM_BT);
- pspoll_config->a2dp_min_bus_cnt =
- cpu_to_le32(BTCOEX_A2DP_MIN_BURST_CNT_QCOM_BT);
-
- optmode_config->a2dp_pkt_stomp_cnt =
- cpu_to_le32(BTCOEX_A2DP_PKT_STOMP_CNT_QCOM_BT);
-}
-
-#define BT_VER_1_0 0
-#define BT_VER_1_1 1
-#define BT_VER_1_2 2
-#define BT_VER_2_0 3
-#define BT_VER_2_1 4
-#define BT_VER_3_0 5
-#define BT_VER_4_0 6
-
-#define BTCOEX_A2DP_WLAN_MAX_DUR_BDR 30
-#define BTCOEX_A2DP_DATA_RESP_TO_BDR 10
-#define BTCOEX_A2DP_MIN_BURST_CNT_BDR 4
-
-#define BTCOEX_A2DP_LOW_RATE_MBPS_BDR 52
-#define BTCOEX_A2DP_MAX_AGGR_SIZE_BDR 1
-
-#define BTCOEX_A2DP_DATA_RESP_TO_EDR 20
-#define BTCOEX_A2DP_WLAN_MAX_DUR_EDR 50
-#define BTCOEX_A2DP_LOW_RATE_MBPS_EDR 36
-#define BTCOEX_A2DP_MAX_AGGR_SIZE_EDR 16
-#define BTCOEX_A2DP_MIN_BURST_CNT_EDR 2
-static inline void update_lmp_ver(struct wmi_set_btcoex_a2dp_config_cmd *cmd,
- u32 lmp_ver)
-{
- struct btcoex_pspoll_a2dp_config *pspoll_config = &cmd->pspoll_config;
- struct btcoex_a2dp_optmode_config *optmode_config =
- &cmd->optmode_config;
-
- switch (lmp_ver) {
- case BT_VER_1_0:
- case BT_VER_1_1:
- case BT_VER_1_2: /* BDR */
- pspoll_config->a2dp_wlan_max_dur =
- cpu_to_le32(BTCOEX_A2DP_WLAN_MAX_DUR_BDR);
- pspoll_config->a2dp_min_bus_cnt =
- cpu_to_le32(BTCOEX_A2DP_MIN_BURST_CNT_BDR);
- pspoll_config->a2dp_data_res_to =
- cpu_to_le32(BTCOEX_A2DP_DATA_RESP_TO_BDR);
-
- optmode_config->a2dp_min_low_rate_mbps =
- cpu_to_le32(BTCOEX_A2DP_LOW_RATE_MBPS_BDR);
- optmode_config->a2dp_max_aggr_size =
- cpu_to_le32(BTCOEX_A2DP_MAX_AGGR_SIZE_BDR);
- break;
- default: /* EDR */
- pspoll_config->a2dp_data_res_to =
- cpu_to_le32(BTCOEX_A2DP_DATA_RESP_TO_EDR);
- pspoll_config->a2dp_wlan_max_dur =
- cpu_to_le32(BTCOEX_A2DP_WLAN_MAX_DUR_EDR);
- pspoll_config->a2dp_min_bus_cnt =
- cpu_to_le32(BTCOEX_A2DP_MIN_BURST_CNT_EDR);
-
- optmode_config->a2dp_min_low_rate_mbps =
- cpu_to_le32(BTCOEX_A2DP_LOW_RATE_MBPS_EDR);
- optmode_config->a2dp_max_aggr_size =
- cpu_to_le32(BTCOEX_A2DP_MAX_AGGR_SIZE_EDR);
- }
-}
-
-#define BTCOEX_ACL_ROLE_UNKNOWN 0
-#define BTCOEX_ACL_ROLE_MASTER 1
-#define BTCOEX_ACL_ROLE_SLAVE 2
-
-#define A2DP_CONFIG_IS_MASTER (1 << 2)
-#define BTCOEX_A2DP_WLAN_MAX_DUR_SLAVE 30
-static inline void update_acl_role(struct wmi_set_btcoex_a2dp_config_cmd *cmd,
- u32 role)
-{
- struct btcoex_a2dp_config *a2dp_config = &cmd->a2dp_config;
- struct btcoex_pspoll_a2dp_config *pspoll_config = &cmd->pspoll_config;
-
- if (role == BTCOEX_ACL_ROLE_UNKNOWN)
- return;
-
- if (role == BTCOEX_ACL_ROLE_MASTER) {
- a2dp_config->a2dp_flags |= cpu_to_le32(A2DP_CONFIG_IS_MASTER);
- } else {
- a2dp_config->a2dp_flags &= ~cpu_to_le32(A2DP_CONFIG_IS_MASTER);
- pspoll_config->a2dp_wlan_max_dur =
- cpu_to_le32(BTCOEX_A2DP_WLAN_MAX_DUR_SLAVE);
- }
-}
-
-#define BT_VENDOR_DEFAULT 0
-#define BT_VENDOR_QCOM 1
-
-int ath6kl_wmi_set_btcoex_a2dp_op(struct wmi *wmi, u32 role, u32 ver,
- u32 vendor)
-{
- struct wmi_set_btcoex_a2dp_config_cmd *cmd;
- struct sk_buff *skb;
-
- skb = ath6kl_wmi_btcoex_get_new_buf(sizeof
- (struct wmi_set_btcoex_a2dp_config_cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_btcoex_a2dp_config_cmd *)skb->data;
- set_default_a2dp(cmd);
-
- update_acl_role(cmd, role);
- update_lmp_ver(cmd, ver);
-
- if (vendor == BT_VENDOR_QCOM)
- set_qcom_a2dp(cmd);
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_SET_BTCOEX_A2DP_CONFIG_CMDID\n");
- dump_a2dp_cmd(cmd);
-
- return ath6kl_wmi_cmd_send(wmi, 0, skb,
- WMI_SET_BTCOEX_A2DP_CONFIG_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-int ath6kl_wmi_set_btcoex_set_colocated_bt(struct wmi *wmi, u8 dev_type)
-{
- struct wmi_set_btcoex_colocated_bt_dev_cmd *cmd;
- struct sk_buff *skb;
-
- skb = ath6kl_wmi_btcoex_get_new_buf(sizeof
- (struct wmi_set_btcoex_colocated_bt_dev_cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_btcoex_colocated_bt_dev_cmd *)skb->data;
- cmd->colocated_bt_dev = dev_type;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_SET_BTCOEX_COLOCATED_BT_DEV_CMDID:\n");
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tCo-Located BT: %x\n",
- cmd->colocated_bt_dev);
-
- return ath6kl_wmi_cmd_send(wmi, 0, skb,
- WMI_SET_BTCOEX_COLOCATED_BT_DEV_CMDID,
- NO_SYNC_WMIFLAG);
-}
-int ath6kl_wmi_set_btcoex_set_fe_antenna(struct wmi *wmi, u8 antenna_type)
-{
- struct wmi_set_btcoex_fe_antenna_cmd *cmd;
- struct sk_buff *skb;
-
- skb = ath6kl_wmi_btcoex_get_new_buf(sizeof
- (struct wmi_set_btcoex_fe_antenna_cmd));
- if (!skb)
- return -ENOMEM;
-
- cmd = (struct wmi_set_btcoex_fe_antenna_cmd *)skb->data;
- cmd->fe_antenna_type = antenna_type;
-
- ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_SET_BTCOEX_FE_ANT_CMDID:\n");
- ath6kl_dbg(ATH6KL_DBG_WMI, "\tFe antenna Type: %x\n",
- cmd->fe_antenna_type);
-
- return ath6kl_wmi_cmd_send(wmi, 0, skb,
- WMI_SET_BTCOEX_FE_ANT_CMDID,
- NO_SYNC_WMIFLAG);
-}
-
-static int ath6kl_get_wmi_cmd(int nl_cmd)
-{
- int wmi_cmd = 0;
- switch (nl_cmd) {
- case NL80211_WMI_SET_BT_STATUS:
- ath6kl_dbg(ATH6KL_DBG_WMI, "Set BT status\n");
- wmi_cmd = WMI_SET_BT_STATUS_CMDID;
- break;
-
- case NL80211_WMI_SET_BT_PARAMS:
- ath6kl_dbg(ATH6KL_DBG_WMI, "Set BT params\n");
- wmi_cmd = WMI_SET_BT_PARAMS_CMDID;
- break;
-
- case NL80211_WMI_SET_BT_FT_ANT:
- ath6kl_dbg(ATH6KL_DBG_WMI, "Set BT FT antenna\n");
- wmi_cmd = WMI_SET_BTCOEX_FE_ANT_CMDID;
- break;
-
- case NL80211_WMI_SET_COLOCATED_BT_DEV:
- ath6kl_dbg(ATH6KL_DBG_WMI, "Set BT collocated dev\n");
- wmi_cmd = WMI_SET_BTCOEX_COLOCATED_BT_DEV_CMDID;
- break;
-
- case NL80211_WMI_SET_BT_INQUIRY_PAGE_CONFIG:
- ath6kl_dbg(ATH6KL_DBG_WMI, "Set BT inquiry page\n");
- wmi_cmd = WMI_SET_BTCOEX_BTINQUIRY_PAGE_CONFIG_CMDID;
- break;
-
- case NL80211_WMI_SET_BT_SCO_CONFIG:
- ath6kl_dbg(ATH6KL_DBG_WMI, "Set BT sco config\n");
- wmi_cmd = WMI_SET_BTCOEX_SCO_CONFIG_CMDID;
- break;
-
- case NL80211_WMI_SET_BT_A2DP_CONFIG:
- ath6kl_dbg(ATH6KL_DBG_WMI, "Set BT a2dp config\n");
- wmi_cmd = WMI_SET_BTCOEX_A2DP_CONFIG_CMDID;
- break;
-
- case NL80211_WMI_SET_BT_ACLCOEX_CONFIG:
- ath6kl_dbg(ATH6KL_DBG_WMI, "Set BT acl config\n");
- wmi_cmd = WMI_SET_BTCOEX_ACLCOEX_CONFIG_CMDID;
- break;
-
- case NL80211_WMI_SET_BT_DEBUG:
- ath6kl_dbg(ATH6KL_DBG_WMI, "Set BT bt debug\n");
- wmi_cmd = WMI_SET_BTCOEX_DEBUG_CMDID;
- break;
-
- case NL80211_WMI_SET_BT_OPSTATUS:
- ath6kl_dbg(ATH6KL_DBG_WMI, "Set BT op status\n");
- wmi_cmd = WMI_SET_BTCOEX_BT_OPERATING_STATUS_CMDID;
- break;
-
- case NL80211_WMI_GET_BT_CONFIG:
- ath6kl_dbg(ATH6KL_DBG_WMI, "Get BT config\n");
- wmi_cmd = WMI_GET_BTCOEX_CONFIG_CMDID;
- break;
-
- case NL80211_WMI_GET_BT_STATS:
- ath6kl_dbg(ATH6KL_DBG_WMI, "Get BT status\n");
- wmi_cmd = WMI_GET_BTCOEX_STATS_CMDID;
- break;
- }
- return wmi_cmd;
-}
-
-int ath6kl_wmi_send_btcoex_cmd(struct wmi *wmi,
- u8 *buf, int len)
-{
- struct sk_buff *skb;
- u32 nl_cmd;
- int wmi_cmd;
-
- nl_cmd = *(u32 *)buf;
- buf += sizeof(u32);
- len -= sizeof(u32);
- wmi_cmd = ath6kl_get_wmi_cmd(nl_cmd);
- if (wmi_cmd == 0)
- return -ENOMEM;
-
- skb = ath6kl_wmi_btcoex_get_new_buf(len);
- if (!skb)
- return -ENOMEM;
-
- memcpy(skb->data, buf, len);
-
- return ath6kl_wmi_cmd_send(wmi, 0, skb,
- (enum wmi_cmd_id)wmi_cmd,
- NO_SYNC_WMIFLAG);
-}
diff --git a/drivers/net/wireless/ath/ath6kl/wmi_btcoex.h b/drivers/net/wireless/ath/ath6kl/wmi_btcoex.h
deleted file mode 100644
index 0f7acce..0000000
--- a/drivers/net/wireless/ath/ath6kl/wmi_btcoex.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2010-2011 Atheros Communications Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * This file contains the definitions of the WMI protocol specified in the
- * Wireless Module Interface (WMI). It includes definitions of all the
- * commands and events. Commands are messages from the host to the WM.
- * Events and Replies are messages from the WM to the host.
- */
-
-#ifndef WMI_BTCOEX_H
-#define WMI_BTCOEX_H
-
-#include <linux/ieee80211.h>
-
-/*
- * WMI_SET_BTCOEX_BT_OPERATING_STATUS_CMDID
- * Setting the Bluetooth operation status.
- */
-struct wmi_btcoex_bt_op_status_cmd {
- __le32 op_type;
- __le32 op_status;
- __le32 link_id;
-} __packed;
-
-/*
- * WMI_SET_BTCOEX_SCO_CONFIG_CMDID
- * Setting the Bluetooth operation status.
- */
-struct btcoex_sco_config {
- __le32 sco_slots;
- __le32 sco_idle_slots;
- __le32 sco_flags;
- __le32 link_id;
-} __packed;
-
-struct btcoex_pspoll_mode_sco_config {
- __le32 sco_cycle_force_trigger;
- __le32 sco_data_res_to;
- __le32 sco_stomp_duty_cycle_val;
- __le32 sco_stomp_duty_cycle_max_val;
- __le32 sco_pspoll_latency_fraction;
-} __packed;
-
-struct btcoex_optmode_sco_config {
- __le32 sco_stomp_cnt_in_100ms;
- __le32 sco_cont_stomp_cnt_max;
- __le32 sco_min_low_rate_mbps;
- __le32 sco_low_rate_cnt;
- __le32 sco_hi_pkt_ratio;
- __le32 sco_max_aggr_size;
-} __packed;
-
-struct btcoex_wlan_sco_config {
- __le32 scan_interval;
- __le32 max_scan_stomp_cnt;
-} __packed;
-
-struct wmi_set_btcoex_sco_config_cmd {
- struct btcoex_sco_config sco_config;
- struct btcoex_pspoll_mode_sco_config sco_pspoll_config;
- struct btcoex_optmode_sco_config sco_optmode_config;
- struct btcoex_wlan_sco_config sco_wlan_config;
-} __packed;
-/*
- * WMI_SET_BTCOEX_A2DP_CONFIG_CMDID
- * Setting the Bluetooth A2DP configuration operation.
- */
-struct btcoex_a2dp_config {
- __le32 a2dp_flags;
- __le32 link_id;
-} __packed;
-
-struct btcoex_pspoll_a2dp_config {
- __le32 a2dp_wlan_max_dur;
- __le32 a2dp_min_bus_cnt;
- __le32 a2dp_data_res_to;
-
-} __packed;
-
-struct btcoex_a2dp_optmode_config {
- __le32 a2dp_min_low_rate_mbps;
- __le32 a2dp_low_rate_cnt;
- __le32 a2dp_hi_pkt_ratio;
- __le32 a2dp_max_aggr_size;
- __le32 a2dp_pkt_stomp_cnt;
-} __packed;
-
-struct wmi_set_btcoex_a2dp_config_cmd {
- struct btcoex_a2dp_config a2dp_config;
- struct btcoex_pspoll_a2dp_config pspoll_config;
- struct btcoex_a2dp_optmode_config optmode_config;
-} __packed;
-
-struct wmi_set_btcoex_colocated_bt_dev_cmd {
- u8 colocated_bt_dev;
-} __packed;
-
-struct wmi_set_btcoex_fe_antenna_cmd {
- u8 fe_antenna_type;
-} __packed;
-
-/* BT Coex */
-int ath6kl_wmi_set_btcoex_bt_op_status(struct wmi *wmi, u8 op_id, bool flag);
-int ath6kl_wmi_set_btcoex_sco_op(struct wmi *wmi, bool esco, u32 tx_interval,
- u32 tx_pkt_len);
-int ath6kl_wmi_set_btcoex_a2dp_op(struct wmi *wmi, u32 role, u32 ver, u32 ven);
-int ath6kl_wmi_set_btcoex_set_colocated_bt(struct wmi *wmi, u8 dev_type);
-int ath6kl_wmi_set_btcoex_set_fe_antenna(struct wmi *wmi, u8 antenna_type);
-int ath6kl_wmi_send_btcoex_cmd(struct wmi *wmi,
- u8 *buf, int len);
-#endif /* WMI_BTCOEX_H */
diff --git a/drivers/net/wireless/ath/ath6kl/wmiconfig.c b/drivers/net/wireless/ath/ath6kl/wmiconfig.c
deleted file mode 100644
index bb60ed2..0000000
--- a/drivers/net/wireless/ath/ath6kl/wmiconfig.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2010-2011 Atheros Communications Inc.
- * Copyright (c) 2011 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "testmode.h"
-#include "debug.h"
-#include "wmi.h"
-
-#include <net/netlink.h>
-
-enum ath6kl_tm_attr {
- __ATH6KL_TM_ATTR_INVALID = 0,
- ATH6KL_TM_ATTR_CMD = 1,
- ATH6KL_TM_ATTR_DATA = 2,
-
- /* keep last */
- __ATH6KL_TM_ATTR_AFTER_LAST,
- ATH6KL_TM_ATTR_MAX = __ATH6KL_TM_ATTR_AFTER_LAST - 1,
-};
-
-enum ath6kl_tm_cmd {
- ATH6KL_TM_CMD_TCMD = 0,
- ATH6KL_TM_CMD_RX_REPORT = 1, /* not used anymore */
- ATH6KL_TM_CMD_WMI_CMD = 0xF000,
-};
-
-struct sk_buff *ath6kl_wmi_get_buf(u32 size)
-{
- struct sk_buff *skb;
-
- skb = ath6kl_buf_alloc(size);
- if (!skb)
- return NULL;
-
- skb_put(skb, size);
- if (size)
- memset(skb->data, 0, size);
-
- return skb;
-}
-void ath6kl_tm_rx_wmi_event(struct ath6kl *ar, void *buf, size_t buf_len)
-{
- struct sk_buff *skb;
-
-
- if (!buf || buf_len == 0)
- return;
-
- skb = cfg80211_testmode_alloc_event_skb(ar->wiphy, buf_len, GFP_KERNEL);
- if (!skb) {
- ath6kl_warn("failed to allocate testmode rx skb!\n");
- return;
- }
- NLA_PUT_U32(skb, ATH6KL_TM_ATTR_CMD, ATH6KL_TM_CMD_WMI_CMD);
- NLA_PUT(skb, ATH6KL_TM_ATTR_DATA, buf_len, buf);
- cfg80211_testmode_event(skb, GFP_KERNEL);
- return;
-
-nla_put_failure:
- kfree_skb(skb);
- ath6kl_warn("nla_put failed on testmode rx skb!\n");
-}
-
-
-void ath6kl_wmicfg_send_stats(struct ath6kl_vif *vif,
- struct target_stats *stats)
-{
- u32 *buff = kzalloc(sizeof(*stats) + 4, GFP_KERNEL);
-
- buff[0] = WMI_REPORT_STATISTICS_EVENTID;
- memcpy(buff+1, stats, sizeof(struct target_stats));
- ath6kl_tm_rx_wmi_event(vif->ar->wmi->parent_dev, buff,
- sizeof(struct target_stats)+4);
- kfree(buff);
-}
diff --git a/drivers/net/wireless/ath/ath6kl/wmiconfig.h b/drivers/net/wireless/ath/ath6kl/wmiconfig.h
deleted file mode 100644
index bcc29ae..0000000
--- a/drivers/net/wireless/ath/ath6kl/wmiconfig.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2011 Atheros Communications Inc.
- * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef WMICONFIG_H
-#define WMICONFIG_H
-
-struct sk_buff *ath6kl_wmi_get_buf(u32 size);
-void ath6kl_tm_rx_wmi_event(struct ath6kl *ar, void *buf, size_t buf_len);
-void ath6kl_wmicfg_send_stats(struct ath6kl_vif *vif,
- struct target_stats *stats);
-#endif
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 217cfd7..1c70e7a 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -263,7 +263,6 @@ comment "Frame buffer hardware drivers"
source "drivers/video/samsung/Kconfig"
source "drivers/video/samsung_extdisp/Kconfig"
-source "drivers/video/samsung_duallcd/Kconfig"
config FB_CIRRUS
tristate "Cirrus Logic support"
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index 1261866..7aa3b21 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -121,15 +121,6 @@ obj-$(CONFIG_FB_MIPI_DSIM) += s5p_mipi_dsi.o s5p_mipi_dsi_lowlevel.o
obj-$(CONFIG_FB_S3C) += s3c-fb.o
obj-$(CONFIG_S5P_DP) += s5p-dp-core.o s5p-dp-reg.o
obj-$(CONFIG_FB_S3C2410) += s3c2410fb.o
-ifeq ($(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD),y)
-obj-$(CONFIG_FB_S5P) += samsung_duallcd/
-ifeq ($(CONFIG_NAPLES_COMMON),y)
-obj-$(CONFIG_S5P_MIPI_DSI2) += samsung_duallcd/dsim2_tmp/
-else
-obj-$(CONFIG_S5P_MIPI_DSI2) += samsung_duallcd/dsim2/
-endif
-obj-$(CONFIG_FIMD_EXT_SUPPORT) += samsung_duallcd/extension/
-else
obj-$(CONFIG_FB_S5P) += samsung/
ifeq ($(CONFIG_NAPLES_COMMON),y)
obj-$(CONFIG_S5P_MIPI_DSI2) += samsung/dsim2_tmp/
@@ -137,7 +128,6 @@ else
obj-$(CONFIG_S5P_MIPI_DSI2) += samsung/dsim2/
endif
obj-$(CONFIG_FIMD_EXT_SUPPORT) += samsung/extension/
-endif
obj-$(CONFIG_FB_S5P_EXTDSP) += samsung_extdisp/
obj-$(CONFIG_FB_FSL_DIU) += fsl-diu-fb.o
obj-$(CONFIG_FB_COBALT) += cobalt_lcdfb.o
diff --git a/drivers/video/samsung_duallcd/Kconfig b/drivers/video/samsung_duallcd/Kconfig
deleted file mode 100644
index 549e981..0000000
--- a/drivers/video/samsung_duallcd/Kconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# S3C Video configuration
-#
-
-config S5P_DSIM_SWITCHABLE_DUAL_LCD
- bool "Samsung MIPI DSIM Switchable DUAL LCD support"
- default n
- ---help---
- This enables support for Samsung MIPI DSIM Switchable DUAL LCD.
- This driver uses one DSIM port. DSIM port is able to switch to
- select LCD Panel. Using LCD_SEL gpio, LCD can be switched.
- Only one side of lcd panel could be enabled.
diff --git a/drivers/video/samsung_duallcd/Makefile b/drivers/video/samsung_duallcd/Makefile
deleted file mode 100644
index 04157b4..0000000
--- a/drivers/video/samsung_duallcd/Makefile
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-# Makefile for the s3c framebuffer driver
-#
-ifeq ($(CONFIG_FB_S5P),y)
-obj-y += s3cfb.o
-s3cfb-y := s3cfb_main.o s3cfb_ops.o lcdfreq.o
-obj-$(CONFIG_ARCH_S5PV210) += s3cfb_fimd6x.o
-obj-$(CONFIG_ARCH_EXYNOS4) += s3cfb_fimd6x.o
-
-obj-$(CONFIG_FB_S5P_S6C1372) += s3cfb_s6c1372.o
-obj-$(CONFIG_FB_S5P_S6F1202A) += s3cfb_s6c1372.o
-obj-$(CONFIG_FB_S5P_LTE480WV) += s3cfb_lte480wv.o
-obj-$(CONFIG_FB_S5P_HT101HD1) += s3cfb_ht101hd1.o
-obj-$(CONFIG_FB_S5P_WA101S) += s3cfb_wa101s.o
-obj-$(CONFIG_FB_S5P_AMS369FG06) += s3cfb_ams369fg06.o
-obj-$(CONFIG_FB_S5P_LD9040) += ld9040.o smart_dimming_ld9042.o
-obj-$(CONFIG_FB_S5P_NT35560) += nt35560.o
-obj-$(CONFIG_FB_S5P_MDNIE) += s3cfb_mdnie.o s3cfb_ielcd.o mdnie.o mdnie_tunning.o
-obj-$(CONFIG_FB_S5P_LMS501KF03) += s3cfb_lms501kf03.o
-obj-$(CONFIG_FB_S5P_DUMMY_MIPI_LCD) += s3cfb_dummymipilcd.o
-obj-$(CONFIG_FB_S5P_S6E8AA0) += s3cfb_s6e8aa0.o smart_dimming.o
-obj-$(CONFIG_FB_S5P_EA8061) += s3cfb_ea8061.o
-obj-$(CONFIG_FB_S5P_S6E8AB0) += s3cfb_s6e8ab0.o smart_dimming_s6e8ab0.o
-obj-$(CONFIG_FB_S5P_S6E39A0) += s3cfb_s6e39a0.o smart_dimming.o
-# obj-$(CONFIG_FB_S5P_S6E63M0) += s3cfb_s6e63m0.o smart_dimming_s6e63m0.o
-obj-$(CONFIG_FB_S5P_S6E63M0) += s3cfb_s6e63m0.o smart_mtp_s6e63m0.o
-obj-$(CONFIG_FB_S5P_S6D6AA1) += s6d6aa1.o
-obj-$(CONFIG_FB_S5P_MIPI_DSIM) += s5p_dsim_lowlevel.o
-obj-$(CONFIG_FB_S5P_MIPI_DSIM) += s5p-dsim.o
-obj-$(CONFIG_TARGET_LOCALE_KOR) += boot_progressbar.o
-endif
-
-ifeq ($(CONFIG_FB_S5P_DEBUG),y)
-EXTRA_CFLAGS += -DDEBUG
-endif
-
-# version 2 rules
-ifeq ($(CONFIG_FB_S5P_V2),y)
-obj-y += s3cfb2.o
-obj-$(CONFIG_PLAT_S3C64XX) += s3cfb2_fimd4x.o
-obj-$(CONFIG_PLAT_S5P64XX) += s3cfb2_fimd5x.o
-obj-$(CONFIG_CPU_S5P6450) += s3cfb2_fimd5x.o
-obj-$(CONFIG_CPU_S5PC100) += s3cfb2_fimd5x.o
-obj-$(CONFIG_CPU_S5PC110) += s3cfb2_fimd6x.o
-obj-$(CONFIG_FB_S5P_V2_LTE480WV) += s3cfb2_lte480wv.o
-obj-$(CONFIG_FB_S5P_V2_TL2796) += s3cfb2_tl2796.o
-endif
-
-ifeq ($(CONFIG_FB_S5P_V2_DEBUG),y)
-EXTRA_CFLAGS += -DDEBUG
-endif
diff --git a/drivers/video/samsung_duallcd/aid_s6e8aa0.h b/drivers/video/samsung_duallcd/aid_s6e8aa0.h
deleted file mode 100644
index cf8058a..0000000
--- a/drivers/video/samsung_duallcd/aid_s6e8aa0.h
+++ /dev/null
@@ -1,239 +0,0 @@
-#ifndef __AID_S6E8AA0_H__
-#define __AID_S6E8AA0_H__
-
-#include "smart_dimming.h"
-
-#define aid_300nit_260nit_F8_1st 0x19
-#define aid_300nit_260nit_F8_18th 0x04
-#define aid_250nit_190nit_F8_1st 0x19
-#define aid_250nit_190nit_F8_18th 0x04
-#define aid_188nit_182nit_F8_1st 0x59
-#define aid_188nit_F8_18th 0x0D
-#define aid_186nit_F8_18th 0x1A
-#define aid_184nit_F8_18th 0x27
-#define aid_182nit_F8_18th 0x34
-#define aid_180nit_110nit_F8_18th 0x42
-#define aid_180nit_110nit_F8_1st 0x59
-#define aid_100nit_20nit_F8_1st 0x59
-#define aid_100nit_F8_18th 0x12
-#define aid_90nit_F8_18th 0x22
-#define aid_80nit_F8_18th 0x32
-#define aid_70nit_F8_18th 0x41
-#define aid_60nit_F8_18th 0x50
-#define aid_50nit_F8_18th 0x5E
-#define aid_40nit_F8_18th 0x6C
-#define aid_30nit_F8_18th 0x7A
-#define aid_20nit_F8_18th 0x88
-#define AOR40_BASE_188 201
-#define AOR40_BASE_186 214
-#define AOR40_BASE_184 234
-#define AOR40_BASE_182 250
-#define AOR40_BASE_180 273
-#define AOR40_BASE_170 258
-#define AOR40_BASE_160 244
-#define AOR40_BASE_150 229
-#define AOR40_BASE_140 215
-#define AOR40_BASE_130 200
-#define AOR40_BASE_120 186
-#define AOR40_BASE_110 171
-#define base_20to100 110
-
-const struct rgb_offset_info aid_rgb_fix_table[] = {
- {GAMMA_180CD, IV_15, CI_RED, 1}, {GAMMA_180CD, IV_15, CI_GREEN, -1}, {GAMMA_180CD, IV_15, CI_BLUE, 5},
- {GAMMA_170CD, IV_15, CI_RED, 1}, {GAMMA_170CD, IV_15, CI_GREEN, -1}, {GAMMA_170CD, IV_15, CI_BLUE, 5},
- {GAMMA_160CD, IV_15, CI_RED, 1}, {GAMMA_160CD, IV_15, CI_GREEN, -1}, {GAMMA_160CD, IV_15, CI_BLUE, 5},
- {GAMMA_150CD, IV_15, CI_RED, 1}, {GAMMA_150CD, IV_15, CI_GREEN, -1}, {GAMMA_150CD, IV_15, CI_BLUE, 5},
- {GAMMA_140CD, IV_15, CI_RED, 1}, {GAMMA_140CD, IV_15, CI_GREEN, -1}, {GAMMA_140CD, IV_15, CI_BLUE, 5},
- {GAMMA_130CD, IV_15, CI_RED, 1}, {GAMMA_130CD, IV_15, CI_GREEN, -1}, {GAMMA_130CD, IV_15, CI_BLUE, 5},
- {GAMMA_120CD, IV_15, CI_RED, 1}, {GAMMA_120CD, IV_15, CI_GREEN, -1}, {GAMMA_120CD, IV_15, CI_BLUE, 5},
- {GAMMA_110CD, IV_15, CI_RED, 1}, {GAMMA_110CD, IV_15, CI_GREEN, -1}, {GAMMA_110CD, IV_15, CI_BLUE, 5},
- {GAMMA_100CD, IV_15, CI_RED, -2}, {GAMMA_100CD, IV_15, CI_GREEN, -3},
- {GAMMA_90CD, IV_15, CI_RED, -6}, {GAMMA_90CD, IV_15, CI_GREEN, -7},
- {GAMMA_80CD, IV_15, CI_RED, -10}, {GAMMA_80CD, IV_15, CI_GREEN, -12},
- {GAMMA_70CD, IV_15, CI_RED, -17}, {GAMMA_70CD, IV_15, CI_GREEN, -20},
- {GAMMA_60CD, IV_15, CI_RED, -27}, {GAMMA_60CD, IV_15, CI_GREEN, -32},
- {GAMMA_50CD, IV_15, CI_RED, -44}, {GAMMA_50CD, IV_15, CI_GREEN, -53},
- {GAMMA_40CD, IV_15, CI_RED, -44}, {GAMMA_40CD, IV_15, CI_GREEN, -53}, {GAMMA_40CD, IV_15, CI_BLUE, 14},
- {GAMMA_30CD, IV_15, CI_RED, -44}, {GAMMA_30CD, IV_15, CI_GREEN, -53}, {GAMMA_30CD, IV_15, CI_BLUE, 32},
- {GAMMA_20CD, IV_15, CI_RED, -33}, {GAMMA_20CD, IV_15, CI_GREEN, -53}, {GAMMA_20CD, IV_15, CI_BLUE, 62},
- {GAMMA_20CD, IV_35, CI_RED, -15}, {GAMMA_20CD, IV_35, CI_GREEN, -12},
-};
-
-static unsigned char aid_command_20[] = {
- aid_20nit_F8_18th,
- aid_100nit_20nit_F8_1st,
-};
-
-static unsigned char aid_command_30[] = {
- aid_30nit_F8_18th,
- aid_100nit_20nit_F8_1st,
-};
-
-static unsigned char aid_command_40[] = {
- aid_40nit_F8_18th,
- aid_100nit_20nit_F8_1st,
-};
-
-static unsigned char aid_command_50[] = {
- aid_50nit_F8_18th,
- aid_100nit_20nit_F8_1st,
-};
-
-static unsigned char aid_command_60[] = {
- aid_60nit_F8_18th,
- aid_100nit_20nit_F8_1st,
-};
-
-static unsigned char aid_command_70[] = {
- aid_70nit_F8_18th,
- aid_100nit_20nit_F8_1st,
-};
-
-static unsigned char aid_command_80[] = {
- aid_80nit_F8_18th,
- aid_100nit_20nit_F8_1st,
-};
-
-static unsigned char aid_command_90[] = {
- aid_90nit_F8_18th,
- aid_100nit_20nit_F8_1st,
-};
-
-static unsigned char aid_command_100[] = {
- aid_100nit_F8_18th,
- aid_100nit_20nit_F8_1st,
-};
-
-static unsigned char aid_command_110[] = {
- aid_180nit_110nit_F8_18th,
- aid_180nit_110nit_F8_1st,
-};
-
-static unsigned char aid_command_120[] = {
- aid_180nit_110nit_F8_18th,
- aid_180nit_110nit_F8_1st,
-};
-
-static unsigned char aid_command_130[] = {
- aid_180nit_110nit_F8_18th,
- aid_180nit_110nit_F8_1st,
-};
-
-static unsigned char aid_command_140[] = {
- aid_180nit_110nit_F8_18th,
- aid_180nit_110nit_F8_1st,
-};
-
-static unsigned char aid_command_150[] = {
- aid_180nit_110nit_F8_18th,
- aid_180nit_110nit_F8_1st,
-};
-
-static unsigned char aid_command_160[] = {
- aid_180nit_110nit_F8_18th,
- aid_180nit_110nit_F8_1st,
-};
-
-static unsigned char aid_command_170[] = {
- aid_180nit_110nit_F8_18th,
- aid_180nit_110nit_F8_1st,
-};
-
-static unsigned char aid_command_180[] = {
- aid_180nit_110nit_F8_18th,
- aid_180nit_110nit_F8_1st,
-};
-
-static unsigned char aid_command_182[] = {
- aid_182nit_F8_18th,
- aid_188nit_182nit_F8_1st,
-};
-
-static unsigned char aid_command_184[] = {
- aid_184nit_F8_18th,
- aid_188nit_182nit_F8_1st,
-};
-
-static unsigned char aid_command_186[] = {
- aid_186nit_F8_18th,
- aid_188nit_182nit_F8_1st,
-};
-
-static unsigned char aid_command_188[] = {
- aid_188nit_F8_18th,
- aid_188nit_182nit_F8_1st,
-};
-
-static unsigned char aid_command_190[] = {
- aid_250nit_190nit_F8_18th,
- aid_250nit_190nit_F8_1st,
-};
-
-static unsigned char aid_command_200[] = {
- aid_250nit_190nit_F8_18th,
- aid_250nit_190nit_F8_1st,
-};
-
-static unsigned char aid_command_210[] = {
- aid_250nit_190nit_F8_18th,
- aid_250nit_190nit_F8_1st,
-};
-
-static unsigned char aid_command_220[] = {
- aid_250nit_190nit_F8_18th,
- aid_250nit_190nit_F8_1st,
-};
-
-static unsigned char aid_command_230[] = {
- aid_250nit_190nit_F8_18th,
- aid_250nit_190nit_F8_1st,
-};
-
-static unsigned char aid_command_240[] = {
- aid_250nit_190nit_F8_18th,
- aid_250nit_190nit_F8_1st,
-};
-
-static unsigned char aid_command_250[] = {
- aid_250nit_190nit_F8_18th,
- aid_250nit_190nit_F8_1st,
-};
-
-static unsigned char aid_command_300[] = {
- aid_300nit_260nit_F8_18th,
- aid_300nit_260nit_F8_1st,
-};
-
-static unsigned char *aid_command_table[GAMMA_MAX] = {
- aid_command_20,
- aid_command_30,
- aid_command_40,
- aid_command_50,
- aid_command_60,
- aid_command_70,
- aid_command_80,
- aid_command_90,
- aid_command_100,
- aid_command_110,
- aid_command_120,
- aid_command_130,
- aid_command_140,
- aid_command_150,
- aid_command_160,
- aid_command_170,
- aid_command_180,
- aid_command_182,
- aid_command_184,
- aid_command_186,
- aid_command_188,
- aid_command_190,
- aid_command_200,
- aid_command_210,
- aid_command_220,
- aid_command_230,
- aid_command_240,
- aid_command_250,
- aid_command_300
-};
-
-#endif
diff --git a/drivers/video/samsung_duallcd/boot_progressbar.c b/drivers/video/samsung_duallcd/boot_progressbar.c
deleted file mode 100644
index f4cc6da..0000000
--- a/drivers/video/samsung_duallcd/boot_progressbar.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/* linux/drivers/video/samsung/boot_progressbar.c
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
- *
- * Core file for Samsung Display Controller (FIMD) driver
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/clk.h>
-#include <linux/mutex.h>
-#include <linux/poll.h>
-#include <linux/wait.h>
-#include <linux/fs.h>
-#include <linux/irq.h>
-#include <linux/mm.h>
-#include <linux/fb.h>
-#include <linux/ctype.h>
-#include <linux/dma-mapping.h>
-#include <linux/interrupt.h>
-#include <linux/platform_device.h>
-#include <linux/io.h>
-#include <linux/memory.h>
-#include <linux/pm_runtime.h>
-#include <linux/delay.h>
-#include <plat/clock.h>
-#include <plat/media.h>
-#include <mach/media.h>
-#include <mach/map.h>
-#include "s3cfb.h"
-
-#ifdef CONFIG_HAS_WAKELOCK
-#include <linux/wakelock.h>
-#include <linux/earlysuspend.h>
-#include <linux/suspend.h>
-#endif
-
-#define TRUE 1
-#define FALSE 0
-#define DISPLAY_BOOT_PROGRESS /* progress bar while kernel-loading */
-#define LOGO_MEM_SIZE (800*480*4)
-#define LPDDR1_BASE_ADDR 0x50000000
-/* LPDDR1_BASE_ADDR = Bootloader */
-#define LOGO_MEM_BASE (LPDDR1_BASE_ADDR + 0x0EC00000)
-
-
-static int progress_flag = FALSE;
-static int progress_pos;
-static struct timer_list progress_timer;
-
-#define PROGRESS_BAR_WIDTH 4
-#define PROGRESS_BAR_HEIGHT 8
-#define PROGRESS_BAR_LEFT_POS 54
-#define PROGRESS_BAR_RIGHT_POS (425-PROGRESS_BAR_WIDTH)
-#define PROGRESS_BAR_START_Y 576
-
-static unsigned char anycall_progress_bar_left[] = {
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0xf3, 0xc5, 0x00, 0x00, 0xf3, 0xc5, 0x00, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0xf3, 0xc5, 0x00, 0x00, 0xf3, 0xc5, 0x00, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0xf3, 0xc5, 0x00, 0x00, 0xf3, 0xc5, 0x00, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0xf3, 0xc5, 0x00, 0x00, 0xf3, 0xc5, 0x00, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00
-};
-
-static unsigned char anycall_progress_bar_right[] = {
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0xf3, 0xc5, 0x00, 0x00, 0xf3, 0xc5, 0x00, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0xf3, 0xc5, 0x00, 0x00, 0xf3, 0xc5, 0x00, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0xf3, 0xc5, 0x00, 0x00, 0xf3, 0xc5, 0x00, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0xf3, 0xc5, 0x00, 0x00, 0xf3, 0xc5, 0x00, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00
-};
-
-static unsigned char anycall_progress_bar_center[] = {
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0xf3, 0xc5, 0x00, 0x00, 0xf3, 0xc5, 0x00, 0x00,
-0xf3, 0xc5, 0x00, 0x00, 0xf3, 0xc5, 0x00, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00
-};
-
-static unsigned char anycall_progress_bar[] = {
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00,
-0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00
-};
-
-static void progress_timer_handler(unsigned long data);
-static int show_progress = 1;
-module_param_named(progress, show_progress, bool, 0);
-
-static void s3cfb_update_framebuffer( \
- struct fb_info *fb, int x, int y, void *buffer, \
- int src_width, int src_height)
-{
- struct s3cfb_global *fbdev =
- platform_get_drvdata(to_platform_device(fb->device));
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct fb_var_screeninfo *var = &fb->var;
- int row;
- int bytes_per_pixel = (var->bits_per_pixel / 8);
-
- unsigned char *pSrc = buffer;
- unsigned char *pDst = fb->screen_base;
-
- if (x+src_width > var->xres || y+src_height > var->yres) {
- dev_err(fbdev->dev, "invalid destination coordinate or" \
- " source size (%d, %d) (%d %d)\n", \
- x, y, src_width, src_height);
- return;
- }
-
- pDst += y * fix->line_length + x * bytes_per_pixel;
-
- for (row = 0; row < src_height ; row++) {
- memcpy(pDst, pSrc, src_width * bytes_per_pixel);
- pSrc += src_width * bytes_per_pixel;
- pDst += fix->line_length;
- }
-}
-
-
-/*
-if Updated-pixel is overwrited by other color, progressbar-Update Stop.
-return value : TRUE(update), FALSE(STOP)
-*/
-static int s3cfb_check_progress(struct fb_info *fb, const int progress_pos)
-{
- unsigned char *pDst = fb->screen_base;
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct fb_var_screeninfo *var = &fb->var;
- int bytes_per_pixel = (var->bits_per_pixel / 8);
- int x = PROGRESS_BAR_LEFT_POS;
- int y = PROGRESS_BAR_START_Y;
-
- if (progress_pos + PROGRESS_BAR_WIDTH >= PROGRESS_BAR_RIGHT_POS)
- return FALSE;
-
- pDst += y * fix->line_length + x * bytes_per_pixel;
- if (*pDst == anycall_progress_bar_left[0])
- return TRUE;
- else
- return FALSE;
-}
-
-
-void s3cfb_start_progress(struct fb_info *fb)
-{
- int x_pos;
-
- if (!show_progress)
- return;
-
- init_timer(&progress_timer);
-
- progress_timer.expires = (get_jiffies_64() + (HZ/20));
- progress_timer.data = (long)fb;
- progress_timer.function = progress_timer_handler;
- progress_pos = PROGRESS_BAR_LEFT_POS;
-
- /* draw progress background. */
- for (x_pos = PROGRESS_BAR_LEFT_POS; x_pos <= PROGRESS_BAR_RIGHT_POS; \
- x_pos += PROGRESS_BAR_WIDTH){
- s3cfb_update_framebuffer(fb,
- x_pos,
- PROGRESS_BAR_START_Y,
- (void *)anycall_progress_bar,
- PROGRESS_BAR_WIDTH,
- PROGRESS_BAR_HEIGHT);
- }
- s3cfb_update_framebuffer(fb,
- PROGRESS_BAR_LEFT_POS,
- PROGRESS_BAR_START_Y,
- (void *)anycall_progress_bar_left,
- PROGRESS_BAR_WIDTH,
- PROGRESS_BAR_HEIGHT);
-
- progress_pos += PROGRESS_BAR_WIDTH;
-
- s3cfb_update_framebuffer(fb,
- progress_pos,
- PROGRESS_BAR_START_Y,
- (void *)anycall_progress_bar_right,
- PROGRESS_BAR_WIDTH,
- PROGRESS_BAR_HEIGHT);
-
- add_timer(&progress_timer);
- progress_flag = TRUE;
-
-}
-
-static void s3cfb_stop_progress(void)
-{
- if (progress_flag == FALSE)
- return;
- del_timer(&progress_timer);
- progress_flag = 0;
-}
-
-static void progress_timer_handler(unsigned long data)
-{
- int i;
-
- if (s3cfb_check_progress((struct fb_info *)data, progress_pos)) {
- for (i = 0; i < PROGRESS_BAR_WIDTH; i++) {
- s3cfb_update_framebuffer((struct fb_info *)data,
- progress_pos++,
- PROGRESS_BAR_START_Y,
- (void *)anycall_progress_bar_center,
- 1,
- PROGRESS_BAR_HEIGHT);
- }
-
- s3cfb_update_framebuffer((struct fb_info *)data,
- progress_pos,
- PROGRESS_BAR_START_Y,
- (void *)anycall_progress_bar_right,
- PROGRESS_BAR_WIDTH,
- PROGRESS_BAR_HEIGHT);
-
- progress_timer.expires = (get_jiffies_64() + (HZ/20));
- progress_timer.function = progress_timer_handler;
- add_timer(&progress_timer);
- } else
- s3cfb_stop_progress();
-
-}
diff --git a/drivers/video/samsung_duallcd/boot_progressbar.h b/drivers/video/samsung_duallcd/boot_progressbar.h
deleted file mode 100644
index fa3424c..0000000
--- a/drivers/video/samsung_duallcd/boot_progressbar.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* linux/drivers/video/samsung/boot_progressbar.h
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
- *
- * Draw progress-bar while kernel loading
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-extern void s3cfb_start_progress(struct fb_info *fb);
diff --git a/drivers/video/samsung_duallcd/dsim2/Makefile b/drivers/video/samsung_duallcd/dsim2/Makefile
deleted file mode 100644
index 984452d..0000000
--- a/drivers/video/samsung_duallcd/dsim2/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Makefile for MIPI-DSI driver.
-#
-obj-$(CONFIG_S5P_MIPI_DSI2) += s5p_mipi_dsi.o s5p_mipi_dsi_common.o\
- s5p_mipi_dsi_lowlevel.o
diff --git a/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi.c b/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi.c
deleted file mode 100644
index 29faa03..0000000
--- a/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi.c
+++ /dev/null
@@ -1,803 +0,0 @@
-/* linux/drivers/video/s5p_mipi_dsi.c
- *
- * Samsung SoC MIPI-DSIM driver.
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd
- *
- * InKi Dae, <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/clk.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/fb.h>
-#include <linux/ctype.h>
-#include <linux/platform_device.h>
-#include <linux/io.h>
-#include <linux/irq.h>
-#include <linux/memory.h>
-#include <linux/delay.h>
-#include <linux/interrupt.h>
-#include <linux/kthread.h>
-#include <linux/notifier.h>
-#include <linux/regulator/consumer.h>
-#include <linux/pm_runtime.h>
-
-#include <plat/fb.h>
-#include <plat/mipi_dsim2.h>
-
-#include "s5p_mipi_dsi_common.h"
-#include "s5p_mipi_dsi_lowlevel.h"
-
-#define master_to_driver(a) (a->dsim_lcd_drv)
-#define master_to_device(a) (a->dsim_lcd_dev)
-#define dev_to_dsim(a) platform_get_drvdata(to_platform_device(a))
-
-struct mipi_dsim_ddi {
- int bus_id;
- struct list_head list;
- struct mipi_dsim_lcd_device *dsim_lcd_dev;
- struct mipi_dsim_lcd_driver *dsim_lcd_drv;
-};
-
-static LIST_HEAD(dsim_ddi_list);
-
-static DEFINE_MUTEX(mipi_dsim_lock);
-
-static struct s5p_platform_mipi_dsim *to_dsim_plat(struct platform_device *pdev)
-{
- return (struct s5p_platform_mipi_dsim *)pdev->dev.platform_data;
-}
-
-static int s5p_mipi_regulator_enable(struct mipi_dsim_device *dsim)
-{
- int ret = 0;
-
- mutex_lock(&dsim->lock);
- if (dsim->reg_vdd10) {
- ret = regulator_enable(dsim->reg_vdd10);
- if (ret < 0) {
- dev_err(dsim->dev, "failed to enable regulator.\n");
- goto err_vdd10;
- }
- }
- if (dsim->reg_vdd18) {
- ret = regulator_enable(dsim->reg_vdd18);
- if (ret < 0) {
- dev_err(dsim->dev, "failed to enable regulator.\n");
- goto err_vdd18;
- }
- }
-
- mutex_unlock(&dsim->lock);
- return ret;
-
-err_vdd18:
- ret = regulator_disable(dsim->reg_vdd10);
- if (ret < 0)
- dev_err(dsim->dev, "failed to disable regulator.\n");
-err_vdd10:
- mutex_unlock(&dsim->lock);
- return ret;
-}
-
-static int s5p_mipi_regulator_disable(struct mipi_dsim_device *dsim)
-{
- int ret = 0;
-
- mutex_lock(&dsim->lock);
- if (dsim->reg_vdd18) {
- ret = regulator_disable(dsim->reg_vdd18);
- if (ret < 0) {
- dev_err(dsim->dev, "failed to disable regulator.\n");
- goto err_vdd18;
- }
- }
-
- if (dsim->reg_vdd10) {
- ret = regulator_disable(dsim->reg_vdd10);
- if (ret < 0) {
- dev_err(dsim->dev, "failed to disable regulator.\n");
- goto err_vdd10;
- }
- }
-
- mutex_unlock(&dsim->lock);
- return ret;
-
-err_vdd10:
- ret = regulator_enable(dsim->reg_vdd18);
- if (ret < 0)
- dev_err(dsim->dev, "failed to enable regulator.\n");
-err_vdd18:
- mutex_unlock(&dsim->lock);
- return ret;
-}
-
-/* update all register settings to MIPI DSI controller. */
-static void s5p_mipi_update_cfg(struct mipi_dsim_device *dsim)
-{
- /*
- * data from Display controller(FIMD) is not transferred in video mode
- * but in case of command mode, all settings is not updated to
- * registers.
- */
- s5p_mipi_dsi_stand_by(dsim, 0);
-
- s5p_mipi_dsi_init_dsim(dsim);
- s5p_mipi_dsi_init_link(dsim);
-
- s5p_mipi_dsi_set_hs_enable(dsim);
-
- /* set display timing. */
- s5p_mipi_dsi_set_display_mode(dsim, dsim->dsim_config);
-
- s5p_mipi_dsi_init_interrupt(dsim);
-
- /*
- * data from Display controller(FIMD) is transferred in video mode
- * but in case of command mode, all settigs is updated to registers.
- */
- s5p_mipi_dsi_stand_by(dsim, 1);
-}
-
-static int s5p_mipi_dsi_early_blank_mode(struct mipi_dsim_device *dsim,
- int power)
-{
- switch (power) {
- case FB_BLANK_POWERDOWN:
- if (!dsim->suspended)
- pm_runtime_put_sync(dsim->dev);
-
- atomic_set(&dsim->early_blank_used_t, 1);
- break;
- default:
- break;
- }
-
- return 0;
-}
-
-static int s5p_mipi_dsi_blank_mode(struct mipi_dsim_device *dsim, int power)
-{
- switch (power) {
- case FB_BLANK_UNBLANK:
- if (dsim->suspended)
- pm_runtime_get_sync(dsim->dev);
-
- atomic_set(&dsim->early_blank_used_t, 0);
- break;
- case FB_BLANK_NORMAL:
- /* TODO. */
- break;
- case FB_BLANK_POWERDOWN:
- /*
- * if this function is called after early fb blank event,
- * ignor it.
- */
- if (atomic_read(&dsim->early_blank_used_t)) {
- atomic_set(&dsim->early_blank_used_t, 0);
- break;
- }
-
- if (!dsim->suspended)
- pm_runtime_put_sync(dsim->dev);
- default:
- break;
- }
-
- return 0;
-}
-
-int s5p_mipi_dsi_register_lcd_device(struct mipi_dsim_lcd_device *lcd_dev)
-{
- struct mipi_dsim_ddi *dsim_ddi;
-
- if (!lcd_dev) {
- printk(KERN_ERR "mipi_dsim_lcd_device is NULL.\n");
- return -EFAULT;
- }
-
- if (!lcd_dev->name) {
- printk(KERN_ERR "dsim_lcd_device name is NULL.\n");
- return -EFAULT;
- }
-
- dsim_ddi = kzalloc(sizeof(struct mipi_dsim_ddi), GFP_KERNEL);
- if (!dsim_ddi) {
- printk(KERN_ERR "failed to allocate dsim_ddi object.\n");
- return -EFAULT;
- }
-
- dsim_ddi->dsim_lcd_dev = lcd_dev;
-
- mutex_lock(&mipi_dsim_lock);
- list_add_tail(&dsim_ddi->list, &dsim_ddi_list);
- mutex_unlock(&mipi_dsim_lock);
-
- return 0;
-}
-
-struct mipi_dsim_ddi
- *s5p_mipi_dsi_find_lcd_device(struct mipi_dsim_lcd_driver *lcd_drv)
-{
- struct mipi_dsim_ddi *dsim_ddi;
- struct mipi_dsim_lcd_device *lcd_dev;
-
- mutex_lock(&mipi_dsim_lock);
-
- list_for_each_entry(dsim_ddi, &dsim_ddi_list, list) {
- if (!dsim_ddi)
- goto out;
-
- lcd_dev = dsim_ddi->dsim_lcd_dev;
- if (!lcd_dev)
- continue;
-
- if (lcd_drv->id >= 0) {
- if ((strcmp(lcd_drv->name, lcd_dev->name)) == 0 &&
- lcd_drv->id == lcd_dev->id) {
- /**
- * bus_id would be used to identify
- * connected bus.
- */
- dsim_ddi->bus_id = lcd_dev->bus_id;
- mutex_unlock(&mipi_dsim_lock);
-
- return dsim_ddi;
- }
- } else {
- if ((strcmp(lcd_drv->name, lcd_dev->name)) == 0) {
- /**
- * bus_id would be used to identify
- * connected bus.
- */
- dsim_ddi->bus_id = lcd_dev->bus_id;
- mutex_unlock(&mipi_dsim_lock);
-
- return dsim_ddi;
- }
- }
- }
-
-out:
- mutex_unlock(&mipi_dsim_lock);
-
- return NULL;
-}
-
-int s5p_mipi_dsi_register_lcd_driver(struct mipi_dsim_lcd_driver *lcd_drv)
-{
- struct mipi_dsim_ddi *dsim_ddi;
-
- if (!lcd_drv) {
- printk(KERN_ERR "mipi_dsim_lcd_driver is NULL.\n");
- return -EFAULT;
- }
-
- if (!lcd_drv->name) {
- printk(KERN_ERR "dsim_lcd_driver name is NULL.\n");
- return -EFAULT;
- }
-
- dsim_ddi = s5p_mipi_dsi_find_lcd_device(lcd_drv);
- if (!dsim_ddi) {
- printk(KERN_ERR "mipi_dsim_ddi object not found.\n");
- return -EFAULT;
- }
-
- dsim_ddi->dsim_lcd_drv = lcd_drv;
-
- printk(KERN_INFO "registered panel driver(%s) to mipi-dsi driver.\n",
- lcd_drv->name);
-
- return 0;
-
-}
-
-struct mipi_dsim_ddi
- *s5p_mipi_dsi_bind_lcd_ddi(struct mipi_dsim_device *dsim,
- const char *name)
-{
- struct mipi_dsim_ddi *dsim_ddi;
- struct mipi_dsim_lcd_driver *lcd_drv;
- struct mipi_dsim_lcd_device *lcd_dev;
- int ret;
-
- mutex_lock(&dsim->lock);
-
- list_for_each_entry(dsim_ddi, &dsim_ddi_list, list) {
- lcd_drv = dsim_ddi->dsim_lcd_drv;
- lcd_dev = dsim_ddi->dsim_lcd_dev;
- if (!lcd_drv || !lcd_dev ||
- (dsim->id != dsim_ddi->bus_id))
- continue;
-
- dev_dbg(dsim->dev, "lcd_drv->id = %d, lcd_dev->id = %d\n",
- lcd_drv->id, lcd_dev->id);
- dev_dbg(dsim->dev, "lcd_dev->bus_id = %d, dsim->id = %d\n",
- lcd_dev->bus_id, dsim->id);
-
- if ((strcmp(lcd_drv->name, name) == 0)) {
- lcd_dev->master = dsim;
-
- lcd_dev->dev.parent = dsim->dev;
- dev_set_name(&lcd_dev->dev, "%s", lcd_drv->name);
-
- ret = device_register(&lcd_dev->dev);
- if (ret < 0) {
- dev_err(dsim->dev,
- "can't register %s, status %d\n",
- dev_name(&lcd_dev->dev), ret);
- mutex_unlock(&dsim->lock);
-
- return NULL;
- }
-
- dsim->dsim_lcd_dev = lcd_dev;
- dsim->dsim_lcd_drv = lcd_drv;
-
- mutex_unlock(&dsim->lock);
-
- return dsim_ddi;
- }
- }
-
- mutex_unlock(&dsim->lock);
-
- return NULL;
-}
-
-static void s5p_mipi_dsi_set_pms(struct mipi_dsim_device *dsim, unsigned int p,
- unsigned int m, unsigned int s, unsigned int freq_band)
-{
- s5p_mipi_dsi_set_pll_pms(dsim, p, m, s);
- s5p_mipi_dsi_pll_freq_band(dsim, freq_band);
- s5p_mipi_dsi_pll_stable_time(dsim,
- dsim->dsim_config->pll_stable_time);
- dsim->dsim_config->p = p;
- dsim->dsim_config->m = m;
- dsim->dsim_config->s = s;
-}
-
-/* define MIPI-DSI Master operations. */
-static struct mipi_dsim_master_ops master_ops = {
- .cmd_read = s5p_mipi_dsi_rd_data,
- .cmd_write = s5p_mipi_dsi_wr_data,
- .get_dsim_frame_done = s5p_mipi_dsi_get_frame_done_status,
- .clear_dsim_frame_done = s5p_mipi_dsi_clear_frame_done,
- .set_early_blank_mode = s5p_mipi_dsi_early_blank_mode,
- .set_blank_mode = s5p_mipi_dsi_blank_mode,
- .set_pms = s5p_mipi_dsi_set_pms,
-};
-
-static int s5p_mipi_dsi_notifier(unsigned int val, void *data)
-{
- struct mipi_dsim_device *dsim = (struct mipi_dsim_device *)data;
- int ret;
-
- ret = s5p_mipi_regulator_enable(dsim);
- if (ret < 0)
- return ret;
-
- ret = clk_enable(dsim->clock);
- if (ret < 0) {
- dev_err(dsim->dev, "failed to enable clock.\n");
- /* it doesn't need error check. */
- s5p_mipi_regulator_disable(dsim);
- return ret;
- }
-
- /* it doesn't need error check. */
- s5p_mipi_dsi_fifo_clear(dsim, val);
-
- clk_disable(dsim->clock);
- return s5p_mipi_regulator_disable(dsim);
-}
-
-static int register_notif_to_fimd(struct mipi_dsim_device *dsim)
-{
- return fimd_register_client(s5p_mipi_dsi_notifier,
- (void *)dsim);
-}
-
-static int s5p_mipi_dsi_power_on(struct mipi_dsim_device *dsim, bool enable)
-{
- struct mipi_dsim_lcd_driver *client_drv = master_to_driver(dsim);
- struct mipi_dsim_lcd_device *client_dev = master_to_device(dsim);
- struct platform_device *pdev = to_platform_device(dsim->dev);
-
- if (enable != false && enable != true)
- return -EINVAL;
-
- if (enable) {
- int ret;
-
- if (!dsim->suspended)
- return 0;
-
- /* lcd panel power on. */
- if (client_drv && client_drv->power_on)
- client_drv->power_on(client_dev, 1);
-
- ret = s5p_mipi_regulator_enable(dsim);
- if (ret < 0) {
- client_drv->power_on(client_dev, 0);
- return ret;
- }
-
- ret = clk_enable(dsim->clock);
- if (ret < 0) {
- dev_err(dsim->dev, "failed to enable clock.\n");
- /* it doesn't need error check. */
- s5p_mipi_regulator_disable(dsim);
- client_drv->power_on(client_dev, 0);
- return ret;
- }
-
- /* enable MIPI-DSI PHY. */
- if (dsim->pd->phy_enable)
- dsim->pd->phy_enable(pdev, true);
-
- s5p_mipi_update_cfg(dsim);
-
- /* set lcd panel sequence commands. */
- if (client_drv && client_drv->set_sequence)
- client_drv->set_sequence(client_dev);
-
- dsim->suspended = false;
- } else {
- if (dsim->suspended)
- return 0;
-
- if (client_drv && client_drv->suspend)
- client_drv->suspend(client_dev);
-
- if (client_drv && client_drv->power_on)
- client_drv->power_on(client_dev, 0);
-
- clk_disable(dsim->clock);
-
- dsim->suspended = true;
-
- return s5p_mipi_regulator_disable(dsim);
- }
-
- return 0;
-}
-
-static int s5p_mipi_dsi_probe(struct platform_device *pdev)
-{
- struct resource *res;
- struct mipi_dsim_device *dsim;
- struct mipi_dsim_config *dsim_config;
- struct s5p_platform_mipi_dsim *dsim_pd;
- struct mipi_dsim_lcd_driver *client_drv;
- struct mipi_dsim_ddi *dsim_ddi;
- int ret = -EINVAL;
-
- dsim = kzalloc(sizeof(struct mipi_dsim_device), GFP_KERNEL);
- if (!dsim) {
- dev_err(&pdev->dev, "failed to allocate dsim object.\n");
- return -EFAULT;
- }
-
- dsim->pd = to_dsim_plat(pdev);
- dsim->dev = &pdev->dev;
- dsim->id = pdev->id;
-
- /* get s5p_platform_mipi_dsim. */
- dsim_pd = (struct s5p_platform_mipi_dsim *)dsim->pd;
- if (dsim_pd == NULL) {
- dev_err(&pdev->dev, "failed to get platform data for dsim.\n");
- ret = -EFAULT;
- goto err_free;
- }
- /* get mipi_dsim_config. */
- dsim_config = dsim_pd->dsim_config;
- if (dsim_config == NULL) {
- dev_err(&pdev->dev, "failed to get dsim config data.\n");
- ret = -EFAULT;
- goto err_free;
- }
-
- dsim->dsim_config = dsim_config;
- dsim->master_ops = &master_ops;
-
- mutex_init(&dsim->lock);
-
- dsim->reg_vdd10 = regulator_get(&pdev->dev, "VDD10");
- if (IS_ERR(dsim->reg_vdd10)) {
- ret = PTR_ERR(dsim->reg_vdd10);
- dev_err(&pdev->dev, "failed to get %s regulator (%d)\n",
- "VDD10", ret);
- dsim->reg_vdd10 = NULL;
- }
-
- dsim->reg_vdd18 = regulator_get(&pdev->dev, "VDD18");
- if (IS_ERR(dsim->reg_vdd18)) {
- ret = PTR_ERR(dsim->reg_vdd18);
- dev_err(&pdev->dev, "failed to get %s regulator (%d)\n",
- "VDD18", ret);
- dsim->reg_vdd18 = NULL;
- }
- dsim->clock = clk_get(&pdev->dev, "dsim0");
- if (IS_ERR(dsim->clock)) {
- dev_err(&pdev->dev, "failed to get dsim clock source\n");
- goto err_regulator;
- }
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res) {
- dev_err(&pdev->dev, "failed to get io memory region\n");
- goto err_put_clk;
- }
-
- dsim->res = request_mem_region(res->start, resource_size(res),
- dev_name(&pdev->dev));
- if (!dsim->res) {
- dev_err(&pdev->dev, "failed to request io memory region\n");
- ret = -ENOMEM;
- goto err_release_res;
- }
-
- dsim->reg_base = ioremap(res->start, resource_size(res));
- if (!dsim->reg_base) {
- dev_err(&pdev->dev, "failed to remap io region\n");
- ret = -EFAULT;
- goto err_release_mem;
- }
-
- dsim->irq = platform_get_irq(pdev, 0);
- if (dsim->irq < 0) {
- dev_err(&pdev->dev, "failed to request dsim irq resource\n");
- ret = -EINVAL;
- goto err_unmap;
- }
-
- ret = request_irq(dsim->irq, s5p_mipi_dsi_interrupt_handler,
- IRQF_SHARED, pdev->name, dsim);
- if (ret != 0) {
- dev_err(&pdev->dev, "failed to request dsim irq\n");
- ret = -EINVAL;
- goto err_unmap;
- }
-
- /* bind lcd ddi matched with panel name. */
- dsim_ddi = s5p_mipi_dsi_bind_lcd_ddi(dsim, dsim_pd->lcd_panel_name);
- if (!dsim_ddi) {
- dev_err(&pdev->dev, "mipi_dsim_ddi object not found.\n");
- goto err_free_irq;
- }
-
- /* register a callback called by fimd. */
- ret = register_notif_to_fimd(dsim);
- if (ret < 0) {
- dev_err(&pdev->dev, "failed to register fimd notifier.\n");
- fimd_unregister_client(s5p_mipi_dsi_notifier);
-
- goto err_free_irq;
- }
-
- init_completion(&dsim_wr_comp);
- init_completion(&dsim_rd_comp);
- mutex_init(&dsim->lock);
-
- client_drv = dsim_ddi->dsim_lcd_drv;
-
- /* initialize mipi-dsi client(lcd panel). */
- if (client_drv && client_drv->probe)
- client_drv->probe(dsim_ddi->dsim_lcd_dev);
-
- platform_set_drvdata(pdev, dsim);
-
- /* in case that mipi got enabled at bootloader. */
- if (dsim_pd->enabled) {
- ret = s5p_mipi_regulator_enable(dsim);
- if (ret < 0)
- goto err_regulator_enable;
-
- ret = pm_runtime_set_active(&pdev->dev);
- if (ret < 0) {
- dev_err(&pdev->dev, "failed to active pm runtime.\n");
- goto err_pm_runtime_active;
- }
-
- s5p_mipi_dsi_init_interrupt(dsim);
-
- if (client_drv && client_drv->check_mtp)
- client_drv->check_mtp(dsim_ddi->dsim_lcd_dev);
-
- /* set lcd panel sequence commands. */
- if (client_drv && client_drv->set_sequence)
- client_drv->set_sequence(dsim_ddi->dsim_lcd_dev);
- } else {
- /* TODO:
- * add check_mtp callback function
- * if mipi dsim is off on bootloader, it causes kernel panic */
- pm_runtime_set_suspended(&pdev->dev);
- dsim->suspended = true;
- }
-
- pm_runtime_enable(&pdev->dev);
- ret = pm_runtime_get_sync(&pdev->dev);
- if (ret < 0) {
- dev_err(&pdev->dev, "failed to get pm runtime.\n");
- pm_runtime_disable(&pdev->dev);
- goto err_regulator_enable;
- }
-
- dev_info(&pdev->dev, "mipi-dsi driver(%s mode) has been probed.\n",
- (dsim_config->e_interface == DSIM_COMMAND) ?
- "CPU" : "RGB");
-
- return 0;
-
-err_pm_runtime_active:
- /* it doesn't need error check. */
- s5p_mipi_regulator_disable(dsim);
-
-err_regulator_enable:
- if (client_drv && client_drv->remove)
- client_drv->remove(dsim_ddi->dsim_lcd_dev);
-
-err_free_irq:
- free_irq(dsim->irq, dsim);
-
-err_unmap:
- iounmap((void __iomem *) dsim->reg_base);
-
-err_release_mem:
- release_mem_region(dsim->res->start, resource_size(dsim->res));
-
-err_release_res:
- release_resource(dsim->res);
-
-err_put_clk:
- clk_disable(dsim->clock);
- clk_put(dsim->clock);
-
-err_regulator:
- regulator_put(dsim->reg_vdd18);
- regulator_put(dsim->reg_vdd10);
-
-err_free:
- kfree(dsim);
- return ret;
-}
-
-static int __devexit s5p_mipi_dsi_remove(struct platform_device *pdev)
-{
- struct mipi_dsim_device *dsim = platform_get_drvdata(pdev);
- struct mipi_dsim_ddi *dsim_ddi;
- struct mipi_dsim_lcd_driver *dsim_lcd_drv;
-
- iounmap(dsim->reg_base);
-
- s5p_mipi_regulator_disable(dsim);
- regulator_put(dsim->reg_vdd18);
- regulator_put(dsim->reg_vdd10);
-
- clk_disable(dsim->clock);
- clk_put(dsim->clock);
-
- release_resource(dsim->res);
- release_mem_region(dsim->res->start, resource_size(dsim->res));
-
- list_for_each_entry(dsim_ddi, &dsim_ddi_list, list) {
- if (dsim_ddi) {
- if (dsim->id != dsim_ddi->bus_id)
- continue;
-
- dsim_lcd_drv = dsim_ddi->dsim_lcd_drv;
-
- if (dsim_lcd_drv->remove)
- dsim_lcd_drv->remove(dsim_ddi->dsim_lcd_dev);
-
- list_del(&dsim_ddi->list);
- kfree(dsim_ddi);
- }
- }
-
- kfree(dsim);
-
- return 0;
-}
-
-#ifdef CONFIG_PM
-static int s5p_mipi_dsi_suspend(struct device *dev)
-{
- struct mipi_dsim_device *dsim = dev_to_dsim(dev);
-
- if (pm_runtime_suspended(dev))
- return 0;
-
- /*
- * do not use pm_runtime_suspend(). if pm_runtime_suspend() is
- * called here, an error would be returned by that interface
- * because the usage_count of pm runtime is more than 1.
- */
- return s5p_mipi_dsi_power_on(dsim, false);
-}
-
-static int s5p_mipi_dsi_resume(struct device *dev)
-{
- struct mipi_dsim_device *dsim = dev_to_dsim(dev);
-
- /*
- * if entering to sleep when lcd panel is on, the usage_count
- * of pm runtime would still be 1 so in this case, mipi dsi driver
- * should be on directly not drawing on pm runtime interface.
- */
- if (!pm_runtime_suspended(dev))
- return s5p_mipi_dsi_power_on(dsim, true);
-
- return 0;
-}
-
-static int s5p_mipi_dsi_runtime_suspend(struct device *dev)
-{
- struct mipi_dsim_device *dsim = dev_to_dsim(dev);
-
- return s5p_mipi_dsi_power_on(dsim, false);
-}
-
-static int s5p_mipi_dsi_runtime_resume(struct device *dev)
-{
- struct mipi_dsim_device *dsim = dev_to_dsim(dev);
-
- return s5p_mipi_dsi_power_on(dsim, true);
-}
-
-static const struct dev_pm_ops s5p_mipi_dsi_pm_ops = {
- .suspend = s5p_mipi_dsi_suspend,
- .resume = s5p_mipi_dsi_resume,
-#ifdef CONFIG_HIBERNATION
- .freeze = s5p_mipi_dsi_suspend,
- .thaw = s5p_mipi_dsi_resume,
- .restore = s5p_mipi_dsi_resume,
-#endif
- .runtime_suspend = s5p_mipi_dsi_runtime_suspend,
- .runtime_resume = s5p_mipi_dsi_runtime_resume,
-};
-#endif
-
-static struct platform_driver s5p_mipi_dsi_driver = {
- .probe = s5p_mipi_dsi_probe,
- .remove = __devexit_p(s5p_mipi_dsi_remove),
- .driver = {
- .name = "s5p-mipi-dsim",
- .owner = THIS_MODULE,
-#ifdef CONFIG_PM
- .pm = &s5p_mipi_dsi_pm_ops,
-#endif
- },
-};
-
-static int s5p_mipi_dsi_register(void)
-{
- platform_driver_register(&s5p_mipi_dsi_driver);
-
- return 0;
-}
-
-static void s5p_mipi_dsi_unregister(void)
-{
- platform_driver_unregister(&s5p_mipi_dsi_driver);
-}
-
-late_initcall(s5p_mipi_dsi_register);
-module_exit(s5p_mipi_dsi_unregister);
-
-MODULE_AUTHOR("InKi Dae <inki.dae@samsung.com>");
-MODULE_DESCRIPTION("Samusung SoC MIPI-DSI driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_common.c b/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_common.c
deleted file mode 100644
index 9b4714c..0000000
--- a/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_common.c
+++ /dev/null
@@ -1,884 +0,0 @@
-/* linux/drivers/video/s5p_mipi_dsi_common.c
- *
- * Samsung SoC MIPI-DSI common driver.
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd
- *
- * InKi Dae, <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/fb.h>
-#include <linux/ctype.h>
-#include <linux/platform_device.h>
-#include <linux/io.h>
-#include <linux/memory.h>
-#include <linux/delay.h>
-#include <linux/kthread.h>
-
-#include <video/mipi_display.h>
-
-#include <plat/regs-dsim2.h>
-
-#include <mach/map.h>
-#include <plat/mipi_dsim2.h>
-#include <plat/regs-dsim2.h>
-
-#include "s5p_mipi_dsi_lowlevel.h"
-#include "s5p_mipi_dsi_common.h"
-
-#define MIPI_FIFO_TIMEOUT msecs_to_jiffies(250)
-#define MIPI_RX_FIFO_READ_DONE 0x30800002
-#define MIPI_MAX_RX_FIFO 20
-#define MHZ (1000 * 1000)
-#define FIN_HZ (24 * MHZ)
-
-#define DFIN_PLL_MIN_HZ (6 * MHZ)
-#define DFIN_PLL_MAX_HZ (12 * MHZ)
-
-#define DFVCO_MIN_HZ (500 * MHZ)
-#define DFVCO_MAX_HZ (1000 * MHZ)
-
-#define TRY_GET_FIFO_TIMEOUT (5000 * 2)
-#define TRY_FIFO_CLEAR (10)
-
-/* MIPI-DSIM status types. */
-enum {
- DSIM_STATE_INIT, /* should be initialized. */
- DSIM_STATE_STOP, /* CPU and LCDC are LP mode. */
- DSIM_STATE_HSCLKEN, /* HS clock was enabled. */
- DSIM_STATE_ULPS
-};
-
-/* define DSI lane types. */
-enum {
- DSIM_LANE_CLOCK = (1 << 0),
- DSIM_LANE_DATA0 = (1 << 1),
- DSIM_LANE_DATA1 = (1 << 2),
- DSIM_LANE_DATA2 = (1 << 3),
- DSIM_LANE_DATA3 = (1 << 4)
-};
-
-static unsigned int dpll_table[15] = {
- 100, 120, 170, 220, 270,
- 320, 390, 450, 510, 560,
- 640, 690, 770, 870, 950,
-};
-
-irqreturn_t s5p_mipi_dsi_interrupt_handler(int irq, void *dev_id)
-{
- unsigned int intsrc = 0;
- unsigned int intmsk = 0;
- struct mipi_dsim_device *dsim = NULL;
-
- dsim = (struct mipi_dsim_device *)dev_id;
- if (!dsim) {
- dev_dbg(dsim->dev, KERN_ERR "%s:error: wrong parameter\n",
- __func__);
- return IRQ_HANDLED;
- }
-
- intsrc = s5p_mipi_dsi_read_interrupt(dsim);
- intmsk = s5p_mipi_dsi_read_interrupt_mask(dsim);
-
- intmsk = ~(intmsk) & intsrc;
-
- switch (intmsk) {
- case INTMSK_RX_DONE:
- complete(&dsim_rd_comp);
- dev_dbg(dsim->dev, "MIPI INTMSK_RX_DONE\n");
- break;
- case INTMSK_FIFO_EMPTY:
- complete(&dsim_wr_comp);
- dev_dbg(dsim->dev, "MIPI INTMSK_FIFO_EMPTY\n");
- break;
- default:
- break;
- }
-
- s5p_mipi_dsi_clear_interrupt(dsim, intmsk);
-
- return IRQ_HANDLED;
-}
-
-static void s5p_mipi_dsi_long_data_wr(struct mipi_dsim_device *dsim,
- unsigned int data0, unsigned int data1)
-{
- unsigned int data_cnt = 0, payload = 0;
-
- /* in case that data count is more then 4 */
- for (data_cnt = 0; data_cnt < data1; data_cnt += 4) {
- /*
- * after sending 4bytes per one time,
- * send remainder data less then 4.
- */
- if ((data1 - data_cnt) < 4) {
- if ((data1 - data_cnt) == 3) {
- payload = *(u8 *)(data0 + data_cnt) |
- (*(u8 *)(data0 + (data_cnt + 1))) << 8 |
- (*(u8 *)(data0 + (data_cnt + 2))) << 16;
- dev_dbg(dsim->dev, "count = 3 payload = %x, %x %x %x\n",
- payload, *(u8 *)(data0 + data_cnt),
- *(u8 *)(data0 + (data_cnt + 1)),
- *(u8 *)(data0 + (data_cnt + 2)));
- } else if ((data1 - data_cnt) == 2) {
- payload = *(u8 *)(data0 + data_cnt) |
- (*(u8 *)(data0 + (data_cnt + 1))) << 8;
- dev_dbg(dsim->dev,
- "count = 2 payload = %x, %x %x\n", payload,
- *(u8 *)(data0 + data_cnt),
- *(u8 *)(data0 + (data_cnt + 1)));
- } else if ((data1 - data_cnt) == 1) {
- payload = *(u8 *)(data0 + data_cnt);
- }
-
- s5p_mipi_dsi_wr_tx_data(dsim, payload);
- /* send 4bytes per one time. */
- } else {
- payload = *(u8 *)(data0 + data_cnt) |
- (*(u8 *)(data0 + (data_cnt + 1))) << 8 |
- (*(u8 *)(data0 + (data_cnt + 2))) << 16 |
- (*(u8 *)(data0 + (data_cnt + 3))) << 24;
-
- dev_dbg(dsim->dev,
- "count = 4 payload = %x, %x %x %x %x\n",
- payload, *(u8 *)(data0 + data_cnt),
- *(u8 *)(data0 + (data_cnt + 1)),
- *(u8 *)(data0 + (data_cnt + 2)),
- *(u8 *)(data0 + (data_cnt + 3)));
-
- s5p_mipi_dsi_wr_tx_data(dsim, payload);
- }
- }
-}
-
-int s5p_mipi_dsi_wr_data(struct mipi_dsim_device *dsim, unsigned int data_id,
- unsigned int data0, unsigned int data1)
-{
- if (dsim->state == DSIM_STATE_ULPS) {
- dev_err(dsim->dev, "state is ULPS.\n");
-
- return -EINVAL;
- }
-
- /* FIXME!!! why does it need this delay? */
- msleep(20);
-
- mutex_lock(&dsim->lock);
-
- switch (data_id) {
- /* short packet types of packet types for command. */
- case MIPI_DSI_GENERIC_SHORT_WRITE_0_PARAM:
- case MIPI_DSI_GENERIC_SHORT_WRITE_1_PARAM:
- case MIPI_DSI_GENERIC_SHORT_WRITE_2_PARAM:
- case MIPI_DSI_DCS_SHORT_WRITE:
- case MIPI_DSI_DCS_SHORT_WRITE_PARAM:
- case MIPI_DSI_SET_MAXIMUM_RETURN_PACKET_SIZE:
- s5p_mipi_dsi_wr_tx_header(dsim, data_id, data0, data1);
- break;
-
- /* general command */
- case MIPI_DSI_COLOR_MODE_OFF:
- case MIPI_DSI_COLOR_MODE_ON:
- case MIPI_DSI_SHUTDOWN_PERIPHERAL:
- case MIPI_DSI_TURN_ON_PERIPHERAL:
- s5p_mipi_dsi_wr_tx_header(dsim, data_id, data0, data1);
- break;
-
- /* packet types for video data */
- case MIPI_DSI_V_SYNC_START:
- case MIPI_DSI_V_SYNC_END:
- case MIPI_DSI_H_SYNC_START:
- case MIPI_DSI_H_SYNC_END:
- case MIPI_DSI_END_OF_TRANSMISSION:
- mutex_unlock(&dsim->lock);
- return 0;
-
- /* long packet type and null packet */
- case MIPI_DSI_NULL_PACKET:
- case MIPI_DSI_BLANKING_PACKET:
- mutex_unlock(&dsim->lock);
- return 0;
- case MIPI_DSI_GENERIC_LONG_WRITE:
- case MIPI_DSI_DCS_LONG_WRITE:
- {
- unsigned int size, data_cnt = 0, payload = 0;
- INIT_COMPLETION(dsim_wr_comp);
-
- size = data1 * 4;
-
- /* if data count is less then 4, then send 3bytes data. */
- if (data1 < 4) {
- payload = *(u8 *)(data0) |
- *(u8 *)(data0 + 1) << 8 |
- *(u8 *)(data0 + 2) << 16;
-
- s5p_mipi_dsi_wr_tx_data(dsim, payload);
-
- dev_dbg(dsim->dev, "count = %d payload = %x,%x %x %x\n",
- data1, payload,
- *(u8 *)(data0 + data_cnt),
- *(u8 *)(data0 + (data_cnt + 1)),
- *(u8 *)(data0 + (data_cnt + 2)));
- /* in case that data count is more then 4 */
- } else
- s5p_mipi_dsi_long_data_wr(dsim, data0, data1);
-
- /* put data into header fifo */
- s5p_mipi_dsi_wr_tx_header(dsim, data_id, data1 & 0xff,
- (data1 & 0xff00) >> 8);
-
- if (!wait_for_completion_interruptible_timeout(&dsim_wr_comp,
- MIPI_FIFO_TIMEOUT)) {
- dev_warn(dsim->dev, "command write timeout.\n");
- mutex_unlock(&dsim->lock);
- return -EAGAIN;
- }
- }
- break;
-
- /* packet typo for video data */
- case MIPI_DSI_PACKED_PIXEL_STREAM_16:
- case MIPI_DSI_PACKED_PIXEL_STREAM_18:
- case MIPI_DSI_PIXEL_STREAM_3BYTE_18:
- case MIPI_DSI_PACKED_PIXEL_STREAM_24:
- break;
-
- default:
- dev_warn(dsim->dev,
- "data id %x is not supported current DSI spec.\n",
- data_id);
-
- mutex_unlock(&dsim->lock);
- return -EINVAL;
- }
-
- /* ToDo : process response func should be implemented. */
- mutex_unlock(&dsim->lock);
- return 0;
-}
-
-static unsigned int s5p_mipi_dsi_long_data_rd(struct mipi_dsim_device *dsim,
- unsigned int req_size, unsigned int rx_data, u8 *rx_buf)
-{
- unsigned int rcv_pkt, i, j;
- u16 rxsize;
-
- /* for long packet */
- rxsize = (u16)((rx_data & 0x00ffff00) >> 8);
- dev_dbg(dsim->dev, "mipi dsi rx size : %d\n", rxsize);
- if (rxsize != req_size) {
- dev_dbg(dsim->dev,
- KERN_ERR"received data size mismatch \
- received: %d, requested: %d\n", rxsize, req_size);
- goto err;
- }
-
- for (i = 0; i < (rxsize >> 2); i++) {
- rcv_pkt = s5p_mipi_dsi_rd_rx_fifo(dsim);
- dev_dbg(dsim->dev, "received pkt : %08x\n", rcv_pkt);
- for(j = 0; j < 4; j++) {
- rx_buf[(i * 4) + j] =
- (u8)(rcv_pkt >> (j * 8)) & 0xff;
- dev_dbg(dsim->dev, "received value : %02x\n",
- (rcv_pkt >> (j * 8)) & 0xff);
- }
- }
- if (rxsize % 4) {
- rcv_pkt = s5p_mipi_dsi_rd_rx_fifo(dsim);
- dev_dbg(dsim->dev, "received pkt : %08x\n", rcv_pkt);
- for(j = 0; j < (rxsize % 4); j++) {
- rx_buf[(i * 4) + j] =
- (u8)(rcv_pkt >> (j * 8)) & 0xff;
- dev_dbg(dsim->dev, "received value : %02x\n",
- (rcv_pkt >> (j * 8)) & 0xff);
- }
- }
-
- return rxsize;
-
-err:
- return -EINVAL;
-}
-
-static unsigned int s5p_mipi_dsi_respense_size(unsigned int req_size)
-{
- u8 response;
- switch (req_size) {
- case 1:
- response = MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_1BYTE;
- break;
- case 2:
- response = MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_2BYTE;
- break;
- default:
- response = MIPI_DSI_RX_GENERIC_LONG_READ_RESPONSE;
- break;
- }
-
- return response;
-}
-
-int s5p_mipi_dsi_rd_data(struct mipi_dsim_device *dsim, unsigned int data_id,
- unsigned int data0, unsigned int req_size, u8 *rx_buf)
-{
- unsigned int rx_data, rcv_pkt, i;
- u8 response = 0;
- u16 rxsize;
-
- if (dsim->state == DSIM_STATE_ULPS) {
- dev_err(dsim->dev, "state is ULPS.\n");
-
- return -EINVAL;
- }
-
- /* FIXME!!! */
- msleep(20);
-
- mutex_lock(&dsim->lock);
- INIT_COMPLETION(dsim_rd_comp);
- s5p_mipi_dsi_rd_tx_header(dsim,
- MIPI_DSI_SET_MAXIMUM_RETURN_PACKET_SIZE, req_size);
-
- response = s5p_mipi_dsi_respense_size(req_size);
-
- switch (data_id) {
- case MIPI_DSI_GENERIC_READ_REQUEST_0_PARAM:
- case MIPI_DSI_GENERIC_READ_REQUEST_1_PARAM:
- case MIPI_DSI_GENERIC_READ_REQUEST_2_PARAM:
- case MIPI_DSI_DCS_READ:
- s5p_mipi_dsi_rd_tx_header(dsim,
- data_id, data0);
- /* process response func should be implemented. */
- break;
- default:
- dev_warn(dsim->dev,
- "data id %x is not supported current DSI spec.\n",
- data_id);
-
- return -EINVAL;
- }
-
- if (!wait_for_completion_interruptible_timeout(&dsim_rd_comp,
- MIPI_FIFO_TIMEOUT)) {
- printk(KERN_ERR "RX done interrupt timeout\n");
- mutex_unlock(&dsim->lock);
- return 0;
- }
-
- msleep(20);
-
- rx_data = s5p_mipi_dsi_rd_rx_fifo(dsim);
-
- if ((u8)(rx_data & 0xff) != response) {
- printk(KERN_ERR
- "mipi dsi wrong response rx_data : %x, response:%x\n",
- rx_data, response);
- goto clear_rx_fifo;
- }
-
- if (req_size <= 2) {
- /* for short packet */
- for (i = 0; i < req_size; i++)
- rx_buf[i] = (rx_data >> (8 + (i * 8))) & 0xff;
- rxsize = req_size;
- } else {
- /* for long packet */
- rxsize = s5p_mipi_dsi_long_data_rd(dsim, req_size, rx_data, rx_buf);
- if (rxsize != req_size)
- goto clear_rx_fifo;
- }
-
- rcv_pkt = s5p_mipi_dsi_rd_rx_fifo(dsim);
-
- msleep(20);
-
- if (rcv_pkt != MIPI_RX_FIFO_READ_DONE) {
- dev_info(dsim->dev,
- "Can't found RX FIFO READ DONE FLAG : %x\n", rcv_pkt);
- goto clear_rx_fifo;
- }
-
- mutex_unlock(&dsim->lock);
-
- return rxsize;
-
-clear_rx_fifo:
- i = 0;
- while (1) {
- rcv_pkt = s5p_mipi_dsi_rd_rx_fifo(dsim);
- if ((rcv_pkt == MIPI_RX_FIFO_READ_DONE)
- || (i > MIPI_MAX_RX_FIFO))
- break;
- dev_dbg(dsim->dev,
- "mipi dsi clear rx fifo : %08x\n", rcv_pkt);
- i++;
- }
- dev_info(dsim->dev,
- "mipi dsi rx done count : %d, rcv_pkt : %08x\n", i, rcv_pkt);
-
- mutex_unlock(&dsim->lock);
-
- return 0;
-}
-
-static int s5p_mipi_dsi_pll_on(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- int sw_timeout;
-
- if (enable) {
- sw_timeout = 1000;
-
- s5p_mipi_dsi_enable_pll(dsim, 1);
- while (1) {
- sw_timeout--;
- if (s5p_mipi_dsi_is_pll_stable(dsim))
- return 0;
- if (sw_timeout == 0)
- return -EINVAL;
- }
- } else
- s5p_mipi_dsi_enable_pll(dsim, 0);
-
- return 0;
-}
-
-static unsigned long s5p_mipi_dsi_change_pll(struct mipi_dsim_device *dsim,
- unsigned int pre_divider, unsigned int main_divider,
- unsigned int scaler)
-{
- unsigned long dfin_pll, dfvco, dpll_out;
- unsigned int i, freq_band = 0xf;
-
- dfin_pll = (FIN_HZ / pre_divider);
-
- /******************************************************
- * Serial Clock(=ByteClk X 8) FreqBand[3:0] *
- ******************************************************
- * ~ 99.99 MHz 0000
- * 100 ~ 119.99 MHz 0001
- * 120 ~ 159.99 MHz 0010
- * 160 ~ 199.99 MHz 0011
- * 200 ~ 239.99 MHz 0100
- * 140 ~ 319.99 MHz 0101
- * 320 ~ 389.99 MHz 0110
- * 390 ~ 449.99 MHz 0111
- * 450 ~ 509.99 MHz 1000
- * 510 ~ 559.99 MHz 1001
- * 560 ~ 639.99 MHz 1010
- * 640 ~ 689.99 MHz 1011
- * 690 ~ 769.99 MHz 1100
- * 770 ~ 869.99 MHz 1101
- * 870 ~ 949.99 MHz 1110
- * 950 ~ 1000 MHz 1111
- ******************************************************/
- if (dfin_pll < DFIN_PLL_MIN_HZ || dfin_pll > DFIN_PLL_MAX_HZ) {
- dev_warn(dsim->dev, "fin_pll range should be 6MHz ~ 12MHz\n");
- s5p_mipi_dsi_enable_afc(dsim, 0, 0);
- } else {
- if (dfin_pll < 7 * MHZ)
- s5p_mipi_dsi_enable_afc(dsim, 1, 0x1);
- else if (dfin_pll < 8 * MHZ)
- s5p_mipi_dsi_enable_afc(dsim, 1, 0x0);
- else if (dfin_pll < 9 * MHZ)
- s5p_mipi_dsi_enable_afc(dsim, 1, 0x3);
- else if (dfin_pll < 10 * MHZ)
- s5p_mipi_dsi_enable_afc(dsim, 1, 0x2);
- else if (dfin_pll < 11 * MHZ)
- s5p_mipi_dsi_enable_afc(dsim, 1, 0x5);
- else
- s5p_mipi_dsi_enable_afc(dsim, 1, 0x4);
- }
-
- dfvco = dfin_pll * main_divider;
- dev_dbg(dsim->dev, "dfvco = %lu, dfin_pll = %lu, main_divider = %d\n",
- dfvco, dfin_pll, main_divider);
- if (dfvco < DFVCO_MIN_HZ || dfvco > DFVCO_MAX_HZ)
- dev_warn(dsim->dev, "fvco range should be 500MHz ~ 1000MHz\n");
-
- dpll_out = dfvco / (1 << scaler);
- dev_dbg(dsim->dev, "dpll_out = %lu, dfvco = %lu, scaler = %d\n",
- dpll_out, dfvco, scaler);
-
- for (i = 0; i < ARRAY_SIZE(dpll_table); i++) {
- if (dpll_out < dpll_table[i] * MHZ) {
- freq_band = i;
- break;
- }
- }
-
- dev_dbg(dsim->dev, "freq_band = %d\n", freq_band);
-
- s5p_mipi_dsi_pll_freq(dsim, pre_divider, main_divider, scaler);
-
- s5p_mipi_dsi_hs_zero_ctrl(dsim, 0);
- s5p_mipi_dsi_prep_ctrl(dsim, 0);
-
- /* Freq Band */
- s5p_mipi_dsi_pll_freq_band(dsim, freq_band);
-
- /* Stable time */
- s5p_mipi_dsi_pll_stable_time(dsim, dsim->dsim_config->pll_stable_time);
-
- /* Enable PLL */
- dev_dbg(dsim->dev, "FOUT of mipi dphy pll is %luMHz\n",
- (dpll_out / MHZ));
-
- return dpll_out;
-}
-
-static int s5p_mipi_dsi_set_clock(struct mipi_dsim_device *dsim,
- unsigned int byte_clk_sel, unsigned int enable)
-{
- unsigned int esc_div;
- unsigned long esc_clk_error_rate;
- unsigned long hs_clk = 0, byte_clk = 0, escape_clk = 0;
-
- if (enable) {
- dsim->e_clk_src = byte_clk_sel;
-
- /* Escape mode clock and byte clock source */
- s5p_mipi_dsi_set_byte_clock_src(dsim, byte_clk_sel);
-
- /* DPHY, DSIM Link : D-PHY clock out */
- if (byte_clk_sel == DSIM_PLL_OUT_DIV8) {
- hs_clk = s5p_mipi_dsi_change_pll(dsim,
- dsim->dsim_config->p, dsim->dsim_config->m,
- dsim->dsim_config->s);
- if (hs_clk == 0) {
- dev_err(dsim->dev,
- "failed to get hs clock.\n");
- return -EINVAL;
- }
-
- byte_clk = hs_clk / 8;
- s5p_mipi_dsi_enable_pll_bypass(dsim, 0);
- s5p_mipi_dsi_pll_on(dsim, 1);
- /* DPHY : D-PHY clock out, DSIM link : external clock out */
- } else if (byte_clk_sel == DSIM_EXT_CLK_DIV8) {
- dev_warn(dsim->dev, "this project is not support\n");
- dev_warn(dsim->dev,
- "external clock source for MIPI DSIM.\n");
- } else if (byte_clk_sel == DSIM_EXT_CLK_BYPASS) {
- dev_warn(dsim->dev, "this project is not support\n");
- dev_warn(dsim->dev,
- "external clock source for MIPI DSIM\n");
- }
-
- /* escape clock divider */
- esc_div = byte_clk / (dsim->dsim_config->esc_clk);
- dev_dbg(dsim->dev,
- "esc_div = %d, byte_clk = %lu, esc_clk = %lu\n",
- esc_div, byte_clk, dsim->dsim_config->esc_clk);
- if ((byte_clk / esc_div) >= (20 * MHZ) ||
- (byte_clk / esc_div) >
- dsim->dsim_config->esc_clk)
- esc_div += 1;
-
- escape_clk = byte_clk / esc_div;
- dev_dbg(dsim->dev,
- "escape_clk = %lu, byte_clk = %lu, esc_div = %d\n",
- escape_clk, byte_clk, esc_div);
-
- /* enable escape clock. */
- s5p_mipi_dsi_enable_byte_clock(dsim, 1);
-
- /* enable byte clk and escape clock */
- s5p_mipi_dsi_set_esc_clk_prs(dsim, 1, esc_div);
- /* escape clock on lane */
- s5p_mipi_dsi_enable_esc_clk_on_lane(dsim,
- (DSIM_LANE_CLOCK | dsim->data_lane), 1);
-
- dev_dbg(dsim->dev, "byte clock is %luMHz\n",
- (byte_clk / MHZ));
- dev_dbg(dsim->dev, "escape clock that user's need is %lu\n",
- (dsim->dsim_config->esc_clk / MHZ));
- dev_dbg(dsim->dev, "escape clock divider is %x\n", esc_div);
- dev_dbg(dsim->dev, "escape clock is %luMHz\n",
- ((byte_clk / esc_div) / MHZ));
-
- if ((byte_clk / esc_div) > escape_clk) {
- esc_clk_error_rate = escape_clk /
- (byte_clk / esc_div);
- dev_warn(dsim->dev, "error rate is %lu over.\n",
- (esc_clk_error_rate / 100));
- } else if ((byte_clk / esc_div) < (escape_clk)) {
- esc_clk_error_rate = (byte_clk / esc_div) /
- escape_clk;
- dev_warn(dsim->dev, "error rate is %lu under.\n",
- (esc_clk_error_rate / 100));
- }
- } else {
- s5p_mipi_dsi_enable_esc_clk_on_lane(dsim,
- (DSIM_LANE_CLOCK | dsim->data_lane), 0);
- s5p_mipi_dsi_set_esc_clk_prs(dsim, 0, 0);
-
- /* disable escape clock. */
- s5p_mipi_dsi_enable_byte_clock(dsim, 0);
-
- if (byte_clk_sel == DSIM_PLL_OUT_DIV8)
- s5p_mipi_dsi_pll_on(dsim, 0);
- }
-
- return 0;
-}
-
-int s5p_mipi_dsi_init_dsim(struct mipi_dsim_device *dsim)
-{
- dsim->state = DSIM_STATE_INIT;
-
- switch (dsim->dsim_config->e_no_data_lane) {
- case DSIM_DATA_LANE_1:
- dsim->data_lane = DSIM_LANE_DATA0;
- break;
- case DSIM_DATA_LANE_2:
- dsim->data_lane = DSIM_LANE_DATA0 | DSIM_LANE_DATA1;
- break;
- case DSIM_DATA_LANE_3:
- dsim->data_lane = DSIM_LANE_DATA0 | DSIM_LANE_DATA1 |
- DSIM_LANE_DATA2;
- break;
- case DSIM_DATA_LANE_4:
- dsim->data_lane = DSIM_LANE_DATA0 | DSIM_LANE_DATA1 |
- DSIM_LANE_DATA2 | DSIM_LANE_DATA3;
- break;
- default:
- dev_info(dsim->dev, "data lane is invalid.\n");
- return -EINVAL;
- };
-
- s5p_mipi_dsi_sw_reset(dsim);
- s5p_mipi_dsi_func_reset(dsim);
-
- s5p_mipi_dsi_dp_dn_swap(dsim, 0);
-
- return 0;
-}
-
-void s5p_mipi_dsi_init_interrupt(struct mipi_dsim_device *dsim)
-{
- unsigned int src = 0;
-
- src = (INTSRC_SFR_FIFO_EMPTY | INTSRC_RX_DATA_DONE);
- s5p_mipi_dsi_set_interrupt(dsim, src, 1);
-
- src = 0;
- src = ~(INTMSK_RX_DONE | INTMSK_FIFO_EMPTY);
- s5p_mipi_dsi_set_interrupt_mask(dsim, src, 1);
-}
-
-int s5p_mipi_dsi_enable_frame_done_int(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- /* enable only frame done interrupt */
- s5p_mipi_dsi_set_interrupt_mask(dsim, INTMSK_FRAME_DONE, enable);
-
- return 0;
-}
-
-#if 0
-/* this function can be used to convert legacy timing to generic one. */
-void convert_to_fb_videomode(struct fb_videomode *mode1,
- struct s3cfb_lcd *mode2)
-{
- mode1->xres = mode2->width;
- mode1->yres = mode2->height;
- mode1->upper_margin = mode2->timing.v_fp;
- mode1->lower_margin = mode2->timing.v_bp;
- mode1->left_margin = mode2->timing.h_fp;
- mode1->right_margin = mode2->timing.h_bp;
- mode1->vsync_len = mode2->timing.v_sw;
- mode1->hsync_len = mode2->timing.h_sw;
-}
-#endif
-
-void s5p_mipi_dsi_stand_by(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
-
- /* consider Main display and Sub display. */
-
- s5p_mipi_dsi_set_main_stand_by(dsim, enable);
-}
-
-int s5p_mipi_dsi_set_display_mode(struct mipi_dsim_device *dsim,
- struct mipi_dsim_config *dsim_config)
-{
- struct s5p_platform_mipi_dsim *dsim_pd;
- struct fb_videomode *timing;
-
- dsim_pd = (struct s5p_platform_mipi_dsim *)dsim->pd;
- timing = (struct fb_videomode *)dsim_pd->lcd_panel_info;
-
- /* in case of VIDEO MODE (RGB INTERFACE), it sets polarities. */
- if (dsim_config->e_interface == (u32) DSIM_VIDEO) {
- if (dsim_config->auto_vertical_cnt == 0) {
- s5p_mipi_dsi_set_main_disp_vporch(dsim,
- dsim_config->cmd_allow,
- timing->lower_margin,
- timing->upper_margin);
- s5p_mipi_dsi_set_main_disp_hporch(dsim,
- timing->right_margin,
- timing->left_margin);
- s5p_mipi_dsi_set_main_disp_sync_area(dsim,
- timing->vsync_len,
- timing->hsync_len);
- }
- }
-
- s5p_mipi_dsi_set_main_disp_resol(dsim, timing->xres,
- timing->yres);
-
- s5p_mipi_dsi_display_config(dsim, dsim_config);
-
- dev_info(dsim->dev, "lcd panel ==> width = %d, height = %d\n",
- timing->xres, timing->yres);
-
- return 0;
-}
-
-int s5p_mipi_dsi_init_link(struct mipi_dsim_device *dsim)
-{
- unsigned int time_out = 100;
-
- switch (dsim->state) {
- case DSIM_STATE_INIT:
- s5p_mipi_dsi_init_fifo_pointer(dsim, 0x1f);
-
- /* dsi configuration */
- s5p_mipi_dsi_init_config(dsim);
- s5p_mipi_dsi_enable_lane(dsim, DSIM_LANE_CLOCK, 1);
- s5p_mipi_dsi_enable_lane(dsim, dsim->data_lane, 1);
-
- /* set clock configuration */
- s5p_mipi_dsi_set_clock(dsim, dsim->dsim_config->e_byte_clk, 1);
-
- /* check clock and data lane state are stop state */
- while (!(s5p_mipi_dsi_is_lane_state(dsim))) {
- time_out--;
- if (time_out == 0) {
- dev_err(dsim->dev,
- "DSI Master is not stop state.\n");
- dev_err(dsim->dev,
- "Check initialization process\n");
-
- return -EINVAL;
- }
- }
- if (time_out != 0) {
- dev_info(dsim->dev,
- "DSI Master driver has been completed.\n");
- dev_info(dsim->dev, "DSI Master state is stop state\n");
- }
-
- dsim->state = DSIM_STATE_STOP;
-
- /* BTA sequence counters */
- s5p_mipi_dsi_set_stop_state_counter(dsim,
- dsim->dsim_config->stop_holding_cnt);
- s5p_mipi_dsi_set_bta_timeout(dsim,
- dsim->dsim_config->bta_timeout);
- s5p_mipi_dsi_set_lpdr_timeout(dsim,
- dsim->dsim_config->rx_timeout);
-
- return 0;
- default:
- dev_info(dsim->dev, "DSI Master is already init.\n");
- return 0;
- }
-
- return 0;
-}
-
-int s5p_mipi_dsi_set_hs_enable(struct mipi_dsim_device *dsim)
-{
- if (dsim->state == DSIM_STATE_STOP) {
- if (dsim->e_clk_src != DSIM_EXT_CLK_BYPASS) {
- dsim->state = DSIM_STATE_HSCLKEN;
-
- /* set LCDC and CPU transfer mode to HS. */
- s5p_mipi_dsi_set_lcdc_transfer_mode(dsim, 0);
- s5p_mipi_dsi_set_cpu_transfer_mode(dsim, 0);
-
- s5p_mipi_dsi_enable_hs_clock(dsim, 1);
-
- return 0;
- } else
- dev_warn(dsim->dev,
- "clock source is external bypass.\n");
- } else
- dev_warn(dsim->dev, "DSIM is not stop state.\n");
-
- return 0;
-}
-
-int s5p_mipi_dsi_set_data_transfer_mode(struct mipi_dsim_device *dsim,
- unsigned int mode)
-{
- if (mode) {
- if (dsim->state != DSIM_STATE_HSCLKEN) {
- dev_err(dsim->dev, "HS Clock lane is not enabled.\n");
- return -EINVAL;
- }
-
- s5p_mipi_dsi_set_lcdc_transfer_mode(dsim, 0);
- } else {
- if (dsim->state == DSIM_STATE_INIT || dsim->state ==
- DSIM_STATE_ULPS) {
- dev_err(dsim->dev,
- "DSI Master is not STOP or HSDT state.\n");
- return -EINVAL;
- }
-
- s5p_mipi_dsi_set_cpu_transfer_mode(dsim, 0);
- }
-
- return 0;
-}
-
-int s5p_mipi_dsi_get_frame_done_status(struct mipi_dsim_device *dsim)
-{
- return _s5p_mipi_dsi_get_frame_done_status(dsim);
-}
-
-int s5p_mipi_dsi_clear_frame_done(struct mipi_dsim_device *dsim)
-{
- _s5p_mipi_dsi_clear_frame_done(dsim);
-
- return 0;
-}
-
-int s5p_mipi_dsi_fifo_clear(struct mipi_dsim_device *dsim,
- unsigned int val)
-{
- int try = TRY_FIFO_CLEAR;
-
- s5p_mipi_dsi_sw_reset_release(dsim);
- s5p_mipi_dsi_func_reset(dsim);
-
- do {
- if (s5p_mipi_dsi_get_sw_reset_release(dsim)) {
- s5p_mipi_dsi_init_interrupt(dsim);
- dev_dbg(dsim->dev, "reset release done.\n");
- return 0;
- }
- } while (--try);
-
- dev_err(dsim->dev, "failed to clear dsim fifo.\n");
- return -EAGAIN;
-}
-
-MODULE_AUTHOR("InKi Dae <inki.dae@samsung.com>");
-MODULE_DESCRIPTION("Samusung MIPI-DSIM common driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_common.h b/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_common.h
deleted file mode 100644
index 4e4883e..0000000
--- a/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_common.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* linux/drivers/video/s5p_mipi_dsi_common.h
- *
- * Header file for Samsung SoC MIPI-DSI common driver.
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd
- *
- * InKi Dae <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _S5P_MIPI_DSI_COMMON_H
-#define _S5P_MIPI_DSI_COMMON_H
-
-static DECLARE_COMPLETION(dsim_rd_comp);
-static DECLARE_COMPLETION(dsim_wr_comp);
-
-int s5p_mipi_dsi_wr_data(struct mipi_dsim_device *dsim, unsigned int data_id,
- unsigned int data0, unsigned int data1);
-int s5p_mipi_dsi_rd_data(struct mipi_dsim_device *dsim, unsigned int data_id,
- unsigned int data0, unsigned int req_size, u8 *rx_buf);
-irqreturn_t s5p_mipi_dsi_interrupt_handler(int irq, void *dev_id);
-void s5p_mipi_dsi_init_interrupt(struct mipi_dsim_device *dsim);
-int s5p_mipi_dsi_init_dsim(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_stand_by(struct mipi_dsim_device *dsim,
- unsigned int enable);
-int s5p_mipi_dsi_set_display_mode(struct mipi_dsim_device *dsim,
- struct mipi_dsim_config *dsim_info);
-int s5p_mipi_dsi_init_link(struct mipi_dsim_device *dsim);
-int s5p_mipi_dsi_set_hs_enable(struct mipi_dsim_device *dsim);
-int s5p_mipi_dsi_set_data_transfer_mode(struct mipi_dsim_device *dsim,
- unsigned int mode);
-int s5p_mipi_dsi_enable_frame_done_int(struct mipi_dsim_device *dsim,
- unsigned int enable);
-int s5p_mipi_dsi_get_frame_done_status(struct mipi_dsim_device *dsim);
-int s5p_mipi_dsi_clear_frame_done(struct mipi_dsim_device *dsim);
-
-extern struct fb_info *registered_fb[FB_MAX] __read_mostly;
-
-int s5p_mipi_dsi_fifo_clear(struct mipi_dsim_device *dsim,
- unsigned int val);
-
-#endif /* _S5P_MIPI_DSI_COMMON_H */
diff --git a/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_lowlevel.c b/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_lowlevel.c
deleted file mode 100644
index 48b8967..0000000
--- a/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_lowlevel.c
+++ /dev/null
@@ -1,627 +0,0 @@
-/* linux/drivers/video/s5p_mipi_dsi_lowlevel.c
- *
- * Samsung SoC MIPI-DSI lowlevel driver.
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd
- *
- * InKi Dae, <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/delay.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/ctype.h>
-#include <linux/io.h>
-
-#include <mach/map.h>
-
-#include <plat/mipi_dsim2.h>
-#include <plat/regs-dsim2.h>
-
-void s5p_mipi_dsi_func_reset(struct mipi_dsim_device *dsim)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_SWRST);
-
- reg |= DSIM_FUNCRST;
-
- writel(reg, dsim->reg_base + S5P_DSIM_SWRST);
-}
-
-void s5p_mipi_dsi_sw_reset(struct mipi_dsim_device *dsim)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_SWRST);
-
- reg |= DSIM_SWRST;
-
- writel(reg, dsim->reg_base + S5P_DSIM_SWRST);
-}
-
-void s5p_mipi_dsi_sw_reset_release(struct mipi_dsim_device *dsim)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_INTSRC);
-
- reg |= INTSRC_SW_RST_RELEASE;
-
- writel(reg, dsim->reg_base + S5P_DSIM_INTSRC);
-}
-
-int s5p_mipi_dsi_get_sw_reset_release(struct mipi_dsim_device *dsim)
-{
- return (readl(dsim->reg_base + S5P_DSIM_INTSRC)) &
- INTSRC_SW_RST_RELEASE;
-}
-
-unsigned int s5p_mipi_dsi_read_interrupt_mask(struct mipi_dsim_device *dsim)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_INTMSK);
-
- return reg;
-}
-
-void s5p_mipi_dsi_set_interrupt_mask(struct mipi_dsim_device *dsim,
- unsigned int mode, unsigned int mask)
-{
- unsigned int reg = 0;
-
- if (mask)
- reg |= mode;
- else
- reg &= ~mode;
-
- writel(reg, dsim->reg_base + S5P_DSIM_INTMSK);
-}
-
-void s5p_mipi_dsi_init_fifo_pointer(struct mipi_dsim_device *dsim,
- unsigned int cfg)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_FIFOCTRL);
-
- writel(reg & ~(cfg), dsim->reg_base + S5P_DSIM_FIFOCTRL);
- mdelay(10);
- reg |= cfg;
-
- writel(reg, dsim->reg_base + S5P_DSIM_FIFOCTRL);
-}
-
-/*
- * this function set PLL P, M and S value in D-PHY
- */
-void s5p_mipi_dsi_set_phy_tunning(struct mipi_dsim_device *dsim,
- unsigned int value)
-{
- writel(DSIM_AFC_CTL(value), dsim->reg_base + S5P_DSIM_PHYACCHR);
-}
-
-void s5p_mipi_dsi_set_main_stand_by(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_MDRESOL);
-
- reg &= ~DSIM_MAIN_STAND_BY;
-
- if (enable)
- reg |= DSIM_MAIN_STAND_BY;
-
- writel(reg, dsim->reg_base + S5P_DSIM_MDRESOL);
-}
-
-void s5p_mipi_dsi_set_main_disp_resol(struct mipi_dsim_device *dsim,
- unsigned int width_resol, unsigned int height_resol)
-{
- unsigned int reg;
-
- /* standby should be set after configuration so set to not ready*/
- reg = (readl(dsim->reg_base + S5P_DSIM_MDRESOL)) &
- ~(DSIM_MAIN_STAND_BY);
- writel(reg, dsim->reg_base + S5P_DSIM_MDRESOL);
-
- reg &= ~((0x7ff << 16) | (0x7ff << 0));
- reg |= DSIM_MAIN_VRESOL(height_resol) | DSIM_MAIN_HRESOL(width_resol);
-
- reg |= DSIM_MAIN_STAND_BY;
- writel(reg, dsim->reg_base + S5P_DSIM_MDRESOL);
-}
-
-void s5p_mipi_dsi_set_main_disp_vporch(struct mipi_dsim_device *dsim,
- unsigned int cmd_allow, unsigned int vfront, unsigned int vback)
-{
- unsigned int reg;
-
- reg = (readl(dsim->reg_base + S5P_DSIM_MVPORCH)) &
- ~((DSIM_CMD_ALLOW_MASK) | (DSIM_STABLE_VFP_MASK) |
- (DSIM_MAIN_VBP_MASK));
-
- reg |= ((cmd_allow & 0xf) << DSIM_CMD_ALLOW_SHIFT) |
- ((vfront & 0x7ff) << DSIM_STABLE_VFP_SHIFT) |
- ((vback & 0x7ff) << DSIM_MAIN_VBP_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_MVPORCH);
-}
-
-void s5p_mipi_dsi_set_main_disp_hporch(struct mipi_dsim_device *dsim,
- unsigned int front, unsigned int back)
-{
- unsigned int reg;
-
- reg = (readl(dsim->reg_base + S5P_DSIM_MHPORCH)) &
- ~((DSIM_MAIN_HFP_MASK) | (DSIM_MAIN_HBP_MASK));
-
- reg |= (front << DSIM_MAIN_HFP_SHIFT) | (back << DSIM_MAIN_HBP_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_MHPORCH);
-}
-
-void s5p_mipi_dsi_set_main_disp_sync_area(struct mipi_dsim_device *dsim,
- unsigned int vert, unsigned int hori)
-{
- unsigned int reg;
-
- reg = (readl(dsim->reg_base + S5P_DSIM_MSYNC)) &
- ~((DSIM_MAIN_VSA_MASK) | (DSIM_MAIN_HSA_MASK));
-
- reg |= ((vert & 0x3ff) << DSIM_MAIN_VSA_SHIFT) |
- (hori << DSIM_MAIN_HSA_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_MSYNC);
-}
-
-void s5p_mipi_dsi_set_sub_disp_resol(struct mipi_dsim_device *dsim,
- unsigned int vert, unsigned int hori)
-{
- unsigned int reg;
-
- reg = (readl(dsim->reg_base + S5P_DSIM_SDRESOL)) &
- ~(DSIM_SUB_STANDY_MASK);
-
- writel(reg, dsim->reg_base + S5P_DSIM_SDRESOL);
-
- reg &= ~(DSIM_SUB_VRESOL_MASK) | ~(DSIM_SUB_HRESOL_MASK);
- reg |= ((vert & 0x7ff) << DSIM_SUB_VRESOL_SHIFT) |
- ((hori & 0x7ff) << DSIM_SUB_HRESOL_SHIFT);
- writel(reg, dsim->reg_base + S5P_DSIM_SDRESOL);
-
- reg |= (1 << DSIM_SUB_STANDY_SHIFT);
- writel(reg, dsim->reg_base + S5P_DSIM_SDRESOL);
-}
-
-void s5p_mipi_dsi_init_config(struct mipi_dsim_device *dsim)
-{
- struct mipi_dsim_config *dsim_config = dsim->dsim_config;
-
- unsigned int cfg = (readl(dsim->reg_base + S5P_DSIM_CONFIG)) &
- ~((1 << 28) | (0x1f << 20) | (0x3 << 5));
-
- cfg = (dsim_config->auto_flush << 29) |
- (dsim_config->eot_disable << 28) |
- (dsim_config->auto_vertical_cnt << DSIM_AUTO_MODE_SHIFT) |
- (dsim_config->hse << DSIM_HSE_MODE_SHIFT) |
- (dsim_config->hfp << DSIM_HFP_MODE_SHIFT) |
- (dsim_config->hbp << DSIM_HBP_MODE_SHIFT) |
- (dsim_config->hsa << DSIM_HSA_MODE_SHIFT) |
- (dsim_config->e_no_data_lane << DSIM_NUM_OF_DATALANE_SHIFT);
-
- writel(cfg, dsim->reg_base + S5P_DSIM_CONFIG);
-}
-
-void s5p_mipi_dsi_display_config(struct mipi_dsim_device *dsim,
- struct mipi_dsim_config *dsim_config)
-{
- u32 reg = (readl(dsim->reg_base + S5P_DSIM_CONFIG)) &
- ~((0x3 << 26) | (1 << 25) | (0x3 << 18) | (0x7 << 12) |
- (0x3 << 16) | (0x7 << 8));
-
- if (dsim_config->e_interface == DSIM_VIDEO)
- reg |= (1 << 25);
- else if (dsim_config->e_interface == DSIM_COMMAND)
- reg &= ~(1 << 25);
- else {
- dev_err(dsim->dev, "unknown lcd type.\n");
- return;
- }
-
- /* main lcd */
- reg |= ((u8) (dsim_config->e_burst_mode) & 0x3) << 26 |
- ((u8) (dsim_config->e_virtual_ch) & 0x3) << 18 |
- ((u8) (dsim_config->e_pixel_format) & 0x7) << 12;
-
- writel(reg, dsim->reg_base + S5P_DSIM_CONFIG);
-}
-
-void s5p_mipi_dsi_enable_lane(struct mipi_dsim_device *dsim, unsigned int lane,
- unsigned int enable)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_CONFIG);
-
- if (enable)
- reg |= DSIM_LANE_ENx(lane);
- else
- reg &= ~DSIM_LANE_ENx(lane);
-
- writel(reg, dsim->reg_base + S5P_DSIM_CONFIG);
-}
-
-
-void s5p_mipi_dsi_set_data_lane_number(struct mipi_dsim_device *dsim,
- unsigned int count)
-{
- unsigned int cfg;
-
- /* get the data lane number. */
- cfg = DSIM_NUM_OF_DATA_LANE(count);
-
- writel(cfg, dsim->reg_base + S5P_DSIM_CONFIG);
-}
-
-void s5p_mipi_dsi_enable_afc(struct mipi_dsim_device *dsim, unsigned int enable,
- unsigned int afc_code)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_PHYACCHR);
-
- if (enable) {
- reg |= (1 << 14);
- reg &= ~(0x7 << 5);
- reg |= (afc_code & 0x7) << 5;
- } else
- reg &= ~(1 << 14);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PHYACCHR);
-}
-
-void s5p_mipi_dsi_enable_pll_bypass(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_CLKCTRL)) &
- ~(DSIM_PLL_BYPASS_EXTERNAL);
-
- reg |= enable << DSIM_PLL_BYPASS_SHIFT;
-
- writel(reg, dsim->reg_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_mipi_dsi_set_pll_pms(struct mipi_dsim_device *dsim, unsigned int p,
- unsigned int m, unsigned int s)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_PLLCTRL)) &
- ~(0x7ffff << 1);
-
- reg |= ((p & 0x3f) << 13) | ((m & 0x1ff) << 4) | ((s & 0x7) << 1);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PLLCTRL);
-}
-
-void s5p_mipi_dsi_pll_freq_band(struct mipi_dsim_device *dsim,
- unsigned int freq_band)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_PLLCTRL)) &
- ~(0x1f << DSIM_FREQ_BAND_SHIFT);
-
- reg |= ((freq_band & 0x1f) << DSIM_FREQ_BAND_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PLLCTRL);
-}
-
-void s5p_mipi_dsi_pll_freq(struct mipi_dsim_device *dsim,
- unsigned int pre_divider, unsigned int main_divider,
- unsigned int scaler)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_PLLCTRL)) &
- ~(0x7ffff << 1);
-
- reg |= (pre_divider & 0x3f) << 13 | (main_divider & 0x1ff) << 4 |
- (scaler & 0x7) << 1;
-
- writel(reg, dsim->reg_base + S5P_DSIM_PLLCTRL);
-}
-
-void s5p_mipi_dsi_pll_stable_time(struct mipi_dsim_device *dsim,
- unsigned int lock_time)
-{
- writel(lock_time, dsim->reg_base + S5P_DSIM_PLLTMR);
-}
-
-void s5p_mipi_dsi_enable_pll(struct mipi_dsim_device *dsim, unsigned int enable)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_PLLCTRL)) &
- ~(0x1 << DSIM_PLL_EN_SHIFT);
-
- reg |= ((enable & 0x1) << DSIM_PLL_EN_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PLLCTRL);
-}
-
-void s5p_mipi_dsi_set_byte_clock_src(struct mipi_dsim_device *dsim,
- unsigned int src)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_CLKCTRL)) &
- ~(0x3 << DSIM_BYTE_CLK_SRC_SHIFT);
-
- reg |= ((unsigned int) src) << DSIM_BYTE_CLK_SRC_SHIFT;
-
- writel(reg, dsim->reg_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_mipi_dsi_enable_byte_clock(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_CLKCTRL)) &
- ~(1 << DSIM_BYTE_CLKEN_SHIFT);
-
- reg |= enable << DSIM_BYTE_CLKEN_SHIFT;
-
- writel(reg, dsim->reg_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_mipi_dsi_set_esc_clk_prs(struct mipi_dsim_device *dsim,
- unsigned int enable, unsigned int prs_val)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_CLKCTRL)) &
- ~((1 << DSIM_ESC_CLKEN_SHIFT) | (0xffff));
-
- reg |= enable << DSIM_ESC_CLKEN_SHIFT;
- if (enable)
- reg |= prs_val;
-
- writel(reg, dsim->reg_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_mipi_dsi_enable_esc_clk_on_lane(struct mipi_dsim_device *dsim,
- unsigned int lane_sel, unsigned int enable)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_CLKCTRL);
-
- if (enable)
- reg |= DSIM_LANE_ESC_CLKEN(lane_sel);
- else
-
- reg &= ~DSIM_LANE_ESC_CLKEN(lane_sel);
-
- writel(reg, dsim->reg_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_mipi_dsi_force_dphy_stop_state(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_ESCMODE)) &
- ~(0x1 << DSIM_FORCE_STOP_STATE_SHIFT);
-
- reg |= ((enable & 0x1) << DSIM_FORCE_STOP_STATE_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_ESCMODE);
-}
-
-unsigned int s5p_mipi_dsi_is_lane_state(struct mipi_dsim_device *dsim)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_STATUS);
-
- /**
- * check clock and data lane states.
- * if MIPI-DSI controller was enabled at bootloader then
- * TX_READY_HS_CLK is enabled otherwise STOP_STATE_CLK.
- * so it should be checked for two case.
- */
- if ((reg & DSIM_STOP_STATE_DAT(0xf)) &&
- ((reg & DSIM_STOP_STATE_CLK) ||
- (reg & DSIM_TX_READY_HS_CLK)))
- return 1;
- else
- return 0;
-
- return 0;
-}
-
-void s5p_mipi_dsi_set_stop_state_counter(struct mipi_dsim_device *dsim,
- unsigned int cnt_val)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_ESCMODE)) &
- ~(0x7ff << DSIM_STOP_STATE_CNT_SHIFT);
-
- reg |= ((cnt_val & 0x7ff) << DSIM_STOP_STATE_CNT_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_ESCMODE);
-}
-
-void s5p_mipi_dsi_set_bta_timeout(struct mipi_dsim_device *dsim,
- unsigned int timeout)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_TIMEOUT)) &
- ~(0xff << DSIM_BTA_TOUT_SHIFT);
-
- reg |= (timeout << DSIM_BTA_TOUT_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_TIMEOUT);
-}
-
-void s5p_mipi_dsi_set_lpdr_timeout(struct mipi_dsim_device *dsim,
- unsigned int timeout)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_TIMEOUT)) &
- ~(0xffff << DSIM_LPDR_TOUT_SHIFT);
-
- reg |= (timeout << DSIM_LPDR_TOUT_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_TIMEOUT);
-}
-
-void s5p_mipi_dsi_set_cpu_transfer_mode(struct mipi_dsim_device *dsim,
- unsigned int lp)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_ESCMODE);
-
- reg &= ~DSIM_CMD_LPDT_LP;
-
- if (lp)
- reg |= DSIM_CMD_LPDT_LP;
-
- writel(reg, dsim->reg_base + S5P_DSIM_ESCMODE);
-}
-
-void s5p_mipi_dsi_set_lcdc_transfer_mode(struct mipi_dsim_device *dsim,
- unsigned int lp)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_ESCMODE);
-
- reg &= ~DSIM_TX_LPDT_LP;
-
- if (lp)
- reg |= DSIM_TX_LPDT_LP;
-
- writel(reg, dsim->reg_base + S5P_DSIM_ESCMODE);
-}
-
-void s5p_mipi_dsi_enable_hs_clock(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_CLKCTRL)) &
- ~(1 << DSIM_TX_REQUEST_HSCLK_SHIFT);
-
- reg |= enable << DSIM_TX_REQUEST_HSCLK_SHIFT;
-
- writel(reg, dsim->reg_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_mipi_dsi_dp_dn_swap(struct mipi_dsim_device *dsim,
- unsigned int swap_en)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_PHYACCHR1);
-
- reg &= ~(0x3 << 0);
- reg |= (swap_en & 0x3) << 0;
-
- writel(reg, dsim->reg_base + S5P_DSIM_PHYACCHR1);
-}
-
-void s5p_mipi_dsi_hs_zero_ctrl(struct mipi_dsim_device *dsim,
- unsigned int hs_zero)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_PLLCTRL)) &
- ~(0xf << 28);
-
- reg |= ((hs_zero & 0xf) << 28);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PLLCTRL);
-}
-
-void s5p_mipi_dsi_prep_ctrl(struct mipi_dsim_device *dsim, unsigned int prep)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_PLLCTRL)) &
- ~(0x7 << 20);
-
- reg |= ((prep & 0x7) << 20);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PLLCTRL);
-}
-
-unsigned int s5p_mipi_dsi_read_interrupt(struct mipi_dsim_device *dsim)
-{
- return readl(dsim->reg_base + S5P_DSIM_INTSRC);
-}
-
-void s5p_mipi_dsi_clear_interrupt(struct mipi_dsim_device *dsim,
- unsigned int src)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_INTSRC);
-
- reg |= src;
-
- writel(reg, dsim->reg_base + S5P_DSIM_INTSRC);
-}
-
-void s5p_mipi_dsi_set_interrupt(struct mipi_dsim_device *dsim,
- unsigned int src, unsigned int enable)
-{
- unsigned int reg = 0;
-
- if (enable)
- reg |= src;
- else
- reg &= ~src;
-
- writel(reg, dsim->reg_base + S5P_DSIM_INTSRC);
-}
-
-unsigned int s5p_mipi_dsi_is_pll_stable(struct mipi_dsim_device *dsim)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_STATUS);
-
- return reg & (1 << 31) ? 1 : 0;
-}
-
-unsigned int s5p_mipi_dsi_get_fifo_state(struct mipi_dsim_device *dsim)
-{
- unsigned int ret;
-
- ret = readl(dsim->reg_base + S5P_DSIM_FIFOCTRL) & ~(0x1f);
-
- return ret;
-}
-
-void s5p_mipi_dsi_wr_tx_header(struct mipi_dsim_device *dsim,
- unsigned int di, unsigned int data0, unsigned int data1)
-{
- unsigned int reg = (data1 << 16) | (data0 << 8) | ((di & 0x3f) << 0);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PKTHDR);
-}
-
-void s5p_mipi_dsi_rd_tx_header(struct mipi_dsim_device *dsim,
- unsigned int di, unsigned int data0)
-{
- unsigned int reg = (data0 << 8) | (di << 0);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PKTHDR);
-}
-
-unsigned int s5p_mipi_dsi_rd_rx_fifo(struct mipi_dsim_device *dsim)
-{
- unsigned int reg = 0;
-
- reg = readl(dsim->reg_base + S5P_DSIM_RXFIFO);
-
- return reg;
-}
-
-unsigned int _s5p_mipi_dsi_get_frame_done_status(struct mipi_dsim_device *dsim)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_INTSRC);
-
- return (reg & INTSRC_FRAME_DONE) ? 1 : 0;
-}
-
-void _s5p_mipi_dsi_clear_frame_done(struct mipi_dsim_device *dsim)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_INTSRC);
-
- writel(reg | INTSRC_FRAME_DONE, dsim->reg_base +
- S5P_DSIM_INTSRC);
-}
-
-void s5p_mipi_dsi_wr_tx_data(struct mipi_dsim_device *dsim,
- unsigned int tx_data)
-{
- writel(tx_data, dsim->reg_base + S5P_DSIM_PAYLOAD);
-}
diff --git a/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_lowlevel.h b/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_lowlevel.h
deleted file mode 100644
index 828e6cd..0000000
--- a/drivers/video/samsung_duallcd/dsim2/s5p_mipi_dsi_lowlevel.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* linux/drivers/video/s5p_mipi_dsi_lowlevel.h
- *
- * Header file for Samsung SoC MIPI-DSI lowlevel driver.
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd
- *
- * InKi Dae <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _S5P_MIPI_DSI_LOWLEVEL_H
-#define _S5P_MIPI_DSI_LOWLEVEL_H
-
-void s5p_mipi_dsi_func_reset(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_sw_reset(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_sw_reset_release(struct mipi_dsim_device *dsim);
-int s5p_mipi_dsi_get_sw_reset_release(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_set_interrupt_mask(struct mipi_dsim_device *dsim,
- unsigned int mode, unsigned int mask);
-void s5p_mipi_dsi_set_data_lane_number(struct mipi_dsim_device *dsim,
- unsigned int count);
-void s5p_mipi_dsi_init_fifo_pointer(struct mipi_dsim_device *dsim,
- unsigned int cfg);
-void s5p_mipi_dsi_set_phy_tunning(struct mipi_dsim_device *dsim,
- unsigned int value);
-void s5p_mipi_dsi_set_phy_tunning(struct mipi_dsim_device *dsim,
- unsigned int value);
-void s5p_mipi_dsi_set_main_stand_by(struct mipi_dsim_device *dsim,
- unsigned int enable);
-void s5p_mipi_dsi_set_main_disp_resol(struct mipi_dsim_device *dsim,
- unsigned int width_resol, unsigned int height_resol);
-void s5p_mipi_dsi_set_main_disp_vporch(struct mipi_dsim_device *dsim,
- unsigned int cmd_allow, unsigned int vfront, unsigned int vback);
-void s5p_mipi_dsi_set_main_disp_hporch(struct mipi_dsim_device *dsim,
- unsigned int front, unsigned int back);
-void s5p_mipi_dsi_set_main_disp_sync_area(struct mipi_dsim_device *dsim,
- unsigned int vert, unsigned int hori);
-void s5p_mipi_dsi_set_sub_disp_resol(struct mipi_dsim_device *dsim,
- unsigned int vert, unsigned int hori);
-void s5p_mipi_dsi_init_config(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_display_config(struct mipi_dsim_device *dsim,
- struct mipi_dsim_config *dsim_config);
-void s5p_mipi_dsi_set_data_lane_number(struct mipi_dsim_device *dsim,
- unsigned int count);
-void s5p_mipi_dsi_enable_lane(struct mipi_dsim_device *dsim, unsigned int lane,
- unsigned int enable);
-void s5p_mipi_dsi_enable_afc(struct mipi_dsim_device *dsim, unsigned int enable,
- unsigned int afc_code);
-void s5p_mipi_dsi_enable_pll_bypass(struct mipi_dsim_device *dsim,
- unsigned int enable);
-void s5p_mipi_dsi_set_pll_pms(struct mipi_dsim_device *dsim, unsigned int p,
- unsigned int m, unsigned int s);
-void s5p_mipi_dsi_pll_freq_band(struct mipi_dsim_device *dsim,
- unsigned int freq_band);
-void s5p_mipi_dsi_pll_freq(struct mipi_dsim_device *dsim,
- unsigned int pre_divider, unsigned int main_divider,
- unsigned int scaler);
-void s5p_mipi_dsi_pll_stable_time(struct mipi_dsim_device *dsim,
- unsigned int lock_time);
-void s5p_mipi_dsi_enable_pll(struct mipi_dsim_device *dsim,
- unsigned int enable);
-void s5p_mipi_dsi_set_byte_clock_src(struct mipi_dsim_device *dsim,
- unsigned int src);
-void s5p_mipi_dsi_enable_byte_clock(struct mipi_dsim_device *dsim,
- unsigned int enable);
-void s5p_mipi_dsi_set_esc_clk_prs(struct mipi_dsim_device *dsim,
- unsigned int enable, unsigned int prs_val);
-void s5p_mipi_dsi_enable_esc_clk_on_lane(struct mipi_dsim_device *dsim,
- unsigned int lane_sel, unsigned int enable);
-void s5p_mipi_dsi_force_dphy_stop_state(struct mipi_dsim_device *dsim,
- unsigned int enable);
-unsigned int s5p_mipi_dsi_is_lane_state(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_set_stop_state_counter(struct mipi_dsim_device *dsim,
- unsigned int cnt_val);
-void s5p_mipi_dsi_set_bta_timeout(struct mipi_dsim_device *dsim,
- unsigned int timeout);
-void s5p_mipi_dsi_set_lpdr_timeout(struct mipi_dsim_device *dsim,
- unsigned int timeout);
-void s5p_mipi_dsi_set_lcdc_transfer_mode(struct mipi_dsim_device *dsim,
- unsigned int lp);
-void s5p_mipi_dsi_set_cpu_transfer_mode(struct mipi_dsim_device *dsim,
- unsigned int lp);
-void s5p_mipi_dsi_enable_hs_clock(struct mipi_dsim_device *dsim,
- unsigned int enable);
-void s5p_mipi_dsi_dp_dn_swap(struct mipi_dsim_device *dsim,
- unsigned int swap_en);
-void s5p_mipi_dsi_hs_zero_ctrl(struct mipi_dsim_device *dsim,
- unsigned int hs_zero);
-void s5p_mipi_dsi_prep_ctrl(struct mipi_dsim_device *dsim, unsigned int prep);
-unsigned int s5p_mipi_dsi_read_interrupt(struct mipi_dsim_device *dsim);
-unsigned int s5p_mipi_dsi_read_interrupt_mask(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_clear_interrupt(struct mipi_dsim_device *dsim,
- unsigned int src);
-void s5p_mipi_dsi_set_interrupt(struct mipi_dsim_device *dsim,
- unsigned int src, unsigned int enable);
-unsigned int s5p_mipi_dsi_is_pll_stable(struct mipi_dsim_device *dsim);
-unsigned int s5p_mipi_dsi_get_fifo_state(struct mipi_dsim_device *dsim);
-unsigned int _s5p_mipi_dsi_get_frame_done_status(struct mipi_dsim_device *dsim);
-void _s5p_mipi_dsi_clear_frame_done(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_wr_tx_header(struct mipi_dsim_device *dsim, unsigned int di,
- unsigned int data0, unsigned int data1);
-void s5p_mipi_dsi_wr_tx_data(struct mipi_dsim_device *dsim,
- unsigned int tx_data);
-void s5p_mipi_dsi_rd_tx_header(struct mipi_dsim_device *dsim,
- unsigned int data0, unsigned int data1);
-unsigned int s5p_mipi_dsi_rd_rx_fifo(struct mipi_dsim_device *dsim);
-
-#endif /* _S5P_MIPI_DSI_LOWLEVEL_H */
diff --git a/drivers/video/samsung_duallcd/dsim2_tmp/Makefile b/drivers/video/samsung_duallcd/dsim2_tmp/Makefile
deleted file mode 100644
index 984452d..0000000
--- a/drivers/video/samsung_duallcd/dsim2_tmp/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Makefile for MIPI-DSI driver.
-#
-obj-$(CONFIG_S5P_MIPI_DSI2) += s5p_mipi_dsi.o s5p_mipi_dsi_common.o\
- s5p_mipi_dsi_lowlevel.o
diff --git a/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi.c b/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi.c
deleted file mode 100644
index d2e6b46..0000000
--- a/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi.c
+++ /dev/null
@@ -1,800 +0,0 @@
-/* linux/drivers/video/s5p_mipi_dsi.c
- *
- * Samsung SoC MIPI-DSIM driver.
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd
- *
- * InKi Dae, <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/clk.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/fb.h>
-#include <linux/ctype.h>
-#include <linux/platform_device.h>
-#include <linux/io.h>
-#include <linux/irq.h>
-#include <linux/memory.h>
-#include <linux/delay.h>
-#include <linux/interrupt.h>
-#include <linux/kthread.h>
-#include <linux/notifier.h>
-#include <linux/regulator/consumer.h>
-#include <linux/pm_runtime.h>
-
-#include <plat/fb.h>
-#include <plat/mipi_dsim2.h>
-
-#include "s5p_mipi_dsi_common.h"
-#include "s5p_mipi_dsi_lowlevel.h"
-
-#define master_to_driver(a) (a->dsim_lcd_drv)
-#define master_to_device(a) (a->dsim_lcd_dev)
-#define dev_to_dsim(a) platform_get_drvdata(to_platform_device(a))
-
-struct mipi_dsim_ddi {
- int bus_id;
- struct list_head list;
- struct mipi_dsim_lcd_device *dsim_lcd_dev;
- struct mipi_dsim_lcd_driver *dsim_lcd_drv;
-};
-
-static LIST_HEAD(dsim_ddi_list);
-
-static DEFINE_MUTEX(mipi_dsim_lock);
-
-static struct s5p_platform_mipi_dsim *to_dsim_plat(struct platform_device *pdev)
-{
- return (struct s5p_platform_mipi_dsim *)pdev->dev.platform_data;
-}
-
-static int s5p_mipi_regulator_enable(struct mipi_dsim_device *dsim)
-{
- int ret = 0;
-
- mutex_lock(&dsim->lock);
- if (dsim->reg_vdd10) {
- ret = regulator_enable(dsim->reg_vdd10);
- if (ret < 0) {
- dev_err(dsim->dev, "failed to enable regulator.\n");
- goto err_vdd10;
- }
- }
- if (dsim->reg_vdd18) {
- ret = regulator_enable(dsim->reg_vdd18);
- if (ret < 0) {
- dev_err(dsim->dev, "failed to enable regulator.\n");
- goto err_vdd18;
- }
- }
-
- mutex_unlock(&dsim->lock);
- return ret;
-
-err_vdd18:
- ret = regulator_disable(dsim->reg_vdd10);
- if (ret < 0)
- dev_err(dsim->dev, "failed to disable regulator.\n");
-err_vdd10:
- mutex_unlock(&dsim->lock);
- return ret;
-}
-
-static int s5p_mipi_regulator_disable(struct mipi_dsim_device *dsim)
-{
- int ret = 0;
-
- mutex_lock(&dsim->lock);
- if (dsim->reg_vdd18) {
- ret = regulator_disable(dsim->reg_vdd18);
- if (ret < 0) {
- dev_err(dsim->dev, "failed to disable regulator.\n");
- goto err_vdd18;
- }
- }
-
- if (dsim->reg_vdd10) {
- ret = regulator_disable(dsim->reg_vdd10);
- if (ret < 0) {
- dev_err(dsim->dev, "failed to disable regulator.\n");
- goto err_vdd10;
- }
- }
-
- mutex_unlock(&dsim->lock);
- return ret;
-
-err_vdd10:
- ret = regulator_enable(dsim->reg_vdd18);
- if (ret < 0)
- dev_err(dsim->dev, "failed to enable regulator.\n");
-err_vdd18:
- mutex_unlock(&dsim->lock);
- return ret;
-}
-
-/* update all register settings to MIPI DSI controller. */
-static void s5p_mipi_update_cfg(struct mipi_dsim_device *dsim)
-{
- /*
- * data from Display controller(FIMD) is not transferred in video mode
- * but in case of command mode, all settings is not updated to
- * registers.
- */
- s5p_mipi_dsi_stand_by(dsim, 0);
-
- s5p_mipi_dsi_init_dsim(dsim);
- s5p_mipi_dsi_init_link(dsim);
-
- s5p_mipi_dsi_set_hs_enable(dsim);
-
- /* set display timing. */
- s5p_mipi_dsi_set_display_mode(dsim, dsim->dsim_config);
-
- s5p_mipi_dsi_init_interrupt(dsim);
-
- /*
- * data from Display controller(FIMD) is transferred in video mode
- * but in case of command mode, all settigs is updated to registers.
- */
- s5p_mipi_dsi_stand_by(dsim, 1);
-}
-
-static int s5p_mipi_dsi_early_blank_mode(struct mipi_dsim_device *dsim,
- int power)
-{
- switch (power) {
- case FB_BLANK_POWERDOWN:
- if (!dsim->suspended)
- pm_runtime_put_sync(dsim->dev);
-
- atomic_set(&dsim->early_blank_used_t, 1);
- break;
- default:
- break;
- }
-
- return 0;
-}
-
-static int s5p_mipi_dsi_blank_mode(struct mipi_dsim_device *dsim, int power)
-{
- switch (power) {
- case FB_BLANK_UNBLANK:
- if (dsim->suspended)
- pm_runtime_get_sync(dsim->dev);
-
- atomic_set(&dsim->early_blank_used_t, 0);
- break;
- case FB_BLANK_NORMAL:
- /* TODO. */
- break;
- case FB_BLANK_POWERDOWN:
- /*
- * if this function is called after early fb blank event,
- * ignor it.
- */
- if (atomic_read(&dsim->early_blank_used_t)) {
- atomic_set(&dsim->early_blank_used_t, 0);
- break;
- }
-
- if (!dsim->suspended)
- pm_runtime_put_sync(dsim->dev);
- default:
- break;
- }
-
- return 0;
-}
-
-int s5p_mipi_dsi_register_lcd_device(struct mipi_dsim_lcd_device *lcd_dev)
-{
- struct mipi_dsim_ddi *dsim_ddi;
-
- if (!lcd_dev) {
- printk(KERN_ERR "mipi_dsim_lcd_device is NULL.\n");
- return -EFAULT;
- }
-
- if (!lcd_dev->name) {
- printk(KERN_ERR "dsim_lcd_device name is NULL.\n");
- return -EFAULT;
- }
-
- dsim_ddi = kzalloc(sizeof(struct mipi_dsim_ddi), GFP_KERNEL);
- if (!dsim_ddi) {
- printk(KERN_ERR "failed to allocate dsim_ddi object.\n");
- return -EFAULT;
- }
-
- dsim_ddi->dsim_lcd_dev = lcd_dev;
-
- mutex_lock(&mipi_dsim_lock);
- list_add_tail(&dsim_ddi->list, &dsim_ddi_list);
- mutex_unlock(&mipi_dsim_lock);
-
- return 0;
-}
-
-struct mipi_dsim_ddi
- *s5p_mipi_dsi_find_lcd_device(struct mipi_dsim_lcd_driver *lcd_drv)
-{
- struct mipi_dsim_ddi *dsim_ddi;
- struct mipi_dsim_lcd_device *lcd_dev;
-
- mutex_lock(&mipi_dsim_lock);
-
- list_for_each_entry(dsim_ddi, &dsim_ddi_list, list) {
- if (!dsim_ddi)
- goto out;
-
- lcd_dev = dsim_ddi->dsim_lcd_dev;
- if (!lcd_dev)
- continue;
-
- if (lcd_drv->id >= 0) {
- if ((strcmp(lcd_drv->name, lcd_dev->name)) == 0 &&
- lcd_drv->id == lcd_dev->id) {
- /**
- * bus_id would be used to identify
- * connected bus.
- */
- dsim_ddi->bus_id = lcd_dev->bus_id;
- mutex_unlock(&mipi_dsim_lock);
-
- return dsim_ddi;
- }
- } else {
- if ((strcmp(lcd_drv->name, lcd_dev->name)) == 0) {
- /**
- * bus_id would be used to identify
- * connected bus.
- */
- dsim_ddi->bus_id = lcd_dev->bus_id;
- mutex_unlock(&mipi_dsim_lock);
-
- return dsim_ddi;
- }
- }
-
- kfree(dsim_ddi);
- list_del(&dsim_ddi->list);
- }
-
-out:
- mutex_unlock(&mipi_dsim_lock);
-
- return NULL;
-}
-
-int s5p_mipi_dsi_register_lcd_driver(struct mipi_dsim_lcd_driver *lcd_drv)
-{
- struct mipi_dsim_ddi *dsim_ddi;
-
- if (!lcd_drv) {
- printk(KERN_ERR "mipi_dsim_lcd_driver is NULL.\n");
- return -EFAULT;
- }
-
- if (!lcd_drv->name) {
- printk(KERN_ERR "dsim_lcd_driver name is NULL.\n");
- return -EFAULT;
- }
-
- dsim_ddi = s5p_mipi_dsi_find_lcd_device(lcd_drv);
- if (!dsim_ddi) {
- printk(KERN_ERR "mipi_dsim_ddi object not found.\n");
- return -EFAULT;
- }
-
- dsim_ddi->dsim_lcd_drv = lcd_drv;
-
- printk(KERN_INFO "registered panel driver(%s) to mipi-dsi driver.\n",
- lcd_drv->name);
-
- return 0;
-
-}
-
-struct mipi_dsim_ddi
- *s5p_mipi_dsi_bind_lcd_ddi(struct mipi_dsim_device *dsim,
- const char *name)
-{
- struct mipi_dsim_ddi *dsim_ddi;
- struct mipi_dsim_lcd_driver *lcd_drv;
- struct mipi_dsim_lcd_device *lcd_dev;
- int ret;
-
- mutex_lock(&dsim->lock);
-
- list_for_each_entry(dsim_ddi, &dsim_ddi_list, list) {
- lcd_drv = dsim_ddi->dsim_lcd_drv;
- lcd_dev = dsim_ddi->dsim_lcd_dev;
- if (!lcd_drv || !lcd_dev ||
- (dsim->id != dsim_ddi->bus_id))
- continue;
-
- dev_dbg(dsim->dev, "lcd_drv->id = %d, lcd_dev->id = %d\n",
- lcd_drv->id, lcd_dev->id);
- dev_dbg(dsim->dev, "lcd_dev->bus_id = %d, dsim->id = %d\n",
- lcd_dev->bus_id, dsim->id);
-
- if ((strcmp(lcd_drv->name, name) == 0)) {
- lcd_dev->master = dsim;
-
- lcd_dev->dev.parent = dsim->dev;
- dev_set_name(&lcd_dev->dev, "%s", lcd_drv->name);
-
- ret = device_register(&lcd_dev->dev);
- if (ret < 0) {
- dev_err(dsim->dev,
- "can't register %s, status %d\n",
- dev_name(&lcd_dev->dev), ret);
- mutex_unlock(&dsim->lock);
-
- return NULL;
- }
-
- dsim->dsim_lcd_dev = lcd_dev;
- dsim->dsim_lcd_drv = lcd_drv;
-
- mutex_unlock(&dsim->lock);
-
- return dsim_ddi;
- }
- }
-
- mutex_unlock(&dsim->lock);
-
- return NULL;
-}
-
-/* define MIPI-DSI Master operations. */
-static struct mipi_dsim_master_ops master_ops = {
- .cmd_read = s5p_mipi_dsi_rd_data,
- .cmd_write = s5p_mipi_dsi_wr_data,
- .get_dsim_frame_done = s5p_mipi_dsi_get_frame_done_status,
- .clear_dsim_frame_done = s5p_mipi_dsi_clear_frame_done,
- .set_early_blank_mode = s5p_mipi_dsi_early_blank_mode,
- .set_blank_mode = s5p_mipi_dsi_blank_mode,
-#ifdef CONFIG_MACH_SLP_NAPLES
- .trigger = s5p_mipi_dsi_trigger,
-#endif
-};
-
-static int s5p_mipi_dsi_notifier(unsigned int val, void *data)
-{
- struct mipi_dsim_device *dsim = (struct mipi_dsim_device *)data;
- int ret;
-
- ret = s5p_mipi_regulator_enable(dsim);
- if (ret < 0)
- return ret;
-
- ret = clk_enable(dsim->clock);
- if (ret < 0) {
- dev_err(dsim->dev, "failed to enable clock.\n");
- /* it doesn't need error check. */
- s5p_mipi_regulator_disable(dsim);
- return ret;
- }
-
- /* it doesn't need error check. */
- s5p_mipi_dsi_fifo_clear(dsim, val);
-
- clk_disable(dsim->clock);
- return s5p_mipi_regulator_disable(dsim);
-}
-
-static int register_notif_to_fimd(struct mipi_dsim_device *dsim)
-{
- return fimd_register_client(s5p_mipi_dsi_notifier,
- (void *)dsim);
-}
-
-static int s5p_mipi_dsi_power_on(struct mipi_dsim_device *dsim, bool enable)
-{
- struct mipi_dsim_lcd_driver *client_drv = master_to_driver(dsim);
- struct mipi_dsim_lcd_device *client_dev = master_to_device(dsim);
- struct platform_device *pdev = to_platform_device(dsim->dev);
-
- if (enable != false && enable != true)
- return -EINVAL;
-
- if (enable) {
- int ret;
-
- if (!dsim->suspended)
- return 0;
-
- /* lcd panel power on. */
- if (client_drv && client_drv->power_on)
- client_drv->power_on(client_dev, 1);
-
- ret = s5p_mipi_regulator_enable(dsim);
- if (ret < 0) {
- client_drv->power_on(client_dev, 0);
- return ret;
- }
-
- ret = clk_enable(dsim->clock);
- if (ret < 0) {
- dev_err(dsim->dev, "failed to enable clock.\n");
- /* it doesn't need error check. */
- s5p_mipi_regulator_disable(dsim);
- client_drv->power_on(client_dev, 0);
- return ret;
- }
-
- /* enable MIPI-DSI PHY. */
- if (dsim->pd->phy_enable)
- dsim->pd->phy_enable(pdev, true);
-
- s5p_mipi_update_cfg(dsim);
-
- /* set lcd panel sequence commands. */
- if (client_drv && client_drv->set_sequence)
- client_drv->set_sequence(client_dev);
-
- dsim->suspended = false;
- } else {
- if (dsim->suspended)
- return 0;
-
- if (client_drv && client_drv->suspend)
- client_drv->suspend(client_dev);
-
- if (client_drv && client_drv->power_on)
- client_drv->power_on(client_dev, 0);
-
- clk_disable(dsim->clock);
-
- dsim->suspended = true;
-
- return s5p_mipi_regulator_disable(dsim);
- }
-
- return 0;
-}
-
-static int s5p_mipi_dsi_probe(struct platform_device *pdev)
-{
- struct resource *res;
- struct mipi_dsim_device *dsim;
- struct mipi_dsim_config *dsim_config;
- struct s5p_platform_mipi_dsim *dsim_pd;
- struct mipi_dsim_lcd_driver *client_drv;
- struct mipi_dsim_ddi *dsim_ddi;
- int ret = -EINVAL;
-
- dsim = kzalloc(sizeof(struct mipi_dsim_device), GFP_KERNEL);
- if (!dsim) {
- dev_err(&pdev->dev, "failed to allocate dsim object.\n");
- return -EFAULT;
- }
-
- dsim->pd = to_dsim_plat(pdev);
- dsim->dev = &pdev->dev;
- dsim->id = pdev->id;
-
- /* get s5p_platform_mipi_dsim. */
- dsim_pd = (struct s5p_platform_mipi_dsim *)dsim->pd;
- if (dsim_pd == NULL) {
- dev_err(&pdev->dev, "failed to get platform data for dsim.\n");
- ret = -EFAULT;
- goto err_free;
- }
- /* get mipi_dsim_config. */
- dsim_config = dsim_pd->dsim_config;
- if (dsim_config == NULL) {
- dev_err(&pdev->dev, "failed to get dsim config data.\n");
- ret = -EFAULT;
- goto err_free;
- }
-
- dsim->dsim_config = dsim_config;
- dsim->master_ops = &master_ops;
-
- mutex_init(&dsim->lock);
-
- dsim->reg_vdd10 = regulator_get(&pdev->dev, "VDD10");
- if (IS_ERR(dsim->reg_vdd10)) {
- ret = PTR_ERR(dsim->reg_vdd10);
- dev_err(&pdev->dev, "failed to get %s regulator (%d)\n",
- "VDD10", ret);
- dsim->reg_vdd10 = NULL;
- }
-
- dsim->reg_vdd18 = regulator_get(&pdev->dev, "VDD18");
- if (IS_ERR(dsim->reg_vdd18)) {
- ret = PTR_ERR(dsim->reg_vdd18);
- dev_err(&pdev->dev, "failed to get %s regulator (%d)\n",
- "VDD18", ret);
- dsim->reg_vdd18 = NULL;
- }
- dsim->clock = clk_get(&pdev->dev, "dsim0");
- if (IS_ERR(dsim->clock)) {
- dev_err(&pdev->dev, "failed to get dsim clock source\n");
- goto err_regulator;
- }
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res) {
- dev_err(&pdev->dev, "failed to get io memory region\n");
- goto err_put_clk;
- }
-
- dsim->res = request_mem_region(res->start, resource_size(res),
- dev_name(&pdev->dev));
- if (!dsim->res) {
- dev_err(&pdev->dev, "failed to request io memory region\n");
- ret = -ENOMEM;
- goto err_release_res;
- }
-
- dsim->reg_base = ioremap(res->start, resource_size(res));
- if (!dsim->reg_base) {
- dev_err(&pdev->dev, "failed to remap io region\n");
- ret = -EFAULT;
- goto err_release_mem;
- }
-
- dsim->irq = platform_get_irq(pdev, 0);
- if (dsim->irq < 0) {
- dev_err(&pdev->dev, "failed to request dsim irq resource\n");
- ret = -EINVAL;
- goto err_unmap;
- }
-
-#ifdef CONFIG_MACH_SLP_NAPLES
- if (dsim_config->e_interface == DSIM_VIDEO) {
- ret = request_irq(dsim->irq, s5p_mipi_dsi_interrupt_handler,
- IRQF_SHARED, pdev->name, dsim);
- if (ret != 0) {
- dev_err(&pdev->dev, "failed to request dsim irq\n");
- ret = -EINVAL;
- goto err_unmap;
- }
- }
-#else
- ret = request_irq(dsim->irq, s5p_mipi_dsi_interrupt_handler,
- IRQF_SHARED, pdev->name, dsim);
- if (ret != 0) {
- dev_err(&pdev->dev, "failed to request dsim irq\n");
- ret = -EINVAL;
- goto err_unmap;
- }
-#endif
-
- /* bind lcd ddi matched with panel name. */
- dsim_ddi = s5p_mipi_dsi_bind_lcd_ddi(dsim, dsim_pd->lcd_panel_name);
- if (!dsim_ddi) {
- dev_err(&pdev->dev, "mipi_dsim_ddi object not found.\n");
- goto err_free_irq;
- }
-
- /* register a callback called by fimd. */
- ret = register_notif_to_fimd(dsim);
- if (ret < 0) {
- dev_err(&pdev->dev, "failed to register fimd notifier.\n");
- fimd_unregister_client(s5p_mipi_dsi_notifier);
-
- goto err_free_irq;
- }
-
- init_completion(&dsim_wr_comp);
- init_completion(&dsim_rd_comp);
- mutex_init(&dsim->lock);
-
- client_drv = dsim_ddi->dsim_lcd_drv;
-
- /* initialize mipi-dsi client(lcd panel). */
- if (client_drv && client_drv->probe)
- client_drv->probe(dsim_ddi->dsim_lcd_dev);
-
- platform_set_drvdata(pdev, dsim);
-
- /* in case that mipi got enabled at bootloader. */
- if (dsim_pd->enabled) {
- ret = s5p_mipi_regulator_enable(dsim);
- if (ret < 0)
- goto err_regulator_enable;
-
- ret = pm_runtime_set_active(&pdev->dev);
- if (ret < 0) {
- dev_err(&pdev->dev, "failed to active pm runtime.\n");
- goto err_pm_runtime_active;
- }
-
- s5p_mipi_dsi_init_interrupt(dsim);
-
- /* set lcd panel sequence commands. */
- if (client_drv && client_drv->set_sequence)
- client_drv->set_sequence(dsim_ddi->dsim_lcd_dev);
- } else {
- pm_runtime_set_suspended(&pdev->dev);
- dsim->suspended = true;
- }
-
- pm_runtime_enable(&pdev->dev);
- ret = pm_runtime_get_sync(&pdev->dev);
- if (ret < 0) {
- dev_err(&pdev->dev, "failed to get pm runtime.\n");
- pm_runtime_disable(&pdev->dev);
- goto err_regulator_enable;
- }
-#ifdef CONFIG_MACH_SLP_NAPLES
- if (dsim_config->e_interface == DSIM_COMMAND)
- dsim->master_ops->trigger(NULL);
-#endif
-
- dev_info(&pdev->dev, "mipi-dsi driver(%s mode) has been probed.\n",
- (dsim_config->e_interface == DSIM_COMMAND) ?
- "CPU" : "RGB");
-
- return 0;
-
-err_pm_runtime_active:
- /* it doesn't need error check. */
- s5p_mipi_regulator_disable(dsim);
-
-err_regulator_enable:
- if (client_drv && client_drv->remove)
- client_drv->remove(dsim_ddi->dsim_lcd_dev);
-
-err_free_irq:
- free_irq(dsim->irq, dsim);
-
-err_unmap:
- iounmap((void __iomem *) dsim->reg_base);
-
-err_release_mem:
- release_mem_region(dsim->res->start, resource_size(dsim->res));
-
-err_release_res:
- release_resource(dsim->res);
-
-err_put_clk:
- clk_disable(dsim->clock);
- clk_put(dsim->clock);
-
-err_regulator:
- regulator_put(dsim->reg_vdd18);
- regulator_put(dsim->reg_vdd10);
-
-err_free:
- kfree(dsim);
- return ret;
-}
-
-static int __devexit s5p_mipi_dsi_remove(struct platform_device *pdev)
-{
- struct mipi_dsim_device *dsim = platform_get_drvdata(pdev);
- struct mipi_dsim_ddi *dsim_ddi;
- struct mipi_dsim_lcd_driver *dsim_lcd_drv;
-
- iounmap(dsim->reg_base);
-
- s5p_mipi_regulator_disable(dsim);
- regulator_put(dsim->reg_vdd18);
- regulator_put(dsim->reg_vdd10);
-
- clk_disable(dsim->clock);
- clk_put(dsim->clock);
-
- release_resource(dsim->res);
- release_mem_region(dsim->res->start, resource_size(dsim->res));
-
- list_for_each_entry(dsim_ddi, &dsim_ddi_list, list) {
- if (dsim_ddi) {
- if (dsim->id != dsim_ddi->bus_id)
- continue;
-
- dsim_lcd_drv = dsim_ddi->dsim_lcd_drv;
-
- if (dsim_lcd_drv->remove)
- dsim_lcd_drv->remove(dsim_ddi->dsim_lcd_dev);
-
- kfree(dsim_ddi);
- }
- }
-
- kfree(dsim);
-
- return 0;
-}
-
-#ifdef CONFIG_PM
-static int s5p_mipi_dsi_suspend(struct device *dev)
-{
- struct mipi_dsim_device *dsim = dev_to_dsim(dev);
-
- if (pm_runtime_suspended(dev))
- return 0;
-
- /*
- * do not use pm_runtime_suspend(). if pm_runtime_suspend() is
- * called here, an error would be returned by that interface
- * because the usage_count of pm runtime is more than 1.
- */
- return s5p_mipi_dsi_power_on(dsim, false);
-}
-
-static int s5p_mipi_dsi_resume(struct device *dev)
-{
- struct mipi_dsim_device *dsim = dev_to_dsim(dev);
-
- /*
- * if entering to sleep when lcd panel is on, the usage_count
- * of pm runtime would still be 1 so in this case, mipi dsi driver
- * should be on directly not drawing on pm runtime interface.
- */
- if (!pm_runtime_suspended(dev))
- return s5p_mipi_dsi_power_on(dsim, true);
-
- return 0;
-}
-
-static int s5p_mipi_dsi_runtime_suspend(struct device *dev)
-{
- struct mipi_dsim_device *dsim = dev_to_dsim(dev);
-
- return s5p_mipi_dsi_power_on(dsim, false);
-}
-
-static int s5p_mipi_dsi_runtime_resume(struct device *dev)
-{
- struct mipi_dsim_device *dsim = dev_to_dsim(dev);
-
- return s5p_mipi_dsi_power_on(dsim, true);
-}
-
-static const struct dev_pm_ops s5p_mipi_dsi_pm_ops = {
- .suspend = s5p_mipi_dsi_suspend,
- .resume = s5p_mipi_dsi_resume,
- .runtime_suspend = s5p_mipi_dsi_runtime_suspend,
- .runtime_resume = s5p_mipi_dsi_runtime_resume,
-};
-#endif
-
-static struct platform_driver s5p_mipi_dsi_driver = {
- .probe = s5p_mipi_dsi_probe,
- .remove = __devexit_p(s5p_mipi_dsi_remove),
- .driver = {
- .name = "s5p-mipi-dsim",
- .owner = THIS_MODULE,
-#ifdef CONFIG_PM
- .pm = &s5p_mipi_dsi_pm_ops,
-#endif
- },
-};
-
-static int s5p_mipi_dsi_register(void)
-{
- platform_driver_register(&s5p_mipi_dsi_driver);
-
- return 0;
-}
-
-static void s5p_mipi_dsi_unregister(void)
-{
- platform_driver_unregister(&s5p_mipi_dsi_driver);
-}
-
-late_initcall(s5p_mipi_dsi_register);
-module_exit(s5p_mipi_dsi_unregister);
-
-MODULE_AUTHOR("InKi Dae <inki.dae@samsung.com>");
-MODULE_DESCRIPTION("Samusung SoC MIPI-DSI driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_common.c b/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_common.c
deleted file mode 100644
index aa6fd11..0000000
--- a/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_common.c
+++ /dev/null
@@ -1,940 +0,0 @@
-/* linux/drivers/video/s5p_mipi_dsi_common.c
- *
- * Samsung SoC MIPI-DSI common driver.
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd
- *
- * InKi Dae, <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/fb.h>
-#include <linux/ctype.h>
-#include <linux/platform_device.h>
-#include <linux/io.h>
-#include <linux/memory.h>
-#include <linux/delay.h>
-#include <linux/kthread.h>
-
-#include <video/mipi_display.h>
-
-#include <plat/regs-dsim2.h>
-
-#include <mach/map.h>
-#include <plat/mipi_dsim2.h>
-#include <plat/regs-dsim2.h>
-
-#include "s5p_mipi_dsi_lowlevel.h"
-#include "s5p_mipi_dsi_common.h"
-
-#define MIPI_FIFO_TIMEOUT msecs_to_jiffies(250)
-#define MIPI_RX_FIFO_READ_DONE 0x30800002
-#define MIPI_MAX_RX_FIFO 20
-#define MHZ (1000 * 1000)
-#define FIN_HZ (24 * MHZ)
-
-#define DFIN_PLL_MIN_HZ (6 * MHZ)
-#define DFIN_PLL_MAX_HZ (12 * MHZ)
-
-#define DFVCO_MIN_HZ (500 * MHZ)
-#define DFVCO_MAX_HZ (1000 * MHZ)
-
-#define TRY_GET_FIFO_TIMEOUT (5000 * 2)
-#define TRY_FIFO_CLEAR (10)
-
-/* MIPI-DSIM status types. */
-enum {
- DSIM_STATE_INIT, /* should be initialized. */
- DSIM_STATE_STOP, /* CPU and LCDC are LP mode. */
- DSIM_STATE_HSCLKEN, /* HS clock was enabled. */
- DSIM_STATE_ULPS
-};
-
-/* define DSI lane types. */
-enum {
- DSIM_LANE_CLOCK = (1 << 0),
- DSIM_LANE_DATA0 = (1 << 1),
- DSIM_LANE_DATA1 = (1 << 2),
- DSIM_LANE_DATA2 = (1 << 3),
- DSIM_LANE_DATA3 = (1 << 4)
-};
-
-static unsigned int dpll_table[15] = {
- 100, 120, 170, 220, 270,
- 320, 390, 450, 510, 560,
- 640, 690, 770, 870, 950,
-};
-
-irqreturn_t s5p_mipi_dsi_interrupt_handler(int irq, void *dev_id)
-{
- unsigned int intsrc = 0;
- unsigned int intmsk = 0;
- struct mipi_dsim_device *dsim = NULL;
-
- dsim = (struct mipi_dsim_device *)dev_id;
- if (!dsim) {
- dev_dbg(dsim->dev, KERN_ERR "%s:error: wrong parameter\n",
- __func__);
- return IRQ_HANDLED;
- }
-
- intsrc = s5p_mipi_dsi_read_interrupt(dsim);
- intmsk = s5p_mipi_dsi_read_interrupt_mask(dsim);
-
- intmsk = ~(intmsk) & intsrc;
-
- switch (intmsk) {
- case INTMSK_RX_DONE:
- complete(&dsim_rd_comp);
- dev_dbg(dsim->dev, "MIPI INTMSK_RX_DONE\n");
- break;
- case INTMSK_FIFO_EMPTY:
- complete(&dsim_wr_comp);
- dev_dbg(dsim->dev, "MIPI INTMSK_FIFO_EMPTY\n");
- break;
- default:
- break;
- }
-
- s5p_mipi_dsi_clear_interrupt(dsim, intmsk);
-
- return IRQ_HANDLED;
-}
-
-static void s5p_mipi_dsi_long_data_wr(struct mipi_dsim_device *dsim,
- unsigned int data0, unsigned int data1)
-{
- unsigned int data_cnt = 0, payload = 0;
-
- /* in case that data count is more then 4 */
- for (data_cnt = 0; data_cnt < data1; data_cnt += 4) {
- /*
- * after sending 4bytes per one time,
- * send remainder data less then 4.
- */
- if ((data1 - data_cnt) < 4) {
- if ((data1 - data_cnt) == 3) {
- payload = *(u8 *)(data0 + data_cnt) |
- (*(u8 *)(data0 + (data_cnt + 1))) << 8 |
- (*(u8 *)(data0 + (data_cnt + 2))) << 16;
- dev_dbg(dsim->dev, "count = 3 payload = %x, %x %x %x\n",
- payload, *(u8 *)(data0 + data_cnt),
- *(u8 *)(data0 + (data_cnt + 1)),
- *(u8 *)(data0 + (data_cnt + 2)));
- } else if ((data1 - data_cnt) == 2) {
- payload = *(u8 *)(data0 + data_cnt) |
- (*(u8 *)(data0 + (data_cnt + 1))) << 8;
- dev_dbg(dsim->dev,
- "count = 2 payload = %x, %x %x\n", payload,
- *(u8 *)(data0 + data_cnt),
- *(u8 *)(data0 + (data_cnt + 1)));
- } else if ((data1 - data_cnt) == 1) {
- payload = *(u8 *)(data0 + data_cnt);
- }
-
- s5p_mipi_dsi_wr_tx_data(dsim, payload);
- /* send 4bytes per one time. */
- } else {
- payload = *(u8 *)(data0 + data_cnt) |
- (*(u8 *)(data0 + (data_cnt + 1))) << 8 |
- (*(u8 *)(data0 + (data_cnt + 2))) << 16 |
- (*(u8 *)(data0 + (data_cnt + 3))) << 24;
-
- dev_dbg(dsim->dev,
- "count = 4 payload = %x, %x %x %x %x\n",
- payload, *(u8 *)(data0 + data_cnt),
- *(u8 *)(data0 + (data_cnt + 1)),
- *(u8 *)(data0 + (data_cnt + 2)),
- *(u8 *)(data0 + (data_cnt + 3)));
-
- s5p_mipi_dsi_wr_tx_data(dsim, payload);
- }
- }
-}
-
-int s5p_mipi_dsi_wr_data(struct mipi_dsim_device *dsim, unsigned int data_id,
- unsigned int data0, unsigned int data1)
-{
- unsigned int check_rx_ack = 0;
-
- if (dsim->state == DSIM_STATE_ULPS) {
- dev_err(dsim->dev, "state is ULPS.\n");
-
- return -EINVAL;
- }
-
- /* FIXME!!! why does it need this delay? */
- msleep(20);
-
- mutex_lock(&dsim->lock);
-
- switch (data_id) {
- /* short packet types of packet types for command. */
- case MIPI_DSI_GENERIC_SHORT_WRITE_0_PARAM:
- case MIPI_DSI_GENERIC_SHORT_WRITE_1_PARAM:
- case MIPI_DSI_GENERIC_SHORT_WRITE_2_PARAM:
- case MIPI_DSI_DCS_SHORT_WRITE:
- case MIPI_DSI_DCS_SHORT_WRITE_PARAM:
- case MIPI_DSI_SET_MAXIMUM_RETURN_PACKET_SIZE:
- s5p_mipi_dsi_wr_tx_header(dsim, data_id, data0, data1);
- if (check_rx_ack) {
- /* process response func should be implemented */
- mutex_unlock(&dsim->lock);
- return 0;
- } else {
- mutex_unlock(&dsim->lock);
- return -EINVAL;
- }
-
- /* general command */
- case MIPI_DSI_COLOR_MODE_OFF:
- case MIPI_DSI_COLOR_MODE_ON:
- case MIPI_DSI_SHUTDOWN_PERIPHERAL:
- case MIPI_DSI_TURN_ON_PERIPHERAL:
- s5p_mipi_dsi_wr_tx_header(dsim, data_id, data0, data1);
- if (check_rx_ack) {
- /* process response func should be implemented. */
- mutex_unlock(&dsim->lock);
- return 0;
- } else {
- mutex_unlock(&dsim->lock);
- return -EINVAL;
- }
-
- /* packet types for video data */
- case MIPI_DSI_V_SYNC_START:
- case MIPI_DSI_V_SYNC_END:
- case MIPI_DSI_H_SYNC_START:
- case MIPI_DSI_H_SYNC_END:
- case MIPI_DSI_END_OF_TRANSMISSION:
- mutex_unlock(&dsim->lock);
- return 0;
-
- /* long packet type and null packet */
- case MIPI_DSI_NULL_PACKET:
- case MIPI_DSI_BLANKING_PACKET:
- mutex_unlock(&dsim->lock);
- return 0;
- case MIPI_DSI_GENERIC_LONG_WRITE:
- case MIPI_DSI_DCS_LONG_WRITE:
- {
- unsigned int size, data_cnt = 0, payload = 0;
- INIT_COMPLETION(dsim_wr_comp);
-
- size = data1 * 4;
-
- /* if data count is less then 4, then send 3bytes data. */
- if (data1 < 4) {
- payload = *(u8 *)(data0) |
- *(u8 *)(data0 + 1) << 8 |
- *(u8 *)(data0 + 2) << 16;
-
- s5p_mipi_dsi_wr_tx_data(dsim, payload);
-
- dev_dbg(dsim->dev, "count = %d payload = %x,%x %x %x\n",
- data1, payload,
- *(u8 *)(data0 + data_cnt),
- *(u8 *)(data0 + (data_cnt + 1)),
- *(u8 *)(data0 + (data_cnt + 2)));
- /* in case that data count is more then 4 */
- } else
- s5p_mipi_dsi_long_data_wr(dsim, data0, data1);
-
- /* put data into header fifo */
- s5p_mipi_dsi_wr_tx_header(dsim, data_id, data1 & 0xff,
- (data1 & 0xff00) >> 8);
-
- if (!wait_for_completion_interruptible_timeout(&dsim_wr_comp,
- MIPI_FIFO_TIMEOUT)) {
- dev_warn(dsim->dev, "command write timeout.\n");
- mutex_unlock(&dsim->lock);
- return -EAGAIN;
- }
-
- if (check_rx_ack) {
- /* process response func should be implemented. */
- mutex_unlock(&dsim->lock);
- return 0;
- } else {
- mutex_unlock(&dsim->lock);
- return -EINVAL;
- }
- }
-
- /* packet typo for video data */
- case MIPI_DSI_PACKED_PIXEL_STREAM_16:
- case MIPI_DSI_PACKED_PIXEL_STREAM_18:
- case MIPI_DSI_PIXEL_STREAM_3BYTE_18:
- case MIPI_DSI_PACKED_PIXEL_STREAM_24:
- if (check_rx_ack) {
- /* process response func should be implemented. */
- mutex_unlock(&dsim->lock);
- return 0;
- } else {
- mutex_unlock(&dsim->lock);
- return -EINVAL;
- }
- default:
- dev_warn(dsim->dev,
- "data id %x is not supported current DSI spec.\n",
- data_id);
-
- mutex_unlock(&dsim->lock);
- return -EINVAL;
- }
-
- mutex_unlock(&dsim->lock);
- return 0;
-}
-
-static unsigned int s5p_mipi_dsi_long_data_rd(struct mipi_dsim_device *dsim,
- unsigned int req_size, unsigned int rx_data, u8 *rx_buf)
-{
- unsigned int rcv_pkt, i, j;
- u16 rxsize;
-
- /* for long packet */
- rxsize = (u16)((rx_data & 0x00ffff00) >> 8);
- dev_dbg(dsim->dev, "mipi dsi rx size : %d\n", rxsize);
- if (rxsize != req_size)
- goto err;
-
- for (i = 0; i < (rxsize >> 2); i++) {
- rcv_pkt = s5p_mipi_dsi_rd_rx_fifo(dsim);
- dev_dbg(dsim->dev, "received pkt : %08x\n", rcv_pkt);
- for (j = 0; j < 4; j++) {
- rx_buf[(i * 4) + j] =
- (u8)(rcv_pkt >> (j * 8)) & 0xff;
- dev_dbg(dsim->dev, "received value : %02x\n",
- (rcv_pkt >> (j * 8)) & 0xff);
- }
- }
- if (rxsize % 4) {
- rcv_pkt = s5p_mipi_dsi_rd_rx_fifo(dsim);
- dev_dbg(dsim->dev, "received pkt : %08x\n", rcv_pkt);
- for (j = 0; j < (rxsize % 4); j++) {
- rx_buf[(i * 4) + j] =
- (u8)(rcv_pkt >> (j * 8)) & 0xff;
- dev_dbg(dsim->dev, "received value : %02x\n",
- (rcv_pkt >> (j * 8)) & 0xff);
- }
- }
-
- return rxsize;
-
-err:
- return -EINVAL;
-}
-
-static unsigned int s5p_mipi_dsi_respense_size(unsigned int req_size)
-{
- u8 response;
- switch (req_size) {
- case 1:
- response = MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_1BYTE;
- break;
- case 2:
- response = MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_2BYTE;
- break;
- default:
- response = MIPI_DSI_RX_GENERIC_LONG_READ_RESPONSE;
- break;
- }
-
- return response;
-}
-
-int s5p_mipi_dsi_rd_data(struct mipi_dsim_device *dsim, unsigned int data_id,
- unsigned int data0, unsigned int req_size, u8 *rx_buf)
-{
- unsigned int rx_data, rcv_pkt, i;
- u8 response = 0;
- u16 rxsize;
-
- if (dsim->state == DSIM_STATE_ULPS) {
- dev_err(dsim->dev, "state is ULPS.\n");
-
- return -EINVAL;
- }
-
- /* FIXME!!! */
- msleep(20);
-
- mutex_lock(&dsim->lock);
- INIT_COMPLETION(dsim_rd_comp);
- s5p_mipi_dsi_rd_tx_header(dsim,
- MIPI_DSI_SET_MAXIMUM_RETURN_PACKET_SIZE, req_size);
-
- response = s5p_mipi_dsi_respense_size(req_size);
-
- switch (data_id) {
- case MIPI_DSI_GENERIC_READ_REQUEST_0_PARAM:
- case MIPI_DSI_GENERIC_READ_REQUEST_1_PARAM:
- case MIPI_DSI_GENERIC_READ_REQUEST_2_PARAM:
- case MIPI_DSI_DCS_READ:
- s5p_mipi_dsi_rd_tx_header(dsim,
- data_id, data0);
- /* process response func should be implemented. */
- break;
- default:
- dev_warn(dsim->dev,
- "data id %x is not supported current DSI spec.\n",
- data_id);
-
- return -EINVAL;
- }
-
- if (!wait_for_completion_interruptible_timeout(&dsim_rd_comp,
- MIPI_FIFO_TIMEOUT)) {
- printk(KERN_ERR "RX done interrupt timeout\n");
- mutex_unlock(&dsim->lock);
- return 0;
- }
-
- msleep(20);
-
- rx_data = s5p_mipi_dsi_rd_rx_fifo(dsim);
-
- if ((u8)(rx_data & 0xff) != response) {
- printk(KERN_ERR
- "mipi dsi wrong response rx_data : %x, response:%x\n",
- rx_data, response);
- goto clear_rx_fifo;
- }
-
- if (req_size <= 2) {
- /* for short packet */
- for (i = 0; i < req_size; i++)
- rx_buf[i] = (rx_data >> (8 + (i * 8))) & 0xff;
- rxsize = req_size;
- } else {
- /* for long packet */
- rxsize = s5p_mipi_dsi_long_data_rd(dsim,
- req_size, rx_data, rx_buf);
- if (rxsize != req_size)
- goto clear_rx_fifo;
- }
-
- rcv_pkt = s5p_mipi_dsi_rd_rx_fifo(dsim);
-
- msleep(20);
-
- if (rcv_pkt != MIPI_RX_FIFO_READ_DONE) {
- dev_info(dsim->dev,
- "Can't found RX FIFO READ DONE FLAG : %x\n", rcv_pkt);
- goto clear_rx_fifo;
- }
-
- mutex_unlock(&dsim->lock);
-
- return rxsize;
-
-clear_rx_fifo:
- i = 0;
- while (1) {
- rcv_pkt = s5p_mipi_dsi_rd_rx_fifo(dsim);
- if ((rcv_pkt == MIPI_RX_FIFO_READ_DONE)
- || (i > MIPI_MAX_RX_FIFO))
- break;
- dev_dbg(dsim->dev,
- "mipi dsi clear rx fifo : %08x\n", rcv_pkt);
- i++;
- }
- dev_info(dsim->dev,
- "mipi dsi rx done count : %d, rcv_pkt : %08x\n", i, rcv_pkt);
-
- mutex_unlock(&dsim->lock);
-
- return 0;
-}
-
-static int s5p_mipi_dsi_pll_on(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- int sw_timeout;
-
- if (enable) {
- sw_timeout = 1000;
-
- s5p_mipi_dsi_enable_pll(dsim, 1);
- while (1) {
- sw_timeout--;
- if (s5p_mipi_dsi_is_pll_stable(dsim))
- return 0;
- if (sw_timeout == 0)
- return -EINVAL;
- }
- } else
- s5p_mipi_dsi_enable_pll(dsim, 0);
-
- return 0;
-}
-
-static unsigned long s5p_mipi_dsi_change_pll(struct mipi_dsim_device *dsim,
- unsigned int pre_divider, unsigned int main_divider,
- unsigned int scaler)
-{
- unsigned long dfin_pll, dfvco, dpll_out;
- unsigned int i, freq_band = 0xf;
-
- dfin_pll = (FIN_HZ / pre_divider);
-
- /******************************************************
- * Serial Clock(=ByteClk X 8) FreqBand[3:0] *
- ******************************************************
- * ~ 99.99 MHz 0000
- * 100 ~ 119.99 MHz 0001
- * 120 ~ 159.99 MHz 0010
- * 160 ~ 199.99 MHz 0011
- * 200 ~ 239.99 MHz 0100
- * 140 ~ 319.99 MHz 0101
- * 320 ~ 389.99 MHz 0110
- * 390 ~ 449.99 MHz 0111
- * 450 ~ 509.99 MHz 1000
- * 510 ~ 559.99 MHz 1001
- * 560 ~ 639.99 MHz 1010
- * 640 ~ 689.99 MHz 1011
- * 690 ~ 769.99 MHz 1100
- * 770 ~ 869.99 MHz 1101
- * 870 ~ 949.99 MHz 1110
- * 950 ~ 1000 MHz 1111
- ******************************************************/
- if (dfin_pll < DFIN_PLL_MIN_HZ || dfin_pll > DFIN_PLL_MAX_HZ) {
- dev_warn(dsim->dev, "fin_pll range should be 6MHz ~ 12MHz\n");
- s5p_mipi_dsi_enable_afc(dsim, 0, 0);
- } else {
- if (dfin_pll < 7 * MHZ)
- s5p_mipi_dsi_enable_afc(dsim, 1, 0x1);
- else if (dfin_pll < 8 * MHZ)
- s5p_mipi_dsi_enable_afc(dsim, 1, 0x0);
- else if (dfin_pll < 9 * MHZ)
- s5p_mipi_dsi_enable_afc(dsim, 1, 0x3);
- else if (dfin_pll < 10 * MHZ)
- s5p_mipi_dsi_enable_afc(dsim, 1, 0x2);
- else if (dfin_pll < 11 * MHZ)
- s5p_mipi_dsi_enable_afc(dsim, 1, 0x5);
- else
- s5p_mipi_dsi_enable_afc(dsim, 1, 0x4);
- }
-
- dfvco = dfin_pll * main_divider;
- dev_dbg(dsim->dev, "dfvco = %lu, dfin_pll = %lu, main_divider = %d\n",
- dfvco, dfin_pll, main_divider);
- if (dfvco < DFVCO_MIN_HZ || dfvco > DFVCO_MAX_HZ)
- dev_warn(dsim->dev, "fvco range should be 500MHz ~ 1000MHz\n");
-
- dpll_out = dfvco / (1 << scaler);
- dev_dbg(dsim->dev, "dpll_out = %lu, dfvco = %lu, scaler = %d\n",
- dpll_out, dfvco, scaler);
-
- for (i = 0; i < ARRAY_SIZE(dpll_table); i++) {
- if (dpll_out < dpll_table[i] * MHZ) {
- freq_band = i;
- break;
- }
- }
-
- dev_dbg(dsim->dev, "freq_band = %d\n", freq_band);
-
- s5p_mipi_dsi_pll_freq(dsim, pre_divider, main_divider, scaler);
-
- s5p_mipi_dsi_hs_zero_ctrl(dsim, 0);
- s5p_mipi_dsi_prep_ctrl(dsim, 0);
-
- /* Freq Band */
- s5p_mipi_dsi_pll_freq_band(dsim, freq_band);
-
- /* Stable time */
- s5p_mipi_dsi_pll_stable_time(dsim, dsim->dsim_config->pll_stable_time);
-
- /* Enable PLL */
- dev_dbg(dsim->dev, "FOUT of mipi dphy pll is %luMHz\n",
- (dpll_out / MHZ));
-
- return dpll_out;
-}
-
-static int s5p_mipi_dsi_set_clock(struct mipi_dsim_device *dsim,
- unsigned int byte_clk_sel, unsigned int enable)
-{
- unsigned int esc_div;
- unsigned long esc_clk_error_rate;
- unsigned long hs_clk = 0, byte_clk = 0, escape_clk = 0;
-
- if (enable) {
- dsim->e_clk_src = byte_clk_sel;
-
- /* Escape mode clock and byte clock source */
- s5p_mipi_dsi_set_byte_clock_src(dsim, byte_clk_sel);
-
- /* DPHY, DSIM Link : D-PHY clock out */
- if (byte_clk_sel == DSIM_PLL_OUT_DIV8) {
- hs_clk = s5p_mipi_dsi_change_pll(dsim,
- dsim->dsim_config->p, dsim->dsim_config->m,
- dsim->dsim_config->s);
- if (hs_clk == 0) {
- dev_err(dsim->dev,
- "failed to get hs clock.\n");
- return -EINVAL;
- }
-
- byte_clk = hs_clk / 8;
- s5p_mipi_dsi_enable_pll_bypass(dsim, 0);
- s5p_mipi_dsi_pll_on(dsim, 1);
- /* DPHY : D-PHY clock out, DSIM link : external clock out */
- } else if (byte_clk_sel == DSIM_EXT_CLK_DIV8) {
- dev_warn(dsim->dev, "this project is not support\n");
- dev_warn(dsim->dev,
- "external clock source for MIPI DSIM.\n");
- } else if (byte_clk_sel == DSIM_EXT_CLK_BYPASS) {
- dev_warn(dsim->dev, "this project is not support\n");
- dev_warn(dsim->dev,
- "external clock source for MIPI DSIM\n");
- }
-
- /* escape clock divider */
- esc_div = byte_clk / (dsim->dsim_config->esc_clk);
- dev_dbg(dsim->dev,
- "esc_div = %d, byte_clk = %lu, esc_clk = %lu\n",
- esc_div, byte_clk, dsim->dsim_config->esc_clk);
- if ((byte_clk / esc_div) >= (20 * MHZ) ||
- (byte_clk / esc_div) >
- dsim->dsim_config->esc_clk)
- esc_div += 1;
-
- escape_clk = byte_clk / esc_div;
- dev_dbg(dsim->dev,
- "escape_clk = %lu, byte_clk = %lu, esc_div = %d\n",
- escape_clk, byte_clk, esc_div);
-
- /* enable escape clock. */
- s5p_mipi_dsi_enable_byte_clock(dsim, 1);
-
- /* enable byte clk and escape clock */
- s5p_mipi_dsi_set_esc_clk_prs(dsim, 1, esc_div);
- /* escape clock on lane */
- s5p_mipi_dsi_enable_esc_clk_on_lane(dsim,
- (DSIM_LANE_CLOCK | dsim->data_lane), 1);
-
- dev_dbg(dsim->dev, "byte clock is %luMHz\n",
- (byte_clk / MHZ));
- dev_dbg(dsim->dev, "escape clock that user's need is %lu\n",
- (dsim->dsim_config->esc_clk / MHZ));
- dev_dbg(dsim->dev, "escape clock divider is %x\n", esc_div);
- dev_dbg(dsim->dev, "escape clock is %luMHz\n",
- ((byte_clk / esc_div) / MHZ));
-
- if ((byte_clk / esc_div) > escape_clk) {
- esc_clk_error_rate = escape_clk /
- (byte_clk / esc_div);
- dev_warn(dsim->dev, "error rate is %lu over.\n",
- (esc_clk_error_rate / 100));
- } else if ((byte_clk / esc_div) < (escape_clk)) {
- esc_clk_error_rate = (byte_clk / esc_div) /
- escape_clk;
- dev_warn(dsim->dev, "error rate is %lu under.\n",
- (esc_clk_error_rate / 100));
- }
- } else {
- s5p_mipi_dsi_enable_esc_clk_on_lane(dsim,
- (DSIM_LANE_CLOCK | dsim->data_lane), 0);
- s5p_mipi_dsi_set_esc_clk_prs(dsim, 0, 0);
-
- /* disable escape clock. */
- s5p_mipi_dsi_enable_byte_clock(dsim, 0);
-
- if (byte_clk_sel == DSIM_PLL_OUT_DIV8)
- s5p_mipi_dsi_pll_on(dsim, 0);
- }
-
- return 0;
-}
-
-int s5p_mipi_dsi_init_dsim(struct mipi_dsim_device *dsim)
-{
- dsim->state = DSIM_STATE_INIT;
-
- switch (dsim->dsim_config->e_no_data_lane) {
- case DSIM_DATA_LANE_1:
- dsim->data_lane = DSIM_LANE_DATA0;
- break;
- case DSIM_DATA_LANE_2:
- dsim->data_lane = DSIM_LANE_DATA0 | DSIM_LANE_DATA1;
- break;
- case DSIM_DATA_LANE_3:
- dsim->data_lane = DSIM_LANE_DATA0 | DSIM_LANE_DATA1 |
- DSIM_LANE_DATA2;
- break;
- case DSIM_DATA_LANE_4:
- dsim->data_lane = DSIM_LANE_DATA0 | DSIM_LANE_DATA1 |
- DSIM_LANE_DATA2 | DSIM_LANE_DATA3;
- break;
- default:
- dev_info(dsim->dev, "data lane is invalid.\n");
- return -EINVAL;
- };
-
- s5p_mipi_dsi_sw_reset(dsim);
- s5p_mipi_dsi_func_reset(dsim);
-
- s5p_mipi_dsi_dp_dn_swap(dsim, 0);
-
- return 0;
-}
-
-void s5p_mipi_dsi_init_interrupt(struct mipi_dsim_device *dsim)
-{
- unsigned int src = 0;
-
-#ifdef CONFIG_MACH_SLP_NAPLES
- struct mipi_dsim_config *dsim_config;
-
- dsim_config = dsim->dsim_config;
-
- if (dsim_config->e_interface == DSIM_COMMAND) {
- src = (INTSRC_SFR_FIFO_EMPTY | INTSRC_RX_DATA_DONE
- | INTSRC_FRAME_DONE);
- }
-
- else
- src = (INTSRC_SFR_FIFO_EMPTY | INTSRC_RX_DATA_DONE);
-
- s5p_mipi_dsi_set_interrupt(dsim, src, 1);
-
- src = 0;
-
- if (dsim_config->e_interface == DSIM_COMMAND)
- src = ~(INTMSK_RX_DONE | INTMSK_FIFO_EMPTY | INTMSK_FRAME_DONE);
- else
- src = ~(INTMSK_RX_DONE | INTMSK_FIFO_EMPTY);
- s5p_mipi_dsi_set_interrupt_mask(dsim, src, 1);
-#else
- src = (INTSRC_SFR_FIFO_EMPTY | INTSRC_RX_DATA_DONE);
- s5p_mipi_dsi_set_interrupt(dsim, src, 1);
-
- src = 0;
- src = ~(INTMSK_RX_DONE | INTMSK_FIFO_EMPTY);
- s5p_mipi_dsi_set_interrupt_mask(dsim, src, 1);
-#endif
-}
-
-int s5p_mipi_dsi_enable_frame_done_int(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- /* enable only frame done interrupt */
- s5p_mipi_dsi_set_interrupt_mask(dsim, INTMSK_FRAME_DONE, enable);
-
- return 0;
-}
-
-#if 0
-/* this function can be used to convert legacy timing to generic one. */
-void convert_to_fb_videomode(struct fb_videomode *mode1,
- struct s3cfb_lcd *mode2)
-{
- mode1->xres = mode2->width;
- mode1->yres = mode2->height;
- mode1->upper_margin = mode2->timing.v_fp;
- mode1->lower_margin = mode2->timing.v_bp;
- mode1->left_margin = mode2->timing.h_fp;
- mode1->right_margin = mode2->timing.h_bp;
- mode1->vsync_len = mode2->timing.v_sw;
- mode1->hsync_len = mode2->timing.h_sw;
-}
-#endif
-
-void s5p_mipi_dsi_stand_by(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
-
- /* consider Main display and Sub display. */
-
- s5p_mipi_dsi_set_main_stand_by(dsim, enable);
-}
-
-int s5p_mipi_dsi_set_display_mode(struct mipi_dsim_device *dsim,
- struct mipi_dsim_config *dsim_config)
-{
- struct s5p_platform_mipi_dsim *dsim_pd;
- struct fb_videomode *timing;
-
- dsim_pd = (struct s5p_platform_mipi_dsim *)dsim->pd;
- timing = (struct fb_videomode *)dsim_pd->lcd_panel_info;
-
- /* in case of VIDEO MODE (RGB INTERFACE), it sets polarities. */
- if (dsim_config->e_interface == (u32) DSIM_VIDEO) {
- if (dsim_config->auto_vertical_cnt == 0) {
- s5p_mipi_dsi_set_main_disp_vporch(dsim,
- dsim_config->cmd_allow,
- timing->upper_margin,
- timing->lower_margin);
- s5p_mipi_dsi_set_main_disp_hporch(dsim,
- timing->left_margin,
- timing->right_margin);
- s5p_mipi_dsi_set_main_disp_sync_area(dsim,
- timing->vsync_len,
- timing->hsync_len);
- }
- }
-
- s5p_mipi_dsi_set_main_disp_resol(dsim, timing->xres,
- timing->yres);
-
- s5p_mipi_dsi_display_config(dsim, dsim_config);
-
- dev_info(dsim->dev, "lcd panel ==> width = %d, height = %d\n",
- timing->xres, timing->yres);
-
- return 0;
-}
-
-int s5p_mipi_dsi_init_link(struct mipi_dsim_device *dsim)
-{
- unsigned int time_out = 100;
-
- switch (dsim->state) {
- case DSIM_STATE_INIT:
- s5p_mipi_dsi_init_fifo_pointer(dsim, 0x1f);
-
- /* dsi configuration */
- s5p_mipi_dsi_init_config(dsim);
- s5p_mipi_dsi_enable_lane(dsim, DSIM_LANE_CLOCK, 1);
- s5p_mipi_dsi_enable_lane(dsim, dsim->data_lane, 1);
-
- /* set clock configuration */
- s5p_mipi_dsi_set_clock(dsim, dsim->dsim_config->e_byte_clk, 1);
-
- /* check clock and data lane state are stop state */
- while (!(s5p_mipi_dsi_is_lane_state(dsim))) {
- time_out--;
- if (time_out == 0) {
- dev_err(dsim->dev,
- "DSI Master is not stop state.\n");
- dev_err(dsim->dev,
- "Check initialization process\n");
-
- return -EINVAL;
- }
- }
- if (time_out != 0) {
- dev_info(dsim->dev,
- "DSI Master driver has been completed.\n");
- dev_info(dsim->dev, "DSI Master state is stop state\n");
- }
-
- dsim->state = DSIM_STATE_STOP;
-
- /* BTA sequence counters */
- s5p_mipi_dsi_set_stop_state_counter(dsim,
- dsim->dsim_config->stop_holding_cnt);
- s5p_mipi_dsi_set_bta_timeout(dsim,
- dsim->dsim_config->bta_timeout);
- s5p_mipi_dsi_set_lpdr_timeout(dsim,
- dsim->dsim_config->rx_timeout);
-
- return 0;
- default:
- dev_info(dsim->dev, "DSI Master is already init.\n");
- return 0;
- }
-
- return 0;
-}
-
-int s5p_mipi_dsi_set_hs_enable(struct mipi_dsim_device *dsim)
-{
- if (dsim->state == DSIM_STATE_STOP) {
- if (dsim->e_clk_src != DSIM_EXT_CLK_BYPASS) {
- dsim->state = DSIM_STATE_HSCLKEN;
-
- /* set LCDC and CPU transfer mode to HS. */
- s5p_mipi_dsi_set_lcdc_transfer_mode(dsim, 0);
- s5p_mipi_dsi_set_cpu_transfer_mode(dsim, 0);
-
- s5p_mipi_dsi_enable_hs_clock(dsim, 1);
-
- return 0;
- } else
- dev_warn(dsim->dev,
- "clock source is external bypass.\n");
- } else
- dev_warn(dsim->dev, "DSIM is not stop state.\n");
-
- return 0;
-}
-
-int s5p_mipi_dsi_set_data_transfer_mode(struct mipi_dsim_device *dsim,
- unsigned int mode)
-{
- if (mode) {
- if (dsim->state != DSIM_STATE_HSCLKEN) {
- dev_err(dsim->dev, "HS Clock lane is not enabled.\n");
- return -EINVAL;
- }
-
- s5p_mipi_dsi_set_lcdc_transfer_mode(dsim, 0);
- } else {
- if (dsim->state == DSIM_STATE_INIT || dsim->state ==
- DSIM_STATE_ULPS) {
- dev_err(dsim->dev,
- "DSI Master is not STOP or HSDT state.\n");
- return -EINVAL;
- }
-
- s5p_mipi_dsi_set_cpu_transfer_mode(dsim, 0);
- }
-
- return 0;
-}
-
-int s5p_mipi_dsi_get_frame_done_status(struct mipi_dsim_device *dsim)
-{
- return _s5p_mipi_dsi_get_frame_done_status(dsim);
-}
-
-int s5p_mipi_dsi_clear_frame_done(struct mipi_dsim_device *dsim)
-{
- _s5p_mipi_dsi_clear_frame_done(dsim);
-
- return 0;
-}
-
-int s5p_mipi_dsi_fifo_clear(struct mipi_dsim_device *dsim,
- unsigned int val)
-{
- int try = TRY_FIFO_CLEAR;
-
- s5p_mipi_dsi_sw_reset_release(dsim);
- s5p_mipi_dsi_func_reset(dsim);
-
- do {
- if (s5p_mipi_dsi_get_sw_reset_release(dsim)) {
- s5p_mipi_dsi_init_interrupt(dsim);
- dev_dbg(dsim->dev, "reset release done.\n");
- return 0;
- }
- } while (--try);
-
- dev_err(dsim->dev, "failed to clear dsim fifo.\n");
- return -EAGAIN;
-}
-
-#ifdef CONFIG_MACH_SLP_NAPLES
-void s5p_mipi_dsi_trigger(struct fb_info *info)
-{
- fimd_set_trigger();
-}
-#endif
-MODULE_AUTHOR("InKi Dae <inki.dae@samsung.com>");
-MODULE_DESCRIPTION("Samusung MIPI-DSIM common driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_common.h b/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_common.h
deleted file mode 100644
index 76ca7f4..0000000
--- a/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_common.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* linux/drivers/video/s5p_mipi_dsi_common.h
- *
- * Header file for Samsung SoC MIPI-DSI common driver.
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd
- *
- * InKi Dae <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _S5P_MIPI_DSI_COMMON_H
-#define _S5P_MIPI_DSI_COMMON_H
-
-static DECLARE_COMPLETION(dsim_rd_comp);
-static DECLARE_COMPLETION(dsim_wr_comp);
-
-int s5p_mipi_dsi_wr_data(struct mipi_dsim_device *dsim, unsigned int data_id,
- unsigned int data0, unsigned int data1);
-int s5p_mipi_dsi_rd_data(struct mipi_dsim_device *dsim, unsigned int data_id,
- unsigned int data0, unsigned int req_size, u8 *rx_buf);
-irqreturn_t s5p_mipi_dsi_interrupt_handler(int irq, void *dev_id);
-void s5p_mipi_dsi_init_interrupt(struct mipi_dsim_device *dsim);
-int s5p_mipi_dsi_init_dsim(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_stand_by(struct mipi_dsim_device *dsim,
- unsigned int enable);
-int s5p_mipi_dsi_set_display_mode(struct mipi_dsim_device *dsim,
- struct mipi_dsim_config *dsim_info);
-int s5p_mipi_dsi_init_link(struct mipi_dsim_device *dsim);
-int s5p_mipi_dsi_set_hs_enable(struct mipi_dsim_device *dsim);
-int s5p_mipi_dsi_set_data_transfer_mode(struct mipi_dsim_device *dsim,
- unsigned int mode);
-int s5p_mipi_dsi_enable_frame_done_int(struct mipi_dsim_device *dsim,
- unsigned int enable);
-int s5p_mipi_dsi_get_frame_done_status(struct mipi_dsim_device *dsim);
-int s5p_mipi_dsi_clear_frame_done(struct mipi_dsim_device *dsim);
-
-extern struct fb_info *registered_fb[FB_MAX] __read_mostly;
-
-int s5p_mipi_dsi_fifo_clear(struct mipi_dsim_device *dsim,
- unsigned int val);
-#ifdef CONFIG_MACH_SLP_NAPLES
-void s5p_mipi_dsi_trigger(struct fb_info *info);
-extern void fimd_set_trigger(void);
-#endif
-
-#endif /* _S5P_MIPI_DSI_COMMON_H */
diff --git a/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_lowlevel.c b/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_lowlevel.c
deleted file mode 100644
index 00a8ca3..0000000
--- a/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_lowlevel.c
+++ /dev/null
@@ -1,635 +0,0 @@
-/* linux/drivers/video/s5p_mipi_dsi_lowlevel.c
- *
- * Samsung SoC MIPI-DSI lowlevel driver.
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd
- *
- * InKi Dae, <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/delay.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/ctype.h>
-#include <linux/io.h>
-
-#include <mach/map.h>
-
-#include <plat/mipi_dsim2.h>
-#include <plat/regs-dsim2.h>
-
-void s5p_mipi_dsi_func_reset(struct mipi_dsim_device *dsim)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_SWRST);
-
- reg |= DSIM_FUNCRST;
-
- writel(reg, dsim->reg_base + S5P_DSIM_SWRST);
-}
-
-void s5p_mipi_dsi_sw_reset(struct mipi_dsim_device *dsim)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_SWRST);
-
- reg |= DSIM_SWRST;
-
- writel(reg, dsim->reg_base + S5P_DSIM_SWRST);
-}
-
-void s5p_mipi_dsi_sw_reset_release(struct mipi_dsim_device *dsim)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_INTSRC);
-
- reg |= INTSRC_SW_RST_RELEASE;
-
- writel(reg, dsim->reg_base + S5P_DSIM_INTSRC);
-}
-
-int s5p_mipi_dsi_get_sw_reset_release(struct mipi_dsim_device *dsim)
-{
- return (readl(dsim->reg_base + S5P_DSIM_INTSRC)) &
- INTSRC_SW_RST_RELEASE;
-}
-
-unsigned int s5p_mipi_dsi_read_interrupt_mask(struct mipi_dsim_device *dsim)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_INTMSK);
-
- return reg;
-}
-
-void s5p_mipi_dsi_set_interrupt_mask(struct mipi_dsim_device *dsim,
- unsigned int mode, unsigned int mask)
-{
- unsigned int reg = 0;
-
- if (mask)
- reg |= mode;
- else
- reg &= ~mode;
-
- writel(reg, dsim->reg_base + S5P_DSIM_INTMSK);
-}
-
-void s5p_mipi_dsi_init_fifo_pointer(struct mipi_dsim_device *dsim,
- unsigned int cfg)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_FIFOCTRL);
-
- writel(reg & ~(cfg), dsim->reg_base + S5P_DSIM_FIFOCTRL);
- mdelay(10);
- reg |= cfg;
-
- writel(reg, dsim->reg_base + S5P_DSIM_FIFOCTRL);
-}
-
-/*
- * this function set PLL P, M and S value in D-PHY
- */
-void s5p_mipi_dsi_set_phy_tunning(struct mipi_dsim_device *dsim,
- unsigned int value)
-{
- writel(DSIM_AFC_CTL(value), dsim->reg_base + S5P_DSIM_PHYACCHR);
-}
-
-void s5p_mipi_dsi_set_main_stand_by(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_MDRESOL);
-
- reg &= ~DSIM_MAIN_STAND_BY;
-
- if (enable)
- reg |= DSIM_MAIN_STAND_BY;
-
- writel(reg, dsim->reg_base + S5P_DSIM_MDRESOL);
-}
-
-void s5p_mipi_dsi_set_main_disp_resol(struct mipi_dsim_device *dsim,
- unsigned int width_resol, unsigned int height_resol)
-{
- unsigned int reg;
-
- /* standby should be set after configuration so set to not ready*/
- reg = (readl(dsim->reg_base + S5P_DSIM_MDRESOL)) &
- ~(DSIM_MAIN_STAND_BY);
- writel(reg, dsim->reg_base + S5P_DSIM_MDRESOL);
-
- reg &= ~((0x7ff << 16) | (0x7ff << 0));
- reg |= DSIM_MAIN_VRESOL(height_resol) | DSIM_MAIN_HRESOL(width_resol);
-
- reg |= DSIM_MAIN_STAND_BY;
- writel(reg, dsim->reg_base + S5P_DSIM_MDRESOL);
-}
-
-void s5p_mipi_dsi_set_main_disp_vporch(struct mipi_dsim_device *dsim,
- unsigned int cmd_allow, unsigned int vfront, unsigned int vback)
-{
- unsigned int reg;
-
- reg = (readl(dsim->reg_base + S5P_DSIM_MVPORCH)) &
- ~((DSIM_CMD_ALLOW_MASK) | (DSIM_STABLE_VFP_MASK) |
- (DSIM_MAIN_VBP_MASK));
-
- reg |= ((cmd_allow & 0xf) << DSIM_CMD_ALLOW_SHIFT) |
- ((vfront & 0x7ff) << DSIM_STABLE_VFP_SHIFT) |
- ((vback & 0x7ff) << DSIM_MAIN_VBP_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_MVPORCH);
-}
-
-void s5p_mipi_dsi_set_main_disp_hporch(struct mipi_dsim_device *dsim,
- unsigned int front, unsigned int back)
-{
- unsigned int reg;
-
- reg = (readl(dsim->reg_base + S5P_DSIM_MHPORCH)) &
- ~((DSIM_MAIN_HFP_MASK) | (DSIM_MAIN_HBP_MASK));
-
- reg |= (front << DSIM_MAIN_HFP_SHIFT) | (back << DSIM_MAIN_HBP_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_MHPORCH);
-}
-
-void s5p_mipi_dsi_set_main_disp_sync_area(struct mipi_dsim_device *dsim,
- unsigned int vert, unsigned int hori)
-{
- unsigned int reg;
-
- reg = (readl(dsim->reg_base + S5P_DSIM_MSYNC)) &
- ~((DSIM_MAIN_VSA_MASK) | (DSIM_MAIN_HSA_MASK));
-
- reg |= ((vert & 0x3ff) << DSIM_MAIN_VSA_SHIFT) |
- (hori << DSIM_MAIN_HSA_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_MSYNC);
-}
-
-void s5p_mipi_dsi_set_sub_disp_resol(struct mipi_dsim_device *dsim,
- unsigned int vert, unsigned int hori)
-{
- unsigned int reg;
-
- reg = (readl(dsim->reg_base + S5P_DSIM_SDRESOL)) &
- ~(DSIM_SUB_STANDY_MASK);
-
- writel(reg, dsim->reg_base + S5P_DSIM_SDRESOL);
-
- reg &= ~(DSIM_SUB_VRESOL_MASK) | ~(DSIM_SUB_HRESOL_MASK);
- reg |= ((vert & 0x7ff) << DSIM_SUB_VRESOL_SHIFT) |
- ((hori & 0x7ff) << DSIM_SUB_HRESOL_SHIFT);
- writel(reg, dsim->reg_base + S5P_DSIM_SDRESOL);
-
- reg |= (1 << DSIM_SUB_STANDY_SHIFT);
- writel(reg, dsim->reg_base + S5P_DSIM_SDRESOL);
-}
-
-void s5p_mipi_dsi_init_config(struct mipi_dsim_device *dsim)
-{
- struct mipi_dsim_config *dsim_config = dsim->dsim_config;
-
- unsigned int cfg = (readl(dsim->reg_base + S5P_DSIM_CONFIG)) &
- ~((1 << 28) | (0x1f << 20) | (0x3 << 5));
-
-#ifdef CONFIG_MACH_SLP_NAPLES
- if (dsim_config->e_interface == DSIM_COMMAND) {
- cfg = (dsim_config->auto_flush << 29) |
- (dsim_config->eot_disable << 28) |
- (dsim_config->e_no_data_lane << DSIM_NUM_OF_DATALANE_SHIFT);
- } else {
-#endif
- cfg = (dsim_config->auto_flush << 29) |
- (dsim_config->eot_disable << 28) |
- (dsim_config->auto_vertical_cnt << DSIM_AUTO_MODE_SHIFT) |
- (dsim_config->hse << DSIM_HSE_MODE_SHIFT) |
- (dsim_config->hfp << DSIM_HFP_MODE_SHIFT) |
- (dsim_config->hbp << DSIM_HBP_MODE_SHIFT) |
- (dsim_config->hsa << DSIM_HSA_MODE_SHIFT) |
- (dsim_config->e_no_data_lane << DSIM_NUM_OF_DATALANE_SHIFT);
-#ifdef CONFIG_MACH_SLP_NAPLES
- }
-#endif
- writel(cfg, dsim->reg_base + S5P_DSIM_CONFIG);
-}
-
-void s5p_mipi_dsi_display_config(struct mipi_dsim_device *dsim,
- struct mipi_dsim_config *dsim_config)
-{
- u32 reg = (readl(dsim->reg_base + S5P_DSIM_CONFIG)) &
- ~((0x3 << 26) | (1 << 25) | (0x3 << 18) | (0x7 << 12) |
- (0x3 << 16) | (0x7 << 8));
-
- if (dsim_config->e_interface == DSIM_VIDEO)
- reg |= (1 << 25);
- else if (dsim_config->e_interface == DSIM_COMMAND)
- reg &= ~(1 << 25);
- else {
- dev_err(dsim->dev, "unknown lcd type.\n");
- return;
- }
-
- /* main lcd */
- reg |= ((u8) (dsim_config->e_burst_mode) & 0x3) << 26 |
- ((u8) (dsim_config->e_virtual_ch) & 0x3) << 18 |
- ((u8) (dsim_config->e_pixel_format) & 0x7) << 12;
-
- writel(reg, dsim->reg_base + S5P_DSIM_CONFIG);
-}
-
-void s5p_mipi_dsi_enable_lane(struct mipi_dsim_device *dsim, unsigned int lane,
- unsigned int enable)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_CONFIG);
-
- if (enable)
- reg |= DSIM_LANE_ENx(lane);
- else
- reg &= ~DSIM_LANE_ENx(lane);
-
- writel(reg, dsim->reg_base + S5P_DSIM_CONFIG);
-}
-
-
-void s5p_mipi_dsi_set_data_lane_number(struct mipi_dsim_device *dsim,
- unsigned int count)
-{
- unsigned int cfg;
-
- /* get the data lane number. */
- cfg = DSIM_NUM_OF_DATA_LANE(count);
-
- writel(cfg, dsim->reg_base + S5P_DSIM_CONFIG);
-}
-
-void s5p_mipi_dsi_enable_afc(struct mipi_dsim_device *dsim, unsigned int enable,
- unsigned int afc_code)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_PHYACCHR);
-
- if (enable) {
- reg |= (1 << 14);
- reg &= ~(0x7 << 5);
- reg |= (afc_code & 0x7) << 5;
- } else
- reg &= ~(1 << 14);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PHYACCHR);
-}
-
-void s5p_mipi_dsi_enable_pll_bypass(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_CLKCTRL)) &
- ~(DSIM_PLL_BYPASS_EXTERNAL);
-
- reg |= enable << DSIM_PLL_BYPASS_SHIFT;
-
- writel(reg, dsim->reg_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_mipi_dsi_set_pll_pms(struct mipi_dsim_device *dsim, unsigned int p,
- unsigned int m, unsigned int s)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_PLLCTRL);
-
- reg |= ((p & 0x3f) << 13) | ((m & 0x1ff) << 4) | ((s & 0x7) << 1);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PLLCTRL);
-}
-
-void s5p_mipi_dsi_pll_freq_band(struct mipi_dsim_device *dsim,
- unsigned int freq_band)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_PLLCTRL)) &
- ~(0x1f << DSIM_FREQ_BAND_SHIFT);
-
- reg |= ((freq_band & 0x1f) << DSIM_FREQ_BAND_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PLLCTRL);
-}
-
-void s5p_mipi_dsi_pll_freq(struct mipi_dsim_device *dsim,
- unsigned int pre_divider, unsigned int main_divider,
- unsigned int scaler)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_PLLCTRL)) &
- ~(0x7ffff << 1);
-
- reg |= (pre_divider & 0x3f) << 13 | (main_divider & 0x1ff) << 4 |
- (scaler & 0x7) << 1;
-
- writel(reg, dsim->reg_base + S5P_DSIM_PLLCTRL);
-}
-
-void s5p_mipi_dsi_pll_stable_time(struct mipi_dsim_device *dsim,
- unsigned int lock_time)
-{
- writel(lock_time, dsim->reg_base + S5P_DSIM_PLLTMR);
-}
-
-void s5p_mipi_dsi_enable_pll(struct mipi_dsim_device *dsim, unsigned int enable)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_PLLCTRL)) &
- ~(0x1 << DSIM_PLL_EN_SHIFT);
-
- reg |= ((enable & 0x1) << DSIM_PLL_EN_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PLLCTRL);
-}
-
-void s5p_mipi_dsi_set_byte_clock_src(struct mipi_dsim_device *dsim,
- unsigned int src)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_CLKCTRL)) &
- ~(0x3 << DSIM_BYTE_CLK_SRC_SHIFT);
-
- reg |= ((unsigned int) src) << DSIM_BYTE_CLK_SRC_SHIFT;
-
- writel(reg, dsim->reg_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_mipi_dsi_enable_byte_clock(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_CLKCTRL)) &
- ~(1 << DSIM_BYTE_CLKEN_SHIFT);
-
- reg |= enable << DSIM_BYTE_CLKEN_SHIFT;
-
- writel(reg, dsim->reg_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_mipi_dsi_set_esc_clk_prs(struct mipi_dsim_device *dsim,
- unsigned int enable, unsigned int prs_val)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_CLKCTRL)) &
- ~((1 << DSIM_ESC_CLKEN_SHIFT) | (0xffff));
-
- reg |= enable << DSIM_ESC_CLKEN_SHIFT;
- if (enable)
- reg |= prs_val;
-
- writel(reg, dsim->reg_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_mipi_dsi_enable_esc_clk_on_lane(struct mipi_dsim_device *dsim,
- unsigned int lane_sel, unsigned int enable)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_CLKCTRL);
-
- if (enable)
- reg |= DSIM_LANE_ESC_CLKEN(lane_sel);
- else
-
- reg &= ~DSIM_LANE_ESC_CLKEN(lane_sel);
-
- writel(reg, dsim->reg_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_mipi_dsi_force_dphy_stop_state(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_ESCMODE)) &
- ~(0x1 << DSIM_FORCE_STOP_STATE_SHIFT);
-
- reg |= ((enable & 0x1) << DSIM_FORCE_STOP_STATE_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_ESCMODE);
-}
-
-unsigned int s5p_mipi_dsi_is_lane_state(struct mipi_dsim_device *dsim)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_STATUS);
-
- /**
- * check clock and data lane states.
- * if MIPI-DSI controller was enabled at bootloader then
- * TX_READY_HS_CLK is enabled otherwise STOP_STATE_CLK.
- * so it should be checked for two case.
- */
- if ((reg & DSIM_STOP_STATE_DAT(0xf)) &&
- ((reg & DSIM_STOP_STATE_CLK) ||
- (reg & DSIM_TX_READY_HS_CLK)))
- return 1;
- else
- return 0;
-
- return 0;
-}
-
-void s5p_mipi_dsi_set_stop_state_counter(struct mipi_dsim_device *dsim,
- unsigned int cnt_val)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_ESCMODE)) &
- ~(0x7ff << DSIM_STOP_STATE_CNT_SHIFT);
-
- reg |= ((cnt_val & 0x7ff) << DSIM_STOP_STATE_CNT_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_ESCMODE);
-}
-
-void s5p_mipi_dsi_set_bta_timeout(struct mipi_dsim_device *dsim,
- unsigned int timeout)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_TIMEOUT)) &
- ~(0xff << DSIM_BTA_TOUT_SHIFT);
-
- reg |= (timeout << DSIM_BTA_TOUT_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_TIMEOUT);
-}
-
-void s5p_mipi_dsi_set_lpdr_timeout(struct mipi_dsim_device *dsim,
- unsigned int timeout)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_TIMEOUT)) &
- ~(0xffff << DSIM_LPDR_TOUT_SHIFT);
-
- reg |= (timeout << DSIM_LPDR_TOUT_SHIFT);
-
- writel(reg, dsim->reg_base + S5P_DSIM_TIMEOUT);
-}
-
-void s5p_mipi_dsi_set_cpu_transfer_mode(struct mipi_dsim_device *dsim,
- unsigned int lp)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_ESCMODE);
-
- reg &= ~DSIM_CMD_LPDT_LP;
-
- if (lp)
- reg |= DSIM_CMD_LPDT_LP;
-
- writel(reg, dsim->reg_base + S5P_DSIM_ESCMODE);
-}
-
-void s5p_mipi_dsi_set_lcdc_transfer_mode(struct mipi_dsim_device *dsim,
- unsigned int lp)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_ESCMODE);
-
- reg &= ~DSIM_TX_LPDT_LP;
-
- if (lp)
- reg |= DSIM_TX_LPDT_LP;
-
- writel(reg, dsim->reg_base + S5P_DSIM_ESCMODE);
-}
-
-void s5p_mipi_dsi_enable_hs_clock(struct mipi_dsim_device *dsim,
- unsigned int enable)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_CLKCTRL)) &
- ~(1 << DSIM_TX_REQUEST_HSCLK_SHIFT);
-
- reg |= enable << DSIM_TX_REQUEST_HSCLK_SHIFT;
-
- writel(reg, dsim->reg_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_mipi_dsi_dp_dn_swap(struct mipi_dsim_device *dsim,
- unsigned int swap_en)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_PHYACCHR1);
-
- reg &= ~(0x3 << 0);
- reg |= (swap_en & 0x3) << 0;
-
- writel(reg, dsim->reg_base + S5P_DSIM_PHYACCHR1);
-}
-
-void s5p_mipi_dsi_hs_zero_ctrl(struct mipi_dsim_device *dsim,
- unsigned int hs_zero)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_PLLCTRL)) &
- ~(0xf << 28);
-
- reg |= ((hs_zero & 0xf) << 28);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PLLCTRL);
-}
-
-void s5p_mipi_dsi_prep_ctrl(struct mipi_dsim_device *dsim, unsigned int prep)
-{
- unsigned int reg = (readl(dsim->reg_base + S5P_DSIM_PLLCTRL)) &
- ~(0x7 << 20);
-
- reg |= ((prep & 0x7) << 20);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PLLCTRL);
-}
-
-unsigned int s5p_mipi_dsi_read_interrupt(struct mipi_dsim_device *dsim)
-{
- return readl(dsim->reg_base + S5P_DSIM_INTSRC);
-}
-
-void s5p_mipi_dsi_clear_interrupt(struct mipi_dsim_device *dsim,
- unsigned int src)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_INTSRC);
-
- reg |= src;
-
- writel(reg, dsim->reg_base + S5P_DSIM_INTSRC);
-}
-
-void s5p_mipi_dsi_set_interrupt(struct mipi_dsim_device *dsim,
- unsigned int src, unsigned int enable)
-{
- unsigned int reg = 0;
-
- if (enable)
- reg |= src;
- else
- reg &= ~src;
-
- writel(reg, dsim->reg_base + S5P_DSIM_INTSRC);
-}
-
-unsigned int s5p_mipi_dsi_is_pll_stable(struct mipi_dsim_device *dsim)
-{
- unsigned int reg;
-
- reg = readl(dsim->reg_base + S5P_DSIM_STATUS);
-
- return reg & (1 << 31) ? 1 : 0;
-}
-
-unsigned int s5p_mipi_dsi_get_fifo_state(struct mipi_dsim_device *dsim)
-{
- unsigned int ret;
-
- ret = readl(dsim->reg_base + S5P_DSIM_FIFOCTRL) & ~(0x1f);
-
- return ret;
-}
-
-void s5p_mipi_dsi_wr_tx_header(struct mipi_dsim_device *dsim,
- unsigned int di, unsigned int data0, unsigned int data1)
-{
- unsigned int reg = (data1 << 16) | (data0 << 8) | ((di & 0x3f) << 0);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PKTHDR);
-}
-
-void s5p_mipi_dsi_rd_tx_header(struct mipi_dsim_device *dsim,
- unsigned int di, unsigned int data0)
-{
- unsigned int reg = (data0 << 8) | (di << 0);
-
- writel(reg, dsim->reg_base + S5P_DSIM_PKTHDR);
-}
-
-unsigned int s5p_mipi_dsi_rd_rx_fifo(struct mipi_dsim_device *dsim)
-{
- unsigned int reg = 0;
-
- reg = readl(dsim->reg_base + S5P_DSIM_RXFIFO);
-
- return reg;
-}
-
-unsigned int _s5p_mipi_dsi_get_frame_done_status(struct mipi_dsim_device *dsim)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_INTSRC);
-
- return (reg & INTSRC_FRAME_DONE) ? 1 : 0;
-}
-
-void _s5p_mipi_dsi_clear_frame_done(struct mipi_dsim_device *dsim)
-{
- unsigned int reg = readl(dsim->reg_base + S5P_DSIM_INTSRC);
-
- writel(reg | INTSRC_FRAME_DONE, dsim->reg_base +
- S5P_DSIM_INTSRC);
-}
-
-void s5p_mipi_dsi_wr_tx_data(struct mipi_dsim_device *dsim,
- unsigned int tx_data)
-{
- writel(tx_data, dsim->reg_base + S5P_DSIM_PAYLOAD);
-}
diff --git a/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_lowlevel.h b/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_lowlevel.h
deleted file mode 100644
index 828e6cd..0000000
--- a/drivers/video/samsung_duallcd/dsim2_tmp/s5p_mipi_dsi_lowlevel.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* linux/drivers/video/s5p_mipi_dsi_lowlevel.h
- *
- * Header file for Samsung SoC MIPI-DSI lowlevel driver.
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd
- *
- * InKi Dae <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _S5P_MIPI_DSI_LOWLEVEL_H
-#define _S5P_MIPI_DSI_LOWLEVEL_H
-
-void s5p_mipi_dsi_func_reset(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_sw_reset(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_sw_reset_release(struct mipi_dsim_device *dsim);
-int s5p_mipi_dsi_get_sw_reset_release(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_set_interrupt_mask(struct mipi_dsim_device *dsim,
- unsigned int mode, unsigned int mask);
-void s5p_mipi_dsi_set_data_lane_number(struct mipi_dsim_device *dsim,
- unsigned int count);
-void s5p_mipi_dsi_init_fifo_pointer(struct mipi_dsim_device *dsim,
- unsigned int cfg);
-void s5p_mipi_dsi_set_phy_tunning(struct mipi_dsim_device *dsim,
- unsigned int value);
-void s5p_mipi_dsi_set_phy_tunning(struct mipi_dsim_device *dsim,
- unsigned int value);
-void s5p_mipi_dsi_set_main_stand_by(struct mipi_dsim_device *dsim,
- unsigned int enable);
-void s5p_mipi_dsi_set_main_disp_resol(struct mipi_dsim_device *dsim,
- unsigned int width_resol, unsigned int height_resol);
-void s5p_mipi_dsi_set_main_disp_vporch(struct mipi_dsim_device *dsim,
- unsigned int cmd_allow, unsigned int vfront, unsigned int vback);
-void s5p_mipi_dsi_set_main_disp_hporch(struct mipi_dsim_device *dsim,
- unsigned int front, unsigned int back);
-void s5p_mipi_dsi_set_main_disp_sync_area(struct mipi_dsim_device *dsim,
- unsigned int vert, unsigned int hori);
-void s5p_mipi_dsi_set_sub_disp_resol(struct mipi_dsim_device *dsim,
- unsigned int vert, unsigned int hori);
-void s5p_mipi_dsi_init_config(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_display_config(struct mipi_dsim_device *dsim,
- struct mipi_dsim_config *dsim_config);
-void s5p_mipi_dsi_set_data_lane_number(struct mipi_dsim_device *dsim,
- unsigned int count);
-void s5p_mipi_dsi_enable_lane(struct mipi_dsim_device *dsim, unsigned int lane,
- unsigned int enable);
-void s5p_mipi_dsi_enable_afc(struct mipi_dsim_device *dsim, unsigned int enable,
- unsigned int afc_code);
-void s5p_mipi_dsi_enable_pll_bypass(struct mipi_dsim_device *dsim,
- unsigned int enable);
-void s5p_mipi_dsi_set_pll_pms(struct mipi_dsim_device *dsim, unsigned int p,
- unsigned int m, unsigned int s);
-void s5p_mipi_dsi_pll_freq_band(struct mipi_dsim_device *dsim,
- unsigned int freq_band);
-void s5p_mipi_dsi_pll_freq(struct mipi_dsim_device *dsim,
- unsigned int pre_divider, unsigned int main_divider,
- unsigned int scaler);
-void s5p_mipi_dsi_pll_stable_time(struct mipi_dsim_device *dsim,
- unsigned int lock_time);
-void s5p_mipi_dsi_enable_pll(struct mipi_dsim_device *dsim,
- unsigned int enable);
-void s5p_mipi_dsi_set_byte_clock_src(struct mipi_dsim_device *dsim,
- unsigned int src);
-void s5p_mipi_dsi_enable_byte_clock(struct mipi_dsim_device *dsim,
- unsigned int enable);
-void s5p_mipi_dsi_set_esc_clk_prs(struct mipi_dsim_device *dsim,
- unsigned int enable, unsigned int prs_val);
-void s5p_mipi_dsi_enable_esc_clk_on_lane(struct mipi_dsim_device *dsim,
- unsigned int lane_sel, unsigned int enable);
-void s5p_mipi_dsi_force_dphy_stop_state(struct mipi_dsim_device *dsim,
- unsigned int enable);
-unsigned int s5p_mipi_dsi_is_lane_state(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_set_stop_state_counter(struct mipi_dsim_device *dsim,
- unsigned int cnt_val);
-void s5p_mipi_dsi_set_bta_timeout(struct mipi_dsim_device *dsim,
- unsigned int timeout);
-void s5p_mipi_dsi_set_lpdr_timeout(struct mipi_dsim_device *dsim,
- unsigned int timeout);
-void s5p_mipi_dsi_set_lcdc_transfer_mode(struct mipi_dsim_device *dsim,
- unsigned int lp);
-void s5p_mipi_dsi_set_cpu_transfer_mode(struct mipi_dsim_device *dsim,
- unsigned int lp);
-void s5p_mipi_dsi_enable_hs_clock(struct mipi_dsim_device *dsim,
- unsigned int enable);
-void s5p_mipi_dsi_dp_dn_swap(struct mipi_dsim_device *dsim,
- unsigned int swap_en);
-void s5p_mipi_dsi_hs_zero_ctrl(struct mipi_dsim_device *dsim,
- unsigned int hs_zero);
-void s5p_mipi_dsi_prep_ctrl(struct mipi_dsim_device *dsim, unsigned int prep);
-unsigned int s5p_mipi_dsi_read_interrupt(struct mipi_dsim_device *dsim);
-unsigned int s5p_mipi_dsi_read_interrupt_mask(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_clear_interrupt(struct mipi_dsim_device *dsim,
- unsigned int src);
-void s5p_mipi_dsi_set_interrupt(struct mipi_dsim_device *dsim,
- unsigned int src, unsigned int enable);
-unsigned int s5p_mipi_dsi_is_pll_stable(struct mipi_dsim_device *dsim);
-unsigned int s5p_mipi_dsi_get_fifo_state(struct mipi_dsim_device *dsim);
-unsigned int _s5p_mipi_dsi_get_frame_done_status(struct mipi_dsim_device *dsim);
-void _s5p_mipi_dsi_clear_frame_done(struct mipi_dsim_device *dsim);
-void s5p_mipi_dsi_wr_tx_header(struct mipi_dsim_device *dsim, unsigned int di,
- unsigned int data0, unsigned int data1);
-void s5p_mipi_dsi_wr_tx_data(struct mipi_dsim_device *dsim,
- unsigned int tx_data);
-void s5p_mipi_dsi_rd_tx_header(struct mipi_dsim_device *dsim,
- unsigned int data0, unsigned int data1);
-unsigned int s5p_mipi_dsi_rd_rx_fifo(struct mipi_dsim_device *dsim);
-
-#endif /* _S5P_MIPI_DSI_LOWLEVEL_H */
diff --git a/drivers/video/samsung_duallcd/ea8061_gamma_l.h b/drivers/video/samsung_duallcd/ea8061_gamma_l.h
deleted file mode 100644
index 52ac2b6..0000000
--- a/drivers/video/samsung_duallcd/ea8061_gamma_l.h
+++ /dev/null
@@ -1,311 +0,0 @@
-#ifndef __EA8061_GAMMA_L_H__
-#define __EA8061_GAMMA_L_H__
-
-#include "ea8061_param.h"
-#ifdef CONFIG_AID_DIMMING
-#include "aid_s6e8aa0.h"
-#endif
-
-static const unsigned char gamma22_20[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_30[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_40[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_50[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_60[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_70[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEA, 0xC9, 0xEA,
- 0xD6, 0xD2, 0xD2, 0xDF, 0xE1, 0xE3,
- 0xC2, 0xC1, 0xC0, 0xD1, 0xD0, 0xCE,
- 0x00, 0x84, 0x00, 0x84, 0x00, 0x96,
-};
-
-static const unsigned char gamma22_80[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEB, 0xCC, 0xE9,
- 0xD5, 0xD4, 0xD3, 0xDE, 0xE1, 0xE2,
- 0xC2, 0xBF, 0xBF, 0xCF, 0xCF, 0xCC,
- 0x00, 0x89, 0x00, 0x89, 0x00, 0x9C,
-};
-
-static const unsigned char gamma22_90[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_100[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_110[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_120[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00,
-};
-
-static const unsigned char gamma22_130[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_140[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_150[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_160[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_170[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_180[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-#ifdef CONFIG_AID_DIMMING
-static const unsigned char gamma22_182[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_184[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_186[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_188[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-#endif
-
-static const unsigned char gamma22_190[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_200[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_210[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_220[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_230[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_240[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_250[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_260[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_270[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_280[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_290[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char gamma22_300[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char *gamma22_table[GAMMA_MAX] = {
-#ifdef CONFIG_AID_DIMMING
- gamma22_20,
-#endif
- gamma22_30,
- gamma22_40,
- gamma22_50,
- gamma22_60,
- gamma22_70,
- gamma22_80,
- gamma22_90,
- gamma22_100,
- gamma22_110,
- gamma22_120,
- gamma22_130,
- gamma22_140,
- gamma22_150,
- gamma22_160,
- gamma22_170,
- gamma22_180,
-#ifdef CONFIG_AID_DIMMING
- gamma22_182,
- gamma22_184,
- gamma22_186,
- gamma22_188,
-#endif
- gamma22_190,
- gamma22_200,
- gamma22_210,
- gamma22_220,
- gamma22_230,
- gamma22_240,
- gamma22_250,
- gamma22_300,
-};
-
-#endif /* __S6E8AA0_GAMMA_L_H__ */
diff --git a/drivers/video/samsung_duallcd/ea8061_param.h b/drivers/video/samsung_duallcd/ea8061_param.h
deleted file mode 100644
index 2c2823c..0000000
--- a/drivers/video/samsung_duallcd/ea8061_param.h
+++ /dev/null
@@ -1,348 +0,0 @@
-#ifndef __EA8061_PARAM_H__
-#define __EA8061_PARAM_H__
-
-#define GAMMA_PARAM_SIZE 26
-#define ELVSS_PARAM_SIZE 3
-#define ACL_PARAM_SIZE ARRAY_SIZE(acl_cutoff_50)
-
-#ifdef CONFIG_AID_DIMMING
-#define ELVSS_OFFSET_300 0x00
-#define ELVSS_OFFSET_290 0x01
-#define ELVSS_OFFSET_280 0x02
-#define ELVSS_OFFSET_270 0x03
-#define ELVSS_OFFSET_260 0x04
-#define ELVSS_OFFSET_250 0x05
-#define ELVSS_OFFSET_240 0x06
-#define ELVSS_OFFSET_230 0x06
-#define ELVSS_OFFSET_220 0x07
-#define ELVSS_OFFSET_210 0x08
-#define ELVSS_OFFSET_200 0x09
-#define ELVSS_OFFSET_190 0x0A
-#define ELVSS_OFFSET_180 0x05
-#define ELVSS_OFFSET_170 0x06
-#define ELVSS_OFFSET_160 0x07
-#define ELVSS_OFFSET_150 0x08
-#define ELVSS_OFFSET_140 0x09
-#define ELVSS_OFFSET_130 0x0A
-#define ELVSS_OFFSET_120 0x0B
-#define ELVSS_OFFSET_110 0x0C
-#define ELVSS_OFFSET_100 0x0D
-
-enum {
- ELVSS_110 = 0,
- ELVSS_120,
- ELVSS_130,
- ELVSS_140,
- ELVSS_150,
- ELVSS_160,
- ELVSS_170,
- ELVSS_180,
- ELVSS_190,
- ELVSS_200,
- ELVSS_210,
- ELVSS_220,
- ELVSS_230,
- ELVSS_240,
- ELVSS_250,
- ELVSS_260,
- ELVSS_270,
- ELVSS_280,
- ELVSS_290,
- ELVSS_300,
- ELVSS_STATUS_MAX,
-};
-
-#else
-#define ELVSS_OFFSET_300 0x00
-#define ELVSS_OFFSET_200 0x08
-#define ELVSS_OFFSET_160 0x0D
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
-#define ELVSS_OFFSET_100 0x11
-#else
-#define ELVSS_OFFSET_100 0x12
-#endif
-
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
-#define ELVSS_OFFSET_MAX ELVSS_OFFSET_300
-#define ELVSS_OFFSET_1 ELVSS_OFFSET_200
-#define ELVSS_OFFSET_2 ELVSS_OFFSET_160
-#define ELVSS_OFFSET_MIN ELVSS_OFFSET_100
-#else
-#define ELVSS_OFFSET_MAX ELVSS_OFFSET_300
-#define ELVSS_OFFSET_1 ELVSS_OFFSET_160
-#define ELVSS_OFFSET_2 ELVSS_OFFSET_1
-#define ELVSS_OFFSET_MIN ELVSS_OFFSET_100
-#endif
-
-enum {
- ELVSS_MIN = 0,
- ELVSS_1,
- ELVSS_2,
- ELVSS_MAX,
- ELVSS_STATUS_MAX,
-};
-#endif
-
-enum {
- GAMMA_20CD,
-#ifdef CONFIG_AID_DIMMING
- GAMMA_30CD,
-#else
- GAMMA_30CD = GAMMA_20CD,
-#endif
- GAMMA_40CD,
- GAMMA_50CD,
- GAMMA_60CD,
- GAMMA_70CD,
- GAMMA_80CD,
- GAMMA_90CD,
- GAMMA_100CD,
- GAMMA_110CD,
- GAMMA_120CD,
- GAMMA_130CD,
- GAMMA_140CD,
- GAMMA_150CD,
- GAMMA_160CD,
- GAMMA_170CD,
- GAMMA_180CD,
-#ifdef CONFIG_AID_DIMMING
- GAMMA_182CD,
- GAMMA_184CD,
- GAMMA_186CD,
- GAMMA_188CD,
-#endif
- GAMMA_190CD,
- GAMMA_200CD,
- GAMMA_210CD,
- GAMMA_220CD,
- GAMMA_230CD,
- GAMMA_240CD,
- GAMMA_250CD,
- GAMMA_290CD,
- GAMMA_300CD = GAMMA_290CD,
- GAMMA_MAX
-};
-
-static const unsigned char SEQ_APPLY_LEVEL_2_KEY[] = {
- 0xF0,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_APPLY_LEVEL_2_KEY2[] = {
- 0xFC,
- 0x5A, 0x5A
-};
-
-
-
-static const unsigned char SEQ_DYNAMIC_ELVSS[] = {
- 0xB2,
- 0x04, 0xB4, 0xA0, 0x00, 0x00, 0x00,
-};
-
-static const unsigned char SEQ_SLEEP_OUT[] = {
- 0x11,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET[] = {
- 0xC4,
- 0x4E, 0xBD, 0x00, 0x00, 0x58, 0xA7, 0x0B, 0x34, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0B, 0x92, 0x0B, 0x92, 0x08, 0x08, 0x07,
- 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04,
- 0x04, 0x04
-};
-
-static const unsigned char SEQ_GAMMA_CONDITION_SET[] = {
- 0xCA,
- 0x00, 0xE8, 0x00, 0xF7, 0x01, 0x03, 0xDB, 0xDB, 0xDC, 0xD9,
- 0xD8, 0xDA, 0xCB, 0xC8, 0xCB, 0xD4, 0xD3, 0xD7, 0xE6, 0xE6,
- 0xEA, 0xE2, 0xE4, 0xE5, 0xCE, 0xC3, 0xCF, 0xB9, 0x9D, 0xDE,
- 0x11, 0x00
-};
-
-static const unsigned char SEQ_LTPS_AID[] = {
- 0xB3,
- 0x00, 0x0A, 0x00, 0x0A,
-};
-
-static const unsigned char SEQ_DISPLAY_CONDITION_SET[] = {
- 0x36,
- 0x02, 0x00
-};
-
-static const unsigned char SEQ_GAMMA_UPDATE[] = {
- 0xF7, 0x5A,
- 0x5A
-};
-
-static const unsigned char SEQ_GAMMA_UPDATE2[] = {
- 0xF7, 0xA5,
- 0xA5
-};
-
-static const unsigned char SEQ_ETC_WCABC_CONTROL[] = {
- 0x55,
- 0x00, 0x01, 0x02, 0x03
-};
-
-static const unsigned char SEQ_ETC_SLEW_CONTROL[] = {
- 0xB4,
- 0x33, 0x03, 0x00
-};
-
-static const unsigned char SEQ_DISPLAY_ON[] = {
- 0x29,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_DISPLAY_OFF[] = {
- 0x28,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_STANDBY_ON[] = {
- 0x01,
- 0x00, 0x00
-};
-
-
-static const unsigned char SEQ_ACL_ON[] = {
- 0xC0, 0x01,
- 0x00
-};
-
-static const unsigned char SEQ_ACL_OFF[] = {
- 0xC0, 0x00,
- 0x00
-};
-
-enum {
- ACL_STATUS_0P = 0,
- ACL_STATUS_20P,
- ACL_STATUS_33P,
- ACL_STATUS_40P,
- ACL_STATUS_43P,
- ACL_STATUS_45P,
- ACL_STATUS_48P,
- ACL_STATUS_50P,
- ACL_STATUS_52P,
- ACL_STATUS_53P,
- ACL_STATUS_55P,
- ACL_STATUS_MAX
-} ACL_STATUS;
-
-const unsigned char acl_cutoff_20[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x04, 0x07, 0x0A, 0x0D, 0x10,
- 0x12, 0x15, 0x18, 0x1B, 0x1E
-};
-
-const unsigned char acl_cutoff_33[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x06, 0x0A, 0x0F, 0x14, 0x19,
- 0x1D, 0x22, 0x27, 0x2B, 0x30
-};
-
-const unsigned char acl_cutoff_40[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x07, 0x0C, 0x12, 0x17, 0x1D,
- 0x23, 0x28, 0x2E, 0x33, 0x39
-};
-
-const unsigned char acl_cutoff_43[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x07, 0x0D, 0x14, 0x1A, 0x20,
- 0x26, 0x2C, 0x33, 0x39, 0x3F
-};
-
-const unsigned char acl_cutoff_45[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x07, 0x0E, 0x14, 0x1B, 0x21,
- 0x27, 0x2E, 0x34, 0x3B, 0x41
-};
-
-const unsigned char acl_cutoff_48[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x08, 0x0F, 0x17, 0x1E, 0x25,
- 0x2C, 0x33, 0x3B, 0x42, 0x49
-};
-
-const unsigned char acl_cutoff_50[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x09, 0x10, 0x18, 0x1F, 0x27,
- 0x2E, 0x36, 0x3D, 0x45, 0x4C
-};
-
-const unsigned char acl_cutoff_52[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x09, 0x11, 0x19, 0x21, 0x29,
- 0x31, 0x39, 0x41, 0x49, 0x51
-};
-
-const unsigned char acl_cutoff_53[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x09, 0x11, 0x1A, 0x22, 0x2A,
- 0x32, 0x3A, 0x43, 0x4B, 0x53
-};
-
-const unsigned char acl_cutoff_55[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x0A, 0x12, 0x1B, 0x23, 0x2C,
- 0x35, 0x3D, 0x46, 0x4E, 0x57
-};
-
-const unsigned char *ACL_CUTOFF_TABLE[ACL_STATUS_MAX] = {
- SEQ_ACL_OFF,
- acl_cutoff_20,
- acl_cutoff_33,
- acl_cutoff_40,
- acl_cutoff_43,
- acl_cutoff_45,
- acl_cutoff_48,
- acl_cutoff_50,
- acl_cutoff_52,
- acl_cutoff_53,
- acl_cutoff_55,
-};
-#endif /* __EA8061_PARAM_H__ */
diff --git a/drivers/video/samsung_duallcd/extension/Makefile b/drivers/video/samsung_duallcd/extension/Makefile
deleted file mode 100644
index 190c9cd..0000000
--- a/drivers/video/samsung_duallcd/extension/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-# Makefile for fimd extension driver.
-#
-obj-$(CONFIG_FIMD_EXT_SUPPORT) += s5p_fimd_ext.o
-obj-$(CONFIG_FIMD_LITE_SUPPORT) += s5p_fimd_lite.o
-obj-$(CONFIG_MDNIE_SUPPORT) += mdnie.o
diff --git a/drivers/video/samsung_duallcd/extension/cmc623.h b/drivers/video/samsung_duallcd/extension/cmc623.h
deleted file mode 100644
index 8da2e79..0000000
--- a/drivers/video/samsung_duallcd/extension/cmc623.h
+++ /dev/null
@@ -1,725 +0,0 @@
-/*
- * CMC623 Setting table for SLP7 Machine.
- *
- * Author: InKi Dae <inki.dae@samsung.com>
- * Eunchul Kim <chulspro.kim@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "mdnie.h"
-
-static const unsigned short dynamic_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0040, /*DE pe*/
- 0x0093, 0x0040, /*DE pf*/
- 0x0094, 0x0040, /*DE pb*/
- 0x0095, 0x0040, /*DE ne*/
- 0x0096, 0x0040, /*DE nf*/
- 0x0097, 0x0040, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0d93, /*CC lut r 16 144*/
- 0x0022, 0x1aa5, /*CC lut r 32 160*/
- 0x0023, 0x29b7, /*CC lut r 48 176*/
- 0x0024, 0x39c8, /*CC lut r 64 192*/
- 0x0025, 0x4bd8, /*CC lut r 80 208*/
- 0x0026, 0x5de6, /*CC lut r 96 224*/
- 0x0027, 0x6ff4, /*CC lut r 112 240*/
- 0x0028, 0x81ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short dynamic_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0080, /*DE pe*/
- 0x0093, 0x0080, /*DE pf*/
- 0x0094, 0x0080, /*DE pb*/
- 0x0095, 0x0080, /*DE ne*/
- 0x0096, 0x0080, /*DE nf*/
- 0x0097, 0x0080, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1404, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0d93, /*CC lut r 16 144*/
- 0x0022, 0x1aa5, /*CC lut r 32 160*/
- 0x0023, 0x29b7, /*CC lut r 48 176*/
- 0x0024, 0x39c8, /*CC lut r 64 192*/
- 0x0025, 0x4bd8, /*CC lut r 80 208*/
- 0x0026, 0x5de6, /*CC lut r 96 224*/
- 0x0027, 0x6ff4, /*CC lut r 112 240*/
- 0x0028, 0x81ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short dynamic_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0080, /*DE pe*/
- 0x0093, 0x0080, /*DE pf*/
- 0x0094, 0x0080, /*DE pb*/
- 0x0095, 0x0080, /*DE ne*/
- 0x0096, 0x0080, /*DE nf*/
- 0x0097, 0x0080, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1404, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0d93, /*CC lut r 16 144*/
- 0x0022, 0x1aa5, /*CC lut r 32 160*/
- 0x0023, 0x29b7, /*CC lut r 48 176*/
- 0x0024, 0x39c8, /*CC lut r 64 192*/
- 0x0025, 0x4bd8, /*CC lut r 80 208*/
- 0x0026, 0x5de6, /*CC lut r 96 224*/
- 0x0027, 0x6ff4, /*CC lut r 112 240*/
- 0x0028, 0x81ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short dynamic_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008e, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0005, /*FA cs1 | de8 dnr4 hdr2 fa1*/
- 0x0039, 0x0080, /*FA dnrWeight*/
- 0x0080, 0x0fff, /*DNR dirTh*/
- 0x0081, 0x19ff, /*DNR dirnumTh decon7Th*/
- 0x0082, 0xff16, /*DNR decon5Th maskTh*/
- 0x0083, 0x0000, /*DNR blTh*/
- 0x0092, 0x00e0, /*DE pe*/
- 0x0093, 0x00e0, /*DE pf*/
- 0x0094, 0x00e0, /*DE pb*/
- 0x0095, 0x00e0, /*DE ne*/
- 0x0096, 0x00e0, /*DE nf*/
- 0x0097, 0x00e0, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0010, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1a04, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0d93, /*CC lut r 16 144*/
- 0x0022, 0x1aa5, /*CC lut r 32 160*/
- 0x0023, 0x29b7, /*CC lut r 48 176*/
- 0x0024, 0x39c8, /*CC lut r 64 192*/
- 0x0025, 0x4bd8, /*CC lut r 80 208*/
- 0x0026, 0x5de6, /*CC lut r 96 224*/
- 0x0027, 0x6ff4, /*CC lut r 112 240*/
- 0x0028, 0x81ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short movie_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00f8, /*SCR KgWg*/
- 0x00ec, 0x00f1, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short movie_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00f8, /*SCR KgWg*/
- 0x00ec, 0x00f1, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short movie_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0000, /*DE pe*/
- 0x0093, 0x0000, /*DE pf*/
- 0x0094, 0x0000, /*DE pb*/
- 0x0095, 0x0000, /*DE ne*/
- 0x0096, 0x0000, /*DE nf*/
- 0x0097, 0x0000, /*DE nb*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1004, /*CS weight grayTH*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00f8, /*SCR KgWg*/
- 0x00ec, 0x00f1, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0000, /*CC chsel strength*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short movie_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x002e, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0005, /*FA cs1 | de8 dnr4 hdr2 fa1*/
- 0x0039, 0x0080, /*FA dnrWeight*/
- 0x0080, 0x0fff, /*DNR dirTh*/
- 0x0081, 0x19ff, /*DNR dirnumTh decon7Th*/
- 0x0082, 0xff16, /*DNR decon5Th maskTh*/
- 0x0083, 0x0000, /*DNR blTh*/
- 0x0092, 0x0040, /*DE pe*/
- 0x0093, 0x0040, /*DE pf*/
- 0x0094, 0x0040, /*DE pb*/
- 0x0095, 0x0040, /*DE ne*/
- 0x0096, 0x0040, /*DE nf*/
- 0x0097, 0x0040, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0010, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1204, /*CS weight grayTH*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00f8, /*SCR KgWg*/
- 0x00ec, 0x00f1, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short natural_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x002c, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0020, /*DE pe*/
- 0x0093, 0x0020, /*DE pf*/
- 0x0094, 0x0020, /*DE pb*/
- 0x0095, 0x0020, /*DE ne*/
- 0x0096, 0x0020, /*DE nf*/
- 0x0097, 0x0020, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fa, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short natural_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x002c, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fa, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short natural_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x002c, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fa, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0000, /*CC chsel strength*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short natural_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x002e, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0005, /*FA cs1 | de8 dnr4 hdr2 fa1*/
- 0x0039, 0x0080, /*FA dnrWeight*/
- 0x0080, 0x0fff, /*DNR dirTh*/
- 0x0081, 0x19ff, /*DNR dirnumTh decon7Th*/
- 0x0082, 0xff16, /*DNR decon5Th maskTh*/
- 0x0083, 0x0000, /*DNR blTh*/
- 0x0092, 0x00c0, /*DE pe*/
- 0x0093, 0x00c0, /*DE pf*/
- 0x0094, 0x00c0, /*DE pb*/
- 0x0095, 0x00c0, /*DE ne*/
- 0x0096, 0x00c0, /*DE nf*/
- 0x0097, 0x00c0, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0010, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fa, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short standard_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x000c, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0020, /*DE pe*/
- 0x0093, 0x0020, /*DE pf*/
- 0x0094, 0x0020, /*DE pb*/
- 0x0095, 0x0020, /*DE ne*/
- 0x0096, 0x0020, /*DE nf*/
- 0x0097, 0x0020, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1604, /*CS weight grayTH*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short standard_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x000c, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1204, /*CS weight grayTH*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short standard_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x000c, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1204, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0000, /*CC chsel strength*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short standard_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x000e, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0005, /*FA cs1 | de8 dnr4 hdr2 fa1*/
- 0x0039, 0x0080, /*FA dnrWeight*/
- 0x0080, 0x0fff, /*DNR dirTh*/
- 0x0081, 0x19ff, /*DNR dirnumTh decon7Th*/
- 0x0082, 0xff16, /*DNR decon5Th maskTh*/
- 0x0083, 0x0000, /*DNR blTh*/
- 0x0092, 0x00c0, /*DE pe*/
- 0x0093, 0x00c0, /*DE pf*/
- 0x0094, 0x00c0, /*DE pb*/
- 0x0095, 0x00c0, /*DE ne*/
- 0x0096, 0x00c0, /*DE nf*/
- 0x0097, 0x00c0, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0010, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short camera[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x000c, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1204, /*CS weight grayTH*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short camera_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x040c, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg RY*/
- 0x00b1, 0x1010, /*CS hg GC*/
- 0x00b2, 0x1010, /*CS hg BM*/
- 0x00b3, 0x1204, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short browser_tone1[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xaf00, /*SCR RrCr*/
- 0x00e2, 0x00b7, /*SCR RgCg*/
- 0x00e3, 0x00bc, /*SCR RbCb*/
- 0x00e4, 0x00af, /*SCR GrMr*/
- 0x00e5, 0xb700, /*SCR GgMg*/
- 0x00e6, 0x00bc, /*SCR GbMb*/
- 0x00e7, 0x00af, /*SCR BrYr*/
- 0x00e8, 0x00b7, /*SCR BgYg*/
- 0x00e9, 0xbc00, /*SCR BbYb*/
- 0x00ea, 0x00af, /*SCR KrWr*/
- 0x00eb, 0x00b7, /*SCR KgWg*/
- 0x00ec, 0x00bc, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short browser_tone2[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xa000, /*SCR RrCr*/
- 0x00e2, 0x00a8, /*SCR RgCg*/
- 0x00e3, 0x00b2, /*SCR RbCb*/
- 0x00e4, 0x00a0, /*SCR GrMr*/
- 0x00e5, 0xa800, /*SCR GgMg*/
- 0x00e6, 0x00b2, /*SCR GbMb*/
- 0x00e7, 0x00a0, /*SCR BrYr*/
- 0x00e8, 0x00a8, /*SCR BgYg*/
- 0x00e9, 0xb200, /*SCR BbYb*/
- 0x00ea, 0x00a0, /*SCR KrWr*/
- 0x00eb, 0x00a8, /*SCR KgWg*/
- 0x00ec, 0x00b2, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short browser_tone3[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0x9100, /*SCR RrCr*/
- 0x00e2, 0x0099, /*SCR RgCg*/
- 0x00e3, 0x00a3, /*SCR RbCb*/
- 0x00e4, 0x0091, /*SCR GrMr*/
- 0x00e5, 0x9900, /*SCR GgMg*/
- 0x00e6, 0x00a3, /*SCR GbMb*/
- 0x00e7, 0x0091, /*SCR BrYr*/
- 0x00e8, 0x0099, /*SCR BgYg*/
- 0x00e9, 0xa300, /*SCR BbYb*/
- 0x00ea, 0x0091, /*SCR KrWr*/
- 0x00eb, 0x0099, /*SCR KgWg*/
- 0x00ec, 0x00a3, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short bypass[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0000, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 | de8 hdr2 fa1*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short negative[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*SCR*/
- 0x00e1, 0x00ff, /*SCR RrCr*/
- 0x00e2, 0xff00, /*SCR RgCg*/
- 0x00e3, 0xff00, /*SCR RbCb*/
- 0x00e4, 0xff00, /*SCR GrMr*/
- 0x00e5, 0x00ff, /*SCR GgMg*/
- 0x00e6, 0xff00, /*SCR GbMb*/
- 0x00e7, 0xff00, /*SCR BrYr*/
- 0x00e8, 0xff00, /*SCR BgYg*/
- 0x00e9, 0x00ff, /*SCR BbYb*/
- 0x00ea, 0xff00, /*SCR KrWr*/
- 0x00eb, 0xff00, /*SCR KgWg*/
- 0x00ec, 0xff00, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x04ac, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short cold[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ec, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0064, /*MCM 10000K*/
- 0x0009, 0xa08b, /*MCM 5cb 1cr W*/
- 0x000b, 0x7a7a, /*MCM 4cr 5cr W*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short cold_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x04ec, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0064, /*MCM 10000K*/
- 0x0009, 0xa08b, /*MCM 5cb 1cr W*/
- 0x000b, 0x7a7a, /*MCM 4cr 5cr W*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short warm[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ec, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0028, /*MCM 4000K*/
- 0x0007, 0x7878, /*MCM 1cb 2cb W*/
- 0x0009, 0xa08b, /*MCM 5cb 1cr W*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-static const unsigned short warm_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x04ec, /*Dither8 UC4 ABC2 CP1 |
- CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0028, /*MCM 4000K*/
- 0x0007, 0x7878, /*MCM 1cb 2cb W*/
- 0x0009, 0xa08b, /*MCM 5cb 1cr W*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
-};
-
-const struct mdnie_tables mdnie_main_tables[] = {
- { "dynamic_ui", dynamic_ui, ARRAY_SIZE(dynamic_ui) },
- { "dynamic_gallery", dynamic_gallery, ARRAY_SIZE(dynamic_gallery) },
- { "dynamic_video", dynamic_video, ARRAY_SIZE(dynamic_video) },
- { "dynamic_vtcall", dynamic_vtcall, ARRAY_SIZE(dynamic_vtcall) },
- { "standard_ui", standard_ui, ARRAY_SIZE(standard_ui) },
- { "standard_gallery", standard_gallery, ARRAY_SIZE(standard_gallery) },
- { "standard_video", standard_video, ARRAY_SIZE(standard_video) },
- { "standard_vtcall", standard_vtcall, ARRAY_SIZE(standard_vtcall) },
- { "natural_ui", natural_ui, ARRAY_SIZE(natural_ui) },
- { "natural_gallery", natural_gallery, ARRAY_SIZE(natural_gallery) },
- { "natural_video", natural_video, ARRAY_SIZE(natural_video) },
- { "natural_vtcall", natural_vtcall, ARRAY_SIZE(natural_vtcall) },
- { "movie_ui", movie_ui, ARRAY_SIZE(movie_ui) },
- { "movie_gallery", movie_gallery, ARRAY_SIZE(movie_gallery) },
- { "movie_video", movie_video, ARRAY_SIZE(movie_video) },
- { "movie_vtcall", movie_vtcall, ARRAY_SIZE(movie_vtcall) },
- { "camera", camera, ARRAY_SIZE(camera) },
- { "camera_outdoor", camera_outdoor, ARRAY_SIZE(camera_outdoor) },
- { "browser_tone1", browser_tone1, ARRAY_SIZE(browser_tone1) },
- { "browser_tone2", browser_tone2, ARRAY_SIZE(browser_tone2) },
- { "browser_tone3", browser_tone3, ARRAY_SIZE(browser_tone3) },
- { "negative", negative, ARRAY_SIZE(negative) },
- { "bypass", bypass, ARRAY_SIZE(bypass) },
- { "outdoor", outdoor, ARRAY_SIZE(outdoor) },
- { "warm", warm, ARRAY_SIZE(warm) },
- { "warm_outdoor", warm_outdoor, ARRAY_SIZE(warm_outdoor) },
- { "cold", cold, ARRAY_SIZE(cold) },
- { "cold_outdoor", cold_outdoor, ARRAY_SIZE(cold_outdoor) },
-};
-
diff --git a/drivers/video/samsung_duallcd/extension/mdnie.c b/drivers/video/samsung_duallcd/extension/mdnie.c
deleted file mode 100644
index e2ad4cc..0000000
--- a/drivers/video/samsung_duallcd/extension/mdnie.c
+++ /dev/null
@@ -1,729 +0,0 @@
-/* /linux/driver/video/samsung/mdnie.c
- *
- * Samsung SoC mDNIe driver.
- *
- * Copyright (c) 2011 Samsung Electronics.
- * Author: InKi Dae <inki.dae@samsung.com>
- * Eunchul Kim <chulspro.kim@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/err.h>
-#include <linux/io.h>
-#include <linux/slab.h>
-#include <linux/platform_device.h>
-#include <linux/firmware.h>
-
-#include <plat/fimd_lite_ext.h>
-#include <mach/map.h>
-
-#include "regs-mdnie.h"
-#include "mdnie.h"
-#include "s5p_fimd_ext.h"
-#include "cmc623.h"
-
-/* FIXME:!! need to change chip id dynamically */
-#define MDNIE_CHIP_ID "cmc623p"
-
-static const char *mode_name[MODE_MAX] = {
- "dynamic",
- "standard",
- "natural",
- "movie"
-};
-
-static const char *scenario_name[SCENARIO_MAX] = {
- "ui",
- "gallery",
- "video",
- "vtcall",
- "camera",
- "browser",
- "negative",
- "bypass"
-};
-
-static const char *tone_name[TONE_MAX] = {
- "",
- "warm",
- "cold",
-};
-
-static const char *tone_browser_name[TONE_BR_MAX] = {
- "tone1",
- "tone2",
- "tone3"
-};
-
-static const char *outdoor_name[OUTDOOR_MAX] = {
- "",
- "outdoor"
-};
-
-#if defined(DEBUG)
-#define mdnie_info(fmt, args...) \
- do { \
- printk(KERN_NOTICE"%s:"fmt"\n", __func__, ##args); \
- } while (0);
-#else
-#define mdnie_info(fmt, args...)
-#endif
-
-static struct mdnie_platform_data
- *to_mdnie_platform_data(struct s5p_fimd_ext_device *fx_dev)
-{
- return fx_dev->dev.platform_data ?
- (struct mdnie_platform_data *)fx_dev->dev.platform_data : NULL;
-}
-
-static void mdnie_write_tune(struct s5p_mdnie *mdnie,
- const unsigned short *tune,
- unsigned int size)
-{
- unsigned int i = 0;
-
- mdnie_info("size[%d]", size);
- while (i < size) {
- writel(tune[i + 1], mdnie->regs + tune[i] * 4);
- i += 2;
- }
-}
-
-static int mdnie_request_fw(struct s5p_mdnie *mdnie, const char *name)
-{
- const struct firmware *fw;
- char fw_path[MDNIE_MAX_STR+1];
- int ret;
-
- snprintf(fw_path, MDNIE_MAX_STR, MDNIE_FW_PATH, MDNIE_CHIP_ID, name);
- mdnie_info("fw_path[%s]", fw_path);
- mutex_lock(&mdnie->lock);
-
- ret = request_firmware(&fw, fw_path, mdnie->dev);
- if (ret) {
- dev_err(mdnie->dev, "failed to request firmware.\n");
- mutex_unlock(&mdnie->lock);
- return ret;
- }
-
- mdnie_write_tune(mdnie, (const unsigned short *)fw->data,
- fw->size / sizeof(const unsigned short));
- release_firmware(fw);
-
- mutex_unlock(&mdnie->lock);
-
- return 0;
-}
-
-static int mdnie_request_tables(struct s5p_mdnie *mdnie, const char *name)
-{
- struct mdnie_tables *tables;
- int i;
-
- mdnie_info("name[%s]", name);
- tables = (struct mdnie_tables *)&mdnie_main_tables;
- if (!tables) {
- dev_err(mdnie->dev, "mode mdnie tables is NULL.\n");
- return -EINVAL;
- }
-
- for (i = 0; i < ARRAY_SIZE(mdnie_main_tables); i++) {
- if (strcmp(name , tables[i].name) == 0) {
- mdnie_info("tune_id[%d]name[%s]", i, tables[i].name);
- mdnie_write_tune(mdnie, tables[i].value,
- tables[i].size);
- break;
- }
- }
-
- return 0;
-}
-
-static int mdnie_get_name(struct s5p_mdnie *mdnie, char *name,
- enum mdnie_set set)
-{
- enum mdnie_mode mode = mdnie->mode;
- enum mdnie_scenario scenario = mdnie->scenario;
- int tone = mdnie->tone;
- enum mdnie_outdoor outdoor = mdnie->outdoor;
-
- mdnie_info("set[%d]:mode[%d]scenario[%d]tone[%d]outdoor[%d]",
- set, mode, scenario, tone, outdoor);
- switch (scenario) {
- case SCENARIO_CAMERA:
- strcat(name, scenario_name[scenario]);
- if (outdoor == OUTDOOR_ON) {
- strcat(name, "_");
- strcat(name , outdoor_name[outdoor]);
- }
- break;
- case SCENARIO_BROWSER:
- strcat(name, scenario_name[scenario]);
- strcat(name, "_");
- strcat(name, tone_browser_name[tone]);
- break;
- default:
- if (set == SET_MAIN ||
- (tone == TONE_NORMAL && outdoor == OUTDOOR_OFF)) {
- if (scenario < SCENARIO_MODE_MAX) {
- if (mode < MODE_MAX)
- strcat(name, mode_name[mode]);
-
- strcat(name, "_");
-
- if (scenario < SCENARIO_MODE_MAX)
- strcat(name,
- scenario_name[scenario]);
- } else
- strcat(name, scenario_name[scenario]);
- } else {
- if (tone < TONE_MAX)
- strcat(name, tone_name[tone]);
-
- if (tone != TONE_NORMAL && outdoor == OUTDOOR_ON)
- strcat(name, "_");
-
- if (outdoor < OUTDOOR_MAX)
- strcat(name , outdoor_name[outdoor]);
- }
- break;
- }
-
- return strlen(name);
-}
-
-static int mdnie_set_commit(struct s5p_mdnie *mdnie,
- enum mdnie_set set)
-{
- struct mdnie_manager_ops *mops = mdnie->mops;
- char name[MDNIE_MAX_STR+1];
- int ret = 0, len = 0;
-
- memset(name, 0, MDNIE_MAX_STR+1);
- len = mdnie_get_name(mdnie, name, set);
- if (len == 0) {
- dev_err(mdnie->dev, "failed to find tune.\n");
- return ret;
- }
-
- if (mops && mops->tune) {
- ret = mops->tune(mdnie, name);
- if (ret) {
- dev_err(mdnie->dev, "failed to set tune.\n");
- return ret;
- }
- } else {
- dev_err(mdnie->dev, "invalid mdnie mops.\n");
- return -EINVAL;
- }
-
- return ret;
-}
-
-static int mdnie_check_tone(struct s5p_mdnie *mdnie, int tone)
-{
- unsigned long max_tone;
-
- if (mdnie->scenario == SCENARIO_BROWSER)
- max_tone = TONE_BR_MAX;
- else
- max_tone = TONE_MAX;
-
- if (tone >= max_tone) {
- dev_err(mdnie->dev, "invalid mdnie tone.\n");
- return -EINVAL;
- }
-
- if (mdnie->scenario != SCENARIO_VIDEO
- && mdnie->scenario != SCENARIO_BROWSER) {
- /* Set to default */
- mdnie->tone = 0;
- dev_err(mdnie->dev, "invalid mdnie scenario.\n");
- return -EIO;
- }
-
- return 0;
-}
-
-struct mdnie_manager_ops mdnie_set_mops = {
- .tune = mdnie_request_tables,
- .commit = mdnie_set_commit,
- .check_tone = mdnie_check_tone,
-};
-
-static void mdnie_set_size(struct s5p_mdnie *mdnie,
- unsigned int width, unsigned int height)
-{
- unsigned int size;
-
- writel(0x0, mdnie->regs + MDNIE_R0);
-
- /* Input Data Unmask */
- writel(0x077, mdnie->regs + MDNIE_R1);
-
- /* LCD width */
- size = readl(mdnie->regs + MDNIE_R3);
- size &= ~MDNIE_R34_WIDTH_MASK;
- size |= width;
- writel(size, mdnie->regs + MDNIE_R3);
-
- /* LCD height */
- size = readl(mdnie->regs + MDNIE_R4);
- size &= ~MDNIE_R35_HEIGHT_MASK;
- size |= height;
- writel(size, mdnie->regs + MDNIE_R4);
-
- /* unmask all */
- writel(0, mdnie->regs + MDNIE_R28);
-}
-
-static void mdnie_init_hardware(struct s5p_mdnie *mdnie)
-{
- struct mdnie_platform_data *pdata = NULL;
-
- pdata = mdnie->pdata;
-
- /* set display size. */
- mdnie_set_size(mdnie, pdata->width, pdata->height);
-}
-
-static int mdnie_setup(struct s5p_fimd_ext_device *fx_dev, unsigned int enable)
-{
- struct s5p_mdnie *mdnie = fimd_ext_get_drvdata(fx_dev);
- struct mdnie_manager_ops *mops = mdnie->mops;
- int ret = 0;
-
- mdnie_info("enable[%d]", enable);
- if (enable) {
- int i;
- mdnie_init_hardware(mdnie);
- if (mops && mops->commit) {
- for (i = 0; i < SET_MAX; i++) {
- ret = mops->commit(mdnie, i);
- if (ret) {
- dev_err(mdnie->dev, "invalid mdnie set.\n");
- goto error;
- }
- }
- } else {
- dev_err(mdnie->dev, "invalid mdnie mops.\n");
- goto error;
- }
- }
-
- return 0;
-
-error:
- return ret;
-}
-
-static ssize_t store_mdnie_mode(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- struct s5p_fimd_ext_device *fx_dev = to_fimd_ext_device(dev);
- struct s5p_mdnie *mdnie = fimd_ext_get_drvdata(fx_dev);
- struct mdnie_manager_ops *mops = mdnie->mops;
- unsigned long prev_mode;
- unsigned long mode;
- int ret;
-
- ret = kstrtoul(buf, 0, &mode);
- if (ret) {
- dev_err(&fx_dev->dev, "invalid mode value.\n");
- return -EINVAL;
- }
-
- if (mode >= MODE_MAX) {
- dev_err(&fx_dev->dev, "invalid mdnie mode.\n");
- return -EINVAL;
- }
-
- if (mdnie->scenario >= SCENARIO_MODE_MAX) {
- dev_err(&fx_dev->dev, "invalid mdnie scenario.\n");
- mdnie->scenario = SCENARIO_UI;
- }
-
- prev_mode = mdnie->mode;
- mdnie->mode = mode;
- mdnie_info("mode[%d]", mdnie->mode);
- if (mops && mops->commit) {
- ret = mops->commit(mdnie, SET_MAIN);
- if (ret) {
- dev_err(&fx_dev->dev, "failed to set mode.\n");
- goto error_restore;
- }
- } else {
- dev_err(&fx_dev->dev, "invalid mdnie mops.\n");
- ret = -EINVAL;
- goto error_restore;
- }
-
- return count;
-
-error_restore:
- mdnie->mode = prev_mode;
- return ret;
-}
-
-static ssize_t show_mdnie_mode(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
- struct s5p_fimd_ext_device *fx_dev = to_fimd_ext_device(dev);
- struct s5p_mdnie *mdnie = fimd_ext_get_drvdata(fx_dev);
-
- mdnie_info("mode[%d]", mdnie->mode);
- return snprintf(buf, PAGE_SIZE, "%d\n", mdnie->mode);
-}
-
-static ssize_t store_mdnie_scenario(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- struct s5p_fimd_ext_device *fx_dev = to_fimd_ext_device(dev);
- struct s5p_mdnie *mdnie = fimd_ext_get_drvdata(fx_dev);
- struct mdnie_manager_ops *mops = mdnie->mops;
- unsigned long prev_scenario;
- unsigned long scenario;
- int ret;
-
- ret = kstrtoul(buf, 0, &scenario);
- if (ret) {
- dev_err(&fx_dev->dev, "invalid scenario value.\n");
- return -EINVAL;
- }
-
- if (scenario >= SCENARIO_MAX) {
- dev_err(&fx_dev->dev, "invalid mdnie scenario.\n");
- return -EINVAL;
- }
-
- prev_scenario = mdnie->scenario;
- mdnie->scenario = scenario;
- mdnie_info("scenario[%d]", mdnie->scenario);
- if (mops && mops->commit) {
- ret = mops->commit(mdnie, SET_MAIN);
- if (ret) {
- dev_err(&fx_dev->dev, "failed to set scenario.\n");
- goto error_restore;
- }
- } else {
- dev_err(&fx_dev->dev, "invalid mdnie mops.\n");
- ret = -EINVAL;
- goto error_restore;
- }
-
- return count;
-
-error_restore:
- mdnie->scenario = prev_scenario;
- return ret;
-}
-
-static ssize_t show_mdnie_scenario(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
- struct s5p_fimd_ext_device *fx_dev = to_fimd_ext_device(dev);
- struct s5p_mdnie *mdnie = fimd_ext_get_drvdata(fx_dev);
-
- mdnie_info("scenario[%d]", mdnie->scenario);
- return snprintf(buf, PAGE_SIZE, "%d\n", mdnie->scenario);
-}
-
-static ssize_t store_mdnie_tone(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- struct s5p_fimd_ext_device *fx_dev = to_fimd_ext_device(dev);
- struct s5p_mdnie *mdnie = fimd_ext_get_drvdata(fx_dev);
- struct mdnie_manager_ops *mops = mdnie->mops;
- unsigned long prev_tone;
- unsigned long tone;
- int ret;
-
- ret = kstrtoul(buf, 0, &tone);
- if (ret) {
- dev_err(&fx_dev->dev, "invalid tone value.\n");
- return -EINVAL;
- }
-
- if (mops && mops->check_tone) {
- ret = mops->check_tone(mdnie, tone);
- if (ret) {
- dev_err(&fx_dev->dev, "failed to set tone.\n");
- return ret;
- }
- } else {
- dev_err(&fx_dev->dev, "invalid mdnie mops.\n");
- ret = -EINVAL;
- goto error_mops;
- }
-
- prev_tone = mdnie->tone;
- mdnie->tone = tone;
- mdnie_info("tone[%d]", mdnie->tone);
- if (mops && mops->commit) {
- ret = mops->commit(mdnie, SET_OPTIONAL);
- if (ret) {
- dev_err(&fx_dev->dev, "failed to set tone.\n");
- goto error_restore;
- }
- } else {
- dev_err(&fx_dev->dev, "invalid mdnie mops.\n");
- ret = -EINVAL;
- goto error_restore;
- }
-
- return count;
-
-error_restore:
- mdnie->tone = prev_tone;
-error_mops:
- return ret;
-}
-
-static ssize_t show_mdnie_tone(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
- struct s5p_fimd_ext_device *fx_dev = to_fimd_ext_device(dev);
- struct s5p_mdnie *mdnie = fimd_ext_get_drvdata(fx_dev);
-
- mdnie_info("tone[%d]", mdnie->tone);
- return snprintf(buf, PAGE_SIZE, "%d\n", mdnie->tone);
-}
-
-static ssize_t store_mdnie_outdoor(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- struct s5p_fimd_ext_device *fx_dev = to_fimd_ext_device(dev);
- struct s5p_mdnie *mdnie = fimd_ext_get_drvdata(fx_dev);
- struct mdnie_manager_ops *mops = mdnie->mops;
- unsigned long prev_outdoor;
- unsigned long outdoor;
- int ret;
-
- ret = kstrtoul(buf, 0, &outdoor);
- if (ret) {
- dev_err(&fx_dev->dev, "invalid outdoor value.\n");
- return -EINVAL;
- }
-
- if (outdoor >= OUTDOOR_MAX) {
- dev_err(&fx_dev->dev, "invalid mdnie outdoor.\n");
- return -EINVAL;
- }
-
- if (mdnie->scenario != SCENARIO_VIDEO
- && mdnie->scenario != SCENARIO_CAMERA) {
- /* Set to default */
- mdnie->outdoor = OUTDOOR_OFF;
- dev_err(&fx_dev->dev, "invalid mdnie scenario.\n");
- return -EIO;
- }
-
- prev_outdoor = mdnie->outdoor;
- mdnie->outdoor = outdoor;
- mdnie_info("outdoor[%d]", mdnie->outdoor);
- if (mops && mops->commit) {
- ret = mops->commit(mdnie, SET_OPTIONAL);
- if (ret) {
- dev_err(&fx_dev->dev, "failed to set outdoor.\n");
- goto error_restore;
- }
- } else {
- dev_err(&fx_dev->dev, "invalid mdnie mops.\n");
- ret = -EINVAL;
- goto error_restore;
- }
-
- return count;
-
-error_restore:
- mdnie->outdoor = prev_outdoor;
- return ret;
-}
-
-static ssize_t show_mdnie_outdoor(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
- struct s5p_fimd_ext_device *fx_dev = to_fimd_ext_device(dev);
- struct s5p_mdnie *mdnie = fimd_ext_get_drvdata(fx_dev);
-
- mdnie_info("outdoor[%d]", mdnie->outdoor);
- return snprintf(buf, PAGE_SIZE, "%d\n", mdnie->outdoor);
-}
-
-static ssize_t store_mdnie_tune(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- struct s5p_fimd_ext_device *fx_dev = to_fimd_ext_device(dev);
- struct s5p_mdnie *mdnie = fimd_ext_get_drvdata(fx_dev);
- struct mdnie_manager_ops *mops = mdnie->mops;
- unsigned long prev_tune;
- unsigned long tune;
- int ret;
-
- ret = kstrtoul(buf, 0, &tune);
- if (ret) {
- dev_err(&fx_dev->dev, "invalid tune value.\n");
- return -EINVAL;
- }
-
- if (tune >= TUNE_MAX) {
- dev_err(&fx_dev->dev, "invalid mdnie tune.\n");
- return -EINVAL;
- }
-
- prev_tune = mdnie->tune;
- mdnie->tune = tune;
- mdnie_info("tune[%d]", mdnie->tune);
- if (mops) {
- if (mdnie->tune == TUNE_FW)
- mops->tune = mdnie_request_fw;
- else
- mops->tune = mdnie_request_tables;
- } else {
- dev_err(&fx_dev->dev, "invalid mdnie mops.\n");
- ret = -EINVAL;
- goto error_restore;
- }
-
- return count;
-
-error_restore:
- mdnie->tune = prev_tune;
- return ret;
-}
-
-static ssize_t show_mdnie_tune(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
- struct s5p_fimd_ext_device *fx_dev = to_fimd_ext_device(dev);
- struct s5p_mdnie *mdnie = fimd_ext_get_drvdata(fx_dev);
-
- mdnie_info("tune[%d]", mdnie->tune);
- return snprintf(buf, PAGE_SIZE, "%d\n", mdnie->tune);
-}
-
-/* sys/devices/platform/mdnie */
-static struct device_attribute mdnie_device_attrs[] = {
- __ATTR(mode, S_IRUGO|S_IWUSR, show_mdnie_mode,
- store_mdnie_mode),
- __ATTR(scenario, S_IRUGO|S_IWUSR, show_mdnie_scenario,
- store_mdnie_scenario),
- __ATTR(tone, S_IRUGO|S_IWUSR, show_mdnie_tone,
- store_mdnie_tone),
- __ATTR(outdoor, S_IRUGO|S_IWUSR, show_mdnie_outdoor,
- store_mdnie_outdoor),
- __ATTR(tune, S_IRUGO|S_IWUSR, show_mdnie_tune,
- store_mdnie_tune),
-};
-
-static int mdnie_probe(struct s5p_fimd_ext_device *fx_dev)
-{
- struct resource *res;
- struct s5p_mdnie *mdnie;
- int ret = -EINVAL;
- int i;
-
- mdnie = kzalloc(sizeof(struct s5p_mdnie), GFP_KERNEL);
- if (!mdnie) {
- dev_err(&fx_dev->dev, "failed to alloc mdnie object.\n");
- return -EFAULT;
- }
-
- mdnie->dev = &fx_dev->dev;
-
- mdnie->pdata = to_mdnie_platform_data(fx_dev);
- if (mdnie->pdata == NULL) {
- dev_err(&fx_dev->dev, "platform_data is NULL.\n");
- return -EFAULT;
- }
-
- res = s5p_fimd_ext_get_resource(fx_dev, IORESOURCE_MEM, 0);
- if (!res) {
- dev_err(&fx_dev->dev, "failed to get io memory region.\n");
- return -EINVAL;
- }
-
- mdnie->regs = ioremap(res->start, resource_size(res));
- if (!mdnie->regs) {
- dev_err(&fx_dev->dev, "failed to remap io region.\n'");
- return -EFAULT;
- }
-
- mdnie->mode = MODE_STANDARD;
- mdnie->scenario = SCENARIO_UI;
- mdnie->tone = TONE_NORMAL;
- mdnie->outdoor = OUTDOOR_OFF;
- mdnie->tune = TUNE_TBL;
- mdnie->mops = &mdnie_set_mops;
-
- mutex_init(&mdnie->lock);
-
- fimd_ext_set_drvdata(fx_dev, mdnie);
-
- for (i = 0; i < ARRAY_SIZE(mdnie_device_attrs); i++) {
- ret = device_create_file(&fx_dev->dev,
- &mdnie_device_attrs[i]);
- if (ret)
- break;
- }
-
- if (ret < 0)
- dev_err(&fx_dev->dev, "failed to add sysfs entries\n");
-
- dev_info(&fx_dev->dev, "mDNIe driver has been probed.\n");
-
- return 0;
-}
-
-static struct s5p_fimd_ext_driver fimd_ext_driver = {
- .driver = {
- .name = "mdnie",
- .owner = THIS_MODULE,
- },
- .probe = mdnie_probe,
- .setup = mdnie_setup,
-};
-
-static int __init mdnie_init(void)
-{
- return s5p_fimd_ext_driver_register(&fimd_ext_driver);
-}
-
-static void __exit mdnie_exit(void)
-{
-}
-
-arch_initcall(mdnie_init);
-module_exit(mdnie_exit);
-
-MODULE_AUTHOR("InKi Dae <inki.dae@samsung.com>");
-MODULE_AUTHOR("Eunchul Kim <chulspro.kim@samsung.com>");
-MODULE_DESCRIPTION("mDNIe Driver");
-MODULE_LICENSE("GPL");
-
diff --git a/drivers/video/samsung_duallcd/extension/mdnie.h b/drivers/video/samsung_duallcd/extension/mdnie.h
deleted file mode 100644
index 145efc1..0000000
--- a/drivers/video/samsung_duallcd/extension/mdnie.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* linux/arch/arm/plat-s5p/mdnie.h
- *
- * mDNIe Platform Specific Header Definitions.
- *
- * Copyright (c) 2011 Samsung Electronics
- * InKi Dae <inki.dae@samsung.com>
- * Eunchul Kim <chulspro.kim@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _MDNIE_H_
-#define _MDNIE_H_
-
-#define MDNIE_MAX_STR 255
-#define MDNIE_FW_PATH "mdnie/%s/%s.bin"
-
-/* set - main, optional */
-enum mdnie_set {
- SET_MAIN = 0,
- SET_OPTIONAL,
- SET_MAX
-};
-
-/* mode - dynamic, standard, natural, movie */
-enum mdnie_mode {
- MODE_DYNAMIC = 0,
- MODE_STANDARD,
- MODE_NATURAL,
- MODE_MOVIE,
- MODE_MAX
-};
-
-/* scenario - ui, gallery, video, vtcall, camera, browser, negative, bypass */
-enum mdnie_scenario {
- SCENARIO_UI = 0,
- SCENARIO_GALLERY,
- SCENARIO_VIDEO,
- SCENARIO_VTCALL,
- SCENARIO_MODE_MAX,
- SCENARIO_CAMERA = SCENARIO_MODE_MAX,
- SCENARIO_BROWSER,
- SCENARIO_NEGATIVE,
- SCENARIO_BYPASS,
- SCENARIO_MAX
-};
-
-/* tone - normal, warm, cold */
-enum mdnie_tone {
- TONE_NORMAL = 0,
- TONE_WARM,
- TONE_COLD,
- TONE_MAX
-};
-
-/* tone browser - tone1, tone2, tone3 */
-enum mdnie_tone_br {
- TONE_1 = 0,
- TONE_2,
- TONE_3,
- TONE_BR_MAX
-};
-
-/* outdoor - off, on */
-enum mdnie_outdoor {
- OUTDOOR_OFF = 0,
- OUTDOOR_ON,
- OUTDOOR_MAX
-};
-
-/* tune - tables, fw */
-enum mdnie_tune {
- TUNE_TBL = 0,
- TUNE_FW,
- TUNE_MAX
-};
-
-/*
- * A main structure for mDNIe.
- *
- * @dev: pointer to device object for sysfs
- * @regs: memory mapped register map
- * @mode: mdnie mode value
- * @scenario: mdnie scenario value
- * @tone: mdnie tone value
- * @outdoor: mdnie outdoor value
- * @lock: lock for request firmware waiting
- * @pdata: platform data of width, height
- * @mops: manager ops
- */
-struct s5p_mdnie {
- struct device *dev;
- void __iomem *regs;
-
- enum mdnie_mode mode;
- enum mdnie_scenario scenario;
- int tone;
- enum mdnie_outdoor outdoor;
- enum mdnie_tune tune;
-
- struct mutex lock;
- struct mdnie_platform_data *pdata;
- struct mdnie_manager_ops *mops;
-};
-
-/**
- * A structure for data tables.
- *
- * @name: table name
- * @value: table value
- * @size: table size
- */
-struct mdnie_tables {
- const char *name;
- const unsigned short *value;
- unsigned int size;
-};
-
-/*
- * mDNIe manager ops.
- *
- * @tune: api of tune settings
- * @commit: api of main,optional settings
- * @check_tone: api of check tone
- */
-struct mdnie_manager_ops {
- int (*tune)(struct s5p_mdnie *mdnie, const char *name);
- int (*commit)(struct s5p_mdnie *mdnie, enum mdnie_set set);
- int (*check_tone)(struct s5p_mdnie *mdnie, int tone);
-};
-
-#endif /* _MDNIE_H_ */
diff --git a/drivers/video/samsung_duallcd/extension/regs-mdnie.h b/drivers/video/samsung_duallcd/extension/regs-mdnie.h
deleted file mode 100644
index a0ec8d7..0000000
--- a/drivers/video/samsung_duallcd/extension/regs-mdnie.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/* linux/arch/arm/plat-s5p/include/plat/regs-mdnie.h
- *
- * Header file for Samsung SoC mDNIe device.
- *
- * Copyright (c) 2010 Samsung Electronics
- *
- * Author : Inki Dae <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _REGS_MDNIE_H
-#define _REGS_MDNIE_H
-
-#define MDNIE_R0 0x0000
-#define MDNIE_R1 0x0004
-#define MDNIE_R2 0x0008
-#define MDNIE_R3 0x000C
-#define MDNIE_R4 0x0010
-#define MDNIE_R5 0x0014
-#define MDNIE_R28 0x00A0
-
-/* R1 */
-#define MDNIE_R1_MCM_BYPASS_MODE (1 << 2)
-#define MDNIE_R1_ALG_DNR_HDTR_MASK (0x3 << 0)
-#define MDNIE_R1_ALG_DNR_HDTR(x) (((x) & 0x3) << 0)
-#define MDNIE_R1_ROI_PCA_OVE (1 << 10)
-#define MDNIE_R1_ROI_HDTR (1 << 9)
-#define MDNIE_R1_ROI_DNR (1 << 8)
-#define MDNIE_R1_ROI_OUTSIDE (1 << 7)
-#define MDNIE_R1_ABC_SEL_MASK (0x3 << 4)
-#define MDNIE_R1_ABC_SEL(x) (((x) & 0x3) << 4)
-
-/* R2 */
-#define MDNIE_R2_H_START_MASK (0x7ff << 0)
-#define MDNIE_R2_H_START(x) (((x) & 0x7ff) << 0)
-
-/* R3 */
-#define MDNIE_R3_WIDTH_MASK (0x7ff << 0)
-
-/* R4 */
-#define MDNIE_R4_HEIGHT_MASK (0x7ff << 0)
-
-/* R5 */
-#define MDNIE_R5_V_END_MASK (0x7ff << 0)
-#define MDNIE_R5_V_END(x) (((x) & 0x7ff) << 0)
-
-/* R6 */
-#define MDNIE_R6_DITHER_ENABLE (1 << 4)
-
-/* R34 */
-#define MDNIE_R34_WIDTH_MASK (0x7ff << 0)
-#define MDNIE_R34_WIDTH(x) (((x) & 0x7ff) << 0)
-
-/* R35 */
-#define MDNIE_R35_HEIGHT_MASK (0x7ff << 0)
-#define MDNIE_R35_HEIGHT(x) (((x) & 0x7ff) << 0)
-
-/* R44 */
-#define MDNIE_R44_DNR_BYPASS_MODE (1 << 14)
-
-/* R58 */
-#define MDNIE_R58_HDTR_BYPASS_MODE (0x1f << 0)
-
-/* R73 */
-#define MDNIE_R73_SN_LVL_MASK (0x3 << 10)
-#define MDNIE_R73_SN_LVL(x) (((x) & 0x3) << 10)
-#define MDNIE_R73_SY_LVL_MASK (0x3 << 8)
-#define MDNIE_R73_SY_LVL(x) (((x) & 0x3) << 8)
-#define MDNIE_R73_GR_LVL_MASK (0x3 << 6)
-#define MDNIE_R73_GR_LVL(x) (((x) & 0x3) << 6)
-#define MDNIE_R73_RD_LVL_MASK (0x3 << 4)
-#define MDNIE_R73_RD_LVL(x) (((x) & 0x3) << 4)
-#define MDNIE_R73_YE_LVL_MASK (0x3 << 2)
-#define MDNIE_R73_YE_LVL(x) (((x) & 0x3) << 2)
-#define MDNIE_R73_PU_LVL_MASK (0x3 << 0)
-#define MDNIE_R73_PU_LVL(x) (((x) & 0x3) << 0)
-
-/* R82 */
-#define MDNIE_R82_SN_CC_OFF (1 << 5)
-#define MDNIE_R82_SY_CC_OFF (1 << 4)
-#define MDNIE_R82_GR_CC_OFF (1 << 3)
-#define MDNIE_R82_RD_CC_OFF (1 << 2)
-#define MDNIE_R82_YE_CC_OFF (1 << 1)
-#define MDNIE_R82_PU_CC_OFF (1 << 0)
-
-/* R84 */
-#define MDNIE_R84_LIGHT_P_MASK (0xff << 8)
-#define MDNIE_R84_LIGHT_P(x) (((x) & 0xff) << 8)
-#define MDNIE_R84_CHROMA_P_MASK (0xff << 0)
-#define MDNIE_R84_CHROMA_P(x) (((x) & 0xff) << 0)
-
-/* R91 */
-#define MDNIE_R91_QUADRANT_ON (1 << 8)
-#define MDNIE_R91_COLOR_TEMP_DEST_MASK (0xff << 0)
-#define MDNIE_R91_COLOR_TEMP_DEST(x) (((x) & 0xff) << 0)
-
-/* R106 */
-#define MDNIE_R106_QUADRANT_TMP1_MASK (0xff << 8)
-#define MDNIE_R106_QUADRANT_TMP1(x) (((x) & 0xff) << 8)
-#define MDNIE_R106_QUADRANT_TMP2_MASK (0xff << 0)
-#define MDNIE_R106_QUADRANT_TMP2(x) (((x) & 0xff) << 0)
-
-/* R107 */
-#define MDNIE_R107_QUADRANT_TMP3_MASK (0xff << 8)
-#define MDNIE_R107_QUADRANT_TMP3(x) (((x) & 0xff) << 8)
-#define MDNIE_R107_QUADRANT_TMP4_MASK (0xff << 0)
-#define MDNIE_R107_QUADRANT_TMP4(x) (((x) & 0xff) << 0)
-
-/* R124 */
-#define MDNIE_R124_CABC_BLU_ENABLE (1 << 1)
-#define MDNIE_R124_DISPLAY_SEL_OLED (1 << 0)
-
-/* R125 */
-#define MDNIE_R125_ALS_FLAG_UPDATED (1 << 0)
-
-/* R126 */
-#define MDNIE_R126_ALS_DATA_MASK (0xffff << 0)
-#define MDNIE_R126_ALS_DATA(x) (((x) & 0xffff) << 0)
-
-/* R127 */
-#define MDNIE_R127_WIN_SIZE_MASK (0xf << 4)
-#define MDNIE_R127_WIN_SIZE(x) (((x) & 0xf) << 4)
-#define MDNIE_R127_ALS_MODE_MASK (0x3 << 0)
-#define MDNIE_R127_ALS_MODE(x) (((x) & 0x3) << 0)
-
-/* R130 */
-#define MDNIE_R130_AMB_LVL_MASK (0x4 << 0)
-#define MDNIE_R130_AMB_LVL(x) (((x) & 0x4) << 0)
-
-/* R179 */
-#define MDNIE_R179_UP_SL_MASK (0xff << 8)
-#define MDNIE_R179_UP_SL(x) (((x) & 0xff) << 8)
-#define MDNIE_R179_DOWN_SL_MASK (0xff << 0)
-#define MDNIE_R179_DOWN_SL(x) (((x) & 0xff) << 0)
-
-/* R180 */
-#define MDNIE_R180_PWM_CE_PWM_COEFF (1 << 15)
-#define MDNIE_R180_POLARITY_HIGH_ACTIVE (1 << 14)
-#define MDNIE_R180_LABC_MODE_MASK (0x3 << 12)
-#define MDNIE_R180_LABC_MODE(x) (((x) & 0x3) << 12)
-#define MDNIE_R180_ALC_EN (1 << 11)
-#define MDNIE_R180_PWM_COEFF_COUNT_MASK (0x7ff << 0)
-#define MDNIE_R180_PWM_COEFF_COUNT(x) (((x) & 0x7ff) << 0)
-
-/* R238 */
-#define MDNIE_R238_ROI_DITHER (1 << 15)
-#define MDNIE_R238_ROI_OUTSIDE (1 << 14)
-#define MDNIE_R238_H_START_MASK (0x7ff << 0)
-#define MDNIE_R238_H_START(x) (((x) & 0x7ff) << 0)
-
-/* R239 */
-#define MDNIE_R239_H_END_MASK (0x7ff << 0)
-#define MDNIE_R239_H_END(x) (((x) & 0x7ff) << 0)
-
-/* R240 */
-#define MDNIE_R240_V_START_MASK (0x7ff << 0)
-#define MDNIE_R240_V_START(x) (((x) & 0x7ff) << 0)
-
-/* R241 */
-#define MDNIE_R241_V_END_MASK (0x7ff << 0)
-#define MDNIE_R241_V_END(x) (((x) & 0x7ff) << 0)
-
-#endif
diff --git a/drivers/video/samsung_duallcd/extension/regs_fimd_lite.h b/drivers/video/samsung_duallcd/extension/regs_fimd_lite.h
deleted file mode 100644
index fda0d2a..0000000
--- a/drivers/video/samsung_duallcd/extension/regs_fimd_lite.h
+++ /dev/null
@@ -1,396 +0,0 @@
-/* linux/asm/arch/regs-ielcd.h
- *
- * Register definition file for Samsung Display Controller (FIMD-lite) driver
- *
- * InKi Dae, <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _REGS_IELCD_H
-#define _REGS_IELCD_H
-
-#define S5P_LCDREG(x) (x)
-#define S5P_WINCON(x) S5P_LCDREG(0x0020 + (x * 0x04))
-#define S5P_VIDOSD_A(x) S5P_LCDREG(0x0040 + (x * 0x10))
-#define S5P_VIDOSD_B(x) S5P_LCDREG(0x0044 + (x * 0x10))
-#define S5P_VIDOSD_C(x) S5P_LCDREG(0x0048 + (x * 0x10))
-#define S5P_VIDOSD_D(x) S5P_LCDREG(0x004C + (x * 0x10))
-#define S5P_VIDADDR_START0(x) S5P_LCDREG(0x00A0 + (x * 0x08))
-#define S5P_VIDADDR_START1(x) S5P_LCDREG(0x00A4 + (x * 0x08))
-#define S5P_VIDADDR_END0(x) S5P_LCDREG(0x00D0 + (x * 0x08))
-#define S5P_VIDADDR_END1(x) S5P_LCDREG(0x00D4 + (x * 0x08))
-#define S5P_VIDADDR_SIZE(x) S5P_LCDREG(0x0100 + (x * 0x04))
-#define S5P_KEYCON(x) S5P_LCDREG(0x0140 + ((x - 1) * 0x08))
-#define S5P_KEYVAL(x) S5P_LCDREG(0x0144 + ((x - 1) * 0x08))
-
-/*
- * Register Map
-*/
-#define S5P_VIDCON0 S5P_LCDREG(0x0000)
-#define S5P_VIDCON1 S5P_LCDREG(0x0004)
-#define S5P_VIDCON2 S5P_LCDREG(0x0008)
-#define S5P_PRTCON S5P_LCDREG(0x000C)
-
-#define S5P_VIDTCON0 S5P_LCDREG(0x0010)
-#define S5P_VIDTCON1 S5P_LCDREG(0x0014)
-#define S5P_VIDTCON2 S5P_LCDREG(0x0018)
-#define S5P_VIDTCON3 S5P_LCDREG(0x001C)
-
-#define S5P_WINCON0 S5P_LCDREG(0x0020)
-#define S5P_WINCON1 S5P_LCDREG(0x0024)
-#define S5P_WINCON2 S5P_LCDREG(0x0028)
-#define S5P_WINCON3 S5P_LCDREG(0x002C)
-#define S5P_WINCON4 S5P_LCDREG(0x0030)
-
-#define S5P_VIDOSD0A S5P_LCDREG(0x0040)
-#define S5P_VIDOSD0B S5P_LCDREG(0x0044)
-#define S5P_VIDOSD0C S5P_LCDREG(0x0048)
-
-#define S5P_VIDOSD1A S5P_LCDREG(0x0050)
-#define S5P_VIDOSD1B S5P_LCDREG(0x0054)
-#define S5P_VIDOSD1C S5P_LCDREG(0x0058)
-#define S5P_VIDOSD1D S5P_LCDREG(0x005C)
-
-#define S5P_VIDOSD2A S5P_LCDREG(0x0060)
-#define S5P_VIDOSD2B S5P_LCDREG(0x0064)
-#define S5P_VIDOSD2C S5P_LCDREG(0x0068)
-#define S5P_VIDOSD2D S5P_LCDREG(0x006C)
-
-#define S5P_VIDOSD3A S5P_LCDREG(0x0070)
-#define S5P_VIDOSD3B S5P_LCDREG(0x0074)
-#define S5P_VIDOSD3C S5P_LCDREG(0x0078)
-
-#define S5P_VIDOSD4A S5P_LCDREG(0x0080)
-#define S5P_VIDOSD4B S5P_LCDREG(0x0084)
-#define S5P_VIDOSD4C S5P_LCDREG(0x0088)
-
-#define S5P_VIDW00ADD0B0 S5P_LCDREG(0x00A0)
-#define S5P_VIDW00ADD0B1 S5P_LCDREG(0x00A4)
-#define S5P_VIDW01ADD0B0 S5P_LCDREG(0x00A8)
-#define S5P_VIDW01ADD0B1 S5P_LCDREG(0x00AC)
-#define S5P_VIDW02ADD0 S5P_LCDREG(0x00B0)
-#define S5P_VIDW03ADD0 S5P_LCDREG(0x00B8)
-#define S5P_VIDW04ADD0 S5P_LCDREG(0x00C0)
-#define S5P_VIDW00ADD1B0 S5P_LCDREG(0x00D0)
-#define S5P_VIDW00ADD1B1 S5P_LCDREG(0x00D4)
-#define S5P_VIDW01ADD1B0 S5P_LCDREG(0x00D8)
-#define S5P_VIDW01ADD1B1 S5P_LCDREG(0x00DC)
-#define S5P_VIDW02ADD1 S5P_LCDREG(0x00E0)
-#define S5P_VIDW03ADD1 S5P_LCDREG(0x00E8)
-#define S5P_VIDW04ADD1 S5P_LCDREG(0x00F0)
-#define S5P_VIDW00ADD2 S5P_LCDREG(0x0100)
-#define S5P_VIDW01ADD2 S5P_LCDREG(0x0104)
-#define S5P_VIDW02ADD2 S5P_LCDREG(0x0108)
-#define S5P_VIDW03ADD2 S5P_LCDREG(0x010C)
-#define S5P_VIDW04ADD2 S5P_LCDREG(0x0110)
-
-#define S5P_VP1TCON0 S5P_LCDREG(0x0118)
-#define S5P_VP1TCON1 S5P_LCDREG(0x011C)
-
-#define S5P_VIDINTCON0 S5P_LCDREG(0x0130)
-#define S5P_VIDINTCON1 S5P_LCDREG(0x0134)
-
-#define S5P_W1KEYCON0 S5P_LCDREG(0x0140) /* Color key control */
-#define S5P_W1KEYCON1 S5P_LCDREG(0x0144)
-#define S5P_W2KEYCON0 S5P_LCDREG(0x0148)
-#define S5P_W2KEYCON1 S5P_LCDREG(0x014C)
-#define S5P_W3KEYCON0 S5P_LCDREG(0x0150)
-#define S5P_W3KEYCON1 S5P_LCDREG(0x0154)
-#define S5P_W4KEYCON0 S5P_LCDREG(0x0158)
-#define S5P_W4KEYCON1 S5P_LCDREG(0x015C)
-
-#define S5P_W1KEYALPHA S5P_LCDREG(0x0160)
-#define S5P_W2KEYALPHA S5P_LCDREG(0x0164)
-#define S5P_W3KEYALPHA S5P_LCDREG(0x0168)
-#define S5P_W4KEYALPHA S5P_LCDREG(0x016C)
-
-#define S5P_DITHMODE S5P_LCDREG(0x0170)
-
-#define S5P_WIN0MAP S5P_LCDREG(0x0180)
-#define S5P_WIN1MAP S5P_LCDREG(0x0184)
-#define S5P_WIN2MAP S5P_LCDREG(0x0188)
-#define S5P_WIN3MAP S5P_LCDREG(0x018C)
-#define S5P_WIN4MAP S5P_LCDREG(0x0190)
-
-#define S5P_WPALCON_H S5P_LCDREG(0x019C)
-#define S5P_WPALCON_L S5P_LCDREG(0x01A0)
-
-#define S5P_VIDW0ALPHA0 S5P_LCDREG(0x0200)
-#define S5P_VIDW0ALPHA1 S5P_LCDREG(0x0204)
-#define S5P_VIDW1ALPHA0 S5P_LCDREG(0x0208)
-#define S5P_VIDW1ALPHA1 S5P_LCDREG(0x020C)
-#define S5P_VIDW2ALPHA0 S5P_LCDREG(0x0210)
-#define S5P_VIDW2ALPHA1 S5P_LCDREG(0x0214)
-#define S5P_VIDW3ALPHA0 S5P_LCDREG(0x0218)
-#define S5P_VIDW3ALPHA1 S5P_LCDREG(0x021C)
-#define S5P_VIDW4ALPHA0 S5P_LCDREG(0x0220)
-#define S5P_VIDW4ALPHA1 S5P_LCDREG(0x0224)
-
-#define S5P_BLENDEQ1 S5P_LCDREG(0x0244)
-#define S5P_BLENDEQ2 S5P_LCDREG(0x0248)
-#define S5P_BLENDEQ3 S5P_LCDREG(0x024C)
-#define S5P_BLENDEQ4 S5P_LCDREG(0x0250)
-#define S5P_BLENDCON S5P_LCDREG(0x0260) /* Blending control */
-#define S5P_GPOUTCON0 S5P_LCDREG(0x0278) /* mDNIe */
-#define S5P_DUALRGB S5P_LCDREG(0x027C) /* DUALRGB Register */
-
-/*
- * Bit Definitions
-*/
-
-/* VIDCON0 */
-#define S5P_VIDCON0_DSI_DISABLE (0 << 30)
-#define S5P_VIDCON0_DSI_ENABLE (1 << 30)
-#define S5P_VIDCON0_SCAN_PROGRESSIVE (0 << 29)
-#define S5P_VIDCON0_SCAN_INTERLACE (1 << 29)
-#define S5P_VIDCON0_SCAN_MASK (1 << 29)
-#define S5P_VIDCON0_VIDOUT_RGB (0 << 26)
-#define S5P_VIDCON0_VIDOUT_ITU (1 << 26)
-#define S5P_VIDCON0_VIDOUT_I80LDI0 (2 << 26)
-#define S5P_VIDCON0_VIDOUT_I80LDI1 (3 << 26)
-#define S5P_VIDCON0_VIDOUT_MASK (3 << 26)
-#define S5P_VIDCON0_PNRMODE_RGB_P (0 << 17)
-#define S5P_VIDCON0_PNRMODE_BGR_P (1 << 17)
-#define S5P_VIDCON0_PNRMODE_RGB_S (2 << 17)
-#define S5P_VIDCON0_PNRMODE_BGR_S (3 << 17)
-#define S5P_VIDCON0_PNRMODE_MASK (3 << 17)
-#define S5P_VIDCON0_PNRMODE_SHIFT (17)
-#define S5P_VIDCON0_CLKVALUP_ALWAYS (0 << 16)
-#define S5P_VIDCON0_CLKVALUP_START_FRAME (1 << 16)
-#define S5P_VIDCON0_CLKVALUP_MASK (1 << 16)
-#define S5P_VIDCON0_CLKVAL_F(x) (((x) & 0xff) << 6)
-#define S5P_VIDCON0_VCLKEN_NORMAL (0 << 5)
-#define S5P_VIDCON0_VCLKEN_FREERUN (1 << 5)
-#define S5P_VIDCON0_VCLKEN_MASK (1 << 5)
-#define S5P_VIDCON0_CLKDIR_DIRECTED (0 << 4)
-#define S5P_VIDCON0_CLKDIR_DIVIDED (1 << 4)
-#define S5P_VIDCON0_CLKDIR_MASK (1 << 4)
-#define S5P_VIDCON0_CLKSEL_HCLK (0 << 2)
-#define S5P_VIDCON0_CLKSEL_SCLK (1 << 2)
-#define S5P_VIDCON0_CLKSEL_MASK (1 << 2)
-#define S5P_VIDCON0_ENVID_ENABLE (1 << 1)
-#define S5P_VIDCON0_ENVID_DISABLE (0 << 1)
-#define S5P_VIDCON0_ENVID_F_ENABLE (1 << 0)
-#define S5P_VIDCON0_ENVID_F_DISABLE (0 << 0)
-
-/* VIDCON1 */
-
-#define S5P_VIDCON1_VSTATUS_VSYNC 0x0
-#define S5P_VIDCON1_VSTATUS_BACKPORCH 0x1
-#define S5P_VIDCON1_VSTATUS_ACTIVE 0x2
-#define S5P_VIDCON1_VSTATUS_FRONTPORCH 0x3
-#define S5P_VIDCON1_VSTATUS_MASK 0x3
-
-#define S5P_VIDCON1_FIXVCLK_VDEN_DISABLE (3 << 9)
-#define S5P_VIDCON1_FIXVCLK_RUNNING (1 << 9)
-#define S5P_VIDCON1_FIXVCLK_HOLD (0 << 9)
-#define S5P_VIDCON1_IVCLK_FALLING_EDGE (0 << 7)
-#define S5P_VIDCON1_IVCLK_RISING_EDGE (1 << 7)
-#define S5P_VIDCON1_IHSYNC_NORMAL (0 << 6)
-#define S5P_VIDCON1_IHSYNC_INVERT (1 << 6)
-#define S5P_VIDCON1_IVSYNC_NORMAL (0 << 5)
-#define S5P_VIDCON1_IVSYNC_INVERT (1 << 5)
-#define S5P_VIDCON1_IVDEN_NORMAL (0 << 4)
-#define S5P_VIDCON1_IVDEN_INVERT (1 << 4)
-
-/* VIDCON2 */
-#define S5P_VIDCON2_EN601_DISABLE (0 << 23)
-#define S5P_VIDCON2_EN601_ENABLE (1 << 23)
-#define S5P_VIDCON2_EN601_MASK (1 << 23)
-#define S5P_VIDCON2_ORGYUV_YCBCR (0 << 8)
-#define S5P_VIDCON2_ORGYUV_CBCRY (1 << 8)
-#define S5P_VIDCON2_ORGYUV_MASK (1 << 8)
-#define S5P_VIDCON2_YUVORD_CBCR (0 << 7)
-#define S5P_VIDCON2_YUVORD_CRCB (1 << 7)
-#define S5P_VIDCON2_YUVORD_MASK (1 << 7)
-
-/* PRTCON */
-#define S5P_PRTCON_UPDATABLE (0 << 11)
-#define S5P_PRTCON_PROTECT (1 << 11)
-
-/* VIDTCON0 */
-#define S5P_VIDTCON0_VBPDE(x) (((x) & 0xff) << 24)
-#define S5P_VIDTCON0_VBPD(x) (((x) & 0xff) << 16)
-#define S5P_VIDTCON0_VFPD(x) (((x) & 0xff) << 8)
-#define S5P_VIDTCON0_VSPW(x) (((x) & 0xff) << 0)
-
-/* VIDTCON1 */
-#define S5P_VIDTCON1_VFPDE(x) (((x) & 0xff) << 24)
-#define S5P_VIDTCON1_HBPD(x) (((x) & 0xff) << 16)
-#define S5P_VIDTCON1_HFPD(x) (((x) & 0xff) << 8)
-#define S5P_VIDTCON1_HSPW(x) (((x) & 0xff) << 0)
-
-/* VIDTCON2 */
-#define S5P_VIDTCON2_LINEVAL(x) (((x) & 0x7ff) << 11)
-#define S5P_VIDTCON2_HOZVAL(x) (((x) & 0x7ff) << 0)
-
-/* VIDTCON3 */
-#define S5P_VIDTCON3_VSYNCEN (1 << 31)
-#define S5P_VIDTCON3_FRMEN (1 << 29)
-#define S5P_VIDTCON3_FRMVRATE(x) ((x) << 24)
-
-/* Window 0~4 Control - WINCONx */
-#define S5P_WINCON_DATAPATH_DMA (0 << 22)
-#define S5P_WINCON_DATAPATH_LOCAL (1 << 22)
-#define S5P_WINCON_DATAPATH_MASK (1 << 22)
-#define S5P_WINCON_BUFSEL_0 (0 << 20)
-#define S5P_WINCON_BUFSEL_1 (1 << 20)
-#define S5P_WINCON_BUFSEL_MASK (1 << 20)
-#define S5P_WINCON_BUFSEL_SHIFT (20)
-#define S5P_WINCON_BUFAUTO_DISABLE (0 << 19)
-#define S5P_WINCON_BUFAUTO_ENABLE (1 << 19)
-#define S5P_WINCON_BUFAUTO_MASK (1 << 19)
-#define S5P_WINCON_BITSWP_DISABLE (0 << 18)
-#define S5P_WINCON_BITSWP_ENABLE (1 << 18)
-#define S5P_WINCON_BITSWP_SHIFT (18)
-#define S5P_WINCON_BYTESWP_DISABLE (0 << 17)
-#define S5P_WINCON_BYTESWP_ENABLE (1 << 17)
-#define S5P_WINCON_BYTESWP_SHIFT (17)
-#define S5P_WINCON_HAWSWP_DISABLE (0 << 16)
-#define S5P_WINCON_HAWSWP_ENABLE (1 << 16)
-#define S5P_WINCON_HAWSWP_SHIFT (16)
-#define S5P_WINCON_WSWP_DISABLE (0 << 15)
-#define S5P_WINCON_WSWP_ENABLE (1 << 15)
-#define S5P_WINCON_WSWP_SHIFT (15)
-#define S5P_WINCON_INRGB_RGB (0 << 13)
-#define S5P_WINCON_INRGB_YUV (1 << 13)
-#define S5P_WINCON_INRGB_MASK (1 << 13)
-#define S5P_WINCON_BURSTLEN_16WORD (0 << 9)
-#define S5P_WINCON_BURSTLEN_8WORD (1 << 9)
-#define S5P_WINCON_BURSTLEN_4WORD (2 << 9)
-#define S5P_WINCON_BURSTLEN_MASK (3 << 9)
-#define S5P_WINCON_ALPHA_MULTI_DISABLE (0 << 7)
-#define S5P_WINCON_ALPHA_MULTI_ENABLE (1 << 7)
-#define S5P_WINCON_BLD_PLANE (0 << 6)
-#define S5P_WINCON_BLD_PIXEL (1 << 6)
-#define S5P_WINCON_BLD_MASK (1 << 6)
-#define S5P_WINCON_BPPMODE_1BPP (0 << 2)
-#define S5P_WINCON_BPPMODE_2BPP (1 << 2)
-#define S5P_WINCON_BPPMODE_4BPP (2 << 2)
-#define S5P_WINCON_BPPMODE_8BPP_PAL (3 << 2)
-#define S5P_WINCON_BPPMODE_8BPP (4 << 2)
-#define S5P_WINCON_BPPMODE_16BPP_565 (5 << 2)
-#define S5P_WINCON_BPPMODE_16BPP_A555 (6 << 2)
-#define S5P_WINCON_BPPMODE_18BPP_666 (8 << 2)
-#define S5P_WINCON_BPPMODE_18BPP_A665 (9 << 2)
-#define S5P_WINCON_BPPMODE_24BPP_888 (0xb << 2)
-#define S5P_WINCON_BPPMODE_24BPP_A887 (0xc << 2)
-#define S5P_WINCON_BPPMODE_32BPP (0xd << 2)
-#define S5P_WINCON_BPPMODE_16BPP_A444 (0xe << 2)
-#define S5P_WINCON_BPPMODE_15BPP_555 (0xf << 2)
-#define S5P_WINCON_BPPMODE_MASK (0xf << 2)
-#define S5P_WINCON_BPPMODE_SHIFT (2)
-#define S5P_WINCON_ALPHA0_SEL (0 << 1)
-#define S5P_WINCON_ALPHA1_SEL (1 << 1)
-#define S5P_WINCON_ALPHA_SEL_MASK (1 << 1)
-#define S5P_WINCON_ENWIN_DISABLE (0 << 0)
-#define S5P_WINCON_ENWIN_ENABLE (1 << 0)
-
-/* WINCON1 special */
-#define S5P_WINCON1_VP_DISABLE (0 << 24)
-#define S5P_WINCON1_VP_ENABLE (1 << 24)
-#define S5P_WINCON1_LOCALSEL_FIMC1 (0 << 23)
-#define S5P_WINCON1_LOCALSEL_VP (1 << 23)
-#define S5P_WINCON1_LOCALSEL_MASK (1 << 23)
-
-/* VIDOSDxA, VIDOSDxB */
-#define S5P_VIDOSD_LEFT_X(x) (((x) & 0x7ff) << 11)
-#define S5P_VIDOSD_TOP_Y(x) (((x) & 0x7ff) << 0)
-#define S5P_VIDOSD_RIGHT_X(x) (((x) & 0x7ff) << 11)
-#define S5P_VIDOSD_BOTTOM_Y(x) (((x) & 0x7ff) << 0)
-
-/* VIDOSD0C, VIDOSDxD */
-#define S5P_VIDOSD_SIZE(x) (((x) & 0xffffff) << 0)
-
-/* VIDOSDxC (1~4) */
-#define S5P_VIDOSD_ALPHA0_R(x) (((x) & 0xf) << 20)
-#define S5P_VIDOSD_ALPHA0_G(x) (((x) & 0xf) << 16)
-#define S5P_VIDOSD_ALPHA0_B(x) (((x) & 0xf) << 12)
-#define S5P_VIDOSD_ALPHA1_R(x) (((x) & 0xf) << 8)
-#define S5P_VIDOSD_ALPHA1_G(x) (((x) & 0xf) << 4)
-#define S5P_VIDOSD_ALPHA1_B(x) (((x) & 0xf) << 0)
-#define S5P_VIDOSD_ALPHA0_SHIFT (12)
-#define S5P_VIDOSD_ALPHA1_SHIFT (0)
-
-/* Start Address */
-#define S5P_VIDADDR_START_VBANK(x) (((x) & 0xff) << 24)
-#define S5P_VIDADDR_START_VBASEU(x) (((x) & 0xffffff) << 0)
-
-/* End Address */
-#define S5P_VIDADDR_END_VBASEL(x) (((x) & 0xffffff) << 0)
-
-/* Buffer Size */
-#define S5P_VIDADDR_OFFSIZE(x) (((x) & 0x1fff) << 13)
-#define S5P_VIDADDR_PAGEWIDTH(x) (((x) & 0x1fff) << 0)
-
-/* VIDINTCON0 */
-#define S5P_VIDINTCON0_SYSMAINCON_DISABLE (0 << 19)
-#define S5P_VIDINTCON0_SYSMAINCON_ENABLE (1 << 19)
-#define S5P_VIDINTCON0_SYSSUBCON_DISABLE (0 << 18)
-#define S5P_VIDINTCON0_SYSSUBCON_ENABLE (1 << 18)
-#define S5P_VIDINTCON0_SYSIFDONE_DISABLE (0 << 17)
-#define S5P_VIDINTCON0_SYSIFDONE_ENABLE (1 << 17)
-#define S5P_VIDINTCON0_FRAMESEL0_BACK (0 << 15)
-#define S5P_VIDINTCON0_FRAMESEL0_VSYNC (1 << 15)
-#define S5P_VIDINTCON0_FRAMESEL0_ACTIVE (2 << 15)
-#define S5P_VIDINTCON0_FRAMESEL0_FRONT (3 << 15)
-#define S5P_VIDINTCON0_FRAMESEL0_MASK (3 << 15)
-#define S5P_VIDINTCON0_FRAMESEL1_NONE (0 << 13)
-#define S5P_VIDINTCON0_FRAMESEL1_BACK (1 << 13)
-#define S5P_VIDINTCON0_FRAMESEL1_VSYNC (2 << 13)
-#define S5P_VIDINTCON0_FRAMESEL1_FRONT (3 << 13)
-#define S5P_VIDINTCON0_INTFRMEN_DISABLE (0 << 12)
-#define S5P_VIDINTCON0_INTFRMEN_ENABLE (1 << 12)
-#define S5P_VIDINTCON0_FIFOSEL_WIN4 (1 << 11)
-#define S5P_VIDINTCON0_FIFOSEL_WIN3 (1 << 10)
-#define S5P_VIDINTCON0_FIFOSEL_WIN2 (1 << 9)
-#define S5P_VIDINTCON0_FIFOSEL_WIN1 (1 << 6)
-#define S5P_VIDINTCON0_FIFOSEL_WIN0 (1 << 5)
-#define S5P_VIDINTCON0_FIFOSEL_ALL (0x73 << 5)
-#define S5P_VIDINTCON0_FIFOSEL_MASK (0x73 << 5)
-#define S5P_VIDINTCON0_FIFOLEVEL_25 (0 << 2)
-#define S5P_VIDINTCON0_FIFOLEVEL_50 (1 << 2)
-#define S5P_VIDINTCON0_FIFOLEVEL_75 (2 << 2)
-#define S5P_VIDINTCON0_FIFOLEVEL_EMPTY (3 << 2)
-#define S5P_VIDINTCON0_FIFOLEVEL_FULL (4 << 2)
-#define S5P_VIDINTCON0_FIFOLEVEL_MASK (7 << 2)
-#define S5P_VIDINTCON0_INTFIFO_DISABLE (0 << 1)
-#define S5P_VIDINTCON0_INTFIFO_ENABLE (1 << 1)
-#define S5P_VIDINTCON0_INT_DISABLE (0 << 0)
-#define S5P_VIDINTCON0_INT_ENABLE (1 << 0)
-#define S5P_VIDINTCON0_INT_MASK (1 << 0)
-
-/* VIDINTCON1 */
-#define S5P_VIDINTCON1_INTVPPEND (1 << 5)
-#define S5P_VIDINTCON1_INTI80PEND (1 << 2)
-#define S5P_VIDINTCON1_INTFRMPEND (1 << 1)
-#define S5P_VIDINTCON1_INTFIFOPEND (1 << 0)
-
-/* WxKEYCON0 (1~4) */
-#define S5P_KEYCON0_KEYBLEN_DISABLE (0 << 26)
-#define S5P_KEYCON0_KEYBLEN_ENABLE (1 << 26)
-#define S5P_KEYCON0_KEY_DISABLEi (0 << 25)
-#define S5P_KEYCON0_KEY_ENABLE (1 << 25)
-#define S5P_KEYCON0_DIRCON_MATCH_FG (0 << 24)
-#define S5P_KEYCON0_DIRCON_MATCH_BG (1 << 24)
-#define S5P_KEYCON0_COMPKEY(x) (((x) & 0xffffff) << 0)
-
-/* WxKEYCON1 (1~4) */
-#define S5P_KEYCON1_COLVAL(x) (((x) & 0xffffff) << 0)
-
-/* DUALRGB */
-#define S5P_DUALRGB_BYPASS_SINGLE (0x00 << 0)
-#define S5P_DUALRGB_BYPASS_DUAL (0x01 << 0)
-#define S5P_DUALRGB_MIE_DUAL (0x10 << 0)
-#define S5P_DUALRGB_MIE_SINGLE (0x11 << 0)
-#define S5P_DUALRGB_LINESPLIT (0x0 << 2)
-#define S5P_DUALRGB_FRAMESPLIT (0x1 << 2)
-#define S5P_DUALRGB_SUB_CNT(x) ((x & 0xfff) << 4)
-#define S5P_DUALRGB_VDEN_EN_DISABLE (0x0 << 16)
-#define S5P_DUALRGB_VDEN_EN_ENABLE (0x1 << 16)
-#define S5P_DUALRGB_MAIN_CNT(x) ((x & 0xfff) << 18)
-
-#endif /* _REGS_IELCD_H */
diff --git a/drivers/video/samsung_duallcd/extension/s5p_fimd_ext.c b/drivers/video/samsung_duallcd/extension/s5p_fimd_ext.c
deleted file mode 100644
index 0c197b6..0000000
--- a/drivers/video/samsung_duallcd/extension/s5p_fimd_ext.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/* linux/drivers/video/samsung/s5p_fimd_ext.c
- *
- * Samsung SoC FIMD Extension Device Framework.
- *
- * Inki Dae <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/types.h>
-#include <linux/mutex.h>
-#include <linux/slab.h>
-#include <linux/platform_device.h>
-
-#include <plat/fimd_lite_ext.h>
-
-#include "s5p_fimd_ext.h"
-
-struct s5p_fimd_ext {
- struct list_head list;
- struct device *dev;
-};
-
-static LIST_HEAD(fimd_ext_list);
-static DEFINE_MUTEX(fimd_ext_lock);
-
-struct s5p_fimd_ext_device *to_fimd_ext_device(struct device *dev)
-{
- return dev ? container_of(dev, struct s5p_fimd_ext_device, dev) : NULL;
-}
-EXPORT_SYMBOL(to_fimd_ext_device);
-
-struct s5p_fimd_ext_driver *to_fimd_ext_driver(struct device_driver *drv)
-{
- return drv ? container_of(drv, struct s5p_fimd_ext_driver, driver) :
- NULL;
-}
-EXPORT_SYMBOL(to_fimd_ext_driver);
-
-static ssize_t modalias_show(struct device *dev, struct device_attribute *a,
- char *buf)
-{
- struct s5p_fimd_ext_device *fx_dev = to_fimd_ext_device(dev);
- int len = snprintf(buf, PAGE_SIZE, "platform:%s\n", fx_dev->name);
-
- return (len >= PAGE_SIZE) ? (PAGE_SIZE - 1) : len;
-}
-
-static struct device_attribute s5p_fimd_ext_dev_attrs[] = {
- __ATTR_RO(modalias),
- __ATTR_NULL,
-};
-
-static int s5p_fimd_ext_match_device(struct device *dev,
- struct device_driver *drv)
-{
- const struct s5p_fimd_ext_device *fx_dev = to_fimd_ext_device(dev);
- const struct s5p_fimd_ext_driver *fx_drv = to_fimd_ext_driver(drv);
-
- return strcmp(fx_dev->name, fx_drv->driver.name) == 0;
-}
-
-struct bus_type s5p_fimd_ext_bus_type = {
- .name = "fimd_ext",
- .dev_attrs = s5p_fimd_ext_dev_attrs,
- .match = s5p_fimd_ext_match_device,
-};
-
-static int s5p_fimd_ext_drv_probe(struct device *dev)
-{
- const struct s5p_fimd_ext_driver *fx_drv =
- to_fimd_ext_driver(dev->driver);
-
- return fx_drv->probe(to_fimd_ext_device(dev));
-}
-
-struct resource *s5p_fimd_ext_get_resource(struct s5p_fimd_ext_device *fx_dev,
- unsigned int type, unsigned int num)
-{
- int i;
-
- for (i = 0; i < fx_dev->num_resources; i++) {
- struct resource *r = &fx_dev->resource[i];
-
- if (type == resource_type(r) && num-- == 0)
- return r;
- }
-
- return NULL;
-}
-
-int s5p_fimd_ext_get_irq(struct s5p_fimd_ext_device *fx_dev, unsigned int num)
-{
- struct resource *r = s5p_fimd_ext_get_resource(fx_dev,
- IORESOURCE_IRQ, num);
-
- return r ? r->start : -ENXIO;
-}
-
-int s5p_fimd_ext_device_register(struct s5p_fimd_ext_device *fx_dev)
-{
- struct s5p_fimd_ext *fimd_ext;
- int i, ret = 0;
-
- fimd_ext = kzalloc(sizeof(struct s5p_fimd_ext), GFP_KERNEL);
- if (!fimd_ext) {
- printk(KERN_ERR "failed to allocate fimd_ext object.\n");
- return -EFAULT;
- }
-
- fimd_ext->dev = &fx_dev->dev;
-
- device_initialize(&fx_dev->dev);
-
- if (!fx_dev->dev.parent)
- fx_dev->dev.parent = &platform_bus;
-
- fx_dev->dev.bus = &s5p_fimd_ext_bus_type;
-
- if (fx_dev->id != -1)
- dev_set_name(&fx_dev->dev, "%s.%d", fx_dev->name, fx_dev->id);
- else
- dev_set_name(&fx_dev->dev, "%s", fx_dev->name);
-
- for (i = 0; i < fx_dev->num_resources; i++) {
- struct resource *r = &fx_dev->resource[i];
-
- if (r->name == NULL)
- r->name = dev_name(&fx_dev->dev);
- }
-
- ret = device_add(&fx_dev->dev);
- if (ret == 0) {
- mutex_lock(&fimd_ext_lock);
- list_add_tail(&fimd_ext->list, &fimd_ext_list);
- mutex_unlock(&fimd_ext_lock);
-
- return ret;
- }
-
- kfree(fimd_ext);
-
- return ret;
-}
-EXPORT_SYMBOL(s5p_fimd_ext_device_register);
-
-int s5p_fimd_ext_driver_register(struct s5p_fimd_ext_driver *fx_drv)
-{
- fx_drv->driver.bus = &s5p_fimd_ext_bus_type;
- if (fx_drv->probe)
- fx_drv->driver.probe = s5p_fimd_ext_drv_probe;
-
- /* add some callbacks here. */
-
- printk(KERN_DEBUG "registered a driver(%s) to fimd_ext driver.\n",
- fx_drv->driver.name);
-
- return driver_register(&fx_drv->driver);
-}
-EXPORT_SYMBOL(s5p_fimd_ext_driver_register);
-
-struct s5p_fimd_ext_device *s5p_fimd_ext_find_device(const char *name)
-{
- struct s5p_fimd_ext *fimd_ext;
- struct s5p_fimd_ext_device *fx_dev;
- struct device *dev;
-
- mutex_lock(&fimd_ext_lock);
-
- printk(KERN_DEBUG "find ext driver (%s).\n", name);
-
- list_for_each_entry(fimd_ext, &fimd_ext_list, list) {
- dev = fimd_ext->dev;
- fx_dev = to_fimd_ext_device(dev);
-
- if ((strcmp(fx_dev->name, name)) == 0) {
- mutex_unlock(&fimd_ext_lock);
- printk(KERN_DEBUG "found!!!(%s).\n", fx_dev->name);
- return fx_dev;
- }
- }
-
- printk(KERN_WARNING "failed to find ext device(%s).\n", name);
-
- mutex_unlock(&fimd_ext_lock);
-
- return NULL;
-}
-
-static int __init s5p_fimd_ext_init(void)
-{
- return bus_register(&s5p_fimd_ext_bus_type);
-}
-
-static void __exit s5p_fimd_ext_exit(void)
-{
-}
-
-early_initcall(s5p_fimd_ext_init);
-module_exit(s5p_fimd_ext_exit);
-
-MODULE_AUTHOR("InKi Dae <inki.dae@samsung.com>");
-MODULE_DESCRIPTION("Samsung SoC FIMD Extension Framework");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/extension/s5p_fimd_ext.h b/drivers/video/samsung_duallcd/extension/s5p_fimd_ext.h
deleted file mode 100644
index 3a4dc3a..0000000
--- a/drivers/video/samsung_duallcd/extension/s5p_fimd_ext.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* linux/driver/video/samsung/s5p_fimd_ext.h
- *
- * Samsung SoC FIMD Extension Framework Header.
- *
- * InKi Dae <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _S5P_FIMD_EXT_H
-#define _S5P_FIMD_EXT_H
-
-#include <linux/device.h>
-
-struct s5p_fimd_ext_device
- *to_fimd_ext_device(struct device *dev);
-
-struct resource *s5p_fimd_ext_get_resource(struct s5p_fimd_ext_device *fx_dev,
- unsigned int type, unsigned int num);
-
-int s5p_fimd_ext_get_irq(struct s5p_fimd_ext_device *fx_dev,
- unsigned int num);
-
-int s5p_fimd_ext_device_register(struct s5p_fimd_ext_device *fx_dev);
-
-int s5p_fimd_ext_driver_register(struct s5p_fimd_ext_driver *fx_drv);
-
-#endif /* _S5P_FIMD_EXT_H */
diff --git a/drivers/video/samsung_duallcd/extension/s5p_fimd_lite.c b/drivers/video/samsung_duallcd/extension/s5p_fimd_lite.c
deleted file mode 100644
index 3e128b8..0000000
--- a/drivers/video/samsung_duallcd/extension/s5p_fimd_lite.c
+++ /dev/null
@@ -1,502 +0,0 @@
-/* /linux/driver/video/samsung/s5p_fimd_lite.c
- *
- * Samsung SoC FIMD Lite driver.
- *
- * Author: InKi Dae <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/err.h>
-#include <linux/clk.h>
-#include <linux/io.h>
-#include <linux/irq.h>
-#include <linux/slab.h>
-#include <linux/interrupt.h>
-#include <linux/fb.h>
-
-#include <plat/clock.h>
-#include <plat/fb.h>
-#include <plat/cpu.h>
-#include <plat/fimd_lite_ext.h>
-#include <plat/regs-fb.h>
-
-#include <mach/map.h>
-
-#include "s5p_fimd_ext.h"
-#include "s5p_fimd_lite.h"
-#include "regs_fimd_lite.h"
-
-static void *to_fimd_lite_platform_data(struct s5p_fimd_ext_device *fx_dev)
-{
- return fx_dev->dev.platform_data ? (void *)fx_dev->dev.platform_data :
- NULL;
-}
-
-static void s5p_fimd_lite_set_par(struct s5p_fimd_lite *fimd_lite,
- unsigned int win_id)
-{
- struct exynos_drm_fimd_pdata *lcd;
- struct fb_videomode timing;
- unsigned int cfg;
-
- lcd = fimd_lite->lcd;
- timing = lcd->panel.timing;
-
- /* set window control */
- cfg = readl(fimd_lite->iomem_base + S5P_WINCON(win_id));
-
- cfg &= ~(S5P_WINCON_BITSWP_ENABLE | S5P_WINCON_BYTESWP_ENABLE | \
- S5P_WINCON_HAWSWP_ENABLE | S5P_WINCON_WSWP_ENABLE | \
- S5P_WINCON_BURSTLEN_MASK | S5P_WINCON_BPPMODE_MASK | \
- S5P_WINCON_INRGB_MASK | S5P_WINCON_DATAPATH_MASK);
-
- /* DATAPATH is LOCAL */
- cfg |= S5P_WINCON_DATAPATH_LOCAL;
-
- /* pixel format is unpacked RGB888 */
- cfg |= S5P_WINCON_INRGB_RGB | S5P_WINCON_BPPMODE_32BPP;
-
- writel(cfg, fimd_lite->iomem_base + S5P_WINCON(win_id));
-
- /* set window position to x=0, y=0*/
- cfg = S5P_VIDOSD_LEFT_X(0) | S5P_VIDOSD_TOP_Y(0);
- writel(cfg, fimd_lite->iomem_base + S5P_VIDOSD_A(win_id));
-
- cfg = S5P_VIDOSD_RIGHT_X(timing.xres - 1) |
- S5P_VIDOSD_BOTTOM_Y(timing.yres - 1);
- writel(cfg, fimd_lite->iomem_base + S5P_VIDOSD_B(win_id));
-
- /* set window size for window0*/
- cfg = S5P_VIDOSD_SIZE(timing.xres * timing.yres);
- writel(cfg, fimd_lite->iomem_base + S5P_VIDOSD_C(win_id));
-
- return;
-}
-
-static void s5p_fimd_lite_set_clock(struct s5p_fimd_lite *fimd_lite)
-{
- unsigned int cfg = 0, div = 0;
- unsigned int pixel_clock, src_clock, max_clock;
- struct clk *clk;
- struct exynos_drm_fimd_pdata *lcd;
- struct fb_videomode timing;
-
- lcd = fimd_lite->lcd;
- timing = lcd->panel.timing;
-
- clk = fimd_lite->clk;
-
- max_clock = 86 * 1000000;
-
- pixel_clock = timing.refresh *
- (timing.left_margin + timing.right_margin +
- timing.hsync_len + timing.xres) * (timing.upper_margin +
- timing.lower_margin + timing.vsync_len + timing.yres);
-
- src_clock = clk_get_rate(clk->parent);
-
- cfg = readl(fimd_lite->iomem_base + S5P_VIDCON0);
- cfg &= ~(S5P_VIDCON0_VCLKEN_MASK | S5P_VIDCON0_CLKVALUP_MASK |
- S5P_VIDCON0_CLKVAL_F(0xFF));
- cfg |= (S5P_VIDCON0_CLKVALUP_ALWAYS | S5P_VIDCON0_VCLKEN_NORMAL);
-
- cfg |= S5P_VIDCON0_CLKSEL_HCLK;
-
- if (pixel_clock > max_clock)
- pixel_clock = max_clock;
-
- div = (unsigned int)(src_clock / pixel_clock);
- if (src_clock % pixel_clock)
- div++;
-
- cfg |= S5P_VIDCON0_CLKVAL_F(div - 1);
- writel(cfg, fimd_lite->iomem_base + S5P_VIDCON0);
-
- return;
-}
-
-static void s5p_fimd_lite_window_on(struct s5p_fimd_lite *fimd_lite,
- unsigned int win_id, unsigned int enable)
-{
- unsigned int cfg;
-
- /* enable window */
- cfg = readl(fimd_lite->iomem_base + S5P_WINCON(win_id));
-
- cfg &= ~S5P_WINCON_ENWIN_ENABLE;
-
- if (enable)
- cfg |= S5P_WINCON_ENWIN_ENABLE;
-
- writel(cfg, fimd_lite->iomem_base + S5P_WINCON(win_id));
-}
-
-static void s5p_fimd_lite_lcd_on(struct s5p_fimd_lite *fimd_lite,
- unsigned int enable)
-{
- unsigned int cfg;
-
- cfg = readl(fimd_lite->iomem_base + S5P_VIDCON0);
-
- cfg &= ~(S5P_VIDCON0_ENVID_ENABLE | S5P_VIDCON0_ENVID_F_ENABLE);
-
- if (enable)
- cfg |= (S5P_VIDCON0_ENVID_ENABLE | S5P_VIDCON0_ENVID_F_ENABLE);
-
- writel(cfg, fimd_lite->iomem_base + S5P_VIDCON0);
-}
-
-void s5p_fimd_lite_get_vsync_interrupt(struct s5p_fimd_lite *fimd_lite,
- unsigned int enable)
-{
- unsigned int cfg;
-
- cfg = readl(fimd_lite->iomem_base + S5P_VIDINTCON0);
- cfg &= ~(S5P_VIDINTCON0_INTFRMEN_ENABLE | S5P_VIDINTCON0_INT_ENABLE |
- S5P_VIDINTCON0_FRAMESEL0_VSYNC);
-
- if (enable) {
- cfg |= (S5P_VIDINTCON0_INTFRMEN_ENABLE |
- S5P_VIDINTCON0_INT_ENABLE |
- S5P_VIDINTCON0_FRAMESEL0_VSYNC);
- } else {
- cfg |= (S5P_VIDINTCON0_INTFRMEN_DISABLE |
- S5P_VIDINTCON0_INT_DISABLE);
-
- cfg &= ~S5P_VIDINTCON0_FRAMESEL0_VSYNC;
- }
-
- writel(cfg, fimd_lite->iomem_base + S5P_VIDINTCON0);
-}
-
-static void s5p_change_dynamic_refresh(struct s5p_fimd_dynamic_refresh
- *fimd_refresh, struct s5p_fimd_ext_device *fx_dev)
-{
- unsigned int cfg = 0, ret = 0;
- struct s5p_fimd_lite *fimd_lite = fimd_ext_get_drvdata(fx_dev);
- struct exynos_drm_fimd_pdata *lcd;
- struct fb_videomode timing;
- unsigned long flags;
- u32 vclk, src_clk, refresh;
-
- lcd = fimd_lite->lcd;
- timing = lcd->panel.timing;
-
- cfg = readl(fimd_lite->iomem_base + S5P_VIDCON0);
- cfg &= ~(S5P_VIDCON0_CLKVALUP_START_FRAME | S5P_VIDCON0_CLKVAL_F(0xFF));
- cfg |= (S5P_VIDCON0_CLKVALUP_ALWAYS | S5P_VIDCON0_VCLKEN_NORMAL);
- cfg |= S5P_VIDCON0_CLKVAL_F(fimd_refresh->clkdiv - 1);
-
- if (!irqs_disabled())
- local_irq_save(flags);
-
- if (timing.refresh == 60) {
- while (1) {
- ret = (__raw_readl(fimd_lite->iomem_base +
- S5P_VIDCON1) >> 13) &
- S5P_VIDCON1_VSTATUS_MASK;
- if (ret == S5P_VIDCON1_VSTATUS_BACKPORCH) {
- __raw_writel(cfg, fimd_lite->iomem_base +
- S5P_VIDCON0);
- ret = (__raw_readl(fimd_refresh->regs +
- VIDCON1) >> 13) &
- S5P_VIDCON1_VSTATUS_MASK;
- if (ret == S5P_VIDCON1_VSTATUS_ACTIVE) {
- __raw_writel(cfg,
- fimd_refresh->regs + VIDCON0);
- break;
- }
- }
- }
- } else {
- while (1) {
- ret = (__raw_readl(fimd_refresh->regs + VIDCON1) >> 13)
- & S5P_VIDCON1_VSTATUS_MASK;
- if (ret == S5P_VIDCON1_VSTATUS_ACTIVE) {
- ret = (__raw_readl(fimd_lite->iomem_base +
- S5P_VIDCON1) >> 13) &
- S5P_VIDCON1_VSTATUS_MASK;
- if (ret == S5P_VIDCON1_VSTATUS_FRONTPORCH) {
- __raw_writel(cfg,
- fimd_refresh->regs + VIDCON0);
- __raw_writel(cfg,
- fimd_lite->iomem_base +
- S5P_VIDCON0);
- break;
- }
- }
- }
- }
- if (irqs_disabled())
- local_irq_restore(flags);
-
- src_clk = clk_get_rate(fimd_lite->clk->parent);
- vclk = timing.refresh * (timing.left_margin + timing.hsync_len +
- timing.right_margin + timing.xres) *
- (timing.upper_margin + timing.vsync_len +
- timing.lower_margin + timing.yres);
-
- refresh = timing.refresh -
- ((vclk - (src_clk / fimd_refresh->clkdiv)) / MHZ);
- dev_dbg(fimd_lite->dev, "expected refresh rate: %d fps\n", refresh);
-}
-
-static irqreturn_t s5p_fimd_lite_irq_frame(int irq, void *dev_id)
-{
- struct s5p_fimd_lite *fimd_lite;
-
- fimd_lite = (struct s5p_fimd_lite *)dev_id;
-
- disable_irq_nosync(fimd_lite->irq);
-
- enable_irq(fimd_lite->irq);
-
- return IRQ_HANDLED;
-}
-
-static void s5p_fimd_lite_logic_start(struct s5p_fimd_lite *fimd_lite,
- unsigned int enable)
-{
- unsigned int cfg;
-
- cfg = 0x2ff47;
-
- if (enable)
- writel(cfg, fimd_lite->iomem_base + S5P_GPOUTCON0);
- else
- writel(0, fimd_lite->iomem_base + S5P_GPOUTCON0);
-}
-
-static void s5p_fimd_lite_lcd_init(struct s5p_fimd_lite *fimd_lite)
-{
- unsigned int cfg, rgb_mode, win_id = 0;
- struct exynos_drm_fimd_pdata *lcd;
- struct fb_videomode timing;
-
- lcd = fimd_lite->lcd;
- timing = lcd->panel.timing;
-
- cfg = 0;
- cfg |= lcd->vidcon1;
-
- writel(cfg, fimd_lite->iomem_base + S5P_VIDCON1);
-
- /* set timing */
- cfg = 0;
- cfg |= S5P_VIDTCON0_VBPD(timing.upper_margin - 1);
- cfg |= S5P_VIDTCON0_VFPD(timing.lower_margin - 1);
- cfg |= S5P_VIDTCON0_VSPW(timing.vsync_len - 1);
- writel(cfg, fimd_lite->iomem_base + S5P_VIDTCON0);
-
- cfg = 0;
- cfg |= S5P_VIDTCON1_HBPD(timing.left_margin - 1);
- cfg |= S5P_VIDTCON1_HFPD(timing.right_margin - 1);
- cfg |= S5P_VIDTCON1_HSPW(timing.hsync_len - 1);
-
- writel(cfg, fimd_lite->iomem_base + S5P_VIDTCON1);
-
- /* set lcd size */
- cfg = 0;
- cfg |= S5P_VIDTCON2_HOZVAL(timing.xres - 1);
- cfg |= S5P_VIDTCON2_LINEVAL(timing.yres - 1);
-
- writel(cfg, fimd_lite->iomem_base + S5P_VIDTCON2);
-
- writel(0, fimd_lite->iomem_base + S5P_DITHMODE);
-
- /* set output to RGB */
- rgb_mode = 0; /* MODE_RGB_P */
- cfg = readl(fimd_lite->iomem_base + S5P_VIDCON0);
- cfg &= ~S5P_VIDCON0_VIDOUT_MASK;
-
- cfg |= S5P_VIDCON0_VIDOUT_RGB;
- writel(cfg, fimd_lite->iomem_base + S5P_VIDCON0);
-
- /* set display mode */
- cfg = readl(fimd_lite->iomem_base + S5P_VIDCON0);
- cfg &= ~S5P_VIDCON0_PNRMODE_MASK;
- cfg |= (rgb_mode << S5P_VIDCON0_PNRMODE_SHIFT);
- writel(cfg, fimd_lite->iomem_base + S5P_VIDCON0);
-
- s5p_fimd_lite_get_vsync_interrupt(fimd_lite, 0);
-
- /* set par */
- s5p_fimd_lite_set_par(fimd_lite, win_id);
-
- /* set buffer size */
- cfg = S5P_VIDADDR_PAGEWIDTH(timing.xres * lcd->bpp / 8);
- writel(cfg, fimd_lite->iomem_base + S5P_VIDADDR_SIZE(win_id));
-
- /* set clock */
- s5p_fimd_lite_set_clock(fimd_lite);
-
- return;
-}
-
-static int s5p_fimd_lite_setup(struct s5p_fimd_ext_device *fx_dev,
- unsigned int enable)
-{
- struct s5p_fimd_lite *fimd_lite = fimd_ext_get_drvdata(fx_dev);
-
- s5p_fimd_lite_logic_start(fimd_lite, enable);
-
- s5p_fimd_lite_lcd_init(fimd_lite);
-
-
- s5p_fimd_lite_window_on(fimd_lite, 0, 1);
-
- return 0;
-}
-
-static int s5p_fimd_lite_start(struct s5p_fimd_ext_device *fx_dev)
-{
- struct s5p_fimd_lite *fimd_lite = fimd_ext_get_drvdata(fx_dev);
-
- s5p_fimd_lite_lcd_on(fimd_lite, 1);
-
- return 0;
-}
-
-static void s5p_fimd_lite_stop(struct s5p_fimd_ext_device *fx_dev)
-{
- struct s5p_fimd_lite *fimd_lite = fimd_ext_get_drvdata(fx_dev);
-
- s5p_fimd_lite_lcd_on(fimd_lite, 0);
-}
-
-static void s5p_fimd_lite_power_on(struct s5p_fimd_ext_device *fx_dev)
-{
- struct s5p_fimd_lite *fimd_lite = fimd_ext_get_drvdata(fx_dev);
-
- clk_enable(fimd_lite->clk);
-}
-
-static void s5p_fimd_lite_power_off(struct s5p_fimd_ext_device *fx_dev)
-{
- struct s5p_fimd_lite *fimd_lite = fimd_ext_get_drvdata(fx_dev);
-
- clk_disable(fimd_lite->clk);
-}
-
-static int s5p_fimd_lite_probe(struct s5p_fimd_ext_device *fx_dev)
-{
- struct clk *sclk = NULL;
- struct resource *res;
- struct s5p_fimd_lite *fimd_lite;
- int ret = -1;
-
- fimd_lite = kzalloc(sizeof(struct s5p_fimd_lite), GFP_KERNEL);
- if (!fimd_lite) {
- dev_err(&fx_dev->dev, "failed to alloc fimd_lite object.\n");
- return -EFAULT;
- }
-
- fimd_lite->dev = &fx_dev->dev;
- fimd_lite->lcd = (struct exynos_drm_fimd_pdata *)
- to_fimd_lite_platform_data(fx_dev);
-
- res = s5p_fimd_ext_get_resource(fx_dev, IORESOURCE_MEM, 0);
- if (!res) {
- dev_err(&fx_dev->dev, "failed to get io memory region.\n");
- ret = -EINVAL;
- goto err0;
- }
-
- fimd_lite->iomem_base = ioremap(res->start, resource_size(res));
- if (!fimd_lite->iomem_base) {
- dev_err(&fx_dev->dev, "failed to remap io region\n");
- ret = -EFAULT;
- goto err0;
- }
-
- fimd_lite->clk = clk_get(&fx_dev->dev, "mdnie0");
- if (IS_ERR(fimd_lite->clk)) {
- dev_err(&fx_dev->dev, "failed to get FIMD LITE clock source\n");
- ret = -EINVAL;
- goto err1;
- }
-
- sclk = clk_get(&fx_dev->dev, "sclk_mdnie");
- if (IS_ERR(sclk)) {
- dev_err(&fx_dev->dev, "failed to get sclk_mdnie clock\n");
- ret = -EINVAL;
- goto err2;
- }
- fimd_lite->clk->parent = sclk;
-
- fimd_lite->irq = s5p_fimd_ext_get_irq(fx_dev, 0);
-
- /* register interrupt handler for fimd-lite. */
- if (request_irq(fimd_lite->irq, s5p_fimd_lite_irq_frame, IRQF_DISABLED,
- fx_dev->name, (void *)fimd_lite)) {
- dev_err(&fx_dev->dev, "request_irq failed\n");
- ret = -EINVAL;
- goto err3;
- }
-
- fimd_ext_set_drvdata(fx_dev, fimd_lite);
-
- dev_info(&fx_dev->dev, "fimd lite driver has been probed.\n");
-
- return 0;
-
-err3:
- free_irq(fimd_lite->irq, fx_dev);
-err2:
- clk_put(sclk);
-err1:
- iounmap(fimd_lite->iomem_base);
- clk_put(fimd_lite->clk);
-err0:
- kfree(fimd_lite);
-
- return ret;
-
-}
-
-static struct s5p_fimd_ext_driver fimd_ext_driver = {
- .driver = {
- .name = "fimd_lite",
- .owner = THIS_MODULE,
- },
- .change_clock = s5p_change_dynamic_refresh,
- .power_on = s5p_fimd_lite_power_on,
- .power_off = s5p_fimd_lite_power_off,
- .setup = s5p_fimd_lite_setup,
- .start = s5p_fimd_lite_start,
- .stop = s5p_fimd_lite_stop,
- .probe = s5p_fimd_lite_probe,
-};
-
-static int __init s5p_fimd_lite_init(void)
-{
- return s5p_fimd_ext_driver_register(&fimd_ext_driver);
-}
-
-static void __exit s5p_fimd_lite_exit(void)
-{
-}
-
-arch_initcall(s5p_fimd_lite_init);
-module_exit(s5p_fimd_lite_exit);
-
-MODULE_AUTHOR("InKi Dae <inki.dae@samsung.com>");
-MODULE_DESCRIPTION("FIMD Lite Driver");
-MODULE_LICENSE("GPL");
-
diff --git a/drivers/video/samsung_duallcd/extension/s5p_fimd_lite.h b/drivers/video/samsung_duallcd/extension/s5p_fimd_lite.h
deleted file mode 100644
index a8ef492..0000000
--- a/drivers/video/samsung_duallcd/extension/s5p_fimd_lite.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* linux/arch/arm/plat-s5p/s5p_fimd_lite.h
- *
- * FIMD Lite Platform Specific Header Definitions.
- *
- * Copyright (c) 2010 Samsung Electronics
- * InKi Dae <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _S5P_FIMD_LITE_H_
-#define _S5P_FIMD_LITE_H_
-
-#include <drm/exynos_drm.h>
-
-struct s5p_fimd_lite_platform_data {
- unsigned int reg_base;
- unsigned int reg_map_size;
- unsigned int irq;
-};
-
-struct s5p_fimd_lite {
- struct device *dev;
- struct clk *clk;
- void __iomem *iomem_base;
- unsigned int irq;
- unsigned int dynamic_refresh;
-
- struct exynos_drm_fimd_pdata *lcd;
-};
-
-void s5p_fimd_lite_get_vsync_interrupt(struct s5p_fimd_lite *fimd_lite,
- unsigned int enable);
-
-#endif /* _S5P_FIMD_LITE_H_ */
diff --git a/drivers/video/samsung_duallcd/lcdfreq.c b/drivers/video/samsung_duallcd/lcdfreq.c
deleted file mode 100644
index 8c25c22..0000000
--- a/drivers/video/samsung_duallcd/lcdfreq.c
+++ /dev/null
@@ -1,492 +0,0 @@
-/* linux/driver/video/samsung/lcdfreq.c
- *
- * EXYNOS4 - support LCD PixelClock change at runtime
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/reboot.h>
-#include <linux/suspend.h>
-#include <linux/cpufreq.h>
-#include <linux/sysfs.h>
-#include <linux/gcd.h>
-#include <linux/clk.h>
-#include <linux/spinlock.h>
-
-#include <plat/clock.h>
-#include <plat/clock-clksrc.h>
-#include <plat/regs-fb-s5p.h>
-
-#include "s3cfb.h"
-
-#define LCDFREQ_LIMIT_HZ 40
-
-enum lcdfreq_level_idx {
- LEVEL_NORMAL,
- LEVEL_LIMIT,
- LCDFREQ_LEVEL_END
-};
-
-struct lcdfreq_t {
- u32 level;
- u32 hz;
- u32 vclk;
- u32 cmu_clkdiv;
- u32 pixclock;
-};
-
-struct lcdfreq_info {
- struct lcdfreq_t table[LCDFREQ_LEVEL_END];
- enum lcdfreq_level_idx level;
- atomic_t usage;
- struct mutex lock;
- spinlock_t slock;
-
- u32 enable;
- struct device *dev;
-
- struct notifier_block pm_noti;
- struct notifier_block reboot_noti;
-
- struct delayed_work work;
-
- struct early_suspend early_suspend;
-};
-
-int get_div(struct s3cfb_global *ctrl)
-{
- struct clksrc_clk *src_clk;
- u32 clkdiv;
-
- src_clk = container_of(ctrl->clock, struct clksrc_clk, clk);
- clkdiv = __raw_readl(src_clk->reg_div.reg);
- clkdiv &= 0xf;
-
- return clkdiv;
-}
-
-int set_div(struct s3cfb_global *ctrl, u32 div)
-{
- struct lcdfreq_info *lcdfreq = ctrl->data;
- struct clksrc_clk *src_clk;
- unsigned long flags;
- u32 cfg, clkdiv, count = 1000000;
-/* unsigned long timeout = jiffies + msecs_to_jiffies(500); */
-
- src_clk = container_of(ctrl->clock, struct clksrc_clk, clk);
-
- do {
- spin_lock_irqsave(&lcdfreq->slock, flags);
- clkdiv = __raw_readl(src_clk->reg_div.reg);
-
- if ((clkdiv & 0xf) == div) {
- spin_unlock_irqrestore(&lcdfreq->slock, flags);
- return -EINVAL;
- }
-
- clkdiv &= ~(0xff);
- clkdiv |= (div << 4 | div);
- cfg = (readl(ctrl->ielcd_regs + S3C_VIDCON1) & S3C_VIDCON1_VSTATUS_MASK);
- if (cfg == S3C_VIDCON1_VSTATUS_ACTIVE) {
- cfg = (readl(ctrl->ielcd_regs + S3C_VIDCON1) & S3C_VIDCON1_VSTATUS_MASK);
- if (cfg == S3C_VIDCON1_VSTATUS_FRONT) {
- writel(clkdiv, src_clk->reg_div.reg);
- spin_unlock_irqrestore(&lcdfreq->slock, flags);
- dev_info(ctrl->dev, "\t%x, count=%d\n", __raw_readl(src_clk->reg_div.reg), 1000000-count);
- return 0;
- }
- }
- spin_unlock_irqrestore(&lcdfreq->slock, flags);
- count--;
- } while (count);
-/* } while (time_before(jiffies, timeout)); */
-
- dev_err(ctrl->dev, "%s fail, div=%d\n", __func__, div);
-
- return -EINVAL;
-}
-
-static int set_lcdfreq_div(struct device *dev, enum lcdfreq_level_idx level)
-{
- struct fb_info *fb = dev_get_drvdata(dev);
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
-
- struct lcdfreq_info *lcdfreq = fbdev->data;
-
- u32 div, ret;
-
- mutex_lock(&lcdfreq->lock);
-
- if (unlikely(fbdev->system_state == POWER_OFF || !lcdfreq->enable)) {
- dev_err(dev, "%s reject. %d, %d\n", __func__, fbdev->system_state, lcdfreq->enable);
- ret = -EINVAL;
- goto exit;
- }
-
- div = lcdfreq->table[level].cmu_clkdiv;
-
- ret = set_div(fbdev, div);
-
- if (ret) {
- dev_err(dev, "fail to change lcd freq\n");
- goto exit;
- }
-
- lcdfreq->level = level;
-
-exit:
- mutex_unlock(&lcdfreq->lock);
-
- return ret;
-}
-
-static int lcdfreq_lock(struct device *dev)
-{
- struct fb_info *fb = dev_get_drvdata(dev);
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- struct lcdfreq_info *lcdfreq = fbdev->data;
-
- int ret;
-
- if (!atomic_read(&lcdfreq->usage))
- ret = set_lcdfreq_div(dev, LEVEL_LIMIT);
- else {
- dev_err(dev, "lcd freq is already limit state\n");
- return -EINVAL;
- }
-
- if (!ret) {
- mutex_lock(&lcdfreq->lock);
- atomic_inc(&lcdfreq->usage);
- mutex_unlock(&lcdfreq->lock);
- schedule_delayed_work(&lcdfreq->work, 0);
- }
-
- return ret;
-}
-
-static int lcdfreq_lock_free(struct device *dev)
-{
- struct fb_info *fb = dev_get_drvdata(dev);
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- struct lcdfreq_info *lcdfreq = fbdev->data;
-
- int ret;
-
- if (atomic_read(&lcdfreq->usage))
- ret = set_lcdfreq_div(dev, LEVEL_NORMAL);
- else {
- dev_err(dev, "lcd freq is already normal state\n");
- return -EINVAL;
- }
-
- if (!ret) {
- mutex_lock(&lcdfreq->lock);
- atomic_dec(&lcdfreq->usage);
- mutex_unlock(&lcdfreq->lock);
- cancel_delayed_work(&lcdfreq->work);
- }
-
- return ret;
-}
-
-int get_divider(struct fb_info *fb)
-{
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- struct lcdfreq_info *lcdfreq = fbdev->data;
- struct clksrc_clk *sclk;
- struct clk *clk;
- u32 rate, reg, i;
- u8 fimd_div;
-
- sclk = container_of(fbdev->clock, struct clksrc_clk, clk);
- clk = clk_get_parent(clk_get_parent(fbdev->clock));
- rate = clk_get_rate(clk);
-
- lcdfreq->table[LEVEL_NORMAL].cmu_clkdiv =
- DIV_ROUND_CLOSEST(rate, lcdfreq->table[LEVEL_NORMAL].vclk);
-
- lcdfreq->table[LEVEL_LIMIT].cmu_clkdiv =
- DIV_ROUND_CLOSEST(rate, lcdfreq->table[LEVEL_LIMIT].vclk);
-
- fimd_div = gcd(lcdfreq->table[LEVEL_NORMAL].cmu_clkdiv, lcdfreq->table[LEVEL_LIMIT].cmu_clkdiv);
-
- lcdfreq->table[LEVEL_NORMAL].cmu_clkdiv /= fimd_div;
- lcdfreq->table[LEVEL_LIMIT].cmu_clkdiv /= fimd_div;
-
- dev_info(fb->dev, "%s rate is %d, fimd divider=%d\n", clk->name, rate, fimd_div);
-
- for (i = 0; i < LCDFREQ_LEVEL_END; i++) {
- lcdfreq->table[i].cmu_clkdiv--;
- dev_info(fb->dev, "%dHZ divider is %d\n",
- lcdfreq->table[i].hz, lcdfreq->table[i].cmu_clkdiv);
- }
-
- reg = (readl(fbdev->regs + S3C_VIDCON0) & (S3C_VIDCON0_CLKVAL_F(0xff))) >> 6;
- reg++;
-
- if (fimd_div != reg)
- return -EINVAL;
-
- reg = (readl(sclk->reg_div.reg)) >> sclk->reg_div.shift;
- reg &= 0xf;
-
- if (lcdfreq->table[LEVEL_NORMAL].cmu_clkdiv != reg)
- return -EINVAL;
-
- return 0;
-}
-
-static ssize_t level_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct fb_info *fb = dev_get_drvdata(dev);
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- struct lcdfreq_info *lcdfreq = fbdev->data;
-
- if (unlikely(fbdev->system_state == POWER_OFF || !lcdfreq->enable)) {
- dev_err(dev, "%s reject. %d, %d\n", __func__, fbdev->system_state, lcdfreq->enable);
- return -EINVAL;
- }
-
- return sprintf(buf, "%dHZ, div=%d\n", lcdfreq->table[lcdfreq->level].hz, get_div(fbdev));
-}
-
-static ssize_t level_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- unsigned int value;
- int ret;
-
- ret = strict_strtoul(buf, 0, (unsigned long *)&value);
-
- dev_info(dev, "\t%s :: value=%d\n", __func__, value);
-
- if (value >= LCDFREQ_LEVEL_END)
- return -EINVAL;
-
- if (value)
- ret = lcdfreq_lock(dev);
- else
- ret = lcdfreq_lock_free(dev);
-
- if (ret) {
- dev_err(dev, "%s fail\n", __func__);
- return -EINVAL;
- }
-
- return count;
-}
-
-static ssize_t usage_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct fb_info *fb = dev_get_drvdata(dev);
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- struct lcdfreq_info *lcdfreq = fbdev->data;
-
- return sprintf(buf, "%d\n", atomic_read(&lcdfreq->usage));
-}
-
-static DEVICE_ATTR(level, S_IRUGO|S_IWUSR, level_show, level_store);
-static DEVICE_ATTR(usage, S_IRUGO, usage_show, NULL);
-
-static struct attribute *lcdfreq_attributes[] = {
- &dev_attr_level.attr,
- &dev_attr_usage.attr,
- NULL,
-};
-
-static struct attribute_group lcdfreq_attr_group = {
- .name = "lcdfreq",
- .attrs = lcdfreq_attributes,
-};
-
-static void lcdfreq_early_suspend(struct early_suspend *h)
-{
- struct lcdfreq_info *lcdfreq =
- container_of(h, struct lcdfreq_info, early_suspend);
-
- dev_info(lcdfreq->dev, "%s\n", __func__);
-
- mutex_lock(&lcdfreq->lock);
- lcdfreq->enable = false;
- lcdfreq->level = LEVEL_NORMAL;
- atomic_set(&lcdfreq->usage, 0);
- mutex_unlock(&lcdfreq->lock);
-
- return ;
-}
-
-static void lcdfreq_late_resume(struct early_suspend *h)
-{
- struct lcdfreq_info *lcdfreq =
- container_of(h, struct lcdfreq_info, early_suspend);
-
- dev_info(lcdfreq->dev, "%s\n", __func__);
-
- mutex_lock(&lcdfreq->lock);
- lcdfreq->enable = true;
- mutex_unlock(&lcdfreq->lock);
-
- return;
-}
-
-static int lcdfreq_pm_notifier_event(struct notifier_block *this,
- unsigned long event, void *ptr)
-{
- struct lcdfreq_info *lcdfreq =
- container_of(this, struct lcdfreq_info, pm_noti);
-
- dev_info(lcdfreq->dev, "%s :: event=%ld\n", __func__, event);
-
- switch (event) {
- case PM_SUSPEND_PREPARE:
- mutex_lock(&lcdfreq->lock);
- lcdfreq->enable = false;
- lcdfreq->level = LEVEL_NORMAL;
- atomic_set(&lcdfreq->usage, 0);
- mutex_unlock(&lcdfreq->lock);
- return NOTIFY_OK;
- case PM_POST_RESTORE:
- case PM_POST_SUSPEND:
- mutex_lock(&lcdfreq->lock);
- lcdfreq->enable = true;
- mutex_unlock(&lcdfreq->lock);
- return NOTIFY_OK;
- }
- return NOTIFY_DONE;
-}
-
-static int lcdfreq_reboot_notify(struct notifier_block *this,
- unsigned long code, void *unused)
-{
- struct lcdfreq_info *lcdfreq =
- container_of(this, struct lcdfreq_info, reboot_noti);
-
- mutex_lock(&lcdfreq->lock);
- lcdfreq->enable = false;
- lcdfreq->level = LEVEL_NORMAL;
- atomic_set(&lcdfreq->usage, 0);
- mutex_unlock(&lcdfreq->lock);
-
- dev_info(lcdfreq->dev, "%s\n", __func__);
-
- return NOTIFY_DONE;
-}
-
-static void lcdfreq_status_work(struct work_struct *work)
-{
- struct lcdfreq_info *lcdfreq =
- container_of(work, struct lcdfreq_info, work.work);
-
- u32 hz = lcdfreq->table[lcdfreq->level].hz;
-
- cancel_delayed_work(&lcdfreq->work);
-
- dev_info(lcdfreq->dev, "\tHZ=%d, usage=%d\n", hz, atomic_read(&lcdfreq->usage));
-
- schedule_delayed_work(&lcdfreq->work, HZ*120);
-}
-
-int lcdfreq_init(struct fb_info *fb)
-{
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- struct s3cfb_lcd *lcd = fbdev->lcd;
- struct fb_var_screeninfo *var = &fb->var;
-
- struct lcdfreq_info *lcdfreq = NULL;
- u32 vclk = 0;
- int ret;
-
- lcdfreq = kzalloc(sizeof(struct lcdfreq_info), GFP_KERNEL);
- if (!lcdfreq) {
- pr_err("fail to allocate for lcdfreq\n");
- ret = -ENOMEM;
- goto err_1;
- }
-
- fbdev->data = lcdfreq;
-
- lcdfreq->dev = fb->dev;
- lcdfreq->level = LEVEL_NORMAL;
-
- vclk = (lcd->freq *
- (var->left_margin + var->right_margin
- + var->hsync_len + var->xres) *
- (var->upper_margin + var->lower_margin
- + var->vsync_len + var->yres));
- lcdfreq->table[LEVEL_NORMAL].level = LEVEL_NORMAL;
- lcdfreq->table[LEVEL_NORMAL].vclk = vclk;
- lcdfreq->table[LEVEL_NORMAL].pixclock = var->pixclock;
- lcdfreq->table[LEVEL_NORMAL].hz = lcd->freq;
-
- vclk = (LCDFREQ_LIMIT_HZ *
- (var->left_margin + var->right_margin
- + var->hsync_len + var->xres) *
- (var->upper_margin + var->lower_margin
- + var->vsync_len + var->yres));
- lcdfreq->table[LEVEL_LIMIT].level = LEVEL_LIMIT;
- lcdfreq->table[LEVEL_LIMIT].vclk = vclk;
- lcdfreq->table[LEVEL_LIMIT].pixclock = KHZ2PICOS(vclk/1000);
- lcdfreq->table[LEVEL_LIMIT].hz = LCDFREQ_LIMIT_HZ;
-
- ret = get_divider(fb);
- if (ret < 0) {
- pr_err("fail to init lcd freq switch");
- fbdev->data = NULL;
- goto err_1;
- }
-
- atomic_set(&lcdfreq->usage, 0);
- mutex_init(&lcdfreq->lock);
- spin_lock_init(&lcdfreq->slock);
-
- INIT_DELAYED_WORK_DEFERRABLE(&lcdfreq->work, lcdfreq_status_work);
-
- ret = sysfs_create_group(&fb->dev->kobj, &lcdfreq_attr_group);
- if (ret < 0) {
- pr_err("fail to add sysfs entries, %d\n", __LINE__);
- goto err_2;
- }
-
- lcdfreq->early_suspend.suspend = lcdfreq_early_suspend;
- lcdfreq->early_suspend.resume = lcdfreq_late_resume;
- lcdfreq->early_suspend.level = EARLY_SUSPEND_LEVEL_STOP_DRAWING + 1;
-
- register_early_suspend(&lcdfreq->early_suspend);
-
- lcdfreq->pm_noti.notifier_call = lcdfreq_pm_notifier_event;
- lcdfreq->reboot_noti.notifier_call = lcdfreq_reboot_notify;
-
- if (register_reboot_notifier(&lcdfreq->reboot_noti)) {
- pr_err("fail to setup reboot notifier\n");
- goto err_3;
- }
-
- lcdfreq->enable = true;
-
- dev_info(lcdfreq->dev, "%s is done\n", __func__);
-
- return 0;
-
-err_3:
- sysfs_remove_group(&fb->dev->kobj, &lcdfreq_attr_group);
-
-err_2:
- kfree(lcdfreq);
-
-err_1:
- return ret;
-
-}
-
diff --git a/drivers/video/samsung_duallcd/ld9040.c b/drivers/video/samsung_duallcd/ld9040.c
deleted file mode 100644
index 2ff3af0..0000000
--- a/drivers/video/samsung_duallcd/ld9040.c
+++ /dev/null
@@ -1,1234 +0,0 @@
-/*
- * LD9040 AMOLED LCD panel driver.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <linux/wait.h>
-#include <linux/fb.h>
-#include <linux/delay.h>
-#include <linux/gpio.h>
-#include <linux/spi/spi.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/kernel.h>
-#include <linux/lcd.h>
-#include <linux/backlight.h>
-#include <linux/ld9040.h>
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#define SLEEPMSEC 0x1000
-#define ENDDEF 0x2000
-#define DEFMASK 0xFF00
-#define COMMAND_ONLY 0xFE
-#define DATA_ONLY 0xFF
-
-#define MIN_BRIGHTNESS 0
-#define MAX_BRIGHTNESS 255
-#define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL)
-
-/* #define SMART_DIMMING */
-
-#ifdef SMART_DIMMING
-#include "ld9042_panel.h"
-#include "smart_dimming_ld9042.h"
-
-#define spidelay(nsecs) do {} while (0)
-
-#define GAMMA_PARAM_LEN 21
-
-#define LD9040_ID3 0x11
-#define LDI_ID_REG 0xDA
-#define LDI_ID_LEN 3
-#define LDI_MTP_REG 0xD6
-#define LDI_MTP_LEN 18
-
-#define ELVSS_OFFSET_MIN 0x0D
-#define ELVSS_OFFSET_1 0x0C
-#define ELVSS_OFFSET_2 0x09
-#define ELVSS_OFFSET_MAX 0x00
-#define ELVSS_LIMIT 0x29
-#endif
-
-struct lcd_info {
- struct device *dev;
- struct spi_device *spi;
- unsigned int power;
- unsigned int gamma_mode;
- unsigned int current_gamma_mode;
- unsigned int current_bl;
- unsigned int bl;
- unsigned int auto_brightness;
- unsigned int ldi_enable;
- unsigned int acl_enable;
- unsigned int cur_acl;
- struct mutex lock;
- struct mutex bl_lock;
- struct lcd_device *ld;
- struct backlight_device *bd;
- struct lcd_platform_data *lcd_pd;
- struct early_suspend early_suspend;
-
-#ifdef SMART_DIMMING
- unsigned char id[3];
- struct str_smart_dim smart;
-#endif
-};
-
-enum {
- GAMMA_30CD,
- GAMMA_40CD,
- GAMMA_70CD,
- GAMMA_90CD,
- GAMMA_100CD,
- GAMMA_110CD,
- GAMMA_120CD,
- GAMMA_130CD,
- GAMMA_140CD,
- GAMMA_150CD,
- GAMMA_160CD,
- GAMMA_170CD,
- GAMMA_180CD,
- GAMMA_190CD,
- GAMMA_200CD,
- GAMMA_210CD,
- GAMMA_220CD,
- GAMMA_230CD,
- GAMMA_240CD,
- GAMMA_250CD,
- GAMMA_300CD,
- GAMMA_MAX
-};
-
-static const unsigned int candela_table[GAMMA_MAX] = {
- 30, 40, 70, 90, 100, 110, 120, 130, 140, 150,
- 160, 170, 180, 190, 200, 210, 220, 230, 240, 250,
- 300
-};
-
-static int ld9040_spi_write_byte(struct lcd_info *lcd, int addr, int data)
-{
- u16 buf[1];
- struct spi_message msg;
-
- struct spi_transfer xfer = {
- .len = 2,
- .tx_buf = buf,
- };
-
- buf[0] = (addr << 8) | data;
-
- spi_message_init(&msg);
- spi_message_add_tail(&xfer, &msg);
-
- return spi_sync(lcd->spi, &msg);
-}
-
-#ifdef SMART_DIMMING
-static int ld9040_spi_read(struct lcd_info *lcd, unsigned int addr,
- unsigned char *buf, unsigned int len, unsigned int dummy_bit)
-{
- struct ld9040_panel_data *pdata = lcd->lcd_pd->pdata;
- struct spi_ops *ops = pdata->ops;
- unsigned int bits;
-
- int i;
- int j;
-
- bits = lcd->spi->bits_per_word - 1;
-
- mutex_lock(&lcd->lock);
-
- ops->setcs(0);
- spidelay(0);
-
- for (j = bits; j >= 0; j--) {
- ops->setsck(0);
- spidelay(0);
-
- ops->setmosi((addr >> j) & 1);
- spidelay(0);
-
- ops->setsck(1);
- spidelay(0);
- }
-
- ops->setmosi2miso(1); /* SDI as input */
- spidelay(0);
-
- for (j = 0; j < dummy_bit; j++) {
- ops->setsck(0);
- spidelay(0);
-
- ops->setsck(1);
- spidelay(0);
-
- ops->getmiso();
- spidelay(0);
- }
-
- for (i = 0; i < len; i++) {
- for (j = bits - 1; j >= 0; j--) {
- ops->setsck(0);
- spidelay(0);
-
- ops->setsck(1);
- spidelay(0);
-
- buf[i] |= (unsigned char)(ops->getmiso() << j);
- spidelay(0);
- }
- /* printk(KERN_INFO "0x%x, %d\n", buf[i], buf[i]); */
- }
-
- ops->setcs(1);
- spidelay(0);
-
- ops->setmosi2miso(0); /* SDI as output */
- spidelay(0);
-
- mutex_unlock(&lcd->lock);
-
- return 0;
-}
-
-static int ld9040_read_id(struct lcd_info *lcd, unsigned int addr)
-{
- unsigned char buf[1] = {0};
-
- ld9040_spi_read(lcd, addr, buf, 1, 8);
-
- return *buf;
-}
-
-static int spi_read_multi_byte(struct lcd_info *lcd,
- unsigned int addr, unsigned char *buf, unsigned int len)
-{
- if (len == 1)
- ld9040_spi_read(lcd, addr, buf, len, 8);
- else
- ld9040_spi_read(lcd, addr, buf, len, 1);
-
- return 0;
-}
-
-static void ld9042_init_smart_dimming_table_22(struct lcd_info *lcd)
-{
- unsigned int i, j;
- unsigned char gamma_22[GAMMA_PARAM_LEN] = {0,};
-
- for (i = 0; i < GAMMA_MAX; i++) {
- calc_gamma_table_22(&lcd->smart, candela_table[i], gamma_22);
- for (j = 0; j < GAMMA_PARAM_LEN; j++)
- ld9042_22gamma_table[i][j*2+1] = gamma_22[j];
- }
-}
-
-static void ld9042_init_smart_dimming_table_19(struct lcd_info *lcd)
-{
- unsigned int i, j;
- unsigned char gamma_19[GAMMA_PARAM_LEN] = {0,};
-
- for (i = 0; i < GAMMA_MAX; i++) {
- calc_gamma_table_19(&lcd->smart, candela_table[i], gamma_19);
- for (j = 0; j < GAMMA_PARAM_LEN; j++)
- ld9042_19gamma_table[i][j*2+1] = gamma_19[j];
- }
-}
-
-static void ld9042_init_smart_elvss_table(struct lcd_info *lcd)
-{
- unsigned int i, j;
- unsigned char elvss, b2;
-
- elvss = lcd->id[2] & (~(BIT(6) | BIT(7)));
-
- for (i = 0; i < 4; i++) {
- for (j = 0; j < 4; j++) {
- b2 = elvss + ELVSS_TABLE[i][j*2+1];
- b2 = (b2 > ELVSS_LIMIT) ? ELVSS_LIMIT : b2;
- ELVSS_TABLE[i][j*2+1] = b2;
- }
- }
-
-}
-#endif
-
-static int ld9040_spi_write(struct lcd_info *lcd,
- unsigned char address, unsigned char command)
-{
- int ret = 0;
-
- if (address != DATA_ONLY)
- ret = ld9040_spi_write_byte(lcd, 0x0, address);
- if (command != COMMAND_ONLY)
- ret = ld9040_spi_write_byte(lcd, 0x1, command);
-
- return ret;
-}
-
-static int ld9040_panel_send_sequence(struct lcd_info *lcd,
- const unsigned short *seq)
-{
- int ret = 0, i = 0;
- const unsigned short *wbuf;
-
- mutex_lock(&lcd->lock);
-
- wbuf = seq;
-
- while ((wbuf[i] & DEFMASK) != ENDDEF) {
- if ((wbuf[i] & DEFMASK) != SLEEPMSEC) {
- ret = ld9040_spi_write(lcd, wbuf[i], wbuf[i+1]);
- if (ret)
- break;
- } else if ((wbuf[i] & DEFMASK) == SLEEPMSEC)
- msleep(wbuf[i+1]);
- i += 2;
- }
-
- mutex_unlock(&lcd->lock);
-
- return ret;
-}
-
-static int get_backlight_level_from_brightness(unsigned int brightness)
-{
- int backlightlevel;
-
- /* brightness setting from platform is from 0 to 255
- * But in this driver, brightness is only supported from 0 to 24 */
-
- switch (brightness) {
- case 0 ... 29:
- backlightlevel = GAMMA_30CD;
- break;
- case 30 ... 39:
- backlightlevel = GAMMA_30CD;
- break;
- case 40 ... 49:
- backlightlevel = GAMMA_40CD;
- break;
- case 50 ... 69:
- backlightlevel = GAMMA_40CD;
- break;
- case 70 ... 79:
- backlightlevel = GAMMA_70CD;
- break;
- case 80 ... 89:
- backlightlevel = GAMMA_70CD;
- break;
- case 90 ... 99:
- backlightlevel = GAMMA_90CD;
- break;
- case 100 ... 109:
- backlightlevel = GAMMA_100CD;
- break;
- case 110 ... 119:
- backlightlevel = GAMMA_110CD;
- break;
- case 120 ... 129:
- backlightlevel = GAMMA_120CD;
- break;
- case 130 ... 139:
- backlightlevel = GAMMA_130CD;
- break;
- case 140 ... 149:
- backlightlevel = GAMMA_140CD;
- break;
- case 150 ... 159:
- backlightlevel = GAMMA_150CD;
- break;
- case 160 ... 169:
- backlightlevel = GAMMA_160CD;
- break;
- case 170 ... 179:
- backlightlevel = GAMMA_170CD;
- break;
- case 180 ... 189:
- backlightlevel = GAMMA_180CD;
- break;
- case 190 ... 199:
- backlightlevel = GAMMA_190CD;
- break;
- case 200 ... 209:
- backlightlevel = GAMMA_200CD;
- break;
- case 210 ... 219:
- backlightlevel = GAMMA_210CD;
- break;
- case 220 ... 229:
- backlightlevel = GAMMA_220CD;
- break;
- case 230 ... 239:
- backlightlevel = GAMMA_230CD;
- break;
- case 240 ... 249:
- backlightlevel = GAMMA_240CD;
- break;
- case 250 ... 254:
- backlightlevel = GAMMA_250CD;
- break;
- case 255:
- backlightlevel = GAMMA_300CD;
- break;
- default:
- backlightlevel = GAMMA_160CD;
- break;
- }
- return backlightlevel;
-}
-
-static int ld9040_gamma_ctl(struct lcd_info *lcd)
-{
- int ret = 0;
- const unsigned short *gamma;
- struct ld9040_panel_data *pdata = lcd->lcd_pd->pdata;
-
- if (lcd->gamma_mode)
- gamma = pdata->gamma19_table[lcd->bl];
- else
- gamma = pdata->gamma22_table[lcd->bl];
-
- ret = ld9040_panel_send_sequence(lcd, gamma);
- if (ret) {
- ret = -EPERM;
- goto gamma_err;
- }
-
- lcd->current_gamma_mode = lcd->gamma_mode;
-gamma_err:
- return ret;
-}
-
-static int ld9040_set_elvss(struct lcd_info *lcd)
-{
- int ret = 0;
- struct ld9040_panel_data *pdata = lcd->lcd_pd->pdata;
-
- if (lcd->acl_enable) {
- switch (lcd->bl) {
- case GAMMA_30CD ... GAMMA_200CD: /* 30cd ~ 200cd */
- ret = ld9040_panel_send_sequence(lcd, pdata->elvss_table[0]);
- break;
- case GAMMA_210CD ... GAMMA_300CD: /* 210cd ~ 300cd */
- ret = ld9040_panel_send_sequence(lcd, pdata->elvss_table[1]);
- break;
- default:
- break;
- }
- } else {
- switch (lcd->bl) {
- case GAMMA_30CD ... GAMMA_100CD: /* 30cd ~ 100cd */
- ret = ld9040_panel_send_sequence(lcd, pdata->elvss_table[0]);
- break;
- case GAMMA_110CD ... GAMMA_160CD: /* 110cd ~ 160cd */
- ret = ld9040_panel_send_sequence(lcd, pdata->elvss_table[1]);
- break;
- case GAMMA_170CD ... GAMMA_200CD: /* 170cd ~ 200cd */
- ret = ld9040_panel_send_sequence(lcd, pdata->elvss_table[2]);
- break;
- case GAMMA_210CD ... GAMMA_300CD: /* 210cd ~ 300cd */
- ret = ld9040_panel_send_sequence(lcd, pdata->elvss_table[3]);
- break;
- default:
- break;
- }
- }
-
- dev_dbg(&lcd->ld->dev, "level = %d\n", lcd->bl);
-
- if (ret) {
- ret = -EPERM;
- goto elvss_err;
- }
-
-elvss_err:
- return ret;
-}
-
-static int ld9040_set_acl(struct lcd_info *lcd)
-{
- int ret = 0;
- struct ld9040_panel_data *pdata = lcd->lcd_pd->pdata;
-
- if (lcd->acl_enable) {
- if (lcd->cur_acl == 0) {
- if (lcd->bl == 0 || lcd->bl == 1) {
- ret = ld9040_panel_send_sequence(lcd, pdata->acl_table[0]);
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n", __func__, lcd->cur_acl);
- } else {
- ret = ld9040_panel_send_sequence(lcd, pdata->acl_on);
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_on\n", __func__, lcd->cur_acl);
- }
- }
- switch (lcd->bl) {
- case GAMMA_30CD ... GAMMA_40CD: /* 30cd ~ 40cd */
- if (lcd->cur_acl != 0) {
- ret = ld9040_panel_send_sequence(lcd, pdata->acl_table[0]);
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_70CD ... GAMMA_250CD: /* 70cd ~ 250cd */
- if (lcd->cur_acl != 40) {
- ret = ld9040_panel_send_sequence(lcd, pdata->acl_table[1]);
- lcd->cur_acl = 40;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- default:
- if (lcd->cur_acl != 50) {
- ret = ld9040_panel_send_sequence(lcd, pdata->acl_table[2]);
- lcd->cur_acl = 50;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- }
- } else {
- ret = ld9040_panel_send_sequence(lcd, pdata->acl_table[0]);
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
-
- if (ret) {
- ret = -EPERM;
- goto acl_err;
- }
-
-acl_err:
- return ret;
-}
-
-static int ld9040_ldi_init(struct lcd_info *lcd)
-{
- int ret, i;
- struct ld9040_panel_data *pdata = lcd->lcd_pd->pdata;
- const unsigned short *init_seq[] = {
- pdata->seq_user_set,
- pdata->seq_displayctl_set,
- pdata->seq_gtcon_set,
- pdata->seq_panelcondition_set,
- pdata->acl_table[0],
- pdata->sleep_out,
- pdata->elvss_on,
- pdata->seq_pwrctl_set,
- pdata->gamma22_table[0],
- };
- for (i = 0; i < ARRAY_SIZE(init_seq); i++) {
- ret = ld9040_panel_send_sequence(lcd, init_seq[i]);
- if (ret)
- break;
- }
-
- return ret;
-}
-
-static int ld9040_ldi_enable(struct lcd_info *lcd)
-{
- int ret = 0;
- struct ld9040_panel_data *pdata = lcd->lcd_pd->pdata;
-
- ret = ld9040_panel_send_sequence(lcd, pdata->display_on);
-
- return ret;
-}
-
-static int ld9040_ldi_disable(struct lcd_info *lcd)
-{
- int ret;
- struct ld9040_panel_data *pdata = lcd->lcd_pd->pdata;
-
- lcd->ldi_enable = 0;
- ret = ld9040_panel_send_sequence(lcd, pdata->display_off);
- ret = ld9040_panel_send_sequence(lcd, pdata->sleep_in);
-
- return ret;
-}
-
-static int update_brightness(struct lcd_info *lcd, u8 force)
-{
- int ret = 0, brightness;
- struct ld9040_panel_data *pdata = lcd->lcd_pd->pdata;
-
- mutex_lock(&lcd->bl_lock);
-
- brightness = lcd->bd->props.brightness;
-
- if (unlikely(!lcd->auto_brightness && brightness > 250))
- brightness = 250;
-
- lcd->bl = get_backlight_level_from_brightness(brightness);
-
- if ((force) || ((lcd->ldi_enable) && (lcd->current_bl != lcd->bl))) {
-
- ret = ld9040_gamma_ctl(lcd);
-
- ret |= ld9040_set_acl(lcd);
-
- ret |= ld9040_set_elvss(lcd);
-
- lcd->current_bl = lcd->bl;
-
- dev_info(&lcd->ld->dev, "id=%d brightness=%d, bl=%d, candela=%d\n", pdata->lcdtype, brightness, lcd->bl, candela_table[lcd->bl]);
- }
-
- mutex_unlock(&lcd->bl_lock);
-
- return ret;
-}
-
-
-static int ld9040_power_on(struct lcd_info *lcd)
-{
- int ret = 0;
- struct lcd_platform_data *pd = NULL;
- pd = lcd->lcd_pd;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- if (!pd) {
- dev_err(&lcd->ld->dev, "platform data is NULL.\n");
- return -EFAULT;
- }
-
- if (!pd->power_on) {
- dev_err(&lcd->ld->dev, "power_on is NULL.\n");
- return -EFAULT;
- } else {
- pd->power_on(lcd->ld, 1);
- msleep(pd->power_on_delay);
- }
-
- if (!pd->reset) {
- dev_err(&lcd->ld->dev, "reset is NULL.\n");
- return -EFAULT;
- } else {
- pd->reset(lcd->ld);
- msleep(pd->reset_delay);
- }
-
- ret = ld9040_ldi_init(lcd);
-
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to initialize ldi.\n");
- goto err;
- }
-
- ret = ld9040_ldi_enable(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to enable ldi.\n");
- goto err;
- }
-
- lcd->ldi_enable = 1;
-
- update_brightness(lcd, 1);
-
-err:
- return ret;
-}
-
-static int ld9040_power_off(struct lcd_info *lcd)
-{
- int ret = 0;
- struct lcd_platform_data *pd = NULL;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- pd = lcd->lcd_pd;
- if (!pd) {
- dev_err(&lcd->ld->dev, "platform data is NULL.\n");
- return -EFAULT;
- }
-
- ret = ld9040_ldi_disable(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "lcd setting failed.\n");
- ret = -EIO;
- goto err;
- }
-
- if (!pd->gpio_cfg_earlysuspend) {
- dev_err(&lcd->ld->dev, "gpio_cfg_earlysuspend is NULL.\n");
- ret = -EFAULT;
- goto err;
- } else
- pd->gpio_cfg_earlysuspend(lcd->ld);
-
- if (!pd->power_on) {
- dev_err(&lcd->ld->dev, "power_on is NULL.\n");
- ret = -EFAULT;
- goto err;
- } else {
- msleep(pd->power_off_delay);
- pd->power_on(lcd->ld, 0);
- }
-
-err:
- return ret;
-}
-
-static int ld9040_power(struct lcd_info *lcd, int power)
-{
- int ret = 0;
-
- if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
- ret = ld9040_power_on(lcd);
- else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
- ret = ld9040_power_off(lcd);
-
- if (!ret)
- lcd->power = power;
-
- return ret;
-}
-
-static int ld9040_set_power(struct lcd_device *ld, int power)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
- power != FB_BLANK_NORMAL) {
- dev_err(&lcd->ld->dev, "power value should be 0, 1 or 4.\n");
- return -EINVAL;
- }
-
- return ld9040_power(lcd, power);
-}
-
-static int ld9040_get_power(struct lcd_device *ld)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- return lcd->power;
-}
-
-static int ld9040_get_brightness(struct backlight_device *bd)
-{
- struct lcd_info *lcd = bl_get_data(bd);
-
- return candela_table[lcd->bl];
-}
-
-static int ld9040_set_brightness(struct backlight_device *bd)
-{
- int ret = 0, brightness = bd->props.brightness;
- struct lcd_info *lcd = bl_get_data(bd);
-
- if (brightness < MIN_BRIGHTNESS ||
- brightness > bd->props.max_brightness) {
- dev_err(&bd->dev, "lcd brightness should be %d to %d. now %d\n",
- MIN_BRIGHTNESS, MAX_BRIGHTNESS, brightness);
- return -EINVAL;
- }
-
- if (lcd->ldi_enable) {
- ret = update_brightness(lcd, 0);
- if (ret < 0)
- return -EINVAL;
- }
-
- return ret;
-}
-
-static struct lcd_ops ld9040_lcd_ops = {
- .set_power = ld9040_set_power,
- .get_power = ld9040_get_power,
-};
-
-static const struct backlight_ops ld9040_backlight_ops = {
- .get_brightness = ld9040_get_brightness,
- .update_status = ld9040_set_brightness,
-};
-
-static ssize_t gamma_table_show(struct device *dev, struct
-device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- struct ld9040_panel_data *pdata = lcd->lcd_pd->pdata;
- const unsigned short *wbuf;
- int i, j;
-
- for (i = 0; i < GAMMA_MAX; i++) {
- wbuf = pdata->gamma22_table[i];
- j = 1;
- while ((wbuf[j] & DEFMASK) != ENDDEF) {
- if ((wbuf[j] & DEFMASK) != SLEEPMSEC) {
- if (wbuf[j] != DATA_ONLY)
- printk("0x%02x, ", wbuf[j]);
- }
- j++;
- }
- printk("\n");
- }
-
- for (i = 0; i < GAMMA_MAX; i++) {
- wbuf = pdata->gamma19_table[i];
- j = 1;
- while ((wbuf[j] & DEFMASK) != ENDDEF) {
- if ((wbuf[j] & DEFMASK) != SLEEPMSEC) {
- if (wbuf[j] != DATA_ONLY)
- printk("0x%02x, ", wbuf[j]);
- }
- j++;
- }
- printk("\n");
- }
-
-#ifdef SMART_DIMMING
- for (i = 0; i < 4; i++) {
- wbuf = pdata->elvss_table[i];
- j = 1;
- while ((wbuf[j] & DEFMASK) != ENDDEF) {
- if ((wbuf[j] & DEFMASK) != SLEEPMSEC) {
- if (wbuf[j] != DATA_ONLY)
- printk("0x%02x, ", wbuf[j]);
- }
- j++;
- }
- printk("\n");
- }
-#endif
-
- return strlen(buf);
-}
-static DEVICE_ATTR(gamma_table, 0444, gamma_table_show, NULL);
-
-static ssize_t acl_set_show(struct device *dev, struct
-device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->acl_enable);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-static ssize_t acl_set_store(struct device *dev, struct
-device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->acl_enable != value) {
- dev_info(&lcd->ld->dev, "%s - %d, %d\n", __func__, lcd->acl_enable, value);
- mutex_lock(&lcd->bl_lock);
- lcd->acl_enable = value;
- if (lcd->ldi_enable)
- ld9040_set_acl(lcd);
- mutex_unlock(&lcd->bl_lock);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(power_reduce, 0664,
- acl_set_show, acl_set_store);
-
-static ssize_t lcdtype_show(struct device *dev, struct
-device_attribute *attr, char *buf)
-{
-
- char temp[15];
- sprintf(temp, "SMD_AMS427G03\n");
- strcat(buf, temp);
- return strlen(buf);
-}
-
-static DEVICE_ATTR(lcd_type, 0664,
- lcdtype_show, NULL);
-
-static ssize_t octa_lcdtype_show(struct device *dev, struct
-device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- struct ld9040_panel_data *pdata = lcd->lcd_pd->pdata;
- char temp[15];
-
- switch (pdata->lcdtype) {
- case LCDTYPE_SM2_A1:
- sprintf(temp, "OCTA : SM2 (A1 line)\n");
- strcat(buf, temp);
- break;
- case LCDTYPE_SM2_A2:
- sprintf(temp, "OCTA : SM2 (A2 line)\n");
- strcat(buf, temp);
- break;
- case LCDTYPE_M2:
- sprintf(temp, "OCTA : M2\n");
- strcat(buf, temp);
- break;
- default:
- sprintf(temp, "error\n");
- strcat(buf, temp);
- dev_info(&lcd->ld->dev, "read octa lcd type failed.\n");
- break;
- }
- return strlen(buf);
-
-}
-
-static DEVICE_ATTR(octa_lcdtype, 0664,
- octa_lcdtype_show, NULL);
-
-static ssize_t ld9040_sysfs_show_gamma_mode(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[10];
-
- switch (lcd->gamma_mode) {
- case 0:
- sprintf(temp, "2.2 mode\n");
- strcat(buf, temp);
- break;
- case 1:
- sprintf(temp, "1.9 mode\n");
- strcat(buf, temp);
- break;
- default:
- dev_info(&lcd->ld->dev, "gamma mode should be 0:2.2, 1:1.9)\n");
- break;
- }
-
- return strlen(buf);
-}
-
-static ssize_t ld9040_sysfs_store_gamma_mode(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t len)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, 0, (unsigned long *)&value);
-
- if (rc < 0)
- return rc;
-
- if (value > 1) {
- dev_err(dev, "there are only 2 types of gamma mode(0:2.2, 1:1.9)\n");
- return len;
- } else
- dev_info(dev, "%s :: gamma_mode=%d\n", __func__, value);
-
- if (lcd->ldi_enable) {
- if ((lcd->current_bl == lcd->bl) && (lcd->current_gamma_mode == value))
- dev_err(&lcd->ld->dev, "gamma_mode & brightness are same\n");
- else {
- mutex_lock(&lcd->bl_lock);
- lcd->gamma_mode = value;
- ld9040_gamma_ctl(lcd);
- mutex_unlock(&lcd->bl_lock);
- }
- }
- return len;
-}
-
-static DEVICE_ATTR(gamma_mode, 0664,
- ld9040_sysfs_show_gamma_mode, ld9040_sysfs_store_gamma_mode);
-
-static ssize_t auto_brightness_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->auto_brightness);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t auto_brightness_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->auto_brightness != value) {
- dev_info(dev, "%s - %d, %d\n", __func__, lcd->auto_brightness, value);
- mutex_lock(&lcd->bl_lock);
- lcd->auto_brightness = value;
- mutex_unlock(&lcd->bl_lock);
- if (lcd->ldi_enable)
- update_brightness(lcd, 0);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(auto_brightness, 0644, auto_brightness_show, auto_brightness_store);
-
-#if defined(CONFIG_PM)
-#ifdef CONFIG_HAS_EARLYSUSPEND
-void ld9040_early_suspend(struct early_suspend *h)
-{
- struct lcd_info *lcd = container_of(h, struct lcd_info ,
- early_suspend);
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- ld9040_power(lcd, FB_BLANK_POWERDOWN);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-
-void ld9040_late_resume(struct early_suspend *h)
-{
- struct lcd_info *lcd = container_of(h, struct lcd_info ,
- early_suspend);
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- ld9040_power(lcd, FB_BLANK_UNBLANK);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-#endif
-#endif
-
-static int ld9040_probe(struct spi_device *spi)
-{
- int ret = 0;
- struct lcd_info *lcd;
- struct ld9040_panel_data *pdata;
-#ifdef SMART_DIMMING
- unsigned int i;
- u8 mtp_data[LDI_MTP_LEN] = {0,};
-#endif
-
- lcd = kzalloc(sizeof(struct lcd_info), GFP_KERNEL);
- if (!lcd) {
- pr_err("failed to allocate for lcd\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- /* ld9040 lcd panel uses 3-wire 9bits SPI Mode. */
- spi->bits_per_word = 9;
-
- ret = spi_setup(spi);
- if (ret < 0) {
- dev_err(&spi->dev, "spi setup failed.\n");
- goto out_free_lcd;
- }
-
- lcd->spi = spi;
- lcd->dev = &spi->dev;
-
- lcd->lcd_pd = (struct lcd_platform_data *)spi->dev.platform_data;
- if (!lcd->lcd_pd) {
- dev_err(&spi->dev, "platform data is NULL.\n");
- goto out_free_lcd;
- }
-
- pdata = lcd->lcd_pd->pdata;
- if (IS_ERR_OR_NULL(pdata)) {
- dev_err(&spi->dev, "panel data is NULL.\n");
- goto out_free_lcd;
- }
-
- lcd->ld = lcd_device_register("panel", &spi->dev,
- lcd, &ld9040_lcd_ops);
- if (IS_ERR(lcd->ld)) {
- ret = PTR_ERR(lcd->ld);
- goto out_free_lcd;
- }
-
- lcd->bd = backlight_device_register("panel", &spi->dev,
- lcd, &ld9040_backlight_ops, NULL);
- if (IS_ERR(lcd->bd)) {
- ret = PTR_ERR(lcd->bd);
- goto out_free_backlight;
- }
-
- lcd->bd->props.max_brightness = MAX_BRIGHTNESS;
- lcd->bd->props.brightness = candela_table[GAMMA_160CD];
- lcd->bl = GAMMA_160CD;
- lcd->current_bl = lcd->bl;
- lcd->gamma_mode = 0;
- lcd->current_gamma_mode = 0;
-
- lcd->acl_enable = 0;
- lcd->cur_acl = 0;
-
- lcd->auto_brightness = 1;
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_gamma_mode);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries\n");
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_power_reduce);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries\n");
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_lcd_type);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries\n");
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_octa_lcdtype);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries\n");
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_gamma_table);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries\n");
-
- ret = device_create_file(&lcd->bd->dev, &dev_attr_auto_brightness);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries\n");
-
- mutex_init(&lcd->lock);
- mutex_init(&lcd->bl_lock);
-
- /*
- * if lcd panel was on from bootloader like u-boot then
- * do not lcd on.
- */
- if (!lcd->lcd_pd->lcd_enabled) {
- /*
- * if lcd panel was off from bootloader then
- * current lcd status is powerdown and then
- * it enables lcd panel.
- */
- lcd->power = FB_BLANK_POWERDOWN;
-
- ld9040_power(lcd, FB_BLANK_UNBLANK);
- } else {
- lcd->power = FB_BLANK_UNBLANK;
- lcd->ldi_enable = 1;
- }
-
- dev_set_drvdata(&spi->dev, lcd);
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
- lcd->early_suspend.suspend = ld9040_early_suspend;
- lcd->early_suspend.resume = ld9040_late_resume;
- lcd->early_suspend.level = EARLY_SUSPEND_LEVEL_DISABLE_FB - 1;
- register_early_suspend(&lcd->early_suspend);
-#endif
-
- if (pdata->lcdtype == LCDTYPE_M2)
- dev_info(&lcd->ld->dev, "%s : lcdtype : M2\n", __func__);
- else if (pdata->lcdtype == LCDTYPE_SM2_A1)
- dev_info(&lcd->ld->dev, "%s : lcdtype : SM2_A1\n", __func__);
- else if (pdata->lcdtype == LCDTYPE_SM2_A2)
- dev_info(&lcd->ld->dev, "%s : lcdtype : SM2_A2\n", __func__);
- else /* UNKNOWN */
- dev_info(&lcd->ld->dev, "%s : lcdtype : Unknown(SM2_A1)\n", __func__);
-
- dev_info(&lcd->ld->dev, "ld9040 panel driver has been probed.\n");
-
-#ifdef SMART_DIMMING
- for (i = 0; i < LDI_ID_LEN; i++) {
- lcd->id[i] = ld9040_read_id(lcd, LDI_ID_REG + i);
- lcd->smart.panelid[i] = lcd->id[i];
- }
-
- if (lcd->id[2] == LD9040_ID3)
- return 0;
-
- /* prepare initial data to operate smart dimming */
-
- printk(KERN_INFO "id: %x, %x, %x", lcd->id[0], lcd->id[1], lcd->id[2]);
-
- init_table_info_22(&lcd->smart);
- init_table_info_19(&lcd->smart);
-
- spi_read_multi_byte(lcd, LDI_MTP_REG, mtp_data, LDI_MTP_LEN);
-
- calc_voltage_table(&lcd->smart, mtp_data);
-
-#if 0
- for (i = 0; i < LDI_MTP_LEN; i++)
- printk(KERN_INFO "%d\n", mtp_data[i]);
-#endif
-
- ld9042_init_smart_dimming_table_22(lcd);
- ld9042_init_smart_dimming_table_19(lcd);
- ld9042_init_smart_elvss_table(lcd);
-
- pdata->elvss_table = (const unsigned short **)ELVSS_TABLE;
- pdata->gamma19_table = (const unsigned short **)ld9042_19gamma_table;
- pdata->gamma22_table = (const unsigned short **)ld9042_22gamma_table;
-
- update_brightness(lcd, 1);
-#endif
-
- return 0;
-
-out_free_backlight:
- lcd_device_unregister(lcd->ld);
- kfree(lcd);
- return ret;
-out_free_lcd:
- kfree(lcd);
- return ret;
-err_alloc:
- return ret;
-}
-
-static int __devexit ld9040_remove(struct spi_device *spi)
-{
- struct lcd_info *lcd = dev_get_drvdata(&spi->dev);
-
- ld9040_power(lcd, FB_BLANK_POWERDOWN);
- lcd_device_unregister(lcd->ld);
- backlight_device_unregister(lcd->bd);
- kfree(lcd);
-
- return 0;
-}
-
-static struct spi_driver ld9040_driver = {
- .driver = {
- .name = "ld9040",
- .bus = &spi_bus_type,
- .owner = THIS_MODULE,
- },
- .probe = ld9040_probe,
- .remove = __devexit_p(ld9040_remove),
-};
-
-static int __init ld9040_init(void)
-{
- return spi_register_driver(&ld9040_driver);
-}
-
-static void __exit ld9040_exit(void)
-{
- spi_unregister_driver(&ld9040_driver);
-}
-
-module_init(ld9040_init);
-module_exit(ld9040_exit);
-
-MODULE_DESCRIPTION("LD9040 AMOLED LCD Driver");
-MODULE_LICENSE("GPL");
-
diff --git a/drivers/video/samsung_duallcd/ld9042_panel.h b/drivers/video/samsung_duallcd/ld9042_panel.h
deleted file mode 100644
index a53eec4..0000000
--- a/drivers/video/samsung_duallcd/ld9042_panel.h
+++ /dev/null
@@ -1,1448 +0,0 @@
-#ifndef __LD9042_PANEL_H__
-#define __LD9042_PANEL_H__
-
-static unsigned short SEQ_ELVSS_MAX[] = {
- 0xB2, 0x00,
-
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x00,
- ENDDEF, 0x00
-};
-
-static unsigned short SEQ_ELVSS_2[] = {
- 0xB2, 0x09,
-
- DATA_ONLY, 0x09,
- DATA_ONLY, 0x09,
- DATA_ONLY, 0x09,
- ENDDEF, 0x00
-};
-
-static unsigned short SEQ_ELVSS_1[] = {
- 0xB2, 0x0C,
-
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0x0C,
- ENDDEF, 0x00
-};
-
-static unsigned short SEQ_ELVSS_MIN[] = {
- 0xB2, 0x0D,
-
- DATA_ONLY, 0x0D,
- DATA_ONLY, 0x0D,
- DATA_ONLY, 0x0D,
- ENDDEF, 0x00
-};
-
-static unsigned short *ELVSS_TABLE[] = {
- SEQ_ELVSS_MIN,
- SEQ_ELVSS_1,
- SEQ_ELVSS_2,
- SEQ_ELVSS_MAX,
-};
-
-
-/* LD9042, 4.27", SM2 A2 Panel Gamma Data */
-static unsigned short ld9042_a2_22_300[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xBC,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xAE,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC8,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xBC,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xCC,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_290[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xBD,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xBD,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC6,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xBE,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xCA,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_280[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xBD,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xBE,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC3,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xBE,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC7,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_270[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xBF,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA3,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xBF,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC0,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xBF,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC4,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_260[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xBE,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA1,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xBF,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xBD,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xBF,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC1,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_250[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xC0,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x9E,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xC0,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xC0,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xBE,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_240[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xC0,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x9C,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xC0,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xC0,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xBB,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_230[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xC0,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x99,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xC1,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xC1,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xB7,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_220[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xC1,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x96,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xC2,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xC3,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xB4,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_210[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xC2,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x94,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xC2,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xC3,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xB1,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_200[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xC2,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x91,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xC3,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xC3,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xAE,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_190[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xC3,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x8E,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xC3,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xAB,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_180[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xAE,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x8B,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA5,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xC5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA4,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xC5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA7,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_170[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA5,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x89,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA3,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xAC,
- DATA_ONLY, 0xC6,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA1,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xC5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA4,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_160[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA5,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x85,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA2,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xC6,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x9D,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xC6,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x9F,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_150[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xC5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x82,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA1,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xC8,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x99,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xC7,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x9B,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_140[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA5,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xC5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x7F,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA0,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAE,
- DATA_ONLY, 0xC8,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x95,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xC8,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x97,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_130[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA5,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xC5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x7C,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0x9F,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xC9,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x91,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xC8,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x93,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_120[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA4,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xC7,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x77,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0x9D,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xCA,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x8C,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xCA,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x8E,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_110[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA4,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xC8,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x73,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0x9C,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xCA,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x88,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xCB,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x89,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_100[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA4,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xC9,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x70,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0x9B,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xCA,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x85,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xCB,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x86,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_90[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA3,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xCC,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x6B,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0x97,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xCD,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x7F,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xCE,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x80,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_70[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xA2,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xCC,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x62,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0x94,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xCE,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x74,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xCF,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x75,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_40[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0x9D,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xCF,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x50,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0x88,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xD1,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x60,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xAE,
- DATA_ONLY, 0xC1,
- DATA_ONLY, 0xD3,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x60,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_22_30[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0x91,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xD1,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x48,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0x7A,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xBD,
- DATA_ONLY, 0xD4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x57,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0xAE,
- DATA_ONLY, 0xC3,
- DATA_ONLY, 0xD5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x56,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_300[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0xC3,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC8,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xCC,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_290[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xC5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA5,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xCA,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_280[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xC6,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA2,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC1,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC8,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_270[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xC6,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA0,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xA6,
- DATA_ONLY, 0xC5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xBE,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC5,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_260[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xC6,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x9D,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xC1,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_250[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xC7,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x9A,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0xC6,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xC5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xBD,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_240[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xC8,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x97,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xA8,
- DATA_ONLY, 0xC6,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xC5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xBA,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_230[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xC7,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x95,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xC6,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xC4,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xB7,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_220[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xC7,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x91,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xA9,
- DATA_ONLY, 0xC7,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xAE,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xAC,
- DATA_ONLY, 0xC5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xB3,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_210[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xC7,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x8E,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xC6,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xC5,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xAF,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_200[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xC9,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x8B,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xC7,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA7,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xAC,
- DATA_ONLY, 0xC7,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xAB,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_190[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xC9,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x88,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xC8,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA3,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xC7,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA8,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_180[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xAC,
- DATA_ONLY, 0xC9,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x85,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xC9,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x9F,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xC7,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA4,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_170[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xC9,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x82,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAA,
- DATA_ONLY, 0xCA,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x9B,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0xAC,
- DATA_ONLY, 0xC8,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0xA0,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_160[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xCA,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x7F,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xCA,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x97,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBC,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xAC,
- DATA_ONLY, 0xC9,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x9C,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_150[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xCA,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x7B,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAB,
- DATA_ONLY, 0xCB,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x93,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBD,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xC9,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x97,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_140[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xCA,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x77,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAC,
- DATA_ONLY, 0xCB,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x8F,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBC,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xCA,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x92,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_130[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xCB,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x73,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xAC,
- DATA_ONLY, 0xCB,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x8B,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBC,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xCB,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x8D,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_120[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xCD,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x6F,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xAC,
- DATA_ONLY, 0xCC,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x86,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBC,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xCC,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x89,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_110[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xCD,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x6B,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB6,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xCD,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x81,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBF,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xCC,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x84,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_100[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xB8,
- DATA_ONLY, 0xAE,
- DATA_ONLY, 0xCD,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x66,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB4,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xAD,
- DATA_ONLY, 0xCE,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x7C,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBE,
- DATA_ONLY, 0xBD,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xCD,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x7E,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_90[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xAE,
- DATA_ONLY, 0xCE,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x61,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xAE,
- DATA_ONLY, 0xCE,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x77,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBE,
- DATA_ONLY, 0xBE,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xCE,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x78,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_70[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xCF,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x56,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xBB,
- DATA_ONLY, 0xAF,
- DATA_ONLY, 0xCF,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x6B,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBE,
- DATA_ONLY, 0xBF,
- DATA_ONLY, 0xB3,
- DATA_ONLY, 0xCE,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x6C,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_40[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xBA,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xD0,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x42,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xA4,
- DATA_ONLY, 0xBD,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xD2,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x53,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBE,
- DATA_ONLY, 0xC1,
- DATA_ONLY, 0xB5,
- DATA_ONLY, 0xD1,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x53,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-static unsigned short ld9042_a2_19_30[] = {
- 0xF9, 0x0C,
- DATA_ONLY, 0xB0,
- DATA_ONLY, 0xB9,
- DATA_ONLY, 0xB1,
- DATA_ONLY, 0xD1,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x38,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0x97,
- DATA_ONLY, 0xBE,
- DATA_ONLY, 0xB2,
- DATA_ONLY, 0xD3,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x49,
- DATA_ONLY, 0x0C,
- DATA_ONLY, 0xBC,
- DATA_ONLY, 0xC2,
- DATA_ONLY, 0xB7,
- DATA_ONLY, 0xD2,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x48,
- 0xFB, 0x02,
- DATA_ONLY, 0x5A,
- ENDDEF, 0x00
-};
-
-/* LD9042, 4.27", SM2 A2 Panel Gamma Table */
-static unsigned short *ld9042_22gamma_table[] = {
- ld9042_a2_22_30,
- ld9042_a2_22_40,
- ld9042_a2_22_70,
- ld9042_a2_22_90,
- ld9042_a2_22_100,
- ld9042_a2_22_110,
- ld9042_a2_22_120,
- ld9042_a2_22_130,
- ld9042_a2_22_140,
- ld9042_a2_22_150,
- ld9042_a2_22_160,
- ld9042_a2_22_170,
- ld9042_a2_22_180,
- ld9042_a2_22_190,
- ld9042_a2_22_200,
- ld9042_a2_22_210,
- ld9042_a2_22_220,
- ld9042_a2_22_230,
- ld9042_a2_22_240,
- ld9042_a2_22_250,
- ld9042_a2_22_300,
-};
-
-static unsigned short *ld9042_19gamma_table[] = {
- ld9042_a2_19_30,
- ld9042_a2_19_40,
- ld9042_a2_19_70,
- ld9042_a2_19_90,
- ld9042_a2_19_100,
- ld9042_a2_19_110,
- ld9042_a2_19_120,
- ld9042_a2_19_130,
- ld9042_a2_19_140,
- ld9042_a2_19_150,
- ld9042_a2_19_160,
- ld9042_a2_19_170,
- ld9042_a2_19_180,
- ld9042_a2_19_190,
- ld9042_a2_19_200,
- ld9042_a2_19_210,
- ld9042_a2_19_220,
- ld9042_a2_19_230,
- ld9042_a2_19_240,
- ld9042_a2_19_250,
- ld9042_a2_19_300,
-};
-
-#endif
diff --git a/drivers/video/samsung_duallcd/ld9042_volt_tbl.h b/drivers/video/samsung_duallcd/ld9042_volt_tbl.h
deleted file mode 100644
index c9fc184..0000000
--- a/drivers/video/samsung_duallcd/ld9042_volt_tbl.h
+++ /dev/null
@@ -1,1479 +0,0 @@
-#ifndef __REF_VOLT_TABLE_H__
-#define __REF_VOLT_TABLE_H__
-
-const u32 volt_table_v1[142] = {
-4386816, 4379648, 4372480, 4364288,
-4357120, 4349952, 4342784, 4335616,
-4327424, 4320256, 4313088, 4305920,
-4298752, 4290560, 4283392, 4276224,
-4269056, 4261888, 4253696, 4246528,
-4239360, 4232192, 4225024, 4216832,
-4209664, 4202496, 4195328, 4188160,
-4179968, 4172800, 4165632, 4158464,
-4151296, 4143104, 4135936, 4128768,
-4121600, 4114432, 4106240, 4099072,
-4091904, 4084736, 4077568, 4069376,
-4062208, 4055040, 4047872, 4040704,
-4032512, 4025344, 4018176, 4011008,
-4003840, 3995648, 3988480, 3981312,
-3974144, 3966976, 3958784, 3951616,
-3944448, 3937280, 3930112, 3921920,
-3914752, 3907584, 3900416, 3893248,
-3885056, 3877888, 3870720, 3863552,
-3856384, 3848192, 3841024, 3833856,
-3826688, 3819520, 3811328, 3804160,
-3796992, 3789824, 3782656, 3774464,
-3767296, 3760128, 3752960, 3745792,
-3737600, 3730432, 3723264, 3716096,
-3708928, 3700736, 3693568, 3686400,
-3679232, 3672064, 3663872, 3656704,
-3649536, 3642368, 3635200, 3627008,
-3619840, 3612672, 3605504, 3598336,
-3590144, 3582976, 3575808, 3568640,
-3561472, 3553280, 3546112, 3538944,
-3531776, 3524608, 3516416, 3509248,
-3502080, 3494912, 3487744, 3479552,
-3472384, 3465216, 3458048, 3450880,
-3442688, 3435520, 3428352, 3421184,
-3414016, 3405824, 3398656, 3391488,
-3384320, 3377152, 3368960, 3361792,
-3354624, 3347456,
-};
-
-const u32 volt_table_v255[382] = {
-3538944, 3531776, 3524608, 3516416,
-3509248, 3502080, 3494912, 3487744,
-3479552, 3472384, 3465216, 3458048,
-3450880, 3442688, 3435520, 3428352,
-3421184, 3414016, 3405824, 3398656,
-3391488, 3384320, 3377152, 3368960,
-3361792, 3354624, 3347456, 3340288,
-3332096, 3324928, 3317760, 3310592,
-3303424, 3295232, 3288064, 3280896,
-3273728, 3266560, 3258368, 3251200,
-3244032, 3236864, 3229696, 3221504,
-3214336, 3207168, 3200000, 3192832,
-3184640, 3177472, 3170304, 3163136,
-3155968, 3147776, 3140608, 3133440,
-3126272, 3119104, 3110912, 3103744,
-3096576, 3089408, 3082240, 3074048,
-3066880, 3059712, 3052544, 3045376,
-3037184, 3030016, 3022848, 3015680,
-3008512, 3000320, 2993152, 2985984,
-2978816, 2971648, 2963456, 2956288,
-2949120, 2941952, 2934784, 2926592,
-2919424, 2912256, 2905088, 2897920,
-2889728, 2882560, 2875392, 2868224,
-2861056, 2852864, 2845696, 2838528,
-2831360, 2824192, 2816000, 2808832,
-2801664, 2794496, 2787328, 2779136,
-2771968, 2764800, 2757632, 2750464,
-2742272, 2735104, 2727936, 2720768,
-2713600, 2705408, 2698240, 2691072,
-2683904, 2676736, 2668544, 2661376,
-2654208, 2647040, 2639872, 2631680,
-2624512, 2617344, 2610176, 2603008,
-2594816, 2587648, 2580480, 2573312,
-2566144, 2557952, 2550784, 2543616,
-2536448, 2529280, 2521088, 2513920,
-2506752, 2499584, 2492416, 2484224,
-2477056, 2469888, 2462720, 2455552,
-2447360, 2440192, 2433024, 2425856,
-2418688, 2410496, 2403328, 2396160,
-2388992, 2381824, 2373632, 2366464,
-2359296, 2352128, 2344960, 2336768,
-2329600, 2322432, 2315264, 2308096,
-2299904, 2292736, 2285568, 2278400,
-2271232, 2263040, 2255872, 2248704,
-2241536, 2234368, 2226176, 2219008,
-2211840, 2204672, 2197504, 2189312,
-2182144, 2174976, 2167808, 2160640,
-2152448, 2145280, 2138112, 2130944,
-2123776, 2115584, 2108416, 2101248,
-2094080, 2086912, 2078720, 2071552,
-2064384, 2057216, 2050048, 2041856,
-2034688, 2027520, 2020352, 2013184,
-2004992, 1997824, 1990656, 1983488,
-1976320, 1968128, 1960960, 1953792,
-1946624, 1939456, 1931264, 1924096,
-1916928, 1909760, 1902592, 1894400,
-1887232, 1880064, 1872896, 1865728,
-1857536, 1850368, 1843200, 1836032,
-1828864, 1820672, 1813504, 1806336,
-1799168, 1792000, 1783808, 1776640,
-1769472, 1762304, 1755136, 1746944,
-1739776, 1732608, 1725440, 1718272,
-1710080, 1702912, 1695744, 1688576,
-1681408, 1673216, 1666048, 1658880,
-1651712, 1644544, 1636352, 1629184,
-1622016, 1614848, 1607680, 1599488,
-1592320, 1585152, 1577984, 1570816,
-1562624, 1555456, 1548288, 1541120,
-1533952, 1525760, 1518592, 1511424,
-1504256, 1497088, 1488896, 1481728,
-1474560, 1467392, 1460224, 1452032,
-1444864, 1437696, 1430528, 1423360,
-1415168, 1408000, 1400832, 1393664,
-1386496, 1378304, 1371136, 1363968,
-1356800, 1349632, 1341440, 1334272,
-1327104, 1319936, 1312768, 1304576,
-1297408, 1290240, 1283072, 1275904,
-1267712, 1260544, 1253376, 1246208,
-1239040, 1230848, 1223680, 1216512,
-1209344, 1202176, 1193984, 1186816,
-1179648, 1172480, 1165312, 1157120,
-1149952, 1142784, 1135616, 1128448,
-1120256, 1113088, 1105920, 1098752,
-1091584, 1083392, 1076224, 1069056,
-1061888, 1054720, 1046528, 1039360,
-1032192, 1025024, 1017856, 1009664,
-1002496, 995328, 988160, 980992,
-972800, 965632, 958464, 951296,
-944128, 935936, 928768, 921600,
-914432, 907264, 899072, 891904,
-884736, 877568, 870400, 862208,
-855040, 847872, 840704, 833536,
-825344, 818176, 811008, 803840,
-796672, 788480, 781312, 774144,
-766976, 759808, 751616, 744448,
-737280, 730112,
-};
-
-
-/*
-u32 volt_table_cv_20_dv_320[256] = {
-64,
-67,
-70,
-74,
-77,
-80,
-83,
-86,
-90,
-93,
-96,
-99,
-102,
-106,
-109,
-112,
-115,
-118,
-122,
-125,
-128,
-131,
-134,
-138,
-141,
-144,
-147,
-150,
-154,
-157,
-160,
-163,
-166,
-170,
-173,
-176,
-179,
-182,
-186,
-189,
-192,
-195,
-198,
-202,
-205,
-208,
-211,
-214,
-218,
-221,
-224,
-227,
-230,
-234,
-237,
-240,
-243,
-246,
-250,
-253,
-256,
-259,
-262,
-266,
-269,
-272,
-275,
-278,
-282,
-285,
-288,
-291,
-294,
-298,
-301,
-304,
-307,
-310,
-314,
-317,
-320,
-323,
-326,
-330,
-333,
-336,
-339,
-342,
-346,
-349,
-352,
-355,
-358,
-362,
-365,
-368,
-371,
-374,
-378,
-381,
-384,
-387,
-390,
-394,
-397,
-400,
-403,
-406,
-410,
-413,
-416,
-419,
-422,
-426,
-429,
-432,
-435,
-438,
-442,
-445,
-448,
-451,
-454,
-458,
-461,
-464,
-467,
-470,
-474,
-477,
-480,
-483,
-486,
-490,
-493,
-496,
-499,
-502,
-506,
-509,
-512,
-515,
-518,
-522,
-525,
-528,
-531,
-534,
-538,
-541,
-544,
-547,
-550,
-554,
-557,
-560,
-563,
-566,
-570,
-573,
-576,
-579,
-582,
-586,
-589,
-592,
-595,
-598,
-602,
-605,
-608,
-611,
-614,
-618,
-621,
-624,
-627,
-630,
-634,
-637,
-640,
-643,
-646,
-650,
-653,
-656,
-659,
-662,
-666,
-669,
-672,
-675,
-678,
-682,
-685,
-688,
-691,
-694,
-698,
-701,
-704,
-707,
-710,
-714,
-717,
-720,
-723,
-726,
-730,
-733,
-736,
-739,
-742,
-746,
-749,
-752,
-755,
-758,
-762,
-765,
-768,
-771,
-774,
-778,
-781,
-784,
-787,
-790,
-794,
-797,
-800,
-803,
-806,
-810,
-813,
-816,
-819,
-822,
-826,
-829,
-832,
-835,
-838,
-842,
-845,
-848,
-851,
-854,
-858,
-861,
-864,
-867,
-870,
-874,
-877,
-880
-};
-*/
-
-u32 volt_table_cv_65_dv_320[256] = {
-208,
-211,
-214,
-218,
-221,
-224,
-227,
-230,
-234,
-237,
-240,
-243,
-246,
-250,
-253,
-256,
-259,
-262,
-266,
-269,
-272,
-275,
-278,
-282,
-285,
-288,
-291,
-294,
-298,
-301,
-304,
-307,
-310,
-314,
-317,
-320,
-323,
-326,
-330,
-333,
-336,
-339,
-342,
-346,
-349,
-352,
-355,
-358,
-362,
-365,
-368,
-371,
-374,
-378,
-381,
-384,
-387,
-390,
-394,
-397,
-400,
-403,
-406,
-410,
-413,
-416,
-419,
-422,
-426,
-429,
-432,
-435,
-438,
-442,
-445,
-448,
-451,
-454,
-458,
-461,
-464,
-467,
-470,
-474,
-477,
-480,
-483,
-486,
-490,
-493,
-496,
-499,
-502,
-506,
-509,
-512,
-515,
-518,
-522,
-525,
-528,
-531,
-534,
-538,
-541,
-544,
-547,
-550,
-554,
-557,
-560,
-563,
-566,
-570,
-573,
-576,
-579,
-582,
-586,
-589,
-592,
-595,
-598,
-602,
-605,
-608,
-611,
-614,
-618,
-621,
-624,
-627,
-630,
-634,
-637,
-640,
-643,
-646,
-650,
-653,
-656,
-659,
-662,
-666,
-669,
-672,
-675,
-678,
-682,
-685,
-688,
-691,
-694,
-698,
-701,
-704,
-707,
-710,
-714,
-717,
-720,
-723,
-726,
-730,
-733,
-736,
-739,
-742,
-746,
-749,
-752,
-755,
-758,
-762,
-765,
-768,
-771,
-774,
-778,
-781,
-784,
-787,
-790,
-794,
-797,
-800,
-803,
-806,
-810,
-813,
-816,
-819,
-822,
-826,
-829,
-832,
-835,
-838,
-842,
-845,
-848,
-851,
-854,
-858,
-861,
-864,
-867,
-870,
-874,
-877,
-880,
-883,
-886,
-890,
-893,
-896,
-899,
-902,
-906,
-909,
-912,
-915,
-918,
-922,
-925,
-928,
-931,
-934,
-938,
-941,
-944,
-947,
-950,
-954,
-957,
-960,
-963,
-966,
-970,
-973,
-976,
-979,
-982,
-986,
-989,
-992,
-995,
-998,
-1002,
-1005,
-1008,
-1011,
-1014,
-1018,
-1021,
-1024,
-};
-
-const u32 gamma_300_gra_table[256] = {
-0, 2, 7, 17,
-32, 53, 78, 110,
-148, 191, 241, 298,
-361, 430, 506, 589,
-679, 776, 880, 991,
-1109, 1235, 1368, 1508,
-1657, 1812, 1975, 2147,
-2325, 2512, 2706, 2909,
-3119, 3338, 3564, 3799,
-4042, 4293, 4553, 4820,
-5096, 5381, 5674, 5975,
-6285, 6604, 6931, 7267,
-7611, 7965, 8327, 8697,
-9077, 9465, 9863, 10269,
-10684, 11109, 11542, 11984,
-12436, 12896, 13366, 13845,
-14333, 14830, 15337, 15852,
-16378, 16912, 17456, 18009,
-18572, 19144, 19726, 20317,
-20918, 21528, 22148, 22778,
-23417, 24066, 24724, 25392,
-26070, 26758, 27456, 28163,
-28880, 29607, 30344, 31090,
-31847, 32613, 33390, 34176,
-34973, 35779, 36596, 37422,
-38259, 39106, 39963, 40830,
-41707, 42594, 43492, 44399,
-45317, 46246, 47184, 48133,
-49092, 50062, 51042, 52032,
-53032, 54043, 55065, 56097,
-57139, 58192, 59255, 60329,
-61413, 62508, 63613, 64729,
-65856, 66993, 68141, 69299,
-70469, 71648, 72839, 74040,
-75252, 76475, 77708, 78952,
-80207, 81473, 82750, 84037,
-85336, 86645, 87965, 89296,
-90638, 91990, 93354, 94729,
-96114, 97511, 98919, 100337,
-101767, 103208, 104659, 106122,
-107596, 109081, 110577, 112085,
-113603, 115132, 116673, 118225,
-119788, 121362, 122948, 124544,
-126152, 127772, 129402, 131044,
-132697, 134361, 136037, 137724,
-139422, 141132, 142853, 144586,
-146330, 148085, 149852, 151630,
-153419, 155220, 157033, 158857,
-160692, 162540, 164398, 166268,
-168150, 170043, 171948, 173864,
-175792, 177731, 179683, 181645,
-183620, 185606, 187603, 189613,
-191634, 193667, 195711, 197767,
-199835, 201915, 204006, 206109,
-208224, 210351, 212489, 214640,
-216802, 218976, 221161, 223359,
-225569, 227790, 230023, 232268,
-234525, 236794, 239075, 241368,
-243672, 245989, 248318, 250658,
-253011, 255375, 257752, 260141,
-262541, 264954, 267379, 269815,
-272264, 274725, 277198, 279683,
-282180, 284689, 287211, 289744,
-292290, 294848, 297418, 300000,
-};
-
-
-const u32 gamma_22_table[256] = {
-0,
-5,
-23,
-56,
-107,
-175,
-261,
-367,
-492,
-638,
-804,
-992,
-1201,
-1433,
-1686,
-1963,
-2262,
-2585,
-2932,
-3302,
-3697,
-4116,
-4559,
-5028,
-5521,
-6040,
-6584,
-7155,
-7751,
-8373,
-9021,
-9696,
-10397,
-11126,
-11881,
-12663,
-13473,
-14310,
-15175,
-16067,
-16988,
-17936,
-18912,
-19917,
-20951,
-22012,
-23103,
-24222,
-25371,
-26548,
-27755,
-28991,
-30256,
-31551,
-32875,
-34230,
-35614,
-37028,
-38472,
-39947,
-41451,
-42987,
-44552,
-46148,
-47775,
-49433,
-51122,
-52841,
-54592,
-56374,
-58187,
-60031,
-61907,
-63814,
-65753,
-67724,
-69727,
-71761,
-73827,
-75926,
-78056,
-80219,
-82414,
-84641,
-86901,
-89193,
-91518,
-93875,
-96266,
-98689,
-101145,
-103634,
-106156,
-108711,
-111299,
-113920,
-116575,
-119264,
-121985,
-124740,
-127529,
-130352,
-133208,
-136098,
-139022,
-141980,
-144972,
-147998,
-151058,
-154152,
-157280,
-160443,
-163640,
-166872,
-170138,
-173439,
-176774,
-180144,
-183548,
-186988,
-190462,
-193972,
-197516,
-201095,
-204710,
-208359,
-212044,
-215764,
-219519,
-223310,
-227136,
-230998,
-234895,
-238827,
-242796,
-246800,
-250840,
-254915,
-259027,
-263174,
-267358,
-271577,
-275832,
-280124,
-284452,
-288815,
-293216,
-297652,
-302125,
-306634,
-311180,
-315762,
-320381,
-325036,
-329729,
-334457,
-339223,
-344025,
-348864,
-353740,
-358653,
-363603,
-368590,
-373615,
-378676,
-383774,
-388910,
-394083,
-399293,
-404540,
-409825,
-415148,
-420507,
-425905,
-431340,
-436812,
-442322,
-447870,
-453456,
-459079,
-464741,
-470440,
-476177,
-481952,
-487765,
-493616,
-499505,
-505432,
-511397,
-517401,
-523443,
-529523,
-535641,
-541798,
-547993,
-554227,
-560499,
-566809,
-573158,
-579546,
-585972,
-592438,
-598941,
-605484,
-612065,
-618685,
-625344,
-632042,
-638779,
-645555,
-652370,
-659223,
-666116,
-673049,
-680020,
-687030,
-694080,
-701169,
-708297,
-715465,
-722672,
-729918,
-737204,
-744530,
-751895,
-759299,
-766743,
-774227,
-781750,
-789313,
-796916,
-804559,
-812241,
-819963,
-827725,
-835527,
-843369,
-851251,
-859173,
-867135,
-875137,
-883179,
-891262,
-899384,
-907547,
-915750,
-923993,
-932276,
-940600,
-948964,
-957369,
-965814,
-974300,
-982826,
-991392,
-1000000,
-};
-
-const u32 gamma_19_table[256] = {
-0,
-26,
-99,
-215,
-372,
-569,
-805,
-1079,
-1391,
-1740,
-2126,
-2548,
-3006,
-3499,
-4029,
-4593,
-5192,
-5826,
-6495,
-7197,
-7934,
-8705,
-9509,
-10348,
-11219,
-12124,
-13062,
-14033,
-15037,
-16074,
-17143,
-18245,
-19380,
-20547,
-21746,
-22977,
-24240,
-25536,
-26863,
-28222,
-29613,
-31035,
-32489,
-33975,
-35492,
-37040,
-38620,
-40230,
-41872,
-43545,
-45249,
-46984,
-48750,
-50547,
-52374,
-54232,
-56121,
-58041,
-59991,
-61971,
-63982,
-66023,
-68095,
-70197,
-72329,
-74491,
-76684,
-78907,
-81159,
-83442,
-85755,
-88097,
-90470,
-92872,
-95304,
-97766,
-100258,
-102779,
-105330,
-107910,
-110520,
-113160,
-115829,
-118528,
-121256,
-124013,
-126800,
-129616,
-132461,
-135336,
-138240,
-141173,
-144135,
-147126,
-150146,
-153196,
-156274,
-159382,
-162518,
-165683,
-168878,
-172101,
-175353,
-178634,
-181943,
-185282,
-188649,
-192044,
-195469,
-198922,
-202404,
-205914,
-209453,
-213021,
-216617,
-220241,
-223894,
-227576,
-231286,
-235024,
-238791,
-242586,
-246409,
-250261,
-254141,
-258049,
-261985,
-265950,
-269943,
-273964,
-278013,
-282090,
-286196,
-290329,
-294491,
-298681,
-302898,
-307144,
-311418,
-315719,
-320049,
-324406,
-328792,
-333205,
-337646,
-342115,
-346612,
-351136,
-355689,
-360269,
-364877,
-369513,
-374176,
-378867,
-383586,
-388332,
-393106,
-397908,
-402737,
-407594,
-412478,
-417390,
-422330,
-427297,
-432291,
-437313,
-442363,
-447440,
-452544,
-457676,
-462835,
-468021,
-473235,
-478477,
-483745,
-489041,
-494365,
-499715,
-505093,
-510498,
-515930,
-521390,
-526877,
-532391,
-537932,
-543500,
-549095,
-554718,
-560368,
-566045,
-571749,
-577480,
-583238,
-589023,
-594835,
-600674,
-606541,
-612434,
-618354,
-624301,
-630275,
-636276,
-642304,
-648359,
-654441,
-660550,
-666686,
-672848,
-679037,
-685254,
-691497,
-697766,
-704063,
-710386,
-716737,
-723113,
-729517,
-735948,
-742405,
-748889,
-755399,
-761936,
-768500,
-775091,
-781708,
-788352,
-795022,
-801720,
-808443,
-815194,
-821971,
-828774,
-835604,
-842461,
-849344,
-856253,
-863190,
-870152,
-877141,
-884157,
-891199,
-898268,
-905363,
-912484,
-919632,
-926806,
-934007,
-941234,
-948488,
-955767,
-963074,
-970406,
-977765,
-985150,
-992562,
-1000000,
-};
-
-
-
-
-/*
-
-0, 0, 0, 0,
-0, 0, 0, 0,
-0, 1, 1, 1,
-1, 1, 2, 2,
-2, 3, 3, 3,
-4, 4, 5, 5,
-6, 6, 7, 7,
-8, 8, 9, 10,
-10, 11, 12, 13,
-13, 14, 15, 16,
-17, 18, 19, 20,
-21, 22, 23, 24,
-25, 27, 28, 29,
-30, 32, 33, 34,
-36, 37, 38, 40,
-41, 43, 45, 46,
-48, 49, 51, 53,
-55, 56, 58, 60,
-62, 64, 66, 68,
-70, 72, 74, 76,
-78, 80, 82, 85,
-87, 89, 92, 94,
-96, 99, 101, 104,
-106, 109, 111, 114,
-117, 119, 122, 125,
-128, 130, 133, 136,
-139, 142, 145, 148,
-151, 154, 157, 160,
-164, 167, 170, 173,
-177, 180, 184, 187,
-190, 194, 198, 201,
-205, 208, 212, 216,
-220, 223, 227, 231,
-235, 239, 243, 247,
-251, 255, 259, 263,
-267, 272, 276, 280,
-284, 289, 293, 298,
-302, 307, 311, 316,
-320, 325, 330, 334,
-339, 344, 349, 354,
-359, 364, 369, 374,
-379, 384, 389, 394,
-399, 405, 410, 415,
-421, 426, 431, 437,
-442, 448, 453, 459,
-465, 470, 476, 482,
-488, 494, 500, 505,
-511, 517, 523, 530,
-536, 542, 548, 554,
-560, 567, 573, 580,
-586, 592, 599, 605,
-612, 619, 625, 632,
-639, 646, 652, 659,
-666, 673, 680, 687,
-694, 701, 708, 715,
-723, 730, 737, 745,
-752, 759, 767, 774,
-782, 789, 797, 805,
-812, 820, 828, 836,
-843, 851, 859, 867,
-875, 883, 891, 899,
-908, 916, 924, 932,
-941, 949, 957, 966,
-974, 983, 991, 1000,
-*/
-
-
-
-const struct str_flookup_table flookup_table[302] = {
-{ 0, 0}, { 1, 20},
-{ 20, 7}, { 27, 5},
-{ 32, 4}, { 36, 4},
-{ 40, 4}, { 44, 3},
-{ 47, 3}, { 50, 2},
-{ 52, 3}, { 55, 2},
-{ 57, 3}, { 60, 2},
-{ 62, 2}, { 64, 2},
-{ 66, 2}, { 68, 2},
-{ 70, 1}, { 71, 2},
-{ 73, 2}, { 75, 2},
-{ 77, 1}, { 78, 2},
-{ 80, 1}, { 81, 2},
-{ 83, 1}, { 84, 2},
-{ 86, 1}, { 87, 2},
-{ 89, 1}, { 90, 1},
-{ 91, 2}, { 93, 1},
-{ 94, 1}, { 95, 2},
-{ 97, 1}, { 98, 1},
-{ 99, 1}, {100, 1},
-{101, 2}, {103, 1},
-{104, 1}, {105, 1},
-{106, 1}, {107, 1},
-{108, 1}, {109, 1},
-{110, 1}, {111, 1},
-{112, 1}, {113, 1},
-{114, 1}, {115, 1},
-{116, 1}, {117, 1},
-{118, 1}, {119, 1},
-{120, 1}, {121, 1},
-{122, 1}, {123, 1},
-{124, 1}, {125, 1},
-{126, 1}, {127, 1},
-{128, 1}, {129, 1},
-{ 0, 0}, {130, 1},
-{131, 1}, {132, 1},
-{133, 1}, {134, 1},
-{ 0, 0}, {135, 1},
-{136, 1}, {137, 1},
-{138, 1}, {139, 1},
-{ 0, 0}, {140, 1},
-{141, 1}, {142, 1},
-{ 0, 0}, {143, 1},
-{144, 1}, {145, 1},
-{146, 1}, { 0, 0},
-{147, 1}, {148, 1},
-{149, 1}, { 0, 0},
-{150, 1}, {151, 1},
-{ 0, 0}, {152, 1},
-{153, 1}, {154, 1},
-{ 0, 0}, {155, 1},
-{156, 1}, { 0, 0},
-{157, 1}, {158, 1},
-{ 0, 0}, {159, 1},
-{160, 1}, { 0, 0},
-{161, 1}, {162, 1},
-{ 0, 0}, {163, 1},
-{164, 1}, { 0, 0},
-{165, 1}, {166, 1},
-{ 0, 0}, {167, 1},
-{168, 1}, { 0, 0},
-{169, 1}, {170, 1},
-{ 0, 0}, {171, 1},
-{ 0, 0}, {172, 1},
-{173, 1}, { 0, 0},
-{174, 1}, { 0, 0},
-{175, 1}, {176, 1},
-{ 0, 0}, {177, 1},
-{ 0, 0}, {178, 1},
-{179, 1}, { 0, 0},
-{180, 1}, { 0, 0},
-{181, 1}, {182, 1},
-{ 0, 0}, {183, 1},
-{ 0, 0}, {184, 1},
-{ 0, 0}, {185, 1},
-{186, 1}, { 0, 0},
-{187, 1}, { 0, 0},
-{188, 1}, { 0, 0},
-{189, 1}, { 0, 0},
-{190, 1}, {191, 1},
-{ 0, 0}, {192, 1},
-{ 0, 0}, {193, 1},
-{ 0, 0}, {194, 1},
-{ 0, 0}, {195, 1},
-{ 0, 0}, {196, 1},
-{ 0, 0}, {197, 1},
-{198, 1}, { 0, 0},
-{199, 1}, { 0, 0},
-{200, 1}, { 0, 0},
-{201, 1}, { 0, 0},
-{202, 1}, { 0, 0},
-{203, 1}, { 0, 0},
-{204, 1}, { 0, 0},
-{205, 1}, { 0, 0},
-{206, 1}, { 0, 0},
-{207, 1}, { 0, 0},
-{208, 1}, { 0, 0},
-{209, 1}, { 0, 0},
-{210, 1}, { 0, 0},
-{211, 1}, { 0, 0},
-{212, 1}, { 0, 0},
-{213, 1}, { 0, 0},
-{ 0, 0}, {214, 1},
-{ 0, 0}, {215, 1},
-{ 0, 0}, {216, 1},
-{ 0, 0}, {217, 1},
-{ 0, 0}, {218, 1},
-{ 0, 0}, {219, 1},
-{ 0, 0}, {220, 1},
-{ 0, 0}, {221, 1},
-{ 0, 0}, { 0, 0},
-{222, 1}, { 0, 0},
-{223, 1}, { 0, 0},
-{224, 1}, { 0, 0},
-{225, 1}, { 0, 0},
-{ 0, 0}, {226, 1},
-{ 0, 0}, {227, 1},
-{ 0, 0}, {228, 1},
-{ 0, 0}, {229, 1},
-{ 0, 0}, { 0, 0},
-{230, 1}, { 0, 0},
-{231, 1}, { 0, 0},
-{232, 1}, { 0, 0},
-{233, 1}, { 0, 0},
-{ 0, 0}, {234, 1},
-{ 0, 0}, {235, 1},
-{ 0, 0}, { 0, 0},
-{236, 1}, { 0, 0},
-{237, 1}, { 0, 0},
-{238, 1}, { 0, 0},
-{ 0, 0}, {239, 1},
-{ 0, 0}, {240, 1},
-{ 0, 0}, {241, 1},
-{ 0, 0}, { 0, 0},
-{242, 1}, { 0, 0},
-{243, 1}, { 0, 0},
-{ 0, 0}, {244, 1},
-{ 0, 0}, {245, 1},
-{ 0, 0}, { 0, 0},
-{246, 1}, { 0, 0},
-{247, 1}, { 0, 0},
-{ 0, 0}, {248, 1},
-{ 0, 0}, {249, 1},
-{ 0, 0}, { 0, 0},
-{250, 1}, { 0, 0},
-{251, 1}, { 0, 0},
-{ 0, 0}, {252, 1},
-{ 0, 0}, {253, 1},
-{ 0, 0}, { 0, 0},
-{254, 1}, { 0, 0},
-{ 0, 0}, {255, 1},
-
-};
-
-
-
-#endif
diff --git a/drivers/video/samsung_duallcd/logo_rgb24.h b/drivers/video/samsung_duallcd/logo_rgb24.h
deleted file mode 100644
index 13cfce3..0000000
--- a/drivers/video/samsung_duallcd/logo_rgb24.h
+++ /dev/null
@@ -1,24004 +0,0 @@
-const unsigned int __nosavedata LOGO_RGB24[] = {
- 0x00d3e0e1, 0x00b3bccd, 0x00b7bbd6, 0x00bdc1df, 0x00bac0db, 0x00b3bccb, 0x00b8c5d2, 0x00bfccd6, 0x00c5d2d4, 0x00d9e4e3, 0x00e7ebf0, 0x00ced0d7, 0x00b0b1bb, 0x00aeacb0, 0x00acabae, 0x00ababac,
- 0x009bae99, 0x009dad9e, 0x00a3adac, 0x00a4abb1, 0x00a4abba, 0x00b0adae, 0x00b3a8a3, 0x00c2b0a8, 0x00cfc6a5, 0x00ded2af, 0x00e7d7b6, 0x00e1d7b2, 0x00cec6b5, 0x00b2aca7, 0x00afb0b3, 0x00b2b5bc,
- 0x009fb9ae, 0x00a1b9b3, 0x00a6b9ba, 0x00aab8b8, 0x00afb7ba, 0x00b1b8b7, 0x00b0b6b3, 0x00b5b9b3, 0x00afb7a2, 0x00bbc1ad, 0x00d4d5bf, 0x00d6dab5, 0x00d4d9b0, 0x00bdbb9e, 0x00d2cdc1, 0x00ddd0d7,
- 0x00c9d0ab, 0x00c4ce8e, 0x00cbd393, 0x00e0e4bb, 0x00d6d8e5, 0x00b1ccd1, 0x00abc9d5, 0x00b5d0e2, 0x00b3cfdd, 0x00abcdd2, 0x00a3cbcd, 0x009ecdc8, 0x009ec9d4, 0x00a5c3d2, 0x00afc4d6, 0x00b6c1d5,
- 0x00acbfbc, 0x00acc5c8, 0x00afc8d1, 0x00a5bfcc, 0x00b7bfcc, 0x00c7c9cb, 0x00d0c6c4, 0x00cec2ba, 0x00b4b4a4, 0x00a2aaa1, 0x00a3aaa9, 0x00a8aba3, 0x00a7aaa2, 0x00a9a9a4, 0x00aeaaaa, 0x00b0aab0,
- 0x00a4a8a6, 0x00a2a7a2, 0x00b3b5ae, 0x00c4c6b1, 0x00dee3b9, 0x00ecebc4, 0x00ece3bf, 0x00ece6be, 0x00dfe5af, 0x00e7e9b7, 0x00eaecbf, 0x00e0e2bc, 0x00e2ddc1, 0x00ebe6c7, 0x00e5e0bc, 0x00e3dab1,
- 0x00dfe5ce, 0x00d3e2d9, 0x00bcd3dc, 0x00aacad6, 0x00a8c4d0, 0x00b1c3c4, 0x00c3cbd3, 0x00e3e3ec, 0x00bbced0, 0x00adc2cd, 0x00b2c4db, 0x00b8c1db, 0x00b8c7d8, 0x00bed1de, 0x00b9cedb, 0x00b2c4da,
- 0x00afc7d4, 0x00bbc8da, 0x00c1c3d2, 0x00c8c8c8, 0x00e4e4b3, 0x00ecebd1, 0x00faf7e7, 0x00fff9ed, 0x00f8fff0, 0x00f8fbf4, 0x00fafcfe, 0x00f2f6f7, 0x00d0cecb, 0x00bab1a2, 0x00c2b496, 0x00ceb991,
- 0x00cabb95, 0x00ccbc9a, 0x00d1bea7, 0x00d0bea9, 0x00d2bfa3, 0x00d0bd9b, 0x00d2bda0, 0x00d0bca2, 0x00c4beaa, 0x00d8d5cb, 0x00fcf7f4, 0x00fafcf1, 0x00fefaeb, 0x00f9feee, 0x00fdfbf9, 0x00e6ecfb,
- 0x00b4d7dc, 0x00bedeeb, 0x00c9e3f4, 0x00c8ddec, 0x00c5d3de, 0x00d2ccbe, 0x00ebdaba, 0x00f1d7a8, 0x00e6d9c5, 0x00d1dae0, 0x00c0dcf2, 0x00b0e0ef, 0x00c6e1df, 0x00d1dfe0, 0x00d9d9ec, 0x00dbd6fd,
- 0x00a8dfe0, 0x00aedae4, 0x00bdd8f0, 0x00c6dff3, 0x00cae8ed, 0x00bfe2de, 0x00a7c4c5, 0x00a5b8bf, 0x00bdbdb7, 0x00cab9a0, 0x00ddc9a8, 0x00e8d8b7, 0x00efe1be, 0x00ebddbc, 0x00f1e1c2, 0x00f0dcc0,
- 0x00ded6b1, 0x00dcd5af, 0x00e6d6b6, 0x00e1d1b3, 0x00e0d3b5, 0x00decebd, 0x00ddc8b5, 0x00decdb0, 0x00d7d3a0, 0x00ddd8b3, 0x00d9d0be, 0x00c3b7b9, 0x00c8bfc8, 0x00dcd7db, 0x00dad5da, 0x00bfbbb9,
- 0x0095b1aa, 0x009db2b0, 0x00a8b5bc, 0x00a8b6c0, 0x00aab4bf, 0x00a8b4bf, 0x00a9b3c0, 0x00b0b8c5, 0x00a4b2b9, 0x00a4afb7, 0x00afb1c0, 0x00afafc3, 0x00b4c0d7, 0x00bcd1e3, 0x00c2dcee, 0x00c2e0f1,
- 0x00c3e1e1, 0x00c5dadd, 0x00b4bccd, 0x00afb4c9, 0x00b7bdd2, 0x00acc4d1, 0x00b9d4dd, 0x00c6dee9, 0x00d4eceb, 0x00e1f2f0, 0x00e4ebe9, 0x00f0f3e3, 0x00faf8dc, 0x00fbf7d2, 0x00fcf5cc, 0x00fdf1c2,
- 0x00f2fae0, 0x00f6f6e9, 0x00fcf7f9, 0x00fdf9ff, 0x00fefcfe, 0x00fafafb, 0x00f9f9f8, 0x00f5f0f2, 0x00c3c4b8, 0x00a8a99e, 0x00a9aaa4, 0x00aaaca4, 0x00a9aba3, 0x00acaba4, 0x00afacab, 0x00afacaa,
- 0x00a4a99c, 0x00a7a99f, 0x00adaaa6, 0x00b0aca5, 0x00b2adab, 0x00b3b2ad, 0x00bdbcb7, 0x00c6c2c0, 0x00bec2b8, 0x00c6c5bd, 0x00cccbc6, 0x00cbccc7, 0x00d3d0cc, 0x00d4d2cf, 0x00d5d3d3, 0x00d7d1d3,
- 0x00c4d5c5, 0x00cbd4cb, 0x00d3d4d7, 0x00d7d5dc, 0x00d6d3d8, 0x00d2d2d4, 0x00d2d1d5, 0x00d4d1d6, 0x00c8cfca, 0x00c6ccc8, 0x00c6c7c6, 0x00bfc3bb, 0x00b8bbbf, 0x00b3b9bd, 0x00b9bcc6, 0x00bbbecb,
- 0x00b4c6c6, 0x00becdcd, 0x00cdd5da, 0x00d0d8de, 0x00d3dcda, 0x00d4dddf, 0x00dadce3, 0x00dedde0, 0x00d8d7cb, 0x00dbd4c1, 0x00ddcfbb, 0x00dccab7, 0x00dcc5b9, 0x00dec7be, 0x00e7cdc9, 0x00efd4d5,
- 0x00e1e8d9, 0x00e7ebdf, 0x00eeefe9, 0x00f0efea, 0x00f0efed, 0x00efefeb, 0x00f0f0ed, 0x00f0f0ed, 0x00e9ece7, 0x00e8eae7, 0x00eaeae8, 0x00eaeaea, 0x00eaeaec, 0x00e9e9eb, 0x00eae8eb, 0x00ebe9ec,
- 0x00e1e7e1, 0x00e3e6e3, 0x00e6e4e5, 0x00e6e4e6, 0x00e7e7e6, 0x00e5e4e4, 0x00e7e3e7, 0x00ece8ec, 0x00dbe5da, 0x00dde8dd, 0x00d3d9d8, 0x00babdba, 0x00b8afac, 0x00cac0ad, 0x00ccbaa1, 0x00c7b392,
- 0x00b1b696, 0x00b3b393, 0x00ccc5a6, 0x00e4d8b7, 0x00ede1b6, 0x00ecdfb4, 0x00eadbb4, 0x00e5d6b2, 0x00dcd6b2, 0x00e4dbba, 0x00e0dabf, 0x00cdcdb0, 0x00d2c5c2, 0x00d2c7cd, 0x00d3c5d2, 0x00d1c7d3,
- 0x00bbcac1, 0x00bdc8c3, 0x00c2c5c7, 0x00c1c3c3, 0x00c3bbc2, 0x00babab7, 0x00b7b9b2, 0x00b8b7b2, 0x00b0b2ac, 0x00adaeaa, 0x00abacaa, 0x00abacac, 0x00aeaeaf, 0x00b1b0b1, 0x00b2b1b4, 0x00b1b0b3,
- 0x00adafa8, 0x00adaea9, 0x00b5b6b3, 0x00b1b0ae, 0x00b7b7b4, 0x00d4d4d1, 0x00fbfbf9, 0x00fbfcfa, 0x00f8fdf6, 0x00f7fbf5, 0x00f8f9f3, 0x00dddfd3, 0x00b0bfc2, 0x00a8bcc8, 0x00afc5db, 0x00b0c5e2,
- 0x00a7c3d3, 0x00a8c3d2, 0x00aec4dd, 0x00a8c3d8, 0x00a3c4d8, 0x00a6beda, 0x00b5c3de, 0x00dae0f7, 0x00d7dde0, 0x00d0d2cf, 0x00f4f1f3, 0x00f9f4f0, 0x00fbf6f9, 0x00fcfbfd, 0x00f9faff, 0x00f5fbff,
- 0x00eff6ee, 0x00f3f8f3, 0x00f8f7f7, 0x00f2eff1, 0x00eae9eb, 0x00f0eff1, 0x00fbf6fa, 0x00fef8fc, 0x00f7f8f6, 0x00f6f7f4, 0x00f7f7f6, 0x00f3f3f3, 0x00e9e8e8, 0x00c7c5c6, 0x00b0aeb1, 0x00afadaf,
- 0x00b7beb8, 0x00d4d7d1, 0x00d7d7d4, 0x00c6c6c3, 0x00b2acaa, 0x00ababac, 0x00aaacae, 0x00b1afac, 0x00b1baa4, 0x00bec6af, 0x00d2d2c7, 0x00dadfd6, 0x00e7e7e5, 0x00f1efec, 0x00fdf8f1, 0x00fffcf2,
- 0x00f4feeb, 0x00f7fdf2, 0x00fcfef7, 0x00fdfdfb, 0x00fffdff, 0x00fdfcfc, 0x00fefdfc, 0x00fffeff, 0x00f9fcf2, 0x00f9faf5, 0x00fdfcf9, 0x00fcfaf6, 0x00fffcfe, 0x00fffafe, 0x00fffaff, 0x00fffdff,
- 0x00f2fcf2, 0x00f8fdf8, 0x00fdfdff, 0x00fdfdfe, 0x00fcffff, 0x00f7fcf8, 0x00fbfdfe, 0x00fdfcff, 0x00f5fef5, 0x00f7fdf7, 0x00fafdfb, 0x00fcfcfd, 0x00fdfcfe, 0x00fffcff, 0x00fffbff, 0x00fff9ff,
- 0x00f5fff0, 0x00f4fcf0, 0x00f9fcf5, 0x00fafcf8, 0x00f7fcf8, 0x00f2f9f5, 0x00f3f9f7, 0x00f1f9f7, 0x00e8f5eb, 0x00e9f3ec, 0x00f2f4f2, 0x00f3f3ee, 0x00eff3ee, 0x00f2f5f3, 0x00f4f3f6, 0x00f4f4f5,
- 0x00eaefeb, 0x00edf0ee, 0x00eeefee, 0x00efedee, 0x00eceaed, 0x00ececed, 0x00ebeeee, 0x00eaefee, 0x00e8ede7, 0x00e9ece8, 0x00eaebea, 0x00e7e5e6, 0x00eae4e6, 0x00e3dadf, 0x00cac0c7, 0x00b6aab3,
- 0x00a8a59f, 0x00aca7a3, 0x00afa7aa, 0x00b1a9ae, 0x00b1adae, 0x00adacab, 0x00afafae, 0x00b0b0ad, 0x00a7b0a8, 0x00a7afa8, 0x00abacab, 0x00aba9aa, 0x00acadab, 0x00aaabaa, 0x00aeabae, 0x00b1aeb1,
- 0x00acb2a9, 0x00abb1a6, 0x00b1b4ac, 0x00b2b3ad, 0x00aeb0aa, 0x00aaaeaa, 0x00abaead, 0x00acafad, 0x00a5aea7, 0x00a3aea8, 0x00a6afac, 0x00a7afad, 0x00a6b1ae, 0x00a6b0ae, 0x00a9b0b1, 0x00a9b0b3,
- 0x009cb1a5, 0x009eb1a6, 0x00a2b1ab, 0x00a5b0ae, 0x00a7b1ae, 0x00a8b0af, 0x00a7b0b0, 0x00a6b0b0, 0x00a0b0aa, 0x00a0b0ab, 0x00a6b0ae, 0x00aab0b0, 0x00a9b0b1, 0x00a8b0b1, 0x00aab0b1, 0x00a9b0b1,
- 0x00a3b1ab, 0x00a3afad, 0x00a8b1b1, 0x00a9b0b0, 0x00a8afad, 0x00a9b1ac, 0x00a4aba6, 0x00acafaf, 0x00bdc2bb, 0x00e3e6e2, 0x00f5f5f5, 0x00f1f1f1, 0x00f6f5f2, 0x00f6f5f0, 0x00efefe9, 0x00d7d9d3,
- 0x00b8c6a7, 0x00bbc5ab, 0x00b8bfac, 0x00adb9aa, 0x00aab5ac, 0x00a6b5ad, 0x00a8b6b0, 0x00a9b6b1, 0x00a6b5ad, 0x00a9b6ac, 0x00abb7ad, 0x00aab7ac, 0x00a9b7ab, 0x00a9b5ac, 0x00abb5ad, 0x00acb6ac,
- 0x00a5b5a5, 0x00a6b6a6, 0x00a7b6aa, 0x00a8b5ac, 0x00aab6ac, 0x00aab6ac, 0x00aab5ae, 0x00abb6ae, 0x00a3b5a7, 0x00a4b5a7, 0x00a7b6a9, 0x00a9b8ab, 0x00a9b7ab, 0x00a9b6ab, 0x00abb6ac, 0x00acb6ac,
- 0x0099b69f, 0x00a4b5a4, 0x00b0b4ab, 0x00b4b2b0, 0x00afb4ad, 0x00a8b4a5, 0x00adb59e, 0x00c4be9f, 0x00dabb97, 0x00dda387, 0x00d79a83, 0x00d4ad8a, 0x00d9c2c4, 0x00c3c3cf, 0x00b3bfd5, 0x00afc4df,
- 0x00abc3c7, 0x00b3c0c5, 0x00b7bfcb, 0x00b1c1ce, 0x00a4c3d5, 0x00a4c4ce, 0x00a8c3cb, 0x00aabfcd, 0x00a9c1c3, 0x00acc0c4, 0x00b4c4cb, 0x00b7c5ce, 0x00b6c3cd, 0x00b1c2ce, 0x00b0c3d1, 0x00b6c6d7,
- 0x00b2bfc3, 0x00b7c4ca, 0x00b8c2ce, 0x00b1bdca, 0x00aebdc7, 0x00a7b8c1, 0x00aab8c4, 0x00adbac7, 0x00a0b3bc, 0x00a3b0b8, 0x00a9b7c1, 0x00adbfd3, 0x00a9bed4, 0x00a7bfd4, 0x00afc8d9, 0x00b2cbdf,
- 0x00a6cbce, 0x00adcac9, 0x00bccbd4, 0x00d0d9de, 0x00e2e3e3, 0x00dfe2d6, 0x00e2e4d3, 0x00eeeedb, 0x00e3eec5, 0x00e6efca, 0x00e7ebce, 0x00e0e2c9, 0x00dde0c9, 0x00e5e5cd, 0x00e8e7cb, 0x00e5e5c6,
- 0x00d7e1be, 0x00dbe1bf, 0x00dfe0c4, 0x00dde1c4, 0x00dbdebe, 0x00d8ddbd, 0x00dadbbf, 0x00dad7bd, 0x00c1cba7, 0x00bfc5a4, 0x00c9cdb1, 0x00d2d9c1, 0x00d2dcbc, 0x00c7d0ad, 0x00c3cbad, 0x00c4cdb4,
- 0x00cadac5, 0x00e4eee5, 0x00f2f4f7, 0x00f7f5f8, 0x00f7f6f8, 0x00f4f5f6, 0x00eceeed, 0x00d3d5d4, 0x00d3d8ce, 0x00e2e6db, 0x00f1f1ea, 0x00f8fbf4, 0x00f2fbfa, 0x00f2fefd, 0x00edf7ff, 0x00edf8fb,
- 0x00ebf8f4, 0x00f2fafb, 0x00fafafe, 0x00f8f4fb, 0x00f3f3f8, 0x00f1f2f8, 0x00f9fafc, 0x00f7f8ff, 0x00e0f1f4, 0x00dfeef0, 0x00e4f1f8, 0x00e1f6f8, 0x00f1f8fb, 0x00f5fbf9, 0x00fdfafb, 0x00fffcfa,
- 0x00edf4e0, 0x00edf1e3, 0x00eef2ee, 0x00ecf2f4, 0x00edf4f7, 0x00e1f3f9, 0x00d1e8f4, 0x00d3e5f4, 0x00cde7eb, 0x00cfe7ee, 0x00d5e9f2, 0x00d6e9f1, 0x00d5eaf6, 0x00d4e8f5, 0x00d7e9fb, 0x00d4e7fb,
- 0x00bae3df, 0x00bfe4e7, 0x00c3e3ee, 0x00bcd9e8, 0x00b7d4e3, 0x00b6d6e3, 0x00b7d8e8, 0x00bbddee, 0x00bae1e9, 0x00b4dde7, 0x00b1d2e0, 0x00c0d5e3, 0x00cde2f1, 0x00d1e3f2, 0x00d2e2f4, 0x00d1e3f5,
- 0x00cce7ea, 0x00cde5ec, 0x00c6d9e6, 0x00b4c4d2, 0x00adbaca, 0x00a6c1cb, 0x00a3c7d3, 0x00a3c7d5, 0x0099c6c9, 0x009dc5c8, 0x00a2c6cb, 0x009ec4c8, 0x00a8c4ca, 0x00adc7ce, 0x00b1c5cf, 0x00b3c3ce,
- 0x009ac0cb, 0x009fc1c9, 0x00abc4cd, 0x00aec6cf, 0x00b1c9df, 0x00aac8dd, 0x00adcadd, 0x00abc3cb, 0x00a2b3a6, 0x00a8ada6, 0x00aaa8ad, 0x00aab0b7, 0x00afb1a6, 0x00b4b49b, 0x00b5b19c, 0x00bcb8b1,
- 0x00b5bdc2, 0x00b6c4d0, 0x00b7c6df, 0x00b1cde1, 0x00add0de, 0x00a9cfd8, 0x00add0da, 0x00afd1e1, 0x00abcfd9, 0x00acd0dc, 0x00b1d0e0, 0x00accedd, 0x00adcfdd, 0x00accfd9, 0x00b3d9e5, 0x00c8ebf4,
- 0x00f4f9f4, 0x00e8f4f7, 0x00d7e7f3, 0x00c3dcf3, 0x00bedef3, 0x00c0ddee, 0x00c8def2, 0x00d0e2f4, 0x00c6dfe8, 0x00c4e1e9, 0x00c6e0f0, 0x00bfdff2, 0x00bdddf2, 0x00beddf0, 0x00bfdaf4, 0x00bcd7f1,
- 0x00b0d9e3, 0x00afd7e4, 0x00b3d6e7, 0x00b2d3e7, 0x00b1cfe6, 0x00afd1e4, 0x00b7d7ea, 0x00b8d7ee, 0x00add4e4, 0x00b3d4e1, 0x00cfe8ef, 0x00effcfa, 0x00fdffef, 0x00fbfff2, 0x00fbfefa, 0x00fcffff,
- 0x00b5bbd5, 0x00464a89, 0x003e4391, 0x004850ac, 0x004e5ab2, 0x00354393, 0x003f4e96, 0x004f5a99, 0x005d68a5, 0x008088c6, 0x00a9afe6, 0x00858fb2, 0x00353d5f, 0x001b1f3b, 0x00000216, 0x00060910,
- 0x000a0d02, 0x000c0900, 0x000c0505, 0x000f0208, 0x00160611, 0x00200e12, 0x00220f09, 0x003e2715, 0x00826141, 0x00ae8662, 0x00c29a70, 0x00b89468, 0x00765f43, 0x002a1e12, 0x000f0d0e, 0x001b2128,
- 0x001c2924, 0x001c2a26, 0x001c2928, 0x001d292a, 0x001e282a, 0x00222c2b, 0x00222c29, 0x00222a26, 0x001f2a1d, 0x004e574a, 0x008d937e, 0x00999c7c, 0x008d9065, 0x00504e2f, 0x00747160, 0x0092888b,
- 0x0066654d, 0x00616735, 0x0066733c, 0x00aab897, 0x00878fb9, 0x003e5990, 0x0039589c, 0x005b72ce, 0x006273d4, 0x00475fb1, 0x0038569f, 0x003357a2, 0x003255bb, 0x002c46ab, 0x0033479f, 0x002a3b7d,
- 0x00333b5f, 0x0049597e, 0x00435a80, 0x00223e6a, 0x00384372, 0x00555171, 0x006b5b66, 0x006d5a4f, 0x00362d20, 0x000d0b0a, 0x00020308, 0x0008070b, 0x00080907, 0x00050403, 0x000a0908, 0x000d0a0e,
- 0x0006040f, 0x00010007, 0x00171a18, 0x00494f3e, 0x008e9975, 0x00aaa98b, 0x00a39b7d, 0x00a09974, 0x00929465, 0x00a3a67c, 0x00abac8a, 0x00919679, 0x008c8d78, 0x00adae95, 0x00909475, 0x008a8967,
- 0x009aa3b1, 0x0091a1c6, 0x005571a8, 0x00385ca5, 0x002f5191, 0x002d4177, 0x00717daa, 0x00b4bbe5, 0x005e6da2, 0x0035488f, 0x0041549e, 0x00485597, 0x004b5e8f, 0x005b729d, 0x0049648b, 0x00405789,
- 0x00485799, 0x00636ca7, 0x005a5d83, 0x0066676b, 0x00c2c394, 0x00dbd8c0, 0x00f4f0e3, 0x00fcf8e8, 0x00fcfbf3, 0x00fbfaf8, 0x00fcfcff, 0x00eff1f6, 0x007f7a75, 0x00352312, 0x00452706, 0x0060380b,
- 0x006f421b, 0x0070451f, 0x006f4625, 0x00704a29, 0x00714922, 0x006f461b, 0x00784d26, 0x00734926, 0x00533c21, 0x00958575, 0x00fbf8ef, 0x00fefcf7, 0x00fcfcf2, 0x00fdfcf7, 0x00f7fbfa, 0x00bfcbde,
- 0x00617db3, 0x007e9ce1, 0x0091b1ee, 0x0088a5e1, 0x00677ca7, 0x008e7581, 0x00d29986, 0x00ef9e69, 0x00e5a07c, 0x00bba0b6, 0x0090a0da, 0x006fa7f4, 0x0070b0d5, 0x007bacd1, 0x0084a8e2, 0x008aa3fe,
- 0x006ea7e3, 0x00648edf, 0x006886db, 0x00869def, 0x0092b5e2, 0x00799ec7, 0x001b3a68, 0x000d2059, 0x004f4563, 0x005f4242, 0x00906d53, 0x00b99571, 0x00d2b08c, 0x00d1ad8c, 0x00cfad8a, 0x00c9a684,
- 0x00ba9a76, 0x00b39470, 0x00b3906f, 0x00ac8b6a, 0x00a28260, 0x00a47f67, 0x009f755c, 0x00a47e5c, 0x00ad8e62, 0x00b59a7b, 0x008c7565, 0x004f3c42, 0x00615568, 0x00a09cad, 0x007c7d88, 0x00222727,
- 0x00010a37, 0x00050f3f, 0x000e1a50, 0x00101b58, 0x00151c5f, 0x00151b61, 0x00171d66, 0x001b216b, 0x00121e5e, 0x000d1558, 0x0013185c, 0x001d2571, 0x00374f9d, 0x005678c3, 0x006b93d6, 0x00729bd7,
- 0x0090aedf, 0x008ba0d0, 0x003a4679, 0x00212a65, 0x00353d80, 0x00364e97, 0x005574be, 0x00708dcf, 0x00a3bbe5, 0x00bed1ea, 0x00afbac7, 0x00cad0c9, 0x00edf0c6, 0x00f1f1b5, 0x00eee9a3, 0x00efe793,
- 0x00f2f1c7, 0x00edeccf, 0x00f1f1e1, 0x00f8faf4, 0x00fbfcfb, 0x00f5f6f6, 0x00fafbf8, 0x00deddd9, 0x00595654, 0x00100d0c, 0x00110e0e, 0x000f0f0b, 0x000d0d06, 0x000d0b04, 0x000b0a04, 0x000c0b03,
- 0x00120c01, 0x00130b04, 0x0019100b, 0x00231b13, 0x002e261f, 0x0037322e, 0x0044423e, 0x00524f4e, 0x00595a57, 0x00676464, 0x00717071, 0x00757678, 0x007c7b7e, 0x007d7f82, 0x007d8084, 0x007e7e84,
- 0x00778383, 0x00798184, 0x007d838c, 0x00808391, 0x00808291, 0x00808291, 0x00808191, 0x007e7d8c, 0x00737881, 0x006b6f78, 0x005f636b, 0x004e565a, 0x00373e4c, 0x002c3446, 0x00333a53, 0x003f4765,
- 0x00505772, 0x00636a81, 0x00798191, 0x00858d97, 0x008d9898, 0x00959ca2, 0x009b9ba5, 0x009f989f, 0x00a5918a, 0x00aa8b7e, 0x00aa8171, 0x00a37261, 0x00986659, 0x009d6e63, 0x00b68b83, 0x00d0a8a3,
- 0x00bbbeb6, 0x00c5c8c0, 0x00cfd0ca, 0x00d2d3cc, 0x00d5d4cf, 0x00d4d3ce, 0x00d2d2ce, 0x00d1d2cf, 0x00cecece, 0x00cccccc, 0x00c9c8ca, 0x00c6c5c7, 0x00c3c3c5, 0x00c1c2c3, 0x00c0c0c1, 0x00bebebf,
- 0x00b6b7b8, 0x00b6b6b7, 0x00b5b4b5, 0x00b2b3b3, 0x00b5b5b6, 0x00b9b4b9, 0x00b5b0b5, 0x00b7b9b9, 0x00afb8b0, 0x00a0aaa5, 0x006e7572, 0x002f3130, 0x00251b13, 0x00685442, 0x00715534, 0x00603c14,
- 0x00524323, 0x00392707, 0x00654e2b, 0x00ab8f68, 0x00d0b182, 0x00d6b585, 0x00c6a478, 0x00b5936b, 0x00b89f7a, 0x00caab8e, 0x00b49f7d, 0x007f764d, 0x006c5e49, 0x0079685d, 0x007a6963, 0x00726661,
- 0x005f6153, 0x00565b49, 0x004d513e, 0x0047473c, 0x00473b3c, 0x00383331, 0x00282922, 0x001f211b, 0x00171713, 0x0011100d, 0x000e0d0c, 0x00111111, 0x00111112, 0x00131315, 0x00141417, 0x00161619,
- 0x001c1d17, 0x001b1b17, 0x001f1f1d, 0x001b1c19, 0x0031322f, 0x00888986, 0x00f1f2ef, 0x00fcfdfa, 0x00fcfdfb, 0x00fbfbf8, 0x00f2f1f2, 0x00a9a9b7, 0x0022305b, 0x001a2f73, 0x00304aa3, 0x00344fb9,
- 0x00364eb9, 0x00354cb4, 0x003149ae, 0x002a48ac, 0x002347ab, 0x002846a3, 0x003a50a0, 0x008897da, 0x00a6aec7, 0x00a4a5b2, 0x00e7e1e1, 0x00f5ebea, 0x00f8f1ef, 0x00f2f3f1, 0x00ecf3f4, 0x00e8f6f6,
- 0x00f2f0f3, 0x00f6f6f8, 0x00e6e4e7, 0x00cfcccf, 0x00cecbcf, 0x00e4e1e5, 0x00f1eef2, 0x00f3f1f4, 0x00ebe9eb, 0x00e5e3e5, 0x00e0dde2, 0x00e6e3ea, 0x00cbc8cd, 0x006b696d, 0x000d0b0e, 0x00090808,
- 0x00454545, 0x00939290, 0x00797775, 0x0042413d, 0x00120e0b, 0x00111011, 0x000d0d0f, 0x000f0d0a, 0x001b2010, 0x00353829, 0x004c5149, 0x005c6162, 0x0080838c, 0x00a0a1a9, 0x00b7b5be, 0x00c7cbcb,
- 0x00d1d8d1, 0x00d3dad7, 0x00e2e9e8, 0x00f2f7f7, 0x00fafdff, 0x00fbfcfc, 0x00fbfdfb, 0x00fcffff, 0x00fafefd, 0x00f9fbfb, 0x00fbfbfb, 0x00fdfcfb, 0x00fffcfe, 0x00fdfafd, 0x00fdfbfb, 0x00fffdfc,
- 0x00f8f9f2, 0x00f9f9f5, 0x00f8f8f7, 0x00fbfbf8, 0x00fefffa, 0x00fcfef9, 0x00fbfffb, 0x00fafff9, 0x00f8fdf8, 0x00f7faf6, 0x00f9faf9, 0x00fefefe, 0x00fdfcfd, 0x00fdfafd, 0x00fffafe, 0x00fffbff,
- 0x00fafdf8, 0x00fafdf8, 0x00f9fbf7, 0x00fafbf8, 0x00f7fbf8, 0x00f5f8f6, 0x00f3f5f5, 0x00f1f3f3, 0x00e4eceb, 0x00e3e9e9, 0x00e8e9e9, 0x00e9e9e3, 0x00e5e8e0, 0x00e2e5df, 0x00e0e0de, 0x00ddddda,
- 0x00d6d8d7, 0x00d4d6d6, 0x00cfcfd2, 0x00cacacd, 0x00c6c5c9, 0x00c8c9ca, 0x00cbcecc, 0x00cacfcb, 0x00cacccc, 0x00cbcacb, 0x00cac4c6, 0x00c9c0c3, 0x00ccbfc3, 0x00afa1a5, 0x004c3f43, 0x0016080b,
- 0x000e0202, 0x00130505, 0x0015060a, 0x0015090d, 0x00150e0f, 0x00120e0e, 0x00130f0f, 0x00151210, 0x000f1410, 0x000e120e, 0x000d0d0d, 0x000f0d0e, 0x000a0b0a, 0x000a0b0a, 0x000f0f0f, 0x00191917,
- 0x00151712, 0x001b1d16, 0x001e201a, 0x001d1e19, 0x0012140d, 0x0010150f, 0x00101611, 0x00101610, 0x000d1310, 0x000a120e, 0x0009120e, 0x00091310, 0x00071311, 0x00081413, 0x00091413, 0x00071312,
- 0x0004130d, 0x0005130e, 0x00051310, 0x00061411, 0x0007150f, 0x0007150f, 0x00071510, 0x00071510, 0x00071511, 0x00071511, 0x00091312, 0x000b1313, 0x000b1514, 0x000a1514, 0x00091312, 0x000a1312,
- 0x0007140f, 0x00081513, 0x00081313, 0x000b1414, 0x00091311, 0x000a140f, 0x0009120d, 0x00050b0b, 0x00515352, 0x00d0cfd1, 0x00f1eff2, 0x00e6e5e6, 0x00ebeae7, 0x00f1f2eb, 0x00ccd0c6, 0x0080857a,
- 0x00515e3e, 0x00525e41, 0x00334027, 0x00172914, 0x00132615, 0x00122617, 0x00122619, 0x00102418, 0x00132317, 0x00132315, 0x00122315, 0x00102315, 0x00102314, 0x00102315, 0x00102315, 0x00102414,
- 0x000f2312, 0x000f2312, 0x000f2315, 0x00102316, 0x00122515, 0x00112515, 0x00102415, 0x000f2313, 0x000f2314, 0x000f2213, 0x00102314, 0x00122515, 0x00122616, 0x00122615, 0x00122716, 0x00132615,
- 0x000a2911, 0x00132714, 0x00192115, 0x001d2019, 0x00162317, 0x000c230e, 0x00112408, 0x00343615, 0x0099583c, 0x00a33e29, 0x00821706, 0x00843820, 0x0095717e, 0x0065658b, 0x0030437f, 0x00365398,
- 0x00394e83, 0x003e4b7a, 0x00394770, 0x00334775, 0x00294c83, 0x002d4d89, 0x0029477d, 0x00253e78, 0x00243c76, 0x002f417d, 0x003c4a88, 0x00404e8c, 0x003c4a88, 0x00364885, 0x00384c8b, 0x00415595,
- 0x00414e8e, 0x00465393, 0x00424f91, 0x00334385, 0x00263878, 0x001d3170, 0x00192d6c, 0x00182b68, 0x00172464, 0x001c2768, 0x00273370, 0x0042508c, 0x003d4d8b, 0x00384b88, 0x0050699f, 0x005e7aae,
- 0x00526c94, 0x00566c8b, 0x00808fa2, 0x00abb5bf, 0x00c6c9c8, 0x00b8bbb0, 0x00b4ba9d, 0x00c7cdaa, 0x00cad7a3, 0x00cdd8a7, 0x00c0c69c, 0x00b5ba93, 0x00afb48f, 0x00bbbe96, 0x00babc8f, 0x00b5b987,
- 0x00afb68b, 0x00afb489, 0x00abaf86, 0x00a6ac82, 0x009ea577, 0x009ca677, 0x009ea77b, 0x00979d70, 0x006b7246, 0x0054592e, 0x00656a42, 0x00929c74, 0x0098a675, 0x0073814d, 0x005a6a39, 0x005e6f44,
- 0x008d9b87, 0x00d3dcd0, 0x00eeefef, 0x00f1eff2, 0x00efefed, 0x00f5f6f6, 0x00c9cacd, 0x007f8180, 0x0080807a, 0x00b4b4ad, 0x00e2e0db, 0x00f7f9f5, 0x00f0f8fb, 0x00e4f0f7, 0x00d7e3f2, 0x00d7e5f4,
- 0x00ebf3f6, 0x00eff4fb, 0x00f0eff7, 0x00ebe7f0, 0x00e5e4ec, 0x00ebecf5, 0x00f3f6fc, 0x00eef1ff, 0x00d5dff3, 0x00cdd7ec, 0x00ccd8ef, 0x00d0def1, 0x00dee6f1, 0x00e8edf2, 0x00f3f3f5, 0x00fbf8f8,
- 0x00e4e2e1, 0x00d8d5d9, 0x00d7d9e1, 0x00dae3ed, 0x00d8e6f3, 0x00bcd7f8, 0x009dbeee, 0x0093b1e3, 0x0096b9e6, 0x009bbee9, 0x009ebfec, 0x009ebfeb, 0x009bbceb, 0x0099baec, 0x0099b8f1, 0x0096b4f0,
- 0x0085ade6, 0x008fb6ef, 0x008cb2ec, 0x007096d8, 0x00567dc6, 0x005881ca, 0x005a83ce, 0x006b94de, 0x0087b2ef, 0x00739ee2, 0x004a76ba, 0x006892d1, 0x0084afed, 0x0090bbf3, 0x008db8f1, 0x008eb9f0,
- 0x008fb9ec, 0x0094bdf4, 0x006f98d1, 0x00335b95, 0x00163e79, 0x0027477f, 0x00335089, 0x00335189, 0x00274a83, 0x0023467e, 0x001f457b, 0x001f4a7d, 0x00244a7d, 0x00274d7e, 0x00274b7d, 0x00284b7d,
- 0x00284b8a, 0x00274b78, 0x00305275, 0x0034587f, 0x003859a1, 0x00395da4, 0x003a5b8f, 0x00264354, 0x0009160a, 0x000b0b06, 0x00110b11, 0x0011111f, 0x00121105, 0x001a1902, 0x00262510, 0x002d2e27,
- 0x003e456f, 0x004b5998, 0x004560ad, 0x004c73bf, 0x00427bb4, 0x004572b2, 0x004b73b6, 0x005073bf, 0x004f76c0, 0x005276c6, 0x004b6fc0, 0x004369b8, 0x004b73bb, 0x00426caf, 0x005b86c4, 0x0092bcf2,
- 0x00dee5fb, 0x00cdddff, 0x008fa7d8, 0x007598d7, 0x00759fe1, 0x007ea5e6, 0x0089abe8, 0x0090afe5, 0x008cace4, 0x008aafe5, 0x0087abe8, 0x0080a8ed, 0x0075a0e6, 0x00729cdf, 0x006e96dd, 0x006a92d9,
- 0x006791d4, 0x00638ed1, 0x005882c6, 0x00537dc2, 0x004b73b9, 0x004d74b8, 0x005c83c8, 0x005e89d1, 0x005f87cd, 0x006a8cc4, 0x00abc4e3, 0x00ecf9fe, 0x00fcfff2, 0x00f8fcf4, 0x00f5fbfa, 0x00f5faff,
- 0x00b6c2db, 0x004a559d, 0x004651a7, 0x003844a6, 0x005562cf, 0x005160c9, 0x004958bb, 0x00535cbb, 0x004a52b4, 0x00414aab, 0x005f69bf, 0x00667cb2, 0x006f7dba, 0x005c659b, 0x00262652, 0x000d0921,
- 0x001e120e, 0x003a2b14, 0x00422a0f, 0x003b2003, 0x003b1700, 0x002e1b0d, 0x003a2a1d, 0x0068503c, 0x009d754b, 0x00a87849, 0x00b2804c, 0x00b58656, 0x007e5e3c, 0x00372715, 0x0018120b, 0x001f2827,
- 0x00252b25, 0x00242c27, 0x00242c27, 0x00272e2b, 0x00272e2c, 0x00232c2b, 0x002d3632, 0x00323a33, 0x0031392c, 0x004b5546, 0x00767e6c, 0x00757560, 0x008a8b68, 0x00717056, 0x00767866, 0x007f7e77,
- 0x00797f69, 0x007e8b5e, 0x006d7b58, 0x0092a196, 0x006770ab, 0x002e4a96, 0x004463be, 0x005f76df, 0x005d6bcf, 0x004d5db4, 0x003f53aa, 0x00354eb1, 0x002940c5, 0x002a40bd, 0x00283fa7, 0x00203580,
- 0x0031356f, 0x003e4b7b, 0x00485989, 0x002f497c, 0x002b387c, 0x003e3d71, 0x00655974, 0x006d5b55, 0x00322518, 0x000e0708, 0x000b0611, 0x000d0b16, 0x00120d14, 0x00050507, 0x00040405, 0x00020306,
- 0x00050211, 0x00080510, 0x0017181a, 0x002b2c24, 0x00424a33, 0x00474333, 0x00494430, 0x004c4a2e, 0x003f441e, 0x00414929, 0x00424830, 0x0037412f, 0x00343c32, 0x00484d40, 0x00424835, 0x004e5139,
- 0x0062719a, 0x006b85be, 0x00395da8, 0x002950af, 0x002d4ead, 0x00243c8e, 0x006376bb, 0x009daae9, 0x005160a8, 0x00294291, 0x003851a0, 0x004e5da7, 0x005f73ac, 0x004d6694, 0x00476291, 0x00536ca1,
- 0x0048559d, 0x005b66a0, 0x0061648f, 0x0071737c, 0x00959873, 0x00b0ae9d, 0x00efe9e0, 0x00fffbef, 0x00fefcf6, 0x00fbfbf8, 0x00fbfdfb, 0x00ecf0f5, 0x007c7973, 0x002b170f, 0x004b290b, 0x0062360a,
- 0x00703e11, 0x006d4012, 0x006c4218, 0x006b421a, 0x006f4017, 0x00723f13, 0x00713d11, 0x00724115, 0x005b3b1b, 0x00947f69, 0x00fefaee, 0x00fefbff, 0x00fefbfa, 0x00fbf7fc, 0x00fafdfc, 0x00c7d3e9,
- 0x00526bb2, 0x005b7dce, 0x0083a4f9, 0x0081a1eb, 0x006884bf, 0x007c6790, 0x00cf9096, 0x00f79971, 0x00f79569, 0x00c398a3, 0x00919ad3, 0x0068a4fc, 0x0058aeec, 0x0067aae7, 0x006da6f0, 0x006e9af9,
- 0x00669ff4, 0x00608cec, 0x006386ea, 0x008197f3, 0x006384ca, 0x002c4b98, 0x00042478, 0x00213897, 0x005a4f84, 0x00543c42, 0x007b5744, 0x00a17956, 0x00cfa782, 0x00d1aa83, 0x00cda582, 0x00c7a07a,
- 0x00c19a76, 0x00b48f69, 0x00b18b66, 0x00a8825e, 0x009f7952, 0x009f7254, 0x00aa7c5c, 0x00b9916b, 0x00be9c74, 0x00ab8f71, 0x006d5649, 0x003d2b2e, 0x006b5e77, 0x00858096, 0x0046465a, 0x000f151f,
- 0x00081151, 0x000b1758, 0x00161f65, 0x00161e6a, 0x00141b6f, 0x00101a71, 0x00101972, 0x00111c74, 0x000f1871, 0x000d166e, 0x0015217c, 0x00192e8f, 0x002348a8, 0x003361bd, 0x004d7dd5, 0x005d8dda,
- 0x0093b2f1, 0x009eb5f0, 0x005e6ead, 0x00222f76, 0x00121d6d, 0x001f379e, 0x003d59c6, 0x00526ed4, 0x007c95df, 0x009eb5e9, 0x00a5b7d0, 0x00aab8b7, 0x00dbe7b9, 0x00e9f1b0, 0x00e8ee9b, 0x00ecef8f,
- 0x00e8ebac, 0x00e3e7b6, 0x00edf0ce, 0x00fafbec, 0x00fffffb, 0x00fffefe, 0x00fefdfb, 0x00e3e3de, 0x00676364, 0x00130e12, 0x000c060c, 0x00120e0d, 0x00100c0a, 0x000d0805, 0x000c0605, 0x000d0905,
- 0x001e130d, 0x00271d17, 0x0039312b, 0x00484036, 0x005e544c, 0x00696160, 0x00706d6f, 0x00767477, 0x0078767a, 0x007c7a7f, 0x00817f86, 0x0082828b, 0x00858790, 0x00848891, 0x00828790, 0x007f848f,
- 0x00768290, 0x00737f8d, 0x00748090, 0x00778295, 0x00798097, 0x00797f97, 0x007a8199, 0x007e849b, 0x007b7f94, 0x00707587, 0x0064697c, 0x005a6475, 0x00495068, 0x003f4660, 0x003e4364, 0x0042486b,
- 0x00595b7e, 0x00666a85, 0x00737b8c, 0x007a7e8a, 0x007a8185, 0x007d7e88, 0x00827f88, 0x008c7f84, 0x009e7e78, 0x00a77b6f, 0x00ab7366, 0x00a66a5a, 0x00a46b5d, 0x00ac7c6e, 0x00bd9387, 0x00cdaba0,
- 0x00c7c8c1, 0x00cfd1cb, 0x00d7d9d3, 0x00d8d9d3, 0x00d9d9d3, 0x00d9d9d5, 0x00dadad8, 0x00d9dad9, 0x00d9d8da, 0x00d6d6d8, 0x00d4d4d6, 0x00d1d1d4, 0x00ceced1, 0x00cbcace, 0x00c8c8cb, 0x00c7c7ca,
- 0x00c1c1c4, 0x00c0bfc1, 0x00bdbcbe, 0x00bbbdbc, 0x00bdbdbf, 0x00c5bdc7, 0x00bcb4c0, 0x00b8b8bb, 0x00aaafab, 0x00858a87, 0x002e3534, 0x00060505, 0x00201612, 0x00614e3b, 0x008d7251, 0x009b794f,
- 0x008f7957, 0x006d5531, 0x006f532b, 0x0096774a, 0x00bd9b6a, 0x00c6a272, 0x00c5a174, 0x00c09b73, 0x00bb9978, 0x00b59172, 0x009e8462, 0x00706940, 0x005b4f32, 0x00665540, 0x00695848, 0x00635643,
- 0x005c553f, 0x004b482e, 0x00403f24, 0x003e3b2c, 0x003a2f2f, 0x002d2a27, 0x0022231e, 0x001b1b17, 0x00191918, 0x00181816, 0x00151514, 0x000f1010, 0x000c0c0f, 0x000d0c11, 0x00121116, 0x0017161a,
- 0x00242321, 0x00222320, 0x00272724, 0x001d1e1b, 0x0030312f, 0x00848582, 0x00f7f7f4, 0x00fcfcf8, 0x00fefdfc, 0x00fdfdfc, 0x00f3f1fb, 0x00a9a7c9, 0x00313d7c, 0x00233691, 0x002641af, 0x00304ece,
- 0x00364fd8, 0x00334cd0, 0x002f49cc, 0x002a48c7, 0x002145c7, 0x00294bb7, 0x002b49a6, 0x003a52a1, 0x008e9ac5, 0x00cdd2e8, 0x00e7e6e9, 0x00f3edef, 0x00f5f2ed, 0x00ecefe7, 0x00eff4ed, 0x00eff6ed,
- 0x00efe9f1, 0x00dad6dc, 0x00cecbcf, 0x00d5d1d4, 0x00ebe8ec, 0x00f3eff4, 0x00f6f1f7, 0x00ece8ed, 0x00d1cdd1, 0x00c9c4c8, 0x00d0cbd1, 0x00d3cfd6, 0x00c6c2c8, 0x007c787d, 0x0019151a, 0x00120f12,
- 0x00615d5e, 0x00928e8d, 0x0053514f, 0x00343330, 0x0012100e, 0x00151013, 0x00150f12, 0x00100c0a, 0x00080b01, 0x00040801, 0x00030808, 0x00080d19, 0x00242844, 0x00323753, 0x00363b56, 0x004d5268,
- 0x005e6875, 0x00606b79, 0x006b7686, 0x007d8696, 0x00949cad, 0x00a4abbc, 0x00b2b9ca, 0x00c1c8d8, 0x00d2d9e2, 0x00dee4ea, 0x00e7ecf2, 0x00f0f4f7, 0x00f6f9fc, 0x00fbfeff, 0x00fbffff, 0x00fbfffc,
- 0x00fcfbfc, 0x00fffefd, 0x00fffffb, 0x00fefef9, 0x00fcfcf5, 0x00fbfbf8, 0x00f9faf8, 0x00f9fdf6, 0x00fcfcf8, 0x00fcfdf8, 0x00fcfcf8, 0x00fffefa, 0x00fefcfa, 0x00fffdfc, 0x00fefbfa, 0x00fffdfc,
- 0x00fffeff, 0x00fffffe, 0x00fefdfc, 0x00fefcfc, 0x00fcfbfd, 0x00fefcff, 0x00fefcff, 0x00fcfbfd, 0x00fbfdff, 0x00fafcff, 0x00fafafb, 0x00f8f9f4, 0x00f6f7f3, 0x00f1f2ef, 0x00ededec, 0x00ecedea,
- 0x00e5e4e4, 0x00e1e0e2, 0x00dcdbde, 0x00d5d5d9, 0x00d1d1d5, 0x00cccdcf, 0x00cdcfcf, 0x00cfd1cf, 0x00d0cfd0, 0x00cbc8c9, 0x00c6c1c2, 0x00c0b8bb, 0x00baaeb3, 0x0086787e, 0x0027191f, 0x00120308,
- 0x00130506, 0x0015080a, 0x00190d10, 0x00170e10, 0x0017100f, 0x0015110f, 0x00171414, 0x00171515, 0x00141714, 0x000d110d, 0x000d0e0c, 0x000d0c0d, 0x0009090a, 0x00070607, 0x000d0d0c, 0x00131511,
- 0x0023231f, 0x00292b26, 0x002d2f2a, 0x002d2e28, 0x002b2c26, 0x00292c25, 0x00262b25, 0x00212820, 0x001b201c, 0x00111914, 0x000a130d, 0x000b1510, 0x00091410, 0x00091512, 0x00081310, 0x0006130f,
- 0x00071410, 0x0007140f, 0x00071511, 0x00071611, 0x00081610, 0x00091711, 0x00091612, 0x000a1612, 0x00091612, 0x00081712, 0x00091613, 0x00091513, 0x00081514, 0x00081514, 0x00091514, 0x00091413,
- 0x00091513, 0x00071412, 0x00091715, 0x00081513, 0x00091513, 0x0006120e, 0x00121d18, 0x0007100e, 0x0067696b, 0x00e6e6e9, 0x00f8f6fa, 0x00fcfbfc, 0x00f6f5f4, 0x00fcfdf7, 0x00ced1c7, 0x00787e71,
- 0x004d5a39, 0x00465637, 0x0029391e, 0x00162b13, 0x00182f1b, 0x0017311f, 0x00172d1e, 0x00162b1d, 0x001b2c1e, 0x00192b1a, 0x00172a19, 0x00142a19, 0x00152a19, 0x00162a19, 0x00162a19, 0x00142b17,
- 0x00142a18, 0x00142b19, 0x00162c1c, 0x00172c1c, 0x00172c1a, 0x00162b19, 0x00162b19, 0x00152a18, 0x00152a18, 0x00142917, 0x00152a18, 0x00162b19, 0x00162b1a, 0x00152b19, 0x00152b19, 0x00142a18,
- 0x000f2d15, 0x00152916, 0x001c2718, 0x001e2519, 0x00162818, 0x00102b14, 0x00152b0f, 0x00242c0c, 0x007d4d31, 0x009c4935, 0x009a4033, 0x00b07067, 0x00b599b5, 0x006d70a6, 0x00364c93, 0x002e4e9e,
- 0x004559a0, 0x00475694, 0x0042548f, 0x0038518c, 0x00284e93, 0x00294993, 0x00294794, 0x00294492, 0x00293f91, 0x0028398d, 0x002c3a90, 0x00354599, 0x00354699, 0x0035489b, 0x003e53a6, 0x00475eb1,
- 0x00495ab8, 0x004d5fbd, 0x004c60be, 0x00445ab8, 0x00374eaa, 0x003148a4, 0x002a409a, 0x00283d95, 0x00344397, 0x003f4ea0, 0x004855a2, 0x0047528d, 0x003e4a8a, 0x00404f8a, 0x00435993, 0x00466092,
- 0x004d628e, 0x007083a1, 0x00c9d4ec, 0x00e8f0f8, 0x00ebeaf0, 0x00e2e5d2, 0x00d4dab5, 0x00d9e1b4, 0x00dce7a9, 0x00d7e4a6, 0x00c4cd96, 0x00b7bd8b, 0x00bbc193, 0x00c6cc9b, 0x00c6cc96, 0x00c3ca8d,
- 0x00bcc58f, 0x00bbc48c, 0x00b4bf86, 0x00aab57c, 0x009fa870, 0x009ea66e, 0x00a5af76, 0x00aab47a, 0x00949c64, 0x0079814a, 0x0077804a, 0x00929f6a, 0x00a3b376, 0x007f9050, 0x006a7c41, 0x006e824e,
- 0x00a0ad92, 0x00e8efe0, 0x00fafcf6, 0x00f9f8f3, 0x00fcfbf8, 0x00fcfcfd, 0x00d0d1d3, 0x008b8b8e, 0x008b8b84, 0x00b7b9af, 0x00e7e8e3, 0x00f8fbf9, 0x00e9eff6, 0x00bbc4d3, 0x00bcc6da, 0x00dfebff,
- 0x00eef1f8, 0x00edf0f8, 0x00e9eaf0, 0x00eae9ef, 0x00ebeaf1, 0x00f4f3fc, 0x00f2f4fb, 0x00e6ebf9, 0x00d4dbef, 0x00ccd6ec, 0x00d0dcf1, 0x00d6e0f6, 0x00e1e8f5, 0x00ebeffb, 0x00f6f6fe, 0x00fcf6ff,
- 0x00e2dee7, 0x00d5d2df, 0x00e0e3f5, 0x00dbe6fa, 0x00aec1d8, 0x007a9ccd, 0x0080aae9, 0x0095bef9, 0x0097bff9, 0x0094bff3, 0x0096c0f9, 0x0093bdf7, 0x008fb8f6, 0x008fb8f9, 0x008cb4f8, 0x0089b2f9,
- 0x007ea7ee, 0x0087b1f8, 0x008db8fd, 0x007faaf9, 0x006692e7, 0x005886db, 0x005684dd, 0x006795ec, 0x0082b3ff, 0x0073a4f1, 0x004e81d2, 0x005c96e1, 0x007eb6fb, 0x0082bbff, 0x007bb4f6, 0x007cb5f3,
- 0x0087bff9, 0x007cb4f4, 0x005d96d9, 0x004479bf, 0x003169b1, 0x0039579f, 0x0035488f, 0x00294287, 0x0028438c, 0x0023448d, 0x001e458d, 0x0018438b, 0x0017408b, 0x001a438d, 0x001e4891, 0x00214b93,
- 0x00204c92, 0x00235184, 0x002f5a88, 0x00285481, 0x00204492, 0x00284c92, 0x001f3f70, 0x000d2831, 0x00091203, 0x00100e04, 0x00170c0c, 0x0018121d, 0x001d170b, 0x001e1b07, 0x0020200e, 0x00252a26,
- 0x00353d71, 0x0042589f, 0x00476dc3, 0x003f72c7, 0x00387bc6, 0x003f70cb, 0x00446cd0, 0x004871d4, 0x004d75da, 0x004e75d9, 0x004a72d2, 0x00476fd2, 0x00456ecc, 0x00446fcd, 0x005481dc, 0x005d8ae4,
- 0x0096a2ca, 0x00a5bbed, 0x0085a6e0, 0x006d98de, 0x0077a5f3, 0x007ea9f6, 0x0085adf5, 0x0089b0ee, 0x0086afee, 0x007faeec, 0x007ba9ee, 0x0073a3f1, 0x006c9ced, 0x006799e7, 0x006696e4, 0x006495e2,
- 0x006c9bea, 0x006b9be9, 0x006697e4, 0x005d8edb, 0x004f80cd, 0x004470bd, 0x004972c3, 0x00527fd4, 0x005e8adb, 0x006e92d1, 0x00b2ccf4, 0x00eafafe, 0x00fbfdf8, 0x00fafcfa, 0x00f9fbfe, 0x00fafaff,
- 0x00b9cede, 0x006477b7, 0x007082d2, 0x005c6dd1, 0x004758c9, 0x005365d7, 0x004253c3, 0x004d5ac8, 0x005862d8, 0x00525bd3, 0x004858c1, 0x00385aa8, 0x003b53a4, 0x005461b1, 0x005a5ca1, 0x00302a57,
- 0x00463034, 0x00795945, 0x00906941, 0x008a5a24, 0x00814c15, 0x004c3013, 0x004b3a25, 0x0084684a, 0x00ae7d4a, 0x00ae7239, 0x00b37837, 0x00b87d41, 0x0079552a, 0x003d2910, 0x001f190d, 0x00232b29,
- 0x00282b22, 0x00282b25, 0x00292c27, 0x00292c29, 0x002a2f2b, 0x002d3231, 0x002f352f, 0x002a3026, 0x00272c23, 0x00383d32, 0x004a5245, 0x00484b3e, 0x00585d42, 0x00646650, 0x005b6051, 0x00595e52,
- 0x006c7861, 0x00657559, 0x006b836e, 0x0081949e, 0x004e59a9, 0x002c48a1, 0x005476d2, 0x00697fdd, 0x007985c3, 0x008996c5, 0x007584bb, 0x004558a6, 0x002034b9, 0x00243db8, 0x001d379b, 0x001c3a79,
- 0x002b297b, 0x00353e7b, 0x003c4f85, 0x0027417d, 0x00243591, 0x00474897, 0x006d6a97, 0x006a605f, 0x00302111, 0x0016080c, 0x00190e1e, 0x001e1932, 0x001e1924, 0x000f1014, 0x00080907, 0x00050606,
- 0x0006060e, 0x00090510, 0x0009070e, 0x00121112, 0x00151910, 0x001c1811, 0x00333024, 0x00535440, 0x00575e43, 0x0048523b, 0x001c2817, 0x000d1b12, 0x000f1c1d, 0x000a1715, 0x000b170f, 0x00152112,
- 0x00355184, 0x004c6cb5, 0x002951ae, 0x00214bbb, 0x002247b9, 0x001d3a9d, 0x00586dc2, 0x008ca0ea, 0x00526ab4, 0x003b57a8, 0x00425eae, 0x00637ac6, 0x00869fe0, 0x005470a7, 0x005875ac, 0x006c87c5,
- 0x005162aa, 0x007580be, 0x00757ba7, 0x00636574, 0x00444b2f, 0x00606053, 0x00ceccc3, 0x00fbf8f0, 0x00fefcf8, 0x00fafafb, 0x00f7f8f9, 0x00edeff6, 0x007f7c77, 0x00301d11, 0x004a2a0e, 0x005b3207,
- 0x0079400c, 0x0073400c, 0x0072430f, 0x006d3e10, 0x00703b0a, 0x0079400f, 0x00783f0a, 0x00743f0c, 0x0059370f, 0x0094795d, 0x00fcf6e6, 0x00fdfafe, 0x00fffcff, 0x00f9f6fe, 0x00fafdfe, 0x00ced8f4,
- 0x00526cbe, 0x004463c7, 0x006f95f8, 0x007da5fd, 0x006788d8, 0x007167b8, 0x00c791c0, 0x00f19785, 0x00fc9364, 0x00d09aa1, 0x00979bd1, 0x00619efe, 0x004eaafe, 0x0062affd, 0x0067acfa, 0x006ca4f4,
- 0x00629ffd, 0x005f8bf7, 0x006287ee, 0x0092adfb, 0x005f85d4, 0x00183da1, 0x00173aab, 0x002b42c1, 0x004d4b90, 0x0050414c, 0x006a4e34, 0x009c704b, 0x00c89e79, 0x00cea37a, 0x00caa279, 0x00c59c76,
- 0x00c0946d, 0x00b58863, 0x00aa7f57, 0x00a27750, 0x009b6f47, 0x00a87550, 0x00b9865f, 0x00c4956b, 0x00b49065, 0x009b7e64, 0x00594239, 0x00382831, 0x006a617e, 0x00696885, 0x00202440, 0x00000821,
- 0x00090f4f, 0x000e1757, 0x00111c5e, 0x00131c64, 0x000f1b6a, 0x00131e72, 0x000b196d, 0x0007186c, 0x0006176e, 0x000c1e73, 0x0016318f, 0x001d42b5, 0x002354c7, 0x002d64d4, 0x003f78df, 0x004a81dd,
- 0x007ba1ee, 0x0095aefa, 0x008094df, 0x00354696, 0x0007176e, 0x001228a0, 0x002440bd, 0x00425dd3, 0x005f79d1, 0x00819ada, 0x00aec5e8, 0x00adc0cb, 0x00acbd9e, 0x00cddca5, 0x00eaf8ad, 0x00e7f49d,
- 0x00eaee9e, 0x00e2e7a8, 0x00edf1c2, 0x00fafce4, 0x00fcfff6, 0x00fbfdf6, 0x00fffffb, 0x00e7e7e5, 0x006a656a, 0x00160e1a, 0x00130b14, 0x00130d10, 0x00130d0c, 0x00120c0b, 0x0017120d, 0x001c1912,
- 0x00383027, 0x004b443c, 0x00635d51, 0x00736b5f, 0x00817868, 0x00857c7d, 0x00837d82, 0x00868188, 0x0086858d, 0x00878692, 0x00848593, 0x00838796, 0x007c8396, 0x00788194, 0x00717b8e, 0x006e7a8e,
- 0x0063748a, 0x005f6f87, 0x005e6f89, 0x0061708d, 0x0064708f, 0x006b7596, 0x00727d9d, 0x00747f9f, 0x0076809b, 0x00727894, 0x00656d89, 0x005c6487, 0x004b5376, 0x00464970, 0x0044486d, 0x004a4e74,
- 0x00524f75, 0x005d5c7b, 0x0062657a, 0x00666676, 0x00646570, 0x00686571, 0x00716971, 0x00806c72, 0x009d6c69, 0x00a96a63, 0x00aa6359, 0x00a95f51, 0x00a86b5c, 0x00b48272, 0x00c19c8c, 0x00d0b2a2,
- 0x00cacac3, 0x00d1d1cc, 0x00d7d8d3, 0x00d7d8d4, 0x00d7d7d3, 0x00d7d8d6, 0x00d9d9d8, 0x00d8d8d9, 0x00d9d8da, 0x00d5d5d7, 0x00d2d2d5, 0x00cfcfd3, 0x00cdccd0, 0x00cac8cd, 0x00c8c7cb, 0x00c8c8cb,
- 0x00c3c3c5, 0x00c2c1c4, 0x00bebcc0, 0x00babcbc, 0x00bbbbbe, 0x00c1b9c7, 0x00bbb1c3, 0x00b1aeb8, 0x009da3a0, 0x00787f7b, 0x00262b29, 0x000a090a, 0x00110605, 0x0044311e, 0x009a8161, 0x00b2926a,
- 0x00a6855c, 0x008c6a40, 0x008b6738, 0x00a37d4a, 0x00b48c57, 0x00b7905b, 0x00c39c69, 0x00c59f71, 0x00b49169, 0x00a98463, 0x00907650, 0x006d633e, 0x00594d31, 0x00604e39, 0x005a4934, 0x005e4b38,
- 0x00554729, 0x00473a1e, 0x00393118, 0x00342c20, 0x00292224, 0x0025221e, 0x001f1e1b, 0x00181716, 0x00151715, 0x00161715, 0x00151614, 0x000f0f0f, 0x000c0b0e, 0x000d0c10, 0x00131216, 0x00171619,
- 0x0021211e, 0x00232420, 0x00282925, 0x0020211e, 0x0030312e, 0x0080817f, 0x00f3f4f1, 0x00fafaf7, 0x00fdfdfa, 0x00fefffc, 0x00eff0f7, 0x00afb0d3, 0x002d3c83, 0x00183094, 0x001c3eb6, 0x00274cd9,
- 0x002a4ce1, 0x002a48e1, 0x002647dc, 0x002348d9, 0x001f4adc, 0x001c47c3, 0x001a40a7, 0x0023439e, 0x005c71a9, 0x00a8b3d8, 0x00e7ecf5, 0x00ecebef, 0x00efefe4, 0x00eff2e7, 0x00f5f8ed, 0x00eef2e8,
- 0x00ddd9df, 0x00c6c2c6, 0x00d2ced0, 0x00ebe8e9, 0x00f1eef0, 0x00f5f2f5, 0x00e6e2e6, 0x00ccc6cb, 0x00ada9ab, 0x00b8b4b7, 0x00cecace, 0x00d3cfd3, 0x00d0ccd1, 0x008e8a8e, 0x001a171a, 0x00181517,
- 0x007a7774, 0x00928e8c, 0x0032302f, 0x00201d1c, 0x00120f0f, 0x001d1317, 0x001b1214, 0x0016100b, 0x000e0d07, 0x000a0a0a, 0x00070815, 0x00141531, 0x00333969, 0x002e366b, 0x00172759, 0x001b2b58,
- 0x00324662, 0x002c3f5d, 0x001e2e4f, 0x00142343, 0x001d2b4b, 0x002a3858, 0x003b4a68, 0x004d5c77, 0x00667389, 0x00768496, 0x008b97a8, 0x009fabb7, 0x00aeb8c1, 0x00bcc5cb, 0x00d0d8de, 0x00dde5e8,
- 0x00ebf0f0, 0x00f5f9f7, 0x00fbfef8, 0x00fcfdf7, 0x00fefdf6, 0x00fefdfb, 0x00fcfcfa, 0x00fcfdfa, 0x00fefdfb, 0x00fefffb, 0x00fdfdf8, 0x00fefff9, 0x00fefdf7, 0x00fefdf7, 0x00fefdf6, 0x00fefff6,
- 0x00fffefe, 0x00fffdfd, 0x00fdfbfa, 0x00fcfafa, 0x00fdfafb, 0x00fdfafc, 0x00fefcfe, 0x00fffdfe, 0x00fcfcff, 0x00fefcff, 0x00fdfcfd, 0x00fdfefb, 0x00fdfdfc, 0x00fafbfb, 0x00fafbfc, 0x00f9f9f8,
- 0x00faf9f9, 0x00f9f8f8, 0x00f3f2f4, 0x00ececef, 0x00e9e9ec, 0x00e3e3e5, 0x00e0e1e2, 0x00dfe0e0, 0x00d9dada, 0x00d5d3d3, 0x00ccc8c8, 0x00c6c0c1, 0x00a89da1, 0x005a4e52, 0x000e0305, 0x0014080a,
- 0x000e0104, 0x000f0406, 0x00110708, 0x00160d0d, 0x00181010, 0x00181312, 0x00171313, 0x00181515, 0x00131611, 0x00141713, 0x00121311, 0x00111212, 0x000c0b0d, 0x000a090b, 0x000a0a09, 0x0010110e,
- 0x001b1d18, 0x00232520, 0x002b2d27, 0x002e3029, 0x00373932, 0x003e4139, 0x003d4239, 0x00353b31, 0x00292d27, 0x001c231c, 0x00101812, 0x000d1610, 0x000b1510, 0x000a140f, 0x0007110d, 0x0006120e,
- 0x0005140d, 0x0005140e, 0x0006140e, 0x0007140e, 0x0009140f, 0x00091411, 0x000a1412, 0x000a1414, 0x00081610, 0x00071510, 0x00071612, 0x00071613, 0x00061613, 0x00051514, 0x00061514, 0x00061312,
- 0x00081413, 0x00071513, 0x00071613, 0x00071513, 0x00061312, 0x000e1a16, 0x0008120d, 0x0008100e, 0x00747778, 0x00e9eaeb, 0x00fdfcfe, 0x00fcfbfc, 0x00fdfdfb, 0x00fdfdf8, 0x00c5c8be, 0x006a6f62,
- 0x004d5c38, 0x003a4b29, 0x001e3213, 0x00182e13, 0x00123117, 0x00102f18, 0x00112e19, 0x00142e1b, 0x00162c18, 0x00142b15, 0x00112914, 0x000f2915, 0x00102916, 0x00112916, 0x00102916, 0x000f2914,
- 0x000f2915, 0x00102917, 0x00122c1a, 0x00132c1a, 0x00112a17, 0x00102915, 0x00102915, 0x000f2815, 0x00102915, 0x00112916, 0x00122a17, 0x00122b18, 0x00122b19, 0x00122b19, 0x00122b19, 0x00122b19,
- 0x000f2d11, 0x00172b15, 0x00192714, 0x00172716, 0x00132c19, 0x000a2a12, 0x00113014, 0x00162b0d, 0x00503318, 0x00884f3b, 0x00c5867d, 0x00deacb6, 0x00a896bc, 0x004f5798, 0x002c4698, 0x002748a4,
- 0x002e489b, 0x00384b99, 0x00394f99, 0x00354f9a, 0x00284fa0, 0x002847a1, 0x0025439f, 0x002542a0, 0x00233c9a, 0x00233797, 0x00243597, 0x00243697, 0x00273a9a, 0x00293f9c, 0x00324aa6, 0x003b54b0,
- 0x00415bc8, 0x00415dc9, 0x00435fce, 0x004865d4, 0x004562cf, 0x004560cc, 0x00435dc5, 0x00425abd, 0x004356b4, 0x003e4fa9, 0x003d4998, 0x004a4f8a, 0x0038407b, 0x001f2961, 0x0015245c, 0x0038487a,
- 0x005c6d96, 0x00929ebf, 0x00e4ecfb, 0x00f9fbfc, 0x00fbfafe, 0x00e8e9d5, 0x00d8dfb2, 0x00e1e9b2, 0x00dfeba4, 0x00d7e59c, 0x00bec985, 0x00b7c181, 0x00bac489, 0x00c0cd8e, 0x00bfcc87, 0x00c1cd82,
- 0x00c1cc88, 0x00c1cb88, 0x00b8c681, 0x00b0bc77, 0x00a5b16d, 0x00aab471, 0x00acba75, 0x00b4c17d, 0x00acb975, 0x0096a35f, 0x008b9955, 0x00a4b470, 0x00a2b469, 0x00849649, 0x006d8138, 0x006a8040,
- 0x009ba985, 0x00e7efda, 0x00fafdf2, 0x00fcfef6, 0x00fdfdf8, 0x00fffffb, 0x00d2d3d2, 0x00868684, 0x0084837e, 0x00b6b6b2, 0x00e9e9e7, 0x00f8fafd, 0x00e9eff4, 0x009fa6be, 0x008f99b5, 0x00d0dbf8,
- 0x00edf1f7, 0x00e8ecf4, 0x00dfe2e6, 0x00e2e2e7, 0x00eae9ee, 0x00f7f5fc, 0x00f4f4fc, 0x00e6e8f6, 0x00d3d9eb, 0x00d3dbef, 0x00d2def2, 0x00dbdff6, 0x00e0e7f8, 0x00eeeffe, 0x00f4f5fe, 0x00fbf7fe,
- 0x00e3e1f3, 0x00d0d2e8, 0x00d1d8f0, 0x00c7d4f1, 0x0094aaca, 0x005982bd, 0x00588ad5, 0x0071a2e9, 0x0089bbfd, 0x0090c3ff, 0x0089bbfe, 0x0086b8fd, 0x0082b4fe, 0x0082b3ff, 0x007faffc, 0x007cadfd,
- 0x007db1f6, 0x007cb0f5, 0x007db1f8, 0x007cb0fb, 0x00699eef, 0x00558be0, 0x005991e4, 0x006aa2f5, 0x007bb6fe, 0x0073abfb, 0x005a95e7, 0x0061a0f1, 0x0077b8fe, 0x007dbaff, 0x007ab8fd, 0x007cbdfc,
- 0x007cbefd, 0x0075b2fc, 0x004f8edb, 0x004282d0, 0x005494e6, 0x006583d5, 0x005160af, 0x00334896, 0x00274291, 0x00254796, 0x001e4898, 0x00174496, 0x000e3e94, 0x000d3e96, 0x000f4299, 0x001548a0,
- 0x001c499a, 0x001b4c8c, 0x001c4e84, 0x00174b81, 0x001c4496, 0x002a4e93, 0x0016315d, 0x000f2224, 0x00292811, 0x002e2115, 0x0025150d, 0x00211312, 0x001b1100, 0x001c1301, 0x00222010, 0x00484949,
- 0x00546395, 0x003653a1, 0x004070cb, 0x003d79dd, 0x002878d3, 0x00376fdc, 0x003f6ce5, 0x004070e6, 0x004677e5, 0x004777e5, 0x004877df, 0x004273da, 0x003a6ad1, 0x003766d3, 0x004f80ef, 0x005382f3,
- 0x00687db1, 0x0092b0eb, 0x0090baf8, 0x006fa4f0, 0x0072aafb, 0x0081b4ff, 0x0083b3fe, 0x0086b3ff, 0x0083b5fc, 0x007baffd, 0x0071a8f9, 0x006ea1fb, 0x00649bf5, 0x00659af6, 0x006195f0, 0x005e93eb,
- 0x005e95ef, 0x00659af4, 0x006aa0f8, 0x00659af2, 0x005a91e9, 0x005382dc, 0x003f6ecc, 0x003b6bcf, 0x004878d5, 0x00628ad3, 0x00afcbf9, 0x00e9f9fc, 0x00fdfefc, 0x00fcfcfd, 0x00fcfbfd, 0x00fcfafd,
- 0x00b8cbd4, 0x007b90b4, 0x00b9cef8, 0x00a5bbf3, 0x004e64b1, 0x005267b4, 0x004d61aa, 0x00586db3, 0x00828eda, 0x00838fdd, 0x005b6dc7, 0x003053ba, 0x00304bba, 0x003847b8, 0x004144aa, 0x00413d90,
- 0x00685379, 0x0084696e, 0x00916f58, 0x009a7444, 0x008e5e25, 0x005b3b15, 0x00573517, 0x0094673f, 0x00d49356, 0x00d08a46, 0x00cb823c, 0x00c48340, 0x009d774e, 0x00584c31, 0x001a1f15, 0x000f2829,
- 0x001f2a2b, 0x00202b2b, 0x00232b2b, 0x00272b2d, 0x002a2c26, 0x002c291f, 0x0031291a, 0x00312511, 0x00311f0d, 0x002b1b04, 0x00211708, 0x0020211c, 0x00212619, 0x00242c1f, 0x00222b1d, 0x001f2d1b,
- 0x00223024, 0x001e3231, 0x0054697f, 0x007086ba, 0x003c4cae, 0x002b4cb2, 0x00547ad2, 0x007e98cd, 0x00b9cbae, 0x00d0e5a8, 0x00bbcf99, 0x008aa18c, 0x003e53a0, 0x00213b94, 0x0017378a, 0x00173c73,
- 0x0029298e, 0x0023337a, 0x002e4585, 0x0025468a, 0x00243bad, 0x003d4eae, 0x00616cab, 0x00565d66, 0x001e1b0c, 0x000c0404, 0x00130716, 0x0017132a, 0x0014121b, 0x000d110d, 0x000b0f07, 0x00060c04,
- 0x00030206, 0x0005040a, 0x00100c18, 0x0028252a, 0x00413b3a, 0x00493e35, 0x00776759, 0x00b3a893, 0x00dedcc4, 0x00c8cbb5, 0x006c7162, 0x00262c26, 0x00121b1e, 0x00161e1f, 0x00101915, 0x0018251a,
- 0x00395979, 0x00476a9a, 0x002f5295, 0x0022469c, 0x001c3e9c, 0x001f3c92, 0x00415ca1, 0x007b94c9, 0x007b93bf, 0x007590b8, 0x005c75ab, 0x005670bf, 0x00718ed1, 0x004968a6, 0x005e79ba, 0x007b99dc,
- 0x007386cf, 0x00acbcf5, 0x00a2a9dc, 0x00676e87, 0x001a1e1e, 0x00363836, 0x00c0bebb, 0x00fbf9f4, 0x00fffdfb, 0x00fefefc, 0x00fefefd, 0x00f0f1f3, 0x007c7670, 0x00301a11, 0x004a2608, 0x0064370f,
- 0x007c3a08, 0x007a3d0b, 0x00763c0e, 0x00733b0e, 0x0076390b, 0x00763703, 0x007d3d0a, 0x00804311, 0x006c3f1b, 0x00a88769, 0x00fef8e7, 0x00fdfcfb, 0x00fcfafb, 0x00fefbff, 0x00f9fdff, 0x00d3dffa,
- 0x005573c9, 0x00244cb3, 0x005784f1, 0x0074a6fc, 0x006290eb, 0x004870e4, 0x0091a3f0, 0x00b7a7cb, 0x00d3aa9f, 0x00bbb0c7, 0x0091a5e2, 0x00679cfc, 0x006196fe, 0x00709ef6, 0x007aa9f0, 0x0078a9e0,
- 0x005f9ffd, 0x005188dd, 0x005e8bda, 0x00a6cff7, 0x0084b0e9, 0x00406dc9, 0x00466fe7, 0x004a6aed, 0x004e5891, 0x00424836, 0x005c4c1c, 0x008c643d, 0x00bf926c, 0x00c69b76, 0x00c69a72, 0x00ba8f67,
- 0x00ae815b, 0x00a87951, 0x00a4744e, 0x009e6e46, 0x00a87950, 0x00be885b, 0x00ca9566, 0x00c79667, 0x00a98464, 0x00816350, 0x00331e1c, 0x002c2029, 0x005c5878, 0x00383a5c, 0x00000429, 0x00060c31,
- 0x000b1243, 0x000a1547, 0x000d184d, 0x000c1c53, 0x000c1c5a, 0x0007195b, 0x00011458, 0x0000185f, 0x000b226e, 0x0019337e, 0x00294d9f, 0x00315cc8, 0x00396ddb, 0x003b72dd, 0x00447cdb, 0x00487bd3,
- 0x006f8ed7, 0x00a7bdf7, 0x00b0bcf4, 0x005a64a8, 0x00131c67, 0x00051d68, 0x00132e79, 0x00243f85, 0x00566aa7, 0x007b8ec0, 0x0098a8cf, 0x00a3b0cc, 0x009da5ae, 0x00b3bab7, 0x00d5dccf, 0x00e7eed9,
- 0x00eff1ae, 0x00e5e8b3, 0x00edf0cc, 0x00fafde9, 0x00f9fcf6, 0x00fafef2, 0x00fdfef7, 0x00eceee7, 0x00736e71, 0x00191119, 0x00150c16, 0x00181112, 0x001c1415, 0x00211918, 0x00342c2a, 0x0049433f,
- 0x00635a58, 0x00756c67, 0x008a827c, 0x0090877e, 0x00998f86, 0x00999097, 0x00968f9e, 0x00928b99, 0x0088859b, 0x007e8198, 0x00777b94, 0x00707794, 0x00687596, 0x00627193, 0x005a6a8d, 0x00506587,
- 0x004b6188, 0x00475c83, 0x00445a82, 0x00445c86, 0x00485d8a, 0x004b5f8d, 0x0051638f, 0x00586791, 0x00626d95, 0x0060698c, 0x005a5f87, 0x00505881, 0x004b4e79, 0x00464871, 0x00494771, 0x004f4a70,
- 0x00574b72, 0x00564d6b, 0x00554a66, 0x004f455b, 0x00514459, 0x00574a55, 0x006a515a, 0x007d575d, 0x009e595a, 0x00a85853, 0x00b75b53, 0x00b85f51, 0x00b87261, 0x00bb8c78, 0x00c7a894, 0x00ccbea9,
- 0x00cdcdc9, 0x00d2d1ce, 0x00d4d3d0, 0x00d3d3d1, 0x00d4d5d1, 0x00d3d5d4, 0x00d3d5d4, 0x00d4d4d7, 0x00d6d3d7, 0x00d3d1d5, 0x00cfced3, 0x00ccccd0, 0x00cccbcf, 0x00cbcace, 0x00c9cacd, 0x00c7c9cc,
- 0x00c6c2c9, 0x00c2c0c4, 0x00bebdc1, 0x00bbbcbf, 0x00bbbac0, 0x00bab3c4, 0x00aea6ba, 0x009b99a2, 0x00878689, 0x006d706f, 0x00252726, 0x00030404, 0x000a0000, 0x00190b00, 0x00563f26, 0x008a6e4a,
- 0x0089602f, 0x008a6130, 0x009c733d, 0x00b0864e, 0x00ba8d57, 0x00bf935e, 0x00caa16c, 0x00cba573, 0x00c59971, 0x00b18a64, 0x00936f58, 0x00635146, 0x00544240, 0x00544544, 0x004a383d, 0x00493534,
- 0x004b342f, 0x00462f2e, 0x003a252a, 0x00281e2a, 0x001b1630, 0x0018191e, 0x00171615, 0x00131510, 0x001a1918, 0x00171716, 0x00141314, 0x00111111, 0x00101010, 0x00121313, 0x00161718, 0x001a1a1c,
- 0x0020211f, 0x001d1e1a, 0x00262622, 0x0022221f, 0x002d2d2b, 0x007c7c7c, 0x00efefee, 0x00fdfefc, 0x00fdfbfb, 0x00fcfcfd, 0x00f4f7fa, 0x00b3bcc1, 0x002d476b, 0x00113676, 0x00204fa9, 0x001e51c0,
- 0x002653d7, 0x002753d2, 0x002550cf, 0x001f4dce, 0x001950cb, 0x001c50d0, 0x00214ed0, 0x001d42b8, 0x0029429d, 0x006c7cbf, 0x00c8d0f8, 0x00e8e9fb, 0x00f2f0f0, 0x00f2f1ea, 0x00efeee7, 0x00d2d2cb,
- 0x00c2bcc2, 0x00d3cfd5, 0x00edeaef, 0x00eeecf0, 0x00e9e7ea, 0x00dfdcde, 0x00c4c1c4, 0x00b2afb2, 0x00bbb8bb, 0x00c8c5c9, 0x00cecad1, 0x00c9c4cc, 0x00d1cdd4, 0x009b979c, 0x00211d1f, 0x001e1b1a,
- 0x00767070, 0x00767271, 0x001c1819, 0x001b1616, 0x000e0b08, 0x001b100f, 0x00180e0c, 0x00110d06, 0x00120d0f, 0x000f0e1a, 0x000f1031, 0x002c3267, 0x004b53a2, 0x0031469b, 0x001b338c, 0x00112f86,
- 0x001e3b83, 0x00213f85, 0x001c3881, 0x0016317a, 0x00183178, 0x00142d74, 0x0011296c, 0x00102a65, 0x00102862, 0x00132c60, 0x001a3462, 0x001f3960, 0x00253d62, 0x002f4467, 0x00485a7b, 0x005a6a84,
- 0x007d879d, 0x008a93a5, 0x009da3b1, 0x00afb2c1, 0x00c6c7d2, 0x00d3d5de, 0x00dce0e5, 0x00e1e6ee, 0x00f1f1fb, 0x00f8f8ff, 0x00fdfeff, 0x00fcfdfd, 0x00fffffd, 0x00fffff8, 0x00fefff5, 0x00fcfff2,
- 0x00fffff9, 0x00fffff9, 0x00fffdf8, 0x00fffef9, 0x00fdfcf8, 0x00fdfdfa, 0x00fdfafc, 0x00fcf7fc, 0x00fffaff, 0x00fcf8fb, 0x00faf8fa, 0x00fcfdfa, 0x00fefdfd, 0x00fdfcfc, 0x00fefeff, 0x00ffffff,
- 0x00fcfcfc, 0x00fcfcfc, 0x00fdfcfd, 0x00fdfcfd, 0x00fefdfe, 0x00fbfafa, 0x00f9f9f8, 0x00f6f6f5, 0x00f5f4f6, 0x00f2eff2, 0x00efebef, 0x00ede9ec, 0x00cbc3c6, 0x008d8586, 0x00605759, 0x00564c4f,
- 0x00473d3f, 0x00383031, 0x00282121, 0x001c1616, 0x00161010, 0x00100b0c, 0x000e0e0c, 0x000a0c08, 0x000e0e0b, 0x000f110e, 0x00121312, 0x00121213, 0x000f0e10, 0x000b090a, 0x000a0a09, 0x000b0e0a,
- 0x00131411, 0x0021201d, 0x002b2a26, 0x0032332d, 0x0042443b, 0x004c4f44, 0x004b5043, 0x00494d40, 0x003b3d33, 0x002d3126, 0x001d241a, 0x00141c12, 0x00131c13, 0x00101912, 0x000d1811, 0x000b1710,
- 0x000a1613, 0x000a1612, 0x000c1612, 0x000d1712, 0x000d1713, 0x000d1715, 0x000d1715, 0x000d1715, 0x000e1614, 0x000d1815, 0x000a1816, 0x00081815, 0x00071916, 0x00081916, 0x00081916, 0x00081a16,
- 0x00091917, 0x00081916, 0x00091a15, 0x00091a15, 0x00091a17, 0x00091914, 0x0004110a, 0x0019211c, 0x00909394, 0x00f1f1f2, 0x00fcfcfb, 0x00fcfbfa, 0x00fcfbf9, 0x00f7f7f2, 0x00b8bab0, 0x0063695a,
- 0x003b4f2c, 0x00263f1c, 0x00132c0d, 0x00122f13, 0x00102f15, 0x000c2f15, 0x00113016, 0x00102f15, 0x00102d13, 0x00102c10, 0x000f2b11, 0x000d2a14, 0x000c2a15, 0x000c2a14, 0x000c2a14, 0x000c2a14,
- 0x000b2916, 0x000d2c18, 0x00112f1a, 0x00102e19, 0x000d2a16, 0x000b2813, 0x000c2914, 0x000d2a14, 0x000d2815, 0x000c2815, 0x000d2916, 0x000e2b16, 0x000e2b17, 0x000f2c17, 0x000e2c16, 0x000d2b16,
- 0x00102f0f, 0x00142c10, 0x00152a11, 0x00122a14, 0x000c2c15, 0x000c3118, 0x000a2f14, 0x0008270a, 0x0024220d, 0x00574231, 0x00c2a6a7, 0x00c0a7c1, 0x00504e82, 0x00273880, 0x0025449c, 0x00244aae,
- 0x002443a6, 0x0026419e, 0x0027409d, 0x0029469d, 0x00294daa, 0x003154a6, 0x0030539f, 0x0031539e, 0x003350a1, 0x003451a2, 0x00334ea0, 0x002d4797, 0x0027428f, 0x00223e88, 0x0027448c, 0x00304e95,
- 0x0031509b, 0x002e4f99, 0x003759a4, 0x004365b1, 0x004d6eba, 0x00506eb8, 0x004561a3, 0x003b5790, 0x003b4f80, 0x003a4c7a, 0x0047527d, 0x00717199, 0x0052577d, 0x001d244a, 0x00475276, 0x008690b0,
- 0x00bbc0e1, 0x00d3dbed, 0x00ebedfc, 0x00f2f3fd, 0x00f8f6f7, 0x00e6e8d1, 0x00dce0b6, 0x00e0e9b4, 0x00dae39f, 0x00cedb91, 0x00b9c67d, 0x00bcc884, 0x00bcc789, 0x00b2c17e, 0x00a6b66d, 0x00adbf6f,
- 0x00c2cd85, 0x00bdc981, 0x00b8c57d, 0x00b1bd75, 0x00abba71, 0x00acb970, 0x00a9b86f, 0x00acbc72, 0x00b1be76, 0x00aebc73, 0x00afbe74, 0x00b1c278, 0x00a2b464, 0x007d9240, 0x006c8237, 0x00647b39,
- 0x0094a282, 0x00e7f0df, 0x00fafefb, 0x00fcfdfd, 0x00faf9f7, 0x00fbfbf8, 0x00cfcfcd, 0x00868783, 0x00868283, 0x00b5b5b3, 0x00e6e7eb, 0x00f6f8fc, 0x00eef1fc, 0x008f96b4, 0x006a739a, 0x00c2ceed,
- 0x00eef3fb, 0x00eff3f8, 0x00eef0f6, 0x00eeeef2, 0x00f5f3fa, 0x00fcfaff, 0x00f8f6fe, 0x00eeecf7, 0x00e0e2f2, 0x00d9dfee, 0x00dfe3f4, 0x00e2e6f3, 0x00e7eaf8, 0x00eff1fb, 0x00f8f7ff, 0x00f6f8fc,
- 0x00d8d9ea, 0x00bec6d9, 0x00b7c3d9, 0x00b1c0db, 0x0098afcb, 0x007098d3, 0x005c8dda, 0x005586d2, 0x006a9ce7, 0x0082b4f9, 0x0088b9ff, 0x0086b7fc, 0x0084b5fe, 0x0083b4fe, 0x0082b3fd, 0x007eaefe,
- 0x007ab1f2, 0x0075aeee, 0x006da7e9, 0x0070abf0, 0x0071acf6, 0x00639fed, 0x005995e4, 0x00619eed, 0x0078b4fd, 0x0075b3fa, 0x00649de6, 0x007ca4eb, 0x0088b3f9, 0x008cb4fa, 0x0087b2f7, 0x008ab2f7,
- 0x008ebafe, 0x0085aff8, 0x006992dd, 0x005e88d7, 0x006893e6, 0x006585d3, 0x005470b6, 0x003c5c9d, 0x0022488a, 0x001c4886, 0x001f4f8a, 0x00194b83, 0x00164884, 0x00114381, 0x00114281, 0x000f3f7f,
- 0x00133d90, 0x00104483, 0x00104580, 0x000d4480, 0x00294f9d, 0x003b538d, 0x0036405c, 0x004b4739, 0x00695226, 0x00664926, 0x00664126, 0x00614025, 0x0051300e, 0x00402807, 0x003a2914, 0x007f7670,
- 0x00a8b1dd, 0x006882c7, 0x00426ec7, 0x003c7ade, 0x002f80e5, 0x003679e0, 0x003e76dc, 0x003b78d4, 0x003d7bcf, 0x004080cd, 0x004080cb, 0x004183cb, 0x003876c5, 0x003a74ca, 0x004e86e2, 0x004176d6,
- 0x007389c6, 0x00adcef8, 0x0097bfff, 0x006ea1f7, 0x0071a8fc, 0x007fb2fc, 0x0084b3ff, 0x0083b3fc, 0x0080b2ff, 0x0071aafd, 0x00679ff7, 0x006298f5, 0x006498f3, 0x00669cf8, 0x006399f6, 0x005d93f0,
- 0x006196f5, 0x006097f4, 0x00659bf7, 0x00699dfa, 0x0069a0fc, 0x00699ffb, 0x00568eec, 0x004680e4, 0x00457cda, 0x005481c8, 0x00a9c7f9, 0x00e8f9fa, 0x00fefefd, 0x00fdfefd, 0x00fcfcfd, 0x00fbfbfc,
- 0x00b5c6cc, 0x006b7b9d, 0x00bbcaf6, 0x00b7c7fd, 0x006474bc, 0x005466a1, 0x006376ad, 0x006176a7, 0x009faade, 0x00b2bbf3, 0x007382cb, 0x003451b8, 0x00283faf, 0x002e3bb2, 0x002d30a3, 0x003d3ca1,
- 0x00515089, 0x006b607a, 0x00736367, 0x00776456, 0x006b5237, 0x0057391e, 0x00613a1d, 0x008f603b, 0x00d28d5a, 0x00d58e53, 0x00c68044, 0x00be8449, 0x009a7e5c, 0x0057503c, 0x00172421, 0x00142f39,
- 0x00172d2f, 0x001b2e30, 0x001f2c30, 0x00272c2e, 0x0025211b, 0x002c2012, 0x005a4630, 0x007a5e41, 0x00866239, 0x00765123, 0x00482e0c, 0x00201e17, 0x00242722, 0x002a3029, 0x00202a1f, 0x00203022,
- 0x00102921, 0x001f3845, 0x005e75a0, 0x00586cb3, 0x002e42aa, 0x003250bf, 0x00597ade, 0x008196d9, 0x00bbc6b4, 0x00d4dfb2, 0x00c0d1a5, 0x00a8bcb4, 0x006070cb, 0x001a3199, 0x000d298a, 0x0015347c,
- 0x0021308e, 0x00172d74, 0x001c3477, 0x001f3b81, 0x00243ca7, 0x003048a3, 0x00576fb0, 0x004d6074, 0x00171d12, 0x000b0807, 0x000d050d, 0x00060513, 0x00060806, 0x000a0f07, 0x000f1207, 0x00090e01,
- 0x00060a06, 0x00070b0b, 0x000c070c, 0x002b2527, 0x00514442, 0x00786253, 0x00b89882, 0x00d2b99a, 0x00f6e8c6, 0x00f7f0d2, 0x00a29b85, 0x00433e32, 0x00191713, 0x0027231e, 0x002e2d25, 0x003b3c2e,
- 0x00375973, 0x004a6994, 0x00536eac, 0x00475da9, 0x0033479f, 0x001f3984, 0x00354f8f, 0x006a84b6, 0x0095a8d1, 0x008e9ec7, 0x00697cac, 0x00506cb4, 0x004969a8, 0x003e5c9e, 0x00546faf, 0x00718ccf,
- 0x007f97d4, 0x00aebff5, 0x00aab7e8, 0x00677194, 0x001c2535, 0x00393c42, 0x00c1c1bf, 0x00fdf8f8, 0x00fefefa, 0x00fdfefd, 0x00fcfdfe, 0x00f1f3f1, 0x00847e78, 0x00372111, 0x00472107, 0x005f2e0b,
- 0x00763305, 0x0077380d, 0x00763a10, 0x00733a13, 0x00783b10, 0x007b390d, 0x007e3a0c, 0x007a370e, 0x00643317, 0x00a17c65, 0x00fdf6e9, 0x00f9fbf5, 0x00fdfaf5, 0x00fffdfb, 0x00f9fdfd, 0x00ddebfe,
- 0x005b7ec9, 0x00143da0, 0x003d6cd8, 0x00699dfa, 0x006698ef, 0x003c74e5, 0x0072a2f4, 0x0099b2eb, 0x00adbbce, 0x00a3c0e6, 0x0085aeed, 0x00679cf3, 0x006d8bef, 0x006f8fea, 0x00739ef2, 0x006ca7f3,
- 0x005aa1f8, 0x004981d7, 0x006089da, 0x00a3c7f7, 0x0082abea, 0x004878d5, 0x005c86f8, 0x00597afe, 0x00495a98, 0x0039453c, 0x00544c21, 0x007b5633, 0x00a7805f, 0x00b68d6e, 0x00b28a64, 0x00a77b5b,
- 0x00956e49, 0x00956a45, 0x009b6d47, 0x00a0714b, 0x00ad7c57, 0x00bd8c5b, 0x00bf9060, 0x00ba8e62, 0x0091715d, 0x005d443a, 0x00291819, 0x002e262f, 0x002d2c46, 0x00121637, 0x0000042a, 0x000c103a,
- 0x00040e48, 0x00070e4a, 0x00090f4e, 0x00070e4f, 0x00041255, 0x00031058, 0x0001125d, 0x00081b68, 0x001b3183, 0x002f4599, 0x00405daf, 0x004b6ec1, 0x00517cd0, 0x004f7dcd, 0x00527ec7, 0x00587ebe,
- 0x008aa1ce, 0x00cbd8f6, 0x00c9cef2, 0x008b8cb9, 0x0051578b, 0x00485880, 0x0050658b, 0x005c7095, 0x00838fb4, 0x00a4afd1, 0x00b5bfde, 0x00c3cbe1, 0x00d1d4e6, 0x00d1d0dd, 0x00dcd9e0, 0x00f5f0f1,
- 0x00f5f9d2, 0x00eaecd0, 0x00eeede0, 0x00fdfbf7, 0x00f7f7f9, 0x00f9fbf4, 0x00fdfef6, 0x00edefe4, 0x007d7a75, 0x00181315, 0x001b1417, 0x00251f21, 0x00342e2c, 0x003e3638, 0x00585150, 0x006d6766,
- 0x00807c7a, 0x00898582, 0x0098938e, 0x009e9994, 0x009e9993, 0x0096929e, 0x008b899c, 0x00878498, 0x00797a95, 0x006b718d, 0x005b6481, 0x00525f7f, 0x004a5b80, 0x00475a82, 0x00435880, 0x003f5780,
- 0x0039537d, 0x0038507e, 0x003a5382, 0x003b5586, 0x003a5385, 0x003b5383, 0x00405583, 0x00445684, 0x004b5683, 0x004f5780, 0x004d517a, 0x004c4a75, 0x004f4b73, 0x00534870, 0x0056476b, 0x00584465,
- 0x0057405c, 0x00553e57, 0x00503650, 0x004b354c, 0x004d344b, 0x00503a42, 0x00624043, 0x00784849, 0x009e504e, 0x00a9514b, 0x00b3564d, 0x00b55c4e, 0x00b47463, 0x00bd8e7e, 0x00caae9d, 0x00d1c4b1,
- 0x00cecfca, 0x00d1d1ce, 0x00d4d3d1, 0x00d2d2d2, 0x00d1d2d1, 0x00ced0d0, 0x00cecfd0, 0x00cfcfd2, 0x00d0cfd2, 0x00cecdd0, 0x00cbcbcf, 0x00cacacf, 0x00cac9cf, 0x00cac9ce, 0x00cac9ce, 0x00cacace,
- 0x00c3c1c6, 0x00c2c2c6, 0x00c2c0c7, 0x00bcbac0, 0x00b6b4ba, 0x00aba7b7, 0x009a94a8, 0x0086838f, 0x006b6a6b, 0x00505251, 0x00272927, 0x00080b09, 0x000b0201, 0x000d0201, 0x002e1b08, 0x004f391d,
- 0x00623a0b, 0x00744c1e, 0x00976f3e, 0x00a9804f, 0x00ba905d, 0x00c29866, 0x00c79e6d, 0x00c69f6e, 0x00b38459, 0x00986b45, 0x0081583c, 0x005f4336, 0x004a3935, 0x004e4344, 0x0043393a, 0x00392f31,
- 0x003a2c24, 0x003d2a23, 0x00301e20, 0x001d151c, 0x000f1327, 0x00141619, 0x00161515, 0x00171615, 0x00151514, 0x00131312, 0x000f0f0f, 0x000c0d0c, 0x000f0f0e, 0x00111210, 0x00151514, 0x00191919,
- 0x001e201c, 0x0020211d, 0x00232320, 0x00252421, 0x002e2d2c, 0x00787776, 0x00efefef, 0x00fdfefd, 0x00fbfbfa, 0x00fbfcfa, 0x00f7fbf5, 0x00b9c4bd, 0x00344e6b, 0x0011376f, 0x001a499e, 0x002254c0,
- 0x002355ca, 0x002953cc, 0x00244dc7, 0x00234dc7, 0x001f51c7, 0x00184acc, 0x00204dd0, 0x002046c8, 0x002239a9, 0x003e4da5, 0x00a7b1e9, 0x00dee2fb, 0x00ececee, 0x00edeaeb, 0x00cfcacc, 0x00bdb7be,
- 0x00dad7da, 0x00e6e3e7, 0x00f2eef4, 0x00e9e6eb, 0x00dad7db, 0x00c3c0c3, 0x00b7b4b8, 0x00beb9be, 0x00cbc9cb, 0x00d0cdd1, 0x00cecbd0, 0x00cdc9cf, 0x00d3cfd6, 0x00a7a3a8, 0x002f2b2e, 0x00242023,
- 0x0075736f, 0x005b5857, 0x000b0808, 0x00171414, 0x00120e0c, 0x001c1411, 0x001c130e, 0x001b180f, 0x00161213, 0x00100e24, 0x0012153d, 0x00353c7d, 0x004c59b9, 0x002d45aa, 0x002744b0, 0x002848b5,
- 0x002246a6, 0x002347a7, 0x002648ab, 0x002648ad, 0x002344a7, 0x001d3d9e, 0x001f3c9a, 0x001e3b93, 0x00193688, 0x00163683, 0x00153780, 0x000e3071, 0x000d2e6c, 0x000d2a67, 0x00112964, 0x00142a5e,
- 0x00172857, 0x001d2c58, 0x002b365f, 0x003c436d, 0x00545b80, 0x00666e87, 0x00788292, 0x00858ea2, 0x009ea1ba, 0x00afb3ca, 0x00bcc0d3, 0x00c7cbda, 0x00dfe2ec, 0x00eef1f6, 0x00f8fbfb, 0x00fafefa,
- 0x00f6fcf7, 0x00fbfefb, 0x00fdfefc, 0x00fefefc, 0x00fdfefc, 0x00fdfefc, 0x00fbfbfb, 0x00fbf7fa, 0x00fcfafa, 0x00fefcfb, 0x00fdfcfd, 0x00fdfefc, 0x00fefdfe, 0x00fcfcfc, 0x00fcfdfe, 0x00fdfdfd,
- 0x00f7f8f5, 0x00fbfcfa, 0x00fffffe, 0x00fefdfc, 0x00fdfcfc, 0x00fbfbfa, 0x00fdfdfd, 0x00fdfdfd, 0x00fffefc, 0x00fdfcfc, 0x00fdfdfd, 0x00f8f9f9, 0x00faf8f8, 0x00f0eded, 0x00e0dcde, 0x00d1cace,
- 0x00b2aead, 0x00a5a2a1, 0x008c8888, 0x00797575, 0x00696565, 0x00585554, 0x00444441, 0x00363835, 0x002a2b27, 0x00222220, 0x00161716, 0x000c0d0d, 0x00080708, 0x00040303, 0x00040403, 0x00060706,
- 0x000a0c07, 0x00181915, 0x002d2d28, 0x003a3b34, 0x00474a41, 0x004c4e44, 0x004c4d41, 0x00494b3f, 0x003a3f33, 0x002c3126, 0x001c231a, 0x00121a11, 0x00111911, 0x000e170f, 0x000e1812, 0x000f1813,
- 0x000a1411, 0x000a1411, 0x000a1410, 0x000a140f, 0x000b1512, 0x000c1613, 0x000d1814, 0x000e1815, 0x000f1815, 0x000e1815, 0x000c1916, 0x00091916, 0x00081916, 0x00071715, 0x00071815, 0x00091a16,
- 0x00071815, 0x00071915, 0x00071813, 0x00091a15, 0x00071814, 0x00081811, 0x0006120b, 0x00212824, 0x00a1a5a3, 0x00f3f4f3, 0x00fdfdfc, 0x00f9f8f7, 0x00fdfcfa, 0x00f8f8f3, 0x00a9aaa2, 0x0052574a,
- 0x002f4622, 0x001f3715, 0x00102b0c, 0x00112e12, 0x000d3015, 0x000d3015, 0x000d3115, 0x000d2f13, 0x000e2e11, 0x000f2e0f, 0x000f2d10, 0x000d2d13, 0x000c2c13, 0x000c2b13, 0x000d2b14, 0x000d2b14,
- 0x000e2b15, 0x000e2b15, 0x000f2d15, 0x000e2d15, 0x000d2c15, 0x000b2b13, 0x000a2a12, 0x00092912, 0x000d2b14, 0x000d2b15, 0x000c2b14, 0x000d2c15, 0x000f2d17, 0x000f2e17, 0x000e2c16, 0x000c2c14,
- 0x000d2d0a, 0x000f2b0d, 0x00132c10, 0x000f2a10, 0x000c2d15, 0x00062c12, 0x00082d13, 0x000e2c12, 0x0017220d, 0x002a2919, 0x005d5955, 0x00706a84, 0x00495182, 0x0035498d, 0x002d479a, 0x002a4bac,
- 0x002548a6, 0x002543a0, 0x00253f9b, 0x001f3a90, 0x0023439d, 0x0021448f, 0x00294b91, 0x002c4d9a, 0x003350a1, 0x003857a8, 0x003a57a9, 0x003c57a7, 0x00344f9c, 0x0029458d, 0x00264086, 0x00274186,
- 0x00243f72, 0x001f3b70, 0x0029457e, 0x002f4a85, 0x00344d88, 0x00384f86, 0x00304574, 0x00203359, 0x003c4864, 0x00646f85, 0x00787e92, 0x009a9aaf, 0x0088899e, 0x00737588, 0x00a3a8b9, 0x00c9cede,
- 0x00d9dfe7, 0x00e0e5ea, 0x00eaedef, 0x00f5f5f3, 0x00fdfef8, 0x00f1f1e0, 0x00dee2c5, 0x00dce1ba, 0x00d4dda0, 0x00c5d08d, 0x00b6c37f, 0x00b4c283, 0x00b0be86, 0x0096a76b, 0x00778a49, 0x00879b56,
- 0x00b2c27c, 0x00b8c883, 0x00b6c580, 0x00b4c27d, 0x00b2c17d, 0x00b1bf7b, 0x00a6b36f, 0x00a4b26f, 0x00acb978, 0x00b7c583, 0x00bdcb88, 0x00bbcb86, 0x009daf65, 0x0075893d, 0x00687d37, 0x0062773c,
- 0x0092a282, 0x00e6eee4, 0x00fafefd, 0x00fcfdff, 0x00fdfafe, 0x00fefdfb, 0x00cfd1cd, 0x00878882, 0x00848481, 0x00b5b6b4, 0x00e4e6ea, 0x00f3f5fc, 0x00e8ebf5, 0x007f83a8, 0x00636a94, 0x00cdd5f2,
- 0x00e9eff5, 0x00f1f5f9, 0x00f7fafd, 0x00f8f9fb, 0x00fefbff, 0x00fcfafc, 0x00faf9fd, 0x00f9f7fd, 0x00f3f4ff, 0x00f0f3fd, 0x00eff1f9, 0x00f1f3f3, 0x00f2f5f6, 0x00f6f7f6, 0x00f6f6fa, 0x00f5f8fb,
- 0x00dae2e3, 0x00c4d0d7, 0x00c2d0dc, 0x00c1d0e0, 0x00acc0d3, 0x008aaad8, 0x007ca2e1, 0x006a8fce, 0x00567cbc, 0x006d92ce, 0x008cb0ed, 0x008fb4ee, 0x008db1f1, 0x008aaff0, 0x008bb0f3, 0x008badf7,
- 0x0077a9f5, 0x0075a7f8, 0x0072a4f5, 0x0073a5fa, 0x0077a9fd, 0x0075a8fa, 0x00679af6, 0x005e91f2, 0x0076abfe, 0x007bb2fd, 0x006e9ef2, 0x0082a4ee, 0x008bb1fc, 0x008eb0fa, 0x008cb0f7, 0x008fb4fe,
- 0x0087b2f9, 0x007ca5f0, 0x007298e9, 0x00739cf1, 0x005e83df, 0x00365fb5, 0x00194395, 0x001c4694, 0x0017458c, 0x00104081, 0x0020518b, 0x001b4b81, 0x001a477c, 0x00164076, 0x0011386f, 0x0011346d,
- 0x000b3480, 0x000c407b, 0x000d437d, 0x00144a86, 0x003353a1, 0x00424e7e, 0x00464252, 0x006e573a, 0x008f6831, 0x009b6e40, 0x009f6e49, 0x0095673c, 0x00865c2d, 0x00714b1e, 0x005f4125, 0x00755d51,
- 0x00bbbace, 0x00b2c1f0, 0x005f7ac3, 0x004474c8, 0x004383e2, 0x004586e0, 0x00457fdc, 0x003d7ed5, 0x003c7fcf, 0x003f85cc, 0x004286cc, 0x00377ebf, 0x003575c0, 0x003f78c7, 0x004e86db, 0x003c6dca,
- 0x00758fc5, 0x00aac8fa, 0x0084a8f1, 0x0077a5f8, 0x007babfe, 0x0089b7f9, 0x0088b4fc, 0x0084b0f9, 0x007daefc, 0x006fa4f8, 0x005e96eb, 0x005d8ce6, 0x006997ef, 0x006d9cf3, 0x006d9cf5, 0x006998f3,
- 0x006796ef, 0x006191e9, 0x006291e9, 0x006a98f0, 0x006e9ff7, 0x006aa1f6, 0x0064a0f7, 0x005f9bf9, 0x00538ce5, 0x005383c6, 0x009fc1ef, 0x00e5f8f7, 0x00fdfff7, 0x00fafcf1, 0x00fbfdf6, 0x00fdfdfc,
- 0x00bbc1d1, 0x005a6295, 0x00979ede, 0x00939be8, 0x00626ebb, 0x005360a5, 0x006a77b4, 0x00606fa3, 0x0098a0d4, 0x00bcc2f6, 0x008893d7, 0x004053b4, 0x002838a9, 0x002f37ae, 0x002e35ab, 0x003235a3,
- 0x00454995, 0x0059588e, 0x00716f91, 0x00828395, 0x006c6b75, 0x00543c39, 0x0061392e, 0x00895b48, 0x00ba7d5b, 0x00b7784f, 0x00a5653b, 0x00a06a41, 0x0081674d, 0x00474233, 0x00152420, 0x000a282b,
- 0x000f252a, 0x001a2a2e, 0x00232c31, 0x001f1f1e, 0x001e1209, 0x00523d2c, 0x009f8367, 0x00c9a37b, 0x00ddab79, 0x00ce9c62, 0x00977146, 0x003d3a2d, 0x001d1c1c, 0x00272c29, 0x00222e25, 0x001c2f20,
- 0x00162f31, 0x003a5273, 0x00627bb5, 0x003e58aa, 0x002b43a2, 0x004861c8, 0x005a72ce, 0x005866ae, 0x0083898f, 0x00b8c0af, 0x00c2cfc0, 0x00b1bfd1, 0x005b69ce, 0x00142791, 0x00162b88, 0x002d4988,
- 0x00344a95, 0x001e3677, 0x00314785, 0x003f5598, 0x004151aa, 0x00304697, 0x00566dad, 0x00546d90, 0x00162125, 0x00040707, 0x00100f11, 0x0009070f, 0x00030604, 0x00010702, 0x00030d03, 0x00040f04,
- 0x00030509, 0x0005060b, 0x000e0a0f, 0x00110b0c, 0x00372c25, 0x0092735c, 0x00c79b7c, 0x00bd9a72, 0x00ccaf84, 0x00cfb892, 0x008e7a5e, 0x00443521, 0x0021140a, 0x004c3e34, 0x00807768, 0x0089816e,
- 0x00637ca5, 0x008ea1d2, 0x00a9b7f4, 0x00a3aef1, 0x00636ec5, 0x00283a86, 0x002d408a, 0x00405593, 0x006b76ae, 0x008086b9, 0x00747eb7, 0x004560a0, 0x0027437e, 0x002f4987, 0x00314789, 0x00354b8e,
- 0x003c528f, 0x006577b0, 0x007685b9, 0x003c4a72, 0x000e1d3a, 0x00383f4d, 0x00c0bfc4, 0x00faf7f8, 0x00fffefc, 0x00fcfbf9, 0x00fefffe, 0x00f1f3f1, 0x00837c75, 0x00341c12, 0x004a250c, 0x0062300f,
- 0x007b360e, 0x007b3b14, 0x007a3e16, 0x00763c17, 0x007b3b14, 0x007c3911, 0x00803b12, 0x007f3c18, 0x0067341d, 0x00a37c6d, 0x00fff6ed, 0x00f8fdf6, 0x00fffdf2, 0x00fdfef5, 0x00f9fdfa, 0x00dff0fc,
- 0x007b9be3, 0x002752ac, 0x002757c0, 0x004b80e8, 0x006fa2fd, 0x004884e1, 0x00639bee, 0x008cb7f9, 0x0093bfec, 0x0082baf0, 0x0075b0f3, 0x00689ef2, 0x00738aec, 0x006e8cf2, 0x006395f4, 0x00519ff6,
- 0x005b9afd, 0x005589e8, 0x00628be5, 0x0099b9f9, 0x007ca1e5, 0x00456fd3, 0x00618afa, 0x006689fd, 0x005567b5, 0x003b474f, 0x00484229, 0x0067482c, 0x008c6b4f, 0x009a785e, 0x00937356, 0x008a6a4d,
- 0x00866144, 0x00855f40, 0x008d6644, 0x00966f4d, 0x00a57b5a, 0x00ac8356, 0x00b28a60, 0x009c7654, 0x00543b2f, 0x002b1918, 0x0020151a, 0x001a151f, 0x000b0a1d, 0x0000011e, 0x00020425, 0x0004072f,
- 0x000d1149, 0x0012154d, 0x00181d55, 0x001b235b, 0x00222d65, 0x002c3974, 0x003a4a89, 0x004d5d9e, 0x006779c0, 0x007487ce, 0x007f95d7, 0x008aa3d7, 0x0096b4ed, 0x0096b8ef, 0x009cbdf1, 0x00a7c2e9,
- 0x00d6e2f6, 0x00f2f8fe, 0x00ecebfb, 0x00dad9f0, 0x00c8cbe9, 0x00c9d2e8, 0x00d4ddef, 0x00dae4f4, 0x00e8eeff, 0x00f0f4fd, 0x00f5f6fe, 0x00f4f2fc, 0x00f8f3fc, 0x00f8f4fc, 0x00f8f6fa, 0x00fdfdf8,
- 0x00fdfbed, 0x00ece7e4, 0x00e3dde4, 0x00faf7fb, 0x00f9f8fd, 0x00fcfefc, 0x00fdfff9, 0x00f4f4e8, 0x008d897f, 0x002e2923, 0x0036302e, 0x00433e3d, 0x0056514f, 0x00666263, 0x007b7779, 0x008d8a8c,
- 0x00949395, 0x00989698, 0x009d9b9d, 0x009e9c9d, 0x0098969a, 0x008d8da0, 0x007c7e98, 0x006f708a, 0x005d6183, 0x004f577a, 0x00434f72, 0x003d4c70, 0x00384a74, 0x00364976, 0x00364b77, 0x00364d7b,
- 0x00334b7b, 0x00354c7f, 0x00354e82, 0x00334f82, 0x00334f83, 0x00324c7d, 0x00324a78, 0x00364979, 0x003e4372, 0x00434671, 0x004a456f, 0x0052436b, 0x005b456c, 0x005e4467, 0x00604261, 0x00624059,
- 0x00613d56, 0x005f394f, 0x00553044, 0x004c2a3d, 0x004c293d, 0x00512f36, 0x00633839, 0x00794142, 0x009a4b46, 0x00a84f48, 0x00af514a, 0x00b15a4e, 0x00b47668, 0x00bc9284, 0x00c9b2a3, 0x00cec7b6,
- 0x00d0d1cb, 0x00d1d1cd, 0x00d3d2d2, 0x00d1d0d1, 0x00cfced1, 0x00cccbce, 0x00cccccf, 0x00cccdd0, 0x00cbccd0, 0x00cbcbd0, 0x00cccbd1, 0x00cdcdd3, 0x00cdccd3, 0x00cbc9d1, 0x00cac8cf, 0x00cbc8cf,
- 0x00c3c4c8, 0x00c1c2c5, 0x00bfbdc5, 0x00b8b5bd, 0x00aaa8af, 0x009a98a6, 0x00827d90, 0x006b6872, 0x004a484a, 0x0030312e, 0x00242323, 0x00191817, 0x00160c10, 0x00160a08, 0x002f2112, 0x004c3b23,
- 0x00643e14, 0x00653f15, 0x007c552b, 0x008e683d, 0x00a58152, 0x00b08a5d, 0x00ba9267, 0x00ba8f66, 0x00ad8058, 0x00966740, 0x00714427, 0x00552c18, 0x00402e21, 0x003a372f, 0x00313631, 0x002f3831,
- 0x002c291f, 0x002a231b, 0x00221b16, 0x00181615, 0x000b1318, 0x000e0f11, 0x00120f10, 0x00141215, 0x00131415, 0x00101111, 0x00101010, 0x000f0f0e, 0x0011110f, 0x0011110f, 0x00141311, 0x00151413,
- 0x00181816, 0x001c1d1a, 0x0021211f, 0x00252523, 0x002d2e2b, 0x00747472, 0x00eeeeed, 0x00ffffff, 0x00fcfdfa, 0x00fdfdfc, 0x00fbfcf9, 0x00bfc5c4, 0x003b5271, 0x00123574, 0x001945a0, 0x00204fc0,
- 0x002750cf, 0x002c4fcd, 0x00284cc9, 0x00274cc2, 0x00224cc3, 0x001f4ac7, 0x001e44c8, 0x00203dc7, 0x002539b3, 0x002b3796, 0x00757cc1, 0x00c2c5e6, 0x00e0dfe5, 0x00bebbbf, 0x00a9a3aa, 0x00cfc5d5,
- 0x00ecebed, 0x00ece9ec, 0x00e8e5e9, 0x00dcd9dd, 0x00c4bfc4, 0x00bcb7bc, 0x00c4c0c5, 0x00cfcace, 0x00d4d1d3, 0x00ccc9cc, 0x00c6c3c6, 0x00cac7c9, 0x00d7d3d8, 0x00ada9ae, 0x00383539, 0x00272429,
- 0x006d6b68, 0x004f4e4c, 0x000b0807, 0x000f0d0c, 0x00130f0e, 0x001a1411, 0x00150e09, 0x00100d05, 0x00140f14, 0x00100f28, 0x001c1c4d, 0x00343e88, 0x00374ab2, 0x002d4abb, 0x00244bc3, 0x00264ec7,
- 0x002950c7, 0x002b52c8, 0x002c51cb, 0x002b50cb, 0x002e53cd, 0x003155cb, 0x003355c9, 0x003252c3, 0x002b4ab2, 0x002547ac, 0x002549aa, 0x002047a1, 0x001e439d, 0x001c3f96, 0x001d3c8f, 0x001d3a8a,
- 0x00263f85, 0x0023387c, 0x001f2f70, 0x001c2a6b, 0x001d2a69, 0x001e2d5a, 0x00243254, 0x00252f57, 0x0027325c, 0x002c3760, 0x00343e65, 0x00454f71, 0x005d6782, 0x006c778b, 0x008791a0, 0x00a2abb8,
- 0x00b4bfc2, 0x00bec7cb, 0x00cad1d7, 0x00d5dbe0, 0x00e5e9ee, 0x00ecf0f4, 0x00f5f8fb, 0x00fbfcff, 0x00fefeff, 0x00fdfcfc, 0x00fcfbfd, 0x00fcfcfe, 0x00fefdff, 0x00fefefe, 0x00fdfeff, 0x00fdfdff,
- 0x00fffffe, 0x00fefefc, 0x00fcfcf9, 0x00fefffc, 0x00fffffd, 0x00fdfefd, 0x00fcfdfc, 0x00fdfefe, 0x00fbfbfc, 0x00fafafa, 0x00faf9fa, 0x00f8f7f7, 0x00fdfbfc, 0x00fefcfc, 0x00fdfcfd, 0x00fcfbfb,
- 0x00fffefe, 0x00fcfcfa, 0x00f8f7f4, 0x00f2f1ee, 0x00eceaea, 0x00e6e5e5, 0x00d7d7d4, 0x00c0c2bd, 0x00a9a9a7, 0x00959493, 0x007e7f7c, 0x006b6c6a, 0x00545355, 0x00464547, 0x00353635, 0x00252523,
- 0x001d2019, 0x00171813, 0x00171812, 0x0022241d, 0x00353630, 0x00414039, 0x0044443a, 0x0045453c, 0x00373c32, 0x00242820, 0x00141812, 0x00101710, 0x00141a14, 0x00131b14, 0x00111914, 0x00111714,
- 0x000c1310, 0x000c1411, 0x000d1713, 0x000e1914, 0x00101918, 0x00101917, 0x000f1815, 0x000f1714, 0x000f1713, 0x000b1411, 0x000a1613, 0x000b1b18, 0x000d1c1a, 0x000c1a19, 0x000a1918, 0x00081817,
- 0x00091917, 0x00081916, 0x00091916, 0x00091916, 0x000a1a16, 0x00091812, 0x0008140d, 0x002e3732, 0x00b6bab9, 0x00f6f8f7, 0x00fdfdfd, 0x00fcfbfb, 0x00fdfcfa, 0x00f4f4ef, 0x00999b93, 0x0043473b,
- 0x00233b17, 0x00172d0c, 0x0010280a, 0x00102d11, 0x000f3115, 0x000f3116, 0x000f3015, 0x00102f15, 0x000d2d11, 0x000e2d0e, 0x000e2d0f, 0x000c2c12, 0x000c2b12, 0x000c2a11, 0x000d2912, 0x000d2a13,
- 0x000f2d15, 0x000f2d15, 0x000f2e13, 0x000e2d13, 0x000e2d15, 0x000c2c14, 0x000a2a12, 0x000a2a12, 0x000c2c13, 0x000c2d13, 0x000c2c13, 0x000c2c14, 0x00102e17, 0x00112f18, 0x000f2d17, 0x000d2c15,
- 0x000f2c0f, 0x00102b11, 0x00112d11, 0x000f2c11, 0x000d2e14, 0x000b2f15, 0x00072b12, 0x00082810, 0x00142912, 0x00182914, 0x0017231b, 0x0023293c, 0x004b597f, 0x00465c94, 0x00243c82, 0x003856a6,
- 0x003955ae, 0x002c489f, 0x002b439a, 0x002b4193, 0x00233b8a, 0x001e3986, 0x00233f8c, 0x00254193, 0x00233d91, 0x00274498, 0x002f4a9e, 0x00344ea0, 0x003a54a1, 0x00384f99, 0x00283d84, 0x001f347a,
- 0x001f335a, 0x00253864, 0x00192a5d, 0x00192b5f, 0x00152659, 0x000b1b4b, 0x0014214b, 0x00081436, 0x004c5264, 0x009c9fad, 0x00acafb8, 0x00b7bbc0, 0x00cbced5, 0x00cdcfd5, 0x00dbdfe3, 0x00e0e3e7,
- 0x00e6eaed, 0x00e4e9e5, 0x00edf0e9, 0x00f7f7ee, 0x00fdfef3, 0x00f7f8e8, 0x00e3e5d2, 0x00dae0c0, 0x00cfd6a0, 0x00b3bc80, 0x009ca96b, 0x0097a86c, 0x008f9e6a, 0x00677841, 0x003f5319, 0x00566c2e,
- 0x0094a162, 0x00a2b272, 0x00abb979, 0x00adbb7b, 0x00adbb7e, 0x00a8b779, 0x009aa769, 0x0091a162, 0x00a3b172, 0x00b8c687, 0x00c4d292, 0x00b9c787, 0x008c9d58, 0x00657933, 0x00647838, 0x005b6d39,
- 0x008f9d84, 0x00e5ebe4, 0x00fbfdfe, 0x00fbfbff, 0x00fef8fe, 0x00fffdfd, 0x00d2d3d1, 0x00888a84, 0x00868586, 0x00b4b5b5, 0x00e4e6e9, 0x00f6f8fc, 0x00e7e9f5, 0x00797fa0, 0x00646c97, 0x00d3dcf6,
- 0x00e9eff6, 0x00f1f6f9, 0x00fafdff, 0x00fdfdfe, 0x00fffbfe, 0x00fefbfa, 0x00fdfcff, 0x00fefcff, 0x00fcfcfe, 0x00fafbfe, 0x00fafafa, 0x00f9fbf4, 0x00fbfcf5, 0x00fbfbf7, 0x00fbfbf8, 0x00fafcf9,
- 0x00f3fbf9, 0x00ebf5f9, 0x00eaf5fa, 0x00e8f7fc, 0x00dbebf6, 0x00c7dcf9, 0x00bcd3fd, 0x00aec6f4, 0x009db5e1, 0x009eb6e2, 0x00a9c3ef, 0x00acc7f2, 0x00abc3f3, 0x00a8c0f2, 0x00a2baf1, 0x00a0b7f1,
- 0x0080a9f2, 0x007ba4f0, 0x0078a0ef, 0x00789ff3, 0x007ea5f7, 0x007ea6f7, 0x00769ff6, 0x006691ee, 0x00709af1, 0x007baaf2, 0x0081aaf8, 0x008aaef9, 0x008eb2fd, 0x008db2fc, 0x008cb2fc, 0x008fb9fe,
- 0x008db6ff, 0x0085aefd, 0x0074a0f6, 0x006793ef, 0x00426cce, 0x001f4caf, 0x000d3ca0, 0x000e3b99, 0x00164897, 0x0016478f, 0x00124282, 0x0011427c, 0x00143d76, 0x00123771, 0x00173672, 0x001d3974,
- 0x0017397f, 0x0014447a, 0x0012487c, 0x001b548e, 0x003957a0, 0x00474b79, 0x004f3d46, 0x007b532e, 0x00966225, 0x00a16b3a, 0x00a87044, 0x00b37e49, 0x00b27e4d, 0x00a37446, 0x00906544, 0x0084604a,
- 0x00877a81, 0x00adaecd, 0x00a7baec, 0x006b8ed0, 0x00457ac6, 0x004c83db, 0x004885de, 0x004484dd, 0x004487d9, 0x003f84d3, 0x003d81cf, 0x00397dc9, 0x003f7cce, 0x00467cd2, 0x004477cd, 0x003a68c3,
- 0x007d8fcc, 0x0098b4f2, 0x007ca1eb, 0x007eabfc, 0x0086b3fe, 0x0087b1fa, 0x006a93e0, 0x006a92dc, 0x006f9eee, 0x005d93e6, 0x00548bde, 0x005f8de1, 0x00709aef, 0x0075a1f4, 0x00719df3, 0x00719cf3,
- 0x006d9aee, 0x006995e9, 0x006792e5, 0x006894e7, 0x006a97eb, 0x00669eee, 0x0062a2f3, 0x0062a1f9, 0x005891e2, 0x005484c1, 0x009abde1, 0x00e6fafa, 0x00fcfff3, 0x00fcfdf1, 0x00fdfdf4, 0x00fefdfa,
- 0x00b7b9d4, 0x00404392, 0x005e60bd, 0x005b5ec5, 0x004b52b6, 0x004b54ab, 0x00626bba, 0x005f6aaa, 0x007578b8, 0x009799d9, 0x00777ec3, 0x00434fa7, 0x00232e96, 0x00242c9e, 0x00222da2, 0x0026309e,
- 0x00313796, 0x003e4894, 0x00435191, 0x004f5f97, 0x0056689b, 0x00574966, 0x00694c59, 0x0085656a, 0x00b07d7b, 0x00af796d, 0x00996654, 0x008e614d, 0x005f4b38, 0x002f261b, 0x001f231d, 0x001c2a27,
- 0x002b373c, 0x002d3333, 0x002a2b2b, 0x0017120c, 0x002b180b, 0x006d5239, 0x00a4805c, 0x00c39465, 0x00e0a369, 0x00e1a463, 0x00b98a59, 0x005e5844, 0x00221c20, 0x0025272a, 0x00222e2b, 0x0012291a,
- 0x001e3c48, 0x00536d9e, 0x005b75bf, 0x002b46a4, 0x002a469d, 0x00637cc6, 0x008599db, 0x007178b8, 0x0073719a, 0x00a5a3c1, 0x00bac1db, 0x00939ed2, 0x003e4bb6, 0x00102384, 0x00374d95, 0x00637ea3,
- 0x004f6aa0, 0x003b4f8b, 0x006672af, 0x006c75b4, 0x00525a9c, 0x00283775, 0x00435791, 0x00506696, 0x00242e4b, 0x00080f13, 0x00141611, 0x00191819, 0x00181b15, 0x0010160d, 0x000b150d, 0x00071111,
- 0x000d1220, 0x00080816, 0x000f0a14, 0x00140a0c, 0x005f5045, 0x00b88d6e, 0x00c99067, 0x00bc8b5a, 0x00bc9362, 0x00a68256, 0x006d4f2c, 0x004f371e, 0x005c4639, 0x00735f51, 0x00917f6c, 0x00928268,
- 0x007885c3, 0x00959ce0, 0x00a0a3e8, 0x00a6a3f0, 0x007171ca, 0x002f3b91, 0x002a3a8f, 0x00283b8c, 0x003a3f91, 0x00524e9b, 0x004c4f95, 0x003c5389, 0x004d639c, 0x003e538f, 0x003e548f, 0x005d73ac,
- 0x005564a1, 0x0044558a, 0x00384b7a, 0x00192b57, 0x000f214c, 0x003c4458, 0x00bebfc5, 0x00f8f9fa, 0x00fffdfb, 0x00fffcfa, 0x00fdfdfb, 0x00eef1f0, 0x00807a72, 0x00321b0f, 0x004b250f, 0x00683413,
- 0x00813d18, 0x0080411e, 0x007e411e, 0x007a3f1f, 0x00803e1c, 0x00803d17, 0x00813f13, 0x007e3f16, 0x006b3a25, 0x00a57e73, 0x00faf9f0, 0x00f7fff8, 0x00fdfff0, 0x00fcfbf2, 0x00f9fefa, 0x00e4f3fa,
- 0x008ba9ee, 0x003d65c4, 0x001948b0, 0x003d72da, 0x006aa0fe, 0x006498dd, 0x005d8dc8, 0x0080a9e7, 0x008dc0ff, 0x0071b4f9, 0x0067adf5, 0x0068a3f1, 0x007793ee, 0x006990fa, 0x005191ff, 0x003296fe,
- 0x005791ff, 0x005b87fc, 0x006083ed, 0x0096affb, 0x007594e8, 0x00426ad2, 0x005f86f8, 0x006285fb, 0x005668c5, 0x00384366, 0x003b3938, 0x0055402f, 0x00675340, 0x00735a48, 0x006d553f, 0x00674d38,
- 0x006d4e3b, 0x0072533c, 0x007f5e43, 0x008c6c50, 0x009f7a5f, 0x00a8875f, 0x00947550, 0x006f5338, 0x00432f31, 0x00382c35, 0x0038353d, 0x0031323a, 0x0030323e, 0x003c3c53, 0x004e4d69, 0x00514f72,
- 0x00626283, 0x006a6c8a, 0x00777d99, 0x008189a3, 0x008d98b1, 0x0098a6c0, 0x00a3b5d1, 0x00b1c2df, 0x00c5d3f2, 0x00cbdaf7, 0x00d0dff6, 0x00d9e5f6, 0x00e3f2fb, 0x00e1f4fb, 0x00e3f5fc, 0x00ebf7fa,
- 0x00fcfaff, 0x00fffbf8, 0x00fef8f7, 0x00fefcfe, 0x00f7fbfd, 0x00f5f8fc, 0x00f8f7fe, 0x00fbfafb, 0x00fffcff, 0x00fffaff, 0x00fcf7ff, 0x00fefbff, 0x00fefcfb, 0x00fffef7, 0x00fdfdef, 0x00faf8ea,
- 0x00fff9ff, 0x00e9e0ef, 0x00d7cfe5, 0x00f6f3fc, 0x00fdfbff, 0x00fefefd, 0x00fefffa, 0x00f7f9ea, 0x00a5a195, 0x00514c44, 0x0059544f, 0x00686463, 0x007a7874, 0x00888585, 0x00959294, 0x009c9a9c,
- 0x009d9da5, 0x009c9ba4, 0x009897a1, 0x0091919a, 0x00828391, 0x00727691, 0x005f6686, 0x004e5576, 0x00434870, 0x003a436c, 0x00344168, 0x0031436a, 0x002f436f, 0x002e4472, 0x002e4773, 0x002e4977,
- 0x00354579, 0x0034477b, 0x0031497b, 0x002e4a7b, 0x002e4a7d, 0x002e4879, 0x00304573, 0x00354572, 0x00404371, 0x0044446d, 0x004e4167, 0x005f3f62, 0x00694261, 0x006b3f59, 0x006b3d50, 0x006b3b48,
- 0x006e3847, 0x006c3443, 0x005b2938, 0x00512332, 0x004e2133, 0x0056272f, 0x00673230, 0x007c3b37, 0x00994742, 0x00a34b43, 0x00a54c43, 0x00a55649, 0x00ac776a, 0x00ba958d, 0x00c8b4ad, 0x00c8c4bc,
- 0x00d1d2d2, 0x00d1d3d1, 0x00d0d0d2, 0x00cecdcd, 0x00cfcccf, 0x00cccbcb, 0x00cacacd, 0x00c9cbcd, 0x00ccccd4, 0x00cccbd3, 0x00cccad3, 0x00cccad2, 0x00cbcad1, 0x00c9c8cf, 0x00c7c6cc, 0x00c6c4ca,
- 0x00c4c2cc, 0x00bebdc3, 0x00b6b4bc, 0x00aba9b1, 0x0098959d, 0x0085818f, 0x00666372, 0x0047494d, 0x002b2b2a, 0x00181818, 0x00131412, 0x0018131c, 0x00221820, 0x00291e1b, 0x003a2d22, 0x004d3d2d,
- 0x006c462c, 0x00603d20, 0x005c3a1b, 0x00664625, 0x00806139, 0x00997850, 0x00ab8660, 0x00aa845e, 0x00b0815e, 0x00a3714f, 0x007b4a28, 0x00663011, 0x00443118, 0x00313623, 0x001d3522, 0x00132f20,
- 0x001f291d, 0x001b1d12, 0x00151407, 0x000f1103, 0x00041505, 0x0009120e, 0x00101213, 0x00141315, 0x00161519, 0x00171618, 0x00161515, 0x00151513, 0x00141413, 0x00131412, 0x00131411, 0x00161714,
- 0x00191917, 0x001a1a18, 0x001f1f1e, 0x00232422, 0x002c2d2a, 0x00737370, 0x00ededec, 0x00fffefe, 0x00fffffd, 0x00fffefd, 0x00fcf9f8, 0x00c7c6d3, 0x003f507e, 0x00143180, 0x001940a8, 0x00214cc9,
- 0x003254e0, 0x00344eda, 0x002943c9, 0x00263fbe, 0x00203db9, 0x002040b7, 0x00213eb9, 0x00273dc0, 0x00343ebf, 0x003539a0, 0x0052569e, 0x009ea1c6, 0x00c7c9cb, 0x00aaaaac, 0x00afabb5, 0x00dbd2e7,
- 0x00e7e2e9, 0x00e6e1e7, 0x00d7d5d9, 0x00c8c6c9, 0x00beb7bc, 0x00c5bfc4, 0x00d0ced1, 0x00d3d3d4, 0x00cdc8cb, 0x00c2bdc2, 0x00c1bcc1, 0x00c8c4c8, 0x00d3cfd6, 0x00b1adb2, 0x003d3a3d, 0x00282529,
- 0x006f696d, 0x004c484a, 0x000d0908, 0x0011110d, 0x0012100c, 0x0014130d, 0x00120f08, 0x0014140c, 0x0018141b, 0x00161131, 0x001d2257, 0x00343c8c, 0x00374cbc, 0x003251cc, 0x002753d0, 0x002557d7,
- 0x002c57db, 0x002c59dc, 0x002b58dd, 0x002a56dd, 0x002e58e0, 0x003159de, 0x00315adc, 0x00305bdb, 0x003355d4, 0x003056d0, 0x002d55ca, 0x002955c4, 0x002550c1, 0x00234db9, 0x00244db3, 0x00254cae,
- 0x002c47a9, 0x002a45a2, 0x00274098, 0x00273e92, 0x00283d91, 0x002f4483, 0x00324679, 0x002a3b73, 0x00243476, 0x00233173, 0x00172464, 0x00121f59, 0x00132254, 0x00112049, 0x001f2e51, 0x00374566,
- 0x004d5871, 0x00586379, 0x005d697d, 0x00667383, 0x007f8898, 0x00989ead, 0x00abb1bc, 0x00babcc7, 0x00c9cad4, 0x00dbdbe3, 0x00ebeaf1, 0x00f2f1f4, 0x00f8f7f8, 0x00fbfcf9, 0x00fcfcfb, 0x00fdfdfc,
- 0x00ffffff, 0x00fefdfe, 0x00fcfcfa, 0x00fdfef9, 0x00fafcf7, 0x00fafcf8, 0x00fafcfa, 0x00f9fbfb, 0x00fffeff, 0x00fffeff, 0x00fdfdfc, 0x00fefefe, 0x00ffffff, 0x00fdfefe, 0x00fbfdfb, 0x00fbfcfa,
- 0x00fcfafa, 0x00fcfbfb, 0x00fcfbf9, 0x00fdfdfa, 0x00fcfdfc, 0x00fcfdfb, 0x00f8faf6, 0x00f5f8f4, 0x00f9f6f8, 0x00f8f5f6, 0x00f0efed, 0x00e3e4e1, 0x00cfced0, 0x00bebfbf, 0x00a6a9a5, 0x00949691,
- 0x007b7b77, 0x00706f6c, 0x005b5b57, 0x004f514b, 0x00494a45, 0x004e4e46, 0x0048483e, 0x003b3e33, 0x002b2b28, 0x001b1a16, 0x000e0f0a, 0x000e120e, 0x00101512, 0x00111816, 0x000e1613, 0x000c120f,
- 0x000e1211, 0x000d1211, 0x000d1311, 0x000c1411, 0x000c1413, 0x000c1412, 0x000c1410, 0x000c140f, 0x00121816, 0x00121817, 0x000e1817, 0x00091815, 0x000c1a18, 0x000d1b19, 0x000a1a17, 0x00061714,
- 0x000e1818, 0x000c1918, 0x000a1716, 0x000b1816, 0x000c1816, 0x000d1914, 0x0007120c, 0x0038403d, 0x00cbcccf, 0x00fbfafe, 0x00fdfbff, 0x00fbfafb, 0x00fefdfb, 0x00eeefe8, 0x00888c81, 0x00333a2c,
- 0x001c3013, 0x0016280e, 0x000f260c, 0x00102d13, 0x00113118, 0x000f2f17, 0x000f3017, 0x000e2d15, 0x00122c15, 0x00112c11, 0x00102c11, 0x000e2c12, 0x000e2b12, 0x000e2a11, 0x000e2a12, 0x000c2a14,
- 0x00102d17, 0x00102d17, 0x000e2c13, 0x000e2c11, 0x000f2d15, 0x000e2c13, 0x000c2a10, 0x000b2a10, 0x000f2b15, 0x00102d16, 0x000f2d15, 0x000e2d15, 0x00102e16, 0x00102e16, 0x000e2d14, 0x000c2d13,
- 0x00112c15, 0x00122b16, 0x00102b13, 0x000d2b11, 0x000d2c14, 0x00112e17, 0x000a2712, 0x00082610, 0x00152f1c, 0x000f2c1b, 0x00082217, 0x0017262f, 0x00596780, 0x005e749a, 0x00102558, 0x002b4381,
- 0x00324595, 0x00314795, 0x003a4c9a, 0x00394992, 0x002d3e79, 0x002e428e, 0x002b3e95, 0x002f449c, 0x002f44a4, 0x002b42a1, 0x003348a8, 0x00344aa6, 0x00354ba1, 0x002f4192, 0x001e2c79, 0x00182771,
- 0x002b305e, 0x002b2f60, 0x001a1d54, 0x00161c53, 0x000d154b, 0x00020a3d, 0x000d1340, 0x000c1134, 0x005b586e, 0x00b1acbe, 0x00c7c5cd, 0x00cdd2ce, 0x00e2e5e3, 0x00e3e5e1, 0x00e7e9e3, 0x00e6e9e3,
- 0x00eae7e2, 0x00e7e9e2, 0x00edf2e4, 0x00f7faee, 0x00fbffee, 0x00fbf9f4, 0x00e9e9e0, 0x00d7ddc4, 0x00c3c99a, 0x009fa771, 0x007b8850, 0x0075864f, 0x00687849, 0x00445624, 0x00283d08, 0x00395019,
- 0x006d773f, 0x007a884f, 0x00839054, 0x00889659, 0x008b975e, 0x0088965c, 0x007a864a, 0x006d7e3f, 0x0086925c, 0x00a5b17a, 0x00b8c48b, 0x00aab67c, 0x00748344, 0x00576a27, 0x00607436, 0x005a6c3a,
- 0x008e9988, 0x00e5e9e6, 0x00fdfeff, 0x00fdfbfe, 0x00fff8fe, 0x00fffbfc, 0x00d2d4d1, 0x00888a82, 0x00868585, 0x00b6b6b6, 0x00e6e7e9, 0x00f7f9fc, 0x00e4e7f2, 0x00777e9c, 0x00687296, 0x00d7e2f3,
- 0x00e9f0f6, 0x00f1f6f9, 0x00f9fdfd, 0x00fdfdfc, 0x00fffbfc, 0x00fffbf8, 0x00fdfafb, 0x00fdfbfb, 0x00fffbff, 0x00fffcff, 0x00fcfdfa, 0x00fefef6, 0x00fdfff6, 0x00fefef8, 0x00fbfef5, 0x00fbfef6,
- 0x00f7fcf9, 0x00fafefe, 0x00f8fefd, 0x00f2fefb, 0x00f2fdfd, 0x00f0fbfe, 0x00ecf9fd, 0x00e9f8fe, 0x00e9f2ff, 0x00e4effb, 0x00deecfb, 0x00dbeafa, 0x00dbe7fa, 0x00d7e2f9, 0x00d0dcf8, 0x00ccd8f5,
- 0x00b6cff6, 0x00afcaf6, 0x00a4bff2, 0x009fbdf3, 0x00a2c0f7, 0x009ebdf6, 0x0099b8f5, 0x0088a9e8, 0x0083a3e3, 0x008dafea, 0x0090b4f4, 0x008bb6fd, 0x008bb5fc, 0x0083b1fc, 0x0082b2fa, 0x0084b6fb,
- 0x0081b4fd, 0x0082b2ff, 0x0073a8fd, 0x005c94f2, 0x003469d0, 0x001844b5, 0x000731a7, 0x0005339e, 0x00335fc1, 0x004772cb, 0x002c59a7, 0x001d4e93, 0x001a4083, 0x001b3e82, 0x00254289, 0x002c478e,
- 0x00365595, 0x002e5c92, 0x00235b8f, 0x0027619c, 0x003e5da2, 0x00444671, 0x00563f43, 0x008b5c30, 0x00a6662a, 0x00ad6d41, 0x00b4794a, 0x00b98348, 0x00c18d59, 0x00c18e61, 0x00b5855c, 0x00a17655,
- 0x00674d4c, 0x00746978, 0x00c3c9e1, 0x00acc1e8, 0x005f85c0, 0x004c78cf, 0x004c83e4, 0x004c87e8, 0x004e88ee, 0x004985e8, 0x004180e1, 0x004482e3, 0x004a81e4, 0x004f7fe3, 0x003761c1, 0x003458be,
- 0x008091ce, 0x0089a4e5, 0x007fa5e9, 0x0084aefa, 0x008cb4fd, 0x007397e8, 0x00496fb8, 0x005b7fc9, 0x006e98e7, 0x005484d8, 0x00588cdf, 0x006d96e6, 0x0079a1f3, 0x0078a2f2, 0x00729cef, 0x006d98e8,
- 0x007499f0, 0x007399ee, 0x006e95e7, 0x006690e0, 0x006a92e3, 0x006498e4, 0x00609feb, 0x0061a3f5, 0x005b94e2, 0x005586c0, 0x0099bcde, 0x00e6f9fa, 0x00fbfcee, 0x00fefeee, 0x00fcfef0, 0x00fdfdf9,
- 0x00adbad1, 0x002e3c90, 0x003c45ad, 0x003b43ba, 0x00414dc5, 0x00404dbc, 0x005d67cf, 0x00626ece, 0x003d4e9f, 0x004c5aaf, 0x00434ea1, 0x00343d83, 0x001b2478, 0x00171e7d, 0x001e268d, 0x00292e96,
- 0x0027398e, 0x0026388d, 0x00283892, 0x00333fa0, 0x003e4ab4, 0x00454ea5, 0x006164af, 0x007a78c1, 0x008a82ac, 0x008d7c9a, 0x007e637b, 0x007b5965, 0x0075544d, 0x00674936, 0x0082644c, 0x0091765a,
- 0x007e7053, 0x006a593f, 0x005e472f, 0x00452911, 0x00513016, 0x007b5134, 0x008b5b3b, 0x00996941, 0x00b1844a, 0x00b5894a, 0x00997242, 0x0055492a, 0x00241a1e, 0x0026272f, 0x00242c33, 0x00192c28,
- 0x00305161, 0x005c7bb5, 0x00415cb2, 0x001d3794, 0x0032548f, 0x007d93b0, 0x00b0bbd6, 0x00b6b6e9, 0x00adaedd, 0x00b1bcde, 0x00a2b1d5, 0x006279a5, 0x001e3376, 0x000f255f, 0x0054658e, 0x0091a1ad,
- 0x0059747c, 0x004d567d, 0x007567a4, 0x006f5390, 0x004f384b, 0x00372b47, 0x00312e5f, 0x003a398c, 0x00272f68, 0x000e171e, 0x000a0d09, 0x00141012, 0x0015181c, 0x00171b25, 0x001a2032, 0x000e1431,
- 0x0011193b, 0x001b1e3c, 0x002c233e, 0x004a3c4b, 0x00988680, 0x00c99575, 0x00d18d62, 0x00d29562, 0x00c9a060, 0x00a9844c, 0x0088633d, 0x0083654a, 0x0084685b, 0x006b5342, 0x00715d49, 0x00846f59,
- 0x0052639d, 0x005a649b, 0x009192ce, 0x00a299d6, 0x00656cb0, 0x0030428b, 0x001c3586, 0x00132f85, 0x0011297e, 0x00242c81, 0x00464893, 0x00909ec1, 0x00b4c1ea, 0x006372a8, 0x00808ec6, 0x00c5d1fb,
- 0x00a1b8e2, 0x005c759c, 0x00203562, 0x0013295e, 0x00082158, 0x00364260, 0x00c1c1cf, 0x00fdfafe, 0x00fbfcf7, 0x00f9fcf6, 0x00fbfcfc, 0x00f0f3f3, 0x00847972, 0x00341c13, 0x00512711, 0x006e3317,
- 0x00723909, 0x00753f0f, 0x00753f14, 0x00723e15, 0x00753e12, 0x007b4010, 0x007e4215, 0x007f4219, 0x005f3d15, 0x009c8463, 0x00fcfcee, 0x00f9fffc, 0x00fdfef4, 0x00fafbf3, 0x00fcfbfb, 0x00e6eaff,
- 0x009cbbf2, 0x00527ad2, 0x001542ad, 0x003667d7, 0x006796fb, 0x0077a4e3, 0x005f7fc0, 0x006d7fd0, 0x008cadf8, 0x0077b1f8, 0x005ba0ef, 0x005aa5ed, 0x006c99f0, 0x006593f8, 0x00558efa, 0x00448efe,
- 0x004a86db, 0x00517cdc, 0x005f7ae4, 0x0090a1fa, 0x00748fd3, 0x004168ae, 0x005c84d9, 0x00668bf2, 0x005a71ba, 0x003e4a72, 0x003f3e50, 0x00534a47, 0x00635a55, 0x006b655e, 0x00726666, 0x007a6a65,
- 0x00807361, 0x008f7f70, 0x00a99484, 0x00b9a594, 0x00c3ac9c, 0x00cbb9a0, 0x00bcae96, 0x00a99e99, 0x009e9ea8, 0x00a5a7b3, 0x00aeb4bf, 0x00bcc3c6, 0x00cccfce, 0x00dcd9de, 0x00eae2f0, 0x00f1e6f9,
- 0x00e8f4e7, 0x00ebf6e9, 0x00f0f8ec, 0x00f1f8e8, 0x00f7feea, 0x00f8feeb, 0x00fcfef2, 0x00fdfdf7, 0x00f1feed, 0x00f4fff1, 0x00fdfef8, 0x00fffcfd, 0x00fcfefb, 0x00f9fffd, 0x00fbfefe, 0x00fcfdfc,
- 0x00f8feeb, 0x00fcfeec, 0x00fdfdf0, 0x00fefef7, 0x00f7ffff, 0x00fcfbff, 0x00fffaff, 0x00fdfbff, 0x00f6fcf6, 0x00f8fcf7, 0x00fafbf8, 0x00fbfbf7, 0x00fffff9, 0x00fffff4, 0x00fcfeed, 0x00fcffea,
- 0x00fbf8f6, 0x00e1dee0, 0x00d2cfd8, 0x00f6f4fd, 0x00fbfbff, 0x00fcfdfc, 0x00fffffb, 0x00fcfbf2, 0x00b9bcac, 0x0078766c, 0x00867f7c, 0x008c8f88, 0x009a9b9a, 0x009fa2a0, 0x00a0a1a6, 0x009b9ea8,
- 0x008e9aa0, 0x00868f9d, 0x007b8396, 0x006e758d, 0x005d6380, 0x0049557a, 0x003a4972, 0x00353f6b, 0x00253c5e, 0x00293e62, 0x002d3f6a, 0x002e406d, 0x002d416d, 0x002d436f, 0x002f4475, 0x00314476,
- 0x002b3e6a, 0x00293e68, 0x00283f6e, 0x00284170, 0x00274270, 0x002e4171, 0x00344370, 0x003a436f, 0x003d4163, 0x00444363, 0x005a3f60, 0x0074384b, 0x007b3a4a, 0x007e3a41, 0x00823539, 0x00833332,
- 0x00762e21, 0x00702b25, 0x00682626, 0x00612027, 0x005d222c, 0x00632425, 0x00722f2b, 0x007e3b34, 0x00894130, 0x008b4632, 0x008f493b, 0x0094564d, 0x00a37b73, 0x00af9594, 0x00c1b0b7, 0x00c9c0c6,
- 0x00cccfc9, 0x00caccc9, 0x00cacacb, 0x00c9c9cb, 0x00cac9cd, 0x00c9c8cd, 0x00cbc9d1, 0x00cdc9d3, 0x00c7cdca, 0x00c8cbcb, 0x00cbcad2, 0x00cbc9d2, 0x00ccc9d4, 0x00cbc9d3, 0x00c9c6d3, 0x00c8c5d1,
- 0x00bcc0c3, 0x00b0b5b7, 0x00a6a6ac, 0x0098959f, 0x007d7b83, 0x0065616e, 0x0044424f, 0x002c2731, 0x000c1301, 0x00030800, 0x000c0c0a, 0x00151116, 0x00231b28, 0x00342831, 0x00493b42, 0x0057484b,
- 0x005c4a31, 0x005b4c32, 0x004e3824, 0x00432d19, 0x00533a24, 0x006b4e36, 0x00937059, 0x00aa8368, 0x00ab815b, 0x00a57654, 0x009d5f48, 0x009b4b41, 0x006c5153, 0x00505d66, 0x00416579, 0x00235472,
- 0x00193f4f, 0x00233b48, 0x0026333d, 0x001c2629, 0x00031613, 0x000d0f14, 0x0015121b, 0x0018171d, 0x00161b17, 0x001a1c18, 0x001f1e1d, 0x001b1a1a, 0x00191b18, 0x00181a17, 0x001a1b19, 0x001c1b1a,
- 0x00141c13, 0x00161b14, 0x00201f1d, 0x002a2727, 0x002d2e2a, 0x006f706c, 0x00edebea, 0x00fffefd, 0x00f7fdf7, 0x00f7fdf7, 0x00fefdfe, 0x00d1c9db, 0x00475489, 0x00162d7f, 0x00203da8, 0x00274bca,
- 0x003050cf, 0x003449c6, 0x00323cba, 0x00353cb1, 0x002e37a1, 0x0035439b, 0x003c48a2, 0x00404cb2, 0x00424bb0, 0x004b519e, 0x00484981, 0x0085869c, 0x00bdc0b4, 0x00b7b7b3, 0x00c1bdc0, 0x00ccc3d6,
- 0x00cdcbcc, 0x00cccccd, 0x00c0bec1, 0x00b7b4b8, 0x00c6c3c7, 0x00cfccd0, 0x00dbd5db, 0x00d1ccd4, 0x00b0b3b0, 0x00b0b1b1, 0x00c6c1c6, 0x00cdc6cc, 0x00d1cbd1, 0x00afaab0, 0x00403b40, 0x002a2628,
- 0x00656761, 0x0042433e, 0x00110f0e, 0x00120f0c, 0x0015110f, 0x000e110c, 0x00141514, 0x00151211, 0x00020a0c, 0x00091227, 0x002b3268, 0x005a65b9, 0x006a81f0, 0x004365e5, 0x00325ce4, 0x002a5de3,
- 0x002560d4, 0x002860d9, 0x00396bec, 0x003e70f4, 0x003967f2, 0x003262eb, 0x003460e8, 0x00355fe7, 0x002c5fdb, 0x002d5ed9, 0x002c5fde, 0x002c62de, 0x002c5edc, 0x002b5dd6, 0x002d5cd7, 0x00305ad3,
- 0x002959c5, 0x002655bf, 0x00264fbb, 0x002750b8, 0x002d52b9, 0x003a5baf, 0x00455faf, 0x003a54a8, 0x00274698, 0x00244198, 0x00203593, 0x001e2f8c, 0x00192f81, 0x00172e78, 0x001a2e75, 0x00192f75,
- 0x00183168, 0x00152e64, 0x000e2159, 0x0009194e, 0x00122050, 0x00101c49, 0x001a224e, 0x00252e55, 0x00304159, 0x004b5571, 0x006d6f84, 0x007d7e83, 0x008f8d91, 0x00a2a2a6, 0x00bbbabb, 0x00c8c4c7,
- 0x00cfd4cf, 0x00dfe1db, 0x00f3f3ef, 0x00f8f8f6, 0x00fffff9, 0x00fefcfb, 0x00fefcff, 0x00fdfdfd, 0x00f7fbf7, 0x00f7fdf8, 0x00fcfbfb, 0x00fbfdfd, 0x00fefefe, 0x00fafdfd, 0x00fffdff, 0x00fefeff,
- 0x00f6fdf6, 0x00f9fef8, 0x00fcfffc, 0x00fcfefc, 0x00fdfdfd, 0x00fdfcfc, 0x00fefcfd, 0x00fffeff, 0x00f9fff5, 0x00f7fef5, 0x00fafafb, 0x00fcfbfe, 0x00fffefe, 0x00fefefd, 0x00fffcfd, 0x00fbfafa,
- 0x00eff5ed, 0x00f1f3eb, 0x00e8e9e3, 0x00dad9d4, 0x00c5c6bf, 0x00b7b5b0, 0x00a6a3a3, 0x00938f8f, 0x006f7269, 0x005a5e57, 0x00484b4c, 0x003b3e41, 0x002c2f2f, 0x00212324, 0x0015171a, 0x000d0e12,
- 0x00000904, 0x00000601, 0x00040906, 0x000a0e0c, 0x00090f0e, 0x000d1412, 0x000f1615, 0x00101515, 0x0008150d, 0x000a150e, 0x000f1814, 0x000d1717, 0x000e1819, 0x00101919, 0x00101819, 0x000e1618,
- 0x0007160e, 0x0007170f, 0x000c1815, 0x000d1718, 0x000c1816, 0x000f1b15, 0x0007100c, 0x00454d4d, 0x00d5dbd7, 0x00f7fcf9, 0x00fdfdfe, 0x00fffbfe, 0x00fffffc, 0x00e5e4df, 0x0075736d, 0x002f2f26,
- 0x000e2608, 0x000e250a, 0x00132713, 0x00142a18, 0x000f2c1a, 0x00102f1c, 0x00142f1e, 0x00122b1a, 0x000c2b0e, 0x000d2b10, 0x00122d13, 0x00132d15, 0x00102c14, 0x000f2b13, 0x00112b13, 0x00102a12,
- 0x000d2c0e, 0x000d2d0f, 0x00102d13, 0x00112c14, 0x00102b11, 0x00112a12, 0x00122a16, 0x00112b16, 0x000b2a0d, 0x000e2d12, 0x00122e16, 0x00112d15, 0x000f2e13, 0x000f2e13, 0x00122e16, 0x00122e18,
- 0x000d2a14, 0x000b2a12, 0x000d2a15, 0x000e2c17, 0x00102b15, 0x00102a15, 0x00142917, 0x00172b19, 0x00083014, 0x00053217, 0x0009311c, 0x000a2419, 0x00667a76, 0x00a6b4bd, 0x003d475e, 0x001b234c,
- 0x00162956, 0x00132659, 0x003e4b80, 0x006c75a2, 0x00646789, 0x00505a90, 0x00424f92, 0x003c4a90, 0x00364e91, 0x00364d92, 0x00384c97, 0x0031438b, 0x0020306e, 0x0019255b, 0x00192156, 0x002d3365,
- 0x002d314c, 0x00101336, 0x0011113d, 0x00121142, 0x000f1042, 0x0018194a, 0x002e2e5a, 0x0057597d, 0x009599a5, 0x00c1c5c9, 0x00dee0e1, 0x00e6e7e8, 0x00e5e5e2, 0x00e1e1de, 0x00e6e6e5, 0x00edeeea,
- 0x00e5ece3, 0x00e7ece4, 0x00f2f5ef, 0x00f9fcfa, 0x00fafdfd, 0x00fdfbfc, 0x00f8f3ef, 0x00e3e3d1, 0x00bcc993, 0x009bac6d, 0x007f8f53, 0x00778751, 0x006b7c4b, 0x005e703e, 0x00526330, 0x00516531,
- 0x00617332, 0x00657737, 0x00677639, 0x006a793d, 0x006a7b3f, 0x0067773b, 0x005f6c33, 0x0058662e, 0x00637734, 0x007d914f, 0x0097a56d, 0x008c9960, 0x005e6f2d, 0x00566823, 0x006a7b3e, 0x00576c37,
- 0x00819274, 0x00dce7d9, 0x00fcfefe, 0x00fdfcff, 0x00fefbfc, 0x00ffffff, 0x00d1d4d3, 0x00888a87, 0x0081837d, 0x00b2b4af, 0x00e6e7e9, 0x00f9fbfe, 0x00e2e6f1, 0x007e84a0, 0x007980a7, 0x00dce6fa,
- 0x00e2eff0, 0x00ecf6f7, 0x00f8fefd, 0x00fdfefd, 0x00fefcfa, 0x00fffbfd, 0x00fffdff, 0x00fffeff, 0x00f6fcf6, 0x00f9fcf9, 0x00fcfcfa, 0x00fdfdfa, 0x00fffdfb, 0x00fffefa, 0x00fffdfe, 0x00fefdff,
- 0x00f3fef6, 0x00f7fcf5, 0x00fefdfb, 0x00fffefd, 0x00fefefa, 0x00fbfafe, 0x00fefbff, 0x00fffbff, 0x00f4fbf5, 0x00f5fef6, 0x00fdfdfe, 0x00fcfeff, 0x00fffeff, 0x00fdffff, 0x00fdfdff, 0x00fbf8ff,
- 0x00effef2, 0x00effdf6, 0x00eefcf8, 0x00ecf9f8, 0x00eaf6fa, 0x00e6f3f8, 0x00e1edf4, 0x00d9e4ef, 0x00c7dede, 0x00c8e0dd, 0x00c5dee8, 0x00bedafb, 0x00b6d5f7, 0x00b1d0f5, 0x00aecbf3, 0x00aeccf8,
- 0x0098c4ea, 0x0094bfee, 0x008fb6f2, 0x0080a7ea, 0x00517bc4, 0x002f4aa1, 0x000c1d7b, 0x00192e86, 0x005982bf, 0x0076a2dc, 0x006f9bd6, 0x005b89c3, 0x004777b6, 0x003f6fb1, 0x00406eb8, 0x00416fbc,
- 0x003f6ba2, 0x002e6d9d, 0x00276ca2, 0x002770b2, 0x003762ad, 0x003e4574, 0x005e4554, 0x00976745, 0x009e682d, 0x00a26e47, 0x00b2815f, 0x00b68b59, 0x00b6885e, 0x00b68861, 0x00ab7c5c, 0x009a6d54,
- 0x00654c2f, 0x00413220, 0x006b6668, 0x00aeb7c7, 0x00b1c1e4, 0x006c90d3, 0x005583d9, 0x005381e1, 0x004b85e7, 0x004f88ef, 0x004e84f3, 0x005081f2, 0x005982ea, 0x005376d5, 0x00314ba6, 0x003a53a7,
- 0x0085a7dc, 0x00779fdf, 0x0085adf7, 0x0088b7fc, 0x0072a0f0, 0x003d67b8, 0x00446dbb, 0x007399e9, 0x005f9ae3, 0x004583d2, 0x005e98f0, 0x00709df3, 0x0079a6f9, 0x0079a6f8, 0x00709ef2, 0x006d97ef,
- 0x00689be7, 0x006b9dea, 0x006c99ed, 0x006591e4, 0x00618ee1, 0x006493e4, 0x006799f0, 0x006aa0fb, 0x005a93e2, 0x005787c1, 0x00a0c0e7, 0x00e7f9fe, 0x00fcfcf3, 0x00fbfdf4, 0x00fffffc, 0x00fefdfd,
- 0x00a8bad0, 0x00273a85, 0x0033449c, 0x003445ac, 0x003a4ebb, 0x00364cb4, 0x005368c9, 0x006278d2, 0x0032459d, 0x003947a5, 0x002c388e, 0x00242e73, 0x00111b68, 0x000f1970, 0x001d2782, 0x0028308c,
- 0x00253089, 0x001c2681, 0x002a3195, 0x003a3eaa, 0x002e35ab, 0x002941ae, 0x00425fc5, 0x005067c8, 0x005d68b3, 0x006965a1, 0x006a5a84, 0x0085697e, 0x00a47e75, 0x00be9377, 0x00d3a57b, 0x00daa877,
- 0x00ae825a, 0x00936845, 0x00835834, 0x00754c2b, 0x00744c2b, 0x00956c4a, 0x009c714e, 0x009e764d, 0x00a27a4e, 0x00977143, 0x00785a2b, 0x00493f16, 0x00241d1c, 0x00262631, 0x001e2a31, 0x001e3631,
- 0x0048657e, 0x006077be, 0x002b469f, 0x00203898, 0x002e5582, 0x005a698f, 0x00676b95, 0x00807bbe, 0x00a29cdf, 0x00a8afda, 0x009eb2cf, 0x007b99b3, 0x002c477d, 0x000f2360, 0x003b4981, 0x007078a0,
- 0x0061736f, 0x00594f7a, 0x00694f89, 0x00633270, 0x00502b2a, 0x00442a36, 0x0053436e, 0x007669c6, 0x007771bf, 0x0048465c, 0x001d1c17, 0x002b282b, 0x00383c42, 0x00515769, 0x00636b8c, 0x004f5483,
- 0x0035376d, 0x00433d73, 0x004d3f67, 0x006d5b71, 0x00b19b98, 0x00d19c80, 0x00d49263, 0x00d89b65, 0x00d5aa6e, 0x00c39b68, 0x00a5815b, 0x00927559, 0x00735a4b, 0x004f3928, 0x00523f2b, 0x00705c48,
- 0x00455884, 0x00646f96, 0x009a9ec2, 0x009694b5, 0x007584a9, 0x004b6895, 0x0011366d, 0x00012868, 0x000f2a76, 0x00263385, 0x006169a9, 0x00bdcae6, 0x00cad6ec, 0x00838dc0, 0x00a2aee0, 0x00c3d1fa,
- 0x0098add5, 0x007990b7, 0x00203763, 0x00142c61, 0x00041c59, 0x003f4a6c, 0x00c9cbd7, 0x00f9fbfd, 0x00fdfaf8, 0x00fbfbf7, 0x00fcfcf9, 0x00f1f2f3, 0x00887d76, 0x00361e10, 0x004c240c, 0x00662f10,
- 0x006f3a02, 0x00703e08, 0x006f3d0c, 0x006d3d0d, 0x00703e0c, 0x00753f09, 0x0078410a, 0x0079410e, 0x00613a12, 0x009e8364, 0x00fcfdec, 0x00f7fffd, 0x00f9fdf6, 0x00fafcf5, 0x00f9fafd, 0x00d9e0f6,
- 0x0096b0f6, 0x00688aec, 0x001742b1, 0x001d4abf, 0x005a88f1, 0x006aa2f4, 0x005c8adf, 0x005668d4, 0x007a84f4, 0x0081a9ff, 0x005d9ef0, 0x0053a2e8, 0x006ba0ee, 0x00749aeb, 0x007494e5, 0x007295df,
- 0x00629cd5, 0x006c95e1, 0x007794e5, 0x009cacf5, 0x0094afd5, 0x007198ba, 0x0084b0d7, 0x008ebbf0, 0x0094aede, 0x008591ac, 0x00898d96, 0x009e9fa0, 0x00aeacad, 0x00b9b6b6, 0x00c4bfbe, 0x00ccc6c2,
- 0x00d6cec6, 0x00e1d6ce, 0x00eee0d6, 0x00f4e8dd, 0x00f7ebe0, 0x00f6ecd8, 0x00f9f1e0, 0x00f7f2f2, 0x00f1f2f8, 0x00eff3f9, 0x00f0f6fc, 0x00f2f9f8, 0x00f8fcf4, 0x00fcfcf8, 0x00fdf8fc, 0x00fcf7fc,
- 0x00fbfbfb, 0x00fafcfb, 0x00fafdfa, 0x00fafef9, 0x00fcfffa, 0x00fcfef9, 0x00fbfbf8, 0x00fcfbfa, 0x00f8f9f7, 0x00fcfcfc, 0x00fdfbf9, 0x00fefaf3, 0x00fdfdf7, 0x00f9fffb, 0x00fbfffd, 0x00fffdfb,
- 0x00fcfdef, 0x00fefdec, 0x00fbfbef, 0x00f8fcf8, 0x00f2fffe, 0x00f8fcf3, 0x00fbfced, 0x00f9fcee, 0x00fafcf3, 0x00fafdf7, 0x00f6faf7, 0x00f6fcfb, 0x00f8fefe, 0x00f8fefc, 0x00f7fdf8, 0x00fafff8,
- 0x00fdfbee, 0x00e1dfd6, 0x00cdcbcb, 0x00f6f5f8, 0x00fcfdfc, 0x00fbfef8, 0x00fcfef4, 0x00fcfef0, 0x00d1cec7, 0x009c9694, 0x00a09b9b, 0x00a2a6a0, 0x00a6aaa6, 0x00a6acaa, 0x009ea1a6, 0x009298a0,
- 0x007f8998, 0x00737a90, 0x00606883, 0x00505977, 0x00414a6c, 0x00314168, 0x00273c64, 0x00273862, 0x00273c64, 0x00263b63, 0x00263a66, 0x00273c68, 0x00283f68, 0x00283f68, 0x00273d68, 0x00263a66,
- 0x00293763, 0x0025365f, 0x00223460, 0x00203660, 0x001f3861, 0x00253862, 0x002b3960, 0x00323961, 0x003f3c5f, 0x004b3f62, 0x005f3c5a, 0x007b3643, 0x0081393f, 0x00843634, 0x0086342c, 0x00863024,
- 0x00802c1d, 0x007b2b21, 0x0070261f, 0x00662222, 0x00622329, 0x006b2526, 0x00762c28, 0x0080392f, 0x0087402f, 0x00864431, 0x00844636, 0x008c584a, 0x009c7c74, 0x00a99494, 0x00b9aab4, 0x00c3b9c7,
- 0x00c7c6c5, 0x00c6c5c5, 0x00c5c4c6, 0x00c4c3c5, 0x00c5c5c7, 0x00c4c5c8, 0x00c5c5ca, 0x00c7c7cd, 0x00c9c8cd, 0x00cac8cd, 0x00cac7d0, 0x00c9c7d0, 0x00c8c8d0, 0x00c7c7cf, 0x00c2c1cb, 0x00bfbdc6,
- 0x00b3b3bb, 0x00a4a4ac, 0x00919198, 0x007f7e89, 0x005e5b65, 0x0044404d, 0x0028262d, 0x00171617, 0x00080c01, 0x00060900, 0x000b0a08, 0x00100c11, 0x001c1525, 0x00372d3c, 0x004e434c, 0x0051464a,
- 0x00624f43, 0x00665649, 0x00594739, 0x004e3d2e, 0x00483422, 0x0049301c, 0x0060412b, 0x007e5c43, 0x008a5e3f, 0x008c5739, 0x0099584d, 0x00af516b, 0x007e5e81, 0x00616c9c, 0x005e89c3, 0x00447dbf,
- 0x004b73b1, 0x005770a8, 0x0062709f, 0x00586288, 0x00253750, 0x00151a28, 0x0016171c, 0x001c1a20, 0x00212223, 0x00272729, 0x0029282a, 0x00262626, 0x00222321, 0x0020211c, 0x001d1e17, 0x001c1e18,
- 0x001b1d19, 0x001b1d19, 0x00242422, 0x002d2c2b, 0x0032312f, 0x006d6d69, 0x00e8e8e4, 0x00fcfdf8, 0x00f9fdf9, 0x00fcfefa, 0x00fcfaf9, 0x00d6cfd4, 0x004f597c, 0x00182d6f, 0x001f3e95, 0x00294bb7,
- 0x003d55c6, 0x004a55c2, 0x005258bc, 0x005b60ba, 0x005255a7, 0x005962a4, 0x006069a9, 0x00666bbd, 0x006766c2, 0x00817fc5, 0x006f6d9a, 0x008d8e98, 0x00b6b9a3, 0x00bbbeaf, 0x00bcbdb9, 0x00bcb8c4,
- 0x00bdbabd, 0x00b9b7b9, 0x00b5b2b5, 0x00bfbcbe, 0x00cfcccf, 0x00d5d2d4, 0x00cdc9cc, 0x00c0bec0, 0x00b5b4b6, 0x00bfbec2, 0x00ccc7cd, 0x00cdc8cd, 0x00ceccd0, 0x00aeabaf, 0x003c393a, 0x00211f1f,
- 0x00565451, 0x00484646, 0x00201e1a, 0x00100f0b, 0x0013120d, 0x000a0f0b, 0x000b1410, 0x00121913, 0x001b2025, 0x002d3353, 0x0053588f, 0x00838ee0, 0x007e97fa, 0x005072f2, 0x003563e6, 0x002d65e6,
- 0x002e67da, 0x002e66dc, 0x003b70eb, 0x00457cf8, 0x004378f9, 0x00386ced, 0x003264e5, 0x003262e4, 0x003162e0, 0x003060dc, 0x002b5fdc, 0x002961df, 0x00275ede, 0x00285fdb, 0x00285fd8, 0x002d5fd7,
- 0x002b5ed1, 0x002d5cce, 0x002959c8, 0x002c5ac6, 0x00315eca, 0x004368c7, 0x005071c8, 0x004968c2, 0x003250b2, 0x002b49af, 0x002740ac, 0x00263ea8, 0x00243fa2, 0x00213d96, 0x001c3689, 0x00173282,
- 0x001a3080, 0x00162c79, 0x00102771, 0x0013276c, 0x00102463, 0x0010205b, 0x000f1e55, 0x000f1b4d, 0x00081541, 0x0009113c, 0x000c102c, 0x00101215, 0x001a191c, 0x002a292e, 0x003d3e40, 0x00494747,
- 0x005d5f5b, 0x00767671, 0x0091918c, 0x00a4a5a0, 0x00babbb3, 0x00c9c9c5, 0x00d8d8d7, 0x00e6e7e6, 0x00f4f5f2, 0x00f8fbf7, 0x00faf9f9, 0x00fafcfc, 0x00fdfefd, 0x00fbfdfc, 0x00fcfcfe, 0x00fbfdfd,
- 0x00f8fdf9, 0x00f9fffa, 0x00fafefa, 0x00fcfefb, 0x00fcfdfa, 0x00fbfcfa, 0x00fcfdfb, 0x00fefefc, 0x00fdfdfa, 0x00fcfdfa, 0x00fbfbfb, 0x00fbfcfc, 0x00fefffd, 0x00fefffe, 0x00fcfcfd, 0x00fbfbfb,
- 0x00fdfffa, 0x00fffef9, 0x00fefef9, 0x00fcfcf6, 0x00f8faf2, 0x00f7f8f2, 0x00f4f6f4, 0x00f0efef, 0x00e3e1e0, 0x00d1d0ce, 0x00bcbdbd, 0x00afb2b3, 0x00979a9c, 0x00848789, 0x00696c6f, 0x00585b5d,
- 0x003d4340, 0x00313634, 0x00252a28, 0x00202624, 0x00141b19, 0x000e1614, 0x000a120f, 0x00060f0c, 0x00060c09, 0x00070d09, 0x000b130f, 0x000b1512, 0x00081311, 0x00091211, 0x000c1414, 0x000d1617,
- 0x00091311, 0x000a1413, 0x000a1212, 0x000c1514, 0x000a1414, 0x000e1914, 0x00061009, 0x00535d59, 0x00e6e8e8, 0x00fdfeff, 0x00fdfcfc, 0x00fdfbfd, 0x00fcfdf7, 0x00d7d9d3, 0x005b6054, 0x0023291c,
- 0x000f200d, 0x00112412, 0x00152819, 0x00142b1c, 0x00102c1c, 0x00102d1b, 0x00122c1a, 0x00112b17, 0x00122c12, 0x00142b12, 0x00152c14, 0x00122c13, 0x00102a12, 0x000d2a10, 0x000c2a10, 0x000e2910,
- 0x000f2b12, 0x000f2c12, 0x00122d14, 0x00122c14, 0x00112c10, 0x00112b10, 0x00122c11, 0x00112c11, 0x00122b13, 0x00142e15, 0x00162f17, 0x00142d15, 0x00102c12, 0x000f2b10, 0x00112c11, 0x00122d12,
- 0x00122a1b, 0x000e2a18, 0x000d2a18, 0x000e2b17, 0x00132914, 0x00152813, 0x00172715, 0x00182816, 0x00072a15, 0x00063219, 0x00063117, 0x00021e08, 0x006a7b6b, 0x00dde6e1, 0x0090959e, 0x0040455e,
- 0x00262f57, 0x00141f4b, 0x00313861, 0x008386a8, 0x00aaa9bd, 0x00919ab5, 0x007382a2, 0x00435275, 0x00162e56, 0x00162d55, 0x000e234f, 0x000a1c44, 0x00031430, 0x0008162a, 0x00141e30, 0x00353e4c,
- 0x004d4f5b, 0x00282b3e, 0x0022243f, 0x002d3151, 0x003f4769, 0x00575f80, 0x007e859f, 0x00adb5c6, 0x00d9e2e0, 0x00e3ede4, 0x00e6ece7, 0x00e1e4e7, 0x00e3e4e8, 0x00e2e3e3, 0x00e4e5e5, 0x00eaebeb,
- 0x00f2f4f3, 0x00f2f5f5, 0x00f5f6f9, 0x00f5f9ff, 0x00f2f5fe, 0x00f7f5fb, 0x00f9f6f0, 0x00e9ebd3, 0x00cdd7a2, 0x00bcca8a, 0x00abbb7a, 0x00a9ba7c, 0x00a2b67e, 0x009bb178, 0x0097ae73, 0x0090aa6d,
- 0x0093a663, 0x0093a663, 0x0090a15f, 0x008fa05d, 0x008a9c5a, 0x00839552, 0x0080904e, 0x007f8f4c, 0x00859754, 0x0093a663, 0x009ead70, 0x009aa76b, 0x0082944d, 0x007d904a, 0x007e914e, 0x00586f34,
- 0x00829070, 0x00e1e9d8, 0x00fcfdf9, 0x00fdfbfa, 0x00fefcf9, 0x00fffefa, 0x00d1d3d0, 0x00868983, 0x0085837f, 0x00b6b5b2, 0x00e6e6e4, 0x00f8f9fc, 0x00e2e6f1, 0x008890a7, 0x008790af, 0x00d8e4f6,
- 0x00e7f0f4, 0x00f0f7fb, 0x00f9fcfe, 0x00fcfdfc, 0x00fffdfa, 0x00fffdfa, 0x00fefdfa, 0x00fffdfc, 0x00fefcfb, 0x00fffcfd, 0x00fffcfc, 0x00fdfdfd, 0x00fffefe, 0x00fdfdfc, 0x00fdfefe, 0x00fefdfe,
- 0x00fdfdfb, 0x00fdfdfd, 0x00fdf9fc, 0x00fff8fb, 0x00fdf8f7, 0x00fbfaf9, 0x00fdfff8, 0x00fdfef8, 0x00f7fbf1, 0x00fafdf3, 0x00fefef6, 0x00fdfef6, 0x00fdfefb, 0x00fdfbfb, 0x00fcfdfb, 0x00fdfeff,
- 0x00f9fbf7, 0x00fafbfb, 0x00fbfbfc, 0x00fcfdfe, 0x00fafbfe, 0x00fcfdff, 0x00f9fdfe, 0x00f7fbff, 0x00f4fcfe, 0x00f4fbfd, 0x00f3faf9, 0x00f1faf8, 0x00edf6f5, 0x00eaf3f5, 0x00e5eff2, 0x00e1eef3,
- 0x00daeaf3, 0x00d2e2f3, 0x00c8d8f2, 0x00bfd0f0, 0x00a0b3da, 0x00838fc0, 0x005d679b, 0x006577a6, 0x008fafd1, 0x0097bedd, 0x008ebddb, 0x007cb3d1, 0x0063a2c6, 0x005898c5, 0x004f8ec5, 0x004685c1,
- 0x004776af, 0x003477ac, 0x002372a9, 0x001e72b7, 0x00285bab, 0x00303a71, 0x003e2c3b, 0x00704625, 0x008b5828, 0x0096674d, 0x009f765e, 0x009c7b51, 0x0097734d, 0x00916a4c, 0x008a6046, 0x0080583e,
- 0x006e5335, 0x00483824, 0x002f2c22, 0x005f656c, 0x00adbbd3, 0x009dbfea, 0x00719fdf, 0x005886ce, 0x005085db, 0x005588e4, 0x005486ea, 0x004f7fe0, 0x005279d0, 0x00395aa5, 0x00264181, 0x005e74ac,
- 0x009cc3f4, 0x007aa7eb, 0x0080b0f6, 0x0082b9ff, 0x005085da, 0x001e4f9f, 0x004e7fcf, 0x0078a7f7, 0x005c99e9, 0x004a8ee7, 0x005897f2, 0x006c9df3, 0x0072a5f9, 0x0076a8fd, 0x006c9ff2, 0x00689bee,
- 0x00639aec, 0x00689df0, 0x006a9ef2, 0x006599ed, 0x005d8fe5, 0x005d8ee3, 0x006292ea, 0x006898f6, 0x006192ea, 0x006189cd, 0x00a5c2ed, 0x00e9f8fe, 0x00fbfcf7, 0x00fbfcf9, 0x00fbfdfd, 0x00fbfcfd,
- 0x00a7b9d3, 0x00223581, 0x002f4299, 0x003346ab, 0x003b50b9, 0x00334aad, 0x004f66c2, 0x00647ad3, 0x0033449f, 0x003441a1, 0x002b348f, 0x001f276c, 0x00071158, 0x000b155e, 0x00182371, 0x00182274,
- 0x001a237c, 0x001a2280, 0x00232990, 0x00282d9c, 0x00242aa2, 0x001f38a5, 0x002a4bb2, 0x002d44b0, 0x003a41a5, 0x0058519d, 0x00776495, 0x00937482, 0x00b78d6d, 0x00d8a478, 0x00daa06a, 0x00d4935d,
- 0x00c89159, 0x00a97542, 0x00a27043, 0x00aa7852, 0x00b07f61, 0x00be906c, 0x00c29573, 0x00b98f65, 0x00b2865b, 0x00ad8357, 0x00a27c55, 0x006a5438, 0x002f2a25, 0x00232c2f, 0x00192931, 0x002b3e48,
- 0x006076a4, 0x00506fb7, 0x001e3d94, 0x001e3c93, 0x00394e8b, 0x00425082, 0x002c326c, 0x0030357f, 0x003e3f81, 0x004c5278, 0x0069758c, 0x00798e9f, 0x0037558b, 0x00112967, 0x003f4d8d, 0x0063679e,
- 0x0049646b, 0x00504d6b, 0x00603f68, 0x00632a4c, 0x00692928, 0x006e3f49, 0x00926f98, 0x00a795e3, 0x00999ae0, 0x008893b0, 0x00939b9d, 0x00b6b0b9, 0x00c7c8d4, 0x00dadeee, 0x00d2d6f7, 0x008c91c5,
- 0x005656a3, 0x00403b86, 0x002e2660, 0x003c3255, 0x007b716a, 0x009f7b5f, 0x00ae7f55, 0x00b28557, 0x00b79360, 0x00ac8c5e, 0x008e714e, 0x00725c41, 0x00715f52, 0x00554739, 0x0032281b, 0x00433a2d,
- 0x00697ca6, 0x008896bc, 0x004d577b, 0x001f2545, 0x00405171, 0x00587496, 0x00234771, 0x0001255b, 0x0017317b, 0x00233787, 0x00505fa5, 0x0096a9cd, 0x00bccbf5, 0x008294cb, 0x007084bc, 0x006e83bf,
- 0x00778bbd, 0x00768eba, 0x001e3565, 0x000d2455, 0x0013215b, 0x0061677b, 0x00dbd7db, 0x00fcfdfa, 0x00fcf9fa, 0x00fefffd, 0x00fefefc, 0x00f5f5f3, 0x008c7e76, 0x00361d12, 0x004b240e, 0x00622f14,
- 0x00724109, 0x0072410d, 0x00734412, 0x00744414, 0x00764314, 0x00764210, 0x0074400e, 0x00724012, 0x005c3811, 0x00977f5c, 0x00fcfcea, 0x00f5fcfb, 0x00fcfbfb, 0x00fdf8fd, 0x00f7fbff, 0x00d4d8f1,
- 0x008c9dda, 0x0087a0e7, 0x004968be, 0x003759b4, 0x006f8fe8, 0x0086b0f1, 0x0092b7f2, 0x00828edd, 0x008a8de0, 0x00a0b8f1, 0x009cc4f6, 0x0091c6f0, 0x00a6c7f6, 0x00b0c6f4, 0x00bac7f5, 0x00bccaef,
- 0x00b7dbf8, 0x00bfdbf8, 0x00c8dbfa, 0x00d5e4fc, 0x00e0f2fa, 0x00d7f3f8, 0x00e0fdfa, 0x00e0fdfd, 0x00eefcff, 0x00f2f8fd, 0x00f7f9fe, 0x00f6f6fc, 0x00fbf7fd, 0x00fcf9fe, 0x00fdfbfe, 0x00fdfcfa,
- 0x00fbfcf7, 0x00fbfaf4, 0x00fcf9f3, 0x00fbfaf5, 0x00f9fdf5, 0x00fbfdf2, 0x00fefcf5, 0x00fdfbff, 0x00fbfefd, 0x00f7fdfc, 0x00f6fdfd, 0x00f7fefb, 0x00fafef7, 0x00fcfcf9, 0x00fcf9fc, 0x00fdfafc,
- 0x00fbfafa, 0x00fbfcfc, 0x00fbfbfe, 0x00fafaff, 0x00fcfaff, 0x00fdfbfd, 0x00fdfcfc, 0x00fefefb, 0x00fffefb, 0x00fffdf6, 0x00fdfbf4, 0x00fdfaf5, 0x00fefcf9, 0x00fcfefa, 0x00fafcf9, 0x00fcfaf5,
- 0x00fdfbf6, 0x00fdfbf1, 0x00fbfcf6, 0x00fbfefb, 0x00f6fffe, 0x00f9fcf1, 0x00fcfdee, 0x00fdfef0, 0x00fdfff7, 0x00fbfef8, 0x00fbfffb, 0x00f8fcfb, 0x00fbffff, 0x00f8fcfc, 0x00fafffd, 0x00f9fdfb,
- 0x00fefcf5, 0x00deded6, 0x00cacac7, 0x00f5f6f5, 0x00fcfdfc, 0x00fdfefa, 0x00fbfcf6, 0x00fffff8, 0x00dfdcdb, 0x00b1aeaf, 0x00b2afb1, 0x00b3b5b0, 0x00adafae, 0x00a2a6aa, 0x008f95a0, 0x007d8795,
- 0x00656f85, 0x00565e79, 0x00434c6a, 0x00374062, 0x002f385c, 0x0028375f, 0x00243761, 0x00273763, 0x00273762, 0x0023355e, 0x0022355e, 0x0023365f, 0x0024385f, 0x0023365d, 0x0020335b, 0x001d3057,
- 0x001f2b5a, 0x001a2a56, 0x00172955, 0x00162a54, 0x00162c55, 0x001b2e56, 0x00243157, 0x0030325a, 0x0041385c, 0x004d3c5e, 0x00613d55, 0x007c363b, 0x00843734, 0x008b342b, 0x008a3024, 0x008a2c20,
- 0x00882f1f, 0x00802c22, 0x00752722, 0x006e2321, 0x006b2425, 0x00732622, 0x00772a23, 0x007e352a, 0x00883c31, 0x00823e31, 0x0082453a, 0x008b5850, 0x00987876, 0x00a48f93, 0x00b3a6b0, 0x00bab5c1,
- 0x00c0c0bf, 0x00bebebe, 0x00bebdc1, 0x00bebdc3, 0x00c1c0c8, 0x00c1bfc8, 0x00c1c1ca, 0x00c3c2cb, 0x00c3c3ce, 0x00c4c3cc, 0x00c5c3ce, 0x00c3c1cb, 0x00c1c0cb, 0x00bbbcc6, 0x00b2b3c0, 0x00abacb8,
- 0x009b9da8, 0x008b8c94, 0x0077747c, 0x005f5e60, 0x00413b40, 0x00232424, 0x00131414, 0x000a0d07, 0x00050906, 0x00050a09, 0x000e1218, 0x00171b23, 0x00303449, 0x004c5067, 0x00535670, 0x00444a62,
- 0x005a596c, 0x00565967, 0x00585a67, 0x005a5c62, 0x00453f3e, 0x002f221a, 0x00200d07, 0x00341d1b, 0x0047262d, 0x004c2f39, 0x00735068, 0x00855886, 0x00675d97, 0x00445ba3, 0x004c78cc, 0x004179d6,
- 0x00406ecd, 0x004468be, 0x00617ecd, 0x007591d4, 0x005f81b8, 0x00334964, 0x00182531, 0x001f252f, 0x00323131, 0x00373432, 0x003e3a38, 0x003b3937, 0x00363534, 0x00302d2b, 0x00282522, 0x0024211e,
- 0x00231d1d, 0x00241f1f, 0x002d2626, 0x00372f2f, 0x003b3535, 0x006f6968, 0x00e5e1df, 0x00fdfdf9, 0x00fbfdfc, 0x00fafcfa, 0x00fbfdfa, 0x00d5d9d4, 0x00525f7a, 0x00152e6a, 0x001f3f90, 0x002549ae,
- 0x003b54bc, 0x004c5eb7, 0x006468b8, 0x006b66aa, 0x006e6199, 0x00646695, 0x0065699d, 0x007273af, 0x00837cbc, 0x00a39ccb, 0x00928bab, 0x0088838c, 0x00948f87, 0x00b0aca4, 0x00bebbba, 0x00b2adb4,
- 0x00aba8ae, 0x00a2a0a4, 0x00b9b6ba, 0x00cecbcf, 0x00d5d2d8, 0x00d3cfd5, 0x00beb9bf, 0x00b7b3b7, 0x00c6c3ca, 0x00cfcdd3, 0x00d1ced2, 0x00c7c6c6, 0x00d3d2d3, 0x00abaaab, 0x00332f33, 0x001c191d,
- 0x00444245, 0x004a4b4d, 0x00303134, 0x00151617, 0x00282628, 0x00383d3c, 0x00515a5b, 0x006f7a7c, 0x008e9aad, 0x0094a4c7, 0x008d9fde, 0x007f98ef, 0x006486f4, 0x004a75ed, 0x00396ae7, 0x00366ded,
- 0x00376be0, 0x003368de, 0x003569e1, 0x00386de5, 0x003d6eea, 0x003c6ee9, 0x003768e3, 0x00396ce6, 0x004679f1, 0x004a7df2, 0x003e74ec, 0x002e65ea, 0x002a5fe2, 0x00295edb, 0x002e61d9, 0x00315fdb,
- 0x003362df, 0x003461dd, 0x003763dc, 0x00345fd4, 0x00325bce, 0x003f69cf, 0x004c74d6, 0x00476cd2, 0x003256c4, 0x002a4ebd, 0x002c4fbf, 0x002d4ebf, 0x002d4dbd, 0x002745b2, 0x002241a9, 0x002343a8,
- 0x002843a7, 0x00233ea0, 0x00213c9c, 0x00203997, 0x00182f88, 0x00182d81, 0x00172b78, 0x0015286d, 0x00122164, 0x000d1e5a, 0x000f1b48, 0x000d122c, 0x0007070f, 0x00010305, 0x00030505, 0x00040408,
- 0x00040307, 0x00090906, 0x000b0a07, 0x00090a06, 0x00171619, 0x002e2d2c, 0x004c4a4b, 0x00777676, 0x00a1a0a0, 0x00aaacab, 0x00b6b9b9, 0x00bec1c2, 0x00ced1d0, 0x00d4d6d5, 0x00e2e3e3, 0x00eef1ef,
- 0x00fdfaf9, 0x00fdfdfb, 0x00fefefb, 0x00fefefa, 0x00fefdfb, 0x00fcfdfb, 0x00fdfefc, 0x00fefdfc, 0x00fffcfb, 0x00fcfdfa, 0x00fbfcfb, 0x00f8fcfc, 0x00fafbfc, 0x00fcfdff, 0x00fffeff, 0x00fefdfc,
- 0x00fbfffd, 0x00fcfefb, 0x00fdfcfa, 0x00fbfdf9, 0x00fbfaf7, 0x00fbfbf9, 0x00fbfbfc, 0x00fefdff, 0x00ffffff, 0x00fdfdfd, 0x00fefefc, 0x00fcfcfb, 0x00fafbfb, 0x00fafbfd, 0x00f6f8f9, 0x00eef1f3,
- 0x00dfe0dc, 0x00c9cdc8, 0x00acb1ac, 0x00969c96, 0x007e827d, 0x0070746f, 0x005d635e, 0x004d544e, 0x003b3e3c, 0x00292d2a, 0x001a1e1c, 0x00101614, 0x00030908, 0x00020706, 0x00020909, 0x00050d0d,
- 0x000c1312, 0x00091011, 0x000c1111, 0x000b1110, 0x000c1212, 0x000c1211, 0x000d120f, 0x006a6f6f, 0x00f3f2f3, 0x00fdfcfd, 0x00fffffd, 0x00fbfbf8, 0x00fcfcf7, 0x00c9ccc5, 0x0041473b, 0x00162011,
- 0x000b1e0e, 0x00102513, 0x00142b19, 0x00142d1b, 0x00132d1b, 0x00132d1a, 0x00122c18, 0x00102c15, 0x00132b14, 0x00152b14, 0x00132b13, 0x00102a11, 0x00102810, 0x000d280f, 0x000c290f, 0x000f2810,
- 0x00112a13, 0x00102b13, 0x00132c15, 0x00132c15, 0x00112b13, 0x00102b12, 0x00112b14, 0x00102c14, 0x00112b15, 0x00122d14, 0x00132d14, 0x00122c13, 0x00102b13, 0x00102b13, 0x00122b13, 0x00122d12,
- 0x0012281a, 0x00102a19, 0x00102b19, 0x00102b17, 0x00142915, 0x00162a15, 0x00152816, 0x00122714, 0x000d2917, 0x00072b15, 0x000c2e17, 0x000c230e, 0x006a7866, 0x00e5eae3, 0x00e5e6e7, 0x00b6b6c2,
- 0x009394ae, 0x007b7f9b, 0x00646580, 0x008c8ca2, 0x00d5d1e0, 0x00d0d4e0, 0x00bdc5d1, 0x00737d8a, 0x002d3b4d, 0x00334053, 0x00364258, 0x003d485d, 0x004e5866, 0x005d656e, 0x006a7076, 0x007d8385,
- 0x009b9b9f, 0x00898c93, 0x00848792, 0x00999fac, 0x00bbc4d2, 0x00ccd5e3, 0x00e4eaf6, 0x00e9f0f7, 0x00e9efed, 0x00e6ede4, 0x00dee3dd, 0x00e0e2e6, 0x00e3e4e9, 0x00e6e6e7, 0x00ececed, 0x00f5f4f7,
- 0x00f9f8fa, 0x00f2f2f5, 0x00ececf0, 0x00e5e8ed, 0x00e6eaef, 0x00ecedee, 0x00f5f4ec, 0x00e9ecd4, 0x00d8e0af, 0x00d8e4a7, 0x00d4e1a0, 0x00d1df9f, 0x00cddea2, 0x00ccdfa3, 0x00cce0a4, 0x00cce2a5,
- 0x00cad99c, 0x00c9d99b, 0x00c8d597, 0x00c6d496, 0x00becd90, 0x00b8c78a, 0x00bbc88b, 0x00c0cd8f, 0x00c2cf90, 0x00c0cf8f, 0x00c2ce8f, 0x00c2cc8f, 0x00c1cf8a, 0x00b8c784, 0x009fad6e, 0x0062723b,
- 0x00808a6d, 0x00e3e7d9, 0x00fcfcf7, 0x00fdfbfa, 0x00fffcf9, 0x00fefdfb, 0x00d2d2d1, 0x00878785, 0x00888483, 0x00b7b4b2, 0x00e9e7e7, 0x00f9f9fc, 0x00e0e3f2, 0x009198b0, 0x00959ebd, 0x00d4dff6,
- 0x00e7edf3, 0x00f1f6fa, 0x00fafcfe, 0x00fdfcfc, 0x00fffdf9, 0x00fdf9f7, 0x00faf6f4, 0x00f0ebec, 0x00f0edf0, 0x00f5f2f5, 0x00f9f9fa, 0x00fbfcfd, 0x00fffeff, 0x00fefcfb, 0x00fdfbfa, 0x00fffaf8,
- 0x00fcfaf5, 0x00fefef8, 0x00fffcfc, 0x00fffcfd, 0x00f9fafc, 0x00fbfef9, 0x00fdfef6, 0x00fcfcf7, 0x00fefff7, 0x00fafff7, 0x00f9fdf6, 0x00fbfff7, 0x00fcfdf9, 0x00fcfbf8, 0x00fdfdfa, 0x00fcfbff,
- 0x00fbfcfa, 0x00fafafa, 0x00fdfcfd, 0x00fcfbfc, 0x00fbf9fc, 0x00fbfafc, 0x00fbfbfd, 0x00fcfdff, 0x00f9fafe, 0x00f8fafd, 0x00fafdfc, 0x00fefff6, 0x00fdfdf7, 0x00fefef6, 0x00fdfef7, 0x00fbfdf7,
- 0x00fdfefd, 0x00fafefd, 0x00f8fffc, 0x00fafefd, 0x00f5fafb, 0x00f3f4fb, 0x00eff1fc, 0x00ecf3ff, 0x00e6f8ff, 0x00d9f1f9, 0x00cbeaf6, 0x00bee4f2, 0x00afdbf0, 0x00a7d4ee, 0x009bc7e8, 0x0090bbdf,
- 0x008eb2dd, 0x007cabd3, 0x0069a0cc, 0x005d99ca, 0x005a7cb5, 0x004a547b, 0x003a2e3b, 0x004a2d1c, 0x00623d22, 0x006a4937, 0x00684b3b, 0x00664e33, 0x006f533f, 0x00745847, 0x00705345, 0x006a4f3f,
- 0x00493323, 0x00332715, 0x001c170e, 0x00111512, 0x0049515c, 0x0097adb7, 0x00a3bfe1, 0x0082a5d2, 0x005885cd, 0x005285d9, 0x004f84e4, 0x004377da, 0x00446dc3, 0x001b3a82, 0x002c457a, 0x0094a3cb,
- 0x009bc5fa, 0x006291d9, 0x005e8ede, 0x006399ec, 0x00235bad, 0x00184e9f, 0x005b93df, 0x006ea5f1, 0x005394e6, 0x004c93e1, 0x005497eb, 0x0070a4f6, 0x0075abfe, 0x0074a9fe, 0x00679df0, 0x006495eb,
- 0x006398ed, 0x006699f0, 0x00699bf1, 0x00679bec, 0x005e92e3, 0x005b8ed9, 0x005c8fde, 0x006295ed, 0x00638ee9, 0x00678ad2, 0x00aac4f1, 0x00ecf7fd, 0x00fcfcf7, 0x00fdfafc, 0x00fbfaff, 0x00fcf9ff,
- 0x00a6b5d3, 0x00223083, 0x002e3c9a, 0x003242aa, 0x003d4db5, 0x003549a7, 0x004b5fb5, 0x006174c7, 0x003c4da5, 0x003a45a6, 0x002d358e, 0x001b2066, 0x00070f4e, 0x000a114e, 0x00121b58, 0x001d256c,
- 0x0017227b, 0x001c268b, 0x00182590, 0x002531a1, 0x0023369c, 0x001f388d, 0x00203889, 0x00273298, 0x00322a9d, 0x004b378b, 0x006c5177, 0x00856357, 0x00ac813d, 0x00d4a059, 0x00dda163, 0x00e09b6b,
- 0x00d9a350, 0x00c99553, 0x00a77642, 0x009b6b49, 0x00a2745a, 0x00b58969, 0x00bc906a, 0x00b28556, 0x00b07b4a, 0x00c5885b, 0x00c28968, 0x0089645a, 0x00242e1c, 0x00183028, 0x00102c34, 0x00415172,
- 0x006a82c2, 0x003d62ab, 0x0016438e, 0x00153a88, 0x004a489d, 0x005d66a9, 0x00475d99, 0x005774b2, 0x008691bb, 0x0089829d, 0x005a4f62, 0x00454558, 0x0022447f, 0x000a2c6e, 0x00385290, 0x004d568c,
- 0x002b6083, 0x00354559, 0x00422d2f, 0x005a1f15, 0x00701c1f, 0x006a233d, 0x006e3e66, 0x00614c85, 0x0041578a, 0x007296be, 0x00d0eef9, 0x00f8f6f8, 0x00f7f7fa, 0x00f6f8fb, 0x00ccd1ef, 0x0062659c,
- 0x001b217d, 0x001d1d7c, 0x00151a63, 0x001c224f, 0x00364036, 0x00483e2d, 0x004e3c24, 0x00554328, 0x00655332, 0x00756445, 0x00706341, 0x0050472b, 0x00363020, 0x0024241c, 0x00171917, 0x003e4149,
- 0x00859ac7, 0x006f7fb5, 0x00192b5f, 0x00111c56, 0x001c2a5b, 0x0042537f, 0x00374d75, 0x00081a4d, 0x00193073, 0x001e338a, 0x0025408f, 0x005e7bb8, 0x00b2d1fe, 0x00708dcd, 0x00274a8d, 0x004668ae,
- 0x007d9cdd, 0x00637bb4, 0x00212f62, 0x00202957, 0x004f4b75, 0x00968d92, 0x00e5dbd3, 0x00fbfbf6, 0x00fcf9f9, 0x00fffefc, 0x00fbf9f7, 0x00f7f2ee, 0x0086786c, 0x0030180d, 0x0042240d, 0x005e351c,
- 0x006f4315, 0x00734317, 0x0078471d, 0x007d4a21, 0x00814d25, 0x00815128, 0x0080542d, 0x007f5a37, 0x007a573a, 0x00b3947b, 0x00fcf9e9, 0x00fafafa, 0x00fcf8fc, 0x00f9f7ff, 0x00f6f9fe, 0x00dde2f3,
- 0x00b6bfda, 0x00bec6e8, 0x00aeb5dd, 0x00a4aad5, 0x00c3c4ef, 0x00d3daf2, 0x00dee9f3, 0x00d8e0ef, 0x00d4dae9, 0x00e4e7f2, 0x00edeef6, 0x00ebeef4, 0x00eef1f4, 0x00f1f4f6, 0x00f1f7f8, 0x00f5f9fa,
- 0x00f5f8f8, 0x00f6f9fa, 0x00f5f9fa, 0x00f9fbfa, 0x00fcfafa, 0x00fbfdfa, 0x00fcfafa, 0x00fcfbfc, 0x00fdfcfe, 0x00fffeff, 0x00fcfaf9, 0x00fbf5ff, 0x00fcf4fb, 0x00fef8fe, 0x00fdf8f9, 0x00fef9f8,
- 0x00fbfaf4, 0x00fdfcf9, 0x00fafdfc, 0x00f6fdfc, 0x00f6ffff, 0x00fbfbfb, 0x00fcf9f9, 0x00fdfafc, 0x00fdfefd, 0x00fafeff, 0x00f7fdfe, 0x00f7fefc, 0x00f9fdfc, 0x00fbfcfc, 0x00fefefd, 0x00ffffff,
- 0x00f6fff5, 0x00f7fff7, 0x00f8fcf8, 0x00faf9fb, 0x00f9f5fb, 0x00faf6fb, 0x00fbf8f8, 0x00fefdf8, 0x00fdfff2, 0x00fefeec, 0x00fcfdf0, 0x00fafbf9, 0x00fcfbfc, 0x00fdfcfd, 0x00fbfcfb, 0x00fcfcfb,
- 0x00fbfafb, 0x00fcfafc, 0x00f9fafa, 0x00f9f8f9, 0x00f4f6f6, 0x00f2f2f2, 0x00edefed, 0x00ebeaeb, 0x00e3e5e5, 0x00dddede, 0x00d5d5d6, 0x00d8d7d8, 0x00f5f4f5, 0x00fafafa, 0x00fefefd, 0x00fafbfa,
- 0x00fdfbfd, 0x00e2e2e2, 0x00cecfcf, 0x00f6f7f7, 0x00fbfbfc, 0x00fffdfe, 0x00faf9fa, 0x00fefdfe, 0x00e1e4e1, 0x00bebebf, 0x00b6b5b5, 0x00b1b1b1, 0x00a2a5a7, 0x009398a4, 0x00798293, 0x0067748a,
- 0x004c5a74, 0x003d4968, 0x00323e5e, 0x00313c5e, 0x002e375c, 0x0029355f, 0x00273561, 0x002a3564, 0x0027335e, 0x0026315c, 0x00253159, 0x00253157, 0x00253155, 0x00222f52, 0x001e2c4e, 0x001c2b4c,
- 0x0014234c, 0x0011234c, 0x000e224a, 0x000d2249, 0x000d254b, 0x0013284b, 0x001f2c4e, 0x002d2f53, 0x003e3553, 0x004c3a58, 0x005e3d4e, 0x00763633, 0x00843729, 0x008f3324, 0x00912f1c, 0x00942c1c,
- 0x00852f21, 0x00802d28, 0x00782926, 0x00762525, 0x0073261e, 0x0075281b, 0x00702716, 0x00762e1d, 0x0082342a, 0x00803731, 0x00864341, 0x008e5656, 0x0097757a, 0x009f8c91, 0x00aba5aa, 0x00adb1b8,
- 0x00b7b7b2, 0x00b6b7b6, 0x00b5b5b9, 0x00b8b7bf, 0x00bab8c4, 0x00bcb9c6, 0x00bbb8c6, 0x00bdbcc9, 0x00bab9c6, 0x00bcbac5, 0x00b9b6c1, 0x00b6b3c1, 0x00afaeba, 0x00a7abb8, 0x009ba2ad, 0x00919ba4,
- 0x007d888b, 0x006d7374, 0x00575653, 0x0047403c, 0x002e221b, 0x00151809, 0x00081000, 0x00040c00, 0x000f151c, 0x001d2632, 0x00293542, 0x00314251, 0x00395268, 0x003b597a, 0x0032547f, 0x002d5287,
- 0x00294b85, 0x0033548c, 0x003d5e8e, 0x00466188, 0x00354458, 0x001b2230, 0x00161628, 0x00272541, 0x00282f67, 0x00313b87, 0x004c63ad, 0x004d72b6, 0x00436ab6, 0x00345fb8, 0x004373d2, 0x004271d9,
- 0x002c63ce, 0x003167cd, 0x003970d3, 0x004b85df, 0x00508cdc, 0x004676a2, 0x0021455c, 0x001d3342, 0x003b3b37, 0x0049443d, 0x0050493f, 0x004c473f, 0x00474140, 0x003d3537, 0x00322828, 0x002e2121,
- 0x002f1e23, 0x00352327, 0x003b272a, 0x00443130, 0x00453636, 0x00716565, 0x00e0d9d8, 0x00fffdfd, 0x00fafcff, 0x00f9fbfe, 0x00f6fdfb, 0x00d0e0d8, 0x00516880, 0x0013316d, 0x001c4094, 0x002c53bb,
- 0x004b6cc8, 0x005a6bb9, 0x0062659d, 0x007f6f95, 0x00a3829a, 0x007d749a, 0x005d608a, 0x008382a3, 0x009993a2, 0x00aba1ac, 0x009c8f9a, 0x0080707e, 0x008d7a8c, 0x00ae9ead, 0x00b8adb6, 0x00b6abad,
- 0x00a4a2a9, 0x00aca9b0, 0x00c3c0c6, 0x00d1ced4, 0x00cfcbd3, 0x00c3bec7, 0x00b8b3bb, 0x00c3bec6, 0x00d4d0d8, 0x00d0ced4, 0x00c8c7ca, 0x00c5c5c4, 0x00cacbc9, 0x00848485, 0x00212024, 0x001c191e,
- 0x0037373b, 0x0057575d, 0x0064626c, 0x0063616b, 0x00938e9d, 0x00a9adb5, 0x00c0ccd3, 0x00c5d4e6, 0x00b6d1fa, 0x009cbcf5, 0x006c91e0, 0x004d7bd4, 0x003c6fdc, 0x00366cde, 0x00386fe4, 0x003973e6,
- 0x003e6de5, 0x003f6de5, 0x003f6ee5, 0x003f6de1, 0x003b6adf, 0x003969da, 0x003266d5, 0x00376bda, 0x00497fed, 0x005086f2, 0x004a81f4, 0x003c71f9, 0x003061e4, 0x002d5edb, 0x00315fd7, 0x00315ad9,
- 0x003259df, 0x003659e1, 0x00385adc, 0x00395eda, 0x004064d3, 0x003c68d4, 0x003466cf, 0x003363d1, 0x002d57cc, 0x00284fc5, 0x002d53c9, 0x002c51c8, 0x002a4cc6, 0x002648c1, 0x002346be, 0x002244bc,
- 0x002346b9, 0x002244b8, 0x001e3eb4, 0x001c3bb1, 0x001b34ab, 0x001b34a7, 0x00162e99, 0x00132a8f, 0x00122981, 0x000f2679, 0x000c1f65, 0x000e134f, 0x00010813, 0x00000506, 0x00000502, 0x0003020d,
- 0x0003020d, 0x00040305, 0x00030300, 0x00020300, 0x0003010b, 0x00070609, 0x000f0d0c, 0x0043423f, 0x00646466, 0x006b6d6e, 0x00727778, 0x00757a7b, 0x007c7f7f, 0x00757473, 0x00757271, 0x008b8784,
- 0x00a69d98, 0x00b1aca6, 0x00c5c1bb, 0x00d5d1cc, 0x00e3dfdb, 0x00e9e9e4, 0x00f0f1ed, 0x00f8f6f4, 0x00fcfcfd, 0x00fdfcfd, 0x00f9fdfc, 0x00f8fcfb, 0x00fbfefd, 0x00fdfefe, 0x00fbfefe, 0x00fbfbfc,
- 0x00fefffe, 0x00fbfbfb, 0x00fdfbfd, 0x00fefeff, 0x00fffbfe, 0x00f8fbfa, 0x00f7fbfb, 0x00fbfcfd, 0x00fdfffd, 0x00fcfcfb, 0x00fcfbf9, 0x00fefcf9, 0x00fefbf9, 0x00fefcf9, 0x00fefdfa, 0x00fefefc,
- 0x00fffcf1, 0x00fdfcf0, 0x00f7f8ec, 0x00f4f4e9, 0x00eeede4, 0x00e7e5dd, 0x00d4d4cc, 0x00c8c9c1, 0x00b7b9b1, 0x00a2a59e, 0x00868b85, 0x00727874, 0x005a5f5e, 0x004c4f4f, 0x00393b3c, 0x002a2d2e,
- 0x001b221e, 0x00131918, 0x000f1312, 0x000c110e, 0x00070a0b, 0x00020507, 0x00101215, 0x007d7d82, 0x00fafafb, 0x00fcfbfc, 0x00fbfcf9, 0x00fafcf6, 0x00fafcf7, 0x00bdc2b9, 0x002a3527, 0x000f1c0d,
- 0x0007210a, 0x000c270f, 0x00102b13, 0x00112c14, 0x00132d17, 0x00132d17, 0x00122c16, 0x00112c14, 0x00112b15, 0x00132b15, 0x00112b14, 0x000e2a11, 0x00102911, 0x000e2811, 0x000e2911, 0x00122913,
- 0x00102a13, 0x00112a14, 0x00122b16, 0x00122b15, 0x00102a14, 0x000f2a13, 0x000f2b14, 0x000f2b15, 0x000d2b14, 0x000d2c12, 0x000e2c12, 0x000e2c12, 0x000f2c15, 0x000f2c16, 0x00102c15, 0x00102c13,
- 0x00102914, 0x000f2914, 0x00112a14, 0x00122c15, 0x00132b15, 0x00112b14, 0x00102914, 0x000e2a15, 0x00112811, 0x000f2813, 0x00112614, 0x00232f21, 0x00929b90, 0x00ecf2ec, 0x00f6f9f5, 0x00eeeef0,
- 0x00efeeee, 0x00e3dfe7, 0x00d4d2dc, 0x00d9d7e6, 0x00e7e6f3, 0x00e8e6ee, 0x00e6e6ec, 0x00c4c6cb, 0x00a4a2a8, 0x00acaab3, 0x00b2b1b9, 0x00bdbcc2, 0x00c8c6cf, 0x00d2d0d7, 0x00d7d4da, 0x00d9d5df,
- 0x00d3d3d2, 0x00d6d6d6, 0x00e2e1e2, 0x00edeeec, 0x00f4f5f4, 0x00f3f4f5, 0x00f0f0f2, 0x00eeeeef, 0x00e8e9eb, 0x00e5e6e5, 0x00e2e3e3, 0x00e4e4e7, 0x00eae9ed, 0x00eeedef, 0x00f3f1f3, 0x00f4f3f5,
- 0x00e9ecea, 0x00e6e7e5, 0x00e1e1df, 0x00e6e8e4, 0x00f1f2ef, 0x00f7f8f4, 0x00f7f9f0, 0x00e8edd9, 0x00dce0bd, 0x00e0e6b4, 0x00dee7a9, 0x00dfe9a3, 0x00dde8a2, 0x00dfeaa7, 0x00dde8ac, 0x00dee7b1,
- 0x00dae4ae, 0x00dbe4ad, 0x00dce4ae, 0x00dae3ad, 0x00d2dba6, 0x00ced7a3, 0x00d1d9a5, 0x00d6dea9, 0x00d8dfa9, 0x00d8e1a8, 0x00d6dca5, 0x00d9dda3, 0x00dce1a4, 0x00ced59a, 0x00a7af7a, 0x00646c40,
- 0x00767e6a, 0x00e4e5e0, 0x00fafafb, 0x00fefdfe, 0x00fdfafa, 0x00fefefd, 0x00d2d0d0, 0x00888787, 0x00888584, 0x00b9b6b9, 0x00e8e7e8, 0x00f9f8fe, 0x00dfe0ef, 0x009a9fbd, 0x00a2a9cb, 0x00d5ddf9,
- 0x00e5e3e9, 0x00f7f5fb, 0x00fbfafd, 0x00fbfbfc, 0x00fffffd, 0x00fdfdfb, 0x00cbcccc, 0x00666769, 0x005a595f, 0x0076747e, 0x0093959b, 0x009c9fa7, 0x00b1aeb0, 0x00beb6b3, 0x00d5c8bd, 0x00e9d6c7,
- 0x00ebdecd, 0x00eee4d4, 0x00f0ebe0, 0x00f0f5ef, 0x00effbfa, 0x00f4fef6, 0x00f7fcf5, 0x00f7fdfa, 0x00f7fcfb, 0x00f8ffff, 0x00f4fdfb, 0x00f8fcfa, 0x00fbfdfe, 0x00fefdff, 0x00fefbfc, 0x00fbf6fe,
- 0x00f9fef7, 0x00f5faf6, 0x00f9fdfa, 0x00f9fdfc, 0x00f9fdfd, 0x00f8fcfd, 0x00f7fafc, 0x00f6f8fc, 0x00f6f8fc, 0x00f8fcfe, 0x00f8fdfc, 0x00f8fefb, 0x00f9fdfc, 0x00fbfefb, 0x00fcfdfc, 0x00ffffff,
- 0x00f8faf7, 0x00fbfbfa, 0x00fafcf9, 0x00fcfdfa, 0x00fdfdfc, 0x00fefcfc, 0x00fbfbfa, 0x00fcfbfb, 0x00fcfcfb, 0x00fbfdfc, 0x00f9faf9, 0x00f8f9fb, 0x00f9f9fa, 0x00faf7fb, 0x00f7f1f4, 0x00f3edf1,
- 0x00d7eef4, 0x00d5e3f3, 0x00d2e1ee, 0x00d0dae8, 0x00c2c7cd, 0x00acaeaf, 0x00969593, 0x008b8683, 0x008c827a, 0x008a7f79, 0x00877b71, 0x00897e70, 0x008d7c76, 0x00857776, 0x006a6060, 0x0051494c,
- 0x002c2a28, 0x001e1a19, 0x00121311, 0x00070904, 0x0010150b, 0x003f3a37, 0x0095979e, 0x00b4bdd2, 0x007296cf, 0x004a7acd, 0x003b73d8, 0x00306ada, 0x002853b5, 0x000d2a76, 0x004f6295, 0x00b7c0dc,
- 0x0078a9f5, 0x004172c4, 0x003665b7, 0x004376c4, 0x000f4693, 0x002561aa, 0x0064a2e9, 0x0068a9ee, 0x004f91d8, 0x004f91d9, 0x0060a1eb, 0x0072aaf9, 0x0073aaf7, 0x006ea2f3, 0x00689eee, 0x006d9cee,
- 0x00669be6, 0x006a9ce8, 0x006d9de9, 0x006b9ced, 0x006799e3, 0x005d94ca, 0x005791c5, 0x005c94de, 0x006492e6, 0x006e92d4, 0x00b2c9f3, 0x00eff7fb, 0x00fefcf3, 0x00fef9f7, 0x00fcf6fb, 0x00fef4fe,
- 0x00a8b5d0, 0x00222e80, 0x002e3a97, 0x003240a6, 0x003f4db5, 0x003a4cad, 0x004557b3, 0x005667bf, 0x004551b1, 0x003943a4, 0x00323894, 0x00434b8c, 0x0060629c, 0x00434775, 0x00262858, 0x0014174e,
- 0x00111663, 0x001d267b, 0x00222a86, 0x001e2582, 0x0021297f, 0x0019297b, 0x001a287f, 0x00222989, 0x002b2387, 0x00352673, 0x004e376d, 0x0056374c, 0x00734f3e, 0x009e7561, 0x00c09380, 0x00cfa092,
- 0x00c7a077, 0x00b6906c, 0x009e7559, 0x007f533b, 0x007c4e34, 0x009f724b, 0x00b38558, 0x00a1713d, 0x00a26b3f, 0x00b67e56, 0x00a67558, 0x00654b41, 0x00202f21, 0x00122d29, 0x00284254, 0x006375a3,
- 0x006880cf, 0x002d56a7, 0x0020489e, 0x00153885, 0x004a458a, 0x008381a6, 0x00b6b8cc, 0x00d7e4f6, 0x00fafdff, 0x00f5ecf1, 0x00a894a1, 0x0044394f, 0x000b215f, 0x000e276e, 0x00212f77, 0x0032316f,
- 0x0035456f, 0x0043435b, 0x006e5b65, 0x0085635c, 0x00582e36, 0x00361731, 0x0028173f, 0x0018174f, 0x00262b63, 0x007f84b1, 0x00f1f4fe, 0x00f2ecef, 0x00f3f3ee, 0x00f0f4f3, 0x00cdd5de, 0x0067708d,
- 0x000b0f51, 0x0014185a, 0x00161c4f, 0x000f1a2f, 0x0012200a, 0x001c2011, 0x001e1b10, 0x001d1b0d, 0x001f1909, 0x002a2613, 0x00474532, 0x00474936, 0x002e322c, 0x00151c1b, 0x00121c22, 0x004a555f,
- 0x00717fb3, 0x00344077, 0x001d2863, 0x00242b66, 0x0020245b, 0x00364070, 0x0032416e, 0x000e2051, 0x001b2d75, 0x001e307d, 0x002b397f, 0x0068779f, 0x00c9d4fe, 0x007689b9, 0x00293f73, 0x00738aba,
- 0x009eb0de, 0x004c5a83, 0x00333a5d, 0x00555672, 0x007e768c, 0x00958c92, 0x00dad0cc, 0x00f9f7f3, 0x00fdf8fc, 0x00fdfdfd, 0x00fffafd, 0x00f5f0ef, 0x00a3948f, 0x00675446, 0x007d6452, 0x00957864,
- 0x00a38971, 0x00a88b72, 0x00b2957c, 0x00bb9e83, 0x00c2a58a, 0x00c7ad92, 0x00d0b69f, 0x00d5bfaa, 0x00dbcabc, 0x00ebddd0, 0x00fefaf2, 0x00fff9f9, 0x00fdfbfd, 0x00f9f9fc, 0x00f7fbfd, 0x00f3fbfe,
- 0x00f6faff, 0x00f4fbff, 0x00f5fbff, 0x00f6fcff, 0x00f9fdfe, 0x00f7fbfd, 0x00f9feff, 0x00f8fefe, 0x00fcfdff, 0x00fafdff, 0x00fdfdff, 0x00fcfffd, 0x00fefdff, 0x00fbfdfd, 0x00fafdfe, 0x00fcffff,
- 0x00fffeff, 0x00fdfffe, 0x00fefefe, 0x00fdfefe, 0x00fffeff, 0x00fefeff, 0x00fdfbfa, 0x00fcfaf8, 0x00fffdfb, 0x00fefcfb, 0x00fbfdfc, 0x00f6fbfa, 0x00fafffd, 0x00f9fdf9, 0x00feffff, 0x00fafefa,
- 0x00fefdfb, 0x00fcfbf9, 0x00fdfcfa, 0x00fdfcfa, 0x00f8faf7, 0x00fdfcfb, 0x00fefcfd, 0x00fdfefc, 0x00fffdff, 0x00fdfeff, 0x00fafefe, 0x00f9fffe, 0x00fafeff, 0x00fcfdfe, 0x00fefefe, 0x00fffffe,
- 0x00fcfeff, 0x00fafbfd, 0x00fcfbff, 0x00fcfcfe, 0x00fffeff, 0x00fdfefd, 0x00fdfdfd, 0x00fafafc, 0x00f8f8fa, 0x00f5f4f3, 0x00eeefee, 0x00e4e7e8, 0x00dddfdd, 0x00d3d2d1, 0x00c5c4c5, 0x00bebfbf,
- 0x00b4afb2, 0x00a8a8a6, 0x009e9e9f, 0x00959594, 0x008e8b8d, 0x00838482, 0x00757678, 0x006b696b, 0x005f6061, 0x00575758, 0x00535253, 0x00737272, 0x00d8d7d7, 0x00fbfafa, 0x00fffefe, 0x00fefefd,
- 0x00fdfafe, 0x00e8e6e8, 0x00d9d8d9, 0x00f6f7f6, 0x00fbfbfc, 0x00fefeff, 0x00fbfbfc, 0x00fdfffc, 0x00e8e7ea, 0x00c6c5c5, 0x00b6b6b9, 0x00a8abb0, 0x009299a4, 0x00798392, 0x005a677f, 0x00455470,
- 0x0037466b, 0x002e3f65, 0x002b3b62, 0x002e3b64, 0x002b3861, 0x00293662, 0x00273563, 0x00253363, 0x00253563, 0x00253460, 0x0024335c, 0x0022325a, 0x00213158, 0x001e2f56, 0x001b2d52, 0x00192b4e,
- 0x001d2349, 0x00192248, 0x00142045, 0x00111f42, 0x000f2144, 0x00142343, 0x001e2743, 0x002d2a48, 0x003f2d4a, 0x0049354e, 0x005b3849, 0x00713535, 0x0083352d, 0x008d3425, 0x00963222, 0x0097301f,
- 0x00903225, 0x00873225, 0x0083302a, 0x007f2d22, 0x007f2c1f, 0x00762c1a, 0x00722919, 0x00772c1c, 0x007b3127, 0x007a362f, 0x00844543, 0x008b5657, 0x0095747a, 0x009c8a91, 0x00a49ca4, 0x00a4a6b0,
- 0x00abaaa8, 0x00a9aaa9, 0x00aaabad, 0x00acabb1, 0x00b0adb8, 0x00afadba, 0x00afadbb, 0x00aeadba, 0x00aaa7b5, 0x00a5a3ac, 0x00a19faa, 0x009e9ba6, 0x009a97a3, 0x00929197, 0x0084858a, 0x0077797c,
- 0x005f6367, 0x004c4e51, 0x002e3036, 0x00181d22, 0x000b0c16, 0x00030f15, 0x00091625, 0x0018283e, 0x00394865, 0x00415272, 0x003c4d70, 0x00374c6b, 0x002d466e, 0x001f3d69, 0x001d3c71, 0x00224580,
- 0x002f4c83, 0x00385784, 0x0049658f, 0x00556d8a, 0x004c5668, 0x003e4351, 0x00484e63, 0x00475074, 0x00365199, 0x003865ba, 0x004a77d4, 0x004c79ca, 0x003f6fc4, 0x003365c0, 0x003e74d4, 0x003a73d5,
- 0x00356cd4, 0x00366fd3, 0x003870d3, 0x003974d0, 0x004279d2, 0x005084c0, 0x004c749e, 0x002f4c6b, 0x003e414c, 0x00565454, 0x005c5751, 0x0057544f, 0x00514d4e, 0x00484043, 0x003b3030, 0x00362926,
- 0x0038272c, 0x003c2b30, 0x00433134, 0x00473534, 0x00493837, 0x006d5f5d, 0x00dcd2d1, 0x00fdfbfc, 0x00f9feff, 0x00f9fefe, 0x00f9feff, 0x00dce4e3, 0x00606b91, 0x0017296b, 0x00213891, 0x004c6bcf,
- 0x009ab1ff, 0x008d9ad7, 0x008884b3, 0x00bda9c5, 0x00e3bdca, 0x00c4a9be, 0x0097819a, 0x00b9a5b1, 0x00cdb8b6, 0x00d5bfbb, 0x00c9b2b3, 0x009e8a8e, 0x008c7d85, 0x009e9796, 0x009c9c97, 0x009ea094,
- 0x00a09ca3, 0x00bab6bd, 0x00c9c5cd, 0x00cfcbd2, 0x00c4c0c7, 0x00b9b6bc, 0x00c4c1c7, 0x00d6d3da, 0x00d6d0d8, 0x00c9c4cb, 0x00c3c0c6, 0x00d5d5d7, 0x00979798, 0x0039393b, 0x0007080b, 0x00111314,
- 0x004c464f, 0x0089888f, 0x008f8e96, 0x009f9ea9, 0x00adaeb8, 0x00aaaad2, 0x00a4a4e1, 0x009294dd, 0x007581e0, 0x006374e1, 0x004e64df, 0x004562e6, 0x003c5dee, 0x003b5ef2, 0x003c5ff4, 0x003e63f8,
- 0x00436ccf, 0x004571d4, 0x004b76db, 0x004877de, 0x004374e3, 0x003a6fe3, 0x003a6ce8, 0x003469e9, 0x003064ea, 0x003167ee, 0x003670f3, 0x003572ef, 0x002c6ae1, 0x002c68df, 0x002b67db, 0x002762d4,
- 0x002a5fd9, 0x002e60d6, 0x003666d8, 0x00406cd6, 0x004b76da, 0x004775de, 0x003465d5, 0x002f5dcd, 0x002e57d0, 0x002f56d0, 0x002f55d0, 0x00284ec9, 0x00284cc7, 0x002449c1, 0x002248be, 0x002448bd,
- 0x002749ba, 0x002545b9, 0x002242b7, 0x001e3cb2, 0x001e3aae, 0x001e37aa, 0x001b34a2, 0x00182f9a, 0x001a2f8e, 0x00132c86, 0x00162779, 0x00171d5d, 0x000a111c, 0x00030d08, 0x00060b06, 0x0007060f,
- 0x000b0616, 0x000a0706, 0x000a0801, 0x00080900, 0x00090613, 0x00040205, 0x00252526, 0x00707170, 0x00949497, 0x008b8c8e, 0x007f8083, 0x007a797b, 0x00686563, 0x003c3532, 0x000e0400, 0x00160a04,
- 0x0026150c, 0x00302319, 0x00463a31, 0x00584c44, 0x006d625a, 0x00787068, 0x008c857d, 0x00a0978f, 0x00b2aba6, 0x00bfb9b4, 0x00cfcac6, 0x00dbdbd6, 0x00f2f1ee, 0x00f7f9f6, 0x00fbfbfb, 0x00fffdfe,
- 0x00fefafb, 0x00fefcfc, 0x00fffeff, 0x00fdfeff, 0x00fdfbfd, 0x00fbfcfd, 0x00fdfdfe, 0x00fefefe, 0x00fcfefd, 0x00fafcfc, 0x00fafcfb, 0x00fcfefe, 0x00fbfdff, 0x00fbfdff, 0x00f9fbfc, 0x00fafcfe,
- 0x00fafdf7, 0x00f9fcf7, 0x00fbfdf9, 0x00fbfdfa, 0x00fcfefd, 0x00fbfffe, 0x00fbffff, 0x00f9ffff, 0x00faffff, 0x00f8fcfc, 0x00f7fafb, 0x00f6f9f9, 0x00eff2f2, 0x00e3e8e6, 0x00ccd0ce, 0x00b8bbb9,
- 0x009fa1a3, 0x008a8e8c, 0x00747876, 0x00646765, 0x004e5150, 0x003c3d41, 0x00404146, 0x00979a9b, 0x00fcf9fb, 0x00fefafe, 0x00fdfcfb, 0x00fefffb, 0x00f9faf2, 0x00adb3a8, 0x00162312, 0x00081606,
- 0x000b230c, 0x000f2810, 0x00112c14, 0x00112d13, 0x00112e14, 0x00122e15, 0x00122c14, 0x00102a14, 0x00112b14, 0x00112c15, 0x00102c14, 0x000e2b12, 0x000e2a11, 0x000e2911, 0x000e2811, 0x000f2913,
- 0x00102b12, 0x00102b11, 0x00122c13, 0x00112c13, 0x000f2a12, 0x000e2a12, 0x000e2b13, 0x000e2b12, 0x000e2b13, 0x000d2a12, 0x000d2b12, 0x000e2c13, 0x000f2d15, 0x000f2d15, 0x000e2d14, 0x000d2c13,
- 0x00122c15, 0x00112c14, 0x00112b13, 0x000f2b12, 0x000f2a12, 0x000d2911, 0x000e2811, 0x00102911, 0x000e2b12, 0x000c2910, 0x00102713, 0x00303e30, 0x00b3bcb0, 0x00f4f9f3, 0x00f1f3ee, 0x00f9faf6,
- 0x00f8f4f6, 0x00f9f5f7, 0x00fef9fe, 0x00f8f9fc, 0x00f3f5fb, 0x00f2f5f7, 0x00f8f6fd, 0x00f8f7fd, 0x00fefbff, 0x00faf7fe, 0x00f7f6f9, 0x00f9f9fa, 0x00f5f5fa, 0x00f4f4f9, 0x00f5f6f9, 0x00f5f5fb,
- 0x00f6f5f7, 0x00f6f6f6, 0x00f6f6f5, 0x00f5f5f3, 0x00f1f0ef, 0x00eeeeee, 0x00ecedec, 0x00eaecea, 0x00eae9eb, 0x00e9e9e9, 0x00eeedf0, 0x00eeeef2, 0x00f0f0f3, 0x00f6f5f9, 0x00f3f2f5, 0x00ecebec,
- 0x00d9dadb, 0x00e6e7e5, 0x00f4f4f0, 0x00f9f8f5, 0x00fefefb, 0x00fdfdfb, 0x00fbfdf6, 0x00eff3e2, 0x00e0e5c3, 0x00dee6b5, 0x00e0e9af, 0x00e1eba8, 0x00e1eca8, 0x00e0eba9, 0x00e2ebaf, 0x00e1e9b2,
- 0x00e0eab1, 0x00dee8b0, 0x00e1ebb3, 0x00dfe9b0, 0x00d8e2a8, 0x00d7e1a7, 0x00d8e2a8, 0x00dae5ab, 0x00dfe8b0, 0x00dde7ad, 0x00e0e7b0, 0x00e1e5ac, 0x00e3ebac, 0x00ceda99, 0x009aa86e, 0x00505e2f,
- 0x006d7664, 0x00e2e5df, 0x00fcfefd, 0x00fefefe, 0x00fdfbfc, 0x00fdfdfe, 0x00d2cfd2, 0x00888688, 0x00898486, 0x00b9b6b7, 0x00eae7ec, 0x00faf8fc, 0x00e6e6f6, 0x00a8abc9, 0x00afb4d8, 0x00d5dbf9,
- 0x00e8e6ef, 0x00f9f8fb, 0x00fefdff, 0x00fbfbfd, 0x00fefffc, 0x00fdfefb, 0x00b3b3b3, 0x00212122, 0x001c191c, 0x0016141a, 0x001f1b26, 0x001a101d, 0x0019070f, 0x001e0706, 0x003a1e18, 0x00553427,
- 0x00806057, 0x007d665a, 0x00796762, 0x00786d6c, 0x007e7b80, 0x00878789, 0x009c9a9d, 0x00ababb0, 0x00c3babe, 0x00d5cec6, 0x00ede3d1, 0x00f1eed2, 0x00f8f5d8, 0x00f8f7df, 0x00fdfbea, 0x00fdfdf1,
- 0x00fbfbf7, 0x00fdfdf8, 0x00fffffa, 0x00fbfcf8, 0x00fafbf8, 0x00fafcfa, 0x00fbfdfc, 0x00fdfffd, 0x00fafbfc, 0x00fbfbfb, 0x00fcfcfd, 0x00fafcfc, 0x00fcfffe, 0x00fdfdfc, 0x00fcfbfb, 0x00f8f8f7,
- 0x00fefefd, 0x00fdfffd, 0x00fdfdfb, 0x00fdfefa, 0x00fefcfc, 0x00fdfdfb, 0x00fefbfa, 0x00fefafc, 0x00fbf9fe, 0x00fafafc, 0x00fafbfd, 0x00fafbfb, 0x00fcfeff, 0x00fbfdfc, 0x00fefdff, 0x00fdfdfd,
- 0x00f5ffff, 0x00f6ffff, 0x00f7fdff, 0x00f8fefd, 0x00fefeff, 0x00fbfefe, 0x00fffcfd, 0x00fefefc, 0x00fffbf8, 0x00fdf7f2, 0x00f8efe9, 0x00efe7da, 0x00e4d9d4, 0x00d7cecb, 0x00beb7b9, 0x00ada7a7,
- 0x00969299, 0x00838285, 0x007c7d7a, 0x006e716e, 0x00585b53, 0x004c4949, 0x006a696d, 0x00aeb8c6, 0x00b0caeb, 0x00688dc3, 0x003963a8, 0x002750a3, 0x0008256e, 0x000a1b56, 0x007681ab, 0x00d0d4ed,
- 0x006381e4, 0x002d4faf, 0x002c4db1, 0x002247ab, 0x001943a2, 0x003e6ac9, 0x007ba9fe, 0x006f9cf6, 0x005b89eb, 0x006798f7, 0x0073a7fe, 0x0074a9fb, 0x006597ed, 0x006294e9, 0x006697f1, 0x00689af0,
- 0x00689bf3, 0x00689af2, 0x00689af3, 0x006699f2, 0x00669af3, 0x006096e5, 0x00548cde, 0x00558eec, 0x006194f5, 0x006995e0, 0x00afcbfc, 0x00eafaff, 0x00fdfff3, 0x00fcfff3, 0x00fdfbf9, 0x00fdfbff,
- 0x00a9b7d2, 0x00223182, 0x002f3c99, 0x003241a8, 0x003e4eb8, 0x003b4db4, 0x004152b4, 0x004d5ebc, 0x004b56b9, 0x00333da4, 0x00303894, 0x00666fab, 0x00c1c4ec, 0x00afafcd, 0x0084819f, 0x00605d81,
- 0x0032336d, 0x00343a7e, 0x004a509b, 0x00262c74, 0x00181856, 0x00101a65, 0x00151f74, 0x00202578, 0x001d1968, 0x001b1257, 0x00301f5d, 0x003c2658, 0x004a3355, 0x005d4661, 0x00785f76, 0x008a7488,
- 0x00897678, 0x00877070, 0x00997c78, 0x008a665c, 0x006c4226, 0x0082552b, 0x00ae7e4d, 0x00b27f4a, 0x00a4744a, 0x00a27051, 0x007a523e, 0x003f2e27, 0x00162d22, 0x000e2b2e, 0x003b5770, 0x007d90c5,
- 0x005874d0, 0x002a51ad, 0x00234fa5, 0x00173881, 0x005f508c, 0x00af9aa9, 0x00f3e4df, 0x00fcfcff, 0x00f3f7fc, 0x00fcf7fc, 0x00c6b3c0, 0x004c3d52, 0x0001104d, 0x000d2366, 0x001e276d, 0x00271e58,
- 0x002f264c, 0x005c5267, 0x00867980, 0x007d6f6a, 0x0040383f, 0x001c1e35, 0x00192048, 0x001a2357, 0x002e275c, 0x007e719d, 0x00ede0f8, 0x00e6e3e6, 0x00e8e6e0, 0x00dcdfd6, 0x00c3cac4, 0x007e878d,
- 0x0021284e, 0x00191f47, 0x00151d39, 0x00141f25, 0x00152208, 0x0017211b, 0x00131a1c, 0x0018211f, 0x00171d15, 0x0014190f, 0x0020251a, 0x001d211b, 0x00212627, 0x00151e24, 0x000f1a22, 0x0027353f,
- 0x00414a7c, 0x002a3068, 0x00242a63, 0x001e225e, 0x00282a5c, 0x00272d58, 0x0020284f, 0x00121c44, 0x00202d66, 0x00283675, 0x0038417a, 0x008385a2, 0x00d7daf4, 0x008b90b2, 0x00636d8f, 0x00adbcd9,
- 0x00abb6d5, 0x00666f86, 0x00838495, 0x00aea9b7, 0x00b4a8af, 0x00aea5a8, 0x00e6e1de, 0x00fefbfb, 0x00f8f8fa, 0x00f6f9fb, 0x00f9fbff, 0x00f9f8fb, 0x00dcd6d6, 0x00cdc1bb, 0x00ddcfc4, 0x00ead6cb,
- 0x00e7e1d8, 0x00e9e2d7, 0x00f0e7dd, 0x00f7ede1, 0x00fbf2e4, 0x00fcf4e7, 0x00fcf6eb, 0x00fbf8ec, 0x00fbf7f3, 0x00fdfbf8, 0x00faf6f5, 0x00fef9f6, 0x00fcfdf9, 0x00fdfcf9, 0x00f9fbf8, 0x00f9fcfa,
- 0x00fbfefc, 0x00faffff, 0x00f8fdfd, 0x00f9fcff, 0x00f9fafa, 0x00f7fcfc, 0x00fafdfd, 0x00fbfdff, 0x00fafefd, 0x00f8fcfd, 0x00f9fbfc, 0x00fcfcff, 0x00fbfdff, 0x00fafdfe, 0x00faffff, 0x00fbfcfe,
- 0x00fafeff, 0x00f7fefe, 0x00fbfeff, 0x00fcfeff, 0x00fffdff, 0x00fdfbfd, 0x00fdfcf8, 0x00fbfcf9, 0x00f8f6f4, 0x00fdf9f7, 0x00f7fbf8, 0x00f1fcfa, 0x00f2fefb, 0x00f2fefa, 0x00f2fcf8, 0x00f3fdf6,
- 0x00fafbf9, 0x00fcf9f7, 0x00fffbfc, 0x00fffafc, 0x00fffcfc, 0x00fdfbfc, 0x00fdfcfd, 0x00fbfaf9, 0x00fefdfc, 0x00fafcfa, 0x00f7fcf9, 0x00f3f8f6, 0x00f1f3f2, 0x00efedee, 0x00ebe8e9, 0x00e9e5e5,
- 0x00e0dce1, 0x00d9d5d9, 0x00cfcbcd, 0x00c4c2c3, 0x00bcbbbc, 0x00b5b5b8, 0x00adabb2, 0x00a5a2ac, 0x009495a1, 0x008a8d9a, 0x0080838b, 0x00727475, 0x00666767, 0x005b5c5b, 0x004d4e4f, 0x00454647,
- 0x00363635, 0x002f302f, 0x002b2c2c, 0x00272829, 0x00222122, 0x001a1a1c, 0x00121214, 0x000d0d0d, 0x000c0d0c, 0x000d0f0d, 0x00101110, 0x003c3d3d, 0x00c6c7c7, 0x00fafafb, 0x00fcfdfe, 0x00fdfefe,
- 0x00fefdfc, 0x00eeeeef, 0x00e0e0df, 0x00f3f4f2, 0x00fcfcfc, 0x00fdfcfe, 0x00fbfbfb, 0x00fdfefc, 0x00e9e9ea, 0x00c2c2c2, 0x00abadb0, 0x0099a1ae, 0x007e889a, 0x00627087, 0x00465773, 0x00374869,
- 0x002e436c, 0x002c416d, 0x002b3f6d, 0x002c3e6e, 0x002c3c6c, 0x002a3a6b, 0x00283969, 0x00293b6b, 0x00283a69, 0x00283a68, 0x00273965, 0x00253862, 0x00233761, 0x0022375f, 0x0020355c, 0x001f3359,
- 0x00262c4f, 0x00222a4e, 0x001e274a, 0x00192347, 0x00152244, 0x00182241, 0x00212542, 0x002c2744, 0x00372740, 0x00402f45, 0x00553346, 0x006d313c, 0x00833330, 0x008f352b, 0x009b3525, 0x009c3421,
- 0x0098382a, 0x0092382a, 0x008e382a, 0x00893524, 0x0087311a, 0x007d2f1b, 0x00752a16, 0x00762a18, 0x00732b20, 0x0074322b, 0x00804543, 0x008b5a5b, 0x0093767d, 0x00998a90, 0x009b969d, 0x00989ca5,
- 0x009e9e9d, 0x009e9f9f, 0x009f9fa3, 0x00a2a2a9, 0x00a4a2ad, 0x00a5a3af, 0x00a29fac, 0x009f9da8, 0x009a98a3, 0x00919098, 0x0087858d, 0x0084808b, 0x007f797f, 0x00787073, 0x006a6260, 0x005d5551,
- 0x00453f42, 0x00313139, 0x00141a28, 0x000b192a, 0x001b2b46, 0x00244068, 0x00365585, 0x00476597, 0x00486393, 0x00354e80, 0x00223c6a, 0x001f3966, 0x001f3b6b, 0x001d3b70, 0x0023447b, 0x002b4d89,
- 0x00355489, 0x00355381, 0x004f6a8f, 0x00697c97, 0x00767e8a, 0x00767b88, 0x00697185, 0x005a6a8d, 0x004570bc, 0x003e78d4, 0x003f7ce0, 0x00487add, 0x003c6fd0, 0x003269cb, 0x003c74d7, 0x003871d3,
- 0x00366fd4, 0x003972d4, 0x00376dd1, 0x00396fd3, 0x004072d7, 0x004379c5, 0x005683c1, 0x004b6999, 0x00434b61, 0x00575661, 0x00615b5e, 0x00605d5c, 0x00595655, 0x004f4947, 0x003f3531, 0x003b2c26,
- 0x003c2a2d, 0x00422f33, 0x004a363a, 0x004b3939, 0x004b3d3a, 0x00695c59, 0x00d7cdcc, 0x00fdf9f9, 0x00fcfcfd, 0x00fbfffe, 0x00fafdfd, 0x00e3e4e7, 0x00686d98, 0x001c2a6f, 0x00223591, 0x004961c8,
- 0x00899def, 0x008990d3, 0x008d88b8, 0x00c4b2d0, 0x00d3adbb, 0x00c3a0b7, 0x0097738a, 0x00b798a1, 0x00c9adac, 0x00d0b7b1, 0x00cab3b0, 0x00a49494, 0x00877f83, 0x00858581, 0x007d837a, 0x008a9480,
- 0x00b0acb0, 0x00c1bcc2, 0x00d2ced4, 0x00c9c6cc, 0x00bab6bb, 0x00c1bec2, 0x00d4d2d7, 0x00d7d4da, 0x00c6c1c7, 0x00c5c1c7, 0x00cecbd0, 0x00c7c6c8, 0x006b696b, 0x001d1c20, 0x000b0c0f, 0x002b2c2f,
- 0x008c8c90, 0x00afafb6, 0x0065636d, 0x00424048, 0x003a3842, 0x003c3b57, 0x003f3f64, 0x003b3d6c, 0x00394380, 0x003f4c93, 0x004151a6, 0x004258b4, 0x00425bc0, 0x004660c6, 0x004d68cd, 0x00536fd1,
- 0x004c71b8, 0x005176c0, 0x00547aca, 0x005378d0, 0x004874d9, 0x003c69d9, 0x003664e0, 0x003160e2, 0x00305feb, 0x003161f1, 0x003267f2, 0x002d68e2, 0x002a67e4, 0x002c6ce6, 0x002d6fe9, 0x002a6ce6,
- 0x002865e1, 0x003870e8, 0x004e82f2, 0x005989f5, 0x00618df2, 0x005481f0, 0x003867dd, 0x002f5bd2, 0x002d57d3, 0x002950ce, 0x00294ecf, 0x00264bca, 0x00264ac7, 0x002348c0, 0x002348bd, 0x002347bb,
- 0x00274bbc, 0x002647bc, 0x002242b9, 0x00213fb6, 0x001e39b0, 0x002039ae, 0x001d35a7, 0x001931a0, 0x001c2e95, 0x00182c91, 0x0018267f, 0x001b1d5e, 0x000a131e, 0x00080e0b, 0x00080c07, 0x000a070f,
- 0x000d0916, 0x000b0907, 0x000c0b01, 0x000a0b00, 0x000b0815, 0x00050306, 0x003e3e3f, 0x009b9c9d, 0x00c1c3c4, 0x00b9baba, 0x00b0afb0, 0x00b3afae, 0x00938a85, 0x0051463d, 0x00170900, 0x00201003,
- 0x002f1806, 0x002e1907, 0x002f1a0a, 0x002c1608, 0x002f1a0d, 0x002e1b0e, 0x003b281c, 0x00473226, 0x004f3c32, 0x005a473e, 0x006a5b51, 0x007c6f64, 0x00968e83, 0x00a69e95, 0x00b6afa7, 0x00c3b9b4,
- 0x00d7cdcc, 0x00e1ddda, 0x00ebe7e4, 0x00efedea, 0x00fbf8f7, 0x00fbfcfa, 0x00fdfbf9, 0x00fefcfa, 0x00fefdfa, 0x00fefefd, 0x00fcfcfd, 0x00f9fafb, 0x00fafcfc, 0x00f9fcfc, 0x00fafefd, 0x00fafefe,
- 0x00fbfffd, 0x00fbfffe, 0x00fcfdfd, 0x00fbfcfd, 0x00fdffff, 0x00fafdff, 0x00fafeff, 0x00f9feff, 0x00f5fdfe, 0x00f7feff, 0x00fafeff, 0x00f9fcfa, 0x00fafcfb, 0x00f8fcfb, 0x00fafefd, 0x00f9fbfa,
- 0x00f4f5f7, 0x00eeefee, 0x00e2e4e4, 0x00dcdfde, 0x00cacbca, 0x00bbbdc0, 0x00adafb4, 0x00cfd2d3, 0x00fefdfe, 0x00fefdfe, 0x00fdfdfc, 0x00fdfffb, 0x00f0f3ea, 0x0099a095, 0x000c190a, 0x00081708,
- 0x000a240b, 0x000f2810, 0x00122b13, 0x00102c12, 0x00102c11, 0x00102d12, 0x000f2d13, 0x000e2a12, 0x00102a11, 0x000f2b12, 0x000f2b12, 0x000f2a11, 0x000c2910, 0x000c280f, 0x000d2810, 0x000c2910,
- 0x00102b13, 0x00112b13, 0x00122d13, 0x00112d12, 0x00102b12, 0x000f2b11, 0x000e2c10, 0x000e2c10, 0x000c2a0f, 0x000c2a10, 0x000d2c12, 0x000e2d13, 0x00102e14, 0x00102e14, 0x000f2e15, 0x00102e15,
- 0x00122d15, 0x00122d15, 0x00112c13, 0x000e2a10, 0x000e2810, 0x000d2911, 0x000f2911, 0x000f2a11, 0x000e2913, 0x000e2911, 0x00112713, 0x002e3c2d, 0x00b0b9ab, 0x00f4f8f0, 0x00f2f4ed, 0x00f6f5f0,
- 0x00fbf8f9, 0x00f8f5f5, 0x00f6f5f7, 0x00f6f3f5, 0x00f5f8f9, 0x00f5f5f6, 0x00f1f0f5, 0x00f7f5f8, 0x00faf8ff, 0x00f7f5fc, 0x00f7f6fb, 0x00f5f4fa, 0x00f8f7fd, 0x00f8f8fd, 0x00f9fafc, 0x00fafcfc,
- 0x00fdfbfc, 0x00fefdfc, 0x00fcfbfa, 0x00f6f6f5, 0x00efeded, 0x00edeced, 0x00ececec, 0x00ececeb, 0x00ecedec, 0x00ebeceb, 0x00efeff0, 0x00f4f3f6, 0x00f6f5f9, 0x00f0eff1, 0x00e8e7e9, 0x00e2e1e2,
- 0x00e6e7e6, 0x00f2f2f0, 0x00fbfbf8, 0x00fafaf7, 0x00faf9f8, 0x00fdfcfc, 0x00fdfefa, 0x00f5f7ea, 0x00e4eacc, 0x00dde5b8, 0x00dfe8b0, 0x00dde8a7, 0x00e0eaa9, 0x00e0e9aa, 0x00e0e9ad, 0x00e2eab0,
- 0x00dee7ac, 0x00dee6ac, 0x00dfe8af, 0x00dfe8ad, 0x00d8e1a5, 0x00d6dfa2, 0x00d8e3a5, 0x00dbe5a8, 0x00dde8aa, 0x00dce7ab, 0x00dee7ad, 0x00dfe8af, 0x00dde8a8, 0x00c4d392, 0x0087985c, 0x003f4f21,
- 0x0066715f, 0x00dfe5df, 0x00fbfffe, 0x00fcfffd, 0x00fcfcfc, 0x00fefefe, 0x00d2d1d1, 0x00898687, 0x00898485, 0x00bab6b5, 0x00e9e5e8, 0x00f9f7fd, 0x00e6e7f3, 0x00afb4cf, 0x00b4bbdc, 0x00d5dcfc,
- 0x00e8e7ef, 0x00f8f8fa, 0x00fdfefe, 0x00fafcfc, 0x00fdfffb, 0x00f9fbf8, 0x009f9f9e, 0x000d0d0c, 0x00141318, 0x00101016, 0x001e1a22, 0x00180917, 0x001a0409, 0x00210305, 0x003f1b19, 0x0058312b,
- 0x006b423b, 0x00593b34, 0x0037201d, 0x001d0c0c, 0x00140b10, 0x00100b13, 0x00201724, 0x002c2129, 0x00432f2b, 0x00664e3c, 0x008d7754, 0x00a18957, 0x00a89a5d, 0x00aa9f67, 0x00b1ac7d, 0x00b3af88,
- 0x00c3c1b9, 0x00cbc9c0, 0x00d6d2cb, 0x00e0dcd5, 0x00eae6e1, 0x00efebe8, 0x00f6f4f1, 0x00fcfbf7, 0x00fbfbf8, 0x00fbf8f5, 0x00fcf8fa, 0x00fafaf9, 0x00fbfcfe, 0x00fdfcfc, 0x00fffdff, 0x00fdfcfc,
- 0x00fefdfc, 0x00fefefc, 0x00fffefd, 0x00fdfefd, 0x00fefcfd, 0x00fbfcfb, 0x00f9fbf9, 0x00fbfdfc, 0x00fefefe, 0x00fcfdfe, 0x00fdfdfe, 0x00fbfbfe, 0x00fafdfd, 0x00fafdfe, 0x00fdfffe, 0x00f9fdfb,
- 0x00f8fdfc, 0x00f6fdfe, 0x00f7fcfc, 0x00f9fbfc, 0x00fdfdfd, 0x00fefbfe, 0x00fdfbfd, 0x00fafbfc, 0x00f9f9f4, 0x00fcf9f9, 0x00fefaf7, 0x00fffdf6, 0x00fefaf5, 0x00fbf8f7, 0x00f8f6f5, 0x00f7f3f4,
- 0x00f3f1f3, 0x00ececed, 0x00e9ebea, 0x00e1e0dd, 0x00d1d2cf, 0x00d1ccd2, 0x00c4c2cb, 0x00ced2d9, 0x00dbebf5, 0x00bad2e8, 0x0091a8ce, 0x008399cb, 0x006573a5, 0x005f6590, 0x00a8aac6, 0x00d5d3e4,
- 0x007185d8, 0x004b62b5, 0x004961b3, 0x00334c9c, 0x003d57aa, 0x00627ecf, 0x0089a7f8, 0x007597e7, 0x007396ed, 0x00799df2, 0x006e96e7, 0x005a88da, 0x005b87da, 0x006591e7, 0x006f9df2, 0x006b9cef,
- 0x006f9ef5, 0x006a9bf3, 0x006798f0, 0x006698f3, 0x00689cf5, 0x00679bf5, 0x005a90ec, 0x00568ff3, 0x005d93f6, 0x006394e1, 0x00aacbfa, 0x00e6fbff, 0x00fbfef4, 0x00fafef0, 0x00fafcf2, 0x00f8fcfb,
- 0x00adbcd3, 0x002a3988, 0x003845a2, 0x003b49b3, 0x003f4ebd, 0x003e50b9, 0x004050b5, 0x004d5dbf, 0x005660c7, 0x002f3aa3, 0x00333d9a, 0x00717cb2, 0x00dfe0fa, 0x00eee8f4, 0x00f3e8f3, 0x00ece1ef,
- 0x009894be, 0x007072a6, 0x007174ad, 0x00414379, 0x00211946, 0x001f2064, 0x001c226e, 0x00212767, 0x00363672, 0x00322f6a, 0x002a2360, 0x00392e6e, 0x003e3376, 0x00352b67, 0x00352b63, 0x003c3769,
- 0x003c3a60, 0x00473e5f, 0x00513f54, 0x004d2f37, 0x00552e15, 0x005f310b, 0x00875a25, 0x00a0743e, 0x009a6e4a, 0x007d523b, 0x00492a1e, 0x00251f1a, 0x000f2b1f, 0x00143638, 0x005d7a98, 0x008195d3,
- 0x004661c8, 0x00224cad, 0x00214ca2, 0x002b458a, 0x007f6597, 0x00c29e9e, 0x00fde2d0, 0x00fcf9fb, 0x00f5faff, 0x00fcfbff, 0x00c5b9c7, 0x00514662, 0x0004124c, 0x000b1f5d, 0x001d2761, 0x00352d5e,
- 0x00847587, 0x00928891, 0x006c6466, 0x003b3b36, 0x00152128, 0x0006182e, 0x0004163c, 0x000b1b48, 0x001b143f, 0x00554566, 0x00b8a6be, 0x00b8b4be, 0x00a6a6a0, 0x008d9483, 0x0079816f, 0x005b655b,
- 0x00383d4e, 0x00262e3d, 0x0017212d, 0x00182220, 0x0016250b, 0x00172822, 0x0015242a, 0x00112321, 0x00172221, 0x00161f19, 0x00161e18, 0x001a201d, 0x001a2022, 0x00171f24, 0x001d2730, 0x002c3941,
- 0x003b3f6c, 0x00404272, 0x004a4c80, 0x005a5a8d, 0x0068658f, 0x00626282, 0x00626383, 0x00696f8a, 0x00757fa7, 0x00838ebf, 0x009495c2, 0x00c5c0ce, 0x00f2f1fa, 0x00d2d2e6, 0x00cbcde3, 0x00e4ecfa,
- 0x00dbe0ef, 0x00d1d5dd, 0x00e7e7ed, 0x00f2eaec, 0x00fdf3f3, 0x00fdf5f7, 0x00fcfcfd, 0x00f9f9fb, 0x00fcfefe, 0x00f9fffd, 0x00f7faff, 0x00f9fdfd, 0x00fdfefe, 0x00fdfbfb, 0x00fdfaf3, 0x00fef8f0,
- 0x00f8fdfb, 0x00f8fefb, 0x00fafffc, 0x00fbfffc, 0x00fcfdfa, 0x00fdfaf9, 0x00fcfcfa, 0x00fafcf9, 0x00f9fdfd, 0x00fafefd, 0x00fbfcfe, 0x00fdfaf7, 0x00fefcf9, 0x00fcfdfa, 0x00fefff8, 0x00f9fdf8,
- 0x00fcfef9, 0x00fbfff9, 0x00fafdf8, 0x00fdfff9, 0x00fffdfb, 0x00fffefb, 0x00fcf9fc, 0x00fbfbfc, 0x00fffbfe, 0x00fbfbfb, 0x00fffefe, 0x00fcfdfd, 0x00fcfefd, 0x00fcfdfd, 0x00fdfefe, 0x00fdfcfd,
- 0x00fbfffe, 0x00f9fdfe, 0x00fcffff, 0x00fdfefd, 0x00feffff, 0x00fefbfa, 0x00fdfcfc, 0x00fffcfc, 0x00fffdfb, 0x00fefbf7, 0x00f5f9f3, 0x00f3fbf4, 0x00f7fef9, 0x00f0f7f4, 0x00f2f8f5, 0x00f4f8f6,
- 0x00f3f1f1, 0x00efecea, 0x00e6e1df, 0x00e1dada, 0x00d6cbcd, 0x00cec8ca, 0x00c3c0c2, 0x00b5b3b3, 0x00a5a6a7, 0x009b9f9e, 0x00909593, 0x00868a87, 0x007e7e7d, 0x00787473, 0x00726c6c, 0x00706a6a,
- 0x006a5a5b, 0x00625454, 0x00554948, 0x00453c38, 0x00342f29, 0x0026241f, 0x001a1a19, 0x00111115, 0x00080914, 0x00010412, 0x0002040f, 0x00070709, 0x00060607, 0x00050605, 0x00070806, 0x00060908,
- 0x00060707, 0x00050605, 0x000a090a, 0x000a0a0b, 0x000a0909, 0x0009090a, 0x00060407, 0x00000000, 0x00030403, 0x00050605, 0x00060606, 0x002c2b2c, 0x00b9b8b9, 0x00f9f8f8, 0x00fffffe, 0x00fffffe,
- 0x00fdfeff, 0x00f1f2f4, 0x00e1e1e1, 0x00ededec, 0x00fdfdff, 0x00fcfcfe, 0x00fefdfe, 0x00fffeff, 0x00e8e8ea, 0x00c1c1c0, 0x00a1a5aa, 0x008693a4, 0x0069748e, 0x004d5c7a, 0x00374a6e, 0x002f456c,
- 0x002e4574, 0x002f4677, 0x002e4477, 0x002d4278, 0x002e4176, 0x002f4275, 0x002e4173, 0x002e4374, 0x00304270, 0x002f4371, 0x002e4370, 0x002d4370, 0x002d4171, 0x002c4070, 0x002a3e6d, 0x00283d6c,
- 0x002d355b, 0x002b355a, 0x00283258, 0x00222e53, 0x001c2a4d, 0x001f2849, 0x00242848, 0x002a2846, 0x00322540, 0x00392b40, 0x004f3146, 0x006a2f41, 0x00803235, 0x00903631, 0x009c382b, 0x009f3928,
- 0x009e3e2f, 0x009c4030, 0x00984031, 0x00943e27, 0x0093381b, 0x0089341c, 0x007c2e1a, 0x00752a17, 0x006d271c, 0x006f312a, 0x00804a49, 0x008d6165, 0x00977c84, 0x009c8c92, 0x00989398, 0x0091969a,
- 0x00949595, 0x00949496, 0x0096969a, 0x009a98a1, 0x009c9aa6, 0x009d9aa8, 0x009794a0, 0x008f8c96, 0x0087868e, 0x0078787d, 0x006a676e, 0x00645e66, 0x005c5257, 0x00534645, 0x00463834, 0x003b2d27,
- 0x00251b21, 0x000d0e1b, 0x0009162a, 0x0022385a, 0x004d6d99, 0x005c84c5, 0x005c87cf, 0x004b70b7, 0x00234681, 0x0013336d, 0x0015346c, 0x0017356c, 0x001a356f, 0x0018366e, 0x0016376f, 0x0011326b,
- 0x001b3b6f, 0x002f4e7a, 0x003b567b, 0x0046586f, 0x00797f86, 0x0096979f, 0x00767a88, 0x00596783, 0x004972ba, 0x00417ed5, 0x003a7cdf, 0x004379e1, 0x00386fd6, 0x00326ed1, 0x003975d7, 0x003473d4,
- 0x002f6acc, 0x002e6acc, 0x003368cb, 0x003c6ed6, 0x00416fda, 0x00366eca, 0x00487bc9, 0x00587fbe, 0x00556385, 0x00525568, 0x00646169, 0x00646366, 0x005f5d5c, 0x0055504d, 0x00463b37, 0x00403028,
- 0x003d2c2e, 0x00423132, 0x004b393a, 0x004b3b39, 0x004b3d39, 0x00655754, 0x00d2c7c6, 0x00fcf8f6, 0x00fefdff, 0x00fcfdfe, 0x00f9fcfd, 0x00ece9ed, 0x007176a1, 0x001f2a71, 0x00233793, 0x003248b1,
- 0x003d4fad, 0x00515ca6, 0x00787ab3, 0x00a594bd, 0x00b193ac, 0x00967295, 0x00956b95, 0x00bd9bb8, 0x00b091a2, 0x00b69ea7, 0x00bca7af, 0x00968692, 0x0077717a, 0x006a6a6c, 0x007a7e78, 0x00949d8e,
- 0x00cfcdd1, 0x00d8d4d9, 0x00d5d2d8, 0x00b9b7bc, 0x00b9b5ba, 0x00cbc7cd, 0x00d2cfd5, 0x00c8c4ca, 0x00c1bdc2, 0x00cbc8cc, 0x00d1d0d4, 0x00969698, 0x00272427, 0x00100e13, 0x003c3b41, 0x0087868c,
- 0x00dfdde2, 0x00dcdde2, 0x0086848d, 0x003e3e45, 0x0011111a, 0x000b0d12, 0x000f101a, 0x00111620, 0x000e1831, 0x000e1938, 0x00101f43, 0x0011234e, 0x001b2e5b, 0x00253867, 0x00374975, 0x00435380,
- 0x004b6492, 0x004e6b9c, 0x005772ac, 0x005b76ba, 0x005777c9, 0x005172d1, 0x00476bd5, 0x004069d9, 0x004169ea, 0x003b66ea, 0x003362e5, 0x003468e3, 0x003269e8, 0x002f69ea, 0x002d69ed, 0x002b6bef,
- 0x002a67e5, 0x003971ea, 0x005281f7, 0x005d88fa, 0x006388f9, 0x005780f5, 0x00416ae7, 0x003760dd, 0x00315bdd, 0x002a53d5, 0x00264ed1, 0x00264ccf, 0x002648c9, 0x002648c4, 0x00274bc1, 0x00274bbf,
- 0x00284aba, 0x002749bc, 0x002442b7, 0x00223fb4, 0x002139b1, 0x001e37ad, 0x001d34a6, 0x001930a0, 0x001a2c9a, 0x00162a96, 0x00162482, 0x00171b5d, 0x00091221, 0x00090f0d, 0x000b0e0a, 0x000b0815,
- 0x000e0915, 0x000e0a08, 0x000e0d01, 0x000b0c00, 0x000b0915, 0x0008060c, 0x005f5d60, 0x00cbcacd, 0x00edeeee, 0x00e8e9e7, 0x00e5e4e3, 0x00e7e4df, 0x00b7aaa2, 0x0057483b, 0x00261404, 0x00301d09,
- 0x0048270a, 0x004c2b0f, 0x004d2c11, 0x004a2a10, 0x0047260e, 0x0043230c, 0x0040220b, 0x003e200a, 0x00371903, 0x00351803, 0x00341905, 0x00301705, 0x00291305, 0x00291507, 0x00352212, 0x00412f1f,
- 0x00594b41, 0x00695e53, 0x00786e63, 0x00887e74, 0x009e978f, 0x00b6a9a4, 0x00c3b6ae, 0x00cec4bc, 0x00e1ddd2, 0x00f0ece4, 0x00faf6f3, 0x00fbf8f6, 0x00fcfaf7, 0x00fbfbf9, 0x00fcfdfd, 0x00fbfdfe,
- 0x00f8fbfc, 0x00fafcfd, 0x00fbfcfe, 0x00fcfdfe, 0x00fcfeff, 0x00f9fcfe, 0x00fafdff, 0x00fafdff, 0x00f5fbfe, 0x00f7fdff, 0x00fafdff, 0x00fcfbfc, 0x00fdfcfc, 0x00fbfcfd, 0x00fbfdfd, 0x00f8fbfa,
- 0x00fcfcfc, 0x00fefffd, 0x00fdffff, 0x00fbfdfd, 0x00fbfbfa, 0x00fdfcfe, 0x00f8f9fc, 0x00fbfcfe, 0x00fffffe, 0x00fefdfb, 0x00fdfbfb, 0x00fefdf9, 0x00e2e5df, 0x007b8378, 0x00091207, 0x000b170a,
- 0x000a260d, 0x000f2911, 0x00122c13, 0x00112b12, 0x00112b12, 0x00122d13, 0x00102d13, 0x000f2b12, 0x00102910, 0x000e2a11, 0x000f2a11, 0x00102910, 0x000d280f, 0x000d270e, 0x000e280e, 0x000c2a0e,
- 0x00112b13, 0x00122b13, 0x00122c13, 0x00112c12, 0x00102a13, 0x000f2a12, 0x000e2c11, 0x000e2b11, 0x000e2c10, 0x000d2b10, 0x000d2c11, 0x000f2d13, 0x00112d13, 0x00102c12, 0x000f2c13, 0x00102d14,
- 0x00122c14, 0x00102b13, 0x00112b11, 0x00102c11, 0x00112a13, 0x000f2a13, 0x000f2a12, 0x000e2b13, 0x00112b14, 0x00122c12, 0x00132913, 0x001a2818, 0x00828c7d, 0x00e6eadf, 0x00f3f5ec, 0x00eeede7,
- 0x00f1eff0, 0x00f2f3f2, 0x00f1f2f1, 0x00f2f1f1, 0x00f0f4f1, 0x00f4f4f7, 0x00f2f2f6, 0x00f3f2f7, 0x00f2f0f7, 0x00f6f5fa, 0x00f8f6fa, 0x00f5f3f6, 0x00f7f6fa, 0x00f9f7fb, 0x00f9f7fc, 0x00f9f8fb,
- 0x00f7f6f7, 0x00f8f7f7, 0x00f7f9f8, 0x00f0f2f0, 0x00efeeee, 0x00efeeee, 0x00f0f1f0, 0x00f2f2f2, 0x00f3f4f6, 0x00f2f3f3, 0x00f3f2f4, 0x00f4f3f6, 0x00f1eff3, 0x00e8e7e8, 0x00e4e4e5, 0x00e8e8ea,
- 0x00f6f5f4, 0x00f8f7f5, 0x00f8f9f5, 0x00f9faf5, 0x00fbfbf7, 0x00fdfdfb, 0x00fbfcfa, 0x00fbfbf3, 0x00e9eed4, 0x00dde3ba, 0x00e0e9b5, 0x00dde8a9, 0x00dee7a8, 0x00dee7aa, 0x00dee7ac, 0x00dfe7ae,
- 0x00dfe7aa, 0x00dfe8ab, 0x00e0ebad, 0x00dfeaac, 0x00d8e1a4, 0x00d6dfa2, 0x00d8e3a5, 0x00dce7a9, 0x00deeaad, 0x00dde8ab, 0x00dde8ac, 0x00dce8af, 0x00d1e0a1, 0x00afc080, 0x006b7c42, 0x002b3b12,
- 0x00667260, 0x00dde5df, 0x00fafefd, 0x00fbfefd, 0x00fcfdfe, 0x00fefeff, 0x00d1d1d3, 0x00898789, 0x00898384, 0x00b9b5b2, 0x00e9e6e8, 0x00f9f7fd, 0x00e8eaf6, 0x00b5bbd3, 0x00b7bfde, 0x00ced6f9,
- 0x00ebe9f3, 0x00fbfbfc, 0x00fdfefc, 0x00fcfdfe, 0x00fdfefb, 0x00fcfdfb, 0x00989897, 0x000e0e0e, 0x00110f16, 0x000d0d14, 0x00140d17, 0x00170413, 0x001b0007, 0x00260508, 0x003a1514, 0x0048231b,
- 0x004d2820, 0x0040211c, 0x00260d08, 0x00140201, 0x000c0205, 0x000a040f, 0x00130a16, 0x00180911, 0x0030120e, 0x00583920, 0x00856538, 0x00917032, 0x008b752b, 0x00766a24, 0x00645f24, 0x005a5826,
- 0x00464339, 0x00454235, 0x00444035, 0x005d574e, 0x008b857d, 0x0098938e, 0x009d9895, 0x009e9a95, 0x00a39d99, 0x00a9a39f, 0x00b3afaa, 0x00bcbbb7, 0x00cbcbc7, 0x00dbdad7, 0x00eae9e6, 0x00f1f1ef,
- 0x00f9f9f6, 0x00fafcf9, 0x00fcfcfb, 0x00fafcfa, 0x00fbf9f9, 0x00fcfcfc, 0x00fcfdfd, 0x00fafefc, 0x00fafefd, 0x00fafefc, 0x00fbfcfa, 0x00fdfcfb, 0x00fcfdfb, 0x00fdfefc, 0x00fefffd, 0x00fcfffd,
- 0x00fdfcfc, 0x00fbfdfd, 0x00fdfefd, 0x00fdfefc, 0x00fefeff, 0x00fdfcfc, 0x00fefaff, 0x00fdfcfd, 0x00fdfcfe, 0x00fffeff, 0x00fcfdfb, 0x00fafef6, 0x00fefdfa, 0x00fbfcfa, 0x00fbfdfb, 0x00fdfeff,
- 0x00fbfbff, 0x00fdfefe, 0x00fdfdfe, 0x00fafafd, 0x00fefeff, 0x00fcfafc, 0x00fefcff, 0x00fafafc, 0x00f4fbf7, 0x00f5fef8, 0x00f2fbf9, 0x00f3fbfe, 0x00f2f5fd, 0x00f1f2fc, 0x00f7f4fe, 0x00f7f2fe,
- 0x00ccd9ff, 0x00b8c8f7, 0x00b1c2f4, 0x009baede, 0x00a0b4e7, 0x00aabdf3, 0x00b3c8f8, 0x00a3b9f2, 0x00a6befc, 0x009bb4ec, 0x007d99d8, 0x00698ace, 0x007595d9, 0x007fa1e7, 0x007ca1e8, 0x007096e0,
- 0x006f96e5, 0x006a96e1, 0x006994e1, 0x006693e3, 0x006596e4, 0x006796eb, 0x005d8dea, 0x00568ded, 0x005c8ee8, 0x005f8dd2, 0x00a5c7f1, 0x00e6fafe, 0x00f9fef6, 0x00f9fef1, 0x00f9fef2, 0x00f5fff9,
- 0x00b3bdd9, 0x0032408f, 0x00414da9, 0x003f4cb7, 0x003c4cbc, 0x003c4eb9, 0x003f50b7, 0x004e61c4, 0x00626ad6, 0x00333ea7, 0x003b469f, 0x00747eb1, 0x00dbdaec, 0x00efe4e4, 0x00f1e0da, 0x00e4d4ce,
- 0x00bfb7d4, 0x009998be, 0x009ea2cc, 0x009997bd, 0x007f758b, 0x008582b4, 0x007278b2, 0x00737aa5, 0x009c9dc3, 0x008382ae, 0x002f2f66, 0x0026266e, 0x002e2f8c, 0x00282d83, 0x00232b7c, 0x001f2c75,
- 0x00242d79, 0x00343676, 0x00423b69, 0x00503c54, 0x005d3c2a, 0x00653a19, 0x00653b09, 0x006c4310, 0x00734c34, 0x005d3932, 0x0038211f, 0x00232729, 0x000b2b25, 0x0020444e, 0x007594b5, 0x007789cf,
- 0x00415acd, 0x00244ab3, 0x00164195, 0x003e5291, 0x00916b8d, 0x00b57e76, 0x00f9d1bb, 0x00fcf6f7, 0x00f4f7ff, 0x00fcf7ff, 0x00cfcbe0, 0x005c5a78, 0x00041b4f, 0x000a1e56, 0x00202f5d, 0x00736f91,
- 0x00c9b7b8, 0x00b7abaa, 0x0073736a, 0x00414940, 0x00122a2b, 0x0004182e, 0x00091c37, 0x00203154, 0x002e2843, 0x003d3042, 0x0070636f, 0x00787181, 0x00595856, 0x00454c3d, 0x002d3923, 0x00232b18,
- 0x002a2c30, 0x00252c31, 0x001d282a, 0x0018231c, 0x00152411, 0x00112524, 0x0012252b, 0x000f2325, 0x00333b40, 0x00545c5b, 0x00606965, 0x00676f6e, 0x00757c7d, 0x00777f83, 0x00848b90, 0x00929a9e,
- 0x009e9ec1, 0x00a3a4c7, 0x00b2b3d8, 0x00bebce1, 0x00cfc9e5, 0x00d6d1e5, 0x00d4d2e3, 0x00dadee6, 0x00dde0f3, 0x00e4eaf7, 0x00eaecf5, 0x00f7f0f7, 0x00fcf7fd, 0x00fdf9fd, 0x00f6f7fa, 0x00f8fdfc,
- 0x00faf8fe, 0x00fdfbfc, 0x00fbfaf8, 0x00fcfcf2, 0x00fcfbf2, 0x00fef9f9, 0x00fdfeff, 0x00fcfbfc, 0x00f9feff, 0x00f7ffff, 0x00f8fdfd, 0x00fcffff, 0x00f7f9fb, 0x00fcfcfc, 0x00f9f9f6, 0x00fcfaf6,
- 0x00f7feff, 0x00f5feff, 0x00f4fefe, 0x00f5fefd, 0x00f8fcfe, 0x00fcfcff, 0x00fafefe, 0x00f6fdfc, 0x00fcffff, 0x00f9feff, 0x00f8fcfd, 0x00fdfbfc, 0x00fdfcfc, 0x00f8faf5, 0x00fdfdf5, 0x00fbfff5,
- 0x00fefdf8, 0x00fdfef3, 0x00fefef0, 0x00fefdf2, 0x00fdfdee, 0x00fefdf7, 0x00fef8f8, 0x00fbfbfa, 0x00fffbfe, 0x00fbf9f9, 0x00fffcfd, 0x00fdfefb, 0x00fcfefc, 0x00fcfdfd, 0x00f9fbf9, 0x00f9fbf8,
- 0x00fdfdff, 0x00fcfcff, 0x00f9f9fc, 0x00f6f7f8, 0x00f6f9fc, 0x00fbfbfd, 0x00eff1ef, 0x00ecece8, 0x00f7f1f2, 0x00eae4e3, 0x00cfccc5, 0x00ccccc1, 0x00c4c5ba, 0x00a9a9a5, 0x009e9f99, 0x00929492,
- 0x00948f91, 0x00888385, 0x00797375, 0x006d6867, 0x005f5454, 0x004e494b, 0x003d3d3d, 0x0030312e, 0x002c2b2d, 0x0027282a, 0x00212321, 0x001d1e1a, 0x001a1816, 0x00171410, 0x001a1611, 0x001e1918,
- 0x00381c1a, 0x0038201a, 0x00332115, 0x002b1f0e, 0x001f1706, 0x001a1607, 0x00131107, 0x000e0e07, 0x000f0a13, 0x000e0918, 0x000b0811, 0x000b0a0a, 0x00090905, 0x00070708, 0x0009090a, 0x00060707,
- 0x000e090d, 0x000a0809, 0x000c0a0b, 0x000b080a, 0x00090808, 0x00090a0a, 0x00080808, 0x00050503, 0x00080608, 0x00080608, 0x00050506, 0x00262727, 0x00afb0af, 0x00f7f7f7, 0x00fffffe, 0x00fffefe,
- 0x00fefeff, 0x00f5f5f6, 0x00e1e0e1, 0x00e7e7e7, 0x00fefeff, 0x00fbfcfc, 0x00fffffe, 0x00fefeff, 0x00ebe8ec, 0x00c5c1c4, 0x00a0a4ab, 0x008394a8, 0x005f6c89, 0x00445679, 0x00354c71, 0x00304b74,
- 0x00334982, 0x00314982, 0x00304781, 0x00314882, 0x0031487f, 0x0031487d, 0x002f4879, 0x002e497a, 0x00344979, 0x00314879, 0x00304879, 0x00314879, 0x0032477a, 0x00304576, 0x002b4472, 0x00284371,
- 0x0035406c, 0x00323f69, 0x002f3d65, 0x00293861, 0x0022355a, 0x00243154, 0x00242e51, 0x00252a49, 0x002d274a, 0x00332c47, 0x00473149, 0x00652f46, 0x007a3437, 0x008c3732, 0x009a3c2f, 0x009e3c2a,
- 0x00a24132, 0x00a14533, 0x009b4330, 0x009b4428, 0x009a3d1a, 0x00953d22, 0x00883921, 0x0080341d, 0x00763025, 0x00763c33, 0x00835352, 0x008d686a, 0x00998389, 0x009d9095, 0x00979398, 0x008e9397,
- 0x00929194, 0x00929093, 0x00949196, 0x0098969c, 0x009998a0, 0x009999a2, 0x00909099, 0x0085848c, 0x0079767f, 0x0067646a, 0x00524e53, 0x00494149, 0x003f3334, 0x00362723, 0x002d1b13, 0x0025120b,
- 0x00150b14, 0x00070a1f, 0x00213254, 0x00446296, 0x004d78b7, 0x004373cb, 0x003d72cb, 0x003265b7, 0x001a458a, 0x00103777, 0x00143974, 0x00153872, 0x0013316b, 0x001a3a70, 0x001a3e6f, 0x00153865,
- 0x0020407b, 0x003c5b8d, 0x00506a92, 0x004b5c74, 0x005b5e62, 0x00787578, 0x0079777d, 0x004e5768, 0x003e5e99, 0x005081ca, 0x004380d8, 0x004378e7, 0x00316ed8, 0x00336fd6, 0x003677d7, 0x003274d3,
- 0x003069ca, 0x002c67cc, 0x003166cb, 0x004173dc, 0x00406ede, 0x003971d9, 0x003169c2, 0x00517ec6, 0x005e6f9b, 0x004e546d, 0x0063646f, 0x0065666b, 0x00646160, 0x005a514e, 0x004a3f39, 0x00423427,
- 0x00442e36, 0x00453235, 0x004a3839, 0x004a3a38, 0x00473732, 0x0061514d, 0x00cdc4c1, 0x00f7f9f2, 0x00fffdff, 0x00fffdfe, 0x00fbfcfc, 0x00f2f0ee, 0x00797fa3, 0x001c276c, 0x00233793, 0x00273dab,
- 0x00374bb8, 0x00434dab, 0x00565ca7, 0x005a528e, 0x006e568b, 0x005e4183, 0x0067498d, 0x00876fa2, 0x007e628e, 0x00897596, 0x008f7e9c, 0x007a6c8b, 0x00565068, 0x00514f5b, 0x007f8181, 0x00a0aa9d,
- 0x00cfcbd3, 0x00e5dfe7, 0x00c6c2c7, 0x00aaa8ac, 0x00bfbcc0, 0x00c9c6ca, 0x00c1c0c2, 0x00b9b7b8, 0x00cec9cf, 0x00d6d1d8, 0x00aeabb1, 0x004d4d50, 0x00201d21, 0x004b4a4e, 0x0097989b, 0x00d0d0d2,
- 0x00f0eaf7, 0x00e9e9ee, 0x00d9d9db, 0x009c9ea2, 0x0047484b, 0x001b200f, 0x00171c06, 0x00172004, 0x00131e11, 0x00111b11, 0x00101c13, 0x0008160f, 0x0009180f, 0x000c1a13, 0x00142117, 0x001e281c,
- 0x002c324c, 0x002c3854, 0x00344264, 0x003d4c75, 0x003d5289, 0x0043589c, 0x004760ae, 0x004564b8, 0x004865cc, 0x004464cb, 0x003e60cc, 0x003c61d8, 0x003a63e1, 0x003562e7, 0x003163e8, 0x003066ea,
- 0x003467e8, 0x003562de, 0x003961da, 0x003f61da, 0x004565e0, 0x004567e3, 0x003b62df, 0x00365ddd, 0x00345ae3, 0x002b53db, 0x002650d8, 0x00264fd5, 0x00274cce, 0x00284cc8, 0x002a4ec2, 0x002a4fbf,
- 0x002c49bf, 0x002947be, 0x002341b5, 0x00223fb2, 0x001d3bb1, 0x001c37ad, 0x001b33a7, 0x001830a2, 0x001d2da3, 0x00192b9d, 0x00172586, 0x00171b5b, 0x0008131d, 0x0009100a, 0x000a0f0b, 0x000b0b15,
- 0x0012091b, 0x00110b0c, 0x000f0e00, 0x000c0f00, 0x000d0d16, 0x000c0b10, 0x00717172, 0x00e3e4e4, 0x00fcfbfc, 0x00f7f7f6, 0x00f5f5f3, 0x00f9f8f2, 0x00c0b1a8, 0x00523f30, 0x00301806, 0x003c230e,
- 0x005d2d0a, 0x00633310, 0x00673814, 0x00643612, 0x005d310d, 0x005c320e, 0x00582f0c, 0x00542c0a, 0x0052290c, 0x004e270a, 0x004c2607, 0x004b2408, 0x00432007, 0x00412009, 0x003c1f05, 0x00351c01,
- 0x003a1e0d, 0x00321c0a, 0x0033200f, 0x00392616, 0x003e3023, 0x004b372a, 0x00584233, 0x00655241, 0x007e6f64, 0x00918378, 0x00a0958c, 0x00aba39c, 0x00bab4ae, 0x00cbc6c2, 0x00d9d5d3, 0x00e0ddda,
- 0x00f1ebec, 0x00f9f3f4, 0x00fdf7f8, 0x00fdfafa, 0x00fffdfd, 0x00fefdfd, 0x00fafafa, 0x00fcfdfc, 0x00fffeff, 0x00fefeff, 0x00fafbfc, 0x00fcfefc, 0x00fcfcfb, 0x00fbfcfc, 0x00fbfcfb, 0x00fbfbfa,
- 0x00ffffff, 0x00ffffff, 0x00fcfdfd, 0x00f8fafa, 0x00fcfbfc, 0x00fdfdfe, 0x00fdfefe, 0x00fcfcfc, 0x00fffdff, 0x00fefcfc, 0x00fefbf9, 0x00fefcfb, 0x00d5dad2, 0x00666f67, 0x00051003, 0x00041302,
- 0x000e2512, 0x00122914, 0x00122b14, 0x000f2a12, 0x00112a13, 0x00122b14, 0x00102b12, 0x000f290f, 0x00112811, 0x000e2811, 0x00102812, 0x00102711, 0x000d260e, 0x000d260d, 0x000d270d, 0x000b280c,
- 0x00112a14, 0x00122914, 0x00132b13, 0x00112c12, 0x00102913, 0x000e2a11, 0x000d2b0f, 0x000d2b0f, 0x00112b14, 0x00102a12, 0x000e2a12, 0x000f2b12, 0x00112c13, 0x00112c12, 0x000f2c12, 0x00102c12,
- 0x00132a14, 0x00112912, 0x00112a10, 0x00122d11, 0x00132d14, 0x00112c13, 0x00112a11, 0x00112a12, 0x00162d18, 0x00142c13, 0x00132914, 0x000a1909, 0x005c6556, 0x00d3d7cb, 0x00edf2e7, 0x00edf0e8,
- 0x00f4eeed, 0x00f3efee, 0x00f0f1ef, 0x00f4f4f2, 0x00f2f7f4, 0x00f6f3f7, 0x00f4f4f6, 0x00f2f4f8, 0x00f9f8fc, 0x00fbfaff, 0x00f7f6f8, 0x00fbfbfc, 0x00f9f9fc, 0x00fafafd, 0x00f8f8fa, 0x00f9fafd,
- 0x00fdfbfe, 0x00fdfbfc, 0x00f5f5f5, 0x00eeefef, 0x00f0eef1, 0x00f3f3f4, 0x00f4f6f4, 0x00f2f4f1, 0x00f5f6f7, 0x00f9f9fa, 0x00f9f7fb, 0x00f1f0f4, 0x00e8e7ec, 0x00e7e7ea, 0x00edeff0, 0x00f0f3f5,
- 0x00faf8fb, 0x00fdfafc, 0x00f8f8f5, 0x00f8faf6, 0x00fcfcfa, 0x00fbfcfc, 0x00f7f9f9, 0x00fbfbf4, 0x00eeefdc, 0x00e0e2c3, 0x00dfe4bc, 0x00dfe7b3, 0x00dee6ad, 0x00dee7ac, 0x00dee9af, 0x00dde6ae,
- 0x00e1e9af, 0x00e0e8ad, 0x00e1ebaf, 0x00dde8ac, 0x00d8e0a6, 0x00d7e0a6, 0x00d7e2a6, 0x00dbe6a9, 0x00e2e9b3, 0x00e0e7ae, 0x00dee7ae, 0x00dae8ad, 0x00c7d79a, 0x009aac6c, 0x0051622b, 0x001a2a05,
- 0x00697565, 0x00dfe7e4, 0x00f9fcfd, 0x00fbfefe, 0x00fbfcfe, 0x00fefdff, 0x00d0d1d1, 0x00888686, 0x00898384, 0x00b9b5b5, 0x00e9e5e8, 0x00faf8fd, 0x00edeff8, 0x00bfc6db, 0x00bdc5e0, 0x00c8d0f0,
- 0x00edeaf7, 0x00fcfbfe, 0x00fefefe, 0x00fcfcfe, 0x00fdfdfb, 0x00fdfdfc, 0x00898988, 0x00070706, 0x0005010b, 0x00080910, 0x000a050c, 0x0011000c, 0x00160104, 0x001e0304, 0x00300f0d, 0x0036160e,
- 0x003d1615, 0x002f100f, 0x00210a06, 0x00180808, 0x000e0509, 0x000c0910, 0x00130e15, 0x001a0e11, 0x003c1a0e, 0x00643f20, 0x00906c38, 0x009f7e38, 0x0090792a, 0x006f631b, 0x004f4a0e, 0x003d3e0b,
- 0x003b322b, 0x00362e23, 0x002e261b, 0x00473f35, 0x00787166, 0x008f897f, 0x008f8880, 0x00807a70, 0x00685c59, 0x004e4541, 0x00443c37, 0x00514b49, 0x0068655e, 0x007d7a76, 0x00898982, 0x00888981,
- 0x008f8b8e, 0x00969595, 0x00a7a5a6, 0x00b3b5b3, 0x00c1c3c0, 0x00ccd0ce, 0x00d3d8d8, 0x00d8e1de, 0x00ede8e7, 0x00f4f1ef, 0x00faf6f1, 0x00fefbf7, 0x00fcfcf6, 0x00fafdf7, 0x00fafff9, 0x00f6fef8,
- 0x00fffbfd, 0x00fff9fb, 0x00fdfcfa, 0x00fffefb, 0x00fdfbfa, 0x00fdfdfa, 0x00fdfefe, 0x00fafef7, 0x00fffdff, 0x00fffcff, 0x00fbfdfb, 0x00fafffb, 0x00fffeff, 0x00fcfdfe, 0x00fafefa, 0x00f8fcf8,
- 0x00ffffff, 0x00ffffff, 0x00fcfafc, 0x00fdfbfe, 0x00fefdfe, 0x00fafaf8, 0x00fdfdfc, 0x00fcfaf6, 0x00ffffef, 0x00fffced, 0x00fcfaef, 0x00fdfdfb, 0x00faf3fa, 0x00fdfafd, 0x00fcf9fb, 0x00fbf8fa,
- 0x00f8fdff, 0x00f4fcfb, 0x00eff9f8, 0x00ebf6f6, 0x00e8f5f9, 0x00e8f5f8, 0x00e6f3f7, 0x00ddecf7, 0x00e4f1fd, 0x00d0e1f6, 0x00c4d5f0, 0x00b9cbf1, 0x00bbd0f4, 0x00bdd2f7, 0x00b0c5f4, 0x009ebced,
- 0x00a1bcf7, 0x0098baf2, 0x0090b3ee, 0x0086aae8, 0x0080a8e4, 0x007da2eb, 0x007599e9, 0x006c9ae6, 0x006691d9, 0x00668dc5, 0x00aac6ec, 0x00ebf9ff, 0x00f8fff7, 0x00f8fef3, 0x00f6fff3, 0x00f3fff6,
- 0x00abc0cb, 0x0038488f, 0x003c47a5, 0x003f4eb9, 0x003a47bd, 0x003b49b6, 0x003c4db6, 0x004d5dc3, 0x005b6ec6, 0x005462c2, 0x00323b90, 0x006879a5, 0x00d8cbd7, 0x00d5bdaf, 0x00cbab95, 0x00bc9b87,
- 0x00adaea9, 0x00b4bbca, 0x00cccfed, 0x00dad7f0, 0x00f0e0e9, 0x00e6e2f7, 0x00d7d7fd, 0x00e6e9ff, 0x00ddeaec, 0x00c9d4e2, 0x00565e82, 0x001a245b, 0x001d297e, 0x0019277f, 0x001a2b85, 0x00132981,
- 0x000b2a81, 0x00142a78, 0x002a2f76, 0x00413a6a, 0x0061484d, 0x006e5441, 0x007e6247, 0x007f5f46, 0x007f6b5e, 0x00756466, 0x003e3547, 0x0017263a, 0x000c3036, 0x003c5f6c, 0x00819ac0, 0x00626cb1,
- 0x002349a7, 0x0015419c, 0x001d3d8b, 0x005d5c91, 0x00ac6a7d, 0x00994f48, 0x00f0b3b1, 0x00ecd6f3, 0x009bafdd, 0x0098acdb, 0x0094a0d7, 0x004e5d8b, 0x00032051, 0x00001e42, 0x0044546f, 0x00aeadba,
- 0x00bcc399, 0x00a5ac89, 0x007d806c, 0x00454b3d, 0x00212227, 0x0014141c, 0x00302f3f, 0x00504d61, 0x00404b40, 0x002c3d2b, 0x00353d3a, 0x003e384d, 0x0039333b, 0x003c3938, 0x0044433d, 0x0035362e,
- 0x00182110, 0x00151f18, 0x001d2827, 0x0015201d, 0x00131f1e, 0x0012221f, 0x00101f1e, 0x001a2326, 0x00676f6a, 0x00c9cdc8, 0x00e5e6e1, 0x00efede7, 0x00faf8f3, 0x00fefffb, 0x00fffffc, 0x00fffffe,
- 0x00f2fcf6, 0x00f5fdf9, 0x00fbfcfe, 0x00fefbff, 0x00fffefe, 0x00fcfcf6, 0x00fefdf4, 0x00fffff6, 0x00fafef3, 0x00f8fdf8, 0x00fdfefc, 0x00fbfdf9, 0x00fefffe, 0x00fcfeff, 0x00fafdff, 0x00fcffff,
- 0x00f0fcf4, 0x00f3fcf5, 0x00fbfff8, 0x00fffff8, 0x00fffef9, 0x00fefcf9, 0x00fdfbfc, 0x00fffcff, 0x00f5fefa, 0x00f7fcfa, 0x00f8fdfc, 0x00f9fffd, 0x00fafefe, 0x00fdfefe, 0x00ffffff, 0x00ffffff,
- 0x00effdf4, 0x00f2fdf6, 0x00f9fffe, 0x00f9fdfd, 0x00fcfefb, 0x00fdfdfa, 0x00fcfbf9, 0x00fbf9f8, 0x00f8fef9, 0x00f8fff8, 0x00fcfdfc, 0x00fafcfb, 0x00fdfeff, 0x00fbfcfd, 0x00fffdff, 0x00fffdff,
- 0x00f4fbeb, 0x00f8f9eb, 0x00fff7ee, 0x00fff9ef, 0x00fef7ea, 0x00faf3e6, 0x00fdf2eb, 0x00fcf0ed, 0x00eaecdf, 0x00e0e1d5, 0x00d4d6cd, 0x00dfe4db, 0x00edeee8, 0x00f0f0ec, 0x00f0ecef, 0x00ddd6dc,
- 0x00b9c1c2, 0x00babec3, 0x00b6b8bf, 0x00c0c2c8, 0x00c8c8ca, 0x00d1d2d1, 0x00c8c7c4, 0x00c2bcbb, 0x00cdcfc3, 0x00abad9f, 0x00685b52, 0x00815b56, 0x007a5354, 0x00331819, 0x001d090e, 0x001c0b13,
- 0x00060903, 0x000b0d06, 0x000f0c0b, 0x000d0a07, 0x00090802, 0x00050601, 0x00050206, 0x0009030b, 0x00000600, 0x00000600, 0x00050905, 0x00050a04, 0x000d0b04, 0x00140d08, 0x00241815, 0x00342122,
- 0x00452504, 0x00462a0e, 0x00492e17, 0x00432c13, 0x002f250e, 0x00221e08, 0x001a1402, 0x00191105, 0x000b0d00, 0x000b0800, 0x000f080a, 0x000a090a, 0x000b0a0d, 0x00090606, 0x0009080a, 0x000d080d,
- 0x00030801, 0x00040804, 0x00090c0b, 0x000b0d0d, 0x000b0c0c, 0x0009090a, 0x000b0b0b, 0x000b0a0c, 0x00020802, 0x00020701, 0x00040603, 0x001b1c1c, 0x00a1a0a0, 0x00f3f2f4, 0x00ffffff, 0x00ffffff,
- 0x00f8f9f7, 0x00f1f2f0, 0x00ddddde, 0x00e2e2e3, 0x00fefefd, 0x00fefefe, 0x00fffeff, 0x00fefdfe, 0x00e6ebe7, 0x00c4c9c4, 0x009fa4ab, 0x008590a7, 0x00626f8d, 0x004a5b7d, 0x003d507b, 0x00395080,
- 0x002c4d78, 0x002b4a7a, 0x00324d82, 0x00354e88, 0x00354c86, 0x00334a7f, 0x00354c7c, 0x00344c7f, 0x002e4b78, 0x002c4976, 0x002e4878, 0x0030497a, 0x00334b7e, 0x00334a7e, 0x00354c80, 0x00384f83,
- 0x002a4d75, 0x002d4a77, 0x002e487a, 0x002c4679, 0x002d3f75, 0x002a3d6f, 0x002a3b69, 0x002b3864, 0x0023334f, 0x00273450, 0x0038314f, 0x00522d47, 0x006c3340, 0x0084393a, 0x00953d38, 0x009d3d30,
- 0x00904126, 0x0093442a, 0x009d472e, 0x00a24828, 0x00a3461d, 0x009c4622, 0x00954327, 0x008b3c26, 0x007a3c29, 0x007d4c3f, 0x008c6461, 0x00937778, 0x00998b8f, 0x0099949a, 0x0096969c, 0x0094959c,
- 0x00878d86, 0x00898c89, 0x00919194, 0x0096949b, 0x009b97a1, 0x0096949d, 0x00898890, 0x007b7b81, 0x00606661, 0x004a4f47, 0x00373634, 0x002d2524, 0x00281c1a, 0x0024120f, 0x00250e0f, 0x00210c10,
- 0x0002070c, 0x0012233d, 0x004a6598, 0x004b73ba, 0x00346ac4, 0x00316aca, 0x002e63c6, 0x003667ba, 0x00205788, 0x000f416a, 0x00123c69, 0x00113569, 0x0023447b, 0x002d4f7d, 0x0033537f, 0x00345477,
- 0x001b5083, 0x002d5e8c, 0x00476893, 0x00506487, 0x005a5b66, 0x00645e5c, 0x008f8482, 0x0076686d, 0x003d4f61, 0x005e7b9a, 0x00698bcb, 0x004479da, 0x00376ac8, 0x00396fcf, 0x004277d9, 0x003c73d6,
- 0x002265b8, 0x00225db8, 0x003469ce, 0x003e70d8, 0x003e67d6, 0x002c69d7, 0x002b67cf, 0x004877d0, 0x0057739e, 0x004f5f75, 0x00535b67, 0x005d6362, 0x00636563, 0x0058544f, 0x00534541, 0x004b3832,
- 0x003b3027, 0x0041322d, 0x004a3a36, 0x004e3d39, 0x004a3937, 0x005a4e49, 0x00c3bab7, 0x00fbf7f8, 0x00f8fdf7, 0x00f5fef8, 0x00f7fdf8, 0x00e8f5e3, 0x007a8ba1, 0x00122a66, 0x001c3393, 0x002846bc,
- 0x00264cbe, 0x00314dbb, 0x003e4ab9, 0x0032359e, 0x0030288e, 0x00242495, 0x003332a8, 0x003d3da8, 0x00424799, 0x005659a4, 0x005a5aa1, 0x004c498a, 0x00373367, 0x002c264d, 0x00615873, 0x009b91a1,
- 0x008c8e89, 0x008d8e8d, 0x00a8a7aa, 0x00acaaad, 0x00bbb8ba, 0x00bab7b7, 0x00bab5b9, 0x00bfbac1, 0x00d5d4d0, 0x00babbb9, 0x00666667, 0x003b3d3d, 0x007c7a7c, 0x00bfc1c3, 0x00edecf1, 0x00f0edf5,
- 0x00e4eae3, 0x00e3e7e4, 0x00e9eaec, 0x00ecebea, 0x00b2b2b6, 0x005e5e5d, 0x001e1b1a, 0x001c1619, 0x00161a18, 0x00161919, 0x001a1b1e, 0x00171619, 0x001e1a1c, 0x001c1718, 0x00211719, 0x0028181d,
- 0x001c140c, 0x001d1210, 0x001f1418, 0x001f1720, 0x00201e2c, 0x001f2235, 0x00232943, 0x0029304e, 0x00263751, 0x00273958, 0x002b3b66, 0x00283b78, 0x00303b8a, 0x00303e93, 0x00323e9a, 0x00303e97,
- 0x001b3c78, 0x00173675, 0x00243c89, 0x002f47a3, 0x003b4fc0, 0x00314fc1, 0x002a4dc8, 0x003052d0, 0x002855d0, 0x002453d4, 0x002752da, 0x002252d7, 0x002651d0, 0x003056d3, 0x00395bd6, 0x003859d0,
- 0x002046b5, 0x002045b7, 0x002041b5, 0x00223fb3, 0x001e39ab, 0x001e37a8, 0x001d33a5, 0x001e31a6, 0x00172f9e, 0x00142b9a, 0x00152589, 0x00171b5c, 0x0008101d, 0x00060d08, 0x000d0f0f, 0x000d0b18,
- 0x0007060e, 0x00070800, 0x000c0d01, 0x000d0f00, 0x000c0a17, 0x000f1014, 0x00898a8b, 0x00f2f2f4, 0x00f8fbf7, 0x00f6f9f4, 0x00fdfdf7, 0x00fcfdf2, 0x00b5a89c, 0x003b2c1c, 0x003a2113, 0x004a2d20,
- 0x00693600, 0x006e3907, 0x00723a0d, 0x0073390e, 0x0071390d, 0x006e390d, 0x006d380e, 0x006e3710, 0x00633505, 0x00643509, 0x00613309, 0x005e3206, 0x0060330c, 0x005e320c, 0x005b2f0d, 0x005b2f0e,
- 0x00462d02, 0x00462b07, 0x0046280b, 0x00422408, 0x003d200a, 0x003c1f05, 0x003d1d02, 0x00391a01, 0x002d1700, 0x00291400, 0x002b1701, 0x00311f0c, 0x00473626, 0x00524237, 0x0065554e, 0x0075645f,
- 0x00837b68, 0x00958c7c, 0x00aca095, 0x00baada5, 0x00d0c2bc, 0x00ded2cc, 0x00ece3de, 0x00f7f0ec, 0x00eff4e7, 0x00f5f5e8, 0x00fbfaf5, 0x00fbfbfa, 0x00fffdff, 0x00fffdfc, 0x00fffeff, 0x00fffeff,
- 0x00f6fef5, 0x00f9fff7, 0x00fdfffe, 0x00fefeff, 0x00fefdfd, 0x00fbfcfb, 0x00fcfefe, 0x00fefdff, 0x00f7fbf3, 0x00f8faf4, 0x00fcfdfa, 0x00fbfcf8, 0x00c2c4be, 0x0050554e, 0x00060d07, 0x000e1713,
- 0x00082006, 0x0010280e, 0x00122913, 0x00172b16, 0x00182b1a, 0x00132815, 0x00122716, 0x00142816, 0x000c260c, 0x000c250c, 0x000f2411, 0x000f2412, 0x000f220e, 0x000f220f, 0x00102212, 0x00102212,
- 0x000c260e, 0x000d250e, 0x00112610, 0x00122611, 0x00112511, 0x00112611, 0x00122712, 0x00122612, 0x000b260e, 0x000b270f, 0x00102813, 0x00122914, 0x00102913, 0x00112914, 0x00142916, 0x00142917,
- 0x00112711, 0x00112711, 0x00112711, 0x00112711, 0x00112711, 0x00112711, 0x00112711, 0x00112711, 0x000f270d, 0x000e260e, 0x00122712, 0x000c1a0a, 0x00424c3f, 0x00bac1b6, 0x00f8fbf3, 0x00f6f5f0,
- 0x00ecf0e2, 0x00edf1e3, 0x00f2f2eb, 0x00f5f5f1, 0x00f6faf5, 0x00fafcfa, 0x00fffcff, 0x00fffeff, 0x00f8fcf8, 0x00f7fcf9, 0x00fafafa, 0x00fbf9fa, 0x00f8fbfa, 0x00f9fbfb, 0x00fcfafd, 0x00fbfbfe,
- 0x00f7fbf8, 0x00f8fbf9, 0x00f1f2f2, 0x00ecedec, 0x00f2f2f1, 0x00f1f1f0, 0x00f3f1f2, 0x00f8f5f7, 0x00f2f5ee, 0x00f0f1ee, 0x00eeeeec, 0x00eae9ea, 0x00efeef3, 0x00f3f2f7, 0x00f8f7fb, 0x00faf7fd,
- 0x00f1f8ef, 0x00f3f8f3, 0x00f6f8f7, 0x00f7f9f7, 0x00f8f9f6, 0x00fafbf8, 0x00fefcfc, 0x00fefcfc, 0x00eaf0da, 0x00dce4c8, 0x00d9debc, 0x00dde2b9, 0x00dce5b7, 0x00dbe4b8, 0x00dee4bc, 0x00dee4be,
- 0x00d7e3ac, 0x00dae5b1, 0x00dfe8b7, 0x00dee7b7, 0x00d8e2b1, 0x00d6e0ae, 0x00d9e2af, 0x00dbe3b1, 0x00d4e4ac, 0x00d7e4ae, 0x00dce6b8, 0x00d7e0b8, 0x00b5c191, 0x007d8c5c, 0x0036451f, 0x00142206,
- 0x005a6c56, 0x00d9e7dd, 0x00f4fbfd, 0x00fcfffe, 0x00f8fcfa, 0x00fdfffd, 0x00d3d0d7, 0x008a888a, 0x0083837d, 0x00b4b5ae, 0x00e6e5e5, 0x00f6f7f9, 0x00ebeff8, 0x00cdd1e5, 0x00bec1dc, 0x00c7cbed,
- 0x00e3e7e6, 0x00f6f9f6, 0x00fbfcfd, 0x00fdfcff, 0x00fffeff, 0x00fefcfc, 0x00767575, 0x00030203, 0x00000300, 0x00000304, 0x00050308, 0x00080307, 0x000a0103, 0x00120504, 0x00210f0c, 0x002f1813,
- 0x00221c06, 0x001d1806, 0x001b150d, 0x00161410, 0x00171716, 0x00151b12, 0x00191a10, 0x001e1910, 0x00251d00, 0x004b3a12, 0x00826a3d, 0x008b7839, 0x0072672b, 0x004e471a, 0x00302d13, 0x00232414,
- 0x0022210c, 0x0025220f, 0x002b2315, 0x0042392e, 0x00726b5d, 0x00888175, 0x008f857e, 0x007f746e, 0x005d594b, 0x003a362c, 0x00302820, 0x00322c20, 0x00474037, 0x005a554d, 0x0069625e, 0x00605955,
- 0x003f4739, 0x0030392d, 0x002f302e, 0x00303030, 0x00353533, 0x00373d37, 0x00585d5a, 0x0071716f, 0x00817a6c, 0x00908576, 0x009d887f, 0x009e8b7d, 0x009f9287, 0x00afa597, 0x00c2baae, 0x00cbc9bf,
- 0x00d3cfc1, 0x00e4e0d5, 0x00f1ede7, 0x00f7f1ef, 0x00fcf6f7, 0x00f8f4f5, 0x00fdf9f9, 0x00fffdff, 0x00fafcf6, 0x00f8fbf5, 0x00fbfdfa, 0x00f8fffc, 0x00fafdfc, 0x00f8fefd, 0x00fdfdff, 0x00fcfbfc,
- 0x00f0fbf0, 0x00f5faf4, 0x00fffcff, 0x00fdfdfe, 0x00fcf7ff, 0x00f5f8fa, 0x00fefffe, 0x00fcfdf6, 0x00f9fee4, 0x00fafde3, 0x00fefae6, 0x00fcfaea, 0x00fdf8f8, 0x00fef9fa, 0x00fff8fe, 0x00fff6fe,
- 0x00f3fcd7, 0x00f8fede, 0x00fdfee6, 0x00ffffeb, 0x00feffec, 0x00fcfeec, 0x00fbfef1, 0x00fcfff8, 0x00f6fff2, 0x00f8fef6, 0x00fcfffc, 0x00fafcf9, 0x00fafbfd, 0x00f9f9fc, 0x00fafcff, 0x00f8fdff,
- 0x00e6f9f7, 0x00e2f6f8, 0x00dceffb, 0x00d5e6f8, 0x00cee1f3, 0x00c7d8ee, 0x00c0d1ec, 0x00bad0ec, 0x00a1c4d8, 0x00a1bbcb, 0x00c9d7e4, 0x00f0f7fa, 0x00fcf6f8, 0x00fdf9f9, 0x00fefcfc, 0x00fffdff,
- 0x00b2c3d7, 0x003d4d96, 0x003847a2, 0x003e4eb9, 0x003b4bbe, 0x004050ba, 0x00394bad, 0x004454b0, 0x00616ec5, 0x006270c9, 0x00303e8a, 0x00606a9e, 0x00c3aeba, 0x00b08b79, 0x009d7454, 0x00a47f62,
- 0x00b0abab, 0x00bfc3d9, 0x00ced5f2, 0x00c5c7e0, 0x00ddced4, 0x00e7e3f5, 0x00d7dbf2, 0x00dbdfed, 0x00dbe4e8, 0x00dbe2ee, 0x00788094, 0x001c2646, 0x00172156, 0x001b276a, 0x00172872, 0x00122774,
- 0x000d2683, 0x0015277c, 0x001d2772, 0x002b2c69, 0x00473a59, 0x005d4e5a, 0x00695a5a, 0x00816d6b, 0x00b1a3ac, 0x00afa1ba, 0x006c658b, 0x002b3a62, 0x000f2f3f, 0x00446273, 0x007c94b1, 0x00606aa5,
- 0x002742a0, 0x00203e99, 0x002a4286, 0x0081749d, 0x00b15f62, 0x008c2d28, 0x00c57a81, 0x00a789b4, 0x00364da0, 0x00394f9f, 0x005063ad, 0x00334381, 0x00022252, 0x00092444, 0x00455865, 0x00aeb2ae,
- 0x00cacaa4, 0x00abac8a, 0x00565641, 0x0039382c, 0x00292023, 0x001e1118, 0x00251922, 0x0030272c, 0x001f2a1d, 0x00102712, 0x0016291c, 0x00252738, 0x0026232e, 0x0026232c, 0x00323231, 0x003a3a3a,
- 0x001c2119, 0x001b211f, 0x001d2625, 0x00172222, 0x00111c1f, 0x00121f1d, 0x000e1a13, 0x001a211b, 0x00787976, 0x00e4e3e0, 0x00fbfaf7, 0x00fdfbf7, 0x00fffdfa, 0x00fefdf8, 0x00fefbf4, 0x00fdfbf4,
- 0x00f6fcf3, 0x00f8fbf7, 0x00fcfafd, 0x00fffcff, 0x00fefdfc, 0x00fdfbf3, 0x00fffcee, 0x00fefeed, 0x00fefeef, 0x00fcfcf4, 0x00f9f9f9, 0x00f6fcfc, 0x00f8ffff, 0x00f9fefe, 0x00f7fcfd, 0x00f8feff,
- 0x00f9fcfc, 0x00fafdfd, 0x00fdfffd, 0x00fdfefa, 0x00fcfdf8, 0x00fcfcf7, 0x00fdfbf5, 0x00fefaf5, 0x00fcfbf7, 0x00fef9f8, 0x00fcf9f8, 0x00fcfcfb, 0x00fbfcfd, 0x00fdfeff, 0x00fcfefe, 0x00fcfdfe,
- 0x00fafff8, 0x00fcfef7, 0x00fafcf7, 0x00fbfdf6, 0x00fcfbf0, 0x00fdfdf1, 0x00fafbf1, 0x00fcfbf2, 0x00fbf9f4, 0x00f6f5f0, 0x00efeeef, 0x00ebeaf2, 0x00e1e3ec, 0x00dfe0e6, 0x00dbdadd, 0x00d7d6d7,
- 0x00d6cec5, 0x00d5c9bf, 0x00d1beb7, 0x00ceb9b1, 0x00cfb6aa, 0x00cfb3a6, 0x00c6aba0, 0x00bea69b, 0x009d9384, 0x00827b6e, 0x007d7d72, 0x00adb2a7, 0x00e1e4dc, 0x00d4d6ce, 0x00c8c7c3, 0x009c9796,
- 0x006b7077, 0x00787a82, 0x006f7178, 0x00a7a9ad, 0x00ababac, 0x00b0b0ae, 0x00aeada9, 0x00afaba7, 0x00bebdb3, 0x0097968a, 0x00503f35, 0x00703f38, 0x00643a38, 0x002d0c0b, 0x00160103, 0x0017090d,
- 0x00110c0b, 0x00120f0e, 0x0010110f, 0x000c1009, 0x00080b02, 0x00090906, 0x0007060a, 0x0006070a, 0x00050804, 0x00070906, 0x00090905, 0x000d0f07, 0x00120e06, 0x001d160f, 0x00292019, 0x00362923,
- 0x004f3117, 0x00513723, 0x00483120, 0x003c2a1c, 0x002d261f, 0x00201e18, 0x00161612, 0x0012120f, 0x000e0b04, 0x000c0704, 0x000a0605, 0x00070907, 0x00070807, 0x000b0a09, 0x00080908, 0x00080806,
- 0x00090a07, 0x00080907, 0x000a0b0b, 0x000b0c0c, 0x000b0c0c, 0x000b0b0b, 0x000b0b0b, 0x000a0b0b, 0x00070807, 0x00060806, 0x00050606, 0x0018191a, 0x00999a9a, 0x00f1f1f1, 0x00fefdfe, 0x00fdfcfb,
- 0x00fbfbfa, 0x00f3f3f2, 0x00dadadb, 0x00dfdfe0, 0x00fefefd, 0x00fdfdfc, 0x00fcfcfe, 0x00fdfdfe, 0x00ecefee, 0x00cccfce, 0x00a6abb2, 0x008f9aab, 0x00727f96, 0x005c6c87, 0x004b5c7e, 0x0042577e,
- 0x0039527e, 0x00344b7d, 0x0034497d, 0x00374c81, 0x00364b7f, 0x00324a7a, 0x00304b76, 0x00304b78, 0x00334a7b, 0x00324a7b, 0x00334c7c, 0x00344d7d, 0x00365080, 0x00344e80, 0x00354e81, 0x00385084,
- 0x00335481, 0x00365383, 0x00375184, 0x00344d81, 0x0033487c, 0x00324777, 0x00314571, 0x0031416d, 0x00303e60, 0x002f3a5c, 0x00393857, 0x00503652, 0x00643847, 0x00783c3e, 0x00883f38, 0x00924031,
- 0x0091422e, 0x00954630, 0x00984730, 0x009d4a2d, 0x00a44c26, 0x00a54c29, 0x009d492b, 0x0094442f, 0x00874b3c, 0x00895c52, 0x0093706f, 0x00988184, 0x009c9196, 0x009b979c, 0x00949497, 0x008f9194,
- 0x008b8d8c, 0x008c8d8e, 0x00908f95, 0x00929199, 0x0096959e, 0x0094939b, 0x0085868b, 0x00747579, 0x00595b56, 0x0042433e, 0x002d2a24, 0x00281d19, 0x00231813, 0x001f1313, 0x001b1113, 0x00141017,
- 0x00141f39, 0x00425584, 0x005977b6, 0x003e69bd, 0x003169cb, 0x00366acf, 0x003867c3, 0x003362a9, 0x001c4972, 0x000b3659, 0x000b3257, 0x00113361, 0x0018376c, 0x001b3b66, 0x001d3e61, 0x001b3f56,
- 0x000a3472, 0x00113a73, 0x001e4275, 0x002d4872, 0x00465264, 0x00575b5f, 0x00969191, 0x0092898b, 0x004d5360, 0x005b6780, 0x00788fb8, 0x006389d5, 0x00456bb9, 0x00426cbe, 0x004272c5, 0x003c6ec6,
- 0x002861bd, 0x00255aba, 0x002a60c4, 0x003467cd, 0x003465c9, 0x002963d0, 0x002f69d2, 0x004270c8, 0x0059739e, 0x005a667d, 0x00515862, 0x00606765, 0x00636461, 0x0056534e, 0x004d443e, 0x004b3c36,
- 0x0040312e, 0x00443232, 0x004a3837, 0x004d3b38, 0x00483732, 0x00574b42, 0x00bdb6ae, 0x00f7f7f3, 0x00f8fdf9, 0x00f6fdf9, 0x00f6fef7, 0x00f0f9e8, 0x008093a6, 0x00162c65, 0x001a348f, 0x002343ba,
- 0x002b50ce, 0x003851d2, 0x00374bc6, 0x002d37af, 0x002c2e9f, 0x00242ba8, 0x002230ab, 0x002a34a5, 0x003846a4, 0x004753a9, 0x00464e9f, 0x00353682, 0x00252060, 0x00231b4c, 0x00332a4b, 0x0070677a,
- 0x006b6867, 0x00514d4e, 0x007d7a7d, 0x00a3a1a3, 0x00a9a6a7, 0x00aba8a8, 0x00b1aeaf, 0x00cdc9cc, 0x00c3c3c4, 0x00949393, 0x00767475, 0x00959597, 0x00dddcdf, 0x00f0f0f0, 0x00eceded, 0x00edeff1,
- 0x00e9eae9, 0x00e7e8e7, 0x00e7e7e5, 0x00efeeec, 0x00e4e6e2, 0x00a9a7ae, 0x003b3642, 0x0016101c, 0x0015131e, 0x0016141f, 0x00110f19, 0x001a1720, 0x001e171f, 0x001f161d, 0x00251921, 0x002d1b24,
- 0x002c130b, 0x002b120b, 0x0029110d, 0x00291512, 0x00281a18, 0x001f1715, 0x0014100f, 0x00110f0f, 0x000d110f, 0x00101314, 0x00141918, 0x00161c1e, 0x00161827, 0x0016132a, 0x0017112b, 0x00161026,
- 0x00080e1b, 0x00070e21, 0x00061534, 0x00142860, 0x003249a1, 0x003853bc, 0x002e52c3, 0x003153ca, 0x00305ad7, 0x002e5bdd, 0x002a56dd, 0x002a5ae1, 0x002653d4, 0x002e56d2, 0x003457d0, 0x003455ca,
- 0x002848c1, 0x002446bf, 0x001f40b6, 0x001f3eaf, 0x001f3ba9, 0x00203ba6, 0x001d37a3, 0x001d35a4, 0x001f33a1, 0x001b2d9e, 0x00152383, 0x00181c5a, 0x0007101b, 0x00050c09, 0x000a0e09, 0x000b0a14,
- 0x000c0714, 0x000c0906, 0x000c0b00, 0x000d0e00, 0x00080611, 0x001a191d, 0x009a9b98, 0x00f4f5f3, 0x00fafcfb, 0x00fcfcfa, 0x00fcfbf9, 0x00fefdf7, 0x00a99d94, 0x002e2113, 0x00301f10, 0x00432e1e,
- 0x0066350c, 0x006a3a11, 0x006b3a12, 0x0067350e, 0x0065330e, 0x00653511, 0x00663712, 0x00653611, 0x005f350f, 0x005f3511, 0x005e3510, 0x005e3610, 0x00613814, 0x005f3813, 0x005c3512, 0x005b3315,
- 0x004f300e, 0x004e2f11, 0x004d2d12, 0x00492b0f, 0x0044290f, 0x0044280d, 0x0043250c, 0x003f200b, 0x00381d05, 0x00361b06, 0x00311906, 0x002e1806, 0x002b1708, 0x00281509, 0x0025130a, 0x0024120a,
- 0x00312013, 0x00322315, 0x0035271a, 0x00413426, 0x00584b3f, 0x006b5e54, 0x0085776f, 0x00978a82, 0x00a29b92, 0x00b4aba1, 0x00c7c1bb, 0x00d0d0d0, 0x00dadbdc, 0x00e7e6e5, 0x00f5f3f2, 0x00faf9f9,
- 0x00fcfdfc, 0x00fdfdfc, 0x00fdfefd, 0x00fdfefd, 0x00fefefd, 0x00fbfefc, 0x00fafcfa, 0x00fbfbfb, 0x00fcfaf7, 0x00fcfcf8, 0x00fdfdfb, 0x00fcfdfa, 0x00b9bdb7, 0x004a514b, 0x00202a23, 0x00313c37,
- 0x003d4b3e, 0x0048574a, 0x004a5a4c, 0x004b5b4c, 0x004c5c4d, 0x004a5a4b, 0x004a594b, 0x004a594a, 0x0048564a, 0x00485648, 0x0048574a, 0x0048574a, 0x00485648, 0x00485648, 0x0049584a, 0x00485849,
- 0x0047574a, 0x00475749, 0x0048574a, 0x00485749, 0x00465647, 0x00455646, 0x00455747, 0x00445846, 0x00435746, 0x00435746, 0x00475949, 0x00485a4a, 0x00465a4a, 0x00465a4a, 0x00495a4b, 0x00485a4b,
- 0x0049584a, 0x0049584a, 0x0049584a, 0x0049584a, 0x0049584a, 0x0049584a, 0x0049584a, 0x0049584a, 0x00495849, 0x00495849, 0x00485749, 0x00414f42, 0x006f7a70, 0x00c7cec6, 0x00f8fbf4, 0x00fdfef6,
- 0x00f5f6ef, 0x00f5f6ef, 0x00f8f6f2, 0x00f7f8f4, 0x00f6fbf5, 0x00f8fcf8, 0x00fcfbfc, 0x00fbfcfd, 0x00fafcfd, 0x00fafbfc, 0x00fbfafc, 0x00fafafb, 0x00f9fafb, 0x00f9fafa, 0x00faf9fa, 0x00faf9f9,
- 0x00fafafa, 0x00fafaf9, 0x00f2f3f2, 0x00f0f0ef, 0x00f5f5f5, 0x00f5f5f4, 0x00f4f5f4, 0x00f6f7f5, 0x00f5f4f2, 0x00f2f1f1, 0x00f1f0f1, 0x00f2f2f4, 0x00f5f5f8, 0x00f8f8fb, 0x00fafafc, 0x00fafbfc,
- 0x00f8faf7, 0x00f8faf7, 0x00f9fbf9, 0x00fafcf8, 0x00f9fbf8, 0x00fafbfa, 0x00fcfdfe, 0x00fcfdfe, 0x00f5f6ea, 0x00e8ecdb, 0x00e2e7ce, 0x00e2e8ca, 0x00e2eac8, 0x00e3eac9, 0x00e5eacc, 0x00e5eacc,
- 0x00e3eac5, 0x00e4ebc6, 0x00e5ecc8, 0x00e4ebc7, 0x00e1e7c4, 0x00dfe6c2, 0x00dfe6c3, 0x00dfe6c3, 0x00e1eac4, 0x00e1e9c5, 0x00e1e9c8, 0x00dbe2c9, 0x00bbc5a1, 0x008d9974, 0x00596544, 0x00455138,
- 0x00859288, 0x00e0eae8, 0x00f5f9fc, 0x00fcfeff, 0x00f9fcf7, 0x00fdfefb, 0x00d2d0d2, 0x008a8788, 0x00868381, 0x00b8b7b3, 0x00e7e5e5, 0x00f8f8f9, 0x00eef3fa, 0x00d6dded, 0x00c2cbe0, 0x00c1cbe6,
- 0x00e6e5eb, 0x00f9f9fa, 0x00fcfdfc, 0x00fcfdfc, 0x00fefffd, 0x00fafbf8, 0x00636363, 0x00000001, 0x00030508, 0x00040308, 0x00040207, 0x00070507, 0x000a0805, 0x00120e09, 0x00221b15, 0x002d241c,
- 0x002d2919, 0x002a291b, 0x0027271c, 0x0023271d, 0x00232b22, 0x0024301e, 0x00262e19, 0x00222512, 0x0021210b, 0x003d3719, 0x00675b38, 0x006e6538, 0x00554f25, 0x00353114, 0x00191708, 0x000f0f08,
- 0x001b1707, 0x00201a0c, 0x002b2319, 0x004a4238, 0x00746e62, 0x00827d72, 0x007c766e, 0x00635c54, 0x004e473d, 0x00342d25, 0x002a221a, 0x002d2618, 0x00433b30, 0x00544e44, 0x005a544e, 0x004e4642,
- 0x0034332d, 0x0020221b, 0x00151412, 0x00151614, 0x001f2221, 0x0031352f, 0x004e4d46, 0x00665d55, 0x007a645b, 0x007c5f53, 0x006e493c, 0x00643f2e, 0x00422817, 0x00452e1f, 0x00564636, 0x0063594b,
- 0x00615951, 0x006e655d, 0x007d736c, 0x008b817b, 0x00958b87, 0x009d9591, 0x00aea6a4, 0x00beb8ba, 0x00cfccc8, 0x00d8d5d3, 0x00e2dfdd, 0x00e1e5e3, 0x00eeefed, 0x00f4f5f4, 0x00fbfafa, 0x00f8f9f6,
- 0x00f4f7f2, 0x00f7f8f7, 0x00f9f9fa, 0x00fbfdfa, 0x00fbfbfd, 0x00fcfefc, 0x00fcfcf9, 0x00fffbf4, 0x00f9fdee, 0x00f9fdf4, 0x00fbfbf7, 0x00f7f9fc, 0x00f9f9ff, 0x00fcfcfe, 0x00fbfbfb, 0x00fbfbf7,
- 0x00fbfcf1, 0x00fcfdf1, 0x00fefef5, 0x00fdfcf5, 0x00fdfbf5, 0x00fdfcf9, 0x00fcfafb, 0x00fcfbfe, 0x00fafbfb, 0x00fbf8ff, 0x00fdf9fd, 0x00fefdf5, 0x00fdfcf5, 0x00fdfcf6, 0x00fcfdf5, 0x00fbfef6,
- 0x00f8faf8, 0x00f9fefb, 0x00f7fcfd, 0x00f6fdfe, 0x00f3fbfb, 0x00f2f9fb, 0x00f0f8fb, 0x00ecf9fa, 0x00e1f5f6, 0x00e6f4f5, 0x00f4f6fb, 0x00fbf7fc, 0x00fdf5fd, 0x00fffbff, 0x00fcf9fd, 0x00fcfbfd,
- 0x00b6c5db, 0x0040519c, 0x003f4baa, 0x00414cbc, 0x003d4abd, 0x00394cb5, 0x00364baa, 0x003648a0, 0x005664b5, 0x006776c7, 0x003a4491, 0x00515895, 0x00aa939c, 0x00976f59, 0x00845333, 0x009c704e,
- 0x00b1a8af, 0x00b8bfd8, 0x00cbd5f4, 0x00b6bad7, 0x00cebcc4, 0x00d9d6e7, 0x00d3d8e9, 0x00d6dbee, 0x00dddfee, 0x00e0e4ee, 0x009ea4af, 0x00272f38, 0x00131a33, 0x0019234c, 0x001a2562, 0x001e2874,
- 0x00132678, 0x00132474, 0x001a2573, 0x00212670, 0x002f2d61, 0x00343155, 0x00332f49, 0x004d465b, 0x00b2aac7, 0x00bdb6d7, 0x006c6a9c, 0x00505d9b, 0x0046607a, 0x00617889, 0x008191aa, 0x00686d9e,
- 0x003c4ea2, 0x00264490, 0x00505d98, 0x00a28cac, 0x00b94f4a, 0x00972d20, 0x008b3537, 0x005b3c69, 0x00263ca1, 0x002e47a8, 0x00394ea4, 0x0023337b, 0x00051b52, 0x000d1e42, 0x004f5664, 0x00ada79f,
- 0x00bda98c, 0x0081765b, 0x00332c1b, 0x00242116, 0x0022161b, 0x001b0a10, 0x00120105, 0x000d0100, 0x00010500, 0x00000800, 0x00000801, 0x0003020a, 0x00030006, 0x00040007, 0x00171218, 0x001e191f,
- 0x00171517, 0x00151715, 0x00181f1e, 0x0017231e, 0x00132124, 0x0014211c, 0x00121a15, 0x00121913, 0x006e6f6b, 0x00e0dfdd, 0x00fdfcf9, 0x00fffdfa, 0x00fefaf9, 0x00fefbf8, 0x00fefcf9, 0x00fdfdf9,
- 0x00fafff5, 0x00f9fff9, 0x00fbfcfd, 0x00fff9fc, 0x00fffafb, 0x00fffaf4, 0x00fffdf0, 0x00fdffed, 0x00fffbf3, 0x00fcfef5, 0x00fcfdf9, 0x00fbfffd, 0x00f8fbfb, 0x00fafdfd, 0x00fbfdfd, 0x00fbfefd,
- 0x00fcfbfe, 0x00fcfbfd, 0x00fefdfc, 0x00fffefb, 0x00fefcfa, 0x00fefbf7, 0x00fffbf5, 0x00fffaf3, 0x00fefaf1, 0x00fdf6f0, 0x00fcf7f2, 0x00faf6f3, 0x00f6f3f4, 0x00f3f2f4, 0x00eeeef0, 0x00ececf0,
- 0x00e7e0d8, 0x00e6ded5, 0x00dfd4cb, 0x00d9cdc2, 0x00d4c5b8, 0x00c8baad, 0x00b7aca1, 0x00aaa197, 0x00979490, 0x008a8883, 0x007a7a7b, 0x00706e77, 0x0064676e, 0x0067676c, 0x00666666, 0x00615f5a,
- 0x006b6058, 0x006d5d51, 0x006c5548, 0x00715646, 0x00805d4c, 0x00835f4e, 0x007a5848, 0x006e5241, 0x004f3f2e, 0x004f4736, 0x00828173, 0x00b7baad, 0x00ddddd5, 0x00c9cac2, 0x00afaca9, 0x00878282,
- 0x00595b68, 0x0060626d, 0x007a7c84, 0x00c7cacf, 0x00c5c5c9, 0x00bdbdbd, 0x00bcbbb8, 0x00bbbab4, 0x00c2bfb6, 0x00a6a59b, 0x0076675d, 0x0085554b, 0x007b5650, 0x00462825, 0x00120101, 0x00140a0c,
- 0x00110d11, 0x000e0d0f, 0x000d100e, 0x000a0f09, 0x000d0f06, 0x000e0c0c, 0x000b090d, 0x00060706, 0x000a0b0b, 0x00090c09, 0x000e0f0a, 0x00101209, 0x001d170f, 0x00281e17, 0x00342821, 0x003a2b24,
- 0x004e3727, 0x004a382f, 0x004d413f, 0x00463f47, 0x00313246, 0x002a2c42, 0x001e2036, 0x000f1425, 0x00111219, 0x000d0d0f, 0x00050305, 0x00090909, 0x000a0907, 0x000a080a, 0x00090907, 0x00100f0e,
- 0x000a0a0a, 0x000a0a0b, 0x000c0b0d, 0x000b0b0c, 0x000d0d0d, 0x000d0c0c, 0x000e0d0d, 0x000e0d0d, 0x000c0c0d, 0x000a0a0a, 0x0009090a, 0x00161617, 0x008f8e8f, 0x00eeeded, 0x00fefdfd, 0x00fffdfc,
- 0x00fefdfc, 0x00f4f3f2, 0x00dbdadb, 0x00dfdfe0, 0x00fefefe, 0x00fdfefd, 0x00fcfdfe, 0x00fdfeff, 0x00f2f2f3, 0x00d3d4d5, 0x00b0b2b8, 0x009ea7b3, 0x008a93a6, 0x0078869c, 0x00657390, 0x0058698b,
- 0x00495c84, 0x003f527e, 0x00384a78, 0x00374777, 0x00384776, 0x00354976, 0x00334a75, 0x00334974, 0x00334a79, 0x00354c7b, 0x00374e7e, 0x00394f80, 0x003c5284, 0x003a5082, 0x00395082, 0x003d5386,
- 0x003d5887, 0x003d5787, 0x00415689, 0x00415588, 0x00425385, 0x00425281, 0x0045527e, 0x0045527c, 0x00445072, 0x00434f70, 0x00474a67, 0x00574863, 0x00694553, 0x00784649, 0x0084443e, 0x008d4738,
- 0x00924738, 0x00934a37, 0x00984d37, 0x009d5235, 0x00aa5631, 0x00ae5431, 0x00a85031, 0x009e4e35, 0x00975c4c, 0x00976d63, 0x009d7f7d, 0x009f8e90, 0x009f999e, 0x009a999e, 0x00929297, 0x008c8d92,
- 0x008c8b8f, 0x008d8b90, 0x00908e94, 0x00908f96, 0x0094939a, 0x00939399, 0x00848589, 0x00707174, 0x00575757, 0x003e4039, 0x002f2a23, 0x002b1e16, 0x00271814, 0x001f1817, 0x00181520, 0x00151a2e,
- 0x003c4d79, 0x00627dba, 0x00567cc9, 0x003867c2, 0x002f66cf, 0x00416cd0, 0x004568c0, 0x00365899, 0x00163a59, 0x000c304a, 0x000d2d4d, 0x00082451, 0x000b255d, 0x00092557, 0x000b2a52, 0x000a2c47,
- 0x000b2d68, 0x000e326c, 0x00193f76, 0x00274b7f, 0x00475e80, 0x0059697f, 0x00858995, 0x0085858d, 0x00515565, 0x004a5769, 0x00778bab, 0x008199c8, 0x005270ad, 0x004867ab, 0x004c70c0, 0x00426cc5,
- 0x00325fc2, 0x002255b6, 0x002656bb, 0x00265ebe, 0x003163c3, 0x002a69d1, 0x00366cd2, 0x003f68ba, 0x006777a6, 0x00788296, 0x00646a6f, 0x005d635d, 0x005d615d, 0x0055544f, 0x004c433d, 0x004b4036,
- 0x00443433, 0x00443332, 0x00483836, 0x004a3935, 0x00483731, 0x0053463d, 0x00bbb4ac, 0x00f6f7f2, 0x00fafefa, 0x00f8fdfb, 0x00fafefb, 0x00f7fcee, 0x008b98b0, 0x00142963, 0x0017318d, 0x001f40b4,
- 0x002849c8, 0x00314dcb, 0x003347c3, 0x002e3cb2, 0x003137ad, 0x00323aab, 0x002d3ba7, 0x002e3b9e, 0x0039489d, 0x004656a5, 0x004e5ba7, 0x00363c84, 0x00272663, 0x00241e4d, 0x00191233, 0x00373147,
- 0x006f6b6c, 0x00666364, 0x007e7a7b, 0x009f9c9c, 0x009a9697, 0x00a7a4a5, 0x00b2afb0, 0x00c0bebf, 0x00bcbcbd, 0x00bab8b9, 0x00d4d2d5, 0x00eeecf2, 0x00edeef2, 0x00e9e7e8, 0x00f0efef, 0x00edeced,
- 0x00eaeaea, 0x00e8e9e6, 0x00e9e9e7, 0x00e3e2de, 0x00eff0ec, 0x00e3dfe2, 0x00605b64, 0x00151016, 0x00110d12, 0x00151116, 0x000f0c11, 0x00181419, 0x001b1217, 0x001b0f14, 0x00221419, 0x002d1c22,
- 0x00371711, 0x00351710, 0x0031170e, 0x002d170d, 0x002e1c12, 0x002a1a11, 0x0024160d, 0x0020130a, 0x001c1707, 0x001e180c, 0x001e1a0c, 0x001b1c01, 0x00251b0b, 0x002a1810, 0x00371d14, 0x00402213,
- 0x0036280d, 0x00221f0f, 0x000d111c, 0x00182855, 0x004c66c2, 0x006885e7, 0x005a76e2, 0x004465d5, 0x00375fde, 0x003461e2, 0x002c5adf, 0x002455dc, 0x002755d7, 0x002b55d1, 0x002e53cc, 0x002e4fc4,
- 0x002b4dca, 0x00294bc5, 0x002747be, 0x001c3bac, 0x001a37a2, 0x001d38a0, 0x001b339c, 0x001c309a, 0x001b2d98, 0x00182a95, 0x00172583, 0x00161a58, 0x0007101b, 0x00070e09, 0x000b0d0b, 0x000c0915,
- 0x00100b19, 0x000e0a08, 0x000d0c02, 0x000b0c00, 0x0007030f, 0x00262326, 0x00b7b6b3, 0x00f7f7f5, 0x00feffff, 0x00fdfefe, 0x00fefdff, 0x00fbfaf9, 0x00a19893, 0x00393026, 0x00514439, 0x006b5d4d,
- 0x00956d52, 0x009b7458, 0x009d785b, 0x009a7658, 0x00997458, 0x009a755b, 0x0099755c, 0x0096745c, 0x0095755c, 0x0094745b, 0x0094755b, 0x0096785a, 0x00997a5e, 0x00987a5c, 0x0095775d, 0x0094765d,
- 0x008e755b, 0x008a725a, 0x008b725a, 0x008c745d, 0x008a735b, 0x00846e58, 0x00816955, 0x007e6555, 0x007d6755, 0x007b6554, 0x00786453, 0x00736151, 0x006b594a, 0x00685748, 0x00645245, 0x005c4b3f,
- 0x005c4c40, 0x00584b3d, 0x00524638, 0x004a3e32, 0x00473b31, 0x0042352c, 0x003e322a, 0x003d3228, 0x00433934, 0x004f4740, 0x005c5851, 0x00666366, 0x00777677, 0x008e8b8e, 0x00a7a5a4, 0x00b2b1b0,
- 0x00c5c1c5, 0x00ccc9ca, 0x00dedcdb, 0x00e7e6e5, 0x00f2f1f1, 0x00f1f3f1, 0x00f8fbf7, 0x00fafaf8, 0x00fbf9f8, 0x00fdfbf9, 0x00fcfafa, 0x00fafbf9, 0x00b8bab7, 0x00616663, 0x00666f69, 0x0086908b,
- 0x00b7c1b9, 0x00c6cfc6, 0x00cad3cb, 0x00cad5ca, 0x00c9d4cb, 0x00cbd3ca, 0x00cbd3cc, 0x00c9d2ca, 0x00cad1ca, 0x00cad1c9, 0x00cad2cb, 0x00c9d3ca, 0x00c8d3c8, 0x00c8d3c8, 0x00c9d3ca, 0x00cad3ca,
- 0x00c9d1c9, 0x00c8d1c8, 0x00c9d2c9, 0x00c9d2ca, 0x00c9d2ca, 0x00c9d3cb, 0x00c9d5cc, 0x00c8d6cc, 0x00c6d3cb, 0x00c6d3ca, 0x00c9d4cb, 0x00c9d4cb, 0x00c8d4cb, 0x00c8d3cb, 0x00cad3cb, 0x00c9d3c9,
- 0x00cad2cb, 0x00cad2cb, 0x00cad2cb, 0x00cad2cb, 0x00cad2cb, 0x00cad2cb, 0x00cad2cb, 0x00cad2cb, 0x00cbd2cb, 0x00cbd2cb, 0x00cad3cd, 0x00c7d0cb, 0x00d8e0db, 0x00f2f7f3, 0x00fbfdf9, 0x00fcfdf9,
- 0x00fdfcfb, 0x00fbfcf9, 0x00fdfcfa, 0x00fbfcf9, 0x00f9fef9, 0x00fafefb, 0x00fdfdfd, 0x00fdfdfe, 0x00fdfcfe, 0x00fdfcfd, 0x00fdfdfc, 0x00fcfdfc, 0x00fcfdfd, 0x00fcfdfd, 0x00fcfdfc, 0x00fdfdfb,
- 0x00fffdff, 0x00fdfcfc, 0x00f8f8f8, 0x00f7f7f6, 0x00fbfbfb, 0x00fbfbfb, 0x00fafbfa, 0x00f8fbf8, 0x00faf9f9, 0x00f6f6f6, 0x00f6f7f8, 0x00fafafc, 0x00fdfdff, 0x00fefdff, 0x00fdfdfe, 0x00fbfcfc,
- 0x00fefcfc, 0x00fcfcfa, 0x00fcfdfa, 0x00fdfefa, 0x00fdfcfc, 0x00fcfcfd, 0x00fdfdfe, 0x00fdfefd, 0x00fbfcf6, 0x00f7f9ee, 0x00f7f8e8, 0x00f8fae6, 0x00f7fbe7, 0x00f6fbe8, 0x00f7fae9, 0x00f6fae8,
- 0x00f9fbe5, 0x00f7fbe3, 0x00f7fbe4, 0x00f6fae3, 0x00f5f8e3, 0x00f4f7e2, 0x00f4f8e2, 0x00f2f8e0, 0x00f5f8e4, 0x00f6f9e5, 0x00f7f9e6, 0x00f3f4e9, 0x00e7ead3, 0x00d7ddc7, 0x00cad3ba, 0x00c9d3be,
- 0x00d6dfdd, 0x00f2f8f9, 0x00fdffff, 0x00fefdff, 0x00fbfcf5, 0x00fefefc, 0x00d3d1d3, 0x00898688, 0x00868482, 0x00b8b6b2, 0x00e8e6e5, 0x00fbfbfc, 0x00f4f8ff, 0x00e4eafa, 0x00c9d1e4, 0x00c0c9e1,
- 0x00e7e6f0, 0x00f8f7fb, 0x00fefdff, 0x00fefcfe, 0x00fffefe, 0x00f5f4f2, 0x0041413f, 0x00000000, 0x00060409, 0x00030308, 0x00010106, 0x00040304, 0x00100e0c, 0x001c1915, 0x002e2b25, 0x0039362d,
- 0x003b352b, 0x00353429, 0x00313328, 0x002f342a, 0x002d372b, 0x00323b24, 0x00343920, 0x002f321e, 0x0028281a, 0x002f2f1b, 0x0046452f, 0x00474628, 0x00343215, 0x001f1b08, 0x00171108, 0x00170f0e,
- 0x00171206, 0x00161104, 0x00292319, 0x00554e45, 0x007e786f, 0x00807b73, 0x0067615c, 0x00423d37, 0x00342d2a, 0x00251e1b, 0x002a221c, 0x00352b1e, 0x00443a2e, 0x00494036, 0x00484039, 0x003a342d,
- 0x0022211e, 0x0013140e, 0x00080705, 0x00040504, 0x000a0c0e, 0x00292422, 0x005a5049, 0x007e6f65, 0x00a88579, 0x00ab8071, 0x00966451, 0x007b4534, 0x00522917, 0x004c2619, 0x0049301c, 0x0043301e,
- 0x003e3631, 0x00483f38, 0x00584d47, 0x00625852, 0x00615651, 0x005b504d, 0x00504644, 0x00443d3a, 0x003d3631, 0x00443b37, 0x005c5554, 0x006c6969, 0x007d7978, 0x00827e7a, 0x008f8d88, 0x009a9c92,
- 0x00a5a6a0, 0x00acadaa, 0x00bababa, 0x00cdced3, 0x00e1dfe5, 0x00eeeaee, 0x00f1ebed, 0x00f4f4f0, 0x00f2f6f7, 0x00f2fbfa, 0x00f6fffd, 0x00f4feff, 0x00f6fdfc, 0x00f7faff, 0x00fbfdfc, 0x00fcfefb,
- 0x00fffdfc, 0x00fbfaf8, 0x00fcfbfb, 0x00fcfbfc, 0x00fcf9fc, 0x00fffbff, 0x00fffbff, 0x00fefafd, 0x00fffcfe, 0x00fffcfe, 0x00fefbfa, 0x00fffdf3, 0x00fffdf2, 0x00fffdf4, 0x00fefdf8, 0x00fffff8,
- 0x00fffcf9, 0x00fdfcf7, 0x00fefffa, 0x00fcfefa, 0x00fdfffc, 0x00fdfcfd, 0x00fbfbfa, 0x00fbfef7, 0x00f0fef5, 0x00f3fff7, 0x00fcfdfa, 0x00fefafb, 0x00fff8fe, 0x00fffafe, 0x00fef8fd, 0x00fbfbfc,
- 0x00b6c4da, 0x0042509f, 0x003c4ca6, 0x00404cb7, 0x003344b4, 0x003547b0, 0x00364aa8, 0x00344799, 0x003f5198, 0x005a67b3, 0x00414d93, 0x004f5396, 0x00a58696, 0x00996852, 0x007d4723, 0x009b6c48,
- 0x00b6b1b7, 0x00b2bad7, 0x00c1cff4, 0x00babfe4, 0x00cec0ca, 0x00d0cedf, 0x00d0d7e8, 0x00d9def8, 0x00e8e5fe, 0x00e6e5f6, 0x00c1c3c8, 0x0063665c, 0x00282e27, 0x001c2236, 0x001d1d4c, 0x00211e66,
- 0x00152364, 0x00121f68, 0x00172470, 0x00202a7e, 0x00252f79, 0x00222c6a, 0x001f295a, 0x003b436d, 0x00aaabd5, 0x00b0b1e2, 0x0052568f, 0x003f4a9b, 0x006c83a8, 0x00adbed3, 0x00cbd2e3, 0x009998be,
- 0x005868ac, 0x00314889, 0x00727eab, 0x00bb97ad, 0x00b63f2f, 0x00a12810, 0x007f211d, 0x00572c57, 0x002a40a8, 0x002e47b1, 0x00394cac, 0x002a3688, 0x0008134e, 0x00121942, 0x00565061, 0x00a28a82,
- 0x008d5f50, 0x00533027, 0x002f1e17, 0x0027201f, 0x001b1617, 0x001e1115, 0x00110502, 0x000f0301, 0x00060605, 0x00030907, 0x00030a04, 0x00050800, 0x00050302, 0x00100d13, 0x0028232c, 0x002a252e,
- 0x00141213, 0x00101310, 0x000f1610, 0x0014201a, 0x0011201e, 0x000f1c17, 0x00111914, 0x000c120e, 0x00616362, 0x00dadbdd, 0x00fcfdfc, 0x00fffeff, 0x00fcfbfe, 0x00fbfdfd, 0x00f9fbfd, 0x00f9fdfe,
- 0x00fafef5, 0x00fcfffc, 0x00fcfcff, 0x00fefcff, 0x00fffbfd, 0x00fffaf9, 0x00fefbf3, 0x00fdfef1, 0x00fefef3, 0x00fefcfb, 0x00f9fcfc, 0x00f4fdf8, 0x00f7faf9, 0x00fbfcfb, 0x00f9fcf6, 0x00fcfaf5,
- 0x00faf7f4, 0x00f9f2f1, 0x00f4eae9, 0x00eee2e2, 0x00e9dbdb, 0x00e6d6d2, 0x00e3d3c8, 0x00ddccc0, 0x00cfc2b5, 0x00c4b5ac, 0x00b7a9a2, 0x00a79d98, 0x009a9191, 0x008c8889, 0x00828182, 0x007c7e80,
- 0x00827467, 0x00807567, 0x007e7162, 0x00796a59, 0x006e604f, 0x005d4f3f, 0x004a3d31, 0x00362f24, 0x0022201b, 0x00191714, 0x000f100e, 0x000d0e10, 0x000d110f, 0x00151615, 0x0024241c, 0x002b291c,
- 0x003c2e20, 0x00483324, 0x00533a29, 0x00654331, 0x007d5643, 0x008f6451, 0x0099715d, 0x00a07f68, 0x0094826d, 0x00a69c88, 0x00cccdbb, 0x00d1d3c3, 0x00c9cac0, 0x00c0beb6, 0x00a4a19d, 0x00938c8d,
- 0x005a5d69, 0x00575a64, 0x00a1a4ac, 0x00d9dce2, 0x00d4d4d9, 0x00cac9cb, 0x00cccbc8, 0x00cfcdc7, 0x00c8c5bc, 0x00b7b4ab, 0x009b8f83, 0x00977766, 0x00957c71, 0x0066584f, 0x00120e07, 0x00050503,
- 0x00060a0e, 0x00070b0d, 0x00060b08, 0x00070b05, 0x00090a00, 0x000c0a0a, 0x0008060a, 0x00070708, 0x00080b0a, 0x000f100f, 0x00141511, 0x001f1b15, 0x00251d15, 0x0030231c, 0x003a2c23, 0x0044332a,
- 0x00554a46, 0x006e676f, 0x006c6b7f, 0x004c5075, 0x00333e73, 0x002b396e, 0x00223164, 0x001b2c57, 0x002c3750, 0x002e3645, 0x00141a20, 0x00060807, 0x00080708, 0x000c0c0f, 0x00070806, 0x000b0a0c,
- 0x000b0b0c, 0x000c0c0d, 0x000c0c0d, 0x000d0d0d, 0x000d0d0c, 0x000e0e0d, 0x000e0d0d, 0x000f0e0f, 0x000e0f0e, 0x000d0e0d, 0x000d0d0e, 0x00181718, 0x008a888a, 0x00eeecee, 0x00fffeff, 0x00fcfbfc,
- 0x00fcfcfb, 0x00f6f6f6, 0x00deddde, 0x00e2e2e2, 0x00fdfdfd, 0x00fdfefd, 0x00fdfdfd, 0x00fefeff, 0x00f2f3f2, 0x00d8d7d9, 0x00b7b7b9, 0x00acaeb4, 0x009ca2ae, 0x009097a9, 0x007c889f, 0x006f7d9b,
- 0x005c6d8c, 0x00536288, 0x0045547d, 0x00414f79, 0x003c4872, 0x00384b75, 0x00314a71, 0x00334971, 0x00304972, 0x00334b76, 0x00364c7a, 0x00384d7d, 0x003c5082, 0x003b4e82, 0x003e5185, 0x0044588b,
- 0x00465884, 0x004a5a87, 0x004e5d8c, 0x00535d8d, 0x0055608e, 0x005c648f, 0x00626990, 0x00656b8f, 0x00686e8a, 0x00636d86, 0x00606982, 0x0066627e, 0x00745a66, 0x0080585a, 0x008c5651, 0x0097574a,
- 0x009c584b, 0x00a05b4d, 0x009f5c49, 0x00a65e45, 0x00ab5e3c, 0x00b25938, 0x00aa5532, 0x00a45538, 0x00a06756, 0x00a1786f, 0x00a28684, 0x00a49499, 0x009e9ba1, 0x0098999e, 0x008e8f95, 0x008b8b90,
- 0x008b898c, 0x008d8b8f, 0x008f8e94, 0x00908f97, 0x00929098, 0x00919095, 0x00807f81, 0x006b6b6b, 0x0051534e, 0x003e3f38, 0x002b291e, 0x002b1b10, 0x00231815, 0x001d1b21, 0x00191f31, 0x00293958,
- 0x0049679b, 0x004d71b8, 0x00416dc2, 0x003d6bcf, 0x003568d5, 0x004868cd, 0x005068ba, 0x004e67a1, 0x00375268, 0x001e394f, 0x00152e4c, 0x00142c59, 0x00172f6d, 0x001f3a72, 0x0025446f, 0x00294a68,
- 0x00374e81, 0x0039568e, 0x00375d96, 0x0037629d, 0x00416998, 0x004d6b93, 0x00586f8b, 0x005f6e85, 0x00536277, 0x00475d75, 0x0054677f, 0x006c7790, 0x007686ad, 0x008399d3, 0x00738fd5, 0x005070c8,
- 0x00365ec5, 0x002754bd, 0x002456b8, 0x00235db5, 0x002e67b8, 0x002c69cc, 0x00366ece, 0x00547cca, 0x0097abd0, 0x00abb2c4, 0x007f8484, 0x005c615c, 0x00575750, 0x0053514c, 0x0048443f, 0x00473c3a,
- 0x0042322f, 0x00443230, 0x00463531, 0x004b3a34, 0x00493831, 0x0051453b, 0x00b7afa8, 0x00f7f6f2, 0x00fbfdf7, 0x00fafefe, 0x00f9fef9, 0x00fbfef4, 0x00929bb6, 0x001a2868, 0x001a2d8a, 0x002139ad,
- 0x002746bf, 0x002f4abf, 0x002c44b5, 0x002c3eab, 0x002c359d, 0x0030368c, 0x00272e79, 0x001e2668, 0x001c265f, 0x00263369, 0x0036437b, 0x00414b84, 0x00525689, 0x003e3e65, 0x0016162f, 0x00141422,
- 0x003c3a3b, 0x00696768, 0x00888687, 0x009d9a9b, 0x00aba7a9, 0x00bbb9b9, 0x00cccac9, 0x00d2d1cf, 0x00dcd9d8, 0x00e8e6e7, 0x00efecf0, 0x00f0edf3, 0x00f1f0f4, 0x00efeff0, 0x00f0f0f0, 0x00e7e8e7,
- 0x00e9ebe8, 0x00e9ebe8, 0x00eaebe7, 0x00f0efe9, 0x00f3f4ed, 0x00cfccc6, 0x00544f4d, 0x00141208, 0x000f0e07, 0x0015140d, 0x0013130b, 0x0018170e, 0x00160f08, 0x00160b05, 0x001c0e09, 0x00271612,
- 0x00361a0f, 0x00361b11, 0x00321911, 0x00301a12, 0x002b180f, 0x0025150c, 0x0020120a, 0x001f120a, 0x001d1108, 0x001f1309, 0x001c1607, 0x00272502, 0x003f2a0c, 0x00573419, 0x006e4226, 0x00824f29,
- 0x007c5728, 0x0057432a, 0x002c2f34, 0x002f3f75, 0x005375e3, 0x0083a2fa, 0x007d9af7, 0x005976e1, 0x003761d8, 0x00325fdc, 0x002657d6, 0x002556dc, 0x002855d7, 0x002a55d1, 0x002a4ec9, 0x00284abf,
- 0x002c4bcb, 0x002948c4, 0x002b49c1, 0x002341b2, 0x002541aa, 0x002f4baf, 0x002944a7, 0x0021389a, 0x00182d92, 0x00162a8e, 0x0016277d, 0x00141959, 0x0006101a, 0x00040c08, 0x000a0c08, 0x000c0a14,
- 0x000e0917, 0x00100c0b, 0x000c0a00, 0x000b0b00, 0x0006020d, 0x00373235, 0x00cecbc9, 0x00f9f9f6, 0x00fcffff, 0x00fefeff, 0x00fafcfe, 0x00efedef, 0x009a9795, 0x00615954, 0x008e887f, 0x00b9b0a5,
- 0x00e3cfbd, 0x00e9d6c5, 0x00eedccd, 0x00edddce, 0x00edddcf, 0x00eedccf, 0x00eddcd0, 0x00ebddd1, 0x00eadccd, 0x00e9dacf, 0x00eadbcd, 0x00ebddcb, 0x00eddecb, 0x00eddece, 0x00ecddcc, 0x00eadbca,
- 0x00e9dcca, 0x00e9dbca, 0x00e9dac9, 0x00e9d9ca, 0x00e9dac9, 0x00e5d9cb, 0x00e1d5ca, 0x00ded2c9, 0x00d8cdc5, 0x00d6cbc2, 0x00d4c9c0, 0x00d0c5bd, 0x00c8bdb3, 0x00c7bbaf, 0x00c2b5aa, 0x00bbada4,
- 0x00b0a9a0, 0x00ada69b, 0x00a59f94, 0x009e988d, 0x00979187, 0x00928d85, 0x0087857c, 0x00808077, 0x007d7b75, 0x0073756f, 0x006a6965, 0x006b6566, 0x00676162, 0x00686366, 0x00676463, 0x00686665,
- 0x00747072, 0x007d797a, 0x008b8787, 0x00989495, 0x00a5a1a4, 0x00acadab, 0x00bbbdb8, 0x00cacbc6, 0x00d8d7d6, 0x00e1dfdc, 0x00eceae7, 0x00f7f6f2, 0x00abaca9, 0x00656b68, 0x00838e89, 0x00adbab6,
- 0x00e5eae9, 0x00f4f8f7, 0x00fafcfa, 0x00fafcfb, 0x00f9fbf9, 0x00fafbfa, 0x00fbfcfa, 0x00f8faf9, 0x00f9fbf7, 0x00f9fbf9, 0x00fafbf9, 0x00f9fbf9, 0x00f8fbf8, 0x00f8faf8, 0x00f8faf9, 0x00f9fafb,
- 0x00f9fbfa, 0x00f9fbfa, 0x00f9fbfa, 0x00f8fbfa, 0x00f8fafa, 0x00f8fbfa, 0x00f7fbfa, 0x00f7fcfb, 0x00f5fcf9, 0x00f6fcf9, 0x00f7fdf9, 0x00f8fdfa, 0x00f8fdfb, 0x00f8fcfb, 0x00f9fcfb, 0x00fafcfa,
- 0x00f9fbfb, 0x00f9fbfb, 0x00f9fbfb, 0x00f9fbfb, 0x00f9fbfb, 0x00f9fbfb, 0x00f9fbfb, 0x00f9fbfb, 0x00fafcfa, 0x00f9fcfb, 0x00f7fbfb, 0x00f5fcfb, 0x00f8fefc, 0x00fbfefd, 0x00fafafa, 0x00fbfbfb,
- 0x00fefdff, 0x00fefdfe, 0x00fefdfe, 0x00fcfdfc, 0x00fafefb, 0x00fbfefb, 0x00fdfdfc, 0x00fdfdfd, 0x00fcfcfc, 0x00fdfdfc, 0x00fdfdfc, 0x00fdfffd, 0x00fefffe, 0x00feffff, 0x00fefffe, 0x00fffffd,
- 0x00fffeff, 0x00fffefe, 0x00fcfcfb, 0x00fdfdfd, 0x00fefdfd, 0x00fffefe, 0x00fefefd, 0x00fdfefc, 0x00fdfdfd, 0x00fdfdfc, 0x00fcfcfd, 0x00fdfdff, 0x00fffeff, 0x00fffeff, 0x00fcfcfd, 0x00fafbfa,
- 0x00fdfcfb, 0x00fcfcfa, 0x00fcfdf9, 0x00fcfdf9, 0x00fdfdfb, 0x00fdfcfd, 0x00fdfdfd, 0x00fdfefc, 0x00fcfefc, 0x00fdfef9, 0x00fefdf7, 0x00fdfef6, 0x00fdfef8, 0x00fcfef8, 0x00fcfef9, 0x00fefff9,
- 0x00fefef6, 0x00fdfef5, 0x00fdfef5, 0x00fcfef5, 0x00fcfdf5, 0x00fcfdf6, 0x00fcfef6, 0x00fcfef5, 0x00fefdf6, 0x00fffef7, 0x00fefcf7, 0x00fefbfc, 0x00fcfbf3, 0x00fafbf1, 0x00f7fbee, 0x00f7fdf2,
- 0x00f8fdfd, 0x00f9faff, 0x00fcfbfe, 0x00fefdff, 0x00fffef8, 0x00fefcfe, 0x00d2cfd6, 0x0089858b, 0x00898485, 0x00bbb6b5, 0x00e9e6e4, 0x00fbfafb, 0x00f5f8fe, 0x00e8effd, 0x00c9d3e4, 0x00c3cfe2,
- 0x00ecebf2, 0x00fbfafd, 0x00fefefd, 0x00fcfdfb, 0x00fcfdfb, 0x00eef0ee, 0x00272928, 0x00000203, 0x00030106, 0x00030208, 0x00050207, 0x00090508, 0x00191414, 0x0027221f, 0x0035312b, 0x003a372e,
- 0x00373729, 0x00363529, 0x00333227, 0x00313427, 0x00303729, 0x003a3921, 0x003c391f, 0x00393927, 0x002d2f27, 0x002c3028, 0x00394033, 0x00363c2b, 0x0025250c, 0x001c1605, 0x0023170e, 0x002b191a,
- 0x00241f16, 0x001e1910, 0x002f2a21, 0x005c574f, 0x00857f79, 0x00807a75, 0x005b5551, 0x002f2926, 0x00231c19, 0x00211d18, 0x00302720, 0x00413226, 0x0043382b, 0x0041352b, 0x003b312a, 0x002d2821,
- 0x001d1713, 0x0014120f, 0x000b0b0a, 0x00070808, 0x00090b0c, 0x002d2521, 0x006a5850, 0x0092786f, 0x00b48375, 0x00b77c6c, 0x00a46652, 0x00904e39, 0x0068301b, 0x005a2916, 0x004b250f, 0x00412410,
- 0x00382f2c, 0x00514745, 0x0069605b, 0x00736b66, 0x00675f58, 0x005d544e, 0x00544946, 0x004b4137, 0x00433831, 0x00514440, 0x00685d59, 0x006f6367, 0x00675c5b, 0x004f4642, 0x00363229, 0x003f3b2f,
- 0x00323226, 0x002f2e2b, 0x002e312d, 0x00525457, 0x007b8081, 0x00898381, 0x007e7b77, 0x00808481, 0x007b8c95, 0x009eb3c4, 0x00acc1dc, 0x00b0c5e6, 0x00c2d3eb, 0x00cdd9ec, 0x00dce6e9, 0x00e8f1ea,
- 0x00fcfafb, 0x00fbfafa, 0x00f9f9fa, 0x00fafafa, 0x00fbfafa, 0x00fcf8fb, 0x00fdf8fd, 0x00fefafc, 0x00fffbfb, 0x00fffbfd, 0x00fefcfa, 0x00fdfef9, 0x00fdfef8, 0x00fefef8, 0x00fdfdf5, 0x00fdfdf8,
- 0x00fffdfc, 0x00fffffd, 0x00fefefb, 0x00fdfffb, 0x00fcfdfa, 0x00fffefe, 0x00fcfcf9, 0x00fdfff5, 0x00f8fff1, 0x00f8fff4, 0x00f8fdf7, 0x00fffdfd, 0x00fbfafe, 0x00fefbfc, 0x00fcfcfb, 0x00f8fdf6,
- 0x00b5c0dd, 0x003c4a95, 0x003541a0, 0x002d3ca7, 0x002a39ab, 0x003142a9, 0x00293a94, 0x001f337e, 0x00203173, 0x0031407f, 0x0030387a, 0x004b4a97, 0x00997789, 0x00935b4b, 0x00834523, 0x00b88665,
- 0x00d4cad8, 0x00becbed, 0x00b8caf9, 0x00bbc3ee, 0x00d1c2db, 0x00c7c8de, 0x00c6cde8, 0x00d1d4fb, 0x00e7e2fe, 0x00e8e4fa, 0x00eeeaee, 0x00b2af93, 0x00555534, 0x00242120, 0x00241a3d, 0x0024155c,
- 0x001d1f51, 0x0019205c, 0x00141f6a, 0x001c2883, 0x003648a7, 0x003b4fa4, 0x002b3f88, 0x004f63a1, 0x00aab1eb, 0x00abb3ea, 0x00777bc2, 0x004b52b0, 0x008090bd, 0x00dce7f8, 0x00f3f6fc, 0x00efebf8,
- 0x00b6bff1, 0x008ea2d7, 0x009491b8, 0x00a0757f, 0x00c03521, 0x00ba340d, 0x00982f1e, 0x0078465d, 0x003e51b3, 0x002d42a8, 0x003d4bb0, 0x00393b96, 0x0018145d, 0x00190e3f, 0x0047304d, 0x006f494e,
- 0x006f1727, 0x00490b18, 0x003b1a28, 0x0028262c, 0x00141f21, 0x00151d1b, 0x00151111, 0x00160d0d, 0x001a0d18, 0x00130e1e, 0x0015161d, 0x000f1201, 0x000d0c01, 0x00171211, 0x002e272d, 0x0030282e,
- 0x002c2729, 0x0021221b, 0x00181e14, 0x001e291a, 0x001a2a23, 0x00172720, 0x001f2b2a, 0x00182320, 0x005c6469, 0x00d4d8df, 0x00fafcfe, 0x00fbfcfd, 0x00fcffff, 0x00f6fffd, 0x00f4fefe, 0x00f3ffff,
- 0x00f5fdf7, 0x00f5f9f8, 0x00f5f4fa, 0x00f3eef6, 0x00f4ecf6, 0x00f5eaf3, 0x00f2e8ec, 0x00e9e0e0, 0x00ded2db, 0x00cec9d3, 0x00c4c2c7, 0x00b5b7b1, 0x00acaca4, 0x00a8a59e, 0x00a59d95, 0x009d9289,
- 0x00998781, 0x00937d7a, 0x00897070, 0x00846a6c, 0x00856b6a, 0x00886e65, 0x00886f5f, 0x00816959, 0x00705749, 0x00594437, 0x00433127, 0x002e1f17, 0x00201511, 0x00140e0b, 0x00120f0d, 0x00131312,
- 0x00362418, 0x00403223, 0x00524233, 0x00574736, 0x00504332, 0x00473b2e, 0x003b3127, 0x002a261e, 0x00191817, 0x00090c0b, 0x00000303, 0x00000605, 0x00030800, 0x00070b00, 0x001a1909, 0x002f2d16,
- 0x004e3f28, 0x00604a33, 0x007c5f47, 0x00957159, 0x00b78a72, 0x00c99d87, 0x00daaf9b, 0x00e2c0a9, 0x00e5d0bb, 0x00ded5bf, 0x00d3d1be, 0x00bbbead, 0x00b2b2a8, 0x00b6b7ae, 0x00a8a29d, 0x00948c89,
- 0x00515062, 0x004d4d5c, 0x00bdbdc9, 0x00dbdce3, 0x00d7d9dc, 0x00c8c9c7, 0x00cac9c3, 0x00cdccc5, 0x00cfcbc1, 0x00c8c8bc, 0x00bcbba9, 0x00acab8d, 0x00aeb19a, 0x0097a392, 0x00313d33, 0x00020f0b,
- 0x00020f10, 0x00000a0a, 0x00060908, 0x000b0802, 0x000f0602, 0x000c0606, 0x000a070c, 0x00080609, 0x000e1010, 0x00151812, 0x00211d18, 0x00272319, 0x002d251e, 0x00352b1f, 0x0057463d, 0x007b675b,
- 0x00777c94, 0x007982a5, 0x005f6d9f, 0x003e4f9a, 0x0028419f, 0x00233f9f, 0x0026409a, 0x00263f8b, 0x004d6092, 0x007489ab, 0x00737f93, 0x003e413f, 0x000d0a0e, 0x0009090a, 0x000a0b0a, 0x000a0909,
- 0x000d0c0e, 0x000d0c0d, 0x000e0e0e, 0x000c0d0c, 0x000d0d0d, 0x000d0e0e, 0x00111211, 0x00121312, 0x00141012, 0x00131011, 0x00141213, 0x001a1a1a, 0x00848584, 0x00eceded, 0x00fefeff, 0x00fcfcfd,
- 0x00feffff, 0x00f8f8f8, 0x00e4e4e4, 0x00e4e5e4, 0x00fdfdfd, 0x00fcfcfc, 0x00fdfcfc, 0x00fefefd, 0x00f4f4f5, 0x00d8d8d8, 0x00bdbbbb, 0x00b4b5b6, 0x00adaeb4, 0x00a3a8b2, 0x00989eae, 0x008e96ac,
- 0x007f89a7, 0x00757fa0, 0x006a7597, 0x00626c8f, 0x00596285, 0x004c5b82, 0x0043577d, 0x00435579, 0x0040537f, 0x00435682, 0x00435784, 0x00415583, 0x00435787, 0x0044588a, 0x004a5d91, 0x0052649a,
- 0x0063688e, 0x00676e94, 0x0072759c, 0x00797ba1, 0x008080a4, 0x008786a7, 0x00908baa, 0x00908eaa, 0x00928fa4, 0x008d8d9e, 0x0084899c, 0x007b8299, 0x00837983, 0x008f7173, 0x009f6f6a, 0x00a76f63,
- 0x00af7266, 0x00b07263, 0x00b37162, 0x00b06e57, 0x00b4684e, 0x00b55f3e, 0x00b25838, 0x00ad5c3f, 0x00a87160, 0x00a47f74, 0x00a48c89, 0x00a3979a, 0x009e9ea3, 0x0095989d, 0x008d8f93, 0x008b8b90,
- 0x008b898e, 0x008b8a8e, 0x008f8f93, 0x008e8f95, 0x008f9097, 0x008b8a91, 0x0079787d, 0x00626164, 0x004b4b46, 0x0035362d, 0x002b2318, 0x00291708, 0x00241917, 0x00131920, 0x001b2942, 0x003a547d,
- 0x004a71b3, 0x003662b1, 0x002f60bd, 0x003669cd, 0x003567d7, 0x004b61c9, 0x004650a1, 0x00515e94, 0x00485869, 0x0026384b, 0x00293a5a, 0x0028396d, 0x002c3d86, 0x002f4588, 0x00334f84, 0x00305378,
- 0x00424a7a, 0x00344a7f, 0x00234686, 0x0014498c, 0x001e5295, 0x00265a95, 0x00255286, 0x00244c79, 0x00355582, 0x00385c83, 0x003d5471, 0x00615e5c, 0x008c93a6, 0x00a7afdd, 0x008b9adf, 0x005a74cd,
- 0x003b5dcb, 0x002c56be, 0x00275ab8, 0x002863b5, 0x002d6fb4, 0x003870ce, 0x003e6ecb, 0x00658bd0, 0x00c1ceef, 0x00c7d1da, 0x00939694, 0x00686d62, 0x004a4f47, 0x00494943, 0x00413c3a, 0x00403535,
- 0x003e2f2e, 0x0041302d, 0x00473531, 0x004b3934, 0x004c3b33, 0x004e4237, 0x00b2a9a0, 0x00f6f3ea, 0x00fdfbfa, 0x00f8fcfa, 0x00fcfbfe, 0x00fff9fb, 0x00a19bc8, 0x0021266c, 0x00222c88, 0x00293aa7,
- 0x003044b6, 0x003248ac, 0x00394ca8, 0x004354a3, 0x003e4791, 0x002e2852, 0x00190c22, 0x000c0214, 0x00030614, 0x00000615, 0x000a112a, 0x002d3656, 0x00747c9d, 0x00737b95, 0x00343c4b, 0x00141c23,
- 0x001a1616, 0x003b3837, 0x00787675, 0x00807e7c, 0x00a6a4a3, 0x00cccac9, 0x00e1dedf, 0x00eae7e9, 0x00efebec, 0x00efefec, 0x00eeebeb, 0x00eeeef2, 0x00eae8ed, 0x00edeef1, 0x00e9e7ea, 0x00ececec,
- 0x00eeedeb, 0x00ebebe8, 0x00f0f0eb, 0x00f5f6f0, 0x00c6c8c3, 0x00757271, 0x00241f20, 0x00141010, 0x0013120e, 0x00151410, 0x001b1c18, 0x001d1d1a, 0x00171212, 0x00130a0d, 0x00170c12, 0x0022141c,
- 0x002c1c12, 0x002b1b11, 0x00291911, 0x00261610, 0x00241412, 0x001e1012, 0x001a0c13, 0x00140711, 0x001b0d1d, 0x00231626, 0x002b2025, 0x00382f17, 0x005c3b32, 0x0072403a, 0x008b4c44, 0x009c5546,
- 0x0099634c, 0x00755955, 0x00585177, 0x004957b6, 0x004068fc, 0x005f7ee9, 0x006f8ee7, 0x00567adb, 0x003b65d8, 0x003160db, 0x002758da, 0x002556dc, 0x002754d5, 0x002a53d2, 0x003359d4, 0x003a5ed4,
- 0x003754d9, 0x002a49c7, 0x002747be, 0x002443b2, 0x003956bd, 0x004c69cb, 0x003754b3, 0x00223d99, 0x00223799, 0x001a2e91, 0x00132278, 0x00131756, 0x00040e19, 0x00040b08, 0x000a0d07, 0x000c0b13,
- 0x000f0818, 0x000d0806, 0x000d0a01, 0x000a0a00, 0x0007030e, 0x00444041, 0x00e8e6e4, 0x00fefffc, 0x00fdfbff, 0x00fafbfe, 0x00fafbfd, 0x00dee1e2, 0x008a898b, 0x006f6d6c, 0x00a6a29e, 0x00d3cfca,
- 0x00f4f3f5, 0x00f9f8fa, 0x00fcfdff, 0x00fbffff, 0x00fbfffe, 0x00fbfdfd, 0x00fbfdfd, 0x00fbffff, 0x00fcfeff, 0x00fbfefe, 0x00fbfeff, 0x00fbfffc, 0x00fafefb, 0x00fbfffc, 0x00fcfffd, 0x00fafef8,
- 0x00fefefa, 0x00fdfff8, 0x00fefff7, 0x00fdfcf7, 0x00fefdf5, 0x00fefffb, 0x00fdfffe, 0x00fbfdfd, 0x00fcfbfd, 0x00f9f9fa, 0x00f9f9fa, 0x00f7f7f7, 0x00f6f6f5, 0x00f4f4f0, 0x00f4f2ef, 0x00f1efed,
- 0x00ecede7, 0x00e7e9e4, 0x00e2e4e1, 0x00dcdfdc, 0x00d4d8d5, 0x00c9cfcc, 0x00c2cbc8, 0x00bbc6c4, 0x00b5bdbc, 0x00abb5b5, 0x00a9aeb1, 0x00a8a6a6, 0x009d999a, 0x00938f90, 0x008c888b, 0x00878483,
- 0x00807b7d, 0x007b7677, 0x00746f71, 0x006b676b, 0x00646264, 0x00656762, 0x006c7068, 0x00737470, 0x007e7e7b, 0x00898985, 0x00979594, 0x00a3a3a0, 0x00818280, 0x00686e6b, 0x00919b95, 0x00bbc8c1,
- 0x00efeef2, 0x00fcfcfe, 0x00fefdff, 0x00fdfcfe, 0x00fffdff, 0x00fffeff, 0x00fefeff, 0x00fefefd, 0x00fffeff, 0x00fffefe, 0x00fefefe, 0x00fffdff, 0x00fffdff, 0x00fffdff, 0x00fefdff, 0x00fdfdfd,
- 0x00fefcff, 0x00fefcff, 0x00fffcff, 0x00fefcff, 0x00fefdff, 0x00fdfdff, 0x00fcfdff, 0x00fcfcff, 0x00fdfdfd, 0x00fcfdfe, 0x00fcfdff, 0x00fcfdff, 0x00fdfdff, 0x00fdfdff, 0x00fcfdff, 0x00fbfdff,
- 0x00fffeff, 0x00fffeff, 0x00fffeff, 0x00fffeff, 0x00fffeff, 0x00fffeff, 0x00fffeff, 0x00fffeff, 0x00ffffff, 0x00fffeff, 0x00fcfeff, 0x00f7fdfd, 0x00f7fdfe, 0x00fafdfe, 0x00fefefe, 0x00fefdfd,
- 0x00fffafe, 0x00fdfcfd, 0x00fdfdfd, 0x00fdfdfe, 0x00fcfefe, 0x00fbffff, 0x00fdfefe, 0x00fdfefe, 0x00fffefd, 0x00fefffe, 0x00ffffff, 0x00fffefe, 0x00fffffd, 0x00fffefc, 0x00fffefc, 0x00fefefc,
- 0x00fefffe, 0x00fcfdfc, 0x00fffeff, 0x00fdfcfd, 0x00fcfdfd, 0x00fcfdfc, 0x00fefdfe, 0x00fefdfe, 0x00fcfcfd, 0x00fdfdfd, 0x00fffdff, 0x00fcfcfd, 0x00ffffff, 0x00fdfffe, 0x00feffff, 0x00fdfdfc,
- 0x00fefcfd, 0x00fefcfc, 0x00fefcfb, 0x00fdfcf8, 0x00fdfdf9, 0x00fdfefc, 0x00fefefe, 0x00fdfdfe, 0x00fefcff, 0x00fdfdff, 0x00fcfdfe, 0x00fdfefe, 0x00ffffff, 0x00fffeff, 0x00fffeff, 0x00fffeff,
- 0x00fefeff, 0x00fefdff, 0x00fefcfe, 0x00fdfcfd, 0x00fdfdfc, 0x00fefdfd, 0x00fefcff, 0x00fefcff, 0x00fdfcff, 0x00fefcfd, 0x00fefbff, 0x00fdf9fe, 0x00fffcfd, 0x00fdfcf7, 0x00fcfefa, 0x00f9fef9,
- 0x00fbfcfd, 0x00fbfbfd, 0x00fbf9fd, 0x00fcf9fc, 0x00fefcf9, 0x00fefcfa, 0x00d1cfd4, 0x0089878b, 0x008b8687, 0x00bab7b3, 0x00e9e7e4, 0x00f8f9f6, 0x00f7fbfe, 0x00ecf2fe, 0x00d0dae9, 0x00cfdbee,
- 0x00f3f2f9, 0x00fcfcff, 0x00fcfbfe, 0x00fbfafb, 0x00fffffe, 0x00e6e7e4, 0x001a1b1a, 0x000e0f11, 0x000a070d, 0x00020106, 0x00080307, 0x00140a0c, 0x00251b1c, 0x00312726, 0x00362b28, 0x00322722,
- 0x00292019, 0x00281f18, 0x0028221a, 0x002b2820, 0x002e2c23, 0x003a2e1c, 0x003d2d1a, 0x00392d23, 0x00353438, 0x003e4343, 0x00545d5a, 0x00585f50, 0x0043422a, 0x00372d14, 0x00412e18, 0x00492f1d,
- 0x0038342d, 0x00322e26, 0x003e3a33, 0x005e5b53, 0x00807c76, 0x007b7772, 0x00514d4a, 0x00201c19, 0x001a1516, 0x001d1a18, 0x002f2721, 0x003a2c1f, 0x003f3528, 0x003a2e23, 0x002f261c, 0x001e1a0f,
- 0x001a1711, 0x0014130e, 0x00121310, 0x000d100d, 0x00141716, 0x00382d27, 0x00735951, 0x0097726a, 0x00b5786a, 0x00b9735f, 0x00a95944, 0x0092442a, 0x00722c17, 0x00642a13, 0x005b2914, 0x005a301b,
- 0x00483d3d, 0x00635c5a, 0x007f7573, 0x007c746f, 0x006a615a, 0x005f544f, 0x00594e48, 0x0057493e, 0x0053463d, 0x00625348, 0x00816f6b, 0x008e7b7f, 0x00857475, 0x0061544c, 0x003a3228, 0x0041392a,
- 0x0039332a, 0x0023221b, 0x000c0f06, 0x00212621, 0x00444649, 0x004e4b43, 0x0046423b, 0x003b423e, 0x00354862, 0x007390b9, 0x006f90c9, 0x005477b8, 0x005b78ae, 0x00627b9a, 0x008ba0aa, 0x00bdcfc6,
- 0x00d0d4d4, 0x00d7dad8, 0x00e2e4e2, 0x00e2e5e2, 0x00d9dcd8, 0x00d6d8d6, 0x00dbdbda, 0x00e0e0da, 0x00ece8e5, 0x00efefe6, 0x00eff2f3, 0x00eef3fa, 0x00eff6fb, 0x00f3fbfc, 0x00f6fdff, 0x00f8fefa,
- 0x00feffff, 0x00fcfeff, 0x00feffff, 0x00fefefd, 0x00fffefe, 0x00fbfafe, 0x00fffdff, 0x00fdfcfd, 0x00f6fff6, 0x00f7fff8, 0x00f9fbf7, 0x00fffffe, 0x00fffaff, 0x00fcfcfb, 0x00fafdf7, 0x00f4fef0,
- 0x00b4b1bc, 0x00302a50, 0x002b265a, 0x00232066, 0x00222679, 0x001e2373, 0x00151a62, 0x001e255f, 0x001f1f4b, 0x00121232, 0x0020152d, 0x004c3230, 0x0087635e, 0x006f4d40, 0x00735551, 0x00b6a0a4,
- 0x00cfcfe6, 0x00c3c9e7, 0x00bec4e9, 0x00bcc1e6, 0x00cfcae6, 0x00cacfe4, 0x00a1a6cc, 0x009996da, 0x00d6d5fe, 0x00ece9fb, 0x00f1eeeb, 0x00d7ceb8, 0x0067565b, 0x0020102c, 0x001b0c34, 0x001c113f,
- 0x00181b5a, 0x00192062, 0x00172266, 0x001b2b6f, 0x003b4d93, 0x003c5094, 0x003a4b90, 0x00606fb6, 0x007e84d0, 0x008383d4, 0x00abacea, 0x009a9ed2, 0x00c0c8cc, 0x00f4f5f6, 0x00f5eef5, 0x00fbeefc,
- 0x00eef4eb, 0x00dee4f9, 0x008e94be, 0x004a4681, 0x00786189, 0x00a5878d, 0x00a28481, 0x00938087, 0x006c667e, 0x00544a60, 0x006e5b6d, 0x006a4b58, 0x004d1f29, 0x00490f15, 0x005c191e, 0x00681a1a,
- 0x00640c0c, 0x00580d10, 0x0052181e, 0x003e1720, 0x0024141b, 0x001c141b, 0x00151417, 0x00121316, 0x00171716, 0x00202121, 0x00282b29, 0x00171c16, 0x000b0d0d, 0x0017151a, 0x00302930, 0x0031292e,
- 0x00292424, 0x00272723, 0x00272a24, 0x0031352c, 0x003e443d, 0x003b433c, 0x003e443f, 0x00393c37, 0x00707473, 0x00d8dada, 0x00fbfbfb, 0x00fafaf9, 0x00fbfcfc, 0x00f8fcfa, 0x00f5f6f4, 0x00d3d5d3,
- 0x00b2b4ab, 0x00afaea7, 0x00a7a39f, 0x00a49b98, 0x00a19392, 0x009d8e8b, 0x0094847e, 0x008c7872, 0x0079605f, 0x006a4d4c, 0x004f413e, 0x0030362c, 0x002c2a23, 0x00291e1c, 0x00261717, 0x002a1210,
- 0x0035150f, 0x003a130e, 0x0040120d, 0x00481610, 0x00552016, 0x00642e1d, 0x00703b26, 0x0075432e, 0x006a3a2b, 0x00572e20, 0x00442115, 0x0030140b, 0x0027130d, 0x00231512, 0x002b1f1e, 0x002e2425,
- 0x0043341e, 0x0050402c, 0x00635340, 0x00665543, 0x005c4a3d, 0x004e3f34, 0x0041372c, 0x002c261c, 0x00231a17, 0x00191410, 0x0015110e, 0x00151711, 0x0025231c, 0x0036362a, 0x00535241, 0x00757360,
- 0x00918f75, 0x00a6a086, 0x00beb89d, 0x00d4c9ad, 0x00e7dbbd, 0x00ebd8bb, 0x00e8d2b6, 0x00dbc6a8, 0x00d3b799, 0x00bfa98a, 0x009e8f6e, 0x008c7f60, 0x00908873, 0x00aba699, 0x00b3b0ac, 0x009b979a,
- 0x00575858, 0x00616262, 0x00afafaf, 0x00bbbcb9, 0x00b4b7b2, 0x00abb0a8, 0x00a5a9a2, 0x009ba098, 0x00acb5b0, 0x00c6cec8, 0x00c2c8bd, 0x00b6b9a3, 0x00b6baa7, 0x00b6bdab, 0x00787d6f, 0x00343c30,
- 0x00091309, 0x00020903, 0x0003060a, 0x0007070c, 0x00080612, 0x00040807, 0x00060d05, 0x000d0e05, 0x00191211, 0x0024191a, 0x00271b23, 0x00302430, 0x002c2b40, 0x00394257, 0x005f6e88, 0x00778aa6,
- 0x004f6fbf, 0x003b58b0, 0x002c46a6, 0x002a43a8, 0x002040a5, 0x001a429f, 0x0018429c, 0x00183f94, 0x0032509c, 0x00637bc2, 0x0097a8de, 0x00838fa2, 0x002d3447, 0x00040917, 0x00060611, 0x00080810,
- 0x00040505, 0x00080909, 0x00080808, 0x00080908, 0x000c0d0c, 0x00101010, 0x000f0f0e, 0x000f100e, 0x0014110d, 0x0017140f, 0x00181611, 0x001a1913, 0x00807f7c, 0x00e9eae8, 0x00fdfffe, 0x00fcffff,
- 0x00fdfefe, 0x00f9fafb, 0x00e7e7e7, 0x00e9e9e8, 0x00fefeff, 0x00fdfcfd, 0x00faf9f9, 0x00fefdfd, 0x00f5f5f4, 0x00d9d8d9, 0x00bbbcbd, 0x00b9b8bb, 0x00b5b6bc, 0x00b2b2b9, 0x00abadb6, 0x00a6a7b5,
- 0x009da0ac, 0x00989aa8, 0x008f92a0, 0x00898b99, 0x007e7f8e, 0x0072758b, 0x00666b84, 0x00646680, 0x0063647e, 0x00676983, 0x00686a85, 0x00656883, 0x00676b87, 0x006c708d, 0x00747895, 0x007a7e9c,
- 0x00868498, 0x008a8a9c, 0x009293a5, 0x009c9aac, 0x009fa0b0, 0x00a5a2b3, 0x00a7a5b5, 0x00a7a7b6, 0x00a7a5b2, 0x00a1a2ad, 0x009a9ca4, 0x0091919c, 0x00948b92, 0x0092868c, 0x0099858c, 0x00a2858a,
- 0x00a88782, 0x00af877d, 0x00af8176, 0x00ad7b69, 0x00ac715b, 0x00b26644, 0x00ac5c35, 0x00a96241, 0x00a77563, 0x00a38378, 0x00a3918b, 0x00a39c9c, 0x009d9ea0, 0x00969897, 0x008c8e8e, 0x008a8c89,
- 0x00898c88, 0x00898b8b, 0x008e8d93, 0x00918f9b, 0x008f8d9c, 0x00888895, 0x0072757b, 0x005c6061, 0x00454843, 0x0035352d, 0x0029221c, 0x002b1217, 0x00211513, 0x00101515, 0x00283845, 0x004c698a,
- 0x004873c1, 0x003b68c8, 0x003461c8, 0x002b58ba, 0x003462b3, 0x003c569f, 0x002d3f7d, 0x0025396e, 0x002b3d60, 0x001e3558, 0x0017345d, 0x00163768, 0x00153572, 0x001b3771, 0x001e356a, 0x001c305e,
- 0x0013305b, 0x00082655, 0x000d3165, 0x001a4077, 0x002e538a, 0x00375c8f, 0x00204574, 0x00163a66, 0x00223e68, 0x0029476e, 0x003c546e, 0x0052635e, 0x00a08181, 0x00af91ac, 0x008481b3, 0x004d78ca,
- 0x00206ad2, 0x00285dc3, 0x003157b8, 0x00375bb8, 0x002468ca, 0x002f6ac8, 0x003970c2, 0x00537fc8, 0x00abc6ed, 0x00bdd2ef, 0x009aabc4, 0x006b7e95, 0x003a4659, 0x003a3d4d, 0x00383340, 0x003e2b39,
- 0x00352d2c, 0x003a2e2b, 0x00443633, 0x00493a35, 0x00493a32, 0x004b4035, 0x00a69f95, 0x00f5f2e8, 0x00fafdf5, 0x00f8fdfa, 0x00fafdfe, 0x00fcf6fc, 0x00a1a6c8, 0x00263266, 0x001e316d, 0x00213579,
- 0x00293267, 0x00363156, 0x00644d66, 0x008b6b76, 0x0084565a, 0x003e2d32, 0x000a0a11, 0x00020309, 0x000c0910, 0x0009070d, 0x0005050b, 0x000c0d15, 0x003a3b43, 0x0063646a, 0x006a6a6e, 0x004b4a4f,
- 0x00201a2f, 0x00282332, 0x007e7981, 0x00969293, 0x00a7a4a3, 0x00c8c3c5, 0x00dbd5dc, 0x00e6dfea, 0x00eee6f2, 0x00f0e9f0, 0x00f0ebf4, 0x00e6ecf5, 0x00e8eaf1, 0x00ecefef, 0x00efedeb, 0x00edede8,
- 0x00e8eae4, 0x00edefef, 0x00eef4f7, 0x00d0d8e2, 0x00717a88, 0x002e3230, 0x000c0c08, 0x00151315, 0x0016071a, 0x00211120, 0x0039292e, 0x0030211d, 0x00291810, 0x0024130e, 0x00211114, 0x0023131d,
- 0x001f1711, 0x001f1711, 0x00201712, 0x001f1511, 0x001c100e, 0x001c0c09, 0x001e0905, 0x00260e08, 0x0044211b, 0x00563026, 0x0061352e, 0x0069352a, 0x006b3b2c, 0x00794125, 0x008a4c24, 0x009b5827,
- 0x00906754, 0x00615978, 0x00495aa7, 0x003e5ed2, 0x004362e9, 0x004768d8, 0x004b75dc, 0x004370e4, 0x003469ea, 0x002d62e5, 0x002458da, 0x002655d0, 0x002f56c8, 0x003155c5, 0x004765d4, 0x005e7dea,
- 0x004a6ad6, 0x003151be, 0x002748b7, 0x002445b7, 0x003552c3, 0x003a58c3, 0x002242a5, 0x001c3897, 0x00223b90, 0x001b3083, 0x00142365, 0x0014143d, 0x00090a1b, 0x00090a11, 0x000b0c0b, 0x00090a09,
- 0x000b0a0c, 0x000f0d0a, 0x00080801, 0x00090a08, 0x00080710, 0x00595859, 0x00e8e9e5, 0x00fbfefb, 0x00fdfdfe, 0x00fcfdff, 0x00fafdfd, 0x00d6d9d9, 0x007a7b80, 0x00706e72, 0x00aaa8aa, 0x00d4d1d4,
- 0x00f6f6e2, 0x00fbfbec, 0x00fffef7, 0x00fefefc, 0x00fdfdfd, 0x00fcfcfc, 0x00fbfbfb, 0x00fbfbfb, 0x00fbfffd, 0x00fbfffb, 0x00fbfffc, 0x00fbfdff, 0x00fafdfc, 0x00fbfdfe, 0x00fbfefd, 0x00fafdfb,
- 0x00f9fbfd, 0x00f9fcfb, 0x00f9fcfc, 0x00fbfdfd, 0x00fdfdfc, 0x00fcfcfd, 0x00fcfbff, 0x00fefcff, 0x00fefbfe, 0x00fefcfe, 0x00fdfbfd, 0x00fdfdfe, 0x00fefdfe, 0x00fefdfc, 0x00fbfaf9, 0x00fbf9fa,
- 0x00f9f8f7, 0x00f7f6f7, 0x00f5f3f8, 0x00f4f2f9, 0x00efedf5, 0x00ebeaf2, 0x00e6e7ef, 0x00e2e4ec, 0x00dfdde3, 0x00dadae1, 0x00d9d8df, 0x00d3d2cf, 0x00c5c3c1, 0x00bbbab6, 0x00b8b5b4, 0x00b9b7b3,
- 0x00aeaba5, 0x00a9a6a1, 0x009f9b96, 0x0096938f, 0x008e8d88, 0x00868a7e, 0x007a8174, 0x00767a74, 0x006d6d74, 0x0069696c, 0x00666766, 0x00666761, 0x006a6a63, 0x00787874, 0x00a8a8a7, 0x00cacacc,
- 0x00ededea, 0x00fafbf9, 0x00fbfdfa, 0x00fbfbfb, 0x00fdfdfc, 0x00fcfdfd, 0x00fdfdfc, 0x00fefdfc, 0x00fcfdfb, 0x00fcfdfc, 0x00fcfdfb, 0x00fdfcfb, 0x00fffdfd, 0x00fffdfd, 0x00fefdfb, 0x00fefefa,
- 0x00fcfdfd, 0x00fdfdfd, 0x00fefdfd, 0x00fdfdfc, 0x00fdfefd, 0x00fdfefc, 0x00fcfdfb, 0x00fcfdfa, 0x00fdfdfa, 0x00fdfdfb, 0x00fcfdfc, 0x00fcfefc, 0x00fffefe, 0x00fffefe, 0x00fefeff, 0x00fefeff,
- 0x00fefdfc, 0x00fefdfc, 0x00fefdfc, 0x00fefdfc, 0x00fefdfc, 0x00fefdfc, 0x00fefdfc, 0x00fefdfc, 0x00fdfcfc, 0x00fcfdfc, 0x00fcfdfd, 0x00fafdfd, 0x00fafcfd, 0x00fbfcfd, 0x00fdfcfe, 0x00fdfcfd,
- 0x00fdfbfb, 0x00fcfcfb, 0x00fcfcfc, 0x00fcfdfd, 0x00fcfdff, 0x00fbfdff, 0x00fbfdfe, 0x00fcfcfe, 0x00fbfcfc, 0x00fbfcfd, 0x00fcfcfe, 0x00fdfcfe, 0x00fefdfd, 0x00fefdfd, 0x00fdfdfe, 0x00fcfdff,
- 0x00fdfffd, 0x00fdfdfd, 0x00fefdfe, 0x00fdfdfe, 0x00fbfcfc, 0x00fcfefd, 0x00fcfdfd, 0x00fdfdff, 0x00fafcfb, 0x00fbfcfb, 0x00fcfcfc, 0x00fefdfe, 0x00fbfbfb, 0x00fdfdfd, 0x00fdfdfd, 0x00fefdfd,
- 0x00fcfcfc, 0x00fdfcfd, 0x00fdfcfc, 0x00fcfbfa, 0x00fcfcfa, 0x00fdfdfc, 0x00fdfdfe, 0x00fdfcfd, 0x00fefefe, 0x00fdfdfe, 0x00fcfdfe, 0x00fcfdfe, 0x00fefdfe, 0x00fefdfe, 0x00fefdfe, 0x00fefdfe,
- 0x00fdfefc, 0x00fefefd, 0x00fefdfc, 0x00fdfdfa, 0x00fdfdf9, 0x00fdfdf9, 0x00fefdfa, 0x00fffdfd, 0x00fffdfd, 0x00fefffd, 0x00fcfdff, 0x00f7fafa, 0x00fbfdfe, 0x00fcfefa, 0x00fdfdfc, 0x00f9f9f9,
- 0x00fbfefb, 0x00fdfefb, 0x00fefefe, 0x00fdfdfd, 0x00fefdfc, 0x00fcfdf6, 0x00cfd1cf, 0x00868786, 0x00838583, 0x00b5b7b4, 0x00e3e7e4, 0x00f3f8f6, 0x00f8fcff, 0x00f0f5fb, 0x00dfe6ee, 0x00e1e8f1,
- 0x00f6f9ee, 0x00fcfef7, 0x00fcfefa, 0x00fbfcfb, 0x00f9fcfc, 0x00d8dedc, 0x00111a16, 0x00101b17, 0x000e1110, 0x00060a08, 0x000c0909, 0x00180f0f, 0x00282020, 0x00302a29, 0x002c2724, 0x00221e19,
- 0x0011100a, 0x0013130c, 0x0016130f, 0x001c1615, 0x00251e20, 0x002c241a, 0x002b2415, 0x002b281d, 0x00353632, 0x004e524c, 0x006f776a, 0x007d816f, 0x006b6549, 0x00594829, 0x0059411d, 0x005e3e19,
- 0x004b3a28, 0x004a3b2a, 0x00504433, 0x00655d4d, 0x00757164, 0x006f6f63, 0x004b4d44, 0x0023261f, 0x000e1210, 0x00121614, 0x001f211f, 0x00282621, 0x002f2c2a, 0x00282424, 0x00221f20, 0x00181515,
- 0x00131313, 0x00111311, 0x00151514, 0x00191815, 0x001f1f1b, 0x00373027, 0x00645143, 0x008c6959, 0x00ad6851, 0x00b15e40, 0x00a7482a, 0x00913512, 0x0075230e, 0x00612313, 0x00612d27, 0x00623936,
- 0x005d4846, 0x006d6264, 0x007b7781, 0x006e7185, 0x00565b6f, 0x004f5160, 0x004b4952, 0x004a4244, 0x00494143, 0x00585051, 0x00746f75, 0x007f808f, 0x007b7e82, 0x0060645e, 0x00353628, 0x00393a25,
- 0x0034351d, 0x00212112, 0x0011100d, 0x001e1921, 0x00302941, 0x0040323b, 0x00433d39, 0x002f362b, 0x002a4749, 0x00678fb6, 0x005d8ada, 0x004470e5, 0x004568de, 0x005979bd, 0x00a1bfd4, 0x00cdecce,
- 0x00e7f0ef, 0x00edf6f4, 0x00eef5f4, 0x00eaf2ee, 0x00e6eeea, 0x00e2eae7, 0x00e4ebe8, 0x00e7edeb, 0x00ecf1f1, 0x00e7eeed, 0x00dce2e2, 0x00d0d5d9, 0x00c9cdcf, 0x00caced1, 0x00d0d3d3, 0x00d6d8d8,
- 0x00dedfdf, 0x00e4e5e5, 0x00f1f2f3, 0x00fafbfa, 0x00f9fbf9, 0x00f7fafb, 0x00f0f5f8, 0x00f5fafb, 0x00fdfcff, 0x00fcfafc, 0x00faf9fa, 0x00fcfafb, 0x00fbfbfd, 0x00fefdfd, 0x00fcfefc, 0x00fbfcf7,
- 0x00c2b5ba, 0x0048384a, 0x002f2242, 0x001e1847, 0x00141752, 0x000a0e4a, 0x00171950, 0x00383765, 0x0038334d, 0x00201b28, 0x0032201e, 0x00623821, 0x007a5749, 0x00826864, 0x00a3959a, 0x00beb5c6,
- 0x00c2c5df, 0x00bcbede, 0x00bcbfdf, 0x00bdbddf, 0x00cfcaed, 0x00cecaed, 0x007371ac, 0x0038358a, 0x007e79c7, 0x00bbb3d3, 0x00dad1d2, 0x00c7bba3, 0x00644f60, 0x00160923, 0x00070322, 0x0012182e,
- 0x00191f66, 0x00182065, 0x00161f63, 0x00162464, 0x00364488, 0x004d5fa4, 0x005b6bb4, 0x00505daa, 0x003a4099, 0x003f429d, 0x007e80cb, 0x00c1c5ea, 0x00eef3e9, 0x00f0eeee, 0x00f1eaf0, 0x00f4e7f2,
- 0x00f9f7e9, 0x00e7eaf5, 0x00838bb3, 0x002b3685, 0x00667cbd, 0x00ccd4f0, 0x00d9d8dd, 0x00c1c0c1, 0x00a29089, 0x00886e61, 0x00a67f6e, 0x00ac7e69, 0x008a483b, 0x00661d10, 0x006a1c14, 0x00681712,
- 0x0067120e, 0x0059110f, 0x00531618, 0x003d1115, 0x001d060f, 0x0010080e, 0x0008080b, 0x00070a0d, 0x00111411, 0x00171c15, 0x001b1f1a, 0x00101114, 0x00040506, 0x00121114, 0x00272425, 0x00231e1e,
- 0x002b2625, 0x00383533, 0x00282722, 0x0025271f, 0x0034372d, 0x00353a33, 0x00343834, 0x00313130, 0x00656964, 0x00cbcdc8, 0x00fdfefa, 0x00fefef9, 0x00fdfbf9, 0x00fefcfa, 0x00e9e6e4, 0x00979393,
- 0x0038352d, 0x0039322a, 0x00352d24, 0x00322920, 0x00352720, 0x003a2620, 0x003a241e, 0x00371e19, 0x002e120c, 0x00250600, 0x00150100, 0x00010101, 0x00040000, 0x000c0000, 0x00170606, 0x00230909,
- 0x00310d09, 0x003a0e08, 0x00441006, 0x004c1306, 0x005b1d0e, 0x006c2b17, 0x00793822, 0x007f402d, 0x00773e2c, 0x00663625, 0x00552c1c, 0x004b291d, 0x003f271f, 0x00392722, 0x003c2e2a, 0x003f3432,
- 0x00503f2a, 0x005b4836, 0x00655444, 0x0068594b, 0x00706057, 0x006b5e56, 0x00685e56, 0x00615750, 0x005a514f, 0x00554d4b, 0x00726c66, 0x008e8b80, 0x00a7a198, 0x00b9b5a8, 0x00cecbba, 0x00dad8c7,
- 0x00e2e1cb, 0x00e8e5cc, 0x00dfdcc2, 0x00d4d3b6, 0x00c1c0a2, 0x00b0a68b, 0x00a7957b, 0x00978263, 0x008c714e, 0x007e6340, 0x00664a28, 0x004e3416, 0x00483724, 0x00776e62, 0x00b5b3ac, 0x00bcbfbc,
- 0x00b7b6ad, 0x00b4b6ac, 0x00b3b4ab, 0x0095968d, 0x007f8279, 0x0093968d, 0x008a8f87, 0x00545c54, 0x00646d6c, 0x00a7b3b0, 0x00b7c0bc, 0x00b0b3a7, 0x00a3a89c, 0x00a7ab9c, 0x00a4a696, 0x00909584,
- 0x005c5f55, 0x00353730, 0x00111111, 0x00040408, 0x0002010c, 0x00060a0d, 0x000e120f, 0x00181510, 0x00211815, 0x002a2120, 0x002e262d, 0x002f2b3c, 0x003b4268, 0x003e5181, 0x00465f9c, 0x003e5fa5,
- 0x00234eb2, 0x002247af, 0x002343b1, 0x002744b4, 0x002345b4, 0x001b43aa, 0x001741a3, 0x001c449f, 0x001e398f, 0x002a3c93, 0x00525da1, 0x00757f9f, 0x0059647d, 0x00202839, 0x00050916, 0x00090f14,
- 0x00191b1b, 0x00282928, 0x00242524, 0x00121212, 0x000b0a0a, 0x00100e0d, 0x0013110e, 0x0014120d, 0x0018150c, 0x001b170f, 0x001d180f, 0x001c180e, 0x007e7a74, 0x00e9e8e3, 0x00fdfffd, 0x00fafdfe,
- 0x00fdfdfe, 0x00fafafc, 0x00ecedec, 0x00ececeb, 0x00ffffff, 0x00fefefe, 0x00fafaf9, 0x00fdfdfc, 0x00f6f6f4, 0x00dad9da, 0x00bcbcbf, 0x00bab9bf, 0x00bbbac3, 0x00babac0, 0x00b8b7bd, 0x00b6b4bd,
- 0x00b4b3b8, 0x00b2b0b5, 0x00acabb0, 0x00a6a5aa, 0x009c9ba1, 0x00918f9e, 0x00868598, 0x00827f93, 0x00858194, 0x00898599, 0x008c879c, 0x008c879c, 0x00918ca1, 0x009692a6, 0x009d99ad, 0x00a19fb1,
- 0x00aaa6b1, 0x00acaab3, 0x00b0afb8, 0x00b5b3bb, 0x00b9b7c0, 0x00bebbc4, 0x00bfbcc6, 0x00bcbbc5, 0x00b6b3bd, 0x00b0adb8, 0x00a9a9b0, 0x00a6a1a8, 0x00a09aa0, 0x009a939b, 0x009b949b, 0x00a39499,
- 0x00ad9797, 0x00b2958f, 0x00b38d83, 0x00af8273, 0x00ad7663, 0x00b06848, 0x00aa5e38, 0x00a56343, 0x00a27460, 0x00a08276, 0x00a3938c, 0x00a19b99, 0x009b9b9b, 0x00939492, 0x00898b8a, 0x00868985,
- 0x008a8e89, 0x008a8c8b, 0x008f8e95, 0x00928f9c, 0x008f8b9d, 0x00878594, 0x0072737c, 0x005c6062, 0x00464841, 0x00363729, 0x002a221d, 0x002f1725, 0x00291f18, 0x00151d16, 0x00455860, 0x006b8eac,
- 0x00517acd, 0x003d68cf, 0x00315dc7, 0x002852b3, 0x002d579d, 0x002a4786, 0x001c3368, 0x0012285b, 0x00162951, 0x00132b54, 0x000b2b57, 0x00052c5b, 0x00062e65, 0x00082b5c, 0x00152c5c, 0x001e2c59,
- 0x00143865, 0x00103361, 0x00254978, 0x003c5e8f, 0x00456297, 0x003f5d8f, 0x001a3767, 0x000b2856, 0x001b345d, 0x001c385a, 0x00243e55, 0x004d605e, 0x00b79092, 0x00a8879c, 0x006c6995, 0x004273ba,
- 0x00327de4, 0x003b6cd1, 0x003b5ac0, 0x003c57b6, 0x002265c8, 0x002864be, 0x00497acb, 0x00527dc1, 0x007998cb, 0x008eacd5, 0x0091abce, 0x006f88a5, 0x0031415b, 0x00292e43, 0x002f2b39, 0x0034262e,
- 0x00342b2f, 0x00372d2c, 0x003f3431, 0x00443732, 0x0041352c, 0x0040372c, 0x0099948b, 0x00f0f2e7, 0x00fbfef9, 0x00f9fefc, 0x00fcfeff, 0x00fef9fb, 0x00a1a9c0, 0x001d2e50, 0x00061941, 0x00061842,
- 0x000c0920, 0x003d2830, 0x009c736d, 0x00b4826e, 0x0083472b, 0x0032221a, 0x000b0c0f, 0x0007060a, 0x000e0b0d, 0x000b0808, 0x000f0c0a, 0x0013100e, 0x00120f0f, 0x001b1818, 0x00494746, 0x00666665,
- 0x00625d77, 0x00494556, 0x00777378, 0x00aba7a5, 0x00bcb7b5, 0x00c5bfc3, 0x00d3cbd7, 0x00dfd7e7, 0x00eae2f0, 0x00eee6ed, 0x00e9e7ee, 0x00e3ecf3, 0x00eaf0f3, 0x00ecefec, 0x00edece8, 0x00f2efea,
- 0x00f1f1f3, 0x00eff0fc, 0x00c1c5db, 0x0079829d, 0x002e3960, 0x001a2229, 0x00131414, 0x001a1621, 0x0017091c, 0x00382535, 0x005c474f, 0x003b2623, 0x002a170e, 0x002b1b14, 0x00291c1c, 0x0023181f,
- 0x00221310, 0x001d100c, 0x001c100c, 0x001c110c, 0x001e110c, 0x0027130c, 0x00361a0f, 0x00462417, 0x005d3426, 0x00734234, 0x0082483c, 0x008a4240, 0x00875541, 0x0096603c, 0x00a66e39, 0x00b4743a,
- 0x00926c64, 0x00555c89, 0x00425eb9, 0x003763dd, 0x004864dd, 0x004262d8, 0x004065d7, 0x003763de, 0x003466e5, 0x003462dd, 0x002b53c8, 0x002e50ba, 0x00344ead, 0x00324ba8, 0x00425cb7, 0x005475d0,
- 0x004465ca, 0x003353bb, 0x002648b2, 0x001e40ae, 0x001e3cae, 0x00213fae, 0x0017339b, 0x001b3196, 0x001a3387, 0x00142977, 0x0017235f, 0x0015132d, 0x000c081c, 0x000e0a14, 0x000b0a0d, 0x000a0c06,
- 0x00080a02, 0x000f110b, 0x000b0b09, 0x000a0b0e, 0x0011121a, 0x006d6f6e, 0x00edefeb, 0x00fcfefd, 0x00fcfdfd, 0x00fbfeff, 0x00f9fcfb, 0x00cacecd, 0x00747478, 0x00747477, 0x00b3b2b3, 0x00dcdbdc,
- 0x00faf5e8, 0x00fdfaf1, 0x00fffdfa, 0x00fffdfd, 0x00fffcfe, 0x00fffbff, 0x00fdfcff, 0x00fcfcff, 0x00fcfffe, 0x00fbfff8, 0x00fbfef9, 0x00fafdfd, 0x00fafdfc, 0x00fafdfc, 0x00fbfefd, 0x00fafdfd,
- 0x00fbfcfe, 0x00fcfdfc, 0x00fafdfd, 0x00fafffd, 0x00fcfefe, 0x00fcfcfc, 0x00fbfcfd, 0x00fdfefd, 0x00fdfcfc, 0x00fdfcfd, 0x00fcfbfd, 0x00fbfbfc, 0x00fdfdfd, 0x00fefdfd, 0x00fdfbfc, 0x00fdfbfc,
- 0x00fefdff, 0x00fcfbfe, 0x00fefcff, 0x00fcfafc, 0x00fdf9fc, 0x00fdfafd, 0x00fbf9fd, 0x00f9f9fd, 0x00f9f6fc, 0x00f8f5fc, 0x00f5f3f6, 0x00eeefeb, 0x00ebece8, 0x00e3e4e1, 0x00dfdfdb, 0x00e1e0dc,
- 0x00dadad5, 0x00d9d8d3, 0x00d4d2cd, 0x00cbcac5, 0x00c2c2bd, 0x00babfb5, 0x00b2bab0, 0x00adb2b1, 0x00a4a2af, 0x009e9da5, 0x0099989b, 0x0093938e, 0x0094938d, 0x00a19f9c, 0x00c3bfc2, 0x00e0dae4,
- 0x00f3f4f2, 0x00fbfcf9, 0x00fefffc, 0x00fffffe, 0x00fefdfb, 0x00fefdfc, 0x00fffffe, 0x00fffdfb, 0x00fefefc, 0x00fefdfd, 0x00fefcfb, 0x00fefdfb, 0x00fffefe, 0x00fffefd, 0x00fffefb, 0x00fffdfc,
- 0x00fdfffb, 0x00fdfffb, 0x00fdfffb, 0x00fcfffb, 0x00fefffd, 0x00fefffd, 0x00fdfefd, 0x00fdfefd, 0x00fdfefa, 0x00fdfefa, 0x00fbfdfa, 0x00fbfdfa, 0x00fefdfb, 0x00fefdfb, 0x00fdfdfb, 0x00fdfdfb,
- 0x00fdfffd, 0x00fdfffd, 0x00fdfffd, 0x00fdfffd, 0x00fdfffd, 0x00fdfffd, 0x00fdfffd, 0x00fdfffd, 0x00fbfefa, 0x00fdfffd, 0x00fdfefe, 0x00fefdfe, 0x00fffdfe, 0x00fefcfe, 0x00fcfafd, 0x00fbf9fd,
- 0x00fbfcfd, 0x00fafcfd, 0x00fbfdfc, 0x00fcfcfb, 0x00fdfcfd, 0x00fdfdfe, 0x00fdfefc, 0x00fdfdfd, 0x00fdfefc, 0x00fdfefc, 0x00fbfefd, 0x00fbfdfd, 0x00fcfcfd, 0x00fcfcfd, 0x00fafcfe, 0x00fafdfe,
- 0x00fdfefe, 0x00fcfefe, 0x00fcfefe, 0x00fbfdfd, 0x00fcfdfe, 0x00fcfefe, 0x00fbfdfd, 0x00fcfefe, 0x00fdfefd, 0x00fcfdfd, 0x00fcfdfc, 0x00fefefd, 0x00fdfcfd, 0x00fdfdfd, 0x00fefdfd, 0x00fefdfe,
- 0x00fdfefc, 0x00fdfefe, 0x00fdfcfe, 0x00fcfcfd, 0x00fefefe, 0x00fefefe, 0x00fefdfe, 0x00fffefd, 0x00fdfefd, 0x00fefdfd, 0x00fefdfe, 0x00fdfcfd, 0x00fdfafd, 0x00fdfbfe, 0x00fdfdfe, 0x00fefefe,
- 0x00fcfdfc, 0x00fefefd, 0x00fefefd, 0x00fdfdfd, 0x00fdfdfc, 0x00fcfcfb, 0x00fdfcfb, 0x00fefefc, 0x00fffefd, 0x00fffffd, 0x00fbfcfb, 0x00f7faf9, 0x00f9fcfe, 0x00fafdfd, 0x00fcfefe, 0x00fefeff,
- 0x00fcfffc, 0x00fffffe, 0x00fefffd, 0x00ffffff, 0x00fffeff, 0x00fcfcf8, 0x00d0d3ce, 0x00878986, 0x00868882, 0x00b6b8b3, 0x00e5e9e5, 0x00f3f8f6, 0x00fbfdff, 0x00f8fbfd, 0x00f1f5f8, 0x00f2f7fa,
- 0x00f8f8f1, 0x00fdfef9, 0x00fafefa, 0x00f8fefb, 0x00f8fffe, 0x00cbd2d2, 0x00111818, 0x00161c1d, 0x00191b18, 0x00171c17, 0x001c1a17, 0x00241a18, 0x002b2221, 0x002d2725, 0x001f1c19, 0x0010110a,
- 0x00070801, 0x00050600, 0x00080705, 0x000d090e, 0x00171017, 0x00211c18, 0x0028251b, 0x00292920, 0x002c302b, 0x004b4e48, 0x00787c73, 0x008c8d7e, 0x00887f69, 0x00706043, 0x00604a26, 0x0065471f,
- 0x00604939, 0x00654f41, 0x005e4c3f, 0x005c5244, 0x00605d51, 0x00606157, 0x00494d46, 0x002b2f2d, 0x000e1210, 0x00070a0a, 0x000c0e0f, 0x00151715, 0x00211f23, 0x00191a1d, 0x00161619, 0x00100e0f,
- 0x000c0f11, 0x000e1111, 0x00141413, 0x00191a16, 0x00201d1b, 0x0028241f, 0x0043352c, 0x005e4132, 0x007f3f26, 0x008b391d, 0x00933517, 0x008c2a0b, 0x0078200b, 0x006e2819, 0x00773e36, 0x007e504d,
- 0x007e6364, 0x00807179, 0x007e7889, 0x00626883, 0x00404a66, 0x003d4356, 0x003c3f4a, 0x003d373d, 0x003c363a, 0x00433f42, 0x005d5d67, 0x006e7489, 0x00767c86, 0x00676d69, 0x00484a3b, 0x003a3c24,
- 0x003c3a21, 0x00302b19, 0x00231b13, 0x001f1719, 0x00291c2d, 0x0036222d, 0x003d2e2f, 0x00323128, 0x00254041, 0x005278a1, 0x00537fd0, 0x003b65e3, 0x004363e4, 0x006685cf, 0x00b5d3e8, 0x00c7e6c6,
- 0x00e2ebe8, 0x00ebf4f4, 0x00ebf3f3, 0x00edf5f6, 0x00f0f8fa, 0x00eff7f6, 0x00f0f8f6, 0x00eef6f6, 0x00ecf3f5, 0x00e9f1f0, 0x00ecf2f2, 0x00f3f6f7, 0x00f6f8f7, 0x00f5f9fa, 0x00f4f9fb, 0x00f5f9f8,
- 0x00ebeced, 0x00d9dbdc, 0x00d0d2d5, 0x00d4d6d8, 0x00dee0e1, 0x00dbdfe2, 0x00e0e4e9, 0x00abadb3, 0x00aba6b0, 0x00c1bbc4, 0x00dcd6df, 0x00e2dee2, 0x00ebe9ea, 0x00f0efec, 0x00f2f2ee, 0x00f4f3ee,
- 0x00e1d7d5, 0x00a0959c, 0x00777080, 0x00595673, 0x002b2e5c, 0x00202452, 0x00242851, 0x00363958, 0x00484053, 0x00474048, 0x00594a42, 0x00714f3d, 0x00886a64, 0x00ab9797, 0x00c3bac2, 0x00b7b7c7,
- 0x00bfc1de, 0x00bbbcdd, 0x00bebfdf, 0x00c4c1e2, 0x00d3cdf1, 0x00d4ccfb, 0x00746bba, 0x0021167b, 0x0040318b, 0x007b6a93, 0x00a9989b, 0x008d7a66, 0x00322229, 0x00070412, 0x00040c1f, 0x00031c24,
- 0x001b206b, 0x001d256c, 0x001a2169, 0x00152367, 0x00323f88, 0x005668b5, 0x005462b3, 0x00344094, 0x00393e9c, 0x00393ea1, 0x004a4e9d, 0x00a2a6ca, 0x00e7ede3, 0x00dfdedc, 0x00eee6eb, 0x00f6ecf7,
- 0x00f5f3e3, 0x00edeef9, 0x00888fb7, 0x00293381, 0x00627ab7, 0x00c8d0eb, 0x00dde0e3, 0x00d6d0d0, 0x00c7afa4, 0x00ae8b7a, 0x00bf9477, 0x00d09d7d, 0x00b87b62, 0x007b3726, 0x0059180a, 0x0058140d,
- 0x005c1213, 0x004e1211, 0x004b1b1e, 0x00401c22, 0x00211219, 0x00141013, 0x00080a0b, 0x00030705, 0x00050a07, 0x00090c08, 0x00080a05, 0x00050905, 0x00040605, 0x000e0c0c, 0x00191412, 0x001f1715,
- 0x003d3737, 0x00423e3c, 0x0023221b, 0x00161811, 0x001d2118, 0x00161c18, 0x000f1611, 0x000d110e, 0x0049494a, 0x00b9b9b9, 0x00fdfefe, 0x00fefffc, 0x00fbfaf9, 0x00fdfdfb, 0x00e8e5e2, 0x00888684,
- 0x00261c16, 0x00251a13, 0x00241912, 0x00281c15, 0x002d1c17, 0x0034221a, 0x0038241c, 0x0039211a, 0x00351a13, 0x002c0f08, 0x001b0602, 0x000a0603, 0x00070200, 0x000d0100, 0x00150201, 0x001d0503,
- 0x002c0809, 0x00360c08, 0x00421208, 0x004c190b, 0x005a2312, 0x00682c15, 0x00703217, 0x0076391f, 0x00753f2d, 0x006a3b29, 0x005c3423, 0x00593628, 0x004f342a, 0x004b382f, 0x004f4038, 0x00524740,
- 0x005c4f41, 0x0067594d, 0x00796c5f, 0x0083776a, 0x00897f75, 0x008a827a, 0x00807b73, 0x0078736e, 0x00696162, 0x00655c5e, 0x00a5a19d, 0x00e3e0d3, 0x00e9e5db, 0x00e5dfd3, 0x00e6e4d3, 0x00dbd8c4,
- 0x00cec8b7, 0x00bfbaa5, 0x00a4a08a, 0x008d8c73, 0x00726f56, 0x00695a44, 0x006d5a40, 0x00705837, 0x00785a39, 0x00755635, 0x00654625, 0x0054391c, 0x00392919, 0x003e362d, 0x007f7e79, 0x00b9bcbc,
- 0x00d9d5d1, 0x00dbdbd3, 0x00bab9af, 0x00908e82, 0x0069685d, 0x0077766d, 0x00767771, 0x003b403b, 0x00303233, 0x006e7673, 0x0096a09d, 0x00a5a9a0, 0x009ea299, 0x00909285, 0x00898a7a, 0x00939784,
- 0x00aca89c, 0x00837e76, 0x0055524b, 0x00383531, 0x00171010, 0x000d0716, 0x00110e1c, 0x00201b21, 0x002b2622, 0x002c2824, 0x002a2d2c, 0x00313846, 0x00364779, 0x00324995, 0x003049ae, 0x002946bb,
- 0x00224da0, 0x00284ca7, 0x002b49b5, 0x002945ba, 0x002443bd, 0x002242b7, 0x001a3ca6, 0x001a3a9a, 0x0025388e, 0x002c3b8c, 0x003a457e, 0x00454b69, 0x003f465d, 0x001f2838, 0x000f131d, 0x000e1214,
- 0x001c1c1d, 0x00363536, 0x003d3d3d, 0x00282727, 0x00121111, 0x000f0e0c, 0x0013120d, 0x0015140d, 0x00211913, 0x00221a14, 0x00221a12, 0x001c170d, 0x0078746d, 0x00e4e4de, 0x00fcfffc, 0x00f8fcfc,
- 0x00fffeff, 0x00fefdfe, 0x00f1f1f0, 0x00efefed, 0x00fdfdfe, 0x00fefefe, 0x00fafbf9, 0x00fcfdfb, 0x00f7f5f7, 0x00dddbdc, 0x00bdbcbf, 0x00bcb9bf, 0x00bebec3, 0x00c0bfc2, 0x00bebfc2, 0x00bfbfc4,
- 0x00c1bec4, 0x00c0bdc2, 0x00bdbbbf, 0x00b9b8bd, 0x00b0afb3, 0x00a5a3ae, 0x009c99a7, 0x009895a4, 0x009d99ab, 0x009f9cad, 0x00a3a0b1, 0x00a6a4b3, 0x00aba9b8, 0x00aeadbc, 0x00b4b2c1, 0x00b8b6c5,
- 0x00c1bdc7, 0x00c0bdc7, 0x00c1c0c8, 0x00c4c3c9, 0x00c6c5cb, 0x00c7c5ca, 0x00c4c4c8, 0x00c0c1c4, 0x00c0bbc6, 0x00bcb7c0, 0x00b3b1b9, 0x00ada8b1, 0x00a59fa4, 0x00a2999d, 0x00a0999e, 0x00a59b9f,
- 0x00b89ea0, 0x00bb9d99, 0x00bb978e, 0x00b78c7d, 0x00af7c6a, 0x00b06c50, 0x00a7603e, 0x00a26146, 0x00a57567, 0x00a2827c, 0x00a6928f, 0x00a19799, 0x00999799, 0x00919391, 0x00888a88, 0x00858783,
- 0x008b8b8d, 0x008b8b8e, 0x008f8e95, 0x00918f9a, 0x008d8a98, 0x00878490, 0x00757279, 0x00636063, 0x004f4b44, 0x003d382d, 0x002e261e, 0x00361e26, 0x002b231b, 0x001d251e, 0x005f7379, 0x007da1bc,
- 0x005379cf, 0x003c65cb, 0x003963cb, 0x00335dbb, 0x00315a9f, 0x00254282, 0x001b3069, 0x0013285a, 0x00152250, 0x00162a54, 0x0015325b, 0x00103561, 0x0011366b, 0x00143466, 0x00233968, 0x0034456d,
- 0x004c6991, 0x004e6c93, 0x0056759e, 0x00617fac, 0x00516d9e, 0x003b5583, 0x00132f59, 0x00021c44, 0x000d224e, 0x00172c56, 0x00263953, 0x004f585f, 0x00997d8a, 0x0085748e, 0x004c5580, 0x0030629f,
- 0x003b73d6, 0x004d6fda, 0x005168ce, 0x004d60c3, 0x002d6bbd, 0x00467fce, 0x007eadf0, 0x0085afec, 0x008197ca, 0x006c84ae, 0x006a84a5, 0x0066819b, 0x0036475a, 0x001e2432, 0x00232229, 0x002d2423,
- 0x00352b33, 0x00362c2e, 0x003c3130, 0x003e322d, 0x003a2c24, 0x00372c22, 0x00908981, 0x00edeee4, 0x00fffdfd, 0x00f9fdfc, 0x00f8fdfc, 0x00fefcfb, 0x00a3a9b6, 0x001e293c, 0x0000071e, 0x0000041c,
- 0x00170a17, 0x00593b3a, 0x00b99285, 0x00b4826a, 0x005f3010, 0x0022130c, 0x000a0b0d, 0x000b0c0c, 0x000f080b, 0x00110b0c, 0x00171110, 0x00191412, 0x001c1716, 0x0013110e, 0x001b1a19, 0x002c2d2d,
- 0x00645e6c, 0x0079757b, 0x0092908d, 0x00abaaa3, 0x00b2afad, 0x00b3afb3, 0x00c3bec7, 0x00d2cdd7, 0x00e7e2ea, 0x00efe9e9, 0x00ecedea, 0x00e8efeb, 0x00e7ebe5, 0x00e7eae4, 0x00edf0ed, 0x00f5f4f1,
- 0x00eae9f9, 0x00c4c3e0, 0x006b6f98, 0x002e386c, 0x001b2966, 0x001d2848, 0x00121828, 0x00101222, 0x001a0f1d, 0x00483843, 0x00675559, 0x003a2a29, 0x00251515, 0x00281a1b, 0x00201618, 0x00170f12,
- 0x0026100b, 0x0028130d, 0x0028150f, 0x002b1911, 0x002c1a10, 0x00361f13, 0x0046271a, 0x004f2b1d, 0x005f2f22, 0x00703e2d, 0x008c5443, 0x00a56256, 0x00a77563, 0x00b98462, 0x00c48c60, 0x00c78856,
- 0x00936d71, 0x00545990, 0x003e5eba, 0x003465dc, 0x003f60d3, 0x00385ad1, 0x003a60d8, 0x003561d9, 0x00486fe3, 0x004366cd, 0x001c3994, 0x001a307a, 0x00172665, 0x00142566, 0x001e3275, 0x00213e85,
- 0x002b45aa, 0x002e49b1, 0x002849b2, 0x002144b1, 0x001e3cae, 0x001b38a7, 0x00153299, 0x001a3195, 0x001a2d83, 0x00172877, 0x0018235d, 0x0015142e, 0x00080617, 0x000b0915, 0x0009070c, 0x00090908,
- 0x000a0905, 0x00100e0b, 0x000c0a08, 0x000a0809, 0x001f1d26, 0x00828482, 0x00f2f4f1, 0x00fdfefb, 0x00fefeff, 0x00fbfdff, 0x00f7f8f9, 0x00c3c5c5, 0x006e6e6e, 0x007d7f7c, 0x00b7bab3, 0x00dfe4da,
- 0x00fdf4fc, 0x00fefafe, 0x00fefeff, 0x00fefdfd, 0x00fefcfd, 0x00fdfdfc, 0x00fbfefc, 0x00fafffc, 0x00ffffff, 0x00fcfffa, 0x00fbfef8, 0x00fbfdfb, 0x00fbfef8, 0x00fbfef9, 0x00fbfef9, 0x00fbfff9,
- 0x00fafefc, 0x00fcfefa, 0x00fbfffa, 0x00fafff8, 0x00fdfffb, 0x00fdfdf9, 0x00fcfdfc, 0x00fdfefd, 0x00fffffd, 0x00fffefd, 0x00fefdfd, 0x00fdfefb, 0x00fefefa, 0x00fefffb, 0x00fefefa, 0x00fefef9,
- 0x00fefdfd, 0x00fdfdfc, 0x00fcfefb, 0x00fbfefa, 0x00fafdfa, 0x00f8fbf9, 0x00f8fdf9, 0x00f6fcf8, 0x00fcfefd, 0x00fefefe, 0x00fbfdf8, 0x00fcfdf8, 0x00f8f9f4, 0x00ecf1ec, 0x00e7ede5, 0x00edf0eb,
- 0x00eeefef, 0x00ececec, 0x00e8eae7, 0x00e3e5e2, 0x00e0e3df, 0x00d8ded5, 0x00d3d8d0, 0x00d0d1d3, 0x00cbcbd9, 0x00c7c7d1, 0x00bfbfc5, 0x00b9b9b8, 0x00b9b8b5, 0x00bfbdbd, 0x00d3d1d6, 0x00e5e1ed,
- 0x00f3f4f4, 0x00f6f6f6, 0x00f5f5f2, 0x00f6f7f5, 0x00f5f6f2, 0x00f4f3f2, 0x00f4f5f2, 0x00f3f4f2, 0x00f9f4f8, 0x00f8f5f7, 0x00f6f5f3, 0x00f5f6f2, 0x00f6f7f6, 0x00f5f7f5, 0x00f3f6f2, 0x00f3f6f3,
- 0x00f9f6f5, 0x00f8f7f5, 0x00f6f6f4, 0x00f5f5f3, 0x00f6f6f4, 0x00f6f6f3, 0x00f5f6f2, 0x00f4f6f2, 0x00f8f7f6, 0x00f8f7f5, 0x00f6f7f4, 0x00f5f7f4, 0x00f8f7f6, 0x00f7f7f6, 0x00f5f7f5, 0x00f6f7f4,
- 0x00f4f6f3, 0x00f4f6f3, 0x00f4f6f3, 0x00f4f6f3, 0x00f4f6f3, 0x00f4f6f3, 0x00f4f6f3, 0x00f4f6f3, 0x00f7f7f6, 0x00f6f6f5, 0x00f4f4f3, 0x00f5f3f4, 0x00fbf8fa, 0x00fcfbfc, 0x00fbfbfb, 0x00fbfafa,
- 0x00fcfcfe, 0x00fbfcfd, 0x00fbfcfa, 0x00fbfbf8, 0x00fcfafa, 0x00fafbfa, 0x00f9fbf9, 0x00f9fbfa, 0x00fdfbfd, 0x00fdfbfc, 0x00fafcfb, 0x00f8fcfb, 0x00fbfbfc, 0x00fbfbfc, 0x00f9fdfb, 0x00fbfcfb,
- 0x00fafbfd, 0x00fafdfd, 0x00f9fdfc, 0x00fafcfc, 0x00fbfcfc, 0x00fcfdfd, 0x00fafbfb, 0x00fbfdfc, 0x00fffcfe, 0x00fefcff, 0x00fbfbfc, 0x00fafbfa, 0x00fbfafb, 0x00fafbf9, 0x00f9faf8, 0x00f9fbf9,
- 0x00fcfafa, 0x00fbfafa, 0x00f9f9f9, 0x00fafaf9, 0x00fcfcfa, 0x00fcfcfb, 0x00fafcfb, 0x00fbfdfb, 0x00fffcff, 0x00fefbfd, 0x00fafbfb, 0x00f7f9f9, 0x00f9f6f9, 0x00fbf9fb, 0x00fbfcfb, 0x00fbfcf9,
- 0x00fdfbfd, 0x00fdfcfd, 0x00fcfcfb, 0x00fbfcfa, 0x00fcfcfb, 0x00fbfbfb, 0x00fafbf9, 0x00fafcf9, 0x00fdfafc, 0x00fcfafb, 0x00f8f7f6, 0x00f5f6f7, 0x00f6f8fa, 0x00f4f7f8, 0x00f3f5f3, 0x00f5f5f3,
- 0x00f5f5f4, 0x00f5f4f5, 0x00f6f4f4, 0x00f6f4f5, 0x00f9f5f8, 0x00f9f7f5, 0x00cccdc7, 0x00868781, 0x00878481, 0x00b6b4b1, 0x00e8eae5, 0x00f4f8f3, 0x00fdfffc, 0x00fcfefc, 0x00fafefe, 0x00fbfdfe,
- 0x00fefafe, 0x00fffdff, 0x00fbfcfd, 0x00f9fefd, 0x00f8feff, 0x00b8bdc1, 0x00101418, 0x0012161b, 0x001f191c, 0x00222121, 0x002a2321, 0x002f211e, 0x0030241f, 0x002c2521, 0x001c1b15, 0x00090f05,
- 0x00040405, 0x00010101, 0x00030205, 0x000b0c11, 0x001b171d, 0x00201e1b, 0x00292622, 0x002f2d2c, 0x002c3033, 0x00434347, 0x00696b6c, 0x0082817e, 0x008d8479, 0x007d6e5c, 0x005c4930, 0x00604728,
- 0x006b5451, 0x00725d5c, 0x00624f4d, 0x004d413c, 0x0045403a, 0x0044453e, 0x003a3d38, 0x002a2c2c, 0x0019171c, 0x000c0b11, 0x00050206, 0x000a0a08, 0x00131415, 0x00111718, 0x000e1315, 0x00080e0e,
- 0x0007090e, 0x00080f0f, 0x000d1313, 0x00141815, 0x001a1717, 0x001c1d1b, 0x002f2a24, 0x00433024, 0x00662f1b, 0x00762e18, 0x00823116, 0x00892f13, 0x007c290e, 0x007a3019, 0x00864732, 0x008d5747,
- 0x00856b6b, 0x0082727b, 0x00726b7a, 0x0052596f, 0x00303b52, 0x002f3443, 0x002d2e38, 0x002f282e, 0x002e262c, 0x00302b30, 0x00413d4a, 0x00595972, 0x00767180, 0x006d6b6e, 0x0057534b, 0x003c3728,
- 0x003b301a, 0x00352a16, 0x00322612, 0x00332718, 0x00362720, 0x00382327, 0x00322222, 0x002d2623, 0x001c2d34, 0x00405a80, 0x004868ab, 0x003554bb, 0x003951b9, 0x005d76b3, 0x00b2c8dd, 0x00c0d6c4,
- 0x00e2e8ec, 0x00ebf3f6, 0x00ebf5f2, 0x00ecf7f4, 0x00f1f9fb, 0x00edf6f6, 0x00edf6f3, 0x00edf5f5, 0x00edf2f5, 0x00e8eef3, 0x00e9efef, 0x00ecf0f0, 0x00f2f5f7, 0x00f3f6fa, 0x00f3f6f6, 0x00f0f1f2,
- 0x00ededf1, 0x00eaebed, 0x00edf0f2, 0x00eff2f3, 0x00ecefef, 0x00e8eded, 0x00e4e8ed, 0x0076767e, 0x002b232c, 0x00544b51, 0x0090878e, 0x00aaa0a3, 0x00bdb6b7, 0x00c1bcba, 0x00bfbeb6, 0x00c1c2b8,
- 0x00f0f6dc, 0x00e7ecd9, 0x00d2d2cf, 0x00c1c7cd, 0x009aa1b8, 0x00888da5, 0x007e7e94, 0x007f7b8c, 0x00797a74, 0x006e6b5b, 0x0066564d, 0x00755d5d, 0x00a5959b, 0x00c8bdc6, 0x00b7b1c4, 0x00b5b4ca,
- 0x00b6bfd6, 0x00b4bad4, 0x00bfc1df, 0x00c8c6e4, 0x00d2cdeb, 0x00d1c8fa, 0x008679c3, 0x003f2b86, 0x004b3977, 0x00796179, 0x00b19491, 0x00ac8b78, 0x00452f2b, 0x00090711, 0x00050f25, 0x00001a33,
- 0x00091752, 0x00132361, 0x001d296b, 0x00172269, 0x00262e7e, 0x00293086, 0x002a318e, 0x002d3697, 0x002e409e, 0x00283a9a, 0x004b55aa, 0x009a9dc8, 0x00e1e7e1, 0x00e3e0e0, 0x00ebe2e7, 0x00f4e9f5,
- 0x00edf1d7, 0x00e9f0f0, 0x00929ac0, 0x002e3884, 0x006075b5, 0x00c2ceeb, 0x00e3e1e9, 0x00e0d4d3, 0x00cab290, 0x00b28e62, 0x00c38e62, 0x00d49b6d, 0x00d39b76, 0x00986449, 0x00421005, 0x00330804,
- 0x002b0800, 0x00260802, 0x00291111, 0x002c1d20, 0x001a1b1b, 0x000d1213, 0x00212526, 0x00313632, 0x00272f1e, 0x00242714, 0x00272719, 0x00242c1e, 0x00292d23, 0x001f2118, 0x001a1512, 0x002d2621,
- 0x003a3b31, 0x002c2e26, 0x00242621, 0x00151813, 0x00181e19, 0x00212522, 0x00181b19, 0x00111613, 0x00353b34, 0x00a5a8a2, 0x00fdfcf9, 0x00fcfdfb, 0x00fefdfb, 0x00fffefd, 0x00efecec, 0x0094918f,
- 0x0019120b, 0x0019120b, 0x001e110c, 0x0024120f, 0x00271511, 0x002c1a15, 0x00331f19, 0x00321e18, 0x00241609, 0x001c0a00, 0x00140500, 0x000c0102, 0x00090001, 0x000d0000, 0x00160405, 0x001e0507,
- 0x00220a05, 0x002a0f07, 0x0038150a, 0x00401c0e, 0x004d2616, 0x005b2a16, 0x00682f1a, 0x006c3622, 0x00663e23, 0x00633d24, 0x00674330, 0x00694b3b, 0x00604c3f, 0x005c4c42, 0x005e4f46, 0x005f5048,
- 0x00494839, 0x00434234, 0x004b4940, 0x0052504a, 0x00504d49, 0x00484444, 0x00363035, 0x002c252b, 0x00141916, 0x00191d1a, 0x00787874, 0x00d5d1c2, 0x00d8d6c5, 0x00c5c0b0, 0x00b4af9f, 0x009a9686,
- 0x006b6f57, 0x00505440, 0x003e3c2c, 0x00353223, 0x00302d1f, 0x00442f1e, 0x0060432e, 0x006d4d35, 0x0074542d, 0x0071502d, 0x00694629, 0x005e3c22, 0x003e2718, 0x00261811, 0x00372e2e, 0x0057545c,
- 0x00757864, 0x008a8c76, 0x00908c7e, 0x007e7669, 0x00584f44, 0x004d443b, 0x00504543, 0x00363130, 0x00111312, 0x00424545, 0x00909295, 0x00969b9a, 0x008a8d89, 0x0064635a, 0x0057544a, 0x008c8679,
- 0x0096957b, 0x007f7d65, 0x00887f68, 0x008f816f, 0x00746152, 0x005b494f, 0x003e2e39, 0x002e242b, 0x001d2525, 0x001c2d36, 0x00293b55, 0x0033487a, 0x002d4aa1, 0x002747b9, 0x002c4bd5, 0x002a4ce4,
- 0x00255691, 0x00234d9e, 0x002648af, 0x002946c4, 0x00263fc2, 0x00273fb7, 0x00293faa, 0x003548a2, 0x00374886, 0x002b3a71, 0x00262e57, 0x001e1f36, 0x000e1021, 0x00060715, 0x0006050e, 0x0004010a,
- 0x00000500, 0x000d100b, 0x001b1a18, 0x001c1b1a, 0x00121113, 0x0015110f, 0x001c1511, 0x001f1915, 0x001e1a0a, 0x001f1b0b, 0x00241d0f, 0x001d150b, 0x006b655f, 0x00d9d7d5, 0x00ffffff, 0x00fdfdff,
- 0x00fafdfc, 0x00fafcfa, 0x00f1f3f2, 0x00efefef, 0x00fefefe, 0x00fffeff, 0x00fffdfe, 0x00fffeff, 0x00f4f6f3, 0x00dadddb, 0x00c1c1c1, 0x00bfbfbf, 0x00bfc0c0, 0x00c0bfc0, 0x00c5c2c4, 0x00c5c3c7,
- 0x00bec2bf, 0x00bfc2c0, 0x00c4c2c4, 0x00c2c0c1, 0x00b9b9ba, 0x00b2b1b9, 0x00ada9b6, 0x00aaa8b2, 0x00a7aab2, 0x00acaeb6, 0x00b3b2bb, 0x00bab8c1, 0x00bebbc6, 0x00c2bfca, 0x00c7c3cf, 0x00cac5d0,
- 0x00c3c6c5, 0x00c3c6c6, 0x00c8c8ca, 0x00cccbce, 0x00cfccd2, 0x00cac7cd, 0x00c6c3c9, 0x00c1bec3, 0x00b4b7b8, 0x00afb2b1, 0x00b0adaf, 0x00a8a5a9, 0x00a29ca2, 0x00a1979f, 0x00a79aa1, 0x00ab9ca0,
- 0x00b19e98, 0x00b39b90, 0x00ba988e, 0x00b89182, 0x00ad7e6e, 0x00aa6e57, 0x00a4624e, 0x009f6550, 0x0099725f, 0x009a7f74, 0x00a18c8d, 0x009e8f95, 0x00959498, 0x008f8f93, 0x008c898e, 0x008a898d,
- 0x00858d8b, 0x00868b8d, 0x008e8e95, 0x00928e99, 0x008d8794, 0x0088808d, 0x007b717a, 0x006c6065, 0x0051503f, 0x00403d2a, 0x003b2e27, 0x003d2a2a, 0x002e2a23, 0x003b4340, 0x008598a7, 0x0084a2c2,
- 0x00436ab5, 0x00395dba, 0x004065c8, 0x003b60bc, 0x002e539b, 0x00273f82, 0x00263374, 0x001e2a61, 0x00152645, 0x00172b4c, 0x001c3459, 0x0016355e, 0x00123662, 0x0014305b, 0x0022355f, 0x00354166,
- 0x0038586c, 0x003e5970, 0x00465f7c, 0x0050688a, 0x0040557a, 0x0020345c, 0x00162751, 0x0015224b, 0x000f2645, 0x00283d5a, 0x0048506e, 0x00434051, 0x003b3b65, 0x003f4c79, 0x00314981, 0x002b518e,
- 0x003357a9, 0x00455bc0, 0x004e5ed1, 0x004d65cc, 0x00487fba, 0x0074a1e6, 0x0090b7f4, 0x0084a6e1, 0x00829fc4, 0x0081a0be, 0x008ea9ca, 0x0094afcc, 0x006e8395, 0x002f3a42, 0x001d1c1c, 0x002f271e,
- 0x00302c27, 0x00312b27, 0x00352d2c, 0x00352c2a, 0x002f2622, 0x002a231e, 0x00807c77, 0x00ebe8e5, 0x00f7fef5, 0x00f0fcf4, 0x00f9fef8, 0x00fefdf5, 0x00aeb2b0, 0x002c3036, 0x0007080c, 0x000f0708,
- 0x00220c01, 0x0064462c, 0x00bc937a, 0x009f7156, 0x004d260c, 0x0021120c, 0x00130d13, 0x00140d10, 0x000d0a02, 0x0018110a, 0x002e231e, 0x00271d18, 0x001a0f0f, 0x001b1413, 0x001a1618, 0x00161117,
- 0x001f2416, 0x00494d3e, 0x00646559, 0x00808177, 0x00aba9ad, 0x00b4b0bb, 0x00bdb6cb, 0x00cdc5d8, 0x00d8dbd5, 0x00e2e6d8, 0x00eaeedf, 0x00ececde, 0x00eceee2, 0x00f0f1ee, 0x00f0eff6, 0x00d5d3e8,
- 0x008f99ba, 0x004e588c, 0x001c276c, 0x00142077, 0x001b288d, 0x002a3480, 0x00172056, 0x000c132e, 0x001b2110, 0x004c4b34, 0x005c5145, 0x003a2729, 0x00372231, 0x0035222d, 0x0025151a, 0x00261b16,
- 0x0048280e, 0x0057391f, 0x0065442f, 0x00664433, 0x00573626, 0x004f2b1c, 0x004f2517, 0x00592f1e, 0x006c3e21, 0x00835637, 0x00b07c62, 0x00cb9176, 0x00cb9e8b, 0x00d2a185, 0x00d89f82, 0x00d18d72,
- 0x00846475, 0x004a5393, 0x003859be, 0x002e62db, 0x003358c3, 0x003359d7, 0x003a5de0, 0x003f62d8, 0x003e66b3, 0x002b4275, 0x00050c2c, 0x00090513, 0x000e050c, 0x000a071a, 0x00070b28, 0x0003092f,
- 0x000c2c84, 0x002244a2, 0x002642a9, 0x001f40a9, 0x001937a9, 0x001a37a5, 0x002039a3, 0x001c2e94, 0x000e2575, 0x00102471, 0x0018205e, 0x00151128, 0x000a0717, 0x00090811, 0x000c080c, 0x000e0a0a,
- 0x00050b01, 0x00080c03, 0x000a0a09, 0x00040305, 0x002d2d32, 0x009c9d9f, 0x00fdfdfd, 0x00fcfbff, 0x00f8fef7, 0x00f7fcf6, 0x00f0f5f2, 0x00b1b6af, 0x005e6355, 0x007e836e, 0x00b6baa5, 0x00dbdec9,
- 0x00e7ebf0, 0x00ecf0ef, 0x00f1f3f3, 0x00f1f3ee, 0x00f1f5ea, 0x00eff4e5, 0x00f1f6e6, 0x00f1f5e7, 0x00e7f4e0, 0x00e8f4e0, 0x00eef6e4, 0x00eef5df, 0x00eef5e2, 0x00eff7e2, 0x00f1f7e5, 0x00f0f6e4,
- 0x00e6f5d9, 0x00e8f5db, 0x00eef7e1, 0x00eff7e3, 0x00f1f8e2, 0x00eff6e1, 0x00eff6e5, 0x00eef8e7, 0x00e8f5da, 0x00e9f5dd, 0x00ecf6e0, 0x00ecf5e0, 0x00eaf4de, 0x00ebf5df, 0x00eef6e3, 0x00eef5e5,
- 0x00e9f6db, 0x00eaf6dc, 0x00ecf6df, 0x00eef5e1, 0x00eef7df, 0x00eff7e0, 0x00f0f7e4, 0x00f0f9e6, 0x00e9f6dd, 0x00e9f5dd, 0x00edf4e2, 0x00eef4e8, 0x00e9f4e4, 0x00dde8d9, 0x00c7cfc2, 0x00b9c0b6,
- 0x009daa9f, 0x00929e93, 0x008f9890, 0x00919893, 0x00949898, 0x008f958d, 0x008d938c, 0x008d9192, 0x00858d90, 0x0082898b, 0x0086888b, 0x00878785, 0x00868882, 0x00878687, 0x00908b95, 0x009893a4,
- 0x00959890, 0x009a9d95, 0x00989997, 0x009a9a98, 0x009d9d9b, 0x009f9f9b, 0x009f9f9f, 0x009f9f9e, 0x00979f99, 0x00999f9a, 0x009ca09b, 0x009da19d, 0x009ea29f, 0x009ea29f, 0x009fa19f, 0x00a1a19e,
- 0x00999f99, 0x0099a099, 0x009ba19d, 0x009ca29e, 0x009ca19c, 0x009ca19d, 0x009ea2a0, 0x009da29f, 0x0099a19a, 0x0099a09a, 0x009c9e9b, 0x009c9e9b, 0x009a9e9b, 0x009a9e9b, 0x009c9e9b, 0x009c9e9b,
- 0x009a9f99, 0x009a9f9a, 0x009ba09b, 0x009ca19c, 0x009ca19d, 0x009ca19e, 0x009ca09d, 0x009b9f9d, 0x0096a298, 0x0098a098, 0x009d9e9b, 0x00a19f9f, 0x00a3a4a3, 0x00a8a9a8, 0x00adacac, 0x00aeadab,
- 0x00a8aba5, 0x00a9aba6, 0x00acabab, 0x00aaabaa, 0x00abacad, 0x00aaadab, 0x00adadaf, 0x00aeadaf, 0x00a5aaa7, 0x00a7aba9, 0x00aaaead, 0x00abaead, 0x00acadac, 0x00adaead, 0x00aeaeaf, 0x00aeaeaf,
- 0x00a7aeaa, 0x00a9afaa, 0x00abaeac, 0x00acaead, 0x00acaeac, 0x00acaead, 0x00adaeaf, 0x00aeafaf, 0x00a9aea8, 0x00aaafaa, 0x00abafac, 0x00abadab, 0x00ababaa, 0x00aaabaa, 0x00ababac, 0x00acabad,
- 0x00a7aaa6, 0x00a9aaa7, 0x00aaaaab, 0x00abacad, 0x00acadad, 0x00acadad, 0x00adadae, 0x00adadae, 0x00a7ada9, 0x00a7aca8, 0x00a7aaa8, 0x00a5a6a5, 0x00a5a4a6, 0x00a7a5a7, 0x00aba9aa, 0x00acabac,
- 0x00a7aba4, 0x00a9aba5, 0x00abada8, 0x00acada9, 0x00acaca9, 0x00acaba9, 0x00acabaa, 0x00a9a7a7, 0x009fa49c, 0x009ba197, 0x009c9d9c, 0x009f9b9c, 0x00a4a0a1, 0x009f9e9d, 0x009f9d9d, 0x00a3a09f,
- 0x00959993, 0x00969894, 0x009b9b98, 0x009d9e9a, 0x009fa09b, 0x009d9c99, 0x008f8c8a, 0x00767372, 0x00868b80, 0x00b2b7ac, 0x00eae9e5, 0x00fbf7f6, 0x00fefcf8, 0x00fffffb, 0x00fffcfc, 0x00fffcfa,
- 0x00f4faf8, 0x00f8fcf9, 0x00fcfcfe, 0x00fcfdfd, 0x00f8f9ff, 0x009c9ca5, 0x000f0a17, 0x00120814, 0x001c1514, 0x00312926, 0x0043342e, 0x0051362a, 0x004b382a, 0x00403327, 0x002c221a, 0x0019140f,
- 0x00010b00, 0x00000601, 0x00090d0d, 0x00171a1e, 0x0020242c, 0x0029262e, 0x002f2830, 0x0038313a, 0x0032393a, 0x0033393c, 0x00454750, 0x006c6a72, 0x00857c7f, 0x00827371, 0x00654e4d, 0x00654a47,
- 0x006d6365, 0x0076696c, 0x0061545a, 0x00362e34, 0x00251f23, 0x002c2629, 0x00342f32, 0x00383132, 0x002b2b22, 0x00231f18, 0x00191111, 0x00100703, 0x00100f0b, 0x00121311, 0x000d0d10, 0x00080b0f,
- 0x00000605, 0x00000707, 0x00080c0d, 0x00101214, 0x00161718, 0x00212221, 0x003d3937, 0x00554743, 0x00604532, 0x006a402b, 0x007a3e2b, 0x007d3923, 0x00772f17, 0x00783518, 0x00874328, 0x008c4e31,
- 0x006a584d, 0x0064585a, 0x0055525b, 0x003c4152, 0x00232b39, 0x0022242d, 0x00231e27, 0x00231920, 0x00131610, 0x00151818, 0x0024212d, 0x00473d55, 0x00726778, 0x006d6171, 0x005e505f, 0x0044383c,
- 0x00383024, 0x00312a11, 0x00392b10, 0x00453519, 0x00493915, 0x004f3629, 0x003b2122, 0x00311d21, 0x001e2426, 0x004b5765, 0x005e6c8f, 0x00596492, 0x00606b96, 0x00727899, 0x00b5b7c9, 0x00ccc6d1,
- 0x00dae6e2, 0x00e6f1ed, 0x00edf5f5, 0x00f0f6f8, 0x00f2f7f7, 0x00f2f7f8, 0x00eef4f6, 0x00f1f7f8, 0x00edfaf5, 0x00e4f0ed, 0x00e1e6e6, 0x00ebedf0, 0x00edf0f2, 0x00eceef1, 0x00f5f5f8, 0x00f1f2f5,
- 0x00eff8f1, 0x00ebf2ee, 0x00edeef0, 0x00eeeef2, 0x00edf0f3, 0x00ebedef, 0x00f4f1f5, 0x00dbd8dd, 0x00383733, 0x0046423c, 0x007a716f, 0x00928586, 0x00a99d97, 0x00afa59e, 0x00b0a9a3, 0x00b3ada5,
- 0x00f4f7e2, 0x00e9eedf, 0x00e3e5dd, 0x00e5eaeb, 0x00dde5ec, 0x00dce2ef, 0x00d9dbe5, 0x00d2d0db, 0x00bbb5b1, 0x00897f77, 0x00564b46, 0x007b7078, 0x00aba7b1, 0x00b8b8c7, 0x00adb0c4, 0x00b1b3cc,
- 0x00b4b9d4, 0x00b4b6d3, 0x00bdbfdd, 0x00c7c6e4, 0x00cdcbe6, 0x00cdcee7, 0x007c7d9a, 0x00443d64, 0x0077637f, 0x00af8f90, 0x00dcb5a0, 0x00e7ba98, 0x008e6757, 0x00382329, 0x001c132c, 0x000a1134,
- 0x00031140, 0x000d1b4d, 0x001b2457, 0x001b215a, 0x00202365, 0x00282d75, 0x00272c7c, 0x002c348c, 0x003644a6, 0x0027389c, 0x00414ca0, 0x00989bc8, 0x00dde2de, 0x00e3e0e1, 0x00ebe5e8, 0x00ece6eb,
- 0x00eff1d9, 0x00f0f2f4, 0x009da4c9, 0x00343e8b, 0x005d70b3, 0x00becbe9, 0x00e4e7ee, 0x00dfd7d0, 0x00cbac88, 0x00b7895a, 0x00c18852, 0x00cb9054, 0x00c99567, 0x00a07756, 0x004a2916, 0x001b0402,
- 0x00120000, 0x00100100, 0x000d0203, 0x00110e0e, 0x000c1513, 0x0007120f, 0x001c2720, 0x00353f34, 0x003c3f33, 0x00353525, 0x00343525, 0x00343e2b, 0x00343a2a, 0x0025281a, 0x000d0d03, 0x0017170e,
- 0x00201f18, 0x00151510, 0x00151814, 0x0010150f, 0x00131b16, 0x001c221d, 0x00121612, 0x000d130c, 0x0030322f, 0x00999c99, 0x00fbfcfa, 0x00fdfefb, 0x00fdfcfb, 0x00fefefb, 0x00f3f1ed, 0x009a9592,
- 0x00221310, 0x00211310, 0x001d0e0a, 0x001f0f0c, 0x001d100b, 0x0021140e, 0x00251710, 0x002a1c14, 0x0024190c, 0x001e1003, 0x00150700, 0x00120504, 0x000d0101, 0x000f0100, 0x00110200, 0x00150402,
- 0x001f0908, 0x00260f0b, 0x002f150d, 0x00361c10, 0x00422718, 0x004c2c19, 0x00603c28, 0x00694835, 0x0063483a, 0x005c4436, 0x005b4638, 0x0057463a, 0x004a4034, 0x003d372c, 0x00362f27, 0x00332c25,
- 0x001c1c16, 0x000f0f0a, 0x00090807, 0x000a0a0a, 0x000a0907, 0x000a0909, 0x00070508, 0x00060308, 0x00010207, 0x0006070c, 0x00484947, 0x00959483, 0x00979884, 0x007e7c6b, 0x00545241, 0x003a3828,
- 0x001f2010, 0x00141407, 0x00121003, 0x0016140a, 0x00212117, 0x00382819, 0x004d3621, 0x005f422b, 0x00724b2f, 0x00784f34, 0x006f442b, 0x00643b21, 0x00452a1a, 0x002e1d15, 0x0019100e, 0x000d0b10,
- 0x0017180d, 0x002d2b1b, 0x0047412f, 0x004e4532, 0x0046392a, 0x003d3125, 0x00392b26, 0x00281f1d, 0x001e1b1d, 0x003f3c42, 0x0069686f, 0x00636766, 0x00464945, 0x0026261e, 0x002e2d21, 0x00706c5a,
- 0x00867b66, 0x005f533b, 0x005e4e31, 0x00826d53, 0x00a79173, 0x00a89477, 0x008c7d60, 0x006e6456, 0x00404353, 0x0028355e, 0x002c407f, 0x002f4aa0, 0x00294eb9, 0x002850c5, 0x002c50cf, 0x002349cc,
- 0x00294ea4, 0x002449ad, 0x002245b2, 0x002547be, 0x002a47b1, 0x0031479d, 0x00344587, 0x003b4877, 0x0031375c, 0x00151a3e, 0x00040720, 0x0005030f, 0x0004020a, 0x00010008, 0x00000105, 0x00040708,
- 0x00050606, 0x00030403, 0x00020102, 0x00070808, 0x00111011, 0x001d1712, 0x00231b11, 0x00251e13, 0x002a1e11, 0x00271e10, 0x00281f12, 0x001b1308, 0x005e5952, 0x00cfccc9, 0x00fdfdfc, 0x00fdfdfd,
- 0x00fcfcfd, 0x00fbfbfc, 0x00efeff0, 0x00eeeeee, 0x00fcfcfc, 0x00fdfefd, 0x00fbfbfa, 0x00fdfdfc, 0x00f8f9f7, 0x00e1e2e2, 0x00c7c7c7, 0x00c4c4c2, 0x00c2c2c0, 0x00c0c1be, 0x00c2c2bf, 0x00c3c2c2,
- 0x00c4c3c0, 0x00c3c3c1, 0x00c6c4c4, 0x00c4c4c3, 0x00bbbdbc, 0x00b5b6bb, 0x00b1afb8, 0x00b0aeb5, 0x00b3b2b9, 0x00b8b7bd, 0x00bdbbc1, 0x00c2c0c7, 0x00c4c4cb, 0x00c7c7ce, 0x00cacad0, 0x00cbcad0,
- 0x00c9cacb, 0x00c8c8ca, 0x00c9c8ca, 0x00c9c8ca, 0x00c8c6c9, 0x00c3c2c4, 0x00bebebf, 0x00b7b8b8, 0x00acadae, 0x00a7a8a8, 0x00a6a3a6, 0x00a29fa4, 0x00a19ba0, 0x00a0979c, 0x00a09598, 0x00a29394,
- 0x00a9938f, 0x00ab9088, 0x00b18f86, 0x00ae897c, 0x00a27768, 0x009c6854, 0x00985f4d, 0x00956252, 0x00946d60, 0x0095766f, 0x00998181, 0x00978689, 0x00918c90, 0x008b8a90, 0x0088898e, 0x00878a8e,
- 0x00888c8e, 0x00898b90, 0x008d8e96, 0x008f8e97, 0x008c8792, 0x00867f8a, 0x00797178, 0x006d6367, 0x005e544b, 0x0050473b, 0x0041362f, 0x00362c27, 0x002e3329, 0x00505c5a, 0x00869aa9, 0x006a84a7,
- 0x003c5eab, 0x00395bb4, 0x00395bb6, 0x002d4ea7, 0x0023448e, 0x00253d7f, 0x00202e68, 0x00172252, 0x00151e3f, 0x00192544, 0x001a2c4b, 0x00142e4e, 0x000e2e53, 0x00112b50, 0x00182a4f, 0x001f2a4a,
- 0x000c2231, 0x00071a2b, 0x00071a2e, 0x000a1d35, 0x000a1c39, 0x000f2140, 0x002a3a5b, 0x00505b7d, 0x006b7a9b, 0x007480a2, 0x00636987, 0x00514c6b, 0x0035497e, 0x001e3f7b, 0x001b437b, 0x00274c80,
- 0x00354a9d, 0x003d4ab9, 0x003b4ac3, 0x003c55c3, 0x003e73aa, 0x00557cc2, 0x005373ba, 0x003f5b9f, 0x00596ba1, 0x00738ab9, 0x0094acdb, 0x00b0cbf5, 0x009cb2cc, 0x0057646f, 0x001a1c1b, 0x00241f13,
- 0x002c2526, 0x002d2526, 0x002f2728, 0x002e2727, 0x0026201f, 0x001e1a18, 0x0074716e, 0x00e3e2df, 0x00fcfffe, 0x00f7fdfc, 0x00fcfefd, 0x00fdfdf7, 0x00b6b8b4, 0x00383837, 0x00130c09, 0x001e0e08,
- 0x003d1606, 0x00734932, 0x00a37960, 0x007a533c, 0x00371808, 0x001f130f, 0x0013100e, 0x00110d07, 0x001a120a, 0x002f231b, 0x00473a33, 0x003b2e27, 0x001b100f, 0x001a1513, 0x00161517, 0x000e0c11,
- 0x00131509, 0x00161609, 0x00212117, 0x00474745, 0x009d9aab, 0x00b9b7d1, 0x00bdbad9, 0x00c5c1de, 0x00d1d3db, 0x00dde0dd, 0x00e6e8e2, 0x00f2f0ed, 0x00eeeef1, 0x00e0e2ed, 0x00b8b9cf, 0x008081a4,
- 0x002d356c, 0x00111961, 0x00142073, 0x00223091, 0x002535a2, 0x002f3998, 0x001a2268, 0x000a1332, 0x00303318, 0x00676343, 0x006d5f48, 0x0058403e, 0x00553745, 0x0050343b, 0x003c211e, 0x0047301f,
- 0x00795034, 0x00885f44, 0x00895e46, 0x00885c46, 0x00764b36, 0x005d311d, 0x0051210d, 0x00653520, 0x00925e46, 0x00ae7c61, 0x00cd9a7b, 0x00dda683, 0x00d1aa8f, 0x00d3a689, 0x00d6a288, 0x00cb8b77,
- 0x007a5b79, 0x004b549f, 0x00385cc7, 0x002c64dd, 0x003964c9, 0x003b65e1, 0x00355edd, 0x00385ecb, 0x00354d8c, 0x001f2643, 0x000e040e, 0x001c0605, 0x00210802, 0x00180907, 0x0009060b, 0x00010215,
- 0x00061d75, 0x0023409d, 0x001e3b9d, 0x001c3ba2, 0x001f3baa, 0x002841ae, 0x00253fa7, 0x00152c90, 0x00102274, 0x00142573, 0x00161d58, 0x00141122, 0x00090712, 0x000a0a0f, 0x000b0a0b, 0x000b0d09,
- 0x00090a04, 0x000a0c06, 0x00070808, 0x00010204, 0x003a393e, 0x00aeaeaf, 0x00fbfefc, 0x00f6fafa, 0x00fafcfa, 0x00fbfefb, 0x00edf1ed, 0x009aa095, 0x003f4730, 0x00606a4b, 0x00899470, 0x00a5b08a,
- 0x00aeb8a3, 0x00b3bea3, 0x00b5c0a2, 0x00b5c19c, 0x00b7c59a, 0x00b6c598, 0x00b5c59a, 0x00b4c49e, 0x00b3c3a3, 0x00b3c1a8, 0x00b4c2a6, 0x00b8c6a2, 0x00b9c6a3, 0x00b9c7a4, 0x00b9c7a4, 0x00b8c6a4,
- 0x00b7c4a0, 0x00b8c6a1, 0x00bac6a4, 0x00bbc7a4, 0x00bac8a2, 0x00b6c69f, 0x00b4c6a0, 0x00b5c8a1, 0x00b6c5a1, 0x00b5c5a0, 0x00b6c6a1, 0x00b6c7a1, 0x00b4c59f, 0x00b3c59e, 0x00b5c79f, 0x00b6c8a1,
- 0x00b3c79b, 0x00b2c69b, 0x00b2c59c, 0x00b2c49c, 0x00b2c49a, 0x00b2c59b, 0x00b2c59d, 0x00b3c59d, 0x00afc397, 0x00aec198, 0x00afc099, 0x00aec09c, 0x00acc29b, 0x00a4b895, 0x00889978, 0x006c7b5f,
- 0x0047563e, 0x00394832, 0x0031402b, 0x0030402d, 0x00313f2f, 0x00314028, 0x00334129, 0x00333f30, 0x00343d36, 0x00343d34, 0x00363c30, 0x003b402e, 0x00363b2a, 0x00393d34, 0x00434444, 0x004f5057,
- 0x00525351, 0x00535450, 0x00545450, 0x00575854, 0x00484947, 0x003b3d3a, 0x00373a36, 0x00393d37, 0x00383b38, 0x00373c38, 0x00363d37, 0x00363c37, 0x00373c37, 0x00373b37, 0x00363b38, 0x00353b38,
- 0x00373c37, 0x00363c37, 0x00373c39, 0x00363c39, 0x00353c36, 0x00353c36, 0x00363c38, 0x00353c38, 0x00353d37, 0x00353d37, 0x00373d38, 0x00373d38, 0x00363e39, 0x00373e3a, 0x00383d3a, 0x00383d3a,
- 0x00373c37, 0x00373c37, 0x00373d38, 0x00373d38, 0x00383d39, 0x00373c38, 0x00373c38, 0x00363b38, 0x00353c36, 0x00363d36, 0x003a3c39, 0x003a3c3a, 0x00393d3a, 0x003a3e3b, 0x003c3e3d, 0x003c3e3b,
- 0x003b3c39, 0x003c3c39, 0x003d3b3a, 0x003c3c3a, 0x003b3c3b, 0x003a3e3a, 0x003b3e3b, 0x003b403b, 0x00393d3b, 0x00393e3b, 0x003a3f3c, 0x003a3e3c, 0x00393d3b, 0x00393d3b, 0x003a3e3c, 0x003a3f3c,
- 0x00353c39, 0x00363c3a, 0x00383d3b, 0x00383d3b, 0x00393c3a, 0x00393c3a, 0x00393c3a, 0x00393d3a, 0x00373b38, 0x00383d39, 0x003a3e3b, 0x003b3d3b, 0x003c3d3a, 0x003b3d3a, 0x003b3d39, 0x003b3c39,
- 0x003c3c3b, 0x003c3d3a, 0x003c3d3a, 0x003b3d3a, 0x003b3d3a, 0x003a3c3b, 0x003a3c3c, 0x00393b3c, 0x0038393a, 0x00393a3a, 0x003a3a3a, 0x003b3c3a, 0x003a3b39, 0x003a3b39, 0x003a3c3a, 0x003b3e3c,
- 0x003a3b37, 0x003a3b36, 0x00393a36, 0x003a3b37, 0x003b3c39, 0x003b3d39, 0x003b3d3a, 0x003a3c39, 0x00393935, 0x00363a35, 0x00373a39, 0x003e3c3b, 0x00403b3c, 0x003a3738, 0x00393839, 0x00404143,
- 0x004b4d4c, 0x00515150, 0x00575654, 0x00565753, 0x0052534f, 0x0051504f, 0x005c5a5a, 0x006a6866, 0x00959695, 0x00bbbbb7, 0x00e9e9e4, 0x00faf9f5, 0x00fffdf8, 0x00fffefa, 0x00fefdf9, 0x00fcfaf3,
- 0x00f8fafe, 0x00fcfdff, 0x00fbfbfe, 0x00fdfdfd, 0x00f7f7fa, 0x00878589, 0x000d080c, 0x000e0608, 0x00291a15, 0x00473630, 0x005c4335, 0x00704b31, 0x00694c31, 0x005e4733, 0x0042311f, 0x002c2012,
- 0x00161309, 0x00130e0a, 0x00191614, 0x00232121, 0x00252627, 0x00262425, 0x00222222, 0x002e2e30, 0x00393f41, 0x0034383e, 0x0034353e, 0x0056535c, 0x00776f74, 0x00786c6d, 0x00655555, 0x005b4848,
- 0x006d6269, 0x0073666c, 0x00584d53, 0x002d262a, 0x00140e10, 0x001e1a1a, 0x002d2927, 0x003f3833, 0x00433b35, 0x0040352f, 0x00362820, 0x002e1f0f, 0x0020150a, 0x001b150e, 0x00090907, 0x00000506,
- 0x00000608, 0x00020609, 0x000a0c0d, 0x00161617, 0x00242322, 0x0035322a, 0x004d473a, 0x00635748, 0x006c5247, 0x00704c3f, 0x006e4235, 0x00693827, 0x005e2b16, 0x005d2a11, 0x0066311a, 0x006d3a20,
- 0x004d3c33, 0x00483e3f, 0x003a3a3f, 0x0029303b, 0x001b2128, 0x001a1a1c, 0x00140e10, 0x00140b0b, 0x000d0b0d, 0x000f1018, 0x00161922, 0x0031313d, 0x00575462, 0x005a576a, 0x0049465c, 0x00323246,
- 0x002a2534, 0x002e2a2e, 0x00342e25, 0x003a3222, 0x00423b20, 0x004c3824, 0x003f2719, 0x0036201a, 0x003a2d31, 0x00797072, 0x00928d8c, 0x00948e89, 0x0099938c, 0x009b9192, 0x00c3b7bc, 0x00d7c7d3,
- 0x00dbe2e2, 0x00e9f0ef, 0x00edf3f4, 0x00eff4f6, 0x00f0f6f6, 0x00f0f6f6, 0x00edf4f5, 0x00eff6f5, 0x00ecf3f4, 0x00e8f0f0, 0x00e3e7e9, 0x00ebedf0, 0x00e7eaec, 0x00e3e6e7, 0x00eef0f1, 0x00ecf0ef,
- 0x00f2f7f6, 0x00f2f7f7, 0x00f0f1f3, 0x00eff0f2, 0x00e9ecee, 0x00ecedee, 0x00f1f0f0, 0x00f7f5f6, 0x00655f5a, 0x00453d35, 0x006e6159, 0x0086786f, 0x0096887c, 0x00a3988a, 0x00aba195, 0x00afa79a,
- 0x00f6f9e9, 0x00e2e8dc, 0x00e3e7e1, 0x00dde4e0, 0x00dee2e6, 0x00dce0e5, 0x00e1e3e9, 0x00dad7de, 0x00cdc5c3, 0x00a59b97, 0x006f6468, 0x00868190, 0x00a9a6ba, 0x00a8aac1, 0x00aeb2cc, 0x00aaaecb,
- 0x00b0b1d0, 0x00b1b5d1, 0x00c0c1de, 0x00c8c8df, 0x00d2cce7, 0x00ccd4e2, 0x006e7782, 0x0030353f, 0x00847174, 0x00bf9c8d, 0x00dcac91, 0x00eeb68b, 0x00c18a67, 0x008b6257, 0x00694c56, 0x00352542,
- 0x00071638, 0x00091538, 0x00171c41, 0x001f1f45, 0x002d2757, 0x00464277, 0x005d5c9a, 0x00585ca5, 0x003544a0, 0x00223797, 0x004655a8, 0x009395c6, 0x00dbdfdd, 0x00dcdadb, 0x00ede8eb, 0x00ece5ea,
- 0x00edeed4, 0x00f6f8f2, 0x00b5bbe1, 0x00444f9c, 0x004c5f9f, 0x00acb9da, 0x00e6ebf2, 0x00eae4dc, 0x00d7b793, 0x00b48652, 0x00b68042, 0x00c08745, 0x00a77949, 0x00917150, 0x0065503d, 0x001a0f0d,
- 0x000a0303, 0x00090503, 0x00030301, 0x00090e0d, 0x0012201f, 0x0012211c, 0x0017251c, 0x001b271c, 0x00222318, 0x00222212, 0x00242616, 0x00222f1a, 0x00353b2b, 0x003a4030, 0x0035372b, 0x00393a2f,
- 0x00383731, 0x00373832, 0x00343732, 0x00313631, 0x00303933, 0x00323834, 0x002d322d, 0x00262d25, 0x003d3f3c, 0x00979a98, 0x00fbfcfa, 0x00fcfdfa, 0x00fcf9f8, 0x00fcfbf9, 0x00f9f6f3, 0x00a8a6a4,
- 0x00221916, 0x001d1511, 0x001c130f, 0x00180e09, 0x001a110b, 0x00180f08, 0x001f150d, 0x00241910, 0x00251a11, 0x001b1207, 0x00110600, 0x00100000, 0x000f0000, 0x00110000, 0x00170706, 0x001c0c0b,
- 0x001c0908, 0x00271611, 0x00392921, 0x00443228, 0x00544336, 0x00604e42, 0x006e5c53, 0x006a5951, 0x004d3b34, 0x0033251d, 0x00281d16, 0x00221c16, 0x00171511, 0x000d0d0c, 0x00040405, 0x00000002,
- 0x00010201, 0x00010300, 0x00030503, 0x00050606, 0x00030304, 0x00020305, 0x00030306, 0x00040507, 0x0007070d, 0x0003040a, 0x001a1b19, 0x00302f1e, 0x00333322, 0x00232215, 0x00121107, 0x000e0d04,
- 0x000f0d05, 0x000c0c03, 0x00100e09, 0x000f0d08, 0x00171716, 0x002d2112, 0x00422e1a, 0x00523622, 0x00633b27, 0x006c4129, 0x006b3d24, 0x0061351d, 0x004e2e21, 0x00351f19, 0x00201211, 0x00191315,
- 0x0018170a, 0x001e1909, 0x002f2618, 0x00382c1a, 0x00483627, 0x00473627, 0x0048372d, 0x0040322d, 0x003a3136, 0x00312a33, 0x0025212a, 0x001a1e1d, 0x00131511, 0x000e0c07, 0x00231f15, 0x0059523f,
- 0x006d5b47, 0x00605033, 0x00624c2f, 0x006f5736, 0x00826545, 0x00927948, 0x00a08d5e, 0x00ab9f81, 0x009396a0, 0x006b76a0, 0x004a5d9f, 0x003450a7, 0x002349ae, 0x00274fbb, 0x002e56c3, 0x002650c0,
- 0x002f4cb9, 0x002d4dbe, 0x00284bbd, 0x00284db9, 0x002a4997, 0x00293e70, 0x001c2942, 0x001b1f29, 0x00131017, 0x000a0714, 0x000a0510, 0x000c0305, 0x00080204, 0x00020001, 0x00000101, 0x00020504,
- 0x00020404, 0x00030504, 0x00050506, 0x00030304, 0x000d090b, 0x001c130d, 0x002e2115, 0x00342a1b, 0x0035271b, 0x00322418, 0x002e2316, 0x001d1409, 0x00534d46, 0x00c2c0bb, 0x00fdfcf9, 0x00fefcfb,
- 0x00fcfcfc, 0x00fafafa, 0x00eeeeee, 0x00e9e9e9, 0x00fdfdfd, 0x00fcfcfd, 0x00fbfbfc, 0x00fdfdfd, 0x00fcfbfb, 0x00e6e6e6, 0x00cccccb, 0x00c7c8c5, 0x00c5c5c3, 0x00c3c3c0, 0x00c3c4c0, 0x00c1c2c1,
- 0x00c0c0bd, 0x00bfc0bd, 0x00c1c0bf, 0x00c0c0bd, 0x00b9bab8, 0x00b2b3b5, 0x00afaeb2, 0x00afafb2, 0x00b7b5ba, 0x00bbbabe, 0x00bfbec1, 0x00c2c3c5, 0x00c5c6c9, 0x00c9cacc, 0x00cacacc, 0x00c9c8ca,
- 0x00c6c7c7, 0x00c2c2c3, 0x00bebdbf, 0x00bab9ba, 0x00b7b6b7, 0x00b1b1b1, 0x00acadad, 0x00a7a8a8, 0x00a2a4a2, 0x009e9f9e, 0x009e9d9f, 0x009b9b9f, 0x009e999d, 0x009d9396, 0x00998d8f, 0x00998788,
- 0x009c8580, 0x009b8278, 0x009f8078, 0x009d7b6f, 0x00926a61, 0x008b5f51, 0x0088594d, 0x00875a4f, 0x0089635d, 0x008a6a65, 0x008d7571, 0x008f7e7c, 0x008c8588, 0x0087848b, 0x0087878e, 0x0086888f,
- 0x00888d90, 0x00898b91, 0x008c8c96, 0x008d8b96, 0x008a848f, 0x00847d86, 0x00777076, 0x006e6568, 0x00635857, 0x00554c47, 0x00453b36, 0x0037332e, 0x003f4240, 0x006d7a81, 0x008fa1b9, 0x00647da7,
- 0x003f5ca7, 0x003350a5, 0x002d4ca2, 0x00234196, 0x0024418d, 0x00243a7b, 0x0019275e, 0x000f1845, 0x00121734, 0x00181e39, 0x001f2d46, 0x00182e49, 0x00132f4e, 0x00182f4f, 0x00102143, 0x00182141,
- 0x00172731, 0x00081622, 0x00121e2e, 0x00142134, 0x002b3750, 0x0044516c, 0x005a6783, 0x007c87a4, 0x00959eb8, 0x007c88a0, 0x00606985, 0x008484a4, 0x006d83c1, 0x00254a88, 0x00153b78, 0x00264477,
- 0x00374091, 0x003643b1, 0x003849c4, 0x002e4ebf, 0x00245991, 0x0030549e, 0x003956a6, 0x003a539d, 0x00465499, 0x00425794, 0x00465e9b, 0x00526ea3, 0x007388ae, 0x00646f83, 0x00312f37, 0x0029201a,
- 0x00241f20, 0x00241e20, 0x00272124, 0x00252022, 0x001c1819, 0x00130f10, 0x00686767, 0x00dcdbdc, 0x00fffeff, 0x00fbfbfc, 0x00fdfdfc, 0x00fbfcfa, 0x00bcbec0, 0x0045403f, 0x001a0a06, 0x00290f06,
- 0x00572715, 0x0083503b, 0x008c5e4b, 0x00623b28, 0x00351913, 0x00271b17, 0x001e1715, 0x001a0f0c, 0x00291a13, 0x00402f24, 0x00554337, 0x00403025, 0x001c0f0c, 0x00140d0c, 0x00100d10, 0x0018151b,
- 0x0018180f, 0x0014130b, 0x001a1917, 0x00232329, 0x00696683, 0x009f9cc3, 0x00b5b3df, 0x00c2bee9, 0x00cbcde3, 0x00d7dbe3, 0x00e7ebee, 0x00e6e3ef, 0x00bdbbd1, 0x008a8aa9, 0x004e4f79, 0x00212458,
- 0x00121d60, 0x00152270, 0x0025348c, 0x00233497, 0x0021349f, 0x00283196, 0x00212675, 0x0013183c, 0x0039391e, 0x007b724e, 0x007f6a4f, 0x0063423a, 0x00572d3b, 0x0061393b, 0x00754e45, 0x00876449,
- 0x00a16f4f, 0x009d6c4d, 0x008f5d41, 0x00814e36, 0x0074412c, 0x0075432d, 0x00733f27, 0x0086533a, 0x00b17d63, 0x00c69274, 0x00d49e7e, 0x00d8a27b, 0x00cba589, 0x00ca9f82, 0x00cd9c85, 0x00bd8373,
- 0x0074547a, 0x004852a2, 0x00365ccb, 0x002c65e0, 0x003b66c9, 0x003a64e1, 0x00345adc, 0x003659c5, 0x00394886, 0x00323248, 0x00352521, 0x003a1d07, 0x003d1e06, 0x00291609, 0x000b0502, 0x000d111d,
- 0x0021378f, 0x002f49a5, 0x00223d9e, 0x001a379d, 0x001f37a5, 0x002e47b1, 0x002d43ab, 0x001b2f91, 0x0014247a, 0x00162474, 0x00181e56, 0x00120f1b, 0x000a0810, 0x0007080d, 0x000b0b0c, 0x000b0c0a,
- 0x000a0a06, 0x000b0d08, 0x000a0b0b, 0x00020204, 0x004a494d, 0x00c3c3c3, 0x00f9fbf8, 0x00f7fafa, 0x00fbfdfe, 0x00fafdfc, 0x00e1e5e2, 0x007e867a, 0x0029331a, 0x003e4b25, 0x005c6a3d, 0x006c7b49,
- 0x006f834f, 0x0070854c, 0x00748a4e, 0x00758b4b, 0x00798e4d, 0x00788d4d, 0x007a8f52, 0x00798e59, 0x007a8d63, 0x00788b68, 0x00788b65, 0x007d9160, 0x007f8f61, 0x00809062, 0x00809063, 0x00809163,
- 0x007f8d61, 0x007e9061, 0x00809163, 0x00819163, 0x00829264, 0x007c9362, 0x007b9463, 0x007d9462, 0x00809468, 0x00809566, 0x00809766, 0x00809766, 0x00809566, 0x00809565, 0x00809765, 0x00809864,
- 0x007f9561, 0x007f945f, 0x007e945f, 0x007c945e, 0x007c935d, 0x007b925d, 0x0079915b, 0x00798f59, 0x00778e58, 0x00768e58, 0x00788d5a, 0x00758b55, 0x006f8652, 0x006c8250, 0x005f7447, 0x0052683d,
- 0x003c4f2a, 0x00344825, 0x00334726, 0x00354828, 0x0034472a, 0x00334621, 0x00364822, 0x00354629, 0x00394632, 0x0039472f, 0x003d4a2b, 0x003c4822, 0x003b4624, 0x003d462e, 0x005b6153, 0x00757c77,
- 0x00848482, 0x007d7e7b, 0x007f7f7c, 0x0081827d, 0x00575856, 0x0020221e, 0x00131814, 0x00141914, 0x00151a16, 0x00141a16, 0x00131a16, 0x00121a15, 0x00121915, 0x00111914, 0x00101913, 0x000f1a13,
- 0x00131b15, 0x00121a14, 0x00121a15, 0x00121a15, 0x00121914, 0x00121914, 0x00131a16, 0x00131a16, 0x00141915, 0x00121a14, 0x00121b15, 0x00121b14, 0x00121b15, 0x00121a15, 0x00131916, 0x00121916,
- 0x00131a15, 0x00131a15, 0x00141a16, 0x00141a15, 0x00141b16, 0x00141b16, 0x00141b16, 0x00141b16, 0x00141b16, 0x00131b15, 0x00131b15, 0x00131914, 0x00131a14, 0x00151a15, 0x00161916, 0x00161915,
- 0x00151614, 0x00151713, 0x00161613, 0x00181914, 0x00161614, 0x00141712, 0x00111711, 0x00111910, 0x00111614, 0x00131814, 0x00151a16, 0x00151b16, 0x00161a17, 0x00151a16, 0x00151a16, 0x00151b15,
- 0x00131a16, 0x00121a16, 0x00131b16, 0x00131a16, 0x00141916, 0x00141815, 0x00131815, 0x00121915, 0x00141815, 0x00131814, 0x00141814, 0x00151813, 0x00151714, 0x00141713, 0x00131712, 0x00141711,
- 0x00151714, 0x00141712, 0x00131712, 0x00131612, 0x00141613, 0x00151615, 0x00161716, 0x00151816, 0x00171817, 0x00171716, 0x00161715, 0x00171915, 0x00161814, 0x00151815, 0x00141814, 0x00141915,
- 0x00161b17, 0x00151916, 0x00171b17, 0x00161a16, 0x00191b17, 0x00161814, 0x00191a16, 0x00161713, 0x00171917, 0x00141915, 0x00161815, 0x00171510, 0x00171413, 0x00232122, 0x00434145, 0x005b5961,
- 0x006c6d73, 0x006e6e74, 0x00737477, 0x006d7071, 0x006b6e70, 0x006c6e72, 0x0075757b, 0x0088888d, 0x00b2afb5, 0x00cfcccf, 0x00f1f0ef, 0x00f8f8f5, 0x00fffdfa, 0x00fefcfa, 0x00fffdfb, 0x00fcfaf7,
- 0x00f7f9f9, 0x00fbfcfb, 0x00fbfafb, 0x00fefdfd, 0x00f7f7f8, 0x00787578, 0x00191110, 0x00140905, 0x002e1e17, 0x004b3b31, 0x006a4d3b, 0x007d512e, 0x007c5639, 0x0072533a, 0x005f4531, 0x00473421,
- 0x002e2116, 0x001f170f, 0x00251f1b, 0x002b2724, 0x00282222, 0x001d1c19, 0x001a1b18, 0x00242826, 0x00363a3d, 0x00323539, 0x002a2c31, 0x0039393d, 0x005b575a, 0x0061595a, 0x00574a4b, 0x0049393b,
- 0x00564d53, 0x00544c50, 0x00433d41, 0x00211e20, 0x000f0d0c, 0x000f0d0a, 0x00241f1c, 0x00382f2b, 0x004e403a, 0x004d3f38, 0x00514034, 0x004e3925, 0x003a291c, 0x00271d15, 0x00191513, 0x000c0d10,
- 0x00060a10, 0x0000040a, 0x000b0c14, 0x001c1b1f, 0x00302b2f, 0x0043392c, 0x005b4e3d, 0x00655645, 0x00695144, 0x00664d40, 0x00604438, 0x004f3123, 0x00411f13, 0x003b1a0c, 0x003c190c, 0x003d1d0e,
- 0x002d2016, 0x00261f1d, 0x00202023, 0x001b2129, 0x00181d21, 0x00181616, 0x000a0203, 0x000e0303, 0x00070707, 0x00060b0f, 0x000b151d, 0x00192527, 0x00353e4f, 0x00444e65, 0x00485171, 0x00444b73,
- 0x00576080, 0x005e667f, 0x00525768, 0x00383b41, 0x002a2d28, 0x00362818, 0x00402918, 0x003b2415, 0x00533933, 0x00a18b78, 0x00baa889, 0x00b8a77a, 0x00b2a175, 0x00a9937b, 0x00c3aca5, 0x00e0c7d1,
- 0x00d9ddde, 0x00eaefee, 0x00ecf1f1, 0x00eef3f4, 0x00eff4f6, 0x00eff3f6, 0x00eff3f6, 0x00eff4f4, 0x00edf1f3, 0x00ebf0f1, 0x00ecf0f2, 0x00edeff2, 0x00edeff1, 0x00eaecee, 0x00f1f2f3, 0x00eff2f2,
- 0x00f3f3f6, 0x00f2f4f7, 0x00f2f3f6, 0x00f2f2f5, 0x00f6f7fb, 0x00f1f1f3, 0x00f3f2ef, 0x00ebebe6, 0x007f7570, 0x0042372d, 0x006b5c51, 0x0077675b, 0x00837166, 0x00907f74, 0x00a09086, 0x00a3958a,
- 0x00f1f7ec, 0x00e2e5df, 0x00e3e9e5, 0x00e0e4e3, 0x00e0e3e6, 0x00dedfe4, 0x00e0e2e7, 0x00dad6dc, 0x00d2cacf, 0x00b7adb2, 0x007d7680, 0x0084859b, 0x00a5a7bd, 0x00adb1cb, 0x00a8acc7, 0x00abaecc,
- 0x00aaafc8, 0x00b3b7cf, 0x00bfc1dc, 0x00c5c3dc, 0x00cbc8e0, 0x00c2cbd9, 0x00627176, 0x001c2523, 0x0061554c, 0x00aa8874, 0x00cf9f7a, 0x00d79863, 0x00c58342, 0x00a96f45, 0x00976853, 0x00714b4d,
- 0x000f1c2f, 0x000a1125, 0x00121120, 0x001f1726, 0x0056485a, 0x00897f9b, 0x009e99c0, 0x008e92ca, 0x004759a6, 0x00243b98, 0x0037489a, 0x00787aaf, 0x00cccfcf, 0x00dbdada, 0x00ebe5e9, 0x00eee5e9,
- 0x00ecf0cf, 0x00f2f5f1, 0x00bec5e8, 0x005762ad, 0x0043559a, 0x009daacb, 0x00e8eff5, 0x00e9e4e1, 0x00dcbe9c, 0x00bd935e, 0x00b68546, 0x00b98845, 0x008b6836, 0x006f5738, 0x004e4432, 0x001d1b15,
- 0x00040809, 0x00090d0e, 0x000c1311, 0x00182221, 0x001f2e2c, 0x0023332c, 0x002c3b30, 0x00313c32, 0x002f3528, 0x00343527, 0x00353b27, 0x003a4631, 0x00515b47, 0x005c6252, 0x00626658, 0x00696860,
- 0x006c6b64, 0x00696a64, 0x00646963, 0x00606861, 0x005b6660, 0x005d6360, 0x005b5f5b, 0x00585d57, 0x005f635f, 0x00a4a5a3, 0x00fcfdfb, 0x00fbfaf8, 0x00fcfcfb, 0x00fdfaf9, 0x00faf8f6, 0x00b0aead,
- 0x0023201c, 0x001c1a15, 0x001d1915, 0x0018140e, 0x0017130d, 0x00131208, 0x001b1a0f, 0x001e1c10, 0x00221b13, 0x001c180e, 0x00120a02, 0x00130300, 0x00110100, 0x00130101, 0x00170708, 0x00190a0c,
- 0x00231415, 0x00322624, 0x00433935, 0x00473e37, 0x00483f36, 0x0046433c, 0x00403f3c, 0x0034312e, 0x00191715, 0x000a0908, 0x00030504, 0x00020606, 0x00020809, 0x0002080b, 0x0000070a, 0x0002080c,
- 0x00060a05, 0x00030704, 0x00000100, 0x00010202, 0x00010101, 0x00000001, 0x00040406, 0x000b0b0f, 0x000a0a0c, 0x000e0d13, 0x0010100d, 0x000f0d02, 0x000d0d00, 0x000a0800, 0x00050600, 0x00090902,
- 0x000a0b06, 0x000d0c09, 0x000c0c0a, 0x00100e10, 0x00141415, 0x00251d14, 0x00372719, 0x00472e21, 0x0058321e, 0x0061341e, 0x0066361e, 0x0064351e, 0x00532e22, 0x003e241d, 0x002a1814, 0x00201414,
- 0x001c1d0c, 0x00262113, 0x00372d1d, 0x00463826, 0x0057422e, 0x00574230, 0x00594536, 0x0054413c, 0x003e3535, 0x002d252b, 0x001d191f, 0x00101510, 0x00090b07, 0x00090601, 0x001a150c, 0x003d3424,
- 0x0053432a, 0x00594628, 0x00614b2d, 0x006f5332, 0x00836741, 0x00866932, 0x00877139, 0x00907f58, 0x00a2a29b, 0x00a6adc4, 0x008c9cca, 0x00627bbd, 0x003657ac, 0x002c50ac, 0x003255b2, 0x003055b3,
- 0x00344acd, 0x002f4acd, 0x00264abe, 0x00274fb3, 0x001d3e6c, 0x00162a34, 0x001c2410, 0x00312d0a, 0x00352a11, 0x00332a21, 0x00271e18, 0x00291b17, 0x001f120d, 0x000f0705, 0x00030100, 0x00040603,
- 0x00000601, 0x00020604, 0x00090a09, 0x00080708, 0x000e080b, 0x0021150d, 0x003b2b1e, 0x00453626, 0x00433425, 0x00403222, 0x00362719, 0x0024180c, 0x004f473f, 0x00b8b5af, 0x00fcfcf9, 0x00fdfdfb,
- 0x00fbfcfb, 0x00fcfdfc, 0x00eeefee, 0x00e6e7e6, 0x00fcfcfd, 0x00fefdfe, 0x00fdfdfe, 0x00fcfcfd, 0x00fafbf9, 0x00e8e7e8, 0x00cccdcb, 0x00c8cac6, 0x00c8c7c6, 0x00c7c7c6, 0x00c3c5c2, 0x00c2c2c3,
- 0x00babbb8, 0x00bdbdbb, 0x00bcbcba, 0x00b8b9b5, 0x00b2b3b1, 0x00abacac, 0x00a7a7a8, 0x00acabac, 0x00b2b2b3, 0x00b7b8b8, 0x00bababa, 0x00bdbdbd, 0x00c1c1c2, 0x00c4c5c5, 0x00c4c3c4, 0x00c2c1c1,
- 0x00b7b7b7, 0x00b2b2b3, 0x00a8a8a9, 0x00a4a3a4, 0x00a09fa1, 0x009d9c9e, 0x009a9a9b, 0x009b9b9c, 0x00989b98, 0x009b9c9b, 0x009b9c9e, 0x009a9b9f, 0x009b979a, 0x009a9092, 0x00938685, 0x00937f7d,
- 0x008d7a6f, 0x008c7469, 0x008b7165, 0x00886a61, 0x007e5b52, 0x0077544a, 0x00724e43, 0x00704a41, 0x0072524b, 0x007a5b54, 0x00816961, 0x0087756f, 0x00877d7e, 0x00827e84, 0x0084858d, 0x0084868f,
- 0x00848b8b, 0x0086888d, 0x00878690, 0x0086858f, 0x00827e88, 0x007b777f, 0x00706c72, 0x00676065, 0x005c5557, 0x0050484b, 0x003d3737, 0x002f322e, 0x005c6368, 0x00a8b5c6, 0x00b1c3e1, 0x007e95c4,
- 0x00395498, 0x002d4597, 0x00233e8f, 0x00274393, 0x00223d86, 0x00213472, 0x00131f50, 0x00091138, 0x0010112a, 0x0021243b, 0x002d364b, 0x00203248, 0x002c425e, 0x00344765, 0x00212f50, 0x00363d5e,
- 0x00455457, 0x002a353c, 0x002e3742, 0x00323a4a, 0x004a5369, 0x006a748b, 0x00535e73, 0x00424c62, 0x004d586e, 0x00687285, 0x00798398, 0x00777fa0, 0x00465b9a, 0x00244281, 0x001a3874, 0x001f396a,
- 0x002d3b84, 0x003042ad, 0x002f47be, 0x002649b8, 0x00225593, 0x00294e99, 0x002e4a9e, 0x00324b9b, 0x003b4999, 0x003b4d9b, 0x00384e98, 0x00324b91, 0x004c5f8f, 0x00666e8e, 0x00423e4d, 0x002c1e20,
- 0x00211e1c, 0x00221e1f, 0x00231f23, 0x00201d21, 0x00131115, 0x000c0a0e, 0x00606064, 0x00d4d5d9, 0x00fffdff, 0x00fffcff, 0x00fcfcfc, 0x00fafcfe, 0x00c1c1c9, 0x0050474c, 0x001c0808, 0x00320f08,
- 0x00663423, 0x00955d4f, 0x008f5d4c, 0x0061372e, 0x003c2022, 0x002a1a1d, 0x00261c18, 0x00271913, 0x003a261c, 0x00523a2d, 0x00564232, 0x003f291c, 0x001c0e08, 0x001a1110, 0x00141014, 0x0017141d,
- 0x00131611, 0x00141414, 0x0016171a, 0x00131422, 0x00393659, 0x00686596, 0x009795c9, 0x00b1ace4, 0x00b5bbde, 0x00c1c7df, 0x00c4c7de, 0x00a19cc0, 0x00585583, 0x002c2c61, 0x00161955, 0x00111858,
- 0x00192972, 0x00213387, 0x0024388d, 0x001c308d, 0x001b2f8d, 0x00252c95, 0x002c2e86, 0x00201f4d, 0x00423c25, 0x00837453, 0x00826947, 0x006d4738, 0x0058272a, 0x0084524b, 0x00c59380, 0x00cd9d7b,
- 0x00c89672, 0x00b88464, 0x00a56e52, 0x00864e34, 0x006e3620, 0x007f4831, 0x00986246, 0x00a87255, 0x00be8a6c, 0x00cd997b, 0x00d3a07b, 0x00d4a077, 0x00caa786, 0x00caa084, 0x00cc9a82, 0x00b87c6c,
- 0x006b4d72, 0x00424b9d, 0x002c55c3, 0x00235cd7, 0x002b59bc, 0x002c54d2, 0x002b52d2, 0x003453c1, 0x003c4b89, 0x0048455e, 0x0055463f, 0x00674a2e, 0x0068482b, 0x00493729, 0x001d1617, 0x00212636,
- 0x003650a8, 0x00324ba9, 0x00243f9f, 0x002038a0, 0x001b359f, 0x002239a3, 0x0022369a, 0x001c2c8c, 0x00142374, 0x00131f6c, 0x00151b4e, 0x00100f15, 0x000a090e, 0x0006070b, 0x0009090b, 0x00080809,
- 0x000a0c08, 0x000c0e0a, 0x00080908, 0x00050506, 0x0057575b, 0x00dbdcdb, 0x00f8f9f8, 0x00fdfdfe, 0x00fafbfd, 0x00fafdfd, 0x00d1d6d1, 0x00677064, 0x002a3819, 0x003b4d23, 0x005c7139, 0x00657b3e,
- 0x0068872f, 0x006a8931, 0x006a8a2f, 0x006c8b32, 0x006c8a35, 0x006b8836, 0x006c883d, 0x006e8a47, 0x00718951, 0x00738a5b, 0x00758b5a, 0x00778e57, 0x00798e55, 0x007b8e5a, 0x007c8f58, 0x007c8f5a,
- 0x00788f58, 0x007a925a, 0x007b925a, 0x007d915b, 0x007c915a, 0x00799159, 0x00769057, 0x00789158, 0x007a925b, 0x007b955c, 0x007d975d, 0x007d975d, 0x007e965f, 0x007e965f, 0x007e965e, 0x007d965c,
- 0x007c9659, 0x007b9659, 0x007b9759, 0x007a9759, 0x007b9658, 0x00799556, 0x00779354, 0x00769152, 0x00759151, 0x00758f51, 0x00748d4e, 0x00728d46, 0x006f8a45, 0x006a8542, 0x00617b3d, 0x005a7438,
- 0x004b662b, 0x004a632f, 0x004a632e, 0x004d6433, 0x004d6333, 0x004c622e, 0x004a6129, 0x004b6033, 0x004e6036, 0x004f6135, 0x00516331, 0x004f6129, 0x00556231, 0x0056603b, 0x007d866d, 0x00a4ac9f,
- 0x00adadaa, 0x00aeaead, 0x00afafab, 0x00b3b4b0, 0x00777975, 0x001c201c, 0x00090f09, 0x000a110e, 0x000a130e, 0x000a130e, 0x000a130f, 0x000a140f, 0x000a140f, 0x000a140e, 0x0009140d, 0x0009140c,
- 0x0008130c, 0x0008130c, 0x0009130d, 0x0009130d, 0x0009130d, 0x0009130d, 0x000a130e, 0x000b130f, 0x000a130d, 0x0009130d, 0x0009130d, 0x0008130c, 0x0009130d, 0x0009130d, 0x0009130e, 0x0009130e,
- 0x000a140e, 0x000a140e, 0x000a140e, 0x000a140e, 0x000b140f, 0x000b150f, 0x000c150f, 0x000c150f, 0x000b150f, 0x000b1610, 0x000b150f, 0x000a150d, 0x000c160f, 0x000e160f, 0x000e140e, 0x000f120d,
- 0x000b100a, 0x000b0f0a, 0x000d0e08, 0x000e0f0b, 0x000f0d09, 0x000b0f0a, 0x00091008, 0x000a1209, 0x000a110c, 0x000d140e, 0x000e150e, 0x000d140e, 0x000e140e, 0x000d130e, 0x000d130d, 0x000d130c,
- 0x000c140d, 0x000c140e, 0x000c150d, 0x000c140c, 0x000c130d, 0x000b120c, 0x000a120a, 0x0008110a, 0x000c120d, 0x000b120c, 0x000c110b, 0x000d110b, 0x000d110c, 0x000d110c, 0x000c120b, 0x000d120b,
- 0x000d110b, 0x000c110a, 0x000b100a, 0x000a0f09, 0x000c0f0b, 0x000c0f0c, 0x000d100c, 0x000d110c, 0x000e110b, 0x000e110b, 0x000e110c, 0x000d100c, 0x000e110d, 0x000e130e, 0x000f140e, 0x000e140e,
- 0x000d120f, 0x000e1310, 0x000d110e, 0x000e130f, 0x000e120e, 0x000d110c, 0x00111510, 0x000b0f0a, 0x00111412, 0x000b110d, 0x000a0e0a, 0x000d0d05, 0x00272522, 0x0059575a, 0x008d8b95, 0x009493a2,
- 0x00848794, 0x007e808f, 0x007c7f8d, 0x00757a85, 0x00787d88, 0x007d818d, 0x008a8c9b, 0x00a8a9b8, 0x00cecdda, 0x00e0dfe9, 0x00f3f1f8, 0x00f5f4f7, 0x00faf9f9, 0x00fbf8f7, 0x00fbf7f5, 0x00fbfaf6,
- 0x00fbfdf9, 0x00fbfcf9, 0x00fefdfd, 0x00fefefd, 0x00f4f4f1, 0x00666360, 0x00241c13, 0x0022160a, 0x00362618, 0x00523f2f, 0x0074543b, 0x008c5b31, 0x00825633, 0x007d583b, 0x0072523d, 0x005b412f,
- 0x003e2d20, 0x00261911, 0x0021160f, 0x00231a16, 0x00231912, 0x0014130d, 0x00090e04, 0x00121811, 0x002b2e2a, 0x002c2f2d, 0x00212322, 0x00212321, 0x003f3d3e, 0x00494546, 0x00393232, 0x002a2123,
- 0x0033302f, 0x00343131, 0x00242222, 0x00171514, 0x0013120e, 0x00161610, 0x00181611, 0x002a2420, 0x00453b37, 0x004d423f, 0x004f3e33, 0x005a422b, 0x00493729, 0x003c3129, 0x00322d2b, 0x00313038,
- 0x001d2430, 0x00141b27, 0x000b101d, 0x00131620, 0x00322e3a, 0x00473b31, 0x004d3a26, 0x0055442e, 0x00604c3b, 0x005b463b, 0x0048372c, 0x00362419, 0x0022120e, 0x001d0d0a, 0x001c0f0c, 0x00201514,
- 0x001f170c, 0x00171310, 0x00171718, 0x00171b20, 0x0019191a, 0x001b1511, 0x00100603, 0x00120502, 0x00010003, 0x00040913, 0x0004141c, 0x000d2625, 0x00455f6e, 0x006d87a5, 0x00809bc3, 0x00829cd1,
- 0x00809acf, 0x007e95c9, 0x007086af, 0x005d6e91, 0x00283650, 0x00231c14, 0x00382610, 0x00382110, 0x00674930, 0x00be9e77, 0x00c1a46d, 0x00c1a55c, 0x00c0a55d, 0x00b39568, 0x00be9d89, 0x00e0bfc1,
- 0x00d4d8d9, 0x00e9eeed, 0x00ebefef, 0x00eef2f3, 0x00eff3f5, 0x00eef2f5, 0x00eff3f5, 0x00eef1f2, 0x00ebeff0, 0x00eaefef, 0x00e8edee, 0x00e8eced, 0x00e7e9eb, 0x00f1f2f4, 0x00edeef1, 0x00f0f2f3,
- 0x00f2f4f4, 0x00f2f4f8, 0x00f4f5f8, 0x00f3f5f7, 0x00f5f6fa, 0x00f2f3f5, 0x00f6f7f2, 0x00ecece6, 0x008d857d, 0x00473c32, 0x00625446, 0x00685949, 0x006c5b4d, 0x00756557, 0x008a7a6c, 0x008f7e74,
- 0x00f6f6fa, 0x00e3e3e7, 0x00ebe9ed, 0x00e2e5e6, 0x00e4e6e6, 0x00dedfe2, 0x00e0dfe4, 0x00d5d4da, 0x00d1cbd8, 0x00bab5c0, 0x009492a5, 0x00999fb7, 0x00afb4cf, 0x00b0b4cc, 0x00aeafca, 0x00b0b2cc,
- 0x00b1b1ca, 0x00b5b6d1, 0x00bcbad6, 0x00bebed7, 0x00c5c3dc, 0x00bac2e5, 0x005f6689, 0x000c1124, 0x00261e28, 0x00614747, 0x0094685d, 0x00b1784a, 0x00b97c23, 0x00a56b15, 0x00ae7b36, 0x0097673e,
- 0x00282c3a, 0x000f0f10, 0x001b100a, 0x0036220f, 0x00927662, 0x00c2aaa0, 0x00cbbac2, 0x009790b2, 0x00404b98, 0x00243998, 0x0024368d, 0x005c5e97, 0x00b7b8ba, 0x00d2cfd1, 0x00e0dbdc, 0x00e8e1e0,
- 0x00f3f2d7, 0x00f0f3f0, 0x00c7cdf1, 0x006972bc, 0x00374a8f, 0x008593b7, 0x00e8eff8, 0x00e4e4e2, 0x00d5baa1, 0x00c19f76, 0x00ae8756, 0x00a7804c, 0x007d653d, 0x004a3c25, 0x0016140b, 0x000b100e,
- 0x000e1315, 0x0014191c, 0x00242c2b, 0x002c3734, 0x00212f2a, 0x0016241b, 0x00212f23, 0x002b352c, 0x002e322b, 0x002c3026, 0x002c3327, 0x002d3b2a, 0x003b4237, 0x003f4639, 0x0044463d, 0x004a4b43,
- 0x0051534c, 0x004f524c, 0x004f544f, 0x004e544e, 0x004c554e, 0x004b514c, 0x00505550, 0x00515752, 0x00525553, 0x00959693, 0x00faf9f8, 0x00fafcf9, 0x00fdfefb, 0x00fcfdfa, 0x00fefbfa, 0x00c0bcbc,
- 0x00303932, 0x00202a22, 0x00202922, 0x00192018, 0x00171c14, 0x00151a10, 0x001e2216, 0x0023261a, 0x0029271d, 0x00232518, 0x001b160b, 0x001a0b04, 0x00110500, 0x00120703, 0x00160b0a, 0x00140d0d,
- 0x001e151a, 0x00221c1e, 0x00232020, 0x001b1815, 0x00100e0a, 0x00080d0c, 0x0002080b, 0x00020408, 0x00010107, 0x0002060a, 0x0003090d, 0x00020a0d, 0x00030a0f, 0x0001080d, 0x0000060c, 0x00010a11,
- 0x00080a06, 0x00040601, 0x00030300, 0x00050300, 0x000c0907, 0x00100d0a, 0x0015110f, 0x00191512, 0x001b1114, 0x00150f0e, 0x00130e0b, 0x000b0c02, 0x000c0c05, 0x00060800, 0x00080802, 0x00090a04,
- 0x00090708, 0x00090909, 0x000b080c, 0x000c0b0c, 0x00131119, 0x00181615, 0x00241e1b, 0x00302219, 0x00482318, 0x00542816, 0x005f2e19, 0x0062301b, 0x00562e1d, 0x00462719, 0x00321a10, 0x002a1912,
- 0x00262720, 0x00322e24, 0x00443c2f, 0x0053462f, 0x005b442f, 0x0059432b, 0x0058432f, 0x00503d31, 0x00443935, 0x00322b2b, 0x00131112, 0x00080d04, 0x00050700, 0x00120f07, 0x00342e24, 0x003c3427,
- 0x0043311f, 0x004e3924, 0x005b4028, 0x00634a29, 0x007c603c, 0x008c6f50, 0x008f7252, 0x00866f4d, 0x00847653, 0x00949070, 0x00a8ac95, 0x00aab8ad, 0x0093a7bd, 0x007186b6, 0x004a5da3, 0x00364c9f,
- 0x003a48cc, 0x002d4bca, 0x00284ec4, 0x001e4fab, 0x00234265, 0x00333f34, 0x00595426, 0x00715e1c, 0x00624b1a, 0x00514221, 0x00362712, 0x00412a1c, 0x00412e26, 0x002c1f17, 0x00090402, 0x00000201,
- 0x00010403, 0x00030605, 0x000b0b0c, 0x000a0a0c, 0x000f0c0d, 0x00281e13, 0x00483725, 0x0052402e, 0x00523e2c, 0x004b3927, 0x00413020, 0x002f2013, 0x0051463d, 0x00b0aca7, 0x00fdfffc, 0x00fbfffd,
- 0x00fdfdfe, 0x00fffeff, 0x00f0f0f0, 0x00e7e7e7, 0x00fbfbfb, 0x00fffffe, 0x00fdfdfc, 0x00fbfcfb, 0x00fafbfd, 0x00e8e8e9, 0x00cecece, 0x00c8c9c7, 0x00c9c8c9, 0x00c8c7c8, 0x00c4c5c5, 0x00c0c0c1,
- 0x00bcb8bb, 0x00bbb9bb, 0x00b5b5b6, 0x00aeb0af, 0x00a8aaa9, 0x00a3a5a5, 0x00a1a1a2, 0x00a5a5a6, 0x00aeadae, 0x00b1b1b1, 0x00b3b3b3, 0x00b5b5b5, 0x00b7b6b7, 0x00b9b9bb, 0x00b8b9ba, 0x00b3b5b5,
- 0x00aaa8ad, 0x00a2a1a5, 0x00959498, 0x008b8b8e, 0x0087878a, 0x00858588, 0x0087878a, 0x008b8b8e, 0x00949295, 0x00979699, 0x00999a9e, 0x0095989c, 0x00989496, 0x00958c8b, 0x008c817c, 0x0088776f,
- 0x00866d67, 0x007e665b, 0x00796056, 0x0075594d, 0x00694c45, 0x005f473c, 0x00563f35, 0x0053382f, 0x00583c31, 0x0064483d, 0x0071584c, 0x007c675e, 0x00817471, 0x007f7a7c, 0x00818589, 0x007f868e,
- 0x00868489, 0x00818085, 0x007d7d84, 0x007a7a82, 0x0074737c, 0x006f6e77, 0x0064636e, 0x00585764, 0x0050495c, 0x00423f4f, 0x0033333f, 0x00363e42, 0x00838ba0, 0x00a2b0cf, 0x007282af, 0x004a5d97,
- 0x002a3f85, 0x00243883, 0x00263c87, 0x00293f87, 0x00263a83, 0x001e2d64, 0x0018204a, 0x000a0e29, 0x00140f1f, 0x00292532, 0x002e303d, 0x002a3548, 0x003b4b68, 0x00344162, 0x002e3a5c, 0x0054587a,
- 0x004d5156, 0x00292e35, 0x00313640, 0x00272c39, 0x002b3244, 0x00373f51, 0x00323a4a, 0x00333d4c, 0x00555f6d, 0x00727d88, 0x00798492, 0x004a576a, 0x0035244e, 0x00372552, 0x002b1f4d, 0x00222651,
- 0x00213474, 0x00294196, 0x003148ac, 0x002847a6, 0x00214d95, 0x00284a99, 0x002a479d, 0x002f449c, 0x0033409e, 0x002f409c, 0x002f42a0, 0x002b4196, 0x00465595, 0x0061658d, 0x00493e52, 0x00321d1e,
- 0x00271f23, 0x00231e21, 0x00232125, 0x001b1c21, 0x0012141b, 0x000a0d14, 0x005d5e65, 0x00cfd0d6, 0x00fffcfe, 0x00fefcff, 0x00fefefe, 0x00fbfefd, 0x00c8cad1, 0x00585159, 0x001d0a10, 0x0032100f,
- 0x00633024, 0x0091584c, 0x009d675d, 0x007a4c44, 0x00513134, 0x00321e1c, 0x002d1e1b, 0x00322019, 0x00513429, 0x0065483a, 0x00694b3c, 0x004b3122, 0x00221008, 0x001d1310, 0x001c161b, 0x0014131d,
- 0x0017141d, 0x0016151c, 0x00191924, 0x00131523, 0x001b193e, 0x002f2d60, 0x004d4c86, 0x006261a1, 0x006b6da6, 0x00686d9c, 0x005c5e8e, 0x003c3773, 0x00131355, 0x000f1258, 0x001c2370, 0x0023317f,
- 0x0022318a, 0x001e3289, 0x00192c82, 0x00152b7c, 0x001e3182, 0x00263395, 0x002f3492, 0x002c306b, 0x00544851, 0x00836f65, 0x007b5b4a, 0x00744838, 0x008b554e, 0x00c48b7b, 0x00e8ac98, 0x00ebb192,
- 0x00deac90, 0x00d7a38a, 0x00c48e75, 0x00aa725b, 0x00793e29, 0x007b402a, 0x00a3694f, 0x00be856a, 0x00c89474, 0x00d09e7a, 0x00d6a27e, 0x00d49f77, 0x00cda88a, 0x00cca07f, 0x00cb967b, 0x00b4755e,
- 0x006c486b, 0x00424a97, 0x002e53c2, 0x001f57d4, 0x002a53c2, 0x002750cc, 0x002b4fce, 0x002f50c1, 0x00394d9f, 0x00464c80, 0x005a5473, 0x00735e6d, 0x00705966, 0x00524761, 0x00373559, 0x00313b6d,
- 0x003549a9, 0x002d44a4, 0x00263ba0, 0x001f369e, 0x002035a0, 0x00193096, 0x001a2b8e, 0x001a2983, 0x001b2570, 0x00121c62, 0x000e1541, 0x000c0c0d, 0x000a090a, 0x000c0c0b, 0x000c0c0a, 0x00080b0a,
- 0x000b0a0a, 0x00070806, 0x000b0b0b, 0x00030404, 0x00707072, 0x00eaebe8, 0x00fdfefb, 0x00fefefe, 0x00fbfcff, 0x00fafdfe, 0x00c3c9c6, 0x00525c4e, 0x002d3b1f, 0x00405427, 0x005c723b, 0x0061793a,
- 0x00668f2f, 0x00658d2e, 0x00658b30, 0x00638731, 0x00628537, 0x0064843b, 0x006b8a42, 0x006c8846, 0x00698544, 0x006d8848, 0x00738d4f, 0x00738d4e, 0x00758f52, 0x00779252, 0x007a9455, 0x007b9354,
- 0x007a9355, 0x007b9456, 0x007d9558, 0x007e9557, 0x007f9658, 0x007c9456, 0x007a9455, 0x00789354, 0x007a9456, 0x007b9456, 0x007d9657, 0x007e9759, 0x007e9859, 0x007c9758, 0x007c9757, 0x007d9757,
- 0x00809858, 0x007f9958, 0x00809959, 0x007f9958, 0x007f9957, 0x007f9957, 0x00809857, 0x00809957, 0x007c9858, 0x007b9756, 0x007a9551, 0x00779547, 0x00759446, 0x00729144, 0x006d8a3f, 0x006c873d,
- 0x00627d37, 0x00617c38, 0x00607b39, 0x005f7a38, 0x00627c3e, 0x00607b35, 0x005e7933, 0x005f7939, 0x00637a3e, 0x00637b3c, 0x00647c38, 0x00637931, 0x00687b3b, 0x006a7a45, 0x009caa81, 0x00cddac0,
- 0x00dfdbdb, 0x00dcd9d9, 0x00e1dfde, 0x00e1e2dd, 0x00949795, 0x00222823, 0x000b140f, 0x000c1611, 0x000b1813, 0x000c1812, 0x000c1912, 0x000d1912, 0x000d1a12, 0x000d1912, 0x000d1912, 0x000c1912,
- 0x000e1915, 0x000e1913, 0x000e1913, 0x000e1a13, 0x000d1a13, 0x000d1a13, 0x000c1912, 0x000c1910, 0x000c1a12, 0x000c1a12, 0x000c1912, 0x000c1912, 0x000c1913, 0x000c1913, 0x000c1913, 0x000c1913,
- 0x000d1a13, 0x000d1a13, 0x000d1912, 0x000c1912, 0x000c1912, 0x000d1913, 0x000d1a13, 0x000d1a13, 0x000e1b15, 0x000e1a14, 0x000d1812, 0x000c1811, 0x000e1a12, 0x000f1b12, 0x00101810, 0x0010160e,
- 0x0010160e, 0x0010130c, 0x0012120e, 0x0012110b, 0x0012100d, 0x000a1109, 0x000a120c, 0x000b130d, 0x000d150d, 0x00101911, 0x00111a13, 0x00101911, 0x00101911, 0x00101911, 0x000f1911, 0x000f1811,
- 0x00111913, 0x00111813, 0x00111811, 0x0010180f, 0x000f1810, 0x000d170e, 0x000c150b, 0x000b130a, 0x000c120c, 0x000a120b, 0x000b110c, 0x000e130d, 0x000f140d, 0x000e140c, 0x000e140c, 0x000e140c,
- 0x000e120c, 0x000e120c, 0x000e120d, 0x000e120d, 0x000e140d, 0x000e140d, 0x000f140e, 0x000f140f, 0x0011150f, 0x0010150e, 0x0010150f, 0x000f140f, 0x00111610, 0x00111610, 0x0010150f, 0x000e140d,
- 0x00111512, 0x00101411, 0x00101511, 0x000f1410, 0x00101612, 0x000e140f, 0x00121914, 0x000c130e, 0x00151716, 0x000c100c, 0x00141512, 0x0034342d, 0x00878887, 0x00b9bbc3, 0x00bbbdce, 0x00a0a2b9,
- 0x009095b3, 0x008388a7, 0x007d84a3, 0x007c85a1, 0x007d85a0, 0x007e849f, 0x00898da8, 0x00999db7, 0x00a2a5c0, 0x009fa0b8, 0x009c99ac, 0x009795a2, 0x009a99a1, 0x009b999f, 0x00aea9ac, 0x00dbd8d9,
- 0x00fffcf4, 0x00fcfcf4, 0x00fdfff9, 0x00fdfff9, 0x00f1f2eb, 0x00686660, 0x00242017, 0x00201b11, 0x00372b1d, 0x00564939, 0x00775e48, 0x00825634, 0x00795036, 0x007a5640, 0x00795a4d, 0x00644b46,
- 0x00423236, 0x002d2123, 0x0024191c, 0x001e1515, 0x00170e0d, 0x0011120e, 0x00040a09, 0x00030908, 0x00151918, 0x001b1e1e, 0x00181918, 0x00121211, 0x00191819, 0x00232020, 0x001b1816, 0x0014120f,
- 0x00100c0e, 0x00181918, 0x00121514, 0x000a0e0d, 0x00070c0c, 0x00050a0b, 0x00090a0e, 0x00141317, 0x001d161f, 0x002c252f, 0x00423436, 0x00513d32, 0x00554946, 0x00545256, 0x00626775, 0x006f7c95,
- 0x007488a4, 0x006f83a2, 0x005c6c90, 0x00435171, 0x0027304d, 0x0025272a, 0x002d261d, 0x0030261b, 0x0040332a, 0x0046382f, 0x003c2e27, 0x00241c16, 0x000b0609, 0x0000060b, 0x00030b15, 0x00081420,
- 0x0018100f, 0x00110f0f, 0x00101214, 0x0015181b, 0x00201c1b, 0x00231814, 0x001f120e, 0x00110404, 0x0005060e, 0x00000412, 0x00091a2c, 0x00355860, 0x007da7c3, 0x007aa7ce, 0x006c99cf, 0x00709bde,
- 0x006590db, 0x005c86ce, 0x00557dc3, 0x006184c5, 0x003c5b97, 0x00222837, 0x00281e14, 0x002b1c0d, 0x007f5d3c, 0x00c7a06c, 0x00c39856, 0x00cba04c, 0x00cba357, 0x00ba955d, 0x00b69473, 0x00d9b9ac,
- 0x00d2d5d7, 0x00e6eaec, 0x00eef1f3, 0x00eef2f3, 0x00f0f3f4, 0x00edf1f1, 0x00edf1f2, 0x00e9edee, 0x00eaedef, 0x00e7eaec, 0x00e7eaec, 0x00dcdee0, 0x00d8d9db, 0x00ebedef, 0x00edf1f2, 0x00ebf0f1,
- 0x00eff1f2, 0x00eef2f4, 0x00f1f3f6, 0x00f3f5f6, 0x00f4f7f9, 0x00f5fafb, 0x00f2f5f4, 0x00f3f3f1, 0x00b3aca0, 0x00504738, 0x004b3f2c, 0x00574934, 0x005d4e3c, 0x00635445, 0x006d5e54, 0x006b5b57,
- 0x00f5f5f9, 0x00e5e2e6, 0x00e7e5e6, 0x00e2e0de, 0x00dfe1d7, 0x00ddddd7, 0x00dad9d7, 0x00d0d1d0, 0x00cccad2, 0x00c0c0c9, 0x00aaa9bc, 0x00b0b3cf, 0x00b5b8d2, 0x00b3b5ce, 0x00b0afc8, 0x00b1b3ca,
- 0x00b6b6cf, 0x00bab9d2, 0x00bcbbd4, 0x00bbbbd6, 0x00bfc0d8, 0x00bdbde4, 0x0066668a, 0x000b0d21, 0x00050619, 0x0021142a, 0x00422736, 0x00785148, 0x00ad8441, 0x009e7736, 0x00926e3c, 0x00714d3b,
- 0x00352f44, 0x003a2c31, 0x00422c1f, 0x00684929, 0x00b58f63, 0x00ceac8d, 0x00cbb1a8, 0x0082728a, 0x002e3584, 0x0026369f, 0x001d2c8e, 0x00434482, 0x00a6a7ae, 0x00cfcdd0, 0x00dbd5d6, 0x00e6dddc,
- 0x00ededd1, 0x00f1f6f0, 0x00d6ddfd, 0x007d85cd, 0x002c4182, 0x00717fa3, 0x00e4ebf9, 0x00e2e4e8, 0x00d9ccb4, 0x00c6b193, 0x00a48865, 0x008f744d, 0x006b5a3e, 0x00433829, 0x000b0a05, 0x00080c0e,
- 0x00171617, 0x001d1d1d, 0x00212322, 0x00222623, 0x0017211c, 0x00121c15, 0x0018221b, 0x001d2521, 0x001e291f, 0x00212920, 0x00232c23, 0x00222c27, 0x00242d26, 0x00252a26, 0x00252721, 0x00282722,
- 0x00262922, 0x00262a24, 0x00242b25, 0x00242c24, 0x00232e24, 0x00242a24, 0x00232623, 0x00242825, 0x00292c29, 0x007d7e7b, 0x00fbfcfa, 0x00fcfaf8, 0x00fefffc, 0x00fcfdfb, 0x00fefefe, 0x00cdc8c9,
- 0x003a5146, 0x00233a2f, 0x0022382d, 0x001c2d22, 0x001b271d, 0x00182318, 0x00222d20, 0x002c3427, 0x0034382d, 0x0033382c, 0x002b291d, 0x00241a10, 0x00140b03, 0x00130b06, 0x0017100e, 0x00161012,
- 0x0009060b, 0x00060307, 0x00030104, 0x00040403, 0x00020200, 0x00000303, 0x00000103, 0x00020103, 0x00010508, 0x00020608, 0x0005090b, 0x00080b0d, 0x000a0a0c, 0x00070507, 0x00040304, 0x00050404,
- 0x00070500, 0x000a0701, 0x00130f07, 0x001a140d, 0x00231b16, 0x00291f1b, 0x00291f18, 0x00241a12, 0x00231511, 0x001d110a, 0x00181008, 0x0010100d, 0x000b0b06, 0x00070905, 0x00050403, 0x00050504,
- 0x00070707, 0x00080808, 0x00070709, 0x0008080b, 0x000d0d11, 0x000c1214, 0x00121617, 0x001c1a14, 0x0035170e, 0x00441c0d, 0x00582615, 0x00602c18, 0x005b2e1c, 0x004d2a17, 0x003d2312, 0x00352213,
- 0x002b312f, 0x00393a33, 0x004e483a, 0x00594d39, 0x005e4930, 0x005d472e, 0x005c462d, 0x004c3b27, 0x004a4137, 0x003e3a33, 0x0015150d, 0x000f1203, 0x001f2112, 0x00424031, 0x00645e51, 0x00473e32,
- 0x003c2c20, 0x00483427, 0x004f3827, 0x00533921, 0x00664f2f, 0x007d5f4c, 0x0092725f, 0x0093755b, 0x00876e44, 0x0084703f, 0x0089784b, 0x009d946e, 0x00bfbeb7, 0x00bcc2d2, 0x008490b2, 0x00536492,
- 0x003848a4, 0x002948ae, 0x002850ba, 0x001e50b6, 0x0029467f, 0x00404555, 0x006e5d47, 0x008b693a, 0x00795b28, 0x0066512b, 0x00402a0e, 0x00452816, 0x004e3a29, 0x003e3124, 0x00110b01, 0x00020200,
- 0x00000504, 0x00050709, 0x000c0c0d, 0x000b0a0c, 0x00130f10, 0x002f2416, 0x004e3b27, 0x0059432f, 0x00563f2b, 0x004e3a25, 0x00473422, 0x00362617, 0x004c4137, 0x00a6a29c, 0x00fefdfb, 0x00fcfdfc,
- 0x00fdfdfd, 0x00fefefe, 0x00f0f0f0, 0x00e9e9e9, 0x00fcfcfc, 0x00fdfdfd, 0x00fefefe, 0x00fcfcfc, 0x00fbfbfc, 0x00eaeaeb, 0x00ceced0, 0x00c9c9cb, 0x00c8c7cb, 0x00c7c7cb, 0x00c2c1c6, 0x00bebdc1,
- 0x00b7b5ba, 0x00b4b2b7, 0x00adadb1, 0x00a6a7aa, 0x00a2a2a5, 0x00a1a0a3, 0x009fa0a2, 0x00a2a2a4, 0x00acabad, 0x00afaeb0, 0x00b0aeb0, 0x00b0aeb1, 0x00aeadb0, 0x00afaeb2, 0x00adaeb1, 0x00a7aaac,
- 0x00a2a1a7, 0x0099989f, 0x008a898f, 0x007f7f84, 0x0078777d, 0x007a7980, 0x007e7d83, 0x00817f86, 0x008a888f, 0x008e8e93, 0x00919298, 0x00919398, 0x00939092, 0x00938a88, 0x00897d77, 0x00847369,
- 0x007d635a, 0x0071594f, 0x00684f45, 0x00624840, 0x00543c36, 0x0046342f, 0x003d2d26, 0x003c2720, 0x00472f1e, 0x00563c2c, 0x00664c3c, 0x00756052, 0x007f726b, 0x00817b7a, 0x00838587, 0x007e848a,
- 0x00807b81, 0x0078757a, 0x00706f74, 0x006c6c73, 0x00656770, 0x0060626f, 0x00585b6b, 0x004d5164, 0x0041435c, 0x00343952, 0x00282e44, 0x003e4a56, 0x007880a0, 0x005f6b99, 0x0033417c, 0x002d3d81,
- 0x00263880, 0x0023367c, 0x0022367a, 0x0026397d, 0x0022327a, 0x001d2b5d, 0x00182042, 0x00111026, 0x00130b14, 0x001c161c, 0x0027252e, 0x00414658, 0x00586481, 0x00434c6d, 0x00383f63, 0x00515276,
- 0x003c3e48, 0x001c1e2a, 0x00161925, 0x00131724, 0x001f2534, 0x00353c4b, 0x00565d6b, 0x007a828f, 0x009ca8ae, 0x00a5b1b5, 0x00a7b1b3, 0x0097a09a, 0x009b606a, 0x007e3649, 0x00521531, 0x00291130,
- 0x000b2155, 0x001b326f, 0x002f4088, 0x0030438f, 0x00264798, 0x00264796, 0x00284594, 0x002a4093, 0x00293d97, 0x00263b98, 0x00223894, 0x00253c94, 0x00404d8b, 0x0055547a, 0x00483747, 0x0042231f,
- 0x00272024, 0x00241f24, 0x00212026, 0x001d2027, 0x00181c25, 0x0011161e, 0x005c5f67, 0x00cdcfd5, 0x00fefdfe, 0x00fdfcff, 0x00fdfdfe, 0x00fafefa, 0x00ccd1d2, 0x005f5e61, 0x001b1113, 0x002e1613,
- 0x0051251b, 0x007d4837, 0x00a36e5a, 0x00976654, 0x00633d32, 0x00331c18, 0x002e1c19, 0x00361e1a, 0x004f2f22, 0x00704d3e, 0x00775847, 0x00583828, 0x00241007, 0x001c100d, 0x001d171d, 0x0013111d,
- 0x0016131c, 0x00131218, 0x0018191e, 0x00171a21, 0x001a1d31, 0x00161840, 0x001b1d50, 0x001b1e5a, 0x001c2159, 0x00182155, 0x0013194d, 0x0011124b, 0x00121756, 0x001a226a, 0x001c2776, 0x00192c7e,
- 0x00142483, 0x00122681, 0x00152880, 0x00182d80, 0x00213381, 0x00223695, 0x00253798, 0x002d3988, 0x004f4c79, 0x0076677d, 0x006b5054, 0x006e4640, 0x009f6b5f, 0x00c48d7c, 0x00c78e7c, 0x00cb927e,
- 0x00c99d88, 0x00d4a591, 0x00d6a592, 0x00cc9685, 0x00925849, 0x00703523, 0x00975e48, 0x00bd846c, 0x00c79570, 0x00cc9b74, 0x00d39e79, 0x00d39a78, 0x00cda487, 0x00cb9d7c, 0x00c99472, 0x00b07253,
- 0x006a4760, 0x00434892, 0x002e51c0, 0x001f52d4, 0x002850c7, 0x002a4fca, 0x002b4ec9, 0x002c4cc4, 0x00304baf, 0x003b4a9e, 0x004b4e98, 0x00595290, 0x00584f8c, 0x00424288, 0x0037408e, 0x002f4297,
- 0x002e3fa2, 0x002a3ca1, 0x0024389e, 0x002335a1, 0x002236a0, 0x00203097, 0x001a2b89, 0x001b287d, 0x00192469, 0x00131d5d, 0x000c133b, 0x00090b09, 0x000b0b09, 0x000c0c09, 0x000d0d0a, 0x00080808,
- 0x000a0a0c, 0x00070809, 0x00080809, 0x00070808, 0x00828384, 0x00f0f1ec, 0x00fefefa, 0x00fffefc, 0x00fdfeff, 0x00fcffff, 0x00b7bdbb, 0x00444e47, 0x00314227, 0x00445931, 0x005a733c, 0x005e7a3c,
- 0x00628849, 0x0062864d, 0x00648652, 0x00628356, 0x00618158, 0x00608055, 0x00678656, 0x006a8a53, 0x00678741, 0x0069893d, 0x006e8c43, 0x006d894b, 0x00718d4e, 0x00738f4f, 0x00759150, 0x00769051,
- 0x00799453, 0x007b9556, 0x007d9557, 0x007d9758, 0x007d9657, 0x007e9657, 0x007d9555, 0x007a9456, 0x007a9555, 0x007b9556, 0x007c9557, 0x007c9556, 0x007d9657, 0x007c9656, 0x007c9556, 0x007d9556,
- 0x00809859, 0x007f985a, 0x0080985a, 0x0080985a, 0x007f985a, 0x0080995a, 0x00829a5b, 0x00839b5d, 0x007f9a5c, 0x0080995c, 0x007f9859, 0x007f9953, 0x007d9852, 0x007c9851, 0x007a9551, 0x007a934e,
- 0x00728c4b, 0x00728b4a, 0x006f8846, 0x006e8747, 0x006d8644, 0x006e8842, 0x006d8940, 0x006e8945, 0x006e8648, 0x00708845, 0x00718a42, 0x006f893e, 0x00738846, 0x00768954, 0x00adbe96, 0x00e4f1d7,
- 0x00faf7f5, 0x00f5f2f2, 0x00f8f7f5, 0x00fafbfa, 0x00a1a6a0, 0x00262d29, 0x00101913, 0x000f1a15, 0x000c1b14, 0x000d1b14, 0x000f1c15, 0x000f1d15, 0x000f1d16, 0x000e1d15, 0x000e1c15, 0x000e1c15,
- 0x000f1d17, 0x000f1d17, 0x000f1d16, 0x000f1d15, 0x000f1d17, 0x000e1d16, 0x000d1c14, 0x000d1c13, 0x000d1e14, 0x000e1d15, 0x000f1d16, 0x000f1d16, 0x000f1d17, 0x000e1d16, 0x000e1d16, 0x000e1d15,
- 0x000e1d15, 0x000e1d15, 0x000e1d15, 0x000e1d15, 0x000e1d15, 0x000e1d16, 0x000f1d16, 0x000f1e17, 0x000e1e16, 0x00101e17, 0x000f1d15, 0x000e1d14, 0x00111e16, 0x00121e15, 0x00121c12, 0x00141b12,
- 0x00131a11, 0x00131710, 0x00161510, 0x0014120f, 0x0014120d, 0x000b110b, 0x000a130c, 0x000c120e, 0x000f180e, 0x00111b12, 0x00131d14, 0x00121c13, 0x00121b13, 0x00131c14, 0x00131d15, 0x00131b15,
- 0x00141d16, 0x00141c15, 0x00131b14, 0x00121b13, 0x00111b13, 0x00101a11, 0x000e170f, 0x000d150d, 0x000c150b, 0x000a130a, 0x0009110a, 0x000b120a, 0x000c130b, 0x000c130a, 0x000b130b, 0x000c120c,
- 0x000a1108, 0x000b1109, 0x000d120c, 0x000d130d, 0x000d140d, 0x000d150c, 0x000e140c, 0x000e140c, 0x000d140c, 0x000d140c, 0x000e150c, 0x000f170e, 0x0010160e, 0x0010150e, 0x000e130d, 0x000e120d,
- 0x000f1511, 0x000e1510, 0x000f1511, 0x000e1410, 0x000f1511, 0x000f1511, 0x00111713, 0x00121814, 0x00111411, 0x000a100a, 0x00343934, 0x0083877f, 0x00c8cccc, 0x00cfd2de, 0x00acafc6, 0x009095b4,
- 0x007981ad, 0x00737ca9, 0x007b86b4, 0x007e8cb8, 0x007b88b3, 0x007d87b2, 0x008087af, 0x007981a5, 0x00636b8e, 0x00505374, 0x003f3f5b, 0x0036354c, 0x00323041, 0x00353341, 0x00625f6c, 0x00bfbac7,
- 0x00fffbf8, 0x00fbf9f6, 0x00fdfdfd, 0x00fbfcfa, 0x00ecedec, 0x005b5b5c, 0x00201e1d, 0x00221f1d, 0x00413832, 0x00574d46, 0x006a574f, 0x00765746, 0x006e524a, 0x0069534d, 0x00645456, 0x00584e57,
- 0x00444152, 0x00373647, 0x00252431, 0x001a1a26, 0x000e0d14, 0x00060913, 0x0000040e, 0x00030711, 0x0012161f, 0x00151821, 0x000d0f17, 0x0008080f, 0x000d0c13, 0x00141218, 0x00100e12, 0x0008070a,
- 0x000b0a0d, 0x000b0d10, 0x0003080c, 0x00050c12, 0x00040b17, 0x00050a1a, 0x00040519, 0x000d0d24, 0x00252142, 0x00312e51, 0x00302a42, 0x003a323a, 0x00484c5b, 0x00606d84, 0x007e94b4, 0x006e8fbb,
- 0x00638bc0, 0x005e86bc, 0x007195cf, 0x007d9dd4, 0x006e89c0, 0x00586f8c, 0x00192735, 0x0010181e, 0x002e2e29, 0x00342c27, 0x003b3027, 0x0024160f, 0x000a0304, 0x00020207, 0x00010710, 0x00010a18,
- 0x00110d0a, 0x000d0d0b, 0x000f1010, 0x00161617, 0x0028211e, 0x0033241f, 0x002c1d19, 0x001b0d0d, 0x00080a17, 0x0001091e, 0x003c5472, 0x00769dc0, 0x006a98c6, 0x005281b8, 0x005487c4, 0x00548ccf,
- 0x004a81cc, 0x004679c3, 0x004071b9, 0x004370b5, 0x004a6fb0, 0x00435172, 0x001e1b28, 0x00231916, 0x008e6f4e, 0x00c39b68, 0x00c5955a, 0x00ca9553, 0x00d09f69, 0x00b88f66, 0x00a58365, 0x00d5baa4,
- 0x00ccd0d1, 0x00e2e5e8, 0x00eef0f3, 0x00eff1f3, 0x00f0f2f3, 0x00eff1f1, 0x00edf0f0, 0x00e9ecee, 0x00e7ebec, 0x00e4e7e8, 0x00e5e8e9, 0x00cfd2d3, 0x00c4c4c7, 0x00e3e5e7, 0x00eef2f4, 0x00eff3f5,
- 0x00ecf0ef, 0x00eef1f1, 0x00eef0f3, 0x00f3f5f6, 0x00f5f7f8, 0x00f2f8f9, 0x00eff5f6, 0x00f3f6f5, 0x00bcb8ac, 0x00484133, 0x003e3422, 0x004b3e2b, 0x00554636, 0x00594a3d, 0x005b4c43, 0x00554643,
- 0x00f8f5f8, 0x00e6e2e3, 0x00e5e4e3, 0x00e0dfd6, 0x00dddbce, 0x00d7d6c8, 0x00d2d2cb, 0x00cbccc6, 0x00c5cacb, 0x00bdc2c7, 0x00b1b7c6, 0x00b1b2cd, 0x00b3b5ce, 0x00b2b0c8, 0x00b4b1c9, 0x00b7b6cc,
- 0x00bdbdd3, 0x00bfbdd5, 0x00bcbdd6, 0x00bbbdd5, 0x00c1c1dc, 0x00c5bcdb, 0x006b657c, 0x000f121a, 0x00090f23, 0x000e0b31, 0x000f042a, 0x002f1a30, 0x006b5434, 0x006b5537, 0x00543c34, 0x00371935,
- 0x00392c44, 0x006d595c, 0x00795c4d, 0x009b754d, 0x00cc9d64, 0x00d5a87d, 0x00c19d8e, 0x00755c73, 0x00282b7e, 0x00232fa1, 0x0018228e, 0x00252564, 0x007d7f88, 0x00c8c7cc, 0x00ded8db, 0x00e4d9da,
- 0x00e3e2c2, 0x00e9ede9, 0x00e1e9ff, 0x00929bdc, 0x002b4082, 0x005e6d90, 0x00d8dff0, 0x00e6e9f1, 0x00eee5da, 0x00dccfbb, 0x00b7a48c, 0x00847053, 0x003d2e1b, 0x00241b11, 0x000d0807, 0x000c0b12,
- 0x00150e13, 0x001e191c, 0x001c1a19, 0x001b1b18, 0x001f2520, 0x00202622, 0x001d2420, 0x001a221c, 0x001a2422, 0x001b2621, 0x001e2623, 0x001d2626, 0x001c2423, 0x001d2323, 0x00212123, 0x00212122,
- 0x00242722, 0x00222620, 0x00212720, 0x001f271e, 0x001e2920, 0x001f2621, 0x001f2421, 0x00212523, 0x00262825, 0x00757774, 0x00f5f5f3, 0x00fbf9f8, 0x00fffefc, 0x00fdfdfc, 0x00fcfbfc, 0x00d3d1d2,
- 0x0049685a, 0x002c4a3c, 0x002c483b, 0x00233b2f, 0x0024342a, 0x00202f24, 0x0029372b, 0x00343e33, 0x0041473d, 0x003f463b, 0x00393b2f, 0x002e281d, 0x001a140c, 0x0017100b, 0x001b1513, 0x00181315,
- 0x00040104, 0x00020002, 0x00030304, 0x00030403, 0x00020202, 0x00010202, 0x00040504, 0x00070505, 0x00090809, 0x00070405, 0x00040001, 0x00090403, 0x00130a09, 0x00150d0a, 0x00150e09, 0x00160e09,
- 0x00170f09, 0x001c140e, 0x00261d16, 0x002c221a, 0x00342821, 0x00382b23, 0x0035271e, 0x002f1f18, 0x002d1d15, 0x002a1a0f, 0x0021160e, 0x000f0e0e, 0x00080909, 0x00080807, 0x00080708, 0x00030503,
- 0x00060506, 0x00050506, 0x00050607, 0x00050507, 0x00090a09, 0x00060f11, 0x00070f12, 0x000b0d0a, 0x00250a05, 0x00391104, 0x00501d0e, 0x005e2814, 0x0060311d, 0x0059341f, 0x00523621, 0x004d3825,
- 0x003e4647, 0x004b4f4a, 0x005d5a4e, 0x00675b48, 0x006a553b, 0x00664f34, 0x00634d33, 0x0052432b, 0x00756c5e, 0x008d8d7f, 0x006f705f, 0x00696b54, 0x00888874, 0x009c9886, 0x00878171, 0x004a4134,
- 0x003f3128, 0x00443529, 0x00463423, 0x004a3620, 0x00544124, 0x00684e3a, 0x0083644c, 0x00927251, 0x009b7651, 0x00967246, 0x008d6a40, 0x00846a44, 0x0092826d, 0x00b2ada7, 0x00c1c5c7, 0x00acb7c1,
- 0x005e76a8, 0x00375ba5, 0x002a54b2, 0x001a4ab8, 0x002a4095, 0x00413d6a, 0x006c5157, 0x009e6e51, 0x00997247, 0x0080673d, 0x0059421f, 0x004f3118, 0x005b4231, 0x004c3b2e, 0x00160e05, 0x00000000,
- 0x00020706, 0x0006090b, 0x000c0d0e, 0x000c0a0d, 0x0020191b, 0x003c2c1e, 0x0057402c, 0x005d4532, 0x0059422e, 0x00513c27, 0x004b3624, 0x00392819, 0x00443a2f, 0x009b9790, 0x00fffef9, 0x00fefcfa,
- 0x00fdfdfc, 0x00fdfdfc, 0x00f1f1f0, 0x00ececec, 0x00fdfdfd, 0x00fdfdfd, 0x00fefeff, 0x00fefdfe, 0x00fdfcfe, 0x00ecebeb, 0x00cfced1, 0x00c9c8cd, 0x00c7c7cc, 0x00c5c4cb, 0x00bdbcc4, 0x00b8b8bc,
- 0x00b1b2b8, 0x00acadb4, 0x00a6a6ac, 0x00a2a2a7, 0x00a19da4, 0x00a09ca2, 0x009d9ca0, 0x009f9ea3, 0x00aaa8ad, 0x00ababaf, 0x00acacb0, 0x00acabaf, 0x00a8a6ac, 0x00a8a6ac, 0x00a7a6ab, 0x00a2a3a6,
- 0x009997a0, 0x00919098, 0x00838289, 0x00797980, 0x0073727a, 0x0077767e, 0x007b7982, 0x007b7882, 0x007e7b85, 0x007f7f86, 0x0083848b, 0x0086888d, 0x008d898c, 0x00908686, 0x00897c76, 0x00847469,
- 0x00755d53, 0x00674f44, 0x00584037, 0x00503730, 0x00422c29, 0x00362724, 0x002f221d, 0x00301e17, 0x00412919, 0x00503523, 0x00604531, 0x00725b4a, 0x0081736a, 0x00857e7a, 0x00848584, 0x007c8185,
- 0x00736d75, 0x00676569, 0x005c5a5f, 0x0057565e, 0x004f535e, 0x004b515e, 0x00464d5f, 0x003f485d, 0x00353f5b, 0x002c3856, 0x00293852, 0x00414e62, 0x00535e87, 0x003c4780, 0x002e3b7f, 0x0025327d,
- 0x0026357f, 0x00213176, 0x001f3274, 0x00203073, 0x00202e74, 0x00182652, 0x00121a38, 0x00151326, 0x0011090f, 0x000d0709, 0x002d2a2f, 0x006a6d7c, 0x00939eb8, 0x008e96b8, 0x008287b0, 0x00797aa5,
- 0x005f5f6e, 0x002a2c3a, 0x000a0c1b, 0x00292c3b, 0x005b606e, 0x00636a77, 0x008e96a1, 0x00bfcad2, 0x00dce6ea, 0x00e5f1f0, 0x00eef9f3, 0x00e5f0d8, 0x00e78e7d, 0x00c95653, 0x00a6444f, 0x00582d43,
- 0x000e264d, 0x0013254d, 0x001e2b5d, 0x002f3474, 0x00243b8e, 0x0023408b, 0x00234288, 0x00243f8a, 0x00253b91, 0x00233a93, 0x00233994, 0x00243b8f, 0x003d4783, 0x004b476a, 0x00493541, 0x0048281f,
- 0x00292326, 0x00242125, 0x00222229, 0x0020242d, 0x00212630, 0x00191e27, 0x005c5f68, 0x00c7c9d1, 0x00fffbfc, 0x00fffcfe, 0x00fefbfb, 0x00fdfef8, 0x00d3d9d5, 0x00656968, 0x00181412, 0x00251410,
- 0x00441f0d, 0x006e3d25, 0x00a16b51, 0x00a46f57, 0x00754831, 0x003e251c, 0x002f1e19, 0x00341c16, 0x00543224, 0x00785342, 0x00866450, 0x006a4736, 0x00301811, 0x001d0f0e, 0x001e171d, 0x0016161f,
- 0x0018121e, 0x00131318, 0x00121316, 0x00131715, 0x00131a21, 0x00191e39, 0x00181c46, 0x0011174d, 0x000f164e, 0x000e1a50, 0x00121e51, 0x00181f4f, 0x001a255d, 0x0018246a, 0x00111f6c, 0x000e2477,
- 0x00122482, 0x00152887, 0x001b2c8b, 0x001d2e87, 0x00223184, 0x001a3393, 0x001a389b, 0x00293f9b, 0x0045458b, 0x00615685, 0x00614b62, 0x005d3b40, 0x006a3e2f, 0x008a594a, 0x00a46f61, 0x00a16b60,
- 0x0098705e, 0x009e7261, 0x00af8172, 0x00b9867a, 0x00975d51, 0x007d4233, 0x00935945, 0x00ad745b, 0x00bb8766, 0x00c4936b, 0x00c8936e, 0x00ca916f, 0x00c09778, 0x00c2936e, 0x00c18b66, 0x00ad6c4a,
- 0x00684558, 0x0041488c, 0x002d4fbd, 0x001e50d2, 0x00284dca, 0x002a4dc4, 0x002a4dc3, 0x00274bc3, 0x002845bb, 0x002f44b1, 0x003844aa, 0x003b3f9f, 0x00383c99, 0x002e399b, 0x002637a1, 0x001e39a8,
- 0x002c3ca3, 0x002739a1, 0x002536a0, 0x002132a0, 0x0021329e, 0x00223299, 0x001f2e8b, 0x001d297a, 0x001f2a6b, 0x0019225b, 0x000f1637, 0x000b0c08, 0x000a0a08, 0x000b0b09, 0x000d0c0a, 0x000a090a,
- 0x000b0c0f, 0x000a0a0d, 0x00070608, 0x00141414, 0x009d9e9e, 0x00f2f4ee, 0x00fefdf9, 0x00fdfaf8, 0x00fbfeff, 0x00f8fcfe, 0x00a7aeae, 0x003e4943, 0x00394a30, 0x004b6138, 0x00617a44, 0x00688346,
- 0x0065896d, 0x00678a73, 0x00698a77, 0x006b8b7c, 0x006c897e, 0x006c8879, 0x00678369, 0x0068855b, 0x006a8b46, 0x006a8d3b, 0x006c8c3d, 0x006c8849, 0x00708a4e, 0x00728c4f, 0x00738d4f, 0x00748e50,
- 0x00779155, 0x00789154, 0x00799354, 0x00799554, 0x00799355, 0x007c9456, 0x007d9454, 0x007b9353, 0x007c9656, 0x007e9757, 0x007e9658, 0x007d9557, 0x007f9658, 0x007f9759, 0x007f9659, 0x007f9559,
- 0x0081985e, 0x0081985e, 0x0082995d, 0x0082995d, 0x0081995f, 0x0081995f, 0x0082995e, 0x00819a5e, 0x00819a5d, 0x00829a5e, 0x00839b5e, 0x00839b5e, 0x00839a5b, 0x00839a5f, 0x00829b5e, 0x00819a5b,
- 0x0080985a, 0x007d9555, 0x00799150, 0x00788f50, 0x00768f4e, 0x0076904d, 0x00748f4b, 0x00728e4c, 0x00728b51, 0x00758d4d, 0x0078904c, 0x00768e47, 0x007a8e4f, 0x007a8c5a, 0x00b2c19f, 0x00ebf6e3,
- 0x00fdfbf9, 0x00fdfcfa, 0x00fcfcfb, 0x00fefffe, 0x00a5a9a5, 0x00282f2b, 0x00101a15, 0x00101b16, 0x000d1d14, 0x000e1d15, 0x000f1d16, 0x000f1e17, 0x000f1e18, 0x000f1f18, 0x000f1e17, 0x00101e16,
- 0x000f2018, 0x000f2018, 0x000e1f16, 0x000e1f16, 0x00101f19, 0x00101f19, 0x000f1f17, 0x00101f17, 0x000f1d15, 0x000f1d15, 0x000f1e17, 0x000f1f17, 0x00111f18, 0x00111f18, 0x000f1f18, 0x000f1f18,
- 0x000f1e17, 0x000f1e17, 0x000f1e17, 0x000f1e17, 0x00101f17, 0x00101f17, 0x00102017, 0x00102017, 0x0012221a, 0x0012221a, 0x000f2016, 0x000d1f13, 0x00122016, 0x00142016, 0x00141f14, 0x00161e15,
- 0x00131812, 0x00121610, 0x0012130d, 0x0010100a, 0x00110e08, 0x000b1009, 0x0009130a, 0x000c130c, 0x000e170f, 0x00111a11, 0x00141d14, 0x00151e16, 0x00161e16, 0x00151e16, 0x00151e16, 0x00151d15,
- 0x00172017, 0x00151f15, 0x00141e15, 0x00131e15, 0x00131e15, 0x00121c15, 0x00101912, 0x000e1610, 0x000a150a, 0x00061107, 0x00050e05, 0x00060e05, 0x00080e07, 0x00070e07, 0x00070e08, 0x00090f09,
- 0x00070f06, 0x00070f06, 0x00080f08, 0x00080f08, 0x00090f09, 0x00091008, 0x000a1008, 0x000b1108, 0x00091209, 0x00091108, 0x00091108, 0x000a1309, 0x000b120a, 0x000b120a, 0x000c110b, 0x000c110b,
- 0x000b100d, 0x000c110d, 0x000c120e, 0x000b110d, 0x000b110d, 0x000b120d, 0x00080f0b, 0x000b120d, 0x000a110d, 0x0019201c, 0x00787c77, 0x00c7cdc3, 0x00bdc4c3, 0x00969eab, 0x00717792, 0x005b6286,
- 0x005f669b, 0x00646da3, 0x007683b9, 0x007a89bf, 0x007483b7, 0x007884b7, 0x007b85b5, 0x00747eaa, 0x00646a95, 0x00585c83, 0x00494c6e, 0x00434662, 0x00414257, 0x0038394b, 0x00666778, 0x00c9c7d6,
- 0x00fffafb, 0x00fefafa, 0x00fcfafd, 0x00fbfbfd, 0x00d6d5de, 0x0041414b, 0x0013121b, 0x001b1a21, 0x003a333a, 0x00584f55, 0x006a6060, 0x00695854, 0x0066575a, 0x005b505a, 0x005d5868, 0x00595971,
- 0x005a5f7e, 0x006b718e, 0x006b748c, 0x00586177, 0x003b4656, 0x00292f45, 0x00262a41, 0x002a2e42, 0x002e2e41, 0x00252637, 0x00171827, 0x000b0d19, 0x0000020c, 0x0001030d, 0x00060813, 0x000e0f1a,
- 0x0006050e, 0x0000000b, 0x00050514, 0x00010214, 0x00040820, 0x00161a38, 0x00505477, 0x006a7098, 0x007775aa, 0x00555085, 0x0048476e, 0x00363d4f, 0x00556883, 0x007d9ac0, 0x007197ca, 0x005989c8,
- 0x00497fc8, 0x00497fcc, 0x004b7fca, 0x004f7ec8, 0x00537ec4, 0x005681b2, 0x00527694, 0x00203a51, 0x00151b21, 0x00332f2f, 0x0034291f, 0x00211409, 0x00090000, 0x00040102, 0x0004030b, 0x00010414,
- 0x000e0b0f, 0x000b0b0e, 0x000c0c10, 0x00151316, 0x002b211f, 0x003c2b27, 0x003e2e29, 0x002d1e1f, 0x00131424, 0x003b4660, 0x00829bc2, 0x007da1db, 0x006490ce, 0x004c7ebf, 0x00477ec1, 0x004885c9,
- 0x004783cb, 0x004178bf, 0x00487cbd, 0x004475b6, 0x003f67a6, 0x004e6090, 0x002a2f48, 0x001b181e, 0x00836549, 0x00b0885a, 0x00bc8c57, 0x00c08755, 0x00c68f6e, 0x00af8266, 0x0098745b, 0x00ceb39b,
- 0x00c9cacd, 0x00dedfe2, 0x00eef0f1, 0x00eef1f1, 0x00eff1f3, 0x00f0f2f4, 0x00eeeef0, 0x00ebebef, 0x00e9ebec, 0x00e5e5e7, 0x00e6e7e8, 0x00bdbfc0, 0x00b6b8b9, 0x00dddfe1, 0x00edf0f3, 0x00f1f2f6,
- 0x00efeff1, 0x00edeff0, 0x00edf0f2, 0x00eff1f3, 0x00f2f3f6, 0x00f2f8fc, 0x00eff8fb, 0x00ebf3f0, 0x00bab9ac, 0x00383423, 0x00342b18, 0x004c3e2c, 0x005a4b3d, 0x0059493f, 0x0051413b, 0x00463734,
- 0x00fbf2f8, 0x00e4dfdf, 0x00e3e3da, 0x00e4dfd3, 0x00dedec8, 0x00d4d5c4, 0x00ced0c2, 0x00c4cbbc, 0x00c2c8ca, 0x00c0c5cd, 0x00b7bbca, 0x00bab8d6, 0x00b9b7ce, 0x00b7b3cd, 0x00b4b3c8, 0x00b8b7cd,
- 0x00c5bed8, 0x00c6c0da, 0x00bfc0d8, 0x00bcc0d7, 0x00c2c6dd, 0x00c8becb, 0x00696263, 0x000b0f0a, 0x00071020, 0x000c0f3d, 0x0009093d, 0x00110939, 0x00261f23, 0x002e2734, 0x00261d3e, 0x001b0a50,
- 0x003d2b4f, 0x005d424f, 0x007a584d, 0x00a77c55, 0x00b38040, 0x00bb8b5a, 0x00a8806e, 0x00674960, 0x00292380, 0x002429a3, 0x00171f8f, 0x0010114e, 0x0040424c, 0x00a1a0a7, 0x00ddd9db, 0x00e6dfdd,
- 0x00e2dec4, 0x00e0e2e0, 0x00dfe6f9, 0x00a1aae6, 0x0034498b, 0x004f6085, 0x00c7d1e2, 0x00e3eaf1, 0x00f2ecea, 0x00ece2d5, 0x00c6baab, 0x006a5d4a, 0x00160b02, 0x00090402, 0x000c0707, 0x00090910,
- 0x001d0c16, 0x0022161b, 0x0021181a, 0x00231e1b, 0x00232721, 0x00242a26, 0x00212925, 0x001a261e, 0x001c2223, 0x00182120, 0x00161f20, 0x00171e24, 0x00161e20, 0x001c2023, 0x001d2121, 0x001a211d,
- 0x00242323, 0x00212321, 0x001e251e, 0x001d281d, 0x001c2a1e, 0x001f2820, 0x00171c17, 0x001a1e19, 0x00202021, 0x006c6b6c, 0x00eeefed, 0x00fbfbf8, 0x00fdfefc, 0x00fdfbf9, 0x00fcfbf9, 0x00d6d4d4,
- 0x00567667, 0x00365648, 0x00335546, 0x002b493b, 0x00284033, 0x00293d31, 0x00314336, 0x003d4a3e, 0x00485247, 0x00474f44, 0x003e4234, 0x00353123, 0x001d180e, 0x001a160f, 0x00181813, 0x00131613,
- 0x000b070e, 0x00040109, 0x00010005, 0x00010304, 0x00020203, 0x00060301, 0x00070300, 0x00090500, 0x00120708, 0x00130504, 0x00140400, 0x001d0c05, 0x002c180f, 0x00301d13, 0x002e1c12, 0x002e1c11,
- 0x00251912, 0x00241912, 0x00291e14, 0x0033281c, 0x0040332a, 0x0043342a, 0x00403023, 0x003b2a1e, 0x003a251c, 0x00331e12, 0x0021140d, 0x00101114, 0x00080b0c, 0x00060808, 0x00050507, 0x00020501,
- 0x0008030b, 0x00080509, 0x00040505, 0x00040407, 0x00070606, 0x00030c10, 0x0000090e, 0x00010502, 0x001b0503, 0x00310d02, 0x00461807, 0x0056250e, 0x0060351d, 0x00654028, 0x00644731, 0x00644d39,
- 0x00525b5f, 0x005c635f, 0x006b695f, 0x00746858, 0x0078644b, 0x00735d43, 0x00685236, 0x0055472b, 0x009c9180, 0x00d8d7c5, 0x00cfcfb9, 0x00cdccaf, 0x00cfceb7, 0x00bdbba7, 0x00837d6e, 0x0050493c,
- 0x004f3d3b, 0x004c3a33, 0x0048372b, 0x00483525, 0x0049381f, 0x005a4427, 0x00755a36, 0x00876845, 0x009c6f54, 0x009f6f54, 0x0097674c, 0x008c6349, 0x0081674c, 0x0083765a, 0x00a9a78a, 0x00c7cfb1,
- 0x00a9bdcf, 0x006687b8, 0x003e68b8, 0x002351c2, 0x003243ac, 0x00473d85, 0x006e4e6c, 0x00a7746a, 0x00b08460, 0x0093724a, 0x006b4f27, 0x00624123, 0x007a5f48, 0x00726150, 0x00312a1c, 0x000a0807,
- 0x00040406, 0x0006070c, 0x000d0d0e, 0x00100f11, 0x002a2325, 0x00433323, 0x00573f2a, 0x0059402b, 0x00573f2c, 0x00513b27, 0x00483523, 0x00372717, 0x00403629, 0x00939086, 0x00fdfef7, 0x00fafdf7,
- 0x00fffdfe, 0x00fffdff, 0x00f2f1f2, 0x00f0f0f0, 0x00fcfcfc, 0x00fcfefd, 0x00fcfffd, 0x00fcfffd, 0x00fffdff, 0x00ededed, 0x00cfcdd2, 0x00c9c6ce, 0x00c6c6cc, 0x00c3c3c9, 0x00b9b8bf, 0x00b1b3b4,
- 0x00b0afb7, 0x00acaab4, 0x00a5a5ac, 0x00a1a1a8, 0x00a09da6, 0x009d9aa1, 0x0098989c, 0x009b9ba0, 0x00a8a5ac, 0x00a8a8ae, 0x00aaaaaf, 0x00a9aaaf, 0x00a4a4aa, 0x00a5a3a9, 0x00a5a3a8, 0x00a09fa4,
- 0x009b95a3, 0x00938f9b, 0x0084818c, 0x007b7b83, 0x0074747c, 0x0076777e, 0x0075757c, 0x0074747b, 0x007b7584, 0x00787681, 0x00797882, 0x007f7f85, 0x00868486, 0x008c8482, 0x00867b73, 0x00807365,
- 0x00765c56, 0x00664d47, 0x00543c34, 0x004b322b, 0x003f2c26, 0x00372b26, 0x00352922, 0x0038281d, 0x004a2f21, 0x00573a28, 0x00654732, 0x00765c4a, 0x00847569, 0x00867e78, 0x00808280, 0x00757d7e,
- 0x006e6170, 0x005d5860, 0x004d4b50, 0x0046474d, 0x003e454d, 0x003a4250, 0x00374054, 0x00324057, 0x00303c5c, 0x002a395c, 0x002e3f61, 0x0044506d, 0x004a5586, 0x00364181, 0x00202f77, 0x00253480,
- 0x0023317b, 0x00233076, 0x001e2d70, 0x001e2d6d, 0x001a2768, 0x001a254f, 0x000c122d, 0x0014131e, 0x00170c0d, 0x000d0504, 0x003c373b, 0x00737485, 0x00707a99, 0x00666f93, 0x0072789f, 0x00696d93,
- 0x00605b6e, 0x00343343, 0x0019192b, 0x004c4f61, 0x0069717f, 0x005d6671, 0x009da6af, 0x00d8e4e8, 0x00eefafd, 0x00eef9f7, 0x00f3fef1, 0x00ecf0ce, 0x00f38660, 0x00e95442, 0x00d65b5a, 0x00955f74,
- 0x00374f73, 0x00243453, 0x00192243, 0x0029255a, 0x00233082, 0x001e397c, 0x001b3c78, 0x001c3d7c, 0x00233b8b, 0x00243b92, 0x00243a92, 0x00263a8f, 0x003e457e, 0x00524b69, 0x004e3b3e, 0x00462813,
- 0x002d2329, 0x00272127, 0x0024242b, 0x00242933, 0x00252c39, 0x001d2331, 0x005c5f6c, 0x00c1c3ce, 0x00fff9ff, 0x00fffbff, 0x00fcf8f8, 0x00fcfef3, 0x00d3ddd2, 0x00676e68, 0x0012140c, 0x001b1209,
- 0x003d1707, 0x0065371d, 0x00976547, 0x00a36e50, 0x00885739, 0x0053362b, 0x00342219, 0x00371e13, 0x00653f32, 0x00855c4b, 0x008e6954, 0x00876150, 0x00422a23, 0x001f1211, 0x00181318, 0x0011151c,
- 0x0018101f, 0x0018171a, 0x00151713, 0x0013170e, 0x00111a18, 0x00151d2f, 0x001e2546, 0x0019234e, 0x00191f5c, 0x0018235f, 0x00172359, 0x0017214e, 0x000d1d50, 0x00122266, 0x00142670, 0x00122c7c,
- 0x001e2d94, 0x00203094, 0x00223194, 0x00243191, 0x0028338f, 0x001b3899, 0x00163c9f, 0x00223fa2, 0x00363a9d, 0x0050488e, 0x0055426a, 0x0052333f, 0x004b2412, 0x005c3022, 0x0071453a, 0x006b3c3a,
- 0x005e372d, 0x00542a1e, 0x0066392e, 0x007c4b40, 0x0080483c, 0x008d5344, 0x0099604c, 0x009c624a, 0x00a87557, 0x00b5845f, 0x00ba8463, 0x00c3866b, 0x00b88c6f, 0x00b78861, 0x00b98458, 0x00a8693c,
- 0x00694350, 0x00444784, 0x002b4ab0, 0x001c4aca, 0x002749cb, 0x002848c3, 0x00284ac0, 0x00234ac1, 0x002343c9, 0x002741c3, 0x002d3fbd, 0x002b37b0, 0x002834aa, 0x002838b2, 0x002239b7, 0x001a3aba,
- 0x002835a0, 0x002435a0, 0x0021329f, 0x002132a4, 0x002234a2, 0x00212f98, 0x001c2e89, 0x001f2e7e, 0x00262e6c, 0x001c2457, 0x00101732, 0x000c0f07, 0x00090804, 0x000b0b08, 0x000b0b0a, 0x00090b0b,
- 0x000e0a0e, 0x00100e11, 0x00050506, 0x00222323, 0x00b1b1b1, 0x00f7f7f1, 0x00fcfdf9, 0x00fafcfa, 0x00fcfbff, 0x00f4f5fb, 0x00999e9f, 0x003b463f, 0x003d4f35, 0x004c633d, 0x00637f4f, 0x00708d59,
- 0x0071939f, 0x007293a4, 0x007191a7, 0x007390a8, 0x00758fa5, 0x00859daa, 0x0078918c, 0x00688567, 0x006c8c49, 0x006e903e, 0x006d8e3b, 0x006f8b4a, 0x00718b4d, 0x00738d4e, 0x00718e4b, 0x006f8d4a,
- 0x00799053, 0x00788f52, 0x00779150, 0x00769351, 0x00749153, 0x00799356, 0x007b9355, 0x007a9253, 0x00829559, 0x00829659, 0x0081975a, 0x0082985b, 0x0084995c, 0x0083995b, 0x0081985b, 0x0081995b,
- 0x00869b64, 0x00879a63, 0x00869a61, 0x00859a60, 0x00869a63, 0x00849a62, 0x00829b60, 0x00829a5e, 0x00859a62, 0x00859a62, 0x00849b63, 0x00859c66, 0x00869a63, 0x00859964, 0x00839962, 0x00849a60,
- 0x00899c64, 0x0084995e, 0x007e9659, 0x007d975d, 0x007b985c, 0x007c9960, 0x007a985f, 0x0078965f, 0x00789465, 0x0078925e, 0x0079935a, 0x00779253, 0x007c9456, 0x007b905d, 0x00afc09f, 0x00eaf5e4,
- 0x00fffcfe, 0x00fffcfc, 0x00fdfcfa, 0x00fdfefe, 0x00a6aba7, 0x00272f2c, 0x000f1b14, 0x000f1d12, 0x000f1e16, 0x000e1f16, 0x000d1f16, 0x000e1f16, 0x000f1e16, 0x00101e17, 0x000f1e17, 0x000e1e18,
- 0x000f1f19, 0x000f1f19, 0x000d1e16, 0x000d1e14, 0x000e1f18, 0x000e1f17, 0x000d1f15, 0x000e2015, 0x00111e17, 0x000f1e16, 0x000d1f16, 0x000b1f15, 0x000e1d15, 0x000d1d15, 0x000c1e16, 0x000c1e17,
- 0x000f1e19, 0x000f1e18, 0x000f1e18, 0x000f1f17, 0x00101f17, 0x00101f16, 0x00101f16, 0x00101f16, 0x0013201a, 0x0013201a, 0x000f2016, 0x000d2012, 0x00122116, 0x00132116, 0x00101e13, 0x00111b13,
- 0x00171816, 0x00171714, 0x0014140e, 0x0012120c, 0x00110e08, 0x000c1109, 0x00081307, 0x000a1408, 0x00101711, 0x00101810, 0x00131b12, 0x00141e14, 0x00131d15, 0x00121d14, 0x00131f14, 0x00131f14,
- 0x00162017, 0x00141f14, 0x00121e14, 0x00121e14, 0x00131e13, 0x00121c12, 0x000f1911, 0x000c160d, 0x0008130b, 0x00040f06, 0x00020c03, 0x00040c03, 0x00050c04, 0x00040b04, 0x00040b03, 0x00050b02,
- 0x00080e08, 0x00060d06, 0x00040c03, 0x00030b01, 0x00030b02, 0x00040b03, 0x00050d05, 0x00060e06, 0x00080d06, 0x00070d06, 0x00070e07, 0x00050d05, 0x00050e06, 0x00060f06, 0x00071006, 0x00071005,
- 0x00090e0b, 0x00080e0b, 0x00080d0a, 0x00070d09, 0x00070e0a, 0x000a110c, 0x00060d08, 0x00050d07, 0x00121514, 0x003a403f, 0x009ea6a1, 0x00c7d0c4, 0x00abb3b4, 0x00697080, 0x00434c68, 0x00445179,
- 0x00585f9e, 0x00606aaa, 0x006f7cbd, 0x007182bf, 0x006d7eb8, 0x007583bb, 0x007d8abe, 0x007683b3, 0x007375a9, 0x00686e99, 0x00585d84, 0x00585b7e, 0x00515470, 0x0040435c, 0x0073748b, 0x00d1d3e3,
- 0x00fff6ff, 0x00fffaff, 0x00fcf8ff, 0x00f9f8fe, 0x00c0becf, 0x00363449, 0x004a4b61, 0x007d8193, 0x009693aa, 0x008e899f, 0x00848193, 0x007f7887, 0x006e6b80, 0x0061617e, 0x005f6686, 0x00566286,
- 0x007179ae, 0x008791c2, 0x008e9dc5, 0x0090a2c5, 0x0095a9c4, 0x00939cc0, 0x009398be, 0x009096b8, 0x009698b9, 0x009293b0, 0x008b8ba6, 0x0083839a, 0x007a7a8b, 0x00646675, 0x003b3f4f, 0x002f3443,
- 0x00221c2c, 0x000f0d20, 0x000f1025, 0x000e142e, 0x003f496d, 0x007b85b1, 0x00a0abdd, 0x007582b9, 0x0055559a, 0x002d256c, 0x0057558d, 0x00727fa1, 0x00738fba, 0x006c93ca, 0x005185c5, 0x004380ca,
- 0x003d7cd3, 0x003575cf, 0x002f6fc5, 0x00316bc0, 0x00346bbf, 0x003e79bb, 0x00659ccb, 0x005c89ae, 0x003a495a, 0x003f4045, 0x00534942, 0x003b2a20, 0x00160902, 0x000e0502, 0x000d090d, 0x000b0b15,
- 0x000b0711, 0x0008090f, 0x0008090d, 0x00110e11, 0x002a1e1c, 0x00422e2a, 0x00402e2a, 0x002e2021, 0x00393a4f, 0x007b89a7, 0x008da9d6, 0x0082a5ef, 0x00709be4, 0x006092da, 0x004881c4, 0x004281c5,
- 0x00407ac3, 0x00467cc1, 0x003c70b0, 0x003f72ae, 0x003a649e, 0x00465b97, 0x003c436f, 0x00161525, 0x005b412b, 0x008e6844, 0x00a0704b, 0x00ae7357, 0x00b0776a, 0x00a6796a, 0x00967562, 0x00cbb49c,
- 0x00cbc6cd, 0x00dddbe0, 0x00efeff1, 0x00eef0f0, 0x00eef0f2, 0x00f0f2f4, 0x00eceeee, 0x00eaebed, 0x00eae7ed, 0x00e9e5ea, 0x00e3e1e4, 0x00b4b5b6, 0x00b3b6b6, 0x00dde2e2, 0x00e8eded, 0x00edeff0,
- 0x00f4f1f9, 0x00f0f0f3, 0x00eceef0, 0x00eef0f1, 0x00f1f1f2, 0x00f2f7fb, 0x00edf8fb, 0x00ebf6f1, 0x00c9c7bf, 0x00444032, 0x003b321f, 0x00574b38, 0x0076675a, 0x0076675e, 0x005b4e48, 0x003b2e2c,
- 0x00edf5e1, 0x00dbe3d6, 0x00d7dbd8, 0x00dde0e3, 0x00d4d5d4, 0x00cfd1ca, 0x00d1d3ca, 0x00c5c8c3, 0x00bdc1bf, 0x00c5c7d0, 0x00c7c6de, 0x00c3c3e0, 0x00b7b8d3, 0x00b3b5cf, 0x00b8b7d4, 0x00bcbad7,
- 0x00bac4d8, 0x00bac1d8, 0x00bdbfd9, 0x00bfbfda, 0x00c8c9e4, 0x00c2c2d8, 0x005d596b, 0x000f0a1c, 0x00070c13, 0x00070c14, 0x00090c18, 0x000b0f1e, 0x000b0f28, 0x000b0f30, 0x000c0e38, 0x001c1d4d,
- 0x0030425c, 0x0029324e, 0x00342942, 0x0061464a, 0x008b6441, 0x00906a57, 0x00856070, 0x00583a7b, 0x001f217c, 0x001a2a7c, 0x00102464, 0x00031130, 0x00131837, 0x0068697e, 0x00dfdae6, 0x00eae0e1,
- 0x00dddfce, 0x00d5dbd3, 0x00e3e4ee, 0x00b5b7d7, 0x004c528d, 0x003d5085, 0x00a7bae5, 0x00e8efff, 0x00e1e3e1, 0x00eae7db, 0x00bebbae, 0x004c4d42, 0x00010404, 0x000f0e14, 0x00090311, 0x00110415,
- 0x000b120c, 0x00131a15, 0x001c1f1d, 0x001d1f1f, 0x00222826, 0x002b312e, 0x002f3530, 0x00232a23, 0x00172418, 0x0019261b, 0x00182219, 0x001a221a, 0x00172319, 0x0018231a, 0x001b221c, 0x001a211c,
- 0x00162218, 0x00152116, 0x001a241a, 0x001a231b, 0x001a231a, 0x00182116, 0x00172117, 0x00162017, 0x00152115, 0x00556056, 0x00e4eae5, 0x00fcfefe, 0x00f9fcfc, 0x00feffff, 0x00fffdff, 0x00e3e1e5,
- 0x0052896f, 0x002c614a, 0x002a5845, 0x00265442, 0x0021483a, 0x00204838, 0x00305042, 0x003c584a, 0x003a5949, 0x003b5649, 0x003e4c3f, 0x003b3527, 0x00231e13, 0x00181408, 0x0018150c, 0x001c1713,
- 0x00000900, 0x00000400, 0x00010200, 0x00050505, 0x0008030a, 0x00040503, 0x000c0802, 0x00160705, 0x00210b00, 0x003b1300, 0x00551d05, 0x00652401, 0x006e2904, 0x00642d0c, 0x004f240b, 0x003a180b,
- 0x0018120b, 0x001c140e, 0x002b1f1b, 0x003c2b26, 0x004a362e, 0x004e382d, 0x004e382a, 0x00493425, 0x00392d18, 0x00312311, 0x00291d10, 0x001b160f, 0x00110c07, 0x000a0906, 0x00070607, 0x00030205,
- 0x00000400, 0x00000200, 0x00050401, 0x00090505, 0x000e0505, 0x00050808, 0x00030908, 0x00080704, 0x000b0900, 0x001a1200, 0x00301d03, 0x00412a0d, 0x00533e25, 0x005f4c3e, 0x006c5852, 0x00725f5f,
- 0x005d6d5b, 0x00667164, 0x00787a77, 0x00807b7c, 0x007c7477, 0x00776d6b, 0x006f615c, 0x006a5d4f, 0x00a89e7c, 0x00eadeba, 0x00efe5c2, 0x00ece1c0, 0x00d2caae, 0x00afaa92, 0x00858173, 0x00605d53,
- 0x004b513e, 0x00434231, 0x0044392c, 0x004b3a2d, 0x00523a2a, 0x00583b22, 0x006e4b32, 0x00815f44, 0x00866d3e, 0x008d7545, 0x008e7543, 0x00886e3d, 0x0083693c, 0x0083683f, 0x00977a55, 0x00ab916d,
- 0x00b0b38c, 0x009da5a2, 0x007581a0, 0x00566ca7, 0x00425996, 0x00394561, 0x00615f5b, 0x009d8863, 0x00b18e4d, 0x00a67a35, 0x00986931, 0x007a582b, 0x008c6c50, 0x00957967, 0x00755c57, 0x0040282f,
- 0x00060000, 0x000b0500, 0x001f150d, 0x002e2518, 0x00362d14, 0x003c2e18, 0x00493924, 0x0052402e, 0x004c4122, 0x00463a1a, 0x00403317, 0x0033280b, 0x003d3222, 0x008c857a, 0x00fffdf8, 0x00fffbfa,
- 0x00fafbfb, 0x00f8fafa, 0x00f6f5f6, 0x00f4f3f3, 0x00fbfcfc, 0x00fcfdfc, 0x00ffffff, 0x00fdfcfd, 0x00fafdfa, 0x00edefec, 0x00cecfcd, 0x00c9c9c6, 0x00c4c5bf, 0x00bebfba, 0x00b7b5b4, 0x00b3b0af,
- 0x00a6aba3, 0x00a3a7a2, 0x00a3a5a4, 0x00a1a1a3, 0x009e9b9e, 0x00949193, 0x00949292, 0x009b9999, 0x009d9f9c, 0x00a5a7a5, 0x00aaabaa, 0x00a8a9ab, 0x00a2a1a6, 0x009e9ca3, 0x00a19ea8, 0x00a3a0ab,
- 0x00949691, 0x0091938f, 0x008a8b89, 0x00828282, 0x007b7a7d, 0x0079797c, 0x00747578, 0x00747578, 0x006c736f, 0x00666d6a, 0x006f6d6e, 0x007b7372, 0x00878081, 0x008a8583, 0x00867f7e, 0x007b7372,
- 0x005a5a48, 0x00524a3b, 0x004f4135, 0x0049372d, 0x00422b22, 0x0048291d, 0x004e2a1f, 0x00542a1e, 0x00553015, 0x0061391f, 0x00724931, 0x00815b44, 0x008e7361, 0x008f8072, 0x008d8179, 0x007f7873,
- 0x005f6055, 0x004a4a44, 0x00373634, 0x00333235, 0x00313239, 0x002d313c, 0x002b3241, 0x0031394d, 0x002b3b4e, 0x00273a4d, 0x00394764, 0x0043516c, 0x00384670, 0x00283871, 0x00223178, 0x00253587,
- 0x00152d76, 0x00152a6c, 0x001a2667, 0x001e2859, 0x001d2248, 0x001b1438, 0x001b0e2d, 0x001f1b24, 0x00091603, 0x00000b06, 0x00465662, 0x0066759c, 0x003b4786, 0x00414d83, 0x0058618e, 0x00636c89,
- 0x006c6057, 0x00474343, 0x002f303c, 0x003c4156, 0x00363d50, 0x00474a54, 0x00bdbdc2, 0x00efedea, 0x00eaf4eb, 0x00effaf6, 0x00f5fef4, 0x00f4eedb, 0x00ea9373, 0x00d35850, 0x00b36284, 0x00597bd5,
- 0x004d78c7, 0x00456f8e, 0x00314e6c, 0x00172766, 0x0031174e, 0x002c245a, 0x00262b69, 0x001e3374, 0x000c377e, 0x0015398e, 0x0023399a, 0x002d3396, 0x0045387d, 0x004f4462, 0x0043403e, 0x00313618,
- 0x00262116, 0x00221e1a, 0x002c272d, 0x0031303d, 0x00282f3f, 0x001b2536, 0x00596172, 0x00b9c1d2, 0x00f5fffb, 0x00f4fff9, 0x00f9fefc, 0x00fcfefc, 0x00e1e0e2, 0x00757070, 0x00170c0c, 0x001f0d0e,
- 0x00200d00, 0x00432819, 0x007d5349, 0x009e6a63, 0x008c534b, 0x005d3225, 0x0049210e, 0x0067361c, 0x008a552b, 0x00925f38, 0x009a6d50, 0x0093765e, 0x0050433c, 0x00170e0e, 0x001b1518, 0x00191418,
- 0x00101415, 0x00131116, 0x0018111c, 0x001a121e, 0x0019131b, 0x001a1822, 0x0027293b, 0x0023294a, 0x00112361, 0x00142776, 0x00162981, 0x00182d7d, 0x00172d80, 0x00182b80, 0x001c2f86, 0x001e328c,
- 0x00132d7f, 0x001b3188, 0x00233594, 0x00233494, 0x00243598, 0x00263998, 0x00283da1, 0x00283faa, 0x00234297, 0x00334182, 0x004a3f6e, 0x00513445, 0x00542216, 0x005c3326, 0x005e3531, 0x00422424,
- 0x00371600, 0x003c1902, 0x004b240f, 0x00603420, 0x007b4b37, 0x0093624a, 0x00a37156, 0x0099694b, 0x008f653f, 0x0099704b, 0x009f7152, 0x00a97858, 0x00b07f5d, 0x00af825a, 0x00b5865f, 0x00a4724d,
- 0x00704e34, 0x0057444f, 0x00464278, 0x00384daa, 0x002353de, 0x002b4ad0, 0x002a41c4, 0x002e43c5, 0x002740b3, 0x00243daf, 0x002c42b5, 0x00263ba9, 0x002339aa, 0x002438ad, 0x002634b0, 0x002835b0,
- 0x001b3881, 0x001c3188, 0x0023309a, 0x00242da7, 0x002427b8, 0x002428b1, 0x00272da5, 0x00343b99, 0x001d3241, 0x0006200e, 0x000f1e0a, 0x000f0d0f, 0x000c0b0e, 0x000b0b0b, 0x000f0d0f, 0x000d0b0e,
- 0x00070a06, 0x00090907, 0x00060607, 0x00373636, 0x00cfcfcf, 0x00f3f9f9, 0x00f8fffa, 0x00fdfcef, 0x00fafef4, 0x00ece1eb, 0x00887a87, 0x003c3a2f, 0x003d5316, 0x0052714e, 0x00668a95, 0x007093d4,
- 0x0046a6ed, 0x004b9de9, 0x004c8cdc, 0x00487dca, 0x007f9be3, 0x00aac1f6, 0x009eaece, 0x00838e95, 0x006e8344, 0x00748d32, 0x00759032, 0x006e933f, 0x006f9041, 0x0071913f, 0x00799243, 0x007a9243,
- 0x00709239, 0x00719140, 0x0077904c, 0x0078904d, 0x00799353, 0x0078924f, 0x007c9254, 0x007e9555, 0x007a984f, 0x007b9852, 0x00829b59, 0x00859d5c, 0x00839d5c, 0x00839d5b, 0x00869d5e, 0x00859e5f,
- 0x007e9a57, 0x007f9a58, 0x00849e5e, 0x00859e5f, 0x0088a063, 0x00859c60, 0x00869e61, 0x00869f62, 0x007ea057, 0x00829e5c, 0x00849d5d, 0x0085a059, 0x00899a67, 0x008a976b, 0x008c9667, 0x008f9861,
- 0x007b9d3c, 0x00759e44, 0x0079a25e, 0x0078a37c, 0x0070a1a7, 0x00629dbf, 0x0068a6ce, 0x006da9c4, 0x006ba1b7, 0x006c9aba, 0x006b93af, 0x006d948e, 0x00749b4e, 0x00769a48, 0x00b1cb8d, 0x00ecf5e5,
- 0x00f6fdf4, 0x00f5fbf5, 0x00fbfbfc, 0x00fcfefe, 0x00a4aeab, 0x0023322a, 0x000d1c15, 0x000b1d14, 0x0001210e, 0x0003210e, 0x0008210e, 0x000e200c, 0x00111e11, 0x00111f10, 0x00111e12, 0x00131d14,
- 0x00091f0c, 0x000b1f11, 0x00101e17, 0x00121d17, 0x00101d16, 0x000f1d1a, 0x00101e1e, 0x0011201e, 0x00071e10, 0x00092111, 0x00092210, 0x00092110, 0x000c2219, 0x000d211f, 0x000c1f21, 0x000e1f26,
- 0x00101915, 0x000e1715, 0x0013191c, 0x00171e21, 0x000f1e1b, 0x000c1e18, 0x000d1f19, 0x000e2019, 0x000c220b, 0x000d230b, 0x0010240f, 0x000c220a, 0x00102418, 0x00122120, 0x00141d21, 0x00171b20,
- 0x000b1b03, 0x00151907, 0x001f1a10, 0x0020140e, 0x00240f12, 0x0019120b, 0x0016170c, 0x0017170f, 0x000d1507, 0x000c1608, 0x0010190d, 0x00121c12, 0x000f1d14, 0x00101f16, 0x00132019, 0x0014221a,
- 0x000c2110, 0x000d2213, 0x000f2317, 0x00102217, 0x00101f15, 0x00101c13, 0x000f1813, 0x000c1512, 0x0002100b, 0x00000d09, 0x00020a08, 0x00030806, 0x00000605, 0x00000605, 0x00040606, 0x00050606,
- 0x00000501, 0x00000402, 0x00040404, 0x00060505, 0x00060405, 0x00060505, 0x00080607, 0x00090609, 0x00040404, 0x00040404, 0x00040404, 0x00020202, 0x00050505, 0x00070707, 0x00060606, 0x00080808,
- 0x00000507, 0x00000707, 0x0004070c, 0x00080608, 0x000a0906, 0x00020301, 0x0008080a, 0x00060307, 0x002c2a2f, 0x007a7980, 0x00a19fac, 0x009b9cab, 0x00abaec1, 0x008890ab, 0x004c5880, 0x00475590,
- 0x004560a5, 0x004a63ad, 0x005c6dbb, 0x006578ba, 0x007286b8, 0x007b8ab3, 0x008088b8, 0x008386bd, 0x008084af, 0x007a84a0, 0x00677594, 0x005a6c96, 0x005561b2, 0x004e5599, 0x008789b8, 0x00e5e5f0,
- 0x00f7faf1, 0x00f5f9f2, 0x00fcfffe, 0x00f8fdfe, 0x00bccddf, 0x00768bb4, 0x009eb5f1, 0x009db3fc, 0x00799ce7, 0x006484d7, 0x005977d3, 0x00435ec4, 0x00415abf, 0x004159bb, 0x00546cce, 0x005f78d7,
- 0x00678bd5, 0x007294dd, 0x00809dea, 0x008ba8f1, 0x008eaef0, 0x0086a2ec, 0x008ca4f4, 0x0090a9f9, 0x00819fe2, 0x0081a0da, 0x0096afe8, 0x00aec7f2, 0x00e6f9ff, 0x00d3e3ef, 0x00aeb8c7, 0x00ccd3e0,
- 0x00c5d2d3, 0x00c0c5d8, 0x00a4add9, 0x006889b9, 0x00739ecb, 0x0093aff1, 0x007388e1, 0x00597be1, 0x002b3c7e, 0x004a1843, 0x00945a87, 0x007b78b1, 0x006070b9, 0x005777c4, 0x003762b0, 0x00396eb6,
- 0x003978a0, 0x003d79a4, 0x003b6faa, 0x003564ac, 0x003562c4, 0x004176ca, 0x005a90d6, 0x0071a2df, 0x007195af, 0x00556e7a, 0x005d676a, 0x004d5049, 0x002d2217, 0x0021160b, 0x0025140f, 0x0023110f,
- 0x000b080a, 0x000b050a, 0x000c000d, 0x000e040d, 0x00271716, 0x0032241f, 0x00342828, 0x0028262d, 0x004e7282, 0x0078acc8, 0x007fb8e4, 0x006ca3d7, 0x005690cd, 0x00508dcd, 0x004983cc, 0x004982ce,
- 0x003878ba, 0x00356fb9, 0x003b69b9, 0x00395faf, 0x002c4e9f, 0x0030519e, 0x003d548e, 0x00242b40, 0x000e1401, 0x00373e31, 0x00838186, 0x00998a99, 0x00d19eac, 0x00c09095, 0x00b08d93, 0x00c9bec6,
- 0x00c6c0b1, 0x00ded3c5, 0x00f3e8df, 0x00f3f4e1, 0x00eaf8e5, 0x00e0f9e7, 0x00def1e3, 0x00e9f3f0, 0x00eedbe1, 0x00f8d9e8, 0x00f5d1e7, 0x00aea0b1, 0x00a7aab6, 0x00dce7ee, 0x00d5e8ea, 0x00e5f3f5,
- 0x00e6f6e5, 0x00eff1e8, 0x00f8f0ec, 0x00fbf1e9, 0x00faefe9, 0x00f7f3f1, 0x00eeeff0, 0x00f3f3f6, 0x00d4d6d3, 0x00625a51, 0x00594a38, 0x00796047, 0x00997d64, 0x00a08c78, 0x008a7c6f, 0x00504941,
- 0x00f3f6e8, 0x00dee2d8, 0x00d9dcd8, 0x00d6d9db, 0x00cbcecd, 0x00c7cac3, 0x00c9cec3, 0x00c3c8bf, 0x00c2c5c7, 0x00c5c6d2, 0x00c5c3dc, 0x00c1bfdd, 0x00b1b1cc, 0x00b0b1cb, 0x00b9bbd5, 0x00bfc1d9,
- 0x00c0c3db, 0x00bfc3dc, 0x00bfc0db, 0x00c2c2de, 0x00cacae5, 0x00bcbcd1, 0x00545363, 0x00090817, 0x000a0b17, 0x00050714, 0x00060918, 0x000a0e20, 0x000b0e27, 0x000b0f2e, 0x000c0f33, 0x002e3259,
- 0x00435383, 0x00282f60, 0x001b1640, 0x00312239, 0x00543f30, 0x00614b4b, 0x0055415e, 0x00372970, 0x001f2283, 0x0016247a, 0x00071857, 0x00020e2c, 0x000b102d, 0x005a5d72, 0x00d8d6e2, 0x00e7e1e3,
- 0x00e4e3d4, 0x00dddfda, 0x00dddee7, 0x00c1c5e0, 0x005a6298, 0x002e4377, 0x008fa3cf, 0x00dee8fc, 0x00e6e4e7, 0x00ece7df, 0x00c7c3b8, 0x005a5a51, 0x00050908, 0x0018181c, 0x0008050e, 0x000e0612,
- 0x00101212, 0x00191c1c, 0x001d1f20, 0x001d201f, 0x00232a26, 0x002a322c, 0x002b332b, 0x00212920, 0x0019231a, 0x001a251c, 0x00192219, 0x001a221a, 0x00182219, 0x00192219, 0x001a221a, 0x00192219,
- 0x00161f15, 0x00161f15, 0x00171f17, 0x00161f17, 0x00151e15, 0x00141e14, 0x00152016, 0x00141f16, 0x00131d13, 0x00515a52, 0x00dbdfdb, 0x00f9fcfb, 0x00f8fbfb, 0x00fcfffd, 0x00fefefe, 0x00e4e4e6,
- 0x005f907f, 0x00346553, 0x002e5c4a, 0x002b5946, 0x0024513e, 0x00204c3a, 0x002a5040, 0x00365749, 0x003c5a4e, 0x003c574d, 0x003e4d43, 0x003c392d, 0x00252217, 0x00181609, 0x00151408, 0x0018150c,
- 0x000b0e04, 0x000b0903, 0x000d0704, 0x000f0a05, 0x00170d0b, 0x001e1006, 0x002a1607, 0x0036190c, 0x0047200e, 0x0060270c, 0x00753110, 0x0082340c, 0x007f3108, 0x006e2e0d, 0x00522108, 0x003c1406,
- 0x001c1310, 0x001e1410, 0x002a1d18, 0x003b2a22, 0x004a362a, 0x004e392a, 0x004f3a29, 0x004d3927, 0x00423320, 0x003b2b1a, 0x00312518, 0x00231e14, 0x00131108, 0x00090a04, 0x00060806, 0x00060607,
- 0x00010603, 0x00040505, 0x00080605, 0x000a0604, 0x000d0802, 0x00090c07, 0x000a0f08, 0x000f0f05, 0x001d1400, 0x002a1d03, 0x003e2a0d, 0x004d381a, 0x005d4c33, 0x00685a4b, 0x0073665d, 0x00796d69,
- 0x006e7a6d, 0x00767e75, 0x00818280, 0x008c8889, 0x008a8384, 0x008d827f, 0x0080736b, 0x00807261, 0x00afa183, 0x00d4c5a4, 0x00d9caa8, 0x00d8c8a7, 0x00b1a689, 0x00888368, 0x0073705e, 0x00676659,
- 0x005e5e51, 0x00575347, 0x004c4238, 0x004a3c32, 0x004b382a, 0x00553a24, 0x0065462f, 0x0074573d, 0x007f643e, 0x00886f45, 0x0091764a, 0x008f7446, 0x00866b3f, 0x00866b41, 0x0090744d, 0x00977d56,
- 0x00968b64, 0x00a4a09a, 0x00747890, 0x005a6ba0, 0x005165a0, 0x00455171, 0x00606166, 0x0096886f, 0x00af9567, 0x00a17e4f, 0x00977247, 0x0087653e, 0x0089694a, 0x008a6e55, 0x0077604e, 0x005a463b,
- 0x001b0e05, 0x002c2216, 0x003c3325, 0x003c3723, 0x00323013, 0x00352b15, 0x0040311c, 0x00483721, 0x0044381d, 0x003f3416, 0x00362a0e, 0x0031270a, 0x003b3522, 0x0089867a, 0x00fdfbf6, 0x00fbfcfa,
- 0x00fafcfb, 0x00fafcfc, 0x00f6f5f6, 0x00f4f3f4, 0x00fbfcfc, 0x00fcfdfd, 0x00fffefe, 0x00fcfafb, 0x00fdfdfc, 0x00eff0ee, 0x00cdcdcc, 0x00c6c7c4, 0x00c0c1bb, 0x00babbb6, 0x00afb0ad, 0x00a9aaa7,
- 0x00a7a7a7, 0x00a7a7a7, 0x00a6a6a7, 0x00a3a3a4, 0x009b9a9c, 0x00929193, 0x00919192, 0x00969697, 0x0099999c, 0x00a1a0a4, 0x00a5a4a8, 0x00a6a5aa, 0x00a4a3aa, 0x00a09fa7, 0x009e9ca5, 0x009b99a2,
- 0x00959796, 0x00939595, 0x008e8e8f, 0x0088888a, 0x00848386, 0x00828285, 0x0079797c, 0x00727276, 0x0069696c, 0x00616366, 0x0069666a, 0x00776f6f, 0x00857f7e, 0x00888581, 0x00837f7a, 0x0076736c,
- 0x00605a4e, 0x0054493e, 0x004e3f34, 0x0049362c, 0x00483228, 0x004f3021, 0x00563222, 0x005b3221, 0x00633721, 0x006b3e28, 0x00744932, 0x00805943, 0x008d7361, 0x008f8070, 0x008a8075, 0x007c776f,
- 0x005d5b55, 0x00464441, 0x002b2829, 0x00212023, 0x001f2128, 0x00202530, 0x00232a3a, 0x00293246, 0x0028394c, 0x002b3e51, 0x003c4c66, 0x00445570, 0x002f3f68, 0x001f3167, 0x001d2e6e, 0x0021337b,
- 0x0017266e, 0x00182564, 0x001a225a, 0x001c234b, 0x00171b36, 0x00191431, 0x001c142b, 0x001f1e23, 0x000f1a09, 0x00091716, 0x00465768, 0x00586996, 0x00445294, 0x005d6ba3, 0x007e8cb8, 0x008c9cb8,
- 0x00999198, 0x00686877, 0x00252b41, 0x0014203d, 0x000f1d35, 0x00495160, 0x00c5c8d0, 0x00edeeed, 0x00edf5ed, 0x00f2fcf9, 0x00f0faf4, 0x00f2f0e4, 0x00e99f82, 0x00cf605c, 0x00a05c80, 0x004271cc,
- 0x004670cb, 0x00537daa, 0x00537999, 0x0038508e, 0x0025184b, 0x00271644, 0x0030244f, 0x00292755, 0x00182e61, 0x0018306f, 0x001f377f, 0x00253681, 0x0036356c, 0x00473a57, 0x0049363b, 0x00442a1d,
- 0x00291f1a, 0x0028201e, 0x002d262b, 0x00312f39, 0x002a2e3c, 0x00222837, 0x00555a68, 0x00b6bac8, 0x00fafffd, 0x00f9fefb, 0x00fbfdfd, 0x00fbfdfc, 0x00e1e0e0, 0x00807b79, 0x00211712, 0x0025130d,
- 0x002d1105, 0x003c180a, 0x00714237, 0x009a6559, 0x008a5143, 0x00613421, 0x00663b22, 0x008e593a, 0x009e653b, 0x0098623c, 0x00986b4c, 0x0090745c, 0x004b4238, 0x00191412, 0x001a1719, 0x00181619,
- 0x0012131a, 0x0016121b, 0x0017111c, 0x0019111c, 0x00171118, 0x0016151d, 0x00202335, 0x00222a4b, 0x001a286c, 0x001b2a81, 0x001c2d8a, 0x001b3085, 0x001d3389, 0x0020338a, 0x00203289, 0x001f338c,
- 0x001c2f89, 0x001e318f, 0x00223494, 0x00273a98, 0x002a3c9d, 0x002a3c9b, 0x00273b9d, 0x001e389f, 0x001a3795, 0x0024317e, 0x0039346d, 0x00553b57, 0x005c302b, 0x0060372a, 0x005b3427, 0x00492a1d,
- 0x00562d1c, 0x00693c2b, 0x0081513f, 0x00915f4c, 0x009e6954, 0x00af7660, 0x00a86f57, 0x00a16c52, 0x00986747, 0x00936242, 0x00925f42, 0x00996648, 0x009c6c49, 0x00a1724b, 0x00af7f58, 0x00a97650,
- 0x00825940, 0x0061444e, 0x004a406b, 0x004552a0, 0x002f57cd, 0x002d4fc3, 0x002747b7, 0x002b4ab8, 0x002a49b4, 0x002342ab, 0x00203da4, 0x00203ca0, 0x00203da0, 0x00243fa3, 0x00253da4, 0x001f379d,
- 0x0019329b, 0x001e329b, 0x001c2f97, 0x00203197, 0x00232d95, 0x002d3595, 0x00293082, 0x00272b6c, 0x00181d31, 0x000e1411, 0x0013170e, 0x00100e0e, 0x000d0d0e, 0x000b0a09, 0x000a0c09, 0x000b0c0b,
- 0x000b0c09, 0x000d0e0c, 0x00080a09, 0x00444444, 0x00dad9d9, 0x00f9fdfe, 0x00f9fffa, 0x00fdfef2, 0x00fcfdf9, 0x00e3d9e5, 0x00716473, 0x0033312d, 0x0043592e, 0x005b7e6a, 0x006b94a9, 0x006e97df,
- 0x004e94e3, 0x004a8adb, 0x004783d0, 0x004982cb, 0x0075a0e7, 0x009cc1fd, 0x00a2c2ed, 0x008faac1, 0x006d9273, 0x00698d57, 0x00698b4d, 0x006e8c5b, 0x00708c56, 0x00738d52, 0x00758d51, 0x0076904d,
- 0x00749046, 0x00759049, 0x0079914b, 0x0079934a, 0x0079954b, 0x0077934d, 0x00799350, 0x007a9450, 0x007b9653, 0x007b9653, 0x007f9755, 0x00809857, 0x007f9957, 0x007f9a58, 0x00829c5a, 0x00839d5a,
- 0x00829b5d, 0x00829b5c, 0x00849d5e, 0x00849d5e, 0x00859f5f, 0x00859f5f, 0x0087a060, 0x0088a161, 0x0082a05d, 0x00839d5e, 0x00849c5b, 0x00869f59, 0x00899c64, 0x008a996a, 0x0089976b, 0x0089976d,
- 0x007f9876, 0x007c9d8f, 0x00789ea7, 0x00709ac0, 0x006394db, 0x005e98e5, 0x0062a2e7, 0x0068a6e0, 0x006c9fd9, 0x006d97db, 0x007196ce, 0x007c9eb9, 0x00809f74, 0x007f9a66, 0x00b4c7a1, 0x00edf3ee,
- 0x00fcfdfa, 0x00fafcfa, 0x00fdfcfd, 0x00fcfdfd, 0x00a4aeaa, 0x0022312a, 0x000b1b13, 0x000a1c14, 0x00052013, 0x00052012, 0x00091f12, 0x000e1d10, 0x00101d12, 0x000f1d12, 0x000f1e14, 0x00101d15,
- 0x000e1f12, 0x000e1f14, 0x00101d17, 0x00111d16, 0x00101e17, 0x000e1e1b, 0x000d1f1d, 0x000d1f1b, 0x000a1f13, 0x000d2115, 0x000b2112, 0x000b2113, 0x000d221a, 0x000c211d, 0x000b1f1d, 0x000a1e1f,
- 0x000f1f19, 0x000d1d18, 0x000b1917, 0x000b1a19, 0x000a1d19, 0x000b1f1b, 0x000a1e1a, 0x000b1e19, 0x000b1e15, 0x000f2017, 0x000f1f16, 0x000c1e10, 0x000b1d18, 0x000d1e1f, 0x00111f21, 0x000e1b19,
- 0x00111d0e, 0x00181f0c, 0x00161b07, 0x00181a0b, 0x001b1614, 0x0015170d, 0x0014180b, 0x0016170d, 0x0011170a, 0x000f170a, 0x0011180d, 0x00111b11, 0x000f1d13, 0x000f1f15, 0x00102017, 0x00102117,
- 0x00102214, 0x00102215, 0x00112317, 0x00102217, 0x00101f15, 0x000f1c14, 0x000d1912, 0x000a1610, 0x0006100d, 0x00020d0b, 0x00020908, 0x00020705, 0x00000503, 0x00000403, 0x00010403, 0x00020402,
- 0x00000101, 0x00000000, 0x00020101, 0x00030202, 0x00030102, 0x00020202, 0x00030303, 0x00030403, 0x00020202, 0x00030303, 0x00010101, 0x00050505, 0x00020202, 0x00020202, 0x00010101, 0x00050505,
- 0x00000104, 0x00020405, 0x00020405, 0x00030704, 0x00020701, 0x00010602, 0x00030606, 0x00040609, 0x0051535f, 0x009294a3, 0x007b7c96, 0x00606384, 0x007a81a3, 0x008794bc, 0x00536698, 0x00485d9c,
- 0x00445caa, 0x004f63b5, 0x005b6bb8, 0x006476b4, 0x007484b1, 0x007d8cb2, 0x008189b8, 0x008387bd, 0x008c8bbb, 0x00878eae, 0x007683a4, 0x006879a5, 0x005c69b9, 0x005b64a5, 0x00979cc6, 0x00eaedf2,
- 0x00fdf9f7, 0x00fbfaf8, 0x00fbfefb, 0x00faffff, 0x00bbcce1, 0x008498c9, 0x009eb5f8, 0x00778ce0, 0x004b67c0, 0x004762c0, 0x003a55b4, 0x00354fb3, 0x003650b1, 0x006b86e2, 0x006784df, 0x007795ed,
- 0x007ea0ed, 0x007c9ce8, 0x007e9be8, 0x007d9be3, 0x007898dd, 0x007f9aea, 0x007a93e7, 0x0087a1f5, 0x00627cc8, 0x007793d7, 0x008ca6e0, 0x009fb7e8, 0x00d8ecfa, 0x00b9c9e4, 0x00cad7e8, 0x00dee9f6,
- 0x00dae4e9, 0x00d7dbf3, 0x00818bb9, 0x006b8abf, 0x007ca7d9, 0x0087a2eb, 0x006d83e0, 0x004369cb, 0x003c4b8e, 0x0078426e, 0x00905880, 0x006c699e, 0x00475a9e, 0x003a5aa7, 0x002a59a8, 0x00255aa7,
- 0x00376faa, 0x004177b2, 0x004475b8, 0x003f6cb7, 0x003763bf, 0x003f72c3, 0x005b8fd4, 0x006290cb, 0x007f9dbe, 0x007b8fa1, 0x00687278, 0x00656662, 0x00443a2f, 0x0033281c, 0x002d2017, 0x00251812,
- 0x000f0f0e, 0x00080709, 0x00050207, 0x00050408, 0x00120b0b, 0x00221a19, 0x001d191f, 0x001d222f, 0x005f80a3, 0x007eadde, 0x006ea2da, 0x005a8bc4, 0x005085c2, 0x004e86c5, 0x00487fc4, 0x004178c2,
- 0x00376fb5, 0x00386ab4, 0x00355fa6, 0x003659a1, 0x002b4c91, 0x00314c9a, 0x00364984, 0x00292e42, 0x00080b00, 0x00102223, 0x004f6e7d, 0x007089a7, 0x00cacad9, 0x00e7e2e1, 0x00d6d5c5, 0x00cbdcc2,
- 0x00e2edea, 0x00e5e6dd, 0x00f0eee0, 0x00f8eedc, 0x00e9e6d6, 0x00e3e5dd, 0x00ecf8f1, 0x00e5ecea, 0x00d6bab7, 0x00d9aaa6, 0x00eebfbb, 0x00bd9ca2, 0x00a89b9c, 0x00e1e3e2, 0x00d9e0dc, 0x00d5e2df,
- 0x00e8f0eb, 0x00f2f1f4, 0x00f6f2f9, 0x00f6f2f7, 0x00f1f0f3, 0x00eff0f1, 0x00f0f3f2, 0x00eff0f2, 0x00e6e5e5, 0x008b827a, 0x006d5f4d, 0x008f775c, 0x00aa8e71, 0x00b09b83, 0x00a39784, 0x00737062,
- 0x00f3f5e9, 0x00dfe2da, 0x00d7dad8, 0x00d1d4d7, 0x00c3c7c6, 0x00c3c7c1, 0x00c5c9bf, 0x00c3c8bf, 0x00c5c4ca, 0x00c4c3d1, 0x00c0c0d7, 0x00b4b5d1, 0x00a8a9c5, 0x00aeafcb, 0x00bdbed8, 0x00c3c4dd,
- 0x00c4c2df, 0x00c3c3e0, 0x00c2c3de, 0x00c5c5e1, 0x00cdcce7, 0x00bbb9ce, 0x00504e5e, 0x00090817, 0x000c0b1a, 0x000a0b1a, 0x000f1123, 0x000f1224, 0x000c0d28, 0x00080a26, 0x000c0e2e, 0x003e4264,
- 0x004a5997, 0x0020296a, 0x00171a56, 0x00171642, 0x0024222b, 0x002c273d, 0x00251e4d, 0x001a1668, 0x00151d7e, 0x0011226e, 0x00071751, 0x00071033, 0x000c0f2e, 0x0052536a, 0x00cfcddc, 0x00e2dddd,
- 0x00eae6db, 0x00e7e7e2, 0x00e2e4ea, 0x00d3d8ee, 0x00747daa, 0x0023376a, 0x007185b5, 0x00cfdaf3, 0x00ebe6ed, 0x00eae5df, 0x00d0ccc2, 0x0068685e, 0x000d1110, 0x001b1b1d, 0x000a060e, 0x000c070f,
- 0x000d1012, 0x00181b1c, 0x001d1f1e, 0x001c1e1b, 0x00242924, 0x002b312b, 0x002a322b, 0x001e271f, 0x00172119, 0x00182319, 0x00172017, 0x00182017, 0x00171f18, 0x00171f18, 0x00181f18, 0x00181f16,
- 0x00131a12, 0x00141a12, 0x00151b13, 0x00141b14, 0x00131b13, 0x00141e14, 0x00141f15, 0x00131f17, 0x00161f18, 0x004f5750, 0x00d3d8d4, 0x00f9fcfb, 0x00fafcfc, 0x00fdfffe, 0x00fefefe, 0x00e8e9e9,
- 0x006d9b8b, 0x00326252, 0x002e5c4e, 0x002a5a4c, 0x00275547, 0x00235141, 0x002a5344, 0x00305546, 0x0035554b, 0x00355248, 0x00384a41, 0x00373930, 0x0023251a, 0x0017180c, 0x0016170c, 0x001c190f,
- 0x00231d14, 0x002a2018, 0x0034241e, 0x0035261e, 0x0037241d, 0x00402116, 0x004c2617, 0x00542b1d, 0x00662b1c, 0x00772f14, 0x0083340f, 0x008d3209, 0x00802c03, 0x00712808, 0x00581d06, 0x00451507,
- 0x001c120f, 0x001c110c, 0x00281a13, 0x0039281c, 0x00493626, 0x004f3a28, 0x00523d2b, 0x00513d2a, 0x00483926, 0x003f311f, 0x00382c1d, 0x002c271d, 0x001b180f, 0x000f1009, 0x000d0f09, 0x000c0f0a,
- 0x000a0e0a, 0x000c0f0b, 0x00120f0b, 0x00141009, 0x00181208, 0x0015160e, 0x001a1b11, 0x00201e11, 0x0030260c, 0x003b3011, 0x004f3d1e, 0x005e4b2d, 0x006d5d46, 0x0076695b, 0x007e746b, 0x00827a76,
- 0x00777d75, 0x00797d78, 0x00848582, 0x008f8c8d, 0x00979090, 0x009b8f8d, 0x0093847c, 0x008e7e6d, 0x00907e64, 0x00988666, 0x00a79371, 0x00a68f6c, 0x007e6e4e, 0x005b5136, 0x00645e4c, 0x00716e61,
- 0x006c6861, 0x00646059, 0x00555048, 0x004d453b, 0x004c3d32, 0x00553e2d, 0x00604532, 0x00685038, 0x00765d3d, 0x00816945, 0x008c714a, 0x008e7248, 0x00866a3f, 0x0085683e, 0x008c6d45, 0x00977951,
- 0x00917950, 0x00887b70, 0x007f7a8e, 0x004a5482, 0x00445389, 0x00596385, 0x00656775, 0x00898077, 0x00a8937a, 0x009b8468, 0x00977b60, 0x00906e4f, 0x00836546, 0x0070573a, 0x00634b32, 0x00534129,
- 0x004c3f26, 0x00574e35, 0x00564f37, 0x00423f25, 0x00343114, 0x00312816, 0x00392c1c, 0x003f3220, 0x0040331c, 0x00392d13, 0x00362a13, 0x00342b13, 0x00443e30, 0x0088877d, 0x00f6f8f3, 0x00fbfefd,
- 0x00fafbfb, 0x00fcfdfd, 0x00f8f7f8, 0x00f4f4f4, 0x00fbfbfb, 0x00fcfcfc, 0x00fffefe, 0x00fbfbfb, 0x00fefdfc, 0x00f0f0ef, 0x00cdcecd, 0x00c3c5c1, 0x00bfbfba, 0x00b7b7b4, 0x00aeaead, 0x00a9aba9,
- 0x00a7a5ac, 0x00a8a7ab, 0x00a9a8ab, 0x00a3a3a5, 0x0098979a, 0x008e8e92, 0x008d8d92, 0x00909094, 0x0095959b, 0x009c9ba2, 0x00a09fa7, 0x00a09fa7, 0x009e9ca6, 0x009c9aa4, 0x009996a1, 0x0097949f,
- 0x00949598, 0x00939498, 0x00929296, 0x008e8d92, 0x008d8c91, 0x008b8a90, 0x00807f86, 0x0074737a, 0x00636168, 0x00595960, 0x00615e63, 0x00726a69, 0x00837c7b, 0x008a8481, 0x00857f7b, 0x0077736c,
- 0x00635952, 0x0050433b, 0x0048392e, 0x0049352c, 0x004c372d, 0x00593625, 0x00623b26, 0x006b3e29, 0x00723f2a, 0x00734029, 0x00784831, 0x00805842, 0x008d705f, 0x008d7e6d, 0x008a8176, 0x007b7871,
- 0x00645e5d, 0x00494445, 0x00272425, 0x0019181a, 0x0015171e, 0x00161b26, 0x001a2130, 0x00212a3c, 0x00283348, 0x00303f51, 0x0044526d, 0x00475779, 0x002c3c68, 0x00253669, 0x00273571, 0x00243372,
- 0x001c2766, 0x00182455, 0x00151c45, 0x00161b37, 0x0017182a, 0x001b172a, 0x00201c2a, 0x00252426, 0x001e2a1e, 0x0016242a, 0x0032435c, 0x00344679, 0x00314086, 0x0041528e, 0x00516390, 0x00617694,
- 0x009190a7, 0x00616984, 0x00192848, 0x0004183d, 0x001e3051, 0x00697389, 0x00d0d2e0, 0x00eceaec, 0x00f2f3f0, 0x00f2faf6, 0x00f3faf7, 0x00f1f6f1, 0x00edad95, 0x00ca6868, 0x00965b83, 0x003872d0,
- 0x003966c6, 0x003b6a98, 0x00537c9e, 0x005676b2, 0x00464276, 0x00392045, 0x004d304c, 0x0058415d, 0x003b3456, 0x0021284f, 0x00192855, 0x001b2e60, 0x002e325b, 0x0044344e, 0x004f2e3a, 0x00542023,
- 0x00312220, 0x002c211e, 0x002e2627, 0x00302d33, 0x002f303b, 0x00262936, 0x0050525e, 0x00b0b1bb, 0x00fcfefd, 0x00fafcf8, 0x00fdfdfb, 0x00fcfcfc, 0x00e8e3e2, 0x00908684, 0x0033261f, 0x003b271c,
- 0x00422015, 0x00451e0f, 0x00734334, 0x009a6756, 0x0099614e, 0x008c5c44, 0x00936245, 0x00a06846, 0x00a06438, 0x0097623a, 0x00996c4f, 0x00826551, 0x003b312d, 0x00141111, 0x00141316, 0x00111214,
- 0x0013141a, 0x0015131b, 0x0016121d, 0x0017111c, 0x0018121a, 0x0015121d, 0x0018192e, 0x001c2247, 0x0019266f, 0x001a2983, 0x001e2e91, 0x0020318d, 0x00223390, 0x00243590, 0x0023338f, 0x0022338f,
- 0x0021318e, 0x00213491, 0x002b3e9a, 0x002f419b, 0x00293997, 0x0022308d, 0x001d2e8f, 0x00142f93, 0x00122f92, 0x00182a7d, 0x002b2f6f, 0x0048375d, 0x00663f44, 0x00673e37, 0x00694033, 0x006e4835,
- 0x0088584a, 0x00966355, 0x00ae786a, 0x00b98273, 0x00c78d7d, 0x00c88b7a, 0x00b17561, 0x00ab735c, 0x00ae765e, 0x009f694f, 0x009a6348, 0x00956144, 0x00946340, 0x00966541, 0x00a8734f, 0x00ad7750,
- 0x0098664f, 0x00704a4c, 0x004e3956, 0x0043437e, 0x003b53b1, 0x003454bc, 0x002b50b7, 0x002c4fb7, 0x003150bd, 0x002a4ab4, 0x00213fa9, 0x001e3ba5, 0x001e399f, 0x002640a4, 0x00243e9e, 0x001b3692,
- 0x00192eaa, 0x001a2d9d, 0x00192f8f, 0x001d3183, 0x002d3a7b, 0x00323875, 0x00232559, 0x0014123e, 0x00130c22, 0x00160f17, 0x00171213, 0x000d100e, 0x000d0c0b, 0x000a0b0a, 0x000b0c0a, 0x000c0c0d,
- 0x000f100d, 0x000b0c0a, 0x000e1010, 0x00595959, 0x00e7e6e6, 0x00fbfefe, 0x00fafffb, 0x00fdfdf3, 0x00fdfcfc, 0x00d9d2dc, 0x00635b66, 0x00373636, 0x004e664c, 0x00608584, 0x006490b6, 0x005a86de,
- 0x004c80d5, 0x004980d1, 0x005087d4, 0x004f87d3, 0x005487d6, 0x006e9eea, 0x0083aff0, 0x007facdc, 0x006f9d9f, 0x0065937d, 0x00638b6b, 0x00788d77, 0x00819877, 0x0082976f, 0x00798f60, 0x00708a51,
- 0x00758d4d, 0x00738d49, 0x00759044, 0x00759144, 0x00759342, 0x0075904b, 0x0077914e, 0x0077914e, 0x00799452, 0x00789351, 0x007a9351, 0x007b9452, 0x007c9653, 0x007d9755, 0x00809957, 0x00819a58,
- 0x00829b5e, 0x00819b5d, 0x00829c5d, 0x00829c5c, 0x00849e5e, 0x00869f5f, 0x0088a161, 0x0089a062, 0x00859f60, 0x00829d5d, 0x00859b5e, 0x00889e63, 0x008c9f64, 0x008a9e65, 0x00899a6e, 0x00869a7b,
- 0x007e97a2, 0x007b9dbe, 0x007196d5, 0x00608ee1, 0x005488ef, 0x00518cf0, 0x005290ec, 0x005696e2, 0x005a91df, 0x00608ee0, 0x0079a1e8, 0x0096b9e2, 0x0093ad98, 0x0086997c, 0x00b8c4af, 0x00f1f4f5,
- 0x00fefdfe, 0x00fbfcfb, 0x00fdfcfd, 0x00fcfefc, 0x00a6aeab, 0x0024302b, 0x000d1916, 0x000c1c17, 0x00091f18, 0x00072016, 0x000a1f16, 0x000e1d16, 0x00101d14, 0x00101d15, 0x00101d16, 0x000f1e15,
- 0x00101e18, 0x00101e17, 0x00111e16, 0x00111e16, 0x00101e17, 0x000e1f1b, 0x000c1f1c, 0x000d1f1a, 0x000e2016, 0x000e2016, 0x000d2014, 0x000d2015, 0x000d2018, 0x000c201b, 0x000c201c, 0x000a1e1d,
- 0x00081f1a, 0x00041e15, 0x000d251d, 0x000b221c, 0x000a211a, 0x000b1f1b, 0x0011221e, 0x0012231c, 0x000e1a16, 0x000a150f, 0x0008120c, 0x000d180c, 0x00111d19, 0x00101c1d, 0x00121f1d, 0x0014211c,
- 0x00182613, 0x0014230c, 0x0014200a, 0x00121d08, 0x00121a0f, 0x0016190d, 0x00161a0e, 0x00161a0f, 0x00141a0f, 0x0012190e, 0x0011190f, 0x00111b11, 0x00101d14, 0x00102015, 0x00112117, 0x00102117,
- 0x00102216, 0x000f2216, 0x00102216, 0x000f2116, 0x000f1e15, 0x000f1c15, 0x000d1913, 0x000a160f, 0x00081110, 0x00030d0c, 0x00000908, 0x00000604, 0x00000402, 0x00000302, 0x00010302, 0x00000301,
- 0x00020003, 0x00000001, 0x00010101, 0x00020201, 0x00010101, 0x00010001, 0x00010101, 0x00010200, 0x00020202, 0x00010101, 0x00000000, 0x00000000, 0x00040404, 0x00020202, 0x00020202, 0x00040404,
- 0x00000204, 0x00000201, 0x00010402, 0x00000500, 0x00000502, 0x00020407, 0x0000040b, 0x00171c29, 0x00656b81, 0x00777d96, 0x005b6085, 0x004f558a, 0x004b578a, 0x004e5f96, 0x00435795, 0x003f549e,
- 0x004558ad, 0x004f61b1, 0x005d6cb6, 0x006a77b0, 0x007e87b1, 0x00828eb5, 0x009099c9, 0x009295cc, 0x008e8dbf, 0x00888eb0, 0x00838fb2, 0x007384b0, 0x00636fc0, 0x005b63a3, 0x009da1ca, 0x00f2f4f7,
- 0x00fdfaf8, 0x00fbfcf7, 0x00fbfef9, 0x00f7fdfe, 0x00b1c1e3, 0x008a9cd9, 0x008ba1ee, 0x004e66c2, 0x003e57bb, 0x004b65c9, 0x003852b2, 0x00354fac, 0x005b76d1, 0x00829ff6, 0x007a98ec, 0x007d9cee,
- 0x007492e4, 0x006f8edc, 0x007998e4, 0x007696df, 0x007492dc, 0x00718be0, 0x007a93ec, 0x006883d9, 0x006c85d7, 0x00718dd6, 0x006a83c2, 0x0088a1d8, 0x00cde1f8, 0x009eafcf, 0x00cfddf3, 0x00d1ddee,
- 0x00dde7ec, 0x009a9dba, 0x006a76a7, 0x009dc1f0, 0x0082a9e6, 0x007a91e3, 0x006b80de, 0x004c6fd6, 0x004e5b9c, 0x00814d72, 0x00874e6f, 0x005b5687, 0x00425292, 0x002b4b98, 0x00204d9f, 0x00174b9c,
- 0x0022579f, 0x003366aa, 0x004776be, 0x004672bf, 0x003e6bc0, 0x004576c5, 0x005887ce, 0x00557eba, 0x00758fb4, 0x0077889d, 0x00747b84, 0x006b6c69, 0x00554942, 0x004e433b, 0x0050423c, 0x0040332f,
- 0x00111712, 0x00050806, 0x00030504, 0x00030305, 0x00050003, 0x000f080e, 0x000c0918, 0x0014192f, 0x005573a2, 0x006893cf, 0x005886c6, 0x00527fb9, 0x004675b2, 0x004074b1, 0x004175b8, 0x003e74bb,
- 0x003868ad, 0x003260a4, 0x00365b9e, 0x002e518f, 0x0035508b, 0x002f4992, 0x00364483, 0x0025263a, 0x00060800, 0x00001019, 0x001f4b66, 0x004072a4, 0x00839ab5, 0x00c4c7c7, 0x00e8e5cd, 0x00ecf4c7,
- 0x00e8fefb, 0x00edf5ee, 0x00ddd1c7, 0x00bfa69a, 0x00c8b2ae, 0x00e4dadb, 0x00f1f0ef, 0x00f7f6f8, 0x00d0b4a6, 0x009f6f56, 0x00dca48e, 0x00edc4c0, 0x00d4bcb2, 0x00d5c7be, 0x00ecede0, 0x00dfe7db,
- 0x00e7e8ec, 0x00ebecf3, 0x00f2f3fc, 0x00f3f7fe, 0x00edf8fd, 0x00f1f5f8, 0x00f8f8fc, 0x00efeff6, 0x00eeefef, 0x00aca49c, 0x007a6b58, 0x00947c5f, 0x00ab9070, 0x00b5a285, 0x00aca089, 0x0084806e,
- 0x00f3f6eb, 0x00dde1da, 0x00d5d8d7, 0x00cbced2, 0x00c1c4c4, 0x00c4c7c1, 0x00c3c8be, 0x00c5c9c2, 0x00c0c0c6, 0x00b9bac8, 0x00babad1, 0x00bdbdd8, 0x00bbbad6, 0x00bebeda, 0x00c2c3dd, 0x00c1c3dd,
- 0x00c9c6e4, 0x00c6c6e3, 0x00c4c6e1, 0x00c4c6e0, 0x00cccce6, 0x00c1bfd5, 0x00575567, 0x000b091c, 0x000a0b1b, 0x000a0b1d, 0x000f1123, 0x000f1126, 0x000a0c23, 0x00171935, 0x002a2c48, 0x00434665,
- 0x0036478c, 0x001d2777, 0x001c2776, 0x001d236a, 0x000f1e40, 0x00141f4b, 0x00131f5c, 0x00141e77, 0x0013217f, 0x00112369, 0x00132354, 0x00131c3e, 0x00141636, 0x00484862, 0x00c6c3d1, 0x00e2dde0,
- 0x00e6e4d9, 0x00eceae5, 0x00e8ebe9, 0x00e3eaf8, 0x008e95b8, 0x002c3e72, 0x005a6ea2, 0x00bbc6e8, 0x00efeaf3, 0x00ebe7e4, 0x00d7d3c8, 0x007e7e75, 0x00171c19, 0x0017191b, 0x00050207, 0x0009050c,
- 0x000d0f11, 0x00191b1b, 0x001a1c1c, 0x00181c19, 0x001f2420, 0x00282f29, 0x00272f28, 0x001e251f, 0x00142016, 0x00172218, 0x00151f15, 0x00161f16, 0x00151e16, 0x00151e17, 0x00161e17, 0x00171d16,
- 0x00151d14, 0x00141c13, 0x00141c14, 0x00131c14, 0x00131c13, 0x00152015, 0x00152016, 0x0018231a, 0x0019221b, 0x004c544c, 0x00ccd1cc, 0x00f9fdfa, 0x00fcfefe, 0x00fcfefd, 0x00fdfefd, 0x00ededed,
- 0x0077a294, 0x00356153, 0x00275949, 0x002a5a4b, 0x00245949, 0x00275849, 0x00275748, 0x002c5749, 0x002d5346, 0x002f5044, 0x00304940, 0x00323c33, 0x00232b22, 0x001b1d12, 0x001a1a0f, 0x00221d12,
- 0x00382b1e, 0x00473428, 0x00534032, 0x00533e2e, 0x004b3725, 0x00572c19, 0x00622f19, 0x0069331d, 0x0076321a, 0x00843313, 0x008f350b, 0x00953008, 0x00872a01, 0x00752508, 0x005b1b06, 0x00471507,
- 0x001d170e, 0x001e160b, 0x00261b0e, 0x00372918, 0x00493723, 0x00533f2a, 0x0056412d, 0x0056432f, 0x004c4129, 0x00453824, 0x003c3321, 0x00362f24, 0x00242217, 0x001c1a11, 0x00171a10, 0x00151810,
- 0x00151b12, 0x00181b14, 0x001c1d12, 0x00221d12, 0x00242111, 0x00252212, 0x002a2813, 0x00322d16, 0x00403615, 0x004c4220, 0x005d4f2d, 0x006c5c3f, 0x00766854, 0x007b7165, 0x007c7770, 0x007d7b78,
- 0x00777c75, 0x00787b77, 0x0083847f, 0x00908e8e, 0x009e9796, 0x00a09593, 0x009f9188, 0x00948372, 0x007e6c4e, 0x0085714f, 0x009c845f, 0x009b7d57, 0x00786140, 0x0059492d, 0x00645947, 0x00736e62,
- 0x00696861, 0x0065635f, 0x00565751, 0x004f4b45, 0x004a433d, 0x00534035, 0x005a4535, 0x00604b37, 0x006b563c, 0x00786244, 0x00846c4a, 0x00896f48, 0x00876941, 0x0082633a, 0x00836239, 0x008d6c43,
- 0x008a683b, 0x007b6351, 0x00655b63, 0x003c4164, 0x002d396b, 0x0049537a, 0x005b617a, 0x006b6b72, 0x00817b75, 0x00877e7c, 0x0084756c, 0x00886458, 0x0082664e, 0x00765d43, 0x006c5838, 0x0061532e,
- 0x00645933, 0x00645c3c, 0x00545233, 0x00414227, 0x0033371e, 0x00383123, 0x003b3226, 0x003f3426, 0x00423824, 0x00403521, 0x003e341f, 0x003f3825, 0x004e493c, 0x008a8984, 0x00f0f2ef, 0x00fafdfe,
- 0x00fafbfb, 0x00fefefe, 0x00f8f8f8, 0x00f5f5f5, 0x00f8f9f9, 0x00fcfcfc, 0x00fefefe, 0x00fcfbfb, 0x00fffffd, 0x00f0f1f0, 0x00cbcdcb, 0x00bebfbb, 0x00bcbcb9, 0x00b6b5b4, 0x00afaeae, 0x00a9aaaa,
- 0x00a8a6ac, 0x00a9a8ac, 0x00a7a6ab, 0x00a2a2a7, 0x00929298, 0x008c8b92, 0x0089888f, 0x008a898f, 0x008f8f97, 0x0096959e, 0x009999a2, 0x009896a0, 0x009794a0, 0x009693a0, 0x0094919e, 0x0094919f,
- 0x00919299, 0x00909097, 0x008f8f96, 0x008d8d93, 0x008e8c93, 0x008c8a92, 0x00817e87, 0x0074717b, 0x005e5c62, 0x0055545b, 0x005f5a5f, 0x00706967, 0x00847c7a, 0x008d8683, 0x0089827e, 0x007b746e,
- 0x00635a51, 0x0051453b, 0x0046392c, 0x004a372c, 0x004f3a30, 0x00633d2b, 0x0071452d, 0x00794930, 0x007d4830, 0x007d472d, 0x007c4930, 0x00865842, 0x008d6e5d, 0x008f7a6b, 0x00877e72, 0x007b7a72,
- 0x0066605d, 0x004d4846, 0x00282523, 0x00161615, 0x00101217, 0x0010151d, 0x00161c28, 0x001f2635, 0x00272f41, 0x00323e52, 0x0049576d, 0x00435378, 0x00283860, 0x00233362, 0x0028356a, 0x00202c63,
- 0x001c2458, 0x0019204a, 0x00161b37, 0x001b1d2f, 0x001f1e21, 0x00212028, 0x00242728, 0x00272b27, 0x00293832, 0x001f2e3c, 0x00233455, 0x00253670, 0x0024367d, 0x00233876, 0x00203768, 0x002c4569,
- 0x0050587d, 0x003d4e78, 0x001b335f, 0x00102c5f, 0x00314972, 0x007a88a7, 0x00ced4e6, 0x00e1e0e8, 0x00ebefec, 0x00f2f8f7, 0x00f0faf8, 0x00f1fcfd, 0x00edbca6, 0x00c67074, 0x008e5f88, 0x003678d8,
- 0x003d71cf, 0x006592c1, 0x006f9cbc, 0x006084bf, 0x005e6693, 0x005c425c, 0x005a3341, 0x006d3f4c, 0x00775162, 0x00584458, 0x00292a3d, 0x00203046, 0x002e3a4d, 0x00473545, 0x00532832, 0x00611923,
- 0x00362520, 0x0031231e, 0x00312623, 0x00302a2b, 0x00312e35, 0x002a2831, 0x004b4951, 0x00aba9ae, 0x00fcfdfa, 0x00fdfdf7, 0x00fdfdf7, 0x00fdfcfa, 0x00eee7e2, 0x009d908c, 0x0045342b, 0x00563d2f,
- 0x005c3729, 0x00613324, 0x0082503e, 0x009e6954, 0x00a76f57, 0x00a77054, 0x00a36b4b, 0x00a66642, 0x00a2653a, 0x009a6542, 0x0095694c, 0x00745849, 0x002b241f, 0x00120f11, 0x00121115, 0x000f1215,
- 0x00121315, 0x00151318, 0x00130f19, 0x0016101c, 0x0016101a, 0x0015121f, 0x0014142c, 0x001b2047, 0x00172771, 0x00192984, 0x001d2c92, 0x00223194, 0x00233391, 0x00243394, 0x00253493, 0x00223390,
- 0x002a3b96, 0x002b3d99, 0x002b3e95, 0x0025378f, 0x001a2883, 0x001e2985, 0x001e2e8a, 0x00183195, 0x00133397, 0x001c348f, 0x0023357f, 0x00444074, 0x006b4e61, 0x006e4747, 0x006b4134, 0x007d4e39,
- 0x00905e50, 0x00956154, 0x009c665b, 0x00a66d62, 0x00b3776c, 0x00ba7c6e, 0x00a46856, 0x009e644f, 0x00ac755f, 0x00b07861, 0x00ac755b, 0x00ab7359, 0x00a67453, 0x00a26c4d, 0x00a56e4b, 0x00af7650,
- 0x00a0674c, 0x0087564d, 0x00583a43, 0x0043345e, 0x00414b8e, 0x003e59b4, 0x00345aba, 0x002f54bb, 0x003452c3, 0x00314ec0, 0x00243fb2, 0x001d36a9, 0x001b349e, 0x001f389d, 0x001d3795, 0x0018348c,
- 0x001e31ae, 0x00293aa5, 0x002c3f93, 0x002c3e78, 0x002d385a, 0x00343856, 0x0025273f, 0x00120d28, 0x00170c20, 0x00211224, 0x00160f17, 0x000d0d0c, 0x000d0e0c, 0x000c0b0b, 0x000b0c0a, 0x000b0a0b,
- 0x000e0e0c, 0x000e0e0e, 0x00141515, 0x006b6c6b, 0x00f0efef, 0x00fcffff, 0x00fafefb, 0x00fefef8, 0x00fefafc, 0x00d1cad7, 0x0059535e, 0x003e4245, 0x00526e68, 0x005c8698, 0x005b8ac0, 0x004c7fde,
- 0x005178cf, 0x004f7acf, 0x004e84d1, 0x004e88d6, 0x004788dc, 0x00528fe5, 0x005896e3, 0x005591d2, 0x005f97b5, 0x00699eab, 0x00719b9a, 0x0084918f, 0x007f8d7f, 0x007c8e77, 0x00798e6d, 0x00758c60,
- 0x00748c51, 0x00738d4c, 0x00738f43, 0x00759241, 0x0074913d, 0x0076904a, 0x0076904d, 0x0076904d, 0x00769150, 0x0076914f, 0x0078914f, 0x00799350, 0x007b9451, 0x007b9552, 0x007c9553, 0x007d9654,
- 0x007e9959, 0x007e9959, 0x007f9959, 0x00809b5a, 0x00819b5a, 0x00839c5c, 0x00849c5c, 0x00869d5d, 0x00849e60, 0x00839e5c, 0x00849c5f, 0x00899b6e, 0x00889f60, 0x00899f5f, 0x00859f6a, 0x00829e81,
- 0x007b9cbe, 0x007197db, 0x005c8ce9, 0x004d84f1, 0x003e82f0, 0x004586f4, 0x004789eb, 0x004e8fe8, 0x00548ee6, 0x006191ea, 0x0084adf9, 0x00a7c9fc, 0x009fb7b1, 0x008c998d, 0x00bcc3b3, 0x00f4f5f1,
- 0x00fdfeff, 0x00fafcfd, 0x00fbfdfb, 0x00fbfefd, 0x00a6ada9, 0x00252e2c, 0x000e1915, 0x000d1a17, 0x000a1d1a, 0x00081e1a, 0x000c1e1a, 0x00101c1c, 0x00101d18, 0x00101c19, 0x00101c18, 0x000e1c16,
- 0x00101e19, 0x00111e17, 0x00111f16, 0x00101f15, 0x00101e16, 0x000d1e1a, 0x000c1f1c, 0x000d1f1a, 0x000c2015, 0x000d2116, 0x000d1f15, 0x000b1d13, 0x000e1f17, 0x000e2019, 0x000c1e19, 0x000d1f1c,
- 0x0004241b, 0x00012114, 0x00062417, 0x00062014, 0x00061a10, 0x000d1c13, 0x00151f17, 0x001e261b, 0x00272c25, 0x00343830, 0x00404338, 0x003a3f2c, 0x002d3228, 0x00202520, 0x00161c16, 0x00161d15,
- 0x001a270e, 0x0017280c, 0x00102304, 0x000b1f06, 0x000a1c10, 0x00131a0c, 0x0015180c, 0x0016190d, 0x0012190e, 0x0012190e, 0x0011190f, 0x00101b10, 0x00101d13, 0x00101f15, 0x00112117, 0x00122118,
- 0x00102316, 0x000f2216, 0x000f2216, 0x000f2116, 0x00101f16, 0x00101c15, 0x000e1913, 0x000b1610, 0x0006100e, 0x00020d0b, 0x00000907, 0x00000603, 0x00010503, 0x00010403, 0x00010403, 0x00020402,
- 0x00030203, 0x00020202, 0x00020302, 0x00020302, 0x00020202, 0x00020102, 0x00020101, 0x00020201, 0x00030303, 0x00020202, 0x00010101, 0x00010101, 0x00040404, 0x00020202, 0x00000000, 0x00010101,
- 0x00000201, 0x00010302, 0x00020402, 0x00000300, 0x00010409, 0x0000020e, 0x00040b19, 0x00334055, 0x006e7a98, 0x005f6a8e, 0x00475284, 0x00455199, 0x00415398, 0x003c5198, 0x003b529c, 0x00344a9d,
- 0x003e50aa, 0x004755a8, 0x005b68ae, 0x00737bb0, 0x008185a3, 0x008892b6, 0x009ea7d7, 0x00a3a5de, 0x009291c4, 0x008c93b7, 0x008b97ba, 0x007b8cbc, 0x006672c1, 0x005b63a4, 0x00a2a5cb, 0x00f5f5f6,
- 0x00fdfcf8, 0x00fdfdfb, 0x00fafcf8, 0x00f8feff, 0x00b1bfe9, 0x0094a5e8, 0x006f83d7, 0x003a50b3, 0x00415ac5, 0x004862ce, 0x003752b3, 0x004662b8, 0x00819df1, 0x007e9aef, 0x00708de0, 0x006481d2,
- 0x007794e5, 0x007592e3, 0x007795e3, 0x007c9ce7, 0x007593e0, 0x006d88df, 0x00809af4, 0x005f79d0, 0x007490e3, 0x00627ece, 0x007693d6, 0x00859eda, 0x00bad0f7, 0x00a5b6de, 0x00c8d8f8, 0x00cedaf7,
- 0x00c8d6d9, 0x008186a7, 0x00b6c6eb, 0x009abef1, 0x00739ade, 0x007288e1, 0x005f71d8, 0x00496cd4, 0x003c4c85, 0x00653250, 0x007a4258, 0x00473d65, 0x00404f86, 0x00284790, 0x00164295, 0x0010469f,
- 0x001648a0, 0x002858ab, 0x003c69b6, 0x004470ba, 0x00416eb6, 0x003c6ab7, 0x004672ba, 0x004f74b4, 0x00597296, 0x0057647c, 0x006b707a, 0x006f6b6c, 0x00665c57, 0x00706460, 0x007a6e6c, 0x00645658,
- 0x001d271d, 0x00050c06, 0x00000603, 0x00000404, 0x00020204, 0x00080108, 0x00090412, 0x0012112a, 0x003c5586, 0x00486bad, 0x004168ac, 0x003f66a4, 0x00416aa7, 0x003b67a9, 0x003b69ac, 0x003464a9,
- 0x00325da0, 0x002c5492, 0x0034568f, 0x00264276, 0x007d96c6, 0x00425d9f, 0x0025366f, 0x0014101d, 0x000b0803, 0x00061227, 0x00083863, 0x002d6db5, 0x007289b5, 0x00a39399, 0x00c29d7f, 0x00ebbd87,
- 0x00def7ea, 0x00f9fbf0, 0x00ebe0d5, 0x00e1c0bc, 0x00f3dcdf, 0x00feeef6, 0x00faecf1, 0x00fdf2f0, 0x00f7e7cd, 0x00d3a381, 0x00a86f4b, 0x00c28c7f, 0x00eec5b7, 0x00d7c4b4, 0x00d8d0bd, 0x00eeebdf,
- 0x00ece5e7, 0x00efe9f5, 0x00eef0f9, 0x00edf6ff, 0x00eafcfe, 0x00eef6f9, 0x00f6f8fb, 0x00eeeff4, 0x00eef0f0, 0x00bfb7ae, 0x007c6d59, 0x008b7354, 0x00a08562, 0x00ae9b7b, 0x00ab9f84, 0x008e8974,
- 0x00f2f4ef, 0x00d9dbd8, 0x00d1d3d3, 0x00c6c7cc, 0x00c0c2c3, 0x00c6c9c4, 0x00c4c9bf, 0x00c7cdc3, 0x00bbbcc5, 0x00a2a2b3, 0x00a3a3bc, 0x00c1c1de, 0x00d1d1ec, 0x00d5d4ef, 0x00cfcfeb, 0x00c9cae5,
- 0x00cdcae7, 0x00cbcae7, 0x00c8c9e5, 0x00c6c7e2, 0x00c9cae5, 0x00b9bad1, 0x00505165, 0x0007071b, 0x000c0c20, 0x0009081d, 0x000c0c21, 0x000a0b1f, 0x0015172f, 0x004e5368, 0x00757991, 0x0052556e,
- 0x00292b78, 0x0020267e, 0x001d2683, 0x00112178, 0x000a225f, 0x000e2765, 0x00132873, 0x00192685, 0x001b2278, 0x00111e4d, 0x00121c3f, 0x00191e3e, 0x000c0e2c, 0x00313148, 0x00b2afc1, 0x00dfdbde,
- 0x00e7e4dd, 0x00e6e6da, 0x00eaede7, 0x00edf2f6, 0x00aeb3cc, 0x003d4e81, 0x00415790, 0x00a0add9, 0x00ede9f7, 0x00ede8e8, 0x00e1dcd5, 0x009d9d93, 0x002d3431, 0x00101513, 0x00030204, 0x00040103,
- 0x00141215, 0x001d1d1f, 0x001e1f20, 0x00161917, 0x001f2320, 0x002a302b, 0x002a332b, 0x001f2a20, 0x001a2319, 0x0019231a, 0x0018231a, 0x00162118, 0x00182219, 0x00172117, 0x00172118, 0x00162119,
- 0x00172119, 0x00152017, 0x00162018, 0x00162019, 0x00172118, 0x001b251b, 0x001a241b, 0x001c261e, 0x001b211b, 0x00424942, 0x00c2c7c2, 0x00f6faf7, 0x00fdffff, 0x00fbfdfc, 0x00fcfefe, 0x00eff2f3,
- 0x0085b0a5, 0x00336254, 0x00295b4b, 0x00275c4a, 0x00265c4a, 0x00255c4b, 0x00285c4d, 0x0028594b, 0x002b554a, 0x002e5749, 0x00335148, 0x0033473e, 0x0029362b, 0x001e2519, 0x001f1c12, 0x00292112,
- 0x00432e22, 0x00503b28, 0x005e4330, 0x005c402a, 0x00593921, 0x00643014, 0x006f3013, 0x00743615, 0x00803316, 0x0086320b, 0x00903107, 0x00912c01, 0x00872a02, 0x00742907, 0x005f210c, 0x00471c0c,
- 0x00272216, 0x00231d0f, 0x002a2111, 0x00382b18, 0x004a3a23, 0x00534129, 0x0059482f, 0x005a4931, 0x00544631, 0x00493e28, 0x003f3622, 0x00373424, 0x002c2a1c, 0x0026261b, 0x0024241a, 0x001e2219,
- 0x0024261e, 0x0023271a, 0x0029291c, 0x002e2d1b, 0x00322f1b, 0x00323014, 0x003b3516, 0x00423c1a, 0x00554624, 0x005f522f, 0x006d6240, 0x00766c4e, 0x007d7661, 0x007d776d, 0x007b7973, 0x00777977,
- 0x00757975, 0x00747674, 0x007c7d7a, 0x008b8a8a, 0x009c9795, 0x00a39994, 0x00a6988d, 0x00978773, 0x00897053, 0x008e7451, 0x009e8058, 0x009d7a52, 0x00775b39, 0x005a472a, 0x00615541, 0x00696456,
- 0x00666762, 0x005a5b59, 0x00525353, 0x004c4d4b, 0x00413d3d, 0x00493e38, 0x00544239, 0x00564738, 0x00644f40, 0x006d5745, 0x007a6149, 0x00806546, 0x00836643, 0x0080623c, 0x007c5c34, 0x0078572e,
- 0x00835727, 0x0074573a, 0x004f3e3b, 0x002b2b41, 0x00141d48, 0x00212955, 0x00495178, 0x004b5271, 0x004a506a, 0x005b667d, 0x00646279, 0x006c525f, 0x00755858, 0x00755d50, 0x00755d46, 0x00695a35,
- 0x006b5c37, 0x00665f39, 0x005c5a3d, 0x00474c36, 0x003c4036, 0x003c3b35, 0x00423d36, 0x00464035, 0x004a4335, 0x00484130, 0x004a4131, 0x004b4532, 0x0057544a, 0x0087867f, 0x00ebeceb, 0x00f9fbfd,
- 0x00fffeff, 0x00fefefe, 0x00fafbfa, 0x00f4f4f4, 0x00f7f7f7, 0x00fcfbfb, 0x00fdfdfd, 0x00fafbfa, 0x00fefeff, 0x00f0eff1, 0x00c9c8c7, 0x00b8b8b5, 0x00b7b7b5, 0x00b2b3b3, 0x00adaeae, 0x00ababaa,
- 0x00aeacae, 0x00aaa8ab, 0x00a6a5aa, 0x009f9ea5, 0x00919199, 0x008a8a91, 0x0086868e, 0x0083828b, 0x00878491, 0x008b8895, 0x008d8b98, 0x008b8895, 0x00888693, 0x00878594, 0x00898896, 0x008c8b99,
- 0x008f8e9b, 0x008d8c97, 0x008c8b95, 0x008a8991, 0x008a878e, 0x00858289, 0x007b777e, 0x00716d74, 0x005d5661, 0x00534d56, 0x005f565b, 0x006f6664, 0x00847d7b, 0x008b8681, 0x008a857e, 0x007e786e,
- 0x006a5f56, 0x00564c41, 0x004f4134, 0x00524034, 0x00594137, 0x006b4833, 0x007b5135, 0x00855639, 0x008b5339, 0x00864d32, 0x00844c32, 0x00875740, 0x00916d5c, 0x008e7969, 0x00897e72, 0x007a7971,
- 0x0066615b, 0x00504b47, 0x002b2925, 0x00161615, 0x000e1013, 0x000f1218, 0x00161a23, 0x001f232e, 0x00272c3e, 0x00353e4c, 0x00515c71, 0x004c5a7c, 0x00212f56, 0x001e2c53, 0x00252f57, 0x001d2649,
- 0x00181a3a, 0x00191d30, 0x0022252d, 0x002a2928, 0x002a281c, 0x00272a22, 0x002c342f, 0x002a312c, 0x002d3a3d, 0x00263348, 0x00293a61, 0x00253773, 0x001e347b, 0x00243e7f, 0x001d3a6f, 0x00203f6c,
- 0x00213872, 0x001a3874, 0x00173a7b, 0x001d4184, 0x00426097, 0x008699bf, 0x00c9d0eb, 0x00d5d6e2, 0x00e9e8eb, 0x00f0f5f3, 0x00f0f8f6, 0x00ebfefe, 0x00efc7ae, 0x00c77c79, 0x00876083, 0x002e73cd,
- 0x005886de, 0x009dc6eb, 0x00b8dcf0, 0x0097b9e4, 0x008089a8, 0x00736776, 0x00593740, 0x005a2328, 0x008a383f, 0x00894949, 0x006b413e, 0x00473f35, 0x003e4439, 0x00463c30, 0x00512d22, 0x005d2119,
- 0x003b2921, 0x00372720, 0x00342622, 0x00322726, 0x0033292b, 0x002f272a, 0x00494445, 0x00a7a3a2, 0x00fffdfc, 0x00fdfaf5, 0x00fefef6, 0x00fbfdf7, 0x00f2ece3, 0x00a2938b, 0x00523c30, 0x006e4f3f,
- 0x0085594a, 0x0080513d, 0x009d664f, 0x00ac755b, 0x00b27558, 0x00b07753, 0x00b2744d, 0x00aa693e, 0x00a4623a, 0x00996442, 0x008e664f, 0x00654e41, 0x001c1819, 0x000d0e10, 0x00111214, 0x00101311,
- 0x00131416, 0x00141116, 0x0016101a, 0x0016101a, 0x0017121a, 0x0012111d, 0x0014162d, 0x00252a52, 0x00283381, 0x001f2e8a, 0x00213098, 0x00263598, 0x00253597, 0x00263696, 0x002b3a9b, 0x002f3f9b,
- 0x00313e9b, 0x0026358e, 0x0015267c, 0x00122377, 0x0018297e, 0x001e2d7f, 0x001e2e85, 0x001b308f, 0x001b379f, 0x001c3b9d, 0x00233b95, 0x0038468d, 0x006f5e83, 0x0071515d, 0x00663a33, 0x00743c29,
- 0x0076493d, 0x00794b3f, 0x007b4a3e, 0x007d493d, 0x00844d40, 0x008b5343, 0x007f4834, 0x00723d27, 0x008e5a45, 0x00a6775d, 0x00b27d64, 0x00b77d64, 0x00b47d61, 0x00aa7558, 0x00a76e50, 0x00af7550,
- 0x00b57452, 0x009d644e, 0x0071433d, 0x004a2d36, 0x003c3355, 0x0039458d, 0x004055b4, 0x003e53b9, 0x004452c6, 0x00424fc9, 0x003741c1, 0x002d36b6, 0x002733a6, 0x0024319c, 0x00283799, 0x002c3c97,
- 0x004a4cab, 0x004c4f9c, 0x0040457e, 0x00313859, 0x002d3347, 0x002d3241, 0x00282b3c, 0x0019182f, 0x0027203a, 0x002d2a3e, 0x00181623, 0x000b0d0c, 0x000c0b0c, 0x000b0e0a, 0x000b0c0a, 0x000d0e0d,
- 0x000e0b0d, 0x000d0e0e, 0x001d1f1f, 0x00808080, 0x00fbf9fa, 0x00fdfdfc, 0x00fbfdfb, 0x00fdfefb, 0x00fcf7fc, 0x00c2bdc4, 0x00484851, 0x00414c51, 0x004e6c82, 0x00527aaa, 0x005382cd, 0x004478e0,
- 0x00486cce, 0x00416ec9, 0x003e75cb, 0x004082d3, 0x003d85d9, 0x003a83d9, 0x004486d7, 0x004d88d5, 0x006490c8, 0x006f99bd, 0x007692a5, 0x00758076, 0x006d7766, 0x006d8163, 0x00768a64, 0x00748a5a,
- 0x00779054, 0x0075904e, 0x0077924a, 0x00779246, 0x00799346, 0x0078914a, 0x0077914f, 0x0073904c, 0x00788f51, 0x00768f4e, 0x0076904d, 0x0078924e, 0x00799351, 0x00799351, 0x00789350, 0x0077934e,
- 0x007d9656, 0x007c9555, 0x007e9757, 0x007d9656, 0x007f9858, 0x007c9655, 0x007e9856, 0x007f9a57, 0x00849a5c, 0x00829d5d, 0x00879c69, 0x008a9982, 0x008aa15f, 0x0087a656, 0x0084a75d, 0x007da57a,
- 0x006f96bc, 0x005687cc, 0x00427dd4, 0x00367dcf, 0x003083ba, 0x00317dc7, 0x00367ed2, 0x00448edb, 0x004c90dd, 0x005692da, 0x007fb3ec, 0x00a5cff6, 0x00a4bebe, 0x00909d8d, 0x00c1c5af, 0x00f5f2d3,
- 0x00fffffd, 0x00fcfefa, 0x00fdfefc, 0x00fcfffb, 0x00a7acab, 0x00262e2c, 0x000e1918, 0x000c1b19, 0x000d1b1d, 0x000c1d1c, 0x000f1c1c, 0x00111b1e, 0x000f1d1a, 0x000e1c1b, 0x000f1b19, 0x000e1b18,
- 0x00121e19, 0x00121f17, 0x00111f17, 0x00101f15, 0x00101e15, 0x000d1e17, 0x000b1f1a, 0x000b1f1a, 0x000c201a, 0x000d1f17, 0x000e2018, 0x000e1f16, 0x00101f15, 0x00112016, 0x000f1f17, 0x000e1e16,
- 0x000a221d, 0x00092219, 0x000b2115, 0x00041504, 0x00242c17, 0x0053533a, 0x00736e52, 0x00867f60, 0x009c8e71, 0x00ab9e7f, 0x00b8ac8a, 0x00ada377, 0x009c906d, 0x00887e60, 0x00595037, 0x00302810,
- 0x001d1c02, 0x00182000, 0x00172306, 0x0013230d, 0x000c1d12, 0x0013180d, 0x0016180b, 0x0015190a, 0x0013180d, 0x0012190d, 0x00111a0e, 0x00101b10, 0x00101d12, 0x00101f15, 0x00112118, 0x00112219,
- 0x00112315, 0x00102316, 0x00102218, 0x00102118, 0x00101f16, 0x000f1c14, 0x000d1813, 0x00091411, 0x0006100d, 0x00030d0b, 0x00020a08, 0x00010805, 0x00010704, 0x00000605, 0x00010605, 0x00020605,
- 0x00040403, 0x00030202, 0x00030203, 0x00020203, 0x00020302, 0x00010201, 0x00010101, 0x00010102, 0x00020202, 0x00010101, 0x00020202, 0x00030303, 0x00020202, 0x00020202, 0x00080808, 0x00121212,
- 0x00141816, 0x000f1314, 0x00080c10, 0x00050b13, 0x00080f21, 0x0007112a, 0x00182645, 0x005e6f98, 0x00a0afde, 0x008697c6, 0x005869ac, 0x004052ae, 0x00334ba1, 0x00314da2, 0x00314da2, 0x003752ab,
- 0x003e51ac, 0x004250a0, 0x00606aad, 0x008082b4, 0x008d8da4, 0x008790b4, 0x00959dcb, 0x009a9ad5, 0x009492c9, 0x008e94bb, 0x00848fb7, 0x007788b7, 0x006471c1, 0x00636ca9, 0x00afb2d6, 0x00f6f8f4,
- 0x00fffcf6, 0x00fefcf8, 0x00fafbfb, 0x00f5fdfc, 0x00a9b9ed, 0x008da0eb, 0x004f63c3, 0x002d42af, 0x00425acd, 0x003d58c7, 0x004d68ca, 0x007895e0, 0x0087a3ee, 0x006b89d6, 0x005977c5, 0x007592e0,
- 0x007c9aea, 0x007a97e8, 0x006a87d9, 0x007998e9, 0x007795e6, 0x006681db, 0x00758eeb, 0x00617bd6, 0x00728ce5, 0x006d8ad9, 0x007691df, 0x007793d9, 0x00a8bef1, 0x00bad1fb, 0x00a8b9eb, 0x008998c4,
- 0x00818f9c, 0x00b1bad2, 0x00c8d8fc, 0x007092d6, 0x005e84d2, 0x006479db, 0x005163ce, 0x00486ad7, 0x00384881, 0x00522238, 0x006f3341, 0x00312236, 0x00343761, 0x00263d79, 0x00173b88, 0x0010419d,
- 0x00153fa4, 0x001b43a0, 0x00274da1, 0x002f56a1, 0x00315b9b, 0x002a569d, 0x002f579f, 0x00274a88, 0x0030426b, 0x00404962, 0x006c6d79, 0x007d797a, 0x008b7f7d, 0x008f8684, 0x00958889, 0x00827679,
- 0x00363834, 0x00090d0c, 0x00000605, 0x00010406, 0x00050103, 0x000c0205, 0x000f070c, 0x0016111e, 0x00344064, 0x00314977, 0x002c4982, 0x0035528c, 0x00355592, 0x002d518f, 0x002b5093, 0x00224a8c,
- 0x00294d8c, 0x0027497e, 0x00314b78, 0x006e86ab, 0x008e9fbc, 0x00647da9, 0x00243051, 0x001a0806, 0x00160002, 0x00070224, 0x00152d74, 0x003b60c6, 0x007c62ac, 0x00c56f85, 0x00ec6753, 0x00fb6027,
- 0x00d7b08a, 0x00f7dec3, 0x00fee9e0, 0x00f9ecf3, 0x00fcedfb, 0x00fcf1f8, 0x00faeee5, 0x00f9edd7, 0x00feebd5, 0x00feeacf, 0x00d2a993, 0x00b07d6f, 0x00e1c3b3, 0x00f9ebda, 0x00e5d7ca, 0x00f5ece4,
- 0x00f7ebef, 0x00f4e8f3, 0x00efe9f5, 0x00eeedf9, 0x00ecf5fd, 0x00f0f4f9, 0x00f5f6fb, 0x00f0f4f6, 0x00efeeef, 0x00c4bbb3, 0x007d6f5a, 0x00816a48, 0x008a704a, 0x00988561, 0x009b9172, 0x0088866c,
- 0x00eaeee8, 0x00ced2cf, 0x00ced1d3, 0x00bdbec4, 0x00c0c1c2, 0x00c6c8c4, 0x00c6cac1, 0x00c9cec7, 0x00bfbfc7, 0x00a5a5b6, 0x009798b1, 0x00a7a9c4, 0x00c4c5e0, 0x00d7d7f2, 0x00d9d8f4, 0x00d3d1f0,
- 0x00cecfe9, 0x00c8c8e3, 0x00c9cae5, 0x00cdcfeb, 0x00c9cae7, 0x00b6b7d0, 0x0054566b, 0x000a0a20, 0x000a0c21, 0x000d0e25, 0x000e0e23, 0x00101126, 0x00191b2f, 0x005b5f74, 0x00878b9e, 0x00484a5f,
- 0x001c1b56, 0x001d1e6b, 0x00151b73, 0x0019227b, 0x000b2060, 0x000e2264, 0x000f226e, 0x0018237e, 0x001c1c5d, 0x000e122e, 0x000c101d, 0x000c0f22, 0x00100f28, 0x00211f35, 0x00918d9c, 0x00d7d2da,
- 0x00e3e5d8, 0x00e5e5d7, 0x00e7ebe1, 0x00f3f6f8, 0x00c2c4d7, 0x0056669b, 0x002d4380, 0x008895c5, 0x00ecebf9, 0x00eeeaed, 0x00e1ded5, 0x00b0b2a8, 0x003c4540, 0x000c1210, 0x00020301, 0x000a0708,
- 0x000e0f0e, 0x001a1b1b, 0x001c1d1d, 0x00191b1b, 0x00232624, 0x002c322d, 0x00273029, 0x001e2920, 0x001b251a, 0x001b251b, 0x001a251c, 0x00182319, 0x001a231a, 0x00192219, 0x0018221b, 0x0018221b,
- 0x00172219, 0x0019241a, 0x0017221a, 0x0017221a, 0x00182219, 0x00192319, 0x001a231a, 0x0019211a, 0x00171f18, 0x003c423b, 0x00bac0ba, 0x00f3f8f5, 0x00fcfefd, 0x00fcfdfc, 0x00fdffff, 0x00f5f7f9,
- 0x0087b0a4, 0x00356053, 0x0027584a, 0x00225647, 0x00245e4e, 0x00215c4b, 0x00215d4c, 0x00245c4c, 0x002b5b4d, 0x00305d4e, 0x0034584e, 0x00345046, 0x002e4036, 0x00242d22, 0x00221f16, 0x00292012,
- 0x00402d1b, 0x00503922, 0x005e412a, 0x00603d25, 0x005c391d, 0x00653112, 0x006b3210, 0x006d3411, 0x007c300f, 0x00802f07, 0x00862d02, 0x00842a00, 0x007f2c00, 0x006c2c0a, 0x005a250c, 0x00442010,
- 0x00282414, 0x00272211, 0x00312816, 0x00403521, 0x004b3e27, 0x0052432b, 0x0056472f, 0x00574931, 0x004f442f, 0x00473d29, 0x003b3420, 0x00362f21, 0x002e2d21, 0x002d2b22, 0x002a2a20, 0x00282b22,
- 0x00272c1e, 0x002a2f1c, 0x0030321f, 0x00363420, 0x003b3822, 0x003f3819, 0x00443d18, 0x004b441e, 0x005a4f2a, 0x00665d3a, 0x00736b48, 0x007b7457, 0x007f7a67, 0x007e7b70, 0x00797874, 0x00747777,
- 0x006a6f6a, 0x006e6f6c, 0x00757774, 0x00828282, 0x0096928f, 0x00a29a93, 0x00a29588, 0x0092806b, 0x00886e4d, 0x00927550, 0x009f7d53, 0x00987249, 0x00795a39, 0x005d462c, 0x00584937, 0x00635d51,
- 0x005c615b, 0x00515453, 0x004d5151, 0x004a4b4c, 0x003f4043, 0x003e3431, 0x00453730, 0x00504037, 0x005c4940, 0x00614d40, 0x00695341, 0x00725b43, 0x007b6044, 0x00775939, 0x00755733, 0x0074552f,
- 0x007e5228, 0x007e6046, 0x0055433d, 0x00272533, 0x000b1135, 0x000c133d, 0x00232956, 0x00313864, 0x002f3c64, 0x00374a72, 0x00566086, 0x0064527a, 0x005e4a61, 0x00675059, 0x0089706a, 0x00816a55,
- 0x006b5d3d, 0x00695e43, 0x00625e4a, 0x0055544c, 0x004c4f52, 0x004d4b4a, 0x004d4b45, 0x004d4b40, 0x004f4a3d, 0x00504b3b, 0x00524b3a, 0x00534d3d, 0x005a564b, 0x0085837e, 0x00e8e7e5, 0x00fdfdff,
- 0x00fffeff, 0x00fffefe, 0x00fbfbfb, 0x00f5f5f5, 0x00f5f5f5, 0x00fcfbfc, 0x00fcfdfc, 0x00fbfcfc, 0x00fbfcfd, 0x00f1f1f2, 0x00c8c7c6, 0x00b3b3b0, 0x00aeafae, 0x00adaeae, 0x00aaaaab, 0x00abaaac,
- 0x00aeadaf, 0x00a9a8ac, 0x00a4a3a9, 0x009e9da4, 0x008f8e96, 0x00898890, 0x0083828b, 0x007f7d87, 0x007d7a86, 0x007b7884, 0x00787683, 0x00767381, 0x00747181, 0x00757383, 0x007b798a, 0x00807e8f,
- 0x00888793, 0x00878691, 0x00878690, 0x0084838b, 0x00807d84, 0x0078747a, 0x006d686e, 0x00655f65, 0x00564c55, 0x0052484f, 0x005f5458, 0x006d6461, 0x00827c79, 0x008c8880, 0x008b877e, 0x007e796d,
- 0x006c6458, 0x0062594c, 0x005e4f42, 0x005b4a3d, 0x00624c3f, 0x0071523b, 0x00835d41, 0x008d6244, 0x00955d42, 0x0092563b, 0x008a5137, 0x008b5740, 0x008d6957, 0x00917868, 0x008a7e72, 0x007b786f,
- 0x005f5b54, 0x00494641, 0x00292723, 0x00171715, 0x00101012, 0x000f1116, 0x0015181f, 0x001f212b, 0x00262a38, 0x00393f4c, 0x005c6575, 0x00606c88, 0x003e4865, 0x001e2744, 0x001d213f, 0x001c1f3a,
- 0x001e202f, 0x0031343b, 0x00373937, 0x00313027, 0x00312f1c, 0x002b2e23, 0x002e372e, 0x00303833, 0x002c393e, 0x0029384c, 0x00283b5d, 0x0023396c, 0x001e3676, 0x00223e7d, 0x0020417b, 0x001c4277,
- 0x001f3f85, 0x00183d87, 0x001e4794, 0x00214c9c, 0x004a6daa, 0x00889fcc, 0x00c1ceea, 0x00d6dbe7, 0x00e0dde1, 0x00ebedec, 0x00f2f8f6, 0x00edfcfa, 0x00f2cfb2, 0x00ce857b, 0x008d6580, 0x003171c3,
- 0x006286d0, 0x00acc9e1, 0x00def4fb, 0x00d0e5fd, 0x00c0c4d2, 0x009b9fa9, 0x006b5d69, 0x00572934, 0x00741421, 0x00842b2e, 0x008b403c, 0x00663f2d, 0x004b472d, 0x00453e20, 0x00443515, 0x004a2c0c,
- 0x00392b1f, 0x0038281f, 0x0032241e, 0x00322421, 0x00322524, 0x002b2120, 0x00453e3c, 0x00a09b98, 0x00fefcf9, 0x00fcfcf5, 0x00fcfdf5, 0x00fafcf5, 0x00f4efe6, 0x00ac9c93, 0x005b4136, 0x00735041,
- 0x00906551, 0x009a6a52, 0x00aa765a, 0x00b17b5a, 0x00b47b57, 0x00b57a54, 0x00b0744a, 0x00ad6c41, 0x00a0633c, 0x00936346, 0x0082614a, 0x004e3d34, 0x00131313, 0x000f1014, 0x00100f12, 0x00111010,
- 0x000f1210, 0x00121012, 0x00140e16, 0x00171019, 0x00161118, 0x000f0f19, 0x0014162a, 0x002f3459, 0x0037468d, 0x002a3a95, 0x0028389b, 0x002b3a9b, 0x002d3c9b, 0x002d3c9d, 0x00273792, 0x0021318d,
- 0x001a2880, 0x00132276, 0x00152576, 0x001c2c7f, 0x001e2e7d, 0x001b2b78, 0x001e3080, 0x0022358f, 0x001f3da2, 0x001f40a5, 0x001f3e9f, 0x002e4599, 0x00545085, 0x006a526b, 0x0070484b, 0x00854d42,
- 0x008b6a5a, 0x009d7968, 0x00997261, 0x00a07865, 0x00956a57, 0x008b5c48, 0x006c3e27, 0x005d3219, 0x0082583e, 0x00a37c5e, 0x00b4866a, 0x00c2866a, 0x00ba836a, 0x00b67f64, 0x00b37a5f, 0x00b87b5c,
- 0x00c68361, 0x00bb7e5f, 0x009a6450, 0x006f463f, 0x00442b33, 0x00302a4e, 0x0035356d, 0x003b3b7b, 0x0041418f, 0x00454399, 0x0044419d, 0x003c3a93, 0x00373689, 0x002f3180, 0x002e317a, 0x002f3176,
- 0x00423b68, 0x003d365d, 0x00312b4f, 0x002a2844, 0x002c2b4f, 0x00272a4f, 0x001d234b, 0x00222955, 0x00323c5c, 0x0026354b, 0x000f1a27, 0x000e100f, 0x000d0e0e, 0x000c0d0b, 0x000e0e0e, 0x00100e0f,
- 0x000d0b0c, 0x0009090a, 0x00292a29, 0x009a9999, 0x00fefdfd, 0x00f9faf9, 0x00fafcfa, 0x00fafbfb, 0x00f9f9f9, 0x00b1b3b1, 0x00353c3a, 0x003c4e4f, 0x00456588, 0x00436ba8, 0x004875c9, 0x003b6ed2,
- 0x003562c3, 0x003263bc, 0x003871c4, 0x003b79c6, 0x00397bc5, 0x003a77c1, 0x005388cc, 0x00648ece, 0x00738ab5, 0x0070829d, 0x006b767a, 0x00748159, 0x00768358, 0x00748b57, 0x00788d55, 0x00769052,
- 0x0075934c, 0x0076924c, 0x0076904d, 0x0079914c, 0x007a8f4f, 0x007a914f, 0x00779150, 0x0074904d, 0x00768e4d, 0x00758e4c, 0x00748f4c, 0x0075904d, 0x0078914f, 0x00789150, 0x0077914f, 0x0078924f,
- 0x00799551, 0x00799451, 0x007c9553, 0x007d9654, 0x007d9655, 0x007b9453, 0x007c9654, 0x007e9855, 0x00819858, 0x00809b58, 0x00839a64, 0x0088957d, 0x00859e59, 0x0084a351, 0x007da458, 0x0076a076,
- 0x005e89b5, 0x004373c5, 0x00356ed1, 0x003273ce, 0x002776ae, 0x00286db7, 0x002c70c3, 0x003d82da, 0x00448bdd, 0x004c8dd7, 0x0067a2df, 0x0086b7e8, 0x009ab7d1, 0x008f9fa6, 0x00bdc2b9, 0x00f6f4d9,
- 0x00fcfcf8, 0x00fcfcf9, 0x00fcfdf9, 0x00fbfdfb, 0x00a8ada8, 0x00262f2b, 0x000c1913, 0x000c1b15, 0x000e1b1a, 0x000e1c19, 0x000f1b19, 0x00101b1a, 0x000f1d18, 0x000f1d19, 0x00101c18, 0x00101d18,
- 0x00101d15, 0x00111e15, 0x00111f17, 0x00101f16, 0x00101d15, 0x000d1e16, 0x000b1f1a, 0x000c201a, 0x000d1e19, 0x000d1e18, 0x000b1b14, 0x000c1c13, 0x00112014, 0x00112013, 0x00101e12, 0x000e1c10,
- 0x000f1a17, 0x00101911, 0x001e2416, 0x0036351e, 0x007b7251, 0x00b6a67c, 0x00d6c293, 0x00dec794, 0x00dfc78b, 0x00e6cf94, 0x00ecd597, 0x00e7d08a, 0x00dec58a, 0x00ceb582, 0x00b29b6d, 0x00856f46,
- 0x00504418, 0x002c2506, 0x00201c01, 0x001d1d0a, 0x00191a1b, 0x0016160e, 0x00161708, 0x0013170b, 0x0010160b, 0x0010170b, 0x000e180c, 0x000d190d, 0x000f1c12, 0x00101e14, 0x000f1f16, 0x000f1f17,
- 0x00102314, 0x000f2215, 0x00102218, 0x00102118, 0x00101f16, 0x000f1c15, 0x000d1814, 0x000a1512, 0x0007110f, 0x00050f0d, 0x00030c09, 0x00030906, 0x00030806, 0x00010706, 0x00010706, 0x00030707,
- 0x00030503, 0x00030403, 0x00030203, 0x00030203, 0x00030302, 0x00010201, 0x00010001, 0x00020002, 0x00020202, 0x00010101, 0x00000000, 0x00000000, 0x00000000, 0x00070707, 0x002c2c2c, 0x00474747,
- 0x00484e4f, 0x003a3f44, 0x002c303b, 0x003c4052, 0x004d536f, 0x00485374, 0x004a567d, 0x006c76a8, 0x00a7b3ea, 0x00a1afe8, 0x007584ca, 0x005162be, 0x003348a0, 0x002e469a, 0x00344da2, 0x003e56af,
- 0x004256ad, 0x004e5dab, 0x00737abd, 0x00acaddb, 0x00abaac0, 0x008a91b4, 0x00838cb9, 0x008a8bc5, 0x009190c7, 0x008f95be, 0x008591b8, 0x00798bbc, 0x006370bf, 0x006a72b0, 0x00b7bada, 0x00f5f6f0,
- 0x00fcfcf1, 0x00fcfcf7, 0x00fcfeff, 0x00f3fcff, 0x0098aae4, 0x00798ddd, 0x003b4fb6, 0x002e44b5, 0x003c57cc, 0x003552c1, 0x00617fe1, 0x007c9ae5, 0x007692de, 0x005d7ac7, 0x006d8ada, 0x00819bec,
- 0x007696e4, 0x006b87da, 0x006985d8, 0x00809ef2, 0x007490e5, 0x00708be5, 0x006f89e7, 0x006c84e2, 0x007390eb, 0x007695eb, 0x006c8bdc, 0x006f8bd7, 0x00829ade, 0x0096ace9, 0x00879bd5, 0x007483bc,
- 0x00a3bac5, 0x00d9e7f7, 0x0097a7e9, 0x00688ad9, 0x005a7cd2, 0x00596bd3, 0x004456c4, 0x004261d2, 0x003c4f88, 0x004a1b33, 0x006d2e36, 0x00301317, 0x003b3049, 0x00333f67, 0x0018326f, 0x00163b8c,
- 0x000c3393, 0x00173a99, 0x0018398f, 0x00234690, 0x00274d88, 0x0020468c, 0x001a3c84, 0x001c3976, 0x0037466e, 0x006e748d, 0x00787a84, 0x00918c8d, 0x009e9291, 0x00a69a99, 0x00aba0a0, 0x0093888c,
- 0x00464147, 0x00151317, 0x000a080e, 0x00080409, 0x000c0002, 0x00130201, 0x001d0e08, 0x00291e1b, 0x004e505b, 0x008291a5, 0x0053698e, 0x003f558f, 0x00223b79, 0x00203d7d, 0x001b3a7c, 0x001e3f82,
- 0x00183970, 0x001c3966, 0x00496085, 0x008b9bb8, 0x006a7788, 0x005e6a80, 0x0057545e, 0x00472516, 0x00220001, 0x000d0424, 0x00182f6e, 0x00395db9, 0x007a5d9c, 0x00ba5f6f, 0x00e86249, 0x00fe5921,
- 0x00d46d2c, 0x00f3ab83, 0x00fee1d7, 0x00f4e9f5, 0x00e3ecf9, 0x00c9cbc3, 0x00b0a78f, 0x00b39b7a, 0x00e7cbbb, 0x00fcecea, 0x00f8e3e9, 0x00f2d9d5, 0x00f3e4de, 0x00f5f0e7, 0x00f3f0e7, 0x00f5f0e8,
- 0x00f0e7e3, 0x00dccdcc, 0x00eededd, 0x00f6e7eb, 0x00f2eeeb, 0x00f3f0f1, 0x00f4f4f6, 0x00f2f6fa, 0x00ededec, 0x00d1c9bf, 0x00766852, 0x007a6342, 0x00816743, 0x00887654, 0x008a7f63, 0x00747159,
- 0x00ecf1e9, 0x00ced3cf, 0x00c3c6ca, 0x00b3b5bd, 0x00bbbcbd, 0x00c1c3be, 0x00cccec8, 0x00d0d2cf, 0x00c3c5cf, 0x00bcbcce, 0x00afadc6, 0x00a7a6c1, 0x00b3b2cf, 0x00bfbfdc, 0x00cfcfeb, 0x00d7d7f4,
- 0x00d6d8f4, 0x00d4d5f1, 0x00d1d2ed, 0x00cecfeb, 0x00c7c8e4, 0x00b9bbd4, 0x005e6177, 0x0012122a, 0x000d0f27, 0x000d0f28, 0x000d0e25, 0x000c0d23, 0x00141429, 0x002b2b3e, 0x00454556, 0x003e3e4f,
- 0x002f2a5a, 0x001d1a5f, 0x00131265, 0x00171c72, 0x00172565, 0x00132161, 0x00141f68, 0x00191c70, 0x00181248, 0x000d0a19, 0x000c0c0f, 0x000e0e1d, 0x00141225, 0x00181529, 0x006e6a79, 0x00ccc8cc,
- 0x00e2e5d8, 0x00e2e4d6, 0x00e4e7df, 0x00f1f1f2, 0x00cecedd, 0x006f7fb7, 0x00243a7c, 0x007682b5, 0x00e8e8f9, 0x00ebe8ed, 0x00dfe0d7, 0x00bdc3b7, 0x005e6761, 0x00343a36, 0x001f221e, 0x00110f0d,
- 0x00111110, 0x00191a19, 0x00181b1a, 0x00151a18, 0x00222523, 0x002d312d, 0x00282f2a, 0x00212821, 0x001b261a, 0x001b251b, 0x001b251b, 0x00182319, 0x001a231b, 0x0019221b, 0x0019221b, 0x0019211b,
- 0x001a221b, 0x001c251d, 0x0019221a, 0x0017211a, 0x0019231b, 0x0019231a, 0x001b251c, 0x0019221b, 0x0019221b, 0x00373f38, 0x00b2b9b4, 0x00f1f7f4, 0x00fcfefc, 0x00fefefc, 0x00fefffe, 0x00f9f9fb,
- 0x008db0a7, 0x00365c52, 0x00275347, 0x00215546, 0x00245f4e, 0x0022614f, 0x00256151, 0x00285f52, 0x00305f53, 0x00346154, 0x00375e54, 0x0035564b, 0x002d443b, 0x00243027, 0x00212118, 0x00251e11,
- 0x0043281c, 0x0051341f, 0x005f3e26, 0x005e3c22, 0x005a361a, 0x00603010, 0x0067300f, 0x0068300f, 0x00732f0d, 0x00792e04, 0x007e2c00, 0x00812b00, 0x007b2e01, 0x00692c0a, 0x0052250b, 0x003f2212,
- 0x002a2615, 0x002a2513, 0x00352d1b, 0x00433823, 0x004d4029, 0x0052442d, 0x00544630, 0x0050432d, 0x00443a27, 0x003b3221, 0x00322a1a, 0x002d261b, 0x002b2820, 0x002c2922, 0x002a2a20, 0x00282d23,
- 0x00292f22, 0x002d3120, 0x00333521, 0x00393822, 0x00403a24, 0x00433a19, 0x00463f18, 0x004c471f, 0x005b522d, 0x0067603f, 0x00746e4d, 0x0079745a, 0x007d7a6a, 0x007c7b71, 0x00787874, 0x00727575,
- 0x006d706a, 0x00706f6d, 0x00737372, 0x00797b79, 0x008a8884, 0x00999489, 0x00998d7d, 0x008d7962, 0x008b6f4b, 0x0098754f, 0x009d784e, 0x00936d44, 0x00775739, 0x005d442c, 0x004e3e2e, 0x00554d44,
- 0x00545955, 0x004c5150, 0x00484e4e, 0x00494d4e, 0x00414345, 0x00433b37, 0x003d2e28, 0x00412f2b, 0x0055443d, 0x005b483e, 0x00584336, 0x005f4937, 0x00694f3a, 0x00664b32, 0x006a4f32, 0x00705434,
- 0x00825a3c, 0x00856b55, 0x00574740, 0x00221f28, 0x000c1232, 0x00050a35, 0x000c103f, 0x00191f52, 0x0014224d, 0x00122850, 0x00394573, 0x005c5286, 0x00594a71, 0x00524057, 0x007b646d, 0x00a38a84,
- 0x00a38c7c, 0x009d8c7e, 0x00877c76, 0x00706c6f, 0x005b5d68, 0x0059585a, 0x005c5a56, 0x005c5752, 0x00585143, 0x005a5142, 0x005d5445, 0x005f5848, 0x00635b52, 0x008a8580, 0x00e5e3df, 0x00fcfaf9,
- 0x00fffefe, 0x00fefdfd, 0x00fcfdfc, 0x00f5f6f6, 0x00f5f4f5, 0x00fcfbfc, 0x00fbfcfc, 0x00fdfefd, 0x00fcfdfd, 0x00f4f4f5, 0x00c7c7c6, 0x00b1b1af, 0x00ababac, 0x00aeaeb1, 0x00abaaad, 0x00acabae,
- 0x00ababb0, 0x00a5a6ab, 0x00a1a0a6, 0x009a98a0, 0x008e8c94, 0x0086848d, 0x007f7d86, 0x0077767e, 0x00706e77, 0x006a6972, 0x0063626c, 0x005f5d69, 0x005b5967, 0x005f5c6b, 0x006d6a7a, 0x00787585,
- 0x0081818b, 0x00808089, 0x007c7b84, 0x0076757c, 0x006f6c72, 0x00686468, 0x005a5458, 0x00514b4e, 0x00483d42, 0x00493f41, 0x005c5251, 0x006e6661, 0x00867f7c, 0x008e8982, 0x008f8a80, 0x00857f75,
- 0x00797064, 0x0071675a, 0x006e5e51, 0x0069584a, 0x006f584a, 0x00785f48, 0x00896a51, 0x00946f55, 0x009f6a4f, 0x009f644c, 0x00965a43, 0x008e5841, 0x008b6553, 0x008a7061, 0x00827367, 0x00726d63,
- 0x0058544d, 0x00413e3a, 0x00262321, 0x00181715, 0x00111111, 0x000f1012, 0x0014161b, 0x001e2029, 0x00282d34, 0x003f434b, 0x00656a79, 0x00798197, 0x006f748a, 0x00494c60, 0x003b3b4e, 0x003e3c4b,
- 0x005e5a61, 0x00615f60, 0x0052514b, 0x00454437, 0x003c3d2a, 0x0033382d, 0x00303932, 0x00313b35, 0x00303c41, 0x002b3948, 0x00273a53, 0x00243b5e, 0x00213b6f, 0x00203f78, 0x001e417f, 0x001b4280,
- 0x00214692, 0x0027509e, 0x003361b0, 0x002f5dae, 0x00476cad, 0x00829ac9, 0x00becbea, 0x00d7dce8, 0x00dfdce1, 0x00e8ebeb, 0x00f3fafa, 0x00f0fdfc, 0x00f6dabb, 0x00d58d82, 0x008f6880, 0x003875c4,
- 0x005b70bd, 0x00a3b1c9, 0x00deeaed, 0x00e0edff, 0x00eceeee, 0x00cddee5, 0x009a9cac, 0x00775969, 0x007e2935, 0x00822b2d, 0x00863733, 0x006d392a, 0x00504328, 0x0045431f, 0x003e3d13, 0x003b3508,
- 0x00362b20, 0x0034271d, 0x002f2119, 0x002f211b, 0x0031231f, 0x00251a17, 0x003f3734, 0x0099928e, 0x00fcfef9, 0x00fcfdf7, 0x00fffffa, 0x00fbfdf5, 0x00f7f3eb, 0x00b4a49a, 0x005d4136, 0x006e493c,
- 0x00986956, 0x00aa7a60, 0x00b68263, 0x00b27c59, 0x00b27954, 0x00b47b54, 0x00b2764f, 0x00a86b45, 0x009d6843, 0x008d6449, 0x00684e3d, 0x002e231f, 0x000e0f16, 0x00121419, 0x00101012, 0x00120e0c,
- 0x000d110f, 0x00100f11, 0x00130f15, 0x00150e16, 0x00171116, 0x00100f16, 0x00141626, 0x002a3050, 0x00314280, 0x0025378a, 0x0022328e, 0x00202d86, 0x001a2681, 0x0015237d, 0x00112076, 0x00122178,
- 0x00102173, 0x001f2e7f, 0x00293788, 0x00263486, 0x0022307f, 0x00273887, 0x00283d8e, 0x002b3d93, 0x00233c9f, 0x00213fa5, 0x002441a6, 0x0024409c, 0x00414889, 0x00594b72, 0x00846675, 0x00af827e,
- 0x00ccaf98, 0x00e4c3ae, 0x00ebc7b3, 0x00e9c4af, 0x00d6ae98, 0x00b68b74, 0x00996f55, 0x008f684b, 0x00a57f61, 0x00b2906f, 0x00be9374, 0x00ca8f6f, 0x00c78e76, 0x00c48e75, 0x00c68e76, 0x00ca8f75,
- 0x00cf8f6e, 0x00cf9272, 0x00c58e73, 0x00a37463, 0x005e4139, 0x003a252b, 0x002e1f32, 0x002d1e35, 0x002a1f3f, 0x002f244b, 0x00312954, 0x00292450, 0x0026204e, 0x00221f4a, 0x001b1d44, 0x00181a40,
- 0x001c1027, 0x001e152d, 0x00261d37, 0x00241e3f, 0x00242054, 0x00191954, 0x001f2464, 0x00242e6d, 0x00475985, 0x003c5574, 0x000a1b2b, 0x00100f0f, 0x000e0f0f, 0x00100e0f, 0x000f0f0f, 0x00111011,
- 0x000e0d0f, 0x00060507, 0x003b393a, 0x00b2b1b1, 0x00fbfbfb, 0x00f9fbf8, 0x00fcfcfb, 0x00faf9fb, 0x00f2f2ef, 0x009ea194, 0x002b3827, 0x00384d46, 0x0048648f, 0x004167aa, 0x003e6abf, 0x003666c5,
- 0x00375ebc, 0x003562b5, 0x003e70bb, 0x004276b6, 0x004b7eb8, 0x005784bb, 0x006081b1, 0x006378a3, 0x00747691, 0x0079727f, 0x00787267, 0x00828c53, 0x00859157, 0x00819353, 0x007b934f, 0x0076944c,
- 0x0076964e, 0x0077944f, 0x00779150, 0x0078904f, 0x007b8f53, 0x007b9251, 0x0077914e, 0x0075904f, 0x00758e4a, 0x00758e4b, 0x00738e4d, 0x00738f4d, 0x0077904e, 0x0077904e, 0x0077914f, 0x00799251,
- 0x0079954f, 0x0078944e, 0x00799450, 0x007a9450, 0x007b9451, 0x007b9351, 0x007c9553, 0x007e9654, 0x00809956, 0x007e9955, 0x007f955d, 0x0082906f, 0x00809750, 0x007e9d4a, 0x00789d5a, 0x0073997b,
- 0x005d82c0, 0x00446ed0, 0x003966df, 0x003165d6, 0x002669b8, 0x002763b9, 0x002a62c1, 0x003770d3, 0x004082e5, 0x00488adf, 0x005897e3, 0x00689ee1, 0x00819fdc, 0x008494bb, 0x00babfcd, 0x00f2f0e4,
- 0x00fefdf9, 0x00fefefa, 0x00fefefb, 0x00fafdf8, 0x00a7ada5, 0x00262f26, 0x000d170e, 0x000c1810, 0x00101c14, 0x00101c14, 0x00101c14, 0x000f1c13, 0x000e1c14, 0x000e1c14, 0x000e1c14, 0x000e1c14,
- 0x000d1c13, 0x000f1d14, 0x000f1e17, 0x000f1d18, 0x00111c17, 0x000e1e17, 0x000c2019, 0x000d211a, 0x000f1e1b, 0x000e1c17, 0x00101d18, 0x00111e17, 0x000f1c0f, 0x00111d0e, 0x00141f11, 0x00111c0b,
- 0x00171411, 0x00231d15, 0x00665b4b, 0x00a49478, 0x00d3bc93, 0x00e9cd9a, 0x00eace93, 0x00dabb7b, 0x00cdaf6c, 0x00d9bd7b, 0x00edd18c, 0x00edd084, 0x00d3b171, 0x00c4a068, 0x00caa672, 0x00caa877,
- 0x00b89d6d, 0x0090794f, 0x00483817, 0x00241707, 0x00211617, 0x001b1911, 0x00121207, 0x000c0f04, 0x000e140a, 0x0010160c, 0x000f190d, 0x000e1b0e, 0x00101d12, 0x00101e14, 0x000f1f15, 0x000f1f16,
- 0x00102316, 0x00102317, 0x00112319, 0x00112218, 0x00101f17, 0x00101d16, 0x00101b16, 0x000d1815, 0x000a1412, 0x0007110f, 0x00030d0a, 0x00020a06, 0x00050906, 0x00040807, 0x00020706, 0x00040706,
- 0x00040706, 0x00030605, 0x00030404, 0x00030303, 0x00040303, 0x00030102, 0x00010000, 0x00010000, 0x00020202, 0x00010101, 0x00000000, 0x00010101, 0x00050505, 0x001f1f1f, 0x00505050, 0x00616161,
- 0x005d5e65, 0x0054565e, 0x004c4b5b, 0x005d5c74, 0x00696c8e, 0x00636990, 0x00676f99, 0x006f75a9, 0x00727ab2, 0x007881b8, 0x007a86c4, 0x006d7ac7, 0x005465b1, 0x003e529c, 0x00324896, 0x00364da1,
- 0x004656b1, 0x005664b3, 0x008990d4, 0x00c9cdf2, 0x00cdcde6, 0x00949bbe, 0x00828cb8, 0x008486bf, 0x008988c1, 0x008d94be, 0x008f9cc4, 0x008093c4, 0x006371c0, 0x00727bb7, 0x00c2c5e4, 0x00f5f6ed,
- 0x00fdfdf3, 0x00fbfbf7, 0x00fbfefc, 0x00edf5fc, 0x008393d2, 0x006476ce, 0x002c41ac, 0x002f46be, 0x003c59ca, 0x003454bc, 0x005f7fdd, 0x007694e1, 0x00708ddd, 0x005673c4, 0x007592e3, 0x007c96e8,
- 0x006e8bdd, 0x00607cd1, 0x00728fe2, 0x007f9cf2, 0x00718ce2, 0x00738de6, 0x006d88e4, 0x006c88e5, 0x007493ee, 0x006f90e8, 0x006b8ce0, 0x006888d8, 0x007993dd, 0x007a92d6, 0x007388ca, 0x0094a7e0,
- 0x00d4f0fa, 0x00a8b6f2, 0x006d7fcd, 0x005a7cd3, 0x005274ca, 0x005765ce, 0x004351c0, 0x003c5bcd, 0x00425491, 0x00542546, 0x0077323c, 0x005b2620, 0x005e444c, 0x00535166, 0x003a4c72, 0x001a3a78,
- 0x00153690, 0x00183692, 0x0018338b, 0x001b3983, 0x00183a72, 0x0017377c, 0x00142f77, 0x00364b89, 0x0095a1c6, 0x0081859c, 0x00828289, 0x00999491, 0x00a69997, 0x00afa3a2, 0x00b2a7a7, 0x009c9294,
- 0x005e505c, 0x00362c36, 0x00332a35, 0x00221b24, 0x00110406, 0x001c0c07, 0x00332116, 0x0039291e, 0x003a3939, 0x006b767c, 0x00435771, 0x00172b60, 0x000f2562, 0x00162f6c, 0x00163171, 0x000f2c6c,
- 0x00152e69, 0x00102654, 0x003e5276, 0x0096a3bc, 0x00555e6f, 0x0039353f, 0x00533e39, 0x0062341c, 0x002e0705, 0x00090320, 0x00234078, 0x003364b2, 0x0078729c, 0x00bd8583, 0x00d77752, 0x00de6224,
- 0x00e05719, 0x00c5673e, 0x00f9caba, 0x00f7e8f4, 0x00e6f1f3, 0x00b6bbaf, 0x00bdb599, 0x00cfbd99, 0x00ac968f, 0x00ebdce3, 0x00f5ebf7, 0x00f4edf0, 0x00f1eef1, 0x00f0f3f1, 0x00eaeee9, 0x00f1efec,
- 0x00f0e1df, 0x00baa6a3, 0x00b19794, 0x00e4cfcb, 0x00fcf5eb, 0x00f6f4f1, 0x00f3f4f5, 0x00eff3f5, 0x00ecefec, 0x00d7cfc5, 0x00736450, 0x00775e42, 0x007a5e40, 0x00816d53, 0x00837561, 0x006f685a,
- 0x00eff1ec, 0x00cdd0cf, 0x00b8babe, 0x00b1b3ba, 0x00bec0c2, 0x00bec1bd, 0x00d2d5ce, 0x00d0d4d0, 0x00c8c7d6, 0x00cac8de, 0x00c3c1da, 0x00b9b9d3, 0x00b0b1cd, 0x00b1b3ce, 0x00bec0d9, 0x00cbcbe5,
- 0x00d5d4f3, 0x00dddbf9, 0x00dbdbf6, 0x00d4d5ef, 0x00d1d2ec, 0x00c6c9e1, 0x0063677f, 0x000d102a, 0x000c0c28, 0x0012112f, 0x000b0c26, 0x0006061f, 0x00343348, 0x005f5e70, 0x007a7b85, 0x008d8f98,
- 0x005a557a, 0x001f1b54, 0x00161359, 0x00141763, 0x001a245f, 0x00171e5d, 0x001a1d64, 0x001f1b69, 0x001c1344, 0x00130e18, 0x0012100c, 0x000f1016, 0x0013121e, 0x00100d1e, 0x004f4e5b, 0x00b5b5ba,
- 0x00e0e1d7, 0x00e6e5dc, 0x00e2e4dc, 0x00ebebe7, 0x00d9d9e3, 0x008395cd, 0x001d367a, 0x006572a8, 0x00e6e3f9, 0x00eae6ef, 0x00e0e0d9, 0x00c1c8bd, 0x006a746d, 0x0049504b, 0x0042483f, 0x00262922,
- 0x00141515, 0x00181919, 0x00171919, 0x00161918, 0x00222422, 0x002c302c, 0x00273028, 0x00202a21, 0x001e251e, 0x001e251d, 0x001c261d, 0x0019241a, 0x001c231c, 0x001b231b, 0x0019241a, 0x00192419,
- 0x001c211b, 0x001d231c, 0x001a221b, 0x0018211a, 0x001a241c, 0x0019231a, 0x001a241b, 0x0018221b, 0x001d241f, 0x00333a35, 0x00a8afac, 0x00f0f5f3, 0x00fdfefc, 0x00fdfefb, 0x00fbfefc, 0x00f7f9fa,
- 0x0097aead, 0x003c5854, 0x00294d46, 0x00235346, 0x00266050, 0x00236350, 0x00256452, 0x00296454, 0x0035635a, 0x0038635b, 0x003a615a, 0x00365a50, 0x002e493f, 0x0026352a, 0x00212318, 0x00211c0d,
- 0x003c231a, 0x004a2e1c, 0x0055341e, 0x0053341a, 0x00533216, 0x005b2d0f, 0x005f2c0d, 0x00602c0e, 0x006d2c11, 0x00752b07, 0x00782a01, 0x007e2b00, 0x00762e00, 0x00652c09, 0x004c2506, 0x003e2411,
- 0x002a2719, 0x002b2717, 0x00342e1d, 0x00433925, 0x004e412b, 0x00564730, 0x0052432d, 0x00453822, 0x00382a1d, 0x002d2115, 0x00251d0f, 0x00231c12, 0x00212018, 0x0025231d, 0x0024261d, 0x00222820,
- 0x002a2d21, 0x002d2d1f, 0x0030311f, 0x0036361e, 0x003d3921, 0x00403818, 0x00443f19, 0x004d4820, 0x005d5632, 0x00696445, 0x00737051, 0x0077755d, 0x0079786b, 0x007b7a73, 0x00787675, 0x00737275,
- 0x006e6e6b, 0x00706c6c, 0x006f6d6f, 0x00757776, 0x0080807b, 0x008e8b7d, 0x008d836f, 0x00877358, 0x0091714f, 0x009d7553, 0x00997049, 0x00906942, 0x00765539, 0x005d452e, 0x00473928, 0x00454035,
- 0x004e4f4f, 0x00484a4c, 0x00474c4e, 0x004a4d4f, 0x0045484a, 0x00483f3b, 0x003b2d28, 0x003a2927, 0x004f3b3a, 0x00523c3a, 0x0049332d, 0x00503a2f, 0x005a4232, 0x005b432e, 0x005f492e, 0x00634c2e,
- 0x00775744, 0x006e584b, 0x00413530, 0x0018191d, 0x00080f28, 0x000a0f33, 0x00090b39, 0x000e1349, 0x000f1a47, 0x00061c45, 0x00152857, 0x00323370, 0x004e4778, 0x0045375a, 0x004f3a4f, 0x00856b73,
- 0x00cdadaf, 0x00e3c9cd, 0x00d2c2c5, 0x00b7b0b7, 0x00848691, 0x006c6c6d, 0x0066655f, 0x0066625a, 0x006c6054, 0x00665a4c, 0x00635646, 0x006c604f, 0x006b6255, 0x008b857d, 0x00e4dfd9, 0x00fbf8f6,
- 0x00ffffff, 0x00fffdfe, 0x00fcfdfd, 0x00f5f6f6, 0x00f6f5f5, 0x00fdfcfd, 0x00f9fafa, 0x00fcfdfd, 0x00fffbfe, 0x00f5f3f6, 0x00c6c5c5, 0x00adadab, 0x00a8a8a9, 0x00aaaaad, 0x00a6a8a9, 0x00a5a8a9,
- 0x00a9a7af, 0x00a3a1a9, 0x009d9aa3, 0x0096949d, 0x008c8a94, 0x0084838c, 0x00797a7f, 0x006e7073, 0x0065626b, 0x00595760, 0x004c4a53, 0x0044424b, 0x003d3c46, 0x0043424c, 0x00585762, 0x00676772,
- 0x00767680, 0x0075757e, 0x006d6c75, 0x00626168, 0x005a575c, 0x00555153, 0x004a4444, 0x00423b3a, 0x00413537, 0x00473c3a, 0x005b514e, 0x006a635d, 0x00817977, 0x008c857e, 0x008f8a80, 0x00878277,
- 0x00807468, 0x00776a5d, 0x00726053, 0x006d5c4d, 0x00735d4d, 0x007c6952, 0x008b735d, 0x0093755f, 0x00a2725b, 0x00a56b57, 0x009c604c, 0x00935945, 0x00885f4d, 0x00826555, 0x00746455, 0x00605a4c,
- 0x004d4943, 0x003a3632, 0x0024211d, 0x00191713, 0x0012110f, 0x00111211, 0x00141719, 0x001e2127, 0x0030313a, 0x004b4b53, 0x006b6c77, 0x00808493, 0x009493a3, 0x00868390, 0x0079747d, 0x007c757b,
- 0x00847a7d, 0x007d7674, 0x006a665e, 0x00616051, 0x00535443, 0x00454943, 0x003a4241, 0x00343c3d, 0x00333940, 0x00303947, 0x0029374b, 0x00243952, 0x00243e69, 0x001d3e73, 0x00183d7f, 0x001b4389,
- 0x002e51a5, 0x003962b5, 0x003e6dbf, 0x003565b9, 0x003e65a7, 0x006982b4, 0x00aebddc, 0x00d5dbe8, 0x00e3dfe2, 0x00e8eceb, 0x00eef5f5, 0x00f3fffd, 0x00fae3c6, 0x00dc998e, 0x008c6780, 0x003d7dca,
- 0x00717dc8, 0x00b2b6c9, 0x00dfe3e6, 0x00dce5f5, 0x00e9efe4, 0x00dcf5f6, 0x00c7d7e8, 0x00b2a4b6, 0x00a3616e, 0x00924a4f, 0x00884243, 0x00723b36, 0x004e3c2b, 0x00423e20, 0x00333c11, 0x00273401,
- 0x0030241e, 0x002f201a, 0x002b1c15, 0x00291b14, 0x002a1b16, 0x00221611, 0x00352c27, 0x00918883, 0x00fffefb, 0x00fefefb, 0x00fefefd, 0x00f8fbf6, 0x00f5f4ee, 0x00baada2, 0x005f4437, 0x006b4637,
- 0x009e6a5a, 0x00b57f69, 0x00bc8768, 0x00b17b56, 0x00aa744d, 0x00ae784f, 0x00a9734b, 0x009c633f, 0x009b664c, 0x00805848, 0x00412c20, 0x00161011, 0x000b1118, 0x00101519, 0x000e0f0f, 0x00130e0a,
- 0x000e0f14, 0x00110e15, 0x00130f16, 0x00140d13, 0x00171111, 0x00100f11, 0x000b0f1a, 0x00141e37, 0x00212e6a, 0x001f2f7e, 0x001f2f85, 0x001c2a7d, 0x00172576, 0x00162577, 0x00182775, 0x001a2a78,
- 0x00243081, 0x00293484, 0x00202e7d, 0x00172676, 0x00202f7b, 0x001d3180, 0x00193181, 0x001d3082, 0x00202f8e, 0x001d3297, 0x001a349a, 0x001e3a9e, 0x00354692, 0x004e497c, 0x0089768f, 0x00bd9b9e,
- 0x00d0b19a, 0x00debea8, 0x00eac7b1, 0x00e1bba4, 0x00cea58d, 0x00c39a7f, 0x00ba9274, 0x00b58e6e, 0x00be9576, 0x00bc9777, 0x00c09374, 0x00c88e6b, 0x00c69077, 0x00c59278, 0x00c5937c, 0x00c9947e,
- 0x00cf9076, 0x00cb8e72, 0x00cc9276, 0x00be8d73, 0x008f6d58, 0x006d4e38, 0x004b311b, 0x00361c08, 0x0030170d, 0x002d1611, 0x00241412, 0x001f1415, 0x001f1520, 0x001d1722, 0x00181924, 0x00171927,
- 0x002a1a2b, 0x00271d30, 0x00231d35, 0x00201d45, 0x001d1d5e, 0x00161a67, 0x001a2172, 0x0013226e, 0x003a538a, 0x0047658d, 0x00152b3f, 0x00101110, 0x000e1010, 0x0010100f, 0x000f110f, 0x000e0f0e,
- 0x00111012, 0x00050406, 0x004b4a4b, 0x00c7c6c6, 0x00fefefe, 0x00fefffc, 0x00fcfdfb, 0x00f9f9fd, 0x00e5e6e0, 0x00878e75, 0x002d3d1f, 0x003e5244, 0x004e6693, 0x004265a8, 0x003b65b2, 0x003663b0,
- 0x003c5bae, 0x00375b9f, 0x003c619a, 0x003d608d, 0x00426084, 0x0043587a, 0x004b5471, 0x005e5b74, 0x0089767a, 0x009e847e, 0x009b8a6c, 0x008b904e, 0x0087914e, 0x00879650, 0x007f984e, 0x007a974b,
- 0x0079974e, 0x007b9553, 0x007a9254, 0x007b9156, 0x007c9059, 0x007b9354, 0x0075924b, 0x0073904c, 0x00788f4e, 0x00788f4f, 0x00758f4e, 0x00738f4d, 0x0076904e, 0x0076904d, 0x0075914c, 0x0077924e,
- 0x007c9552, 0x007a9450, 0x0077924d, 0x0076914b, 0x0075904a, 0x0077924d, 0x0079924e, 0x007a944f, 0x00809757, 0x007e9654, 0x007e9356, 0x00819061, 0x007d954a, 0x00799748, 0x0072965c, 0x006e917f,
- 0x00637dcb, 0x004967dc, 0x003c5ee6, 0x00375be3, 0x002b5eca, 0x002f5ec1, 0x002b5cc1, 0x003165d5, 0x003c76ec, 0x004382e9, 0x00498ae5, 0x005189e6, 0x006685e8, 0x007486cd, 0x00b5bee7, 0x00eceff3,
- 0x00fffcfb, 0x00fffdfc, 0x00fefefb, 0x00fbfef9, 0x00a9afa4, 0x002c3528, 0x00172113, 0x00182116, 0x001b2316, 0x001a2416, 0x00182416, 0x00162412, 0x00142315, 0x00122212, 0x000f2011, 0x000e2012,
- 0x000f1c15, 0x00101b14, 0x000f1c16, 0x000f1c18, 0x00111c18, 0x000e1f19, 0x000a2119, 0x000a2118, 0x00101d1d, 0x00101d1b, 0x000f1c1a, 0x000f1b16, 0x00131e11, 0x00141e0d, 0x00111a07, 0x00101802,
- 0x002b1d12, 0x006f5c4c, 0x00b8a289, 0x00d0b490, 0x00e4c292, 0x00f3cf97, 0x00f0cb8e, 0x00d1aa69, 0x00b28f4f, 0x00c8a768, 0x00eccd8b, 0x00f0d188, 0x00d3ae73, 0x00bd945e, 0x00c19662, 0x00be9461,
- 0x00d1a878, 0x00d3af85, 0x00a58a65, 0x005f4931, 0x001c0903, 0x0019170a, 0x0014150a, 0x000f1308, 0x000e1109, 0x0011150c, 0x0010190e, 0x000f1b0f, 0x00101d12, 0x000f1f14, 0x000d2015, 0x000e2116,
- 0x00132318, 0x00122318, 0x00122319, 0x00112218, 0x00101f17, 0x000f1d16, 0x000e1c15, 0x000c1a13, 0x000e1415, 0x00091111, 0x00030c0b, 0x00020a06, 0x00060906, 0x00050807, 0x00020806, 0x00030706,
- 0x00060708, 0x00060707, 0x00040504, 0x00040303, 0x00050304, 0x00030102, 0x00000000, 0x00000100, 0x00030303, 0x00020202, 0x00020202, 0x00000000, 0x00030303, 0x001e1e1e, 0x00484848, 0x004e4e4e,
- 0x0046414d, 0x00413e49, 0x00353443, 0x0036364c, 0x002f2f4f, 0x002b2c51, 0x0034375d, 0x004c507c, 0x007374a3, 0x008386b2, 0x008e93c6, 0x00969ddd, 0x00919cdb, 0x007584c2, 0x004d61a7, 0x00384f98,
- 0x003d4ba1, 0x00505fab, 0x0099a1e4, 0x00d4dbfc, 0x00c5c6e5, 0x00939ac1, 0x00848fbd, 0x008387c1, 0x008a86c3, 0x009195c3, 0x00929ec9, 0x007c8ec2, 0x00606fbd, 0x00747fb9, 0x00c8cfe8, 0x00f4f8ea,
- 0x00fffdf6, 0x00fefbfb, 0x00fafdff, 0x00e4eefe, 0x007183c9, 0x005669c8, 0x00253da8, 0x00344fc4, 0x00405ace, 0x003856bc, 0x005776d3, 0x007794e5, 0x006783d8, 0x004b6abd, 0x006a89dd, 0x006986dc,
- 0x006580da, 0x005d76d2, 0x007794ea, 0x007c99f2, 0x00718ae4, 0x00738ce6, 0x006885e0, 0x006a89e4, 0x00718eec, 0x006c8be6, 0x006788df, 0x006684db, 0x007692e1, 0x00728dd5, 0x00768fd7, 0x00a9c1f5,
- 0x0091a9d8, 0x00727dd0, 0x006b7ed5, 0x005275cc, 0x004a69c0, 0x005360c5, 0x004252bf, 0x003354c3, 0x004b589f, 0x0061325c, 0x00823440, 0x0076291b, 0x0040190e, 0x002d1f1e, 0x002b3140, 0x00233b61,
- 0x001d3785, 0x001b3187, 0x001d3389, 0x001b347d, 0x00123067, 0x000f2a6d, 0x0020377c, 0x00364881, 0x008892b6, 0x00707086, 0x007e7b81, 0x009b9491, 0x00a59b96, 0x00a69e99, 0x00a7a09c, 0x00928a8a,
- 0x00786470, 0x00625360, 0x00635663, 0x004c424f, 0x00231315, 0x00201007, 0x0039291e, 0x003a2f22, 0x003a3a3b, 0x00636f75, 0x00566a80, 0x00394d7c, 0x001e336a, 0x00132965, 0x00122969, 0x000c2365,
- 0x00112762, 0x001b2f5f, 0x00253759, 0x0049566c, 0x00202830, 0x001f0d0c, 0x004c2614, 0x00723b1e, 0x0049231c, 0x00151a33, 0x002e5782, 0x003574ab, 0x00a9c3cd, 0x00e8ead3, 0x00eccda0, 0x00daa56a,
- 0x00e7551d, 0x00c75633, 0x00d4907f, 0x00f4dada, 0x00e7eeea, 0x00edf0de, 0x00f0f0d6, 0x00f0e7cb, 0x00b3a3a6, 0x00eae2ed, 0x00edeafb, 0x00eceffb, 0x00ebf4fb, 0x00e6f3f4, 0x00e4efee, 0x00ecf1f1,
- 0x00faedeb, 0x00f4e1dd, 0x00d4b8b5, 0x00dec7bf, 0x00fbf3e3, 0x00f9f8f5, 0x00f2f3f4, 0x00eff3f4, 0x00f3f2f4, 0x00dcd3cd, 0x00726354, 0x00725942, 0x007c5f47, 0x007b6651, 0x007c6f5f, 0x00746f64,
- 0x00e4ece0, 0x00bfc4bf, 0x00b2b3b8, 0x00b1b1bb, 0x00babcc3, 0x00c4c8c8, 0x00d8dbd9, 0x00d5d7d9, 0x00bbc0c8, 0x00bdbfd1, 0x00c7c6e2, 0x00c9c8e6, 0x00c1c1dc, 0x00b9bad5, 0x00b6b6d1, 0x00b6b4cf,
- 0x00c4c9e0, 0x00cdd2e9, 0x00d5d7f2, 0x00d4d4f0, 0x00d5d5ef, 0x00c7c9e2, 0x005f617e, 0x000e0f2e, 0x00030b23, 0x0001071f, 0x00030520, 0x00181732, 0x007d7b91, 0x00bbb8ca, 0x00cec9d7, 0x00dad5de,
- 0x007d8c9b, 0x00202b53, 0x00121754, 0x00101457, 0x00171a49, 0x001b1d54, 0x00222062, 0x00272371, 0x0011133c, 0x0000080b, 0x00070c05, 0x000e0b08, 0x00120e16, 0x00100e18, 0x0046444e, 0x00a0a1a7,
- 0x00d3dacb, 0x00e1e6d9, 0x00e3e6df, 0x00e6e5e3, 0x00e5e1eb, 0x0095a5de, 0x00233885, 0x005963a0, 0x00d5d8e9, 0x00e7eaea, 0x00e0e0de, 0x00bfc4bd, 0x005a635b, 0x0029322a, 0x00393d36, 0x002d2d28,
- 0x00101310, 0x00111513, 0x00161a19, 0x00171b19, 0x001f2320, 0x002b2f2a, 0x00292f2b, 0x00222926, 0x00172217, 0x001a2519, 0x001c261e, 0x001c251e, 0x001b241b, 0x001b241c, 0x001b241e, 0x001c241e,
- 0x00152117, 0x00152016, 0x001a231b, 0x001b241b, 0x001b241c, 0x001d271e, 0x001d261e, 0x001c231c, 0x00182418, 0x00253228, 0x009ea39f, 0x00f1f4f3, 0x00fcfeff, 0x00fefdff, 0x00fdfcfc, 0x00fcfbfb,
- 0x0097aea8, 0x0037544b, 0x00264941, 0x00224f46, 0x00275f52, 0x00246354, 0x00286356, 0x002c6458, 0x002d6252, 0x00336354, 0x003c665b, 0x00386456, 0x00304f43, 0x00283a30, 0x00232620, 0x00231912,
- 0x00281909, 0x0036220b, 0x00442914, 0x00462c17, 0x00492e14, 0x00552813, 0x005f2617, 0x00622818, 0x0064280b, 0x006d2601, 0x00772502, 0x007e2700, 0x00742800, 0x00632608, 0x0051220c, 0x00412014,
- 0x00232612, 0x00242310, 0x002e2918, 0x003a3121, 0x00473a27, 0x004a3f2c, 0x0049382b, 0x003c2b1e, 0x00211c09, 0x001a1507, 0x00171007, 0x0017100a, 0x001a1511, 0x001d1b17, 0x0020201c, 0x0020211f,
- 0x001d2416, 0x001f2413, 0x00252615, 0x002b2b17, 0x0036311a, 0x003d3717, 0x00484120, 0x00534d2a, 0x00585a35, 0x00656647, 0x00737258, 0x00777661, 0x007b776e, 0x007b7674, 0x007a7376, 0x00777078,
- 0x00656a62, 0x00676b65, 0x006b6d6c, 0x00727472, 0x007a7b75, 0x00868277, 0x008a7b6b, 0x0088715b, 0x00907349, 0x00997446, 0x00966a43, 0x008d6546, 0x0074553c, 0x005e4935, 0x00483a2e, 0x00423934,
- 0x003e423d, 0x003c433e, 0x00464c4a, 0x004f5150, 0x004d4d4a, 0x004f413f, 0x004b3636, 0x00452e2f, 0x00382723, 0x002c1c17, 0x00281312, 0x003d2523, 0x004e3a31, 0x00523f31, 0x00584333, 0x0056442f,
- 0x004b403a, 0x00312c27, 0x001a1919, 0x000a1015, 0x00030b21, 0x000b0d30, 0x000a0737, 0x000f0a40, 0x0009193c, 0x00031b33, 0x0002173b, 0x00061454, 0x002d3366, 0x003a325b, 0x002e1b39, 0x00513246,
- 0x009a7d7d, 0x00ceb5b6, 0x00f4dde2, 0x00ecdfe3, 0x00c9c8c9, 0x00a19b9d, 0x007f7575, 0x006e645f, 0x00686450, 0x006c644f, 0x006b5e4a, 0x006f604f, 0x006e6356, 0x008a7f75, 0x00e4d8d5, 0x00fefaf8,
- 0x00fcfcfc, 0x00fcfcfc, 0x00fdfdfd, 0x00f6f6f6, 0x00f5f5f5, 0x00fefefe, 0x00fcfcfc, 0x00ffffff, 0x00f8fef7, 0x00f1f6ef, 0x00c6c7c5, 0x00aeaeb1, 0x00a8a8ae, 0x00a8a8ad, 0x00a3a1a7, 0x00a4a0a8,
- 0x00969a9c, 0x0093959b, 0x0093919b, 0x008f8d97, 0x00898592, 0x00838288, 0x007a787b, 0x006c6a6f, 0x00535756, 0x00444749, 0x003a373e, 0x00312d35, 0x00292730, 0x002d2c35, 0x00474550, 0x005a5965,
- 0x005c6264, 0x005e6265, 0x0059585c, 0x004c494d, 0x00423d3f, 0x00413a3b, 0x00403736, 0x00413734, 0x003a3227, 0x0040372c, 0x00574b45, 0x006a5e5b, 0x0079736a, 0x00858179, 0x008f8a81, 0x00898679,
- 0x00787864, 0x00726a59, 0x006d5f50, 0x006c5a4a, 0x00715a4b, 0x00796b5f, 0x00897a6e, 0x00927c6d, 0x0097745c, 0x009a6b56, 0x0098604d, 0x00955b4a, 0x00825745, 0x00765646, 0x00654f42, 0x00534539,
- 0x00323429, 0x00282a1f, 0x001c1c14, 0x00181712, 0x00171514, 0x00181618, 0x001c191c, 0x00262225, 0x00323737, 0x004e5251, 0x00767578, 0x008b8288, 0x009d9499, 0x00a79b9f, 0x00a19496, 0x009a8f8c,
- 0x008a8378, 0x00868379, 0x0084827a, 0x007f8076, 0x00686e65, 0x005c5c60, 0x004c4c59, 0x003e3e4b, 0x002e3937, 0x002b3732, 0x00293639, 0x00283a40, 0x00244059, 0x00224271, 0x00224589, 0x0025499e,
- 0x002a56a0, 0x002d5eac, 0x003768bb, 0x003667b8, 0x003860a3, 0x004a6695, 0x00a2adcf, 0x00dbdced, 0x00dee6dd, 0x00e3ede1, 0x00ecf3f3, 0x00ecfdff, 0x00faeed5, 0x00dea79f, 0x00886a87, 0x003b7dcf,
- 0x006b7dc4, 0x00afb4c1, 0x00e5e6e9, 0x00dbe6f8, 0x00e9f5e7, 0x00deeef3, 0x00e6f5ff, 0x00e3ebf4, 0x00b6b7b0, 0x00928883, 0x0080696e, 0x00664c56, 0x00463036, 0x003d3533, 0x00323026, 0x00262b15,
- 0x001b1709, 0x001d160c, 0x00211610, 0x00241612, 0x00251712, 0x00211611, 0x002a221e, 0x00847e7d, 0x00f7fef4, 0x00f4fef5, 0x00f9fffd, 0x00f7fdfd, 0x00f8f8f4, 0x00c1b5af, 0x00624640, 0x00694439,
- 0x00956e51, 0x00b18465, 0x00be8d6f, 0x00b58361, 0x00aa7b52, 0x00ab7856, 0x00a26c52, 0x009b684d, 0x00876449, 0x00594431, 0x001f1210, 0x000c0d13, 0x00071119, 0x000c1115, 0x00120e10, 0x001c0f0b,
- 0x0009100b, 0x000c0e0e, 0x00110e13, 0x00150f15, 0x0015100f, 0x00141410, 0x000d1015, 0x000c1427, 0x0013284f, 0x001b326e, 0x00253881, 0x0028397e, 0x002c3c83, 0x002d3b83, 0x0028357c, 0x00202c77,
- 0x00102566, 0x00091b62, 0x00081764, 0x00091966, 0x000c1a69, 0x00071c6f, 0x000f2278, 0x001b297d, 0x001a287d, 0x00182a86, 0x001a2e96, 0x00213ba6, 0x00284098, 0x003a4081, 0x007b719f, 0x00b29ab2,
- 0x00c2a483, 0x00c6a285, 0x00d2a58d, 0x00cb9b84, 0x00cb957e, 0x00cc977b, 0x00d09b7c, 0x00d29b7f, 0x00c49971, 0x00c0976d, 0x00c89870, 0x00cf956a, 0x00c99778, 0x00c69982, 0x00c8988b, 0x00c99888,
- 0x00cc997b, 0x00ce9978, 0x00cc9779, 0x00c5967a, 0x00b6937a, 0x00b68e74, 0x008a5e45, 0x005a3116, 0x00392100, 0x00372300, 0x00331e08, 0x002f2210, 0x0025201d, 0x0020212b, 0x001f1f35, 0x00211f40,
- 0x000f1b45, 0x00141c46, 0x00182351, 0x001a245a, 0x001a2367, 0x00161d6f, 0x0018207a, 0x00131d75, 0x0016306c, 0x00243c6d, 0x001e2a4a, 0x00111114, 0x00101110, 0x00101010, 0x00131113, 0x00131113,
- 0x000b110b, 0x00000400, 0x005b5b5c, 0x00dfdddf, 0x00fefcff, 0x00fefffb, 0x00fbfcf9, 0x00fffeff, 0x00cdd7c5, 0x0068774a, 0x00344418, 0x00475c3c, 0x00556a95, 0x004863a3, 0x00405fa6, 0x00375d99,
- 0x002a3d5e, 0x0021314c, 0x002d394d, 0x00363b47, 0x00352e32, 0x0037272b, 0x00594145, 0x00826867, 0x009e8466, 0x00ab8e68, 0x00b09c6e, 0x009b9967, 0x008e945c, 0x0089965a, 0x00869b5a, 0x007e9a56,
- 0x0075994d, 0x0079994e, 0x007f9856, 0x0081965c, 0x0082945b, 0x007d9455, 0x00799352, 0x00799251, 0x00708f47, 0x00718f49, 0x0077914e, 0x0079914e, 0x00768f4d, 0x0077914e, 0x007b9251, 0x00799250,
- 0x00749449, 0x0076944a, 0x0077934a, 0x0076924a, 0x0075914b, 0x0076914b, 0x0079924e, 0x007c9450, 0x00749448, 0x00749448, 0x007a914e, 0x007d8f4b, 0x00799247, 0x0078944d, 0x00799466, 0x00748f82,
- 0x006480ac, 0x004f67b4, 0x004459bd, 0x003f55bd, 0x003a54b0, 0x003d57ac, 0x00425ebd, 0x003e66d4, 0x003471d5, 0x00377dd4, 0x003d83dc, 0x004584e6, 0x00597ff4, 0x006582da, 0x00adbdf5, 0x00e7f4f8,
- 0x00f7fef8, 0x00f5fcf6, 0x00fbfdfa, 0x00fdfef7, 0x00b3b7ab, 0x00404637, 0x002e3322, 0x002d3520, 0x00273618, 0x00283614, 0x002a3817, 0x0028381c, 0x0026371d, 0x0022321a, 0x001c2b18, 0x00192817,
- 0x000d2010, 0x000c1d11, 0x000f1b15, 0x00101d1b, 0x00101c1e, 0x000e2119, 0x000d2018, 0x000f211d, 0x00072016, 0x000a1d16, 0x00101c18, 0x00131b16, 0x00131a12, 0x000e1507, 0x00141908, 0x002d311c,
- 0x007c6d40, 0x00c0ad80, 0x00e1c699, 0x00d6b585, 0x00eac18e, 0x00f9d09f, 0x00deb588, 0x009e774e, 0x006c5229, 0x009b865f, 0x00dac3a1, 0x00dec5a0, 0x00af8d71, 0x00926e4f, 0x00bc9176, 0x00ca9b7a,
- 0x00c9a46c, 0x00d2b27a, 0x00eacc9b, 0x00aa906a, 0x00341d0c, 0x00110b00, 0x00151209, 0x0017150d, 0x00061100, 0x00081203, 0x00131a12, 0x00111c12, 0x00101f14, 0x00112016, 0x00111f19, 0x00131f19,
- 0x000d2310, 0x000e2412, 0x00112418, 0x0013221a, 0x00122017, 0x00101c15, 0x000f1714, 0x000d1613, 0x00041209, 0x00020e09, 0x00060c0b, 0x00070b0a, 0x00040909, 0x00050908, 0x00060808, 0x0006070a,
- 0x00000502, 0x00010502, 0x00030403, 0x00030303, 0x00040304, 0x00040203, 0x00020204, 0x00010203, 0x00000100, 0x00000100, 0x00020402, 0x00010201, 0x00000100, 0x00080908, 0x00252525, 0x002f2f2f,
- 0x00282a21, 0x002a2b25, 0x002e2d2d, 0x002e2a32, 0x00282232, 0x001b1629, 0x00070216, 0x00130b1f, 0x003b3b46, 0x00616067, 0x00848092, 0x009f99bc, 0x00b4b8dc, 0x00b3bbe2, 0x0097a2d6, 0x007482c2,
- 0x003f519a, 0x003e4c94, 0x007f88ce, 0x00b5bff0, 0x00a7b0d7, 0x008793b9, 0x00858abc, 0x008b85c5, 0x00868abd, 0x00858eb7, 0x00808abb, 0x006c81b8, 0x005e6bbb, 0x00767fb7, 0x00d0d5ee, 0x00fdfbef,
- 0x00f8fdf1, 0x00f7fcf7, 0x00f8fdfb, 0x00e1e8fe, 0x006a7ac1, 0x005366c5, 0x002738ac, 0x004056cd, 0x003a5fc1, 0x00385eb7, 0x005b7bd3, 0x007d97f5, 0x005f79d5, 0x004661bd, 0x005c76d3, 0x005d77d3,
- 0x005c7dd2, 0x005779cf, 0x007896ee, 0x007491e9, 0x006c89e4, 0x006985de, 0x00647dd6, 0x006b84dd, 0x00648adc, 0x005c80d5, 0x006385dd, 0x006787de, 0x006988dc, 0x006581d2, 0x00728bda, 0x00788edd,
- 0x005b7ec4, 0x00687bd5, 0x00596bd0, 0x004364c7, 0x003958ac, 0x004350b3, 0x004751c1, 0x00364fc5, 0x0043559d, 0x00623567, 0x008d3347, 0x009a331b, 0x0066240d, 0x0058381c, 0x001c170a, 0x00121e2a,
- 0x001e3466, 0x00192e71, 0x001e2f7f, 0x00132770, 0x000f275e, 0x00192f70, 0x00162a6b, 0x00404a83, 0x0059667d, 0x00555b64, 0x00716d70, 0x0089807b, 0x0091857c, 0x008c837e, 0x008d8280, 0x007d7273,
- 0x006d635f, 0x006b6765, 0x00767077, 0x005e5f68, 0x00302a31, 0x0020181a, 0x003b2f34, 0x00342e35, 0x003a4a54, 0x00456074, 0x00243b5e, 0x00384672, 0x0021316a, 0x00152a64, 0x0013296c, 0x000c256a,
- 0x000a2458, 0x000b2149, 0x0026385a, 0x001a263b, 0x00030811, 0x00361e0f, 0x00845740, 0x008f583d, 0x004d3831, 0x00273746, 0x00325c7e, 0x005992b4, 0x00d0f0e9, 0x00e3f9e3, 0x00efffe6, 0x00e3f6e0,
- 0x00eeb393, 0x00ba6d50, 0x00ac5b44, 0x00d58d7b, 0x00f8dbcc, 0x00f7e5da, 0x00f3eae8, 0x00e3e9ec, 0x00eaf4ed, 0x00ecedea, 0x00f2f0f5, 0x00eaf2f9, 0x00eaf8f9, 0x00e5f4f2, 0x00e6f4f3, 0x00ecf3f4,
- 0x00f3f0ed, 0x00f3e9e6, 0x00faedeb, 0x00f8efe9, 0x00f0f0e6, 0x00f4f4ef, 0x00f8f6f7, 0x00f5f5f7, 0x00ebf1ec, 0x00dbd9cf, 0x007d6b60, 0x007e6150, 0x008d705e, 0x00816960, 0x00867675, 0x00938b93,
- 0x00e9ece7, 0x00c1c4c1, 0x00c7c9cd, 0x00cacbd3, 0x00c5c6cb, 0x00cccfcd, 0x00d9dcd9, 0x00cfd2d2, 0x00a3a3ae, 0x009d9db1, 0x00c2c1da, 0x00c7c7e1, 0x00c5c5df, 0x00c0c1dc, 0x00b6b7d2, 0x00afb1cd,
- 0x00b7b7d1, 0x00bdbeda, 0x00c3c3e1, 0x00c9c9e5, 0x00cbcbe7, 0x00aeb1ca, 0x0041455f, 0x00060a25, 0x00050928, 0x00090d2a, 0x00343654, 0x0063647f, 0x00a0a0b4, 0x00bbbac7, 0x00c4c3c9, 0x00d3d2d2,
- 0x00a5bbca, 0x0058698e, 0x00151f54, 0x00121854, 0x00151947, 0x001f2058, 0x00242263, 0x0027236e, 0x000f1342, 0x00000b12, 0x00050b01, 0x000c0b01, 0x000f0c0c, 0x0007070b, 0x00424349, 0x009b9fa5,
- 0x00cccfc8, 0x00e7e9df, 0x00e8eae2, 0x00e5e2e2, 0x00ebe7f3, 0x00a4b2ed, 0x002e438d, 0x004a568f, 0x00c2c4db, 0x00ecebf1, 0x00e6e8e5, 0x00cbd2ca, 0x005c6a5d, 0x0019251c, 0x00282d23, 0x0023251c,
- 0x000e1010, 0x00121515, 0x00171919, 0x001a1d1b, 0x001f2420, 0x00272d28, 0x00242c26, 0x001e2620, 0x00192319, 0x001a251a, 0x001b251d, 0x001b251d, 0x001b241b, 0x001a241b, 0x001b231d, 0x001b231d,
- 0x0019221b, 0x0018221a, 0x0019231a, 0x001a241b, 0x0019221a, 0x001b241c, 0x001a231a, 0x00182117, 0x0019221d, 0x00242e28, 0x00949994, 0x00eff3ef, 0x00fdfffd, 0x00fefffe, 0x00fcfcfd, 0x00fbfbfc,
- 0x009eadb0, 0x00384f4e, 0x0022413d, 0x00204a41, 0x00255d4f, 0x00256253, 0x00276356, 0x002b6458, 0x00316258, 0x00396459, 0x003c665c, 0x00366455, 0x002e5044, 0x002a3f35, 0x00232922, 0x00221b12,
- 0x002a190c, 0x00351f0f, 0x00402514, 0x00412914, 0x00452c15, 0x00522615, 0x005d2318, 0x00612419, 0x00672411, 0x00712206, 0x007a2103, 0x00802102, 0x00742100, 0x00632104, 0x00511d09, 0x00421c12,
- 0x001e1f12, 0x00201e0f, 0x00272113, 0x00322919, 0x003c2f1d, 0x003d3120, 0x0037291d, 0x002c1f14, 0x001c1207, 0x00140c05, 0x000f0904, 0x00110c08, 0x0015110f, 0x001a1715, 0x001b1c18, 0x001a1c1a,
- 0x00181d16, 0x001a1d11, 0x001d1f10, 0x00232311, 0x002e2c16, 0x00363315, 0x00403f1d, 0x004c4b29, 0x00595b3a, 0x0067684d, 0x0074735c, 0x00767462, 0x0079746c, 0x0079726f, 0x00776f6f, 0x00756d72,
- 0x006b6b69, 0x006a6a6a, 0x0068696a, 0x006c6f6d, 0x0070736b, 0x007b796b, 0x00847964, 0x00887158, 0x0094714c, 0x009c7249, 0x00926641, 0x00886345, 0x006e533b, 0x005b4635, 0x0044352a, 0x003c342d,
- 0x003c3d3a, 0x003c3f3d, 0x00474b4a, 0x00535453, 0x0053534f, 0x00584945, 0x00523d39, 0x0047312f, 0x00331e1f, 0x00230e0f, 0x00170204, 0x00271213, 0x003b2924, 0x003f2e23, 0x00463525, 0x00443522,
- 0x002b232d, 0x00131218, 0x00060d0f, 0x00040d12, 0x00050b1d, 0x000c0c2b, 0x000b062f, 0x000c0937, 0x000e1737, 0x000b1c33, 0x00011634, 0x0000144a, 0x0011204d, 0x002b274f, 0x00281634, 0x0035152b,
- 0x00745059, 0x00a9888d, 0x00e0c7c7, 0x00e6d9d4, 0x00d9d4cf, 0x00cbc6c3, 0x00a59f9c, 0x00807771, 0x006c6252, 0x00726552, 0x0072624f, 0x0072624f, 0x006c5f50, 0x0082766a, 0x00dbcfc9, 0x00faf6f1,
- 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00f6f6f6, 0x00f4f4f4, 0x00fcfcfc, 0x00fbfbfb, 0x00fdfdfd, 0x00fdfefc, 0x00f6f7f5, 0x00c8c9c9, 0x00acacaf, 0x00a4a4a9, 0x00a3a2a7, 0x009a979c, 0x00979399,
- 0x008a8b90, 0x0087868f, 0x0087848e, 0x0085848b, 0x00817f88, 0x007e7d7f, 0x00757373, 0x00686567, 0x00525151, 0x003e3e41, 0x002f3034, 0x0027292d, 0x00202227, 0x0024262b, 0x003c3d42, 0x004f4f56,
- 0x00525559, 0x00535659, 0x00454649, 0x00333233, 0x002a2525, 0x002f2826, 0x0039302c, 0x003f352f, 0x003f3328, 0x00413429, 0x004f433c, 0x005e5551, 0x006e6860, 0x007d776e, 0x00878277, 0x00838071,
- 0x007c7364, 0x00736658, 0x00695a4a, 0x00675443, 0x006d5848, 0x00726b5d, 0x007f7b6d, 0x008b8071, 0x009b7766, 0x009a6c5c, 0x00935c4c, 0x008c5242, 0x00774a39, 0x00684636, 0x00523e2c, 0x00403522,
- 0x0028271f, 0x00212018, 0x001b1913, 0x001a1815, 0x00181817, 0x00191a1a, 0x001b1b1b, 0x00242523, 0x003a3a3d, 0x00575758, 0x007b7878, 0x008a8281, 0x00948b88, 0x009e918f, 0x009d8f8c, 0x009a8b85,
- 0x00968e85, 0x009b958c, 0x00989690, 0x0090948c, 0x00757e7a, 0x006c6c76, 0x00555566, 0x00414150, 0x0033373b, 0x002e3631, 0x0027342d, 0x00253730, 0x0024404f, 0x002a4a76, 0x0032579a, 0x00335ab1,
- 0x00325aa7, 0x002c58a8, 0x00305fb1, 0x003565b5, 0x0032589a, 0x00415c8a, 0x009aa9c7, 0x00d9dce9, 0x00e4e7e1, 0x00e7ede5, 0x00e9f2f0, 0x00e4f7fe, 0x00faeedd, 0x00e4b2b2, 0x007d6b8b, 0x002b76cb,
- 0x006a79cc, 0x00acafcc, 0x00e0e1ec, 0x00d2e2f6, 0x00deefe3, 0x00e3eaf0, 0x00e9f4f7, 0x00e2f8f4, 0x00c6eadd, 0x00adcbc4, 0x00879a9d, 0x00636573, 0x003a2c43, 0x0037263b, 0x002d1f2b, 0x00201b1e,
- 0x00161209, 0x0019130c, 0x001e1510, 0x00201511, 0x00231813, 0x00201612, 0x001f1815, 0x007a7573, 0x00f6fcf7, 0x00f4fff9, 0x00f7fefc, 0x00f6fcfc, 0x00fafaf5, 0x00c5b9b2, 0x00614740, 0x006a463b,
- 0x009a6d57, 0x00b28167, 0x00bc8c6c, 0x00b4845f, 0x00a4784d, 0x009f7150, 0x0097684d, 0x0097694f, 0x00714e38, 0x00382518, 0x00130c0b, 0x000b1117, 0x00030f17, 0x00090f12, 0x00100d0b, 0x00140a02,
- 0x000b0d10, 0x000e0e12, 0x00100e12, 0x00120e12, 0x00120f0b, 0x00101109, 0x00090d0c, 0x0009121a, 0x0011244c, 0x00162c64, 0x00142868, 0x001a2a69, 0x001d2d6b, 0x001f2f6d, 0x001d2c6c, 0x001b286e,
- 0x0015256a, 0x0013226c, 0x00152571, 0x00172772, 0x00172774, 0x00122a7a, 0x00193283, 0x00253584, 0x002d3186, 0x002a3591, 0x00293aa0, 0x00213da7, 0x001a3692, 0x0028377d, 0x0058588b, 0x008b809f,
- 0x00c59678, 0x00ce9a82, 0x00cf9b81, 0x00d29983, 0x00d89a83, 0x00d99b7e, 0x00db9f7f, 0x00dda081, 0x00d39e78, 0x00d59a77, 0x00d29c75, 0x00d69c6f, 0x00ce9e82, 0x00cca08a, 0x00c89e8e, 0x00c79d8e,
- 0x00d09b87, 0x00d39b84, 0x00ca957b, 0x00bd9074, 0x00b28f74, 0x00c2948d, 0x00b07e80, 0x00875956, 0x005b3c2c, 0x004b3325, 0x00432e28, 0x00392c2d, 0x00272239, 0x001d1b44, 0x0018184f, 0x0019175c,
- 0x000b2271, 0x000e246c, 0x000b2466, 0x000d225e, 0x000e1e5e, 0x00101e64, 0x00192470, 0x00222978, 0x002f3780, 0x0034367c, 0x00191d49, 0x00131111, 0x00111111, 0x00101012, 0x0010100f, 0x00131210,
- 0x000f1311, 0x00070808, 0x006b6b6b, 0x00eaeaec, 0x00fdfcfb, 0x00fefefc, 0x00f7fdf5, 0x00fdffff, 0x00c0c8b7, 0x00586636, 0x0035470e, 0x004c603a, 0x005c6f93, 0x004e67a2, 0x00385590, 0x001f456b,
- 0x00201a29, 0x001c141a, 0x00382d28, 0x00564338, 0x006d4e3f, 0x007a574b, 0x00987165, 0x00b48f7e, 0x00b69875, 0x00b69869, 0x00baa475, 0x00aca582, 0x0095986c, 0x008a9666, 0x00869a63, 0x007f9b5e,
- 0x007a9d58, 0x007d9c57, 0x00819c58, 0x00849a5a, 0x00869959, 0x00829958, 0x007f9856, 0x007e9753, 0x00799452, 0x007a9552, 0x007c9552, 0x007b9350, 0x0078924f, 0x0077924f, 0x0077924f, 0x0076924f,
- 0x0077914c, 0x0078934d, 0x0077924c, 0x0077924c, 0x0078934d, 0x0076914a, 0x00759148, 0x0077934a, 0x0076914a, 0x0076914a, 0x00768e4a, 0x00788d49, 0x0079924a, 0x007a9451, 0x0076915d, 0x00718b6e,
- 0x005f7a7c, 0x00546b80, 0x003c5471, 0x00283e5d, 0x0021394c, 0x00354c73, 0x004a68a1, 0x004f73c5, 0x00427fcd, 0x00428ac9, 0x003f8bc5, 0x004087ce, 0x005280e5, 0x005e81cb, 0x00a5bfe4, 0x00e3f7ed,
- 0x00f9fcf8, 0x00f7faf6, 0x00fcfdf8, 0x00fcfef5, 0x00bbc1b1, 0x00535a46, 0x00424931, 0x00424a2e, 0x00414e29, 0x00434d27, 0x00404e29, 0x003b4d2a, 0x00374929, 0x00324427, 0x00293921, 0x0023311e,
- 0x00142516, 0x00122116, 0x000f1d15, 0x000f1d19, 0x000e1d1d, 0x000e2118, 0x000b2015, 0x000c201a, 0x000b1e19, 0x000e1d1a, 0x000f1b17, 0x00101a14, 0x001a2216, 0x002b3222, 0x004c523e, 0x007c8268,
- 0x00d4c486, 0x00dfcd90, 0x00dac085, 0x00e1c188, 0x00eeca94, 0x00eac698, 0x00ad8b67, 0x00715136, 0x00655044, 0x00796765, 0x00806f6d, 0x007f6b6b, 0x00826668, 0x008e6d6c, 0x00b18a7d, 0x00c69d85,
- 0x00c49f6b, 0x00d0ac77, 0x00f1d59c, 0x00d5be8c, 0x0061512a, 0x001e1a08, 0x000d1107, 0x000e1108, 0x000e1305, 0x00111709, 0x00121a0f, 0x00121d12, 0x00122015, 0x00112118, 0x00112118, 0x00102215,
- 0x000f2316, 0x00112416, 0x00122317, 0x00112117, 0x00101e16, 0x000e1b15, 0x000c1a12, 0x000b1810, 0x0009140f, 0x00060f0e, 0x00070d0d, 0x00060c0a, 0x00050a09, 0x00050a08, 0x00060907, 0x00040907,
- 0x00030605, 0x00040505, 0x00040404, 0x00030303, 0x00030203, 0x00030202, 0x00020202, 0x00010302, 0x00000101, 0x00030403, 0x00010202, 0x00000100, 0x00010101, 0x00000000, 0x000c0b0b, 0x00171616,
- 0x001f1f10, 0x00201f11, 0x00221f15, 0x00221d19, 0x00241d1f, 0x001f181c, 0x0010090b, 0x001c1211, 0x00251d17, 0x002a221a, 0x003c3432, 0x00564c5e, 0x00747486, 0x008f93af, 0x00abb6dc, 0x00a6b5e9,
- 0x006371ba, 0x0042509b, 0x004d59a0, 0x007681bf, 0x008993be, 0x00828eb9, 0x007c84b2, 0x007f7fbd, 0x008785be, 0x008082b3, 0x00727aab, 0x00687ab4, 0x005a67b4, 0x007a85ba, 0x00d9e1f3, 0x00fdfeec,
- 0x00fafdf5, 0x00f9fcfa, 0x00f7fbfe, 0x00dae3fc, 0x006374be, 0x00566bca, 0x002439a9, 0x003f58cb, 0x003c5cbe, 0x004265bd, 0x005d7dd5, 0x00738fef, 0x00546ecf, 0x00415bbc, 0x004c67c7, 0x005d79d6,
- 0x00637eda, 0x00627ed9, 0x00708ae6, 0x006a85de, 0x006684de, 0x005f7dd4, 0x005673c9, 0x00617ed4, 0x006183da, 0x00587ad2, 0x005d80d8, 0x005b7ed4, 0x005e80d3, 0x006786d6, 0x006d8ad8, 0x005f7ac9,
- 0x005773cf, 0x005361cb, 0x004e5fca, 0x002646a9, 0x001f3e8f, 0x003d49a9, 0x004853bf, 0x003450c2, 0x003b4a9b, 0x00602f6c, 0x008e3047, 0x00bd492b, 0x009f5424, 0x0093683c, 0x00271a00, 0x0010170f,
- 0x001f2f58, 0x00253472, 0x0012226c, 0x000e1e67, 0x0010265f, 0x00132866, 0x00182a67, 0x00414d83, 0x00373e59, 0x00323340, 0x00645e63, 0x00736b66, 0x00746a5f, 0x00655f56, 0x005f5851, 0x00544c47,
- 0x004f4a3d, 0x0062645a, 0x006d7170, 0x00596367, 0x002c333c, 0x001e202b, 0x00212332, 0x0022253b, 0x005c7095, 0x005f7bac, 0x001b3766, 0x0014274e, 0x000b1f4f, 0x000e255e, 0x00092262, 0x000a2265,
- 0x0009215a, 0x00263869, 0x002c3d60, 0x000e192e, 0x0001040f, 0x00382414, 0x00896749, 0x00785037, 0x0047333a, 0x00373e5d, 0x003c557b, 0x008ca5c9, 0x00f2f2ef, 0x00f5efec, 0x00f0efef, 0x00e5eff7,
- 0x00f1ece9, 0x00f0c0b0, 0x00b86647, 0x00bf502d, 0x00da8c75, 0x00f4d2cf, 0x00efeaf5, 0x00d4eaf7, 0x00e3f1ee, 0x00f1ebd7, 0x00f3f0da, 0x00eef4f0, 0x00eff9f3, 0x00e2f3ea, 0x00e5f4ed, 0x00eaf4f1,
- 0x00f0f0f3, 0x00f2eef2, 0x00f3eff4, 0x00e9ecef, 0x00e2f0ee, 0x00ecf3ef, 0x00f3f4f1, 0x00f2f5f3, 0x00eeedef, 0x00e2dad5, 0x0083726a, 0x00806456, 0x008e7163, 0x0088716b, 0x00958588, 0x00a49ea8,
- 0x00ebeaea, 0x00c7c8c6, 0x00eceeee, 0x00eff1f3, 0x00e8e9eb, 0x00e6e8e6, 0x00eaecea, 0x00dee0e1, 0x00abaab3, 0x00a3a3b0, 0x00cacad8, 0x00d2d3e1, 0x00cdccdd, 0x00c5c5d7, 0x00bdbed0, 0x00b9bad0,
- 0x00b1afc4, 0x00b0afc6, 0x00b3b2cb, 0x00bdbbd4, 0x00c6c4de, 0x00a2a2ba, 0x002e3047, 0x00080822, 0x001b1933, 0x004b4b62, 0x009292a8, 0x00aaaabd, 0x00a9a8b7, 0x00b1afba, 0x00c7c5cc, 0x00d2d1d4,
- 0x00cfdce9, 0x00a6b0c9, 0x00393e60, 0x0013173c, 0x001a1b3a, 0x001b1c3d, 0x001c1a43, 0x00161444, 0x000c0b2c, 0x00030911, 0x000a0c0b, 0x00080600, 0x000f0d0e, 0x00030305, 0x00444447, 0x00a8aaab,
- 0x00c9c9c7, 0x00dee0db, 0x00eeefea, 0x00e8e6e8, 0x00f1ecf3, 0x00b5bef0, 0x0040549b, 0x00304b8f, 0x00a9a9c8, 0x00eae6e6, 0x00eaeade, 0x00d4dcce, 0x0062796e, 0x0018291d, 0x001a281d, 0x0016211b,
- 0x000e0e10, 0x00151616, 0x00171916, 0x001b1e1b, 0x00212623, 0x00242a27, 0x00222a24, 0x001d271e, 0x001a241c, 0x0019231b, 0x0019231b, 0x001a231c, 0x001a241b, 0x001a231b, 0x001a221b, 0x0019221a,
- 0x001c241b, 0x00192219, 0x0018221a, 0x001a241b, 0x001a221a, 0x001a231a, 0x0019221a, 0x00162118, 0x001d231d, 0x00212923, 0x00888e89, 0x00ecf1ec, 0x00fbfffc, 0x00fdfefe, 0x00fcfcfd, 0x00fdfdff,
- 0x00a9b0b0, 0x00364b47, 0x001d3d38, 0x00194c42, 0x001f5d51, 0x00246457, 0x002a6559, 0x002f6259, 0x0037645a, 0x003c665b, 0x003f6459, 0x003c5e50, 0x00394c40, 0x00383e33, 0x002f2820, 0x002c1810,
- 0x0036150d, 0x003b1b10, 0x00402013, 0x00422514, 0x00472c17, 0x00522816, 0x005c2515, 0x00622414, 0x006b220f, 0x00711f07, 0x00761e06, 0x007a1d06, 0x006f1c04, 0x00611c05, 0x00531806, 0x0047160b,
- 0x0029180e, 0x0025180b, 0x00291b0f, 0x00292214, 0x002c271b, 0x0027241a, 0x00201c14, 0x0019140d, 0x00110b07, 0x000d0704, 0x000e0604, 0x00100a08, 0x00141211, 0x00151b16, 0x00181f19, 0x00192019,
- 0x00191c15, 0x0019190f, 0x001b180f, 0x001e1d11, 0x00272718, 0x002d2f15, 0x00393b1c, 0x00444727, 0x00545738, 0x0062654a, 0x006e7058, 0x00727261, 0x0077756d, 0x00787372, 0x00767073, 0x00756e76,
- 0x00696b6c, 0x0068696a, 0x0067696b, 0x00676867, 0x006b6b63, 0x00797566, 0x008d816b, 0x00867055, 0x0093744d, 0x00977348, 0x00916740, 0x0087603f, 0x006d4f35, 0x005c4332, 0x00473629, 0x003a342a,
- 0x003f3c38, 0x003f3d3a, 0x004c4b49, 0x00565551, 0x005b5752, 0x00624d48, 0x005c403b, 0x004c302c, 0x003f2423, 0x00321919, 0x001e0807, 0x00281612, 0x0034241e, 0x002d2015, 0x002c2012, 0x002c2212,
- 0x00171127, 0x0009081b, 0x00050b1d, 0x00050d20, 0x00040b28, 0x00060b2c, 0x0006062e, 0x00070830, 0x00080f2e, 0x00081128, 0x00030f2b, 0x0000113f, 0x0007133c, 0x001b1a40, 0x001d1432, 0x00190721,
- 0x003f2434, 0x00745a65, 0x00c8b0b5, 0x00d6c3c1, 0x00d8cac4, 0x00d8cfc9, 0x00c7c1bd, 0x00a69c97, 0x007e7166, 0x006c6050, 0x006f6251, 0x006d604e, 0x00655a4a, 0x00776c5f, 0x00d2c8c0, 0x00f8f6ee,
- 0x00fefefe, 0x00fdfdfd, 0x00fdfdfd, 0x00f7f7f7, 0x00f3f3f3, 0x00fafafa, 0x00fbfbfb, 0x00fbfbfb, 0x00fefbfd, 0x00f8f8f9, 0x00c7c9ca, 0x009fa2a4, 0x009a9ba0, 0x0094959b, 0x00888a92, 0x007f838c,
- 0x00777b86, 0x00737683, 0x00727683, 0x00757884, 0x00767984, 0x0078797c, 0x00716f6e, 0x00655f60, 0x00534f4c, 0x00423d3b, 0x00342f2d, 0x002f2a28, 0x00282324, 0x002b2728, 0x003c3738, 0x004a4346,
- 0x004d484e, 0x004c494d, 0x003b383a, 0x00282423, 0x00221b17, 0x002e251e, 0x003f352b, 0x00483e33, 0x00483d30, 0x00433a2c, 0x00453f35, 0x004a4743, 0x005f5c55, 0x006e6a62, 0x007c776d, 0x007b766a,
- 0x00786f61, 0x006c5f52, 0x005f5041, 0x005a4637, 0x00654c3f, 0x006a5d52, 0x00797065, 0x00887b6e, 0x00957a6a, 0x00936f5f, 0x008a5e4c, 0x00844f3f, 0x00704131, 0x0060392a, 0x004a2f21, 0x003a2918,
- 0x00211f16, 0x001e1b14, 0x001c1914, 0x001c1b19, 0x001b1b1b, 0x001a1c1c, 0x001a1b1b, 0x00212322, 0x0039393a, 0x00565654, 0x0075706f, 0x00867a7a, 0x008e8281, 0x00978a88, 0x009c8f8c, 0x00a39791,
- 0x00a5a097, 0x00adaba4, 0x00aeaca8, 0x00a2a7a2, 0x008e9090, 0x00797c80, 0x005c5e67, 0x00444454, 0x00363543, 0x002d3034, 0x0028312e, 0x00233427, 0x00274046, 0x00345175, 0x004265a5, 0x004167be,
- 0x003863b3, 0x002d58ac, 0x002f5bae, 0x00335fae, 0x002a4c8a, 0x0037527c, 0x0093a5be, 0x00d7e0e9, 0x00e4e6e5, 0x00eceeeb, 0x00ebf1f0, 0x00e0f5f7, 0x00fcefe6, 0x00dfbec3, 0x00796d91, 0x00376cb9,
- 0x005a76c4, 0x009baacd, 0x00dadeed, 0x00d5dee7, 0x00e1ece0, 0x00eae9ee, 0x00eae9f1, 0x00e0edef, 0x00d8f8f0, 0x00ceece8, 0x00b1c9ca, 0x00818e96, 0x00454254, 0x002e2537, 0x001d1220, 0x0018101c,
- 0x00140f0b, 0x0019130e, 0x00211a15, 0x00231b15, 0x00261e18, 0x00231b16, 0x001c1612, 0x0075706c, 0x00f8faf7, 0x00f9fffa, 0x00f9fdfc, 0x00f7fcfd, 0x00fafbfb, 0x00c7c0bc, 0x005e4a44, 0x0065473c,
- 0x00956657, 0x00ac7863, 0x00b68367, 0x00ad7a57, 0x00a07148, 0x00966545, 0x0094644c, 0x008d644d, 0x004c3423, 0x00160d03, 0x000f0e0d, 0x000a1013, 0x00090f17, 0x000c0c11, 0x00110e10, 0x000e0a08,
- 0x000c1015, 0x000d0e13, 0x000f0f12, 0x00110e10, 0x00140f0a, 0x0012100a, 0x000f1110, 0x000e151d, 0x001a2754, 0x00192b65, 0x000d1e60, 0x00071751, 0x00071553, 0x000a1a57, 0x00142565, 0x001f2d6f,
- 0x002a3c80, 0x002a3a83, 0x002c3b87, 0x002c3d8a, 0x002d3d8f, 0x00253d93, 0x00233c93, 0x00263990, 0x002d358f, 0x00293693, 0x00273798, 0x001b3598, 0x0017338e, 0x00213584, 0x00344185, 0x004f548c,
- 0x00a18473, 0x00ca9b87, 0x00d49884, 0x00de9986, 0x00dfa192, 0x00dca187, 0x00e1a481, 0x00e5a374, 0x00df9d79, 0x00d59b87, 0x00d4a089, 0x00d6ad79, 0x00d4ac85, 0x00d0ae89, 0x00cfa98d, 0x00d2a68d,
- 0x00daa48d, 0x00d49b86, 0x00cb9381, 0x00bf907a, 0x00b48d7c, 0x00bc8c7d, 0x00c9958b, 0x00bc8e83, 0x00906c67, 0x00614949, 0x00382a32, 0x00272436, 0x001c1c4b, 0x00161755, 0x00161761, 0x001e1f73,
- 0x000b2162, 0x000e1e5b, 0x000c1959, 0x00111b59, 0x00162367, 0x00142570, 0x001b2f7c, 0x001d3181, 0x004053a0, 0x004759a3, 0x002a3468, 0x00131515, 0x00121128, 0x000e1228, 0x000c0e1d, 0x000f1717,
- 0x000f150c, 0x000b0d11, 0x00817e8c, 0x00efeff5, 0x00fbfcf7, 0x00fbfff7, 0x00fafef7, 0x00fefefb, 0x00b5bab0, 0x00435036, 0x002d4229, 0x0046604f, 0x00647b97, 0x005e7293, 0x00384668, 0x00182637,
- 0x00190f14, 0x00211311, 0x004f3c31, 0x007d6354, 0x00ad8873, 0x00c59e88, 0x00d4ab96, 0x00deb7a0, 0x00c5a384, 0x00ac8d69, 0x00b29977, 0x00aca084, 0x0098966d, 0x008b9363, 0x00899c63, 0x00829e60,
- 0x0080a162, 0x0081a062, 0x00849e62, 0x00869d5f, 0x008a9c5e, 0x00879d5f, 0x00859c60, 0x00849c5d, 0x00819b5e, 0x00829b5d, 0x0082995b, 0x00809659, 0x007e9659, 0x007c9559, 0x007b9357, 0x00799356,
- 0x00799251, 0x00789251, 0x00799451, 0x00799451, 0x0079934f, 0x0076904a, 0x00748f48, 0x00749048, 0x00748f4a, 0x00728e46, 0x0078924b, 0x00779351, 0x007e9151, 0x00809057, 0x00768353, 0x0066714e,
- 0x00535c51, 0x00585f5d, 0x003c413f, 0x001e1d1e, 0x00241c11, 0x003e3d45, 0x00545b6f, 0x00546283, 0x004c6aa2, 0x004c7eb5, 0x004f87c4, 0x004686c4, 0x005184c3, 0x005f86af, 0x00a7c1d9, 0x00e8f5f0,
- 0x00fbfdfc, 0x00f8fbf8, 0x00fdfefc, 0x00fcfdf7, 0x00c5c9b8, 0x00696e51, 0x005a603b, 0x005a6135, 0x005c6534, 0x005c6234, 0x005a6235, 0x00525d32, 0x004d5830, 0x0045522e, 0x00394728, 0x002f3b21,
- 0x001f2b1c, 0x00152217, 0x00111d16, 0x000d1d1a, 0x000f1e1e, 0x000d2014, 0x000e2114, 0x000a1f18, 0x000c2020, 0x000d1e1c, 0x00111a13, 0x00222415, 0x0065593e, 0x00948662, 0x00beae84, 0x00dfd0a0,
- 0x00ddbf88, 0x00c1a471, 0x00b49268, 0x00c8a782, 0x00cdad99, 0x00ae9589, 0x00806a6d, 0x006d5e69, 0x00877b9a, 0x00706b8d, 0x003a3664, 0x00413d72, 0x00696081, 0x00867b92, 0x0096859b, 0x00aa95a6,
- 0x00baa29a, 0x00c1aa8b, 0x00d7c296, 0x00e1cd97, 0x00b9a578, 0x00696248, 0x002a2d1f, 0x000f140b, 0x000f1e19, 0x000d1c18, 0x000a1c16, 0x000f1d16, 0x00141d12, 0x00171e14, 0x00181e12, 0x00161f11,
- 0x000e2313, 0x00112413, 0x00122413, 0x00112212, 0x00121f15, 0x00121d15, 0x00101c13, 0x000f1a11, 0x000e1414, 0x00081110, 0x00060f0d, 0x00060c09, 0x00060b09, 0x00060a0a, 0x00050907, 0x00020906,
- 0x00020604, 0x00020504, 0x00030504, 0x00020403, 0x00030404, 0x00040303, 0x00040202, 0x00030202, 0x00030304, 0x00010102, 0x00030304, 0x00030202, 0x00030203, 0x00010000, 0x00030102, 0x00070505,
- 0x000a0a00, 0x000b0b00, 0x00100f07, 0x0014120c, 0x001c1815, 0x001d1813, 0x00211811, 0x0035281f, 0x003f3224, 0x00342515, 0x002e1f12, 0x002d1d1a, 0x0032282b, 0x003f3741, 0x00636177, 0x007c7da0,
- 0x00757cb7, 0x005863a2, 0x0045509a, 0x004c58a3, 0x006a76be, 0x007689c2, 0x007788c5, 0x007580ca, 0x007b82bd, 0x00747db0, 0x006670a9, 0x00636ebb, 0x00575ead, 0x007d87b4, 0x00dfe8f5, 0x00f7fcf3,
- 0x00fcfcfa, 0x00fafbfb, 0x00f7fdff, 0x00cdd9f0, 0x006074bd, 0x005970d2, 0x002a42b5, 0x003a53ce, 0x003856be, 0x003f5eba, 0x005e7dd4, 0x006682df, 0x00546dcc, 0x003f59b8, 0x004d67c6, 0x005c76d6,
- 0x00637edb, 0x006682de, 0x00617cd9, 0x005f7ad7, 0x005d7bd8, 0x005574cc, 0x004f6dc3, 0x005977ce, 0x005d7cd4, 0x005677ce, 0x005d7ed5, 0x00597ad0, 0x005f7dd3, 0x006480d5, 0x005974c9, 0x005671c6,
- 0x004661c6, 0x004056bf, 0x001c319d, 0x00153297, 0x002744a1, 0x003046a8, 0x00394bb5, 0x00334ab5, 0x003a3e8d, 0x004f2a69, 0x00772946, 0x00bb4325, 0x00bf6e43, 0x00ad794f, 0x00412706, 0x0029200e,
- 0x004e5364, 0x00424972, 0x00252d6a, 0x00182268, 0x0013256c, 0x000c2166, 0x001a2f70, 0x001c316b, 0x00334165, 0x002e3649, 0x00494950, 0x00524e48, 0x004b4439, 0x0034312b, 0x00211f1f, 0x0019181d,
- 0x00231f18, 0x003b3c39, 0x00515257, 0x00414651, 0x00252a3b, 0x00181e2f, 0x000f1729, 0x00162139, 0x007c94c1, 0x007d9dd2, 0x005779af, 0x00415f87, 0x0029467d, 0x001d3d7d, 0x001b3d83, 0x00284993,
- 0x003b5492, 0x0051618e, 0x003f4763, 0x0036353c, 0x001b110a, 0x003f250e, 0x007f5e42, 0x00704e3a, 0x0039252f, 0x003a3c51, 0x00475776, 0x00a7b8cf, 0x00f4f4fa, 0x00f3f2ef, 0x00f1f2f3, 0x00edf4f4,
- 0x00e9f1f7, 0x00f7f2e6, 0x00e8b29a, 0x00bf5f3d, 0x00be4d36, 0x00d5887b, 0x00f3d8d3, 0x00e6ece5, 0x00e1efec, 0x00edecdf, 0x00efeadf, 0x00eff2ef, 0x00eef6f3, 0x00e4eee8, 0x00e9f3ee, 0x00ecf2f2,
- 0x00ecedef, 0x00efeff1, 0x00f1f1f3, 0x00eceff3, 0x00e2eff0, 0x00e9e8e8, 0x00efeeec, 0x00e5f5f1, 0x00e4f0ed, 0x00e6d7d2, 0x00936965, 0x0091534b, 0x00925f53, 0x008a6961, 0x00978582, 0x00aba3a7,
- 0x00e8e8e8, 0x00cbcccb, 0x00f7f9f8, 0x00fafcfc, 0x00fafbfb, 0x00f7f8f7, 0x00fbfcfb, 0x00f7f8f9, 0x00e7e7e6, 0x00e6e6e6, 0x00eaebea, 0x00ececec, 0x00e5e5e8, 0x00dcdbe0, 0x00d1d0d7, 0x00ccccd6,
- 0x00cac6d4, 0x00c6c3d4, 0x00c1bfd1, 0x00c5c1d5, 0x00cbc7db, 0x009795a7, 0x00262435, 0x002d2a3b, 0x006c6978, 0x00a4a3b0, 0x00b5b5bf, 0x00b4b4bc, 0x00bab9c1, 0x00c0bec5, 0x00d0ced4, 0x00d7d5dc,
- 0x00e2dfea, 0x00dcd9e6, 0x008b8a94, 0x00302d39, 0x0013121d, 0x0015121e, 0x0013111a, 0x000d0a15, 0x00070310, 0x0003020b, 0x0007060b, 0x00090808, 0x000a0a0a, 0x00040406, 0x00444444, 0x00b4b3b4,
- 0x00d2d5d2, 0x00d8d7d9, 0x00efefed, 0x00efedef, 0x00efeeee, 0x00cdcdf4, 0x005668a9, 0x001d4394, 0x00807ea4, 0x00e1c9c7, 0x00f6ecd5, 0x00e5eed9, 0x00668b83, 0x001b3327, 0x0013291d, 0x000e221e,
- 0x000d0f0e, 0x00121311, 0x00161713, 0x00191c18, 0x00212623, 0x00242b28, 0x00212924, 0x001c251f, 0x001a241d, 0x0018221b, 0x0018211a, 0x0018221a, 0x0019231a, 0x00192219, 0x00192219, 0x0019221a,
- 0x001b231a, 0x001a2319, 0x0019221a, 0x001a241b, 0x001b241b, 0x0019231a, 0x001a241c, 0x0019241c, 0x001c241b, 0x001f261e, 0x007c837e, 0x00e9eeec, 0x00fafcfc, 0x00fcfdfe, 0x00fbfbfc, 0x00ffffff,
- 0x00b1b1ae, 0x00384945, 0x00143832, 0x00144b43, 0x00165d54, 0x0021645b, 0x0027665c, 0x002f625b, 0x00376455, 0x003c6355, 0x003f5f50, 0x00445243, 0x00434337, 0x0044362b, 0x003e221b, 0x003b120d,
- 0x0043110a, 0x0046160d, 0x00471b0f, 0x00462212, 0x00492c18, 0x00522c13, 0x0059290c, 0x005e280c, 0x00692105, 0x006f1d06, 0x00701d06, 0x00711b09, 0x00691a08, 0x00601906, 0x00571505, 0x00501203,
- 0x00391608, 0x00331509, 0x002a150b, 0x00211a10, 0x00161e14, 0x00101c15, 0x00081610, 0x0008110c, 0x00080c08, 0x000e0908, 0x00110908, 0x00160d0c, 0x00141712, 0x00131f15, 0x00122316, 0x00172117,
- 0x001a1d12, 0x001c180f, 0x0018130d, 0x001a1611, 0x001c2017, 0x00242813, 0x002d3215, 0x003c3f22, 0x004a5031, 0x005a5f44, 0x00676b52, 0x006d715c, 0x0075776d, 0x00767674, 0x00727176, 0x00716e7a,
- 0x00626b6c, 0x00656b6c, 0x00686b6d, 0x00686967, 0x006f6b63, 0x008f8878, 0x00a99d85, 0x008d795c, 0x008f744b, 0x0096794d, 0x00936f44, 0x008f6942, 0x00735333, 0x0061452f, 0x00473221, 0x0041352a,
- 0x00433e35, 0x0045403b, 0x00534f4a, 0x005d5a54, 0x00615a55, 0x00684e4a, 0x0064423c, 0x00502f2b, 0x003f231c, 0x00341b15, 0x00251008, 0x0036261b, 0x00514539, 0x0042372b, 0x002b2215, 0x00191206,
- 0x000e0a27, 0x000b0729, 0x000c0b2f, 0x000a0c34, 0x00050d33, 0x00020e33, 0x00030e2e, 0x00070e2f, 0x00090c2a, 0x000c0c28, 0x00080b2a, 0x00030c35, 0x00081035, 0x00111538, 0x00121533, 0x000c0b26,
- 0x00130d1d, 0x003f313f, 0x00998791, 0x00c3adb2, 0x00d2bcbc, 0x00d1c4c1, 0x00cdc8c3, 0x00c2bab4, 0x009d9289, 0x0072675b, 0x00685e50, 0x00615749, 0x00564e42, 0x00625b50, 0x00c1bbb2, 0x00f5f6ed,
- 0x00fefefe, 0x00fefefe, 0x00fcfcfc, 0x00f7f7f7, 0x00f3f3f3, 0x00fafafa, 0x00fcfcfc, 0x00fbfbfb, 0x00fcfbfc, 0x00fcfcfc, 0x00c5c7c7, 0x00929897, 0x008c9194, 0x00848a92, 0x00717a86, 0x0065717f,
- 0x00596675, 0x00576273, 0x00576173, 0x005f6675, 0x00696e7d, 0x0072737a, 0x006d6c6e, 0x00645f61, 0x00554f4a, 0x004b403d, 0x003e322b, 0x00382c23, 0x00332622, 0x00342927, 0x003d3430, 0x00473c3c,
- 0x00493f45, 0x004a4145, 0x003c3434, 0x002f2723, 0x002f2720, 0x003d3529, 0x004d4436, 0x00544c3c, 0x004d4939, 0x00494335, 0x003d3a30, 0x003c3d39, 0x004f4f4b, 0x0062615a, 0x00706e64, 0x00706e63,
- 0x006d6759, 0x00625649, 0x00554436, 0x00503a2c, 0x005d4235, 0x00655147, 0x0075665b, 0x00837466, 0x00897c65, 0x008c755f, 0x0084644f, 0x007f5341, 0x006e4232, 0x005f3729, 0x004a2a1e, 0x003d2318,
- 0x00231f15, 0x00221f16, 0x001e1b16, 0x001e1d1c, 0x001b1d1d, 0x00191c1d, 0x00191c1c, 0x001e201e, 0x0034342f, 0x00504e49, 0x006b6363, 0x007e6f73, 0x008b7e81, 0x00928789, 0x00979290, 0x00a1a09a,
- 0x00abada3, 0x00b7b8b2, 0x00b9bab5, 0x00b1b2ae, 0x009f9c9a, 0x0081877f, 0x005e6561, 0x00454853, 0x00363148, 0x002c2a3a, 0x002a2e30, 0x00273425, 0x0029413b, 0x00314d68, 0x003d5e98, 0x004365bf,
- 0x003364b1, 0x002e5baf, 0x002a53a7, 0x002b50a1, 0x0020437d, 0x002c486f, 0x00859cb1, 0x00d0dde5, 0x00e0e7e4, 0x00f2f1f3, 0x00ecf0ef, 0x00e2f8ef, 0x00fcf1e8, 0x00d9c6d0, 0x00797094, 0x004b63a6,
- 0x004877bc, 0x008fabd5, 0x00cedded, 0x00daddd7, 0x00e6e8da, 0x00ebe6e9, 0x00e9e6ee, 0x00e9ebf2, 0x00e4edf2, 0x00e0edf2, 0x00d7e8ea, 0x00bccccd, 0x00889097, 0x00575962, 0x001f1922, 0x00140c16,
- 0x00181410, 0x00211c17, 0x0029231d, 0x002a241d, 0x002a241e, 0x0027221c, 0x001e1a14, 0x00726d68, 0x00f7f6f0, 0x00fffffb, 0x00fdfcfa, 0x00f9fcfe, 0x00f8fcfd, 0x00c8c8c5, 0x00584d47, 0x00594339,
- 0x008d6251, 0x00aa7563, 0x00b1785f, 0x00a76e52, 0x00986540, 0x00915b41, 0x00916049, 0x0076513e, 0x00271e12, 0x000a0a04, 0x000e1210, 0x000d0f14, 0x00110f14, 0x000f0c11, 0x000f0e0f, 0x000c0f0d,
- 0x00091211, 0x000c1113, 0x000e1013, 0x00120e11, 0x00150e0a, 0x00130e0a, 0x00111013, 0x000b101d, 0x00172453, 0x00263479, 0x00223175, 0x001b2b66, 0x00192863, 0x00182865, 0x00142664, 0x00132363,
- 0x00162c70, 0x001d2e7b, 0x00243486, 0x0027378c, 0x00263992, 0x00243795, 0x00213896, 0x00223797, 0x00213693, 0x00213693, 0x001f328c, 0x001b3089, 0x001c338c, 0x001d358c, 0x00203790, 0x00283e96,
- 0x006e736e, 0x00bd9c91, 0x00dba190, 0x00e99b8c, 0x00dda79c, 0x00d8a791, 0x00dca781, 0x00e6a26a, 0x00e7a17c, 0x00daa5a4, 0x00d3aca4, 0x00d7b583, 0x00cfb781, 0x00d0b380, 0x00cfad7d, 0x00d5a87e,
- 0x00da9d80, 0x00db9c86, 0x00d09385, 0x00c08c81, 0x00b48c82, 0x00bb8a70, 0x00ca9675, 0x00c99c82, 0x00b2958e, 0x00827077, 0x00393445, 0x00191a3e, 0x00111954, 0x00161c64, 0x00111c67, 0x000e176b,
- 0x000e1f45, 0x00151b4d, 0x00171854, 0x0027266b, 0x00303689, 0x002d4196, 0x00274999, 0x001e4697, 0x00305ca6, 0x00426db5, 0x003c568f, 0x00323a46, 0x00343370, 0x002b3165, 0x00121939, 0x000b1a15,
- 0x000c1504, 0x00181922, 0x009793ab, 0x00f1eefa, 0x00f8fef1, 0x00fcfef4, 0x00fdfff6, 0x00fcfaf3, 0x00a2a8a4, 0x003c4950, 0x00314952, 0x004d6a7e, 0x006d8697, 0x006b7780, 0x003e3b3a, 0x0024170d,
- 0x00120706, 0x0020110c, 0x00503b33, 0x007f6357, 0x00a5806b, 0x00bc967d, 0x00cda58a, 0x00dcb59c, 0x00c4a28c, 0x00a98976, 0x00a88d7a, 0x00a99a7f, 0x009c986c, 0x008e955c, 0x008a9b5b, 0x00849f5b,
- 0x0082a166, 0x00829f6a, 0x00849e6a, 0x00869d68, 0x008a9d61, 0x00899d65, 0x00889d66, 0x00879d67, 0x00859d64, 0x00879e65, 0x00869b63, 0x00849962, 0x00859a64, 0x00839963, 0x0081965f, 0x0080965e,
- 0x007b9657, 0x007a9556, 0x00799556, 0x00789454, 0x00769150, 0x00758f4d, 0x0075904b, 0x0075914a, 0x0075914a, 0x0075904a, 0x0074914a, 0x00728f52, 0x007f8c54, 0x00848b5b, 0x006a6a42, 0x00494326,
- 0x00423d2c, 0x00564a41, 0x004d3c2c, 0x00462919, 0x005c3619, 0x00714f38, 0x00705a44, 0x005f503e, 0x0044435c, 0x003e4e85, 0x003e5da0, 0x003a67a4, 0x00477985, 0x00618587, 0x00aac2ca, 0x00f0f3fd,
- 0x00fafefc, 0x00fbfefe, 0x00fcfdfc, 0x00fdfdfb, 0x00cbcdb7, 0x007c8057, 0x006e743b, 0x00707634, 0x006e7735, 0x0071753b, 0x0071733c, 0x006b6f37, 0x00616533, 0x005a6032, 0x004a542b, 0x003e4826,
- 0x0026321b, 0x00192517, 0x000e1d15, 0x000f1f1c, 0x000d1d1e, 0x000f1f13, 0x000f2212, 0x000a1f16, 0x000a2322, 0x0010201e, 0x00111308, 0x00453a21, 0x00c4a577, 0x00f0cd92, 0x00f6d18d, 0x00eac67f,
- 0x00bd966f, 0x009d785b, 0x00997665, 0x009a7a75, 0x00715d6e, 0x00675c79, 0x00635f8a, 0x00696aa0, 0x007f86c9, 0x00717ec4, 0x004252a4, 0x00434dba, 0x005564a4, 0x006c78ae, 0x00919bcf, 0x00a7aaea,
- 0x00a19cca, 0x00ada4ad, 0x00c1b59e, 0x00d0bd8f, 0x00e0cc9f, 0x00d7ceb3, 0x00878d7b, 0x00354236, 0x0006221c, 0x00031b19, 0x000a231c, 0x000a1a11, 0x00191e10, 0x001f2112, 0x001b1a0d, 0x001d1f12,
- 0x000f2410, 0x00122413, 0x00142412, 0x00132110, 0x00131e11, 0x00121c11, 0x00101a10, 0x000e170f, 0x000d1411, 0x0008110f, 0x00060f0d, 0x00060d09, 0x00060c09, 0x00060a0a, 0x00040808, 0x00020906,
- 0x00000705, 0x00010604, 0x00010605, 0x00010604, 0x00020504, 0x00030404, 0x00040303, 0x00040203, 0x00020102, 0x00020102, 0x00020102, 0x00030203, 0x00030102, 0x00040203, 0x00020101, 0x00030102,
- 0x00010400, 0x00010500, 0x00020803, 0x00040a04, 0x000a0c06, 0x00111006, 0x00251e10, 0x00403424, 0x0051402a, 0x00503923, 0x004c341e, 0x00452e19, 0x00372416, 0x002f1f17, 0x002e2225, 0x00322835,
- 0x00373b5c, 0x003e4477, 0x003e468a, 0x003e499a, 0x004b57b6, 0x005268b4, 0x00627ac3, 0x006d7fd9, 0x007083bb, 0x006c7cb1, 0x005b66aa, 0x00595ec4, 0x005458a8, 0x007d89ad, 0x00ddebf4, 0x00f3feff,
- 0x00fbfcfa, 0x00fbfcfc, 0x00f6feff, 0x00bccddf, 0x006177bd, 0x00566fd2, 0x003f59d0, 0x00324bcd, 0x003e5bc7, 0x003351ad, 0x005a78cc, 0x006784dd, 0x00546fc9, 0x003753ad, 0x004864bf, 0x004e67c5,
- 0x005978d3, 0x005c7bd6, 0x004f6dca, 0x005471cf, 0x00516fcf, 0x005271c9, 0x004968be, 0x00516fc6, 0x005675cc, 0x005574cb, 0x005675cc, 0x005674cb, 0x005a74ce, 0x005871cd, 0x00465fbc, 0x004059b6,
- 0x00284aaa, 0x002e4cad, 0x003c58bb, 0x003e55bd, 0x003452bc, 0x00304ebb, 0x00223da4, 0x003445a6, 0x00413c82, 0x003a255f, 0x006c3851, 0x00b03d26, 0x00bb6542, 0x00a56842, 0x00603910, 0x0056411f,
- 0x00756c5f, 0x00575264, 0x0044466d, 0x003e4385, 0x002d4394, 0x002b4291, 0x002c4993, 0x00345495, 0x003a5785, 0x00253955, 0x00242c3a, 0x002e2e2d, 0x002a251e, 0x00151717, 0x00040913, 0x0000091a,
- 0x000f0e0b, 0x00231e24, 0x00312d39, 0x002e293b, 0x001e1f34, 0x0010192a, 0x00081525, 0x00273b52, 0x008ba7d0, 0x007898cd, 0x005d85ba, 0x005480b0, 0x004774b1, 0x003f6cb3, 0x003e6bb6, 0x00436cbc,
- 0x004b68a6, 0x0057638a, 0x004b4a58, 0x00635248, 0x00563c19, 0x005e3919, 0x007c553c, 0x006c493a, 0x00342226, 0x0034303d, 0x0068737f, 0x00cad8ea, 0x00ebfafd, 0x00e9f3f4, 0x00ecf7eb, 0x00f0f6e6,
- 0x00ecf4fb, 0x00eff1ef, 0x00f4e9d9, 0x00deac97, 0x00c24e38, 0x00b34932, 0x00eca78a, 0x00f4e3c4, 0x00daecdf, 0x00e5eff2, 0x00eaebf6, 0x00eef2f1, 0x00edf0f2, 0x00e8eaea, 0x00ecefee, 0x00e9eeee,
- 0x00edeff0, 0x00edefef, 0x00ecf0ef, 0x00ebeeed, 0x00e6ece9, 0x00f3e7ea, 0x00eceeed, 0x00dcfdf4, 0x00d9faeb, 0x00f1d8d1, 0x00985250, 0x00a23836, 0x0096483c, 0x00895b4d, 0x008e7a6c, 0x00a59b93,
- 0x00e9eaec, 0x00cecfd0, 0x00fcfbfb, 0x00fffefe, 0x00ffffff, 0x00fdfefc, 0x00fdfdfb, 0x00fcfcfa, 0x00fefcfd, 0x00fffdfd, 0x00fffdfc, 0x00fefdfc, 0x00fdfdfd, 0x00f9f9fb, 0x00f1f1f5, 0x00e9e8ed,
- 0x00eee8f5, 0x00ebe7f4, 0x00ebe7f6, 0x00e8e3f4, 0x00e2ddef, 0x00bcb9ca, 0x007e7b8b, 0x00928e9c, 0x00bebdca, 0x00cccbd5, 0x00c5c4cc, 0x00d3d1d6, 0x00cfcfd2, 0x00cdced0, 0x00d1d2d5, 0x00dfdfe3,
- 0x00e9e6ee, 0x00f1f0f8, 0x00cdcbd3, 0x00696a71, 0x000f0d18, 0x0014141b, 0x0014121a, 0x000f0d16, 0x0007040e, 0x0005060b, 0x0009080e, 0x00050403, 0x00080809, 0x00010201, 0x00444444, 0x00b4b4b5,
- 0x00e0dfdf, 0x00d4d4d5, 0x00e9e6e6, 0x00f3f2f3, 0x00f4f2f4, 0x00d9d9f8, 0x006e77b2, 0x0021408e, 0x00615178, 0x00c19597, 0x00fee5d3, 0x00fef5e8, 0x00859893, 0x00293226, 0x001c281c, 0x00233330,
- 0x002f3130, 0x00121412, 0x00181917, 0x00171a17, 0x001f2420, 0x00252c27, 0x00212924, 0x001b231d, 0x001a231f, 0x0018221c, 0x0018211b, 0x0018221a, 0x0019221a, 0x00192219, 0x00192219, 0x001a231a,
- 0x001c231d, 0x001b221b, 0x001d231b, 0x001b231b, 0x001b241c, 0x00182219, 0x001b261c, 0x001b251b, 0x001e251e, 0x00171f19, 0x00747a76, 0x00e8ece9, 0x00fdfefe, 0x00fdfdfd, 0x00fafcfb, 0x00fcfffd,
- 0x00bcb9bc, 0x003e4b4a, 0x00142f2b, 0x00124239, 0x001e5950, 0x00276158, 0x002e6357, 0x00366158, 0x003c5d52, 0x00385c4c, 0x00405345, 0x00474236, 0x004a352e, 0x00482823, 0x00481a18, 0x00450e0c,
- 0x004d0f0c, 0x004e150e, 0x004e1a0e, 0x004e2011, 0x00522a17, 0x005a2a12, 0x005e270c, 0x0061250c, 0x00682008, 0x00671d05, 0x00681a04, 0x006a1a06, 0x00651806, 0x00601706, 0x00591505, 0x00551203,
- 0x0044170d, 0x0039150a, 0x002f1009, 0x001c0e06, 0x000f1008, 0x00071009, 0x00060f0b, 0x00050d0b, 0x000b0c0a, 0x000e0c0a, 0x00160d0d, 0x001a1211, 0x00191a13, 0x00152115, 0x00152215, 0x00172114,
- 0x00201d18, 0x001c1811, 0x0019120e, 0x0014130f, 0x00151914, 0x00171d0d, 0x00222510, 0x002c3119, 0x0041432f, 0x0052553f, 0x00626550, 0x006b6d5b, 0x0074756b, 0x00747571, 0x006f6f71, 0x006d6c71,
- 0x00666c6c, 0x00636767, 0x00666a6b, 0x00656866, 0x0074716b, 0x00a59f95, 0x00cbc0b2, 0x00a99784, 0x00947a60, 0x00907758, 0x00886a4a, 0x00836243, 0x00715438, 0x00654d37, 0x00422f20, 0x00483d34,
- 0x00534e48, 0x004e4946, 0x0055534e, 0x005e5d58, 0x00635f5d, 0x00664e4e, 0x0060413e, 0x004b2c2b, 0x00351a17, 0x002a130e, 0x0026120a, 0x003f2f25, 0x00574c42, 0x0051483d, 0x00413a2e, 0x00363428,
- 0x001f1a32, 0x00100e25, 0x000e0c29, 0x00080b29, 0x000a1132, 0x00091333, 0x00071032, 0x000a1031, 0x000b0e2d, 0x000f102a, 0x000b0c2e, 0x00030b2f, 0x00070e33, 0x000f1335, 0x000e1130, 0x000a0825,
- 0x000b071d, 0x00110b19, 0x0050424c, 0x009c8b91, 0x00c7b1b2, 0x00c7bfbd, 0x00c9c8c5, 0x00d1cec7, 0x00bfb4b0, 0x00887d75, 0x00544a41, 0x00494035, 0x003e392f, 0x00444238, 0x00aaa8a0, 0x00f3f4ed,
- 0x00fefefe, 0x00fcfcfc, 0x00fdfdfd, 0x00f6f6f6, 0x00f4f4f4, 0x00f9f9f9, 0x00fefefe, 0x00fcfcfc, 0x00fffefe, 0x00fefdfe, 0x00c3c4c6, 0x0083898b, 0x007d848a, 0x00707882, 0x005b6673, 0x00485463,
- 0x003e485c, 0x00394354, 0x003b4454, 0x00484c5b, 0x005c5f6c, 0x0067696f, 0x0067686a, 0x00625f60, 0x00595050, 0x004c423f, 0x0041362f, 0x003c3228, 0x00382c26, 0x00382e2a, 0x003c3530, 0x00433d38,
- 0x00463e44, 0x00453c40, 0x003f3636, 0x003b332f, 0x00443f36, 0x00524f42, 0x005f5c4e, 0x00636050, 0x00615c50, 0x00564f44, 0x00403b34, 0x00393735, 0x0043433e, 0x00575850, 0x006b6c60, 0x006b6a5d,
- 0x00696256, 0x005e5245, 0x00534333, 0x004e3929, 0x00593f30, 0x00614d41, 0x00716155, 0x007c7061, 0x00897b66, 0x008d7863, 0x008a6955, 0x00835846, 0x00764637, 0x00643b2d, 0x00502b1f, 0x00412317,
- 0x002b231b, 0x0028221b, 0x00221e1a, 0x001d1c1a, 0x001b1d1d, 0x00181c1c, 0x00191d1b, 0x001c201c, 0x002f2c28, 0x00423e38, 0x005c5351, 0x00756669, 0x008b7e81, 0x00918788, 0x00999492, 0x00a2a09c,
- 0x00b0afad, 0x00babcb7, 0x00bfbfbb, 0x00b8b7b6, 0x00a4a09f, 0x00878e84, 0x005d6760, 0x0041464d, 0x00332e47, 0x002a2737, 0x00292a2d, 0x002b3421, 0x0030443c, 0x00324a5c, 0x00385384, 0x00405aaa,
- 0x00406cb6, 0x003d68b8, 0x003158a9, 0x00204598, 0x001a3c7c, 0x00203d6b, 0x007389a4, 0x00c5d3dd, 0x00e4e9ea, 0x00f2f2f0, 0x00edf1ed, 0x00e2f6eb, 0x00fef1ed, 0x00dac9d5, 0x0078739c, 0x004960a5,
- 0x004b75bd, 0x008aa6d0, 0x00cbd7e8, 0x00d5d6cc, 0x00e8e6e1, 0x00ebe6eb, 0x00e8e5ef, 0x00e7e8f2, 0x00e7eef5, 0x00e3eff5, 0x00e5f2f6, 0x00e4f3f6, 0x00dee5ed, 0x00b4b5be, 0x0047454d, 0x00120e17,
- 0x001d1815, 0x00241f1b, 0x002c2822, 0x002f2a25, 0x00312c28, 0x00332e2b, 0x002a2521, 0x00726d68, 0x00f8f2f2, 0x00fffdfa, 0x00fffcfa, 0x00fbfcfc, 0x00fafefc, 0x00cacdc8, 0x00554e48, 0x004a382c,
- 0x0086574c, 0x009f6a57, 0x00a76d56, 0x009c6548, 0x008c5c3b, 0x008e5b45, 0x00825545, 0x00523522, 0x00130f06, 0x000a0d08, 0x000c1012, 0x000b0e12, 0x00100e15, 0x00100d10, 0x000e1011, 0x000b120d,
- 0x000b1112, 0x000c0f13, 0x000f0f14, 0x00120d12, 0x00140e0a, 0x0015110b, 0x00121112, 0x00090e19, 0x00111c45, 0x00283670, 0x00303f86, 0x0024337c, 0x00253481, 0x00293a86, 0x00283a8a, 0x00233386,
- 0x001f2d83, 0x001b2e86, 0x001d2e8a, 0x001c2f8c, 0x001f3191, 0x001e3492, 0x00203592, 0x001f3391, 0x00223592, 0x001d338f, 0x001d318d, 0x001b308a, 0x00223890, 0x0020358c, 0x001c328a, 0x001e318b,
- 0x00524c7e, 0x00988096, 0x00d2a9ad, 0x00e1a796, 0x00dea997, 0x00deaa96, 0x00daa792, 0x00dda98b, 0x00daaf92, 0x00d5b596, 0x00dbb299, 0x00f59f96, 0x00eba18e, 0x00e2a18b, 0x00dfa38b, 0x00dfa388,
- 0x00da9985, 0x00d59883, 0x00ca9282, 0x00bd8f7b, 0x00af8e7e, 0x00b88f71, 0x00c29075, 0x00c29580, 0x00c9a599, 0x00b79c9c, 0x00867280, 0x004e445e, 0x001d1a4b, 0x00151950, 0x00141d5c, 0x000e185f,
- 0x00022972, 0x00052b7d, 0x0011348f, 0x002846a9, 0x00395bc6, 0x003a64cc, 0x003765ca, 0x002c5cbf, 0x00335bb9, 0x003c61b8, 0x00325cad, 0x002e62ab, 0x004162b3, 0x005363a4, 0x002f3656, 0x00101209,
- 0x00121203, 0x002e2a2f, 0x00b2aebe, 0x00f5f4fc, 0x00fcfbed, 0x00fdfcf7, 0x00fefefd, 0x00f6f3f4, 0x00929096, 0x003c4350, 0x00536178, 0x00677e97, 0x0065788f, 0x004f555f, 0x002d262b, 0x001e0c07,
- 0x00180907, 0x0025130d, 0x004a3429, 0x00735649, 0x00926b57, 0x00ab816a, 0x00bc917a, 0x00cea58e, 0x00cba491, 0x00b79683, 0x00b09684, 0x00a49780, 0x009b986f, 0x008d965f, 0x008b9c61, 0x00849d5f,
- 0x00839f6c, 0x00839e6e, 0x00859d6f, 0x00869c69, 0x00899b64, 0x00889c64, 0x00889d68, 0x00899e68, 0x008a9e67, 0x00899e68, 0x00889d68, 0x00879c66, 0x00899d67, 0x00889d65, 0x00859a62, 0x00839961,
- 0x007e975d, 0x007f985d, 0x007f975c, 0x007d9659, 0x007b9557, 0x00799453, 0x0077924f, 0x0076904d, 0x00748f4b, 0x00728e48, 0x0071904b, 0x006b8f4e, 0x007b9058, 0x007b8b58, 0x00555d36, 0x00292b0f,
- 0x00292216, 0x004c4136, 0x00756357, 0x007d6453, 0x00845d46, 0x00835f44, 0x00835f47, 0x00745338, 0x00553d44, 0x003a3352, 0x00272d57, 0x00243c5c, 0x004c6e62, 0x006c8976, 0x00b3c3bb, 0x00f2f3f9,
- 0x00fffdff, 0x00fcfbfb, 0x00fdfdff, 0x00fcfef9, 0x00d4d7c0, 0x008e9266, 0x0084894f, 0x00848a43, 0x00868a42, 0x00848947, 0x0086894a, 0x007f8143, 0x0072753c, 0x00666a38, 0x00585d31, 0x00484f2a,
- 0x00333b23, 0x001d2918, 0x00111e13, 0x000e1e19, 0x00101e20, 0x00101d14, 0x00131f12, 0x000c1e15, 0x000c211e, 0x00102019, 0x00191c10, 0x00655c44, 0x00e1c69e, 0x00e9cba1, 0x00dfc192, 0x00be9f74,
- 0x00937d75, 0x009b8988, 0x00c7b4be, 0x0094899b, 0x00464269, 0x004a4f80, 0x00515897, 0x004c5aa1, 0x005467ba, 0x00546bbd, 0x00455ab5, 0x00435ab4, 0x004659ba, 0x00566cbe, 0x008799e4, 0x00a2b3ef,
- 0x00898fcb, 0x008083b5, 0x00a19dc1, 0x00b0abb9, 0x00c6bdab, 0x00e2d9cc, 0x00f3ecda, 0x00babca4, 0x00637256, 0x0026341c, 0x00142111, 0x00161c17, 0x00151a1c, 0x0013201e, 0x000f201b, 0x000e281b,
- 0x000f2519, 0x0010251b, 0x0012241b, 0x00122217, 0x00122015, 0x00131f14, 0x00121c12, 0x000f1912, 0x000a1210, 0x0006110d, 0x00060f0d, 0x00070d0b, 0x00070c09, 0x00050b09, 0x00040908, 0x00050a08,
- 0x00040809, 0x00040808, 0x00030707, 0x00000705, 0x00010604, 0x00020503, 0x00030402, 0x00040402, 0x00040303, 0x00040203, 0x00030203, 0x00020101, 0x00040204, 0x00030203, 0x00020102, 0x00020103,
- 0x00010504, 0x00000503, 0x00000401, 0x00000401, 0x00010200, 0x000f0c06, 0x002a2217, 0x00403223, 0x00563f2b, 0x005b422b, 0x0055391e, 0x00442e13, 0x0037240c, 0x00322411, 0x002f2216, 0x00211813,
- 0x00171121, 0x00191933, 0x0024284c, 0x002c3160, 0x00343a76, 0x00344175, 0x00485590, 0x005561b2, 0x005f70aa, 0x005e72ac, 0x005462b3, 0x004c52c0, 0x004f54a4, 0x00838eb0, 0x00e4eef7, 0x00f5fffe,
- 0x00fefdfc, 0x00fbfcfb, 0x00f1fbfb, 0x00aabccf, 0x006076bd, 0x00546cce, 0x00546ee3, 0x003851d2, 0x004662cc, 0x00334eaa, 0x00435eb4, 0x006681dd, 0x004b64c1, 0x003853b0, 0x003754b0, 0x004e6ac7,
- 0x00546ecf, 0x004763c1, 0x004b68c6, 0x004561bf, 0x004e6ac9, 0x004967c0, 0x004563bb, 0x004665be, 0x004e6ac4, 0x004b68c2, 0x00516dc8, 0x004d6ac5, 0x004b68c5, 0x004c68c6, 0x00435dbc, 0x003e56b6,
- 0x003556b8, 0x003e5ebe, 0x004c65cc, 0x00465ec4, 0x003b56c3, 0x003d5ec6, 0x003d57be, 0x004354b2, 0x0049448e, 0x0038275f, 0x00763d59, 0x00b73d20, 0x00aa4e24, 0x00a15827, 0x00986331, 0x009b7747,
- 0x00826a5b, 0x004d454e, 0x00434569, 0x003a4a88, 0x003050a7, 0x003152a4, 0x002d4c9a, 0x0033579c, 0x003c5c8f, 0x003d5475, 0x00202b3c, 0x001d1d1f, 0x00110904, 0x000b0707, 0x00010108, 0x00010614,
- 0x0011130b, 0x001d1b1d, 0x00201e27, 0x00171a27, 0x00101629, 0x00061726, 0x0004192b, 0x00476a82, 0x007eacd6, 0x006694c6, 0x00527fbb, 0x004e7bb2, 0x004b78ba, 0x004773b9, 0x00426db3, 0x003d63a7,
- 0x0055689c, 0x00474f6d, 0x00443a45, 0x006c5448, 0x007b5436, 0x00784f32, 0x00724d37, 0x00573a2c, 0x003f2c34, 0x00504b52, 0x00aeb0c0, 0x00e7f4fc, 0x00e3effb, 0x00e7f3f4, 0x00edf3ef, 0x00eff4e7,
- 0x00ebf4f8, 0x00e3f4ec, 0x00eef6e6, 0x00fcf3da, 0x00dd9f87, 0x00af5443, 0x00ab5449, 0x00e8b2a8, 0x00f1e2df, 0x00e6e7ea, 0x00ecf3f9, 0x00eef2f0, 0x00e8e9ea, 0x00eef0ee, 0x00ebedeb, 0x00eff0ef,
- 0x00edf2f0, 0x00ecefee, 0x00ebeced, 0x00e8ebea, 0x00e9edeb, 0x00f3eff1, 0x00e8eced, 0x00dffaf3, 0x00e2f6ec, 0x00f4e0d8, 0x00844a44, 0x00842820, 0x008e342a, 0x007e3f34, 0x00886659, 0x00968b7f,
- 0x00e9ebec, 0x00d1d2d2, 0x00fcfbfb, 0x00fefcfd, 0x00fefdfe, 0x00fcfcfc, 0x00fefefd, 0x00fefefc, 0x00fcfdfd, 0x00fcfdfc, 0x00fbfbf9, 0x00fafaf7, 0x00fcfefc, 0x00fdfefe, 0x00fcfcfe, 0x00fcfcfd,
- 0x00fcfbfe, 0x00fbfbfd, 0x00fbfaff, 0x00f8f5fd, 0x00f7f4fd, 0x00efedf6, 0x00e5e3ec, 0x00eceaef, 0x00e2e2e8, 0x00e1e0e5, 0x00eae7ec, 0x00e4e2e5, 0x00d2d1d3, 0x00c8c8c9, 0x00c9c9ca, 0x00cac9cb,
- 0x00e1e2e4, 0x00f2f2f5, 0x00e1e2e5, 0x009d9c9f, 0x002b2b30, 0x001a181c, 0x0019181b, 0x00100f12, 0x0005070a, 0x0005070a, 0x00090a0c, 0x000c0d0e, 0x000f0f0e, 0x00070708, 0x003f3e3e, 0x00a7a6a6,
- 0x00d5d4d4, 0x00cdcdcd, 0x00e0dfdf, 0x00f1eff0, 0x00f6f7f6, 0x00e5e1fb, 0x008184b9, 0x002e448b, 0x00614268, 0x00a4686a, 0x00fbc1b7, 0x00feeee7, 0x00949897, 0x0025281f, 0x002c2d23, 0x00525c54,
- 0x00525551, 0x00141713, 0x00181a17, 0x001b1e1a, 0x001e221f, 0x00252b26, 0x00212723, 0x001b221f, 0x001a231f, 0x0019221d, 0x0019221b, 0x0019231a, 0x0019221a, 0x0019221a, 0x001a2219, 0x001a231b,
- 0x001b231b, 0x001b221a, 0x001d231c, 0x001a221a, 0x001b251c, 0x00182219, 0x001b251c, 0x001b241b, 0x001e251e, 0x00131913, 0x006b726d, 0x00e4e8e6, 0x00fefffe, 0x00fdfefe, 0x00fafdfc, 0x00fbfffe,
- 0x00c8c1c6, 0x004c5050, 0x00172723, 0x001b3830, 0x00275348, 0x00325c50, 0x00366153, 0x003c5f52, 0x00405648, 0x003a503f, 0x00404334, 0x004f2f26, 0x004c221c, 0x004e1915, 0x004f100e, 0x00500a09,
- 0x00560a09, 0x0056100c, 0x0058160d, 0x00581c0f, 0x005b2615, 0x00622715, 0x00642510, 0x0064230e, 0x00631f09, 0x00601b04, 0x005d1800, 0x005f1801, 0x005f1604, 0x005e1505, 0x005b1207, 0x005a0f09,
- 0x004c120d, 0x0042110c, 0x00350e09, 0x00250b06, 0x00130b04, 0x000e0c07, 0x00090c08, 0x00070c0a, 0x000c0e0b, 0x00100f0c, 0x00161010, 0x001e1212, 0x001c1b14, 0x001b2014, 0x00182113, 0x001a1f11,
- 0x001f1811, 0x001d140e, 0x0017100c, 0x0014110e, 0x000b1512, 0x0010160d, 0x0016190d, 0x001e2114, 0x00303324, 0x00464938, 0x005a5d4d, 0x0067695b, 0x0072726a, 0x0072716e, 0x006d6c6b, 0x006a6969,
- 0x00656769, 0x00616465, 0x005f6466, 0x00606465, 0x00727271, 0x00a6a3a0, 0x00e2dbd5, 0x00d1c4bb, 0x00b09f90, 0x009a8676, 0x00856a5b, 0x007f6451, 0x006f5744, 0x00604a3d, 0x00392a20, 0x00464039,
- 0x00757270, 0x00605e5e, 0x00545353, 0x005c5e5e, 0x00605f60, 0x00614d4f, 0x00583c3c, 0x00432828, 0x002d1616, 0x00281513, 0x0032211d, 0x00473732, 0x005c524c, 0x00544d46, 0x004b463d, 0x0048473d,
- 0x002b2737, 0x00171424, 0x00100d1f, 0x0007081f, 0x00070a23, 0x000a0d2d, 0x000a0e2f, 0x000a0b2e, 0x000a0b2c, 0x000b0b28, 0x000a0b2b, 0x00090e2c, 0x000a0e2e, 0x000b1030, 0x000a102e, 0x00070b24,
- 0x000b081f, 0x00060111, 0x00211823, 0x006c5f66, 0x00b4a3a7, 0x00b9b6b7, 0x00bfbfc1, 0x00c7c5c4, 0x00cdc7c4, 0x00a9a19b, 0x00423a32, 0x00292217, 0x00262119, 0x002b2b21, 0x00979690, 0x00f0f1ec,
- 0x00fefefe, 0x00fcfcfc, 0x00fdfdfd, 0x00f6f6f6, 0x00f4f4f4, 0x00fafafa, 0x00fefefe, 0x00fdfdfd, 0x00fefefd, 0x00fffeff, 0x00c0c3c6, 0x00768085, 0x0069747d, 0x005c6772, 0x0046525f, 0x00313b4a,
- 0x00252d40, 0x00212839, 0x00272b3b, 0x00393846, 0x0052515d, 0x005e5e63, 0x005f5f61, 0x005c5a5a, 0x00514a4a, 0x00463e3a, 0x00413731, 0x0040352f, 0x003d322e, 0x003c3431, 0x003f3a36, 0x0043403a,
- 0x00444144, 0x00423e3f, 0x003f3a38, 0x00444039, 0x00545247, 0x00636255, 0x006e6e5f, 0x006f6f5f, 0x006b695d, 0x005d5a4e, 0x00464239, 0x00413d38, 0x0043423b, 0x0055574c, 0x006b6d5f, 0x006e6e60,
- 0x00706a5b, 0x00655c4b, 0x00594c3a, 0x0053402f, 0x00594131, 0x005f4d40, 0x006e6053, 0x00786d5d, 0x00847d67, 0x008e7d67, 0x008f705c, 0x008a604f, 0x007e4d40, 0x006c4235, 0x00583326, 0x004a2b1c,
- 0x00302921, 0x002b251e, 0x00221f1a, 0x001a1a17, 0x00181a19, 0x00171a1a, 0x001a1c1a, 0x001d1e1b, 0x002c2521, 0x0039322c, 0x00504642, 0x006c5d5e, 0x00897d7e, 0x00908787, 0x00979291, 0x00a09e9c,
- 0x00adafad, 0x00b8b8b6, 0x00b8b8b5, 0x00afafae, 0x009e9b9c, 0x00828683, 0x00595f5d, 0x003d4248, 0x00302f41, 0x00292833, 0x002a2929, 0x002b2f20, 0x0038443b, 0x00445362, 0x0043547a, 0x00394888,
- 0x003e69a5, 0x00426db3, 0x00345eab, 0x0024479d, 0x001b3d85, 0x001e386e, 0x00637a9c, 0x00bacbda, 0x00e3ebe9, 0x00f2f5ed, 0x00ecf3ec, 0x00e3f5f0, 0x00feeef0, 0x00ddcce0, 0x007878a4, 0x004461aa,
- 0x004d74bd, 0x008fa5cf, 0x00cbd2e4, 0x00d4cfca, 0x00e1e4e1, 0x00eae7eb, 0x00e9e5f0, 0x00e6e6ef, 0x00e5eaef, 0x00e3eef0, 0x00e3f0f3, 0x00e2f1f3, 0x00eef7fb, 0x00e7ebf0, 0x00838289, 0x0027242a,
- 0x001c1713, 0x00231f1b, 0x002f2a25, 0x00342f2b, 0x003a3532, 0x003e3937, 0x00322d29, 0x006f6b66, 0x00f4f0ee, 0x00fefdfb, 0x00fefefb, 0x00fafdfc, 0x00fbfdfd, 0x00cdcec9, 0x00564e46, 0x003b291d,
- 0x00724239, 0x008b5646, 0x0098604a, 0x00945c43, 0x00875a38, 0x008e6251, 0x006d473e, 0x00321a10, 0x000c0d07, 0x000d1211, 0x00050c0f, 0x000a0e16, 0x000d0d12, 0x00101013, 0x000e110f, 0x000b130b,
- 0x000b1113, 0x000c0e13, 0x000e0d13, 0x00110c10, 0x00130d0a, 0x0014110a, 0x0011130e, 0x00080f10, 0x0007122d, 0x001d2b54, 0x00364486, 0x002e3d99, 0x00263491, 0x00253490, 0x002a3b9a, 0x002d3e9d,
- 0x002b3da0, 0x0027399c, 0x00203597, 0x001d3295, 0x001e3396, 0x001f3293, 0x001f3390, 0x0020338f, 0x001d318c, 0x001d328d, 0x001d308d, 0x001e318c, 0x0021348d, 0x001e328a, 0x001c3189, 0x001e338c,
- 0x00352f84, 0x00534b84, 0x009d8ba6, 0x00cba9a3, 0x00e6ac8f, 0x00e9aa93, 0x00e2a598, 0x00daa6a0, 0x00d1ad93, 0x00d0b182, 0x00dcae86, 0x00f5999b, 0x00e7a197, 0x00e0a394, 0x00dba891, 0x00d8a890,
- 0x00d9a18a, 0x00c6937b, 0x00c09079, 0x00c19681, 0x00b79882, 0x00b88f7a, 0x00be8d79, 0x00be8f7a, 0x00c59986, 0x00caa397, 0x00c5a5a0, 0x009d838c, 0x004f445c, 0x002d2850, 0x001d2354, 0x001c235f,
- 0x000b3a83, 0x001e4c9d, 0x003560ba, 0x00456cd4, 0x00436fe4, 0x003a6de3, 0x003972e8, 0x003673e2, 0x003a6bd7, 0x003a64ce, 0x002960cb, 0x001667d2, 0x002559c5, 0x004c6bbb, 0x00414e7d, 0x001e1e22,
- 0x00130c02, 0x0042383c, 0x00cac3ca, 0x00fcf6fd, 0x00fcfdec, 0x00fff9fa, 0x00fefcff, 0x00f0ebf4, 0x007e7b85, 0x003c3f50, 0x00717a90, 0x008493b1, 0x00545f76, 0x00242331, 0x0021161a, 0x00321c18,
- 0x00382520, 0x00402a21, 0x00553b2c, 0x00775644, 0x00916853, 0x00a47a63, 0x00b28971, 0x00c29c84, 0x00c6a08d, 0x00b2917f, 0x00a48c7a, 0x00a09581, 0x00999970, 0x008f9865, 0x008b9e62, 0x00839d5f,
- 0x00839e6c, 0x00849d6e, 0x00859d6d, 0x00869c6c, 0x00899b65, 0x00879c66, 0x00889e66, 0x00899e66, 0x00889e67, 0x00889e67, 0x00869d66, 0x00869c65, 0x00889d65, 0x00889e65, 0x00869c64, 0x00849a63,
- 0x0080995f, 0x00829a5f, 0x00849b5f, 0x0082995c, 0x0080985a, 0x007e9758, 0x007d9556, 0x007b9253, 0x00789051, 0x00748e4a, 0x0072904a, 0x006d924b, 0x00769156, 0x00738c58, 0x004b5b34, 0x001e280d,
- 0x00141005, 0x003e3325, 0x00877468, 0x009e8171, 0x00967056, 0x008e6547, 0x008d6240, 0x00895f35, 0x00845b4b, 0x006a4c52, 0x0040303b, 0x00333136, 0x0062744e, 0x007f8f68, 0x00bac7ac, 0x00f4f4f1,
- 0x00fffcff, 0x00fbfbfc, 0x00fcfdfa, 0x00fdfef7, 0x00d8ddbc, 0x00999f6b, 0x00909754, 0x008f9849, 0x00919646, 0x008f964c, 0x0090944d, 0x008c8e48, 0x007d7f40, 0x0072743c, 0x00606332, 0x0050552a,
- 0x00384126, 0x00242d1a, 0x00111e10, 0x000f1d16, 0x00111f1d, 0x00161d15, 0x00141c12, 0x00101e17, 0x000c1e18, 0x000f1e13, 0x002a2d1e, 0x00807964, 0x00cab49e, 0x00af998a, 0x00a68f84, 0x008d7673,
- 0x009392ad, 0x00b0b1d1, 0x00b4b7df, 0x007f84b3, 0x00434e90, 0x00404f99, 0x0033489a, 0x0029429a, 0x00304dab, 0x003956b9, 0x003755b0, 0x003954a8, 0x003a52c2, 0x003b52c1, 0x00516bc9, 0x00657ec7,
- 0x005d70b9, 0x005860ba, 0x006e74ca, 0x009e9fe6, 0x00abb1ba, 0x00beb2b8, 0x00f3e3dc, 0x00f9f4d6, 0x00d9dbaa, 0x00999a6d, 0x005e5c3b, 0x002e271c, 0x0013121b, 0x000f1e21, 0x000e2a27, 0x00022a1c,
- 0x000d2420, 0x000d2521, 0x000f2420, 0x000f231d, 0x000e221b, 0x000e1f18, 0x000d1c15, 0x00091912, 0x0007130c, 0x0005120a, 0x0007100c, 0x00090e0d, 0x00080d0b, 0x00060c0a, 0x00060b0a, 0x00060a09,
- 0x00050908, 0x00050908, 0x00040907, 0x00020806, 0x00020706, 0x00030605, 0x00040404, 0x00050404, 0x00030202, 0x00030302, 0x00030202, 0x00030303, 0x00030303, 0x00030304, 0x00030304, 0x00030304,
- 0x00000305, 0x00000305, 0x00000203, 0x00010303, 0x00060302, 0x001b150f, 0x003d3326, 0x004d3c2b, 0x005a422d, 0x0060452e, 0x0051351a, 0x00483314, 0x00432d11, 0x003f2c10, 0x003a2a10, 0x0032260f,
- 0x002e2518, 0x001d1710, 0x00181212, 0x001c1820, 0x00211d2c, 0x0024233b, 0x00292954, 0x00313178, 0x00384985, 0x003e5596, 0x003f55ab, 0x003f4fbf, 0x004a53a6, 0x008f97b9, 0x00edf1fb, 0x00fdfcfd,
- 0x00fefdfa, 0x00fbfdfb, 0x00f1fbfb, 0x0097a9bf, 0x00596fb8, 0x00576fd0, 0x00516adb, 0x004962dc, 0x003f5bc3, 0x004461bc, 0x002e4aa1, 0x004863c1, 0x004d66c5, 0x003c55b4, 0x002a45a3, 0x004d6ac7,
- 0x004d67c7, 0x00415bb8, 0x004b67c4, 0x004461bd, 0x00445ebd, 0x00405cb6, 0x003f5cb5, 0x00405db8, 0x004562be, 0x004460bc, 0x00445ebd, 0x00445ebe, 0x004b67c7, 0x004e69ca, 0x004d67c8, 0x00566fd1,
- 0x005173d8, 0x005170d1, 0x00536ed2, 0x005067ca, 0x003a56c3, 0x00324eb9, 0x003f59c1, 0x004355b3, 0x004a4790, 0x00392b68, 0x007a4666, 0x00af3f29, 0x009f431f, 0x00a65828, 0x00ac6e37, 0x00a67743,
- 0x00825f46, 0x00423032, 0x00353552, 0x00384a84, 0x00244da1, 0x002d53a5, 0x00264d9c, 0x00264f97, 0x002d558c, 0x0049678c, 0x0036465e, 0x001f2129, 0x000b0201, 0x00080001, 0x00060006, 0x0008060f,
- 0x001d1c0d, 0x0024211d, 0x001f1f24, 0x00151724, 0x00091325, 0x00051123, 0x00142f41, 0x006d94ae, 0x0070a2cc, 0x005588bd, 0x004b7dbb, 0x004977b8, 0x004673b5, 0x00416dad, 0x004067a2, 0x0049679a,
- 0x004e5a7e, 0x00322f44, 0x0049373d, 0x00613f37, 0x00784932, 0x00754a37, 0x00654032, 0x004c2e26, 0x003c2f32, 0x00a9a8ae, 0x00dee3ef, 0x00e0edf8, 0x00dce9f2, 0x00edf4f9, 0x00ecf4ed, 0x00eef5ec,
- 0x00e3f2f3, 0x00e1f3ef, 0x00e2f1e5, 0x00e7f4df, 0x00fae3d0, 0x00e5aba3, 0x009d4d4f, 0x00c1646d, 0x00fad9dc, 0x00e5e7df, 0x00eff9f4, 0x00ebeded, 0x00e5e6e5, 0x00eef0ef, 0x00eaedee, 0x00ecefed,
- 0x00ebeeec, 0x00e8ede9, 0x00e7eae9, 0x00e9eaeb, 0x00eceeed, 0x00ecf0ef, 0x00e5eeed, 0x00e8f5f3, 0x00e9f2ec, 0x00f7e9e0, 0x008c6157, 0x00671b10, 0x0086211c, 0x007e2d29, 0x0086514a, 0x00927c74,
- 0x00ebebeb, 0x00d8d9d8, 0x00fcfcfb, 0x00fcfcfb, 0x00fcfcfc, 0x00fafafb, 0x00fdfcfd, 0x00fdfdfe, 0x00fcfdfd, 0x00fdfeff, 0x00fefffd, 0x00fdfffa, 0x00fdfefa, 0x00fcfdfc, 0x00fefefe, 0x00fefffc,
- 0x00fcfcfe, 0x00fbfdfc, 0x00fdfdfd, 0x00fdfbfd, 0x00fffdff, 0x00fbfbfd, 0x00fbfcfb, 0x00fbfcf8, 0x00fefcfe, 0x00f8f6f9, 0x00f7f5f7, 0x00f4f2f3, 0x00ecebec, 0x00e7e7e6, 0x00dededb, 0x00d6d6d4,
- 0x00e1e0e0, 0x00efeef1, 0x00e4e3e5, 0x00c3c2c6, 0x006b6b6c, 0x0039383a, 0x00292a2a, 0x001b1b1e, 0x000c0c0b, 0x00060607, 0x0007070a, 0x00030403, 0x000c0d0c, 0x00030303, 0x003c3a3d, 0x00a4a2a3,
- 0x00c7c7c7, 0x00c4c6c5, 0x00d3d3d5, 0x00e8e7e7, 0x00f8f8f4, 0x00eeecf9, 0x009092ba, 0x00344b88, 0x00684465, 0x008c4849, 0x00d38c82, 0x00f8d5d6, 0x00908e8e, 0x00241d18, 0x00333527, 0x00677067,
- 0x004d504b, 0x000e120d, 0x00151814, 0x001c201c, 0x00202420, 0x00232824, 0x001f2521, 0x0019201d, 0x0019231f, 0x0019231e, 0x0019231b, 0x00182219, 0x0019221a, 0x0019221b, 0x0019221a, 0x0019211a,
- 0x001b2319, 0x001b231a, 0x001b221b, 0x001b231b, 0x001b231a, 0x001c251c, 0x001b241c, 0x001a231c, 0x001f261d, 0x00131912, 0x00666d68, 0x00dce1de, 0x00fdfefe, 0x00fdfdfe, 0x00fbfcfd, 0x00fcffff,
- 0x00d0cacc, 0x00575655, 0x001d241f, 0x0025322b, 0x00324b42, 0x003a564b, 0x00405c4f, 0x00425a4b, 0x00455042, 0x003d4537, 0x00413329, 0x004f1e19, 0x004b130f, 0x00500e0a, 0x00550a09, 0x00570708,
- 0x00590605, 0x005a0c08, 0x005b120a, 0x005b180b, 0x005f2113, 0x00682315, 0x00682311, 0x0063200e, 0x00601e0a, 0x00591903, 0x00541700, 0x00571802, 0x005a1506, 0x005c1208, 0x005b0f07, 0x005d0c0a,
- 0x00520f0d, 0x004a100d, 0x003e100c, 0x002e0d09, 0x001b0c09, 0x00120c09, 0x000e0c09, 0x00090d08, 0x000b0e0b, 0x000e110c, 0x00171210, 0x00201313, 0x001f1d16, 0x00202218, 0x00222317, 0x00242313,
- 0x0024160c, 0x0022120b, 0x001b0e0a, 0x00120e0a, 0x00081010, 0x000b110f, 0x0011120e, 0x00141510, 0x0025271f, 0x003c3e35, 0x0054564c, 0x0063655c, 0x006e6f69, 0x006e6f6c, 0x00696967, 0x00666663,
- 0x00636362, 0x005f6261, 0x005d6162, 0x005a5f61, 0x00707174, 0x0099989d, 0x00e3dfe3, 0x00e7e0e2, 0x00dccecb, 0x00c4b3af, 0x00a4918a, 0x008e7c6e, 0x006f5d51, 0x005d4c45, 0x00564943, 0x006f6764,
- 0x008b888b, 0x006c6b6d, 0x004c4d4f, 0x0056585b, 0x00565759, 0x0058464a, 0x004d3537, 0x003a2323, 0x00281618, 0x00322322, 0x004d3e3d, 0x00554847, 0x00514946, 0x004a4642, 0x003e3b36, 0x0034342c,
- 0x002c262f, 0x0028222b, 0x002d2834, 0x002d2d3e, 0x0018192d, 0x000e0d28, 0x000e0e2c, 0x000e0d2c, 0x000d0b31, 0x000b092a, 0x000c0c2c, 0x000b0f27, 0x000a0e2a, 0x00070d29, 0x0008102b, 0x00070e27,
- 0x0006071f, 0x00060415, 0x000e0716, 0x00423742, 0x00a5949a, 0x00b7b3b7, 0x00b3b3ba, 0x00bcbcbf, 0x00c8c6c5, 0x00c4c1bc, 0x005a5750, 0x001b160d, 0x0016120b, 0x001a1911, 0x00888781, 0x00edefea,
- 0x00fefefe, 0x00fcfcfc, 0x00fdfdfd, 0x00f5f5f5, 0x00f4f4f4, 0x00f9f9f9, 0x00fdfdfd, 0x00fcfcfc, 0x00fdfefc, 0x00ffffff, 0x00bcc2c4, 0x0069777c, 0x0056646d, 0x00485661, 0x00364450, 0x00232f3e,
- 0x00181f33, 0x00141b2a, 0x001d1f2f, 0x00322f3e, 0x004d4855, 0x0057575d, 0x0058595b, 0x00545453, 0x00494442, 0x00413a35, 0x00413430, 0x00413330, 0x00413632, 0x00433a38, 0x00474040, 0x004a4441,
- 0x00484547, 0x00434140, 0x00413f3b, 0x0049483f, 0x005a5a4d, 0x0069695b, 0x00747566, 0x00757666, 0x006e6e61, 0x00606155, 0x004f4f43, 0x0048453c, 0x004c4b40, 0x0057594c, 0x006d705f, 0x00737565,
- 0x00777262, 0x006d6553, 0x005f5241, 0x00544233, 0x00523d2e, 0x0059493b, 0x00675b4c, 0x00706855, 0x007c7863, 0x00887b67, 0x008d7260, 0x008c6556, 0x00835147, 0x0072473b, 0x00603a2c, 0x00553323,
- 0x00343027, 0x002c2921, 0x00211f19, 0x00171814, 0x00151714, 0x00161615, 0x001b1916, 0x00211d1a, 0x002a241f, 0x00352f26, 0x00463c36, 0x00605050, 0x007d7071, 0x008b8282, 0x00969191, 0x00a09e9e,
- 0x00a8acab, 0x00b0afb1, 0x00aaadab, 0x00a2a2a0, 0x00939293, 0x00777877, 0x004c5250, 0x0036393f, 0x00302d3c, 0x002a272d, 0x00262321, 0x00282719, 0x00363b32, 0x00515761, 0x00545d79, 0x003f4978,
- 0x00244e7d, 0x0026518b, 0x00254c94, 0x00214497, 0x00223f8b, 0x001f3871, 0x005a7197, 0x00b0c3d5, 0x00e3ede9, 0x00f1f8ed, 0x00eaf4ea, 0x00e5f2f2, 0x00fcf0f2, 0x00dccfea, 0x007a7eaa, 0x00435fa7,
- 0x004f76b9, 0x0091a7cc, 0x00ccd3e1, 0x00d1cbc8, 0x00dce1e0, 0x00e6e4ea, 0x00e7e4ec, 0x00e4e6ec, 0x00e3e9ee, 0x00e0ebed, 0x00e4eff3, 0x00e2f0f2, 0x00e9f1f5, 0x00f4f6fc, 0x00b4b3ba, 0x00423f46,
- 0x00191413, 0x00211d1b, 0x002e2927, 0x0036322f, 0x00403c39, 0x0044403d, 0x0035312e, 0x006c6865, 0x00efebe8, 0x00fdfdfa, 0x00fdfefc, 0x00fbfdfd, 0x00fdfcfe, 0x00d2d2cf, 0x005a524b, 0x00332015,
- 0x0060332a, 0x007c4839, 0x008c5441, 0x008b553d, 0x00865a39, 0x00825a4e, 0x004e2f2f, 0x001d0a08, 0x000e1310, 0x000e1617, 0x00060f12, 0x000b1016, 0x000f0f13, 0x000f1012, 0x000a100f, 0x0009120d,
- 0x000b1012, 0x000d0e12, 0x000f0d11, 0x00140e12, 0x00140e0c, 0x0014120c, 0x000f1108, 0x00091008, 0x00040d21, 0x00111c39, 0x002e3b74, 0x003646a6, 0x003142a2, 0x0029399d, 0x0024369d, 0x00283b9f,
- 0x00283ea5, 0x00273ca1, 0x00233a9e, 0x0020389c, 0x0022379b, 0x00223294, 0x00203190, 0x00213391, 0x001f318e, 0x001d328c, 0x001d318c, 0x0021338d, 0x0022328a, 0x001d2e85, 0x001e3085, 0x00223589,
- 0x002a2689, 0x00282c7d, 0x00605e95, 0x00a796aa, 0x00efa88e, 0x00f3a189, 0x00ec9c8a, 0x00df9e99, 0x00d8a78d, 0x00dfac74, 0x00eaa979, 0x00efa093, 0x00e8a997, 0x00e0ae94, 0x00d7ad90, 0x00d6ac8d,
- 0x00d3a385, 0x00c4957a, 0x00c29278, 0x00c89982, 0x00bf9981, 0x00b98e7f, 0x00bc8e7e, 0x00bf907e, 0x00c6917b, 0x00c89881, 0x00cca08d, 0x00be9990, 0x00a7909b, 0x00a396b1, 0x009392b4, 0x008688b3,
- 0x007697c9, 0x007694d3, 0x006b87cf, 0x006581d6, 0x00537ae2, 0x004577e2, 0x003e76e1, 0x003c77e1, 0x004776de, 0x004971d8, 0x00436fd8, 0x002e6dda, 0x002459c4, 0x00375fba, 0x004964a5, 0x00364362,
- 0x00181315, 0x00514649, 0x00dfd2d6, 0x00fdf7f8, 0x00fbfff6, 0x00fcfafa, 0x00fffaff, 0x00e4dce8, 0x006a6370, 0x00383745, 0x00898da2, 0x00a1aec4, 0x004c566c, 0x000d0b14, 0x001b0f12, 0x003d2421,
- 0x005c4840, 0x00624940, 0x00694c3d, 0x00805d49, 0x00946a52, 0x00a27860, 0x00b68d75, 0x00c49c85, 0x00c1a08c, 0x00b59686, 0x00a99583, 0x00a49f86, 0x0096996d, 0x00899561, 0x00879b60, 0x00829b5f,
- 0x00839d68, 0x00839c6a, 0x00859b6b, 0x00859b6a, 0x00889b64, 0x00869c65, 0x00869c65, 0x00889c65, 0x00879c66, 0x00869c66, 0x00849b64, 0x00829a62, 0x00869b64, 0x00869b64, 0x00849a64, 0x00839963,
- 0x0082995f, 0x0082995f, 0x00869c61, 0x00869d60, 0x00839a5d, 0x0082995c, 0x0081985c, 0x007e9459, 0x007c9457, 0x007a9352, 0x0076934d, 0x00739446, 0x00769556, 0x00718c5c, 0x00465c37, 0x0018260c,
- 0x00150f01, 0x002e1d0b, 0x00725949, 0x0095705d, 0x00987058, 0x00976c50, 0x00956a43, 0x00976937, 0x00a0694c, 0x008f5f54, 0x00694640, 0x005b4938, 0x0071793f, 0x00828e59, 0x00bcc7a3, 0x00f3f6ef,
- 0x00fdfdfd, 0x00f9fbfb, 0x00fefffc, 0x00fdfdf4, 0x00dbdfbb, 0x00a0a66e, 0x0098a05a, 0x0097a44e, 0x009ca14d, 0x009aa151, 0x009a9e51, 0x0095954c, 0x00878845, 0x007a7c40, 0x00686a36, 0x00565b2e,
- 0x00394023, 0x00262e1b, 0x00131c10, 0x00101c14, 0x00121e1b, 0x00181d16, 0x00151911, 0x00121f17, 0x000b1f17, 0x000c1d11, 0x00313a2b, 0x00787362, 0x0081706b, 0x005b4954, 0x005c4f62, 0x00675a7a,
- 0x006370a4, 0x006d7cb5, 0x005666a3, 0x00415197, 0x003e50a4, 0x00394da9, 0x003049a6, 0x002c49aa, 0x003352b9, 0x003050b6, 0x002e4daf, 0x003552a8, 0x003a53c3, 0x00314cbb, 0x003451b6, 0x003a59a6,
- 0x004057aa, 0x004453b6, 0x00444fb2, 0x006973c3, 0x0098a6bb, 0x00a5a0b1, 0x00c2b4bc, 0x00edead2, 0x00feffc3, 0x00f2f3b7, 0x00cac092, 0x009b8a76, 0x00493f45, 0x001b2523, 0x00062016, 0x00032d14,
- 0x000f2523, 0x000e2622, 0x000f2623, 0x000f2521, 0x000e2320, 0x000c201c, 0x000a1c17, 0x00081913, 0x0009160d, 0x00051407, 0x0008110a, 0x000a0e0d, 0x00090d0c, 0x00070d0b, 0x00060c0a, 0x00060b08,
- 0x00040a06, 0x00040a06, 0x00040a07, 0x00030a07, 0x00030907, 0x00050707, 0x00050506, 0x00050506, 0x00030403, 0x00040404, 0x00030403, 0x00030403, 0x00040505, 0x00030404, 0x00030504, 0x00020403,
- 0x00000206, 0x00000205, 0x00000306, 0x00010204, 0x00040101, 0x00150d07, 0x00392b20, 0x00412d1f, 0x00573c24, 0x00694b30, 0x00593b20, 0x00523b1a, 0x00553c21, 0x00523b19, 0x004b3616, 0x00493917,
- 0x00423313, 0x0036280d, 0x0030200a, 0x002b1e0b, 0x0021140b, 0x001b1014, 0x00140c26, 0x001f1b58, 0x00314082, 0x002d4891, 0x002c48a4, 0x002e44bb, 0x004452a5, 0x0097a0c0, 0x00f3f5fd, 0x00fefafe,
- 0x00fefcf7, 0x00fbfcfa, 0x00f3fcfc, 0x008999b3, 0x005267b3, 0x005971d0, 0x004862d0, 0x00536ee3, 0x003c59c1, 0x004967c5, 0x002e4ba5, 0x002844a3, 0x004560be, 0x003c56b4, 0x00233d9b, 0x00324eaa,
- 0x004963bf, 0x00425bb8, 0x004660be, 0x004762be, 0x003e56b5, 0x00334ca8, 0x003853ae, 0x003953af, 0x00415cb8, 0x003f59b8, 0x003750b1, 0x003d55b8, 0x00546ccf, 0x005a72d5, 0x00536cd0, 0x00566fd5,
- 0x005376d8, 0x005070d0, 0x004c69ca, 0x005169cc, 0x004662cc, 0x00314db9, 0x00203aa1, 0x002b3f9f, 0x004b4d96, 0x00302563, 0x00805478, 0x009e433f, 0x00843721, 0x009d5933, 0x00945c2b, 0x008c5826,
- 0x006d4528, 0x0039211e, 0x00272235, 0x00324271, 0x00285197, 0x00234c98, 0x00244e98, 0x00235197, 0x0028518d, 0x003c5c86, 0x00485a76, 0x00262a35, 0x00090000, 0x000f0404, 0x000f0506, 0x00150e12,
- 0x002a2311, 0x002d2720, 0x00242024, 0x0012101e, 0x00060e23, 0x00010b21, 0x00375367, 0x0081a6c0, 0x006590c2, 0x004d7cb8, 0x00497aba, 0x004974bd, 0x004974b4, 0x004870a9, 0x00486a9b, 0x004a638a,
- 0x0030364c, 0x0028212c, 0x0051393a, 0x005e3630, 0x00703c2c, 0x00623d2b, 0x00482a1f, 0x002f160d, 0x003f3439, 0x00d1d1d4, 0x00e2e4f1, 0x00e6eef7, 0x00e7f0f9, 0x00eff6f7, 0x00edf4ee, 0x00edf5ec,
- 0x00e2f5f3, 0x00e2efeb, 0x00e4f1eb, 0x00e2f1e1, 0x00e9ede1, 0x00fae0de, 0x00e1a2aa, 0x00ad5362, 0x00d6a5aa, 0x00f0f0e5, 0x00eaf3ea, 0x00e4e6e7, 0x00e2e6e3, 0x00eaebec, 0x00ecefed, 0x00eaedeb,
- 0x00e5e7e9, 0x00e4e8e7, 0x00e9ebea, 0x00ededee, 0x00eef1f0, 0x00e5f2ec, 0x00e9f5f1, 0x00eceff0, 0x00f4f1ee, 0x00f9f0e6, 0x00c3a599, 0x00713628, 0x007d1210, 0x00862a29, 0x00864541, 0x00866c65,
- 0x00f2f0f2, 0x00e2e1e3, 0x00fcfdfd, 0x00fdfffe, 0x00fbfcfc, 0x00fafafb, 0x00fbfbfc, 0x00fbfcfb, 0x00fffcfd, 0x00fffdff, 0x00fdfdfc, 0x00fcfef7, 0x00fefffb, 0x00fefffd, 0x00fbfef9, 0x00fafefa,
- 0x00fcfafc, 0x00fffeff, 0x00fefcfd, 0x00fefbfd, 0x00fefbff, 0x00fafafc, 0x00fbfefb, 0x00f8fbf6, 0x00fffeff, 0x00fffdff, 0x00fcfcfb, 0x00fbfcfa, 0x00fcfdfd, 0x00f9faf8, 0x00f7f9f5, 0x00f6f9f6,
- 0x00fbf7f9, 0x00fcf9fb, 0x00f6f6f4, 0x00e6e6e5, 0x00cbcdc9, 0x00a6a6a6, 0x008f918d, 0x00797976, 0x005b5a5a, 0x004c4b4a, 0x00444443, 0x003c3d3e, 0x00373837, 0x00222321, 0x004c4d4c, 0x00aaabaa,
- 0x00d3d0d5, 0x00cfcfd1, 0x00cbcbcd, 0x00d8d7d9, 0x00eef0ee, 0x00f6f5f9, 0x00a1a7c0, 0x00425b8d, 0x00815d7f, 0x009e575c, 0x00cd847b, 0x00eac0bd, 0x00838081, 0x00201f16, 0x00313422, 0x00525c4f,
- 0x003f413f, 0x00141714, 0x00181c19, 0x001a1e1a, 0x001f231f, 0x00232822, 0x001d241e, 0x0018211a, 0x0019221f, 0x0019221e, 0x0019221a, 0x00182218, 0x0018211a, 0x0018211a, 0x00182118, 0x00171f18,
- 0x001d231d, 0x001c231c, 0x001a231a, 0x001b231b, 0x001b231b, 0x001e261e, 0x001a221a, 0x00182218, 0x001d251f, 0x00161d17, 0x00616b65, 0x00d4dbd6, 0x00fdfefd, 0x00fdfdfd, 0x00fbfbfc, 0x00fdfdfe,
- 0x00dad0d3, 0x00665c5b, 0x0027211d, 0x00302c26, 0x003e483c, 0x00445245, 0x00495949, 0x004a5845, 0x004d4b3f, 0x00473a30, 0x004a2720, 0x00560f0d, 0x00520607, 0x00550403, 0x005a0705, 0x005a0703,
- 0x005f0407, 0x005f0a07, 0x00601009, 0x005e150b, 0x00621e12, 0x006b2113, 0x006a2111, 0x00631f0e, 0x005c1e0a, 0x00541905, 0x004e1701, 0x00521a03, 0x00571707, 0x00581309, 0x00550f05, 0x00570c05,
- 0x005a1010, 0x0053100f, 0x00430d0a, 0x00330907, 0x001d0807, 0x00130908, 0x000f0906, 0x000b0c08, 0x0011110f, 0x00131610, 0x001a1813, 0x00231816, 0x00212119, 0x0026251b, 0x002b271a, 0x00302816,
- 0x00382118, 0x00321b16, 0x00241410, 0x0016100a, 0x00080f0e, 0x000e1010, 0x0011110f, 0x0011120e, 0x00222022, 0x00393836, 0x0052524d, 0x0061625b, 0x006d6e68, 0x006d6e68, 0x00676862, 0x0062645d,
- 0x005c5a58, 0x00585a58, 0x00525556, 0x004f5356, 0x00616569, 0x00888b92, 0x00cdccd4, 0x00dedbe0, 0x00eddfeb, 0x00e6d9e2, 0x00d1c4c6, 0x00c0b5ad, 0x00a0958d, 0x008a827e, 0x008a8581, 0x009c9897,
- 0x00ada8ad, 0x008c898d, 0x00606165, 0x0065676d, 0x00585a5e, 0x0053464b, 0x00412f32, 0x002e1e1d, 0x00221319, 0x00302225, 0x00493c3e, 0x00423939, 0x004c4744, 0x0063615d, 0x0051504d, 0x00272822,
- 0x00241e22, 0x00272025, 0x002d2b32, 0x0042424f, 0x00353542, 0x001a192e, 0x0011102b, 0x0010102d, 0x00110d32, 0x000f0b30, 0x000b0a2c, 0x000b0d24, 0x00070c27, 0x00030a25, 0x00020a24, 0x00010c26,
- 0x00050723, 0x000c091d, 0x00110a19, 0x00352b35, 0x00a08f95, 0x00bdbbc1, 0x00a3a8af, 0x00b3b7ba, 0x00bebbbc, 0x00c8c4c1, 0x0083807c, 0x00241f19, 0x00120c09, 0x00111009, 0x007f807a, 0x00ebefe8,
- 0x00fefefe, 0x00fcfcfc, 0x00fdfdfd, 0x00f5f5f5, 0x00f3f3f3, 0x00f9f9f9, 0x00fcfcfc, 0x00fbfbfb, 0x00fefdff, 0x00ffffff, 0x00b9bec0, 0x00606e73, 0x004a5961, 0x003d4d56, 0x002c3e48, 0x001b2b3a,
- 0x00141830, 0x00101627, 0x001b1b2b, 0x002d2a37, 0x0048424e, 0x00535459, 0x0056575a, 0x004f4f51, 0x00473e41, 0x003f3734, 0x003e3331, 0x003f3330, 0x00433933, 0x00453d3a, 0x00494243, 0x004a4744,
- 0x004d494d, 0x00484646, 0x0043433e, 0x004a4c41, 0x0057594c, 0x00636556, 0x00707364, 0x00707364, 0x006c6960, 0x00616359, 0x0057574c, 0x00534f45, 0x00575648, 0x005d6150, 0x00707461, 0x00777c68,
- 0x007b7869, 0x00736a5a, 0x00635645, 0x00514332, 0x004b3a29, 0x00504233, 0x005d5242, 0x00635f4a, 0x00736e5b, 0x007f7260, 0x00856c5d, 0x00886356, 0x00825348, 0x00734a3c, 0x00623e2e, 0x00583826,
- 0x0038312d, 0x002f2a25, 0x001f1d18, 0x00161612, 0x00131411, 0x0013130f, 0x001b1914, 0x00231f18, 0x002f2622, 0x00372e25, 0x00483b33, 0x005f4e4b, 0x00736663, 0x00817975, 0x008b8886, 0x00929291,
- 0x009e9da5, 0x00a09fa2, 0x00949895, 0x008f8f8c, 0x007f807e, 0x00676c68, 0x00434846, 0x00333538, 0x00302c3c, 0x0028262a, 0x00211e1b, 0x00221e13, 0x002f2f26, 0x004b4b51, 0x005c5f6e, 0x00525873,
- 0x001e456f, 0x00183d71, 0x00133678, 0x00193886, 0x001d3984, 0x00203973, 0x00546f93, 0x00a8bdcc, 0x00e4ede9, 0x00eff9ec, 0x00ebf4ed, 0x00e5f1f0, 0x00f6f0f1, 0x00d7d1ec, 0x00767dad, 0x003d5ea5,
- 0x005476b8, 0x009ca9ce, 0x00d1d4e0, 0x00d2c9c6, 0x00d5dbe3, 0x00e1e1e8, 0x00e2e1e8, 0x00dee1e5, 0x00e0e6e9, 0x00e2ebed, 0x00e2e9ed, 0x00e1edef, 0x00e6eff2, 0x00f0f6f9, 0x00c8c9ce, 0x005d5a60,
- 0x00120f11, 0x001c1819, 0x00262221, 0x002f2b2a, 0x003d3937, 0x00403d3b, 0x00312e2d, 0x00666362, 0x00e8e4e3, 0x00fefcfb, 0x00fdfbfa, 0x00fcfdfd, 0x00fcfcfd, 0x00d8dad5, 0x005f5a52, 0x00311f16,
- 0x00592e26, 0x007a4336, 0x00854e3a, 0x0084523b, 0x00805839, 0x006c4841, 0x00331a1d, 0x00140606, 0x000b1013, 0x000b121a, 0x000a1319, 0x000c1017, 0x000e0e12, 0x000e1111, 0x0009130c, 0x00031309,
- 0x00101115, 0x00100f15, 0x000f0d12, 0x00110e12, 0x00110f0c, 0x0011120a, 0x000d0f04, 0x000b1106, 0x0009101e, 0x000c1429, 0x001a2758, 0x001f2f90, 0x003446a8, 0x003747ad, 0x002c3fa6, 0x00263aa0,
- 0x002b3ca6, 0x00273ca0, 0x00223b9e, 0x001f389a, 0x001e3896, 0x00213591, 0x00213290, 0x001f318f, 0x00253393, 0x0021328d, 0x001e318a, 0x00203189, 0x001f2f86, 0x001b2d83, 0x00182c80, 0x00172c7e,
- 0x002a288b, 0x00212c8b, 0x00323a8b, 0x006d6493, 0x00d18074, 0x00e07c60, 0x00db795b, 0x00d6806b, 0x00d98d72, 0x00e88f5d, 0x00ed9965, 0x00e7a282, 0x00dfac87, 0x00dbad84, 0x00cca57a, 0x00c7a175,
- 0x00cd977a, 0x00cd967c, 0x00cb947c, 0x00cb9480, 0x00c49583, 0x00c4968c, 0x00bd9083, 0x00bc8c77, 0x00ca9078, 0x00ce9679, 0x00ce9a7a, 0x00c6967d, 0x00cbaba4, 0x00e6d1da, 0x00efedf2, 0x00eaedf7,
- 0x00e7e7f6, 0x00dcdff7, 0x00c2c9f0, 0x00b6c1f4, 0x00a0bbf9, 0x0083abf3, 0x00608cdf, 0x00507ed6, 0x005976cf, 0x006076ce, 0x006476ca, 0x00586abd, 0x00395ebf, 0x002a57b8, 0x00426fc4, 0x0041659f,
- 0x00262339, 0x0062535a, 0x00ecddda, 0x00fefbf5, 0x00f7fefe, 0x00fbfdfc, 0x00fbfbfa, 0x00d6cfd4, 0x005a4e5c, 0x0037323f, 0x009293a1, 0x00aab4c6, 0x00545c6b, 0x000c0c12, 0x00100805, 0x002d1812,
- 0x00664c46, 0x0071534c, 0x006f5040, 0x007e5a44, 0x008b6048, 0x00956c56, 0x00a9816c, 0x00b6917d, 0x00c09e92, 0x00c6a69d, 0x00bfad9e, 0x00adad90, 0x0091996b, 0x007c8b52, 0x007d9252, 0x00819856,
- 0x00829b67, 0x00829a68, 0x00849a65, 0x00849b63, 0x00869c5d, 0x00849c62, 0x00849b63, 0x00859963, 0x00899b67, 0x00899b66, 0x00849963, 0x00819760, 0x00839862, 0x00839862, 0x0080985f, 0x0080985e,
- 0x00869964, 0x00849962, 0x00849a61, 0x00839a5e, 0x00839a5e, 0x00829a5d, 0x00819a5d, 0x007e995c, 0x0080945b, 0x00809559, 0x007d9453, 0x00789443, 0x00749252, 0x00738f5f, 0x005b724e, 0x00415137,
- 0x00312516, 0x003d2313, 0x0071503a, 0x0092664b, 0x0093664f, 0x00966c4f, 0x0099724c, 0x009f7440, 0x00ab704c, 0x00a66f57, 0x00976a54, 0x008c7150, 0x007f823e, 0x007e864b, 0x00b5c297, 0x00f0f6ed,
- 0x00fffdff, 0x00f9fcfd, 0x00fefffb, 0x00fcfdf2, 0x00d6ddb5, 0x00a0a76d, 0x00979f58, 0x0096a34c, 0x009ca14b, 0x009ba14e, 0x00989d4d, 0x00919347, 0x0084843f, 0x00777a3b, 0x00646831, 0x00555929,
- 0x00373d20, 0x00272d19, 0x00161e10, 0x00131c14, 0x00111c1a, 0x00191b17, 0x00141710, 0x00121e12, 0x000d1e16, 0x000d1e14, 0x00222e24, 0x004c4c43, 0x006a626c, 0x005f5777, 0x004c4a78, 0x004d4e8e,
- 0x00374b97, 0x00374c9b, 0x002f4898, 0x002f489e, 0x002c45a4, 0x00334baf, 0x002c49ac, 0x002c4aaf, 0x002e4bb9, 0x002f4eb5, 0x00304fb1, 0x00364faf, 0x00354cb7, 0x00324ab4, 0x003651b6, 0x003652ab,
- 0x004052b5, 0x003e4db0, 0x004754ac, 0x006573b5, 0x008698b0, 0x008487aa, 0x00868397, 0x00c7d0bf, 0x00f4f0b7, 0x00fdfaba, 0x00ebd9a2, 0x00dfc3a3, 0x00b7a29e, 0x00737163, 0x0022321b, 0x00072802,
- 0x00142424, 0x00132322, 0x00112422, 0x000e2422, 0x000d231e, 0x000a201b, 0x00071e18, 0x00061b14, 0x000b1710, 0x00051408, 0x00081109, 0x000b0e0d, 0x00090c0d, 0x00070d0a, 0x00050d08, 0x00040b04,
- 0x00060b09, 0x00060b09, 0x00050a08, 0x00020a07, 0x00020907, 0x00030806, 0x00030706, 0x00030606, 0x00050606, 0x00040505, 0x00030504, 0x00020403, 0x00030504, 0x00020503, 0x00010402, 0x00010402,
- 0x0007050c, 0x00050509, 0x00020507, 0x00010203, 0x00030000, 0x00110902, 0x00332416, 0x0037200d, 0x0053361d, 0x00725036, 0x00664328, 0x00513619, 0x00452a0d, 0x00402705, 0x0047300b, 0x004e3811,
- 0x005d431f, 0x00563f16, 0x00513b0f, 0x004d390e, 0x0047320c, 0x003c261a, 0x00261629, 0x00272058, 0x003b4790, 0x003752a2, 0x00304eae, 0x003048c6, 0x00495ba9, 0x00a0a9c7, 0x00f6f8fc, 0x00fef7f9,
- 0x00fffdf6, 0x00fcfcfa, 0x00f5fcff, 0x008492b0, 0x004e62b0, 0x005169c7, 0x004a65d0, 0x004f6bd9, 0x004762cb, 0x003c58b8, 0x003f5ab7, 0x002a45a7, 0x003c5ab8, 0x00405cbb, 0x002842a1, 0x0016328e,
- 0x004458ba, 0x004156b6, 0x00364dab, 0x00475fb9, 0x003d52af, 0x002e449f, 0x003149a3, 0x00364ea9, 0x003e53b3, 0x003c53b4, 0x00344baf, 0x003d56b9, 0x004b64c7, 0x005771d4, 0x005570d5, 0x005470d6,
- 0x005472da, 0x005976d9, 0x00516dcd, 0x004f68c6, 0x004762c8, 0x003d57bf, 0x002540a5, 0x000d2785, 0x00393a88, 0x00251b5d, 0x00523563, 0x00763a51, 0x00542124, 0x00744433, 0x00643814, 0x00623207,
- 0x00592c11, 0x003d1c16, 0x001e141d, 0x002d3958, 0x00294f83, 0x00254c8d, 0x00275093, 0x001a4989, 0x00224e8a, 0x002d517c, 0x004e6382, 0x00282e3b, 0x000c0203, 0x00160705, 0x001d0d0a, 0x00261816,
- 0x003c291d, 0x003a2a26, 0x00271b20, 0x00140d1c, 0x000a0e23, 0x00030e23, 0x00475f74, 0x007999b4, 0x00688ab9, 0x005279b7, 0x004a76b6, 0x004970ba, 0x00456dab, 0x004e71a5, 0x004a668e, 0x00384f68,
- 0x00171223, 0x0027161c, 0x0041231f, 0x004d211d, 0x00602920, 0x004e2b1c, 0x00361d13, 0x001e0b08, 0x005f565a, 0x00d1d1d6, 0x00e3e8f2, 0x00ecf4f9, 0x00e5eff2, 0x00e7f1f3, 0x00edf4f1, 0x00eaf1eb,
- 0x00ddf1f1, 0x00eff1f5, 0x00e9e7ea, 0x00e7e7e9, 0x00daede7, 0x00e9e3e2, 0x00f7dcdc, 0x00dc9aa8, 0x00b78286, 0x00e5dbce, 0x00dfebdc, 0x00dce1df, 0x00e6e7ea, 0x00e6eae9, 0x00ebf0ec, 0x00e6ebe7,
- 0x00e6e1e4, 0x00e8e7e9, 0x00eceeed, 0x00edf2ef, 0x00eff3f0, 0x00dfeee6, 0x00ebf6f0, 0x00eae8eb, 0x00f4ebec, 0x00eeebe2, 0x00f2e3d6, 0x00a97e6e, 0x00750d0b, 0x00832223, 0x00873e3d, 0x0083645e,
- 0x00f1f4f0, 0x00e9ece8, 0x00fdffff, 0x00fdfdfe, 0x00fefdfc, 0x00fbf9f9, 0x00edeaee, 0x00d3d0d4, 0x00cfd3d0, 0x00dcdfdc, 0x00eff0ec, 0x00f3f5ef, 0x00fbfcf8, 0x00fcfdf9, 0x00fffefb, 0x00ffffff,
- 0x00f5f9ee, 0x00f6f9f3, 0x00fbfcfb, 0x00fbfcfd, 0x00fefefe, 0x00fbfcf8, 0x00fdfdf9, 0x00fffefd, 0x00f9fdf6, 0x00f7fbf4, 0x00fbfbf7, 0x00fefdfa, 0x00fdfefb, 0x00fdfdfb, 0x00fffdfc, 0x00fefdfc,
- 0x00f9fdf3, 0x00f8fbf3, 0x00fdfcf8, 0x00fffdfc, 0x00ffffff, 0x00f9f9f9, 0x00f6f3f3, 0x00edeae9, 0x00d6dad2, 0x00cccfc8, 0x00c4c3c2, 0x00bdbbbc, 0x00b1b2b1, 0x00989999, 0x00a7a5a9, 0x00d9d7db,
- 0x00dde1db, 0x00dbe0d8, 0x00dfdfde, 0x00e6e7e6, 0x00f0f0f0, 0x00edf3ee, 0x009faebb, 0x00718dbc, 0x00b4a5b4, 0x00d9a99d, 0x00f6c2b7, 0x00f0d9d2, 0x00a9b4b7, 0x00686c61, 0x00454a3e, 0x00404a43,
- 0x00283027, 0x000d130c, 0x00151815, 0x001d201e, 0x001f2220, 0x00202622, 0x001e2521, 0x001c2420, 0x00131f16, 0x00142016, 0x0019241a, 0x00162017, 0x00182118, 0x00182019, 0x001b221c, 0x001b221c,
- 0x00142212, 0x00142112, 0x0019231a, 0x001b251e, 0x001b251c, 0x001d261e, 0x0019231b, 0x001e291f, 0x00182518, 0x00101b10, 0x00585f58, 0x00c6ccc8, 0x00fbfdfd, 0x00fbfdfe, 0x00fffeff, 0x00fffeff,
- 0x00d8d4ca, 0x00776761, 0x00301516, 0x00432423, 0x00523e36, 0x00544c3a, 0x0055513f, 0x00555040, 0x004f4127, 0x004b321e, 0x00521e14, 0x005f090a, 0x005c0303, 0x005e0507, 0x0062090c, 0x00620808,
- 0x00540a00, 0x00510b00, 0x00590f08, 0x005d150b, 0x00651c13, 0x00671f14, 0x00661f15, 0x00642112, 0x004e1e02, 0x00491900, 0x00481700, 0x004c1a03, 0x00511909, 0x0054180d, 0x005a140e, 0x005d1312,
- 0x00520e02, 0x004f1007, 0x004a0f0c, 0x003c0c0d, 0x00290b0b, 0x00190707, 0x00130809, 0x00110d0d, 0x000d1308, 0x00121b0c, 0x001f1d18, 0x00261e1d, 0x0029231d, 0x002e2719, 0x003a2a1f, 0x00442e1e,
- 0x00432b10, 0x003f2510, 0x00341a11, 0x0025140b, 0x000f1108, 0x000b0f0b, 0x00111012, 0x00171318, 0x001a2019, 0x00313531, 0x004c4d4c, 0x005b5c5a, 0x006c6c68, 0x006b6c67, 0x00676663, 0x005e5d5a,
- 0x0049503e, 0x00434737, 0x00484642, 0x00474848, 0x0061626b, 0x0082878c, 0x00b2b3bf, 0x00cecddd, 0x00dedce6, 0x00d6d5e1, 0x00ddd5e1, 0x00d4d1d0, 0x00c6c3c1, 0x00b9b5b3, 0x00a8a4a5, 0x009f9d9f,
- 0x00abb1ac, 0x00bfc5c1, 0x00adaeb3, 0x00afafb9, 0x0082828b, 0x00514b54, 0x0033272f, 0x002f2329, 0x003b3839, 0x004b494b, 0x00615d60, 0x00716d6f, 0x0099999b, 0x00b2b1b3, 0x00949296, 0x005e5c64,
- 0x00171d13, 0x00060501, 0x00201e21, 0x003d3c44, 0x00524e5a, 0x00322f40, 0x00110f26, 0x000f0a29, 0x00080e29, 0x00060929, 0x00090a2a, 0x000a0d1e, 0x00090d25, 0x00060c27, 0x00050b2b, 0x00050a2c,
- 0x00000a1d, 0x00040717, 0x00110a1c, 0x00362632, 0x00a48b93, 0x00c5c2c8, 0x00a3abb4, 0x00a9acb5, 0x00b1b6b0, 0x00bcbeb7, 0x00a29f96, 0x00423e34, 0x00141009, 0x00110e05, 0x0077756f, 0x00efedeb,
- 0x00fbfbf9, 0x00f8f9f8, 0x00fefefe, 0x00fbfbfb, 0x00f2f2f2, 0x00f6f6f6, 0x00fcfcfd, 0x00fbfbfd, 0x00f8faf6, 0x00fafef9, 0x00bbc1c0, 0x00596a6b, 0x004a565d, 0x003d4e57, 0x0032404e, 0x00253243,
- 0x000d2029, 0x000a151f, 0x001c1c2a, 0x002e2838, 0x00463d4c, 0x004c4c53, 0x0050525a, 0x004f5155, 0x003d3e37, 0x00383830, 0x003d3631, 0x00413733, 0x00443d38, 0x00494241, 0x004f474a, 0x004f484d,
- 0x003e4437, 0x003f4339, 0x0044453e, 0x00494a41, 0x00535447, 0x005c5d4d, 0x00646455, 0x00676558, 0x005c614f, 0x00575c4c, 0x0057584b, 0x00585648, 0x00656255, 0x006a685d, 0x007a796e, 0x00807f70,
- 0x00757b62, 0x00676951, 0x005c5443, 0x004d4433, 0x00433127, 0x00413627, 0x004b4134, 0x00595143, 0x0058624a, 0x0062644f, 0x00716154, 0x00765b51, 0x00795348, 0x00704b3f, 0x00653f36, 0x005a362d,
- 0x002f3326, 0x0025271d, 0x001c1a16, 0x00181514, 0x00151413, 0x0011110d, 0x001a1812, 0x0028221a, 0x002f2919, 0x003a3220, 0x004c4032, 0x005c4e44, 0x006a5d56, 0x006e6462, 0x00776e73, 0x00817a82,
- 0x00777e79, 0x00787e79, 0x007b7d7c, 0x00787778, 0x006e6a69, 0x00585b56, 0x00434645, 0x0038383e, 0x00292a28, 0x0023241e, 0x001d1b15, 0x001a190f, 0x0023201a, 0x00353234, 0x0053505a, 0x005f5d6e,
- 0x00235065, 0x001d4166, 0x001a386f, 0x001a3579, 0x00283e81, 0x00283e6f, 0x00536885, 0x00a2b1c0, 0x00ddf0e4, 0x00eef9ec, 0x00f0f8ef, 0x00e5efea, 0x00f6eff5, 0x00d3d0f0, 0x00737eb3, 0x003a5da7,
- 0x00547bab, 0x00a1b2c4, 0x00dcd8dd, 0x00d5cac4, 0x00ccd8e1, 0x00dae1e4, 0x00e2e1e9, 0x00dedfe2, 0x00d4dfdc, 0x00d8e2e1, 0x00dee5e7, 0x00e5edf0, 0x00e7ecef, 0x00eff3f6, 0x00dbdbe0, 0x00726f76,
- 0x00070b05, 0x000c0e0a, 0x00171615, 0x00201f1e, 0x002f2e2c, 0x00343332, 0x002e2b2d, 0x00635e63, 0x00dbded7, 0x00f9fbf8, 0x00fefdfd, 0x00fcfdfd, 0x00fbfeff, 0x00e0e1dd, 0x006a5f58, 0x0038211c,
- 0x004c2a1a, 0x00673c2b, 0x007c4b3b, 0x00845341, 0x007d553b, 0x005a3d38, 0x00210c14, 0x00170c12, 0x0003100e, 0x00051210, 0x000a1415, 0x000d1214, 0x00111015, 0x000e1113, 0x000e1213, 0x000b1513,
- 0x00061205, 0x000a110e, 0x00101014, 0x00140e19, 0x00130e13, 0x000f1007, 0x000f1209, 0x0013140c, 0x0008120f, 0x000d151b, 0x001b2449, 0x00142876, 0x001a2e84, 0x00273b97, 0x002f42a4, 0x002c3ea3,
- 0x001f3d91, 0x00203b90, 0x00213b92, 0x00203b8f, 0x001f3989, 0x0022368d, 0x00243391, 0x0024318e, 0x001b3085, 0x001c3086, 0x001d3087, 0x001d2e85, 0x001c2b83, 0x001d2c83, 0x001e2c83, 0x001d2c82,
- 0x00182a62, 0x000f2c7f, 0x001d2d90, 0x003d3994, 0x00974254, 0x00be4a2d, 0x00d25022, 0x00d7572c, 0x00d7572e, 0x00e75529, 0x00ec6038, 0x00de6e3a, 0x00e07a47, 0x00d67e47, 0x00d47f4e, 0x00d38159,
- 0x00cc8658, 0x00d58d6d, 0x00dd9180, 0x00d8958a, 0x00cb948a, 0x00c49388, 0x00c6928c, 0x00c89285, 0x00cc916f, 0x00cc9169, 0x00d0926e, 0x00c7936d, 0x00c49c84, 0x00cfb1a5, 0x00f0dada, 0x00fef2fc,
- 0x00f3f6df, 0x00f8f6ec, 0x00faecf3, 0x00f7f0fc, 0x00ebedff, 0x00dce6fa, 0x00b1b5d1, 0x009289a7, 0x00907483, 0x009f727f, 0x00ad6778, 0x00b46168, 0x0070669a, 0x003a5fb5, 0x00245fc8, 0x003571d9,
- 0x00395276, 0x006c696c, 0x00faeee4, 0x00fffaed, 0x00f1feff, 0x00f7fbfa, 0x00fefbff, 0x00d0c9ca, 0x0044413a, 0x00454744, 0x0092979f, 0x00abbbc5, 0x00545e6b, 0x0013181e, 0x00191213, 0x002c1b18,
- 0x004f3f2a, 0x0068543e, 0x006b4a3d, 0x006e4938, 0x0079513e, 0x007c5841, 0x00886452, 0x00987367, 0x00927d6c, 0x009a867b, 0x00a69a8d, 0x00959c7f, 0x00828f64, 0x00778951, 0x007c8e52, 0x007b9155,
- 0x0075954d, 0x00789654, 0x007f985c, 0x00809858, 0x00849e55, 0x00849a5f, 0x00889b68, 0x00899d6b, 0x00839d61, 0x00819a5e, 0x00819961, 0x00829963, 0x00839862, 0x00859964, 0x00889b67, 0x00899c67,
- 0x007b9958, 0x007d985b, 0x00839863, 0x00839761, 0x00879b65, 0x0084995f, 0x00889c66, 0x00889a65, 0x007c995a, 0x007d975c, 0x00829557, 0x00839244, 0x007b935d, 0x0078926d, 0x00879989, 0x009aa298,
- 0x007a7356, 0x006d5436, 0x007d5239, 0x00905c41, 0x008e5c43, 0x0081624b, 0x00886b53, 0x008f6840, 0x00a06f41, 0x00ae8060, 0x00aa8266, 0x009b815b, 0x00858941, 0x007e8c4e, 0x00b8c3a1, 0x00eff5f6,
- 0x00f2fdf0, 0x00f2faf1, 0x00fefff9, 0x00fffdf4, 0x00daddbe, 0x0099a069, 0x00919851, 0x00919a49, 0x008c9a3f, 0x008d9744, 0x008d9447, 0x00858b3d, 0x007c7f3b, 0x00727437, 0x00626533, 0x0051562d,
- 0x002c3c12, 0x001f2e12, 0x00131f11, 0x000f1d15, 0x00111d1a, 0x00131913, 0x00131710, 0x00151d1b, 0x00081d16, 0x00091c16, 0x001d2a28, 0x004b5357, 0x008a8eaa, 0x007474ae, 0x00474998, 0x00444bad,
- 0x00254590, 0x00284597, 0x002d45a1, 0x002d44a7, 0x002e44ab, 0x002f45ac, 0x003248ae, 0x003449ae, 0x00304da7, 0x00314da7, 0x00364bb1, 0x003c48ba, 0x003c4da1, 0x004656a9, 0x004d5cbb, 0x004553c0,
- 0x003246a0, 0x00324a85, 0x006375a1, 0x00a5b2c7, 0x009ca9b5, 0x006779a5, 0x0049598a, 0x007e8e9e, 0x00d7e3b0, 0x00f3ecae, 0x00ddc28a, 0x00d4ac7c, 0x00e5ba99, 0x00d5ba96, 0x00988b5f, 0x005a5c2c,
- 0x001a2b13, 0x000e1e0d, 0x0019241c, 0x00111e19, 0x000c1f1b, 0x000a211b, 0x000b1f1e, 0x000d1d1e, 0x00041b09, 0x00051505, 0x00081009, 0x00080f0d, 0x00090d0a, 0x00080d0b, 0x000a0e0d, 0x000a0d0f,
- 0x00000c01, 0x00000a02, 0x00040906, 0x00050908, 0x00030908, 0x00020707, 0x00060708, 0x00070709, 0x00000500, 0x00000500, 0x00010603, 0x00010503, 0x00010505, 0x00020606, 0x00020505, 0x00020404,
- 0x00000300, 0x00000101, 0x00040408, 0x00040205, 0x00080202, 0x0022190d, 0x00554332, 0x0050341f, 0x0061441d, 0x007f5d32, 0x00785131, 0x005f3c20, 0x004e2c0e, 0x004c2a0a, 0x005c3619, 0x005f3d1b,
- 0x00614914, 0x006b501b, 0x00795926, 0x0081602a, 0x00816026, 0x00664e33, 0x00493845, 0x00433575, 0x00354591, 0x002d49a0, 0x00294bb4, 0x002344bd, 0x004a5fa6, 0x00a6b0c7, 0x00fcfcff, 0x00fff5fe,
- 0x00f4fce4, 0x00f2f9f2, 0x00f1f9ff, 0x00707ca9, 0x004559af, 0x004a66c0, 0x00516ad0, 0x00516cd1, 0x00486ac9, 0x004161bc, 0x003551b2, 0x002a46a6, 0x00324eb0, 0x003f5ab9, 0x002a40a6, 0x00182e91,
- 0x001c398b, 0x003a55ab, 0x002e439f, 0x004558b1, 0x004454b1, 0x00293f94, 0x002d3f99, 0x002e3d9c, 0x00294297, 0x003249a2, 0x003249aa, 0x003850b0, 0x00455dc0, 0x004f68cd, 0x00526bd4, 0x00546cd9,
- 0x004574cc, 0x005076d1, 0x005873d2, 0x00556bcb, 0x004963c7, 0x00435fc3, 0x003953b6, 0x00263b9a, 0x0029377c, 0x001d1f5d, 0x00150d4d, 0x001f1b56, 0x00271b44, 0x00281929, 0x00301617, 0x00371808,
- 0x00321900, 0x00271100, 0x001f0d12, 0x00797981, 0x0060778f, 0x0038587f, 0x0026497b, 0x00234c7f, 0x001b4c7c, 0x00285176, 0x00415c78, 0x00222f3b, 0x00170e0c, 0x00261610, 0x00321e18, 0x00412825,
- 0x003d2a16, 0x0038241c, 0x002c151e, 0x001a091e, 0x000e0721, 0x0007091f, 0x00131a33, 0x0035415f, 0x00435f80, 0x004a638f, 0x005671a9, 0x00466ba7, 0x004e6ea0, 0x0058749b, 0x008394b1, 0x009fa2b5,
- 0x00393831, 0x00200f07, 0x00361410, 0x003d110d, 0x00521b1c, 0x00492b26, 0x003e2c2b, 0x002a1b19, 0x006a6a65, 0x00c9cccb, 0x00edf3f6, 0x00e8f0f4, 0x00e6f0f1, 0x00ebf2f4, 0x00f0f1f6, 0x00efeef6,
- 0x00d6f2e4, 0x00ebe9e7, 0x00f5dae9, 0x00f7daee, 0x00dde6ef, 0x00d5e5e5, 0x00e9f1f1, 0x00fbe9f0, 0x00d2beb1, 0x00c1c4ad, 0x00e6ebde, 0x00e2e6e7, 0x00e6e9e8, 0x00e8edea, 0x00e4e7e8, 0x00dfdde0,
- 0x00dee6e1, 0x00e4eee8, 0x00eaeced, 0x00f0f3f4, 0x00eef1f0, 0x00ddefe5, 0x00f2f7f6, 0x00f9ebf7, 0x00f1eeee, 0x00e5f0e6, 0x00f0f1e4, 0x00e4d4c0, 0x0088322e, 0x00741c1e, 0x008b4044, 0x008b5f64,
- 0x00f8f7f8, 0x00f2f2f1, 0x00fefeff, 0x00fdfdfe, 0x00ffffff, 0x00fdfdfc, 0x00c7c7c8, 0x00696968, 0x0051514f, 0x00696a68, 0x007f807d, 0x00949591, 0x00aaaba8, 0x00bcbdbb, 0x00d4d5d2, 0x00e6e7e6,
- 0x00f4f4f1, 0x00f7f7f6, 0x00f9f9f9, 0x00f8f8f8, 0x00fcfbfc, 0x00fdfefb, 0x00fdfef9, 0x00fbfcf9, 0x00fcfefa, 0x00fcfefa, 0x00fcfbf9, 0x00fbf9f7, 0x00fafbf9, 0x00fdfefc, 0x00fefdfd, 0x00fdfdfd,
- 0x00fafbfb, 0x00fafbfa, 0x00fbfaf9, 0x00fdfcfb, 0x00fafdfb, 0x00fbfdfc, 0x00fdfdfd, 0x00fdfdfd, 0x00fcfef9, 0x00fcfffa, 0x00fafaf9, 0x00faf8fa, 0x00f8f7f7, 0x00f5f4f4, 0x00eeedef, 0x00f4f4f5,
- 0x00f2eff2, 0x00f2f2f3, 0x00f0f1f2, 0x00f0f2f0, 0x00f1f1f1, 0x00e7e9e1, 0x00afc0c1, 0x009dc2e0, 0x00d4ced9, 0x00d4b0a6, 0x00dcb9ab, 0x00cfc7c0, 0x00bed5d8, 0x00bcc7c0, 0x00676f61, 0x00232d20,
- 0x001d1e1a, 0x00161814, 0x001a1d19, 0x00181c18, 0x001a1e1a, 0x00232824, 0x00222724, 0x001d2520, 0x0016221b, 0x0017231c, 0x0018231b, 0x00172219, 0x00162018, 0x00141d15, 0x00161e17, 0x00182019,
- 0x00152017, 0x00152017, 0x00172019, 0x0018221b, 0x001a231a, 0x001d271d, 0x0019231a, 0x001b251c, 0x001d241d, 0x00161d16, 0x00525752, 0x00c1c6c1, 0x00fbfdfb, 0x00fcfefc, 0x00fefefe, 0x00fefefe,
- 0x00e8dfda, 0x008e7070, 0x00380c0d, 0x004c1a18, 0x005b3028, 0x005c412f, 0x00594830, 0x00544630, 0x00583622, 0x00582718, 0x005a140d, 0x00610607, 0x005c0504, 0x005c0807, 0x005a0b08, 0x00560e05,
- 0x00551709, 0x00511709, 0x0054180c, 0x00571d0f, 0x005b2113, 0x005e2215, 0x005e2114, 0x005a1f10, 0x004f1c07, 0x004a1603, 0x00481502, 0x004c1a07, 0x004e1b0b, 0x004e1b0d, 0x0051190f, 0x00541b15,
- 0x005b160d, 0x00581710, 0x004f1210, 0x00431011, 0x00300e0e, 0x00200c0a, 0x00170a07, 0x00160f0a, 0x0013120b, 0x00151812, 0x001e1c1b, 0x0026201f, 0x002e261f, 0x0036291c, 0x00462f1e, 0x0056371f,
- 0x005b3118, 0x00582d17, 0x004b2413, 0x00371c09, 0x001b1402, 0x00121106, 0x0011110c, 0x0011100e, 0x00171916, 0x002e2f2f, 0x0049484a, 0x00595958, 0x00676865, 0x00656761, 0x005e5f58, 0x0054544a,
- 0x00464233, 0x00403b30, 0x00423c36, 0x003c3939, 0x00646468, 0x00999da4, 0x00aaadb6, 0x00afb1bd, 0x00d9d7e8, 0x00dddced, 0x00d2cfde, 0x00cccdd3, 0x00bcbcbf, 0x00b0adaf, 0x00a09c9d, 0x00979392,
- 0x00b0aeaa, 0x00d5d3d3, 0x00dedce0, 0x00e0e1e7, 0x00b3b6bd, 0x0076757c, 0x00544e56, 0x00625b66, 0x0097959c, 0x00b5b4bb, 0x00bebcc4, 0x00cdced6, 0x00e0e4ed, 0x00d2d7de, 0x00a7abb0, 0x008b8f94,
- 0x00555a58, 0x002f2e2e, 0x0049484b, 0x005c5b61, 0x00615e68, 0x00464450, 0x0019182b, 0x0006031e, 0x00030726, 0x0004082b, 0x00060627, 0x000b0a1d, 0x00070824, 0x00030927, 0x00030a29, 0x0001092a,
- 0x0002071e, 0x000a051a, 0x00140618, 0x003a2129, 0x00a28188, 0x00cac3c7, 0x00a6b0b4, 0x00a2a8ad, 0x00b0afab, 0x00c2bfbb, 0x00b2ada5, 0x00615d53, 0x00232015, 0x00181509, 0x00737166, 0x00ecebe3,
- 0x00fcfcfd, 0x00fafafa, 0x00fefdfe, 0x00f9f9f9, 0x00f0f0f0, 0x00f5f5f4, 0x00fcfcfc, 0x00fcfcfc, 0x00fcfafb, 0x00fefffd, 0x00bbc1c0, 0x005d6c6b, 0x004b5a5b, 0x0045555a, 0x00374651, 0x002a3745,
- 0x00142332, 0x00111a2a, 0x001c1d30, 0x002b273b, 0x003f3a4b, 0x0043454e, 0x00454a4f, 0x0044474a, 0x003a3936, 0x00373430, 0x003b3330, 0x003e3532, 0x00413c37, 0x0046433f, 0x004a4748, 0x004b494b,
- 0x0045443d, 0x00424039, 0x00403f35, 0x00424335, 0x00464838, 0x00494b3b, 0x004c4c3f, 0x004d4c40, 0x004f4c42, 0x0052514a, 0x0055544c, 0x005d5c50, 0x006a6b5e, 0x00707265, 0x007c7d6f, 0x00808172,
- 0x00727564, 0x00656554, 0x00575144, 0x00473f33, 0x00382b22, 0x00352b1f, 0x003a3226, 0x00433e32, 0x00484c41, 0x00525447, 0x005c544b, 0x00604f48, 0x00674b44, 0x0060453c, 0x00553b31, 0x004c3728,
- 0x00332f26, 0x0027251d, 0x001b1915, 0x00151512, 0x00121411, 0x0014150f, 0x00211d15, 0x002f261d, 0x003c2f22, 0x00453627, 0x00503f31, 0x00594a3e, 0x0063574f, 0x00625a57, 0x00615e60, 0x00656369,
- 0x00616267, 0x00616367, 0x00656569, 0x00646365, 0x005c5958, 0x004e4e4b, 0x003e3f3e, 0x00363435, 0x002d2c28, 0x00252422, 0x001c1b19, 0x001b1a19, 0x001b1a1a, 0x00232322, 0x003a393b, 0x004a494c,
- 0x003d5873, 0x002e446c, 0x002e4473, 0x00364c83, 0x00334878, 0x00233956, 0x00536679, 0x00a4b2b7, 0x00e3ede8, 0x00f0f6f1, 0x00eef4ed, 0x00ebf0ec, 0x00f7f1f4, 0x00d1d5f4, 0x006b7fb0, 0x00365fa6,
- 0x006281ae, 0x00b7bdcc, 0x00d2cbc8, 0x00cfc2ba, 0x00cad6e0, 0x00d4dbde, 0x00d6dddd, 0x00d8dada, 0x00d3d9d9, 0x00d8dedf, 0x00dce1e3, 0x00e4eaeb, 0x00e4eaea, 0x00f0f6f5, 0x00dcdedf, 0x0077787a,
- 0x00050503, 0x000a0908, 0x000f0d0e, 0x00151414, 0x00222120, 0x00292a28, 0x00262525, 0x00585657, 0x00d9d9d6, 0x00fdfdfc, 0x00fefdfd, 0x00fdfdfc, 0x00fcfefd, 0x00e5e6e1, 0x0070685f, 0x0036251d,
- 0x0051291e, 0x00683a2d, 0x007d4c3e, 0x00875847, 0x00755136, 0x004d332d, 0x0018090e, 0x00120d0f, 0x0007100e, 0x00091210, 0x000b1212, 0x000f1012, 0x00130f13, 0x00100f11, 0x000e1111, 0x000c1411,
- 0x000d1107, 0x000e100f, 0x00100f14, 0x00130f19, 0x00110f13, 0x0010130b, 0x000d1108, 0x0011140b, 0x000c1011, 0x00111319, 0x001d2344, 0x001d3277, 0x00152974, 0x00122775, 0x001c3185, 0x00253891,
- 0x00213991, 0x0021388f, 0x001f388d, 0x001c3787, 0x001c3680, 0x001f3487, 0x0021328d, 0x0020318d, 0x001e3088, 0x001e2f87, 0x001d2e85, 0x001b2c81, 0x001b2b80, 0x001a2b7f, 0x001a2c7e, 0x00182a7d,
- 0x001d2f62, 0x00142d7c, 0x001b2c8d, 0x0028288f, 0x00702f5a, 0x00b14844, 0x00dc592f, 0x00e7531a, 0x00e9471a, 0x00f24326, 0x00ee3e23, 0x00f3431c, 0x00f04620, 0x00e74821, 0x00da491f, 0x00d14524,
- 0x00d5593b, 0x00e3735d, 0x00e38770, 0x00d28d7a, 0x00c59482, 0x00c9978e, 0x00c7968b, 0x00cc9586, 0x00cc9377, 0x00cd9271, 0x00c98e6d, 0x00ca9170, 0x00bc9178, 0x00bd9885, 0x00d4b9aa, 0x00eed8ce,
- 0x00ebefee, 0x00f4f8f9, 0x00f0f0f7, 0x00f5f2fc, 0x00f4eff8, 0x00f9f4f1, 0x00eed6c9, 0x00c4967e, 0x00c96a42, 0x00e46e40, 0x00e96236, 0x00f05b34, 0x00b16d71, 0x00716d98, 0x003258a6, 0x003068c9,
- 0x005671a8, 0x009b9eb2, 0x00fcf7f1, 0x00fffbef, 0x00f0ffff, 0x00fafefb, 0x00fdfdf9, 0x00c5c0b9, 0x004c4740, 0x00595959, 0x00949ca5, 0x00b9cddb, 0x006a8092, 0x00243644, 0x0029343d, 0x003c3e44,
- 0x00634a3f, 0x00725a4b, 0x00694d3e, 0x00634432, 0x0063412b, 0x00613f2b, 0x00644534, 0x0064483d, 0x0065554e, 0x007b6c69, 0x00857e7b, 0x00889084, 0x00869374, 0x007b8b63, 0x00728352, 0x00778a53,
- 0x00769058, 0x007b945d, 0x007f965d, 0x007f9857, 0x00819d50, 0x00829a5b, 0x00889c64, 0x00889d67, 0x00889e66, 0x00869c64, 0x00859b66, 0x00859a65, 0x00859a63, 0x00859b63, 0x00869b65, 0x00879d65,
- 0x0082985e, 0x00839961, 0x00859a63, 0x00879b66, 0x008a9e66, 0x008da16b, 0x008a9e68, 0x00889d68, 0x008a9f6a, 0x00889c6c, 0x00889563, 0x00969762, 0x0085987d, 0x00779489, 0x008caaac, 0x00b4c8d2,
- 0x00c0b1ac, 0x00a48376, 0x00946b55, 0x00885d46, 0x007a5541, 0x0070594b, 0x0071604b, 0x00745c37, 0x00916544, 0x00aa816a, 0x00ad8d75, 0x009a8a66, 0x00828947, 0x007f8c53, 0x00b9c5a4, 0x00eff5f5,
- 0x00f8fbf8, 0x00f7faf8, 0x00fffefc, 0x00fefdf5, 0x00d4d8bb, 0x008e9663, 0x00858d4b, 0x00868f43, 0x00868e42, 0x00888d4a, 0x00858948, 0x007b7f3d, 0x006e7236, 0x00646932, 0x0052592a, 0x00424a24,
- 0x002d391b, 0x00202c18, 0x00112013, 0x000c1e14, 0x000c1e17, 0x00121d13, 0x0010190f, 0x00111f1b, 0x0005191c, 0x000c1e24, 0x00394452, 0x00626a80, 0x00686e9b, 0x004f569c, 0x002f3d95, 0x00293ea5,
- 0x00273f98, 0x00283f9b, 0x002b40a1, 0x002e43a4, 0x002d43a4, 0x002d43a4, 0x003146a5, 0x003348a6, 0x003748a2, 0x003c4ea4, 0x004352ae, 0x00434abf, 0x00465698, 0x006978bd, 0x007d8bda, 0x004f59c3,
- 0x003741a1, 0x00545f95, 0x00a0aec1, 0x00b7c5bd, 0x00979e9d, 0x00576993, 0x002d477f, 0x00465f81, 0x00b1bcab, 0x00ece3bf, 0x00d0b480, 0x00be9357, 0x00c7945a, 0x00deb477, 0x00e2bf82, 0x00c6af6f,
- 0x00726a4c, 0x0038351a, 0x001b1b08, 0x001b2112, 0x00131e16, 0x000c1e15, 0x000a1e17, 0x000a1d17, 0x0009170d, 0x00061408, 0x00040f08, 0x00080f0d, 0x00080d0c, 0x000b0f0f, 0x00070c09, 0x00080d0a,
- 0x00050a09, 0x00050b09, 0x00050907, 0x00030805, 0x00040a07, 0x00040807, 0x00030605, 0x00030705, 0x00000703, 0x00000603, 0x00000504, 0x00000503, 0x00000503, 0x00000603, 0x00010603, 0x00010603,
- 0x00010408, 0x00000204, 0x00040404, 0x00050302, 0x000c0500, 0x00423628, 0x007c6951, 0x00755a3a, 0x007e5b31, 0x008b6438, 0x00855a33, 0x00775130, 0x006b4726, 0x00633f1c, 0x006c4524, 0x0079532e,
- 0x007c572a, 0x0086612f, 0x00916b35, 0x009c763c, 0x009f7b3c, 0x0077634c, 0x0050475c, 0x00423c82, 0x0034449b, 0x002944a6, 0x002543ac, 0x002640b3, 0x005365a5, 0x00b0bbcc, 0x00fbfdfd, 0x00fff9ff,
- 0x00fdfdec, 0x00f7f8f9, 0x00e7eefc, 0x00676ea6, 0x0032479e, 0x003d56b1, 0x004e6bcc, 0x004d6dcc, 0x004d6cc7, 0x004f6dcd, 0x003e5bbe, 0x003655b8, 0x002745aa, 0x003a56ba, 0x00344dad, 0x00142c89,
- 0x000f2682, 0x00203490, 0x00293d98, 0x00273991, 0x003c4fa8, 0x002d3e94, 0x001f3185, 0x0016277d, 0x001e3186, 0x002a3f9a, 0x003349a6, 0x003952b1, 0x003f5abc, 0x004660c5, 0x00566fd5, 0x00506ad2,
- 0x004a74d3, 0x005173d3, 0x00546ece, 0x005e73d1, 0x004662c1, 0x004663c4, 0x003d5bbb, 0x002f49a6, 0x002e3a85, 0x00191b5e, 0x00010044, 0x00070458, 0x000b1854, 0x00151f44, 0x0011111e, 0x001f110e,
- 0x00280a01, 0x00361b0c, 0x005c4537, 0x00c0b6ab, 0x00c1c9c6, 0x008fa2b2, 0x005f7892, 0x00456184, 0x00325c81, 0x002b4f6d, 0x00243d54, 0x001e2a35, 0x00291f1d, 0x0032231a, 0x0037261b, 0x00402c21,
- 0x00443024, 0x003a2424, 0x00220b1a, 0x0015041b, 0x0010081f, 0x000f0c1f, 0x00040418, 0x0005081c, 0x00070d29, 0x001c1e44, 0x0039446d, 0x005a779d, 0x007189a7, 0x00a1b3cb, 0x00bcc6d7, 0x00cac8d3,
- 0x00867d7e, 0x00412c2e, 0x002f1615, 0x00442521, 0x005c3a39, 0x005e4847, 0x00433637, 0x00302426, 0x00817f7e, 0x00d8d9d9, 0x00edeef1, 0x00ebeff3, 0x00edf4f6, 0x00e8eef1, 0x00e6e9ed, 0x00e8ebf0,
- 0x00e5efec, 0x00eedee6, 0x00f2d6e6, 0x00f6d5e7, 0x00dee1e9, 0x00e1f2f0, 0x00daf0e9, 0x00ebf6f2, 0x00f8f7f0, 0x00f6f7ee, 0x00f7fbf0, 0x00f3f7f6, 0x00edf1f0, 0x00eaebea, 0x00e5eae5, 0x00e3e4e5,
- 0x00e7ede8, 0x00eaeced, 0x00eef3f2, 0x00f0f4f2, 0x00edeff0, 0x00f2f5f4, 0x00ecefef, 0x00efe8f2, 0x00edeef6, 0x00e2ecea, 0x00e4ebe4, 0x00f1e7da, 0x00cd9993, 0x00692b29, 0x00783f44, 0x0084575e,
- 0x00fbfafb, 0x00f7f7f6, 0x00fffeff, 0x00fdfefe, 0x00fefefe, 0x00fefefd, 0x00ababab, 0x002c2d2d, 0x00050304, 0x00080808, 0x000a0b0b, 0x00121213, 0x00292828, 0x00383737, 0x004d4c4d, 0x00606161,
- 0x007c7d7d, 0x008c8d8d, 0x00a2a3a2, 0x00b6b6b5, 0x00cececd, 0x00dcdcd9, 0x00e8e8e5, 0x00f2f2f0, 0x00f8faf9, 0x00fbfdfb, 0x00fffefe, 0x00fefdfe, 0x00fbfbfc, 0x00fcfbfc, 0x00fdfbfd, 0x00fcfafd,
- 0x00fcfdfd, 0x00fcfefd, 0x00fefffe, 0x00fffffd, 0x00fffffd, 0x00fffffe, 0x00fefefd, 0x00fefffe, 0x00fcfefc, 0x00fbfcfa, 0x00fefdfe, 0x00fefdfe, 0x00fafaf9, 0x00fefefd, 0x00fcfcfc, 0x00fdfdfc,
- 0x00faf9fa, 0x00f9faf7, 0x00fafafa, 0x00f8f8f9, 0x00f8f7f8, 0x00f4f0e5, 0x00dde9e3, 0x00c3e8fe, 0x00dedcea, 0x00d3b6ab, 0x00cbb3a6, 0x00acaeab, 0x00a3c0c4, 0x00c9d5cf, 0x007b8076, 0x002e2e27,
- 0x0020221f, 0x00171915, 0x00141713, 0x00121713, 0x001a201d, 0x00202723, 0x001f2520, 0x001d221c, 0x001a231f, 0x001a231e, 0x0018211b, 0x00172018, 0x00182019, 0x00171f17, 0x00182119, 0x00182119,
- 0x00171f16, 0x00171f16, 0x00192119, 0x001a231b, 0x001a2219, 0x001b241b, 0x00182118, 0x001a231a, 0x001e251f, 0x00161e18, 0x004a504c, 0x00b2b8b4, 0x00fefefe, 0x00feffff, 0x00fdfbfd, 0x00fdfcfe,
- 0x00f1e9e6, 0x009f7d7d, 0x003a0808, 0x00521215, 0x005e241a, 0x005e3324, 0x00593a24, 0x00523921, 0x005a2d19, 0x005d1d10, 0x005f0e0a, 0x005f0505, 0x005a0a07, 0x00570a06, 0x00540f08, 0x004f1408,
- 0x00552015, 0x00522315, 0x0056271a, 0x0057291a, 0x0054281a, 0x00572717, 0x00552414, 0x00511e0e, 0x004d1b07, 0x004b1705, 0x004b1603, 0x004d1b07, 0x004d1b0b, 0x004c1f11, 0x004f2116, 0x0050251b,
- 0x0066221a, 0x005f2018, 0x00541b16, 0x00441412, 0x00341412, 0x00240e0c, 0x001c0d0a, 0x0019100a, 0x00181410, 0x001a1a14, 0x00201c1a, 0x00241d1f, 0x002d241e, 0x003a2c1c, 0x004e351f, 0x00623c21,
- 0x00723720, 0x006e361d, 0x00612e18, 0x004a240d, 0x00291902, 0x00181407, 0x0011130b, 0x000f1109, 0x00181917, 0x002b2b2a, 0x00444444, 0x00555553, 0x00626460, 0x005f615b, 0x0056584e, 0x00494c3e,
- 0x004f3f30, 0x0045382c, 0x00453b32, 0x00302e26, 0x00595a59, 0x00a9acb0, 0x00cacad3, 0x00c4c3cf, 0x00dbdeeb, 0x00dce0eb, 0x00cfceda, 0x00c8cbd3, 0x00bab9bf, 0x00aca9ae, 0x00a09c9e, 0x008f8a8b,
- 0x00998f8f, 0x00aba4a7, 0x00c9c4c8, 0x00d3d2d4, 0x00ced1d5, 0x00b9bac1, 0x00abaab5, 0x00b3b1bf, 0x00dbd9e5, 0x00e8e8f4, 0x00e2e2ee, 0x00e1e2ee, 0x00e4e8f3, 0x00c9cdd8, 0x00a6aab4, 0x00a7acb4,
- 0x00a7afb3, 0x0095999f, 0x009c9da4, 0x009e9da7, 0x0087858d, 0x00747180, 0x004e4e60, 0x0023253c, 0x000a0d2c, 0x00010a29, 0x00030726, 0x00060520, 0x0001041f, 0x00000523, 0x00020728, 0x0000072b,
- 0x00080624, 0x000d0219, 0x001b0615, 0x003a1a27, 0x009c7272, 0x00cac1c6, 0x00b2b8bc, 0x00a4a8ac, 0x00a9a7a5, 0x00bdb8b3, 0x00b9b1a9, 0x007b7366, 0x00393225, 0x002e2719, 0x00767062, 0x00e8e4d7,
- 0x00fdfdff, 0x00fafafb, 0x00fdfdfd, 0x00f9f9f9, 0x00efefef, 0x00f3f3f3, 0x00fdfdfd, 0x00fdfdfb, 0x00fcfcfc, 0x00fdfefd, 0x00c2c6c4, 0x00646e6b, 0x00505b5b, 0x004a575d, 0x003f4b58, 0x002f3d4b,
- 0x001d283a, 0x00141d31, 0x001c1f36, 0x0025263d, 0x0037354c, 0x003b404b, 0x003d4148, 0x003d3d42, 0x00383636, 0x00373332, 0x003a3331, 0x003c3432, 0x00403a37, 0x00454140, 0x00494547, 0x004a4649,
- 0x00494442, 0x0045403d, 0x00413d37, 0x003f3b30, 0x00403c2f, 0x003c392c, 0x00363329, 0x002f2d25, 0x00363129, 0x0043403c, 0x00544f4a, 0x00605c52, 0x006f6e64, 0x0075756b, 0x007b7c71, 0x00787a71,
- 0x006a6b61, 0x005b5b51, 0x004c483e, 0x003c352e, 0x002f231e, 0x002d201c, 0x002f231e, 0x00302b26, 0x00313a31, 0x003a4239, 0x0045433d, 0x004a403d, 0x00543e3c, 0x004e3c36, 0x0046362c, 0x003f3425,
- 0x002e2b24, 0x0024221b, 0x001b1a15, 0x00181814, 0x00171613, 0x001a1813, 0x00262119, 0x00322a1f, 0x00423325, 0x00483828, 0x00514030, 0x0057483a, 0x005e524b, 0x005e5654, 0x005d595b, 0x005b595f,
- 0x0056545e, 0x0053545a, 0x0057565a, 0x00555654, 0x004e4d4a, 0x00464444, 0x003e393b, 0x00363331, 0x002f2e29, 0x00242321, 0x001d1b1b, 0x001a1a1e, 0x0019191e, 0x00171a1c, 0x00222526, 0x002e3330,
- 0x003c4d6b, 0x00405174, 0x003e4f78, 0x00354772, 0x003d5070, 0x00506375, 0x0085949e, 0x00bbc9c9, 0x00ebeeed, 0x00f8f9f8, 0x00f6f8f7, 0x00edf0e7, 0x00f3eff5, 0x00cbd6f3, 0x00657fb1, 0x00345fa3,
- 0x006f8cb7, 0x00c0c4ce, 0x00c1b4ad, 0x00c4b7a9, 0x00beced5, 0x00c9d3d3, 0x00d2d5d8, 0x00d1d6d9, 0x00d1d7d6, 0x00d3d8d8, 0x00dcdee0, 0x00e7e9eb, 0x00e5e7e9, 0x00eff3f4, 0x00d3d8d9, 0x006d7375,
- 0x00070706, 0x000a0a09, 0x000c0b0b, 0x000e0e0e, 0x00141515, 0x001b1a1b, 0x00191718, 0x004a4749, 0x00cecfd0, 0x00fbfcfd, 0x00fefcfe, 0x00fefdfe, 0x00fcfdfd, 0x00eaebe6, 0x00766e66, 0x0034231b,
- 0x00502a23, 0x0064382e, 0x007e5042, 0x00845949, 0x006e4c34, 0x00432c27, 0x00180b0f, 0x00151213, 0x000c140e, 0x000c150f, 0x000c110f, 0x00120f10, 0x00170d13, 0x00130e13, 0x00111014, 0x000e1215,
- 0x0013130a, 0x0010100f, 0x00100f14, 0x00110f1a, 0x00110f17, 0x00111212, 0x000f110f, 0x000f120c, 0x00100f12, 0x00110f16, 0x001c203d, 0x00213473, 0x00203278, 0x00172874, 0x0016277a, 0x001d2c87,
- 0x00213390, 0x001f338e, 0x001d338a, 0x001b3284, 0x001b317e, 0x001e3184, 0x0020308a, 0x001f2f8a, 0x001e2f88, 0x001e2e87, 0x001d2c84, 0x001c2b81, 0x001c2c81, 0x001d2c80, 0x001c2c80, 0x001b2c7f,
- 0x001d2b68, 0x00112775, 0x001d308a, 0x001a2788, 0x004f2b67, 0x00964757, 0x00db6a51, 0x00fa6b35, 0x00fd572b, 0x00fa5939, 0x00f94e36, 0x00f64d2f, 0x00fd5131, 0x00f95435, 0x00ec482c, 0x00da3e24,
- 0x00c7331f, 0x00c74a34, 0x00d86f59, 0x00cc8067, 0x00bf9176, 0x00c69181, 0x00c99285, 0x00c8907f, 0x00cb8f79, 0x00ca9177, 0x00c99176, 0x00bf8a6d, 0x00bd8d73, 0x00bc937a, 0x00caa48f, 0x00d2ae9d,
- 0x00dadfe4, 0x00eff0f6, 0x00eceef9, 0x00eff0fd, 0x00f1f0f6, 0x00fbf5ed, 0x00ffe5d3, 0x00edb79a, 0x00e37744, 0x00eb682b, 0x00fd612a, 0x00ff5d26, 0x00d5704e, 0x00a07077, 0x0066628d, 0x004256a8,
- 0x006779bb, 0x00b8c4dc, 0x00fbfef8, 0x00fefdf2, 0x00f8fdfd, 0x00f8faf9, 0x00fcfbf7, 0x00bcbbb1, 0x004e4b48, 0x0063656a, 0x0097a3b2, 0x00bbcee6, 0x0085a0c1, 0x004b617f, 0x00566984, 0x0066728a,
- 0x00796158, 0x00755d53, 0x006b5042, 0x00694b3d, 0x00644230, 0x005c3c2f, 0x005e4337, 0x005e4a43, 0x00726263, 0x008f8687, 0x00a29ea6, 0x00a5abb9, 0x00b4bfb5, 0x00aebda9, 0x009eab8c, 0x0094a57c,
- 0x00859872, 0x007f9369, 0x007f9463, 0x00819a61, 0x007d9952, 0x00849b60, 0x00889c66, 0x00899e67, 0x008a9e68, 0x00899e67, 0x00899e67, 0x00899e67, 0x008a9f67, 0x008a9f68, 0x00899e69, 0x00889e6a,
- 0x008b9d65, 0x008b9d66, 0x008c9e69, 0x008da06b, 0x008fa16d, 0x0090a46f, 0x0091a372, 0x0090a271, 0x008f9c6f, 0x008b9e6e, 0x00919e76, 0x009a987e, 0x00819b99, 0x006f92a5, 0x00769bbb, 0x0093aecd,
- 0x00aba2b0, 0x009c8283, 0x00ab8982, 0x00aa877e, 0x00826866, 0x0072625c, 0x006e5e50, 0x00735c3f, 0x00916c53, 0x00a47f70, 0x00a28476, 0x00857759, 0x00777c3f, 0x00828957, 0x00c1c6a8, 0x00f3f4f7,
- 0x00fcfdfc, 0x00fafbf9, 0x00fffffb, 0x00fffff7, 0x00ccceb5, 0x0081845a, 0x00767941, 0x00777b3a, 0x00757a3b, 0x0075793f, 0x00747741, 0x006d733b, 0x005e6332, 0x00555c2e, 0x00454d27, 0x00374020,
- 0x0025321b, 0x001a2816, 0x000f1f13, 0x000d1f17, 0x000a1e1a, 0x00121e13, 0x000e190e, 0x000e201b, 0x00122731, 0x002a3e4f, 0x005e6984, 0x00616489, 0x003f447d, 0x002b3684, 0x00263994, 0x00203ca4,
- 0x00273b98, 0x00273c9b, 0x002a3f9f, 0x002c41a2, 0x002e42a4, 0x002e40a2, 0x003547a6, 0x00394ca7, 0x00374a9e, 0x003d519f, 0x004f5fb7, 0x005962c6, 0x005867af, 0x006c7bbc, 0x007c89d8, 0x004b55b7,
- 0x004146a3, 0x007b82ba, 0x00c2cce1, 0x00a3abac, 0x00919893, 0x0069789f, 0x0050669a, 0x00435782, 0x00838894, 0x00cbc0b1, 0x00c1a67c, 0x00b58a46, 0x00c38d3e, 0x00c9944c, 0x00d7a665, 0x00dcb27c,
- 0x00cdb18b, 0x0094825d, 0x004a3f1f, 0x001e1d09, 0x00151d0b, 0x00142011, 0x000e1d17, 0x000b1b14, 0x000a1811, 0x0009140d, 0x0009120f, 0x000a0d0e, 0x000a100f, 0x00090d0d, 0x00070e0d, 0x00080d0e,
- 0x00080c0b, 0x00050b08, 0x00040a07, 0x00040a08, 0x00030b09, 0x00040a08, 0x00050906, 0x00030704, 0x00020805, 0x00030705, 0x00030706, 0x00030706, 0x00030706, 0x00030705, 0x00030705, 0x00040705,
- 0x0006070a, 0x00000201, 0x00010201, 0x00030000, 0x0020170e, 0x00665745, 0x00957f66, 0x0090754f, 0x00977143, 0x0099703f, 0x00996d3b, 0x00885e35, 0x007d542b, 0x007c532c, 0x00855b33, 0x0091653d,
- 0x009e7347, 0x00a57e4c, 0x00ab834e, 0x00ae884c, 0x00a17b3a, 0x006b5e49, 0x00464464, 0x003c3c8e, 0x003543a6, 0x002b43a9, 0x002943ae, 0x00253bad, 0x006074a9, 0x00b9c7d1, 0x00f8fcf9, 0x00fdf9fe,
- 0x00fdfdec, 0x00f6f9f6, 0x00d9def3, 0x00585fa1, 0x002e409b, 0x0028409f, 0x00425eba, 0x004d6cc5, 0x00516dce, 0x005771d5, 0x004c66cb, 0x00425fc2, 0x00314db1, 0x003550b3, 0x004760bf, 0x0026409c,
- 0x000e207f, 0x000c1c7a, 0x0024338f, 0x00102079, 0x00213189, 0x00334295, 0x001b2a7b, 0x000c1d6e, 0x001b2e81, 0x00273c94, 0x00294197, 0x00364fab, 0x003751b1, 0x003753b7, 0x004765c7, 0x003b5abd,
- 0x00456dcf, 0x005174d5, 0x00526dcd, 0x004f67c3, 0x004259ba, 0x00425ebf, 0x00435fc0, 0x00324da9, 0x002e3a8b, 0x0015185f, 0x00080c53, 0x0016237a, 0x00314281, 0x00263562, 0x000c1227, 0x00251f20,
- 0x00523b2e, 0x009d8572, 0x00c9b09d, 0x00ddceb9, 0x00d6d8c0, 0x00cad1ce, 0x00abb9c1, 0x007f97a5, 0x004c6d88, 0x002d4d65, 0x00243e51, 0x003b4a54, 0x00352d2d, 0x0031231a, 0x003a2b1e, 0x003f301f,
- 0x0041342b, 0x002f2123, 0x001b0d1b, 0x000f051b, 0x000c081d, 0x000f0d1e, 0x000e0b1a, 0x0014121d, 0x00141224, 0x000d0822, 0x002a2e47, 0x008ea6b5, 0x009aadbd, 0x00c6d1de, 0x00bfc1ce, 0x00b1abb5,
- 0x0086757e, 0x005e4b52, 0x00584446, 0x005a4343, 0x00695351, 0x00625354, 0x004d4245, 0x00504749, 0x00a3a2a6, 0x00e5e6e8, 0x00eaecee, 0x00edeff2, 0x00eef2f6, 0x00edf0f6, 0x00e9ecf1, 0x00e7ebef,
- 0x00e7e3ea, 0x00e3dce1, 0x00eadde6, 0x00e5dce1, 0x00ede8ea, 0x00eaf1ee, 0x00e8f4f2, 0x00edfcf6, 0x00f1f9f5, 0x00eff4ef, 0x00f4f3f4, 0x00edf1ee, 0x00eceded, 0x00e8ece8, 0x00e7e9e9, 0x00e8e9e8,
- 0x00e7e9e9, 0x00eaebeb, 0x00f3f4f6, 0x00e5e7e4, 0x00e5ebea, 0x00f4eef1, 0x00f2eaf2, 0x00f7f6fb, 0x00e8f0fc, 0x00e3eef3, 0x00e5ecec, 0x00ebe9e0, 0x00f0e2d5, 0x00a48179, 0x006a4344, 0x0083585c,
- 0x00fcfdfb, 0x00fbfbfb, 0x00fdfdfe, 0x00fdfdfd, 0x00fefdfd, 0x00fffefe, 0x009a999a, 0x00232224, 0x00020102, 0x00040504, 0x00020304, 0x00050508, 0x00040304, 0x00060507, 0x00050406, 0x00080807,
- 0x00090a0b, 0x000f1111, 0x001d1e1d, 0x00333432, 0x004a4b4a, 0x005f605d, 0x00757571, 0x00878785, 0x00a1a09f, 0x00bab8b8, 0x00d0cfcf, 0x00dddcdd, 0x00f0eff1, 0x00f5f6f8, 0x00f7f7fa, 0x00f8f8fc,
- 0x00fbfbfd, 0x00fcfdfd, 0x00fdfefe, 0x00fcfdfd, 0x00fcfbfc, 0x00fcfbfc, 0x00faf9fa, 0x00fcfbfc, 0x00fcfefc, 0x00fefefe, 0x00fffeff, 0x00fcfcfc, 0x00fbfbfa, 0x00fcfdfc, 0x00fafaf9, 0x00fffefe,
- 0x00fdfdfc, 0x00fcfdfd, 0x00fbfdfc, 0x00fcfdfc, 0x00fdfdfe, 0x00fef8ee, 0x00f5fcf0, 0x00ddf9fb, 0x00f7f8fc, 0x00fdf0e7, 0x00f5f3e1, 0x00d9e4e3, 0x00c7e6ea, 0x00e5eeed, 0x00c0beb7, 0x00948a8a,
- 0x00757673, 0x00676a66, 0x00555854, 0x00484d49, 0x00323835, 0x002b322e, 0x00232924, 0x001f231d, 0x001a231e, 0x00171f1a, 0x00111a13, 0x00111a13, 0x00111a12, 0x00151e16, 0x00151e16, 0x00171f17,
- 0x00182016, 0x00182017, 0x00182019, 0x001a231b, 0x0019221a, 0x0019231b, 0x00182119, 0x0018201a, 0x001c271f, 0x0018211b, 0x003c4541, 0x00a6aba9, 0x00fbfefe, 0x00fefdff, 0x00fdfbfd, 0x00fffdff,
- 0x00f7ebe9, 0x00ad8786, 0x003e0204, 0x00590b10, 0x005c160d, 0x00592513, 0x00542b12, 0x004e2d0e, 0x005b220e, 0x0060160a, 0x005f0b07, 0x005d0605, 0x00550904, 0x004f0b05, 0x004b130a, 0x004b1b0e,
- 0x00512d1d, 0x00563425, 0x00593828, 0x00573628, 0x00523222, 0x00522d1e, 0x004c2613, 0x004b200f, 0x004e1a08, 0x00501707, 0x004f1707, 0x00511a0a, 0x004c1d0e, 0x004b2315, 0x004b2b1d, 0x004c3124,
- 0x006b2c22, 0x00682d24, 0x005c2721, 0x004e231e, 0x00371715, 0x002a1211, 0x001f0e0c, 0x001e110d, 0x001a180f, 0x001a1b12, 0x001c1a19, 0x001e181e, 0x00271d18, 0x00352415, 0x004b2e17, 0x00623718,
- 0x007b3b1c, 0x007b381a, 0x006e3115, 0x0058280d, 0x00371e01, 0x00211907, 0x0015190a, 0x00131506, 0x00141511, 0x00242422, 0x003c3a3b, 0x00504f50, 0x005c5c5b, 0x005b5c58, 0x0052544b, 0x0047493d,
- 0x0051402b, 0x004d3d2d, 0x004b4134, 0x003c352b, 0x0053524e, 0x009c9d9d, 0x00dcdfe4, 0x00dee1eb, 0x00dce0e9, 0x00dcdee8, 0x00cbd0db, 0x00c7cbd9, 0x00b6b8c0, 0x00aaa7ad, 0x009e999b, 0x008c8384,
- 0x006a5f5e, 0x007e7475, 0x00b4acae, 0x00c0bcbd, 0x00d6d6d9, 0x00d2d3de, 0x00d5d7e6, 0x00d5d7e6, 0x00d8dde9, 0x00dadeea, 0x00dddfed, 0x00dee1ee, 0x00dee2ed, 0x00c5ccd7, 0x00abb2be, 0x00b7bfc8,
- 0x00c3cad2, 0x00c4cad2, 0x00c1c4ce, 0x00c3c4cc, 0x00bbbbc5, 0x00adacb9, 0x009d9db0, 0x0074778e, 0x00343c59, 0x00121d3f, 0x00060d2c, 0x00090b29, 0x00040928, 0x0000042a, 0x00010527, 0x0000062a,
- 0x00090527, 0x00150522, 0x00260c1c, 0x00471e28, 0x00986463, 0x00c3b5b8, 0x00b8bbbf, 0x00adafb3, 0x00a4a09e, 0x00b6afab, 0x00b7ada1, 0x00867a6e, 0x004c4032, 0x0045392d, 0x007a7160, 0x00e3dbca,
- 0x00fdfdfe, 0x00fbfbfb, 0x00fdfdfd, 0x00f8f8f8, 0x00eeeeee, 0x00f2f2f2, 0x00fefefe, 0x00fefffe, 0x00fcfcfd, 0x00fefeff, 0x00c4c9c4, 0x006b7069, 0x004e5a55, 0x004d5558, 0x00424e55, 0x00333f4b,
- 0x00202b3f, 0x00172038, 0x0019213a, 0x0021253f, 0x002b2f4a, 0x00353948, 0x00343940, 0x0035343b, 0x00353335, 0x00373334, 0x00393232, 0x00393231, 0x003e3837, 0x00423e3e, 0x00444142, 0x00454245,
- 0x0048423e, 0x0047423c, 0x00423e37, 0x003f3b30, 0x003d372a, 0x003a3326, 0x002e261d, 0x00231b14, 0x00231d16, 0x00352f2c, 0x004d4543, 0x005e5651, 0x00716c66, 0x0078756f, 0x00787871, 0x0070736d,
- 0x005f5e58, 0x00504d48, 0x003e3b34, 0x00332826, 0x00261b18, 0x002a1818, 0x00241816, 0x001f1b19, 0x001d2624, 0x00232c2b, 0x002c3031, 0x00353032, 0x003c3131, 0x003c322c, 0x00353025, 0x00312d1f,
- 0x0028251f, 0x00201f18, 0x00181812, 0x00171713, 0x00171513, 0x001a1713, 0x0028211a, 0x00372e24, 0x00483729, 0x00524030, 0x00574532, 0x00574837, 0x005b4f46, 0x005d5552, 0x005c5758, 0x005d5a60,
- 0x005a5963, 0x0055555d, 0x00525357, 0x004f4e4f, 0x00454543, 0x00433c3e, 0x003e3537, 0x0037312d, 0x002a2c22, 0x0022241e, 0x001b1c1c, 0x00191b21, 0x00191a22, 0x00181c20, 0x001b211e, 0x001e261d,
- 0x002e3b5b, 0x00404e70, 0x003a476d, 0x00445273, 0x007a899c, 0x00a9b8bd, 0x00c2cfcd, 0x00d1ddd5, 0x00eaeeec, 0x00f9f8fd, 0x00f6f5f8, 0x00edede3, 0x00ededf1, 0x00cad5f2, 0x00607dac, 0x00315f9d,
- 0x00809ebf, 0x00c8c8cd, 0x00b4a897, 0x00bcae9c, 0x00b2c1c8, 0x00c3cacf, 0x00c8cfcf, 0x00cdd2d4, 0x00ced2d1, 0x00d2d5d6, 0x00d8d9dc, 0x00e1e4e6, 0x00dee1e3, 0x00eaf0ef, 0x00c9d0ce, 0x00626967,
- 0x00040504, 0x00090a09, 0x000b0a0a, 0x000b0b0c, 0x000b0c0c, 0x00111211, 0x000e0f0e, 0x003c3d3c, 0x00c5c6c8, 0x00fafafd, 0x00fdfdff, 0x00fffdff, 0x00fcfefe, 0x00eeece9, 0x007b746d, 0x00301e18,
- 0x004f2b24, 0x00683c33, 0x007b4e40, 0x00815443, 0x0066462d, 0x00442b24, 0x00211512, 0x001b1712, 0x000e140c, 0x0010140d, 0x000d0e0b, 0x00160b0e, 0x00190b12, 0x00180c13, 0x00130f15, 0x00101116,
- 0x00121407, 0x0010110e, 0x00100f14, 0x000f0e18, 0x00111018, 0x00111113, 0x000f0f11, 0x0010100e, 0x00120d11, 0x00120b17, 0x00131331, 0x00172963, 0x0028377b, 0x00212f7b, 0x001e2b80, 0x001b2785,
- 0x00202f8d, 0x001f2f8d, 0x001d2f8a, 0x001b2f85, 0x001c2f81, 0x001e2e85, 0x001f2e87, 0x001e2e88, 0x001c2d86, 0x001c2d86, 0x001c2c85, 0x001c2c83, 0x001e2d83, 0x001f2d83, 0x001e2d81, 0x001e2d80,
- 0x001a2d75, 0x00152575, 0x00192c7a, 0x0015297d, 0x0026276b, 0x005e3357, 0x00b15857, 0x00ee6441, 0x00fd5f2d, 0x00f8643e, 0x00f4674a, 0x00f76d55, 0x00f8775e, 0x00fb7a60, 0x00f8725c, 0x00f9644f,
- 0x00d63d2a, 0x00c13c25, 0x00c6583c, 0x00c16e50, 0x00b5845e, 0x00c18874, 0x00c6887a, 0x00c48977, 0x00c48d7a, 0x00c5917b, 0x00c39378, 0x00bd8e73, 0x00b6876e, 0x00bc8d76, 0x00c5977e, 0x00c79981,
- 0x00c9c6ca, 0x00eeeaf3, 0x00e9ecf7, 0x00eceeff, 0x00e9f1f8, 0x00f7f4f4, 0x00f9efe0, 0x00fcdfc7, 0x00f8a479, 0x00f5794a, 0x00f66931, 0x00fe6228, 0x00ef6e2c, 0x00ca6f4d, 0x00a97471, 0x00715c92,
- 0x006c77b6, 0x00bdd0ee, 0x00eefef8, 0x00fcfef5, 0x00fdfaf9, 0x00fefafd, 0x00f5f3f3, 0x00b2b0ad, 0x004d4a4d, 0x00676b7a, 0x008c9bb1, 0x0092a8cf, 0x007396c4, 0x005978a9, 0x006380ae, 0x006e86b3,
- 0x008c776d, 0x00816961, 0x00775e53, 0x007b5d51, 0x00755748, 0x006e4f44, 0x0070594e, 0x007b6a66, 0x008a8586, 0x00b2aeb3, 0x00cfd3e2, 0x00cfd6f3, 0x00e0e9f3, 0x00e6f1f0, 0x00d9e9da, 0x00d0deca,
- 0x00b7c8af, 0x009bac90, 0x0082956e, 0x007e9569, 0x00829d61, 0x00849b65, 0x00869a65, 0x00849862, 0x00849961, 0x00859a65, 0x00869b65, 0x00889c68, 0x008ba06a, 0x008ba169, 0x008a9f69, 0x008a9f68,
- 0x008e9e69, 0x008fa06a, 0x0090a16c, 0x008fa16d, 0x008e9f6e, 0x008e9f6f, 0x0094a574, 0x0091a371, 0x008c9c6d, 0x0096a87c, 0x00acb998, 0x00b4b4b1, 0x0086a5bc, 0x006890c2, 0x005885be, 0x006388c1,
- 0x008c8caa, 0x00887887, 0x00957f83, 0x00b0989a, 0x00a49ba3, 0x009e928f, 0x009a8b80, 0x009e8b70, 0x00af937a, 0x00b5988e, 0x00ab9287, 0x0090826c, 0x00777b40, 0x00818152, 0x00c5c1a4, 0x00f7f2f6,
- 0x00fefffd, 0x00fafcfb, 0x00fcfefc, 0x00fdfffb, 0x00c2c4b1, 0x006f724f, 0x00636636, 0x00656930, 0x00656832, 0x00656738, 0x00626538, 0x005a6035, 0x004c552c, 0x00434c2a, 0x00364021, 0x002c381f,
- 0x00192a16, 0x00152516, 0x000b1f14, 0x000d2119, 0x000a211b, 0x00122015, 0x000f1f14, 0x00071c19, 0x001a2e40, 0x00415570, 0x0058648a, 0x00474e7d, 0x002e3979, 0x00283a89, 0x00253e98, 0x0017379c,
- 0x00263b9b, 0x00263c9d, 0x00283e9f, 0x002b40a0, 0x002d41a1, 0x002f42a2, 0x003447a4, 0x0032479f, 0x00374d9d, 0x004d64b1, 0x00697ec9, 0x006f7fce, 0x005364ae, 0x004252a0, 0x004b5aac, 0x004050a5,
- 0x0040499e, 0x00777bc3, 0x00a5a9d7, 0x008c8ea6, 0x00bcbdb9, 0x00abb6d0, 0x0094a3cd, 0x007680b0, 0x0066678b, 0x00988c90, 0x00b29a74, 0x00af8b40, 0x00b98826, 0x00c38f3e, 0x00cb9655, 0x00c59266,
- 0x00cba56f, 0x00d4b583, 0x00a68d60, 0x00564a29, 0x00161906, 0x00131b0f, 0x000f1a14, 0x00091913, 0x0006130f, 0x00081411, 0x00081210, 0x000b0f0e, 0x00090d0b, 0x000c0f0f, 0x00080e0b, 0x00080d0a,
- 0x00070e0b, 0x00060c09, 0x00040908, 0x00050a09, 0x00070b0a, 0x00050908, 0x00040a09, 0x00030a0a, 0x00010804, 0x00020805, 0x00020705, 0x00020805, 0x00020806, 0x00020806, 0x00020806, 0x00020806,
- 0x00040605, 0x00020503, 0x00000300, 0x00020000, 0x003b3320, 0x007f7057, 0x009b8664, 0x009c8156, 0x00ae8851, 0x00b18850, 0x00af8248, 0x009b703b, 0x008d602f, 0x008f6435, 0x00926736, 0x009a6f3f,
- 0x00ac8050, 0x00bc905f, 0x00c1975e, 0x00c29d5e, 0x00a78341, 0x00635b51, 0x003e476f, 0x0039409b, 0x003444ad, 0x002f42b0, 0x002f44ae, 0x002d3fac, 0x006879ab, 0x00c6d4df, 0x00f9fff9, 0x00fdfdfd,
- 0x00fdfdea, 0x00fafdfa, 0x00c6cce5, 0x00475194, 0x003143a1, 0x00223d9a, 0x002b4aa1, 0x004162b5, 0x004f6fcb, 0x00506dcf, 0x005671d6, 0x004261c7, 0x003e59bd, 0x003049ae, 0x00425bba, 0x003d57b4,
- 0x000e2282, 0x000f207e, 0x000f1f79, 0x002c3893, 0x00122078, 0x00253285, 0x00202f7c, 0x00071562, 0x00142575, 0x002e4093, 0x00283d91, 0x00324ba3, 0x003751ac, 0x00324eaf, 0x003c5aba, 0x003c59ba,
- 0x00274daf, 0x004162c2, 0x004f6bc8, 0x00475db9, 0x00324baa, 0x002e48aa, 0x00415bbd, 0x004058b6, 0x00354494, 0x00191f65, 0x000d1158, 0x00272e7e, 0x00313d79, 0x002a3560, 0x00343b54, 0x00524f58,
- 0x00826c62, 0x00bda390, 0x00cfbaa0, 0x00cdbb9e, 0x00cccca7, 0x00c4c2af, 0x00afb2aa, 0x007c8a8a, 0x00314b5f, 0x00213b4f, 0x00364e5c, 0x00a1b1b8, 0x00c1bdba, 0x009b9286, 0x00655a4c, 0x00504434,
- 0x00363530, 0x00252326, 0x00110f1d, 0x00090b1e, 0x00070c1d, 0x000a0e19, 0x000c0d13, 0x001c1b1a, 0x00262024, 0x00251b26, 0x004b484f, 0x00afc0bb, 0x00a8b5b6, 0x00bfc6c8, 0x00bcbac1, 0x00b4abb4,
- 0x00877682, 0x0062525a, 0x00584b4e, 0x005b4c4e, 0x005d5250, 0x005b5254, 0x00595557, 0x00736f72, 0x00bbbbbd, 0x00e8e9ea, 0x00edf0ef, 0x00ebefee, 0x00eceff2, 0x00eceef3, 0x00ececf3, 0x00e3e2ea,
- 0x00ecd6df, 0x00e1e0e5, 0x00d3e3de, 0x00d7eae0, 0x00efede9, 0x00f5eaeb, 0x00f0f0ec, 0x00f2f6f4, 0x00f1fdf9, 0x00f2f9fc, 0x00f3f7f5, 0x00f2f2f0, 0x00eff3f2, 0x00edeff1, 0x00e9eae9, 0x00e6e9e9,
- 0x00eff2ef, 0x00e5e6e5, 0x00eaebeb, 0x00dae0dd, 0x00b2b5b6, 0x00b2a0aa, 0x00b7a6b8, 0x00aab2ba, 0x008599a7, 0x00b5c5cd, 0x00dfe6ea, 0x00eaefea, 0x00ebf3e2, 0x00e0d7cc, 0x006c5352, 0x008d5f68,
- 0x00fffeff, 0x00fefefd, 0x00fdfdfc, 0x00fbfbfb, 0x00fdfdfd, 0x00f7f7f7, 0x00838383, 0x00161615, 0x00020105, 0x00010003, 0x0007050a, 0x00020107, 0x00010105, 0x00030308, 0x0006050a, 0x00010104,
- 0x00040308, 0x00020003, 0x00010000, 0x00000000, 0x00020104, 0x00010202, 0x000d0e0b, 0x00191b17, 0x00292729, 0x003a3a3c, 0x00515154, 0x0066666b, 0x00818086, 0x0094939a, 0x00a6a5ad, 0x00b3b2bb,
- 0x00cac7cd, 0x00d5d4d8, 0x00e6e7e9, 0x00f1f2f3, 0x00fbfbfc, 0x00fdfcfe, 0x00fcfdfe, 0x00fcfeff, 0x00fffeff, 0x00fdfefe, 0x00fdfefe, 0x00fdfefd, 0x00fdfdfe, 0x00ffffff, 0x00fcfcfc, 0x00fafcfb,
- 0x00fefeff, 0x00fbfbfa, 0x00fdfcfd, 0x00fcfbfa, 0x00fefefb, 0x00fcf7ed, 0x00f8fbf2, 0x00e6fafd, 0x00fafaff, 0x00fcf5e9, 0x00f8faee, 0x00eefefd, 0x00e6fdff, 0x00f2faf9, 0x00fdf6f7, 0x00f7e7ea,
- 0x00e8e8e6, 0x00e1e2e0, 0x00d1d4d2, 0x00c0c4c0, 0x00a8ada9, 0x009a9f9b, 0x00838a86, 0x006e7573, 0x005a625e, 0x0048504c, 0x0039423c, 0x00303932, 0x00232c25, 0x00151f18, 0x00101912, 0x00111a13,
- 0x001a201c, 0x00171f18, 0x00172018, 0x00182218, 0x00182218, 0x00182219, 0x0019221a, 0x00182118, 0x00212722, 0x001a201b, 0x003c3f3c, 0x009b9f9c, 0x00fdfefd, 0x00fcfffd, 0x00fdfcfc, 0x00fdfcfc,
- 0x00fff1f0, 0x00bc9190, 0x00440102, 0x005b0506, 0x00590805, 0x00511505, 0x004b1b04, 0x00472201, 0x00561807, 0x00600f04, 0x00640a06, 0x00580704, 0x004d0b04, 0x00430c02, 0x0047170b, 0x00492412,
- 0x00503728, 0x0054402c, 0x00574533, 0x0057432f, 0x004f3a28, 0x004e3421, 0x00492b18, 0x0046220d, 0x004f1a0a, 0x00521808, 0x0056190b, 0x00511a0d, 0x004d1e11, 0x00472617, 0x00493121, 0x00483926,
- 0x006d3125, 0x006d362b, 0x006b3931, 0x005a2f29, 0x00462520, 0x00331a16, 0x00291714, 0x00201411, 0x00191611, 0x0016160e, 0x00181814, 0x001a171d, 0x00261c19, 0x00331f10, 0x004c2911, 0x00642e11,
- 0x007f3314, 0x007b3210, 0x00742f0e, 0x00612b09, 0x004c2804, 0x0032270c, 0x00252812, 0x001e2311, 0x001c1b14, 0x0020211d, 0x00333433, 0x00464846, 0x00575954, 0x005a5b54, 0x0055554b, 0x004b4c3f,
- 0x005a432f, 0x00584533, 0x00594a3a, 0x004b4438, 0x004d4841, 0x00878785, 0x00d9dbdc, 0x00dbdee5, 0x00dbdce2, 0x00d9dce1, 0x00cdd1d8, 0x00c5cbd7, 0x00b5b5be, 0x00a6a4a9, 0x009e9797, 0x00897c7b,
- 0x004b3d3d, 0x005a504f, 0x009f9797, 0x00a5a0a2, 0x00c8c6cb, 0x00c9cad3, 0x00d4d7e3, 0x00d3d7e5, 0x00ccd0de, 0x00d2d7e4, 0x00d1d6e4, 0x00cfd4e2, 0x00d2d7e4, 0x00bfc5d2, 0x00a3abb7, 0x00b4bec4,
- 0x00c3ccdd, 0x00c0c9d6, 0x00cacfd9, 0x00ced0d9, 0x00cfd1d8, 0x00d3d2e0, 0x00d3d3e5, 0x00adb2c5, 0x00697492, 0x00455471, 0x002e3756, 0x001f213f, 0x00131637, 0x00040d2f, 0x0000072a, 0x0000042a,
- 0x000a0228, 0x001d0722, 0x00371623, 0x0056252d, 0x00a16761, 0x00b7a5a8, 0x00b9bbc0, 0x00b5b9b8, 0x00a69e9a, 0x00b6aca1, 0x00baaca2, 0x00918473, 0x00564938, 0x00534436, 0x007e7160, 0x00e3d6c5,
- 0x00ffffff, 0x00fcfdfc, 0x00fdfcfd, 0x00f7f7f7, 0x00ececec, 0x00f1f1f0, 0x00ffffff, 0x00ffffff, 0x00fefdfe, 0x00fffeff, 0x00ccccc7, 0x006f7369, 0x004f554f, 0x00495151, 0x00434d53, 0x0033404b,
- 0x00242c42, 0x00162138, 0x0018213a, 0x0019213d, 0x00252946, 0x002c3341, 0x002f323a, 0x002e3037, 0x00343034, 0x00353132, 0x00373130, 0x0036312e, 0x003a3534, 0x003d3a3a, 0x003e3c3e, 0x003e3e3f,
- 0x00493e3b, 0x00463d37, 0x00453e34, 0x00413a2d, 0x0040382b, 0x003a3126, 0x002e251c, 0x00231b13, 0x00211813, 0x0029211f, 0x003b3332, 0x00554e4c, 0x006b6964, 0x0072716b, 0x0070706a, 0x00666863,
- 0x00545252, 0x00403e3d, 0x00302c29, 0x00241d1d, 0x00221716, 0x00261618, 0x00241616, 0x001d1717, 0x00131e20, 0x00132021, 0x001b2225, 0x00232529, 0x002c2529, 0x00292825, 0x0025271e, 0x001f2516,
- 0x00251e1e, 0x001c1815, 0x00151410, 0x00151511, 0x0012110e, 0x00191410, 0x002a231c, 0x003a3228, 0x00503f2f, 0x00584634, 0x00604f3a, 0x005e513e, 0x0061564c, 0x00635b58, 0x00666063, 0x00635f68,
- 0x00646171, 0x005b5b65, 0x0056555b, 0x004f5050, 0x00454440, 0x003f3b37, 0x003b3230, 0x00332e28, 0x0027261c, 0x001f201c, 0x001c1d23, 0x00141825, 0x00151a28, 0x00151e25, 0x0017211e, 0x00172317,
- 0x0022264b, 0x00293255, 0x00454e6d, 0x007a849b, 0x00bfcdd4, 0x00cedbd5, 0x00d2dbd2, 0x00d3dfce, 0x00ececee, 0x00f7f6f9, 0x00f9f3f9, 0x00efefe2, 0x00edeeef, 0x00cbd9f2, 0x005e7cab, 0x0031619b,
- 0x0090a7c8, 0x00c0c0be, 0x00a89a86, 0x00b2a28a, 0x009eb0b9, 0x00bac3c5, 0x00c3caca, 0x00c4cdcc, 0x00cbcccd, 0x00cccecf, 0x00d4d5d6, 0x00d7dbdb, 0x00d7dada, 0x00dee4e3, 0x00b3bab8, 0x0048514d,
- 0x00030507, 0x00080a0c, 0x000c0e0f, 0x000b0c0d, 0x000c0d0e, 0x00131314, 0x00121414, 0x003a3d3c, 0x00c5c2c7, 0x00f7f8fa, 0x00fdfefe, 0x00ffffff, 0x00fffffe, 0x00f2f3ee, 0x00878079, 0x00322118,
- 0x00532b27, 0x006b3e35, 0x007b4d42, 0x00774f3d, 0x0060422e, 0x004c3a2f, 0x00322821, 0x00272519, 0x00161b11, 0x0015170e, 0x00110e0a, 0x00150e0d, 0x00190c10, 0x00180d13, 0x00160e15, 0x00100f15,
- 0x00131203, 0x0013110d, 0x00111018, 0x00100f1d, 0x0010101d, 0x00111019, 0x000e0b10, 0x00120d11, 0x00160e15, 0x00100a16, 0x00141433, 0x001f2e6c, 0x00243278, 0x001b2877, 0x00222e85, 0x00212d8d,
- 0x00242e96, 0x00212d92, 0x00202c8e, 0x001e2c8a, 0x001c2c85, 0x001b2c84, 0x001c2c85, 0x001e2c85, 0x00212e88, 0x001f2e86, 0x001e2c84, 0x001c2c81, 0x001c2c7f, 0x001b2b7d, 0x001a2b7b, 0x001b2b7b,
- 0x001c288b, 0x001a2874, 0x00162b6a, 0x0011336e, 0x00092d7a, 0x002e2762, 0x00743959, 0x00c95348, 0x00f96e3d, 0x00f28350, 0x00e9996e, 0x00d5af8f, 0x00e3af8e, 0x00efa98a, 0x00f99d80, 0x00fd937a,
- 0x00f4705e, 0x00d15138, 0x00c0512f, 0x00b66137, 0x00af7645, 0x00bd7d65, 0x00c78472, 0x00c68b78, 0x00c08d7f, 0x00b98979, 0x00b48775, 0x00b08873, 0x00b58971, 0x00b7886e, 0x00c08a70, 0x00c48b6f,
- 0x00d5b3ad, 0x00fae2e5, 0x00fae9f4, 0x00f2ecfc, 0x00e5f2ff, 0x00e3f4fd, 0x00effaff, 0x00f5f1fb, 0x00fdd9de, 0x00f3b4b4, 0x00e37a6f, 0x00f86a41, 0x00fc6b16, 0x00f57122, 0x00de6f41, 0x00ae6570,
- 0x008b8dca, 0x00c3def6, 0x00e9fefd, 0x00f5fff3, 0x00fef2e7, 0x00fefbf8, 0x00e5e2ea, 0x009f9c9e, 0x0058535e, 0x00767c91, 0x009baccf, 0x007e9dce, 0x005c83c4, 0x00557cc0, 0x006e91d7, 0x0082a2e7,
- 0x00ac9390, 0x00a38a83, 0x009a7f77, 0x008f7667, 0x008c6e64, 0x00866c63, 0x007e6a65, 0x00877c78, 0x008d888e, 0x00a6a6b0, 0x00e5e6f7, 0x00e8edff, 0x00e9eefd, 0x00e6f0fb, 0x00eaf3f9, 0x00e8f6f5,
- 0x00e7efee, 0x00cfdbd0, 0x00a3b39e, 0x00869b7a, 0x007c9464, 0x007e9560, 0x007d945c, 0x007d945a, 0x007e935d, 0x007e935d, 0x007f945d, 0x0081975f, 0x00859b63, 0x00889d65, 0x00889e66, 0x00899f66,
- 0x00909e6a, 0x008e9e68, 0x008f9f6b, 0x008d9e69, 0x008a9968, 0x008a9868, 0x008a9b6d, 0x008ea073, 0x00a3b289, 0x00becfa2, 0x00dbe5d3, 0x00dce3f6, 0x00add0fd, 0x007bb0f3, 0x00558fe1, 0x004f82d2,
- 0x008591c6, 0x009f9cbc, 0x008a7d94, 0x00898591, 0x00979cb1, 0x00ada6a7, 0x00bdaca0, 0x00c2af91, 0x00c0a28f, 0x00bda39d, 0x00c6b1b0, 0x00c3b7a5, 0x00b0ae7a, 0x009d9365, 0x00c7b99d, 0x00f8ecee,
- 0x00fdfefd, 0x00f9fafb, 0x00fdfeff, 0x00fffffe, 0x00c0bfb0, 0x00606041, 0x004f5127, 0x004f5422, 0x0053522a, 0x00505029, 0x004f522f, 0x00464e2b, 0x00394325, 0x00313d1f, 0x0028361c, 0x001e2e16,
- 0x00152516, 0x000e2215, 0x000a2118, 0x000b221d, 0x0006211b, 0x000a1f10, 0x000e2313, 0x00041c18, 0x00233b50, 0x00455b7c, 0x00495483, 0x004a4f85, 0x00333b80, 0x00263888, 0x00213d93, 0x001b409e,
- 0x00273d9e, 0x00263e9f, 0x00283fa2, 0x002b42a5, 0x002a42a3, 0x002c44a2, 0x00324ca5, 0x003956aa, 0x004762b1, 0x005875c1, 0x006380c4, 0x005672a5, 0x00445bb3, 0x004258b4, 0x00576cc5, 0x00657cc4,
- 0x005660b0, 0x004f53ae, 0x005553ac, 0x0062609f, 0x00a1a5a6, 0x009d9faa, 0x007e7d98, 0x00686797, 0x0050477b, 0x006f606f, 0x00a28a71, 0x00b09145, 0x00b58c21, 0x00bc8d38, 0x00bd8c51, 0x00b58067,
- 0x00bc8d49, 0x00c19959, 0x00c6a76f, 0x00a29063, 0x004a432a, 0x001a1d0f, 0x000e160e, 0x0007140d, 0x00051010, 0x00040f0e, 0x000b0f13, 0x000b0f0c, 0x000c110f, 0x0009110c, 0x000a0f0d, 0x00080f0b,
- 0x000b0f0e, 0x00070c08, 0x00070c09, 0x00070c0b, 0x00050a0a, 0x00050c09, 0x00020a05, 0x00020a06, 0x00030808, 0x00020807, 0x00030908, 0x00030a07, 0x00040a08, 0x00040908, 0x00030907, 0x00030a08,
- 0x00040606, 0x00030401, 0x00050401, 0x00080400, 0x0049402b, 0x00887a5b, 0x009a8460, 0x00a5885b, 0x00c59b64, 0x00be9255, 0x00b28545, 0x009b712c, 0x00936727, 0x00996f32, 0x009b7039, 0x00a97f48,
- 0x00c49968, 0x00cda56d, 0x00cba065, 0x00c6a15f, 0x00a6813f, 0x00575a51, 0x0038497d, 0x003747aa, 0x003646bb, 0x002c41ab, 0x002d3fa9, 0x0028389f, 0x0063759d, 0x00cbd8d9, 0x00f9fff8, 0x00fafdfd,
- 0x00ffffef, 0x00fbfcf5, 0x00b4badd, 0x00313a81, 0x003144a1, 0x00263f99, 0x0014328a, 0x002b4e9e, 0x004865bf, 0x004762c3, 0x005470d8, 0x004c6cd1, 0x00435fc7, 0x003a53b8, 0x002e44a9, 0x004b61c3,
- 0x002d3c9e, 0x00142581, 0x000a1670, 0x0017227c, 0x00263086, 0x00121f6b, 0x0027337b, 0x0012216c, 0x00142471, 0x002d4391, 0x001e3388, 0x002a4096, 0x002f4ba5, 0x002c4ba6, 0x003855b4, 0x005473d0,
- 0x002650b3, 0x002346a6, 0x00415eba, 0x00445bb4, 0x002e46a3, 0x00142d8e, 0x002f4aab, 0x003851ae, 0x00344195, 0x00192269, 0x000d0b4d, 0x00281a5c, 0x00413e71, 0x003c3d60, 0x00515368, 0x0067656b,
- 0x00796560, 0x009d8873, 0x00b19d81, 0x00b7a983, 0x00bfb98d, 0x00c1b693, 0x00afa68f, 0x00777b6c, 0x0032464f, 0x001f3642, 0x00314650, 0x00a4b3ba, 0x00e4e2df, 0x00f2ebe0, 0x00ded4c5, 0x00b0a692,
- 0x00495551, 0x002b393a, 0x000a1722, 0x00010c1f, 0x00010c1c, 0x00030d14, 0x00151d1b, 0x0030372b, 0x00443b36, 0x004c423d, 0x0079756b, 0x00b6c3ad, 0x00bfc8bc, 0x00c2c3bf, 0x00b9b1b5, 0x00aa9ca7,
- 0x00816c7f, 0x005b4d5b, 0x004e444d, 0x00454245, 0x004b4c49, 0x004f4c51, 0x00565158, 0x00757478, 0x00bebec0, 0x00e5e8e7, 0x00eef2ef, 0x00eff3f1, 0x00eef0f2, 0x00e9eaef, 0x00dcdde6, 0x00d8dae5,
- 0x00fdd7ea, 0x00d8e8e5, 0x00b8e6d9, 0x00befae0, 0x00e1e5d9, 0x00f0dcd9, 0x00ffe5ec, 0x00fef0f3, 0x00f1f6fb, 0x00f0f5fb, 0x00f2f3fb, 0x00f3f4f4, 0x00f1f5f3, 0x00eff2f0, 0x00efecef, 0x00edefed,
- 0x00ebecec, 0x00e9eaec, 0x00e7ecea, 0x00eaebeb, 0x00c7cbcb, 0x00a88b9d, 0x00654f64, 0x00434f5c, 0x00688896, 0x00d4e2eb, 0x00eff6fc, 0x00f5fafa, 0x00d5f6e1, 0x00e5f3e3, 0x007d766f, 0x00a67884,
- 0x00fefefe, 0x00fefeff, 0x00fefefd, 0x00fbfbfb, 0x00fdfdfe, 0x00ededed, 0x00727272, 0x000c0c0c, 0x00030504, 0x00040404, 0x00020103, 0x00030304, 0x00010203, 0x00040505, 0x00030404, 0x00020101,
- 0x00000002, 0x00010202, 0x00000100, 0x00000101, 0x00020305, 0x00010302, 0x00020501, 0x00080b08, 0x000d110f, 0x00101614, 0x00131a19, 0x000f1817, 0x001b2324, 0x00242c2e, 0x00323c3e, 0x003a4447,
- 0x00525454, 0x00606363, 0x00717575, 0x007d8181, 0x0097999a, 0x00a8aaaa, 0x00bec1c0, 0x00d2d5d5, 0x00e7e5e7, 0x00f0eff0, 0x00f6f6f6, 0x00f5f6f5, 0x00fafafb, 0x00fbfafb, 0x00fafafa, 0x00fcfcfd,
- 0x00fffcfb, 0x00fdfdfd, 0x00fafafc, 0x00fcfbfb, 0x00fbfcfd, 0x00fafaf8, 0x00fafbfa, 0x00f5fcfa, 0x00fcfbfc, 0x00fbfbf9, 0x00fbfef8, 0x00fafdfb, 0x00f7fdfd, 0x00fbfbfc, 0x00fcfbfb, 0x00fcfbfb,
- 0x00fbfbf9, 0x00fcfcfb, 0x00fcfcfb, 0x00fcfcfa, 0x00f8f9f6, 0x00f5f7f4, 0x00eef0ee, 0x00e2e5e5, 0x00cfd1d0, 0x00bfc1c0, 0x00acaead, 0x009a9c9a, 0x00868887, 0x00757876, 0x00606261, 0x00515352,
- 0x003f3f40, 0x00303031, 0x00242524, 0x00232522, 0x00202120, 0x00191b18, 0x001a1c17, 0x001a1c17, 0x001c1e1a, 0x001e1f1a, 0x0032332e, 0x0094948f, 0x00fbfef9, 0x00fbfcf9, 0x00fffffe, 0x00fefdfd,
- 0x00f8f3e9, 0x00c19e97, 0x00420a0a, 0x004c0405, 0x004f0205, 0x004f0a04, 0x004d1006, 0x004e1403, 0x00501808, 0x00551708, 0x0058150b, 0x00540f09, 0x004b0902, 0x00430a00, 0x00471609, 0x004e2313,
- 0x00533522, 0x005a422c, 0x0059472e, 0x00554830, 0x00554a31, 0x004f412f, 0x00423021, 0x003d2316, 0x004b1b0d, 0x00501807, 0x00551b07, 0x00561d08, 0x004e210b, 0x00472412, 0x00483122, 0x004b3c2d,
- 0x00574134, 0x005f493d, 0x00604840, 0x005d443d, 0x00503731, 0x00432e28, 0x0031211b, 0x00251a14, 0x001b140c, 0x0017140d, 0x001c1a0e, 0x00241e0f, 0x00322316, 0x003e261b, 0x004d2e22, 0x00582f22,
- 0x005d311b, 0x005d3318, 0x005e3415, 0x0059340f, 0x0055340b, 0x00483610, 0x00413715, 0x003b3415, 0x00302c11, 0x002f2d16, 0x00383925, 0x00464934, 0x0051533d, 0x0057563f, 0x0056533a, 0x00534e35,
- 0x005f4a32, 0x00624d36, 0x0063523e, 0x005d4c41, 0x004e4344, 0x0079707b, 0x00d0cede, 0x00dfe0f4, 0x00d2d8e0, 0x00d5dadc, 0x00c5cbc7, 0x00c9c9c7, 0x00b9b8b7, 0x00a4a0a3, 0x00a09a9e, 0x007c757a,
- 0x002b2329, 0x00473f46, 0x009b9499, 0x009a9598, 0x00b0acaf, 0x00b5b6b2, 0x00c0c5bf, 0x00c6cbce, 0x00c1c4d7, 0x00c7cbda, 0x00cdd3de, 0x00c4cbd0, 0x00d0d5d9, 0x00b5b9c3, 0x00a1a3b4, 0x00b2b2c5,
- 0x00c6bada, 0x00c8c4c5, 0x00d3d4c0, 0x00d7dfc1, 0x00d3d8eb, 0x00d3d9f3, 0x00c6cdf0, 0x0097a2c6, 0x00818fa6, 0x008794b2, 0x005a6881, 0x00263741, 0x00212b52, 0x000f1549, 0x00101046, 0x00100b3c,
- 0x001e1520, 0x0030201b, 0x003c231c, 0x0063423d, 0x00a3757f, 0x00a39993, 0x00a8ada6, 0x00b7b9ba, 0x00ada1b5, 0x00b4a6b1, 0x00b7a8a5, 0x00897a68, 0x005d5030, 0x0056462d, 0x0081715b, 0x00dcccbd,
- 0x00fdfdfc, 0x00fdfdfc, 0x00fefefe, 0x00fafafa, 0x00f0f0f0, 0x00f2f2f1, 0x00fcfcfd, 0x00fcfcfe, 0x00fefcfd, 0x00fbf9f9, 0x00cdcfd0, 0x006c6f71, 0x003d4549, 0x00454956, 0x00393e50, 0x00383c51,
- 0x0025273e, 0x001e2139, 0x00191d33, 0x001c1d34, 0x0024253a, 0x00302c34, 0x00342e2d, 0x00362e2c, 0x00382d2d, 0x00392e2c, 0x003a302c, 0x0037312b, 0x00393532, 0x00393938, 0x00373c3c, 0x00373d3e,
- 0x0044392e, 0x00443a2e, 0x00463c30, 0x00473d2f, 0x00443a2d, 0x003e3528, 0x002f281b, 0x00262013, 0x00211a0f, 0x00211b12, 0x002d2922, 0x00484741, 0x0063645d, 0x00686863, 0x00686864, 0x005c5d59,
- 0x00464446, 0x00312f2f, 0x0020211f, 0x001b191a, 0x001a1918, 0x001d1819, 0x001a1818, 0x00171919, 0x00191918, 0x00171919, 0x00181c1c, 0x001d1e1f, 0x00202022, 0x001f201e, 0x001b1d18, 0x00181a15,
- 0x00131617, 0x00111414, 0x000e0f0e, 0x000f100e, 0x00151412, 0x001d1c17, 0x002e2c23, 0x003f3e32, 0x00504a40, 0x00585145, 0x005d5649, 0x005f5a4f, 0x0065625a, 0x006c6965, 0x006f6d6b, 0x00706f70,
- 0x006c6c70, 0x00636467, 0x0058595e, 0x004e4f56, 0x003f4147, 0x0037353a, 0x002f2d30, 0x00282729, 0x00222021, 0x001e1e1d, 0x001b1a1d, 0x0018191c, 0x00161619, 0x00191b1c, 0x001c1d19, 0x001e1f1a,
- 0x001a1b21, 0x001d2027, 0x00595b62, 0x00adaeb3, 0x00d2d5d7, 0x00d2d5d4, 0x00d0d2d1, 0x00dadedb, 0x00efeef3, 0x00f6f7fb, 0x00f8f7fc, 0x00f1f4ee, 0x00e7f6eb, 0x00c8dbef, 0x00647ba5, 0x00476196,
- 0x009baeb4, 0x00b5b9b7, 0x008b8883, 0x00988d8e, 0x009fa185, 0x00b3b0a5, 0x00babab4, 0x00c7c4bd, 0x00c8cdc6, 0x00c7cec5, 0x00c7d0c6, 0x00c6d1c7, 0x00d0d7d1, 0x00d8dbda, 0x009b989c, 0x00353036,
- 0x00000910, 0x00060e13, 0x000c1115, 0x000e0f12, 0x00100f10, 0x00181515, 0x001a1817, 0x003e3d3b, 0x00bbb9bc, 0x00f7f7f7, 0x00fafcfd, 0x00faf8fa, 0x00fcfffd, 0x00f8f8f3, 0x008f897e, 0x00332113,
- 0x0058291b, 0x00723d30, 0x00744337, 0x006d4637, 0x005c4c3c, 0x00514c47, 0x003d3f3d, 0x00313431, 0x00232622, 0x00201e1b, 0x00171714, 0x00161412, 0x00151312, 0x00151112, 0x00141213, 0x000f1212,
- 0x0008101c, 0x000d121e, 0x0011101d, 0x00121019, 0x00101012, 0x000e100f, 0x000b0f11, 0x00070d14, 0x00070f1e, 0x00111c2d, 0x002b3860, 0x00314790, 0x00233783, 0x00182879, 0x001d2a80, 0x00212d88,
- 0x00232f8a, 0x00222d89, 0x00202c87, 0x001f2c87, 0x001e2c85, 0x001b2b84, 0x001c2a82, 0x001e2a83, 0x001d2a81, 0x001e2c81, 0x001d2c7f, 0x001b2c7c, 0x001b2c7b, 0x001a2b7a, 0x001b2c7c, 0x001e2f80,
- 0x001c2877, 0x00172771, 0x0015296f, 0x00123070, 0x000f3278, 0x001a2e6d, 0x002a2b66, 0x00624975, 0x00aa7884, 0x00c18d90, 0x00cca29c, 0x00c0b4a8, 0x00af9db3, 0x00d0a9bb, 0x00deadb4, 0x00e1aca7,
- 0x00d79c99, 0x00d66e63, 0x00d44f35, 0x00de4a21, 0x00c05d35, 0x00ae6c52, 0x00af866d, 0x00ae9274, 0x00b39075, 0x00be8a70, 0x00bc7f66, 0x00b97e60, 0x00ac8763, 0x00b49071, 0x00b4866f, 0x00bd806f,
- 0x00c8a889, 0x00ead7c8, 0x00fdf2f0, 0x00f5edf6, 0x00f3ecf0, 0x00e9f1f3, 0x00e8f7fa, 0x00e6f7fe, 0x00feeff7, 0x00fecbc4, 0x00e88467, 0x00f06838, 0x00f36c26, 0x00f96f2a, 0x00f66e33, 0x00e85f3b,
- 0x00ce9989, 0x00ebe8dc, 0x00eafef2, 0x00ecfff7, 0x00fff5f3, 0x00fefbf8, 0x00d5d4d6, 0x0089898e, 0x00646370, 0x008b8d9f, 0x00bfc1d9, 0x00bac2df, 0x009ba3c4, 0x00929dc0, 0x00bac5e5, 0x00cfdbfc,
- 0x00bab6bf, 0x009f9da3, 0x00a2a5ab, 0x008f9699, 0x006f7788, 0x006e748d, 0x006d7492, 0x007d83a5, 0x0083839e, 0x009d9cb4, 0x00e2e5ef, 0x00eef1ee, 0x00f3f1f5, 0x00eeecf6, 0x00ecedfb, 0x00f1f0ff,
- 0x00ebeff5, 0x00e9efee, 0x00d7e0d4, 0x00abb89f, 0x007f9069, 0x00728950, 0x0075924f, 0x0075944d, 0x00789247, 0x0079924c, 0x007a924f, 0x007b9256, 0x007e945d, 0x0081975c, 0x0082985a, 0x00829955,
- 0x00889e4a, 0x00899b62, 0x00899870, 0x0087966d, 0x00879856, 0x00849557, 0x008e9c76, 0x00a6afaa, 0x00d7d5e1, 0x00ecf0e9, 0x00f6faf1, 0x00f0f2f9, 0x00e3ecfc, 0x00cfdcf5, 0x00b3c1e2, 0x00a7b3d8,
- 0x00b1bddb, 0x00bec6e1, 0x00a9b0cd, 0x008d92ac, 0x007d869f, 0x0091908d, 0x00b0a59b, 0x00bfa79a, 0x00be978a, 0x00c2998f, 0x00ccaa9c, 0x00cab89f, 0x00d4d6b3, 0x00cdd2b4, 0x00cbd0ba, 0x00edf2e7,
- 0x00fcfcf7, 0x00fafaf7, 0x00fcfefb, 0x00fafdfb, 0x00b7bbb0, 0x00454d39, 0x00303d24, 0x00303f22, 0x00314023, 0x00313f25, 0x00314028, 0x002a3a28, 0x00253624, 0x001f2e20, 0x001a291a, 0x00152518,
- 0x00102014, 0x000e1f14, 0x000c1f15, 0x000c1d13, 0x000b1f14, 0x000e200d, 0x00102214, 0x00091b1c, 0x0033435f, 0x00505f8a, 0x00404e83, 0x004d5b96, 0x003e4d95, 0x00243487, 0x00263792, 0x0026379a,
- 0x0027368c, 0x002b3a8f, 0x00354498, 0x003b4a9d, 0x003b4a9e, 0x00344498, 0x003a4b9f, 0x004759ad, 0x005162ba, 0x005163be, 0x005467b8, 0x00566aae, 0x005167b7, 0x005167be, 0x00546dc3, 0x005b75ca,
- 0x00455fb3, 0x0032479b, 0x00293d8d, 0x003b4b90, 0x00707cb1, 0x005d73b1, 0x00233b8a, 0x00263695, 0x003e3d96, 0x00534c78, 0x00877971, 0x00a18c47, 0x00b59223, 0x00b98933, 0x00bc844a, 0x00bc7b63,
- 0x00ab8722, 0x00b8873f, 0x00c98d58, 0x00d58e5d, 0x00b7772a, 0x00835911, 0x004f3d0a, 0x002e2c12, 0x00383840, 0x00373639, 0x00121111, 0x00051005, 0x00040d0e, 0x00051119, 0x00040e1a, 0x00050e19,
- 0x00041210, 0x00040c09, 0x00080a0a, 0x000b090e, 0x000c0810, 0x0009080d, 0x000a0b0c, 0x00040504, 0x00070808, 0x000a0c0c, 0x00040605, 0x00050706, 0x00090b0a, 0x00030505, 0x00030505, 0x00060909,
- 0x00060706, 0x00020100, 0x000a0803, 0x000e0705, 0x004a402f, 0x0085745d, 0x00957c5e, 0x00ac8b65, 0x00c59768, 0x00bc8c59, 0x00b28350, 0x00966c33, 0x008d602d, 0x00986b38, 0x00aa7c4a, 0x00c29260,
- 0x00cda268, 0x00cfa66c, 0x00cfa266, 0x00c89d5c, 0x00a87c3c, 0x0056525c, 0x00384984, 0x003a4b9d, 0x003148ac, 0x002e40a4, 0x00303e97, 0x001f2773, 0x00686a8f, 0x00dee0ea, 0x00fcfef9, 0x00f8fcf6,
- 0x00fbfdd9, 0x00f7faf0, 0x00adb1da, 0x002b3383, 0x0025329f, 0x00283c9e, 0x00193189, 0x001f3988, 0x004150a9, 0x004a56b8, 0x004c5ec2, 0x004d69ca, 0x004e6acd, 0x004561c6, 0x003552b6, 0x003956b9,
- 0x003553ad, 0x00142e86, 0x00162d81, 0x00162474, 0x001c2872, 0x001e1e5f, 0x001b1955, 0x001d1d5e, 0x001a2471, 0x00253687, 0x001f338e, 0x001f3792, 0x00233fa2, 0x00233fa3, 0x003049ad, 0x004b62c9,
- 0x00465ebf, 0x00203797, 0x00253b9b, 0x003b53b2, 0x003c55b8, 0x001b3698, 0x001b3290, 0x002c3f96, 0x00293573, 0x00192251, 0x00151645, 0x005d5992, 0x00615d8b, 0x00383955, 0x00545364, 0x00717073,
- 0x00585148, 0x00847669, 0x00a58f7b, 0x00ac9073, 0x00c2a27a, 0x00b59f81, 0x009c907c, 0x006f6c65, 0x00313f47, 0x00253741, 0x0033464d, 0x00b3c2c2, 0x00edefe7, 0x00efefe3, 0x00e5e2d5, 0x00f4f1e4,
- 0x007a8999, 0x0035424f, 0x0018222a, 0x000a1215, 0x00090d0e, 0x00111314, 0x001f2024, 0x0049484d, 0x00534e53, 0x00746e6e, 0x00afa8a6, 0x00bebdb1, 0x00cec5bf, 0x00c5bab6, 0x00baaeab, 0x00b9acab,
- 0x00908986, 0x00615e5d, 0x00454644, 0x003e423e, 0x00303937, 0x003d3342, 0x004e3d52, 0x00837587, 0x00c2bec6, 0x00e8e7ec, 0x00eef1f5, 0x00ebeff2, 0x00e8e6ee, 0x00ddd5e2, 0x00e4d6ea, 0x00ecdaf2,
- 0x00e7dfe2, 0x00d5d5da, 0x00e2e8e9, 0x00dde6e5, 0x00d2d0cf, 0x00e4e0df, 0x00ecefe9, 0x00eef0ed, 0x00f1f5f1, 0x00f3f8f5, 0x00ebf9f7, 0x00e2fbfa, 0x00efd4cc, 0x00e79a7a, 0x00ee9e7a, 0x00edc6b6,
- 0x00ecebe3, 0x00f3eddb, 0x00eae8d6, 0x00e4f4f2, 0x00f4f1e6, 0x00eee4e7, 0x00c9bbcd, 0x00b3afbf, 0x00cddae6, 0x00edfafc, 0x00eaf9fa, 0x00e7fdf8, 0x00e1f9f0, 0x00e7f6ed, 0x00a0a69c, 0x00a39a94,
- 0x00ffffff, 0x00feffff, 0x00fdfefd, 0x00fcfcfb, 0x00ffffff, 0x00e4e3e4, 0x0060605f, 0x00070708, 0x00050705, 0x00030504, 0x00020302, 0x00000100, 0x00040505, 0x00030504, 0x00020302, 0x00020302,
- 0x00010402, 0x00000402, 0x00000401, 0x00000402, 0x00030605, 0x00050805, 0x00090c08, 0x000d110e, 0x00101613, 0x00131a16, 0x00161f1b, 0x001a2521, 0x001f2826, 0x001e2826, 0x001a2523, 0x00192423,
- 0x00141a17, 0x00161b19, 0x00121817, 0x00121717, 0x00191b1c, 0x00202323, 0x00333636, 0x00494c4b, 0x00636164, 0x00787679, 0x008f908f, 0x00a0a2a0, 0x00b7b7b8, 0x00c6c6c8, 0x00dcdddd, 0x00eae9ea,
- 0x00f6f8f6, 0x00fcfdfc, 0x00fffeff, 0x00fcfcfd, 0x00fcfcfd, 0x00fdfefc, 0x00fefeff, 0x00fcfeff, 0x00fefeff, 0x00fffefe, 0x00fbfafd, 0x00f9fafc, 0x00fefefe, 0x00fffffd, 0x00fdfdfe, 0x00fbfcfb,
- 0x00fafcfc, 0x00fcfdfd, 0x00fdfcfd, 0x00fefdfe, 0x00fdfefd, 0x00fcfdfc, 0x00fcfcfc, 0x00fefefd, 0x00fefdff, 0x00fcfcfd, 0x00fbfafb, 0x00f4f4f4, 0x00eeeded, 0x00e8e8e8, 0x00dbdadb, 0x00cbcacc,
- 0x00b0b0af, 0x00a1a1a1, 0x008d8d8d, 0x007d7d7d, 0x0069686a, 0x00555454, 0x00494944, 0x003d3e38, 0x002e2e2a, 0x0023231f, 0x002b2b26, 0x00898984, 0x00f9f9f5, 0x00fdfdfa, 0x00fefefc, 0x00fefdfd,
- 0x00fcf6ec, 0x00c9a8a3, 0x00451213, 0x0047050b, 0x004c0005, 0x004a0202, 0x00480a04, 0x004f170b, 0x00592418, 0x005f291c, 0x0061291f, 0x005d231d, 0x00521911, 0x004b190d, 0x004b1e12, 0x004e2719,
- 0x00553627, 0x0059422d, 0x00594732, 0x005d523a, 0x00655b43, 0x00605547, 0x0053433b, 0x00472f24, 0x00481c0d, 0x004d1907, 0x00531a08, 0x00521a08, 0x004a1b09, 0x00421f0f, 0x00452c1f, 0x0048392a,
- 0x005c4e42, 0x00615247, 0x0066554c, 0x0068534c, 0x00654d47, 0x0056403a, 0x003f2f28, 0x002d2119, 0x001e160d, 0x0019160d, 0x00242110, 0x00312b16, 0x00423224, 0x00493327, 0x00503429, 0x00532e24,
- 0x00552c1d, 0x00532e17, 0x00543015, 0x00563512, 0x005d3d16, 0x00594319, 0x0057481f, 0x00544923, 0x00473f1f, 0x00413c1f, 0x00444226, 0x004b4b2f, 0x00555337, 0x005b5639, 0x005a5335, 0x00584f30,
- 0x00664d37, 0x0069523a, 0x006e5944, 0x00645341, 0x004f4144, 0x00635a66, 0x00b6b1c7, 0x00dbdaf1, 0x00cad1dd, 0x00c9d0d5, 0x00cbd1cf, 0x00c7c8c4, 0x00b4b2b4, 0x00a3a1a6, 0x009b979e, 0x00646068,
- 0x001a1620, 0x002b2731, 0x0067646b, 0x007e7a7f, 0x009c979a, 0x00a1a19c, 0x00a2a7a2, 0x00a8abb3, 0x00afb4c5, 0x00b1b6c9, 0x00aeb6c5, 0x009ea7ae, 0x00b0b5ba, 0x00b6b7c0, 0x00a3a1b1, 0x00aca7bd,
- 0x00c2bddc, 0x00cccdd3, 0x00d5dad4, 0x00ccd7ca, 0x00bbc7da, 0x00c7d4f3, 0x00a5b2e3, 0x006f7fb1, 0x007c8eb1, 0x008ea2c2, 0x008b9fb9, 0x00718291, 0x00454f75, 0x001b2354, 0x001f2255, 0x00211d49,
- 0x00302a35, 0x00413332, 0x0067544d, 0x00886d6a, 0x00a07d84, 0x00978d88, 0x009a9e95, 0x00aeaeaf, 0x00b0a6b7, 0x00b9acb5, 0x00b1a09f, 0x0081715e, 0x005e4f2c, 0x00564528, 0x00796852, 0x00cfbeb1,
- 0x00fefefe, 0x00fffffe, 0x00fefefe, 0x00fafafa, 0x00f0f0f0, 0x00f2f2f2, 0x00fdfdfd, 0x00fdfdfd, 0x00fbfcfa, 0x00f9f9f8, 0x00d0d1d5, 0x006d717a, 0x00343743, 0x003b3d4d, 0x002f3245, 0x002e2f43,
- 0x0025263e, 0x0021233a, 0x001a1d32, 0x00191d30, 0x00222335, 0x0030272d, 0x00392a2a, 0x003b2d2b, 0x003e2c29, 0x003f2e29, 0x003f3129, 0x003b3229, 0x003c3531, 0x003b3937, 0x00393c3a, 0x00383d3c,
- 0x0046392c, 0x00473a2e, 0x004a3e33, 0x00483e33, 0x00453c32, 0x0040392d, 0x00342c21, 0x002c2418, 0x00211e12, 0x001e1a0f, 0x0027251b, 0x00393c32, 0x0055564f, 0x005b5b55, 0x005d5e5a, 0x0052514f,
- 0x003b3a39, 0x00272625, 0x001a1a1a, 0x00171718, 0x0019171a, 0x001a191a, 0x001a191a, 0x001a1a1c, 0x00191a19, 0x00181919, 0x001a1a1b, 0x001d1e1d, 0x001f2021, 0x001e1f1f, 0x001b1c1a, 0x00181918,
- 0x00121519, 0x00101215, 0x000e1012, 0x00111312, 0x001b1b19, 0x00292722, 0x003d3932, 0x004b473d, 0x00595449, 0x005d564b, 0x00625b52, 0x00646159, 0x006a6962, 0x00717069, 0x0075746e, 0x0073756f,
- 0x00747677, 0x00696a6d, 0x00585a5e, 0x00484b50, 0x00373a42, 0x002b2d33, 0x00242629, 0x00212126, 0x00201f23, 0x001e1d20, 0x001c191d, 0x001b1a1a, 0x001c1818, 0x001c1a19, 0x001f1b19, 0x00201d1c,
- 0x001d1c1b, 0x001a1a18, 0x00656363, 0x00bfbcba, 0x00d6d4d7, 0x00d3d3d6, 0x00d3d3d1, 0x00dddfe0, 0x00eff0f3, 0x00f5f7f9, 0x00fcf8ff, 0x00f4f1f4, 0x00e8f8ea, 0x00c8dff1, 0x006880a6, 0x00516698,
- 0x00a4b2b3, 0x00adb3ad, 0x00817d7a, 0x00877e83, 0x00969271, 0x00a6a292, 0x00b4ada8, 0x00bdbbb3, 0x00c3c4bb, 0x00c0c6ba, 0x00c4cbbe, 0x00bec7bb, 0x00c5cac3, 0x00c3c4c4, 0x00747075, 0x001f1921,
- 0x00060e15, 0x00081015, 0x000d1216, 0x000f1012, 0x00131110, 0x001b1815, 0x00201c1b, 0x0043403f, 0x00b8b8b9, 0x00f7f7f6, 0x00fbfbfc, 0x00fdfafd, 0x00fdfffe, 0x00f9fcf6, 0x00938d82, 0x00362213,
- 0x0058291e, 0x00733e36, 0x0072423e, 0x00654440, 0x00625a55, 0x005d6265, 0x004c545b, 0x003f444b, 0x0030353d, 0x00292a32, 0x001f2029, 0x001a1b23, 0x00171820, 0x0016161f, 0x00171620, 0x0014141f,
- 0x000b1124, 0x000e1222, 0x00111222, 0x0011121e, 0x0011101b, 0x000f0e1b, 0x000e1021, 0x00090f26, 0x000e193c, 0x0025355b, 0x003b4b82, 0x002a4192, 0x001f3383, 0x0018297c, 0x0019267c, 0x00202c83,
- 0x00222c83, 0x00202c83, 0x001f2b81, 0x001f2b83, 0x001e2b82, 0x001c2a81, 0x001b2980, 0x001d2982, 0x001d2b80, 0x001e2c80, 0x001d2d7f, 0x001c2d7d, 0x001c2d7e, 0x001a2b7d, 0x001a2b7f, 0x001d2e83,
- 0x00222484, 0x001e2a83, 0x001f2f82, 0x00142d7c, 0x000f2b78, 0x00132a77, 0x00262d78, 0x003d367b, 0x00735985, 0x008a6b86, 0x00977686, 0x00a69c9d, 0x006d648c, 0x00957c99, 0x00edc6d9, 0x00e6c2c0,
- 0x00d2a5aa, 0x00d3736c, 0x00dd503e, 0x00f64f23, 0x00c4522f, 0x009a5238, 0x00a37660, 0x00ae9374, 0x00b09372, 0x00bc8a6c, 0x00c88971, 0x00c58166, 0x00af8965, 0x00b18c6c, 0x00b68b73, 0x00bd7e6e,
- 0x00b69379, 0x00d1bcb0, 0x00f9ecf0, 0x00f7f2fb, 0x00fceeef, 0x00eff0f2, 0x00e8f3fb, 0x00e4f7ff, 0x00ffeff7, 0x00fdc0b1, 0x00e27654, 0x00f05f32, 0x00ed5f23, 0x00fa6828, 0x00fc6d32, 0x00f76335,
- 0x00e2a187, 0x00faebda, 0x00f4fdf2, 0x00f0fcf8, 0x00fef4f5, 0x00fefbf9, 0x00d0d0ce, 0x00818082, 0x006a6a74, 0x009193a0, 0x00cacae0, 0x00d9ddf4, 0x00d9dbf3, 0x00d6daf1, 0x00e7edfd, 0x00e8edff,
- 0x00d5d5e2, 0x00adb0ba, 0x00a3aab2, 0x00a2afb8, 0x008797ad, 0x007787a7, 0x007985a9, 0x008088ae, 0x008587a7, 0x00a2a4b9, 0x00dbdce3, 0x00ececeb, 0x00f7f4fb, 0x00f1ecf8, 0x00efebfa, 0x00f0edfd,
- 0x00f1f0fb, 0x00eff0f5, 0x00e9eeea, 0x00d7decf, 0x009ca58f, 0x00758a59, 0x006e8c4a, 0x006f9045, 0x00728f41, 0x00738e46, 0x00758f49, 0x00768f51, 0x00798f57, 0x007b9256, 0x007d9452, 0x007d954b,
- 0x00809a40, 0x0083965d, 0x0084936a, 0x0082916b, 0x007f934e, 0x0083955a, 0x00adb998, 0x00dcdfe6, 0x00f0effe, 0x00f1f1f1, 0x00f5f3f3, 0x00f1eff9, 0x00eff2fe, 0x00ecf0fc, 0x00ebeefe, 0x00ecf0fd,
- 0x00dee7fb, 0x00dbe2fb, 0x00cdd6f1, 0x00b5c0da, 0x0099a3b9, 0x00a19f9b, 0x00b1a394, 0x00bb9e91, 0x00c29383, 0x00c69788, 0x00cba492, 0x00c0a994, 0x00c3beab, 0x00d3d7c6, 0x00e3eae0, 0x00ecf6ef,
- 0x00fcfcfa, 0x00fafbf8, 0x00fcfffb, 0x00fafefb, 0x00aeb4ab, 0x00323d2f, 0x001a2917, 0x001a2a16, 0x001c2c15, 0x001b2b14, 0x001d2d1a, 0x001c2d1f, 0x00182a1d, 0x00142519, 0x00102114, 0x000e1f13,
- 0x000c1f12, 0x000d1f13, 0x000e1f13, 0x000e1e11, 0x00101f14, 0x000e200e, 0x000e2015, 0x00112025, 0x00324162, 0x00545f90, 0x004c5791, 0x00364381, 0x00313d86, 0x00273487, 0x00273690, 0x00263597,
- 0x002b398b, 0x00283685, 0x003d4b9a, 0x00515faf, 0x005564b4, 0x004757a7, 0x004251a4, 0x004351a8, 0x004153af, 0x003e51af, 0x004556b0, 0x005162af, 0x00475ab3, 0x003a50aa, 0x002d46a4, 0x002b46a3,
- 0x002d48a5, 0x002c449c, 0x002e4497, 0x003c4e9c, 0x00687ac0, 0x005673b9, 0x00264392, 0x002b3d9f, 0x003c3ea4, 0x004d4a8b, 0x007f758d, 0x0096876a, 0x00a88d43, 0x00af8a48, 0x00b28652, 0x00b47e5f,
- 0x00ac8f31, 0x00b28242, 0x00b47746, 0x00c67644, 0x00cb802e, 0x00c28d43, 0x00b69963, 0x00a59e8e, 0x00bcbdcc, 0x00b2aeb7, 0x005b5858, 0x00202316, 0x000b0908, 0x0006050e, 0x00030613, 0x00010612,
- 0x00010705, 0x00050c05, 0x000a1009, 0x000e100e, 0x000a070b, 0x000a070b, 0x00060709, 0x00070a0b, 0x000c0b0c, 0x00050505, 0x00050606, 0x00040505, 0x00010101, 0x00050505, 0x00090a0b, 0x0007090a,
- 0x000b0c0c, 0x000d0c0d, 0x00110d0d, 0x000d0705, 0x0043382e, 0x007d6c59, 0x008b7256, 0x008f6e4b, 0x00986941, 0x009e6c3e, 0x009f6f3f, 0x00875d2d, 0x007b4c20, 0x008d5e30, 0x00a87746, 0x00bc8c5a,
- 0x00c69761, 0x00c3975e, 0x00c4975c, 0x00bf9150, 0x009c702c, 0x00554b54, 0x0035437b, 0x0036478f, 0x002c44a3, 0x002c3ea0, 0x0030419a, 0x00202974, 0x00747097, 0x00e6e4f2, 0x00fcfdf8, 0x00fdfdf1,
- 0x00fcfee1, 0x00fcfff6, 0x00a7a8d0, 0x002f3783, 0x001b278a, 0x00273a98, 0x0021348e, 0x00162977, 0x001c2c76, 0x002b3786, 0x0038479b, 0x003951aa, 0x004a63c2, 0x005773d3, 0x004d6bca, 0x003858b8,
- 0x00415dbb, 0x002a449d, 0x000a2073, 0x00101e6e, 0x00111d6a, 0x00191858, 0x00120f47, 0x000d0e4a, 0x00121a61, 0x00223380, 0x0021388d, 0x001e3790, 0x00233e9e, 0x00213d9e, 0x002641a0, 0x003952b4,
- 0x005263c7, 0x003a4eb0, 0x00193290, 0x002c45a2, 0x003955b6, 0x001c3294, 0x00192d8a, 0x002a388d, 0x00142057, 0x00061036, 0x000d0d37, 0x002c2861, 0x001e1c45, 0x00161934, 0x002c2d40, 0x004d5056,
- 0x003d3639, 0x00635552, 0x00877166, 0x00957862, 0x00a47e59, 0x009a8068, 0x00847567, 0x005d5955, 0x002c3b44, 0x00263944, 0x0042555e, 0x00becfcf, 0x00edf1e9, 0x00ebece1, 0x00efefe3, 0x00f5f5eb,
- 0x00b9c5d4, 0x004d5965, 0x002b363b, 0x000a1112, 0x000d0f10, 0x00101114, 0x00222028, 0x0049424e, 0x00665b61, 0x0092898a, 0x00dededa, 0x00c3ceca, 0x00c8cbc9, 0x00c5c5c8, 0x00b4b4b4, 0x009d979a,
- 0x006c696d, 0x00525057, 0x0043414b, 0x002f313a, 0x00202331, 0x00282234, 0x003b3445, 0x00696371, 0x00c7cace, 0x00e5ebec, 0x00e1edea, 0x00d8e5e2, 0x00d4dcdc, 0x00dee1e6, 0x00eae9f3, 0x00e1ddea,
- 0x00d7d7dc, 0x00dcdbdf, 0x00efecf2, 0x00c5c3ca, 0x00dad7da, 0x00e7eae9, 0x00ebf0ed, 0x00edf0ed, 0x00f0f4ef, 0x00f0f6f0, 0x00eaf5f3, 0x00ddfafb, 0x00dda9a2, 0x00b73f1e, 0x00cc3e1d, 0x00be554c,
- 0x00cda2a9, 0x00f6d9ce, 0x00f0e8da, 0x00e0eeec, 0x00eef1e9, 0x00f0eae9, 0x00f3e7f1, 0x00f0edf1, 0x00edf4f3, 0x00eaf6f6, 0x00e8f8fd, 0x00e5f6f7, 0x00e2f1f0, 0x00e3efef, 0x00d0d9d8, 0x00a7aead,
- 0x00fffeff, 0x00fffdff, 0x00fffdfd, 0x00fdfdfc, 0x00ffffff, 0x00d4d6d5, 0x00484a47, 0x00030602, 0x00060505, 0x00040405, 0x00030403, 0x00020402, 0x00020404, 0x00010303, 0x00000402, 0x00000302,
- 0x00030407, 0x00030506, 0x00040605, 0x00050706, 0x00060909, 0x000a0e0a, 0x000e130d, 0x00121712, 0x00191e1b, 0x001b211e, 0x001a231e, 0x001c2621, 0x00202925, 0x00222b27, 0x001e2925, 0x001d2924,
- 0x001e2323, 0x00161a1a, 0x000e1312, 0x00090e0c, 0x00030605, 0x00020503, 0x00050906, 0x00030604, 0x000b080c, 0x000e0c0f, 0x00121413, 0x00222522, 0x00383738, 0x00484749, 0x005f605f, 0x00707070,
- 0x008c8a8b, 0x009d9e9e, 0x00b6b7b7, 0x00c5c8c5, 0x00e0dede, 0x00eaeae9, 0x00f0f0f1, 0x00f5f5f3, 0x00fef9ff, 0x00fcfbfe, 0x00fcfbfc, 0x00fdfdfe, 0x00fffeff, 0x00fcfcfa, 0x00fcfdfe, 0x00fcffff,
- 0x00fffeff, 0x00fdfdff, 0x00fdfdfd, 0x00fcfcfb, 0x00fcfcfc, 0x00fefdfd, 0x00fefefe, 0x00fcfdfc, 0x00fffeff, 0x00fffeff, 0x00fefdfe, 0x00fffefe, 0x00fffefe, 0x00fffdfe, 0x00fdfbfc, 0x00f7f5f6,
- 0x00f9fbfb, 0x00f8f9fa, 0x00f2f2f2, 0x00e9e8e8, 0x00dad8da, 0x00c9c8c7, 0x00bbbbb7, 0x00a8a9a4, 0x0091908f, 0x00807f7e, 0x00767775, 0x00a8a8a6, 0x00f6f7f4, 0x00fcfbf8, 0x00fafbf7, 0x00fbfdf9,
- 0x00fff6f3, 0x00cbb0af, 0x00411715, 0x003d0407, 0x00430105, 0x00410203, 0x00441007, 0x004f2115, 0x0067382e, 0x00734438, 0x0078483d, 0x0073423a, 0x0063352d, 0x00572f25, 0x004c281d, 0x0045271a,
- 0x004d3328, 0x00503d2d, 0x00544533, 0x005b533f, 0x00645c45, 0x0060594c, 0x005b5047, 0x004c3a2c, 0x00451d14, 0x004b190c, 0x004f1909, 0x004c1605, 0x00411603, 0x003b1809, 0x003e261a, 0x00423325,
- 0x005c4d43, 0x0066574c, 0x006e5e52, 0x00715f54, 0x006e5850, 0x00655149, 0x004c3c33, 0x0034281d, 0x00231b11, 0x00201c12, 0x00312b1c, 0x00463b27, 0x00584638, 0x005b4536, 0x00594132, 0x00533627,
- 0x0051291d, 0x004c2913, 0x004c2a0f, 0x00543711, 0x00634820, 0x00675426, 0x006b5d2f, 0x006d6237, 0x00635937, 0x005b5232, 0x00575030, 0x005a5333, 0x005f5736, 0x00645b38, 0x00605731, 0x005c532a,
- 0x00694e35, 0x006d5239, 0x006c553d, 0x0067533f, 0x00534642, 0x00463e49, 0x007d7b91, 0x00bcbed6, 0x00d4dcea, 0x00cdd5de, 0x00cfd6d9, 0x00c8c8c8, 0x00b3b3b9, 0x00a3a3aa, 0x00817f8a, 0x003d3c48,
- 0x00130d1d, 0x00161221, 0x0034323d, 0x0067666d, 0x008e8c92, 0x0096989b, 0x00989ea4, 0x008f92a2, 0x00777b96, 0x00646884, 0x0050566b, 0x004f5761, 0x0091959c, 0x009e9fa9, 0x00848390, 0x009e9aac,
- 0x00bec3d6, 0x00ced4ec, 0x00bec8e2, 0x008e9fb6, 0x007b91aa, 0x00a7bede, 0x0097add9, 0x006276ae, 0x008497ce, 0x0091a6ce, 0x00a2b8d4, 0x00b9cde7, 0x007b89af, 0x0028315b, 0x000b1338, 0x00121738,
- 0x00221c31, 0x00403341, 0x0078686e, 0x008b7979, 0x0091797d, 0x008c887f, 0x008c9386, 0x00a0a1a0, 0x00b4a6b5, 0x00beaeb6, 0x00a59490, 0x0073634e, 0x005a4d27, 0x00514223, 0x006e5e45, 0x00c4b3a4,
- 0x00fefeff, 0x00ffffff, 0x00fdfdfd, 0x00f9f9f9, 0x00f1f1f1, 0x00f2f2f3, 0x00fdfdfd, 0x00fefefc, 0x00fdfdfe, 0x00fcf9fb, 0x00d1d2d7, 0x006a6f77, 0x00252734, 0x002b2d3c, 0x00252839, 0x00222337,
- 0x0025243e, 0x0022213a, 0x001a1d32, 0x00181c2f, 0x001e2130, 0x0030252a, 0x00392927, 0x003d2e2a, 0x00432d2a, 0x00432e2a, 0x00443229, 0x00403328, 0x0040352f, 0x003e3833, 0x003c3c35, 0x003c3c37,
- 0x004b3d33, 0x004b3d32, 0x004b3d32, 0x00483c31, 0x00433a31, 0x00403930, 0x00353026, 0x00302a20, 0x002a2320, 0x00241b1a, 0x0025221c, 0x002f3229, 0x00454640, 0x004d4f48, 0x004f5249, 0x00484842,
- 0x00303130, 0x0021201f, 0x00181718, 0x00161616, 0x00171619, 0x00171817, 0x00161817, 0x00171817, 0x001c161a, 0x001b1719, 0x001b1a18, 0x001d1d1a, 0x001f1d20, 0x001e1d1f, 0x001a1b1a, 0x00151917,
- 0x00121418, 0x00121216, 0x00111014, 0x00151616, 0x00252624, 0x0035342f, 0x0048443e, 0x0056524b, 0x00645e55, 0x00676055, 0x006a625a, 0x006c6861, 0x006f6e67, 0x0074726d, 0x00757472, 0x00757675,
- 0x00747479, 0x006a6870, 0x0056575b, 0x0044474a, 0x0031343c, 0x0025262d, 0x001e1f23, 0x001e1a22, 0x00201e28, 0x001f1e27, 0x001d1b21, 0x001b1c1e, 0x001d1c1b, 0x001c1c17, 0x001d1b18, 0x001e1c18,
- 0x00211d1e, 0x001a1719, 0x005d5a58, 0x00b9b8b5, 0x00d6d5d9, 0x00d3d4d7, 0x00d3d6d6, 0x00e1e4e4, 0x00f0f2f5, 0x00f5f7fb, 0x00fbf9fe, 0x00f8f4f6, 0x00eaf8eb, 0x00cce0f1, 0x006b83a6, 0x00566c9d,
- 0x00a9b6b8, 0x00a7a8a6, 0x007f7777, 0x0084767e, 0x008c8866, 0x009b9485, 0x00a7a198, 0x00b3b1a5, 0x00bab9b0, 0x00b9bcb1, 0x00bbc0b3, 0x00b5bcb1, 0x00bec1bb, 0x00acadad, 0x004e4a50, 0x00161018,
- 0x000e131a, 0x000d1318, 0x000c1014, 0x000d0e0e, 0x0013120d, 0x001d1a15, 0x0026231f, 0x00464340, 0x00b7b3b8, 0x00f8f6f7, 0x00fcfbfc, 0x00fffcfe, 0x00fafefc, 0x00fbfef9, 0x0099958d, 0x0037261c,
- 0x00562c29, 0x0067393b, 0x005f3a41, 0x0060474f, 0x006f6d76, 0x006d7687, 0x005a687a, 0x00485769, 0x003a445b, 0x0031364d, 0x00272a42, 0x00202038, 0x00191b32, 0x0016182f, 0x0016172f, 0x0014152d,
- 0x00121733, 0x0011162d, 0x0012162b, 0x0013162b, 0x0013152c, 0x00121531, 0x000c1336, 0x000f1b46, 0x00303b77, 0x003c4c8e, 0x0034458b, 0x00213888, 0x001c317f, 0x0018297b, 0x001b277b, 0x001c287e,
- 0x00242a86, 0x00222b84, 0x001e2a7f, 0x001d297e, 0x001d297d, 0x001a287f, 0x0019287f, 0x001a2882, 0x001e2b83, 0x001d2b82, 0x001b2a81, 0x001b2c81, 0x001e2f84, 0x001c2e84, 0x00192a81, 0x00192a81,
- 0x0027259a, 0x001f258e, 0x001a2785, 0x00202d87, 0x00283990, 0x00354098, 0x003c3d91, 0x002d2470, 0x005f4584, 0x00886997, 0x00836a85, 0x00a4989d, 0x007d779e, 0x00745e7d, 0x00c1a8b7, 0x00edd4ce,
- 0x00e2c2c8, 0x00e38b86, 0x00e35b47, 0x00fc5528, 0x00d35732, 0x00a5503c, 0x00915e4c, 0x009f8569, 0x00bd9c84, 0x00c29177, 0x00c98a78, 0x00cb886e, 0x00b18b68, 0x00aa8766, 0x00b58970, 0x00bd7c6b,
- 0x00ae8970, 0x00bcaaa4, 0x00efe4eb, 0x00f6f1fd, 0x00f7eaee, 0x00f0edf2, 0x00e7eff4, 0x00e7f8fe, 0x00fdebf0, 0x00fab29d, 0x00dd6944, 0x00e95322, 0x00ec4c16, 0x00fb5825, 0x00fa6836, 0x00f87044,
- 0x00eaad98, 0x00ffeee0, 0x00fbfcf2, 0x00f9fcfa, 0x00fff7f7, 0x00fffefb, 0x00c1c4c0, 0x00717472, 0x0072717e, 0x009e9eab, 0x00d0d0e4, 0x00e1e4f8, 0x00ebeffe, 0x00e7ebfc, 0x00e9f0fb, 0x00ebeffe,
- 0x00eeeafa, 0x00cdcddb, 0x00a3acb1, 0x00aab7bc, 0x00a7b9c7, 0x008f9fbb, 0x008393af, 0x007b86a7, 0x009597af, 0x00babac7, 0x00d4d3d8, 0x00e5e2e8, 0x00f5f0fb, 0x00f2ecfa, 0x00eeebfa, 0x00f0edfd,
- 0x00f2ebfc, 0x00f1eefa, 0x00edf0f2, 0x00f0f5ef, 0x00c2c9bf, 0x008a9c74, 0x006f8a4f, 0x006f8a45, 0x00769147, 0x0076904a, 0x0076904a, 0x00768e4f, 0x00758c54, 0x00768f51, 0x0078914d, 0x00779146,
- 0x00809640, 0x007f9256, 0x00809164, 0x007f9067, 0x007f9453, 0x0097a974, 0x00cdd9bd, 0x00ecf1f7, 0x00eeeaff, 0x00e9e9f4, 0x00eceef3, 0x00f3f3fb, 0x00edf0fc, 0x00eceefb, 0x00eaeffb, 0x00ebf2fd,
- 0x00eff2ff, 0x00e6ebfe, 0x00e1e7fd, 0x00dee5fa, 0x00c8cfe5, 0x00c1bbb6, 0x00b5a291, 0x00b3957f, 0x00c7957f, 0x00cb9c87, 0x00c79e87, 0x00b89c8c, 0x00a09a92, 0x00ababab, 0x00dcdde4, 0x00eef4fb,
- 0x00ffffff, 0x00fefdfe, 0x00fdfffd, 0x00fbfffd, 0x00a7ada6, 0x00283326, 0x000f1e0e, 0x00101f0c, 0x0012220f, 0x00132310, 0x00122112, 0x00112117, 0x000e1f15, 0x000e1e15, 0x000b1b0f, 0x000b1d10,
- 0x00101e17, 0x000f1e15, 0x000e1e12, 0x000f1e11, 0x000f1c13, 0x000c1f10, 0x000d2019, 0x0013212a, 0x002a365d, 0x0052598f, 0x006a73af, 0x003f4e8a, 0x00253378, 0x00243180, 0x00212f86, 0x00253191,
- 0x0029378e, 0x002d3c8e, 0x004553a4, 0x005162b3, 0x004558a7, 0x003a4e9d, 0x0036489b, 0x0033449d, 0x003545a7, 0x003748ab, 0x003545a5, 0x0034449d, 0x0030439f, 0x002d41a2, 0x002a40a5, 0x002b43a9,
- 0x002f46b0, 0x003547ab, 0x003446a1, 0x00344699, 0x004859a8, 0x003d589a, 0x00203e81, 0x002b4296, 0x004f54bf, 0x006a6abe, 0x00948ec8, 0x009389a0, 0x009b8873, 0x00a0896a, 0x009f8660, 0x00a78764,
- 0x009c8b49, 0x00a98251, 0x00b2774b, 0x00b56738, 0x00aa651b, 0x00be8b4f, 0x00f6d4b2, 0x00f3edee, 0x00f9f7ff, 0x00f6f6f6, 0x00c6bfb8, 0x009a897a, 0x00786a64, 0x00685e60, 0x00554e53, 0x003e3c3d,
- 0x00292a23, 0x001b1e13, 0x000a1105, 0x00040b04, 0x00050905, 0x00090b08, 0x000c0e0b, 0x000c0d0c, 0x00110f13, 0x00111113, 0x000b0c0d, 0x00020303, 0x00060606, 0x00090a08, 0x00070807, 0x000c0e0d,
- 0x00121314, 0x00121112, 0x000e0c08, 0x000e0903, 0x002e2319, 0x00665543, 0x0081694e, 0x00735432, 0x006d3f1a, 0x007a481d, 0x0080501e, 0x00784e22, 0x00794c20, 0x00865829, 0x00966835, 0x00a37641,
- 0x00b28050, 0x00b1804b, 0x00af8043, 0x00a97d3e, 0x008e6120, 0x00503f45, 0x00363d6b, 0x00324281, 0x00253d9b, 0x00233a9b, 0x00283f9c, 0x00273382, 0x008482ae, 0x00e9eaf8, 0x00fefffa, 0x00fefdf2,
- 0x00fefcf1, 0x00f9f8fd, 0x00979dbd, 0x00343c7a, 0x00142377, 0x0019297d, 0x001a2d7d, 0x00192b73, 0x000c1e5b, 0x0013205b, 0x001d2b6d, 0x001a2f83, 0x00283d95, 0x003b54af, 0x004c68c2, 0x004a67c5,
- 0x004862c0, 0x003a53af, 0x001b2d87, 0x00081369, 0x00071166, 0x00131958, 0x000e1248, 0x0000053f, 0x00080b52, 0x001e2f7a, 0x001f3785, 0x001e368d, 0x0027439a, 0x00233e98, 0x00213a94, 0x002b479e,
- 0x005162ca, 0x005066c9, 0x001c3696, 0x001a3692, 0x00344eae, 0x002b42a0, 0x0010227b, 0x00132271, 0x000f154b, 0x0003062b, 0x00040224, 0x00070434, 0x00151339, 0x001b1d39, 0x00212338, 0x003e4251,
- 0x0034273d, 0x004b3945, 0x006b5552, 0x007c5f4d, 0x00836039, 0x00745d45, 0x0064584b, 0x00484743, 0x002e3c47, 0x00243744, 0x00596c77, 0x00c8d8d9, 0x00e2e6df, 0x00ecece3, 0x00f2f1e4, 0x00e9ebe0,
- 0x00e3e9f4, 0x0079818f, 0x00334047, 0x00132122, 0x000d1618, 0x000b0f14, 0x00232029, 0x00382d38, 0x005f4c51, 0x008d7776, 0x00e8e3e1, 0x00c8e0da, 0x00b9ccc8, 0x00b8c3c8, 0x00c2cbd0, 0x00bdc2c8,
- 0x00a39eb0, 0x007e778e, 0x0049405b, 0x00191531, 0x00181133, 0x003a3b4e, 0x004a555b, 0x0060696e, 0x00cbd9d7, 0x00dfefe9, 0x00dcf0e6, 0x00ddf1e6, 0x00ddece3, 0x00dbe9e4, 0x00d5e3e0, 0x00cddbd9,
- 0x00dedde7, 0x00f3f1fa, 0x00d0d0d5, 0x00cdcdd3, 0x00eaebee, 0x00e0e5e5, 0x00e3eae4, 0x00e7ebe7, 0x00eeeff0, 0x00eff3ef, 0x00e8f3f0, 0x00daf1f0, 0x00dfa293, 0x00d64726, 0x00db3017, 0x00c03037,
- 0x00954562, 0x00b37379, 0x00efd1d0, 0x00eaeef9, 0x00e7ebed, 0x00f0eee8, 0x00ebe6e4, 0x00e1e4dd, 0x00edf2f0, 0x00f0f6f5, 0x00e5efed, 0x00c2cece, 0x00a7b4b7, 0x009da9b2, 0x00ccd8e1, 0x00c2cfd6,
- 0x00fbfdfc, 0x00fafcfc, 0x00fcfdfd, 0x00fcfdfd, 0x00ffffff, 0x00c9c8c8, 0x00333031, 0x00080607, 0x00000200, 0x00000200, 0x00000303, 0x00000403, 0x00000302, 0x00010302, 0x00020303, 0x00040506,
- 0x00000402, 0x00000600, 0x00060905, 0x00090909, 0x000a0d0c, 0x000d110d, 0x00131613, 0x00171919, 0x00161f14, 0x00182218, 0x001e2721, 0x00242f27, 0x00222d26, 0x00212e24, 0x00202d24, 0x001f2c23,
- 0x00142118, 0x000f1912, 0x000e1611, 0x000d1311, 0x00070b0b, 0x00000204, 0x00010002, 0x00030003, 0x00000100, 0x00000100, 0x00010000, 0x00010000, 0x00000101, 0x00010102, 0x00070507, 0x000a080b,
- 0x00090a06, 0x00161613, 0x002c2b2c, 0x003f3f40, 0x00575756, 0x006e6e6d, 0x00838285, 0x0098989b, 0x00abaeab, 0x00bdc0be, 0x00d4d3d4, 0x00e6e5e7, 0x00f2f3f5, 0x00fafbfb, 0x00fffdfe, 0x00fffefd,
- 0x00f8fbf8, 0x00fafcf9, 0x00fdfefe, 0x00f8f9f9, 0x00fbfcfa, 0x00fefffd, 0x00ffffff, 0x00ffffff, 0x00f8fdf9, 0x00f8fbf8, 0x00fcfdfc, 0x00fdfefd, 0x00fbfcfc, 0x00fafbfc, 0x00fcfbfe, 0x00fffdff,
- 0x00f5faf3, 0x00f7fbf5, 0x00fefffd, 0x00ffffff, 0x00fcfcff, 0x00fefeff, 0x00fffdfd, 0x00fcfafa, 0x00ecf2ec, 0x00eaeee8, 0x00e6e7e5, 0x00e8e8e7, 0x00f5f5f3, 0x00f6f6f4, 0x00f9f8f7, 0x00fcfbf8,
- 0x00f7f6ee, 0x00d0c1bc, 0x006e4e4f, 0x005b2d31, 0x004b191c, 0x003b0d0e, 0x00401817, 0x004f2f2a, 0x00634a3a, 0x00785b4d, 0x0087655e, 0x0081635d, 0x0073554e, 0x00644941, 0x00523832, 0x00432e25,
- 0x00332a18, 0x00392f20, 0x00463d2f, 0x00585041, 0x005e5849, 0x005d5851, 0x00615855, 0x004f403a, 0x003a220f, 0x003d1b0a, 0x0045190b, 0x00441709, 0x003e1407, 0x00361106, 0x003f2017, 0x00462c25,
- 0x004a4331, 0x005c5241, 0x00706253, 0x00766558, 0x00705f53, 0x0068584c, 0x00554439, 0x003e2e23, 0x00221e09, 0x0025240e, 0x003f3826, 0x00554530, 0x00665743, 0x006b5543, 0x00694e3f, 0x005f4234,
- 0x00482d16, 0x0042270c, 0x0045290b, 0x00523815, 0x00675028, 0x00725e30, 0x007f6d3d, 0x00867443, 0x00726b36, 0x006b6232, 0x006b5f36, 0x006a5d35, 0x006d5d34, 0x00736035, 0x00735d34, 0x006e552e,
- 0x00654d23, 0x00624d25, 0x00654e2b, 0x00644f34, 0x005c4d48, 0x00473b48, 0x00423952, 0x00646083, 0x008f9baf, 0x00a2b2be, 0x00b5bdca, 0x00acaeb9, 0x008e919c, 0x006a6e7b, 0x00444458, 0x00191a2b,
- 0x00050d1c, 0x000b111c, 0x00212430, 0x005e616d, 0x00888c91, 0x00848d9b, 0x00878fa8, 0x00686e8c, 0x00293656, 0x00182343, 0x00161e3a, 0x00384051, 0x006f757e, 0x006c6e78, 0x006c6978, 0x009a92a9,
- 0x00afcbcf, 0x00a9c1e5, 0x008298da, 0x004f65b2, 0x005d7d9e, 0x009cbfd9, 0x009ebee2, 0x006b87c5, 0x007997d3, 0x0086a8cf, 0x0098b3d8, 0x00afc4ed, 0x007b8fac, 0x0046576e, 0x00212e42, 0x00111730,
- 0x000a1129, 0x0011152d, 0x00534f67, 0x00827b87, 0x008f8784, 0x008c8a81, 0x008a8d88, 0x00999598, 0x00a9a3a4, 0x00b8aeab, 0x009b8c83, 0x00665641, 0x00574629, 0x004e3c21, 0x00695641, 0x00beac9e,
- 0x00f9fdfa, 0x00fbfefc, 0x00fdfffe, 0x00fcfdfc, 0x00f2f1f2, 0x00f3f1f3, 0x00fffdff, 0x00fffcfe, 0x00fafcf9, 0x00f7faf6, 0x00d5d6d7, 0x006a6c75, 0x00171d28, 0x001b1f2c, 0x00202031, 0x00212135,
- 0x00192032, 0x001a1f2f, 0x00181b2d, 0x00181a2b, 0x001c2030, 0x00302427, 0x00412925, 0x00472f2a, 0x0041301f, 0x00422f1f, 0x00493324, 0x004a3527, 0x00453428, 0x0042372c, 0x00423a32, 0x00433c35,
- 0x00443e2c, 0x00453f2c, 0x00473e30, 0x00433a30, 0x003e342e, 0x003d3330, 0x00392e31, 0x00372b30, 0x00292525, 0x00201c20, 0x00221f22, 0x00292924, 0x00383832, 0x0042423c, 0x00444440, 0x003d3d3c,
- 0x00292a27, 0x00191a16, 0x00171816, 0x00161616, 0x00151415, 0x0019181a, 0x001a181c, 0x001b1a1c, 0x00151515, 0x00161616, 0x00181818, 0x001b1b1b, 0x001c1c1c, 0x001c1c1c, 0x001b1b1b, 0x001a1a1a,
- 0x00101411, 0x000e120f, 0x00151414, 0x001e1d1c, 0x00333430, 0x0043413f, 0x00575050, 0x00615e59, 0x00646557, 0x00666657, 0x006d6a5e, 0x006e6b63, 0x00706d69, 0x00736f6c, 0x00767271, 0x00747374,
- 0x00666a6a, 0x005c6261, 0x004e5456, 0x00414549, 0x00303339, 0x00252832, 0x001f1f2e, 0x001f1d2c, 0x00181f23, 0x00181d20, 0x001a1c1e, 0x001f1e1e, 0x00221f1f, 0x00231f1d, 0x0025201f, 0x0024201e,
- 0x001a1b13, 0x0015160f, 0x0052504d, 0x00aca9a9, 0x00d7d6d4, 0x00d7d6d6, 0x00dbdadf, 0x00e6e7ed, 0x00eaf2ee, 0x00eaf5f0, 0x00fafcfd, 0x00fcf7fe, 0x00f1faef, 0x00d2e2f5, 0x007a88af, 0x006471a4,
- 0x00a6b3af, 0x0093968f, 0x007e7476, 0x0080717b, 0x00898062, 0x00918878, 0x00a19691, 0x00aba29a, 0x00a4ac96, 0x00a7af9a, 0x00adb3a2, 0x00abaea3, 0x00b2b3ae, 0x00898788, 0x0029232a, 0x00130d16,
- 0x0008130f, 0x0008110e, 0x000c0f0c, 0x000e0d0a, 0x0016150f, 0x0023211a, 0x00322d27, 0x004b4640, 0x00abaea3, 0x00f1f3eb, 0x00fefcfa, 0x00fffeff, 0x00fcfefe, 0x00fcfcfa, 0x009f9b96, 0x00382b29,
- 0x003e2829, 0x00412e39, 0x00544258, 0x006c6481, 0x00818dac, 0x00768ab1, 0x006578a6, 0x00556897, 0x003c537c, 0x00324571, 0x002c3567, 0x00252960, 0x001d2159, 0x00181b52, 0x00191852, 0x00181655,
- 0x000b183c, 0x000c173f, 0x000f173f, 0x00111742, 0x00101649, 0x000c144d, 0x00263072, 0x003a4391, 0x00334c9f, 0x002f48a1, 0x00243996, 0x00203485, 0x00203283, 0x001d2b7c, 0x001d257a, 0x001f2779,
- 0x001e2776, 0x00192776, 0x001d2a7c, 0x001e297b, 0x001a297a, 0x0018287a, 0x001a287e, 0x00192881, 0x0012297a, 0x0015287b, 0x001a2984, 0x001d2b8a, 0x00202f8c, 0x001e2c8b, 0x001e2a8a, 0x00212a90,
- 0x001b278b, 0x001b2881, 0x00374095, 0x005d64b0, 0x008c8ecc, 0x00a0a0d9, 0x00a8a0dd, 0x00796dae, 0x005f5882, 0x008b81a7, 0x00988ca9, 0x00988f9d, 0x00c0bce7, 0x00ada1bf, 0x00a18da4, 0x00c7b8b8,
- 0x00e6dfe2, 0x00eeb3ab, 0x00e86c5b, 0x00fc4f27, 0x00ec5c36, 0x00c9624e, 0x00984c40, 0x00855948, 0x00a28a73, 0x00c09682, 0x00cd9082, 0x00ce8a76, 0x00b18866, 0x00a87f5e, 0x00b68169, 0x00bf7a6b,
- 0x00a68d76, 0x00b8aea8, 0x00e6e2ea, 0x00eeeefe, 0x00f3eaee, 0x00eaedef, 0x00e9ecf5, 0x00f3f8fe, 0x00f3ded4, 0x00f29e80, 0x00e6653d, 0x00ed5221, 0x00f33f16, 0x00f6461e, 0x00f25b35, 0x00eb7859,
- 0x00edc3aa, 0x00f9eee3, 0x00fff6f8, 0x00fffafe, 0x00fcfbfa, 0x00fdfef8, 0x00b3b1b0, 0x006a686a, 0x0073767b, 0x00a1a4ad, 0x00d1d3e1, 0x00e2e6f5, 0x00ebefff, 0x00e6ebfc, 0x00e6ebfd, 0x00ebf1ff,
- 0x00e6eaf3, 0x00e4e9ef, 0x00b7bfc4, 0x00a3b0b4, 0x00afbfc8, 0x00acbdc9, 0x00a9b5c8, 0x00a6b0c5, 0x00c0cac7, 0x00d3dacf, 0x00cccac9, 0x00ded4e8, 0x00f3ecfc, 0x00f2ecf9, 0x00f2ebfd, 0x00f6edff,
- 0x00e9edf6, 0x00edecf5, 0x00efebf8, 0x00f5f6fd, 0x00e3e2f3, 0x00abb99e, 0x007b9065, 0x00738853, 0x00729140, 0x00729041, 0x0078934c, 0x00779052, 0x00788f55, 0x00788f52, 0x007a9153, 0x007b934e,
- 0x007a963d, 0x0077914d, 0x0080935f, 0x007e8c62, 0x008b9c69, 0x00b3c19a, 0x00e4e9d9, 0x00efeffe, 0x00dee4f6, 0x00dee3ef, 0x00e3e5f3, 0x00e9eaf5, 0x00efeefe, 0x00efeefe, 0x00eeeeff, 0x00f0f0ff,
- 0x00e4ecf7, 0x00dde6f4, 0x00dddef6, 0x00e4e7fc, 0x00e3e3fc, 0x00d5c5c3, 0x00bd9e8d, 0x00b99178, 0x00c59b72, 0x00c69d78, 0x00c49d84, 0x00bca194, 0x00b4a6b0, 0x00a19aae, 0x00c9c2de, 0x00f8eeff,
- 0x00fafff9, 0x00f8fcf8, 0x00fdfffc, 0x00ffffff, 0x00a5aba9, 0x002a312d, 0x00101a14, 0x000f1a12, 0x000a1f0d, 0x000a200b, 0x000e1f11, 0x000e1e15, 0x000d1f15, 0x000c1d14, 0x000e1d17, 0x000d1d15,
- 0x000a1e0e, 0x000b1e10, 0x000d1e12, 0x000d1e13, 0x000d1e13, 0x000a1a17, 0x00142026, 0x001e283b, 0x001a2a50, 0x002d3b6b, 0x004d5a95, 0x003a4988, 0x00253478, 0x00283884, 0x00243286, 0x00233089,
- 0x001e3183, 0x00263a8a, 0x00324595, 0x00334697, 0x002a3d8f, 0x0024398d, 0x00263c93, 0x00273d98, 0x00213d95, 0x00223c98, 0x00293d9e, 0x00303ca3, 0x002e3da7, 0x002d3dac, 0x002d3fb1, 0x002c40b3,
- 0x00243fa9, 0x002840aa, 0x002e3fa9, 0x003242a7, 0x003342a0, 0x00314597, 0x00324698, 0x00485db2, 0x006879cd, 0x007384d6, 0x008993e4, 0x00838ad2, 0x00797bab, 0x007b7b9b, 0x00817e8e, 0x0086868b,
- 0x0080827b, 0x00967b72, 0x00af7b6d, 0x00b06449, 0x00ac6835, 0x00d5a285, 0x00ffe5e0, 0x00fbeeff, 0x00e7f2f0, 0x00e8fadc, 0x00e8ebc2, 0x00f5d4b6, 0x00efd1c1, 0x00e5cdc2, 0x00dac7c1, 0x00c3bcb5,
- 0x009da58a, 0x00818d6e, 0x005a684c, 0x00454f3d, 0x00333f32, 0x00494b4a, 0x00706d72, 0x006e6c71, 0x006c6d69, 0x00757572, 0x005b5b59, 0x00353533, 0x00151413, 0x00171615, 0x00171615, 0x0013110f,
- 0x000a0e09, 0x00070a04, 0x00090905, 0x00100c07, 0x00170e04, 0x00433324, 0x00775f4b, 0x007c5d44, 0x00704e22, 0x007e582a, 0x008c6138, 0x00956c43, 0x008e643a, 0x007f5629, 0x007f5423, 0x00906434,
- 0x00936b2f, 0x00976f2f, 0x009e7235, 0x009c7032, 0x00875c1c, 0x00533a37, 0x0040365a, 0x003b3973, 0x001d3b88, 0x0013358a, 0x001d3792, 0x00283b8d, 0x009497c2, 0x00eeeefd, 0x00fffffc, 0x00fffff3,
- 0x00f9fdf5, 0x00f5faf7, 0x00adb4c6, 0x00525c7a, 0x0018265e, 0x00152569, 0x001c2d78, 0x0021307f, 0x000b2150, 0x00041838, 0x000e1c48, 0x0013226b, 0x00172773, 0x00182e7c, 0x002c4194, 0x003d4fa6,
- 0x003a53a8, 0x003855ac, 0x003b51ac, 0x004254b0, 0x002d3d99, 0x00162166, 0x0009124c, 0x00020b49, 0x00000c46, 0x000e296a, 0x0019337b, 0x00193481, 0x00273f92, 0x002b4598, 0x00263f95, 0x002f429a,
- 0x003a51b5, 0x004965c3, 0x003651ae, 0x00183390, 0x002843a1, 0x00364ba9, 0x001b2881, 0x00111b69, 0x0000032b, 0x0004081c, 0x00120f27, 0x00040225, 0x00020121, 0x00060a29, 0x0027274a, 0x0035355b,
- 0x00181434, 0x00292037, 0x0043303c, 0x00573e35, 0x00614624, 0x00524130, 0x0047403b, 0x00393c40, 0x00253b44, 0x0018343c, 0x0072868f, 0x00d4dfe3, 0x00e6e8e4, 0x00f5f3ee, 0x00ebe9e1, 0x00eeefe8,
- 0x00e9f6ef, 0x00a8b8b7, 0x003a484b, 0x0027383e, 0x00091520, 0x00030b15, 0x001a1825, 0x00261b24, 0x00483028, 0x0073524a, 0x00caa8a5, 0x00e2d1cb, 0x00f0ddd9, 0x00e5d5d2, 0x00e4d0d1, 0x00dcc3ce,
- 0x00988b95, 0x00685b6c, 0x002d213b, 0x000c0321, 0x00160b33, 0x004d5667, 0x00677479, 0x007b8684, 0x00ccdbce, 0x00d4e1d5, 0x00d7ded5, 0x00d8dcd4, 0x00d5ddd3, 0x00dce6db, 0x00dbe7dd, 0x00d7e4db,
- 0x00e6edec, 0x00dfe7e7, 0x00c7cccf, 0x00e0e4e8, 0x00bec3c7, 0x00d4d6db, 0x00e9e9ee, 0x00efeff3, 0x00e8eeed, 0x00ebf1ec, 0x00f1f2f3, 0x00ecf2ec, 0x00e2a191, 0x00d84522, 0x00e1331c, 0x00ae202e,
- 0x00712e50, 0x00612e3d, 0x0086687e, 0x009eabcb, 0x00cad1e7, 0x00dee9ec, 0x00eaefed, 0x00ebf0eb, 0x00e1eedf, 0x00e9f1e5, 0x00f3f5f2, 0x00dde1e8, 0x00b6c0ce, 0x006b7890, 0x007987ab, 0x00cbdaf3,
- 0x00fefefe, 0x00fefefe, 0x00fbfbfb, 0x00fdfdfd, 0x00fefefe, 0x00bababa, 0x00181818, 0x00010202, 0x00030203, 0x00020102, 0x00020203, 0x00020403, 0x00000200, 0x00000200, 0x00000302, 0x00030505,
- 0x00010303, 0x00030704, 0x00060907, 0x000a0c0a, 0x000d100e, 0x000e1310, 0x00101614, 0x00141a19, 0x001b2119, 0x001d241c, 0x001e261f, 0x00212b22, 0x00212d23, 0x00233124, 0x00202f21, 0x001e2d1f,
- 0x0019211f, 0x00171e1c, 0x00141917, 0x00111613, 0x00090c0a, 0x00060807, 0x00030303, 0x00020102, 0x00020101, 0x00020101, 0x00020001, 0x00010000, 0x00000000, 0x00000101, 0x00010101, 0x00010101,
- 0x00010101, 0x00000100, 0x00010103, 0x00010102, 0x00060705, 0x00090908, 0x000f0f10, 0x001c1c1c, 0x002d2d2c, 0x003d3e3d, 0x00555455, 0x006a6869, 0x007f8080, 0x00949696, 0x00aeaeae, 0x00bebebd,
- 0x00d4d3d1, 0x00e0e0de, 0x00eeedee, 0x00f0f0f0, 0x00f6f7f5, 0x00fafbf9, 0x00fbfcfc, 0x00fbfdfd, 0x00fdfbfc, 0x00fdfdfd, 0x00fafbfb, 0x00fefffe, 0x00fdfdfd, 0x00fdfefe, 0x00fbfdfc, 0x00fcfffe,
- 0x00fdfdfe, 0x00fbfbfa, 0x00fafbfa, 0x00fcfdfc, 0x00fbfcfb, 0x00fafcfa, 0x00fcfefb, 0x00fbfdfc, 0x00fefefe, 0x00fdfdfd, 0x00fcfbfc, 0x00fdfdfc, 0x00f7f7f7, 0x00fbfbf9, 0x00f6f7f4, 0x00fafcf9,
- 0x00f4f9f2, 0x00ede8e4, 0x00cbbaba, 0x00c3a6aa, 0x00ac8b8e, 0x00977a7a, 0x008e7773, 0x00897a71, 0x008f8176, 0x009a867d, 0x009e8c86, 0x00918680, 0x007e746c, 0x006e635b, 0x0050463f, 0x00383229,
- 0x00242118, 0x00221c16, 0x002a251e, 0x00433f35, 0x00504e44, 0x004f5049, 0x004f524a, 0x00403b32, 0x00382418, 0x00412418, 0x00421c11, 0x003f190d, 0x00361207, 0x00300f07, 0x00371913, 0x00422822,
- 0x00453b2c, 0x00544839, 0x00615445, 0x006b5e4e, 0x006b5f4d, 0x00625644, 0x00514532, 0x0040321f, 0x002d2410, 0x00342c17, 0x00493e2b, 0x00634f36, 0x00726149, 0x00765f49, 0x006b533e, 0x00614733,
- 0x004e351f, 0x00452d13, 0x00442b0f, 0x004f3715, 0x00665029, 0x00746331, 0x0084753d, 0x008d7d44, 0x00867641, 0x007f6e3b, 0x007d6839, 0x007b6535, 0x00796231, 0x007e6532, 0x007f6331, 0x00795b2a,
- 0x00705026, 0x00674c22, 0x00614720, 0x00624c2b, 0x005f4f45, 0x004e424b, 0x00251e35, 0x00151436, 0x002c314e, 0x00454f66, 0x00525c6e, 0x004a515d, 0x00373d4b, 0x00222738, 0x000d1226, 0x00081023,
- 0x000c1022, 0x000b1020, 0x001a1e2e, 0x004a505b, 0x00798086, 0x006b758b, 0x004c5778, 0x002e385c, 0x002f3b68, 0x003b4570, 0x002a3458, 0x003a445c, 0x006a727f, 0x00808592, 0x00767687, 0x00948fa7,
- 0x00a0bac5, 0x00768ebe, 0x00647cc3, 0x005e75cc, 0x007a98c7, 0x00add0ee, 0x00a1c3dc, 0x00809fc2, 0x007591c4, 0x007d95c9, 0x0099b0e1, 0x00a3b9e8, 0x007991a7, 0x00869aa4, 0x00617579, 0x003a4653,
- 0x00192143, 0x000d123a, 0x002a2f52, 0x00666d83, 0x008b9591, 0x008a928c, 0x00868c86, 0x0091908e, 0x00a79f9c, 0x00bab0a9, 0x00988b7e, 0x0061543e, 0x00514228, 0x0045341d, 0x005b4835, 0x00b09d8f,
- 0x00fdfdfd, 0x00fefefe, 0x00fdfdfd, 0x00fcfcfc, 0x00f1f1f1, 0x00f2f2f2, 0x00fefefd, 0x00fcfcfc, 0x00fdfcfc, 0x00fcfcfb, 0x00d9d9db, 0x0072757b, 0x00111620, 0x00151a25, 0x00191b2a, 0x001a1d30,
- 0x001a1c32, 0x001b1c30, 0x00181a2c, 0x00161929, 0x001a1f2c, 0x002c2222, 0x003c271e, 0x00462e24, 0x00483224, 0x00493223, 0x004d3626, 0x004c3726, 0x00483625, 0x00443627, 0x0043382a, 0x00443a2c,
- 0x00433b2e, 0x00433c2c, 0x00413a2b, 0x003e362b, 0x003a302b, 0x00382e2c, 0x00352c2e, 0x00362e32, 0x002d272f, 0x00251f29, 0x00221e24, 0x0021201b, 0x002a2a24, 0x0034352e, 0x0033342e, 0x002c2e28,
- 0x00222321, 0x00171816, 0x00171717, 0x00171718, 0x00161617, 0x00181819, 0x00171718, 0x00171717, 0x00171717, 0x00161616, 0x00171717, 0x001a1a1a, 0x001c1c1c, 0x001c1c1c, 0x001a1a1a, 0x00181818,
- 0x00151714, 0x00141513, 0x00181716, 0x00252421, 0x003e3e3a, 0x0052514e, 0x00625f5b, 0x006a6861, 0x006d6b60, 0x006b6a5e, 0x006b675d, 0x006a675f, 0x00696862, 0x006b6965, 0x006d6a68, 0x006a6a69,
- 0x00616363, 0x00585b5c, 0x004b4d51, 0x003e4046, 0x002d3037, 0x0022262f, 0x001a1e2a, 0x00191d27, 0x001b2128, 0x001d2127, 0x001d2023, 0x00242424, 0x00282524, 0x002d2927, 0x002f2a27, 0x002f2b27,
- 0x0025211b, 0x00211f18, 0x00615e5a, 0x00b8b6b3, 0x00d6d7d3, 0x00d4d6d4, 0x00d9dbdc, 0x00e5e8ea, 0x00eaefef, 0x00ecf3f3, 0x00f7f9fb, 0x00fcf5fe, 0x00f5fcf2, 0x00d7e6f8, 0x007f8eb6, 0x006c7cab,
- 0x00aab2af, 0x0092918e, 0x00817477, 0x00816f7a, 0x0081775b, 0x00847a68, 0x008f867b, 0x009b9387, 0x009d9a89, 0x009e9d8b, 0x009f9e8f, 0x00a2a196, 0x0092938c, 0x0060605e, 0x001c191c, 0x00171418,
- 0x000f1612, 0x000f1410, 0x000e0f0a, 0x0013110a, 0x001d1c11, 0x0029271a, 0x00353225, 0x00464437, 0x00a7a69b, 0x00f3f3eb, 0x00fcfaf6, 0x00fefdfd, 0x00fdfefd, 0x00fdfcfb, 0x00a19f9d, 0x00332d2e,
- 0x002c2531, 0x003f3a56, 0x0063638a, 0x007f89ba, 0x007f97ce, 0x007391cc, 0x006484c0, 0x005475b3, 0x004662a5, 0x003b549a, 0x00314591, 0x00273787, 0x001e2a7d, 0x001a2275, 0x001b1f74, 0x001a1a74,
- 0x000f1b66, 0x000f1966, 0x000d1763, 0x000f1964, 0x000e1b69, 0x00162675, 0x003a4da0, 0x004053ae, 0x00263fa1, 0x00223aa1, 0x001c3293, 0x001d3382, 0x001f327f, 0x001c2b77, 0x00192371, 0x001d2673,
- 0x001e2773, 0x001c2775, 0x001c2874, 0x001a2775, 0x00192776, 0x00162777, 0x00152777, 0x00152679, 0x0016287d, 0x00172881, 0x00192882, 0x001c2a88, 0x001f2d8a, 0x00202d8a, 0x00202c89, 0x0024328a,
- 0x003b4682, 0x0064709c, 0x009ca4c5, 0x00c6cce0, 0x00eaeaf4, 0x00f1eff7, 0x00f1edf7, 0x00d5d2dd, 0x00a1a4ab, 0x00afb0b2, 0x00bcbabf, 0x00938c9a, 0x00bfbee4, 0x00e7dcf7, 0x00c9c0d1, 0x00b9bcb9,
- 0x00d5dae6, 0x00f0c2c1, 0x00ed7968, 0x00ff5129, 0x00f5592c, 0x00dd644e, 0x00b45d4e, 0x00895648, 0x00826962, 0x00b18682, 0x00cc958c, 0x00ca8b78, 0x00b08761, 0x00a97f5c, 0x00ad7a5d, 0x00bf7a6a,
- 0x00bea394, 0x00d7ced0, 0x00e5e7f2, 0x00eaeefd, 0x00f3edf2, 0x00edeff2, 0x00eaecf3, 0x00f3f6fe, 0x00f4ccc2, 0x00f28a69, 0x00ea6436, 0x00ec5625, 0x00f1411f, 0x00e74426, 0x00dc5c40, 0x00da8d70,
- 0x00f7e0cb, 0x00fef2ef, 0x00fdf1f5, 0x00fef8fe, 0x00effdfc, 0x00f4fcf8, 0x00a2a5a2, 0x005c5f5b, 0x007c7e81, 0x00aaabb3, 0x00cfd1dc, 0x00dee1ee, 0x00e7ebf8, 0x00e7edfb, 0x00e2e9f6, 0x00e3ebf6,
- 0x00ebe9f6, 0x00ecedf4, 0x00d9dfe3, 0x00b0bcbd, 0x00a8b8bd, 0x00c7d8de, 0x00d9e8ee, 0x00deebef, 0x00e9f1e6, 0x00dee3d0, 0x00c5c2ba, 0x00d4cbda, 0x00f1eaf6, 0x00f2edf1, 0x00f0ecf3, 0x00f2f1f7,
- 0x00eef0f6, 0x00eeecf7, 0x00eeebf8, 0x00f1f2fe, 0x00efeffc, 0x00cbd6c9, 0x008da07d, 0x00768a5e, 0x0078914c, 0x00758f47, 0x0078914b, 0x007b9352, 0x00799156, 0x00779154, 0x00779254, 0x0077954f,
- 0x00789643, 0x0079924f, 0x007d9056, 0x007b8b5d, 0x0098a77a, 0x00c5d0b2, 0x00ebf3e5, 0x00eff2fc, 0x00e5e8fd, 0x00e4e7fc, 0x00dbe0f2, 0x00dfe7f4, 0x00e4ebf5, 0x00e3e8f4, 0x00e5e8f1, 0x00e5e7f2,
- 0x00e4e8f5, 0x00dbdeef, 0x00d1d1e7, 0x00d9dcf3, 0x00d5d6f2, 0x00c7b8c2, 0x00b49893, 0x00b99685, 0x00cda27d, 0x00c7a17f, 0x00ccac91, 0x00d8c4b9, 0x00e1d8dd, 0x00d2cdd9, 0x00d7d3e2, 0x00f5eefa,
- 0x00fcfefe, 0x00f8fafa, 0x00fbfdfc, 0x00feffff, 0x00a4abaa, 0x00262e2c, 0x000c1513, 0x000e1914, 0x000c1a11, 0x000b1b10, 0x000d1d12, 0x000c1d13, 0x000a1f13, 0x000a1e13, 0x000b1d14, 0x000b1d14,
- 0x000d1d11, 0x000f1f14, 0x000c1d12, 0x000e1f15, 0x000c1d13, 0x00081816, 0x00132229, 0x001c293e, 0x001d2856, 0x001f2a61, 0x001f2b68, 0x00202e6c, 0x00233374, 0x0026387d, 0x00243681, 0x00203282,
- 0x0023338b, 0x0023358b, 0x0024378b, 0x0023388b, 0x00243b8c, 0x00253d8f, 0x00263f93, 0x00263f96, 0x00243e9c, 0x00243d9e, 0x00283da2, 0x002d3ba2, 0x002a3ba3, 0x002d3da9, 0x002d3fae, 0x002a3eac,
- 0x002940ac, 0x002e42ae, 0x002a3ba7, 0x002e3fa5, 0x003242a3, 0x003140b0, 0x003c4dbc, 0x005165c0, 0x006681c0, 0x00708bcc, 0x00748ed2, 0x006c82d2, 0x005e71c4, 0x006473c5, 0x00606fb3, 0x006676b0,
- 0x007474ab, 0x009a799f, 0x00b47c87, 0x00b26557, 0x00be8564, 0x00f3ccbf, 0x00f7e3e3, 0x00f2e2ee, 0x00e3f0cf, 0x00d2f2a7, 0x00bfd788, 0x00e0d0ab, 0x00f7e8d1, 0x00f9eddd, 0x00fcf1e7, 0x00f2efe6,
- 0x00ebf0d8, 0x00dee5cd, 0x00cad2ba, 0x00c0c6b3, 0x00afb5aa, 0x00c2c3c0, 0x00e3e1e0, 0x00e3e1e1, 0x00e1e1de, 0x00e9e9e7, 0x00d2d2d1, 0x00adadac, 0x00878685, 0x008d8d8a, 0x00898986, 0x007e7e7a,
- 0x00696a69, 0x0060625e, 0x00484744, 0x003d3935, 0x00241c15, 0x00372a1e, 0x00675340, 0x007e634b, 0x00815f37, 0x008d673e, 0x0097704b, 0x009e7855, 0x00966f49, 0x00815b2e, 0x00795421, 0x00835e2a,
- 0x008c642c, 0x0092692e, 0x00986d31, 0x009b6e34, 0x00906424, 0x00674435, 0x00483541, 0x00363354, 0x00213679, 0x00173282, 0x00143284, 0x002a418c, 0x009fa5cd, 0x00f1f1ff, 0x00fcfcf9, 0x00fffdf3,
- 0x00fbf9fc, 0x00f7fcfc, 0x00bec7ca, 0x00859498, 0x00213555, 0x001c2c6a, 0x001a2776, 0x0019277e, 0x00142663, 0x00101f4c, 0x0006123b, 0x000f1954, 0x001b2561, 0x001c286d, 0x0019266c, 0x00182973,
- 0x002c3f93, 0x003e53ac, 0x003b4daa, 0x004256b5, 0x005b70d0, 0x005167b3, 0x002a4082, 0x00192d72, 0x0002195e, 0x000c2571, 0x001d3584, 0x00183182, 0x0020388c, 0x002b4498, 0x00284297, 0x00253d93,
- 0x002941a7, 0x00415cbd, 0x004965c4, 0x002d49a7, 0x001a3491, 0x00192e89, 0x0019277a, 0x001d256d, 0x000d0d34, 0x000b081d, 0x00050212, 0x00020016, 0x00090b24, 0x00000322, 0x0005062e, 0x000b0c3d,
- 0x00151047, 0x0028204a, 0x0034263f, 0x003e2b2c, 0x00493517, 0x00382d1d, 0x002c2b27, 0x0020272b, 0x001a303e, 0x001e3543, 0x00869ca8, 0x00dce8ec, 0x00e7e6e3, 0x00cfcdc7, 0x00c0bfb7, 0x00e6e7e2,
- 0x00eef5e8, 0x00dce6e2, 0x005c6c6f, 0x00324752, 0x000c202e, 0x00000c18, 0x000b0c16, 0x00170b0f, 0x00412020, 0x00815452, 0x00a56562, 0x00c1635e, 0x00e48c7f, 0x00ec9d90, 0x00e79e92, 0x00c08074,
- 0x0060372e, 0x0040211c, 0x00241313, 0x00251e24, 0x001c1e2b, 0x0033333b, 0x00353237, 0x00686366, 0x00cec0c4, 0x00e1d1d5, 0x00e4d0d5, 0x00f1e0e2, 0x00f5e9e8, 0x00eee4e2, 0x00e4ddda, 0x00efede8,
- 0x00e5ebf0, 0x00cdd4d9, 0x00e0e7eb, 0x00babec3, 0x0093979b, 0x00cdcdd2, 0x00e7e7eb, 0x00ededf1, 0x00eaebeb, 0x00f1eff4, 0x00eeecef, 0x00f1f1eb, 0x00d5a490, 0x00a83a14, 0x00a23118, 0x006f2f34,
- 0x00202649, 0x003c415b, 0x002b3956, 0x001b3f71, 0x00545e8e, 0x007989ac, 0x00a2b7ce, 0x00c9d9e9, 0x00e0ebf0, 0x00e6f0f8, 0x00ecf0fc, 0x00ebf1ff, 0x00dbeaf8, 0x0087a0c7, 0x00607faf, 0x00b6d9f0,
- 0x00fcfcfc, 0x00fcfcfc, 0x00fefefe, 0x00fcfcfc, 0x00fefefe, 0x00ababab, 0x000a0a0a, 0x00050505, 0x00030203, 0x00020102, 0x00010202, 0x00020302, 0x00000201, 0x00010301, 0x00030504, 0x00050607,
- 0x00040505, 0x00020505, 0x00080c0c, 0x000c0e0e, 0x000f1011, 0x00101313, 0x00131917, 0x00151b19, 0x001a211c, 0x001e251f, 0x00212923, 0x00222c23, 0x00273129, 0x00273327, 0x00202d21, 0x00182618,
- 0x001a2120, 0x00161d1c, 0x00131816, 0x000e1310, 0x000c0f0d, 0x00070907, 0x00040503, 0x00030201, 0x00020102, 0x00030303, 0x00020102, 0x00030202, 0x00010101, 0x00020202, 0x00010000, 0x00000000,
- 0x00020203, 0x00000000, 0x00020201, 0x00000000, 0x00000000, 0x00000001, 0x00020202, 0x00010100, 0x00010001, 0x00000101, 0x00030303, 0x00040403, 0x00070706, 0x000d0d0d, 0x00232222, 0x00353636,
- 0x00545252, 0x00636261, 0x007c7c7c, 0x00919091, 0x00a6a6a5, 0x00b8b7b6, 0x00cdcdcd, 0x00e0e1e1, 0x00f2f1f2, 0x00f9f9f9, 0x00fbfcfc, 0x00fafbfb, 0x00ffffff, 0x00fdfdfd, 0x00fcfdfc, 0x00fcfefd,
- 0x00fffcfe, 0x00fefcfd, 0x00fdfdfd, 0x00fcfcfc, 0x00fefefe, 0x00f9f9f9, 0x00fafbfa, 0x00fafcfc, 0x00fffffe, 0x00feffff, 0x00fcfdfc, 0x00f9f9f7, 0x00fcfafa, 0x00fefdfd, 0x00fbfafa, 0x00fdfdfd,
- 0x00f5fef8, 0x00f9fcf9, 0x00fffbfd, 0x00fef4f8, 0x00fef3f5, 0x00faefef, 0x00f7ecea, 0x00ebe4dd, 0x00ded7d0, 0x00d8cdc7, 0x00d4cac6, 0x00c2c2bd, 0x00aeaba6, 0x00999793, 0x00767370, 0x00585652,
- 0x00302f2a, 0x001c1916, 0x0018130f, 0x00282722, 0x003e3a37, 0x003b3f3a, 0x00363933, 0x002a2a23, 0x00342520, 0x00432d26, 0x00472b22, 0x003c1f15, 0x0030130c, 0x002d100b, 0x00331714, 0x003b211e,
- 0x003c3524, 0x00433a29, 0x00504635, 0x00594f3d, 0x005e5442, 0x005b523e, 0x004a412d, 0x003e341f, 0x00352b15, 0x00372f17, 0x0054442d, 0x006a5436, 0x007b6148, 0x00786048, 0x006f543e, 0x00634933,
- 0x00533921, 0x004a3317, 0x00483114, 0x0052391a, 0x0067502d, 0x00766432, 0x0088773d, 0x00938046, 0x00907c44, 0x008b753c, 0x00886f35, 0x00846a30, 0x00846730, 0x00876933, 0x00876733, 0x00805e2a,
- 0x0076552d, 0x006b4e24, 0x00644b21, 0x005f4a26, 0x005a4b3d, 0x00493f44, 0x00292337, 0x00100f2f, 0x0008092a, 0x00080c29, 0x00050a21, 0x00050c1c, 0x00060c1f, 0x0004091d, 0x00050a1f, 0x00090f24,
- 0x000d1227, 0x00080d20, 0x00121728, 0x00414954, 0x00717a82, 0x00414d66, 0x00222e56, 0x003c4774, 0x006d7aae, 0x005a6796, 0x00313f66, 0x00515e79, 0x0097a0b2, 0x00abb0c4, 0x0065677d, 0x0064637f,
- 0x008b9fb1, 0x005b7098, 0x00768bca, 0x008da0ea, 0x00869bdd, 0x0098b4de, 0x0098b6ce, 0x00accad8, 0x00afc4e6, 0x00b6c7f2, 0x00c4d3fb, 0x0093a8d7, 0x008b9fb0, 0x00b4c9cd, 0x009aaba8, 0x00818f93,
- 0x00394268, 0x001f2656, 0x001a214f, 0x00354263, 0x007a898f, 0x008d989a, 0x00868d8c, 0x008d8f8d, 0x00a5a09c, 0x00b6aea5, 0x009e9385, 0x005c5040, 0x004a3d2d, 0x003d2e21, 0x004d3e30, 0x00a19385,
- 0x00fcfbfb, 0x00fefdfd, 0x00fefdfe, 0x00fcfcfc, 0x00f2f2f2, 0x00f3f3f3, 0x00fdfdfd, 0x00fdfefd, 0x00fffefe, 0x00fcfdfc, 0x00e0e1e2, 0x007a7e82, 0x00131821, 0x00141723, 0x00191b2a, 0x00171b2f,
- 0x0017192d, 0x0017192a, 0x00161729, 0x00181927, 0x001b1e2b, 0x002b1f21, 0x0038231e, 0x00412a23, 0x00483024, 0x00483122, 0x004a3422, 0x00493523, 0x00463424, 0x00433425, 0x00423426, 0x00423628,
- 0x00403929, 0x003f3728, 0x003c3327, 0x00383028, 0x00342d29, 0x00332c2b, 0x00322b2f, 0x00352e36, 0x002f2936, 0x0025202d, 0x00201d23, 0x001a1a14, 0x001f201a, 0x00252620, 0x00262722, 0x00242520,
- 0x001b1b17, 0x00141512, 0x00151515, 0x00171718, 0x00171618, 0x00171719, 0x00171718, 0x00161617, 0x00181818, 0x00171717, 0x00171717, 0x00191919, 0x001c1c1c, 0x001d1d1d, 0x001c1c1c, 0x00191919,
- 0x00171815, 0x00171715, 0x001e1d1b, 0x002d2c29, 0x00494743, 0x005d5c57, 0x006c6b65, 0x00737069, 0x00706e66, 0x006a6960, 0x0065635a, 0x0063625a, 0x0064635d, 0x0066645f, 0x00686461, 0x00646260,
- 0x005a5c5c, 0x00525455, 0x0047484d, 0x00393a41, 0x002a2b34, 0x001d212b, 0x00181e29, 0x00181d27, 0x001c1f27, 0x001e2026, 0x00222326, 0x002a2928, 0x0034302d, 0x0039342f, 0x003c362f, 0x003c352e,
- 0x00322b23, 0x002b271d, 0x006e6a61, 0x00c5c3bd, 0x00d8d9d4, 0x00d4d6d4, 0x00d9dcdc, 0x00e4e8e8, 0x00ebf0f0, 0x00ebf2f5, 0x00f6f6fb, 0x00fcf5fb, 0x00f8fcf7, 0x00dae7f8, 0x008794bb, 0x007887b6,
- 0x00b1b7b4, 0x0095948f, 0x00897b7d, 0x00867280, 0x0084755e, 0x007e7360, 0x00867b6b, 0x008e8273, 0x00938879, 0x00938b7a, 0x00958f7e, 0x00908c7e, 0x00696760, 0x00393736, 0x001d1b1d, 0x001e1c20,
- 0x00131916, 0x00121612, 0x0014130f, 0x001a170f, 0x00272418, 0x002f2b1e, 0x003a3528, 0x00494538, 0x00a5a197, 0x00f2f3ea, 0x00fefdf7, 0x00fcfcf9, 0x00fcfefb, 0x00fdfafa, 0x00a5a2a5, 0x003a383e,
- 0x00393e53, 0x005e698a, 0x008597c7, 0x0090a9e2, 0x0081a0e8, 0x007095da, 0x00618ad2, 0x00537dc9, 0x00476dc0, 0x003a5eb6, 0x002f51ad, 0x002643a4, 0x0020359b, 0x001d2c93, 0x001e2890, 0x001c228f,
- 0x0017238a, 0x00152086, 0x00131f84, 0x00192687, 0x00223492, 0x003448a4, 0x003850ac, 0x002b43a2, 0x001d3699, 0x001a3396, 0x00142b8a, 0x00152a7a, 0x001a2c7b, 0x001a2976, 0x00192472, 0x001c2670,
- 0x001c246c, 0x001d256d, 0x001d2772, 0x001a276f, 0x00192675, 0x00152672, 0x00152878, 0x00152779, 0x001a2880, 0x0019287f, 0x001b2883, 0x001a287f, 0x001e2981, 0x001c2778, 0x002b3589, 0x004a55a6,
- 0x0099a4c7, 0x00c7d0e4, 0x00f1f4fb, 0x00f4f6ed, 0x00f9f5e4, 0x00f6f1e1, 0x00efeadf, 0x00edece2, 0x00e4e8dc, 0x00d9e2cf, 0x00daded5, 0x00afa9b6, 0x00a7a3cd, 0x00e3d7f0, 0x00ebe4ee, 0x00d8e3dd,
- 0x00c3d1e2, 0x00e9bfc3, 0x00ee8075, 0x00fb552d, 0x00fa562a, 0x00e35e41, 0x00e37e6d, 0x00cd9486, 0x0097807f, 0x00a48084, 0x00c29493, 0x00c0887a, 0x00b08764, 0x00af8262, 0x00aa785d, 0x00be7b6e,
- 0x00cfb2a8, 0x00ece3e7, 0x00e9ebfa, 0x00e4ecfd, 0x00f1eef4, 0x00ebeef2, 0x00edecf1, 0x00f7f4fb, 0x00f6bcae, 0x00ec7955, 0x00ef6131, 0x00e25721, 0x00e74626, 0x00db523a, 0x00e37e69, 0x00eec0aa,
- 0x00fdf5e8, 0x00fcf7f5, 0x00fdf5fa, 0x00fef8fd, 0x00e8ffff, 0x00ecf6f2, 0x00969895, 0x00575a55, 0x0082858a, 0x00adafb8, 0x00d2d4e0, 0x00dee1ee, 0x00e3e7f4, 0x00e5ebf7, 0x00e7edf9, 0x00e8eff9,
- 0x00eee8f8, 0x00ebeaf3, 0x00ecf2f6, 0x00c9d6d7, 0x00a9b9be, 0x00bac9d0, 0x00d6e3e8, 0x00e2eded, 0x00ecf2e3, 0x00e1e6ca, 0x00c7c5b2, 0x00cec5cc, 0x00f1ebf5, 0x00f3eef3, 0x00ededf0, 0x00ebf1f0,
- 0x00ecf2f4, 0x00e9edf3, 0x00ededfa, 0x00efeffb, 0x00f0ecfc, 0x00e0e6e2, 0x00a9b7a0, 0x0081926f, 0x007b9153, 0x00788f4a, 0x0078924a, 0x00799450, 0x00779255, 0x00769355, 0x00759254, 0x0074924e,
- 0x00739343, 0x0077924a, 0x007b9253, 0x00768953, 0x009fab8b, 0x00d3dcc8, 0x00e9f0ea, 0x00e9edf3, 0x00e6eafe, 0x00e4e9fe, 0x00dce4fb, 0x00d9e4f6, 0x00d9e1f2, 0x00dee3f0, 0x00e3e6ee, 0x00e9ecf4,
- 0x00e1e3ef, 0x00d5d8e8, 0x00ced0e8, 0x00cfd6f2, 0x00bfc4e9, 0x00b0a5c3, 0x00ad96a8, 0x00bea1a3, 0x00c9a792, 0x00c1a88d, 0x00d7c4b0, 0x00ece3da, 0x00f3f0fb, 0x00eeedf1, 0x00ebe9ed, 0x00f8f5f0,
- 0x00fbfdfd, 0x00f7f9fa, 0x00fbfdfd, 0x00fcfeff, 0x00a5acae, 0x00262d2d, 0x000e1716, 0x00101a16, 0x000c1a14, 0x000b1b14, 0x000c1d16, 0x000b1d15, 0x000b1f16, 0x000b1d15, 0x000d1c15, 0x000e1c15,
- 0x00101e15, 0x000f1e14, 0x000e1e13, 0x000d1e14, 0x000e1f15, 0x00091916, 0x00132328, 0x001a2a3e, 0x00222b5a, 0x00222c64, 0x001e2a66, 0x001f2e68, 0x0020306d, 0x001d2e71, 0x0022337c, 0x00213383,
- 0x0023368c, 0x0023368a, 0x00283c8f, 0x002a3f91, 0x00273d8e, 0x00263e8f, 0x00284195, 0x00264197, 0x0029419f, 0x0028409f, 0x002941a1, 0x002c3f9f, 0x002a3d9e, 0x002d3ea5, 0x002d3fa9, 0x00293ca6,
- 0x002a3aa5, 0x002a3ca2, 0x003547ac, 0x004155b9, 0x004557b9, 0x003c4cc6, 0x004756d0, 0x00485dbe, 0x004b6aa6, 0x005777b4, 0x00617fca, 0x005a75ce, 0x005b70da, 0x006479d6, 0x005d73c5, 0x00637bbd,
- 0x007f81b5, 0x00956f8b, 0x00a15e62, 0x00a6553b, 0x00d2a486, 0x00fbe2d7, 0x00f4e3e7, 0x00f5e2ee, 0x00e7edc9, 0x00c7eb9c, 0x00bbda8b, 0x00d7dab6, 0x00f1f2e0, 0x00edf2e7, 0x00ebf0e8, 0x00dfe7df,
- 0x00d3dac9, 0x00dbe3d1, 0x00e7eada, 0x00f0f2e3, 0x00f7f5f3, 0x00f5f4f1, 0x00f7f4f2, 0x00f2efee, 0x00f3f1ee, 0x00f9f8f5, 0x00faf9f7, 0x00f9f8f6, 0x00f9f8f6, 0x00fdfcfa, 0x00f6f5f3, 0x00f4f3f0,
- 0x00ededed, 0x00e0e0dd, 0x00c1c0bc, 0x00a6a29e, 0x00837c75, 0x00695e53, 0x006e5c4b, 0x00776048, 0x00725436, 0x006c4c29, 0x00755330, 0x00785837, 0x00866340, 0x00836037, 0x007e592b, 0x007f5a27,
- 0x008b6329, 0x00936a2e, 0x009d7037, 0x009f7338, 0x00986b32, 0x00785135, 0x00543632, 0x00372c3b, 0x00262f65, 0x001c2f73, 0x00182f75, 0x002f4483, 0x00aaaed1, 0x00f2f1fd, 0x00fdfcfa, 0x00fefdf5,
- 0x00fbfbfb, 0x00f5fbf5, 0x00cbd5ce, 0x00b7c6bd, 0x005e6f87, 0x0029376e, 0x001a2577, 0x00172183, 0x001f2a7d, 0x00172362, 0x00030d43, 0x00030838, 0x000f134b, 0x001b215b, 0x001e2565, 0x00142065,
- 0x00182772, 0x00233485, 0x004858af, 0x00374ba6, 0x003c51b3, 0x00546cc1, 0x004c64b1, 0x00475dac, 0x002a4291, 0x001b3486, 0x001b3085, 0x00132d82, 0x001c338c, 0x002b429c, 0x002f43a1, 0x00283c9c,
- 0x002138a0, 0x00344eb1, 0x004b67c7, 0x004663c0, 0x001c3794, 0x00142984, 0x001e2b7d, 0x00161c63, 0x0007042b, 0x0009071c, 0x00050310, 0x00030215, 0x0000031b, 0x00010126, 0x00060737, 0x000e0c4b,
- 0x00171255, 0x002a2459, 0x0034274c, 0x00261620, 0x0032200a, 0x001a1508, 0x00151815, 0x000f191f, 0x00132733, 0x001b323d, 0x00abb9c4, 0x00d4dbdf, 0x0093908c, 0x006f6b65, 0x008b8982, 0x00e5e4e1,
- 0x00edf7e3, 0x00ecf6ef, 0x008b989d, 0x00394b5a, 0x00213446, 0x00020f1b, 0x00050a10, 0x00120b0a, 0x0047272c, 0x0090676c, 0x009d555c, 0x00a23833, 0x00a73c38, 0x00a44137, 0x00954034, 0x00712718,
- 0x003c0a04, 0x0039150f, 0x00402925, 0x00453b3d, 0x00343339, 0x00333137, 0x003d363c, 0x00a99ea6, 0x00f4dee9, 0x00ecd5e1, 0x009c828e, 0x00a48a94, 0x00e5d0d7, 0x00f7e9ec, 0x00f3ebec, 0x00efecec,
- 0x00d2d7d9, 0x00d9dee0, 0x00d4dadc, 0x0084898b, 0x00a3a7aa, 0x00cbccd0, 0x00dbdce0, 0x00e1e1e6, 0x00e5e3e9, 0x00e9e7ed, 0x00e8e8eb, 0x00e8ede9, 0x00dab0a4, 0x00a14423, 0x00882f1e, 0x004d2536,
- 0x00173965, 0x001e3c5d, 0x001c3c62, 0x0012407f, 0x00323e7c, 0x0029447e, 0x002e5087, 0x004a6296, 0x007d8ab9, 0x009ca7d1, 0x00b1bce0, 0x00a3b3d7, 0x007f96c3, 0x005476ab, 0x003f68a0, 0x0076a3de,
- 0x00fafbfb, 0x00fbfcfb, 0x00fdfdfd, 0x00fdfdfd, 0x00f7f7f7, 0x00969696, 0x00050404, 0x00080808, 0x00010100, 0x00030302, 0x00010202, 0x00000101, 0x00010203, 0x00020303, 0x00040505, 0x00050707,
- 0x00080b09, 0x00080b0b, 0x000c100f, 0x000b0e0e, 0x00131415, 0x00111413, 0x00101612, 0x00151a17, 0x00161e19, 0x0019221b, 0x001b251c, 0x001b261e, 0x001e2920, 0x001f2a24, 0x001d2920, 0x0019251c,
- 0x00131c19, 0x00111916, 0x000e1513, 0x000b100e, 0x00070b0a, 0x00040806, 0x00030503, 0x00030402, 0x00000000, 0x00010000, 0x00010001, 0x00030202, 0x00020101, 0x00020102, 0x00010101, 0x00030102,
- 0x00000000, 0x00010101, 0x00000000, 0x00000000, 0x00010101, 0x00000000, 0x00000001, 0x00000000, 0x00010101, 0x00010202, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00030203, 0x00050505,
- 0x00050403, 0x00070706, 0x000e0e0e, 0x001c1c1c, 0x002a2928, 0x00373535, 0x00494848, 0x005d5c5d, 0x00727372, 0x00888988, 0x009fa09f, 0x00b2b2b2, 0x00cccccc, 0x00dcdcdc, 0x00e8e7e8, 0x00f0eff0,
- 0x00f5f3f4, 0x00f6f5f6, 0x00fbfbfb, 0x00fcfcfc, 0x00fffefe, 0x00fcfbfc, 0x00fdfcfc, 0x00fbfcfc, 0x00f9fafb, 0x00fafbfc, 0x00f9fafa, 0x00fdfefd, 0x00fcfdfc, 0x00fefefe, 0x00fcfcfc, 0x00f8fafb,
- 0x00f1fefa, 0x00f9fffd, 0x00fdfcff, 0x00fdf7fc, 0x00fdf7fa, 0x00fbf8f8, 0x00fcfaf8, 0x00fbfdf6, 0x00fbfcf6, 0x00fcf9f5, 0x00f9f9f6, 0x00f4f6f4, 0x00e7ebe9, 0x00e1e2e1, 0x00ced0cf, 0x00bcbcbc,
- 0x009fa19e, 0x008f8d8d, 0x00787775, 0x006c6d69, 0x005f5e5d, 0x004e504d, 0x003b3f39, 0x00393833, 0x00423c38, 0x004c3f3a, 0x004f3d37, 0x0049342e, 0x0039221e, 0x002b1210, 0x00280f0e, 0x00301a18,
- 0x002d2619, 0x00352e20, 0x0041392b, 0x00463f2e, 0x004b4533, 0x004c4631, 0x003c3520, 0x00332b16, 0x00383018, 0x00483c24, 0x005e4d33, 0x00735737, 0x007f6247, 0x007a5e46, 0x006f543d, 0x00644b35,
- 0x00543c22, 0x004d381c, 0x004b3519, 0x00523a1c, 0x00644c2c, 0x00735f2e, 0x00877339, 0x00937c43, 0x00957c42, 0x0095793e, 0x008e6f33, 0x008e6e31, 0x008f6d33, 0x00917038, 0x008f6d36, 0x00896830,
- 0x007a5e34, 0x0072582d, 0x00644c21, 0x005c4822, 0x00514331, 0x00463c3d, 0x002c2434, 0x00191230, 0x000c0f2b, 0x000a0c29, 0x00060c22, 0x00020b1f, 0x00040b21, 0x00050a24, 0x00050c23, 0x00080f27,
- 0x000c1428, 0x00060d20, 0x00111828, 0x0057616b, 0x007f8991, 0x004b5872, 0x003c4970, 0x005d6797, 0x0057679d, 0x00445386, 0x00596a94, 0x008a9ab9, 0x00b0bad2, 0x00a6adc8, 0x004f5672, 0x004b4e70,
- 0x008592b0, 0x008190af, 0x0099aacf, 0x00a5b5eb, 0x007787cc, 0x008297cc, 0x00b1c9e5, 0x00cfe8ea, 0x00cee2f2, 0x00c2ccf6, 0x009da7de, 0x006f80a8, 0x007e91a0, 0x00b5c6c6, 0x00aab8b5, 0x00a8b4b8,
- 0x007c87a7, 0x00414978, 0x001d2957, 0x001a2c55, 0x004a6274, 0x007e8b99, 0x008e989f, 0x008e9595, 0x0094938d, 0x00afaba3, 0x009d948a, 0x00534842, 0x00403330, 0x00362926, 0x0040342c, 0x0091877b,
- 0x00f7f7f7, 0x00fffefe, 0x00fdfdfd, 0x00fefefe, 0x00f2f2f2, 0x00f2f3f3, 0x00fcfcfc, 0x00fefefe, 0x00fdfdfc, 0x00fcfdfc, 0x00e3e6e6, 0x00818689, 0x001d2129, 0x00181b27, 0x001b1d2d, 0x00181b2e,
- 0x00131829, 0x00141628, 0x00131625, 0x00171828, 0x001b1d28, 0x00281e22, 0x0032211d, 0x00392420, 0x00412922, 0x00432d21, 0x00432f20, 0x0043301f, 0x00423120, 0x00403020, 0x003e3121, 0x003f3322,
- 0x003c3624, 0x00393324, 0x00352d23, 0x00312a23, 0x002d2725, 0x002f2a2a, 0x00312d2f, 0x00312d34, 0x002e2a32, 0x0027232e, 0x001e1c20, 0x001a1b13, 0x001b1c16, 0x001d1d19, 0x001f1f1b, 0x0021211d,
- 0x00161611, 0x00141412, 0x00141414, 0x00161516, 0x0016161a, 0x00171719, 0x00171818, 0x00171818, 0x00181818, 0x00181818, 0x00181818, 0x001a1a1a, 0x001c1c1c, 0x001d1d1d, 0x001d1d1d, 0x001c1c1c,
- 0x001a1815, 0x001c1a18, 0x00262421, 0x0035332f, 0x004e4c49, 0x005e5d58, 0x006e6d67, 0x0075726d, 0x006d6e66, 0x00676961, 0x005e5d56, 0x005f5d56, 0x005c5b55, 0x00605d59, 0x00605d5a, 0x005e5c5a,
- 0x00525554, 0x004c4e50, 0x00424447, 0x0035373c, 0x00262830, 0x001b1e28, 0x00191d28, 0x00191e28, 0x001a1a22, 0x001e1e24, 0x00262426, 0x00302d2b, 0x003f3934, 0x00463d35, 0x00483e35, 0x00483c33,
- 0x003d362a, 0x00363125, 0x00726d62, 0x00c5c2b8, 0x00dbdbd5, 0x00d4d6d3, 0x00d9dbda, 0x00e3e8e7, 0x00e9f2f1, 0x00f0f7fa, 0x00f5f7fd, 0x00fcf2fa, 0x00f6fef5, 0x00d8e6f5, 0x008898bb, 0x008493be,
- 0x00bbc4bc, 0x00a6a49d, 0x008e8282, 0x00897482, 0x0080745c, 0x007e6f5c, 0x007f725e, 0x00847564, 0x00847765, 0x00817764, 0x00807763, 0x0076705f, 0x0048453c, 0x00282522, 0x00242223, 0x001f1f22,
- 0x00141b16, 0x00171b16, 0x00202019, 0x0028261c, 0x00302c20, 0x00363123, 0x003c3629, 0x004c463a, 0x009c9b90, 0x00f1f1e8, 0x00fefef7, 0x00fdfcfa, 0x00fcfdfa, 0x00fdfafb, 0x00b3aeb4, 0x0054545e,
- 0x00576b7d, 0x007b94b7, 0x0093b5e6, 0x0093b7f8, 0x0085abf9, 0x0078a4f2, 0x00689ae8, 0x005e8de2, 0x004c7eda, 0x004070d2, 0x00315ec7, 0x00264ebd, 0x002240b4, 0x002239af, 0x002032a8, 0x001d2aa3,
- 0x001827a6, 0x001726a4, 0x002233ad, 0x003244b9, 0x004259c5, 0x00435bc0, 0x00364fb1, 0x00253e9e, 0x0019338f, 0x001b3490, 0x00142c83, 0x00112576, 0x00142571, 0x001b2a75, 0x0016226a, 0x00162064,
- 0x00182161, 0x001b2267, 0x001a246a, 0x0019266d, 0x00182470, 0x00182773, 0x00182a77, 0x0017277a, 0x0019267b, 0x001b277d, 0x001d277c, 0x001c2577, 0x001d266f, 0x00394085, 0x007b80c3, 0x00b3b8ef,
- 0x00e6f0f7, 0x00f3f9fb, 0x00f8faf5, 0x00f7f4e1, 0x00f1eecf, 0x00f0e9cc, 0x00f0ecd4, 0x00eeecda, 0x00e9efdb, 0x00e4eed8, 0x00e2e9da, 0x00d1ccd7, 0x00afacd2, 0x00d3c5df, 0x00ede5eb, 0x00dfe7e0,
- 0x00c7dff0, 0x00e9bfc9, 0x00e77f75, 0x00fb542b, 0x00ff5827, 0x00ed5e39, 0x00f2846c, 0x00f8c5b5, 0x00d6c6c8, 0x00b99ca8, 0x00a78085, 0x00b7857a, 0x00b9936e, 0x00ae8264, 0x00a9775e, 0x00b8766f,
- 0x00c4a99e, 0x00e6dce0, 0x00eaedfd, 0x00e5ebfe, 0x00eeeef3, 0x00ebedf2, 0x00edebef, 0x00f5edf4, 0x00f1ac9b, 0x00ed6d48, 0x00f76734, 0x00e25e28, 0x00d24e2d, 0x00e27b66, 0x00f6c0af, 0x00f9e9d9,
- 0x00f8fdf2, 0x00fdf9fb, 0x00fdf8fb, 0x00fef8fb, 0x00e4fefe, 0x00dfeae7, 0x00818282, 0x004a4d4c, 0x007f8287, 0x00aaadb5, 0x00d3d6e2, 0x00dfe3ee, 0x00e1e5f0, 0x00e1e6f0, 0x00e6edf5, 0x00e6ecf3,
- 0x00efe9f9, 0x00edebf6, 0x00ebf0f6, 0x00dde9ea, 0x00b5c5c9, 0x00a9b9bc, 0x00c7d3d6, 0x00e0e9e9, 0x00f1f6e4, 0x00e5e9cd, 0x00c6c5af, 0x00c6bfbd, 0x00ebe8e9, 0x00eff1ef, 0x00ebf1f0, 0x00edf5f2,
- 0x00e7f5f4, 0x00e6f0f6, 0x00e9edf7, 0x00eeeffb, 0x00f0ecfd, 0x00eaeef2, 0x00c2cdc5, 0x0093a087, 0x0073884e, 0x00738c49, 0x00738e46, 0x0072904a, 0x00729050, 0x00728f50, 0x00718f50, 0x00718e4b,
- 0x006a8e40, 0x00708e44, 0x00748e49, 0x00738850, 0x00a6b198, 0x00e1e7dd, 0x00e8edec, 0x00e7ebef, 0x00e3edfb, 0x00e2ebff, 0x00dbe5fb, 0x00d6e1f8, 0x00d5def2, 0x00dde1f0, 0x00e2e4ec, 0x00e3e6ed,
- 0x00dde0ec, 0x00cdcfe6, 0x00c6cce9, 0x00bcc6ed, 0x009da7d4, 0x00908bc0, 0x009a8bb5, 0x00b09eb6, 0x00bba9a1, 0x00bdb2aa, 0x00d7d1cc, 0x00e8e9ed, 0x00e3e9f9, 0x00dfe8e6, 0x00e6ebe2, 0x00f2f5de,
- 0x00fafcfc, 0x00fbfdfe, 0x00fcfefe, 0x00fcfdff, 0x00a7adae, 0x00262e2e, 0x00101918, 0x000f1915, 0x000c1c16, 0x000d1d18, 0x000e1d18, 0x000e1f18, 0x000c1d16, 0x000c1d17, 0x000c1c16, 0x000d1c16,
- 0x000f1e17, 0x000e1e18, 0x000d1e15, 0x000e1f17, 0x000c1d16, 0x000a1a18, 0x00112125, 0x001c2b3f, 0x002c3663, 0x00313b71, 0x0028366e, 0x00213167, 0x0021326b, 0x00213371, 0x0024377c, 0x00253783,
- 0x0024388a, 0x00223687, 0x00263a8b, 0x002b3f8f, 0x00293e8f, 0x00283f91, 0x00294296, 0x002a439b, 0x002b43a0, 0x002a41a0, 0x0028419f, 0x00273e98, 0x002a409a, 0x003749a8, 0x003749aa, 0x002a3b9b,
- 0x002c3b9f, 0x003243a5, 0x00485cbd, 0x005266c6, 0x00475dbc, 0x003e4fc5, 0x004558ce, 0x00445bb8, 0x004969a8, 0x005071b4, 0x004564b2, 0x004664c5, 0x005569d6, 0x006075d1, 0x00697bc5, 0x006f82b6,
- 0x007b768b, 0x00966466, 0x00964e38, 0x00ae5731, 0x00d6af93, 0x00f9e4dc, 0x00f0e3ea, 0x00ebd9e7, 0x00e1e3c4, 0x00d4f3b3, 0x00ccf3b3, 0x00cee6c5, 0x00c1d3c4, 0x00b7c8be, 0x00c2d2cd, 0x00c3d5d0,
- 0x00c9d6ca, 0x00dde4d8, 0x00f0eee5, 0x00f6f0e9, 0x00f9ecf2, 0x00f0eae9, 0x00f0edea, 0x00eceae8, 0x00f5f2ee, 0x00f8f5f2, 0x00f6f3f0, 0x00faf8f5, 0x00faf8f6, 0x00fbf9f6, 0x00fbf9f6, 0x00fcfaf7,
- 0x00f9f7f6, 0x00f8f7f3, 0x00f7f5f0, 0x00f6f1ed, 0x00e9e3dd, 0x00d6cdc2, 0x00a99a8b, 0x00806c57, 0x006d5439, 0x006e5132, 0x00705330, 0x00715234, 0x006a4d2d, 0x00674720, 0x00705023, 0x007f5b26,
- 0x00886528, 0x00956d33, 0x009e7439, 0x00a2753c, 0x00976a33, 0x00865a35, 0x0063412a, 0x00452d2d, 0x002a3153, 0x00273167, 0x001c2e63, 0x00384476, 0x00b3b6d0, 0x00f6f5fd, 0x00fefefd, 0x00fefcf8,
- 0x00f9fdfc, 0x00f0f5ef, 0x00e0e8dc, 0x00e3eee4, 0x00abb8cc, 0x00445083, 0x002a3585, 0x00272f91, 0x001b2584, 0x00242c81, 0x00141f60, 0x00090d34, 0x00020633, 0x000c1040, 0x0014184f, 0x00181e5e,
- 0x00101b5f, 0x000d1965, 0x00304191, 0x003e53a8, 0x002a3f9a, 0x003951a8, 0x00435caf, 0x003c54a7, 0x002e479a, 0x00283c95, 0x00192e86, 0x00182d86, 0x00172e8b, 0x00273b9a, 0x003145a8, 0x003044a9,
- 0x002740a6, 0x002c47a8, 0x004260be, 0x005270cc, 0x004560bc, 0x00283f99, 0x0029398c, 0x00313a81, 0x00101036, 0x00030116, 0x0000000e, 0x00010014, 0x0000041f, 0x0002032b, 0x00050a3c, 0x000f1251,
- 0x0017185e, 0x002c2966, 0x00332d54, 0x00160a1a, 0x001a1002, 0x000b0700, 0x00060d0a, 0x0009161d, 0x000d202e, 0x00243643, 0x00b8c7d0, 0x00a9aeaf, 0x005e5952, 0x005e5951, 0x0087807a, 0x00e5e2df,
- 0x00ecf5dc, 0x00f0f6ef, 0x00b1bdc1, 0x004c5b6e, 0x00223444, 0x0006141c, 0x00070d0d, 0x001e1814, 0x00594149, 0x009b7588, 0x00905465, 0x008d333c, 0x00882f34, 0x00802f2d, 0x006d261f, 0x0054140b,
- 0x003f120d, 0x0055352f, 0x005b4642, 0x00504548, 0x0037313a, 0x00383136, 0x006c6567, 0x00e0dbdd, 0x00ece0e8, 0x00d7c7d1, 0x007b6a76, 0x008d828c, 0x00e6dee6, 0x00eae4eb, 0x00efedf2, 0x00d5dbdd,
- 0x00d3d4d3, 0x00e9e7e8, 0x009b9a9c, 0x009f9ea1, 0x00c4c4c7, 0x00a6a6a9, 0x00d6d8d9, 0x00dad9db, 0x00dedce2, 0x00e5e1e8, 0x00e4e6e9, 0x00e0eaf1, 0x00e4c3c0, 0x00ab553e, 0x00914131, 0x00573851,
- 0x000a2c66, 0x00224474, 0x00274e7e, 0x00083e86, 0x00263979, 0x00254391, 0x00234396, 0x00284596, 0x00384e91, 0x00465696, 0x004b5e99, 0x003c568c, 0x0040629b, 0x003d66a0, 0x003967a2, 0x00487fba,
- 0x00fefdfe, 0x00fcfcfc, 0x00fefefe, 0x00fbfbfb, 0x00eaeaea, 0x007e7e7e, 0x00020202, 0x00060707, 0x00040304, 0x00030303, 0x00030404, 0x00000202, 0x00010404, 0x00010404, 0x00030604, 0x00020603,
- 0x00080a0c, 0x000a0b0c, 0x00121312, 0x00101111, 0x00141515, 0x00131814, 0x00111813, 0x00171a18, 0x00181d1b, 0x001a201c, 0x001b221f, 0x001c2421, 0x001e2727, 0x001a2525, 0x00152122, 0x00132020,
- 0x00141a19, 0x00131a18, 0x00121816, 0x000d1210, 0x00070b09, 0x00040806, 0x00030604, 0x00000302, 0x00030001, 0x00010000, 0x00010000, 0x00000000, 0x00020102, 0x00000100, 0x00010101, 0x00000201,
- 0x00010101, 0x00000000, 0x00010101, 0x00010102, 0x00010101, 0x00010101, 0x00030302, 0x00030302, 0x00030303, 0x00030202, 0x00010101, 0x00000001, 0x00000000, 0x00000000, 0x00010101, 0x00000100,
- 0x00050406, 0x00040303, 0x00060405, 0x00010001, 0x00010101, 0x00000001, 0x00010001, 0x00020100, 0x00070607, 0x000d0c0d, 0x001b1a1b, 0x002e2e2e, 0x00464545, 0x005c5c5c, 0x00717171, 0x007e7f7f,
- 0x00a2a1a4, 0x00b2b1b3, 0x00c6c5c6, 0x00d8d7d7, 0x00eeeeee, 0x00f7f8f9, 0x00fbfcfd, 0x00fdfdff, 0x00fdfdff, 0x00fcfcfd, 0x00fcfbfc, 0x00fbfbfb, 0x00fefefe, 0x00fcfcfd, 0x00fdfcff, 0x00fefcff,
- 0x00f7ffff, 0x00fafdfe, 0x00fdfcfd, 0x00fffbfc, 0x00fffcfb, 0x00fefdfb, 0x00f9fdfa, 0x00f7fffa, 0x00fdfcfd, 0x00fcfcfc, 0x00fbfbfc, 0x00f9fdfd, 0x00fcffff, 0x00fbffff, 0x00fdfefe, 0x00fcfcfc,
- 0x00fafafb, 0x00f6f6f8, 0x00f2f1f1, 0x00e0e4e3, 0x00ccc9cc, 0x00b7bbb9, 0x00a9aca8, 0x009d9e9c, 0x00969292, 0x008f8989, 0x00857c7b, 0x00786d6b, 0x005e504e, 0x003f2e2b, 0x00251310, 0x0024120f,
- 0x00251a14, 0x002f261e, 0x00322c21, 0x00343123, 0x00383726, 0x00393824, 0x00322f1a, 0x002e2914, 0x00392c18, 0x004a3d27, 0x00674e36, 0x007e5a39, 0x00876145, 0x007d5e43, 0x0074553d, 0x00684e36,
- 0x00594027, 0x004f381e, 0x004d351a, 0x0050381b, 0x00604729, 0x0072582d, 0x00856b37, 0x008f7441, 0x009b7942, 0x009a783e, 0x00977237, 0x00957135, 0x00977339, 0x0096753c, 0x0094753d, 0x00907139,
- 0x007f6445, 0x00765e3a, 0x0067502c, 0x00584523, 0x00493b29, 0x00483c3c, 0x00362b3a, 0x001f162f, 0x0013112c, 0x00121027, 0x000b0d22, 0x00050c20, 0x00050b22, 0x00070c24, 0x00090e2a, 0x000b102b,
- 0x000e1027, 0x00060c1f, 0x001e2636, 0x0067717c, 0x009198a1, 0x0069738b, 0x005a658a, 0x00525e89, 0x00303b74, 0x00314074, 0x006376a2, 0x008498bb, 0x00a3b4d2, 0x009aa7c9, 0x0068759a, 0x00616d98,
- 0x00767aa1, 0x00979fb3, 0x00bbc7d7, 0x00b2c2db, 0x008c99d7, 0x00a3b3e5, 0x00cee1fc, 0x00d5ebf0, 0x00c0cfe0, 0x0099a6d6, 0x00787fb6, 0x0075829e, 0x00909ba7, 0x00adb9bd, 0x00b7bebf, 0x00b7bec1,
- 0x00bac0d9, 0x007b85a5, 0x00364570, 0x001a345e, 0x001e3a64, 0x004b5e7c, 0x00828ea3, 0x00929ea6, 0x00909391, 0x00a4a49e, 0x008b8686, 0x00474043, 0x00362c39, 0x002d222c, 0x00342a2e, 0x00807877,
- 0x00f6f5f7, 0x00fffeff, 0x00fffeff, 0x00fdfdfd, 0x00f2f2f2, 0x00f1f1f0, 0x00fafcfa, 0x00fefffd, 0x00fdfdfd, 0x00fcfcfc, 0x00e7e8ea, 0x00898d92, 0x00242930, 0x001d212a, 0x001b1e2b, 0x00161a28,
- 0x001a182e, 0x00151727, 0x00141628, 0x00151a27, 0x00191b28, 0x00201d20, 0x00291f20, 0x002f2221, 0x00392725, 0x003a2923, 0x003c2b22, 0x003b2c21, 0x003c2e21, 0x003a2f20, 0x00383021, 0x00383125,
- 0x00383128, 0x00352f25, 0x00302a20, 0x002c261e, 0x002a2422, 0x002e2929, 0x002f2c2d, 0x002f2c30, 0x002e282f, 0x00262129, 0x00201d21, 0x001a1b14, 0x001c1d16, 0x001a1c14, 0x001a1d17, 0x001b1d17,
- 0x00171714, 0x00161515, 0x00151415, 0x00161517, 0x00161519, 0x00161718, 0x00181917, 0x00181917, 0x00191919, 0x00191919, 0x00191919, 0x001a1a1a, 0x001b1b1b, 0x001d1d1d, 0x001d1d1d, 0x001e1e1e,
- 0x00231c1a, 0x00231e1c, 0x002e2a26, 0x003c3834, 0x00514e4c, 0x005f5e5a, 0x006e6e68, 0x0072726f, 0x006e6e69, 0x00676862, 0x005f5d57, 0x005c5852, 0x00585650, 0x00585652, 0x00595855, 0x00565755,
- 0x00515053, 0x0048484c, 0x003e3e44, 0x00323339, 0x0024262c, 0x001b1e25, 0x00191c24, 0x00181c22, 0x001e1a20, 0x00221e20, 0x002c2525, 0x0039312c, 0x004a3f37, 0x0054463b, 0x00554639, 0x00574638,
- 0x004a4034, 0x00423a2e, 0x00787167, 0x00c6c0b7, 0x00dbdad2, 0x00d3d5cf, 0x00dbe0dc, 0x00e4ebe8, 0x00e8f0f2, 0x00e9f2f4, 0x00f4f4fb, 0x00fbf4fc, 0x00f5fdf7, 0x00d6e9f6, 0x008a9dbe, 0x00869ac3,
- 0x00cad4cf, 0x00bdbdb3, 0x00a69a99, 0x008f808a, 0x0081765f, 0x00796c53, 0x00786853, 0x00766751, 0x00776552, 0x0071614f, 0x006a5c4b, 0x00584d3e, 0x00383228, 0x00282621, 0x002c2e2c, 0x00222628,
- 0x00262a28, 0x00292c29, 0x0031312c, 0x0038352d, 0x003c362b, 0x003e372c, 0x003b3429, 0x00443e33, 0x0098928b, 0x00edede6, 0x00fffdf9, 0x00fafcfa, 0x00fffefd, 0x00fdfafc, 0x00c4bfc5, 0x006a6e77,
- 0x00657f95, 0x007aa2c2, 0x008cbbed, 0x008abbf8, 0x0089b3ff, 0x007bb0fc, 0x0070a8fc, 0x00659df4, 0x00548ff4, 0x004882ed, 0x003972e5, 0x002c62da, 0x002854d1, 0x002347c6, 0x001f3dbc, 0x001b32b4,
- 0x002034c1, 0x002c40c9, 0x003e55da, 0x00455fdc, 0x00405dcf, 0x003956bf, 0x002f4bb0, 0x00213c9a, 0x001f348c, 0x001f3687, 0x001c3184, 0x00152677, 0x00162574, 0x001a2870, 0x00131e64, 0x000f1957,
- 0x00151c5c, 0x00171e5d, 0x00182163, 0x00162263, 0x0017236d, 0x0016226b, 0x00162370, 0x00192672, 0x001e2777, 0x001e2472, 0x0020236d, 0x001c2062, 0x003e4379, 0x00858bb8, 0x00d8def4, 0x00f4faff,
- 0x00fcf7ff, 0x00f5f3f9, 0x00f3eff4, 0x00efebe6, 0x00f4ebe1, 0x00f2ebe4, 0x00f4ecec, 0x00f3edf1, 0x00efecf0, 0x00e8e9e4, 0x00eae9e8, 0x00e7e7e9, 0x00cbc6e0, 0x00ccbbc9, 0x00eddde4, 0x00e3e6e3,
- 0x00c8ddf8, 0x00e3bbcd, 0x00e17f78, 0x00fe5930, 0x00ff5c20, 0x00f4592a, 0x00ef7857, 0x00f4c0ac, 0x00fbf1fb, 0x00dfcddb, 0x009d7c8b, 0x00956860, 0x00aa8465, 0x009f795b, 0x00a57563, 0x00b87978,
- 0x00c09f98, 0x00d6cbcf, 0x00eeedfc, 0x00e6f0ff, 0x00e8e8ed, 0x00e9ebf1, 0x00eee9f1, 0x00efe2ec, 0x00ea9788, 0x00eb5d35, 0x00f6622e, 0x00e86737, 0x00e68b6c, 0x00f4c3b2, 0x00faece4, 0x00eff8f3,
- 0x00f6fdfc, 0x00fcfbfb, 0x00fffcfd, 0x00fcfdfa, 0x00ebfeff, 0x00d1d7d9, 0x0059585c, 0x0027282d, 0x0062626d, 0x00a0a1ac, 0x00d5d7e5, 0x00e3e6f5, 0x00e0e5f2, 0x00dde4ee, 0x00e2eaf2, 0x00e3ecf3,
- 0x00f1eafe, 0x00ede9f8, 0x00edeff8, 0x00e9f3f6, 0x00cedde1, 0x00aab9be, 0x00b2bec3, 0x00d7e0e1, 0x00f6f8ea, 0x00e6eacd, 0x00cccdb5, 0x00c4c1bc, 0x00e5e8e5, 0x00e9f1f2, 0x00e8f4f7, 0x00eaf7fd,
- 0x00ddecf4, 0x00d0dee6, 0x00e3ecf5, 0x00eaf0f7, 0x00eceff7, 0x00e8edfa, 0x00dae2e5, 0x00a9b4a3, 0x00718553, 0x006e8544, 0x00718b44, 0x006e8a42, 0x00708d4b, 0x006d8b4c, 0x006b8b4c, 0x00698a4a,
- 0x00688b49, 0x0067883b, 0x006c883e, 0x00728848, 0x00b0b7a9, 0x00e5e7e6, 0x00e8ebef, 0x00e4eae4, 0x00dde8ed, 0x00dde7f6, 0x00dce6ff, 0x00dbe6fc, 0x00d9e2f8, 0x00dadff1, 0x00dce0ef, 0x00dbddea,
- 0x00d8daf0, 0x00c4cbe9, 0x00b4bee9, 0x009cade2, 0x007185c5, 0x006a74c0, 0x00757ac2, 0x009194c9, 0x00afaeca, 0x00adb3ce, 0x00b3bedd, 0x00b4c4ec, 0x00b7ccf1, 0x00c3d6e2, 0x00ddebe0, 0x00eaf6d3,
- 0x00fcfcfe, 0x00fcfcfe, 0x00fdfdfd, 0x00fcfdfd, 0x00a6acac, 0x00262e2d, 0x000e1a18, 0x000c1a16, 0x000d1c1a, 0x000d1c1a, 0x000f1e1a, 0x000e1d16, 0x000f1e16, 0x000d1c16, 0x000c1d17, 0x000b1d16,
- 0x000e1e1a, 0x000d1d16, 0x00101f1a, 0x000e1d17, 0x000e1e1b, 0x000b1d15, 0x00122222, 0x001b2836, 0x00323c67, 0x003b4577, 0x002b366c, 0x00233266, 0x00213367, 0x0021346e, 0x00233577, 0x0025377f,
- 0x00263587, 0x00243584, 0x00263886, 0x00283c89, 0x00293d8b, 0x00273d8b, 0x00273d8e, 0x00283e93, 0x002b429c, 0x002a419d, 0x002b429d, 0x00284196, 0x002c4397, 0x003a4fa5, 0x004050a8, 0x0033429a,
- 0x003745a1, 0x004556b2, 0x004a5dbb, 0x004057b3, 0x003950ab, 0x003953ae, 0x003d57b1, 0x003956ad, 0x00435fb5, 0x00455fc0, 0x003e52c1, 0x004354c8, 0x005058b5, 0x00565d93, 0x0075798a, 0x00767c6b,
- 0x00856d3c, 0x00a76421, 0x00a44703, 0x00be5e16, 0x00e4c5a4, 0x00eae5de, 0x00eae2f3, 0x00efdbf6, 0x00f1e1e9, 0x00d8e8e5, 0x00d0f0e0, 0x00cdedd7, 0x00adcbc4, 0x00a4bcbe, 0x00b9cfd5, 0x00c0d2db,
- 0x00d8e0e0, 0x00e8ebe6, 0x00f9f2f0, 0x00f7eaed, 0x00f0ddea, 0x00eae0e2, 0x00ece8e5, 0x00edeae7, 0x00f3eeec, 0x00f4efed, 0x00f3edeb, 0x00f7f2ef, 0x00f6f2ef, 0x00f7f3ef, 0x00f4f0ed, 0x00f3efeb,
- 0x00ece5e5, 0x00ebe4e3, 0x00ede7e5, 0x00efe9e6, 0x00ede8e2, 0x00f3ece2, 0x00d8cdc0, 0x00968776, 0x00715c47, 0x00897259, 0x009c8169, 0x008e735d, 0x00684a2d, 0x004f340c, 0x005c3c12, 0x0074501f,
- 0x008f6c33, 0x00947236, 0x009b743b, 0x009e7439, 0x009a6937, 0x008e612d, 0x00794e25, 0x00593a23, 0x00372f3b, 0x00312f46, 0x00302f4d, 0x004c4d67, 0x00c9c5d4, 0x00f8f9fc, 0x00fbfcfe, 0x00fbfdfd,
- 0x00f9fdfb, 0x00f3f9f3, 0x00eef6ed, 0x00eff9f2, 0x00e0ecf6, 0x00959dc4, 0x003c4483, 0x00313689, 0x0022298b, 0x00182182, 0x001d2772, 0x00101437, 0x00020326, 0x00000028, 0x0002052e, 0x00070936,
- 0x00141651, 0x000c1353, 0x00121d65, 0x00394a94, 0x004153a6, 0x0032489a, 0x00314aa0, 0x002d449a, 0x002f4098, 0x00283890, 0x00202c87, 0x001b2b86, 0x001a2a8b, 0x00203497, 0x002d44a7, 0x00324ab0,
- 0x00324bb1, 0x003651b3, 0x003d5bb8, 0x004d6dc8, 0x005976d2, 0x005a74cf, 0x005267ba, 0x00606fb9, 0x003f436f, 0x00050a24, 0x00000014, 0x0001031c, 0x00030523, 0x0003082f, 0x00050d3e, 0x000c1650,
- 0x00171a5f, 0x001f1f59, 0x002f2b58, 0x000c0a1f, 0x000b0504, 0x00020200, 0x00000503, 0x00071316, 0x00051a29, 0x003b4a56, 0x00dae4ea, 0x00c3c5c1, 0x0062564e, 0x00685c56, 0x009a908a, 0x00e1d7d5,
- 0x00ecf6de, 0x00e8f0e7, 0x00bdc4cc, 0x0070778a, 0x002a3442, 0x000f1818, 0x000c130f, 0x0024251f, 0x00645969, 0x00887596, 0x00685882, 0x004f456b, 0x00403854, 0x0041324a, 0x002e202e, 0x001b0912,
- 0x00362129, 0x00553f4b, 0x00644a5f, 0x0059445d, 0x00422b4c, 0x003b3337, 0x00918e86, 0x00eaede4, 0x00dee2e0, 0x00d2dbd9, 0x00d1dfe0, 0x00becfd1, 0x00d4e7e8, 0x00e4f8f8, 0x00c5dad8, 0x00bdd2d0,
- 0x00ede6e5, 0x00c9bfbf, 0x00a29a9b, 0x00d3cbcc, 0x009f999b, 0x00757072, 0x00d9d6d7, 0x00d9d3d5, 0x00dad9db, 0x00dedfe1, 0x00dee8ed, 0x00d1ecf3, 0x00f1d0d9, 0x00c66059, 0x00af3b45, 0x008e4377,
- 0x003a3185, 0x0044407f, 0x004b5891, 0x00082d6f, 0x00253b71, 0x00243e8d, 0x0025439d, 0x002f4ba2, 0x003a54a7, 0x003b54a3, 0x0038559e, 0x0036569c, 0x00365b9b, 0x0036639b, 0x00316195, 0x002d6297,
- 0x00fcfcfc, 0x00fdfdfd, 0x00fefefe, 0x00fcfcfc, 0x00dddddd, 0x00686868, 0x00040303, 0x00050505, 0x00060608, 0x00020303, 0x00040605, 0x00020503, 0x00020504, 0x00010504, 0x00040706, 0x00040706,
- 0x000a0d0c, 0x00090c0b, 0x00181a18, 0x001f2020, 0x001e2121, 0x001c221c, 0x00161d14, 0x00111510, 0x00121716, 0x00151a1b, 0x00141a1b, 0x0013191f, 0x00171e24, 0x00161e28, 0x00111923, 0x000c1520,
- 0x00121814, 0x000d1310, 0x00090f0c, 0x00060a08, 0x00060908, 0x00040605, 0x00030503, 0x00010301, 0x00030001, 0x00030101, 0x00030303, 0x00010100, 0x00030202, 0x00010101, 0x00010202, 0x00000101,
- 0x00000000, 0x00010102, 0x00020202, 0x00010101, 0x00030303, 0x00030303, 0x00030403, 0x00030304, 0x00020302, 0x00030202, 0x00030203, 0x00010102, 0x00030203, 0x00020202, 0x00040404, 0x00030202,
- 0x00020304, 0x00030304, 0x00050405, 0x00050505, 0x00030304, 0x00030304, 0x00050404, 0x00060405, 0x00030203, 0x00020101, 0x00070505, 0x00060505, 0x00040404, 0x00040505, 0x000c0d0d, 0x00141414,
- 0x001d1e1d, 0x002e2e2e, 0x00454344, 0x00565555, 0x006e6d6d, 0x00828183, 0x00979699, 0x00a9a7ab, 0x00bfc0c3, 0x00d0d0d2, 0x00e1e0e3, 0x00eeeef0, 0x00f3f4f5, 0x00f6f6f7, 0x00f8f8fa, 0x00fdfcfd,
- 0x00f5fffa, 0x00f9fcf8, 0x00faf8f7, 0x00fdf7f8, 0x00fcf7f7, 0x00fcfcfb, 0x00f9fdfc, 0x00f5fffb, 0x00f7fbfb, 0x00fbfbfb, 0x00fcfcfc, 0x00fcfdfd, 0x00fbfeff, 0x00fdfbfd, 0x00fdfcfc, 0x00fdfdfd,
- 0x00ffffff, 0x00fcfcfb, 0x00fbfbfa, 0x00fbfbfc, 0x00faf8fc, 0x00f9f7fb, 0x00f6f4f7, 0x00f4f0f4, 0x00ecebec, 0x00e7e6e7, 0x00dedcde, 0x00d0cdce, 0x00bcb7b7, 0x00a9a1a0, 0x008e8381, 0x007f7371,
- 0x006a625c, 0x005d564f, 0x00514c43, 0x004e4b3f, 0x00444336, 0x003c3a2b, 0x00363423, 0x002e2a19, 0x00342915, 0x004b3c27, 0x006c5239, 0x00865a38, 0x008d6345, 0x00845f43, 0x0078573d, 0x006a4f36,
- 0x0058412a, 0x004d361d, 0x004b331b, 0x0050371d, 0x00604429, 0x0071532c, 0x00836436, 0x008b6c3d, 0x0096743c, 0x0099763d, 0x0099743a, 0x009b773c, 0x0097763c, 0x00967840, 0x00947841, 0x0090763f,
- 0x00806752, 0x00796347, 0x00685635, 0x00564726, 0x00483927, 0x004c3d3b, 0x006b5d68, 0x00504459, 0x00181025, 0x00130d1e, 0x000b091b, 0x0005081f, 0x00070b21, 0x00090c25, 0x000b0d27, 0x000c0c26,
- 0x000a0e22, 0x00050a1b, 0x00292f3c, 0x00767c86, 0x0093969e, 0x0082889b, 0x00646f8a, 0x00404c6f, 0x00253165, 0x00273769, 0x00374d7a, 0x00445d83, 0x00667fa1, 0x006e83ac, 0x006073a1, 0x00526499,
- 0x006c7192, 0x00a4abbe, 0x00d3deed, 0x00c9dae9, 0x00c0d0f4, 0x00cfe2fd, 0x00c0d4f8, 0x00a8c0eb, 0x00899fc7, 0x008197c1, 0x0099a6c9, 0x00afb3bd, 0x00acaebd, 0x00b3b4c0, 0x00c1beca, 0x00b8b7c1,
- 0x00c5ccd5, 0x00a2aebe, 0x00435474, 0x002d4373, 0x001e3a79, 0x00263868, 0x004b597a, 0x007b899a, 0x0095a09d, 0x00999f9c, 0x0079797d, 0x003b3744, 0x002f2841, 0x00251e32, 0x00282232, 0x006f6d74,
- 0x00efefef, 0x00ffffff, 0x00fdfdfd, 0x00fefefe, 0x00f1f1f1, 0x00f0f0f0, 0x00fafafa, 0x00fefffe, 0x00fcfefd, 0x00fdfefd, 0x00e9ebed, 0x00919599, 0x00282d33, 0x001e222b, 0x001b1e2b, 0x00161826,
- 0x0019182a, 0x00181828, 0x00161927, 0x00161a27, 0x00181b26, 0x001a1b24, 0x001f1d24, 0x00262228, 0x002e2429, 0x00312727, 0x00322724, 0x00332823, 0x00332b23, 0x00312d21, 0x00302e24, 0x00302f27,
- 0x00302b22, 0x00312c23, 0x002f2921, 0x002d2923, 0x002e2925, 0x002e2a27, 0x002e2b29, 0x002e2c2b, 0x00292626, 0x00242122, 0x001f1d1e, 0x001d1e18, 0x001e1f18, 0x001e2018, 0x001c1e18, 0x001c1e18,
- 0x00191916, 0x00171716, 0x00161516, 0x00151517, 0x00171618, 0x00171718, 0x00191919, 0x00181918, 0x00191919, 0x00181818, 0x00181818, 0x00191919, 0x001c1c1c, 0x001e1e1e, 0x001e1e1e, 0x001e1e1e,
- 0x00261d1a, 0x0028221e, 0x00302b27, 0x003e3935, 0x00514e4a, 0x005f5e5a, 0x006d6d69, 0x0070716e, 0x006c6e69, 0x00686b65, 0x0061615b, 0x00605c57, 0x005a5752, 0x005a5855, 0x00595856, 0x00565756,
- 0x004e4e4e, 0x00454649, 0x003a3b41, 0x002e3036, 0x0021232b, 0x001a1a22, 0x001a1a1f, 0x0019191c, 0x0020191a, 0x00271f1d, 0x00322823, 0x0040332a, 0x00554538, 0x005f4d3d, 0x00614d3c, 0x00634d3b,
- 0x0052493a, 0x00443c2e, 0x00746c60, 0x00c2bbb1, 0x00d9d7cf, 0x00cfd0ca, 0x00dcdfdb, 0x00e9f0ee, 0x00ebf5f6, 0x00eaf5f7, 0x00f0f6fd, 0x00f9f4fe, 0x00f2fefa, 0x00d8ebfb, 0x008ea5c4, 0x008da3cb,
- 0x00cbd9d1, 0x00d0d2c8, 0x00c2bbba, 0x00a498a3, 0x00857f69, 0x007d6e56, 0x0076654c, 0x006f5d43, 0x006e5a43, 0x0066533f, 0x005c4b38, 0x004e4030, 0x00463e34, 0x00413f39, 0x00474947, 0x00444b4c,
- 0x004a4d4e, 0x004b4b4b, 0x00484644, 0x0048433e, 0x00453c35, 0x00463c33, 0x003c3229, 0x003d342b, 0x00908a85, 0x00ecebe6, 0x00fcfdfa, 0x00f9fdfc, 0x00fffcfd, 0x00fef8fc, 0x00cbc4cb, 0x006d747b,
- 0x00577a8f, 0x006fa2bf, 0x0086bfea, 0x008ec2fc, 0x0090b9fe, 0x0082b5fe, 0x0073adfe, 0x0069a7fb, 0x005699fc, 0x004b8df8, 0x003f81f5, 0x003776ef, 0x002a62e1, 0x002354d4, 0x00214ccb, 0x002149c8,
- 0x003451cd, 0x004361da, 0x004768df, 0x003657ca, 0x002b4eb8, 0x002b4aaf, 0x002a46a8, 0x00203895, 0x0023338c, 0x0026368a, 0x00213186, 0x001c2c82, 0x001c2a78, 0x001e2a72, 0x00152060, 0x00111a53,
- 0x00131955, 0x00131b56, 0x00141e5c, 0x00152062, 0x00142065, 0x0017216a, 0x001a226e, 0x00202874, 0x001f246f, 0x001e216a, 0x00343474, 0x005d5d93, 0x00acaec9, 0x00e0e2f2, 0x00f8fbfc, 0x00f7faf3,
- 0x00fceffe, 0x00f4ecf6, 0x00efebf1, 0x00f1ecee, 0x00f1edf0, 0x00f2ebf5, 0x00f5edfa, 0x00f5ebfb, 0x00f5e9f3, 0x00f3e6ea, 0x00eee7e6, 0x00e6ebe4, 0x00dfd9ea, 0x00e1c8d0, 0x00edd2d3, 0x00e7dfdb,
- 0x00c4d4f2, 0x00d1a6be, 0x00d0716e, 0x00fa5c34, 0x00fb601e, 0x00fa5923, 0x00f27449, 0x00f5b89f, 0x00f5f5fb, 0x00f5edfa, 0x00bca3b5, 0x00855e5d, 0x008c694c, 0x009d785e, 0x00a07265, 0x00bb7d85,
- 0x00bf9c8f, 0x00d2c3c5, 0x00f1effb, 0x00eaf1ff, 0x00e5e9ef, 0x00e7eaf1, 0x00eeeaf1, 0x00ecdae9, 0x00e28979, 0x00e8552d, 0x00f35826, 0x00f36f49, 0x00fec7ad, 0x00f6edde, 0x00eaeeec, 0x00e5f3f8,
- 0x00fcfafe, 0x00fdf7f9, 0x00fefafa, 0x00fcfdf7, 0x00f8fdfe, 0x00c3c7c8, 0x00303036, 0x00070911, 0x00454554, 0x009293a3, 0x00d1d3e5, 0x00e1e3f6, 0x00e2e6f7, 0x00dee4f1, 0x00e4ebf6, 0x00e6edf8,
- 0x00eee6fe, 0x00f0ebfd, 0x00efeffb, 0x00eaf1f7, 0x00e3edf8, 0x00c3cedb, 0x00aab3c1, 0x00c1c8d3, 0x00f6f6f0, 0x00ebecd6, 0x00c9cab7, 0x00c0bfbe, 0x00e0e6ed, 0x00e2eaf9, 0x00dae8fb, 0x00d5e8fd,
- 0x00bed0ee, 0x00b5c6e0, 0x00d8e3f7, 0x00e6f0f9, 0x00eaf1f2, 0x00e5e9fb, 0x00e6eaf5, 0x00c4ccc4, 0x007e9161, 0x006d8442, 0x0070893f, 0x006c883f, 0x006e8b4a, 0x006c8b4e, 0x00698a4d, 0x0067894a,
- 0x00668b4b, 0x0064883a, 0x006b883a, 0x00768949, 0x00b2b8b1, 0x00e3e4ea, 0x00e3e6e9, 0x00dbe6d6, 0x00d0e1d7, 0x00cad9e6, 0x00c9d4f2, 0x00d3ddfc, 0x00dce4fc, 0x00d9dff4, 0x00dadef3, 0x00d8dceb,
- 0x00cdd4ee, 0x00c5d1f6, 0x00a8bcef, 0x007f99de, 0x005675c8, 0x00526fd1, 0x005975d3, 0x00738fdb, 0x0093aee7, 0x0086a3e7, 0x006a8ad8, 0x006485e8, 0x007293e9, 0x0088a2d8, 0x00bbcfdf, 0x00e9f7e8,
- 0x00fcfdfc, 0x00fcfcfb, 0x00fefefb, 0x00fcfdfb, 0x00a6aca9, 0x00262f2b, 0x000d1915, 0x000c1b14, 0x000b1c17, 0x000c1d17, 0x000c1d17, 0x000d1f18, 0x000e1d16, 0x000e1d18, 0x000e1c18, 0x000e1c17,
- 0x000d1c18, 0x000d1c16, 0x000e1c18, 0x000e1d17, 0x000e1f1b, 0x000b1d11, 0x0016271f, 0x001c2a31, 0x00273558, 0x00313e68, 0x002b3768, 0x00233363, 0x00213365, 0x001f326b, 0x00213274, 0x00213178,
- 0x0022317e, 0x0022327d, 0x0024347e, 0x00253680, 0x00273983, 0x00293c87, 0x002b3f8c, 0x002c3f90, 0x002d429a, 0x002f449d, 0x003146a0, 0x002b449c, 0x00294099, 0x0030459f, 0x003f4eab, 0x004753b0,
- 0x004652b2, 0x004552b6, 0x003b4daf, 0x003247a7, 0x002f48ac, 0x00334eab, 0x003857ae, 0x003655b0, 0x003a53b6, 0x004557bc, 0x00515cbe, 0x005b5cb3, 0x005a507b, 0x006a595e, 0x007f694c, 0x00876f36,
- 0x00a46f28, 0x00c16112, 0x00b23c00, 0x00d56026, 0x00eed1c2, 0x00dee0e0, 0x00dee1ee, 0x00f7e5f0, 0x00fbe6f2, 0x00dfe8f2, 0x00d4e2eb, 0x00d0dad6, 0x00bcc8cd, 0x00bac5d1, 0x00ccd4e5, 0x00d3d8e4,
- 0x00e1e5e6, 0x00e8ebe3, 0x00f3eee9, 0x00f2e9e8, 0x00ecdde4, 0x00e6dedc, 0x00ede8e4, 0x00ece7e3, 0x00eee8e6, 0x00efe9e6, 0x00eee8e5, 0x00f3eeea, 0x00f6f0ec, 0x00f4efeb, 0x00eee9e5, 0x00e6e1de,
- 0x00e9e1e0, 0x00e8e1df, 0x00ebe4e2, 0x00eee8e5, 0x00e8e3dd, 0x00e3ded4, 0x00ebe1d6, 0x00b7aa9d, 0x006a5846, 0x005d4933, 0x00533d2a, 0x004b3121, 0x003f250d, 0x00452a07, 0x0061471a, 0x007b5d26,
- 0x00926f35, 0x00967336, 0x00977136, 0x009c703a, 0x00946636, 0x00926126, 0x0084551e, 0x006b4922, 0x004d3629, 0x003f2c29, 0x0039292d, 0x00614f55, 0x00d9ced0, 0x00fcf9fa, 0x00f8fafc, 0x00f4fdfe,
- 0x00fafdfa, 0x00f4fafb, 0x00d7dddf, 0x00f0f5fb, 0x00eff8fd, 0x00d8e1f0, 0x00737d98, 0x00445179, 0x00344285, 0x0029368b, 0x0018226b, 0x000e1332, 0x00010020, 0x00020024, 0x00020425, 0x00010223,
- 0x00080835, 0x00111348, 0x00091149, 0x0014205d, 0x00364586, 0x00263b80, 0x00253a84, 0x00243682, 0x001f2b78, 0x001b2573, 0x00152171, 0x001b267a, 0x001a2a84, 0x001c2f8d, 0x00243d9a, 0x002d48a9,
- 0x002841a5, 0x002844a3, 0x003351ad, 0x004869c3, 0x005878d4, 0x005f7dda, 0x00627bd4, 0x00667ac9, 0x004a5a8a, 0x000d1736, 0x0000031e, 0x00000022, 0x00010225, 0x0001052d, 0x00050c3b, 0x00060f43,
- 0x000d1550, 0x000b0d42, 0x0021234d, 0x00111129, 0x00010001, 0x00010000, 0x00000405, 0x00030f14, 0x00051523, 0x005a6570, 0x00e4e6ec, 0x00d0c9c6, 0x00b2a299, 0x00d5c4bc, 0x00ecddd4, 0x00f4e8e2,
- 0x00cfdec6, 0x00a2aba5, 0x00747981, 0x0085839a, 0x0033333e, 0x001e201d, 0x0011130b, 0x00222820, 0x005f667f, 0x00656d9e, 0x003d4a86, 0x0023437c, 0x00223d67, 0x002a3b61, 0x00152139, 0x00060a18,
- 0x0037323a, 0x004d424c, 0x006f5b6a, 0x0051394a, 0x00523b50, 0x0051322c, 0x00be9e8c, 0x00faeed9, 0x00f6f2e5, 0x00d8dace, 0x00e1eae3, 0x00e2f1ec, 0x00d9e6e4, 0x00cad2d1, 0x00cbcfcf, 0x00e0e2e2,
- 0x00dac6c5, 0x00cebcba, 0x00ddcecb, 0x00dfd1cf, 0x00685d5b, 0x00534948, 0x00d4cece, 0x00d4cfd0, 0x00dcdad8, 0x00dee0df, 0x00dde4e7, 0x00d3f1f5, 0x00f6d3d6, 0x00da756c, 0x00a8383c, 0x007f3a69,
- 0x00544993, 0x00696393, 0x00838eb4, 0x00496998, 0x00555e7d, 0x00404e7e, 0x0031447a, 0x002b4077, 0x002c4787, 0x00345290, 0x00365798, 0x002f5191, 0x0035578f, 0x00375a8c, 0x003c5d8e, 0x00698bb6,
- 0x00fbfcfc, 0x00fbfbfb, 0x00fdfdfd, 0x00fcfdfd, 0x00cdcdcd, 0x004c4c4c, 0x00030303, 0x00030202, 0x00090909, 0x00020302, 0x00060705, 0x00040604, 0x00040605, 0x00040707, 0x00070909, 0x00070909,
- 0x000a0e0b, 0x00191e1c, 0x00404442, 0x00535655, 0x005d6160, 0x004e544e, 0x0040473c, 0x003f463d, 0x004d5453, 0x005a6162, 0x005d6469, 0x00505761, 0x003c434f, 0x002f3646, 0x00242b3d, 0x001d2437,
- 0x000b120f, 0x00070e0c, 0x00040a09, 0x00030807, 0x00060808, 0x00060606, 0x00040402, 0x00020300, 0x00030101, 0x00030102, 0x00020202, 0x00010101, 0x00020101, 0x00020101, 0x00010202, 0x00010101,
- 0x00020202, 0x00020202, 0x00020301, 0x00020301, 0x00050506, 0x00050506, 0x00050504, 0x00040404, 0x00060506, 0x00040404, 0x00030404, 0x00020403, 0x00060504, 0x00060505, 0x00080808, 0x00060607,
- 0x00060709, 0x00050607, 0x00050606, 0x00050605, 0x00060608, 0x00060607, 0x00050504, 0x00020201, 0x00020303, 0x00040404, 0x00070606, 0x00040303, 0x00020202, 0x00020203, 0x00030203, 0x00030001,
- 0x00020203, 0x00030404, 0x00020202, 0x00000000, 0x00000001, 0x00030307, 0x000e0e13, 0x001e1e22, 0x0038363a, 0x004f4d50, 0x00656468, 0x00727276, 0x008d8d91, 0x00a3a3a6, 0x00bebdc1, 0x00cfced0,
- 0x00e4ebe5, 0x00f0f1ed, 0x00fbf7f7, 0x00fdf8f9, 0x00fffdfd, 0x00fcfcfc, 0x00fafdfc, 0x00f8fefb, 0x00fbfffe, 0x00fbfbfb, 0x00fefcfb, 0x00fffdfc, 0x00fffcff, 0x00fffcff, 0x00fffdfe, 0x00fefcfd,
- 0x00fffcfe, 0x00fcfbfb, 0x00fdfefe, 0x00fcfbfc, 0x00fafafb, 0x00fef9fd, 0x00fffbff, 0x00fffcff, 0x00fffdff, 0x00fafcfd, 0x00fbfeff, 0x00fafcfd, 0x00fcfbfd, 0x00fefbfc, 0x00fcf6f7, 0x00f4eeed,
- 0x00dfd8d7, 0x00cac4c2, 0x00bbb4b1, 0x00b0aca5, 0x009d9a90, 0x008f8c7f, 0x007f7b6c, 0x00686354, 0x005c4e3d, 0x00594736, 0x0060422c, 0x00865131, 0x008c5e3f, 0x00865d3f, 0x0078553a, 0x00654a30,
- 0x00543b25, 0x00483019, 0x00493019, 0x0051351c, 0x00624227, 0x0071502c, 0x00826036, 0x008a673c, 0x00966f3d, 0x009b743e, 0x009e773e, 0x009c793e, 0x0095753c, 0x008f743d, 0x008a733c, 0x00857138,
- 0x0077614f, 0x00705d44, 0x00625134, 0x00554729, 0x004b3b2a, 0x00443430, 0x00897880, 0x008f7f8f, 0x003a2d3e, 0x00130a14, 0x000f0a1a, 0x00080822, 0x00080a23, 0x000a0b24, 0x00080822, 0x0007071f,
- 0x00060a1e, 0x00010715, 0x002c303b, 0x00767a84, 0x009b9ca2, 0x008f94a0, 0x007d8599, 0x00515b78, 0x00364172, 0x00485a89, 0x00576d9b, 0x0058729b, 0x005c799f, 0x005e79a6, 0x00546ca1, 0x0039518d,
- 0x006f768e, 0x00bec7dd, 0x00d7e5f7, 0x00d5eaf9, 0x00cce5f0, 0x00b1c9ea, 0x0088a1da, 0x00768fda, 0x007d96d3, 0x0095b2d8, 0x00c5d9ec, 0x00cbcbcf, 0x00b3b0bc, 0x00b5afc2, 0x00c9c0d5, 0x00c0bac9,
- 0x00c9cccf, 0x00b3c0c7, 0x004e6179, 0x0028416f, 0x0025418e, 0x00213670, 0x00213158, 0x004b5c71, 0x00909d9d, 0x009da6a5, 0x006f7278, 0x00312f41, 0x00292444, 0x00211d38, 0x001e1d33, 0x00636471,
- 0x00e8e9e7, 0x00fefffd, 0x00fdfdfc, 0x00fefefe, 0x00f2f1f2, 0x00efeeef, 0x00fbfafc, 0x00fffeff, 0x00fefffe, 0x00fdfefd, 0x00ecf0f0, 0x00949a9c, 0x00292d32, 0x001e1f29, 0x001c1f2c, 0x00171928,
- 0x0016182a, 0x00161928, 0x00171a28, 0x00171b26, 0x00191a26, 0x00181a25, 0x001c1d29, 0x0021222c, 0x00282328, 0x002b2525, 0x002c2421, 0x002c2521, 0x002d2723, 0x002b2a23, 0x002b2c26, 0x002a2b28,
- 0x002d2920, 0x002f2921, 0x002e2822, 0x002f2925, 0x002f2b26, 0x002e2c25, 0x002c2b25, 0x002c2a25, 0x00282624, 0x0022221d, 0x0020201b, 0x001f2019, 0x0021231c, 0x0022241d, 0x0020211e, 0x001f201c,
- 0x001a1b18, 0x00181916, 0x00161616, 0x00151616, 0x00161617, 0x00171718, 0x0019181a, 0x00181818, 0x00191919, 0x00171717, 0x00171717, 0x00191919, 0x001c1c1c, 0x001f1f1f, 0x00202020, 0x00202020,
- 0x002b2220, 0x00302824, 0x0038322d, 0x00423f3a, 0x00534f4b, 0x005f5c57, 0x006b6b66, 0x006e706c, 0x006e716d, 0x006b6f6a, 0x00686864, 0x0065635d, 0x00625f5a, 0x00605f5c, 0x005e5c5b, 0x00595857,
- 0x00505150, 0x00464749, 0x0037383d, 0x002c2e33, 0x001e1f26, 0x001a1920, 0x001c191d, 0x001c191b, 0x00221919, 0x002b201e, 0x00392b26, 0x0045342a, 0x005b4739, 0x00654e3d, 0x00674f3b, 0x00654d38,
- 0x00564b3b, 0x00453d2e, 0x00776f60, 0x00c5bfb3, 0x00d9d7d0, 0x00d4d5d1, 0x00dee0de, 0x00e0e6e4, 0x00d3dee3, 0x00cedadd, 0x00d8dfe7, 0x00eae7f7, 0x00edfbf4, 0x00dbeffd, 0x0096adc8, 0x0096add0,
- 0x00ceddd4, 0x00dadfd5, 0x00d5d1d1, 0x00b6acb8, 0x008a8471, 0x007d7059, 0x00756349, 0x006f5a3f, 0x006b553d, 0x00634e3a, 0x00594632, 0x00584839, 0x0061584f, 0x006b6763, 0x00717370, 0x00747a7b,
- 0x00767979, 0x00707171, 0x00666463, 0x00595451, 0x00504641, 0x00483e37, 0x003d332b, 0x003a3129, 0x008a8482, 0x00e8e6e3, 0x00fcfefc, 0x00f7fdfd, 0x00fefbfd, 0x00fdf7fc, 0x00cdc7cd, 0x0072787d,
- 0x00547c8b, 0x006da4bc, 0x0087c3ea, 0x008dc3ff, 0x008fb9fd, 0x0085b7fe, 0x0078b4ff, 0x0069acfb, 0x005a9fff, 0x004d95fe, 0x00428bfd, 0x00387df6, 0x002f6deb, 0x002e64e3, 0x003264e1, 0x003465e0,
- 0x00486bd7, 0x004267d1, 0x003259c2, 0x00274eb5, 0x00254caf, 0x002748ab, 0x00243fa1, 0x001e3493, 0x00232d90, 0x0027308e, 0x0025318b, 0x00202f83, 0x00202e7b, 0x00222e73, 0x00172261, 0x00121d54,
- 0x00131850, 0x00131a52, 0x00151e59, 0x00131e60, 0x00141f61, 0x0019206a, 0x00191d69, 0x00181d6a, 0x001e2067, 0x003a3b7b, 0x00817fb8, 0x00c7c5ea, 0x00f9f8ff, 0x00fcfcfa, 0x00f6f6ec, 0x00f2f4e0,
- 0x00f3e5ee, 0x00f1e8e9, 0x00f2eee9, 0x00f0f0e9, 0x00eef0ee, 0x00eeecf4, 0x00f4eef8, 0x00f6edf8, 0x00fae8ee, 0x00f9e6e2, 0x00f2e9df, 0x00e0ebd9, 0x00ebe3ee, 0x00f6dbdd, 0x00f3d5d1, 0x00eedfdb,
- 0x00cdd9f8, 0x00cca4bc, 0x00c76669, 0x00f1562d, 0x00fc611f, 0x00fb5a1e, 0x00f37043, 0x00f1b698, 0x00ecedf8, 0x00f1effd, 0x00d8c9dc, 0x009c7c7c, 0x00805f43, 0x0097725b, 0x009c7067, 0x00b77d88,
- 0x00c8a395, 0x00dccace, 0x00f2edf9, 0x00e8efff, 0x00eaedf5, 0x00e5e9f0, 0x00ece9f1, 0x00eddce9, 0x00e78b82, 0x00e6562e, 0x00f75124, 0x00f66f4f, 0x00f3c6ae, 0x00ecece2, 0x00e3f4f6, 0x00e9f7fd,
- 0x00fff9fd, 0x00fff9fa, 0x00fff9f7, 0x00fffcf7, 0x00fbf5f5, 0x00b9b9bd, 0x002a2b33, 0x00272532, 0x00616373, 0x009fa0b1, 0x00ced0e3, 0x00dbddf2, 0x00e3e6f9, 0x00dfe4f2, 0x00e3e9f5, 0x00e5ebf7,
- 0x00ede3fb, 0x00f1ecff, 0x00eceefb, 0x00e8f0f7, 0x00e9f2ff, 0x00dde6f7, 0x00b4bbcf, 0x00a9b0c0, 0x00e3e2e0, 0x00eeeddd, 0x00c9c7bb, 0x00bebcbf, 0x00d5dbea, 0x00d1daf8, 0x00c9d7fb, 0x00c3d5fd,
- 0x00aec2f4, 0x00aec1e8, 0x00cedbfa, 0x00e4f0fd, 0x00ebf3f4, 0x00eaebfb, 0x00e8e9f7, 0x00d8e0dc, 0x009fb084, 0x00778d4e, 0x006f8940, 0x006f8b42, 0x006f8d4b, 0x006e8d4f, 0x006c8d4f, 0x006b8d4f,
- 0x006a8e50, 0x00688c3e, 0x00718f3f, 0x00778d4a, 0x00b0b6af, 0x00e4e2eb, 0x00e1e2e5, 0x00d8e3cf, 0x00ccdcc8, 0x00b8c9cf, 0x00a9b9d4, 0x00c5cef4, 0x00dde3fb, 0x00dde0fa, 0x00dfe3f9, 0x00d9def1,
- 0x00c6cfee, 0x00becef9, 0x0097afea, 0x006d8ad8, 0x005579d5, 0x004e77df, 0x004976db, 0x005380d7, 0x00638dda, 0x00547cd7, 0x003e65d6, 0x003b63e7, 0x003f63df, 0x004c6abe, 0x0098afd9, 0x00e4f2f3,
- 0x00fbfcf8, 0x00fbfcf9, 0x00fcfef9, 0x00fcfefb, 0x00a4aba7, 0x0028312b, 0x000e1a13, 0x000e1c13, 0x000e1c14, 0x000e1d16, 0x000d1e18, 0x000d1f1a, 0x000e1d1a, 0x000e1c19, 0x000d1c18, 0x000e1c19,
- 0x00101d1c, 0x000e1c18, 0x000e1c19, 0x000f1d19, 0x000d1c18, 0x000a1b0d, 0x00142517, 0x00243334, 0x00263550, 0x0028365b, 0x002e3d69, 0x00233360, 0x001f3062, 0x001d2e66, 0x001d2e6c, 0x001e2e72,
- 0x00212f7a, 0x0024327b, 0x0025337c, 0x0026347c, 0x002a3881, 0x002d3e87, 0x002e408c, 0x002e4090, 0x0034459b, 0x003749a0, 0x003448a3, 0x002b44a1, 0x002a409f, 0x003145a3, 0x004150b1, 0x004e5cbe,
- 0x004450b4, 0x003b48af, 0x003344ac, 0x003549b2, 0x00364fb7, 0x00334eb6, 0x003551b8, 0x003a55bb, 0x003f55b8, 0x004656aa, 0x005760a2, 0x006a6893, 0x007b696a, 0x0083654b, 0x00906a3c, 0x009e7032,
- 0x00b1642d, 0x00c64e16, 0x00c1360d, 0x00e05e3d, 0x00f0d7d4, 0x00d5dedf, 0x00d5dddc, 0x00ebdbcf, 0x00f8dbd5, 0x00e4e5e9, 0x00dfe9f0, 0x00ddd6d8, 0x00cbc5d4, 0x00c7c2d5, 0x00d6d4e7, 0x00e2dff0,
- 0x00e5e4e4, 0x00e6e6de, 0x00e8eadd, 0x00eae5de, 0x00e4dedc, 0x00e5dfdd, 0x00e9e5e1, 0x00e9e2e0, 0x00e7e3de, 0x00eae5e0, 0x00ebe6e1, 0x00ece8e2, 0x00ece7e2, 0x00e8e3df, 0x00e0dad7, 0x00dbd5d3,
- 0x00e6dede, 0x00e6e0dd, 0x00e6e0dc, 0x00e6e0dd, 0x00e4e0da, 0x00e6e2db, 0x00ece5dc, 0x00c9beb2, 0x008a7b69, 0x0051402d, 0x001e0900, 0x00250b04, 0x00402512, 0x005e4322, 0x007f6438, 0x008a6c37,
- 0x008f6c33, 0x00936e33, 0x00946a31, 0x00966a37, 0x00916334, 0x008e5f21, 0x00895a1b, 0x007a5722, 0x0067482e, 0x00543a27, 0x00492e23, 0x0070564d, 0x00e2d1cd, 0x00fbf8f8, 0x00f6f9f9, 0x00f2fffe,
- 0x00fdfcfe, 0x00d5d8dd, 0x009c9eac, 0x00eff1fa, 0x00ebf2fa, 0x00edf9f4, 0x00cad9d9, 0x00788b90, 0x00293966, 0x0024347a, 0x00192062, 0x00091031, 0x00010523, 0x00030423, 0x000a0b29, 0x000d0d2c,
- 0x000b0931, 0x000e0e3a, 0x000f1444, 0x00091145, 0x0008134e, 0x00081a58, 0x0016286c, 0x001e2e71, 0x0021286f, 0x001d246a, 0x00162168, 0x001a2772, 0x001c2c7f, 0x001a2e87, 0x00203892, 0x002944a1,
- 0x003950b3, 0x00314cab, 0x002c4aa6, 0x003b5cb7, 0x004f72cf, 0x005474d4, 0x005d77d3, 0x00546bbd, 0x00435588, 0x000c1538, 0x00000525, 0x0006032d, 0x0006072f, 0x00091038, 0x00121a44, 0x00131f4d,
- 0x000b164c, 0x00040b3d, 0x00161b45, 0x000d102b, 0x00000005, 0x00000201, 0x00000706, 0x00000c10, 0x000c1c26, 0x00808991, 0x00dcdcde, 0x00ddd3cd, 0x00f9ecdf, 0x00ecdfd4, 0x00d6c3bc, 0x00eee0db,
- 0x00a9b8a3, 0x006c7771, 0x007c7e88, 0x009e97af, 0x0048404e, 0x00221e1b, 0x0012130a, 0x001d291f, 0x00637296, 0x004f649e, 0x00263a81, 0x001e3172, 0x00203267, 0x001f2a52, 0x000c112a, 0x000d0f1b,
- 0x00433c3c, 0x00594f4b, 0x005f544f, 0x004c3b39, 0x00513f3f, 0x00723d2f, 0x00c98671, 0x00eab29e, 0x00fadece, 0x00f2e0d2, 0x00efe9de, 0x00e7e4de, 0x00d8cfce, 0x00dbcdce, 0x00f0dcdf, 0x00e4c7cd,
- 0x00dec3c2, 0x00ecd3d1, 0x00f5dfdc, 0x00b29e9a, 0x00483a36, 0x00483c39, 0x00c9c1bf, 0x00dad5d3, 0x00d6d3d3, 0x00dde0dd, 0x00d8e0e1, 0x00d8edf2, 0x00fde3e3, 0x00ea9485, 0x00943d37, 0x006f4766,
- 0x003b5189, 0x00647693, 0x00b0c0d7, 0x00a9c3e1, 0x00c7bfd0, 0x00b4b9ca, 0x00909cb0, 0x006d7b97, 0x004e628f, 0x0040598b, 0x0035538c, 0x0033548c, 0x0039578d, 0x003b5482, 0x005c729b, 0x00c0d6ed,
- 0x00fdfbfc, 0x00fefcfd, 0x00fcfafb, 0x00fcfcfc, 0x00bababa, 0x00373838, 0x00000101, 0x00000100, 0x000c080a, 0x00060304, 0x00080708, 0x00050606, 0x00050707, 0x00060909, 0x00070b09, 0x00080d09,
- 0x00222225, 0x00606468, 0x00b6babc, 0x00cbcecf, 0x00d0d5d7, 0x00bdc5c3, 0x00aab3ad, 0x00a7b2ac, 0x00b2b9bb, 0x00b7bec4, 0x00b0b7c1, 0x00949bac, 0x006e768a, 0x005e677f, 0x0059627c, 0x00555f7b,
- 0x005c6269, 0x00545a5f, 0x003b4245, 0x00222828, 0x00060909, 0x00050706, 0x00010302, 0x00000100, 0x00060206, 0x00040104, 0x00000001, 0x00010101, 0x00020101, 0x00020201, 0x00000200, 0x00000200,
- 0x00030206, 0x00010003, 0x00020202, 0x00030302, 0x00050406, 0x00050506, 0x00050503, 0x00050502, 0x00090608, 0x00070406, 0x00040504, 0x00040604, 0x00060403, 0x00050404, 0x00030606, 0x00010405,
- 0x00070508, 0x00070709, 0x00060707, 0x00070807, 0x00070709, 0x00060708, 0x00040605, 0x00030604, 0x0009080b, 0x00050607, 0x00010303, 0x00050506, 0x00060505, 0x00080605, 0x00060503, 0x00030300,
- 0x0009080b, 0x0008080a, 0x00040606, 0x00020604, 0x00040809, 0x0010141b, 0x001f242f, 0x00272e3a, 0x00282d3b, 0x00212836, 0x001a212e, 0x00202733, 0x00333843, 0x003c3f48, 0x003e4148, 0x0043464d,
- 0x005c6364, 0x00777878, 0x00938f90, 0x00a29b9b, 0x00b9b4b2, 0x00c9c9c6, 0x00d6dcd8, 0x00deeae4, 0x00f2f3f5, 0x00f8f5f9, 0x00fbfafb, 0x00fcfbfb, 0x00fdfbfe, 0x00fdfcfe, 0x00fcfdfd, 0x00fefbfc,
- 0x00fffaff, 0x00fffeff, 0x00fcfcfd, 0x00fffbfd, 0x00fcfefd, 0x00fffafd, 0x00fcfafd, 0x00fdfdfe, 0x00fdfcff, 0x00fbfcff, 0x00f9fbfd, 0x00fbfdfe, 0x00fbfafd, 0x00fcfafc, 0x00fcfafa, 0x00fcfaf7,
- 0x00fff9fc, 0x00fcf7f9, 0x00faf7f5, 0x00f8f8f2, 0x00f0f2e9, 0x00e9ebdf, 0x00dfe0d2, 0x00d3d2c3, 0x00cbbdb0, 0x0099877b, 0x005b3b29, 0x007f4427, 0x00895738, 0x0087573a, 0x00784e32, 0x00614026,
- 0x00523323, 0x00452815, 0x004a2a19, 0x0057321f, 0x00684028, 0x00754d2b, 0x00855c33, 0x008c6235, 0x0097693b, 0x009c703d, 0x009b723b, 0x00957139, 0x00896b36, 0x007f6936, 0x00756533, 0x006e612f,
- 0x0069564e, 0x00635143, 0x00594936, 0x0051442d, 0x004a3e30, 0x00463a35, 0x00716466, 0x00a3949d, 0x00897985, 0x0045363c, 0x001d101c, 0x000e071f, 0x000a0920, 0x00070b21, 0x0005081d, 0x0004041c,
- 0x000f0b21, 0x00020214, 0x00202531, 0x00676e75, 0x009b9fa2, 0x009499a5, 0x00838b9e, 0x00565f79, 0x00546086, 0x008799c0, 0x00a2b5df, 0x00a5bce4, 0x009fbde2, 0x00a4c2f0, 0x0091ade4, 0x006786c4,
- 0x008993ae, 0x00bac6ea, 0x00c6daf6, 0x00a8c4e0, 0x008db1c3, 0x00789dc0, 0x006e8ecc, 0x007894eb, 0x00aac0f8, 0x00c3dff2, 0x00cde2e4, 0x00d3d3c8, 0x00b5b1bc, 0x00b6adc3, 0x00c6bbce, 0x00c2b8c3,
- 0x00c9c6c6, 0x00bfc9cd, 0x00738698, 0x002e4471, 0x00203c8e, 0x00233b7c, 0x001d335f, 0x002d435f, 0x0086929a, 0x00a7b1b6, 0x00626773, 0x0024273f, 0x00202047, 0x001c1c3e, 0x00191a36, 0x005b5e6f,
- 0x00e9e7e7, 0x00fffefe, 0x00fcfbfb, 0x00fdfdfd, 0x00f1f1f1, 0x00eeefef, 0x00f9fafa, 0x00fcfdfd, 0x00fffeff, 0x00fffeff, 0x00edf0f1, 0x00979d9d, 0x00262a2e, 0x001b1e26, 0x00191e28, 0x00151b28,
- 0x00181a2d, 0x00171929, 0x00161a27, 0x00161b25, 0x00161823, 0x00161926, 0x001a1e2a, 0x001f202d, 0x0027242f, 0x0029262a, 0x002a2424, 0x002a2523, 0x00292725, 0x00282924, 0x00282b26, 0x00272a27,
- 0x00322a29, 0x002f2923, 0x002b2620, 0x002a2620, 0x002a261f, 0x002b2820, 0x002b2a21, 0x0028291e, 0x00282523, 0x0023221b, 0x001e1d16, 0x001e1f18, 0x0021231d, 0x0023261f, 0x00222421, 0x001d1f1a,
- 0x001d1e1e, 0x00191a19, 0x00161617, 0x00151516, 0x00161615, 0x00171616, 0x00181718, 0x00171615, 0x00191919, 0x00181818, 0x00181818, 0x001a1a1a, 0x001d1d1d, 0x001f1f1f, 0x00202020, 0x00202020,
- 0x00372c2b, 0x003d312d, 0x00433c37, 0x004a4742, 0x005a554f, 0x005e5c56, 0x00686a64, 0x006c6f69, 0x00727371, 0x006e716e, 0x006c6c68, 0x00696761, 0x0065645e, 0x00656461, 0x0060605e, 0x005b5b59,
- 0x00565557, 0x004a484e, 0x0037363c, 0x002a2c30, 0x001d1e23, 0x001b1a1e, 0x001e1b1c, 0x001d1b1b, 0x00261b1b, 0x00302421, 0x003d2d27, 0x00483529, 0x005b4535, 0x00664e3a, 0x00654c35, 0x00634a32,
- 0x0056473b, 0x004d4135, 0x00837a6c, 0x00cec8bb, 0x00dad9d3, 0x00d5d7d3, 0x00d9deda, 0x00d5dcd9, 0x00cbd6d8, 0x00cfdbde, 0x00dbe2e8, 0x00e7e3f4, 0x00e6f6ef, 0x00d6edf8, 0x0091abc4, 0x0092aacb,
- 0x00d9e6df, 0x00e2e6df, 0x00dad8d6, 0x00bcb3bc, 0x0085816d, 0x0072664f, 0x0066563e, 0x00634d39, 0x006a523d, 0x0068523f, 0x0066523f, 0x006e604f, 0x007d756d, 0x008a8883, 0x008e928c, 0x008c9490,
- 0x00939495, 0x008d8c8e, 0x00807e7f, 0x006d6868, 0x0059504e, 0x00483f3c, 0x0039322e, 0x0038312d, 0x00898281, 0x00e9e3e2, 0x00fdfcfb, 0x00f8fefd, 0x00fcfbfd, 0x00faf7fc, 0x00d1cdd3, 0x007a8286,
- 0x005c818d, 0x0071a5b9, 0x0087c2e4, 0x008dc7fd, 0x008fc0fc, 0x0083bbfb, 0x0076b5fa, 0x0068affa, 0x005ea4ff, 0x004f9cff, 0x004190fd, 0x003a85f9, 0x003578f2, 0x003871ed, 0x003a6de7, 0x00396be3,
- 0x004365c4, 0x003458b8, 0x00274eae, 0x00264eac, 0x001e46a5, 0x002041a3, 0x00203b9d, 0x001a3090, 0x00222a8f, 0x00282d93, 0x00242d8c, 0x001f2f84, 0x001e2d7b, 0x00202c72, 0x0017225e, 0x00121e52,
- 0x00171b53, 0x00161b52, 0x00151d55, 0x00111c5c, 0x00121e5c, 0x00171e66, 0x00171a63, 0x001b1d65, 0x00444387, 0x008d8bc2, 0x00e2e1f9, 0x00f6f6fc, 0x00faf9fb, 0x00f2f3eb, 0x00eff3dc, 0x00edf2d2,
- 0x00f8e7ec, 0x00f9ece9, 0x00f3efe4, 0x00edeee0, 0x00eaeee5, 0x00ededeb, 0x00efeded, 0x00f1edf0, 0x00ffebe9, 0x00fde7dc, 0x00f2e6d9, 0x00e3ecdb, 0x00f0e6eb, 0x00f5ddda, 0x00f6dcd8, 0x00e9dbd5,
- 0x00d9dffc, 0x00e3bbd4, 0x00d78080, 0x00f35d37, 0x00f55b18, 0x00f95a1e, 0x00ec6938, 0x00efb092, 0x00ecedfb, 0x00f2f2ff, 0x00e6e0ef, 0x00bba3a8, 0x008a6d57, 0x009a796c, 0x00b6948b, 0x00ce9fa5,
- 0x00e1b8b4, 0x00ecd9e4, 0x00eee9fa, 0x00e4e9fc, 0x00e4e5ee, 0x00e1e3e9, 0x00eae8ef, 0x00eee3eb, 0x00ef938f, 0x00eb5a38, 0x00f1491c, 0x00f36544, 0x00ebc2ab, 0x00e8eee9, 0x00dcf3f6, 0x00ebf8fb,
- 0x00fff6fb, 0x00fdf7f7, 0x00fffaf6, 0x00fdfaf5, 0x00fcf0f4, 0x00b5afba, 0x003c3e4a, 0x005b5e6a, 0x009797aa, 0x00b8b8cb, 0x00c7c7dd, 0x00d2d4eb, 0x00e0e3f8, 0x00dee4f4, 0x00dde3f1, 0x00e1e8f6,
- 0x00f4e7fc, 0x00efeafc, 0x00eaecfa, 0x00e6eff8, 0x00e3ecf9, 0x00e2ecfd, 0x00bcc5da, 0x0099a4b7, 0x00c7cbd1, 0x00e4e8df, 0x00c9cac1, 0x00bbbbbf, 0x00c4ccde, 0x00bccaef, 0x00bbcff9, 0x00bcd1fd,
- 0x00b2c3ff, 0x00b7c8f6, 0x00c6d4f7, 0x00d8e7fb, 0x00e5eef3, 0x00e7e8f7, 0x00e1e0f2, 0x00e1e7ea, 0x00beceac, 0x008b9f68, 0x00768d4b, 0x00758f48, 0x0074914c, 0x00729250, 0x006f9252, 0x006b9052,
- 0x006e915b, 0x006f9249, 0x00749542, 0x00758f47, 0x00a8b0a5, 0x00dddbe2, 0x00dcdbdd, 0x00d8decb, 0x00dae0d1, 0x00bbc7ce, 0x00a5b6cb, 0x00c8d3f7, 0x00e5ecfd, 0x00e5eafd, 0x00e2e7f8, 0x00d8ddee,
- 0x00bcc7eb, 0x00a8b9e9, 0x007994d3, 0x005e7ece, 0x00567edb, 0x004a7ce4, 0x003b72dc, 0x00346cce, 0x003565c5, 0x003863cb, 0x003b63db, 0x003962ed, 0x00365ae9, 0x004363cf, 0x0091aae9, 0x00e1f0f8,
- 0x00fefcfb, 0x00fdfcfa, 0x00fcfdf8, 0x00fcfefa, 0x00a3aca6, 0x00253029, 0x000c1913, 0x000c1b13, 0x000f1c17, 0x000f1c19, 0x000e1e18, 0x000d1f19, 0x000e1c1a, 0x000d1c18, 0x000b1c14, 0x000c1b18,
- 0x00101e1d, 0x000f1e19, 0x000f1e1a, 0x000f1e18, 0x000e1c16, 0x0010200e, 0x0010200e, 0x0023322f, 0x0029354c, 0x00202d4f, 0x00293861, 0x0022325e, 0x001e2e60, 0x001a2b63, 0x00192c69, 0x00192c6f,
- 0x0027317c, 0x002b357e, 0x002a367e, 0x0028367d, 0x002a3a80, 0x002a3c82, 0x00273a83, 0x00263985, 0x00303e94, 0x00324199, 0x003144a0, 0x002b43a4, 0x002e42a7, 0x003446ab, 0x003949ae, 0x003847ae,
- 0x003c48b6, 0x003744b2, 0x003344b0, 0x003548b6, 0x00314ab4, 0x00364dbd, 0x00354eb9, 0x003c53ba, 0x004051a7, 0x0038457f, 0x003e4260, 0x0070696c, 0x009c8160, 0x00926a3b, 0x009d6a33, 0x00a2682b,
- 0x00b9552d, 0x00c93a1a, 0x00ca3119, 0x00eb635b, 0x00edd8de, 0x00d3dbdb, 0x00d1dcd0, 0x00e1d7bb, 0x00ebd1bd, 0x00dad6d3, 0x00dadadf, 0x00edd7de, 0x00eedae7, 0x00eadaec, 0x00ded5e2, 0x00ddd5df,
- 0x00e9e0e2, 0x00e6e2dc, 0x00e7e8d9, 0x00e9e7d9, 0x00dedbd3, 0x00e2ded9, 0x00e7e5df, 0x00e4dfda, 0x00e0ddd9, 0x00e3e0db, 0x00e5e1dd, 0x00e6e2dc, 0x00dad6d1, 0x00d5d0cb, 0x00d2cdc8, 0x00d2cdc9,
- 0x00e1d8da, 0x00ded7d6, 0x00d8d1cf, 0x00d7d2cf, 0x00d7d4d0, 0x00d2cfcb, 0x00cdc8c1, 0x00bfb8ad, 0x00a29082, 0x007a654f, 0x00553e2a, 0x005c402d, 0x00755c3f, 0x008a714d, 0x00907849, 0x008e723c,
- 0x008b6b30, 0x008f6a30, 0x008d652c, 0x00906632, 0x00916331, 0x00906122, 0x008a5d1b, 0x00825c20, 0x007f5732, 0x00704d30, 0x0064442d, 0x008c6e5a, 0x00ecded4, 0x00fdfbfb, 0x00f7fdfa, 0x00eefdfc,
- 0x00fbfeff, 0x00cbcddd, 0x0073768c, 0x00d8deea, 0x00eaf3f8, 0x00f1fcf2, 0x00eaf6eb, 0x00e6f1e9, 0x0092a1b9, 0x0039487a, 0x00070b3e, 0x00091033, 0x000d1634, 0x000b0f2e, 0x0000011b, 0x0002021f,
- 0x000f0c2f, 0x000d0d32, 0x000c1137, 0x00101541, 0x0003093a, 0x00010c41, 0x0007124a, 0x00101c50, 0x001d2361, 0x001a1f5b, 0x00111b58, 0x001f2a6d, 0x001c2d78, 0x00172b7e, 0x00193386, 0x0026479e,
- 0x003a4fb4, 0x003c57b7, 0x003251af, 0x003556b4, 0x00476ccb, 0x005071d2, 0x00556fca, 0x004b62b3, 0x0043528a, 0x000b0f38, 0x0005092d, 0x000d0535, 0x000c0e3a, 0x000f1640, 0x00111b47, 0x00111f4f,
- 0x00151c55, 0x0014194c, 0x00141a3f, 0x00080b22, 0x00010209, 0x00000204, 0x00010706, 0x00040c12, 0x001d2735, 0x009ca6ad, 0x00d9dbd9, 0x00e2d0c6, 0x00e8c1b4, 0x00a97d74, 0x0087625d, 0x00cab6b3,
- 0x00d4dad0, 0x007f8585, 0x008c8b93, 0x007f788a, 0x006e666b, 0x00302e27, 0x00191c15, 0x0021332e, 0x00667da7, 0x003e5796, 0x001d2d7a, 0x00242570, 0x0022215a, 0x0017143a, 0x00090417, 0x00221d1d,
- 0x00524037, 0x00756555, 0x00473c25, 0x004e4230, 0x004b3c2e, 0x009c5749, 0x00c96f5d, 0x00b76654, 0x00c07d6c, 0x00ce9585, 0x00d2a295, 0x00d5a89e, 0x00e0aea9, 0x00dda8a4, 0x00b67c7a, 0x009d5d5c,
- 0x00996866, 0x00b18380, 0x009d7472, 0x006b4846, 0x004c3632, 0x004b3d39, 0x00bbb3af, 0x00ddd9d5, 0x00cac9c7, 0x00dddedb, 0x00dbe1de, 0x00d9e7ec, 0x00f7e1de, 0x00efad96, 0x00884a39, 0x00574c56,
- 0x0025547d, 0x0044687d, 0x009db9c5, 0x00abc2d4, 0x00d2bfc5, 0x00dbd4d3, 0x00d2d6d3, 0x00ced4d6, 0x00c0cbe5, 0x00a3b6d6, 0x008ba1c7, 0x0089a1ce, 0x0095abd1, 0x00a2b3d0, 0x00b7c5de, 0x00d9e4f5,
- 0x00f3fbf1, 0x00f7fbf6, 0x00fcfefc, 0x00fcfefd, 0x009fa3a0, 0x00252a26, 0x00010302, 0x00050405, 0x00000600, 0x00000600, 0x00060906, 0x00050807, 0x0005060e, 0x00070a06, 0x000b0e02, 0x000b1104,
- 0x00182715, 0x006d758f, 0x00d5dbf9, 0x00cdd5f9, 0x00bed1df, 0x00a6c3d2, 0x008dadbd, 0x0089a5bb, 0x007f9eb1, 0x007996af, 0x007f96bb, 0x007f95be, 0x008090c3, 0x007d8ac2, 0x008088c6, 0x008389c7,
- 0x00798eab, 0x008597af, 0x009aa6b8, 0x0088939c, 0x00515d56, 0x00242e23, 0x00090e09, 0x00020203, 0x00000200, 0x00010100, 0x00050304, 0x00010200, 0x00000203, 0x00010103, 0x00040107, 0x00030209,
- 0x00000500, 0x00000500, 0x00010804, 0x00060903, 0x000a0b08, 0x00060a07, 0x00080c0c, 0x000a0b0a, 0x00030a01, 0x00040a00, 0x00080c02, 0x00080b06, 0x00040904, 0x00010604, 0x00030909, 0x00030809,
- 0x00000300, 0x00000403, 0x0000080b, 0x0000080b, 0x00010a0b, 0x00000807, 0x00040a09, 0x00070c0b, 0x00000900, 0x00000700, 0x00010405, 0x00080012, 0x00110108, 0x00140003, 0x00170103, 0x00120002,
- 0x00000400, 0x00000b07, 0x00000c0e, 0x00091719, 0x00354b4b, 0x004a7389, 0x005689b3, 0x005484b3, 0x00497eaa, 0x004a7aaa, 0x00416fa0, 0x004874a2, 0x00668baf, 0x006384a3, 0x0036516e, 0x00192a45,
- 0x0000091a, 0x00000410, 0x000d101a, 0x00181d1a, 0x00363329, 0x004a483a, 0x00605b50, 0x0077726b, 0x00818483, 0x0091989e, 0x00afb3ba, 0x00c2c1c3, 0x00e2e1e1, 0x00efefef, 0x00f7f6f7, 0x00faf9fa,
- 0x00f7f7f7, 0x00f8f8f8, 0x00fcfcfc, 0x00fdfdfd, 0x00fdfdfd, 0x00f9f9f9, 0x00ffffff, 0x00fefefe, 0x00fbfbfb, 0x00fafafa, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fefefe, 0x00ffffff,
- 0x00f0fdf0, 0x00f3fbf3, 0x00fffcfb, 0x00fffeff, 0x00fefcff, 0x00f6fcfa, 0x00fcfefe, 0x00fcfffd, 0x00f4f9ef, 0x00bdaea6, 0x004b291d, 0x006c3516, 0x008c462b, 0x008f492e, 0x00823f29, 0x006c3322,
- 0x0040280d, 0x00371c05, 0x00512413, 0x00743020, 0x009a3723, 0x00964721, 0x009b5325, 0x00a1572a, 0x00985b1f, 0x00996025, 0x009a6731, 0x008d6532, 0x0073603a, 0x00615a3c, 0x004f4c3a, 0x00494f41,
- 0x003d3f3e, 0x00404342, 0x00424245, 0x00424145, 0x00454847, 0x00494a48, 0x00615b5a, 0x00938988, 0x00bbb5aa, 0x00928880, 0x00533339, 0x00380411, 0x00030a10, 0x00011519, 0x0005141e, 0x00120f2b,
- 0x0015061c, 0x0002030f, 0x001e2633, 0x00546769, 0x00a3a1a6, 0x008e9cb3, 0x007a87a9, 0x004a5470, 0x005a6c73, 0x00a1b4b8, 0x00bac9d4, 0x00b8ced8, 0x00a7c8e8, 0x00a0c9eb, 0x008db7ef, 0x0075a3eb,
- 0x005c80ab, 0x005d86b9, 0x0077a3e8, 0x006796e9, 0x00598aea, 0x006595e5, 0x008bacee, 0x00b1c3f0, 0x00d4dad2, 0x00e4dfc6, 0x00dbd7bf, 0x00d2dbcd, 0x00bfc0bf, 0x00b2afb1, 0x00ccc4c9, 0x00cec4c7,
- 0x00b4c2b3, 0x00becfcb, 0x0097a9b8, 0x00475d81, 0x001f3c73, 0x00163d75, 0x0018396f, 0x001f3261, 0x00636d88, 0x00939ab3, 0x00555975, 0x001d2644, 0x00132244, 0x00162443, 0x00141e3b, 0x004f5975,
- 0x00dededb, 0x00fafcfa, 0x00fefefe, 0x00fdfcfd, 0x00f9f9f8, 0x00efefef, 0x00f9f7f9, 0x00fefcff, 0x00fafff9, 0x00fafffa, 0x00f2f5f3, 0x00a1a3a3, 0x0027292c, 0x001b1c24, 0x001d1f29, 0x001a1c27,
- 0x00111d22, 0x000f1920, 0x00141b26, 0x00181b29, 0x00181829, 0x00171425, 0x001f1a2a, 0x00282231, 0x00262725, 0x00292b26, 0x002b2a25, 0x002a2822, 0x00292923, 0x002b2a2a, 0x002d292e, 0x002c292c,
- 0x00252718, 0x00252519, 0x0026221e, 0x00262120, 0x0025211d, 0x0027221d, 0x0028211f, 0x0029201f, 0x001f1d15, 0x001f1914, 0x001e1815, 0x001f1e15, 0x0025261f, 0x002a2825, 0x00292627, 0x00252425,
- 0x00172012, 0x00141c0e, 0x0015180f, 0x0019190e, 0x0017170d, 0x00191716, 0x001c191d, 0x0019181c, 0x00111811, 0x00111712, 0x00141916, 0x00181918, 0x001e1b1b, 0x00211919, 0x002c2021, 0x0036272a,
- 0x003b3217, 0x00443b23, 0x004f4533, 0x00544c3e, 0x005e584a, 0x0068645a, 0x006d6a65, 0x0072716d, 0x006f786d, 0x006d766f, 0x006b716c, 0x006b6d67, 0x00696964, 0x00686866, 0x00676567, 0x00646163,
- 0x004f5350, 0x00444846, 0x0039383a, 0x00302e31, 0x001f2023, 0x00191a19, 0x00201e1c, 0x00292623, 0x002c2a20, 0x00363226, 0x0045392d, 0x004f3d30, 0x00564334, 0x00614b3b, 0x00674c3b, 0x00644736,
- 0x0047472d, 0x0042412c, 0x00847e71, 0x00d3ccc5, 0x00dbd9d6, 0x00d4d6d5, 0x00dbdcdd, 0x00dededf, 0x00d7e4dc, 0x00e8f3eb, 0x00f3faf6, 0x00f0f4f1, 0x00eef2f4, 0x00e7eef2, 0x00b0b7c2, 0x00adb4c1,
- 0x00d7e9e6, 0x00dbe6e1, 0x00d7dbd6, 0x00c2bfb7, 0x008c8177, 0x00655952, 0x004f413d, 0x0051403d, 0x005b4d3b, 0x0061543f, 0x006e604a, 0x007d735b, 0x00908b7b, 0x0099998d, 0x00a2a49f, 0x00a1a7a5,
- 0x0089a68a, 0x00879a85, 0x00818985, 0x0074767b, 0x005c5a6a, 0x004b4853, 0x00423d49, 0x00464048, 0x0081897b, 0x00dce3d2, 0x00fcfdf4, 0x00fafafb, 0x00fffdff, 0x00faffff, 0x00cad4d2, 0x007e8a83,
- 0x005f7f69, 0x00749f98, 0x008bbfd1, 0x0087cbf4, 0x0076d0fe, 0x007ac2f2, 0x007bb9ef, 0x0075b4f2, 0x0058afef, 0x0049a2ef, 0x004298f3, 0x003d8ff1, 0x003d7cea, 0x003c6ede, 0x003d62d7, 0x003f58cf,
- 0x002c51aa, 0x00284ba9, 0x002341a8, 0x00233fa8, 0x002440ac, 0x002540ab, 0x001f3aa4, 0x00173299, 0x00082a88, 0x0013308d, 0x001d368f, 0x00193382, 0x00192d77, 0x00152a67, 0x0014255f, 0x00192459,
- 0x00071a3e, 0x0005143d, 0x00151d4f, 0x00181951, 0x001b1b5a, 0x0017165a, 0x001e1d5e, 0x0049457f, 0x00a09fbb, 0x00e0deeb, 0x00fbf8fb, 0x00f9f7f1, 0x00f4f3e8, 0x00f0ede7, 0x00f0edea, 0x00f1efee,
- 0x00e5ebe6, 0x00e7ece8, 0x00efeeed, 0x00f2efee, 0x00f4f3f1, 0x00f3f1ed, 0x00f8f3ee, 0x00faf5ee, 0x00f1f1e6, 0x00eeeee2, 0x00eeeae1, 0x00eae9de, 0x00f3e4da, 0x00f2e4db, 0x00f0e2e3, 0x00e8e3e9,
- 0x00d7e1e2, 0x00e2c9c8, 0x00dc958d, 0x00e16449, 0x00fe501f, 0x00f25624, 0x00ef6e43, 0x00f6a58c, 0x00faedeb, 0x00e5edf4, 0x00e5f0fb, 0x00c7c8da, 0x0092818b, 0x009a8893, 0x00cdbecb, 0x00dcd3e7,
- 0x00e0dfda, 0x00e0e2ef, 0x00e4e1fa, 0x00e2d8f3, 0x00ebcfd3, 0x00ded6d6, 0x00e1e5f0, 0x00dee9ff, 0x00dda8ab, 0x00e1664c, 0x00ea4819, 0x00f75e1a, 0x00e6ada2, 0x00ebe1ea, 0x00e9f2fe, 0x00f5fcff,
- 0x00f4fcde, 0x00f9fbe5, 0x00fffcf6, 0x00fdf9fe, 0x00f4eaf3, 0x009d9ca8, 0x004e5163, 0x00767587, 0x00a0a3b5, 0x00bdbdd3, 0x00c7c5df, 0x00c9c8e2, 0x00dad8f4, 0x00d9d6f5, 0x00dddafa, 0x00e2e1ff,
- 0x00f0e8d6, 0x00e3efec, 0x00d7ebf8, 0x00c3dfec, 0x00c2d1d9, 0x00ccdff0, 0x00b2d0f1, 0x007faedc, 0x007ab1c6, 0x00a9cec9, 0x00b4c6bb, 0x00bac5b4, 0x00b4c6d7, 0x00a5c0e4, 0x00b5d7ff, 0x00b9daff,
- 0x00b1d6ed, 0x00bcd4e7, 0x00cad4e8, 0x00dce5f9, 0x00e5eeff, 0x00f2e8f9, 0x00efdef2, 0x00e5e6f4, 0x00c5e3d7, 0x00a0ba9f, 0x0085906b, 0x008b8d55, 0x008f904a, 0x0081954c, 0x00799856, 0x00669a55,
- 0x00689352, 0x0066954b, 0x006d9d53, 0x006b9649, 0x00a0b083, 0x00dfd6c5, 0x00e1c7d1, 0x00e0bbd8, 0x00cfc5c9, 0x00b4bcb0, 0x00b9c8cb, 0x00cee2f9, 0x00e8effe, 0x00ebedf3, 0x00edeaf0, 0x00e0e3ec,
- 0x00a0bece, 0x00799ec0, 0x006280b9, 0x00617fbe, 0x008194d9, 0x00708fe1, 0x003e69d3, 0x002967f0, 0x002868d4, 0x00456ab0, 0x007b8fc6, 0x007e8eca, 0x00476deb, 0x004262dc, 0x0099abff, 0x00f0eafe,
- 0x00f9fef5, 0x00f9fcf5, 0x00fcfefc, 0x00fdfdfd, 0x00a6aca8, 0x00252f29, 0x00101815, 0x00121c18, 0x000b1b12, 0x000a1c12, 0x000e1d15, 0x00101d16, 0x00101d16, 0x00111d17, 0x00141e19, 0x00131e19,
- 0x000e1c11, 0x000e1c13, 0x00101e16, 0x00111e18, 0x000f1c15, 0x00122012, 0x000e1c0d, 0x0028352f, 0x0026353f, 0x001c263c, 0x0031375f, 0x002c3162, 0x0023275f, 0x00262865, 0x002b2b6b, 0x00292967,
- 0x0022276a, 0x002d3075, 0x00333580, 0x002c327b, 0x002c387e, 0x00293b81, 0x00283a83, 0x00293a89, 0x00273b83, 0x00273a88, 0x00293a8e, 0x003043a3, 0x003447b0, 0x002d46b2, 0x002b45b3, 0x002d47bc,
- 0x002148af, 0x002548b0, 0x002f49b7, 0x003648b4, 0x003849ae, 0x003f499f, 0x00424692, 0x00434982, 0x00354549, 0x002d3024, 0x00352512, 0x0073583b, 0x00ab7f56, 0x008f6732, 0x00977032, 0x008f6922,
- 0x00ab4b00, 0x00cd3e0d, 0x00ce3423, 0x00e66e6c, 0x00eed6d0, 0x00dfd5d1, 0x00d5d1ca, 0x00d4d1c9, 0x00ccd7c5, 0x00d9cec5, 0x00e0cdcb, 0x00dbd2d0, 0x00e2dbd7, 0x00e5ddda, 0x00e0d8d9, 0x00e4dddf,
- 0x00d9dad1, 0x00d9d9d4, 0x00e5e3e3, 0x00e4e2e5, 0x00dddade, 0x00e2dee2, 0x00e5e0e4, 0x00e4dde2, 0x00d5d8d4, 0x00d8d7d5, 0x00e0dbdb, 0x00d9d4d5, 0x00c9c4c7, 0x00c3c0c3, 0x00c9c6ca, 0x00cecbcf,
- 0x00c7c9bb, 0x00c9c5bc, 0x00d4c9c7, 0x00d8cecd, 0x00c9c8d1, 0x00c0c6cf, 0x00bfc3cd, 0x00c6c2cb, 0x00a1917c, 0x00836448, 0x00855d3b, 0x008a6136, 0x00987244, 0x009e7b48, 0x009c7c43, 0x0097793d,
- 0x00816e26, 0x00846729, 0x008b622d, 0x008d5f30, 0x00925a35, 0x008a5f2d, 0x00855c25, 0x00865822, 0x00805719, 0x007a5624, 0x00755837, 0x00998975, 0x00ecece7, 0x00fdfdfc, 0x00fdfdff, 0x00fefcff,
- 0x00ebfff3, 0x00a2b4bf, 0x004d5e79, 0x0092a8bd, 0x00e9f7fb, 0x00f0f8f9, 0x00f0eff2, 0x00fef4f9, 0x00ebeff3, 0x00b1b7c3, 0x002d3350, 0x00171f47, 0x00151c45, 0x00080d33, 0x00000229, 0x0004012a,
- 0x0000001d, 0x00000322, 0x00090c2d, 0x000d0f30, 0x000b0d2d, 0x00060626, 0x00060427, 0x0009082d, 0x00060c2e, 0x00060b32, 0x000b0e3e, 0x001e255e, 0x001d2a72, 0x0017297c, 0x00162984, 0x00263b9d,
- 0x002c51a1, 0x003656b1, 0x003a55ba, 0x003a52bd, 0x00475dc6, 0x005367c7, 0x00505fb7, 0x00414c9c, 0x001e285e, 0x00000532, 0x00060733, 0x00040632, 0x000b0d45, 0x000b104b, 0x00121557, 0x00181960,
- 0x000f184c, 0x00081238, 0x00171b37, 0x00060613, 0x00060705, 0x00010500, 0x00080c09, 0x00180517, 0x00212d42, 0x009fc2be, 0x00d6e5cf, 0x00f2d1aa, 0x00ef5b4b, 0x00cf3939, 0x00a12c3b, 0x00a07385,
- 0x00e4eaea, 0x00979b97, 0x006c6a66, 0x00959287, 0x00a1a09a, 0x00393b43, 0x0021243c, 0x00454a72, 0x006278a1, 0x0027426d, 0x001f3169, 0x0020256b, 0x001f1f53, 0x00130b2e, 0x00140316, 0x003b2127,
- 0x004f3c26, 0x0073614c, 0x00472e25, 0x003d2925, 0x005b4649, 0x00a37482, 0x00a25d6b, 0x00a6504c, 0x00b9451f, 0x00be330d, 0x00cf3111, 0x00d02914, 0x00c5281a, 0x00b1230e, 0x009a1703, 0x00921d04,
- 0x00a12b12, 0x00b04230, 0x00862418, 0x00681d13, 0x0064392f, 0x00533c30, 0x00a6998f, 0x00e1ddd6, 0x00bbcab7, 0x00cedbcd, 0x00dae3dc, 0x00d8e4e4, 0x00ece2eb, 0x00f7c4bf, 0x008f4741, 0x007f3e41,
- 0x00294975, 0x00264e7a, 0x0097b3d5, 0x00bcbac0, 0x00d2c3c1, 0x00d2c8c7, 0x00d6cccc, 0x00ddd0d1, 0x00dedbd7, 0x00e1deda, 0x00e4e1dd, 0x00e4e2de, 0x00e4e1de, 0x00e2e0dd, 0x00e0dedb, 0x00e5e3e0,
- 0x00fcfefc, 0x00fdfffd, 0x00f9fcfa, 0x00fafdfb, 0x008e928e, 0x00191d18, 0x00010501, 0x00020603, 0x00010400, 0x00040905, 0x00070906, 0x00050709, 0x0007060f, 0x0007070a, 0x00090b02, 0x00060e00,
- 0x000d1217, 0x003f4370, 0x006a71b4, 0x00646eb6, 0x004f6587, 0x00384e8d, 0x002c408f, 0x00293d86, 0x00293e7f, 0x002a417c, 0x002d4379, 0x003b4f80, 0x00576a92, 0x007285a8, 0x0091a4c4, 0x00a6bad6,
- 0x00a1b3bb, 0x0093a4ab, 0x0099a8af, 0x00a6b4bf, 0x00a9b5bd, 0x00949ca6, 0x0052565d, 0x001c1d23, 0x00030306, 0x00030102, 0x00060404, 0x00000000, 0x00000101, 0x00000102, 0x00040405, 0x00020404,
- 0x00000500, 0x00020602, 0x00050803, 0x00090b04, 0x000a0b03, 0x000b0c05, 0x000b0d04, 0x000d0e04, 0x000d0c05, 0x000b0c03, 0x00090a02, 0x00090c05, 0x00060b03, 0x00040a03, 0x00040903, 0x00060803,
- 0x00030704, 0x00010603, 0x00020605, 0x00040908, 0x00010806, 0x00020806, 0x00010706, 0x00010706, 0x00000700, 0x00000801, 0x00000402, 0x0001040b, 0x00080401, 0x000c0300, 0x000c0300, 0x00070403,
- 0x0000060c, 0x00000818, 0x0013273d, 0x0049647b, 0x0084a0b3, 0x0080aacf, 0x006695c2, 0x005b8abc, 0x005382bb, 0x005280bd, 0x005e8dca, 0x006d9ad7, 0x0080a8de, 0x0087adde, 0x007599c6, 0x006485ad,
- 0x00435e81, 0x00253855, 0x00031125, 0x00020510, 0x00020504, 0x00050301, 0x00080803, 0x000f0f0b, 0x00121413, 0x001a1d23, 0x00292c32, 0x003e3e3f, 0x00575656, 0x006c6c6c, 0x00818182, 0x00929293,
- 0x00aeaeae, 0x00bebebe, 0x00d0d0d0, 0x00dfdfdf, 0x00eeeeee, 0x00f3f3f3, 0x00f7f7f7, 0x00fafafa, 0x00fafafa, 0x00fdfdfd, 0x00fefefe, 0x00fefefe, 0x00fdfdfd, 0x00fdfdfd, 0x00fcfcfc, 0x00fbfbfb,
- 0x00f5fff6, 0x00f9fdf9, 0x00fcfcfb, 0x00fefcfe, 0x00fcfafd, 0x00fcfefe, 0x00f8fdfc, 0x00f8fefa, 0x00eff0e9, 0x00aa9995, 0x003b190f, 0x0060280b, 0x00813f20, 0x00884425, 0x00783c1f, 0x00612f18,
- 0x003e240d, 0x00371b04, 0x004f2610, 0x0070351c, 0x00973f1f, 0x009b4a23, 0x009e4f25, 0x00a05024, 0x009c531f, 0x00995524, 0x0095582c, 0x0084542d, 0x00664c32, 0x004d402f, 0x00322d27, 0x00272c2b,
- 0x002e2e33, 0x0036383b, 0x00414146, 0x004a4b4d, 0x00525451, 0x005a5c57, 0x00686461, 0x007b7471, 0x00bdafac, 0x00cdbbb9, 0x008f6c6a, 0x00641c1b, 0x001f1005, 0x00201d16, 0x00221b1a, 0x0029111f,
- 0x00220319, 0x000d0817, 0x00162530, 0x00455d65, 0x00979ca8, 0x00929dbe, 0x00646e95, 0x00444d6f, 0x00798193, 0x00afb7c8, 0x00adb6c7, 0x0092a3b5, 0x006a86a9, 0x006184b1, 0x006186c1, 0x005c86c9,
- 0x003c5395, 0x001f3b7d, 0x00395b9a, 0x005a80bf, 0x00749dd2, 0x0091b9e4, 0x00b9d8f7, 0x00cee2f9, 0x00d7d9df, 0x00ddd6d4, 0x00d8d3ce, 0x00d2dad4, 0x00c0c2c3, 0x00b7b5b8, 0x00c9c4c8, 0x00ccc5c5,
- 0x00bdc1ba, 0x00c7cfd1, 0x00b2c0cd, 0x006c7f9e, 0x00233b6c, 0x00193d71, 0x00193d6f, 0x001c3360, 0x00505774, 0x00777b95, 0x0040435f, 0x001d2543, 0x00162545, 0x00192743, 0x00111a35, 0x004e566e,
- 0x00dcd9da, 0x00fcfcfc, 0x00fefdfd, 0x00fefbfc, 0x00f7f7f7, 0x00eff0f0, 0x00f7f7f7, 0x00fcfefd, 0x00fbfffe, 0x00fcffff, 0x00f3f5f5, 0x00a8a8a8, 0x002a2a2b, 0x001a1a1e, 0x001d1e23, 0x001b1d21,
- 0x00181c24, 0x00151922, 0x00181925, 0x001a1b27, 0x001c1b27, 0x001d1b25, 0x00211d25, 0x00272329, 0x00292826, 0x002c2d26, 0x00302e28, 0x002e2d27, 0x002b2d27, 0x002a2b29, 0x002a292b, 0x0028282b,
- 0x00292720, 0x0028251e, 0x0027231f, 0x0024211c, 0x00211e17, 0x00221e18, 0x00231d1a, 0x00211a18, 0x001d1916, 0x001b1514, 0x001a1413, 0x001e1c13, 0x0028271f, 0x002e2c25, 0x002e2c27, 0x002b2b26,
- 0x0022251a, 0x001c1f14, 0x001a1911, 0x001b1a0e, 0x001a180d, 0x001b1815, 0x001b191a, 0x00181719, 0x00171916, 0x00151916, 0x00151917, 0x00181a17, 0x001e1c17, 0x00221c16, 0x002d251f, 0x00362d27,
- 0x00453820, 0x004f432b, 0x00564b36, 0x0059503e, 0x00605a49, 0x00696457, 0x006e6c63, 0x0074736b, 0x00767b71, 0x00757a73, 0x00737772, 0x0072746e, 0x006f706b, 0x006c6e6b, 0x00686a69, 0x00646463,
- 0x00565957, 0x004b4d4c, 0x003d3b3e, 0x002f2d31, 0x001e1f22, 0x001c1d1d, 0x00292826, 0x00353431, 0x00403c34, 0x00474037, 0x00504339, 0x00554438, 0x00594739, 0x005f4a3a, 0x005f4836, 0x0059422f,
- 0x0046422f, 0x00403b2b, 0x00827b71, 0x00d4cec6, 0x00d8d6d2, 0x00d4d5d3, 0x00e0e1e0, 0x00e7eae8, 0x00eaefea, 0x00f4f9f4, 0x00fbfcfa, 0x00f9faf7, 0x00f5f9f9, 0x00eff9fa, 0x00cdd8de, 0x00bfccd4,
- 0x00dee8ed, 0x00dce2e4, 0x00dbdddb, 0x00c1bfba, 0x00786f65, 0x004b4439, 0x003e3527, 0x00473b2e, 0x0055493a, 0x00615545, 0x00746657, 0x00877b6e, 0x009b938b, 0x00a5a19e, 0x00aeabad, 0x00adadb0,
- 0x0096a596, 0x008d9789, 0x0080847b, 0x0073766d, 0x0062645a, 0x005f5f53, 0x005a5a4d, 0x005a5b48, 0x008d967a, 0x00e1e8cc, 0x00f9ffeb, 0x00fefdfc, 0x00fdfdfc, 0x00fafdfc, 0x00cfd8cf, 0x0082887d,
- 0x0067776b, 0x0082a1a0, 0x008fbecd, 0x0086c8ed, 0x0074cffd, 0x0076cafe, 0x006ec1fa, 0x0066bbfb, 0x0058aef8, 0x004da0f4, 0x004391ed, 0x003c81e1, 0x003d6ed2, 0x003c61c4, 0x003856b9, 0x00394db0,
- 0x0027469f, 0x0027449f, 0x0026419e, 0x00243e9c, 0x00263d9c, 0x00243999, 0x001f3492, 0x00172d87, 0x0011277d, 0x001b2d81, 0x00223486, 0x001b2f84, 0x0018297a, 0x0015286e, 0x00122460, 0x00122056,
- 0x000c1946, 0x000d1747, 0x0010174b, 0x001d2053, 0x0016184f, 0x001b1b53, 0x0057578b, 0x00a7a4d0, 0x00e7e4f8, 0x00f6f2fa, 0x00f5f0ef, 0x00f4f0e8, 0x00f0eee2, 0x00efece4, 0x00eeebe6, 0x00efeeea,
- 0x00ebedeb, 0x00ebedeb, 0x00f0efed, 0x00f3efee, 0x00f3f0ee, 0x00f6f2ee, 0x00f7f2ee, 0x00f5f1ec, 0x00f5efe9, 0x00f2ede6, 0x00efe8e2, 0x00eae7de, 0x00f2e3d9, 0x00f3e5db, 0x00f1e5e3, 0x00ebe8eb,
- 0x00e1e3ee, 0x00edd1d3, 0x00e09c92, 0x00e0674b, 0x00fd501e, 0x00f25522, 0x00ec6a3f, 0x00f3a188, 0x00fceaed, 0x00e9edf9, 0x00e9f1ff, 0x00ddddef, 0x00c1b0b9, 0x00beadb8, 0x00d7cbd5, 0x00e1dbea,
- 0x00ece3e4, 0x00e6e2f4, 0x00d7d5f1, 0x00d0cbe9, 0x00dec9d2, 0x00dfd8de, 0x00dddfeb, 0x00e0e4f9, 0x00e9a4a1, 0x00e76043, 0x00ea4919, 0x00f56125, 0x00e4a9a4, 0x00ebdeea, 0x00e8f3fc, 0x00f2fbfc,
- 0x00fbfce6, 0x00fdfdf0, 0x00fefdf8, 0x00fbf9fe, 0x00e7dde6, 0x0094929e, 0x00535763, 0x00797c8a, 0x00a6a8ba, 0x00bfbfd5, 0x00c1bfd9, 0x00c4c3de, 0x00d2d2ed, 0x00d2d1ee, 0x00d8d7f4, 0x00dfe1fc,
- 0x00e1e2f6, 0x00cee5ff, 0x00a8c8f6, 0x0099bef6, 0x00a5b6e2, 0x00bdcef8, 0x00b4c9fb, 0x007b9de1, 0x006a8cba, 0x00a0aec0, 0x00b2b7b9, 0x00b3bcb4, 0x00b8c9e0, 0x00a4bfe7, 0x00aacbf8, 0x00c1e2ff,
- 0x00c3dcf7, 0x00becce3, 0x00cbd3e5, 0x00dde3f7, 0x00e1e8fd, 0x00eaedfc, 0x00e6e8f2, 0x00e0e0ef, 0x00e0e6ec, 0x00c5cfc4, 0x00909f84, 0x00879a6a, 0x00819c56, 0x007f9d54, 0x007d9654, 0x007c9657,
- 0x00878953, 0x007f8b4d, 0x00798f4d, 0x00718e4b, 0x0097a57c, 0x00d1cec0, 0x00decfd3, 0x00d6bed1, 0x00c1c6c0, 0x00b6cbbb, 0x00d0ddc8, 0x00f0dedf, 0x00f4d1b6, 0x00f5bca3, 0x00e6ad9c, 0x00c9a8b4,
- 0x0079a0e8, 0x004e8aea, 0x00347bdf, 0x004d84e2, 0x008ea5e3, 0x0092aaf8, 0x00688bec, 0x004c7aee, 0x003d62bc, 0x005b6ca1, 0x0095a6c2, 0x009fb2d3, 0x006d9def, 0x00618aca, 0x00a3bbd5, 0x00f1f2d0,
- 0x00fcfef9, 0x00fcfbf8, 0x00fdfefe, 0x00fdfdfe, 0x00a5ada8, 0x00243028, 0x000d1912, 0x000e1c14, 0x000e1c14, 0x000d1d14, 0x000f1d16, 0x00111d16, 0x000f1d16, 0x000f1d16, 0x00111d17, 0x00101d17,
- 0x000f1c14, 0x00101d17, 0x00101d17, 0x000f1c16, 0x00101d16, 0x00111f11, 0x000d1b0c, 0x0023302a, 0x002b3642, 0x00232b43, 0x00343960, 0x00323864, 0x001f2458, 0x0022255f, 0x002b2d6a, 0x00242862,
- 0x00252866, 0x002b2e6e, 0x002a2f73, 0x00242e72, 0x00253579, 0x0023357e, 0x00243584, 0x002a398d, 0x002c3b93, 0x00303c9a, 0x00333e9d, 0x003643a4, 0x003645a8, 0x003145a7, 0x002f45a4, 0x003046a5,
- 0x00324ba2, 0x0033499d, 0x00374897, 0x003a478c, 0x0033407c, 0x00303469, 0x002d2c55, 0x0025273d, 0x00343a2e, 0x00453e29, 0x00412d13, 0x006f4e33, 0x009e7254, 0x008f633c, 0x00845c2c, 0x007d551d,
- 0x00b24400, 0x00d74317, 0x00d23c2a, 0x00e2726d, 0x00e4d2c8, 0x00dad2cb, 0x00d9d6cd, 0x00d2d1c6, 0x00c7cfc1, 0x00dcd0c8, 0x00decdca, 0x00d9d1ce, 0x00dfd7d4, 0x00e7dedb, 0x00dfd9d7, 0x00dfdad9,
- 0x00d9d4d3, 0x00d8d3d4, 0x00e3dfe1, 0x00e3e0e3, 0x00d8d6d9, 0x00d9d9da, 0x00dfdedd, 0x00dcdbd9, 0x00d7d5d6, 0x00d9d6d7, 0x00d9d6d7, 0x00d1cecf, 0x00c6c3c4, 0x00c4c2c3, 0x00c9c7c8, 0x00cecbcc,
- 0x00c6c7c1, 0x00cbc7c2, 0x00ccc4c1, 0x00ccc5c1, 0x00c3c4c6, 0x00c6ccd0, 0x00c8cbd0, 0x00d0cdd0, 0x00b59e8c, 0x00916b51, 0x00895c39, 0x00956639, 0x00a17644, 0x00aa834b, 0x00a98648, 0x00a28140,
- 0x00947430, 0x008f6a2f, 0x008d622d, 0x008e6031, 0x008e5b33, 0x00835b2b, 0x00805b26, 0x00845824, 0x00835422, 0x007b5329, 0x00735436, 0x009f8e7c, 0x00f2f2ec, 0x00fefffc, 0x00fafdfb, 0x00fcfffa,
- 0x00ecfffa, 0x008b9db4, 0x00435783, 0x004b6491, 0x00d6e9fb, 0x00e8f5f7, 0x00ecf2ec, 0x00f6f6e8, 0x00f1f4f4, 0x00eaecf7, 0x00a4aac2, 0x00383e61, 0x0012183e, 0x000a1032, 0x00020325, 0x00020323,
- 0x0000001e, 0x0000001e, 0x00040422, 0x00080825, 0x00080b27, 0x00070a26, 0x00040622, 0x0000011e, 0x00000021, 0x00010328, 0x00050836, 0x001d245a, 0x00202d72, 0x00122573, 0x0013277b, 0x001c328c,
- 0x002c49a1, 0x003350ad, 0x00304bad, 0x002e48ad, 0x00354cb2, 0x00475bba, 0x003d4ea6, 0x00253483, 0x00131b57, 0x0003083c, 0x000a0e3f, 0x000a0d3c, 0x000c0f47, 0x00121755, 0x00151a5e, 0x00151a5f,
- 0x000f134a, 0x00080d37, 0x000a0e2a, 0x00000311, 0x00030905, 0x00000500, 0x00030704, 0x00160415, 0x003e3a53, 0x00b5c3c4, 0x00d5d8c3, 0x00e3af8e, 0x00d9392f, 0x00c73038, 0x009c2e43, 0x00714a63,
- 0x00e6e8ea, 0x00ced0cc, 0x00aeaca6, 0x00e8e7db, 0x00cecfca, 0x00585c66, 0x00363c57, 0x006e75a0, 0x0046578b, 0x00293e71, 0x001f2e69, 0x0021286c, 0x00181a49, 0x000b0521, 0x001e0d15, 0x003a1f17,
- 0x00583d27, 0x00745949, 0x004b322a, 0x003e2829, 0x005f525d, 0x00887fa6, 0x005e5482, 0x00513a58, 0x0065353b, 0x00742d36, 0x007f2935, 0x00812336, 0x00731c2d, 0x00661b21, 0x0064251e, 0x005e2a16,
- 0x007d2d1b, 0x007f3528, 0x00622017, 0x0054231c, 0x00492d29, 0x00382926, 0x008a817f, 0x00dfdbdb, 0x00cdcccb, 0x00cfcdce, 0x00d9dcda, 0x00d7e2e0, 0x00ebe3eb, 0x00fbcdc7, 0x00904d46, 0x00743737,
- 0x00253f73, 0x001f4274, 0x0088a0c4, 0x00c3bdc3, 0x00cdbfba, 0x00d1c9c6, 0x00d0ccc9, 0x00d5cecc, 0x00dad5d4, 0x00ddd9d7, 0x00dad8d6, 0x00dadbd7, 0x00dadcd7, 0x00dee0db, 0x00d9dbd6, 0x00dadbd6,
- 0x00fcfdfd, 0x00fcfffd, 0x00fafdfa, 0x00f6f9f5, 0x007b7e7b, 0x00101310, 0x00020502, 0x00040804, 0x00040605, 0x00070906, 0x000c0c0b, 0x00090a0a, 0x00060414, 0x0004040d, 0x00050606, 0x00070f04,
- 0x00282f43, 0x0039427b, 0x00242c80, 0x001b287f, 0x001b3168, 0x0012217b, 0x00121d85, 0x00142187, 0x00172380, 0x000d1d6f, 0x0004165c, 0x00031957, 0x000a204e, 0x00203860, 0x005f7799, 0x0091abc9,
- 0x00c6d9d8, 0x00cbdede, 0x00b3c4ce, 0x0099a7b5, 0x008f98ae, 0x00abafc6, 0x00b7b8d0, 0x008b8c9f, 0x00302e38, 0x0008060b, 0x00030202, 0x00030205, 0x00040502, 0x00070707, 0x00010200, 0x00050503,
- 0x00060706, 0x00060603, 0x000c0c06, 0x000b0c08, 0x00101007, 0x00110e06, 0x00120e02, 0x00110f03, 0x00101004, 0x00100e02, 0x000e0d03, 0x000e1007, 0x000b0d04, 0x00090b03, 0x00090a04, 0x00090b04,
- 0x000a0904, 0x00070902, 0x00070902, 0x00060800, 0x00070a04, 0x00040703, 0x00070705, 0x00040705, 0x00030505, 0x00010402, 0x00010604, 0x00000a07, 0x00040800, 0x00090700, 0x00080702, 0x00030805,
- 0x00000919, 0x00071d34, 0x005a799a, 0x0091b0d4, 0x0096b0d2, 0x0085a8d9, 0x00739bd0, 0x00618ac1, 0x005c86c9, 0x005986cb, 0x004e7dc3, 0x004c7ac3, 0x00517ec2, 0x005582c3, 0x005a87c4, 0x005f8cc3,
- 0x00698cbe, 0x005e80ab, 0x002f4b6e, 0x000a1c34, 0x00030410, 0x00000409, 0x00000103, 0x00000204, 0x00030203, 0x00010002, 0x00000003, 0x00000101, 0x00000000, 0x00000000, 0x00090a09, 0x00141414,
- 0x002d2d2d, 0x003e3e3e, 0x00535353, 0x00636363, 0x007b7b7b, 0x00919191, 0x00a6a6a6, 0x00bababa, 0x00d3d3d3, 0x00e6e6e6, 0x00f1f1f1, 0x00f7f7f7, 0x00fafafa, 0x00fbfbfb, 0x00fdfdfd, 0x00fdfdfd,
- 0x00f5fffb, 0x00fbfdfc, 0x00fdfefd, 0x00fdf9fc, 0x00fefeff, 0x00fdfeff, 0x00f8fefd, 0x00fafefa, 0x00ebe4df, 0x0090817c, 0x0034140b, 0x00571f01, 0x00783615, 0x00823e1b, 0x00723717, 0x005d2e12,
- 0x003e240a, 0x00391c03, 0x0050280c, 0x006f3513, 0x00963e19, 0x009f481e, 0x00a0491d, 0x009f491a, 0x009e4a1c, 0x00984b20, 0x008f4c27, 0x007d4526, 0x005d3b2c, 0x00403029, 0x00241d21, 0x00191b25,
- 0x002f2b32, 0x0038383d, 0x004c4c51, 0x00545558, 0x005f605f, 0x00676865, 0x00706d6a, 0x006e6965, 0x00958384, 0x00b3a09c, 0x00b18c84, 0x008c3e32, 0x005b3221, 0x00674539, 0x00623b36, 0x00512128,
- 0x002e0f1e, 0x000d101a, 0x000d1f29, 0x00395462, 0x009398ae, 0x008991b6, 0x00555a80, 0x00595e81, 0x00adb0ca, 0x00c3c8dd, 0x00b0b4c8, 0x009ca7bc, 0x007e93b6, 0x006b87b7, 0x006281be, 0x005e82c2,
- 0x005563ae, 0x00283a7c, 0x003f568c, 0x007f99c3, 0x00aecae1, 0x00c3ddeb, 0x00d5ebef, 0x00d4e5e7, 0x00d5d2e0, 0x00d9d5e3, 0x00d9d7e1, 0x00d1d9d7, 0x00cacbcd, 0x00bcbac0, 0x00c8c3c9, 0x00cbc8c7,
- 0x00c2c0bc, 0x00c4c8c7, 0x00c4ced7, 0x0094a0b8, 0x00344471, 0x001d3b6d, 0x0018386a, 0x001c2e5b, 0x004c506d, 0x006a6d86, 0x00343650, 0x001c233e, 0x001f2b49, 0x001e2944, 0x00171e37, 0x004d5268,
- 0x00d9d4d8, 0x00fcfafb, 0x00fffefe, 0x00fdfbfb, 0x00f7f7f7, 0x00eef1f0, 0x00f6f8f6, 0x00fbfffb, 0x00ffffff, 0x00fbfeff, 0x00f7f7f8, 0x00b1aeae, 0x00302e2e, 0x001c1b1b, 0x00211f21, 0x00232223,
- 0x00242127, 0x00211e24, 0x00232128, 0x0025232a, 0x0027252c, 0x00252429, 0x00262528, 0x00282629, 0x002d2b29, 0x002e2f28, 0x0031312b, 0x0030312c, 0x002b2e2a, 0x00292a29, 0x0029282b, 0x0029272c,
- 0x00302b26, 0x002d2a22, 0x002a2820, 0x0025231c, 0x00201d19, 0x00201b1a, 0x00211a1c, 0x001f1819, 0x001e1a19, 0x001d1919, 0x001e1b19, 0x00232018, 0x002e2a22, 0x00353129, 0x0036322b, 0x0035312a,
- 0x002d2821, 0x00242017, 0x001d1910, 0x001c180d, 0x0019160d, 0x001a1715, 0x001a181a, 0x00181719, 0x00191b19, 0x00171a18, 0x00191b18, 0x001a1c15, 0x001f1e16, 0x00221e14, 0x002c251c, 0x00342b22,
- 0x004c3925, 0x0057462f, 0x0061513b, 0x00625541, 0x00665b4a, 0x00696254, 0x006c675c, 0x00706d62, 0x00777871, 0x00787a72, 0x00787973, 0x00767772, 0x00737370, 0x0070716e, 0x006c6d6b, 0x00666865,
- 0x005e5e5f, 0x00505152, 0x003e3e41, 0x002f2e33, 0x00212125, 0x00242425, 0x00343332, 0x0041413f, 0x00524c47, 0x00575049, 0x005e5249, 0x005e4f44, 0x005c4a3d, 0x005a4738, 0x00584232, 0x00523d2b,
- 0x003e3828, 0x003a3528, 0x007b766d, 0x00cac6c1, 0x00d7d5d2, 0x00dcd8d8, 0x00e4e3e1, 0x00eaece8, 0x00ebeee9, 0x00e8ebe4, 0x00ecece8, 0x00f2f1ed, 0x00f5f8f8, 0x00f4fbfc, 0x00e4ecf2, 0x00ccd7de,
- 0x00e2eaf1, 0x00dde2e4, 0x00dcdedd, 0x00b6b2ad, 0x005a4f47, 0x00343025, 0x00332f20, 0x00413a2a, 0x004e4537, 0x005b5244, 0x0074665c, 0x00897b73, 0x009b8e8c, 0x00a09797, 0x00a59ea2, 0x00a19da1,
- 0x00949491, 0x0088877f, 0x007b786f, 0x00757262, 0x00726d59, 0x0079755e, 0x0074745c, 0x006a7050, 0x00939a7e, 0x00dce9cb, 0x00fbfff0, 0x00fefeff, 0x00fdfdfd, 0x00fcfefa, 0x00d7d7d1, 0x0089847d,
- 0x006d6f69, 0x008b9d9f, 0x009cc1d0, 0x008fcbe8, 0x0077ceff, 0x006cc9fe, 0x0063c5ff, 0x005fbfff, 0x0057a9fd, 0x004695ee, 0x003c7edc, 0x00386fd1, 0x00375ebf, 0x003854b3, 0x003649a7, 0x0036429f,
- 0x00274097, 0x00264097, 0x00264096, 0x00263d99, 0x00273a96, 0x00253593, 0x00213188, 0x001a2a7d, 0x00182374, 0x001f2a78, 0x00243383, 0x001d2e8d, 0x0019287e, 0x00162571, 0x00142160, 0x00131f57,
- 0x00101a4b, 0x000e1743, 0x00151b4c, 0x0015154b, 0x00212056, 0x00494679, 0x00aeadd4, 0x00e7e7fb, 0x00f0edfb, 0x00f1edf1, 0x00efe9e6, 0x00ede9df, 0x00ede9df, 0x00ebe7e0, 0x00edeae6, 0x00edebe9,
- 0x00eceded, 0x00ededec, 0x00f1eeee, 0x00f3eeed, 0x00f6f1ef, 0x00f8f2ef, 0x00faf2f0, 0x00f6efec, 0x00f4ecea, 0x00f1e9e4, 0x00f1e8e5, 0x00ede8e1, 0x00f3e2da, 0x00f2e2d8, 0x00f0e3e0, 0x00ebe8e9,
- 0x00e7e7f4, 0x00f3d8da, 0x00e7a49b, 0x00e06a50, 0x00fe4f21, 0x00f55325, 0x00eb653c, 0x00f29c81, 0x00fde8ec, 0x00ebebf8, 0x00ebf1fe, 0x00eae9fa, 0x00e6d3dd, 0x00d8c6d3, 0x00dbced9, 0x00e2dbe9,
- 0x00f0e1e5, 0x00e5e0f2, 0x00cbcce8, 0x00c6c7e6, 0x00dccfe0, 0x00dbd6e3, 0x00ded9e9, 0x00e1d6e7, 0x00e38c84, 0x00dd4f2a, 0x00ea4917, 0x00ef632e, 0x00e8aeac, 0x00eee1eb, 0x00edf6fe, 0x00f2fafb,
- 0x00fefceb, 0x00fafbee, 0x00fdfefa, 0x00fbfdfc, 0x00ded7e0, 0x008a8993, 0x005c5e6b, 0x00828490, 0x00abadc0, 0x00c0c0d8, 0x00b8b8d3, 0x00babad5, 0x00d2d1ec, 0x00d4d3ee, 0x00dbdaf4, 0x00d9d9f2,
- 0x00bfc9fe, 0x0096b6f8, 0x008db9fa, 0x0086b5f5, 0x00a1b7ee, 0x00bdcffc, 0x00b1c4ff, 0x007fa0e7, 0x00647daf, 0x00858ba1, 0x00b0afb7, 0x00afb2b7, 0x00bfcdea, 0x00c0d8f8, 0x00bbd8ff, 0x00bed7fa,
- 0x00b4c4e3, 0x00b5c1d4, 0x00d2d6ea, 0x00dee3f5, 0x00dfe3ff, 0x00dfeefb, 0x00e3eef7, 0x00dbdceb, 0x00efe4f6, 0x00e3e1e2, 0x00a2af9c, 0x00809c74, 0x0079a462, 0x0081a25e, 0x00839759, 0x008e935d,
- 0x00928a56, 0x00848b4e, 0x007f9150, 0x00708e4d, 0x008e9e79, 0x00c9c4bb, 0x00ecdce1, 0x00edd1e1, 0x00dfd8d6, 0x00cfd6c3, 0x00dbd1ba, 0x00eeb69c, 0x00d78e74, 0x00bc6f5e, 0x009f646a, 0x0089698d,
- 0x00657fdb, 0x00487ce6, 0x003d7aea, 0x00437bdc, 0x006284d0, 0x006d88e0, 0x00677fe6, 0x00566fe6, 0x004e56b3, 0x00575895, 0x00777dad, 0x007388c0, 0x005b89ef, 0x006186d1, 0x00a6bad9, 0x00f5f3d3,
- 0x00fefefa, 0x00fcfbf8, 0x00fdfdfd, 0x00fdfdfd, 0x00a5ada8, 0x00253029, 0x000e1a13, 0x000d1b13, 0x000f1c15, 0x000d1d15, 0x000f1d16, 0x00101d16, 0x000f1d16, 0x000f1d16, 0x00101d17, 0x00101d17,
- 0x00101d16, 0x000f1c15, 0x00111e17, 0x000f1c15, 0x00111e17, 0x00111f13, 0x000e1c11, 0x00182521, 0x002e3844, 0x002e374c, 0x002f3658, 0x00353b65, 0x0023275a, 0x0021245b, 0x00252861, 0x00272b63,
- 0x00252967, 0x00242a67, 0x00262e6e, 0x00263273, 0x002a397e, 0x002b3a86, 0x00323f90, 0x00394499, 0x003940a0, 0x003940a2, 0x003f42a3, 0x003b429b, 0x003a4399, 0x00364397, 0x00394594, 0x0038468e,
- 0x00384283, 0x00313b71, 0x002e3562, 0x002c2f55, 0x00242741, 0x00221b31, 0x00241721, 0x00231817, 0x004c432a, 0x006c5c3c, 0x00684e2e, 0x007c573c, 0x00986a53, 0x008c5c43, 0x007b4c2c, 0x00774922,
- 0x00b44000, 0x00d74216, 0x00d3412c, 0x00de746d, 0x00decfc5, 0x00d4cac4, 0x00d8d1cb, 0x00d3cbc4, 0x00c8cdc0, 0x00ded2ca, 0x00e2d1cd, 0x00d6cdc9, 0x00e1dad7, 0x00e7dfde, 0x00e0dad9, 0x00ddd8d7,
- 0x00d6cfd2, 0x00d3cecf, 0x00e0dcdd, 0x00e1dfe0, 0x00d6d4d6, 0x00d7d6d7, 0x00dbdad9, 0x00dadad8, 0x00d7d2d5, 0x00d5d2d4, 0x00d5d3d4, 0x00cfcdcd, 0x00c9c5c6, 0x00c7c4c4, 0x00c7c5c6, 0x00c6c7c6,
- 0x00c7c6c6, 0x00cbc9c5, 0x00cac7c3, 0x00c6c3bd, 0x00c6c7c7, 0x00c5c8ca, 0x00cbcdd0, 0x00d9d6d4, 0x00c6ab99, 0x00977255, 0x008e5f39, 0x009a6736, 0x00a87a43, 0x00b1874b, 0x00b48b4b, 0x00ae8845,
- 0x00a27d3a, 0x00997236, 0x00946932, 0x00916434, 0x00905e35, 0x00865d34, 0x00845c32, 0x00865729, 0x00835026, 0x00784e25, 0x00725335, 0x00a59382, 0x00fbf9f5, 0x00fdfdfb, 0x00fcfefe, 0x00fcfefb,
- 0x00eefcff, 0x00849ab8, 0x004d6499, 0x004862a7, 0x00abbee3, 0x00e6f4fa, 0x00f1f7ed, 0x00f6fae0, 0x00f6f7f2, 0x00f0f3f9, 0x00e9edfc, 0x009097b0, 0x00121939, 0x000c1230, 0x00030823, 0x0000021d,
- 0x0002011c, 0x00010119, 0x00000017, 0x00000016, 0x0004051d, 0x00060720, 0x00070820, 0x0004051c, 0x0001021f, 0x00010322, 0x0003042b, 0x00161b48, 0x00232e6b, 0x0016266d, 0x00152777, 0x0013277e,
- 0x00233d95, 0x002a449f, 0x002a44a2, 0x00253fa1, 0x002b42a7, 0x002c40a1, 0x0030419a, 0x002f3e8d, 0x0027306e, 0x00081048, 0x00070d44, 0x000c1047, 0x0010134f, 0x00141a5d, 0x00181d63, 0x0013195d,
- 0x00080b48, 0x000b113d, 0x000e132f, 0x00080b1a, 0x00090f0a, 0x00030804, 0x000b0c0c, 0x001d0a1d, 0x005d4f6b, 0x00c7c8c9, 0x00e0d2c1, 0x00d3997a, 0x00dc413d, 0x00c63848, 0x0087203e, 0x00623c61,
- 0x00dad9dd, 0x00eceee9, 0x00f2f3e9, 0x00f3f5e6, 0x00c3c5c3, 0x00696c7b, 0x00636886, 0x00737aa6, 0x0037487e, 0x00283b71, 0x0021316e, 0x001e286a, 0x0014163f, 0x000c0217, 0x002e1919, 0x003e200e,
- 0x00552f17, 0x00634633, 0x00533b2f, 0x002f2223, 0x00746e7f, 0x00697db1, 0x003d5397, 0x00314278, 0x003c3559, 0x003a264a, 0x00412146, 0x0044193f, 0x00330d2b, 0x003b1d2e, 0x0051383d, 0x004a3a30,
- 0x00521f15, 0x004e231a, 0x0045211b, 0x00412623, 0x003c2c2c, 0x002d2527, 0x00766f75, 0x00ded9e2, 0x00d8cfd9, 0x00ccc1c9, 0x00ddd9db, 0x00d4dfdc, 0x00e6dfea, 0x00f5d1ce, 0x00945956, 0x006a3335,
- 0x00243971, 0x0019386c, 0x007d91b3, 0x00c4bcc1, 0x00d0c1bc, 0x00cdc6c5, 0x00cfcbc9, 0x00d3cdcc, 0x00d7d4d2, 0x00d6d3d1, 0x00d6d4d3, 0x00d4d4d1, 0x00d7d8d5, 0x00dddfdc, 0x00d7d9d6, 0x00d4d6d3,
- 0x00fbfffd, 0x00fcfffc, 0x00fbfdfb, 0x00e9ebe8, 0x00636662, 0x000b0f0b, 0x00040704, 0x00060805, 0x00040905, 0x00090b09, 0x000a0909, 0x00080a07, 0x00040213, 0x00090916, 0x000c0f14, 0x000d1610,
- 0x0028334a, 0x00424a8a, 0x0023308a, 0x001e2c91, 0x0017327c, 0x0019298a, 0x001f2892, 0x001b278c, 0x001a2889, 0x001e2c85, 0x00182877, 0x0011226b, 0x0008205c, 0x00051e55, 0x00163363, 0x002b4776,
- 0x0063797a, 0x009aafb3, 0x00cde0e9, 0x00d0def1, 0x00abb3cd, 0x008d90b0, 0x009b9cb8, 0x00c1c3d9, 0x00a1a1ab, 0x00494850, 0x00100f12, 0x00030304, 0x00040201, 0x00070605, 0x00030100, 0x00090504,
- 0x000a0702, 0x000e0a05, 0x000f0c05, 0x000e0e08, 0x00121109, 0x00141006, 0x00161002, 0x00151202, 0x00101103, 0x000f1004, 0x000f0f06, 0x00101008, 0x000d0d06, 0x000a0c03, 0x000a0e04, 0x00090d04,
- 0x000c0a02, 0x000b0b02, 0x000a0a01, 0x000a0a01, 0x00070800, 0x00080903, 0x00060603, 0x00020301, 0x00030303, 0x00030506, 0x00000804, 0x00010e06, 0x00020a00, 0x00030900, 0x00010801, 0x00000807,
- 0x000a1b31, 0x00385a79, 0x008bacd2, 0x009fbfea, 0x00aac6ef, 0x00b6d4fb, 0x00aecffa, 0x008fb3ed, 0x0077a1e4, 0x006794de, 0x004878c5, 0x004678c9, 0x00487ccb, 0x00447bc7, 0x004177bf, 0x003c72b7,
- 0x004576b3, 0x00537eb9, 0x00557faf, 0x0042628b, 0x0012283f, 0x00000c1e, 0x0001040f, 0x0002050a, 0x000a0908, 0x000c0708, 0x00050202, 0x00010301, 0x00060707, 0x00070707, 0x00030504, 0x00030303,
- 0x00020202, 0x00040404, 0x00060606, 0x00080808, 0x000c0c0c, 0x00171717, 0x00232323, 0x00343434, 0x004c4c4c, 0x00606060, 0x00747474, 0x008b8b8b, 0x00a1a1a1, 0x00b3b3b3, 0x00cbcbcb, 0x00d8d8d8,
- 0x00e8f1ee, 0x00eef0f0, 0x00f7f9f8, 0x00fdfbfd, 0x00fcfbfe, 0x00fcfbfc, 0x00f6fcfb, 0x00fcfffd, 0x00dad1ca, 0x00786863, 0x00351208, 0x00581e01, 0x0079330f, 0x00813b18, 0x00763814, 0x0061310f,
- 0x00462b0d, 0x00432608, 0x00532c0c, 0x006e350f, 0x00933c13, 0x00a04518, 0x009f4112, 0x009c3f0e, 0x00993f11, 0x0096441b, 0x008c4421, 0x00773920, 0x00552e27, 0x00382426, 0x00211825, 0x001b1d30,
- 0x00353236, 0x00434146, 0x005a5a5e, 0x00646567, 0x006b6c6b, 0x006f706c, 0x00716f69, 0x006f6a64, 0x006d605b, 0x007b6967, 0x0099766a, 0x009b513f, 0x00a3644e, 0x00be8074, 0x00b3736f, 0x007f4044,
- 0x00331820, 0x000f171e, 0x000a252c, 0x00415d6f, 0x009599b7, 0x007a7ea4, 0x00727597, 0x009497b6, 0x00c2c3dd, 0x00cbcce3, 0x00cfd1e3, 0x00d0d7ee, 0x00c4d3f2, 0x00afc3ee, 0x008ca4d7, 0x007b97d2,
- 0x007f8bd4, 0x007884c0, 0x008f9ac5, 0x00bbc9dd, 0x00d0e0dc, 0x00d1e0d4, 0x00d6e1d6, 0x00d7deda, 0x00d8d9e8, 0x00d8d7ef, 0x00cfd1e4, 0x00d0d7d9, 0x00cccfd4, 0x00c2bec9, 0x00c4bfc6, 0x00cac6c6,
- 0x00c5beb9, 0x00c3bfbe, 0x00cacdd0, 0x00acb1c4, 0x0052597d, 0x00253f6f, 0x00193969, 0x001d2e58, 0x004d556c, 0x00686b80, 0x00282a3f, 0x001b2138, 0x00232c46, 0x00283048, 0x0022273c, 0x004e5063,
- 0x00d2cdd0, 0x00faf8fa, 0x00fffefe, 0x00fdfbfb, 0x00f7f7f7, 0x00eff1f0, 0x00f5f7f6, 0x00fbfefb, 0x00fefffe, 0x00fbfffd, 0x00f9faf7, 0x00bbb7b5, 0x0037322f, 0x00221d1b, 0x00282221, 0x002f2826,
- 0x0031282c, 0x0032292d, 0x00352d31, 0x00363133, 0x00322d2f, 0x002e2c2b, 0x00282a27, 0x00282926, 0x00292a26, 0x002c2e28, 0x002f312c, 0x002e302d, 0x002a2c2c, 0x00272929, 0x0027272b, 0x0029272d,
- 0x00312c25, 0x00322f27, 0x00312e26, 0x002c2a23, 0x0026221f, 0x00221d1c, 0x001e1919, 0x001c1717, 0x001b1816, 0x001b1918, 0x001f1c19, 0x00272219, 0x00342d23, 0x003c352b, 0x003f372e, 0x003e362d,
- 0x00373026, 0x002e261d, 0x00221c12, 0x001d180e, 0x001b1510, 0x001a1715, 0x0019191b, 0x0019181a, 0x00181b18, 0x00191d18, 0x001a1d16, 0x001e2117, 0x00222216, 0x00252215, 0x002e271c, 0x00362c22,
- 0x00503c25, 0x005b4831, 0x0064533c, 0x00655641, 0x00635845, 0x00675f4f, 0x00666153, 0x006d695c, 0x0074756a, 0x0077786e, 0x00767770, 0x00747470, 0x0071716f, 0x006f706d, 0x006c6d6a, 0x00676966,
- 0x005e5e5f, 0x00525353, 0x00414144, 0x00323236, 0x00252428, 0x00272627, 0x00363635, 0x00454543, 0x0055504c, 0x005b554f, 0x005f574f, 0x005c5146, 0x0056483c, 0x00514033, 0x004d3a2b, 0x00493525,
- 0x00312e1e, 0x00312e21, 0x0077756c, 0x00cbc9c3, 0x00dddad8, 0x00e1dcdb, 0x00e1dedb, 0x00ebeae4, 0x00f3f3ea, 0x00f1f1e8, 0x00edebe2, 0x00ebe8e3, 0x00eeefeb, 0x00f3f7f9, 0x00d8dee2, 0x00bfc8cf,
- 0x00dee9ee, 0x00e4ecee, 0x00d5d7d5, 0x0098928f, 0x003c3227, 0x002a2722, 0x002d2d25, 0x003a382d, 0x00464036, 0x00524a41, 0x00665b53, 0x007c706b, 0x008a7d7a, 0x008e8181, 0x008e8283, 0x008a7e80,
- 0x00847778, 0x00817470, 0x007d7264, 0x00817763, 0x00867d5e, 0x0090886c, 0x00898668, 0x00787a5c, 0x00969b83, 0x00dde5d4, 0x00fafcf5, 0x00fcfbfb, 0x00f9fdfa, 0x00fdfffa, 0x00dfd9d2, 0x0090817d,
- 0x005b544d, 0x00777d7e, 0x0093afba, 0x0095c8e3, 0x007bcff4, 0x0069cbf9, 0x005ac6fe, 0x0055b5fc, 0x004999ef, 0x003b7bd9, 0x002f65c5, 0x00345bc1, 0x00334eb1, 0x003348a6, 0x002e429b, 0x00303d95,
- 0x00263d98, 0x00263d98, 0x00253c94, 0x00273b95, 0x00283993, 0x00293591, 0x00242f85, 0x001c2678, 0x0019216d, 0x001f2770, 0x00262f80, 0x001f2d90, 0x001b2981, 0x00152372, 0x00111e62, 0x00101c58,
- 0x00151d4f, 0x000f1645, 0x00151948, 0x0010113f, 0x00494776, 0x009d9ac1, 0x00dcdaf6, 0x00e5e4f8, 0x00e9e4ee, 0x00f3edee, 0x00e7e1da, 0x00e9e4d7, 0x00e9e4d8, 0x00ece8e1, 0x00ece8e5, 0x00ece9eb,
- 0x00ececeb, 0x00efedec, 0x00f1edec, 0x00f4efed, 0x00f4efec, 0x00f7f1ed, 0x00f8f0ec, 0x00f5ece8, 0x00f2ebe6, 0x00efe6e2, 0x00eee4df, 0x00eae5e0, 0x00eedcd2, 0x00eedbd3, 0x00eddfd9, 0x00ebe6e6,
- 0x00e3e5ee, 0x00f5dbde, 0x00e8a89e, 0x00e06d52, 0x00fd4e20, 0x00f85325, 0x00eb5f3a, 0x00f09479, 0x00fce6e9, 0x00ececf7, 0x00eaeffb, 0x00eae9fa, 0x00ead8e2, 0x00dbcad6, 0x00dacdd8, 0x00ded8e8,
- 0x00f0dee1, 0x00e5dbee, 0x00cccde7, 0x00cacfef, 0x00d9d7ed, 0x00d8d4e6, 0x00e4d9e5, 0x00dfc3c9, 0x00d46f5c, 0x00df491f, 0x00ed501a, 0x00ec693f, 0x00e9b7b6, 0x00f0e3f0, 0x00f0f6fd, 0x00f5f9fb,
- 0x00fefce9, 0x00f9fbee, 0x00f8fdf7, 0x00f8fdfd, 0x00d3d0d3, 0x007c7d86, 0x0061636e, 0x008b8d99, 0x00b0b4c6, 0x00c4c7dd, 0x00b3b5cf, 0x00b7bad5, 0x00ced0ea, 0x00d7d8f2, 0x00d9d9f1, 0x00c5c6db,
- 0x00758acf, 0x00658ddd, 0x008cc1f9, 0x008cc1fb, 0x00b2caf9, 0x00d0e4ff, 0x00bcd1ff, 0x009ab9f9, 0x008299c9, 0x008e8fa2, 0x00aba6ab, 0x00bcbdca, 0x00cddcf5, 0x00bcd1f5, 0x00a7bfec, 0x00a3b8e7,
- 0x00c0c9e8, 0x00d0d6e9, 0x00e1e5f4, 0x00e2e1f6, 0x00dbe2fc, 0x00d8ecf9, 0x00dcf0f9, 0x00dbdef1, 0x00eadcf5, 0x00ebe5f0, 0x00b8c7bc, 0x0083a583, 0x0070a162, 0x0081a362, 0x0087975a, 0x0094905d,
- 0x00929154, 0x00869454, 0x007b9754, 0x0070975a, 0x00889d7a, 0x00c8c2bc, 0x00f5e0e6, 0x00fad4e4, 0x00ebcdcd, 0x00cab7ac, 0x00b9927c, 0x00bf6f53, 0x00994d40, 0x007c434c, 0x00754b6d, 0x006c5b9a,
- 0x005367c8, 0x005070db, 0x00557de8, 0x004875d9, 0x003a5cb5, 0x003b55b4, 0x003f53b2, 0x004b54c0, 0x00675ab1, 0x007666ac, 0x006f6db1, 0x00475bb1, 0x002658d8, 0x003a5fbf, 0x0094aad5, 0x00f2efdd,
- 0x00fdfef8, 0x00fcfcf8, 0x00fcfdfb, 0x00fdfdfd, 0x00a6ada8, 0x00253029, 0x000f1a15, 0x000d1b15, 0x000e1c15, 0x000e1d15, 0x000e1e16, 0x000f1d16, 0x00101d16, 0x00101d16, 0x00101d16, 0x00111d17,
- 0x00101d15, 0x00111e17, 0x00101e16, 0x000f1d15, 0x00101d17, 0x00111f16, 0x000d1a11, 0x000e1b16, 0x0029353a, 0x0037424f, 0x002f3852, 0x00333b5e, 0x002b2f5f, 0x0025285c, 0x0025285f, 0x002a2e67,
- 0x00232c68, 0x00242d6b, 0x0024306f, 0x00273477, 0x002b3981, 0x002e3b89, 0x00313c8f, 0x00384197, 0x003a419c, 0x003b3d9d, 0x003c3d97, 0x00383986, 0x00343a7f, 0x00333778, 0x002f3369, 0x002b2f5a,
- 0x0025264b, 0x0026243d, 0x0024202d, 0x00241f21, 0x00261e1a, 0x002d1914, 0x00361e0f, 0x00402811, 0x0067502a, 0x00836842, 0x0081643d, 0x00835d40, 0x008b5f4b, 0x0085523e, 0x007a452e, 0x007b4428,
- 0x00b84001, 0x00d63e14, 0x00cf3d26, 0x00dc736c, 0x00d8cbc1, 0x00cfc6bf, 0x00cec5c1, 0x00cfc6c0, 0x00c7cabd, 0x00dacec6, 0x00e4d5d0, 0x00dad1cd, 0x00e1d9d7, 0x00e8e1df, 0x00dcd7d5, 0x00d7d1d1,
- 0x00d0cccc, 0x00ccc9c8, 0x00dbd9d9, 0x00dfdedf, 0x00d4d1d4, 0x00d4d1d4, 0x00d9d6d8, 0x00d8d6d6, 0x00d3ced0, 0x00cfcccd, 0x00cfcecf, 0x00d0cecf, 0x00cdc9cb, 0x00cbc7c9, 0x00cbc9c9, 0x00c8c8c7,
- 0x00c5c9c9, 0x00c8cbc8, 0x00c7c7c1, 0x00c4c3be, 0x00c7c8c6, 0x00c5c8ca, 0x00cfd0d0, 0x00e0dcd7, 0x00c9b09a, 0x009e7b5a, 0x009a6b42, 0x00a9733f, 0x00b6844a, 0x00bd8e4f, 0x00ba8d4a, 0x00b38944,
- 0x00a57e3a, 0x009e7539, 0x00976d35, 0x00956737, 0x00905f35, 0x00865b39, 0x00825936, 0x0082522b, 0x007e4b24, 0x00754b25, 0x00765739, 0x00ae9d8b, 0x00fefcf9, 0x00fcfbfa, 0x00fcfdfe, 0x00fcfdfd,
- 0x00e9fdfb, 0x00819ac0, 0x00415f9e, 0x004865bb, 0x00647fb8, 0x00d1e2f6, 0x00f2fef1, 0x00f1f9d6, 0x00f8fbed, 0x00eef2f5, 0x00f1f4fd, 0x00e2e8f7, 0x00646a80, 0x0010152a, 0x00040a1f, 0x0003071c,
- 0x00030419, 0x00010215, 0x00000112, 0x00020213, 0x00000013, 0x00020015, 0x00060419, 0x00060418, 0x00030317, 0x00010219, 0x00030222, 0x0011143c, 0x001b255c, 0x00162568, 0x00162873, 0x00132779,
- 0x001a3187, 0x002f479f, 0x003d55b0, 0x003851b1, 0x00334aad, 0x003146a6, 0x004051ab, 0x004252a2, 0x003c4988, 0x0018215e, 0x00010a45, 0x00050845, 0x000a0f4e, 0x0011155c, 0x00131a61, 0x0011195d,
- 0x00030b47, 0x00191f4e, 0x00141d38, 0x000f1525, 0x0008100d, 0x00060e0c, 0x00121419, 0x00241127, 0x006d5d72, 0x00d6cdcd, 0x00f1d9c9, 0x00d3977d, 0x00cf3d3f, 0x00b8384f, 0x006d1239, 0x00583a69,
- 0x00dddcdb, 0x00eceee7, 0x00e9ecde, 0x00ecefe0, 0x00b4b8b9, 0x007e8395, 0x008288ab, 0x00535c8b, 0x00344580, 0x00273a74, 0x00182d68, 0x00182862, 0x00090c2c, 0x00251724, 0x004c342c, 0x00512f15,
- 0x00562c0e, 0x005b3b27, 0x004a352a, 0x00382d34, 0x0081849e, 0x004f71ac, 0x0028549e, 0x001f488a, 0x00233c70, 0x00263168, 0x00293060, 0x00221e50, 0x0020193b, 0x003a354b, 0x004a4a4e, 0x004c4c47,
- 0x004b382f, 0x0044352d, 0x003d322c, 0x003a332f, 0x00373332, 0x00333234, 0x006e6c73, 0x00dbd6df, 0x00e0d6e0, 0x00d1c0cd, 0x00dcd3d8, 0x00dde2df, 0x00e1dfe9, 0x00f5d7d7, 0x009c6867, 0x0069343b,
- 0x0022396e, 0x001d3a6b, 0x007488a5, 0x00bab0b3, 0x00cec0bc, 0x00cbc1c3, 0x00ccc8c7, 0x00d2cccc, 0x00d2cfce, 0x00d3d0cf, 0x00d6d4d3, 0x00d0d0ce, 0x00d2d2d1, 0x00dbdcdb, 0x00d6d7d6, 0x00d0d2d1,
- 0x00fefffe, 0x00fcfefd, 0x00fcfefd, 0x00d9dcda, 0x004c4e4b, 0x00090b07, 0x00050803, 0x00060904, 0x00090d0a, 0x00090d08, 0x00040603, 0x00020700, 0x00070714, 0x00161726, 0x00202430, 0x00111e1c,
- 0x001a2340, 0x002c3a7d, 0x0023308d, 0x0021359b, 0x000f287f, 0x000f2367, 0x00182763, 0x00172968, 0x00192a70, 0x001d2f79, 0x001a2b7b, 0x00192e7f, 0x00172c86, 0x00112a86, 0x000c2486, 0x000a2285,
- 0x001f305a, 0x002f4062, 0x0061708f, 0x00aab9d0, 0x00dae6fb, 0x00cbd4e7, 0x00999fb2, 0x00838995, 0x00bbbac6, 0x00b2b2bd, 0x00525259, 0x00161716, 0x00010002, 0x00070405, 0x00060301, 0x00090401,
- 0x00110703, 0x000f0801, 0x00130e0a, 0x0014120d, 0x0015150e, 0x00171306, 0x00191405, 0x00161505, 0x0015130a, 0x0011120a, 0x000e120c, 0x000b100c, 0x00090f09, 0x00070e07, 0x00050c04, 0x00060d04,
- 0x000b0e05, 0x00080d03, 0x000a0b01, 0x000b0900, 0x000b0800, 0x000b0600, 0x000a0503, 0x00040303, 0x00050308, 0x00030407, 0x00030809, 0x00010c04, 0x00020a03, 0x00000800, 0x00010804, 0x00000609,
- 0x00284059, 0x007796b3, 0x00a5c6eb, 0x00b6d7f8, 0x00c9e3ff, 0x00c2defd, 0x009ebbe9, 0x007b9ed2, 0x00668ed1, 0x005484cd, 0x004377c6, 0x003e76ca, 0x003c7acc, 0x003c7ccd, 0x003c7ccc, 0x00397cc9,
- 0x002f67b7, 0x002e66af, 0x003b73b4, 0x004d7cb7, 0x00335982, 0x0012284a, 0x00000a1e, 0x0000030c, 0x00070405, 0x000a0301, 0x000b0604, 0x00060707, 0x00020203, 0x00020201, 0x00010302, 0x00020202,
- 0x00040404, 0x00030303, 0x00040404, 0x00010101, 0x00010101, 0x00000000, 0x00000000, 0x00000000, 0x00010101, 0x00010101, 0x00090909, 0x00131313, 0x00262626, 0x00333333, 0x00484848, 0x00565656,
- 0x006d7571, 0x00808080, 0x00c3c0c1, 0x00f5f4f5, 0x00fefdfd, 0x00fbfefc, 0x00f5fbf9, 0x00fbfefd, 0x00cabfbc, 0x0061504a, 0x003b150d, 0x00601f02, 0x007e3211, 0x00833a16, 0x007e3917, 0x006b3611,
- 0x00583415, 0x00532f0d, 0x00613410, 0x0076360d, 0x00963909, 0x009f3f09, 0x009d3904, 0x009b3602, 0x009f3c0b, 0x009b4013, 0x0091411b, 0x007b371c, 0x00552a23, 0x00372024, 0x00221927, 0x00212336,
- 0x00403d42, 0x00504e52, 0x00656466, 0x006c6c6c, 0x006e6f6c, 0x006f706b, 0x0067655d, 0x00615b53, 0x00574c46, 0x0051443b, 0x0063463d, 0x00744835, 0x009c5b53, 0x00b36968, 0x00b76871, 0x007a3645,
- 0x0026131d, 0x000a181d, 0x001f3741, 0x006a8393, 0x00b6b3d3, 0x009799b5, 0x009d9eb8, 0x00bbbdd2, 0x00d0cddf, 0x00cfcedb, 0x00d7d4e3, 0x00d5d6e5, 0x00d6dcf5, 0x00d5e0fa, 0x00c2d2f4, 0x00aabfe6,
- 0x00bbc1f4, 0x00c8cdf3, 0x00ced0e7, 0x00d8d8dd, 0x00e0e0d1, 0x00dddccb, 0x00e0e0d1, 0x00dadbd4, 0x00d6d8e5, 0x00d3d9ec, 0x00d1d5e6, 0x00cfd5da, 0x00d0d0da, 0x00c3c1ce, 0x00c2bbc6, 0x00c9c3c6,
- 0x00c8bbba, 0x00c4beb9, 0x00cdc9cb, 0x00bcbbc5, 0x00706c8b, 0x00283d69, 0x00173563, 0x00192e54, 0x0051546c, 0x0065687a, 0x002b2e3e, 0x00262b3d, 0x002e334a, 0x003c3f53, 0x003b394a, 0x005e5967,
- 0x00cdcacb, 0x00f7f7f8, 0x00fffeff, 0x00fcfafb, 0x00f9f8f8, 0x00eeefee, 0x00f7f7f6, 0x00fcfdfd, 0x00ffffff, 0x00fbfffd, 0x00fcfdfa, 0x00c1bdb9, 0x003d3832, 0x00241d17, 0x002f241e, 0x00372b24,
- 0x003f302f, 0x00423434, 0x00493c3c, 0x00463a3a, 0x003e3432, 0x0032302b, 0x002b2d25, 0x0026281f, 0x00242721, 0x00272b26, 0x002c2e2c, 0x002d2d2c, 0x0029292b, 0x0026262b, 0x0025272e, 0x0025282f,
- 0x00372f29, 0x003a342c, 0x003f3a32, 0x003c3730, 0x0037332d, 0x002c2925, 0x00242320, 0x001d1e1b, 0x001d191b, 0x001a181a, 0x001d1b1a, 0x00262118, 0x00352e23, 0x00403a2c, 0x00473f31, 0x00473e2f,
- 0x0043392f, 0x00372d22, 0x00281f17, 0x00211a13, 0x001d1714, 0x001c1918, 0x001b1b19, 0x00191917, 0x001d1d1b, 0x00191c16, 0x001c2117, 0x00202316, 0x00282819, 0x002b2718, 0x00322c1d, 0x003a3323,
- 0x00574127, 0x00624c33, 0x0068533d, 0x00614f3b, 0x005e503d, 0x00605544, 0x00635b4c, 0x00676153, 0x00716f64, 0x00747368, 0x0074726c, 0x0071706d, 0x006d6d6b, 0x006c6d69, 0x006a6c68, 0x00666867,
- 0x005e5e5f, 0x00525353, 0x00424345, 0x00353639, 0x0029282b, 0x002b292a, 0x00373635, 0x00434341, 0x00544c4c, 0x005a5350, 0x005c554f, 0x00554d44, 0x004c4037, 0x0045372c, 0x00403124, 0x003b2c1e,
- 0x002c291e, 0x0024241a, 0x0072726a, 0x00ccccc5, 0x00c9c8c2, 0x00aca9a4, 0x00908d87, 0x0097938b, 0x00c2bcb4, 0x00e2ded1, 0x00f9f4e9, 0x00f0ebe2, 0x00ebeae7, 0x00e9ecea, 0x00c0c6c8, 0x00adb8bb,
- 0x00e0e7ee, 0x00ecf2f3, 0x00c7c9c8, 0x0078736d, 0x002e261d, 0x00292a2d, 0x00292c37, 0x00313137, 0x003f3b44, 0x00464244, 0x005a5152, 0x006b5f5a, 0x007b6d63, 0x007e6e60, 0x007c6d5f, 0x00766956,
- 0x00806059, 0x00866758, 0x0091745c, 0x009a815c, 0x00a68f65, 0x00aa966e, 0x00a29372, 0x008e836f, 0x00a4989a, 0x00e2dce4, 0x00fef7fc, 0x00f9fef8, 0x00fafef6, 0x00fbfcf7, 0x00e9dfdb, 0x009c8886,
- 0x006e5958, 0x0075716f, 0x008e9ea6, 0x0097c3cc, 0x007dc5e3, 0x0063bdf1, 0x004eaff4, 0x004097e1, 0x003a75cf, 0x002e62bf, 0x003153b6, 0x00324ab4, 0x002e40a8, 0x002b3da2, 0x00293c9e, 0x00233a97,
- 0x00233d9e, 0x00213b9a, 0x00203799, 0x00213798, 0x00233698, 0x00283894, 0x0026318b, 0x001d267d, 0x00192071, 0x00202773, 0x00282e83, 0x00222d8d, 0x001d2981, 0x00162271, 0x00111b62, 0x00101b57,
- 0x0017194e, 0x00131640, 0x0011153c, 0x002b2c53, 0x009393b8, 0x00d8d6ed, 0x00dfddea, 0x00e6e4e9, 0x00ebe2e0, 0x00e6dcd4, 0x00ece0d7, 0x00ebe2d7, 0x00ebe4db, 0x00ede6e0, 0x00ece8e3, 0x00eae8e5,
- 0x00f2eeeb, 0x00f0edea, 0x00f1eeec, 0x00f2eeeb, 0x00f5efec, 0x00f6efea, 0x00f6efe9, 0x00f1eae3, 0x00efe6e0, 0x00ede4db, 0x00ebe2dc, 0x00e5e0d8, 0x00ebd8d0, 0x00ead7cb, 0x00eadcd6, 0x00e7e4e3,
- 0x00e4e3ea, 0x00f3dbdc, 0x00e8ada4, 0x00dc7057, 0x00fd5124, 0x00fc5324, 0x00ed5e33, 0x00f19073, 0x00fde3e7, 0x00eceaf5, 0x00e9edfd, 0x00e5e5f4, 0x00e4d4de, 0x00dcced6, 0x00dad2dc, 0x00d9d8e7,
- 0x00f1dbe2, 0x00e2d9e6, 0x00cdcae3, 0x00cdd7f3, 0x00d2d8f5, 0x00d8d1e8, 0x00e9cddb, 0x00daa09f, 0x00d35739, 0x00e44916, 0x00ee5223, 0x00e67656, 0x00ecbeca, 0x00ece0f0, 0x00f1f2fc, 0x00f9fdfa,
- 0x00fffae9, 0x00f9fcf2, 0x00f8fefd, 0x00f4fffe, 0x00c5c2c5, 0x006d7174, 0x0063666f, 0x008f959f, 0x00b7b8cd, 0x00c7cbe3, 0x00aeb4cf, 0x00abb0cc, 0x00c0c3df, 0x00d0d2ec, 0x00d8daf1, 0x00babbd0,
- 0x00788ec1, 0x007ba6dd, 0x0084b9ef, 0x00689fd3, 0x00a6c4e4, 0x00b8d1f1, 0x00b8d3fc, 0x009fc7f7, 0x00a8c4e7, 0x00b8c2c5, 0x00b1b0b1, 0x00bbbbcb, 0x0099a4c9, 0x007f8dba, 0x00a1afe0, 0x00bac8f0,
- 0x00e0e3fc, 0x00e9eaf9, 0x00e0dff1, 0x00d8daf2, 0x00d2d8ff, 0x00d6e8f6, 0x00e0f2fd, 0x00dbe3f6, 0x00e2d9f6, 0x00e7e6f7, 0x00d5dedd, 0x009bb39c, 0x00769564, 0x00819762, 0x0087945c, 0x0091935d,
- 0x0081a354, 0x0078a455, 0x006ea45f, 0x006aa667, 0x0084a283, 0x00c1bab2, 0x00f5d4db, 0x00f2b5c9, 0x00e499ac, 0x00c37d84, 0x009b5b69, 0x00874b65, 0x0065476f, 0x00585186, 0x004c589e, 0x00495fad,
- 0x004c5db0, 0x004e5eb1, 0x00616fc2, 0x005e6abc, 0x004450a9, 0x003e5886, 0x0055698b, 0x006d6d95, 0x009779a0, 0x009281a4, 0x006f6ea7, 0x002f4ea5, 0x001849d0, 0x00375cc2, 0x0096a8e2, 0x00f3f2ef,
- 0x00fefdfb, 0x00fcfdf9, 0x00fefefc, 0x00fdfefc, 0x00a5ada8, 0x00262f2a, 0x000e1a15, 0x000d1c14, 0x00111d16, 0x000e1d16, 0x000e1d16, 0x000f1d16, 0x00101c16, 0x00101d16, 0x00101d16, 0x000f1d15,
- 0x00111e17, 0x00101d16, 0x000f1c15, 0x00101d17, 0x00101d17, 0x000d1b12, 0x00121f16, 0x000a180f, 0x00212c31, 0x0038444c, 0x00364152, 0x00333b55, 0x002e345c, 0x00303465, 0x002f326a, 0x002a2e69,
- 0x00272e74, 0x00222b71, 0x00232e77, 0x00222f7b, 0x0023317e, 0x00243180, 0x00283382, 0x00283081, 0x002c2b7e, 0x00212370, 0x00211e62, 0x00252349, 0x00282445, 0x002c2941, 0x00282031, 0x001f171f,
- 0x00211416, 0x002e2015, 0x00311f12, 0x00311c08, 0x0038200a, 0x0047280a, 0x005c3816, 0x006c4821, 0x0081572a, 0x00815e31, 0x00845f38, 0x00826042, 0x00865e48, 0x0080503b, 0x00844c35, 0x00814429,
- 0x00c03f03, 0x00d43c11, 0x00ce402a, 0x00dc7a72, 0x00d0c8bd, 0x00cec5bf, 0x00c4bdb7, 0x00d0c4bd, 0x00cccac0, 0x00cfc6be, 0x00e2d7d2, 0x00ddd4d1, 0x00e3dbd9, 0x00eae1de, 0x00dcd5d2, 0x00d0cbc9,
- 0x00cbc7c6, 0x00c5c2c2, 0x00d7d5d7, 0x00dbd9dc, 0x00cfcdcf, 0x00d2d0d1, 0x00d8d6d5, 0x00d5d4d3, 0x00d1cccf, 0x00cbc8ca, 0x00cdcbcd, 0x00d1d1d1, 0x00d3d2d2, 0x00d5d3d3, 0x00d7d3d3, 0x00d5d0d0,
- 0x00cad3d6, 0x00c8cfcc, 0x00caccc7, 0x00cccbc2, 0x00caccc7, 0x00caceca, 0x00d3d5d2, 0x00d9d7cc, 0x00bba28c, 0x00997756, 0x00a5784c, 0x00b47f48, 0x00bd8b4e, 0x00bd8d4c, 0x00b38540, 0x00a77d35,
- 0x00a37638, 0x009b7238, 0x00996d38, 0x00926739, 0x008a5c34, 0x007e5637, 0x007b5033, 0x007a4a24, 0x0076441f, 0x00734823, 0x007e5e41, 0x00bcaa98, 0x00fdfef8, 0x00f9fcf8, 0x00fdffff, 0x00fdfdfd,
- 0x00eaf9ff, 0x007d99c6, 0x00506dba, 0x004366cc, 0x004b6dba, 0x00a0bcd7, 0x00ebfcf4, 0x00f1fcd6, 0x00f7fbea, 0x00eff0f3, 0x00eff2fa, 0x00eff3fc, 0x00c0c3d1, 0x003b3f4c, 0x00040614, 0x00030612,
- 0x00040415, 0x00030313, 0x00020110, 0x0001000d, 0x0001000e, 0x0001000d, 0x00090714, 0x000e0c19, 0x00120f1d, 0x00151524, 0x001d2034, 0x00262c48, 0x00202a58, 0x001f2c68, 0x00132368, 0x00132571,
- 0x00283a90, 0x00364aa3, 0x003b51ab, 0x003148a4, 0x002c41a0, 0x003649a5, 0x003d50a8, 0x003c50a0, 0x0048509c, 0x00202c6f, 0x00030d4e, 0x000a0e4f, 0x00121658, 0x0010175e, 0x000a125a, 0x0009165b,
- 0x000d1853, 0x00293563, 0x001d2448, 0x000c1429, 0x00090f18, 0x00061217, 0x000e171e, 0x00170e20, 0x00716472, 0x00dfd1cd, 0x00f6e2d1, 0x00e3ad97, 0x00bc494a, 0x00933149, 0x004c1035, 0x005d5183,
- 0x00efece7, 0x00f4f5ea, 0x00ecede1, 0x00e0e4d8, 0x00a0a5ab, 0x00989fb9, 0x00646e98, 0x00354279, 0x002f3a7c, 0x00273773, 0x00182d66, 0x00132656, 0x00080c27, 0x00625459, 0x00a78d7f, 0x00a4805f,
- 0x009d7350, 0x007e614a, 0x00473733, 0x00555262, 0x007582a8, 0x00446098, 0x002b4a8c, 0x00244281, 0x00293f76, 0x00203664, 0x00192650, 0x00111638, 0x002b2738, 0x004b4447, 0x00504639, 0x005d543b,
- 0x004f4a47, 0x003a3631, 0x003a3834, 0x00393635, 0x00363434, 0x00343235, 0x00706b70, 0x00d9d1d6, 0x00e8dee8, 0x00d2c5cc, 0x00d3ccce, 0x00d9e3d6, 0x00dfe2ec, 0x00f2dedf, 0x00a07276, 0x0063333c,
- 0x0024376f, 0x00213d69, 0x0073809b, 0x00aa9e9c, 0x00d1c2c1, 0x00c3bcbc, 0x00c7c1c2, 0x00ccc8c8, 0x00d0cacc, 0x00d1cdce, 0x00d4d1d1, 0x00cdcdcc, 0x00c9cbc9, 0x00d2d4d2, 0x00d1d2d0, 0x00cccdca,
- 0x00f8fbf7, 0x00f9fcf9, 0x00fbfdfc, 0x00cfd1d0, 0x003a3c39, 0x00040603, 0x00040602, 0x00070805, 0x000a0f09, 0x00070b05, 0x00040900, 0x00071402, 0x0009101a, 0x001d2335, 0x00464e60, 0x002c3b40,
- 0x0011263c, 0x0020336a, 0x00263a8b, 0x00273a9d, 0x00112d7f, 0x00081e4b, 0x0003132c, 0x00061639, 0x0003113c, 0x000b1b4f, 0x00273b7b, 0x002a4087, 0x00294098, 0x00293d9b, 0x001e3297, 0x0015278f,
- 0x00122078, 0x00081564, 0x000c1858, 0x002e3b65, 0x008e9eab, 0x00cbdadb, 0x00dbe7e5, 0x00929c98, 0x007f828c, 0x00aaabba, 0x00b5b8c4, 0x00555a5b, 0x0007070b, 0x00090706, 0x00060300, 0x000e0804,
- 0x000e0701, 0x00121007, 0x000e0d09, 0x00131510, 0x00111512, 0x0014170e, 0x0013130c, 0x00141810, 0x000c100e, 0x00050d0f, 0x000b171c, 0x000e1e23, 0x00142329, 0x000e1a20, 0x00091418, 0x00041013,
- 0x00050d09, 0x00020a07, 0x00010807, 0x000a0f0d, 0x00090906, 0x00090703, 0x00050200, 0x00090605, 0x00050409, 0x00030208, 0x00030409, 0x00010502, 0x00070808, 0x00060702, 0x00010102, 0x000f1219,
- 0x00476373, 0x0091b0c5, 0x00aacae2, 0x00d4f2fd, 0x00cde2f4, 0x0097b4d3, 0x006181af, 0x004f71a5, 0x004570ac, 0x003f71b5, 0x003f76c1, 0x003875c4, 0x003578c7, 0x00357cca, 0x00367cca, 0x002e75c3,
- 0x002767ba, 0x001f5cae, 0x00245dac, 0x003265af, 0x00436fa6, 0x00355b84, 0x000c2240, 0x00010518, 0x00040303, 0x000a0301, 0x000a0401, 0x00030403, 0x00020303, 0x00040403, 0x00040504, 0x00060505,
- 0x00050505, 0x00040404, 0x00040404, 0x00040404, 0x00020202, 0x00030303, 0x00030303, 0x00030303, 0x00040404, 0x00020202, 0x00030303, 0x00000000, 0x00030303, 0x00020202, 0x00050505, 0x00060606,
- 0x00050d08, 0x000b0c0b, 0x00827d7e, 0x00ecebeb, 0x00fffffe, 0x00f7fdf9, 0x00f8fdfb, 0x00fcfefe, 0x00bdb5b2, 0x0055443f, 0x00411d12, 0x00642007, 0x00803314, 0x00883a1d, 0x00883e21, 0x00793e1f,
- 0x00623e1c, 0x00603b18, 0x006d3b16, 0x00813911, 0x009c3607, 0x009e3d04, 0x009a3a00, 0x009a3801, 0x009f3a01, 0x009e400c, 0x00954214, 0x007e3915, 0x00562b1c, 0x0036201d, 0x00261f25, 0x002a2f3c,
- 0x00454444, 0x00575657, 0x00666565, 0x006b6c6a, 0x00666765, 0x0061615b, 0x00535148, 0x004e483e, 0x00473c32, 0x0041322c, 0x0040322e, 0x003e3936, 0x00603947, 0x00703955, 0x00672d4f, 0x003b1332,
- 0x000d1023, 0x00061824, 0x00435462, 0x00aeb8c5, 0x00e0d4e9, 0x00bfbcc8, 0x00bebec6, 0x00cecfd2, 0x00dad6db, 0x00d8d5d8, 0x00deddde, 0x00d6d9d9, 0x00d2d6df, 0x00d5dae5, 0x00d5dbeb, 0x00d1daec,
- 0x00cfd5e0, 0x00d4d8de, 0x00cccad1, 0x00d6cdd1, 0x00e8dadf, 0x00e8dadc, 0x00e7dedd, 0x00ddd9d6, 0x00d0d6d7, 0x00d1d9dc, 0x00ccd2d5, 0x00ced1d3, 0x00cfd0da, 0x00c9c6d3, 0x00bdb7c1, 0x00c7c1c5,
- 0x00c5c1b8, 0x00bebcb2, 0x00ccc7c4, 0x00c6c1c8, 0x00797088, 0x00283863, 0x001d3663, 0x001e3054, 0x00505266, 0x00626371, 0x00323540, 0x00313642, 0x003f4354, 0x0052515f, 0x00554c58, 0x0070606a,
- 0x00c8c6c5, 0x00f9f9f9, 0x00fefdfe, 0x00fdfbfc, 0x00f8f7f7, 0x00f0f0ef, 0x00f5f5f5, 0x00fcfcfe, 0x00fdffff, 0x00fafffd, 0x00fbfefb, 0x00c5c4bf, 0x00423c36, 0x00271e15, 0x0032251b, 0x003e2c21,
- 0x00463629, 0x004f3e34, 0x0056463f, 0x00534540, 0x00483b39, 0x003c3834, 0x002e322b, 0x00242921, 0x00232721, 0x00272a28, 0x00282c2c, 0x00262b2c, 0x0025272c, 0x0023252c, 0x0025262e, 0x00282831,
- 0x003a3527, 0x00413c30, 0x004d483e, 0x00504c44, 0x004f4b46, 0x00444340, 0x00393b37, 0x002d312f, 0x00222226, 0x001c1d21, 0x001c1c1c, 0x00242118, 0x00332d21, 0x00433c2d, 0x004f4536, 0x00504434,
- 0x00473c2e, 0x003c3127, 0x002d231c, 0x00241c19, 0x001e1819, 0x001c181a, 0x001c1919, 0x001a1817, 0x00161813, 0x00191d15, 0x001e2317, 0x00232718, 0x002c2d1c, 0x00393524, 0x00403928, 0x00453e2c,
- 0x005b472a, 0x00614e34, 0x00614f37, 0x005e4f38, 0x00574a37, 0x00534937, 0x00554e3e, 0x005d5749, 0x00656559, 0x006b6a60, 0x006d6c66, 0x006b6c69, 0x006a6a67, 0x006a6a66, 0x00686866, 0x00666666,
- 0x00595a5b, 0x00505151, 0x00424344, 0x00353639, 0x00282629, 0x00262425, 0x002f2f2e, 0x003b3b39, 0x004a4546, 0x004e4948, 0x004e4a45, 0x0047433c, 0x00433a33, 0x003d322b, 0x00352920, 0x002f2218,
- 0x001f2116, 0x001a1d14, 0x006e7069, 0x00d0d0c9, 0x00bcb8b3, 0x0067645e, 0x0047423a, 0x00494138, 0x005a5143, 0x00948b7b, 0x00d0c7b7, 0x00eee7dc, 0x00f4f0e9, 0x00d3d3d1, 0x009ca1a1, 0x00a6afb2,
- 0x00e0e8e9, 0x00ecf2f1, 0x00bcbdba, 0x005f5a55, 0x00312a21, 0x00272738, 0x00272b47, 0x002e314a, 0x0039384c, 0x00423f4d, 0x004f4b4f, 0x005c554f, 0x006b6049, 0x00756747, 0x007b6b44, 0x007c6a3f,
- 0x00876622, 0x0094732b, 0x00a78536, 0x00b3933e, 0x00bfa04a, 0x00bea356, 0x00b6a05f, 0x00a28e64, 0x00b29d94, 0x00e7d5d7, 0x00fdf8fa, 0x00f7fef2, 0x00fbfcf8, 0x00fcfaf7, 0x00ebe1e1, 0x00ac9896,
- 0x0087746b, 0x009e9791, 0x00b3babd, 0x00b4d2db, 0x0096cae1, 0x006babd3, 0x00488abe, 0x00376eac, 0x003258a5, 0x00334da4, 0x003145a1, 0x002d3ca0, 0x002b3ca4, 0x002239a2, 0x001a3aa2, 0x00193aa3,
- 0x001b3b9b, 0x001a3899, 0x001b379e, 0x001d379e, 0x001e35a0, 0x001e3397, 0x001e3092, 0x001a2987, 0x00111f77, 0x00172479, 0x00212b85, 0x001f2b85, 0x001c2779, 0x00141f66, 0x0010175b, 0x00111a52,
- 0x00181a44, 0x0015173d, 0x00272949, 0x006c6c89, 0x00cbcbe4, 0x00dfdce4, 0x00e4e0dc, 0x00e9e3e1, 0x00e5dbd3, 0x00e2d7cb, 0x00e7dbcd, 0x00e9e0d0, 0x00ebe2d7, 0x00eae3dc, 0x00ebe6e1, 0x00ebe8e8,
- 0x00ece8e3, 0x00f0ece7, 0x00f2eeea, 0x00f4f0ec, 0x00f5eeea, 0x00f1eae4, 0x00f4ece5, 0x00eae2d9, 0x00ede5dc, 0x00eee5dc, 0x00ebe2d8, 0x00e2ddd6, 0x00e4cfc5, 0x00e7d1c7, 0x00e9d9d1, 0x00e4dedb,
- 0x00dcdfe0, 0x00eddad6, 0x00e2aaa0, 0x00da705c, 0x00f95028, 0x00fb5322, 0x00ed5a2c, 0x00f28a6c, 0x00fce1e0, 0x00ece8f3, 0x00e6eaf9, 0x00e0e0ee, 0x00dfd0d9, 0x00dbcfd9, 0x00ded7e4, 0x00dadaea,
- 0x00e9dbe3, 0x00d8d1dd, 0x00cccddd, 0x00cdd8ef, 0x00d2dbf6, 0x00ddcee0, 0x00f0c2c6, 0x00cb7666, 0x00d0461d, 0x00e54a18, 0x00e95f33, 0x00e08975, 0x00e2c6d5, 0x00e3ddf3, 0x00eff3fc, 0x00fffcf9,
- 0x00fdf9e8, 0x00f9fdf7, 0x00f5fdfc, 0x00f2fefe, 0x00b8b6b4, 0x005c6061, 0x006f7278, 0x00979ca7, 0x00babed5, 0x00c1c8e2, 0x00b0b8d7, 0x009da5c5, 0x00adb2d2, 0x00cccfec, 0x00d6d8f1, 0x00c7c7dd,
- 0x00babede, 0x00b1caf3, 0x0083a8d9, 0x006291ba, 0x009cb6d0, 0x00a0badc, 0x00a1c2ec, 0x009ccbfd, 0x00a9d5f9, 0x00a5c0d1, 0x008e97a2, 0x009a98a5, 0x008488aa, 0x008f97c1, 0x00cbd3f5, 0x00e1e5ff,
- 0x00e7eaf8, 0x00e8e7f5, 0x00dddcf1, 0x00cad0ed, 0x00b6c3f8, 0x00d3dbf4, 0x00e7ebfb, 0x00e0e7fa, 0x00d3ddf0, 0x00dae0ea, 0x00f0ede9, 0x00c9c4ad, 0x00949065, 0x008d9261, 0x008d9963, 0x00869d64,
- 0x007ea453, 0x007ca95e, 0x0075a865, 0x0070a76d, 0x0089a483, 0x00c3bbac, 0x00dab6b8, 0x00c28494, 0x00a0566c, 0x00944d67, 0x00754d81, 0x004151b9, 0x005457a6, 0x005b63a3, 0x004c5f96, 0x003d5f96,
- 0x002c6bb1, 0x002f6ac1, 0x004b75d1, 0x00596cc8, 0x005f4c9f, 0x00546895, 0x007285a6, 0x00726d91, 0x0078597f, 0x00675a85, 0x00434988, 0x001f429d, 0x00214ace, 0x00405dc0, 0x009aacec, 0x00ecf1f7,
- 0x00fcfdf9, 0x00fcfef9, 0x00fdfefb, 0x00fcfefb, 0x00a6ada8, 0x00272f2a, 0x000f1a16, 0x000e1b16, 0x000f1c16, 0x000e1d16, 0x000d1d15, 0x000e1c15, 0x00111c16, 0x00111d16, 0x00101d16, 0x00111e16,
- 0x00111e16, 0x00101d16, 0x00111e17, 0x00101e16, 0x00111e17, 0x000d1a13, 0x000d1a12, 0x000e1b12, 0x00162220, 0x002b373c, 0x003b4650, 0x002a3444, 0x00313757, 0x00383d6a, 0x002e3267, 0x00292d64,
- 0x00212778, 0x0020277a, 0x0021287b, 0x00242e81, 0x00273383, 0x00293580, 0x0029347b, 0x002a3377, 0x00252562, 0x0012144b, 0x000a082b, 0x001a120e, 0x00281e14, 0x002f2114, 0x002d1c0a, 0x00331e08,
- 0x00372004, 0x003a1f05, 0x00381906, 0x003f1d05, 0x00532f1a, 0x006c422a, 0x007d4e33, 0x00855533, 0x00844f29, 0x007e532d, 0x0083603a, 0x007e6341, 0x00806343, 0x00855c39, 0x008a552f, 0x00915227,
- 0x00c34000, 0x00d0370d, 0x00cb4128, 0x00e0867b, 0x00cbcbbf, 0x00c9c5bd, 0x00cfc5c1, 0x00d0bdb9, 0x00c6c3b9, 0x00d2cac2, 0x00d7cdc8, 0x00dfd7d3, 0x00e4dcd9, 0x00e7dfdc, 0x00dcd5d2, 0x00d0c9c9,
- 0x00c7c3c2, 0x00c4c0c1, 0x00d5d2d5, 0x00d7d5d8, 0x00cccacc, 0x00d4d2d2, 0x00dcdad9, 0x00d6d5d4, 0x00cbc9ca, 0x00c9c7c7, 0x00c9c7c8, 0x00cfcece, 0x00d5d4d5, 0x00d8d6d7, 0x00d9d5d6, 0x00d5d0d2,
- 0x00c9d5d7, 0x00ccd2d1, 0x00cecec9, 0x00d2cec7, 0x00d2d3cb, 0x00cccfcb, 0x00cacec7, 0x00cbcabd, 0x00aa9583, 0x008f7054, 0x009a724c, 0x00a77847, 0x00ac7e49, 0x00aa7c44, 0x00a17339, 0x00976b2f,
- 0x00986f33, 0x008f6730, 0x008a6130, 0x00895d35, 0x00825634, 0x00774d32, 0x0070452b, 0x006e3d1d, 0x00734319, 0x00724922, 0x008a6c4c, 0x00cabaa4, 0x00fefff8, 0x00fafcf8, 0x00fefeff, 0x00fefcff,
- 0x00dcf1ef, 0x007b99bf, 0x004b6ab1, 0x004266c7, 0x004a72c8, 0x006082a8, 0x00d9f6f1, 0x00ebfce5, 0x00f3fae7, 0x00ebefed, 0x00eff3f8, 0x00eceff5, 0x00dbdde4, 0x0063656c, 0x0006070f, 0x0015161d,
- 0x0027262f, 0x0024222c, 0x0022202a, 0x0022202a, 0x00201d26, 0x001e1c25, 0x001e1c25, 0x001f1c25, 0x00222127, 0x002b2d33, 0x00343641, 0x002c3144, 0x00212950, 0x0017225a, 0x00192669, 0x00182773,
- 0x001a2b7c, 0x002a3b90, 0x0032459c, 0x00283c97, 0x001e328f, 0x00132782, 0x00192d85, 0x002a3d90, 0x003d4a99, 0x002e3c86, 0x00152268, 0x000e1355, 0x0011195d, 0x000e165f, 0x00131e66, 0x001f2c73,
- 0x00172860, 0x001d2b5c, 0x00293359, 0x001e2742, 0x00101527, 0x0009181f, 0x000c1a21, 0x00121722, 0x007b7b7f, 0x00c4beb6, 0x00ddcdbc, 0x00f7dbc3, 0x00b96866, 0x00733a49, 0x003b1b3a, 0x00727aa3,
- 0x00f5f4e7, 0x00edeee2, 0x00f2f5e8, 0x00c3c8c1, 0x008e95a3, 0x008690af, 0x00495485, 0x002c3a78, 0x00223071, 0x0021316d, 0x001a2b60, 0x0009193e, 0x0025283a, 0x00a99d9e, 0x00cab2a5, 0x00d4b398,
- 0x00cbae8e, 0x00b5a28f, 0x0051494d, 0x00717893, 0x00556a9b, 0x003c4d80, 0x003a497e, 0x00313f75, 0x002e3971, 0x0028305f, 0x0014193b, 0x0017172b, 0x00403131, 0x004e3831, 0x005d402f, 0x006a4730,
- 0x0061524c, 0x004d3e38, 0x00463630, 0x004a3b35, 0x00423530, 0x003d342d, 0x0068605a, 0x00dad2cd, 0x00e6e4e2, 0x00d7d6d2, 0x00c4c7be, 0x00dde7d3, 0x00d3dae5, 0x00f0dfe7, 0x00a7818a, 0x005d3543,
- 0x001b315f, 0x002c4368, 0x007b849b, 0x0091807f, 0x00c5b6b9, 0x00c0b6b6, 0x00bdb7b5, 0x00c1bcb9, 0x00c6c1bf, 0x00c7c3c0, 0x00c6c3c0, 0x00c1c0bc, 0x00bebdb9, 0x00c3c3be, 0x00c6c7c2, 0x00c4c4c0,
- 0x00fbfefb, 0x00f8fbf8, 0x00fbfefa, 0x00bfc1be, 0x00262726, 0x00050604, 0x00090a08, 0x000e0f0c, 0x000c100c, 0x000c0f0b, 0x000d150d, 0x000e210c, 0x00101d33, 0x00222e4a, 0x004b5771, 0x0041515b,
- 0x001d3045, 0x0026396d, 0x002b4089, 0x002a4399, 0x00264594, 0x00283f71, 0x00223253, 0x000f1c43, 0x001d2f5a, 0x00435685, 0x00576d9f, 0x00475d94, 0x002f4585, 0x0033498d, 0x00374d95, 0x002c428d,
- 0x001b2897, 0x00182685, 0x000d1a64, 0x00051345, 0x00273946, 0x0067797a, 0x00ceddda, 0x00dfece9, 0x009298a1, 0x00747787, 0x00b1b7c5, 0x00a9b3b8, 0x00393d40, 0x00090808, 0x000c0904, 0x000e0804,
- 0x00130c06, 0x000d0c04, 0x000d0e08, 0x000d110e, 0x000c1414, 0x00101516, 0x00171b1f, 0x001b2429, 0x00263842, 0x00395160, 0x00506c7e, 0x005b7889, 0x00657f92, 0x006a8394, 0x005b7381, 0x004f6673,
- 0x003a5463, 0x00253b47, 0x000f2029, 0x00030e11, 0x000a0b0c, 0x000d0b0a, 0x00050403, 0x00030202, 0x00000103, 0x0003040a, 0x00030308, 0x00020306, 0x000b0808, 0x00070303, 0x00040305, 0x00171d27,
- 0x00688397, 0x008eb0c8, 0x009dbeda, 0x00c2e1f6, 0x00c3dbeb, 0x00aac6ea, 0x007ea0ce, 0x00597eaf, 0x004270ac, 0x003e72b5, 0x003c75bc, 0x003673bf, 0x003375c1, 0x003276c1, 0x003376c0, 0x002e72bb,
- 0x002d63b6, 0x001851a2, 0x00164a9d, 0x001c4f9f, 0x002f5f9f, 0x0042689c, 0x00254067, 0x0008162c, 0x00010302, 0x00090401, 0x000b0503, 0x00040303, 0x00040404, 0x00030302, 0x00040404, 0x00040403,
- 0x00030303, 0x00030303, 0x00030303, 0x00030303, 0x00030303, 0x00030303, 0x00040404, 0x00040404, 0x00040404, 0x00040404, 0x00030303, 0x00030303, 0x00020202, 0x00020202, 0x00040404, 0x00040404,
- 0x00000501, 0x000b0e0c, 0x008a8888, 0x00efeeee, 0x00ffffff, 0x00fcfefd, 0x00fcfffe, 0x00f8fbf9, 0x00aaa19e, 0x00473630, 0x003f1e15, 0x00632611, 0x007e371f, 0x00883e27, 0x008b462f, 0x0080472e,
- 0x00744f31, 0x0071492b, 0x007a4422, 0x008a4017, 0x00a0380a, 0x009a3c05, 0x00953a00, 0x00943700, 0x009b3801, 0x009a3d0a, 0x00933f10, 0x007e3912, 0x00582f1c, 0x003a251c, 0x00282220, 0x00293035,
- 0x00474443, 0x00585656, 0x0060625f, 0x0060625f, 0x00585755, 0x004f4e49, 0x00424036, 0x00403b30, 0x0041332a, 0x00382d22, 0x003d3430, 0x003f4b4e, 0x00553a57, 0x00492a52, 0x00371b4a, 0x00140b37,
- 0x00051537, 0x0014213a, 0x00697085, 0x00d0ccd9, 0x00e7dde5, 0x00d0ccd0, 0x00d0d0d2, 0x00dedfdf, 0x00dedcdd, 0x00d9d8d5, 0x00dededa, 0x00dadcd5, 0x00dadbda, 0x00d9d8da, 0x00d8d9df, 0x00d6d9dd,
- 0x00d8dbd4, 0x00d9dbd8, 0x00cecccf, 0x00d2cacf, 0x00e4d6e7, 0x00e6d8e4, 0x00e5dbe7, 0x00ddd8df, 0x00d1d5d5, 0x00d1d9d3, 0x00cfd5d0, 0x00cbcece, 0x00d2d1da, 0x00c8c6cf, 0x00bcb9c0, 0x00c2c0c3,
- 0x00c3c1b5, 0x00bdbbae, 0x00c8c3bf, 0x00c8c3c6, 0x007c7689, 0x00283860, 0x001a305d, 0x00202e51, 0x00535164, 0x005d5c68, 0x00363940, 0x00393e46, 0x004a4b58, 0x005c5862, 0x0062555d, 0x007a656b,
- 0x00c4c0c1, 0x00faf9f9, 0x00fffdfd, 0x00fdfbfb, 0x00fafafa, 0x00eff1f1, 0x00f5f6f6, 0x00fafcfc, 0x00fbffff, 0x00fcfefe, 0x00fbfffd, 0x00c8cac5, 0x0048433d, 0x00281e16, 0x0035271c, 0x00422e21,
- 0x004d3a29, 0x00554234, 0x005b4a40, 0x00584942, 0x004f4340, 0x00413f3c, 0x00303633, 0x00272c2a, 0x00262c2c, 0x00292d31, 0x00292d33, 0x00282a31, 0x00272630, 0x0023232c, 0x0022252d, 0x00282b33,
- 0x003d3929, 0x00484436, 0x005a554a, 0x00625f56, 0x00656460, 0x0060615e, 0x00575a56, 0x004a4e4a, 0x0033383c, 0x0024282c, 0x001c1f1f, 0x00212219, 0x002e2c21, 0x003f382c, 0x004d4236, 0x00524337,
- 0x004c3e31, 0x0041362e, 0x00322926, 0x00272123, 0x00201c22, 0x001f1c21, 0x00201c22, 0x001e1b21, 0x00191d1a, 0x001b1f19, 0x0023271d, 0x00272b1d, 0x00333324, 0x00413e2d, 0x00494330, 0x00524935,
- 0x00645037, 0x0067543b, 0x00604e36, 0x005a4b35, 0x00504332, 0x00463d2e, 0x004a4334, 0x00514c3f, 0x0057584e, 0x005e5e56, 0x0062625c, 0x0062635f, 0x0061625f, 0x0061605d, 0x00605e5c, 0x005e5d5c,
- 0x00565658, 0x004d4c4e, 0x003f4042, 0x00353538, 0x0029272b, 0x00242324, 0x00262726, 0x002c2c2b, 0x00363334, 0x003a3636, 0x003a3634, 0x0036322d, 0x00342d29, 0x00302823, 0x002a221c, 0x00261e16,
- 0x001d2218, 0x001d211a, 0x006f726d, 0x00cbcbc7, 0x00b1aca9, 0x005f5853, 0x00352d25, 0x003d3328, 0x00413222, 0x004f3f2c, 0x006f634f, 0x00aaa193, 0x00e7dfd7, 0x00cac7c4, 0x00838987, 0x00a4adaf,
- 0x00eaf3f5, 0x00edf2f1, 0x00ababaa, 0x00524d49, 0x002f2820, 0x002b2b3b, 0x002d304f, 0x00333552, 0x003c3c55, 0x00474656, 0x0055525a, 0x00605b55, 0x0070664c, 0x007c6e47, 0x00837443, 0x0086763d,
- 0x009d7a11, 0x00a98719, 0x00b89728, 0x00c1a32f, 0x00cdae3f, 0x00ccad4a, 0x00c5a956, 0x00b1975a, 0x00b9a383, 0x00e9d5c2, 0x00fcfaf0, 0x00fafeef, 0x00fffffd, 0x00fbfbf6, 0x00e8e5e5, 0x00ac9f9f,
- 0x008c7d76, 0x00b2ada4, 0x00d4d8d7, 0x00d7ecf4, 0x00c3eaf6, 0x00a7d0ef, 0x008db5dd, 0x007999ca, 0x00687fb7, 0x005a67ad, 0x004c54a2, 0x003f469a, 0x002f3d99, 0x00233a97, 0x001c3897, 0x00153896,
- 0x0018338e, 0x0017328c, 0x001b3592, 0x00203998, 0x00203697, 0x001d3290, 0x001c2f8c, 0x00182986, 0x000f2075, 0x00102175, 0x00192679, 0x001b2877, 0x001b256e, 0x00141e5e, 0x00101751, 0x000f194a,
- 0x0011153a, 0x00272845, 0x006d6d85, 0x00aba9be, 0x00dddaea, 0x00e4dee0, 0x00e2dad4, 0x00dfd5cc, 0x00ddd3c9, 0x00e3d7ca, 0x00e7dacc, 0x00e7dccd, 0x00e8dfd4, 0x00eae2db, 0x00eee8e3, 0x00ece8e8,
- 0x00ede9e4, 0x00f5f0eb, 0x00f0eae6, 0x00f5efea, 0x00f4ece7, 0x00e3d9d3, 0x00e4dad3, 0x00f4e8e0, 0x00e7ded7, 0x00ede2d9, 0x00e8ded6, 0x00dfd9d3, 0x00e3ccc3, 0x00e7cec2, 0x00ebd9ce, 0x00e2dad5,
- 0x00d9dfdf, 0x00e9d7d4, 0x00e1ab9f, 0x00da745f, 0x00f6522a, 0x00f9531f, 0x00ee5929, 0x00f08267, 0x00f8dad9, 0x00eee8f2, 0x00e7eaf8, 0x00e2e2ef, 0x00dfd1da, 0x00d9ced9, 0x00d9d4e2, 0x00d6d9e8,
- 0x00e4d8e9, 0x00d8d1de, 0x00cecbd9, 0x00ccd4e6, 0x00ced4ee, 0x00e5c9d9, 0x00da9998, 0x00bd5237, 0x00d84519, 0x00df4d1f, 0x00e56a49, 0x00df9a90, 0x00decadd, 0x00dfdcf3, 0x00eff4fc, 0x00fefbf5,
- 0x00fdfbed, 0x00f8fcf9, 0x00f6fffd, 0x00f2feff, 0x00aca7a2, 0x0058585b, 0x007a7c83, 0x00a0a3b2, 0x00bdc3e0, 0x00bec8e8, 0x00a3afd3, 0x009aa4c9, 0x00b0b6da, 0x00cacdee, 0x00d2d2ef, 0x00cdcce4,
- 0x00deccf8, 0x00c7cdfb, 0x008a9fd7, 0x007d9cd1, 0x00c8d7f8, 0x00c9defb, 0x00a7c6fa, 0x0093c4fc, 0x0089b4f7, 0x007c9ac4, 0x00929cb6, 0x00aaa5b0, 0x00bab9d6, 0x00cbd2f2, 0x00dbe2fe, 0x00dee1f9,
- 0x00eee9fb, 0x00e9e7fa, 0x00d9def6, 0x00afb9e0, 0x008fa8e8, 0x00c3c9f1, 0x00ebe9fd, 0x00dde2fa, 0x00d9e0ee, 0x00e5e2e6, 0x00f5e2db, 0x00dfbfa9, 0x00b0946f, 0x00999666, 0x008a9c67, 0x007ca66b,
- 0x008fa05d, 0x008aa364, 0x0084a66b, 0x0081a570, 0x0095a482, 0x00b5ad97, 0x00bca097, 0x0091656a, 0x005b2e47, 0x005f3c5c, 0x005e4f8e, 0x00394bbf, 0x004457b2, 0x00495ea5, 0x003c5e99, 0x00346198,
- 0x002d6cb3, 0x002a68ba, 0x003f73d0, 0x005876d7, 0x004f51b8, 0x00405198, 0x004c5695, 0x0044387a, 0x003f2762, 0x00312969, 0x002b307b, 0x001f3893, 0x002d40ad, 0x003c4ca0, 0x0092a2d6, 0x00e0f1f4,
- 0x00fcfefa, 0x00fcfff9, 0x00fcfefa, 0x00fbfefa, 0x00a7aea9, 0x00292f2c, 0x000f1a16, 0x000f1b16, 0x000f1c16, 0x000e1d16, 0x000c1d15, 0x000d1c15, 0x00111d16, 0x00121d16, 0x00101e16, 0x00111e16,
- 0x00101d16, 0x000f1c15, 0x00101d16, 0x00121f17, 0x00101d17, 0x000e1b17, 0x000e1b17, 0x00101e16, 0x00111e18, 0x00202e2c, 0x00364344, 0x0029333c, 0x00303753, 0x003a4169, 0x00292e5e, 0x002b2d64,
- 0x00252a7a, 0x00262a7b, 0x00272b7b, 0x002d3385, 0x002f3888, 0x0029357e, 0x002b3679, 0x002c3573, 0x002b2e63, 0x00181f4e, 0x0014122c, 0x00261b05, 0x0038270b, 0x00402c0a, 0x00462f08, 0x004b3106,
- 0x0052340a, 0x00593712, 0x00644020, 0x006d4629, 0x00734c36, 0x00794e38, 0x007a4b33, 0x007e492b, 0x00804a2b, 0x00784f2f, 0x00785b38, 0x00645532, 0x005e4d2b, 0x0082613a, 0x0097653b, 0x00995626,
- 0x00ca3f00, 0x00d2350c, 0x00d0462e, 0x00df8b7c, 0x00c8cebf, 0x00c7c5bd, 0x00d6cac6, 0x00d6bebd, 0x00c2bcb3, 0x00ccc4bc, 0x00cfc5be, 0x00d1c9c4, 0x00e1d9d8, 0x00e4dddc, 0x00dbd6d3, 0x00d0cac9,
- 0x00cbc8c8, 0x00c2bfbf, 0x00d0cdce, 0x00d6d4d5, 0x00cbc9cb, 0x00d4d2d3, 0x00e0ddde, 0x00d8d4d6, 0x00cccbcb, 0x00cbc9c9, 0x00c9c6c7, 0x00ccc9ca, 0x00d3d0d2, 0x00d7d4d5, 0x00d6d3d5, 0x00d2cfd1,
- 0x00cfd7d8, 0x00ced2d2, 0x00cfcdca, 0x00d3cdc6, 0x00d2d1cd, 0x00ced1ce, 0x00c9cdc8, 0x00bdbdb6, 0x00a89788, 0x00937861, 0x008b6b4b, 0x00947048, 0x0099744a, 0x0091683c, 0x00895f2f, 0x008a602e,
- 0x008b6431, 0x00865d2f, 0x0080552e, 0x00794f2e, 0x006f462a, 0x00653e23, 0x0064391e, 0x00663715, 0x00764519, 0x00774e27, 0x00987b57, 0x00d8c8ad, 0x00fefef7, 0x00fafaf9, 0x00fffeff, 0x00fffcfd,
- 0x00e8f2f4, 0x0091a8c5, 0x004d6aa6, 0x00426ac0, 0x003b69b7, 0x004f76a8, 0x009bb7cf, 0x00eaf9f3, 0x00eff6e9, 0x00eef6ee, 0x00f2f5f4, 0x00eef2f2, 0x00eceef1, 0x0097979b, 0x002e3033, 0x003f4042,
- 0x00474548, 0x003b373d, 0x002d2931, 0x0028252d, 0x002a242c, 0x00262129, 0x00252028, 0x002b242d, 0x003b3739, 0x004a484b, 0x00494751, 0x003e3f51, 0x002d335b, 0x0019235b, 0x00192668, 0x0015256e,
- 0x00162572, 0x001d2c7d, 0x00334396, 0x004155ac, 0x004258b1, 0x002f469f, 0x001a2e87, 0x000f2176, 0x001b2c7e, 0x00283a88, 0x00283781, 0x00161d5f, 0x00081459, 0x000b1860, 0x00253279, 0x00324086,
- 0x001d2968, 0x00112055, 0x00475480, 0x005b6889, 0x00141c38, 0x00101d29, 0x00081319, 0x00111b22, 0x007d8587, 0x00888a83, 0x00a19788, 0x00fae5d5, 0x00e5b4b2, 0x0086626c, 0x00443a4b, 0x00a8bad1,
- 0x00f3f3e6, 0x00edefe3, 0x00e0e4d9, 0x00757c79, 0x00677185, 0x006d7a9f, 0x003b487c, 0x00283675, 0x0021336e, 0x001d2e68, 0x00142354, 0x00040f2e, 0x00545563, 0x00c3bab8, 0x00c4b4a7, 0x00cab29d,
- 0x00c6af9d, 0x00c1b6b2, 0x008d8b9b, 0x00747fa2, 0x003d548d, 0x00374a85, 0x0033447f, 0x002a3776, 0x00273371, 0x00202c5c, 0x00161d41, 0x00292c3c, 0x00443935, 0x004a352d, 0x0051352b, 0x0057372c,
- 0x00624a41, 0x005f4740, 0x00543b34, 0x004a3329, 0x004c372d, 0x0048372c, 0x005e5449, 0x00cfc9c2, 0x00e8ebe4, 0x00d5dcd3, 0x00c3cabf, 0x00d6dcc7, 0x00dde7f2, 0x00efdfec, 0x00b393a0, 0x00664556,
- 0x001b3061, 0x00405476, 0x009194a7, 0x0085726a, 0x00ae9d9e, 0x00b8aba8, 0x00b4a9a8, 0x00b7adac, 0x00bab3ac, 0x00bab4ad, 0x00b8b2ac, 0x00b2aca6, 0x00b3aea8, 0x00b8b4ae, 0x00c1beb8, 0x00c2c0ba,
- 0x00fffeff, 0x00fbfcfb, 0x00f7faf6, 0x00a7aaa6, 0x00151513, 0x00070706, 0x000e100c, 0x00111610, 0x0011110f, 0x00141514, 0x0017221b, 0x00142c1f, 0x00203152, 0x00323e6e, 0x00344069, 0x002d3e52,
- 0x00253650, 0x0035477b, 0x003a5193, 0x003b52a3, 0x003f5da2, 0x0054689f, 0x005e6d9d, 0x00526292, 0x006b7ead, 0x008ea1ce, 0x008296bf, 0x00596c97, 0x001e355c, 0x001a2f56, 0x00344b6e, 0x003d5276,
- 0x003740b3, 0x00253092, 0x001b2976, 0x0012225d, 0x000a1f37, 0x00182b38, 0x005f7075, 0x00bfcece, 0x00dae1eb, 0x00989caa, 0x007c8590, 0x00bbc7cf, 0x00868d91, 0x00222326, 0x00090a05, 0x000c0b04,
- 0x00110808, 0x0013100e, 0x00141612, 0x00050e0e, 0x000c1b1d, 0x0027333d, 0x00566370, 0x00758998, 0x0091acc6, 0x0098b8d8, 0x0085acce, 0x006b95b5, 0x0081a9c9, 0x00a9cdec, 0x00aed1ec, 0x00a8cce6,
- 0x009abedc, 0x0087a6c1, 0x00668195, 0x00415562, 0x00121922, 0x0005070a, 0x00080a09, 0x00080503, 0x00040206, 0x0005060b, 0x00030206, 0x00030204, 0x000b0606, 0x00070303, 0x0003040a, 0x00222f3c,
- 0x007c98b8, 0x0095b9d9, 0x00a1c7e7, 0x009cbfe1, 0x0089a4bc, 0x008fafd8, 0x0099c1f4, 0x007da9dc, 0x004976b7, 0x00396db4, 0x003672b9, 0x003573be, 0x003574c0, 0x003676c0, 0x003274ba, 0x002b70b3,
- 0x002d58ab, 0x0019499c, 0x00174a9f, 0x001b4ea1, 0x0023559b, 0x00365d97, 0x002f517c, 0x000c2039, 0x00010403, 0x000c0905, 0x000a0403, 0x00070505, 0x00050504, 0x00050605, 0x00040304, 0x00030302,
- 0x00070707, 0x00050505, 0x00030303, 0x00020202, 0x00020202, 0x00020202, 0x00030303, 0x00020202, 0x00040404, 0x00050505, 0x00030303, 0x00040404, 0x00030303, 0x00030303, 0x00020202, 0x00040404,
- 0x00010502, 0x001a1b1a, 0x00a19f9f, 0x00f3f0f1, 0x00fefeff, 0x00fbfefd, 0x00fafefc, 0x00f2f7f2, 0x009d8e8e, 0x00392824, 0x00391a15, 0x00552313, 0x006f321d, 0x00783a24, 0x00844931, 0x00835339,
- 0x007b5944, 0x0079543a, 0x00814c2d, 0x008e471e, 0x009f3a0b, 0x00943c07, 0x008d3805, 0x008c3603, 0x00983605, 0x009a3c0f, 0x00923d13, 0x007a3610, 0x00542c17, 0x00382518, 0x0029241e, 0x002b3333,
- 0x00443e43, 0x004e4b4e, 0x0050514f, 0x004b4e48, 0x00413f3b, 0x003b3932, 0x00343328, 0x00373228, 0x0041312b, 0x003e2e27, 0x003d3837, 0x004c5e66, 0x00665c7b, 0x00504675, 0x002f3269, 0x00071e52,
- 0x00062154, 0x00252c55, 0x008a86a4, 0x00e1d2e3, 0x00e3e0dd, 0x00d0d2ce, 0x00d2d4cf, 0x00dededa, 0x00e9e4e4, 0x00e4e1de, 0x00dedcda, 0x00dfdfdb, 0x00deddd8, 0x00dcdbd7, 0x00d9dad6, 0x00d6d9d0,
- 0x00dcdbcf, 0x00dfddd9, 0x00d4d2d0, 0x00cfcad1, 0x00dbd4e6, 0x00e2dbef, 0x00e0dbea, 0x00dbd7e2, 0x00d2d2d4, 0x00d1d6ce, 0x00cfd5cd, 0x00cccdcc, 0x00d1d0d7, 0x00cbc8ce, 0x00bbbbbf, 0x00bfc2c1,
- 0x00c3bfb6, 0x00bcbbb0, 0x00c1c0ba, 0x00c5c6c4, 0x0083818c, 0x002c3c60, 0x00152853, 0x00263052, 0x00545266, 0x0052525d, 0x0032353b, 0x00363b40, 0x00484851, 0x00585459, 0x00605354, 0x00735d5d,
- 0x00c0b9bc, 0x00fbf8f9, 0x00fffdfd, 0x00fdfafb, 0x00fdfdfd, 0x00f0f3f3, 0x00f4f7f6, 0x00f8fdfb, 0x00fdffff, 0x00ffffff, 0x00fcffff, 0x00cccfcc, 0x004d4943, 0x00292017, 0x0037291c, 0x00442f20,
- 0x00533b2d, 0x00594235, 0x005a473c, 0x00574740, 0x00504340, 0x00413f3f, 0x002f3536, 0x00292e32, 0x002d2d38, 0x002e2e3b, 0x002b2e3b, 0x00282c39, 0x00272936, 0x0022252d, 0x0020252a, 0x00272b32,
- 0x00413b2d, 0x004e483b, 0x005f594d, 0x00656358, 0x006d6d67, 0x006d716d, 0x00696e6a, 0x005f6463, 0x004c5258, 0x00373c42, 0x00282b2d, 0x0023261e, 0x0029291f, 0x00363226, 0x00463d31, 0x004d3f34,
- 0x004f3f36, 0x00433835, 0x00342c2d, 0x0029252b, 0x0022222b, 0x0024242c, 0x0027242d, 0x0026232c, 0x00232227, 0x00212323, 0x00252823, 0x0026291f, 0x00313123, 0x0043402f, 0x004c4833, 0x0056513a,
- 0x00705c48, 0x00705d48, 0x0063513b, 0x00564933, 0x00473b2c, 0x003b3327, 0x003c372a, 0x00423f33, 0x004b4943, 0x0052504a, 0x00565550, 0x00565853, 0x00555753, 0x00555551, 0x0052534f, 0x0051524e,
- 0x004e4d51, 0x00484649, 0x003d3c3f, 0x00343438, 0x002a292d, 0x00242426, 0x00222423, 0x00232323, 0x00262325, 0x002a2526, 0x002a2524, 0x0026221f, 0x0026201d, 0x00241f1b, 0x00221f18, 0x00221e17,
- 0x001c201c, 0x0020211f, 0x00717270, 0x00cececa, 0x00c8c2be, 0x00807872, 0x002a2218, 0x00221a0c, 0x00382717, 0x00402d1b, 0x0041321e, 0x00514739, 0x00aa9f97, 0x00bfbbb6, 0x00969a96, 0x00b3baba,
- 0x00e9eff3, 0x00ebeef1, 0x009e9f9e, 0x0044413c, 0x002f2a20, 0x00333440, 0x003d3f58, 0x004b4c64, 0x00595771, 0x00605d70, 0x0068656f, 0x00706d6a, 0x007f775d, 0x008a7e54, 0x008e824a, 0x00918342,
- 0x00b3931d, 0x00bb9d22, 0x00c3a72c, 0x00c9af30, 0x00cfb53a, 0x00ccb346, 0x00c3ad50, 0x00ad9b4f, 0x00b9a476, 0x00e6d4b2, 0x00fdfee4, 0x00fffcf2, 0x00fdfffa, 0x00f8fcfd, 0x00e6ebe9, 0x00a7a7a6,
- 0x008a7c78, 0x00b4b0ab, 0x00dfdfdd, 0x00eefafb, 0x00e9fdfc, 0x00ebf9ff, 0x00e8f4f9, 0x00e1eaf7, 0x00d5d8f6, 0x00c8c6f4, 0x00b4b6ec, 0x00a1a5e1, 0x00828ed5, 0x006f81ca, 0x005a71bb, 0x004863ae,
- 0x003a509b, 0x002c438f, 0x001e3582, 0x00192e81, 0x00182c7f, 0x001b2d81, 0x00192b7b, 0x00112474, 0x000f1f6c, 0x000f206c, 0x0016266b, 0x00172568, 0x00172160, 0x00131b55, 0x00101647, 0x000d163e,
- 0x000c0c2e, 0x003c3a54, 0x00a8a7b8, 0x00cbcad4, 0x00d3d2d7, 0x00dcd6d2, 0x00dacfc7, 0x00d5c8bf, 0x00decfc6, 0x00e6d6cb, 0x00e7d7cc, 0x00e6d9cc, 0x00e7ddd2, 0x00eae2d9, 0x00eae6dd, 0x00e9e6e2,
- 0x00f2eae7, 0x00f1e9e6, 0x00ece6e2, 0x00f6f0ea, 0x00d7cdc8, 0x00a79c96, 0x00a89e97, 0x00e1d7cf, 0x00e8ddd8, 0x00f0e2dc, 0x00e4d7d1, 0x00d9d2cd, 0x00e2cac0, 0x00e6cec0, 0x00e6d5c7, 0x00ded8cf,
- 0x00dfdfe1, 0x00e9d6d6, 0x00e1aca2, 0x00dc7a65, 0x00f2542b, 0x00f6541e, 0x00ed5825, 0x00eb7c5d, 0x00f8d5d9, 0x00f2e8f4, 0x00ebeaf8, 0x00e2e2ef, 0x00dccfd9, 0x00d3cbd4, 0x00d3d2dc, 0x00d2d9e5,
- 0x00e1d6eb, 0x00d8cfde, 0x00cecad3, 0x00cdd2de, 0x00d2d2e7, 0x00e9c0ca, 0x00c4726a, 0x00c0401d, 0x00e5471d, 0x00e15830, 0x00e47d60, 0x00e1b2ad, 0x00d4d0e2, 0x00d9ddf2, 0x00edf5f9, 0x00fefbf2,
- 0x00fffcf5, 0x00f9fcfc, 0x00f4ffff, 0x00ebf7fb, 0x0099928b, 0x00555156, 0x007b7c86, 0x00a1a7b6, 0x00c8cdef, 0x00bec8ed, 0x008a96be, 0x00858fb8, 0x00b5bbe3, 0x00cdd1f4, 0x00cecfed, 0x00cfcee7,
- 0x00e8c7fe, 0x00c2b9f7, 0x007d87c6, 0x00899fdc, 0x00d5dcff, 0x00c4cffc, 0x008ca5e8, 0x006d97ec, 0x006d97e9, 0x008da5e0, 0x00ccd3f2, 0x00d8d6da, 0x00dadbe9, 0x00dcddf8, 0x00d6d8f3, 0x00dee0f5,
- 0x00f1ecfd, 0x00eeeafe, 0x00cbd3f5, 0x007f92c3, 0x005f80ce, 0x00aab0e2, 0x00e9e6fe, 0x00dde2f7, 0x00eae1f1, 0x00f3dbde, 0x00e3bdb0, 0x00d09a7e, 0x00b78d63, 0x00a09865, 0x008a9f6b, 0x0078ad77,
- 0x00a59965, 0x009ea16e, 0x0093a26e, 0x008ea276, 0x0099a17d, 0x00a59d82, 0x009c8876, 0x00715952, 0x00443852, 0x0043446b, 0x0042488a, 0x00383da6, 0x00374fa9, 0x003255a6, 0x0027599e, 0x002c65a3,
- 0x003368ab, 0x00386ab6, 0x004370c4, 0x004f7adf, 0x002e51c2, 0x0027398e, 0x002e2b77, 0x002d1460, 0x00240d53, 0x00130d4f, 0x00121a5b, 0x00112164, 0x00231f65, 0x002a285b, 0x008690a9, 0x00d7efeb,
- 0x00fffefd, 0x00fefffd, 0x00fdfefb, 0x00fbfdfa, 0x00a7afa9, 0x00282f2a, 0x000d1a13, 0x000c1a12, 0x00121c17, 0x00111d17, 0x000e1d16, 0x000d1c15, 0x00111d16, 0x00101d16, 0x000d1e15, 0x000e1e15,
- 0x00111d19, 0x00101d18, 0x000f1c16, 0x000f1d15, 0x00101d16, 0x000d1a16, 0x00111e1a, 0x00121f18, 0x000f1a15, 0x001a261f, 0x00323e39, 0x002b3539, 0x00293248, 0x00343e5f, 0x0028305c, 0x00272b63,
- 0x002b2a74, 0x002d2d77, 0x00292b74, 0x002f3682, 0x002f3a86, 0x00233078, 0x00253073, 0x002b3471, 0x00313569, 0x0029305f, 0x002a283c, 0x003e2e0b, 0x00523b11, 0x00593f12, 0x005e4311, 0x00664812,
- 0x007a5523, 0x007d552c, 0x00885f3c, 0x008b6147, 0x007b543f, 0x006d4630, 0x00724730, 0x00855337, 0x008a553f, 0x00774f38, 0x006b563a, 0x0051482e, 0x002d2609, 0x00593e1b, 0x008a5c33, 0x009d5b29,
- 0x00d43e02, 0x00d4320e, 0x00d14930, 0x00e49483, 0x00c8d0c0, 0x00c7c4ba, 0x00d8cac5, 0x00dabfbe, 0x00c1b8b2, 0x00c6beb7, 0x00cbc4bc, 0x00c5beb8, 0x00d3cac9, 0x00ddd6d5, 0x00dedad5, 0x00d6d2ce,
- 0x00cecbcd, 0x00bebbbc, 0x00c8c4c4, 0x00d4d2d1, 0x00cdcbcc, 0x00d1cfd1, 0x00dedcdd, 0x00dad7d7, 0x00cecacd, 0x00cdc9cc, 0x00c9c6c8, 0x00cac8c9, 0x00d1d0d0, 0x00d5d3d3, 0x00d5d3d2, 0x00d3d1d0,
- 0x00d3d7dd, 0x00d4d4d8, 0x00d1cecb, 0x00d4cec7, 0x00d2d0ca, 0x00ced0cf, 0x00c4c8c6, 0x00b2b3b2, 0x00baada4, 0x00baa394, 0x009a816d, 0x008b7256, 0x00886d50, 0x00816241, 0x007a5831, 0x007b592d,
- 0x007c552d, 0x00784e2a, 0x006d4525, 0x00674023, 0x005c381e, 0x00573113, 0x00613615, 0x006b3b14, 0x00865225, 0x00895e36, 0x00aa8d66, 0x00e5d6b9, 0x00fefdf7, 0x00fcfafb, 0x00fdfdfd, 0x00fdfbfb,
- 0x00f0f5f6, 0x00cee1f1, 0x0059759e, 0x003f68a7, 0x003e6eb3, 0x004973ac, 0x006183ab, 0x00c6daeb, 0x00f2f8f4, 0x00f5faf2, 0x00f5f9f3, 0x00f4f6f3, 0x00efefee, 0x00d0d1d1, 0x00535252, 0x004a4a49,
- 0x00383237, 0x00342d34, 0x002f2830, 0x002d2730, 0x002d2630, 0x002e2730, 0x00322c33, 0x003e373e, 0x00585052, 0x00615d5e, 0x0066656a, 0x00595b68, 0x002d3254, 0x001f285a, 0x00192462, 0x0016256b,
- 0x00172072, 0x001c2779, 0x00303f91, 0x00324698, 0x0020378c, 0x001b348a, 0x00233992, 0x0031469c, 0x004556ad, 0x00324498, 0x001d2e7a, 0x001e2865, 0x000a1859, 0x000d1c5f, 0x00142569, 0x00162a6b,
- 0x00151d62, 0x001f2b68, 0x00364175, 0x0058638f, 0x00242b53, 0x00081021, 0x00131b21, 0x0017262a, 0x006d787b, 0x00717672, 0x00888479, 0x00bfaca3, 0x00f9e6e0, 0x00cec5c5, 0x009ea4a8, 0x00c7dee4,
- 0x00f2eee7, 0x00f5f4ef, 0x009fa19d, 0x00232a2d, 0x003f4b64, 0x00596890, 0x0035457a, 0x002a3a78, 0x00273671, 0x00203068, 0x0013224c, 0x000b172e, 0x00585a65, 0x00928d8c, 0x00968e83, 0x00a49786,
- 0x00a79f9a, 0x00a4a1ac, 0x00959bb4, 0x005f6e99, 0x00304888, 0x002e4687, 0x00284280, 0x0023397c, 0x00223177, 0x001c295c, 0x00222a4c, 0x00393e4d, 0x00483f3c, 0x00473732, 0x00483432, 0x004c3436,
- 0x00543831, 0x005c403b, 0x0060423a, 0x00583b2f, 0x0052362c, 0x004f382c, 0x0057483b, 0x00bbb5ab, 0x00eff2ea, 0x00dae4db, 0x00c5cdc1, 0x00c9cfb8, 0x00e0f0f7, 0x00ede3ee, 0x00bba2b0, 0x00593f54,
- 0x002e4274, 0x004d5d80, 0x00828094, 0x007f6961, 0x00928183, 0x00a59791, 0x00a59892, 0x00a99f98, 0x00b0a19c, 0x00aea19a, 0x00a99e97, 0x00a39c93, 0x00a6a097, 0x00aeaaa0, 0x00b7b3a9, 0x00c1beb3,
- 0x00f9fff5, 0x00f6fdf5, 0x00f2f3f3, 0x00969796, 0x000e0f0b, 0x00090d08, 0x00131513, 0x00181717, 0x000e160b, 0x00131a11, 0x001b2627, 0x0014303d, 0x00354386, 0x00404f96, 0x0028377b, 0x00182a56,
- 0x00122a42, 0x00304771, 0x00485d9d, 0x00455aab, 0x004560a3, 0x005b6dae, 0x006c7cb7, 0x007a87c4, 0x008496c3, 0x008ca1c8, 0x0097a8cf, 0x009aaac7, 0x006e8293, 0x002f4250, 0x000d1d2a, 0x0024323d,
- 0x00233e7d, 0x0026407f, 0x00253a7d, 0x001c2c6f, 0x00101d59, 0x00071448, 0x001b254f, 0x00717597, 0x00d6e4e9, 0x00d1dcdd, 0x00768188, 0x008794a2, 0x00bdc6d0, 0x0060646a, 0x000a090c, 0x000d0806,
- 0x000b0f04, 0x00060c04, 0x000d1312, 0x00222b2d, 0x005f7077, 0x008fa4ba, 0x00b0c6e5, 0x00b7d3f5, 0x00a4d2f1, 0x0091c3e9, 0x0071a4d7, 0x004d85b9, 0x005a91c5, 0x007eb3e2, 0x008fbdee, 0x0091c1ee,
- 0x0087c5e9, 0x008fc3e9, 0x008fb9e0, 0x0091b1cc, 0x0059687a, 0x001a1f29, 0x00070c10, 0x0007070a, 0x00000601, 0x00000500, 0x00040806, 0x00030300, 0x000a0903, 0x00030305, 0x00040a13, 0x0033425c,
- 0x007aa6ca, 0x0089bbe8, 0x008abaf4, 0x006893d1, 0x004a6fa4, 0x004a6fab, 0x006086c8, 0x005c86cc, 0x003f73b8, 0x00376db7, 0x00366fbe, 0x003770c5, 0x003670bd, 0x003971bb, 0x00386dba, 0x003368b1,
- 0x002b4f98, 0x00183f8b, 0x00184191, 0x001b479b, 0x001c4b95, 0x00264d8d, 0x002f5083, 0x00192e4e, 0x00000906, 0x00040701, 0x00070501, 0x000a080b, 0x00060608, 0x00070507, 0x00050306, 0x00050407,
- 0x00000100, 0x00000100, 0x00010303, 0x00030204, 0x00010000, 0x00010100, 0x00030304, 0x00040304, 0x00000100, 0x00000200, 0x00020302, 0x00020203, 0x00050304, 0x00050405, 0x00060407, 0x00060507,
- 0x00000500, 0x00232a23, 0x00b6b3b4, 0x00f5f2f6, 0x00fefeff, 0x00f7fbfb, 0x00ffffff, 0x00eff0f1, 0x007b7a6d, 0x001f130b, 0x002c150d, 0x00382411, 0x00532f1d, 0x005d3721, 0x006e4834, 0x00765842,
- 0x00665c3e, 0x006a583a, 0x00745230, 0x00834924, 0x0098390d, 0x008e3c14, 0x00873712, 0x008a340e, 0x008c370b, 0x008f3b12, 0x008d3e1c, 0x007e381e, 0x00552d1c, 0x0036231a, 0x00262222, 0x002b3337,
- 0x00343534, 0x0040433e, 0x00403f3c, 0x00393b36, 0x002f3228, 0x002a2a21, 0x002b2922, 0x00383128, 0x003d3625, 0x003a2f1f, 0x003e3330, 0x005d5d5a, 0x00918aa6, 0x0067709d, 0x002b467f, 0x000e4586,
- 0x000b3b78, 0x00353f72, 0x009d8eba, 0x00e8d1e7, 0x00dae5d4, 0x00d1d1cd, 0x00cdcbce, 0x00d2d0d6, 0x00dee5e0, 0x00e1e7e3, 0x00dcdee0, 0x00dedde1, 0x00dfdfe0, 0x00dfdddc, 0x00e1dbda, 0x00e0dad7,
- 0x00d9dad3, 0x00d9dbd7, 0x00d6d7da, 0x00cfd1d7, 0x00d1d4e0, 0x00dadce9, 0x00e1deed, 0x00dcdae7, 0x00cccfd0, 0x00cbcccd, 0x00d6d2d4, 0x00cdcbc6, 0x00d0cfd1, 0x00cccacf, 0x00c0bfc6, 0x00c2c4c6,
- 0x00bac4b2, 0x00b2beab, 0x00babeb2, 0x00c4c6c2, 0x00888691, 0x00313f60, 0x0015234e, 0x00303758, 0x004b5457, 0x00393f3f, 0x0029292c, 0x002d3032, 0x0037353b, 0x004b3e43, 0x005a4347, 0x006c4a4e,
- 0x00adaea8, 0x00f4f5f0, 0x00fefefd, 0x00fcfafb, 0x00fbfbfc, 0x00eff1f1, 0x00f7f8f9, 0x00fdfcfe, 0x00f7fff9, 0x00f6fffa, 0x00fcfeff, 0x00cdd4d3, 0x00545350, 0x002b241b, 0x00382a20, 0x00463027,
- 0x0048391f, 0x004b3c27, 0x00514134, 0x0050413b, 0x00483f3a, 0x003a3b40, 0x0030333f, 0x002d2c3a, 0x00242837, 0x00262b3b, 0x002b2f41, 0x002e3144, 0x002b2f3c, 0x00232732, 0x00272b32, 0x00313739,
- 0x00404028, 0x004c4b38, 0x005c584b, 0x00646258, 0x006f706b, 0x00767875, 0x00757576, 0x00717377, 0x00576665, 0x00465253, 0x00333c3e, 0x0029302e, 0x00292c25, 0x00302d25, 0x003e352c, 0x00493b32,
- 0x00403a2a, 0x003b372e, 0x00343033, 0x002a2a34, 0x00232638, 0x002c2839, 0x00352c3e, 0x00302c3c, 0x00222929, 0x00202624, 0x00242823, 0x0025281f, 0x00303125, 0x00413e31, 0x00524b3e, 0x005f5548,
- 0x006f6347, 0x006f6249, 0x00635642, 0x00564a3a, 0x00413729, 0x00322b20, 0x00322e25, 0x0037342d, 0x00333b2d, 0x003b4237, 0x00464842, 0x004b4a46, 0x00494948, 0x00484845, 0x00484746, 0x00474748,
- 0x003d403d, 0x00383d37, 0x00363637, 0x00303034, 0x0027282e, 0x00212526, 0x00232226, 0x001e1c20, 0x00161a17, 0x00181c19, 0x001d1c1e, 0x001e1b1d, 0x001d1c1a, 0x001e1c18, 0x0025201f, 0x00282522,
- 0x00172317, 0x00171f16, 0x00666964, 0x00c7c6c3, 0x00d8d3d0, 0x00b7afa9, 0x005c5046, 0x003e2e23, 0x00362b0e, 0x003c2f11, 0x003d2c16, 0x00322113, 0x00544941, 0x009d9893, 0x00c4c3c3, 0x00d2d7dd,
- 0x00e6eee9, 0x00e0e7e2, 0x00868886, 0x0036332f, 0x0039332c, 0x00484744, 0x00595d61, 0x006f7379, 0x00758385, 0x007b8588, 0x0084888d, 0x008d8c8a, 0x00999281, 0x00a69a7a, 0x00b1a077, 0x00b8a374,
- 0x00bab053, 0x00c5b75e, 0x00d3c069, 0x00dac56f, 0x00ddc979, 0x00e0cc83, 0x00e0cc8d, 0x00daca94, 0x00d1cd9c, 0x00e7e6bd, 0x00fcfbe3, 0x00fffaf3, 0x00fffeff, 0x00f8fdff, 0x00e8f1f2, 0x00a8afb1,
- 0x00767f73, 0x00a5a69a, 0x00ded9d5, 0x00f6f3f7, 0x00fafdff, 0x00fbfafe, 0x00fffaff, 0x00fffbff, 0x00f8fcf8, 0x00f9fdfb, 0x00f8fcfd, 0x00f1f6fd, 0x00e7ecf9, 0x00dfe4f8, 0x00d3d7f1, 0x00c3c7e5,
- 0x00a5b3d1, 0x009ba8cb, 0x008c96c3, 0x007982b5, 0x00616aa1, 0x00515a91, 0x00404b82, 0x002f3a71, 0x00122753, 0x000f234d, 0x00142352, 0x00151f53, 0x000f1a47, 0x000c1640, 0x000e113a, 0x000e0f34,
- 0x00000616, 0x00343942, 0x00b3b2ba, 0x00d0cdd0, 0x00d4d1cd, 0x00d1c7c3, 0x00d1c0ba, 0x00d5c4be, 0x00d9cdbd, 0x00dfd0c2, 0x00e4d4c8, 0x00e7d8cd, 0x00e6dbd1, 0x00e7dfd7, 0x00ece6e0, 0x00ede7e4,
- 0x00ebe8e2, 0x00ece8e2, 0x00f5efea, 0x00e3dcd7, 0x00857b76, 0x00453a34, 0x00685c55, 0x00c1b4ad, 0x00ded6c8, 0x00e5ddce, 0x00d9d0c7, 0x00d7cdca, 0x00e1ccc1, 0x00e5ccc0, 0x00e8d3c9, 0x00e1d6cf,
- 0x00d9dfda, 0x00dfd1ca, 0x00dba9a0, 0x00db7d66, 0x00ee5933, 0x00f95221, 0x00f3592b, 0x00ed7959, 0x00efd1cb, 0x00ebe7ec, 0x00eae8f7, 0x00e3dfed, 0x00dacbd5, 0x00cfc9d1, 0x00d5d2e1, 0x00d6ddef,
- 0x00d4d7ed, 0x00cfcbd2, 0x00ccc7cc, 0x00d6d3d5, 0x00d9d1de, 0x00dfa7ab, 0x00bd564a, 0x00db3f19, 0x00df4812, 0x00db6239, 0x00e89787, 0x00dfc2c9, 0x00cdd5ec, 0x00d5dff4, 0x00f4faff, 0x00fffdf9,
- 0x00fafde9, 0x00effcf4, 0x00f6fffe, 0x00e2e9f2, 0x008c7c79, 0x005b535a, 0x00848395, 0x00b0afc7, 0x00b9c9e2, 0x009daed3, 0x00616d9b, 0x00636fa0, 0x00b5bde8, 0x00d2d4fb, 0x00d4d0f3, 0x00d5cfef,
- 0x00dac2ee, 0x00b2aee2, 0x008891cb, 0x00a3b4ea, 0x00d4d7fc, 0x00c6cdf8, 0x009fabea, 0x007995e5, 0x007699da, 0x00acbde9, 0x00e7e8f7, 0x00f1ebe5, 0x00eceaf0, 0x00e3e2f5, 0x00d6d4e9, 0x00ded9ee,
- 0x00e4e8f0, 0x00ddeaf4, 0x00a8b8df, 0x004e69ab, 0x003965c3, 0x00899dd5, 0x00e6e8ff, 0x00f4e7ff, 0x00ebc8cb, 0x00dba79b, 0x00c5806a, 0x00bd7c50, 0x00af8d55, 0x009f9b64, 0x008da271, 0x007ba67f,
- 0x009c9a62, 0x00989b68, 0x00969d70, 0x00929e74, 0x009b996e, 0x00958865, 0x00715e47, 0x0041312e, 0x0022334e, 0x0026497b, 0x002d4384, 0x00413572, 0x002e449e, 0x002350b4, 0x002258c0, 0x003864cb,
- 0x00455e9c, 0x004f5f99, 0x005568ab, 0x005174c6, 0x00195dc8, 0x003c4f7d, 0x00504154, 0x00361c33, 0x0008080e, 0x00000707, 0x000b1a13, 0x00242a1b, 0x00532e19, 0x00593d23, 0x00a79f82, 0x00dff4d7,
- 0x00fbfef8, 0x00fafdf8, 0x00fdfffc, 0x00fafefb, 0x00a6aea8, 0x0027302a, 0x000f1a16, 0x000f1915, 0x000b1b0f, 0x000d1e11, 0x000e1e15, 0x000d1c14, 0x00101d15, 0x000f1d17, 0x00121e1b, 0x0013201a,
- 0x000b1c11, 0x000d1c13, 0x000f1d17, 0x00101d17, 0x00121d18, 0x00111c1c, 0x00111d1e, 0x00131f19, 0x00071a06, 0x000b1e0b, 0x002a382d, 0x0035433f, 0x00273245, 0x00323a5a, 0x00353967, 0x002d316a,
- 0x002a2d53, 0x00282c56, 0x002a295d, 0x002d316b, 0x002e387b, 0x002a357c, 0x0028317a, 0x002b357a, 0x0026346a, 0x00203165, 0x00302d49, 0x00573922, 0x006d4d2c, 0x0078582b, 0x00855f2e, 0x008b652f,
- 0x008b6c2a, 0x008c6830, 0x008f6a3c, 0x008b6640, 0x00765235, 0x00614125, 0x006c4b2d, 0x0085573d, 0x00774c2c, 0x00644b2c, 0x0062533f, 0x003a402d, 0x00141a05, 0x00301e07, 0x0061361c, 0x00954d31,
- 0x00d13e00, 0x00cc3004, 0x00da533a, 0x00e79f8f, 0x00cad7c5, 0x00c5c1bc, 0x00dcc7c9, 0x00e4c4c5, 0x00b9b6a8, 0x00bebbad, 0x00d3cdc4, 0x00c9c1bd, 0x00c2b9b5, 0x00cec8c4, 0x00dddad8, 0x00ddd9d7,
- 0x00cac9c3, 0x00babab6, 0x00bdbbbb, 0x00d1cfd1, 0x00cfcfd1, 0x00cdcdcd, 0x00dad6d9, 0x00d8d4d9, 0x00c8c9c6, 0x00c9cac7, 0x00ccc8c8, 0x00cfcbcc, 0x00d2d1d2, 0x00d6d4d6, 0x00dbd5d9, 0x00dbd4d9,
- 0x00cfd5d7, 0x00d3d4cf, 0x00d9d3ce, 0x00d8d1cb, 0x00d5d1cd, 0x00d2d2d2, 0x00bebfc7, 0x00abaeb4, 0x00c0c0b7, 0x00c9c1b5, 0x00a7978e, 0x00867971, 0x00756254, 0x00776351, 0x00755844, 0x00715035,
- 0x00614220, 0x0058381b, 0x00542f1a, 0x00572f1c, 0x0052301d, 0x00573314, 0x006d401d, 0x007f4e23, 0x008d6427, 0x00936f36, 0x00b99a6f, 0x00f0e0c1, 0x00fdfcf5, 0x00fbfcfb, 0x00ffffff, 0x00fffdff,
- 0x00eff0e4, 0x00e2f4eb, 0x008faeb8, 0x00416c89, 0x003a6fad, 0x003e67ae, 0x00546db7, 0x008d9dd3, 0x00ecf9fa, 0x00f3feef, 0x00f2f7e8, 0x00f9fbf9, 0x00efecea, 0x00eeebe9, 0x00737070, 0x003c3636,
- 0x00363535, 0x00313030, 0x00322b30, 0x00332c33, 0x00332c34, 0x0036303c, 0x00403342, 0x00433640, 0x00535347, 0x00686a5f, 0x00676666, 0x0033323f, 0x000a0d2d, 0x001b2252, 0x00171f62, 0x00141c6a,
- 0x000f1e63, 0x0016246e, 0x00283786, 0x003a499d, 0x00465baf, 0x005167bc, 0x00546ac2, 0x00455ab4, 0x00213a8d, 0x001c3688, 0x002d3e8d, 0x0025336e, 0x0010205c, 0x000c1e5e, 0x000f2063, 0x00192b6b,
- 0x001b336e, 0x0012235e, 0x00111d57, 0x001d285c, 0x00262e5f, 0x00140c24, 0x001f151f, 0x0017181c, 0x0082948d, 0x007c8780, 0x00706b69, 0x009e908e, 0x00efe5e3, 0x00f5f3ef, 0x00d9dfdc, 0x00dbe6e3,
- 0x00efeee7, 0x00e7eae0, 0x00515554, 0x00101a1d, 0x00404e68, 0x004d5b8c, 0x00333d7a, 0x002c3c7e, 0x0021386a, 0x001f365f, 0x00172140, 0x000d0d1e, 0x00272831, 0x002b2c2f, 0x00363436, 0x003b3b3d,
- 0x003f4950, 0x006f7d93, 0x006c7da3, 0x003f5389, 0x002a4489, 0x00254382, 0x00264185, 0x001f3c80, 0x00152c66, 0x00202f54, 0x003c435a, 0x0048484c, 0x00474234, 0x004a3f3c, 0x004f3f47, 0x00564357,
- 0x00494335, 0x00443a2b, 0x004e3b2f, 0x00574136, 0x00593e34, 0x00553e36, 0x00594541, 0x00b0a29d, 0x00e6efe7, 0x00ddebe4, 0x00cdd4cc, 0x00c5c7ac, 0x00d6e6f4, 0x00edeef9, 0x00c4b0c8, 0x00573f5b,
- 0x001e355f, 0x00536480, 0x00706c7a, 0x00785b52, 0x007f6f70, 0x0093827d, 0x00a08c83, 0x00a49087, 0x009f9385, 0x009f9385, 0x009f9387, 0x009d9185, 0x009e9286, 0x00a3978b, 0x00aa9f92, 0x00bbb0a3,
- 0x00fbfffb, 0x00f8fefa, 0x00e6eae7, 0x00838683, 0x000a0d0a, 0x000e120e, 0x00171814, 0x00181b17, 0x00181e19, 0x00191f1c, 0x0016252b, 0x0012314e, 0x002a3e91, 0x003444a2, 0x00233288, 0x00162764,
- 0x00091d42, 0x0025386d, 0x00425598, 0x004457a6, 0x004a62a6, 0x00697bb4, 0x007e8fbb, 0x008998c7, 0x0095a7cf, 0x009badd2, 0x0095a2c9, 0x00a5b1d2, 0x00b8c4dd, 0x007f8aa2, 0x00232d41, 0x00060b1e,
- 0x0001182b, 0x00183352, 0x00304a7b, 0x002f418b, 0x001e2881, 0x001d247c, 0x00121663, 0x00303672, 0x00a7b2c1, 0x00ecf6fa, 0x00a4b4b5, 0x00657688, 0x00b7c2d0, 0x0098a0a6, 0x0013181a, 0x00080907,
- 0x000b0b07, 0x00020703, 0x002a3437, 0x007d8c8e, 0x00c0d6df, 0x00c4e1f6, 0x00aaccee, 0x0099c0e7, 0x0086b7e9, 0x0075afe7, 0x0064a2e2, 0x005494d5, 0x005090cf, 0x005794cf, 0x005e97d0, 0x005e96cd,
- 0x004f95d2, 0x005e99d2, 0x0074a5d2, 0x0098c0e0, 0x009eb4c9, 0x00646f7c, 0x00161d23, 0x00000001, 0x00000302, 0x00020303, 0x00030802, 0x00000600, 0x00050b00, 0x00020704, 0x00010f17, 0x00395370,
- 0x0072a5dd, 0x00679ee5, 0x005790e3, 0x004276ce, 0x003f6bc2, 0x003d69b9, 0x003462af, 0x003767b6, 0x00396cc4, 0x003469c2, 0x003469c4, 0x003469c6, 0x003468bd, 0x003768bb, 0x003666b6, 0x003262ae,
- 0x002d458b, 0x00213b85, 0x00234492, 0x00244b9f, 0x00184490, 0x001e478a, 0x0027487e, 0x001c3457, 0x00060e11, 0x00080a05, 0x000a0a04, 0x00080a09, 0x00060807, 0x00060606, 0x00040504, 0x00040404,
- 0x00020301, 0x00000200, 0x00010102, 0x00020002, 0x00010000, 0x00000100, 0x00010301, 0x00010200, 0x00000001, 0x00010101, 0x00030202, 0x00040402, 0x00060505, 0x00050505, 0x00080807, 0x00080909,
- 0x00000601, 0x00353a35, 0x00cdcac9, 0x00fbf7f9, 0x00fefbfe, 0x00fafcfd, 0x00fbfefe, 0x00e3e8e5, 0x007c7670, 0x00382723, 0x0054453e, 0x005d5b4d, 0x00796f59, 0x0082715d, 0x008b7a63, 0x008e826a,
- 0x0083866c, 0x00868165, 0x008f7a57, 0x009d7048, 0x00ac5e30, 0x00a25a39, 0x00985037, 0x00994a31, 0x009f482e, 0x00a14932, 0x009a4a36, 0x008c4536, 0x00653c33, 0x0043302d, 0x00282729, 0x00222e33,
- 0x002b2a2a, 0x00313230, 0x002a2a27, 0x00242620, 0x001e2118, 0x001e1e14, 0x00262419, 0x003a3429, 0x00453e32, 0x0042352a, 0x00422f24, 0x005a4636, 0x0083737f, 0x006f7c9e, 0x00346191, 0x00145f99,
- 0x0027559f, 0x0056549d, 0x00a98dc8, 0x00eacce7, 0x00cbe3d1, 0x00c9cfcf, 0x00cdcdd9, 0x00d0cedd, 0x00d6d9e6, 0x00dde1ec, 0x00dcddea, 0x00dcdbe7, 0x00dedce5, 0x00e1dde3, 0x00e2dbe0, 0x00dfd9db,
- 0x00dcd4ec, 0x00d7d4e6, 0x00d8dae3, 0x00d0d9d9, 0x00ccdbd4, 0x00d2e0da, 0x00d7e1df, 0x00d9e1e3, 0x00d1cddd, 0x00d0c6df, 0x00d4ccd8, 0x00cdcac2, 0x00cfcdcd, 0x00ccccd0, 0x00c0c3c4, 0x00c1c5c4,
- 0x00bbc6b7, 0x00b5c0af, 0x00b2bbaf, 0x00c1c6c2, 0x00878b94, 0x00344161, 0x00102149, 0x00333b5a, 0x004a4e57, 0x0028292b, 0x00131514, 0x00191c1b, 0x00201c1e, 0x00322426, 0x00432a2c, 0x00563433,
- 0x009d9c9b, 0x00f2f2f1, 0x00fcfcfc, 0x00fefdfe, 0x00fafafa, 0x00eff1f0, 0x00f4f6f6, 0x00fdfdfd, 0x00fafdfc, 0x00fafffd, 0x00fbfefe, 0x00d2d9d8, 0x005d5e5c, 0x00312d24, 0x00393020, 0x00453523,
- 0x0047351f, 0x00473524, 0x0049382d, 0x00473933, 0x00413936, 0x00373942, 0x002d3344, 0x00292d3e, 0x00292c43, 0x002a2d44, 0x002b2e45, 0x002c3044, 0x002c323d, 0x00272d35, 0x002e3538, 0x003c4443,
- 0x004f4c39, 0x00575344, 0x005d584b, 0x00615e53, 0x006b6c65, 0x00747672, 0x00747675, 0x00717678, 0x00657172, 0x00555f64, 0x00404a4f, 0x00313c3b, 0x00292e28, 0x002b2a21, 0x00363026, 0x003e3429,
- 0x003f362f, 0x003a3433, 0x00353138, 0x002c2f3c, 0x00282e40, 0x002f2f41, 0x00373142, 0x00343143, 0x002a2d33, 0x0023272a, 0x00202423, 0x0020231d, 0x002b2a21, 0x003d382c, 0x004e4839, 0x005b5344,
- 0x006d614a, 0x006e624e, 0x00625644, 0x00524838, 0x003c3427, 0x002b271a, 0x00252419, 0x0026271f, 0x00272c26, 0x002b322e, 0x00333733, 0x00373832, 0x00363735, 0x00353733, 0x00353633, 0x00343535,
- 0x00333433, 0x00313232, 0x00302d31, 0x002d282d, 0x00232227, 0x001d1e20, 0x001b1e1e, 0x00181b1b, 0x00191b18, 0x00181a17, 0x00181717, 0x00151315, 0x00131312, 0x00151614, 0x001d1c1c, 0x0021211f,
- 0x00171f1a, 0x0019201c, 0x00626664, 0x00bebfbd, 0x00d5d1cd, 0x00dad2c9, 0x00b3a799, 0x00978978, 0x0067573f, 0x00564429, 0x00513d26, 0x004c3b2c, 0x00584c44, 0x009d9792, 0x00dcddd8, 0x00e7eeec,
- 0x00e9f0f2, 0x00e4e8ea, 0x00a1a2a1, 0x0074746f, 0x0087837a, 0x00959983, 0x00a5ae94, 0x00b4bca9, 0x00bfc9c2, 0x00c1c9c6, 0x00c5c8cb, 0x00cbc9cc, 0x00d5cec8, 0x00dfd4c2, 0x00e6d9bd, 0x00e9dbb9,
- 0x00e7dccd, 0x00eee1d5, 0x00f4e5d8, 0x00f7e8d9, 0x00faecdf, 0x00fbeee2, 0x00fcf1e6, 0x00fcf3ec, 0x00f7f7f0, 0x00f8f9f1, 0x00faf9f3, 0x00fefaf8, 0x00fefdfd, 0x00f6fffe, 0x00e2f3f3, 0x00a3b6b8,
- 0x00778378, 0x00a0a49a, 0x00dcd7d4, 0x00f8f2f2, 0x00fdfafc, 0x00fffcfa, 0x00fffcf9, 0x00fdfdf9, 0x00fdfdf2, 0x00fdfef2, 0x00fbfdf0, 0x00fafcef, 0x00fdfef1, 0x00fdfef3, 0x00fbfbf1, 0x00faf9f0,
- 0x00f7f6fe, 0x00f7f7fe, 0x00f4f4fd, 0x00e8eaf6, 0x00d4d6e9, 0x00c3c7e0, 0x00b0b6d0, 0x009aa1ba, 0x007d879d, 0x006a778e, 0x00586484, 0x00445077, 0x002c3a5d, 0x00192545, 0x000e1430, 0x00080b23,
- 0x00070b1a, 0x0032343d, 0x00a29fa5, 0x00c8c7c5, 0x00c5c2ba, 0x00bcb2a9, 0x00c4b2ab, 0x00cebcb6, 0x00d8c5ba, 0x00dfccc1, 0x00e5d1c8, 0x00e6d5cb, 0x00e4d9cf, 0x00e5dfd4, 0x00e8e5da, 0x00e9e7dc,
- 0x00e8e3de, 0x00ece7e2, 0x00d5cec9, 0x00918983, 0x00342b25, 0x0021170f, 0x006b6157, 0x00baafa5, 0x00e1d6c8, 0x00e3d7ca, 0x00d6cbc3, 0x00d3c9c6, 0x00e0cbc0, 0x00e7ccbf, 0x00e7d3c6, 0x00dfd4cd,
- 0x00d8d9d7, 0x00dacac6, 0x00cfa197, 0x00d47964, 0x00e8532e, 0x00f84e1d, 0x00f15625, 0x00e97754, 0x00f4cecd, 0x00efe7ef, 0x00e4e3f2, 0x00dcd9e7, 0x00d5c9d2, 0x00cdc7ce, 0x00d4d4de, 0x00d9e3ef,
- 0x00d8d7f8, 0x00d1cad6, 0x00cecbc8, 0x00ded8d5, 0x00d0c5cb, 0x00ca8a88, 0x00b3422e, 0x00e13c0e, 0x00e74c19, 0x00ee7a5e, 0x00ecafa7, 0x00d7c8d1, 0x00c7d4eb, 0x00d2e2f3, 0x00f3fdfa, 0x00fdfcf2,
- 0x00fcfced, 0x00f4fcf9, 0x00f4fdfb, 0x00d7dde9, 0x0083706d, 0x00675c6b, 0x008e8da0, 0x00b7b7d0, 0x0097a4c7, 0x005a6795, 0x002b386a, 0x004e5e92, 0x00b2bbe7, 0x00d0d4fd, 0x00d2d2f5, 0x00d4cfef,
- 0x00d7c4e0, 0x00b6b8dc, 0x009fb1d1, 0x00b4c8e9, 0x00d6dce2, 0x00e7eaf9, 0x00d9e2f8, 0x00bcd3f9, 0x00afc3df, 0x00c7c9d6, 0x00e8deda, 0x00f5ede2, 0x00e8e5e7, 0x00dcd9e4, 0x00dddbe6, 0x00e2e1ec,
- 0x00e6eaf2, 0x00e3ecfa, 0x0093a7d1, 0x003658a1, 0x00295ec4, 0x006085be, 0x00beccea, 0x00dac5e3, 0x00d98996, 0x00c66c64, 0x00bf6948, 0x00bf7d46, 0x00a29148, 0x0092995a, 0x00869c6b, 0x00809d7a,
- 0x0082a36b, 0x0081a26e, 0x007fa06d, 0x0084a06c, 0x00939662, 0x0098885e, 0x00846a4f, 0x005d413d, 0x003d3e6f, 0x003d4b9b, 0x00284499, 0x001d3f82, 0x00284397, 0x00354ba9, 0x004253b9, 0x004f5bc8,
- 0x00525bbf, 0x00565eb8, 0x006e79be, 0x00727eb5, 0x00324668, 0x004c4641, 0x00604e38, 0x003d2417, 0x000a0c07, 0x0006150c, 0x001f2a19, 0x00503e25, 0x00964e37, 0x00a16557, 0x00cbb2ae, 0x00e3f5f6,
- 0x00fdfefb, 0x00fbfdfa, 0x00fdfffd, 0x00fafefc, 0x00a7aea8, 0x00273029, 0x000e1b15, 0x000e1a14, 0x000e1b13, 0x000e1e14, 0x000d1e15, 0x000d1c14, 0x00101d15, 0x00101d17, 0x00101d18, 0x000f1e16,
- 0x000f1f14, 0x00101d15, 0x000f1d16, 0x000f1d15, 0x00111c17, 0x000f1c1b, 0x000d1b1a, 0x000e1b15, 0x000b1c09, 0x000e1e0b, 0x00212e21, 0x003c4942, 0x0035414e, 0x002e3753, 0x00353a64, 0x00272c63,
- 0x001c1d27, 0x00111324, 0x00161836, 0x00191f47, 0x00202b63, 0x00283476, 0x00252f7a, 0x00242f7d, 0x00232e7b, 0x00222b79, 0x002f2758, 0x00573730, 0x00775340, 0x00886444, 0x00946e42, 0x009c743e,
- 0x009d783a, 0x009a753a, 0x00927037, 0x00876635, 0x0072552c, 0x00604a20, 0x00574115, 0x005c3a16, 0x00573112, 0x004e3921, 0x00423d2d, 0x0017281d, 0x000c1b0e, 0x00231408, 0x0042180d, 0x007f392e,
- 0x00d93e00, 0x00d33009, 0x00de5941, 0x00eea998, 0x00cddec9, 0x00ccc8bf, 0x00dcccc9, 0x00e6c7c6, 0x00bfb9ae, 0x00bebbb0, 0x00d3cec7, 0x00d4cdc8, 0x00c1bab6, 0x00bcb6b3, 0x00c9c4c1, 0x00d8cfcc,
- 0x00cdcbca, 0x00bfbebb, 0x00b8b6b4, 0x00cac8c8, 0x00ceced0, 0x00cccccd, 0x00d8d5d6, 0x00d7d4d4, 0x00cfcdcf, 0x00cfcdcf, 0x00cfcbcd, 0x00d1cdce, 0x00d2d1d1, 0x00d4d3d3, 0x00d7d3d4, 0x00d6d3d3,
- 0x00d3d6da, 0x00d9d7d5, 0x00ddd5d0, 0x00ded3ce, 0x00dcd5d3, 0x00d1d0d2, 0x00b5b9c0, 0x00adb3bb, 0x00ccccce, 0x00c8c1bf, 0x0098908f, 0x00686566, 0x00453d38, 0x004c3f36, 0x004c382b, 0x004f3323,
- 0x004a2913, 0x00482412, 0x00492616, 0x004f2c1e, 0x00523123, 0x005d391a, 0x007a5225, 0x008f6430, 0x00a17536, 0x009e793f, 0x00bca070, 0x00f3e5c5, 0x00fdfdf5, 0x00fdfefd, 0x00fdfcff, 0x00fdfbfc,
- 0x00f8efe6, 0x00e5f0e6, 0x00d0e9e4, 0x00719ca8, 0x0036699a, 0x004068b5, 0x004d66be, 0x00606ec1, 0x00c2cee1, 0x00f5fbf0, 0x00f1fae5, 0x00f5f8f1, 0x00f6faf3, 0x00efebeb, 0x00a6a6a3, 0x00403a39,
- 0x00353134, 0x00342d32, 0x00342d33, 0x003c313a, 0x003a333c, 0x003b303d, 0x003e3440, 0x00483d43, 0x00625c57, 0x00625e59, 0x00343132, 0x00090914, 0x00000423, 0x000e1646, 0x00171f62, 0x00161e6d,
- 0x000e1762, 0x000c1864, 0x00162473, 0x002c3d8d, 0x00455dae, 0x004862b5, 0x00435cb3, 0x003e57b0, 0x003c50aa, 0x00354ca6, 0x00304392, 0x0027376f, 0x000d1e57, 0x00061753, 0x00020f50, 0x00051658,
- 0x00091a5c, 0x000c1659, 0x000d1d5b, 0x0017205f, 0x001d265d, 0x001f0928, 0x001b080e, 0x00140f12, 0x009ba1a5, 0x00919398, 0x009b949c, 0x00e2dade, 0x00f1eeed, 0x00eceee6, 0x00a2a597, 0x00c8cab9,
- 0x00f5f1ee, 0x00bbb9b8, 0x0023252a, 0x00161d27, 0x00576787, 0x00445484, 0x00283870, 0x00263975, 0x00243768, 0x00243761, 0x00131e38, 0x000e0a15, 0x00121116, 0x00050a0f, 0x000a0e15, 0x00050b14,
- 0x00304255, 0x0065789b, 0x004a5e8c, 0x00314582, 0x00293e87, 0x00233e74, 0x0026406d, 0x0023386a, 0x00242b58, 0x00535369, 0x00817a7b, 0x005a4e39, 0x004e3d1c, 0x00553f2c, 0x005b433f, 0x00654b58,
- 0x00596256, 0x0052564b, 0x00474137, 0x004a3d34, 0x0057433c, 0x0058423f, 0x005f4b4c, 0x00a08f92, 0x00e6e4ec, 0x00ebecf8, 0x00d4d8d7, 0x00cfcdb2, 0x00c5d7e1, 0x00f2eefb, 0x00c2b2c7, 0x005e4b62,
- 0x001e325d, 0x00576180, 0x006d6b78, 0x00694d41, 0x00685b59, 0x007c685f, 0x00857364, 0x008e7a6e, 0x00917f73, 0x00907f72, 0x00907f73, 0x00908073, 0x008c7c6f, 0x00897b6d, 0x00877a6a, 0x009a8e7d,
- 0x00fcfefa, 0x00fbfffa, 0x00dadfdc, 0x00717673, 0x00100f0f, 0x00191611, 0x001f1b13, 0x00201e18, 0x001e2124, 0x00172025, 0x0016263a, 0x00153261, 0x00173087, 0x001b3192, 0x00192d8c, 0x00152a7a,
- 0x000f1e5c, 0x001b2b6b, 0x003e5098, 0x004157a4, 0x00425eb3, 0x00516bad, 0x006079b2, 0x00667dba, 0x007489c3, 0x00778fc4, 0x007089ba, 0x00718eb7, 0x006f8bb4, 0x005a72a2, 0x0033457b, 0x0018225d,
- 0x000c2258, 0x00132d60, 0x00496196, 0x006c81bc, 0x004759a7, 0x0024348a, 0x001a2880, 0x00202d7b, 0x0063719e, 0x00bfd1e5, 0x00c6dbe2, 0x0065758e, 0x008a94a2, 0x00aeb3b9, 0x00333838, 0x00080c0a,
- 0x000a1015, 0x000b1824, 0x005f7187, 0x00afc9de, 0x00afd3ed, 0x0094c1e8, 0x007aabdf, 0x006ea3dc, 0x00679fe1, 0x005b99dc, 0x005192d6, 0x004a8ecd, 0x004988cb, 0x004786c9, 0x004c85cf, 0x004981d0,
- 0x004489c4, 0x004888c7, 0x005b93d3, 0x0073a0de, 0x009dc0e6, 0x0098b5c5, 0x003b5056, 0x00060c0a, 0x00050706, 0x00050302, 0x00050502, 0x00040300, 0x00070907, 0x00020409, 0x00071525, 0x00415e80,
- 0x0083ade7, 0x006e9dde, 0x005283cd, 0x003a6cb9, 0x003360b1, 0x002e5eb3, 0x002a5bb4, 0x003061bb, 0x003463be, 0x003465bb, 0x003667bd, 0x003365b6, 0x003263b5, 0x003363b4, 0x002f5fb0, 0x002858a8,
- 0x00224290, 0x00324989, 0x006a78b0, 0x007f88b2, 0x0057658f, 0x00334873, 0x00253f69, 0x001a3356, 0x000d131b, 0x000f0b06, 0x00140e03, 0x00070d06, 0x00080b09, 0x00050807, 0x00060405, 0x00040202,
- 0x00020401, 0x00000200, 0x00010100, 0x00020001, 0x00020000, 0x00020201, 0x00020202, 0x00010100, 0x00020205, 0x00020205, 0x00040504, 0x00060704, 0x00070705, 0x00060604, 0x000a0907, 0x00090807,
- 0x00030606, 0x00434545, 0x00e1e1e0, 0x00faf9f9, 0x00fffcfe, 0x00fcfcfc, 0x00fafbfb, 0x00dfe3e1, 0x00827c80, 0x005f5657, 0x0098918f, 0x00b3b5ab, 0x00d4d0c4, 0x00dbd4c8, 0x00ddd4c9, 0x00dcd5c8,
- 0x00d4d4c7, 0x00d3d2c1, 0x00d7cebb, 0x00dbc7b0, 0x00e3bca4, 0x00d8b9a4, 0x00d3b3a3, 0x00d3af9c, 0x00d2ab98, 0x00d2aa98, 0x00ceaa9a, 0x00caa89a, 0x00b5a199, 0x00a29791, 0x008d8c89, 0x00858a88,
- 0x00818381, 0x00818482, 0x007a7c78, 0x00747772, 0x006f716d, 0x006a6a65, 0x006f706a, 0x007e7e78, 0x0087827c, 0x007c7871, 0x007b746e, 0x00797166, 0x0078717c, 0x00858fa6, 0x006d83a5, 0x00416790,
- 0x00546b9a, 0x006d6e99, 0x00a89bbf, 0x00dacee2, 0x00c8d6cf, 0x00c9d0d3, 0x00d6d5dd, 0x00d3d6db, 0x00d1d2dc, 0x00d7d9e2, 0x00dbdfe6, 0x00dbdde3, 0x00dedee4, 0x00e1dee4, 0x00e1dde2, 0x00dedbdf,
- 0x00ddd8e8, 0x00d6d5e1, 0x00d8dbe1, 0x00d3dadc, 0x00cfdad6, 0x00d3dddb, 0x00d7dfdf, 0x00dae0e3, 0x00d5d4df, 0x00d1cbdd, 0x00d1cbd7, 0x00cac7c5, 0x00cecacf, 0x00cecbd0, 0x00c3c2c5, 0x00c2c2c3,
- 0x00c1c5c2, 0x00b8bdb7, 0x00b7bbb9, 0x00bfc3c3, 0x00919397, 0x00344258, 0x00122444, 0x002d3952, 0x00343a49, 0x0012141c, 0x000b0e0e, 0x000c0e0d, 0x00110e0b, 0x001c1310, 0x002d1c17, 0x0039201a,
- 0x008c888a, 0x00efedee, 0x00fdfcfd, 0x00fefefe, 0x00f9f8fa, 0x00f0f1f3, 0x00f3f5f7, 0x00fbfdff, 0x00fcfbff, 0x00f9fefe, 0x00fbfdfc, 0x00d9dfda, 0x006a6965, 0x00373530, 0x0038362b, 0x003d3729,
- 0x003c3426, 0x003a3327, 0x003c362c, 0x003f3a32, 0x003e3b36, 0x00353942, 0x002c3245, 0x00292d42, 0x00282b49, 0x00282b4a, 0x00282a4b, 0x002b2d4c, 0x002e324a, 0x002e3246, 0x00383e4b, 0x00474e56,
- 0x00585747, 0x005e5b4c, 0x005f594b, 0x005c5547, 0x005e574c, 0x00666159, 0x006c6965, 0x006b6d6c, 0x006a7179, 0x005d6772, 0x00495561, 0x003b454f, 0x002f343b, 0x00292a2f, 0x002d2c30, 0x00333034,
- 0x003c363a, 0x003d393f, 0x003e3b46, 0x00393944, 0x00333544, 0x0033333e, 0x0033303a, 0x00302f38, 0x002f2f34, 0x0028292c, 0x00232423, 0x001f201c, 0x0024251f, 0x00312f28, 0x00444138, 0x00524d45,
- 0x00635744, 0x00645948, 0x005b5141, 0x004c4536, 0x00363126, 0x0025241a, 0x001c1e16, 0x001d201c, 0x001f2221, 0x001f2827, 0x00232b28, 0x00282c24, 0x002a2b28, 0x002c2c2a, 0x002d2c2d, 0x002c2c2f,
- 0x00282a2c, 0x0028292b, 0x00282b2e, 0x002a2a2b, 0x0025292b, 0x00292728, 0x002b2929, 0x002d2c2a, 0x0030312f, 0x00323430, 0x00373735, 0x00383938, 0x003d403e, 0x00454746, 0x004f5050, 0x00555554,
- 0x005f625f, 0x00646765, 0x00999d9c, 0x00d3d7d5, 0x00e4e6e3, 0x00ecebe5, 0x00f0ece4, 0x00e8e1d7, 0x00c2b4aa, 0x00b6a69a, 0x00b8a99f, 0x00b6ada5, 0x00c2bab9, 0x00ddd5da, 0x00f5f0f4, 0x00f6f3f7,
- 0x00f6f6f9, 0x00f8f4f9, 0x00e7e2e5, 0x00dcd8d7, 0x00e5e0db, 0x00e8e8dc, 0x00edf1e3, 0x00f0f4e8, 0x00f2f7f3, 0x00f3f8f6, 0x00f5f8f8, 0x00f8f9f9, 0x00fcfaf7, 0x00fffaf3, 0x00fffaef, 0x00fefaec,
- 0x00fbf8f9, 0x00fdfafb, 0x00fefbfa, 0x00fefbf8, 0x00fefbf9, 0x00fefcfa, 0x00fdfcfb, 0x00fdfafc, 0x00fffcff, 0x00fffdfe, 0x00fefcfb, 0x00fcfaf9, 0x00fefefe, 0x00fafffd, 0x00e9f1f0, 0x00aeb8b7,
- 0x00787c78, 0x009b9e99, 0x00dbdad7, 0x00f4f0ee, 0x00fffbfd, 0x00fdf9f7, 0x00fdfbf6, 0x00fefffa, 0x00fdfef8, 0x00fafdf6, 0x00f8fdf4, 0x00f9fef4, 0x00fdfff6, 0x00fffef6, 0x00fefaf3, 0x00fffbf5,
- 0x00fefdfd, 0x00fdfcfd, 0x00fdfbfe, 0x00ffffff, 0x00fdfefd, 0x00fbfdfe, 0x00f7f9fe, 0x00f3f5fd, 0x00eaecf6, 0x00e3e8f0, 0x00d7dde9, 0x00c2c7da, 0x00aab0bf, 0x00959baa, 0x00808390, 0x006d707b,
- 0x0054535a, 0x00625f62, 0x00a6a0a3, 0x00c8c2c0, 0x00bbb5af, 0x00b3a9a4, 0x00c0b2ad, 0x00c7b9b5, 0x00d0c1bd, 0x00d6c7c2, 0x00ddcdc8, 0x00e1d3ce, 0x00e3d8d4, 0x00e6ddd9, 0x00e9e1dc, 0x00e9e2db,
- 0x00e4ddd8, 0x00d7d0ca, 0x008c847f, 0x003d332e, 0x00271b16, 0x005d504a, 0x00b8a9a2, 0x00e3d4cc, 0x00ebd8d1, 0x00dfcdc6, 0x00d4c0bc, 0x00d5c7c2, 0x00e4c6ba, 0x00eacdbb, 0x00e9d2c4, 0x00dfd5cd,
- 0x00d3d8e1, 0x00d4c9d0, 0x00bc9292, 0x00be6a5e, 0x00e35734, 0x00f2501d, 0x00f0521f, 0x00eb7250, 0x00f4cac6, 0x00f3e6ee, 0x00e5dff2, 0x00d9d2e8, 0x00d5c2d7, 0x00cec4d5, 0x00d8d6e4, 0x00dce7f1,
- 0x00d6d5ed, 0x00cec5dc, 0x00d4cadf, 0x00dfd5e3, 0x00d3b2b0, 0x00be6751, 0x00bf3b17, 0x00e8360a, 0x00e55f49, 0x00e6a09e, 0x00dbc6cf, 0x00d1cad6, 0x00cdd2e5, 0x00d9e1ed, 0x00f8fdfd, 0x00fbfbfa,
- 0x00fbfcf4, 0x00f5fdf8, 0x00fcfefd, 0x00d1d3d6, 0x007c6768, 0x00686676, 0x009097af, 0x00b4bdd5, 0x00778cb5, 0x00223573, 0x000d2068, 0x0044569e, 0x00abb3e1, 0x00cecdef, 0x00d8d0ee, 0x00dfd0f0,
- 0x00d7cce9, 0x00c4c5e2, 0x00bbc4e0, 0x00c1cde5, 0x00d9dde8, 0x00e7eaf4, 0x00e8eefa, 0x00e0effd, 0x00cfdaeb, 0x00c6c8cf, 0x00d0cccc, 0x00dedbd1, 0x00e4e3ea, 0x00e2e2ec, 0x00e3e3f2, 0x00dcdbea,
- 0x00e4eaf3, 0x00dceafa, 0x0090a9db, 0x003960ad, 0x002b61d7, 0x004566c7, 0x007b89cd, 0x009287a4, 0x009d6575, 0x0097607c, 0x00a0748e, 0x0097848f, 0x00839461, 0x00829759, 0x00899860, 0x008f9371,
- 0x00829d5e, 0x00809d61, 0x00819e61, 0x007f9c5e, 0x0088955b, 0x0094996c, 0x00aaa78b, 0x00a8a19e, 0x00948dbf, 0x007b7dc2, 0x00404a96, 0x0025397e, 0x0028418d, 0x002e4ca0, 0x004360b7, 0x004c68c3,
- 0x005562bc, 0x00606ab7, 0x00989fdd, 0x008a97be, 0x00253847, 0x00322c23, 0x00644f3f, 0x00533e2e, 0x00241710, 0x001e160e, 0x00312618, 0x00553e2a, 0x0085533e, 0x0092695c, 0x00cab3a9, 0x00eef2e8,
- 0x00fefdfc, 0x00fbfcfa, 0x00fcfefd, 0x00fafefd, 0x00a7aeaa, 0x00262e2a, 0x000d1915, 0x000c1a15, 0x000e1b15, 0x000c1b15, 0x000c1b15, 0x000c1a13, 0x00101d16, 0x000f1d16, 0x000f1d17, 0x000d1c13,
- 0x00111e17, 0x00101d16, 0x00101d17, 0x00101d16, 0x00101c16, 0x000d1c18, 0x000c1b19, 0x000d1a16, 0x00101b11, 0x00101c0d, 0x001a2515, 0x00344031, 0x003f4b4f, 0x002c354c, 0x002c335d, 0x00232960,
- 0x000c0e19, 0x00000008, 0x00060512, 0x000a0818, 0x00191937, 0x00232955, 0x00222a64, 0x001f2a71, 0x00232c82, 0x00222982, 0x002c2563, 0x004d3234, 0x00715141, 0x00826040, 0x008f673c, 0x00976b35,
- 0x00a0723d, 0x009d713f, 0x00936d3e, 0x00815e37, 0x006b4e2a, 0x0060481a, 0x005a4314, 0x00553b18, 0x00603621, 0x0053452a, 0x0031341c, 0x000d1e10, 0x00102123, 0x00141b12, 0x00411f10, 0x009c3623,
- 0x00db3b00, 0x00cf340b, 0x00d96246, 0x00ebb8a5, 0x00d8d6cd, 0x00d3cac5, 0x00d9cfca, 0x00d8d0c6, 0x00cebab9, 0x00c1baba, 0x00cec9cb, 0x00d7d0d0, 0x00c9c3c2, 0x00bbb5b4, 0x00beb8b8, 0x00cec6c6,
- 0x00d3cecf, 0x00c8c4c3, 0x00bab6b5, 0x00c5c1c2, 0x00cdcbcc, 0x00cccacb, 0x00d7d4d5, 0x00dad8d8, 0x00d5d3d5, 0x00d3d1d3, 0x00d2cfd1, 0x00d3d0d1, 0x00d4d2d2, 0x00d5d3d3, 0x00d7d3d4, 0x00d6d3d3,
- 0x00d8d7db, 0x00dad8d9, 0x00dcd7d8, 0x00ded8d7, 0x00ded9dc, 0x00c8c7ca, 0x00babbc2, 0x00bbbec6, 0x00d5d2d7, 0x00c5c1c1, 0x00878687, 0x004f565a, 0x00262526, 0x00201b18, 0x00251812, 0x00331e15,
- 0x003e2211, 0x0045240c, 0x004d2910, 0x00533010, 0x00623d19, 0x00724814, 0x00916226, 0x00a06e32, 0x00a1753d, 0x009a7741, 0x00c0a77a, 0x00f3e7c5, 0x00fffdf2, 0x00fefef7, 0x00fbfcfc, 0x00fbfefc,
- 0x00f3eeea, 0x00eaeee4, 0x00eef7f0, 0x00b9cfcb, 0x0053779a, 0x00466da9, 0x00456cb4, 0x00456bb2, 0x007f95bb, 0x00d6e8ec, 0x00f1faf0, 0x00eef1e7, 0x00fff9fc, 0x00e9ebed, 0x00c8d0cf, 0x00505756,
- 0x00402b34, 0x003e2d39, 0x003f3443, 0x003a3944, 0x003d2937, 0x003c2d39, 0x00453840, 0x00655a5d, 0x006e6762, 0x00393530, 0x00080806, 0x0003070f, 0x00010822, 0x00010932, 0x000f184f, 0x00131e5e,
- 0x000b134f, 0x00060f4b, 0x0014205b, 0x00273471, 0x00354785, 0x00384b8d, 0x003f5399, 0x00364a91, 0x00314591, 0x003b4f9e, 0x0035488f, 0x0015265d, 0x00000b44, 0x00010a45, 0x00000342, 0x00060d50,
- 0x000a2267, 0x0013276f, 0x00122163, 0x001a235e, 0x002f2c64, 0x00281e3f, 0x000a0110, 0x0004010d, 0x00acb1b5, 0x00d6d9db, 0x00e2e0e4, 0x00eeebec, 0x00f1f0ee, 0x00ebece3, 0x00807f71, 0x00b3b19f,
- 0x00ebece6, 0x00767b7a, 0x000d1019, 0x001b273a, 0x005d6c97, 0x00384a7e, 0x002e3e76, 0x002b3c76, 0x00293869, 0x0026335e, 0x00181f3a, 0x00110d10, 0x00141418, 0x000d1219, 0x000b1221, 0x00132032,
- 0x00677b98, 0x005b7099, 0x00374c81, 0x00334384, 0x002d3b89, 0x002b4081, 0x002e427b, 0x00293568, 0x0020223a, 0x00443d42, 0x00786a60, 0x005c4b32, 0x004f3e28, 0x004c3d32, 0x00554847, 0x005c4f57,
- 0x005f6058, 0x0067645d, 0x00635751, 0x004e3f38, 0x00513c38, 0x00564240, 0x00614f4f, 0x0096898b, 0x00e8e1e9, 0x00e9eaee, 0x00dddfde, 0x00d2d5c3, 0x00bfc8d1, 0x00e2e3ee, 0x00bfb9ce, 0x00504e68,
- 0x0030446a, 0x005a6983, 0x00636372, 0x005b4c44, 0x00634f44, 0x00675549, 0x006b5a4f, 0x006b5e53, 0x00726157, 0x0074645a, 0x0077675d, 0x00796a60, 0x0076685e, 0x00716459, 0x00766a5f, 0x0092857a,
- 0x00fbfef6, 0x00fdfffc, 0x00cbcfcd, 0x005d6164, 0x0015100e, 0x00221813, 0x00281c13, 0x002a1f1b, 0x001c2227, 0x00182335, 0x0015294a, 0x00162e6e, 0x000f2d80, 0x00122c8d, 0x00112d8f, 0x00172d8f,
- 0x00101f6b, 0x0017276e, 0x0032448b, 0x00314b96, 0x002649a3, 0x00264894, 0x00294a8f, 0x002e4a96, 0x00354b9a, 0x00354f99, 0x00365a95, 0x00366298, 0x00376298, 0x002b4e94, 0x002a4496, 0x002d3b99,
- 0x00243893, 0x002b408b, 0x00465d96, 0x008099c5, 0x007d92d0, 0x00394d9d, 0x00182a86, 0x00162583, 0x00293d7a, 0x00768fb2, 0x00c5dbee, 0x008490ad, 0x00545c68, 0x0094989b, 0x004c4f4e, 0x00090f0d,
- 0x00010d1a, 0x00213450, 0x0089a5cb, 0x00a8cdf8, 0x0083b4e1, 0x0065a0d6, 0x005798d7, 0x005091d4, 0x004b8ed9, 0x004b8cd7, 0x004588cb, 0x004487c5, 0x004589c5, 0x004786cd, 0x004380d1, 0x00427ed9,
- 0x004188c3, 0x004489cd, 0x004b89d5, 0x00588ddf, 0x0081ade6, 0x00a6cfea, 0x0069898f, 0x0014231b, 0x00020202, 0x000e0709, 0x000b0306, 0x000b0100, 0x00060407, 0x00090d19, 0x002d4055, 0x006c89aa,
- 0x0093b7e8, 0x0082a9e3, 0x005a85c3, 0x003b66a9, 0x00255498, 0x001f4ca1, 0x001e4eab, 0x002454ad, 0x002e59ad, 0x00325fae, 0x003461af, 0x00315fa8, 0x00305dac, 0x00305fb0, 0x002d5eae, 0x002558aa,
- 0x00144196, 0x00455c98, 0x00aaadce, 0x00c7bbc2, 0x00aca3ab, 0x006f778b, 0x00314264, 0x00172f57, 0x000e1321, 0x00150c0a, 0x001b0f05, 0x000b1007, 0x00090f09, 0x00060b07, 0x00040603, 0x00020401,
- 0x00000300, 0x00000200, 0x00010201, 0x00030202, 0x00030102, 0x00020102, 0x00030202, 0x00020203, 0x00030305, 0x00050506, 0x00050605, 0x00070906, 0x00070905, 0x00070703, 0x000c0b07, 0x00090704,
- 0x000a090b, 0x00595659, 0x00eff1f0, 0x00fafbf9, 0x00fbfcfb, 0x00fcfcfb, 0x00fbfdfc, 0x00d7d7d8, 0x00757479, 0x006f6d73, 0x00b0afb2, 0x00dad7d3, 0x00f7f8f2, 0x00fdfcf7, 0x00fafbf7, 0x00fcfdf8,
- 0x00fafcf5, 0x00fcfaf6, 0x00f8faf5, 0x00f8faf4, 0x00faf9f2, 0x00faf9f3, 0x00f9faf3, 0x00fafbf3, 0x00f8f9f0, 0x00fbf9f2, 0x00f7f8ee, 0x00faf8f1, 0x00f7f8ef, 0x00f8f8f1, 0x00f5f7ed, 0x00f5f7ee,
- 0x00ebefec, 0x00ecefee, 0x00e8ebe8, 0x00e7e9e6, 0x00e3e4e4, 0x00dddfde, 0x00dee1de, 0x00e2e6e4, 0x00dfe4e1, 0x00dbdddd, 0x00d5dbd8, 0x00cfd1d1, 0x00c5cad0, 0x00d2d4df, 0x00cccdde, 0x00b5bbcf,
- 0x00b9bad0, 0x00b8bacc, 0x00c8cfd8, 0x00dce1ea, 0x00dbdfde, 0x00d8dbdc, 0x00dedfe1, 0x00dedfde, 0x00dadbde, 0x00dddfe1, 0x00e1e6e5, 0x00dfe5e2, 0x00e0e4e4, 0x00e0e2e3, 0x00dfe1e1, 0x00dee0e1,
- 0x00dcdee1, 0x00dcdddf, 0x00dbdcdf, 0x00d9dadc, 0x00d9dade, 0x00d9dbdd, 0x00dbdedf, 0x00dbdddc, 0x00d8dadc, 0x00d5d6d9, 0x00d0cfd2, 0x00cdcbce, 0x00cdccce, 0x00cfcdd0, 0x00c5c2c6, 0x00c3c1c5,
- 0x00c2c2c4, 0x00bebcbe, 0x00b8b8bb, 0x00bbbbbd, 0x00999999, 0x003f4855, 0x001a2a40, 0x00202d3f, 0x00182031, 0x000a0d19, 0x000c1115, 0x000f1011, 0x00130c08, 0x00150c06, 0x001a1006, 0x001d1105,
- 0x007b7676, 0x00ece9e8, 0x00fdfbfa, 0x00fdfdfd, 0x00f9f8fb, 0x00f2f3f6, 0x00f0f2f5, 0x00f9fdff, 0x00fafdfd, 0x00fafdfe, 0x00fbfdfb, 0x00e5e6e0, 0x00706f69, 0x0033322e, 0x0032342f, 0x00363730,
- 0x002e2d29, 0x002d2d2a, 0x0030302b, 0x00353530, 0x003a3a36, 0x00383c44, 0x00313748, 0x002d3145, 0x00272b4c, 0x0026294e, 0x00252850, 0x00282b52, 0x002d3051, 0x0030334f, 0x003e4257, 0x004e5462,
- 0x005d6150, 0x00646355, 0x00635d4f, 0x005d5342, 0x00524535, 0x00514538, 0x0059524a, 0x005e5c59, 0x005f6772, 0x005d6977, 0x00505a6e, 0x00474e62, 0x003b4152, 0x00313444, 0x002f3041, 0x00313545,
- 0x0040414c, 0x00494854, 0x004f4d57, 0x004b4852, 0x00454149, 0x003d3a41, 0x00323135, 0x002d2b31, 0x002c2c2f, 0x0027282a, 0x001f1f1f, 0x001c1d1b, 0x001c1f1a, 0x00262823, 0x00363731, 0x0041413b,
- 0x00524a37, 0x00544c3d, 0x004f493a, 0x00474235, 0x0037342c, 0x002c2d26, 0x00282c26, 0x002d312f, 0x00363c39, 0x003a4342, 0x00414b47, 0x00494e45, 0x0051514f, 0x00595758, 0x005f5d60, 0x00626066,
- 0x006b6b71, 0x006f6f74, 0x00757879, 0x007b7f80, 0x00818784, 0x008c8c89, 0x0093928c, 0x00999793, 0x00a2a09e, 0x00a6a5a2, 0x00ababa8, 0x00b0b3af, 0x00b4b8b5, 0x00bcc0bd, 0x00c3c6c4, 0x00c9cac8,
- 0x00d3d2d2, 0x00d5d6d5, 0x00e3e5e4, 0x00f0f6f4, 0x00f4fcfa, 0x00f3faf7, 0x00f9fdfb, 0x00fcfdfc, 0x00f4f0ef, 0x00f7efef, 0x00faf3f3, 0x00f8f4f7, 0x00f9f6fa, 0x00fcf7fb, 0x00fefafc, 0x00fffcfd,
- 0x00fefafb, 0x00fdf8fa, 0x00fdf8fb, 0x00fdfcfa, 0x00fcfdf7, 0x00fdfff9, 0x00fdfdfb, 0x00fefefc, 0x00fbfdfb, 0x00fbfdfd, 0x00fdfefd, 0x00fdfefc, 0x00fffdfd, 0x00fffefb, 0x00fefefa, 0x00fdfefa,
- 0x00fdfdfc, 0x00fefefe, 0x00fcfdfd, 0x00fbfcfd, 0x00fdfcff, 0x00fbfcfd, 0x00f9fbfb, 0x00fdfbfd, 0x00fbfbfd, 0x00fefdfd, 0x00fdfbfb, 0x00fdfbfc, 0x00fdfafc, 0x00fdfbfc, 0x00f4f4f4, 0x00b8b8b8,
- 0x00727071, 0x00929292, 0x00d3d2d0, 0x00ebebeb, 0x00fafafb, 0x00fafaf9, 0x00fcfbf7, 0x00fbfcfb, 0x00f9fdfc, 0x00f7fdfb, 0x00f6fefa, 0x00f6fdf9, 0x00f8fcf9, 0x00fbfbf9, 0x00fcf9f9, 0x00fefbfb,
- 0x00fcfcfe, 0x00fefeff, 0x00fefdfd, 0x00fefdfd, 0x00fcfbfb, 0x00fdfcfc, 0x00fefefc, 0x00fffffd, 0x00fcfbfc, 0x00fdfdfd, 0x00fcfdfd, 0x00f9f9fd, 0x00f7f8f9, 0x00f8f8f9, 0x00f6f6f5, 0x00f0f0ee,
- 0x00d1d2d1, 0x00cfcccd, 0x00d9d3d5, 0x00e2dcdd, 0x00d3cdcc, 0x00d7cfcc, 0x00d9cfcc, 0x00d6ccc8, 0x00d5cac7, 0x00d7cbc8, 0x00d9ccca, 0x00dcd0ce, 0x00e0d7d5, 0x00e1d9d7, 0x00e2d9d5, 0x00e1d8d3,
- 0x00dbd5d1, 0x00b3aca8, 0x004b423f, 0x00140a07, 0x002f221f, 0x006c5d5a, 0x00c2b1ad, 0x00e4d1cd, 0x00dec8c3, 0x00dbc2bf, 0x00d4bdbb, 0x00dcc8c4, 0x00e7c6b7, 0x00eccab7, 0x00e5cfbe, 0x00ded5cd,
- 0x00cbd4e2, 0x00c8bdd2, 0x009e7c85, 0x009f524e, 0x00d25030, 0x00f2511e, 0x00ee4d18, 0x00e96c48, 0x00ecc3bb, 0x00f7e5ee, 0x00e6dcf5, 0x00dbceee, 0x00d4bfdd, 0x00d4c6dd, 0x00dcd9e8, 0x00dbe3eb,
- 0x00d3cede, 0x00ccc1e1, 0x00d4c8e7, 0x00dccee7, 0x00d19d8b, 0x00bc542c, 0x00c83607, 0x00e53812, 0x00ea8985, 0x00e0c4d5, 0x00c8cbe0, 0x00d0c8d8, 0x00d5d0db, 0x00e2e1eb, 0x00fbfefd, 0x00f4fcfc,
- 0x00f9fdfa, 0x00f9fbfa, 0x00fdfbfc, 0x00cbc7c6, 0x006f6167, 0x006a6977, 0x0098a1b2, 0x00b9c7d5, 0x007c93b8, 0x00243981, 0x00122780, 0x004153ad, 0x00a4acd7, 0x00ccc9e3, 0x00d6cbdf, 0x00e2cce8,
- 0x00cdcee7, 0x00c9cae3, 0x00c5c6e0, 0x00cbcbe4, 0x00d9dbf2, 0x00e2e3f7, 0x00e7ebfc, 0x00ecf1fd, 0x00dfe2ed, 0x00c6c9d5, 0x00b4b6bc, 0x00c4c4c6, 0x00dbddea, 0x00eaf0fc, 0x00e6ecf8, 0x00dfe3ef,
- 0x00e1e8f4, 0x00deebfb, 0x0091a9dc, 0x00395caf, 0x00285ed9, 0x003d59dc, 0x00515cc2, 0x00606085, 0x006e5e6a, 0x006f619e, 0x007373c7, 0x006d83d2, 0x006c9a81, 0x00799a60, 0x008b9756, 0x009b8f69,
- 0x00899a58, 0x0087995b, 0x00859a5a, 0x00819a5b, 0x00809b61, 0x00859c72, 0x00aabda4, 0x00c3d0d2, 0x00cfcaf3, 0x00b9b0e8, 0x00625c9d, 0x003d3c82, 0x00273f87, 0x00284e96, 0x003c6ab4, 0x004871be,
- 0x005c72bc, 0x00878dcc, 0x00b7bbe9, 0x009ca5c1, 0x001c353d, 0x0018150f, 0x004f4030, 0x006f5d4e, 0x00594033, 0x004a2921, 0x0046271d, 0x00614338, 0x00715644, 0x007d6553, 0x00c0b098, 0x00f4efd6,
- 0x00fffffd, 0x00fbfdfb, 0x00fcfffd, 0x00fbfffd, 0x00a7aeab, 0x00262e2b, 0x000d1915, 0x000d1a16, 0x000d1b16, 0x000c1b16, 0x000b1a14, 0x000d1b14, 0x000f1d16, 0x00101f18, 0x000e1d16, 0x000e1c14,
- 0x00101d15, 0x00101d16, 0x00111d16, 0x00111d15, 0x00101d17, 0x000d1e17, 0x000d1d17, 0x000f1c19, 0x00111c17, 0x00131d13, 0x00141f0d, 0x0024301e, 0x003f4b48, 0x00353e51, 0x0020284d, 0x0023295f,
- 0x00172035, 0x000d0e1e, 0x0008060f, 0x000b0005, 0x00191220, 0x00252441, 0x00212a56, 0x001f2c6b, 0x001d297a, 0x001e257f, 0x00272262, 0x00452e37, 0x00684c3b, 0x00795837, 0x00886032, 0x00946732,
- 0x00966838, 0x0093663d, 0x00835b38, 0x00734f31, 0x00634626, 0x0061461b, 0x005d4519, 0x00634a30, 0x00916555, 0x00786e53, 0x00253211, 0x000f1d0e, 0x000e202b, 0x000a1e12, 0x0043290e, 0x00b03311,
- 0x00df3900, 0x00d03a0d, 0x00d76c4c, 0x00e7c8b3, 0x00decbce, 0x00d5c5c7, 0x00d6d0cb, 0x00cdd7c7, 0x00dbbcc2, 0x00c9bec6, 0x00c7c3cb, 0x00d3cdd1, 0x00d2cccf, 0x00c8c2c5, 0x00bfbabc, 0x00c3bfc2,
- 0x00d0cbcd, 0x00d0cacb, 0x00c0bbbc, 0x00c2bebf, 0x00cac7c8, 0x00cbc9c9, 0x00d6d4d4, 0x00dddbdc, 0x00d7d4d6, 0x00d5d3d4, 0x00d3d1d2, 0x00d4d2d2, 0x00d6d3d4, 0x00d7d4d5, 0x00d8d5d6, 0x00d8d5d6,
- 0x00d8d8d9, 0x00dad9dc, 0x00d9d8db, 0x00dcdbe0, 0x00d6d6d9, 0x00c3c3c7, 0x00cac9cc, 0x00cccbcf, 0x00d1d3d6, 0x00c5c3c6, 0x00898d92, 0x006a747d, 0x00464b53, 0x00232229, 0x000e0a0d, 0x001c0f10,
- 0x00331f11, 0x00472d15, 0x0059391b, 0x0064411b, 0x00754d1b, 0x008a571b, 0x00986421, 0x009a682a, 0x00956d3a, 0x00967449, 0x00c4ae87, 0x00f6ebcf, 0x00fdfcee, 0x00fbfff5, 0x00f8fdfb, 0x00f4fdfb,
- 0x00eceae8, 0x00f9f1eb, 0x00efeadf, 0x00e6e6d8, 0x008a9eb0, 0x00436993, 0x00406faa, 0x003870af, 0x005578a8, 0x009db3cd, 0x00f0fbfa, 0x00f8f8f1, 0x00fcf2f9, 0x00ecf4fb, 0x00d1e5e3, 0x00758780,
- 0x004c2c38, 0x004c3346, 0x00362b40, 0x0026303b, 0x00452c3b, 0x0053434a, 0x006f6265, 0x00766a6c, 0x00383330, 0x000c0907, 0x00030405, 0x0000060d, 0x0000051d, 0x00010728, 0x00091138, 0x000e1846,
- 0x00363e6d, 0x00464e7c, 0x00242d5c, 0x002d3664, 0x00475584, 0x00576696, 0x006b7bac, 0x008698ca, 0x008fa4df, 0x006c7dc0, 0x00354b87, 0x001b2c64, 0x00000840, 0x0007104a, 0x00131f5b, 0x000a1e5f,
- 0x000d256f, 0x00132b77, 0x00223077, 0x001f2768, 0x00201850, 0x001d2043, 0x000b0f23, 0x00040a18, 0x009da09d, 0x00e3e5e1, 0x00e5e6e4, 0x00f5f5f3, 0x00eeedec, 0x00f2f2ea, 0x00898a7b, 0x00a5a590,
- 0x00d5dbcf, 0x00404845, 0x0000030e, 0x00293650, 0x004c5c8f, 0x002e4077, 0x002e3f79, 0x002b3a73, 0x002d3666, 0x002c345d, 0x001a1d36, 0x00110c0d, 0x00111218, 0x000a1019, 0x00071524, 0x003d5066,
- 0x00576d90, 0x003f5384, 0x0032437f, 0x00323e84, 0x00343e8a, 0x00344491, 0x002e3f81, 0x0026305d, 0x0018161a, 0x001d1009, 0x00341f12, 0x004b3423, 0x00554037, 0x00594b48, 0x005b5252, 0x00595354,
- 0x00675d55, 0x0073645e, 0x0074635f, 0x00695351, 0x00513c3a, 0x00513c3b, 0x004f403e, 0x00756a68, 0x00d7d3d0, 0x00eff0ec, 0x00e7eae4, 0x00d8dcd9, 0x00c3c3c7, 0x00d4d6e1, 0x00c7ccdd, 0x00454f6a,
- 0x002d425f, 0x0073849a, 0x005a606d, 0x004d4643, 0x00624a33, 0x005d4d40, 0x0072665e, 0x00847971, 0x008c7f76, 0x008a7e75, 0x00897c75, 0x007c6f67, 0x0082756e, 0x008c8079, 0x008e827b, 0x009c9089,
- 0x00fefdfd, 0x00fcfdfa, 0x00babebb, 0x00454b47, 0x0016140c, 0x00251c0f, 0x002c2015, 0x002b201a, 0x00202230, 0x001d2a42, 0x001b2e57, 0x00132d6e, 0x000e2d80, 0x000d2d8a, 0x00112d8e, 0x0017308a,
- 0x0015256b, 0x00122160, 0x0022336e, 0x00223b7c, 0x00183a8e, 0x001f3f8c, 0x0025438d, 0x00253d8f, 0x0025368c, 0x0021378a, 0x001d3b89, 0x001e458a, 0x001e448b, 0x00203f8b, 0x0034499f, 0x004c55b4,
- 0x0034469e, 0x00293d84, 0x00344b82, 0x00536b92, 0x007487be, 0x005263ac, 0x00172879, 0x00122076, 0x0013235c, 0x002e4462, 0x006c7c95, 0x005c647e, 0x00313a44, 0x00656c6b, 0x00505453, 0x000b1212,
- 0x00070f25, 0x0038506e, 0x0095b6e1, 0x0086b2e4, 0x00669ecf, 0x005896c7, 0x005397ca, 0x004e92d0, 0x004d8ed8, 0x004c8dd4, 0x004888ce, 0x004085c2, 0x004285c3, 0x004385c6, 0x004584cf, 0x004282d1,
- 0x004589c7, 0x00498ace, 0x004984d2, 0x004c82d6, 0x006594ce, 0x0093b9db, 0x0084a1b0, 0x002b3f3d, 0x00040506, 0x000a0606, 0x00090104, 0x000f0805, 0x00242224, 0x004c505b, 0x008790a3, 0x0092a1bb,
- 0x00839bc6, 0x006889bc, 0x00486da7, 0x002e5996, 0x001b488c, 0x0018468c, 0x001b468d, 0x001d4a8f, 0x00274e9a, 0x0029519f, 0x002b52a8, 0x002a52a7, 0x002a51ad, 0x002c55b0, 0x002a56af, 0x002553ae,
- 0x0011429b, 0x004b6aa8, 0x00b1bde4, 0x00aca9b5, 0x009794a3, 0x00828ca7, 0x00304566, 0x00102b51, 0x000c1725, 0x0011100c, 0x00191408, 0x000c120a, 0x000b0e08, 0x00070b05, 0x00040703, 0x00020502,
- 0x00020303, 0x00020302, 0x00030304, 0x00030304, 0x00020204, 0x00020204, 0x00030404, 0x00030403, 0x00060405, 0x00070605, 0x00080706, 0x00080907, 0x00080905, 0x000a0b06, 0x000f100b, 0x000a0b05,
- 0x00131415, 0x00707071, 0x00fafaf9, 0x00fbfcfa, 0x00fefbfc, 0x00f8f8f8, 0x00fefdfe, 0x00c9c7c9, 0x006d6a6f, 0x0077777f, 0x00b8b6bc, 0x00d8d7da, 0x00f6f7f7, 0x00fcfcfd, 0x00fdfbfa, 0x00fcfcfb,
- 0x00fffdff, 0x00fbfbfc, 0x00fefbfe, 0x00fafcfb, 0x00fefdfe, 0x00fdfbf9, 0x00fefbfd, 0x00fcfbfe, 0x00fffeff, 0x00fefeff, 0x00fffefe, 0x00fdfdfa, 0x00fdfbfd, 0x00fdfbfb, 0x00fbfcfc, 0x00f9fafa,
- 0x00fffefd, 0x00fcfdfc, 0x00fdfdfc, 0x00fbfdfc, 0x00fdfffe, 0x00fcfdfd, 0x00fcfefe, 0x00fbfcfd, 0x00fcfcfc, 0x00fbfcfb, 0x00fcfdfd, 0x00fafff7, 0x00f9fcfa, 0x00f9fdfc, 0x00f5f7fd, 0x00f7f8fd,
- 0x00fbf9ff, 0x00f6f7fb, 0x00f2f5f9, 0x00f1f5f5, 0x00f4f8f4, 0x00eff4ef, 0x00f3f2f1, 0x00f4f5ef, 0x00f2f2f0, 0x00f1f1f0, 0x00f5f6f3, 0x00f0f3ee, 0x00edf2ee, 0x00edf2ee, 0x00edf0ea, 0x00edefea,
- 0x00edeeee, 0x00eceeed, 0x00eceeed, 0x00ebecea, 0x00ebecec, 0x00eaeaea, 0x00e9eaea, 0x00e9ebea, 0x00e9eaea, 0x00e5e8e6, 0x00e3e5e4, 0x00e1e1de, 0x00e1e1e1, 0x00e1e2de, 0x00dbdbda, 0x00d9dad8,
- 0x00dad9d9, 0x00d5d6d3, 0x00d0d0cf, 0x00cbcecd, 0x00bcbab9, 0x00848b93, 0x006e7888, 0x00636e7a, 0x005e636d, 0x005b5e62, 0x00585c59, 0x00575753, 0x00504d43, 0x004a473a, 0x00443e2e, 0x00443d2b,
- 0x008e8987, 0x00e9e5e3, 0x00fbf9f7, 0x00faf9f7, 0x00f6f6f5, 0x00eeefed, 0x00edf0ec, 0x00f8fcf6, 0x00fbfefa, 0x00f9fefb, 0x00fdfbfe, 0x00e5e7eb, 0x0078777e, 0x0034333a, 0x002f2d34, 0x002b2b31,
- 0x002f2b35, 0x002f2e33, 0x0035333a, 0x003c3c41, 0x0046444c, 0x00454a52, 0x003b4251, 0x00313849, 0x00282a49, 0x00232546, 0x00222447, 0x0025284b, 0x00282c48, 0x002b3046, 0x003b4151, 0x004d545d,
- 0x0064615c, 0x006b675f, 0x00676056, 0x005a5143, 0x004a3e2e, 0x00453a2c, 0x004a433b, 0x004f4e48, 0x00565d66, 0x005b6772, 0x0057606f, 0x00525767, 0x00474d5a, 0x00424653, 0x00444653, 0x00464956,
- 0x00595861, 0x00626169, 0x006a6973, 0x0068666e, 0x00615e67, 0x0057555b, 0x004c4c51, 0x00484749, 0x004d4b4f, 0x004c4b4d, 0x004c4d4d, 0x004e504e, 0x00585956, 0x0062635f, 0x006f716b, 0x00757872,
- 0x008d887c, 0x008e8a7e, 0x00949086, 0x0094928a, 0x0094928c, 0x00949590, 0x00989a95, 0x009c9f9a, 0x00a8acaa, 0x00acb2b1, 0x00b4b8b5, 0x00bbbdb6, 0x00c1c2c0, 0x00c9c7c9, 0x00cfcdd1, 0x00d1d2d4,
- 0x00dad5dc, 0x00dcdbdd, 0x00e3e2e5, 0x00e5e8e7, 0x00ebebec, 0x00f0efed, 0x00f2eff1, 0x00f1f2f2, 0x00f8f6f5, 0x00f7f7f5, 0x00f8f9f8, 0x00f9fbf9, 0x00fbfdfb, 0x00fcfdfb, 0x00fdfefd, 0x00fdfefe,
- 0x00fffcfd, 0x00fffefe, 0x00fffefe, 0x00fbfdfb, 0x00fafffc, 0x00fafffd, 0x00fbfefd, 0x00fcfdfe, 0x00fdfeff, 0x00fffcff, 0x00fbfafb, 0x00fafef7, 0x00f9fdf3, 0x00fbfdf3, 0x00fcfdf3, 0x00fefef3,
- 0x00fcfef1, 0x00fdfdf4, 0x00fffef6, 0x00fbfef0, 0x00fafef2, 0x00fbfdf7, 0x00fffefd, 0x00fdfefd, 0x00fcfdfb, 0x00fcfdfb, 0x00fdfcfb, 0x00fefdfb, 0x00fdfdfe, 0x00fcfdfc, 0x00fcfdfb, 0x00fcfdfb,
- 0x00fdfbfd, 0x00fefcfb, 0x00fdfefc, 0x00fdfefd, 0x00fefdfe, 0x00fbfcfd, 0x00fafdfc, 0x00fdfefb, 0x00fdffff, 0x00ffffff, 0x00ffffff, 0x00fdfcfe, 0x00fbfbfb, 0x00fafaf9, 0x00f8f9f8, 0x00b0b1b2,
- 0x004d4c4f, 0x00585859, 0x00878785, 0x00a7a6a6, 0x00c0c1c0, 0x00cfd0d0, 0x00d9dbd8, 0x00e1e4e2, 0x00eef3f2, 0x00f4faf8, 0x00f6fefb, 0x00f5fbf8, 0x00fcfdfc, 0x00fdfcfc, 0x00fffdfe, 0x00fffeff,
- 0x00fcfbfd, 0x00fdfdfe, 0x00ffffff, 0x00fdfefe, 0x00fefefe, 0x00fdfefd, 0x00fefefd, 0x00fefffe, 0x00fffcfd, 0x00fbfbfa, 0x00fafbfb, 0x00fafcff, 0x00fcfcfe, 0x00fdfdfe, 0x00fdfdfe, 0x00fcfefd,
- 0x00fffeff, 0x00fffdfd, 0x00fefbfb, 0x00fdfbf9, 0x00f8f6f3, 0x00fbf7f4, 0x00f9f4f1, 0x00f4efec, 0x00f1e7e5, 0x00ede4e3, 0x00eae2e1, 0x00e9e2e1, 0x00ebe5e1, 0x00e7e2dd, 0x00dfdbd4, 0x00dad6cf,
- 0x00d8d3d1, 0x00b6b1af, 0x00645d5b, 0x0028201d, 0x00180f0c, 0x00362925, 0x00978984, 0x00cfc0bb, 0x00d5bebc, 0x00d4bfbb, 0x00d8c3c2, 0x00d3c4c2, 0x00e5c9bc, 0x00e4cbb9, 0x00dfccbf, 0x00ddd8d0,
- 0x00bac1d1, 0x00a69fb2, 0x00957282, 0x00904a47, 0x00d25b41, 0x00f05425, 0x00f04e1d, 0x00e56845, 0x00edbeb5, 0x00f7e4e9, 0x00e3daef, 0x00d2cce7, 0x00d5c4df, 0x00d7cee2, 0x00ded8e9, 0x00d6d9e4,
- 0x00cec4dc, 0x00c2c5d9, 0x00d0d1e0, 0x00d4cacf, 0x00cc806f, 0x00ba4728, 0x00be3d17, 0x00e06543, 0x00f4bcb6, 0x00decfdd, 0x00c3c2d9, 0x00cbc4d3, 0x00d8d3e0, 0x00e6e3eb, 0x00fbfefe, 0x00f7fbfc,
- 0x00fbffff, 0x00fbfbfc, 0x00f8f7f8, 0x00bcb8ba, 0x0060565d, 0x007d686c, 0x00b8a4a0, 0x00dacdc5, 0x009b9ab2, 0x003c417b, 0x00232d7e, 0x003e4a9e, 0x00989fcd, 0x00c6c8e5, 0x00cfcce5, 0x00d4caeb,
- 0x00d0cded, 0x00c9c9e4, 0x00c6c6df, 0x00cbcde4, 0x00dbdcf2, 0x00e1e2f6, 0x00e4e6f8, 0x00e9ecfa, 0x00e8eaf9, 0x00dadbe8, 0x00cfd0db, 0x00d2d5d4, 0x00e6e9f5, 0x00ecf0fc, 0x00eaeefd, 0x00e2e3ef,
- 0x00e4e4f0, 0x00e6f0f9, 0x0095a6d1, 0x00315299, 0x00295bbe, 0x003b5fd2, 0x004259bf, 0x004d5990, 0x005d5884, 0x006162ab, 0x00616fc3, 0x006383d2, 0x006aa197, 0x0077a173, 0x00829e60, 0x00969b63,
- 0x008e996b, 0x00889868, 0x00899866, 0x00859a65, 0x00869a70, 0x00829777, 0x00a9b5a6, 0x00ced5db, 0x00dbd8fa, 0x00bcb3dc, 0x00665d98, 0x003b3c83, 0x001f3179, 0x00264486, 0x004567ae, 0x005a7ac0,
- 0x008e92d6, 0x00b5b4e8, 0x00d8d4f9, 0x00aeb0c4, 0x00323d40, 0x000b0a08, 0x002d2318, 0x00574438, 0x006f4f44, 0x00664133, 0x005f392a, 0x00724d3c, 0x00785a45, 0x007f6950, 0x00c1b097, 0x00f6efd7,
- 0x00feffff, 0x00fbfdfd, 0x00fcfefe, 0x00fcfffe, 0x00a7aead, 0x00252d2b, 0x000c1814, 0x000e1915, 0x000e1b18, 0x000b1b16, 0x000c1c17, 0x000e1c15, 0x00101d16, 0x00101c16, 0x00101d17, 0x000e1c15,
- 0x00111d17, 0x00101d16, 0x00111d16, 0x00111d16, 0x00101d16, 0x000f1e14, 0x000f1d14, 0x00101b18, 0x00111d1b, 0x000f1e14, 0x000f1e12, 0x00142313, 0x002e3837, 0x00434b58, 0x00343757, 0x0022234d,
- 0x00272855, 0x00242146, 0x001c1735, 0x00140e24, 0x001d1c39, 0x00222e52, 0x001f305f, 0x001b2e6b, 0x001b286f, 0x00192169, 0x00261f53, 0x00472c31, 0x00694b3a, 0x007b5935, 0x00876031, 0x008f6630,
- 0x00916033, 0x00855b34, 0x00744f2e, 0x006a462b, 0x0065472b, 0x006a4f26, 0x00735b31, 0x00856e54, 0x00ae8175, 0x00857d61, 0x002b3318, 0x000e1b0c, 0x000f1d2d, 0x000c2013, 0x00492911, 0x00b43411,
- 0x00e53a02, 0x00d03a0f, 0x00e1775a, 0x00f0d3c0, 0x00e1ced2, 0x00d5c7c8, 0x00d7d4ce, 0x00cfdccd, 0x00e1bfc7, 0x00c7bec7, 0x00c3c1c9, 0x00cec7cc, 0x00d6ced3, 0x00d0c9ce, 0x00c6c0c3, 0x00c2bdc1,
- 0x00cec5cd, 0x00d1cacf, 0x00c8c1c6, 0x00c1bcbf, 0x00c8c4c6, 0x00ccc9c9, 0x00d7d4d3, 0x00dcdbda, 0x00dbd5d9, 0x00d5d2d4, 0x00d5d2d4, 0x00d6d4d5, 0x00d8d5d6, 0x00d9d6d6, 0x00d9d7d7, 0x00d8d9d8,
- 0x00dedbe0, 0x00dbd9dc, 0x00dadade, 0x00dbdcde, 0x00ccccd0, 0x00c9c9cb, 0x00d6d7d9, 0x00d4d6d6, 0x00d2d3d6, 0x00c4c4c7, 0x00a2a3ab, 0x00939aa7, 0x008d8e9c, 0x005f616e, 0x00171220, 0x000d020e,
- 0x0027151c, 0x003a2323, 0x005a3f39, 0x00674c39, 0x0070523d, 0x007f5838, 0x008d623f, 0x008e6646, 0x008e6a54, 0x008f725d, 0x00c1aea0, 0x00f5ede0, 0x00fcfefa, 0x00fbfffb, 0x00f9feff, 0x00f8fffe,
- 0x00e9e7ea, 0x00f9f5ef, 0x00eae5dd, 0x00f8f7ec, 0x00c6d3e3, 0x006481ab, 0x004065a2, 0x003b6bb4, 0x00496baa, 0x005f7da9, 0x00dbebfc, 0x00f4f9fe, 0x00fdecf7, 0x00edf4f7, 0x00e0f3ec, 0x00a3b8b0,
- 0x00492d3c, 0x00422b3d, 0x003a3041, 0x00323b42, 0x00614a57, 0x0071646b, 0x00766d72, 0x00474043, 0x000d0806, 0x00070504, 0x00070809, 0x0001050a, 0x00010418, 0x0000011c, 0x00060a2d, 0x000e1641,
- 0x003e4273, 0x008f95c6, 0x008e97c6, 0x00959fcc, 0x00b6c3ed, 0x00becbf4, 0x00aebbe6, 0x00909fcb, 0x005364a5, 0x002a3a7d, 0x00142269, 0x000d2165, 0x00192767, 0x00202f6c, 0x002a3576, 0x001c2b70,
- 0x00192f7d, 0x0027408a, 0x00172d78, 0x0009165c, 0x000f0f50, 0x0037375d, 0x0034354b, 0x000d0c17, 0x009d9791, 0x00e2ddd3, 0x00eee9e1, 0x00f7f2ef, 0x00eeeaed, 0x00ededeb, 0x00b8beb5, 0x00bec9b9,
- 0x00b4b6af, 0x001b2222, 0x00060818, 0x003a4866, 0x0039477b, 0x00263971, 0x002c3a76, 0x00293870, 0x002e3967, 0x00293155, 0x0014152e, 0x00100c08, 0x000a0b12, 0x00030614, 0x001b273f, 0x00647899,
- 0x00425a8b, 0x002e4378, 0x002b3d7a, 0x002e3e7a, 0x00313d80, 0x00303f7e, 0x002b396d, 0x0022294a, 0x00261e21, 0x00281611, 0x00220700, 0x00311308, 0x004c2d26, 0x00563e35, 0x005b4a40, 0x005f5245,
- 0x00594d45, 0x0060524b, 0x00695753, 0x00776562, 0x0066514f, 0x00534140, 0x00443534, 0x00605655, 0x00cfcac7, 0x00ecece9, 0x00e8ebe7, 0x00dee4e0, 0x00cccbce, 0x00c9cbd5, 0x00d4dbed, 0x0059637e,
- 0x00182848, 0x00718198, 0x00868e9b, 0x00848380, 0x00a4917a, 0x00b4a99d, 0x00d1c8c2, 0x00e3dbd3, 0x00e6dbd8, 0x00e2d7d3, 0x00cac0bb, 0x00746a64, 0x006a605b, 0x00807671, 0x007c736d, 0x00857c76,
- 0x00fcfbff, 0x00fefdfd, 0x00adb1ab, 0x00343b31, 0x00181804, 0x0028220d, 0x002f2614, 0x002f251c, 0x0026283b, 0x00232c4e, 0x00203364, 0x00153176, 0x000d2f83, 0x000c2b8a, 0x00122f8d, 0x00163185,
- 0x00192765, 0x00112056, 0x0016285c, 0x001d3570, 0x00173682, 0x001c3881, 0x00233b85, 0x0025388a, 0x0023318a, 0x001d2f8c, 0x001a328b, 0x0013328a, 0x00133584, 0x00193383, 0x002c3d8e, 0x00424a9b,
- 0x00374592, 0x00273978, 0x00223768, 0x00273d60, 0x003b4f7b, 0x0035447d, 0x00111b5d, 0x00121a5e, 0x0016234d, 0x0017263b, 0x00152034, 0x002d3448, 0x0030373f, 0x00585f5c, 0x00585f5b, 0x00121919,
- 0x00091830, 0x00456588, 0x0088b2e2, 0x00669cd3, 0x005d9ed7, 0x005499c7, 0x004f96c5, 0x004e93cb, 0x004f8edb, 0x004b8bd8, 0x004487d0, 0x004588cc, 0x004488c3, 0x004588c5, 0x00458ac8, 0x004588c8,
- 0x004786cb, 0x004a89cd, 0x004985d0, 0x004882d1, 0x005083bf, 0x007099c3, 0x0083a4b9, 0x003e5759, 0x00030703, 0x000b0604, 0x00161011, 0x002d2b31, 0x005c595e, 0x007d7c82, 0x00908f9b, 0x007f8290,
- 0x00646d8a, 0x004c5e85, 0x002f4a7b, 0x0022437d, 0x001b4687, 0x001c487b, 0x001d4778, 0x001f497f, 0x00204692, 0x0022489b, 0x002347a7, 0x002246aa, 0x002245ac, 0x002247a8, 0x002048a3, 0x001b449d,
- 0x000d4298, 0x00486ca8, 0x00adbfe7, 0x00a4a6b5, 0x008f8f9e, 0x00707a92, 0x00283957, 0x00142c4b, 0x000c1924, 0x000f120b, 0x001a180b, 0x000e140d, 0x000c0f07, 0x00080b04, 0x00050702, 0x00000400,
- 0x00030404, 0x00030404, 0x00030505, 0x00020505, 0x00030507, 0x00040507, 0x00050506, 0x00050506, 0x00070605, 0x00090906, 0x000b0b08, 0x000c0d0a, 0x000d0e09, 0x000e100a, 0x0012130d, 0x000b0c04,
- 0x001f211f, 0x008b8a8a, 0x00fefefe, 0x00fefcfc, 0x00fcfcfb, 0x00f8f7f6, 0x00fafcfb, 0x00bfbfc0, 0x00666666, 0x00818181, 0x00bbbcbf, 0x00dfe0e5, 0x00fafbff, 0x00fefdff, 0x00fcfbfd, 0x00fdfcfe,
- 0x00fdfbff, 0x00fafbfc, 0x00fdfbff, 0x00fefbfd, 0x00ffffff, 0x00fefbfb, 0x00fdfbff, 0x00fdfafd, 0x00fefdfe, 0x00fdfeff, 0x00fefffe, 0x00fcfdfe, 0x00fdfcfd, 0x00fcfbfe, 0x00fcfcfd, 0x00fbfbfc,
- 0x00fffdff, 0x00fffcfe, 0x00fefdff, 0x00fdfbfd, 0x00fffefe, 0x00fdfdfc, 0x00fdfcfc, 0x00fcfcfa, 0x00fcfefc, 0x00fcfcfd, 0x00fafcf7, 0x00fbfef3, 0x00fcfef9, 0x00fefefe, 0x00fbfcfd, 0x00fffeff,
- 0x00fbfdff, 0x00fbfafd, 0x00fdfcfd, 0x00fdfdf7, 0x00fbfff3, 0x00fcfdf3, 0x00fffefa, 0x00fefff9, 0x00fdfdfb, 0x00fdfcfa, 0x00fffffc, 0x00fdfdfa, 0x00fdfefb, 0x00fdfefa, 0x00fdfdf7, 0x00fefcf6,
- 0x00fcfcfa, 0x00fcfbfa, 0x00fcfcfa, 0x00fbfbf9, 0x00fdfcf9, 0x00fcfbf9, 0x00fcfbfa, 0x00fcfbfb, 0x00f9faf7, 0x00f9faf7, 0x00f7f9f6, 0x00f8faf8, 0x00f8f8f5, 0x00f8f8f5, 0x00f7f8f3, 0x00f6f6f1,
- 0x00f6f7f4, 0x00f7f6f4, 0x00f2f4f2, 0x00f2f2f2, 0x00ecedea, 0x00e2e5e6, 0x00dde6e7, 0x00d5dfdd, 0x00d5d7d7, 0x00d5dad7, 0x00d1d6d2, 0x00d0d2ce, 0x00cccbc3, 0x00c7c6ba, 0x00c0bfb1, 0x00bcbcae,
- 0x00d0cec8, 0x00f3f1eb, 0x00f5f3ee, 0x00f4f4ee, 0x00f3f4ee, 0x00edeee6, 0x00eef1e6, 0x00f7fcee, 0x00f9fff2, 0x00f9fdf2, 0x00fbfcfa, 0x00e9e7f2, 0x00797889, 0x00312e3e, 0x002f2b3a, 0x002d2a3b,
- 0x002f2d3d, 0x0032313f, 0x003c3a4b, 0x00464454, 0x004f4c5d, 0x004c505a, 0x00414651, 0x00353b47, 0x002a2d41, 0x0024273e, 0x0022253f, 0x00242742, 0x00282b40, 0x002d3142, 0x00404550, 0x0052595e,
- 0x00696668, 0x00736e6c, 0x00756e68, 0x006d655b, 0x0063574c, 0x005d534a, 0x00625d56, 0x0067665f, 0x006d7777, 0x00778386, 0x007f898f, 0x00858c92, 0x00858a90, 0x00878b91, 0x00909299, 0x009997a0,
- 0x00a8a7ad, 0x00b1b1b6, 0x00bababc, 0x00bababc, 0x00b7b7b7, 0x00b3b4b7, 0x00b0b1b5, 0x00b0b0b4, 0x00b6b5b7, 0x00bbbabb, 0x00bfbfbf, 0x00c7c7c6, 0x00ccccca, 0x00d3d3d0, 0x00d9d9d6, 0x00ddddd9,
- 0x00e5e4de, 0x00e6e6de, 0x00ebebe5, 0x00eeeee9, 0x00f0f1ec, 0x00f4f5f0, 0x00f6f8f3, 0x00f7f9f2, 0x00f5f9f5, 0x00f7faf7, 0x00fafbf9, 0x00fbfcf7, 0x00fbfbfa, 0x00fcfbfc, 0x00fdfcfe, 0x00fcfdfd,
- 0x00fcfdfd, 0x00fcfefd, 0x00fffefd, 0x00fbfefa, 0x00fffcf7, 0x00fdfdfd, 0x00fefcfe, 0x00fcfefd, 0x00fbfefe, 0x00fcfdfe, 0x00fbfcfd, 0x00fefdfd, 0x00fefbfc, 0x00fefbfb, 0x00fbfafa, 0x00fcfbfc,
- 0x00fefdf7, 0x00fefef9, 0x00fcfff9, 0x00fbfffa, 0x00fafefa, 0x00fbfffc, 0x00fbfffc, 0x00fdfffe, 0x00fefdff, 0x00fdfbfe, 0x00fbfbfc, 0x00f8fcfd, 0x00f5fbf9, 0x00f7fdf4, 0x00f8fdf2, 0x00fafff1,
- 0x00f8fdef, 0x00f9fff3, 0x00fbfff9, 0x00fbfffe, 0x00f8fdfb, 0x00f9fbfa, 0x00fdfbfb, 0x00fdfcfa, 0x00fcfefa, 0x00fdfefa, 0x00fefefa, 0x00fdfefa, 0x00fcfdfb, 0x00fafcfa, 0x00fafcfa, 0x00fbfcfb,
- 0x00fcfbf9, 0x00fcfcf7, 0x00fefff9, 0x00fefffa, 0x00fdfdf9, 0x00fdfefb, 0x00fdfefd, 0x00fcfdfb, 0x00fdfdf7, 0x00fcfcf8, 0x00fafbf9, 0x00f4f5f5, 0x00f6f6f6, 0x00f4f5f3, 0x00f5f5f3, 0x00b5b5b4,
- 0x00393b3c, 0x00373a38, 0x00525251, 0x00646362, 0x00767676, 0x007c7d7d, 0x00868789, 0x00909392, 0x00a0a4a6, 0x00abb2b2, 0x00b7bfbf, 0x00c4cbca, 0x00d9dedd, 0x00e5e7e7, 0x00efefef, 0x00f4f3f4,
- 0x00f7f6f8, 0x00f8f8f9, 0x00fbfbfc, 0x00fbfbfb, 0x00fdfdfd, 0x00fcfcfc, 0x00fcfbfb, 0x00fefdfc, 0x00ffffff, 0x00fefefe, 0x00fbfdfc, 0x00fafdfe, 0x00fcfdfe, 0x00fbfdfe, 0x00fafdfe, 0x00fafdff,
- 0x00fbfbfa, 0x00fcfafa, 0x00fffefa, 0x00fefffa, 0x00fefdfb, 0x00fffffd, 0x00fefffe, 0x00fcfdfb, 0x00fefdf9, 0x00fcfcf8, 0x00fcfaf8, 0x00faf9f6, 0x00fbf9f5, 0x00f9f6f1, 0x00f2efea, 0x00ece9e5,
- 0x00e6e4e1, 0x00e1e0dc, 0x00b6b3b0, 0x00787470, 0x003c3632, 0x0049403c, 0x009b908a, 0x00cbbeb9, 0x00c9bab7, 0x00cbbcb6, 0x00d5c5c4, 0x00cec0c2, 0x00dbc7bd, 0x00dac7bb, 0x00dfd2cb, 0x00d3d2d0,
- 0x008f96a2, 0x00807c8d, 0x00866c77, 0x00854c4a, 0x00ba5743, 0x00e8512a, 0x00f14d23, 0x00e36041, 0x00e9b6ae, 0x00f5dfe4, 0x00d9d4e4, 0x00cdcde0, 0x00d5cadd, 0x00dbd0e1, 0x00dad1e1, 0x00d2cddc,
- 0x00cabddb, 0x00c5c9d5, 0x00d7d6d2, 0x00d0b9aa, 0x00c25b4c, 0x00ae3527, 0x00c75e4f, 0x00e7a897, 0x00dfdad3, 0x00cdcad4, 0x00bebbcd, 0x00cbc3d7, 0x00dbd8e3, 0x00ebeaf2, 0x00fbfcfb, 0x00f8fefd,
- 0x00fbfdfd, 0x00fffcfb, 0x00f1eff4, 0x00a7a4a7, 0x0046414a, 0x00795145, 0x00c1917a, 0x00edc8ad, 0x00b19ca8, 0x00433868, 0x0019165c, 0x002e3384, 0x008189b6, 0x00c1c8e9, 0x00cbd1ef, 0x00cacbf1,
- 0x00d1ceed, 0x00c8c6e3, 0x00c3c4de, 0x00cccce4, 0x00d9dcf1, 0x00dfe1f4, 0x00e4e7f7, 0x00e7eaf8, 0x00e7ebf9, 0x00ebebf8, 0x00edecf8, 0x00f1f1f8, 0x00eef4fc, 0x00eff5fe, 0x00eaedfb, 0x00eaeaf0,
- 0x00e8e5eb, 0x00eaeef7, 0x009dabc1, 0x003b5680, 0x00265288, 0x002e57af, 0x003458b8, 0x003d57a9, 0x004c58ab, 0x004e60b9, 0x00506cc6, 0x005682d4, 0x00629db5, 0x0073a494, 0x007ea572, 0x008da55a,
- 0x00909a75, 0x008f9b74, 0x008e9d74, 0x008e9f74, 0x008d9e7d, 0x008a9982, 0x00a4afa4, 0x00c8ccd2, 0x00cdcee5, 0x00b0aecd, 0x00676394, 0x00363882, 0x0018286c, 0x001d3271, 0x004e609d, 0x008593ca,
- 0x00c0bbec, 0x00d2c3e9, 0x00e0d1eb, 0x00d2c6cf, 0x00615d5d, 0x001d1a18, 0x00110d05, 0x0025160b, 0x00543320, 0x00663e27, 0x0071442a, 0x00805136, 0x00866148, 0x008b745c, 0x00c6b7a1, 0x00f4f1dc,
- 0x00fdffff, 0x00fbfcfd, 0x00fcfefe, 0x00fbfffd, 0x00a7aead, 0x00252d2b, 0x000c1814, 0x000e1915, 0x000c1a16, 0x000b1b17, 0x000c1c16, 0x000f1d15, 0x000f1b14, 0x000f1c16, 0x00101c16, 0x00101d17,
- 0x00101c15, 0x000f1d16, 0x00101d15, 0x00101d15, 0x00101c16, 0x00101d10, 0x00111c0f, 0x00101c16, 0x000c1d1c, 0x000b1e19, 0x00091e15, 0x000b1e13, 0x0016231e, 0x0030353e, 0x004d4b5f, 0x00413857,
- 0x00392e6d, 0x00372b63, 0x00302859, 0x002c2651, 0x00323b66, 0x00314472, 0x00284372, 0x00233d73, 0x00233365, 0x00252b5a, 0x00312845, 0x004f332e, 0x00725239, 0x0085613a, 0x008b6432, 0x0089602a,
- 0x00885930, 0x00835834, 0x00754d2d, 0x00674123, 0x00583819, 0x00654721, 0x007a5e3b, 0x008a705b, 0x0092685b, 0x0070644a, 0x00303518, 0x00161a0d, 0x00131c2a, 0x00111e12, 0x004e2a10, 0x00b9300e,
- 0x00df3c00, 0x00cd3b10, 0x00eb8369, 0x00f7dccc, 0x00e7d5da, 0x00d9cfcf, 0x00d8d9d2, 0x00cddacd, 0x00dabbc1, 0x00c4bbc3, 0x00c0bdc5, 0x00c7c0c5, 0x00ccc5ca, 0x00cec8cc, 0x00cdc6ca, 0x00cbc3c9,
- 0x00cac2c9, 0x00cfc7ce, 0x00ccc6cc, 0x00c3bdc3, 0x00c6c0c4, 0x00ccc8c9, 0x00d6d4d3, 0x00dbdada, 0x00dad6d7, 0x00d5d2d3, 0x00d5d3d3, 0x00d7d6d6, 0x00dad7d8, 0x00dbd8d9, 0x00dbdadb, 0x00dcdbdc,
- 0x00dfdee1, 0x00dad9db, 0x00dddddf, 0x00d8d8db, 0x00cacacc, 0x00cecfd1, 0x00d9dbdd, 0x00d6d9db, 0x00d4d3d7, 0x00cecbcf, 0x00bab9c2, 0x00aeadc0, 0x009e9cb2, 0x00848198, 0x0059536c, 0x00403551,
- 0x00241835, 0x0021162e, 0x002e2336, 0x003e3242, 0x004a3c4c, 0x00594253, 0x00664d59, 0x0064505c, 0x005b4952, 0x0066545f, 0x00b5aab4, 0x00f6f0f6, 0x00fdfeff, 0x00fcfeff, 0x00fbfeff, 0x00f8fcff,
- 0x00dedee9, 0x00ece8e6, 0x00ede5de, 0x00eee7d9, 0x00e8ecf2, 0x00acbcdd, 0x0048659c, 0x00466cb3, 0x00446eb3, 0x004a72b1, 0x0093b0df, 0x00e3f5fd, 0x00ffeffa, 0x00f3f2f0, 0x00e6f1ea, 0x00c2d9cf,
- 0x0057424f, 0x00402b3a, 0x003f343e, 0x00434b4b, 0x00796672, 0x00786f7a, 0x003d3941, 0x000f0b11, 0x0009080a, 0x0008080a, 0x00010406, 0x0005090d, 0x00040513, 0x00000014, 0x00040521, 0x000c0f31,
- 0x00111442, 0x003c416e, 0x00404675, 0x00404775, 0x004c5785, 0x00515c8f, 0x00556298, 0x003d4b86, 0x001b2a6c, 0x0019286e, 0x00132673, 0x000f2c82, 0x0031428f, 0x00404c94, 0x002c367b, 0x00253176,
- 0x002d3f8e, 0x00264392, 0x000a2475, 0x00021666, 0x000c1f67, 0x00242f63, 0x003f3f61, 0x001c1c2f, 0x008b8580, 0x00cec4ba, 0x00f6eae0, 0x00f2e8e1, 0x00f1ebec, 0x00e3e6e6, 0x00e1edeb, 0x00deefea,
- 0x007f847f, 0x00060b0f, 0x00121a2a, 0x004c5979, 0x0027396c, 0x001e2e65, 0x002a3a72, 0x0029376b, 0x002a335d, 0x001f2749, 0x00080b21, 0x000e0a03, 0x0003020a, 0x00030c20, 0x00404f73, 0x005a6d9d,
- 0x00344c89, 0x00263c79, 0x00263c77, 0x002a3e76, 0x002b3a6e, 0x00263662, 0x001a2848, 0x000c122a, 0x001d1317, 0x002d1918, 0x002a0c0c, 0x002c0807, 0x0036110b, 0x00432314, 0x00503421, 0x0061482b,
- 0x00766960, 0x008b7b73, 0x00988884, 0x00a69392, 0x00978784, 0x006e5d5c, 0x00493c3c, 0x006c6360, 0x00ccc8c3, 0x00e1e1de, 0x00f2f5f0, 0x00e8ede9, 0x00d2d5d6, 0x00c1c6cf, 0x00d8deef, 0x00868ea8,
- 0x001b2d50, 0x0076869e, 0x00d6dded, 0x00eceaeb, 0x00f7ebdb, 0x00f7f0e8, 0x00ede8e5, 0x00e7e2e0, 0x00e6e2e1, 0x00e9e4e3, 0x00cdc8c7, 0x004a4543, 0x00251f1d, 0x00352f2e, 0x0036302f, 0x003e3737,
- 0x00fefdff, 0x00fefcfe, 0x009da19c, 0x00252c20, 0x001f1c04, 0x002b2408, 0x00322914, 0x00362b21, 0x0028283d, 0x00242b51, 0x00213169, 0x00153379, 0x000d2e84, 0x000a2b86, 0x00102d8b, 0x00163287,
- 0x001c2967, 0x000f1c50, 0x00102054, 0x001c326c, 0x001a3782, 0x001a3478, 0x0020387c, 0x00263981, 0x00263088, 0x001f2d88, 0x001a2e8a, 0x0014328d, 0x00123384, 0x00132d78, 0x00142469, 0x00212b69,
- 0x00243270, 0x001f3163, 0x0013264d, 0x003b4d6c, 0x004d5d7f, 0x00313b69, 0x001e2558, 0x0020285c, 0x00202949, 0x00252d3e, 0x001d2331, 0x00242938, 0x002e3436, 0x004d524d, 0x007e857d, 0x003a4343,
- 0x000f1f38, 0x0051729b, 0x0078a3da, 0x005e9ad8, 0x00539bdc, 0x005099cd, 0x004d95c5, 0x004c93cd, 0x004d8cdf, 0x004a88dc, 0x004686d7, 0x004989d2, 0x004888c9, 0x004587c5, 0x00448ac8, 0x004489c9,
- 0x004983c9, 0x004987c9, 0x004683cb, 0x004782cb, 0x00457bb8, 0x005682b1, 0x007c9dbb, 0x00495f6b, 0x00090d0d, 0x00120c0b, 0x0033302e, 0x00444852, 0x00555259, 0x00494247, 0x00473f43, 0x00534d54,
- 0x00565466, 0x00464e6a, 0x0033436a, 0x00253f73, 0x001e4482, 0x001a4673, 0x001b4470, 0x001b457a, 0x001f4594, 0x002045a0, 0x001f44a7, 0x001d41ab, 0x001d41a5, 0x001f439e, 0x001e4494, 0x00183f8b,
- 0x00114088, 0x00355687, 0x007888a7, 0x0091919c, 0x00959197, 0x006e6f81, 0x0030394e, 0x001e2a41, 0x00131d1d, 0x00181909, 0x001c1a08, 0x0015180e, 0x000e1308, 0x000d0e07, 0x00070804, 0x00030400,
- 0x00040705, 0x00030605, 0x00020604, 0x00020705, 0x00040809, 0x0006070a, 0x00070708, 0x00060608, 0x00090908, 0x000b0c09, 0x000e0e0b, 0x0010110d, 0x0012130c, 0x0012130c, 0x0012130c, 0x00090b03,
- 0x002f302b, 0x00a2a29f, 0x00fdfdfd, 0x00fcfcfd, 0x00fbfcfb, 0x00fdfdfb, 0x00f7f7f6, 0x00b3b4b2, 0x00686764, 0x00878981, 0x00c1c4bf, 0x00e2e5e3, 0x00fdfbfd, 0x00fcfefa, 0x00fbfdfc, 0x00fdfdfd,
- 0x00fffcfc, 0x00fbfefb, 0x00fcfdfb, 0x00fdfffd, 0x00fdfffb, 0x00fafdfd, 0x00fafcff, 0x00fcfcff, 0x00fefdfe, 0x00fbfefe, 0x00fdfdfe, 0x00fafcfd, 0x00fbfbff, 0x00fcfbff, 0x00fcfcfe, 0x00fdfcff,
- 0x00fdfefe, 0x00fffdfd, 0x00fefcfd, 0x00fefcfd, 0x00fcfcfb, 0x00fbfdfc, 0x00fcfcfc, 0x00fefefd, 0x00fefcff, 0x00fcfcfd, 0x00fcfbf8, 0x00f8fcf0, 0x00fcfdf7, 0x00fbfbf8, 0x00fefdfd, 0x00fbfafb,
- 0x00fefeff, 0x00fcfcfb, 0x00fdfefc, 0x00fefef8, 0x00fbfbf3, 0x00fdfdf6, 0x00fffefc, 0x00fefefc, 0x00fdfcfb, 0x00fefcfa, 0x00fdfcfb, 0x00fffefc, 0x00fffdfa, 0x00fffdf9, 0x00fdfcf7, 0x00fffcf8,
- 0x00fffafd, 0x00fffafd, 0x00fffbfb, 0x00fdfbfa, 0x00fffcfa, 0x00fffdfc, 0x00ffffff, 0x00fdfeff, 0x00fffbff, 0x00fffdfe, 0x00fcfdfe, 0x00fdfdfd, 0x00fdfdfb, 0x00fafbf8, 0x00fbfdfd, 0x00fafbf9,
- 0x00fffffc, 0x00fffefc, 0x00fefdfd, 0x00fdfcfd, 0x00fcfcfb, 0x00fdfefe, 0x00fafefc, 0x00f8fffc, 0x00fcfefa, 0x00fbfffa, 0x00fcfefc, 0x00fcfdfb, 0x00fdfef9, 0x00fcfef6, 0x00fbfef6, 0x00fcfef6,
- 0x00fbfaf6, 0x00fffdf9, 0x00fcf9f7, 0x00faf9f5, 0x00fafbf5, 0x00f0f1e9, 0x00eff0e7, 0x00f9fbf1, 0x00fefff7, 0x00f8fcf2, 0x00fdfffb, 0x00edecf6, 0x007c788b, 0x002a2638, 0x002c2838, 0x00312f40,
- 0x00464456, 0x00504d5e, 0x005e5a6d, 0x00676475, 0x006e6b7b, 0x006d7077, 0x00666c71, 0x005f656a, 0x00595e6c, 0x005a5e6e, 0x005d6173, 0x0064677a, 0x006b6f7c, 0x00737681, 0x0082878c, 0x00909496,
- 0x00a8a8ae, 0x00b1afaf, 0x00b7b3b0, 0x00b6b1ab, 0x00b6ada6, 0x00b9b0aa, 0x00c1bcb7, 0x00c5c4bb, 0x00c5cdcd, 0x00ced6d7, 0x00d3dcdd, 0x00d7ddde, 0x00dbdddf, 0x00dee2e4, 0x00e4e8e9, 0x00eae9ec,
- 0x00eceef2, 0x00f2f3f5, 0x00f6f6f7, 0x00f6f6f6, 0x00f6f7f5, 0x00f7f6f8, 0x00f8f6fa, 0x00f7f7f7, 0x00f8f8fa, 0x00f9f8fa, 0x00fbf9fa, 0x00fdfbfb, 0x00fdfdfc, 0x00fdfefc, 0x00fffffc, 0x00fffffc,
- 0x00fcfefe, 0x00fcfefb, 0x00fcfffc, 0x00fcfefc, 0x00fbfdfa, 0x00fcfdfb, 0x00fefffc, 0x00fcfdf7, 0x00fefefb, 0x00fbfef9, 0x00fcfefa, 0x00fefffb, 0x00ffffff, 0x00ffffff, 0x00fefdff, 0x00fefdfe,
- 0x00fdfdfd, 0x00fefefe, 0x00fefefc, 0x00fdfefa, 0x00fefcf9, 0x00fbfbfd, 0x00fafcff, 0x00fafcff, 0x00feffff, 0x00fefeff, 0x00fdfdfe, 0x00fdfdfd, 0x00fffcff, 0x00fffdff, 0x00fefeff, 0x00ffffff,
- 0x00fcfaf5, 0x00fcfbf6, 0x00fcfcf7, 0x00fbfdf8, 0x00fdfffa, 0x00fbfdf9, 0x00fdfefa, 0x00fdfefa, 0x00fdfefd, 0x00feffff, 0x00fefdfd, 0x00fefbfe, 0x00fefcfe, 0x00fcfefb, 0x00f9fcf6, 0x00fafef2,
- 0x00fcfef9, 0x00fcfdf9, 0x00fdfbfd, 0x00fcfafe, 0x00fef8fb, 0x00fefafc, 0x00fefcfc, 0x00fdfcf9, 0x00fffdfb, 0x00fefdfa, 0x00fffefc, 0x00fefefd, 0x00fdfdfb, 0x00fafbf9, 0x00fafaf8, 0x00fafbf8,
- 0x00f8f8f4, 0x00f6f6f1, 0x00f5f4f1, 0x00f2f3ef, 0x00eff0ea, 0x00ebebe5, 0x00e6e5e1, 0x00e2e2dc, 0x00ddded9, 0x00d8d9d4, 0x00d6d6d4, 0x00cecece, 0x00c7c6c7, 0x00bfbfbf, 0x00b3b3b2, 0x00898a89,
- 0x004d4b4d, 0x00585857, 0x00777778, 0x007c7c7c, 0x007d7e7f, 0x00757476, 0x00716e73, 0x006d6d6f, 0x006c6d6f, 0x006a6d6e, 0x006c7171, 0x00747b7a, 0x00848a89, 0x008e9291, 0x009d9f9f, 0x00aaabab,
- 0x00c3c1c1, 0x00cbcaca, 0x00d6d6d7, 0x00e0e0e1, 0x00eff0f0, 0x00f9fafa, 0x00fbfdfc, 0x00fcfdfd, 0x00fffeff, 0x00fefdfe, 0x00f9fcfc, 0x00f6fcfe, 0x00f8fdfe, 0x00f9fbfc, 0x00fafdfb, 0x00fcfdfe,
- 0x00f8fbfa, 0x00f8f9f9, 0x00fdfefa, 0x00fffffc, 0x00fffefd, 0x00fdfcfc, 0x00fcfdfb, 0x00fdfef9, 0x00fcfdf9, 0x00fbfcf8, 0x00fdfdf9, 0x00fdfdf9, 0x00fefdf9, 0x00fffefb, 0x00fefdfa, 0x00fdfcf9,
- 0x00fbfdf8, 0x00fcfdf9, 0x00ecece9, 0x00d3d2ce, 0x00b7b4b1, 0x00c1bbb7, 0x00dcd4d0, 0x00e2d7d4, 0x00d7cfcc, 0x00d3cbc5, 0x00d9cecb, 0x00d0c3c6, 0x00d8cac4, 0x00d4c7bf, 0x00ded7d2, 0x00aeb0b0,
- 0x00535b69, 0x0062616e, 0x00756169, 0x007a494a, 0x00a95649, 0x00e35132, 0x00ea4b26, 0x00d75b3f, 0x00e0aca5, 0x00eed7da, 0x00d1ced7, 0x00c8cbd8, 0x00d5cddc, 0x00d8cedf, 0x00d5c7db, 0x00d0c4d7,
- 0x00c2c1da, 0x00cfccd0, 0x00dfcac2, 0x00cf9b85, 0x00b34436, 0x00b3443e, 0x00e28c8d, 0x00ebc8c8, 0x00d1d7d9, 0x00c5c9ce, 0x00c2c2cd, 0x00cdc7d8, 0x00e1dee9, 0x00f4f3fa, 0x00fcfcfd, 0x00fafcfc,
- 0x00fbfdfe, 0x00fdfcfd, 0x00e7e5ec, 0x00919299, 0x003c3946, 0x00653d33, 0x00a16b58, 0x00cea48b, 0x00a68e98, 0x00403265, 0x00130f58, 0x001f2275, 0x00686f9f, 0x00b3bbdc, 0x00c7cded, 0x00cccbf7,
- 0x00ced0ed, 0x00c4c5df, 0x00c1c1da, 0x00cbcbe3, 0x00dadcf3, 0x00daddf1, 0x00e1e4f5, 0x00ebedfb, 0x00ebecfa, 0x00e8e9f3, 0x00e5e6f2, 0x00e8e6f7, 0x00eef2fd, 0x00eef6fd, 0x00eef3fc, 0x00edecf3,
- 0x00f0e7ea, 0x00ebecef, 0x00b2b8c3, 0x005d707f, 0x00335771, 0x0025518e, 0x002e55af, 0x003756b9, 0x004354c2, 0x00465dc5, 0x004d6cce, 0x004f7bd1, 0x006093c9, 0x006fa0a9, 0x007ba483, 0x0083a65a,
- 0x008e9f6e, 0x008fa06f, 0x0090a070, 0x0090a173, 0x008e9f7a, 0x00909d83, 0x00a4aa9f, 0x00c2c4c7, 0x00c6c3db, 0x00b5b0cf, 0x00827eaf, 0x00444b99, 0x001f2a6f, 0x001c2b69, 0x005c6499, 0x00a7abd8,
- 0x00d0c2e2, 0x00d2c1da, 0x00e1cddf, 0x00ebd9e3, 0x00998b8f, 0x002f2c2e, 0x00100d0c, 0x0020130f, 0x00522e1c, 0x00643923, 0x00714227, 0x007a4a2d, 0x00825b42, 0x008b725c, 0x00c7baa7, 0x00f2f4e2,
- 0x00feffff, 0x00fbfdfd, 0x00fcfffd, 0x00fbfffd, 0x00a7aead, 0x00262e2d, 0x000d1915, 0x000e1a16, 0x000d1b17, 0x000c1b17, 0x000e1c17, 0x00101e15, 0x000e1c14, 0x000e1c14, 0x00101d16, 0x00121e18,
- 0x00111b14, 0x00101c15, 0x00111d15, 0x00101d16, 0x00101c15, 0x00121c0d, 0x00121c0b, 0x00101c14, 0x000c1e20, 0x000b1f1e, 0x00061c19, 0x000d2017, 0x00121b16, 0x0016171c, 0x0040394a, 0x005a4b65,
- 0x0047336d, 0x0039285b, 0x00372755, 0x00453a64, 0x004b4f7d, 0x00435282, 0x003a5081, 0x00364c7c, 0x003a4069, 0x003c3a5b, 0x00453748, 0x005e4035, 0x00775838, 0x008a663a, 0x008b6432, 0x00875e29,
- 0x00855a30, 0x00875b39, 0x007b5134, 0x00694126, 0x00543213, 0x005b3b15, 0x00614420, 0x00644732, 0x0075473e, 0x0062553c, 0x0035381b, 0x00181b0e, 0x00141b26, 0x00131d11, 0x00542b0d, 0x00bd2f09,
- 0x00d63500, 0x00c93a12, 0x00eb876f, 0x00f7dfd0, 0x00ebdbe2, 0x00e1d7db, 0x00ddddd9, 0x00d1ddd1, 0x00dabbc2, 0x00c3b9c3, 0x00bfbcc6, 0x00c1bbc2, 0x00c4bec3, 0x00c8c3c8, 0x00cac5ca, 0x00cbc4cc,
- 0x00cac3c9, 0x00ccc5cb, 0x00cec8cf, 0x00c4bfc6, 0x00c5bec4, 0x00cbc6c9, 0x00d5d3d4, 0x00dcdadc, 0x00d9d7d6, 0x00d4d2d1, 0x00d6d4d4, 0x00d9d8d8, 0x00dcd8da, 0x00dddadc, 0x00dedbdd, 0x00e0dddf,
- 0x00dddcde, 0x00dadadd, 0x00dddde0, 0x00d5d6d9, 0x00cfd0d3, 0x00d6d6d9, 0x00dadbdc, 0x00d9d8db, 0x00d9d7da, 0x00d7d5d8, 0x00ceccd4, 0x00ceccdd, 0x00aca8bd, 0x009490a8, 0x00a5a2bd, 0x00918dad,
- 0x007a7697, 0x00636081, 0x00393558, 0x00262146, 0x00252247, 0x002b2449, 0x0033294e, 0x00362e4e, 0x003c3653, 0x005d566f, 0x00c0bdd2, 0x00f5f4fc, 0x00fcfdfe, 0x00fbfdfc, 0x00fafdfd, 0x00f8feff,
- 0x00dce2e9, 0x00e5e5e0, 0x00efe9de, 0x00e7dfc9, 0x00ebebe7, 0x00e0e8f7, 0x007085b2, 0x004c69aa, 0x004570bb, 0x004774bc, 0x005a83bd, 0x00bad5ea, 0x00fef2fd, 0x00f8f5eb, 0x00eef7e7, 0x00d4ebdf,
- 0x00715f6c, 0x003e2b37, 0x0041373a, 0x004b534e, 0x007b6b75, 0x004b4652, 0x000e0e18, 0x00020209, 0x0006080d, 0x0005080b, 0x00060b0e, 0x0004080c, 0x00070713, 0x00040313, 0x0007061b, 0x000a0921,
- 0x000c103c, 0x00090f3a, 0x000c133d, 0x000f143f, 0x0008103d, 0x00081043, 0x001e2962, 0x00293673, 0x0038478c, 0x0044529a, 0x0035499b, 0x002646a7, 0x002d3e95, 0x00394393, 0x002a347d, 0x00242c75,
- 0x002a3d8e, 0x00182e82, 0x0009267b, 0x00052377, 0x00082073, 0x0015296c, 0x0039477a, 0x00161d41, 0x00252529, 0x00544f4a, 0x00ada59b, 0x00eae3dc, 0x00f1edee, 0x00e2e5e7, 0x00dee9e9, 0x00deedeb,
- 0x00474c4b, 0x0001050d, 0x00243044, 0x00505e7f, 0x001c2f63, 0x0012235c, 0x0024356b, 0x00273767, 0x00212c50, 0x00151c3a, 0x00020618, 0x00050702, 0x0001050f, 0x001c2845, 0x00596795, 0x003e518e,
- 0x002d4185, 0x00223675, 0x00243974, 0x0024386a, 0x00203159, 0x00162844, 0x0008172b, 0x00000818, 0x000e080e, 0x0026141a, 0x00371b21, 0x002c0913, 0x002e0a09, 0x0039170c, 0x0042210a, 0x004f310d,
- 0x005c4d46, 0x007b6b65, 0x009c8b89, 0x00ab9998, 0x00b1a09f, 0x0090817f, 0x00665b59, 0x006a6260, 0x00b8b4b1, 0x00dddcd8, 0x00f6f4f2, 0x00edf2ef, 0x00dbdcdc, 0x00c9cdd1, 0x00caccdc, 0x00a4adc3,
- 0x00233757, 0x007a8ba3, 0x00d9e0f1, 0x00eae9ee, 0x00f4e8db, 0x00f4efeb, 0x00ebe7e7, 0x00e2e0e2, 0x00e5e3e5, 0x00ebe9ea, 0x00cfcdce, 0x00424041, 0x001d1a1c, 0x00221e21, 0x001f1b1f, 0x001e1a1e,
- 0x00fffdfe, 0x00f9f9fa, 0x008b9089, 0x001b2212, 0x00242206, 0x002a2405, 0x00312910, 0x00332b21, 0x002f2c44, 0x00262d54, 0x001d2e68, 0x000f2d74, 0x00082981, 0x00082b84, 0x000d2d86, 0x00163181,
- 0x001b2769, 0x00101b52, 0x000d1a52, 0x00192b6a, 0x00163181, 0x000f2869, 0x00112761, 0x001a2b65, 0x00202976, 0x001c2a7c, 0x0018297f, 0x00122a84, 0x000b2874, 0x00172d70, 0x00324075, 0x004d5880,
- 0x00374074, 0x001d284e, 0x00232f4e, 0x004e5c72, 0x00616d82, 0x0042496a, 0x00222648, 0x00222248, 0x001f2036, 0x00181a29, 0x0012131d, 0x001e212d, 0x00222926, 0x00262d25, 0x006e786f, 0x004c5a59,
- 0x00172745, 0x005175a4, 0x005e8ec8, 0x005090d5, 0x00448fd8, 0x00468fcb, 0x00488fc3, 0x00468ecf, 0x004c89e2, 0x004d84e3, 0x004983dd, 0x004986d8, 0x004485cb, 0x004083c5, 0x003f85c4, 0x004085c8,
- 0x004983c9, 0x004b87ca, 0x00457fc6, 0x00437ec5, 0x003e74b3, 0x003e6b9f, 0x006b8cb2, 0x0051697d, 0x0016181e, 0x001c1614, 0x003c3a3b, 0x00323b44, 0x00242128, 0x001b1315, 0x001d100f, 0x00241614,
- 0x003b2d37, 0x003d3951, 0x0036415c, 0x002a4066, 0x0023457a, 0x001d4371, 0x001a4470, 0x00184379, 0x001b4198, 0x001b41a2, 0x001c40a8, 0x001e41ab, 0x002144a0, 0x00244793, 0x00254986, 0x00204579,
- 0x00173770, 0x00182f51, 0x002f3a4b, 0x00615c5d, 0x00877b75, 0x007a6e74, 0x0049454d, 0x002d2c34, 0x00221d1b, 0x0025210d, 0x001e1c05, 0x001b1c0e, 0x00141809, 0x000f1407, 0x00090f04, 0x00060c00,
- 0x00080a09, 0x00070808, 0x00040705, 0x00010805, 0x00020808, 0x00050808, 0x00060807, 0x00070807, 0x000b0a0a, 0x000d0c0c, 0x00100f0c, 0x0013130c, 0x0014150e, 0x0013150c, 0x0011140a, 0x00080c03,
- 0x00444240, 0x00b8b8b4, 0x00fdfdfb, 0x00fcfbfc, 0x00fcfefe, 0x00fcfdfd, 0x00e6e9e6, 0x009b9f98, 0x00635c58, 0x007f7f77, 0x00bbbeb3, 0x00d4dad0, 0x00edf1e9, 0x00eff5eb, 0x00f1f8ea, 0x00f3f9ee,
- 0x00f7f7f3, 0x00f4f9f0, 0x00f5f7ed, 0x00f6faf1, 0x00f8fcf2, 0x00f6faf3, 0x00f6faf3, 0x00f7fbf3, 0x00fbfef9, 0x00f7fdf8, 0x00f8fcf4, 0x00f7fcf5, 0x00f8fef6, 0x00fafef9, 0x00f8fef6, 0x00f9fef8,
- 0x00fefefd, 0x00fefcfc, 0x00fefdfc, 0x00fefefc, 0x00fcfefa, 0x00fcfffa, 0x00fefdf9, 0x00fefdf8, 0x00fffdff, 0x00fdfefd, 0x00fffefb, 0x00fcfdf3, 0x00fdfdf3, 0x00fbfbf6, 0x00fefdfc, 0x00fcfdfc,
- 0x00fdf9fe, 0x00fffcfb, 0x00fcfefa, 0x00fffef8, 0x00fdfff8, 0x00fdfcfa, 0x00fcfdfc, 0x00fbfffb, 0x00fffefb, 0x00fffdfb, 0x00fdfbfb, 0x00fefcfc, 0x00fffbfa, 0x00fffbfa, 0x00fdfbfc, 0x00fffcfc,
- 0x00fffbff, 0x00fffcfe, 0x00fffeff, 0x00fcfefb, 0x00fefdfe, 0x00fefdfd, 0x00fcfdff, 0x00fcfcfd, 0x00fffbff, 0x00fffdff, 0x00fcfcfd, 0x00fcfcfc, 0x00fcfefc, 0x00f8fafa, 0x00fcfdfe, 0x00fafdfb,
- 0x00fefeff, 0x00fcfdff, 0x00fcfdfc, 0x00f7fbfa, 0x00f7f9fa, 0x00fdfdff, 0x00faf9f8, 0x00fcfdfb, 0x00fdfcfe, 0x00f9fefa, 0x00fdffff, 0x00fdfefe, 0x00fbfeff, 0x00fcfffd, 0x00f9fdfc, 0x00f6fbf7,
- 0x00fcfcfe, 0x00fefcfe, 0x00fffcff, 0x00fbfafa, 0x00fcfdfa, 0x00f4f4ef, 0x00f3f2ee, 0x00fbfbf7, 0x00fffdf7, 0x00fdfff7, 0x00fbfdf9, 0x00f7f5fa, 0x00afacb8, 0x007e7b87, 0x008b8894, 0x009695a0,
- 0x00a5a4b0, 0x00aeacb8, 0x00bcb9c5, 0x00c2c1ca, 0x00c6c4cd, 0x00c3c8cb, 0x00c1c7ca, 0x00c0c6c9, 0x00c6c9d3, 0x00c9ccd7, 0x00ced1dd, 0x00d5d8e2, 0x00dadee3, 0x00d9dee2, 0x00e0e4e7, 0x00e7eded,
- 0x00f3f1fa, 0x00f7f4f8, 0x00f7f6f6, 0x00f7f6f3, 0x00fbf8f2, 0x00f9f7f0, 0x00f8f9f3, 0x00f9faf2, 0x00fafdfc, 0x00f8fdfc, 0x00f9fdfc, 0x00fbfcfb, 0x00fdfdfc, 0x00fbfdfd, 0x00fbfefe, 0x00fbfdfc,
- 0x00fefdfe, 0x00fefefe, 0x00fffefd, 0x00fffefe, 0x00fdfdfa, 0x00fcfafc, 0x00fefbfd, 0x00fefefc, 0x00fffdff, 0x00fefcfd, 0x00fcfbfc, 0x00fdfdfd, 0x00fcfcfc, 0x00fcfdfc, 0x00fbfdfb, 0x00fbfffc,
- 0x00f7fbff, 0x00f8fcfb, 0x00f9fdfc, 0x00fbfffe, 0x00fdfffc, 0x00fcfefb, 0x00fcfefc, 0x00fbfdf8, 0x00fffdfc, 0x00fcfdf8, 0x00fbfdfa, 0x00fefefc, 0x00fefffe, 0x00fcfffd, 0x00fbfdff, 0x00fbfdfb,
- 0x00fcfcfe, 0x00fefbfe, 0x00fdfcf9, 0x00fffcf9, 0x00fdfbf7, 0x00fbfaf9, 0x00f9fefb, 0x00fbfdfe, 0x00feffff, 0x00feffff, 0x00fbfefc, 0x00fcfffc, 0x00fefcff, 0x00fffdff, 0x00fefcfd, 0x00fdfafc,
- 0x00fdfefe, 0x00fdfefc, 0x00fcfdfa, 0x00fbfffa, 0x00f9fef8, 0x00f9fdf8, 0x00fdfef9, 0x00fdfbf8, 0x00fefafa, 0x00fdfafa, 0x00fef8f6, 0x00faf2f3, 0x00fbf6f6, 0x00fbf9f4, 0x00f9f7f1, 0x00f6f5ec,
- 0x00f4f3f0, 0x00f0ebee, 0x00e8e1eb, 0x00e4dded, 0x00e5d8ec, 0x00dfd9e1, 0x00d7d8d5, 0x00d3d4d1, 0x00d6d3d5, 0x00d1d0d0, 0x00cbcbcc, 0x00c5c6c6, 0x00bfc0bd, 0x00b7b8b5, 0x00b1b2af, 0x00adafab,
- 0x00aaa8a7, 0x00a5a4a0, 0x00a1a19b, 0x009a9c95, 0x0092968c, 0x008f9189, 0x008e8d86, 0x0087897f, 0x0084837d, 0x007e7f78, 0x007b7b76, 0x00797976, 0x00696968, 0x00666866, 0x00616361, 0x005b5c59,
- 0x00696267, 0x007e7b7e, 0x00a5a5a5, 0x00acafae, 0x00b1b3b2, 0x00adacae, 0x00a5a2a3, 0x009b9a99, 0x00919193, 0x008a8a8c, 0x00828283, 0x00767877, 0x006e7170, 0x00626764, 0x005f6561, 0x00646b67,
- 0x00787579, 0x007d7b7e, 0x00838282, 0x008a8b8a, 0x009e9f9e, 0x00a9aaaa, 0x00b2b3b4, 0x00c1c1c2, 0x00d7d5d8, 0x00e4e2e4, 0x00eaeced, 0x00ebf2f3, 0x00f0f6f6, 0x00f4f9f8, 0x00f7fbf8, 0x00f6faf8,
- 0x00fdfdff, 0x00fefdff, 0x00fcfcf9, 0x00f9faf5, 0x00fcfafb, 0x00fdfdfd, 0x00fcfefc, 0x00fcfdf8, 0x00fefeff, 0x00fcfcfb, 0x00fdfefc, 0x00fdfefa, 0x00fbfcf9, 0x00fafcf9, 0x00fafdf8, 0x00fafef9,
- 0x00f9faf9, 0x00fcfefc, 0x00fbfdfc, 0x00fbfdfa, 0x00fafbf8, 0x00fbfaf6, 0x00fbf9f4, 0x00faf7f1, 0x00fbf6f1, 0x00f7f2ec, 0x00f1e9e6, 0x00ede2e5, 0x00f0e8e4, 0x00eae2db, 0x00ece8e1, 0x00a7a9a6,
- 0x005f6474, 0x007c7987, 0x007c6a75, 0x00734d52, 0x0094564e, 0x00d7563a, 0x00dc4b2a, 0x00ca5641, 0x00daa4a2, 0x00e9d0d4, 0x00cbc8ce, 0x00c3cad0, 0x00cfcfd7, 0x00d3ceda, 0x00cfc4d4, 0x00cfc1d2,
- 0x00c4c5dd, 0x00dccacd, 0x00e3b5ab, 0x00c8775f, 0x00af3e2e, 0x00cf7071, 0x00f2b5c1, 0x00e4d0e1, 0x00c6cedd, 0x00c3ced6, 0x00c3cace, 0x00d0cdd8, 0x00e7e2e9, 0x00f9f6fc, 0x00fafefa, 0x00fafdf5,
- 0x00fdfcfd, 0x00f9fafe, 0x00d9dae0, 0x0080828f, 0x003a3c4c, 0x005b383a, 0x00693d31, 0x007e5d48, 0x006e5b6d, 0x00322761, 0x0021206c, 0x001d2275, 0x00545c8a, 0x00a0a9c6, 0x00c2c8e5, 0x00ceccf5,
- 0x00ceccec, 0x00c2c2df, 0x00bdbfd8, 0x00c9cbe1, 0x00d9dbef, 0x00dbddf0, 0x00dbdfef, 0x00e2e7f5, 0x00f0eeff, 0x00ededfe, 0x00e6e8f7, 0x00e8e7fa, 0x00e9edfa, 0x00e9f0f9, 0x00e9eff7, 0x00eeeff3,
- 0x00f5e7ec, 0x00f1ebea, 0x00cacaca, 0x0087958e, 0x0058756e, 0x002f5a7d, 0x0028549d, 0x003150ba, 0x003c4acc, 0x00435acb, 0x004e70d4, 0x004e76d2, 0x005785d5, 0x006c94bc, 0x00769f92, 0x00769f5a,
- 0x008b9e5f, 0x008b9f60, 0x008d9e63, 0x008e9f66, 0x008d9f6f, 0x00909c7c, 0x00a3a99b, 0x00bdc2c3, 0x00c6c2e0, 0x00bcb6dc, 0x009295c7, 0x004554a3, 0x00182567, 0x00242b66, 0x006f6f9d, 0x00bfbade,
- 0x00ddc9e7, 0x00e2cbdf, 0x00d2bbcb, 0x00c6b3bf, 0x0076636c, 0x0024252b, 0x001f2327, 0x00352d28, 0x00623d34, 0x006b3c2c, 0x006c3a23, 0x00744127, 0x00744e38, 0x007f6655, 0x00beb2a3, 0x00f2f1e5,
- 0x00fffdff, 0x00fbfcfe, 0x00fcfefd, 0x00fbfffc, 0x00a7adad, 0x00262e2c, 0x000c1913, 0x000c1a14, 0x000f1b18, 0x000d1b18, 0x000d1c17, 0x000f1e14, 0x000d1a12, 0x000d1b13, 0x000d1c13, 0x000f1e16,
- 0x00141d16, 0x00121d17, 0x00111d15, 0x00101d16, 0x00111d16, 0x00141d0d, 0x00131c09, 0x000e1c11, 0x00091c1f, 0x000a1e20, 0x000a1f1f, 0x000c1c18, 0x00141b17, 0x00201f25, 0x002c2535, 0x00392943,
- 0x003d224b, 0x00351f42, 0x00453151, 0x005a4a6c, 0x00505178, 0x00454d77, 0x003f4d77, 0x003d4a6f, 0x004a4464, 0x004f4056, 0x00584247, 0x006c4c3a, 0x007e5d38, 0x00866335, 0x0086622f, 0x0088602b,
- 0x008d603b, 0x008d6141, 0x00895e41, 0x0082563a, 0x00724d2c, 0x0063441b, 0x005e411e, 0x005f402c, 0x006b3632, 0x00695a41, 0x004e4f33, 0x001e1d0e, 0x00141a25, 0x00181e12, 0x0055280d, 0x00bb2e08,
- 0x00cf3004, 0x00c43818, 0x00e7836e, 0x00f3d9cb, 0x00e7dde3, 0x00e0dade, 0x00dedfdd, 0x00d4e3d6, 0x00e1c2cc, 0x00c2b8c1, 0x00b9b7bf, 0x00bfbbc1, 0x00c3bdc3, 0x00c6c0c7, 0x00c4bec4, 0x00c3bbc2,
- 0x00cbc4ce, 0x00c9c2ca, 0x00ccc6cd, 0x00c5c0c7, 0x00c4bdc5, 0x00cbc5ca, 0x00d4d2d3, 0x00dbdad8, 0x00dbd8d9, 0x00d6d2d4, 0x00d7d5d6, 0x00dbd9d9, 0x00dddadb, 0x00dddbdc, 0x00dedcdc, 0x00e0ddde,
- 0x00dbd9de, 0x00dedbe2, 0x00dedbde, 0x00d5d3d7, 0x00d7d5da, 0x00e1dfe5, 0x00dedddd, 0x00dad8db, 0x00dedbe0, 0x00dddbe0, 0x00dad7df, 0x00dad4e3, 0x00d1cbdc, 0x00cac5d9, 0x00acabc2, 0x00a0a2ba,
- 0x00afafd5, 0x00a0a2cb, 0x005d638a, 0x00323862, 0x002f3666, 0x00393e6f, 0x00383e6d, 0x00474c7a, 0x00555580, 0x006c6c8d, 0x00c1c5dd, 0x00f3f7ff, 0x00fafdfe, 0x00fbfcfe, 0x00f9fbf9, 0x00f7fcf8,
- 0x00eaefed, 0x00ebece3, 0x00ebe8d5, 0x00e9e4ca, 0x00e8e5d4, 0x00e5e9ea, 0x00a6b5d1, 0x004d669a, 0x00456cb6, 0x003b6fbb, 0x004375b1, 0x0088a4cb, 0x00fde8ef, 0x00fbf0e4, 0x00f4f7e4, 0x00dcf5e8,
- 0x00a597a8, 0x00463742, 0x00544a49, 0x0060655b, 0x00453b40, 0x0012101b, 0x0001040f, 0x0000070e, 0x00070610, 0x00040409, 0x0004070a, 0x0005070a, 0x00080710, 0x00070611, 0x00050414, 0x00060215,
- 0x000c0a35, 0x0005062e, 0x00060a30, 0x0014183f, 0x00151d47, 0x00080f41, 0x00010a42, 0x00091550, 0x001c216d, 0x00232c7b, 0x0025378f, 0x001e41aa, 0x0029409b, 0x002b378b, 0x00242e79, 0x00262c76,
- 0x00192c7f, 0x0010267d, 0x00062378, 0x00041770, 0x000b2879, 0x001f3b8b, 0x00304f92, 0x0021376b, 0x00060b1e, 0x0008070e, 0x001a1614, 0x004a4642, 0x00bfb9bc, 0x00e6e6e7, 0x00dbe2e1, 0x00adb9b4,
- 0x001b2124, 0x00010413, 0x00323e55, 0x00495878, 0x00182a5d, 0x000c1d54, 0x00213164, 0x00263563, 0x001c2344, 0x000d132d, 0x00020518, 0x00000707, 0x000a1525, 0x003c4a6c, 0x00526395, 0x00334587,
- 0x0030418f, 0x0024377b, 0x0021346b, 0x001a2b54, 0x00101f39, 0x00061828, 0x00000e16, 0x00000a11, 0x0003010b, 0x00120715, 0x00362333, 0x003b1f34, 0x002e0d16, 0x003a1911, 0x0043230c, 0x004b2f09,
- 0x004a3834, 0x00493533, 0x00513f3b, 0x0051403b, 0x005f514c, 0x00695b57, 0x005a514d, 0x00494241, 0x009b9595, 0x00dfdad9, 0x00e9e7e6, 0x00eef6ef, 0x00e3e5e4, 0x00d3d4d8, 0x00b9bbca, 0x00aab3c7,
- 0x00364868, 0x0095a4c0, 0x00c6d2e6, 0x00d7dadf, 0x00f6ece4, 0x00f4f2f2, 0x00ecf0f2, 0x00e8e8ee, 0x00e2e0e7, 0x00e1e0e6, 0x00c9c9ce, 0x003b3c3f, 0x001b1b1f, 0x001a1a1f, 0x001c1d22, 0x0026272c,
- 0x00f5fbf3, 0x00e9f0e7, 0x00757972, 0x00141c0e, 0x0023210a, 0x002c2507, 0x002f250e, 0x0033281d, 0x00222a33, 0x001c2a48, 0x001b2a5c, 0x0010296e, 0x000e267d, 0x00052479, 0x00102681, 0x001c2d83,
- 0x00132557, 0x000b1b49, 0x00111b55, 0x0016276c, 0x00162a84, 0x000e2761, 0x00051446, 0x000d1342, 0x001e2c59, 0x00223069, 0x00152469, 0x000e246f, 0x000a2166, 0x001b2f5f, 0x004c597c, 0x0064687b,
- 0x00283749, 0x001a2437, 0x00272c3e, 0x00303542, 0x00323740, 0x00272b36, 0x001b1b2a, 0x00141022, 0x0000070a, 0x00010406, 0x000e0e11, 0x00151d21, 0x00262a22, 0x00121b0d, 0x00474f46, 0x00424d50,
- 0x000d2f3e, 0x00406d95, 0x005286c3, 0x004588ce, 0x003785d5, 0x003e87ca, 0x00478bd0, 0x004988da, 0x004481d8, 0x00457ed9, 0x00487bd6, 0x004379cc, 0x00417fc8, 0x004082c7, 0x004082cd, 0x003f82d2,
- 0x003a7ab5, 0x003c7bba, 0x00407bc1, 0x003c78bb, 0x00356faf, 0x0032659d, 0x005d84b2, 0x005b7497, 0x00142120, 0x00181c10, 0x002f2d27, 0x0020282d, 0x001a181b, 0x0014080a, 0x001a0707, 0x001b0406,
- 0x00120a00, 0x00201d1e, 0x002e2f3e, 0x002b3751, 0x002c3e66, 0x001d3e70, 0x00183d7a, 0x00183e83, 0x00143c92, 0x00163f9a, 0x001c41a1, 0x0021449d, 0x00254589, 0x00264476, 0x00385275, 0x00324c65,
- 0x00172c3d, 0x000a141b, 0x00292324, 0x005d4d3d, 0x00846a56, 0x00836a59, 0x006a5048, 0x00493129, 0x002d2408, 0x00292300, 0x002b2103, 0x001f1e0b, 0x001c1e0c, 0x00181908, 0x00171508, 0x0016140b,
- 0x00030e00, 0x00010e00, 0x00060d06, 0x00040d06, 0x00050c09, 0x00060c05, 0x00090809, 0x000b0a0c, 0x00070e03, 0x000a1003, 0x0012130c, 0x000c1208, 0x0013130f, 0x0016180e, 0x001b170e, 0x00110d07,
- 0x004d5441, 0x00c8cdc2, 0x00fafcf8, 0x00fdfdfe, 0x00fffdff, 0x00fefdfb, 0x00dddcda, 0x007d7d7a, 0x0039412b, 0x0052573f, 0x007f846f, 0x008d9a7d, 0x009daa8a, 0x00a3ae8f, 0x00a9b196, 0x00b1bb9e,
- 0x00afbf9a, 0x00b0bf9b, 0x00b5c1a2, 0x00bcc7a9, 0x00c1ccad, 0x00c2cdb0, 0x00c4ceb6, 0x00c8d3bb, 0x00c7d6b6, 0x00c8d8ba, 0x00cddabe, 0x00cfdbbf, 0x00d4e0c4, 0x00d9e3c9, 0x00e0e7d1, 0x00e3ead7,
- 0x00e1e8d7, 0x00dfe6d5, 0x00e8ebe0, 0x00e9ebe2, 0x00eff4e7, 0x00eff5e7, 0x00f2f4ea, 0x00f9faf1, 0x00eff6e3, 0x00ecf6e5, 0x00f7fced, 0x00f6f8ed, 0x00fbfbf5, 0x00f8fcf7, 0x00fbfdfa, 0x00ffffff,
- 0x00f7fdf1, 0x00f8fdf3, 0x00fdfff9, 0x00fefffa, 0x00fffef9, 0x00fefcfb, 0x00fffeff, 0x00fffeff, 0x00fbfdf9, 0x00fbfdf9, 0x00fefffc, 0x00fdfdfb, 0x00fffffe, 0x00fefefd, 0x00ffffff, 0x00ffffff,
- 0x00fafcf9, 0x00fafbf7, 0x00fefdfb, 0x00fffeff, 0x00fefcff, 0x00fcfcfe, 0x00fefdff, 0x00fffdff, 0x00f9fbf7, 0x00f9fbf9, 0x00fafcff, 0x00fafdff, 0x00fbfefe, 0x00fbfdfe, 0x00fdfeff, 0x00feffff,
- 0x00f3fcf7, 0x00f5fbf8, 0x00f9fdfb, 0x00fcffff, 0x00feffff, 0x00fefdfe, 0x00fffdfe, 0x00fffefe, 0x00f8fff7, 0x00f8fff8, 0x00fbfffc, 0x00fcfffd, 0x00f9fefe, 0x00f9fdfe, 0x00fcfdff, 0x00fcfeff,
- 0x00f3fef7, 0x00f8fefb, 0x00fdfdfe, 0x00fefcfe, 0x00fefdff, 0x00f3f2f4, 0x00f5f2f7, 0x00fdf8ff, 0x00fafcf5, 0x00fcfcfa, 0x00fefdff, 0x00f9f9fa, 0x00ededee, 0x00e7e7e6, 0x00eceaeb, 0x00f2eff3,
- 0x00f1f6f0, 0x00f3f7f4, 0x00f8f9fa, 0x00faf9fb, 0x00fbfbfb, 0x00f8fbf9, 0x00f8fcfb, 0x00f9fdfd, 0x00f5fdf5, 0x00f7fef8, 0x00f9fffc, 0x00f7fcfb, 0x00fafdfe, 0x00fafdfe, 0x00fdffff, 0x00fdffff,
- 0x00f7fdf9, 0x00f9fef9, 0x00fffeff, 0x00fefdff, 0x00fefbfb, 0x00fefdf8, 0x00fffcfa, 0x00fffefb, 0x00f6fef4, 0x00f6fdf7, 0x00fcfffa, 0x00fcfdf9, 0x00fcfef9, 0x00fdfef9, 0x00fffdfb, 0x00fefdfd,
- 0x00f2faed, 0x00f7fbf2, 0x00fffdfb, 0x00fffefe, 0x00fefffe, 0x00fcfffa, 0x00fffffd, 0x00ffffff, 0x00f7fcf4, 0x00f9fcf4, 0x00fcfcfa, 0x00fcfcf9, 0x00fffcff, 0x00fffdff, 0x00fffdff, 0x00fffbff,
- 0x00f0fdf1, 0x00f4fcf9, 0x00fbffff, 0x00fcffff, 0x00fbfffd, 0x00fbfdfa, 0x00fcfffd, 0x00fdffff, 0x00fafff8, 0x00fbfefa, 0x00fefdff, 0x00fcfefa, 0x00fdfffe, 0x00fbfefe, 0x00fcfefe, 0x00fafffe,
- 0x00f0fff4, 0x00f5fdf7, 0x00fcfffe, 0x00fffefb, 0x00fefbf9, 0x00f9fbf6, 0x00fdfefc, 0x00fffdfd, 0x00f2faf3, 0x00f3f8f0, 0x00f7f8f6, 0x00f8f8f5, 0x00f5f2f5, 0x00f6f4f7, 0x00f8f5fc, 0x00f6f3f8,
- 0x00e0f0e9, 0x00dfebe7, 0x00e3eaeb, 0x00e8e8e9, 0x00e5e4e2, 0x00e0dfd9, 0x00dddcd4, 0x00dfdad3, 0x00d2d6c1, 0x00ced0bb, 0x00cec7bb, 0x00c9bead, 0x00c3b8a8, 0x00c2bba4, 0x00bcb5a1, 0x00b2aa99,
- 0x009a9c84, 0x00959282, 0x00887e7a, 0x00827377, 0x00806a73, 0x006f6a6c, 0x0068696a, 0x00676567, 0x00646861, 0x006d7069, 0x0072746f, 0x0070716d, 0x006f706d, 0x00686967, 0x006a6968, 0x00676665,
- 0x005a6051, 0x00595d51, 0x005d6057, 0x005f635a, 0x005e6158, 0x005e6057, 0x0061615a, 0x0065655f, 0x005e6355, 0x005c6253, 0x005f635b, 0x00626363, 0x00616161, 0x00626362, 0x006a6a6b, 0x00716f72,
- 0x007b8279, 0x00939a95, 0x00b6b9b8, 0x00c4c2c4, 0x00c3c3c4, 0x00bebbba, 0x00b6aeb2, 0x00afa5a7, 0x009b9b94, 0x00928f8d, 0x008b8787, 0x007f7c78, 0x00797674, 0x006e6d6b, 0x00646564, 0x00605f61,
- 0x00505652, 0x004d4e4b, 0x004c4b4c, 0x004b4b4d, 0x004e4d4c, 0x004f4f4f, 0x005d5d60, 0x006d6a6c, 0x0070766f, 0x007b827c, 0x008c8e8f, 0x00989ea0, 0x00b1b5b6, 0x00bac1c0, 0x00cfcfd1, 0x00dedce0,
- 0x00e7efe4, 0x00f3f6f0, 0x00fcfcfa, 0x00fafcf8, 0x00fcfafa, 0x00fbfdf9, 0x00fcfefd, 0x00fffdff, 0x00f5fdf4, 0x00f5fcf6, 0x00fafdfa, 0x00fbfcfb, 0x00f8fcf9, 0x00fafcfa, 0x00ffffff, 0x00fdfeff,
- 0x00f4fff4, 0x00f7fef7, 0x00fafdfa, 0x00fafdfb, 0x00fbfdfa, 0x00fbfcf9, 0x00fffffc, 0x00fffefd, 0x00f7fef5, 0x00f9fff3, 0x00fdfbf7, 0x00fefafd, 0x00fff9f9, 0x00fcfcf9, 0x00f8f7f8, 0x00dfe2e4,
- 0x00bbc8c5, 0x00c6c9c8, 0x00c0b4ba, 0x00b49ca2, 0x00c19596, 0x00dd806d, 0x00e26e58, 0x00d16f62, 0x00cea79e, 0x00dbc9c6, 0x00c6c4c4, 0x00bfc8c7, 0x00c9ced4, 0x00d2cbd8, 0x00d2c4d7, 0x00d3bfda,
- 0x00b0cbce, 0x00dec1c1, 0x00e7988f, 0x00c45342, 0x00bd6051, 0x00dea3a3, 0x00edc6d9, 0x00e4c9f0, 0x00c9cbdc, 0x00c6d4d6, 0x00cad3d8, 0x00d3d1df, 0x00e8e7ef, 0x00f8f8fa, 0x00ffffff, 0x00fffefd,
- 0x00f3fbf5, 0x00f5fcf4, 0x00cbcfda, 0x0064697c, 0x00454961, 0x004b3c4e, 0x00341e2a, 0x00372834, 0x002a314c, 0x001f2667, 0x00252c86, 0x001b2882, 0x0044507e, 0x00868daa, 0x00c8c4df, 0x00d8caf0,
- 0x00c5c7de, 0x00b9bbd1, 0x00bcbcd6, 0x00cdcee4, 0x00d8dbee, 0x00daddef, 0x00e0e2f4, 0x00e7e7fc, 0x00e6edf4, 0x00e5eaf1, 0x00e7e8f6, 0x00e6e4f7, 0x00e8edf9, 0x00e8f1fb, 0x00e9eff7, 0x00f5f0fe,
- 0x00edebe3, 0x00eceae0, 0x00c9c5be, 0x008e9a7e, 0x006a875c, 0x00466a6d, 0x002f5085, 0x003445af, 0x003045bf, 0x00364ebb, 0x004c69ce, 0x00496acb, 0x005473db, 0x006c89d0, 0x007a96ae, 0x00739472,
- 0x006f9536, 0x0075983a, 0x00809c48, 0x00849d4a, 0x00849857, 0x00829360, 0x0099a387, 0x00b7bbb9, 0x00c1c8e0, 0x00b7bbe4, 0x00888fcd, 0x002f4899, 0x001b236b, 0x002e2e69, 0x008073a3, 0x00d6bde0,
- 0x00d5cbd2, 0x00d4cad3, 0x00bdaebe, 0x0094869c, 0x003e304d, 0x00343745, 0x00626775, 0x00645e68, 0x00604e44, 0x00664536, 0x0064382a, 0x00613423, 0x005c3a2b, 0x006e564b, 0x00b7a8a0, 0x00f7f2f1,
- 0x00fcfdfb, 0x00fafcf9, 0x00fbfffc, 0x00fbfffd, 0x00a7adab, 0x00262f2d, 0x000d1816, 0x000f1a19, 0x000a1a12, 0x000a1b13, 0x000c1c15, 0x000e1d14, 0x00101e16, 0x000f1e17, 0x00101d18, 0x00101d17,
- 0x00061f0f, 0x000a1c10, 0x00101c14, 0x00101c14, 0x00121e1a, 0x00111b0c, 0x00161d0d, 0x00131a13, 0x00021713, 0x00081917, 0x000b1a16, 0x00091813, 0x00181e1e, 0x0031313a, 0x00382f45, 0x00281a39,
- 0x00311d1d, 0x00362025, 0x00492f3b, 0x00563e49, 0x00564a5b, 0x004e465d, 0x004f4866, 0x00514768, 0x00524451, 0x005e434c, 0x006c4846, 0x00755237, 0x00815e37, 0x00886334, 0x008f6634, 0x00946738,
- 0x00855f31, 0x00835d35, 0x00895e3f, 0x008a603d, 0x0088603a, 0x007f5b2d, 0x0076512d, 0x006f4837, 0x0071452e, 0x007c6d4d, 0x00656343, 0x00242312, 0x0012141d, 0x001b1e0f, 0x0059270e, 0x00c2300e,
- 0x00bf2f00, 0x00bb3612, 0x00df8170, 0x00e8d4cd, 0x00dcd1dc, 0x00d7d4d8, 0x00d4d6d5, 0x00d5e0d8, 0x00e5ccd0, 0x00c3bec3, 0x00b5b5bd, 0x00b8b2ba, 0x00bfbac1, 0x00c3bcc4, 0x00c6bbc6, 0x00c5bbc7,
- 0x00b8b9b9, 0x00bfbfc0, 0x00cac5ce, 0x00cac2ca, 0x00c7c1cc, 0x00c8c4c9, 0x00d4d0d6, 0x00dbd9dc, 0x00d4d4d1, 0x00d2d0cd, 0x00d9d6d5, 0x00dcdadb, 0x00dfdcdd, 0x00e2dde0, 0x00e2dde2, 0x00dfdce0,
- 0x00d3d9d6, 0x00d8dbda, 0x00dbd9dd, 0x00dddadd, 0x00e1dfe2, 0x00e0dfe3, 0x00e2e0e4, 0x00e1dee6, 0x00dadedc, 0x00dfe1df, 0x00dfdedf, 0x00e0ddde, 0x00e6e1e7, 0x00dcd9df, 0x00c7c5d4, 0x009695ab,
- 0x00637081, 0x00728199, 0x005b678b, 0x0046537d, 0x00435081, 0x00495988, 0x003d4a79, 0x00535d8c, 0x00596884, 0x0076849d, 0x00ccd4e7, 0x00f1f8f8, 0x00f7fdfa, 0x00f9fdf7, 0x00fdfcf7, 0x00fbfaf2,
- 0x00f4fce9, 0x00f6fae1, 0x00fdfce2, 0x00fbfbdc, 0x00f0f2d4, 0x00eaeee4, 0x00cdd3de, 0x007283a6, 0x0038699d, 0x003977b3, 0x003a71b0, 0x005273a5, 0x00e1b7bd, 0x00feebd6, 0x00f9edd5, 0x00e8f7f0,
- 0x00bbbdc4, 0x00615b5b, 0x00675e5b, 0x00424638, 0x000e0917, 0x00030612, 0x00030714, 0x00040716, 0x00000608, 0x00000508, 0x0004070d, 0x0006060e, 0x0006040c, 0x0007040f, 0x00090312, 0x000a0412,
- 0x00000218, 0x0000061f, 0x00070827, 0x00080b30, 0x00131944, 0x000e1746, 0x0005083e, 0x0003033f, 0x00000444, 0x00051359, 0x001b2b81, 0x00193ca2, 0x00263b97, 0x00354297, 0x00272d80, 0x003f4398,
- 0x001f3982, 0x00011e6d, 0x000e2a81, 0x001c3a94, 0x002e4596, 0x00284fa8, 0x002d55ab, 0x00264a90, 0x00001127, 0x00000b15, 0x0001060f, 0x00010203, 0x00353232, 0x00b6b3b3, 0x00e9e6e6, 0x00797877,
- 0x00000705, 0x0000050f, 0x004b5770, 0x003f4e76, 0x00192860, 0x00112458, 0x00213165, 0x00283462, 0x000e1930, 0x00000717, 0x00040915, 0x0000060b, 0x00232f4d, 0x005b6a99, 0x003f5090, 0x00354090,
- 0x00233e81, 0x001b3069, 0x00172555, 0x00141d3c, 0x00101723, 0x00040f16, 0x0001040d, 0x0003060b, 0x00000908, 0x00030710, 0x00352d43, 0x0053445e, 0x00341d2f, 0x002c1517, 0x00422b1d, 0x00583e22,
- 0x00544639, 0x00473931, 0x005a4946, 0x005f4f4b, 0x0070655e, 0x00827a74, 0x00756d6a, 0x00595252, 0x007e7d74, 0x00d8d4cf, 0x00e5e3e1, 0x00e8f2eb, 0x00eef0ee, 0x00d8dade, 0x00bebfd0, 0x00a8abc4,
- 0x00395364, 0x008da3b9, 0x00cddbf3, 0x00ccd3de, 0x00e9e5e3, 0x00eceef1, 0x00eff2f9, 0x00f0f1f6, 0x00e1e7ea, 0x00dfe5e9, 0x00c8cbcf, 0x0035373b, 0x000d1216, 0x000e1216, 0x0018191e, 0x0046464b,
- 0x00fbfdf7, 0x00e0e3de, 0x0060625d, 0x00121810, 0x00222110, 0x002b230f, 0x002d2410, 0x002f2519, 0x001c2325, 0x00121e32, 0x000d1e3d, 0x00152454, 0x00142463, 0x00102566, 0x000e2468, 0x00162767,
- 0x00232d5c, 0x002b3361, 0x00263066, 0x001b2a6e, 0x00102782, 0x00192a6a, 0x000f1a45, 0x00050928, 0x00212c45, 0x003e4a6b, 0x0025345e, 0x000c2258, 0x00092150, 0x00172b50, 0x002d3b4b, 0x00303536,
- 0x00272829, 0x002a292c, 0x002a2729, 0x00201c1b, 0x001d1916, 0x0024221d, 0x0024231f, 0x001c1d18, 0x00120d11, 0x00110d10, 0x000e0f10, 0x00121a19, 0x0020251a, 0x000f1708, 0x00212e1e, 0x002f3d36,
- 0x00324d63, 0x00537aa6, 0x004172ae, 0x003b7ac0, 0x003680cf, 0x003a7eca, 0x003f80ce, 0x004180d4, 0x00487cd4, 0x004578ca, 0x004374c1, 0x004277b9, 0x00437dbd, 0x004480c7, 0x004180cd, 0x003b7ed0,
- 0x004177bb, 0x003c74b6, 0x003974b6, 0x003473b3, 0x002f6cae, 0x003064a5, 0x00547db6, 0x0056719f, 0x001c282d, 0x00191c10, 0x00242317, 0x00202423, 0x00211f1a, 0x001e140f, 0x00281912, 0x0025150e,
- 0x00130802, 0x00181110, 0x00201d22, 0x00242833, 0x00263144, 0x001f365f, 0x001c3770, 0x001e3a78, 0x00213c81, 0x00223c83, 0x00263d82, 0x002f447c, 0x00364565, 0x0046525e, 0x00646b67, 0x00676b5d,
- 0x003c3734, 0x0022150d, 0x00342109, 0x00674b2b, 0x008f6845, 0x008d6346, 0x007a5236, 0x00573317, 0x003a2605, 0x003b2c05, 0x00322602, 0x002b2408, 0x002a2207, 0x00241e06, 0x001f1c07, 0x001d1b07,
- 0x00131402, 0x00131306, 0x00111207, 0x000c1106, 0x000b1006, 0x000b0f06, 0x000b0d07, 0x000b0d09, 0x000c0f0a, 0x0010120c, 0x0013140f, 0x0015180f, 0x00161810, 0x0018190d, 0x0016170a, 0x0014150a,
- 0x0066695c, 0x00dbddd5, 0x00fcfcf9, 0x00fbfbfb, 0x00fefdfe, 0x00fefffb, 0x00cccec8, 0x0063655b, 0x00252914, 0x00363821, 0x00525839, 0x00546637, 0x005c6d3f, 0x005b6c3d, 0x005a6b3c, 0x00627546,
- 0x006a784a, 0x006a7a4c, 0x006c7d50, 0x006e8150, 0x00718452, 0x00768759, 0x00798a5e, 0x00798b5c, 0x007f8d60, 0x007e8e62, 0x00819065, 0x00839367, 0x00829366, 0x0086976a, 0x008c9c71, 0x008f9f75,
- 0x0097a088, 0x009ca78d, 0x0097a087, 0x00959e85, 0x00b2bea2, 0x00c3d0b4, 0x00afbaa1, 0x00b3bfa5, 0x00b7c2a5, 0x00afbaa0, 0x00b4bfa5, 0x00b7bfa9, 0x00bfc8b4, 0x00c2cab7, 0x00c4cdb9, 0x00c6d1bf,
- 0x00cad1bd, 0x00cdd4c0, 0x00d1d8c3, 0x00d3dbc5, 0x00d7dec9, 0x00d9dfce, 0x00dce0d4, 0x00dee2d5, 0x00dfe3d7, 0x00e1e4d8, 0x00e4e7db, 0x00e8ece0, 0x00eaeee2, 0x00edf1e5, 0x00eef3e7, 0x00f0f5e9,
- 0x00f0f4eb, 0x00f0f5eb, 0x00f3f6ec, 0x00f4f7ed, 0x00f5f8ee, 0x00f6f9ef, 0x00f7faf0, 0x00f6f9f1, 0x00f5f8ed, 0x00f8fbf1, 0x00f9fcf6, 0x00f7faf6, 0x00f8fcf7, 0x00f8fbf8, 0x00f8fcf9, 0x00f9fdf7,
- 0x00f8fef5, 0x00f8fdf5, 0x00f8fdf5, 0x00f9fef6, 0x00fafef7, 0x00fbfef7, 0x00fcfef7, 0x00fcfff7, 0x00fcfdf8, 0x00f9fdf8, 0x00fbfdfa, 0x00fbfefb, 0x00f9fdfb, 0x00fafefc, 0x00fbfefd, 0x00fbfffd,
- 0x00f7fcf8, 0x00f9fdfa, 0x00fbfcfc, 0x00fcfdfd, 0x00fdfdfe, 0x00f4f4f5, 0x00f4f2f6, 0x00faf7fc, 0x00fffefd, 0x00fefcfe, 0x00fcfbfa, 0x00fbfcf6, 0x00fdfef8, 0x00fdfdfa, 0x00fcfcf8, 0x00fbfbf6,
- 0x00fdfff8, 0x00fcfef8, 0x00fdfefa, 0x00fdfefa, 0x00fefffa, 0x00fcfffb, 0x00fbfffd, 0x00fbfefe, 0x00fafcfc, 0x00fcfefd, 0x00fbfdfd, 0x00fbfdfd, 0x00fdfefd, 0x00fcfdfc, 0x00fefefe, 0x00fdfefe,
- 0x00f7fafb, 0x00f9fbf9, 0x00fbfcfb, 0x00fbfcfb, 0x00f9fcfa, 0x00fafef9, 0x00f9fcf9, 0x00fafbf8, 0x00f7fef7, 0x00fafdf8, 0x00fafbf5, 0x00fefdf8, 0x00fdfdf9, 0x00fdfefa, 0x00fcfef9, 0x00fffffa,
- 0x00fafff8, 0x00fdfcfb, 0x00fcfbfa, 0x00fcfbfd, 0x00fbfefa, 0x00fbfcfc, 0x00f9fcf8, 0x00f9faf7, 0x00f8f8f6, 0x00fbfbfa, 0x00fcfcfb, 0x00fcfdff, 0x00fcfcfa, 0x00fbfafa, 0x00fbfafc, 0x00fbf8fe,
- 0x00f6fdfc, 0x00f6fafc, 0x00f7f9fb, 0x00f9fdfd, 0x00f5f9fa, 0x00f5fafa, 0x00f3f8f9, 0x00f5faf9, 0x00f3f7f6, 0x00f2f5f8, 0x00f0f5f7, 0x00eef3f6, 0x00e9f2f5, 0x00e4eef3, 0x00deedf3, 0x00dcebf2,
- 0x00d8e8ea, 0x00dadfe4, 0x00d9dbdb, 0x00d8d6d3, 0x00d3cdcb, 0x00cbc6be, 0x00c0c0b4, 0x00b9baad, 0x00acada4, 0x00a6a89f, 0x009da09d, 0x00989b9a, 0x00909197, 0x00919198, 0x0090919a, 0x008d8d95,
- 0x0071828f, 0x00697785, 0x0067727f, 0x0072767c, 0x00757471, 0x00716d64, 0x006d6858, 0x00736b57, 0x00787453, 0x00756e4e, 0x006b6538, 0x006e6626, 0x00645d28, 0x00605b2b, 0x00555628, 0x00525229,
- 0x00484b24, 0x00484524, 0x00383012, 0x00382a0d, 0x003a270a, 0x002a2417, 0x002a2c28, 0x00242522, 0x002f302d, 0x00525450, 0x005f615d, 0x0061635f, 0x00686965, 0x00636460, 0x006b6b67, 0x00666763,
- 0x0061635d, 0x0062625d, 0x0064645f, 0x0062655e, 0x0060645b, 0x005f6259, 0x005e6059, 0x005d605a, 0x005f5f59, 0x0061635e, 0x00656763, 0x00696967, 0x00696968, 0x00656765, 0x005e5f5f, 0x0058585b,
- 0x00585955, 0x005d5f5d, 0x00666666, 0x006a6869, 0x006a6a6b, 0x006c6663, 0x006e6161, 0x006e5f5f, 0x00675a56, 0x005f5150, 0x00584b4b, 0x00554d49, 0x00504a47, 0x004d4c46, 0x004a4d45, 0x00494d43,
- 0x004f514f, 0x004d4c4c, 0x00444446, 0x00454547, 0x00494848, 0x00515150, 0x00545454, 0x00575556, 0x004d504d, 0x004b4a49, 0x00474747, 0x00494c4d, 0x00515155, 0x00514f52, 0x00585657, 0x00646264,
- 0x00747374, 0x00888585, 0x00a09a9a, 0x00b3afab, 0x00cbc6c4, 0x00d8d8d4, 0x00e6e8e4, 0x00eef1f0, 0x00f2f4f3, 0x00f4f7f6, 0x00f7f8f8, 0x00f9fbfa, 0x00f9fdfa, 0x00fafdfa, 0x00fafbf9, 0x00fdfdfc,
- 0x00fafdfc, 0x00f9fdfb, 0x00fafcfa, 0x00fbfdfa, 0x00fcfdfa, 0x00fcfdf9, 0x00fdfef9, 0x00fcfcf7, 0x00fafbf5, 0x00fbfcf5, 0x00faf8f4, 0x00fef9f9, 0x00fdfefa, 0x00fdfcfa, 0x00fdfdfe, 0x00fafcfe,
- 0x00f6fafa, 0x00fcfafa, 0x00f9f7f7, 0x00f9f4f5, 0x00f3e4e7, 0x00fad4c9, 0x00f9c9b9, 0x00f1c1b8, 0x00f0d1d6, 0x00f0dfe5, 0x00dcd6d9, 0x00d7dad8, 0x00d4d9d8, 0x00d5d5da, 0x00d2cdd7, 0x00d1c6db,
- 0x00bcd2d5, 0x00dab4ba, 0x00bf7070, 0x00b94e4a, 0x00d09386, 0x00e2c2c0, 0x00d9c9d6, 0x00d6c2e2, 0x00d4c6dd, 0x00d4d5df, 0x00d0dade, 0x00dfe0ec, 0x00eff1f6, 0x00fdfbfe, 0x00fdfefa, 0x00fafcf5,
- 0x00f8fdfa, 0x00fbfdfc, 0x00b9becc, 0x004c5568, 0x003f4c67, 0x00606183, 0x003c3f5f, 0x00101c35, 0x00051c4b, 0x00102375, 0x000c2182, 0x000a2180, 0x00253463, 0x00636683, 0x00b0abc1, 0x00d1c6e1,
- 0x00c5c5e0, 0x00b9b9d3, 0x00bab9d5, 0x00cacbe2, 0x00d6d8eb, 0x00daddee, 0x00dfe2f1, 0x00e3e6f7, 0x00e5ebf4, 0x00e9edf7, 0x00e7e8f6, 0x00e4e3f5, 0x00e6ecf7, 0x00eaf2f9, 0x00e8eef5, 0x00ededfa,
- 0x00f2ebf6, 0x00f5f0f2, 0x00cac7be, 0x008c9971, 0x00698a43, 0x005e7b59, 0x00425864, 0x00354582, 0x002d40a7, 0x00384daf, 0x00455bbd, 0x004961c5, 0x004d63d9, 0x006078d6, 0x006b88c0, 0x006a8e97,
- 0x00688d3c, 0x006c8e3a, 0x00718f39, 0x00749335, 0x00758f39, 0x00748a45, 0x00859568, 0x00a7b3a3, 0x00cad1ef, 0x00b0b5ea, 0x005e6eb4, 0x001d3e9a, 0x00232e7c, 0x00393570, 0x008476a2, 0x00d6c1dd,
- 0x00ded9e6, 0x00d2d2e7, 0x00c2c6e4, 0x00838ab8, 0x00353a75, 0x00657193, 0x008d99ac, 0x006e7184, 0x00584e59, 0x005d4851, 0x005b4249, 0x0054393a, 0x00483434, 0x00564644, 0x00a39a9b, 0x00f0efef,
- 0x00fefdfd, 0x00fbfcfb, 0x00fcfefd, 0x00fbfefd, 0x00a6adab, 0x00262f2c, 0x000c1915, 0x000e1a16, 0x000d1c16, 0x000d1c17, 0x000d1d17, 0x000e1d15, 0x000e1d14, 0x000d1d14, 0x000d1c14, 0x000d1b13,
- 0x000b1d11, 0x000c1b15, 0x000c1a14, 0x000d1c13, 0x000e1c15, 0x000e1a0f, 0x00111b0f, 0x00121b14, 0x000f1415, 0x00101211, 0x00141312, 0x0011130f, 0x002e3034, 0x004e4f63, 0x00303352, 0x001a1c48,
- 0x002e231b, 0x0039231f, 0x0044281e, 0x004e2d22, 0x00543832, 0x00543e3c, 0x0059444a, 0x005f4750, 0x00694b47, 0x00764b4b, 0x007a4f43, 0x00785637, 0x007e5c33, 0x00866135, 0x008b6432, 0x008b6233,
- 0x00845e36, 0x00875c39, 0x00895c3a, 0x008d6337, 0x008b612f, 0x008b612b, 0x00895d2f, 0x0084593a, 0x00925942, 0x0097805e, 0x00706d46, 0x002e2817, 0x00121318, 0x001a1e0f, 0x00592f0e, 0x00be310b,
- 0x00c43000, 0x00be3715, 0x00d9806d, 0x00e2d0c9, 0x00d4ccd8, 0x00d2ccd4, 0x00c7cdcd, 0x00c8dad0, 0x00e8cbd4, 0x00ccc4ce, 0x00b8b6bf, 0x00b6afb7, 0x00b9b3be, 0x00bdb9c1, 0x00c6bfc6, 0x00c5bfc8,
- 0x00c0bcc1, 0x00bfbbc2, 0x00c6bfc8, 0x00c9c1c9, 0x00c5bfc6, 0x00c6c2c5, 0x00d1cecf, 0x00d6d6d7, 0x00d6d4d5, 0x00d6d2d2, 0x00dbd7d9, 0x00dcdbdc, 0x00dededd, 0x00e1dfdf, 0x00e1dedf, 0x00dedddd,
- 0x00dadcde, 0x00e1e1e3, 0x00e4e3e6, 0x00e2e1e6, 0x00e4e4e5, 0x00e5e7e7, 0x00e5e6e7, 0x00e3e4e3, 0x00e5e4e5, 0x00ecebed, 0x00e5e2e3, 0x00ece8e5, 0x00efeeeb, 0x00e6e7e5, 0x00e6e8ea, 0x00bec2c9,
- 0x00585f6b, 0x003b4455, 0x0039425a, 0x0038425f, 0x00535c7d, 0x00667290, 0x00727e9a, 0x008c99b4, 0x00a6b0c0, 0x00c1c9d8, 0x00eaeefb, 0x00fafdfd, 0x00fafefa, 0x00fbfef6, 0x00fcfef1, 0x00f5f7e7,
- 0x00f4f5e9, 0x00f2f6e5, 0x00f5fce6, 0x00f7fee5, 0x00f6fae3, 0x00f6faef, 0x00e9f0ef, 0x00a1afc0, 0x00365e89, 0x003e72a6, 0x003a6ca7, 0x004c6aac, 0x00af7073, 0x00edc4a8, 0x00f5edcd, 0x00e9f5e8,
- 0x00d0d3e2, 0x00867c7f, 0x003e342e, 0x000e1209, 0x00020413, 0x00030913, 0x0001080f, 0x00040611, 0x00020810, 0x0002070d, 0x0003060d, 0x0004060c, 0x00040509, 0x0005050a, 0x0006060e, 0x0005050d,
- 0x00010318, 0x0004061c, 0x0004041d, 0x00040422, 0x00080f32, 0x001a224b, 0x00282e61, 0x002e336d, 0x00323880, 0x00414492, 0x003e499b, 0x00213894, 0x00304195, 0x003b4596, 0x00253380, 0x004a59a8,
- 0x00475eb0, 0x0021368a, 0x00233b8b, 0x004959a5, 0x004c5597, 0x003d4c9d, 0x004154a5, 0x00415390, 0x00091835, 0x0000081d, 0x00050e1b, 0x00060c15, 0x0003050a, 0x00565353, 0x00c5bfba, 0x005a5246,
- 0x00000512, 0x00040e25, 0x00546381, 0x00364772, 0x0015255b, 0x001d2e61, 0x002a3b69, 0x00213158, 0x00091029, 0x00030516, 0x00020514, 0x0006102a, 0x0052648a, 0x0053649a, 0x002e4181, 0x002e3e87,
- 0x00304080, 0x00232b61, 0x000d1139, 0x0019182c, 0x00100d0f, 0x00060502, 0x000d0907, 0x000c0a04, 0x00020303, 0x0006030c, 0x00352b3f, 0x006a5f79, 0x006f6175, 0x00392b2f, 0x00352619, 0x00544226,
- 0x00826b66, 0x008b7873, 0x00907f7a, 0x0091847c, 0x009a918a, 0x0099928d, 0x00857e7b, 0x0065605c, 0x006e6967, 0x00d0c8c6, 0x00d5d3cf, 0x00d7e0da, 0x00eef1ec, 0x00ebedef, 0x00cacdd8, 0x00b9bed1,
- 0x003d4f6e, 0x00516482, 0x00c6d5ea, 0x00d8e0eb, 0x00d1d1d3, 0x00e7e9ee, 0x00f2f6fa, 0x00eff3f3, 0x00eceef3, 0x00eff3f7, 0x00cfd1d6, 0x00414348, 0x0002070b, 0x00060b0f, 0x000b0f13, 0x005f6368,
- 0x00fdfdf7, 0x00d4d6d1, 0x004d4f4b, 0x00121815, 0x001f1c14, 0x00231b0f, 0x002a1e10, 0x002e2117, 0x001c221f, 0x000b1b1d, 0x00051723, 0x00141930, 0x000f2047, 0x0010214c, 0x00102251, 0x00162751,
- 0x002b3151, 0x00353c5c, 0x002f3962, 0x001a2a65, 0x000f287f, 0x00132366, 0x00162151, 0x00121a3b, 0x001b2332, 0x00323c4e, 0x00384666, 0x00182b56, 0x000c1f52, 0x00142446, 0x00212b3c, 0x00252825,
- 0x003a3228, 0x005b534a, 0x00645c54, 0x004b443b, 0x003a3429, 0x00373225, 0x00333123, 0x00252417, 0x00171310, 0x001a1719, 0x00181b1c, 0x00131b1a, 0x00191e13, 0x00151d0e, 0x000a1605, 0x0018251a,
- 0x00506682, 0x006084b0, 0x003e6ca5, 0x003b76be, 0x00367cc9, 0x003979c9, 0x003c7ac8, 0x00407bca, 0x004978c4, 0x004573b6, 0x004c78b4, 0x004e7dae, 0x00467bad, 0x00427aba, 0x003f7cc5, 0x003e80d4,
- 0x004779c3, 0x003d74b7, 0x003773b3, 0x003273b1, 0x00306db2, 0x003468b0, 0x004c74b5, 0x004d6a9e, 0x00212b36, 0x00181b0c, 0x00211e0a, 0x0022201a, 0x00232016, 0x001d1810, 0x00352c22, 0x003e342a,
- 0x00291e1a, 0x0019130f, 0x001c1614, 0x00201d1d, 0x00222322, 0x001c283f, 0x001e2c54, 0x00212f57, 0x00273761, 0x0029375f, 0x002c355b, 0x003c405b, 0x00625b62, 0x0082746b, 0x009f8b75, 0x00967e5f,
- 0x00574431, 0x002f1904, 0x004f3415, 0x0068471f, 0x008a5c36, 0x009d6d48, 0x008f5f40, 0x0062391c, 0x00412907, 0x003a2f09, 0x00332b06, 0x00362a0a, 0x002f2707, 0x002f250a, 0x00292209, 0x00242006,
- 0x001f1c06, 0x001e1a06, 0x00181807, 0x00141607, 0x00131509, 0x0011120a, 0x0010110c, 0x0010110c, 0x00111110, 0x0012140e, 0x00151811, 0x00181a10, 0x00181a0f, 0x00171a0f, 0x0013150a, 0x00191b11,
- 0x0076786c, 0x00e4e6de, 0x00fffffa, 0x00fafaf8, 0x00fffeff, 0x00fefefd, 0x00bdbeb9, 0x00535548, 0x002b2d19, 0x003c4023, 0x00505a33, 0x00506431, 0x00586c37, 0x00596b3a, 0x00566835, 0x00576a37,
- 0x00596c38, 0x005b6e3b, 0x005c6f3e, 0x005d713f, 0x005e7341, 0x005f7342, 0x00607341, 0x0060743c, 0x00617541, 0x00617642, 0x00637645, 0x00637543, 0x005e713f, 0x005e713e, 0x00617441, 0x00637743,
- 0x006d7c57, 0x006f805a, 0x006a7a56, 0x0060714b, 0x0072835d, 0x0091a17d, 0x008b9b78, 0x007d8f69, 0x00819270, 0x0080916e, 0x00748460, 0x007b8664, 0x007f8c69, 0x00828d69, 0x00808f67, 0x0081916a,
- 0x0086906e, 0x0086926e, 0x00899672, 0x008b9975, 0x008f9c79, 0x00949f80, 0x009aa486, 0x009ba584, 0x009fa98b, 0x00a0aa8c, 0x00a4ae90, 0x00a5af90, 0x00a7b192, 0x00abb595, 0x00b2bc9c, 0x00b6bf9f,
- 0x00b9c3a6, 0x00bbc5a9, 0x00bbc6ab, 0x00bbc6aa, 0x00bfc8af, 0x00c4ccb4, 0x00c5ceb6, 0x00c4cdb4, 0x00c8d1b6, 0x00cdd6bb, 0x00d2dac3, 0x00d3dbc7, 0x00d8dfcb, 0x00dae2cc, 0x00dce5cf, 0x00dfe8d1,
- 0x00e0e8d3, 0x00e1e9d4, 0x00e3ebd5, 0x00e5eed7, 0x00e9f0db, 0x00edf3df, 0x00f1f5e2, 0x00f2f7e3, 0x00f4f8e8, 0x00f3f9e8, 0x00f5faeb, 0x00f7fbed, 0x00f9fbf0, 0x00fbfdf2, 0x00fbfef3, 0x00f9fff3,
- 0x00f9fff1, 0x00f9fef0, 0x00fbfef3, 0x00fdfff6, 0x00fefff7, 0x00f4f5f0, 0x00f5f6f3, 0x00fafbf8, 0x00fffcfc, 0x00fffdfd, 0x00fdfcfa, 0x00fcfcf7, 0x00fefef9, 0x00fefef9, 0x00fbfcf6, 0x00f9fbf4,
- 0x00fefef7, 0x00fdfef8, 0x00fefffa, 0x00fcfef9, 0x00fcfffa, 0x00fafdfa, 0x00fbfefb, 0x00fcfdfb, 0x00fafdfa, 0x00fcfffc, 0x00fbfdfc, 0x00fcfdfd, 0x00fbfcfd, 0x00fcfdfd, 0x00fcfdfc, 0x00fbfcfa,
- 0x00f8fdfd, 0x00fafdfa, 0x00fbfffc, 0x00fdfefc, 0x00fafefe, 0x00fcfefe, 0x00f9fefe, 0x00fafefc, 0x00fcffff, 0x00fcfdfe, 0x00fdfbf9, 0x00fffaf5, 0x00fffcf9, 0x00fffcfb, 0x00fefdfb, 0x00fffefb,
- 0x00fffcfe, 0x00fdfbfd, 0x00fefeff, 0x00fefdff, 0x00fcfdff, 0x00fffefe, 0x00fefefc, 0x00fdfcf9, 0x00fdfbfb, 0x00f8f9f5, 0x00f8f9f8, 0x00f7f8f9, 0x00f5f6f7, 0x00f3f2f4, 0x00eeedf1, 0x00e7e7ea,
- 0x00e1e1e7, 0x00dadbdf, 0x00d7d8db, 0x00d0d1d3, 0x00c7cacc, 0x00bdc2c5, 0x00bbc0c5, 0x00b9bec2, 0x00aeb6be, 0x00a9b0b8, 0x00a4adb4, 0x00a1a4b3, 0x0096a4ad, 0x008e9da8, 0x008397a1, 0x0081929c,
- 0x007c8c95, 0x0078848a, 0x00747a7d, 0x00737271, 0x006a6467, 0x00645d50, 0x0057503f, 0x00474330, 0x003c382b, 0x00343428, 0x002a2d25, 0x00212621, 0x00232729, 0x0030353a, 0x00373d45, 0x00313942,
- 0x00122642, 0x000c1d36, 0x00101e33, 0x00202632, 0x002a282a, 0x002e281f, 0x00302917, 0x003d3419, 0x00564d27, 0x005a5225, 0x0059521a, 0x005a5414, 0x00585520, 0x004f4f24, 0x00404622, 0x00363d23,
- 0x002d2f20, 0x00292a1a, 0x00201d09, 0x0027210a, 0x003c3013, 0x00343026, 0x00333231, 0x0023221f, 0x0040403e, 0x007a7a78, 0x00929390, 0x00969794, 0x009a9b98, 0x009a9b97, 0x008f908c, 0x00636561,
- 0x003e3e3d, 0x003d3c3a, 0x003b3a38, 0x00353633, 0x00313230, 0x002e2f2d, 0x002f302d, 0x00323330, 0x003c3c39, 0x00464645, 0x004f4f4e, 0x00555653, 0x00575656, 0x00505050, 0x003e3f3f, 0x00313033,
- 0x00262626, 0x001d1d1e, 0x00171717, 0x001c1b1b, 0x00252424, 0x00332923, 0x003d2d27, 0x0043322c, 0x0046332d, 0x00422f29, 0x00412e2a, 0x0041302b, 0x00423731, 0x00443f37, 0x004e4d45, 0x0052564a,
- 0x005c5b5b, 0x00595958, 0x00575858, 0x00575859, 0x00615f5f, 0x006e6b6c, 0x00757475, 0x007b7b7b, 0x007b787a, 0x00726f72, 0x00606263, 0x0059575b, 0x00424145, 0x00363034, 0x00232021, 0x001b1619,
- 0x001c1317, 0x001d1618, 0x00292020, 0x003b3231, 0x00544b4a, 0x005e5a5a, 0x00727172, 0x00858587, 0x009f9c9f, 0x00b1b0b1, 0x00c8c7c7, 0x00d9d8d8, 0x00eeeff0, 0x00fafafb, 0x00fefdfd, 0x00fcfbf9,
- 0x00fbfafe, 0x00fdfcff, 0x00fffeff, 0x00fefefd, 0x00fcfdfb, 0x00fcfcfb, 0x00fcfcfa, 0x00fffdfc, 0x00fffffa, 0x00fefef8, 0x00fffefc, 0x00fffbf8, 0x00fffafc, 0x00fbfafa, 0x00fbfcfe, 0x00fdfcfb,
- 0x00fdfbf6, 0x00fcf8f2, 0x00fefaf8, 0x00fffbfd, 0x00fcf8fd, 0x00fef7ef, 0x00fff6ee, 0x00fef0f1, 0x00fff3f9, 0x00fef5fb, 0x00fbf6f6, 0x00f7f7f8, 0x00f3f6f1, 0x00ecedf0, 0x00eae6ef, 0x00e8e0f3,
- 0x00d8e3e5, 0x00dbc3c5, 0x00bc8487, 0x00c5807f, 0x00e4bbb5, 0x00dac9c9, 0x00ceccd2, 0x00c7c7d6, 0x00ccc3d6, 0x00d1ced8, 0x00dfe0eb, 0x00e8eaf2, 0x00f6f5fc, 0x00fdfcfb, 0x00fffffc, 0x00fbfcf5,
- 0x00fbfdfb, 0x00fbfdfd, 0x00a9b0bf, 0x00364158, 0x003f4d6d, 0x0071769e, 0x00626990, 0x00283654, 0x00092055, 0x000e247a, 0x00061a80, 0x0008187e, 0x00162353, 0x00424562, 0x009491a8, 0x00c1b4d3,
- 0x00c1c1dd, 0x00b5b6d0, 0x00babbd5, 0x00cbcde3, 0x00d9daee, 0x00dbdcf0, 0x00dfe1f3, 0x00e1e3f5, 0x00e6e8f5, 0x00e8ebf6, 0x00ececfb, 0x00e6e2f6, 0x00e4e9f3, 0x00ebf3f8, 0x00e8eff8, 0x00e8ecfb,
- 0x00f4eaff, 0x00f4edf5, 0x00cfcec1, 0x008b996f, 0x006a8a3c, 0x006c8351, 0x005b6e5d, 0x0041576f, 0x002d418c, 0x002c4594, 0x003c54ae, 0x004258b9, 0x00455bd0, 0x00516ad1, 0x00617fd1, 0x006990c0,
- 0x00698b5e, 0x0067894f, 0x006a8b44, 0x006d9038, 0x00718d33, 0x0070863b, 0x00778a56, 0x009bae97, 0x00cbd6f6, 0x009faade, 0x0041539e, 0x00123b9d, 0x00374393, 0x0044417e, 0x009180b1, 0x00decbe8,
- 0x00dedef3, 0x00cfd9f5, 0x00b4c6f1, 0x00788fce, 0x003c50a5, 0x006574a4, 0x008f9ab7, 0x005c6381, 0x003b3753, 0x00453c58, 0x004b3e54, 0x00504258, 0x00483844, 0x004a414b, 0x00a1999e, 0x00f2f1f1,
- 0x00fefefe, 0x00fbfdfb, 0x00fbfefd, 0x00fbfefd, 0x00a7adab, 0x00262f2c, 0x000c1814, 0x000d1915, 0x000d1a16, 0x000c1b16, 0x000d1b16, 0x000d1c14, 0x000e1c14, 0x000d1c15, 0x000d1c15, 0x000e1c14,
- 0x000d1b14, 0x000c1c14, 0x000b1b12, 0x000c1914, 0x000c1814, 0x000e1d17, 0x000a1711, 0x000f1614, 0x00171214, 0x00160f0b, 0x00190e08, 0x002b231d, 0x006f6e74, 0x006a708a, 0x00313c65, 0x0015245d,
- 0x00201c21, 0x002a1c1c, 0x003c271c, 0x004e2d1d, 0x004f2b1b, 0x00563426, 0x005f4236, 0x00684c42, 0x00745042, 0x0079523e, 0x007e563d, 0x007d573d, 0x00805a31, 0x00876036, 0x008a6434, 0x00865f30,
- 0x00875d3d, 0x00885f3a, 0x00896038, 0x008e6234, 0x0092662e, 0x00966527, 0x0096642d, 0x009a6843, 0x00ab6d54, 0x00a2875e, 0x00726945, 0x002e2a0f, 0x0012161d, 0x00191d0a, 0x005a3215, 0x00be320b,
- 0x00c42e03, 0x00b53315, 0x00d37b6d, 0x00e0cec9, 0x00d6cfdb, 0x00d2d0d6, 0x00c5c9c9, 0x00b9cac1, 0x00dcbeca, 0x00ccc3cd, 0x00bebcc7, 0x00bcb6c1, 0x00b6b0bb, 0x00b4aeba, 0x00bcb5c0, 0x00c1bbc5,
- 0x00c9c1cb, 0x00c1bbc5, 0x00c5bfc9, 0x00cac3cc, 0x00c5bfc7, 0x00c7c2c5, 0x00d2cece, 0x00d6d4d5, 0x00d8d4d4, 0x00d8d4d3, 0x00ddd9db, 0x00dedbde, 0x00e0dee1, 0x00e2e0e2, 0x00e1dee1, 0x00dfddde,
- 0x00dfdee2, 0x00e6e6e9, 0x00ebebec, 0x00e7e7e9, 0x00e6e7ea, 0x00e7e8eb, 0x00e8e7eb, 0x00e4e3e5, 0x00e7e8e9, 0x00edecee, 0x00e8e7e9, 0x00e8e7e8, 0x00f5f3f4, 0x00ebeaea, 0x00f0f1f1, 0x00e7e8ea,
- 0x00a5a8ad, 0x006f737d, 0x007e808f, 0x00848699, 0x00a9aac5, 0x00bec3d6, 0x00d2d8e4, 0x00e1e5f4, 0x00edf2fc, 0x00f4f7fc, 0x00fafbff, 0x00fafcf9, 0x00fbfbfa, 0x00fefef7, 0x00fdfef6, 0x00ebeae5,
- 0x00fcf5f2, 0x00eff3eb, 0x00e7f2e5, 0x00eafced, 0x00effdf1, 0x00eff8f4, 0x00f5fbfb, 0x00dbe2ed, 0x00708cb6, 0x00386593, 0x00406ba8, 0x004d6bb3, 0x00aa5d5c, 0x00cb8361, 0x00fceac3, 0x00e7efe0,
- 0x00dedcf1, 0x00766b72, 0x000f0903, 0x000a0e03, 0x0006081e, 0x00030312, 0x0002050c, 0x0004060a, 0x0005050d, 0x0004060c, 0x0004060d, 0x0004060e, 0x0004060d, 0x0003050c, 0x0004070d, 0x0002070b,
- 0x00050613, 0x00030413, 0x00010415, 0x0002021a, 0x00000322, 0x000a0b33, 0x001a1e4e, 0x002a2e66, 0x0030367b, 0x00313782, 0x00343c8b, 0x002b3c8c, 0x0043509c, 0x003f4c96, 0x002c3b88, 0x00304395,
- 0x00294094, 0x002f4195, 0x0022307d, 0x00424587, 0x00564983, 0x003a2862, 0x003b2b60, 0x003b335b, 0x001e1f33, 0x00040816, 0x00000a15, 0x00030a16, 0x000a0c17, 0x00121013, 0x00625a5b, 0x00594e46,
- 0x00010417, 0x000c1a33, 0x00526082, 0x002e3e6a, 0x001e2f67, 0x0029396d, 0x002b396a, 0x001b274e, 0x00070d23, 0x00040814, 0x00060b21, 0x002b3d65, 0x00576da0, 0x00374c86, 0x002e4182, 0x00243879,
- 0x0029326a, 0x00191d48, 0x00120e2c, 0x00160c18, 0x001f0e0c, 0x003b251e, 0x00574238, 0x0039281b, 0x0020150c, 0x001b1312, 0x002e222d, 0x006d6474, 0x00d9cddb, 0x008e8184, 0x0037271d, 0x0042321b,
- 0x007f6564, 0x00b49e9c, 0x00ccbab7, 0x00c9beb8, 0x00cdc7c1, 0x00c7c2bd, 0x00a29c97, 0x0086817a, 0x006f6966, 0x00bfb7b5, 0x00eae7e6, 0x00d3dfda, 0x00e2e5e4, 0x00eff0f2, 0x00e2e1ee, 0x00d4d9ed,
- 0x004f5e7e, 0x001a2d4c, 0x00808fa9, 0x00d5e0f3, 0x00d9dbe2, 0x00d6d9de, 0x00edeef2, 0x00e9eaef, 0x00e2e2e8, 0x00e4e6eb, 0x00d2d3d8, 0x0055565c, 0x0004060b, 0x00090c11, 0x0006090e, 0x007d8186,
- 0x00fcfdf0, 0x00c8cac1, 0x00373b39, 0x0015181c, 0x001a161a, 0x001e1310, 0x0022190f, 0x00251c11, 0x00191f14, 0x000c1a14, 0x0002140e, 0x000b0f11, 0x00071422, 0x000a152c, 0x00081930, 0x000e1e33,
- 0x001e2634, 0x002d3147, 0x00283251, 0x001d2b60, 0x000e2877, 0x001d2870, 0x00182055, 0x001d2045, 0x00222832, 0x00212936, 0x00243049, 0x00182950, 0x00112154, 0x00192647, 0x0020263d, 0x00262528,
- 0x004a3d23, 0x006f614c, 0x00706353, 0x00594d3e, 0x0049402d, 0x004c482e, 0x00515038, 0x00464631, 0x0048443f, 0x005c5a5d, 0x00666a6c, 0x004a5450, 0x001e2515, 0x001b210e, 0x001c2613, 0x003f4b42,
- 0x00798ca3, 0x006d8db4, 0x0039639d, 0x00346db1, 0x003679c6, 0x003c7ac6, 0x003c78c5, 0x00417bc3, 0x004577b4, 0x004f7fad, 0x0072a1c3, 0x007faecb, 0x00669bbe, 0x00508abc, 0x00417bc0, 0x003b7acc,
- 0x004877c0, 0x004075b8, 0x003671b0, 0x003273b2, 0x002d6cb3, 0x00346ab4, 0x003c66a9, 0x003e5c92, 0x001f2a36, 0x001e2013, 0x001f2006, 0x00211a0f, 0x001f1c0d, 0x001d1810, 0x003c3b30, 0x0054564c,
- 0x002b2822, 0x0015110a, 0x00181109, 0x0020160c, 0x00201a0b, 0x00191619, 0x00111321, 0x00151523, 0x001f2331, 0x0030303b, 0x00433d44, 0x00655757, 0x009e8071, 0x00b89176, 0x00bd8d6a, 0x00a97348,
- 0x00523c1d, 0x00442a08, 0x0082673f, 0x008c683c, 0x00976a40, 0x00ac7853, 0x008b5b3a, 0x00663b1b, 0x00453411, 0x003a3410, 0x0036350d, 0x003d2d09, 0x003a2c09, 0x00382a09, 0x002d2403, 0x002c2206,
- 0x00272008, 0x00241e09, 0x001e1d08, 0x001c1a0a, 0x00181908, 0x0016150d, 0x0013150e, 0x0012140e, 0x00161610, 0x00161710, 0x00161911, 0x00191911, 0x00171b0e, 0x00181b0d, 0x0013170a, 0x00242618,
- 0x008b8a7f, 0x00efefe7, 0x00fdfdf7, 0x00fafaf7, 0x00ffffff, 0x00fcfdfd, 0x00acaea9, 0x00414537, 0x002c2d17, 0x003e4224, 0x00495429, 0x004d612d, 0x00566a35, 0x00596c39, 0x00586b34, 0x00546936,
- 0x005c713c, 0x005c703b, 0x005d703b, 0x005e713d, 0x005f7340, 0x00617542, 0x00617540, 0x0060733d, 0x00627441, 0x00637843, 0x00657943, 0x0062763f, 0x0061763f, 0x00647941, 0x00697c45, 0x006a7e46,
- 0x006a804e, 0x006a8050, 0x006b8053, 0x00627849, 0x005b7041, 0x006a7f50, 0x0090a576, 0x008da374, 0x0074895c, 0x00778c5e, 0x00778c5a, 0x00778956, 0x00768b55, 0x0071864e, 0x006d8348, 0x0071844c,
- 0x0071824c, 0x0071834d, 0x00738550, 0x00738652, 0x00748654, 0x00758656, 0x00778757, 0x00778755, 0x00778758, 0x00778858, 0x00778858, 0x007a8c5b, 0x00758655, 0x00768756, 0x00778655, 0x007a8958,
- 0x00808f60, 0x00809163, 0x007d8e61, 0x00788a5c, 0x007b8c5e, 0x00809063, 0x00829265, 0x00839364, 0x00869768, 0x008b9b6e, 0x008e9d73, 0x008d9a74, 0x00919c78, 0x0095a17b, 0x009aa680, 0x009ca984,
- 0x009fac85, 0x00a0ad86, 0x00a3af88, 0x00a6b28b, 0x00a9b48f, 0x00acb593, 0x00aeb696, 0x00aeb798, 0x00b3ba9c, 0x00b4bc9e, 0x00b5bea0, 0x00b6bfa2, 0x00bbc2a7, 0x00c1c7ad, 0x00c6cbb2, 0x00c8ceb5,
- 0x00c8d2b2, 0x00cbd4b6, 0x00cdd5ba, 0x00d0d7c0, 0x00d3d8c6, 0x00d1d3c6, 0x00e6e5dc, 0x00fbf9f2, 0x00fffdf9, 0x00fffefc, 0x00fdfdfb, 0x00fbfbf7, 0x00fcfdf9, 0x00fdfefb, 0x00fdfefb, 0x00fcfefb,
- 0x00fdfbfa, 0x00fdfdfa, 0x00fdfefb, 0x00fefefc, 0x00fefdfc, 0x00fefefe, 0x00fefdfe, 0x00fffdfe, 0x00fdfdfd, 0x00fefefd, 0x00fcfcfb, 0x00fcfdfb, 0x00fcfdfc, 0x00fafcfb, 0x00fbfdfc, 0x00fafcfc,
- 0x00f8fcf7, 0x00f8fcf7, 0x00f5fcf8, 0x00f4f8f6, 0x00f5fbfb, 0x00f4f7f7, 0x00f3f7f8, 0x00f2f7f8, 0x00f2f2f0, 0x00efeeef, 0x00efedec, 0x00f1e8e3, 0x00ebe9e2, 0x00eae3e2, 0x00e1dedd, 0x00dfdad9,
- 0x00dbd8da, 0x00dad7d8, 0x00ced0d1, 0x00c8c6ca, 0x00b7bcbd, 0x00b7b4b3, 0x00acaba7, 0x00a4a39f, 0x00a4a5a1, 0x00a2a4a0, 0x009d9e9d, 0x00989798, 0x00919095, 0x008e8e8f, 0x00838287, 0x0076777b,
- 0x00696968, 0x00686867, 0x00696969, 0x00676667, 0x00585a5c, 0x004c5458, 0x004e565c, 0x004f585e, 0x00454e59, 0x00404a57, 0x00414d57, 0x00454c5a, 0x003b4c59, 0x003b4c5b, 0x00344b55, 0x00324b55,
- 0x00324b53, 0x00394651, 0x003b4448, 0x003d3f43, 0x003f373a, 0x00403627, 0x003b331a, 0x0031290f, 0x001c1606, 0x00141005, 0x000a0d03, 0x00040602, 0x000d1517, 0x0032383f, 0x00455058, 0x0038444f,
- 0x000f294e, 0x000f2345, 0x0012233b, 0x00222b3e, 0x0038383a, 0x003b352d, 0x00453c27, 0x005d512e, 0x00796f3a, 0x0084773e, 0x0080763e, 0x007a7a3d, 0x0070734b, 0x0061674c, 0x003b443c, 0x001c272b,
- 0x00131d2b, 0x00151927, 0x000d1112, 0x001d1b14, 0x0038321f, 0x0038352e, 0x0031322e, 0x002d2a28, 0x005b5b59, 0x00a0a19e, 0x00c8c9c6, 0x00c2c4c1, 0x00c9c9c6, 0x00d0d0cd, 0x00b6b6b3, 0x00565854,
- 0x00070806, 0x000c0c0a, 0x000f0d0e, 0x000d0c0d, 0x000c0c0e, 0x000f0f11, 0x00151516, 0x001e1e1f, 0x00353733, 0x00454645, 0x00535453, 0x005c5d5c, 0x005c5b5d, 0x00525152, 0x003c3c3b, 0x002e2d2f,
- 0x00202021, 0x0018191b, 0x00151515, 0x001e1f1e, 0x002c2a2b, 0x00423530, 0x00503b33, 0x0057423b, 0x00593e3b, 0x00563d37, 0x00523935, 0x00513c34, 0x004b3f32, 0x004e483a, 0x00565448, 0x00606253,
- 0x00646464, 0x00656565, 0x00636464, 0x00656564, 0x0071706f, 0x007f7e7c, 0x008a8c8a, 0x00909391, 0x008f8c90, 0x00848284, 0x00757477, 0x00696369, 0x004d494f, 0x003c333a, 0x00241e22, 0x00171212,
- 0x00140b0d, 0x00140c0d, 0x00160b0d, 0x00180b0f, 0x00160909, 0x00100a0b, 0x00120f0f, 0x00191717, 0x00252426, 0x00363536, 0x004b4849, 0x005c595b, 0x006d6a6e, 0x007f7d81, 0x00949296, 0x00a8a6a8,
- 0x00c2bfc1, 0x00d0cdcf, 0x00e3dfe1, 0x00ece9ea, 0x00f4f3f3, 0x00f6f7f6, 0x00f9faf8, 0x00fcfcfa, 0x00fdfdf9, 0x00fdfcf9, 0x00fcf9f7, 0x00fefbf5, 0x00fbfafb, 0x00fefefe, 0x00fdfcfd, 0x00fffdfc,
- 0x00fdfdf2, 0x00fefcf3, 0x00fefcf7, 0x00fff9fc, 0x00f8fcfb, 0x00f9fdf6, 0x00f8fcf6, 0x00faf9fb, 0x00fef6ff, 0x00fef7fe, 0x00fefaf9, 0x00fdfcfa, 0x00fafcf6, 0x00fafcfc, 0x00fbfbfd, 0x00faf9fd,
- 0x00f8faf8, 0x00f7edec, 0x00ebd2d3, 0x00f3d5d6, 0x00fae5e4, 0x00ebe5e4, 0x00e0e6e6, 0x00d6e6e7, 0x00d3d5df, 0x00dbd6e3, 0x00eee5f4, 0x00ececf7, 0x00f8f7fb, 0x00fdfcfc, 0x00fffbf7, 0x00fcfbf4,
- 0x00f9fdf8, 0x00fafdfe, 0x009da7b5, 0x00353f5a, 0x004e5e81, 0x008080ab, 0x008186ab, 0x0067728f, 0x0033457d, 0x001f328a, 0x001d3397, 0x00202f97, 0x00263567, 0x00434767, 0x008c8da7, 0x00bab2d0,
- 0x00b5b6d1, 0x00b1b3cd, 0x00b9bcd4, 0x00c9cce2, 0x00d3d4e9, 0x00d5d6e8, 0x00dddeee, 0x00e1e4f2, 0x00e1e4f1, 0x00e5eaf5, 0x00efeefa, 0x00ebe4f6, 0x00e3e7f0, 0x00e6f2f4, 0x00e8f2fa, 0x00e6edfa,
- 0x00efe5fe, 0x00f1ebfa, 0x00d1d4cc, 0x0093a179, 0x00698934, 0x006d843f, 0x006b7f51, 0x00587166, 0x00354f7b, 0x00284685, 0x002d4998, 0x003850af, 0x003b55c0, 0x00425fcb, 0x005375d8, 0x005e89df,
- 0x006e8f82, 0x0066876a, 0x00678852, 0x006c8f44, 0x006d8c30, 0x00708a3b, 0x00728b4c, 0x0092a887, 0x00bfd1ed, 0x0093a2d7, 0x00354e9a, 0x001f4db0, 0x003c4da0, 0x004a458a, 0x00988aba, 0x00dbcbed,
- 0x00cad2ea, 0x00b3c9ef, 0x0081a7dc, 0x00628ad8, 0x00375ec8, 0x00445992, 0x00808eae, 0x00727da2, 0x00303861, 0x0020244b, 0x002e3259, 0x0037355b, 0x00302c46, 0x00363244, 0x00959199, 0x00f2ecee,
- 0x00fdfffe, 0x00fafdfb, 0x00fafefd, 0x00fbfefd, 0x00a7adab, 0x00272f2d, 0x000d1815, 0x000e1815, 0x000d1b15, 0x000c1b15, 0x000c1b15, 0x000d1b13, 0x000d1b13, 0x000d1b15, 0x000d1b15, 0x000e1b14,
- 0x000d1a14, 0x000d1a13, 0x000c1812, 0x000a1712, 0x0009180f, 0x00051714, 0x00041312, 0x000c1313, 0x00130a09, 0x001c0a07, 0x00412e24, 0x007a655f, 0x00919098, 0x006a7292, 0x002e4276, 0x00193379,
- 0x001c2939, 0x001d1d24, 0x002a1e16, 0x0047281a, 0x00563215, 0x0059351b, 0x005e3c20, 0x0065452e, 0x006a4929, 0x0070502b, 0x0078532e, 0x007b5138, 0x007f5731, 0x0080592e, 0x00845c2d, 0x00835b30,
- 0x00885e3b, 0x008c5e3c, 0x00895d33, 0x008f6132, 0x00936824, 0x00a16e29, 0x00a67232, 0x00af7b4d, 0x00bc7858, 0x00a07f53, 0x005f5528, 0x0026210a, 0x0013161a, 0x00181e0b, 0x00583110, 0x00bb310b,
- 0x00c13003, 0x00b12f13, 0x00cb7366, 0x00dbc9c5, 0x00d5d1e0, 0x00d7d6df, 0x00c9d0d0, 0x00b5c7bd, 0x00d3b7c0, 0x00d0c7d1, 0x00cac9d6, 0x00c8c1cd, 0x00bcb5bf, 0x00b6b0ba, 0x00b5aeba, 0x00b7b1ba,
- 0x00c7bfc9, 0x00c5beca, 0x00cac5ce, 0x00ccc6d2, 0x00c6c0ca, 0x00c9c3ca, 0x00d3cfce, 0x00d8d3d6, 0x00d4d2d4, 0x00d8d5d6, 0x00dcd9da, 0x00dedbdc, 0x00e3dfe1, 0x00e5e0e2, 0x00e3e0e1, 0x00e0dedf,
- 0x00e4e4e7, 0x00ebebef, 0x00ebeced, 0x00e9eaeb, 0x00e6e5e9, 0x00e7e6e9, 0x00e7e5e7, 0x00e3e1e3, 0x00e6e6ea, 0x00edeeef, 0x00ebeaee, 0x00eceaf3, 0x00f7f7fa, 0x00f1f1f4, 0x00efeff0, 0x00f9fafa,
- 0x00f2eff2, 0x00dbd9df, 0x00eae7f0, 0x00efebf5, 0x00f8f2fd, 0x00f9f6f9, 0x00fbf9f9, 0x00f4f4f6, 0x00f3f2f6, 0x00faf7fa, 0x00fbf9fb, 0x00fcfcfe, 0x00fcf9fb, 0x00fefcfe, 0x00fdfdfc, 0x00d1ccd0,
- 0x008e8287, 0x0088878b, 0x00869594, 0x0091a7a8, 0x00a7bcbb, 0x00bfc7cc, 0x00c2c8d2, 0x00d5dbea, 0x00b0c5e2, 0x004769a0, 0x00345897, 0x003a54a0, 0x00ae5451, 0x00b4623a, 0x00ebb98e, 0x00f3f5e5,
- 0x00e8ebf8, 0x008e818a, 0x000a0201, 0x00070b05, 0x00000623, 0x0004030f, 0x0005060a, 0x0007060b, 0x0006060d, 0x0005060d, 0x0004060d, 0x0003060d, 0x0004070e, 0x0003070d, 0x0003070c, 0x0002070a,
- 0x0005060f, 0x0005050f, 0x0001030e, 0x00010212, 0x0000021a, 0x00000022, 0x0000032f, 0x00090d42, 0x00171d5d, 0x0023236e, 0x00252c72, 0x00263275, 0x002d3379, 0x001a286e, 0x00162771, 0x00122677,
- 0x001f3992, 0x002c3f93, 0x00171f69, 0x00302867, 0x00402353, 0x0047173a, 0x004c122c, 0x002c0514, 0x001b0810, 0x000e060c, 0x00040a10, 0x00040c1b, 0x00020713, 0x0004040b, 0x0061595d, 0x00635553,
- 0x00000419, 0x00192643, 0x004a587a, 0x00293969, 0x0026386f, 0x002f3f78, 0x001d2d5e, 0x000c173f, 0x00030517, 0x00050713, 0x00242b41, 0x00455b90, 0x00344d87, 0x00304982, 0x00203671, 0x001f326c,
- 0x00262b59, 0x00191538, 0x00160b1f, 0x00221116, 0x00503731, 0x00845c50, 0x009a725e, 0x00a5836d, 0x008d735f, 0x00574237, 0x004b3a39, 0x005b4b52, 0x008d8187, 0x00d9c8c8, 0x00837268, 0x0043331f,
- 0x00644946, 0x00785f5c, 0x0096827e, 0x00b5aaa3, 0x00cbc7bf, 0x00d2d1ca, 0x00c6c2bd, 0x00b7b0ad, 0x00766e6a, 0x00938888, 0x00f4f3f1, 0x00eaf3f1, 0x00dfe4df, 0x00e7e8e8, 0x00e5e8ee, 0x00e0e4f5,
- 0x00576685, 0x001b2a4c, 0x00273855, 0x00909db2, 0x00eff5f8, 0x00dbdde2, 0x00dbdee1, 0x00e0dfe5, 0x00d7d7dc, 0x00d0d0d5, 0x00cccad0, 0x0069696e, 0x00020307, 0x00090b0f, 0x0008090d, 0x009b9b9f,
- 0x00fefdf4, 0x00babdb5, 0x00242525, 0x0011131a, 0x00211723, 0x001d1217, 0x001e140e, 0x001e180b, 0x00141909, 0x00071802, 0x00061302, 0x00111100, 0x000a120c, 0x00061310, 0x00071417, 0x000c171b,
- 0x000f1615, 0x00152126, 0x00212f44, 0x001d3257, 0x000d2a71, 0x0014206c, 0x00212165, 0x0020214a, 0x002b2b33, 0x00303640, 0x00273244, 0x001a2a50, 0x00101d4f, 0x000f1840, 0x00131833, 0x0024232c,
- 0x005b4323, 0x00634f31, 0x00523f26, 0x00483821, 0x0053492e, 0x00635c3e, 0x00696245, 0x00514e32, 0x0043423c, 0x00525454, 0x00575b5d, 0x003f4842, 0x00151c0d, 0x0018220a, 0x001e2814, 0x00455045,
- 0x007e8aa4, 0x006882ac, 0x003b6199, 0x003568b1, 0x003272b9, 0x003d79c3, 0x003e78bf, 0x00437aba, 0x004c79ad, 0x005f8daa, 0x0097c4d3, 0x00a9d9e0, 0x0087bbcd, 0x00679dc7, 0x004981be, 0x003972c2,
- 0x004470be, 0x003b6eb3, 0x003570ae, 0x002d70ad, 0x002768b0, 0x002d64b2, 0x00345da7, 0x00395492, 0x00242f3b, 0x001f2416, 0x00221f06, 0x00261d09, 0x00231f0f, 0x001a1b0f, 0x00393b32, 0x00545a52,
- 0x002e302a, 0x00131106, 0x00190f04, 0x00201604, 0x00221202, 0x001e1201, 0x001b1003, 0x001d1404, 0x00332919, 0x004d3f29, 0x00705c42, 0x009a7e5f, 0x00c69771, 0x00d0936a, 0x00cf875d, 0x00c27245,
- 0x00614523, 0x005c421e, 0x0092764e, 0x00af8d61, 0x00b98b60, 0x00a77550, 0x00774624, 0x00623918, 0x00504121, 0x00393f1b, 0x003c3d17, 0x0043320d, 0x00402f07, 0x003c2c09, 0x00372809, 0x00312709,
- 0x002d230a, 0x002a230b, 0x00231f0b, 0x001f1e09, 0x001b1d0e, 0x001b1a10, 0x00171714, 0x00171913, 0x00191812, 0x00161910, 0x001b1c14, 0x00191b11, 0x001e1d11, 0x00191c10, 0x0016190e, 0x002a2e21,
- 0x00a4a699, 0x00f3f4eb, 0x00fbfcf5, 0x00fafbf8, 0x00fdfdfe, 0x00fbfbfb, 0x009c9c98, 0x0035372a, 0x002f3019, 0x00414625, 0x004d5832, 0x004e6332, 0x00546836, 0x00556938, 0x00576b3b, 0x00576c38,
- 0x005f7140, 0x005b6e3c, 0x00596d3c, 0x005a6e3d, 0x005d703e, 0x0060733d, 0x005f733c, 0x005d713b, 0x0060753f, 0x00637942, 0x00667a44, 0x00627540, 0x00677b46, 0x00687c45, 0x006b7f47, 0x006a8047,
- 0x005f7943, 0x005d773f, 0x00667f48, 0x00647e46, 0x005e783f, 0x00567037, 0x007b955c, 0x0092ad75, 0x00839e6a, 0x00779259, 0x00778f52, 0x00768f49, 0x00738a46, 0x006c873e, 0x006c853d, 0x00718b42,
- 0x00758d43, 0x00728b42, 0x00748c46, 0x00768f49, 0x0078904a, 0x00788f4a, 0x00788e4a, 0x00778d48, 0x00778a49, 0x00758948, 0x00778c4a, 0x007a8f4d, 0x00758a48, 0x00718643, 0x00708542, 0x00728744,
- 0x00798d50, 0x007a8e51, 0x0074884a, 0x006c8140, 0x006c8241, 0x00718747, 0x0075894a, 0x00768a49, 0x0075884c, 0x00758849, 0x0075874a, 0x0075854c, 0x00788750, 0x00798851, 0x007b8b52, 0x007c8c53,
- 0x007f8c56, 0x007f8c55, 0x00808d56, 0x00809058, 0x0082915c, 0x0082915e, 0x00829060, 0x00819162, 0x00838f64, 0x00848f64, 0x00868e65, 0x00878e65, 0x00888f66, 0x008a9067, 0x008c9168, 0x008d9169,
- 0x008c9669, 0x008b966b, 0x008f9c72, 0x00929d76, 0x00979d7c, 0x00a0a289, 0x00d1d1bf, 0x00f7f7ea, 0x00fefef5, 0x00fcfcf5, 0x00fefdfa, 0x00fdfdfe, 0x00fdfdff, 0x00fdfefe, 0x00fdfefd, 0x00fffeff,
- 0x00fffdff, 0x00fefeff, 0x00fefeff, 0x00fcfbfd, 0x00fbfbfe, 0x00f9fafd, 0x00f9fbfb, 0x00f9fbf9, 0x00f7f8f6, 0x00f6f7f3, 0x00f5f7f2, 0x00f0f2ee, 0x00edeeed, 0x00e5e6e7, 0x00dfe0e1, 0x00dcdddd,
- 0x00d4d9d6, 0x00ced5d0, 0x00c5c9c6, 0x00b9c0bc, 0x00b1b6b7, 0x00a9b0b2, 0x00a1a5ab, 0x009ca0a5, 0x0097949b, 0x008e8f93, 0x008c888c, 0x008d8482, 0x008b807d, 0x00827c7a, 0x0077726f, 0x00706c6c,
- 0x00706c73, 0x00716d71, 0x006c6970, 0x005f6163, 0x00504f55, 0x004b4a48, 0x00383735, 0x002b2d26, 0x003b3b3a, 0x004a4a4c, 0x00555253, 0x004f4c4f, 0x004a494e, 0x0046464b, 0x0039393e, 0x0026272f,
- 0x00302829, 0x00302d29, 0x00383736, 0x00353434, 0x00292c2e, 0x001f262d, 0x002b323a, 0x00333d48, 0x00364351, 0x00384754, 0x00404c5e, 0x003e4c5c, 0x003c4f5d, 0x003c5161, 0x003c5267, 0x00375464,
- 0x00455c69, 0x00485b61, 0x00515c62, 0x00545a60, 0x00565056, 0x005a503d, 0x00665839, 0x005b5431, 0x003e381f, 0x00272511, 0x00212112, 0x00151a12, 0x001d282a, 0x00445259, 0x0059676f, 0x00404f59,
- 0x00133562, 0x00102c53, 0x00142647, 0x0029344b, 0x00575156, 0x006d655a, 0x0073674c, 0x00796e41, 0x008d7e46, 0x00998f4c, 0x009d955e, 0x00898b72, 0x00777b7a, 0x00646f82, 0x003d486d, 0x00132257,
- 0x00050f50, 0x00071149, 0x0009103c, 0x00151938, 0x00332d41, 0x00323336, 0x00373733, 0x003d3f3b, 0x006f706f, 0x00b6b6b5, 0x00ecebea, 0x00ebebe9, 0x00eaebe8, 0x00f0f1ee, 0x00d4d4d1, 0x006a6966,
- 0x00030206, 0x000b0b0e, 0x00131215, 0x00141316, 0x00171719, 0x001d1e1f, 0x00252526, 0x002d2c2e, 0x003d3d41, 0x004b4b4b, 0x00565657, 0x005c5c5e, 0x00595859, 0x004e4e4d, 0x003b3b3a, 0x002f2e2e,
- 0x00201e1f, 0x001a191a, 0x001c1d1b, 0x00232523, 0x00323232, 0x00493c36, 0x005c453c, 0x00624a40, 0x00654843, 0x0063483f, 0x00634740, 0x005a4139, 0x0056443a, 0x00544a3c, 0x00605b4c, 0x00656653,
- 0x006c6b6d, 0x006d6e6e, 0x00686767, 0x00676766, 0x00707271, 0x00808181, 0x008f8e8e, 0x00939393, 0x0090908f, 0x00919392, 0x009a969b, 0x009a9099, 0x0070676d, 0x00423a3f, 0x001b1217, 0x000f0407,
- 0x000e0307, 0x00120507, 0x001c0b0d, 0x001f0e12, 0x001f0e11, 0x00171014, 0x000e0c0f, 0x000a070b, 0x000f0a0d, 0x00130f12, 0x00171316, 0x00161315, 0x00151214, 0x00110e10, 0x001d191b, 0x002a2829,
- 0x00483e45, 0x00585055, 0x006b6568, 0x007d787b, 0x00999497, 0x00aba8a9, 0x00bebdbb, 0x00d3d4ce, 0x00eeeeea, 0x00fafbf5, 0x00fdfef9, 0x00fefaf4, 0x00fdfcfc, 0x00fefefd, 0x00f9fcfa, 0x00fbfdf8,
- 0x00fffcf4, 0x00fffdf2, 0x00fdfcf4, 0x00fbfef7, 0x00f4feff, 0x00eaffff, 0x00e9feff, 0x00f1fefd, 0x00fff6ff, 0x00fef5fd, 0x00fdf6ff, 0x00fefbfc, 0x00fcfdf7, 0x00fdfffc, 0x00fafcff, 0x00f6f9ff,
- 0x00fff9f7, 0x00f7fffc, 0x00f1fcfc, 0x00f6fffe, 0x00fcfafd, 0x00fcfafb, 0x00eefef6, 0x00ddfef4, 0x00e3f8f8, 0x00efe9f3, 0x00fbedfe, 0x00f2f6fd, 0x00fafaff, 0x00fcfdfa, 0x00fefef9, 0x00fdfbf3,
- 0x00fcffff, 0x00f2f8fa, 0x008d97a8, 0x002c3b54, 0x0054648d, 0x008e8caf, 0x00a39abb, 0x009fa0b7, 0x005d68a1, 0x00314396, 0x004251b5, 0x004355b8, 0x00415284, 0x00525c7a, 0x009c9fbb, 0x00cbc5e7,
- 0x00b9b7d4, 0x00b4b4ce, 0x00bebfd8, 0x00cacbe2, 0x00cacbe1, 0x00ced0e4, 0x00d9dceb, 0x00dfe4f0, 0x00e1e2f0, 0x00e2e7f0, 0x00ebecf6, 0x00eee9fa, 0x00e0e4ed, 0x00e7f2f7, 0x00e9f3fe, 0x00e9effe,
- 0x00efe8ff, 0x00efedfd, 0x00dadfdc, 0x0098aa82, 0x006c913a, 0x006d8534, 0x00768a49, 0x006c885d, 0x004c707f, 0x00315781, 0x0027488f, 0x00304ea5, 0x003251bd, 0x003257c4, 0x003b68d6, 0x004479e6,
- 0x007390aa, 0x006a898c, 0x0068886e, 0x006c8f54, 0x0071923a, 0x006f8f39, 0x00708d49, 0x0089a37e, 0x00b8cae3, 0x008da1d1, 0x003e58a7, 0x002959c2, 0x003c4ca1, 0x00434186, 0x009689bc, 0x00d1c6e6,
- 0x00a9bdd8, 0x007ea3ce, 0x005c8ece, 0x004c8ae3, 0x003c72ee, 0x004761a0, 0x005b688d, 0x00707fa9, 0x00505f95, 0x001c2b60, 0x00414d80, 0x005d689b, 0x004b4d72, 0x00413e57, 0x00948f9c, 0x00f1ebf0,
- 0x00fefeff, 0x00fbfcfc, 0x00fbfefd, 0x00fbfefd, 0x00a7adab, 0x0026302c, 0x000c1914, 0x000d1a14, 0x000d1b16, 0x000c1b17, 0x000d1b16, 0x000d1b14, 0x000d1a14, 0x000d1a14, 0x000d1a14, 0x000e1a14,
- 0x000e1b16, 0x000d1a13, 0x000b1810, 0x000a1712, 0x0006160f, 0x00031414, 0x00041116, 0x00070d12, 0x001b0708, 0x004a332a, 0x009f8178, 0x00a38a82, 0x00797380, 0x005b688b, 0x002c4681, 0x00113884,
- 0x001d345f, 0x001e2d44, 0x0029222a, 0x003d241a, 0x00532c10, 0x005a3412, 0x005f3c16, 0x005d4115, 0x005f4619, 0x00634a14, 0x006e4c22, 0x0074492f, 0x007a502d, 0x00795326, 0x007a5427, 0x007c572d,
- 0x00875c3d, 0x008a5d39, 0x00885b31, 0x00855c25, 0x0093641d, 0x00a46b22, 0x00ac7231, 0x00b17f4c, 0x00b76e4b, 0x00846633, 0x0040320a, 0x00201c02, 0x00131616, 0x00111e09, 0x0052300d, 0x00b5330a,
- 0x00c83406, 0x00af3012, 0x00c47063, 0x00d2c4c1, 0x00d7d3e1, 0x00d9d9e1, 0x00d6dbdc, 0x00bdd1c7, 0x00d6bbc6, 0x00d7d0d9, 0x00d8d7e1, 0x00dad3df, 0x00d2c9d5, 0x00cac3cd, 0x00c0b9c2, 0x00b9b3bc,
- 0x00c0b8c4, 0x00c6bec8, 0x00cdc4d0, 0x00cec6cf, 0x00cac3ce, 0x00cdc8cd, 0x00d3cfd3, 0x00d7d3d6, 0x00d5d2d3, 0x00d6d4d4, 0x00dcd9d9, 0x00dfdbdc, 0x00e3dfe2, 0x00e4e1e4, 0x00e2e0e2, 0x00e1dfdf,
- 0x00eaeaed, 0x00edeef1, 0x00eeeef1, 0x00ebebec, 0x00eaeaea, 0x00e9e8e9, 0x00e8e7e9, 0x00e1e1e4, 0x00eae7ec, 0x00edebf0, 0x00efecf6, 0x00f1eefd, 0x00faf8ff, 0x00f2f0f7, 0x00f7f5f8, 0x00f1efef,
- 0x00f9f2f8, 0x00fdf8fd, 0x00f9f3f7, 0x00fff7fd, 0x00fceffb, 0x00fcf2f5, 0x00fcf3ef, 0x00fff8f3, 0x00fcf5f5, 0x00faf3f1, 0x00fef9fc, 0x00fefcfc, 0x00fcf6fe, 0x00fdf9fe, 0x00fefaff, 0x00b2acb6,
- 0x00685467, 0x00595665, 0x004b5867, 0x00425f69, 0x00485f6e, 0x00596777, 0x0050556d, 0x007c7d98, 0x006a77a7, 0x003e5b8f, 0x00365095, 0x004254a6, 0x00b14c4b, 0x00b4572b, 0x00c6885c, 0x00e6e6d0,
- 0x00edefff, 0x00aba0a7, 0x00170c09, 0x00020600, 0x00000625, 0x00040611, 0x00080508, 0x00060507, 0x0006080c, 0x0006070c, 0x0005070d, 0x0004060e, 0x00020710, 0x00010710, 0x0001080e, 0x0001080b,
- 0x0005050b, 0x0004040b, 0x0006030d, 0x00060714, 0x0005041b, 0x00020322, 0x00000129, 0x00030636, 0x00131658, 0x001a1d61, 0x0018195d, 0x00191c54, 0x00101652, 0x00091655, 0x0003165d, 0x0014317f,
- 0x0027469b, 0x00293d8a, 0x0023286f, 0x0026134b, 0x0051264b, 0x00953f4b, 0x00aa4541, 0x0062140d, 0x002a0002, 0x00140101, 0x000d080f, 0x00050a17, 0x00030519, 0x00020512, 0x00646167, 0x005d5755,
- 0x00070825, 0x00273453, 0x0047577b, 0x00283b68, 0x002a3c75, 0x002e3d73, 0x00132151, 0x00050f35, 0x00030114, 0x0015191e, 0x004a556c, 0x00364d90, 0x00233d7e, 0x00233c7b, 0x001b316d, 0x000e2052,
- 0x0011143e, 0x00140d2a, 0x001d0c1c, 0x00472f33, 0x008e6c65, 0x00be8876, 0x00bb7f63, 0x00a77152, 0x00855b3a, 0x005c3e23, 0x00604435, 0x0048342e, 0x001e0d0a, 0x007a6862, 0x00e1cbbf, 0x0084725b,
- 0x00614444, 0x00624947, 0x005c4945, 0x005f544f, 0x0079746f, 0x00898680, 0x008d8884, 0x00938d8a, 0x007f7471, 0x00675c5b, 0x00cac5c4, 0x00eff9f1, 0x00ebefe9, 0x00e4e4e3, 0x00e9e6ef, 0x00e5e9f8,
- 0x006c7797, 0x001e2e4f, 0x00081837, 0x00526179, 0x00eef3fc, 0x00eff1f3, 0x00dfdde2, 0x00e4e4e7, 0x00e6e5e8, 0x00d8d7db, 0x00d8d7da, 0x008a898d, 0x0007070a, 0x0007080b, 0x000a0a0d, 0x00a4a5a8,
- 0x00f2f4f1, 0x00a4a7a2, 0x0020231a, 0x0010140c, 0x00191b11, 0x0013130a, 0x00111509, 0x0012160b, 0x0011120b, 0x0010120c, 0x000a110e, 0x0009120c, 0x00110f0f, 0x00170e0e, 0x00170d08, 0x00180d03,
- 0x000e0e02, 0x00090d0f, 0x00171f32, 0x001d3158, 0x00142a76, 0x000b207e, 0x000e227b, 0x000c2663, 0x00132454, 0x001b286b, 0x001f2871, 0x00141b61, 0x00121c3f, 0x000f1735, 0x00141a44, 0x0029286b,
- 0x006d5538, 0x00775b3c, 0x00583315, 0x00552e12, 0x007b5d44, 0x007e6c58, 0x00544d40, 0x0025291f, 0x00181a15, 0x001b1a12, 0x00170f09, 0x001c0b09, 0x00191312, 0x00101411, 0x000d1e1a, 0x000d2220,
- 0x003a5a63, 0x00517795, 0x0037609a, 0x002d5db0, 0x002d62d3, 0x00356bb7, 0x003f72ab, 0x004870b0, 0x00566aa2, 0x0075809e, 0x00a1a1aa, 0x00bcbbab, 0x00b0b9ac, 0x007f99aa, 0x004f77a4, 0x003c71b8,
- 0x00356ec2, 0x003571bb, 0x00326fb1, 0x002a6ba7, 0x002867a8, 0x002b63a9, 0x002c599c, 0x0032538d, 0x001d2c3e, 0x00172019, 0x001e200d, 0x00271f0a, 0x00221b0b, 0x00241c0c, 0x003d382b, 0x00514e40,
- 0x002b2916, 0x00221908, 0x00231507, 0x00281706, 0x002b1409, 0x00341b08, 0x003c230d, 0x00432913, 0x0051341e, 0x00715339, 0x00a48565, 0x00bc9b77, 0x00c89f76, 0x00c19769, 0x00b68a59, 0x00b48654,
- 0x00875f2c, 0x00845422, 0x00a77343, 0x00c08b5e, 0x00b99273, 0x007f6752, 0x00352a17, 0x0033301d, 0x0053411a, 0x005a3e0d, 0x00543a07, 0x00453609, 0x0045330b, 0x003c3109, 0x00382e09, 0x00352f0a,
- 0x00262903, 0x0027290c, 0x00232510, 0x001e2010, 0x001b1c14, 0x001b1613, 0x001b140d, 0x00171206, 0x00111d09, 0x000e1e10, 0x00091a19, 0x000b1721, 0x00131421, 0x00201618, 0x002a170d, 0x004c341e,
- 0x00bbbbb6, 0x00faf9f7, 0x00fbfbf9, 0x00fdfdfc, 0x00fdfdfd, 0x00f8faf5, 0x008c8f84, 0x00242a16, 0x002e3715, 0x00404b22, 0x004d5e27, 0x004e691b, 0x00536b2a, 0x00596f35, 0x005a6e40, 0x005a6c46,
- 0x005c704c, 0x005d704c, 0x005d7048, 0x005e7143, 0x00627544, 0x00627544, 0x00607346, 0x0060734a, 0x0061724c, 0x00627648, 0x00657a3f, 0x00647934, 0x006e843a, 0x006c8039, 0x006d7c3d, 0x006c7b41,
- 0x0062762e, 0x00657733, 0x0064743a, 0x00647243, 0x006a7651, 0x0066724e, 0x0064714b, 0x00838f69, 0x009fae7e, 0x00909f6d, 0x00798a52, 0x00758f4c, 0x00768b51, 0x006f844e, 0x00758857, 0x00728758,
- 0x00708855, 0x00708953, 0x00758f55, 0x00799455, 0x007a9451, 0x007a9150, 0x007c9054, 0x007d8f54, 0x007a8d52, 0x00768a4e, 0x0075894d, 0x00788c51, 0x00788c51, 0x00788b50, 0x00778a4f, 0x00778a4f,
- 0x00788d50, 0x00788b50, 0x0075894d, 0x0074884c, 0x0074894d, 0x0072884c, 0x0071864b, 0x0074874c, 0x0074864c, 0x0073854a, 0x00738549, 0x00728549, 0x0076884e, 0x007a8d51, 0x007e9154, 0x007e9255,
- 0x007c8f54, 0x007c8e53, 0x007c8f53, 0x007c9154, 0x007d9055, 0x007f8e56, 0x00818e59, 0x0084905c, 0x0083905a, 0x00828e58, 0x00808c56, 0x007f8c56, 0x00808d56, 0x007f8c56, 0x007f8b55, 0x00828b57,
- 0x007f8a53, 0x007d8a51, 0x007d8a50, 0x007d894f, 0x007f8953, 0x0082895c, 0x00b6bc99, 0x00e7ecd1, 0x00edefe9, 0x00e4e4e4, 0x00e0dfe0, 0x00dbdcd9, 0x00d5d7d4, 0x00d1d3d1, 0x00cdcecc, 0x00cbcbc8,
- 0x00c0c2bf, 0x00bbbdba, 0x00b2b5b2, 0x00acaead, 0x00a6a9a7, 0x00a0a7a1, 0x0097a095, 0x00919b8d, 0x00899381, 0x00838d79, 0x007c856f, 0x00747c66, 0x007d8172, 0x0081847c, 0x0080807f, 0x007c7b7e,
- 0x006f7871, 0x006c7a70, 0x0057675f, 0x00354e47, 0x002f494f, 0x00223f4c, 0x001e3448, 0x001b2e44, 0x001e2834, 0x001e2425, 0x001d2318, 0x001f2d10, 0x0037260b, 0x00431e09, 0x00481f12, 0x003f231f,
- 0x00242d37, 0x00253d4f, 0x002c495e, 0x003a5364, 0x00444853, 0x0038494f, 0x002a4048, 0x00172937, 0x00283130, 0x004d5745, 0x00606453, 0x005f6056, 0x005f5b80, 0x0052526d, 0x00363a49, 0x00323d2e,
- 0x003c434d, 0x00414346, 0x00453e3d, 0x004b3d38, 0x00403735, 0x002d3137, 0x00324151, 0x0046627d, 0x00466c92, 0x004b7498, 0x0047758c, 0x00467b7a, 0x00527c82, 0x0057808a, 0x00558194, 0x004f82a2,
- 0x004b88b1, 0x005686ad, 0x00607f9f, 0x0066707d, 0x00715c52, 0x007e5d40, 0x00956d49, 0x00a27853, 0x008a5a36, 0x00704223, 0x00744d30, 0x005c3f2b, 0x00393532, 0x00505d68, 0x005d7a8c, 0x00335974,
- 0x00163368, 0x000e2862, 0x00142a65, 0x00253869, 0x00696f6e, 0x0093976c, 0x00a0a15c, 0x00929241, 0x00898964, 0x0090958d, 0x008f9397, 0x007e8e7c, 0x006e7b8e, 0x006176a0, 0x003c4f90, 0x00172f79,
- 0x00011651, 0x00091d52, 0x001a3058, 0x00263750, 0x0032394c, 0x00313438, 0x003f423e, 0x00696c68, 0x00a4a5a2, 0x00d3d3d0, 0x00fdfcfa, 0x00f7f7f4, 0x00fafbf9, 0x00fbfcf9, 0x00e7e7e5, 0x007d7c7b,
- 0x00020305, 0x000a0c0f, 0x00131319, 0x0017171c, 0x001b1b1f, 0x00222223, 0x002a2929, 0x00333030, 0x00423935, 0x00473d37, 0x004a3f3f, 0x004d4147, 0x004e4244, 0x004b403b, 0x0041362d, 0x00392f20,
- 0x00302614, 0x002d2313, 0x00372d1f, 0x003c3328, 0x004b4038, 0x005e4738, 0x0070513b, 0x0075553a, 0x0076543b, 0x0077563d, 0x006f4d3d, 0x0067463f, 0x005c3f40, 0x00604748, 0x006d5756, 0x007b6863,
- 0x007b6e55, 0x00766d56, 0x00736e5a, 0x006a6c5b, 0x00606a5e, 0x00606e65, 0x006a7671, 0x00889390, 0x009fa2a5, 0x009b9ca2, 0x00a2a8ae, 0x00b1c2c9, 0x00b6c3d4, 0x00919ab0, 0x00696a81, 0x004b485e,
- 0x002d2a28, 0x00201913, 0x00190b03, 0x001b0a04, 0x00200c0b, 0x00190d10, 0x00120b10, 0x00180f16, 0x000f0a11, 0x0017131a, 0x001a191f, 0x0016171c, 0x0018181c, 0x00161618, 0x000c0c0f, 0x0009080c,
- 0x000a0806, 0x000a0905, 0x000e0d09, 0x00191813, 0x00282622, 0x0035332e, 0x0041413a, 0x004e4f48, 0x0063635c, 0x00797772, 0x00878886, 0x00969b97, 0x00bbbdc0, 0x00cecfce, 0x00dddddc, 0x00edebe8,
- 0x00f2f3ec, 0x00f6f6f0, 0x00fbfaf6, 0x00fcfbf7, 0x00fcfdf6, 0x00f5fdf8, 0x00f4fefb, 0x00fbfdfb, 0x00fffaf7, 0x00fdfaf8, 0x00f8f9fc, 0x00f3fafa, 0x00f6fdfc, 0x00fafffe, 0x00fcfdfd, 0x00fefbf6,
- 0x00f9f8eb, 0x00fdfefa, 0x00fcf8fa, 0x00fcfafd, 0x00fefcfe, 0x00fefef8, 0x00fafcf0, 0x00fafef1, 0x00f7fefa, 0x00fafdfd, 0x00fcf9fe, 0x00f9f6f9, 0x00fbfdf7, 0x00fcfffb, 0x00faf9fd, 0x00f9f5fe,
- 0x00faf9f9, 0x00eaedea, 0x00798585, 0x002f434f, 0x004a6799, 0x008187c6, 0x008f96c7, 0x0092aeb9, 0x007e728e, 0x004c3d82, 0x003d43a4, 0x002f64cb, 0x003f64ac, 0x00696599, 0x00bda4c4, 0x00e7d5e0,
- 0x00c2c1dd, 0x00b8b9d4, 0x00c4c5df, 0x00cbcce8, 0x00c8c8e6, 0x00c9cae5, 0x00d6d7f2, 0x00e2e4fc, 0x00e1dff9, 0x00dfdffb, 0x00e9e9fd, 0x00eae9fa, 0x00e4e7f7, 0x00e3e8f2, 0x00f1f7fd, 0x00eaefff,
- 0x00e7edfc, 0x00e6f0ff, 0x00d7e4eb, 0x00a9b8a7, 0x00728d55, 0x00708848, 0x00798c4e, 0x007b905c, 0x00728764, 0x0060786a, 0x004c646b, 0x0038506f, 0x00334998, 0x003349b5, 0x003c51d0, 0x004960ed,
- 0x006086c7, 0x006f91bf, 0x006f8da0, 0x00738c7b, 0x007c9051, 0x007a8f45, 0x00798f4b, 0x008fa277, 0x00bbcee2, 0x0093a8dd, 0x004466b4, 0x002b62c7, 0x002b4c9d, 0x003d4a84, 0x008c89af, 0x00d1c4dc,
- 0x00cac5db, 0x00a3aed8, 0x006f8acf, 0x004e7ed8, 0x00397df7, 0x00467bc9, 0x004d6c9f, 0x007b86a7, 0x0099828d, 0x006b5663, 0x00605471, 0x007880ae, 0x00788dcd, 0x006073a2, 0x0099a3c6, 0x00eaedf5,
- 0x00fefefe, 0x00fbfcfb, 0x00fbfefd, 0x00fbfefd, 0x00a7adab, 0x00262f2c, 0x000c1814, 0x000e1916, 0x000c1a14, 0x000b1b15, 0x000c1b15, 0x000d1b14, 0x000e1b14, 0x000d1b15, 0x000e1a16, 0x000f1a15,
- 0x00081310, 0x000e1614, 0x000b1310, 0x000d1513, 0x000a1011, 0x00070f11, 0x00050c0b, 0x00070806, 0x005a4120, 0x00c08654, 0x00ed8f53, 0x00e16724, 0x00bc4d21, 0x009d5a46, 0x006d5155, 0x00404d65,
- 0x00243786, 0x001e2a6a, 0x00262b56, 0x002e2f39, 0x00483e20, 0x004f3f11, 0x0061460f, 0x006d4511, 0x00713a17, 0x0075371c, 0x00773c22, 0x00714423, 0x006f4728, 0x00714b2b, 0x00715032, 0x00705536,
- 0x00715930, 0x00735b31, 0x00775c2f, 0x00755726, 0x007d5b22, 0x007a5e33, 0x00846649, 0x00936b5d, 0x00b18584, 0x007e6866, 0x00252017, 0x000c1d0a, 0x00161c02, 0x002b1401, 0x005f2507, 0x00a33c1e,
- 0x00d32b00, 0x00b32e0a, 0x00c66b51, 0x00e1b7ac, 0x00dacbd4, 0x00d9cfda, 0x00e5d6e2, 0x00e4ced8, 0x00dbcdcc, 0x00dadbd6, 0x00d9dedd, 0x00dcd8e1, 0x00dcd5e1, 0x00d9d4de, 0x00d3cfd9, 0x00cdc9d4,
- 0x00c6c4c9, 0x00c6c1c3, 0x00cec6c7, 0x00d3cbca, 0x00d0c8c7, 0x00cec7c7, 0x00d3ced0, 0x00d7d1d4, 0x00d9d4d4, 0x00dad7d6, 0x00dedcd9, 0x00e1e0dd, 0x00e4e2e3, 0x00e3e2e6, 0x00e3e2e8, 0x00e4e2ea,
- 0x00ebf1dd, 0x00eff3ef, 0x00efeff7, 0x00ebe9fd, 0x00e8e5fb, 0x00e9e9f1, 0x00e7e7e6, 0x00e2e4da, 0x00f0e9ea, 0x00f7f0f5, 0x00f2ecf3, 0x00f2eff2, 0x00f9f5f7, 0x00f7f5f9, 0x00f4f2f5, 0x00f0edee,
- 0x00eeebed, 0x00f2f0ef, 0x00faf6f8, 0x00fcf9fa, 0x00f8f4f6, 0x00efefed, 0x00eeedec, 0x00f1f0ef, 0x00f2eff0, 0x00f6f3f4, 0x00fefefe, 0x00f7fbf8, 0x00fafbfb, 0x00fbfcfe, 0x00f9fbfc, 0x0099989e,
- 0x00505d5d, 0x0051646a, 0x004d6574, 0x0046647d, 0x003f658d, 0x003c6191, 0x00395e96, 0x002f5190, 0x003d5896, 0x00384f90, 0x00254b8b, 0x000f578a, 0x00b35064, 0x00da4243, 0x00e54d4a, 0x00e9a9a7,
- 0x00e6efe9, 0x00cbd3c6, 0x0026261a, 0x00110500, 0x000a051a, 0x0004060d, 0x0000070a, 0x0001070b, 0x0003040b, 0x0004050b, 0x0005060c, 0x0003060c, 0x00010511, 0x00000614, 0x00000616, 0x0001081a,
- 0x00020315, 0x00030315, 0x00040114, 0x00030415, 0x00040216, 0x00000215, 0x0002031a, 0x0002031e, 0x00040428, 0x000e0e36, 0x00131847, 0x000d194b, 0x00071257, 0x00071765, 0x00172d7f, 0x00274699,
- 0x00204382, 0x00303a68, 0x00301639, 0x00470717, 0x009b232f, 0x00b84945, 0x00dd7c75, 0x00b05f57, 0x0037100a, 0x00160204, 0x00110904, 0x00060402, 0x00080106, 0x00040204, 0x00696564, 0x00595550,
- 0x000e0f13, 0x002f3954, 0x00415181, 0x002e4584, 0x00253f78, 0x0021355e, 0x00081532, 0x0000031b, 0x0014143b, 0x003e3f77, 0x0041468d, 0x0028398e, 0x00233680, 0x001b2d6c, 0x000a1849, 0x00091439,
- 0x001b1922, 0x002d1f1b, 0x006d5040, 0x00a67e65, 0x00ce997a, 0x00d3896b, 0x009a462a, 0x007e2e17, 0x00883e31, 0x007a3d35, 0x0063332f, 0x00411e1e, 0x000f0002, 0x00160e11, 0x00a2a0a4, 0x00d5d5d8,
- 0x007b7474, 0x00938882, 0x009c8b7d, 0x00a9927c, 0x00bb9f83, 0x00836849, 0x00765e41, 0x00856f55, 0x00726054, 0x0065564f, 0x0089837c, 0x00dcdfd8, 0x00f6f9ef, 0x00ecedec, 0x00e1e3e9, 0x00e6ebf9,
- 0x008b91ae, 0x001c274a, 0x000d193c, 0x003c4665, 0x00e4eefe, 0x00f5fafc, 0x00eeeff1, 0x00e5e9eb, 0x00e9ebec, 0x00e7e9ea, 0x00dde0e1, 0x00b7babb, 0x00121315, 0x0008080a, 0x00080a0b, 0x00abadaf,
- 0x00eceeee, 0x00949694, 0x001b1b15, 0x0010120a, 0x001a1c0e, 0x0014170a, 0x0011170a, 0x0012140d, 0x0011130e, 0x000f120e, 0x000d1311, 0x000c1316, 0x00101217, 0x00110f14, 0x00130e0f, 0x00140e09,
- 0x00111009, 0x00080f13, 0x000d192c, 0x0015244a, 0x00132d6e, 0x00112777, 0x000b2370, 0x0007235c, 0x000f2056, 0x00101d62, 0x00111b61, 0x00131c5d, 0x00162041, 0x00131c38, 0x00172142, 0x002c3163,
- 0x00755d46, 0x0084684d, 0x00633e20, 0x00532c0e, 0x0070533a, 0x00776555, 0x00413930, 0x00181a11, 0x00181911, 0x0016160b, 0x00181009, 0x00220e0e, 0x001c1414, 0x00141614, 0x000f1d1a, 0x00051815,
- 0x00273e47, 0x00506c86, 0x003d5d90, 0x002f5aa7, 0x002d65d0, 0x002f6fc1, 0x003171b9, 0x00356bbc, 0x004065af, 0x005671a4, 0x007586a7, 0x0095a4aa, 0x0099b2b8, 0x006b92b7, 0x003c70ac, 0x003272c8,
- 0x004171c1, 0x003c70b6, 0x003871ac, 0x00316ea2, 0x00316aa2, 0x0034639f, 0x002a4e88, 0x00253d6e, 0x00191e2d, 0x00191a11, 0x001b1504, 0x00251d0d, 0x0020190d, 0x00201a0a, 0x00393422, 0x0056503d,
- 0x003a311d, 0x00382917, 0x003f2c1c, 0x0045311e, 0x005a4030, 0x00654831, 0x0060402a, 0x005c3b26, 0x006a4932, 0x00906d54, 0x00c09b7c, 0x00cba482, 0x00cba17a, 0x00be9567, 0x00ad8552, 0x00a8814e,
- 0x00976f40, 0x00906230, 0x00b78154, 0x00c69161, 0x009c7559, 0x00523e2c, 0x00170e06, 0x0027261a, 0x004f3e18, 0x005e410f, 0x00573e0b, 0x00493c12, 0x0048390d, 0x00403609, 0x003b3309, 0x00393107,
- 0x00322d06, 0x002f2c0b, 0x002c280e, 0x00221e08, 0x00514d3f, 0x00716d6a, 0x00625d5a, 0x00575343, 0x00595836, 0x00535132, 0x00413c27, 0x002c261f, 0x001b141c, 0x00201b20, 0x00131210, 0x0042453b,
- 0x00cbcccb, 0x00fcfdfc, 0x00fcfcfb, 0x00fcfcfc, 0x00fefeff, 0x00eef0eb, 0x007d8275, 0x00212912, 0x00313d18, 0x00435024, 0x0052622e, 0x00546c29, 0x00586f33, 0x005a713b, 0x005b6f40, 0x005b6e43,
- 0x005d7448, 0x0061764a, 0x00637646, 0x0061753f, 0x0061763c, 0x0061773c, 0x0061773e, 0x00627643, 0x0063754a, 0x00647848, 0x00687b45, 0x006b7d42, 0x006a7c40, 0x00687840, 0x00697747, 0x006c7950,
- 0x00657441, 0x00677647, 0x0066744c, 0x00677355, 0x006b7361, 0x00686f5f, 0x0057604e, 0x00596150, 0x008c987d, 0x009ba78b, 0x007e8f66, 0x00758d52, 0x00778c57, 0x007a8e5b, 0x007c8f5e, 0x00768b59,
- 0x00738b56, 0x00738b54, 0x00738b52, 0x00758e50, 0x007a9152, 0x007a8f53, 0x007a8d54, 0x007c8e55, 0x00798f52, 0x00768c4f, 0x00758a4e, 0x00798e52, 0x00798d52, 0x00798c51, 0x00778b50, 0x00788c51,
- 0x00788c50, 0x00768a4e, 0x0074874d, 0x0074874e, 0x0074874e, 0x0070844a, 0x006f8349, 0x0071864b, 0x0075884e, 0x0074874e, 0x0074884c, 0x00758a4b, 0x00798d4f, 0x007a8f52, 0x007d9254, 0x007f9456,
- 0x007e9156, 0x007e9155, 0x007e9256, 0x007e9355, 0x007e9255, 0x007f9055, 0x00829057, 0x00849259, 0x0084935a, 0x00839057, 0x00808e54, 0x007f8d53, 0x00818e55, 0x00818e55, 0x00808e56, 0x00828f57,
- 0x00848d59, 0x00838d56, 0x00808c51, 0x00808d4f, 0x00818e53, 0x00818d5a, 0x0097a077, 0x00aab08f, 0x00989b90, 0x00888a84, 0x007d7f7a, 0x00757871, 0x006d7068, 0x00666a61, 0x00606359, 0x005d5f56,
- 0x0053544f, 0x0050514b, 0x004a4c44, 0x0044473e, 0x0040443a, 0x003c4436, 0x00364130, 0x00323e2b, 0x002e381e, 0x002a3418, 0x00252f13, 0x00232c13, 0x00383e2d, 0x004e5249, 0x00545653, 0x00565758,
- 0x005f5755, 0x00615e5a, 0x00424542, 0x001c2829, 0x00142434, 0x00122441, 0x0009173b, 0x00010d34, 0x00090a27, 0x000f0b1e, 0x000f0d13, 0x000f190a, 0x002f1b0a, 0x003e1c0e, 0x004a251e, 0x0040252c,
- 0x002d3f51, 0x0034556f, 0x00436883, 0x00567a8f, 0x006f808c, 0x00698291, 0x006b8296, 0x005c6e89, 0x00586973, 0x00718178, 0x00839083, 0x00858c88, 0x007a769e, 0x00575471, 0x003e3e48, 0x0051573f,
- 0x004c4e4d, 0x003c3732, 0x003d2f24, 0x00483322, 0x004f4236, 0x00383a39, 0x003c4d58, 0x005b7d99, 0x006592b8, 0x006693bc, 0x005f92b2, 0x005e99aa, 0x006c9caf, 0x00719eb2, 0x0071a0ba, 0x006e9fc4,
- 0x006aa3d1, 0x0073a5c9, 0x007494a9, 0x007d8482, 0x008d7457, 0x00977452, 0x00b1875e, 0x00c2956a, 0x00b37f57, 0x00a2714d, 0x00a97e5e, 0x0082644f, 0x00444044, 0x00556479, 0x00607ea0, 0x003e6692,
- 0x00224182, 0x000f2d70, 0x00102c71, 0x00203876, 0x006f7782, 0x00a1a380, 0x00afab6c, 0x00a49d52, 0x00908e6b, 0x008c8f86, 0x00878c8f, 0x00798175, 0x006e7d93, 0x005b73a1, 0x00325195, 0x00133784,
- 0x000b2c6d, 0x00274678, 0x00355073, 0x002d4056, 0x0029303f, 0x002b2e2f, 0x004d4d49, 0x008a8b86, 0x00c6c6c3, 0x00e3e2df, 0x00fffefb, 0x00fcfcf9, 0x00fdfdfc, 0x00fdfdfc, 0x00ececeb, 0x00848484,
- 0x00020405, 0x00090c0e, 0x00121419, 0x0017181f, 0x001b1c23, 0x00202025, 0x00272626, 0x00312c2a, 0x003c322f, 0x0040352d, 0x00403430, 0x003f3431, 0x0041352d, 0x0045392b, 0x00483c2a, 0x004b4127,
- 0x00443c1f, 0x0042391e, 0x004c412b, 0x00524634, 0x005d5245, 0x006c5646, 0x007a5e49, 0x007c6044, 0x007b5c41, 0x0077573e, 0x006b4b39, 0x005e3f37, 0x005a3c3f, 0x005d4547, 0x00695654, 0x0076655f,
- 0x00796b5b, 0x00786e62, 0x00736d66, 0x00646666, 0x0058636a, 0x00576571, 0x00747f8e, 0x00a6b0c0, 0x00cdd1e0, 0x00b2b1c1, 0x00868c98, 0x007d8e99, 0x0095a3b6, 0x00bec8e0, 0x00d1d7ee, 0x00c1c1d6,
- 0x00a09ca0, 0x007a7271, 0x00463934, 0x0022130c, 0x00140302, 0x00160a0d, 0x00130a0e, 0x00160f13, 0x00130a11, 0x001f181e, 0x001f1b20, 0x001f1d20, 0x00201d20, 0x00201c1d, 0x001a1618, 0x00191416,
- 0x00181410, 0x0019140f, 0x001a140c, 0x001d170a, 0x00221b0c, 0x00211b0b, 0x001c170a, 0x00161107, 0x000b0a03, 0x00080905, 0x000f0f0e, 0x001d2322, 0x003e3e3f, 0x00585859, 0x00767474, 0x00888988,
- 0x00a8a3a1, 0x00b0ada8, 0x00c6c5bf, 0x00d7d7d1, 0x00eeebe9, 0x00f1f5f4, 0x00f5fbfb, 0x00fefdfd, 0x00fffdf6, 0x00fdfbf7, 0x00fcfcfb, 0x00f8fefe, 0x00f7fefe, 0x00f9fcfd, 0x00fbfefb, 0x00fffef8,
- 0x00fdfdf3, 0x00fbfcf8, 0x00fdfafc, 0x00fdfbfe, 0x00fffdfe, 0x00fefcf6, 0x00fefdef, 0x00fdfeee, 0x00f7fdf5, 0x00f6fbfa, 0x00f8f9fd, 0x00fdf6fd, 0x00fdfef3, 0x00fdfff6, 0x00fafdf9, 0x00fcf9fd,
- 0x00fffaff, 0x00e1e0df, 0x006a7574, 0x002c434d, 0x0042639b, 0x00727bc1, 0x009095d1, 0x008ba6b6, 0x00796c81, 0x00513f7d, 0x00343791, 0x002055b6, 0x004367b0, 0x00726da0, 0x00c3a8c7, 0x00f0dae5,
- 0x00cccfe6, 0x00bec0d7, 0x00c2c4da, 0x00c6c8df, 0x00c9cae2, 0x00c8c9e0, 0x00d4d4ec, 0x00e3e3fa, 0x00e0dffa, 0x00dcdbf4, 0x00e2e2f6, 0x00eae9f7, 0x00e7e9ef, 0x00e7e7ec, 0x00f2f4f9, 0x00f1f4fd,
- 0x00e8ecff, 0x00e3e9fc, 0x00dbe5ed, 0x00b8c4b4, 0x007d8e5b, 0x00738948, 0x00758d49, 0x00778f50, 0x0077915d, 0x00738c68, 0x00688072, 0x004d666c, 0x00354c80, 0x002e4492, 0x003347ab, 0x004155c8,
- 0x005c7cb6, 0x007792b9, 0x007d92a1, 0x007d8d7a, 0x00848d50, 0x00838e46, 0x007d8e4d, 0x008da078, 0x00b8cbdf, 0x008ba4d8, 0x00466ab7, 0x002c5ec0, 0x003a5ca7, 0x0056679b, 0x00a4a6c8, 0x00e6def0,
- 0x00efe9fa, 0x00d0d8f5, 0x00a7bceb, 0x00779fe4, 0x004886dd, 0x00487cc2, 0x007e9ece, 0x00b5bada, 0x00ccb5b7, 0x00a58d97, 0x0062546a, 0x004b4e7a, 0x00586eaa, 0x006476a5, 0x009aa7c5, 0x00eaf1f4,
- 0x00fdfffc, 0x00fbfdfb, 0x00fbfffd, 0x00fbfffd, 0x00a6adab, 0x00262e2c, 0x000c1715, 0x000e1917, 0x000d1b15, 0x000d1b16, 0x000d1b16, 0x000e1b15, 0x000e1b15, 0x000d1a15, 0x000d1915, 0x000d1914,
- 0x000e1814, 0x000d1513, 0x00091010, 0x000b1310, 0x00080d0f, 0x00080c10, 0x00080a05, 0x0034301e, 0x00b58b57, 0x00efa462, 0x00ea8039, 0x00dd5b16, 0x00c45028, 0x00b67260, 0x00c4a6a5, 0x00a0abb9,
- 0x006b7bbb, 0x0056659b, 0x003d456c, 0x00313645, 0x00433931, 0x005f4c36, 0x00654b2d, 0x0069441f, 0x00734020, 0x00753b1c, 0x006c3718, 0x00683b20, 0x006c4026, 0x006d4329, 0x006e4a32, 0x006c4c32,
- 0x006b4b33, 0x006b4d30, 0x0078563a, 0x00755234, 0x00724d2f, 0x006e5942, 0x00927f71, 0x00c3a6a0, 0x00e6c5cc, 0x00c7b6b9, 0x0059595b, 0x00152a1d, 0x000b1704, 0x00271605, 0x0053220e, 0x00934231,
- 0x00c5320a, 0x00982d0c, 0x00ac6850, 0x00d5b6af, 0x00ceccd6, 0x00d2cbd8, 0x00e5d8e6, 0x00ead8e5, 0x00d0ced4, 0x00bbc7c7, 0x00aebac1, 0x00adb0c2, 0x00b1b0c4, 0x00b2b3c8, 0x00bdbed5, 0x00cacadf,
- 0x00d5d6e5, 0x00d0cfd9, 0x00d3cfd4, 0x00d2cdcc, 0x00cfc7c5, 0x00cec6ca, 0x00d5ced8, 0x00d7cfd8, 0x00dad3d8, 0x00dbd6d9, 0x00e1dddd, 0x00e4e1e0, 0x00e4e1e5, 0x00e1dfe4, 0x00e3e1e7, 0x00e8e4eb,
- 0x00f2f8e1, 0x00f6f7f4, 0x00f3f1fa, 0x00ebe8fd, 0x00e8e5fc, 0x00e9e8f0, 0x00e8e7e3, 0x00e6e4da, 0x00f1ece9, 0x00f8f3f9, 0x00f4eef6, 0x00f4eff0, 0x00f9f6f6, 0x00f8f4f6, 0x00f2ecee, 0x00eeeae9,
- 0x00efeaeb, 0x00f0eded, 0x00f6f3f4, 0x00fdfbfb, 0x00faf6f9, 0x00f4f4f4, 0x00edeeed, 0x00eaebea, 0x00ebe8e9, 0x00f0edee, 0x00feffff, 0x00f8faf9, 0x00fdfcfe, 0x00fcfbfd, 0x00fcfefe, 0x008e8f92,
- 0x00485469, 0x00465870, 0x00465e7e, 0x00426189, 0x003d649b, 0x00325e9c, 0x00355ea1, 0x00264f95, 0x002c4e96, 0x003757a0, 0x00274783, 0x00264568, 0x00b13a3c, 0x00e63d35, 0x00d33926, 0x00e18c83,
- 0x00e6ece4, 0x00dee4d6, 0x00524f44, 0x00241411, 0x0003030f, 0x0002050b, 0x00010708, 0x0002070a, 0x0007070a, 0x00050507, 0x00040404, 0x00020403, 0x0003060a, 0x0002080f, 0x00010910, 0x00010a12,
- 0x00040413, 0x00050413, 0x00050611, 0x00050711, 0x00080813, 0x0001040f, 0x00000411, 0x00000114, 0x00000117, 0x0000041c, 0x00070b2f, 0x000c1242, 0x0017215e, 0x00263880, 0x002f438e, 0x00223e8a,
- 0x002a3c77, 0x00433764, 0x003b102b, 0x00580b12, 0x00ad3632, 0x00d06052, 0x00dd7c67, 0x00d98775, 0x006d4331, 0x00260e02, 0x002b1a0c, 0x00362a1d, 0x0045352c, 0x003b2e22, 0x008b7e71, 0x00897e6f,
- 0x004e453a, 0x004b4751, 0x00434463, 0x00394170, 0x00303d69, 0x00252f4d, 0x00060a23, 0x00080d24, 0x002f3768, 0x00444f92, 0x002c3a8b, 0x00243380, 0x001d2c6e, 0x00141d51, 0x000c1137, 0x0017152a,
- 0x00412c2e, 0x006b4a42, 0x00ac7f6c, 0x00cd9277, 0x00b97355, 0x009d5237, 0x007d3019, 0x0078321f, 0x00844438, 0x005d2b26, 0x00330c0c, 0x002a0d10, 0x001c0d11, 0x00090206, 0x00403f45, 0x00d1d1da,
- 0x00d9d2d4, 0x00bfb6b1, 0x00b6a89a, 0x00e9d4bd, 0x00cbaf92, 0x00a98c6c, 0x0092795d, 0x009d8670, 0x00998879, 0x00978780, 0x009b918e, 0x00cbcdca, 0x00eceee8, 0x00f6f8f4, 0x00f0f3f4, 0x00e4e9f3,
- 0x00c4c8e2, 0x005b6382, 0x00182043, 0x003b4661, 0x00e0ecfc, 0x00eff7f9, 0x00f5f6f7, 0x00eaecef, 0x00e2e5e6, 0x00e7eaeb, 0x00e6ecec, 0x00d8dddd, 0x002b2c2e, 0x00070609, 0x000f1113, 0x00b3b5b7,
- 0x00e5e4e5, 0x007f807d, 0x00171913, 0x0012140b, 0x00191b0f, 0x0016170b, 0x0011160a, 0x000d1208, 0x00131210, 0x00151514, 0x00181c1c, 0x0019202a, 0x000d121c, 0x00090e17, 0x000a0f12, 0x00101410,
- 0x000c1010, 0x00091217, 0x00030f1b, 0x00071533, 0x0011255a, 0x000f2663, 0x0005205d, 0x00082055, 0x00102259, 0x000e1e59, 0x000a184c, 0x000a1747, 0x00111d3e, 0x00131e38, 0x00222f4a, 0x00434e68,
- 0x0088715f, 0x008d745d, 0x00705034, 0x005e3b1e, 0x00765a42, 0x007f6c5d, 0x003f362d, 0x0015180f, 0x001a1916, 0x0018170e, 0x00211812, 0x00261714, 0x001c1915, 0x00191b17, 0x00151b17, 0x00101912,
- 0x002e343a, 0x004f6073, 0x00455f86, 0x003862a2, 0x002b65bc, 0x002b6fc2, 0x002773c6, 0x002871ca, 0x00326bc6, 0x003c6db6, 0x004771a9, 0x005d83a4, 0x006790b0, 0x00487cb1, 0x002e6cb4, 0x002770cf,
- 0x00466db6, 0x00406eab, 0x00396c9f, 0x00346b96, 0x00316292, 0x002b5284, 0x00102c58, 0x00051736, 0x002c272a, 0x003d3725, 0x00241903, 0x001d1309, 0x001f180d, 0x001b1408, 0x002f2b17, 0x00524d37,
- 0x004c412e, 0x004f3d2b, 0x008b7461, 0x00b69b87, 0x00ab8e77, 0x0092735c, 0x0072543c, 0x006d4e35, 0x00977158, 0x00ba9479, 0x00d1ab89, 0x00cea881, 0x00c69d72, 0x00ba9161, 0x00ad834f, 0x00a67d4b,
- 0x009b7952, 0x00a2794c, 0x00c09061, 0x00c18d5e, 0x007a5735, 0x0033230f, 0x000a0601, 0x001e2114, 0x00473d1d, 0x00584214, 0x0056410e, 0x004e3c11, 0x004a3e10, 0x00453a0c, 0x003c3308, 0x00393405,
- 0x003c2f0c, 0x00372d0b, 0x00352809, 0x00524229, 0x00b09e87, 0x00d0c6c1, 0x00beb5af, 0x00ada28a, 0x00b69e71, 0x00b89b6e, 0x00b5996f, 0x00977e64, 0x003f3430, 0x001c1d1e, 0x00041518, 0x00425c5b,
- 0x00e5e5e6, 0x00ffffff, 0x00fcfcfb, 0x00fbfbfc, 0x00fefeff, 0x00dde1db, 0x00656d5d, 0x00212c13, 0x00354020, 0x0047522d, 0x00556335, 0x00576b38, 0x005a6e3c, 0x00586f3d, 0x00586e38, 0x00586c3a,
- 0x00607141, 0x00617440, 0x005e743a, 0x005c7535, 0x005f7835, 0x005f7831, 0x005f7733, 0x00637a3d, 0x006a7a50, 0x00697a4f, 0x006b7b4f, 0x00707f52, 0x006d7c51, 0x006b7855, 0x006c755d, 0x006d7665,
- 0x00677359, 0x00626d5b, 0x00566256, 0x00505c56, 0x004d5458, 0x00484f56, 0x003c464b, 0x00313c41, 0x004a5150, 0x007e8482, 0x00a0ae99, 0x00839869, 0x006f8656, 0x00768b58, 0x00748a53, 0x00778952,
- 0x007a8c55, 0x007a8d54, 0x00798c52, 0x00778a4f, 0x00788c4f, 0x00768a4f, 0x00758b50, 0x00788f51, 0x007b9256, 0x007a9054, 0x00788d52, 0x00778d51, 0x00778d51, 0x00768d51, 0x00758c50, 0x00748c50,
- 0x0075874e, 0x0074874c, 0x0074864b, 0x0073854b, 0x0073844b, 0x00728449, 0x0072864b, 0x0074894f, 0x00798a56, 0x00788a55, 0x0076894e, 0x00738848, 0x00778c4e, 0x00798d50, 0x007b8e50, 0x007c8f50,
- 0x007d9357, 0x007d9356, 0x007e9356, 0x007e9456, 0x00819457, 0x00829257, 0x00819055, 0x007f8d53, 0x00828f59, 0x0084905a, 0x00829058, 0x00808f56, 0x00839057, 0x00839158, 0x00829158, 0x00829058,
- 0x0086905d, 0x00848f58, 0x00838f53, 0x00838f52, 0x00838e53, 0x00808a56, 0x00798457, 0x006d7850, 0x00585a4a, 0x00444839, 0x00373c2c, 0x00313726, 0x00303526, 0x00313525, 0x002f3421, 0x002e3420,
- 0x00323527, 0x00313527, 0x002f3325, 0x002e3223, 0x002d3422, 0x00303a24, 0x00313d24, 0x00323e24, 0x00384324, 0x00394324, 0x00384223, 0x003c442b, 0x005c6251, 0x007e827a, 0x00858885, 0x00868888,
- 0x009c848a, 0x009b8a8e, 0x00696566, 0x0035383d, 0x00323b51, 0x0031395f, 0x001c2557, 0x000b134b, 0x00110f42, 0x0016113a, 0x0010102a, 0x0012181b, 0x00291717, 0x003a1b1f, 0x0044292f, 0x0040313e,
- 0x003b4f6d, 0x004a7194, 0x00598aa9, 0x006697ae, 0x0082a4b1, 0x00819fb2, 0x008aa6bf, 0x0087a2c3, 0x008aa2b9, 0x0095afb4, 0x009ab2b1, 0x008fa2a8, 0x006f7399, 0x00525069, 0x00565457, 0x00747254,
- 0x0064584c, 0x005a4836, 0x005b442b, 0x0052381b, 0x004d3d2a, 0x00484943, 0x0046585e, 0x005e8399, 0x006c9fc0, 0x0072a7cc, 0x0072acd1, 0x0072b1d6, 0x007ab0d2, 0x007dafd1, 0x007aabcf, 0x0075a9ce,
- 0x007baad3, 0x0088adc7, 0x00778d96, 0x00868678, 0x00b2956a, 0x00b39165, 0x00b89560, 0x00c69f68, 0x00c3915f, 0x00b8895c, 0x00b38a64, 0x0081654d, 0x00494651, 0x00617193, 0x005d7fb2, 0x003661a0,
- 0x001d448b, 0x00123481, 0x0010307d, 0x00173479, 0x00616c81, 0x00999c89, 0x00a8a373, 0x00a49b56, 0x008a805c, 0x007e776c, 0x00848179, 0x0083826e, 0x00768597, 0x005872a3, 0x002d549a, 0x001e4b9f,
- 0x00305aa1, 0x0045679a, 0x003a5373, 0x00233143, 0x001b2129, 0x00292b2b, 0x004a4a48, 0x007f7f7a, 0x00bfbcbb, 0x00dfdddc, 0x00fefdfc, 0x00fcfcfa, 0x00fefdfc, 0x00fefefc, 0x00f1f2ef, 0x008b8d8a,
- 0x00030307, 0x000a0b0e, 0x00111317, 0x0014161c, 0x00171920, 0x001b1d22, 0x00212121, 0x00272421, 0x00342826, 0x00362922, 0x00352821, 0x00352a20, 0x003b321f, 0x00443b23, 0x0050482a, 0x005a552f,
- 0x005d5432, 0x005d5531, 0x00635a38, 0x00675f40, 0x006c674d, 0x0075664f, 0x007d6452, 0x007c624b, 0x00765a43, 0x006c4e39, 0x005f4332, 0x00563d32, 0x00553e3d, 0x005c4a48, 0x00645652, 0x006e605c,
- 0x00786a6d, 0x00726870, 0x005e5867, 0x0056576d, 0x005b6483, 0x00657192, 0x00808bac, 0x00a9b3d4, 0x00dbe1fc, 0x00dbddf2, 0x00bac1cf, 0x0092a1ac, 0x00525f70, 0x00596178, 0x00999db1, 0x00dedeeb,
- 0x00f4eef8, 0x00ddd7dd, 0x00b1a7aa, 0x00776c6b, 0x0035272c, 0x001b1013, 0x00170e11, 0x001e1819, 0x0023181c, 0x002d2326, 0x002a2123, 0x002c2525, 0x002e2423, 0x002c211f, 0x002c2220, 0x002d221f,
- 0x002a1b20, 0x002d201e, 0x0033281c, 0x003d321c, 0x004a3f24, 0x004a4124, 0x00413b20, 0x00343218, 0x00242216, 0x00191510, 0x000c0b0b, 0x00020706, 0x000f1110, 0x00201f1e, 0x0031332f, 0x00383d38,
- 0x004c4948, 0x0052504e, 0x005c5d57, 0x00686861, 0x00777472, 0x00757a7b, 0x00858b89, 0x00a49f9a, 0x00beb1ad, 0x00cbc2c1, 0x00dfdbdb, 0x00e4eaee, 0x00f1f7f8, 0x00f6f7f9, 0x00f8faf4, 0x00fbf8f0,
- 0x00fefefa, 0x00fefffd, 0x00fbfcfc, 0x00fcfafc, 0x00fcfffd, 0x00fffef8, 0x00fcfef2, 0x00fcfeef, 0x00fffdfd, 0x00fffcff, 0x00fcfafe, 0x00fefcfe, 0x00fdffee, 0x00fbfff0, 0x00fbfef6, 0x00fefdfc,
- 0x00fff7ff, 0x00d2cfcf, 0x00555d60, 0x002f4254, 0x004261a1, 0x006b72bd, 0x008d91ce, 0x008ca5b1, 0x0076687d, 0x004b3b73, 0x002c3180, 0x00134197, 0x00365698, 0x006b6494, 0x00bda5c6, 0x00f1daeb,
- 0x00d5d7eb, 0x00cacce0, 0x00c9cadb, 0x00cccede, 0x00c5c8d7, 0x00c4c8d6, 0x00d1d4e5, 0x00e0e2f4, 0x00e4e7fa, 0x00dfe0f2, 0x00e0deed, 0x00eae7ed, 0x00eeedec, 0x00e6e5e6, 0x00e9ebec, 0x00f1f1f9,
- 0x00f3efff, 0x00e9e9f9, 0x00dae1e2, 0x00bcc6b1, 0x0081915f, 0x00758c49, 0x00758e44, 0x00759045, 0x00799458, 0x007b9561, 0x0078916d, 0x00698674, 0x00526e80, 0x003e5883, 0x002f4684, 0x003b5099,
- 0x006373a3, 0x008895b2, 0x0096a0a7, 0x008e977f, 0x00888a4c, 0x00838741, 0x007a8747, 0x008fa177, 0x00aac1d7, 0x007b95c8, 0x004d6cb7, 0x003b62bc, 0x005c76bc, 0x009daada, 0x00dae0f9, 0x00f0ecf8,
- 0x00f9f1f9, 0x00ebf0fb, 0x00dbedf9, 0x00bddff8, 0x008dc0ee, 0x0089b0e5, 0x00bed9fa, 0x00e0e6fa, 0x00efd7d9, 0x00d5bec6, 0x009c8fa0, 0x006d6d91, 0x00495d8e, 0x0051618b, 0x0099a4be, 0x00ecedf1,
- 0x00fefefd, 0x00fcfdfc, 0x00fcfffe, 0x00fcfffd, 0x00a6adab, 0x00252e2b, 0x000b1714, 0x000d1916, 0x000e1b18, 0x000e1b18, 0x000e1b18, 0x000f1b15, 0x000e1b14, 0x000c1a14, 0x000b1913, 0x000b1811,
- 0x000e1515, 0x000c1210, 0x000a1212, 0x00060f0c, 0x00040909, 0x00101111, 0x00615750, 0x00a99378, 0x00e8a464, 0x00ee9048, 0x00df7025, 0x00da5f1f, 0x00ce704e, 0x00e1a79c, 0x00f1e0e0, 0x00dae1ed,
- 0x00ccdaf4, 0x00bbcae7, 0x009ba3bc, 0x0070748a, 0x00453b4a, 0x0047353b, 0x005c4741, 0x00705544, 0x00775035, 0x00714927, 0x006d451f, 0x00663c1d, 0x00653a1a, 0x00643a1b, 0x00643d22, 0x00674025,
- 0x006d4334, 0x006b4432, 0x00744b3e, 0x00714c43, 0x00855e56, 0x007a6d66, 0x009e9994, 0x00ebdedd, 0x00fbe2ed, 0x00fbecf8, 0x00c2c4c9, 0x00607470, 0x000e2115, 0x001b1409, 0x0042211b, 0x00733a37,
- 0x009f3624, 0x00792d23, 0x00815450, 0x009d9199, 0x009ca5bc, 0x009fa0bb, 0x009b98b3, 0x008d87a2, 0x006e728b, 0x0056657f, 0x004b5a79, 0x004b5274, 0x004c5173, 0x00475070, 0x00555e7e, 0x0068708e,
- 0x009896b6, 0x00c1bfd7, 0x00d6d5e2, 0x00cccbd2, 0x00cfcac9, 0x00d3ccd5, 0x00d5cfdb, 0x00d6cfdb, 0x00dad2de, 0x00dcd6de, 0x00e4dde1, 0x00e9e2e3, 0x00e7e0e4, 0x00e2dde2, 0x00e6e2e7, 0x00ece6ed,
- 0x00f8f8e5, 0x00fcf9f4, 0x00f6f2f8, 0x00f1edfb, 0x00eeecfb, 0x00efeef2, 0x00edebe6, 0x00e9e6dc, 0x00f0edeb, 0x00f9f4f9, 0x00f2eef6, 0x00f2eff0, 0x00f9f6f7, 0x00f9f6f7, 0x00f1eef2, 0x00f0edee,
- 0x00f3edf2, 0x00f1eded, 0x00f7f1f3, 0x00faf8f8, 0x00f9f8f7, 0x00f6f9f8, 0x00f0f2f3, 0x00eeefec, 0x00ece9ea, 0x00f1eeef, 0x00fffeff, 0x00f8f8f9, 0x00fefdff, 0x00fafbfb, 0x00f4faf6, 0x00898f8e,
- 0x005e5172, 0x005a5375, 0x00545780, 0x00535e8b, 0x00486095, 0x0049659f, 0x00425f9c, 0x00385a95, 0x00263d7e, 0x00354d87, 0x003d4570, 0x0059424d, 0x00cb412f, 0x00e13a20, 0x00d84025, 0x00dc8b71,
- 0x00e8e8de, 0x00d7d4c6, 0x007d746b, 0x005a4640, 0x00333b42, 0x00252c2e, 0x000f1916, 0x00060d0b, 0x000b0909, 0x000b0a07, 0x00080801, 0x00070800, 0x00070904, 0x00040805, 0x00010805, 0x00000805,
- 0x0006060a, 0x0006070a, 0x00020608, 0x00020406, 0x00030709, 0x00020709, 0x00000608, 0x0000020a, 0x00010112, 0x00010414, 0x00040823, 0x0015133e, 0x00202e5f, 0x001b2e69, 0x00142c68, 0x001b2e6e,
- 0x00342b65, 0x0047204a, 0x006a2b41, 0x006d1515, 0x00a83b2b, 0x00d1664d, 0x00b65535, 0x00b46343, 0x00b07d61, 0x009d7d5d, 0x00a78d6e, 0x00b29b81, 0x00bda28a, 0x00c1a991, 0x00d8c2a7, 0x00ccb89f,
- 0x00cbac93, 0x00a48d84, 0x008b7c83, 0x005f566f, 0x0033334a, 0x001d1e2e, 0x00090818, 0x002f3646, 0x00415186, 0x002b428d, 0x00233c88, 0x00263875, 0x001e2c59, 0x00161a3b, 0x001e1729, 0x003f282f,
- 0x0091665b, 0x00bf8879, 0x00a56452, 0x008c412a, 0x00913e28, 0x00853f2c, 0x00824535, 0x00754131, 0x00421713, 0x001f0303, 0x00120201, 0x000f0203, 0x001c1314, 0x001b1413, 0x00110e0c, 0x00938f8e,
- 0x00fff9fc, 0x00e2d9d5, 0x00a89a8e, 0x00b2a08c, 0x009c846b, 0x0091785c, 0x007a654a, 0x00968269, 0x00a49389, 0x00ac9e98, 0x00cac2be, 0x00e2e2e2, 0x00daddd7, 0x00d9ded9, 0x00e1e8e5, 0x00e6edf3,
- 0x00eaedf8, 0x00dfe4f5, 0x00767f9e, 0x00546176, 0x00c6d3df, 0x00d5dce1, 0x00ecf0f0, 0x00f4f8f9, 0x00f1f3f5, 0x00f1f2f4, 0x00edeff1, 0x00e8ebed, 0x00424446, 0x00050809, 0x00272b2c, 0x00caccce,
- 0x00d4dad0, 0x00646960, 0x001a1912, 0x0019190f, 0x00191a0d, 0x001b1a0d, 0x001a180e, 0x0019140e, 0x00101408, 0x0013170f, 0x001e2123, 0x00212634, 0x000e1525, 0x00060e20, 0x000c1324, 0x000c1621,
- 0x00000e09, 0x0000120d, 0x00000f13, 0x00050c1c, 0x000d1535, 0x000e1e4e, 0x000f225f, 0x00132464, 0x0009234d, 0x00042035, 0x00031927, 0x00041723, 0x00091735, 0x00111e3c, 0x00303555, 0x004f5670,
- 0x00766b5a, 0x00998771, 0x008d735c, 0x00684930, 0x007c644b, 0x008b7c6c, 0x0050473e, 0x0023211d, 0x000f180a, 0x00111408, 0x00201a13, 0x00221c17, 0x001c1a14, 0x001a1810, 0x00221c17, 0x00322720,
- 0x0059564b, 0x0054595b, 0x003c4c64, 0x003b5d87, 0x002f69aa, 0x002d69b1, 0x002c6fc0, 0x002b70c8, 0x00246fc5, 0x00266ab5, 0x003267ab, 0x003b6b9d, 0x00396894, 0x002e6099, 0x002c63ad, 0x002664bb,
- 0x00325a86, 0x002c567e, 0x00285177, 0x00244b6d, 0x0018395e, 0x00152b4d, 0x00050d2a, 0x00070515, 0x004b422c, 0x0077673e, 0x00402e10, 0x00120f07, 0x001c180e, 0x00141001, 0x00282010, 0x004a4131,
- 0x0061563a, 0x006e5f41, 0x00b79f83, 0x00e7c7ac, 0x00dfb89f, 0x00c6a38b, 0x009c7860, 0x00896349, 0x009e7c58, 0x00b9956f, 0x00caa47d, 0x00c49c72, 0x00c09469, 0x00bd8f61, 0x00b6885a, 0x00b28255,
- 0x008e7f52, 0x009a7b4e, 0x00a4794b, 0x009f6d3d, 0x00734d2b, 0x0039250f, 0x00110902, 0x001f1f15, 0x00343611, 0x00494114, 0x00504211, 0x0050410f, 0x004c3f11, 0x0047390d, 0x00403307, 0x003b2f01,
- 0x00362b00, 0x00382800, 0x00543e18, 0x009d805f, 0x00dfbc9a, 0x00e3c1ac, 0x00d9b5a2, 0x00c8a07e, 0x00b68e4e, 0x00bb9454, 0x00d1a772, 0x00d2ae87, 0x00867367, 0x00353d37, 0x000b1e20, 0x004f6e74,
- 0x00f2f5ed, 0x00f9fcf6, 0x00fefdfd, 0x00fafbfd, 0x00fdfdfe, 0x00cdd1cc, 0x00555a4d, 0x002b311b, 0x00334318, 0x00445527, 0x00556439, 0x005a6947, 0x00596d41, 0x00586d3c, 0x005b6e36, 0x005a7033,
- 0x00547026, 0x00546f26, 0x00546c26, 0x00576f2a, 0x00617934, 0x00627c32, 0x00667d38, 0x006c7f46, 0x00667e4e, 0x00667b52, 0x00687656, 0x00657257, 0x00606c5c, 0x005e6665, 0x005d5e69, 0x0057586e,
- 0x00445157, 0x003f4c57, 0x003f475d, 0x003f4562, 0x003b4166, 0x00353a63, 0x0031335f, 0x0033355f, 0x0027324c, 0x00425066, 0x008c9aa2, 0x0093a68b, 0x00788c68, 0x00728458, 0x007b8a58, 0x007b8c53,
- 0x00748b43, 0x00778847, 0x007a894d, 0x007c8854, 0x007d8452, 0x0076864b, 0x007a8e52, 0x00798e53, 0x00748f4e, 0x00748e50, 0x00758d51, 0x00758c51, 0x00788e52, 0x00778d50, 0x00798f53, 0x00798e55,
- 0x0073874b, 0x0071894a, 0x0074884d, 0x0076884e, 0x0074894d, 0x0076894e, 0x007a8a51, 0x00798c51, 0x00748a49, 0x00738949, 0x00768b4d, 0x00768b4d, 0x00788c4f, 0x007b8e53, 0x007e9055, 0x007f9256,
- 0x0078914e, 0x0079924f, 0x007e9251, 0x00819354, 0x00819456, 0x00819256, 0x00818d55, 0x007f8b53, 0x00788b4c, 0x007b8d4f, 0x007f8f56, 0x00829158, 0x00829156, 0x00839257, 0x0084925b, 0x0083915a,
- 0x007d8d54, 0x007e8f51, 0x00818f54, 0x00818e52, 0x00808c4f, 0x00828d57, 0x007c8654, 0x006d774a, 0x0056613b, 0x00454f2d, 0x003d4628, 0x003a4125, 0x003d4329, 0x003f462b, 0x00434a2e, 0x00454d31,
- 0x003f4c29, 0x00424d2c, 0x00495034, 0x004b5135, 0x00495135, 0x004a5535, 0x004d5a37, 0x004d5b35, 0x00485a29, 0x00495b2c, 0x00505c36, 0x00586041, 0x00828a76, 0x00aeb3aa, 0x00b8b7b8, 0x00bbb7c0,
- 0x00c4b8b6, 0x00c2bcb9, 0x00888488, 0x00454951, 0x003f4c69, 0x003d4d7c, 0x00283577, 0x000e1e68, 0x00041c57, 0x0010245b, 0x001c2b5b, 0x00212a44, 0x002a1e38, 0x00261635, 0x00271b3a, 0x002b2a51,
- 0x00356082, 0x00528bb0, 0x0067a3cb, 0x006ba5c8, 0x007fafca, 0x008db2ca, 0x0090b0d4, 0x0095b4e4, 0x0093c2e3, 0x0099cadb, 0x0099c1d2, 0x007d9daf, 0x00525780, 0x00504e64, 0x0085797a, 0x00a49273,
- 0x0099855b, 0x00987d51, 0x00977348, 0x00845d33, 0x00746042, 0x00666659, 0x0058676c, 0x006c90a5, 0x006ca9c0, 0x006eb0ca, 0x0074b4e0, 0x0071b3f2, 0x0078b5ea, 0x007cb3e5, 0x0080b2e1, 0x0080aedb,
- 0x0084b1ca, 0x0087a8b1, 0x007d8884, 0x00867d62, 0x00b7925e, 0x00bb9761, 0x00c09662, 0x00c79b62, 0x00c29d50, 0x00b9944f, 0x00b08c5a, 0x00876d4e, 0x00544f5d, 0x00596492, 0x005168b0, 0x002749a8,
- 0x00073a75, 0x0003317a, 0x000f3585, 0x00153382, 0x0049557d, 0x00828282, 0x009e9276, 0x00998c59, 0x00726d3b, 0x006b6948, 0x00837b64, 0x0091876d, 0x007c889d, 0x005375aa, 0x003765b3, 0x00316ac9,
- 0x003871b3, 0x00325d89, 0x00203855, 0x0016222c, 0x001d1c1e, 0x002b2a2b, 0x00444042, 0x006f6c6c, 0x00a2a7a1, 0x00d1d5d1, 0x00fefefc, 0x00fdfcf9, 0x00fdfefc, 0x00fdfefa, 0x00f6f4f2, 0x00969494,
- 0x00000102, 0x00040808, 0x000e1014, 0x00101218, 0x00121619, 0x0017181b, 0x001c181b, 0x00231d1d, 0x00241f14, 0x00241d11, 0x00291e11, 0x002e230f, 0x003a3216, 0x00423d1a, 0x00544f28, 0x00615c30,
- 0x00666831, 0x006d6c39, 0x00757041, 0x00787249, 0x0079714d, 0x007c6d58, 0x007c6459, 0x00765d53, 0x00634f3c, 0x0056432d, 0x00523f31, 0x004c3b2f, 0x004f4038, 0x00564943, 0x005e5353, 0x00675f61,
- 0x00626372, 0x0051526b, 0x00393a5f, 0x00414a79, 0x006068a7, 0x00495495, 0x00434d8e, 0x00575b98, 0x008492bd, 0x00c1cae6, 0x00f4f8ff, 0x00ebf0f7, 0x00999eb0, 0x0052576a, 0x003b3e52, 0x007e8198,
- 0x00dce1e6, 0x00edeef5, 0x00ccc8d0, 0x00cdc8cd, 0x00878285, 0x00372e2f, 0x001c0f12, 0x00291e20, 0x002a261b, 0x00362e25, 0x003f302c, 0x00412d2b, 0x00412d28, 0x00402b24, 0x00412a24, 0x003f2724,
- 0x00392627, 0x003b2a1f, 0x0047331e, 0x00564222, 0x00645727, 0x006a5c2a, 0x0063552a, 0x00514726, 0x002d2f17, 0x0018190c, 0x000b0a07, 0x00060909, 0x000f1316, 0x00242728, 0x00424443, 0x004f4e50,
- 0x0051564d, 0x0052554c, 0x004e4d48, 0x0041403b, 0x002f2d27, 0x00262424, 0x002c2828, 0x00413732, 0x004b4433, 0x005c564a, 0x00837c79, 0x009a9a9d, 0x00a8afb6, 0x00b4babc, 0x00cac7c8, 0x00ddd2d1,
- 0x00e1ece4, 0x00e6f0ec, 0x00eff5f9, 0x00f1f6ff, 0x00f8fcff, 0x00fcfdfb, 0x00fcfcf9, 0x00fffefa, 0x00f9fef5, 0x00f6faf6, 0x00fbfbfd, 0x00fffaff, 0x00fdffed, 0x00fbfee8, 0x00fefff2, 0x00fefeff,
- 0x00f7f9f5, 0x00bac1b3, 0x00434c4d, 0x0032475e, 0x003e5ca9, 0x00676fc3, 0x009395e0, 0x00acbbd8, 0x007f7c83, 0x00413a5d, 0x002b2c6c, 0x0013307c, 0x0020376e, 0x004c466f, 0x00aa93b7, 0x00eed4f5,
- 0x00dce6ec, 0x00cfd6e0, 0x00cccfdc, 0x00d4d6e4, 0x00cfd1df, 0x00c9ccd8, 0x00d1d3e0, 0x00e0e0ee, 0x00dee4eb, 0x00d6dee4, 0x00dbdde6, 0x00e9e5e6, 0x00f1efe9, 0x00eae8e5, 0x00ece8ee, 0x00f6f3fc,
- 0x00eaebf5, 0x00dce0e2, 0x00c1c6be, 0x00a5a991, 0x00808a56, 0x00768c45, 0x00739143, 0x00769344, 0x006c913c, 0x006c9041, 0x006e8f4f, 0x00708f60, 0x006f8b74, 0x0058726f, 0x003c5362, 0x00435870,
- 0x006f7483, 0x00929498, 0x00aaa49d, 0x00a89e85, 0x009b9257, 0x008b8949, 0x00828553, 0x0099a585, 0x0095b4c4, 0x005c7eae, 0x004866ab, 0x005c72bc, 0x009caee2, 0x00d1d9fe, 0x00ebf1fd, 0x00f0f1fa,
- 0x00ebf3e2, 0x00e7f3e3, 0x00e7f8f4, 0x00e2f9f8, 0x00d1eff2, 0x00cae7f8, 0x00e2f1ff, 0x00f5f4ff, 0x00ede0d3, 0x00dccec6, 0x00cabfc8, 0x00b8b8d5, 0x00a4b0d9, 0x008a95b4, 0x00b2b8cc, 0x00f6f3f6,
- 0x00fafdf7, 0x00f9fdf8, 0x00fefdff, 0x00fefeff, 0x00a7aeaa, 0x0024302a, 0x000f1818, 0x000f181a, 0x00081a10, 0x00071a13, 0x00091c17, 0x000a1a15, 0x000e1c17, 0x000c1a16, 0x000d1916, 0x000f1a16,
- 0x0005150a, 0x0005130b, 0x0009100e, 0x00010705, 0x00111615, 0x0067605e, 0x00d5bbaf, 0x00f3c19b, 0x00e98e35, 0x00ea7e22, 0x00de6b1b, 0x00d5672e, 0x00de9b88, 0x00f7d5d1, 0x00f8e4ea, 0x00e3e0ee,
- 0x00d0e6d1, 0x00dfeee7, 0x00ebf2f9, 0x00cbcbe6, 0x0077729c, 0x004c4167, 0x00463456, 0x005c4658, 0x006a5e47, 0x00695d36, 0x006d562f, 0x006f4c25, 0x0069421a, 0x00653b13, 0x00693915, 0x006f3b17,
- 0x006a3d1c, 0x00673c25, 0x006b3f36, 0x00663f3e, 0x00906f73, 0x00a6a3a8, 0x00aaaeb8, 0x00e5dae8, 0x00e9dce2, 0x00ece9ec, 0x00eaeff4, 0x00aec1be, 0x002c4343, 0x000e171d, 0x00312531, 0x00513249,
- 0x005d2e4f, 0x00472952, 0x00403267, 0x00414984, 0x00445094, 0x004b5299, 0x00474790, 0x003d3a85, 0x00202f77, 0x000e2a74, 0x00162c75, 0x00252f65, 0x001d2a61, 0x00122257, 0x0015225a, 0x001f2c65,
- 0x0035456c, 0x006c7899, 0x00b9bcd5, 0x00d3d3e5, 0x00d2cfd8, 0x00d1cdde, 0x00d9d0e5, 0x00d8d0e1, 0x00d1d2d7, 0x00d8d9da, 0x00e5e1e3, 0x00eae3e7, 0x00ece1e2, 0x00e9dee5, 0x00efe3e9, 0x00f6e9ef,
- 0x00f3f4dd, 0x00f5f5e4, 0x00fbf2f4, 0x00f9f1fb, 0x00f6f2fa, 0x00f8f5f3, 0x00f5eeec, 0x00ebeae2, 0x00e8eee3, 0x00ebf1ec, 0x00ededf0, 0x00f4f0f3, 0x00fbf7f9, 0x00faf9f9, 0x00faf7f9, 0x00fbf6f9,
- 0x00f0f2ef, 0x00ededeb, 0x00f0efef, 0x00f5f4f4, 0x00fbfaf9, 0x00fbf9f9, 0x00f9f6f8, 0x00f8f6f8, 0x00ebf1e9, 0x00eef2ec, 0x00fbfbfb, 0x00faf9f9, 0x00fdfdfe, 0x00fefcfe, 0x00f8f5f7, 0x00b6b2b6,
- 0x00b1636a, 0x009e555d, 0x008e4a58, 0x00864c5c, 0x007d5266, 0x00795a6d, 0x006d5468, 0x00736172, 0x00524b4d, 0x00524747, 0x00754a49, 0x00923522, 0x00d3320f, 0x00d43809, 0x00d95c31, 0x00efb899,
- 0x00cfd5be, 0x00d6d3c6, 0x00b5a6a3, 0x008f7b7b, 0x00687575, 0x00707774, 0x006e6e68, 0x005d5b56, 0x003d432e, 0x0033351d, 0x002d2b15, 0x00292812, 0x00262611, 0x00212310, 0x001b1e0c, 0x00151807,
- 0x000f1504, 0x000d1503, 0x00101404, 0x000c0f00, 0x00080f00, 0x000a1002, 0x00080a02, 0x00030603, 0x00000300, 0x00000500, 0x0002040b, 0x000b0421, 0x00101c41, 0x00172d53, 0x00283a66, 0x003b3b6f,
- 0x00461f4c, 0x0065223f, 0x00b15665, 0x00b5544c, 0x00a14422, 0x00a64318, 0x00b7562a, 0x00b36233, 0x00b48850, 0x00c4a76e, 0x00c1a072, 0x00c3a077, 0x00b8916b, 0x00a57f59, 0x00d3ab8a, 0x00bb9673,
- 0x00a77c47, 0x00bd986c, 0x00b59177, 0x009a786d, 0x00573e35, 0x002e1f19, 0x004e4143, 0x00676573, 0x0038507d, 0x001d458a, 0x00193982, 0x001f305c, 0x001c203d, 0x00251823, 0x00523237, 0x007a4c43,
- 0x00be8163, 0x00b96d53, 0x0099402c, 0x00993a2d, 0x00ad4b42, 0x008b4f47, 0x00582f29, 0x00361110, 0x000b0200, 0x00020200, 0x00030100, 0x00030303, 0x000f0b0a, 0x001a1111, 0x001b0b10, 0x005f4b4f,
- 0x00e5e7e1, 0x00d6d7ce, 0x00b8b1a4, 0x00796d5a, 0x006b5942, 0x00614d33, 0x00634a36, 0x00735c4d, 0x00847b6a, 0x00989386, 0x00968f8c, 0x00b2b2b7, 0x00c6c7c4, 0x00c6c6c1, 0x00c2c3c4, 0x00bfc1ca,
- 0x00b4bdcb, 0x00b5c0d1, 0x00b5bfd3, 0x008d98a9, 0x00b2bec4, 0x00b5bcc0, 0x00c9cace, 0x00dbdbde, 0x00e7f0ec, 0x00f0f7f3, 0x00f3f5f7, 0x00dddde1, 0x003a3b3d, 0x00050809, 0x003d3f42, 0x00dfdfe2,
- 0x00cdcdca, 0x0052524d, 0x001b1811, 0x001f1f13, 0x001b1c0f, 0x001c1c0f, 0x001b1d0f, 0x001a1a0d, 0x00181a12, 0x00191712, 0x001b1b1a, 0x001c1f2a, 0x00161727, 0x00171b2d, 0x00131928, 0x000d141d,
- 0x00020a00, 0x000f1007, 0x00121304, 0x00130c02, 0x00130808, 0x00121236, 0x000f1c57, 0x00131e64, 0x000a1e43, 0x00051d1d, 0x00001a02, 0x00001905, 0x000a1836, 0x00131e4f, 0x001a2154, 0x00242c52,
- 0x003d3435, 0x0062554c, 0x00766355, 0x00634a36, 0x00604d38, 0x00726557, 0x004f4a3f, 0x00272922, 0x00191814, 0x001d1812, 0x0018150c, 0x001e2114, 0x0025271b, 0x002a2518, 0x0042342b, 0x00785f53,
- 0x00997f70, 0x00675852, 0x00242628, 0x001d3545, 0x001a4b67, 0x002a4b69, 0x00345370, 0x00365d82, 0x002e598d, 0x00285481, 0x002b4f78, 0x002d4866, 0x00293a52, 0x00263652, 0x0027385a, 0x001d3058,
- 0x00102841, 0x000d233b, 0x000a2339, 0x00082036, 0x00041025, 0x00080d1a, 0x000b090c, 0x001e0f09, 0x00785b38, 0x00a58356, 0x00533a19, 0x000d0c09, 0x0013140d, 0x00111104, 0x001c1908, 0x0038311f,
- 0x00695740, 0x007a6248, 0x00a38568, 0x00be997b, 0x00c99c7f, 0x00be967a, 0x00a78166, 0x009a7356, 0x009b7751, 0x00a98259, 0x00b78e63, 0x00b78d5e, 0x00ba8c5d, 0x00be8f5d, 0x00bb8a5a, 0x00b58255,
- 0x00998256, 0x009d794b, 0x00936634, 0x00925c2a, 0x00754c29, 0x00442a13, 0x00160c00, 0x001c1c0a, 0x003a3614, 0x00514213, 0x004f3e09, 0x004e4009, 0x00473e0c, 0x0043390b, 0x00393007, 0x00362b04,
- 0x00362604, 0x00351e00, 0x00715634, 0x00c6a484, 0x00e3b792, 0x00efac7f, 0x00f4a871, 0x00df955c, 0x00b37a41, 0x00a67846, 0x00ac8b5e, 0x00b09876, 0x00ac9f86, 0x00918b73, 0x0049442c, 0x007c7a61,
- 0x00fcfcfc, 0x00f9f9fa, 0x00fdfcfe, 0x00fbfbfc, 0x00fbfcfc, 0x00c0c4be, 0x003f4536, 0x0029301b, 0x00394720, 0x0049592d, 0x0057663b, 0x005a6b44, 0x00586e3a, 0x005a6f37, 0x005c7231, 0x005b732d,
- 0x00597127, 0x00586f2e, 0x0053692f, 0x00546a37, 0x005a6e43, 0x005f7346, 0x0062754c, 0x00637558, 0x005d6d65, 0x00576462, 0x00535b5d, 0x004d5559, 0x00414852, 0x003e435a, 0x003d3d5e, 0x00393762,
- 0x00313b5b, 0x002f385f, 0x00313864, 0x00383d6e, 0x00363d73, 0x00373e74, 0x0031366f, 0x00363c71, 0x0033386d, 0x002f3566, 0x004d5675, 0x0081918a, 0x0091a38e, 0x007b8d6b, 0x00788a5b, 0x00798c51,
- 0x007b8a45, 0x00727d3d, 0x00717b3d, 0x007c804f, 0x007e8154, 0x0074854f, 0x00728b4e, 0x00708b4e, 0x0070884a, 0x006e8649, 0x006c8447, 0x006c8548, 0x006d8548, 0x006d8648, 0x0070884c, 0x006e874b,
- 0x00718547, 0x00708547, 0x006f8446, 0x00708446, 0x00728548, 0x00718547, 0x00728447, 0x00748749, 0x00738749, 0x0073884a, 0x0075894b, 0x00788d4d, 0x00798e4e, 0x007a8f51, 0x007b9053, 0x007b9052,
- 0x00798f4e, 0x007a904f, 0x007d9051, 0x007e9152, 0x007e9353, 0x007e9254, 0x007e9054, 0x007d8f53, 0x007f9054, 0x007f9054, 0x00809056, 0x00819156, 0x00819155, 0x00809154, 0x007f9055, 0x00809155,
- 0x00818f5a, 0x00808e56, 0x00818e57, 0x00818e55, 0x007e8b4f, 0x007d8a4e, 0x0079874b, 0x00728048, 0x00687444, 0x005e6a3c, 0x00586337, 0x00566136, 0x00586237, 0x005a6539, 0x005c673c, 0x005c673c,
- 0x005e6b3c, 0x00606d3e, 0x00646f44, 0x00646f43, 0x00626d41, 0x00616f3e, 0x0061723e, 0x005f723b, 0x00626f3a, 0x0062713e, 0x00636f44, 0x006d7654, 0x00a5ac98, 0x00d7ddd4, 0x00dfe1e2, 0x00e2e3e9,
- 0x00d7ebe3, 0x00d5eee4, 0x008aa59d, 0x003b5c5b, 0x00365c72, 0x00446f97, 0x00305b93, 0x000f3f81, 0x00073a82, 0x0026579b, 0x004574b2, 0x004f74a4, 0x00485f92, 0x002f4379, 0x00152e64, 0x001c3b75,
- 0x004276b1, 0x0066a3de, 0x0071afe5, 0x006aa3d6, 0x0081aedb, 0x0091b8da, 0x0081a7cc, 0x0079a0db, 0x0082b4f3, 0x0092caf4, 0x0091c5e3, 0x006993b0, 0x0039426c, 0x00413a52, 0x008a7872, 0x00b39970,
- 0x00c09466, 0x00be8f5e, 0x00b78455, 0x00b68558, 0x00a88e71, 0x0089867b, 0x0067787d, 0x00729baf, 0x006faacc, 0x006aaad1, 0x006eade1, 0x0071b2f2, 0x0074b2eb, 0x0076b1e6, 0x0078acd9, 0x0079a5cd,
- 0x007191a4, 0x006f7c85, 0x0088837b, 0x009b856f, 0x00a87f52, 0x00a98255, 0x00b98f5d, 0x00c19459, 0x00bd8e40, 0x00b7893c, 0x00b18743, 0x00a38250, 0x006c615d, 0x00424766, 0x0030407b, 0x001c3788,
- 0x0007274d, 0x00031d50, 0x000a245d, 0x00102865, 0x00374162, 0x00686a6c, 0x00948d76, 0x00948a5e, 0x00706c3d, 0x0070704b, 0x00817d59, 0x009d8968, 0x008190a1, 0x00537db6, 0x003373c3, 0x002e77d7,
- 0x00316eb2, 0x00285179, 0x0014283e, 0x00151b20, 0x001b1613, 0x0022211e, 0x00353635, 0x005d5d5c, 0x009a9b98, 0x00d0d2d0, 0x00fefefc, 0x00fcfdfa, 0x00fbfdfa, 0x00fefffb, 0x00f8f6f2, 0x009b9998,
- 0x00000100, 0x0006090a, 0x000b0c12, 0x000b0c13, 0x000c0f15, 0x00101014, 0x00151012, 0x001b1514, 0x001f150d, 0x001f140d, 0x0022160b, 0x00271d0a, 0x0030290d, 0x003d3716, 0x00565229, 0x006c693c,
- 0x007b7949, 0x00888557, 0x008b855a, 0x008c865f, 0x00807c58, 0x00776e5a, 0x00685a50, 0x005f514a, 0x004f423b, 0x0045382e, 0x0045382d, 0x003f3528, 0x003f392c, 0x0045433b, 0x004d4c4c, 0x0056545b,
- 0x0044466d, 0x002e3365, 0x00212965, 0x00454d94, 0x00606ec1, 0x00303c93, 0x000f1c71, 0x00111d6d, 0x001b2b65, 0x003f4c81, 0x00909cbd, 0x00dfe6ee, 0x00eaeff8, 0x00bdc0d1, 0x0043495a, 0x001e2334,
- 0x008789a2, 0x00e2e3f1, 0x00d2d1e1, 0x00a9abb9, 0x00adaeb4, 0x008e8b8c, 0x00342d28, 0x002a2119, 0x0040332a, 0x004b3b31, 0x00563f35, 0x00563b31, 0x00563a30, 0x0053372c, 0x004c2f25, 0x00452720,
- 0x003f2328, 0x00452c21, 0x00583d22, 0x006d5427, 0x007f6b2a, 0x00826f2c, 0x0076662a, 0x00615626, 0x00403e27, 0x00242319, 0x000c0d0b, 0x00040807, 0x000f1314, 0x00272a29, 0x004e524d, 0x006a6c6a,
- 0x00787a76, 0x007c7b77, 0x007a7774, 0x00706d68, 0x005c5750, 0x004c4641, 0x00372f28, 0x00332318, 0x002a1a09, 0x002d2014, 0x00514742, 0x00696969, 0x006c7278, 0x006c7072, 0x00757373, 0x00857f7d,
- 0x0077828c, 0x006e7a89, 0x00838da3, 0x0097a3bd, 0x00aeb8cc, 0x00c2cbd9, 0x00d0d8df, 0x00dfe4e4, 0x00eef0f0, 0x00f6f6f8, 0x00f8f4f9, 0x00fbf2fe, 0x00fafbed, 0x00fbfeed, 0x00fafef1, 0x00fbfefb,
- 0x00f6f6f2, 0x00aeb1a9, 0x00333c3e, 0x00364b62, 0x003d56ab, 0x006771cc, 0x009fa5f0, 0x00bdc8e8, 0x009d9ca4, 0x00686785, 0x0046497a, 0x00364884, 0x0026355d, 0x00292645, 0x006e5c7e, 0x00c3a8d2,
- 0x00e7e8f7, 0x00ebedfc, 0x00e1e3f3, 0x00e0e2f3, 0x00dcddef, 0x00d6d7e9, 0x00d4d5e8, 0x00dee1f2, 0x00e4e6f8, 0x00dce0f2, 0x00dcdeed, 0x00e5e7f7, 0x00e8ebfd, 0x00e2e6f8, 0x00dbdff3, 0x00e4eaf8,
- 0x00dae0e6, 0x00bcc6bf, 0x008e9c82, 0x00809062, 0x00758a45, 0x00728e43, 0x006c8c40, 0x006b8a3c, 0x00698936, 0x00698937, 0x0069883a, 0x006b8942, 0x006f8b50, 0x00688353, 0x005a734e, 0x005a7252,
- 0x00857479, 0x00958380, 0x00a68f82, 0x00b39a82, 0x00b29c72, 0x00a4966b, 0x0096906f, 0x00acb0a2, 0x0095adcf, 0x004d68a6, 0x0049609d, 0x00909ac6, 0x00dae3fc, 0x00e1e9fd, 0x00e4effb, 0x00e8f0f9,
- 0x00ebf2ef, 0x00ecf0e9, 0x00ecf2e8, 0x00eff3e7, 0x00eff5e7, 0x00e4eff7, 0x00e6f3fd, 0x00eeeffa, 0x00f5eae0, 0x00f0e4de, 0x00d2cacf, 0x00c0c0d4, 0x00d6dffa, 0x00d6ddf0, 0x00d5d7e3, 0x00f7f2f1,
- 0x00fcfcfb, 0x00fbfdfb, 0x00fefdff, 0x00fefeff, 0x00a6ada9, 0x0024302a, 0x000d1815, 0x000d1916, 0x000c1a14, 0x000b1a16, 0x000a1b18, 0x00091b16, 0x00091a14, 0x000b1a15, 0x000a1812, 0x000b1a12,
- 0x0008140a, 0x0007110c, 0x00020906, 0x000b0f0a, 0x005b6359, 0x00d3c6b8, 0x00f3cbae, 0x00e69a62, 0x00f37816, 0x00f6781a, 0x00e37323, 0x00e79667, 0x00f4d7cf, 0x00f9eaef, 0x00eae5eb, 0x00e5e3e8,
- 0x00dfeacb, 0x00dce6d6, 0x00dfe6e4, 0x00e7e8fb, 0x00d5d0f6, 0x00a69ec9, 0x005a517d, 0x003a3453, 0x0047474c, 0x005a5b55, 0x006b6854, 0x00726744, 0x00736036, 0x00725828, 0x00704c1c, 0x00714717,
- 0x00694012, 0x0066411c, 0x005e3f23, 0x004e3825, 0x006a6052, 0x00b6bfbf, 0x00d7e3ea, 0x00e5e4ef, 0x00efe1e7, 0x00f2eaea, 0x00ebe8e5, 0x00dfe7e1, 0x007a8c8d, 0x001d2c39, 0x0020273b, 0x00343350,
- 0x0034346d, 0x002b3572, 0x001d2f72, 0x001a3277, 0x001b2d75, 0x00272e77, 0x00262871, 0x002c2d79, 0x00222d89, 0x00142a8b, 0x00152b86, 0x001c2d74, 0x00162b73, 0x00142b76, 0x001b317d, 0x001f3681,
- 0x00213474, 0x002d3d75, 0x007982ad, 0x00c0c7e6, 0x00cfd4e5, 0x00ced0de, 0x00d4d0dc, 0x00d4d0d9, 0x00d5d3d2, 0x00dedcd9, 0x00e7e3dc, 0x00eae2dc, 0x00ede3db, 0x00eee5dd, 0x00eee4e2, 0x00f3e9e5,
- 0x00f5f3e9, 0x00f9f6f1, 0x00f8f3ef, 0x00f7f0f5, 0x00fbf4ef, 0x00fdf6f1, 0x00f5f0ea, 0x00eaede3, 0x00ebefe9, 0x00eff4f3, 0x00eeeff1, 0x00f9f6f6, 0x00fdfafb, 0x00fdfafa, 0x00faf8f7, 0x00fbf8fa,
- 0x00f6f6f6, 0x00f1f0f1, 0x00eeeced, 0x00f2f1f1, 0x00faf8f8, 0x00faf8f7, 0x00f8f6f5, 0x00f9f9f8, 0x00f0f4f1, 0x00f2f4f2, 0x00fcfcfd, 0x00fefeff, 0x00f7f8f7, 0x00fbf9f8, 0x00f5f1ed, 0x00e4deda,
- 0x00eed29c, 0x00dfbd8b, 0x00caa276, 0x00be8d67, 0x00b06c4e, 0x00b45f47, 0x00b8513c, 0x00be4836, 0x00ca3b2a, 0x00c12616, 0x00c13220, 0x00b03520, 0x00b02704, 0x00bf4d2a, 0x00e19d74, 0x00e5d4b2,
- 0x00c9d2c4, 0x00c8c1c0, 0x00c2b4b5, 0x00b4a3a2, 0x007b8d81, 0x00676b5d, 0x0073725d, 0x007d7b66, 0x00736f52, 0x006e6845, 0x006f6643, 0x006b633d, 0x00676138, 0x00615d33, 0x00555328, 0x00504f24,
- 0x00464824, 0x00464822, 0x0041421c, 0x003e3f19, 0x00393c16, 0x00343812, 0x002c300e, 0x002a2d0f, 0x001f260a, 0x00151a06, 0x000b0903, 0x0011020b, 0x00000816, 0x00041224, 0x000c172c, 0x001a0d2a,
- 0x00520829, 0x008b243b, 0x00ce5d64, 0x00c56048, 0x00a65a25, 0x00b7662e, 0x00d5884d, 0x00d59459, 0x00c89d5e, 0x00c5a264, 0x00bd9861, 0x00b58c58, 0x008e5f30, 0x00714314, 0x00b78a5d, 0x00a4794e,
- 0x00ab753c, 0x00bf8f59, 0x00b08455, 0x00b68961, 0x00ac8059, 0x00a27a59, 0x00ab8873, 0x008f7b74, 0x00434b6b, 0x002b4479, 0x001d3064, 0x0020223d, 0x002f1e2e, 0x00593837, 0x00865346, 0x00864227,
- 0x00a34e30, 0x00a64d36, 0x00ac5544, 0x00a54d49, 0x00742326, 0x00411213, 0x00250c0c, 0x00180506, 0x00070404, 0x00010200, 0x00020200, 0x00000100, 0x00130907, 0x001b0502, 0x002a0c0a, 0x00431c1b,
- 0x00c4c4c0, 0x00e6e5de, 0x00bab3aa, 0x009d9186, 0x00a99a8b, 0x00827260, 0x00655543, 0x005b4b3b, 0x004e4638, 0x00655d53, 0x0084807a, 0x00c8c5c9, 0x00e6e8e2, 0x00e6eae1, 0x00e1e7e0, 0x00e3eae9,
- 0x00e2e8f3, 0x00bdc3d1, 0x0099a0af, 0x009098a3, 0x00c1cbcc, 0x00ced3d4, 0x00d5d7d9, 0x00d3d6d7, 0x00dde0e1, 0x00eaedee, 0x00ebedf0, 0x00adafb2, 0x00111415, 0x00000504, 0x004c5050, 0x00edefef,
- 0x00c3c2bd, 0x0044433c, 0x00201c14, 0x00222215, 0x00232316, 0x00201e11, 0x001e1f11, 0x001b1c0f, 0x001d1c15, 0x001f1c15, 0x00191616, 0x0017171d, 0x00211c2d, 0x00201d2c, 0x001a1723, 0x00130f10,
- 0x001d1706, 0x0030290b, 0x00493718, 0x00443012, 0x00391a07, 0x001e1820, 0x00191a3d, 0x00181952, 0x00101a47, 0x00081a24, 0x00021814, 0x00021b16, 0x00141e52, 0x0016205b, 0x0010184d, 0x000d1737,
- 0x002c2a32, 0x00352d2c, 0x0051423b, 0x005a4435, 0x00503e2c, 0x00584b3f, 0x004b463e, 0x00292b28, 0x00231f1d, 0x0026211c, 0x001c1910, 0x00182212, 0x00313227, 0x00342e23, 0x0054433a, 0x00907466,
- 0x00ae8e76, 0x00765e4d, 0x00241c14, 0x00111c1e, 0x00022430, 0x001e2c30, 0x0030393d, 0x00394755, 0x00234057, 0x00112e43, 0x0011293d, 0x00112231, 0x00131923, 0x0012131c, 0x0011111c, 0x00060914,
- 0x00000a14, 0x00000a17, 0x00061424, 0x000a1627, 0x00070a16, 0x0008060a, 0x00140d06, 0x0034200e, 0x008d6c47, 0x00a88355, 0x00543917, 0x00090c0a, 0x00110f0b, 0x00111207, 0x00181305, 0x002a2315,
- 0x0064543c, 0x00725a40, 0x00795a3d, 0x007f593a, 0x007d4e30, 0x007f5639, 0x00957053, 0x00a67f61, 0x00a37b58, 0x00a47a53, 0x00b2875c, 0x00b68a5a, 0x00ba8b5b, 0x00c0905f, 0x00bc8b5e, 0x00b48258,
- 0x00a18053, 0x00a07645, 0x009a6837, 0x00955f2d, 0x00744e2d, 0x004c3622, 0x00241d10, 0x00272916, 0x00483b1a, 0x0056400e, 0x00523b04, 0x004d4008, 0x00463c0b, 0x003d370c, 0x00393212, 0x002e280d,
- 0x002e210f, 0x00291909, 0x00725b4d, 0x00c3a38f, 0x00dab1a2, 0x00e09770, 0x00e1895b, 0x00d18254, 0x00b8784c, 0x00ae7a4d, 0x00b3875a, 0x00a58557, 0x00ab946f, 0x00bea986, 0x0080704f, 0x009d8f6f,
- 0x00fdfbfa, 0x00fafafb, 0x00fffeff, 0x00fcfdfd, 0x00f8f8f8, 0x00b3b7b1, 0x00353b2c, 0x0028311b, 0x00434d29, 0x00505e33, 0x005a6a3c, 0x00596d3b, 0x00576d37, 0x00596f33, 0x005f7537, 0x00617938,
- 0x005d7136, 0x005c7041, 0x00596d49, 0x00586b52, 0x005b6a5f, 0x00576659, 0x00526158, 0x004c5a5d, 0x00475066, 0x003c455e, 0x00404661, 0x003e4557, 0x00484c61, 0x00515570, 0x0064658b, 0x006a6997,
- 0x00545c84, 0x00414a72, 0x00333a69, 0x00313868, 0x00333a71, 0x00363e73, 0x00393e76, 0x00383f72, 0x00343a70, 0x002f3667, 0x00323c5f, 0x005a696d, 0x0093a39b, 0x008c9c85, 0x00798963, 0x00768651,
- 0x007a8546, 0x00707c3c, 0x00646e35, 0x006c713e, 0x00797b51, 0x0071834b, 0x006f874b, 0x0071894b, 0x006f8548, 0x006a8144, 0x00667d42, 0x00667f43, 0x00688044, 0x00688043, 0x00677f42, 0x00687f42,
- 0x006d8143, 0x006c8043, 0x006b7f42, 0x006b7f40, 0x006c7f42, 0x006c8041, 0x006d8142, 0x00708445, 0x00738648, 0x00728648, 0x00728547, 0x00748949, 0x00758a49, 0x00758a4a, 0x00758b4b, 0x00748b49,
- 0x007a8f4f, 0x007a8f4e, 0x007b8f4f, 0x007b8f4f, 0x007b9050, 0x007c9152, 0x007d9154, 0x007e9255, 0x00829256, 0x00829255, 0x00809154, 0x007e8f52, 0x007d8f52, 0x007c8f52, 0x007c8e51, 0x007c8f50,
- 0x007e8d58, 0x007b8a51, 0x00808e56, 0x00818e56, 0x007f8d52, 0x007b894c, 0x007b8a4c, 0x007a884d, 0x0074814c, 0x006f7d48, 0x006a7744, 0x00667442, 0x00657240, 0x006a7845, 0x006e7c49, 0x00707d4a,
- 0x0073834d, 0x0074824d, 0x00778351, 0x0077834f, 0x0074824e, 0x00728349, 0x00708347, 0x006e8243, 0x00738248, 0x0075834b, 0x00768252, 0x007c855f, 0x00bbc2ae, 0x00eef2ea, 0x00f7f8f8, 0x00f9f9fd,
- 0x00e9fdfb, 0x00e2fdf4, 0x0094b0a7, 0x00406059, 0x00456576, 0x005f83a4, 0x00567aac, 0x002c5592, 0x00184189, 0x003663a5, 0x006b99d6, 0x0076aadd, 0x006792ce, 0x00426aad, 0x00214a90, 0x002b559f,
- 0x00588fd1, 0x007bb3f2, 0x0075aae6, 0x006b98d2, 0x008eafe9, 0x009ec2e7, 0x007da3d0, 0x006086cd, 0x005b8fdc, 0x0070abe3, 0x0087bfe8, 0x0071a1c1, 0x0049577f, 0x00444156, 0x00826f6a, 0x00ae916f,
- 0x00bc885f, 0x00b78255, 0x00ba8458, 0x00c59269, 0x00ba9d87, 0x00999391, 0x007c8c9a, 0x00749ab7, 0x0071a4d4, 0x006ea8d6, 0x0071addd, 0x0075b5e0, 0x0070aed8, 0x0067a1ca, 0x006394bc, 0x00628aab,
- 0x00506679, 0x00585c64, 0x00867a75, 0x00988074, 0x0096725e, 0x009f785b, 0x00b98d67, 0x00bb8b59, 0x00af7a32, 0x00af7c2f, 0x00bc8b43, 0x00c39a5d, 0x0097826d, 0x00524d57, 0x002a3053, 0x0017275d,
- 0x00051421, 0x00000a20, 0x00061432, 0x00081738, 0x0032374a, 0x0073706a, 0x00a29981, 0x00a6986c, 0x0091895d, 0x008e9065, 0x0097916a, 0x00ad9571, 0x008390a7, 0x004775b2, 0x002d6ec7, 0x002673d5,
- 0x00326eae, 0x002c5276, 0x001b2c3a, 0x001a1e1b, 0x0018120d, 0x00181915, 0x00292d2a, 0x00454644, 0x00878784, 0x00cdcfcd, 0x00fdfefc, 0x00fdfdfa, 0x00fdfdfa, 0x00fdfdf9, 0x00fafaf6, 0x00a0a19e,
- 0x00030505, 0x0007090b, 0x000d0d13, 0x00090911, 0x000b0d14, 0x000b0b0f, 0x00100c0c, 0x00150f0d, 0x001e120e, 0x0020150e, 0x0020150e, 0x0020170c, 0x0028210f, 0x003c361d, 0x00605b3c, 0x007f7a56,
- 0x0096916a, 0x009e9b75, 0x00a29c79, 0x00a09a7c, 0x00908d71, 0x00787564, 0x005b564d, 0x004b4441, 0x00403536, 0x00372d29, 0x00392f29, 0x00353020, 0x00323225, 0x00373a37, 0x003c3f4a, 0x00414358,
- 0x00273065, 0x0016205c, 0x000d155d, 0x00253081, 0x003947a2, 0x001e2d87, 0x000e1e74, 0x00101d6c, 0x00041051, 0x00010b43, 0x00283260, 0x0080859b, 0x00dfe2f0, 0x00f0f4f9, 0x00969cad, 0x003f3f54,
- 0x00353a58, 0x009495b8, 0x00e5e9f7, 0x009b9fb5, 0x009a9ea6, 0x00c1c0c3, 0x00615d58, 0x002d251f, 0x004b3a33, 0x00594339, 0x0064493c, 0x00644539, 0x00644439, 0x005d3d34, 0x00513129, 0x00482620,
- 0x0042242a, 0x00492b23, 0x005e4026, 0x00765a2b, 0x00886f2c, 0x008a752e, 0x007e6d2c, 0x00695d27, 0x00403d25, 0x00202014, 0x00090a08, 0x00010302, 0x00070a0a, 0x001b1e1d, 0x004d504c, 0x007b7a77,
- 0x0091908d, 0x00979692, 0x00979390, 0x008e8b87, 0x007c7771, 0x006a6259, 0x00534538, 0x004c3727, 0x004e3424, 0x00523e30, 0x00796c63, 0x008d8d89, 0x008a8f93, 0x00838386, 0x007a7677, 0x0076726f,
- 0x003e4d60, 0x001d2d46, 0x00263457, 0x0031416a, 0x00405075, 0x0051607d, 0x005e6e82, 0x006f7e8b, 0x00868a9e, 0x00989ab2, 0x00b7b5d1, 0x00cac6e4, 0x00e1e8e4, 0x00e9f2eb, 0x00f0f8f4, 0x00f7fbff,
- 0x00f3f1f3, 0x00a0a19e, 0x002e363d, 0x00374962, 0x003f58a9, 0x006472cc, 0x00a3affa, 0x00c0c6ee, 0x00a1aab3, 0x00838aa4, 0x00767aa3, 0x00747dae, 0x00585f80, 0x00292842, 0x00342748, 0x00715886,
- 0x00a0a1ba, 0x00c5c7de, 0x00e6e7fc, 0x00e8eafd, 0x00e6e7f9, 0x00e2e3f7, 0x00dcdef5, 0x00dee1fb, 0x00e7e8ff, 0x00e1e3fa, 0x00d9ddf8, 0x00d3dffc, 0x00d4ddfd, 0x00c3cff4, 0x00b7c1e5, 0x00c0cde7,
- 0x00c4d2d7, 0x00a4b5a5, 0x00778b66, 0x00748c53, 0x00738f40, 0x00708e45, 0x006a8a44, 0x00698842, 0x006a873d, 0x006b893b, 0x006d8b3d, 0x006a883b, 0x006b8540, 0x006b8347, 0x006e8551, 0x00708757,
- 0x0087746c, 0x008b756b, 0x009f8375, 0x00b19380, 0x00bda184, 0x00b6a287, 0x00b4a996, 0x00c7c6c4, 0x009eaedb, 0x005c73b5, 0x007385c1, 0x00bec1d3, 0x00e8edfb, 0x00e3eaf8, 0x00e3eafd, 0x00e5ebfc,
- 0x00e6ebf2, 0x00e9ecf1, 0x00efecf0, 0x00f4eef0, 0x00fceff0, 0x00eaecfa, 0x00e7f0f9, 0x00ecedf5, 0x00f9f0e5, 0x00f6efe6, 0x00e0dbdc, 0x00bcbbc7, 0x00c8cbe1, 0x00e8e8f6, 0x00edebf5, 0x00fcf5f5,
- 0x00fdfdfd, 0x00fbfefb, 0x00fdfffd, 0x00fdfefd, 0x00a7acab, 0x00252e2c, 0x000e1816, 0x000d1a15, 0x000d1b16, 0x000c1a16, 0x00091915, 0x00071a14, 0x00051813, 0x00081712, 0x000a1611, 0x000a150e,
- 0x00071008, 0x00081106, 0x00070705, 0x002a2e25, 0x00b6b9b3, 0x00f2e6d0, 0x00f4b890, 0x00e18447, 0x00fc771a, 0x00f3761f, 0x00f4924d, 0x00f6c79e, 0x00fbf2f3, 0x00f2eef5, 0x00edeaf3, 0x00f3e9ef,
- 0x00eaeeda, 0x00e0e5d9, 0x00dfe3e0, 0x00e5e6ef, 0x00e9e7f9, 0x00e3e1fb, 0x00aaaac9, 0x005e607f, 0x002b2b47, 0x00393b52, 0x004f5460, 0x0062665c, 0x0075705e, 0x00786753, 0x00735841, 0x00715036,
- 0x0069472c, 0x0060472d, 0x00584730, 0x00413b28, 0x00505246, 0x00939c9d, 0x00ebeff8, 0x00ebe6ed, 0x00e9d7d9, 0x00e8dbd6, 0x00e9dfdb, 0x00edece5, 0x00c0c8cb, 0x00485360, 0x00172134, 0x0029304a,
- 0x00183149, 0x0017344e, 0x00183452, 0x001a3654, 0x001c2f4d, 0x00202b47, 0x001c2440, 0x00202647, 0x001a275a, 0x000d225f, 0x00061b60, 0x0007175d, 0x00081f6d, 0x00112a7d, 0x001b348b, 0x001e398c,
- 0x00263f8a, 0x00223978, 0x004e5c90, 0x008f9bc1, 0x00cfd5ed, 0x00d6d9e2, 0x00d7d5d8, 0x00d4d2d2, 0x00d8d6d4, 0x00ddded7, 0x00e8e5dd, 0x00e6e3d4, 0x00ece5dd, 0x00ece8df, 0x00ece6df, 0x00efe8e4,
- 0x00f3f1f5, 0x00f5f4f5, 0x00f8f4f5, 0x00f9f3f5, 0x00fbf4ee, 0x00f8f1ed, 0x00f9f4ef, 0x00edece9, 0x00ebeceb, 0x00eef3f4, 0x00eff2f1, 0x00faf9f8, 0x00fef9fb, 0x00fcf9fa, 0x00f9f7f8, 0x00f8f7f9,
- 0x00faf8f7, 0x00f6f4f5, 0x00f1eeef, 0x00f1efef, 0x00faf7f8, 0x00fbf6f6, 0x00f7f4f3, 0x00f5f4f5, 0x00f2f4f3, 0x00f6f8f6, 0x00fffffe, 0x00f9f9f8, 0x00fdfdfc, 0x00fefaf7, 0x00e2dcd7, 0x00a1958f,
- 0x00b39c7a, 0x00caae8d, 0x00e1c1a5, 0x00e2bea3, 0x00eab8a4, 0x00edaf9b, 0x00e69b8a, 0x00d67d6d, 0x00d26a5b, 0x00bd5340, 0x00b14333, 0x00b54a3a, 0x00c86050, 0x00d88d7a, 0x00ecceb5, 0x00ced3b8,
- 0x00bfcfc2, 0x00bcb7ba, 0x00b0a0a7, 0x00aa9898, 0x00919f8a, 0x0083826c, 0x00615b40, 0x00534d31, 0x006f623f, 0x008f8057, 0x009e8d63, 0x0099895a, 0x009b8c59, 0x00978956, 0x008e824e, 0x00887e4a,
- 0x007c7749, 0x007b7544, 0x00787240, 0x00726d3b, 0x00716c3c, 0x00666333, 0x00636033, 0x00625f35, 0x00625b39, 0x00555231, 0x00453e27, 0x00321a17, 0x000a090e, 0x00000509, 0x000a0b0f, 0x00200919,
- 0x00661026, 0x00a33442, 0x00c75450, 0x00a03d1f, 0x009f5c20, 0x00c9854b, 0x00cb8e52, 0x00c89658, 0x00c5a162, 0x00c3a366, 0x00cfab73, 0x00c29b65, 0x00ca996b, 0x00bf9163, 0x00cd9e74, 0x00d3aa81,
- 0x00c69960, 0x00c1955e, 0x00bc8f5a, 0x00bc8d5a, 0x00bf8d59, 0x00c39163, 0x00b48461, 0x00ad8772, 0x006d5d68, 0x002f304c, 0x001e1d3d, 0x00261628, 0x0066464e, 0x00a57770, 0x009e6453, 0x00924a2e,
- 0x009e4f2d, 0x00a4573d, 0x008e4637, 0x00571913, 0x00340105, 0x002c060b, 0x001d0209, 0x00120101, 0x00080000, 0x00030001, 0x00050203, 0x00040001, 0x001b0709, 0x00290909, 0x00300806, 0x00471311,
- 0x00a9aaa1, 0x00dfded5, 0x00e1dbd1, 0x00dbd4c8, 0x00e5d9cc, 0x00ddd2c2, 0x00c3b7a5, 0x00a79b89, 0x007f7368, 0x00595246, 0x00999289, 0x00e2e4e3, 0x00f5f7f0, 0x00f7fbf1, 0x00f8fbf3, 0x00fafef9,
- 0x00eff4fb, 0x00dee3ee, 0x007e838f, 0x00828890, 0x00f1f8f7, 0x00f5fafa, 0x00f5f7f9, 0x00f3f6f7, 0x00f5f4f7, 0x00f0f1f3, 0x00edeff3, 0x00bcbfc2, 0x00111214, 0x00050708, 0x00545557, 0x00f6f7f8,
- 0x00bbbbb4, 0x003e3b34, 0x00252219, 0x00252518, 0x00272616, 0x00232112, 0x00262315, 0x00242417, 0x00212214, 0x0023201b, 0x001d1a16, 0x0019181d, 0x0027212d, 0x00342935, 0x001e1114, 0x001f1107,
- 0x00594522, 0x00765e33, 0x00917145, 0x00946f3f, 0x00835832, 0x005e4c36, 0x00433e3c, 0x00302746, 0x00141442, 0x000d1236, 0x00061432, 0x000a1a3f, 0x00141f66, 0x00151f63, 0x000e1d4f, 0x00102036,
- 0x001a2234, 0x002a2932, 0x00362c2d, 0x00402f24, 0x003a2d1b, 0x003c3427, 0x0035342a, 0x00252824, 0x0028231e, 0x00302623, 0x0024201a, 0x00293124, 0x00383a30, 0x00362f25, 0x003c2b1f, 0x00644736,
- 0x00a47e65, 0x00896a53, 0x00372915, 0x001c1e15, 0x00051f1f, 0x0021251b, 0x00343022, 0x003a3c34, 0x001a2d31, 0x00051820, 0x0003131b, 0x00040e14, 0x000a080a, 0x000b0502, 0x00090403, 0x00040200,
- 0x00050d0d, 0x00091016, 0x00121922, 0x00191c2c, 0x00141417, 0x00110d0a, 0x001c1100, 0x00402b0f, 0x00997950, 0x00a37b4e, 0x00482e10, 0x00060c08, 0x00090c08, 0x0010110a, 0x00100f03, 0x00201a0b,
- 0x005d4d35, 0x007c654b, 0x0064462a, 0x00623e20, 0x00714629, 0x00856043, 0x00997659, 0x00a78565, 0x00aa845d, 0x00b48d61, 0x00c29a6b, 0x00c19765, 0x00bc8e5e, 0x00bd8e5f, 0x00b4835a, 0x00ab7854,
- 0x009f7745, 0x009e6c3c, 0x009f6b3d, 0x009d673b, 0x0078593f, 0x0059493b, 0x004d4b43, 0x0043453a, 0x004a3a17, 0x005b3c0b, 0x005a3d08, 0x004e400b, 0x00463b0d, 0x003c3513, 0x00332e1a, 0x00262719,
- 0x00211f1d, 0x002f2629, 0x00817176, 0x00ceb9bc, 0x00cfb3b8, 0x00cc9488, 0x00cd846d, 0x00c57e64, 0x00bb7255, 0x00b87550, 0x00bc8154, 0x00b4834f, 0x00a98653, 0x00b29569, 0x00ae9c77, 0x00d1c2a5,
- 0x00fdfdf9, 0x00fefdfb, 0x00fcfdfc, 0x00fcfcfb, 0x00eef1ef, 0x00a4a7a1, 0x002d3425, 0x0029321c, 0x00454f2d, 0x0058643d, 0x005e6f3e, 0x005a7036, 0x00586f37, 0x005e743a, 0x005f743b, 0x005e743f,
- 0x005b6f45, 0x005a6c51, 0x00566459, 0x00505d5f, 0x00444d5f, 0x003c4558, 0x003b455a, 0x00323b5b, 0x00343867, 0x00313465, 0x00404470, 0x00686d92, 0x00b5b6cd, 0x00bdc0de, 0x00afb2d3, 0x00aaa9cf,
- 0x00a7afd7, 0x00a5add6, 0x008086b2, 0x00575d89, 0x00303667, 0x002c3263, 0x00323768, 0x00353a68, 0x002d3463, 0x002e3462, 0x00333d60, 0x002e3c4e, 0x006a777b, 0x0099a79c, 0x0088987a, 0x00738256,
- 0x00738246, 0x0078834a, 0x006b763e, 0x00696c3c, 0x00727649, 0x00717f47, 0x006f8648, 0x006e8345, 0x006c8247, 0x0071884c, 0x006f864b, 0x006c8447, 0x006c8347, 0x006a8145, 0x00698043, 0x006a8043,
- 0x006c8041, 0x006d8042, 0x006e8243, 0x006e8242, 0x006d8042, 0x006e8242, 0x00708444, 0x00708445, 0x00738547, 0x00718344, 0x00708342, 0x006f8340, 0x00708441, 0x006e8341, 0x006e8342, 0x006d8242,
- 0x00748a48, 0x00748a47, 0x00748947, 0x00738846, 0x00748948, 0x00758a4a, 0x00788c4d, 0x007b8e50, 0x00809052, 0x00809253, 0x00809353, 0x007e9252, 0x007d9152, 0x007d9152, 0x007d9052, 0x007d9051,
- 0x007a8a51, 0x00798850, 0x007d8c53, 0x007f8e55, 0x007e8d53, 0x007d8d4f, 0x007f8f51, 0x007d8e51, 0x007a894b, 0x007c8c4e, 0x007c8c50, 0x0078894e, 0x0075864b, 0x0077894d, 0x0078894d, 0x0077884c,
- 0x00798c4e, 0x007b8b4f, 0x007d8b52, 0x007d8c51, 0x007b8c50, 0x00798c4d, 0x00788c4c, 0x00788b49, 0x00748647, 0x0076864b, 0x00758250, 0x007e885f, 0x00c2c8b2, 0x00f4f7ee, 0x00fdfdf9, 0x00fdfafe,
- 0x00f2fdfe, 0x00edfaf7, 0x009daaa1, 0x0046544d, 0x004d5863, 0x006d7895, 0x007580ab, 0x0055619a, 0x00344483, 0x003e4f8f, 0x006585bd, 0x0078aedf, 0x00629ad5, 0x003669ac, 0x001d529b, 0x003d70bc,
- 0x0084bcf6, 0x008ebcfb, 0x00638bc7, 0x005976b3, 0x008294d0, 0x0085a3cd, 0x005f81ad, 0x003f62af, 0x003868bf, 0x005386c8, 0x0072a9d4, 0x0078a7c6, 0x006d80a0, 0x006d6a7d, 0x00877773, 0x00a38668,
- 0x00b57f5c, 0x00b47c59, 0x00b8805d, 0x00bc8867, 0x00aa8b7b, 0x008f8789, 0x00808d9f, 0x007293b7, 0x006d9aca, 0x00709fd3, 0x006a9ecb, 0x0068a0bc, 0x005b96b4, 0x005587a6, 0x0044718d, 0x0032566c,
- 0x00313f4a, 0x00453f49, 0x00635454, 0x0070585b, 0x007b6061, 0x00967163, 0x00a57a60, 0x00a3744d, 0x00a97532, 0x00b8823a, 0x00bf8c41, 0x00c39753, 0x00b19670, 0x007f7368, 0x00393841, 0x0018213c,
- 0x0014150a, 0x00080909, 0x0004090e, 0x00010511, 0x002b2a2a, 0x00766c5a, 0x00a59376, 0x00b19c71, 0x00ada170, 0x00bab487, 0x00c9bd93, 0x00d8ba9d, 0x008a97ae, 0x004271b1, 0x002368c1, 0x001e71d0,
- 0x00346ca4, 0x00355575, 0x0025353e, 0x00242620, 0x0015120e, 0x00141210, 0x00242723, 0x00343533, 0x00686965, 0x00bec0bd, 0x00fcfcfa, 0x00fdfdfa, 0x00fdfcfa, 0x00fcfcfa, 0x00fafbf8, 0x00a6a6a5,
- 0x00050608, 0x0007080c, 0x000e0f14, 0x00090b10, 0x000a0b12, 0x0009090c, 0x000d0a09, 0x00130d0c, 0x001d140e, 0x00241a13, 0x00231a13, 0x001c1513, 0x00272015, 0x00423b2c, 0x006c674f, 0x008d896d,
- 0x00a29f7f, 0x00aba78a, 0x00afaa8f, 0x00aea893, 0x009f9b87, 0x00828071, 0x00555348, 0x00393433, 0x002a2228, 0x00261f22, 0x00252118, 0x00252612, 0x00242817, 0x00272d2e, 0x00293042, 0x00272d51,
- 0x000a175f, 0x00030d59, 0x00000858, 0x00121f75, 0x0021328b, 0x0012267e, 0x00132477, 0x00233584, 0x001f3075, 0x000b1455, 0x00000532, 0x00191e40, 0x00848b9e, 0x00e1e7ef, 0x00dfe5f0, 0x009197aa,
- 0x00262b50, 0x004e507b, 0x00cdd1f0, 0x00c6cee1, 0x009097a0, 0x00bcbdc0, 0x00938f8f, 0x00403837, 0x00423328, 0x005e493c, 0x00664a3c, 0x00694a3c, 0x00664438, 0x005f3e33, 0x00503126, 0x0045241c,
- 0x003a2126, 0x0043261e, 0x00573920, 0x006e5223, 0x00836825, 0x00867028, 0x00796928, 0x00645622, 0x00313115, 0x00141608, 0x00030300, 0x00020100, 0x00020302, 0x000f1211, 0x003e423e, 0x00706f6d,
- 0x0094968f, 0x00a09f9c, 0x00a0a09a, 0x009a9995, 0x00898884, 0x007c6f66, 0x006a5847, 0x00654b38, 0x006d523c, 0x00705b48, 0x009f9083, 0x00c3c1bc, 0x00bec4c6, 0x00b7babc, 0x00b1afaf, 0x00ada8a4,
- 0x006b7e9b, 0x00374a72, 0x002b3d6c, 0x00263a73, 0x00243970, 0x00233964, 0x0020355a, 0x00253859, 0x001e2750, 0x001d244e, 0x00343a66, 0x004d5082, 0x005a6876, 0x0062747c, 0x007d8b94, 0x009a9db1,
- 0x00a4a3b3, 0x0075747a, 0x003c4249, 0x00495771, 0x004962ac, 0x006173ca, 0x00a2aefa, 0x00c0c3f1, 0x0091a1ae, 0x00808daa, 0x009097be, 0x00a6a0d5, 0x009798b4, 0x006a6d84, 0x0043415d, 0x0045315d,
- 0x003b3e5e, 0x00595a7b, 0x009e9ebe, 0x00cccdea, 0x00dddcf9, 0x00d4d5f1, 0x00c9cae8, 0x00c6c7e8, 0x00c7c5e6, 0x00b7b7d6, 0x009b9fc5, 0x007888b8, 0x006873ab, 0x005e6ba7, 0x00606e9e, 0x008c9bc1,
- 0x00b6cdd0, 0x009db6a0, 0x00728e5e, 0x0071914c, 0x0070903c, 0x006e8b4a, 0x006e8a4e, 0x006d8949, 0x00708b48, 0x00728e46, 0x00728e44, 0x006e893d, 0x006d853e, 0x006d8440, 0x00728749, 0x0074894d,
- 0x00857762, 0x00847160, 0x00907768, 0x00a38678, 0x00a88976, 0x00998171, 0x00ad9c95, 0x00c9c1cb, 0x009ca6d4, 0x007d89ce, 0x00adb7ee, 0x00dcd8e0, 0x00e6e6f5, 0x00dfe2f1, 0x00dbe2f2, 0x00dde6f9,
- 0x00dee6f4, 0x00e5e3f9, 0x00ede7f3, 0x00f8ebf7, 0x00f9e7f5, 0x00f0e9fa, 0x00e9edf7, 0x00efeef5, 0x00f2f1e8, 0x00f3efeb, 0x00e7e5e5, 0x00c7c5d2, 0x00bcbdd0, 0x00dddcea, 0x00eae8f0, 0x00f6f2f1,
- 0x00fcfdfc, 0x00fbfefc, 0x00fcfefc, 0x00fdfefd, 0x00a6aaaa, 0x00262e2d, 0x000e1816, 0x000f1a16, 0x000b1b15, 0x000c1c16, 0x00071813, 0x00071914, 0x00041512, 0x00071512, 0x0009140f, 0x0008110a,
- 0x00090f07, 0x000b0e06, 0x00262720, 0x0086867d, 0x00f0f0e8, 0x00fad8b9, 0x00e69664, 0x00e2783a, 0x00f87320, 0x00f07f38, 0x00fdba83, 0x00fee2c6, 0x00f2f6fa, 0x00eaf3fc, 0x00f1f0f6, 0x00f8ecf0,
- 0x00f1efec, 0x00edebea, 0x00e6e6e3, 0x00e5e5e5, 0x00e6e8ea, 0x00e8ecf5, 0x00e4e9f9, 0x00afb5ca, 0x00747b9b, 0x0072789e, 0x00434b6f, 0x00353e58, 0x004c4b61, 0x00625765, 0x00625159, 0x00685356,
- 0x00664f4e, 0x005f4d4a, 0x004e4841, 0x003e3f38, 0x003d4944, 0x007d8285, 0x00e5e5e9, 0x00ece4e6, 0x00e9d5d1, 0x00ebd7d1, 0x00ebdbd1, 0x00ece1da, 0x00e7e4e3, 0x00989ca5, 0x0028303e, 0x000f182d,
- 0x00042920, 0x00082924, 0x00092a27, 0x000f2a27, 0x00122721, 0x00142217, 0x00121e13, 0x00141d18, 0x00112130, 0x0013263f, 0x00122650, 0x00112366, 0x00142b77, 0x00183186, 0x001c3792, 0x00203b99,
- 0x00203e91, 0x00263e87, 0x00344682, 0x005f6a99, 0x00b0b8d7, 0x00d6d8df, 0x00d7d7d2, 0x00d7d7d2, 0x00dbdcd4, 0x00e1e2d5, 0x00e2e4d7, 0x00e5e4d7, 0x00eaeae1, 0x00e7e5df, 0x00e4e2e2, 0x00edeae8,
- 0x00eceefe, 0x00f3f5fd, 0x00f4f5f7, 0x00f2f3f0, 0x00f9f4ef, 0x00f7f3ef, 0x00f5f2f0, 0x00ebe9eb, 0x00e7e9eb, 0x00ecf1f2, 0x00eef4f3, 0x00faf7f7, 0x00fcf9fa, 0x00fdf7f9, 0x00f8f6f7, 0x00f6f5f7,
- 0x00fbf7f7, 0x00fbf7f9, 0x00f1efef, 0x00eceae9, 0x00f0ecee, 0x00f7f2f2, 0x00f8f5f3, 0x00f6f6f7, 0x00f2f6f5, 0x00faf8fc, 0x00f8fdfa, 0x00fafafc, 0x00fdfcf9, 0x00fffdf7, 0x00dacfc6, 0x006e5f53,
- 0x00594b3c, 0x00655346, 0x00897668, 0x00a79286, 0x00bda397, 0x00d2b2a8, 0x00e9c3b6, 0x00f3c5ba, 0x00f2c2b3, 0x00f1bcae, 0x00e8ad9f, 0x00f5ac9f, 0x00f2b9bc, 0x00ecc6c3, 0x00d8d0c6, 0x00b6cbb6,
- 0x00abbdae, 0x00a69ea3, 0x00958288, 0x009a8685, 0x0086916e, 0x00898065, 0x007c6e4e, 0x00675635, 0x00624c24, 0x00887044, 0x00b29968, 0x00b29964, 0x00b09760, 0x00b1995f, 0x00ab955c, 0x00a8965c,
- 0x00a69662, 0x00a3945d, 0x00a1915a, 0x009e8f57, 0x009c8f59, 0x00988b56, 0x00948655, 0x008e8152, 0x00867a51, 0x0082764d, 0x007d6d50, 0x0075594b, 0x004b4839, 0x003f3f31, 0x00332d25, 0x00321413,
- 0x0066121a, 0x009e3234, 0x00a53a28, 0x009c411c, 0x00bc8241, 0x00c99156, 0x00c2915b, 0x00bd965a, 0x00b49a5c, 0x00b9995f, 0x00c4a66e, 0x00c8a16e, 0x00c8996d, 0x00cb9e73, 0x00c49a71, 0x00c29d74,
- 0x00c69c6a, 0x00cda370, 0x00c39a63, 0x00b78b51, 0x00c38d51, 0x00ca915b, 0x00ca9163, 0x00bb8867, 0x007b5750, 0x003d2828, 0x0039252b, 0x0063414e, 0x007d5051, 0x0090574e, 0x00874431, 0x00924c2f,
- 0x00904827, 0x006a2913, 0x003e0b04, 0x002c0101, 0x001d0506, 0x001c0303, 0x001a0504, 0x00190305, 0x0016070b, 0x0017080b, 0x00110508, 0x00120003, 0x002c1110, 0x00310b0a, 0x00320606, 0x00612c28,
- 0x009c9e90, 0x00bbb9ad, 0x00e6e3d8, 0x00ede6db, 0x00e0d7ca, 0x00d3c7b8, 0x00bdb3a3, 0x00b5a89a, 0x00877f70, 0x00837669, 0x00aca89c, 0x00e0e2de, 0x00e9efe3, 0x00eff0e1, 0x00edf2e3, 0x00eff5e8,
- 0x00eff6f5, 0x00eef3fb, 0x007b7e89, 0x0071757c, 0x00dce0e1, 0x00e8ebed, 0x00dee0e2, 0x00d3d6d7, 0x00d5d7d8, 0x00d8dbdc, 0x00d5d8da, 0x00cfd1d3, 0x00333436, 0x000b0c0d, 0x00555657, 0x00fcfcfe,
- 0x00b7b5ae, 0x00302d25, 0x002f2b22, 0x002c2a1d, 0x002a2818, 0x00292415, 0x002b2719, 0x00272618, 0x0025231a, 0x0024221a, 0x00221f1e, 0x00141c20, 0x00413b48, 0x0065575b, 0x00503834, 0x005e412b,
- 0x0091693b, 0x00a57b43, 0x00b5894b, 0x00b6864a, 0x00ac7947, 0x00907134, 0x00786732, 0x005b4b3c, 0x00312352, 0x00171357, 0x00121265, 0x00111973, 0x00151d75, 0x00111e5d, 0x000d1f41, 0x000b2225,
- 0x00101836, 0x00212233, 0x00302a2f, 0x003c3028, 0x00372e1f, 0x00342f24, 0x0026241c, 0x001f201c, 0x00282020, 0x002e2322, 0x00342a26, 0x00303629, 0x003d3f35, 0x002d2b1f, 0x002d1e12, 0x004c331f,
- 0x008e6b4d, 0x008e6e50, 0x00472d14, 0x001e1401, 0x00111813, 0x00211c13, 0x002c261f, 0x002a3127, 0x00122726, 0x00031318, 0x00000c14, 0x00000d17, 0x00050c13, 0x00020807, 0x00000700, 0x00030d01,
- 0x0016180f, 0x00111512, 0x00131419, 0x0017121d, 0x00161013, 0x00140a05, 0x00211200, 0x00473414, 0x00987854, 0x008c6a46, 0x00311a0a, 0x00000a07, 0x00050a09, 0x000a1109, 0x000b0b02, 0x00141203,
- 0x00453825, 0x0078654f, 0x00664c34, 0x005c3b20, 0x007a5136, 0x008e694f, 0x00906a51, 0x008b664a, 0x0097734d, 0x00b08b5f, 0x00caa374, 0x00c8a06f, 0x00c09367, 0x00b88a60, 0x00ab7b57, 0x009d6b4b,
- 0x009b6a3b, 0x00976738, 0x009d6b46, 0x00966b4c, 0x006d5b52, 0x0059585d, 0x006b747c, 0x00677374, 0x005b4b2f, 0x00603f0d, 0x005e3b06, 0x004e3f0b, 0x00453d17, 0x00373420, 0x00262826, 0x0028313d,
- 0x00495371, 0x005d6688, 0x008387af, 0x009897bf, 0x009992b9, 0x008a7fa2, 0x0099809f, 0x00b18a9f, 0x00c27e7b, 0x00bb7250, 0x00c0703d, 0x00c97e38, 0x00ae7838, 0x00a28152, 0x00c5b89c, 0x00eae9de,
- 0x00fcfcfb, 0x00fbfbfb, 0x00fefcfe, 0x00fbfcfc, 0x00e7e9e7, 0x0091968f, 0x002c3223, 0x002f3721, 0x004b5633, 0x0059673e, 0x005d6f3d, 0x005a7039, 0x005f7443, 0x00637648, 0x005f7149, 0x00566849,
- 0x004e5d52, 0x00495657, 0x00444d5e, 0x003b4261, 0x00363a66, 0x0030355f, 0x00363c68, 0x0030366c, 0x003d3c7c, 0x003a3a77, 0x00505189, 0x00a5a7d2, 0x00f8f9ff, 0x00cfd1e0, 0x007b7e95, 0x0071718e,
- 0x008186aa, 0x009fa6c8, 0x00bbc2e3, 0x00b4badd, 0x00747b9c, 0x00484e73, 0x00313758, 0x00373e60, 0x00464b6f, 0x003c4263, 0x00363e60, 0x0036415c, 0x003d475a, 0x006e7a7b, 0x0097a497, 0x0088957b,
- 0x0078845b, 0x00748250, 0x00778250, 0x006d7a43, 0x006d7744, 0x00728248, 0x0075874d, 0x0073864a, 0x0074884e, 0x00768a4f, 0x00728549, 0x0072854a, 0x006f8248, 0x006e8247, 0x006d8145, 0x006c8143,
- 0x006e8241, 0x006d8240, 0x00708443, 0x006f8444, 0x006e8342, 0x006f8544, 0x00728747, 0x00708645, 0x00728446, 0x006f8243, 0x006f8341, 0x006f8440, 0x00718642, 0x00708542, 0x006e8442, 0x006c8240,
- 0x006f8342, 0x006e8442, 0x006e8441, 0x006e8340, 0x006f8341, 0x00718442, 0x00738644, 0x00748846, 0x00788b4b, 0x00788c4c, 0x007b8f4f, 0x007c9151, 0x007d9151, 0x007d9150, 0x007e9251, 0x007f9252,
- 0x00798750, 0x007a8851, 0x007e8c55, 0x00809056, 0x007e8e54, 0x007f9157, 0x007f9155, 0x007b8d50, 0x007b8b4f, 0x007c8d4f, 0x00809152, 0x007a8d4d, 0x007a8d4e, 0x007c8e50, 0x007e9053, 0x007e8f52,
- 0x007e9052, 0x007d8f51, 0x007f9053, 0x007f9152, 0x007e8f51, 0x007c8f4e, 0x007d8f4e, 0x007d904d, 0x007c8c4d, 0x0076874b, 0x00758351, 0x007e8960, 0x00c8cdb7, 0x00f7f8ee, 0x00fefefb, 0x00fbfbfe,
- 0x00fef9ff, 0x00fcf3f6, 0x00a89797, 0x00513b34, 0x0055353b, 0x00704c5e, 0x00825b7c, 0x0078507c, 0x00724c7c, 0x006f4e7b, 0x007f749e, 0x0085a8cc, 0x006d98cb, 0x003764a2, 0x002d589c, 0x006292d5,
- 0x00acd2ff, 0x009fbeeb, 0x006e86b4, 0x00626e9c, 0x007579ad, 0x0063769c, 0x00425c8e, 0x002d4a98, 0x00284fad, 0x003867a7, 0x00517eab, 0x00578298, 0x005b6989, 0x005a5a6d, 0x006f6164, 0x0088735f,
- 0x00b07e66, 0x00b07d61, 0x00b38064, 0x00ae7e64, 0x0091766c, 0x007e787e, 0x007c859c, 0x006981a8, 0x005c7faf, 0x005b82ad, 0x00577c9f, 0x004a737e, 0x00356375, 0x002b596b, 0x00254a5f, 0x00183643,
- 0x0025282e, 0x0031292d, 0x0046343e, 0x00513e4a, 0x005d4d63, 0x006c5150, 0x006c483b, 0x00744c30, 0x00a5733d, 0x00c18e4c, 0x00c6944f, 0x00c29650, 0x00bfa374, 0x00a5967a, 0x004f493d, 0x00202422,
- 0x0030220f, 0x002a2112, 0x00231e13, 0x00120f04, 0x00302611, 0x00776043, 0x00b79a74, 0x00d5b083, 0x00d3b681, 0x00d5bd86, 0x00d6bb90, 0x00c7a58c, 0x007383a2, 0x003a6aaf, 0x001c62bd, 0x001b69c4,
- 0x00326096, 0x00314961, 0x002a2e36, 0x00202119, 0x000d0b0c, 0x00090806, 0x00242322, 0x002c2f29, 0x0050504e, 0x00a3a4a0, 0x00f9fbf7, 0x00fdfffc, 0x00fbfdfa, 0x00fcfcfa, 0x00fdfcfb, 0x00aba9a7,
- 0x000c0c0e, 0x00030509, 0x000d0f14, 0x0006090e, 0x00080a10, 0x0006070a, 0x000d0b0a, 0x00151110, 0x00231917, 0x00271c13, 0x00261a1a, 0x001f151d, 0x0030282b, 0x004d4843, 0x007b776d, 0x009a9686,
- 0x00aea596, 0x00b5b19d, 0x00b9b4a4, 0x00b8b0a3, 0x00a6a097, 0x008e8e7f, 0x00595a52, 0x002e2b2f, 0x001c1622, 0x00171319, 0x00181714, 0x00191e0a, 0x00192013, 0x001c242b, 0x001b2440, 0x00182050,
- 0x0007126f, 0x00000860, 0x00000b66, 0x000d1c74, 0x0019287f, 0x00071565, 0x000a1b67, 0x0031448e, 0x005061a7, 0x002d4186, 0x00111e5a, 0x001a204b, 0x00535c72, 0x00acb7c6, 0x00ebf5fb, 0x00c6cde1,
- 0x004a4c7c, 0x00232456, 0x009799c4, 0x00dadffb, 0x00969fa3, 0x00898d93, 0x00abaaaf, 0x00646060, 0x0041312d, 0x005e483f, 0x00604638, 0x0065483a, 0x00604235, 0x00583c31, 0x00472e23, 0x003d2219,
- 0x00321e23, 0x00372018, 0x00493219, 0x00634a1f, 0x007b6125, 0x00826a2c, 0x0073622a, 0x00584b1e, 0x002b2510, 0x000b0d01, 0x00010300, 0x00010000, 0x00010100, 0x00080b0a, 0x00313533, 0x005e615c,
- 0x00918e8e, 0x009d9d9a, 0x00a5a29e, 0x009c9d96, 0x008e8b87, 0x00817262, 0x007d634d, 0x007c5e47, 0x0086664c, 0x00886f59, 0x00bcab9c, 0x00e6e2db, 0x00e4e8eb, 0x00dbdfe0, 0x00dbdbd9, 0x00dbd6d1,
- 0x0090a1cf, 0x00475b93, 0x003a4e90, 0x0038509d, 0x003857a3, 0x00355498, 0x00344f8c, 0x00334b85, 0x00233370, 0x0012205e, 0x00172365, 0x001a256f, 0x000f264d, 0x000f2648, 0x00203156, 0x00333a6c,
- 0x0047456a, 0x00484a58, 0x00535762, 0x00637282, 0x00596fb0, 0x005e77c7, 0x009badf5, 0x00b5b8ea, 0x006f829b, 0x00627699, 0x009499ca, 0x00b2a3d8, 0x00b4adc6, 0x009da8b5, 0x00878da4, 0x007b6e9a,
- 0x00625e84, 0x005c597e, 0x00757398, 0x009797bb, 0x009e9ec3, 0x009494b8, 0x008483a8, 0x0078779c, 0x00727196, 0x0067678b, 0x00535983, 0x00314376, 0x00253374, 0x00324284, 0x005866a3, 0x009babd8,
- 0x00c7dde1, 0x00acc6ad, 0x007a9865, 0x0073964b, 0x00739442, 0x00738e53, 0x00758d5a, 0x00768d54, 0x00799155, 0x007a9253, 0x007b9250, 0x00788e49, 0x00778d4a, 0x00768b49, 0x00778a4c, 0x0076884b,
- 0x0083805e, 0x00817a5a, 0x00807059, 0x00957f6c, 0x0096796e, 0x00785e58, 0x008c7679, 0x00b2a3b2, 0x009596c4, 0x008d91cd, 0x00cecff4, 0x00e4dddf, 0x00e4dfea, 0x00ddddeb, 0x00dedff4, 0x00d8e0f8,
- 0x00dcddfd, 0x00deddfc, 0x00ede4ff, 0x00f5eaff, 0x00f8e6ff, 0x00f3e8fa, 0x00f1eaf7, 0x00f1eff4, 0x00eef2f2, 0x00ebf1f1, 0x00edf0f4, 0x00d3d6df, 0x00bcbacb, 0x00ceced8, 0x00e8e7ef, 0x00f5f4f3,
- 0x00fdfcfd, 0x00fcfdfc, 0x00fefefd, 0x00fcfdfc, 0x00a6acaa, 0x00252f2c, 0x000e1916, 0x000e1b16, 0x000d1c18, 0x000a1b16, 0x000a1916, 0x00081614, 0x00091414, 0x000a1311, 0x000b110e, 0x00080d08,
- 0x000b0c06, 0x000e0a06, 0x006c6861, 0x00d3cfc8, 0x00f8f7ec, 0x00f8c295, 0x00df793a, 0x00e57230, 0x00ee7638, 0x00f4a16a, 0x00ffdcb9, 0x00fef3e2, 0x00eaf8fd, 0x00e5f3f9, 0x00f0f1f6, 0x00faecee,
- 0x00f9f0ff, 0x00f4eef8, 0x00eeeaef, 0x00eae9e7, 0x00e6e8de, 0x00e3e8e0, 0x00ecf2f1, 0x00dde2ee, 0x00ced1f2, 0x00cfd3f2, 0x00878bc2, 0x003c4384, 0x00282c69, 0x00423f79, 0x004d457b, 0x004e4373,
- 0x004a3c64, 0x00443d5d, 0x00403d5b, 0x003b3e55, 0x003c4157, 0x0074747b, 0x00e6ddde, 0x00ece1dd, 0x00ecdbd5, 0x00e8d8cd, 0x00e7d6cd, 0x00e5d7ce, 0x00eee3e0, 0x00dbd5d8, 0x0061626a, 0x00171d26,
- 0x0003220d, 0x00082511, 0x000f2718, 0x000f2317, 0x00152313, 0x00111f09, 0x00111f08, 0x000f1a07, 0x00101919, 0x00172029, 0x00212c4a, 0x002b366d, 0x002e4086, 0x002a408c, 0x00243d98, 0x002540a2,
- 0x002844a1, 0x002a4494, 0x002f4387, 0x00364779, 0x008c95ba, 0x00cfd5d7, 0x00dcddd3, 0x00d6d8cf, 0x00deddd3, 0x00e1e2da, 0x00e4e6de, 0x00e7ebe7, 0x00ebedee, 0x00e6ecf2, 0x00e1e7f1, 0x00d9ddec,
- 0x00cfd6f5, 0x00d0d8ed, 0x00dfe6ee, 0x00ecf1f1, 0x00f9f7f1, 0x00faf6f6, 0x00f4f0f6, 0x00f3eff9, 0x00eaedf6, 0x00e7eef0, 0x00f0f3f5, 0x00f9f7f9, 0x00fbf7f9, 0x00faf7f8, 0x00f9f6f7, 0x00f9f7f5,
- 0x00f9f7f8, 0x00f9f7f9, 0x00f2f1f1, 0x00e9e8e7, 0x00e9e5e7, 0x00efe9e8, 0x00f8f3ef, 0x00faf6f6, 0x00f3f6f8, 0x00f3f8fa, 0x00fcfdff, 0x00f9fdfc, 0x00fefbf9, 0x00fbf7ee, 0x00e9ded3, 0x00b4a194,
- 0x0078827d, 0x005d6861, 0x004c534c, 0x00565950, 0x007d7b75, 0x009c938c, 0x00bfb0ab, 0x00d4c3bd, 0x00d8bfb9, 0x00c4aea6, 0x00bf9d95, 0x00d09e91, 0x00d0aeba, 0x00bfb3bb, 0x00b0b3b1, 0x009dac98,
- 0x00989b89, 0x00887b74, 0x00846969, 0x008c746b, 0x00877e55, 0x0080704b, 0x00735c3a, 0x005d461e, 0x00644219, 0x00846132, 0x00a47f4d, 0x009f7a44, 0x00a58148, 0x00a68248, 0x009f7e43, 0x009b7c42,
- 0x009c7b48, 0x00997a44, 0x00977842, 0x00947640, 0x0092763f, 0x008f743d, 0x00866c39, 0x00796131, 0x006a5028, 0x005a441d, 0x00573b19, 0x005f4325, 0x0066543a, 0x0055462e, 0x00412917, 0x004b2619,
- 0x00641611, 0x00701a0e, 0x00741e07, 0x00a85f35, 0x00dea869, 0x00dbac78, 0x00c59c6b, 0x00b59660, 0x00b19862, 0x00b99c66, 0x00c8a573, 0x00c09868, 0x00b28057, 0x00b3885f, 0x00b9906b, 0x00b79870,
- 0x00bd8f68, 0x00b68f60, 0x00c19c67, 0x00ba9555, 0x00be8c4f, 0x00cc9156, 0x00cd8d5c, 0x00b97950, 0x00885433, 0x006a4523, 0x005e3623, 0x00572624, 0x004f1712, 0x00652514, 0x007e3a22, 0x006d2812,
- 0x005f2106, 0x006f3c23, 0x005e3628, 0x004a2e26, 0x00493937, 0x00543a39, 0x004f2e2d, 0x00442424, 0x00391e22, 0x0034191b, 0x00341617, 0x002e1112, 0x00421a1c, 0x004b1f1d, 0x004a1d17, 0x00683a32,
- 0x008d8a79, 0x00b3afa0, 0x00e8e2d5, 0x00e4dfd1, 0x00e2d9cc, 0x00c8c0b2, 0x00a09788, 0x00908676, 0x006d5e4e, 0x005f5641, 0x00c4baad, 0x00e2e6df, 0x00e6ebda, 0x00e6eed5, 0x00e9ecd6, 0x00e4eed7,
- 0x00e3e5e2, 0x00e1e2e8, 0x0084858e, 0x006c6d73, 0x00c9cbca, 0x00d1d3d5, 0x00abaeaf, 0x009b9e9f, 0x00c3c6c8, 0x00d5d8da, 0x00d3d6d7, 0x00d0d3d4, 0x00303334, 0x00080b0c, 0x00616464, 0x00f9fbfb,
- 0x00b5b4ab, 0x002b271f, 0x00322e25, 0x00332f22, 0x002f2c1c, 0x00312d1c, 0x00312b1d, 0x00302c1f, 0x002b291d, 0x0026241a, 0x00182023, 0x001a3446, 0x00666e7e, 0x00837b7e, 0x0089716a, 0x009c755c,
- 0x00b07c45, 0x00bb8549, 0x00bb8947, 0x00b8884c, 0x00aa7e4f, 0x009c7232, 0x0095702f, 0x008c6e3c, 0x00695557, 0x003b315a, 0x001a165b, 0x0016196c, 0x000e1d61, 0x000c1d56, 0x00091f51, 0x00061e4b,
- 0x0015264b, 0x001c263e, 0x002f333e, 0x0046423d, 0x003d382c, 0x00343027, 0x0022221a, 0x0020221f, 0x00282321, 0x002d2221, 0x00342824, 0x0038352d, 0x003a3b35, 0x00302e26, 0x002c2518, 0x003b2e19,
- 0x00674a29, 0x00866546, 0x0056371c, 0x00260f01, 0x001e120c, 0x00220e0b, 0x0024120e, 0x00261d17, 0x00242721, 0x00191f1e, 0x000d1015, 0x0012101e, 0x00150f21, 0x000d1016, 0x0003100a, 0x00051909,
- 0x001c1a0a, 0x0011100c, 0x0009080d, 0x00080413, 0x000f0810, 0x000d0406, 0x001d1202, 0x00463a19, 0x007a6449, 0x005e4630, 0x00170804, 0x00000a08, 0x00050b09, 0x00080d08, 0x00080a04, 0x000b0a02,
- 0x002d2313, 0x006e5f4d, 0x007d6754, 0x00634733, 0x005d3b26, 0x0060402a, 0x006d4c36, 0x007f5f45, 0x009f7f56, 0x00b69467, 0x00c19e6f, 0x00bd9869, 0x00ba9068, 0x00b38762, 0x009f7153, 0x00926348,
- 0x00946239, 0x0090613f, 0x00906a54, 0x00836a65, 0x00566077, 0x00546d90, 0x0057799d, 0x0066859f, 0x00696355, 0x005a3e14, 0x005d3a08, 0x004e3b0b, 0x00443b1e, 0x002f322b, 0x00273243, 0x003d557a,
- 0x005d7cb9, 0x005775bf, 0x003b5aaa, 0x002b4a9d, 0x002e479a, 0x00294ba6, 0x00314ea8, 0x00545fb1, 0x00896c9b, 0x00996a75, 0x00ab6d5b, 0x00b17243, 0x00a97842, 0x00997b52, 0x00bbab94, 0x00ebe5e2,
- 0x00fefffd, 0x00fcfcfb, 0x00fdfcfe, 0x00fffeff, 0x00dde0dd, 0x007c8079, 0x00272e1f, 0x003a422a, 0x004e5a35, 0x005a673c, 0x005e6e45, 0x005f7150, 0x005d6d56, 0x0059675b, 0x004e5a5a, 0x00444f57,
- 0x003a425b, 0x00373f5e, 0x00333a5f, 0x00313760, 0x00525683, 0x006b7295, 0x00727b9c, 0x004f5883, 0x003b3f77, 0x003a3e74, 0x00474b79, 0x00848aab, 0x00e4e7f0, 0x00d7dbe5, 0x00797e87, 0x003d404b,
- 0x00373a57, 0x0041445f, 0x00757a92, 0x00b2b7cf, 0x00cccfe4, 0x00a4a8be, 0x005b6074, 0x004e5269, 0x009096ab, 0x00959cb3, 0x00626884, 0x0042496c, 0x00343c58, 0x00465061, 0x00808b92, 0x009ba6a3,
- 0x0085927c, 0x0074835f, 0x00758759, 0x00768a51, 0x00718747, 0x0078874b, 0x0077854d, 0x00758049, 0x0077874c, 0x0079884f, 0x0074814a, 0x0077844c, 0x00758249, 0x00758348, 0x00728147, 0x00728047,
- 0x00718543, 0x00718643, 0x00738745, 0x00728746, 0x00718644, 0x00708644, 0x00718746, 0x00718846, 0x00718645, 0x00708544, 0x00708544, 0x00718542, 0x00728643, 0x00748744, 0x00718440, 0x0071843f,
- 0x00708642, 0x00708642, 0x00708642, 0x00708641, 0x00718441, 0x00708441, 0x00708341, 0x00708341, 0x006e8341, 0x006d8342, 0x006f8544, 0x00718746, 0x00748948, 0x00778c4a, 0x007a8f4d, 0x007b904f,
- 0x007d8d51, 0x007e8e56, 0x007e8f56, 0x007d9054, 0x007a8c53, 0x007d8e57, 0x007b8d56, 0x00778950, 0x0074854c, 0x0075874c, 0x007c8e51, 0x00798c4d, 0x007b8e4e, 0x007a8d4e, 0x007d8f50, 0x007e9152,
- 0x007b8e51, 0x007d9052, 0x007f9154, 0x007e9152, 0x007c8e50, 0x007a8d4c, 0x007c8e4d, 0x007e8f4e, 0x007f9051, 0x007c8b52, 0x00788654, 0x00838f64, 0x00ced3bd, 0x00f8fbf0, 0x00fefffb, 0x00faf9fd,
- 0x00fef9fe, 0x00feeff3, 0x00a38786, 0x004a2118, 0x0050150d, 0x00672224, 0x00792f37, 0x007d2e3f, 0x00934353, 0x00984d59, 0x00a56a75, 0x00a18795, 0x00897c9d, 0x00595885, 0x00555e8e, 0x008897c4,
- 0x00afbbd7, 0x008d94a5, 0x00575b69, 0x00555261, 0x00625d72, 0x0057627d, 0x00455686, 0x00384b9b, 0x002d47a1, 0x0033518d, 0x00405e82, 0x003e5a69, 0x0038455c, 0x0033364a, 0x004b4853, 0x00716a63,
- 0x00977462, 0x009a745c, 0x009b735a, 0x00956c55, 0x007b6358, 0x00696366, 0x006e7584, 0x0060748d, 0x00516a88, 0x0046607a, 0x0031465a, 0x0026373e, 0x00153242, 0x00133342, 0x00173543, 0x0023353b,
- 0x00322f2d, 0x003a322a, 0x00483e3c, 0x004e4a50, 0x003a4259, 0x00312f2c, 0x003b3022, 0x005f4b35, 0x0095754e, 0x00af8a5c, 0x00bb9463, 0x00ba9665, 0x00c4ad89, 0x00c4b8a3, 0x00656357, 0x001c231f,
- 0x00231a16, 0x0028231a, 0x002a271a, 0x0023200c, 0x00493314, 0x008f6640, 0x00cd976c, 0x00e8a573, 0x00db935a, 0x00c98349, 0x00a96f43, 0x00835f50, 0x004d5f83, 0x003264ac, 0x002062bd, 0x00195db5,
- 0x00234370, 0x001d2736, 0x00191516, 0x0019140e, 0x00080c15, 0x00060608, 0x001f1d1b, 0x0030312d, 0x00454745, 0x0091928f, 0x00f6f7f4, 0x00fffffd, 0x00fcfdfa, 0x00fdfefb, 0x00fcfcfa, 0x00b1b0ac,
- 0x00111214, 0x00010306, 0x000a0c12, 0x0004080d, 0x0006080d, 0x0007070a, 0x00100f0e, 0x001a1615, 0x00261d1b, 0x00291d16, 0x00281c1b, 0x00251c27, 0x00433b3d, 0x0066605b, 0x00908c80, 0x00a9a493,
- 0x00bbb5a5, 0x00c2bead, 0x00c3bfb0, 0x00bfbaaf, 0x00aca7a0, 0x009a9c8b, 0x00626559, 0x00312f31, 0x00140e21, 0x000e0915, 0x00110e0d, 0x00101403, 0x000e1609, 0x000e1726, 0x00101740, 0x0012155b,
- 0x0007168e, 0x00011281, 0x0006167d, 0x000b1b79, 0x000c1f6e, 0x00010c58, 0x00000652, 0x001a2a78, 0x004051a4, 0x003b4c9f, 0x0044539f, 0x007780b8, 0x008e9db8, 0x0096a2b6, 0x00cfdce2, 0x00dae3f4,
- 0x006c6fa4, 0x00191b56, 0x003e3f76, 0x00868caa, 0x00677273, 0x00515661, 0x009e9eab, 0x00716f77, 0x003e2f32, 0x0053413c, 0x005a4337, 0x005b4336, 0x00553d33, 0x004a372f, 0x003b2b24, 0x0031231d,
- 0x00221c17, 0x00281f12, 0x003d2f19, 0x00574524, 0x00725a2e, 0x007a6235, 0x006b5930, 0x00504120, 0x00221d0b, 0x00080c00, 0x00000200, 0x00010100, 0x00000100, 0x00060807, 0x00282a29, 0x00545452,
- 0x0083817f, 0x00918f8d, 0x009a9993, 0x0097968e, 0x0082817b, 0x007c6855, 0x007f6048, 0x0088674b, 0x00926d51, 0x0092775e, 0x00c8b6a7, 0x00f8f1eb, 0x00f7f8fb, 0x00f4f5f6, 0x00f7f5f4, 0x00f8f3ee,
- 0x00a4b7eb, 0x004d63ac, 0x00384fa3, 0x003451b1, 0x00365cbe, 0x003b62c0, 0x004064bd, 0x003f62b5, 0x003550a8, 0x002a409c, 0x00283d9d, 0x00233a9f, 0x00214189, 0x0027438b, 0x00273b86, 0x00263184,
- 0x00312f6a, 0x00424460, 0x00666d78, 0x0077858f, 0x007084b2, 0x005d7cc2, 0x0092abf0, 0x00b3b6e9, 0x00597494, 0x0049638f, 0x00919ad2, 0x00bea6e5, 0x00b9b0c6, 0x00abb9c2, 0x00b0bfce, 0x00bab4d9,
- 0x00b3b1d0, 0x00a7a5c5, 0x009795b6, 0x008f8faf, 0x008b8cab, 0x00888aa9, 0x007f80a0, 0x00747495, 0x00747392, 0x006f6f8e, 0x00696e88, 0x00637389, 0x00747ea8, 0x008b95c6, 0x00bac2ed, 0x00d7e2fd,
- 0x00e3efef, 0x00c3d2b8, 0x00899b6f, 0x0080955b, 0x0084985a, 0x00859762, 0x00859764, 0x00859662, 0x0081985c, 0x00809758, 0x00819758, 0x00819756, 0x0082995a, 0x00819859, 0x007f9558, 0x007c9054,
- 0x0077904f, 0x0081915b, 0x007f8259, 0x00908669, 0x009d8578, 0x00765d54, 0x006b544e, 0x008f7d81, 0x009f96b0, 0x00a19dc4, 0x00d2cded, 0x00e0d9e8, 0x00dfdbed, 0x00e0e0f6, 0x00dddef4, 0x00d8dcf5,
- 0x00dcdcfb, 0x00d8daf4, 0x00dfdffa, 0x00ebebff, 0x00f0eeff, 0x00f2eafa, 0x00f1e7f7, 0x00ebeaf4, 0x00e6f1f4, 0x00e6f2f8, 0x00ecf8fc, 0x00e4eaf5, 0x00c7c5d4, 0x00c6c4d0, 0x00e4e1ec, 0x00f4f6fb,
- 0x00fbfcfb, 0x00fcfdfd, 0x00fdfdfd, 0x00fcfefd, 0x00a5aaa9, 0x0026302d, 0x000e1916, 0x000f1a18, 0x000a1c16, 0x000b1b16, 0x000b1815, 0x000b1415, 0x000b1213, 0x000b1211, 0x000b0e0c, 0x00090806,
- 0x00080604, 0x0039312c, 0x00c6bdb5, 0x00fbf5ec, 0x00efe4d9, 0x00f5a36d, 0x00e46c23, 0x00db692d, 0x00e59272, 0x00fed2bd, 0x00faede4, 0x00edf4f0, 0x00e1f8f8, 0x00eaf6f6, 0x00f2f0f1, 0x00fbebeb,
- 0x00f2e8fe, 0x00f2ebf8, 0x00f1ecf1, 0x00edebea, 0x00e9e8e4, 0x00eaeae5, 0x00e6e6e3, 0x00ebeaef, 0x00e3e5f4, 0x00e7e8fb, 0x00cfceec, 0x008f91b3, 0x0042436c, 0x003f406d, 0x00434275, 0x00403f74,
- 0x00393566, 0x0039365d, 0x00403c5f, 0x004e4962, 0x004d485d, 0x0083787e, 0x00e7dbde, 0x00eae1e2, 0x00e8e3df, 0x00e4dcda, 0x00ded5d5, 0x00e1d4d8, 0x00e5d7da, 0x00ebe2e7, 0x00aaa8aa, 0x00404343,
- 0x000e1c1b, 0x00141c1f, 0x00191f29, 0x001a1b2b, 0x00151d27, 0x000e1c1f, 0x000d201e, 0x000a1e1c, 0x0009111d, 0x000d1128, 0x00181a38, 0x002b2e56, 0x003b4678, 0x00394a8b, 0x002d4695, 0x002945a0,
- 0x002d4aa9, 0x002e499c, 0x00304790, 0x002e3e76, 0x007681ab, 0x00cecfd9, 0x00e0dedb, 0x00d8d6d4, 0x00dadbdd, 0x00e2e5e9, 0x00dadfeb, 0x00dadff4, 0x00dae4fa, 0x00bac3e7, 0x00929dc6, 0x007e87b9,
- 0x00667cb8, 0x006377a2, 0x0095a5be, 0x00d4e1e3, 0x00f6f9f8, 0x00f5f4fa, 0x00f3f0f8, 0x00f2effa, 0x00e7ecf7, 0x00ebf1f5, 0x00f7fbfd, 0x00fbf7fb, 0x00faf8f8, 0x00fdf9fa, 0x00fbf9fa, 0x00fcf8f6,
- 0x00fbf8fa, 0x00faf7f9, 0x00f4f2f2, 0x00ebeaea, 0x00e5e2e2, 0x00e9e4e2, 0x00f1ece9, 0x00f6f3f2, 0x00f2f6f9, 0x00f4f9fd, 0x00f8fdfe, 0x00f9fbfd, 0x00fbf7f2, 0x00fefbf1, 0x00c5b4a5, 0x00614c3b,
- 0x00824532, 0x00824934, 0x00774329, 0x00613418, 0x005c3818, 0x00694d2e, 0x007e6948, 0x00998a68, 0x00a1a078, 0x008b8e66, 0x007d734e, 0x008e7143, 0x00907372, 0x00866f6c, 0x00715b50, 0x006a5431,
- 0x005e4318, 0x00513216, 0x00593726, 0x00614231, 0x005f4513, 0x005e4117, 0x00684620, 0x00664119, 0x0072481a, 0x00875a2b, 0x00976833, 0x00996833, 0x0094622d, 0x008c5923, 0x00804e19, 0x00794915,
- 0x00784b19, 0x00784a18, 0x00764a18, 0x00754a17, 0x00754916, 0x00714613, 0x006b4314, 0x00653c11, 0x00522a03, 0x00411a01, 0x003e1800, 0x00462805, 0x00502f11, 0x0059351a, 0x005d351d, 0x005c341f,
- 0x005a2a14, 0x00421300, 0x00532105, 0x008b572e, 0x00b67f4d, 0x00b18355, 0x00b38a5c, 0x00bb9966, 0x00bb9e68, 0x00b6915a, 0x00b18955, 0x00ab7849, 0x00ac744c, 0x00ac7a55, 0x008a603f, 0x00704f2b,
- 0x008d562d, 0x00a27345, 0x00af8652, 0x00967234, 0x00a1773c, 0x00b2804a, 0x00a97040, 0x008e4f26, 0x00874c20, 0x0096652f, 0x00926436, 0x007b472b, 0x00642c0f, 0x005f2410, 0x005b200e, 0x0062260f,
- 0x00804a2b, 0x00825136, 0x006a422c, 0x00613f2b, 0x00573f2d, 0x00523526, 0x0046251b, 0x003e1a10, 0x003d160f, 0x00441b16, 0x004b231f, 0x0047201d, 0x003f1b17, 0x0043221a, 0x003e2419, 0x004d3729,
- 0x0098907b, 0x00dbd2be, 0x00dcd4c3, 0x00d4cbbc, 0x00bbb3a7, 0x00a69b91, 0x0082786b, 0x00504534, 0x004d4029, 0x008b7b64, 0x00f6f7e0, 0x00eef5e7, 0x00ecf3da, 0x00eaf6d4, 0x00e8f1d1, 0x00e9efd3,
- 0x00dddfd8, 0x00cdcdd1, 0x006b6a73, 0x0073737b, 0x00c6c6ca, 0x00b7b8bc, 0x00cacdcf, 0x00e5e7e9, 0x00eef1f3, 0x00eceef0, 0x00eaeced, 0x00cbcece, 0x00242728, 0x00050708, 0x00878788, 0x00faf9fb,
- 0x00b8b7af, 0x00322d26, 0x00332d26, 0x00363125, 0x00332f1f, 0x00312e1c, 0x00312b1c, 0x00342f22, 0x002d2a20, 0x0029231c, 0x00253134, 0x002f556b, 0x00697a8c, 0x007b767e, 0x009a837c, 0x00af876c,
- 0x00b9824a, 0x00be8a4b, 0x00bc8849, 0x00b78952, 0x00ab825b, 0x00a27248, 0x00996336, 0x00906b2c, 0x00856f47, 0x005c5351, 0x002e2b45, 0x001f2451, 0x00102249, 0x000e1f56, 0x000e1f6b, 0x000e1c80,
- 0x0012284f, 0x00101e39, 0x00222937, 0x003a3837, 0x00312d21, 0x00262219, 0x0022221b, 0x00222221, 0x00302929, 0x00392c2c, 0x00372b28, 0x00352f2a, 0x002f302c, 0x002a2a22, 0x002d2e1f, 0x00302b16,
- 0x004e3617, 0x00735435, 0x00613e22, 0x002a0a03, 0x00230c08, 0x00330f0f, 0x003a140c, 0x002b1105, 0x00261509, 0x0025140c, 0x00200b0a, 0x001d060d, 0x001a0410, 0x00120809, 0x000e0f06, 0x000a1404,
- 0x00110e01, 0x000d0905, 0x00070207, 0x00060010, 0x000a020e, 0x00160c09, 0x002a210c, 0x00463f1f, 0x005b4731, 0x003a2619, 0x00110505, 0x00070c0c, 0x00060c0b, 0x00070c08, 0x00090c06, 0x00090a02,
- 0x001c1809, 0x00574c3c, 0x00958372, 0x00866f5d, 0x00795a48, 0x00755744, 0x008d6f5a, 0x00ab8c74, 0x00c0a17d, 0x00ba9b71, 0x00b29164, 0x00ad8a5c, 0x00ab835b, 0x00a27854, 0x0095694b, 0x008d5f44,
- 0x008f613e, 0x008d674d, 0x00886d5f, 0x00756b72, 0x004b678d, 0x00426ea0, 0x00326599, 0x00406f96, 0x00605f59, 0x00553d1c, 0x0058380a, 0x0051370c, 0x00443821, 0x0035353a, 0x003e4e6c, 0x004f6ba2,
- 0x004b72c4, 0x003763be, 0x002355b8, 0x002552bc, 0x00214cb5, 0x002251bf, 0x00214dbc, 0x002844af, 0x0046459b, 0x00605081, 0x00826775, 0x0094715e, 0x00a27f54, 0x00987a57, 0x00bba284, 0x00f1e2d4,
- 0x00fefdfb, 0x00fcfbfa, 0x00fefdfe, 0x00fdfdff, 0x00d3d5d4, 0x006a6e69, 0x00252c1f, 0x003e4732, 0x0053603b, 0x005c683f, 0x005c6947, 0x00556355, 0x004a5751, 0x00414d54, 0x00384355, 0x00343d58,
- 0x00353b65, 0x00363c68, 0x00363c67, 0x00323861, 0x005c628a, 0x00a1aac1, 0x00c9d3e4, 0x00929bb8, 0x00464c77, 0x003a3e69, 0x0044476e, 0x00525a71, 0x008f93a1, 0x00c3c9d1, 0x00c2c8ce, 0x00979da5,
- 0x00585975, 0x003e3f5a, 0x0035394f, 0x005b5f73, 0x00c1c2d6, 0x00e6e8f5, 0x00a3a6b8, 0x006a6d80, 0x009d9fb3, 0x00cccfe4, 0x00b1b5cf, 0x00707497, 0x00404767, 0x00404963, 0x004f5a6b, 0x0089979c,
- 0x0096a699, 0x00839679, 0x0074885c, 0x00748d53, 0x00738d46, 0x0078894e, 0x0085935b, 0x00829056, 0x0078844b, 0x0079854d, 0x007c8950, 0x0079854c, 0x0078844a, 0x0077844a, 0x00758149, 0x00737e48,
- 0x00718544, 0x00738644, 0x00758947, 0x00748947, 0x00728644, 0x00718543, 0x00718645, 0x00728745, 0x00728746, 0x00728746, 0x00708543, 0x006f833f, 0x006f833f, 0x00708441, 0x006e823e, 0x006d813d,
- 0x006f8440, 0x006f8440, 0x006f8541, 0x006f8642, 0x00728543, 0x00728544, 0x00718645, 0x00718645, 0x006c8341, 0x006c8341, 0x006d833f, 0x006c823f, 0x006e8343, 0x00718646, 0x00748947, 0x00748a48,
- 0x00798b50, 0x007b8d54, 0x007b8e53, 0x00798c51, 0x00798c54, 0x007b8d56, 0x007a8b55, 0x0076874f, 0x0072854c, 0x0073864b, 0x007a8d50, 0x007e9052, 0x00809254, 0x007e9051, 0x007b8e4e, 0x007c8f4e,
- 0x007d8f54, 0x007e8f54, 0x007f8f55, 0x007f9053, 0x007d9053, 0x007b8f50, 0x007c8e51, 0x007f8f51, 0x007c8e53, 0x007e8d55, 0x007d8b58, 0x008b986c, 0x00d1d7c1, 0x00f6f9ee, 0x00fefff9, 0x00fafafc,
- 0x00f9fcff, 0x00f8f4f0, 0x0095867d, 0x003d1f0e, 0x00491402, 0x00632010, 0x0072261b, 0x0074221b, 0x0084302a, 0x0089382b, 0x00964b40, 0x00945353, 0x00815364, 0x00745574, 0x00867496, 0x00a09bb9,
- 0x00a7a3af, 0x007f7a7a, 0x00514b41, 0x00574f48, 0x00635e5e, 0x00555e6f, 0x00495883, 0x00414d9b, 0x0036459e, 0x0031467f, 0x003b5070, 0x00385059, 0x00323f52, 0x002e354a, 0x00383847, 0x00535050,
- 0x00755944, 0x00725539, 0x007c5d42, 0x00826049, 0x00695446, 0x00534f4c, 0x005b6168, 0x00546673, 0x00596c7d, 0x00506573, 0x00323f4a, 0x00212632, 0x00162639, 0x00162c41, 0x00162e3b, 0x00213035,
- 0x00403c2e, 0x0047412d, 0x004f4d3f, 0x00474d4e, 0x001f3345, 0x0013201c, 0x0049513d, 0x0086836a, 0x009c8868, 0x009f845e, 0x00b49670, 0x00c3a681, 0x00e1cfb6, 0x00dbd3c7, 0x006a6b67, 0x0011191e,
- 0x00131422, 0x0012171c, 0x001a1d15, 0x002a2917, 0x005e4520, 0x0095623b, 0x00bd7748, 0x00c9723c, 0x00c35f25, 0x00b85518, 0x009b4b20, 0x0077564c, 0x004a5980, 0x002e5ea7, 0x002260b9, 0x001654ab,
- 0x00182e55, 0x000e111a, 0x00120806, 0x0018100c, 0x000a111f, 0x00050a0c, 0x00181915, 0x0030312d, 0x00464746, 0x008b8c88, 0x00f5f6f3, 0x00fdfefc, 0x00fefdfa, 0x00fefdfb, 0x00f9fbf8, 0x00b5b7b1,
- 0x0019191b, 0x00010104, 0x0005070c, 0x0002060b, 0x0005060b, 0x0009080b, 0x00110f10, 0x001c1818, 0x00271f1c, 0x00281d15, 0x00261d19, 0x002c272a, 0x00544f4d, 0x007d766f, 0x00a09b8d, 0x00b1aa98,
- 0x00c0bba7, 0x00c3bfac, 0x00c2bfb0, 0x00bfbcaf, 0x00b2aea6, 0x009d9e8d, 0x006a6c60, 0x00373538, 0x00120d22, 0x0006020f, 0x0008060a, 0x00070b00, 0x00030b04, 0x0001091e, 0x00060d3d, 0x000e115e,
- 0x0007139c, 0x00051390, 0x000c188b, 0x000a1a7b, 0x00142375, 0x00101f6c, 0x00070f5d, 0x000c1a69, 0x00212f8b, 0x003749a6, 0x007582da, 0x00a8b0ea, 0x00b2c2e4, 0x008b9cae, 0x008a9aa7, 0x008d9bb1,
- 0x0043497f, 0x00111452, 0x00101147, 0x003b3d61, 0x005a6360, 0x00505564, 0x00707283, 0x004f4f5b, 0x00382a2d, 0x0044342f, 0x00544035, 0x00513c30, 0x0048352c, 0x003e3129, 0x00332b24, 0x002a241e,
- 0x001b1e17, 0x00242114, 0x0039301d, 0x00524328, 0x00695431, 0x006f5937, 0x00614f30, 0x00493a20, 0x001e1c0d, 0x00060b00, 0x00000300, 0x00000101, 0x00000302, 0x00060808, 0x00202021, 0x00434342,
- 0x006f6d6a, 0x00807e7b, 0x008b8983, 0x0083837b, 0x006c6a64, 0x006c5743, 0x007b5940, 0x00876546, 0x00946b4f, 0x0094755d, 0x00cab6a6, 0x00f8f0ea, 0x00fefdff, 0x00fdfbfc, 0x00fefcfa, 0x00fefcf7,
- 0x00a5b7ef, 0x004d64b7, 0x003750b1, 0x00294ab5, 0x002851be, 0x00345ec9, 0x00446dd4, 0x004570cf, 0x003d5fc3, 0x003754be, 0x003753c1, 0x003754c6, 0x003459b2, 0x003354ab, 0x00324ba6, 0x003440a7,
- 0x003e3c86, 0x00515276, 0x007c8390, 0x0088969b, 0x007c92b4, 0x005f82c0, 0x008ca8e9, 0x00b4baeb, 0x005a7aa1, 0x0049689a, 0x0097a3e0, 0x00c5aaed, 0x00c6bad5, 0x00b4c7cf, 0x00baced9, 0x00c6c4e3,
- 0x00c4c7dc, 0x00c6c8df, 0x00c3c3dd, 0x00c0c0da, 0x00c2c4dc, 0x00c8cce2, 0x00cbcde4, 0x00cccde6, 0x00cdcee7, 0x00c7c8e2, 0x00c0c4d4, 0x00c0c7cb, 0x00c7cde5, 0x00d9dcf5, 0x00edefff, 0x00e6e9fe,
- 0x00e2e5e3, 0x00c7ccb3, 0x00939a71, 0x008b9366, 0x008c9468, 0x008b9763, 0x00899960, 0x00899a5f, 0x0084985b, 0x00829758, 0x00839759, 0x00849a5b, 0x0082975b, 0x0081985b, 0x0081985b, 0x0080975a,
- 0x00779c4c, 0x007e9956, 0x0083905d, 0x00908e69, 0x00a18d7a, 0x00806859, 0x005b4336, 0x00786360, 0x00a396a4, 0x00b1a8bf, 0x00d6ceeb, 0x00dcd7f0, 0x00ddd8f0, 0x00e2dffb, 0x00dcdcf4, 0x00dbdaf4,
- 0x00e0e0f7, 0x00d5daeb, 0x00d9def0, 0x00e3e8f4, 0x00e0eaf2, 0x00eae6f3, 0x00ede4f4, 0x00e6e8f4, 0x00e1eff6, 0x00e2f1fa, 0x00e8f7fe, 0x00ebf2fe, 0x00d7d3e6, 0x00c3c1d0, 0x00dad9e5, 0x00f2f6fc,
- 0x00fbfcfb, 0x00fbfefd, 0x00fcfffd, 0x00fbfefc, 0x00a6aaaa, 0x00272f2d, 0x000e1916, 0x000e1917, 0x000c1b16, 0x000e1b16, 0x000c1615, 0x000b1214, 0x000b1012, 0x000c100f, 0x000a0b09, 0x00070504,
- 0x001e1715, 0x007b736c, 0x00efe2dc, 0x00faf3e7, 0x00e0cec5, 0x00e38041, 0x00e76218, 0x00e36f37, 0x00f5b7a8, 0x00fde9e4, 0x00f8f3f5, 0x00e6f7f7, 0x00e2f7f2, 0x00eef8f3, 0x00f3eded, 0x00fcebef,
- 0x00f2e9f5, 0x00f3ebf6, 0x00f5ecf7, 0x00f2ebf6, 0x00f0eaf5, 0x00eae6ec, 0x00e4e0e5, 0x00f1edf0, 0x00ece8eb, 0x00ece8eb, 0x00e8e3e6, 0x00c9c9c2, 0x007c7e80, 0x00505262, 0x00484b63, 0x004a4e6c,
- 0x004a4c6c, 0x004d4c65, 0x00544f60, 0x005f5762, 0x0065585b, 0x008d7f81, 0x00eae2e2, 0x00e7e4e4, 0x00dfe4e7, 0x00e1e3e7, 0x00dadae1, 0x00dbd4dd, 0x00e2d6dc, 0x00e8dfe3, 0x00d1ced0, 0x00686b6a,
- 0x00141c0c, 0x00181c12, 0x001d1e1e, 0x001d1d24, 0x00161f22, 0x000b201c, 0x00051e15, 0x00051f11, 0x000a1816, 0x000c131d, 0x00101022, 0x00191930, 0x00272d58, 0x002e3a76, 0x002d428d, 0x002c46a0,
- 0x002d49a5, 0x002d479b, 0x002d438b, 0x0033447f, 0x007e88b2, 0x00d7d6e6, 0x00e0dcdd, 0x00dad7db, 0x00e2e2ec, 0x00d4d7e9, 0x00a7adc6, 0x009fa6c9, 0x008e98c8, 0x005d6a9f, 0x003d4a89, 0x003d488d,
- 0x0037509d, 0x004b639a, 0x0095a8c9, 0x00d5e6ec, 0x00f3f8f9, 0x00f6f4fa, 0x00e5e0f0, 0x00cac6df, 0x00c7cbd9, 0x00e3e9ee, 0x00f5f9fc, 0x00f9f6f9, 0x00faf8f8, 0x00fcf9f9, 0x00fdfafc, 0x00fdfafb,
- 0x00fbf9fa, 0x00faf8f8, 0x00f6f4f4, 0x00efeeee, 0x00e9e7e7, 0x00e7e3e0, 0x00e9e5e1, 0x00eeeae9, 0x00f3f6f9, 0x00f6fafc, 0x00f7fcfc, 0x00f9fcfb, 0x00fffcf8, 0x00fffbf1, 0x00cbb7a7, 0x00866c59,
- 0x007e532c, 0x00795128, 0x008b6238, 0x008e643b, 0x007c532b, 0x00653e18, 0x005e3713, 0x0075512d, 0x00916c4c, 0x00876745, 0x007d5d34, 0x007e6423, 0x007a594a, 0x0073483f, 0x00683922, 0x0075400d,
- 0x007a4a0e, 0x006e4519, 0x00774f34, 0x0078533c, 0x00764c19, 0x00694317, 0x00845d34, 0x008e683e, 0x008c5d2f, 0x00946133, 0x009b6432, 0x0098602e, 0x00905726, 0x008d5421, 0x008e5523, 0x00925929,
- 0x00844e21, 0x00854e20, 0x00855021, 0x00834f20, 0x00834c1f, 0x007f491c, 0x007b481e, 0x0078441e, 0x006f3d1d, 0x00653518, 0x00592b10, 0x004a2a07, 0x005c3213, 0x005a2f10, 0x0056290e, 0x00532b10,
- 0x00573819, 0x004f3215, 0x00573714, 0x00674217, 0x007d4c1f, 0x00865629, 0x008d5e31, 0x00946c38, 0x0098733a, 0x009c7237, 0x00aa7b43, 0x00b07946, 0x0094572e, 0x006f3a14, 0x005b2d0b, 0x006e4925,
- 0x00b16f44, 0x00955f2c, 0x007d4f17, 0x00775413, 0x00835c24, 0x008f6031, 0x00885229, 0x007d431d, 0x00844e1e, 0x0097662e, 0x00a1723c, 0x0099683d, 0x00946138, 0x00a26f46, 0x00a26d44, 0x00a36c46,
- 0x00945e3c, 0x00834c31, 0x006d3a20, 0x00592913, 0x00481e08, 0x003c1f0b, 0x00381b08, 0x00361803, 0x00391103, 0x00360d03, 0x00320605, 0x002c0305, 0x00280802, 0x00200a00, 0x00160a00, 0x00292310,
- 0x00847860, 0x00bcb19a, 0x00beb5a1, 0x00cbc1b2, 0x00afa49a, 0x0082766e, 0x00584b40, 0x00493c2b, 0x00988772, 0x00f1eacd, 0x00faf4db, 0x00f6fcea, 0x00eef6d7, 0x00ebf5cf, 0x00e7f0cc, 0x00e5eccb,
- 0x00dbdbd2, 0x00bbb9bb, 0x0058565e, 0x008b8993, 0x00d3d0d7, 0x00dadade, 0x00eaeded, 0x00eeeff0, 0x00eaecf0, 0x00e5e7eb, 0x00e4e7e8, 0x00d8dbdb, 0x00484a4d, 0x00060509, 0x00adacaf, 0x00fbfcff,
- 0x00bcb7af, 0x003c342b, 0x00332c21, 0x00383023, 0x00353123, 0x00313022, 0x00322f22, 0x00312e21, 0x002f2420, 0x00433735, 0x006d7674, 0x006f97a6, 0x006c859a, 0x00676c83, 0x00766f77, 0x008c786a,
- 0x00b58b67, 0x00bc915f, 0x00bb8e56, 0x00b88b52, 0x00b08550, 0x00aa7353, 0x008c5433, 0x00755014, 0x00816933, 0x00746a4b, 0x004f4f46, 0x00343c45, 0x001b2e44, 0x0014245a, 0x0010207a, 0x000e1799,
- 0x00102450, 0x0015203f, 0x00151b2d, 0x001e1f1f, 0x00191910, 0x001d1e16, 0x00262822, 0x001a1a19, 0x002f2b29, 0x00504545, 0x00655d57, 0x006b665e, 0x003c3e36, 0x0026291c, 0x00283120, 0x002b2e1b,
- 0x003d2b14, 0x00573c27, 0x005e3722, 0x00522013, 0x00784235, 0x008b4b42, 0x00874637, 0x00673119, 0x004c1b0a, 0x00491c0e, 0x0041130c, 0x00310703, 0x002b0603, 0x00290d03, 0x00281304, 0x00201402,
- 0x00331404, 0x0036150d, 0x00341211, 0x002c0e14, 0x0021090d, 0x00312017, 0x00443923, 0x00484328, 0x003d3123, 0x00211611, 0x00100b09, 0x000a0e0f, 0x00060c09, 0x00060a07, 0x00090c06, 0x000a0b02,
- 0x001a1308, 0x00453528, 0x008f7b6a, 0x008b735e, 0x008d6c57, 0x009d7e67, 0x00b3957d, 0x00c3a488, 0x00c9a27f, 0x00bf996f, 0x00b08a5e, 0x00a47f53, 0x009a724e, 0x00906849, 0x00865e47, 0x00855c49,
- 0x00916147, 0x008a6c62, 0x006e6870, 0x004f6083, 0x002b609f, 0x002661a3, 0x002f68a2, 0x00437197, 0x00697177, 0x00635948, 0x004c3b1f, 0x00463617, 0x003d382c, 0x003f4556, 0x004e6490, 0x004c71b4,
- 0x004571d7, 0x004d7be9, 0x00497dec, 0x004577e5, 0x003468d1, 0x003463d3, 0x003b68d9, 0x00446cd9, 0x00475fc6, 0x004b57aa, 0x0061649a, 0x007b7489, 0x0093826a, 0x00836e51, 0x00baa081, 0x00f5e3d1,
- 0x00fffcfe, 0x00fdfafd, 0x00fdfdff, 0x00fefdfe, 0x00c4c7c7, 0x005c5e5b, 0x002a3227, 0x00404939, 0x00535d49, 0x00555d46, 0x004b5447, 0x003f4851, 0x00323c4c, 0x002c3651, 0x002d3659, 0x00333a66,
- 0x00373d6f, 0x00353a6f, 0x00383d6f, 0x00323965, 0x00444d74, 0x007c8895, 0x00dbe6e6, 0x00dae0eb, 0x009c9cbe, 0x008f8db1, 0x009b9aba, 0x009599b1, 0x009498a2, 0x00a0a7ae, 0x00b9c2c5, 0x00c3cdd2,
- 0x00b9b9d0, 0x009d9db5, 0x007d8194, 0x00797d8e, 0x00bbbdd2, 0x00e9eef7, 0x00bfc4db, 0x00666b81, 0x004f5170, 0x008185a3, 0x009093b2, 0x006d6f94, 0x004a506e, 0x00454d66, 0x00454f5e, 0x00526060,
- 0x00a0a89d, 0x009eab8d, 0x007c8c5e, 0x0070844a, 0x00718641, 0x007c8450, 0x00a4a876, 0x00b0b27b, 0x00918e58, 0x007b7942, 0x007c7b45, 0x00777745, 0x00777749, 0x00747445, 0x0070723c, 0x00727539,
- 0x006e7838, 0x00707638, 0x006f7838, 0x006d7836, 0x006e7536, 0x00727a39, 0x0076803e, 0x00777f3f, 0x00798242, 0x007a8344, 0x00778142, 0x00737f3f, 0x00748241, 0x00728241, 0x00718241, 0x006f813d,
- 0x00718342, 0x00708241, 0x006e8340, 0x006d8440, 0x006f8442, 0x006f8643, 0x006e8745, 0x006e8745, 0x00718849, 0x00728849, 0x00718845, 0x00708643, 0x006f8444, 0x006d8241, 0x006b833e, 0x006d843e,
- 0x0076874a, 0x00798a50, 0x00778a4e, 0x0073874c, 0x00788b54, 0x007b8e56, 0x00798c54, 0x0076884f, 0x006e814b, 0x006b7e46, 0x006d7f44, 0x0076884b, 0x007d8e52, 0x007e8f53, 0x007d8e53, 0x007e9055,
- 0x00809054, 0x007f8f52, 0x007e8f53, 0x007e9153, 0x007f9256, 0x007f9154, 0x007d8f53, 0x007d8e52, 0x007c8c55, 0x007a8853, 0x00798755, 0x008c9a6d, 0x00d3d9c2, 0x00f5f7eb, 0x00fbfef5, 0x00f7fbf8,
- 0x00f4fdff, 0x00f2f5ee, 0x00878074, 0x00341e0c, 0x00471800, 0x005d1f07, 0x006b240c, 0x006c1f09, 0x007b2413, 0x007b270f, 0x0086301d, 0x008d312a, 0x00783136, 0x007b4352, 0x00835b6a, 0x00806570,
- 0x008a7574, 0x008b796e, 0x00897865, 0x00907e6a, 0x00857561, 0x00635e5e, 0x00555468, 0x004f4d7c, 0x00434182, 0x003d426c, 0x00424a5f, 0x003e494f, 0x00353d46, 0x00313544, 0x00282d36, 0x002f3634,
- 0x004d3b2e, 0x004d3c27, 0x005c4d39, 0x00695746, 0x00554c40, 0x004d4e4b, 0x004f575b, 0x0044545e, 0x005c6874, 0x006d7a83, 0x005e666e, 0x00403d4c, 0x001d2637, 0x001b273b, 0x00172a33, 0x001d2c2d,
- 0x00483f32, 0x0055493a, 0x004f4a3a, 0x0041443b, 0x0017282e, 0x0016241f, 0x00718270, 0x00bfc8b2, 0x00c5b8a7, 0x00bcab92, 0x00d4c0a7, 0x00e4d1b9, 0x00fbf0e3, 0x00dad5d2, 0x005c5c5c, 0x000c1013,
- 0x000e0e22, 0x000c121d, 0x00181818, 0x00252217, 0x004a3213, 0x00764724, 0x0099562c, 0x00ab5926, 0x00b7551b, 0x00be5c1f, 0x00a35a30, 0x007c6363, 0x00485a8a, 0x002451a1, 0x001f5db7, 0x001f58ad,
- 0x001b2e57, 0x000c0d17, 0x000f0405, 0x00130907, 0x00040a16, 0x00040909, 0x000f130d, 0x00242a23, 0x00474443, 0x008b8a86, 0x00f3f5f1, 0x00fcfffb, 0x00fdfdfa, 0x00fdfcfb, 0x00f8faf9, 0x00b6b8b4,
- 0x00212024, 0x00040306, 0x00030509, 0x00010408, 0x00050609, 0x0008080a, 0x00120f13, 0x001d181a, 0x00291f1e, 0x00281c19, 0x00241d19, 0x00302e2f, 0x005e5b56, 0x0088837c, 0x00a5a191, 0x00b1ac99,
- 0x00b4ad97, 0x00b8b29e, 0x00b6b2a0, 0x00b6b3a2, 0x00aeaa9f, 0x009a9b8a, 0x006e7066, 0x00414045, 0x00171224, 0x0006030d, 0x00050406, 0x00050a00, 0x00010802, 0x0000041b, 0x00070d3f, 0x00111464,
- 0x00101aaa, 0x000e199c, 0x000c1a8d, 0x00091779, 0x001c3082, 0x002c3e93, 0x00212f85, 0x0014247c, 0x000c1772, 0x00263591, 0x006473c6, 0x007381bb, 0x007686a9, 0x00697a91, 0x004b5a6d, 0x00475567,
- 0x00171a4b, 0x000c0d3f, 0x00080a34, 0x00141a34, 0x004d5654, 0x004f5660, 0x00373b45, 0x00292932, 0x00392d35, 0x00362829, 0x00473431, 0x0047322e, 0x003e2f2a, 0x00372d29, 0x00302a26, 0x00272622,
- 0x00242323, 0x00292620, 0x003a3227, 0x004e412f, 0x00614e34, 0x00644f37, 0x0055472f, 0x003e3521, 0x001d1a12, 0x00050b03, 0x00000200, 0x00010102, 0x00010202, 0x00040504, 0x00141614, 0x002e322e,
- 0x00595656, 0x006c6969, 0x00716f6a, 0x0066655d, 0x00535149, 0x005a432f, 0x00734f37, 0x00835e40, 0x0095694d, 0x0097735d, 0x00ccb4a6, 0x00f8f0e9, 0x00fdfdfe, 0x00fbfcfb, 0x00fcfdfb, 0x00fafdf8,
- 0x00a6b5f4, 0x005167c0, 0x003d58bc, 0x00294cbb, 0x001842b7, 0x001e48b9, 0x003962cf, 0x00446fd6, 0x003f62d0, 0x003b5bce, 0x003e5cd2, 0x00425fd6, 0x004062c9, 0x003a5dc5, 0x003755be, 0x004052bf,
- 0x00424395, 0x00515485, 0x00878faa, 0x0091a0b2, 0x007b99c0, 0x005c85c3, 0x0081a2e3, 0x00a4b1e9, 0x005974a5, 0x004a639c, 0x00949dd8, 0x00c5abe9, 0x00ccc4dc, 0x00c2d4de, 0x00c1d7df, 0x00c8cbe7,
- 0x00cfcde5, 0x00d0d1e6, 0x00d9ddef, 0x00e6eafa, 0x00e9ecfc, 0x00eaecfc, 0x00eaebfd, 0x00e9eafc, 0x00eeedff, 0x00f0f2ff, 0x00f3f5f5, 0x00e7eae0, 0x00dadee7, 0x00eeeefb, 0x00f0ecff, 0x00e5e4fc,
- 0x00dedede, 0x00cacdba, 0x00979e79, 0x008a9366, 0x00869063, 0x00839259, 0x00829558, 0x00839658, 0x0086985b, 0x00839759, 0x00819658, 0x00809757, 0x007b9255, 0x007a9253, 0x007b9556, 0x007a9555,
- 0x007ca152, 0x0078954d, 0x007f9356, 0x0089925f, 0x00938965, 0x00857558, 0x00624d38, 0x00786258, 0x00ac959d, 0x00c4b1c1, 0x00e2d4e9, 0x00d9d8f2, 0x00dcd9f5, 0x00dedbf7, 0x00d8d8ee, 0x00d9d8eb,
- 0x00e2e0f9, 0x00d8dbef, 0x00d7dde9, 0x00dce2ec, 0x00cedbe3, 0x00dfdced, 0x00ece5f3, 0x00e3e4ec, 0x00dfedf5, 0x00e1f0fa, 0x00e5f3f7, 0x00ecf3fd, 0x00e2dff1, 0x00c4c4d4, 0x00d1d0df, 0x00ecf0f8,
- 0x00fdfbfe, 0x00fdfeff, 0x00fcfffe, 0x00fcfffd, 0x00a6aaaa, 0x00272f2c, 0x000d1913, 0x000c1a14, 0x000e1a18, 0x000e1b19, 0x000a1717, 0x000a1215, 0x000c0e10, 0x00130f0f, 0x000c0705, 0x00070502,
- 0x00534e52, 0x00c5c1c2, 0x00f4eae2, 0x00fde9d9, 0x00cca794, 0x00ce682c, 0x00e3651a, 0x00ef915d, 0x00fbdcde, 0x00f5edf6, 0x00f1f8fb, 0x00e4fbf7, 0x00e9f7ee, 0x00eff3ed, 0x00f0ebeb, 0x00f9eef3,
- 0x00f8effa, 0x00f8effa, 0x00f5ecf6, 0x00f3ebf4, 0x00f2eaf8, 0x00f1eaf4, 0x00efe9f1, 0x00efeaea, 0x00f1e7e4, 0x00f5ede9, 0x00e9e2d6, 0x00ebe8d1, 0x00bbbcae, 0x00757873, 0x004a4f51, 0x00484f57,
- 0x00545464, 0x00585460, 0x00565154, 0x00655c5c, 0x00695c52, 0x008f8181, 0x00e8e1e5, 0x00e3e0e3, 0x00e0e2ef, 0x00e5e5f1, 0x00e2e4ee, 0x00d8d4e1, 0x00dcd2da, 0x00dbd2d9, 0x00dedadd, 0x00949693,
- 0x0020220f, 0x001d2010, 0x001b2118, 0x00191e1b, 0x0014231c, 0x000e251a, 0x00041f10, 0x00001f09, 0x000a1a11, 0x000c1611, 0x000c1012, 0x000c0f17, 0x000a132e, 0x00112048, 0x0022396e, 0x002e478e,
- 0x003349a3, 0x0033499c, 0x002a4187, 0x00384d84, 0x0090a0c6, 0x00dfe2f2, 0x00dfdde1, 0x00dbd9df, 0x00e7e4fb, 0x00b6b6d3, 0x005d6287, 0x00515887, 0x002e3a77, 0x002f3d80, 0x004b5da1, 0x004d5da6,
- 0x00546ebd, 0x0095ace5, 0x00d1e5f8, 0x00dbedfa, 0x00cbd7e1, 0x00b7becc, 0x009293aa, 0x0072738d, 0x00a1a3b4, 0x00dde2eb, 0x00f2f7fa, 0x00f5f2f4, 0x00f5f4f3, 0x00faf7f5, 0x00fbfaf8, 0x00f8f6f6,
- 0x00fbf7fb, 0x00faf6f7, 0x00f6f3f4, 0x00f3f1f2, 0x00eeeeec, 0x00e8e7e1, 0x00e3e0db, 0x00e8e5e2, 0x00f3f3fb, 0x00f8fdff, 0x00f8fdfd, 0x00fafdfc, 0x00fefcf5, 0x00fffaef, 0x00bda692, 0x0074573f,
- 0x00714f1b, 0x006a4a15, 0x0075501b, 0x007f5624, 0x007a5220, 0x0088592d, 0x00804c22, 0x00804c23, 0x00915838, 0x008d5635, 0x00865526, 0x00806117, 0x007f5834, 0x00804e31, 0x00824a20, 0x0094571a,
- 0x00945815, 0x0084521d, 0x0081562d, 0x007d5330, 0x007c4b13, 0x00754918, 0x00794f20, 0x00764c1d, 0x00814f1e, 0x008e5828, 0x00915824, 0x00965d28, 0x009a622f, 0x009c6630, 0x0097612d, 0x0095602c,
- 0x00975d31, 0x009a6132, 0x00996231, 0x0097602f, 0x00945c2b, 0x009b6534, 0x009a6536, 0x009a6739, 0x009c6540, 0x009b6441, 0x009a6b40, 0x0093723b, 0x00966a3a, 0x009c6a3d, 0x00996a3f, 0x00956b42,
- 0x00846740, 0x00836a3d, 0x008b7141, 0x00997544, 0x00986538, 0x00936030, 0x009b6a38, 0x009e743d, 0x009f743a, 0x009c6f34, 0x00a06f35, 0x00a97039, 0x00a96e3f, 0x00a16a3d, 0x0097693b, 0x009c7345,
- 0x00b26a3d, 0x00ac6f3b, 0x00a57339, 0x009f7a38, 0x0099723a, 0x00986838, 0x00a26c40, 0x00a56f42, 0x00a6703f, 0x00a67338, 0x00a8763a, 0x00a07139, 0x009e7238, 0x00a57542, 0x00a47040, 0x00a67444,
- 0x00a46d4a, 0x009f6741, 0x00a16e48, 0x00a06c49, 0x009f6b46, 0x008d6941, 0x007f6136, 0x007e5e37, 0x0085593f, 0x0083513b, 0x00784833, 0x00653a26, 0x0062432a, 0x00624b2e, 0x00493d1d, 0x002f2908,
- 0x00493413, 0x00564426, 0x00534228, 0x00523f2a, 0x00514330, 0x00423021, 0x00463321, 0x0047341e, 0x00a38d78, 0x00d3bda2, 0x00e6dfc3, 0x00dcddca, 0x00dadcbe, 0x00d8ddb9, 0x00d9dabb, 0x00d6d6bb,
- 0x00b8b3ab, 0x008f898a, 0x007b767c, 0x00b2adb4, 0x00e9e5e9, 0x00eceded, 0x00edf1ee, 0x00edeef0, 0x00e9ecf4, 0x00e8ebf2, 0x00eff2f6, 0x00f2f5f7, 0x00797a7e, 0x000d0e11, 0x00d2d6d6, 0x00f4fcfb,
- 0x00b4b494, 0x003c3116, 0x003f2f22, 0x00392e25, 0x00362e28, 0x00302c26, 0x002f2927, 0x00362c2c, 0x002f281b, 0x00524539, 0x00948e82, 0x008fa392, 0x007b92b9, 0x00607ab9, 0x004760a7, 0x004b69a0,
- 0x00647e81, 0x008f917c, 0x00b79c78, 0x00c28e51, 0x00ca8123, 0x00af7a44, 0x008d6342, 0x006f462a, 0x00524217, 0x00574d28, 0x005d553d, 0x003e4534, 0x00222c45, 0x00182461, 0x001a2185, 0x00171b9b,
- 0x00162b4e, 0x002a3955, 0x001f253a, 0x00181b22, 0x00181a1e, 0x001a1c1c, 0x0037373c, 0x002f2d36, 0x002e3b2d, 0x00455542, 0x006b7562, 0x006f6f5f, 0x00464a37, 0x002b3120, 0x002c342a, 0x0029342c,
- 0x00242d20, 0x00392919, 0x00612c1f, 0x0097402e, 0x00eb6b4b, 0x00ea7d57, 0x00e47f5a, 0x00d67252, 0x00c06a46, 0x00c0704f, 0x00b46950, 0x009e5841, 0x00975441, 0x00995844, 0x009a5845, 0x00924e39,
- 0x00a13315, 0x00a43115, 0x00a6301b, 0x009a2d15, 0x00772712, 0x0067351d, 0x00694f38, 0x00483f30, 0x00102716, 0x0004150f, 0x000a1012, 0x000e0c08, 0x000f0a0b, 0x000c080e, 0x000b0a0f, 0x0010090f,
- 0x00110c00, 0x00352411, 0x00896a53, 0x009d7859, 0x009d6b45, 0x00a98365, 0x00c29c82, 0x00d2a587, 0x00ca9b6a, 0x00bd8b5a, 0x00b3784f, 0x00a67047, 0x00996c50, 0x008a6651, 0x00805e56, 0x00795c5d,
- 0x0079573a, 0x005e646f, 0x00345e99, 0x001064c5, 0x000d61d1, 0x001452a3, 0x003a6098, 0x005f6d8f, 0x00678691, 0x005e8c99, 0x00466976, 0x00344337, 0x00324759, 0x00476393, 0x005876c1, 0x00577cdc,
- 0x00477be3, 0x004c81e9, 0x005383e7, 0x004877cd, 0x00335fab, 0x003055aa, 0x00395bb5, 0x00426bbc, 0x003c72c7, 0x00406bd0, 0x004b67cd, 0x005c6cbd, 0x0072757a, 0x00696556, 0x00ada48e, 0x00f6f1e5,
- 0x00f6fdf3, 0x00f4fbf3, 0x00fcfefd, 0x00f9fbfa, 0x00b9bbb9, 0x00404748, 0x002f333a, 0x003a3b4a, 0x003a4052, 0x00353d53, 0x002d3253, 0x00282f54, 0x002d325d, 0x002f3563, 0x002a2d62, 0x00373d76,
- 0x002e3b6b, 0x002e396c, 0x00333b74, 0x00323b75, 0x002e3670, 0x00394756, 0x00919d9a, 0x00dadde4, 0x00e8e5f0, 0x00d4cbe5, 0x00b3a3c8, 0x009c8cb0, 0x00a4a0b8, 0x00b7bcca, 0x00c4d2d5, 0x00b7cac8,
- 0x00a2afac, 0x00a5aeb1, 0x00aaafbe, 0x00a4aabb, 0x00a9aecf, 0x00a3adcf, 0x007680ad, 0x00475284, 0x002a3f6f, 0x0032467a, 0x00434c80, 0x00504c6b, 0x00575169, 0x005b5661, 0x00625a5e, 0x00655b51,
- 0x00797c53, 0x009e9c6f, 0x009a9463, 0x007b773e, 0x0070692e, 0x00786a48, 0x009e876b, 0x00bfa176, 0x00a88844, 0x0087672b, 0x00815f37, 0x00806148, 0x00806658, 0x00826749, 0x007b5f33, 0x00846526,
- 0x00735d1e, 0x00735b1f, 0x00765b21, 0x00775c22, 0x00795e24, 0x00795f24, 0x007f6429, 0x0082672d, 0x007e6727, 0x007d6524, 0x007b682c, 0x0078713a, 0x0079733d, 0x007a773f, 0x007a7a42, 0x007a7d44,
- 0x00687e3a, 0x00657d38, 0x00708545, 0x00708848, 0x006f8948, 0x006d874a, 0x006e874c, 0x0073864a, 0x006a8642, 0x006c8743, 0x006e8747, 0x006b8546, 0x006e8343, 0x006c8241, 0x006e8243, 0x00708244,
- 0x0066833c, 0x006b8640, 0x00718545, 0x006e8443, 0x0075864a, 0x0073894b, 0x00788950, 0x00788a52, 0x006b8848, 0x00678347, 0x006a8148, 0x0071824c, 0x00738450, 0x00758652, 0x007b8954, 0x007e8b55,
- 0x00758c4e, 0x0076884c, 0x00788950, 0x007b8d55, 0x00808f59, 0x007b8b58, 0x007d8c5a, 0x00828c57, 0x00768948, 0x00738446, 0x0073814c, 0x008a9666, 0x00d4dbbd, 0x00f8fbea, 0x00fefffa, 0x00fcfefe,
- 0x00f0fff6, 0x00edf1e9, 0x00877f79, 0x00362016, 0x00411909, 0x0056210d, 0x00601e0d, 0x006b1e10, 0x006e1a04, 0x00701803, 0x007f261b, 0x00852f2a, 0x00843026, 0x007f2f22, 0x00782e25, 0x00652622,
- 0x00603f2e, 0x008c745f, 0x00b89886, 0x00c09d81, 0x00ba9165, 0x00b28251, 0x00a9744d, 0x00966d52, 0x00756151, 0x00705e58, 0x00705f5e, 0x00695a54, 0x00655750, 0x0059524d, 0x003e3b3a, 0x00293030,
- 0x00253223, 0x0028362d, 0x00384244, 0x00414953, 0x00495161, 0x004e5469, 0x0055596f, 0x0053596e, 0x00556068, 0x00616d78, 0x00707783, 0x005d5f6b, 0x0031383f, 0x002c3038, 0x00303237, 0x00363a3b,
- 0x00454837, 0x00484a38, 0x00473b2b, 0x00463623, 0x00321f0a, 0x00282821, 0x00909696, 0x00dadee0, 0x00d8dfd4, 0x00d6ddd0, 0x00e4e3d8, 0x00ebebe0, 0x00faf1eb, 0x00cdc8c5, 0x0052464a, 0x00170c12,
- 0x00070f00, 0x00101105, 0x001a140f, 0x00211612, 0x002b1a13, 0x003e291b, 0x006b5138, 0x008f704d, 0x00897130, 0x00947b33, 0x00917552, 0x00796a85, 0x004657a3, 0x002653b7, 0x002057c5, 0x00265fc6,
- 0x00193a5e, 0x00071219, 0x000a0600, 0x00110c01, 0x00111002, 0x00090e04, 0x000c120a, 0x00161d18, 0x00363f35, 0x007c847a, 0x00eef4ec, 0x00fafef8, 0x00fbfdf9, 0x00fbfbf9, 0x00fdfbfa, 0x00c1bebe,
- 0x001f291c, 0x00000300, 0x00030401, 0x00070405, 0x00110a0c, 0x00120a0a, 0x00180f11, 0x0020171b, 0x001d1f16, 0x001b1a14, 0x00171915, 0x00272f2b, 0x005b5c58, 0x00827e78, 0x00a39891, 0x00afa099,
- 0x009f9780, 0x009b9580, 0x00a19b8b, 0x00a2a191, 0x009b9b8c, 0x008b8a83, 0x00666164, 0x003e3a3f, 0x00111511, 0x00000500, 0x00010502, 0x00020602, 0x00020510, 0x00020520, 0x00151646, 0x00222262,
- 0x00071c91, 0x00091e84, 0x000a1e7f, 0x00041a6e, 0x000c237f, 0x002237a0, 0x004051c2, 0x003c4abd, 0x0004185d, 0x00122658, 0x00314270, 0x0032436f, 0x0049547b, 0x00576183, 0x00474b6b, 0x0041415b,
- 0x001f2930, 0x000c1719, 0x00040a0f, 0x0001070b, 0x00323a3b, 0x00474b4a, 0x00222122, 0x001d1c1d, 0x0021241f, 0x001e201e, 0x00313134, 0x002f2e32, 0x002a282d, 0x002b292f, 0x00302d35, 0x002f2c37,
- 0x0028272a, 0x00342f31, 0x00413635, 0x004f423e, 0x005c4e45, 0x00584c41, 0x004b4139, 0x00362f2a, 0x000d1510, 0x00000607, 0x00000005, 0x00030103, 0x00010202, 0x00010303, 0x00151314, 0x00282629,
- 0x003a3e33, 0x00484d43, 0x004b4e46, 0x00414239, 0x003a3b32, 0x00503b2f, 0x006f4b39, 0x00845c49, 0x008f694a, 0x0092735c, 0x00c9b4a6, 0x00f7f2eb, 0x00fdfdfd, 0x00fdfdff, 0x00fffeff, 0x00fffeff,
- 0x009eb0e2, 0x00475fb0, 0x003e5abc, 0x00395ccb, 0x002548c0, 0x001435ad, 0x002f4dc0, 0x004c6cd8, 0x00456fd5, 0x003967d0, 0x00476cd7, 0x005063d1, 0x003f5dd7, 0x00395cd7, 0x003a5dd6, 0x004864d1,
- 0x003b5293, 0x003a4c89, 0x006d79b9, 0x00718acc, 0x005e8dd9, 0x00547ec8, 0x0082a2ee, 0x0094b1f7, 0x00536799, 0x0049577e, 0x008f93b3, 0x00acacc6, 0x00c5c6db, 0x00ced1e5, 0x00d7d9ee, 0x00dedff6,
- 0x00d0dbe4, 0x00d2dbe7, 0x00d6dced, 0x00dce0f3, 0x00e3e6f7, 0x00e8eafa, 0x00ebeefc, 0x00edf0fe, 0x00e6eef7, 0x00e7edfa, 0x00edeff9, 0x00e7e5e9, 0x00dfdbea, 0x00eae8f9, 0x00f0eeff, 0x00eae9ff,
- 0x00cddcdb, 0x00b7c8b9, 0x008c9f80, 0x007f9662, 0x007e9850, 0x007c9553, 0x007d975c, 0x007d975b, 0x00779654, 0x00769553, 0x00789655, 0x00799755, 0x00779351, 0x00769150, 0x00799354, 0x007b9556,
- 0x00749456, 0x0075904e, 0x007f914f, 0x0084934a, 0x008a8d4e, 0x00827d4d, 0x00706145, 0x00816861, 0x00af958e, 0x00d4b7b0, 0x00e7d3d7, 0x00d5dbe8, 0x00dbe0ef, 0x00d9ddeb, 0x00d8d9ec, 0x00d7d4eb,
- 0x00d6dee9, 0x00d0d8e3, 0x00d4d9e9, 0x00dde0f0, 0x00d3d7e5, 0x00cdd0e5, 0x00e7e9ff, 0x00e4e6f0, 0x00e0eade, 0x00e7eee4, 0x00ecf1ed, 0x00ecf0f3, 0x00e8eaf5, 0x00c9cad9, 0x00cdcdde, 0x00f4f2fe,
- 0x00f5faf7, 0x00f9fdfa, 0x00fdfdfc, 0x00fefdfd, 0x00a4a8a7, 0x00242c2a, 0x000d1614, 0x000d1916, 0x0002180d, 0x0001170d, 0x00051516, 0x00071525, 0x000f0109, 0x001d0808, 0x00160205, 0x00222023,
- 0x00769ea1, 0x00d0eeec, 0x00e4eee4, 0x00f6daba, 0x00d77f40, 0x00c25d1c, 0x00d57543, 0x00f6c3ac, 0x00eaefed, 0x00e4f8f6, 0x00e1f2f5, 0x00edf6ec, 0x00fcf0e3, 0x00fcf0ea, 0x00fbf0f7, 0x00f6eeff,
- 0x00f2eeee, 0x00f1eded, 0x00f3eef0, 0x00f5eff1, 0x00f4eef0, 0x00f2ecee, 0x00f3ebef, 0x00f3ebef, 0x00eae7e6, 0x00eae7e6, 0x00efe8ef, 0x00f0e8f6, 0x00e2dce6, 0x00beb7c2, 0x00786d78, 0x00584f56,
- 0x0045433d, 0x004a4943, 0x00524e4c, 0x0065605f, 0x006f6c67, 0x008b868a, 0x00e9e0ec, 0x00e6dee8, 0x00e2dfe2, 0x00e1dde0, 0x00ede5ed, 0x00e3dae4, 0x00ddd6de, 0x00d4cdd6, 0x00e6dde9, 0x00b5acb8,
- 0x0027362b, 0x000b1c10, 0x0013241b, 0x00102219, 0x000e2317, 0x000b2116, 0x000c2018, 0x000e2118, 0x00061a0e, 0x0007180c, 0x0006150d, 0x00051707, 0x00031703, 0x0003140a, 0x0013212d, 0x00233055,
- 0x002b427f, 0x002e4488, 0x002d4186, 0x003f568c, 0x0094b1c8, 0x00d8e3e1, 0x00dfe0d8, 0x00dcdcdf, 0x00dae2f1, 0x00989ebb, 0x002e315f, 0x00363b75, 0x006567aa, 0x00939ad8, 0x008b91d0, 0x00676eaf,
- 0x00728fc7, 0x008da8da, 0x008ea1d3, 0x008a9cd1, 0x0095a5cf, 0x0093a2c6, 0x00838eac, 0x008c98b2, 0x00c4d3db, 0x00e3f1f3, 0x00e9f1f2, 0x00edf0ea, 0x00f0f1ee, 0x00f3f5ef, 0x00f9f9f9, 0x00fbf9fb,
- 0x00eff5ed, 0x00f2f6ee, 0x00f5f6f4, 0x00f5f5f4, 0x00f5f7f2, 0x00f0f4f0, 0x00eef1f0, 0x00efefed, 0x00f0f2ed, 0x00f7faf7, 0x00fcfcfe, 0x00f7fbfb, 0x00fffbf6, 0x00fff9e7, 0x00b08e6e, 0x0075461e,
- 0x007a5013, 0x00855a1e, 0x0085591d, 0x008c5f24, 0x00906128, 0x0093642b, 0x008e5e26, 0x00906028, 0x0091692a, 0x00926729, 0x008e6022, 0x008d5e20, 0x008b5e20, 0x008a5c1f, 0x0089591d, 0x00905f24,
- 0x00885d1b, 0x00885c1b, 0x00885b1b, 0x00926525, 0x00936728, 0x0096692a, 0x00976a2a, 0x009f7132, 0x009e7532, 0x009f7432, 0x00ac803e, 0x00b58847, 0x00b48746, 0x00b48646, 0x00ae7f40, 0x00af8041,
- 0x00ae813e, 0x00b38544, 0x00b58647, 0x00af8040, 0x00b18040, 0x00b48242, 0x00ad7a3c, 0x00af7c40, 0x00a87d39, 0x00ab7d3a, 0x00b18445, 0x00af8343, 0x00b08340, 0x00af813e, 0x00b08242, 0x00b58647,
- 0x00a27834, 0x00a07532, 0x00ac7e3e, 0x00b88a49, 0x00b58a47, 0x00ac813e, 0x00b88947, 0x00b98a49, 0x00b98c48, 0x00ba8d4a, 0x00ad7f3d, 0x00b58745, 0x00b28542, 0x00ac7f3b, 0x00af823f, 0x00ad803e,
- 0x00a17330, 0x00ad7f3b, 0x00b38443, 0x00af7f40, 0x00b08041, 0x00b08042, 0x00b6874a, 0x00b68848, 0x00b58843, 0x00c29451, 0x00c89958, 0x00c19553, 0x00b98c4b, 0x00c79858, 0x00c29254, 0x00cd9f61,
- 0x00c29a55, 0x00bf9551, 0x00ba8d4b, 0x00b68747, 0x00b58748, 0x00b18345, 0x00af8345, 0x00b28849, 0x00ab8542, 0x00a8813e, 0x00aa7f3f, 0x00996e2e, 0x009a6f31, 0x00a3783b, 0x00a87c40, 0x009b6f33,
- 0x008b692d, 0x008a652e, 0x008b6134, 0x00865d32, 0x00865e3a, 0x007b5532, 0x00866044, 0x007b543b, 0x00472712, 0x004b2818, 0x00654938, 0x005d513d, 0x00685a48, 0x00746758, 0x00867668, 0x00907e74,
- 0x0078705e, 0x005f5646, 0x0084746d, 0x00c2b3af, 0x00dbccc4, 0x00dbd9cf, 0x00dfe3e1, 0x00d9e2e6, 0x00d4eaef, 0x00d5e8ee, 0x00d9e8ee, 0x00d2dadc, 0x00c7cbcd, 0x004e585e, 0x00d9e7f1, 0x00edfeff,
- 0x00b8b8a4, 0x003a3521, 0x00363022, 0x00323025, 0x002d2f26, 0x00292c26, 0x002c2e29, 0x00383935, 0x006a6b63, 0x008d8984, 0x007e7a83, 0x00625d8b, 0x006f7c7b, 0x00748b8c, 0x00627a8d, 0x005265a0,
- 0x0043519d, 0x00676890, 0x00968b8b, 0x00ad9677, 0x00ac8c55, 0x00ab8243, 0x00a47336, 0x00865827, 0x00543019, 0x0047291f, 0x00483234, 0x0039303b, 0x0022294a, 0x001c2b61, 0x00152b72, 0x000c2379,
- 0x001d2d62, 0x002d3b69, 0x001b2547, 0x0011182f, 0x00131926, 0x0010151d, 0x00292c30, 0x003c3f42, 0x00555f57, 0x00768173, 0x004c5144, 0x00352e28, 0x0037322a, 0x00303027, 0x002a332a, 0x00212e27,
- 0x00242826, 0x00291913, 0x00613b27, 0x00bc7358, 0x00ff996e, 0x00fa997b, 0x00fc9e7e, 0x00fca081, 0x00f8a287, 0x00f8a48c, 0x00ee9d84, 0x00e9977f, 0x00e9957d, 0x00eb967a, 0x00e58f6e, 0x00e18969,
- 0x00db8c7a, 0x00dc8471, 0x00d2765f, 0x00c4634c, 0x00a7553d, 0x00985640, 0x0073482d, 0x00391f0b, 0x00190f01, 0x00170a03, 0x00160f06, 0x0010100a, 0x000b0d0d, 0x000b0c10, 0x000a1010, 0x000b1011,
- 0x0011100a, 0x00271a10, 0x006b5745, 0x00a3896e, 0x00b28e6a, 0x00b7986f, 0x00c6a778, 0x00caa779, 0x00c19a68, 0x00b48c5c, 0x009f774d, 0x0095744d, 0x007e684f, 0x006f6151, 0x005c564e, 0x00555353,
- 0x003b527f, 0x002d5395, 0x002359aa, 0x00175eba, 0x001e5db3, 0x003460a4, 0x00446196, 0x004a5b82, 0x004d6f99, 0x005d92c1, 0x006593bf, 0x005c6f87, 0x004c6492, 0x00607dc0, 0x006486da, 0x00527be1,
- 0x004779ea, 0x004475e5, 0x004876e1, 0x004775d4, 0x00305cb2, 0x002649a6, 0x0023449f, 0x002650a0, 0x002b5eb7, 0x003961c8, 0x00405ac0, 0x004554a4, 0x004e5158, 0x005a574a, 0x00b7b19c, 0x00f6f4e8,
- 0x00fafcfb, 0x00fbfdfb, 0x00fdfdfd, 0x00fcfefc, 0x00a4a7a5, 0x002b3032, 0x00242931, 0x002c313f, 0x00282c44, 0x002b314a, 0x00333855, 0x003c4061, 0x003a3e64, 0x0032365d, 0x00333662, 0x00303661,
- 0x002c345a, 0x002f3661, 0x00333968, 0x002f3765, 0x002e3665, 0x0028305a, 0x004a4f75, 0x009292b9, 0x00e5e8f4, 0x00dcdcee, 0x009995a6, 0x006a6676, 0x006f7179, 0x00b3bac1, 0x00edf8fa, 0x00c4d1d4,
- 0x00606998, 0x00515785, 0x005a608a, 0x00636a8b, 0x00585c74, 0x004a4d5b, 0x0045464d, 0x004c484b, 0x00545144, 0x00575447, 0x005d5347, 0x006a564d, 0x006c5a4a, 0x006f5d47, 0x00705d41, 0x00725f3f,
- 0x00715f35, 0x00867349, 0x00b9a577, 0x00a39060, 0x006e5b2a, 0x00736340, 0x00847355, 0x00937b60, 0x00987c64, 0x00907461, 0x007c6254, 0x00765f51, 0x007a654e, 0x00836b43, 0x00836633, 0x00856323,
- 0x00816128, 0x007f6028, 0x007f6027, 0x007d6125, 0x007e6228, 0x0081652a, 0x0085692c, 0x0084662c, 0x007e6127, 0x0078591f, 0x00745821, 0x00755f2b, 0x0076622e, 0x0076652e, 0x00766830, 0x00766a31,
- 0x00716e33, 0x00727035, 0x007f7f43, 0x00828547, 0x007f8445, 0x007d8548, 0x007b854a, 0x007d8448, 0x00768343, 0x00727f40, 0x006f7e41, 0x006f8243, 0x006e8141, 0x006e8445, 0x006d8346, 0x006d8345,
- 0x0065813d, 0x0067823f, 0x006a8240, 0x0069803e, 0x006b8241, 0x006e8344, 0x00708549, 0x0072864c, 0x00698143, 0x006c8449, 0x00748950, 0x0076884f, 0x006f8049, 0x006c7d46, 0x006e7f47, 0x006e8047,
- 0x00708246, 0x0077854c, 0x0077864d, 0x0077884e, 0x007a8b52, 0x007a8c58, 0x00798c59, 0x007c8c57, 0x00798850, 0x00778551, 0x00758154, 0x008c9770, 0x00d6ddc7, 0x00f7faef, 0x00fdfefd, 0x00fbfcfe,
- 0x00f7fffc, 0x00f2f2ee, 0x008b847e, 0x00413026, 0x00432316, 0x00522719, 0x004f1c0e, 0x00521709, 0x0058170a, 0x005e180e, 0x00662014, 0x00722a22, 0x00792b1d, 0x00732311, 0x0068180a, 0x005e1106,
- 0x005b2516, 0x00916351, 0x00ca9d87, 0x00cca07d, 0x00d1a16f, 0x00dfaa76, 0x00dda679, 0x00cda07e, 0x00ae937f, 0x00a0887b, 0x00988078, 0x00a68d81, 0x00ae9688, 0x009b8a7d, 0x007d7067, 0x0057514b,
- 0x002e3735, 0x002c3735, 0x00373f44, 0x00484f5b, 0x004e5667, 0x004e5668, 0x004f5668, 0x004e5768, 0x004e5666, 0x00565e70, 0x00656c7d, 0x006c7282, 0x00454e58, 0x002f363e, 0x00363a3e, 0x003f4342,
- 0x0045493c, 0x0047473a, 0x003e3527, 0x003c311f, 0x002c1e0a, 0x00292822, 0x00919795, 0x00e2e6e6, 0x00ebeee6, 0x00ebece3, 0x00efede5, 0x00efeee4, 0x00eeece4, 0x00b4b3ae, 0x00363734, 0x000d0f0e,
- 0x000d1105, 0x0013140c, 0x0013100b, 0x0016100a, 0x001b0f07, 0x00291a0c, 0x00726049, 0x00b5a180, 0x00c5ad79, 0x00c6af73, 0x00b0a579, 0x0080908f, 0x00396694, 0x001b5dab, 0x00165cbb, 0x001c5fbf,
- 0x00244681, 0x00121f44, 0x0006061d, 0x000a051a, 0x00060520, 0x00090c16, 0x00111713, 0x000d1412, 0x00292d2a, 0x00787b78, 0x00eaecea, 0x00fbfdfa, 0x00fbfdfa, 0x00fbfcf8, 0x00fbfbf7, 0x00c4c4bf,
- 0x00282d27, 0x00000300, 0x00070604, 0x000e0a09, 0x00160f10, 0x00181010, 0x00160e0d, 0x00191211, 0x00181711, 0x0018140f, 0x00161510, 0x00282b26, 0x0057544f, 0x007c736c, 0x0094857b, 0x009e8a81,
- 0x00968373, 0x008d7e6e, 0x008a7d6f, 0x00878172, 0x00848071, 0x0075746c, 0x00545252, 0x00333234, 0x00111315, 0x00010504, 0x00000501, 0x00000601, 0x0000060d, 0x00030921, 0x00141942, 0x001b1f58,
- 0x00081978, 0x00021378, 0x0003137e, 0x0002147e, 0x00011575, 0x000b1f75, 0x00364693, 0x003e4c8f, 0x00051148, 0x0010174c, 0x00262c5b, 0x00232c4d, 0x002f3452, 0x002e324c, 0x001e2135, 0x00141421,
- 0x002f2e34, 0x0029282b, 0x00030103, 0x00030204, 0x00202422, 0x003a3c3b, 0x00111110, 0x000d0c0c, 0x001f2020, 0x00232424, 0x00272728, 0x0029282a, 0x00252327, 0x0028272c, 0x00302f36, 0x0033313a,
- 0x00433641, 0x004c3d45, 0x00554247, 0x005e4a49, 0x00654f49, 0x005f4c43, 0x004e3e37, 0x00342a25, 0x00101412, 0x0004090b, 0x00000307, 0x00000002, 0x00000101, 0x00000101, 0x000d0b0b, 0x001a1818,
- 0x00262821, 0x002c2e28, 0x002a2c26, 0x0023261e, 0x0025281f, 0x00443024, 0x0063422f, 0x0079523f, 0x00835e43, 0x00896a57, 0x00c6b2a6, 0x00f8f2ec, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfc, 0x00fefdfa,
- 0x00a6b4ec, 0x004a5db2, 0x003a57b9, 0x003c60ce, 0x00375cd2, 0x00294ac1, 0x001e3db0, 0x003957c5, 0x005478e5, 0x004a75e3, 0x004972db, 0x004867cc, 0x00365fd1, 0x002f5fd3, 0x003061d4, 0x003c64d1,
- 0x004c65bf, 0x00556cbf, 0x00687cd0, 0x005573ca, 0x005182e0, 0x00557ed1, 0x007e9cea, 0x0091abf4, 0x005c6ca5, 0x00535c8c, 0x00999ac2, 0x00b8b6d7, 0x00c5c5e1, 0x00cdd1eb, 0x00d8dcf4, 0x00e3e8fd,
- 0x00eaebfb, 0x00e8eaf9, 0x00e4e8f6, 0x00dee3f2, 0x00dbe0f0, 0x00dee3f2, 0x00e5eaf8, 0x00eaeffc, 0x00ebeffc, 0x00ebeeff, 0x00eeeef9, 0x00e6e3e8, 0x00dfdbe8, 0x00ebeaf9, 0x00f0f0ff, 0x00ebedff,
- 0x00dfe5ea, 0x00bec9bd, 0x008a9a7c, 0x007b925f, 0x007a9550, 0x00779250, 0x00799354, 0x0078914f, 0x00748d4c, 0x00708949, 0x00708949, 0x00748c4c, 0x00768e50, 0x00768d50, 0x00758c4e, 0x0072884d,
- 0x006e8d52, 0x00718d4d, 0x00748e4b, 0x00768e48, 0x007b8a54, 0x00737a58, 0x006f6e62, 0x00766b76, 0x009d90a8, 0x00cebcd7, 0x00ddd0eb, 0x00d7d8ef, 0x00dadaf2, 0x00d9dbf2, 0x00d6d9f0, 0x00cecee9,
- 0x00d6d8ee, 0x00d6d9ef, 0x00cccfe6, 0x00e1e2f8, 0x00d6d7ed, 0x00c5c6e2, 0x00dadcf9, 0x00e3e6fa, 0x00dde4ec, 0x00e3e8f4, 0x00e3e7f5, 0x00e4e9fa, 0x00e4e7fd, 0x00c3c6dd, 0x00b9bcd1, 0x00edf1f5,
- 0x00fcfdfe, 0x00fafcfd, 0x00fdfdfe, 0x00fcfefd, 0x00a7adab, 0x00272f2b, 0x000f1814, 0x000d1712, 0x0005150f, 0x00071511, 0x00021411, 0x00001719, 0x000e0901, 0x00100202, 0x001c0d0a, 0x005d544d,
- 0x00d0dee1, 0x00eaebeb, 0x00f4e9dd, 0x00e6b294, 0x00c55419, 0x00b9541c, 0x00e79b6f, 0x00fce0c9, 0x00eceef1, 0x00e7f3f9, 0x00e5f0f8, 0x00f3f4f1, 0x00fdf0e5, 0x00fbf1eb, 0x00f4f0f2, 0x00eef1fd,
- 0x00f5eef1, 0x00f4eef0, 0x00f3edee, 0x00f1eced, 0x00f3edf0, 0x00f5eff1, 0x00f4eff1, 0x00f0eded, 0x00eee8ea, 0x00eeeaea, 0x00f2eaf0, 0x00f7effc, 0x00f1ebf6, 0x00e6e0eb, 0x00c0b9c1, 0x008f898d,
- 0x00575255, 0x003d3939, 0x004a4444, 0x0067625f, 0x006d6a63, 0x00868283, 0x00ddd5de, 0x00e8e1e8, 0x00e7e1e9, 0x00e4dee5, 0x00e9e1ea, 0x00e7dfe8, 0x00e2dce2, 0x00d1ccd2, 0x00e0d9e1, 0x00d2ccd4,
- 0x00525b56, 0x000c1810, 0x0014221a, 0x00112118, 0x0015281d, 0x000b2016, 0x000b1f16, 0x000a1d14, 0x000b1810, 0x000b160e, 0x000b1511, 0x000b1811, 0x0008170b, 0x0006160d, 0x00071619, 0x0008182a,
- 0x001c2a5b, 0x002d3a74, 0x002d3e78, 0x00415884, 0x0097b2c6, 0x00dde8e7, 0x00d8ddd2, 0x00e1e4e2, 0x00cacedd, 0x007d7f9d, 0x00464b71, 0x007e84b2, 0x00cacef5, 0x00cfd7f5, 0x007d86b5, 0x00495383,
- 0x00616e9c, 0x006e7aa3, 0x007582a7, 0x00929fc0, 0x00bdc5de, 0x00d8ddf0, 0x00dde1ef, 0x00e2e6f0, 0x00edeff6, 0x00f4f6fa, 0x00f4f4f5, 0x00f4f4f1, 0x00f6f5f1, 0x00f8f8f4, 0x00fafbf8, 0x00fcfdfc,
- 0x00f8fcf8, 0x00fbfef9, 0x00fcfdfb, 0x00fbfdfa, 0x00fafcf6, 0x00fbfefb, 0x00fafcfb, 0x00fcfbf8, 0x00fbf9f8, 0x00fcfcfc, 0x00fafcfd, 0x00fbfefe, 0x00fcfbf6, 0x00fff8e7, 0x00bd9f7d, 0x00a4774b,
- 0x00aa7d41, 0x00af8346, 0x00ad8144, 0x00b18548, 0x00a87b3f, 0x00ac7f43, 0x00a87b3f, 0x00aa7d41, 0x00b8894c, 0x00b98c4e, 0x00b08446, 0x00b5894a, 0x00bd9052, 0x00c49658, 0x00b7894c, 0x00ad8143,
- 0x00b98d4f, 0x00bd9153, 0x00bb9052, 0x00c39859, 0x00c59859, 0x00c29555, 0x00c29655, 0x00c99d5b, 0x00ca9c5b, 0x00c39755, 0x00c09553, 0x00c19654, 0x00c49858, 0x00ca9c5c, 0x00c89a5b, 0x00ca9d5d,
- 0x00c69757, 0x00c29353, 0x00b48545, 0x00b38444, 0x00bb8c4c, 0x00c29353, 0x00b68847, 0x00a97b3a, 0x00b38443, 0x00c39353, 0x00ca9b5d, 0x00d2a666, 0x00cda25e, 0x00d3a763, 0x00d2a664, 0x00cba05e,
- 0x00ca9f5e, 0x00c89c5b, 0x00c59757, 0x00c39655, 0x00c09654, 0x00c29955, 0x00c59a55, 0x00ca9f59, 0x00d0a461, 0x00d2a563, 0x00d1a462, 0x00d2a562, 0x00d6a965, 0x00d7ab66, 0x00d5a864, 0x00cc9f5b,
- 0x00c6a15e, 0x00cca763, 0x00cea866, 0x00d0aa67, 0x00cca662, 0x00cfaa66, 0x00d2ad6a, 0x00cfaa66, 0x00d5b16e, 0x00d7b26f, 0x00d4af6b, 0x00dfbc78, 0x00dbb873, 0x00dcb973, 0x00d8b46e, 0x00d7b56f,
- 0x00d9b774, 0x00d6b370, 0x00cfab66, 0x00cea964, 0x00cfaa66, 0x00d0a866, 0x00c49a59, 0x00c49c5b, 0x00cea264, 0x00c39759, 0x00af8345, 0x00a27738, 0x00a77d3e, 0x00aa8141, 0x00b08848, 0x00ab8444,
- 0x00aa8545, 0x00a88244, 0x00a88246, 0x00b18b53, 0x00bc9762, 0x00c49f6e, 0x00be996a, 0x00b0895d, 0x0095744a, 0x008b6640, 0x00765530, 0x0057411a, 0x00452c12, 0x003c2412, 0x003f2615, 0x00442b15,
- 0x00371f0c, 0x00462d16, 0x00654931, 0x00856a51, 0x009d8268, 0x00b7a387, 0x00bcae96, 0x00bdb5a0, 0x00cecec3, 0x00cfcbc1, 0x00b2ada2, 0x006f6455, 0x00b2a89b, 0x00c2c0b8, 0x00f7fcfb, 0x00f5fefd,
- 0x00bbb9af, 0x00343728, 0x00323228, 0x002c2f24, 0x00272c24, 0x00242821, 0x00363936, 0x00636865, 0x00b9c0be, 0x00ccd5ce, 0x00a8abac, 0x00756c7a, 0x004d4f63, 0x004f5674, 0x007179a2, 0x00808fb9,
- 0x00636fa9, 0x0053588f, 0x005d5f8c, 0x007d788f, 0x008f8681, 0x009e7e52, 0x00a47947, 0x00986943, 0x006e4230, 0x00502c21, 0x00412628, 0x0037252f, 0x00212740, 0x001b2b57, 0x0013316b, 0x000c2c77,
- 0x00142569, 0x00192a64, 0x00142352, 0x00111c41, 0x00161d36, 0x001a1f31, 0x00171c26, 0x00212629, 0x004f5450, 0x00697165, 0x00303028, 0x0026191e, 0x00332829, 0x002e2826, 0x00282c26, 0x00212c24,
- 0x00232a24, 0x00281d11, 0x006c4936, 0x00d09071, 0x00fda573, 0x00f8a385, 0x00fda796, 0x00faa491, 0x00f6a191, 0x00f19f8e, 0x00eb9985, 0x00ef9987, 0x00f69b85, 0x00f59780, 0x00f09275, 0x00ef9075,
- 0x00e09274, 0x00e0896e, 0x00e7856d, 0x00e87f68, 0x00cb6e56, 0x00a95e45, 0x006d351c, 0x002c0b00, 0x001b0e01, 0x00180e05, 0x0019130c, 0x0010130d, 0x000a0f0c, 0x00080f0d, 0x00081111, 0x00071312,
- 0x00131512, 0x001a1609, 0x00524839, 0x00938670, 0x00ab9279, 0x00b19674, 0x00b99b77, 0x00b49873, 0x00a68869, 0x0094795e, 0x007f6956, 0x00716255, 0x00575358, 0x00424656, 0x0035425a, 0x00324662,
- 0x001755b7, 0x00195aba, 0x002465bd, 0x00225eb0, 0x003f67a8, 0x005f7bb7, 0x005d74a9, 0x00496497, 0x003c67aa, 0x003c76c0, 0x00497dc4, 0x00637eb6, 0x006482c7, 0x006587d9, 0x00597fdc, 0x004d79e1,
- 0x004272e5, 0x003d6cdd, 0x00436edc, 0x004772da, 0x00466fd2, 0x003758c0, 0x002849ab, 0x001e499d, 0x001e4da6, 0x00234bb0, 0x002a44a5, 0x002a3a85, 0x003b3d43, 0x00535346, 0x00c7c3af, 0x00faf7ed,
- 0x00fbfafd, 0x00fcfcfc, 0x00fdfefe, 0x00fcfdfc, 0x00949799, 0x001d1f28, 0x001f2430, 0x002d3243, 0x002c2e4a, 0x00363a55, 0x005f607f, 0x009395b2, 0x009e9fbf, 0x00878aaa, 0x00787a9c, 0x0064698c,
- 0x005c5f80, 0x00494f70, 0x00444a6c, 0x003a4361, 0x002f3657, 0x002c305d, 0x00323362, 0x00494b75, 0x00848aa4, 0x00aab2c5, 0x00b2b9c8, 0x00a5abb4, 0x00a5aab8, 0x00bbbdce, 0x00cbcbe3, 0x009a9ab6,
- 0x00485183, 0x00363c67, 0x003a3e62, 0x00464661, 0x004f4a55, 0x005a504e, 0x00605344, 0x0065553a, 0x00745b33, 0x00775f2e, 0x00775c2f, 0x007a5b32, 0x00775c2e, 0x007a5c2e, 0x007c5e2d, 0x007c5f2c,
- 0x00866739, 0x008a6c3e, 0x00ad8f66, 0x00c4a77d, 0x009e8059, 0x006e5936, 0x0064543c, 0x0068574e, 0x0084707f, 0x00817081, 0x005f4f5d, 0x00554948, 0x00715e41, 0x007d6537, 0x0087662e, 0x00906929,
- 0x008c6933, 0x008b692f, 0x008a682f, 0x008a6930, 0x008d6c32, 0x00916f37, 0x0093723b, 0x00906f36, 0x008d6933, 0x0086632b, 0x007e5b26, 0x007e5a28, 0x007e5d2b, 0x007f622d, 0x007d632d, 0x007e632e,
- 0x00785c2a, 0x00775f29, 0x007f6c33, 0x00816e34, 0x007c6a2f, 0x007d7438, 0x007d793e, 0x007f7d41, 0x007d7f42, 0x00797d41, 0x00757c42, 0x00727c42, 0x006f7e42, 0x006e8044, 0x006f8247, 0x006e8446,
- 0x0068823e, 0x0066803d, 0x006a8442, 0x006b8444, 0x006d8444, 0x006f8547, 0x0072874b, 0x006e8348, 0x00667b3f, 0x00687d43, 0x0074864d, 0x007d8d53, 0x00798b51, 0x0073864b, 0x00718347, 0x006e8044,
- 0x006b7c42, 0x0073844a, 0x0077874e, 0x0076874b, 0x0078884e, 0x00768752, 0x00778756, 0x00788855, 0x007b8a56, 0x007a8957, 0x007a875d, 0x00919d79, 0x00d9e0cf, 0x00f9fbf4, 0x00fefdfe, 0x00fcfcfd,
- 0x00fbfdff, 0x00efedee, 0x008a8481, 0x0042362f, 0x004f372e, 0x0059382f, 0x004d261e, 0x0041160e, 0x0041120e, 0x00491a10, 0x00521f19, 0x005d241b, 0x00621c11, 0x005e1106, 0x00661507, 0x006a160c,
- 0x006a241b, 0x00864b3c, 0x00bf8670, 0x00c3906b, 0x00d5a06e, 0x00dfaa76, 0x00d7a273, 0x00c69c73, 0x00ac9077, 0x009d8470, 0x009c8270, 0x00b89a88, 0x00c5a593, 0x00bda592, 0x00af9a8b, 0x0084746a,
- 0x00454d50, 0x00424b4f, 0x004b535c, 0x00545b6a, 0x004e5668, 0x004b5366, 0x004c5368, 0x004b5269, 0x004c5469, 0x004e5669, 0x00545d6f, 0x005f687b, 0x00515b67, 0x00353d46, 0x00363b3e, 0x00363a37,
- 0x00393b31, 0x003e3e32, 0x00403a2d, 0x003a3323, 0x00231909, 0x0025211c, 0x008d8a89, 0x00dcd9d8, 0x00eee9e4, 0x00e8e3dd, 0x00e6e1db, 0x00e6e2db, 0x00e2e2db, 0x009b9e98, 0x001e2621, 0x00091310,
- 0x000d120a, 0x000f140d, 0x0010110c, 0x000f0d07, 0x00160f08, 0x001e1207, 0x006a5d48, 0x00baad8f, 0x00d3c192, 0x00d5c28e, 0x00c3c09a, 0x00829ea2, 0x00336b9a, 0x001a62af, 0x00125eba, 0x001760bc,
- 0x002c5097, 0x00172c5e, 0x000b133c, 0x00101136, 0x00090c41, 0x000c1021, 0x00191e20, 0x000b1115, 0x001a1c1f, 0x00686a6c, 0x00e5e6e8, 0x00fafbfb, 0x00fcfdfc, 0x00fcfdf9, 0x00fbfcf7, 0x00cdcdc7,
- 0x00333534, 0x00020302, 0x000a0908, 0x00130e0c, 0x001b1211, 0x00211715, 0x001d1312, 0x001b1210, 0x0017120d, 0x00120e07, 0x00130e07, 0x0027221c, 0x00574b46, 0x007a6b63, 0x008d786f, 0x0090786d,
- 0x00886c62, 0x00786155, 0x006a574a, 0x0066584b, 0x00675d51, 0x005c5952, 0x00434241, 0x002d2b2e, 0x00111115, 0x00020403, 0x00010602, 0x00000800, 0x00010a0c, 0x00081022, 0x00151c40, 0x0013194a,
- 0x00061463, 0x00061471, 0x00071579, 0x00071484, 0x000a1778, 0x00081561, 0x000d1a4f, 0x000e1b3d, 0x00070b31, 0x00171943, 0x001f1d43, 0x001c1d33, 0x00100f21, 0x0005040f, 0x000c050c, 0x00110b10,
- 0x00362d30, 0x00403938, 0x00140d0c, 0x000f0a08, 0x00141510, 0x002b2c28, 0x001a1a18, 0x00272625, 0x0048474a, 0x00373738, 0x001f1e20, 0x00212124, 0x00212126, 0x0025242a, 0x00323137, 0x003a393e,
- 0x00584050, 0x00614a55, 0x00684f57, 0x006e5457, 0x00705453, 0x00674f4a, 0x00513e3b, 0x00332825, 0x00151215, 0x00080c10, 0x0003070b, 0x00020103, 0x00020103, 0x00010102, 0x000a0908, 0x0013130f,
- 0x00181914, 0x001a1a16, 0x00191916, 0x00151711, 0x001d1f18, 0x0037261b, 0x00553828, 0x006a4835, 0x0075513a, 0x007d6150, 0x00c3afa4, 0x00f7f3ee, 0x00fdfdfe, 0x00fdfefe, 0x00fefdfb, 0x00fefef9,
- 0x00aab6ee, 0x005064b7, 0x003654b5, 0x003557c6, 0x003d65da, 0x004261d7, 0x002d49bb, 0x002a44b1, 0x003e60cf, 0x004972de, 0x004a76e0, 0x00476bce, 0x003463cf, 0x002c60d3, 0x00295dd2, 0x003562d3,
- 0x004764cc, 0x006c88e5, 0x007f99f2, 0x005475d3, 0x00507ce1, 0x006081d8, 0x008199e5, 0x009bb0f7, 0x00737eba, 0x0063699c, 0x009e9ec8, 0x00b9b6d7, 0x00c8c7e3, 0x00cecfeb, 0x00d5d8f4, 0x00dde0fc,
- 0x00eaebfa, 0x00ebedfb, 0x00edf0fd, 0x00ecf0fc, 0x00e8ebf8, 0x00e1e4f3, 0x00dfe2f0, 0x00e1e3f1, 0x00e5e7f3, 0x00eaedfb, 0x00f2f1fb, 0x00e9e5ea, 0x00e4dfec, 0x00edebf9, 0x00eeecfc, 0x00e8e8fc,
- 0x00e4eaf0, 0x00c9d4c9, 0x008b9a80, 0x0076895f, 0x00798e52, 0x00768b4e, 0x00798d52, 0x007a8d51, 0x0076884f, 0x0072844b, 0x0073864c, 0x00758750, 0x00768855, 0x00758856, 0x00748654, 0x00768856,
- 0x00738a57, 0x00738a50, 0x00738c4d, 0x00768d4e, 0x007a8b61, 0x007b8574, 0x007d8388, 0x0073748e, 0x009c97c0, 0x00cdc6ec, 0x00d5d1f7, 0x00d7daf4, 0x00d9d9f5, 0x00d8daf2, 0x00d8daf1, 0x00ced0e9,
- 0x00d4d3ee, 0x00dbdcf5, 0x00c8c9e3, 0x00d8d9f3, 0x00dadbf6, 0x00c4c6e4, 0x00cdd2ee, 0x00dee4fb, 0x00d6dcf2, 0x00dee3f7, 0x00dbdffc, 0x00c9ccf2, 0x00bebee8, 0x00babbdf, 0x00c6cae2, 0x00ecf2f9,
- 0x00feffff, 0x00fafbfb, 0x00ffffff, 0x00fffefe, 0x00a9acab, 0x00262b29, 0x000e1512, 0x000b1410, 0x00071211, 0x00010f0b, 0x0001100d, 0x0000130c, 0x00141001, 0x00110300, 0x00352119, 0x009a8b80,
- 0x00eceaeb, 0x00f0e7e2, 0x00fad3c8, 0x00d88e75, 0x00c84713, 0x00bf693b, 0x00f9c3a0, 0x00fde6d3, 0x00eae9f0, 0x00ebf0fb, 0x00ecf0fa, 0x00f3eff2, 0x00fcede5, 0x00f7efec, 0x00f2f1ef, 0x00ecf3fb,
- 0x00f6eff2, 0x00f5eff1, 0x00f4edf1, 0x00f3edef, 0x00f3eeef, 0x00f4eff0, 0x00f4eef0, 0x00f3eeef, 0x00f3eeef, 0x00f3edef, 0x00f6eef7, 0x00f7effd, 0x00f2ecf6, 0x00ebe5ee, 0x00e4dde4, 0x00cec8cc,
- 0x00a0999f, 0x005e585b, 0x003e3738, 0x005d5756, 0x0074706c, 0x007c777a, 0x00ccc5cc, 0x00ebe5eb, 0x00e9e4eb, 0x00e4dfe5, 0x00e6dee8, 0x00e6dee8, 0x00e8e1e9, 0x00d8d1d8, 0x00dcd5dc, 0x00e5dee5,
- 0x00808885, 0x00121c16, 0x0014211b, 0x00102019, 0x00192b24, 0x000e2219, 0x000f2118, 0x000e1f14, 0x000f1d13, 0x000e1a12, 0x000e1514, 0x000b1214, 0x0009110a, 0x0009140a, 0x00091512, 0x0009151c,
- 0x000a1333, 0x000f1c41, 0x0024315b, 0x00354467, 0x0090a4bb, 0x00e4eaec, 0x00deded9, 0x00e5e8e6, 0x00c1c3cd, 0x008c8da0, 0x009b9dba, 0x00cccef1, 0x00cbd1ee, 0x00989ec3, 0x00545d7f, 0x005b6587,
- 0x008c92ac, 0x00adb4cc, 0x00d2d6ef, 0x00e3e8fc, 0x00f4f8ff, 0x00f7fafd, 0x00fbfaff, 0x00f7fafe, 0x00f8f5f6, 0x00faf9fa, 0x00fdfdfb, 0x00fafafa, 0x00fbfbf7, 0x00fdfcfb, 0x00fdfdf9, 0x00fdfffb,
- 0x00fffffe, 0x00fffffb, 0x00fdfffb, 0x00fcfefa, 0x00fffffc, 0x00fcfdfd, 0x00fcfcfe, 0x00fefcfb, 0x00fcf9fa, 0x00f6f9f9, 0x00f8f8fc, 0x00f8fbfc, 0x00fffef7, 0x00fdf8e4, 0x00b69774, 0x00b38759,
- 0x00b88b4e, 0x00b6894c, 0x00b78b4d, 0x00be9254, 0x00b88c4d, 0x00ba8e4f, 0x00bc8f50, 0x00bf9152, 0x00be9052, 0x00bf9152, 0x00c39557, 0x00c89c5d, 0x00cea264, 0x00d3a768, 0x00d1a465, 0x00cb9d5e,
- 0x00c99d5f, 0x00cea264, 0x00d1a366, 0x00cda062, 0x00ca9d5e, 0x00c79a5b, 0x00cc9e5e, 0x00d0a262, 0x00cea261, 0x00cda15f, 0x00c99c5b, 0x00b88b4a, 0x00c79a59, 0x00d5a968, 0x00d8ab6a, 0x00d5a868,
- 0x00d9aa6a, 0x00d0a160, 0x00ca9b59, 0x00ca9b5a, 0x00cb9c5d, 0x00c99a5b, 0x00d2a364, 0x00ce9f5f, 0x00d2a161, 0x00daaa69, 0x00d6a766, 0x00d0a362, 0x00cea260, 0x00cca15f, 0x00c99c5c, 0x00c29856,
- 0x00cd9f60, 0x00cfa262, 0x00d7aa69, 0x00d6a968, 0x00cba05e, 0x00c99f5d, 0x00cca15d, 0x00d1a862, 0x00d2a662, 0x00cb9f5b, 0x00cfa35f, 0x00d0a460, 0x00d5a966, 0x00daae6b, 0x00e4b875, 0x00e2b672,
- 0x00ddbc79, 0x00d7b771, 0x00dcbc77, 0x00dabb75, 0x00cdad67, 0x00cdad68, 0x00dbbb77, 0x00e1c17c, 0x00d8b872, 0x00d6b56f, 0x00dab973, 0x00dbbb75, 0x00e2c27d, 0x00e1c07c, 0x00ddbc78, 0x00d2b36d,
- 0x00cdab68, 0x00d0b16c, 0x00d1b16b, 0x00cdae67, 0x00d1b26c, 0x00d7b26f, 0x00c19656, 0x00ba8f50, 0x00cca263, 0x00c19858, 0x00b58c4c, 0x00b58b4c, 0x00b98e4f, 0x00b4894a, 0x00b88e4e, 0x00b58c4c,
- 0x00aa8240, 0x00a47d3a, 0x00a47e38, 0x00aa8544, 0x00b08a4a, 0x00b89257, 0x00c09b5f, 0x00c39f63, 0x00c3a16c, 0x00c19f67, 0x00bc9864, 0x00b18e5b, 0x00aa8556, 0x00a48352, 0x00a78456, 0x00ab8757,
- 0x009a7549, 0x009a7449, 0x00987148, 0x00936e44, 0x008b643b, 0x008f6b3f, 0x008b6a41, 0x00826743, 0x0088785c, 0x007c6c4e, 0x006b5338, 0x00472e12, 0x00856d58, 0x00c1b5a3, 0x00fbfcf2, 0x00f6fbf7,
- 0x00b8b9b3, 0x0031362c, 0x002b2f23, 0x002a2b23, 0x0025271f, 0x002c2e29, 0x00696b65, 0x00aaafac, 0x00c4cdd0, 0x00c1cace, 0x00c7d2cd, 0x00babbab, 0x008684a1, 0x00514e7f, 0x004e4e85, 0x006c749c,
- 0x007e8cb2, 0x007681b4, 0x004f5f9a, 0x003f4b88, 0x00506085, 0x007e6d65, 0x008d6d55, 0x008f6d5b, 0x0080594c, 0x00633e33, 0x0041241d, 0x00382322, 0x00222532, 0x001a294e, 0x00163365, 0x000f3279,
- 0x00162d78, 0x0010266c, 0x000f225e, 0x00142159, 0x00131c41, 0x00151b34, 0x00151a26, 0x00161d1d, 0x00232521, 0x00282b24, 0x0022201a, 0x002c1e24, 0x002c2121, 0x002a2321, 0x00272821, 0x00252d26,
- 0x0021221c, 0x002e2014, 0x00785540, 0x00dd9d7d, 0x00fb9f6e, 0x00fa9c75, 0x00f69a7b, 0x00f08e6c, 0x00e9856b, 0x00e78569, 0x00e58266, 0x00e67e65, 0x00ef8364, 0x00f48565, 0x00f88a67, 0x00f78b68,
- 0x00eb976d, 0x00ee8f69, 0x00f89572, 0x00fd9679, 0x00f0886d, 0x00c5725a, 0x00743722, 0x002c0a03, 0x00161305, 0x00121008, 0x000f110b, 0x000e1109, 0x000b130d, 0x000a120d, 0x000d1310, 0x000c1512,
- 0x00131911, 0x0017160d, 0x002e2c1c, 0x0058503a, 0x00726451, 0x0088715e, 0x00907761, 0x008a7460, 0x007c6a5e, 0x006b5b5a, 0x004c434d, 0x003c3a53, 0x0024325a, 0x001e3469, 0x0022427d, 0x00274f8e,
- 0x000362e0, 0x001565d2, 0x001f62b8, 0x002a559b, 0x00395383, 0x00455b8d, 0x00415e92, 0x003b619f, 0x003468bd, 0x002e68c8, 0x003267c3, 0x005573ca, 0x006489e1, 0x005d86e7, 0x004f7de1, 0x005280eb,
- 0x004677e4, 0x004776e3, 0x00426dda, 0x00436dd9, 0x004e75de, 0x004a6bd6, 0x003355b7, 0x001f4c9e, 0x001b4da1, 0x002147a9, 0x00223f9b, 0x002d3b83, 0x003b4044, 0x005d5d52, 0x00d1d1c1, 0x00fbf8f7,
- 0x00fcfcfd, 0x00faf9fa, 0x00fdfdfe, 0x00f2f3f6, 0x007a7d84, 0x00181926, 0x001a1d2f, 0x00252a3e, 0x00262845, 0x00323555, 0x00575977, 0x009391ab, 0x00cccce2, 0x00dddcef, 0x00dbdcf1, 0x00c8cbe1,
- 0x00a3a6be, 0x009499b1, 0x00949ab1, 0x009399b1, 0x00838ba0, 0x007f82a8, 0x00696b92, 0x00545b7b, 0x00536175, 0x005e6e7f, 0x006b7b87, 0x00798693, 0x00868da1, 0x00797696, 0x00645b83, 0x00524675,
- 0x003b435f, 0x00494c62, 0x00575965, 0x005b575e, 0x00685c50, 0x00715d49, 0x00725937, 0x007b5c30, 0x00865c27, 0x00875d22, 0x00875d1e, 0x00875e1d, 0x00845f1b, 0x00835d1d, 0x00866120, 0x00876325,
- 0x008f6b36, 0x00956e3c, 0x008e6b3c, 0x00bd9a75, 0x00cca885, 0x0088724f, 0x0043361f, 0x0042353f, 0x007a74a7, 0x00746ca3, 0x00343054, 0x0036313c, 0x006e5c35, 0x00806632, 0x008b682b, 0x0094682b,
- 0x008e6a33, 0x008d6a31, 0x008d6930, 0x008e6930, 0x00906933, 0x008c6630, 0x008c6730, 0x008c6932, 0x008d6a34, 0x008a6730, 0x0086612b, 0x00875e2a, 0x00875f2b, 0x008b632d, 0x008b652e, 0x008e6631,
- 0x008a622c, 0x00875f2a, 0x00896731, 0x0089652f, 0x00825e28, 0x007c622a, 0x0079662c, 0x007a6a2e, 0x007c7238, 0x007e773c, 0x007d7a40, 0x007a7a41, 0x00747f44, 0x006f7d41, 0x00697a40, 0x00677a41,
- 0x00657e3a, 0x00657e3b, 0x0067813e, 0x006b8344, 0x006a8342, 0x006f8547, 0x006f8648, 0x006f8348, 0x00697e44, 0x006d8047, 0x00718146, 0x00738444, 0x00758747, 0x00758849, 0x00728446, 0x006e7e43,
- 0x006c7b3e, 0x006f8044, 0x00708146, 0x006f7f44, 0x006f8146, 0x00697a43, 0x00697a44, 0x006d7f48, 0x0072824d, 0x00778656, 0x007a875d, 0x00939d7e, 0x00dce2d2, 0x00fbfbf9, 0x00fdfcfd, 0x00fcfbfe,
- 0x00f9fefe, 0x00ebeceb, 0x007e7c7a, 0x003c3530, 0x0053443e, 0x0068554e, 0x0059433f, 0x00402625, 0x0029110f, 0x002b100f, 0x002d110f, 0x003c1816, 0x00440c05, 0x004d0603, 0x00631408, 0x00711b12,
- 0x00691f17, 0x007d3b2e, 0x00af7660, 0x00be8b67, 0x00c69664, 0x00ce9d6a, 0x00c29867, 0x00af8c62, 0x00947d63, 0x0088715c, 0x008c735f, 0x00a58772, 0x00b3907d, 0x00af927f, 0x00af9687, 0x008f7a71,
- 0x00535c63, 0x00505963, 0x004c5462, 0x004f5666, 0x004d5366, 0x004f556b, 0x004b5169, 0x00474d65, 0x00454e64, 0x00474f63, 0x00465165, 0x00566278, 0x005a6473, 0x003e454f, 0x002b3133, 0x00272a24,
- 0x002a2a1e, 0x00302e24, 0x00353527, 0x00302b23, 0x0015130b, 0x00241a1a, 0x008b8080, 0x00d3c5c4, 0x00d3c5c1, 0x00c3b4b1, 0x00b5aba7, 0x00c2b7b4, 0x00cfcdc8, 0x009e9d9a, 0x00242d28, 0x0005100b,
- 0x000a1009, 0x000c120c, 0x000d110b, 0x000f100a, 0x00120f08, 0x00140e04, 0x0048402c, 0x008f8a6c, 0x00aea37a, 0x00b7ab7d, 0x00a5a98b, 0x006e8fa1, 0x002b6499, 0x001e62af, 0x00125ab4, 0x00195eba,
- 0x00274f95, 0x001c366e, 0x000f204f, 0x001a2555, 0x00172662, 0x00161e36, 0x00191d26, 0x000d1218, 0x00101319, 0x0057595e, 0x00e1e2e6, 0x00f9fafb, 0x00fcfdfc, 0x00fdfefa, 0x00fdfdf9, 0x00d5d4cf,
- 0x003a3c3c, 0x00020304, 0x000e0d0d, 0x00201a18, 0x002e2320, 0x00352926, 0x00312622, 0x002b221c, 0x00251f17, 0x001e190f, 0x00181308, 0x00271d14, 0x004a3d34, 0x006f594f, 0x0080655a, 0x00816157,
- 0x00735449, 0x0062473c, 0x004f362c, 0x00473227, 0x0048362e, 0x003f3832, 0x002d2c2b, 0x00201e21, 0x00090b0d, 0x00000102, 0x00000100, 0x00000500, 0x00030b0b, 0x00161f2f, 0x00252d4a, 0x00191f4b,
- 0x0008185c, 0x0009156d, 0x00051071, 0x0006107c, 0x0008116a, 0x00060f4c, 0x000b1537, 0x00101826, 0x0008081a, 0x00150d2a, 0x000f0722, 0x00120e15, 0x00292326, 0x003f3537, 0x003d3531, 0x00352925,
- 0x0051443f, 0x004e413d, 0x00241712, 0x00211513, 0x0017100a, 0x001c1917, 0x0021201e, 0x00383635, 0x00525053, 0x00403f41, 0x001f1f21, 0x00202023, 0x00202026, 0x00232229, 0x00302f34, 0x003a393d,
- 0x005f3f50, 0x006d4f5c, 0x00765661, 0x007d5d64, 0x007c5b5e, 0x00705353, 0x00594343, 0x003a2c2d, 0x001c171b, 0x000e1015, 0x0005080c, 0x00030304, 0x00030102, 0x00040404, 0x00070806, 0x000d0e0a,
- 0x0012140f, 0x00161613, 0x0011120f, 0x0011120c, 0x00141510, 0x00281810, 0x00422b1d, 0x00573a2a, 0x00654530, 0x00745a4b, 0x00beaea3, 0x00f8f3ef, 0x00fafdfd, 0x00fcfcfd, 0x00fefefc, 0x00fefdf7,
- 0x00aab5ed, 0x005363b7, 0x00314eae, 0x00284db8, 0x003b60d4, 0x004c6be0, 0x004c6add, 0x003851c1, 0x003153be, 0x00446ddb, 0x004673dc, 0x00436ace, 0x003061ce, 0x00295cd3, 0x00275dd0, 0x003465da,
- 0x004368d3, 0x006f8bf2, 0x007f9ff2, 0x005677d9, 0x00567bdc, 0x00647fd2, 0x008093d8, 0x00a3b5f1, 0x008791c5, 0x00626894, 0x008382aa, 0x00a8a5c7, 0x00bdbbda, 0x00cacae7, 0x00d3d4f0, 0x00dbdcfb,
- 0x00e2e4f1, 0x00e6e7f4, 0x00eceef9, 0x00eef0fa, 0x00eceef8, 0x00ebedf8, 0x00e7eaf6, 0x00dfe2ee, 0x00dcdfea, 0x00e4e6f4, 0x00eeeef6, 0x00eae7ed, 0x00e7e3ed, 0x00eeebf9, 0x00eceaf7, 0x00e6e5f6,
- 0x00e1e5ea, 0x00d0d8ce, 0x00909c84, 0x0070815b, 0x00718451, 0x00758752, 0x007a8954, 0x00788550, 0x00687644, 0x005f6d3b, 0x005c6a3c, 0x0058663b, 0x00505d36, 0x004b5833, 0x004a5734, 0x004d5a35,
- 0x00596b3e, 0x00607341, 0x00687f48, 0x0070874f, 0x007a8e6d, 0x0095a39b, 0x00909da9, 0x00757e9e, 0x009aa3d2, 0x00cbcefa, 0x00cbd0f8, 0x00d5d5f0, 0x00d1d1ec, 0x00d4d2ec, 0x00d7d9f1, 0x00d0d3ed,
- 0x00d2d0e9, 0x00dddcf7, 0x00c9c9e3, 0x00cecee7, 0x00dbdcf6, 0x00c7cae5, 0x00bfc5de, 0x00dae0f8, 0x00d1d7f2, 0x00d8defb, 0x00bec3ec, 0x009194c6, 0x008a8bbc, 0x00abaed2, 0x00d8dff3, 0x00ebf4fa,
- 0x00fdfdfb, 0x00fdfdfb, 0x00fcfcfb, 0x00fbfcfb, 0x00a6a8a8, 0x00252929, 0x000a100f, 0x000a100f, 0x0005100a, 0x0006110e, 0x00030f06, 0x00001105, 0x00070900, 0x00120600, 0x005c4935, 0x00ccbaad,
- 0x00f2e7e3, 0x00fbe6e0, 0x00e2b2a6, 0x00bc6853, 0x00c44318, 0x00cb8661, 0x00fbdec0, 0x00fae9db, 0x00eef0fa, 0x00eeedfd, 0x00edecf9, 0x00f9eaf3, 0x00fbece7, 0x00f7eeea, 0x00eff3ee, 0x00e8f6f4,
- 0x00f5f1f2, 0x00f5f0f2, 0x00f4eff2, 0x00f4eff1, 0x00f4eff0, 0x00f1edee, 0x00f2edee, 0x00f4eff1, 0x00f5f2f1, 0x00f7f3f5, 0x00f7f1f8, 0x00f1ebf7, 0x00f7f1fb, 0x00efe9f2, 0x00e6e0e6, 0x00dcd6db,
- 0x00d9d4d9, 0x00b4afb2, 0x00625d5c, 0x0054504d, 0x006e6a67, 0x007d787c, 0x00bbb6be, 0x00ece6ee, 0x00e4e0e6, 0x00dfdbe1, 0x00e0dae1, 0x00e4dee4, 0x00e9e3e9, 0x00e3dee3, 0x00d9d3d9, 0x00ece5ed,
- 0x00a4aaa8, 0x002a332f, 0x00121e18, 0x00112018, 0x0013251c, 0x000d2017, 0x000c1d14, 0x000b1911, 0x000a140d, 0x000b140e, 0x000c120f, 0x000b0f16, 0x000c120f, 0x00091109, 0x0009120b, 0x000d150f,
- 0x0008101f, 0x000a0e23, 0x0016213a, 0x0027344d, 0x00848fa6, 0x00dfe3e4, 0x00e4e7de, 0x00ecedeb, 0x00d5d6df, 0x00cccddb, 0x00efeffc, 0x00edecfe, 0x00c3cae2, 0x00b4bbd2, 0x00b6bcd2, 0x00c6cde0,
- 0x00ecf1fa, 0x00f7f8fe, 0x00f9fdfd, 0x00f6fafd, 0x00fafcfc, 0x00fdfcfe, 0x00fcfcfa, 0x00fefbfb, 0x00fffcf9, 0x00fffbfa, 0x00fdfbf6, 0x00fefdfc, 0x00fefefa, 0x00fefdfd, 0x00fffffd, 0x00fdfefd,
- 0x00fefffc, 0x00fffffc, 0x00fcfefa, 0x00fdfefa, 0x00fdfdfb, 0x00fbfcfc, 0x00fbfcfd, 0x00fcfbfb, 0x00fdfbfa, 0x00fcfcff, 0x00fafcff, 0x00fbfdfe, 0x00fdfff5, 0x00fffce4, 0x00aa8c67, 0x00b08252,
- 0x00be9252, 0x00ba8f4e, 0x00bb904f, 0x00bf9452, 0x00be9351, 0x00c39856, 0x00c69b58, 0x00c79b58, 0x00c69958, 0x00c89c5b, 0x00cca060, 0x00cca161, 0x00cda163, 0x00d2a567, 0x00d1a566, 0x00c69a5b,
- 0x00c89e5e, 0x00d0a566, 0x00cea263, 0x00cfa365, 0x00ca9f60, 0x00c99f5f, 0x00d5aa6a, 0x00d8ac6c, 0x00d1a765, 0x00d2a665, 0x00d3a665, 0x00d1a463, 0x00c99d5c, 0x00cb9f5e, 0x00c29655, 0x00bd9150,
- 0x00c09252, 0x00be904e, 0x00c0914f, 0x00c59755, 0x00c39455, 0x00b8894b, 0x00ba8a4b, 0x00ba8b4b, 0x00b58645, 0x00ba8d4b, 0x00bc8e4c, 0x00b58947, 0x00b88e4c, 0x00b18645, 0x00b08343, 0x00b88e4d,
- 0x00c09454, 0x00bd914f, 0x00c09553, 0x00c69b59, 0x00c69a59, 0x00cca05f, 0x00d1a562, 0x00c99d59, 0x00c29753, 0x00cca25d, 0x00d7ad67, 0x00dbb16c, 0x00ddb26f, 0x00daaf6c, 0x00deb471, 0x00e1b672,
- 0x00dabb75, 0x00e2c47e, 0x00dabd76, 0x00cfb36c, 0x00d4b871, 0x00d1b36d, 0x00dabc76, 0x00dfc07c, 0x00cfb46d, 0x00d1b46d, 0x00dbbd76, 0x00d8b973, 0x00d6b772, 0x00d6b671, 0x00d7b872, 0x00d9ba74,
- 0x00d0b06a, 0x00d3b46e, 0x00d4b46f, 0x00d0b26c, 0x00d2b36f, 0x00d8b371, 0x00d7ad6d, 0x00d3a96a, 0x00c49a5a, 0x00c29858, 0x00d2a969, 0x00d2a969, 0x00cda364, 0x00c59b5c, 0x00c99f60, 0x00c69c5d,
- 0x00b79049, 0x00ad863e, 0x00ac853b, 0x00b48d45, 0x00b58f48, 0x00ac8743, 0x00aa8641, 0x00ac8a44, 0x00a88842, 0x00a78742, 0x00b08d4b, 0x00c5995c, 0x00c89f5e, 0x00ca9e61, 0x00c89f62, 0x00ca9e61,
- 0x00c89d62, 0x00d1a36c, 0x00cba169, 0x00c69a62, 0x00b18850, 0x00b4844a, 0x00b0854b, 0x00aa824e, 0x00a6895b, 0x009b7a4e, 0x00957547, 0x00997448, 0x009f805e, 0x00b39f85, 0x00fcf7e6, 0x00fbf9f4,
- 0x00b6b7b9, 0x002f322d, 0x002c2925, 0x002d271e, 0x00332921, 0x00463b33, 0x006f6864, 0x00777373, 0x00575a63, 0x004a555e, 0x00566164, 0x007b8380, 0x009fa2af, 0x009091b0, 0x006d699c, 0x00484987,
- 0x00535887, 0x007585a6, 0x00748ab1, 0x004b679d, 0x00314eb1, 0x00494d84, 0x005a4d6d, 0x0068576d, 0x0077605d, 0x0068523d, 0x004b3518, 0x00352906, 0x00272b26, 0x001f2c47, 0x001a2f67, 0x00112d7f,
- 0x00172e83, 0x00132978, 0x00132474, 0x00122167, 0x00132051, 0x00151f3c, 0x001a2132, 0x002e3436, 0x003c3d36, 0x001b1b17, 0x00282423, 0x00262123, 0x0026201b, 0x0026241d, 0x0024251c, 0x0020241b,
- 0x0029201e, 0x00341c13, 0x00805643, 0x00e4a183, 0x00f9996a, 0x00fa8041, 0x00fe7328, 0x00fd6822, 0x00fd6321, 0x00fc6422, 0x00fa6327, 0x00f96226, 0x00fa6026, 0x00fc6328, 0x00ff692f, 0x00fd6c2e,
- 0x00f18553, 0x00f48451, 0x00fc8259, 0x00fc825d, 0x00ff876d, 0x00e1876e, 0x00874535, 0x002b0f08, 0x00041511, 0x00011413, 0x00071915, 0x00141304, 0x0011150a, 0x0012170d, 0x00121610, 0x0011180c,
- 0x001c1f17, 0x001c1d12, 0x00262213, 0x00352d1b, 0x00645944, 0x00978783, 0x00907d84, 0x00685b66, 0x00463c5a, 0x00323059, 0x001f2661, 0x0016256b, 0x000d2d85, 0x00103998, 0x001c4db4, 0x00225ac4,
- 0x000b66e9, 0x00155fc5, 0x003365ad, 0x005c749f, 0x00536080, 0x00344e79, 0x002f5891, 0x002f68b6, 0x00346fd3, 0x003b71d8, 0x004373dd, 0x004971dd, 0x005179e4, 0x00507fe6, 0x004e83e7, 0x004b83e2,
- 0x004c7de1, 0x00497ade, 0x004673d9, 0x00436cd5, 0x00476ed5, 0x004c6ed9, 0x003a5cc0, 0x002451a3, 0x002451a3, 0x00254ba4, 0x002a4599, 0x00354583, 0x003e4244, 0x005e6457, 0x00dddfd3, 0x00f9f9fb,
- 0x00fcfdfe, 0x00f9f8f9, 0x00ffffff, 0x00e5e6eb, 0x00656b73, 0x00141826, 0x00262b3f, 0x00484c64, 0x00555678, 0x00515573, 0x0050506d, 0x00565468, 0x00706c7d, 0x009392a1, 0x00c2c1cd, 0x00d0d1dd,
- 0x00c5c4d1, 0x00a8abb6, 0x009699a7, 0x009196a5, 0x008f95a3, 0x00979ca8, 0x00959eab, 0x0099a8b2, 0x008fa1b0, 0x00627889, 0x003d506a, 0x00354663, 0x00404169, 0x00453d6a, 0x00523e75, 0x005a437c,
- 0x00615b41, 0x00605a3c, 0x00686042, 0x00695c3b, 0x00725d38, 0x00795c35, 0x00825e36, 0x00875f33, 0x00905c2f, 0x008f5d2b, 0x008d5d26, 0x008d5e17, 0x00895d15, 0x00885d15, 0x00885f19, 0x0086601b,
- 0x008a632a, 0x00906c31, 0x008e6b38, 0x00977346, 0x00c6a37f, 0x00beab85, 0x00675e4c, 0x00423954, 0x005d5db7, 0x005d62b4, 0x00494a88, 0x00555666, 0x007d683b, 0x00876a2f, 0x00946d2d, 0x0095662d,
- 0x00926835, 0x00906931, 0x008d6630, 0x0089622e, 0x0089612a, 0x0088602b, 0x008c6430, 0x008f6930, 0x00926c36, 0x00906932, 0x008d662e, 0x008b612b, 0x008b622c, 0x008e622c, 0x0091652f, 0x00926732,
- 0x009a6c35, 0x00956830, 0x00976c35, 0x00976935, 0x00966834, 0x008e6830, 0x0087652b, 0x00806126, 0x00796027, 0x00786429, 0x00776930, 0x00786f38, 0x0073753e, 0x00737842, 0x006f7942, 0x006c7841,
- 0x006a8040, 0x00647b3b, 0x006b7f40, 0x006c8444, 0x006c8441, 0x006c8645, 0x00718849, 0x006c8245, 0x006c7e44, 0x006d7e45, 0x006a7b3f, 0x00687839, 0x006b7c3d, 0x006f7f41, 0x00718143, 0x00728244,
- 0x00737f47, 0x006e7f43, 0x006f8043, 0x00708144, 0x006b7d40, 0x0067793b, 0x00697b3e, 0x00677c40, 0x0071814a, 0x0074824f, 0x0079855b, 0x0096a07d, 0x00e0e5d6, 0x00fcfef8, 0x00fcfdfe, 0x00f9fcfd,
- 0x00fcfdfe, 0x00ebebeb, 0x007d7a79, 0x00312b29, 0x004a4341, 0x005c5453, 0x00585050, 0x003d3535, 0x001e171b, 0x00130f12, 0x000d090f, 0x00130f12, 0x002c0c0b, 0x00460f0b, 0x00661e18, 0x006e1c16,
- 0x00661815, 0x00733229, 0x00996253, 0x00ac8065, 0x00bb926a, 0x00bb976b, 0x00ae8d63, 0x00997f5d, 0x00776958, 0x00665748, 0x00685646, 0x00836c59, 0x00917361, 0x00896e5e, 0x007a6257, 0x0068574f,
- 0x0048505c, 0x004d5462, 0x00525969, 0x004f5667, 0x004a5164, 0x004a5067, 0x00464c63, 0x0041475e, 0x00464a64, 0x00484d64, 0x00475167, 0x00516276, 0x00586270, 0x003f474e, 0x002e3230, 0x00323328,
- 0x00403b33, 0x00353426, 0x002e2c21, 0x00222316, 0x000e0f08, 0x002a1f1b, 0x00967e7f, 0x00c9b2b2, 0x00b89b9d, 0x00ac9494, 0x00b09899, 0x00a99696, 0x00c9bfbd, 0x00b8b6b3, 0x00474a46, 0x0007110c,
- 0x0006100b, 0x000a130c, 0x000b110a, 0x000c0f08, 0x000f1109, 0x00121106, 0x003a3624, 0x007c7961, 0x00a29a77, 0x00a09973, 0x008d9186, 0x005e759d, 0x00325aa1, 0x00295bb3, 0x001e55b3, 0x002259b8,
- 0x002d5499, 0x0018386e, 0x00021c48, 0x000b2452, 0x000d2b64, 0x0014213b, 0x00171b29, 0x00141824, 0x000e101a, 0x004b4e55, 0x00e0e1e6, 0x00f9fbfb, 0x00fcfefc, 0x00fcfffb, 0x00fcfefa, 0x00d7d7d4,
- 0x00434247, 0x00050405, 0x001b1918, 0x002f2925, 0x00433931, 0x004e433a, 0x004d4338, 0x00463f2e, 0x0040392d, 0x00323022, 0x002d2519, 0x0034251a, 0x004c352a, 0x0062483a, 0x007b594c, 0x007d5b4e,
- 0x00785148, 0x006a483f, 0x00593934, 0x004d302b, 0x00432c27, 0x00352c25, 0x0025231f, 0x001b191b, 0x0008090b, 0x00000100, 0x00010203, 0x00000300, 0x000a1310, 0x00252f35, 0x00343d54, 0x0023294c,
- 0x000d1a5e, 0x00050f60, 0x00020b62, 0x000e1670, 0x000b135d, 0x00040b3b, 0x00101531, 0x001f2129, 0x0025181f, 0x002a1f24, 0x0028181c, 0x002b1e14, 0x004d3f32, 0x006e5d52, 0x005b463a, 0x003f2e1c,
- 0x004f392e, 0x00453226, 0x0036221b, 0x0035251e, 0x002f1f1b, 0x00120e0a, 0x00171816, 0x0020221f, 0x002a282b, 0x002c2c2e, 0x00242426, 0x00222325, 0x001f2023, 0x00222126, 0x002c2b31, 0x003a383f,
- 0x005d3b4d, 0x006d4b5a, 0x007d5964, 0x0085626a, 0x00825d64, 0x00755659, 0x005f4649, 0x00453335, 0x00231a20, 0x00131218, 0x000b0c0f, 0x00060705, 0x00070906, 0x00080b08, 0x000e0f0d, 0x0011100f,
- 0x00161414, 0x00131412, 0x00141412, 0x000e110c, 0x000d0d09, 0x00180f07, 0x00352217, 0x00483021, 0x005b3e30, 0x006b554a, 0x00bdafa7, 0x00f5f6f1, 0x00fafcfe, 0x00fcfefe, 0x00fffefb, 0x00fefdf5,
- 0x00abb5ef, 0x00475cae, 0x002f49a9, 0x002c4eb9, 0x003256ca, 0x004565d8, 0x005670e2, 0x00526edd, 0x004664d3, 0x003e67d2, 0x00416cda, 0x003d65d0, 0x002e5acb, 0x002b5ad0, 0x002f5dd6, 0x003968de,
- 0x00486bdb, 0x006f92f2, 0x008da8f8, 0x00758edd, 0x007a93db, 0x008398d4, 0x008a98cc, 0x00a7b5e5, 0x009ca0ca, 0x007b7d9f, 0x009a9ab6, 0x00b4b2cb, 0x00c7c5dd, 0x00cacae1, 0x00cfd0e5, 0x00d4d6ed,
- 0x00dedfe9, 0x00e0e2eb, 0x00e6e7f0, 0x00e7e9f1, 0x00e4e6ee, 0x00e4e6ef, 0x00e6e8f1, 0x00e5e7f0, 0x00e1e1ed, 0x00dcdee8, 0x00dfdfe8, 0x00e1dfe4, 0x00dedce5, 0x00e7e6ef, 0x00e7e5f1, 0x00e1e1ed,
- 0x00e0e2ea, 0x00d2d7d2, 0x00a2aa9b, 0x008a957b, 0x008c9a73, 0x008c996f, 0x008f9b71, 0x008a946e, 0x00767e5c, 0x00697050, 0x0063694e, 0x005e644d, 0x00575c47, 0x00545846, 0x0055594a, 0x005a5d4e,
- 0x0063694b, 0x006d7552, 0x007a8560, 0x0084906a, 0x008f9e88, 0x00adbab8, 0x009eabba, 0x007d89a7, 0x009aa7d0, 0x00c2d0f6, 0x00cad4f4, 0x00d3d4e4, 0x00cdc9df, 0x00cecee3, 0x00d7d7e9, 0x00d2d4e7,
- 0x00d2d1e4, 0x00d8d8ec, 0x00d1d1e4, 0x00d3d3e4, 0x00d4d7e6, 0x00c8cede, 0x00bfc5d7, 0x00dce2f6, 0x00d1d6f2, 0x00cfd3f8, 0x00a4a8d6, 0x008387bc, 0x009396c8, 0x00aeb5d2, 0x00d1dce9, 0x00e1eeec,
- 0x00f4f2f3, 0x00f6f4f5, 0x00f5f3f4, 0x00f9f9f9, 0x00b7b6b7, 0x00494b4a, 0x00353938, 0x00323936, 0x00353c3a, 0x00313b36, 0x00323c37, 0x0028382a, 0x00363324, 0x003e3323, 0x00927e70, 0x00dfcbc2,
- 0x00eddfde, 0x00f2dad5, 0x00d7afa3, 0x00b46d58, 0x00d66b4d, 0x00d9a98c, 0x00f4e9d6, 0x00e7e1db, 0x00e7e5f3, 0x00e7e3f2, 0x00eee6f5, 0x00f3e4eb, 0x00f6e4e5, 0x00ede9e5, 0x00e6ece7, 0x00deefeb,
- 0x00eee9ea, 0x00ede9ea, 0x00ebe8e8, 0x00eae6e7, 0x00ebe7e9, 0x00ebe6e9, 0x00eae6e8, 0x00e9e6e7, 0x00ede8ea, 0x00eeeaeb, 0x00efebee, 0x00ebe6ef, 0x00e9e4ec, 0x00f4eff7, 0x00e5e0e7, 0x00d8d5d9,
- 0x00e0dce2, 0x00d7d5d8, 0x00adabab, 0x00888585, 0x0083807e, 0x00848183, 0x00bbb7bc, 0x00ebe8ec, 0x00e2dbe3, 0x00dad5db, 0x00dbd7dd, 0x00dcd8dd, 0x00ded9df, 0x00e2dee3, 0x00d6d2d6, 0x00ece9ec,
- 0x00b9bbb8, 0x00404541, 0x00141c18, 0x00131f18, 0x000f1e15, 0x000d1e15, 0x000c1b13, 0x000a1710, 0x000d140f, 0x000f1410, 0x00131416, 0x001f1e2a, 0x002f2f32, 0x00343832, 0x003b4235, 0x00434c3b,
- 0x00545a58, 0x00687070, 0x00757983, 0x00878d9b, 0x00c1c8d7, 0x00edf1ee, 0x00f6f5ed, 0x00f8f9f4, 0x00f5f5f8, 0x00f4f6f8, 0x00f9fbfc, 0x00f8f8fe, 0x00e8eef6, 0x00eff5fa, 0x00f3f9fb, 0x00f5fdfc,
- 0x00fbfdff, 0x00f7fbf8, 0x00f9faf9, 0x00fcfdfd, 0x00fafbfb, 0x00fbfcf9, 0x00fdfafa, 0x00fafbf9, 0x00fefdfa, 0x00fdfaf9, 0x00fefafa, 0x00fffffe, 0x00fffffe, 0x00fefdfb, 0x00fffefb, 0x00fefefa,
- 0x00fdfefb, 0x00fdfffb, 0x00fdfefc, 0x00fdfefc, 0x00fffefc, 0x00fdfefc, 0x00fafdfb, 0x00fafcf8, 0x00fdf9fa, 0x00fbfcfc, 0x00fdfdff, 0x00fbfdfe, 0x00fffcf3, 0x00fdfbe1, 0x00a78963, 0x00ae8551,
- 0x00b28644, 0x00b68a47, 0x00bd924f, 0x00bc914e, 0x00b98e4b, 0x00c29955, 0x00bb934e, 0x00b8914b, 0x00c59856, 0x00c39855, 0x00c09654, 0x00c39858, 0x00bf9354, 0x00c09355, 0x00c89e5f, 0x00c19959,
- 0x00cb9e5f, 0x00ca9e5e, 0x00c19657, 0x00c19656, 0x00c99d5d, 0x00c89c5c, 0x00cfa362, 0x00c69c59, 0x00c39454, 0x00ca9e5d, 0x00cfa362, 0x00c59b59, 0x00c09654, 0x00c09654, 0x00b18745, 0x00a17836,
- 0x00ac7d3e, 0x00ad7f3f, 0x00a67838, 0x00a07232, 0x00ae8040, 0x00ab7e3d, 0x00a37534, 0x00a67937, 0x00a8793b, 0x00a77a3a, 0x00b28443, 0x00b38746, 0x00b18847, 0x00ab8040, 0x00ad8241, 0x00b78f4b,
- 0x00b88c4b, 0x00b38948, 0x00b08747, 0x00af8444, 0x00b88c4a, 0x00bc8f4d, 0x00cb9e5b, 0x00c29854, 0x00be9451, 0x00d0a662, 0x00cfa661, 0x00cba25d, 0x00deb470, 0x00ddb370, 0x00dfb570, 0x00e3b974,
- 0x00e7c581, 0x00d6b570, 0x00cdad68, 0x00d2b26d, 0x00d5b671, 0x00d7b772, 0x00cbaa65, 0x00caa863, 0x00d0b06c, 0x00ccad68, 0x00cfaf6b, 0x00d0ad6a, 0x00d3b06b, 0x00d1af6a, 0x00ceac67, 0x00d6b36f,
- 0x00d9b572, 0x00cca965, 0x00cfaa67, 0x00dab572, 0x00dcb774, 0x00dfb877, 0x00dcb273, 0x00d9b172, 0x00d6ab6c, 0x00d4a96a, 0x00d8ad6e, 0x00cfa566, 0x00c49b5b, 0x00c19858, 0x00c79e5e, 0x00c89e5e,
- 0x00b68e49, 0x00ae8640, 0x00b18843, 0x00b89149, 0x00bd9850, 0x00bd9a4f, 0x00bb994d, 0x00b89548, 0x00b59047, 0x00af8f44, 0x00b69048, 0x00bd904e, 0x00bb8e49, 0x00b68a46, 0x00b68945, 0x00b98d49,
- 0x00c49355, 0x00c39455, 0x00bb8d4c, 0x00b48845, 0x00b28542, 0x00b5813c, 0x00bf8a45, 0x00bb8c49, 0x00b79152, 0x00b28d50, 0x00be9258, 0x00bc945a, 0x00ac885c, 0x00cdb798, 0x00fdf9e4, 0x00f9faee,
- 0x00b4b6b4, 0x00302b2a, 0x002d211c, 0x00402a21, 0x0046281a, 0x00482c20, 0x00553d34, 0x005f4b4c, 0x0059525f, 0x004b4b5d, 0x002b3651, 0x00172f54, 0x00384d4d, 0x0064746b, 0x00909994, 0x00737786,
- 0x00474b7a, 0x00474f81, 0x006c76ab, 0x007488bb, 0x004e6d9f, 0x002d4c8d, 0x00264289, 0x002e437d, 0x00464b6a, 0x004e4f54, 0x00444031, 0x00323213, 0x002c2e1d, 0x00232730, 0x00232745, 0x00272f65,
- 0x00152e74, 0x00152b77, 0x00152577, 0x00121f71, 0x0015225b, 0x00152242, 0x0018212f, 0x00464f4a, 0x004f5049, 0x00221f1f, 0x001c1e1a, 0x001b2519, 0x00222516, 0x00222516, 0x00212317, 0x0024211d,
- 0x00261c19, 0x00371d1d, 0x008c5b59, 0x00dd968d, 0x00ee8676, 0x00ee754d, 0x00f2723d, 0x00ef7043, 0x00e8724c, 0x00e37253, 0x00dc725a, 0x00d6745e, 0x00d27067, 0x00d16e68, 0x00d16e6b, 0x00d16f6d,
- 0x00c4725f, 0x00cf6b60, 0x00d4625b, 0x00cd5751, 0x00d3605e, 0x00cb786e, 0x00905c4c, 0x0029100c, 0x00051605, 0x00011606, 0x00091d12, 0x00151001, 0x0018150c, 0x00141507, 0x0017170c, 0x001b1b0f,
- 0x00181808, 0x00242115, 0x004a4536, 0x00817568, 0x00c2baa9, 0x00dcd4d1, 0x00948e94, 0x00565465, 0x0030375b, 0x0018275b, 0x00082365, 0x00072a7b, 0x000f3e9c, 0x002659bf, 0x00275fc9, 0x00215ec9,
- 0x001f56a2, 0x002e538c, 0x0052638c, 0x009296ac, 0x009badc6, 0x00638dbc, 0x003373b6, 0x002670c9, 0x003d79d8, 0x004c78d6, 0x004773d5, 0x00396fdc, 0x004077de, 0x004a80e0, 0x004d83de, 0x004880d6,
- 0x00487ccc, 0x004a7fd0, 0x004979cf, 0x004471cb, 0x003d67c2, 0x004466cd, 0x004365c7, 0x003660af, 0x002a57a0, 0x00274999, 0x00274088, 0x00313d70, 0x00393c39, 0x006e7162, 0x00ecf1e2, 0x00fbfdfd,
- 0x00f9fdf8, 0x00fcfdfc, 0x00fdfdff, 0x00d4d5dd, 0x004d515c, 0x00101525, 0x0040445a, 0x00888ba4, 0x00b9bbd9, 0x00babdda, 0x00adb0c5, 0x009b99a5, 0x008b8994, 0x008b898f, 0x009b9b9e, 0x00abacad,
- 0x00c7c9c9, 0x00cbced4, 0x00b2b6bc, 0x008d909c, 0x006a6d7c, 0x005a6069, 0x005c656d, 0x006b7886, 0x006e7b9e, 0x0056658b, 0x003c4874, 0x00353f67, 0x0047425a, 0x005e515c, 0x00725b5c, 0x00755b53,
- 0x00765b1e, 0x00725719, 0x00705317, 0x0075561c, 0x0077561c, 0x007c5922, 0x00805c27, 0x00825e2b, 0x00835d2b, 0x007f592a, 0x007c5522, 0x007c521a, 0x0080571b, 0x00835b21, 0x00835e22, 0x00815d21,
- 0x00816323, 0x0087692b, 0x00866930, 0x00856732, 0x00987c4a, 0x00bfaf8d, 0x00908683, 0x003d375f, 0x002a339a, 0x004a53b0, 0x006569a7, 0x0072717a, 0x007f662f, 0x008a6b2a, 0x00986e2f, 0x00966836,
- 0x008d632e, 0x008c632d, 0x008c642e, 0x008c652f, 0x008e6531, 0x008e642f, 0x00926832, 0x00956a34, 0x00916833, 0x00906631, 0x008d662e, 0x008b662d, 0x008d6930, 0x008c672d, 0x008a652b, 0x008b662d,
- 0x0090652d, 0x008d642b, 0x0091672f, 0x0090642c, 0x0091652e, 0x008f662b, 0x0091692d, 0x00916b2f, 0x008a692e, 0x007f6329, 0x00755e24, 0x006f5f24, 0x006f662e, 0x0076703b, 0x007b7744, 0x007a7844,
- 0x006c793b, 0x006e7b3d, 0x006e7c3e, 0x006c7e3f, 0x0069803f, 0x006a8343, 0x00698243, 0x00698043, 0x006d7e46, 0x006e7c45, 0x006c7b3f, 0x00697a39, 0x00687938, 0x0068793b, 0x006a7b3e, 0x006d7d43,
- 0x00728246, 0x0074864a, 0x0075864d, 0x0073834d, 0x0072834b, 0x00718243, 0x0070823e, 0x006d813d, 0x0075864a, 0x00798851, 0x00748150, 0x00919c75, 0x00e3e8d0, 0x00fbfdf1, 0x00fbfcf4, 0x00fafef6,
- 0x00fbfefc, 0x00e7e7e7, 0x00716e6f, 0x002e2c2b, 0x0041403f, 0x00474947, 0x003c4241, 0x00272e30, 0x0019232b, 0x0014212b, 0x002a3c48, 0x00243c4c, 0x002c272f, 0x003a1a21, 0x00512023, 0x005c1e23,
- 0x00531b1f, 0x00633638, 0x008c6a68, 0x00967c72, 0x009c8972, 0x009d8d73, 0x00998f77, 0x008f8b7c, 0x005a5f5a, 0x003b3d3a, 0x00373530, 0x00484136, 0x00594a42, 0x004d3f3b, 0x00463c3d, 0x003f3b3f,
- 0x003b4356, 0x00474f60, 0x004f5768, 0x004f5769, 0x004f5568, 0x00484f61, 0x003b4254, 0x003b4154, 0x0042475f, 0x0044485f, 0x00485066, 0x004b5b6c, 0x00575d67, 0x004a4c4f, 0x0046433b, 0x004c4535,
- 0x0049412c, 0x0046402b, 0x0043402f, 0x0028281c, 0x000b0f0a, 0x0032221c, 0x009d7f7c, 0x00b39592, 0x00a88084, 0x00bf999d, 0x00bc979c, 0x00a07e84, 0x00c0aaae, 0x00d3c5c6, 0x00675f5f, 0x00151311,
- 0x00050d07, 0x00081109, 0x000e130c, 0x000f140c, 0x000e1209, 0x000c1004, 0x00353525, 0x006b6b56, 0x007d7c63, 0x0069664b, 0x00585449, 0x0046465a, 0x003c4471, 0x003a4984, 0x0033498b, 0x002c458c,
- 0x00224276, 0x00153465, 0x00032056, 0x000e2e6c, 0x00133581, 0x00172847, 0x00111621, 0x00161a20, 0x0012161e, 0x00464a4f, 0x00d7dadd, 0x00f7faf9, 0x00fdfffe, 0x00fdfefd, 0x00fdfcfc, 0x00dbd9da,
- 0x0047484a, 0x00050503, 0x0025231f, 0x00433d34, 0x005f5646, 0x006e6451, 0x006d624e, 0x00686046, 0x00635b46, 0x00544f39, 0x0047412d, 0x00504130, 0x00584433, 0x006a4d3c, 0x007e5b4b, 0x00886154,
- 0x007f574b, 0x00754f47, 0x0065423e, 0x00563634, 0x00472b2a, 0x00332621, 0x00221d19, 0x00181213, 0x000c0607, 0x00030000, 0x00010000, 0x00010400, 0x0010150d, 0x002c3034, 0x00424554, 0x002c2f49,
- 0x00050e63, 0x0009115e, 0x00020b4e, 0x001a255b, 0x00363d70, 0x001b204d, 0x000f1039, 0x00161232, 0x00352a2c, 0x004d4130, 0x005b4d36, 0x0055412b, 0x00563e29, 0x00573b26, 0x00432612, 0x004a2c15,
- 0x00523621, 0x00492e1d, 0x003c2012, 0x004b3229, 0x004b332b, 0x001d1514, 0x00131313, 0x00232323, 0x00161617, 0x001b1c1d, 0x00262628, 0x00242427, 0x00212125, 0x00222126, 0x0029282e, 0x00333139,
- 0x004e3340, 0x005c404b, 0x0073535d, 0x007e5d67, 0x007b5a63, 0x0070535a, 0x005e464b, 0x0047353a, 0x00262024, 0x00161519, 0x000d0e10, 0x000f100c, 0x0012140e, 0x00151813, 0x00161815, 0x00171616,
- 0x00161614, 0x00141512, 0x0010100e, 0x00090b08, 0x000c0a09, 0x00120d09, 0x0021160f, 0x0038271c, 0x004d372a, 0x00614f45, 0x00b6aea5, 0x00f3f4f0, 0x00f6fcfd, 0x00fcfdfe, 0x00fcfdf9, 0x00fdfcf2,
- 0x00a3afe6, 0x004356a7, 0x002b44a3, 0x002144ae, 0x003251c6, 0x003b59ca, 0x004c67d5, 0x00556ed9, 0x005577df, 0x005177e4, 0x00486fe0, 0x003e60d6, 0x003454ce, 0x003253d0, 0x003d60d8, 0x004a6de5,
- 0x004b71d5, 0x006988da, 0x00a3bbf7, 0x00b8c7ed, 0x00d0d7eb, 0x00cad6e8, 0x00cad8e8, 0x00d5dded, 0x00d7dbea, 0x00cfd2de, 0x00d4d6dd, 0x00dedfe2, 0x00e0e1e4, 0x00e4e4ea, 0x00e7e8ed, 0x00e8e9f0,
- 0x00e5eaed, 0x00e6eaee, 0x00e8eaef, 0x00e9ebf0, 0x00ebebf0, 0x00ebebef, 0x00ebebf0, 0x00ececf2, 0x00e9ebf0, 0x00e9ecf1, 0x00ebecef, 0x00eae9ee, 0x00eae9ee, 0x00ebeaf2, 0x00eae9f1, 0x00ecebf4,
- 0x00e6ebea, 0x00e2e8e2, 0x00dbe0d6, 0x00d7ddce, 0x00d4dac5, 0x00d2d7c3, 0x00d2d6c4, 0x00d0d3c7, 0x00cccdc5, 0x00c8c9c4, 0x00c5c4c3, 0x00c0bfbf, 0x00c0bec2, 0x00c2bfc5, 0x00c3bfc7, 0x00c6c2cd,
- 0x00c8c3be, 0x00cbc6bb, 0x00d1ccc1, 0x00d6d3c1, 0x00d7d9cc, 0x00dde1df, 0x00d5dce2, 0x00ccd4e3, 0x00d2dbe7, 0x00dce8ee, 0x00e1ebf0, 0x00e3e6e5, 0x00e2e5e8, 0x00e4e5e8, 0x00e5e6e7, 0x00e3e4e5,
- 0x00e8eaeb, 0x00e8ebed, 0x00e8eaec, 0x00e8eaea, 0x00e7ecea, 0x00dee6e4, 0x00e1e9e9, 0x00e8eff1, 0x00e3eaf3, 0x00dadff1, 0x00cdd2ec, 0x00c3c9e6, 0x00cdd1ee, 0x00d6ddeb, 0x00e1ebe9, 0x00e7f3e5,
- 0x00f2f2f3, 0x00f0eeef, 0x00f5f3f4, 0x00f5f3f4, 0x00e0ddde, 0x00c2c3c2, 0x00bbbfbd, 0x00b9bfbc, 0x00bbbeba, 0x00bbbfbc, 0x00babebc, 0x00bbbeb9, 0x00c0b4b5, 0x00c8bab9, 0x00ded2d0, 0x00efe5e8,
- 0x00e9efe8, 0x00eae9e2, 0x00e6d8d1, 0x00e5c4bb, 0x00f6c7b8, 0x00efe2cf, 0x00ecefe2, 0x00e8ede6, 0x00edeaf5, 0x00efe8f5, 0x00f2eaf7, 0x00f4e8ed, 0x00f3eaec, 0x00edebe9, 0x00e8eeed, 0x00e4f0ef,
- 0x00efeded, 0x00efeded, 0x00eeeded, 0x00eeecec, 0x00efecee, 0x00f0edef, 0x00efecee, 0x00eeeaec, 0x00efeded, 0x00f0eeee, 0x00eeeced, 0x00eceaef, 0x00f0edf2, 0x00efebf1, 0x00edebef, 0x00edeaef,
- 0x00ebe9ec, 0x00eeecee, 0x00e9e8e9, 0x00dededf, 0x00d0cecf, 0x00cfcdd0, 0x00dcdbdd, 0x00eae9ea, 0x00f0ebf0, 0x00ede9ed, 0x00e7e5e7, 0x00e5e4e5, 0x00dad8db, 0x00d6d3d7, 0x00d8d6d9, 0x00e4e1e5,
- 0x00c2c4be, 0x005f635e, 0x00212723, 0x00252e29, 0x00323e38, 0x003c4a42, 0x004d5a52, 0x005f6964, 0x00767978, 0x00838583, 0x008e8e8f, 0x009a99a3, 0x00a8a7ad, 0x00b8b8b6, 0x00c6c6bd, 0x00cccdbc,
- 0x00dae1cc, 0x00e6e8d8, 0x00f2f3ed, 0x00f6f9f8, 0x00fafaff, 0x00fbfdf8, 0x00fafdf5, 0x00fbfef7, 0x00fefdfe, 0x00fcfcfc, 0x00fbfcfe, 0x00f8fbf9, 0x00fbfdfd, 0x00fafdf7, 0x00fbfffa, 0x00f8fdf6,
- 0x00f3fdfb, 0x00f7fdfb, 0x00faffff, 0x00fafefa, 0x00f7fbfb, 0x00f9fdfa, 0x00f8fefc, 0x00f9fefa, 0x00f8fefd, 0x00fafefc, 0x00fcfdfc, 0x00fcfdf9, 0x00fdfefd, 0x00fdfdfa, 0x00fffefe, 0x00fdfbfb,
- 0x00f9fbf6, 0x00fcfdf9, 0x00fefffd, 0x00fefefc, 0x00fcfbfa, 0x00f8faf8, 0x00f8fcf9, 0x00f9faf7, 0x00f9f4f4, 0x00fcfcfb, 0x00f6faf9, 0x00f7fcfb, 0x00faf8eb, 0x00fcf5d8, 0x00a7895f, 0x00a17841,
- 0x00a17833, 0x00a47b37, 0x00af8541, 0x00b18844, 0x00b88e4b, 0x00b48b48, 0x00b8904c, 0x00b7914c, 0x00ab833f, 0x00aa813f, 0x00b38948, 0x00b08646, 0x00b38949, 0x00b18748, 0x00a77e3f, 0x00b18849,
- 0x00b9904e, 0x00b38a48, 0x00a67e3d, 0x00aa8241, 0x00b08747, 0x00ad8544, 0x009f7735, 0x00ad8644, 0x00b28646, 0x00b88e4c, 0x00aa813f, 0x0099702e, 0x009f7634, 0x00ad8442, 0x009e7532, 0x00a9813e,
- 0x00a07433, 0x00a07434, 0x009e7232, 0x00a17534, 0x00a27735, 0x00a47936, 0x009c712f, 0x00a17634, 0x00aa7e3e, 0x009d7231, 0x00ac8240, 0x00ae8542, 0x00af8746, 0x00b08645, 0x00ab803f, 0x00ad8542,
- 0x00ae8643, 0x00b68d4b, 0x00b28b4a, 0x00b28a48, 0x00b58c4a, 0x00b28845, 0x00b18945, 0x00bc9451, 0x00c79f5a, 0x00c89f5b, 0x00bf9751, 0x00b88f4a, 0x00c29a55, 0x00c59c58, 0x00cfa762, 0x00d2a964,
- 0x00d4a966, 0x00b68b4a, 0x00c19655, 0x00c89d5c, 0x00c39858, 0x00d1a665, 0x00ab803e, 0x009a6f2d, 0x00c29553, 0x00c99c5b, 0x00b8894a, 0x00bf8f50, 0x00c49354, 0x00c79857, 0x00c19253, 0x00b8894b,
- 0x00b98d4b, 0x00b98b4a, 0x00b58646, 0x00c29354, 0x00cc9e5f, 0x00c89c5d, 0x00c99e60, 0x00c9a061, 0x00c39b5b, 0x00b99051, 0x00b78d4d, 0x00b08747, 0x00b48a4b, 0x00b3894a, 0x00bd9153, 0x00bf9153,
- 0x00b88f52, 0x00b18648, 0x00b4874d, 0x00bc9152, 0x00b99152, 0x00b9954f, 0x00bc9853, 0x00b7934c, 0x00b8934d, 0x00b99650, 0x00b69150, 0x00b18746, 0x00b28a49, 0x00b78d4d, 0x00ad8345, 0x00a77d3e,
- 0x00ab843b, 0x00b48c48, 0x00b48d4b, 0x00b68f4d, 0x00b48d49, 0x00b98942, 0x00b6843d, 0x00ba8c4a, 0x00bc9554, 0x00b99252, 0x00b79350, 0x00bb9755, 0x00b89d6b, 0x00d8c8aa, 0x00fefef0, 0x00f8fdfa,
- 0x00b7b4b8, 0x00302325, 0x002f1c15, 0x003b1a0d, 0x004c2110, 0x006a4030, 0x008b675a, 0x00aa918b, 0x00cdc0cd, 0x00cac7d7, 0x00a5acc2, 0x00678395, 0x003b4f61, 0x00293841, 0x0047524f, 0x00778377,
- 0x007e8490, 0x00595d82, 0x004c5184, 0x005b6697, 0x005f758f, 0x003f6192, 0x002d5395, 0x00244183, 0x002b386f, 0x0032395f, 0x00303247, 0x002d2f2e, 0x00303028, 0x002b2a25, 0x002b282b, 0x002d2d37,
- 0x001d306c, 0x0018296f, 0x00162473, 0x00121e6f, 0x00121f59, 0x00111e3d, 0x00111c25, 0x00434e43, 0x0057594f, 0x00272525, 0x00141814, 0x00102012, 0x00172011, 0x001c2115, 0x0022241d, 0x00222325,
- 0x0026222e, 0x00311f35, 0x007a5369, 0x00c1889a, 0x00d78491, 0x00c08393, 0x00b28094, 0x00a77b91, 0x009e7a9d, 0x009878a4, 0x008d75a6, 0x008072a8, 0x007970b2, 0x007470b2, 0x007371b3, 0x007071b6,
- 0x008f6c94, 0x0099688e, 0x009f5d83, 0x00994a6b, 0x0094465b, 0x009c5d66, 0x00704643, 0x00210c07, 0x00141106, 0x000a0e00, 0x0011160b, 0x0012110a, 0x00100e0a, 0x00171714, 0x00191512, 0x0014130d,
- 0x0036322e, 0x00626057, 0x00b5afa8, 0x00e5ddd5, 0x00fcf5e9, 0x00e0e2d8, 0x00858989, 0x006c767d, 0x004a5c79, 0x00112b56, 0x0010356c, 0x00154283, 0x002d5faa, 0x00366bb8, 0x00245ca9, 0x00235ba6,
- 0x00465f95, 0x004a5a85, 0x00707596, 0x00b0b3cb, 0x00bbd2f5, 0x0078a6e3, 0x004181cf, 0x00357edb, 0x004e87e4, 0x00517acf, 0x00466ec8, 0x00396ed8, 0x003f71d7, 0x004279d6, 0x00477ed8, 0x00477fd5,
- 0x004d7ecf, 0x004c7fce, 0x004c7ece, 0x004574c6, 0x003c68bd, 0x004767cd, 0x004360c3, 0x003056a1, 0x00325a9d, 0x0035529a, 0x00253878, 0x002e3762, 0x003d3c36, 0x00808071, 0x00f5f7eb, 0x00f9fbfd,
- 0x00fbfdf6, 0x00fcfefb, 0x00fafbfd, 0x00c8c9d1, 0x003c3e4c, 0x00111526, 0x0033364c, 0x0063647c, 0x009c9fb7, 0x00c3c8df, 0x00e3e7f9, 0x00e3e3ec, 0x00c3c2ca, 0x00a4a4a9, 0x00939496, 0x00969799,
- 0x00b5b9bb, 0x00ccd0d7, 0x00d9dce9, 0x00ccd0de, 0x00acafc4, 0x008489a6, 0x00454a6f, 0x00343961, 0x003b3f71, 0x00393e6c, 0x00494b73, 0x004d4c68, 0x0061554f, 0x006d5d3e, 0x00725c2b, 0x0070591c,
- 0x007a4d1c, 0x0079501c, 0x007c5320, 0x007f5821, 0x007a561c, 0x00785518, 0x00775517, 0x00745717, 0x00775919, 0x00735616, 0x006e5015, 0x006d481c, 0x00755023, 0x007b5725, 0x007f5e2b, 0x0080602b,
- 0x0083652a, 0x00806223, 0x007d6125, 0x007b6028, 0x007f662d, 0x00958268, 0x00786b74, 0x00292854, 0x002e3993, 0x005e67b3, 0x006a6c9b, 0x00786b6b, 0x0086652d, 0x0090692b, 0x00926c2d, 0x008f6935,
- 0x008d662f, 0x008b632c, 0x008a612c, 0x008c622e, 0x00906732, 0x00926934, 0x00966c38, 0x00976d3a, 0x008d652e, 0x008a602a, 0x0088622a, 0x0086672c, 0x0089682f, 0x0086642b, 0x0086642b, 0x0088652e,
- 0x008b642e, 0x0089652d, 0x0089632a, 0x00866127, 0x00866027, 0x00896125, 0x0090682b, 0x00926c30, 0x00957036, 0x00906d36, 0x008b6c34, 0x007d642c, 0x00745e29, 0x00715f2c, 0x00796934, 0x007d6e38,
- 0x00787439, 0x00757339, 0x006f7339, 0x006a7539, 0x0067793c, 0x00687e40, 0x00678042, 0x00667e41, 0x006b7b42, 0x006c7941, 0x006d7b40, 0x006b7c3d, 0x0067793a, 0x00647639, 0x0067793d, 0x006c7c43,
- 0x0071804a, 0x0071814b, 0x0071814d, 0x006f7e4d, 0x00738350, 0x0075864c, 0x0078894a, 0x0074874a, 0x00768752, 0x00798858, 0x00778359, 0x0097a27e, 0x00e4ead2, 0x00fbfdee, 0x00fefff3, 0x00f9fbf0,
- 0x00fefefe, 0x00e5e5e6, 0x00686867, 0x00272523, 0x003a3a38, 0x00454745, 0x00464c4b, 0x00353e3f, 0x00222f38, 0x0021323a, 0x0042596a, 0x003f5f78, 0x003a3e4f, 0x003c2933, 0x0047272a, 0x004f2527,
- 0x00542f35, 0x00795d62, 0x009e8a8f, 0x00918381, 0x00877d73, 0x008f887e, 0x00a19f98, 0x00979b9b, 0x00536168, 0x002e3a3f, 0x00262d2f, 0x00353534, 0x00493f42, 0x00453e44, 0x003d3b45, 0x00353646,
- 0x00394255, 0x00444b5d, 0x004d5565, 0x004a5262, 0x004a505f, 0x00434a58, 0x00363d4e, 0x003b4054, 0x00474f64, 0x004c5269, 0x004d5469, 0x004d5966, 0x00616066, 0x005f5856, 0x004f4234, 0x0047361f,
- 0x004c391c, 0x0054462a, 0x00514733, 0x003b372a, 0x001a1c18, 0x003d3428, 0x009d877f, 0x00a48c86, 0x00a68483, 0x00ccabac, 0x00c6a0a5, 0x00a07c83, 0x00c3aaaf, 0x00dacbcc, 0x00796e6e, 0x00211c1a,
- 0x00181c15, 0x002b2d25, 0x00303129, 0x0026271f, 0x002a2a21, 0x00222216, 0x00312f20, 0x00484433, 0x00434230, 0x00302e1b, 0x00272414, 0x002a271d, 0x00322f37, 0x0038364f, 0x00353858, 0x002d335a,
- 0x001e2b54, 0x00182b58, 0x00112760, 0x00142e6f, 0x001e398a, 0x0023324d, 0x00141b1d, 0x000d1315, 0x00091011, 0x0044494a, 0x00d5d9d9, 0x00fafcfc, 0x00fcfdfd, 0x00fefdfe, 0x00fefcfe, 0x00dedade,
- 0x004d4e4e, 0x000c0b07, 0x00342f28, 0x00554e40, 0x0072694f, 0x0083795a, 0x00827859, 0x00817857, 0x007d7758, 0x00716d4d, 0x00686145, 0x006f6049, 0x00725d48, 0x007a5d49, 0x0083614f, 0x00876452,
- 0x00845d50, 0x00775248, 0x0064423c, 0x00533531, 0x00442727, 0x0033221e, 0x00261b17, 0x001e1112, 0x000e0409, 0x00060000, 0x00050200, 0x00060700, 0x001a1c12, 0x00333633, 0x00464750, 0x003f4052,
- 0x000a0f6c, 0x000b1060, 0x00111a57, 0x00283460, 0x00434876, 0x002c2f62, 0x000c0e41, 0x0004032f, 0x00281d29, 0x00524c3a, 0x00827259, 0x00876b55, 0x0070503c, 0x004d2b17, 0x0044200d, 0x00694730,
- 0x0084634c, 0x00563723, 0x003c1d0c, 0x00523729, 0x006e5449, 0x00403733, 0x00262726, 0x00333334, 0x00212120, 0x001c1c1d, 0x002a292d, 0x0028272b, 0x00222126, 0x00202025, 0x0025252a, 0x002b2b30,
- 0x003c2c33, 0x0047353b, 0x00604850, 0x006b525b, 0x006c505b, 0x00664c56, 0x00564048, 0x00423138, 0x00242023, 0x00171619, 0x00131413, 0x00181913, 0x001e1f19, 0x001f211d, 0x001e211d, 0x001e211d,
- 0x001b1b19, 0x00151713, 0x00100f0e, 0x000b0a09, 0x00090608, 0x000c0b0b, 0x00161411, 0x002e251e, 0x00463429, 0x005a4c43, 0x00b2ada5, 0x00f1f5f1, 0x00f6fdfe, 0x00fcfeff, 0x00fbfcf7, 0x00fefdf2,
- 0x00a4abe6, 0x004251a4, 0x003047a6, 0x002b49b5, 0x002c4cbf, 0x00314ebe, 0x003851c0, 0x00425bc7, 0x005474db, 0x00587ce5, 0x005377ea, 0x004765e3, 0x003751ce, 0x003752cd, 0x004463dc, 0x004b6ee2,
- 0x004f70d2, 0x006082ca, 0x00a8c1f5, 0x00dce7f8, 0x00fafdf4, 0x00f6fbfa, 0x00f8fdff, 0x00f9fdfd, 0x00fcfdff, 0x00f9fafc, 0x00f8f9fb, 0x00f7f8f7, 0x00f9f9f9, 0x00fafaf9, 0x00fcfcf8, 0x00fdfcfa,
- 0x00f9fafb, 0x00f8f9fb, 0x00f9f9fc, 0x00fafafc, 0x00fbfafc, 0x00fafbfb, 0x00fafbfc, 0x00f9fbfd, 0x00fafafd, 0x00f9fbfc, 0x00f9fafb, 0x00f9f7fa, 0x00faf9fc, 0x00f9f8fb, 0x00fcfafc, 0x00fbf9fb,
- 0x00fdfbfd, 0x00fcfcf9, 0x00fafcf6, 0x00f8fbf4, 0x00f9fcf3, 0x00fcfef7, 0x00fcfdf6, 0x00fcfbf7, 0x00fafaf7, 0x00f9f9f8, 0x00faf9f8, 0x00fbfafa, 0x00fdfafd, 0x00fcf9fd, 0x00fcf8fd, 0x00fcf8ff,
- 0x00fff6fd, 0x00fefaf7, 0x00fffbf8, 0x00fdfdf1, 0x00fffff4, 0x00fdfdfa, 0x00fbfafd, 0x00f8faff, 0x00fafbfc, 0x00f9fdf4, 0x00fbfdf3, 0x00fafbf8, 0x00fbfdf8, 0x00f9faf5, 0x00fbfcf7, 0x00f8fcf5,
- 0x00fcfbf7, 0x00fafaf7, 0x00fbfbf9, 0x00fbfbf7, 0x00fafbf7, 0x00f8fbf7, 0x00f7fcf8, 0x00f9fef7, 0x00f7fefb, 0x00f5f9fb, 0x00f4f7ff, 0x00f3f8fb, 0x00f7f9fe, 0x00f5f9fb, 0x00f7fcf5, 0x00f7fceb,
- 0x00fbf8f9, 0x00fcf9fa, 0x00fcfcfb, 0x00fcfdfc, 0x00f9f9f9, 0x00f9fafa, 0x00f8fbfb, 0x00f9fcfb, 0x00fafdfc, 0x00f9fcfa, 0x00fcfbfd, 0x00fcf9fb, 0x00fff8fb, 0x00fcf8f6, 0x00fef8fa, 0x00fbf6f9,
- 0x00fafdff, 0x00f6fdfb, 0x00f9f9f4, 0x00fdf7f1, 0x00fef5ef, 0x00f8faf3, 0x00f6faf7, 0x00f8fbf9, 0x00f9f9fe, 0x00fcf9ff, 0x00fdf6fc, 0x00fef8fc, 0x00fdf8f9, 0x00f9faf9, 0x00f8fbfa, 0x00f6fcfa,
- 0x00fafbf9, 0x00fafafa, 0x00fbfafb, 0x00fcfbfc, 0x00fcfbfb, 0x00fbfbfa, 0x00fbf9fa, 0x00fbf8fa, 0x00faf9f9, 0x00fbfafb, 0x00f9fafa, 0x00f9f9fc, 0x00fdfafc, 0x00fcfafc, 0x00fbfafb, 0x00faf9fd,
- 0x00faf8fb, 0x00faf9fb, 0x00fbfcfc, 0x00fafafa, 0x00fbfaf9, 0x00f8f7f7, 0x00f9fafa, 0x00fcfcff, 0x00fdfbfc, 0x00fcfafb, 0x00f8f9f8, 0x00f9fafa, 0x00dbd9dd, 0x00cac8cb, 0x00d1d0d1, 0x00e1dfe0,
- 0x00dbdcda, 0x00b0b3b1, 0x00999e9a, 0x009fa59f, 0x00aab2ad, 0x00b6c0bb, 0x00c3ccc7, 0x00d4dad8, 0x00e6e7e4, 0x00edecec, 0x00f3eff2, 0x00f5f3f7, 0x00f7f6f7, 0x00fbfaf8, 0x00fefdf9, 0x00fdfef7,
- 0x00fbfceb, 0x00fcfdef, 0x00fffff7, 0x00fdfdfc, 0x00fcfafd, 0x00fefcfe, 0x00fefbf9, 0x00fdfcf8, 0x00fdfcfa, 0x00fffcfa, 0x00fefcfe, 0x00fefefd, 0x00fdfcf9, 0x00fcfdf7, 0x00fbfdf5, 0x00fbfcf8,
- 0x00fafffe, 0x00f9fefd, 0x00fbfeff, 0x00f9fefb, 0x00f9ffff, 0x00fafffe, 0x00f9fdfe, 0x00fafffe, 0x00fdffff, 0x00fbfffe, 0x00fbfdfd, 0x00fefffd, 0x00fbfbfb, 0x00fcfcfa, 0x00fffffd, 0x00fefefc,
- 0x00fdfefb, 0x00fbfbf7, 0x00f9f8f5, 0x00f2f2ee, 0x00e3e3e3, 0x00d5d6d8, 0x00c6c8c8, 0x00cccccb, 0x00efeeed, 0x00fcfcfa, 0x00f5f9f8, 0x00fafdfd, 0x00fffdee, 0x00f3e3c3, 0x00987c4d, 0x009c7339,
- 0x009f7835, 0x00926b28, 0x008d6623, 0x0089621f, 0x00926a28, 0x009a7230, 0x00a8813f, 0x00b08847, 0x00a67f3e, 0x00a27b39, 0x00a77e3d, 0x00a17837, 0x00a47b3b, 0x00a17939, 0x00956c2c, 0x009c7333,
- 0x00a37b39, 0x00a87f3e, 0x00a77e3e, 0x00a87f3e, 0x00a47c3c, 0x00a57e3d, 0x00a67f3d, 0x00aa8241, 0x00a7813f, 0x00b08947, 0x009d7433, 0x00936a28, 0x00936b28, 0x00946c29, 0x00946c29, 0x00a07734,
- 0x009e7532, 0x00a27937, 0x00aa803e, 0x00aa803f, 0x00af8543, 0x00ab813f, 0x00af8443, 0x00b18645, 0x00b48c49, 0x00aa803f, 0x00af8744, 0x00ac8542, 0x00b08848, 0x00b38a4a, 0x00b28948, 0x00b38949,
- 0x00b28b48, 0x00b48d4a, 0x00b38d4a, 0x00b99351, 0x00bd9553, 0x00b8914e, 0x00be9855, 0x00bf9955, 0x00bf9751, 0x00c29a54, 0x00bc944f, 0x00bc9450, 0x00c09853, 0x00b8904b, 0x00b68e4a, 0x00b48c49,
- 0x00bb8b4b, 0x00cc9c5d, 0x00c79757, 0x00b08040, 0x00b78648, 0x00c49455, 0x00ac7c3c, 0x00a57636, 0x00bc8b4d, 0x00c09152, 0x00bb894b, 0x00b98648, 0x00b48042, 0x00b28042, 0x00ab7a3b, 0x00a27031,
- 0x00a77333, 0x00af7b3c, 0x00a67335, 0x00ab793b, 0x00b48246, 0x00a67a3c, 0x00a88141, 0x00b48b4d, 0x00b18647, 0x00a77d3e, 0x00ad8343, 0x00ae8545, 0x00a97f40, 0x00a97f40, 0x00ac8143, 0x00b08547,
- 0x00aa7e46, 0x00aa7c44, 0x00b2834d, 0x00ba8d54, 0x00bd9258, 0x00b99154, 0x00ba9356, 0x00b69052, 0x00b18a4d, 0x00af8b49, 0x00ab8746, 0x00ab8648, 0x00a68048, 0x00ab8549, 0x00aa8447, 0x00ac874c,
- 0x00a47d40, 0x00ac8649, 0x00ad8749, 0x00aa8546, 0x00a68142, 0x00ac813f, 0x00af813f, 0x00ab8143, 0x00a17d3b, 0x00a37c3c, 0x00ab8645, 0x00b48e4f, 0x00ab8d61, 0x00d3c3aa, 0x00fbfcf2, 0x00f8fffe,
- 0x00bab6bc, 0x00322325, 0x002d170c, 0x00502a15, 0x0088563a, 0x00b7866c, 0x00daae98, 0x00efd0c4, 0x00fef2f9, 0x00fcfbff, 0x00ecf5fe, 0x00d5f0f3, 0x00bccedf, 0x007b889a, 0x00313d48, 0x00363d39,
- 0x00747774, 0x00838696, 0x006a7088, 0x004d5776, 0x004a5772, 0x00496891, 0x003b6196, 0x00274883, 0x002a3b82, 0x002a3472, 0x001d2652, 0x002a2d46, 0x00323230, 0x00322e22, 0x002f2b19, 0x002f2c14,
- 0x00242e5e, 0x00212967, 0x00172166, 0x000e1966, 0x0009174b, 0x00081632, 0x000b181a, 0x002b3726, 0x00403f39, 0x00221e21, 0x000f1010, 0x00101c11, 0x001a231a, 0x001b211c, 0x001a2023, 0x001d2935,
- 0x00262e52, 0x00423f6e, 0x00756a96, 0x009f81b0, 0x00a9789f, 0x00887cb8, 0x00737ac1, 0x006e7cc3, 0x00687dd3, 0x00607ad7, 0x005377d8, 0x004776de, 0x003e74e2, 0x003a73e2, 0x003975e1, 0x003875e6,
- 0x005b67c0, 0x006566b7, 0x007565af, 0x0076579a, 0x007b517e, 0x007e5b7c, 0x00513a49, 0x00180e18, 0x00180e18, 0x00161014, 0x00131113, 0x00070c16, 0x000f141c, 0x000b1219, 0x0015191f, 0x003f4444,
- 0x009b99a0, 0x00d6d6d7, 0x00fbfaf9, 0x00f9f6f3, 0x00faf7f4, 0x00d1d7d0, 0x007c8783, 0x00768689, 0x004f6a85, 0x000c2a53, 0x000c3463, 0x0017467d, 0x0025538f, 0x0021548d, 0x001d5285, 0x00396998,
- 0x008089b9, 0x007478a1, 0x0075799f, 0x008c91bb, 0x007b99ce, 0x005b88d4, 0x00457fd5, 0x004082df, 0x005184e1, 0x00557ed2, 0x00537ed5, 0x00437be0, 0x004678da, 0x004379d4, 0x00477cd4, 0x004980d4,
- 0x004f7ed4, 0x004d7ed0, 0x004d7ece, 0x004779c7, 0x003a68b8, 0x004362c7, 0x003952b5, 0x0015387e, 0x00254882, 0x00405699, 0x00313f79, 0x002a2e53, 0x00413e33, 0x00918f7d, 0x00f8fbec, 0x00f9fcfe,
- 0x00fffdfb, 0x00fdfefd, 0x00f8f8f9, 0x00babbc1, 0x00333440, 0x000d1120, 0x001c1f34, 0x0031344a, 0x004b4d65, 0x00666a83, 0x008b90a1, 0x00afafb7, 0x00c6c6cd, 0x00bfc0c4, 0x00a3a6a6, 0x008c8e8d,
- 0x0073767b, 0x0070727e, 0x00717486, 0x0083879e, 0x009498b7, 0x008086b4, 0x004a5184, 0x0033356d, 0x00423c72, 0x004e496f, 0x005f556a, 0x00685c5e, 0x006f5a33, 0x006b5618, 0x006a5205, 0x006c5500,
- 0x00845128, 0x00805326, 0x007f5324, 0x007c5221, 0x00755118, 0x00765518, 0x00725211, 0x006c520d, 0x00755b14, 0x00745912, 0x00694d10, 0x00694823, 0x006f4e24, 0x00765525, 0x00785929, 0x007b5f25,
- 0x0082632a, 0x0081652a, 0x007e6328, 0x00806429, 0x0083682f, 0x00887362, 0x005f505f, 0x001b1b45, 0x00323e83, 0x0060669d, 0x006c6884, 0x007b6557, 0x008f652c, 0x008f6529, 0x00886526, 0x0083662f,
- 0x008b642e, 0x008a612e, 0x00885f2a, 0x008a622b, 0x008f6933, 0x008f6a32, 0x008f6a32, 0x008f6934, 0x008e6632, 0x008c6330, 0x0089642f, 0x0083672c, 0x0085652c, 0x00806228, 0x00816428, 0x0085662b,
- 0x008d6732, 0x00886730, 0x0087642c, 0x0088672e, 0x0086662e, 0x00896329, 0x008d6529, 0x008c682d, 0x00936d38, 0x00946e39, 0x0098723b, 0x0095733c, 0x008a6734, 0x007d602a, 0x00765d24, 0x00745b23,
- 0x007a6734, 0x00786934, 0x0075723b, 0x0075793d, 0x0069793b, 0x0066793a, 0x00647c3f, 0x00667e41, 0x006e7e46, 0x00707d46, 0x00707f43, 0x006b7e3e, 0x0067783a, 0x0065753a, 0x0068793f, 0x006c7c45,
- 0x0072804f, 0x006e7c4c, 0x006c7a4a, 0x006b7a4b, 0x006b7b4c, 0x006e7f4c, 0x00738450, 0x00738553, 0x0079865d, 0x007f8a67, 0x007e8869, 0x009aa48a, 0x00e2e9d7, 0x00f9fcf0, 0x00fdfff4, 0x00f8faf0,
- 0x00fefdff, 0x00e3e3e3, 0x005e5f59, 0x001d1d16, 0x00393835, 0x004e4f4d, 0x00535755, 0x003f4745, 0x00313a41, 0x0028353e, 0x00354b5a, 0x00355575, 0x003d455b, 0x0041373f, 0x00473435, 0x00492e28,
- 0x004b3039, 0x00675660, 0x00847b84, 0x00787377, 0x00777774, 0x00818183, 0x008b8f93, 0x00717a83, 0x00374b5b, 0x0020333f, 0x0018272f, 0x00262c32, 0x00413d46, 0x00474952, 0x00404553, 0x00353d51,
- 0x003e435c, 0x00464b61, 0x004a5162, 0x00474f5b, 0x00444b56, 0x0039414e, 0x0028313f, 0x00303847, 0x004b5166, 0x00555971, 0x00595e71, 0x00535d66, 0x0052504f, 0x005f5549, 0x006a5840, 0x006e5837,
- 0x00886a4b, 0x00836c4e, 0x0055482f, 0x003d3827, 0x002c3128, 0x004e533e, 0x00a6a490, 0x00aaa192, 0x00af9594, 0x00d7babb, 0x00d1afb4, 0x00bc989f, 0x00d4bec1, 0x00e4d5d5, 0x00847d79, 0x002a2821,
- 0x00352d29, 0x0049413b, 0x00423b32, 0x002f2b1f, 0x00363225, 0x003a3729, 0x002e2b1c, 0x00272214, 0x00241e11, 0x001c1908, 0x00191904, 0x001d2000, 0x0024220c, 0x002b2520, 0x00373134, 0x003e3841,
- 0x002f2f44, 0x001e2845, 0x0015224c, 0x0015275d, 0x002b3b84, 0x002d384d, 0x00141c16, 0x0008110d, 0x00080b0d, 0x00424547, 0x00d3d4d6, 0x00fafbfc, 0x00fcfdfe, 0x00fcfcfd, 0x00fffefe, 0x00e1dfdf,
- 0x005d595d, 0x001b1713, 0x00423b31, 0x00655d4b, 0x007f7758, 0x00908861, 0x00918961, 0x00938c61, 0x00958f6c, 0x00908c68, 0x008b8664, 0x008b8063, 0x0087765d, 0x00856b54, 0x0081634c, 0x00805f48,
- 0x00815b51, 0x00734f46, 0x005d3d36, 0x004b302b, 0x003d2321, 0x002f1e19, 0x00251912, 0x001f100e, 0x00150610, 0x000f0307, 0x000b0100, 0x000e0801, 0x00262315, 0x0046443d, 0x00494849, 0x0035333c,
- 0x00181977, 0x000f1362, 0x0015205c, 0x00182754, 0x00202859, 0x00181c57, 0x000c0f48, 0x00090a3a, 0x00171024, 0x003e3733, 0x00786957, 0x0091725c, 0x00835f4a, 0x005d3722, 0x006e4933, 0x00af8c72,
- 0x00b8917d, 0x00825d4d, 0x004d2b1a, 0x00503324, 0x00836659, 0x006a5f5c, 0x003c3c3c, 0x00474748, 0x00383739, 0x00282629, 0x002b292c, 0x00272629, 0x00212024, 0x001d1d22, 0x001d1e23, 0x001e1f25,
- 0x002b242a, 0x00342a30, 0x00493941, 0x0054404b, 0x0059414d, 0x00543e47, 0x0047343b, 0x0034272b, 0x001f1a1e, 0x00161518, 0x00121512, 0x00181b14, 0x0020221d, 0x00232521, 0x0021241e, 0x0021241d,
- 0x00201d1e, 0x00171816, 0x000f0e0f, 0x000a090a, 0x00070509, 0x00080a0c, 0x00131514, 0x002d2721, 0x0045362f, 0x00594e48, 0x00b1ada7, 0x00f1f6f3, 0x00f6feff, 0x00fbfdfd, 0x00fbfdf5, 0x00fefeef,
- 0x00aeb6ec, 0x005361b1, 0x004159b6, 0x003854c0, 0x003150c3, 0x00324bbc, 0x00364fbc, 0x004358c3, 0x004f6cd8, 0x005173e0, 0x005478ea, 0x005471f1, 0x004460da, 0x003d58cf, 0x004865db, 0x004b6edf,
- 0x00476dd6, 0x005677c2, 0x0099b4e3, 0x00dde8f5, 0x00fefbea, 0x00fffdf7, 0x00fcfffc, 0x00fbfefa, 0x00fffdff, 0x00fffefd, 0x00fefefa, 0x00fdfff9, 0x00fdfef9, 0x00fcfef6, 0x00fafcf0, 0x00fbfcf3,
- 0x00fffbff, 0x00fffcfd, 0x00fffefd, 0x00fefffd, 0x00fdfffe, 0x00fdfeff, 0x00fdffff, 0x00fefffe, 0x00fffeff, 0x00ffffff, 0x00fdfcfb, 0x00fffdff, 0x00fffefd, 0x00ffffff, 0x00fefefb, 0x00fdfefa,
- 0x00fffdff, 0x00fffcfd, 0x00fefcfb, 0x00fdfcfb, 0x00fdfdfb, 0x00fefefe, 0x00fdfdfb, 0x00fdfcfc, 0x00fffeff, 0x00ffffff, 0x00fefcfe, 0x00fdfbfc, 0x00fefbfd, 0x00fefbfe, 0x00fefaff, 0x00fdfafe,
- 0x00fff7ff, 0x00fdf9fa, 0x00fefafa, 0x00fdfbf3, 0x00fffcf4, 0x00fffcf9, 0x00fffbfc, 0x00fcfdfc, 0x00fffdf8, 0x00fcfdef, 0x00fcfced, 0x00fdfef7, 0x00fcfef7, 0x00fbfdf4, 0x00fbfef4, 0x00fbfef3,
- 0x00fffffa, 0x00fffff7, 0x00fefff6, 0x00fefff5, 0x00fffff7, 0x00fcfff8, 0x00f9fef6, 0x00f6fcf0, 0x00f9fef5, 0x00fbfdfa, 0x00fbfcfd, 0x00f9fbff, 0x00fafcff, 0x00fafefa, 0x00fafef7, 0x00fbfeee,
- 0x00fffdfe, 0x00fdfbfc, 0x00fbfbfb, 0x00fcfdfd, 0x00fefefe, 0x00fcfcfc, 0x00fafdfc, 0x00f9fdfc, 0x00fdfdfe, 0x00fefeff, 0x00fefbff, 0x00fdfafd, 0x00fdf6fb, 0x00fdf6fd, 0x00fcfafd, 0x00fcfffd,
- 0x00f5fffd, 0x00f2fdf8, 0x00f3fff5, 0x00f9fffa, 0x00fbfaf9, 0x00f9fdfd, 0x00fafdfe, 0x00f9fdfc, 0x00fffdfb, 0x00fffefe, 0x00fffbfa, 0x00fbfcfc, 0x00fcfffc, 0x00fcffff, 0x00fbfcfb, 0x00fefdfc,
- 0x00fffeff, 0x00fefdfe, 0x00fefdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfefd, 0x00fbfdfb, 0x00fffdff, 0x00fffdfe, 0x00fdfdfb, 0x00fbfcfc, 0x00fdfcfd, 0x00fdfdfe, 0x00fafdfd, 0x00fbfdff,
- 0x00fffdff, 0x00fffdff, 0x00fdfdfe, 0x00fbfcfd, 0x00fefdfd, 0x00fefdfd, 0x00fafdfa, 0x00fafcfc, 0x00fffcff, 0x00fffcff, 0x00fefefe, 0x00fbfdfb, 0x00d4d3d5, 0x00b3b3b3, 0x00c2c4c2, 0x00e1e2e0,
- 0x00f4f2f1, 0x00f8f7f7, 0x00fafbf8, 0x00f9fbf8, 0x00f7fcfb, 0x00f5fcfa, 0x00f6fdf8, 0x00f9fefb, 0x00fefcfd, 0x00fdfafa, 0x00fdfafa, 0x00fbfbfa, 0x00fbfdfe, 0x00fbfbfd, 0x00fbfbfa, 0x00f9fbf6,
- 0x00fffff2, 0x00fffdee, 0x00fefef2, 0x00fdfcf9, 0x00fef8fc, 0x00fefafd, 0x00fdfbfb, 0x00fdfcfa, 0x00fffdfe, 0x00fffdfb, 0x00fffcf9, 0x00fefdfa, 0x00fefbf5, 0x00fefdfb, 0x00fefcf9, 0x00fcfdf4,
- 0x00fffeff, 0x00fefdfe, 0x00fbfefe, 0x00fdfffe, 0x00f9fcfc, 0x00f9f9f8, 0x00f6f8f8, 0x00f1f5f6, 0x00f2f1f5, 0x00eef0f2, 0x00e7e9e9, 0x00e3e4e3, 0x00dbdbd8, 0x00cfd0cc, 0x00b8b9b5, 0x00a7a7a2,
- 0x00959495, 0x008a8888, 0x00797774, 0x006d6c68, 0x00575757, 0x0048494b, 0x00363737, 0x00625f5f, 0x00dcdada, 0x00fdfbf9, 0x00fcfefb, 0x00fbfdfc, 0x00fffeee, 0x00ebd9b8, 0x00ab9461, 0x00b88f52,
- 0x00b48c4b, 0x00ac8443, 0x00ac8544, 0x00a6803e, 0x009c7635, 0x009d7736, 0x00a57f3e, 0x00a88140, 0x00a2783a, 0x009b7233, 0x009b7232, 0x009b7432, 0x0097712f, 0x00956f2d, 0x008f6927, 0x00936c2b,
- 0x009e7537, 0x009e7737, 0x009f7839, 0x00a47e3e, 0x00aa8343, 0x00aa8341, 0x00a47f3b, 0x00a27d39, 0x00a77e3d, 0x00ad8544, 0x00aa8341, 0x00ac8643, 0x00ac8542, 0x00a57e3b, 0x009e7834, 0x009b7531,
- 0x00ad8040, 0x00a57838, 0x00a37737, 0x00a67c3a, 0x00a77d3b, 0x00ac8440, 0x00ba924f, 0x00ac8540, 0x00af8644, 0x00b18647, 0x00b58c4b, 0x00b08a47, 0x00aa8341, 0x00af8846, 0x00b08b47, 0x00b38d4a,
- 0x00b08849, 0x00b68e4d, 0x00bc9453, 0x00bf9957, 0x00b68e4c, 0x00b18a47, 0x00bc9651, 0x00b7904a, 0x00bb944f, 0x00c29b56, 0x00af8743, 0x00b08944, 0x00bb944e, 0x00b28b44, 0x00b28b45, 0x00b48d48,
- 0x00bf9153, 0x00c49558, 0x00bd8e4f, 0x00bd8d4c, 0x00b48444, 0x00b08140, 0x00b0823f, 0x00b18342, 0x00b8894c, 0x00b68749, 0x00b07f40, 0x00b07c3e, 0x00a87336, 0x00a77435, 0x00a77434, 0x00a67232,
- 0x00ab7339, 0x00b1793f, 0x00a87436, 0x00a57233, 0x00a77435, 0x00a97d3d, 0x00a37d3c, 0x00ad8344, 0x00bb8e52, 0x00af8447, 0x00ab8143, 0x00a98141, 0x00a87e3e, 0x00ad8443, 0x00ac8241, 0x00af8644,
- 0x00b4834e, 0x00b2824c, 0x00af8149, 0x00af834a, 0x00b4894e, 0x00b38950, 0x00b2894e, 0x00a88046, 0x00a57941, 0x009e733b, 0x00976e33, 0x00936e34, 0x00936f38, 0x0099743e, 0x00947238, 0x00927237,
- 0x009c733d, 0x00a07940, 0x00a17a3e, 0x00a68245, 0x009f7d3f, 0x00a47d3e, 0x00ac8344, 0x00ad874b, 0x00aa8645, 0x00ac8545, 0x00b08d4a, 0x00b28c4e, 0x00a98d60, 0x00ded1b7, 0x00fbfef4, 0x00f2fdfa,
- 0x00adb5b0, 0x001f1b0e, 0x00483423, 0x009b7659, 0x00cf9a72, 0x00deac89, 0x00fcd1b6, 0x00ffecdc, 0x00f9f8f4, 0x00f2fafa, 0x00f0f7fe, 0x00eff5fa, 0x00ebf5ef, 0x00d4dde1, 0x009c9db6, 0x004d4b70,
- 0x00263331, 0x005b6d4a, 0x00919f7f, 0x00859389, 0x006063ab, 0x0041507a, 0x00404f77, 0x00445186, 0x002d4079, 0x001d2f65, 0x00233063, 0x002c3655, 0x00343536, 0x00373120, 0x00392f15, 0x003a2c0e,
- 0x00253146, 0x001f2950, 0x001b235a, 0x00141b62, 0x000c1648, 0x00081529, 0x00121a1b, 0x001c2412, 0x00161f0d, 0x00141513, 0x0019161f, 0x00181c1d, 0x0019191a, 0x0014181f, 0x001e273a, 0x00324263,
- 0x003b6194, 0x005175b2, 0x00657eca, 0x006b7dca, 0x006f76bf, 0x006e7cd1, 0x00627ad7, 0x005b75d3, 0x004c76d2, 0x004879d8, 0x004878e6, 0x004679ea, 0x003e79e9, 0x003a79e5, 0x003b79e8, 0x003c79e8,
- 0x002e74df, 0x00386fd5, 0x005173da, 0x005e6ece, 0x00656bb7, 0x00676dad, 0x004a528b, 0x00343e6d, 0x002c3557, 0x002c3054, 0x0020234b, 0x00061431, 0x00081c34, 0x0024314a, 0x00505973, 0x00969db4,
- 0x00dde9eb, 0x00f0f8f7, 0x00eef3fc, 0x00eff1ff, 0x00f3f7ff, 0x00cdd9df, 0x008396a3, 0x00617990, 0x00396284, 0x00234d7b, 0x00224b8a, 0x001e4689, 0x00204883, 0x00214778, 0x002a4c76, 0x004c698c,
- 0x006b81b5, 0x00516399, 0x003e4c8a, 0x0038498e, 0x00354e9e, 0x003656af, 0x00456ccd, 0x00517fe0, 0x00497dd3, 0x00467cd0, 0x005487e0, 0x00558be6, 0x005288e5, 0x004e83e0, 0x005382e1, 0x005583e1,
- 0x004a7cd3, 0x004777cb, 0x004b7bcd, 0x00467acc, 0x00376ab7, 0x003d5abe, 0x003a4db2, 0x001d3680, 0x00103564, 0x002b4679, 0x00333e73, 0x002b2a4a, 0x004c4834, 0x00a49f8a, 0x00fffdf4, 0x00fffbff,
- 0x00f6ffec, 0x00f7fef2, 0x00f6f8f6, 0x00b1b2b3, 0x003e414d, 0x003c3f51, 0x0062637a, 0x007e8095, 0x00818899, 0x00818b99, 0x008f92a3, 0x009e9fae, 0x00b0b2b8, 0x00b3b8bc, 0x00bcbec4, 0x00b2b5ba,
- 0x00899599, 0x00727b86, 0x004b526b, 0x00404567, 0x0042456e, 0x00393f74, 0x003b3e7a, 0x003f3a6c, 0x004d4d5a, 0x006a605a, 0x0074604e, 0x006e5731, 0x0067480e, 0x00634500, 0x006f5004, 0x007a5906,
- 0x00765222, 0x00724f1d, 0x00734c1f, 0x00785121, 0x00785520, 0x0076541a, 0x00724f16, 0x00704e12, 0x006b560d, 0x006a5308, 0x006a4d11, 0x006a4a1e, 0x006d4d20, 0x00725320, 0x00795826, 0x00805d27,
- 0x007b6123, 0x00856a2d, 0x0087662f, 0x0085612d, 0x00926e3c, 0x00aa908b, 0x009988a2, 0x00635f85, 0x003c4d6d, 0x004b5463, 0x007a6e6c, 0x00886347, 0x0098612b, 0x008e5e24, 0x0089612e, 0x0081663a,
- 0x00866428, 0x00846226, 0x0085612a, 0x0088632e, 0x008f6933, 0x00906934, 0x00936c39, 0x00916b37, 0x00866229, 0x00856327, 0x0089652d, 0x008a642f, 0x0086642d, 0x0086652e, 0x00896630, 0x008a6831,
- 0x00816326, 0x00806328, 0x0084642c, 0x0086662f, 0x008c6a32, 0x00896930, 0x008b6931, 0x00896730, 0x00846628, 0x00866528, 0x008d692f, 0x00946d35, 0x00956d37, 0x00906732, 0x00865d28, 0x007f5520,
- 0x006e541f, 0x006e5924, 0x00786934, 0x0077733c, 0x006c7236, 0x00667439, 0x006a7941, 0x00697b43, 0x00647b3a, 0x00647839, 0x006a7841, 0x006a7840, 0x0068783e, 0x00697642, 0x006c7946, 0x006f7d4d,
- 0x00657a44, 0x00637642, 0x0067784b, 0x00697a4e, 0x006b7b51, 0x00727f5d, 0x007e8a6c, 0x0080896e, 0x0079886a, 0x00818d75, 0x00848c7c, 0x00a5aaa3, 0x00e9ece7, 0x00fcfdfa, 0x00fefdfc, 0x00fefcfc,
- 0x00f8fcf9, 0x00daddd8, 0x00595856, 0x001a1714, 0x003e3a33, 0x0057524c, 0x0053504f, 0x003d3d3c, 0x00364038, 0x002b3934, 0x002c3947, 0x0033486c, 0x0034394a, 0x00342e33, 0x00433535, 0x004b3934,
- 0x0036342b, 0x00363736, 0x0042454a, 0x0044484e, 0x005d5f65, 0x0076737f, 0x00615f72, 0x00363b4f, 0x000d2733, 0x000e2430, 0x000f1d2b, 0x00181f2b, 0x002e3339, 0x00393e47, 0x0033384c, 0x002e3650,
- 0x00343f4e, 0x003d4756, 0x00464e5d, 0x00444c57, 0x00414a51, 0x00363f44, 0x002b323b, 0x00303541, 0x003a4850, 0x0043505a, 0x00525868, 0x004a4b52, 0x00514941, 0x007f6c57, 0x00af9378, 0x00c2a076,
- 0x00c5a775, 0x00af9a6b, 0x00685334, 0x00423721, 0x00414134, 0x00596d52, 0x00a3b79b, 0x00b4c0a9, 0x00b0b6a0, 0x00cdc8bb, 0x00d3c2c3, 0x00d8bfc5, 0x00e8d8dd, 0x00e0d4d5, 0x0086807b, 0x00393634,
- 0x00251f0f, 0x00372e1d, 0x00372e22, 0x002a2115, 0x00291f11, 0x0032291a, 0x0030291c, 0x002c2117, 0x00292714, 0x00211e0d, 0x000e1000, 0x00041502, 0x000e1601, 0x00191601, 0x002d2514, 0x00413726,
- 0x004e523c, 0x0053594c, 0x004d5155, 0x004c5160, 0x005a5976, 0x0046494b, 0x001d2318, 0x00060d05, 0x00000500, 0x0033392f, 0x00ced1ce, 0x00fbfbfd, 0x00fdfdff, 0x00fcfcfe, 0x00ffffff, 0x00e6e1eb,
- 0x00606158, 0x001e1e11, 0x004a4634, 0x00706950, 0x0086805a, 0x00958c62, 0x009a8f62, 0x009b9263, 0x00969661, 0x00979862, 0x009a976d, 0x00989071, 0x008f8363, 0x00857455, 0x007d634a, 0x007a5b42,
- 0x006e523a, 0x005e4332, 0x00503329, 0x00422a26, 0x00352020, 0x00311919, 0x00311616, 0x002b1318, 0x00160a0b, 0x00130705, 0x00130502, 0x00170d00, 0x00342b1d, 0x005d544e, 0x00615557, 0x002e232e,
- 0x00081459, 0x00021051, 0x000f1a5f, 0x000c1554, 0x00091753, 0x00050e49, 0x000c0f49, 0x00151749, 0x000d1528, 0x00293038, 0x00756c6d, 0x009f7865, 0x007e5644, 0x00734834, 0x009d705e, 0x00c0937c,
- 0x00aa8769, 0x0095735d, 0x00684534, 0x004b2d19, 0x00583c30, 0x00453d38, 0x00323233, 0x00535052, 0x00494e4a, 0x002e332f, 0x00242225, 0x00222126, 0x001e1d22, 0x001a1920, 0x001b1620, 0x001b1620,
- 0x00131c17, 0x00181d1d, 0x002b292d, 0x003a3137, 0x003e2f39, 0x003d2c37, 0x00362732, 0x00281b25, 0x000f1412, 0x000a110c, 0x00111510, 0x001c1d14, 0x0022231c, 0x00242520, 0x00282727, 0x00282525,
- 0x00191f17, 0x000f1210, 0x000b0b0d, 0x000c0b0e, 0x0008080a, 0x00070a0f, 0x00131418, 0x00292425, 0x00393727, 0x004e4e43, 0x00adaea9, 0x00f2f5f6, 0x00f5ffff, 0x00fcfffe, 0x00fffdf8, 0x00fffef4,
- 0x00a5b0e3, 0x004a5ba7, 0x00374caa, 0x002e4bb4, 0x003857cb, 0x00425dd1, 0x00415ac8, 0x004458c5, 0x003659ba, 0x003c61c7, 0x00557ae7, 0x005881f6, 0x005475e4, 0x004364d6, 0x004867db, 0x004a70e7,
- 0x00346acf, 0x004473c4, 0x008dace4, 0x00e0eaf4, 0x00fefde6, 0x00fffaf2, 0x00fffafa, 0x00fffaf8, 0x00f7fbf2, 0x00f8fbf3, 0x00fdfcfb, 0x00feffff, 0x00fffefc, 0x00fffefa, 0x00fffffc, 0x00fffdf7,
- 0x00f5faf6, 0x00f7fcf6, 0x00fefefb, 0x00fffcfb, 0x00fffefc, 0x00fefcfa, 0x00fffdfd, 0x00fefefb, 0x00f8fdf6, 0x00f8fdf6, 0x00fbfcfc, 0x00fefdfe, 0x00fefcfd, 0x00fefefd, 0x00fffeff, 0x00fffdfe,
- 0x00f8fdf4, 0x00fafcf5, 0x00fdfbfc, 0x00fffcff, 0x00fefdfe, 0x00fcfdfe, 0x00fdfbff, 0x00fefbfd, 0x00f4faf5, 0x00f4f9f5, 0x00fbf9fb, 0x00fdfdfe, 0x00fdfdfe, 0x00fbfbfd, 0x00fffbff, 0x00fffbff,
- 0x00f5fcf8, 0x00f5fbf9, 0x00fbfef9, 0x00fcfdf6, 0x00fdfbf7, 0x00fdfbfb, 0x00fffdff, 0x00fffbff, 0x00f8fdf4, 0x00f8feed, 0x00fefdf4, 0x00fffdf8, 0x00fffefb, 0x00fefdf6, 0x00fffdf9, 0x00fffefe,
- 0x00f8fff4, 0x00fafff4, 0x00fffffb, 0x00fffffb, 0x00fdfef7, 0x00fefdf9, 0x00fffdfe, 0x00fffff8, 0x00f8fce7, 0x00fafeeb, 0x00fbfef4, 0x00fdfefd, 0x00fdfdfc, 0x00fcfcf9, 0x00fcfdf7, 0x00fdfff6,
- 0x00f7faf4, 0x00f4f8f4, 0x00fdfefd, 0x00ffffff, 0x00fcfcfe, 0x00fdfbfc, 0x00fffcfe, 0x00fffdff, 0x00f8fff5, 0x00f9fdf8, 0x00fcfdfc, 0x00fefefe, 0x00fffdfe, 0x00fdfafd, 0x00fbf9fe, 0x00f9f8fd,
- 0x00efffef, 0x00eefced, 0x00f5fffa, 0x00f8fffe, 0x00f8fcfd, 0x00fafcfc, 0x00ffffff, 0x00fffdfd, 0x00f7fceb, 0x00f8fded, 0x00fafef6, 0x00f9fffe, 0x00f6fefd, 0x00fcfdfd, 0x00fffbff, 0x00fffbff,
- 0x00f5fbf6, 0x00f7fcf8, 0x00fbfdfb, 0x00fbfcfb, 0x00fafbfa, 0x00fbfcfc, 0x00fefcff, 0x00fffbff, 0x00f7fcf6, 0x00f7fcf6, 0x00fcfbfc, 0x00fefaff, 0x00f9fcfc, 0x00fafdfd, 0x00fffcff, 0x00fdfbff,
- 0x00f6faf8, 0x00f7fdfa, 0x00feffff, 0x00fefcff, 0x00fbfcff, 0x00fbfcfe, 0x00fffdff, 0x00ffffff, 0x00f8fdf8, 0x00f7fef8, 0x00fbfefa, 0x00fefefc, 0x00c8c9c8, 0x009c9d9c, 0x00b1b0b1, 0x00d6d4d6,
- 0x00eeefe7, 0x00f7faf2, 0x00fffffe, 0x00feffff, 0x00f9fefa, 0x00fafefb, 0x00fdffff, 0x00ffffff, 0x00f9fff7, 0x00fafef9, 0x00fcfdfa, 0x00f9fbf1, 0x00fcfcff, 0x00fdfbff, 0x00fffbff, 0x00fffcff,
- 0x00faffee, 0x00fbfeec, 0x00fcfdf3, 0x00fbfef9, 0x00fefafc, 0x00fdfafc, 0x00fffaff, 0x00fffdff, 0x00f9fdf6, 0x00f8fcf3, 0x00fbfdf8, 0x00fefdfc, 0x00fefcf9, 0x00fffffd, 0x00fffdff, 0x00fdfafa,
- 0x00f9f7f0, 0x00f2f0eb, 0x00ede9eb, 0x00e4dfe1, 0x00d4cdce, 0x00c9c2c1, 0x00bdb5b7, 0x00afa6a8, 0x0090938d, 0x0085847e, 0x00787673, 0x006a6a69, 0x005b5c5b, 0x004c4d4d, 0x003d3d3f, 0x00302e30,
- 0x001d2417, 0x0011170e, 0x0011130d, 0x0010100e, 0x000a0a07, 0x00070709, 0x00020204, 0x00414044, 0x00dedfd6, 0x00f8fbf7, 0x00fcfefe, 0x00f8fcfc, 0x00fefdee, 0x00e9dab7, 0x00d1b382, 0x00d8ac70,
- 0x00d2ac69, 0x00ceaa68, 0x00d6ae6f, 0x00d2a86b, 0x00c9a264, 0x00c5a062, 0x00c69f63, 0x00c0975d, 0x00ae8c48, 0x00a78541, 0x00ad8848, 0x00af8749, 0x00a88141, 0x00a57e3e, 0x00a67d40, 0x00ab8145,
- 0x00a4823d, 0x00af8a46, 0x00b38d4c, 0x00ba9452, 0x00bc9454, 0x00bd9655, 0x00b68f4f, 0x00bb9252, 0x00b4934b, 0x009d7c35, 0x00b28e49, 0x00c19c58, 0x00c19a57, 0x00bc9451, 0x00bf9754, 0x00bd9551,
- 0x00b49247, 0x00b18b43, 0x00bb9350, 0x00bf9655, 0x00b28945, 0x00a67e3b, 0x00b88e4f, 0x00b68a4c, 0x00b19046, 0x00b49147, 0x00b28c47, 0x00ac8545, 0x00b38c49, 0x00bd9455, 0x00bb9153, 0x00b78f4e,
- 0x00a7853b, 0x00aa8940, 0x00b08b46, 0x00b9924e, 0x00b7914d, 0x00bc9450, 0x00c39957, 0x00be9453, 0x00be9c52, 0x00c3a157, 0x00b28c46, 0x00b58d4a, 0x00bd9852, 0x00b9934d, 0x00bf9753, 0x00c69f5a,
- 0x00c5a25a, 0x00c7a15b, 0x00bb9250, 0x00bc9351, 0x00ba9251, 0x00b48b4a, 0x00a97e3f, 0x00a37537, 0x00a27f35, 0x00a9873e, 0x00ad8442, 0x00b0823f, 0x00ac7d3d, 0x00ab7c3a, 0x00b07f41, 0x00b28145,
- 0x00a8803b, 0x00a77b35, 0x00aa7b3a, 0x00a97a3b, 0x00a07134, 0x00a17334, 0x00b3864a, 0x00c39659, 0x00b6914c, 0x00ae8844, 0x00b78f4e, 0x00b58c4e, 0x00af8445, 0x00ae8344, 0x00af8347, 0x00aa7f42,
- 0x00a57b3a, 0x00af8646, 0x00bc8f52, 0x00bb8d52, 0x00b3884f, 0x00b2874e, 0x00b58951, 0x00ad824a, 0x00a17d3c, 0x00a17e3e, 0x009f7a40, 0x00966e3c, 0x008d6635, 0x00936a37, 0x00956a34, 0x00976d38,
- 0x00947133, 0x008f6c2e, 0x00926b30, 0x00986f34, 0x0091692d, 0x00946c32, 0x00a17841, 0x00a57f45, 0x00aa8c45, 0x00ad8d45, 0x00b58e4a, 0x00be9354, 0x00a8885c, 0x00ded0b8, 0x00fdfef7, 0x00faffff,
- 0x00a6b4ae, 0x0029281b, 0x00968971, 0x00e1c19b, 0x00e9ba88, 0x00f9d1a3, 0x00fdeec2, 0x00fdf7dd, 0x00f8fbf3, 0x00f1fcfb, 0x00eef5fd, 0x00fbebfc, 0x00f6ebf5, 0x00f3edef, 0x00e1e8de, 0x00acb6a7,
- 0x00475558, 0x002f3852, 0x0067728f, 0x0097a2c1, 0x009eaeb3, 0x00867c9e, 0x0054406a, 0x004f436f, 0x004e5276, 0x003e4860, 0x003c4b56, 0x00364744, 0x00333a2d, 0x0039352a, 0x003d2e28, 0x00422c2f,
- 0x00323743, 0x00303053, 0x00242554, 0x001d205d, 0x00151d49, 0x00182533, 0x00223027, 0x001d2b0d, 0x0013180e, 0x00191619, 0x0019101c, 0x001c1723, 0x00292333, 0x003a3c54, 0x00546389, 0x005c7aae,
- 0x00538cd8, 0x00488ce8, 0x004085eb, 0x004387ef, 0x00407fe4, 0x004c7ae0, 0x00597be2, 0x006386eb, 0x00608aec, 0x005581e7, 0x004c78da, 0x004d7be0, 0x004a7ad5, 0x004a77d5, 0x004975ce, 0x004c75cc,
- 0x002977db, 0x002e72d5, 0x004079e0, 0x004c7de2, 0x004b79d9, 0x003d6dcd, 0x002d61c4, 0x00366ace, 0x003865d5, 0x003b60d5, 0x003857b7, 0x00244778, 0x00264673, 0x004e6a94, 0x006a83aa, 0x0095accf,
- 0x00c3d3ed, 0x00c4d3f0, 0x00bac6e5, 0x00c2ceec, 0x00c5d3ed, 0x00b1bfee, 0x008095cf, 0x005f74b7, 0x005673c9, 0x005778d5, 0x004e71d7, 0x005173d6, 0x004e68c1, 0x004255a1, 0x00424f91, 0x00646da7,
- 0x00426fcb, 0x00335dbb, 0x00385bbf, 0x003f5bc1, 0x004156bf, 0x003c4db3, 0x003144a6, 0x003e57b4, 0x004677d8, 0x004780e8, 0x00447fe0, 0x004c82d8, 0x005485e3, 0x005282e5, 0x00507de2, 0x00507be3,
- 0x004d7ae1, 0x00426fd3, 0x004573d0, 0x004679d1, 0x003b6dbe, 0x003d57bb, 0x003849aa, 0x00213b82, 0x00173164, 0x002c3e72, 0x003d4270, 0x00342f46, 0x005f5944, 0x00bab59f, 0x00fcfbed, 0x00fbfaff,
- 0x00fefff1, 0x00fefff4, 0x00f0f1ec, 0x00a1a3a3, 0x004d505b, 0x00616574, 0x00797c8f, 0x0085899d, 0x00888d9d, 0x008991a0, 0x008c91a2, 0x009699a9, 0x00a5a8af, 0x00b4b9bd, 0x00ccd1d5, 0x00c4cbcc,
- 0x00bac1cc, 0x00a2a9bd, 0x00606787, 0x003b416d, 0x003b3f74, 0x0036406a, 0x003f4b64, 0x004f575c, 0x0066613a, 0x0072612c, 0x00755a18, 0x006f4d06, 0x006b4006, 0x006e411a, 0x00744830, 0x0074463d,
- 0x0067550a, 0x00635207, 0x0067510d, 0x006f5618, 0x00735a20, 0x00745823, 0x00775429, 0x007a562d, 0x007b5433, 0x0079502f, 0x00734f25, 0x006e5015, 0x006e4e12, 0x006e4e0f, 0x00705010, 0x00765110,
- 0x007c551d, 0x00895f2d, 0x00895e30, 0x008d5e34, 0x00a2724d, 0x00c5a0ae, 0x00dccaec, 0x00c8c6e2, 0x00aab6be, 0x00a4a499, 0x00a48f75, 0x009d6f47, 0x009d5f2b, 0x00915e2a, 0x00886531, 0x007f6e3a,
- 0x008d6a32, 0x008d6b32, 0x008d6a33, 0x008e6b34, 0x00906c33, 0x008c692f, 0x008e6b33, 0x008b682f, 0x0086652d, 0x0087652c, 0x008d6531, 0x008f6333, 0x008c6231, 0x008f6733, 0x00916935, 0x008e6731,
- 0x00896331, 0x0085622d, 0x0083602b, 0x0085622c, 0x00886530, 0x00856730, 0x0083672d, 0x0086692e, 0x0089692f, 0x0089682d, 0x00886329, 0x008d652b, 0x00956930, 0x0096672f, 0x00915f28, 0x00915e28,
- 0x00865b2d, 0x00795526, 0x006e5824, 0x006b612c, 0x0061692f, 0x00617035, 0x00667a3d, 0x00697e43, 0x006e7e45, 0x006d7d42, 0x006d7c42, 0x006b7c43, 0x006e8147, 0x0073834f, 0x00768752, 0x00768656,
- 0x00809062, 0x007c8c5f, 0x007e8d64, 0x007f8d67, 0x007a8764, 0x0076816b, 0x00788274, 0x006f7970, 0x00656d66, 0x00646a67, 0x0063676a, 0x008d8f95, 0x00e5e6ec, 0x00fbfbfe, 0x00fbfbff, 0x00fdfdff,
- 0x00f9fdf9, 0x00dadad6, 0x00504d4a, 0x00140f0a, 0x003a342d, 0x004e473f, 0x00403a35, 0x0025211c, 0x0030302d, 0x00313232, 0x002b2c38, 0x002c3352, 0x002c2b36, 0x00302826, 0x00443a2e, 0x00524833,
- 0x0045493b, 0x00353d35, 0x002f3737, 0x003d4145, 0x006b6a71, 0x007f7786, 0x004a4356, 0x001b1b2e, 0x000c1c31, 0x000e1c2e, 0x00101c2a, 0x00151d25, 0x0027282f, 0x00272833, 0x00171b2f, 0x00181e38,
- 0x002a3244, 0x00373f50, 0x00404756, 0x003f4750, 0x00353e43, 0x002a3537, 0x00283235, 0x00313b3f, 0x00374049, 0x003d4652, 0x00484c57, 0x00454045, 0x005b4d40, 0x00a1866c, 0x00d2ae87, 0x00d8ad7d,
- 0x00e1b481, 0x00d9b486, 0x008d734e, 0x004f3e25, 0x003e3c2d, 0x00476c49, 0x006ba072, 0x008bb590, 0x00afc8b1, 0x00c7d1c4, 0x00cbcdc8, 0x00e4dddb, 0x00e5e0df, 0x00bcbcb7, 0x005e6359, 0x00202b1d,
- 0x00251508, 0x003b281b, 0x00594b3a, 0x00625244, 0x00413525, 0x00332618, 0x002b2213, 0x002d2215, 0x003d3627, 0x00403730, 0x00232d2c, 0x00183f4f, 0x000c262d, 0x00080f0e, 0x00131001, 0x002c2504,
- 0x007a7b43, 0x00adad71, 0x00a8a766, 0x00a5a062, 0x00aea669, 0x008e906e, 0x005a6550, 0x003a452e, 0x001a2212, 0x003c4136, 0x00c1c5bf, 0x00fafaf8, 0x00fefefe, 0x00fdfbfc, 0x00fdfefb, 0x00e6e6ed,
- 0x006d6d66, 0x0027261a, 0x004f4b37, 0x00746e50, 0x00868154, 0x008f8754, 0x008f874f, 0x008f894f, 0x00908c56, 0x0094915c, 0x00969466, 0x00928f69, 0x0088815d, 0x007d6d4b, 0x006f593b, 0x00684d33,
- 0x005b3e2d, 0x004e3527, 0x0040281e, 0x0035231d, 0x002d1f1b, 0x002f1a16, 0x00311614, 0x002f151a, 0x00271019, 0x00271014, 0x00220f0e, 0x00281a0d, 0x00443a29, 0x006f645b, 0x00807572, 0x00463a41,
- 0x00010d3b, 0x00050f54, 0x00081062, 0x00060b6f, 0x00081264, 0x00050f4b, 0x00010b32, 0x000b1732, 0x000b1535, 0x00131543, 0x004e415b, 0x008c6556, 0x00805646, 0x00754838, 0x00895f49, 0x00946953,
- 0x00926a54, 0x0088614e, 0x00694433, 0x005d3d2d, 0x004c3122, 0x00231c13, 0x00252825, 0x00484545, 0x00373837, 0x00212323, 0x00141315, 0x0018171a, 0x0018161a, 0x0016141a, 0x0015131a, 0x0014121b,
- 0x00081912, 0x000a1716, 0x00131a1d, 0x001f1e23, 0x00231c24, 0x00241923, 0x001c1219, 0x00160c12, 0x000c0c0f, 0x000c0e0f, 0x000f1310, 0x00191d15, 0x0020221a, 0x0024261f, 0x00242520, 0x0024231e,
- 0x001b1c1a, 0x000f0f0f, 0x00090809, 0x000a090b, 0x00050709, 0x0004090f, 0x00101419, 0x00272728, 0x003c382c, 0x00545148, 0x00afafaa, 0x00f0f5f4, 0x00f5fefe, 0x00fafffb, 0x00fcfdf5, 0x00fefeef,
- 0x00a7aee4, 0x004b59a8, 0x003c51ad, 0x003956be, 0x004262d4, 0x003e59ca, 0x00304ab7, 0x00354bb5, 0x003152b8, 0x00355ac3, 0x004b77dd, 0x005489ee, 0x004d79db, 0x003e69d1, 0x004670de, 0x004274ec,
- 0x003475e8, 0x00386dcd, 0x00789fe0, 0x00daeafa, 0x00fcf4ef, 0x00fff7f9, 0x00fcfafa, 0x00fdfcfc, 0x00fcfcfb, 0x00fefefe, 0x00fefdff, 0x00fcfcfd, 0x00fefdfe, 0x00fdfdfd, 0x00fffdfe, 0x00fdfbfc,
- 0x00fcfdf8, 0x00fcfef8, 0x00fdfefb, 0x00fdfdfb, 0x00fefdfc, 0x00fefcfb, 0x00fefdfb, 0x00fefefa, 0x00fdfdfb, 0x00fcfdf9, 0x00fdfdfc, 0x00fffdfd, 0x00fefdfd, 0x00fefdfc, 0x00fefefd, 0x00fffffc,
- 0x00fcfcfb, 0x00fffcfd, 0x00fffcfe, 0x00fffcfe, 0x00fefefe, 0x00fcfefb, 0x00fcfef8, 0x00fdfef7, 0x00fafdf4, 0x00fdfef6, 0x00fefcf7, 0x00fefef8, 0x00fdfef5, 0x00fcfff5, 0x00fcfff3, 0x00fdfef3,
- 0x00f2fdfb, 0x00f3fdfe, 0x00f5fffd, 0x00f6fefb, 0x00f8fdfd, 0x00f6f9fb, 0x00fbfafc, 0x00fef9fd, 0x00fbf9fa, 0x00fdf8fd, 0x00fef9fe, 0x00fffdfd, 0x00fffdff, 0x00fefbff, 0x00fefcfc, 0x00fffbfc,
- 0x00fbfcfb, 0x00fcfdfe, 0x00fdfafe, 0x00fffdff, 0x00fbfafc, 0x00fcfcfc, 0x00fffbfb, 0x00fdfcf8, 0x00fffdee, 0x00fefeec, 0x00fbfbed, 0x00fefcf6, 0x00fefbfc, 0x00fdfbfe, 0x00fefdff, 0x00fbfdfa,
- 0x00fdfefc, 0x00fdfefc, 0x00fdfdfd, 0x00fcfdfd, 0x00fefdff, 0x00fdfdfd, 0x00fdfcfc, 0x00fefcfc, 0x00fefbfd, 0x00fefbfb, 0x00fafbf8, 0x00f8fdf8, 0x00f9fefc, 0x00fbfdfe, 0x00fcfdfb, 0x00fbfef8,
- 0x00fafdeb, 0x00f9fbec, 0x00fbfaf3, 0x00fdfbfc, 0x00fefaff, 0x00fbf9fd, 0x00fcfbfb, 0x00fdfcf8, 0x00fffeee, 0x00fcfeef, 0x00f8fdf5, 0x00f4fefc, 0x00f3fefc, 0x00f9fcfc, 0x00fef8fd, 0x00fef7fd,
- 0x00fbfffb, 0x00fcfefd, 0x00fdfefe, 0x00fcfdfe, 0x00fcfefe, 0x00fcfefe, 0x00fefeff, 0x00fefdff, 0x00fcfffd, 0x00fcfefb, 0x00fffdfe, 0x00fffdff, 0x00fcfefd, 0x00fdfffd, 0x00fffeff, 0x00fefeff,
- 0x00fafbfd, 0x00fbfefe, 0x00fcfcfe, 0x00fefcff, 0x00f7f8fa, 0x00fbfdfc, 0x00fefffd, 0x00fdfefd, 0x00fafdfb, 0x00f9fdfa, 0x00fafbfa, 0x00fffffe, 0x00bdbfbd, 0x00838582, 0x00989896, 0x00c5c5c3,
- 0x00eee8e7, 0x00fbf8f5, 0x00fcf9f9, 0x00fcfbfb, 0x00fafcfa, 0x00fbfefc, 0x00fcfffe, 0x00fbfffc, 0x00fbfcfb, 0x00fbfcfa, 0x00fcfcf4, 0x00fbfdef, 0x00fdfefd, 0x00fcfbff, 0x00fcf9fe, 0x00fbf9fe,
- 0x00fbfdf8, 0x00fbfdf1, 0x00fbfdf2, 0x00f9fcf7, 0x00f8f7fb, 0x00f7f5f8, 0x00f5f1f5, 0x00f3eff1, 0x00eae9e6, 0x00e6e4e1, 0x00e0dddc, 0x00d4cecf, 0x00c3bcbc, 0x00b5adaf, 0x00a39ca0, 0x00958d90,
- 0x008f7c7a, 0x007d6b68, 0x006e5c59, 0x00645253, 0x00584843, 0x004c3d3a, 0x0040332d, 0x00372a23, 0x002a1e18, 0x001f140e, 0x00130c08, 0x00090907, 0x00050806, 0x00060805, 0x00070804, 0x00080603,
- 0x00020200, 0x00040402, 0x00050503, 0x00080706, 0x00070706, 0x000a0c0b, 0x00010304, 0x0048484b, 0x00f4f2f0, 0x00fcfdfd, 0x00f8fcf9, 0x00f5faf6, 0x00fdfeed, 0x00ddd2ab, 0x00c8ac77, 0x00c69d5b,
- 0x00d0a96d, 0x00d2ad70, 0x00d7b175, 0x00d7af73, 0x00dab477, 0x00ddb87b, 0x00dab478, 0x00d5b074, 0x00d5ad70, 0x00d1ac6d, 0x00d0ac6c, 0x00d3ac6d, 0x00cfa768, 0x00c7a160, 0x00c29d5b, 0x00bd9755,
- 0x00bd9754, 0x00c7a161, 0x00c7a061, 0x00c6a060, 0x00bc9554, 0x00b99252, 0x00ba9453, 0x00b8924f, 0x00b8934f, 0x00a17b38, 0x00b58f4c, 0x00c8a25f, 0x00c7a15e, 0x00c39d59, 0x00b48f4b, 0x00b38f4a,
- 0x00cea560, 0x00d0a965, 0x00cfa867, 0x00cca564, 0x00c59f5b, 0x00ba9350, 0x00c39b5a, 0x00caa261, 0x00d1ab68, 0x00cca563, 0x00c39d5b, 0x00c19c5a, 0x00c8a35f, 0x00c8a15f, 0x00b6914d, 0x00b08d47,
- 0x00b39148, 0x00b28f49, 0x00aa8642, 0x00b18c49, 0x00bf9b56, 0x00c6a15b, 0x00c49d58, 0x00bd9551, 0x00bc9852, 0x00bf9c55, 0x00c29f58, 0x00c19e57, 0x00c09b55, 0x00b7914b, 0x00b9934e, 0x00b9954f,
- 0x00c3a55e, 0x00b99a53, 0x00ba9b55, 0x00c3a55f, 0x00ba9c56, 0x00bd9f59, 0x00b59650, 0x00af914a, 0x00b7984f, 0x00bd9f58, 0x00ba9954, 0x00b6924d, 0x00b99451, 0x00bc9752, 0x00bb9452, 0x00ba9353,
- 0x00ab8a42, 0x00a5833c, 0x00a8833f, 0x00ac8644, 0x00a27e3b, 0x00a88040, 0x00b28647, 0x00b78c4d, 0x00af8747, 0x00ad8545, 0x00b78e50, 0x00bd9456, 0x00ac8342, 0x00a27a39, 0x00b68e4e, 0x00af8747,
- 0x00a47932, 0x00ae833d, 0x00bc8e4b, 0x00bf9150, 0x00b48a49, 0x00b08746, 0x00b48a4b, 0x00b28949, 0x00ad8547, 0x00ae8749, 0x00ad8148, 0x00ae7e4c, 0x00a37443, 0x00a1733e, 0x009b6d35, 0x00996e35,
- 0x009f7339, 0x00a4773c, 0x00986a2f, 0x0095692c, 0x0094682b, 0x00966c31, 0x009b7439, 0x009b7538, 0x00a27c3b, 0x00aa813c, 0x00ab7f38, 0x00b88842, 0x00a88250, 0x00e2d0b3, 0x00fcfbf2, 0x00fbfdff,
- 0x00acb4ae, 0x00544f3d, 0x00dfccb1, 0x00eecda5, 0x00efcba3, 0x00fbebc9, 0x00f9f7de, 0x00f5f9ef, 0x00f3fbfa, 0x00f1f9fd, 0x00f2f5fd, 0x00f5edfb, 0x00f8f1fe, 0x00f1edf8, 0x00e9ebef, 0x00dee3e5,
- 0x009aa1a7, 0x0049505c, 0x00394454, 0x00727a87, 0x00a6b4b6, 0x00c1bdce, 0x00807b9a, 0x003d3e5c, 0x00414565, 0x005d6077, 0x005b5d65, 0x00464541, 0x003e362b, 0x003e362c, 0x003e372e, 0x003b3432,
- 0x00413637, 0x00403240, 0x00392f49, 0x0030284d, 0x0023214a, 0x00353751, 0x00545a69, 0x00424848, 0x00151d16, 0x0011170e, 0x000c171e, 0x00142c4b, 0x00465d85, 0x005e7caa, 0x00698cc7, 0x00608acd,
- 0x004e87d7, 0x004a86dc, 0x004a84e3, 0x004982e2, 0x004b7bdd, 0x00516ccb, 0x00788bd5, 0x009cb7ce, 0x009cc4c5, 0x0080a6d6, 0x005e86d4, 0x004875d8, 0x004b7dcf, 0x004e7acc, 0x005277ce, 0x005771df,
- 0x00346ece, 0x003469cc, 0x004476da, 0x004c7bde, 0x004573d4, 0x003666c3, 0x003364c1, 0x004070cd, 0x003f6dd1, 0x00406dd0, 0x004873cf, 0x005077c0, 0x005375c6, 0x004a6dbc, 0x004767b8, 0x00506dc0,
- 0x006481d4, 0x00718fde, 0x00728ddc, 0x007b97e3, 0x007a97e1, 0x006a8cdd, 0x00557cd2, 0x004b70cb, 0x004e75d5, 0x004971d4, 0x00466dd4, 0x00587de2, 0x005072d1, 0x004e6bc4, 0x005f78ce, 0x00738cdd,
- 0x004c7bda, 0x004775d5, 0x00507cdf, 0x004d76da, 0x004d70d7, 0x005271d7, 0x00395abe, 0x003154b6, 0x00406fcb, 0x00477bda, 0x004478d3, 0x004b78cf, 0x005881df, 0x005984e3, 0x005682e1, 0x005882e4,
- 0x004979d7, 0x003c6bc9, 0x003d69c3, 0x004873cc, 0x004572c7, 0x003f60c1, 0x00324aa7, 0x00223a83, 0x0020305c, 0x0036405d, 0x004d505e, 0x00353330, 0x006d6856, 0x00c7c4b6, 0x00fbfdf6, 0x00f6fbff,
- 0x00fbfdf8, 0x00fcfef9, 0x00e8e9eb, 0x0097989f, 0x00424357, 0x00424559, 0x00434760, 0x00414562, 0x003a3c5e, 0x003a4061, 0x0041476a, 0x004d5275, 0x006d6c87, 0x008e8ea0, 0x00c3c5ce, 0x00ced4d6,
- 0x009ba8ad, 0x00748290, 0x00454f71, 0x00393d6e, 0x003f397a, 0x00494358, 0x00615a56, 0x006f6655, 0x006e5d36, 0x006c5422, 0x00715217, 0x006c4c0b, 0x00714911, 0x00754e21, 0x00764d28, 0x0070452a,
- 0x006a5011, 0x006a5010, 0x006e5116, 0x00705318, 0x0073561e, 0x0072531d, 0x00765323, 0x00795626, 0x007a542a, 0x007a5329, 0x007a5727, 0x0078591e, 0x0074521a, 0x006f4d12, 0x006b490f, 0x0068440b,
- 0x006d4a18, 0x00735120, 0x007e5b30, 0x007d5f38, 0x00ab8963, 0x00b8a5a6, 0x00afa5b7, 0x00c8c8d6, 0x00e5e8e4, 0x00dfd8c5, 0x00ae9878, 0x00a07b4c, 0x009b682f, 0x0091652e, 0x008e6a37, 0x008a7342,
- 0x00916d38, 0x0094713a, 0x0097733c, 0x00936f37, 0x00936f35, 0x008c672d, 0x008e682f, 0x008e682f, 0x008a632b, 0x00896329, 0x00906630, 0x008e622e, 0x00936834, 0x00946b35, 0x00916834, 0x008e6531,
- 0x008b642e, 0x0089652d, 0x00876129, 0x00856128, 0x008b662e, 0x0086662d, 0x0087682f, 0x008d6e34, 0x00906b36, 0x008d6a33, 0x0089662f, 0x0088642c, 0x008f6931, 0x00946b33, 0x00976c35, 0x00966c35,
- 0x00866635, 0x007b5d2e, 0x0075582a, 0x00745a2d, 0x0072602e, 0x006f6530, 0x0074713a, 0x00787b48, 0x007c8668, 0x00808c73, 0x0082907e, 0x007f9082, 0x00899989, 0x008e998b, 0x008b9487, 0x00838881,
- 0x00787c84, 0x006a707a, 0x00656d79, 0x00626b77, 0x00525c65, 0x00495262, 0x004a5365, 0x00444e61, 0x003e4657, 0x003c4454, 0x003e4454, 0x00717580, 0x00e0e0e6, 0x00fefdfd, 0x00fefcfe, 0x00fdfcfa,
- 0x00fcfdf9, 0x00d8d7d4, 0x004a4642, 0x00130f0a, 0x00322f2a, 0x0044423d, 0x0035352f, 0x00191b15, 0x001f2021, 0x00292d2c, 0x001f2125, 0x00181d29, 0x0028272b, 0x0037332c, 0x00443b2c, 0x0053432b,
- 0x005b482c, 0x005a4b32, 0x004e412f, 0x00584d44, 0x00777273, 0x006b6a75, 0x00323441, 0x00121823, 0x00111a29, 0x00121926, 0x00121723, 0x00131720, 0x001e1e26, 0x001b1b24, 0x000d101b, 0x000f121e,
- 0x001c243b, 0x00293146, 0x003d4456, 0x003c444f, 0x002d3539, 0x001c2525, 0x00242d2e, 0x00364043, 0x00444a55, 0x003f4956, 0x00474955, 0x003a323d, 0x005b4c41, 0x00a0876c, 0x00caa67b, 0x00d4a774,
- 0x00d8a173, 0x00daa984, 0x00ac8569, 0x005d442d, 0x002b2411, 0x00315023, 0x0054834d, 0x0074a078, 0x009dbeb4, 0x00bccecf, 0x00ccd0d3, 0x00e2dcdd, 0x00daccc9, 0x009d958e, 0x003d3b2f, 0x00191f0f,
- 0x0040290d, 0x00755636, 0x00a58064, 0x00a58162, 0x0076603d, 0x004e3c18, 0x002f1a05, 0x00361c0a, 0x00524644, 0x00546060, 0x004d7b82, 0x0042a2b7, 0x002e5862, 0x00111c21, 0x00120707, 0x00261b0f,
- 0x0083814e, 0x00ccc67b, 0x00cdc26b, 0x00cbc268, 0x00d0c982, 0x00c6c48b, 0x00acac7f, 0x00959773, 0x006c7262, 0x006a6f66, 0x00c1c5c2, 0x00f8f8f6, 0x00fffdfd, 0x00fefafd, 0x00fdfdfb, 0x00e9ecf2,
- 0x007b7972, 0x002f2b20, 0x00564c3d, 0x00786852, 0x008a7755, 0x008b774f, 0x008a784b, 0x00897d4c, 0x00887e53, 0x00878156, 0x008b855c, 0x008d8460, 0x00877759, 0x00766348, 0x00614c36, 0x00553e2e,
- 0x004f332b, 0x00473027, 0x003a251f, 0x00321f1c, 0x002e1e19, 0x00351715, 0x00381216, 0x0039121c, 0x003c1421, 0x00391116, 0x0038110e, 0x003f1f0c, 0x0061442e, 0x00856a5a, 0x009f847a, 0x007a5f5d,
- 0x001d2224, 0x000f1537, 0x000d0f51, 0x00090d6a, 0x000b0b60, 0x0003093e, 0x00000524, 0x00060f23, 0x000c112c, 0x00080428, 0x0020122d, 0x00503736, 0x00745549, 0x0069442e, 0x00693e22, 0x0076462a,
- 0x00855644, 0x006d4334, 0x00583323, 0x00664a37, 0x00574426, 0x001c1e0b, 0x00212b20, 0x0032352d, 0x001e1e18, 0x000d0f0d, 0x000b0e10, 0x000a1216, 0x0010161c, 0x00101518, 0x00181916, 0x0016130e,
- 0x0010161c, 0x000f1418, 0x001a1b19, 0x001c1812, 0x001e1713, 0x001b1314, 0x00140d12, 0x000d0711, 0x000b0611, 0x000b0a10, 0x000e1114, 0x00141816, 0x001f1f21, 0x00222023, 0x00211f25, 0x00211d22,
- 0x00131215, 0x0009090c, 0x00070708, 0x00080a09, 0x00080c09, 0x00090f14, 0x00141922, 0x00282830, 0x003e3d3d, 0x00514f51, 0x00aeaeaf, 0x00f2f4f5, 0x00f9fdfd, 0x00fcfffd, 0x00f9fbf7, 0x00fffff8,
- 0x00a9b7e8, 0x005264aa, 0x004e61b5, 0x004b64c7, 0x004260d0, 0x002b49bb, 0x001d3cad, 0x002c4ab8, 0x003352c2, 0x003454be, 0x004a70d6, 0x004d84db, 0x004572d3, 0x003a66cb, 0x00436ddb, 0x004874e8,
- 0x003b6fda, 0x003764bc, 0x007e9bdd, 0x00deeaf6, 0x00fdfafb, 0x00fbfaf2, 0x00fdfbf8, 0x00fdfbf6, 0x00fefdfa, 0x00fcfbf8, 0x00fefefb, 0x00fdfdf9, 0x00fefefa, 0x00fefdfb, 0x00fffdfd, 0x00fefdff,
- 0x00fdfef8, 0x00fdfff9, 0x00fdfffa, 0x00fbfffa, 0x00fbfefb, 0x00fafdfa, 0x00fbfef9, 0x00fcfff9, 0x00fffefc, 0x00fdfdf8, 0x00fcfcf9, 0x00fefefa, 0x00fffefd, 0x00fffefb, 0x00fefdfa, 0x00fefef8,
- 0x00fafdf5, 0x00fdfdf8, 0x00fffdfa, 0x00fffcfa, 0x00fefdfa, 0x00fcfdf6, 0x00fbfef5, 0x00fcfef9, 0x00fdfdfe, 0x00fcfcf7, 0x00fdfbf2, 0x00fcfcec, 0x00fdfaeb, 0x00fdfef1, 0x00fdfef5, 0x00fdfffb,
- 0x00f0fffb, 0x00effffd, 0x00f1fefe, 0x00f2fefe, 0x00f1fdfd, 0x00effdfc, 0x00f0fdfc, 0x00f3fefe, 0x00fbfcff, 0x00fdfcfe, 0x00fbfafd, 0x00fcfafc, 0x00fbfefe, 0x00fbfdff, 0x00f8feff, 0x00faffff,
- 0x00f9faf7, 0x00fcfdf7, 0x00fefaf4, 0x00fdf7ef, 0x00fff9f2, 0x00fdfaf1, 0x00fffcf4, 0x00fffdf6, 0x00fffef5, 0x00fdfef4, 0x00fdfef6, 0x00fdfdfa, 0x00fdfcfe, 0x00fefcff, 0x00fcfbfc, 0x00fdfdf9,
- 0x00fcfdfa, 0x00fefefb, 0x00fefdfb, 0x00fcfcfb, 0x00fefdff, 0x00fdfcff, 0x00fbfcfe, 0x00fcfdff, 0x00ffffff, 0x00fefcfd, 0x00fcfefc, 0x00f9fffa, 0x00fbfffd, 0x00fbfbfd, 0x00fefdfe, 0x00fefefc,
- 0x00fefdf5, 0x00fdfef3, 0x00fcfff6, 0x00fcfff8, 0x00fefeff, 0x00fcfaf9, 0x00fefbf8, 0x00fefdf7, 0x00fffcf2, 0x00fcfcf2, 0x00fbfdf8, 0x00f7fcfb, 0x00fbfffe, 0x00fdfdfc, 0x00fffcfe, 0x00fdfafd,
- 0x00fbfffd, 0x00fbfefd, 0x00fbfeff, 0x00fcfeff, 0x00fcffff, 0x00fcffff, 0x00fcfffe, 0x00fcffff, 0x00fffffd, 0x00fffefa, 0x00fffdfb, 0x00fffeff, 0x00fefeff, 0x00fffeff, 0x00ffffff, 0x00fdfffe,
- 0x00fdfdfe, 0x00fbfcfc, 0x00fdfdfe, 0x00fcfbfd, 0x00ffffff, 0x00fbfefc, 0x00f9fcf9, 0x00fafdfa, 0x00f9fdfa, 0x00fcfffc, 0x00fefefd, 0x00fdfdfb, 0x00bbbbba, 0x007b7a79, 0x00949191, 0x00c4c3c2,
- 0x00eae9e8, 0x00f9faf8, 0x00fcfefd, 0x00fafcfb, 0x00fafbfa, 0x00fbfcfb, 0x00fbfcfd, 0x00fafcfd, 0x00ffffff, 0x00fdfefe, 0x00fdfdfa, 0x00fcfdf3, 0x00fdfefa, 0x00fefefa, 0x00fffdfd, 0x00fdfbfe,
- 0x00f4f4f4, 0x00e9ebe3, 0x00dadad3, 0x00cacbc8, 0x00bcb8bb, 0x00b2abac, 0x00a59a9a, 0x00998f8b, 0x00877d77, 0x007f736c, 0x0073675f, 0x00655851, 0x00564742, 0x004a3937, 0x003b292b, 0x002f1d21,
- 0x0029130e, 0x00220c05, 0x001e0803, 0x00200c08, 0x00200f0b, 0x0020110e, 0x001c100d, 0x00180d09, 0x00180c0a, 0x00150b07, 0x00130c07, 0x00100d07, 0x00100f09, 0x00110f0b, 0x000f0e0b, 0x000b0c0a,
- 0x00090b0b, 0x00080c08, 0x000a0c0c, 0x00090808, 0x0009060b, 0x00060807, 0x00020705, 0x00535855, 0x00f1f3f1, 0x00fafbfa, 0x00fafbf9, 0x00fbfbfb, 0x00fdfdfa, 0x00eeeade, 0x00e3d8c9, 0x00e1d1bd,
- 0x00ded5b7, 0x00e1d7b8, 0x00e1d3b5, 0x00d7c6a7, 0x00c9b696, 0x00bba884, 0x00b7a37a, 0x00b9a479, 0x00c3ac7a, 0x00c4b07c, 0x00c8b275, 0x00ccb06c, 0x00cdad6c, 0x00ccad6c, 0x00c9ab66, 0x00c4a25d,
- 0x00ccab62, 0x00d0af67, 0x00d3b065, 0x00d3af66, 0x00d1ae62, 0x00c8a35e, 0x00c9a360, 0x00c49d5d, 0x00c39f59, 0x00c49f59, 0x00d1ab64, 0x00d0a860, 0x00d6ae65, 0x00d6ad63, 0x00c69d53, 0x00c1984d,
- 0x00caa46b, 0x00cba46a, 0x00cca269, 0x00c89e64, 0x00c99e63, 0x00ca9f62, 0x00cca163, 0x00cea363, 0x00cea463, 0x00caa05e, 0x00d0aa63, 0x00cca961, 0x00cea962, 0x00c8a25f, 0x00bd9853, 0x00c59e5b,
- 0x00c7a35d, 0x00c6a05d, 0x00b99251, 0x00c59c5c, 0x00d1a967, 0x00caa662, 0x00c2a05b, 0x00bd9b57, 0x00b89551, 0x00b3914b, 0x00b89650, 0x00bc9a54, 0x00be9957, 0x00c39c5c, 0x00c49c5d, 0x00bd9556,
- 0x00ae9149, 0x00ac9147, 0x00b79c52, 0x00c1a55a, 0x00c4a55b, 0x00c3a358, 0x00c0a054, 0x00c0a253, 0x00c7a558, 0x00c3a153, 0x00ba974b, 0x00b79449, 0x00b7934e, 0x00be9a53, 0x00bf9a54, 0x00b7934e,
- 0x00bc9651, 0x00b7914d, 0x00ba934e, 0x00b7904e, 0x00b6904c, 0x00be9556, 0x00ac8042, 0x00a5783d, 0x00b28649, 0x00b5894c, 0x00b98f52, 0x00b58d4f, 0x00b18a4b, 0x00b38d4f, 0x00bb965a, 0x00c19b5f,
- 0x00b58d49, 0x00b18844, 0x00b88d4b, 0x00c09655, 0x00c29a59, 0x00b99251, 0x00b28a49, 0x00ad8645, 0x00ad8646, 0x00a58241, 0x009e7a3c, 0x009e773f, 0x00a27b44, 0x00a67e45, 0x00a77d43, 0x00a2763d,
- 0x009b743a, 0x00a0773c, 0x009e753a, 0x00966d32, 0x00996e34, 0x00986e36, 0x009d763c, 0x00a0793b, 0x00a27638, 0x00a27836, 0x009c7533, 0x00a68142, 0x00a78c62, 0x00e8dcc2, 0x00fcfdf1, 0x00fbfcf9,
- 0x00d4d6cf, 0x00bda999, 0x00e7c9ad, 0x00e0bf96, 0x00f7e2bd, 0x00fff8e0, 0x00f7fbf1, 0x00f0fbfe, 0x00effafd, 0x00f4f7fb, 0x00f4f2f9, 0x00f2f2fc, 0x00f5f2fd, 0x00f3f1ff, 0x00ecedfb, 0x00e5e9f4,
- 0x00cfd5dc, 0x009ba0a7, 0x00474f4f, 0x003f454b, 0x007c8586, 0x00a2a7b5, 0x00bac2d1, 0x008b93a9, 0x00434c61, 0x00535469, 0x00605965, 0x004a3e3d, 0x0044342a, 0x0040382c, 0x003a382a, 0x00383b30,
- 0x004a342e, 0x00483131, 0x00403034, 0x00372a37, 0x0027253a, 0x002f3146, 0x00485063, 0x00353d4d, 0x000f1d21, 0x00283032, 0x0041556a, 0x005378b1, 0x006792d2, 0x00638fd6, 0x005687d7, 0x005283d6,
- 0x004a7fd9, 0x005281e3, 0x005380e0, 0x00527add, 0x005279db, 0x006b77cd, 0x00a6add9, 0x00cfe1be, 0x00cdedae, 0x00b1d3db, 0x008bb3ec, 0x005c89ee, 0x004980cb, 0x004d7fce, 0x00557bda, 0x00556aef,
- 0x003c69cf, 0x003c67d0, 0x00446fd8, 0x004673d9, 0x00406ed1, 0x004070cd, 0x004676d1, 0x004b78d3, 0x00416eca, 0x003d68c5, 0x00406bc6, 0x004f77d5, 0x004b71d7, 0x00365ec5, 0x003a5fc5, 0x00385dca,
- 0x004166d2, 0x00496edb, 0x004169d4, 0x004870d8, 0x004973d9, 0x003e6fd5, 0x003869d2, 0x003767cd, 0x003a69cb, 0x003864c8, 0x003862c7, 0x004671d2, 0x004671cf, 0x005079d7, 0x006289e8, 0x006189e7,
- 0x005484e3, 0x005986e5, 0x004876d7, 0x003463c5, 0x003561c6, 0x004875d8, 0x004f7cdd, 0x004e7bd9, 0x004978d2, 0x004977d0, 0x004b75d0, 0x004f75cf, 0x005079d4, 0x005781dc, 0x005a87e3, 0x005787e0,
- 0x004d7cd5, 0x00406dc6, 0x003964bb, 0x00456bc2, 0x004b70c3, 0x003f61bc, 0x002b4ca1, 0x001e377d, 0x00232e4f, 0x00343947, 0x00444740, 0x00373724, 0x00757360, 0x00d4d5cd, 0x00fafefa, 0x00f4fcff,
- 0x00f4fbf7, 0x00f9fefd, 0x00dee1e5, 0x00858894, 0x0027283b, 0x00191c33, 0x001f233f, 0x0027294f, 0x00292d56, 0x00282b57, 0x00222857, 0x00272d5b, 0x00272449, 0x0037334b, 0x009a9ba4, 0x00ebeeef,
- 0x00c0d2d2, 0x00677888, 0x002d3958, 0x00313465, 0x00423679, 0x005d4f57, 0x0078664b, 0x00735e3f, 0x005e4719, 0x00624412, 0x00694912, 0x006e4c12, 0x00725018, 0x00735019, 0x006d4d18, 0x006d4a19,
- 0x00705019, 0x0072501b, 0x00714e19, 0x006f4c18, 0x0073511a, 0x0073511b, 0x00704f17, 0x006d4c16, 0x006f4d16, 0x00725019, 0x0077531c, 0x0076521b, 0x00724d17, 0x006e4b15, 0x00694712, 0x0062420d,
- 0x00644715, 0x006a4c20, 0x006d5225, 0x00967f58, 0x00b09b72, 0x00786e67, 0x00656267, 0x00aba9ae, 0x00dad7d2, 0x00c9bca7, 0x007e6c46, 0x00886936, 0x0091672c, 0x00906732, 0x00977441, 0x00a08453,
- 0x00ac8852, 0x00a37f49, 0x009a763f, 0x0096723a, 0x00946f35, 0x00956f35, 0x00997137, 0x00976d34, 0x008c6025, 0x008a5f23, 0x0090642b, 0x0091662f, 0x00926832, 0x00926932, 0x008e652d, 0x008d632b,
- 0x00835e22, 0x00886126, 0x00886328, 0x008a642a, 0x0089662c, 0x008c672f, 0x0087642d, 0x0084622c, 0x0085622b, 0x0085632c, 0x00806029, 0x0084642d, 0x00896831, 0x00906e37, 0x00916e37, 0x00926f38,
- 0x0089713c, 0x008b7142, 0x00906f46, 0x00926f47, 0x00906f41, 0x00937c47, 0x00938450, 0x008d8559, 0x00828973, 0x007f8782, 0x00758188, 0x00687788, 0x005e6c74, 0x0058606c, 0x00515763, 0x0049495e,
- 0x00464567, 0x0041426d, 0x00383e69, 0x00313a64, 0x00303c5d, 0x002e395d, 0x002f385c, 0x002f375c, 0x00333a5e, 0x00363d5d, 0x003b415a, 0x0074788a, 0x00e4e7ec, 0x00fcfdfb, 0x00fbfcf7, 0x00fdfff7,
- 0x00fdfbf7, 0x00d8d4d1, 0x0045403d, 0x00191614, 0x00363533, 0x004d4f4d, 0x00404441, 0x00212723, 0x0019231d, 0x00202524, 0x000e110f, 0x00101010, 0x0030332c, 0x00464239, 0x00494030, 0x00604f34,
- 0x00a3835d, 0x00b3936f, 0x0087694b, 0x005f4a36, 0x00524b45, 0x00343a3e, 0x00101b21, 0x00071115, 0x00121720, 0x00131721, 0x0012131e, 0x0013131d, 0x00161921, 0x0013181d, 0x000e1216, 0x000d1214,
- 0x000e182d, 0x00131d31, 0x00202a3b, 0x0028303b, 0x00242b2f, 0x00181f20, 0x00242c2f, 0x00353d44, 0x0039434b, 0x003c4652, 0x00434450, 0x003c2f3c, 0x00665a4b, 0x00a79071, 0x00c3a272, 0x00d6a973,
- 0x00d99b6f, 0x00e5aa89, 0x00cfa184, 0x007d5e48, 0x00252008, 0x001a3208, 0x003e6730, 0x00699067, 0x0096b2a4, 0x00bac8ca, 0x00ccced4, 0x00d2c9d0, 0x00bbaca9, 0x0074695f, 0x00373020, 0x004a4835,
- 0x008b7745, 0x00b89164, 0x00cf9d7a, 0x00cf9975, 0x00a58a57, 0x00795e2c, 0x00402402, 0x003f1902, 0x00716464, 0x00889fa5, 0x007cc1cd, 0x006be5f9, 0x005c8d96, 0x00263036, 0x00170a0b, 0x002c201a,
- 0x008e8a58, 0x00d9cb7a, 0x00ddc966, 0x00e0c662, 0x00d0c97f, 0x00cdc381, 0x00bbb47b, 0x00aca983, 0x009ca393, 0x00a2a7a3, 0x00dbdedd, 0x00faf8f9, 0x00fffbff, 0x00fffaff, 0x00fcfdfe, 0x00ecf0f7,
- 0x00878581, 0x0038322b, 0x00574a3e, 0x00786451, 0x008d7356, 0x008c6f4e, 0x00896e4c, 0x0087704c, 0x0082724f, 0x007b714e, 0x0079714d, 0x007d6f4f, 0x0077634a, 0x00634d38, 0x004c3425, 0x00422520,
- 0x003e231d, 0x003d2521, 0x0036201d, 0x002f1c18, 0x002d1c16, 0x00391617, 0x0040121b, 0x00431420, 0x00481320, 0x004d1419, 0x0048140d, 0x0052210c, 0x006b4227, 0x0088614d, 0x00a98878, 0x00a98880,
- 0x0072745c, 0x004b4b57, 0x001a1d47, 0x000f1055, 0x000f0d52, 0x00070a39, 0x00010527, 0x00020c26, 0x000c112e, 0x00160c30, 0x001a0d2a, 0x001a0d1c, 0x00483529, 0x005d3f25, 0x00623c1a, 0x007d502f,
- 0x008d5e4c, 0x0071453e, 0x004a2a1f, 0x00543e2d, 0x003a3210, 0x001c2313, 0x0026352a, 0x002b3229, 0x0025221f, 0x001f1f22, 0x00161d24, 0x0016222f, 0x00162431, 0x00192227, 0x00141a16, 0x001f1c13,
- 0x0023212a, 0x00252227, 0x002d2921, 0x00312a19, 0x002b2214, 0x00271e16, 0x001f1918, 0x0018131a, 0x00120d15, 0x00111016, 0x000f1114, 0x00111318, 0x0017191d, 0x00191720, 0x0016121a, 0x0016121a,
- 0x000a0b0f, 0x0006060a, 0x00050707, 0x00070b07, 0x000b110b, 0x00141a1e, 0x001f242e, 0x002f2f3c, 0x003e444b, 0x004d4f56, 0x00ababaf, 0x00f4f3f4, 0x00fefefd, 0x00fffffd, 0x00fafafa, 0x00ffffff,
- 0x00a2afe1, 0x003d4c8f, 0x002f408d, 0x003a51aa, 0x004360c9, 0x003251c0, 0x00203fb1, 0x002543b7, 0x002e4bb9, 0x003750c0, 0x004a6bd6, 0x004a7dde, 0x00436ad0, 0x004468d0, 0x004868d2, 0x00496ad7,
- 0x004566c8, 0x004660b0, 0x00899dd3, 0x00e0e6f5, 0x00fafbf9, 0x00fcf9f5, 0x00fcfdf8, 0x00fdfcf7, 0x00dcdbd6, 0x00a0a09a, 0x007e807a, 0x00868581, 0x00898a84, 0x008d8b87, 0x008a8a87, 0x008d8d8a,
- 0x008b8c87, 0x008a8b86, 0x00848981, 0x0080887f, 0x007b827d, 0x007d837f, 0x007f847e, 0x00848580, 0x00878582, 0x00898783, 0x008a8783, 0x008c8886, 0x00928a85, 0x00968a86, 0x009a8c85, 0x009f9287,
- 0x00a29389, 0x00a3968b, 0x00a3988c, 0x009f978d, 0x0099948c, 0x00959186, 0x00948f83, 0x00948d86, 0x00958e8d, 0x009d8d8a, 0x00a79289, 0x00b5988b, 0x00baa095, 0x00b6a59e, 0x00aeaba7, 0x00afb3b5,
- 0x00a5bbcb, 0x00a4bcd0, 0x00a1bcd2, 0x00a2bfd6, 0x00a0bdd8, 0x009ebad2, 0x00afc7d9, 0x00d0e4f3, 0x00d0dae3, 0x00d2d7de, 0x00d6dae6, 0x00cfd4ec, 0x00d1daed, 0x00dde9f6, 0x00e0f0f7, 0x00ccdcde,
- 0x00a3aaa7, 0x009f9a96, 0x00b2a598, 0x00baa393, 0x00c4a592, 0x00b8a190, 0x00af9e8c, 0x00aa998d, 0x00a29793, 0x009c9592, 0x00959191, 0x008f8f8e, 0x00919192, 0x00929395, 0x00909091, 0x00969695,
- 0x009b9a96, 0x00a5a5a1, 0x00b1b1ae, 0x00b8bab8, 0x00c1c1c3, 0x00c6c6ca, 0x00c9c9cf, 0x00cdcdd3, 0x00cecfd6, 0x00cecbd4, 0x00c8c8d2, 0x00c1c7cd, 0x00bbbdc2, 0x00b5b3b6, 0x00a9a7a6, 0x00a19d99,
- 0x0098948d, 0x0097968e, 0x0095958c, 0x00969790, 0x00999993, 0x00a09a94, 0x00a49890, 0x00a69a93, 0x00a49a95, 0x00a49a96, 0x00a09997, 0x009c9998, 0x009c999a, 0x00999697, 0x008f8c90, 0x0085858a,
- 0x007e817c, 0x007d817e, 0x007b8180, 0x007b8282, 0x007c8484, 0x007d8383, 0x007f8282, 0x00828383, 0x0083847c, 0x0084817b, 0x0083807d, 0x00808181, 0x00818083, 0x00818082, 0x00818181, 0x00818282,
- 0x00828283, 0x00818080, 0x007f7f7f, 0x00818181, 0x00838383, 0x007b7e7c, 0x00b3b8b3, 0x00f4f7f4, 0x00fafffb, 0x00fcfefb, 0x00fdfdfb, 0x00fdfdfc, 0x00bdbcbb, 0x007b7978, 0x00949090, 0x00c1bfbe,
- 0x00e9ecea, 0x00f7f9f9, 0x00f6f9f9, 0x00f3f6f5, 0x00f3f3f3, 0x00f0f0f0, 0x00ebecec, 0x00e5e5e7, 0x00d8dbd9, 0x00d1d2d5, 0x00c5c5c4, 0x00b5b6b1, 0x009e9e99, 0x008e8d8a, 0x007e7b75, 0x00716d6a,
- 0x00605e5a, 0x00585651, 0x004d4b48, 0x00494642, 0x003f3c3a, 0x003d322f, 0x00362723, 0x0031231c, 0x002d1f10, 0x002b1a0e, 0x00261407, 0x00210f03, 0x00200c05, 0x00210b07, 0x00200906, 0x00200a09,
- 0x00240e06, 0x00230d05, 0x00220d07, 0x00230f09, 0x0021100b, 0x001f110d, 0x001b100d, 0x00180e0c, 0x00120c08, 0x00120b0b, 0x00120c09, 0x00100d05, 0x000f0e08, 0x00110f0d, 0x000f0f0d, 0x000a0b09,
- 0x000a0b0d, 0x00080b0c, 0x00090b0c, 0x000a090a, 0x000b080d, 0x00060a08, 0x00040d07, 0x00616c65, 0x00f4f9f4, 0x00fbfcfb, 0x00fcfdfa, 0x00fdfbfc, 0x00fdfcfe, 0x00fcfefb, 0x00fafaf9, 0x00f9f9f8,
- 0x00f8fff8, 0x00f9fef7, 0x00fbfbf4, 0x00fcfbf2, 0x00faf8ec, 0x00f9f7e5, 0x00f9f7de, 0x00f8f5d8, 0x00f6f1cc, 0x00f1ecc1, 0x00e8e0af, 0x00dccd9a, 0x00d6c490, 0x00d6c48e, 0x00d4bf87, 0x00d0b97f,
- 0x00dabd81, 0x00d4b97a, 0x00cdb16f, 0x00c9ac6c, 0x00c8ab69, 0x00c7a769, 0x00c6a368, 0x00c3a068, 0x00c6a367, 0x00c9a567, 0x00c5a160, 0x00c29e59, 0x00c19c55, 0x00c49f55, 0x00caa459, 0x00cda75c,
- 0x00c29b66, 0x00bf9963, 0x00c09c63, 0x00c39e63, 0x00c0975b, 0x00c49a5c, 0x00c49a59, 0x00c89f5c, 0x00c79c56, 0x00c19750, 0x00c0994f, 0x00b7944b, 0x00ba9951, 0x00bb9954, 0x00b39049, 0x00b28d47,
- 0x00be9752, 0x00c29957, 0x00ba9051, 0x00c4985a, 0x00c49a59, 0x00c29e5a, 0x00c6a761, 0x00c6a660, 0x00c3a25f, 0x00c19e5c, 0x00b89652, 0x00b08e49, 0x00b38d4c, 0x00bb9353, 0x00c49d5c, 0x00c49a5b,
- 0x00c1a35e, 0x00ba9e57, 0x00bb9f57, 0x00c9aa62, 0x00ceac65, 0x00dab76e, 0x00d3b166, 0x00ccab5e, 0x00d4ae64, 0x00d6af68, 0x00d3ad62, 0x00cea85e, 0x00c7a259, 0x00c6a15a, 0x00c9a45a, 0x00c7a15b,
- 0x00c19a57, 0x00bf9755, 0x00c29a55, 0x00c09955, 0x00c49d59, 0x00caa25f, 0x00c49b56, 0x00c59c5a, 0x00c89e5d, 0x00c69d5c, 0x00c49d5c, 0x00b4914e, 0x00b69450, 0x00bf9e5a, 0x00bfa05c, 0x00c8a866,
- 0x00c9a461, 0x00c09b57, 0x00ba9452, 0x00be9956, 0x00c09c59, 0x00c8a461, 0x00c3a05c, 0x00bd9956, 0x00b48f4d, 0x00a88543, 0x009f7c3c, 0x009b763a, 0x009c763c, 0x00a9854a, 0x00a98449, 0x00a37c42,
- 0x00926d32, 0x009d773b, 0x00a37c42, 0x00a17a41, 0x009d743d, 0x00a07741, 0x00a27941, 0x009f763a, 0x009f7432, 0x00a57c3b, 0x00a58246, 0x00a1834a, 0x00b29b77, 0x00ede4ce, 0x00fcfdf1, 0x00fefdf9,
- 0x00fbede8, 0x00f8d7c4, 0x00d0a78e, 0x00dbaf8e, 0x00ffebd2, 0x00fdf6e7, 0x00f8f9f6, 0x00f2fafd, 0x00f5f6ff, 0x00f9f5f9, 0x00f9f2fb, 0x00f2f0fd, 0x00f5f4fd, 0x00f3f2fd, 0x00efeefc, 0x00eaecf7,
- 0x00dde0e8, 0x00cfd6da, 0x006e747a, 0x00252d2d, 0x004f5559, 0x0080848a, 0x00a4a6b5, 0x00bac3d0, 0x00818aa2, 0x005b5e73, 0x00666470, 0x00514646, 0x0048372d, 0x0042382a, 0x003f3a29, 0x003d3b2b,
- 0x00432a29, 0x00422e29, 0x003b2e27, 0x00352d22, 0x00272f1f, 0x00222d26, 0x001d2c2f, 0x001f3043, 0x003b4a71, 0x005b6a9a, 0x007487c5, 0x007192e4, 0x00678be4, 0x00547ddc, 0x005079e0, 0x00507de7,
- 0x004a78e7, 0x004e7aee, 0x00547bef, 0x00527aec, 0x005478ec, 0x007b82c7, 0x00bab4bf, 0x00dce4ab, 0x00daefa9, 0x00c0dbd7, 0x009bc0f0, 0x006694f3, 0x00447ed6, 0x00437cd8, 0x004b79e7, 0x004666f8,
- 0x003f65db, 0x004269de, 0x00476de3, 0x00446bdf, 0x00476fe1, 0x004971e2, 0x005077e7, 0x005279e8, 0x004873e1, 0x00456edb, 0x00456fd6, 0x004974cf, 0x003e69cb, 0x002f5abe, 0x003b63cb, 0x003a63ce,
- 0x00436cd7, 0x004871db, 0x00416bd4, 0x003f67d0, 0x004671d4, 0x003f70d6, 0x003b6ed2, 0x003c6dd2, 0x00426dd3, 0x003e69cc, 0x003c67ca, 0x00406bcd, 0x00446ece, 0x00557cdb, 0x005f86e4, 0x00547bd8,
- 0x005481e1, 0x005e8aea, 0x004572d4, 0x003261c4, 0x003460c7, 0x003d69cd, 0x005683e5, 0x005f8ceb, 0x004975d1, 0x003f6bc4, 0x004873cb, 0x004e76cd, 0x004d78d1, 0x00547fd9, 0x005a88e2, 0x005b8ce3,
- 0x005583dd, 0x00416ec5, 0x003763bb, 0x003b66bb, 0x00436abf, 0x003b5cad, 0x00284791, 0x001f3871, 0x002c3352, 0x00393a41, 0x00413d35, 0x003b3621, 0x007f7b6b, 0x00e5e6da, 0x00fbfffb, 0x00f8feff,
- 0x00fefffe, 0x00fdfdff, 0x00d4d6dc, 0x007a7d83, 0x003f3f4f, 0x00353648, 0x002f314b, 0x00303050, 0x002e2e53, 0x002c2d52, 0x002c3056, 0x0033385e, 0x00403d5c, 0x005f5b70, 0x00b9b9c4, 0x00eaedf4,
- 0x00c1d0d8, 0x00647486, 0x00313b58, 0x0035385c, 0x004d447a, 0x006b5e5b, 0x00725f41, 0x00624e2b, 0x00594113, 0x00614612, 0x006c4c13, 0x006f5011, 0x006e4b12, 0x006d4c17, 0x006e4c19, 0x006b4b1e,
- 0x0073511c, 0x0072511a, 0x00704d18, 0x006f4d16, 0x00704d19, 0x0072501a, 0x006e4c17, 0x00694912, 0x006a4912, 0x006b4b16, 0x00704c16, 0x00714b13, 0x006e4a15, 0x006d4916, 0x006a4714, 0x00654413,
- 0x00604214, 0x0062481e, 0x00876c48, 0x00a5926b, 0x008f7a55, 0x004c4339, 0x00595155, 0x00b1afb0, 0x00e3e0d9, 0x00b2a590, 0x00654f2d, 0x006f5220, 0x00835920, 0x00815c26, 0x00906e3c, 0x00a08758,
- 0x00bc9a67, 0x00a88652, 0x00977540, 0x00987740, 0x0097753d, 0x0098753c, 0x00977439, 0x00947034, 0x00916933, 0x008d672e, 0x008d652d, 0x008e632d, 0x008d622c, 0x008f662f, 0x008d652e, 0x0089622c,
- 0x008a652c, 0x0089652b, 0x008c662d, 0x0089682e, 0x0086632b, 0x0085632c, 0x00815e29, 0x007c5b26, 0x00805d29, 0x00825f2b, 0x00825f2b, 0x0085632f, 0x0094723e, 0x00987642, 0x009f7c47, 0x00a8844f,
- 0x00aa8b59, 0x00ab8c5c, 0x00ae8d61, 0x00aa855b, 0x009f7e4c, 0x00937842, 0x0083713d, 0x00786e40, 0x006e6d55, 0x00595d54, 0x00454b55, 0x0037445d, 0x00353e50, 0x00313846, 0x00303242, 0x00343547,
- 0x00353555, 0x00313257, 0x0030345f, 0x00343c65, 0x00364168, 0x00323d63, 0x00343c63, 0x00333a60, 0x00353b60, 0x003a405e, 0x004f536d, 0x00888aa1, 0x00e7eaf1, 0x00fcfffc, 0x00fbfef8, 0x00fdfff6,
- 0x00fefbfa, 0x00d1cdcb, 0x003e3938, 0x001b1816, 0x003f3f3e, 0x005b5b5a, 0x00535552, 0x00343833, 0x00242524, 0x001f2421, 0x000c0d0d, 0x0014130e, 0x003b3a35, 0x004e493d, 0x005e523f, 0x00988266,
- 0x00e0be98, 0x00f2d1ab, 0x00b99a79, 0x006d553f, 0x003b3129, 0x001f2325, 0x000b141a, 0x000c1218, 0x000f151f, 0x000e141f, 0x000f121f, 0x000f111d, 0x0010141d, 0x000e1219, 0x00080c12, 0x00090e12,
- 0x000c131d, 0x000c141c, 0x000c151b, 0x000c1318, 0x00131a1f, 0x0011171f, 0x00212833, 0x00323946, 0x003a4056, 0x003b4358, 0x00484459, 0x00473941, 0x007f6f5e, 0x00b8a47f, 0x00cfae80, 0x00e1b67e,
- 0x00eeae82, 0x00f0b691, 0x00e3b095, 0x0094745b, 0x00372b16, 0x00173011, 0x00335632, 0x00718763, 0x00b0aa8f, 0x00c0b5a4, 0x00c6bab6, 0x00bfb4bb, 0x00a6a1a8, 0x00716767, 0x0061564c, 0x0094826d,
- 0x00b49a69, 0x00c8a074, 0x00d09b76, 0x00ce9772, 0x00b99a64, 0x00a68a53, 0x00664417, 0x00481d00, 0x007e6e69, 0x009cb1b1, 0x0085c2cf, 0x006fe1f6, 0x0082a9b2, 0x00515252, 0x0026150b, 0x0044321f,
- 0x00ad9f66, 0x00dfcb6e, 0x00e5c860, 0x00e8cb61, 0x00d7ca7d, 0x00c7bd7f, 0x00a7a16f, 0x00888763, 0x007b8075, 0x00888d89, 0x00cecfd3, 0x00f9f5f9, 0x00fffcfd, 0x00fefafd, 0x00feffff, 0x00eef5f7,
- 0x0097928f, 0x00443b35, 0x0057483d, 0x00735a4a, 0x0089684e, 0x008b6548, 0x00886644, 0x00846743, 0x007c6444, 0x0071603e, 0x006b5c3a, 0x00695538, 0x005e4731, 0x004c3421, 0x003c1f12, 0x0037140d,
- 0x00371513, 0x00391b19, 0x00371b1a, 0x00321814, 0x002b1810, 0x003a1413, 0x00451318, 0x004a121c, 0x00511422, 0x0053151a, 0x00521411, 0x0056210e, 0x006e422a, 0x00815d4b, 0x00a18275, 0x00a58c85,
- 0x008c8f89, 0x0074777c, 0x00373747, 0x001b1d38, 0x0015103a, 0x00090939, 0x00010437, 0x0000093c, 0x00090f44, 0x00121246, 0x001b153f, 0x00120e1e, 0x00291b12, 0x0047321a, 0x00563a1b, 0x006a4927,
- 0x0086584d, 0x00704a47, 0x0051312f, 0x0047322e, 0x00291d12, 0x00151a17, 0x00343b3c, 0x00383b3e, 0x002c2934, 0x00232536, 0x00141c35, 0x00112241, 0x00192747, 0x00212d46, 0x0019212f, 0x00212329,
- 0x00383235, 0x00413a37, 0x00474033, 0x004a422e, 0x00463c27, 0x00413724, 0x003a3124, 0x00322921, 0x0026201c, 0x00201c17, 0x001c1917, 0x00151413, 0x0016161a, 0x00131316, 0x00110f14, 0x000f0e13,
- 0x000c0a0f, 0x00060509, 0x00050707, 0x00060b07, 0x00131816, 0x001f252b, 0x002c323d, 0x00393e47, 0x004b4c56, 0x0051535a, 0x00a9abaf, 0x00f4f4f4, 0x00fdfefd, 0x00ffffff, 0x00fbfcfa, 0x00fefefb,
- 0x00a1a8e0, 0x002b3776, 0x00101f67, 0x001e3485, 0x00435ebe, 0x00445fc8, 0x002f4bb7, 0x002b46b6, 0x00334bbd, 0x003750bc, 0x004565d6, 0x004173e8, 0x004565d7, 0x005162cf, 0x005c64c9, 0x005c5ebc,
- 0x006665b1, 0x006465a0, 0x00989bc3, 0x00dee2ef, 0x00fdfbfb, 0x00fffcf8, 0x00fcfcf6, 0x00fefdfa, 0x00cac7c8, 0x0053514f, 0x00121311, 0x00171615, 0x001d1d1b, 0x001f1f1d, 0x0020221f, 0x00232621,
- 0x00262722, 0x0022231e, 0x001a1e16, 0x00131910, 0x00111410, 0x00111410, 0x00131711, 0x00161813, 0x001f1c16, 0x00231d18, 0x00281f1f, 0x002a211e, 0x00332824, 0x00392b22, 0x00413026, 0x00463427,
- 0x00543e32, 0x00554335, 0x00564838, 0x004f4435, 0x00463b2c, 0x00403524, 0x003d3022, 0x00382a22, 0x00392b2a, 0x003f2e2a, 0x00503730, 0x005f4338, 0x006c5249, 0x00625652, 0x00626364, 0x00637178,
- 0x00567aa9, 0x005379aa, 0x005379ac, 0x00577caf, 0x00577aa8, 0x0053729b, 0x007087ac, 0x009badcd, 0x00b0b4ca, 0x00cbc9db, 0x00cfd2e8, 0x00a7bcd8, 0x00aac1db, 0x00bbd5ea, 0x00c5dcec, 0x00bbd1dc,
- 0x00737c7f, 0x00474941, 0x00686053, 0x006d5d45, 0x00745940, 0x006d5542, 0x00614d3e, 0x00594537, 0x004a3f37, 0x00403933, 0x00332f2c, 0x002a2b29, 0x002b2c2c, 0x002e2d2f, 0x00302e2f, 0x00383635,
- 0x00494948, 0x00585857, 0x00706f6f, 0x007f7e7e, 0x00908f90, 0x0099989b, 0x00a1a1a6, 0x00a6a6ad, 0x00a9a7b0, 0x00a5a0ab, 0x009a9aa4, 0x008c9096, 0x007b7b7f, 0x00706c6e, 0x005a5553, 0x004a423e,
- 0x00383128, 0x003a332b, 0x003d3530, 0x003d3831, 0x00403c38, 0x00443e36, 0x004a3e37, 0x004b403a, 0x00514644, 0x004f4542, 0x0048403d, 0x00433e3c, 0x00403d3c, 0x003b3939, 0x002b2a2c, 0x001d1d21,
- 0x00141110, 0x00121110, 0x00101111, 0x000f1314, 0x00111518, 0x00101416, 0x000e1112, 0x000d100f, 0x0011110d, 0x0014100d, 0x00130f0e, 0x000f0e0e, 0x000d0e0d, 0x000e0e0c, 0x000f0e0d, 0x000f0e0e,
- 0x000f0f10, 0x000d0d0d, 0x000e0f0f, 0x000e0f0f, 0x00121111, 0x000e100d, 0x007d817c, 0x00edf0ec, 0x00fdfdfc, 0x00fbfaf9, 0x00fffdfd, 0x00fdfcfb, 0x00bfbdbc, 0x007d7979, 0x00959291, 0x00b8b7b6,
- 0x00cbcdcf, 0x00cccbcd, 0x00b9b9b9, 0x00acadad, 0x00999999, 0x008a8c8c, 0x00797c7a, 0x006b6c68, 0x005e5b61, 0x00535255, 0x00474646, 0x00383733, 0x002a2725, 0x00201e19, 0x00181611, 0x00100e08,
- 0x00100e0c, 0x000e0d09, 0x00110e0a, 0x0012120c, 0x0016130e, 0x001d1410, 0x00251513, 0x00261812, 0x002a1a11, 0x002d1c11, 0x002e1d10, 0x002e1d10, 0x002d1a11, 0x002b1510, 0x00260f0c, 0x00250e0d,
- 0x00220d07, 0x00220e07, 0x00230f08, 0x0022100a, 0x001f0f09, 0x001d100c, 0x0019100c, 0x00160f0a, 0x00140f0c, 0x00120c0c, 0x00120d0a, 0x00100f06, 0x000e0e07, 0x00100f0a, 0x000f0e0b, 0x000b0b08,
- 0x000e080d, 0x000b080c, 0x000b090a, 0x000b0809, 0x000a0708, 0x00050509, 0x000d1113, 0x00727578, 0x00fafbfa, 0x00f9f9f8, 0x00fefffd, 0x00fcfcf9, 0x00fffffc, 0x00fdfdf8, 0x00fefcf5, 0x00fcfbf5,
- 0x00fbfeff, 0x00f8fbfa, 0x00fafbf9, 0x00fdfcf9, 0x00fefaf7, 0x00fef8f3, 0x00fdf8ef, 0x00fefcee, 0x00fcfee7, 0x00fcfee6, 0x00fefeec, 0x00fefdf0, 0x00fefcf2, 0x00fffbf1, 0x00fff9ed, 0x00fef5e8,
- 0x00f6ecdc, 0x00f2e6d3, 0x00ecddcb, 0x00e5d7c2, 0x00e0d5bd, 0x00e4d8b6, 0x00e0cea6, 0x00d7c196, 0x00d0b88d, 0x00bfa87b, 0x00b39b6b, 0x00bba470, 0x00bfa771, 0x00bfa66e, 0x00bda36a, 0x00b99f65,
- 0x00bb9c5e, 0x00b39755, 0x00b89c58, 0x00ba9d56, 0x00b1924a, 0x00ad8c42, 0x00ab8a3d, 0x00b29442, 0x00bc9a48, 0x00b3923f, 0x00ad8a3d, 0x00a78239, 0x009b7533, 0x009a7532, 0x00a07936, 0x00a8803c,
- 0x00b18644, 0x00b08543, 0x00a97e3c, 0x00b08543, 0x00b38945, 0x00b08a42, 0x00b39146, 0x00ba954a, 0x00bd944d, 0x00bd924e, 0x00bc914d, 0x00bb904a, 0x00b78945, 0x00b58842, 0x00b2863f, 0x00ae813b,
- 0x00a98452, 0x00af8a58, 0x00c09a6a, 0x00c7a06e, 0x00c9a16d, 0x00c9a06a, 0x00c69c66, 0x00c29861, 0x00c79c67, 0x00c79e65, 0x00caa367, 0x00caa762, 0x00c3a15b, 0x00bd9b53, 0x00b6934d, 0x00b18e49,
- 0x00b08b4b, 0x00a98946, 0x00ac8a48, 0x00b2904c, 0x00b99855, 0x00b9974c, 0x00c29e50, 0x00cdab5c, 0x00cdaa5b, 0x00c8a758, 0x00cbac5c, 0x00caae5e, 0x00c7ac5c, 0x00c0a556, 0x00c4ab5b, 0x00c1a857,
- 0x00cfa664, 0x00cfa864, 0x00cfa865, 0x00c39d5a, 0x00c19c59, 0x00c09b59, 0x00b79351, 0x00ad8a48, 0x00a88344, 0x00a68343, 0x00ac8849, 0x00a98346, 0x00a07a3f, 0x00ac874b, 0x00a47f43, 0x009f793e,
- 0x00a47f42, 0x00ab8649, 0x00b08b50, 0x00ad884c, 0x00a68144, 0x009d773d, 0x00a07940, 0x00a67f44, 0x00a9803f, 0x00a6803f, 0x00a68548, 0x00a0824b, 0x00bda985, 0x00fbf2dc, 0x00fefdf3, 0x00fdfbfc,
- 0x00fedcd1, 0x00dda290, 0x00cc9483, 0x00f5cebb, 0x00fef4ec, 0x00fdf5f7, 0x00f9f6ff, 0x00f4f9ff, 0x00f7f6fd, 0x00fcf3f9, 0x00faf1fa, 0x00f2f0fe, 0x00f3f4fe, 0x00f3f3fd, 0x00eff0fb, 0x00eaecf6,
- 0x00dfe2ea, 0x00dbe0ea, 0x00b1b4bc, 0x00484e54, 0x0021252a, 0x005b5a5c, 0x007b787a, 0x00969da5, 0x00adbbd0, 0x00a1aebe, 0x00888e9a, 0x00646062, 0x0044352a, 0x00443322, 0x00463720, 0x0041331a,
- 0x00412e19, 0x003f3419, 0x00363216, 0x002b2e17, 0x001e3021, 0x0022383f, 0x00334d63, 0x00516f98, 0x006e8bd5, 0x00708fe7, 0x00708fef, 0x006483e8, 0x00557adf, 0x00567de6, 0x005b85ee, 0x004d7ae5,
- 0x004674e5, 0x004f78e9, 0x00527aed, 0x004f78e9, 0x005479ed, 0x008180c7, 0x00ae9eb7, 0x00ccc8a6, 0x00d9e6b8, 0x00bbd0db, 0x0084a4df, 0x005384e4, 0x004083d5, 0x003d81d6, 0x003f7ce3, 0x003f74f5,
- 0x00406bdb, 0x00436fdd, 0x004b75e6, 0x004770e1, 0x004d77e6, 0x004e78e6, 0x004f79e7, 0x00517ce8, 0x005179e5, 0x004d78e0, 0x004c78dd, 0x004e7cd7, 0x003d6cc9, 0x003060c0, 0x004672d7, 0x00456fd6,
- 0x003a65cb, 0x004470d9, 0x004c78e0, 0x004370d6, 0x00426fd2, 0x004170d4, 0x004171d5, 0x00436fd3, 0x004673d4, 0x004270d0, 0x00406dce, 0x003b67c8, 0x00416acb, 0x00577fdd, 0x00618ae6, 0x00547fda,
- 0x004d78d7, 0x004e78d8, 0x003f6acc, 0x003a66c8, 0x003964c9, 0x003863c6, 0x004d79db, 0x004f7cdd, 0x003561ba, 0x00325fb5, 0x004572c7, 0x004b75cb, 0x00507cd5, 0x004f7cd4, 0x005382dc, 0x005b8ce8,
- 0x005685df, 0x00416cc7, 0x00375db9, 0x00355cb4, 0x003d63b9, 0x004461a6, 0x00344a7f, 0x002f4067, 0x00343b4b, 0x003a3936, 0x00433d30, 0x00403821, 0x00968f7f, 0x00efefe4, 0x00fbfdf9, 0x00f8fdfd,
- 0x00fcfafa, 0x00fdfbfd, 0x00c7c5c7, 0x0069686b, 0x005f5d65, 0x00767582, 0x00858594, 0x0088889a, 0x007b7b92, 0x007b7b92, 0x0084879d, 0x008b92a7, 0x00a6a5b7, 0x00c0becd, 0x00cacad8, 0x00adb1c1,
- 0x0065738e, 0x003d4c68, 0x00313a57, 0x003e3f59, 0x005b5368, 0x006f624b, 0x00655026, 0x005e4617, 0x00634713, 0x006c4c14, 0x00725215, 0x00704d11, 0x0065440c, 0x006e4b18, 0x00725221, 0x006b4b1d,
- 0x006f4d17, 0x00714f1a, 0x0071511a, 0x0071511c, 0x006b4a15, 0x006b4a17, 0x006d4d16, 0x006f4e18, 0x006b4b15, 0x006b4913, 0x006a4610, 0x0068440d, 0x00684413, 0x00654411, 0x00644515, 0x0066481c,
- 0x005f431e, 0x006e5833, 0x008f7a57, 0x00776445, 0x00574429, 0x003b2d24, 0x004e4041, 0x00b2aba6, 0x00d7d1c7, 0x0090806a, 0x00634e2a, 0x006e5120, 0x0079561c, 0x007a5a23, 0x008b713c, 0x009d8c59,
- 0x00ab8d5e, 0x00967949, 0x008c6e3d, 0x00937544, 0x00927342, 0x00957543, 0x0093723e, 0x0095743f, 0x00a5844d, 0x00a2804a, 0x00926f3a, 0x008f6936, 0x008f6736, 0x008e6835, 0x00876530, 0x0085612e,
- 0x0084632f, 0x0082612e, 0x0080622f, 0x00856532, 0x00896b38, 0x008f6e3c, 0x00997847, 0x009d7a4b, 0x00957444, 0x00947242, 0x009f7b4b, 0x00aa8756, 0x00a88655, 0x009f7d4c, 0x00967343, 0x00977444,
- 0x009a7945, 0x009c7b47, 0x00a07a4a, 0x009b7345, 0x008b6632, 0x007c5d26, 0x006c551f, 0x00645621, 0x005e5536, 0x00504a3a, 0x003b3940, 0x00333b61, 0x00393f5e, 0x0030374d, 0x003b4150, 0x00656a77,
- 0x00a0a4b5, 0x009193ac, 0x005c5f81, 0x003a3f67, 0x00303665, 0x002d3563, 0x002f3563, 0x00303660, 0x003a4066, 0x00666a8d, 0x00a8aac9, 0x00d0d0e5, 0x00f3f4fb, 0x00fbfcf9, 0x00fffefb, 0x00fefcf2,
- 0x00fcfafb, 0x00cac7c6, 0x00383534, 0x00191816, 0x003d3e3c, 0x00535452, 0x00575855, 0x0041443f, 0x002e312c, 0x00232823, 0x00100f0c, 0x0020130b, 0x003d332a, 0x00504434, 0x007b6952, 0x00bea181,
- 0x00e9c092, 0x00f6cea2, 0x00cda883, 0x00876a4f, 0x00493b2c, 0x002a2b28, 0x00121b1f, 0x000d141c, 0x000d131b, 0x000b111d, 0x000c1221, 0x000b1121, 0x000b0f1c, 0x00080d16, 0x00020b10, 0x00040e11,
- 0x000b100c, 0x000d1310, 0x00090f0f, 0x00050b0f, 0x000a0f18, 0x000b0f1d, 0x0014192a, 0x00292f42, 0x00464862, 0x00484b65, 0x00484456, 0x004a3a37, 0x007b6a56, 0x00bba47c, 0x00ccae7c, 0x00d4ac73,
- 0x00edb380, 0x00eeb587, 0x00ddae89, 0x009b795f, 0x00413621, 0x00172c28, 0x00284942, 0x0076816a, 0x00c5a87f, 0x00c9ac86, 0x00cbb59e, 0x00c2b5ab, 0x00989799, 0x00786d69, 0x00867266, 0x00a9876f,
- 0x009b7f50, 0x00bb8e63, 0x00c89067, 0x00b87c53, 0x00a58345, 0x00b59055, 0x00865d28, 0x006d3814, 0x008c7669, 0x00a3afac, 0x0088bcc7, 0x0065c9ea, 0x008aaaac, 0x006e6a5b, 0x00332004, 0x0063522b,
- 0x00cabd73, 0x00e5cc6b, 0x00e5c35e, 0x00eac55f, 0x00d9c580, 0x00d0c28f, 0x00c1b892, 0x00a2a185, 0x007e8580, 0x00848b8a, 0x00c8c9cd, 0x00faf6fb, 0x00fffcfb, 0x00fefbfa, 0x00fefefd, 0x00f6fcfa,
- 0x00a7a29f, 0x00524741, 0x00574238, 0x006d4e3e, 0x00895f48, 0x008e5f46, 0x008d6046, 0x00875e43, 0x0078563b, 0x006e4e33, 0x0065452c, 0x005c3b26, 0x00512d1d, 0x00462115, 0x003c130c, 0x00380c08,
- 0x003d0e11, 0x003f1414, 0x003f1515, 0x00391411, 0x0032130b, 0x003b1209, 0x0043120d, 0x00460f11, 0x00520d19, 0x00550f15, 0x00571312, 0x005d2013, 0x00693e2b, 0x00745446, 0x00837064, 0x00887c76,
- 0x007d7d86, 0x006e665d, 0x003e311c, 0x00352407, 0x002d1f1e, 0x001b1535, 0x000b0a44, 0x00050958, 0x00040b5b, 0x00010e57, 0x000a124c, 0x00151b3b, 0x0021212a, 0x003e3a30, 0x006a5d4c, 0x006e5d44,
- 0x00543830, 0x00472f2f, 0x002e1922, 0x002f1c28, 0x00231826, 0x001b1927, 0x003b3e4e, 0x003c3c4d, 0x001b1732, 0x0017183d, 0x001c2656, 0x00192965, 0x00132964, 0x001d2f62, 0x00394973, 0x0045506e,
- 0x00493e32, 0x005d5240, 0x006a5e46, 0x006b5d3e, 0x006d5e3b, 0x00695b38, 0x00625536, 0x00574b2f, 0x00494428, 0x00413b22, 0x0036311d, 0x00252318, 0x001c1a13, 0x00141312, 0x000e0e0e, 0x000b0a0d,
- 0x000c0b11, 0x0007060b, 0x00030406, 0x00030705, 0x00181c1a, 0x002b3037, 0x003b424c, 0x00484e57, 0x00575760, 0x00585960, 0x00acadb3, 0x00f3f4f5, 0x00fbfefd, 0x00fefeff, 0x00fbfbfa, 0x00fffefb,
- 0x00a3a9d4, 0x002d3666, 0x0009144c, 0x0008175a, 0x002e4092, 0x004054af, 0x00364cab, 0x003047ac, 0x003247b0, 0x003346aa, 0x003550c2, 0x003c63ee, 0x005262da, 0x006157bc, 0x007a59a5, 0x00976398,
- 0x00b67b9c, 0x00a6788c, 0x00ba9ea6, 0x00eadfe1, 0x00f8fdfc, 0x00fdfeff, 0x00f7f9f7, 0x00fafdfb, 0x00c5c5c4, 0x00484848, 0x00000100, 0x00010200, 0x00070707, 0x000b0b0b, 0x000e0f0d, 0x00111212,
- 0x0014140e, 0x0010120b, 0x00090d06, 0x00040903, 0x00000400, 0x00010401, 0x00040500, 0x00070701, 0x000f0b08, 0x00140e0c, 0x001b1011, 0x001d1012, 0x00271712, 0x002f1c13, 0x003c2618, 0x00452d1c,
- 0x00513823, 0x00563f25, 0x00594428, 0x00533e24, 0x0049351c, 0x00442f19, 0x003c2817, 0x00321f11, 0x002e1d14, 0x00321d15, 0x003b241b, 0x00472c24, 0x004b3b39, 0x004a474f, 0x00576475, 0x00556f8a,
- 0x003566b9, 0x003467b9, 0x00356abc, 0x003769bb, 0x003c69b7, 0x004066ae, 0x00536fae, 0x005a6fa6, 0x008a91bd, 0x00c1c0e9, 0x00a7b1dc, 0x0091b8e6, 0x00a6ccf7, 0x00aad1f3, 0x00b3d6f2, 0x00c0e1f3,
- 0x0092a5aa, 0x00455049, 0x00515342, 0x00594e35, 0x0066502e, 0x005d4731, 0x00563e2e, 0x004d3828, 0x003c2f24, 0x00322720, 0x0027201b, 0x001f1b17, 0x001b1817, 0x001c1918, 0x001f1d19, 0x002a2722,
- 0x00464546, 0x00575758, 0x006f6f71, 0x007d7d7e, 0x008e9090, 0x0099999a, 0x00a09fa2, 0x00a5a4a9, 0x009fa0a4, 0x0099979d, 0x008e8c92, 0x00807d81, 0x00686264, 0x0058504e, 0x003f3730, 0x0030261b,
- 0x002b1f13, 0x002d2116, 0x002e2316, 0x002e2519, 0x002d271c, 0x002f2821, 0x00302721, 0x00352b28, 0x003a3531, 0x003e3735, 0x003b3432, 0x003a3332, 0x00352d2e, 0x00302a29, 0x001e1a18, 0x00100d0c,
- 0x000a0404, 0x00060202, 0x00010002, 0x00000003, 0x00000105, 0x00000105, 0x00000104, 0x00010204, 0x00010200, 0x00050102, 0x00040101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000,
- 0x00000100, 0x00000000, 0x00000100, 0x00000101, 0x00030203, 0x00000100, 0x007a7e7b, 0x00eef0ee, 0x00fbfcfa, 0x00fafaf8, 0x00fdfdfb, 0x00fefdfc, 0x00b1aead, 0x004c4949, 0x00383635, 0x003e3c3c,
- 0x003f3e3f, 0x003d3b3d, 0x00322f30, 0x00292828, 0x001d1c1d, 0x00191818, 0x0013110f, 0x000c0908, 0x00070406, 0x00070407, 0x00040302, 0x00050401, 0x00080601, 0x000d0b07, 0x000d0c06, 0x000c0a07,
- 0x00161511, 0x0017140f, 0x00171611, 0x00191813, 0x001c1c19, 0x00231a16, 0x00261a15, 0x00261b16, 0x00281a0f, 0x0027180d, 0x0027180c, 0x0027180c, 0x0026150d, 0x0026130e, 0x0025100d, 0x0026100e,
- 0x001d0a06, 0x001e0c08, 0x001e0c09, 0x001d0d08, 0x001b0c09, 0x001c0f0d, 0x001a100e, 0x00170e0d, 0x0011110c, 0x00110e0a, 0x00110e0b, 0x000f0e0a, 0x000f0c09, 0x00100e09, 0x00100f09, 0x000d0b05,
- 0x000d0808, 0x000c0908, 0x000c0805, 0x000e090a, 0x000d0705, 0x0009030a, 0x00241d28, 0x00847c87, 0x00f2eff2, 0x00f4f2f2, 0x00f7f6f2, 0x00fafaf0, 0x00fdfdee, 0x00fcfeea, 0x00fbfde7, 0x00fbfee9,
- 0x00f8f9fd, 0x00fbfafe, 0x00fefcff, 0x00fffbff, 0x00fff9fe, 0x00fff8fd, 0x00fffafc, 0x00fffcfd, 0x00fefcfe, 0x00fdfbfd, 0x00fbfbfd, 0x00fafcfe, 0x00fbfcfe, 0x00fcfbfc, 0x00fefcfc, 0x00fdfdfc,
- 0x00f7f7fe, 0x00f9f9fc, 0x00fefcff, 0x00fefbfd, 0x00fbf9fb, 0x00fcfbf2, 0x00fcf9ed, 0x00fbf8e8, 0x00fbfaea, 0x00faf9e8, 0x00faf8e5, 0x00fbf9e4, 0x00faf6e0, 0x00efead2, 0x00d9d3ba, 0x00cbc4ab,
- 0x00c7ba8c, 0x00c6b789, 0x00cebc8d, 0x00cebb89, 0x00bca776, 0x00ad9763, 0x00a08a52, 0x009f884e, 0x009f874e, 0x00957e43, 0x0091753d, 0x0096753e, 0x009c7844, 0x009c7842, 0x009a753f, 0x00a28046,
- 0x00b28b50, 0x00b1894c, 0x00ad8447, 0x00ad8345, 0x00af8647, 0x00ae8544, 0x00b28946, 0x00b38a46, 0x00b58c44, 0x00b28741, 0x00b2843f, 0x00b58740, 0x00b3863c, 0x00b08335, 0x00b08334, 0x00b08233,
- 0x00a57b48, 0x00a07643, 0x009f7443, 0x00a37946, 0x00a87e49, 0x00ab824a, 0x00ac824a, 0x00af844c, 0x00bb8c54, 0x00c0945a, 0x00bb9356, 0x00a68344, 0x00997934, 0x009a7936, 0x009b7937, 0x00977332,
- 0x00967534, 0x0092732f, 0x00977736, 0x00a2813d, 0x00a58242, 0x00a98941, 0x00b2924b, 0x00b89850, 0x00b99a52, 0x00b6974f, 0x00b3964d, 0x00bea258, 0x00bda259, 0x00b89f54, 0x00c5ac60, 0x00c4ac5f,
- 0x00c8a056, 0x00cda45b, 0x00c8a159, 0x00c49d56, 0x00c59d58, 0x00cca461, 0x00c29a59, 0x00bd9555, 0x00ca9e61, 0x00d1a769, 0x00cea669, 0x00bf9a5d, 0x00b69155, 0x00b49054, 0x00a98549, 0x00b08a4f,
- 0x00bd9658, 0x00bc9759, 0x00bd975b, 0x00be985c, 0x00b89356, 0x00b89157, 0x00b38951, 0x00b0874d, 0x00b18946, 0x00ac8745, 0x00a18042, 0x00846730, 0x00b09e7c, 0x00fdf4e0, 0x00fffdf5, 0x00fef9fc,
- 0x00e8c5b3, 0x00b57b68, 0x00e1ad9f, 0x00fce8dd, 0x00fff4f3, 0x00f7f2f7, 0x00f3f7ff, 0x00eff6fd, 0x00f9f4fc, 0x00fbf4f5, 0x00f9f4f6, 0x00eef0fa, 0x00f5f2fe, 0x00f1f2fe, 0x00eceef9, 0x00e9eaf3,
- 0x00e1e4ed, 0x00dcdde7, 0x00cdd2db, 0x007a8289, 0x00181f27, 0x002b2624, 0x005c5853, 0x00585e62, 0x00748797, 0x00a3b7c4, 0x00a1adb7, 0x00858485, 0x004e3f32, 0x0044301e, 0x0046341d, 0x00422f18,
- 0x003a320c, 0x00343313, 0x002a2d1e, 0x00262f31, 0x002f425e, 0x0046608d, 0x006785bf, 0x007498de, 0x006b91e6, 0x005e87dd, 0x005982db, 0x00547ed7, 0x00527ed9, 0x005483e0, 0x005585e1, 0x004777d5,
- 0x004277d3, 0x00487bd9, 0x004d7ddd, 0x004c7ddd, 0x004d7cdd, 0x00717dd6, 0x008c88c8, 0x00a6acba, 0x00c3d4d1, 0x00a8c2e8, 0x006d92dc, 0x00447ada, 0x003d82d2, 0x003c82cd, 0x00417fd8, 0x00477dea,
- 0x004776d8, 0x004475d6, 0x004a7bdb, 0x004979da, 0x004b7ddc, 0x004e80df, 0x004e7fe0, 0x004d82e0, 0x004f7fdf, 0x004a7dda, 0x00497cd9, 0x004e80d7, 0x004474ce, 0x003969c7, 0x004979dc, 0x004876dc,
- 0x003362c8, 0x003d6dd3, 0x005483e8, 0x004a7bdb, 0x004170d1, 0x004371d1, 0x004473d5, 0x004876d7, 0x004a74d8, 0x004571d2, 0x00426ece, 0x003965c4, 0x003f69ca, 0x005780e0, 0x00658eed, 0x005f87e9,
- 0x004872cf, 0x003f69c8, 0x003b65c7, 0x003963c6, 0x003863c8, 0x003e68cb, 0x004872d4, 0x00416ecd, 0x00325cb8, 0x00325eb5, 0x004571c7, 0x004775c8, 0x004e7dd1, 0x004b7cd2, 0x004c7dd9, 0x005387e0,
- 0x00547fdd, 0x003b66c0, 0x003157b0, 0x003052a6, 0x003b5aaa, 0x0050679d, 0x0057688b, 0x006d7891, 0x005e6065, 0x003e3c32, 0x003e3a27, 0x00463d27, 0x00aaa191, 0x00f4f1e9, 0x00fdfdf9, 0x00fbfeff,
- 0x00fefcff, 0x00fefbff, 0x00c0babe, 0x00504b4e, 0x00434147, 0x0061616a, 0x0084848e, 0x009897a3, 0x009a99a8, 0x009998a7, 0x009ca0ad, 0x009ea5b1, 0x009fa0aa, 0x00918d9a, 0x00757486, 0x004f536d,
- 0x00353f66, 0x00343e61, 0x0039405a, 0x004f4e5f, 0x006f6562, 0x00726240, 0x00614c1a, 0x005f4912, 0x00684b13, 0x006c4d11, 0x00735114, 0x00714e13, 0x006c4a12, 0x00714f1a, 0x00755524, 0x006f5222,
- 0x00704c18, 0x006e4b17, 0x00704f19, 0x0070501a, 0x006f4b18, 0x006e4a16, 0x00704e16, 0x00714e16, 0x006e4d1a, 0x006c4b15, 0x006a4711, 0x0069450b, 0x00674310, 0x00654413, 0x00684a20, 0x006e532d,
- 0x00725d3a, 0x00796545, 0x00635035, 0x00443219, 0x00372712, 0x00352618, 0x004a3c34, 0x00837b73, 0x00989183, 0x006e6048, 0x00634f2c, 0x0066491a, 0x00714f17, 0x007e602a, 0x00967d49, 0x009f8d5d,
- 0x008d7444, 0x007b6232, 0x00795e2c, 0x00856a37, 0x00917444, 0x00947545, 0x00937442, 0x009b7c49, 0x00aa8954, 0x00a07f4a, 0x008e6e38, 0x008d6b37, 0x00916d3c, 0x008a6735, 0x008a6a38, 0x00917041,
- 0x00957644, 0x00957745, 0x00927545, 0x008f7342, 0x009b7f4e, 0x00a68856, 0x00b29262, 0x00b69365, 0x00af8d5e, 0x00a68454, 0x00a48151, 0x00a17d4d, 0x009b7748, 0x008f6b3d, 0x00866335, 0x00846133,
- 0x00825e26, 0x0086632d, 0x008e6635, 0x008e6636, 0x008c652f, 0x0085652b, 0x00775b21, 0x006e581f, 0x006a5b36, 0x0062553e, 0x004e4748, 0x00353963, 0x0033375c, 0x00303451, 0x005f6479, 0x00b0b6c5,
- 0x00e7ebf8, 0x00c5cadb, 0x00656982, 0x00323559, 0x002f3364, 0x00333868, 0x002d3462, 0x002a325d, 0x00353861, 0x005c5e82, 0x00a2a2c2, 0x00d6d7ea, 0x00fbfbff, 0x00fcfcfa, 0x00fdfcfb, 0x00fffff5,
- 0x00fefcfd, 0x00c7c4c5, 0x00353433, 0x00161614, 0x00313131, 0x00424241, 0x004a4b49, 0x00373937, 0x00272a25, 0x00232522, 0x0018130d, 0x00221608, 0x00382f1e, 0x00554735, 0x00947c62, 0x00b69774,
- 0x00deae80, 0x00e4b488, 0x00ca9e78, 0x00906e53, 0x00554132, 0x00322f2a, 0x00151b1e, 0x000b1019, 0x0009111b, 0x00080f1d, 0x000c1423, 0x000c1423, 0x00070d1b, 0x00030a13, 0x00030c10, 0x00050e12,
- 0x000b0e07, 0x000e110d, 0x000b0e10, 0x000b0e17, 0x000c0f1e, 0x000c0f21, 0x00101325, 0x00222436, 0x0041414f, 0x00484955, 0x00494447, 0x0046382b, 0x006e5b45, 0x00ad9470, 0x00bfa073, 0x00c69e67,
- 0x00e7ab75, 0x00eab682, 0x00d6aa81, 0x00977658, 0x00443824, 0x00233c41, 0x00476e79, 0x00899f9a, 0x00b7ac91, 0x00b4a682, 0x00b9a987, 0x00aea283, 0x007d7158, 0x006e5a43, 0x0093785f, 0x00a47d62,
- 0x00917547, 0x00b28458, 0x00c68a63, 0x00b17347, 0x00a47940, 0x00bb9153, 0x00a97b45, 0x00a16a41, 0x009f8779, 0x009ba8a0, 0x008bc0ca, 0x005cbfe9, 0x007c9b9c, 0x005f5f4a, 0x00483513, 0x008e7f54,
- 0x00d3c883, 0x00e4cd74, 0x00e7c568, 0x00eac56d, 0x00d6c188, 0x00cfc298, 0x00ccc3a7, 0x00bbbbaa, 0x00a0a9ab, 0x009da7aa, 0x00d2d7db, 0x00faf8fc, 0x00fffdf9, 0x00fffdfa, 0x00fefdfb, 0x00f8fcfa,
- 0x00b3aba9, 0x0061534e, 0x005a443c, 0x006c4c3f, 0x00885c48, 0x00905d47, 0x00925d47, 0x008e5a43, 0x007d523e, 0x00714733, 0x00643c29, 0x00593322, 0x0050281c, 0x004c201a, 0x00451614, 0x003e0d0e,
- 0x00410e14, 0x00431115, 0x00411011, 0x003e110e, 0x003c110a, 0x003f1205, 0x00411004, 0x00440d0a, 0x004f0915, 0x00510b13, 0x00540d13, 0x00541511, 0x00532b1e, 0x0060463c, 0x00776b63, 0x0083817e,
- 0x0077747c, 0x00513a2e, 0x00441d08, 0x0065360e, 0x005d4135, 0x003b2b3b, 0x001e1a40, 0x0013104c, 0x000b0e54, 0x00020d58, 0x00051158, 0x00172156, 0x002e3758, 0x00383b48, 0x00504d4f, 0x00534c46,
- 0x002d1f1b, 0x0024161a, 0x001b0c17, 0x00302332, 0x00574c5d, 0x00484354, 0x00373546, 0x001f1d31, 0x00080526, 0x00111441, 0x002a356f, 0x001e3379, 0x000c286e, 0x000e2664, 0x00394b82, 0x00576390,
- 0x00564b35, 0x0065593e, 0x0087785c, 0x00897758, 0x008a764e, 0x008a7849, 0x00827343, 0x007a6d3d, 0x006c6238, 0x00625832, 0x00554d2f, 0x00403c27, 0x002a2618, 0x001c1911, 0x000f0d0b, 0x00070709,
- 0x0007090f, 0x0005070d, 0x00020508, 0x00020606, 0x00212322, 0x003c3e46, 0x004d515d, 0x00565c67, 0x0062646c, 0x005e6167, 0x00acafb5, 0x00f3f4f4, 0x00fdfefc, 0x00fefefe, 0x00fafcf9, 0x00fffffc,
- 0x00a5a9cb, 0x002d3458, 0x000c143f, 0x00020c41, 0x00162366, 0x002a3a86, 0x002f3f90, 0x002d3d96, 0x002c3c9a, 0x002f409c, 0x002c46af, 0x002d54d2, 0x004f59bf, 0x00654d98, 0x008b5388, 0x00bc6a83,
- 0x00e08584, 0x00c67e75, 0x00cb9e94, 0x00f0e2dc, 0x00f3fffc, 0x00f8ffff, 0x00f8fcfc, 0x00f7fdfd, 0x00bec3c1, 0x00464a48, 0x00000300, 0x00020400, 0x000a0b0b, 0x000c0c0c, 0x00100f0e, 0x00151314,
- 0x0011120c, 0x000f100a, 0x000b0c07, 0x00050803, 0x00000400, 0x00010400, 0x00050601, 0x00080803, 0x00130b0a, 0x00160c0b, 0x001c0f0f, 0x00211011, 0x002d1915, 0x00352016, 0x00422a1b, 0x004a321e,
- 0x005a3d22, 0x005e4425, 0x00614928, 0x005d4523, 0x00563d1a, 0x00513819, 0x00483019, 0x003c2613, 0x00352114, 0x00351f13, 0x003a2217, 0x00402720, 0x0042373b, 0x004b5162, 0x005d718e, 0x00496d95,
- 0x00305fba, 0x003164bd, 0x003166c1, 0x002f65be, 0x003264b9, 0x003764b5, 0x004468b5, 0x004563aa, 0x007d8cc7, 0x00a5afe4, 0x006f82ba, 0x007199d1, 0x0093b9ed, 0x009cc3ed, 0x00a9cbee, 0x00bfdff4,
- 0x00acb9c3, 0x00646a64, 0x00494736, 0x0054472c, 0x00614b28, 0x00594129, 0x00513725, 0x00473320, 0x003a2a1e, 0x002f2219, 0x00271e15, 0x00201a13, 0x001d1814, 0x001e1a15, 0x00231f1a, 0x00302c2a,
- 0x004a4a4c, 0x005f6061, 0x0079797b, 0x00878688, 0x0098989a, 0x00a1a1a3, 0x00a5a4a7, 0x00a5a6a9, 0x009e9ba3, 0x00928f96, 0x00888489, 0x007a7475, 0x00635b59, 0x004c433e, 0x00382d25, 0x002f2116,
- 0x00311f13, 0x00322115, 0x00312315, 0x002d2113, 0x00291e13, 0x00261c17, 0x00261c1a, 0x002b201d, 0x002e2621, 0x00332c28, 0x0037322d, 0x003a3430, 0x003a312f, 0x00342b29, 0x00251f1a, 0x0018130e,
- 0x00120908, 0x000e0806, 0x00080404, 0x00030103, 0x00010004, 0x00020106, 0x00020307, 0x00020507, 0x00050304, 0x00060304, 0x00040303, 0x00020302, 0x00040305, 0x00030303, 0x00020301, 0x00030302,
- 0x00030302, 0x00020301, 0x00000200, 0x00020303, 0x00050406, 0x00010201, 0x007d807f, 0x00edefef, 0x00fdfffd, 0x00fcfefb, 0x00fafcfa, 0x00fafaf8, 0x00a5a1a1, 0x002d2929, 0x00040101, 0x00040000,
- 0x00070404, 0x00050404, 0x00060403, 0x00030300, 0x00030302, 0x00050604, 0x00060503, 0x00050504, 0x000c090a, 0x000d0b0a, 0x000b0a08, 0x000b0905, 0x00100b09, 0x00110e0a, 0x00110f0b, 0x0013100c,
- 0x0014150e, 0x00181611, 0x00191814, 0x00171712, 0x001d1a19, 0x00231916, 0x00251814, 0x00231611, 0x0023150e, 0x0024170d, 0x00281b0e, 0x002a1c0f, 0x0027170e, 0x0024130f, 0x00220e0d, 0x00220d0f,
- 0x001e100d, 0x001b0e0b, 0x00190b0a, 0x00180d07, 0x00190e0c, 0x001a110c, 0x00170f0c, 0x00140d0a, 0x00120e0e, 0x00130d0b, 0x0010100c, 0x000d100b, 0x000e0d09, 0x00100f09, 0x000f0f09, 0x000d0a05,
- 0x000e0a08, 0x000d0805, 0x000e090a, 0x000c0709, 0x000c0809, 0x00080305, 0x001c141a, 0x00534b50, 0x00969295, 0x009c9a9a, 0x00a9a8a7, 0x00b9b9b4, 0x00cdcdc3, 0x00dbdbcd, 0x00e9ecdc, 0x00f4f7e8,
- 0x00f9fbfb, 0x00fdfafc, 0x00fefafd, 0x00fcf8fa, 0x00fef8fa, 0x00fff9fa, 0x00fffafc, 0x00fefbfc, 0x00fcfeff, 0x00fbfefd, 0x00f9fdfd, 0x00f8fcfd, 0x00f9fdfd, 0x00f9fefc, 0x00f6fcfc, 0x00f4fbfa,
- 0x00f4fbf6, 0x00f6fbf6, 0x00fcfdfa, 0x00fbfcfa, 0x00f9f9fa, 0x00f9fbfa, 0x00f9fcfa, 0x00fbfef8, 0x00fbfdf4, 0x00fbfcf3, 0x00fdfef5, 0x00fffff7, 0x00fdfef4, 0x00fefef4, 0x00fffdf3, 0x00fffdf3,
- 0x00fffbed, 0x00fff8eb, 0x00fff9ea, 0x00fdf8e7, 0x00f5ecdc, 0x00eae0cf, 0x00e1d7c2, 0x00ded3be, 0x00e0ccb6, 0x00d5c2aa, 0x00cbb59b, 0x00bda380, 0x00b69974, 0x00ad9069, 0x00ab8e66, 0x00b69a6e,
- 0x00b4996a, 0x00b79a68, 0x00ba9a66, 0x00b3955f, 0x00b3955f, 0x00b2905c, 0x00b18d56, 0x00b39157, 0x00b38f51, 0x00af8a4b, 0x00b18a4b, 0x00b89150, 0x00b08a46, 0x00ad8640, 0x00ae8640, 0x00b28841,
- 0x00a07b36, 0x00a8823e, 0x00af8844, 0x00ab843f, 0x00a37b35, 0x0099712a, 0x00966d25, 0x00986e25, 0x009e722a, 0x00a77b30, 0x00aa823b, 0x00a17c3d, 0x00937030, 0x00997535, 0x00a37f3e, 0x00a47f3d,
- 0x00a07c3a, 0x00a17c3a, 0x00a5833f, 0x00b18e48, 0x00b58d4c, 0x00b99557, 0x00c0a065, 0x00bf9c64, 0x00c19e62, 0x00bf9c60, 0x00b9975a, 0x00be9c5e, 0x00b9985c, 0x00b59458, 0x00ba9b5d, 0x00b8995b,
- 0x00c59f54, 0x00c19b50, 0x00b8944a, 0x00b38f46, 0x00b9914c, 0x00bf9553, 0x00bb9252, 0x00bb9052, 0x00c89d60, 0x00cb9f63, 0x00c89f63, 0x00d0ab6e, 0x00cca86c, 0x00c9a368, 0x00bb975b, 0x00ba9659,
- 0x00c39a5e, 0x00c19a5d, 0x00c7a064, 0x00cba56a, 0x00caa669, 0x00bf9a60, 0x00c0995f, 0x00c39c5f, 0x00bb9553, 0x00ac8845, 0x009f7c3e, 0x0093753f, 0x00b2a283, 0x00fef9e8, 0x00fdfcf4, 0x00fdfcfe,
- 0x00e2c0ad, 0x00c38b78, 0x00fcd6ca, 0x00fff3ef, 0x00f7f1f7, 0x00f2f4fb, 0x00eff6ff, 0x00edf8fd, 0x00f9f6fd, 0x00f9f6f5, 0x00f7f3f5, 0x00f1f1fb, 0x00f3f2fc, 0x00f1f3fb, 0x00e9ebf4, 0x00e4e7ee,
- 0x00e2e2ed, 0x00e0e2eb, 0x00dce3ec, 0x00bcc5cc, 0x00515760, 0x0017110e, 0x0026211a, 0x00313534, 0x004a5b69, 0x00778997, 0x00a2adb8, 0x00afb2b1, 0x006f6456, 0x00453625, 0x003d2e1a, 0x003f2d19,
- 0x00303017, 0x00313628, 0x003b4548, 0x004f617a, 0x006d85c4, 0x007292e0, 0x00698fe6, 0x005d88e4, 0x005a8ae6, 0x005687dc, 0x004a7bd1, 0x004d80d3, 0x005186d9, 0x004e82d8, 0x004a81d4, 0x00457ed0,
- 0x004278ce, 0x00467ed4, 0x004782d3, 0x00457fd1, 0x004480d2, 0x005776de, 0x006275d3, 0x007089bf, 0x008aa1cb, 0x007798da, 0x00527dd5, 0x003f77df, 0x003578cb, 0x00387dc6, 0x00417fd1, 0x004a7dde,
- 0x004c80d8, 0x00487fd7, 0x00497fd7, 0x00467dd4, 0x00457dd4, 0x004880d7, 0x004981d7, 0x004882d7, 0x005183de, 0x004d82db, 0x00497ed8, 0x00497ed4, 0x00487ad1, 0x004171cc, 0x004779d6, 0x004578d7,
- 0x003865cc, 0x003e6ad4, 0x005788e8, 0x004e80de, 0x00406fcc, 0x004372d1, 0x004471d1, 0x004674d2, 0x004870d2, 0x00446fd0, 0x00406cca, 0x003c67c4, 0x00436dcc, 0x005682df, 0x005a86e3, 0x00547ee0,
- 0x004970d1, 0x003c65c4, 0x003c65c6, 0x003963c4, 0x003e68cb, 0x004b73d4, 0x004971d0, 0x003b68c2, 0x00375eb9, 0x003764b9, 0x003d6bbd, 0x004274c3, 0x004877cd, 0x004a7ad1, 0x004b79d1, 0x004b7cd3,
- 0x004a72cf, 0x00345bb1, 0x002c4fa4, 0x00294898, 0x0039539c, 0x00546792, 0x00828fa5, 0x00c8cfda, 0x00b1adb0, 0x005d584c, 0x0037331e, 0x004d452c, 0x00bcb3a3, 0x00f8f5ec, 0x00fffef9, 0x00fdfefd,
- 0x00fff9fb, 0x00fbf6f8, 0x00b7b1b2, 0x00544f50, 0x00555355, 0x00727276, 0x008b898e, 0x009e9da4, 0x00a7a6b1, 0x00a6a6af, 0x00a1a5ab, 0x00a0a8ad, 0x00a6a8ad, 0x00a09da7, 0x00838397, 0x004c5371,
- 0x00343d6d, 0x00353f6c, 0x00363d59, 0x0057565d, 0x00776e56, 0x006c5c2f, 0x005d490d, 0x005c4609, 0x006c4a11, 0x00714d14, 0x00785418, 0x0079541a, 0x00795822, 0x00775521, 0x0070521f, 0x00715425,
- 0x0074511f, 0x006d4a18, 0x006b4912, 0x006f4e17, 0x0076531d, 0x0073511c, 0x006e4f16, 0x006a4c15, 0x00714b18, 0x006f4d18, 0x00704d15, 0x006f4b14, 0x006c4b1a, 0x006d4f22, 0x00765c32, 0x007e6a46,
- 0x00837158, 0x00695740, 0x00453821, 0x00261806, 0x001b0c02, 0x00302015, 0x00413228, 0x0031271f, 0x0033281e, 0x0042321e, 0x00584424, 0x00644619, 0x00785820, 0x008e723c, 0x00a18954, 0x00a99a69,
- 0x00bea67a, 0x00a78f62, 0x008f7646, 0x00856b39, 0x00836738, 0x00876b3b, 0x00927643, 0x00957a47, 0x00917440, 0x00856734, 0x00765925, 0x00775925, 0x007d5b2b, 0x007c5d2a, 0x008a6e39, 0x00a18452,
- 0x00b5966a, 0x00ba9a6d, 0x00a18555, 0x00937849, 0x008d7345, 0x00937245, 0x00916e3f, 0x00926f3e, 0x009d7748, 0x00977344, 0x008a6638, 0x00835f31, 0x00815d30, 0x007f5c2e, 0x007e5c2d, 0x007f5e2f,
- 0x00896128, 0x008b6330, 0x008e6534, 0x00906635, 0x008e6933, 0x00916e35, 0x0087692b, 0x007b6124, 0x00705932, 0x006c563c, 0x005c4e4b, 0x003a3a64, 0x0030315a, 0x00323559, 0x00747891, 0x00d1d8e5,
- 0x00eff2f9, 0x00aeb2bc, 0x00454a5e, 0x002c304f, 0x002a2c5b, 0x00292e58, 0x00252c55, 0x002c3459, 0x002f305b, 0x00292b4e, 0x0041425e, 0x008b8ba1, 0x00f1f1f7, 0x00fdfdf9, 0x00f9f9f5, 0x00fbfcf4,
- 0x00fdfdfd, 0x00c5c5c7, 0x00323331, 0x000d100c, 0x00242524, 0x00353533, 0x003d3d39, 0x00252725, 0x001c1817, 0x001d1c17, 0x00252018, 0x003e2d21, 0x003c2d1d, 0x0065523c, 0x00b69c7b, 0x00c0a077,
- 0x00ddaa7a, 0x00e1ae7f, 0x00cc9f74, 0x009f7c5c, 0x005f4936, 0x00373129, 0x001a1f1d, 0x000c1213, 0x000f141c, 0x000a131e, 0x000a131f, 0x000a121f, 0x00060f1b, 0x00010a11, 0x00010a0b, 0x00030f0e,
- 0x00111010, 0x000f0f10, 0x000d0e14, 0x000a0c19, 0x000b0e20, 0x00111426, 0x00121522, 0x001c1e26, 0x00333231, 0x004a4843, 0x00565145, 0x004a3c27, 0x005d4d31, 0x00957e5b, 0x00ac9165, 0x00ba955f,
- 0x00dfa66f, 0x00e3ad7a, 0x00b48d5d, 0x00735533, 0x00342819, 0x00375061, 0x0074a5bc, 0x00a4d1dc, 0x00aec3bb, 0x00abb69e, 0x00b7b790, 0x00bab182, 0x009a834f, 0x0095784d, 0x00a78a63, 0x00ac8a6a,
- 0x00ad9065, 0x00c08e68, 0x00d39367, 0x00cc8c5b, 0x00c4995c, 0x00c59c5c, 0x00bb8e54, 0x00c0895f, 0x00a58e82, 0x0093a099, 0x008bc4cf, 0x0067c7f4, 0x007e9d9e, 0x004e4d38, 0x00463911, 0x00877c4d,
- 0x00bbb478, 0x00dbc87e, 0x00e9d07f, 0x00eacb80, 0x00d9ca98, 0x00dacdad, 0x00cac4ac, 0x00acb2a2, 0x009ea6ad, 0x00a3adb2, 0x00d4dadc, 0x00faf9fa, 0x00fefef7, 0x00fffcf6, 0x00fcfbf7, 0x00f8fdfa,
- 0x00beb3b4, 0x006e5c5a, 0x00624942, 0x00704d40, 0x008b5d48, 0x00925d47, 0x00935f48, 0x00905c45, 0x00855442, 0x00764838, 0x00693e30, 0x00603629, 0x00572b25, 0x00522320, 0x00491616, 0x00410b0d,
- 0x00440a13, 0x00440c13, 0x00400a0c, 0x003e0d09, 0x0041110a, 0x00411204, 0x003f0e01, 0x00420c07, 0x00520917, 0x004f0813, 0x004c0711, 0x004a0e0f, 0x0056372d, 0x0073625a, 0x008e8b84, 0x00919997,
- 0x00614f5c, 0x00401112, 0x00723217, 0x00aa5e38, 0x00845846, 0x00573c3e, 0x00372b3a, 0x00241931, 0x00161047, 0x000d125a, 0x00081663, 0x000e1c68, 0x0028346e, 0x00222854, 0x000e152c, 0x00191b24,
- 0x00130d11, 0x00120910, 0x000a0408, 0x001b1520, 0x00433d48, 0x004d4958, 0x0020222d, 0x00030313, 0x00030224, 0x000b1242, 0x001f2f6c, 0x00162f79, 0x000d2c79, 0x000a2668, 0x00172d66, 0x00445686,
- 0x0062563e, 0x0063563a, 0x009a8b70, 0x00a08e6f, 0x009c8b5d, 0x009e8e54, 0x00988a4c, 0x00938744, 0x008c7b47, 0x00807242, 0x00746a41, 0x00605a3b, 0x003d3a21, 0x00272414, 0x00111007, 0x00030704,
- 0x0003060d, 0x0003050c, 0x00010308, 0x00040709, 0x0029292c, 0x004a4a55, 0x005c606c, 0x00656b74, 0x006a6d77, 0x0066676f, 0x00acafb6, 0x00f2f4f4, 0x00fffefe, 0x00fefdff, 0x00f9fcfa, 0x00fefefa,
- 0x00a9a8c3, 0x002b2d4a, 0x000c1130, 0x00050a33, 0x000b1146, 0x00101854, 0x00151e63, 0x0015226d, 0x0018257b, 0x001d2982, 0x001b338d, 0x001b40a4, 0x003a3f8e, 0x00523569, 0x00864862, 0x00c16561,
- 0x00d4674f, 0x00c2674d, 0x00ce927e, 0x00f4e0db, 0x00f1fefc, 0x00f0fbfc, 0x00f9fdfc, 0x00fafefc, 0x00c1c5c7, 0x004a4e4e, 0x00000201, 0x00020603, 0x00070907, 0x00090c09, 0x000f100c, 0x0010100b,
- 0x00150f0c, 0x000f0e09, 0x000a0b06, 0x00050703, 0x00020500, 0x00040500, 0x00080504, 0x000a0705, 0x001a0e0f, 0x00190e0e, 0x001e100f, 0x00241111, 0x002f1913, 0x00372015, 0x00432c1a, 0x004c351d,
- 0x00614529, 0x00654a2a, 0x00694f2b, 0x00694d25, 0x00654821, 0x00604221, 0x00563b1f, 0x004b331b, 0x00472c20, 0x0044291e, 0x0041281e, 0x00402723, 0x00403b45, 0x004e5b77, 0x00516c98, 0x002a578e,
- 0x00315ab2, 0x003664bb, 0x003363bd, 0x002e61bb, 0x002f62bc, 0x003263bb, 0x003763b8, 0x00416ab7, 0x00637cc7, 0x007088d0, 0x00526eb0, 0x005b7eb8, 0x007293cb, 0x0086a5d3, 0x00a5c0e6, 0x00bad1eb,
- 0x00bec5d0, 0x0084827e, 0x00453c2d, 0x00534129, 0x005b401f, 0x00533920, 0x004a321c, 0x003e2b17, 0x00332317, 0x002a1e13, 0x0020190f, 0x001c1812, 0x001b1715, 0x001d1915, 0x0027231c, 0x0037322d,
- 0x00525155, 0x0069676a, 0x007f7e80, 0x008a8a8c, 0x009c9b9e, 0x00a4a4a6, 0x00a6a7a9, 0x00a3a4a5, 0x009a969e, 0x008b898f, 0x00807b7e, 0x00706867, 0x005b504d, 0x00463a33, 0x003b2d20, 0x003b2c1a,
- 0x003d2719, 0x003a2617, 0x00322212, 0x002c1f0f, 0x0025180a, 0x00211711, 0x001e1914, 0x001d1811, 0x00231817, 0x00281e1d, 0x002e2722, 0x00332b24, 0x00372925, 0x00372924, 0x0031271e, 0x002b2219,
- 0x00251411, 0x001d110d, 0x00140b09, 0x000a0505, 0x00030104, 0x00010005, 0x00000005, 0x00000003, 0x00050006, 0x00030004, 0x00000100, 0x00000100, 0x00010102, 0x00000001, 0x00000000, 0x00000001,
- 0x00030203, 0x00000100, 0x00000000, 0x00000001, 0x00000001, 0x00020402, 0x007f8380, 0x00edf1ee, 0x00fdfdfe, 0x00fcfdfd, 0x00fbfcfb, 0x00fdfcfb, 0x00a9a4a4, 0x002a2725, 0x00060603, 0x000c0a07,
- 0x00110c0f, 0x000f0d0e, 0x000c0c08, 0x00080803, 0x000a0a07, 0x000c0a08, 0x000a0704, 0x000a0805, 0x000e0b0c, 0x000e0c0b, 0x000c0c08, 0x000c0b05, 0x000e0906, 0x000c0904, 0x000d0c06, 0x0013100b,
- 0x00141410, 0x00191312, 0x00171411, 0x0012130c, 0x00191815, 0x001e1614, 0x001e1712, 0x001e160f, 0x00211411, 0x00231910, 0x00251b0f, 0x0024180b, 0x0021140a, 0x0021130d, 0x001f0f0d, 0x00200d0d,
- 0x001f0f0f, 0x001a0b0b, 0x00140803, 0x00120904, 0x00140b0a, 0x00150f0f, 0x00130f0b, 0x00120f0a, 0x00150f0d, 0x00140d0b, 0x000f0e0c, 0x000d100d, 0x00110e0b, 0x00120e09, 0x000f0e08, 0x000f0c03,
- 0x00120c09, 0x00100a0a, 0x000d080a, 0x000a090a, 0x0009090e, 0x000c0a0a, 0x000d0808, 0x000b0407, 0x0018141e, 0x0018191d, 0x001c1d20, 0x0026292b, 0x00353838, 0x00404140, 0x00494c48, 0x00535751,
- 0x00646467, 0x00737073, 0x00868385, 0x00949292, 0x00ada7a6, 0x00bab4b5, 0x00c0bebf, 0x00c8c8cb, 0x00d6d8e4, 0x00e0e3ee, 0x00e6eaee, 0x00ebf1ed, 0x00edf5ef, 0x00edf6f0, 0x00f1f9f3, 0x00f5fcf6,
- 0x00f9fdfa, 0x00fafefa, 0x00f7fef4, 0x00f6fef2, 0x00f9fdf3, 0x00f9fcfb, 0x00fafeff, 0x00fafeff, 0x00ffffff, 0x00feffff, 0x00fafcfd, 0x00fbfefe, 0x00fcfefe, 0x00fdfffe, 0x00fcfefc, 0x00fcfcfa,
- 0x00fdfbfe, 0x00fefbff, 0x00fef8fd, 0x00fff9fd, 0x00fffafe, 0x00fcf6f9, 0x00fcf5f6, 0x00fef6f9, 0x00fff9f9, 0x00fff7fa, 0x00fef7f4, 0x00fbf8e4, 0x00fbf8e3, 0x00f9f8e0, 0x00f7f7db, 0x00f8f6d7,
- 0x00fbe9cb, 0x00f2e0be, 0x00e0cea7, 0x00d0c096, 0x00cdbe94, 0x00d0bc93, 0x00d3bb91, 0x00d2bb8d, 0x00d5b48a, 0x00c9ad7d, 0x00bca06e, 0x00b39661, 0x00b89c63, 0x00ba9d61, 0x00b29458, 0x00aa8f4e,
- 0x00b49248, 0x00b8974c, 0x00bd9b50, 0x00bb994d, 0x00b39145, 0x00a88639, 0x00a58233, 0x00a38130, 0x00a57b31, 0x00a17628, 0x009c7229, 0x00997035, 0x009d7438, 0x00a1783a, 0x009b7531, 0x0095702a,
- 0x009f7534, 0x00a47a3a, 0x00aa8440, 0x00b48f49, 0x00b68f49, 0x00b0894f, 0x00b8925d, 0x00b9925d, 0x00c09866, 0x00c59e6a, 0x00c39b64, 0x00c59d64, 0x00c09961, 0x00bc965c, 0x00b69154, 0x00b69355,
- 0x00b58e46, 0x00b68f47, 0x00b48f47, 0x00af8a43, 0x00a67e3a, 0x00b18847, 0x00b38b4c, 0x00ad8446, 0x00b4864d, 0x00bd8d54, 0x00b58950, 0x00a88246, 0x00b18d50, 0x00bf995c, 0x00c29e5f, 0x00b89655,
- 0x00b48b52, 0x00b78f53, 0x00bd975a, 0x00c09e5e, 0x00c09c5e, 0x00be995e, 0x00c4a065, 0x00c49d60, 0x00bc9153, 0x00bd9757, 0x00c39f62, 0x00b89b67, 0x00c4b69b, 0x00fefbed, 0x00fafaf4, 0x00fafafc,
- 0x00e4d0ab, 0x00d5b198, 0x00fde9e0, 0x00fef7f9, 0x00f1f4fc, 0x00ecf8fc, 0x00eff9ff, 0x00f1fbff, 0x00ebfaf5, 0x00e6f5ef, 0x00eef2f5, 0x00eeeef6, 0x00f2f3fc, 0x00f0f3fb, 0x00ececf7, 0x00e5e7f2,
- 0x00d5dfe1, 0x00d2dcdf, 0x00dae1eb, 0x00dbe1ea, 0x008f949e, 0x00272421, 0x00170d0b, 0x00222223, 0x00455e60, 0x006f8486, 0x008d99a2, 0x00b7bab9, 0x009c928b, 0x0054483f, 0x00352620, 0x00392826,
- 0x00273a38, 0x003e5160, 0x006878a0, 0x00788cc6, 0x007693ed, 0x00688ff0, 0x005a85ee, 0x005784f1, 0x004682db, 0x00407ed2, 0x004883da, 0x004984dc, 0x004e86dd, 0x004a84da, 0x00487fd9, 0x00477ed5,
- 0x002f72bb, 0x003577c4, 0x003e7ed2, 0x003e80d6, 0x00407fd6, 0x004279eb, 0x004a77ec, 0x00527dd9, 0x004a7fbf, 0x004a7dd1, 0x004778de, 0x003972e2, 0x003978da, 0x00437ad8, 0x004d7bdc, 0x005377e1,
- 0x00417fd0, 0x00437fd4, 0x004481da, 0x00427fd9, 0x00447ed8, 0x004680d9, 0x004782dd, 0x004b83e2, 0x004281d4, 0x004482d7, 0x004b83dc, 0x00477ecc, 0x004779cf, 0x004677d3, 0x004173d1, 0x004a75dc,
- 0x003368c3, 0x00386cc8, 0x005686e5, 0x004d7cd8, 0x003e6eca, 0x004674d1, 0x004b74d3, 0x004b75d6, 0x003f6fcb, 0x003f6eca, 0x003c6ac6, 0x003865c2, 0x004573d0, 0x005180de, 0x005784e4, 0x00527edf,
- 0x003868bc, 0x003463bd, 0x003d67c7, 0x003a62c4, 0x00416acc, 0x004c75d6, 0x00496fd1, 0x00355dbc, 0x002d5aae, 0x003967b7, 0x003e6dbd, 0x003c6fb8, 0x004374ca, 0x004a79d0, 0x004a76cf, 0x004972d0,
- 0x002c5cab, 0x00214a94, 0x0022438e, 0x00213c81, 0x003e5496, 0x006e7b9a, 0x00a8adb9, 0x00e3e5ed, 0x00d4d6c8, 0x008a8a77, 0x003c3722, 0x00514b37, 0x00ccc4b5, 0x00fbf3ee, 0x00fffcfd, 0x00fffbff,
- 0x00f8faf1, 0x00f2f1ed, 0x00a49d9e, 0x005e585b, 0x00747375, 0x00a3a4a6, 0x00cbc8cd, 0x00e0dbe4, 0x00bac3c3, 0x00999e9f, 0x00888a8e, 0x009aa0a0, 0x00d6d8da, 0x00ebebef, 0x00c1c0d4, 0x0065678c,
- 0x00273868, 0x002b3965, 0x003f4362, 0x00625e61, 0x00807248, 0x0066551c, 0x0061480c, 0x0065460b, 0x00674e08, 0x00705413, 0x007b581c, 0x007b581e, 0x007a5621, 0x00775622, 0x00735120, 0x00715022,
- 0x00705118, 0x006b4b13, 0x0072511a, 0x0076541e, 0x007b5925, 0x00785622, 0x00795523, 0x00775220, 0x006b4f12, 0x006b4f13, 0x00714e17, 0x00745117, 0x007c5824, 0x007f6438, 0x00816647, 0x00705e46,
- 0x00474526, 0x00353117, 0x00302414, 0x00211409, 0x002b1d11, 0x004a3c2e, 0x00524238, 0x00271c16, 0x00060300, 0x00281d07, 0x00503c1d, 0x006e5326, 0x008f6e38, 0x008e723d, 0x00917649, 0x00c7ac84,
- 0x00eee3ad, 0x00e5d4a2, 0x00d7bd91, 0x00bb9e72, 0x00896f41, 0x007d6434, 0x00846739, 0x007f6033, 0x006e561d, 0x006c521d, 0x006c4f1a, 0x006c4d17, 0x0071521f, 0x00785929, 0x00866537, 0x0098774c,
- 0x00967f48, 0x009b8450, 0x00977d4f, 0x00a99064, 0x009e845d, 0x007c5f32, 0x00745224, 0x007a562b, 0x007b5c27, 0x007d5d2b, 0x007e5b2d, 0x007f5b2f, 0x00805e30, 0x00805d2e, 0x00835c31, 0x00845e34,
- 0x007b5b15, 0x00815d1f, 0x008d622f, 0x00926535, 0x00906732, 0x008c6a2b, 0x008c6d2d, 0x00846529, 0x006c5520, 0x0069502b, 0x0067554e, 0x00454768, 0x0033335b, 0x002f3056, 0x005c5d80, 0x00a5a9c2,
- 0x00ddece8, 0x00becbc9, 0x006e7380, 0x00474763, 0x00353062, 0x002d3059, 0x0023284d, 0x00262950, 0x00222847, 0x00232945, 0x00383b57, 0x00828397, 0x00f1eff7, 0x00fdfdfe, 0x00fffefe, 0x00fffef9,
- 0x00f2fbf5, 0x00b7bfbc, 0x00282b2c, 0x000d0d0e, 0x00272a25, 0x00353631, 0x0043403c, 0x002a2623, 0x000c1305, 0x00101708, 0x00413c30, 0x00624e3d, 0x00422f1b, 0x00735e45, 0x00d2b295, 0x00e4b993,
- 0x00dcad70, 0x00dcae76, 0x00dcac81, 0x00c69f7b, 0x00755847, 0x00362c1d, 0x00231f1a, 0x00100d0c, 0x00060f0d, 0x00061114, 0x0009151c, 0x000a1520, 0x000a121a, 0x0002080b, 0x0004080a, 0x000b0c0d,
- 0x00070702, 0x00030505, 0x000a0817, 0x00060619, 0x000a0f25, 0x000f1625, 0x00151a23, 0x00202423, 0x003e4528, 0x007c805c, 0x009b9876, 0x006f6649, 0x003b2f15, 0x00655638, 0x00a38765, 0x00c19b6f,
- 0x00c19b5b, 0x00c19b5e, 0x00916b3e, 0x004f3315, 0x002a1a11, 0x002b4955, 0x0073a9c6, 0x0096d7f9, 0x0089dae5, 0x0096d3c3, 0x00a5c39f, 0x00c4c082, 0x00e1b567, 0x00cca562, 0x00a98655, 0x00ad9072,
- 0x00ac9861, 0x00b38859, 0x00c6885f, 0x00d99269, 0x00cfa166, 0x00c39756, 0x00c2925c, 0x00ca906b, 0x009f917e, 0x00889f96, 0x0083becf, 0x0065c4f5, 0x007a989d, 0x00505240, 0x00302408, 0x00433d1d,
- 0x0063713a, 0x00a4a368, 0x00d6c68a, 0x00dfc892, 0x00d4d0ae, 0x00cdc8ad, 0x00c2bfb1, 0x00aaaba7, 0x0090a2a0, 0x0098a7a6, 0x00d4d7db, 0x00faf8f7, 0x00fefef9, 0x00fdfcf7, 0x00fffdfa, 0x00fffeff,
- 0x00b8b8ac, 0x00695d52, 0x00685045, 0x00744f43, 0x008e5b4d, 0x00925a48, 0x00945848, 0x00935748, 0x007d503c, 0x00724835, 0x006a3f32, 0x0063362e, 0x005b2c28, 0x00521f20, 0x004c1419, 0x00460b13,
- 0x003b0802, 0x003c0703, 0x00420706, 0x00420a04, 0x00400d05, 0x003f0f00, 0x00430e06, 0x00490d11, 0x0043080f, 0x003f050e, 0x00430c15, 0x00582a2c, 0x00836a65, 0x009a8d8e, 0x00a09ea3, 0x00889199,
- 0x00422e27, 0x004c0c00, 0x00a8452e, 0x00cb5e45, 0x0094554e, 0x00634037, 0x004d3b30, 0x00402a1d, 0x00201721, 0x00131647, 0x000a1465, 0x00051370, 0x000d1a6d, 0x00101b61, 0x00181f54, 0x0024274d,
- 0x00081313, 0x00050c0a, 0x000b0f0d, 0x00090a0a, 0x00130f15, 0x0029252c, 0x00191a21, 0x0004040f, 0x00000218, 0x00000831, 0x000a1c56, 0x00012064, 0x0002256f, 0x00021e62, 0x00132765, 0x004a578b,
- 0x0052542f, 0x00504e30, 0x009c937c, 0x00a4957f, 0x00a9976c, 0x00a9995c, 0x00a8954e, 0x00a49447, 0x00968f42, 0x00908746, 0x00897c4b, 0x00786c46, 0x00564d2d, 0x0037311b, 0x001b170b, 0x000c0907,
- 0x00000501, 0x00000301, 0x0003040a, 0x0008060f, 0x002e2c30, 0x004a5259, 0x006a6e7a, 0x00767785, 0x00687375, 0x006b7174, 0x00aeb0b6, 0x00f3f6f8, 0x00fefdff, 0x00fdfdfe, 0x00fffffe, 0x00fffeff,
- 0x00999ea4, 0x00222533, 0x0009091e, 0x000a0923, 0x000d0c2f, 0x00090a35, 0x00101245, 0x00181b58, 0x00132262, 0x00142067, 0x0012216c, 0x0010336f, 0x002b315e, 0x003a1f3a, 0x007a3c42, 0x00b55746,
- 0x00ba501e, 0x00ae5426, 0x00d39275, 0x00f6e2db, 0x00edffff, 0x00f2feff, 0x00fbffff, 0x00fffeff, 0x00bac3bf, 0x00434a48, 0x00030603, 0x00050603, 0x000b0a07, 0x000e0c08, 0x0015110c, 0x00110c08,
- 0x00080d00, 0x000b0d03, 0x000c0b05, 0x00080803, 0x00040500, 0x00050501, 0x000c0806, 0x00100809, 0x000c0c01, 0x00120d05, 0x001b0e0b, 0x00210e0d, 0x002b1412, 0x00311b13, 0x00402a1a, 0x004c3520,
- 0x00534218, 0x005f4a22, 0x006e502a, 0x00704f29, 0x0070502a, 0x006c4d2b, 0x0065452a, 0x005e3f29, 0x004d361e, 0x004a321c, 0x00472d22, 0x003f2922, 0x0042404f, 0x004e6087, 0x00385d96, 0x001b5099,
- 0x0027538d, 0x00325ea0, 0x00335faa, 0x00315fae, 0x003062b8, 0x003066b7, 0x003164ba, 0x003967c0, 0x003466af, 0x00406eb5, 0x006385cb, 0x008199d2, 0x009caee7, 0x009caedd, 0x00adb5e1, 0x00bcbede,
- 0x00bfc3c5, 0x008c8380, 0x00463026, 0x00533a25, 0x00593a1c, 0x004e301b, 0x00412a16, 0x00382612, 0x00251a07, 0x00211a09, 0x00201910, 0x001a1611, 0x001c1a14, 0x001f1b16, 0x002b2422, 0x00403936,
- 0x004e5351, 0x00656767, 0x00808183, 0x008f8f92, 0x00a29fa2, 0x00a7a4a6, 0x00a4a3a5, 0x00a2a0a3, 0x008d8f8c, 0x007e827e, 0x00797474, 0x006b625f, 0x00554841, 0x0047392e, 0x00473329, 0x00493427,
- 0x003e2f16, 0x003d2b14, 0x00372312, 0x00301d0e, 0x00261605, 0x001e140b, 0x001a1411, 0x001c1510, 0x001a160a, 0x00211a0f, 0x00292014, 0x00342a1c, 0x003a2d1f, 0x003e2e21, 0x0047352a, 0x0048322b,
- 0x00302513, 0x002b2011, 0x001e120c, 0x00100703, 0x00050004, 0x00010001, 0x00020006, 0x00030009, 0x00000100, 0x00000100, 0x00000001, 0x00030103, 0x00020204, 0x00020103, 0x00030102, 0x00020202,
- 0x00000200, 0x00000200, 0x00000101, 0x00030103, 0x00040503, 0x00030602, 0x007e807e, 0x00eff0f2, 0x00f6fef6, 0x00f9fdf6, 0x00fefefd, 0x00fefefc, 0x00adaaa6, 0x002a2825, 0x000d0708, 0x00110a0e,
- 0x000d0d04, 0x000d0d05, 0x000f0e08, 0x000d0c07, 0x000c0906, 0x000d0908, 0x000e0a0a, 0x000f0b0b, 0x00080b02, 0x000a0b03, 0x000a0a04, 0x000a0a05, 0x000c0c08, 0x00110e0b, 0x0014100e, 0x0015100f,
- 0x000e1106, 0x000f1109, 0x0013140e, 0x0015140e, 0x001b1713, 0x001a1411, 0x001b1410, 0x001b140f, 0x00181506, 0x00191707, 0x001d1709, 0x001f160b, 0x001f150d, 0x0020120f, 0x00220f11, 0x00200e11,
- 0x000c0d05, 0x000c0904, 0x00110809, 0x0013090a, 0x00120c0b, 0x00120d0a, 0x00150e0c, 0x00170f0d, 0x000d0f07, 0x000b1004, 0x000e0e0b, 0x00090f09, 0x00120f0b, 0x00110f0a, 0x00160f0d, 0x00170f0b,
- 0x00060800, 0x00060b03, 0x00110e11, 0x00050810, 0x00040812, 0x00010808, 0x00050404, 0x00050604, 0x00000602, 0x00000507, 0x00020615, 0x00020816, 0x00000414, 0x00000113, 0x00030013, 0x00030014,
- 0x00000300, 0x00010a01, 0x00161812, 0x001f1f16, 0x00322d26, 0x00363530, 0x0042413f, 0x004e4d50, 0x00535f5c, 0x005e6c6e, 0x00747c7f, 0x00878a7e, 0x00969c8d, 0x00a2a598, 0x00b7b7af, 0x00c7c9bb,
- 0x00d4dfc8, 0x00e2ebd4, 0x00f0f6e2, 0x00f3f8e6, 0x00f7fced, 0x00f5f9f4, 0x00f6f9ff, 0x00fafcff, 0x00f6fbf7, 0x00f6f9f6, 0x00f9f8fa, 0x00fcf9fc, 0x00ffffff, 0x00fffcff, 0x00fffbff, 0x00fffcff,
- 0x00f6faf6, 0x00f7faf9, 0x00fdf9fe, 0x00fffaff, 0x00fdfbff, 0x00fcf9fd, 0x00fff8ff, 0x00fff7ff, 0x00f8f9fb, 0x00faf8fb, 0x00fdfafc, 0x00fdfffb, 0x00fdfdf7, 0x00fefcf7, 0x00fffbf8, 0x00fffbf5,
- 0x00f6fde5, 0x00f7fbe5, 0x00fdfbe7, 0x00ffffea, 0x00fefee6, 0x00fafde1, 0x00fefae0, 0x00fff5e2, 0x00f0efce, 0x00e7e4c2, 0x00e1d9b6, 0x00ded5ad, 0x00e1d7af, 0x00e5d5aa, 0x00dac69c, 0x00c8b68e,
- 0x00af9b53, 0x00ac974f, 0x00b59a58, 0x00ba9f5d, 0x00b29551, 0x00b89d57, 0x00b1904e, 0x00aa8744, 0x009e8435, 0x009e8438, 0x00a78141, 0x00a2773c, 0x00ac8247, 0x00a87f44, 0x00a4763d, 0x009a6d33,
- 0x008f6c23, 0x009c792f, 0x00ae8441, 0x00b28744, 0x00b88c49, 0x00b58f50, 0x00b78f55, 0x00b68e55, 0x00b79351, 0x00bc9955, 0x00bf9756, 0x00c19757, 0x00bc9452, 0x00be9353, 0x00c49557, 0x00c89959,
- 0x00b19443, 0x00b3954a, 0x00b18f49, 0x00af8b46, 0x00a8803e, 0x00b28948, 0x00b78c4e, 0x00af8149, 0x00a67d3f, 0x00ab8144, 0x00a87f44, 0x00a58140, 0x00a17c3d, 0x00a98143, 0x00b1884d, 0x00b79054,
- 0x00aa8944, 0x00af8c48, 0x00af8b4b, 0x00af8b4c, 0x00b39051, 0x00b69457, 0x00bb965c, 0x00bc9359, 0x00b5964c, 0x00b59552, 0x00b8985f, 0x00bb9e6c, 0x00c9bda0, 0x00fdfaee, 0x00fffbfb, 0x00fffeff,
- 0x00f8ecd4, 0x00f6e6da, 0x00f8f5f2, 0x00f2fbfd, 0x00e5f2fe, 0x00effaff, 0x00eff8fa, 0x00f3fbf9, 0x00edf9f7, 0x00e7f9f8, 0x00e5f1f4, 0x00edeff7, 0x00f2f3fb, 0x00f2f4fc, 0x00e8ecf2, 0x00dfe4eb,
- 0x00dfe4ec, 0x00e2e7ee, 0x00d7dde8, 0x00dadfec, 0x00c7ccd7, 0x006f716e, 0x00171611, 0x00020908, 0x0024353b, 0x0059686a, 0x0092999e, 0x00a8aaa8, 0x00bbb6b7, 0x007e7c83, 0x002a2d3b, 0x003b4154,
- 0x005668c5, 0x006f85df, 0x007a94e9, 0x006d91df, 0x005e8ad5, 0x005b8bd8, 0x005184d5, 0x004a80db, 0x004779e4, 0x004275e7, 0x004a7cef, 0x004e81ef, 0x004b7de8, 0x004b7be5, 0x004b79e1, 0x004579dd,
- 0x004479dd, 0x003b71d7, 0x003c72da, 0x00427be1, 0x004581e8, 0x003983e2, 0x003785d9, 0x003e87d2, 0x004780ce, 0x00477ed7, 0x004578d9, 0x004074e2, 0x004676e6, 0x005275ea, 0x005974e8, 0x006073ec,
- 0x004a76d8, 0x004f78dc, 0x004f7adf, 0x004f7be1, 0x00527ae2, 0x00537ce4, 0x004f7be2, 0x00527be5, 0x004d7be4, 0x00507ee8, 0x005481e3, 0x005081d1, 0x004676cb, 0x004372c7, 0x003d6ec5, 0x004675d1,
- 0x003b6ccb, 0x003e6ecd, 0x00517fde, 0x004877d1, 0x003d6cc4, 0x004876cf, 0x004b75cf, 0x004a74d1, 0x00426bc8, 0x003e68c5, 0x003964c1, 0x003966c3, 0x004775d3, 0x005382e0, 0x005080df, 0x004575d4,
- 0x003c66c0, 0x003b65c3, 0x003d64c5, 0x003a61c2, 0x004770cf, 0x00537cdb, 0x004066c4, 0x002c52ae, 0x00335eb3, 0x00416cbf, 0x003d69ba, 0x003f6fbb, 0x004575c9, 0x004d79d2, 0x00466ec8, 0x00375cb9,
- 0x00244899, 0x001f3d85, 0x00223a79, 0x0023376d, 0x0064729f, 0x00aaafc3, 0x00cccbd0, 0x00ddd9dd, 0x00e7e1db, 0x00c9c3b8, 0x00645e52, 0x00666155, 0x00d9d3cb, 0x00fefaf7, 0x00fafbfc, 0x00fbfdfe,
- 0x00fafcf9, 0x00e6e5e5, 0x008f8c8e, 0x005d5c60, 0x0078777f, 0x009c9da5, 0x00ced0d5, 0x00f1f1f7, 0x00c5cbd3, 0x008a8b95, 0x00666772, 0x00898e9a, 0x00d9dcdb, 0x00f2f4f5, 0x00acb1bf, 0x00515a7b,
- 0x002a3674, 0x002e3872, 0x003e4261, 0x00635b5a, 0x00756632, 0x00624911, 0x00604409, 0x0064470a, 0x00735315, 0x0079581d, 0x007d5a21, 0x007b5720, 0x007a5824, 0x00765521, 0x0071531d, 0x006d501b,
- 0x00704e18, 0x0072511b, 0x0076551f, 0x00795822, 0x00795722, 0x007b5924, 0x007a5823, 0x00785721, 0x0075551f, 0x00765621, 0x0079541e, 0x00805921, 0x00846235, 0x00866c44, 0x005e4c2c, 0x00281e0c,
- 0x00130e01, 0x00171108, 0x00170f09, 0x00150d08, 0x00504542, 0x00968b84, 0x00a29891, 0x00696260, 0x002f2924, 0x0038281a, 0x00674e36, 0x0090724c, 0x0095713e, 0x007f5f2a, 0x007d6230, 0x00ac9866,
- 0x00e3cc9e, 0x00e9d3a3, 0x00d9bf8e, 0x00c9af7d, 0x009e8552, 0x00896f3c, 0x00745726, 0x006f5221, 0x00755723, 0x00755624, 0x00735421, 0x0073551d, 0x00765620, 0x007b5c27, 0x007d5d2a, 0x00836232,
- 0x00846738, 0x00826538, 0x00a88b60, 0x00caae84, 0x00ab8f67, 0x00846536, 0x00795826, 0x00755525, 0x00775523, 0x00795726, 0x007b5728, 0x007e5b2b, 0x00805f2d, 0x007e5d2b, 0x00805d2b, 0x0082602e,
- 0x00805a1b, 0x00845d25, 0x00875f2e, 0x00896132, 0x0089612f, 0x00886225, 0x00866321, 0x007e5e1d, 0x006d4d1b, 0x006e4e25, 0x006c573f, 0x0053545a, 0x003d3c57, 0x0032335c, 0x00343661, 0x004a4f72,
- 0x009098a1, 0x00bcc6c6, 0x00c6ced1, 0x00b7bbc9, 0x009591b6, 0x007a7d9b, 0x006a718b, 0x00696f8a, 0x0073778d, 0x007f8199, 0x009596a8, 0x00cac9d9, 0x00fcfbfe, 0x00fdfdfd, 0x00fcfdfb, 0x00fcfaf8,
- 0x00f8fbfb, 0x00b4b8ba, 0x00242628, 0x0017181a, 0x00393d39, 0x00494d48, 0x0044453f, 0x00282a22, 0x0014170c, 0x0024251d, 0x006d625b, 0x0076604f, 0x003a2611, 0x006d573e, 0x00d2b494, 0x00e6c294,
- 0x00deaa71, 0x00daa671, 0x00e9b88b, 0x00dab08e, 0x00775d4a, 0x003a2717, 0x00251b0b, 0x00191104, 0x00151317, 0x00090c12, 0x000b131a, 0x0009121b, 0x000a1015, 0x000b100e, 0x00040604, 0x00010201,
- 0x000b0300, 0x00080403, 0x000a070b, 0x000b0b1c, 0x000a0e25, 0x00131923, 0x0014181d, 0x0022251b, 0x0070724c, 0x00c2c28e, 0x00c2bf8c, 0x00797251, 0x001a1100, 0x00251b0b, 0x00615038, 0x00917754,
- 0x00a17e44, 0x00a17e49, 0x006e4f21, 0x0039200a, 0x001f1214, 0x001b3038, 0x0052879c, 0x006fc3e8, 0x0060d5fb, 0x006ac8dd, 0x006fada3, 0x00a4b27f, 0x00e7c26d, 0x00d8b367, 0x00b39858, 0x009c8f62,
- 0x00a48c5e, 0x00a77752, 0x00b47550, 0x00c7865b, 0x00cd9f62, 0x00c79f60, 0x00b48c57, 0x00a37752, 0x007d7a74, 0x007a9ea0, 0x0081c2d6, 0x0067bbe8, 0x007f9695, 0x005e5e48, 0x00221a00, 0x00121100,
- 0x002d3928, 0x00696851, 0x00a59f7d, 0x00beb58f, 0x00b0b699, 0x00b6b29f, 0x00b1b1a6, 0x00a4aba6, 0x0096a6ab, 0x0099a6ac, 0x00c9d2d6, 0x00f7faf8, 0x00fefff9, 0x00fdfaf8, 0x00fffefb, 0x00fefffd,
- 0x00c3bcb5, 0x00706259, 0x00685046, 0x00745246, 0x008a5d4e, 0x008a5a47, 0x00865443, 0x00835243, 0x00754c3b, 0x006b4334, 0x00603c31, 0x0057322c, 0x00502422, 0x0049191a, 0x00410f11, 0x0041080d,
- 0x003c0605, 0x00400706, 0x00410703, 0x00440d06, 0x00481003, 0x00451204, 0x00400e07, 0x00431112, 0x003a101d, 0x003e1525, 0x0050313e, 0x00867075, 0x00a49f9b, 0x009b9c9f, 0x009598a0, 0x00798490,
- 0x004f2927, 0x00791c0f, 0x00cb503d, 0x00dd5046, 0x00965560, 0x006f4b53, 0x005c4b3f, 0x00543d18, 0x003c2413, 0x00271e3b, 0x00141758, 0x00101770, 0x000a106b, 0x00091069, 0x00161e6c, 0x00232c6a,
- 0x001a2643, 0x00131d28, 0x00131a1a, 0x000f1210, 0x000b0b0c, 0x001d1e1d, 0x00232422, 0x000c0c0e, 0x00000118, 0x00020a33, 0x0002184c, 0x00011b5c, 0x00002063, 0x00041f5b, 0x001e3467, 0x00505e88,
- 0x0046543f, 0x00494e44, 0x00959691, 0x00a39f96, 0x00ab9f7d, 0x00aea166, 0x00aea051, 0x00afa042, 0x00aa9b4b, 0x00a89452, 0x009e8c50, 0x008e7f46, 0x006d6336, 0x004c4727, 0x0020230d, 0x00090c04,
- 0x0000070a, 0x0003040d, 0x0000010a, 0x0005050e, 0x002b262f, 0x004f515b, 0x006c727a, 0x00787c88, 0x00767b82, 0x00787b80, 0x00b4b5ba, 0x00f2f5f6, 0x00fefcfd, 0x00fdfcfd, 0x00fefdfc, 0x00fffefd,
- 0x00a7a0a9, 0x002f2633, 0x001b111e, 0x00160c18, 0x00120a18, 0x00130d21, 0x00181632, 0x001e1d43, 0x001e2251, 0x001b2059, 0x00101b4c, 0x00112140, 0x0018223f, 0x001d142b, 0x003f252a, 0x00652f25,
- 0x00974725, 0x009f5636, 0x00c8937c, 0x00f1dfd7, 0x00f0fdfb, 0x00f5fefe, 0x00f9fffd, 0x00fcfffe, 0x00c2c5c1, 0x004d4e4c, 0x000e0d09, 0x00120e08, 0x0018120b, 0x00181108, 0x001d140a, 0x00191107,
- 0x000e0c04, 0x000e0c06, 0x000b0a05, 0x00080904, 0x00050802, 0x00050701, 0x00070702, 0x00090603, 0x000f0704, 0x00140908, 0x0019090b, 0x001c0c0d, 0x0023130f, 0x00271b0f, 0x00342814, 0x003f3318,
- 0x004b3c1b, 0x00584624, 0x00674e2c, 0x006c502c, 0x0072532f, 0x00715431, 0x006d5031, 0x00694d31, 0x00604830, 0x005c4430, 0x00573d31, 0x004d3934, 0x0044455a, 0x003c5380, 0x00214b8f, 0x000d489c,
- 0x00344c89, 0x003d5c9a, 0x003a5ea0, 0x003862a8, 0x003160ae, 0x002d60ac, 0x002b5cab, 0x002959a7, 0x002e59a0, 0x00426ab0, 0x006b84c0, 0x008c8fb6, 0x009293b5, 0x008786a8, 0x00817996, 0x0084778f,
- 0x00988b90, 0x008b7677, 0x0061463e, 0x00614836, 0x00624227, 0x00553e29, 0x0043331e, 0x00352511, 0x00241b0c, 0x001d190b, 0x001a1710, 0x00181713, 0x001b1e17, 0x001d2019, 0x00292924, 0x003f3d38,
- 0x0059595b, 0x006e6d70, 0x00848487, 0x00919294, 0x009e9fa0, 0x00a5a6a6, 0x00a1a2a3, 0x009c9c9d, 0x008c8f8a, 0x00818583, 0x007c7978, 0x00766e68, 0x00685d56, 0x0062534a, 0x005c4a3e, 0x005b4737,
- 0x004e3b29, 0x004c3825, 0x00422f1f, 0x00362617, 0x00261909, 0x001d1508, 0x001a1309, 0x001e140b, 0x0024190e, 0x002c2013, 0x003a2a1a, 0x004b3624, 0x00533e29, 0x0059412b, 0x00634832, 0x00644832,
- 0x005c442e, 0x004d3827, 0x00342116, 0x0020120a, 0x000f0704, 0x00050100, 0x00010000, 0x00000002, 0x00010002, 0x00000001, 0x00000101, 0x00010101, 0x00000201, 0x00010202, 0x00020102, 0x00010103,
- 0x00000200, 0x00000100, 0x00010001, 0x00020102, 0x00020302, 0x00020602, 0x007b7f7c, 0x00edefee, 0x00fbfffb, 0x00fdfef9, 0x00fdfffd, 0x00fdfcfa, 0x00aba8a6, 0x002b2826, 0x000b0706, 0x000e0908,
- 0x000f0d07, 0x00100e08, 0x000e0c06, 0x000d0b05, 0x000e0c07, 0x000d0b07, 0x000c0906, 0x000c0a08, 0x000c0a07, 0x000c0a07, 0x000c0a07, 0x000b0b06, 0x000c0c07, 0x000f0d09, 0x00100e0a, 0x00100f0b,
- 0x00100f0a, 0x00100f0b, 0x0012100c, 0x0013120b, 0x0016130d, 0x0015110d, 0x0015110e, 0x0015110d, 0x00161107, 0x00161307, 0x00191307, 0x001a1307, 0x00191209, 0x0019100b, 0x00190d0d, 0x00160b0c,
- 0x00100e0c, 0x000f0a0a, 0x000e090a, 0x000e0b09, 0x00100e0a, 0x00100f09, 0x0011100b, 0x0015110d, 0x00111109, 0x0010100a, 0x000f0f0b, 0x000b100e, 0x0010100d, 0x00110f0a, 0x00120f09, 0x00140e0a,
- 0x000d0f0c, 0x0004070d, 0x00010811, 0x00020b1a, 0x0000091d, 0x00050f1a, 0x000e2128, 0x001d3540, 0x00254156, 0x0025445e, 0x00264561, 0x00274367, 0x00243a5e, 0x00283961, 0x001d2650, 0x000f133d,
- 0x0000080a, 0x00000203, 0x00000401, 0x00030400, 0x00010301, 0x00010202, 0x00000500, 0x00010601, 0x00010601, 0x00040b08, 0x000a0b0e, 0x00140a11, 0x00191116, 0x001c1819, 0x002a2628, 0x00383236,
- 0x003f3c3f, 0x00494648, 0x00555255, 0x00605d62, 0x00727073, 0x00848183, 0x00979494, 0x00a5a2a1, 0x00b4b1b0, 0x00c0baba, 0x00cec6c7, 0x00d8d0d1, 0x00e6dfe0, 0x00ede9eb, 0x00f1eff1, 0x00f2f0f3,
- 0x00eff4e9, 0x00f4f9ef, 0x00f5f9f1, 0x00fbfef5, 0x00fbfff4, 0x00fbfdf3, 0x00fdfdf3, 0x00fdfdf4, 0x00fafdf2, 0x00fdfdf5, 0x00fbfdf8, 0x00f6fffd, 0x00f6fefc, 0x00f7fffe, 0x00f6fdfb, 0x00f8fefe,
- 0x00fbfefe, 0x00f7fbfb, 0x00f7fafa, 0x00fcfcf9, 0x00fdfdf9, 0x00fdfcf9, 0x00fafcf6, 0x00fafdf5, 0x00fcfdf4, 0x00fefff4, 0x00fdfcf1, 0x00fefef2, 0x00fcfdef, 0x00fefeef, 0x00fcfceb, 0x00f8fae9,
- 0x00f8f3e6, 0x00fbf4e5, 0x00f9f0e0, 0x00fcefdf, 0x00f6e8d6, 0x00e7d8c5, 0x00c9b8a5, 0x00beab95, 0x00bea994, 0x00c0ab96, 0x00c4a68b, 0x00c19e78, 0x00b59469, 0x00ab8b62, 0x009f7c53, 0x009b794b,
- 0x009e7b4a, 0x00a2804f, 0x00a98651, 0x00a98852, 0x00af8e55, 0x00b79753, 0x00b29346, 0x00b49748, 0x00af903e, 0x00a98b36, 0x00ae8e38, 0x00a3822a, 0x00a4862a, 0x00ab8a30, 0x00bc9940, 0x00c6a249,
- 0x00c5a867, 0x00c2a265, 0x00b69659, 0x00b79759, 0x00b39155, 0x00bd975a, 0x00c9a264, 0x00be975c, 0x00ad7f46, 0x00aa7d45, 0x00ac8147, 0x00aa8444, 0x00a88441, 0x00a98544, 0x00a98444, 0x00af8b49,
- 0x00ac8743, 0x00ac8847, 0x00ae8b4a, 0x00b18e4b, 0x00b38e4e, 0x00b08c50, 0x00b08d51, 0x00b69252, 0x00bb9856, 0x00bd995a, 0x00b99b60, 0x00c1a576, 0x00ddd3b7, 0x00fefdf2, 0x00fbf8f5, 0x00fdfdfe,
- 0x00fef9e7, 0x00f9faf0, 0x00f3f5f7, 0x00eefbfd, 0x00e7f1fb, 0x00f3f6fb, 0x00f8f7fc, 0x00faf6f3, 0x00f2f7f7, 0x00e7f6f9, 0x00e4f2f9, 0x00eff0f4, 0x00f4f5fd, 0x00f3f1f8, 0x00e8e8f1, 0x00dddfe6,
- 0x00dbdee9, 0x00e4eaf2, 0x00d8dfe7, 0x00d7dde6, 0x00dfe5f3, 0x00afb3ba, 0x00383a3e, 0x0003080c, 0x000a1114, 0x00303836, 0x00818384, 0x00a2a2a1, 0x00cdcbd3, 0x00939aae, 0x004c5979, 0x00596f99,
- 0x006e8ff8, 0x007092f5, 0x00698de9, 0x005b84d9, 0x005587d2, 0x005186d6, 0x004c7fd5, 0x004a7cd9, 0x004a77e0, 0x004776e4, 0x00507bea, 0x00547bda, 0x005176d5, 0x004f75cf, 0x004e72ce, 0x004f72c9,
- 0x004e72cf, 0x004a71cd, 0x004770cf, 0x004673d3, 0x004777da, 0x004386dc, 0x003f87d7, 0x004281d1, 0x00497ac8, 0x004877c7, 0x004872c8, 0x004774cf, 0x004872cf, 0x005070cd, 0x005b73d1, 0x006a79d6,
- 0x006987cf, 0x006c8ad1, 0x00728ed8, 0x007590de, 0x00728fdf, 0x006c89d9, 0x006984d5, 0x006783d4, 0x00647ed1, 0x005b79c8, 0x005274c5, 0x004978cb, 0x004572c5, 0x004974cd, 0x004773cd, 0x004875d0,
- 0x00436ece, 0x00446fcd, 0x004e78d7, 0x004671cc, 0x004571cb, 0x004e77d0, 0x004c72cd, 0x00486eca, 0x004069c5, 0x003a64c1, 0x003965c2, 0x003d6bc8, 0x004c7ad8, 0x005584e2, 0x004d7cdb, 0x003f6fce,
- 0x00416ac3, 0x003e67c2, 0x003b63c1, 0x00446bca, 0x005079d8, 0x00567ddc, 0x00355cb9, 0x00254ca7, 0x003b62b8, 0x00436cbe, 0x004068bb, 0x00416bbc, 0x004b75cb, 0x00527ad3, 0x004469c3, 0x002f51ab,
- 0x00243e92, 0x00253c81, 0x0021336c, 0x00404d7b, 0x009aa3c3, 0x00cecfde, 0x00d4cfd7, 0x00d5d1d6, 0x00e6e0dc, 0x00d9d4cd, 0x008c867f, 0x007c7670, 0x00e6e3de, 0x00fdfdfb, 0x00fbfdfd, 0x00f9fefd,
- 0x00fffdff, 0x00e0dee3, 0x00858489, 0x00525258, 0x004b4b54, 0x0054555f, 0x007b7f89, 0x00b1b4c0, 0x00c6c7da, 0x00b0b2c6, 0x00a5a7bd, 0x00afb1c9, 0x00cbcbd2, 0x00b7b9bc, 0x006c727c, 0x00323c57,
- 0x00303879, 0x00313972, 0x00444363, 0x00655c5a, 0x00725e26, 0x005f4310, 0x00603f09, 0x00654610, 0x00754e1a, 0x007b5320, 0x007b5521, 0x007e5623, 0x007a5624, 0x007a5624, 0x0073551e, 0x0073551d,
- 0x00704c17, 0x00714f19, 0x0075531d, 0x0076551f, 0x0075531d, 0x0075531e, 0x0075541f, 0x00775721, 0x007b5722, 0x007d5a25, 0x00805d26, 0x00875d2a, 0x00816333, 0x0078603f, 0x004e4022, 0x0021190a,
- 0x0018120b, 0x0018130e, 0x0017110f, 0x000f0a08, 0x0049413e, 0x00a09996, 0x00e3dcdc, 0x00beb9b9, 0x007b7878, 0x006d6157, 0x008d7765, 0x009b7b5a, 0x008b6034, 0x00876130, 0x00866737, 0x008d7544,
- 0x009f8354, 0x00a88c5c, 0x009e8050, 0x00a78958, 0x00aa8c5b, 0x00907140, 0x00765625, 0x00765625, 0x007c5b27, 0x00785724, 0x007f5e29, 0x007c5b22, 0x007a5720, 0x007f5c26, 0x007c5d27, 0x0081632f,
- 0x00856434, 0x009d7f50, 0x00c4a67a, 0x00c4a67a, 0x0096774e, 0x00846334, 0x00815e2b, 0x007a5a27, 0x007a5825, 0x007d5b27, 0x00815e2a, 0x00815e2a, 0x007f5e2b, 0x007e5d2a, 0x00805e2a, 0x0085632e,
- 0x00865f25, 0x0087602a, 0x00865f2d, 0x00856032, 0x00825e2a, 0x00845f26, 0x00825f1f, 0x007a5919, 0x006e4a17, 0x006b481c, 0x006e5737, 0x00565747, 0x00424053, 0x0035345c, 0x00303160, 0x0032345d,
- 0x003f4658, 0x005b6467, 0x00848a8b, 0x00a7a8b3, 0x00b3adcb, 0x00abacc0, 0x00a7adba, 0x00a6acba, 0x00aaacbf, 0x00aaacbd, 0x00b0afc0, 0x00d2cee0, 0x00fcf9ff, 0x00fbf9f9, 0x00fdfafc, 0x00fefcfb,
- 0x00fafcff, 0x00b2b4b8, 0x00292a2e, 0x001f2023, 0x003a3c3a, 0x003c3c3b, 0x00322f2c, 0x0026231c, 0x001f1c14, 0x00333329, 0x00837b71, 0x00715c4b, 0x00341f0e, 0x00664f36, 0x00c4a585, 0x00cea77e,
- 0x00c58f5b, 0x00bd8755, 0x00d7a776, 0x00c79d7a, 0x006c513b, 0x00412a18, 0x00352410, 0x00211406, 0x00191512, 0x000c0c0e, 0x0013181e, 0x000b111a, 0x000d1216, 0x0010120f, 0x000c0b05, 0x000b0700,
- 0x001b1000, 0x0028250f, 0x0029261c, 0x0018181a, 0x00111324, 0x00121423, 0x0016171c, 0x00292a21, 0x00817d5c, 0x00c3bd8f, 0x00a49f74, 0x00595634, 0x00141005, 0x00150e05, 0x0038281b, 0x006a5236,
- 0x00987644, 0x009c7f4b, 0x00664c21, 0x002c1708, 0x00180e1c, 0x00122221, 0x00315a5e, 0x005aa0b8, 0x005bc6f2, 0x0057b8d8, 0x0062abb2, 0x00769981, 0x00b4a56c, 0x00ccb67b, 0x00b59f6a, 0x00a19061,
- 0x00a0865d, 0x00a2714d, 0x00ad704c, 0x00c18257, 0x00c59e63, 0x00c49f65, 0x008d6b3a, 0x005f3b1e, 0x0052565a, 0x006a9aa5, 0x0089cbe0, 0x007fc3e6, 0x008f9b8f, 0x006d6348, 0x00322104, 0x00160e05,
- 0x0025292b, 0x004e4940, 0x008a8570, 0x00a9a281, 0x00a1af8e, 0x00adad9a, 0x00b1b3a9, 0x00adb5b1, 0x00a5b8bc, 0x00a5b1b8, 0x00ccd5da, 0x00f7f7f7, 0x00fcfdf9, 0x00fdf9fa, 0x00fdfdfc, 0x00fffffb,
- 0x00cbc1bb, 0x006d5f56, 0x00645044, 0x006d5041, 0x00845a49, 0x00845643, 0x00805240, 0x00794f3f, 0x006a4737, 0x005d402f, 0x0054362d, 0x00502c2b, 0x00491e20, 0x00441719, 0x00400e13, 0x00410b11,
- 0x0040070b, 0x00410807, 0x00430e05, 0x00481105, 0x00491804, 0x004d150d, 0x00441112, 0x0043171c, 0x004b283a, 0x00503a48, 0x006d636f, 0x009a979a, 0x008e9595, 0x0080898b, 0x00929aa3, 0x007a818f,
- 0x0051262c, 0x00892716, 0x00db593c, 0x00da4f36, 0x00975a77, 0x00624c6d, 0x0054495a, 0x005e463a, 0x00654239, 0x004b3d4d, 0x002c2a52, 0x00191d5c, 0x00101262, 0x000d1168, 0x0012176d, 0x00121a66,
- 0x0027305b, 0x002f3b52, 0x002e3845, 0x00181b22, 0x00120f1a, 0x00313032, 0x0038373a, 0x000e0d14, 0x0001011b, 0x0004103b, 0x00162f66, 0x0005286d, 0x00082c71, 0x000c2564, 0x00324476, 0x00606892,
- 0x003a514b, 0x00414c54, 0x009298a1, 0x009a9ca6, 0x00a49e84, 0x00aba46d, 0x00b0a454, 0x00b2a341, 0x00b6a34f, 0x00b29c58, 0x00aa935a, 0x009b8c4d, 0x00807442, 0x005b562e, 0x002a2a12, 0x000c0e03,
- 0x0003070f, 0x0000020b, 0x0000030c, 0x0007020f, 0x002d2832, 0x004e4f5b, 0x006c737d, 0x007c818a, 0x007e8189, 0x007d8086, 0x00b8babe, 0x00f1f4f6, 0x00fffeff, 0x00fdfdff, 0x00fefefd, 0x00fefefd,
- 0x00afa2ab, 0x003c2e37, 0x002d1e24, 0x00221416, 0x00201416, 0x001a1118, 0x001b1425, 0x001c1630, 0x0019173d, 0x0011123d, 0x000c0f3a, 0x00101237, 0x000a1540, 0x0008103c, 0x001b1b3f, 0x00322034,
- 0x00774742, 0x00895648, 0x00c09589, 0x00f2e0d8, 0x00f7fefe, 0x00f9fefd, 0x00fbfdfc, 0x00fefefd, 0x00c8c5c1, 0x0055534e, 0x0018140e, 0x001e180f, 0x00261c13, 0x00251a10, 0x00271b0f, 0x0021160b,
- 0x0017100d, 0x00120e0b, 0x000d0c08, 0x000a0b06, 0x000a0a05, 0x00090803, 0x000b0805, 0x000c0706, 0x00120907, 0x00140a07, 0x0018090b, 0x00170a0d, 0x001c110e, 0x001e160c, 0x00292111, 0x00312b13,
- 0x0043361c, 0x004f4122, 0x00604c2c, 0x006a5132, 0x00745337, 0x00745437, 0x00725438, 0x0070553b, 0x006a5239, 0x00674e3a, 0x0061473a, 0x0056413e, 0x004c4c67, 0x00384f84, 0x001a4693, 0x000746a6,
- 0x00304c94, 0x00375ba0, 0x003b62a7, 0x003760a9, 0x002a57a4, 0x00204c99, 0x00254b97, 0x00284c91, 0x00324e8c, 0x00465a97, 0x00626e9d, 0x00737080, 0x00595467, 0x00453a4b, 0x00342836, 0x00342532,
- 0x004d3a3f, 0x00675250, 0x00755e55, 0x00796455, 0x0079614a, 0x006f5b47, 0x005c4c38, 0x00473928, 0x002d251c, 0x001d1b12, 0x00151611, 0x00181917, 0x001d211d, 0x001d221e, 0x002a2d2a, 0x0042423f,
- 0x005e5c63, 0x006f6e75, 0x0086858b, 0x008e8d92, 0x009e9ea1, 0x00a1a0a3, 0x00a09ea1, 0x0097979a, 0x008f9390, 0x008d908c, 0x00908d8a, 0x00908782, 0x0091847f, 0x008e7e75, 0x00847266, 0x00786659,
- 0x00665140, 0x00574231, 0x004a3626, 0x003d2d1c, 0x002d200e, 0x0021160a, 0x001e140b, 0x0021150a, 0x002f1f12, 0x003b2919, 0x004d3624, 0x005b422d, 0x00684c35, 0x006e5137, 0x00795a3f, 0x0079593d,
- 0x00755840, 0x00684d3b, 0x00513a2a, 0x0038281c, 0x00181006, 0x00090602, 0x00020200, 0x00000202, 0x00010002, 0x00000001, 0x00000101, 0x00000201, 0x00010201, 0x00010101, 0x00010001, 0x00000101,
- 0x00000001, 0x00010201, 0x00010100, 0x00040303, 0x00030202, 0x00030503, 0x007b7e7a, 0x00edf0eb, 0x00fcfffd, 0x00fdfefa, 0x00fbfffc, 0x00fdfefb, 0x00aaaaa7, 0x002c2a27, 0x000a0805, 0x000e0a0a,
- 0x00120e09, 0x00110d08, 0x00100c07, 0x000f0a06, 0x000e0905, 0x000d0805, 0x000f0906, 0x000f0a06, 0x000e0906, 0x000e0906, 0x000f0b08, 0x000f0d09, 0x000f0d0a, 0x000f0d09, 0x000f0d09, 0x000f0d08,
- 0x00100e0a, 0x000f0d09, 0x00100e0b, 0x00110f0a, 0x0012100b, 0x00120f0c, 0x0013100d, 0x0013100d, 0x0015130b, 0x00141308, 0x00141106, 0x00140f05, 0x00150e08, 0x00170e0c, 0x00180d0c, 0x00160c0b,
- 0x00100f14, 0x000d0c10, 0x000d0c0f, 0x000d0c0c, 0x00120f0e, 0x0014100e, 0x0013110d, 0x0015130f, 0x0015120e, 0x0012130c, 0x0011120c, 0x00101111, 0x000f100c, 0x00130f0a, 0x00140e0a, 0x00130e09,
- 0x000d0f15, 0x00010b15, 0x00020e1e, 0x0003192f, 0x001f3e5c, 0x00355876, 0x00456686, 0x004e7194, 0x005078a6, 0x004570a0, 0x003d6798, 0x003d6495, 0x00405d8e, 0x00445b87, 0x0044547d, 0x0039466a,
- 0x00152133, 0x00030b17, 0x00020209, 0x00000602, 0x00020400, 0x00030500, 0x00010200, 0x00020301, 0x00010203, 0x00000202, 0x00040105, 0x000b000b, 0x000b0008, 0x00070006, 0x00050106, 0x00050008,
- 0x0004000a, 0x00030007, 0x0005020b, 0x00080510, 0x00110d17, 0x00171619, 0x00242423, 0x002e2f2e, 0x00393737, 0x00434040, 0x00534e4d, 0x00605959, 0x00706869, 0x007c7475, 0x008c8383, 0x00978e8d,
- 0x009fa496, 0x00adb5a4, 0x00bec6b5, 0x00d3dac9, 0x00e8eddf, 0x00eff1e4, 0x00f4f4e7, 0x00f4f6e9, 0x00f9f7ed, 0x00faf9ef, 0x00f9faf5, 0x00f5fdfe, 0x00faffff, 0x00f8fffe, 0x00fafdfd, 0x00fafdfe,
- 0x00fdfdfe, 0x00fbfdfe, 0x00fbfdff, 0x00fbfcff, 0x00fcfbfc, 0x00fdfdfb, 0x00fafdfb, 0x00f8fefc, 0x00fbfcfd, 0x00fbfdfa, 0x00fefef8, 0x00fffdfb, 0x00fffef7, 0x00fefcf9, 0x00fffef9, 0x00fcfdf9,
- 0x00fdfbfa, 0x00fffbfa, 0x00fdfafa, 0x00fef6f7, 0x00fffbf8, 0x00fffaf6, 0x00fdfaf5, 0x00fef8f2, 0x00fff9f3, 0x00fdf9f1, 0x00fef3e6, 0x00fdebd8, 0x00f0e0cb, 0x00e4d6bf, 0x00ded0b5, 0x00ddceaf,
- 0x00dbc6a5, 0x00d5c19f, 0x00c8b28e, 0x00bea782, 0x00b7a37a, 0x00b29d69, 0x00a58e56, 0x00ac945e, 0x00aa9457, 0x009c8646, 0x009f8546, 0x00977c3c, 0x009d833f, 0x00a58a45, 0x00ac8f4b, 0x00b0954f,
- 0x00a68c55, 0x00a68953, 0x00ab8c55, 0x00b2945c, 0x00b5945d, 0x00b8945c, 0x00caa46a, 0x00c9a568, 0x00b3884e, 0x00ae854a, 0x00bd9757, 0x00b89353, 0x00b28e4b, 0x00aa8544, 0x00ab8642, 0x00b18b47,
- 0x00aa8445, 0x00ac8746, 0x00b48f4f, 0x00b69150, 0x00b38f4d, 0x00ab884a, 0x00aa884c, 0x00b18f4b, 0x00b18c49, 0x00b59253, 0x00c3a46a, 0x00bfa579, 0x00efe2c8, 0x00fefbf5, 0x00fdf8f8, 0x00fcfdff,
- 0x00fdfbf1, 0x00f3f7f9, 0x00ecf6f7, 0x00ecfbff, 0x00ecf4fc, 0x00f5f4fa, 0x00fcf3f2, 0x00fdf2eb, 0x00f3f3f4, 0x00e8f3fb, 0x00e5f0f8, 0x00eff1f5, 0x00f6f6fb, 0x00f4f4fa, 0x00e4e7eb, 0x00d8dde3,
- 0x00dfe4eb, 0x00e1e4f2, 0x00c8ceda, 0x00b4bac8, 0x00a6acba, 0x009fa5b0, 0x004f565d, 0x00151d22, 0x00000307, 0x000c0c0b, 0x00474742, 0x0097928c, 0x00d8dbe5, 0x00b7c6e3, 0x007992be, 0x006a90c7,
- 0x00648eee, 0x00618ce9, 0x005a89e1, 0x005387e0, 0x004c82da, 0x004e82dd, 0x004778d4, 0x004474d1, 0x004371d4, 0x004771d7, 0x005378d3, 0x005c7bc3, 0x00536fb5, 0x004f69ac, 0x005771b0, 0x00677fc0,
- 0x00728ace, 0x007690d7, 0x00708dd7, 0x006587d0, 0x005b80d3, 0x004980d1, 0x00427dd2, 0x004a7cd5, 0x005f82d8, 0x006c8fdb, 0x00799ce1, 0x0083abec, 0x0091b9f3, 0x009ebef5, 0x00a7bff5, 0x00b1c4f2,
- 0x00c7daf9, 0x00cddefa, 0x00cedffa, 0x00cedffc, 0x00cbdbfb, 0x00c9d9fb, 0x00c2d4fa, 0x00bfd0fb, 0x00b9c8f4, 0x00a6b3e3, 0x00849dd9, 0x00537fcd, 0x00436bbf, 0x004871c7, 0x004a73cd, 0x00446ecb,
- 0x00436dca, 0x00456ecb, 0x004870cc, 0x00416cc7, 0x004873cb, 0x004d74cf, 0x00466dc2, 0x003e66ba, 0x003a61bc, 0x003a65bf, 0x003f6dc8, 0x004978d5, 0x004e7edc, 0x005080df, 0x004677d6, 0x003e70ce,
- 0x004068c0, 0x003e65c0, 0x004368c8, 0x005379da, 0x00597ee0, 0x00476dce, 0x002a51ae, 0x00264da8, 0x003b63ba, 0x00436ac0, 0x004168b9, 0x004268be, 0x004e75ca, 0x005076d0, 0x003c5fb7, 0x0025449c,
- 0x001f3885, 0x001f3373, 0x00293968, 0x006f799f, 0x00c7d0e3, 0x00d8d7e4, 0x00cdc9cf, 0x00d2cfd3, 0x00dcd9d9, 0x00ddd9d7, 0x00b3afac, 0x00a39e9b, 0x00f0efed, 0x00fafcfb, 0x00fafcfd, 0x00f9feff,
- 0x00fefdfe, 0x00d8d9de, 0x0074747d, 0x0044444e, 0x00282935, 0x00333542, 0x003f4352, 0x005c6375, 0x0082869d, 0x008f97af, 0x009ba0ba, 0x00a1a1be, 0x009d9da5, 0x008b8f92, 0x006b707a, 0x00444e67,
- 0x002a3571, 0x00333771, 0x00403c62, 0x00605454, 0x00775f2a, 0x00634610, 0x005e3e0b, 0x0064420f, 0x00724b1c, 0x007a5123, 0x00795022, 0x00764d1d, 0x00724f1c, 0x00705019, 0x006e5117, 0x006c4f16,
- 0x006a4711, 0x006d4b15, 0x006d4b15, 0x006b4913, 0x006b4913, 0x006c4b15, 0x006e4e18, 0x006f5019, 0x0076551e, 0x00795823, 0x007e5c26, 0x00845b23, 0x007d5e31, 0x00674e2a, 0x00392a0f, 0x00150d03,
- 0x00120f09, 0x000d0b0c, 0x000a0909, 0x00060504, 0x00292024, 0x008d8686, 0x00eceae8, 0x00e2e4e8, 0x00bab8bb, 0x00817671, 0x00826d5c, 0x008d6d51, 0x008e6437, 0x00906837, 0x008d6d38, 0x00886e39,
- 0x00856a36, 0x008a703c, 0x00997f4c, 0x00a68b59, 0x008e713f, 0x00795927, 0x00745320, 0x00785521, 0x0078541e, 0x0076541e, 0x007b571f, 0x007d581f, 0x007e5a22, 0x00825f28, 0x00805d28, 0x0083632f,
- 0x00a07f4d, 0x00be9e70, 0x00bf9f72, 0x009d7e54, 0x00836338, 0x00805e2e, 0x0084612a, 0x007f5e27, 0x007e5d26, 0x00805e28, 0x00805f28, 0x007c5a24, 0x00795722, 0x00785721, 0x007a5823, 0x00805d27,
- 0x00845e27, 0x0086602b, 0x00866030, 0x00876338, 0x00896731, 0x008a692f, 0x00896829, 0x0082621f, 0x00704a15, 0x006b4419, 0x0069502b, 0x005f6341, 0x0047464e, 0x0035355b, 0x00333567, 0x00383c6f,
- 0x0063687f, 0x00838a8f, 0x00878b89, 0x00919294, 0x00a39fb2, 0x00abaeb6, 0x00afb6ba, 0x00aab0b4, 0x00a2a5af, 0x009a9daa, 0x0093939e, 0x00bbb7c4, 0x00faf7ff, 0x00fffdfe, 0x00fdf9fc, 0x00fdfafc,
- 0x00f9fcff, 0x00b0b3b7, 0x00282d30, 0x001c2122, 0x00222323, 0x00131111, 0x000d0c07, 0x000c0e05, 0x001e1a11, 0x003c382f, 0x007f7568, 0x006e5b4a, 0x0033210b, 0x00564128, 0x00a38664, 0x00c29c72,
- 0x00c8945f, 0x00cb9362, 0x00cc9d6d, 0x009c7250, 0x004b311b, 0x0050361f, 0x00766348, 0x00796855, 0x005c5a4e, 0x002c2c2a, 0x00090b10, 0x0007090f, 0x00090b0c, 0x00090b05, 0x00100f04, 0x002a2818,
- 0x005e5820, 0x006c6b3e, 0x004d4c30, 0x00262720, 0x0012161f, 0x00161a29, 0x0020242a, 0x00313331, 0x0057523a, 0x00756c49, 0x0058522a, 0x00313111, 0x00232115, 0x002c2722, 0x0042382e, 0x0074624d,
- 0x00b79769, 0x00ae9161, 0x005e4721, 0x00251008, 0x00130e1e, 0x00171b19, 0x0019312a, 0x00386b79, 0x0054b0d8, 0x0060bcde, 0x0067b9d0, 0x0063989f, 0x00869375, 0x00b8b389, 0x00aea16f, 0x009c8758,
- 0x00957a53, 0x00aa7a59, 0x00c08160, 0x00ca8964, 0x00b49055, 0x009f8048, 0x005a3e12, 0x002b0e01, 0x003c4a54, 0x0068a0b1, 0x007fc9de, 0x008dc4dc, 0x00a0a28c, 0x008f7859, 0x006f573b, 0x00493a32,
- 0x001e1e29, 0x0032292c, 0x00584d43, 0x007a6f57, 0x0095a37e, 0x00adaf9e, 0x00b5b7ad, 0x00b8bebc, 0x00b6c8ca, 0x00afbec4, 0x00d1dbe0, 0x00f9f8fa, 0x00fdfcfb, 0x00fffbfc, 0x00fdfdff, 0x00fdfffd,
- 0x00cbbfba, 0x00685851, 0x00554136, 0x00644739, 0x00795140, 0x007c523f, 0x00774d3c, 0x006b4535, 0x005b3e2d, 0x00503726, 0x00462e24, 0x00452625, 0x00451f20, 0x00431b1c, 0x0043171a, 0x00481419,
- 0x00451013, 0x00481211, 0x004e1a10, 0x00521f12, 0x00572713, 0x0056231c, 0x00542226, 0x00552f38, 0x005d495c, 0x006f687a, 0x00888d9b, 0x008f9ea2, 0x00778a86, 0x00889295, 0x00a1aab4, 0x00888a9e,
- 0x00532a37, 0x008c2816, 0x00d45428, 0x00d44722, 0x007f5070, 0x005f5386, 0x004f4b7b, 0x00523b51, 0x0066423e, 0x00685660, 0x0059556b, 0x003d3c64, 0x001b1d5d, 0x000f1064, 0x000b116b, 0x00091068,
- 0x00070f4a, 0x00253057, 0x00353d58, 0x001c1f30, 0x00100f23, 0x00202129, 0x00202125, 0x0007060d, 0x0001001d, 0x00040f3e, 0x0017316d, 0x00092a74, 0x000a2a73, 0x00071f60, 0x0038457a, 0x006c709d,
- 0x0039575e, 0x003a4d5e, 0x008697ad, 0x00999fb5, 0x00a4a394, 0x00a9a16b, 0x00aca254, 0x00aea341, 0x00b5a251, 0x00b99f5c, 0x00b19a5e, 0x00a69250, 0x008a7d47, 0x00665f35, 0x0032341a, 0x0011130a,
- 0x0003070e, 0x0001020e, 0x0000030b, 0x0003020d, 0x00292530, 0x00484b55, 0x00676e76, 0x007b7d87, 0x007f8189, 0x007f8289, 0x00b7babf, 0x00f1f5f7, 0x00fdfdff, 0x00fdfefe, 0x00fffdff, 0x00fffdfe,
- 0x00c6b7c0, 0x0067575e, 0x0048373a, 0x0032221f, 0x00261610, 0x001e110e, 0x001d1219, 0x00190f1d, 0x000d0f27, 0x000c0d2f, 0x000b0c33, 0x00120c38, 0x0008164f, 0x00061d61, 0x00102869, 0x002b386c,
- 0x00584356, 0x006e4e50, 0x00ad948a, 0x00efe6db, 0x00f8fefc, 0x00fafefa, 0x00fdfdfb, 0x00fffefd, 0x00ccc9c3, 0x005d5a53, 0x00251f17, 0x002d2419, 0x0036291f, 0x0037281b, 0x00382819, 0x00312112,
- 0x00221918, 0x001c1714, 0x00110f0b, 0x000d0d07, 0x000a0a04, 0x000b0904, 0x000c0806, 0x000e0a08, 0x00160908, 0x00180b09, 0x0016090a, 0x00110b0c, 0x00100e09, 0x00121107, 0x001a1808, 0x0022210a,
- 0x00342e15, 0x0042391d, 0x0056462b, 0x00624b32, 0x006d4d38, 0x0073553c, 0x00755b40, 0x00735c42, 0x00745e42, 0x00755d44, 0x006d5344, 0x00614d46, 0x004d4e69, 0x00334c85, 0x00174796, 0x000949af,
- 0x00234b9d, 0x002b57a7, 0x002a55a5, 0x002953a5, 0x001d4795, 0x001e438e, 0x00234086, 0x00263e7c, 0x003f467c, 0x00505589, 0x00535375, 0x00413738, 0x001c1417, 0x000d0408, 0x000a0004, 0x000c0002,
- 0x00190906, 0x0031211b, 0x00594c40, 0x0075675b, 0x00918672, 0x008e7f6e, 0x007c705d, 0x00675d4a, 0x0048433c, 0x002d2d27, 0x00171b17, 0x00181e1b, 0x001d2320, 0x001e2623, 0x0029302e, 0x003f4243,
- 0x005f5b65, 0x00716e77, 0x00838088, 0x008d8b91, 0x00949597, 0x009c9d9e, 0x00989899, 0x008d8e8e, 0x008a8a89, 0x00908f8e, 0x00969394, 0x009e9695, 0x00aaa09b, 0x00b8a8a0, 0x00b7a59d, 0x00b19d92,
- 0x00998877, 0x007b6858, 0x00513f2e, 0x003c2d1a, 0x00322513, 0x00271b0d, 0x0022170a, 0x00291b0d, 0x00392716, 0x004a3422, 0x0059402d, 0x00674b34, 0x0076573b, 0x007d5c3d, 0x00896746, 0x00886442,
- 0x00816347, 0x00775c43, 0x00674f3a, 0x00503f2c, 0x00292112, 0x00120f06, 0x00090702, 0x00040403, 0x00000000, 0x00000100, 0x00000101, 0x00000100, 0x00010102, 0x00020201, 0x00010100, 0x00000200,
- 0x00000001, 0x00010100, 0x00010100, 0x00020303, 0x00030203, 0x00030503, 0x007a7f7b, 0x00edf1ec, 0x00fbfdfa, 0x00fefef9, 0x00fdfefa, 0x00fefdfb, 0x00a9a9a7, 0x002a2927, 0x00090704, 0x000e090a,
- 0x00130e09, 0x00120d08, 0x00120c08, 0x00100a06, 0x000f0905, 0x000f0804, 0x000f0804, 0x000f0803, 0x000e0805, 0x000e0804, 0x000e0904, 0x000e0b05, 0x000e0c06, 0x000e0b07, 0x000e0b08, 0x000e0b09,
- 0x000d0c06, 0x000c0b06, 0x000c0b06, 0x000e0d08, 0x000d0b07, 0x000f0d0b, 0x000f0d0b, 0x00100e0c, 0x00121007, 0x00121005, 0x00120f05, 0x00130f06, 0x00150e0a, 0x00160e0c, 0x00160d0c, 0x00150b0a,
- 0x00120e15, 0x000d0d11, 0x000c0d0f, 0x000e0f0f, 0x000f100e, 0x00131310, 0x0014120f, 0x00141410, 0x0014130f, 0x00161410, 0x0012130c, 0x00131514, 0x0015110d, 0x0015100d, 0x00110f07, 0x00140d08,
- 0x00090d14, 0x00050b1b, 0x002b4057, 0x0052758f, 0x00618aad, 0x006286ba, 0x005682bc, 0x004d78b6, 0x004071b2, 0x003b6faf, 0x003a6dad, 0x004777b4, 0x00688dbf, 0x007e9ccb, 0x00839abf, 0x006c7ea0,
- 0x005c6d8a, 0x003c4a63, 0x000b1321, 0x0000050e, 0x00050606, 0x00050806, 0x00040400, 0x00050501, 0x00070906, 0x00090d0c, 0x000b090b, 0x0012080d, 0x0012090d, 0x00140c12, 0x000f090e, 0x000d080c,
- 0x00070208, 0x0009060d, 0x000a0910, 0x0007080e, 0x00030308, 0x00010204, 0x00010201, 0x00020501, 0x00020103, 0x00030203, 0x00050203, 0x00070404, 0x000a0506, 0x000b0607, 0x0010090b, 0x00171011,
- 0x00161a11, 0x0023271d, 0x002e3228, 0x00484c42, 0x00767970, 0x00868880, 0x008c8c85, 0x00989791, 0x00a8a6a1, 0x00afaba8, 0x00a8a8a9, 0x00aeb1b3, 0x00b7bdbe, 0x00c3c4c9, 0x00ced0d7, 0x00dedde4,
- 0x00ecedec, 0x00f1eff0, 0x00f4f0f4, 0x00f7f1f6, 0x00f9f5f8, 0x00f8f7f9, 0x00f6f9f9, 0x00fbfcfb, 0x00fefdfd, 0x00fdfefd, 0x00fcfefe, 0x00f9f9fe, 0x00fbfafc, 0x00fefbfe, 0x00fefcfe, 0x00fdfbfd,
- 0x00fbfbfe, 0x00fcfdff, 0x00fbfbfe, 0x00fcf9fd, 0x00fbf8fd, 0x00fbf8fb, 0x00fbfafa, 0x00fcfaf8, 0x00fbf5f7, 0x00fef9fa, 0x00fdfbf7, 0x00fefcf4, 0x00fdfcf5, 0x00fefcf5, 0x00fdf8ed, 0x00fff4e4,
- 0x00fbfaea, 0x00fdfde9, 0x00fbfbe7, 0x00fcfbe6, 0x00f9fce3, 0x00fcf9e1, 0x00f9f3d7, 0x00faf0d3, 0x00f2e6c6, 0x00dfd1b0, 0x00d1c09e, 0x00c5b38f, 0x00c6b38d, 0x00c6b18a, 0x00bda67f, 0x00b79f78,
- 0x00b9a273, 0x00b59e6e, 0x00b39a68, 0x00b49965, 0x00aa8c58, 0x00a6854f, 0x00a58148, 0x00af8a4f, 0x00bd965b, 0x00bb9356, 0x00b68f4f, 0x00b48f50, 0x00b48f4e, 0x00b48d4c, 0x00b8924f, 0x00b6924e,
- 0x00b79451, 0x00b79351, 0x00af8a48, 0x00ae8946, 0x00b99354, 0x00b99659, 0x00ac8b4d, 0x00b69254, 0x00c09d5a, 0x00b69456, 0x00b4955c, 0x00bda476, 0x00f7edd3, 0x00fffcf5, 0x00fdfcfc, 0x00f9fcff,
- 0x00fffefe, 0x00eef7fb, 0x00ecf9ff, 0x00e9f6fd, 0x00f8f7ff, 0x00f9f1f1, 0x00fdeeee, 0x00fdefe6, 0x00fdf0f4, 0x00e9f0f9, 0x00e5eefc, 0x00eff2f5, 0x00f7f6fc, 0x00f1f4f9, 0x00e5e6ef, 0x00d7dce1,
- 0x00d2d4df, 0x00afb4bf, 0x007b7f8c, 0x005e6570, 0x004f5663, 0x00505763, 0x0037404c, 0x00232c36, 0x000f1418, 0x00090a07, 0x001e1914, 0x0059524f, 0x00b6b9c8, 0x00adc3e7, 0x007696cd, 0x006293d9,
- 0x00598fcd, 0x00568dd2, 0x00538ada, 0x004c83e2, 0x004b7fee, 0x004a7bee, 0x004672e6, 0x004874db, 0x005079d1, 0x00567ecd, 0x007194cf, 0x009ab5d6, 0x00a5bcdd, 0x00a5b7d3, 0x00aabbd8, 0x00b6c8e2,
- 0x00bbc7ec, 0x00aec1e8, 0x009fb5dd, 0x008da6d3, 0x007291c4, 0x005c83d7, 0x00547ae3, 0x005777e5, 0x006a7ddf, 0x00788fd9, 0x0087a1d9, 0x008dafd4, 0x0099c0d9, 0x00a5cad3, 0x00b8d7d7, 0x00cbe5d4,
- 0x00edf1eb, 0x00edf6eb, 0x00f7fef5, 0x00f9fef8, 0x00f7fef9, 0x00f8fcfc, 0x00f7fafc, 0x00f1f9f6, 0x00f3f7fa, 0x00e7efec, 0x00c7dded, 0x008eb8f6, 0x005881d3, 0x004b74ca, 0x00486fc8, 0x004067c5,
- 0x004368c8, 0x004369c6, 0x003f66c5, 0x003d66c0, 0x004972c8, 0x004c74cc, 0x004168c1, 0x003760b7, 0x00385eb8, 0x003c66c0, 0x004975d0, 0x00507edb, 0x005080de, 0x004d7cdc, 0x004575d5, 0x004071d1,
- 0x004669c4, 0x004367c4, 0x004a6fcf, 0x00597fe0, 0x004e74d3, 0x00365cba, 0x00254ba8, 0x002a50ae, 0x003c61b7, 0x003f68b8, 0x00426bbd, 0x004268bf, 0x004f74cc, 0x004b6fc9, 0x003051aa, 0x001d3990,
- 0x001c2d7c, 0x001f2d69, 0x005e6695, 0x00acb1d0, 0x00d3d8e8, 0x00d4d4dc, 0x00cac5cf, 0x00ccc6cd, 0x00dad2da, 0x00e1dce0, 0x00c3c1c2, 0x00bfbebd, 0x00f7f9f7, 0x00f6faf9, 0x00fafcfd, 0x00f5fbfb,
- 0x00f9faff, 0x00cdd0d6, 0x006a6c74, 0x00585b64, 0x00606371, 0x007c8092, 0x0085899f, 0x008e95ae, 0x00979cb7, 0x009aa1bd, 0x00a9a9cb, 0x00aca6cf, 0x00a9a8b4, 0x00a8acaf, 0x00969da3, 0x00566076,
- 0x002a3271, 0x002e356f, 0x003a365d, 0x00584b50, 0x0079612a, 0x00664a19, 0x00624012, 0x00654214, 0x00744a21, 0x007a5126, 0x007c5327, 0x007b5527, 0x00785422, 0x0070511b, 0x006c4f16, 0x00684d10,
- 0x006f4d1a, 0x00714e1b, 0x006f4c19, 0x006a4814, 0x00694813, 0x006c4c16, 0x006e4d16, 0x006f4d17, 0x0070511b, 0x0074561f, 0x007a5620, 0x007d531f, 0x006d4c1c, 0x00573f20, 0x00312209, 0x00100e00,
- 0x000d0c0b, 0x00070609, 0x000b090f, 0x000b080e, 0x00281f26, 0x00837c83, 0x00b7b4ba, 0x00c7c6cc, 0x00c7c3cd, 0x006d6261, 0x006c554a, 0x008b674c, 0x00906138, 0x008b6431, 0x00856430, 0x00846630,
- 0x00896c3d, 0x00947846, 0x00a08450, 0x00907440, 0x00775926, 0x0070511e, 0x00765520, 0x00704f18, 0x0077541e, 0x007d5a21, 0x007c551a, 0x007e561b, 0x007f591d, 0x007f5b20, 0x0088652d, 0x009d7b44,
- 0x00c7a677, 0x00c4a474, 0x009a784c, 0x00856537, 0x00826335, 0x0080602d, 0x0084612c, 0x00836229, 0x00805d28, 0x007d5b25, 0x007d5b26, 0x007c5a24, 0x00795721, 0x0076551e, 0x00785620, 0x007e5d27,
- 0x00876028, 0x00846029, 0x00856134, 0x00856237, 0x00876533, 0x008a692f, 0x00906e31, 0x008a6825, 0x007b5323, 0x00724a1b, 0x006d5229, 0x005a6031, 0x004d4d4f, 0x0038375b, 0x0035356b, 0x003c4078,
- 0x00717690, 0x009ea5ab, 0x00a8adaa, 0x00a6a7a6, 0x00a9a4b2, 0x00a7a9ae, 0x00a4abab, 0x009fa5a6, 0x009fa3a8, 0x00a1a6ab, 0x00a7a7b2, 0x00cecbdb, 0x00faf8ff, 0x00fcfafe, 0x00fefafd, 0x00fcfafb,
- 0x00fbfbff, 0x00afb1b6, 0x002c3034, 0x00232829, 0x00222521, 0x00181713, 0x001a1812, 0x0013130c, 0x00211b12, 0x003a3628, 0x006b6155, 0x005e4a3a, 0x0036200f, 0x003a2409, 0x00684c2c, 0x00967148,
- 0x00bd8a55, 0x00bc8754, 0x00a77348, 0x00663d1a, 0x003d230f, 0x00674d33, 0x009e856a, 0x0096836c, 0x00746a61, 0x0045413e, 0x0014161a, 0x00101316, 0x00151516, 0x0014110d, 0x00282314, 0x005e5642,
- 0x009a9545, 0x00908f4e, 0x005a592a, 0x002a2d15, 0x00191e25, 0x001f2430, 0x002b2d39, 0x00333136, 0x00302615, 0x003a2f15, 0x00322c0e, 0x00222402, 0x002a2a1e, 0x003a3635, 0x00423938, 0x00655747,
- 0x008d724c, 0x00846d3e, 0x00483211, 0x00221406, 0x00180f29, 0x001d1712, 0x0021281a, 0x00234342, 0x00518fad, 0x0067b4d9, 0x005eacd3, 0x005aa1c0, 0x0066898e, 0x0084917b, 0x009c926a, 0x00a08651,
- 0x0090734f, 0x00a1724f, 0x00b37755, 0x00b97751, 0x00a57e4a, 0x00967844, 0x005a4117, 0x00311909, 0x00415365, 0x0065a9c0, 0x0088cfe7, 0x009dc8d3, 0x00a49c7b, 0x00a0815b, 0x00a88667, 0x007e6861,
- 0x00291f37, 0x00261820, 0x0033231c, 0x00504328, 0x00839069, 0x00acac99, 0x00b4b4ad, 0x00b7c3bc, 0x00bcccd0, 0x00b3c1c3, 0x00d2dadc, 0x00f6f9f8, 0x00fffefb, 0x00fefafb, 0x00fffcfe, 0x00fcfeff,
- 0x00c9bfb9, 0x0061524a, 0x004d382e, 0x00583d2f, 0x00734f3d, 0x00724e39, 0x006d4935, 0x0060412e, 0x00513728, 0x00433020, 0x00412a20, 0x00432422, 0x00462524, 0x00452121, 0x004a1e20, 0x00491a1d,
- 0x00501b1e, 0x00531f19, 0x0056241a, 0x005c2c1d, 0x0061331d, 0x005f2c27, 0x0068383f, 0x00684653, 0x0061586c, 0x00707b89, 0x00889eab, 0x00708e92, 0x00657c80, 0x006e7f85, 0x0079838f, 0x00646378,
- 0x00481e33, 0x007b190c, 0x00cd4e19, 0x00cf4b11, 0x006e4870, 0x00433f8c, 0x004c4ea5, 0x0067508e, 0x00714a54, 0x005b4b4e, 0x00524c52, 0x004a4a54, 0x00252253, 0x00161660, 0x000d0f69, 0x00060d6a,
- 0x00080851, 0x0005093d, 0x000d1339, 0x000a0c29, 0x000c082a, 0x00100e1e, 0x00070910, 0x0003010c, 0x00030426, 0x0000083a, 0x00102566, 0x00062270, 0x00072677, 0x0003165a, 0x003f4980, 0x007a7ca6,
- 0x002e5466, 0x00193753, 0x006a7d9b, 0x008892b4, 0x00999891, 0x00a09b6e, 0x00a69f53, 0x00aca13e, 0x00b6a14e, 0x00b6a05c, 0x00b69b5f, 0x00ac9650, 0x0091844a, 0x006e6b3d, 0x003b3c1f, 0x00171f10,
- 0x00080d16, 0x0001090f, 0x0003030f, 0x0000000a, 0x0024212a, 0x0044474e, 0x00656876, 0x00777d86, 0x007e7f88, 0x007e8187, 0x00b6b9bc, 0x00f4f6f6, 0x00fdfdfd, 0x00fdfefd, 0x00fdfefc, 0x00fcfffd,
- 0x00dbc8d4, 0x00948189, 0x00746061, 0x0059463f, 0x00423026, 0x002d1e16, 0x00231515, 0x001d1017, 0x00121123, 0x0013142e, 0x001b1840, 0x002b1750, 0x00122374, 0x00062481, 0x0009328e, 0x00234999,
- 0x0060628e, 0x005d5260, 0x00998886, 0x00e9e2d6, 0x00fdfdf8, 0x00fdfffa, 0x00fcfdf8, 0x00fffef9, 0x00d0ccc7, 0x00645e57, 0x0030251d, 0x003a2d24, 0x00423328, 0x00423226, 0x00443324, 0x003e2d1a,
- 0x002b2223, 0x00231b1a, 0x0017120e, 0x000e0d06, 0x000a0b04, 0x00090a04, 0x000c0b06, 0x000d0a06, 0x0015080a, 0x00160a08, 0x00170a0c, 0x000f0a0c, 0x000e0d0a, 0x000c0d04, 0x00141408, 0x00191c09,
- 0x002c2710, 0x003a3018, 0x004e3d29, 0x005b4533, 0x00674a39, 0x006f543c, 0x00745c41, 0x00765e44, 0x00766047, 0x00765f46, 0x00735b4a, 0x0068554d, 0x004a4c68, 0x0028427b, 0x00144695, 0x000549ae,
- 0x00184aa7, 0x001648a5, 0x001445a0, 0x0015429d, 0x00193f94, 0x001e3d89, 0x002b4083, 0x00344079, 0x004f4677, 0x0051456d, 0x003a2c42, 0x001c1206, 0x000a0000, 0x000a0100, 0x000c0001, 0x000b0000,
- 0x000e0002, 0x00120701, 0x00373125, 0x00635f4e, 0x009a9984, 0x009d9480, 0x00918676, 0x00807a6b, 0x0066625a, 0x0045453e, 0x00232724, 0x00171e1e, 0x001a2324, 0x001d2626, 0x0027312f, 0x003a4441,
- 0x00615c69, 0x006d6c76, 0x00807f87, 0x0086878c, 0x008f9295, 0x008e8f92, 0x00828183, 0x00727172, 0x006a6968, 0x006c6b68, 0x00747270, 0x007d7673, 0x00918884, 0x00ab9d96, 0x00bfb1a7, 0x00c4b7a9,
- 0x00c8b3a6, 0x00b09e90, 0x0078685b, 0x00473b28, 0x002d2215, 0x00281b0e, 0x0029180d, 0x00301e0d, 0x003f2d19, 0x004f3a24, 0x0061472e, 0x006f5033, 0x007e5c3c, 0x00876140, 0x00926947, 0x00916744,
- 0x0089674a, 0x007d6042, 0x006d553d, 0x00574630, 0x00362c1f, 0x001c170b, 0x000f0b06, 0x00060602, 0x00010200, 0x00010100, 0x00010000, 0x00000000, 0x00010101, 0x00010101, 0x00020101, 0x00040102,
- 0x00030003, 0x00010001, 0x00010102, 0x00020203, 0x00030403, 0x00020401, 0x007c7f7c, 0x00ecf1ef, 0x00fefefd, 0x00fefffb, 0x00fffffd, 0x00fbfdfa, 0x00ada8a7, 0x00292925, 0x000c0804, 0x000d0b07,
- 0x00150f0d, 0x00140e0b, 0x00110b08, 0x00100b06, 0x000e0905, 0x000c0803, 0x000d0905, 0x000d0805, 0x000f0807, 0x000f0807, 0x000f0a07, 0x000e0c08, 0x000e0c08, 0x000d0c07, 0x000c0b06, 0x000c0c06,
- 0x000e0c0a, 0x000c0a07, 0x000d0b06, 0x000d0c07, 0x000c0b07, 0x000b0a07, 0x000c0b0a, 0x000c0b0b, 0x000f0c06, 0x000f0d06, 0x00110d06, 0x00120e06, 0x00150f09, 0x00160f0b, 0x00150d0c, 0x00130b0b,
- 0x00121016, 0x000e0f13, 0x000c0e10, 0x000c0e0e, 0x000d100f, 0x000f110e, 0x00151511, 0x00141611, 0x00161510, 0x0013140a, 0x00161311, 0x00121613, 0x0017110d, 0x0016110a, 0x00140e0c, 0x00110f0a,
- 0x0010131d, 0x00324251, 0x0068849a, 0x006a94b2, 0x005986b3, 0x004977bc, 0x004475c9, 0x003a71c6, 0x003572c4, 0x004f8bd8, 0x0072abf0, 0x0088bfef, 0x0099c6f8, 0x00aed4fa, 0x00afcdeb, 0x0087a1b8,
- 0x009099c9, 0x007f8eb2, 0x0037435e, 0x00070c1c, 0x00000509, 0x00040706, 0x00050401, 0x00040600, 0x000d0c0c, 0x000d0e0e, 0x0011100f, 0x001a140c, 0x0017120d, 0x0017110a, 0x0016120c, 0x00111109,
- 0x0016140f, 0x000e0e09, 0x000a0c07, 0x00070b04, 0x00080d06, 0x00050a06, 0x00040906, 0x00010702, 0x00060805, 0x00050705, 0x00070707, 0x00080608, 0x000b090b, 0x00070507, 0x00060407, 0x00070609,
- 0x0005090f, 0x0003060d, 0x0002020b, 0x0015141e, 0x0054535c, 0x00676670, 0x0063616d, 0x00666370, 0x00726879, 0x00655f6f, 0x00504a55, 0x00414040, 0x004a4846, 0x00494747, 0x00585355, 0x00646163,
- 0x007a7078, 0x007e797e, 0x008e848b, 0x009c929c, 0x00b0a6b0, 0x00bbbbbf, 0x00cfd0d1, 0x00dbdddd, 0x00e3e8e9, 0x00e8e9eb, 0x00efecf1, 0x00f4f2f6, 0x00fbf7ff, 0x00fffaff, 0x00fff9fe, 0x00fdf9fd,
- 0x00f8fffb, 0x00f4fdf8, 0x00f4fbf8, 0x00f7fffa, 0x00f8fdf7, 0x00f6fef6, 0x00f9fff7, 0x00f9fef5, 0x00fcfff6, 0x00fefdf5, 0x00f7f9f4, 0x00fafbfd, 0x00fcfcff, 0x00fcfdfd, 0x00f9fdfc, 0x00fbfbfd,
- 0x00fcfcfe, 0x00fdfdf9, 0x00fcfdf6, 0x00f9fcf0, 0x00f8fef2, 0x00fbf8f9, 0x00fdf6fd, 0x00fbf6fd, 0x00fff7fe, 0x00fff9ff, 0x00fcf6fd, 0x00fff8fe, 0x00fff7fb, 0x00fff6fa, 0x00faeef1, 0x00f8ecef,
- 0x00efe5be, 0x00eddfb6, 0x00e7daae, 0x00e8ddad, 0x00e1d19d, 0x00e1c590, 0x00cdab74, 0x00bc995f, 0x00af8a4e, 0x00b28d4d, 0x00c09a59, 0x00be9a54, 0x00bd9854, 0x00b99552, 0x00bd9958, 0x00b4914e,
- 0x00bb9554, 0x00c49e5a, 0x00bd9755, 0x00b28c4a, 0x00b28d49, 0x00b29150, 0x00aa8a4d, 0x00b39252, 0x00b49150, 0x00af8f4d, 0x00b99b61, 0x00bea577, 0x00fff9e3, 0x00fffcf4, 0x00fdfefd, 0x00fafbff,
- 0x00f8fafa, 0x00f0f3f5, 0x00f4f5f0, 0x00f3f8f0, 0x00f4f5f8, 0x00f2f5fa, 0x00f1f3fa, 0x00f6f2fd, 0x00f2f0ff, 0x00ebecfd, 0x00e7e5f9, 0x00e9e8fa, 0x00f9f2fc, 0x00faf1f0, 0x00eee5e3, 0x00bcbdbc,
- 0x006b83a1, 0x003a578c, 0x00204288, 0x001b4293, 0x001a418e, 0x00163881, 0x00143271, 0x00142f62, 0x001a2b41, 0x0015262d, 0x00061613, 0x00091a1a, 0x004a6881, 0x007499d0, 0x006491de, 0x005a8eeb,
- 0x004f8ecc, 0x004d8ad6, 0x00457ed7, 0x00477cde, 0x004579c8, 0x005486bd, 0x007ca4c6, 0x009ab7cb, 0x00b5bcd8, 0x00c0bfe3, 0x00dfdff6, 0x00ecf6f9, 0x00e5f6fc, 0x00dceffd, 0x00bfd9f4, 0x00a4c6f3,
- 0x0084b1ed, 0x0076a7ec, 0x00689ae7, 0x005d90e0, 0x00578bdf, 0x005387e1, 0x005886e2, 0x005a85de, 0x005882db, 0x005985db, 0x005787df, 0x005083db, 0x00578ae4, 0x005d91dd, 0x00669add, 0x00699fd5,
- 0x00799ded, 0x008baff1, 0x009ec3f4, 0x00afd3f0, 0x00d0eef4, 0x00dff6ee, 0x00edfdef, 0x00f5fdef, 0x00fdf9eb, 0x00fffaf0, 0x00faf9f3, 0x00e6f2ef, 0x00aab8d5, 0x006a80b9, 0x004b65b7, 0x004365ce,
- 0x003060d4, 0x003565d6, 0x003666d1, 0x003767c8, 0x004472c6, 0x00416dc7, 0x003560bb, 0x00315ab8, 0x003e66c6, 0x004b75d4, 0x005580de, 0x00537fdd, 0x004976d3, 0x004673d0, 0x004572cd, 0x004471cc,
- 0x003f6dc1, 0x00446ec3, 0x005175cb, 0x005171c5, 0x003b57a9, 0x00294695, 0x002a4a98, 0x003556a7, 0x003f65b9, 0x004068be, 0x003b63bc, 0x003c5fbf, 0x004764be, 0x003953a3, 0x00253a7e, 0x001e3069,
- 0x002a365d, 0x005e6784, 0x00b8bdd3, 0x00d3d7e7, 0x00d5dde4, 0x00d0d4d7, 0x00c9c9cc, 0x00c8c8c9, 0x00c7c7c8, 0x00ccccce, 0x00d5d6d6, 0x00dbdbda, 0x00f8f9f8, 0x00fafaf9, 0x00fdfcfc, 0x00ffffff,
- 0x00f6faf5, 0x00bec0c0, 0x00616368, 0x005e616c, 0x00646578, 0x0076788f, 0x00747991, 0x00757893, 0x006c718c, 0x006a6f89, 0x00676f8b, 0x00626f89, 0x005b677d, 0x00535c73, 0x004c5170, 0x003b4064,
- 0x002d315a, 0x00343359, 0x00343450, 0x0041464f, 0x0065645d, 0x006b4e33, 0x00643511, 0x00663a16, 0x006c4519, 0x006d4d19, 0x00795c22, 0x006f581a, 0x0075591d, 0x0075571e, 0x0076511d, 0x00744e1a,
- 0x006e4e1a, 0x00704f1b, 0x0072501c, 0x00714f1b, 0x00714f1b, 0x006d4b17, 0x006e4c17, 0x006f4c17, 0x006c4916, 0x006c4c1b, 0x0073521e, 0x006c5014, 0x005f4423, 0x004a3625, 0x00412e2c, 0x0030252c,
- 0x00171613, 0x00050305, 0x00373335, 0x00534e52, 0x00504955, 0x00938d97, 0x008f888f, 0x00928996, 0x00c0b4c3, 0x00726266, 0x00574538, 0x006f5c3d, 0x00806431, 0x00825f29, 0x008b622b, 0x00885d28,
- 0x00876d42, 0x00997c50, 0x009a7b4e, 0x00856638, 0x00705224, 0x006c4f20, 0x006e5022, 0x006f4e20, 0x00705025, 0x00775629, 0x0078572c, 0x007b5b31, 0x007c5d32, 0x007d5e32, 0x009b7b50, 0x00c29f74,
- 0x00b79a64, 0x00997b45, 0x007e5f27, 0x007d5e27, 0x007d6028, 0x00785922, 0x00805e25, 0x00836129, 0x0085632d, 0x0081602a, 0x007f5e28, 0x007d5d26, 0x007f5d27, 0x007f5d27, 0x007c5a25, 0x007a5823,
- 0x00795a21, 0x007a5d23, 0x007b5c27, 0x00795c21, 0x007f6229, 0x00806526, 0x0085682f, 0x0084642d, 0x007c5722, 0x0077521d, 0x006a5727, 0x00546334, 0x00404848, 0x00393a5b, 0x003c396d, 0x003f3b73,
- 0x00585c6c, 0x0090969b, 0x00a5acae, 0x00878d96, 0x00606280, 0x00505970, 0x004a546b, 0x004f5572, 0x0054567c, 0x005f6181, 0x007c7c8f, 0x00bdbec2, 0x00fcfdf6, 0x00fefdf3, 0x00fdfcf3, 0x00fefdfa,
- 0x00f7f2f5, 0x00b9b5b8, 0x00444742, 0x00505b4a, 0x006f7b5f, 0x00777d5e, 0x007f7d5d, 0x0081795c, 0x00857964, 0x007c725f, 0x005a5247, 0x003a312f, 0x00201915, 0x0023170c, 0x00321e08, 0x0063482a,
- 0x007a5a2a, 0x00705224, 0x004a3512, 0x00292105, 0x00323e2f, 0x006a6451, 0x007c6b56, 0x00615139, 0x0057452d, 0x00675b3f, 0x00766e4f, 0x00827c59, 0x00837e57, 0x00827c54, 0x008f8a61, 0x00aba67f,
- 0x00cab881, 0x00baaa7a, 0x0099885e, 0x00867a59, 0x00817d67, 0x006a6d5d, 0x002d3326, 0x00181c18, 0x00121714, 0x001c1e1d, 0x001d1e20, 0x00111614, 0x00141917, 0x00252a25, 0x0030352f, 0x00373a33,
- 0x003a402e, 0x00363827, 0x0026281d, 0x001b1c16, 0x0013140f, 0x001d1112, 0x002d251e, 0x00353727, 0x00425147, 0x00536671, 0x00526270, 0x0048555e, 0x003d4333, 0x00343b2f, 0x00697171, 0x009fa2be,
- 0x009f8e7f, 0x008a7966, 0x00806d62, 0x008d7e6f, 0x00ae9f99, 0x00a19c90, 0x0045443b, 0x001a201a, 0x00404a4b, 0x00889696, 0x00bfd1ca, 0x00b6d3bb, 0x0090a2a0, 0x0076868d, 0x006b7786, 0x004f566b,
- 0x001c2529, 0x001b261d, 0x00323528, 0x00505444, 0x007b7969, 0x00889186, 0x00aab0a2, 0x00b9b8a6, 0x00cebda3, 0x00c8b39f, 0x00dac9b9, 0x00f6f5e9, 0x00fbfdfa, 0x00f8fdfc, 0x00f9fbfc, 0x00fbfdfe,
- 0x00c5bfb3, 0x0062564a, 0x003f2e21, 0x004f3a2b, 0x00593e2f, 0x005a4230, 0x00553e2f, 0x004e3a2e, 0x003c2d2a, 0x00342925, 0x00312b27, 0x002d2823, 0x00342a25, 0x00352a22, 0x003c2c23, 0x00452a25,
- 0x00472a16, 0x004e2910, 0x005d2d12, 0x006a3615, 0x00713612, 0x00484050, 0x004c587d, 0x0049525f, 0x005c5d69, 0x00747794, 0x004c547d, 0x00253960, 0x001b3551, 0x001f3f64, 0x001f3976, 0x001b2b85,
- 0x00160f41, 0x002b1015, 0x006b4645, 0x007b577b, 0x003a49b8, 0x00183c8d, 0x001d387c, 0x00424178, 0x00664e8a, 0x00575275, 0x004b4e58, 0x004f5246, 0x001f2232, 0x0013123b, 0x00191a52, 0x00141659,
- 0x00081049, 0x00090b3b, 0x00080530, 0x0010092c, 0x000e052a, 0x0009081b, 0x0000030e, 0x0002000e, 0x0001021b, 0x00020930, 0x0002114a, 0x00052266, 0x00082874, 0x00061c58, 0x003f527b, 0x007c899f,
- 0x00264b31, 0x00032127, 0x0027436e, 0x004761ab, 0x00697ebf, 0x007884a0, 0x008a8d87, 0x00a3996d, 0x00be9955, 0x00c79450, 0x00c49550, 0x00a89849, 0x00a08349, 0x008b703f, 0x006b4f2d, 0x00422e18,
- 0x001d200c, 0x000f1710, 0x000c1316, 0x00030811, 0x001c1528, 0x00353a3d, 0x0060645f, 0x007f736d, 0x0093726b, 0x00957d78, 0x00c7bab7, 0x00f3f6f5, 0x00effcfc, 0x00f1fffb, 0x00f9fff8, 0x00fdfff3,
- 0x00caccd4, 0x008a8b95, 0x0080808d, 0x007e7d8c, 0x006e6d7e, 0x0056566a, 0x004c4d63, 0x0044455d, 0x00363854, 0x002d2c4d, 0x00212450, 0x0013205e, 0x0018206d, 0x00162276, 0x001f2783, 0x00444aa8,
- 0x006c74be, 0x004a4e88, 0x007c7ea5, 0x00e5e7ef, 0x00fdfffd, 0x00f4fdfb, 0x00f2fafc, 0x00fcfefe, 0x00d3cbc7, 0x0072665c, 0x00443221, 0x004d361f, 0x00573c22, 0x005d3f25, 0x00604027, 0x0056351c,
- 0x003d281a, 0x00342115, 0x0026160e, 0x001a100b, 0x000d0906, 0x000a0905, 0x000a0a04, 0x000a0a03, 0x00110908, 0x00140a07, 0x00120b09, 0x000b0d0c, 0x00080a08, 0x00090804, 0x00100b07, 0x0016100a,
- 0x00252010, 0x002f2717, 0x003e3123, 0x0049392c, 0x00564331, 0x005d4b32, 0x00665336, 0x006e5a3d, 0x00785f44, 0x00735d46, 0x006b5b4b, 0x00635a57, 0x00454965, 0x002d3c6e, 0x00283f82, 0x00234193,
- 0x0019448c, 0x00143c89, 0x00184093, 0x001c4297, 0x001d3b8d, 0x00294083, 0x002e3d6d, 0x003c4060, 0x00463e3b, 0x0036251a, 0x002b1607, 0x00311f05, 0x003e2b11, 0x002d220b, 0x00140a03, 0x000d0500,
- 0x00050101, 0x00080401, 0x002c231e, 0x005b4e49, 0x00a6938d, 0x00b1a397, 0x00a4998d, 0x00928a7d, 0x00817b6e, 0x00666256, 0x003c3b31, 0x0022241b, 0x001e1c19, 0x00241f20, 0x002d262a, 0x00423a41,
- 0x00505b4f, 0x00616a62, 0x00777979, 0x00847f86, 0x00807983, 0x00736c75, 0x00534d53, 0x003a3839, 0x003e3936, 0x0046423d, 0x00414135, 0x003e3f2d, 0x00535048, 0x0073686c, 0x00968992, 0x00b6a8ae,
- 0x00ccbfb9, 0x00ccc3b8, 0x00ada79e, 0x006a675f, 0x002c2927, 0x00221d13, 0x00251c0d, 0x00312515, 0x00492f19, 0x00573b20, 0x006a4928, 0x00744f2b, 0x007f5935, 0x00845d3b, 0x008c6644, 0x00916b49,
- 0x00826244, 0x00795e40, 0x006d5540, 0x00574734, 0x003a3029, 0x00221e15, 0x0014110d, 0x00080704, 0x00040000, 0x00040001, 0x00020002, 0x00000002, 0x00000104, 0x00000102, 0x00000101, 0x00040201,
- 0x00030200, 0x00010200, 0x00030301, 0x00010100, 0x00020200, 0x00030000, 0x007f7b7e, 0x00edeef3, 0x00f8fcff, 0x00f7fdfd, 0x00fcfffb, 0x00fbfdf1, 0x00b5a99f, 0x0031251e, 0x00120204, 0x0010030e,
- 0x00100d07, 0x000f0d07, 0x000e0b06, 0x00100d09, 0x000e0b09, 0x000a0706, 0x000b0808, 0x000a0808, 0x000c070f, 0x000b070d, 0x000b070b, 0x00090909, 0x00090a09, 0x000a0a09, 0x000b0b0b, 0x000b0c0d,
- 0x000d0b0c, 0x000c0b0a, 0x000b0a09, 0x000c0b09, 0x00090807, 0x000a0907, 0x00090806, 0x000a0908, 0x000b0a09, 0x000b0a09, 0x000b0b09, 0x000b0b08, 0x000d0d09, 0x000e0f0b, 0x000e100d, 0x000e100d,
- 0x000b0e07, 0x000d0e07, 0x00100f09, 0x00131009, 0x00161109, 0x00191309, 0x00171206, 0x00191407, 0x001a1107, 0x001b1106, 0x001a1a0a, 0x00051c04, 0x00071504, 0x0008180e, 0x00091b1a, 0x0008192b,
- 0x002f4c76, 0x00698ece, 0x00678fe6, 0x004a7bde, 0x003c72e8, 0x00377bd1, 0x003375c5, 0x003d77ca, 0x004475c4, 0x007099dc, 0x00badefb, 0x00b3d2f0, 0x00b0c2e2, 0x00c2cdf3, 0x00b8bdeb, 0x008788c0,
- 0x006782b3, 0x006681b3, 0x005f79a8, 0x002d4870, 0x00060f26, 0x0004070f, 0x00040401, 0x00110900, 0x000d0a04, 0x00121711, 0x0013140c, 0x001f1605, 0x001f170b, 0x001d1608, 0x001d140a, 0x001d130b,
- 0x001a150d, 0x0018130d, 0x0015100d, 0x00110e0c, 0x000f0c0a, 0x000d0c08, 0x000b0c05, 0x00080b02, 0x000c0a05, 0x00111009, 0x00131208, 0x00131204, 0x00151303, 0x00171404, 0x00171506, 0x00181508,
- 0x00120f02, 0x000f0b00, 0x000d0901, 0x0028251f, 0x00827e7b, 0x00999795, 0x00908f8e, 0x008e8e8e, 0x00828380, 0x007b7c77, 0x0039383b, 0x00140e21, 0x000d0816, 0x00080107, 0x00070101, 0x00090405,
- 0x00040403, 0x00030902, 0x00060f09, 0x000d141d, 0x00142135, 0x0023273c, 0x00363543, 0x00403f49, 0x004a4b40, 0x00585747, 0x00666755, 0x00717762, 0x00878a85, 0x00949799, 0x00a2a5b3, 0x00aaafc3,
- 0x00c0c0bc, 0x00cbcecd, 0x00dddfe1, 0x00e7edee, 0x00eef2f2, 0x00e9f1ee, 0x00edf3f1, 0x00f3f8f8, 0x00fafafb, 0x00fcfafa, 0x00f9fcfa, 0x00f5fdf8, 0x00f9fffb, 0x00f9fdfd, 0x00fafefe, 0x00fdfefc,
- 0x00f4fcfb, 0x00f6fdfe, 0x00f7feff, 0x00f6fdfd, 0x00f7fffd, 0x00f6fdfa, 0x00f6fdfb, 0x00f5fcf7, 0x00fbfbf8, 0x00fffffb, 0x00fcfbf6, 0x00fbfaf4, 0x00fdfaf6, 0x00fdfaf7, 0x00fffdfb, 0x00fdfafa,
- 0x00fafcf7, 0x00fafbf6, 0x00fcfaf8, 0x00fefdfb, 0x00fefcfa, 0x00fefbfa, 0x00fdfbfa, 0x00fcfcfa, 0x00fbf9f7, 0x00faf8f5, 0x00f9f5f0, 0x00f6eee0, 0x00ede1d3, 0x00ded2c1, 0x00cec2b1, 0x00cabca5,
- 0x00c6bb99, 0x00cabf99, 0x00c8bb95, 0x00bdae88, 0x00b2a378, 0x00a89b65, 0x00a79a5d, 0x00a39256, 0x00a48f55, 0x00a38f53, 0x00927e48, 0x008e804f, 0x00fefae1, 0x00fffef3, 0x00fef8f8, 0x00fffcff,
- 0x00f8f9fc, 0x00f2f4f6, 0x00f4f7f6, 0x00f3f5f2, 0x00f2f6f7, 0x00f4f6fa, 0x00f4f7ff, 0x00f6f6ff, 0x00f2f2fc, 0x00ebecf3, 0x00e9e7f4, 0x00ece8fe, 0x00f8f1fa, 0x00fdf6f4, 0x00d7d3d2, 0x00878890,
- 0x002d4570, 0x00224383, 0x00244b97, 0x00204b9d, 0x00244f9e, 0x00254d9e, 0x001c438d, 0x00183876, 0x00182c52, 0x00142841, 0x00102034, 0x00182c42, 0x004c6a96, 0x006285ca, 0x005f8ae0, 0x005b8df0,
- 0x00538ed9, 0x004d80d8, 0x004c7bd9, 0x004773d5, 0x004e77c5, 0x007c9fd3, 0x00c6e4f8, 0x00d7eef8, 0x00e3edfa, 0x00edeffd, 0x00e6ebfe, 0x00ccdbf9, 0x00b3c8ef, 0x0097b1e3, 0x00789bd4, 0x00658ccb,
- 0x005987d2, 0x005485d3, 0x005081d7, 0x004f83d8, 0x005185dc, 0x005487e0, 0x005989e2, 0x005589db, 0x005586d9, 0x005486dd, 0x005284e0, 0x004f7fe2, 0x005282e5, 0x005484df, 0x005385d6, 0x005083cd,
- 0x005381de, 0x005b87e0, 0x00658de1, 0x007599e3, 0x008faeea, 0x00a8bef0, 0x00c8d6f9, 0x00dee7f7, 0x00f0f4f8, 0x00f4faf9, 0x00f2f9f6, 0x00f6fcfe, 0x00d7e5f6, 0x0095a7de, 0x004f68b3, 0x003e61bf,
- 0x00325bc8, 0x00335ec8, 0x003763c7, 0x003c68c0, 0x004771c1, 0x003d67c1, 0x003560c0, 0x003a63c3, 0x004c75d3, 0x005680de, 0x005982e0, 0x00507ad7, 0x004672cf, 0x00426ecb, 0x00406cc9, 0x003c68c5,
- 0x00446bc7, 0x00486dc6, 0x004063b9, 0x003252a5, 0x00274395, 0x00294696, 0x002c4c9d, 0x003555a9, 0x004266bd, 0x003f67c1, 0x00385fb9, 0x002e50a7, 0x00274292, 0x00243a81, 0x001b2e6b, 0x001f2f61,
- 0x005b6488, 0x00a6aec9, 0x00d3d9ec, 0x00d7dde7, 0x00d1d8df, 0x00cdd1d1, 0x00c7c8c8, 0x00c6c5c5, 0x00c2c2c2, 0x00c9c8c9, 0x00d9d6d8, 0x00eae8e9, 0x00fefdff, 0x00fbfbfc, 0x00fbfdfc, 0x00fbfcfe,
- 0x00f6f8f1, 0x00b5b6b4, 0x0056585c, 0x00464751, 0x002d2c3d, 0x00333349, 0x0031344c, 0x0030334f, 0x002c324c, 0x0031374f, 0x003a425d, 0x003a4760, 0x00404a64, 0x00444e60, 0x00565d75, 0x00505575,
- 0x0033385d, 0x00313157, 0x00393a5a, 0x003c3d52, 0x0053585b, 0x006d583c, 0x00633f17, 0x005d3a0e, 0x0066420f, 0x0068480e, 0x00735519, 0x0077581e, 0x007c5a25, 0x007b5828, 0x00785428, 0x00745125,
- 0x006f4e1a, 0x006e4c19, 0x00704e1b, 0x006f4d1a, 0x00704e1c, 0x006a4815, 0x006c4917, 0x006d4b18, 0x006a4816, 0x006a4816, 0x006c4c16, 0x00644a16, 0x00583e20, 0x00442f20, 0x0033211f, 0x0032272a,
- 0x00201a1b, 0x00070606, 0x00373634, 0x005a5959, 0x0068636a, 0x00b2acb3, 0x00958d93, 0x005f575f, 0x00847885, 0x005c4d4f, 0x00423225, 0x00655233, 0x007d6131, 0x0081612d, 0x0087622e, 0x00885e2c,
- 0x00856637, 0x009d7e50, 0x00a6885c, 0x00927548, 0x00816133, 0x007e5e30, 0x00866538, 0x00856337, 0x00826234, 0x00846434, 0x00826237, 0x0081613a, 0x00805f39, 0x0094744a, 0x00c0a074, 0x00bb9b6b,
- 0x008f713f, 0x0082652f, 0x00795b23, 0x007a5c22, 0x00785a20, 0x007c5b24, 0x00835f2a, 0x0087652f, 0x00886632, 0x0085632d, 0x00806028, 0x007f5f28, 0x00825f2a, 0x00815e2a, 0x007f5e29, 0x007d5b26,
- 0x007c5b23, 0x007a5921, 0x0077551c, 0x00755417, 0x00795a1f, 0x007d6023, 0x00826429, 0x007f5f27, 0x0074551c, 0x006f4e17, 0x00675526, 0x00535f40, 0x0043484e, 0x0036375a, 0x00323362, 0x00474778,
- 0x00989dab, 0x00c2c8cd, 0x00c2c8ca, 0x008a8f98, 0x003f415e, 0x00252e41, 0x00313b4c, 0x004b516d, 0x006d7196, 0x008689a5, 0x00a5a6bc, 0x00d0d3d6, 0x00fcfdf6, 0x00fefdf5, 0x00fefcf5, 0x00fbf9f6,
- 0x00f7f3f9, 0x00b9b4b7, 0x00535249, 0x0073725b, 0x00a79e7b, 0x00bdab85, 0x00c9b38e, 0x00c9b28e, 0x00b5a78c, 0x00868269, 0x00474432, 0x002c2212, 0x001f1506, 0x00211403, 0x0036230c, 0x00664d2e,
- 0x0082623c, 0x005d3e1c, 0x00351b01, 0x002c1c08, 0x003f3d32, 0x005e5245, 0x00534030, 0x003e2e1b, 0x004e3d28, 0x006d6045, 0x009a8e71, 0x00beb393, 0x00cec4a2, 0x00cdc5a1, 0x00ccc69d, 0x00cdc7a0,
- 0x00ddc494, 0x00d8c195, 0x00cab58f, 0x00c7b799, 0x00bab39f, 0x007f7d6e, 0x002b2d25, 0x000d0e0c, 0x000c0e11, 0x00191a1f, 0x0017191e, 0x000a0e14, 0x000d1115, 0x0015191a, 0x001b201a, 0x0020251b,
- 0x00252920, 0x001f2216, 0x001c1d16, 0x00191815, 0x00191818, 0x00271b1e, 0x002f2723, 0x00272c1d, 0x001d3027, 0x001c3040, 0x0016283d, 0x000c1f31, 0x00192722, 0x00283a37, 0x005b6d7d, 0x0098abd5,
- 0x00b7bac0, 0x00a4a3a9, 0x009b999a, 0x00aea9a7, 0x00c9c0bd, 0x009d9893, 0x003f3d37, 0x0021211c, 0x00222b28, 0x00545e5f, 0x0095a39b, 0x0098b2a1, 0x00768787, 0x00586673, 0x00465062, 0x00303249,
- 0x0023272f, 0x002a2e2b, 0x0040443a, 0x005a584e, 0x006e6d64, 0x0074766b, 0x00939686, 0x00b1aa92, 0x00cdbb9e, 0x00c7b19a, 0x00d4c4af, 0x00f8f3e6, 0x00fdfdfc, 0x00fafcfd, 0x00f9fdfc, 0x00fafcfd,
- 0x00d2c7be, 0x006b5c50, 0x003e2b1e, 0x00453020, 0x004b3220, 0x004b3421, 0x004a3425, 0x00412f24, 0x00342726, 0x002b2325, 0x00292525, 0x00282621, 0x00312c27, 0x00372e28, 0x003d2e25, 0x00402c23,
- 0x004b2a20, 0x004f2b1a, 0x005a3119, 0x0065351b, 0x00703d20, 0x005c546b, 0x004f5a80, 0x00323948, 0x004b4858, 0x00494869, 0x00212b55, 0x00061847, 0x00021739, 0x00092754, 0x00183072, 0x001c2d8c,
- 0x000e1542, 0x00110a19, 0x003f2f44, 0x00544686, 0x002b48c6, 0x00123f9e, 0x000a327a, 0x001b2a65, 0x00352a79, 0x002f3172, 0x00343861, 0x0042474c, 0x001c203e, 0x00050939, 0x000c104c, 0x001c2265,
- 0x0032386f, 0x00333866, 0x000a0f32, 0x0010142d, 0x00111229, 0x000b0b1f, 0x00060715, 0x00040412, 0x0005021c, 0x0002052c, 0x00010c41, 0x00001257, 0x0003155f, 0x0004184f, 0x00485578, 0x00768090,
- 0x002e423f, 0x00071a3a, 0x000f2763, 0x001b3590, 0x00415cad, 0x005a739e, 0x007a8e90, 0x008e966d, 0x00aa9752, 0x00bb9c52, 0x00b2954b, 0x00a79c54, 0x00a08e4f, 0x00947c47, 0x007d6538, 0x00604f28,
- 0x00413f22, 0x0031331f, 0x0027261b, 0x00181410, 0x0023161c, 0x003a2f2d, 0x006e5a57, 0x0096716c, 0x009e6d67, 0x009c726f, 0x00d2b6b4, 0x00f9f3f4, 0x00f5feff, 0x00f3fdfc, 0x00fcfdf9, 0x00fffef3,
- 0x00cfd2da, 0x0091949e, 0x00898c95, 0x009497a2, 0x00a2a4b5, 0x00a5a6b9, 0x00a4a5b9, 0x009fa1b6, 0x009291ae, 0x00807f9b, 0x006c6c90, 0x004f598a, 0x00434b88, 0x003c4685, 0x003b4287, 0x0051569c,
- 0x007079b4, 0x007378a3, 0x00a2a2bf, 0x00e6e7ef, 0x00fdfdfb, 0x00fbfdff, 0x00f8fbfd, 0x00fdfdff, 0x00d6cdc5, 0x00796c5e, 0x00503c2a, 0x005d432c, 0x0067492e, 0x006b4a2e, 0x006b492d, 0x00614020,
- 0x004b3028, 0x003f271f, 0x002f1c15, 0x0020150f, 0x00100c07, 0x000a0a06, 0x000b0b08, 0x000c0b07, 0x00110b0a, 0x00150907, 0x00130b09, 0x000b0e0b, 0x00090a09, 0x00080704, 0x000d0a05, 0x00100b08,
- 0x001f180e, 0x00272015, 0x00342a20, 0x003d3227, 0x004a3d31, 0x00534636, 0x005c4c38, 0x0063533c, 0x006d5541, 0x006c5540, 0x00675444, 0x0061534c, 0x004b475a, 0x00383e61, 0x002a3665, 0x0022346e,
- 0x00273759, 0x0036456d, 0x002d3e6c, 0x002b3e6e, 0x002f3f74, 0x0033406b, 0x00292f4d, 0x00292636, 0x0033271b, 0x00392816, 0x004e391a, 0x00634a23, 0x00624c2a, 0x0057462a, 0x0044381f, 0x002c2411,
- 0x00160f07, 0x00100700, 0x002c1f16, 0x00594d43, 0x00b09d94, 0x00bbab9e, 0x00b1a295, 0x009f9485, 0x008f867c, 0x00777268, 0x004b4b40, 0x00282a20, 0x001d1b19, 0x00211e1f, 0x00282528, 0x003d373e,
- 0x004b534c, 0x005b605a, 0x006e6f6d, 0x00767274, 0x006a6166, 0x0051474c, 0x0033292b, 0x002c2222, 0x00473f36, 0x005b5547, 0x00565544, 0x003f402f, 0x00322d2a, 0x0041383e, 0x0062575f, 0x0083787d,
- 0x00b4a8a0, 0x00ccc4b8, 0x00c5bfb5, 0x00939189, 0x003f3c3d, 0x00231d17, 0x00241a0e, 0x002c2314, 0x00452f1c, 0x00553b23, 0x00694b2c, 0x0072502f, 0x00785333, 0x007a5637, 0x007c593b, 0x00836042,
- 0x007c5e40, 0x00755a3e, 0x0068503b, 0x00544332, 0x00392f28, 0x0026211c, 0x00191513, 0x000e0b09, 0x00070304, 0x00060103, 0x00020003, 0x00010104, 0x00040305, 0x00030303, 0x00050402, 0x000a0704,
- 0x000d0b05, 0x000d0d05, 0x000c0b05, 0x00080802, 0x00060500, 0x000a0201, 0x00847b7f, 0x00eeeef3, 0x00f9fdfe, 0x00f6fcfd, 0x00fbfefc, 0x00fdfef1, 0x00bcaea1, 0x003c2f27, 0x00130605, 0x000b030a,
- 0x000e0d05, 0x000e0d06, 0x000c0b05, 0x000b0906, 0x000c0909, 0x000a0809, 0x00090709, 0x000a080a, 0x000a060c, 0x000a070b, 0x000a070a, 0x00080809, 0x00090909, 0x000b0a0a, 0x000b0b0b, 0x000b0c0c,
- 0x000d0c0d, 0x000c0c0b, 0x000b0a0b, 0x000a090b, 0x000a090b, 0x00090907, 0x00090905, 0x000a0907, 0x000a0b09, 0x000b0b09, 0x000b0b08, 0x000a0c08, 0x000d0c09, 0x000e0e0b, 0x000f100a, 0x0010100a,
- 0x000e0e08, 0x000e0d07, 0x00110f09, 0x00120f08, 0x0017120a, 0x001c160d, 0x0019150c, 0x001c1710, 0x00191717, 0x0012120e, 0x000c121c, 0x000e2138, 0x00304258, 0x00384d64, 0x00304967, 0x00325072,
- 0x006185b2, 0x0076a1d9, 0x00588acb, 0x003d75c0, 0x004181d3, 0x003f80d0, 0x003575c7, 0x003a75c8, 0x00487bc9, 0x00628ed4, 0x0084aade, 0x0087a7d4, 0x00b9d0ef, 0x00cbe2fc, 0x009dacdd, 0x00737bb9,
- 0x00436aa9, 0x003b63a2, 0x004f7ab4, 0x00547aac, 0x001f3553, 0x00030d19, 0x00060303, 0x00120b00, 0x00120d01, 0x0016170f, 0x0016140c, 0x00201809, 0x00221a0d, 0x0021190c, 0x001f170d, 0x001d160c,
- 0x001b1610, 0x001a1511, 0x00171310, 0x00120f0e, 0x00100f0e, 0x000f100c, 0x000f1009, 0x000e0e07, 0x00110e09, 0x0014140b, 0x0017170c, 0x0018180a, 0x001c1a0b, 0x001d190a, 0x001e190a, 0x001f1a0b,
- 0x00191406, 0x00181406, 0x00121005, 0x00313028, 0x009e9997, 0x00cbc7c7, 0x00c2c2c0, 0x00bfc0bd, 0x00b9b9b3, 0x00aaada5, 0x00585957, 0x001a161f, 0x000b090b, 0x00030002, 0x00050202, 0x00020200,
- 0x00000305, 0x0000040c, 0x00020918, 0x0006102b, 0x000f1f43, 0x00181f43, 0x00151934, 0x000a1429, 0x0008111c, 0x000a0f15, 0x000b0e0f, 0x000e1311, 0x00181c1e, 0x001c2125, 0x002a2c33, 0x003a3741,
- 0x00444342, 0x004e5050, 0x00636567, 0x00767b7d, 0x0083898e, 0x00878f92, 0x00989e9e, 0x00aaacad, 0x00c0bdbd, 0x00cdcac8, 0x00dad7d4, 0x00e2e3dd, 0x00eeece6, 0x00edede7, 0x00eff1ee, 0x00f4f5f4,
- 0x00fafbf7, 0x00fbfdfa, 0x00f9fbf8, 0x00f7fbf8, 0x00fbfdfd, 0x00f8fffc, 0x00f9fffd, 0x00fbfaf9, 0x00fefefc, 0x00fffefd, 0x00fbfaf7, 0x00fffefa, 0x00fffbfa, 0x00fefaf8, 0x00fefcfa, 0x00fefcfb,
- 0x00fffeff, 0x00fcfcfa, 0x00fcfbfc, 0x00fefdff, 0x00fefdfe, 0x00fbfbfc, 0x00fdfcfe, 0x00fdfcfc, 0x00fcfcfb, 0x00fdfefe, 0x00fcfdfd, 0x00fefcf9, 0x00fffbf6, 0x00fefcf5, 0x00fdfaf1, 0x00fffaef,
- 0x00fdfce9, 0x00fefbe5, 0x00f9f4dd, 0x00f1ebd1, 0x00e8e3c4, 0x00e2dcbd, 0x00dfd8b9, 0x00dcd1ae, 0x00dbc8a0, 0x00cebe95, 0x00b8a481, 0x00a69977, 0x00fdf7e5, 0x00fdfcf3, 0x00fffaf9, 0x00fefdff,
- 0x00fdfaff, 0x00f4f3fb, 0x00f4f5fa, 0x00f3f4f6, 0x00f2f7f5, 0x00f5f7fb, 0x00f3f7f9, 0x00f4f6f7, 0x00f3f2f5, 0x00edefec, 0x00e6ebed, 0x00ebebfc, 0x00f7f4f7, 0x00fcf5f5, 0x00b9b8bd, 0x00525666,
- 0x00253973, 0x002c4d97, 0x002d56a6, 0x00254ea3, 0x0025519e, 0x002b57a8, 0x002752a1, 0x00254a93, 0x00213a73, 0x001a3160, 0x00253c67, 0x0048608e, 0x006b8bc9, 0x00698ddd, 0x005c89e1, 0x005183e4,
- 0x005586de, 0x004b77d7, 0x00527bdd, 0x004e73d2, 0x006987d1, 0x00adc8f5, 0x00dcf6fd, 0x00dff4fc, 0x00e7f4ff, 0x00cdd7f6, 0x0094a4d0, 0x007694c9, 0x006789c5, 0x005d85c6, 0x005782c6, 0x005683d0,
- 0x005785db, 0x005385dc, 0x005284dc, 0x005386dc, 0x00598be5, 0x00568be3, 0x00558cde, 0x00518cd6, 0x005587d9, 0x005487dd, 0x005588e6, 0x005383ed, 0x004b7ae6, 0x004979dd, 0x004e80da, 0x005186d7,
- 0x004a80e6, 0x004e7ee2, 0x004d79dd, 0x005174d6, 0x005e75d3, 0x006778d0, 0x007486d2, 0x008999d8, 0x00acbaec, 0x00c7d7ff, 0x00dae9fd, 0x00e8f1fe, 0x00eaf9fb, 0x00c3d7fd, 0x006983c7, 0x003b5fb0,
- 0x00385ac0, 0x003357bb, 0x003a60be, 0x004267bd, 0x004166b6, 0x00375ebc, 0x003b66c4, 0x004c77d1, 0x005c86e7, 0x005a83e3, 0x004e77d6, 0x00446ecb, 0x003f6bc6, 0x003c69c4, 0x003b68c3, 0x003764bf,
- 0x003557b7, 0x003354af, 0x0028489f, 0x00224195, 0x002b479b, 0x002f4d9f, 0x002f51a4, 0x003659ae, 0x004368c1, 0x003d65c1, 0x002e55ab, 0x0022418d, 0x0022387c, 0x001e2f6d, 0x0025336b, 0x0055628f,
- 0x00adafcf, 0x00d6daf3, 0x00d2d7e6, 0x00d1d5e0, 0x00d3d9df, 0x00cdd0d1, 0x00c7c8c5, 0x00c3c3c3, 0x00c4c1c3, 0x00c5c2c5, 0x00d6d4d6, 0x00eeefee, 0x00ffffff, 0x00fefcfd, 0x00fafcfb, 0x00fbfcfd,
- 0x00f3f2f0, 0x00aaacad, 0x00585a60, 0x0042434d, 0x002c2d3d, 0x003d3d50, 0x0052556a, 0x0063697f, 0x00797a97, 0x00868aa7, 0x00989db6, 0x00a0a6bf, 0x00a3aab8, 0x00adb6c5, 0x00bcc5d4, 0x00a5acc0,
- 0x004f5074, 0x00282954, 0x002f3456, 0x00333757, 0x00454a5d, 0x006a5b48, 0x006a5125, 0x005f4617, 0x005f3d07, 0x005f3d02, 0x006d4b0e, 0x007f5a1e, 0x00866229, 0x00845e2e, 0x0079552e, 0x0074512d,
- 0x00755221, 0x00704e1c, 0x006d4b19, 0x006f4d1b, 0x006f4c1a, 0x00694613, 0x00654310, 0x0063420f, 0x00664212, 0x00643f0f, 0x005c3b0b, 0x00543a0a, 0x00533a20, 0x003b2616, 0x00130101, 0x00110706,
- 0x00100709, 0x00070405, 0x000a0806, 0x00201d1c, 0x005c565b, 0x00aea8aa, 0x00a9a0a1, 0x00534a53, 0x00453643, 0x00413033, 0x003e2d20, 0x005e4a2d, 0x00725526, 0x0071521e, 0x0074511b, 0x007c5521,
- 0x00947546, 0x00b39264, 0x00ad8d5f, 0x00957747, 0x00866636, 0x00886938, 0x00967747, 0x009d7c4c, 0x00a68257, 0x00aa8a5b, 0x00a7865a, 0x00a7865d, 0x00b4936a, 0x00c0a075, 0x00b69568, 0x00927343,
- 0x007d5c2c, 0x007e5f2b, 0x007b5c24, 0x00785a21, 0x00795a20, 0x007a5923, 0x007d5b25, 0x007e5f28, 0x00825d2d, 0x00805b29, 0x00795821, 0x0075551d, 0x0076531e, 0x00785621, 0x00785a22, 0x0077581f,
- 0x00855b2a, 0x00855d2a, 0x00805d22, 0x007e5e21, 0x007d5e1e, 0x007f5f23, 0x007e5f21, 0x0076591d, 0x006f4f1a, 0x006e4d19, 0x0066552e, 0x004e574a, 0x00383b4d, 0x0034355a, 0x0030315b, 0x005b5b81,
- 0x00c4c7d2, 0x00e7efef, 0x00ced8d3, 0x0090999c, 0x006e708b, 0x00757d8c, 0x0098a4af, 0x00c0c9df, 0x00d2d6f5, 0x00c4c5e0, 0x00bbbbce, 0x00d6d9dd, 0x00fbfcf6, 0x00fffefa, 0x00fafaf2, 0x00fcfbfa,
- 0x00faf4fe, 0x00b6aeb2, 0x004b4339, 0x006a5f45, 0x009c8460, 0x00bb9773, 0x00b9926f, 0x009e7858, 0x00836c53, 0x006b664c, 0x004a472d, 0x003d3119, 0x00352c13, 0x00281f0a, 0x0032250e, 0x0056452c,
- 0x00755b42, 0x004a2e1b, 0x002a0f01, 0x002b1509, 0x003f2f28, 0x0044352b, 0x00332516, 0x0038291a, 0x00453325, 0x004f422e, 0x00776b54, 0x00a2977a, 0x00bdb092, 0x00bcb090, 0x00b7ae88, 0x00b6af88,
- 0x00cdac80, 0x00cfb38a, 0x00c4ab86, 0x00c1ae91, 0x008d826e, 0x004b453b, 0x00161411, 0x000d0b0a, 0x000d0b12, 0x0016161d, 0x00121318, 0x000c0d13, 0x00090a0d, 0x00131314, 0x00161712, 0x00141611,
- 0x001f211b, 0x001f1d1c, 0x001c1b19, 0x001b1b19, 0x001f1f1e, 0x00292023, 0x00221f1b, 0x00141e0a, 0x00061a18, 0x0003162d, 0x000a2043, 0x00273e5e, 0x005e757a, 0x0073919c, 0x007e9cba, 0x008aace0,
- 0x00a6bbde, 0x00afc1e0, 0x00b0bdd0, 0x00b7becc, 0x00b5b1b3, 0x00716c6a, 0x0028221d, 0x0023221e, 0x00141715, 0x00151d1e, 0x003e4a45, 0x0043594c, 0x003d4c54, 0x00374150, 0x0033384d, 0x00272b3e,
- 0x0024232d, 0x002c2b29, 0x003a3c32, 0x0049483d, 0x00554f47, 0x00575648, 0x006c6d5a, 0x00837962, 0x00ad9475, 0x00b29a84, 0x00c8b9a5, 0x00f6ebe0, 0x00fefcfc, 0x00fdfcfc, 0x00fcfffc, 0x00fcfdfc,
- 0x00e2d0c7, 0x007b665b, 0x003f2a1c, 0x00402b19, 0x00412715, 0x00402a18, 0x003c281b, 0x00312219, 0x002a1f20, 0x00231e24, 0x00202023, 0x00232522, 0x002d2c2a, 0x00352e2c, 0x003a2d26, 0x00392923,
- 0x00442722, 0x004c2b22, 0x00543224, 0x005b3421, 0x006e442f, 0x00655f7d, 0x004a557d, 0x00333c4b, 0x006b6979, 0x004b496d, 0x00181f4d, 0x000c1c52, 0x0000153d, 0x00062156, 0x00142d71, 0x00122483,
- 0x000e2054, 0x000a0b28, 0x00191a3f, 0x00353682, 0x002850d2, 0x001a4eb7, 0x00073a8e, 0x000a236c, 0x00151071, 0x00070f65, 0x00030e47, 0x00111829, 0x0003072d, 0x00000135, 0x00050c48, 0x00212b6c,
- 0x0050588e, 0x00444f75, 0x0009132e, 0x000e1627, 0x00111624, 0x00050616, 0x00030315, 0x00040616, 0x000c0922, 0x000a0e36, 0x0007154b, 0x0005175f, 0x00031a60, 0x000c1d51, 0x00485670, 0x00676e78,
- 0x00262a3d, 0x00111a49, 0x00162670, 0x000f278b, 0x00193c99, 0x00385e92, 0x00668799, 0x007f9880, 0x009a9a62, 0x00ac9e60, 0x00ab9f5c, 0x00a4a15b, 0x00a49757, 0x009d8a51, 0x008a7a41, 0x00807139,
- 0x006f673a, 0x00635d39, 0x0051492e, 0x00433426, 0x00482e2d, 0x00664242, 0x008c5e61, 0x009f6463, 0x00994f4e, 0x00955959, 0x00d2aaac, 0x00faeff0, 0x00f8fcfe, 0x00f7fdfb, 0x00fdfdfa, 0x00fbfdf3,
- 0x00e6e3eb, 0x00cac8d1, 0x00c9c9d0, 0x00c9cad2, 0x00d3d4e2, 0x00d7d8e8, 0x00dedfee, 0x00e3e3f5, 0x00e9e4fa, 0x00e1dff7, 0x00d6d9f1, 0x00c6d0f0, 0x00bcc4e9, 0x00b6bde8, 0x00acb5de, 0x00acb5de,
- 0x00bec3eb, 0x00d0d5ef, 0x00dfdef0, 0x00edecf2, 0x00fdfbfa, 0x00fcfdff, 0x00f9fcfb, 0x00fafbf7, 0x00dbcdc9, 0x00807063, 0x00594430, 0x00694d34, 0x00755437, 0x00755234, 0x006f4d30, 0x00624322,
- 0x00593b33, 0x00493026, 0x00342219, 0x00241912, 0x00110e08, 0x000b0a06, 0x000b0a06, 0x000b0905, 0x00140a0b, 0x00180808, 0x00140b08, 0x000b0f0a, 0x00070a07, 0x00060803, 0x00080a03, 0x000a0a06,
- 0x0017120f, 0x001d1913, 0x0029231c, 0x00322b23, 0x003d352d, 0x00463d33, 0x004f4335, 0x00534836, 0x00604d3c, 0x005f4b36, 0x005d4a38, 0x00645243, 0x00706468, 0x006d6978, 0x003e4156, 0x001c2342,
- 0x00594544, 0x007c6c6f, 0x00625961, 0x00534f58, 0x003b394b, 0x002b2a36, 0x001f1c21, 0x00241f18, 0x0041301b, 0x00553f22, 0x00675028, 0x0078582a, 0x00785b35, 0x006f5734, 0x006a5b38, 0x00564931,
- 0x00342517, 0x003f3023, 0x00564537, 0x007c6f61, 0x00c0b0a5, 0x00bfb0a2, 0x00b4a599, 0x00a69b8c, 0x009b8f86, 0x00847e75, 0x0059584f, 0x0032322a, 0x001d1a18, 0x001c1a18, 0x0021201d, 0x00363130,
- 0x004b4d4a, 0x00575553, 0x0064605f, 0x00665f60, 0x00504446, 0x003b2e2c, 0x002d211b, 0x003d3026, 0x007b6f5f, 0x009e9580, 0x009d9a85, 0x006f7161, 0x00393431, 0x002e2628, 0x003d3237, 0x00534848,
- 0x00857873, 0x00aba299, 0x00bbb5ac, 0x00a9a79e, 0x00535153, 0x00241f19, 0x001e1609, 0x00261e11, 0x00422e1c, 0x004f3923, 0x005f432a, 0x0065462a, 0x0067472a, 0x0066462a, 0x0067462b, 0x006a4a2f,
- 0x006c4c30, 0x00684d34, 0x005b452f, 0x004a3b29, 0x00332b20, 0x00231f1c, 0x00151311, 0x000b0b0b, 0x000c070a, 0x00090507, 0x00040203, 0x00030302, 0x00070504, 0x00090603, 0x000b0a06, 0x0012100b,
- 0x00201814, 0x001f1b13, 0x001e1910, 0x0019180d, 0x0014140a, 0x00171009, 0x0089807e, 0x00ebeeec, 0x00f8fcff, 0x00f8fcff, 0x00f9fcf9, 0x00fdfcef, 0x00bfb2a7, 0x004b3e37, 0x0019100a, 0x00080603,
- 0x00100c09, 0x000f0c09, 0x00100e0b, 0x000a0806, 0x00060403, 0x00080607, 0x00070607, 0x00070608, 0x000c050d, 0x000c060c, 0x000b060a, 0x00080707, 0x00080807, 0x00090a08, 0x000a0a0a, 0x00090b0a,
- 0x000d0b0c, 0x000d0b0a, 0x000a0908, 0x00090808, 0x00090808, 0x00070805, 0x00060804, 0x00070906, 0x000a0a0b, 0x000c0a09, 0x000b0b08, 0x000a0c07, 0x000c0b09, 0x000c0d0b, 0x000d0f0b, 0x000e0f0b,
- 0x00100f0d, 0x00100f0b, 0x00120e08, 0x00171107, 0x00191308, 0x001c170f, 0x001c1816, 0x0019181a, 0x00121721, 0x001c2731, 0x003c4d69, 0x005269a5, 0x00637bb3, 0x00637db3, 0x005f80b3, 0x005677a8,
- 0x004f75a9, 0x004d7db1, 0x00447fb5, 0x004686bc, 0x004088c1, 0x00417fc7, 0x00417dc9, 0x003b76c5, 0x004478c7, 0x004977c2, 0x004a75b3, 0x006e98c6, 0x00b3d6f8, 0x00aacaf7, 0x0092aee6, 0x0096abef,
- 0x00669ae0, 0x004679c0, 0x00376dad, 0x005586be, 0x003f5d7f, 0x0011202e, 0x00040907, 0x00161003, 0x001a0f06, 0x001c150e, 0x001d170d, 0x00251b0d, 0x00251c0b, 0x00241d0d, 0x00201c0d, 0x001f1a10,
- 0x001e1b13, 0x001d1815, 0x001b1412, 0x00181210, 0x00161112, 0x0012110e, 0x00101108, 0x0010110a, 0x00181410, 0x001b1811, 0x001d1a10, 0x001f1c0f, 0x00231e11, 0x00262011, 0x00241f0e, 0x00231f0d,
- 0x00292314, 0x00262112, 0x00181509, 0x002e2d24, 0x00aaa7a5, 0x00ebe8e8, 0x00e8e8e6, 0x00e7e7e3, 0x00e4e3e2, 0x00d7d9d6, 0x0072746e, 0x001e1d18, 0x00020400, 0x00000100, 0x00000103, 0x00000208,
- 0x0004081b, 0x00151b38, 0x00343f64, 0x0046527f, 0x004a568a, 0x004e5a88, 0x00556489, 0x0055678d, 0x00515e85, 0x003f4f6f, 0x002d4057, 0x001f2f41, 0x0008101a, 0x0003040b, 0x00020002, 0x00030000,
- 0x00040303, 0x00020103, 0x00060809, 0x00151819, 0x001b2124, 0x00181d1e, 0x001e201f, 0x00272425, 0x00382d2d, 0x00453c3a, 0x00554b45, 0x0060594f, 0x00766d64, 0x007d786d, 0x00888378, 0x00949086,
- 0x00a39f98, 0x00aea9a5, 0x00b8b5b3, 0x00c0c2bb, 0x00d5d3cd, 0x00dee1dc, 0x00e7ede8, 0x00edf0ed, 0x00f0efed, 0x00f2f1f1, 0x00f4f6f4, 0x00f7faf6, 0x00fcfcfc, 0x00fdfdfc, 0x00fbfbfa, 0x00fcfbfb,
- 0x00fffdff, 0x00fefcfb, 0x00fefcfd, 0x00fdfcfe, 0x00fffeff, 0x00fffeff, 0x00fffeff, 0x00fdfdfc, 0x00fffefe, 0x00fefdfe, 0x00fbfbfc, 0x00fbfafc, 0x00fdfcfa, 0x00fcfaf6, 0x00fcf8f2, 0x00fdf7f3,
- 0x00fff9f5, 0x00fffaf2, 0x00fdfaf0, 0x00fdfbf0, 0x00fdfaf0, 0x00fbf9ee, 0x00fcfcf0, 0x00fbf9ec, 0x00fffced, 0x00fffce8, 0x00fef6df, 0x00f9efdb, 0x00fdfdf1, 0x00fffaf7, 0x00fbfaf6, 0x00fafbfb,
- 0x00f4f9f8, 0x00f0f3f5, 0x00f4f4fd, 0x00f4f4fc, 0x00f4f7f7, 0x00f3f7f7, 0x00f4f7f7, 0x00f7f9f7, 0x00ebf6e4, 0x00eaf0e0, 0x00e9eeea, 0x00e8eff7, 0x00f3f5f5, 0x00f7f6f8, 0x00b0b1bd, 0x004d5171,
- 0x0023427d, 0x00234c9b, 0x002552a9, 0x002554ab, 0x00295aa7, 0x002557ac, 0x002853b0, 0x002d53ab, 0x0020488b, 0x00204387, 0x00435da6, 0x00657fca, 0x006b8bdd, 0x005d85dd, 0x005c86e9, 0x005683ea,
- 0x00467dd9, 0x004473d1, 0x00557adc, 0x005975d3, 0x00889be1, 0x00ceddfd, 0x00dfeeff, 0x00d5e3ff, 0x00b2cce4, 0x00869ec6, 0x006e89c0, 0x005d85d4, 0x005b88da, 0x00598adf, 0x005687de, 0x005286e2,
- 0x004d89de, 0x004d87dd, 0x005187e1, 0x005489e1, 0x00598be1, 0x00558de4, 0x00548fe3, 0x00568fde, 0x00498ad0, 0x004c87da, 0x005488e7, 0x005082ee, 0x004f7bee, 0x004876e3, 0x004a74de, 0x004b71d5,
- 0x003277d9, 0x003b7adf, 0x004677de, 0x005172dd, 0x006579df, 0x007688e6, 0x008491ef, 0x008295ec, 0x007095d8, 0x006e9ad7, 0x008face0, 0x00b2bde1, 0x00cdddfa, 0x00d2e9fd, 0x009cb5ee, 0x005677be,
- 0x00355ca9, 0x003159a9, 0x003c5db1, 0x004763b7, 0x00445fb1, 0x003d60bd, 0x004a70d4, 0x005980e1, 0x005283dc, 0x004776d1, 0x003f6ac7, 0x003d68c5, 0x003b66c3, 0x003965c0, 0x003a64be, 0x00365fb8,
- 0x0021469a, 0x001e4098, 0x00213f97, 0x0028449b, 0x00304aa3, 0x00314da5, 0x003352ab, 0x003757b3, 0x00305db1, 0x002858ad, 0x00264d9c, 0x00253c7a, 0x001f3069, 0x00334070, 0x00666e98, 0x009fa4c9,
- 0x00c3cddd, 0x00c9d1e0, 0x00d0d5e0, 0x00d3d5df, 0x00d2d5de, 0x00d0d0d1, 0x00cacac9, 0x00c8c7c9, 0x00bfc2bf, 0x00bfc2c0, 0x00d5d6d6, 0x00f1f1f1, 0x00fefcfd, 0x00fefcfd, 0x00ffffff, 0x00ffffff,
- 0x00e3e8dd, 0x00959a94, 0x005e6062, 0x0062636b, 0x00787a85, 0x00989aaa, 0x00a6a8c0, 0x00aaadc9, 0x009fa7b7, 0x00959db0, 0x009296b0, 0x008a8ca7, 0x00737983, 0x008c9297, 0x00d1d7de, 0x00d6dee9,
- 0x00788496, 0x002c3757, 0x0029305d, 0x002c335f, 0x00343c67, 0x00554e4a, 0x006b5938, 0x0069512e, 0x00543d01, 0x00553800, 0x006b4706, 0x007f5616, 0x00845b26, 0x00805a30, 0x007b5132, 0x00784d32,
- 0x00694d13, 0x0062460d, 0x00674611, 0x006c4918, 0x006a4818, 0x00694515, 0x00684212, 0x0065400f, 0x005b3d01, 0x00533500, 0x00503004, 0x004d3208, 0x00452d13, 0x002a180b, 0x00150404, 0x00211313,
- 0x001c1a0c, 0x00141306, 0x00100d04, 0x0014150b, 0x00343230, 0x00665f5d, 0x00726566, 0x003f3136, 0x002c2321, 0x00342922, 0x00362817, 0x00544220, 0x00574012, 0x005d3f0d, 0x006b4716, 0x007c5326,
- 0x00927842, 0x00a98e58, 0x009e7f4c, 0x008a6a37, 0x008a6837, 0x008c6a39, 0x00957343, 0x00997746, 0x00947a3e, 0x00987d44, 0x00a07f51, 0x00ad8a63, 0x00bd9c72, 0x00b8976b, 0x00906c41, 0x008d683d,
- 0x007a5f25, 0x00795e24, 0x007f6028, 0x007e5e26, 0x007f612a, 0x007e5e29, 0x00815e2b, 0x00835f2d, 0x007c5e24, 0x00785a1f, 0x00765620, 0x006f4e1a, 0x006d4b16, 0x0074521c, 0x007a5721, 0x0079561f,
- 0x0077551c, 0x0079561d, 0x00836029, 0x00866429, 0x00836122, 0x00826022, 0x007f5d21, 0x0076561c, 0x006b5113, 0x006a5116, 0x00655535, 0x00464c59, 0x00343654, 0x00373860, 0x002c2c56, 0x00434663,
- 0x0075817c, 0x00a3b0a3, 0x00b2bcb5, 0x00a7adb1, 0x00aaadc4, 0x00b3bcc8, 0x00b1bcc7, 0x00a9b4c6, 0x00828da1, 0x00616979, 0x00636673, 0x00aaadb0, 0x00f8f9f2, 0x00fdfef9, 0x00fffdfc, 0x00fffdff,
- 0x00eef3f0, 0x00a2a59f, 0x00423936, 0x00645043, 0x009c7558, 0x00bc8d6b, 0x00af7b61, 0x007c4c33, 0x00433413, 0x00424222, 0x00484628, 0x00463918, 0x003b3317, 0x0027220b, 0x0026210e, 0x00393023,
- 0x00332c1d, 0x00201203, 0x00260b03, 0x0035170b, 0x004d2a20, 0x003a2a1f, 0x0032211a, 0x003a2f24, 0x00372e1a, 0x003b321b, 0x0060543d, 0x00877a61, 0x00ac9f81, 0x00ab9d7d, 0x00a89777, 0x00aa9875,
- 0x00b89965, 0x00bda070, 0x00b49870, 0x00a48e6d, 0x005f533e, 0x00271f11, 0x00130b06, 0x00160e0f, 0x00080d0a, 0x00181d1b, 0x00242428, 0x00212023, 0x00201e1f, 0x002b2825, 0x002e2d2a, 0x002a2824,
- 0x00212418, 0x001f241a, 0x00232422, 0x00232125, 0x00222323, 0x00251c1f, 0x001c1312, 0x00101409, 0x00001510, 0x00002339, 0x00314f79, 0x006482b2, 0x009abdd4, 0x00a2c8e8, 0x0095bcee, 0x007ca3f0,
- 0x0068a2da, 0x007fb4e1, 0x0097bbe5, 0x00b0c6e0, 0x00aaabb7, 0x00625d5f, 0x001f1617, 0x00221a15, 0x000e140b, 0x0009110d, 0x001d2626, 0x0019241f, 0x001d2630, 0x00222838, 0x0024253d, 0x001e1b32,
- 0x001f211f, 0x0023221c, 0x00312a21, 0x003e332a, 0x00423833, 0x00444031, 0x00514935, 0x0058472f, 0x00756238, 0x0097855f, 0x00ceb9a1, 0x00f3e8d9, 0x00fcfcf8, 0x00fdfdfd, 0x00fffeff, 0x00fffefe,
- 0x00dfd2be, 0x0081725e, 0x004b3521, 0x00482f1d, 0x00432c18, 0x00422b1d, 0x0039231b, 0x002f1d19, 0x001c1c18, 0x00191f1f, 0x001e1e27, 0x00222428, 0x0026282a, 0x002d2c2a, 0x00312729, 0x00332625,
- 0x002e2216, 0x0034221a, 0x00492c26, 0x004d2f26, 0x0065433e, 0x005f5f82, 0x00424c79, 0x004c5368, 0x00848c8d, 0x004f5570, 0x0013194d, 0x00071358, 0x00021546, 0x00001a54, 0x00112674, 0x00152086,
- 0x0000215a, 0x0000143b, 0x00051a46, 0x001d3078, 0x002255cf, 0x001b57c7, 0x000338a5, 0x00001f88, 0x00081b7f, 0x00132b7a, 0x001c2d67, 0x001c223e, 0x000b113e, 0x00070c44, 0x00060b4c, 0x00161e5a,
- 0x00304161, 0x00273d4f, 0x0010212e, 0x000a191f, 0x00010a12, 0x00000417, 0x0006051e, 0x000b091d, 0x0001081a, 0x00051031, 0x000c174c, 0x00122267, 0x0016266a, 0x001e285a, 0x00555777, 0x0063616d,
- 0x001b1929, 0x0009103b, 0x0014226c, 0x0010278e, 0x000c389f, 0x001a4996, 0x003f6b97, 0x006d929a, 0x0085a07c, 0x008b9a70, 0x00a0a573, 0x00a4a76e, 0x00a69a62, 0x00a89658, 0x00a18b4d, 0x009b8645,
- 0x00887f3d, 0x00857841, 0x0079623b, 0x006c4d36, 0x0077463d, 0x008f4b4d, 0x009f4d54, 0x009d4144, 0x00862c25, 0x008b403a, 0x00e0a4a6, 0x00fdeef2, 0x00fefcfd, 0x00fdfcfd, 0x00fffdff, 0x00fffbfb,
- 0x00f5f8f3, 0x00eef2ee, 0x00f5f6f8, 0x00efeef4, 0x00f3f2f8, 0x00f5f4fa, 0x00f9f7ff, 0x00faf9ff, 0x00f2f8f8, 0x00f1f5fb, 0x00f3f5ff, 0x00f3f7fd, 0x00f1f7fd, 0x00f2f9fc, 0x00f3fafc, 0x00f1f8f9,
- 0x00edf7f4, 0x00f0f9f8, 0x00f2f1f3, 0x00eeeaeb, 0x00fefaf8, 0x00fcfcfb, 0x00fdfafb, 0x00fffcfb, 0x00d5cfbf, 0x007f715b, 0x005c442d, 0x006e5035, 0x007b5b3d, 0x007a5839, 0x00754f30, 0x006c4728,
- 0x00563e2a, 0x00493424, 0x0039251a, 0x00261910, 0x00120d06, 0x000b0906, 0x000f0a0b, 0x00100a0c, 0x000d0900, 0x00110801, 0x00130b09, 0x000d0e0d, 0x00070907, 0x00070704, 0x000c0a09, 0x000c0d0b,
- 0x000c0f08, 0x00131610, 0x001e1e1b, 0x00242523, 0x002f302e, 0x00343334, 0x003b383a, 0x00433e3d, 0x00494430, 0x004e432b, 0x005a4631, 0x0068533d, 0x00897465, 0x008d7b6f, 0x00615049, 0x002f211f,
- 0x00755016, 0x00a98452, 0x00a6825d, 0x009a7c61, 0x00755c4a, 0x00533d2c, 0x003e2718, 0x0038220e, 0x00413204, 0x0050400f, 0x006c5220, 0x007d5821, 0x00704f1d, 0x00614318, 0x00553a16, 0x00482f12,
- 0x00534727, 0x007e7355, 0x009b8c75, 0x00b09f8c, 0x00beae9c, 0x00bba899, 0x00b8a397, 0x00ab9b8f, 0x0092907b, 0x007d7c6b, 0x005f5d52, 0x00393733, 0x001b1c18, 0x00171614, 0x00221c21, 0x00332b30,
- 0x003d4235, 0x0048483f, 0x00544e49, 0x00594e4d, 0x004e3e3b, 0x0045342d, 0x00423125, 0x00584636, 0x008b8261, 0x00ada780, 0x00b2ab90, 0x00828172, 0x00443f3b, 0x0030292b, 0x00362a2f, 0x0047393b,
- 0x006a6557, 0x008d8a79, 0x00a49f91, 0x00a09b92, 0x00605c5e, 0x002b2723, 0x0019150b, 0x00211f13, 0x002f2a12, 0x003f321a, 0x004e3823, 0x00553b27, 0x00583d28, 0x00573a26, 0x00593828, 0x005b3a29,
- 0x00533d1b, 0x004e3c1b, 0x004b3722, 0x00413322, 0x002f271e, 0x00231d17, 0x00171312, 0x00100c0e, 0x00040a03, 0x00040601, 0x00020202, 0x00050401, 0x00090605, 0x000b0806, 0x00140f0d, 0x00201615,
- 0x001e1b10, 0x00211f0f, 0x002a2315, 0x00302715, 0x002f2516, 0x0032241b, 0x009a8d89, 0x00f5eff0, 0x00f3fdf9, 0x00f3fdf7, 0x00f9fcf7, 0x00fffbf3, 0x00c1b3a8, 0x004f443a, 0x002e2220, 0x002e2829,
- 0x00161910, 0x00050701, 0x00090807, 0x000e0b09, 0x000a0504, 0x000c0709, 0x000a050b, 0x000b080c, 0x00050608, 0x00050606, 0x00070708, 0x00060607, 0x000a0909, 0x000a0809, 0x000d0a0d, 0x000d0a0c,
- 0x00050606, 0x00060606, 0x00080808, 0x00080908, 0x00070707, 0x00080806, 0x00090907, 0x00090906, 0x00070904, 0x00070a05, 0x000a0a06, 0x000b0a07, 0x000a0b08, 0x000c0d0a, 0x000f0e0d, 0x0011100e,
- 0x00041008, 0x00090e05, 0x00120f08, 0x0018100b, 0x001e130b, 0x00201814, 0x00181416, 0x00191e29, 0x002e4855, 0x004b697f, 0x006781b2, 0x006b86d7, 0x007794e1, 0x008aabeb, 0x009ebff4, 0x0081a4e2,
- 0x005b8dbf, 0x005e98c8, 0x005492c4, 0x003e81b1, 0x00357dae, 0x004585c6, 0x00568ed8, 0x005288d9, 0x00407dc6, 0x003e76bc, 0x004777ba, 0x007babe3, 0x0098c6f6, 0x006792ca, 0x006285cc, 0x007092e0,
- 0x0069abee, 0x005898dd, 0x00356eb6, 0x004479b8, 0x004f739b, 0x0028394e, 0x000f0e16, 0x001c110b, 0x00181100, 0x00181704, 0x00201a0c, 0x00251c0b, 0x00271d12, 0x00262010, 0x00271e14, 0x00251c17,
- 0x001d1a0f, 0x001b1a10, 0x001a1812, 0x00181412, 0x00161111, 0x00151210, 0x00151310, 0x0015120e, 0x00131509, 0x0017180b, 0x001f1c10, 0x00231f10, 0x00272211, 0x00292312, 0x002b2413, 0x002c2411,
- 0x00242409, 0x0022240c, 0x00191807, 0x002b281e, 0x00a6a5a0, 0x00f4f4f2, 0x00fcfafb, 0x00fcf9fb, 0x00f1f5ee, 0x00ebf2e7, 0x0088897c, 0x00212713, 0x00010400, 0x00020306, 0x00020412, 0x000f112d,
- 0x00283861, 0x003f5084, 0x004a5693, 0x00435193, 0x005b6bb1, 0x007889c3, 0x008597cf, 0x008196ce, 0x006a89c2, 0x005d81b9, 0x005c79b5, 0x00536ea0, 0x00445170, 0x00222735, 0x00070007, 0x000f0303,
- 0x00000200, 0x00000200, 0x0005090a, 0x001a1d20, 0x00242629, 0x00212122, 0x00181313, 0x00120a0b, 0x00130900, 0x001c1000, 0x00261808, 0x00352617, 0x00413223, 0x00453429, 0x004b3a31, 0x004f3f34,
- 0x004c4333, 0x00504633, 0x00584e41, 0x0061574e, 0x006f655d, 0x00736d68, 0x007f7d7d, 0x00898888, 0x0080877e, 0x00888f88, 0x00a6a5a5, 0x00b5b2b5, 0x00c5c7c9, 0x00cfd0d3, 0x00dad8de, 0x00e0e1e7,
- 0x00e5e8e6, 0x00edefee, 0x00f5f6f6, 0x00f9f9fa, 0x00fffeff, 0x00fffeff, 0x00fffdfd, 0x00fffdfd, 0x00f9fef7, 0x00fafdf7, 0x00fcfbfd, 0x00fcfdff, 0x00fdfafe, 0x00fdfcfd, 0x00fffdff, 0x00fffcff,
- 0x00fafaf8, 0x00fbf9f9, 0x00fef9fd, 0x00fcf9fd, 0x00fcfafa, 0x00fbfbfc, 0x00fefaff, 0x00fdf8ff, 0x00f5f6f4, 0x00f5f5f1, 0x00fcf7f5, 0x00fdf9f4, 0x00fbfaf7, 0x00faf9f8, 0x00fffdfd, 0x00fffdfe,
- 0x00f5faf8, 0x00f0f3f6, 0x00f5f5fe, 0x00f3f4fe, 0x00f3f4fa, 0x00f3f6fb, 0x00f4f7f9, 0x00f5f8f8, 0x00eef3f4, 0x00ededf6, 0x00e9ebf0, 0x00e4edec, 0x00edf2ed, 0x00f6f8fb, 0x00b1b8c8, 0x004d5984,
- 0x002a489c, 0x002950b2, 0x002150b0, 0x002455ae, 0x00265aa2, 0x002258a6, 0x001e53a8, 0x002051a8, 0x00254fa9, 0x003c63be, 0x006a8ceb, 0x006a8beb, 0x005a7fdf, 0x005781de, 0x005683e1, 0x005180dc,
- 0x003e7cdb, 0x004479d8, 0x004d78d2, 0x005c7cd0, 0x0099afea, 0x00bfd0fe, 0x00acbff3, 0x008ba3e1, 0x006a8fd4, 0x00557dcb, 0x005784da, 0x00588bf1, 0x00538cef, 0x00508af0, 0x004e89eb, 0x00528cf2,
- 0x004c85e2, 0x004e86e1, 0x004f84de, 0x005485de, 0x005987db, 0x00568beb, 0x00538eef, 0x00518ee3, 0x004e89d9, 0x005187df, 0x005587e3, 0x005786eb, 0x005981ea, 0x005880e1, 0x005079d2, 0x004e77c8,
- 0x004282e4, 0x005085da, 0x005482c2, 0x007191bb, 0x00aac2d1, 0x00cae1ed, 0x00d7edf9, 0x00c5e1fd, 0x007ca8ed, 0x004f7fd7, 0x004e76cd, 0x006580bf, 0x007591d3, 0x0089a9e5, 0x0096baf4, 0x006d95d8,
- 0x00365fa6, 0x00325aa6, 0x00375aac, 0x00405eb6, 0x004461bb, 0x00496dce, 0x00537cde, 0x00527ddd, 0x00416cca, 0x003a64c0, 0x003d65c0, 0x003d65bf, 0x003b61bb, 0x00385eb6, 0x002f55ab, 0x00274ca0,
- 0x00253d91, 0x00243c92, 0x00263f95, 0x002d469a, 0x002f499e, 0x002f4b9f, 0x003655a8, 0x003959af, 0x002c53a7, 0x00244ba1, 0x00214284, 0x002d4066, 0x00475575, 0x00727c9a, 0x00a7afc7, 0x00bfc5d8,
- 0x00cbcddb, 0x00cfcedb, 0x00d1d1da, 0x00d2d2da, 0x00ccced7, 0x00c8cbca, 0x00c5c8c5, 0x00c4c6c6, 0x00c4c3c4, 0x00c4c4c5, 0x00d8d7d8, 0x00f6f6f6, 0x00fdfdfd, 0x00fdfdfc, 0x00fdfefd, 0x00fcfcfb,
- 0x00d5d8d0, 0x00848681, 0x006a6c6c, 0x00777a81, 0x007c7d8a, 0x00808394, 0x0073788c, 0x0063677d, 0x004c5165, 0x003d4257, 0x002e3048, 0x002b2b44, 0x0025282f, 0x004b5050, 0x00bcc1c0, 0x00dee6e7,
- 0x009ba2b9, 0x0041496d, 0x00242c5c, 0x00282f66, 0x0028326b, 0x0032364a, 0x004c4a44, 0x005b5246, 0x005b4825, 0x005c3d11, 0x005e3601, 0x006b4004, 0x007a5113, 0x0078541d, 0x00714f20, 0x006d4f1f,
- 0x006d4b19, 0x0063420f, 0x00664311, 0x006d4917, 0x006d4c19, 0x006c4b18, 0x006a4816, 0x00674412, 0x005d3d07, 0x00523100, 0x00452300, 0x00422704, 0x00351d09, 0x001c0701, 0x001c0901, 0x002a1c0f,
- 0x0038301d, 0x003d361b, 0x00322c15, 0x00282411, 0x00241f16, 0x002f2617, 0x00271b09, 0x00170803, 0x0020120a, 0x00342418, 0x003e2c18, 0x00453310, 0x00432c00, 0x004f3404, 0x00644514, 0x00765325,
- 0x00896932, 0x008a6c34, 0x007e5f28, 0x0085662e, 0x008c6b34, 0x00896831, 0x0091713a, 0x008e7037, 0x008a6c32, 0x008c6e35, 0x008c6a38, 0x00937043, 0x00947345, 0x008d6c3d, 0x007e5c2c, 0x0080602e,
- 0x007c5c26, 0x007b5c26, 0x0082612b, 0x0087662f, 0x00866730, 0x0084652e, 0x0082612c, 0x0081612c, 0x00805e2a, 0x007c5b25, 0x00795722, 0x00704e19, 0x006d4b15, 0x0073521c, 0x007b5a25, 0x007a5922,
- 0x007b551d, 0x00795219, 0x007b551c, 0x00805c1e, 0x00846120, 0x00815f21, 0x0078591f, 0x0070531d, 0x0069531f, 0x006e572a, 0x00605041, 0x003c3b63, 0x002b2a55, 0x0031315a, 0x003a3c5a, 0x00535a69,
- 0x007d8880, 0x009ba59a, 0x00949e96, 0x007a8185, 0x0073758f, 0x006a727c, 0x00515f5f, 0x003f4a54, 0x00282d43, 0x0023293a, 0x00404450, 0x00a8acaf, 0x00fefdf8, 0x00fcfbf8, 0x00fefdfb, 0x00fbfafc,
- 0x00f1f3f2, 0x009da1a1, 0x00383e3e, 0x00515559, 0x0082767e, 0x009f8a94, 0x008f747b, 0x00624646, 0x00382c18, 0x00363619, 0x00363c22, 0x00484c44, 0x004a534e, 0x00414950, 0x003f4e56, 0x0040545f,
- 0x00213247, 0x00111b28, 0x001d181c, 0x00392319, 0x0048220a, 0x00392710, 0x00312612, 0x00352c16, 0x003a3014, 0x00423818, 0x00534726, 0x00766945, 0x00a1926a, 0x00a5966b, 0x00a8996c, 0x00a89869,
- 0x00bb985d, 0x00bf9e67, 0x00b09361, 0x00897247, 0x00413315, 0x001e1406, 0x00140a04, 0x00140d06, 0x00131107, 0x00252318, 0x002b291d, 0x00302d21, 0x003c3929, 0x003e3e2c, 0x00373825, 0x00383a26,
- 0x00393826, 0x003a3a2a, 0x00323328, 0x00282b22, 0x001d1e19, 0x001f1616, 0x000d0907, 0x00031105, 0x00001a21, 0x001b4065, 0x00688cc2, 0x0085aae6, 0x00a9d1f4, 0x00aedefe, 0x008dbefa, 0x006a9df4,
- 0x00459af0, 0x00539de5, 0x0075ade8, 0x00acd2f4, 0x00a4adbc, 0x00524f53, 0x0019110f, 0x001c110e, 0x0016120e, 0x00121212, 0x00111613, 0x000b1109, 0x00090c0d, 0x0015141c, 0x00231e26, 0x00251e21,
- 0x00211b0e, 0x00251d0b, 0x002a1e08, 0x0031210c, 0x00312213, 0x002f2510, 0x00352a12, 0x00311e01, 0x004c340d, 0x007b6641, 0x00c0ae92, 0x00ede5cf, 0x00fdfcf6, 0x00fefdf8, 0x00fffcfa, 0x00fefdfa,
- 0x00e9d9c8, 0x00958271, 0x005a412f, 0x00553b28, 0x0049321e, 0x00412c1e, 0x0034221a, 0x00261916, 0x00181b1d, 0x00161c26, 0x00171a27, 0x00191d22, 0x001a1d1f, 0x001f2020, 0x00211d1f, 0x00221c1e,
- 0x00231a1c, 0x0022151e, 0x0030242e, 0x00372939, 0x004d3e51, 0x004a4e80, 0x001e2d5a, 0x0043525d, 0x0081888d, 0x004e5173, 0x000b1049, 0x0003105b, 0x0000104f, 0x00000c52, 0x00091a6a, 0x00111e80,
- 0x000d2ea0, 0x000c286d, 0x00001938, 0x00042430, 0x0015467b, 0x002754b2, 0x001038ae, 0x001029ab, 0x004e599c, 0x00838c9a, 0x00999f95, 0x00939298, 0x00747385, 0x0064607d, 0x00494966, 0x004a4b6b,
- 0x00707584, 0x006e7179, 0x0032383c, 0x00121718, 0x0000030b, 0x0000051d, 0x00000b2a, 0x00010925, 0x00000624, 0x00000e39, 0x00051a54, 0x0010266f, 0x000d2569, 0x001e2f5f, 0x004d5773, 0x0043464e,
- 0x00131816, 0x0009162f, 0x000f265a, 0x00092b7f, 0x000a3da1, 0x001045a0, 0x001a4b94, 0x00345c91, 0x00778aa9, 0x00a1a7c1, 0x00a4a1a6, 0x009a947c, 0x00a28d68, 0x00b59869, 0x00b89459, 0x00b78d4f,
- 0x00b18847, 0x00ac7c48, 0x00915731, 0x00833f29, 0x008a3530, 0x00913233, 0x00912a2b, 0x00942425, 0x008b201a, 0x00903934, 0x00de9f9f, 0x00fdeef0, 0x00fdfbfc, 0x00fbfbfb, 0x00fcfcfa, 0x00fcfdf9,
- 0x00fbfdf7, 0x00fbfcf9, 0x00fefdfd, 0x00fbfbfb, 0x00fffeff, 0x00fdfdfd, 0x00fcfdfd, 0x00fdfdff, 0x00fcfefd, 0x00fbfcfe, 0x00fdfdff, 0x00fefffc, 0x00fdfff9, 0x00fbfef4, 0x00fafef0, 0x00f7fcec,
- 0x00f8fef0, 0x00fafef4, 0x00f2eeeb, 0x00efe6ec, 0x00fdf7fd, 0x00fcfbfe, 0x00fdfbf8, 0x00fffcf6, 0x00dacfc0, 0x0083715d, 0x005e442d, 0x00705034, 0x007f5b3b, 0x007f5a38, 0x007a5330, 0x00704a27,
- 0x005b3f2d, 0x004e3525, 0x003b2619, 0x00281b0f, 0x00131006, 0x000c0b05, 0x000d0a07, 0x000d0a07, 0x00130807, 0x00150706, 0x00140907, 0x000d0e0a, 0x000a0c09, 0x00090907, 0x000c0c0b, 0x000d100f,
- 0x000e0f0f, 0x00111615, 0x00161b1b, 0x00181f1f, 0x001e2629, 0x001f262e, 0x00242932, 0x002d2e33, 0x003d342e, 0x0048392c, 0x00503b24, 0x00705738, 0x00a3845b, 0x00af8c61, 0x00946f42, 0x0058340a,
- 0x007e4c0a, 0x00b6843c, 0x00c49350, 0x00cb9e65, 0x00be9665, 0x00b18c60, 0x009a744b, 0x00815a30, 0x0064400e, 0x006f4915, 0x008b622a, 0x008c5d20, 0x00794f14, 0x00734b16, 0x005f3c0c, 0x00624116,
- 0x0099825b, 0x00c6b28f, 0x00b3a082, 0x00b3a387, 0x00ac9f84, 0x00b0a189, 0x00ac9a86, 0x00a0927e, 0x00888171, 0x00736f63, 0x0058544c, 0x003f3e39, 0x001a1c18, 0x00171914, 0x001a1917, 0x00262423,
- 0x0035312a, 0x00423b34, 0x00483e37, 0x0055473f, 0x00645142, 0x0075604b, 0x007d674c, 0x00866f4f, 0x009c8a5f, 0x00a7986a, 0x00a09372, 0x00727061, 0x003c3733, 0x002a2424, 0x002d2323, 0x003f3330,
- 0x007b7062, 0x00978f7d, 0x009f998a, 0x00928c84, 0x00615c5f, 0x0030302a, 0x0015160b, 0x0019180d, 0x00292517, 0x00322819, 0x003b2b1e, 0x00412e21, 0x00493223, 0x004a3122, 0x00492f21, 0x00492e1f,
- 0x00452f11, 0x00443013, 0x00452f19, 0x003f2f1d, 0x0031271a, 0x00272115, 0x001b1811, 0x0012120e, 0x000a0a0c, 0x00060608, 0x00020203, 0x00030200, 0x00080400, 0x000c0903, 0x0015130a, 0x00211c14,
- 0x00221e0f, 0x002f2614, 0x003d311d, 0x004a3b23, 0x00524129, 0x0051422f, 0x00a59e8d, 0x00f3f3ea, 0x00f7fdfb, 0x00f8fefc, 0x00f9fdf8, 0x00fefdf3, 0x00bcb0a5, 0x004a4035, 0x004b443d, 0x0081807e,
- 0x007a7b79, 0x002f2f2e, 0x00050404, 0x00090806, 0x00060404, 0x00080509, 0x00070509, 0x00080706, 0x00060509, 0x00060509, 0x00070609, 0x00070707, 0x00080708, 0x00080807, 0x00080908, 0x00080908,
- 0x00080808, 0x00080707, 0x00080708, 0x00060606, 0x00050504, 0x00050604, 0x00070805, 0x00080905, 0x00060805, 0x00070906, 0x000a0a07, 0x000a0a07, 0x000a0b08, 0x000b0d08, 0x000f0e0a, 0x00100f0b,
- 0x000b0e11, 0x000f100e, 0x00100f0a, 0x0019110e, 0x001c1411, 0x0019141b, 0x00272d3c, 0x00475973, 0x005e84ab, 0x006493c4, 0x00709dcc, 0x008eb2d8, 0x00a5cbf1, 0x00b8ddfd, 0x00c3eafd, 0x0096bcf2,
- 0x006997de, 0x006393e3, 0x004d80d4, 0x002f66c0, 0x002c63c0, 0x003e74c0, 0x004d82c6, 0x00578fd7, 0x004e83d7, 0x004279c7, 0x00467fc7, 0x00679fe0, 0x006099d2, 0x004076b2, 0x003d72b3, 0x00386db4,
- 0x005079ac, 0x005a84b8, 0x00426da1, 0x00476fa0, 0x00617799, 0x004a5062, 0x001a1519, 0x00180c05, 0x00191307, 0x001d1b12, 0x001f1a10, 0x00251d0c, 0x00241c0f, 0x00241f0f, 0x00251e11, 0x00231d15,
- 0x00201b13, 0x001d1912, 0x001a1713, 0x00181412, 0x00161111, 0x00151110, 0x0016130f, 0x0018130f, 0x0019170d, 0x001d1a0e, 0x00231e12, 0x00252111, 0x002a2411, 0x002c2612, 0x002e2814, 0x002e2912,
- 0x00292610, 0x002b2a15, 0x00201e0d, 0x00292619, 0x0097978e, 0x00eff1ec, 0x00fdfefc, 0x00fdfdfd, 0x00fafcf9, 0x00fdfdfa, 0x0094998d, 0x00232e19, 0x00000202, 0x0001081c, 0x0015274e, 0x00425791,
- 0x005d76c1, 0x004b62b1, 0x00394d9b, 0x004f62ae, 0x00849be1, 0x00afc0f9, 0x00a2b6ea, 0x00879edd, 0x007092e9, 0x006b92f0, 0x006892ef, 0x007099f1, 0x007795d0, 0x00556a8d, 0x00091523, 0x00010304,
- 0x00020300, 0x00020402, 0x000e0e0f, 0x0029282a, 0x00323031, 0x00292421, 0x001e150d, 0x00271a0f, 0x00473220, 0x00563e29, 0x00573b24, 0x00583b21, 0x005a3d25, 0x00593c25, 0x00533821, 0x004c341c,
- 0x004b351f, 0x00432c18, 0x00442c18, 0x00472f1d, 0x0048311d, 0x00392a1d, 0x00271f15, 0x00201911, 0x0011110b, 0x000b0c0b, 0x0017151a, 0x00232228, 0x002b2f33, 0x0035393d, 0x00434449, 0x00515557,
- 0x00616161, 0x006e6e6e, 0x00808080, 0x008d8d8d, 0x009b9b9b, 0x00ababab, 0x00bdbdbd, 0x00cecece, 0x00e0e1e1, 0x00eaebe9, 0x00ebeded, 0x00ebf2f0, 0x00edf4f2, 0x00f1f7f7, 0x00f3f5fb, 0x00f6f7fd,
- 0x00f9fbfc, 0x00fcfafd, 0x00fffbfd, 0x00fefbfe, 0x00fefbfe, 0x00f5fafc, 0x00f2fcfb, 0x00f6fefe, 0x00f7fef9, 0x00fafffe, 0x00fafdfe, 0x00fcfdff, 0x00fbf9fa, 0x00fefcfd, 0x00fbfbfb, 0x00efeef4,
- 0x00f6fcf2, 0x00f2f6f5, 0x00f4f4fe, 0x00f3f4ff, 0x00f3f3fd, 0x00f3f6fa, 0x00f5f8fa, 0x00f4f6fa, 0x00f2f2fd, 0x00eeedf8, 0x00e8eaf5, 0x00e1eae8, 0x00eef2ef, 0x00f9fbfb, 0x00b6bcd4, 0x004f5d8e,
- 0x002749a0, 0x002754b4, 0x002555b7, 0x002458b3, 0x002b5aa3, 0x001f549b, 0x001f529b, 0x00154898, 0x002d5ab1, 0x005781db, 0x007098f7, 0x005b83e2, 0x005279d9, 0x005780dc, 0x004f7bd4, 0x004a76cf,
- 0x00367bd5, 0x00407cd5, 0x004274c8, 0x005379cb, 0x00819de5, 0x00889ee9, 0x006b84d4, 0x005976cc, 0x00557ee0, 0x005183e4, 0x005589ee, 0x00558ae5, 0x005a90f3, 0x004f87e6, 0x00548aeb, 0x005389ea,
- 0x005086e1, 0x005286de, 0x005b86dd, 0x005f8cdd, 0x005d85d0, 0x005186e9, 0x00568cf4, 0x00578eeb, 0x005688de, 0x005083d4, 0x005a8ade, 0x005886d9, 0x005d82db, 0x005c82d0, 0x00688ed4, 0x007096d7,
- 0x006294e1, 0x005b84c1, 0x007496c2, 0x00a6bdd2, 0x00e8f5f7, 0x00edfdfa, 0x00ecfcfe, 0x00cae1ee, 0x007298d5, 0x004d78ca, 0x004c77cf, 0x004e71c6, 0x004b71c4, 0x004b73c1, 0x005984cf, 0x004f7cc6,
- 0x003764b2, 0x003360ad, 0x00365db3, 0x00395ebb, 0x004566ca, 0x004d73d4, 0x004c73d3, 0x00426bc9, 0x003e62c0, 0x003b61ba, 0x003e65bb, 0x003d62b6, 0x003859ae, 0x003251a6, 0x0027479a, 0x001f4091,
- 0x00233886, 0x00273c8b, 0x00293e8e, 0x0029418f, 0x002d4795, 0x00314e9a, 0x00415ea9, 0x004865b1, 0x003856a0, 0x00294892, 0x002b457e, 0x004b5c76, 0x007e8aa3, 0x00959cb2, 0x00b6bacf, 0x00c5c8d6,
- 0x00cacad4, 0x00cdccd7, 0x00cccdd6, 0x00ccced8, 0x00cacdd8, 0x00c8c9cb, 0x00c3c4c3, 0x00c6c6c7, 0x00c5c4c6, 0x00c5c4c5, 0x00dddddd, 0x00f6f7f6, 0x00feffff, 0x00ffffff, 0x00fefefd, 0x00fdfcfb,
- 0x00ced1ca, 0x00787a76, 0x00707273, 0x00777981, 0x004a4b5a, 0x002f3144, 0x00262a3f, 0x0024273e, 0x00252843, 0x00252941, 0x00272841, 0x00302f4a, 0x004f515d, 0x00868a8d, 0x00cdd2d3, 0x00cfd6d9,
- 0x008186a1, 0x00343d61, 0x00222b5c, 0x00282c67, 0x00252e69, 0x00292f53, 0x00383a4c, 0x00504955, 0x00635045, 0x005d4126, 0x00583510, 0x00593400, 0x00694505, 0x00735111, 0x00725316, 0x006c5114,
- 0x006c4916, 0x00684713, 0x006a4815, 0x006f4d19, 0x0071511d, 0x006f4e1b, 0x006b4815, 0x00694614, 0x00624010, 0x00563501, 0x004a2900, 0x00483006, 0x003d250c, 0x00240c00, 0x00291101, 0x0034200b,
- 0x003c2d0f, 0x00433713, 0x00473c1e, 0x002e260e, 0x00332a1f, 0x0042351c, 0x00423014, 0x0033210a, 0x00352317, 0x00483523, 0x004c391d, 0x00433006, 0x00493100, 0x00523504, 0x00634213, 0x006e491e,
- 0x0077551c, 0x0078551c, 0x0078561d, 0x007d5c23, 0x00816027, 0x00836229, 0x0087652e, 0x0085642c, 0x0086622c, 0x0085642b, 0x00886630, 0x00896634, 0x00866334, 0x00836031, 0x00825e2f, 0x007f5e2c,
- 0x007e5b27, 0x00795722, 0x007b5823, 0x00815f29, 0x007e5d28, 0x007d5d27, 0x007a5924, 0x007a5925, 0x007d5a27, 0x007b5924, 0x0076541e, 0x00704e19, 0x00704e19, 0x006f4e1a, 0x0074521e, 0x007a5923,
- 0x00795521, 0x0075511b, 0x00754f18, 0x007c561b, 0x00835f22, 0x007c5a21, 0x006b4e18, 0x00634a19, 0x006c5633, 0x00695737, 0x00554a43, 0x00343463, 0x002e2e58, 0x00333559, 0x006c6f8a, 0x00a8acbb,
- 0x00c5cec8, 0x00bbc2bc, 0x00808886, 0x004b5259, 0x0034374d, 0x00323a42, 0x003c484c, 0x004d5663, 0x00686e84, 0x00707488, 0x00838694, 0x00bec2c6, 0x00fefdfa, 0x00fbfbf8, 0x00fbfbf8, 0x00fdfdfe,
- 0x00edece5, 0x009aa1a1, 0x00434e5c, 0x0053677e, 0x006c7da5, 0x007883a7, 0x006e7191, 0x00645f75, 0x00615e5b, 0x00616550, 0x00656d65, 0x006f8599, 0x007b90ac, 0x00748aa6, 0x007189aa, 0x007091b9,
- 0x005c84a9, 0x004b6b86, 0x0050606c, 0x006c685f, 0x007d603e, 0x00594c2b, 0x003e3713, 0x00615535, 0x00837752, 0x00847951, 0x008b7e55, 0x009e9064, 0x00b8a778, 0x00bdab7b, 0x00c3b281, 0x00c0b07d,
- 0x00d0ae6c, 0x00d1b374, 0x00c6ac72, 0x00a8945f, 0x007d6f47, 0x00685e3b, 0x005f5838, 0x00615c3e, 0x00635e47, 0x006b654e, 0x006d684d, 0x00716c4f, 0x00787355, 0x00797659, 0x00767455, 0x00777758,
- 0x00727254, 0x006e6e54, 0x00444431, 0x002a2b19, 0x0027271d, 0x001d1713, 0x000d0b08, 0x00030e02, 0x000b2029, 0x00395a7e, 0x007292ca, 0x007899d2, 0x0095b5d5, 0x0094b9dd, 0x007fa6df, 0x006d9aea,
- 0x004b99ee, 0x005499e0, 0x0071a6e4, 0x00a4caf0, 0x00929bae, 0x0038363d, 0x0015100c, 0x00180f09, 0x00161110, 0x00110f0f, 0x0011110c, 0x000d1002, 0x000d0e06, 0x0012100c, 0x001d1811, 0x00322b1d,
- 0x00554e31, 0x006b6340, 0x006c613d, 0x00706141, 0x006f5e48, 0x006a5c45, 0x00695a41, 0x00665332, 0x007b613b, 0x0096815c, 0x00c8b799, 0x00ede6ce, 0x00fffef8, 0x00fffefa, 0x00fffcfa, 0x00fefbf9,
- 0x00eddece, 0x00a08f7f, 0x005f4938, 0x00594131, 0x004b3524, 0x00412e21, 0x0034251d, 0x00261d19, 0x001c1a22, 0x00161a26, 0x00101721, 0x0010181c, 0x0015181c, 0x0019181c, 0x00191718, 0x001c181a,
- 0x0017141a, 0x00150f1f, 0x00241d36, 0x00302b46, 0x0039365f, 0x002e3a6f, 0x000b1c4b, 0x0034444e, 0x007e8286, 0x00535776, 0x000a1049, 0x0002105a, 0x0001145c, 0x00020e57, 0x000e206f, 0x00283390,
- 0x002338ad, 0x001a327a, 0x0000183b, 0x00001919, 0x00122d43, 0x002e4484, 0x00203289, 0x003d4aa6, 0x009f9eaf, 0x00cbc29d, 0x00d9ce99, 0x00d2caac, 0x00d0c3b6, 0x00cabab9, 0x00bdaeb2, 0x00b6a8ac,
- 0x00c4bab5, 0x00b1a9a0, 0x00594f4b, 0x001b1515, 0x000d0410, 0x00040723, 0x00020a2c, 0x00000926, 0x0002072c, 0x00020f40, 0x00071b59, 0x0009276f, 0x000b266a, 0x00203565, 0x00485371, 0x002b303a,
- 0x00080f20, 0x00071536, 0x00132b63, 0x00092b74, 0x00093691, 0x00194495, 0x0021458b, 0x00274177, 0x008484a8, 0x00bab1ce, 0x00a594a3, 0x0096837c, 0x00a07b6b, 0x00ad7e65, 0x00bd825e, 0x00ac693e,
- 0x00995929, 0x00954e28, 0x008d3c24, 0x00862e22, 0x008d222a, 0x00842121, 0x00831d1a, 0x0091241e, 0x00932722, 0x00903e38, 0x00d69f9b, 0x00f8edeb, 0x00f8fdfc, 0x00f8fefe, 0x00fafdfc, 0x00fcfdfa,
- 0x00fdfffa, 0x00fefffd, 0x00fefffe, 0x00fdfefd, 0x00ffffff, 0x00fefffd, 0x00fdfffb, 0x00fefffc, 0x00fffeff, 0x00fcfcfd, 0x00fcfdfc, 0x00fcfefa, 0x00fcfdf6, 0x00fcfdf4, 0x00fdfef1, 0x00fcfeee,
- 0x00fcfef0, 0x00fdfef5, 0x00f5eef0, 0x00f1e8f2, 0x00fff7ff, 0x00fefcfd, 0x00fffdf8, 0x00fffefa, 0x00decfc2, 0x0085705d, 0x005d432c, 0x006d4d31, 0x007e5939, 0x00805937, 0x007b5330, 0x006f4a26,
- 0x005d412d, 0x004f3622, 0x003b2615, 0x00281b0e, 0x00140f05, 0x000e0b04, 0x000f0a05, 0x00110a07, 0x00180b0b, 0x00180a08, 0x00130906, 0x000c0b06, 0x000b0a08, 0x000c0a09, 0x00100e0d, 0x00111311,
- 0x00121211, 0x00111514, 0x00161a1b, 0x00191e1d, 0x001e2324, 0x001c2126, 0x001f232a, 0x0028262c, 0x00362e2c, 0x003e3126, 0x00483320, 0x006c5232, 0x00b18f61, 0x00b08a53, 0x009e7437, 0x007a4d0d,
- 0x0072490c, 0x00a67e3a, 0x00c1975b, 0x00caa06b, 0x00d2a97b, 0x00d4ac7d, 0x00c39869, 0x00ab7c4b, 0x009b6b37, 0x00a5733c, 0x00bf8d54, 0x00b78746, 0x00986e2f, 0x00946b31, 0x009d7641, 0x0096703f,
- 0x00c1a678, 0x00dec69c, 0x00aa936f, 0x00a28f6f, 0x00a39376, 0x00a49277, 0x00a28e75, 0x0098876f, 0x007e7463, 0x00686156, 0x00504d45, 0x00383833, 0x001b1d1a, 0x00151612, 0x00171614, 0x001f1e1e,
- 0x002f2a25, 0x0038312b, 0x00433830, 0x0056463c, 0x007a6453, 0x00947b64, 0x00a58e70, 0x00a38c69, 0x00a58d64, 0x009d865a, 0x007d6d4e, 0x004a493b, 0x002b2624, 0x0027201f, 0x00291f1f, 0x00423432,
- 0x0079705d, 0x009a947d, 0x00a19b8b, 0x008a847e, 0x00615c63, 0x00323531, 0x0012190e, 0x0013170d, 0x0023211a, 0x00272218, 0x0030291e, 0x0035291c, 0x003f2d1f, 0x00412b1e, 0x00432c20, 0x00472f23,
- 0x00463211, 0x00453312, 0x0049341b, 0x0045321c, 0x003c2e1e, 0x00312718, 0x00262016, 0x001c1811, 0x00120e10, 0x00080709, 0x00020302, 0x00020100, 0x00080400, 0x000d0a06, 0x0015140b, 0x00211f18,
- 0x00282315, 0x00382e1b, 0x004d3e28, 0x005d482b, 0x006c5335, 0x006a573d, 0x00afa893, 0x00f4f3e8, 0x00f9fefb, 0x00f9fdfc, 0x00fbfef8, 0x00fefef5, 0x00b9b0a6, 0x004f483f, 0x00635e58, 0x00ababab,
- 0x00cac8cc, 0x00868489, 0x001a191d, 0x00060607, 0x0008080b, 0x00020206, 0x00040408, 0x00060607, 0x0007070a, 0x0008080c, 0x0008080a, 0x00080808, 0x00070708, 0x00090909, 0x00080907, 0x00080808,
- 0x00080808, 0x00080707, 0x00080708, 0x00070706, 0x00050505, 0x00050604, 0x00070805, 0x00070805, 0x00070806, 0x00080906, 0x000a0a08, 0x000b0b08, 0x000b0c08, 0x000b0c09, 0x000e0e0a, 0x000f0f0c,
- 0x000e0e0e, 0x000e0f0c, 0x00110e0d, 0x001c1618, 0x0016141a, 0x00272f3f, 0x0061728e, 0x007791ba, 0x005d8dc2, 0x00669cd9, 0x009ccbec, 0x00b3d1de, 0x00b4d6f0, 0x00b8d7f7, 0x0090afd8, 0x006488bf,
- 0x00446cb5, 0x003e68bc, 0x003a66c3, 0x003361c4, 0x00315fca, 0x003468b5, 0x00346cab, 0x003c73be, 0x004678d1, 0x00477ed0, 0x004a82cc, 0x00467fbc, 0x00467bb2, 0x004677b2, 0x00507ab8, 0x00587ebd,
- 0x00667690, 0x00647792, 0x005f7391, 0x005e6f90, 0x006f728c, 0x005a5461, 0x00211819, 0x00140b03, 0x001b150f, 0x00161913, 0x001b1a13, 0x00231b0b, 0x00261e11, 0x00271e10, 0x00281e12, 0x00271f14,
- 0x00201912, 0x001c1711, 0x00181411, 0x00161312, 0x00151111, 0x00130f0f, 0x0014100f, 0x00181210, 0x001d170f, 0x00201b10, 0x00262014, 0x00292313, 0x002e2613, 0x00312815, 0x00332b17, 0x00332c15,
- 0x002e2b11, 0x002d2c14, 0x00282512, 0x00272517, 0x00898880, 0x00edeee8, 0x00fdfdfa, 0x00fefefd, 0x00fdfefc, 0x00fdfcfb, 0x00a7aaa7, 0x0027332c, 0x00000817, 0x0014254a, 0x005368a7, 0x005a73c3,
- 0x003b59b4, 0x002f4ea3, 0x005a74c9, 0x0088a2ec, 0x0096abea, 0x00a8b5e9, 0x009ca8dd, 0x008a98d9, 0x00829dfa, 0x007a9efa, 0x00769ffd, 0x0071a0f7, 0x007da4ef, 0x00799cd0, 0x002a4669, 0x00020e22,
- 0x00020202, 0x00000101, 0x00141415, 0x00312e30, 0x003a3534, 0x002a221b, 0x002e2013, 0x00493624, 0x00755842, 0x00816048, 0x007e583d, 0x00765032, 0x00724c2f, 0x00775136, 0x00724e32, 0x0068452a,
- 0x0057351a, 0x0057361c, 0x0065442c, 0x0077543d, 0x007d5c46, 0x006e5645, 0x00413024, 0x002a1a0f, 0x00140c07, 0x00040100, 0x00030104, 0x00010203, 0x00000304, 0x00000206, 0x00000107, 0x00020509,
- 0x000b0b0b, 0x000f0f0f, 0x001a1919, 0x001d1e1d, 0x00252525, 0x002b2b2b, 0x003a3a3b, 0x004a4b4b, 0x005c5c5d, 0x00646664, 0x006f706e, 0x00757b74, 0x008d928c, 0x00a1a5a0, 0x00bbbbba, 0x00c9cac7,
- 0x00d2d3d2, 0x00dcdadb, 0x00e4e2e6, 0x00ebe9e9, 0x00f8f1f5, 0x00f7fbf4, 0x00f5fef6, 0x00f8fef8, 0x00f6fefb, 0x00f8fdf9, 0x00fafffd, 0x00f8fcfa, 0x00fefbfe, 0x00fdf9fc, 0x00fefbfd, 0x00efebf0,
- 0x00f5fdeb, 0x00f5f8f7, 0x00f2f3f9, 0x00f5f4ff, 0x00f2f4fc, 0x00f4f8fa, 0x00f3f7f6, 0x00f0f2f3, 0x00edeaf7, 0x00ebe6fd, 0x00e9e7fa, 0x00e3eaeb, 0x00eff3f1, 0x00f7fbfd, 0x00b8c0d9, 0x00586897,
- 0x0022489a, 0x002651b1, 0x002050b4, 0x002153b0, 0x0024539d, 0x00215195, 0x001a4c8d, 0x001f509a, 0x004372c5, 0x005e8be2, 0x005d89e5, 0x00527dd9, 0x00537dd8, 0x00547fd6, 0x004b77cc, 0x004873c8,
- 0x00387ed7, 0x003e7dd4, 0x003d75c4, 0x004777c3, 0x00587bcd, 0x005a77d6, 0x004667c8, 0x00466ad3, 0x004b7ae7, 0x004d7fec, 0x005188e8, 0x005783d8, 0x005485da, 0x005e8ae5, 0x006291e7, 0x005587db,
- 0x005382d5, 0x006591df, 0x008ab1f5, 0x009bc2fc, 0x006d90d9, 0x005782e3, 0x005786f2, 0x005988ed, 0x005c87d8, 0x005f89d5, 0x006894dc, 0x00648bd7, 0x005f86cb, 0x007398d5, 0x0096bcee, 0x00bae0fc,
- 0x009ec5f6, 0x0083a2cf, 0x00a4bedc, 0x00dcebf4, 0x00e5edf3, 0x00d3dbe2, 0x00deebf6, 0x00a8bad6, 0x005a7cb1, 0x00557abf, 0x004d79c7, 0x004670d3, 0x003765c0, 0x002f5bb6, 0x002b59b1, 0x002858ab,
- 0x002e5db0, 0x00305cb1, 0x00325db8, 0x00365ebf, 0x004067ce, 0x00476ccd, 0x004167c3, 0x003f65c1, 0x004162bd, 0x003e61b8, 0x00375aae, 0x003051a3, 0x002d4a9d, 0x00284395, 0x00213c8d, 0x001c3886,
- 0x0024347d, 0x00283783, 0x002d3c88, 0x002c3f89, 0x00223981, 0x00284286, 0x003d5696, 0x00445c9c, 0x003b558e, 0x00445c97, 0x006075a1, 0x008291a5, 0x009da7b7, 0x009ea3b3, 0x00b7bac8, 0x00c9c8d6,
- 0x00c9cbd3, 0x00cbcad5, 0x00c8cbd4, 0x00c6ccd6, 0x00c6cbd7, 0x00c7cacd, 0x00c3c5c4, 0x00c8c7c8, 0x00c5c5c6, 0x00c6c7c6, 0x00e2e3e2, 0x00f8f9f8, 0x00fefeff, 0x00fefeff, 0x00fdfcfd, 0x00fffefe,
- 0x00c1c1bc, 0x00707270, 0x007b7c7f, 0x0095969e, 0x00898c9a, 0x00686b7e, 0x005b5e75, 0x00585c77, 0x005d627b, 0x006a6f86, 0x007a7c96, 0x008f90ae, 0x00abadbe, 0x00bac0c7, 0x00a4acaf, 0x00767e85,
- 0x00374158, 0x0023294f, 0x00222a58, 0x0023275d, 0x0020285b, 0x002c3161, 0x002d3057, 0x00363354, 0x0051474e, 0x00645047, 0x00644c2e, 0x005e4317, 0x005d3f02, 0x00624505, 0x00694e08, 0x00684f07,
- 0x006c4916, 0x006e4a17, 0x006f4c1a, 0x006e4c19, 0x006e4c1b, 0x006b4a18, 0x00654311, 0x00623f0d, 0x0063420e, 0x00603e0b, 0x00583807, 0x00533a0e, 0x00503514, 0x00442a10, 0x004a3013, 0x00513819,
- 0x00463308, 0x003f2e05, 0x00392c0a, 0x0031260a, 0x003c3320, 0x005b4a26, 0x00634d26, 0x00573f1e, 0x004b3621, 0x00553c23, 0x004f3a17, 0x00503d0c, 0x005c400b, 0x005d3f0b, 0x00634413, 0x006d461c,
- 0x006d4b12, 0x00745119, 0x0079551e, 0x0077541c, 0x0079571f, 0x0078571f, 0x007a5821, 0x007c5922, 0x007a561f, 0x0077531c, 0x0079561f, 0x007d5c26, 0x007a5725, 0x00795525, 0x00775322, 0x00775321,
- 0x00785621, 0x0076541e, 0x0074511c, 0x00785520, 0x0075531e, 0x0072501b, 0x006f4d17, 0x00724e1a, 0x0076551e, 0x0077561f, 0x0076551e, 0x007b5a24, 0x00795823, 0x0074521e, 0x0074521d, 0x007c5a25,
- 0x00795926, 0x007b5825, 0x007b5621, 0x007a561c, 0x007a561d, 0x0070501c, 0x00664b1c, 0x0066502a, 0x00685a40, 0x005a4d3c, 0x003c383a, 0x00323062, 0x002e3057, 0x00363957, 0x00797d92, 0x00cacfd9,
- 0x00d3d9da, 0x00adb4b6, 0x0071787d, 0x00656a78, 0x007f8495, 0x00949da6, 0x00a4afb5, 0x00afb9c9, 0x00c3c9e0, 0x00bbc0d4, 0x00bec0d0, 0x00dde1e6, 0x00fcfcf9, 0x00fefffc, 0x00fdfcfb, 0x00fdfbfd,
- 0x00efe9e3, 0x009ba1a6, 0x003c4f5d, 0x003e5c7c, 0x003f6494, 0x00486598, 0x004d5d8c, 0x005c6589, 0x008d9196, 0x00a4ac9f, 0x0098aaaa, 0x0080a0d3, 0x0084a2cf, 0x008daadb, 0x008eb4e7, 0x0085b5ed,
- 0x0075afe5, 0x007ba7d1, 0x0089a8bd, 0x00acb6b0, 0x00c6b78f, 0x00a1966c, 0x00797448, 0x00a69c72, 0x00c8bf91, 0x00cabf91, 0x00cabe8e, 0x00cbbd8c, 0x00d2c18f, 0x00d5c290, 0x00d2c08d, 0x00d4c28f,
- 0x00dec181, 0x00dec483, 0x00d8c283, 0x00cfbd88, 0x00bfb382, 0x00bfb689, 0x00beb68b, 0x00bcb490, 0x00beb591, 0x00bfb594, 0x00bfb591, 0x00bdb68d, 0x00bcb590, 0x00bcb790, 0x00b9b68f, 0x00b6b58f,
- 0x00b6b490, 0x00b1b090, 0x006a6b4e, 0x003f3f2a, 0x00393927, 0x001b1414, 0x000c0b07, 0x00020e00, 0x000c1f26, 0x004a6086, 0x007891c6, 0x00798ec2, 0x00728b9d, 0x00688098, 0x006781a9, 0x00758ecc,
- 0x005d9fe4, 0x006ba3e0, 0x0074a2d6, 0x009bb8dc, 0x007e8696, 0x0029252c, 0x0015100d, 0x00160e09, 0x0014110c, 0x00100e0e, 0x000f0f09, 0x000c0d01, 0x000d0c00, 0x00121006, 0x002c2615, 0x005c533a,
- 0x00a0986b, 0x00c0b786, 0x00bfb283, 0x00c3b38b, 0x00c1af94, 0x00baab91, 0x00b8a98f, 0x00c2af8c, 0x00c4ac82, 0x00c2af89, 0x00cfc3a0, 0x00e8e7cd, 0x00fbfff8, 0x00fdfffd, 0x00fefdfb, 0x00fefbfb,
- 0x00eee3d3, 0x00a79888, 0x005e4a38, 0x00594331, 0x004e3825, 0x00422f21, 0x00362820, 0x002a201d, 0x001d1a23, 0x00161825, 0x00080e1a, 0x00061018, 0x000c1015, 0x00101216, 0x000c0d0e, 0x00100f14,
- 0x00100e1a, 0x00111027, 0x00181c3b, 0x00252853, 0x00252b66, 0x001d2c6a, 0x000a1b4e, 0x00253442, 0x00707577, 0x005e6384, 0x0018215c, 0x00142173, 0x00102674, 0x0003175f, 0x000b1c65, 0x00273181,
- 0x00273395, 0x00132678, 0x000d2155, 0x00344a59, 0x005a656a, 0x0054607e, 0x00555986, 0x00787da5, 0x00c1b999, 0x00d9c079, 0x00d8bb6e, 0x00d3c08a, 0x00dcc6a0, 0x00e4cbab, 0x00ead3bb, 0x00ebd6c0,
- 0x00e8d2ba, 0x00ecd8c3, 0x00c6b3a4, 0x008b7a75, 0x00473541, 0x00191734, 0x00020a2e, 0x00010a29, 0x0002062c, 0x0000083a, 0x000a1c5a, 0x0008236b, 0x000c2669, 0x002b3f6d, 0x003e4c66, 0x00171f25,
- 0x0005103b, 0x00111d50, 0x001e336f, 0x00283e86, 0x002b458f, 0x003b5293, 0x00495a91, 0x00646c93, 0x00b7adbe, 0x00baa6af, 0x00775d62, 0x007e5b65, 0x007e4b4d, 0x0083403a, 0x008b402f, 0x00802f11,
- 0x006e2101, 0x00772008, 0x00832416, 0x0088211d, 0x00951e2d, 0x008e2829, 0x0083211b, 0x008a221b, 0x00831e16, 0x00873731, 0x00d4a59d, 0x00faedea, 0x00f4fffc, 0x00f5fdfe, 0x00f2fcf9, 0x00fafefc,
- 0x00fdfef9, 0x00fefffa, 0x00fdfdfa, 0x00fffefc, 0x00fefcfb, 0x00fefcfb, 0x00fefcfb, 0x00fdfbfc, 0x00fefdfe, 0x00fdfdfd, 0x00fefefd, 0x00fefdfd, 0x00fefdf7, 0x00fefdf7, 0x00fdfef4, 0x00fbfef0,
- 0x00fbfef4, 0x00fdfcfa, 0x00f5f0f5, 0x00f4eaf3, 0x00fef8fe, 0x00fdfbfc, 0x00fcfef7, 0x00fffdf7, 0x00dccec1, 0x00836f5c, 0x00593f29, 0x0067492d, 0x00775334, 0x007a5433, 0x0077502f, 0x006c4624,
- 0x00593e28, 0x004e351f, 0x003b2614, 0x00281c0e, 0x00140d04, 0x000e0903, 0x000f0806, 0x00120708, 0x001a0b0b, 0x001a0a0a, 0x00150904, 0x000d0a01, 0x000c0903, 0x000f0b05, 0x0014110b, 0x00161511,
- 0x001a1914, 0x001c1b18, 0x00211f1c, 0x00262521, 0x00272623, 0x00252524, 0x00262426, 0x002a272a, 0x00322c27, 0x00382d22, 0x00402f1a, 0x005c4425, 0x00a98454, 0x00b68b50, 0x00b28440, 0x00a07024,
- 0x0077571d, 0x00a3824b, 0x00bb9761, 0x00c29c69, 0x00cea774, 0x00d3aa79, 0x00d0a26f, 0x00cd9969, 0x00d39965, 0x00e3a673, 0x00e9b378, 0x00e0b072, 0x00c79b5c, 0x00c4945c, 0x00c0945f, 0x00b9905d,
- 0x00d3af7f, 0x00e7c79b, 0x00ad926b, 0x0097825e, 0x00998868, 0x00998869, 0x00958367, 0x0089795f, 0x006c6252, 0x00554e44, 0x003f3e37, 0x002c2e2b, 0x00171a18, 0x00121410, 0x00131510, 0x001a1b16,
- 0x00241f1a, 0x00302821, 0x0046392f, 0x005f4d3f, 0x00876f5a, 0x00a0856c, 0x00b79c7d, 0x00b49976, 0x00a88d64, 0x00947850, 0x005b4928, 0x002f2e20, 0x0029241e, 0x00332c2a, 0x002c241f, 0x003b3127,
- 0x00675d4b, 0x0087816b, 0x008b8776, 0x007c7870, 0x005e5c61, 0x00393c3b, 0x00191e1a, 0x00161815, 0x001c1e18, 0x001f1d17, 0x0027231d, 0x002b241c, 0x0039291e, 0x00402a1d, 0x00473021, 0x00503725,
- 0x00513b1c, 0x00553e1f, 0x00594122, 0x00553e24, 0x004b391f, 0x003d301b, 0x00322818, 0x00241e14, 0x0014120d, 0x00090906, 0x00030302, 0x00020000, 0x00060300, 0x00090907, 0x0010110a, 0x001d1c15,
- 0x002f2a1c, 0x00453927, 0x005b4b33, 0x006e5537, 0x007c613b, 0x007b6648, 0x00b8af96, 0x00f7f6e9, 0x00f9fefa, 0x00fcfdfd, 0x00fcfdf9, 0x00fdfef9, 0x00b9b1a9, 0x0066605b, 0x007c7875, 0x00b4b3b5,
- 0x00dedee2, 0x00d4d3db, 0x005d5d63, 0x000f1013, 0x0006070b, 0x0008090d, 0x00050609, 0x00010204, 0x00050709, 0x00090a0c, 0x00090a0b, 0x00080908, 0x00080909, 0x0009090a, 0x000a0a0a, 0x00090909,
- 0x00060707, 0x00070808, 0x00080909, 0x00080908, 0x00080807, 0x00070706, 0x00070705, 0x00080805, 0x00080905, 0x00090a06, 0x000b0b08, 0x000c0c09, 0x000c0c0a, 0x000c0d0a, 0x000e0e0b, 0x000f0f0d,
- 0x0013100e, 0x00130f11, 0x00131215, 0x00111019, 0x00232d3e, 0x0060738f, 0x007998c0, 0x00698fc4, 0x00568fd0, 0x006faaf2, 0x00a6d9f5, 0x00bcd2e6, 0x00cce7fa, 0x00c1ddff, 0x0092b0dd, 0x007498ce,
- 0x005981c5, 0x004972c2, 0x003862bc, 0x003762c0, 0x003a64c8, 0x00386cb5, 0x00316ba8, 0x003165b2, 0x00346bc0, 0x004279cd, 0x004e83cc, 0x005185c2, 0x005783b1, 0x00638cbc, 0x007396c4, 0x007998cb,
- 0x0094868b, 0x00807a83, 0x00706e7c, 0x006d6c7e, 0x00797482, 0x006d6167, 0x003b2b29, 0x001c0f08, 0x0016120a, 0x00161a18, 0x001b1e17, 0x00231a0c, 0x00251d0f, 0x00261e12, 0x00261d11, 0x00261e15,
- 0x001e1911, 0x001a160f, 0x0015120e, 0x0013100e, 0x00120f0f, 0x00110e0d, 0x0013100e, 0x00181312, 0x001c1610, 0x00201b12, 0x00282116, 0x002d2515, 0x00322915, 0x00352c15, 0x00372e16, 0x00362e13,
- 0x00302f11, 0x002c2b10, 0x00272510, 0x00222111, 0x007f7e75, 0x00ebebe5, 0x00fcfcf9, 0x00fefdfc, 0x00fffffe, 0x00fffefe, 0x00b4b9bc, 0x00393e4d, 0x001a2749, 0x00465991, 0x00586fb9, 0x003e5eb7,
- 0x00294db1, 0x003658b5, 0x00708fe4, 0x008eaaf3, 0x0098afe5, 0x00becbfd, 0x00afb7ef, 0x00aebafa, 0x00a1bdfc, 0x0092b2ff, 0x007ba2fe, 0x0079a3ff, 0x007ba8fb, 0x007fabe9, 0x003f699a, 0x00061d45,
- 0x00010101, 0x00020304, 0x00131316, 0x00363234, 0x003e3532, 0x002e2217, 0x00453221, 0x00634834, 0x007a5336, 0x0083583b, 0x008a5e3c, 0x00895c37, 0x00805430, 0x00835736, 0x00835837, 0x007e5432,
- 0x00744a2c, 0x00795134, 0x008c6647, 0x00a27b60, 0x00af8a6c, 0x009d7f69, 0x00644b38, 0x0040271a, 0x001a0f08, 0x00080101, 0x00030003, 0x00000002, 0x00010205, 0x00000003, 0x00010103, 0x00000203,
- 0x00000001, 0x00000000, 0x00000000, 0x00010100, 0x00030202, 0x00020202, 0x00010001, 0x00020203, 0x00000301, 0x00010102, 0x00000101, 0x00040500, 0x001d2014, 0x00333326, 0x00444438, 0x004b4b3f,
- 0x00535045, 0x005e5953, 0x006a645f, 0x0077726d, 0x008a8280, 0x008f9284, 0x00919c85, 0x0097a08d, 0x00a0ab9f, 0x00b6bbb6, 0x00cacdc9, 0x00dbdcdb, 0x00eee9e8, 0x00f2eded, 0x00f2ede9, 0x00e2d7d6,
- 0x00f7fdec, 0x00f3f6f2, 0x00f4f4fc, 0x00f5f4fd, 0x00f2f3fe, 0x00eeeff1, 0x00e3e7e1, 0x00d8dcd1, 0x00d7d6e0, 0x00dbd9f0, 0x00e3e1fa, 0x00e6e9f2, 0x00eef0f6, 0x00f7fafd, 0x00bec5df, 0x0060709c,
- 0x00204798, 0x00214fad, 0x001f4eb3, 0x001d51ac, 0x0025509c, 0x00214d8c, 0x00224b89, 0x00426fb2, 0x00658fde, 0x005f8ade, 0x005685de, 0x004978d2, 0x004872cd, 0x004971c8, 0x00466fc3, 0x00466ec0,
- 0x003374d0, 0x003775c9, 0x003871c2, 0x003e71bd, 0x00416bc3, 0x00385ec2, 0x003359c8, 0x004369de, 0x004876e6, 0x004478df, 0x005988e0, 0x007b9ddc, 0x0096b9ef, 0x00a5cbf5, 0x007da0e5, 0x005982c4,
- 0x007ea1e5, 0x00a7ccf5, 0x00b1d6fd, 0x0091b2ee, 0x006686c3, 0x006080dc, 0x005f82e8, 0x006184de, 0x006e95da, 0x008fb4ef, 0x009bbeee, 0x007597cf, 0x007594c7, 0x00a1c2ed, 0x00bbdef7, 0x00c6e9fd,
- 0x00c3ddf2, 0x00a2b6d7, 0x00d6e3fa, 0x00d4dcf6, 0x00c0beea, 0x00d2d2f9, 0x00d1d6fa, 0x0095a1d5, 0x00718bc3, 0x007493cc, 0x004f76be, 0x003868ce, 0x003261c7, 0x002d5bbf, 0x00325ec0, 0x003160ba,
- 0x00305cb8, 0x002b57b3, 0x002e57b9, 0x00325fc1, 0x003a62c8, 0x003e64c2, 0x003e61ba, 0x003a5cb4, 0x003a56ae, 0x00314da3, 0x00264296, 0x001f3a8a, 0x001e3784, 0x001d347f, 0x001a307a, 0x00192e77,
- 0x00283275, 0x00222e70, 0x00212f71, 0x00203273, 0x00192e6a, 0x00162c64, 0x00253a6e, 0x00415586, 0x006d7ca9, 0x007e8db6, 0x008a94b6, 0x0098a3b2, 0x009ea2b1, 0x00989ca7, 0x00b5b6c4, 0x00c5c6ce,
- 0x00cccbd6, 0x00c8c8d4, 0x00c2c7d0, 0x00c0c9d2, 0x00c1cad4, 0x00c7cbcd, 0x00c4c5c5, 0x00c7c7c8, 0x00c5c6c5, 0x00cacaca, 0x00e8e7e9, 0x00fdfcfd, 0x00fefdfd, 0x00fdfdfc, 0x00fdfefd, 0x00fdfdfd,
- 0x00b4b7b5, 0x006c7070, 0x00787a7e, 0x008b8d96, 0x00989aab, 0x00a0a1b8, 0x00a2a3bd, 0x00a3a4c0, 0x00a1a4c0, 0x009da1bc, 0x009a9cbc, 0x008d8eb3, 0x007b7f97, 0x00686e7e, 0x00464e5a, 0x002b3342,
- 0x001d2244, 0x00262a51, 0x002c2f5c, 0x00272e57, 0x001d2549, 0x001d2253, 0x0022255a, 0x00272a57, 0x0037324a, 0x00494147, 0x005e524b, 0x005f4f35, 0x005c4519, 0x00594008, 0x005c4501, 0x00614700,
- 0x006e4b1b, 0x006f4d1b, 0x00704e1c, 0x006e4c19, 0x006b4916, 0x00684612, 0x0065440f, 0x00644510, 0x006d4919, 0x006c4a18, 0x00684818, 0x0065491b, 0x00664723, 0x00654720, 0x00694b24, 0x0066481f,
- 0x006c4e1d, 0x00563e0c, 0x00392302, 0x002e1f00, 0x00402f1e, 0x00574114, 0x006e501e, 0x006b4f23, 0x0065492a, 0x00654b28, 0x00644c24, 0x006b5320, 0x0070541b, 0x006e4d16, 0x006c4817, 0x0070491d,
- 0x006e4915, 0x0074501b, 0x007a5721, 0x0078551f, 0x0078551e, 0x0075531c, 0x0076551e, 0x0076561e, 0x0077521d, 0x00734e19, 0x0076511d, 0x0078541f, 0x0076521d, 0x00724f19, 0x00724f19, 0x00704e17,
- 0x0075501d, 0x0075501d, 0x0076531f, 0x00795520, 0x00795620, 0x0076531c, 0x00735019, 0x0073511a, 0x00775621, 0x00785722, 0x00795823, 0x00805f29, 0x007e5e27, 0x007c5c25, 0x007d5d27, 0x0082622c,
- 0x00846230, 0x0083612d, 0x00805e2b, 0x00785721, 0x006f4e1a, 0x006a4b1d, 0x006b522d, 0x006d5940, 0x005f524c, 0x0045403e, 0x00343344, 0x002e325d, 0x002d3052, 0x002b3146, 0x0046495c, 0x007c808c,
- 0x00b1b7bf, 0x00adb4bc, 0x00a4a9b7, 0x00a9adbf, 0x00bbbed5, 0x00b9c1ce, 0x00adb8c4, 0x0097a2b5, 0x008588a5, 0x006d7088, 0x00838598, 0x00c1c5cd, 0x00fafbf8, 0x00fcfdfa, 0x00fefefd, 0x00fefcfe,
- 0x00eee3df, 0x00858989, 0x00192738, 0x00193654, 0x002d5285, 0x003f5e93, 0x00475e8f, 0x004e5e85, 0x00808e9b, 0x009badaa, 0x00849db1, 0x006495dc, 0x0081a8e8, 0x00a1c7fa, 0x009bc3fe, 0x0070a6ea,
- 0x00589ce2, 0x0060a1d3, 0x0076a7c8, 0x0097b4b5, 0x00c0ba99, 0x00aba474, 0x008d854f, 0x00aba26d, 0x00c4ba88, 0x00c1b683, 0x00c6b886, 0x00c5b684, 0x00c2b381, 0x00c0b17e, 0x00c2b181, 0x00c7b686,
- 0x00cab372, 0x00c7b174, 0x00c6b27d, 0x00c1b27e, 0x00beb382, 0x00bcb482, 0x00bbb385, 0x00bdb38a, 0x00c1b78c, 0x00c4b98d, 0x00c5ba8d, 0x00c6bc8e, 0x00c4bb92, 0x00c1b98d, 0x00bab587, 0x00b5b286,
- 0x00adab87, 0x00a2a381, 0x0064684a, 0x00363a20, 0x002d301c, 0x0019130e, 0x000d0b08, 0x00010f01, 0x0010232b, 0x00516483, 0x007e8bb7, 0x00606891, 0x003d3f41, 0x00343539, 0x003a3c47, 0x00535576,
- 0x005c82b1, 0x007295bd, 0x008aa4c6, 0x00a6b8d0, 0x00747782, 0x0019181d, 0x00100c0c, 0x0013110c, 0x00110d0b, 0x000d0c07, 0x000e100a, 0x000d0f01, 0x000d0b00, 0x00110e00, 0x00332e17, 0x006b6442,
- 0x009b9461, 0x00b8b077, 0x00bbaf79, 0x00beae81, 0x00beab8c, 0x00bdad90, 0x00bdab90, 0x00c2ad8b, 0x00c1a87f, 0x00b8a882, 0x00c3bb98, 0x00e2e3cb, 0x00fbfffa, 0x00fbfefe, 0x00fcfdfd, 0x00fbfafc,
- 0x00f1e7dc, 0x00a5998d, 0x00554436, 0x00533f30, 0x00513c2b, 0x00463327, 0x0040312a, 0x00362c29, 0x00262531, 0x001b1d28, 0x000c1019, 0x00030b14, 0x00070910, 0x000b0c10, 0x000a0c0d, 0x000b0c11,
- 0x000c0b1f, 0x000f1431, 0x00181f49, 0x0015225c, 0x00182971, 0x00192e79, 0x0011235a, 0x00192835, 0x00656b69, 0x00686e8d, 0x00252a68, 0x001b277f, 0x00162a78, 0x0003175c, 0x00030e50, 0x00142067,
- 0x001c2266, 0x000b1b70, 0x001e2e7a, 0x005d6e9f, 0x00b1afaf, 0x00b4acb1, 0x00a7a29f, 0x00a4ab94, 0x00c6b86b, 0x00d3ab55, 0x00daa958, 0x00d0b569, 0x00d4b377, 0x00d4b480, 0x00dcb989, 0x00dfbd8f,
- 0x00e6c49c, 0x00e8cca6, 0x00f3d6bf, 0x00edd5cd, 0x00c6aab7, 0x007b7790, 0x002e3250, 0x000b0d27, 0x00060825, 0x00030834, 0x0008144e, 0x0003145b, 0x00102465, 0x0032436e, 0x002e3a52, 0x00121519,
- 0x000c0e5d, 0x00222771, 0x00393e86, 0x00545a9d, 0x0066669d, 0x006d6993, 0x00807791, 0x00988a96, 0x00af9589, 0x00866b53, 0x004d2a1c, 0x004b1d2c, 0x00601c29, 0x00701f25, 0x00812424, 0x0082211a,
- 0x006d1105, 0x0076150a, 0x00831e1a, 0x00861a1e, 0x00911928, 0x008a2829, 0x007b201c, 0x007f2017, 0x0073180f, 0x00733126, 0x00cda59d, 0x00f7efe9, 0x00f2fefe, 0x00f4fdfd, 0x00f6fefb, 0x00fbfcf8,
- 0x00fffefa, 0x00fdfdf9, 0x00fffefc, 0x00fffefc, 0x00fffefd, 0x00fffefc, 0x00fffefc, 0x00fffefa, 0x00fffeff, 0x00fefefd, 0x00fdfdfe, 0x00fcfbff, 0x00fdfbfa, 0x00fefcfb, 0x00fffefb, 0x00fefef9,
- 0x00fdfcfa, 0x00fdfcfc, 0x00f6f1f5, 0x00ece6ee, 0x00fff8ff, 0x00fbfcfe, 0x00fbfdf9, 0x00fcfef6, 0x00d9cec1, 0x007d6b58, 0x00523b25, 0x00604329, 0x006e4d2e, 0x00714e2e, 0x00714c2b, 0x00684323,
- 0x005d3e27, 0x00533821, 0x00422d1b, 0x00312415, 0x001b1308, 0x00130d04, 0x00110a05, 0x00110707, 0x0019090a, 0x00190709, 0x00170706, 0x00120b04, 0x00130c05, 0x00151007, 0x001d170e, 0x00231b15,
- 0x00251e18, 0x00272017, 0x002e271d, 0x002f2920, 0x00322a22, 0x00332822, 0x00362b26, 0x00352b28, 0x00362b25, 0x00372c20, 0x003a2c1d, 0x004a361a, 0x00916e45, 0x00bd955c, 0x00c89a59, 0x00b7843c,
- 0x00856b3e, 0x00a1865b, 0x00b29368, 0x00ba9867, 0x00cca575, 0x00d5aa78, 0x00e2b080, 0x00dfa776, 0x00d79a66, 0x00dd9f68, 0x00e7ab77, 0x00daab71, 0x00dbac75, 0x00d1a46b, 0x00c4955f, 0x00c89c65,
- 0x00dab282, 0x00e0bc8d, 0x00ae8f63, 0x00967c55, 0x00937f5a, 0x00978360, 0x008e7a5a, 0x007d6b51, 0x00625443, 0x004a4235, 0x0032302a, 0x00222423, 0x00151818, 0x00121511, 0x000f120d, 0x0013180f,
- 0x0020191a, 0x002d2220, 0x004c3e35, 0x006c5b4b, 0x00927c64, 0x00a68d70, 0x00b49878, 0x00af8f6e, 0x00a38460, 0x00896b46, 0x00503c22, 0x002f2f20, 0x00433e39, 0x005a514e, 0x00554c46, 0x00504638,
- 0x00625a44, 0x007a745e, 0x00837d6d, 0x0079746c, 0x005e5b61, 0x00414244, 0x001f2221, 0x00161a16, 0x001a1b19, 0x00181613, 0x001d1c16, 0x00241f16, 0x0035271a, 0x00402d1c, 0x004d3724, 0x005b402b,
- 0x005f4324, 0x00634928, 0x006a4e30, 0x00664c2e, 0x005b442a, 0x004d3921, 0x003e2e1d, 0x002e2315, 0x0019150d, 0x00080801, 0x00030102, 0x00020000, 0x00020304, 0x00040806, 0x00090c08, 0x0014160f,
- 0x00342b23, 0x00483c2a, 0x0068523e, 0x00775d3d, 0x008b6b45, 0x00897450, 0x00c0b59b, 0x00f7f7e6, 0x00fafbfc, 0x00fbfafc, 0x00fefefe, 0x00fdfdfd, 0x00c0b5b3, 0x00766e6f, 0x00898787, 0x00b1b5b6,
- 0x00d9d9e2, 0x00efeff9, 0x00acacb4, 0x003f3f45, 0x00030309, 0x0007070b, 0x00030405, 0x00010204, 0x00050509, 0x00050608, 0x000a0a0c, 0x00080909, 0x00080908, 0x00080808, 0x000a0a0a, 0x00090a09,
- 0x00080908, 0x00080908, 0x00090909, 0x00090909, 0x00090808, 0x00080807, 0x00080806, 0x00080805, 0x000a0a08, 0x000a0a08, 0x000b0c09, 0x000c0d0a, 0x000d0d0b, 0x000c0c0a, 0x000d0e0b, 0x000e100d,
- 0x001c100e, 0x00110d0b, 0x00141119, 0x000e1624, 0x00405779, 0x007092be, 0x006890c9, 0x005281c2, 0x00548ed9, 0x005b99e6, 0x0079a3e2, 0x00a5b4d8, 0x00c6d6fd, 0x00acc3f0, 0x00a2bdf4, 0x009ebdf9,
- 0x009cc2fb, 0x0079a2e6, 0x00537ec7, 0x003f6ab5, 0x003867af, 0x00346bac, 0x00336db0, 0x003266b5, 0x002e65bb, 0x00386cbd, 0x004c7dc6, 0x005d8ac2, 0x006e8fb7, 0x007e97b8, 0x007e91af, 0x006e7f9d,
- 0x006c4e41, 0x004f3a33, 0x003f2d2c, 0x003a2b30, 0x004c393f, 0x00654c51, 0x005f4644, 0x003f2a22, 0x001e170f, 0x00171c16, 0x001b1f19, 0x00241d0c, 0x00241d0f, 0x00271f12, 0x00251c14, 0x00231b14,
- 0x001b1510, 0x0019140f, 0x0015100e, 0x00120f0d, 0x00120e0d, 0x00120e0c, 0x0014100d, 0x0017130f, 0x001e1711, 0x00231d12, 0x002c2316, 0x00302816, 0x00342c16, 0x00372f15, 0x00383016, 0x00382f14,
- 0x00343014, 0x002c2a0f, 0x0026240d, 0x001f1e0b, 0x00767569, 0x00e9e8e1, 0x00fefefb, 0x00fdfdfc, 0x00fffefd, 0x00fefefb, 0x00bfc1cb, 0x00434963, 0x00283264, 0x00435999, 0x003955a9, 0x00274eaf,
- 0x002449b2, 0x002b50ae, 0x004e6dc4, 0x005a76be, 0x00829ad7, 0x00a3b3eb, 0x007480bf, 0x00828fd4, 0x00879ced, 0x0086a5f7, 0x007798f6, 0x0079a0fd, 0x007da9fe, 0x007eadf5, 0x005c8dc7, 0x0013386d,
- 0x00010105, 0x00020404, 0x000d0e0f, 0x002e2a29, 0x00342a22, 0x00312112, 0x00543c28, 0x006b4a31, 0x00714524, 0x00784b25, 0x0085562e, 0x0085552e, 0x0083502b, 0x008e5b37, 0x00996944, 0x00946741,
- 0x009c6d4b, 0x00996c48, 0x00a67a57, 0x00b78a69, 0x00bf9372, 0x00b68d71, 0x008b6652, 0x00684936, 0x0035221a, 0x000f0603, 0x00030001, 0x00010002, 0x00010103, 0x00020103, 0x00020102, 0x00000001,
- 0x00010102, 0x00020102, 0x00000000, 0x00010100, 0x00000000, 0x00020202, 0x00020203, 0x00040405, 0x000b0909, 0x000c0d0d, 0x000f0b0a, 0x00191408, 0x00342e1b, 0x003f3924, 0x003e3524, 0x00352d1c,
- 0x002a1f10, 0x00291e10, 0x0032261b, 0x003b3123, 0x004d4033, 0x004e492d, 0x00484828, 0x003c3f22, 0x00313321, 0x003c3a2e, 0x004b4844, 0x00585650, 0x007e7672, 0x008a7f7a, 0x009a8e84, 0x00928476,
- 0x00f9fcf4, 0x00f3f5f9, 0x00f4f2ff, 0x00f3f3fd, 0x00e9e8f1, 0x00d9dec8, 0x00d5ddb6, 0x00d9e5ac, 0x00dce5be, 0x00dbe2c9, 0x00dddcdd, 0x00e4def7, 0x00eee9f9, 0x00f8f9fd, 0x00c2ccdc, 0x00627795,
- 0x0022478c, 0x00244fa5, 0x00214ead, 0x00204da7, 0x0025499a, 0x00203d83, 0x003f5a9a, 0x007696d9, 0x007498e2, 0x005179c5, 0x005580d3, 0x004975cc, 0x003059b6, 0x002b4faf, 0x00395abd, 0x004260c5,
- 0x003b6ad6, 0x003b69ca, 0x003864c2, 0x003a68bc, 0x00335dbe, 0x002a51ba, 0x00395ec9, 0x004a6dd4, 0x005478c4, 0x006d91ce, 0x009ebce0, 0x00d3ddee, 0x00ecf9fe, 0x00d8e8fc, 0x009cafd3, 0x0099b1d9,
- 0x00b8d6fb, 0x00b8d1f3, 0x009bb5e3, 0x008299c6, 0x00849bcb, 0x008193d3, 0x008299da, 0x00a0b9e8, 0x00b7d4f1, 0x00dbf5fe, 0x00d3edff, 0x00a3bce1, 0x0098b1d7, 0x00cfe6fa, 0x00cae4f7, 0x00b5d2e6,
- 0x00a9b8d1, 0x00bfcbe8, 0x00d8e1ff, 0x00acb2e6, 0x00b3b9f1, 0x00d9ddfe, 0x00cfd7fe, 0x00b0bcf4, 0x00adbeef, 0x00b4c6f7, 0x0088a2e0, 0x004a6ed0, 0x004468cb, 0x004466cb, 0x004160c9, 0x003c5fc5,
- 0x003455b8, 0x002c4caf, 0x00284bad, 0x002d51af, 0x003256b4, 0x003755ad, 0x00314ca1, 0x00294396, 0x00233b8a, 0x001e3483, 0x001b2f7d, 0x001b2d78, 0x001c2c73, 0x001b2a6e, 0x001a2869, 0x001b2868,
- 0x00182357, 0x001b285a, 0x001d2c5e, 0x001a2c5c, 0x001e315c, 0x002a3b62, 0x00596688, 0x008893b0, 0x00a8adbf, 0x00a2a5b3, 0x00989bab, 0x00a2a8b9, 0x009a9bad, 0x00989aaa, 0x00bcbdca, 0x00c6c6ce,
- 0x00c8cad5, 0x00c2c5d1, 0x00bac2cd, 0x00b7c2ce, 0x00bbc7d4, 0x00c6cbce, 0x00c5c6c5, 0x00c8c9c7, 0x00c5c7c5, 0x00cfcfce, 0x00f0eff0, 0x00fffefe, 0x00fcfbfb, 0x00fdfcfc, 0x00fdfdfe, 0x00f4f5f6,
- 0x00a4a8a7, 0x006d6e74, 0x0071717c, 0x00555464, 0x0047455d, 0x00545470, 0x005e607d, 0x00616485, 0x005d6180, 0x00515575, 0x00474a71, 0x003a3d6c, 0x00282c51, 0x00272e4d, 0x0029304f, 0x00272d50,
- 0x00252754, 0x0021244c, 0x002a2e52, 0x00494d65, 0x00656b71, 0x00585b76, 0x00292952, 0x00212248, 0x00252d4f, 0x00222c47, 0x003a4154, 0x00484952, 0x005c5342, 0x005c4a2b, 0x00563e13, 0x005f3e0d,
- 0x00654410, 0x00664410, 0x006c4a17, 0x006f4d1a, 0x006c4816, 0x00674412, 0x006a4815, 0x00704f1c, 0x00785623, 0x00765422, 0x0073541c, 0x006e5117, 0x00714f1c, 0x00755321, 0x007d5a25, 0x00805b24,
- 0x00815d1f, 0x0074551a, 0x004a2f05, 0x00391f03, 0x003c2519, 0x00573708, 0x00704c0f, 0x007c591f, 0x00805b32, 0x00806134, 0x00836435, 0x0086672f, 0x00856729, 0x007f5c22, 0x0077501c, 0x00734d1e,
- 0x00724c1a, 0x007a5522, 0x00805a27, 0x007c5723, 0x007a5421, 0x007d5724, 0x007c5723, 0x0076521d, 0x00714d19, 0x00724c1a, 0x00795220, 0x0079521d, 0x0079521d, 0x00744f19, 0x00735019, 0x00724e17,
- 0x00734c18, 0x00754e1b, 0x0078521e, 0x00795521, 0x007e5a26, 0x007d5a25, 0x007d5d25, 0x007d5d25, 0x007b5a24, 0x007b5a26, 0x007a5926, 0x007a5924, 0x007e5c28, 0x0081602a, 0x0086652f, 0x00896733,
- 0x00836937, 0x007c612f, 0x00745625, 0x0070511f, 0x006c4d22, 0x006d5131, 0x006d5845, 0x0062534f, 0x003e3b4a, 0x0034344b, 0x00333752, 0x00353754, 0x003a3e51, 0x00373c4a, 0x00282d3f, 0x002f3648,
- 0x00494d68, 0x00626583, 0x00787b99, 0x00797d96, 0x006b6f82, 0x00555c70, 0x00465067, 0x00353d58, 0x002b2d56, 0x003c3d5f, 0x008787a1, 0x00d4d6e4, 0x00fcfdfc, 0x00fbfdfc, 0x00fbfafb, 0x00fefbfd,
- 0x00e8e2e7, 0x00797778, 0x000a0b09, 0x001d1b16, 0x00524844, 0x00746466, 0x007c6e76, 0x006d6470, 0x00637385, 0x006b8a9d, 0x005f8caf, 0x005290d1, 0x0084ade5, 0x00a7ccf8, 0x009bc0f6, 0x0079a9ec,
- 0x005a99ea, 0x00579ade, 0x006099cd, 0x007fa2ba, 0x00ababa4, 0x00a89b76, 0x00948551, 0x00a99a65, 0x00b6a778, 0x00b8a87b, 0x00bbaa7f, 0x00baaa81, 0x00baab86, 0x00b7a987, 0x00b6a686, 0x00b7a689,
- 0x00bbad81, 0x00b9aa83, 0x00b8ab83, 0x00b4ab84, 0x00b0a884, 0x00afa785, 0x00b0a882, 0x00b3a884, 0x00b8a981, 0x00baab80, 0x00bdac82, 0x00baad87, 0x00b6aa82, 0x00b2a77e, 0x00aba37b, 0x00a59f7d,
- 0x00958e72, 0x0088826c, 0x00585341, 0x002c291b, 0x001e1e14, 0x00171113, 0x000d0b0a, 0x00030b02, 0x001c2829, 0x00595c6e, 0x00635a77, 0x003e2739, 0x00381805, 0x004b270d, 0x004a240f, 0x00461d14,
- 0x00493938, 0x00605452, 0x007c7371, 0x00928c8c, 0x005c5959, 0x00111011, 0x00090a0c, 0x000a0e0e, 0x00090c09, 0x00070a05, 0x00090c06, 0x000a0a03, 0x000e0b07, 0x000f0a02, 0x0026230e, 0x005b5735,
- 0x008f8957, 0x00a8a069, 0x00aca06d, 0x00b1a178, 0x00ae9c81, 0x00b2a288, 0x00af9e83, 0x00b49f7e, 0x00b4a075, 0x00b0a37c, 0x00b9b494, 0x00dfe4cf, 0x00f5fefd, 0x00f7fffe, 0x00f8fdff, 0x00fcfdfd,
- 0x00efebe2, 0x00a0978f, 0x0042362c, 0x00413227, 0x00483528, 0x00473329, 0x004c3d35, 0x004d403c, 0x00433f46, 0x0038363c, 0x00202027, 0x000c1018, 0x00030309, 0x00070507, 0x00060504, 0x00090708,
- 0x00090a1c, 0x00111739, 0x000f1e51, 0x00091d63, 0x000b267e, 0x001a2e83, 0x00152864, 0x000f2130, 0x0059625d, 0x00747c98, 0x00383d76, 0x001a267d, 0x00152874, 0x00091b5c, 0x00000a43, 0x0007134a,
- 0x00112459, 0x00123091, 0x00203ba7, 0x002c449b, 0x00aba2ae, 0x00ddd2d9, 0x00d5cfc6, 0x00abb797, 0x00a79a52, 0x00c59459, 0x00d2975f, 0x00bf9d5e, 0x00c59f65, 0x00cca56e, 0x00d3ab72, 0x00d6af73,
- 0x00d8b578, 0x00d5b47d, 0x00dcc093, 0x00e1c7ac, 0x00c5aba3, 0x00957e85, 0x00735e6b, 0x00503a41, 0x003e2a37, 0x003a2c46, 0x00271f47, 0x001c1f53, 0x002d3261, 0x003f435e, 0x00231e28, 0x00150901,
- 0x002c1a54, 0x004a3366, 0x005b4262, 0x0076576c, 0x00886065, 0x00855c5e, 0x00855a54, 0x007a4f48, 0x00603e2a, 0x00482c0e, 0x00330f00, 0x0042090e, 0x005c111a, 0x00782229, 0x0081242c, 0x007b1a21,
- 0x006c1115, 0x006d1413, 0x00721918, 0x006b1311, 0x006f0e12, 0x006c1a18, 0x006b1c1d, 0x0071201c, 0x006c1a10, 0x00672920, 0x00ad8480, 0x00dacecb, 0x00d6dbdf, 0x00d9dcde, 0x00e1dede, 0x00e6dbd9,
- 0x00e2dde0, 0x00e0dddc, 0x00e1dddd, 0x00e1dedc, 0x00e1dfdd, 0x00e3e1df, 0x00e5e2e1, 0x00e5e4e1, 0x00e5e2de, 0x00e5e1de, 0x00e6e1e1, 0x00e7e0e4, 0x00e6e0e4, 0x00e4e0e5, 0x00e3e2e7, 0x00e2e4e9,
- 0x00e2e3e7, 0x00e0e0e4, 0x00e1e1e3, 0x00ede9e9, 0x00fefdf8, 0x00fbfdfb, 0x00f9fefd, 0x00fdfffd, 0x00d4ccc3, 0x00766758, 0x00493522, 0x00583f27, 0x0067482c, 0x006b4b2d, 0x006f4d2e, 0x00694627,
- 0x00624229, 0x00593c25, 0x004a3321, 0x00392b1c, 0x00261c12, 0x001b150c, 0x00160f0b, 0x00140b0b, 0x001b0b0d, 0x001c0a0d, 0x001c0a0b, 0x00180e08, 0x001b1207, 0x00211809, 0x002b200f, 0x00302413,
- 0x00372717, 0x003d2a18, 0x00422f1b, 0x00422f1b, 0x00422d19, 0x0046311a, 0x004a341d, 0x00473520, 0x00403628, 0x003d3229, 0x00413428, 0x00473629, 0x00715939, 0x00a08158, 0x00bc9663, 0x00a97c44,
- 0x009b783f, 0x00a8844c, 0x00b48e53, 0x00c1975c, 0x00cda063, 0x00d5a66b, 0x00ddac73, 0x00cd9b62, 0x00bc864f, 0x00c9945f, 0x00d7a773, 0x00d8af7f, 0x00d2a776, 0x00c59967, 0x00b38652, 0x00ba9059,
- 0x00cfa874, 0x00d0aa7a, 0x00aa865a, 0x0095764d, 0x00937753, 0x008e7651, 0x007e6945, 0x006c5a3b, 0x00514634, 0x003f372b, 0x00292722, 0x00191b1c, 0x00131616, 0x00121511, 0x000f140d, 0x00141a0f,
- 0x00242020, 0x00342c29, 0x0054473f, 0x00716054, 0x008f7965, 0x009c826b, 0x00987a60, 0x008a694d, 0x007e5b40, 0x006e4c33, 0x0046311a, 0x00363529, 0x005b584f, 0x00827a76, 0x00887f78, 0x00766c5b,
- 0x00605940, 0x00706a53, 0x007b7664, 0x00737065, 0x005c5b5f, 0x0045454a, 0x0026242a, 0x001a191d, 0x0016191b, 0x00161716, 0x001e1d1a, 0x00272219, 0x00382c1c, 0x0045351c, 0x00574223, 0x00674d2a,
- 0x006a4d2b, 0x00715430, 0x00765933, 0x00735531, 0x00694e2a, 0x005a4224, 0x004d371f, 0x003b2917, 0x001e160a, 0x000b0800, 0x00030100, 0x00010100, 0x00000305, 0x00010505, 0x00020606, 0x00090e0b,
- 0x0029271e, 0x00433a29, 0x0065543c, 0x007b6142, 0x00916f47, 0x00937b5a, 0x00c8b9a0, 0x00f9f7e8, 0x00f9fbfc, 0x00fafbfc, 0x00fcfbfd, 0x00fefbff, 0x00c7bbbe, 0x007a7277, 0x0089868b, 0x00b3b8bd,
- 0x00dadce5, 0x00e9ebf5, 0x00eaebf5, 0x00a6a7af, 0x0028282e, 0x00020206, 0x00000104, 0x00040508, 0x00040608, 0x00010203, 0x00090a0b, 0x00090a0b, 0x000a0909, 0x00080808, 0x000a080b, 0x000a090a,
- 0x00080808, 0x00090808, 0x00080808, 0x00080808, 0x00080808, 0x00080907, 0x00080906, 0x00080906, 0x000a0a07, 0x000a0a07, 0x000b0b09, 0x000b0d0a, 0x000c0c0a, 0x000c0c0a, 0x000c0d0c, 0x000e0f0d,
- 0x001c0b01, 0x00170e0d, 0x00070916, 0x0021334f, 0x005984b8, 0x005b8fce, 0x004f8bd3, 0x004988d6, 0x00508cdc, 0x00447ed1, 0x00658dd5, 0x00aab0ed, 0x009cace6, 0x006a81c2, 0x006484c7, 0x00658dd3,
- 0x006a9ce6, 0x006399dd, 0x004d87c8, 0x003974b6, 0x003670b1, 0x002f6baf, 0x00306db4, 0x00336ebe, 0x002c64b9, 0x003263b0, 0x004870b0, 0x006886b5, 0x007d8a9d, 0x007b7a84, 0x005a4f51, 0x00322224,
- 0x001b0802, 0x00100201, 0x00090000, 0x00070004, 0x0018060c, 0x0031161a, 0x005e423d, 0x00684c3e, 0x003b2a1a, 0x00211b0f, 0x00231f13, 0x00281e11, 0x00281e10, 0x00251d11, 0x00221c10, 0x001f1910,
- 0x0018130d, 0x0017110c, 0x00130e0b, 0x00100c0a, 0x00100c0a, 0x00130d0c, 0x0017110e, 0x001a1411, 0x001d1811, 0x00231d11, 0x002b2314, 0x002e2612, 0x00322a10, 0x00352d0f, 0x00362e0f, 0x00362d0d,
- 0x00323010, 0x002d2a0c, 0x0026240b, 0x00171703, 0x00666558, 0x00e0ded8, 0x00fefdfb, 0x00fefefe, 0x00f8fbf8, 0x00fffdfe, 0x00c9c9d4, 0x005f5f7d, 0x00293763, 0x002b4481, 0x002e509c, 0x002751ac,
- 0x002955bb, 0x002852b3, 0x002d4fae, 0x002e4ba3, 0x006e80d2, 0x006889da, 0x002d52a3, 0x004264b7, 0x00607bca, 0x007691db, 0x00788fd9, 0x008296dc, 0x0088a4e7, 0x0089a8e9, 0x007ba1dd, 0x002b4e8b,
- 0x00000005, 0x00000001, 0x00080807, 0x00282421, 0x0040332b, 0x00554132, 0x00785c46, 0x00886246, 0x00905c36, 0x00935d30, 0x00945b2e, 0x00895028, 0x00885028, 0x00a16a40, 0x00b88159, 0x00b07a54,
- 0x00a6774f, 0x00a4734d, 0x00af7b5a, 0x00ba8762, 0x00c28e6d, 0x00b98465, 0x00a4735a, 0x00956c53, 0x00593e2f, 0x001d0c06, 0x00070000, 0x00010000, 0x00020103, 0x00010102, 0x00010000, 0x00030000,
- 0x00020202, 0x00010101, 0x00000000, 0x00020202, 0x00000000, 0x00040404, 0x00030303, 0x00080808, 0x000e0e0e, 0x00131313, 0x00201a16, 0x0049392c, 0x006e5c4d, 0x00705a4b, 0x005b4537, 0x00473121,
- 0x003e2516, 0x00382110, 0x00422a19, 0x004e3626, 0x00584030, 0x00553f2e, 0x004c3829, 0x003b2b1d, 0x001c1209, 0x000d0401, 0x00090000, 0x000f0502, 0x00352914, 0x0046381a, 0x004c3a16, 0x00483309,
- 0x00fbfdfd, 0x00f3f3fc, 0x00f4effd, 0x00f1eefd, 0x00e4e4e7, 0x00d8e0c1, 0x00e1ecae, 0x00ecf9a8, 0x00e9f5ae, 0x00d7e4ab, 0x00caceba, 0x00d0c8eb, 0x00eae1f5, 0x00f7f6fe, 0x00c8cfdd, 0x0062748f,
- 0x001f4782, 0x00234f9d, 0x002050a6, 0x00224da7, 0x00214599, 0x00213680, 0x00596ab0, 0x0092a7ef, 0x006e8eda, 0x003d61af, 0x00466ec1, 0x004772ca, 0x002f59b9, 0x002146ad, 0x002e4ebb, 0x003c58c8,
- 0x004664db, 0x004365d3, 0x003a62c6, 0x003661bc, 0x002e54b9, 0x003154bd, 0x005274d7, 0x005d7ed6, 0x007a98ca, 0x00aac9e1, 0x00d9edf6, 0x00f9fbf9, 0x00f5f7f8, 0x00d3dce7, 0x00bfcadd, 0x00c7d7f0,
- 0x00aec1df, 0x0096a9ce, 0x00a8bce3, 0x00bed5f2, 0x00bdcff2, 0x009cadd9, 0x00abbde3, 0x00daedfd, 0x00e5fafe, 0x00ecfeff, 0x00bfd3e4, 0x009eb4cf, 0x00c2d7f6, 0x00e3f9fe, 0x00bdd2f2, 0x0094aecd,
- 0x00a7afd6, 0x00d6e3f9, 0x00cbd8f7, 0x00b9cce7, 0x00b9cfe6, 0x00b8ccdb, 0x00cfe4f7, 0x00c0d3f0, 0x00adbfea, 0x00b9c8f9, 0x0099abec, 0x004e69c5, 0x003f59b8, 0x003c55b8, 0x00344bb2, 0x003047af,
- 0x00334bb2, 0x00334aaf, 0x00304ba8, 0x002e4da6, 0x003050a6, 0x00304ca2, 0x00264093, 0x001c3688, 0x0019307e, 0x001c317e, 0x0020317c, 0x00212f78, 0x00212e73, 0x001f2b6d, 0x001c2866, 0x001c2863,
- 0x001c2456, 0x00182250, 0x001c2956, 0x0035456f, 0x00647698, 0x008090ac, 0x00a1acc4, 0x00b0b8c9, 0x00a9a6ae, 0x009f9b9d, 0x00a4a3aa, 0x00a4aabf, 0x009599ac, 0x009498a9, 0x00babcc9, 0x00bebfcb,
- 0x00c5c7d3, 0x00bcc2ce, 0x00b4bdcb, 0x00b4c0cf, 0x00bac7d6, 0x00c4c9ce, 0x00c7c7c6, 0x00c6c9c6, 0x00c7c7c6, 0x00d1d2d0, 0x00f4f5f4, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfcfd, 0x00fdfdfe, 0x00eeeeef,
- 0x00979b9e, 0x006e6f77, 0x00757582, 0x00454456, 0x001f1c38, 0x00222141, 0x00222444, 0x00222448, 0x0024274b, 0x0024274b, 0x00242850, 0x00222756, 0x00282e56, 0x002f365d, 0x00293057, 0x00282d55,
- 0x003d3d6d, 0x00595a82, 0x00898ba9, 0x00a4a8b6, 0x00bec2bc, 0x00adb1bc, 0x00646681, 0x00323855, 0x00202c4f, 0x0018294b, 0x00202f4b, 0x0031384e, 0x00494548, 0x00544439, 0x0059402c, 0x00613f22,
- 0x00623f0c, 0x005e3b09, 0x00644210, 0x006a4916, 0x00694513, 0x00694512, 0x006d4b17, 0x00714f1b, 0x00755121, 0x00734f1e, 0x006f4e18, 0x006b4e10, 0x00755019, 0x007f5822, 0x00825b1f, 0x00896021,
- 0x00896224, 0x00836023, 0x0072531e, 0x00634423, 0x00624531, 0x00704c17, 0x007d5511, 0x00805c1d, 0x00855c2f, 0x0083612f, 0x0086642f, 0x0089672a, 0x00886727, 0x00855f23, 0x007d511d, 0x00764d1d,
- 0x00734d1c, 0x00795222, 0x007c5524, 0x007a5423, 0x00785222, 0x00795322, 0x007a5222, 0x00774e1e, 0x00714c1b, 0x00744e1e, 0x00795421, 0x0077531b, 0x0078511a, 0x0077501a, 0x0076511a, 0x0076511c,
- 0x00734b18, 0x00744c19, 0x00714c19, 0x00714e1b, 0x00795422, 0x007c5926, 0x007c5c27, 0x007c5c27, 0x007b5922, 0x007a5822, 0x007a5822, 0x00795721, 0x007d5a26, 0x007f5c28, 0x00805d28, 0x007f5b28,
- 0x00735b2d, 0x006f5525, 0x006b4f1c, 0x006e501e, 0x0072532c, 0x006f5438, 0x005f4d3e, 0x004a3e40, 0x002e3049, 0x002b2f51, 0x00383f5d, 0x005b6070, 0x00818792, 0x007b808d, 0x00696d7e, 0x005f6678,
- 0x0057597b, 0x0057587d, 0x004c4e72, 0x00444865, 0x003a3d50, 0x002f344b, 0x0029304e, 0x00242849, 0x00272853, 0x003d3d62, 0x009493af, 0x00dcdeec, 0x00fbfdfd, 0x00fafcfa, 0x00fefefe, 0x00fffcff,
- 0x00dbdce5, 0x00817979, 0x003e2d1f, 0x006a4c2e, 0x00a3734b, 0x00bd8b69, 0x00c59881, 0x00ad8c87, 0x00717c8e, 0x005d7c9a, 0x005688b2, 0x004c8cc1, 0x00719cc7, 0x008aa8d3, 0x00839fd2, 0x007b9edb,
- 0x005e9aea, 0x005798e2, 0x005f97d4, 0x0081a6ce, 0x00afb1b8, 0x00a8987c, 0x00967f54, 0x00ad9a6c, 0x00bba67e, 0x00bda984, 0x00c1ae8c, 0x00bdad8e, 0x00bfae96, 0x00baaa94, 0x00b7a793, 0x00b7a795,
- 0x00b5aa8b, 0x00b5aa8c, 0x00b2a98d, 0x00b1aa90, 0x00b1a78f, 0x00b2a78f, 0x00b2a68c, 0x00b1a286, 0x00b5a282, 0x00b6a27e, 0x00b6a17c, 0x00b1a180, 0x00ae9f7f, 0x00ac9e7e, 0x00a69b7b, 0x00a1987c,
- 0x00918b75, 0x007c7768, 0x00514d45, 0x00251f1c, 0x001a1517, 0x00110911, 0x000a0709, 0x00030800, 0x0019201d, 0x004c485a, 0x0049394b, 0x00402127, 0x006b3e12, 0x008a5723, 0x00885023, 0x0074391a,
- 0x00613721, 0x00684632, 0x00735647, 0x006a594d, 0x00453e3b, 0x00121310, 0x000a0c0a, 0x00060c09, 0x00080e0b, 0x000a0f09, 0x000b0c0a, 0x00090709, 0x00110b12, 0x00110c0b, 0x00241f10, 0x004e492c,
- 0x00928b5f, 0x00a59d6e, 0x00aca176, 0x00b0a181, 0x00b09c8a, 0x00b5a38d, 0x00af9e84, 0x00b4a283, 0x00b6a378, 0x00aca27a, 0x00b1b091, 0x00d8e1cb, 0x00f4fefc, 0x00f6fffd, 0x00f7fcff, 0x00fdfdff,
- 0x00f1eeea, 0x009f9894, 0x00352b24, 0x0033251b, 0x003f2c20, 0x00473329, 0x0056453e, 0x0060514e, 0x00605a5b, 0x00555256, 0x003c3b43, 0x001f2429, 0x00090a0f, 0x00040304, 0x00020101, 0x00040302,
- 0x0008091c, 0x000c1337, 0x000a1a51, 0x00031d67, 0x00092783, 0x00132b85, 0x00152a68, 0x000d1f30, 0x0048524b, 0x00747e96, 0x00525791, 0x001b2379, 0x00051565, 0x00051954, 0x00000f41, 0x0003103f,
- 0x00102d71, 0x001c41ad, 0x00123cab, 0x000a2976, 0x0053545a, 0x00a49cae, 0x00cdcadc, 0x00b0bac3, 0x00928957, 0x00a47747, 0x00b67f52, 0x00b28c58, 0x00b99163, 0x00be9463, 0x00c29b67, 0x00c19c5f,
- 0x00c6a460, 0x00ccae6e, 0x00d3b983, 0x00c1a985, 0x0074614e, 0x004b2c29, 0x005f3a3e, 0x00623f3d, 0x005a3a38, 0x00583d4b, 0x00493755, 0x00403663, 0x0048436b, 0x0050465a, 0x00372829, 0x002e1b06,
- 0x004c2d40, 0x00603c45, 0x007e5450, 0x009e6b5a, 0x00a76b58, 0x00a46759, 0x00a1675f, 0x00986265, 0x00886266, 0x00624546, 0x00381517, 0x00511d15, 0x0068211f, 0x00721f21, 0x00822630, 0x00791a24,
- 0x006d171a, 0x00641314, 0x00671b17, 0x00661b15, 0x0065160f, 0x005d100f, 0x005e1315, 0x00600f0d, 0x005f0f0a, 0x0051130e, 0x00603534, 0x00605250, 0x0055575a, 0x00585457, 0x00635156, 0x006d5154,
- 0x005c5558, 0x005a5556, 0x005a5656, 0x00595555, 0x005a5857, 0x005d5a59, 0x005e5b5a, 0x00605e5a, 0x0062605c, 0x0064615c, 0x0068625f, 0x006a6363, 0x00696269, 0x00656169, 0x0062606a, 0x0061606c,
- 0x0062636c, 0x005e5f63, 0x00949692, 0x00e8e9dd, 0x00feffef, 0x00fbfff9, 0x00f9fefe, 0x00fcfffd, 0x00d4cbc4, 0x00736356, 0x00433120, 0x00543d27, 0x0066482f, 0x006d4d32, 0x00735337, 0x006f4f33,
- 0x0064472c, 0x005b3f28, 0x004c3623, 0x003e301f, 0x002f2419, 0x00231a13, 0x001c1511, 0x001c1310, 0x00261518, 0x002a1719, 0x002b1917, 0x00281d13, 0x002c1f12, 0x00322417, 0x003b2b1e, 0x00413021,
- 0x004d3924, 0x00523b26, 0x00553f27, 0x00553d25, 0x0053391f, 0x0052391a, 0x00543a1b, 0x00523b20, 0x004a3c2d, 0x00473c33, 0x00473e33, 0x004d4136, 0x00604a34, 0x0075583a, 0x00a78159, 0x00b68b5e,
- 0x00a87834, 0x00ae7e3b, 0x00be8d49, 0x00c89752, 0x00ce9b56, 0x00d29f5b, 0x00cf9f5e, 0x00c19454, 0x00c1925c, 0x00c0945e, 0x00af8554, 0x00a57f54, 0x00976e43, 0x0093693b, 0x00a57748, 0x00b0824f,
- 0x00c09764, 0x00c59d6d, 0x00a07c4f, 0x00907048, 0x008a6d49, 0x00806640, 0x006b552e, 0x005c4727, 0x00463d29, 0x00373123, 0x0027261f, 0x001d1f1e, 0x00171a1a, 0x00151a16, 0x00131a15, 0x001d231b,
- 0x00353335, 0x00443f3d, 0x00574d46, 0x00645549, 0x00786350, 0x00836a54, 0x007f634b, 0x0074553c, 0x0066422f, 0x00573521, 0x003e2915, 0x00363429, 0x00605953, 0x00867d77, 0x0091887f, 0x00786e5d,
- 0x00595335, 0x005c583c, 0x006a6551, 0x006b655c, 0x00615c64, 0x004b4950, 0x002b292e, 0x001e1c21, 0x001c1c23, 0x001d1e1f, 0x00252421, 0x00332d21, 0x00413420, 0x004e3d21, 0x005f4928, 0x006d522e,
- 0x00775631, 0x007b5b34, 0x007b5b33, 0x00785731, 0x006f502c, 0x00654a2a, 0x00573e24, 0x0044311b, 0x00271a0d, 0x00130c01, 0x00060400, 0x00010300, 0x00000403, 0x00010304, 0x00000302, 0x00000804,
- 0x00212016, 0x003e3522, 0x00635238, 0x0079623f, 0x00927147, 0x00967d5b, 0x00c9b9a1, 0x00f9f7e8, 0x00fbfdfe, 0x00f9fcfc, 0x00fcfbfd, 0x00fefafe, 0x00c8bdc3, 0x0079737a, 0x0087858f, 0x00b3b6c1,
- 0x00dddeea, 0x00e6e8f3, 0x00edeffa, 0x00d9dce5, 0x00686b71, 0x001b1d20, 0x00030408, 0x00040409, 0x00060809, 0x00010303, 0x0008090a, 0x0009090a, 0x00090809, 0x000a0809, 0x000a080a, 0x000b090b,
- 0x00080707, 0x00080808, 0x00080708, 0x00070707, 0x00090908, 0x00090908, 0x00080906, 0x00090a07, 0x000c0b08, 0x000b0a08, 0x000b0c09, 0x000b0d0a, 0x000d0c0b, 0x000c0b0a, 0x000c0d0c, 0x000e100e,
- 0x00210901, 0x00180f0f, 0x000c1121, 0x00334c6c, 0x006395d3, 0x004f8dd4, 0x00498bdb, 0x004789dd, 0x004c85db, 0x00467ccd, 0x00769edf, 0x00a3b2de, 0x007b8fc3, 0x005575ad, 0x004972b2, 0x004071b5,
- 0x003f79c6, 0x003d7bc9, 0x00387acd, 0x003377c8, 0x003173c5, 0x002c6db7, 0x002e6eb5, 0x00326ebe, 0x003367bf, 0x003362b0, 0x004467aa, 0x00647ba8, 0x00666673, 0x00483d3b, 0x002b1512, 0x001c0203,
- 0x00080103, 0x00050004, 0x00040308, 0x0002020b, 0x000f020c, 0x00180106, 0x00381d19, 0x00603f33, 0x00513b28, 0x00312210, 0x00291e0e, 0x002a2010, 0x00281d11, 0x00251c11, 0x00231a11, 0x001f190e,
- 0x0016100b, 0x00140f0a, 0x00120d0b, 0x00100d0a, 0x00100c0c, 0x00140e0e, 0x00191111, 0x001b1313, 0x00201913, 0x00251e12, 0x002c2314, 0x002e2512, 0x00322910, 0x00352c0f, 0x00372d0f, 0x00362c0e,
- 0x00312f0d, 0x002e2c0c, 0x002a290f, 0x00181804, 0x0059574b, 0x00d3d0ca, 0x00fdfcfa, 0x00fefefd, 0x00fbfcfa, 0x00fefdfb, 0x00d2d1d8, 0x006d6e83, 0x0027345a, 0x001f396e, 0x002c4f95, 0x00214fa6,
- 0x002655b8, 0x002953b7, 0x002e4fb6, 0x00314cb0, 0x005a66cb, 0x003d67c8, 0x002d61c2, 0x004f7ed9, 0x007697e7, 0x00809bde, 0x008596d3, 0x00848fc6, 0x008895cd, 0x00889bd5, 0x0091a5e1, 0x005169a9,
- 0x0005070c, 0x00000000, 0x00060605, 0x00211d1a, 0x0050433a, 0x00755e4f, 0x00997962, 0x00a07757, 0x00a26d45, 0x00a36b3e, 0x009e6233, 0x0092572b, 0x008a5126, 0x00986034, 0x00ad7349, 0x00aa7049,
- 0x00a16b41, 0x009f6943, 0x00a7714c, 0x00ae7954, 0x00ad7856, 0x00ac7453, 0x00aa7455, 0x00a17359, 0x005f4032, 0x001f0a06, 0x00090000, 0x00030000, 0x00030002, 0x00010001, 0x00020000, 0x00040000,
- 0x00000100, 0x00000000, 0x00020202, 0x00010101, 0x00010001, 0x00010101, 0x00020101, 0x00030303, 0x000b0a0b, 0x00111212, 0x002c2320, 0x00685147, 0x0091766c, 0x007d6259, 0x0054392e, 0x003b2110,
- 0x003c1f13, 0x003b2012, 0x00533326, 0x006b493d, 0x00735343, 0x006a4c45, 0x00684b4a, 0x00644b4b, 0x004a3135, 0x00231013, 0x000d0000, 0x00140602, 0x004a3a1e, 0x00675229, 0x00654e1e, 0x00543f08,
- 0x00f6fbfd, 0x00f5f2ff, 0x00f6effc, 0x00eee7f8, 0x00dce0d5, 0x00e7f3c5, 0x00edfbaf, 0x00e5f09a, 0x00d7d995, 0x00bcc68f, 0x00a8afa0, 0x00aeabdb, 0x00d4d1eb, 0x00edf1fa, 0x00c8d3da, 0x005d707f,
- 0x001d3c73, 0x00264c95, 0x00204b9c, 0x001c469d, 0x00194291, 0x00253f7f, 0x007184bc, 0x00a3bbf1, 0x006f8cd6, 0x003659a6, 0x003860b5, 0x00426cc9, 0x003b64ca, 0x002a50ba, 0x002849b7, 0x003052bf,
- 0x003e5ec9, 0x004465d3, 0x004365cf, 0x003c5dc4, 0x003654b0, 0x005774bf, 0x0095b2ee, 0x00a6c2ec, 0x00d0e1f8, 0x00e9f8fd, 0x00e3edf0, 0x00e4e7dc, 0x00eef6ef, 0x00e4f1f5, 0x00cbd7f3, 0x009bacd3,
- 0x008797bd, 0x00b9c5e3, 0x00effbfc, 0x00f1fdfa, 0x00d4dcf4, 0x00a9b9db, 0x00bdd2ef, 0x00dff5fb, 0x00e1f5ff, 0x00dbeef7, 0x00a3b9be, 0x00aabcc9, 0x00e3f5ff, 0x00dbebf9, 0x00a5b7d4, 0x009eb0cb,
- 0x00bcc8f6, 0x00b7c5f5, 0x00b5cbf2, 0x00b6cdf1, 0x0087a1c6, 0x006e8cac, 0x0099b8d8, 0x009cb6d8, 0x00aabfe8, 0x00b4c7f2, 0x007388c5, 0x00304da7, 0x002543a0, 0x002947a5, 0x00314cb1, 0x003a53bb,
- 0x00425bc2, 0x004860c3, 0x00405cb6, 0x003350a7, 0x002b4a9c, 0x002d479b, 0x00294492, 0x001e3984, 0x001d307b, 0x001f3078, 0x00243276, 0x00232e6f, 0x00212a67, 0x00202861, 0x00212a5e, 0x00263060,
- 0x002f3459, 0x0041496a, 0x00727d9e, 0x009faccb, 0x00c2cee9, 0x00cad4eb, 0x00b3bbcc, 0x009aa2ad, 0x009a97a2, 0x00ada7af, 0x00b1afba, 0x00a4abc1, 0x008e94a4, 0x00949aaa, 0x00bcc2cd, 0x00bec2cd,
- 0x00c5c5d3, 0x00babfcc, 0x00b3bac6, 0x00b5bfcb, 0x00bac7d2, 0x00c5c8cb, 0x00ccc8c9, 0x00cac9c9, 0x00c9c6c9, 0x00dad8d9, 0x00f6f5f6, 0x00fcfcfc, 0x00fbfdfc, 0x00fdfefe, 0x00fbfdfb, 0x00e6e8e6,
- 0x00928f98, 0x00706f7a, 0x007d7e88, 0x00464756, 0x001f213a, 0x00242644, 0x00242443, 0x00252747, 0x00282751, 0x00282850, 0x00262951, 0x00292e5a, 0x00363b5f, 0x00434a6c, 0x00646b8a, 0x00878cac,
- 0x00a8a5ca, 0x00b7b5d5, 0x00b2b3c9, 0x00999ba4, 0x00b0b3af, 0x00d4d7dd, 0x00cdd1de, 0x007e8998, 0x002b3358, 0x001f2c59, 0x00202d56, 0x00202850, 0x002b2b44, 0x003d333f, 0x004d3c3d, 0x0059423b,
- 0x0061431c, 0x005c3e15, 0x005b3f11, 0x005d410e, 0x0061410d, 0x0064430e, 0x00674611, 0x006b4813, 0x00704818, 0x00724918, 0x00714c13, 0x00715315, 0x007d591f, 0x00835c24, 0x007f581d, 0x00835a1f,
- 0x008d6328, 0x0089632b, 0x00886634, 0x00826238, 0x007a5e42, 0x00815c29, 0x007d5717, 0x0078581c, 0x007d5326, 0x00795423, 0x00795723, 0x0079581e, 0x007e5c1f, 0x00815c22, 0x007a531c, 0x00754e1a,
- 0x0071491b, 0x00704a1a, 0x00704c1b, 0x006f4c1b, 0x00724f1d, 0x00724f1d, 0x0074501e, 0x00734e1c, 0x00744d1f, 0x00744e20, 0x0071511c, 0x00725417, 0x00745317, 0x00725116, 0x00705015, 0x00715118,
- 0x00785321, 0x00785321, 0x006e4b19, 0x006c4917, 0x0076501f, 0x007a5523, 0x007a5724, 0x007c5925, 0x007f5826, 0x007d5724, 0x007e5922, 0x007c591f, 0x007b5821, 0x0078561f, 0x00715018, 0x006b4a14,
- 0x005f4a1f, 0x00624e22, 0x00644f28, 0x00665333, 0x00675342, 0x00574640, 0x003e3537, 0x00322f3e, 0x002c3055, 0x00282e5a, 0x002d3755, 0x00686e79, 0x00b9c1c8, 0x00ccd1db, 0x00cad0d7, 0x00b9c2cc,
- 0x00a4a6c2, 0x00a4a6c5, 0x00a0a2c0, 0x009c9fbd, 0x009094ab, 0x008c92a6, 0x0083899d, 0x007b7f99, 0x00757396, 0x00656482, 0x008f91a4, 0x00d7dbe1, 0x00fcfefb, 0x00fcfefc, 0x00f8f9f9, 0x00f9faff,
- 0x00e0d8e3, 0x008b7d81, 0x0058463d, 0x00866c53, 0x00b58c66, 0x00c9a17b, 0x00d4b28d, 0x00c5b49d, 0x008e92a6, 0x006e81a7, 0x006e8cb5, 0x00759bb2, 0x00a1adba, 0x00b2b6c3, 0x00969db1, 0x007d92b2,
- 0x006399de, 0x005593e0, 0x005c97db, 0x007da7de, 0x00a5afc9, 0x009c968d, 0x0092876b, 0x00a49c80, 0x00b1a696, 0x00b1a89a, 0x00b1ab9e, 0x00aeaa9e, 0x00b1ada4, 0x00aca9a0, 0x00aca99f, 0x00adaba1,
- 0x00b2abac, 0x00afa9aa, 0x00a9a8a1, 0x00a8a9a0, 0x00aba8a1, 0x00aaa4a1, 0x00a8a39b, 0x00a9a29a, 0x00afa199, 0x00b0a096, 0x00aca08d, 0x00a8a18d, 0x00a49f98, 0x00a09e98, 0x009b9d8e, 0x00959e8c,
- 0x00878c81, 0x0077767a, 0x00595a67, 0x00323448, 0x002c303c, 0x00292a3b, 0x00232b39, 0x001f2d37, 0x002e363e, 0x005f5051, 0x00745250, 0x00885541, 0x00a56d42, 0x00b17746, 0x00bc7c4b, 0x00bf7349,
- 0x00ba7e5b, 0x00be8967, 0x00af8463, 0x0085694c, 0x005f544b, 0x00393a3d, 0x00262d3a, 0x00202b42, 0x00233045, 0x00213242, 0x0020323f, 0x00213043, 0x00222d40, 0x00293142, 0x00373d42, 0x00565a59,
- 0x00827f73, 0x008d8c7c, 0x00929183, 0x0095928d, 0x00968f97, 0x009c989a, 0x00959591, 0x0093948c, 0x009b988c, 0x0093978a, 0x00a0aa9b, 0x00ccd9d0, 0x00f5fefe, 0x00f7fefc, 0x00f5fcfc, 0x00f6fdf9,
- 0x00f5f0f1, 0x00a29a9c, 0x002c2220, 0x00271a16, 0x0036251d, 0x0048362f, 0x0064554f, 0x00776b67, 0x0080787b, 0x00777174, 0x00645e5f, 0x00474443, 0x00271c26, 0x00190815, 0x00110109, 0x000f0102,
- 0x000a091c, 0x00070f38, 0x0003144f, 0x00021963, 0x000d2470, 0x00142686, 0x001a2d78, 0x000b213c, 0x002e3b30, 0x00656d79, 0x006b7398, 0x002e347c, 0x00061165, 0x000a1964, 0x000a1e5d, 0x00071951,
- 0x000a236c, 0x0017389d, 0x000e3397, 0x00052a74, 0x00151f41, 0x003e4173, 0x00838bbb, 0x0096a7d2, 0x007a7b78, 0x00705951, 0x00755945, 0x00736247, 0x007e684e, 0x00876a50, 0x00917351, 0x00997c4e,
- 0x00a58751, 0x00a28a53, 0x00a3915c, 0x0092815a, 0x004d3f28, 0x002b150f, 0x002b0e13, 0x00311417, 0x00422128, 0x00492f3d, 0x004c3346, 0x004b344e, 0x00574054, 0x00694f52, 0x006d4c45, 0x0065422b,
- 0x005e333b, 0x005f3631, 0x007c5641, 0x008e6943, 0x00895e37, 0x007a4f31, 0x009c6f5e, 0x00c29896, 0x00ccaab0, 0x009a8088, 0x00523230, 0x007a473e, 0x0083413a, 0x006d1e1a, 0x00792221, 0x00731a1e,
- 0x006c181f, 0x005b0f13, 0x005e1514, 0x00641e15, 0x00611a0e, 0x005e1712, 0x005d1817, 0x00510b04, 0x00520c06, 0x00420904, 0x002d0301, 0x001c0503, 0x000d0406, 0x00100204, 0x00130003, 0x00180000,
- 0x000a0008, 0x000a0007, 0x00080001, 0x00080200, 0x000a0200, 0x000e0702, 0x00110a02, 0x00140c04, 0x001d130e, 0x0021150f, 0x00241711, 0x00231713, 0x001d151b, 0x0015141a, 0x000e111a, 0x00090f1b,
- 0x000e0b15, 0x00070405, 0x0061615b, 0x00e7e5db, 0x00fefff1, 0x00fbfef9, 0x00f6fdfe, 0x00fcfffe, 0x00d2cbc2, 0x006e6152, 0x003c2e1b, 0x004f3d25, 0x0064492f, 0x006d5035, 0x00755a3e, 0x0073583c,
- 0x006b4d38, 0x00634633, 0x00533d2c, 0x00463728, 0x00392e24, 0x002b221d, 0x00241d19, 0x00261e19, 0x00332429, 0x003a2b2c, 0x003f302c, 0x0041362a, 0x00483928, 0x004d3b29, 0x0056412d, 0x005d492f,
- 0x006f4f35, 0x00705037, 0x006f5236, 0x006e5034, 0x0067492e, 0x005e4123, 0x005b3e1f, 0x005a3f24, 0x00614131, 0x005a4238, 0x005b4941, 0x00625552, 0x0054473f, 0x00302211, 0x00533c20, 0x00886b47,
- 0x00ae7e31, 0x00ae7f33, 0x00be8f3f, 0x00c79a46, 0x00c89847, 0x00c7954c, 0x00c3944a, 0x00c39753, 0x00deb17f, 0x00d5ae7c, 0x00ab8655, 0x008f6e44, 0x00775326, 0x007d5727, 0x009e7343, 0x00a97d49,
- 0x00b48b5b, 0x00ba9264, 0x00946f41, 0x0089693c, 0x007e6139, 0x00745b32, 0x005f4b24, 0x00513f20, 0x00453627, 0x003c2f27, 0x002d2521, 0x00232120, 0x00212021, 0x0020231e, 0x001e241b, 0x002b3127,
- 0x00494343, 0x00534c45, 0x00574d3d, 0x0055472f, 0x00634e2f, 0x006f5334, 0x0077573a, 0x0079563a, 0x00714830, 0x00623d23, 0x004a3018, 0x00393025, 0x004f453c, 0x00645a50, 0x00676051, 0x004d472f,
- 0x00322a15, 0x00302a15, 0x00393527, 0x00474340, 0x00504c59, 0x00444650, 0x00272b32, 0x001e1e26, 0x002b242f, 0x002a262a, 0x00322c2a, 0x003e3429, 0x004a3c26, 0x00554224, 0x00634c29, 0x006e542d,
- 0x007d5e38, 0x007f6038, 0x007b5c30, 0x0079572d, 0x00715127, 0x00694c27, 0x005c4121, 0x00483317, 0x002e2211, 0x001a1206, 0x000a0700, 0x00010300, 0x00000401, 0x00010305, 0x00010200, 0x00000401,
- 0x001f1c15, 0x003e3120, 0x00604f34, 0x0078613c, 0x00927044, 0x00957b58, 0x00c7b69e, 0x00fbf5e7, 0x00fffdff, 0x00fafcfe, 0x00fafbfd, 0x00fdfafb, 0x00c3babf, 0x007a767c, 0x00898992, 0x00aeb6c1,
- 0x00e0e0f3, 0x00f0f3ff, 0x00e6eaf5, 0x00ecf1fb, 0x00bfc3ca, 0x005c6065, 0x000b0d10, 0x00000201, 0x0009070b, 0x0007050a, 0x00070608, 0x00080707, 0x00080708, 0x00090908, 0x00090907, 0x00090908,
- 0x00090a09, 0x00090a09, 0x00080808, 0x00070707, 0x00080807, 0x00080807, 0x00090806, 0x000a0a07, 0x000d0b0b, 0x000c0b0a, 0x000b0c0b, 0x000b0d0b, 0x000d0c0b, 0x000c0c09, 0x000c0e0b, 0x000f110d,
- 0x00220d06, 0x00170f12, 0x00191f31, 0x00456083, 0x00609add, 0x00488eda, 0x00458cdf, 0x004889de, 0x005d81ca, 0x00677ebc, 0x008a96bf, 0x009596a9, 0x00747891, 0x00707a97, 0x006e7ca0, 0x006478a4,
- 0x005678b5, 0x00456eb3, 0x003c6eb8, 0x003c76c7, 0x003372cc, 0x002e72bb, 0x002b6eb4, 0x002b6ab8, 0x003668c7, 0x003864ba, 0x004065aa, 0x00546e99, 0x0038444a, 0x000e0b0d, 0x00130302, 0x001c0000,
- 0x00090406, 0x00080509, 0x0004030b, 0x0000000e, 0x0006000b, 0x0013060b, 0x00190603, 0x003d251d, 0x005b4338, 0x00432e1f, 0x00291b09, 0x0027210f, 0x00271f10, 0x00251c12, 0x001f170f, 0x001a170e,
- 0x00130e0b, 0x00110c09, 0x000f0b0a, 0x000d0c0a, 0x000d0c0a, 0x00130d0d, 0x00191010, 0x001c1312, 0x00221614, 0x00261c13, 0x002c2215, 0x002e2413, 0x00322810, 0x00342b0f, 0x00352d0f, 0x00332c0e,
- 0x00312c0e, 0x00312b0f, 0x002a270e, 0x00171702, 0x00504e40, 0x00c2c1b8, 0x00fbfcf7, 0x00fafdfb, 0x00fffcff, 0x00fefcff, 0x00dfe3e9, 0x007b8497, 0x001c2f52, 0x001b3567, 0x00274b8b, 0x002b54a6,
- 0x002a56b8, 0x002d54bc, 0x00234bb0, 0x002c49b1, 0x003b52b6, 0x004364c0, 0x006289dc, 0x007898e3, 0x008b94cc, 0x007d81ae, 0x00717392, 0x00605f7e, 0x00616180, 0x006b6b92, 0x008a88b1, 0x0070729f,
- 0x001a191d, 0x00070304, 0x00040001, 0x0016100d, 0x00564539, 0x00896e59, 0x00ab886a, 0x00b1845e, 0x00a9774f, 0x00a77349, 0x009b6438, 0x008e5529, 0x007c421c, 0x00773e1a, 0x007e4725, 0x00855231,
- 0x008d5e43, 0x00946854, 0x00a37a6d, 0x00a7857a, 0x00a58285, 0x00a37e79, 0x00a17c79, 0x0095767a, 0x00594157, 0x0020112c, 0x00080115, 0x00040208, 0x00020000, 0x00050000, 0x00050000, 0x000a0000,
- 0x00040202, 0x00030101, 0x00030203, 0x00010102, 0x00010102, 0x00000101, 0x00020403, 0x00030504, 0x00090607, 0x000a0a0b, 0x001e1613, 0x00563e34, 0x008c7167, 0x0080635b, 0x005e4036, 0x00503122,
- 0x00482016, 0x004b2718, 0x006a4432, 0x0087614f, 0x008c6652, 0x0075524f, 0x00755054, 0x00815e5b, 0x00755857, 0x00412e2c, 0x000d0301, 0x00190a03, 0x00594018, 0x0087672c, 0x008a6a2a, 0x00705310,
- 0x00e0fef6, 0x00e7eef8, 0x00fbedfc, 0x00f4e2f0, 0x00d7e4bf, 0x00ddefaf, 0x00eceea9, 0x00f4e0a3, 0x00e3d7b1, 0x00bbc4ad, 0x008294a2, 0x006d7bc3, 0x00abb8d7, 0x00d7e9ef, 0x00cad9d5, 0x00617272,
- 0x000e2a4b, 0x0023407e, 0x00264695, 0x001a4193, 0x0012438a, 0x00315475, 0x0086a3b8, 0x00adcbee, 0x006790c7, 0x003661ad, 0x003461ba, 0x003b6acd, 0x00345ec8, 0x00355bc2, 0x002c4fb5, 0x002849ae,
- 0x00195993, 0x003060b8, 0x004464d3, 0x003f51cb, 0x005964b2, 0x009fafc8, 0x00ddece9, 0x00eaf7e3, 0x00dff8f2, 0x00bfd4ed, 0x00abb7d5, 0x00cedfcb, 0x00e4fcfb, 0x00c5e7fb, 0x008ba8e7, 0x006c81de,
- 0x0093aad7, 0x00d9e8eb, 0x00fcfdfa, 0x00fefef6, 0x00dfd5f3, 0x00aabada, 0x00b7d0f2, 0x00c7def9, 0x00c7e6e9, 0x00c3dedc, 0x00adc1bf, 0x00c5d7d0, 0x00edf7f6, 0x00eaf2f8, 0x00d2d5e4, 0x00d5d4ea,
- 0x0092bae1, 0x006e93c7, 0x007292d7, 0x00718fe1, 0x006885e0, 0x007490e7, 0x009db9f9, 0x00b9d5fe, 0x00a7d1ed, 0x007da6b8, 0x003c6290, 0x002750ad, 0x00305ab9, 0x003864c5, 0x004670d3, 0x004974d5,
- 0x004573cb, 0x00416cc5, 0x003759b2, 0x002c4aa3, 0x00264199, 0x00234194, 0x002c4795, 0x00273f88, 0x000e2a5b, 0x00112453, 0x001c275a, 0x001b2157, 0x0029295f, 0x00444470, 0x00696b8e, 0x007d7e9a,
- 0x00829395, 0x0094a2a7, 0x00bac3cd, 0x00cfd6e2, 0x00cfd4e2, 0x00c5c9d9, 0x00b7bacd, 0x00a7a9be, 0x008e97a8, 0x00a5a9bc, 0x00b1b4c6, 0x00a2abb6, 0x00878e9e, 0x009aa2b0, 0x00bcc1d0, 0x00c1c4d3,
- 0x00b5bfc0, 0x00b0babe, 0x00b4b6c0, 0x00bec0ca, 0x00c4c7d0, 0x00cac7cc, 0x00cfc5ca, 0x00d4ccd1, 0x00cdccc7, 0x00dad9d8, 0x00f8f7f9, 0x00fcfbfe, 0x00fafbfc, 0x00fcfdfc, 0x00feffff, 0x00dededf,
- 0x007a7e7c, 0x006e7172, 0x007a7d89, 0x00424756, 0x0020273a, 0x001e263c, 0x00242a47, 0x00262a4e, 0x001e2445, 0x00272c51, 0x0047456f, 0x006b6887, 0x00908ea8, 0x00a7a5ba, 0x00c2bed2, 0x00d6d5e2,
- 0x00cbd2d0, 0x00aab0b3, 0x006e7078, 0x00504f5c, 0x0081818e, 0x00c6cbce, 0x00e0e9ed, 0x00a4abbc, 0x00353d5a, 0x0020234f, 0x0025245e, 0x0025215f, 0x00242052, 0x0026244f, 0x002e2c4e, 0x003d3c56,
- 0x004c442b, 0x00534525, 0x0057461f, 0x0054410e, 0x00593f05, 0x005e3f0a, 0x00644010, 0x00704515, 0x0077490f, 0x007d5011, 0x0083561b, 0x00805c23, 0x00835d29, 0x007f5d27, 0x007f5928, 0x007d5925,
- 0x00725b1e, 0x00785b26, 0x00775729, 0x00755528, 0x0077582d, 0x0073572d, 0x00735830, 0x0074552f, 0x006d531e, 0x00694f1d, 0x00694d1b, 0x00694c17, 0x006c501a, 0x006e5118, 0x006d4e15, 0x00684a13,
- 0x0061420d, 0x0062420e, 0x00664615, 0x006a4a1a, 0x0070501d, 0x0071501e, 0x00704f1e, 0x006f4e1c, 0x00684b11, 0x00654912, 0x00684e11, 0x0069560b, 0x006d5911, 0x0067540c, 0x00674e0b, 0x006c5113,
- 0x0066520f, 0x006e571c, 0x006f5320, 0x006a4c1a, 0x00724d26, 0x00765426, 0x007d5629, 0x00865830, 0x00825924, 0x00825723, 0x00815320, 0x007e511b, 0x00784f16, 0x00704a0f, 0x006f4d13, 0x006f4f15,
- 0x00585b1c, 0x005d5e2c, 0x0059543c, 0x00524c47, 0x003e3a54, 0x002f2f51, 0x00282a56, 0x00252b5a, 0x001e2c51, 0x001d2e50, 0x0028314f, 0x00414555, 0x006c717a, 0x00979fa1, 0x00cbd0d3, 0x00d5dbd9,
- 0x00aab7ad, 0x008a9496, 0x007b7f92, 0x00797d97, 0x009395ba, 0x00babccb, 0x00d7d4da, 0x00d8d3e2, 0x00bbbcc3, 0x00a7a9ad, 0x00c0c3c3, 0x00e6ece3, 0x00fafef5, 0x00fafdf9, 0x00fafcfc, 0x00fefdff,
- 0x00ded5c2, 0x00807574, 0x0047394d, 0x005c596e, 0x006c7c80, 0x00738979, 0x00899984, 0x00929f8d, 0x0083868e, 0x00897fa1, 0x00ae9bb4, 0x00c5b49b, 0x00ddb88f, 0x00e3ba8d, 0x00d8b398, 0x00b1a5a0,
- 0x006ea3c7, 0x005da2df, 0x005ba1e9, 0x00669ce7, 0x007e97ce, 0x0076889f, 0x0075858b, 0x007c8d97, 0x0079929a, 0x0077919e, 0x007b92a6, 0x00778f9f, 0x007f94a1, 0x007c9198, 0x0081939d, 0x0081959d,
- 0x007a84a8, 0x00828ba9, 0x00858ba7, 0x00868ea1, 0x00848ca3, 0x007e85a3, 0x008187a9, 0x008386af, 0x00788799, 0x00798794, 0x007e8894, 0x007a8c8e, 0x007186af, 0x006a89ab, 0x00688ba2, 0x00678e88,
- 0x005f837a, 0x005e7490, 0x005c659d, 0x00555e9c, 0x00586d86, 0x0056668e, 0x00495e93, 0x003e609c, 0x004c5c6e, 0x00826953, 0x00bb7f59, 0x00c87e4a, 0x00b58066, 0x00b88167, 0x00d58e73, 0x00ed9366,
- 0x00da9d71, 0x00d59f65, 0x00c99861, 0x00b6915a, 0x00968474, 0x00656274, 0x004e5587, 0x0045529e, 0x00305d93, 0x00295c87, 0x002b5d8b, 0x002e5c90, 0x00355b8b, 0x003c5a89, 0x00445d8a, 0x00536894,
- 0x00516d8a, 0x00546f93, 0x005c729d, 0x005c74a2, 0x005c74a4, 0x0059739c, 0x0059729d, 0x005675a7, 0x004d7ca1, 0x00497092, 0x006e89a3, 0x00b3c7d2, 0x00fafcfa, 0x00f8fff9, 0x00fcfef9, 0x00f8fef9,
- 0x00ecece5, 0x009f9a99, 0x0026171d, 0x001e0d13, 0x002d1c21, 0x00413536, 0x0066595a, 0x008a7c7d, 0x00918e7f, 0x008b8b7c, 0x007e7568, 0x006f5c4d, 0x004f2c4c, 0x003e1239, 0x00360928, 0x002b0611,
- 0x00060b0c, 0x00000f30, 0x00011351, 0x0003155a, 0x001c1f4b, 0x000e1a7e, 0x0014248c, 0x00122357, 0x00132d12, 0x0046573b, 0x007a827c, 0x00575b7e, 0x001f2383, 0x0018298b, 0x00172e8e, 0x00041e71,
- 0x00001346, 0x000d2762, 0x000e2772, 0x00041b6f, 0x00112d86, 0x001b358c, 0x002d4797, 0x004c66ac, 0x00466691, 0x002f4e72, 0x00334b61, 0x003c4c4b, 0x00484e53, 0x004e4b4e, 0x00584c4d, 0x0066524a,
- 0x0061582d, 0x00645b31, 0x00655938, 0x005f553b, 0x003b3529, 0x00171a20, 0x001a1b34, 0x001f1d3a, 0x001c142d, 0x00251626, 0x0031181f, 0x0040211a, 0x00512713, 0x0064311f, 0x007b4034, 0x00793b34,
- 0x00552933, 0x005a3c39, 0x0074624f, 0x00706d4b, 0x006f774d, 0x0062663f, 0x00534f31, 0x00877d6a, 0x00bbb89a, 0x00a5a485, 0x00584734, 0x00845a53, 0x00915449, 0x00651d13, 0x006a1615, 0x006d1319,
- 0x0055120f, 0x00470708, 0x004c070e, 0x00551012, 0x005a130a, 0x004e0f06, 0x0050110b, 0x004f0f0e, 0x003f1503, 0x003b1304, 0x00320b01, 0x002a0902, 0x00250303, 0x00240307, 0x00230008, 0x00230009,
- 0x00130009, 0x00140208, 0x0016020a, 0x001c080a, 0x00211206, 0x00281c0b, 0x00322214, 0x003c281b, 0x003c2b1a, 0x00412f20, 0x00462f24, 0x00443020, 0x00393232, 0x002e2e35, 0x00252a38, 0x00222635,
- 0x00171f17, 0x00101107, 0x00716a61, 0x00e7e2da, 0x00fffdfc, 0x00fdfbfd, 0x00fffcfe, 0x00fffeff, 0x00cacabb, 0x00645e48, 0x00392c16, 0x004b3b20, 0x005a492c, 0x00614f30, 0x006f583c, 0x0071553c,
- 0x005c4b33, 0x00584833, 0x00544438, 0x004f423b, 0x00463c35, 0x003c3431, 0x003a3133, 0x003a3135, 0x00373631, 0x003e3d36, 0x004a433d, 0x00544c3d, 0x00614f3a, 0x00634f33, 0x006f5132, 0x007d5b34,
- 0x00806031, 0x007f5f32, 0x00825f3a, 0x007f5c3e, 0x0077583e, 0x0064503c, 0x005e4534, 0x0068412b, 0x006c3d1c, 0x00654028, 0x006b4e44, 0x00686061, 0x005b616b, 0x00242928, 0x00221f1a, 0x00665c4d,
- 0x009a8424, 0x00a18628, 0x00b59037, 0x00c3973f, 0x00c99a45, 0x00c59545, 0x00c69750, 0x00c7985d, 0x00c5a068, 0x00cca878, 0x00c8a777, 0x00ad945e, 0x00a08049, 0x009f7b48, 0x009a6f3b, 0x00a27342,
- 0x00a88548, 0x00a9864c, 0x00906a38, 0x00866536, 0x00826136, 0x006f5731, 0x0060482c, 0x00513b26, 0x003d321f, 0x00342c21, 0x002c241d, 0x0027211f, 0x00272220, 0x0027231e, 0x00352d28, 0x00403936,
- 0x0044443d, 0x0048442f, 0x004e4426, 0x0059491c, 0x00715824, 0x007d5d2c, 0x008b653a, 0x008f643d, 0x007e5626, 0x00774f1b, 0x006e4926, 0x00534032, 0x004f3b2b, 0x004c3f28, 0x003f311e, 0x002b230f,
- 0x000f1600, 0x000a0c01, 0x00161513, 0x00282431, 0x003b334c, 0x00323746, 0x00232b37, 0x00222431, 0x00282c2c, 0x00322e28, 0x00382d23, 0x00453626, 0x0054412b, 0x00584328, 0x00634b2a, 0x00725734,
- 0x006c5c27, 0x00715d2a, 0x00785a2b, 0x00735124, 0x00734d21, 0x006a471e, 0x005d3d1d, 0x004c2f17, 0x002a200c, 0x00181404, 0x000c0701, 0x00010402, 0x00010002, 0x00000003, 0x00040103, 0x00060203,
- 0x001b1a0a, 0x003b2f17, 0x005e4e31, 0x00725e37, 0x00887042, 0x008d7553, 0x00c8b39e, 0x00fbf7e6, 0x00f8fff5, 0x00f5fdf7, 0x00fdfefc, 0x00fefefb, 0x00bfbdb9, 0x0077797b, 0x00868993, 0x00b0bac8,
- 0x00d3dcea, 0x00e4edf6, 0x00dde4f2, 0x00e5ebf9, 0x00e4ebf4, 0x00adb2b8, 0x00303138, 0x00080610, 0x00080107, 0x000a0008, 0x000e050c, 0x00080808, 0x00070807, 0x0007080a, 0x0009080b, 0x00090809,
- 0x00090909, 0x00080808, 0x00090909, 0x000a0a0a, 0x000a0a0a, 0x000a0a0a, 0x000c0c0c, 0x000b0b0b, 0x00090909, 0x000a0a0a, 0x000b0b0b, 0x000b0b0b, 0x000b0b0b, 0x000c0c0c, 0x000f0f0f, 0x00121212,
- 0x00111106, 0x00090c0a, 0x001b2639, 0x004d678d, 0x005996e0, 0x004890e1, 0x00488be4, 0x005284d7, 0x00747c9b, 0x008e7881, 0x008e6761, 0x007c5845, 0x006a432e, 0x00693d29, 0x007a4d3f, 0x008b5c58,
- 0x00837374, 0x00736e88, 0x005a659a, 0x004866a9, 0x003d6cc5, 0x003679b7, 0x002e73b8, 0x002f68c1, 0x002b5dc4, 0x002c5ebb, 0x003462ad, 0x004875a3, 0x00335458, 0x00051212, 0x000f0906, 0x001d0508,
- 0x000b0900, 0x00090600, 0x000a0601, 0x00030101, 0x00010207, 0x00010308, 0x000d080d, 0x00291c23, 0x00453630, 0x00452f27, 0x002c180d, 0x00241f0a, 0x00241f0f, 0x00201d12, 0x001c1b13, 0x00161712,
- 0x00050d05, 0x00040b06, 0x00090a0a, 0x000c090b, 0x000f0c0e, 0x00120c0d, 0x001b1113, 0x001e1317, 0x0019170c, 0x001d1a0d, 0x00261d13, 0x002b1f13, 0x002d2311, 0x00322712, 0x00362915, 0x00382c16,
- 0x00292505, 0x00292407, 0x0027210d, 0x001a1406, 0x004c4739, 0x00b1aea3, 0x00fffefc, 0x00fdfbfe, 0x00f8fdf9, 0x00f6faf9, 0x00e7effa, 0x007f96ab, 0x00142752, 0x001b336c, 0x002f4391, 0x00364daa,
- 0x00234da8, 0x002450b2, 0x00244cae, 0x002253ae, 0x003d71c6, 0x008189c9, 0x00a896cc, 0x00a488ac, 0x00735a55, 0x0053382b, 0x003f2419, 0x00301912, 0x002f1819, 0x0041242c, 0x00674552, 0x007d5267,
- 0x00342f24, 0x000e0a04, 0x00080000, 0x001b100d, 0x005d4437, 0x0089664c, 0x00a07351, 0x00a5734b, 0x009a7541, 0x00977647, 0x00926640, 0x00894f24, 0x00743a1d, 0x00723923, 0x007a4437, 0x0088584f,
- 0x00988172, 0x00a49598, 0x00ada5c2, 0x00a1a1d3, 0x008d92e2, 0x007d84bd, 0x007b80be, 0x008284d5, 0x00646fc2, 0x003b478d, 0x00171e54, 0x00050d20, 0x00030200, 0x000a0001, 0x00130103, 0x00170006,
- 0x00000200, 0x00000200, 0x00050102, 0x0002000a, 0x00000109, 0x00000204, 0x00030404, 0x00040404, 0x00000600, 0x00010500, 0x000e0806, 0x00281a10, 0x005b473b, 0x006d5447, 0x00664839, 0x0066412e,
- 0x005a371a, 0x00593418, 0x00744b33, 0x009d715b, 0x009e745f, 0x00724f42, 0x0069453a, 0x0081523d, 0x007d6343, 0x003e412a, 0x00010a00, 0x00060c01, 0x00653d0a, 0x00a26d20, 0x00b77e2e, 0x0092601a,
- 0x00f8f8f9, 0x00ecf3f2, 0x00eaf5f1, 0x00f3ece9, 0x00ecafa2, 0x00dc8e76, 0x00e49f7b, 0x00f9d5a8, 0x00ebe9c6, 0x00e2dccf, 0x009494a5, 0x003f4b8c, 0x008191ab, 0x00cbdee3, 0x00bccdc8, 0x00586969,
- 0x00122445, 0x001b2d64, 0x00294180, 0x00153572, 0x00244e79, 0x006b87a9, 0x00b1cae7, 0x00b1ccf4, 0x006589cb, 0x00446abe, 0x003a63c0, 0x00426ed1, 0x003761c7, 0x003a60c3, 0x00385cbe, 0x002042a1,
- 0x0013408c, 0x002e55b2, 0x003d5dc3, 0x00334cbb, 0x006e83d3, 0x00c6dbfe, 0x00ecffff, 0x00e7f8fa, 0x00b8c9d6, 0x0093a0c1, 0x00b3bbdd, 0x00dfe5f9, 0x00bcc7f6, 0x007f90f4, 0x00556fd4, 0x006a88d1,
- 0x00bbd4ec, 0x00dbe3f9, 0x00cad0ea, 0x00f1f1f9, 0x00eef6f6, 0x00dde4f2, 0x00b6bfd6, 0x00a8afcd, 0x00d1dff9, 0x00e0f3ff, 0x00bed2f9, 0x00a0baeb, 0x009abbea, 0x00bfe6fa, 0x00b7e1fb, 0x0099c4f0,
- 0x006f83e5, 0x006b81d1, 0x007189c2, 0x0088a5c5, 0x00afd2d5, 0x00c1e5ea, 0x00bddeed, 0x00a9c6eb, 0x006e86e4, 0x004d60d5, 0x003e58cc, 0x003c64c1, 0x004570d0, 0x004975d4, 0x004a76d4, 0x00436fcf,
- 0x00406ac6, 0x003a60bc, 0x003758b1, 0x00304ea6, 0x001d388e, 0x00173484, 0x001e3a82, 0x002b4787, 0x00203868, 0x00152552, 0x001d2654, 0x00292f5f, 0x005d608d, 0x009c9fc5, 0x00c8cdea, 0x00c9cde4,
- 0x00c3cad7, 0x00bdc5d1, 0x00c3cad7, 0x00ccd5e1, 0x00cbd3df, 0x00bfc6d2, 0x00bbbfcc, 0x00b6b8c6, 0x009fa4b5, 0x00adb0c1, 0x00b3b8c8, 0x0099a2ae, 0x00838998, 0x00a2a9b7, 0x00b4bcc9, 0x00bac2cd,
- 0x00b2b9c3, 0x00adb2bb, 0x00b4b7bf, 0x00c1c4ca, 0x00c4c7ce, 0x00c7c4c9, 0x00bcb5b8, 0x00d1c9cc, 0x00ddd9d9, 0x00e0dddf, 0x00fefcff, 0x00fffeff, 0x00fcfdfd, 0x00f9fbf8, 0x00fcfefc, 0x00d0d2d0,
- 0x006e7069, 0x0077777a, 0x007e7f8e, 0x00404261, 0x00222654, 0x0024295a, 0x00232856, 0x0033385e, 0x005c6272, 0x00868c97, 0x00adafb8, 0x00bfbeca, 0x00b4b4c2, 0x009e9ea8, 0x0086868d, 0x009ea0a6,
- 0x00d0d0d7, 0x00cecedb, 0x009c9aad, 0x009895af, 0x00b1afca, 0x00b6bbc9, 0x008f98a0, 0x00596172, 0x00282a46, 0x00232449, 0x0023244e, 0x0022234e, 0x0027274e, 0x0026264b, 0x00212341, 0x00232641,
- 0x00332e44, 0x003f3742, 0x00473f3e, 0x004c4533, 0x00534729, 0x00534325, 0x00503c1d, 0x00593e1d, 0x0064471a, 0x0072571f, 0x007f5f23, 0x00835d22, 0x0080591e, 0x007d581c, 0x007c571c, 0x007b591a,
- 0x00765410, 0x00785213, 0x00774f13, 0x007a5215, 0x007e5819, 0x00806020, 0x007d6021, 0x00795a1d, 0x00715116, 0x006a4911, 0x0065440c, 0x0063440b, 0x00664613, 0x00664715, 0x00634513, 0x00614214,
- 0x0062400e, 0x00674512, 0x006b4818, 0x006e4b1b, 0x00704c1b, 0x00704c1b, 0x00704b1c, 0x006e491a, 0x006a4916, 0x00694814, 0x006f481c, 0x00784f2a, 0x007f5530, 0x007c542c, 0x00724922, 0x00714722,
- 0x00704923, 0x00774f27, 0x00754d25, 0x00724b22, 0x00734c21, 0x00795a1e, 0x00826521, 0x00886526, 0x00835e23, 0x007e5821, 0x0077521f, 0x00704e1f, 0x00694a21, 0x00674e28, 0x006d5733, 0x00735e3c,
- 0x005f5a4a, 0x00524c43, 0x00433c3e, 0x00322d38, 0x0029283c, 0x00292c43, 0x002c324c, 0x002a324d, 0x001d2a3f, 0x001d2c3d, 0x00242b4c, 0x0024225e, 0x00252358, 0x00363761, 0x00727496, 0x009599af,
- 0x00b7c0c7, 0x00aab3b7, 0x00848b8d, 0x005b6363, 0x00808984, 0x00cbcfcc, 0x00eae9ea, 0x00d1cfda, 0x00817f95, 0x00646175, 0x009797a5, 0x00e3e6e9, 0x00fcfefa, 0x00fbfefb, 0x00f6faf9, 0x00fcfcff,
- 0x00c4e2e5, 0x00617987, 0x001d2e4b, 0x0031416f, 0x003a578f, 0x003d639e, 0x00426da1, 0x003f6b97, 0x005f738d, 0x009197ae, 0x00c1b5b3, 0x00d4b38e, 0x00cb9e75, 0x00d1a980, 0x00caaa8a, 0x009d9185,
- 0x00718b9e, 0x00789bbe, 0x006f94bd, 0x00617ca5, 0x005f6989, 0x0058689c, 0x005166a4, 0x005068ab, 0x004d66ac, 0x004964ad, 0x004c66ac, 0x004862ac, 0x005167a9, 0x005467a6, 0x005d6ca8, 0x007181b6,
- 0x005c7bb6, 0x005c7daf, 0x005779a8, 0x004e739c, 0x00476c9b, 0x00456ba2, 0x004469a5, 0x004569a8, 0x00416ba3, 0x003f6b9d, 0x00466a94, 0x00526790, 0x004c66a9, 0x004667b0, 0x004667b0, 0x004867a9,
- 0x0051639e, 0x005b659e, 0x00686f96, 0x0099a3b7, 0x00a6bda7, 0x007693a9, 0x005079a7, 0x004376aa, 0x00536f8b, 0x0081736e, 0x00aa7e63, 0x00c5885c, 0x00bd8e6d, 0x00b68462, 0x00c68860, 0x00e79861,
- 0x00e89864, 0x00d7915f, 0x00c48a5d, 0x00bf9572, 0x00ad9993, 0x008e8a99, 0x007a80a3, 0x00737eaf, 0x00657eab, 0x005d7aa1, 0x005977a2, 0x005875af, 0x005b78b4, 0x005872b2, 0x005370ab, 0x004763a0,
- 0x00405c9b, 0x00415a9e, 0x00435aa0, 0x004157a0, 0x003d55a0, 0x003c56a0, 0x003b59a1, 0x00395aa4, 0x003d5d9c, 0x003d538a, 0x0069759e, 0x00bbc0d7, 0x00fffbff, 0x00fdfdfe, 0x00fcfcfd, 0x00f7fefe,
- 0x00eef6ed, 0x0099a098, 0x00181914, 0x00140f0b, 0x00211312, 0x003d2b2a, 0x00806768, 0x00ad9192, 0x00c6aaa5, 0x00c6a8a5, 0x00aa8d86, 0x008b7264, 0x006c455e, 0x00613150, 0x00512439, 0x00422122,
- 0x00181b1a, 0x00081232, 0x00021148, 0x00001055, 0x00111a4a, 0x000d1a75, 0x0010227e, 0x0016285f, 0x000a1a18, 0x0027322b, 0x00717777, 0x00727892, 0x00343e86, 0x00213485, 0x00162d85, 0x0006257a,
- 0x00001045, 0x00000f49, 0x0001185a, 0x000c2973, 0x001e3c92, 0x00213d96, 0x00071f75, 0x00091f70, 0x00243b82, 0x00263d80, 0x0024397d, 0x0023377e, 0x001f2d7b, 0x00242873, 0x002a286c, 0x00312866,
- 0x002d274d, 0x00271f45, 0x001f2046, 0x002f2f5d, 0x002b2f67, 0x001c2b59, 0x000e2249, 0x001a2a56, 0x00272c5a, 0x001d1e40, 0x00261e34, 0x0036292f, 0x003c241b, 0x003b1b13, 0x00512b28, 0x0050292a,
- 0x0053221a, 0x0066413e, 0x00624844, 0x006c5e62, 0x00b7afc1, 0x00aea2ba, 0x00534156, 0x00503d45, 0x00a69680, 0x00b6aa84, 0x00817351, 0x00775d50, 0x007d5548, 0x00532219, 0x003f0b05, 0x00420b08,
- 0x003b0d0e, 0x003b0b0e, 0x003d0f10, 0x00471915, 0x00512014, 0x0057281f, 0x00653a30, 0x00744740, 0x00724c41, 0x00633e34, 0x0046241b, 0x0036140e, 0x002d0c08, 0x002f0b0b, 0x002c0509, 0x0030060d,
- 0x002a050e, 0x0027060c, 0x00270a0d, 0x00301812, 0x003a2619, 0x00453321, 0x004f3c2b, 0x00594435, 0x005d4537, 0x005d453a, 0x00594138, 0x00534035, 0x004f4646, 0x00494548, 0x003b3c40, 0x00373637,
- 0x003f352c, 0x00372a20, 0x0084766d, 0x00ebe3dd, 0x00fefcfd, 0x00fdfcfd, 0x00fcfdfc, 0x00fefefc, 0x00d1ccbf, 0x00716a55, 0x0040331d, 0x004a3a1e, 0x00584629, 0x005c472b, 0x00644d35, 0x0068513a,
- 0x00614f3e, 0x00625243, 0x0066574e, 0x00665b56, 0x00615a57, 0x005c5857, 0x005b575a, 0x00595558, 0x00545254, 0x00585553, 0x005f5953, 0x006a6151, 0x00776651, 0x007b664a, 0x00816543, 0x008a6a3f,
- 0x008f6c41, 0x008f6c43, 0x008c6a46, 0x008a6748, 0x00816349, 0x00735b45, 0x006b4f38, 0x0070472c, 0x00754425, 0x00734b35, 0x0076584e, 0x00776b6c, 0x006d6e71, 0x003b362a, 0x003a2c15, 0x00856d48,
- 0x009c8145, 0x00a18243, 0x00ad8747, 0x00ba8f4e, 0x00c09350, 0x00c99c5d, 0x00b58b50, 0x00a9814c, 0x00a08256, 0x009c7f57, 0x00977c58, 0x008d7755, 0x00866d48, 0x007d6238, 0x00816334, 0x009d7e4a,
- 0x00a68755, 0x009e7f51, 0x0084673c, 0x0079613a, 0x00775f40, 0x006b573c, 0x005d4a33, 0x0050412b, 0x00423326, 0x00352b25, 0x0029211e, 0x00262120, 0x00272320, 0x0029251e, 0x00332e25, 0x003b382e,
- 0x003b3331, 0x00362c1e, 0x00413319, 0x005c4920, 0x007e642f, 0x008f6e39, 0x00966f3c, 0x00946a38, 0x008d602c, 0x008e5e2b, 0x00926435, 0x00856339, 0x006e4e23, 0x005e4317, 0x004d350e, 0x003c2909,
- 0x00231801, 0x001e1104, 0x0023190a, 0x00221810, 0x00251c17, 0x00242524, 0x00232727, 0x00292a2b, 0x0035322d, 0x0041372a, 0x00483928, 0x0054402a, 0x005b442a, 0x005d4527, 0x00634a28, 0x006a502b,
- 0x006e592b, 0x0070592b, 0x00715529, 0x006e4e21, 0x006e4b20, 0x0066461d, 0x00573b1a, 0x00483016, 0x002e2312, 0x001d160a, 0x000d0803, 0x00010201, 0x00000001, 0x00000001, 0x00010000, 0x00040301,
- 0x001b160a, 0x00372917, 0x0057472e, 0x006d5a35, 0x00826a3f, 0x0087704e, 0x00c5b198, 0x00f9f6e3, 0x00fdfffc, 0x00f8fcfb, 0x00fffffd, 0x00fefefb, 0x00bfbeb9, 0x00767879, 0x0083878e, 0x00aeb8c2,
- 0x00d9dee7, 0x00eaeff4, 0x00dee4e8, 0x00dae3e6, 0x00e4eeee, 0x00e0eae9, 0x00737978, 0x00121516, 0x00050402, 0x00060203, 0x00080405, 0x00080907, 0x00080906, 0x00070807, 0x00080808, 0x00080807,
- 0x000a0a0a, 0x00090909, 0x00090909, 0x000a0a0a, 0x00090909, 0x000a0a0a, 0x000b0b0b, 0x000b0b0b, 0x000b0b0b, 0x000b0b0b, 0x000b0b0b, 0x000b0b0b, 0x000b0b0b, 0x000b0b0b, 0x000d0d0d, 0x000f0f0f,
- 0x00160f00, 0x000d0e0c, 0x001a2937, 0x004d6b91, 0x005b93d3, 0x00558dcf, 0x005c8cc7, 0x00698abb, 0x00727581, 0x00615455, 0x0038221e, 0x00200e0a, 0x00170300, 0x00190000, 0x00280d05, 0x00361713,
- 0x00553e40, 0x006b5769, 0x00716982, 0x00606088, 0x004c5789, 0x003a6493, 0x00346ca1, 0x003a68b4, 0x003560c0, 0x00325cb8, 0x00335ca5, 0x004e75a2, 0x005d7577, 0x00404037, 0x0044311e, 0x005c3324,
- 0x0044331d, 0x002b1d0e, 0x000e0400, 0x00070202, 0x00030105, 0x00030206, 0x00070204, 0x001d1213, 0x0040342d, 0x00432f27, 0x002c1a0f, 0x0026200b, 0x00231e0e, 0x00201d10, 0x0018180f, 0x0013150e,
- 0x000a0e09, 0x00080b09, 0x000b0a0b, 0x000d0a0b, 0x000f0c0d, 0x00110c0c, 0x00180f11, 0x001a1113, 0x001b130e, 0x001e160f, 0x00251a12, 0x00281d10, 0x0029200d, 0x002c240e, 0x002e2510, 0x00302711,
- 0x002a2308, 0x0029220a, 0x00271f0d, 0x001a1303, 0x00413d2f, 0x00a4a399, 0x00fdfef9, 0x00fafcfb, 0x00fbfeff, 0x00feffff, 0x00f3f8fd, 0x0098a2af, 0x00182346, 0x0019285e, 0x002b408a, 0x00304aa5,
- 0x002948ac, 0x002b49ad, 0x002c4ca4, 0x004264b1, 0x007196d9, 0x00929ac7, 0x0079708f, 0x00534556, 0x00301815, 0x001e0805, 0x00120100, 0x000e0400, 0x00060100, 0x00090000, 0x001c0e0e, 0x003a2224,
- 0x004a413c, 0x00261f1e, 0x000b0300, 0x001a0e0f, 0x00594232, 0x00805d40, 0x008f613a, 0x008e592d, 0x008e5e2b, 0x0095673a, 0x0096673b, 0x008d5b32, 0x007d4e31, 0x00764536, 0x008b6055, 0x00bf9d9c,
- 0x00e7d5de, 0x00dcd4ec, 0x00b3b3e0, 0x009ba2e7, 0x007584df, 0x006170ce, 0x006071ce, 0x006d80d6, 0x00758fde, 0x006a83cd, 0x004d65a5, 0x002e437f, 0x00131c46, 0x00050525, 0x0001000c, 0x00050002,
- 0x00040000, 0x00040000, 0x00020001, 0x00000104, 0x00010103, 0x00010300, 0x00010501, 0x00010300, 0x00010400, 0x00040705, 0x000a0505, 0x00100800, 0x0027190e, 0x004e3b2e, 0x006c5445, 0x006c4e3a,
- 0x0065422b, 0x005e3a25, 0x00704b36, 0x0099735e, 0x00a27c68, 0x008c6a57, 0x0087604a, 0x009a6747, 0x00967457, 0x00574f42, 0x000a0a08, 0x000b0700, 0x00724211, 0x00b87a39, 0x00d3924e, 0x00b98140,
- 0x00fff5f0, 0x00e7f2e9, 0x00edf6ea, 0x00f6f1e9, 0x00ea9d9d, 0x00c9615e, 0x00da7466, 0x00f8bfa9, 0x00eddec4, 0x00e3e2d2, 0x009da7af, 0x00324376, 0x0068778e, 0x00c0d1d6, 0x00becdc9, 0x00565f60,
- 0x00151a3a, 0x0015204b, 0x00263663, 0x00122c53, 0x0044647b, 0x009ab3d5, 0x00bbd2fd, 0x009ab4e8, 0x00597cc7, 0x00496fc6, 0x003e66c5, 0x00436cd2, 0x003e65cb, 0x004566c9, 0x004363c4, 0x0024429d,
- 0x00183895, 0x00284baa, 0x003756b9, 0x002e4eb1, 0x006787d7, 0x00bbdaff, 0x00daf2fd, 0x00bbceeb, 0x0098a3bb, 0x00a9b3ca, 0x00e6e8ff, 0x00d1d2ec, 0x007982d4, 0x005d6ccd, 0x005a6fc8, 0x007998d0,
- 0x00c7ddf1, 0x00abbbd6, 0x00969fbf, 0x00e0e9f7, 0x00e5f6fc, 0x00cbdcfa, 0x0093a4cd, 0x008496c6, 0x00cfdffe, 0x00def2fd, 0x00a6bcf6, 0x006f89d3, 0x006587cb, 0x0080a3e1, 0x007aa3dc, 0x006a96cc,
- 0x008196d2, 0x0096adde, 0x00b7cff6, 0x00cce9fa, 0x00c8e6fc, 0x00b1d0f1, 0x0083a1cf, 0x006682c5, 0x00566cd3, 0x00465cd0, 0x00435ed0, 0x003d66c2, 0x00426aca, 0x00426ccd, 0x003e67c8, 0x003861c2,
- 0x00375dbc, 0x00395ebc, 0x003b5bb5, 0x002e4ca3, 0x001b3589, 0x000f2a77, 0x00102b6e, 0x001f3a75, 0x0020355f, 0x001f2e55, 0x00495379, 0x00797eaa, 0x00acafd7, 0x00cccff3, 0x00cfd5ed, 0x00c3c9dc,
- 0x00bbc1ce, 0x00b4bac7, 0x00b9becb, 0x00c6cbd8, 0x00cdd2df, 0x00c4c8d6, 0x00bdc2cf, 0x00bcc1cd, 0x00a5aab8, 0x00aab0bc, 0x00b1b7c4, 0x00939caa, 0x00818896, 0x00a5adba, 0x00b1bac5, 0x00b8c1cb,
- 0x00b4b7c3, 0x00abadb7, 0x00b7bac3, 0x00bfc2c9, 0x00c3c8cf, 0x00c1bfc3, 0x00b4afb1, 0x00b0aaac, 0x00c9c4c6, 0x00e8e5e6, 0x00fdfcfd, 0x00feffff, 0x00fbfafb, 0x00fcfcfb, 0x00fbfbfa, 0x00c7c8c7,
- 0x0067695e, 0x007e7f82, 0x00848498, 0x003d3e65, 0x0021235f, 0x00222662, 0x00252960, 0x004e517b, 0x00a4a9b7, 0x00cad0d1, 0x00d4d7d4, 0x00b7b7bc, 0x0067676c, 0x0037383d, 0x00323235, 0x00696a6e,
- 0x00ccccd9, 0x00e0e0ee, 0x00a3a1ba, 0x008886a1, 0x007b789a, 0x0067697b, 0x00393d4b, 0x00212533, 0x0022253b, 0x0022243d, 0x00262840, 0x00323450, 0x004f516d, 0x004f536f, 0x00373c54, 0x00222841,
- 0x00212256, 0x0024244a, 0x002b2c45, 0x0034343c, 0x004b4742, 0x00504942, 0x004e453b, 0x004f4332, 0x00544526, 0x0056481f, 0x00624f1e, 0x006f4d18, 0x00734e19, 0x00754f18, 0x0077561d, 0x007b571c,
- 0x00785414, 0x007a5615, 0x00805a18, 0x00835b17, 0x00865e18, 0x00896620, 0x00866621, 0x00805f1c, 0x00755312, 0x006d4a0b, 0x0067450b, 0x00674410, 0x006d4918, 0x006d491c, 0x006b481d, 0x006b471c,
- 0x006e4818, 0x00714b1a, 0x00744d1d, 0x00734d1c, 0x00704917, 0x00724b1a, 0x0071491a, 0x0070481a, 0x006f4917, 0x00704a19, 0x00774c20, 0x00835032, 0x00885836, 0x00865734, 0x0081532c, 0x007d5028,
- 0x00794c22, 0x00774d1d, 0x00734c19, 0x00714c18, 0x0076501b, 0x00725816, 0x00755e19, 0x00755b1a, 0x006c5218, 0x00684c1a, 0x00694c23, 0x00694f2f, 0x006f5742, 0x006e5b4b, 0x00675749, 0x00605246,
- 0x00494153, 0x003d3747, 0x00393345, 0x002c283c, 0x00313242, 0x004b4e5f, 0x00656879, 0x005b606e, 0x00323a44, 0x00202930, 0x00212640, 0x0028275f, 0x002f2d63, 0x00282757, 0x0031325e, 0x00464a6c,
- 0x007c7d9c, 0x00abafc4, 0x00c1c8d2, 0x00b0b8ba, 0x00c2c9c5, 0x00e5e8e8, 0x00c7c8cc, 0x00818290, 0x00403d5b, 0x002f2c4b, 0x006e6c85, 0x00cfcfdd, 0x00fcfeff, 0x00fcfffc, 0x00fbfdf8, 0x00fafcfa,
- 0x00bcdee6, 0x0054717e, 0x00172e4e, 0x00293c6e, 0x003d51a3, 0x004357ad, 0x004658ae, 0x0048589b, 0x007b7988, 0x00aca399, 0x00c7ab8f, 0x00bb8558, 0x00895a31, 0x0098724e, 0x00a98e6c, 0x00796956,
- 0x00444444, 0x005a5e63, 0x0071727e, 0x006d6d78, 0x006a606b, 0x00516394, 0x004161a2, 0x004063a5, 0x004264ac, 0x003f61a7, 0x004666ab, 0x004261a2, 0x004e67a5, 0x00465d94, 0x006b7fae, 0x009fb3de,
- 0x0087a3dc, 0x005b7bac, 0x006589b6, 0x00567fa8, 0x003c6599, 0x003f66a5, 0x003d64aa, 0x003b65b1, 0x003e67af, 0x003b66a7, 0x003c66a1, 0x0047639a, 0x004264a8, 0x004065b1, 0x004064bb, 0x004460c1,
- 0x00565db0, 0x00585f8b, 0x008d929e, 0x00c6ceb2, 0x00c3d493, 0x008bb0b5, 0x006498c4, 0x004c85bb, 0x00507298, 0x006f6c78, 0x0095766c, 0x00b27d61, 0x00bf9070, 0x00bc8863, 0x00c58c5c, 0x00d99456,
- 0x00e4935c, 0x00d48d64, 0x00bb8067, 0x00b48881, 0x00b9a7b7, 0x00bbbacf, 0x00bdc6e3, 0x00c3d4ee, 0x00b4c1e7, 0x008696ba, 0x0064739a, 0x006477a3, 0x006278a9, 0x00617bb0, 0x005a79b1, 0x004364a3,
- 0x003f60a6, 0x004060a7, 0x004060a6, 0x00445da5, 0x00415ea4, 0x004260ad, 0x003e61ad, 0x003e60a8, 0x00445e9c, 0x004c5b86, 0x00878aa8, 0x00d9d3e2, 0x00fffbf8, 0x00fcfcfa, 0x00fafdfc, 0x00f4ffff,
- 0x00eef9f2, 0x0099a59a, 0x00181f13, 0x00100f06, 0x001f100c, 0x00402928, 0x00a48484, 0x00c7a1a3, 0x00c09495, 0x00cba1a0, 0x00caa19e, 0x00aa8b82, 0x0099677c, 0x00825064, 0x00693b44, 0x005d3f34,
- 0x0034332f, 0x000f162e, 0x00010a3c, 0x00040c4e, 0x000a144b, 0x00081865, 0x000d1e6f, 0x001c2962, 0x00071427, 0x00131a24, 0x00575d67, 0x00727a8c, 0x004e5789, 0x001f2f71, 0x00152d7a, 0x000c2a80,
- 0x00011656, 0x00001052, 0x00051a60, 0x0017317b, 0x00264496, 0x00203e93, 0x00031c75, 0x0000136c, 0x00102681, 0x00172e82, 0x001a2f8c, 0x00122d91, 0x0013268f, 0x0017248e, 0x001d248a, 0x00222780,
- 0x001e1e69, 0x00080d51, 0x00101960, 0x00232b78, 0x00202b84, 0x00102769, 0x00041e57, 0x0016316b, 0x00273775, 0x00162254, 0x00282e50, 0x00414252, 0x00372e2f, 0x00332222, 0x00402a2d, 0x00351e23,
- 0x004a190e, 0x00603c30, 0x004d3532, 0x00524649, 0x00bdb5c8, 0x00b1a3bb, 0x004f3b4d, 0x003e282f, 0x008d7963, 0x00a4966d, 0x008b7e5e, 0x005f5246, 0x00452e24, 0x002e140e, 0x00361712, 0x003d1d1c,
- 0x00513034, 0x005b3d3e, 0x00684b49, 0x006d504b, 0x00795c51, 0x0084645c, 0x00917066, 0x0092756b, 0x00886962, 0x0073544d, 0x0052342e, 0x00401c17, 0x0036100d, 0x00380d0d, 0x00380b0d, 0x003c0a0e,
- 0x00380f15, 0x00361011, 0x00381611, 0x003e2115, 0x004b3223, 0x00573f2e, 0x00624a39, 0x0068503f, 0x00694d43, 0x0063473c, 0x005c403a, 0x00504138, 0x004d4240, 0x00494240, 0x004c433f, 0x004f433b,
- 0x00654c40, 0x005d4838, 0x0097877b, 0x00ede7e1, 0x00f8fdfe, 0x00fafefe, 0x00fcfffc, 0x00fefffd, 0x00d7cfc4, 0x007c715f, 0x004b3c26, 0x00534228, 0x005a472d, 0x005c4930, 0x005e4b35, 0x0065513f,
- 0x00695850, 0x006e5e57, 0x00756764, 0x00766c6c, 0x00736d70, 0x00737074, 0x00727075, 0x00716e72, 0x006e6c70, 0x006c6b6d, 0x00706a69, 0x00786f62, 0x0082725f, 0x00846f53, 0x00896c49, 0x008f6e44,
- 0x00977149, 0x00926e47, 0x008d6d48, 0x008c694a, 0x00806347, 0x007b5e46, 0x00705236, 0x006e4726, 0x00734229, 0x00704a38, 0x00775c53, 0x0073696b, 0x00757173, 0x00564b3d, 0x005f472b, 0x009b784c,
- 0x00a17e53, 0x00a07a49, 0x00ab824f, 0x00b38950, 0x00bd9156, 0x00c2975d, 0x00a8804c, 0x00815e2e, 0x00553819, 0x00442b11, 0x00513821, 0x005a412e, 0x0044290f, 0x00432807, 0x0085673d, 0x00aa8d5a,
- 0x00a58957, 0x0091784c, 0x007e6844, 0x00746045, 0x00715e49, 0x006b5a46, 0x0060523f, 0x00504738, 0x00423831, 0x00342e2b, 0x002b2525, 0x00292426, 0x0029231f, 0x002c261d, 0x00322b1f, 0x00353020,
- 0x00332927, 0x00302416, 0x003f3019, 0x00614c26, 0x00846632, 0x00967238, 0x009a7137, 0x00956a30, 0x00905f29, 0x0095622c, 0x009e6e36, 0x00996f30, 0x008a642b, 0x00815d28, 0x00775828, 0x006d5029,
- 0x00523b1f, 0x004b3a1e, 0x0053452e, 0x00423725, 0x002c2212, 0x00201c14, 0x0025221e, 0x00302e25, 0x00423729, 0x004e3c29, 0x0059432d, 0x005e442b, 0x00634629, 0x00644828, 0x00664a27, 0x00684d2a,
- 0x0068522a, 0x00695127, 0x006b4f24, 0x00684b20, 0x0067471e, 0x005e421d, 0x0052371a, 0x00442b16, 0x002a200f, 0x001a1509, 0x000c0703, 0x00010302, 0x00010003, 0x00000002, 0x00010000, 0x00020200,
- 0x0019130a, 0x00342617, 0x0055442d, 0x00685534, 0x007a653e, 0x00836e50, 0x00c3b09b, 0x00fbf6e9, 0x00fafdfc, 0x00f6fbfb, 0x00fdfefd, 0x00fefefb, 0x00c0bdb8, 0x00767777, 0x0082868c, 0x00afb9c4,
- 0x00d4d7d8, 0x00d8dcdd, 0x00d5dbdc, 0x00d5dede, 0x00deeae8, 0x00dbe6e2, 0x00acb3b1, 0x003a3f3d, 0x00050705, 0x00030301, 0x00080807, 0x00090908, 0x00080808, 0x00090907, 0x00080907, 0x00090908,
- 0x00090909, 0x00080808, 0x00090909, 0x00090909, 0x00090909, 0x000a0a0a, 0x000b0b0b, 0x000b0b0b, 0x000c0c0c, 0x000b0b0b, 0x000a0a0a, 0x000a0a0a, 0x000b0b0b, 0x000b0b0b, 0x000d0d0d, 0x000f0f0f,
- 0x00230f02, 0x000b0c06, 0x00162936, 0x00466c94, 0x006695cc, 0x006287ba, 0x00778eb8, 0x00778296, 0x004c4b4b, 0x00211d16, 0x00080302, 0x00050006, 0x000a0105, 0x000f0203, 0x000f0001, 0x00100100,
- 0x001c0608, 0x00311f21, 0x00614f58, 0x006b5d6d, 0x005e5366, 0x0039536f, 0x002f5684, 0x00375c9e, 0x004165bf, 0x003860b7, 0x003359a2, 0x00476e9d, 0x00828f94, 0x00786b5f, 0x00704930, 0x00884b30,
- 0x00674733, 0x00492f1e, 0x001f0b02, 0x000c0100, 0x00050001, 0x00040103, 0x00050001, 0x001a1311, 0x003d312a, 0x00372a21, 0x00291b0f, 0x00261f0a, 0x00231e0d, 0x001d1c0f, 0x0018170e, 0x0011130c,
- 0x000c0d0c, 0x00090b0a, 0x000a0a0a, 0x000c0a0a, 0x00100e0d, 0x00110d0c, 0x00181010, 0x00191011, 0x0018120e, 0x001b150f, 0x00221811, 0x00261a0f, 0x00271d0d, 0x002a1f0e, 0x002c210f, 0x002c220f,
- 0x002c2410, 0x002a220d, 0x0029210f, 0x001d1607, 0x003a3528, 0x0097958e, 0x00faf9f8, 0x00fbfcf9, 0x00fefdff, 0x00fcfdff, 0x00f9fbff, 0x00aaa8b5, 0x001d2143, 0x00142055, 0x00263b82, 0x002a469d,
- 0x002b45aa, 0x0028439e, 0x003952a5, 0x005f74b9, 0x008495cc, 0x007e819f, 0x004b4350, 0x0025181b, 0x001f0603, 0x00180400, 0x00190802, 0x00120800, 0x00060300, 0x00030000, 0x00080201, 0x001b0f0a,
- 0x00413131, 0x00342926, 0x00110603, 0x00160b07, 0x004e3624, 0x007d573c, 0x008c5833, 0x008b4d25, 0x00884d20, 0x00915b2e, 0x0096643a, 0x0089623b, 0x00754d37, 0x00714c42, 0x00b89899, 0x00f0dce4,
- 0x00f7eefa, 0x00cbccf2, 0x008a94d3, 0x006d7fd3, 0x00556cd9, 0x00465bd5, 0x00546be0, 0x00708ced, 0x0087acf7, 0x00789ce9, 0x005e7ed1, 0x00506ec5, 0x003f4ea0, 0x001e2864, 0x0002082f, 0x0000040f,
- 0x00020202, 0x00000100, 0x00000100, 0x00030101, 0x00000000, 0x00020300, 0x00040402, 0x00020402, 0x00030403, 0x00020302, 0x000c0709, 0x00100905, 0x001a0f09, 0x003b291e, 0x005e493b, 0x005e4533,
- 0x005b3b2a, 0x00573725, 0x00644432, 0x0083634f, 0x009d7a6b, 0x009f7e65, 0x00aa8364, 0x00bd8b63, 0x00b68e79, 0x006f5e57, 0x00170d11, 0x00130803, 0x007b4317, 0x00be7a3c, 0x00df9957, 0x00ce9350,
- 0x00fafaf1, 0x00edf2e8, 0x00ecefe7, 0x00fff5f2, 0x00fdccd3, 0x00ef8d95, 0x00d2696c, 0x00ea8c87, 0x00eaccba, 0x00cfd5bf, 0x008da69d, 0x005d6c91, 0x007f95a0, 0x00c2d0d5, 0x00bcc9c8, 0x005e6469,
- 0x001b1a37, 0x00131538, 0x0016203c, 0x002d3e57, 0x007f9699, 0x00b5cbe9, 0x0099afe8, 0x006a82c4, 0x004c6fbe, 0x00496fc7, 0x003b63c3, 0x003961c7, 0x00385dc2, 0x004363c4, 0x003553b1, 0x0018348b,
- 0x00172f95, 0x002642a4, 0x003756b4, 0x003a5eb6, 0x004f7cca, 0x008ab1f4, 0x0096b5ef, 0x00788fcc, 0x00b2bdda, 0x00ebf0fb, 0x00f5f8fa, 0x00d9dbf2, 0x009facdb, 0x0092a5de, 0x007b94cb, 0x0091aad6,
- 0x00c0d7ec, 0x00a5b6cd, 0x009dafca, 0x00cbdff9, 0x00a8c1ee, 0x007a98cd, 0x005a7ebc, 0x006382c1, 0x008cabf2, 0x008ba8ee, 0x006684d2, 0x005e7ac5, 0x006b87cb, 0x007e97d3, 0x0098b5e8, 0x00b0cdf7,
- 0x00cde7fb, 0x00d4efff, 0x00c6e3fa, 0x00a8c4ed, 0x00839fdb, 0x006b87d2, 0x005471c3, 0x004a67c2, 0x00415dc0, 0x003753ba, 0x003152b9, 0x003259b6, 0x003761c2, 0x003b64c2, 0x003c67c7, 0x003a63c4,
- 0x003e65c2, 0x003559b5, 0x0025479c, 0x001e3b8f, 0x00173383, 0x00102871, 0x00051e5b, 0x00132c5d, 0x0044587a, 0x007786a5, 0x00abb4d3, 0x00c2c8ec, 0x00ced2f3, 0x00c8cce8, 0x00c7cedf, 0x00ccd4e0,
- 0x00c6cad9, 0x00bfc4d1, 0x00b6bcc8, 0x00bcc1cd, 0x00c9ceda, 0x00cbcfdb, 0x00bfc4cf, 0x00bbc2cb, 0x00a5aeb5, 0x00a8b0b7, 0x00a9b0b9, 0x0088919f, 0x00848c99, 0x00a7afbd, 0x00b0b8c3, 0x00b6bec8,
- 0x00afb3bc, 0x00aeb1ba, 0x00bdc0ca, 0x00c2c4cc, 0x00c4c9d0, 0x00d2cfd3, 0x00b9b4b5, 0x00847f80, 0x00a19c9f, 0x00ebe9ea, 0x00fdfdfc, 0x00fdfefc, 0x00fcfcfc, 0x00fdfcfc, 0x00f8f8f8, 0x00babbbb,
- 0x005c5f51, 0x0087888b, 0x00868895, 0x003e4164, 0x001c2054, 0x001b1f58, 0x00212456, 0x0032355c, 0x00606578, 0x00989ea0, 0x00cdd2ce, 0x00c3c4c9, 0x0097979e, 0x007f8086, 0x00818288, 0x009f9fa7,
- 0x00c4c4d4, 0x00a9a9ba, 0x004d4c63, 0x00272540, 0x0023213f, 0x00212139, 0x002f3143, 0x00454856, 0x00575d68, 0x00737883, 0x009599a4, 0x00abaebe, 0x00bdc2d4, 0x00c5cae0, 0x009096ac, 0x00464c64,
- 0x001e2562, 0x0022285a, 0x0020274d, 0x00242b40, 0x002c2e39, 0x0032313c, 0x0034333a, 0x003c3939, 0x004b4234, 0x00514a33, 0x00554b28, 0x005f441e, 0x0062461a, 0x0065471a, 0x00654916, 0x00694915,
- 0x006e4c12, 0x006e4b10, 0x00734e10, 0x007d5714, 0x007d5612, 0x00815d18, 0x007f5e1b, 0x007d5a19, 0x00745311, 0x006f4c11, 0x006d4a12, 0x006d4914, 0x00714c1c, 0x00724d1e, 0x00724d1e, 0x00734d22,
- 0x0078521f, 0x007a5422, 0x00795220, 0x0076501d, 0x00734c19, 0x00724b18, 0x00704817, 0x006f4717, 0x00744c1a, 0x0079511e, 0x00835628, 0x008d5932, 0x008b5c2f, 0x008b5c30, 0x00885d2e, 0x00875c2b,
- 0x007d551f, 0x0078511a, 0x006a4b0d, 0x0068480d, 0x00694c0c, 0x00655013, 0x00605415, 0x00614f16, 0x005f4e22, 0x00614f2c, 0x00645239, 0x00665646, 0x00574a44, 0x00484040, 0x003a3438, 0x00343039,
- 0x00282748, 0x002f2f4b, 0x0033344a, 0x00313349, 0x00373c46, 0x005a5f6a, 0x0093989f, 0x00aeb3b7, 0x009da3aa, 0x00777b81, 0x004a4e5e, 0x0036395a, 0x0027274e, 0x0025254e, 0x00232450, 0x0020234b,
- 0x002c2c52, 0x00424562, 0x006e7388, 0x00abb0c0, 0x00d5d9e3, 0x00e6e9eb, 0x00abafb0, 0x005f6371, 0x002f2f52, 0x00312d54, 0x00727091, 0x00d6d8e9, 0x00fefffe, 0x00fbfcfa, 0x00fbfef7, 0x00fffefa,
- 0x00c3d7d6, 0x00607480, 0x0029405b, 0x00445888, 0x006a70c1, 0x006f68c3, 0x007a67ba, 0x009072aa, 0x00b18c82, 0x00cba078, 0x00d5a26a, 0x00be7e48, 0x007b4c1c, 0x006f4926, 0x00644729, 0x003a2210,
- 0x002b1605, 0x00523828, 0x007f6757, 0x0090786c, 0x00826e69, 0x0055698f, 0x003b67a0, 0x003c68a5, 0x003e65a6, 0x003c62a3, 0x004367a4, 0x004567a0, 0x00445f90, 0x00526a94, 0x00a5bade, 0x00d5e9fb,
- 0x0091a7d4, 0x006d87ae, 0x009fbbdd, 0x0099b6d7, 0x005672a2, 0x0045639e, 0x004364a9, 0x004064b0, 0x004266ae, 0x003e67aa, 0x003e67a6, 0x004366a1, 0x003d6b9c, 0x003d69a9, 0x004064b9, 0x00455ec9,
- 0x00545bae, 0x00686986, 0x00b5b9a8, 0x00dae5a4, 0x00cddd8b, 0x00a5cdc9, 0x0079b5de, 0x0068a9dc, 0x00739ccb, 0x00898ca9, 0x00937f83, 0x00a87a69, 0x00ac7858, 0x00ac7551, 0x00b57e4c, 0x00c78b4f,
- 0x00d68d57, 0x00ca8a6c, 0x00b5827a, 0x00b08ea3, 0x00a89fc3, 0x00b4badc, 0x00c4d0eb, 0x00d5e6f8, 0x00d0daf3, 0x00b1b6db, 0x009fa6c6, 0x00a4aec3, 0x0098abc8, 0x0088a0c8, 0x006587b4, 0x00436a9e,
- 0x003962a1, 0x003b62a3, 0x003c62a0, 0x0042619f, 0x00405f9a, 0x003e60a6, 0x003b61a8, 0x003c5b9e, 0x0046608f, 0x005e6783, 0x00a4a2ad, 0x00f3e3df, 0x00fffbe8, 0x00fffdf1, 0x00f9fef2, 0x00f2fdf7,
- 0x00e8faee, 0x00a0afa1, 0x00253120, 0x001a190b, 0x002c1912, 0x00614541, 0x00c29c9b, 0x00bb9291, 0x00946566, 0x00ae7e7f, 0x00b38986, 0x00b4938a, 0x00cd97a1, 0x00be8b91, 0x008e625f, 0x00796250,
- 0x005a5b51, 0x00363246, 0x0004032e, 0x000b084a, 0x00010d49, 0x00041556, 0x00041759, 0x0015225d, 0x00111a40, 0x000c132d, 0x002e3542, 0x00616a75, 0x006d7a94, 0x00344578, 0x0012246a, 0x000a1c76,
- 0x0011266c, 0x000d246a, 0x00031c64, 0x000e2972, 0x00173784, 0x000c2b7c, 0x00011e74, 0x000c257e, 0x000f2782, 0x00091d7b, 0x000b2181, 0x00092b8f, 0x000e2a96, 0x000e2594, 0x0012248a, 0x00152682,
- 0x00172575, 0x00010d59, 0x0001135f, 0x00092374, 0x000b2082, 0x00021c6a, 0x00021f64, 0x0013337e, 0x00163077, 0x000b205a, 0x0022305b, 0x00333e57, 0x00252830, 0x00201f23, 0x001c151a, 0x000f060c,
- 0x00350905, 0x004a2c23, 0x00493a32, 0x002b2827, 0x00444549, 0x003e393e, 0x001e1013, 0x002f1c14, 0x007a6b52, 0x00726348, 0x00665e43, 0x00837e75, 0x008f8b80, 0x00958c88, 0x00918589, 0x0073636a,
- 0x006f5f60, 0x007e6c6b, 0x00816f6b, 0x00836f6a, 0x00806f66, 0x008a746c, 0x008a776b, 0x00837167, 0x00756259, 0x0069534b, 0x00523933, 0x00472621, 0x00471f1c, 0x004d1f1c, 0x004f1e1b, 0x0055201d,
- 0x004f201b, 0x0051261c, 0x00562f22, 0x005c3c2a, 0x00674b37, 0x006e5440, 0x00725744, 0x00725643, 0x006b4e42, 0x00614238, 0x0053372f, 0x00463732, 0x00453934, 0x004d403c, 0x00625247, 0x00715a4b,
- 0x00886953, 0x007f6550, 0x00aa9888, 0x00f0eae4, 0x00f4fdfe, 0x00f9fefe, 0x00feffff, 0x00fefdfb, 0x00ddd2c4, 0x00887c68, 0x00594933, 0x005b482f, 0x005f4a33, 0x00604c37, 0x005e4c3a, 0x006b5c4c,
- 0x00796c68, 0x00817673, 0x00877e7f, 0x00878285, 0x0087858a, 0x0087888d, 0x00898990, 0x008b8b91, 0x0088888e, 0x00858489, 0x00817e7d, 0x008a7e72, 0x008a7d69, 0x008c765a, 0x008b6f4c, 0x0092704a,
- 0x009a7448, 0x0096724b, 0x008f6e48, 0x008c6a47, 0x007f6244, 0x00795e42, 0x006b4f2f, 0x00694521, 0x00673f23, 0x00664635, 0x00695750, 0x006a656c, 0x0077797c, 0x00776c5f, 0x00846d4d, 0x00a98454,
- 0x009e794f, 0x00a07649, 0x00a57946, 0x00b38750, 0x00c09255, 0x00c1935c, 0x009f7643, 0x00633f14, 0x00331607, 0x00371c0c, 0x00381f0d, 0x0035130e, 0x002b0d02, 0x00573a1c, 0x00aa9064, 0x00b59b68,
- 0x00a78e5c, 0x008e784d, 0x00857150, 0x007a6751, 0x00715e52, 0x006b5c4f, 0x005e5545, 0x00514b3e, 0x00413b36, 0x00393432, 0x00332e2f, 0x00302d2f, 0x002e2a25, 0x00322d22, 0x00372e21, 0x00372d1c,
- 0x00322a21, 0x00362b1c, 0x0045351b, 0x00624a28, 0x0084652f, 0x00967033, 0x009c7332, 0x00996c2b, 0x0094652a, 0x009e6b32, 0x00a67538, 0x00a4772f, 0x00a07435, 0x009c723e, 0x00937144, 0x008d6d48,
- 0x0082664e, 0x00846f5a, 0x00887b65, 0x007b715d, 0x00464429, 0x00282419, 0x0029271d, 0x00363425, 0x0050412f, 0x005f4a32, 0x00695034, 0x006b4e2e, 0x006c4c29, 0x006a4a28, 0x00664727, 0x00624326,
- 0x005b461e, 0x005b431b, 0x005f451f, 0x00644622, 0x005f4321, 0x00583c1e, 0x004a331a, 0x003f2914, 0x00282011, 0x00191308, 0x000a0802, 0x00030300, 0x00000000, 0x00000002, 0x00020103, 0x00020202,
- 0x00100b06, 0x002c2014, 0x00493b28, 0x005d4c2e, 0x00715d37, 0x007b674b, 0x00bfad9a, 0x00f9f7ea, 0x00f7fcfb, 0x00f7fdfd, 0x00fbfdfc, 0x00fefffb, 0x00bfbbb6, 0x00767675, 0x0080848a, 0x00aeb7c3,
- 0x00c1c4c2, 0x00a3a7a6, 0x00bbc1be, 0x00e0eae7, 0x00e1eeeb, 0x00ddebe7, 0x00dde7e7, 0x008d9593, 0x00181c1c, 0x00010303, 0x00050707, 0x00090809, 0x00080708, 0x00080607, 0x00060807, 0x00070807,
- 0x00090909, 0x00080808, 0x00090909, 0x00090909, 0x00090909, 0x000a0a0a, 0x000b0b0b, 0x000b0b0b, 0x000b0b0b, 0x000a0a0a, 0x000a0a0a, 0x000a0a0a, 0x000a0a0a, 0x000b0b0b, 0x000d0d0d, 0x000f0f0f,
- 0x00241000, 0x000c0e0a, 0x00112738, 0x00456998, 0x007093c9, 0x007788af, 0x0074778c, 0x00574b4e, 0x00160f0a, 0x00030403, 0x00030804, 0x0003020a, 0x00060107, 0x00050005, 0x000a0306, 0x000c0203,
- 0x000d0101, 0x000d0000, 0x001f0d0c, 0x00402a26, 0x00624c44, 0x004a5566, 0x00334f72, 0x002e4c80, 0x002e50a0, 0x003157a6, 0x00345ba1, 0x004970a2, 0x00919aa1, 0x00968376, 0x0078482c, 0x00833b17,
- 0x0068402b, 0x00623e2a, 0x004d2f20, 0x00331f14, 0x00150a03, 0x00070100, 0x00060201, 0x001c1912, 0x00312b1f, 0x00292116, 0x00231b0c, 0x00281f0a, 0x00221d0c, 0x00201c10, 0x0015160c, 0x0011120d,
- 0x000a0e0c, 0x00090c0b, 0x00090909, 0x000b0a0a, 0x000f0c0d, 0x00120d0e, 0x00160f0f, 0x00191211, 0x0019130e, 0x001d1610, 0x00211812, 0x00231a11, 0x00241c0f, 0x00261d0d, 0x00281e0d, 0x002a1f0d,
- 0x002b230f, 0x002a2311, 0x0028210f, 0x001f1908, 0x002e291e, 0x0084817b, 0x00f6f5f1, 0x00fefefe, 0x00f9fbf9, 0x00fefdff, 0x00fafbfe, 0x00b7afba, 0x00272a4a, 0x00141f54, 0x001a3379, 0x0021409a,
- 0x002141a4, 0x002b459c, 0x004b62ab, 0x007782c1, 0x007679a2, 0x00524f5b, 0x00211916, 0x00150601, 0x00230900, 0x00200a00, 0x001f0c05, 0x00170a06, 0x000c0905, 0x00110e07, 0x000c0700, 0x00160d00,
- 0x00402d24, 0x0043332f, 0x000f0500, 0x00110403, 0x003e2a19, 0x00755037, 0x008a5934, 0x008d5125, 0x008c4d1d, 0x0092552b, 0x008e5c32, 0x006f5033, 0x0066493a, 0x00a68d8c, 0x00fae9ee, 0x00f6f0fe,
- 0x00ced0f3, 0x008d98cf, 0x005062b0, 0x003e57bb, 0x003250d0, 0x00314fd5, 0x002748c7, 0x003d63d1, 0x0075a0f4, 0x0079a3f9, 0x006087e2, 0x005f7ee9, 0x005c77d9, 0x00495cad, 0x0021336c, 0x00021231,
- 0x00010205, 0x00020104, 0x00000100, 0x00000100, 0x00010100, 0x00030500, 0x00030300, 0x00030100, 0x00040405, 0x00030305, 0x00050506, 0x000a0a09, 0x0014100b, 0x00231610, 0x00463428, 0x00513c2d,
- 0x004c3121, 0x004a2c1d, 0x004a2b1c, 0x00573826, 0x00755346, 0x0089674d, 0x00a57d5c, 0x00c08d65, 0x00be9481, 0x007c6562, 0x001f1318, 0x0019090a, 0x007d4417, 0x00bd7534, 0x00da9446, 0x00cb8f41,
- 0x00f1f9f4, 0x00ecf0ef, 0x00f5eff1, 0x00fcf7fd, 0x00fceef2, 0x00f9cfdb, 0x00eb96a5, 0x00ee838f, 0x00daada1, 0x009eb58f, 0x00759f88, 0x008496ad, 0x00b9c7d4, 0x00ccd8de, 0x00bdc4c9, 0x006e7378,
- 0x002b2641, 0x0011122a, 0x0016172d, 0x00545f68, 0x00b2c2ba, 0x00bcd4ef, 0x007c95d4, 0x00516db2, 0x005273ce, 0x004e74d0, 0x003c62c6, 0x003860c6, 0x00375bbd, 0x003f5ebd, 0x0024419b, 0x000b277a,
- 0x001e2899, 0x002e46a6, 0x003c5bb4, 0x003e6bb8, 0x003d6ec4, 0x004f7cd7, 0x005679d7, 0x005972c2, 0x00bac1e3, 0x00f1f6fc, 0x00fafbfb, 0x00f6f7fd, 0x00dff6ed, 0x00d5f1e9, 0x00c5e4e8, 0x00bedef2,
- 0x00d5eaff, 0x00d1e3f0, 0x00c6dbeb, 0x00b1cced, 0x007b95ea, 0x00507ed8, 0x004d84db, 0x004c80d3, 0x00527eca, 0x005f86cb, 0x007592d2, 0x008ea4db, 0x00b5c0e9, 0x00cbd0f6, 0x00ebedfa, 0x00f2effd,
- 0x00caeced, 0x00a8cada, 0x0086a6d2, 0x006f8ed2, 0x005973e2, 0x00526ee5, 0x004261da, 0x003155c2, 0x003055b0, 0x002b55a4, 0x002d54a3, 0x00365dbd, 0x003e66c4, 0x00426ece, 0x00436dca, 0x00426acb,
- 0x003358ba, 0x002447a3, 0x001e3b91, 0x001d3b8a, 0x00183182, 0x00163074, 0x00162c65, 0x00314770, 0x008c98b9, 0x00c4d0e8, 0x00d8dff7, 0x00d0d4ed, 0x00c6c9e5, 0x00c6cae0, 0x00cdd2e4, 0x00cdd6e1,
- 0x00d2d1e3, 0x00c9cbdb, 0x00b5b9c6, 0x00b1b7c3, 0x00c7ccd8, 0x00d1d8e2, 0x00c0c8d0, 0x00b9c2c8, 0x00a5acb2, 0x00a5b0b3, 0x00a1aab0, 0x00828b98, 0x0089919d, 0x00a5aebb, 0x00b1b9c5, 0x00b2bbc5,
- 0x00a9adb8, 0x00aeb2bc, 0x00bfc3cd, 0x00c0c2ca, 0x00caced6, 0x00d6d1d5, 0x00b9b3b4, 0x00838080, 0x00a69ea3, 0x00ede8ea, 0x00fcfbfa, 0x00fffffd, 0x00fdfcfc, 0x00fdfcfd, 0x00f6f7f7, 0x00afb2b1,
- 0x005f6152, 0x0090918c, 0x0091939a, 0x00454b5e, 0x00232a4e, 0x001d244b, 0x001f264b, 0x0021254a, 0x00252845, 0x0045495d, 0x007c7d8f, 0x009d9fac, 0x00a8a9b8, 0x00a3a6b0, 0x00989aa8, 0x009395a4,
- 0x00787a8d, 0x004d4e5f, 0x002b2c3d, 0x00343448, 0x00494a5c, 0x0064657c, 0x008b8da1, 0x00a2a6b3, 0x00b2b4bd, 0x00b7bcbd, 0x00bbc3c1, 0x00d2dbda, 0x00e7eef7, 0x00d1d8e7, 0x00848aa1, 0x003c425e,
- 0x00202462, 0x001c2456, 0x0018214a, 0x00161f3e, 0x001f253e, 0x0020233d, 0x0022233d, 0x0026273f, 0x0036333b, 0x003d3c39, 0x004a4236, 0x00564532, 0x005c4935, 0x005f4c32, 0x00624d2f, 0x00634d29,
- 0x00644820, 0x005d3f13, 0x005d3e0e, 0x00664612, 0x0071511b, 0x006e4d15, 0x00704c14, 0x00724f17, 0x00714f18, 0x00704f17, 0x00714f1b, 0x006f4c1b, 0x00714e1b, 0x0074501e, 0x00775221, 0x00785420,
- 0x007b5521, 0x0079531f, 0x0077521e, 0x0075501c, 0x00744f1b, 0x006f4a16, 0x006d4813, 0x006b4711, 0x00724c18, 0x007b5521, 0x00835a24, 0x00865819, 0x007b5111, 0x0078500f, 0x00765414, 0x00755616,
- 0x006f4f0c, 0x00694e0c, 0x00654d0c, 0x00624e07, 0x00634e0a, 0x005e511d, 0x0059502b, 0x00584e2c, 0x00594d37, 0x00514739, 0x004a433d, 0x00423f41, 0x0031303b, 0x00252634, 0x00272a39, 0x002b2f42,
- 0x0048496f, 0x005f6283, 0x006c6f8b, 0x00767a8e, 0x007e828f, 0x00868b93, 0x00878c93, 0x00868c92, 0x00a8acb8, 0x00bcbdcc, 0x00a6a9b1, 0x00828a86, 0x0050565e, 0x00333749, 0x001f223d, 0x0027274e,
- 0x00282656, 0x00292954, 0x0033335d, 0x0048496a, 0x0081839e, 0x00b9bfc4, 0x00ccd2d5, 0x00a9adbf, 0x005d5c86, 0x00373564, 0x00716e96, 0x00d7d6ec, 0x00fbfeff, 0x00fbfcfa, 0x00fdfdf6, 0x00fafcf3,
- 0x00ded3d1, 0x006e737b, 0x0039475c, 0x00485f88, 0x007b6eae, 0x00a16eb2, 0x00c671a7, 0x00e27b91, 0x00e07d57, 0x00da863e, 0x00e9984e, 0x00d88f55, 0x009e6b44, 0x00724a2a, 0x00593c1d, 0x0052391a,
- 0x006c3f1b, 0x00936239, 0x00b78462, 0x00ae8567, 0x008c6d5e, 0x00526885, 0x0037649c, 0x003a699f, 0x003d69a4, 0x003c659f, 0x004369a0, 0x00436497, 0x004f688d, 0x00788ea9, 0x00d0e3f7, 0x00c4d5e5,
- 0x0080819e, 0x009599b0, 0x00dee6f6, 0x00d7e5f3, 0x007f8eaf, 0x00536393, 0x004d5f98, 0x004b5ea3, 0x004b61a7, 0x004660a1, 0x004363a3, 0x003f69a8, 0x003a708f, 0x00396d95, 0x004066a4, 0x00465eb9,
- 0x006164a9, 0x00858689, 0x00c6cb9a, 0x00dde68f, 0x00e2ef99, 0x00b9e2dd, 0x0087c0f0, 0x007ab7f1, 0x0090b9f4, 0x008f99c5, 0x00877591, 0x009d7272, 0x00b1745d, 0x00a56c47, 0x00af794b, 0x00bb8752,
- 0x00cc9069, 0x00b17f73, 0x00b18ba0, 0x00b39dd2, 0x00888dcd, 0x007d91c0, 0x00a2b7dc, 0x00c8e0f4, 0x00d0dcf4, 0x00bfc8ed, 0x00c4c6e5, 0x00c8d0cf, 0x00bbcad2, 0x00a0bbcc, 0x006286a3, 0x003c678d,
- 0x003b689b, 0x003a6798, 0x003d6595, 0x00416494, 0x0042608d, 0x003e639c, 0x003d649f, 0x003f6194, 0x00526685, 0x00737780, 0x00b8ada4, 0x00efdbbf, 0x00fef8d6, 0x00fdfdde, 0x00f9fde3, 0x00f3feed,
- 0x00f0faec, 0x00b2b9a9, 0x003b3e2c, 0x00322b1b, 0x00442d22, 0x0086665d, 0x00d5ada7, 0x00bf9491, 0x00a17475, 0x00a37878, 0x0079504f, 0x007b544f, 0x00cc8f92, 0x00dca29f, 0x00a67e70, 0x0083755d,
- 0x008b887f, 0x0066606f, 0x00170a33, 0x000e053c, 0x0001094a, 0x0003164d, 0x00001148, 0x000d1a54, 0x00181d56, 0x000e1438, 0x00161b31, 0x00444b4f, 0x007a858c, 0x005d6c8d, 0x001b2a64, 0x000f1f73,
- 0x00304193, 0x00283e8f, 0x00061c6d, 0x00001765, 0x00062472, 0x00042172, 0x00082679, 0x001d388a, 0x00192d8a, 0x0004146f, 0x0002146f, 0x00042879, 0x000c2e88, 0x000b2b83, 0x000d277d, 0x00142c77,
- 0x000b1f5e, 0x00011553, 0x00051c5a, 0x00021c62, 0x00031c6b, 0x00011765, 0x0006246f, 0x00133586, 0x000f2a77, 0x00092060, 0x00223464, 0x002b3d58, 0x001c2831, 0x00161f24, 0x00060b10, 0x00080b10,
- 0x0026040c, 0x002d1917, 0x00544d46, 0x0032392d, 0x00061501, 0x00040c01, 0x00191905, 0x00373116, 0x00625444, 0x004e4639, 0x006a655b, 0x00bdbdba, 0x00e4e6ee, 0x00d4dbe3, 0x00aaadb8, 0x0071727d,
- 0x0073666f, 0x00716763, 0x0074625c, 0x006c5d53, 0x006a6257, 0x00686354, 0x0074665a, 0x00706559, 0x006c5b55, 0x005d4a44, 0x004f3832, 0x004e342c, 0x00562f28, 0x0065372f, 0x006b362c, 0x006e372c,
- 0x006d3a29, 0x006d3f2b, 0x00714834, 0x00754f3b, 0x007a5743, 0x00795b47, 0x00775a48, 0x00725543, 0x006a483d, 0x005a392c, 0x004a2e27, 0x003d2d28, 0x0043332f, 0x00554239, 0x00715949, 0x00866951,
- 0x009c7559, 0x0094725a, 0x00b8a191, 0x00f1eae5, 0x00f4ffff, 0x00f6fdfb, 0x00fdfffc, 0x00fefbf9, 0x00dfd3c5, 0x0090826c, 0x00625038, 0x00644f36, 0x0068533f, 0x00695746, 0x00685a4c, 0x007a6d62,
- 0x00867a7b, 0x008e8386, 0x00948d92, 0x00949198, 0x0095959e, 0x009799a1, 0x009799a2, 0x00999aa4, 0x0097939d, 0x00908d95, 0x008e8789, 0x008f857b, 0x008d7f6f, 0x0087735a, 0x00896d4b, 0x008f7046,
- 0x009a7248, 0x00926e46, 0x008f6b45, 0x008a6945, 0x007c5e3f, 0x00735e3d, 0x00684f2e, 0x00644423, 0x005f3e24, 0x005c4436, 0x00605453, 0x005b606c, 0x00798089, 0x00807d74, 0x008a775f, 0x00a18059,
- 0x009b7742, 0x009c733a, 0x00a4783b, 0x00b18541, 0x00c39350, 0x00be8c50, 0x00b48753, 0x00855c32, 0x0059371e, 0x00583d28, 0x004e2e23, 0x003c150f, 0x004c2718, 0x00937350, 0x00c8a97f, 0x00bba16c,
- 0x00ac9061, 0x00917a51, 0x008c7658, 0x00836b5a, 0x00735e59, 0x00685d57, 0x0059554b, 0x004c4841, 0x003f3b3a, 0x00373433, 0x003a3435, 0x00393335, 0x003a332b, 0x003f3729, 0x00433928, 0x0041371f,
- 0x00413528, 0x00423320, 0x004b3720, 0x005d4522, 0x0082632e, 0x0093702e, 0x009a722d, 0x009c6e29, 0x009c692d, 0x009d6e33, 0x00a7763d, 0x00a27836, 0x009d753b, 0x009e794a, 0x00a17a59, 0x009e7f68,
- 0x009c7f76, 0x009e8e84, 0x00a2948c, 0x009c998c, 0x00626656, 0x00323428, 0x00302c22, 0x003d382b, 0x005c4a34, 0x006b5436, 0x00735936, 0x00775933, 0x0075522e, 0x006e4c2b, 0x00624022, 0x005a391d,
- 0x0053391c, 0x00533b1a, 0x005b411e, 0x005f4522, 0x005d4122, 0x00553e23, 0x004a3622, 0x003c2b1b, 0x00291f14, 0x0019130a, 0x000c0703, 0x00020300, 0x00000001, 0x00000002, 0x00010103, 0x00000201,
- 0x000c0608, 0x00241b12, 0x00443628, 0x0056452d, 0x006a5535, 0x00745f45, 0x00baaa97, 0x00f7f3e8, 0x00fcfaff, 0x00fafdff, 0x00fcfdfd, 0x00fdfdfb, 0x00c0bbb8, 0x00767474, 0x0083858a, 0x00adb6c0,
- 0x00cbcdd0, 0x00c0c4c8, 0x00d8dddf, 0x00e4ecf0, 0x00dee9ed, 0x00e1eef1, 0x00e3edf4, 0x00cad3d8, 0x0044484b, 0x0007090b, 0x00050808, 0x00080808, 0x00090809, 0x00080609, 0x0007090a, 0x00070808,
- 0x000a0a0a, 0x00090909, 0x00090909, 0x00090909, 0x00090909, 0x00090909, 0x000a0a0a, 0x000a0a0a, 0x000a0a0a, 0x000a0a0a, 0x000a0a0a, 0x00090909, 0x00090909, 0x00090909, 0x000c0c0c, 0x000f0f0f,
- 0x00230a04, 0x000a0d0c, 0x00162b40, 0x00466e9f, 0x00768ec4, 0x00807f9d, 0x006d5563, 0x003f1f14, 0x000a0002, 0x00030901, 0x00010a04, 0x0004040e, 0x00040209, 0x0003040c, 0x00010109, 0x00040208,
- 0x00080105, 0x000d0504, 0x000f0002, 0x001a0704, 0x00412514, 0x003b4146, 0x003d4f6d, 0x003d507d, 0x0027468e, 0x00224890, 0x002b5497, 0x00416a9b, 0x00878e9c, 0x009a8176, 0x007e472c, 0x0089390f,
- 0x0065341d, 0x00592d18, 0x00542d1c, 0x00472818, 0x002a1509, 0x00150603, 0x000e0401, 0x001c180b, 0x002a2418, 0x001e1d0f, 0x00252010, 0x00271f09, 0x00261f0e, 0x001d1b0e, 0x0016150c, 0x0010110c,
- 0x000a0d0b, 0x00080b09, 0x00080909, 0x000a090a, 0x00100d0e, 0x00110e0e, 0x00161311, 0x00181713, 0x001b1412, 0x001c1612, 0x00201812, 0x00221910, 0x00241a0f, 0x00261c0e, 0x00261e0d, 0x00261f0c,
- 0x002a2111, 0x0028200d, 0x00271e0e, 0x001d1608, 0x00282216, 0x00757269, 0x00f0efeb, 0x00fdfdfa, 0x00fbfdfb, 0x00fafbfb, 0x00fffcfd, 0x00bfb9c2, 0x00323858, 0x0012245b, 0x00132f79, 0x00153a95,
- 0x001f44a2, 0x00304b9d, 0x005561a8, 0x007175a7, 0x00615574, 0x00332628, 0x001b0b00, 0x00281001, 0x003f1e0a, 0x003a1b0c, 0x003d211a, 0x00331f1c, 0x002c241e, 0x00292213, 0x001f1704, 0x002e2409,
- 0x006e554c, 0x005c4943, 0x00100100, 0x000d0300, 0x00311c0e, 0x0068462a, 0x00885634, 0x0091552a, 0x00905027, 0x0093562c, 0x00895739, 0x00624e39, 0x008a7772, 0x00dfd3d9, 0x00f3eafe, 0x00d2cff7,
- 0x008991d3, 0x00495aaa, 0x002a43a2, 0x001e3db3, 0x00173cc9, 0x002346d1, 0x002345c7, 0x002a4dc5, 0x00466ed7, 0x00557fe5, 0x005c81ec, 0x006589f8, 0x006381ee, 0x006784df, 0x004b66af, 0x0019336b,
- 0x00010214, 0x00020109, 0x00010305, 0x00000300, 0x00000302, 0x00030500, 0x00070301, 0x00030001, 0x00050107, 0x00040203, 0x00060307, 0x000b0a0c, 0x000c0809, 0x00120803, 0x00382a23, 0x0046372a,
- 0x004d3528, 0x0044281d, 0x00391e13, 0x003b2114, 0x004d3125, 0x0064462c, 0x008e6646, 0x00ad7653, 0x00ab7b6c, 0x006f5555, 0x001c0a14, 0x001d0c0a, 0x00874c1a, 0x00c37f2f, 0x00da9639, 0x00c88f2e,
- 0x00eff4f7, 0x00e8ecfa, 0x00e7f5ff, 0x00e4fefd, 0x00ddfefe, 0x00ecf5f6, 0x00f2e6ec, 0x00fad2db, 0x00d5c6b2, 0x00a0c295, 0x0089b594, 0x009eb5bf, 0x00becfd4, 0x00d8e0e7, 0x00c9cad4, 0x007c7986,
- 0x00232331, 0x00080a1e, 0x00333749, 0x0096a1ab, 0x00c8d8db, 0x009bb6ea, 0x006180ce, 0x004a6fc0, 0x005177d5, 0x004b74d3, 0x00416ace, 0x003760c5, 0x003c5fc0, 0x003f5cba, 0x002b459f, 0x000e257b,
- 0x00182294, 0x002c43a3, 0x003d61b5, 0x004070b8, 0x00356cc8, 0x002e61c6, 0x002c57c1, 0x003e59c0, 0x008993c4, 0x00e1e5f2, 0x00d2d9de, 0x00c4d1e8, 0x00cde7eb, 0x00d8f2f3, 0x00d8f1f3, 0x00e3f5fd,
- 0x00e2f3fb, 0x00e5f6fc, 0x00c9dbf6, 0x008ba5cf, 0x006481db, 0x006089db, 0x006c9ae5, 0x007daae4, 0x0091b8d6, 0x00accfdf, 0x00cce8ee, 0x00d7f1f0, 0x00edf6fd, 0x00ecf0fa, 0x00d6d3f0, 0x00b3afdf,
- 0x006b95e4, 0x00608bdc, 0x005380d1, 0x004c7ace, 0x004573cb, 0x003868c1, 0x003164be, 0x002c61bf, 0x002f64ca, 0x003869d1, 0x00446fd8, 0x004d72d1, 0x005178db, 0x004e75d5, 0x00335bbd, 0x002b52b3,
- 0x002149a3, 0x002d50a7, 0x0029489c, 0x001d3886, 0x0019347f, 0x001e3573, 0x002e4275, 0x007182a8, 0x00ccd9ed, 0x00dde8f4, 0x00dce3f1, 0x00d5d9e9, 0x00cbcee3, 0x00c3c5d7, 0x00cbcede, 0x00d7dee7,
- 0x00d7d9e8, 0x00d3d5e3, 0x00c3c5d2, 0x00b2b5c2, 0x00c0c3d0, 0x00cdd2df, 0x00cbd3de, 0x00b9c3cd, 0x009ca7af, 0x00a4b1b7, 0x008f9aa2, 0x007b8591, 0x00929aa7, 0x00a3acb8, 0x00acb2bf, 0x00a7adb9,
- 0x00a1a7ae, 0x00b5b8c1, 0x00c1c5cf, 0x00cbced7, 0x00d6d7e0, 0x00dad5da, 0x00cfcbcc, 0x00c7c2c3, 0x00dad3d6, 0x00f4f0f1, 0x00fefcfb, 0x00fafaf8, 0x00ffffff, 0x00fcfbfc, 0x00ecedee, 0x009c9f9f,
- 0x00686a60, 0x00979a90, 0x00949a8c, 0x00515c4a, 0x00394835, 0x002c3b31, 0x00222d30, 0x001e2539, 0x00202252, 0x0024225e, 0x002a2761, 0x00303053, 0x003e3e61, 0x00454664, 0x004a4b6a, 0x004e4e6a,
- 0x00545a6b, 0x006d727f, 0x008b9095, 0x00adb1b7, 0x00c5c9ca, 0x00c6c6d6, 0x00a6a5b8, 0x008f909e, 0x006e7376, 0x006c7370, 0x00a3aca3, 0x00d4dfd5, 0x00d0d8de, 0x00858d9b, 0x002f354e, 0x001f2446,
- 0x00212742, 0x0031384c, 0x00505868, 0x006d7485, 0x0081839b, 0x007f7e9e, 0x00605d82, 0x00423d6a, 0x002a2247, 0x002c2643, 0x002e2b40, 0x00292c3d, 0x00363543, 0x003c3c48, 0x00443e44, 0x004c4345,
- 0x004c443e, 0x004e433a, 0x0047392b, 0x00534434, 0x0051402e, 0x00543c29, 0x005c3e2b, 0x005d3e2a, 0x005c3f25, 0x005f4325, 0x00634823, 0x0061471b, 0x00614819, 0x00634b19, 0x00654d18, 0x00654e17,
- 0x00654917, 0x00614614, 0x00644917, 0x00664b18, 0x00684d1c, 0x00624816, 0x005d430f, 0x005a400c, 0x00624512, 0x00634716, 0x00604812, 0x005e4a09, 0x005e4b11, 0x005b4811, 0x005e4c1c, 0x005d4b22,
- 0x00564c24, 0x00514927, 0x00544e32, 0x00544b36, 0x004f4836, 0x004a4243, 0x00403b48, 0x003a3448, 0x0036314a, 0x0032304a, 0x002a2c45, 0x00242942, 0x00222942, 0x001f283e, 0x004d576a, 0x00808b9e,
- 0x00a4afbf, 0x00b4becf, 0x00a9b2c0, 0x009da7b0, 0x00949ba3, 0x009aa0a9, 0x00777d8a, 0x0043485a, 0x003c3e5a, 0x0067658a, 0x008c8ea0, 0x00a4af9a, 0x00b0b9af, 0x00979da0, 0x00737787, 0x00545472,
- 0x002b2e4c, 0x00272948, 0x00353654, 0x005a5c77, 0x006c6f83, 0x00636a75, 0x0077808a, 0x008e93ac, 0x00595987, 0x002b2758, 0x00747298, 0x00d9dbeb, 0x00fdfefd, 0x00fdfefd, 0x00f9fdf7, 0x00fefff8,
- 0x00e3c4c2, 0x0068697d, 0x00224168, 0x0027598f, 0x006a6590, 0x00ac6274, 0x00de645c, 0x00ff704f, 0x00f56431, 0x00cc5e29, 0x00c7703e, 0x00aa6c3f, 0x00845630, 0x00754c2d, 0x0093684a, 0x00ab7b58,
- 0x00be8555, 0x00cd9263, 0x00c58b6a, 0x00b78974, 0x00947878, 0x0059689d, 0x003e63b4, 0x003d61b3, 0x004361b8, 0x004462b3, 0x00435fae, 0x00445da5, 0x006b7ab7, 0x00b7c1f2, 0x00d0d6f5, 0x009797bd,
- 0x00818695, 0x00bdc3d2, 0x00eaf1f8, 0x00edf6fd, 0x00afbad6, 0x006676a0, 0x004c5f94, 0x004b5ea1, 0x004a61a1, 0x004a63a0, 0x004865a9, 0x003d67b7, 0x003b6f92, 0x003f7291, 0x00446d92, 0x00465f9e,
- 0x006e78a4, 0x009b9fa9, 0x00b2b3a5, 0x00d0d4bc, 0x00dde2e3, 0x00bbdbf4, 0x008ab8f3, 0x0072a3e8, 0x007497ec, 0x007483cd, 0x00666198, 0x00805c77, 0x00b46c64, 0x00c3806e, 0x00c38d78, 0x00bc9886,
- 0x00a2938c, 0x008a7e97, 0x008985bd, 0x008c92ed, 0x006b84e4, 0x006489d3, 0x0084ace4, 0x00a3ccf2, 0x00b1cdf6, 0x00b5caf8, 0x00c4d3f7, 0x00c5cfd8, 0x00b9c8de, 0x009fb4d2, 0x006583ac, 0x00476b99,
- 0x00376296, 0x00396398, 0x003e6298, 0x0043649a, 0x00486297, 0x0041629e, 0x003f61a0, 0x003f5f99, 0x005a668e, 0x00858396, 0x00ada09e, 0x00d5bfa9, 0x00fef7dc, 0x00fefde7, 0x00fafeef, 0x00f6fefb,
- 0x00f7f5e9, 0x00c7b9ae, 0x006a5449, 0x0051362a, 0x00815f53, 0x00c0a193, 0x00cfb1a4, 0x00b0968c, 0x0076605b, 0x005c4943, 0x00564037, 0x006c493f, 0x00a3665c, 0x00ae7869, 0x009c7a69, 0x008d8a77,
- 0x00b2b7b0, 0x00b7a4b1, 0x00391937, 0x001a012b, 0x00030944, 0x00020e39, 0x00020f38, 0x00021149, 0x00191a62, 0x0019194c, 0x00080d28, 0x00182422, 0x0058665a, 0x0076828f, 0x006c779e, 0x00445094,
- 0x00283d93, 0x002a3e96, 0x0012247d, 0x00011166, 0x00021969, 0x00072570, 0x0016337b, 0x001a3377, 0x00132a6b, 0x00091c61, 0x0000104c, 0x00001f4c, 0x000f2b64, 0x00153170, 0x0018326e, 0x00122c63,
- 0x0000163c, 0x0003183c, 0x000c254b, 0x00031b49, 0x00020d47, 0x00000e53, 0x0006236b, 0x0018317e, 0x0010236e, 0x000c1e5b, 0x00202f5a, 0x00213046, 0x001e272a, 0x001f2525, 0x001a1d1d, 0x0016191a,
- 0x00100a1b, 0x000f112a, 0x002e3a56, 0x002d4562, 0x0014323f, 0x00112c2d, 0x001f332d, 0x00303b39, 0x0043434e, 0x0065667d, 0x00b0afc7, 0x00e8e5f4, 0x00d0d9f0, 0x0094a3c8, 0x007b88b1, 0x00656e90,
- 0x005e5860, 0x006f5d5b, 0x00775d55, 0x00755d51, 0x006d5a4f, 0x00645a49, 0x005f5846, 0x00605749, 0x0054473e, 0x00493a31, 0x004a372d, 0x004d3a2c, 0x0069483a, 0x00754e3c, 0x0080533f, 0x0085553f,
- 0x00835836, 0x00835c3d, 0x00866044, 0x00845f45, 0x00825e49, 0x007c5e49, 0x00795d47, 0x00755746, 0x006d4b3a, 0x005e3c2c, 0x00492c1f, 0x0038251c, 0x003e2a21, 0x00563f34, 0x007a5d4b, 0x00906d54,
- 0x009c7654, 0x00987559, 0x00bda492, 0x00f2ebe5, 0x00f6ffff, 0x00f6fdfb, 0x00fcfefc, 0x00fffdf9, 0x00e7dbcb, 0x009b8a74, 0x00715a42, 0x006d563c, 0x0075614d, 0x00766658, 0x007d7068, 0x00877b78,
- 0x00918a8d, 0x00999499, 0x009e9ca3, 0x009fa0a9, 0x00a1a5af, 0x00a2a7b1, 0x00a2a6b1, 0x00a1a3af, 0x00a39fa8, 0x009e9aa1, 0x00969192, 0x00958980, 0x008d7f6f, 0x008a745c, 0x00826848, 0x0082623b,
- 0x00886437, 0x0089653b, 0x0089663d, 0x0084653d, 0x007c5d3c, 0x006e5d3b, 0x0065512f, 0x0066492a, 0x00604026, 0x00513c31, 0x004d494c, 0x004d5a6e, 0x00506a83, 0x00576777, 0x00676e74, 0x00817a77,
- 0x00997c2e, 0x00937022, 0x00a7812c, 0x00b48a33, 0x00c4943d, 0x00c18e42, 0x00cf9e5a, 0x00ba8854, 0x008b5941, 0x00784939, 0x00633324, 0x0068331e, 0x00996a4c, 0x00c99d75, 0x00d3ac82, 0x00c7a576,
- 0x00a48959, 0x009e855d, 0x00987d63, 0x008e7062, 0x00826863, 0x006c625d, 0x00555651, 0x00494949, 0x003c3a3d, 0x00383738, 0x003f3d3c, 0x00423e3b, 0x004b3f32, 0x0051422e, 0x0057442d, 0x00584426,
- 0x004b4124, 0x004d3d24, 0x00533c25, 0x005a3e27, 0x0079592c, 0x0089682b, 0x00926f27, 0x00977126, 0x00997137, 0x00986f41, 0x0095714c, 0x00927f59, 0x009b816d, 0x00978176, 0x009f8788, 0x00a18a98,
- 0x009b91a2, 0x009e9eb0, 0x00a6a9c3, 0x00aab4cc, 0x008fa2b8, 0x0079848d, 0x005d6061, 0x0052514e, 0x00604f3b, 0x0071593b, 0x007d623b, 0x007b5c30, 0x007a572d, 0x0072502c, 0x00634124, 0x0058371e,
- 0x004a3719, 0x00544122, 0x00604d2f, 0x00654f35, 0x00604d35, 0x00584732, 0x00483c2a, 0x00372e1f, 0x0029231b, 0x001e1911, 0x00100f08, 0x000a0a03, 0x00060704, 0x00030405, 0x00020105, 0x00000104,
- 0x00050402, 0x00151009, 0x0030251a, 0x00443622, 0x0056452c, 0x005e4d38, 0x00b1a392, 0x00f8f6ed, 0x00fafcfe, 0x00f9fdfe, 0x00fbfcfc, 0x00fbfcfa, 0x00c3bdba, 0x00777475, 0x0087888e, 0x00afb6c1,
- 0x00d8dce1, 0x00eaedf6, 0x00ecf0fc, 0x00e6ecfb, 0x00e4ecfd, 0x00e0e9f8, 0x00dde4f3, 0x00e5e9fa, 0x00999ba3, 0x00323238, 0x00030407, 0x00020203, 0x0009090a, 0x00070609, 0x00080809, 0x000a0a0a,
- 0x000a0a0a, 0x00090909, 0x00090909, 0x00090909, 0x00090909, 0x00090909, 0x000a0a0a, 0x000a0a0a, 0x00080808, 0x00080808, 0x00080808, 0x00080808, 0x00080808, 0x00080808, 0x000c0c0c, 0x000f0f0f,
- 0x001b0802, 0x000d0c1a, 0x0012203f, 0x004a699d, 0x007783b6, 0x006e607b, 0x0044252b, 0x00250200, 0x000d0100, 0x00040501, 0x00050601, 0x00070000, 0x000f0508, 0x000b0507, 0x00040106, 0x00050509,
- 0x00020304, 0x00030301, 0x00070605, 0x00030000, 0x00100603, 0x00171c23, 0x00263243, 0x00333e5c, 0x0036507f, 0x0031548a, 0x00264c80, 0x00274f79, 0x006d7588, 0x00a68f8a, 0x00a77259, 0x00994e26,
- 0x006c3517, 0x00653315, 0x0062331a, 0x00542d16, 0x003d220c, 0x002a1706, 0x00211205, 0x00292011, 0x00242114, 0x00242317, 0x00211f0f, 0x002a210b, 0x00241e0c, 0x001f1c0f, 0x00131409, 0x000e0f09,
- 0x00070d09, 0x00070b09, 0x00060708, 0x00080709, 0x000d090b, 0x000f0b0b, 0x0011100d, 0x00151510, 0x001b1714, 0x001d1815, 0x001d1912, 0x001e1a0f, 0x0021190e, 0x00221a0d, 0x00241b0d, 0x00251b0d,
- 0x00241c0a, 0x00241c0c, 0x00231b0b, 0x001f180a, 0x00272117, 0x0069655b, 0x00e8e6de, 0x00fefdfc, 0x00fdfffb, 0x00fcfdfb, 0x00fbfbfc, 0x00c6c7d0, 0x003a4768, 0x000f2459, 0x000b276b, 0x00123587,
- 0x00224796, 0x00395394, 0x005d659b, 0x00615f7d, 0x003c2739, 0x00280d10, 0x0045260b, 0x00673f24, 0x00875239, 0x00895743, 0x00784b3c, 0x00613e32, 0x0051392e, 0x004e3424, 0x003d2008, 0x00674729,
- 0x00bb9d87, 0x00836c5a, 0x00150602, 0x000c0300, 0x00170b05, 0x00422a15, 0x00836044, 0x00845435, 0x008e5738, 0x0090573e, 0x00895d50, 0x00797075, 0x00b2acc2, 0x00c2c3e6, 0x009ea0e0, 0x00626ebc,
- 0x00273f96, 0x00173499, 0x000a2a9e, 0x000f30b8, 0x000d30cc, 0x00163ab6, 0x002345b7, 0x002a48c9, 0x00314eda, 0x003b58de, 0x004e6ee6, 0x007192f0, 0x00a2c5fe, 0x009bb6ff, 0x006983e3, 0x00475bc7,
- 0x00112048, 0x0001051f, 0x0000020c, 0x00000501, 0x00040304, 0x00030000, 0x00040202, 0x00050107, 0x00050108, 0x00030304, 0x00020404, 0x00010608, 0x00040805, 0x000a0604, 0x00231a14, 0x0035291f,
- 0x00443225, 0x00443023, 0x003c271c, 0x00352115, 0x003e271c, 0x004b321d, 0x00765138, 0x00996546, 0x00845a4b, 0x00483133, 0x000e0408, 0x00231810, 0x009c6b2b, 0x00cd9339, 0x00e1ab40, 0x00c6992d,
- 0x00f8e9fb, 0x00e7ebfd, 0x00e9fafd, 0x00e3fefd, 0x00e5f9f4, 0x00edf9f9, 0x00f3f6f8, 0x00eaf0f0, 0x00d4e9d1, 0x00bbdab3, 0x00adc7ad, 0x00b0c2c8, 0x00c9d4da, 0x00dee6ed, 0x00c9cad6, 0x0072737e,
- 0x00171a2c, 0x000e1529, 0x00515e76, 0x00b1c2da, 0x00b2cae4, 0x006e8dcf, 0x00496fc2, 0x004570c3, 0x00517cda, 0x004b79d8, 0x00406dd2, 0x003965ca, 0x003c62c4, 0x003655b4, 0x00213d99, 0x00132c87,
- 0x00172895, 0x002f49a8, 0x004668bf, 0x004875c6, 0x003d6ecd, 0x003462cd, 0x002d54c0, 0x003c55ba, 0x00929fd1, 0x00d3dff0, 0x00a1abc9, 0x006b75c8, 0x007286d2, 0x00849bd9, 0x008fa5d4, 0x009fafcc,
- 0x00b0b9d7, 0x00bdc4e9, 0x00bcc2f1, 0x009fb3e5, 0x0098b8e4, 0x00b2c3f1, 0x00bdcff8, 0x00cce0fa, 0x00e2f7ff, 0x00e7fdfc, 0x00ebfeff, 0x00e3fbfc, 0x00c3e0f7, 0x009ebbe9, 0x007b94d3, 0x006e8ad4,
- 0x005281f0, 0x004f80ea, 0x004879db, 0x003f72c9, 0x00376bba, 0x00366aba, 0x003a6ec1, 0x003c70c9, 0x004176dc, 0x00477ae5, 0x00507ae7, 0x005275d5, 0x004467ca, 0x00355bba, 0x00224aac, 0x00234bac,
- 0x00355ab3, 0x003556ad, 0x00264498, 0x001c3683, 0x001d357f, 0x001c2f6b, 0x00536294, 0x00a7b5da, 0x00d8e2f1, 0x00d3dee6, 0x00d9dfe8, 0x00dde0ed, 0x00d4d5e8, 0x00c9c9db, 0x00c9cad8, 0x00d2d8df,
- 0x00dcdbea, 0x00dadae9, 0x00d0cfdf, 0x00bcbecd, 0x00b5b9c8, 0x00c3c8d7, 0x00c8cede, 0x00b9c0d0, 0x0096a0b0, 0x0098a6b4, 0x008b96a5, 0x007b8490, 0x00959dab, 0x00a7afbc, 0x00a8adba, 0x00a1a6b2,
- 0x00a5aab0, 0x00b8bbc3, 0x00c5cad4, 0x00cdd2db, 0x00dadbe4, 0x00e1dce1, 0x00e2dedf, 0x00e1dcde, 0x00efe9eb, 0x00fdf9f9, 0x00fdfafa, 0x00fcfbfb, 0x00fffeff, 0x00fbfafb, 0x00dcdcdd, 0x008d8d8e,
- 0x006b6c6d, 0x009ea297, 0x00959c87, 0x004d5a36, 0x003f5127, 0x003b4d2b, 0x002f3f2b, 0x00252f32, 0x00212450, 0x00262461, 0x0025235e, 0x0020214b, 0x00191843, 0x00282851, 0x00626387, 0x009393b5,
- 0x00adb0c8, 0x00babdce, 0x00c4c8d2, 0x00d3d9db, 0x00ecf1f2, 0x00e4e6ef, 0x00a6a5b6, 0x006c6c7a, 0x003c4145, 0x00616668, 0x00cad0d0, 0x00dae2e1, 0x008a929f, 0x003c4559, 0x001b233f, 0x001c2347,
- 0x00424654, 0x00787e85, 0x00a5aaad, 0x00b5b8bf, 0x00bcbcd0, 0x00c4c2e0, 0x00c1bde2, 0x008b87b4, 0x0049456d, 0x00292648, 0x00292848, 0x00222646, 0x00202340, 0x001f213a, 0x002d2e42, 0x002e2f40,
- 0x003b3745, 0x003b3941, 0x00383438, 0x003b363a, 0x003f373b, 0x0048393d, 0x00503b3e, 0x00523e40, 0x00523f39, 0x00534234, 0x00574533, 0x0056452e, 0x00574729, 0x00584827, 0x00594826, 0x00594a21,
- 0x005c4829, 0x005b4728, 0x005c4928, 0x005e4b2b, 0x005d4a2b, 0x005a4828, 0x005a4827, 0x00584624, 0x00574425, 0x005b4826, 0x005b4c2f, 0x00554b36, 0x00564a3b, 0x0052483a, 0x00544b43, 0x004e4746,
- 0x00464547, 0x00393740, 0x00383647, 0x0039354b, 0x0033314a, 0x00312f4f, 0x002a274f, 0x00282750, 0x00292853, 0x00262953, 0x00232850, 0x0021284b, 0x00202845, 0x003f485d, 0x00949faa, 0x00bdc9cf,
- 0x00b9c4cd, 0x00919ba4, 0x00636e77, 0x004c565f, 0x004e5361, 0x00525669, 0x00474b63, 0x002a2c4a, 0x001a1b43, 0x0026264f, 0x0038395e, 0x0059606b, 0x008e93a3, 0x00b1b4c9, 0x00babcd3, 0x00abaec4,
- 0x00717589, 0x005a5f6c, 0x00787d86, 0x00b3babd, 0x00b6beba, 0x007b858c, 0x00404a60, 0x00313856, 0x002c2d55, 0x0025264c, 0x00757693, 0x00dde0e9, 0x00fcfffc, 0x00fcfffb, 0x00fcfff9, 0x00fcfff9,
- 0x00d6c1d1, 0x0055658c, 0x000c3874, 0x0010529b, 0x00536298, 0x00976277, 0x00cb625c, 0x00ec6246, 0x00cf5842, 0x009a453c, 0x007f443a, 0x006f4733, 0x0071472f, 0x00825132, 0x00a36e4b, 0x00c58660,
- 0x00cf916e, 0x00c59076, 0x00b0867a, 0x00aa8f92, 0x009c94aa, 0x007489c1, 0x005b7ec7, 0x004d6fba, 0x004364af, 0x004665ac, 0x004a65ab, 0x0047609b, 0x008393c2, 0x00c7d2f7, 0x00acb4d0, 0x007e819c,
- 0x007b90ae, 0x0097abc8, 0x00a9bed6, 0x00b0c8df, 0x0092accf, 0x005b77a6, 0x004663a1, 0x004360a8, 0x004767ab, 0x004567a6, 0x004967b2, 0x004a64c3, 0x004569a6, 0x00456d9b, 0x00496b9a, 0x004b639a,
- 0x006e72aa, 0x009495c0, 0x00b3b4d7, 0x00cccee8, 0x00c2ccf4, 0x009eb9f9, 0x007fa5ee, 0x006d90e0, 0x005c80da, 0x004c63b9, 0x003e4087, 0x00563a66, 0x00985053, 0x00a26561, 0x00ab7f83, 0x009a8899,
- 0x008791af, 0x007d89bd, 0x007588d1, 0x006d87e8, 0x005a7fea, 0x005884de, 0x006391e2, 0x006997d7, 0x007ca2df, 0x008db1ed, 0x00a4bff7, 0x00a9b7e8, 0x0092a1d9, 0x008496d2, 0x00677bba, 0x005067a8,
- 0x004763a6, 0x004762a7, 0x004760a7, 0x004960a7, 0x004c5ea5, 0x00485da6, 0x00475ea8, 0x00465aa4, 0x00535894, 0x0078739e, 0x00a294af, 0x00d1bbc6, 0x00fff3f7, 0x00fef9f7, 0x00fcfdfb, 0x00f4fcfb,
- 0x00fff3ef, 0x00d7c1bb, 0x00775e54, 0x0073574b, 0x00b18c80, 0x00dfbcae, 0x00bb9d90, 0x00796559, 0x002f241d, 0x001a1712, 0x00423a2f, 0x00765f51, 0x00a16655, 0x00976854, 0x00957969, 0x00878a82,
- 0x00b7b7c1, 0x00c8a8bc, 0x00673954, 0x00270522, 0x00010d3a, 0x00011139, 0x00020f37, 0x00000c43, 0x000e1150, 0x00141745, 0x000f1330, 0x000d1419, 0x00313c32, 0x006a747a, 0x008d95ad, 0x006f7ba7,
- 0x002a3784, 0x00192977, 0x000d2172, 0x00001062, 0x00091d6e, 0x00132d77, 0x00142f74, 0x00122968, 0x000f245b, 0x00081b4e, 0x00001144, 0x0001164d, 0x00071d5d, 0x000d1f65, 0x0011246a, 0x00081b5c,
- 0x00000f46, 0x0005194c, 0x0015295e, 0x00081f56, 0x00010c54, 0x00021156, 0x00061c62, 0x000f216c, 0x00111e65, 0x00131f58, 0x00273159, 0x002a3448, 0x00242a2a, 0x00282a28, 0x00222120, 0x001b1a1c,
- 0x000e142a, 0x0016214b, 0x00243776, 0x001a3583, 0x001e398c, 0x00294085, 0x00324379, 0x00343f68, 0x00757a9b, 0x00babfe1, 0x00dbdcf6, 0x00e5defc, 0x008590c6, 0x00415593, 0x005d74ae, 0x007383b1,
- 0x00615663, 0x006e5553, 0x00805c50, 0x007e5c4a, 0x00755b4b, 0x006b5842, 0x005f4f38, 0x00564634, 0x0049382a, 0x00433123, 0x004c3a2c, 0x005a4635, 0x00745745, 0x0081614a, 0x008a6a4d, 0x008f6c4e,
- 0x00916e49, 0x0091704f, 0x00907052, 0x008c6e52, 0x00826750, 0x007e654e, 0x007c604b, 0x007b5a4a, 0x0073533f, 0x00684631, 0x00563624, 0x00482e1d, 0x00412b1e, 0x004d3327, 0x006c5244, 0x00886755,
- 0x00977658, 0x0095755d, 0x00bda592, 0x00f4eee4, 0x00f9ffff, 0x00f9fdfc, 0x00fdfdfc, 0x00fefdf6, 0x00e9d9c9, 0x00a08e78, 0x00776047, 0x00786046, 0x00806a5a, 0x007f7066, 0x00857b77, 0x008d8688,
- 0x00a0999f, 0x00a8a3aa, 0x00aaa7af, 0x00acacb5, 0x00aeb0bc, 0x00adafbb, 0x00acadb8, 0x00a9a8b3, 0x00a8a5aa, 0x00a29da3, 0x00999296, 0x00958a85, 0x008f7e70, 0x00867159, 0x00806445, 0x00815f39,
- 0x00815f31, 0x00835e32, 0x007e5d31, 0x007b5d34, 0x007a5b39, 0x00735b38, 0x006d552e, 0x006e4c24, 0x00633a19, 0x004e3020, 0x004b3e41, 0x00525d75, 0x004b6b92, 0x003f5f81, 0x004e6c86, 0x00607588,
- 0x00917f44, 0x008a7133, 0x00997d36, 0x00af8c3e, 0x00be923f, 0x00c08f41, 0x00d5a25c, 0x00cf985e, 0x00b57f5a, 0x00aa775d, 0x0099654b, 0x0099643f, 0x00af7d56, 0x00c2966a, 0x00c49e75, 0x00ba9a73,
- 0x00aa916d, 0x00a78e72, 0x009e8471, 0x0094796b, 0x00886d67, 0x00736b66, 0x00575a57, 0x00474a4a, 0x003d3b41, 0x003b393c, 0x0046413f, 0x004c433c, 0x00594836, 0x00624c32, 0x00684f2f, 0x006c522b,
- 0x005d502b, 0x00574526, 0x00553c24, 0x00563823, 0x006e4d25, 0x00806128, 0x00896c2b, 0x008c6f2b, 0x008b693f, 0x008b6b50, 0x008f7566, 0x0089807b, 0x0091888d, 0x00918692, 0x0096889b, 0x008f8aa2,
- 0x00908fb1, 0x00919ac2, 0x0095a3ce, 0x0095adda, 0x0098b6e4, 0x009db1d2, 0x008a96a8, 0x00757c86, 0x006f6458, 0x00736049, 0x00836948, 0x0085653d, 0x00835f37, 0x00795633, 0x00684628, 0x005c3b20,
- 0x00544126, 0x005e4a31, 0x0069563f, 0x006b5845, 0x00665644, 0x005b4e3e, 0x004c4135, 0x003c332a, 0x002a261e, 0x00201d16, 0x0015150d, 0x0010110a, 0x000e0e0c, 0x000a0b0d, 0x0008060b, 0x00050509,
- 0x00060104, 0x00100907, 0x00251a13, 0x00382b1d, 0x00493726, 0x004e3c2c, 0x00a89b8c, 0x00f5f3ed, 0x00f9fffe, 0x00f7fdfd, 0x00fafdfd, 0x00fbfcfc, 0x00c4bbbb, 0x00787373, 0x0088888d, 0x00b0b6c2,
- 0x00ddddec, 0x00edeffa, 0x00eff2fc, 0x00e8edfc, 0x00e3e9fd, 0x00e3e9fe, 0x00e0e4f4, 0x00eaebfa, 0x00d6d1d9, 0x00797377, 0x00140d10, 0x00060506, 0x0009080a, 0x000c0c0c, 0x00080808, 0x00060605,
- 0x00090909, 0x00080808, 0x00090909, 0x00090909, 0x00090909, 0x00090909, 0x000a0a0a, 0x000a0a0a, 0x00080808, 0x00080808, 0x00070707, 0x00070707, 0x00080808, 0x00090909, 0x000c0c0c, 0x000f0f0f,
- 0x001a090a, 0x00100b19, 0x00161e3b, 0x004c5e8a, 0x006d7298, 0x00514257, 0x00280e16, 0x001b0200, 0x00120101, 0x000c0705, 0x000d0902, 0x00120201, 0x00190602, 0x00190904, 0x00150802, 0x001a0d07,
- 0x00160e08, 0x00090200, 0x00070303, 0x00070403, 0x00020205, 0x000b0a0d, 0x0015131f, 0x001d202c, 0x002d3b55, 0x00364b6f, 0x002e4a6c, 0x001b3556, 0x00545768, 0x00b29794, 0x00d2a087, 0x00b36d42,
- 0x00945836, 0x0098613e, 0x00915d3c, 0x007b4f31, 0x00634328, 0x004e361d, 0x002e1b06, 0x00291d0d, 0x00262114, 0x0027261a, 0x00232112, 0x00251f07, 0x00251e0c, 0x001e1b0d, 0x00121408, 0x000b0e07,
- 0x00080c0a, 0x00080a0a, 0x00050608, 0x00070608, 0x000d0a0a, 0x000f0c0a, 0x0010100c, 0x0014130f, 0x00191513, 0x001b1613, 0x001a170f, 0x001b170e, 0x001e160f, 0x001f180f, 0x00211a10, 0x00211a10,
- 0x00241c0c, 0x00241b0c, 0x00241b0d, 0x001f170b, 0x00251e14, 0x00625e55, 0x00e4e2db, 0x00fdfbf7, 0x00fffefd, 0x00fdfdfd, 0x00fcfefe, 0x00d1d5dc, 0x0046526f, 0x0011234e, 0x001d3266, 0x002a4381,
- 0x00445692, 0x00596194, 0x00615d82, 0x00534357, 0x00452b2b, 0x00563324, 0x00754e31, 0x008d5a3f, 0x009d6341, 0x00a46b4d, 0x009e6851, 0x0082543e, 0x006b4432, 0x006b442f, 0x006c4529, 0x009e7052,
- 0x00e0b79e, 0x00a1816f, 0x00291709, 0x000c0500, 0x00070100, 0x00231609, 0x00563e2e, 0x00664332, 0x00774c3f, 0x007e4f48, 0x008b6c6f, 0x008d89a6, 0x009090c3, 0x007678c1, 0x004550a1, 0x001f338f,
- 0x00152b94, 0x000b2899, 0x000d2ca8, 0x001030b7, 0x000f2fc7, 0x001736ac, 0x001d39aa, 0x002038bc, 0x00283dd5, 0x003148d2, 0x003e58d6, 0x006481e2, 0x00abcbff, 0x00abc9fd, 0x006a81f0, 0x005365e7,
- 0x00263679, 0x00060f3c, 0x00000215, 0x00020401, 0x00010200, 0x00040100, 0x00070104, 0x0007000a, 0x00050209, 0x00010102, 0x00030304, 0x00000304, 0x00040705, 0x00050300, 0x00140e08, 0x0022170c,
- 0x003e2c1f, 0x00463224, 0x00432e21, 0x003a251b, 0x003c251a, 0x00493023, 0x006e4c3b, 0x008a5b42, 0x006a4236, 0x002a1716, 0x00050103, 0x00322f27, 0x00ba925b, 0x00ddb162, 0x00e3bc63, 0x00b99c44,
- 0x00ffe8fe, 0x00f6ecf2, 0x00f0f7f0, 0x00ebf6ed, 0x00f3f3ea, 0x00f5f7f2, 0x00edf7f4, 0x00d5f7f3, 0x00c8e8db, 0x00c5d6c3, 0x00c1cabe, 0x00bec7d1, 0x00d0d7df, 0x00e2e7f1, 0x00b4b8c2, 0x004b4d58,
- 0x00111729, 0x001b263e, 0x004e6485, 0x00839cca, 0x006784be, 0x003f63b0, 0x003b64ba, 0x00406ec2, 0x004f7fdc, 0x004c7fdf, 0x004071d7, 0x003867cd, 0x00355ec1, 0x002e50b0, 0x001d3b98, 0x00112c88,
- 0x00182c95, 0x002c4aa9, 0x004167c0, 0x004270c7, 0x003b6cca, 0x003b64cb, 0x00375ec1, 0x004a69c4, 0x00aec1eb, 0x00cedef1, 0x008293c0, 0x004156ba, 0x003e51be, 0x005267c2, 0x00697fbe, 0x008da0bc,
- 0x00b5b3cd, 0x00cec8ef, 0x00dfddfc, 0x00dee9fc, 0x00dff8f8, 0x00f2f9f9, 0x00f7f7fe, 0x00f6fdfc, 0x00f0f9ff, 0x00daedfb, 0x00b8d4e5, 0x0094b7d0, 0x006994c9, 0x005d89cd, 0x005785d4, 0x004b7ed9,
- 0x005281f4, 0x004e7eec, 0x004477db, 0x003d71cf, 0x004276d0, 0x004174d0, 0x004374d0, 0x004272cd, 0x00426cd4, 0x003d68d0, 0x00365fc6, 0x002e4fb3, 0x002447af, 0x002144a8, 0x002e54b5, 0x003f64c3,
- 0x004162be, 0x002f4da4, 0x00183487, 0x0017307c, 0x00223981, 0x0030407c, 0x008392c0, 0x00c7d6f4, 0x00d5dcea, 0x00d1d9df, 0x00e0e5e9, 0x00e0e1ed, 0x00e0e2f0, 0x00d1d2e5, 0x00c7cad9, 0x00c8cfda,
- 0x00dfdae8, 0x00e1dceb, 0x00dddaeb, 0x00cccddd, 0x00b3b7c8, 0x00b1b8c9, 0x00bac2d5, 0x009ba2b7, 0x00727790, 0x008692a8, 0x00838fa2, 0x00798491, 0x009da4b3, 0x00a7aebb, 0x009ea4b0, 0x00939ca5,
- 0x00adafbc, 0x00bcbfca, 0x00c9cdd5, 0x00d2d8dd, 0x00dadce4, 0x00e0dee2, 0x00ddd7d9, 0x00d7d3d3, 0x00e9e3e6, 0x00fbf5f8, 0x00fffbfd, 0x00fefbfc, 0x00fdfdfc, 0x00fbfcfb, 0x00cdcfcd, 0x007e807e,
- 0x007b7981, 0x00acada7, 0x00949a82, 0x0047532a, 0x003b4f18, 0x00415727, 0x003a4f2b, 0x00334431, 0x0031354e, 0x002f2e57, 0x00272553, 0x00212149, 0x00232349, 0x002f3156, 0x005d6083, 0x007f81a6,
- 0x008382a3, 0x006d6d89, 0x004e5065, 0x00585e6b, 0x008f949d, 0x00bdc0ca, 0x00d0d1db, 0x00c1c2cb, 0x00b7b5bf, 0x00cccdd7, 0x00d4d8e4, 0x008a929e, 0x00363e53, 0x00212b43, 0x00202b4a, 0x002a3459,
- 0x008d8d95, 0x00d4d6db, 0x00c7cbca, 0x008f9392, 0x00595c6b, 0x007c7c9b, 0x00c2c0e4, 0x00c1bfe9, 0x0079789f, 0x00353252, 0x00595d79, 0x007a83a2, 0x00707593, 0x00555978, 0x00444b65, 0x002f354d,
- 0x002b2944, 0x002a2d41, 0x00242636, 0x00262636, 0x00252333, 0x002b2433, 0x002f2433, 0x00372d3a, 0x003c323d, 0x003a2f36, 0x003a3034, 0x00393130, 0x003d352e, 0x003f392d, 0x00413c2e, 0x00443e2d,
- 0x00463a31, 0x00463b32, 0x00493e32, 0x00463c2f, 0x003e3329, 0x003e3429, 0x0042392c, 0x00443a2e, 0x00473c34, 0x00463b30, 0x003d3632, 0x00383941, 0x00332f3c, 0x00332f41, 0x00373448, 0x0034314a,
- 0x00312e4d, 0x0029274b, 0x0025224d, 0x001f1b4a, 0x001f204f, 0x00262655, 0x00252555, 0x00242757, 0x002a2c5e, 0x00282e5e, 0x00222b59, 0x001b264c, 0x00202b45, 0x005c6575, 0x00bdc6cc, 0x00bfc8c9,
- 0x007a838a, 0x002b333a, 0x00222c32, 0x001a2330, 0x00282d42, 0x001d213f, 0x001c2241, 0x00212647, 0x00282752, 0x00292953, 0x00262850, 0x00212446, 0x00282a47, 0x0041435f, 0x006f718b, 0x00999db0,
- 0x00bfc3d4, 0x00bbc0c8, 0x00cad0d2, 0x00d0d8d3, 0x009ca49c, 0x00626c78, 0x0027334e, 0x00182242, 0x0021264b, 0x00252948, 0x00777b8f, 0x00e1e7e9, 0x00fafdf7, 0x00fcfff7, 0x00fbfff8, 0x00fefffa,
- 0x00c7c1d7, 0x004c6995, 0x0009397d, 0x000849a0, 0x003c569b, 0x007a5c81, 0x009d5a66, 0x00b14f48, 0x00924551, 0x00683152, 0x0042233f, 0x003e2a2f, 0x0061392b, 0x00844b2d, 0x00985730, 0x00b36a40,
- 0x00b1735e, 0x00a57a78, 0x009d8797, 0x009c98ba, 0x00919dcd, 0x00829fd8, 0x007ea2e5, 0x007da0e0, 0x007295da, 0x006c8dcd, 0x007393cc, 0x007f9cd2, 0x00a4b8de, 0x00c1d2f2, 0x00adbcd2, 0x00a6b1c2,
- 0x00a3bade, 0x00a2bbdb, 0x00abc6df, 0x00acc9e2, 0x0084a1c6, 0x00506f9f, 0x003c5c97, 0x003c5b9e, 0x003d5fa3, 0x003e5d99, 0x00425ea3, 0x00495bb0, 0x00435c9e, 0x00425e91, 0x00456090, 0x00475d89,
- 0x00515391, 0x008080c4, 0x00b8b9fb, 0x00a3abfb, 0x00788aee, 0x005c7ad5, 0x005f85d6, 0x006a8de1, 0x005982e5, 0x00395bbb, 0x00354693, 0x00675990, 0x00aa6a76, 0x00a77481, 0x00a4869f, 0x007c82b0,
- 0x006e8ad2, 0x006d8cda, 0x006a8fe5, 0x00648dec, 0x005c89f4, 0x005383ea, 0x004a7cdd, 0x003d6dc3, 0x004b75c2, 0x006893d9, 0x007fa5e8, 0x00859ae1, 0x00748ad0, 0x006a7dc4, 0x005264a6, 0x003f4f8f,
- 0x00424d92, 0x00424e92, 0x003d4e92, 0x003d4d93, 0x003f4f96, 0x003e4d93, 0x003c4e93, 0x003b4b8f, 0x0041498c, 0x00515286, 0x006a6489, 0x00b0a1b7, 0x00fdf1fe, 0x00fcf7fc, 0x00f8f8fc, 0x00f1f8fa,
- 0x00fff4f5, 0x00dec2c0, 0x0086675f, 0x009c7c70, 0x00d4ada1, 0x00d9b7a8, 0x00806456, 0x00372619, 0x00100b0a, 0x00070809, 0x00353128, 0x00897968, 0x00cb937c, 0x00a97e67, 0x008e786a, 0x00798784,
- 0x009695ab, 0x00bd95ac, 0x007e4860, 0x00502238, 0x00030d2f, 0x00020c32, 0x00010b35, 0x0000093d, 0x00070a45, 0x000c0e3b, 0x000c0f2f, 0x00060b17, 0x00111a14, 0x002d3839, 0x005d6870, 0x00747d94,
- 0x00616ba4, 0x0025336b, 0x00061755, 0x0013276c, 0x00172c79, 0x000a1f6a, 0x00051c60, 0x00091e5b, 0x00122155, 0x00071944, 0x00041541, 0x000f1d5c, 0x0005145a, 0x00000a56, 0x00000e59, 0x00000f5a,
- 0x000a165a, 0x000c1b59, 0x00152665, 0x00132264, 0x000a1968, 0x00061a5e, 0x00001658, 0x00011056, 0x00081455, 0x00121b52, 0x00252c55, 0x002e374c, 0x00242a2c, 0x00242827, 0x00242526, 0x001c1c20,
- 0x00161d36, 0x001c2a5a, 0x00263d88, 0x001b399e, 0x00223eb2, 0x00384fb0, 0x005b6bbb, 0x00909dd0, 0x00dddeff, 0x00e9eeff, 0x00c6c7f2, 0x008881be, 0x00273881, 0x001a3585, 0x003d5da5, 0x00566da4,
- 0x006f6075, 0x00715152, 0x00845c4a, 0x008e664b, 0x0081644c, 0x007c5e44, 0x00684f33, 0x005c412b, 0x004e3626, 0x004c3525, 0x00534231, 0x00604e3b, 0x0079644e, 0x00877054, 0x008e7955, 0x00957c55,
- 0x00957c59, 0x00987f5e, 0x00977f60, 0x00927b5f, 0x008c765d, 0x008b745d, 0x00856c56, 0x007e624e, 0x007d5b47, 0x00795540, 0x006c4934, 0x005d3f2a, 0x00523829, 0x004e352a, 0x00584538, 0x00695545,
- 0x00876957, 0x00876a5a, 0x00b6a190, 0x00f3efe3, 0x00f8fcfb, 0x00fafdfb, 0x00fdfdfb, 0x00fdfdf4, 0x00ebdac9, 0x00a5917a, 0x007f654e, 0x00826851, 0x008c7669, 0x008d7e77, 0x00928a88, 0x009b969a,
- 0x00ada3ab, 0x00b4acb4, 0x00b3aeb5, 0x00b3b3bb, 0x00b4b5c1, 0x00adafbb, 0x00aaabb4, 0x00a8a8b0, 0x00a8a2ac, 0x00a59da4, 0x009d9498, 0x00988d88, 0x008f7e71, 0x00846f58, 0x007a6040, 0x0078592f,
- 0x007a5429, 0x0081582e, 0x00795a2e, 0x00765b32, 0x007a5c38, 0x00765732, 0x00745324, 0x00774814, 0x007f441c, 0x0081533d, 0x00866c69, 0x005d5f75, 0x002c4d7d, 0x003f6a99, 0x00346492, 0x00326088,
- 0x00757158, 0x007b714e, 0x007e703f, 0x00947d42, 0x00af8e46, 0x00ba914a, 0x00d1a35d, 0x00d39e5f, 0x00be825c, 0x00af7754, 0x009c653f, 0x009a6536, 0x009e6e42, 0x00997149, 0x00997955, 0x00a88f71,
- 0x00ad9682, 0x00ac9587, 0x00a18c83, 0x0095847a, 0x00897570, 0x00736e6b, 0x00585b5c, 0x004c4c50, 0x00434248, 0x00433f43, 0x004e4643, 0x0053483e, 0x0066523c, 0x00725a3a, 0x007c5e39, 0x00816035,
- 0x00735d34, 0x00674d2d, 0x005b3e27, 0x00563525, 0x0060401d, 0x0070521f, 0x007c6325, 0x00806826, 0x007d6247, 0x00846661, 0x008a7881, 0x007f8397, 0x007d8097, 0x0088879f, 0x009d9cb4, 0x009fa2be,
- 0x009799c4, 0x008692c1, 0x007084b9, 0x006786c0, 0x006e92d6, 0x0089a2d5, 0x0096a8ce, 0x0096a2be, 0x008e8a8b, 0x00847667, 0x00856d51, 0x008d6e48, 0x0088653f, 0x007d5b3a, 0x006e4e30, 0x00654629,
- 0x00654d3a, 0x006a5441, 0x0072614f, 0x00756454, 0x00716455, 0x00675c4d, 0x00554f42, 0x00413d33, 0x002c2826, 0x00231f1c, 0x001a1a14, 0x00171710, 0x0014140f, 0x00101010, 0x000c0c0f, 0x0007080b,
- 0x00070309, 0x000a0504, 0x00160c08, 0x0023180d, 0x00332514, 0x00382b1c, 0x009b9185, 0x00f2f1ed, 0x00fafdff, 0x00f8fbfe, 0x00fbfdfe, 0x00fbfcfc, 0x00c1b9b9, 0x00757071, 0x0087868a, 0x00b2b6bf,
- 0x00dfe2f2, 0x00edf0fc, 0x00ebeffb, 0x00e6ebfa, 0x00e5e9fe, 0x00e6e9fb, 0x00f1f0f8, 0x00efebf2, 0x00ede1e2, 0x00a49795, 0x00271b18, 0x000b0807, 0x00090708, 0x00090909, 0x00070706, 0x000b0b0b,
- 0x000a0a0a, 0x00090909, 0x00090909, 0x00090909, 0x00090909, 0x00090909, 0x000a0a0a, 0x00090909, 0x000a0a0a, 0x00090909, 0x00080808, 0x00080808, 0x00080808, 0x000a0a0a, 0x000c0c0c, 0x000e0e0e,
- 0x001b0c18, 0x00160f1f, 0x001d1e35, 0x0048506b, 0x00545469, 0x00322732, 0x00160409, 0x00150200, 0x0029120c, 0x00362821, 0x0042342b, 0x00412c19, 0x00381d0b, 0x00371b07, 0x00573c26, 0x00563e26,
- 0x00492f1e, 0x00523a30, 0x00443729, 0x00262017, 0x000e0d0a, 0x000e0707, 0x000b0306, 0x000b0307, 0x001a191e, 0x001f2533, 0x00162130, 0x00081225, 0x003a3139, 0x009e7d75, 0x00d3a085, 0x00ba784a,
- 0x00ac6b45, 0x00c28863, 0x00cc9671, 0x00b98a66, 0x00a88265, 0x0081624b, 0x003e2914, 0x00281f08, 0x00251f10, 0x002a261a, 0x00232111, 0x00272008, 0x00231d0b, 0x001c190c, 0x00101308, 0x000b0f09,
- 0x000a090b, 0x0009070a, 0x00040307, 0x00050506, 0x000b0907, 0x000c0b07, 0x000c0e08, 0x000f100b, 0x00171210, 0x00191311, 0x0017130e, 0x0017140c, 0x001a130e, 0x001b150d, 0x001d190d, 0x001e180d,
- 0x0024190c, 0x0023180e, 0x0024190e, 0x001e1609, 0x00211b11, 0x0057544b, 0x00dbdbd1, 0x00fafcf2, 0x00fffcfa, 0x00fffefd, 0x00fbfdfe, 0x00e1e0e8, 0x005b6178, 0x00151d3b, 0x00232f51, 0x003b4771,
- 0x005b5a83, 0x005e5474, 0x00554254, 0x0054383b, 0x00654234, 0x007e5546, 0x00875c44, 0x008a5939, 0x009b5b37, 0x00a86c42, 0x00af7851, 0x009d6c4a, 0x008a5e42, 0x0094694f, 0x009f7355, 0x00c69272,
- 0x00ebb799, 0x00c59d86, 0x00564130, 0x001c170d, 0x000a0c07, 0x00090501, 0x00190e06, 0x00351f19, 0x005c3941, 0x006f4d57, 0x00736173, 0x006d71a6, 0x00565ca3, 0x003a439d, 0x001e2e95, 0x00142a9b,
- 0x00152aa5, 0x000f2aa8, 0x00102eab, 0x00132fb6, 0x000f2bbe, 0x00152eab, 0x001a35a8, 0x001a34b3, 0x002134c9, 0x00283ccb, 0x00324bc8, 0x003d58c6, 0x005575d3, 0x006884ee, 0x005472e8, 0x003d58da,
- 0x00404da8, 0x00172563, 0x00000320, 0x00000302, 0x00010400, 0x00050200, 0x00060002, 0x00060008, 0x0007000a, 0x00050104, 0x00030001, 0x00000204, 0x00000300, 0x00030300, 0x000c0801, 0x0022190e,
- 0x00442f27, 0x00483226, 0x00382416, 0x002e1a0d, 0x00362114, 0x004d372d, 0x006b4d41, 0x00825a42, 0x005a3528, 0x001a090b, 0x00020409, 0x00414244, 0x00e2c49c, 0x00fadba7, 0x00f4dca3, 0x00c3b580,
- 0x00f6e7e6, 0x00f1dac9, 0x00eed5bc, 0x00f6d4b6, 0x00fdd5c2, 0x00fce9e1, 0x00f5f4f4, 0x00def9fc, 0x00c6ebe1, 0x00cad9d2, 0x00d1d0d3, 0x00ccd0db, 0x00dcdceb, 0x00eae9f7, 0x00a7a7b5, 0x00343946,
- 0x0000121c, 0x00132b44, 0x003b5787, 0x004d6eb1, 0x004068bf, 0x003c69bd, 0x00406ec6, 0x00416fcb, 0x003d7dd2, 0x004481d9, 0x004278da, 0x003969d0, 0x00325cc0, 0x003458bb, 0x002c48ae, 0x00193195,
- 0x000d348b, 0x001f459f, 0x00385cb8, 0x00395fc2, 0x003860c3, 0x003d64c2, 0x004567c3, 0x006584d7, 0x00bad6f6, 0x00b3d0e5, 0x006f89c0, 0x004d6bcc, 0x00708bee, 0x0097aff0, 0x00b6c8f5, 0x00d0dcf7,
- 0x00e7e8ef, 0x00f4eef6, 0x00faf3fe, 0x00f7fcfc, 0x00eefff2, 0x00f6fcf4, 0x00fefcfe, 0x00f5f5fe, 0x00c6d6e7, 0x009db4d9, 0x007b96cd, 0x006285cf, 0x005080d6, 0x004378d5, 0x003c73d7, 0x003977d9,
- 0x00447ecd, 0x004980d4, 0x004d80de, 0x004a77e0, 0x004b74e4, 0x00466bdc, 0x004164d2, 0x003a5dc8, 0x002753aa, 0x00224c9e, 0x0021459e, 0x002246a8, 0x002a4cb1, 0x003357bb, 0x004b6cd1, 0x005374d5,
- 0x002b54a7, 0x00173b8e, 0x000f2e7a, 0x001c3882, 0x002c438c, 0x00475493, 0x00a3a9db, 0x00dae1ff, 0x00d3dde1, 0x00d1d9d9, 0x00dfe3e5, 0x00e2e4eb, 0x00e4e4f4, 0x00dadaec, 0x00cdcedf, 0x00c8cbd9,
- 0x00d3d4d7, 0x00dadce2, 0x00e0deed, 0x00dbd8ea, 0x00bfc3d9, 0x00aab0c6, 0x009ea2bf, 0x00646c89, 0x003e4e62, 0x0072829c, 0x007e85a0, 0x007e8892, 0x009ea7b3, 0x00a1a8b4, 0x00969baa, 0x009599a7,
- 0x00a5afb2, 0x00bcc4c8, 0x00cfd4db, 0x00d9dce4, 0x00e1e3eb, 0x00e8e4e9, 0x00e5dee3, 0x00e2dbe1, 0x00e6e7e2, 0x00f7f6f2, 0x00fcfbfb, 0x00fcfbfc, 0x00fbfcfa, 0x00fdfdfe, 0x00c5c3c4, 0x007d797d,
- 0x007a7c78, 0x00acb0a4, 0x00919884, 0x00404d2c, 0x00394b19, 0x003e521f, 0x00405229, 0x00415130, 0x003a4637, 0x00323c37, 0x002d3140, 0x00292c4a, 0x00262c49, 0x0026294b, 0x002f2d56, 0x00363460,
- 0x00252a4a, 0x001e2544, 0x001c1f42, 0x00202242, 0x00383d55, 0x005d5f69, 0x00aea9b1, 0x00d7d4de, 0x00e6ebef, 0x00dae0e8, 0x009295aa, 0x00444863, 0x0018203d, 0x00242c4f, 0x00212850, 0x002c345f,
- 0x008e9796, 0x00dce4e1, 0x00cad0d3, 0x007d8489, 0x0029313f, 0x003a3d59, 0x006e6d93, 0x0074749d, 0x004a5469, 0x00404c5c, 0x00a5a9bf, 0x00cecfe8, 0x00c1c3dd, 0x00a9aec4, 0x009fa1b7, 0x009396af,
- 0x00737b8b, 0x005a6174, 0x00383d52, 0x00393d51, 0x0033374d, 0x00323347, 0x002c2a3e, 0x00242439, 0x0019212b, 0x001b212d, 0x001f2034, 0x00202033, 0x00242436, 0x00262737, 0x002c2d3f, 0x002e2e45,
- 0x00272931, 0x0024252f, 0x00252534, 0x00282735, 0x00272636, 0x00232130, 0x00222032, 0x00242235, 0x0021262c, 0x0020242d, 0x00202336, 0x001f234b, 0x00202349, 0x0023244f, 0x002b2b55, 0x0023244f,
- 0x002b3056, 0x0043476c, 0x004b4b77, 0x002e2f5f, 0x001c1c4a, 0x00222351, 0x00242553, 0x00232858, 0x001e2b56, 0x001e2d55, 0x00212d57, 0x001e284d, 0x001f263f, 0x00585d6c, 0x00bbbbc5, 0x00ccc9ca,
- 0x00747e78, 0x001e2a29, 0x00242d38, 0x0020263a, 0x00222848, 0x0024284d, 0x0024244e, 0x0023254f, 0x001f2945, 0x001c2841, 0x00272e4f, 0x00373864, 0x00484872, 0x003e405f, 0x00383951, 0x0046485d,
- 0x006e7a7b, 0x00909b9e, 0x00a1a8b0, 0x0082858d, 0x00484e54, 0x0028314b, 0x001e274f, 0x00262b54, 0x00182541, 0x00222f3d, 0x00818a91, 0x00e7eee7, 0x00fbfff3, 0x00fcfdf5, 0x00fffefc, 0x00fffdff,
- 0x00afc6c3, 0x003f637e, 0x000c3875, 0x0017449c, 0x0029459b, 0x004d4d8b, 0x00695180, 0x007c5779, 0x005b4c71, 0x00342e66, 0x001d1e56, 0x00212741, 0x0048261d, 0x00733116, 0x009e4a27, 0x00bd613d,
- 0x009c6b5f, 0x00837280, 0x008081b0, 0x007d92d3, 0x007694ea, 0x00739ade, 0x0081a8ea, 0x0089b1f1, 0x0079a9e2, 0x006e9acf, 0x00759bd2, 0x0099bbee, 0x00b5d3f8, 0x00b9d3ed, 0x00aec4d9, 0x00a0b1c3,
- 0x008aa4bd, 0x007793a5, 0x00829db3, 0x0085a0b4, 0x005f7a98, 0x00344c75, 0x00283c71, 0x00263b76, 0x001b3c6a, 0x001a3861, 0x00243768, 0x002b356a, 0x00233472, 0x0021366e, 0x00243769, 0x00253960,
- 0x00354570, 0x006c76c0, 0x009098f4, 0x006978e8, 0x004c6cd4, 0x00476acb, 0x005171d1, 0x006182de, 0x00487edc, 0x00366ccc, 0x004a6ec4, 0x008285c1, 0x00bc899a, 0x00af8aa6, 0x00998bbe, 0x006e86da,
- 0x004e88de, 0x004e88dc, 0x00578be5, 0x005a8ae4, 0x005885eb, 0x00527bec, 0x005078ea, 0x004a74e4, 0x003f75c5, 0x004b84ca, 0x006999e4, 0x007293e5, 0x005a77bf, 0x003e4f96, 0x002a3472, 0x00262863,
- 0x00202451, 0x001f2752, 0x00232b5c, 0x00222e62, 0x00203069, 0x00263061, 0x00272b60, 0x00232b63, 0x001b2f5b, 0x001f2b52, 0x002a2d4f, 0x007f7b91, 0x00f6edfa, 0x00faf7ff, 0x00faf8fe, 0x00fbfdff,
- 0x00f8f6ed, 0x00d3c6bc, 0x008e756d, 0x00b39388, 0x00dbb7ab, 0x00cdab9f, 0x0082655c, 0x00462c2b, 0x000e0d04, 0x001a1e19, 0x0066655f, 0x009f9482, 0x00b78463, 0x00a27a61, 0x008e7e78, 0x006b7c90,
- 0x007e83a2, 0x00b0899d, 0x009c596e, 0x008e5261, 0x000f2236, 0x00000c2f, 0x0005093d, 0x00050b40, 0x00020936, 0x0000072b, 0x00080b2c, 0x00020719, 0x0005070d, 0x00121c1b, 0x002f3735, 0x003f4545,
- 0x004e646c, 0x00364c5f, 0x0012254c, 0x00192c65, 0x001a2b77, 0x000e1c6d, 0x00061360, 0x00030e54, 0x00000d35, 0x00000c2b, 0x00081642, 0x001a2668, 0x00111c68, 0x00020d60, 0x00071268, 0x00111c72,
- 0x00081e5f, 0x00081f5e, 0x0014266c, 0x00172673, 0x00112176, 0x00122366, 0x000c185d, 0x00050f58, 0x00000f4a, 0x00031341, 0x001a254d, 0x002c3448, 0x00242b30, 0x001f2329, 0x0024272b, 0x0020222b,
- 0x000c2026, 0x00072143, 0x001e367f, 0x002542aa, 0x00314fc0, 0x005c71d1, 0x00aab7f5, 0x00d8dbfc, 0x00dfebf9, 0x00c3ccea, 0x007274ab, 0x00312e7c, 0x000e2583, 0x00133797, 0x00173c94, 0x0038559a,
- 0x0067646f, 0x00745a4b, 0x008c5f47, 0x009c6f49, 0x0096714e, 0x008a6343, 0x007f543b, 0x00734c33, 0x005a3f24, 0x00523d23, 0x005d4934, 0x006c5a45, 0x007b6e51, 0x00877b57, 0x0090815a, 0x00918559,
- 0x008f845a, 0x0090845e, 0x00938464, 0x00938368, 0x00928169, 0x0096826d, 0x00917967, 0x008a6b56, 0x007d6443, 0x007b613e, 0x007a553b, 0x00744831, 0x00654736, 0x00554034, 0x00503d36, 0x00544039,
- 0x00645641, 0x006a5a46, 0x00ab998a, 0x00f1ebe1, 0x00fdfcf8, 0x00fffffe, 0x00fffefe, 0x00fffdf9, 0x00e5d8c3, 0x00a29175, 0x007e674a, 0x00886c55, 0x00917b6f, 0x00968882, 0x009e9498, 0x00a49fad,
- 0x00aaa8a8, 0x00b2b1b3, 0x00b5afba, 0x00b2afba, 0x00aeafba, 0x00acabb6, 0x00aba8b6, 0x00aca5b4, 0x00a6a4a3, 0x00a39c9e, 0x00a49599, 0x009b8d90, 0x008f8075, 0x00857158, 0x007c5f42, 0x007b5833,
- 0x00725221, 0x00765623, 0x00765529, 0x0076522b, 0x00755935, 0x007b5828, 0x0096632e, 0x00ae6c35, 0x00bc7837, 0x00b87d53, 0x00a2786a, 0x00716375, 0x0035578b, 0x002c5f9b, 0x002963a8, 0x0018579c,
- 0x00415466, 0x00525d61, 0x005d5e57, 0x0070644d, 0x0097804b, 0x00b39457, 0x00d8ac6f, 0x00ddab6e, 0x00b2864b, 0x009f6d39, 0x009a6431, 0x009c6d31, 0x00997241, 0x008d6a47, 0x008f725c, 0x00a68d86,
- 0x009e958c, 0x009e978f, 0x009e9294, 0x008f8784, 0x00807472, 0x006b6b66, 0x0057555e, 0x00504c54, 0x00454845, 0x0045433f, 0x00534642, 0x005f4e42, 0x0071593f, 0x00816341, 0x008b6740, 0x0092673a,
- 0x00776429, 0x00695127, 0x0062432c, 0x0058372a, 0x00543718, 0x005e4516, 0x006c5420, 0x00725e29, 0x006a5e45, 0x00736568, 0x00807390, 0x00727fa7, 0x008791b2, 0x009ea6c3, 0x00babedc, 0x00b5bcd6,
- 0x008e9fbd, 0x007187af, 0x005b74ab, 0x005473b6, 0x00567dca, 0x006184c9, 0x007c98d3, 0x0094a9d7, 0x009daaac, 0x00939180, 0x0087755c, 0x008f7352, 0x008c6a44, 0x00805d3c, 0x00745336, 0x006d4e35,
- 0x0066533b, 0x006b5b46, 0x00766755, 0x00796b5d, 0x00756c61, 0x006e675f, 0x005c5850, 0x0045433e, 0x0021281b, 0x00181d12, 0x001b1c13, 0x001b1912, 0x00151512, 0x00111314, 0x000b0c12, 0x000c0a12,
- 0x00010503, 0x00020300, 0x000c0501, 0x00160b04, 0x001f1408, 0x0027180d, 0x00988b84, 0x00f4f2f3, 0x00f2fef8, 0x00f0fcfa, 0x00fcfdff, 0x00fffcff, 0x00c3b9b9, 0x00777073, 0x008c848d, 0x00b8b6c5,
- 0x00d5e3e3, 0x00e0eef1, 0x00e5eef6, 0x00e5ecf8, 0x00ecefff, 0x00f0effa, 0x00f9eff8, 0x00dfd4d6, 0x00b7ac99, 0x0084745f, 0x002b1b12, 0x00030304, 0x00060606, 0x000d0c0b, 0x00080408, 0x000d090e,
- 0x00040903, 0x00030b04, 0x00080808, 0x000a090b, 0x00090808, 0x00090908, 0x000b090b, 0x000b070a, 0x00040903, 0x00030903, 0x00060907, 0x00080909, 0x00080807, 0x000a0809, 0x000f0a0f, 0x00100d11,
- 0x000b0c11, 0x00080a0e, 0x001e1c24, 0x00444047, 0x003d3b40, 0x00131212, 0x000a0304, 0x001b0d0d, 0x00302011, 0x00432d1c, 0x00563b2d, 0x005d422d, 0x0059391f, 0x005e3415, 0x009b6e4f, 0x00a4724c,
- 0x007c532c, 0x006e4f2b, 0x005d3f28, 0x0045311f, 0x0024160e, 0x001b0600, 0x001f0501, 0x00210a03, 0x002e1f05, 0x00342918, 0x00291f1a, 0x000d060a, 0x00351f21, 0x00977365, 0x00d9a589, 0x00bb794d,
- 0x00a46d37, 0x00c28e5d, 0x00dda77d, 0x00d6a17d, 0x00bd9672, 0x00927154, 0x004a2e18, 0x00321c0a, 0x001f1d08, 0x001f1f0e, 0x00211e0d, 0x00271f0c, 0x00241d0c, 0x001c190b, 0x00121209, 0x000e0f0a,
- 0x00020902, 0x00020702, 0x00040505, 0x00060405, 0x00080503, 0x000b0805, 0x000d0c09, 0x000e0d0b, 0x000c1006, 0x000e0f07, 0x0012100a, 0x0015110b, 0x0017120c, 0x0019120c, 0x001c140f, 0x001f1512,
- 0x001c1807, 0x001c1706, 0x0024190d, 0x0020150b, 0x001d170c, 0x004b483f, 0x00d5d2cd, 0x00fcfbf6, 0x00f9fef5, 0x00f6fff4, 0x00fbfdfa, 0x00ebe5e9, 0x006f6c79, 0x001c192a, 0x00241c31, 0x00493d55,
- 0x0064545e, 0x005a4240, 0x0051302b, 0x00593124, 0x006c3d26, 0x00764b39, 0x007d503d, 0x0090593c, 0x009b6931, 0x00a67236, 0x00ad7742, 0x00a87447, 0x00a67552, 0x00b48163, 0x00bc8169, 0x00cd8c72,
- 0x00ddac80, 0x00d6af8e, 0x008a715e, 0x00413a31, 0x001f2827, 0x0014191c, 0x00171319, 0x00332732, 0x00534955, 0x006f6272, 0x00696088, 0x00525ba3, 0x003541a0, 0x002734a4, 0x001d2aa7, 0x001628a9,
- 0x000b29a1, 0x000a29a2, 0x00122cab, 0x00182eb2, 0x00192dbc, 0x00152daf, 0x001d35b7, 0x00233bbe, 0x00183ab8, 0x001b3ab6, 0x00223ebd, 0x002b48c3, 0x00304fc9, 0x003555d1, 0x004564e5, 0x003b58dd,
- 0x003a50b8, 0x001e3379, 0x0000082e, 0x0002030a, 0x00020300, 0x00030001, 0x00080008, 0x000a0011, 0x00000002, 0x00000100, 0x00000200, 0x00000403, 0x00000101, 0x00030102, 0x00150d08, 0x00362920,
- 0x00443924, 0x00403220, 0x00352015, 0x002f1a0d, 0x00402c1f, 0x00544334, 0x006f5349, 0x0077513c, 0x003c2610, 0x00070501, 0x0000030d, 0x003c4350, 0x00e2cdc2, 0x00feeadc, 0x00f8eae4, 0x00d3cacf,
- 0x00ececc3, 0x00e4a983, 0x00e17b58, 0x00f77652, 0x00e98967, 0x00e4a794, 0x00ebc5c5, 0x00f1dbeb, 0x00e8dff8, 0x00d9def2, 0x00d5ddeb, 0x00dbd9e6, 0x00e1e1ed, 0x00e6e7f7, 0x009b9eaa, 0x002a323d,
- 0x00000d1f, 0x00112a4e, 0x00375e96, 0x003961b8, 0x003561db, 0x004274d2, 0x003d75c7, 0x003871c8, 0x003e7dd8, 0x004683e1, 0x004079dc, 0x003d72d7, 0x00345fc4, 0x003a5fc3, 0x003f5cc1, 0x00344eb3,
- 0x0021499d, 0x00254da6, 0x003358b8, 0x003558c1, 0x003a5cc2, 0x004366bf, 0x005071be, 0x007a9cda, 0x00b7d7fc, 0x0088a4d4, 0x006281b1, 0x007ca7d5, 0x00a0d4d0, 0x00b9e6d3, 0x00dcf6ed, 0x00f3fbfc,
- 0x00fdf9fb, 0x00fffbf2, 0x00fdfae5, 0x00feffe2, 0x00ecfaeb, 0x00d0eeeb, 0x00afd6e3, 0x0092b6d8, 0x006e8ee0, 0x005f7dea, 0x005673f4, 0x005372fa, 0x004064e2, 0x00355ec7, 0x003e6ac2, 0x004c7bc6,
- 0x005082c6, 0x004c7dc6, 0x004774c6, 0x00416ac6, 0x003659bd, 0x002e4cb4, 0x002a45ae, 0x002740a7, 0x00273f9e, 0x003043a0, 0x00324baa, 0x003658ba, 0x004566ca, 0x00587adc, 0x00567ada, 0x003d5ebc,
- 0x00183e96, 0x00123287, 0x001f3b87, 0x0039529a, 0x0041579b, 0x006571ac, 0x00bbc3ef, 0x00e1ebfe, 0x00dbe2ea, 0x00dadfe2, 0x00d9dcdf, 0x00e1e2e8, 0x00e3e4f1, 0x00e3e5f4, 0x00d3d7e7, 0x00c3c8d7,
- 0x00ccc8d3, 0x00d9d7e3, 0x00dfdce9, 0x00e3e0f3, 0x00d7daee, 0x00b4b8d3, 0x005e6381, 0x00242b4b, 0x00303b5f, 0x00677399, 0x007982a0, 0x00828b9b, 0x009da7b3, 0x0099a1ae, 0x008b919c, 0x009199a4,
- 0x00b8bdc6, 0x00cad0d9, 0x00d6d9e2, 0x00dddee7, 0x00dbe0e6, 0x00e1dfe2, 0x00eae2e2, 0x00ebe3e5, 0x00f5f2f1, 0x00fffdfe, 0x00fbf8fa, 0x00fffcfe, 0x00f9f9f7, 0x00fafbfb, 0x00b5b6b5, 0x00717172,
- 0x00858682, 0x00b3b6ac, 0x0092978b, 0x00404a3a, 0x00324124, 0x00364924, 0x003a4d22, 0x003d5121, 0x0044551a, 0x00415314, 0x003b4820, 0x00353c42, 0x002d3540, 0x00262c43, 0x00242745, 0x00272a52,
- 0x00252455, 0x00222257, 0x00232258, 0x001c1a56, 0x001c1c53, 0x002f2f40, 0x00868482, 0x00d1d0d6, 0x00dadaea, 0x009b9bb3, 0x00424164, 0x00292953, 0x002b305b, 0x002b345d, 0x00262f59, 0x00242f58,
- 0x005e677c, 0x00b5bfd0, 0x00e0e8f7, 0x00b4bec9, 0x00505d6e, 0x00243049, 0x0027334e, 0x00222f4e, 0x003d515c, 0x008da2a1, 0x00d6e1e0, 0x00c8c5cd, 0x00858589, 0x00797880, 0x008e8e96, 0x00a2a3ac,
- 0x00b0b2bf, 0x009295a3, 0x00737785, 0x00989dab, 0x009aa2ae, 0x008a93a1, 0x007e8896, 0x006d7989, 0x004e5a6f, 0x00333f58, 0x001c264a, 0x001a224f, 0x001c2257, 0x001c2359, 0x001e245f, 0x001e2460,
- 0x00282c57, 0x00303561, 0x00353a66, 0x002e355f, 0x0018204c, 0x00161d48, 0x001b224d, 0x00191f4d, 0x001f234e, 0x003e436f, 0x00636892, 0x00656b93, 0x003a4162, 0x00242a4b, 0x00212843, 0x0021283e,
- 0x00404655, 0x00828892, 0x00acb2b6, 0x007d8485, 0x00303634, 0x001e2734, 0x001c263c, 0x001e2943, 0x001a2c4c, 0x001a2c4c, 0x001b2a4a, 0x001f2944, 0x001e2438, 0x00333440, 0x007c797f, 0x00b9b2b4,
- 0x00a5abad, 0x006b7079, 0x00292c41, 0x001e2041, 0x0020224e, 0x00242755, 0x001d234c, 0x001d2449, 0x001c2939, 0x001d2a35, 0x002f3947, 0x006a7083, 0x00b3b9c7, 0x00a6acb7, 0x005c6469, 0x00262e37,
- 0x0026293f, 0x00343759, 0x003a3a67, 0x002e2a66, 0x00211e5e, 0x001f245b, 0x001b2551, 0x001d2853, 0x00273049, 0x0037424a, 0x008c9592, 0x00e9f1e0, 0x00f9ffec, 0x00fcfef0, 0x00fcfdf7, 0x00fefdfe,
- 0x00adc9a3, 0x004b5a56, 0x00272a49, 0x003d3980, 0x00383a96, 0x002b3992, 0x00294495, 0x003e5da9, 0x002e4a8d, 0x0012236b, 0x000f2368, 0x001e3c6f, 0x00573c3f, 0x00944c34, 0x00cd7248, 0x00d87c50,
- 0x00a2757b, 0x007770a0, 0x005e79c8, 0x005b88f2, 0x00558bfb, 0x005c88fb, 0x006189f9, 0x006791fa, 0x00658efc, 0x005b83f3, 0x00567eea, 0x007198f7, 0x0084a6f9, 0x008eacfa, 0x0083a0e9, 0x006d89cc,
- 0x0054505d, 0x00312f32, 0x00292727, 0x002f2d27, 0x002c282b, 0x00231d29, 0x001b1527, 0x001d172e, 0x001e1829, 0x001a171f, 0x00191b16, 0x00191d10, 0x00111b30, 0x000e1f3c, 0x000c2032, 0x00081e1f,
- 0x00425165, 0x008290cb, 0x00647bc6, 0x005d80d2, 0x006098c5, 0x005b88df, 0x00577de5, 0x006388e4, 0x004e8aeb, 0x004082e7, 0x005690e6, 0x007b92d4, 0x00a08096, 0x009079a2, 0x006a75bb, 0x00477ee9,
- 0x004081f8, 0x004585eb, 0x004781d8, 0x004b7fcc, 0x00557ed8, 0x004f73e3, 0x00496be7, 0x005f83fc, 0x005a8feb, 0x004b82cd, 0x00508ac6, 0x005385be, 0x00345e87, 0x00152e4f, 0x000c1b2a, 0x001b1c24,
- 0x001f1b15, 0x001e1a17, 0x001a1f1b, 0x00152123, 0x0010242a, 0x0018211d, 0x00161f16, 0x0013211f, 0x000c2428, 0x000e2225, 0x0011221f, 0x00666f64, 0x00f0f0dd, 0x00fdfeed, 0x00faffee, 0x00f5fef3,
- 0x00faf9f4, 0x00d3cdc5, 0x00867a71, 0x00a69184, 0x00ceb1a3, 0x00ceada1, 0x00a08076, 0x006b4d49, 0x003d2d31, 0x005e535d, 0x009f9897, 0x00908e76, 0x008d5e39, 0x00926c57, 0x00857d7c, 0x0054738d,
- 0x005c608b, 0x00a06d8e, 0x00cf8799, 0x00b8757e, 0x003f585a, 0x00121d46, 0x00010d3d, 0x00070e39, 0x00070e2f, 0x00050a2b, 0x00080c2b, 0x0004051f, 0x0001020e, 0x00040a09, 0x00091206, 0x000f1a02,
- 0x001f3414, 0x002b4032, 0x0020313e, 0x0010224a, 0x000a195d, 0x000e1a6b, 0x00091666, 0x00091462, 0x00000b43, 0x00020d3a, 0x000e1c48, 0x00122458, 0x00142562, 0x000e1f64, 0x0010246b, 0x0012276e,
- 0x0017306c, 0x002e4680, 0x00334881, 0x00233676, 0x00142773, 0x0011266b, 0x000e2265, 0x000c1f61, 0x00071456, 0x0004134b, 0x000c1b47, 0x00202e47, 0x0026323d, 0x001e2a31, 0x001c2630, 0x001f2633,
- 0x001c282a, 0x000b1e35, 0x0010294c, 0x0029497c, 0x006d92b1, 0x00b0cedb, 0x00def2ed, 0x00edf6f0, 0x00d5d6e1, 0x009392b2, 0x003b3c76, 0x00252b87, 0x0010369e, 0x00083ba8, 0x00043995, 0x00143f87,
- 0x00585567, 0x00846a5b, 0x00916a46, 0x00a5784b, 0x009f8050, 0x009f6d47, 0x0096613e, 0x00865738, 0x00734c35, 0x006a4a35, 0x006d5541, 0x0077674f, 0x00827b5c, 0x0087865e, 0x00868959, 0x00848956,
- 0x008b855f, 0x0087835c, 0x00847f5e, 0x00867f65, 0x00898169, 0x0091836e, 0x00907f6a, 0x00937d61, 0x00917659, 0x008a6d4e, 0x00886342, 0x008e5e40, 0x00755846, 0x00675249, 0x00524a42, 0x0046403c,
- 0x004d423b, 0x00574a3e, 0x00a19283, 0x00f1ecde, 0x00fefdf5, 0x00fefffb, 0x00fdfdfa, 0x00fefff5, 0x00ead8c4, 0x00a48f76, 0x0080674d, 0x008e725b, 0x00978376, 0x009b8f8b, 0x00a39ca0, 0x00aba9b5,
- 0x00b2abaf, 0x00b8b1b8, 0x00b3abb4, 0x00aca7b2, 0x00a6a3af, 0x00a5a1ac, 0x00a49fab, 0x00a79fab, 0x00a79ea2, 0x00a69aa0, 0x00a19495, 0x00998e8f, 0x00938178, 0x00886e5b, 0x007b5e41, 0x00765830,
- 0x00785526, 0x00775224, 0x006e5022, 0x00765830, 0x008f744e, 0x00b98751, 0x00d5904b, 0x00e18f45, 0x00e78639, 0x00cf7a45, 0x00985d40, 0x006f565a, 0x00416191, 0x00255c9f, 0x001f63b1, 0x001461b6,
- 0x002a4aa1, 0x002d478d, 0x00324575, 0x00353c50, 0x005a513d, 0x0085734b, 0x00b0935f, 0x00cfab6c, 0x00d3aa69, 0x00c89a5e, 0x00b9904e, 0x00b3924f, 0x00a28852, 0x00998364, 0x008f8071, 0x00908a8a,
- 0x009797a5, 0x009b9cac, 0x009395a4, 0x00868a90, 0x00747776, 0x00666869, 0x004c4c4f, 0x00434243, 0x00474346, 0x004a4343, 0x00554743, 0x00655443, 0x007b6142, 0x00896940, 0x00946d3d, 0x00996c36,
- 0x00856c2f, 0x00795b30, 0x0069472e, 0x0059352a, 0x00492b12, 0x00483209, 0x00524112, 0x00594f21, 0x00655751, 0x006e6179, 0x006c6a94, 0x006c7faf, 0x0094a8ca, 0x00bcc8e4, 0x00cbd5ea, 0x00b8c2d2,
- 0x008f9eb4, 0x007284a7, 0x005a72a4, 0x004f70af, 0x004f75c6, 0x00507acd, 0x005d85cf, 0x007898d2, 0x00adb9cf, 0x00b9b7b7, 0x00a09180, 0x00937b5d, 0x008d704a, 0x00826441, 0x00745636, 0x006b4f31,
- 0x00705b4a, 0x00756252, 0x007b6c5d, 0x007d7366, 0x00797269, 0x00736f68, 0x005e5e57, 0x0044433d, 0x0022241d, 0x00171811, 0x00171811, 0x0017160e, 0x0015140f, 0x00111112, 0x000d0e13, 0x000c0d14,
- 0x00030206, 0x00030002, 0x00060001, 0x000b0202, 0x000f0400, 0x00140601, 0x00897f78, 0x00f1efed, 0x00f7fffc, 0x00f5fdfc, 0x00fafefd, 0x00fffefe, 0x00c0b8b7, 0x00736c6e, 0x00878489, 0x00b3b6c0,
- 0x00d7e1dc, 0x00e9f2ef, 0x00ecf5f4, 0x00ecf5f9, 0x00f5f8fc, 0x00ededeb, 0x00c6bfb7, 0x00a69a8b, 0x00a38e74, 0x00947d5b, 0x005f4d37, 0x001e1d1e, 0x00030403, 0x000d0d0d, 0x00090b0a, 0x00090b09,
- 0x00090908, 0x00090909, 0x00080808, 0x000a090b, 0x000b0808, 0x000a090a, 0x00080b09, 0x00090809, 0x00080908, 0x00080907, 0x00080808, 0x00080808, 0x00090708, 0x000a0809, 0x000c0b0c, 0x000f0d0e,
- 0x00090e17, 0x000d0d0f, 0x00231c11, 0x00433a25, 0x002e2b17, 0x000f1507, 0x000e150d, 0x00181d18, 0x002b1a0a, 0x003b1802, 0x00441f06, 0x00482f17, 0x007d5a35, 0x009b6840, 0x00ba7c4c, 0x00cd864e,
- 0x00b76e36, 0x00a76532, 0x008e552c, 0x00875a39, 0x007c563e, 0x007a5338, 0x00734c29, 0x006e471c, 0x007a5220, 0x0078532e, 0x00583618, 0x002a0d03, 0x00330f06, 0x0073452c, 0x00b88059, 0x00bd7844,
- 0x00965c2a, 0x00b57d4e, 0x00d79f72, 0x00d6a176, 0x00af885f, 0x00866644, 0x00452a0e, 0x00341f09, 0x00271e0c, 0x00251d0e, 0x00231d0d, 0x00251f0b, 0x00221c09, 0x001b190b, 0x00101209, 0x000d0e07,
- 0x00030606, 0x00020504, 0x00030304, 0x00050404, 0x00070505, 0x000a0806, 0x000b0b06, 0x000b0b05, 0x000d0c07, 0x000e0c07, 0x00100d08, 0x00130f0a, 0x0015100b, 0x0017110b, 0x0018120c, 0x0019140d,
- 0x0022160a, 0x00201509, 0x0024190e, 0x001f160c, 0x00171309, 0x0036352c, 0x00c6c4be, 0x00f8f7f1, 0x00fcfcf8, 0x00fbfff9, 0x00fbfff7, 0x00f2eee9, 0x00887c78, 0x00301d19, 0x00230807, 0x00512f28,
- 0x00865c4f, 0x008c5d48, 0x00865333, 0x00864d29, 0x0090552a, 0x008c604e, 0x00896655, 0x009b7050, 0x00a07031, 0x009f6d2c, 0x00a47231, 0x00ac7e43, 0x00b28657, 0x00bc8e67, 0x00bb8766, 0x00c2876b,
- 0x00d89c70, 0x00deb18f, 0x00ae9580, 0x006d6b61, 0x00455554, 0x0038464d, 0x00303846, 0x00303348, 0x00454561, 0x007e7ca1, 0x006f6fad, 0x003d46a5, 0x001e2a9d, 0x001827a8, 0x001526b1, 0x00152ab9,
- 0x000f29af, 0x001529ad, 0x00182cab, 0x001f30b0, 0x002030b0, 0x00192ec3, 0x001536ca, 0x00274bca, 0x004067ce, 0x003b61d1, 0x00274ac5, 0x001e3fd0, 0x001c3fdb, 0x002149db, 0x002753d5, 0x002d5dcf,
- 0x004250d0, 0x0032459d, 0x00061342, 0x0000050d, 0x00030500, 0x00040000, 0x00080007, 0x0006000e, 0x00040006, 0x00030002, 0x00020201, 0x00000300, 0x00010301, 0x00050401, 0x00130e03, 0x003a2f22,
- 0x00584838, 0x00564434, 0x004a3427, 0x00483122, 0x004e392c, 0x004d3f30, 0x00594635, 0x00503213, 0x00200f03, 0x0009040d, 0x0000041c, 0x002d3c5f, 0x00c6bcd3, 0x00f2dbfc, 0x00ebdbfe, 0x00cdc8fe,
- 0x00eed0ad, 0x00df8361, 0x00dc653e, 0x00e95c2f, 0x00ef6035, 0x00e0653e, 0x00e17b5f, 0x00e99a89, 0x00ebc0c2, 0x00ebd7d9, 0x00ebe7f2, 0x00dfe3f2, 0x00d3e7f3, 0x00dbeef9, 0x00979cad, 0x00342742,
- 0x000e0b3b, 0x001c346e, 0x003560a7, 0x002d65b5, 0x003c64c9, 0x004674d3, 0x003f6fcf, 0x003d6dce, 0x004a79df, 0x004a7de2, 0x004378dd, 0x003e72d7, 0x003c68d0, 0x00456cd5, 0x00496bd4, 0x003f61ca,
- 0x002b4bb0, 0x002d4cb4, 0x003655bd, 0x003857c1, 0x004263c8, 0x00476ac4, 0x00466abd, 0x00799ee7, 0x008bb2f1, 0x005278b9, 0x004972b6, 0x005683d2, 0x00678fd0, 0x007496c8, 0x0098b0da, 0x00ccdcf4,
- 0x00edf8fa, 0x00effdf9, 0x00edf9f9, 0x00e2f0f6, 0x00b8c9ee, 0x0087a8e3, 0x006a94d7, 0x005a83ce, 0x005880da, 0x005980e4, 0x005177e0, 0x003a63cd, 0x002d56be, 0x003561c2, 0x004f7dda, 0x005a89e0,
- 0x005379d2, 0x004167c1, 0x003154b2, 0x002b4dae, 0x002243a7, 0x001a3ca0, 0x00193ea0, 0x00183e9f, 0x00234aa8, 0x00335ab7, 0x003d62bf, 0x00436ac6, 0x005a7ddb, 0x005f85e1, 0x00466ac7, 0x00264aa5,
- 0x0010358a, 0x0013358b, 0x003353a8, 0x004868ba, 0x004460b1, 0x006b7cb2, 0x00d0d8fa, 0x00e3ebfd, 0x00e4e9f5, 0x00e0e3ec, 0x00d8d9e4, 0x00dedded, 0x00e1e0f6, 0x00e3e5f8, 0x00dde1f1, 0x00cad1db,
- 0x00c5c8ca, 0x00cdcfdd, 0x00d8d9ed, 0x00dbdef3, 0x00dce5ed, 0x00b9c3d3, 0x0048506f, 0x00111849, 0x00282e62, 0x005b6482, 0x007d8099, 0x00928bad, 0x0096a2bd, 0x008198aa, 0x0077919c, 0x0093a8ae,
- 0x00c8bcba, 0x00dfbab3, 0x00ebafa3, 0x00e6a08b, 0x00ee9b7d, 0x00ed9775, 0x00f1a381, 0x00f3b29a, 0x00fce7df, 0x00fdfbfa, 0x00f7fcfc, 0x00f3fefe, 0x00f8fcfd, 0x00f8f7f6, 0x00ada5a2, 0x0074686a,
- 0x008e8d8f, 0x00b9bbb6, 0x0092978b, 0x00414b37, 0x0032431f, 0x0035491e, 0x00364a1d, 0x00384c1f, 0x00435224, 0x00445424, 0x0044532a, 0x00404f31, 0x003c4a36, 0x00333e33, 0x002b3335, 0x00262e3b,
- 0x00242845, 0x0021264b, 0x00252758, 0x001f1f5a, 0x001d1c5c, 0x00373a56, 0x009295a3, 0x00d3d8e7, 0x009ea3b9, 0x00484e66, 0x002a2e48, 0x004e5270, 0x006f7594, 0x00565c7b, 0x0031375a, 0x00242a4d,
- 0x003d4155, 0x00888da3, 0x00dfe1fb, 0x00dadcf5, 0x008183a5, 0x00323557, 0x002c2f4d, 0x00313451, 0x00898e9d, 0x00d4dadf, 0x00e2e8e9, 0x00aeb4b0, 0x00626575, 0x00444661, 0x004a4a6f, 0x0057557c,
- 0x00625f80, 0x005e5d78, 0x009190aa, 0x00d0d0e5, 0x00cccbe4, 0x00999dab, 0x00959ba3, 0x00a2a9aa, 0x009fa9a4, 0x007b858b, 0x00343d56, 0x00171f4e, 0x001d225e, 0x001e2559, 0x001a234a, 0x001d2941,
- 0x005d6162, 0x008c8f96, 0x009295a6, 0x007f829c, 0x003d4067, 0x001a1f47, 0x001d244c, 0x001d254b, 0x00242950, 0x005a6283, 0x00b4bacf, 0x00b7bbb3, 0x0061656e, 0x0022263a, 0x00212545, 0x001d2248,
- 0x002c3152, 0x006c7287, 0x00c6c9d4, 0x00bebfbe, 0x006d6e61, 0x00242a34, 0x001a2337, 0x001e253e, 0x001c2747, 0x001a2647, 0x00192646, 0x001a2642, 0x001b273e, 0x00192435, 0x003a4450, 0x00707881,
- 0x00a9aeaf, 0x00a8abad, 0x00797c81, 0x0050535a, 0x00383848, 0x002c2d3e, 0x00252738, 0x00282839, 0x00272c3c, 0x00343a44, 0x005d656b, 0x0098a39f, 0x00cad4d3, 0x00b0b9bf, 0x00606675, 0x00292e46,
- 0x00272b49, 0x00232848, 0x0021244d, 0x0022224e, 0x00232354, 0x00272e43, 0x0028353d, 0x00314140, 0x003f4b40, 0x004b5845, 0x009ba694, 0x00e9efe1, 0x00fcfef7, 0x00fdfcfa, 0x00fdfcfc, 0x00fdfdfd,
- 0x00aac0ba, 0x003a4e53, 0x00122338, 0x001e2e5a, 0x002a3787, 0x001b2c89, 0x00213294, 0x003544a4, 0x00303b82, 0x001c285f, 0x002a2e4d, 0x005a5650, 0x00a6725a, 0x00d47b5b, 0x00ee805d, 0x00f98467,
- 0x00c4696c, 0x008c5a7b, 0x00736fb1, 0x00567fdf, 0x004492fd, 0x004e87e7, 0x00527edd, 0x00537fe0, 0x005b89e9, 0x005180e1, 0x004778d9, 0x005687e3, 0x006791ef, 0x00769cf8, 0x007aa0f7, 0x007295f2,
- 0x004a5085, 0x001a213b, 0x00141a1f, 0x00161c05, 0x00202109, 0x00211d11, 0x00241c1c, 0x00271d28, 0x00271c24, 0x00241c17, 0x00262014, 0x00251d10, 0x00211d15, 0x001e211a, 0x0018201e, 0x00141f23,
- 0x00576892, 0x0090a3e5, 0x005f78c9, 0x006c88dc, 0x00729edb, 0x005e88dc, 0x005b88e7, 0x005e8eec, 0x00538bf3, 0x004f8cf4, 0x005992f9, 0x005c8ce8, 0x00697ccd, 0x00576ac0, 0x003f56b4, 0x004364cd,
- 0x004275db, 0x004879dd, 0x004a7adc, 0x004678d6, 0x004b7bdd, 0x004b79de, 0x004570d4, 0x006a92eb, 0x007fa1f3, 0x006283cb, 0x004f75bf, 0x004a77c6, 0x00375680, 0x00162834, 0x001a1e15, 0x0027220f,
- 0x00251f11, 0x00201b16, 0x0024201c, 0x00242119, 0x00252316, 0x00241d14, 0x001f1a13, 0x001d1f16, 0x001d241a, 0x001a2314, 0x00182212, 0x00616957, 0x00efeee5, 0x00fbfaf5, 0x00fefcfa, 0x00f9fbf7,
- 0x00fbfbfa, 0x00d9d2cb, 0x008f7f74, 0x00a88b7d, 0x00d4b1a2, 0x00c6a69a, 0x00957a71, 0x0069524d, 0x005f474a, 0x00947a7d, 0x00987878, 0x0083695e, 0x008d7062, 0x00837572, 0x00747589, 0x00536d9a,
- 0x00324d97, 0x004e569a, 0x009292c6, 0x00a3a9ba, 0x007f9e8d, 0x00485f68, 0x001d2c47, 0x0007112d, 0x000e1130, 0x00100e2c, 0x000a0a26, 0x0008051c, 0x00060512, 0x00010006, 0x00000102, 0x000a0e01,
- 0x00151e13, 0x00253027, 0x002d3637, 0x001b2431, 0x000c132e, 0x00101737, 0x001b2347, 0x00212a4c, 0x001b2142, 0x00161d37, 0x00151e38, 0x00041229, 0x00121f41, 0x001f2c52, 0x00182652, 0x002b3968,
- 0x004b5f8d, 0x004b608e, 0x002b3f6f, 0x00142959, 0x000e215b, 0x000f205a, 0x00142161, 0x000e1b5c, 0x00030d4e, 0x0005104e, 0x00132054, 0x0016244b, 0x001e2c44, 0x00202f3d, 0x00212f39, 0x00222d34,
- 0x00212d3b, 0x0011212f, 0x000e1c31, 0x00414e63, 0x00adb8cf, 0x00e3ecf8, 0x00e4ebf8, 0x00e5edf7, 0x00dfe6ee, 0x00b6c2c8, 0x00818ca6, 0x0048538c, 0x00142d75, 0x00113481, 0x000e3384, 0x000d307d,
- 0x003c4a78, 0x00747182, 0x008e7772, 0x009d795d, 0x00a97b50, 0x00a5724f, 0x009b684b, 0x00895c40, 0x007b543a, 0x0073533a, 0x00775f44, 0x007d6b4c, 0x008a7c5a, 0x008c8258, 0x008f8556, 0x008f8454,
- 0x00968058, 0x008b7855, 0x0086755b, 0x00847768, 0x00857c77, 0x00867b79, 0x008c7f7a, 0x00968478, 0x00957963, 0x008a6d4f, 0x008c6a47, 0x00906f42, 0x008c6a48, 0x00846446, 0x0079583f, 0x006a4c36,
- 0x0059412f, 0x00574334, 0x00a19087, 0x00efece7, 0x00fefefc, 0x00fafcfb, 0x00fdfbfb, 0x00fffcf9, 0x00ead6cc, 0x00a28a7c, 0x00816655, 0x008d6f5e, 0x009a8278, 0x009f8d89, 0x00a6999b, 0x00aea4ab,
- 0x00b1a7a0, 0x00b1a9a9, 0x00a9a5aa, 0x009f9fa8, 0x009c9aa7, 0x0099949a, 0x009c9298, 0x00a19397, 0x00a8939f, 0x00a493a0, 0x00a08e92, 0x00988b79, 0x009c7f5b, 0x00906d44, 0x007f5c37, 0x007a5c40,
- 0x005a5747, 0x00565751, 0x006b6565, 0x00907e78, 0x00bd9487, 0x00e38d53, 0x00f58030, 0x00f47227, 0x00eb6e33, 0x00d16b42, 0x009f533f, 0x00603a3c, 0x00505d89, 0x003c69a7, 0x001a5cab, 0x001669c3,
- 0x001d5dae, 0x00134e9a, 0x00194a8f, 0x000f376f, 0x001c364f, 0x003c4850, 0x00716e63, 0x00a59476, 0x00c7a375, 0x00c19761, 0x00aa895b, 0x00928570, 0x00848057, 0x00868b61, 0x0095987e, 0x008f8c94,
- 0x00978fa8, 0x009f9ba9, 0x0098979c, 0x00868c85, 0x00727b79, 0x00616067, 0x00463c4a, 0x003b303c, 0x00423743, 0x004c4144, 0x00564942, 0x0062563e, 0x007c673f, 0x008e7241, 0x0098763f, 0x009a7437,
- 0x00856a28, 0x007c5d29, 0x006c4a25, 0x005b3824, 0x00462a11, 0x00372808, 0x00383415, 0x003c422b, 0x004d5d6f, 0x00576b95, 0x00586ea2, 0x005f78a6, 0x008ba0c6, 0x00b8c8e7, 0x00c1d2ed, 0x00b0c0d6,
- 0x0098abc5, 0x007e96ba, 0x005e78a7, 0x004d70a6, 0x005074bb, 0x004877be, 0x00517ec2, 0x006589c1, 0x00a2b3d6, 0x00bec4d4, 0x00ada7ac, 0x00988a84, 0x008c796a, 0x00816d5e, 0x006f5b4d, 0x00665446,
- 0x006e6255, 0x00736659, 0x007b6f65, 0x0080766f, 0x00807670, 0x0078706b, 0x005f5a56, 0x003f3a36, 0x00201a1a, 0x00161211, 0x00151311, 0x0012140e, 0x00121510, 0x00101110, 0x000c0d0e, 0x0008090b,
- 0x00050709, 0x00010303, 0x00010100, 0x00010000, 0x00040201, 0x00050100, 0x007b7872, 0x00efeeea, 0x00fcfdfe, 0x00f9fcfc, 0x00fafcfb, 0x00f8fcfb, 0x00bbb9b8, 0x006c6d6d, 0x00868888, 0x00b5b9b9,
- 0x00d1e2ef, 0x00e3eff8, 0x00f3f8f9, 0x00f7f6f0, 0x00f3e5d1, 0x00cab699, 0x00ae9470, 0x00ad8e63, 0x00bf996b, 0x00c09c69, 0x00a58a60, 0x00575439, 0x00141004, 0x00080801, 0x00090908, 0x000a0d0f,
- 0x00030808, 0x00060808, 0x000b0a0a, 0x00090604, 0x000d0800, 0x00060903, 0x00050902, 0x00090908, 0x00090707, 0x00080606, 0x00060605, 0x00060707, 0x0008070a, 0x000b080d, 0x000e0b10, 0x00120d12,
- 0x0012100a, 0x000e0804, 0x00352724, 0x0045322d, 0x00402d20, 0x003c2d16, 0x00311f09, 0x002c1406, 0x003e1b05, 0x00512716, 0x006a3f25, 0x00765129, 0x00a7784c, 0x00b78053, 0x00c18754, 0x00cb8b59,
- 0x00be7e46, 0x00c68953, 0x00c68a5d, 0x00c28960, 0x00c58c6d, 0x00c6906c, 0x00bb885e, 0x00aa7646, 0x009a673b, 0x00855b34, 0x005f3d1e, 0x002d1302, 0x00230b00, 0x003f1e09, 0x0073492c, 0x00844f2b,
- 0x006d3f24, 0x00996444, 0x00cf926f, 0x00d29367, 0x00aa7a55, 0x0078583b, 0x0037240f, 0x00251f11, 0x00251e12, 0x00281d0d, 0x00281e0d, 0x00231d0e, 0x00231d11, 0x001a160f, 0x0012100d, 0x00100b0c,
- 0x00040406, 0x00040406, 0x00040306, 0x00040406, 0x00060607, 0x00070706, 0x00080805, 0x00080905, 0x000b0b09, 0x000b0d08, 0x000d0e0a, 0x000f100b, 0x0011100d, 0x0012100e, 0x0013110e, 0x0013130e,
- 0x001a140a, 0x00171308, 0x001b170c, 0x0018150b, 0x0014110b, 0x002c2a26, 0x00b7b4b1, 0x00f9f8f4, 0x00fefdfd, 0x00fafbf6, 0x00f9fdfa, 0x00f2f3f3, 0x00898280, 0x0038281f, 0x00250a03, 0x0044200f,
- 0x00885c3c, 0x009f6e4e, 0x00a36c4d, 0x00a76c50, 0x00b5775b, 0x00b67e5c, 0x00bb855e, 0x00bd845c, 0x00ad7348, 0x00a56b3f, 0x00aa7046, 0x00bb845a, 0x00d5a17e, 0x00c08d6a, 0x00b07b59, 0x00b67e5d,
- 0x00c68660, 0x00ce9c7c, 0x00be9a84, 0x00847263, 0x00595650, 0x00545454, 0x0040434a, 0x001d2233, 0x00404573, 0x007880b9, 0x006067af, 0x00323c95, 0x00232b94, 0x00182798, 0x0016269d, 0x001528a8,
- 0x00142bab, 0x002338b6, 0x002437b4, 0x001e35ad, 0x002d3cb4, 0x002641b9, 0x001f3fb6, 0x003653cc, 0x00687deb, 0x006981ed, 0x003c51ca, 0x001f34c0, 0x001d34d4, 0x00203fd2, 0x002247d4, 0x002250d3,
- 0x00334fd5, 0x00374db1, 0x00121a5c, 0x00030219, 0x00040003, 0x00030000, 0x00030103, 0x00030206, 0x00010008, 0x00000003, 0x00000103, 0x00000200, 0x00020103, 0x00080201, 0x00160a05, 0x0046332b,
- 0x00705b45, 0x0069543e, 0x005c4532, 0x00503b2e, 0x004a3532, 0x003b3427, 0x00302a1b, 0x00221506, 0x00080205, 0x0002020e, 0x00010018, 0x002d344e, 0x00b3afd0, 0x00dad2f6, 0x00d9d1f8, 0x00c7c0ef,
- 0x00dbb7a3, 0x00974830, 0x00994020, 0x00a83e1a, 0x00b33b16, 0x00bf4a24, 0x00c65635, 0x00c76245, 0x00c77461, 0x00d38d7f, 0x00e4b3b3, 0x00f0dbe9, 0x00e5edee, 0x00e1eaeb, 0x00898899, 0x002a1d3d,
- 0x00181551, 0x0028438a, 0x003160b0, 0x002b62ba, 0x004165c6, 0x004b73d8, 0x00426cd1, 0x00406cd0, 0x004c78dc, 0x004b7bdd, 0x004274d7, 0x00396ace, 0x003f6bd1, 0x00486fd8, 0x004064cd, 0x002f52bc,
- 0x002041a9, 0x002a49b4, 0x003756be, 0x003c5cc3, 0x004366c9, 0x004066c1, 0x003c62bb, 0x004e75c9, 0x004470c1, 0x00355eb2, 0x003a66bb, 0x003665c5, 0x003f66c2, 0x004a69ba, 0x00556fb5, 0x007388bc,
- 0x00afc2e4, 0x00cce3fb, 0x00b0c7eb, 0x00869ed3, 0x006f8ace, 0x005d85db, 0x005683e3, 0x005985e4, 0x005382df, 0x004470d3, 0x002f5cbc, 0x002a58b8, 0x003c68c8, 0x00507edc, 0x005686e4, 0x004c7bd6,
- 0x00425fc3, 0x00304eb1, 0x001f3ea1, 0x001c3da0, 0x001c40a3, 0x001a42a4, 0x002652b2, 0x002f5dbb, 0x003d6ac8, 0x004776d4, 0x004d7ad6, 0x005b7fd9, 0x006187e1, 0x004c71cb, 0x0020469f, 0x00143993,
- 0x001a4097, 0x003052a8, 0x00496dc1, 0x004d6ec5, 0x003353a9, 0x006174a7, 0x00d3dffb, 0x00e4ecff, 0x00eaeffb, 0x00e4e7f2, 0x00d7d7e7, 0x00d9d7eb, 0x00dfddf6, 0x00dfe1f5, 0x00dfe4f1, 0x00d7dee3,
- 0x00c5ccca, 0x00c5c8d8, 0x00c7ccdf, 0x00ced6eb, 0x00d5e0e1, 0x00b9c5d2, 0x004b5674, 0x0010154f, 0x000e1345, 0x00323d56, 0x006e7487, 0x009791b1, 0x008d9eb0, 0x00789099, 0x007b8f90, 0x009d9e9e,
- 0x00b78780, 0x00c16f63, 0x00c65c48, 0x00d15539, 0x00d45728, 0x00d65624, 0x00d55e33, 0x00d77f5c, 0x00f2d7ca, 0x00fdfaf4, 0x00f8fefc, 0x00f3fefc, 0x00f7fdfa, 0x00f5f5f1, 0x00a09795, 0x00706264,
- 0x00949498, 0x00bfc1bf, 0x008e938a, 0x003d4733, 0x0030411d, 0x0035491d, 0x00374b1d, 0x00384b1f, 0x00405024, 0x0044532b, 0x0044542b, 0x00415423, 0x0041522d, 0x00435233, 0x00424e3c, 0x003f4a42,
- 0x002b343d, 0x00242943, 0x001b1f43, 0x00191c47, 0x001c1c51, 0x00262851, 0x004c5171, 0x00676e8d, 0x00424766, 0x00222744, 0x00393e5a, 0x00868ca5, 0x00c7cee4, 0x00abb2c6, 0x00565d72, 0x002c3346,
- 0x00393e45, 0x00797e8e, 0x00d4d9eb, 0x00d9dcf5, 0x008688a6, 0x00353858, 0x002f314c, 0x0062627d, 0x00c9d0da, 0x00d7dde7, 0x00c8cecf, 0x00c3ccc3, 0x00b9bdcb, 0x00abadc7, 0x00a0a0c4, 0x007d7ca3,
- 0x00413e59, 0x0046445a, 0x00bbbac9, 0x00ececf2, 0x00a8a7b2, 0x004f515f, 0x00474d54, 0x00808782, 0x00c7d1c4, 0x00b9c3c6, 0x005c667c, 0x001c2356, 0x001c2162, 0x001a2153, 0x001a2545, 0x00394850,
- 0x00a5a59e, 0x00d1d1d1, 0x00c6c6cb, 0x00c2c2d3, 0x008384a0, 0x003c3e62, 0x001f2547, 0x00262d51, 0x001c2845, 0x003f4b68, 0x00a8b0bd, 0x00dcdbca, 0x00929397, 0x00404254, 0x001b213e, 0x00191f47,
- 0x00131741, 0x00303353, 0x008c8c9d, 0x00cbc9cc, 0x00bfbdae, 0x006b6d79, 0x00232a42, 0x00161b39, 0x00202549, 0x001a2147, 0x001f274e, 0x001b2549, 0x001f294b, 0x001a2644, 0x0017243d, 0x00232e46,
- 0x0055575a, 0x0086868c, 0x00a3a5aa, 0x009ea2a8, 0x008c8d95, 0x00858691, 0x007b7e88, 0x007c7c89, 0x0082828e, 0x0091909e, 0x00aaaeb6, 0x00b3beb8, 0x00959ea3, 0x00636a78, 0x002e344c, 0x00212543,
- 0x00292e51, 0x00252b4c, 0x00202645, 0x00212740, 0x00292e43, 0x00394143, 0x003f4d3f, 0x004b5d44, 0x004c5c3c, 0x00526043, 0x00a1ac94, 0x00ecf1e6, 0x00ffffff, 0x00fffefe, 0x00fdfcfc, 0x00fdfdf7,
- 0x00a5b5bf, 0x00384857, 0x00091d31, 0x00071c3e, 0x000a1e64, 0x00131f78, 0x00293592, 0x004047a2, 0x00575b8e, 0x00666882, 0x00878080, 0x00bb9e7c, 0x00e6aa81, 0x00ef946e, 0x00e67856, 0x00f67a5b,
- 0x00c45d5c, 0x00924f6f, 0x007a67a3, 0x00617dda, 0x003684f8, 0x004c7fe5, 0x004c72d2, 0x004470ce, 0x004d7ada, 0x00507fe0, 0x004b7dda, 0x005485e5, 0x00618ded, 0x007099f7, 0x007ea6fc, 0x007499f4,
- 0x006670b6, 0x00303a62, 0x00131d25, 0x001b240c, 0x00222503, 0x0024210e, 0x00201a15, 0x00221820, 0x00261e1f, 0x00262115, 0x00231d0d, 0x00261914, 0x0028220d, 0x0020200c, 0x00181d12, 0x002b353f,
- 0x007081b2, 0x008598e4, 0x006882d5, 0x007b9aed, 0x007299e1, 0x005a83da, 0x005a87e7, 0x005a8aee, 0x004f85f1, 0x004e85f4, 0x00508af9, 0x00558af9, 0x005981eb, 0x00496ad1, 0x00223fa2, 0x00213996,
- 0x003559b3, 0x004368c7, 0x004b75d5, 0x004374d5, 0x003f71d2, 0x004576d1, 0x003f6bc5, 0x005c84d5, 0x008ca9f2, 0x00728cd1, 0x004563ad, 0x00456ccb, 0x00364e7c, 0x0016232d, 0x001f2110, 0x00231d01,
- 0x00241d10, 0x00211d19, 0x001f1c1b, 0x00201a17, 0x00261e0c, 0x00231b10, 0x00211b16, 0x00211e16, 0x001d1f0f, 0x001b1c0d, 0x00121a06, 0x005c6152, 0x00ebefe7, 0x00fefdfe, 0x00fefbfd, 0x00fff9fc,
- 0x00fcfcfa, 0x00e5dcd4, 0x00a18e80, 0x00b29482, 0x00d1b19f, 0x00b3988c, 0x00776059, 0x00533d3b, 0x004f3232, 0x008b6a6a, 0x009a7470, 0x009e746e, 0x00897269, 0x00787374, 0x00677384, 0x00485e8d,
- 0x002c4ea2, 0x0026489d, 0x00698acc, 0x00b3d4ed, 0x00c6e4d1, 0x00b7d2d4, 0x008497b5, 0x003e5272, 0x000c1640, 0x00080a37, 0x00060832, 0x0008062d, 0x00050314, 0x00000108, 0x00020203, 0x000e0e03,
- 0x002e302d, 0x003e413f, 0x003e413f, 0x002e3135, 0x00272a32, 0x00252935, 0x00272f3a, 0x002a3341, 0x0024293d, 0x00141c31, 0x00081024, 0x00030d15, 0x000d1827, 0x001c283b, 0x0028324e, 0x00364062,
- 0x00404f74, 0x00283561, 0x000e1c45, 0x0004153e, 0x0005133e, 0x00050e3e, 0x0001073a, 0x0000043d, 0x0005124c, 0x000d1b57, 0x000f1e55, 0x000c1c4c, 0x00122145, 0x0019293f, 0x00253344, 0x002a3741,
- 0x00212d3c, 0x001c242f, 0x00182025, 0x00373b40, 0x00a6a4ae, 0x00e1dfef, 0x00f1effb, 0x00f4f9fd, 0x00effafe, 0x00ecf8f7, 0x00d8e5ea, 0x00aab5db, 0x004a5a91, 0x00152b71, 0x000f2d76, 0x000e2e7b,
- 0x00314580, 0x0062668d, 0x007f737e, 0x00917765, 0x00aa7b4e, 0x00a17151, 0x00926749, 0x00875b41, 0x00785439, 0x0077583e, 0x007b6346, 0x00826f4e, 0x008f7e59, 0x0092845a, 0x00928356, 0x00938155,
- 0x009a7851, 0x00947655, 0x00866e58, 0x00816f66, 0x00807676, 0x0082787b, 0x00887e7b, 0x00938479, 0x0090745d, 0x008a684b, 0x00936f4c, 0x009a7c50, 0x00a27f53, 0x009f7954, 0x00946d4d, 0x00846041,
- 0x006b4b36, 0x00604537, 0x009f8d85, 0x00efeae7, 0x00fbfefc, 0x00fbfdfd, 0x00fbfbfc, 0x00fffcfd, 0x00e7d6cc, 0x00a1887b, 0x00806454, 0x008c6e5c, 0x009a8075, 0x009d8882, 0x00a1908e, 0x00a7999b,
- 0x00a89d96, 0x00a59b9f, 0x0097949a, 0x008d8d99, 0x0088848c, 0x008a8082, 0x00928182, 0x009b8685, 0x009e8c8d, 0x00998c95, 0x00968b8c, 0x0093897d, 0x00997d5e, 0x008a6b49, 0x00745d3b, 0x006b5b48,
- 0x006b7c8b, 0x007b92ac, 0x0092a1bc, 0x009c9eb3, 0x00ac8a8f, 0x00dc7140, 0x00f6651b, 0x00ea6225, 0x00ce6a45, 0x00b36a5d, 0x008c5f66, 0x00584762, 0x00566b9d, 0x006186c4, 0x00275e9f, 0x001c5b9f,
- 0x001b60ab, 0x001e60ac, 0x0015549a, 0x000b4586, 0x00073160, 0x000d294a, 0x001e2c3b, 0x003f3e3a, 0x006b563e, 0x006d5231, 0x0054412d, 0x0046475e, 0x005c685e, 0x005c694f, 0x00838a6b, 0x00b5b79b,
- 0x00a99a93, 0x009c8b89, 0x008f8485, 0x00878385, 0x005e6d6b, 0x004f4e57, 0x003b3140, 0x00352935, 0x003c3133, 0x00473a37, 0x0057483c, 0x0067563e, 0x007d6440, 0x008f7244, 0x009b7a45, 0x009a7a3e,
- 0x00856a29, 0x007c5e2e, 0x00694a27, 0x005b3c29, 0x00422a18, 0x00312511, 0x00292917, 0x00333e37, 0x0047627e, 0x004e6da1, 0x004f72a7, 0x0058749f, 0x007a93b9, 0x009eb1d4, 0x0094a8c8, 0x008090ae,
- 0x008195b5, 0x00758db6, 0x005c77a7, 0x004e71a8, 0x004a70b1, 0x004274b5, 0x004073b2, 0x00476fac, 0x008197c0, 0x00b5c0dc, 0x00c2c2d2, 0x00b4abb2, 0x009c8f8c, 0x008e8079, 0x00796b64, 0x0073675e,
- 0x00766b61, 0x007b6f66, 0x007b7069, 0x007c726d, 0x007e746f, 0x00716b66, 0x004d4846, 0x002b2623, 0x00150f10, 0x00110b0d, 0x000e0b0c, 0x000b0e0c, 0x000c100e, 0x000d100e, 0x000b0c0a, 0x00080905,
- 0x00000100, 0x00000100, 0x00010200, 0x00010200, 0x00010000, 0x00010000, 0x00767571, 0x00f1edec, 0x00fbfbfa, 0x00fefdfd, 0x00fafaf9, 0x00fbfdfe, 0x00b8bdbb, 0x00696f6d, 0x007c827e, 0x00afb3af,
- 0x00cedbef, 0x00e9f0fc, 0x00f5f4f1, 0x00eae1d2, 0x00c9b191, 0x00bfa076, 0x00c29e6b, 0x00cca369, 0x00d2a66d, 0x00cea16e, 0x00bd9f6b, 0x00aba17d, 0x00666142, 0x001d1a0f, 0x00090a02, 0x00060a09,
- 0x0000090d, 0x0004070a, 0x00060a05, 0x000d0904, 0x000f0900, 0x000b0905, 0x00070903, 0x00090706, 0x00050808, 0x00060708, 0x00060507, 0x00070507, 0x000a050c, 0x000c070e, 0x000d0a0f, 0x00100e14,
- 0x00191104, 0x002a1e19, 0x00463633, 0x003f2926, 0x00462d1d, 0x006d5239, 0x00694c2c, 0x005d3b16, 0x00764e30, 0x0093684f, 0x00b78c70, 0x00c8986e, 0x00cb9969, 0x00c08c58, 0x00c5915b, 0x00c58f55,
- 0x00c18851, 0x00cd915e, 0x00dca170, 0x00e7ac80, 0x00ecb088, 0x00e6ad84, 0x00d7a072, 0x00c28c5b, 0x00a97246, 0x00895c38, 0x0058361b, 0x00301706, 0x00200b01, 0x003b1e0a, 0x005d3b1f, 0x00603617,
- 0x00502717, 0x00764128, 0x00b07253, 0x00b9784d, 0x00976743, 0x00674b30, 0x00302210, 0x00202015, 0x00231e12, 0x002c1e0c, 0x002a1c09, 0x00241e0f, 0x00201b13, 0x001a1511, 0x00120e0d, 0x000f0b0d,
- 0x00040305, 0x00050406, 0x00040307, 0x00040306, 0x00050506, 0x00050605, 0x00050704, 0x00070806, 0x00090b08, 0x00090c09, 0x000c0e0a, 0x000d0e0b, 0x000e0e0c, 0x000f0e0d, 0x0010100e, 0x0010110e,
- 0x00131108, 0x0016140c, 0x0017150c, 0x0015140a, 0x0012100a, 0x0024221d, 0x00a6a5a0, 0x00f6f4f0, 0x00fdfbfd, 0x00fcf8f9, 0x00fcfafe, 0x00fbf9ff, 0x0098918e, 0x0044352c, 0x002f1707, 0x00401e02,
- 0x00794e28, 0x009a6846, 0x00a46a4a, 0x00b07556, 0x00c08069, 0x00c88a63, 0x00c38559, 0x00bd8154, 0x00b27951, 0x00ad7350, 0x00ad7253, 0x00c78e72, 0x00e3ad8d, 0x00cc9878, 0x00a77451, 0x009a6746,
- 0x00b3704b, 0x00bc8667, 0x00b69078, 0x00836f5b, 0x00534e42, 0x0052504c, 0x00282a30, 0x0015192d, 0x00545e94, 0x006977ba, 0x003e4c9c, 0x002d3692, 0x00232f91, 0x001a2894, 0x00132496, 0x0012259d,
- 0x001f33b3, 0x003c50cd, 0x002940ba, 0x002339ae, 0x005267d6, 0x004c67d5, 0x002140b1, 0x00243db8, 0x004052c5, 0x004a5ecc, 0x002d3fb4, 0x001e2eb7, 0x001a2fc5, 0x001936c5, 0x001a40c7, 0x001946c9,
- 0x002847cf, 0x00344ab4, 0x00132064, 0x0003041f, 0x00050000, 0x00040000, 0x00010000, 0x00010205, 0x00000005, 0x00020103, 0x00020302, 0x00000300, 0x00010004, 0x00060101, 0x00140808, 0x0045332d,
- 0x00776251, 0x00745d48, 0x005d4834, 0x004c392e, 0x00352526, 0x00261c17, 0x00130f09, 0x000b0600, 0x00010102, 0x00010008, 0x0000010e, 0x00303344, 0x00a7a5c4, 0x00d0caeb, 0x00d0c9f0, 0x00bab1dd,
- 0x00c4a9aa, 0x0044221c, 0x003e1f18, 0x003f1e15, 0x003d190b, 0x005b2111, 0x007e321b, 0x00a94427, 0x00d44630, 0x00e74f34, 0x00ed6d5b, 0x00e7a1a1, 0x00f1cdbf, 0x00eedbd3, 0x00817d7e, 0x001b1e32,
- 0x00182d67, 0x0029509f, 0x00335ebb, 0x00345ec7, 0x004967d8, 0x004d71d6, 0x00436ccc, 0x00426dcb, 0x004a77d7, 0x004a79d6, 0x004371cf, 0x003965c4, 0x003b61c4, 0x003d5fc3, 0x003351b5, 0x00223fa2,
- 0x00193fa1, 0x00254bac, 0x00365dbe, 0x003c63c3, 0x004065c6, 0x003e64c5, 0x003c61c4, 0x003458bd, 0x00315abb, 0x003e65c7, 0x004672d4, 0x003f76d6, 0x004474d4, 0x004f76d2, 0x004c6ec0, 0x005270b5,
- 0x006984b6, 0x00799bcb, 0x006b8cc2, 0x00597cbc, 0x00587dca, 0x005883dc, 0x005985e5, 0x005582e2, 0x00436fd0, 0x002d59b8, 0x002753b3, 0x003563c1, 0x004d7ad7, 0x005b88e6, 0x004e7cdb, 0x003a66c6,
- 0x002b47ae, 0x00223fa4, 0x001c399e, 0x002040a3, 0x00284aad, 0x003158b9, 0x00426dcc, 0x004c79d6, 0x005681e0, 0x005787e6, 0x005c88e5, 0x006188e2, 0x005073ce, 0x002c53ab, 0x000e338b, 0x00153a92,
- 0x002c4ea6, 0x00476abd, 0x005374cb, 0x004061b6, 0x0024429a, 0x00596d9f, 0x00d2dcfa, 0x00e1eefb, 0x00edf1fe, 0x00e6e9f4, 0x00d8d8e6, 0x00d5d4e6, 0x00dcdbf2, 0x00dee0f3, 0x00dee3ef, 0x00dae2e7,
- 0x00ced2d4, 0x00c2c4d5, 0x00babed4, 0x00c2c9db, 0x00ced8da, 0x00b7c2cb, 0x00555f7d, 0x001d235b, 0x00090b41, 0x000d152e, 0x00515d65, 0x00899798, 0x00899997, 0x0080847d, 0x008c7d75, 0x009b7266,
- 0x00ab4840, 0x00b94030, 0x00ce432e, 0x00d94a28, 0x00d44c22, 0x00cd532a, 0x00be5736, 0x00c87e60, 0x00f7dcd5, 0x00f8f7f4, 0x00f9fffe, 0x00f4fffc, 0x00f9fcf8, 0x00efedea, 0x00968f8f, 0x006a6262,
- 0x009c9ca0, 0x00c2c5c1, 0x008d9386, 0x003b472f, 0x0033431d, 0x00384b1e, 0x003b4f1f, 0x003b4e1f, 0x003f5024, 0x00435228, 0x00455428, 0x003f521d, 0x003b4e21, 0x0042542d, 0x004a593c, 0x00495740,
- 0x003c4543, 0x0031393f, 0x00242a3a, 0x001e2438, 0x001d233d, 0x001e2151, 0x001e1f57, 0x0025245c, 0x00232555, 0x001d2249, 0x00313657, 0x00666d85, 0x00bec5d4, 0x00c7ced8, 0x00a1a9af, 0x008b9496,
- 0x00979c99, 0x00aeb5b4, 0x00ced4db, 0x00afb4bf, 0x005b5e73, 0x00292d44, 0x004b4f68, 0x009fa3ba, 0x00e1e5f5, 0x00a9adbc, 0x00717a7a, 0x00737f65, 0x009ba3a1, 0x00aaafb9, 0x00bfc1d6, 0x009b9bb3,
- 0x003f404c, 0x00626466, 0x00e2e5df, 0x00ecefe4, 0x00b4b6ac, 0x00787a83, 0x006a6e7d, 0x00969b9d, 0x00bcc6be, 0x009fa6ad, 0x00515571, 0x0022245a, 0x00292b6c, 0x001e2355, 0x00283150, 0x0067737c,
- 0x00bfbab7, 0x00bbb7b8, 0x00939199, 0x00a8a7b4, 0x00b0b1c6, 0x0075788f, 0x002c2f4c, 0x00222545, 0x0018203e, 0x001d2743, 0x00797e90, 0x00cfcdc9, 0x00bebec6, 0x006e6f83, 0x001f2242, 0x001b1d46,
- 0x001f204b, 0x001d1e3e, 0x0045445d, 0x009495a0, 0x00cdcccd, 0x00aeb0c4, 0x00505473, 0x001d1f45, 0x00191b47, 0x001a1e4c, 0x00212658, 0x001e2456, 0x001e2454, 0x00202857, 0x001f2753, 0x001b224c,
- 0x002e303b, 0x003e404d, 0x00555767, 0x006d717d, 0x008c8f9e, 0x009599a5, 0x00999caa, 0x009b9dae, 0x009ea1b0, 0x00999aa9, 0x008a8e9a, 0x00717989, 0x004c5169, 0x002d334e, 0x00232946, 0x002a3050,
- 0x00262b4a, 0x00282e45, 0x00293041, 0x002f3740, 0x003b4447, 0x0046514a, 0x00495746, 0x00526449, 0x0051603b, 0x00515e3d, 0x00a2aa92, 0x00edf0e5, 0x00fefefd, 0x00fefffe, 0x00fcfbfc, 0x00fefcfa,
- 0x00a6acba, 0x00343e4e, 0x00061129, 0x0007173b, 0x00162564, 0x00222d78, 0x003c3f8b, 0x005c5999, 0x0081798b, 0x009d948b, 0x00b9a686, 0x00c6a373, 0x00d39464, 0x00cc774b, 0x00c46439, 0x00dd6e4e,
- 0x00ad5154, 0x00804961, 0x0069538a, 0x005666bd, 0x00306bdb, 0x003563cc, 0x00395fc8, 0x003f68d1, 0x004b72e0, 0x004c75e0, 0x00507ae7, 0x005680e6, 0x005a7fe1, 0x006284e2, 0x007da0f4, 0x007396e5,
- 0x006e76b7, 0x00444c6e, 0x00141b26, 0x001c220f, 0x001d1c05, 0x00272016, 0x00251b20, 0x00231522, 0x0024191b, 0x00211b0f, 0x00201b0c, 0x00211712, 0x001f1c0e, 0x0016190d, 0x00242b29, 0x004f5c6a,
- 0x008392cd, 0x007289d2, 0x00738de1, 0x0085a8f9, 0x006b92d9, 0x005582da, 0x005885eb, 0x005888f0, 0x005082ef, 0x00497fe9, 0x004c80ea, 0x004a7be2, 0x005478db, 0x004d6ac8, 0x00223d95, 0x000d2577,
- 0x001e3d8a, 0x002d4f9e, 0x003d63b8, 0x00406ac7, 0x003c69c8, 0x003c68c3, 0x004067c2, 0x00597ecf, 0x008ca7ee, 0x007995d6, 0x004561aa, 0x004d74cb, 0x004c5f8f, 0x001d2a35, 0x001a1c10, 0x0025210a,
- 0x001f1a13, 0x001f1c20, 0x00222226, 0x00211e22, 0x0029251c, 0x00251f19, 0x0024201c, 0x00221f1a, 0x0022241e, 0x001f231c, 0x001c211e, 0x0059625a, 0x00e4e7e3, 0x00fafcf9, 0x00fefeff, 0x00fffcfd,
- 0x00fffefd, 0x00eae1da, 0x00a79688, 0x00ac927f, 0x00c1a293, 0x00a2887e, 0x00614a45, 0x003c2725, 0x00371f1c, 0x006e524b, 0x009c796e, 0x00967056, 0x007e674e, 0x006e6958, 0x00687279, 0x0054688b,
- 0x003751a3, 0x003451a1, 0x007a96dd, 0x00bdd8f5, 0x00cbe5eb, 0x00bddef4, 0x0092b4ea, 0x005679b3, 0x00233c7d, 0x00122968, 0x000d1b5d, 0x00030d44, 0x00010122, 0x0000010e, 0x00070409, 0x0016100a,
- 0x00252324, 0x00333434, 0x003d3f40, 0x00373c3d, 0x003b4049, 0x0031353f, 0x00202633, 0x00171c2c, 0x0015192e, 0x00111a2d, 0x000f1627, 0x001d2329, 0x001d2531, 0x00151e2e, 0x00282f46, 0x00262c49,
- 0x00222848, 0x00202748, 0x00192044, 0x000d1535, 0x00060d2e, 0x00050c2e, 0x00040e31, 0x00061238, 0x00081646, 0x0008184a, 0x0007164a, 0x00061447, 0x00041240, 0x000b1940, 0x001a2547, 0x00242d4b,
- 0x00222d34, 0x00222a2a, 0x00252b2a, 0x003c3e3a, 0x009f9d9e, 0x00e0dce2, 0x00ece5f3, 0x00e2dfeb, 0x00f0edf9, 0x00f2f5f8, 0x00e6e9f4, 0x00dde9fb, 0x0093a0d1, 0x00364d8b, 0x00132c77, 0x00112c7c,
- 0x00324384, 0x005a5d86, 0x00736876, 0x00836a5a, 0x00986f42, 0x00966b4a, 0x008a6247, 0x007e583f, 0x0073523b, 0x0074583f, 0x007c654a, 0x00826e4f, 0x0091805c, 0x0094845b, 0x00958357, 0x00928052,
- 0x009c7852, 0x00957656, 0x00826a52, 0x00736155, 0x00766965, 0x007d706f, 0x00877976, 0x008d7b72, 0x00876954, 0x00826144, 0x00906c48, 0x009a7b4b, 0x00a7835a, 0x00a7825a, 0x00a17956, 0x00916b4b,
- 0x007b5944, 0x00634b3b, 0x009e8d83, 0x00ede9e3, 0x00fffdfd, 0x00fbfdfd, 0x00fcfbfc, 0x00fefaf9, 0x00e8d8cc, 0x009c8575, 0x007b5f4d, 0x00846654, 0x008f756b, 0x00947f79, 0x00968684, 0x00988c8e,
- 0x009a8d94, 0x00938790, 0x00887e8a, 0x007e767f, 0x007b6d72, 0x00806f69, 0x0086746d, 0x008d7a72, 0x008f807c, 0x008a8482, 0x00858487, 0x007c8487, 0x00837771, 0x007f7163, 0x0081756a, 0x00808082,
- 0x007896b7, 0x00799cc7, 0x007794c5, 0x007281a9, 0x0084768c, 0x00c86640, 0x00e4652d, 0x00c9643c, 0x00996a74, 0x00786b8f, 0x005967a0, 0x003a5da3, 0x003a60a2, 0x0041629b, 0x0047608f, 0x00495a7c,
- 0x00265da6, 0x0021589e, 0x00205297, 0x001c4c8c, 0x00123972, 0x000a2856, 0x0002173b, 0x00091428, 0x00231e22, 0x00271e19, 0x00171a22, 0x000f2a52, 0x00485d82, 0x003d4a4e, 0x00686a49, 0x00ccc075,
- 0x00d6b971, 0x00bf9e7b, 0x00a18583, 0x0076687a, 0x004d5662, 0x003d4147, 0x00302c2e, 0x002a2524, 0x00332a23, 0x0044372a, 0x00604a38, 0x006e543c, 0x00836244, 0x0093704c, 0x009b7750, 0x00987449,
- 0x00826b3c, 0x007f6646, 0x00795d4b, 0x0075594f, 0x005f4641, 0x0043362d, 0x0024221d, 0x00293435, 0x00485f81, 0x004c6a9e, 0x00546ea9, 0x00536f98, 0x006a82ab, 0x007c91b5, 0x006e80a1, 0x005b6c8a,
- 0x005d7198, 0x005b749f, 0x004c6da1, 0x00446aa6, 0x003f6cb2, 0x00396bad, 0x00396baa, 0x003e65a1, 0x007286b4, 0x00afbcda, 0x00d9dcef, 0x00d7d0da, 0x00c0b1b4, 0x00a69797, 0x00918380, 0x00948681,
- 0x00a59b94, 0x00a0988f, 0x00877f77, 0x0078716b, 0x00716c66, 0x0068635f, 0x00443e3c, 0x00241f1b, 0x000c090a, 0x00080506, 0x00080607, 0x00090a07, 0x00090b08, 0x00090907, 0x00060605, 0x00030602,
- 0x00030104, 0x00010000, 0x00010201, 0x00000000, 0x00010001, 0x00000000, 0x00747772, 0x00eeefec, 0x00fffeff, 0x00fcfdfc, 0x00fcfafb, 0x00fbfefc, 0x00b7b9b9, 0x0068706c, 0x00767c7a, 0x00abb3af,
- 0x00dbdee6, 0x00ececec, 0x00dcd5cb, 0x00bfb19b, 0x00c2a67e, 0x00d1ad80, 0x00dcb47f, 0x00dfb37d, 0x00deb27c, 0x00d5ab76, 0x00cba67a, 0x00c1ae85, 0x00ae9f83, 0x0068624d, 0x001c1a12, 0x000c0f0d,
- 0x0011151c, 0x0014191c, 0x00070b0e, 0x00020401, 0x000b0903, 0x00080a04, 0x000a0804, 0x00090707, 0x00090707, 0x00090809, 0x00090709, 0x00090709, 0x000a070b, 0x000c080b, 0x000f0a0e, 0x00130d14,
- 0x00171007, 0x002f261f, 0x00453734, 0x002d1918, 0x003b2215, 0x0071553a, 0x00957651, 0x009d7a51, 0x00bf9370, 0x00cfa084, 0x00dcae8c, 0x00d8ac7d, 0x00c49664, 0x00bb8b56, 0x00c5965b, 0x00c79257,
- 0x00b8804b, 0x00c38b56, 0x00daa371, 0x00e9b481, 0x00ecb58a, 0x00e9b284, 0x00dda777, 0x00c9915f, 0x00b27a4f, 0x008a603c, 0x005a3b1d, 0x00271103, 0x001d0b03, 0x00412511, 0x006f4c32, 0x006d4325,
- 0x005d2f22, 0x00663219, 0x00915838, 0x00975b32, 0x007a4d2b, 0x0054391f, 0x002b1e0b, 0x00212212, 0x00271f15, 0x002d200f, 0x00261b08, 0x00231e0f, 0x001e1a10, 0x0018150e, 0x00110f0c, 0x000d0a09,
- 0x00070509, 0x00060508, 0x00040307, 0x00030305, 0x00050505, 0x00050604, 0x00050604, 0x00060704, 0x000a0b09, 0x000b0b09, 0x000c0b0a, 0x000d0c0a, 0x000d0d09, 0x000d0e09, 0x000e0f0a, 0x000f0f0b,
- 0x00130f08, 0x0014110b, 0x0017140e, 0x0014120a, 0x0012110b, 0x001c1b15, 0x00979690, 0x00f4f2f0, 0x00fefdfe, 0x00fbfaf9, 0x00fefcff, 0x00fbfafc, 0x00ada09f, 0x004d3b2f, 0x003e2211, 0x00472709,
- 0x00794625, 0x0096603e, 0x009f6643, 0x00ab7150, 0x00b97b5b, 0x00c1865e, 0x00b77d55, 0x00ae754f, 0x00aa714e, 0x00a66e4d, 0x00a76f55, 0x00ac775c, 0x00ba866a, 0x00ac7a5a, 0x009b684a, 0x00946243,
- 0x00a5623a, 0x00aa7453, 0x00ae886d, 0x00897561, 0x00554f44, 0x00423f3c, 0x001f2028, 0x0032334c, 0x005e649d, 0x0049589e, 0x002f3a92, 0x00283395, 0x00222e96, 0x001a2b99, 0x0014259a, 0x000f269e,
- 0x001930af, 0x002641bc, 0x002037b2, 0x001e38ac, 0x003e54c5, 0x003852ce, 0x001931b4, 0x001a31b7, 0x002335b1, 0x002135ab, 0x001b2daa, 0x001729af, 0x00132ab9, 0x001230b2, 0x001637b6, 0x00163eb4,
- 0x002643cc, 0x003448b0, 0x00141d64, 0x0003031e, 0x00050102, 0x00020100, 0x00000002, 0x00000203, 0x00000105, 0x00000201, 0x00010305, 0x00000303, 0x00010108, 0x00030004, 0x000e0507, 0x0031231f,
- 0x0061503f, 0x005c4e37, 0x004a3a29, 0x00342a20, 0x001e1316, 0x0013070a, 0x000f0103, 0x00080001, 0x00050000, 0x00020100, 0x00070402, 0x00363734, 0x00aca8b8, 0x00d2c9e5, 0x00ccbee6, 0x00b5a6d3,
- 0x00d0b2c4, 0x00533043, 0x00230f27, 0x00070c26, 0x00000e27, 0x00040c1e, 0x00181116, 0x00441b15, 0x008b2b0f, 0x00b33a0b, 0x00d14b1d, 0x00de5536, 0x00e2755a, 0x00e09a87, 0x0077625b, 0x000e2938,
- 0x00144c88, 0x003161b9, 0x003258c8, 0x003957d8, 0x004b69e3, 0x004b73da, 0x00426fce, 0x003f6cca, 0x004372cc, 0x004775cf, 0x00456fca, 0x003b63bf, 0x003254b2, 0x002c4baa, 0x0026409f, 0x001d3693,
- 0x0018449b, 0x002853ac, 0x003963be, 0x003c66c4, 0x003962c5, 0x00365ec6, 0x002b50bc, 0x002d51c1, 0x003156cb, 0x003256c8, 0x003462ce, 0x00306fcc, 0x003d76dc, 0x004474e0, 0x00436fd9, 0x004972d6,
- 0x004e78cb, 0x004776c5, 0x004575c2, 0x004a7fcf, 0x005186e1, 0x005384e0, 0x00527ddc, 0x003c6ac6, 0x00224eac, 0x002552af, 0x003b67c6, 0x004a77d5, 0x005783e2, 0x00527ede, 0x003661c2, 0x001e49a8,
- 0x001b3a9d, 0x002142a3, 0x002e50b2, 0x003d61c2, 0x004e74d6, 0x005880e1, 0x005d87e7, 0x005a85e4, 0x005b8ae9, 0x005e8eed, 0x005c8ae6, 0x004d73cd, 0x001d439d, 0x0011358f, 0x00173c95, 0x00234aa3,
- 0x004566bb, 0x005575cd, 0x004165bc, 0x00234597, 0x001e4095, 0x00586a9d, 0x00ced8f8, 0x00e2ecff, 0x00e9effa, 0x00e6eaf4, 0x00dadae8, 0x00d1d0e4, 0x00d5d4ed, 0x00dee0f5, 0x00dde2f0, 0x00dae1e7,
- 0x00d7dcdf, 0x00c7c9db, 0x00b5bacf, 0x00b6bdcf, 0x00c4cccc, 0x00bbc4cd, 0x00676e8c, 0x00272a62, 0x000f144a, 0x00000720, 0x003f4c52, 0x007c918e, 0x0092938c, 0x008b7469, 0x008b574b, 0x008c382d,
- 0x00ac322b, 0x00ae3124, 0x00a42a1d, 0x008e2713, 0x00742611, 0x00712514, 0x0068281e, 0x00986a60, 0x00f6e7e8, 0x00faf9fa, 0x00fefdfc, 0x00fcfef9, 0x00fffef7, 0x00e2e3de, 0x00818281, 0x006a6a6f,
- 0x00a5a6a5, 0x00c8cbc6, 0x00898f81, 0x003a452d, 0x00354620, 0x003b4e1f, 0x003e5220, 0x00405222, 0x00415322, 0x00455427, 0x00485827, 0x0040531b, 0x003b4f19, 0x003e511c, 0x00455626, 0x0044532a,
- 0x00445532, 0x00435236, 0x003d4a34, 0x00374431, 0x00313e2d, 0x002c344e, 0x00212553, 0x001d204b, 0x0025284e, 0x00232749, 0x00202546, 0x002e344f, 0x005a6076, 0x007a8195, 0x008c94a4, 0x0098a0ae,
- 0x009da2af, 0x00969baa, 0x00777c8c, 0x00494c63, 0x0025283e, 0x00363950, 0x00969dae, 0x00d4dbe4, 0x00bdc4c6, 0x00686e6b, 0x00242b2e, 0x00252b3f, 0x002f2f54, 0x003e3c6b, 0x00504f84, 0x00434173,
- 0x003d3a5e, 0x0083839b, 0x00ebecf8, 0x00d3d3de, 0x00b6b6bf, 0x00b2b1c8, 0x00bfbfd6, 0x00d9dbe7, 0x00b2b7bc, 0x006f7183, 0x00313050, 0x00272458, 0x002c2963, 0x0024264f, 0x00555975, 0x00a7aeb7,
- 0x00cdc6cb, 0x00989299, 0x00504c52, 0x006a6870, 0x00b5b5ba, 0x00b7b9c3, 0x00606371, 0x002e3043, 0x001b213b, 0x00191f3b, 0x004b4f69, 0x00a6a6b4, 0x00d7d8ec, 0x00acaec5, 0x00454963, 0x00202243,
- 0x001f2345, 0x00242745, 0x001f203f, 0x00424360, 0x009a97b1, 0x00c3c3da, 0x009e9fb2, 0x00555569, 0x001b1934, 0x00191938, 0x001e1f44, 0x0022244c, 0x00232750, 0x00222852, 0x00252c55, 0x00222a51,
- 0x00232748, 0x00202648, 0x001e2342, 0x00282d4b, 0x002e3550, 0x00384059, 0x0040495d, 0x00424c60, 0x00454c5e, 0x003b4254, 0x00272e42, 0x0021264c, 0x0020254a, 0x0021254a, 0x0024294a, 0x00282c4a,
- 0x002d3743, 0x00364040, 0x00404c3f, 0x0043503a, 0x00475734, 0x0048573a, 0x00485838, 0x0050603b, 0x004c5d2f, 0x00505e38, 0x00a3ab90, 0x00eef2e6, 0x00ffffff, 0x00fefefe, 0x00fdfbfd, 0x00fdfaf9,
- 0x00b7aabd, 0x00383448, 0x00141532, 0x002e355a, 0x00455486, 0x005f6699, 0x007b7ba4, 0x0095889e, 0x00b49679, 0x00c09b61, 0x00b28847, 0x00946731, 0x00965e2b, 0x0090501f, 0x008e4e22, 0x008a4a2a,
- 0x006a3637, 0x0059384d, 0x00483362, 0x003a3d82, 0x0030469f, 0x00224194, 0x001d3d93, 0x00264aa3, 0x002d4fb0, 0x002c4dae, 0x003656b3, 0x003c5ab1, 0x00435ea2, 0x005d76ac, 0x008ca5cb, 0x0092abc9,
- 0x008d96cd, 0x007983a5, 0x00565e71, 0x00575e64, 0x005c5d64, 0x005f5b71, 0x00605976, 0x005e5573, 0x00636068, 0x0069675f, 0x005f5f58, 0x00625f68, 0x005e6064, 0x00565d63, 0x0064717f, 0x008492ae,
- 0x008397d4, 0x00667ec7, 0x007b98ec, 0x0085a7f9, 0x005c83d2, 0x00537cde, 0x00547de8, 0x00517be6, 0x004976df, 0x004673da, 0x004873d3, 0x004970c9, 0x004866b8, 0x00485ea7, 0x002e4082, 0x00172462,
- 0x000a1d44, 0x00132859, 0x002a427d, 0x0038549c, 0x004163b8, 0x003c5fb7, 0x003a59b2, 0x004b6ab8, 0x008da6e6, 0x008ba4dd, 0x005069a5, 0x005476c4, 0x006274a0, 0x004f596c, 0x005b5b5c, 0x0068675f,
- 0x00696971, 0x00646777, 0x006d7385, 0x0061687a, 0x006d717b, 0x007b7d7f, 0x007a7b7d, 0x0075777c, 0x007e8390, 0x007e8495, 0x00697282, 0x00949cab, 0x00edf4f8, 0x00fbfdfd, 0x00fcfffc, 0x00fcfdf6,
- 0x00fdfdfb, 0x00f1ebe3, 0x00b8ab9b, 0x00a7937e, 0x00947b6b, 0x006e5a51, 0x0044342f, 0x00362827, 0x003a2321, 0x00574037, 0x00856756, 0x00886740, 0x007c693f, 0x0068633e, 0x008f9785, 0x00b9cdd2,
- 0x00a7bae6, 0x0094a7e2, 0x0092a3e5, 0x009ba8ec, 0x00929eca, 0x00698ccf, 0x004070be, 0x003160b4, 0x003264c4, 0x002f60be, 0x00224aa6, 0x000d2b7f, 0x00030b44, 0x00010123, 0x000a0012, 0x001c0b10,
- 0x00070806, 0x00151815, 0x002f3231, 0x003a3e41, 0x003d4146, 0x002b2d37, 0x00141823, 0x000b0d1a, 0x000e1024, 0x000f1627, 0x00121626, 0x002d2f36, 0x002e313e, 0x00131624, 0x00222234, 0x00201f33,
- 0x002a253d, 0x0047445b, 0x005a576f, 0x0079758c, 0x006f6d7c, 0x003e444f, 0x0018232d, 0x00030e1e, 0x00010c2c, 0x00031037, 0x00010d3d, 0x00000940, 0x00000844, 0x00040a48, 0x00101351, 0x001a1c59,
- 0x001a2838, 0x001f2933, 0x00273035, 0x00686d6f, 0x00d3d3cf, 0x00f2eff0, 0x00e6dde4, 0x00cbc1cd, 0x00cdc2d6, 0x00e1d8ed, 0x00eae3f4, 0x00e1e4f4, 0x00cdd3f2, 0x007e8bc3, 0x001b2a72, 0x00142679,
- 0x0028377c, 0x00444b7a, 0x005a5568, 0x00655549, 0x0074582c, 0x007b593c, 0x007a5640, 0x0073513d, 0x006c523d, 0x00735d45, 0x007d6851, 0x00847058, 0x00907d5f, 0x0094815e, 0x0095815a, 0x00948054,
- 0x009f764e, 0x00957150, 0x007f6146, 0x006a5340, 0x00635247, 0x006b5a51, 0x00726055, 0x007c6558, 0x007e5e46, 0x00835d40, 0x00926d46, 0x00947647, 0x00a58359, 0x00a4825c, 0x009e7c56, 0x0091704f,
- 0x007d604a, 0x00624d3d, 0x00978c80, 0x00ece9e2, 0x00fcfefa, 0x00fcfffc, 0x00fbfdfa, 0x00fffdf8, 0x00e5d8c7, 0x0096806c, 0x00725841, 0x00795d46, 0x0082695a, 0x00887368, 0x008a7b74, 0x008a7e7c,
- 0x0085778d, 0x0083707f, 0x007c676e, 0x00765d5c, 0x00765a4e, 0x00795e4f, 0x007c6655, 0x007a6c5c, 0x0073756b, 0x00727c74, 0x006e818d, 0x006389b2, 0x007086aa, 0x007084a3, 0x007085a4, 0x006989b2,
- 0x00508bcd, 0x004485ce, 0x00427ac7, 0x004c74bc, 0x006073ae, 0x008c6b7b, 0x009b6c71, 0x00816a81, 0x004f6cb0, 0x003974cd, 0x002c75dc, 0x002a7de6, 0x002a64b6, 0x002b4f8a, 0x004b547a, 0x00797084,
- 0x004d6aa7, 0x00274881, 0x002f4f8a, 0x00284986, 0x001a3675, 0x000e2967, 0x001b3670, 0x00274074, 0x00172d56, 0x00091d41, 0x00041b47, 0x00002a62, 0x002e5092, 0x00364469, 0x006c635d, 0x00c4ac70,
- 0x00f3c466, 0x00eab97a, 0x00caa287, 0x00947c88, 0x003c405d, 0x00202c32, 0x00142016, 0x00171f11, 0x002f2712, 0x0045321a, 0x00614428, 0x00755134, 0x008d6248, 0x00966b55, 0x009b6f5d, 0x0099705f,
- 0x008e7c6e, 0x009c8987, 0x00ad9a9e, 0x00b5a0a8, 0x00a2909a, 0x0081747c, 0x00443e4a, 0x002e3142, 0x004a577e, 0x0058699e, 0x00596ba4, 0x00596c94, 0x00627399, 0x007081a0, 0x007481a2, 0x007582a2,
- 0x007282a8, 0x007187b3, 0x006281b4, 0x00587bba, 0x004b78be, 0x004470b7, 0x003a68a8, 0x003b629d, 0x00667da9, 0x00a7b6d7, 0x00dfe5fb, 0x00eae5f4, 0x00e3d6de, 0x00c8b9bd, 0x00b0a1a2, 0x00b8aaa9,
- 0x00dcd6cf, 0x00e3dfd7, 0x00c2bdb7, 0x009c9892, 0x006e6c66, 0x0055534f, 0x00363330, 0x001c1a17, 0x00080907, 0x00040402, 0x000a0a07, 0x00090905, 0x00080905, 0x00070705, 0x00030302, 0x00010100,
- 0x00010000, 0x00010000, 0x00010000, 0x00000001, 0x00010001, 0x00010101, 0x00747671, 0x00f1f1ee, 0x00fdfcfc, 0x00fbfcfb, 0x00fbfdfd, 0x00fcfefc, 0x00b2b6b7, 0x00626666, 0x00727779, 0x00a2a9aa,
- 0x00d3c8bc, 0x00beb19c, 0x00ae9b7e, 0x00ba9f79, 0x00d8b482, 0x00e6be89, 0x00eac188, 0x00e8c086, 0x00e4bb87, 0x00e0b689, 0x00dcb684, 0x00cdad7f, 0x00c5ad89, 0x00c4b69d, 0x00958d7c, 0x0083827f,
- 0x008e949c, 0x00889199, 0x0038424c, 0x00080e18, 0x0000070f, 0x0005090b, 0x00080908, 0x00080807, 0x00070606, 0x00070708, 0x000a0709, 0x000b0708, 0x000d0807, 0x000f0908, 0x00140c0c, 0x00170f10,
- 0x0018150a, 0x001f1a13, 0x0026211a, 0x001d120e, 0x00281308, 0x00664a2e, 0x00aa8a61, 0x00c8a172, 0x00e9ba8a, 0x00f0bc92, 0x00e4b388, 0x00d9ad7d, 0x00c09260, 0x00b98e57, 0x00c79d62, 0x00c0955c,
- 0x00bc8e56, 0x00ba8954, 0x00c3935e, 0x00d4a270, 0x00e8b586, 0x00edb98a, 0x00dea877, 0x00c28c5b, 0x00a7764a, 0x008e6641, 0x0069482a, 0x00331b0a, 0x001b0600, 0x003f2311, 0x0068462e, 0x005f371a,
- 0x005f2f21, 0x0065331a, 0x007d4a2c, 0x007a4a22, 0x00664221, 0x00452e15, 0x00271b0b, 0x00232112, 0x00241d11, 0x002a2212, 0x00221a0b, 0x00221f12, 0x001c1a10, 0x0019150e, 0x00130d0c, 0x000e090b,
- 0x00080709, 0x00060608, 0x00040307, 0x00030305, 0x00040403, 0x00050603, 0x00060705, 0x00070806, 0x00080c08, 0x000a0c09, 0x000c0c0a, 0x000b0c09, 0x000b0d09, 0x000c0e09, 0x000d0f0b, 0x000e0f0c,
- 0x000f1108, 0x0013120c, 0x0015130e, 0x0013120d, 0x0012110c, 0x0014130f, 0x00858683, 0x00f2f1f1, 0x00fdfbfc, 0x00fdfefc, 0x00fdfcfd, 0x00fdfbff, 0x00bdafad, 0x00533e35, 0x00442713, 0x0058381c,
- 0x00764622, 0x00915f37, 0x00966136, 0x00a26b41, 0x00af754a, 0x00b78058, 0x00ad7954, 0x009d6b45, 0x008c583a, 0x0087533b, 0x0089553f, 0x008b5845, 0x00895745, 0x008b5a47, 0x008b5b42, 0x008f6046,
- 0x00a05f33, 0x00a5704c, 0x00ac876a, 0x008f7b66, 0x00534f45, 0x00312f2f, 0x0011111f, 0x00292a4b, 0x00454a8f, 0x00313d8f, 0x002a3798, 0x0026329e, 0x001c2d9c, 0x0017299c, 0x0012289e, 0x000d28a3,
- 0x001a34b3, 0x001a35b1, 0x001631a9, 0x001631a5, 0x001a36a2, 0x001c33c1, 0x001128bc, 0x001d36b7, 0x001d31b2, 0x001a2db1, 0x001526b0, 0x00172aaf, 0x00142aa9, 0x00132da3, 0x001431a1, 0x0015349c,
- 0x00253dc2, 0x003242a9, 0x00121a5e, 0x0003021f, 0x00040100, 0x00000000, 0x00000002, 0x00000004, 0x00000103, 0x00000200, 0x00000304, 0x00000405, 0x0001030b, 0x00010106, 0x00060106, 0x00180f0c,
- 0x002c2112, 0x0029230d, 0x001b1907, 0x00121007, 0x0006040a, 0x00080008, 0x000a0004, 0x000a0002, 0x00060100, 0x00040100, 0x00090500, 0x00453e32, 0x00bbb0b5, 0x00d1c2d7, 0x00c0add1, 0x00b29cc9,
- 0x00eed3ca, 0x00a37c7c, 0x0050333c, 0x0024162e, 0x00191539, 0x00101132, 0x00080b22, 0x000f030f, 0x00260e03, 0x0049280a, 0x00894625, 0x00cb5027, 0x00cb543a, 0x00b46356, 0x00533135, 0x00072338,
- 0x00215a9c, 0x003d66c4, 0x003a54cc, 0x003f53d4, 0x00446ee1, 0x004677e0, 0x004170d5, 0x003b6fcf, 0x003f72d2, 0x004375d6, 0x004573d4, 0x003863c5, 0x00365ac0, 0x003050b6, 0x002741a8, 0x001d369e,
- 0x001845a6, 0x002652b4, 0x003661c3, 0x003862c5, 0x00355ec4, 0x00335ac5, 0x002c52bf, 0x003053c5, 0x003355c9, 0x002c4dbe, 0x002b56c1, 0x002e6dc3, 0x003871d6, 0x003e70e1, 0x004473e5, 0x004973e3,
- 0x004873da, 0x004575d3, 0x00487ad3, 0x00497ed7, 0x004e86e7, 0x004a7ad9, 0x003b64c3, 0x002753b1, 0x00234faf, 0x003561bf, 0x004b77d6, 0x004e7ada, 0x004b76d3, 0x003b66c4, 0x00244eae, 0x001a43a4,
- 0x00274cad, 0x00375cbc, 0x004b6fd0, 0x005479da, 0x005f85e6, 0x005d85e6, 0x005882e1, 0x005380dd, 0x005a86e7, 0x005887e5, 0x004470cd, 0x002a52ac, 0x00113a93, 0x001c429b, 0x003457b1, 0x003d63bc,
- 0x004e71c7, 0x004668be, 0x002d4fa3, 0x001d3e92, 0x00203f93, 0x0058689e, 0x00cdd4f6, 0x00dde6fe, 0x00e5ecf7, 0x00e3e7f1, 0x00dfe0ed, 0x00d2d1e3, 0x00cccbe2, 0x00d5d6ea, 0x00dbdeed, 0x00d8dde6,
- 0x00d7dede, 0x00cfd2e3, 0x00bbbfd4, 0x00b3b7c9, 0x00b8bdbb, 0x00c1c5cc, 0x007c7f9c, 0x002c2b65, 0x00101348, 0x00020a23, 0x0041495b, 0x00808298, 0x008f7d8c, 0x007e5a60, 0x00693536, 0x006e2720,
- 0x00722119, 0x005f150f, 0x00440b04, 0x002d0d04, 0x001c120e, 0x002b0704, 0x002e0807, 0x007e605f, 0x00f4eff0, 0x00f9f8f7, 0x00fcfdfc, 0x00fffefa, 0x00fefaf2, 0x00dad6d3, 0x00747476, 0x006f747a,
- 0x00b1b2b0, 0x00d0d3cb, 0x00868d7c, 0x00374228, 0x0033441e, 0x00374a1d, 0x00384d19, 0x003d511d, 0x00435429, 0x0048562b, 0x0049592b, 0x00475b24, 0x00435621, 0x00445623, 0x00445525, 0x00435322,
- 0x00425229, 0x00415229, 0x0044542e, 0x00425129, 0x003e4c27, 0x003a4739, 0x00343f3b, 0x002d3734, 0x002b3339, 0x00272e39, 0x00222a3b, 0x00192138, 0x00242848, 0x0032355b, 0x00393e65, 0x003e426e,
- 0x00464678, 0x00414071, 0x00313260, 0x001e204c, 0x002b2d51, 0x00686b88, 0x00c5cde0, 0x00dce6ec, 0x00b8c0ba, 0x007e887b, 0x00545b5c, 0x00464d70, 0x0037386b, 0x00282563, 0x00241f5f, 0x00191856,
- 0x004b4a76, 0x00a5a6c5, 0x00e3e4f8, 0x00b9bac7, 0x006e6f82, 0x0063617a, 0x00828096, 0x00b9bac5, 0x00caccd6, 0x009e9eb0, 0x00494764, 0x0028244e, 0x0026224f, 0x00393856, 0x009496a7, 0x00cfd4d6,
- 0x00c5bfcc, 0x00746f79, 0x002b272f, 0x003e3c40, 0x00949492, 0x00c5c7c8, 0x00a5a7af, 0x005c606b, 0x001e223e, 0x001a1c3c, 0x002c2d49, 0x006e7080, 0x00c7c9db, 0x00c7cada, 0x00727787, 0x002b3142,
- 0x00202439, 0x0025273f, 0x0023233f, 0x00232442, 0x00555174, 0x009c9ea8, 0x00bec1be, 0x009b9f9c, 0x0046484a, 0x0030333a, 0x003e424e, 0x004d5161, 0x004e5267, 0x00343b52, 0x00242b43, 0x00242a43,
- 0x001f2450, 0x001f244e, 0x001c2145, 0x001c2243, 0x001c2342, 0x001c2440, 0x001e273d, 0x00192438, 0x001d263a, 0x00202a3c, 0x001a2334, 0x001b2237, 0x00242b3e, 0x002c3344, 0x00323848, 0x00363c47,
- 0x00434c47, 0x00475341, 0x004c5a3e, 0x00495933, 0x00495c2a, 0x00495d33, 0x00485b34, 0x004c6030, 0x00495b2b, 0x00526138, 0x00a5af92, 0x00eef3e4, 0x00fffffe, 0x00fdfcfd, 0x00fefbfd, 0x00fdfbfc,
- 0x00b9adb3, 0x00474350, 0x003d4054, 0x00576083, 0x00495c85, 0x0066739a, 0x009193ad, 0x00a4979b, 0x00b18d61, 0x00b78948, 0x00a87a39, 0x008f6641, 0x0089603c, 0x008e6946, 0x009e7f63, 0x00886b5a,
- 0x0087737b, 0x006b5d70, 0x00574e6f, 0x00585888, 0x00787cb9, 0x003e598c, 0x001a3d71, 0x00193a75, 0x001b3c83, 0x001c3a81, 0x00294489, 0x002d4583, 0x00506787, 0x00869ca6, 0x00b4c8c4, 0x00bdd0ba,
- 0x0099a7d9, 0x007585ab, 0x00647390, 0x00647289, 0x006a7392, 0x006a6e98, 0x006d6d9b, 0x007777a0, 0x00a6a9ba, 0x00b8bcbe, 0x009da5a6, 0x00a6abba, 0x00a8aebf, 0x007c8596, 0x006e7b93, 0x007b89ac,
- 0x006a80bc, 0x005f78bd, 0x007895e3, 0x007193e4, 0x005073c6, 0x004d70d3, 0x004a6ed7, 0x004267cd, 0x003f64ca, 0x003d61be, 0x004062ba, 0x003f5daa, 0x00394f92, 0x00374780, 0x00293266, 0x00151d49,
- 0x00061124, 0x001d2b48, 0x002d3e65, 0x002b3e75, 0x00344895, 0x003e54a6, 0x00314a98, 0x00355198, 0x00788dc8, 0x00778ebe, 0x00465e94, 0x00546cb5, 0x007380ad, 0x0082869f, 0x0094949f, 0x00afadb1,
- 0x00a4a5b4, 0x008f98ad, 0x008c97b3, 0x00616f8d, 0x008589a3, 0x00bbc1ca, 0x00babdc4, 0x00abb0bb, 0x00b7bed4, 0x009ca5bf, 0x00676f8b, 0x00929ab3, 0x00ecf2f8, 0x00fbfcfc, 0x00fefffa, 0x00fffdf4,
- 0x00fafcfa, 0x00f0eae2, 0x00c2b3a5, 0x00a5927f, 0x00715c4c, 0x00483830, 0x003f322f, 0x00413839, 0x00554241, 0x00604a42, 0x00806653, 0x00856748, 0x0075633e, 0x005b5733, 0x009ba289, 0x00e3efec,
- 0x00e4f0fe, 0x00d3e1fc, 0x00bdc7fb, 0x00acb5f0, 0x00a5a9dc, 0x00849cd2, 0x005f81c4, 0x00456cb7, 0x003564be, 0x002859b5, 0x00214ea9, 0x00173d8f, 0x00081956, 0x0004072f, 0x00060318, 0x0013050e,
- 0x00090b09, 0x000c0e0f, 0x00272727, 0x0037393a, 0x002f3138, 0x001c1e28, 0x000e121c, 0x000a0c19, 0x000c0f20, 0x00090d1e, 0x000a0f1e, 0x001a222d, 0x00242c37, 0x00161d2d, 0x001b2032, 0x00202438,
- 0x002a253f, 0x00353246, 0x00535064, 0x009290a0, 0x00b7b5c3, 0x00999da6, 0x00616a74, 0x002f3747, 0x000b1432, 0x00010b2f, 0x00000732, 0x00000838, 0x00020940, 0x00050945, 0x000b0c48, 0x00100f4d,
- 0x00081a45, 0x00213157, 0x00566487, 0x00a1a9c7, 0x00e3e8f7, 0x00f1f4f8, 0x00ececf4, 0x00dbd8e1, 0x00b2a8be, 0x00aa9fba, 0x00c7bed5, 0x00d7d5db, 0x00dadef6, 0x00a2abda, 0x002f3c7e, 0x0014226c,
- 0x001f276f, 0x00303362, 0x003c394f, 0x00443b32, 0x00584522, 0x00614630, 0x00654837, 0x00664b3a, 0x006c5643, 0x0077634e, 0x0082705b, 0x008b7861, 0x00917d62, 0x00927c5d, 0x008f7955, 0x00907750,
- 0x009b744c, 0x00926e4b, 0x007f5f41, 0x006c513b, 0x005c4837, 0x00594636, 0x005b4735, 0x006a503b, 0x007c583e, 0x00835b3c, 0x008c6743, 0x008b7045, 0x009a7852, 0x009a7854, 0x00947350, 0x00886849,
- 0x00745a43, 0x00574634, 0x00908477, 0x00ece8e0, 0x00fcfbfa, 0x00fafdfd, 0x00fbfef9, 0x00fffff4, 0x00e6d6c5, 0x00977e6b, 0x006d523b, 0x0071573e, 0x00745d4b, 0x0079665b, 0x00786a63, 0x00736965,
- 0x006f656f, 0x00726060, 0x0070564e, 0x00714f3f, 0x00704c38, 0x00715342, 0x006d5a4b, 0x00686159, 0x006a757a, 0x006e7f86, 0x006d8ba6, 0x006391cf, 0x00678dc5, 0x006486ba, 0x00557ab4, 0x004674b4,
- 0x003677cb, 0x00367ad2, 0x003c7cd6, 0x00447bd4, 0x004e73bd, 0x00576eaa, 0x005a6fa8, 0x004e6dac, 0x004171c5, 0x003b74cf, 0x003876d5, 0x003979d5, 0x00396dbf, 0x003865a8, 0x00294c87, 0x0043608e,
- 0x004d6898, 0x00385483, 0x00486295, 0x003c558c, 0x001f3871, 0x00122d66, 0x0020376e, 0x00263e71, 0x00142a57, 0x00071b46, 0x00011d48, 0x00032f59, 0x00214776, 0x00324470, 0x00636589, 0x00a18fa5,
- 0x00d3b198, 0x00d8ba91, 0x00d4be98, 0x00c0b9ab, 0x007980a7, 0x00354c5a, 0x000f2527, 0x00061513, 0x00231d0d, 0x003f2d18, 0x00604329, 0x00755235, 0x008d6249, 0x00946a53, 0x009b735e, 0x00a3806c,
- 0x00a9a19d, 0x00c0b6b8, 0x00d9ccd2, 0x00e1d1db, 0x00dacad9, 0x00c3b6c4, 0x00898191, 0x00525365, 0x00505675, 0x00606c91, 0x00666e94, 0x00686d8a, 0x006d6e88, 0x0073778e, 0x00808296, 0x008d8ea2,
- 0x009095ae, 0x00929ebe, 0x008fa0c9, 0x0087a0d2, 0x00809dd9, 0x007497d2, 0x00688cc5, 0x005d7fb3, 0x007486ae, 0x00a4b1cf, 0x00d8dff4, 0x00e9e6f4, 0x00efe4ed, 0x00e1d4da, 0x00c4b7bc, 0x00bbaeb2,
- 0x00dddad6, 0x00f8f6f2, 0x00f2efec, 0x00d8d6d1, 0x00a09e9a, 0x00676662, 0x002c2c29, 0x000e0f0e, 0x000a0a08, 0x00070805, 0x0010100e, 0x0011110c, 0x0013120e, 0x0012110e, 0x000d0c09, 0x000b0a06,
- 0x00040402, 0x00030201, 0x00020100, 0x00010000, 0x00010001, 0x00010001, 0x00767673, 0x00f0efec, 0x00fffefc, 0x00fdfefb, 0x00f9faf9, 0x00f8fbfa, 0x00adb1b5, 0x005b6064, 0x006f727a, 0x0092979e,
- 0x0099866c, 0x008b7757, 0x00a88e69, 0x00c8a979, 0x00dcb27a, 0x00e4b77d, 0x00eabc80, 0x00ecbf88, 0x00e8c08d, 0x00e4bc8e, 0x00e4be8d, 0x00e2ba83, 0x00cbad84, 0x00d2bc9e, 0x00ece2d1, 0x00e7e6df,
- 0x00ebf1f7, 0x00cedae8, 0x005a687d, 0x001a2740, 0x00030c26, 0x0003060f, 0x00070809, 0x00040807, 0x000a0808, 0x00080707, 0x00090707, 0x000b0707, 0x000c0806, 0x00100907, 0x00160c0b, 0x001a0f0e,
- 0x0013180d, 0x00171710, 0x001f1e16, 0x0018100a, 0x00251007, 0x00684b2f, 0x00b18f64, 0x00c39c66, 0x00e4b17d, 0x00edb785, 0x00e2ab7c, 0x00d4a070, 0x00b98657, 0x00b58551, 0x00c6955f, 0x00bb8b55,
- 0x00a4733d, 0x009e6c38, 0x00a16f3d, 0x00b57f50, 0x00d39c6f, 0x00dfaa7a, 0x00d7a16e, 0x00be8753, 0x00a16f43, 0x008e6741, 0x00705037, 0x00331e0a, 0x001c0803, 0x0043281a, 0x006e4c3a, 0x005d361a,
- 0x00501f0b, 0x00704128, 0x00825737, 0x007a5232, 0x005e4224, 0x003a2610, 0x00261b08, 0x00241f0d, 0x00211a0e, 0x00282011, 0x00221b0c, 0x00201d10, 0x001d1c12, 0x0017140d, 0x00120e0b, 0x000d090c,
- 0x000a070a, 0x00070509, 0x00050408, 0x00020305, 0x00020402, 0x00040502, 0x00060705, 0x00080808, 0x00080b07, 0x00090c09, 0x000b0d0a, 0x000b0c0a, 0x000c0c0a, 0x000d0d0a, 0x000e0e0c, 0x000e0e0c,
- 0x000f0e09, 0x0013100b, 0x0015130e, 0x0015120e, 0x00130f0b, 0x000c0a06, 0x00767774, 0x00eceeeb, 0x00fbfafb, 0x00fefdff, 0x00fdfbfe, 0x00fefbfd, 0x00c7b9b7, 0x005d4941, 0x00482b1b, 0x00634329,
- 0x007b4b2d, 0x008f6137, 0x00915e32, 0x009a6237, 0x00ac7344, 0x00af7d54, 0x00a47552, 0x00966746, 0x00895941, 0x0080503b, 0x00804f3c, 0x00845341, 0x00926250, 0x00906150, 0x007f513c, 0x007c5039,
- 0x00a4683c, 0x00a67751, 0x00a68564, 0x0085735c, 0x00413d34, 0x001f1c1f, 0x00060617, 0x000b0c32, 0x002d317d, 0x002e3890, 0x0027339c, 0x002431a5, 0x0019299f, 0x0012259e, 0x001128a3, 0x000f2aa6,
- 0x001532af, 0x001b37af, 0x001230a7, 0x00122ea0, 0x001937a7, 0x002035bc, 0x001b2fb9, 0x001c359d, 0x00162f9f, 0x001e32b4, 0x00172ab6, 0x00162bac, 0x001629a2, 0x001327a2, 0x00132ba0, 0x00152e99,
- 0x002136b0, 0x002d3b9a, 0x00121758, 0x0005021d, 0x00030000, 0x00000000, 0x00000002, 0x00000006, 0x00000203, 0x00000201, 0x00000300, 0x00000303, 0x00000104, 0x00010002, 0x00080202, 0x00180d08,
- 0x00231406, 0x00181101, 0x00080500, 0x00030300, 0x00010207, 0x00030208, 0x00050007, 0x00030005, 0x00010007, 0x00010108, 0x000a0911, 0x00464449, 0x00b0a7b8, 0x00bcb1c5, 0x00b3a3bb, 0x00b19db7,
- 0x00fdf5e2, 0x00f9e6dc, 0x00cfb9b6, 0x00ab9ca5, 0x009a8faa, 0x007c7593, 0x0069647f, 0x00525263, 0x0031333c, 0x0026282a, 0x0042261c, 0x00872a09, 0x00a33c27, 0x008d423e, 0x003c1621, 0x0012253d,
- 0x00325da9, 0x00495fc6, 0x003b50bf, 0x003f52c3, 0x003b72d2, 0x00467cdc, 0x003f73d9, 0x003b70d5, 0x004276dd, 0x00497de5, 0x004374db, 0x003765cb, 0x004268d3, 0x004164cf, 0x002d4bb6, 0x001c38a6,
- 0x001942ad, 0x00244eb9, 0x002e59c2, 0x002e58c0, 0x002e55c0, 0x002e54be, 0x00335ac2, 0x003058c1, 0x003255c2, 0x003859c4, 0x003761c4, 0x003770c0, 0x003d6ed0, 0x003f6cdb, 0x00406ee0, 0x00426be0,
- 0x004872e1, 0x004571d6, 0x004c7bdb, 0x004d80e0, 0x003d75d3, 0x00305fbe, 0x00214aa7, 0x001c48a4, 0x003a62c5, 0x004c73d3, 0x005179da, 0x004b75d5, 0x00315ab8, 0x00224caa, 0x00234fad, 0x00325cba,
- 0x004b6cd1, 0x005578db, 0x00597ee0, 0x00527ada, 0x004b75d4, 0x004772d0, 0x004470cc, 0x004b78d3, 0x005b85e6, 0x004a74d3, 0x00234eab, 0x00163d9a, 0x002c52ae, 0x004168c2, 0x004b75cc, 0x005277ce,
- 0x003c5db8, 0x002d4ca6, 0x001f4196, 0x00234298, 0x00204095, 0x0057679c, 0x00c7d0f0, 0x00dce8fd, 0x00e3e7f5, 0x00e4e7f2, 0x00e5e4f3, 0x00d9d8eb, 0x00c3c2da, 0x00c8cadd, 0x00d3d9e5, 0x00d5dde2,
- 0x00d8dde0, 0x00d4d7e9, 0x00c1c4d6, 0x00b1b4c4, 0x00b0b4ae, 0x00b8bcc1, 0x0083879f, 0x0035366a, 0x0016184e, 0x00040c28, 0x00373c52, 0x007b6d91, 0x007a6279, 0x005c3743, 0x004a1d1c, 0x00542016,
- 0x003a0e07, 0x00240502, 0x00160800, 0x000f1005, 0x00041313, 0x00190a07, 0x00230d0d, 0x00807070, 0x00fcf7ff, 0x00fefbfe, 0x00fcfefa, 0x00fbfcf3, 0x00fdfbf4, 0x00cccac9, 0x00626767, 0x006d7980,
- 0x00bab9b9, 0x00d6d8d2, 0x00868c7b, 0x00364126, 0x002d3e17, 0x00324617, 0x00344a15, 0x00394f1b, 0x00445224, 0x00475328, 0x00465528, 0x00465828, 0x00485a2b, 0x0046582a, 0x00445729, 0x0045582a,
- 0x00475427, 0x00415224, 0x003d501e, 0x003b4d1a, 0x003a4c1b, 0x003d4d25, 0x00465531, 0x00465532, 0x00404c39, 0x003c463f, 0x00384342, 0x002f3943, 0x002a2e49, 0x00272b4b, 0x001e2447, 0x001e234c,
- 0x00242360, 0x0024225f, 0x0024245c, 0x001c2054, 0x002b2d57, 0x0057597b, 0x008d92aa, 0x00a5adbb, 0x00b5bdc3, 0x00b6bebe, 0x00b5c0c5, 0x00b2b9d9, 0x008f94bd, 0x004d4d7f, 0x00222357, 0x001d1e50,
- 0x006c6a8d, 0x00cbcbe3, 0x00d3d4e0, 0x0093959e, 0x0030333f, 0x00252537, 0x003c3b4d, 0x007e7f8d, 0x00dad8e8, 0x00cdcbdf, 0x0067657d, 0x00272442, 0x002d2a49, 0x00696878, 0x00cbcdd2, 0x00dae0d7,
- 0x00c3bbd3, 0x009690a1, 0x0088858f, 0x008b8b8f, 0x00a8aba4, 0x00cacecb, 0x00dde0e5, 0x00a3a7af, 0x003d405c, 0x00262748, 0x0020203f, 0x003f4356, 0x009fa3b3, 0x00d0d5e0, 0x00a4aab3, 0x00515b5d,
- 0x00262835, 0x00222638, 0x00303349, 0x002c304a, 0x00262749, 0x00575e5e, 0x00a8afa3, 0x00d1d6ce, 0x00aaacaa, 0x0092959a, 0x00aaaeb5, 0x00b2b7c0, 0x008f94a3, 0x004f5667, 0x001e2637, 0x001c2337,
- 0x00191f4c, 0x001c234d, 0x001d2549, 0x001d2648, 0x001e2847, 0x001b2541, 0x001f293d, 0x001c2739, 0x001e2a38, 0x0023303c, 0x00263139, 0x00303937, 0x003a4342, 0x003e4943, 0x00444f48, 0x00465348,
- 0x004d5742, 0x004b593e, 0x004b5c33, 0x004c5e2d, 0x004d612b, 0x004c612e, 0x00475b2a, 0x004c602b, 0x00495828, 0x00546139, 0x00a7b095, 0x00eff4e7, 0x00fdfdff, 0x00fefdff, 0x00fbfafa, 0x00fbfcf9,
- 0x00b7b1ab, 0x00575459, 0x005f6975, 0x0070809d, 0x00354b70, 0x00566686, 0x008b91a4, 0x00928c89, 0x0094714b, 0x00a87b42, 0x00b68959, 0x00c09d91, 0x00a08478, 0x00a28f83, 0x00bbb3ab, 0x00a5a5a3,
- 0x00b6bbc5, 0x00a9adbf, 0x00a0a6b9, 0x009fa5c0, 0x00a9a9c9, 0x00596a8e, 0x00314e72, 0x002f4e78, 0x00364f8c, 0x00374e8a, 0x0040588b, 0x00465b88, 0x007f92a1, 0x00bdcec4, 0x00d3e4c9, 0x00cddeb2,
- 0x0092a6d5, 0x00566d99, 0x004c6287, 0x00495e84, 0x00485b89, 0x0049568d, 0x00464e86, 0x0061699d, 0x00bcc5e2, 0x00d3dde8, 0x00b2bdc2, 0x00c9d1de, 0x00bec7db, 0x00636e89, 0x00435372, 0x00516589,
- 0x004e619b, 0x005970af, 0x00718acd, 0x00506ebc, 0x003f5bad, 0x004161ba, 0x003c5cba, 0x003557b1, 0x003651ab, 0x00344fa2, 0x002c4790, 0x001f387a, 0x001f2e61, 0x002f3b68, 0x00343b5c, 0x00212945,
- 0x0033383a, 0x00646a76, 0x00656e87, 0x003c4a74, 0x002a3976, 0x00304283, 0x0035498a, 0x00314585, 0x00405188, 0x00435582, 0x00536896, 0x00758ec5, 0x00a0add6, 0x00a5a5c2, 0x00a3a0b2, 0x00d8d5df,
- 0x00bbbcd0, 0x009faac2, 0x008292b0, 0x003e4e6e, 0x00727b9f, 0x00ccd4e4, 0x00c9d2dc, 0x00b6c3cf, 0x00bdc3e2, 0x00878eb1, 0x00444c6d, 0x007f85a4, 0x00ecf1f9, 0x00fdfeff, 0x00fafff7, 0x00faffef,
- 0x00fcfefc, 0x00eae3dd, 0x00a89b91, 0x00867767, 0x005a4c3e, 0x00362d26, 0x0037322e, 0x00383635, 0x00544747, 0x0066534a, 0x00796555, 0x00735d46, 0x005e4e36, 0x004a4328, 0x006f725a, 0x009ca49b,
- 0x008d95ac, 0x00828aad, 0x00878eb8, 0x00a4a8d8, 0x00cdd1f7, 0x00d7e5fd, 0x00cbdffe, 0x00a8c1f0, 0x006587cf, 0x00395daf, 0x001d4494, 0x000f3582, 0x00041d54, 0x00071036, 0x0004091f, 0x000b050d,
- 0x000d0b0b, 0x00080709, 0x001a1718, 0x002a2a2d, 0x00222329, 0x0010111b, 0x00050810, 0x0004050d, 0x00050717, 0x000f0f1d, 0x00141a28, 0x00192634, 0x001d2838, 0x001c253a, 0x00182136, 0x001e263b,
- 0x002d2f49, 0x0027263a, 0x0019172b, 0x002d2f3c, 0x0072747f, 0x009a9da7, 0x00a3aab6, 0x00757e8f, 0x00232b47, 0x00081133, 0x00030d32, 0x00010b34, 0x00020838, 0x00040838, 0x0007093a, 0x000b083b,
- 0x00162876, 0x00233583, 0x004e60a4, 0x00828fd1, 0x00cad3f7, 0x00e3ecfb, 0x00e5edf7, 0x00e9ecf8, 0x00cfc8e1, 0x009189a7, 0x008b8598, 0x00bcb9b7, 0x00d3d2ea, 0x00b2b6dd, 0x004d568b, 0x00141f65,
- 0x0022296a, 0x00222652, 0x00212137, 0x0026221b, 0x003a3011, 0x00453420, 0x004d3729, 0x005a4535, 0x0069584b, 0x0079675a, 0x00857765, 0x008e7f69, 0x00917d65, 0x008c775a, 0x00877250, 0x008a704e,
- 0x0099704c, 0x00926d4c, 0x00846343, 0x00765a3e, 0x00634b37, 0x005b4330, 0x0059412b, 0x00654831, 0x00764f35, 0x00795334, 0x007a5733, 0x007e5d36, 0x007e5f39, 0x007e603c, 0x00775d39, 0x006f5535,
- 0x00634e37, 0x00493b2a, 0x00867e70, 0x00ebe8de, 0x00fafcf9, 0x00f8fdfa, 0x00f8fef7, 0x00fcfdf2, 0x00e7d7c7, 0x00957d6b, 0x00644b34, 0x00634c30, 0x0063503a, 0x00625243, 0x005c5246, 0x00595148,
- 0x005b554f, 0x00625041, 0x00674831, 0x006b4326, 0x006d462a, 0x006b4e3d, 0x00665851, 0x0061656c, 0x006b7f98, 0x00718daa, 0x00688eba, 0x005388d5, 0x00517fc7, 0x004e7cc3, 0x004a7cc4, 0x00477dc9,
- 0x003b7edb, 0x003978dc, 0x003377d8, 0x003777d3, 0x004676c6, 0x003d76cf, 0x003679d0, 0x003976cd, 0x004578d3, 0x004776d1, 0x003e71c3, 0x004475c3, 0x004073c0, 0x003f73bc, 0x00295ea8, 0x00154f97,
- 0x00304a76, 0x003f5e88, 0x0053709f, 0x004d6595, 0x00364a7d, 0x00415588, 0x00364676, 0x00182d59, 0x001a2755, 0x0022315b, 0x001f3859, 0x00365c77, 0x003b6386, 0x003a568c, 0x006172b1, 0x007d81c8,
- 0x009e94b0, 0x00b0ada2, 0x00b1b399, 0x00bbc5b6, 0x00bac6f7, 0x009ab6d4, 0x005d7b90, 0x00293f4d, 0x001f1f20, 0x00352a22, 0x0055402d, 0x006d5137, 0x0088644b, 0x008f6c52, 0x009e7b63, 0x00b89c84,
- 0x00cac5c9, 0x00ded8dd, 0x00ede6eb, 0x00f2e7f0, 0x00f1e5f3, 0x00ede3ef, 0x00cac2cf, 0x00848391, 0x005e5d72, 0x0068697d, 0x00656678, 0x005d5866, 0x00574d59, 0x00544a53, 0x00574d51, 0x00615759,
- 0x00736976, 0x00828194, 0x009398b3, 0x009dabd0, 0x00a7b8e5, 0x00a7bfed, 0x00a2bee9, 0x009bb5de, 0x009ca7cc, 0x00a2aac6, 0x00c4c8da, 0x00e5e1ed, 0x00f0e5ee, 0x00f1e5eb, 0x00d6cacf, 0x00b1a6a7,
- 0x00c4bfbf, 0x00ece7e7, 0x00fffcfa, 0x00fbfaf7, 0x00e0dfde, 0x009f9f9d, 0x00383a37, 0x000b0b0a, 0x00121011, 0x000f1010, 0x00131412, 0x00191813, 0x00201b16, 0x00201c16, 0x001b1a14, 0x001d1e16,
- 0x00211d1d, 0x001b1817, 0x000d0b09, 0x00030200, 0x00020000, 0x00020001, 0x00767572, 0x00efefeb, 0x00fefefe, 0x00fefefb, 0x00fafcf9, 0x00f8fbf8, 0x00a8abaf, 0x003a3d44, 0x00353a45, 0x003e424f,
- 0x0064492e, 0x00876c4a, 0x00b09269, 0x00c09f67, 0x00d9af72, 0x00ddb273, 0x00e3b87a, 0x00e8c086, 0x00eac190, 0x00e9c296, 0x00e7c18e, 0x00eabd84, 0x00dfbd8f, 0x00e0c7a6, 0x00f8ecda, 0x00fdfbf7,
- 0x00edf3fd, 0x00bac6de, 0x004b5d7b, 0x002a3e60, 0x000f2048, 0x00040c1b, 0x0003080c, 0x0005090b, 0x000b0910, 0x000a070b, 0x000b0709, 0x000c0708, 0x000e0806, 0x00110b07, 0x0015100a, 0x0018120a,
- 0x000e1609, 0x001a1c13, 0x001e1b17, 0x00130a09, 0x00241108, 0x00654b2c, 0x00b18e62, 0x00bd915b, 0x00dca56f, 0x00e0a671, 0x00cd9464, 0x00bb7e52, 0x00955c2d, 0x0085501f, 0x00855021, 0x00764112,
- 0x00784215, 0x00834c1e, 0x00925c2b, 0x00a66b3d, 0x00b4784d, 0x00bf895d, 0x00c28f5d, 0x00af7c47, 0x009e683e, 0x00906744, 0x00705035, 0x00311e0e, 0x00230c07, 0x004a2e1f, 0x0062402e, 0x00542d13,
- 0x005c2913, 0x00895d46, 0x008c684b, 0x0076593b, 0x004e381f, 0x0031200b, 0x00251a07, 0x00231d0b, 0x00251a11, 0x00261f15, 0x00201b0e, 0x00201c0e, 0x001f1911, 0x0018140f, 0x00100f0b, 0x000a0a07,
- 0x000c060f, 0x0008040b, 0x00040307, 0x00010404, 0x00010403, 0x00030604, 0x00070805, 0x00080803, 0x000b0b0a, 0x000b0d0a, 0x000c0e0a, 0x000d0e0a, 0x000e0e0b, 0x000e0f0c, 0x000e100c, 0x000c100a,
- 0x00120e0b, 0x0012100a, 0x0011110b, 0x0012110d, 0x00130e0c, 0x000a0506, 0x00676566, 0x00e9e8e7, 0x00faf9fd, 0x00fdfdff, 0x00fefdfc, 0x00fdfbfd, 0x00d1c3c0, 0x0069584f, 0x00442c1f, 0x00634631,
- 0x007f573d, 0x00916543, 0x008e5d35, 0x00935e32, 0x00a46b3a, 0x00a4724d, 0x00976b4a, 0x00906343, 0x00956651, 0x00946551, 0x008d5e4e, 0x008e6053, 0x00986c5b, 0x0095695a, 0x00714435, 0x006d402d,
- 0x00af7044, 0x00ae7e58, 0x009c7d5d, 0x006c5d48, 0x0025221d, 0x000a060e, 0x000f0d24, 0x00171540, 0x00252679, 0x00262c90, 0x00202a99, 0x00212da0, 0x0017289e, 0x001125a1, 0x000e28a2, 0x000f2da6,
- 0x001631ad, 0x001631aa, 0x001534a9, 0x001e3bad, 0x001535a4, 0x001c2faf, 0x001f2fa3, 0x00233a80, 0x001f3595, 0x002434b6, 0x001629b1, 0x00162ba9, 0x0017299d, 0x0014249f, 0x001224a0, 0x00142698,
- 0x001d2d9e, 0x002a348b, 0x000d1349, 0x00040017, 0x00060000, 0x00010001, 0x00010002, 0x00000106, 0x00030207, 0x00030106, 0x00030301, 0x00000201, 0x00010002, 0x00040000, 0x00170d09, 0x00302118,
- 0x00372818, 0x00231808, 0x000a0600, 0x00030000, 0x0001020a, 0x00040309, 0x00010308, 0x0000020e, 0x0004011e, 0x00030527, 0x000d1134, 0x00404165, 0x00928da7, 0x00a7a1b5, 0x00a8a1ac, 0x00a69ea2,
- 0x00effedb, 0x00f3fde2, 0x00fbfceb, 0x00faf4eb, 0x00f4e5ec, 0x00ecdce9, 0x00e5d3e7, 0x00d4c6e0, 0x00abb0c6, 0x0099a3b5, 0x009a9297, 0x00a37659, 0x00b0685e, 0x009f6267, 0x00623d57, 0x003b4069,
- 0x00405fa1, 0x004a5ab0, 0x00484fb3, 0x004354b4, 0x002e70b5, 0x003b75cb, 0x003f70d6, 0x004172db, 0x00457fe1, 0x004c84e6, 0x004a7ee6, 0x003f6dd9, 0x00466edc, 0x004668da, 0x003652c9, 0x00223cb3,
- 0x00113fae, 0x001944af, 0x001f47b8, 0x002147ba, 0x00254ab6, 0x00274db3, 0x002b52b7, 0x003459be, 0x00335fb8, 0x003d69c3, 0x00416dc1, 0x003c6fb8, 0x003f6dca, 0x003f6ad4, 0x004669df, 0x004c6ce8,
- 0x004672d5, 0x004975d3, 0x004872d1, 0x00446fcf, 0x00305ec0, 0x00214dad, 0x002048a6, 0x002b52b4, 0x00416fc8, 0x004876d0, 0x00446ecc, 0x003961c2, 0x003058ba, 0x003259bc, 0x004066c8, 0x004a72d3,
- 0x004472cd, 0x00426fcb, 0x003f68c7, 0x003960c1, 0x003a64c4, 0x00416ccd, 0x00567fe2, 0x00608bee, 0x004575ce, 0x002557b1, 0x001a45a3, 0x003057b2, 0x004b72ce, 0x005278d2, 0x00496bc6, 0x003c5fb9,
- 0x002c55a6, 0x001c4697, 0x0024469d, 0x002849a0, 0x0025459a, 0x005b6ea2, 0x00c7ccef, 0x00e3e7ff, 0x00dbe6ea, 0x00dee6ed, 0x00e4e6f6, 0x00dcdbef, 0x00c7c6dd, 0x00c2c3d5, 0x00cbcddd, 0x00d1d4e2,
- 0x00cadbd5, 0x00cbd6df, 0x00c5c6dc, 0x00bbb7c9, 0x00b3b3a9, 0x00b7b7b9, 0x00818199, 0x003e3a71, 0x00101a48, 0x00031127, 0x0024263c, 0x00665175, 0x006c4d65, 0x0045242c, 0x00401d19, 0x00391b09,
- 0x001a1400, 0x00181b00, 0x00212512, 0x0022281d, 0x001f282a, 0x0029211c, 0x003e2c2a, 0x009c9295, 0x00f7fbf8, 0x00f7fcf8, 0x00fdfffc, 0x00fcfcf4, 0x00fbfaef, 0x00c5c2bf, 0x00636266, 0x007b818c,
- 0x00b7bdb7, 0x00cdd3c8, 0x00808679, 0x00384229, 0x0032421d, 0x00344819, 0x00374a1c, 0x00435624, 0x00425823, 0x00455726, 0x0046572c, 0x00465630, 0x00485633, 0x00485734, 0x004b5b34, 0x00505d33,
- 0x00435a23, 0x00425820, 0x00425525, 0x00435522, 0x00445621, 0x0043541b, 0x00465723, 0x00495a2c, 0x00455b30, 0x00485c38, 0x004e5e47, 0x004c584f, 0x00444d51, 0x003d4453, 0x00373d54, 0x00313752,
- 0x00242c57, 0x001f2752, 0x00262a58, 0x00212456, 0x001f2553, 0x00232854, 0x00353961, 0x0043496c, 0x004d576e, 0x005f6a7e, 0x007a8499, 0x00919aa1, 0x0081879d, 0x00434864, 0x001e2240, 0x002c2f4b,
- 0x00889294, 0x00ccd7cd, 0x00cdd6cb, 0x00adb5ac, 0x007e847c, 0x007a7d80, 0x008b8d99, 0x00acadb9, 0x00bec5cb, 0x00979daa, 0x004d4e65, 0x0026253b, 0x00474859, 0x009a9ba3, 0x00e1e0e0, 0x00cecfc6,
- 0x009fa1b1, 0x009395a5, 0x00989aa5, 0x009ea0a5, 0x00a8abac, 0x00afb2b3, 0x00cbcfd5, 0x00cbcddb, 0x007c8294, 0x003e425b, 0x00191e39, 0x001b2533, 0x006b7280, 0x00c2c9cf, 0x00ced3d7, 0x009ca1a2,
- 0x006a7870, 0x00758080, 0x00848a99, 0x006e7589, 0x00333759, 0x002b2e39, 0x00727275, 0x00b1b1b9, 0x00b3b9b7, 0x00a1a8aa, 0x00989fa4, 0x008b919b, 0x006b7080, 0x0043475a, 0x0023273e, 0x0020233e,
- 0x00172843, 0x001a2643, 0x001c2745, 0x001c2945, 0x00202b43, 0x001f2b3d, 0x0023303d, 0x002a323e, 0x00253936, 0x00304140, 0x003c4840, 0x003f4d2c, 0x00465634, 0x00485935, 0x004e5a3c, 0x00525e3e,
- 0x00475a2a, 0x00465729, 0x00485a2c, 0x004b5d2a, 0x004a5d26, 0x00465b24, 0x00475c28, 0x004e602d, 0x003f5419, 0x004e5f2f, 0x00a9b498, 0x00f2f5eb, 0x00fdfefe, 0x00ffffff, 0x00fef9ff, 0x00fffdfc,
- 0x00a8b193, 0x00495646, 0x0057676c, 0x006d8099, 0x00405979, 0x004a5c75, 0x0080889a, 0x008a888b, 0x006c5a3b, 0x007d5b33, 0x00a8846c, 0x00c7b1bd, 0x00a99fad, 0x00a3a3af, 0x00aeb7c7, 0x009fafc1,
- 0x00a8c8cd, 0x00a6c3c5, 0x009fb0ba, 0x00a3acb3, 0x00b2b2bb, 0x00617189, 0x003c5477, 0x003e5381, 0x003e558a, 0x003e5589, 0x004c5c90, 0x0053628c, 0x00808d9a, 0x00adb5ac, 0x00c6ccb3, 0x00c2c49e,
- 0x006385a5, 0x00345579, 0x003e5985, 0x0041598e, 0x0039518c, 0x00314785, 0x00324582, 0x0050629c, 0x00a0b7d2, 0x00b1c5d6, 0x008696a4, 0x009babb7, 0x00a0acc5, 0x00495475, 0x003a446d, 0x0056638e,
- 0x00435c82, 0x00516b97, 0x006b81b9, 0x00354c8c, 0x002b428a, 0x002d4996, 0x00364ea1, 0x00394c9f, 0x00284385, 0x00213978, 0x001e326c, 0x00152756, 0x00253156, 0x00606684, 0x0071738d, 0x0041425a,
- 0x00434b3a, 0x00858b84, 0x009195a0, 0x005f6480, 0x003a3f6f, 0x00353f71, 0x00323d77, 0x00202c65, 0x001d3257, 0x00354869, 0x008294b9, 0x009eb4dd, 0x00a7afd4, 0x00a4a4c0, 0x00b6b2c7, 0x00e8e1f2,
- 0x00b1c5ce, 0x009fb7c8, 0x0091a1c0, 0x004d5c80, 0x00737ca7, 0x00bec9db, 0x00bbc1cf, 0x00acb4c9, 0x00aebdd3, 0x007b87a6, 0x0050597b, 0x008d93b7, 0x00ecf2fe, 0x00fbfeff, 0x00fcfefc, 0x00fefef7,
- 0x00f2fbf1, 0x00dddfd6, 0x007f756d, 0x004e3f35, 0x003a322b, 0x00282724, 0x00343437, 0x003b3b42, 0x005a5a51, 0x00655c4f, 0x006c5951, 0x006b5553, 0x0065564c, 0x0050483a, 0x00454136, 0x00413f3a,
- 0x00384540, 0x005c6970, 0x00a2a4bf, 0x00cdd0e9, 0x00eef0fb, 0x00f8f7fb, 0x00faf6fd, 0x00eff0ff, 0x00b6d1ec, 0x0086a8d7, 0x005a7ab2, 0x00284c85, 0x00041a44, 0x00000b26, 0x000c1024, 0x0016111d,
- 0x00020602, 0x00010501, 0x000d0c0f, 0x001c1a20, 0x00191b1d, 0x000c0e13, 0x000f0d1a, 0x0012101d, 0x000d171c, 0x00182027, 0x00242d39, 0x001d3140, 0x0018293c, 0x00142137, 0x0015213a, 0x001d2540,
- 0x00182535, 0x0015212f, 0x000f192b, 0x000b0e20, 0x00262c36, 0x00494a61, 0x00686a86, 0x00626582, 0x002e3d55, 0x00232e49, 0x00192543, 0x00101938, 0x001e2142, 0x003b3c5e, 0x00535678, 0x00505076,
- 0x002244a3, 0x002543a4, 0x002b42a9, 0x002f40a4, 0x007584ca, 0x00bdcdf3, 0x00e1f1ff, 0x00e0ebfc, 0x00d8dfee, 0x00a6aac2, 0x009591a5, 0x00bebab5, 0x00cac7d9, 0x00b4b3d5, 0x00646395, 0x00272965,
- 0x0017234f, 0x00121c3b, 0x00111727, 0x00191917, 0x00242009, 0x002c2110, 0x0039291f, 0x004b3a34, 0x00574f3d, 0x006c6350, 0x007d7261, 0x00887d68, 0x008e7b66, 0x00897257, 0x008d7157, 0x008e6f52,
- 0x008f7043, 0x008b6d45, 0x008a6c4a, 0x00836748, 0x00775c40, 0x006a5036, 0x006c5036, 0x00705036, 0x006c4b29, 0x006b4726, 0x006b4628, 0x00664626, 0x00614423, 0x00614725, 0x00604628, 0x005a3f26,
- 0x0044391c, 0x00312613, 0x00787267, 0x00e9eae3, 0x00fbfcfe, 0x00f9fefc, 0x00fbfffb, 0x00fefef5, 0x00ded6bc, 0x008c7e62, 0x0059442b, 0x00554125, 0x0057422d, 0x00504032, 0x004d3f38, 0x004c423e,
- 0x00484c29, 0x00564924, 0x00664921, 0x00704719, 0x00734c2b, 0x00664e43, 0x0066606a, 0x006a7398, 0x005f84b0, 0x005980b2, 0x00517abb, 0x00447ac9, 0x004378c7, 0x004579c9, 0x004378cd, 0x004278d5,
- 0x002f77cb, 0x003378d0, 0x003978d6, 0x003b78d4, 0x004077cf, 0x002c7be0, 0x00277de4, 0x003179de, 0x003a76bf, 0x004273ba, 0x004f71b9, 0x004d71b6, 0x004375c2, 0x003d79cd, 0x003275d1, 0x001e6aca,
- 0x0022506e, 0x00244c6e, 0x002f4e77, 0x002d4571, 0x00394d79, 0x0053628c, 0x00525d85, 0x00434b72, 0x004b576e, 0x0059647c, 0x0046516b, 0x00495a6b, 0x00506d93, 0x004b6db1, 0x006586e4, 0x006888f6,
- 0x006d93c8, 0x007a9fb0, 0x0087a4a9, 0x008aa4ac, 0x008ea8e5, 0x008bafe0, 0x0084a8d6, 0x00728db7, 0x00596b76, 0x00535656, 0x00554a44, 0x00625240, 0x00796148, 0x008c7357, 0x00af957b, 0x00d4b8a0,
- 0x00d2d7d4, 0x00e0e3dd, 0x00eceaeb, 0x00f0eaec, 0x00f2e8f0, 0x00f1e7f0, 0x00e4dbe7, 0x00b6adb8, 0x00676665, 0x004a4f48, 0x00403738, 0x003c2523, 0x00361c19, 0x0032190d, 0x00391c14, 0x003d211a,
- 0x00382a1a, 0x00433731, 0x00564955, 0x00666172, 0x008483a0, 0x008e9bb4, 0x009fadcd, 0x00a8afcb, 0x008f99a7, 0x00818691, 0x00a4a3b0, 0x00d5d1db, 0x00f3e6ed, 0x00efe3e7, 0x00e8dce0, 0x00bcadb4,
- 0x008d8f88, 0x00bbbcb7, 0x00f5f3f4, 0x00fbf9f8, 0x00f7f4f3, 0x00d3d1d1, 0x00737274, 0x00282825, 0x000e150e, 0x00111a0f, 0x001b1f17, 0x00201d18, 0x00251f1b, 0x0028241e, 0x002f2a27, 0x00413d39,
- 0x003b3f32, 0x003a3930, 0x002c2a25, 0x0016150f, 0x00050000, 0x00010000, 0x00797577, 0x00f4f0f2, 0x00f9fcf4, 0x00f9fcf5, 0x00fafdfa, 0x00f8fdfb, 0x00a6aaad, 0x00292d34, 0x000d1020, 0x00101326,
- 0x0040350c, 0x006e5a31, 0x009c7d54, 0x00b29060, 0x00cda369, 0x00d7ab6e, 0x00e0b378, 0x00e5b885, 0x00dbb981, 0x00ddbc89, 0x00e6be8d, 0x00eebe84, 0x00e7c091, 0x00eaceae, 0x00ffeee1, 0x00fff9fe,
- 0x00dff1f0, 0x00a2b8d2, 0x00556c94, 0x00475f8e, 0x0029427a, 0x0019273f, 0x00090d17, 0x00030511, 0x00000807, 0x00020706, 0x000a0c0d, 0x000c0b0b, 0x00110d09, 0x00160f09, 0x001e1411, 0x001f1313,
- 0x00061a00, 0x000e1906, 0x001c1a13, 0x0017100e, 0x002b1709, 0x0065492c, 0x00b28f65, 0x00b78a56, 0x00c99857, 0x00c18b4d, 0x00bb7e4b, 0x00b47047, 0x00a46339, 0x0091562c, 0x00915631, 0x00905631,
- 0x00895c29, 0x008f5e30, 0x009d623b, 0x00aa6d40, 0x00b27148, 0x00ae7a48, 0x00b4804f, 0x00a86f3f, 0x008c612d, 0x00836036, 0x0065462f, 0x002a1507, 0x00200d08, 0x003e2217, 0x00421d0f, 0x00491e09,
- 0x006a3f1a, 0x00835f3f, 0x00835f4a, 0x00634b36, 0x00372b17, 0x00211803, 0x00241b09, 0x00271c0d, 0x001d1d09, 0x001b1c0e, 0x001f1a11, 0x00201a0d, 0x001d180e, 0x0019150f, 0x00171011, 0x00120c12,
- 0x00030505, 0x00020404, 0x00050408, 0x00050407, 0x00040504, 0x00070705, 0x000a0707, 0x00090707, 0x00040b02, 0x00070c04, 0x000b0e08, 0x000d100b, 0x000c0e0b, 0x000d0e0d, 0x00100e0e, 0x00110f10,
- 0x000a0b00, 0x000a0a00, 0x000f0e09, 0x00100e0c, 0x00100e0c, 0x00060404, 0x005c585c, 0x00e3dee1, 0x00f8fcf6, 0x00fafcf9, 0x00fdfbfe, 0x00fcfcfd, 0x00dacccd, 0x00786864, 0x00442d27, 0x0052362b,
- 0x006c5333, 0x0082603c, 0x008b623d, 0x00926238, 0x009f6839, 0x009f714d, 0x009a7054, 0x00855b41, 0x0079553a, 0x008c6651, 0x009a7163, 0x00a87e73, 0x00a97e74, 0x008e6157, 0x005b2c21, 0x006c3b2e,
- 0x00aa7a44, 0x00a58153, 0x008b6d4f, 0x00473925, 0x000f0b0b, 0x000c0e15, 0x0025223f, 0x002d295b, 0x001b2571, 0x001c2588, 0x001d2697, 0x001b299b, 0x0016269e, 0x0013269f, 0x001229a4, 0x00122da7,
- 0x000c319f, 0x000d309f, 0x001432a8, 0x001836ab, 0x001734a6, 0x00222ea3, 0x002e3695, 0x003f5477, 0x00304c8c, 0x001a30a0, 0x001729b0, 0x0013299e, 0x001a2c99, 0x001523a4, 0x00151ea7, 0x001b1da1,
- 0x00102882, 0x0019296d, 0x00040a37, 0x00020111, 0x00030102, 0x00020100, 0x00040106, 0x0003010e, 0x00000300, 0x00000200, 0x00030000, 0x00020100, 0x00030000, 0x000e0403, 0x003c2829, 0x00614b48,
- 0x004c452d, 0x0029230d, 0x000e0600, 0x00010001, 0x0001000b, 0x00010609, 0x00030910, 0x00040c26, 0x00061543, 0x00131f5b, 0x001c2768, 0x002b3373, 0x00646790, 0x009594aa, 0x00a6a2aa, 0x00aaa49c,
- 0x00f8fcfd, 0x00f9fcff, 0x00f8fdfb, 0x00fafff4, 0x00f9fdee, 0x00fcfeec, 0x00fdfdef, 0x00fcfdf7, 0x00fdf8ff, 0x00fff7ff, 0x00f7f6f7, 0x00e9f2ea, 0x00e8dcdb, 0x00e1d1dc, 0x00d0c6d2, 0x00c3bbd5,
- 0x00afaeda, 0x00a9a5df, 0x008e94d1, 0x007387be, 0x005589ac, 0x005982c2, 0x00587ece, 0x005b82d0, 0x005c86d5, 0x005e89da, 0x005a84db, 0x004f77d3, 0x00385cbc, 0x00395abc, 0x003754b9, 0x002744a9,
- 0x001e3dad, 0x002241af, 0x002847b5, 0x002748b3, 0x002648ad, 0x00284dad, 0x002951ae, 0x00315ab5, 0x003e6ac1, 0x00416bc5, 0x003c66b8, 0x003d6bb8, 0x00426dc4, 0x00446ad1, 0x00496cd5, 0x004b6dd7,
- 0x004d72ce, 0x004f70cc, 0x00405fba, 0x003352b0, 0x002444a9, 0x001d41a5, 0x002950b1, 0x003e63c9, 0x004972d3, 0x00466fd0, 0x003b63c4, 0x00315aba, 0x00385fbf, 0x004168c9, 0x003e66c7, 0x003d64c6,
- 0x002b57b4, 0x002956b3, 0x002751b0, 0x00335dbc, 0x004671cf, 0x005480dd, 0x00628deb, 0x00527edd, 0x002452b0, 0x001e4ba9, 0x003863c0, 0x00567cd6, 0x00577ed8, 0x003d61ba, 0x002a4fa7, 0x00365ab2,
- 0x003758ae, 0x00214499, 0x0028499e, 0x002d4da2, 0x002e4ea3, 0x00687aac, 0x00c3cceb, 0x00dbe4fb, 0x00e0e6f0, 0x00e3e7f0, 0x00e3e4f2, 0x00dddef0, 0x00cacbe2, 0x00bbbed0, 0x00bbc0cc, 0x00c7ced4,
- 0x00c9d6d8, 0x00ccd2e1, 0x00c8c7db, 0x00bebaca, 0x00b7b6a8, 0x00b6b4b4, 0x00787589, 0x00373566, 0x001c2356, 0x000a1432, 0x000b101d, 0x0032292b, 0x0045322a, 0x0039200c, 0x003c2206, 0x003a2502,
- 0x00483303, 0x005a420e, 0x00745023, 0x00864f2e, 0x008e4433, 0x00714932, 0x0076644d, 0x00c4b8aa, 0x00fafefb, 0x00f9fbfd, 0x00fdfbfc, 0x00fffdfb, 0x00f3f2eb, 0x00b3b4ae, 0x00636664, 0x0080898a,
- 0x00c8c7ca, 0x00d5d7d2, 0x007a7f76, 0x002e3a25, 0x002b3e19, 0x0032481b, 0x00354a1d, 0x003c4f1e, 0x00425329, 0x0046542d, 0x0045532f, 0x0042502f, 0x00414f31, 0x00425231, 0x00435430, 0x00465430,
- 0x00465729, 0x0046572a, 0x0045552a, 0x00435426, 0x00435424, 0x0041512b, 0x00435331, 0x00445434, 0x00455631, 0x00495a34, 0x004f5f38, 0x004d5d33, 0x004a5a2f, 0x00495a2d, 0x00495a2c, 0x0046592a,
- 0x00364431, 0x002e3d2e, 0x00303d34, 0x002a3737, 0x00212d3f, 0x00212b4a, 0x001e244f, 0x00181c51, 0x0016175a, 0x001c1c63, 0x0023275b, 0x002b3940, 0x002e384f, 0x001f2644, 0x001e2345, 0x002a2f50,
- 0x0063697a, 0x008b929c, 0x00959ca3, 0x00a4a9b5, 0x00abafbd, 0x00aeb4be, 0x00b1b8c0, 0x00a9b0bc, 0x00797e90, 0x00484c63, 0x0022243b, 0x002a2b3f, 0x007a7e87, 0x00ced3d8, 0x00d6d8d8, 0x00919491,
- 0x0042465f, 0x0040445e, 0x00474a63, 0x004a4d61, 0x0045495b, 0x004b4f5f, 0x007b8090, 0x00babfd3, 0x00c4cae0, 0x007f859e, 0x002e344d, 0x00172237, 0x003c4456, 0x008e95a0, 0x00c6ccd1, 0x00bac0c2,
- 0x00aab0b3, 0x00a9aeb7, 0x00abb0ba, 0x008e97a4, 0x00404a60, 0x00191c43, 0x002e2b5a, 0x004d4b77, 0x0056537c, 0x0046456c, 0x002f3054, 0x00282b4f, 0x0021244a, 0x0021264c, 0x0021264e, 0x001e254c,
- 0x0022313c, 0x00212d37, 0x001e2b34, 0x00212f34, 0x002a3738, 0x002f3e39, 0x0033443b, 0x003a473c, 0x003f513f, 0x00455647, 0x0049593a, 0x004b5e25, 0x00475b23, 0x00445922, 0x00455723, 0x00495c29,
- 0x004b5a2a, 0x004a5a29, 0x00495b29, 0x004a5e2d, 0x004b5e2f, 0x00475c29, 0x00435923, 0x00485c27, 0x0042541d, 0x0055623b, 0x00b1b9a1, 0x00f3f5ee, 0x00fcfcff, 0x00fdfefe, 0x00fefbfb, 0x00fbfcf5,
- 0x0098a589, 0x00334035, 0x00324346, 0x0044586b, 0x00324a65, 0x002d4255, 0x004a5a65, 0x006b7173, 0x0059544f, 0x004c3b3a, 0x00584750, 0x00646282, 0x005b617f, 0x005e698b, 0x00607390, 0x005a758f,
- 0x00698895, 0x0069828c, 0x0064797c, 0x00748380, 0x00929a92, 0x005b6584, 0x0039487a, 0x003c4782, 0x00464e91, 0x00474f93, 0x004c5396, 0x004d528f, 0x00555981, 0x0074758b, 0x009b9aa4, 0x00a6a4a3,
- 0x00576f88, 0x002c4463, 0x00293f68, 0x002d4274, 0x002b4378, 0x00233a6e, 0x00243867, 0x002b3e68, 0x005a6e8b, 0x00677b93, 0x00495665, 0x006e797e, 0x00717a8b, 0x002f3854, 0x00242d4c, 0x00394364,
- 0x002e3f5a, 0x0032435c, 0x0042506e, 0x002a3861, 0x00222e64, 0x00223268, 0x00233466, 0x00202f60, 0x00112049, 0x000c1840, 0x000f193d, 0x001a2341, 0x003b4159, 0x006f7285, 0x006d6e7f, 0x003b3c4b,
- 0x003e3d34, 0x0053544f, 0x00676569, 0x005f5d6c, 0x003b3d53, 0x002a2f48, 0x00202644, 0x00131b3a, 0x00182642, 0x00374566, 0x0073839e, 0x0075889f, 0x00666c83, 0x007b7791, 0x00a09baf, 0x00b9b6c7,
- 0x00909fa7, 0x008595a4, 0x0079879f, 0x00545f7e, 0x005d648c, 0x007c8598, 0x00707a86, 0x00667183, 0x00748198, 0x0067728b, 0x00697289, 0x00979fb7, 0x00e1e7ef, 0x00fbfeff, 0x00f9fbfa, 0x00fefcf9,
- 0x00f9fbfc, 0x00ebe9ea, 0x006a6362, 0x001d1311, 0x00252124, 0x00272b31, 0x002e343f, 0x00545e68, 0x00b6b4b8, 0x00cac3c0, 0x00c2b6b3, 0x00cfc2ce, 0x00efe7ec, 0x00fdf9fc, 0x00fefbfb, 0x00f5f3f2,
- 0x00e2e6de, 0x00edf3ec, 0x00f7fafa, 0x00f8fcfd, 0x00fafcfd, 0x00fdf4eb, 0x00fcf0e1, 0x00fcefe7, 0x00f3f6fb, 0x00e6f2fc, 0x00d4e2ef, 0x00a4b7cf, 0x0056657b, 0x003e4855, 0x00353c44, 0x002b2c30,
- 0x00272424, 0x001a1818, 0x0019151a, 0x0018141a, 0x00111114, 0x00121317, 0x0016161e, 0x001a1b23, 0x0020232c, 0x00272b32, 0x002e3641, 0x00233444, 0x001c2c3e, 0x0018273a, 0x0014253a, 0x0012213a,
- 0x000d1931, 0x000a1729, 0x00091827, 0x00081420, 0x0007131e, 0x00161837, 0x001a193e, 0x002c2a4e, 0x00434864, 0x00414a63, 0x00313c50, 0x00394454, 0x006c7783, 0x00b4bac5, 0x00dadce7, 0x00c7c8d4,
- 0x004e67c9, 0x001d35a2, 0x002037ac, 0x001a2fa8, 0x002a3e9e, 0x007389c7, 0x00c7dcfa, 0x00d4e5f5, 0x00d5deea, 0x00d2d7eb, 0x00c4c1d2, 0x00bfbbbb, 0x00b4b0ba, 0x00adadbe, 0x005d5e78, 0x001a1d3a,
- 0x0011162f, 0x000e1225, 0x000c1019, 0x000e1011, 0x00121406, 0x0015140b, 0x001e1b14, 0x002c2822, 0x00423e36, 0x005a554b, 0x006f665c, 0x007e7465, 0x00897763, 0x00887259, 0x008a6f55, 0x008b6d51,
- 0x008f6e47, 0x008f6f4a, 0x008e6f4d, 0x008b6e4d, 0x007f6645, 0x00775f40, 0x00785d3f, 0x007a5d3e, 0x00715135, 0x0069452a, 0x005d391f, 0x004f3016, 0x00482a11, 0x00482d15, 0x0047301a, 0x00412d1a,
- 0x00332816, 0x0020170a, 0x006b665e, 0x00e5e4e2, 0x00fefdfe, 0x00f9fffd, 0x00f8fef9, 0x00fdfdf3, 0x00dfd5c3, 0x008e7d67, 0x00563f29, 0x004f361e, 0x0048321e, 0x003f3022, 0x00392f27, 0x00393531,
- 0x004c471f, 0x0059461b, 0x00694a1b, 0x007a5223, 0x00735942, 0x0066646c, 0x00657a9d, 0x005b85c1, 0x00487ac6, 0x004370c1, 0x004470bf, 0x004374c2, 0x004274c1, 0x004073ca, 0x003a73ca, 0x003b75cc,
- 0x003d74cb, 0x003d75ca, 0x004076ca, 0x004077ca, 0x003d7cc9, 0x003b7acc, 0x003c79c8, 0x003d77c7, 0x004076c9, 0x004274c9, 0x004574ca, 0x004376cb, 0x003a74c8, 0x003c79cd, 0x003d7bcf, 0x003778ce,
- 0x0031679a, 0x00295a8e, 0x00244e81, 0x00244578, 0x00223b69, 0x0020325e, 0x001c294f, 0x00232e52, 0x00394059, 0x003b415d, 0x00343554, 0x00303255, 0x004359aa, 0x00547cd9, 0x004984d8, 0x004b95d1,
- 0x00519cc7, 0x005b99d7, 0x005f91dc, 0x005f8be3, 0x00618bda, 0x006996e6, 0x007ca9f0, 0x0089b0f4, 0x0093b3e5, 0x0094a9d1, 0x008b9bb1, 0x007f8791, 0x006e6f6a, 0x00888170, 0x00bab19a, 0x00e1d3bb,
- 0x00e8e8eb, 0x00ebe8e8, 0x00eae4e0, 0x00eae5de, 0x00f0e8ea, 0x00f4eaf2, 0x00f0e4ec, 0x00cabbc6, 0x006d6558, 0x00332c14, 0x001b0d00, 0x00210502, 0x002d0d01, 0x003b1602, 0x00411c04, 0x00441d03,
- 0x00401b00, 0x003a1903, 0x002f1302, 0x002e1508, 0x0037241f, 0x00463936, 0x005a5352, 0x00726664, 0x00645c59, 0x005a4f4c, 0x008d8181, 0x00c7bcbf, 0x00e9dcdd, 0x00e9dedc, 0x00e9e1de, 0x00cec3c0,
- 0x007d767b, 0x00837b80, 0x00d2cbd0, 0x00f7f1f3, 0x00fbf6f7, 0x00f2eff1, 0x00c4c2c3, 0x00696965, 0x001d201c, 0x00222722, 0x00252723, 0x0027261f, 0x0027231e, 0x002d2a23, 0x00413f38, 0x005a5850,
- 0x00616158, 0x005f5a55, 0x00514e49, 0x003b3931, 0x00120e0c, 0x00020201, 0x00787677, 0x00f0edef, 0x00fcfcf7, 0x00fcfdf6, 0x00fbfdf9, 0x00f9fcfa, 0x00a6a9af, 0x00252732, 0x00020215, 0x00000017,
- 0x00171003, 0x00302310, 0x00604b30, 0x00927651, 0x00b59060, 0x00c49d67, 0x00d1a96f, 0x00d7b076, 0x00d9b27e, 0x00e0b986, 0x00e9be8b, 0x00efc088, 0x00e8c397, 0x00ecd3b6, 0x00fdf1e2, 0x00fbfbfb,
- 0x00e0f2f8, 0x0096afd9, 0x005675a9, 0x006787c7, 0x006182c9, 0x004c6085, 0x00182231, 0x0003091a, 0x00010b17, 0x00040812, 0x00080a11, 0x000b0d11, 0x000e0d0b, 0x0013100b, 0x0019140f, 0x001e1611,
- 0x00111e07, 0x00151a0c, 0x00201d16, 0x00211917, 0x002b180d, 0x0060442b, 0x00a48059, 0x00ad8150, 0x00bc8a4e, 0x00b57e44, 0x00b07642, 0x00b67852, 0x00b0724c, 0x00b67c57, 0x00c08a66, 0x00b68664,
- 0x00a57751, 0x00976843, 0x0095603e, 0x00a26a43, 0x00aa7047, 0x00ad7949, 0x00a4753e, 0x0093632e, 0x00885a2b, 0x007c5732, 0x00573821, 0x0027110a, 0x001f0d0a, 0x00432920, 0x004d2c20, 0x00552d1b,
- 0x00784a26, 0x00795736, 0x006e523b, 0x00483b2c, 0x001f190e, 0x001d1707, 0x00231a06, 0x00281c08, 0x00221e0d, 0x001c1e16, 0x001d1c17, 0x001f1b0e, 0x001a180d, 0x0016140d, 0x00110f0d, 0x000d0b0b,
- 0x00070609, 0x00050507, 0x0006040a, 0x00050307, 0x00020402, 0x00040602, 0x00060704, 0x00060904, 0x00070c07, 0x000a0d09, 0x000d0e0b, 0x000c0c09, 0x000c0d0a, 0x000c0d0a, 0x000e0e0b, 0x000e0f0b,
- 0x000f0c07, 0x000d0b06, 0x000d0b09, 0x000d0c0b, 0x000b0a08, 0x00030201, 0x004e4c4d, 0x00cecbcd, 0x00fdfefc, 0x00fefdfb, 0x00fdfbfc, 0x00fdfbfa, 0x00e6dcdb, 0x00877b7d, 0x003a2a2a, 0x003d292a,
- 0x00594436, 0x00826250, 0x008b664c, 0x00996c4e, 0x00a3704b, 0x00a07554, 0x009d7759, 0x00744c34, 0x00532b16, 0x006d4332, 0x00794e42, 0x007f5447, 0x007b5043, 0x0062352a, 0x00512216, 0x007c4b3e,
- 0x00b38055, 0x00a9825d, 0x006e5238, 0x00231809, 0x00000100, 0x000a0c19, 0x00272646, 0x00302d63, 0x00171b70, 0x00191e89, 0x001d2596, 0x001a269a, 0x001a299c, 0x00182b9d, 0x00182f9f, 0x001732a5,
- 0x001030a3, 0x001431a6, 0x001430a3, 0x001630a7, 0x00172fa5, 0x002b2891, 0x00535186, 0x007c8971, 0x005a6e90, 0x00253597, 0x0013239e, 0x0010288b, 0x00182b85, 0x001a219a, 0x0013149a, 0x00161490,
- 0x00182871, 0x00192257, 0x00010520, 0x00000002, 0x00020000, 0x00000101, 0x00000103, 0x00000107, 0x00000103, 0x00020100, 0x00050000, 0x00070400, 0x00050000, 0x00190f0f, 0x00655557, 0x00867375,
- 0x00594a47, 0x00281d1f, 0x00020007, 0x00010313, 0x00030326, 0x00030d26, 0x0000142c, 0x000d224c, 0x00283c82, 0x00344497, 0x0029368c, 0x001c2677, 0x0050578b, 0x008f94ac, 0x00a0a5a6, 0x00aaaf9e,
- 0x00fcf5ff, 0x00fef7ff, 0x00fbfafd, 0x00fbfcf7, 0x00f6fef7, 0x00f6fef3, 0x00f6fdf1, 0x00fafdf3, 0x00fdfffc, 0x00fcfef7, 0x00fafcfa, 0x00f8fefd, 0x00f5fbfd, 0x00f8fbfc, 0x00f7f9fa, 0x00f9f3fa,
- 0x00f6effe, 0x00eeefff, 0x00dee8ff, 0x00ceddf7, 0x00c3d7e9, 0x00bfd3f1, 0x00b6ccf4, 0x00abc3ed, 0x009db4e7, 0x008da8dc, 0x007c9ad2, 0x006381bd, 0x00365294, 0x00314990, 0x00324994, 0x00273c8a,
- 0x00253c9b, 0x0028429f, 0x002d48a5, 0x002a46a3, 0x002845a3, 0x002a49a9, 0x003355b5, 0x003b61bf, 0x004069cc, 0x003f69c9, 0x003b68c6, 0x003d6abe, 0x00406bce, 0x00476fd1, 0x004870d6, 0x004870d1,
- 0x004669c2, 0x004060b7, 0x00304ea9, 0x002640a1, 0x00253dad, 0x002648ad, 0x00355dbf, 0x004b6fd0, 0x004a74d4, 0x003f66c7, 0x00385ebf, 0x00335aba, 0x002e52b3, 0x002a50b1, 0x00234aab, 0x002248a9,
- 0x002653b2, 0x002b59b8, 0x003e6ccb, 0x004e7ada, 0x005f8ceb, 0x006691f0, 0x004d77d7, 0x002a56b6, 0x002551b0, 0x003b67c5, 0x00537fda, 0x004f75ce, 0x003157b1, 0x002b4da8, 0x00365cb5, 0x004569c2,
- 0x00284da2, 0x00284da3, 0x002a4ba0, 0x00234497, 0x003754ab, 0x007586bc, 0x00c5cdee, 0x00dae3fa, 0x00e2e9f3, 0x00dee3ed, 0x00e1e2f0, 0x00dfdef2, 0x00d2d1ea, 0x00bcbdd1, 0x00b3b8c4, 0x00bec4ca,
- 0x00c4cdd4, 0x00c9cee0, 0x00c7c7db, 0x00c2becd, 0x00bebaac, 0x00b9b3b4, 0x00726d80, 0x002f2a5c, 0x001f2158, 0x000b1632, 0x00040c17, 0x00111516, 0x002a1c19, 0x0032190b, 0x004a260f, 0x0057320e,
- 0x00684713, 0x007a5620, 0x00946330, 0x00a66437, 0x00ad5933, 0x0089542c, 0x009f7f5c, 0x00e3d0b7, 0x00fffefd, 0x00f8fafd, 0x00fcffff, 0x00fcfcfa, 0x00eae9e5, 0x00a3a29d, 0x00696c67, 0x008b918d,
- 0x00cecdd2, 0x00d9dadb, 0x00797e76, 0x00293421, 0x00273717, 0x00344721, 0x0035471e, 0x00394a21, 0x00415028, 0x0045522e, 0x00465431, 0x0045542f, 0x0044532f, 0x0042532e, 0x0042542c, 0x0044542d,
- 0x0045552a, 0x0044542a, 0x00445428, 0x00445629, 0x00475928, 0x00455634, 0x00465635, 0x00475733, 0x00465531, 0x0047562e, 0x0049592e, 0x00475828, 0x00475925, 0x004b5e27, 0x004d6227, 0x004c6123,
- 0x0043562a, 0x003b4e27, 0x00425331, 0x00445438, 0x003c4b3f, 0x00374343, 0x00323d48, 0x00313a4f, 0x002c3455, 0x00262d51, 0x00222a49, 0x00212c3c, 0x00202945, 0x0020254d, 0x0020254f, 0x001f244d,
- 0x002b2d51, 0x00373c58, 0x00414464, 0x00494a69, 0x004d4d79, 0x004c5468, 0x004e5767, 0x004a5269, 0x00303557, 0x001d2246, 0x001c1f42, 0x002c2e4b, 0x0071758a, 0x009ea1b3, 0x008c8d9d, 0x00535463,
- 0x00202742, 0x001f2643, 0x00212745, 0x00202644, 0x001b2040, 0x00191f3e, 0x00363d5a, 0x006a718e, 0x009297b4, 0x00757a92, 0x003e445d, 0x00222b4e, 0x00242b4a, 0x00474c6a, 0x0062657d, 0x00606379,
- 0x00616176, 0x00515566, 0x004c5164, 0x00424b5e, 0x00283447, 0x0021274c, 0x00232055, 0x001f1f4f, 0x001e1f44, 0x00191d3c, 0x00171d38, 0x001b233a, 0x0020293e, 0x0020293e, 0x00222c42, 0x00242e44,
- 0x002b3931, 0x002d3c31, 0x00324233, 0x00394836, 0x003c4a36, 0x00404e37, 0x00425137, 0x00455538, 0x004d5c3e, 0x004c5e3c, 0x00475933, 0x00485b2a, 0x00465826, 0x00435520, 0x00425422, 0x00465a27,
- 0x004c5d2e, 0x004a5c2d, 0x00485c2d, 0x004a5c2f, 0x004d5d33, 0x004a5c30, 0x00445928, 0x00455927, 0x00445425, 0x00576341, 0x00b5bca8, 0x00f5f6f2, 0x00fbfbff, 0x00fefeff, 0x00fffcf9, 0x00fbfbef,
- 0x00929988, 0x00242d28, 0x001d2431, 0x00232e48, 0x002f384e, 0x002c3742, 0x00283236, 0x00444b47, 0x00555555, 0x003b3843, 0x002c2b3c, 0x002b3349, 0x00343c53, 0x003d455d, 0x0039445a, 0x0038455a,
- 0x003c475c, 0x003c4858, 0x00424b54, 0x00485354, 0x00576260, 0x00424963, 0x003c406a, 0x003e4371, 0x003e4376, 0x003e4578, 0x00454c7c, 0x003f4571, 0x0036395a, 0x0044445c, 0x00616071, 0x006d6c77,
- 0x00545d6c, 0x002f3a4d, 0x00293350, 0x00253255, 0x00213155, 0x00203151, 0x0021304a, 0x00202f43, 0x002a3247, 0x002c3247, 0x00343644, 0x004c544e, 0x00474c59, 0x00272d41, 0x0020243e, 0x001a2139,
- 0x001f2735, 0x00141d24, 0x001c2530, 0x001a253a, 0x0022264e, 0x001c2444, 0x0018213d, 0x00101a33, 0x000a1129, 0x000e142a, 0x001c2035, 0x002b2f42, 0x003b3e4f, 0x00424455, 0x003a3c4c, 0x002e3141,
- 0x002f2f33, 0x0028282a, 0x00313131, 0x003d3e41, 0x002a2b2c, 0x001d1f29, 0x00222733, 0x002c3044, 0x00282e49, 0x002c3752, 0x00404a63, 0x003e5157, 0x00454858, 0x005f5f6d, 0x007b7689, 0x007d7b89,
- 0x0059616a, 0x004f5d65, 0x00525f6d, 0x00485266, 0x004f4d70, 0x00474e61, 0x00424d5a, 0x003e4c58, 0x00404c5a, 0x003c4853, 0x005e6774, 0x00808894, 0x00d2d5dd, 0x00f9f8fb, 0x00fcfafd, 0x00fdf7fb,
- 0x00fbf9ff, 0x00efebf1, 0x00716b6f, 0x001d1718, 0x003e3c44, 0x00484e5b, 0x003e4857, 0x006a7786, 0x00e9eaf0, 0x00faf8f6, 0x00faf5f5, 0x00fdf7fe, 0x00fffdff, 0x00fdfafe, 0x00fffbfd, 0x00fdf8fb,
- 0x00fefefe, 0x00fbfdf7, 0x00fafdf9, 0x00fafefb, 0x00f6fefc, 0x00fdfdf5, 0x00fcfcf2, 0x00fdfdf6, 0x00fffdff, 0x00fcfefe, 0x00fafdfe, 0x00f3fafe, 0x00e1e6f0, 0x00e0e3e7, 0x00dddddf, 0x00d6d3d2,
- 0x00cdc9cc, 0x00c1bfc2, 0x00c3c0c4, 0x00b9b5bb, 0x00aca9af, 0x00a19ea5, 0x00939199, 0x00888890, 0x007b7b83, 0x0072767e, 0x006a6e75, 0x00545c64, 0x00484e5a, 0x00404653, 0x00313846, 0x00242b3d,
- 0x001d2337, 0x00192130, 0x000d1826, 0x000a131f, 0x0006111a, 0x0014152f, 0x001a1936, 0x001f1f3a, 0x00454a5d, 0x004c5565, 0x00333c49, 0x0038404a, 0x006c747d, 0x00b8bcc5, 0x00f2f2fa, 0x00eff0f6,
- 0x0099aee7, 0x00394c98, 0x00162885, 0x0022319e, 0x00182684, 0x00324284, 0x00a3b2d7, 0x00d0dded, 0x00c7ccd4, 0x00c7c9d7, 0x00b8b5c3, 0x00b2aeb4, 0x00a8a5b1, 0x00909197, 0x00363940, 0x000a0e18,
- 0x000e111a, 0x000b0f13, 0x000b0f0e, 0x000c100d, 0x000f120c, 0x0010120c, 0x00141410, 0x001a1a14, 0x002b2b26, 0x00423f37, 0x005b544c, 0x006d6258, 0x00826e5d, 0x00836b56, 0x00886a54, 0x008a694e,
- 0x008f6d50, 0x008c6d4e, 0x008e6f4f, 0x008b6e4c, 0x00836a47, 0x007e6645, 0x0084694b, 0x0085694b, 0x007d5d44, 0x006d4d34, 0x005c3c27, 0x004f301d, 0x00482a19, 0x00472c1b, 0x0044301e, 0x003d2e1d,
- 0x0031261e, 0x0019130d, 0x00686562, 0x00e5e2e7, 0x00fffefe, 0x00f8fefe, 0x00f8fffd, 0x00fcfcf7, 0x00e2d6c8, 0x008e7d69, 0x0057422d, 0x004f3823, 0x00402c1d, 0x0032251a, 0x00302923, 0x00322f2d,
- 0x004a3d22, 0x005d4520, 0x006f4f27, 0x007a552f, 0x00786965, 0x0072809a, 0x005e87bb, 0x004381c9, 0x003873c7, 0x003a71be, 0x004071bf, 0x004073bc, 0x003e73c9, 0x003d75c9, 0x003a73cc, 0x003c72c8,
- 0x004175c7, 0x004174c2, 0x004276c3, 0x003f79be, 0x003b7bc4, 0x004077bd, 0x004575bf, 0x004475c2, 0x003f75cc, 0x003c75cf, 0x003d78d3, 0x003e78d7, 0x003e77ce, 0x003f76c9, 0x004075c2, 0x003e73bd,
- 0x004078bf, 0x003b71b8, 0x002e5fa2, 0x00275095, 0x00224281, 0x001f3977, 0x00132c61, 0x001b3366, 0x00263c6a, 0x00233c67, 0x00304679, 0x003f4e8e, 0x004569c0, 0x004d7dd2, 0x004d89d5, 0x004d92c7,
- 0x005c98cd, 0x005f95e2, 0x006190f3, 0x005989ed, 0x005388e0, 0x006191e2, 0x00719de8, 0x0073a1eb, 0x0080acee, 0x0092bbf6, 0x009ec2f2, 0x00a1bfe1, 0x009babbd, 0x009fa7a9, 0x00c3c1be, 0x00e5ddd6,
- 0x00f1e8f4, 0x00f0e7eb, 0x00efe8e4, 0x00eee8e3, 0x00efe5e7, 0x00f2e3f2, 0x00f0e1ef, 0x00ccbcc7, 0x00706356, 0x0035270d, 0x002b1a00, 0x002e1200, 0x003d1e00, 0x004f2c04, 0x00623f0f, 0x006e4715,
- 0x00643b0d, 0x0059340d, 0x004b2c0b, 0x003d1d06, 0x00331a06, 0x003f220f, 0x00553c27, 0x006b4f3c, 0x005c4435, 0x00462f21, 0x00746054, 0x00ac9a92, 0x00d2c2bc, 0x00d5c7c2, 0x00e3d6d2, 0x00d9ccc7,
- 0x009d919a, 0x006d626a, 0x00a39aa1, 0x00ded6dc, 0x00f1ecee, 0x00f1edee, 0x00e9e6e5, 0x00adaba9, 0x00484641, 0x002a2824, 0x002d2b27, 0x002b2921, 0x002e2a25, 0x00343029, 0x004d4841, 0x00625e56,
- 0x0063625b, 0x0064605b, 0x0064605a, 0x0058554d, 0x002a2520, 0x00070505, 0x00797677, 0x00efeeed, 0x00fbfbf9, 0x00fbfcf4, 0x00fafcf4, 0x00fafcfa, 0x00aaabb4, 0x002b2d3c, 0x00090b20, 0x00060821,
- 0x0008050c, 0x00090501, 0x00291f10, 0x0059482d, 0x00977a52, 0x00b18c5c, 0x00c49a64, 0x00cfa16c, 0x00d6ab74, 0x00dbb07b, 0x00e7b989, 0x00edbe8e, 0x00e1be97, 0x00e2cbb2, 0x00f9f0e3, 0x00f7fcfe,
- 0x00d9edfc, 0x008ca8d5, 0x002c4d8a, 0x003f61a9, 0x007498e9, 0x008da3cd, 0x00617089, 0x0024374b, 0x001c2c3c, 0x0025323e, 0x00151d27, 0x00080d14, 0x00090c0e, 0x00141311, 0x00181410, 0x001a1510,
- 0x00171f06, 0x00171b0b, 0x0025211a, 0x00241b1a, 0x0028120c, 0x00432613, 0x008d6b46, 0x00ab8252, 0x00ba8755, 0x00b8834f, 0x00b57f4d, 0x00aa714d, 0x009a6844, 0x008c6240, 0x008d6744, 0x00937052,
- 0x008e6c4b, 0x007e5c39, 0x00724a29, 0x00754a26, 0x009b6c44, 0x00b48454, 0x00a67541, 0x0090602d, 0x0087592c, 0x00734f2b, 0x004e2e16, 0x001c0806, 0x001e0d0b, 0x00593f3a, 0x0075554a, 0x00714938,
- 0x00834d2a, 0x00745034, 0x00584230, 0x002c2719, 0x001a1a0e, 0x00201b08, 0x00251b08, 0x002b1f09, 0x00262012, 0x001c211a, 0x001c1f19, 0x00201c0e, 0x001d180f, 0x00181310, 0x00140d0d, 0x000f0a0a,
- 0x00080709, 0x00050507, 0x00060509, 0x00060408, 0x00040504, 0x00050704, 0x00060705, 0x00070706, 0x00080c07, 0x00090d08, 0x000d0d0a, 0x000d0c09, 0x000d0e0c, 0x000d0e0c, 0x000f0f0d, 0x000e100e,
- 0x00120e0b, 0x000d0b07, 0x000c0c09, 0x000c0c0a, 0x000a0807, 0x00050204, 0x00454046, 0x00beb9c0, 0x00fffdff, 0x00fdfdfd, 0x00fffdff, 0x00fffdfd, 0x00eae3e7, 0x00918890, 0x00372c32, 0x00382c32,
- 0x00604b4e, 0x008a706b, 0x008e6d60, 0x00956e5b, 0x009f7056, 0x00a1795a, 0x00a17b5b, 0x00876046, 0x00562d1b, 0x00471c0d, 0x00502216, 0x00532318, 0x005a291f, 0x0065342a, 0x00723f35, 0x00956156,
- 0x00b88261, 0x00ae8468, 0x00644a34, 0x00190c07, 0x00030505, 0x00060514, 0x00191939, 0x001f1d50, 0x0015166c, 0x00181d84, 0x001c2494, 0x00192390, 0x001a2798, 0x001c2c98, 0x001d309d, 0x001b31a0,
- 0x001532a4, 0x001531a5, 0x00132ca5, 0x00152ca4, 0x00172ba6, 0x0030278d, 0x006c5a89, 0x00a1a678, 0x00788698, 0x0039439e, 0x002831a8, 0x001d3186, 0x001e3273, 0x001a2188, 0x00131485, 0x00181780,
- 0x001d2860, 0x0013193f, 0x00010215, 0x00010000, 0x00020000, 0x00000000, 0x00010205, 0x0002030b, 0x00000105, 0x00010001, 0x00030000, 0x00040402, 0x00040107, 0x0017121e, 0x005e5664, 0x00736877,
- 0x00403948, 0x00110e22, 0x00000320, 0x000e1542, 0x001b2463, 0x001a2c64, 0x00132a5f, 0x001c2f69, 0x0034488c, 0x003d4e93, 0x00374588, 0x00444c8b, 0x007a7ea8, 0x00a1a1bd, 0x00aeadb9, 0x00aaa8ac,
- 0x00f6f6f8, 0x00fbf9fd, 0x00f9fbfb, 0x00fcfefe, 0x00f7fcfa, 0x00f4fbf7, 0x00f4fdf3, 0x00f6fdf4, 0x00f9fff5, 0x00fefff8, 0x00fafdf8, 0x00fbfcff, 0x00f0fdfa, 0x00eafdf2, 0x00f1fcef, 0x00fdfbf6,
- 0x00fff9fd, 0x00f8fcfd, 0x00f2fffe, 0x00f4fdfd, 0x00fbfafc, 0x00f9fdfb, 0x00f3fffb, 0x00f2fdfa, 0x00e9f4fd, 0x00dfedfd, 0x00d2e3fb, 0x00bbcdef, 0x00a2b2de, 0x0095a4d6, 0x00818fc5, 0x006e7cb5,
- 0x005769b0, 0x004b61aa, 0x00384f99, 0x002d4796, 0x002c49a0, 0x002e4fab, 0x00365ab9, 0x003a61c4, 0x003b63ce, 0x003b66d3, 0x003d6cd1, 0x003b6cc8, 0x003b6bce, 0x003e6dd1, 0x003e6bcb, 0x003b66c4,
- 0x003258ac, 0x00284b9f, 0x001e3e95, 0x001d379d, 0x002e44b8, 0x003d5ec6, 0x004871d0, 0x005075d6, 0x00466acd, 0x003b5ec1, 0x002e53b4, 0x00254bab, 0x002046a6, 0x00274cad, 0x003055b7, 0x003a5fc1,
- 0x004573d2, 0x004d7cdb, 0x005d8cec, 0x006291ef, 0x005c89e8, 0x004b78d6, 0x002f5ab9, 0x002b57b6, 0x004b78d7, 0x005580df, 0x00436fcc, 0x002a51ab, 0x001b419c, 0x003d60bb, 0x004e72cc, 0x003054ac,
- 0x0022459b, 0x003152aa, 0x001e4096, 0x00234499, 0x004364bb, 0x007b8ac1, 0x00c2ccec, 0x00dbe2fb, 0x00dde2ed, 0x00d8dbe5, 0x00dddceb, 0x00dcdaee, 0x00d7d6ee, 0x00c1c3d7, 0x00afb6c2, 0x00b5bec4,
- 0x00c0ccd0, 0x00c8ccdd, 0x00c8c7dc, 0x00c7c1cf, 0x00c0beb1, 0x00bab1b2, 0x006b6478, 0x00272053, 0x001a1e52, 0x000d1737, 0x00020e1d, 0x00031119, 0x001c0f16, 0x00301014, 0x004d1f1a, 0x00642f21,
- 0x00734d28, 0x00896337, 0x00966d3a, 0x00a67646, 0x00ab6b38, 0x00905f2d, 0x00b89264, 0x00f0ddbc, 0x00fdfdf8, 0x00f9fafb, 0x00fbfcfc, 0x00fffefc, 0x00e0dcda, 0x0090908a, 0x006d7167, 0x00959b94,
- 0x00d8d4df, 0x00d8d7dc, 0x00787c78, 0x00354030, 0x00304222, 0x003a4e29, 0x003e5129, 0x0044552d, 0x004a5933, 0x004d5b3b, 0x004e5c3a, 0x004b5b31, 0x0048582e, 0x0045562c, 0x00445429, 0x00445328,
- 0x00425328, 0x00405126, 0x003d4f23, 0x003c4f21, 0x003f5322, 0x00405326, 0x0044562b, 0x0046582c, 0x00445529, 0x00435527, 0x0048592a, 0x004e5f2e, 0x00495a29, 0x00465725, 0x0041521e, 0x003d4f19,
- 0x00394f22, 0x00394d22, 0x0043562c, 0x00475a33, 0x00445732, 0x00445638, 0x0043553b, 0x0040503d, 0x003e4b41, 0x003b4a3f, 0x003a4942, 0x00334143, 0x002d384b, 0x002e3853, 0x0027304d, 0x00252c4b,
- 0x0021253f, 0x001a2038, 0x00191e39, 0x00191c3c, 0x001c1d4a, 0x0018213d, 0x00121e37, 0x00121b3f, 0x00151a4a, 0x00181b4d, 0x00252857, 0x0024284d, 0x00303352, 0x00313450, 0x002d2f4e, 0x00232443,
- 0x001d2744, 0x001e2846, 0x001c2545, 0x0020284e, 0x00232a56, 0x00242b58, 0x00232c53, 0x00232d4f, 0x00293150, 0x002c354a, 0x00273049, 0x001c264f, 0x001b2248, 0x001c2048, 0x00191941, 0x001a193e,
- 0x00252243, 0x0020213d, 0x00191c36, 0x00182038, 0x0019263a, 0x001d2545, 0x0024274c, 0x00212746, 0x001d243a, 0x001f2937, 0x00253237, 0x00293836, 0x00304139, 0x002c3d36, 0x002e3f3a, 0x003b4e47,
- 0x003b4a30, 0x00405034, 0x00475738, 0x00465634, 0x00435330, 0x00465531, 0x0043522c, 0x0046572f, 0x004d5d30, 0x004c5d32, 0x0044562c, 0x0043542f, 0x0044532d, 0x00414f28, 0x00415026, 0x0045552e,
- 0x0047592e, 0x00475a2d, 0x0045572d, 0x0043532b, 0x0046552d, 0x0045562d, 0x0042562b, 0x0044592b, 0x0045562e, 0x005c674a, 0x00b6beab, 0x00f5f7f4, 0x00fafafc, 0x00fefefd, 0x00fffdf9, 0x00f9f8ec,
- 0x0090918f, 0x0023262d, 0x00191b2a, 0x0026263e, 0x00373647, 0x003a3d3f, 0x00363b33, 0x003a4535, 0x00363c3c, 0x00212936, 0x00192432, 0x001b292f, 0x00262e35, 0x002e343e, 0x00383948, 0x003c3a4d,
- 0x00444556, 0x003d3a4b, 0x002f333f, 0x00262b35, 0x00232c34, 0x00282d39, 0x002a3345, 0x002b3245, 0x0020293b, 0x001d273b, 0x00273143, 0x002b3446, 0x00262a3a, 0x00262734, 0x002f313a, 0x00393b41,
- 0x00353538, 0x00292931, 0x00303141, 0x002f3247, 0x0024293e, 0x001d2232, 0x001d212a, 0x0024272b, 0x00201d27, 0x001a1224, 0x001a181f, 0x001e241a, 0x00272d32, 0x0016182b, 0x00121629, 0x0019192c,
- 0x001a1f1d, 0x00151814, 0x000d1313, 0x00141821, 0x00171833, 0x00191a2a, 0x0011151e, 0x0011151f, 0x001d1e27, 0x00272730, 0x002a2a34, 0x00262631, 0x0021212f, 0x00282939, 0x002b2d3f, 0x00282b3e,
- 0x00343140, 0x00404049, 0x003c3c3f, 0x00333432, 0x0035372d, 0x00343732, 0x00303532, 0x0032383d, 0x001e2537, 0x00232a42, 0x00212a3c, 0x00253736, 0x002b3138, 0x00312f3a, 0x003b3647, 0x00413f4a,
- 0x00212c2b, 0x00212d2d, 0x002c383f, 0x002c3343, 0x00251f3f, 0x001e2035, 0x001b2634, 0x00212c34, 0x002a353a, 0x00202b2d, 0x0040494a, 0x00717879, 0x00c8cace, 0x00f7f6f9, 0x00fefdfd, 0x00fdf8fc,
- 0x00fcffff, 0x00f3f1f8, 0x00757177, 0x00272329, 0x0062646f, 0x00687381, 0x004d5a6e, 0x00778696, 0x00eceff6, 0x00fdfdfd, 0x00fbf8f6, 0x00fdfbf5, 0x00fdfcfc, 0x00fbf9ff, 0x00fffdff, 0x00fcf8ff,
- 0x00f6f6f4, 0x00fafaf7, 0x00fdfef9, 0x00fcfefd, 0x00f8fcfe, 0x00fafcf8, 0x00f7fcf5, 0x00f9fdfb, 0x00fdfbfb, 0x00fdfbfd, 0x00fbf8fc, 0x00fdfafc, 0x00fcfcfd, 0x00f9faf8, 0x00faf8f8, 0x00fefefa,
- 0x00fefcfd, 0x00fefbfe, 0x00fffdfe, 0x00fffdfd, 0x00fdfbfd, 0x00fcfbfc, 0x00fffffe, 0x00feffff, 0x00fdfcfe, 0x00fdfcfe, 0x00fcfefe, 0x00f9fafb, 0x00f6f9fc, 0x00f3f4f9, 0x00eaedf4, 0x00e5e9f2,
- 0x00d3d7e4, 0x00d0d5e1, 0x00bbc3ca, 0x00abb2b6, 0x009da5a5, 0x009a99a5, 0x009998a9, 0x00858999, 0x00858b97, 0x00878f98, 0x006c757c, 0x00677075, 0x00767c84, 0x009ea2aa, 0x00d5d6de, 0x00edeef4,
- 0x00d2e3e9, 0x008794bb, 0x002e3a7d, 0x00202985, 0x001e267c, 0x001b2564, 0x006f7a9c, 0x00bac4cf, 0x00b4b5b9, 0x00aca8b4, 0x009f9aa8, 0x009997a8, 0x0077767f, 0x0048494a, 0x000f110e, 0x000a0c06,
- 0x000a0d03, 0x000a0b04, 0x00080903, 0x00060707, 0x0006070b, 0x00050808, 0x00040907, 0x00040803, 0x000c100c, 0x0020211c, 0x0035302a, 0x004e433c, 0x006a5647, 0x00775e4b, 0x0081634d, 0x00836248,
- 0x00816346, 0x007c6042, 0x007f6243, 0x00836746, 0x00816745, 0x00826a49, 0x008a7050, 0x008b6f51, 0x0085654e, 0x00745641, 0x00654433, 0x005b392b, 0x00553527, 0x00523727, 0x004d3829, 0x00453527,
- 0x00332a22, 0x001b1611, 0x00686664, 0x00e6e5e8, 0x00fffefc, 0x00f7fdfb, 0x00f8fefd, 0x00fdfdfb, 0x00e2d6cc, 0x00907e6d, 0x0054402e, 0x004c3423, 0x00362317, 0x00281911, 0x00291f1b, 0x00312c2b,
- 0x00463723, 0x00634930, 0x00735436, 0x007f5b41, 0x007e797f, 0x006f8bae, 0x004b7fbd, 0x002a75c3, 0x002b71c6, 0x003b74c1, 0x003f74bc, 0x003f71bb, 0x003a75c6, 0x003d76cc, 0x003874cc, 0x003c73cb,
- 0x004475c3, 0x004475be, 0x004377bf, 0x004178be, 0x00387cc4, 0x003f77bc, 0x004376bf, 0x004376c3, 0x003e77cb, 0x003e76cf, 0x003d77d1, 0x003e75d3, 0x004378cd, 0x004577c8, 0x004575c3, 0x004673be,
- 0x003a73cd, 0x003f77cf, 0x00386cbe, 0x003562b4, 0x002f55a2, 0x003254a2, 0x002d5098, 0x0030559c, 0x00375ca0, 0x003f65a9, 0x004f76bd, 0x00587dd0, 0x004d7ecd, 0x00487ec6, 0x00508ace, 0x00548bcd,
- 0x005f8cdf, 0x00678dee, 0x00658ef1, 0x005e8df2, 0x00508edd, 0x005c8fdb, 0x00689ae3, 0x006096e0, 0x005a92dc, 0x00669fe7, 0x0078aeef, 0x008cbdf5, 0x00b0cdf2, 0x00bacce7, 0x00cfd4e5, 0x00e1e2e8,
- 0x00ede2f2, 0x00f1e5ef, 0x00f2e6e6, 0x00f3e9e4, 0x00efe3e6, 0x00f2e3f4, 0x00eeddf0, 0x00d9c4d8, 0x007e6b62, 0x00463415, 0x0049370f, 0x00483210, 0x0050350b, 0x005e3f12, 0x007d5b27, 0x00926d34,
- 0x00906833, 0x007d5425, 0x0069461a, 0x00553612, 0x004a3113, 0x00623c1b, 0x00835d38, 0x00966f4e, 0x007f5e45, 0x004e3019, 0x00452b17, 0x00705949, 0x009b8b7e, 0x00aa9b91, 0x00c8bdb4, 0x00d9cfc7,
- 0x00c2b5be, 0x007d707b, 0x00786c76, 0x00beb3bd, 0x00e7dee3, 0x00f2eaef, 0x00f6f0f1, 0x00e3dede, 0x008e8887, 0x00443e3b, 0x002c2723, 0x0035312a, 0x0039332d, 0x003d3730, 0x0056514a, 0x0068635c,
- 0x0067645d, 0x0069635c, 0x0068655c, 0x0067625c, 0x0037352d, 0x000a090a, 0x00767678, 0x00eef0eb, 0x00fefcfa, 0x00fcfcf6, 0x00fbfdf6, 0x00f8fdfa, 0x00a6a9b4, 0x00292c3d, 0x000b0d25, 0x000b0c2a,
- 0x00071220, 0x00030712, 0x00090405, 0x00211506, 0x005c4423, 0x008c6b3f, 0x00ac8452, 0x00c1965f, 0x00cda26a, 0x00d5aa72, 0x00e1b581, 0x00e2b787, 0x00d6b790, 0x00dbc7af, 0x00f2ece1, 0x00f5fcff,
- 0x00cce4f3, 0x007b9acb, 0x00254c8a, 0x00163989, 0x00446ac2, 0x0098b1e0, 0x00b5cbe4, 0x00a4b9d1, 0x0096a7bd, 0x00828da0, 0x00384251, 0x000b141d, 0x0006080b, 0x000f0f0e, 0x00131311, 0x001d1b19,
- 0x001a2106, 0x001e1e0f, 0x00232018, 0x002b1e1d, 0x002e1913, 0x003a1c0c, 0x00745131, 0x00a0754b, 0x00b2804d, 0x00b98654, 0x00b38250, 0x008d5f38, 0x006d4523, 0x00886647, 0x00b89b78, 0x00c0ab89,
- 0x00beab89, 0x00baa282, 0x00765e37, 0x00482806, 0x007f5f33, 0x00b88b5a, 0x00a87844, 0x0093612d, 0x00835227, 0x006a4321, 0x00462a11, 0x001b0904, 0x00120703, 0x00402725, 0x00674940, 0x00764d41,
- 0x0088542d, 0x006b4a2e, 0x00372714, 0x00191a11, 0x00191b12, 0x00231e10, 0x00291f0c, 0x002f210c, 0x002a2418, 0x0022251f, 0x0020231b, 0x00241f10, 0x001d1c12, 0x001a1411, 0x00140e0e, 0x000f0a0d,
- 0x00060709, 0x00060609, 0x00050408, 0x00050407, 0x00050505, 0x00050604, 0x00080805, 0x00090806, 0x000a0b08, 0x000b0c09, 0x000f0e0b, 0x0013110e, 0x0012120f, 0x00121310, 0x00141412, 0x00141613,
- 0x0016120f, 0x00100d0b, 0x000d0b0a, 0x000e0c0c, 0x00080608, 0x00050205, 0x00373438, 0x00a8a5aa, 0x00fefcfd, 0x00fdfbfe, 0x00fefffd, 0x00fffcfd, 0x00f3f3f5, 0x00a9a2ac, 0x0049414c, 0x00504654,
- 0x006b5562, 0x0092757c, 0x0090726e, 0x008b665c, 0x00936a55, 0x009e7459, 0x00a37d5f, 0x00a78265, 0x00865c49, 0x00623727, 0x005c2d22, 0x0068382e, 0x00804f46, 0x0089574e, 0x00946157, 0x00b17e72,
- 0x00bb8967, 0x00ac8469, 0x0058402f, 0x00140a07, 0x00000102, 0x000a0919, 0x00151532, 0x00161446, 0x0014146c, 0x00181b85, 0x001a208e, 0x001d2390, 0x001d2791, 0x001c2b95, 0x001e309b, 0x001e339f,
- 0x001b34a4, 0x001a31a8, 0x00142ea3, 0x001229a4, 0x00172baa, 0x0037208d, 0x00604771, 0x008c8b53, 0x00737980, 0x004d53ac, 0x005a66d5, 0x005c71b9, 0x0049608d, 0x00303c8c, 0x000e1070, 0x00131568,
- 0x0014224d, 0x00081129, 0x0000000a, 0x00040002, 0x00020201, 0x00000301, 0x00010105, 0x00010108, 0x00000006, 0x00040103, 0x00030102, 0x00010504, 0x00000109, 0x000f0f23, 0x0034324c, 0x003e3b55,
- 0x00181b36, 0x00050a32, 0x00101c4a, 0x00273473, 0x00294090, 0x00223384, 0x0021307c, 0x00303d83, 0x004c5e98, 0x006877ab, 0x007d89b3, 0x00959bc2, 0x00afaecd, 0x00b5afce, 0x00b7aec8, 0x00ada2bb,
- 0x00ebfcec, 0x00e9f7eb, 0x00eff9f4, 0x00f6fcfa, 0x00faf9fc, 0x00fbfbfd, 0x00fdfafe, 0x00fdfaff, 0x00fffcff, 0x00fbfbf6, 0x00fdfafa, 0x00fdf4ff, 0x00f0fef6, 0x00ebfded, 0x00f0fce8, 0x00fdfce7,
- 0x00fdfcf4, 0x00f4fdf8, 0x00f0fcfe, 0x00f6ffff, 0x00fcf1f9, 0x00fefbf5, 0x00fffef3, 0x00fefef2, 0x00fdfef9, 0x00fbfefb, 0x00f8fdfd, 0x00f4fbfd, 0x00eef6fd, 0x00e8effb, 0x00dfe6f7, 0x00d8ddf3,
- 0x00c4d4ef, 0x00bbceef, 0x00a9bce8, 0x0094a9e4, 0x00819ce5, 0x007493e6, 0x006787e5, 0x005b7de5, 0x005177e8, 0x004770e4, 0x00426cde, 0x00386ccc, 0x00376acf, 0x00366bcd, 0x003464c7, 0x002c5cb9,
- 0x001f499f, 0x00133a8d, 0x00183a95, 0x002641a9, 0x004257d1, 0x00526eda, 0x005174da, 0x00496ed0, 0x003a5fbf, 0x002e53b3, 0x00294dae, 0x00274bad, 0x003258ba, 0x004369cb, 0x005077d9, 0x00577fe1,
- 0x005d8be9, 0x005c8be9, 0x005e8eec, 0x005787e4, 0x004776d3, 0x003d69c7, 0x003f6bca, 0x004e7ad9, 0x00547fdd, 0x003a65c4, 0x001d44a3, 0x00224aa4, 0x00456ac5, 0x004b73cb, 0x00345ab2, 0x0020459e,
- 0x003150aa, 0x003050a8, 0x0016368f, 0x003053aa, 0x00506fc4, 0x007588ba, 0x00becaea, 0x00d5e2f7, 0x00d9dce7, 0x00d0d2dc, 0x00d9d8e6, 0x00dbdaed, 0x00d6d5ed, 0x00c4c7da, 0x00b5bac6, 0x00b3babf,
- 0x00bdc7cd, 0x00c5c8da, 0x00cac7dc, 0x00c7c4cf, 0x00c4bdaf, 0x00b8afad, 0x00695e72, 0x00261f50, 0x001c2053, 0x000a1732, 0x00000d23, 0x00000e2a, 0x00180a27, 0x00380f2b, 0x00521c31, 0x00683238,
- 0x008d6352, 0x00987f5b, 0x009e8f5f, 0x00a7935e, 0x00a18c50, 0x009e7537, 0x00d0a56f, 0x00f6e3ba, 0x00fffbf5, 0x00fafbfb, 0x00fafdfe, 0x00fdfdfe, 0x00d9d5d5, 0x008a8684, 0x0073736a, 0x009da097,
- 0x00dbd7e5, 0x00e9e8ee, 0x00c2c6c2, 0x00a5afa1, 0x009ead92, 0x009bab8d, 0x009bac8c, 0x009cac8a, 0x009caa89, 0x0099a68a, 0x0093a381, 0x008d9f74, 0x008a9a6e, 0x00859569, 0x00829264, 0x00829264,
- 0x007f8d63, 0x00768658, 0x006d7d52, 0x00697a4d, 0x006a7c4f, 0x006a7d44, 0x006b7f42, 0x006c8044, 0x00677b42, 0x0061743f, 0x005f7143, 0x00607149, 0x00596844, 0x00546341, 0x004d5b3c, 0x00485537,
- 0x00455637, 0x00455736, 0x00495d37, 0x00475c31, 0x00475e29, 0x00445b23, 0x00485f24, 0x00496024, 0x00485f20, 0x00445e1b, 0x00445b27, 0x00425439, 0x00404e43, 0x003f4d4d, 0x00374545, 0x003a454a,
- 0x00363e41, 0x002b3538, 0x002e373f, 0x002a3040, 0x00272c46, 0x00232c45, 0x00202b47, 0x0020284e, 0x001e225b, 0x00191e56, 0x00202557, 0x001f234f, 0x001d2044, 0x001b1d40, 0x001e1f43, 0x001c1c43,
- 0x001a253f, 0x001c2742, 0x00182244, 0x0019224d, 0x001a2253, 0x001d2555, 0x001f2751, 0x001b2548, 0x00182339, 0x001a2536, 0x001f2a46, 0x0019244e, 0x001b2350, 0x001f2451, 0x001d1e4d, 0x0020204e,
- 0x0027224c, 0x0023254a, 0x00252c48, 0x00242f44, 0x00243342, 0x00283345, 0x00343b4a, 0x00384049, 0x0039443f, 0x00384737, 0x003e4f37, 0x00425636, 0x003f5530, 0x00394f2a, 0x003e552f, 0x00486138,
- 0x00596640, 0x00586841, 0x0058663f, 0x00526037, 0x00435528, 0x00465929, 0x00475728, 0x00435625, 0x004c5b28, 0x004b5d24, 0x0044542a, 0x00435239, 0x0044523b, 0x00415032, 0x00414f2e, 0x0042522c,
- 0x004b5a33, 0x004b5931, 0x0047562e, 0x00425229, 0x0044552c, 0x0043572e, 0x0040552b, 0x00475a2d, 0x00465730, 0x00586548, 0x00b9bfb1, 0x00f5f7f6, 0x00fbfbff, 0x00fdfcfd, 0x00fcfdf5, 0x00f8f9e9,
- 0x008c858f, 0x001a1522, 0x00150c24, 0x001e1531, 0x002c252f, 0x00282724, 0x00252a1d, 0x0025311b, 0x0023312d, 0x00172632, 0x00102028, 0x0010221a, 0x00121c18, 0x00101313, 0x002b272b, 0x00302730,
- 0x0033223a, 0x002c2235, 0x00272034, 0x00181829, 0x000c1326, 0x000e1713, 0x00171e10, 0x00121b0f, 0x00121c10, 0x00111d11, 0x00111d10, 0x0017241a, 0x001a261e, 0x0019211b, 0x001c241d, 0x002a2f28,
- 0x00362722, 0x00231817, 0x00241c21, 0x00211e26, 0x001e1d24, 0x001c1b1c, 0x001c1813, 0x00151006, 0x00190e11, 0x001b0c14, 0x0012070c, 0x00121606, 0x00131517, 0x000d101a, 0x00131423, 0x001a1b24,
- 0x001f1e17, 0x00222417, 0x001d1b13, 0x001e1b1d, 0x001a1428, 0x0013141b, 0x000c0e0c, 0x000d100c, 0x001c1b1a, 0x0018171a, 0x00100f17, 0x0011111d, 0x00111220, 0x00111525, 0x00171c2f, 0x001e2238,
- 0x002e2b42, 0x0031313f, 0x002c2d32, 0x00343630, 0x003f4235, 0x00373a2f, 0x0022251d, 0x001a1d1e, 0x00090a1d, 0x00151732, 0x00101826, 0x000d231c, 0x001c1f26, 0x00161420, 0x00201c27, 0x002c2c33,
- 0x00232925, 0x0017231d, 0x00212a2a, 0x001f262f, 0x00251e3b, 0x00181a2d, 0x00181c2c, 0x00171e2b, 0x000f1b18, 0x000f1b16, 0x004b5450, 0x00878f87, 0x00d6d6d8, 0x00f8f4f6, 0x00fdf9fd, 0x00fdf7fd,
- 0x00fdfaff, 0x00f9f5fc, 0x007c7982, 0x00232328, 0x005d616f, 0x00636d83, 0x00546078, 0x008593ab, 0x00f2f4fe, 0x00f9fbfa, 0x00fdfefc, 0x00fafef3, 0x00fafcfc, 0x00faf9fc, 0x00fffcff, 0x00fcf8fd,
- 0x00fffcff, 0x00fcfdfa, 0x00fffefe, 0x00fafdfc, 0x00fafdfc, 0x00f6ffff, 0x00f4feff, 0x00f3fcfb, 0x00fefcfe, 0x00fcfbfc, 0x00f9f6fa, 0x00fffafa, 0x00fefafb, 0x00fff9fa, 0x00fff9f8, 0x00fcf7f4,
- 0x00fffdff, 0x00fffcff, 0x00fcf9fb, 0x00fefbfc, 0x00fefcfe, 0x00fbfafc, 0x00fefefe, 0x00fefefd, 0x00ffffff, 0x00fdfdfe, 0x00fffbfb, 0x00fdfcf7, 0x00fefdfa, 0x00fefcfb, 0x00fffafb, 0x00fdfbfb,
- 0x00faf9fd, 0x00fdfdfd, 0x00f7f6fa, 0x00fafdfd, 0x00f9fcfd, 0x00fcfdfd, 0x00fcfbfd, 0x00f7fafb, 0x00f0f6f7, 0x00edf3f5, 0x00e5eeef, 0x00e2eced, 0x00e5eaed, 0x00e7eaed, 0x00f2f3f7, 0x00faf8fc,
- 0x00f5fdeb, 0x00e1e8ec, 0x00bec4de, 0x00aeb4de, 0x00a4a7dc, 0x00a0a4d3, 0x00acb0cc, 0x00d5d9da, 0x00c5c0c1, 0x00bbb3b8, 0x00b6afbb, 0x00a1a0ae, 0x006c6c74, 0x004b4b47, 0x00393b31, 0x00343925,
- 0x002f311e, 0x00292b1b, 0x0021231b, 0x001b1c1b, 0x0017181f, 0x00111818, 0x000a1113, 0x00040a08, 0x0005090a, 0x000c0c0a, 0x001d1813, 0x00372d26, 0x005b4839, 0x006c5343, 0x00785b48, 0x007b5b45,
- 0x00785b42, 0x006c5336, 0x00694e2f, 0x006c5130, 0x006e5432, 0x00755b3a, 0x00816647, 0x00886c4f, 0x008a6956, 0x007b5e4b, 0x00714f41, 0x00664439, 0x005c4236, 0x005c4437, 0x00584135, 0x00493c2f,
- 0x00362c29, 0x00191412, 0x00666364, 0x00e5e5e5, 0x00fdfcff, 0x00f9fdfc, 0x00f9fdfd, 0x00fcfefb, 0x00e1d5ce, 0x008c7d6d, 0x00503e2c, 0x00452d1c, 0x00321d12, 0x0025160e, 0x00271f1b, 0x00322e2d,
- 0x00513934, 0x00614537, 0x00775649, 0x00846656, 0x007b8092, 0x005a7faa, 0x003775b9, 0x001f72c4, 0x002c74c6, 0x003475b7, 0x003c72b3, 0x003d70bd, 0x003974c7, 0x003573ca, 0x003675cd, 0x003874ca,
- 0x004573c4, 0x004275bd, 0x004378bb, 0x00407abb, 0x00387ec1, 0x00387ac7, 0x003d78ca, 0x003e78c7, 0x004076ca, 0x004077c9, 0x004277cd, 0x004677cd, 0x004474c9, 0x003f73c2, 0x003d73c1, 0x004075bf,
- 0x003d76da, 0x003e75d8, 0x003e71d3, 0x003d6dcb, 0x002b58b4, 0x002551a9, 0x00305db5, 0x003563ba, 0x00366bc1, 0x003f75cd, 0x004c84dd, 0x004882e7, 0x004583bc, 0x004682b7, 0x005183c3, 0x005d84de,
- 0x007281fc, 0x007088f0, 0x006c90e9, 0x006094da, 0x004c93de, 0x005692d5, 0x00699de0, 0x005a94dc, 0x004383d3, 0x00498ed9, 0x0061a1ef, 0x0073acf4, 0x008eb4ec, 0x00a4bee7, 0x00cbd5f7, 0x00dfe2fa,
- 0x00f5e6fc, 0x00efe3ed, 0x00efe4e9, 0x00f1e6e5, 0x00f0e3eb, 0x00f1e3f7, 0x00ebd9f6, 0x00d5bdd5, 0x007b665d, 0x004f3b1a, 0x00644f28, 0x005b4d27, 0x00604a22, 0x006c5224, 0x008e6b38, 0x00a58045,
- 0x00a07a3f, 0x008d6b31, 0x00866534, 0x00785a30, 0x00765737, 0x00916538, 0x00b48153, 0x00b7875d, 0x009f7554, 0x00654123, 0x00381a03, 0x00533926, 0x00806f5d, 0x008f7e6f, 0x00b8aa9c, 0x00d7ccbf,
- 0x00d4c6d2, 0x00a1939d, 0x0074666d, 0x00afa2ab, 0x00e3d7de, 0x00f4e9f1, 0x00f6eef2, 0x00f2ebed, 0x00c7c2be, 0x0079736e, 0x0036302b, 0x003a342d, 0x0038302a, 0x0039322b, 0x0056504a, 0x0069645d,
- 0x006b625e, 0x00666159, 0x00665d55, 0x00645d57, 0x003b352f, 0x000e0a0c, 0x00767578, 0x00edf0ee, 0x00fdfdf7, 0x00fcfdf5, 0x00fcfef7, 0x00fafdfa, 0x00a5a7b1, 0x0027293c, 0x000c0d28, 0x000e102e,
- 0x000d1a3a, 0x00051025, 0x00020512, 0x00080202, 0x00301c07, 0x0062441f, 0x008f6b39, 0x00ab834a, 0x00c2945c, 0x00ca9d62, 0x00d6a874, 0x00dbaf83, 0x00d3b590, 0x00ddcbb4, 0x00f1ede2, 0x00f0fafd,
- 0x00c9defb, 0x007795cb, 0x002a4c95, 0x001d4398, 0x002b51b0, 0x005b78ae, 0x009bb0d3, 0x00bcd1f0, 0x00cadcf5, 0x00adbed1, 0x00758291, 0x0049535e, 0x00232b30, 0x001a1f20, 0x00111313, 0x00151a17,
- 0x00201e0d, 0x00211f11, 0x00231d17, 0x002f241e, 0x00462e2a, 0x0044291a, 0x00644426, 0x00916a42, 0x00ae7d4d, 0x00bc8a57, 0x00b08457, 0x007e5932, 0x003c1c01, 0x00584125, 0x00837352, 0x007d7353,
- 0x007b6e52, 0x006c5e3d, 0x00483814, 0x003c2903, 0x008a7046, 0x00bb9662, 0x00a87848, 0x0093632d, 0x00805223, 0x0065411d, 0x004d2d15, 0x0027160c, 0x000f0101, 0x001c0504, 0x0042281f, 0x00714f40,
- 0x0088542d, 0x005a3a1f, 0x00241507, 0x001a1b13, 0x001f231e, 0x00242113, 0x002d2212, 0x0033240d, 0x002e261d, 0x00232725, 0x00222420, 0x00252014, 0x00211c13, 0x001b1611, 0x00150f0d, 0x000d0b0c,
- 0x0009070c, 0x00050509, 0x00050408, 0x00050407, 0x00050606, 0x00030705, 0x00030704, 0x00050804, 0x000d0b0b, 0x000c0d0a, 0x000f0f0c, 0x0014130f, 0x00151611, 0x00171813, 0x00191814, 0x00171915,
- 0x00181514, 0x00130e0d, 0x00130d0d, 0x000f0a0a, 0x000b0708, 0x00050205, 0x002e2b2f, 0x009b989c, 0x00fffdfe, 0x00f9f9fb, 0x00fdfdfe, 0x00fcfbfb, 0x00f2f3f6, 0x00afadb5, 0x0066606f, 0x007e798b,
- 0x00a797ad, 0x00bca7b3, 0x00ad8c95, 0x008c6d68, 0x00876157, 0x00916a4f, 0x00a57d5f, 0x00aa8467, 0x00a57967, 0x008f6251, 0x0079493b, 0x00845247, 0x008d5a51, 0x0099655a, 0x00a26e61, 0x00b27c6f,
- 0x00bd8a6f, 0x00a17b64, 0x0052382b, 0x00120905, 0x00040109, 0x00050515, 0x001a1738, 0x001f1c4c, 0x0015176b, 0x00121877, 0x00131a81, 0x00151c7e, 0x00111b7d, 0x00111e81, 0x00132486, 0x0014298b,
- 0x001c33a0, 0x001d33a2, 0x00192ba2, 0x001528a2, 0x001b29ab, 0x003b2391, 0x004e2d5d, 0x00635a28, 0x004d525b, 0x0044499e, 0x006c74dc, 0x00687cba, 0x005d7393, 0x00394589, 0x000f1162, 0x00171759,
- 0x00101a3a, 0x00000917, 0x00010206, 0x00020100, 0x00010200, 0x00000102, 0x00000206, 0x00010009, 0x00020008, 0x00030003, 0x00040408, 0x0000050a, 0x00000113, 0x00050827, 0x00181d42, 0x00202547,
- 0x00101740, 0x00101e4d, 0x002d3e7d, 0x00344a98, 0x00253ea1, 0x00263496, 0x004d52b2, 0x006a73c4, 0x00828ec0, 0x008c98b8, 0x0098a2b7, 0x009fa5b1, 0x00aba7b7, 0x00b8acc6, 0x00a998ba, 0x009c86af,
- 0x00cfc9c3, 0x008b7e7c, 0x00a2918e, 0x00beaeac, 0x00dac8c5, 0x00e4dbd8, 0x00e9e3e0, 0x00edebea, 0x00f3edee, 0x00f4f3f6, 0x00f8f9fa, 0x00f4faf8, 0x00f8fafc, 0x00fafbfc, 0x00fffeff, 0x00fdfdfe,
- 0x00fbfdf7, 0x00fdfdf8, 0x00fffcfa, 0x00fefdf9, 0x00fffbfc, 0x00f9fdf7, 0x00fafcf6, 0x00fcfdf9, 0x00fcfefb, 0x00fdfefc, 0x00fbfcfa, 0x00fbfcfa, 0x00ffffff, 0x00fffefe, 0x00fefcfe, 0x00fefbff,
- 0x00f8fbf5, 0x00fafdf9, 0x00fcfdfd, 0x00f7f9fd, 0x00f0f4fa, 0x00e6ebf1, 0x00dde1ea, 0x00d3d7e6, 0x00c3cadc, 0x00b8bfd8, 0x00abb2d5, 0x0091a4dd, 0x007f92d2, 0x006a81cb, 0x005066b1, 0x00364fa5,
- 0x001b3b94, 0x00153897, 0x002346af, 0x00375ac9, 0x00496cde, 0x004b6edd, 0x004467d7, 0x00385bcd, 0x002b4fbe, 0x00244cb8, 0x002550ba, 0x00315fc6, 0x004376dc, 0x004e82e9, 0x005589f2, 0x005b90f9,
- 0x00538cea, 0x00568eec, 0x004f85e3, 0x00497dda, 0x004572cf, 0x004c75d1, 0x00547bd7, 0x005378d5, 0x002e50aa, 0x00223f9c, 0x002f53ae, 0x00386fbf, 0x004b79ce, 0x00395db6, 0x001f3897, 0x003348aa,
- 0x003d55b3, 0x001f389e, 0x00203ea7, 0x003d60cd, 0x00446ad9, 0x006a82bf, 0x00b6cae3, 0x00cbddf1, 0x00d3dbeb, 0x00cdd4dc, 0x00ced2d4, 0x00cfd2d0, 0x00d1d3d6, 0x00ccced5, 0x00bebfcd, 0x00b4b5c7,
- 0x00b3bcb6, 0x00c0c3d3, 0x00c1cbde, 0x00b6d0d1, 0x00cfc7ad, 0x00d2a2a0, 0x00784861, 0x002c2259, 0x00023262, 0x00101942, 0x000c0a25, 0x00010a18, 0x00070616, 0x0023111d, 0x003f2824, 0x006a4a36,
- 0x00957940, 0x00ac914f, 0x00c29e5c, 0x00ca9d65, 0x00cc8d65, 0x00ab835b, 0x00d0b592, 0x00f9ead6, 0x00fffaf6, 0x00fdfaf9, 0x00fbfefb, 0x00f5fdf6, 0x00c5cec5, 0x0078807d, 0x00747778, 0x00a9a7b0,
- 0x00dbdcd4, 0x00f2f2ed, 0x00fcfcf8, 0x00fcfbf8, 0x00fafaf8, 0x00f6f6f4, 0x00f5f6f3, 0x00f3f5f2, 0x00f6f4f0, 0x00f5f4f1, 0x00f0f1ec, 0x00eaede5, 0x00eaebe4, 0x00eaebe5, 0x00e9eae5, 0x00e8e8e6,
- 0x00dee2dc, 0x00dee1dc, 0x00daded7, 0x00d5d9d2, 0x00d4d7d3, 0x00d1d5c9, 0x00d0d4c7, 0x00ced2c6, 0x00cccdc0, 0x00cbccc0, 0x00c9cbc0, 0x00c2c5b9, 0x00bcbfb2, 0x00b9bbae, 0x00b4b6aa, 0x00b0b2a6,
- 0x00a4b099, 0x00a3af9a, 0x009ca896, 0x0098a592, 0x0097a191, 0x00909a87, 0x008e9984, 0x008f9a85, 0x008b9281, 0x00848d7c, 0x007c8976, 0x00748769, 0x00748770, 0x0072846d, 0x006d7d68, 0x006c7c64,
- 0x005e7056, 0x005c7056, 0x00586b51, 0x0054654e, 0x00506149, 0x004d5f4b, 0x004a5c4a, 0x004a5949, 0x00455542, 0x00435241, 0x003f4f3f, 0x003b4c3a, 0x003a4937, 0x00344432, 0x002f402f, 0x002e3e2e,
- 0x00303e33, 0x002e3d31, 0x0028372e, 0x0026352c, 0x0026362a, 0x00223125, 0x00223126, 0x0026342a, 0x002b3831, 0x002d3b31, 0x002c3d2e, 0x00274021, 0x002e4725, 0x002d4625, 0x002c4527, 0x00294320,
- 0x002c461e, 0x002e4a22, 0x00314e24, 0x00355026, 0x003a5428, 0x003c5025, 0x00445327, 0x0049562c, 0x0048552c, 0x004c5b2f, 0x004e5d31, 0x004b5b30, 0x0045542a, 0x0046542c, 0x005b6940, 0x00647348,
- 0x0060714a, 0x00647650, 0x0070805c, 0x00677752, 0x004f623a, 0x0041542a, 0x0043552b, 0x00405329, 0x0040502a, 0x0042522c, 0x00425428, 0x00415427, 0x00485a2f, 0x0046582e, 0x0046582c, 0x0044542c,
- 0x0043562c, 0x0046582b, 0x00495b2e, 0x00405228, 0x0046592f, 0x00415927, 0x003e5824, 0x00415829, 0x00384924, 0x00596749, 0x00bbc4ad, 0x00f3f9ea, 0x00fefffd, 0x00fefdff, 0x00fefdff, 0x00faf6fd,
- 0x007e8377, 0x000f1210, 0x000c1117, 0x00141f2d, 0x00111c34, 0x00081730, 0x000a162f, 0x00091532, 0x00111c34, 0x00151f35, 0x000f1b36, 0x00081a3d, 0x00071730, 0x00061424, 0x001e2836, 0x00141d2a,
- 0x00080e22, 0x0012172e, 0x000e152e, 0x0014182c, 0x00080e1c, 0x00000308, 0x00091015, 0x000a0d14, 0x00080819, 0x000b1128, 0x00020d2a, 0x00081b3c, 0x001b2f4b, 0x00182436, 0x00101518, 0x001c1812,
- 0x0015181a, 0x00191a1b, 0x00111012, 0x00121112, 0x001c1b1c, 0x001f1e1e, 0x00191a1a, 0x000e100e, 0x000f0d0c, 0x0011100c, 0x00110f0b, 0x0017140b, 0x00161815, 0x000e1413, 0x001c2322, 0x00202421,
- 0x00212014, 0x0027251d, 0x00222328, 0x001d2736, 0x00102140, 0x0008132f, 0x00091132, 0x0009143c, 0x000c204f, 0x0011285a, 0x00082258, 0x000c275d, 0x00112a5e, 0x000d2051, 0x00192656, 0x00434a7b,
- 0x004e516b, 0x00232645, 0x00161946, 0x00212557, 0x0023255a, 0x00111740, 0x00101838, 0x000d152f, 0x000e0e28, 0x00161332, 0x0015163f, 0x000f2058, 0x001f3160, 0x0018294e, 0x000a142a, 0x001a1d25,
- 0x001d1c06, 0x00231e0c, 0x001f1c11, 0x00181f1e, 0x00132332, 0x00131b20, 0x001a1a1c, 0x0014161a, 0x000e1917, 0x00142122, 0x004b5a5c, 0x008d9e9a, 0x00cfdadc, 0x00f7fcfb, 0x00f9fbfd, 0x00fefaff,
- 0x00fafcf0, 0x00fdfcf6, 0x00868686, 0x001b1c24, 0x0045475f, 0x005e6382, 0x00686a8d, 0x009898b7, 0x00f9f6fa, 0x00fffef2, 0x00fbfcee, 0x00fafeef, 0x00fcfffe, 0x00fdfffe, 0x00fdfeff, 0x00fdfffc,
- 0x00f5fdf3, 0x00f6fff7, 0x00f6fbf6, 0x00f6fcfa, 0x00f7f6ff, 0x00f6fdfb, 0x00f6fffb, 0x00f9ffff, 0x00fafdfe, 0x00f7fcfa, 0x00f9fffe, 0x00f7fffc, 0x00f6fefc, 0x00f8fefd, 0x00fafffe, 0x00f8fffe,
- 0x00fafcfd, 0x00fdfcfe, 0x00fffeff, 0x00fffdfe, 0x00fefaff, 0x00f9f5fa, 0x00fdfafd, 0x00fffbff, 0x00fff9ff, 0x00fef7ff, 0x00fcfaf9, 0x00fcfef2, 0x00fafff4, 0x00fbfff8, 0x00fffffb, 0x00fdfffc,
- 0x00f8fefb, 0x00f8fefa, 0x00fcfefe, 0x00f9fdfc, 0x00fafdff, 0x00fafcfa, 0x00fcfaf9, 0x00fefdfd, 0x00fefdfe, 0x00fefefe, 0x00fdfdfc, 0x00fefefb, 0x00fffffb, 0x00fffffc, 0x00fdfffd, 0x00fdffff,
- 0x00f6fdf5, 0x00f8fff5, 0x00f9fff5, 0x00fafff7, 0x00fcfff8, 0x00f9fff4, 0x00fafff6, 0x00fcfff6, 0x00f8fff4, 0x00fcfef7, 0x00fafef6, 0x00f1faf3, 0x00ecf3ec, 0x00e8ece7, 0x00dfe4de, 0x00dbe2dd,
- 0x00cad0c8, 0x00c5cac2, 0x00b9beba, 0x00adb3ad, 0x00a4a9a8, 0x009ba49d, 0x00949e9a, 0x00919693, 0x00888987, 0x0081807d, 0x007e7b77, 0x00817b77, 0x008b807a, 0x008f817c, 0x008e7e78, 0x008b7a72,
- 0x00796959, 0x00716150, 0x00685646, 0x00675244, 0x00695243, 0x006e5845, 0x007a634e, 0x00866e58, 0x008a705c, 0x00866953, 0x00776049, 0x0065583f, 0x005e523c, 0x005d513e, 0x00554a3a, 0x004a3f31,
- 0x002d2b1b, 0x00151409, 0x0066665e, 0x00e5e7dc, 0x00fcfbf9, 0x00fcfcf6, 0x00fbf9f5, 0x00fffcf6, 0x00dad3c8, 0x00857f6b, 0x00403c24, 0x00352d14, 0x00261c08, 0x00231806, 0x002e2013, 0x003b2c22,
- 0x005c3b00, 0x00664e1a, 0x00675e48, 0x0068707a, 0x005c80b8, 0x00396eb0, 0x00336eba, 0x003373c4, 0x003574b6, 0x003972b0, 0x003c6fb7, 0x003f6ac9, 0x003973c5, 0x003174bd, 0x00387ec2, 0x003979c3,
- 0x003970c5, 0x004170c9, 0x004671cc, 0x004674c7, 0x004279c0, 0x003e77c4, 0x003a77c7, 0x003b78c0, 0x003f7bbc, 0x003e7cc0, 0x003b7ac7, 0x003877cb, 0x003b77d2, 0x003c7bce, 0x003b7bcd, 0x003b7ac2,
- 0x003f73bd, 0x004275c0, 0x004374c3, 0x003e6fbd, 0x003869b8, 0x003466b3, 0x00396bb8, 0x004173c0, 0x004779c7, 0x004e80cd, 0x005185d0, 0x004a87cb, 0x004a84d0, 0x004b88d2, 0x00548eda, 0x005b93e4,
- 0x005c96e5, 0x005d98ea, 0x005c98eb, 0x005d96eb, 0x005891ea, 0x005691df, 0x005c95dc, 0x005f94de, 0x004f83d1, 0x004c80cc, 0x005f8edd, 0x006594dc, 0x006f9be7, 0x007caaee, 0x008bb6f6, 0x00b2dfff,
- 0x00dde9f0, 0x00e7eaeb, 0x00f0e6e2, 0x00f3e5da, 0x00f1e6ed, 0x00e7e9fa, 0x00dbe2fc, 0x00c9cdeb, 0x00816e6c, 0x0067482d, 0x008f6941, 0x00816634, 0x00805b2e, 0x00896432, 0x00a47943, 0x00b18746,
- 0x00ac8432, 0x00ac8432, 0x00ae7e3a, 0x00ac7a45, 0x00b67f5f, 0x00be8656, 0x00c68c58, 0x00c58f5a, 0x00b28459, 0x00835c35, 0x004c2b0a, 0x00533615, 0x007d6545, 0x00997f61, 0x00c4a989, 0x00e1c7a8,
- 0x00c9cec1, 0x00a6a9a2, 0x007e7c7e, 0x0099939e, 0x00d9cfe1, 0x00ece1f4, 0x00f4e9f7, 0x00f4eaf5, 0x00eee7e8, 0x00bab3b1, 0x00605647, 0x00413416, 0x00422f14, 0x003f2813, 0x00543c2e, 0x006e544c,
- 0x006f5e54, 0x00695f58, 0x005e5a56, 0x00525351, 0x00252d2b, 0x00050a0a, 0x00737876, 0x00edf2ee, 0x00fefefa, 0x00fefefc, 0x00fbfefc, 0x00f7fcfc, 0x00a4a8b5, 0x0025283d, 0x00090a27, 0x000f0e30,
- 0x00011e4d, 0x00011b48, 0x0000113b, 0x00000929, 0x00080410, 0x0024130e, 0x006c4735, 0x00925f3e, 0x00af7c42, 0x00c18e4a, 0x00d19f57, 0x00d2a25c, 0x00cfa978, 0x00e8ccb7, 0x00faede8, 0x00f7f8fd,
- 0x00b5d0f3, 0x006084c9, 0x00224da1, 0x001d4ea6, 0x00285dbe, 0x002355b7, 0x003f6dcb, 0x005a87d9, 0x0082abdf, 0x009ec1e8, 0x00a5c6dd, 0x009dbcca, 0x00748d99, 0x005e7384, 0x003b4d67, 0x001e2c4b,
- 0x00151c17, 0x00251b0f, 0x00351c0a, 0x004f2b11, 0x005e3d24, 0x0049301a, 0x00473521, 0x006c5743, 0x0099784c, 0x00b6834d, 0x00c08f59, 0x008b6839, 0x00401b09, 0x002b0400, 0x00330c0f, 0x0038111b,
- 0x00351018, 0x003b1410, 0x004d2819, 0x007c5538, 0x00b48f61, 0x00bf8f5e, 0x00a16a3a, 0x00935826, 0x00754015, 0x006a3f1d, 0x00573920, 0x002f1e0e, 0x000a0300, 0x00120300, 0x00332216, 0x00604838,
- 0x005d4a32, 0x002f2618, 0x001e1a15, 0x001c1f21, 0x0024221d, 0x002f2311, 0x0036250b, 0x003d250c, 0x002f2d21, 0x00242e2b, 0x00202b29, 0x0027241b, 0x00242119, 0x001f1a15, 0x00171411, 0x0011100e,
- 0x000d0d0b, 0x00090a0a, 0x00050606, 0x00030505, 0x00030608, 0x00010808, 0x00030a0a, 0x00070b0d, 0x000c0a0c, 0x000f0d0e, 0x0015100f, 0x001a1310, 0x00241714, 0x00291814, 0x002b1714, 0x002a1512,
- 0x0021170e, 0x001c110b, 0x00180c0b, 0x0013090d, 0x000f080e, 0x00060408, 0x00202022, 0x00848786, 0x00f8fdf9, 0x00f9fefa, 0x00fbfefa, 0x00fdfbf9, 0x00f7f9f8, 0x00bebaca, 0x00736f84, 0x00918cab,
- 0x00bebbd9, 0x00d4cfee, 0x00c9c5e4, 0x00adacc9, 0x008c89a2, 0x0084726e, 0x00886a57, 0x00a57f6c, 0x00b8816b, 0x00b0765e, 0x00a06249, 0x009f6048, 0x00a46651, 0x00a76c5b, 0x00b0766c, 0x00b47c75,
- 0x00c4834a, 0x0093623f, 0x00432218, 0x001e1221, 0x000a0321, 0x00060210, 0x00150811, 0x0031201c, 0x0034301e, 0x001c1f0a, 0x001a251d, 0x00132036, 0x000f1c2b, 0x00090e24, 0x000a0a1e, 0x000f0c25,
- 0x00121039, 0x001f1b59, 0x00261c72, 0x002a218d, 0x002c22a5, 0x001922a2, 0x001929a2, 0x001d2c97, 0x00273382, 0x00485693, 0x006e7ab3, 0x00707ca6, 0x004c558b, 0x001f2969, 0x000e1362, 0x000f156e,
- 0x000c160e, 0x00000600, 0x00020500, 0x00010400, 0x00010201, 0x00010100, 0x00000101, 0x00010002, 0x00040001, 0x00040000, 0x00030001, 0x00000203, 0x00010015, 0x00070831, 0x001d2153, 0x001d2359,
- 0x0011254a, 0x002c3f67, 0x005a6a9f, 0x005a63a9, 0x004247a8, 0x00565496, 0x00928dc0, 0x00a7a4d2, 0x00a3a2c3, 0x00a2a2b8, 0x00979aa7, 0x008e9296, 0x00828386, 0x006d6e70, 0x00535554, 0x0048484a,
- 0x00bab1a4, 0x00342318, 0x00423125, 0x0046372a, 0x005d4b3e, 0x006e5e52, 0x007c6c63, 0x008e8178, 0x00a39d99, 0x00b5b1ad, 0x00c6c2c1, 0x00d6d3d0, 0x00ebe9e6, 0x00f4f3f1, 0x00f9faf8, 0x00f9f9f7,
- 0x00fcfef7, 0x00fdfefa, 0x00fffdfa, 0x00fffdfd, 0x00fcfdf9, 0x00fdfdfd, 0x00fcfdfb, 0x00fafcfb, 0x00fafcfa, 0x00fafdfb, 0x00fcfeff, 0x00f9fbfe, 0x00fbfdfe, 0x00fbfcfe, 0x00fdfeff, 0x00fbfdff,
- 0x00fdfefc, 0x00fffffd, 0x00fefffe, 0x00feffff, 0x00fbfdfe, 0x00fbfdfd, 0x00fafdfe, 0x00f8fbff, 0x00f5f6fe, 0x00f2f5fc, 0x00eef2ff, 0x00e0ecfc, 0x00d5e1f9, 0x00c8d7f1, 0x00b1c1e3, 0x009db1d6,
- 0x007d93c2, 0x00758ec0, 0x00738fc4, 0x007490c9, 0x006d89c6, 0x00607cc4, 0x004b68b4, 0x003555a0, 0x002b4b9c, 0x003153a5, 0x003e61b5, 0x004c73c8, 0x005781d9, 0x005a86e0, 0x005d8ae6, 0x005c8ae7,
- 0x00528ae7, 0x004b80de, 0x004c7fdf, 0x004f80e0, 0x005380e0, 0x005681e0, 0x003e66c7, 0x00254aad, 0x00193fa1, 0x003052b6, 0x005177d7, 0x004c7cd2, 0x003158af, 0x001b3e94, 0x0026449a, 0x003e59af,
- 0x002d499d, 0x00143186, 0x003152a7, 0x003961b9, 0x003c69c0, 0x006e8abd, 0x00b9cbe7, 0x00cfdef4, 0x00d3dceb, 0x00ced5df, 0x00ced1d7, 0x00d1d2d5, 0x00cfced5, 0x00cdcdd7, 0x00c5c5d6, 0x00b9bad0,
- 0x00b2b9b9, 0x00bebfd1, 0x00c2c8db, 0x00b6cfd1, 0x00cec6b3, 0x00cba1a5, 0x00734864, 0x002b265d, 0x0008356a, 0x0014234f, 0x00111536, 0x00000e23, 0x0006081b, 0x00190f18, 0x003f2622, 0x006e4f38,
- 0x009d814a, 0x00b5975a, 0x00c9a467, 0x00cca066, 0x00ca8d62, 0x00ae8861, 0x00d4bc9f, 0x00faefde, 0x00fffcfb, 0x00fffbfe, 0x00fefeff, 0x00f7fdf9, 0x00bbc1b9, 0x00707471, 0x00848687, 0x00afaeb6,
- 0x00e1dedf, 0x00f4f3f0, 0x00fdfdfa, 0x00fcfdf9, 0x00fdfdf9, 0x00fdfdfa, 0x00fffefd, 0x00fffdfc, 0x00fffbfb, 0x00fffdfc, 0x00fdfefa, 0x00fbfdf9, 0x00fcfdfa, 0x00fdfefb, 0x00fdfffc, 0x00fefffe,
- 0x00fbfffb, 0x00fbfffc, 0x00fbfef8, 0x00f9fcf8, 0x00fafcfa, 0x00f9fbf6, 0x00fafcf5, 0x00fafbf5, 0x00fbfbf4, 0x00fafaf4, 0x00fafbf5, 0x00f7f8f2, 0x00f7f9f2, 0x00f5f8f0, 0x00f4f6ee, 0x00f3f5ed,
- 0x00f0f5e8, 0x00f1f5ea, 0x00edf2e6, 0x00ebefe3, 0x00eaebe3, 0x00e6e7dd, 0x00e4e7db, 0x00e4e7db, 0x00e3e5dc, 0x00dfe2d6, 0x00d8ded1, 0x00d1dccb, 0x00d0dcc8, 0x00ced8c7, 0x00cdd6c7, 0x00cad4c3,
- 0x00c2ccbb, 0x00bec9b7, 0x00bec9b8, 0x00bbc5b4, 0x00b8c1b1, 0x00b5bdb0, 0x00b2b9ae, 0x00afb5aa, 0x00a8b0a3, 0x00a4ac9e, 0x00a0aa9d, 0x009ca697, 0x00979e94, 0x0092998d, 0x00899288, 0x00878f86,
- 0x00838a82, 0x0081887e, 0x007c847a, 0x00757e73, 0x00717a6e, 0x00697265, 0x00666e62, 0x00666e60, 0x00646d62, 0x00636c61, 0x00626c5e, 0x005a6854, 0x005d6a55, 0x005a684f, 0x00556349, 0x00505e47,
- 0x00526347, 0x00516245, 0x004d5f42, 0x004b5d3a, 0x004a583a, 0x004c5b37, 0x00495834, 0x004b5934, 0x00515b39, 0x00505b3a, 0x004d5a38, 0x00475431, 0x0045522f, 0x00596543, 0x00737f5d, 0x00697555,
- 0x006b7858, 0x00768565, 0x00849374, 0x00869475, 0x006b7859, 0x00515c3d, 0x00475233, 0x00586545, 0x006a7957, 0x00576643, 0x004b5a38, 0x005e6f4a, 0x005b6947, 0x00596743, 0x004c5b37, 0x004c5a36,
- 0x0054643f, 0x00586743, 0x00566441, 0x004d5b39, 0x0053603d, 0x004d5f36, 0x0042582c, 0x00455832, 0x00384826, 0x00566348, 0x00bcc4b2, 0x00f4faed, 0x00fdfdfd, 0x00fffcfe, 0x00fffeff, 0x00f9f4fb,
- 0x007b8079, 0x000e0f13, 0x00090d1c, 0x00161c35, 0x00192449, 0x00121f4b, 0x0012214e, 0x00101f4f, 0x0015234e, 0x001b2651, 0x00112149, 0x00071d50, 0x0012244d, 0x001b2a4c, 0x0036435e, 0x002b3654,
- 0x000c113a, 0x000f1640, 0x000c143d, 0x00131b41, 0x000d1738, 0x00020d2d, 0x000a142d, 0x0009122b, 0x000e1235, 0x000e173f, 0x00061441, 0x000f2352, 0x00263a62, 0x00212d48, 0x0010131f, 0x00140e10,
- 0x00101116, 0x00151519, 0x000f1012, 0x00131416, 0x00202022, 0x00242425, 0x001c1e1d, 0x0010110f, 0x000c0e09, 0x0010120d, 0x000f0d0a, 0x0015110d, 0x00121511, 0x000b1213, 0x0018211f, 0x001c251c,
- 0x00242115, 0x0023231c, 0x00242628, 0x00222a39, 0x00172646, 0x000d1942, 0x0018214e, 0x001e2b5e, 0x00223a74, 0x00294480, 0x00274384, 0x002c478a, 0x0032498c, 0x002f4282, 0x002e3c79, 0x00656eaa,
- 0x008492b1, 0x00435279, 0x00263467, 0x002e3d79, 0x00233472, 0x00182b5f, 0x00172955, 0x000f2247, 0x000f1944, 0x00151d4b, 0x00141e51, 0x00132361, 0x00293b70, 0x00273863, 0x000e1d37, 0x000b111c,
- 0x00150f01, 0x001c1809, 0x0017170a, 0x00141513, 0x00091826, 0x000f1218, 0x001a181a, 0x0015161b, 0x000f1d1b, 0x00142425, 0x004a5b59, 0x00859696, 0x00cad5d8, 0x00f5fafb, 0x00f9fcfc, 0x00fefefe,
- 0x00fdfcf6, 0x00fefcf7, 0x008d8e8c, 0x00212527, 0x00404455, 0x005d637b, 0x006f728d, 0x00a3a1bb, 0x00faf5fa, 0x00fffcf5, 0x00fefdf0, 0x00fdfef6, 0x00fdfdfc, 0x00fdfcfc, 0x00fefcff, 0x00fcfcfd,
- 0x00fcf9f4, 0x00fdfcf3, 0x00fbfbf1, 0x00fbfef8, 0x00fdfbff, 0x00fafaf7, 0x00f9fdf8, 0x00fafcf7, 0x00fdfaf8, 0x00fcfbf9, 0x00fbfaf4, 0x00f9fdf7, 0x00fcfdf7, 0x00fdfffb, 0x00fcfdf8, 0x00fcfefa,
- 0x00f6fdfc, 0x00f6fcfb, 0x00f7fefc, 0x00f9fefd, 0x00f9fbfd, 0x00f9fafc, 0x00f8fbfb, 0x00f9fcfd, 0x00f7fafb, 0x00f8fbf9, 0x00fcfdfb, 0x00fffdfb, 0x00fefefb, 0x00fcfdfa, 0x00fafbfa, 0x00f7faf8,
- 0x00fcfdfe, 0x00fbfdfc, 0x00ffffff, 0x00fcfdfe, 0x00fafafe, 0x00fcfdfc, 0x00fcfbfc, 0x00fafbfe, 0x00fdfcfe, 0x00fafcfd, 0x00fbfdfe, 0x00fcfefe, 0x00fbfffd, 0x00fafefd, 0x00fcffff, 0x00faffff,
- 0x00fdfdfa, 0x00fdfdfb, 0x00fcfbfc, 0x00fcfcfb, 0x00fdfdfc, 0x00fcfefc, 0x00fcfefc, 0x00fefdfd, 0x00fefcfe, 0x00fefafc, 0x00fffcfd, 0x00fcfbfb, 0x00fefbfc, 0x00fdfafc, 0x00fffdfd, 0x00fcfbfc,
- 0x00fbf8f9, 0x00fdf9fa, 0x00fdfafb, 0x00fdfcfc, 0x00fdfdfd, 0x00f7fdfe, 0x00f4fcfd, 0x00f4f7f9, 0x00f1f2f4, 0x00ecedee, 0x00ececec, 0x00eeedeb, 0x00efeae9, 0x00ede7e4, 0x00e7e0da, 0x00e6ddd6,
- 0x00e1dbd0, 0x00ded6cb, 0x00d9d0c5, 0x00d4c9bf, 0x00d2c2b8, 0x00c9baac, 0x00c5b7a6, 0x00c4b3a3, 0x00bead9d, 0x00bca897, 0x00b5a190, 0x00a89788, 0x009b8d80, 0x0093857b, 0x00867a71, 0x00776f66,
- 0x00615a50, 0x0049453f, 0x0085817c, 0x00e4e3de, 0x00fdfbfa, 0x00fbfbf9, 0x00f8f7f6, 0x00fcfefc, 0x00dbd8cd, 0x00858373, 0x003e3c2b, 0x002c2714, 0x001f1707, 0x00251e0f, 0x002a2014, 0x003e3229,
- 0x005b3e20, 0x005c4b38, 0x00625c62, 0x005e6c8a, 0x00446cb1, 0x003467bd, 0x003267c4, 0x00316ecb, 0x003970c6, 0x003c72c1, 0x004070c1, 0x00426cc6, 0x00376eb9, 0x003273b9, 0x00387ac0, 0x003978c2,
- 0x004076cf, 0x004677d2, 0x004676d0, 0x003f76cb, 0x003d79c7, 0x003e76c7, 0x003f75c7, 0x004077c2, 0x004278bb, 0x004179bf, 0x003f79c2, 0x003d76c7, 0x004178cf, 0x003f78cb, 0x003e78c6, 0x003d78be,
- 0x004172c1, 0x004475c4, 0x004272c1, 0x003a6cba, 0x00386ab7, 0x00396bb9, 0x003f71bf, 0x004576c5, 0x004b7ecd, 0x004e81ce, 0x005385d3, 0x005288cb, 0x005a8dd9, 0x00578cd6, 0x00558ad4, 0x00558bd4,
- 0x005d90df, 0x005f93e1, 0x006093e6, 0x006195e8, 0x006193e7, 0x005f95e0, 0x00629ae3, 0x006098e5, 0x005184d3, 0x00487bcd, 0x005487d7, 0x005887d8, 0x005484d0, 0x006491d9, 0x0074a1e7, 0x0093c1f8,
- 0x00d3e4fa, 0x00dfe8f2, 0x00ecebea, 0x00f1e8df, 0x00f1e8ea, 0x00e9e6f5, 0x00e3e3fa, 0x00dad6ee, 0x00a08d89, 0x00846249, 0x009a734b, 0x009c7848, 0x009c7645, 0x00a27643, 0x00ad8049, 0x00b9884c,
- 0x00b48842, 0x00b68b43, 0x00c0904e, 0x00c4945b, 0x00c08f63, 0x00c18c57, 0x00bf8850, 0x00bd8751, 0x00ac7f50, 0x00967044, 0x00906e46, 0x00977951, 0x00967853, 0x00af8e6d, 0x00ddb997, 0x00ecc8a7,
- 0x00cbc9b5, 0x00a8a598, 0x00857f7b, 0x009a9295, 0x00d5cbd8, 0x00eadff0, 0x00f5ebfa, 0x00f4ebf8, 0x00f6f0f2, 0x00dcd6d7, 0x00958c82, 0x00594a33, 0x0047331d, 0x0047311c, 0x004e3723, 0x00573e2c,
- 0x00634d3f, 0x005e5147, 0x00524b46, 0x003d3f3b, 0x00111717, 0x00000404, 0x00747777, 0x00eff0f4, 0x00fcfdfd, 0x00fdfffe, 0x00fbfefc, 0x00f8fcfc, 0x00a7aab6, 0x00282a3b, 0x00080a1f, 0x000b0d26,
- 0x0008184b, 0x000a204c, 0x00091f46, 0x00031435, 0x00040616, 0x000f0306, 0x0042261e, 0x006b4530, 0x00997340, 0x00a98348, 0x00b89355, 0x00bc995a, 0x00caae83, 0x00e6d3c0, 0x00f7f1ed, 0x00f3f9fd,
- 0x00acc4ee, 0x005474bb, 0x00234a9c, 0x001949a1, 0x00275ab8, 0x00295fc4, 0x002e64c3, 0x003469bf, 0x004375b6, 0x00618ec4, 0x008db6df, 0x00a9cff0, 0x0098bbda, 0x007d9bbd, 0x005e789d, 0x0041597f,
- 0x00323a43, 0x002d2a29, 0x003f3128, 0x005f4433, 0x005a3b2c, 0x00452e21, 0x00312013, 0x0041301f, 0x00815e39, 0x00a77644, 0x00ba8955, 0x00b08857, 0x007c5435, 0x005b311d, 0x00774c42, 0x007a4e51,
- 0x00805655, 0x007b5145, 0x00835845, 0x00a17856, 0x00bb9364, 0x00b28759, 0x00906034, 0x00814c1d, 0x006d3a14, 0x006d4324, 0x005f442c, 0x002e1f14, 0x00060001, 0x00120806, 0x00392a21, 0x00584536,
- 0x004b3621, 0x00271e11, 0x00201f1b, 0x001c2424, 0x00252825, 0x00302a1d, 0x00392d17, 0x003e2c15, 0x00362f23, 0x002c302c, 0x00262e2a, 0x002b291f, 0x002a261e, 0x0025201b, 0x001c1915, 0x00181512,
- 0x000f0f0e, 0x000b0b0c, 0x00050707, 0x00040506, 0x00050609, 0x00010708, 0x00020909, 0x00060a0b, 0x000a0809, 0x00110d0d, 0x00191210, 0x001f1510, 0x002b1915, 0x00311b17, 0x00321b17, 0x00321815,
- 0x00291a0e, 0x0024150d, 0x001e100d, 0x00180d0d, 0x0012090f, 0x00090408, 0x001d1c1c, 0x007a7b79, 0x00f0f6f0, 0x00f8fef7, 0x00fbfefb, 0x00fdfdfd, 0x00f8f7fb, 0x00c2bfcf, 0x00757287, 0x008b88a2,
- 0x00b9b4d6, 0x00d0ccee, 0x00dbd4f8, 0x00d7d4f3, 0x00c4bddc, 0x00a79698, 0x007b6154, 0x008b6b5f, 0x00b38572, 0x00b6856e, 0x00aa735b, 0x00aa715a, 0x00ac745e, 0x00ad7a64, 0x00ae806d, 0x00af8573,
- 0x00a77872, 0x006c4d4c, 0x0033262c, 0x0019202d, 0x000a1a2a, 0x00112028, 0x000b0f12, 0x00241d16, 0x00573f35, 0x00482c23, 0x00452d21, 0x003b2f18, 0x0020160d, 0x000e0407, 0x00070206, 0x00060606,
- 0x00050410, 0x00050620, 0x00080c35, 0x000a1950, 0x000f2368, 0x00132471, 0x00182877, 0x00172572, 0x001d2376, 0x00313785, 0x004b539c, 0x0051589b, 0x0031346c, 0x000e1243, 0x00191d48, 0x00151c45,
- 0x000a110a, 0x00000501, 0x00010402, 0x00000300, 0x00000100, 0x00030101, 0x00000001, 0x00020002, 0x00030000, 0x00020000, 0x00010000, 0x00010300, 0x0000000d, 0x00080c2a, 0x00171e45, 0x00141e47,
- 0x00293557, 0x005e6d8e, 0x0095a4ce, 0x007781ba, 0x006264b7, 0x008280b8, 0x009d9ac2, 0x00a6a4c7, 0x00a6a4bf, 0x008d8ca0, 0x0061636f, 0x00464950, 0x002b2c33, 0x001b1c23, 0x00181a20, 0x0035373d,
- 0x00bdb6a4, 0x00352110, 0x003f2a14, 0x00311c07, 0x002c1903, 0x00261301, 0x00281704, 0x0030200d, 0x003a2d20, 0x0041372b, 0x004d4239, 0x0059514b, 0x006b625a, 0x007a6e6b, 0x00928e85, 0x00a6a29b,
- 0x00c9c1c2, 0x00d7d3d0, 0x00e7e3df, 0x00ece6e3, 0x00f3f0ee, 0x00f5f1f1, 0x00faf7f6, 0x00fdfbfa, 0x00fffeff, 0x00fefeff, 0x00fdffff, 0x00fcffff, 0x00fcfefd, 0x00fcfffe, 0x00faffff, 0x00f6fdfb,
- 0x00fffcff, 0x00fffcff, 0x00fefdfe, 0x00fcfdfc, 0x00fefdfe, 0x00fdfdfd, 0x00fbfdfd, 0x00fafcfc, 0x00fefbff, 0x00fbfcff, 0x00f7fcfc, 0x00f8fef4, 0x00f9fef7, 0x00f7fdf6, 0x00f6fff9, 0x00f3fef6,
- 0x00eaf5ff, 0x00e3f1ff, 0x00dcedff, 0x00d2e4fa, 0x00c3d6ec, 0x00b6cbee, 0x00a1bbe1, 0x008ba6ce, 0x007994c7, 0x007893c8, 0x007391cb, 0x006d8fce, 0x007093d8, 0x006c91db, 0x006289d5, 0x005d84d1,
- 0x005588dd, 0x005483db, 0x005583dc, 0x005481dc, 0x004873ce, 0x002b56b2, 0x0017409f, 0x001f44a5, 0x003c5dc7, 0x00506fda, 0x004d73d8, 0x00325ebc, 0x00123897, 0x001b3b97, 0x003e5cb4, 0x003853a9,
- 0x001d398d, 0x001f3e92, 0x00385fad, 0x003664af, 0x003c70bd, 0x007190bf, 0x00bbcce9, 0x00ceddf5, 0x00d8ddf1, 0x00d5dae6, 0x00d3d5dc, 0x00cdced3, 0x00c9c9d4, 0x00cdcedb, 0x00cacbdc, 0x00bfc0d2,
- 0x00b5b5bd, 0x00babbce, 0x00bdc4d6, 0x00b6ced0, 0x00cec9bd, 0x00c7a3ab, 0x00714b68, 0x00312b5e, 0x00103c75, 0x00202f65, 0x001c2650, 0x0007223c, 0x000b0c22, 0x00130a13, 0x00452e24, 0x007c6045,
- 0x00ab8c58, 0x00c19e66, 0x00c9a669, 0x00cba067, 0x00c3895a, 0x00ac8c66, 0x00dbc5ab, 0x00fdf4e4, 0x00fffdfe, 0x00fefaff, 0x00fdfeff, 0x00f6fdfa, 0x00aeb4ac, 0x00626760, 0x00898b8b, 0x00b4b3b7,
- 0x00e9e7e8, 0x00fafaf9, 0x00fefdfd, 0x00fdfdf9, 0x00fcfcfb, 0x00fefffc, 0x00fcfdfb, 0x00fbfdfb, 0x00fffeff, 0x00ffffff, 0x00fbfffd, 0x00f8fdfa, 0x00f9fdfa, 0x00fafdfb, 0x00fafefc, 0x00fcfffc,
- 0x00fdffff, 0x00fdfeff, 0x00fdfefd, 0x00fcfdfc, 0x00fefffc, 0x00fbfef8, 0x00fbfdf9, 0x00fafdf9, 0x00fffffe, 0x00fdfefc, 0x00fdfffb, 0x00fbfefa, 0x00fbfefb, 0x00fbfefb, 0x00fbfefa, 0x00fcfffa,
- 0x00fffdfb, 0x00fffdfc, 0x00fdfdf7, 0x00fcfdf8, 0x00fefcf9, 0x00fdfcf8, 0x00fbfcf5, 0x00fcfdf6, 0x00fffdfb, 0x00fffdfb, 0x00fcfcf5, 0x00fcfef5, 0x00fcfff9, 0x00fafef7, 0x00fbfff8, 0x00fbfdf8,
- 0x00fffef9, 0x00fefef9, 0x00fdfef7, 0x00fafef5, 0x00fbfff7, 0x00fcfff9, 0x00fafef6, 0x00f7fcf4, 0x00f9faf8, 0x00f7f8f4, 0x00f3f7f0, 0x00f1f5ef, 0x00f3f4ee, 0x00f0f2ec, 0x00eef1eb, 0x00edf0ea,
- 0x00eaeae4, 0x00e9ebe1, 0x00e6e8df, 0x00e2e4da, 0x00daddd1, 0x00d9dccf, 0x00d6d8cc, 0x00d3d5c8, 0x00d3d6cc, 0x00d2d4ca, 0x00cfd0c7, 0x00cacfc6, 0x00c8cabf, 0x00c5c9ba, 0x00c0c4b5, 0x00bdc2b2,
- 0x00bcbfb0, 0x00babdaf, 0x00b0b7a3, 0x00aab39f, 0x00a8ae98, 0x00a3ab95, 0x0099a488, 0x0097a086, 0x00979e86, 0x00939b84, 0x00889279, 0x00848e74, 0x00828c73, 0x00929c82, 0x009faa8d, 0x008f9a7e,
- 0x008e9782, 0x0095a089, 0x0096a38a, 0x00a3af95, 0x00949e86, 0x00727b62, 0x00657055, 0x00828f73, 0x00a3ac96, 0x00929b83, 0x00889479, 0x009aa888, 0x007f8a6e, 0x007f8b6f, 0x006d7b5e, 0x00647353,
- 0x008a947a, 0x008a9778, 0x00849173, 0x00778567, 0x00808c6e, 0x006c7c5c, 0x00647755, 0x00768a68, 0x006f7b61, 0x0079836d, 0x00c8ccbf, 0x00f7fcf0, 0x00fefefc, 0x00fefdfc, 0x00fcfdfe, 0x00f5f2f7,
- 0x007b787b, 0x00110e18, 0x0005091d, 0x0018203e, 0x00283666, 0x0024336d, 0x00233470, 0x00223772, 0x00303e7f, 0x00344280, 0x00283c7a, 0x001b3379, 0x00253974, 0x003c5181, 0x005e729d, 0x004e5c8a,
- 0x001e235f, 0x00151d5c, 0x00131f5d, 0x001c2c64, 0x001d2d5e, 0x00172759, 0x00162553, 0x0016204f, 0x001e2259, 0x001b245f, 0x0011215d, 0x001b316c, 0x00253a6a, 0x001e2b4b, 0x00121424, 0x00191317,
- 0x00131119, 0x0017141a, 0x000d0c0f, 0x00101012, 0x001d1b1e, 0x001d1d1f, 0x00161816, 0x000b0c09, 0x000b090a, 0x00100d0c, 0x000b0805, 0x00140f0e, 0x00121511, 0x000c1211, 0x0018221c, 0x001c231c,
- 0x00272218, 0x00262422, 0x0024242a, 0x00242a3a, 0x00192b4b, 0x00182456, 0x00232e68, 0x00293b77, 0x002e418d, 0x00354c99, 0x003b56a4, 0x003753a2, 0x003c56a5, 0x003c539f, 0x00304189, 0x006d78c0,
- 0x0096aad4, 0x005f72a5, 0x003c518d, 0x00435ba1, 0x00405aa3, 0x00345091, 0x002f4b86, 0x00254075, 0x0021336e, 0x001c2d6b, 0x000f205f, 0x000e1f63, 0x00243976, 0x002d4170, 0x001b2b4a, 0x000c1420,
- 0x0016120a, 0x00221a11, 0x001e1a10, 0x001a1d17, 0x000d1d22, 0x00121719, 0x0019191c, 0x00141719, 0x00131d22, 0x0017232a, 0x0049585a, 0x00819295, 0x00c5cfd3, 0x00f4f9f8, 0x00f9fbfb, 0x00fcfafd,
- 0x00fffcfd, 0x00fffdfc, 0x00a4a6a1, 0x0041463f, 0x00505256, 0x0061656f, 0x00797b8b, 0x00adadc0, 0x00fcf6ff, 0x00fffbfc, 0x00fdfcf3, 0x00fdfdf7, 0x00fcfcfb, 0x00fdfbff, 0x00fefbfd, 0x00fdfbfc,
- 0x00d0c5bf, 0x00b6a99f, 0x00b7b09f, 0x00b5afa6, 0x00b3aaa8, 0x00c0b2af, 0x00cfc7bf, 0x00d8d0c6, 0x00ebdfdb, 0x00f7ebe7, 0x00f9ece5, 0x00fcf7ef, 0x00fef6ee, 0x00fdf9ef, 0x00fefbf1, 0x00fefdf3,
- 0x00f4fdf1, 0x00f5fef3, 0x00f6fff5, 0x00f8fff7, 0x00fbfff9, 0x00f8fbf6, 0x00f8fdf8, 0x00f9fffa, 0x00fffffb, 0x00fcfdf7, 0x00f8fdf6, 0x00fbfbf7, 0x00fffffb, 0x00fdfdfb, 0x00fcfafa, 0x00fefcfc,
- 0x00fffdff, 0x00fffdff, 0x00fcfcfd, 0x00fdfdfc, 0x00fefdff, 0x00fbfbfc, 0x00fbfbfc, 0x00f8fcfd, 0x00fdfeff, 0x00fcffff, 0x00fbfefe, 0x00fafffe, 0x00f9fefd, 0x00fafffe, 0x00f9fffd, 0x00f7fefc,
- 0x00fffbff, 0x00fffbff, 0x00fefbff, 0x00fdfbfc, 0x00fdfcfc, 0x00fdffff, 0x00fcfdfe, 0x00fdfcfb, 0x00fffcff, 0x00fefbff, 0x00fffcff, 0x00fefcfd, 0x00fefbfe, 0x00fefafd, 0x00fefbf8, 0x00fdf9fa,
- 0x00fefbff, 0x00fffcff, 0x00fffaff, 0x00fffafe, 0x00fefafd, 0x00f8fbfe, 0x00f7fefe, 0x00fbfefd, 0x00fdfdff, 0x00fdfdff, 0x00fcfdfe, 0x00fdfffc, 0x00fcfcfd, 0x00fbfdfa, 0x00fbfbf7, 0x00fbfbf7,
- 0x00fefefc, 0x00fffdfa, 0x00fcfcf5, 0x00fdfbf4, 0x00fdf7f0, 0x00fdfbf0, 0x00fcfcf1, 0x00fcfaf1, 0x00fffcf2, 0x00fff9ef, 0x00fef7ee, 0x00fcf3ed, 0x00faeeeb, 0x00f5ebe7, 0x00efe7e4, 0x00ebe1e1,
- 0x00ded6d5, 0x00d2cccd, 0x00dbd5d3, 0x00f5f0ef, 0x00fcf7f8, 0x00fffdff, 0x00fbfbfa, 0x00f8fbf8, 0x00dadad4, 0x008b8d82, 0x003f4035, 0x0029291a, 0x00201b0f, 0x001e1c11, 0x002d261f, 0x00362f29,
- 0x00503a34, 0x00514448, 0x005c5a70, 0x00536689, 0x00355a9e, 0x003b6aba, 0x003568be, 0x00346bc3, 0x003e6ac2, 0x00416cc2, 0x00416cbf, 0x00466ec1, 0x00376bb0, 0x003470b4, 0x003b78bb, 0x003c7bbc,
- 0x003e6fc3, 0x004371cb, 0x004273cc, 0x003d74cc, 0x003b7ccf, 0x004279cc, 0x004376c7, 0x004177c2, 0x004679bd, 0x004578c2, 0x004477c1, 0x004275c9, 0x004174cb, 0x004277ca, 0x004077c2, 0x003e76b9,
- 0x003f71c4, 0x004476c9, 0x003f71c0, 0x00386aba, 0x003b6ebc, 0x004073c5, 0x00467ac9, 0x004a7ecd, 0x004e7fd4, 0x004f7fd4, 0x005283d3, 0x005485ce, 0x005787cd, 0x005b8bd5, 0x005587cf, 0x00507fc7,
- 0x00527fce, 0x00517ecf, 0x004d7ccc, 0x00517ed1, 0x005383d2, 0x005286d3, 0x00548dd7, 0x005d95e3, 0x00588ade, 0x004a7dd3, 0x005184d5, 0x00598bdd, 0x004576c2, 0x005081c9, 0x005d8ed2, 0x0073a4e5,
- 0x00b8d2f8, 0x00cedff7, 0x00e4e9f0, 0x00eee9e5, 0x00f2e8e6, 0x00f0e7f0, 0x00ebe4f1, 0x00e8dfec, 0x00c9b3ac, 0x00a2826f, 0x009b7950, 0x00ae8850, 0x00b58d58, 0x00b98a58, 0x00b78b4f, 0x00bb8c4c,
- 0x00b9874b, 0x00b68647, 0x00c39453, 0x00cd9e63, 0x00bf8f5c, 0x00bb8750, 0x00b17f43, 0x00a87a3d, 0x00aa7c4e, 0x00b2895f, 0x00c6a075, 0x00d1b086, 0x00d3af8a, 0x00c4a07a, 0x00cba47e, 0x00ddb68e,
- 0x00c9baa3, 0x00ac9c8c, 0x008a7b73, 0x00968785, 0x00cdbeca, 0x00e7dae9, 0x00f0e4f3, 0x00f3e8f2, 0x00fcf1f6, 0x00f5ecee, 0x00d0c3bf, 0x008a786a, 0x00594432, 0x0057422b, 0x00523b21, 0x004d351a,
- 0x00493520, 0x00443823, 0x00372e24, 0x00211d1c, 0x0005070d, 0x00010106, 0x0075797a, 0x00edf2f0, 0x00fefdff, 0x00fffffe, 0x00fdfffa, 0x00fafdfa, 0x00a9abb3, 0x002b2d35, 0x000b0d16, 0x000d0e1c,
- 0x00091140, 0x000e1945, 0x00112048, 0x000a1a3e, 0x00070d25, 0x00070513, 0x00170a0e, 0x00372317, 0x00795b3d, 0x008c7045, 0x00a38a59, 0x00a9925e, 0x00c3b290, 0x00e3dbc9, 0x00edefef, 0x00dee8fa,
- 0x0091a9db, 0x004162a3, 0x00254c9a, 0x0015429b, 0x002250ae, 0x002c65c7, 0x002966c8, 0x002d6ac7, 0x002e64b5, 0x003164ac, 0x004978b8, 0x005d89c3, 0x005077ac, 0x003d6093, 0x003c5f91, 0x003b5e8e,
- 0x0058677e, 0x00595d6b, 0x005a575e, 0x00645552, 0x004d3a35, 0x003d2e29, 0x0021130e, 0x00231106, 0x005e3a1d, 0x00895d31, 0x00ad7d4a, 0x00bc915d, 0x00a77d54, 0x00885b3e, 0x009f705a, 0x00a97c70,
- 0x00b48079, 0x00ac796a, 0x00a5755a, 0x00b0835c, 0x00ba8e59, 0x00a97e53, 0x00835931, 0x0076491f, 0x00673917, 0x006b4428, 0x005a432a, 0x002c1d15, 0x00050001, 0x00110805, 0x00352720, 0x00504032,
- 0x0046311d, 0x00271f11, 0x0023251f, 0x00202d2c, 0x00242c29, 0x00302e26, 0x003a321f, 0x0040311c, 0x003d3329, 0x0036332c, 0x002f3129, 0x00302c21, 0x002c2a21, 0x0028231c, 0x001f1c16, 0x001a1712,
- 0x00141214, 0x00100f11, 0x0009090b, 0x00070708, 0x0007060a, 0x00020607, 0x00020907, 0x00070909, 0x000d0a0c, 0x00160f0f, 0x001d1513, 0x00251914, 0x002e1814, 0x00351c17, 0x00361f18, 0x00381e18,
- 0x00321d12, 0x002d1a12, 0x00291912, 0x00241714, 0x00190e11, 0x000e070a, 0x00181516, 0x006d6d6d, 0x00eff0ed, 0x00fdfefa, 0x00fdfef8, 0x00fcfdfc, 0x00f9f9fa, 0x00cdcbd9, 0x0078768a, 0x00828097,
- 0x00b7aed3, 0x00cac5eb, 0x00cfc9f1, 0x00d5cff4, 0x00d9d1f7, 0x00cdbbc6, 0x00a08989, 0x00876d6a, 0x00966c61, 0x00af8373, 0x00ae7f6b, 0x00ae7d67, 0x00ac7e67, 0x00aa8168, 0x00a58169, 0x009d7b65,
- 0x00705873, 0x0043344b, 0x00201d2f, 0x0018202d, 0x001b2d36, 0x0053656d, 0x00707c83, 0x00676769, 0x00674c4f, 0x005f3739, 0x005c362e, 0x003b260d, 0x00160801, 0x000a0102, 0x00080704, 0x00050801,
- 0x00040b0c, 0x0001050b, 0x0000050f, 0x0000091a, 0x00021027, 0x00031032, 0x00071542, 0x000f1951, 0x00171963, 0x00151865, 0x00131764, 0x00181a61, 0x0016164a, 0x000a1130, 0x0012192d, 0x00141c24,
- 0x000a0e0c, 0x00020803, 0x00080807, 0x00050603, 0x00010300, 0x00020300, 0x00000101, 0x00020203, 0x00080003, 0x00050001, 0x00040100, 0x00040600, 0x00000006, 0x0002061c, 0x00060c2a, 0x00121c3a,
- 0x00596481, 0x0097a2be, 0x00a0acc9, 0x008089b5, 0x008085c4, 0x009595c1, 0x008787a0, 0x006a6c84, 0x004b4a60, 0x00303041, 0x00141621, 0x0002040c, 0x0001010d, 0x00060614, 0x003a3c49, 0x007a7b87,
- 0x00bdb490, 0x00442f0c, 0x004d3413, 0x004e3213, 0x004e3313, 0x00462c0d, 0x00432a0d, 0x0040260c, 0x002a1e00, 0x00271a00, 0x002c1c07, 0x00321f10, 0x00352110, 0x00352315, 0x003f2f23, 0x004a3a32,
- 0x004d4739, 0x00595246, 0x00716760, 0x00837976, 0x009c9491, 0x00ada4a2, 0x00c2bab9, 0x00d3cfd0, 0x00e0e0db, 0x00e9eae8, 0x00f5f3f4, 0x00f7f6f7, 0x00f9fcfb, 0x00f7fdfb, 0x00fbfdff, 0x00fefeff,
- 0x00f9fcf5, 0x00f9fcf6, 0x00fcfcfd, 0x00fffdff, 0x00fffdfe, 0x00fffcff, 0x00fdf9ff, 0x00fffbff, 0x00f2fcf5, 0x00f3fbf8, 0x00f9fcf5, 0x00fffeee, 0x00fdfceb, 0x00fefeec, 0x00fefef2, 0x00fdfbf4,
- 0x00f8fff2, 0x00f6fef6, 0x00fbfdfd, 0x00fafdfd, 0x00f8fbfc, 0x00effbfc, 0x00eaf8fc, 0x00e2f4f6, 0x00d0e9ec, 0x00c7e1ea, 0x00c4dcf3, 0x00bed5f4, 0x00b2c8f3, 0x00a5bdf0, 0x0094ace8, 0x00889fde,
- 0x006896da, 0x006894d9, 0x00628ad5, 0x004d74c4, 0x00254ca1, 0x001c439c, 0x002a50ae, 0x004165c7, 0x004f79d8, 0x004872d2, 0x002f53ba, 0x001c3caa, 0x001f3fa7, 0x003855ba, 0x00445cbf, 0x00263d9f,
- 0x00133a8a, 0x002a54a5, 0x003560b2, 0x003a68b9, 0x00447aca, 0x007791c0, 0x00c3cfef, 0x00d7dff7, 0x00d1dde7, 0x00d4dae3, 0x00d8d8e2, 0x00d2d1db, 0x00cdcdd9, 0x00cdcddb, 0x00cbcbdc, 0x00c4c3d9,
- 0x00b1b9ba, 0x00b2b6c1, 0x00b9becf, 0x00b6c8d1, 0x00cecac3, 0x00c7a9b6, 0x00735175, 0x00332a60, 0x000b376a, 0x00152e64, 0x001c2d61, 0x000e294c, 0x00060c1f, 0x00160913, 0x00523d34, 0x008d6e53,
- 0x00aa9257, 0x00bca062, 0x00caa468, 0x00ca9d65, 0x00c48b58, 0x00b39674, 0x00e7d5c1, 0x00fff7ef, 0x00f7f8f7, 0x00f6fbf7, 0x00f9fcfd, 0x00f4faf7, 0x00a4aca2, 0x0060645d, 0x00939394, 0x00c7c4ca,
- 0x00e8eee7, 0x00f5fbf5, 0x00fbfdfa, 0x00fafaf9, 0x00fafcfb, 0x00fdfdfd, 0x00ffffff, 0x00ffffff, 0x00f6fef8, 0x00f6fef6, 0x00f9fffb, 0x00f9fdfd, 0x00f9fcfb, 0x00fbfdfc, 0x00fcfdfd, 0x00fcfdfc,
- 0x00f4faf4, 0x00f5fbf5, 0x00f8fbf8, 0x00f8fbfa, 0x00f8fbfa, 0x00fafdfc, 0x00fcffff, 0x00fdffff, 0x00f4faf6, 0x00f6fcf9, 0x00f9fcfd, 0x00f8fbfd, 0x00f8fdfe, 0x00f9fefe, 0x00fcfefe, 0x00fcfdfe,
- 0x00fbfafa, 0x00fafbfa, 0x00fefcfc, 0x00fffdfd, 0x00fdfdfe, 0x00fdfbfe, 0x00fffaff, 0x00fffcff, 0x00f6fcf5, 0x00f9fcf8, 0x00fefbfc, 0x00fffbfb, 0x00fefbfd, 0x00fdfbfa, 0x00fefafb, 0x00fefbfd,
- 0x00f9fbf7, 0x00fafcf7, 0x00fcfdf9, 0x00fdfdfb, 0x00fefdfc, 0x00fffdfc, 0x00fffcfe, 0x00fffcff, 0x00fafcf7, 0x00fcfdf8, 0x00fefdfd, 0x00fefdfe, 0x00fefdfc, 0x00fefdfd, 0x00fffcfe, 0x00fffcfd,
- 0x00f8fcef, 0x00fafff2, 0x00fffff5, 0x00fffef5, 0x00fcfdf4, 0x00fdfcf4, 0x00fffbf3, 0x00fefbf3, 0x00f6fbea, 0x00f7fbed, 0x00fafbf4, 0x00fcfbf8, 0x00fdfaf7, 0x00fdf9f6, 0x00fdf8f5, 0x00fdf8f3,
- 0x00f3f5e8, 0x00f3f5ea, 0x00f4f2ec, 0x00f3efe7, 0x00eeeee6, 0x00ebf0e3, 0x00eaeee2, 0x00e8ecdf, 0x00e1e9d8, 0x00dfe6d5, 0x00dfe5d7, 0x00dee3d6, 0x00dce1d1, 0x00dee3d4, 0x00e2e9dc, 0x00dde4d6,
- 0x00cedcc7, 0x00cddac6, 0x00cbd6c2, 0x00d6e0cd, 0x00d4decc, 0x00c5cebd, 0x00bec5b5, 0x00ccd2c2, 0x00ced9c2, 0x00c5d0bc, 0x00cdd8c4, 0x00d4dec8, 0x00b8c2ad, 0x00bbc3b2, 0x00b8c0af, 0x00b0b8a5,
- 0x00b5c4ac, 0x00b3c2a8, 0x00b3bea9, 0x00aeb7a3, 0x00b3bda9, 0x009fac96, 0x00a1ae9a, 0x00abb8a3, 0x009dab96, 0x00a7b29f, 0x00dae1d5, 0x00f8fcf6, 0x00fcfefc, 0x00fefeff, 0x00fffdff, 0x00f4f1f7,
- 0x0070716c, 0x00090f13, 0x00060b21, 0x001c2249, 0x00323e79, 0x002d3b80, 0x002e3f8f, 0x002b4293, 0x002f4b95, 0x0037539c, 0x003650a1, 0x00314aa3, 0x00304a96, 0x004e64aa, 0x007b8dd3, 0x006273b7,
- 0x00263980, 0x001c2e7a, 0x00223583, 0x0030438e, 0x0032478a, 0x002b4188, 0x00253882, 0x00253179, 0x001a2d6b, 0x0016296b, 0x0012266f, 0x00172f78, 0x00253a73, 0x00222d57, 0x00171733, 0x001b1121,
- 0x00101415, 0x00131616, 0x00100f12, 0x00141215, 0x001f1e1e, 0x00232221, 0x001e1b1d, 0x00131212, 0x00090e06, 0x000c120c, 0x0010100c, 0x00181312, 0x00131815, 0x000c1613, 0x001e2622, 0x00262822,
- 0x0026291b, 0x00292b23, 0x002a2a30, 0x00283146, 0x00203258, 0x00202f6c, 0x002a3481, 0x00313d8c, 0x00204089, 0x00274795, 0x003956ae, 0x003c59b5, 0x00425cb6, 0x003f55ae, 0x00314098, 0x006672c8,
- 0x0085a9d2, 0x005d80b5, 0x003e60a3, 0x003e60b0, 0x003b5eb4, 0x00375aac, 0x00375aa7, 0x0033559f, 0x002c5094, 0x0023468d, 0x00183280, 0x001c2d7a, 0x00213579, 0x002a3e76, 0x0025315c, 0x0011162d,
- 0x00101005, 0x001b1909, 0x001c190d, 0x00161b14, 0x00101d1b, 0x00101517, 0x0019171b, 0x0016151b, 0x000c1b1a, 0x00122522, 0x004d5e62, 0x0086979d, 0x00c7d1d5, 0x00f6fbfc, 0x00fcfcff, 0x00fffcff,
- 0x00f6f7f5, 0x00f8faf6, 0x00b8bab2, 0x005e6254, 0x00616759, 0x00686a67, 0x00807d84, 0x00b0aab8, 0x00f5f5f7, 0x00fafcf6, 0x00fef9fa, 0x00fefbf9, 0x00fffcff, 0x00fef9ff, 0x00fffbff, 0x00fffbff,
- 0x007b725f, 0x003d2f18, 0x004c3a27, 0x00453424, 0x00463428, 0x004e3c2b, 0x00604c3e, 0x00685045, 0x006b5846, 0x00766352, 0x00786657, 0x007d6a5c, 0x00806e60, 0x00816f61, 0x00867468, 0x0088766b,
- 0x00a2a38b, 0x00adad97, 0x00c5c4b1, 0x00d8d6c5, 0x00e7e5d3, 0x00f0ecde, 0x00f6f1e7, 0x00f5f0e7, 0x00ebeddc, 0x00eef1e3, 0x00f6f2ed, 0x00f7f0ec, 0x00fbf7f3, 0x00fbf8f5, 0x00fdf7f7, 0x00fffafc,
- 0x00f8f9f6, 0x00fafbf8, 0x00fefdfd, 0x00fffbfe, 0x00fef7f9, 0x00fef7f9, 0x00fffcfe, 0x00fefdfe, 0x00f5fbf6, 0x00f7fff9, 0x00f6fcf8, 0x00fdfffd, 0x00fdfffe, 0x00fcfefe, 0x00fdfdff, 0x00fffeff,
- 0x00f8fbf9, 0x00fafbfa, 0x00fdfcfd, 0x00fefcfd, 0x00fffeff, 0x00fdfdfd, 0x00fefffe, 0x00ffffff, 0x00f4fff8, 0x00f4fffa, 0x00f9fefe, 0x00fcfbff, 0x00fefcff, 0x00fdfcff, 0x00fffcff, 0x00fefdfe,
- 0x00f9fdfa, 0x00fafefa, 0x00fcfefd, 0x00fefefe, 0x00fefdfe, 0x00fcfefe, 0x00fcfdff, 0x00ffffff, 0x00f6fef8, 0x00f5fcf7, 0x00fbfefc, 0x00fdfefe, 0x00f8fcfc, 0x00fbfdff, 0x00fdfcff, 0x00fefcff,
- 0x00f7fff8, 0x00f6fef8, 0x00fafffb, 0x00fcfefc, 0x00fefefd, 0x00fcfbfb, 0x00fdfcfd, 0x00fefcff, 0x00f8fef2, 0x00f8fcf1, 0x00fdfaf8, 0x00fff7fb, 0x00fff7fa, 0x00fff6fb, 0x00fff9ff, 0x00fffafc,
- 0x00f7f9f7, 0x00fbfaf8, 0x00fffafd, 0x00fef7fb, 0x00fffdfe, 0x00fcfeff, 0x00fafcff, 0x00fcfdff, 0x00edf3ed, 0x00dde3db, 0x00caccc6, 0x00c5c3be, 0x00b5b2ad, 0x009e9c98, 0x009e9c9a, 0x0092918e,
- 0x008d8986, 0x0080858e, 0x007f879e, 0x006b80a2, 0x004a70a1, 0x004975b0, 0x004770b8, 0x00456eb9, 0x004471b5, 0x00476dae, 0x004f6eb3, 0x004d6eb0, 0x003b68a8, 0x003b70ab, 0x003e75b4, 0x004177b7,
- 0x004479ba, 0x004576bf, 0x004374c8, 0x003c77cc, 0x00367bd2, 0x004179d0, 0x004877cc, 0x004777c7, 0x003f79b5, 0x003e78b9, 0x004176c2, 0x004474ca, 0x004475cb, 0x004576ca, 0x004676c3, 0x004777bf,
- 0x003670bc, 0x003c75c2, 0x003b71c2, 0x003a6fc2, 0x004075c3, 0x00477ccc, 0x004d81d4, 0x004d81d5, 0x00467fcc, 0x00467ec9, 0x004f7fd1, 0x00507cc6, 0x004a76bd, 0x00527ec9, 0x005a85d2, 0x005781cf,
- 0x004e7dc6, 0x004977c1, 0x00446fbe, 0x00416cba, 0x00426bbc, 0x003a70ba, 0x00427ac9, 0x00558ade, 0x00538cd9, 0x004980d0, 0x005185d9, 0x00588de1, 0x003d71c2, 0x004277c3, 0x005284cf, 0x006192dc,
- 0x008abce5, 0x00aed2ef, 0x00d5e9f4, 0x00e4eaeb, 0x00f4e5e4, 0x00f6e6ec, 0x00f8e5f0, 0x00f7e3ec, 0x00d7c9b7, 0x00b29c82, 0x009c7f58, 0x00b0864a, 0x00bd9257, 0x00c28e59, 0x00bb8954, 0x00b7824e,
- 0x00a87639, 0x00a57538, 0x00b7884c, 0x00c8995d, 0x00bd9254, 0x00b28146, 0x00aa773e, 0x00a47239, 0x00ab8448, 0x00bb9660, 0x00c69c6e, 0x00d1a67d, 0x00d2a782, 0x00cba279, 0x00d4a57c, 0x00dcaa84,
- 0x00c3b48a, 0x00b7a484, 0x009b8574, 0x0097847d, 0x00c6b4bd, 0x00e5d7e1, 0x00f5e4f5, 0x00f7eafa, 0x00f1f2f0, 0x00f2f2ef, 0x00ebdfdf, 0x00bca7a5, 0x00796353, 0x00624d36, 0x005d4429, 0x00583c1d,
- 0x003e2e06, 0x00312507, 0x00241a09, 0x00120c0a, 0x0002000a, 0x00020309, 0x0078797f, 0x00f2f1f6, 0x00f6fdf6, 0x00f7fdf3, 0x00fcfefa, 0x00fdfef8, 0x00adaeaa, 0x002f312f, 0x00121215, 0x0017171c,
- 0x00050e2d, 0x00061134, 0x000a163b, 0x000c1840, 0x000b1739, 0x0007122b, 0x00070617, 0x00231d21, 0x00564e32, 0x00635838, 0x00877956, 0x00928c62, 0x00a9a589, 0x00c0c0b7, 0x00dbe0e6, 0x00c6d2e9,
- 0x005e7ea6, 0x002f538d, 0x002b4e9b, 0x00133e95, 0x001b4aa9, 0x002060c0, 0x002164c7, 0x002b6acb, 0x00296dc0, 0x002766bb, 0x002c64b8, 0x002f61b0, 0x00204b95, 0x00184186, 0x001d4688, 0x00264c8e,
- 0x005c7f9d, 0x0070879e, 0x006a7389, 0x005b5a6b, 0x00504550, 0x0041353e, 0x002a1a20, 0x0024120e, 0x003a2204, 0x0069431a, 0x00a4774a, 0x00c2945f, 0x00bf8c5f, 0x00a5724f, 0x009c654d, 0x00a86d5e,
- 0x00a4725b, 0x00a77656, 0x00a97552, 0x00b07f52, 0x00ba8c55, 0x00a67d52, 0x00845837, 0x00784927, 0x005f3b12, 0x005f411f, 0x00553e2a, 0x002d1e15, 0x00070102, 0x000b0200, 0x002d1e1b, 0x00513a33,
- 0x0044391b, 0x00282710, 0x00272a21, 0x0022302f, 0x00233330, 0x00313731, 0x003b3731, 0x0046362c, 0x003b3723, 0x00363523, 0x00363225, 0x00353025, 0x00322c1f, 0x002a261b, 0x00251f19, 0x00201c17,
- 0x0012140b, 0x000e120a, 0x000d0d0d, 0x000b080a, 0x00080908, 0x00040709, 0x0006070c, 0x0009090b, 0x00080b04, 0x0015100b, 0x00251915, 0x002d1b15, 0x00341b12, 0x00391c13, 0x003e1f19, 0x00441f1d,
- 0x0037200f, 0x00362112, 0x00382218, 0x00321d18, 0x00251513, 0x00190e0e, 0x00201718, 0x00676362, 0x00e3e9dd, 0x00f8fef6, 0x00fbfdf9, 0x00fdfefa, 0x00fcfcfe, 0x00d7d3de, 0x0080798e, 0x00807995,
- 0x009f9fba, 0x00c3c0e0, 0x00cec6ef, 0x00cbc3f0, 0x00cfc6f1, 0x00ccbcd7, 0x00c8b0c3, 0x00a08796, 0x006c534c, 0x00826555, 0x00987465, 0x009f7867, 0x009e7a64, 0x009b7d65, 0x008c725a, 0x007d654e,
- 0x00273052, 0x00111530, 0x001b1c2f, 0x0034303a, 0x0020262f, 0x0047535c, 0x00b3bcce, 0x00babcd7, 0x00867582, 0x0074535b, 0x0066464d, 0x00403532, 0x00191416, 0x000d0e15, 0x000c111e, 0x0007101a,
- 0x0000100a, 0x00000c04, 0x00010b09, 0x00020805, 0x00090c01, 0x00050c14, 0x0004041d, 0x00080525, 0x00050b3c, 0x00060c42, 0x000a0848, 0x00110d4b, 0x00211d44, 0x00222435, 0x000e1214, 0x000a1008,
- 0x00050c04, 0x00000a01, 0x00070c07, 0x00080907, 0x00070807, 0x00060506, 0x00070204, 0x00070204, 0x00000100, 0x00000100, 0x00020000, 0x00060401, 0x00030201, 0x0004020f, 0x0006061c, 0x00242845,
- 0x00788493, 0x00939fb0, 0x007e86a0, 0x00898db2, 0x00a1a2d1, 0x008585a0, 0x00434054, 0x00171428, 0x0005090e, 0x0003050d, 0x00060610, 0x00070714, 0x000b0b1d, 0x00303046, 0x008c8aa2, 0x00aba7c2,
- 0x00cab991, 0x005b360f, 0x005f3610, 0x00613810, 0x005d3209, 0x005f330a, 0x005b2e06, 0x005a2f08, 0x00502c05, 0x004f2b07, 0x00502a09, 0x00512a0c, 0x004e2707, 0x00452106, 0x003c1a04, 0x00371503,
- 0x002d1104, 0x002d1303, 0x002e1603, 0x00331e0a, 0x00392715, 0x00412c1f, 0x00523b31, 0x005e493f, 0x006a584d, 0x0078695e, 0x008e7f75, 0x00a3978d, 0x00bab4a9, 0x00c9c7bc, 0x00d9d7cc, 0x00e6e4d8,
- 0x00f0e7e6, 0x00f6eeec, 0x00fcf3f4, 0x00fdf7f7, 0x00fcf7f6, 0x00fffcfa, 0x00fdfdfa, 0x00fcfdf8, 0x00fdfbf8, 0x00fefcfa, 0x00fdfcfb, 0x00fffbff, 0x00fef9fe, 0x00fff9ff, 0x00fffbff, 0x00fefdfd,
- 0x00fcfcff, 0x00fffdff, 0x00fcf9ff, 0x00fdf9ff, 0x00fefcfd, 0x00fbfdf7, 0x00f8fff6, 0x00fbfef8, 0x00f8fdfc, 0x00f8fffe, 0x00f7fefe, 0x00f6ffff, 0x00eef8fd, 0x00eaf4ff, 0x00e4edfd, 0x00dde6f6,
- 0x00c9e1f5, 0x00c6dff5, 0x00b1cae7, 0x0095aed6, 0x007087bc, 0x006780bb, 0x00708bca, 0x006d8acb, 0x005b79c3, 0x00405fa9, 0x00203a94, 0x00283dae, 0x004156c7, 0x004559c7, 0x00293da8, 0x001c329e,
- 0x002b45ae, 0x003553be, 0x00385cc8, 0x00416ad9, 0x004978e7, 0x007d93ca, 0x00c5d0eb, 0x00d6dff5, 0x00d7dded, 0x00daddeb, 0x00dfdeeb, 0x00dddce9, 0x00d7d7e4, 0x00ced0dd, 0x00c8c9d9, 0x00c3c5d8,
- 0x00bdc0c7, 0x00b8bac6, 0x00b3b7c3, 0x00b8c1ce, 0x00c9c5ca, 0x00cabaca, 0x0077667f, 0x0037325c, 0x0017316a, 0x00142f71, 0x00152f6b, 0x000c284e, 0x00081022, 0x00221919, 0x0067543e, 0x009b7d57,
- 0x00b69862, 0x00c3a26c, 0x00c9a16b, 0x00c99b66, 0x00c58f5a, 0x00bfa585, 0x00ede4d1, 0x00fefcf6, 0x00f9f9fc, 0x00fafefd, 0x00fafcfd, 0x00ebf0ec, 0x0092988c, 0x005d5e56, 0x0095928f, 0x00c6bfc1,
- 0x00e4e5e1, 0x00f1f2ef, 0x00f5f2f0, 0x00f5f2f1, 0x00f8f7f4, 0x00f7f7f3, 0x00faf9f5, 0x00fcfbf6, 0x00fcfbf7, 0x00fcfcf7, 0x00fdfcfa, 0x00fefdfd, 0x00fefefd, 0x00fefffd, 0x00fffffe, 0x00fdfffc,
- 0x00fdfefc, 0x00fcfdfc, 0x00fdfdfd, 0x00fdfefd, 0x00fdfefd, 0x00fdfffd, 0x00fcfffc, 0x00fbfefb, 0x00fdfeff, 0x00fcfdfe, 0x00fcfdff, 0x00fdfeff, 0x00fefdff, 0x00fdfefe, 0x00fcfffe, 0x00fbfffd,
- 0x00fdfcfd, 0x00fdfcfd, 0x00fffcfe, 0x00fffcfe, 0x00fefdfd, 0x00fdfdfd, 0x00fefdfe, 0x00fefdff, 0x00fcfdfd, 0x00fbfdff, 0x00fdfcff, 0x00fefdfe, 0x00fdfeff, 0x00fdfefd, 0x00fdfcfc, 0x00fdfbfc,
- 0x00fefbfc, 0x00fefcfc, 0x00fefdfd, 0x00fefdff, 0x00fefcff, 0x00fefcfe, 0x00fdfcfe, 0x00fdfcff, 0x00fefefe, 0x00fffdfd, 0x00fffcff, 0x00fffcff, 0x00fffdfd, 0x00fdfcfc, 0x00fdfafc, 0x00fefafc,
- 0x00fdfcfa, 0x00fbfbf9, 0x00fcfbfa, 0x00fdfdfb, 0x00fdfffd, 0x00fcfffc, 0x00fdfefb, 0x00fefefb, 0x00fefef9, 0x00fffefa, 0x00fffdfc, 0x00fefcfe, 0x00fdfbff, 0x00fcfcff, 0x00fdfdff, 0x00fffeff,
- 0x00fefbfd, 0x00fefdff, 0x00fffeff, 0x00fffdff, 0x00fcfefd, 0x00fbfffd, 0x00fdfefd, 0x00fdfefd, 0x00fbfefa, 0x00fdfffb, 0x00fdfefd, 0x00fdfefd, 0x00fefffc, 0x00fbfdfa, 0x00fcfefd, 0x00fbfdfc,
- 0x00fafcf9, 0x00fcfefa, 0x00fbfdf9, 0x00fcfffa, 0x00f9fcf6, 0x00fafef8, 0x00fbfff8, 0x00fafef7, 0x00f3f7f0, 0x00f7fbf4, 0x00f8fdf5, 0x00f5fbf2, 0x00eef4eb, 0x00f2f8ef, 0x00f1f8ef, 0x00f1f8ee,
- 0x00eef2eb, 0x00e9eee6, 0x00e9eee7, 0x00e9eee6, 0x00ebf1ea, 0x00e1e9e2, 0x00e3ece6, 0x00e0eae4, 0x00dce4de, 0x00e8efe9, 0x00f2f7f3, 0x00fcfffc, 0x00fcfdfc, 0x00fefdfd, 0x00fdfcfc, 0x00f0efee,
- 0x006e6c63, 0x000f1114, 0x0003081c, 0x00192248, 0x002d3f7f, 0x002c428e, 0x002c459b, 0x002a47a3, 0x003050ac, 0x003656b3, 0x003253b1, 0x003253b4, 0x00395aaf, 0x005170bd, 0x007793de, 0x00647fcc,
- 0x00354fa6, 0x0028419e, 0x002d48a5, 0x003c5ab3, 0x003b5cae, 0x00375ab0, 0x003353ac, 0x003049a2, 0x0022398c, 0x001d368a, 0x00183485, 0x00163481, 0x001f3773, 0x001b2750, 0x0012172c, 0x0016151b,
- 0x00141318, 0x0018171b, 0x00121014, 0x00151316, 0x001f2020, 0x00202220, 0x001a1a18, 0x000e0f0c, 0x000a0b06, 0x000d0f0b, 0x000e0b0a, 0x00181212, 0x00111514, 0x000b1512, 0x0019221b, 0x001d2419,
- 0x002a271e, 0x00292724, 0x00272630, 0x002a314a, 0x00253862, 0x001f3472, 0x00223680, 0x002b438f, 0x0029469b, 0x0026449a, 0x00304da8, 0x003b5ab6, 0x003e5db7, 0x003956af, 0x0027429b, 0x004d67bd,
- 0x0082a4d5, 0x006082be, 0x003b5ea7, 0x003f65b9, 0x003f67c0, 0x003962b8, 0x00345db0, 0x00335aac, 0x00395db2, 0x00395ab5, 0x002945a0, 0x00273d90, 0x001a337f, 0x00243d80, 0x0023386d, 0x000a1838,
- 0x000d0f14, 0x00191612, 0x0017120b, 0x00161710, 0x00131c17, 0x00151916, 0x001b1b19, 0x00181b1b, 0x00162228, 0x00223138, 0x00586670, 0x0086959f, 0x00c6d0d6, 0x00f5fafc, 0x00f9fbfa, 0x00fefdfd,
- 0x00f8f8fb, 0x00fcfbfb, 0x00c7c7bd, 0x0075795e, 0x00737759, 0x006e715b, 0x0075776b, 0x00a6a4a4, 0x00f8f7fa, 0x00fffdfe, 0x00fdfcfc, 0x00fefffd, 0x00fefdff, 0x00fefdfe, 0x00fbfdfa, 0x00fefcfa,
- 0x005c553f, 0x00403416, 0x004a3d1e, 0x00473a1e, 0x004b3a26, 0x004a3820, 0x004e3c22, 0x00503c22, 0x004c3a1f, 0x004d3b20, 0x00524025, 0x00513e23, 0x00513e23, 0x00544126, 0x00544126, 0x00564227,
- 0x00603524, 0x00643929, 0x00653c2b, 0x00653e2a, 0x00653f2c, 0x00623e2d, 0x00613e31, 0x00613f36, 0x0060423b, 0x006e4c49, 0x007f605c, 0x008d7669, 0x009c887a, 0x00a89387, 0x00b49e91, 0x00bea89e,
- 0x00beb0a8, 0x00bfb0a7, 0x00c0aea7, 0x00ccbab2, 0x00d8c8be, 0x00dccfc6, 0x00e9dfd8, 0x00eee5de, 0x00f5ede5, 0x00fcf3ec, 0x00fcf5ee, 0x00fffbf3, 0x00fefbf3, 0x00fefcf4, 0x00fdfcf3, 0x00fdfcf3,
- 0x00fcfefd, 0x00fbfffd, 0x00fcfffd, 0x00fbfefc, 0x00f9fefc, 0x00f8fefc, 0x00f6fefd, 0x00f4ffff, 0x00f4fefd, 0x00f3fefc, 0x00f2fefe, 0x00f2ffff, 0x00f0fefe, 0x00f1ffff, 0x00f1fefe, 0x00f1fdfc,
- 0x00f4ffff, 0x00f2ffff, 0x00f0fefd, 0x00f0fefc, 0x00effffd, 0x00f8fcfd, 0x00fdfafd, 0x00fdfbfe, 0x00fdfbfd, 0x00fdfdfe, 0x00fefeff, 0x00fdffff, 0x00f8fefd, 0x00f6fefc, 0x00f3fbfa, 0x00f2fbfa,
- 0x00f7ffff, 0x00f7ffff, 0x00f4fdfd, 0x00f6ffff, 0x00f5fefd, 0x00f7fffe, 0x00f6fffe, 0x00f5fefe, 0x00f6fffc, 0x00f6fffc, 0x00f8fefd, 0x00fbfffe, 0x00fdffff, 0x00fefffe, 0x00fefefd, 0x00fdfdfb,
- 0x00faf9fa, 0x00fafbfc, 0x00fdfdff, 0x00fdfafe, 0x00fdfcfd, 0x00fafdfd, 0x00f7fcfd, 0x00f5fafa, 0x00f7fdfc, 0x00fafefe, 0x00fafdfd, 0x00f9fdfc, 0x00f9fbfc, 0x00fbfdfd, 0x00fcfffe, 0x00fafefd,
- 0x00fafcef, 0x00f5fbf2, 0x00f5fef8, 0x00effffb, 0x00e6fcfd, 0x00e5fefe, 0x00dcf8fb, 0x00d1eef4, 0x00cce1e9, 0x00c9dae6, 0x00c1cfe2, 0x00bacae4, 0x00a3bdd9, 0x009ebcd6, 0x0093b3ca, 0x008eadc7,
- 0x0085a4c5, 0x006e8bc4, 0x004e78b8, 0x004579c0, 0x003d7ed0, 0x00417bd4, 0x004479d2, 0x00427ac9, 0x003f79c0, 0x004279c4, 0x004176c9, 0x004073cc, 0x004475d1, 0x004476cd, 0x004274c3, 0x004275be,
- 0x003a72c4, 0x003971c2, 0x003b72c5, 0x004077cb, 0x00477ed0, 0x00467ccf, 0x00467ccf, 0x004b81d3, 0x00477fd0, 0x00497ecf, 0x004c7fcf, 0x005080ce, 0x004a7aca, 0x004775c5, 0x004574c5, 0x00507ccd,
- 0x005484d5, 0x005383d4, 0x004b7ccb, 0x004876c7, 0x00416ec1, 0x003a70bf, 0x003972c0, 0x00437ccd, 0x004b85d5, 0x004781d4, 0x004d85db, 0x00548ce1, 0x00386fc0, 0x003971bd, 0x004279c5, 0x004c84d1,
- 0x0065a3e3, 0x0093c3f7, 0x00c1e1f7, 0x00dbe8f8, 0x00efe7e7, 0x00f5e7ec, 0x00f6e4e7, 0x00f9e2e6, 0x00eadbd3, 0x00cfbfb1, 0x00ab9273, 0x00b0854b, 0x00b78b4b, 0x00c18d52, 0x00b78149, 0x00ab713e,
- 0x00a76c3f, 0x00a57043, 0x00b3834e, 0x00c09556, 0x00b49043, 0x00a9813c, 0x00a37636, 0x009f7335, 0x00c0955a, 0x00c99d68, 0x00a37443, 0x009f703f, 0x00a17142, 0x00b68857, 0x00deae7b, 0x00e4b180,
- 0x00dfbd88, 0x00e1c096, 0x00c3a487, 0x00ab8b80, 0x00c3acaf, 0x00e1d1da, 0x00efe0ed, 0x00f1e7f3, 0x00f6f0f4, 0x00f7f4f5, 0x00f7eff1, 0x00e6d4d7, 0x00a89187, 0x00765e46, 0x0068502d, 0x005a4416,
- 0x00473307, 0x00352406, 0x00251605, 0x00140b0a, 0x0004000b, 0x00020309, 0x0076797b, 0x00f0f0f2, 0x00f9fdfa, 0x00f9fef7, 0x00fafcf7, 0x00fbfdf3, 0x00adafa2, 0x00323326, 0x0018190c, 0x001f1f13,
- 0x001b142f, 0x00141331, 0x000c1234, 0x000d1642, 0x00041d47, 0x00031b40, 0x00041a36, 0x002b3c4a, 0x005b5a52, 0x00534137, 0x00685946, 0x00979374, 0x00b4b8a1, 0x00aab1aa, 0x00aabac0, 0x008194ad,
- 0x002f4c7b, 0x00254283, 0x00294e98, 0x00153c91, 0x00163f9c, 0x00205ab2, 0x002267be, 0x002264c1, 0x002768ca, 0x002e6ad1, 0x00255ec7, 0x002359bd, 0x001947a5, 0x00184297, 0x000f3886, 0x001f468f,
- 0x0038649d, 0x005478ac, 0x005b75a8, 0x00576896, 0x005c6182, 0x005d5d75, 0x0048414e, 0x00322526, 0x00331908, 0x00512f18, 0x008f6641, 0x00bb8b54, 0x00c5905e, 0x00b47d51, 0x00a46a42, 0x009e6141,
- 0x009c6442, 0x00a26a45, 0x00aa7249, 0x00b4814d, 0x00b28349, 0x009c7347, 0x007a532e, 0x0072471f, 0x00643710, 0x00664020, 0x005d3e2a, 0x00382419, 0x000d0201, 0x000f0200, 0x002b1914, 0x00493229,
- 0x0041391f, 0x002e2b16, 0x002e3123, 0x002b3430, 0x002c3736, 0x00363f3b, 0x003c3f3a, 0x00413f32, 0x00423c27, 0x00453926, 0x00423525, 0x003c3526, 0x00373323, 0x00312d20, 0x0028241a, 0x00242117,
- 0x001a1812, 0x00151310, 0x000f0d0e, 0x000a090a, 0x00080a09, 0x00040909, 0x00040a0b, 0x00090c0b, 0x000f0c0a, 0x001d1410, 0x002c1c17, 0x00341e15, 0x003d1d12, 0x00411e11, 0x00472114, 0x004d2316,
- 0x004d2a15, 0x004e2c19, 0x004c2b1d, 0x0044281d, 0x00341d15, 0x00261611, 0x001f1511, 0x005e5854, 0x00e4e4df, 0x00fefffc, 0x00fcfcf9, 0x00fdfdf9, 0x00fdfefd, 0x00dbdae0, 0x00817e8d, 0x00747185,
- 0x009f9bbb, 0x00bfb9e0, 0x00ccc2f0, 0x00ccc3f5, 0x00c6bef4, 0x00c6baeb, 0x00c9bae5, 0x00beb0d4, 0x006b586c, 0x004c3941, 0x00624b4e, 0x006e5750, 0x006e594e, 0x0067564a, 0x004b3c2d, 0x002f2116,
- 0x0000111b, 0x000f0f16, 0x00221518, 0x0049262e, 0x003e1d32, 0x004c3157, 0x00ada0cb, 0x00ccc9f4, 0x00c5bcd3, 0x00c2adb7, 0x00b3a7bc, 0x009797d9, 0x00636bb8, 0x0036469b, 0x0019338d, 0x00143392,
- 0x000d3388, 0x000d2e73, 0x00072455, 0x00031637, 0x00082025, 0x001c1f2d, 0x000d0617, 0x00060310, 0x000f0d1b, 0x000c0e19, 0x0004050e, 0x000e0d18, 0x00242228, 0x00322e33, 0x00292828, 0x00181617,
- 0x00090a06, 0x00070a05, 0x00080a06, 0x00060704, 0x00070805, 0x00060804, 0x00050502, 0x00060502, 0x00020200, 0x00010100, 0x00030101, 0x00020000, 0x00010100, 0x0005050a, 0x0001030f, 0x001d2235,
- 0x0053596f, 0x005f647d, 0x00767893, 0x009f9fbe, 0x008685a5, 0x0045474f, 0x000c0f0b, 0x00000302, 0x0006050a, 0x0003030c, 0x000f0f1c, 0x002c2b3e, 0x0065627d, 0x009793b3, 0x00bab7db, 0x00bab7df,
- 0x00ccb590, 0x00673813, 0x00703c16, 0x00703812, 0x006c320a, 0x006f360c, 0x006d3309, 0x00693209, 0x0065320b, 0x0064320d, 0x0063300b, 0x00633106, 0x005f2d04, 0x005c2d04, 0x00562905, 0x00542706,
- 0x004a2304, 0x00482304, 0x00462004, 0x00411e02, 0x003b1901, 0x003a1603, 0x003a1505, 0x00381403, 0x00361507, 0x00341708, 0x003b1f0e, 0x00432a17, 0x004f3a26, 0x00584734, 0x006d5c49, 0x0080705b,
- 0x0093837d, 0x00a1918c, 0x00bbada9, 0x00d0c4c0, 0x00e8ded9, 0x00f0e9e3, 0x00f7f3ec, 0x00f9f7ef, 0x00fcf7f5, 0x00fbf7f4, 0x00fdf9f5, 0x00fcfbfe, 0x00fffcff, 0x00fdf9ff, 0x00fffafc, 0x00fdfcfe,
- 0x00fbfbfb, 0x00fdfbfd, 0x00fdf9fd, 0x00fffdff, 0x00fff9ff, 0x00fcfbfa, 0x00fcfdf8, 0x00fdfbfb, 0x00fcfafe, 0x00fcfbfc, 0x00fdfdfd, 0x00fbfdf9, 0x00fbfefd, 0x00fdfffe, 0x00fbfefc, 0x00fafffa,
- 0x00f5fdf5, 0x00f4fcf8, 0x00f1fafe, 0x00e5effb, 0x00d8e2f6, 0x00d0dcf5, 0x00cddcfa, 0x00c4d4f6, 0x00a9b8e3, 0x008a9bc6, 0x007385bb, 0x007588ce, 0x007185cb, 0x005466b0, 0x00324392, 0x0035489b,
- 0x00415caf, 0x00334fa7, 0x00425fc1, 0x004e6ed5, 0x005377e4, 0x008797c9, 0x00c8cfe4, 0x00d6dbed, 0x00d7d7ea, 0x00dcdbeb, 0x00dfdeeb, 0x00dfdfea, 0x00dcdde8, 0x00d6d7e4, 0x00ced1e0, 0x00c8ccde,
- 0x00c5c6cc, 0x00b7bcc2, 0x00b3b7c1, 0x00b6b8c7, 0x00cbc3d6, 0x00ccc4d3, 0x00908697, 0x00504663, 0x00292e65, 0x001c3279, 0x00173173, 0x000a234a, 0x00121824, 0x003c2f27, 0x0084694d, 0x00aa885a,
- 0x00b89b5f, 0x00c5a36d, 0x00cea471, 0x00cda16b, 0x00c28f57, 0x00bdaa88, 0x00f1eddc, 0x00fcfaf6, 0x00fcfafd, 0x00fafdfc, 0x00fafcfd, 0x00daddd9, 0x006e7066, 0x00413d34, 0x00675e57, 0x00887c75,
- 0x009b988d, 0x00a6a298, 0x00afa8a0, 0x00b5ada5, 0x00bfb8b0, 0x00c5bdb5, 0x00c8bfb7, 0x00cdc5bc, 0x00d3ccc4, 0x00d9d2c9, 0x00dfd8d1, 0x00e3dcd8, 0x00e5dfdb, 0x00e9e3de, 0x00f0ebe6, 0x00f3eee9,
- 0x00f2eee6, 0x00f2eee7, 0x00f4f1e9, 0x00f7f3ec, 0x00f8f3ef, 0x00f8f3f0, 0x00f8f4f1, 0x00f7f4f3, 0x00f9f5f8, 0x00faf8f9, 0x00f9faf9, 0x00f8faf9, 0x00fbfafb, 0x00fcfafc, 0x00fbfbfc, 0x00fcfcfc,
- 0x00f9fdf9, 0x00fafdfb, 0x00fcfcfd, 0x00fbfdfd, 0x00fbfdfc, 0x00fafdfa, 0x00fafdf9, 0x00fafdf8, 0x00fdfdfa, 0x00fafefb, 0x00fbfefd, 0x00fdfefb, 0x00fefeff, 0x00fefefe, 0x00fefdfe, 0x00fefcff,
- 0x00fbfcfc, 0x00fbfcfb, 0x00fcfdfc, 0x00fcfdfd, 0x00fdfdfe, 0x00fdfdfd, 0x00fdfdfb, 0x00fdfdfa, 0x00fefefd, 0x00fefefc, 0x00fdfdfb, 0x00fcfcfa, 0x00fdfefb, 0x00fdfefc, 0x00fdfefd, 0x00fefefe,
- 0x00f8fdfc, 0x00fafdfc, 0x00fcfefd, 0x00fcfefd, 0x00fcfefd, 0x00fafefc, 0x00f9fdfc, 0x00fafdfc, 0x00fcffff, 0x00fbfffd, 0x00fafdfb, 0x00f8fbfb, 0x00f9fafc, 0x00fafbfc, 0x00fcfcfd, 0x00fdfdfe,
- 0x00fefcfb, 0x00fcfdfc, 0x00fcfefc, 0x00fcfeff, 0x00fbfdfe, 0x00fbfbff, 0x00fcfbfd, 0x00fdfcfe, 0x00fcfefb, 0x00fdfffc, 0x00fdfdfc, 0x00fdfdfc, 0x00fefefc, 0x00fcfcfb, 0x00fdfefe, 0x00fdfefe,
- 0x00fefdfc, 0x00fcfdfb, 0x00fcfefc, 0x00f9fbf9, 0x00fafcfa, 0x00f8fbf8, 0x00fcfffd, 0x00fafffb, 0x00fcfefb, 0x00fdfefb, 0x00fdfffc, 0x00fbfdfa, 0x00fdfffd, 0x00fcfefb, 0x00fcfefb, 0x00fafdfa,
- 0x00fcfefa, 0x00f9fef9, 0x00f9fefb, 0x00fafefa, 0x00fbfdfd, 0x00f6fbf8, 0x00f9fffd, 0x00f6fcfa, 0x00fbfcfb, 0x00fcfefc, 0x00fbfefb, 0x00fcfdfb, 0x00fffefe, 0x00fffcfe, 0x00fffdff, 0x00ededed,
- 0x006c6c59, 0x000b0d09, 0x00080e1a, 0x001f2a49, 0x002b3f7c, 0x002b448e, 0x00294699, 0x002746a1, 0x00294ca6, 0x002b51aa, 0x002a51a9, 0x002c51ad, 0x00395caf, 0x005374c1, 0x007494df, 0x006582d0,
- 0x003a57ac, 0x002a49a2, 0x003050ab, 0x003d62b8, 0x003961b1, 0x00355fb4, 0x00375db5, 0x003858af, 0x0031499e, 0x00264297, 0x00244495, 0x001e428b, 0x0016346b, 0x000b1e42, 0x0011192a, 0x00151519,
- 0x00111117, 0x0016171b, 0x00121114, 0x00161416, 0x001e1e1f, 0x001e1f1e, 0x00181816, 0x000b0d08, 0x00090905, 0x000b0b07, 0x00090603, 0x00100c0b, 0x000e1111, 0x000a0f0e, 0x00191f19, 0x001f241a,
- 0x00272217, 0x00262622, 0x00252731, 0x00272d4b, 0x00223162, 0x00193070, 0x001d357b, 0x0029438b, 0x00314d9d, 0x002c4b99, 0x00274999, 0x003a5eb0, 0x003c5eb2, 0x003958ae, 0x002f4ba1, 0x004a65b9,
- 0x0081a0cd, 0x006a87c2, 0x003b57a0, 0x004461b6, 0x004766c1, 0x003f62b9, 0x00385daf, 0x00355ba9, 0x003d61b8, 0x003c5cb7, 0x003450ab, 0x00294298, 0x00203b8d, 0x00233e89, 0x00293f7e, 0x00172652,
- 0x000e111f, 0x001c1b1c, 0x001f1914, 0x001a1912, 0x001b211d, 0x00171a18, 0x001b1c1c, 0x00171b1e, 0x0019232f, 0x0034424f, 0x00647281, 0x007e8d99, 0x00c3ccd6, 0x00f4f8fb, 0x00fcfcfa, 0x00fffcfc,
- 0x00fafbfb, 0x00fdfcfb, 0x00d1d2c6, 0x00878a6d, 0x007a7b5a, 0x00737358, 0x006b6b5a, 0x00a8a6a2, 0x00fbf8fd, 0x00fffbff, 0x00fcfdfd, 0x00fafdfb, 0x00f9fdff, 0x00fcfdfd, 0x00f9fdfa, 0x00fdfcf6,
- 0x004e5134, 0x003d3f17, 0x003e4015, 0x00404319, 0x00484525, 0x0048411f, 0x0048421d, 0x0047431c, 0x00494320, 0x0048421d, 0x004c4520, 0x004c4621, 0x004c4420, 0x004e4622, 0x004f4822, 0x00504821,
- 0x00683f25, 0x00653c24, 0x00694128, 0x00664126, 0x00654329, 0x00604128, 0x00684b35, 0x005c402e, 0x00684843, 0x00755754, 0x008d7067, 0x006d563d, 0x0062472f, 0x00624a32, 0x00674d33, 0x00654a30,
- 0x00654a2e, 0x0065492d, 0x0067472e, 0x006e4c35, 0x007a5941, 0x007e5d47, 0x00866550, 0x00896954, 0x008e6e5b, 0x0094725f, 0x00947460, 0x00927661, 0x00957863, 0x00a98a76, 0x00bc9e8b, 0x00c2a391,
- 0x00d3c6b6, 0x00d9cbbd, 0x00e8d7cb, 0x00f1e3d6, 0x00f2eddf, 0x00f0efdf, 0x00eeeddd, 0x00f3f3e2, 0x00f4f3e6, 0x00f4f5e5, 0x00f5f9eb, 0x00f4faf1, 0x00f6fbf4, 0x00f8fcf5, 0x00f9faf4, 0x00fbfbf5,
- 0x00fafdf7, 0x00fafdf8, 0x00fafff9, 0x00f9fef7, 0x00fcfef9, 0x00fbf9f5, 0x00fcfbf6, 0x00fefcf9, 0x00fffbfd, 0x00fdfcfb, 0x00fbfcf9, 0x00fcfdf9, 0x00fcfdf9, 0x00fefefc, 0x00fffffe, 0x00fdfffe,
- 0x00f8fffc, 0x00f9fefb, 0x00fcfffe, 0x00fbfdfd, 0x00fafefd, 0x00f8fefc, 0x00f7fdfd, 0x00f8fefe, 0x00f8fefe, 0x00f8fefd, 0x00f7fefc, 0x00f5fcf9, 0x00f9fffe, 0x00f8fdfd, 0x00f9fdfc, 0x00fafefc,
- 0x00fafefb, 0x00fafdfa, 0x00fcfefd, 0x00fdfefe, 0x00fbfefc, 0x00fafffc, 0x00f9fefc, 0x00fcfffd, 0x00fbfefd, 0x00fbfbfd, 0x00feffff, 0x00f9fdfc, 0x00fafdfd, 0x00fcfefd, 0x00fcfefc, 0x00fbfdfc,
- 0x00fcffec, 0x00fcfef1, 0x00fbfef2, 0x00f5fdf0, 0x00f5fef5, 0x00f5fdf3, 0x00f3feee, 0x00f5fef5, 0x00fbfdfa, 0x00f8faf9, 0x00fbfefb, 0x00f7fcf9, 0x00f2fefc, 0x00f2ffff, 0x00f2fffe, 0x00f2feff,
- 0x00ecf8fc, 0x00d6ebf8, 0x0091acda, 0x004f78b4, 0x004579cb, 0x003f7ad2, 0x003f78d4, 0x00407bd2, 0x00447fce, 0x00427bc9, 0x003e77cc, 0x003872c8, 0x004276d6, 0x004073cb, 0x004376c8, 0x004175bf,
- 0x003b73bf, 0x00376dba, 0x003b6fbe, 0x004275c8, 0x004a7dd0, 0x00497dd1, 0x004479cb, 0x004379c9, 0x00437bcb, 0x00437ccb, 0x004e81d4, 0x004c80d6, 0x005484db, 0x00487dd2, 0x004173ca, 0x003d70c5,
- 0x00437bcd, 0x004e83d8, 0x005083d7, 0x005080d6, 0x004f81d7, 0x004077c5, 0x003b73be, 0x003f76c6, 0x004a80d4, 0x004981d5, 0x004d84d8, 0x004e88db, 0x003b74c6, 0x00356fbf, 0x00457cca, 0x00487fcc,
- 0x005291df, 0x006fa8e3, 0x00a9d3fc, 0x00c3dcf7, 0x00dcdeeb, 0x00eee9ef, 0x00f0e4e9, 0x00f5e2ea, 0x00f2e4e8, 0x00dad4d2, 0x00b3a593, 0x00ab8758, 0x00ad874c, 0x00bc8d52, 0x00b47f45, 0x00b0753f,
- 0x00aa6f43, 0x00ad784c, 0x00b88756, 0x00c09256, 0x00b48f40, 0x00a88139, 0x00a17739, 0x00a4783f, 0x00cb9c64, 0x00cc9c69, 0x009e6c3c, 0x008b5b2a, 0x00ae7b4a, 0x00cd9a67, 0x00d29c69, 0x00d19a66,
- 0x00d4ac70, 0x00e8c290, 0x00e4c29f, 0x00b99b88, 0x00c2a8ac, 0x00ddccd4, 0x00e6d9e5, 0x00ece4f0, 0x00f6ecf5, 0x00f8f2f5, 0x00fbf3f6, 0x00f7e7ef, 0x00ccb6b3, 0x008f7664, 0x00695032, 0x005e471d,
- 0x004d3a0d, 0x003b2a0b, 0x00271907, 0x00150d09, 0x0008020d, 0x00010106, 0x00787b7c, 0x00eeefee, 0x00fcfcfc, 0x00fafcf7, 0x00fafcf8, 0x00fafcf2, 0x00acac9f, 0x00353323, 0x001c1a0a, 0x001f1d0c,
- 0x00322a39, 0x00373247, 0x001d193c, 0x000e103e, 0x000b1f51, 0x0001183f, 0x00183553, 0x0055687a, 0x00817371, 0x005a3a30, 0x00704737, 0x00b39c7b, 0x00e7d5c7, 0x00c1bdbd, 0x009295a6, 0x00415273,
- 0x000e2d65, 0x000d3174, 0x001f4693, 0x00154194, 0x00143992, 0x0016509f, 0x002361b1, 0x002764b9, 0x002966c9, 0x003169d0, 0x003167d0, 0x002a5ec3, 0x001e4baa, 0x00153d94, 0x000d3080, 0x001d3b87,
- 0x0023569b, 0x003764ab, 0x00456bb2, 0x004b6aa8, 0x005e6e9f, 0x006d7293, 0x005d586c, 0x00443640, 0x002b130c, 0x00391f11, 0x0078583d, 0x00b58853, 0x00cd9a6e, 0x00c18b5e, 0x00b0764d, 0x00a2673f,
- 0x009b623b, 0x00a26a40, 0x00ad764a, 0x00b88757, 0x00ae7e4d, 0x008c613a, 0x00744924, 0x006a3b12, 0x00683510, 0x006a3f20, 0x0067452f, 0x003f291b, 0x00221412, 0x00211211, 0x002f1d1d, 0x00493330,
- 0x003d3525, 0x00322b1c, 0x003a3428, 0x003a372e, 0x003c3d36, 0x003e433a, 0x003e4136, 0x00414133, 0x004c402c, 0x004d3f27, 0x00493b25, 0x00413925, 0x003e3626, 0x00373323, 0x00302c1e, 0x002b2619,
- 0x001f1c16, 0x00181412, 0x00110d0e, 0x000d090a, 0x000c0a0b, 0x00050809, 0x00030908, 0x00060807, 0x00150c0b, 0x0023140f, 0x00301c13, 0x003a1e12, 0x00451e11, 0x004d2112, 0x00552716, 0x005c2b17,
- 0x005b311b, 0x005b331d, 0x005a3421, 0x00543221, 0x0043261a, 0x00321d13, 0x0021120a, 0x005c504a, 0x00e3dfdc, 0x00fcfdf9, 0x00fcfef8, 0x00f9fcf4, 0x00fcfdfb, 0x00e3e2e8, 0x008a8794, 0x00777486,
- 0x00a09cb9, 0x00c1bcde, 0x00ccc3ee, 0x00cdc5f4, 0x00cec6fb, 0x00c4bbf3, 0x00c3b7ef, 0x00d1c6f4, 0x008d7ea4, 0x003f3149, 0x00382a3a, 0x00392b33, 0x00372a2f, 0x002e2327, 0x00261d1d, 0x0020181c,
- 0x00344241, 0x004d5151, 0x00594c57, 0x0078616f, 0x00917393, 0x009680a3, 0x00d3b5d7, 0x00edcdea, 0x00edbcba, 0x00ecad99, 0x00f1a691, 0x00e89d91, 0x00d57a87, 0x00a0516e, 0x00793d6d, 0x006a3d7e,
- 0x00564188, 0x00483b81, 0x003a3672, 0x0029295c, 0x001b1d43, 0x002d1f33, 0x002a1d21, 0x0023191b, 0x00231a1d, 0x00201b1d, 0x001a1a1b, 0x000d0d09, 0x00121310, 0x00292423, 0x0034302f, 0x00342b2b,
- 0x000f0e0c, 0x00050503, 0x000b0b09, 0x000b0b09, 0x00090806, 0x00080906, 0x00070804, 0x00070804, 0x00070604, 0x00040500, 0x00050502, 0x00020001, 0x00010001, 0x0003020a, 0x00000010, 0x0010112c,
- 0x002e3151, 0x004e4f6f, 0x008a89aa, 0x008786a2, 0x0043405c, 0x0017191c, 0x00050905, 0x00030705, 0x00030207, 0x00090913, 0x0039384a, 0x0076748c, 0x00bab6d6, 0x00cbc6eb, 0x00c9c5ed, 0x00c9c4f0,
- 0x00ceb494, 0x00774221, 0x00743d18, 0x00733713, 0x0074360f, 0x0073370e, 0x0077380e, 0x00753810, 0x006f350f, 0x006f3712, 0x006d3610, 0x006e3609, 0x006d3509, 0x006b3609, 0x0069350c, 0x006b370f,
- 0x0062330d, 0x0062330f, 0x005f3110, 0x005d3211, 0x00562c0d, 0x00542a0d, 0x0050260b, 0x004f260b, 0x004a2206, 0x00472206, 0x00432104, 0x003d1d01, 0x00351600, 0x002e1200, 0x002e1500, 0x00351c02,
- 0x00352319, 0x003c2b21, 0x00463529, 0x004f3f33, 0x005e4f46, 0x00685b52, 0x007b7064, 0x0092887c, 0x00b3a8a0, 0x00cabeb6, 0x00d9d0cc, 0x00dddadc, 0x00eae6e7, 0x00f0eeef, 0x00f7f4f4, 0x00fcfaf8,
- 0x00fafaf9, 0x00fdfbfa, 0x00fdfafb, 0x00fdfbfb, 0x00fcf9fa, 0x00fcfafc, 0x00fdfbfe, 0x00fdf9fd, 0x00fffcff, 0x00fffdff, 0x00fefcfc, 0x00fefdfa, 0x00fdfbf5, 0x00fffbf6, 0x00fefcf5, 0x00fdfff6,
- 0x00fbfcf1, 0x00fcfcf2, 0x00fdfdf5, 0x00fbfcf6, 0x00fbfdf9, 0x00f8fcf7, 0x00f8fdfa, 0x00f7fcfc, 0x00f0f8fe, 0x00ebf1ff, 0x00e2eafc, 0x00d8e6fc, 0x00cee0f7, 0x00bbcdec, 0x00acc0e2, 0x00abc1e8,
- 0x0091aad8, 0x007d94ce, 0x00738fd0, 0x006e8bd6, 0x006784d5, 0x0099a5cd, 0x00c7cddc, 0x00cfd5e2, 0x00cecfdb, 0x00d4d3e0, 0x00d7d5e1, 0x00dad9e5, 0x00dbdce8, 0x00dadbe7, 0x00d4d7e3, 0x00cfd4df,
- 0x00cbcdd3, 0x00bfc4c9, 0x00b3b7bc, 0x00bbb3c3, 0x00c0b9ce, 0x00cbc9d7, 0x00aaa9b0, 0x006c5e6b, 0x00352b59, 0x00233379, 0x00142f71, 0x000b1d45, 0x001f1e25, 0x005e4937, 0x00997b56, 0x00b59259,
- 0x00c39e63, 0x00cca573, 0x00cba573, 0x00cba26e, 0x00bc8f54, 0x00c6b397, 0x00faf7ea, 0x00fffcfa, 0x00fbfcfe, 0x00fafdfe, 0x00f9fbf9, 0x00cdd0c8, 0x004a4937, 0x00241a0c, 0x00312214, 0x003b271d,
- 0x00392d1d, 0x003d3021, 0x00403224, 0x00403224, 0x0046372b, 0x004c3d31, 0x004d3f33, 0x00524337, 0x00554638, 0x00584a3b, 0x005b4e41, 0x005d5046, 0x00605449, 0x0063584d, 0x00685d52, 0x006a6054,
- 0x00796b61, 0x007b6e64, 0x00807469, 0x0084786d, 0x00887c73, 0x008d827a, 0x00938982, 0x00958d87, 0x009d9492, 0x00a19a96, 0x00aaa19c, 0x00afa5a1, 0x00b1a9a4, 0x00b8afab, 0x00bfb6b1, 0x00c2bab5,
- 0x00c0c4bd, 0x00c4c6be, 0x00c9cbc3, 0x00ced0c8, 0x00d1d3cc, 0x00d3d5ce, 0x00d5d8d0, 0x00d9dbd3, 0x00dfe0d8, 0x00dfe2db, 0x00e3e5de, 0x00e6e7e1, 0x00e9e9e3, 0x00ebece6, 0x00eeefe8, 0x00f0efec,
- 0x00eff0ec, 0x00f0f1ec, 0x00f2f3ee, 0x00f3f4ef, 0x00f4f5f1, 0x00f5f7f1, 0x00f7f8f2, 0x00f7f9f2, 0x00f9faf4, 0x00fcfdf6, 0x00fbfcf6, 0x00fafbf4, 0x00fcfdf6, 0x00fdfff8, 0x00fdfef9, 0x00fdfdfa,
- 0x00fcfefe, 0x00fdfefe, 0x00fcfffe, 0x00fbfefd, 0x00fafefd, 0x00fafefe, 0x00faffff, 0x00fbfeff, 0x00fafcfd, 0x00f9fcfe, 0x00f8fcfc, 0x00f8fdfa, 0x00fafdfb, 0x00fdfefc, 0x00fefffd, 0x00fcffff,
- 0x00fcfdfe, 0x00fcfdfd, 0x00fbfefb, 0x00fafefc, 0x00fbfefb, 0x00fcfdfe, 0x00fdfdfd, 0x00fdfdfe, 0x00fefcfe, 0x00fffeff, 0x00fdfbfe, 0x00fbfafc, 0x00fefcfe, 0x00fdfcfd, 0x00fefdff, 0x00fefdff,
- 0x00fdfbf8, 0x00fdfbf9, 0x00fefdfb, 0x00fefefc, 0x00ffffff, 0x00fbfbfa, 0x00fbfbfb, 0x00fcfdfd, 0x00fefffc, 0x00fefffe, 0x00fcfdfb, 0x00fcfcfa, 0x00fcfcfb, 0x00fdfcfd, 0x00fffdff, 0x00fffdfe,
- 0x00fffdfc, 0x00fffeff, 0x00fdfcfc, 0x00fefcfd, 0x00fffdff, 0x00fefeff, 0x00fbfefc, 0x00f9fcfc, 0x00fcfcfe, 0x00fafbfc, 0x00fbfbfc, 0x00fdfdfc, 0x00fdfcfb, 0x00fdfbfc, 0x00fffffe, 0x00e9e9e7,
- 0x00646851, 0x000c1109, 0x00171f27, 0x00323e5b, 0x00354784, 0x002b438b, 0x00244192, 0x0025459d, 0x00234999, 0x00264e9f, 0x002b55a6, 0x002e53aa, 0x003154a3, 0x004769b1, 0x00698bd0, 0x00597ac1,
- 0x003c5cad, 0x003153a8, 0x003054ad, 0x00355eb4, 0x003460ae, 0x00305baf, 0x003258b1, 0x003456ac, 0x00344ea5, 0x00304ea1, 0x003052a3, 0x0030569f, 0x00224578, 0x00152b4c, 0x00121c2c, 0x00151516,
- 0x00131619, 0x0018191c, 0x00161517, 0x00191818, 0x00232123, 0x00252425, 0x001d1d1b, 0x0011100f, 0x000e0d0a, 0x00100f0b, 0x000f0d0a, 0x00151312, 0x00141818, 0x000f1514, 0x001f2620, 0x00262b20,
- 0x00292618, 0x002b2b28, 0x00282936, 0x002a2f51, 0x0025326a, 0x001c3374, 0x001e397a, 0x00223e82, 0x00304c95, 0x0031509a, 0x00234692, 0x003358a6, 0x003a5eaf, 0x00385aac, 0x003353a6, 0x004261b3,
- 0x007f99c5, 0x007b94ce, 0x003e579f, 0x003e59ad, 0x004764bd, 0x004868bd, 0x004061b2, 0x003d5dab, 0x004160b5, 0x00425db4, 0x003a56b0, 0x003049a4, 0x0026469c, 0x00274595, 0x002c498d, 0x00223569,
- 0x000b1125, 0x0018171d, 0x001a1614, 0x0016150f, 0x001a1f1b, 0x00131511, 0x00161816, 0x00131718, 0x001a222e, 0x00404c5c, 0x00717d8d, 0x008795a6, 0x00c6cfd9, 0x00f4f8fd, 0x00fdfefa, 0x00fefdfa,
- 0x00fafafa, 0x00fffefc, 0x00d2d1c5, 0x008b8c6e, 0x00747250, 0x006c684d, 0x00625e4f, 0x00a9a4a2, 0x00faf9fd, 0x00fefbff, 0x00fafefd, 0x00f7fdfd, 0x00f7fefe, 0x00f6fdfe, 0x00f6fefb, 0x00fafdf8,
- 0x00404c2a, 0x00394418, 0x00394616, 0x003b4a1a, 0x003d4620, 0x0043461d, 0x0044481d, 0x00444a1e, 0x00454a20, 0x00454a1f, 0x00474c21, 0x00474c22, 0x00464c21, 0x00474c22, 0x00484d23, 0x00484e23,
- 0x005a4925, 0x005a4824, 0x005b4a25, 0x005b4b24, 0x005b4c25, 0x00584b27, 0x00524628, 0x006b6047, 0x00ab9f92, 0x00bdb3ac, 0x00b5a796, 0x007f6d49, 0x00624f2b, 0x00604d29, 0x00665029, 0x0067512a,
- 0x006b512c, 0x006a4f2a, 0x006a4e29, 0x006b4e28, 0x006a4b26, 0x006e4d29, 0x006e4c2b, 0x00714e2f, 0x00704c2b, 0x00714d2c, 0x00714c2d, 0x00704b2d, 0x006a4427, 0x006f472b, 0x00744c2f, 0x0071492c,
- 0x00704c37, 0x006d4a35, 0x006d4934, 0x006c4934, 0x006a4a33, 0x00674832, 0x00694a33, 0x00765942, 0x00896b54, 0x0093765f, 0x009f8673, 0x00a28f83, 0x00ac9991, 0x00b6a49a, 0x00beaca2, 0x00c6b3a9,
- 0x00c4b3a7, 0x00cebcb1, 0x00d8c7bc, 0x00e1cfc4, 0x00eed9d2, 0x00f2e1d9, 0x00f6eae0, 0x00f9ece3, 0x00fcf4ec, 0x00fffbf2, 0x00fdfbf0, 0x00fdfdf1, 0x00fefdf2, 0x00fefcf3, 0x00fdfcf4, 0x00fcfbf5,
- 0x00fcfbf6, 0x00fefffa, 0x00f9fcf7, 0x00f9fdf8, 0x00f6f9f4, 0x00f9faf6, 0x00fbf9f7, 0x00fdfbfa, 0x00f9fdfa, 0x00fbfefa, 0x00fbfffb, 0x00f8fefa, 0x00f8fcf8, 0x00f8fdf9, 0x00f9fefb, 0x00f9fcf8,
- 0x00fafef9, 0x00fcfffb, 0x00fbfefa, 0x00fafefa, 0x00f9fdf8, 0x00fcfef9, 0x00fcfef9, 0x00fcfefb, 0x00fdfbfa, 0x00fcfbfb, 0x00f9f9f9, 0x00fafdfc, 0x00f9fcfd, 0x00fbfefe, 0x00fafdfc, 0x00f9fdfb,
- 0x00fdfbf3, 0x00fffdf8, 0x00fefaf5, 0x00fdfcf6, 0x00fdfdf6, 0x00fbfdf7, 0x00fafef4, 0x00fffcf8, 0x00fefcf9, 0x00fdfafc, 0x00fcf9f7, 0x00fffdf7, 0x00fbfefe, 0x00fafeff, 0x00fafdfd, 0x00fafcfd,
- 0x00f8fbf9, 0x00f6fbfa, 0x00d8e8fd, 0x007c9bcc, 0x004070be, 0x003e76cc, 0x003b78cf, 0x003e7bcf, 0x003e7ac7, 0x003e78c6, 0x004078cb, 0x004075cb, 0x004576d4, 0x004273c8, 0x004476c4, 0x004276bd,
- 0x003c6fc0, 0x003f72c1, 0x004276c1, 0x00477bc7, 0x00497dca, 0x00467ac9, 0x004377c5, 0x00487cca, 0x00497dca, 0x004779c9, 0x00457acc, 0x00477ed6, 0x004a81d8, 0x005086de, 0x004c82d9, 0x004378cd,
- 0x003d73c7, 0x004378cf, 0x00467ed4, 0x005084d7, 0x005084da, 0x004579c5, 0x003e72bd, 0x003d72c1, 0x004177c8, 0x00487ed0, 0x004f86d9, 0x005086da, 0x003c75c7, 0x00356ebe, 0x00427eca, 0x004480cb,
- 0x00407cd2, 0x003d75bb, 0x006697d1, 0x0098bae6, 0x00bac7e0, 0x00d6d7e9, 0x00eee9f4, 0x00ede1f1, 0x00e6e3ee, 0x00cdd0db, 0x00a8a29c, 0x00a38564, 0x00a5814c, 0x00b4874e, 0x00ab7a3e, 0x00a87138,
- 0x00a4663b, 0x00a56c43, 0x00a47242, 0x00ad8049, 0x00ad8a39, 0x00a7813e, 0x009e7639, 0x00a87c45, 0x00d1a06c, 0x00daa675, 0x00bd8a5a, 0x00ad7748, 0x00c79260, 0x00e2ae76, 0x00deaf74, 0x00d7a76d,
- 0x00d8a96a, 0x00d7aa75, 0x00d4af87, 0x00c8a690, 0x00bfa8ac, 0x00d3c1ca, 0x00dcd1dd, 0x00e4dfe9, 0x00f3eaf2, 0x00f8f0f3, 0x00fef4f7, 0x00fcedf8, 0x00e3d1d0, 0x00af9c8a, 0x00735f44, 0x005e4926,
- 0x004f3c13, 0x00423316, 0x00291e0a, 0x0019110d, 0x000c070c, 0x00050509, 0x00797d7d, 0x00ecf0ee, 0x00fcfdfe, 0x00fcfbfb, 0x00fefefa, 0x00fcfcf5, 0x00aeab9c, 0x00383422, 0x001d1a04, 0x001e1a02,
- 0x004c4549, 0x008c8393, 0x005b5675, 0x001f1d4a, 0x00011548, 0x00021841, 0x0032506c, 0x008896a5, 0x00ad8e8b, 0x0092584e, 0x00914e3b, 0x00bf8264, 0x00f3ccbf, 0x00e6d4d7, 0x0079798f, 0x00192c55,
- 0x00001f5e, 0x0008347d, 0x002852a0, 0x001f4c9d, 0x00123385, 0x00164795, 0x00265da9, 0x002864b5, 0x002e69c4, 0x00356dcd, 0x00366dd1, 0x002e62c4, 0x001c45a4, 0x00163991, 0x00133384, 0x00213d89,
- 0x00295fac, 0x002f62b3, 0x003263b4, 0x003560af, 0x00436099, 0x00536089, 0x0048465f, 0x003a2b37, 0x0024130e, 0x00220d08, 0x004a301f, 0x00906940, 0x00c4976c, 0x00c59369, 0x00be8a61, 0x00bb855a,
- 0x00bb855a, 0x00bf8961, 0x00bc8c61, 0x00b98b62, 0x00946b43, 0x00734926, 0x005f3511, 0x005c2c06, 0x006a3612, 0x00704427, 0x00694734, 0x004c362c, 0x0044373d, 0x0053474d, 0x0040323a, 0x00423137,
- 0x00473e37, 0x0041362c, 0x00413123, 0x00463424, 0x00483a2b, 0x00494132, 0x00474333, 0x00484333, 0x004d472e, 0x00524329, 0x004c4024, 0x00484026, 0x00413a26, 0x003e3625, 0x00322f1e, 0x002d281a,
- 0x00222117, 0x001b1813, 0x00130e0e, 0x00100b0c, 0x000d080c, 0x0007080b, 0x00030708, 0x00060708, 0x00160c0b, 0x0025150f, 0x00321b11, 0x003d1d0f, 0x004b2010, 0x00562511, 0x00622e18, 0x006b341a,
- 0x006e3923, 0x006c3a25, 0x006c3d28, 0x00653b27, 0x0051301e, 0x00442b1c, 0x002d1a0e, 0x00564a41, 0x00d6d0cd, 0x00fbfaf7, 0x00fdfefa, 0x00fefff9, 0x00fdfffb, 0x00e9e9eb, 0x0095949b, 0x007c7b86,
- 0x00afaec1, 0x00d3cfec, 0x00d5cef3, 0x00d0c9f4, 0x00cbc4f4, 0x00c6befa, 0x00c3b9f9, 0x00ccc2fb, 0x00c4b8e5, 0x00887f9f, 0x004a4156, 0x004e4655, 0x00756d79, 0x0088818c, 0x00958f9d, 0x00a39fad,
- 0x00bfc2cb, 0x00caccd3, 0x00c6c9d5, 0x00d0d1e0, 0x00e5dff2, 0x00f1dff4, 0x00f9d0dd, 0x00e0a4a2, 0x00d47255, 0x00d4613d, 0x00da562c, 0x00ea4f2b, 0x00db4a2e, 0x00c03e30, 0x00b3403e, 0x00a64550,
- 0x00904768, 0x00a16288, 0x00b481a4, 0x009d7293, 0x0052304b, 0x003d2025, 0x00352316, 0x00301b17, 0x0022161b, 0x00272028, 0x00322f38, 0x0025222a, 0x00221e22, 0x00302929, 0x003b372f, 0x003b342b,
- 0x001d1a19, 0x000d0b09, 0x00080705, 0x00090a07, 0x00080806, 0x00090b08, 0x00060807, 0x00070907, 0x00070905, 0x00030703, 0x00020302, 0x00020101, 0x00010001, 0x00000007, 0x000a0a1a, 0x002f304b,
- 0x005e6087, 0x007d7ca5, 0x00727195, 0x003a3957, 0x00141225, 0x000b0c0e, 0x000a0e08, 0x000a0c09, 0x0000010a, 0x001e1e2e, 0x0078768e, 0x00bab6d5, 0x00dbd6fc, 0x00d9d4fd, 0x00d6d0fb, 0x00d2ccfa,
- 0x00ceb79b, 0x006c3a1c, 0x006d3818, 0x006d3513, 0x00723713, 0x00713610, 0x00733710, 0x006e3710, 0x00733718, 0x00713717, 0x006e3612, 0x006b3308, 0x006c350b, 0x006c360c, 0x006c370f, 0x006c370f,
- 0x0066330f, 0x0065350f, 0x00663711, 0x00633612, 0x00603511, 0x00603513, 0x00603515, 0x005d3113, 0x005b3010, 0x00562e10, 0x00512b0d, 0x004b2706, 0x004b2706, 0x00462306, 0x00442308, 0x00432207,
- 0x0033200d, 0x00311d0e, 0x002d1a0c, 0x002b190a, 0x002d1b0e, 0x002c1b0e, 0x002e1f13, 0x0037281f, 0x00493932, 0x0053453c, 0x005d524e, 0x006a6661, 0x00837f7a, 0x0094938b, 0x00aaa8a1, 0x00bebdb1,
- 0x00d9dace, 0x00e5e8dd, 0x00f0f5e8, 0x00f2f7e7, 0x00f5f9ee, 0x00f9f8f8, 0x00fdf7fd, 0x00fef7fd, 0x00fcfaff, 0x00fcf9fd, 0x00fffbff, 0x00fdfbfa, 0x00fefcf8, 0x00fefcf2, 0x00fdfcf2, 0x00fdfef3,
- 0x00fffdef, 0x00fefded, 0x00fffdec, 0x00fefded, 0x00fefcf0, 0x00fbfbf1, 0x00fcfcf5, 0x00fbfcf8, 0x00fdfcfe, 0x00fcfcfd, 0x00fbfefa, 0x00f5fff2, 0x00f2fdf2, 0x00f2fdf3, 0x00effcf6, 0x00ebfbf7,
- 0x00e1f1f6, 0x00d2e6f3, 0x00cbdef3, 0x00bed3f1, 0x00bccef0, 0x00cdd7ea, 0x00e1e5ee, 0x00dee1ea, 0x00dad9e4, 0x00dad7e2, 0x00d7d2de, 0x00d9d6e0, 0x00d9d9e2, 0x00d9dbe3, 0x00d7dbe3, 0x00d5dbe2,
- 0x00cfd2dc, 0x00c2cbca, 0x00bdc0c2, 0x00bfb5bd, 0x00beb4ce, 0x00babfc8, 0x00b9bab9, 0x00887772, 0x00492c57, 0x00212f6f, 0x00082260, 0x00081539, 0x00362d2d, 0x007b6446, 0x00a78253, 0x00be9355,
- 0x00cda06d, 0x00cfa777, 0x00cfa678, 0x00c4a069, 0x00c09559, 0x00d0c0a2, 0x00fefdf3, 0x00fdfdf9, 0x00fdfcff, 0x00fafcfd, 0x00fafbfb, 0x00c2c2b7, 0x003d3825, 0x00231501, 0x002c1808, 0x002e1609,
- 0x00301a07, 0x002f1b07, 0x002e1905, 0x002b1702, 0x002c1703, 0x002c1502, 0x00291300, 0x00291300, 0x00291401, 0x00291501, 0x002a1604, 0x00291506, 0x00291506, 0x002a1606, 0x002c1808, 0x002d1808,
- 0x002f1b0a, 0x00321d0b, 0x00351f0e, 0x00352110, 0x00362413, 0x00382719, 0x003a291e, 0x003a291f, 0x003e2e22, 0x00423126, 0x00453229, 0x00453228, 0x0045352a, 0x004a3a2f, 0x00503f34, 0x00534137,
- 0x00504c40, 0x00525042, 0x00585548, 0x005c5a4d, 0x005f5d51, 0x00626053, 0x00676457, 0x006b695b, 0x00746e66, 0x00767267, 0x007a786d, 0x007e7d70, 0x00828176, 0x0086867a, 0x008b8b80, 0x00908f82,
- 0x009a998e, 0x009d9b91, 0x00a2a096, 0x00a7a59a, 0x00adaba0, 0x00b4b2a7, 0x00bbb9ae, 0x00c0bdb4, 0x00c7c4bc, 0x00cbcac0, 0x00ceccc2, 0x00d0cfc4, 0x00d7d5cb, 0x00dfdcd2, 0x00e3e0d6, 0x00e5e3d8,
- 0x00eae8eb, 0x00eae9eb, 0x00ebeced, 0x00eceded, 0x00edefef, 0x00eef1f1, 0x00eef1f3, 0x00edf2f3, 0x00f5f5f5, 0x00f6f5f8, 0x00f6f6f6, 0x00f4f8f1, 0x00f4f9f1, 0x00f6faf4, 0x00f8fbf6, 0x00f8fcf7,
- 0x00fafbfc, 0x00fafbfa, 0x00f9fbfa, 0x00f8fcf8, 0x00f9fbfc, 0x00fbfbfb, 0x00fefbfd, 0x00fffbfc, 0x00fffcfd, 0x00fffdfd, 0x00fffdfd, 0x00fefcfc, 0x00fffdfd, 0x00fffcfc, 0x00fefbfb, 0x00fdfaf9,
- 0x00fffdfc, 0x00fefcfb, 0x00fffdfc, 0x00fefcfb, 0x00fefdfc, 0x00fefefc, 0x00fefdfc, 0x00fffefc, 0x00fefefc, 0x00fbfbfa, 0x00fdfcfc, 0x00fdfdfc, 0x00fefdfd, 0x00fcfbfc, 0x00ffffff, 0x00fefeff,
- 0x00fefefe, 0x00fdfcfd, 0x00fffeff, 0x00fffcfa, 0x00fefcfe, 0x00fcfdfc, 0x00fcfdfd, 0x00fcfbfd, 0x00fefefc, 0x00fdfdfd, 0x00fdfdfe, 0x00fefefd, 0x00fcfdfb, 0x00fcfdfc, 0x00fefefd, 0x00e6e5e4,
- 0x005f624d, 0x000d130b, 0x00222c34, 0x003a4865, 0x00314482, 0x00233b85, 0x00254294, 0x00234499, 0x001f4293, 0x00224894, 0x002f55a4, 0x003355ae, 0x003354a2, 0x004668ad, 0x006689cc, 0x00577abd,
- 0x004160b3, 0x00395db0, 0x00345bb2, 0x00305aaf, 0x003362ad, 0x00325fb2, 0x00335ab3, 0x003256ac, 0x003050a2, 0x002d4f9f, 0x003156a5, 0x00375ea8, 0x002c4e86, 0x001f365c, 0x00132034, 0x0013171a,
- 0x00161416, 0x0018181b, 0x00141517, 0x00161717, 0x001e1f20, 0x00212221, 0x001c1c1a, 0x00100f10, 0x000c0c0b, 0x000d0e0b, 0x000b0807, 0x00130e10, 0x00101214, 0x000a120f, 0x001a2218, 0x00212718,
- 0x0026251a, 0x00292927, 0x00282737, 0x00272c4e, 0x0024346e, 0x001b3575, 0x001d397c, 0x001f3c7e, 0x002f4c91, 0x00315096, 0x0026468e, 0x002d4e99, 0x003d5eab, 0x00395aa9, 0x00395bab, 0x00385bab,
- 0x007e91c0, 0x008598d2, 0x00495ca3, 0x003d52a4, 0x00445eb4, 0x004d6bbd, 0x004566b4, 0x004061ac, 0x004160b2, 0x00405db3, 0x003e5ab5, 0x003654ae, 0x002e50a7, 0x002d50a2, 0x00304f99, 0x00253b76,
- 0x00191d39, 0x00171622, 0x001b1518, 0x001b1716, 0x001e201d, 0x00171913, 0x001b1d1a, 0x00161b1e, 0x001a2130, 0x003d4859, 0x00697589, 0x00808e9f, 0x00bdc6d3, 0x00f0f5f8, 0x00fcfefa, 0x00fefdf9,
- 0x00fef9ff, 0x00fefcfc, 0x00d2d1c4, 0x0088876a, 0x00686444, 0x0059533c, 0x00585247, 0x00a7a3a2, 0x00fdf8ff, 0x00fbfcfc, 0x00fbfefd, 0x00f7fffc, 0x00f8fefe, 0x00f4fcfc, 0x00f5fdfd, 0x00effaf0,
- 0x003a492b, 0x0034471c, 0x00394d1c, 0x00384d1c, 0x00374a22, 0x003d4d21, 0x00404e1e, 0x003f4f1d, 0x00425122, 0x00404f21, 0x00415123, 0x00425123, 0x00435324, 0x00435424, 0x00435324, 0x00455527,
- 0x004c592b, 0x00495725, 0x004b5825, 0x004a5825, 0x004c5928, 0x004d5a2d, 0x00414e2a, 0x00899679, 0x00afbdad, 0x009ca89d, 0x00919783, 0x006b6537, 0x00605a2c, 0x005f5526, 0x00605728, 0x00605528,
- 0x0067552a, 0x00665426, 0x006a5527, 0x006a5426, 0x006b5325, 0x006d5225, 0x006f5126, 0x00705127, 0x0075512a, 0x0074512a, 0x0076522a, 0x0078522a, 0x0078532b, 0x0076512a, 0x0076502a, 0x0077512c,
- 0x007f4b2f, 0x0080482d, 0x0081482d, 0x007f472c, 0x007f482d, 0x00834c30, 0x0080472d, 0x00864930, 0x0083482e, 0x007e432a, 0x007d4734, 0x0077473a, 0x0077493e, 0x00714436, 0x006d4032, 0x006d3f32,
- 0x0075463a, 0x007c4e41, 0x00835146, 0x00825448, 0x008d5d51, 0x00876655, 0x00876c5a, 0x008b705e, 0x008e7769, 0x008d796a, 0x00928171, 0x00a09180, 0x00ab9e8e, 0x00b9ad9e, 0x00c9bdaf, 0x00d2c6b8,
- 0x00e7d8ce, 0x00e8dbd1, 0x00f0e4db, 0x00f2e9e0, 0x00f6f0e6, 0x00f3eee5, 0x00f5f0e9, 0x00f8f2ec, 0x00fdf6f1, 0x00faf3ec, 0x00fbf8f1, 0x00fcfbf2, 0x00fdfcf1, 0x00fdfdf3, 0x00fdfdf6, 0x00fdfcf5,
- 0x00fffefa, 0x00fefef7, 0x00fefff7, 0x00fbfef5, 0x00fbfbf2, 0x00fdf9ef, 0x00fffbf2, 0x00fefcf6, 0x00fffcfa, 0x00fdfaf9, 0x00fcf9fb, 0x00fcfafc, 0x00fcfbfc, 0x00fdfefd, 0x00fcfefb, 0x00fcfef9,
- 0x00fefaff, 0x00fcf9fb, 0x00fffbff, 0x00fdf8ff, 0x00fff8fd, 0x00fff9fe, 0x00fdfbfc, 0x00fef9fe, 0x00fef8fd, 0x00fdf9fd, 0x00fefafa, 0x00fffcf0, 0x00fffefd, 0x00fcfcfc, 0x00fcfbfd, 0x00fffcfb,
- 0x00fffcf3, 0x00f9fcf8, 0x00f5fcfd, 0x0096b1cf, 0x004470bc, 0x004379cc, 0x00437cd3, 0x00407ac7, 0x004177c0, 0x004077c1, 0x004478c5, 0x004474c5, 0x004673c6, 0x004874c5, 0x004a76be, 0x004977b6,
- 0x004979c7, 0x003b6cba, 0x003f6fbd, 0x004879c8, 0x004d7fcc, 0x00497bc9, 0x004476c3, 0x004376c2, 0x004877c5, 0x004677c5, 0x004979cc, 0x00437ad0, 0x004d82d6, 0x00487ed3, 0x004a7cd1, 0x004e84d8,
- 0x00477dcc, 0x004579c9, 0x004277c9, 0x004c7fce, 0x004b7fcf, 0x004678c1, 0x004274bb, 0x004073bb, 0x003f72c3, 0x004377c9, 0x005083d6, 0x004c81d4, 0x003d72c4, 0x003a72c1, 0x00457eca, 0x004985cd,
- 0x004172ce, 0x00235ba9, 0x003b71b5, 0x006fa3d9, 0x009ab8de, 0x00a8b5d7, 0x00dfe4fb, 0x00e3e3fa, 0x00cdcfec, 0x00a2afc6, 0x00888b97, 0x0093796b, 0x009d7d55, 0x00a88047, 0x009c6e2c, 0x00925f1e,
- 0x00955a2d, 0x00915830, 0x00915e34, 0x009d713a, 0x00a58335, 0x00a27b3b, 0x009a6f39, 0x00a77c43, 0x00d4a171, 0x00e0ad7b, 0x00ce9a6a, 0x00b88656, 0x00c18e59, 0x00d2a369, 0x00d9ab6d, 0x00dcae6d,
- 0x00e2b371, 0x00e1b780, 0x00caa379, 0x00be9e88, 0x00bca6a8, 0x00c6b8c2, 0x00d3c9d7, 0x00dfd7e6, 0x00efe6ef, 0x00f5eff1, 0x00fbf4f6, 0x00faf1fb, 0x00f1e5e5, 0x00cebfb2, 0x0084725f, 0x00625134,
- 0x005a492a, 0x004c3e24, 0x00382d1e, 0x00272118, 0x001c1b1a, 0x00141816, 0x00828887, 0x00ecf0ed, 0x00fdfdff, 0x00fdfcfb, 0x00fffdfd, 0x00fffcf5, 0x00b1aca0, 0x00393321, 0x001d1802, 0x00201a02,
- 0x005f5857, 0x00b5adb7, 0x009b92ad, 0x005b5681, 0x000f1f52, 0x00081e48, 0x00566885, 0x00afb0bb, 0x00c58b84, 0x00b85b48, 0x00a23920, 0x00ac4824, 0x00d08b7b, 0x00d2a9b0, 0x00665b76, 0x001d2c5f,
- 0x00113781, 0x002051a0, 0x003866ba, 0x00234f9e, 0x000d2e7f, 0x00164591, 0x00245ba6, 0x002b62b4, 0x003067c1, 0x00366fca, 0x003972ce, 0x002e63be, 0x0017459e, 0x00184198, 0x001b3d90, 0x002b4596,
- 0x002a5eb4, 0x00245db1, 0x00255db7, 0x00255aaf, 0x00325498, 0x003d4c7c, 0x00353554, 0x002d222e, 0x00231416, 0x00180a0c, 0x0028160f, 0x005f3d23, 0x00a67f5d, 0x00be926f, 0x00c99a73, 0x00cc9b72,
- 0x00ca976f, 0x00c1956f, 0x00b78c6c, 0x00a37e5d, 0x00714e32, 0x00563215, 0x00502607, 0x00562a06, 0x00723d1f, 0x00764832, 0x00734f43, 0x00543f3f, 0x005e5667, 0x007e7a8e, 0x004f4a61, 0x003a3248,
- 0x004a4146, 0x0050403a, 0x00513527, 0x005c3921, 0x005e3d23, 0x005a432c, 0x00554731, 0x00524937, 0x00574b36, 0x0054462d, 0x00504529, 0x004a462a, 0x00463f27, 0x003f3923, 0x0036301e, 0x002d281a,
- 0x00252116, 0x001c1811, 0x0016120f, 0x00120d0d, 0x000e0b0d, 0x0006080c, 0x0006070b, 0x00080607, 0x00190e0a, 0x0028150e, 0x00371b11, 0x00421e0f, 0x00532510, 0x00612d15, 0x006f371d, 0x007b3d22,
- 0x007f432c, 0x007c442c, 0x007d482f, 0x00724329, 0x005f3b23, 0x00513521, 0x003b2515, 0x00524237, 0x00ccc3bf, 0x00f9f6f5, 0x00fffefd, 0x00fefdfa, 0x00fbfbf9, 0x00ebeceb, 0x00a1a0a2, 0x007e7e83,
- 0x00b5b2c3, 0x00d9d6ed, 0x00dedaf9, 0x00dbd5f9, 0x00cfc8f5, 0x00c4baf1, 0x00c6b9f8, 0x00c9bcf5, 0x00d3c7f3, 0x00c9c0e1, 0x00aea9c2, 0x00bbb7ca, 0x00dfdaea, 0x00eae4f2, 0x00ebe6f5, 0x00eeeafb,
- 0x00f3e6ff, 0x00e9ecfe, 0x00deecff, 0x00d6edfc, 0x00e4f2fb, 0x00f8eae5, 0x00e8b19f, 0x00d0734f, 0x00db4818, 0x00ea4813, 0x00f04812, 0x00ee4f0d, 0x00e94d11, 0x00df4c14, 0x00d7501e, 0x00ce4e29,
- 0x00db6c59, 0x00f29181, 0x00feb1aa, 0x00e69993, 0x008f433f, 0x005f331c, 0x00553922, 0x00442a20, 0x001e0d1a, 0x001b1027, 0x002f2644, 0x00342f4d, 0x002a2331, 0x002d2627, 0x003c3626, 0x00322b15,
- 0x0025201e, 0x00100e0c, 0x000a0907, 0x000d0d0a, 0x000b0a08, 0x00090806, 0x00090906, 0x00060704, 0x00050903, 0x00030703, 0x00010204, 0x00020105, 0x00000002, 0x00000107, 0x00111522, 0x0040465e,
- 0x007777a4, 0x007e7ba7, 0x0046446a, 0x00181533, 0x000a0911, 0x000c0c0f, 0x00090c09, 0x000a0b0e, 0x00151423, 0x0048475d, 0x00a5a2c0, 0x00cbc8ec, 0x00d8d3fd, 0x00d3cffb, 0x00d4cefe, 0x00cfc9fc,
- 0x00c9b9a3, 0x005d3b22, 0x005f3d21, 0x00613b1e, 0x00663b1d, 0x00693e1d, 0x006a3d1b, 0x006a3f1e, 0x006c4123, 0x006b4224, 0x006c4426, 0x006a4220, 0x006b4222, 0x0069411f, 0x006a4220, 0x006a421d,
- 0x00663f1e, 0x00653e1d, 0x00684020, 0x00694021, 0x00673e1f, 0x00664120, 0x00644121, 0x00613e21, 0x00613b1d, 0x005f3b1e, 0x005d3b1f, 0x005d3a1f, 0x005b371e, 0x0057331c, 0x00512e16, 0x004e2b11,
- 0x004c351a, 0x00473117, 0x00432d14, 0x00412b13, 0x003c2714, 0x003c2717, 0x00362314, 0x00311e11, 0x002c1912, 0x0028170e, 0x002a1810, 0x002c1f0f, 0x002f2315, 0x002c2814, 0x00373420, 0x0042402a,
- 0x004c4b39, 0x00595a46, 0x006b715b, 0x007f876f, 0x009ea58f, 0x00b8b7b0, 0x00c8c6c9, 0x00d6d3d5, 0x00e7e6e8, 0x00f2eef1, 0x00f7f3f4, 0x00f5f2f4, 0x00fbfbfa, 0x00fdfdfd, 0x00fdfcfb, 0x00fbf7f9,
- 0x00fffdf7, 0x00fdfbf4, 0x00fffcf5, 0x00fefcf7, 0x00fefcf9, 0x00fcfcf8, 0x00fcfcf8, 0x00fdfdf9, 0x00fdfcfb, 0x00fafaf6, 0x00f8fcf2, 0x00f6fee9, 0x00faffea, 0x00fdffeb, 0x00fbffec, 0x00f9ffec,
- 0x00f7fff0, 0x00f9fff6, 0x00fbfff9, 0x00fafefd, 0x00f5f9fa, 0x00f7fcfd, 0x00f5fafb, 0x00f3f7f6, 0x00f4f3f5, 0x00f3eff4, 0x00f0eaf2, 0x00ede9f0, 0x00e9e8ef, 0x00e4e7ec, 0x00e0e5e8, 0x00dce4e4,
- 0x00d7dce4, 0x00d0d9d3, 0x00c8cbc6, 0x00ccbbc5, 0x00bbb2cb, 0x00b6c1c1, 0x00bbc2b2, 0x00977f66, 0x005e2b42, 0x00282a62, 0x00071954, 0x00151332, 0x00564339, 0x0097764b, 0x00b58a4d, 0x00d2a059,
- 0x00d5a570, 0x00d4a87a, 0x00cfa579, 0x00c39d6b, 0x00c19c5d, 0x00d8caab, 0x00fdfff2, 0x00fcfcf8, 0x00fdfcfe, 0x00fdfcff, 0x00f8f6f4, 0x00b5b0a5, 0x00392d15, 0x002d1600, 0x00371b03, 0x0044230f,
- 0x00462309, 0x00462308, 0x00472609, 0x0048280a, 0x0049280a, 0x00472608, 0x00432304, 0x00442305, 0x00452205, 0x00442304, 0x00432308, 0x00412209, 0x0041220a, 0x0041220a, 0x003f1f08, 0x003f1f07,
- 0x00371a02, 0x00391a01, 0x003a1a02, 0x00381901, 0x00361901, 0x00361a04, 0x00351806, 0x00321403, 0x002f1601, 0x002e1400, 0x002e1402, 0x002e1604, 0x002f1503, 0x002e1403, 0x002e1302, 0x002d1002,
- 0x00291503, 0x00281703, 0x00281703, 0x00271700, 0x00271600, 0x00271600, 0x00291702, 0x002b1905, 0x002e1c07, 0x002f1d07, 0x00301f09, 0x0030200d, 0x0031220d, 0x00322411, 0x00342713, 0x00372813,
- 0x00362813, 0x00382a16, 0x003b2d1a, 0x003d2f1b, 0x003f311d, 0x00413320, 0x00433525, 0x00453728, 0x004b3b2d, 0x004d3e2f, 0x004f4030, 0x00524333, 0x00574739, 0x005c4c3e, 0x00605041, 0x00635445,
- 0x00665b52, 0x00685e54, 0x006d6259, 0x0072675d, 0x00786c63, 0x007f736a, 0x00867b72, 0x008a8077, 0x008f877e, 0x00968b83, 0x009c9187, 0x009e9889, 0x00a19e8f, 0x00a7a396, 0x00ada79b, 0x00b0a99c,
- 0x00bbb6af, 0x00beb8b0, 0x00c2bbb6, 0x00c5bfb6, 0x00c9c2be, 0x00cdc8c0, 0x00d1ccc6, 0x00d5cec7, 0x00d8d2cc, 0x00d9d4ce, 0x00dfd9d2, 0x00e1dcd4, 0x00e4dfd8, 0x00e8e3dc, 0x00ede7df, 0x00ece6de,
- 0x00ecede7, 0x00edeee7, 0x00f0efea, 0x00f2f1eb, 0x00f2f2eb, 0x00f3f3ec, 0x00f4f3ec, 0x00f6f4ed, 0x00f8f6f1, 0x00f8f6f0, 0x00f9f7f1, 0x00f9f7f3, 0x00fcfaf7, 0x00fcfbf7, 0x00fffffb, 0x00fffefc,
- 0x00fffbfb, 0x00fffcfc, 0x00fffcfb, 0x00fefbfc, 0x00fdfcfb, 0x00fbfcfc, 0x00fdfdfb, 0x00fcfafa, 0x00fbfcf9, 0x00fcfcfb, 0x00fefdfe, 0x00fefefd, 0x00fcfefc, 0x00fcfefb, 0x00fbfbfa, 0x00e2e1e0,
- 0x005b5f53, 0x00101716, 0x00263040, 0x0036436a, 0x002a3a7f, 0x00283b8c, 0x002b459c, 0x0028469d, 0x001e3e8c, 0x0020448a, 0x002a4d98, 0x003250a8, 0x003957a3, 0x004e6db1, 0x006c8cd0, 0x005b7bbe,
- 0x004663b7, 0x004465ba, 0x003e62ba, 0x00355db1, 0x003763ae, 0x00365fb1, 0x00385bb4, 0x003656ab, 0x00314da4, 0x00314fa7, 0x002e50a8, 0x002c52a6, 0x002c4f94, 0x00284275, 0x00152545, 0x0012192b,
- 0x00171418, 0x001a181c, 0x00131316, 0x00151618, 0x001f1f1f, 0x00212221, 0x001b1d1b, 0x000d0e0d, 0x00070a07, 0x000c0d0a, 0x000a0707, 0x00110b10, 0x00101114, 0x0009100d, 0x00162115, 0x001f2616,
- 0x00232517, 0x00292825, 0x00252435, 0x0022284b, 0x00243370, 0x001d357a, 0x001b357e, 0x001c367e, 0x002d488d, 0x00324e96, 0x0026438e, 0x00294795, 0x003c59ab, 0x003a59ac, 0x003d5db1, 0x003758ae,
- 0x007588bc, 0x008396d6, 0x004d61ad, 0x004058ae, 0x003e5bb4, 0x00496bbf, 0x00476bb9, 0x004066b0, 0x003d60ae, 0x003e5fb1, 0x003c5fb6, 0x003857b2, 0x003058b0, 0x003359ad, 0x003b5fac, 0x00385394,
- 0x00232a4f, 0x0018172d, 0x001d1422, 0x001f161e, 0x00201c20, 0x00171513, 0x001a1b19, 0x0015171b, 0x00141d2c, 0x002d3a4b, 0x005d6a7e, 0x007b8aa0, 0x00b6bfcd, 0x00edf1f9, 0x00fefefd, 0x00fffcfa,
- 0x00fffdff, 0x00fffefa, 0x00d7d4c7, 0x008d8871, 0x005e563f, 0x00463c30, 0x004e4443, 0x00a6a0a3, 0x00fefbff, 0x00fbfcf9, 0x00fefefc, 0x00fafcfb, 0x00fdfffc, 0x00f5fafe, 0x00fbfdfd, 0x00e5eee5,
- 0x00374a2a, 0x00344a20, 0x00395122, 0x00365121, 0x00355028, 0x00395325, 0x003d5524, 0x003f5626, 0x003f5625, 0x003f5626, 0x00405729, 0x0042592a, 0x0042592a, 0x0042582a, 0x0044592c, 0x00445a2e,
- 0x003e612d, 0x003e622a, 0x0040632a, 0x0041642c, 0x0043642d, 0x003f5f2e, 0x00708d67, 0x00a6c1a3, 0x0093ac9c, 0x0092a8a0, 0x008ba28e, 0x00617441, 0x004e622f, 0x004f602d, 0x004f602d, 0x00515e2d,
- 0x0055602d, 0x00575f2c, 0x005a5f2a, 0x005b5f28, 0x005c5e2a, 0x005e602b, 0x005e5f2b, 0x005f5e2c, 0x00615e29, 0x00605e29, 0x00635d2b, 0x00695e2e, 0x006c6131, 0x00695e2e, 0x00665a2a, 0x00675b2a,
- 0x0076562b, 0x0078542a, 0x0078542a, 0x00775429, 0x00795129, 0x00794f29, 0x00784d28, 0x007e4d2a, 0x00804e27, 0x007e4c25, 0x00814e2d, 0x007d4b2e, 0x00815133, 0x007d4d2e, 0x007d4d2f, 0x007d4e30,
- 0x007c4a2e, 0x0078482a, 0x007d482d, 0x007a492d, 0x00784529, 0x006d4726, 0x00714c2c, 0x006e4a29, 0x006a4728, 0x006a4729, 0x00674428, 0x0068472d, 0x00694830, 0x0066452e, 0x0065432d, 0x0065412b,
- 0x0066402c, 0x0066422e, 0x00664330, 0x00664431, 0x00664533, 0x00745442, 0x007b5e4c, 0x008b6f5e, 0x009c8171, 0x00a58b7c, 0x00ae9684, 0x00b19c88, 0x00baa894, 0x00b8aa95, 0x00bbaf9c, 0x00c7bcad,
- 0x00c9bfb3, 0x00d2c9bd, 0x00e5dcd1, 0x00f4ece1, 0x00fffbf0, 0x00fefdec, 0x00fffdec, 0x00fff8ea, 0x00fdf7f1, 0x00fdfaf4, 0x00fbf7f6, 0x00fffafb, 0x00fffcfa, 0x00fefdf8, 0x00fffdf6, 0x00fdfcf0,
- 0x00fef9ff, 0x00fdfafe, 0x00fdf9fe, 0x00fefaff, 0x00fef7fe, 0x00fff5fe, 0x00fcf6fb, 0x00fdf8ff, 0x00fffafe, 0x00fdfcff, 0x00fcfdfb, 0x00fefeef, 0x00fffffd, 0x00fefefd, 0x00fdfbfd, 0x00fffdf9,
- 0x00fef9e9, 0x00f6f9f0, 0x00f4fcfa, 0x009eb8cf, 0x004774c5, 0x004a75c5, 0x004b74bd, 0x004570b0, 0x00567db3, 0x006b94ca, 0x007095d0, 0x005a79bd, 0x004763a7, 0x00506cad, 0x007c97cd, 0x00a0bde5,
- 0x007ea9f1, 0x004f7ac5, 0x003f6bb6, 0x004a77c3, 0x004f7cc7, 0x00507dc8, 0x004976bf, 0x004875bf, 0x004974c1, 0x004875be, 0x00507ac4, 0x00527ac6, 0x004d75be, 0x00567ec6, 0x005780c7, 0x004b77bf,
- 0x00537cc3, 0x00517abd, 0x004b76b6, 0x00507cba, 0x005884c4, 0x005281c4, 0x004070b4, 0x003b6fb1, 0x004774bf, 0x004675c3, 0x00487bcd, 0x004477ca, 0x003a6fbf, 0x003f72c0, 0x00437bc5, 0x00457fc8,
- 0x004064bd, 0x003462b5, 0x003b75c4, 0x005a9ae1, 0x007eb1ed, 0x007b98cd, 0x00aabdea, 0x00c1cdf3, 0x008898c2, 0x0058739c, 0x00505e7f, 0x00735f6f, 0x008e785d, 0x00a0824b, 0x0099732c, 0x0092651a,
- 0x009e6230, 0x00a26740, 0x00a46f48, 0x00a97d4c, 0x00a9873b, 0x009e783a, 0x008e6530, 0x009e723f, 0x00d2a170, 0x00dea97b, 0x00cf9a6e, 0x00c18d5c, 0x00ce9f67, 0x00dbb072, 0x00d4b06f, 0x00d8b773,
- 0x00e2b873, 0x00e1b77e, 0x00c7a57b, 0x00d5bca5, 0x00e3d5d6, 0x00dbcfd9, 0x00d9d3e0, 0x00e0d8e7, 0x00ece1e6, 0x00f2e8e8, 0x00f5f0ec, 0x00f5f1f4, 0x00f3ecec, 0x00e0d3cf, 0x009b8c84, 0x00716054,
- 0x00655646, 0x005a4e3e, 0x004b4132, 0x003d3b2d, 0x00333729, 0x002f362f, 0x00919996, 0x00eff1f2, 0x00fcfdff, 0x00fefdff, 0x00fffdfd, 0x00fffdfc, 0x00b4ada4, 0x003a3325, 0x001f1805, 0x00241b05,
- 0x0075756a, 0x00d4ccd2, 0x00c4bad2, 0x009d94ba, 0x00333c6b, 0x00293759, 0x00848a9a, 0x00b8a7a3, 0x00ba5b40, 0x00ce411f, 0x00cf2d08, 0x00d03006, 0x00b63f2f, 0x00934a55, 0x005f4266, 0x003f4d8c,
- 0x002c60b6, 0x00316cc3, 0x00336bc2, 0x00194999, 0x000d2d75, 0x00174696, 0x00245bb1, 0x002a66bb, 0x002d69c0, 0x002f70c5, 0x003174c7, 0x002663b5, 0x00164a9e, 0x00214ea5, 0x001e469e, 0x00294aa3,
- 0x002758b1, 0x001d56b3, 0x001d5cba, 0x00205dba, 0x002e579e, 0x0036487c, 0x00333654, 0x002b222e, 0x00211a1d, 0x00202026, 0x002b2624, 0x003e271d, 0x006a4f39, 0x0083644b, 0x009c7757, 0x00a7805e,
- 0x00a47c5a, 0x00957254, 0x007d5e46, 0x00654936, 0x00412b1d, 0x00391f0f, 0x00442514, 0x00573521, 0x00724b37, 0x0079594f, 0x00705b5e, 0x004c4658, 0x006d769e, 0x00909fcd, 0x004d5e8f, 0x00344174,
- 0x00675a70, 0x007c6165, 0x00754a3c, 0x00814626, 0x0080441b, 0x006e401b, 0x00614122, 0x0058482e, 0x00514e35, 0x00524d32, 0x004e4a2c, 0x004d4729, 0x00443f23, 0x0040391e, 0x00342f17, 0x002f2716,
- 0x00272217, 0x00201b14, 0x00191311, 0x00161010, 0x00100b0e, 0x000b090e, 0x000a080c, 0x000e080a, 0x001a0e09, 0x002a150e, 0x003a1b11, 0x00492110, 0x005c2a12, 0x006c3417, 0x007d4021, 0x00884425,
- 0x008b482d, 0x008a492f, 0x00884c30, 0x007d492b, 0x00693e24, 0x0056361f, 0x00452e1b, 0x00534034, 0x00c1b9b5, 0x00f9f6f7, 0x00fcfbfd, 0x00fefefe, 0x00fbfcfa, 0x00f2f4f0, 0x00adaea9, 0x007f7f7c,
- 0x00adadb4, 0x00d8d5e4, 0x00e3e1f3, 0x00dedbf7, 0x00d7d1f2, 0x00ccc4ec, 0x00cbc2e9, 0x00dad0f1, 0x00e3ddf4, 0x00ede9f9, 0x00fbf9ff, 0x00fbfafe, 0x00faf8fe, 0x00f9f6ff, 0x00f2effb, 0x00efebff,
- 0x00fae8ff, 0x00e7e9fe, 0x00e4f0ff, 0x00e3f6ff, 0x00f6e6e3, 0x00f7ba9a, 0x00e5834d, 0x00ea6a2b, 0x00f47c55, 0x00fa9b86, 0x00f2b4b4, 0x00d9c7d3, 0x00e4cdd4, 0x00e4c7c5, 0x00d4ab9c, 0x00c5987f,
- 0x00dca68e, 0x00edbba5, 0x00eeb9aa, 0x00ddada2, 0x00bc9090, 0x00b18d83, 0x00ae8982, 0x00997a7a, 0x0067515f, 0x00504357, 0x004d445d, 0x003c3a55, 0x002a2338, 0x00261f30, 0x00382e35, 0x002f2426,
- 0x00211a19, 0x000e0908, 0x00060303, 0x000f0d0d, 0x000b0a0a, 0x00090707, 0x00080806, 0x00060906, 0x00020803, 0x00020701, 0x00010301, 0x00010203, 0x00010300, 0x00000401, 0x0002090b, 0x001b2531,
- 0x00545980, 0x005f618a, 0x00212142, 0x000d0c1e, 0x00090a04, 0x000f0e12, 0x000c0b15, 0x00262634, 0x00686880, 0x009f9dbb, 0x00cac6eb, 0x00cbc7f1, 0x00d0ccf8, 0x00d4d0fb, 0x00d9d4fe, 0x00d7d1fc,
- 0x00dbcebd, 0x00947f6b, 0x008f7b64, 0x009a8067, 0x0095765a, 0x009a7e5f, 0x009d805f, 0x009c7e5f, 0x009e8163, 0x009c8164, 0x009c8166, 0x009b7f69, 0x009b7d67, 0x00997b67, 0x00997b63, 0x00997a60,
- 0x009a7960, 0x0097775e, 0x00997960, 0x0098795f, 0x00997a5e, 0x00987d60, 0x00967d61, 0x00977c63, 0x00977d63, 0x00967d64, 0x00977e66, 0x00967b64, 0x00957660, 0x00947460, 0x00947462, 0x00926f60,
- 0x008d7757, 0x00877152, 0x00846e51, 0x00826d52, 0x007c6652, 0x007b6555, 0x00776254, 0x00725e52, 0x006f5d56, 0x006c5853, 0x00664f4e, 0x00624848, 0x00574240, 0x00513f3b, 0x004a3c38, 0x00483934,
- 0x00423932, 0x003a372d, 0x0038382f, 0x003c4239, 0x004e5149, 0x00595c50, 0x00636759, 0x006f7869, 0x008a8b83, 0x009a9b95, 0x00acabaa, 0x00c2c0c5, 0x00d6d4dd, 0x00e5e4ec, 0x00f2f0f6, 0x00f6f2f8,
- 0x00f5f8fb, 0x00f6f9f9, 0x00fafbf9, 0x00f9fbfa, 0x00fbfefe, 0x00f9fcfd, 0x00fafdfd, 0x00fcfefe, 0x00fcfcfe, 0x00fafafb, 0x00fbfcfc, 0x00fbfcf7, 0x00fefbf9, 0x00fffcf8, 0x00fdfffb, 0x00fafefa,
- 0x00fdfff8, 0x00fdfdf6, 0x00fcfcf8, 0x00fbfdfb, 0x00fcfafc, 0x00f8faf6, 0x00fafcfa, 0x00fcfdfb, 0x00fffefe, 0x00fffcfe, 0x00fffcfe, 0x00fcfbfb, 0x00fbfafb, 0x00f6f7f9, 0x00f1f4f6, 0x00edf3f3,
- 0x00ebf1f8, 0x00e5f1ea, 0x00e4e6e0, 0x00e5d1da, 0x00d4c9de, 0x00c1d0cc, 0x00bcc3ac, 0x00a68666, 0x0075394a, 0x00353064, 0x0015235e, 0x002a2441, 0x00705746, 0x00a17d4b, 0x00be8e4b, 0x00d49c50,
- 0x00dca570, 0x00d6a778, 0x00cea47b, 0x00bd9c6c, 0x00c6a466, 0x00ddd0b0, 0x00fefdf1, 0x00fefdf8, 0x00fdfcff, 0x00fdfbfe, 0x00f4f0ec, 0x00a9a192, 0x0038260d, 0x00381c03, 0x00442409, 0x00522d15,
- 0x00573010, 0x00542d0c, 0x00583411, 0x005b3713, 0x005a3310, 0x005b3311, 0x005a3311, 0x0059310f, 0x0058310f, 0x0058320f, 0x00573212, 0x00563214, 0x00573316, 0x00573316, 0x00553014, 0x00542e12,
- 0x004e2a0d, 0x004e2b0d, 0x00502c0f, 0x004f2c0f, 0x004e2c0f, 0x004e2d11, 0x004b2c11, 0x0048290e, 0x0046290d, 0x0046270c, 0x0044260a, 0x00442509, 0x0047260a, 0x0047260a, 0x00442508, 0x00422307,
- 0x0043230b, 0x0042230b, 0x0041220c, 0x0040210a, 0x003f1f08, 0x003e1d06, 0x003c1c05, 0x003c1c05, 0x003a1c04, 0x003a1b02, 0x00371b03, 0x00341c05, 0x00351b04, 0x00371b06, 0x00361c05, 0x00361e03,
- 0x00341b03, 0x00331a04, 0x00331904, 0x00311702, 0x00311602, 0x00301503, 0x00311505, 0x00321605, 0x00301305, 0x002f1405, 0x002e1403, 0x002e1302, 0x002e1205, 0x002d1004, 0x002b1003, 0x002a1004,
- 0x002b1606, 0x002b1706, 0x002c1a09, 0x002f1d0c, 0x00321d0e, 0x00331d0e, 0x00341f0f, 0x00362111, 0x00392615, 0x003c2816, 0x003e2b19, 0x003b2e1b, 0x003c311f, 0x00423525, 0x00463829, 0x00473a2b,
- 0x004a3e30, 0x004d4033, 0x0053443b, 0x005a4941, 0x00604e47, 0x0061554b, 0x00615c50, 0x00646053, 0x00696258, 0x006b655b, 0x006e695d, 0x00706b5f, 0x00767166, 0x007b766c, 0x00807a6e, 0x00827c70,
- 0x008c8a81, 0x008d8c83, 0x0096948b, 0x009d9991, 0x00a19e95, 0x00a6a29a, 0x00aba69f, 0x00b0aaa3, 0x00b8b3ae, 0x00b9b5ad, 0x00c1bdb5, 0x00cac6c1, 0x00cfcac6, 0x00d3cec9, 0x00d9d4cf, 0x00dbd5d3,
- 0x00dfdbd7, 0x00e1dfdb, 0x00e5e3df, 0x00e9e7e4, 0x00ebe8e5, 0x00edebe7, 0x00efece8, 0x00f0ece8, 0x00efeeee, 0x00f2f1f0, 0x00f4f4f3, 0x00f6f6f5, 0x00f5f6f5, 0x00f8f8f7, 0x00fafafa, 0x00e2e1e2,
- 0x00545956, 0x000f151d, 0x00222c45, 0x00313d6d, 0x002f3e8b, 0x0032459c, 0x003149a3, 0x002a449d, 0x00214092, 0x0023428b, 0x00274693, 0x002c48a3, 0x003452a0, 0x004c68ae, 0x006c87ce, 0x005c77be,
- 0x00465fb8, 0x004663bf, 0x004262c0, 0x003c5fba, 0x00355db0, 0x00365bb3, 0x003757b3, 0x003454ac, 0x00344ea7, 0x00334fad, 0x003353b3, 0x002a50ac, 0x003458a4, 0x00344f8a, 0x001b2c57, 0x00131a3b,
- 0x0019181d, 0x001f1d21, 0x0018181b, 0x001a1b1d, 0x00252425, 0x00272625, 0x001e1f1d, 0x0010120f, 0x000e0d0c, 0x00110f0d, 0x000f0b0b, 0x00130e12, 0x00131416, 0x000d120e, 0x001c251a, 0x0021291a,
- 0x00232114, 0x00292726, 0x00252337, 0x00242a50, 0x002a3879, 0x00203783, 0x001a3483, 0x001c3783, 0x002d4795, 0x00314b9a, 0x00294392, 0x00264192, 0x003551a7, 0x003754ad, 0x003855b0, 0x003754b1,
- 0x006379b2, 0x007f95da, 0x004f67b8, 0x00405bb6, 0x003a5ab7, 0x00456ac0, 0x00466ebd, 0x00436bb6, 0x003e67b2, 0x003e64b6, 0x003e63b7, 0x003a5ab0, 0x00375eb6, 0x00375fb4, 0x00456bb9, 0x004260a3,
- 0x002b335e, 0x00161630, 0x00181020, 0x001d131e, 0x001c171e, 0x00161313, 0x00181917, 0x00121518, 0x00131c2b, 0x00323e50, 0x00647187, 0x00808ea6, 0x00b8c2d1, 0x00ecf1f9, 0x00fbfcfc, 0x00fffdfb,
- 0x00fefdff, 0x00fefdf9, 0x00dcd8cc, 0x00938c79, 0x005d5243, 0x003a2d28, 0x004c3f41, 0x00aaa0a6, 0x00fefcfe, 0x00fbfcf7, 0x00fefdfb, 0x00fbf8f7, 0x00fffdfc, 0x00f8f6fb, 0x00fffcfd, 0x00d7dad1,
- 0x00424d2e, 0x003c4e25, 0x003d5125, 0x00394f24, 0x003a512d, 0x003d552a, 0x0041562a, 0x0041572b, 0x0043582a, 0x0043592a, 0x00455a2d, 0x00465b2d, 0x00475b2e, 0x00465b2d, 0x00475b2e, 0x00485b2f,
- 0x00495f34, 0x00485f2e, 0x004a622e, 0x004b622e, 0x004f6330, 0x004c5d30, 0x009aa786, 0x00aab49d, 0x009fa5a3, 0x00b1b5ba, 0x00a5b4aa, 0x005f8455, 0x0043693a, 0x00416435, 0x00486938, 0x004a6837,
- 0x004d6732, 0x004e6632, 0x00506732, 0x00516632, 0x00536734, 0x00536833, 0x00536930, 0x00546a30, 0x00556730, 0x00556730, 0x00596832, 0x00596631, 0x00596531, 0x005c6733, 0x005e6836, 0x005e6837,
- 0x005a6428, 0x005b642a, 0x005d652c, 0x005f662f, 0x0063632f, 0x0063602d, 0x0067612e, 0x0069602e, 0x006f612e, 0x006e5f2c, 0x006d5a2a, 0x006f592b, 0x00735b2d, 0x0071582b, 0x006e562a, 0x0070572b,
- 0x006a5021, 0x00685020, 0x006b5324, 0x006f5829, 0x006e5828, 0x0077562a, 0x007f552e, 0x007c522a, 0x00774c27, 0x00774a27, 0x00744828, 0x00754a2b, 0x0074482b, 0x00714629, 0x00714529, 0x00714428,
- 0x00724327, 0x00714227, 0x0071422a, 0x006f422a, 0x006e432b, 0x006b432b, 0x00653e29, 0x0067412c, 0x0064412c, 0x00613c28, 0x00653e28, 0x00663f26, 0x00603922, 0x005d3821, 0x00603d26, 0x00694733,
- 0x00674636, 0x006a4d3d, 0x00715749, 0x00785f54, 0x007c665b, 0x00776755, 0x00786954, 0x00786755, 0x00897a73, 0x00998c85, 0x009e908c, 0x00ada19e, 0x00b8aea9, 0x00c3bcb3, 0x00d1cbbf, 0x00d9d4c5,
- 0x00eaeada, 0x00eaebdd, 0x00efefe9, 0x00f0f1ef, 0x00f2f1f3, 0x00f5f2f8, 0x00eeeef4, 0x00f4f8f5, 0x00f3faf7, 0x00eff9f1, 0x00f5fff4, 0x00f9fef1, 0x00fafcfe, 0x00fcfdfe, 0x00fcfbfe, 0x00fffbfe,
- 0x00fefbeb, 0x00f8fbf2, 0x00f1fefd, 0x008badc6, 0x004074cb, 0x00486cb6, 0x005d79b9, 0x00728fc6, 0x00a0bbe5, 0x00bdd9f9, 0x00b0c9ef, 0x007185b9, 0x0052649e, 0x008596c8, 0x00bdcdf7, 0x00bbcceb,
- 0x006e98e1, 0x004872bc, 0x00426cb4, 0x004772ba, 0x004671b9, 0x004d78c1, 0x004c77bf, 0x004873bd, 0x004973bd, 0x004370ba, 0x004e77bf, 0x005573b6, 0x006182c3, 0x0082a2e1, 0x0080a2df, 0x005679b5,
- 0x004768a5, 0x005877b1, 0x007494cc, 0x008eb0e3, 0x009dbff0, 0x008ab1ec, 0x00557fc5, 0x003b68ac, 0x004570bc, 0x004572c1, 0x004878c9, 0x004172c4, 0x003a6ebc, 0x003c71bd, 0x00346cb5, 0x00336db6,
- 0x003a57af, 0x003f6ac0, 0x00437ace, 0x004f91e2, 0x0070abf2, 0x00729bda, 0x00728fca, 0x008ea3d5, 0x004b6394, 0x00315081, 0x00334371, 0x005a4a68, 0x007c6b5a, 0x00947b47, 0x00a28037, 0x00a77d2d,
- 0x00b27b47, 0x00b98156, 0x00b8835a, 0x00b78757, 0x00a67f3b, 0x00946c32, 0x00774f1d, 0x00875c2c, 0x00c9976a, 0x00dba67a, 0x00d09a6e, 0x00c39060, 0x00cca167, 0x00d7b173, 0x00cfad6c, 0x00d0b36d,
- 0x00e4bd77, 0x00d4b075, 0x00d3b48d, 0x00f1dfc8, 0x00fcf3f8, 0x00f2e6f3, 0x00ebe1f3, 0x00e5e0ed, 0x00e9e0e4, 0x00efe5e7, 0x00f0eae9, 0x00f2f1f0, 0x00f6f1f1, 0x00eae0e0, 0x00b3a5a4, 0x0081716d,
- 0x0075635f, 0x006a5e55, 0x005d5548, 0x00545342, 0x004e5340, 0x004c5448, 0x00a2a9a4, 0x00f2f4f3, 0x00fbfbfd, 0x00fdfcff, 0x00fdfefe, 0x00fefdfc, 0x00b4ada7, 0x003b3225, 0x001f1706, 0x00251b06,
- 0x00808677, 0x00e6e1e4, 0x00d8cfe0, 0x00b8acd1, 0x00444872, 0x00424b6a, 0x00b0aeb6, 0x00c0a197, 0x00c04a28, 0x00d9380c, 0x00f23906, 0x00ef3505, 0x00bf301d, 0x008c3241, 0x00714770, 0x00565ea5,
- 0x003670ce, 0x003471ce, 0x003168c4, 0x001a4896, 0x000d2f73, 0x0015479a, 0x00225dbd, 0x002767c2, 0x00266abe, 0x002872c2, 0x002c77c5, 0x001b62ae, 0x000a4a99, 0x001951a6, 0x001745a0, 0x00274dab,
- 0x002856b0, 0x002058b4, 0x001d5bbb, 0x001e5dbb, 0x002b57a0, 0x00394f84, 0x00383e5f, 0x002f2734, 0x00241f28, 0x00242630, 0x0028252d, 0x0033231e, 0x004e392d, 0x0058412b, 0x005d3e23, 0x00634022,
- 0x00654125, 0x005a3c24, 0x00462c1a, 0x00362014, 0x002e1c19, 0x00372421, 0x00452e29, 0x00574035, 0x0072524b, 0x006f575a, 0x00605464, 0x00404464, 0x005569a1, 0x00617cba, 0x00365495, 0x003f5c9d,
- 0x00766c86, 0x0096767c, 0x00905c4e, 0x00a15a34, 0x00a75f2e, 0x00895226, 0x00734d27, 0x005d4c2c, 0x00544e34, 0x004e4e32, 0x004b492c, 0x004d4427, 0x00453d21, 0x003f3a1e, 0x00383219, 0x00312b17,
- 0x00282218, 0x00231c16, 0x001d1614, 0x00191212, 0x00130c11, 0x000c0a10, 0x000a090c, 0x000c0708, 0x001d0e08, 0x002d150d, 0x003d1c11, 0x004d2311, 0x00622c14, 0x0075371a, 0x00864424, 0x008f4827,
- 0x00914d2e, 0x008f4c30, 0x008c4e30, 0x00814b2a, 0x006c4023, 0x005a391f, 0x004f3722, 0x004f3c2e, 0x00b9afab, 0x00f9f4f3, 0x00fefcfd, 0x00fefdfe, 0x00fcfdfd, 0x00fafdfa, 0x00b5b6b1, 0x007b7976,
- 0x00a7a8aa, 0x00d4d2dc, 0x00e5e3f2, 0x00e3e2f6, 0x00dcd7f0, 0x00ded5f1, 0x00e3daf2, 0x00f1e9fc, 0x00faf6ff, 0x00f6f3f8, 0x00f7f6f7, 0x00f8f7f9, 0x00f3f1f9, 0x00edeaf6, 0x00eeebf9, 0x00efebff,
- 0x00fcefea, 0x00f5f3f7, 0x00f2f2fb, 0x00f6f1fa, 0x00f8b8aa, 0x00f27f54, 0x00e85e20, 0x00f66f31, 0x00f7b5ac, 0x00e6dad9, 0x00e5e9f4, 0x00f8e9fb, 0x00fdf1fd, 0x00fce9de, 0x00e9bfab, 0x00dead8b,
- 0x00e9ba91, 0x00ecc1a1, 0x00e7c1ad, 0x00eccec5, 0x00eed9e0, 0x00f4d2e8, 0x00f1cfe3, 0x00e9c6d8, 0x00cbb7bb, 0x00b6aca7, 0x00aba6a1, 0x00999a97, 0x006b6978, 0x004f4963, 0x004f436b, 0x00665484,
- 0x00534d4c, 0x002c2625, 0x00080403, 0x000b0908, 0x000e0b0b, 0x00090706, 0x00060905, 0x00030a04, 0x00020706, 0x00010502, 0x00020301, 0x00030604, 0x00000300, 0x00010400, 0x00000403, 0x000b151c,
- 0x00595e83, 0x00636789, 0x00181934, 0x000b0d13, 0x000a0d03, 0x0009090d, 0x0029283a, 0x0068677a, 0x00b0afcf, 0x00cbc8ed, 0x00d8d3fc, 0x00d1ccf8, 0x00cdc8f6, 0x00d2cdf9, 0x00d7d1fb, 0x00d5cef8,
- 0x00faf2ec, 0x00f0e5dc, 0x00e6ded2, 0x00f3e8da, 0x00efe0cf, 0x00f4e4d2, 0x00f1e2cf, 0x00f0e1cf, 0x00f2e0d2, 0x00f0e0d1, 0x00efe1d2, 0x00f0e2d8, 0x00f0e1d6, 0x00f0e1d8, 0x00efe0d4, 0x00eedfd0,
- 0x00f3e0d7, 0x00f5e2d7, 0x00f1e0d3, 0x00f2e1d2, 0x00f3e0d3, 0x00efdfd2, 0x00ede0d0, 0x00efe0cd, 0x00f2e2d7, 0x00f2e2d6, 0x00f1e3d7, 0x00f1e2d7, 0x00f1e0d6, 0x00f0e0d6, 0x00efe0d5, 0x00efddd3,
- 0x00efe0d1, 0x00ecddcc, 0x00ebddca, 0x00ecddcc, 0x00e7d9cb, 0x00e0d2c7, 0x00d9ccc1, 0x00d9cdc0, 0x00dac8c8, 0x00d3c3c5, 0x00ccbdbd, 0x00ccbbbc, 0x00c3b6b6, 0x00bdafb1, 0x00b2a7a6, 0x00a69ea0,
- 0x009f989a, 0x00949595, 0x008b9090, 0x00828688, 0x00707776, 0x006e6c69, 0x006d6a63, 0x00676b62, 0x00666b67, 0x00636b68, 0x00646a6c, 0x00686a74, 0x0075737e, 0x00807e88, 0x008b8a91, 0x00919097,
- 0x00acacb8, 0x00b7b8c6, 0x00c9c9da, 0x00d5d5e5, 0x00e4e2ed, 0x00ebebec, 0x00f1f3ee, 0x00f3f7ef, 0x00f9faf8, 0x00fcfcfd, 0x00fcfdfd, 0x00fcfcfb, 0x00fcf8ff, 0x00fdfafe, 0x00fbfdfb, 0x00fbfcfb,
- 0x00fffeff, 0x00fff9fc, 0x00fcf8f7, 0x00fdfefc, 0x00fcfcfd, 0x00f8fcf9, 0x00fbfdf9, 0x00fdfcfb, 0x00fffdff, 0x00fffcff, 0x00fefdff, 0x00fafbfa, 0x00fdfdfc, 0x00fdfdfd, 0x00fbfcfd, 0x00f9fdfb,
- 0x00fdfdfe, 0x00f8fdf9, 0x00fafcf9, 0x00fef5f7, 0x00f5eefc, 0x00ecf5f1, 0x00eaf1e1, 0x00e6d5bf, 0x00cda4ae, 0x00938daa, 0x006d738f, 0x00706971, 0x0095826d, 0x00b0946c, 0x00c4a470, 0x00c9a469,
- 0x00d6ab7e, 0x00d1aa7f, 0x00caa47c, 0x00b8976c, 0x00c9ab71, 0x00e5d9bf, 0x00fcfdf4, 0x00fdfefa, 0x00fefcfd, 0x00fffdff, 0x00ebe9e6, 0x009b978d, 0x003d3220, 0x004d3c2c, 0x006b5944, 0x007a6551,
- 0x008f6d57, 0x00906e57, 0x008e6f57, 0x008d7056, 0x008e6d54, 0x008d6c53, 0x008c6d54, 0x008c6c54, 0x008f6b57, 0x008e6c56, 0x008a6b56, 0x00886c57, 0x00886e58, 0x00866e55, 0x00846c53, 0x00816a4f,
- 0x00876d56, 0x00856c56, 0x00856b54, 0x00846b52, 0x00846a53, 0x00856b53, 0x00836b52, 0x00806950, 0x00836857, 0x00826a55, 0x00826a53, 0x00806851, 0x007e6750, 0x007e6751, 0x007d6651, 0x007b644f,
- 0x007e614f, 0x00806150, 0x00806452, 0x00816655, 0x00826456, 0x007d6052, 0x00775f4f, 0x00775e4d, 0x00795c4d, 0x00775b4b, 0x00715b4b, 0x006b5b4d, 0x006b594a, 0x006d574a, 0x006c5848, 0x006b5945,
- 0x006f5745, 0x006e5745, 0x006c5645, 0x006b5545, 0x006a5547, 0x00675347, 0x00655145, 0x00635142, 0x00685248, 0x00655146, 0x00624f41, 0x005f4d3d, 0x005e4a3e, 0x005c493e, 0x005b483d, 0x0058473d,
- 0x00564738, 0x00564637, 0x00534535, 0x00514232, 0x00544030, 0x00544230, 0x0053432f, 0x0054432e, 0x0054432e, 0x0053432b, 0x004e402b, 0x00473d2b, 0x00453a28, 0x00453727, 0x00423427, 0x003c3226,
- 0x003c342f, 0x003a332d, 0x003c342b, 0x0040342b, 0x00433428, 0x003d3328, 0x00383428, 0x0038352c, 0x003e372f, 0x003d372e, 0x003c372c, 0x003b362a, 0x003d372e, 0x003c362c, 0x003b3529, 0x003c362b,
- 0x003c3932, 0x003d3b34, 0x00414038, 0x00414038, 0x0045433c, 0x0045443d, 0x0046453e, 0x00484941, 0x004f4c49, 0x00514e4a, 0x00514e4a, 0x00524f4a, 0x0057544e, 0x0058554f, 0x00595750, 0x005c5a53,
- 0x00645d5a, 0x0067625d, 0x006b6862, 0x00726e6a, 0x0077746c, 0x007b7973, 0x007b7b75, 0x0081827b, 0x008d888b, 0x00959391, 0x00969792, 0x00a0a19d, 0x00a1a19e, 0x00a8a8a5, 0x00abaca9, 0x009b9c9b,
- 0x004b4b4e, 0x00121423, 0x00141d3b, 0x0026366a, 0x00364d9d, 0x00324ca5, 0x002a48a2, 0x0026449e, 0x00284194, 0x0029448d, 0x002b4694, 0x002c47a4, 0x00314e9f, 0x004965ac, 0x006f88cf, 0x006079c2,
- 0x004358b3, 0x00475fc2, 0x004661c6, 0x004060c1, 0x003359b5, 0x003459b6, 0x003558b3, 0x003256ad, 0x003452ae, 0x003455b2, 0x003155b5, 0x002e55b2, 0x003f61ae, 0x00435a97, 0x00253562, 0x000f1a38,
- 0x0019151b, 0x001e1c1f, 0x00171819, 0x0017191a, 0x00242424, 0x00252525, 0x00191a19, 0x000d0d0a, 0x000d0d0f, 0x00100e0f, 0x00080706, 0x000b0a0a, 0x000c0e0d, 0x000b0d08, 0x00191c12, 0x001e2115,
- 0x00201e15, 0x00272526, 0x00202234, 0x00222b4e, 0x002a3a78, 0x001e3780, 0x00183584, 0x001b3884, 0x00324695, 0x00364998, 0x002f428e, 0x00263b88, 0x002b4397, 0x002d49a3, 0x003050ac, 0x003355b4,
- 0x005d71aa, 0x007d94d7, 0x00516fbb, 0x00395eb1, 0x003660b5, 0x003e69b9, 0x00446db8, 0x00476eb6, 0x004768b8, 0x004564bd, 0x004362b7, 0x00435cad, 0x003a5eb3, 0x00385eb7, 0x004067b8, 0x003f60a6,
- 0x00313663, 0x001b1832, 0x001c141f, 0x00211a1d, 0x001a1819, 0x001c1e19, 0x001c231e, 0x00131d1e, 0x001a2435, 0x003e4c60, 0x006a788f, 0x007b8aa3, 0x00b3bdcc, 0x00eaeef5, 0x00fcfcf9, 0x00fffcf7,
- 0x00fcfdfe, 0x00fffefd, 0x00deddd4, 0x00939281, 0x00565046, 0x00312927, 0x00443e3e, 0x00ada5aa, 0x00fffdff, 0x00fdfdfd, 0x00fdfefe, 0x00fcf8fa, 0x00fefcfd, 0x00faf6fc, 0x00fefcf9, 0x00c8ccc0,
- 0x004b5034, 0x0043522a, 0x003f5224, 0x003d5125, 0x00405432, 0x0040562e, 0x00415729, 0x00425829, 0x00475b30, 0x00475b30, 0x00465b2d, 0x00465c2d, 0x00485e2f, 0x00495f2f, 0x0049602e, 0x0049602d,
- 0x004d6330, 0x004b612d, 0x004a612d, 0x004d6433, 0x004d6136, 0x005f7049, 0x009eab8d, 0x00aeb8a5, 0x00b9bebd, 0x00b0b4b7, 0x00a3b1a3, 0x005b824c, 0x00436934, 0x00477039, 0x00456932, 0x00496b33,
- 0x00506c34, 0x00516e35, 0x004e6c31, 0x00506e32, 0x00506d33, 0x00526e35, 0x00527134, 0x00517236, 0x00557138, 0x00556f37, 0x00567037, 0x00567037, 0x00587037, 0x00597037, 0x00587035, 0x00576f34,
- 0x00597034, 0x00587033, 0x00587033, 0x00587033, 0x00596f32, 0x005b6e33, 0x00617238, 0x005e6d34, 0x00656c38, 0x00626b34, 0x0061662f, 0x0065652f, 0x0066662f, 0x0066662f, 0x0065632d, 0x0065642b,
- 0x0066632c, 0x0067642e, 0x0061632b, 0x0064612a, 0x00645f2a, 0x006b5928, 0x0070592a, 0x0074582c, 0x00785930, 0x00795931, 0x0076552e, 0x0076552f, 0x0078532f, 0x0075512c, 0x00724e29, 0x00744f2a,
- 0x00744c2a, 0x00754d2c, 0x00734a2a, 0x00724929, 0x00714828, 0x00714828, 0x006d4526, 0x006e4628, 0x0071442c, 0x006d4228, 0x00704329, 0x006c4125, 0x00694126, 0x00694327, 0x00664024, 0x005e3b1e,
- 0x00673c2a, 0x00623e2a, 0x005d3d28, 0x005d3c29, 0x005c3928, 0x005d3c26, 0x00573a21, 0x004d301a, 0x00513125, 0x0057362b, 0x004f3025, 0x004e3326, 0x004e3327, 0x004e3426, 0x004b3222, 0x00493122,
- 0x003e311d, 0x00433726, 0x004f4235, 0x005a4d42, 0x00645451, 0x00796d67, 0x0079736d, 0x00888479, 0x00929386, 0x00939686, 0x00a0a190, 0x00a7a597, 0x00b8b9b8, 0x00f0f3f2, 0x00fafdfc, 0x00fdfcfd,
- 0x00fcfbf5, 0x00fdfefa, 0x00eefbfc, 0x00849eb7, 0x004c78b3, 0x007090bf, 0x00abc3e7, 0x00c8dcf6, 0x00eef6ff, 0x00f0fbfe, 0x00b7c6d7, 0x008699bd, 0x009fafe1, 0x00a6b2df, 0x00878fb3, 0x00757b8e,
- 0x005a78aa, 0x005070ab, 0x004d70b1, 0x004e75b4, 0x005a83b9, 0x006f96c2, 0x0088acd1, 0x00aacaf1, 0x00a6c6f5, 0x006c8dd0, 0x004d65aa, 0x00777eb9, 0x00b1bef2, 0x00b9cafa, 0x00acc1f7, 0x00859bd3,
- 0x00485e92, 0x007389b4, 0x00b9d0f1, 0x00dbf2f7, 0x00e4f6ee, 0x00d5f0fa, 0x007ca0d4, 0x003d6bb3, 0x003968c5, 0x004570c5, 0x004872be, 0x00416fba, 0x00336bb8, 0x00346bbb, 0x002958a6, 0x002f55a0,
- 0x003d5fbb, 0x004774c8, 0x00487fcf, 0x004787d3, 0x0065a3e9, 0x0074a5ea, 0x00517cbd, 0x006284c3, 0x00324d8a, 0x00284880, 0x00233c6c, 0x003c3d62, 0x005d5a56, 0x007b694a, 0x0096793d, 0x00a98134,
- 0x00bb8140, 0x00bb834a, 0x00b2804b, 0x00a67947, 0x008a642c, 0x00724e25, 0x0056320a, 0x00694213, 0x00bc8759, 0x00d9a171, 0x00d0976b, 0x00bc845d, 0x00a2754a, 0x00a9814e, 0x00b99859, 0x00bca257,
- 0x00bd9c65, 0x00ba9b73, 0x00dcc6b0, 0x00f9efe7, 0x00fbfcfd, 0x00fbf8fb, 0x00f1f4f7, 0x00e9ecef, 0x00e6e1e4, 0x00e7dfe5, 0x00e8e4ea, 0x00eeeef3, 0x00f7f5f8, 0x00f0e9ec, 0x00c4bcbb, 0x008c8381,
- 0x00827470, 0x00756e68, 0x006c6b5e, 0x00686c5b, 0x00676e5b, 0x00656b5f, 0x00acb2a8, 0x00f3f6f0, 0x00fbfbfd, 0x00fcfcff, 0x00fbfdfe, 0x00fcfcfd, 0x00b5aea9, 0x003c3227, 0x001e1606, 0x002a200c,
- 0x00839180, 0x00e9ebee, 0x00e8e2f4, 0x00d8cdf0, 0x005e6b8d, 0x0053677c, 0x00d0dddf, 0x00decfc6, 0x00e47567, 0x00e54535, 0x00ef381c, 0x00e82f03, 0x00d52e0d, 0x00b43c2e, 0x0098525f, 0x006f6797,
- 0x004476cf, 0x003c77d3, 0x00326bc4, 0x00174996, 0x0007327a, 0x0014479e, 0x00215eb8, 0x002966c1, 0x00276cc5, 0x00276fc2, 0x003174c3, 0x00245faa, 0x000d4290, 0x0015459a, 0x00113e9a, 0x002150ae,
- 0x002b5bb7, 0x00265bba, 0x00225ab5, 0x001d58b6, 0x002453a6, 0x0031539a, 0x002a447a, 0x001f2e54, 0x00232542, 0x001f233a, 0x000f101e, 0x001a1417, 0x0046383e, 0x00534347, 0x00402727, 0x00391b11,
- 0x00361002, 0x00331004, 0x00280f00, 0x00241303, 0x00312724, 0x003f3540, 0x00453b51, 0x004d4356, 0x00554c66, 0x004b4968, 0x0031395b, 0x00273963, 0x00546fac, 0x005e7abd, 0x00324e94, 0x003d569e,
- 0x00924c55, 0x00b15c53, 0x00b5573e, 0x00c66431, 0x00d77936, 0x00c97035, 0x00b35d2f, 0x009f502f, 0x007d523b, 0x005c5131, 0x00474b25, 0x004c4320, 0x00453919, 0x00423718, 0x003c3115, 0x003a2c15,
- 0x002e2616, 0x00281f16, 0x001e1912, 0x0016160e, 0x000f0e0e, 0x00090c0d, 0x00050c08, 0x000a0906, 0x001e0b0c, 0x002c130f, 0x003c1a12, 0x004e2211, 0x00652d14, 0x00793a1a, 0x008c4925, 0x00944c26,
- 0x00944e2f, 0x00925032, 0x00915131, 0x00854c2a, 0x00724424, 0x00644023, 0x00583b23, 0x00513a2a, 0x00aea2a0, 0x00f9f3f3, 0x00fcf9fa, 0x00fdfafb, 0x00fbfafa, 0x00fdfbfa, 0x00bab4b0, 0x00736965,
- 0x00a0959a, 0x00d6c7d5, 0x00f1e4f4, 0x00ede5f7, 0x00e6ddf0, 0x00eae0f4, 0x00f3ecfc, 0x00f4eefd, 0x00f2e9fc, 0x00ebe4f2, 0x00e6e3ea, 0x00e3e1ea, 0x00e7e4f1, 0x00e7e3f0, 0x00ebe4f5, 0x00efe7f9,
- 0x00f6e3ef, 0x00efe2f4, 0x00f2e1ef, 0x00f7d3d7, 0x00e77a6b, 0x00ce4825, 0x00ce461b, 0x00ea875f, 0x00ffe0e8, 0x00f1f0fc, 0x00e6e9fd, 0x00ece8ff, 0x00e9d6e1, 0x00e1bdb4, 0x00cfa489, 0x00d6a67e,
- 0x00ebbb8e, 0x00ebbfa0, 0x00ebc7b1, 0x00faded5, 0x00fdebed, 0x00fce9f4, 0x00f7e3fa, 0x00f6e6fa, 0x00fce8f1, 0x00f2e0dd, 0x00dbcbc2, 0x00cdc5bb, 0x00d1cfdd, 0x00c8bfd5, 0x00a288a5, 0x00a67997,
- 0x00b98472, 0x00895b4c, 0x002d1208, 0x000e0500, 0x00121010, 0x00070b0b, 0x00000807, 0x00000704, 0x00030605, 0x00030403, 0x00030202, 0x00020503, 0x00000601, 0x00010404, 0x00020807, 0x00243032,
- 0x006f708b, 0x004d4f62, 0x000a0b1a, 0x000a0c0f, 0x00050905, 0x0012141b, 0x006b697d, 0x00b0b0c6, 0x00d8cffc, 0x00d8d1fd, 0x00d6d1fb, 0x00d5d0f8, 0x00d2cdf6, 0x00d1ccf5, 0x00d3cff7, 0x00d3d0f8,
- 0x00fafdfc, 0x00f8fbfa, 0x00fefdfe, 0x00fffefe, 0x00fcfdfd, 0x00fafbfa, 0x00fffdfe, 0x00fffdfe, 0x00fbfbfb, 0x00fbfbfb, 0x00fefefe, 0x00ffffff, 0x00ffffff, 0x00fdfdfd, 0x00fefefe, 0x00ffffff,
- 0x00fbfbfb, 0x00fcfcfc, 0x00fcfcfc, 0x00fdfdfd, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fdfdfd, 0x00fbfbfb, 0x00fbfbfb, 0x00fdfdfd, 0x00fefefe, 0x00fefefe, 0x00ffffff, 0x00fefefe, 0x00fefefe,
- 0x00f8fcf4, 0x00fafcf5, 0x00fcfdf7, 0x00fefdf8, 0x00fefcf8, 0x00fdfbf7, 0x00fdfcf8, 0x00fefdf9, 0x00f4f9ef, 0x00f2f5f0, 0x00f1f1f0, 0x00eff0f0, 0x00ece9ee, 0x00e5e4e8, 0x00dfdfe2, 0x00dcdbe1,
- 0x00cad4d0, 0x00c5cecb, 0x00c2c9cc, 0x00bac3c6, 0x00b0b6bc, 0x00afa6ae, 0x00afa2ae, 0x00a19ea5, 0x0082978b, 0x00798d8b, 0x0078848f, 0x00737889, 0x00736d81, 0x00706871, 0x006f696b, 0x006e6d64,
- 0x00676d69, 0x006e7076, 0x007c7788, 0x00877e96, 0x00978d9b, 0x00a0989a, 0x00b2aba7, 0x00c1beb5, 0x00cccebd, 0x00d6ddcf, 0x00e4e9e3, 0x00edefee, 0x00f7f9f9, 0x00f8fbfa, 0x00fafafc, 0x00fefbff,
- 0x00f2f8f5, 0x00f5f9f8, 0x00fcfcfd, 0x00fdfeff, 0x00fafdfe, 0x00fbfdfd, 0x00fffeff, 0x00ffffff, 0x00f8fbf7, 0x00f7f9f7, 0x00fcfcfc, 0x00fdfbfc, 0x00fefdfd, 0x00fefdfe, 0x00fffdff, 0x00fffeff,
- 0x00f5f9f8, 0x00f7f9f8, 0x00fcfdfd, 0x00fefefe, 0x00fefdfd, 0x00fdfcfc, 0x00fdfafb, 0x00fffbfc, 0x00f1f4ee, 0x00e2e4e0, 0x00d7d7ce, 0x00d6d1c0, 0x00dad3bf, 0x00dad0bd, 0x00ded2bc, 0x00e3d1b9,
- 0x00d1c49c, 0x00cfbd94, 0x00ceb38c, 0x00c1a17a, 0x00d6b08a, 0x00eee3d4, 0x00fbfbf8, 0x00ffffff, 0x00f3faf0, 0x00fafef7, 0x00e3e4e2, 0x008f8e8d, 0x004f4e4c, 0x006c6c69, 0x00aca9a8, 0x00cac7c8,
- 0x00dbd2c1, 0x00dfd4c5, 0x00e4d5c9, 0x00e3d3c9, 0x00e4d4cc, 0x00e2d2cb, 0x00e1d0ca, 0x00e4d3cd, 0x00e0d2c6, 0x00e2d1c6, 0x00e0d3c9, 0x00d9d7cc, 0x00dad5cb, 0x00dbd5cb, 0x00dcd5cd, 0x00dcd5cc,
- 0x00d5d8c1, 0x00d6d7c2, 0x00d9d6c5, 0x00dad7c6, 0x00dbd6c5, 0x00ddd4c7, 0x00e0d3ca, 0x00e0d2c8, 0x00d8d2c2, 0x00d9d3c6, 0x00dcd2c9, 0x00dbd0c9, 0x00d9d1c9, 0x00d7cfc7, 0x00d9cec9, 0x00d9ceca,
- 0x00d6cbb9, 0x00d7cabe, 0x00ddcbc5, 0x00dbcac8, 0x00dbcdcc, 0x00d6c8ca, 0x00d2c5ca, 0x00d3c2c7, 0x00c8c4b9, 0x00c9c4b8, 0x00c8c2c0, 0x00c1c3c5, 0x00c5c2c3, 0x00c4c1bd, 0x00c8beb9, 0x00c9beb5,
- 0x00bebca7, 0x00bfb9aa, 0x00c4b7b1, 0x00c2b7b5, 0x00bfb4b6, 0x00bdb6b3, 0x00bbb3b2, 0x00bbb3af, 0x00b4b1a0, 0x00b3b1a0, 0x00b4b0a2, 0x00b2ada2, 0x00adaaa3, 0x00aea9a8, 0x00afa8ac, 0x00afa7af,
- 0x009da696, 0x009fa599, 0x00a2a29b, 0x00a6a19b, 0x00a6a097, 0x00a5a092, 0x00a7a090, 0x00a99f8e, 0x009d9e81, 0x009b9a7c, 0x009d9984, 0x0094988c, 0x009b938b, 0x00989285, 0x00999185, 0x00949189,
- 0x00808f85, 0x007d8e86, 0x00828b88, 0x00878881, 0x00908372, 0x00887f77, 0x00867d7b, 0x00857b7b, 0x007d7a71, 0x007c7970, 0x007e7a73, 0x007c7771, 0x007a746f, 0x0078726d, 0x0077716b, 0x0078716c,
- 0x00676d66, 0x00696d67, 0x006a6b66, 0x006a6a66, 0x006b6a66, 0x00666460, 0x0063625d, 0x0060615c, 0x00595c54, 0x00595e55, 0x005b5d58, 0x00595855, 0x005a5853, 0x00585551, 0x005a5454, 0x005b5456,
- 0x00515146, 0x0054534a, 0x005a5450, 0x005c5450, 0x005d544f, 0x0054564f, 0x00555a55, 0x00585b59, 0x00555e52, 0x005b6357, 0x005f645c, 0x0061645e, 0x00666860, 0x00676861, 0x006c6c68, 0x006b6b66,
- 0x004c4d42, 0x0022242b, 0x00111c36, 0x002b4070, 0x003a5aab, 0x002d54ad, 0x00274da9, 0x002746a3, 0x00214087, 0x00254286, 0x002c4492, 0x002b46a5, 0x002f4b9f, 0x004460ad, 0x007189d6, 0x00667dce,
- 0x003353a6, 0x003b57b6, 0x00435dc3, 0x003a5bc0, 0x003657bc, 0x003256b6, 0x003658b7, 0x003156b3, 0x002459a9, 0x002a5daf, 0x002d59b2, 0x002b52ac, 0x003856a4, 0x00465b98, 0x00324370, 0x00121d3d,
- 0x00111311, 0x00161816, 0x00171817, 0x00161616, 0x00212021, 0x00262526, 0x001b1a1c, 0x000d0c0e, 0x00070905, 0x000a0b0a, 0x00050705, 0x00030e00, 0x000d100a, 0x000f100a, 0x00211a18, 0x00261f1b,
- 0x001a1e0d, 0x001c2520, 0x0017222e, 0x00212f4c, 0x002a3d71, 0x001e3981, 0x001b388c, 0x001f378d, 0x00264080, 0x00314788, 0x00314087, 0x002d3e83, 0x00273c8d, 0x002a449d, 0x00334fb4, 0x003558bb,
- 0x00596b99, 0x007894cb, 0x00597bbe, 0x003161a9, 0x003167ac, 0x003669a9, 0x00416bb1, 0x004d6ab5, 0x004b65b3, 0x004661b5, 0x004b5db4, 0x004f58a3, 0x003a5ab0, 0x00355fb7, 0x003c64bc, 0x003757a3,
- 0x001a2a45, 0x000f141d, 0x001c1316, 0x001f1911, 0x00161c14, 0x00121d0e, 0x00142016, 0x00141e1e, 0x00102a2d, 0x00354e57, 0x0062798c, 0x00788ca1, 0x00afbcc7, 0x00e6ebef, 0x00fffffd, 0x00fffaf7,
- 0x00effcec, 0x00f5fef1, 0x00dcdfd8, 0x00959690, 0x004e4c47, 0x0028261f, 0x00423f3d, 0x00b0afb1, 0x00f6fff7, 0x00f8fffb, 0x00fcfcfd, 0x00fefafa, 0x00fffaff, 0x00fdfdff, 0x00fcfafa, 0x00c1bfb5,
- 0x003e4e24, 0x003f5020, 0x00435323, 0x00445528, 0x00445633, 0x0041572d, 0x0044592c, 0x0046592d, 0x00405a26, 0x00425a27, 0x00465b2b, 0x00475c2c, 0x00475f2a, 0x0049612a, 0x004d622d, 0x004f632e,
- 0x0041651b, 0x00416423, 0x004c6632, 0x0050663a, 0x0049623f, 0x006b8162, 0x00aabaa5, 0x00b3c2b6, 0x00aec3b3, 0x00a9bab0, 0x00a2b8a2, 0x0064854d, 0x004d6e34, 0x00517035, 0x00526f32, 0x00567132,
- 0x004c7027, 0x0051712b, 0x00526e2c, 0x00577032, 0x00577134, 0x00557233, 0x00557435, 0x00547438, 0x00537332, 0x00547434, 0x00587438, 0x0059753a, 0x00577638, 0x00567638, 0x0058743b, 0x0059743b,
- 0x00557335, 0x00567436, 0x00577637, 0x00587638, 0x00587738, 0x00597738, 0x00597739, 0x005a7839, 0x00557636, 0x00557536, 0x005b7437, 0x00607238, 0x00607037, 0x005f7037, 0x00607038, 0x005e7037,
- 0x00576e2f, 0x00566d2f, 0x005a6d33, 0x005b6c33, 0x00596b32, 0x00606933, 0x00696735, 0x00686434, 0x0060632a, 0x0062612c, 0x00665f2f, 0x00695c2e, 0x006d5c2f, 0x006e5a2d, 0x00705a30, 0x00705931,
- 0x00675728, 0x00685629, 0x006b552b, 0x006e542b, 0x0070512a, 0x00714d29, 0x00724b29, 0x00734a2a, 0x00714a22, 0x00704922, 0x006f4a24, 0x006b4a27, 0x006a4726, 0x00674626, 0x006a4526, 0x006b4327,
- 0x0064411f, 0x00664020, 0x00684021, 0x00684021, 0x00683e21, 0x00673d20, 0x00663b21, 0x00673922, 0x005f3717, 0x005f3619, 0x0061371d, 0x00623820, 0x0060341e, 0x005f321e, 0x005f311f, 0x005f3121,
- 0x004e3317, 0x004d3317, 0x004e301b, 0x004e2f1b, 0x004c301b, 0x004a2f1a, 0x00492e1e, 0x00462e1d, 0x003b2b10, 0x003a2c13, 0x003a2817, 0x003d281c, 0x00645655, 0x00e4e4e6, 0x00f9faff, 0x00fdffff,
- 0x00f0fdf5, 0x00f3fbf7, 0x00f1fafc, 0x00b5c5d2, 0x008ca5bf, 0x00b6d2d9, 0x00e5f9fc, 0x00e6e5ff, 0x00e3dceb, 0x00e7e9e6, 0x00c3c7c9, 0x00aabbcc, 0x009aace5, 0x006d79ae, 0x0078769d, 0x00aea7aa,
- 0x00adc5c7, 0x009db7d2, 0x00637db0, 0x005475b1, 0x0093b6d6, 0x00c2e3e4, 0x00d3eee4, 0x00ecfcf4, 0x00cde3ec, 0x007288c1, 0x005e63aa, 0x00beb2e0, 0x00d7d0f5, 0x00a5a3db, 0x00aaaee5, 0x008a93ca,
- 0x00617792, 0x00b0c1cf, 0x00e1eefb, 0x00dce5de, 0x00dbe0ce, 0x00dfe6ec, 0x008395c3, 0x004072c3, 0x002262cb, 0x003968bf, 0x004e72bf, 0x00446bac, 0x002565ba, 0x002763bb, 0x002950a9, 0x00444d9e,
- 0x002966b6, 0x003e7bc7, 0x005d91dd, 0x00588fd4, 0x006ca4e8, 0x006aa0e9, 0x004c79ca, 0x00557ecf, 0x00325f9b, 0x00133d71, 0x001b3a6d, 0x00213b67, 0x003f495b, 0x005f574f, 0x00806547, 0x00996d36,
- 0x009c6f18, 0x0098681b, 0x008f6120, 0x00815621, 0x005f3f19, 0x004d301b, 0x00472411, 0x0066401b, 0x00b28b45, 0x00d7a666, 0x00da9d71, 0x00d49278, 0x00c08570, 0x00bd8a67, 0x00c69d6a, 0x00ba9954,
- 0x007a7446, 0x007a765d, 0x00b2acad, 0x00d9d5e8, 0x00e9f0fe, 0x00edfcfb, 0x00f1fcfa, 0x00f2f9f5, 0x00e1e7e0, 0x00dedfe3, 0x00e3ddea, 0x00e4e8e9, 0x00eeedf4, 0x00f2eef0, 0x00d6cdd2, 0x009e969c,
- 0x007a7c6d, 0x00717463, 0x00777a69, 0x00727965, 0x00737f69, 0x00757a6b, 0x00b5b7ac, 0x00f8f7f1, 0x00f7fdf8, 0x00f5fbf9, 0x00fbfefd, 0x00fdfdfd, 0x00b3afab, 0x003d332c, 0x00201409, 0x00312315,
- 0x00719c7a, 0x00d1e9dd, 0x00ecedfd, 0x00e4defe, 0x008a97ba, 0x006d8a99, 0x00d6edf0, 0x00ecf3ee, 0x00e2a5a2, 0x00c64d59, 0x00cb3134, 0x00cf310b, 0x00ea2f00, 0x00d93905, 0x00be4e34, 0x008c667c,
- 0x00467bbd, 0x00427ac2, 0x003067b6, 0x00113f8e, 0x0006368a, 0x00154b9f, 0x00235cb4, 0x00336bc6, 0x002669c1, 0x002664b9, 0x003a6ec1, 0x002f59a6, 0x00193d8a, 0x001c4195, 0x00143a97, 0x002551b3,
- 0x001e5bb2, 0x002357af, 0x002856b3, 0x002855b3, 0x002458b8, 0x00255dba, 0x002156ad, 0x00194492, 0x001c3867, 0x001a2448, 0x0005071f, 0x00070c1a, 0x0032304d, 0x00423e5e, 0x003b2b49, 0x00402532,
- 0x002e1800, 0x002b1300, 0x002f1401, 0x00332204, 0x0038312d, 0x00323357, 0x0032316e, 0x00363878, 0x00264475, 0x001e3f72, 0x001c4075, 0x002f5389, 0x005271af, 0x00556bae, 0x00435199, 0x004d57a2,
- 0x00c3391a, 0x00d9461a, 0x00e95321, 0x00e45e17, 0x00e66d16, 0x00ed6b20, 0x00f15f2e, 0x00f75e46, 0x00c27355, 0x007f784b, 0x00555f39, 0x00504729, 0x00483b1c, 0x00413519, 0x00432f14, 0x00402b11,
- 0x00262403, 0x001c1e01, 0x00201d0f, 0x0015180c, 0x000c110d, 0x00051009, 0x00030e06, 0x000e0d08, 0x00120e04, 0x00241207, 0x0039190e, 0x004e2011, 0x00662b12, 0x00793a1b, 0x008e4828, 0x00994f2c,
- 0x00874e21, 0x00885026, 0x008c4f2b, 0x00854b29, 0x00774425, 0x006b4325, 0x005b3921, 0x00533a28, 0x00999486, 0x00f1f0e6, 0x00fdfafa, 0x00fcfcfd, 0x00fff6fb, 0x00fdfaf4, 0x00c7acac, 0x00725356,
- 0x00826b72, 0x00bba7b5, 0x00f3ddf0, 0x00f5e6f3, 0x00e8e1e8, 0x00e5def2, 0x00ece1ff, 0x00ebe1ff, 0x00dad8ee, 0x00d6d3e9, 0x00dad4ec, 0x00dbd6ee, 0x00dfdaf1, 0x00e1dcf2, 0x00e3dcf2, 0x00e6dcf4,
- 0x00e0d1f5, 0x00dad0e7, 0x00efd7e1, 0x00ebb5af, 0x00d9554c, 0x00bc352a, 0x00cb6159, 0x00eeb8b4, 0x00efe9f5, 0x00efddf8, 0x00dfd2fc, 0x00c6caf3, 0x00cbb9cd, 0x00cfaca4, 0x00d2a38b, 0x00e1ac83,
- 0x00e0b682, 0x00d8b187, 0x00e1bb9e, 0x00eecbb4, 0x00f5d3c7, 0x00f1d9e2, 0x00eddef2, 0x00f1e6fb, 0x00ede4f0, 0x00eed4d7, 0x00e7cacc, 0x00ddc9ca, 0x00ccd2e0, 0x00eee1eb, 0x00e6bdc0, 0x00da897c,
- 0x00da6f34, 0x00c5703f, 0x00672c11, 0x001f0400, 0x00090709, 0x0001090b, 0x00030815, 0x00020411, 0x00000400, 0x00000100, 0x00010300, 0x00000300, 0x00010201, 0x00010305, 0x0017191f, 0x0054545b,
- 0x00626767, 0x00282d2d, 0x000b0d0f, 0x0006090a, 0x00050908, 0x0025252e, 0x009691a6, 0x00cbc5e5, 0x00d0ccf6, 0x00d0ccf8, 0x00d7d0fd, 0x00d8d1fa, 0x00d4d0f1, 0x00d4cef2, 0x00d7cdf8, 0x00d7cdfb,
- 0x00fcfcfc, 0x00fdfefd, 0x00fffdfe, 0x00ffffff, 0x00fcfdfd, 0x00fbfdfc, 0x00fefdfd, 0x00fdfdfd, 0x00fcfcfc, 0x00fcfcfc, 0x00fdfdfd, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe,
- 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fdfdfd, 0x00fdfdfd, 0x00fcfcfc, 0x00fcfcfc, 0x00fcfcfc, 0x00fdfdfd, 0x00fdfdfd, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe,
- 0x00fffdfc, 0x00fefdfc, 0x00fefefe, 0x00fefffe, 0x00fefffe, 0x00fdfffc, 0x00fefffc, 0x00fffffc, 0x00fafdf9, 0x00fafbfb, 0x00f8f9f9, 0x00f9fbfb, 0x00f9f8fa, 0x00f5f6f5, 0x00f5f6f4, 0x00f5f5f6,
- 0x00ebf0ec, 0x00eaeded, 0x00e3e7e9, 0x00e3e5e7, 0x00e0e2e4, 0x00e3dadc, 0x00ddd5d4, 0x00d1d1c8, 0x00bfccbb, 0x00b9c3b7, 0x00b9bcb5, 0x00bab6b5, 0x00b2a6a9, 0x00a79d98, 0x009d978b, 0x00929480,
- 0x00858e7d, 0x007a7f78, 0x00757376, 0x00746d7a, 0x00736a75, 0x006e676b, 0x00706a68, 0x00736f6a, 0x00757574, 0x007a7c82, 0x0082848a, 0x008c8e8e, 0x00a0a3a3, 0x00b3b6b5, 0x00c3c5c3, 0x00cdcece,
- 0x00dfe1e2, 0x00e9ecec, 0x00f1f2f3, 0x00f2f5f5, 0x00f6fbfa, 0x00fbfdfd, 0x00fefcfd, 0x00fefdfd, 0x00fcfcfe, 0x00fdfdfe, 0x00fdfdfe, 0x00fcfcfc, 0x00fbfbfb, 0x00fbfbfa, 0x00fcfcfa, 0x00fefefc,
- 0x00fcfcfc, 0x00fafafa, 0x00fafafa, 0x00fcfcfc, 0x00fcfcfc, 0x00fdfcfc, 0x00fefefe, 0x00fdfdfd, 0x00fafcf8, 0x00fbfbfa, 0x00fdfdfb, 0x00fcfef5, 0x00fdfef4, 0x00fcfcf4, 0x00fdfbf1, 0x00fdf8eb,
- 0x00f7f1db, 0x00f7ecd6, 0x00f1e7cf, 0x00eadbc4, 0x00ebd9bf, 0x00f4eee6, 0x00f9fcf7, 0x00fffffe, 0x00fafaf9, 0x00fffffd, 0x00dadbd9, 0x0080817e, 0x004e4f4c, 0x00747471, 0x00c0c0bd, 0x00e7e7e5,
- 0x00fbfcef, 0x00fcfdf1, 0x00fdfef2, 0x00fffef3, 0x00fffdf4, 0x00fffef6, 0x00fffef7, 0x00fffef7, 0x00fcfdf6, 0x00fffef6, 0x00fefdf8, 0x00fdfefb, 0x00fffefb, 0x00fefefb, 0x00fffffc, 0x00fffefb,
- 0x00fdfdf7, 0x00fffefb, 0x00fffefb, 0x00fffffa, 0x00fffef8, 0x00fffcf5, 0x00fffcf4, 0x00fefcf4, 0x00fefef7, 0x00fefff7, 0x00fffdf6, 0x00fffef8, 0x00fefef9, 0x00fefdf9, 0x00fefbf6, 0x00fffcf5,
- 0x00fffcf2, 0x00fefcf4, 0x00fffaf6, 0x00fffdfa, 0x00fdfaf9, 0x00fefbfb, 0x00fdfcfc, 0x00fdfcf9, 0x00fcfdf6, 0x00fffdf4, 0x00fbfaf6, 0x00fafafc, 0x00fcfbfc, 0x00fefcf8, 0x00fffcf5, 0x00fffcf1,
- 0x00fbf5eb, 0x00fdf7f0, 0x00faf5f0, 0x00f9f5f4, 0x00f8f3f6, 0x00f9f4f6, 0x00f9f3f5, 0x00f8f5f1, 0x00f4f2e9, 0x00f3f2e8, 0x00f3f0e6, 0x00f2efe6, 0x00f1f0e9, 0x00f0eeeb, 0x00efebee, 0x00efeaf0,
- 0x00e5eae2, 0x00e6eae3, 0x00e8e8e5, 0x00e7e5e7, 0x00e6e3e9, 0x00e5e1ec, 0x00e4deec, 0x00e4dcec, 0x00ded8e7, 0x00ded8e8, 0x00dbd9de, 0x00d8ddd5, 0x00dddcd1, 0x00ddd9d1, 0x00d9d8cd, 0x00d7d9d0,
- 0x00ccd6d1, 0x00cad3d1, 0x00cad0d0, 0x00cdcecc, 0x00d1ccc2, 0x00cec9c5, 0x00cac7c2, 0x00cac4c2, 0x00c6c2c0, 0x00c5c2c0, 0x00c4c0be, 0x00c2bfbd, 0x00c1bdbb, 0x00c0bdba, 0x00bebbb7, 0x00bebbb6,
- 0x00b4b8b4, 0x00b5b6b3, 0x00b3b3b0, 0x00b2b2ae, 0x00b0b0ac, 0x00abaaa7, 0x00a9a8a5, 0x00a6a8a5, 0x00a3a5a2, 0x00a0a49e, 0x00a1a39e, 0x009f9f9c, 0x009f9e9b, 0x009b9998, 0x00999695, 0x00999592,
- 0x0094938e, 0x0096928e, 0x00938e8b, 0x008f8b86, 0x008d8883, 0x00878883, 0x00838782, 0x007f837f, 0x007c807c, 0x007e817c, 0x007c7e7a, 0x007a7c78, 0x00777872, 0x0075766f, 0x00767872, 0x00797b74,
- 0x006c6c64, 0x0033373f, 0x0016233b, 0x002a406e, 0x00385aa6, 0x00355cb4, 0x002b53b0, 0x00274aab, 0x0027459b, 0x00284597, 0x00274195, 0x002947a3, 0x002b4c98, 0x004161a4, 0x006784c5, 0x005874b6,
- 0x0032519e, 0x003654ab, 0x003454af, 0x002f53ae, 0x002e54ab, 0x003354aa, 0x003656ab, 0x003353a7, 0x002d56a3, 0x00335bac, 0x003559b1, 0x003152ab, 0x002f4998, 0x003f5392, 0x00334474, 0x00152344,
- 0x00161716, 0x001a1b1a, 0x00181919, 0x00191919, 0x00232223, 0x00282728, 0x00232223, 0x00181718, 0x000f100f, 0x00121213, 0x000d0e0c, 0x000d160b, 0x00131712, 0x00141411, 0x00221d1a, 0x0025211b,
- 0x00242216, 0x00252825, 0x001d272e, 0x00223047, 0x002d3e6a, 0x002a3f81, 0x0029408c, 0x00233987, 0x00283c85, 0x00344790, 0x00364691, 0x0031438e, 0x00293c8b, 0x00283d91, 0x002e439c, 0x002d459d,
- 0x0054649b, 0x007e95d2, 0x006f8dd1, 0x00365da7, 0x003461a9, 0x00406ab1, 0x00446bb6, 0x004a6bba, 0x004568be, 0x004266c1, 0x004062be, 0x00415db6, 0x002e5bb7, 0x002e5eb8, 0x002c59ab, 0x001e4184,
- 0x00101b38, 0x000d111e, 0x00161215, 0x00191913, 0x00111b17, 0x00121710, 0x00151813, 0x00141919, 0x00162431, 0x00344255, 0x005d6c84, 0x007d8aa7, 0x00b1bbcc, 0x00e5eaf6, 0x00fcfdfd, 0x00fdfbfb,
- 0x00f9fcf6, 0x00fcfff9, 0x00dde1d8, 0x008f908a, 0x003f3f36, 0x001f1e16, 0x0044433d, 0x00b6b4b2, 0x00fafefb, 0x00fcffff, 0x00fafdfc, 0x00fffcfb, 0x00fffbfe, 0x00fffeff, 0x00fcfdf9, 0x00b1b4a8,
- 0x0043512b, 0x00425325, 0x00435424, 0x00435628, 0x00445732, 0x0043592c, 0x00445a2b, 0x00465a2d, 0x00435b2b, 0x00445c2b, 0x00465c2c, 0x00475e2c, 0x0048602a, 0x0049612a, 0x004c622d, 0x004d632d,
- 0x00486625, 0x004b682d, 0x004c6331, 0x0051653b, 0x00566a4a, 0x0092a48a, 0x00b8c7b5, 0x00b5c2b9, 0x00afbdb9, 0x00b1bcbb, 0x00a9baad, 0x006f8c5f, 0x00526e40, 0x004f6a3a, 0x00567440, 0x00506d36,
- 0x00557235, 0x00536f33, 0x00597436, 0x00597435, 0x00567232, 0x00587635, 0x00577636, 0x00567639, 0x00587638, 0x00587739, 0x005b773c, 0x005b783c, 0x0059793a, 0x00597839, 0x005a773a, 0x0059773a,
- 0x005a783b, 0x005a783b, 0x005b793b, 0x005b793b, 0x005b793c, 0x005b793b, 0x005a783b, 0x005a783b, 0x005a783a, 0x005a783a, 0x005e783b, 0x0060773b, 0x005f753a, 0x005e7639, 0x005f763a, 0x005e763a,
- 0x005c7338, 0x005c7338, 0x005e7338, 0x005d7337, 0x005b7335, 0x005f7237, 0x00627138, 0x00617037, 0x00606d35, 0x00616c34, 0x00626a34, 0x00636832, 0x00666732, 0x00666632, 0x00666632, 0x00666633,
- 0x00626231, 0x0061612f, 0x0061602f, 0x00625f2e, 0x00645d2d, 0x00645a2b, 0x0066582b, 0x0067572b, 0x00675528, 0x00675528, 0x0067552a, 0x0067532d, 0x0067502b, 0x00664f2b, 0x0066502b, 0x00664f2b,
- 0x00664d28, 0x00664c27, 0x00654a27, 0x00644926, 0x00644724, 0x00644524, 0x00634324, 0x00634225, 0x00614021, 0x00603f21, 0x00603f23, 0x00613f24, 0x005f3d23, 0x005e3c23, 0x005c3b22, 0x005c3a22,
- 0x005a3a1f, 0x0059391f, 0x00583720, 0x0057351f, 0x0055351e, 0x0053341d, 0x0052331f, 0x004f331f, 0x004b2e1a, 0x004d301b, 0x00492c17, 0x004b2f1d, 0x006f5c54, 0x00ede8e6, 0x00fbfafc, 0x00fffefe,
- 0x00faf9fb, 0x00fcf9fc, 0x00f9fdfe, 0x00e4eaf3, 0x00def2fb, 0x00def3fd, 0x00b5cae1, 0x0098a1c4, 0x00cac5e1, 0x00e8e9fd, 0x00c9cfee, 0x008da1c8, 0x004c64a8, 0x00576ba8, 0x00bdc6ed, 0x00eef1fa,
- 0x00f5f6f8, 0x00bac0ea, 0x005f69a1, 0x006e7dc4, 0x00d0e1fb, 0x00e2edf5, 0x00e3e9f3, 0x00f1f3f8, 0x00a3a5cd, 0x00595da5, 0x009e9dd5, 0x00efeeed, 0x00cbcfd6, 0x00a3a8c0, 0x008089a8, 0x006c7aa1,
- 0x00b4c3ed, 0x00c6d0f3, 0x009598ce, 0x009e9cce, 0x00d5d0f8, 0x00b9bcd3, 0x00576a90, 0x003b6bb5, 0x002e67d1, 0x003663bb, 0x004973bf, 0x00456eaf, 0x001e60b0, 0x001f5cb2, 0x003462b9, 0x004b61b2,
- 0x00396fc6, 0x00467fcf, 0x005f97e3, 0x00669fe3, 0x0071abee, 0x006fa2ea, 0x003c68b6, 0x004f77c4, 0x004c74ad, 0x000f3366, 0x00213c77, 0x00223685, 0x00323a76, 0x004b4668, 0x00655360, 0x006f5047,
- 0x006d4426, 0x006b3e23, 0x005f351b, 0x00522816, 0x00432114, 0x00412613, 0x00462d0c, 0x00735528, 0x00bb955a, 0x00d6aa6f, 0x00deac75, 0x00dcab7c, 0x00d8b08a, 0x00c7a77e, 0x009e8556, 0x007d6935,
- 0x004d5a5e, 0x00576579, 0x006b799f, 0x007d8bbd, 0x00abbce6, 0x00cce0f6, 0x00e3f1fd, 0x00f4fcfb, 0x00f5f4f6, 0x00efe7f1, 0x00e9dfea, 0x00e0e1e1, 0x00e8e5e9, 0x00f1ecee, 0x00e4dddc, 0x00b6aeaa,
- 0x00837f77, 0x007a7b6f, 0x007d8172, 0x00767f6c, 0x0078846d, 0x007b7f6f, 0x00b8bdae, 0x00f4f9ee, 0x00fafcfc, 0x00f8fbfd, 0x00fdfeff, 0x00fdfdfe, 0x00b3b0ab, 0x003c342a, 0x001f1607, 0x002c2210,
- 0x009b8988, 0x00ecd7e3, 0x00fbe4fa, 0x00f3d8f9, 0x00c2a1c1, 0x00a07c92, 0x00caaab1, 0x00e4c8c3, 0x00c1b19e, 0x006f644c, 0x007d4831, 0x00c73423, 0x00e23603, 0x00dd3d0d, 0x00c84b2a, 0x00a75a5c,
- 0x006579b5, 0x005379cc, 0x00305fbb, 0x000e388c, 0x001b3882, 0x002250a0, 0x00255eb6, 0x002d6bc4, 0x002769c5, 0x002a66be, 0x00396dc1, 0x002b56a3, 0x00153986, 0x00193f92, 0x00123b95, 0x00214faf,
- 0x002860bb, 0x00285bb5, 0x002859b5, 0x00295ab6, 0x002a60bf, 0x002862bf, 0x00275db5, 0x003360b0, 0x00334f83, 0x001c2851, 0x000e162f, 0x002b3447, 0x003e486e, 0x00313a6a, 0x00292b5b, 0x002f2a4f,
- 0x00362a2e, 0x00342725, 0x002f2422, 0x002a222f, 0x00212048, 0x001d2259, 0x00282e6e, 0x00343d7d, 0x001e3474, 0x002d4688, 0x005671b6, 0x005876bb, 0x003e5ca8, 0x00304c9a, 0x003953a3, 0x00465fb0,
- 0x00c95051, 0x00e35337, 0x00f3501a, 0x00ff4a00, 0x00fa5800, 0x00f2662c, 0x00d2634f, 0x00b66578, 0x008884ac, 0x00759dbf, 0x0072a2bb, 0x007d929f, 0x005f7175, 0x00495657, 0x00313c37, 0x002d2e28,
- 0x002b281d, 0x00221f11, 0x00211b10, 0x001b160b, 0x000f0d03, 0x000b0c06, 0x00070a07, 0x000d090a, 0x001b0c06, 0x002d120d, 0x003e1913, 0x004e1f15, 0x00642a19, 0x0073371f, 0x0086452a, 0x008f4a2b,
- 0x008e4e27, 0x008c502b, 0x00894c29, 0x00824927, 0x00764526, 0x006e462b, 0x005b3b25, 0x004b3523, 0x008d857d, 0x00efece7, 0x00fafefa, 0x00fafffc, 0x00f9fcf7, 0x00fdfff8, 0x00bfb7b7, 0x005a4e56,
- 0x00544564, 0x00877bab, 0x00c1b8e8, 0x00d2d0f9, 0x00c1c8f4, 0x00c0c6f8, 0x00c2c9f8, 0x00bfc5f9, 0x00bec2f5, 0x00bec3f6, 0x00c2c8f9, 0x00c5ccfb, 0x00c9cffd, 0x00ccd1fe, 0x00cfd3fe, 0x00d0d4fd,
- 0x00cdd2fd, 0x00ced7fc, 0x00d5d5f4, 0x00c4acc7, 0x00a9526e, 0x00973d59, 0x00ba7794, 0x00ceb6d4, 0x00a6b2e0, 0x009598da, 0x007c80c8, 0x00727eb9, 0x009388a6, 0x00c7abae, 0x00deb4a1, 0x00efba94,
- 0x00ecbc8f, 0x00e6bb93, 0x00ddb698, 0x00e0b8a1, 0x00e8bfb0, 0x00e2c4c2, 0x00e3c6c6, 0x00edc2bf, 0x00f0c1ba, 0x00eecbcf, 0x00eedde8, 0x00e4dff0, 0x00dbd9e2, 0x00f5e6f3, 0x00fce8f5, 0x00eecbdc,
- 0x00ee9b7b, 0x00df9977, 0x008f5e44, 0x002d150c, 0x00050506, 0x00050b0e, 0x00030810, 0x0004050d, 0x00030605, 0x00040502, 0x00010400, 0x00000300, 0x00000201, 0x00000204, 0x00292b30, 0x00606268,
- 0x003d4046, 0x00171a1e, 0x00090a0d, 0x000a0c0b, 0x00030804, 0x002f3036, 0x009e9aad, 0x00ccc6e5, 0x00d0c9f9, 0x00cfc8fa, 0x00d6cdfe, 0x00d8cffb, 0x00d4cff1, 0x00d3cff1, 0x00d4cdf2, 0x00d4cdf5,
- 0x00fefdfd, 0x00fafafa, 0x00fdfdfd, 0x00fdfdfd, 0x00fcfcfc, 0x00fcfcfc, 0x00fdfdfd, 0x00fbfcfc, 0x00fdfdfd, 0x00fdfdfd, 0x00fcfcfc, 0x00fdfdfd, 0x00fbfbfb, 0x00fdfdfd, 0x00fcfcfc, 0x00fcfcfc,
- 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fcfcfc, 0x00fcfcfc, 0x00fcfcfc, 0x00fcfcfc,
- 0x00fffcfb, 0x00fffcfb, 0x00fffcfd, 0x00fffdff, 0x00fffdff, 0x00fdfcfe, 0x00fcfcfd, 0x00fcfbfd, 0x00ffffff, 0x00fbfcfd, 0x00fdfeff, 0x00f9fdfc, 0x00fdfffe, 0x00fdfffd, 0x00fefffd, 0x00fefdfd,
- 0x00fdfbfa, 0x00fdfbfa, 0x00fbf7f9, 0x00faf5f6, 0x00fcf6f9, 0x00f9f3f4, 0x00f5f3f0, 0x00ecf1e6, 0x00e4edde, 0x00e1e7d7, 0x00e0dfd1, 0x00e0d8cf, 0x00ded2cd, 0x00d2cdc4, 0x00c7c8bf, 0x00bdc7b8,
- 0x00b6bfac, 0x00b0b5ab, 0x00aaaaa8, 0x00a4a0a7, 0x00999499, 0x00948f90, 0x008a8684, 0x007f7c7a, 0x0072717a, 0x006c6b7b, 0x006a6975, 0x00696b6b, 0x006c706e, 0x00717474, 0x00797c7b, 0x007b7f7f,
- 0x00898b8c, 0x00939696, 0x00a3a5a5, 0x00b3b6b5, 0x00c7c9c9, 0x00dddcdd, 0x00e9e7e9, 0x00e9e9ec, 0x00f3f1f3, 0x00f5f5f4, 0x00f8f9f8, 0x00fbfcfb, 0x00fcfcfd, 0x00fdfdfe, 0x00fdfefe, 0x00fbfdfc,
- 0x00fffefe, 0x00fcfcfc, 0x00fbfcfb, 0x00fdfdfd, 0x00fefefe, 0x00fdfdfd, 0x00fdfdfd, 0x00fbfcfc, 0x00fefcfc, 0x00fffcfe, 0x00fefeff, 0x00fafefc, 0x00fbfffd, 0x00fafefb, 0x00f9fcf8, 0x00fcfcf8,
- 0x00fdfcf8, 0x00fdfcf5, 0x00fefff9, 0x00fdf9f2, 0x00fdf7ee, 0x00fdfbf7, 0x00f9fbf7, 0x00fefffc, 0x00fbfafb, 0x00fafcfa, 0x00cdcfcb, 0x006d6f6b, 0x0041413f, 0x00696767, 0x00b7b6b5, 0x00e1e0de,
- 0x00fafdf9, 0x00f9fdf8, 0x00f9fef7, 0x00f9fff6, 0x00f8fef5, 0x00f9fef7, 0x00f9fef9, 0x00f9fefa, 0x00f9fdf9, 0x00f9fff8, 0x00fafefa, 0x00fefeff, 0x00fffeff, 0x00fefefe, 0x00feffff, 0x00fffdfe,
- 0x00fffefb, 0x00fffffd, 0x00fffffe, 0x00fffffe, 0x00fffefe, 0x00fefcfb, 0x00fefefc, 0x00fdfffe, 0x00fdfefe, 0x00fcfdfc, 0x00fefdfc, 0x00fefcfc, 0x00fffefd, 0x00fffefd, 0x00fffffc, 0x00fefefa,
- 0x00fafef8, 0x00fafefa, 0x00fbfdfa, 0x00fafcfb, 0x00fbfdfe, 0x00fbfcfd, 0x00fdfefe, 0x00fdfdfa, 0x00fbfdfa, 0x00fdfef6, 0x00fefdf8, 0x00fcf8fb, 0x00fffafd, 0x00fffcfc, 0x00fffefb, 0x00fffcf8,
- 0x00fcfcf8, 0x00fdfdfa, 0x00fcfdfb, 0x00f9fbf8, 0x00fafcfd, 0x00fbfafa, 0x00fcfafd, 0x00fbfafb, 0x00fcfbf6, 0x00fafaf4, 0x00faf9f4, 0x00fbf9f5, 0x00f9f9f6, 0x00f9f8f8, 0x00faf7fa, 0x00faf7fb,
- 0x00f8f9f8, 0x00f6f7f6, 0x00f7f7fa, 0x00f4f4fa, 0x00f6f6fc, 0x00f4f3fd, 0x00f4f2fe, 0x00f4f2fc, 0x00f6f2fb, 0x00f3f2f9, 0x00f0f2f5, 0x00f0f3f2, 0x00f0f0f0, 0x00efefed, 0x00efefea, 0x00eeefe9,
- 0x00f2f0f4, 0x00edeef0, 0x00e9eeee, 0x00e8edee, 0x00eaebea, 0x00edeaec, 0x00e9e8e6, 0x00e8e7e6, 0x00e5e4e3, 0x00e4e3e2, 0x00e3e1e1, 0x00e3e2e2, 0x00e3e1e0, 0x00dfdddd, 0x00e0dedc, 0x00e0dedc,
- 0x00dededc, 0x00dcdbda, 0x00dad9d9, 0x00d7d7d6, 0x00d6d7d5, 0x00d4d5d3, 0x00d5d5d4, 0x00d2d3d1, 0x00d0d0cf, 0x00cccecb, 0x00cdcdcb, 0x00cccac9, 0x00c9c7c6, 0x00c6c5c4, 0x00c4c3c3, 0x00c3c3c0,
- 0x00c4c1bf, 0x00c3c2bf, 0x00c2bfbd, 0x00c1c0be, 0x00bfbcbc, 0x00b9bbb9, 0x00b6b6b4, 0x00b6b4b3, 0x00b2b2b1, 0x00b0b1ae, 0x00b2b2b0, 0x00b0afae, 0x00adacab, 0x00a7a7a6, 0x00a7a7a7, 0x00acadab,
- 0x008f8c8a, 0x003d424c, 0x00111e38, 0x00213765, 0x003958a5, 0x003e62bb, 0x00335ab9, 0x002a53b5, 0x002b4dae, 0x00274aa4, 0x0021419a, 0x0026469e, 0x00284894, 0x003b5d9d, 0x006380bf, 0x00526fac,
- 0x0038569d, 0x003654a2, 0x002e52a3, 0x002e53a3, 0x002c55a1, 0x003b57a6, 0x003e59ab, 0x003654a2, 0x003455a3, 0x003658a9, 0x003657af, 0x003756b2, 0x003951a6, 0x003f539a, 0x0032467e, 0x001c2d58,
- 0x001b1b1d, 0x001d1d1e, 0x00161618, 0x00141516, 0x00222223, 0x002b2a2b, 0x002c2c2d, 0x00272627, 0x00232325, 0x00242524, 0x0020221d, 0x00212a22, 0x00252727, 0x00232325, 0x002d2729, 0x00312b27,
- 0x002e2b21, 0x002f312a, 0x00293031, 0x00283546, 0x00314265, 0x00374986, 0x00364893, 0x002a3e8b, 0x00263a8b, 0x002f4594, 0x00354a9c, 0x002d4294, 0x00293b8c, 0x00273988, 0x002c3b8c, 0x002c3b89,
- 0x004b5996, 0x007a8dcd, 0x007c93d8, 0x003c59a4, 0x003453a3, 0x004667b9, 0x004a6ec2, 0x00476dc2, 0x00436dc6, 0x003b6ac1, 0x003965c2, 0x003360c3, 0x002354b3, 0x002955ac, 0x0029519a, 0x001b3a70,
- 0x0022263d, 0x0021232b, 0x00262325, 0x00282a24, 0x001c2a29, 0x002a2a26, 0x002f2926, 0x00262425, 0x00272b3b, 0x003c4356, 0x005f687c, 0x007c85a0, 0x00aeb7c9, 0x00e0e5f4, 0x00fbfdff, 0x00fbfcfb,
- 0x00fdfefb, 0x00fafdf9, 0x00dde0d7, 0x0086857f, 0x00332f23, 0x0016130b, 0x004b4941, 0x00bdbcb9, 0x00fdfdfe, 0x00fdffff, 0x00fafdfc, 0x00fefbfd, 0x00fefefd, 0x00fefdff, 0x00fdfffa, 0x00a4a998,
- 0x0046522c, 0x00435326, 0x00425425, 0x0044562a, 0x00465734, 0x00475a2f, 0x00465b2b, 0x00465b2b, 0x00475c2f, 0x00475d2d, 0x00485f2d, 0x0049602d, 0x004a612d, 0x004b622e, 0x004c6330, 0x004d652f,
- 0x004f6930, 0x004c652e, 0x004c6230, 0x0052653a, 0x00566649, 0x009fac98, 0x00b9c3b8, 0x00bbc4c2, 0x00bec6cd, 0x00c8cdd6, 0x00c9d4d1, 0x00a3b99a, 0x005c7252, 0x00546c48, 0x00678158, 0x0090aa7d,
- 0x007f9766, 0x0059743e, 0x005b773c, 0x00597637, 0x005a7736, 0x005b7637, 0x005b7739, 0x005b783a, 0x005c783c, 0x005b7a3b, 0x005d7b3c, 0x005d7b3d, 0x005d7b3d, 0x005d7b3d, 0x005d7b3d, 0x005c7c3c,
- 0x005f7d3f, 0x005e7c3f, 0x005e7c3f, 0x005e7c3f, 0x005e7c3f, 0x005e7c3f, 0x005d7b3e, 0x005d7a3d, 0x005e7b3e, 0x005d7b3d, 0x005e7b3e, 0x005f7a3d, 0x005e793c, 0x005e793b, 0x005e793b, 0x005e783a,
- 0x005f763b, 0x005d773b, 0x005d773b, 0x005d773a, 0x005c763a, 0x005b7739, 0x005b7839, 0x00597737, 0x005c743b, 0x005c7438, 0x005e7437, 0x005e7235, 0x00607237, 0x005f7036, 0x00607036, 0x005f6f34,
- 0x00586d35, 0x00576c32, 0x00576b31, 0x00586b31, 0x00596931, 0x0059652f, 0x0059622d, 0x005a612c, 0x005a612e, 0x0059602c, 0x005c5e2e, 0x00605a31, 0x0060582d, 0x0060572e, 0x0060582e, 0x0060572d,
- 0x0062542b, 0x005e532a, 0x005d5129, 0x005c5027, 0x005c4f26, 0x005e4e26, 0x005e4c27, 0x005d4c28, 0x005b4926, 0x005b4825, 0x005a4725, 0x005a4726, 0x00574425, 0x00564325, 0x00554224, 0x00554223,
- 0x005c3f21, 0x005a3e20, 0x005a3c20, 0x00593a20, 0x0058391e, 0x0057371f, 0x0056351f, 0x0055351d, 0x0051321e, 0x0051321a, 0x0052321c, 0x00543620, 0x007b6559, 0x00f5ece6, 0x00fffbfc, 0x00fffdfd,
- 0x00fffcfc, 0x00fefcfb, 0x00faf9fc, 0x00f4fafe, 0x00def0f8, 0x00abbdde, 0x008494bc, 0x009ca6c5, 0x00dedff6, 0x00cbd0f4, 0x008791c8, 0x005266a4, 0x004863a0, 0x008095ce, 0x00d0dfff, 0x00dde5fb,
- 0x00f3edee, 0x00c9cbe2, 0x00676a9b, 0x008088c9, 0x00bec7f6, 0x00a6aac8, 0x00cac9dc, 0x00ccc8d2, 0x006c6388, 0x00575388, 0x00cecbf9, 0x00f2f3fc, 0x00b3bbcb, 0x008089a0, 0x0066718f, 0x0097a7c8,
- 0x00c2d0eb, 0x008e97af, 0x00777f92, 0x00b4b8c5, 0x00d4d4dc, 0x009ea2b0, 0x005a6b8e, 0x003a64a7, 0x003069c9, 0x003f71c3, 0x004d77c2, 0x00436eb1, 0x001a57a7, 0x001654ab, 0x003c6fca, 0x004f73c9,
- 0x003d71cb, 0x00457cce, 0x005991dd, 0x006097dc, 0x006ea7eb, 0x0071a0e8, 0x003b66b0, 0x005176bd, 0x006b89c5, 0x0023416e, 0x0020386e, 0x001f3588, 0x002b397c, 0x00404578, 0x00525173, 0x004d4453,
- 0x00492f2f, 0x004b2f28, 0x00503027, 0x00492618, 0x0048221a, 0x0042260a, 0x0060461e, 0x00967a4d, 0x00bc9864, 0x00c09a5e, 0x00cca464, 0x00c6a15e, 0x00b49962, 0x0096815a, 0x006d5f42, 0x00594e3c,
- 0x003c608f, 0x004569a2, 0x00466aae, 0x004a6ab6, 0x00708cd0, 0x0096ade1, 0x00bdcdf1, 0x00dfe9f9, 0x00faf5fe, 0x00fcf1fe, 0x00f5e8f4, 0x00e8e6e6, 0x00e7e2e4, 0x00f2edea, 0x00ece6e2, 0x00c9c2be,
- 0x0087837b, 0x0077776b, 0x007a7e6f, 0x00707a66, 0x00727f69, 0x00757b6c, 0x00b8bcb1, 0x00f5f8f2, 0x00fcfefb, 0x00fafdfd, 0x00fcfdfd, 0x00fffeff, 0x00b1ada9, 0x003d362d, 0x001e1508, 0x002a200f,
- 0x00968a8a, 0x00e5e9e9, 0x00e4edee, 0x00e2e7eb, 0x00d5a9b4, 0x00b05966, 0x00af444d, 0x00cc595d, 0x00ac645a, 0x00694834, 0x007c4331, 0x00be3831, 0x00d93b19, 0x00dd3c13, 0x00d6451d, 0x00c55740,
- 0x008874a3, 0x005c79cb, 0x002757bb, 0x00053799, 0x002e3d86, 0x002f58aa, 0x002b60bb, 0x002d6bc6, 0x002a6cc7, 0x002965be, 0x003669bf, 0x002652a1, 0x00123685, 0x00183e93, 0x00133d98, 0x002251b0,
- 0x002d64c3, 0x002e64bf, 0x002f63bd, 0x002d60bb, 0x00295ebd, 0x00255cbc, 0x00245ab5, 0x003364b6, 0x002f4985, 0x001d2e5a, 0x003c4569, 0x005e6680, 0x00485688, 0x00304380, 0x0024367a, 0x001a296b,
- 0x00212655, 0x0024234c, 0x001e1e48, 0x001a174d, 0x001c1f6a, 0x00252e72, 0x00344388, 0x002f3f85, 0x0037448f, 0x004353a1, 0x004154a6, 0x00344ea0, 0x00204097, 0x0020459d, 0x003961ba, 0x00406ac3,
- 0x00985d8e, 0x00ba5f65, 0x00df5a3a, 0x00fb510e, 0x00fc510d, 0x00de5e3f, 0x00ab606b, 0x006f6599, 0x004677cb, 0x004684da, 0x00538fdd, 0x00689bcf, 0x0077a2d0, 0x007499be, 0x00587594, 0x0042556a,
- 0x00222733, 0x001c2024, 0x001e1c1c, 0x0017130f, 0x0016110a, 0x00130d0e, 0x000e080b, 0x0014090c, 0x00240e0e, 0x00351512, 0x00451c14, 0x00522115, 0x00672a1d, 0x00743523, 0x0083402b, 0x008a462e,
- 0x0090502e, 0x008d5230, 0x008b4f2e, 0x00814c29, 0x0076492b, 0x006b4730, 0x005b3d2b, 0x00463121, 0x00807671, 0x00e4e3de, 0x00fbfff9, 0x00f2fcf7, 0x00f6fdf3, 0x00f9fef8, 0x00c4c6c9, 0x00575567,
- 0x003e386c, 0x006160a7, 0x008386da, 0x008891e8, 0x007c8de3, 0x007a8ae1, 0x007788dc, 0x007586db, 0x007989dc, 0x007d8de0, 0x008292e4, 0x008898e9, 0x008d9dee, 0x0094a5f4, 0x009daff9, 0x00a1b4fa,
- 0x009db4fa, 0x00a0bcfc, 0x009bb4ef, 0x008f96d2, 0x00855c9d, 0x00683f83, 0x00694f93, 0x006c6eb3, 0x004f6bbe, 0x004059b6, 0x002f419d, 0x002e3d88, 0x00635987, 0x00b096a7, 0x00e2b9b1, 0x00efbe9e,
- 0x00f1bd98, 0x00ecbf9a, 0x00e5c09d, 0x00e3be9f, 0x00e4bea3, 0x00e1c1b1, 0x00e0b4a2, 0x00e7a281, 0x00eaa186, 0x00e3beb8, 0x00e8dae7, 0x00dde4f9, 0x00ede0eb, 0x00f5e2ef, 0x00feeefa, 0x00fcf1fe,
- 0x00fdd8cc, 0x00f6cabd, 0x00b9978c, 0x00503f3a, 0x000c0c0b, 0x00080409, 0x0009080f, 0x000a0811, 0x0009090c, 0x00040907, 0x00000701, 0x00000300, 0x00030203, 0x00010104, 0x001b1b1f, 0x0034353b,
- 0x0021232a, 0x00121318, 0x00090a0d, 0x00030606, 0x00020603, 0x0027282c, 0x009794a4, 0x00c6c2df, 0x00d0c8f6, 0x00cdc5f6, 0x00d3c9fb, 0x00d3cbf9, 0x00d2cdf2, 0x00d1ccf1, 0x00d5cff6, 0x00d5cff9,
- 0x00ffffff, 0x00fdfefd, 0x00fafbfb, 0x00fcfdfd, 0x00fefdfd, 0x00fefdfd, 0x00fdfcfd, 0x00fdfdfd, 0x00fcfcfc, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fdfdfd, 0x00fefefe,
- 0x00fcfcfc, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00fefeff, 0x00fdfdfe, 0x00fcfdff, 0x00fcfdff, 0x00fcfdff, 0x00fbfcfd, 0x00fbfcfd, 0x00fcfcfd, 0x00fcfefc, 0x00fbfefd, 0x00f9fdfb, 0x00f7fffa, 0x00fafefb, 0x00fafffb, 0x00fdfffd, 0x00fffffe,
- 0x00fdfafa, 0x00fffbfa, 0x00fefaf7, 0x00fef8fa, 0x00fff9f7, 0x00fbfdfc, 0x00f8fffc, 0x00f6fffa, 0x00f3fdf3, 0x00f7fcf3, 0x00f9faee, 0x00fef7f1, 0x00faf2ed, 0x00eef1ed, 0x00e3ede9, 0x00dbefe9,
- 0x00dce7db, 0x00dee5e2, 0x00dadee1, 0x00d3d5de, 0x00d0cfd5, 0x00c9c8c8, 0x00c1c1bc, 0x00bab7b5, 0x00afb0b7, 0x00a7a6b7, 0x009f9fab, 0x00999c9a, 0x00898d8a, 0x00828685, 0x007b807c, 0x00767c77,
- 0x006d7370, 0x006b706d, 0x00696c6a, 0x006b6f6c, 0x00737574, 0x00787979, 0x00808082, 0x008c8c8e, 0x00a1a2a2, 0x00b1b2b1, 0x00c0c2c1, 0x00cacdcb, 0x00d9d9da, 0x00e3e4e4, 0x00eef1f0, 0x00f5f7f6,
- 0x00f9f8f8, 0x00fcfcfc, 0x00fdfefe, 0x00fcfcfc, 0x00fafafa, 0x00fbfbfb, 0x00fdfdfd, 0x00fefffe, 0x00fdfefc, 0x00fefdfe, 0x00fbfdfd, 0x00f9fdfc, 0x00fbfdfd, 0x00fbfefd, 0x00fbfffc, 0x00fffefd,
- 0x00fbfbfc, 0x00fdfcfd, 0x00f9fffe, 0x00fcfdfd, 0x00f7fbf8, 0x00fffdfd, 0x00fbfcf8, 0x00fcfefa, 0x00fcfcfb, 0x00fafbf8, 0x00c1c3bf, 0x005c5d5a, 0x003b3c3b, 0x00666666, 0x00b4b3b2, 0x00e1e2de,
- 0x00f8fbfb, 0x00f8fefb, 0x00f8fffb, 0x00f7fff9, 0x00f6fcf7, 0x00f9fffa, 0x00f9fffb, 0x00f8fffc, 0x00f9fffb, 0x00f7fefa, 0x00f8fdfc, 0x00fcfcff, 0x00fcfcff, 0x00fdfcff, 0x00fdfdff, 0x00fdfbfe,
- 0x00fbfbfd, 0x00fcfbfe, 0x00fbfafe, 0x00fcfbff, 0x00fdfbff, 0x00fdfcfd, 0x00fefefe, 0x00fcfefd, 0x00fdfdfc, 0x00fdfdfd, 0x00fdfdfd, 0x00fefdfe, 0x00fdfdfd, 0x00fefefe, 0x00fefcfc, 0x00fefbfb,
- 0x00f6fef7, 0x00f8fffb, 0x00f7fffb, 0x00f7fefc, 0x00f9fdfe, 0x00fbfefe, 0x00fcfcfc, 0x00fcfdfa, 0x00fafdf6, 0x00fdfef3, 0x00fdfdf5, 0x00fffcfc, 0x00fefcfe, 0x00fefdfd, 0x00fbfffd, 0x00fafcfc,
- 0x00fafcfa, 0x00fdfcff, 0x00f8fdff, 0x00f9fcff, 0x00fafcfd, 0x00fefdfe, 0x00fdfefd, 0x00fcfffd, 0x00fdfffc, 0x00fefffc, 0x00fdfefd, 0x00fefffe, 0x00feffff, 0x00fefffe, 0x00ffffff, 0x00fefdfc,
- 0x00fcfdff, 0x00fdfdfe, 0x00fbfcfe, 0x00fafdfe, 0x00fbfeff, 0x00fbfdfc, 0x00fbfdfa, 0x00f9fdf5, 0x00fbfff3, 0x00fbfff0, 0x00f8fdf3, 0x00fdfdff, 0x00f9fcfb, 0x00fbfcfc, 0x00fbfbfb, 0x00fbfaf9,
- 0x00fefdfb, 0x00fdfbfb, 0x00f8fbf8, 0x00f8fafc, 0x00f4fcfa, 0x00f9fcfc, 0x00f8fbf9, 0x00fafbf9, 0x00f9faf9, 0x00f9f9fa, 0x00f8f8f9, 0x00f9f9fa, 0x00f8f7f8, 0x00f8f8f9, 0x00f8f7f8, 0x00f8f7f8,
- 0x00f6f6f2, 0x00f6f6f3, 0x00f4f4f2, 0x00f4f5f2, 0x00f2f4f1, 0x00f2f3f0, 0x00f1f2ee, 0x00eef0ec, 0x00f0f0ec, 0x00eeefec, 0x00eeedeb, 0x00eeebea, 0x00edebea, 0x00ebebea, 0x00e9e9e8, 0x00e8e9e8,
- 0x00e7e9e8, 0x00eae9ea, 0x00e6e7e7, 0x00e4e6e6, 0x00e2e5e5, 0x00e6e5e4, 0x00e5e4e1, 0x00e2dfdd, 0x00dddddd, 0x00dddddd, 0x00dddddc, 0x00dfdfdf, 0x00deddde, 0x00d7d7d9, 0x00d6d6d7, 0x00dfdfdf,
- 0x00b3b3ae, 0x004c525b, 0x000b192e, 0x001b2f5a, 0x0038579b, 0x004668bc, 0x004066c0, 0x00355fbe, 0x002c55b8, 0x00274eaf, 0x002348a7, 0x002544a0, 0x00264793, 0x003b5a9c, 0x006684c3, 0x005a76b3,
- 0x0038569b, 0x003958a4, 0x002f54a0, 0x003053a1, 0x00315a9f, 0x003b57a5, 0x003b56a6, 0x003554a0, 0x003456a2, 0x00385aac, 0x003457b0, 0x003757b6, 0x00415bb7, 0x00445cab, 0x003f5698, 0x00394f86,
- 0x00454445, 0x00414242, 0x00262726, 0x00171818, 0x00262727, 0x00363635, 0x00313030, 0x00282627, 0x00262828, 0x002c2c2a, 0x00262924, 0x00262b29, 0x0027292b, 0x00242128, 0x002b272a, 0x002f2a27,
- 0x002e2c20, 0x00313229, 0x002c322f, 0x0029333e, 0x0032405b, 0x003d4b86, 0x003b4b96, 0x002d3f8d, 0x001e3688, 0x00284397, 0x00304da3, 0x002a46a0, 0x002a3f91, 0x002c3e8e, 0x0033418b, 0x0039438c,
- 0x00384c87, 0x00707fc1, 0x007e92d4, 0x004b5ca8, 0x00364da0, 0x00415bb4, 0x004364bf, 0x00416ac6, 0x003d6dc5, 0x003c6cc2, 0x003567bf, 0x002a59bf, 0x00224ea6, 0x00294c98, 0x002b4781, 0x0025375b,
- 0x001f1f28, 0x00262225, 0x00201d17, 0x0020221f, 0x00162524, 0x0025231f, 0x0027211a, 0x00221f1c, 0x002a2b36, 0x00414654, 0x00606776, 0x007e8599, 0x00aab2c2, 0x00e1e6f3, 0x00fafdfe, 0x00f9fbfc,
- 0x00f9fcf8, 0x00fafcf7, 0x00dfdfd6, 0x00827f77, 0x002a2518, 0x00150f05, 0x00514e45, 0x00c1c1bc, 0x00fdfdfe, 0x00ffffff, 0x00fefffe, 0x00fcfbf7, 0x00fdfefc, 0x00fbfcfc, 0x00fbfff7, 0x00989c8e,
- 0x00445429, 0x00425524, 0x00415524, 0x0043582a, 0x00455834, 0x00465d31, 0x00455d2d, 0x00455d2d, 0x00485f2d, 0x0048602d, 0x0049612d, 0x004a622d, 0x004b632e, 0x004c642f, 0x004e6630, 0x004e6731,
- 0x004c652e, 0x00506733, 0x00516734, 0x0054683d, 0x004e5c3e, 0x009da896, 0x00b2bcb2, 0x00bfc6c7, 0x00bdc3cf, 0x00cecfe2, 0x00cdd4da, 0x00c7d8c9, 0x006d7f6b, 0x00536650, 0x0093aa8d, 0x00d3e8c6,
- 0x00adc499, 0x00667f50, 0x0056713b, 0x00557335, 0x00617e3e, 0x005c7839, 0x005e7a3c, 0x005e7a3b, 0x005e7b3b, 0x005e7c3c, 0x005e7d3c, 0x005e7d3c, 0x005e7c3d, 0x005e7c3c, 0x005d7c3d, 0x005d7c3d,
- 0x00607f3f, 0x00607e3e, 0x00607e3e, 0x00607e3e, 0x00607f3f, 0x00607e3f, 0x00607e3e, 0x005f7e3e, 0x005f7e3f, 0x005f7e3f, 0x005f7e3f, 0x005f7d3e, 0x005e7c3d, 0x005e7b3c, 0x005e7a3b, 0x005e7a3b,
- 0x005c7a3b, 0x005d7b3c, 0x005c7a3b, 0x005b793a, 0x005c793b, 0x00597a3b, 0x00567b39, 0x00567b38, 0x00587a3a, 0x00597b39, 0x005a7a38, 0x005d7a39, 0x005d7739, 0x005e763a, 0x005e7438, 0x005e7436,
- 0x00517636, 0x00517534, 0x00527434, 0x00547334, 0x00547134, 0x00536e32, 0x00526b30, 0x00526a2e, 0x00556831, 0x0053682e, 0x00546730, 0x00586233, 0x00596130, 0x005b6030, 0x005b6131, 0x005b6230,
- 0x005c5d2e, 0x00595c2d, 0x00585b2c, 0x00585a2b, 0x0059592b, 0x005a572a, 0x005a552a, 0x0058532a, 0x00575129, 0x00575229, 0x00575129, 0x00565029, 0x00544d29, 0x00534c28, 0x00524a27, 0x00524b26,
- 0x00564522, 0x00554422, 0x00554320, 0x00554120, 0x00563f1f, 0x00563d20, 0x00563b1d, 0x00563a1d, 0x0055371e, 0x0055341c, 0x0054381f, 0x00523721, 0x007f6e5e, 0x00f8f0e9, 0x00fefcfa, 0x00fffbfc,
- 0x00fef9fa, 0x00fdf8f9, 0x00f9fbff, 0x00edf1f8, 0x009bb2cc, 0x00959dc8, 0x00b8c3e8, 0x00d9e1f5, 0x00b4bacf, 0x00777cad, 0x0054609f, 0x004d5ea5, 0x00637cac, 0x00aac0eb, 0x00a4b5e4, 0x008e98d7,
- 0x00f7f5ef, 0x00e5ecf9, 0x00a2accd, 0x00a6b3e9, 0x00919ccd, 0x008488ad, 0x00d6d7ea, 0x00bdbbc7, 0x00837f9d, 0x00a09fce, 0x00d6dcf6, 0x00f2fbfd, 0x00b5c1cd, 0x008996ab, 0x0096a5c2, 0x009dadd0,
- 0x00a9badd, 0x00aeb9d9, 0x009ba4c1, 0x00a3a9c0, 0x00cfd0e0, 0x00babfd1, 0x0097a6c9, 0x006288c2, 0x002e66be, 0x004073c5, 0x004276bd, 0x003966ab, 0x00154d96, 0x00164ea4, 0x003066bf, 0x003968c4,
- 0x00346ac4, 0x004a81d3, 0x00578dd9, 0x00588ed3, 0x006298dd, 0x006491da, 0x00486fb8, 0x006c8dd1, 0x0095b1e7, 0x005a749b, 0x00142e5d, 0x001a327b, 0x00213a76, 0x00324476, 0x004a577e, 0x00444c63,
- 0x003d363b, 0x00423331, 0x00523b2d, 0x004d3019, 0x004e260f, 0x0055370c, 0x00907640, 0x00bfa172, 0x00be9a6b, 0x00ae8a50, 0x00a3813d, 0x009d8234, 0x00796825, 0x00685b37, 0x00564c43, 0x00554c5b,
- 0x002a5ba2, 0x003261af, 0x003664b8, 0x003e69c1, 0x005075c5, 0x006384c5, 0x00809acd, 0x00a5b8da, 0x00d7ddf8, 0x00eceefe, 0x00f5f5f9, 0x00f2f0f2, 0x00eae9e8, 0x00ece9e9, 0x00edeae6, 0x00d7d2cd,
- 0x008e8e83, 0x006c6e60, 0x00686e5d, 0x00626d58, 0x00627059, 0x00646c5c, 0x00afb2a7, 0x00f5f8f1, 0x00fcfffd, 0x00fafdfe, 0x00feffff, 0x00fefdfe, 0x00b1aea9, 0x003f372e, 0x001f1708, 0x002a200e,
- 0x008f8680, 0x00e9ede7, 0x00e9faeb, 0x00e4f2e2, 0x00d39f94, 0x00b2413f, 0x00b21818, 0x00c71a1f, 0x00ac2c2a, 0x008e352e, 0x008b332a, 0x00af302a, 0x00d44027, 0x00e54418, 0x00e64c16, 0x00e1592b,
- 0x0098728b, 0x006076c3, 0x001c55bb, 0x00053dae, 0x00364393, 0x00365cb5, 0x002d65bf, 0x002c6dc9, 0x00296dc9, 0x002a67c0, 0x003369bd, 0x0023519f, 0x000e3382, 0x00194095, 0x00153f9c, 0x002352b6,
- 0x00316cc9, 0x00356dc8, 0x00346ac4, 0x003265bf, 0x00285dbc, 0x00235aba, 0x00215ab5, 0x00285db0, 0x0031528d, 0x00405586, 0x005a668f, 0x00595c81, 0x003f508a, 0x00334993, 0x0023408d, 0x00173486,
- 0x00112566, 0x00172160, 0x00171f5c, 0x001f246d, 0x002f368b, 0x0027377e, 0x003b5192, 0x003f5296, 0x00374591, 0x00334292, 0x00192b80, 0x000c257c, 0x00153893, 0x002856b1, 0x003367c3, 0x00336dc7,
- 0x005c65b6, 0x00846893, 0x00af666a, 0x00d95c3d, 0x00e95538, 0x00c7605e, 0x008c617e, 0x004a6ca4, 0x002d76d3, 0x003a71d9, 0x00386fd3, 0x00397bcb, 0x005993df, 0x0071a4e6, 0x0076a3dd, 0x007597c3,
- 0x005a6c8e, 0x0056637e, 0x00495365, 0x00343642, 0x00101217, 0x000c090d, 0x00100a0c, 0x00160a09, 0x002c120f, 0x003b1712, 0x004c1f16, 0x00582316, 0x006a2a1d, 0x00743423, 0x007f3f2a, 0x0084452e,
- 0x008b4c28, 0x008d512e, 0x008a512f, 0x00834d2d, 0x0070472a, 0x0063412b, 0x00533928, 0x003e2a1e, 0x006e6760, 0x00d9d5d1, 0x00fbfdf8, 0x00f4fdf6, 0x00f7fff5, 0x00f5fcf6, 0x00ced6db, 0x00666981,
- 0x00323571, 0x00414897, 0x004650af, 0x003a4db2, 0x00344bb1, 0x002f47ae, 0x002c43a6, 0x002a40a2, 0x003044a8, 0x003449a9, 0x00354ca9, 0x003952af, 0x003d56b3, 0x00455dba, 0x004f67c1, 0x00556cc6,
- 0x005173d0, 0x005377d1, 0x005075c6, 0x005a6ec2, 0x006b63ba, 0x004d439c, 0x002a2c85, 0x00273b94, 0x001d42a7, 0x001d3ca8, 0x00122a90, 0x000f247d, 0x003a376c, 0x00846f86, 0x00cba49f, 0x00d8a790,
- 0x00d3a57b, 0x00d4a77f, 0x00d5ac85, 0x00d6b08c, 0x00d5ac8a, 0x00cea98a, 0x00d4a180, 0x00de9163, 0x00e3946e, 0x00e4b8ab, 0x00ecdce1, 0x00d8daec, 0x00d9ccd4, 0x00dfc9d9, 0x00e4cbdf, 0x00e7d3f0,
- 0x00fbdee3, 0x00fee8ea, 0x00f1e2e2, 0x00b5abab, 0x003c3c3e, 0x000e080e, 0x000d080c, 0x000f0a0f, 0x000a0c10, 0x00040d0d, 0x00010a06, 0x00020501, 0x00030304, 0x00030306, 0x000b0a10, 0x000f1017,
- 0x000d0f16, 0x000e0f14, 0x00050708, 0x00000200, 0x00000400, 0x001d1e21, 0x008d8b99, 0x00c2beda, 0x00cec8f5, 0x00cdc6f6, 0x00d0c8f8, 0x00cec7f2, 0x00d1cbef, 0x00d0cbf0, 0x00d4cdf6, 0x00d5cdfb,
- 0x00f3f2f3, 0x00e5e4e4, 0x00dfdede, 0x00e1e1e1, 0x00e3e3e3, 0x00e2e3e3, 0x00e2e2e2, 0x00e5e5e5, 0x00e5e5e5, 0x00e5e5e5, 0x00e5e5e5, 0x00e4e4e4, 0x00e6e6e6, 0x00e4e4e4, 0x00e4e4e4, 0x00e3e3e3,
- 0x00e3e3e3, 0x00e3e3e3, 0x00e3e3e3, 0x00e3e3e3, 0x00e3e3e3, 0x00e3e3e3, 0x00e3e3e3, 0x00e4e4e4, 0x00e4e4e4, 0x00e4e4e4, 0x00e4e4e4, 0x00e4e4e4, 0x00e4e4e4, 0x00e4e4e4, 0x00e3e3e3, 0x00e3e3e3,
- 0x00e1e5e9, 0x00e1e5e8, 0x00e1e4e9, 0x00e1e4ea, 0x00e0e2ea, 0x00e0e1e9, 0x00e0e2e7, 0x00e2e4e6, 0x00e2e3e6, 0x00e0e3e3, 0x00dfe5e3, 0x00dde6e2, 0x00dde4df, 0x00dfe5e1, 0x00dfe2df, 0x00e2e3e0,
- 0x00ece3e4, 0x00f3eae6, 0x00f9e9eb, 0x00f2e5e2, 0x00eee0de, 0x00e4ecee, 0x00e7f8fd, 0x00e7fbff, 0x00ebfaff, 0x00edf8fd, 0x00f1f8ff, 0x00f5f6fc, 0x00eeeef9, 0x00deecf8, 0x00d8f0fe, 0x00d1f3fc,
- 0x00deeef4, 0x00deeaf6, 0x00dbe4f4, 0x00d4d9ed, 0x00d1d3df, 0x00d1d2d4, 0x00cacbc6, 0x00c8c8c1, 0x00c1c3c5, 0x00b9bcc1, 0x00b4b6bb, 0x00aeb1af, 0x00a3a7a3, 0x009ba09c, 0x00939994, 0x008b9189,
- 0x00878a88, 0x007e817e, 0x00757976, 0x006d736f, 0x00666c68, 0x00616561, 0x005e605e, 0x005c5e5c, 0x005d6260, 0x00646766, 0x006a6d6d, 0x006f7271, 0x00787a79, 0x00838583, 0x00969896, 0x00a1a1a1,
- 0x00b8b7b7, 0x00c6c5c5, 0x00d6d5d5, 0x00e0dfdf, 0x00e8e9e8, 0x00f1f3f2, 0x00f8f9f8, 0x00f9fafa, 0x00fcfdfc, 0x00fdfffe, 0x00fafdfc, 0x00fbfcfc, 0x00fdfdfe, 0x00fcfefe, 0x00fcfefe, 0x00fdfcff,
- 0x00fffdff, 0x00fdfdff, 0x00f7f9fe, 0x00f7fbfb, 0x00fafeff, 0x00fafdfd, 0x00fcfbf9, 0x00fdfcf9, 0x00fbfdfa, 0x00f9fbf8, 0x00babab7, 0x00545450, 0x003b3b38, 0x00686865, 0x00b6b6b2, 0x00e4e4e1,
- 0x00fafdff, 0x00fafcfe, 0x00fcfefe, 0x00fbfefd, 0x00fbfefc, 0x00fafdfb, 0x00fbfdfb, 0x00fafcfa, 0x00f9fefc, 0x00f6fffd, 0x00f7fffc, 0x00fcfcfb, 0x00fdfdfc, 0x00fdfdfe, 0x00fcfdfe, 0x00fdfdfd,
- 0x00fdfdfd, 0x00fcfdfd, 0x00fefdff, 0x00fcfbfd, 0x00fafbfc, 0x00fafefd, 0x00fafffe, 0x00fbffff, 0x00fcfffe, 0x00fbfffd, 0x00fbfdfc, 0x00fdfffe, 0x00fdfdfd, 0x00fefefe, 0x00fdfdfd, 0x00fcfefe,
- 0x00f9fefa, 0x00f7fdfb, 0x00f9fefd, 0x00f9feff, 0x00f9fdfd, 0x00fbfefc, 0x00fcfefc, 0x00fcfdfb, 0x00fffef7, 0x00fefff4, 0x00fefbf5, 0x00fefdfc, 0x00fffdfd, 0x00fdfefc, 0x00fdfefd, 0x00f9fdfd,
- 0x00fcfeff, 0x00fbfffd, 0x00faffff, 0x00fafefd, 0x00fbffff, 0x00fbfefd, 0x00fbfffe, 0x00fbfeff, 0x00fcfeff, 0x00fcffff, 0x00fcffff, 0x00fcfefd, 0x00fefefd, 0x00fffffe, 0x00fefefd, 0x00fdfefd,
- 0x00fffefd, 0x00fffdfc, 0x00fdfdfe, 0x00fcffff, 0x00f9fefd, 0x00fafffa, 0x00f7fdf3, 0x00f5feef, 0x00f7ffe2, 0x00f3ffdc, 0x00f9fee9, 0x00fbfcfd, 0x00fbfdfc, 0x00f9fcfe, 0x00fdfcff, 0x00fcfcfc,
- 0x00fefdf8, 0x00fdfcf5, 0x00fffcfc, 0x00fcfdfc, 0x00f8fdff, 0x00f7fdfc, 0x00fcfdfe, 0x00fcfdfe, 0x00fdfdff, 0x00fcfdfe, 0x00fefeff, 0x00fdfefe, 0x00fdfeff, 0x00fdffff, 0x00fbfdfe, 0x00fafcfd,
- 0x00fffdfe, 0x00fcfcfb, 0x00fdfefd, 0x00fcfdfb, 0x00fcfdfb, 0x00fcfdfc, 0x00fdfefd, 0x00fdfcfc, 0x00fefcfc, 0x00fcfcfc, 0x00fbfbfa, 0x00fbfaf7, 0x00f9faf6, 0x00f9fbf8, 0x00fbfbf9, 0x00fcfcf9,
- 0x00fdfdff, 0x00fafbfd, 0x00fcfbfd, 0x00f8fcfb, 0x00fafcfb, 0x00f9f9f6, 0x00f9f6f4, 0x00f6f4f5, 0x00f9f6f7, 0x00f7f5f5, 0x00f8f6f6, 0x00f5f5f5, 0x00f6f5f8, 0x00f0f0f3, 0x00eff0f2, 0x00f5f6f7,
- 0x00c5c7c6, 0x00535b61, 0x00101c2f, 0x00192b4e, 0x00334e8a, 0x004160a9, 0x004265bb, 0x003c63bf, 0x00335bbf, 0x003059bd, 0x003256bc, 0x003253b5, 0x00304d9f, 0x003c5da0, 0x006483c4, 0x005876b4,
- 0x003753a0, 0x003755a4, 0x003456a7, 0x002f55a3, 0x002f59a1, 0x003253a0, 0x003551a5, 0x0030529e, 0x003355a3, 0x00365aac, 0x00375bb5, 0x00375bbc, 0x003656b6, 0x003a58af, 0x00405fab, 0x004261a1,
- 0x005e5d5c, 0x00585856, 0x00333432, 0x00161815, 0x002a2b29, 0x003b3c3a, 0x002b2c2a, 0x00141412, 0x00131112, 0x00181817, 0x00141513, 0x00121717, 0x001a191e, 0x0014151b, 0x001f1c1e, 0x00211e1a,
- 0x00252216, 0x0025271c, 0x0020271f, 0x001f272a, 0x00283445, 0x00364475, 0x003b4c91, 0x002b3f89, 0x0017328a, 0x001e3c97, 0x002d4dac, 0x003251ae, 0x002e469e, 0x002c4293, 0x002d408c, 0x002d3e83,
- 0x00314989, 0x006677b7, 0x00828cd2, 0x005660a7, 0x003b499e, 0x00364fa8, 0x00395ab9, 0x003963c2, 0x003c6bc2, 0x003b6ebb, 0x003966b9, 0x002d59b2, 0x002a4a94, 0x00273c79, 0x0025305b, 0x001b1c34,
- 0x001a0d11, 0x001f1511, 0x00140f0a, 0x000f150f, 0x000e181d, 0x00171813, 0x001c190f, 0x0015150e, 0x0026272e, 0x0040454b, 0x00636a73, 0x00818991, 0x00b0b9c2, 0x00e0e7ec, 0x00faffff, 0x00f8fdfd,
- 0x00fcfdfc, 0x00fefef9, 0x00e9e7df, 0x008d8b7f, 0x00312e22, 0x00262316, 0x00656257, 0x00cfcdc4, 0x00ffffff, 0x00fbfefa, 0x00fcfdfc, 0x00f8fbf6, 0x00fefdfe, 0x00f9fafa, 0x00fcfefa, 0x008f9483,
- 0x0045552b, 0x00445725, 0x00435723, 0x00445828, 0x00435831, 0x00455d30, 0x00465f2e, 0x00475f30, 0x0048612d, 0x0048612e, 0x004a622f, 0x004a632e, 0x004b642d, 0x004b652d, 0x004d672d, 0x004e672d,
- 0x00516731, 0x00536936, 0x004e6434, 0x00516639, 0x00617050, 0x00a0ac95, 0x00a8b3a7, 0x00bbc4c3, 0x00b9bbc7, 0x00bdbfd1, 0x00bfc6d3, 0x00cddbd6, 0x009daba2, 0x006f7e73, 0x00c5d7c7, 0x00d5e8d2,
- 0x009fb394, 0x0061774e, 0x00607846, 0x00587337, 0x00607e3c, 0x005a7838, 0x005c7a3b, 0x005d7b38, 0x005d7c3b, 0x005d7c3b, 0x005e7c3c, 0x005d7c3b, 0x005d7c3b, 0x005d7c3a, 0x005e7c3b, 0x005e7c3c,
- 0x00607f3d, 0x00607f3d, 0x00617f3e, 0x00607f3d, 0x00607f3d, 0x00607f3d, 0x00607f3d, 0x0061803e, 0x00627f3f, 0x00617f3e, 0x00607e3e, 0x005f7e3e, 0x005f7e3e, 0x005e7e3e, 0x005e7d3d, 0x005d7d3d,
- 0x005f7d3f, 0x005e7d3e, 0x005d7d3c, 0x005c7d3b, 0x005c7d3c, 0x00587d3b, 0x00557e3a, 0x00577e3a, 0x005b7f3b, 0x005a7e3a, 0x005b7e3b, 0x005a7b3a, 0x005c7b3b, 0x005b7839, 0x005c7839, 0x005c7738,
- 0x00517a37, 0x00517a37, 0x00517939, 0x00517838, 0x00507636, 0x004f7433, 0x004f7331, 0x00507331, 0x004f7334, 0x00507131, 0x00536e33, 0x00576936, 0x00556b33, 0x00566a34, 0x00566a35, 0x00566a33,
- 0x00596732, 0x00566631, 0x0055632f, 0x0054612d, 0x0053612d, 0x0055602e, 0x00575d2e, 0x00575c2f, 0x00545a2d, 0x0053592d, 0x0052582d, 0x0052582d, 0x0050562c, 0x004f552b, 0x004d5329, 0x004b5228,
- 0x00514e21, 0x00504d20, 0x004f4c1e, 0x004f4920, 0x00504720, 0x00514523, 0x00514320, 0x0052421f, 0x00533f22, 0x00513e1e, 0x004f3b20, 0x004e3c23, 0x00827667, 0x00fcfaef, 0x00fdfdfc, 0x00fafdfc,
- 0x00fdf7fa, 0x00faf9fc, 0x00f0f3fd, 0x00b2c1d7, 0x007d95b6, 0x00bec6eb, 0x00eff1fb, 0x00edf5f9, 0x009ca1b5, 0x00666c9b, 0x005e66a8, 0x00535da6, 0x007489aa, 0x00a8bcd5, 0x0067799e, 0x006571af,
- 0x00dde7d7, 0x00deeff4, 0x00b2c6de, 0x0089a2cf, 0x006172a5, 0x00909ac1, 0x00e1eafe, 0x00d8dce8, 0x009da2bb, 0x008790b1, 0x009aa6c2, 0x00cddce5, 0x00d2e5f1, 0x00adbed9, 0x00899bbd, 0x005e729d,
- 0x006e7bb7, 0x008590ca, 0x006b73aa, 0x007175b1, 0x00a8a8dd, 0x009197bc, 0x008fa1c3, 0x007597ce, 0x003067b6, 0x00336ab7, 0x004071bf, 0x003865ad, 0x00224f95, 0x00265aa6, 0x00366cc1, 0x00306bc4,
- 0x004175d0, 0x004880d2, 0x004c81cd, 0x005289ce, 0x006192db, 0x005b86d2, 0x004e71bc, 0x007897da, 0x00afcaf9, 0x0090aac9, 0x00283f67, 0x0019396d, 0x001f3f6f, 0x00294973, 0x00466286, 0x004c637d,
- 0x00364246, 0x0039392e, 0x004d402b, 0x004f370f, 0x005b3409, 0x00805f23, 0x00bc9a62, 0x00d1ab7e, 0x00c69c74, 0x00b6915a, 0x009a7b36, 0x007d6515, 0x00645717, 0x005f5640, 0x0055505c, 0x004f4a77,
- 0x00265bb1, 0x002c60b6, 0x002f62bb, 0x003265bd, 0x00416fc1, 0x00507ac3, 0x006386c6, 0x007a96cc, 0x00acbbe2, 0x00c8daf5, 0x00e7f0ff, 0x00f3f5fb, 0x00ededf0, 0x00e8eaeb, 0x00eae9ea, 0x00dddbd6,
- 0x0094958b, 0x005f6355, 0x00545c4b, 0x00505c47, 0x004e5e46, 0x00535b49, 0x00a6aa9c, 0x00f3f6ed, 0x00fbfdfe, 0x00f9fcff, 0x00fefeff, 0x00fefeff, 0x00b0aca7, 0x003e362c, 0x00201808, 0x002b210e,
- 0x008f7872, 0x00e1decb, 0x00f4f4df, 0x00dbdebd, 0x00bb775a, 0x00ab2a13, 0x00c71607, 0x00e4150e, 0x00d11d1f, 0x00b52527, 0x00961719, 0x009d241e, 0x00cd462b, 0x00ee511f, 0x00f95214, 0x00f85718,
- 0x00ab6e7a, 0x006271b8, 0x001b54bf, 0x000148bc, 0x00304da4, 0x003460b9, 0x002e67c1, 0x002b6dc7, 0x002a6ecb, 0x002867c1, 0x00326ac0, 0x002251a2, 0x000e3284, 0x00183e96, 0x001943a1, 0x002656b8,
- 0x003773d0, 0x003771cb, 0x00336ac3, 0x003166bf, 0x002c63c1, 0x002863c2, 0x00225fb9, 0x00255eb1, 0x00395e9e, 0x004f6b9f, 0x00596698, 0x00424775, 0x00415396, 0x003754a2, 0x001f4096, 0x00183d94,
- 0x00142c7c, 0x00071b65, 0x0006145c, 0x000f1b64, 0x00151f72, 0x000c2466, 0x00223e7d, 0x00314c89, 0x00394a94, 0x004051a0, 0x00394aa0, 0x001d368d, 0x002a4fac, 0x00376ac5, 0x002c6bc5, 0x002b73cb,
- 0x003171e2, 0x004a71c2, 0x00716c9f, 0x009d627a, 0x00c6586b, 0x00a25e7b, 0x00685e88, 0x00326da2, 0x002f7bcf, 0x004671da, 0x00416bda, 0x002a72d6, 0x003076d3, 0x003f7dd4, 0x004d88d6, 0x005789ce,
- 0x005b7db6, 0x006380ad, 0x007a90b9, 0x006d819e, 0x00384660, 0x00161d24, 0x00120c0f, 0x00190e0e, 0x0030150e, 0x00411c10, 0x00522412, 0x005b2711, 0x006b2d17, 0x0075381e, 0x007e4127, 0x0081462d,
- 0x00884722, 0x00874d28, 0x00884f2e, 0x007d4b2d, 0x006a4128, 0x00573924, 0x004a3324, 0x00302217, 0x00615b55, 0x00cbcbc7, 0x00fbfcf9, 0x00f3fef5, 0x00fbfdfa, 0x00f2fcf5, 0x00d8dee6, 0x00727a94,
- 0x001e2365, 0x00242e81, 0x00212d8f, 0x00172c94, 0x000d2790, 0x000c2790, 0x000b248a, 0x00092189, 0x0010278f, 0x0010298e, 0x000f2a8c, 0x00122c8f, 0x00142c8f, 0x00172f91, 0x001a3493, 0x001b3894,
- 0x0021429f, 0x001e429d, 0x001c3c9b, 0x002c46a8, 0x00404cb4, 0x002b3aa2, 0x0011258e, 0x001d36a0, 0x001536a2, 0x000b2d99, 0x000a2390, 0x00071f82, 0x00222363, 0x00604d6c, 0x00b39193, 0x00c4957f,
- 0x00c28f6b, 0x00ba8d66, 0x00be9669, 0x00c69e74, 0x00c99d74, 0x00c99e75, 0x00d9a377, 0x00df9a66, 0x00cf845c, 0x00c49681, 0x00dabfbc, 0x00dad5dc, 0x00e6d8e3, 0x00e5ccdb, 0x00cca9bf, 0x00d3aece,
- 0x00f4d3e5, 0x00f2deeb, 0x00f9ecf5, 0x00ebe6ea, 0x00727074, 0x001c1419, 0x00110709, 0x00130b0c, 0x000c0f12, 0x00030f10, 0x00060f0d, 0x00060804, 0x00000101, 0x00030508, 0x0005050b, 0x0006090f,
- 0x00070810, 0x0005060c, 0x00020406, 0x00000202, 0x00000200, 0x00131214, 0x00807d87, 0x00b9b5cc, 0x00c9c3ee, 0x00cfc8f6, 0x00d2cbf9, 0x00d1cbf5, 0x00d1caee, 0x00cfc8ee, 0x00d0c8f1, 0x00cfc8f4,
- 0x00bdbebd, 0x00585757, 0x004d4d4d, 0x00565656, 0x00515151, 0x00535353, 0x00565656, 0x005a5959, 0x005c5c5c, 0x005c5c5c, 0x005c5c5c, 0x005a5a5a, 0x005d5d5d, 0x005a5a5a, 0x00585858, 0x00555555,
- 0x00545454, 0x00545454, 0x00545454, 0x00545454, 0x00545454, 0x00545454, 0x00545454, 0x00545454, 0x00545454, 0x00545454, 0x00555555, 0x00565656, 0x00565656, 0x00575757, 0x00575757, 0x00585858,
- 0x00525b5a, 0x00535b5c, 0x00545a60, 0x00555965, 0x00545767, 0x00525666, 0x00525864, 0x00525a62, 0x00565a5f, 0x005a5f61, 0x00575f5f, 0x00535e5b, 0x00575f5b, 0x005a625e, 0x00545855, 0x00636561,
- 0x0085807d, 0x00a09995, 0x00ad9d9b, 0x00a5928f, 0x00927e7c, 0x008896a2, 0x00b6d2ea, 0x00b0d3f3, 0x00b6d5fb, 0x009fbbeb, 0x00a9c3eb, 0x00b3caec, 0x0099b0db, 0x007b9ed0, 0x007dabdd, 0x0074aae8,
- 0x007f9ecd, 0x007992c5, 0x00889cce, 0x007d8cb9, 0x005c667e, 0x004f585d, 0x00566056, 0x0058604f, 0x00575c4d, 0x00595e51, 0x00585d56, 0x00555b55, 0x004e544e, 0x00464d49, 0x00404743, 0x003d433f,
- 0x003c423c, 0x003c413b, 0x003b403b, 0x0038403a, 0x00373e39, 0x00363b37, 0x00323633, 0x002d312e, 0x00232b26, 0x00212724, 0x001e2221, 0x001f2321, 0x00222625, 0x00232726, 0x00272929, 0x002d2d30,
- 0x00323333, 0x00393939, 0x00454344, 0x00565555, 0x006d6e6e, 0x00848584, 0x009a9a9a, 0x00afaeaf, 0x00c7c7c6, 0x00dadcda, 0x00e7e7e3, 0x00efebe8, 0x00f7f1f0, 0x00f9f6f4, 0x00fcf9f7, 0x00fcf8f9,
- 0x00fafbf8, 0x00fbfafa, 0x00fdfcff, 0x00fffdfd, 0x00fefdff, 0x00f9fafa, 0x00fcfdfc, 0x00fefefb, 0x00f9fcf9, 0x00fefefb, 0x00aaa9a6, 0x004c4c47, 0x0040403b, 0x00696a65, 0x00b0b1ae, 0x00e0e0df,
- 0x00edeaed, 0x00ede7ec, 0x00f2e8ee, 0x00f4eaf0, 0x00f5edf1, 0x00f3edee, 0x00f4eded, 0x00f3eceb, 0x00f1f0eb, 0x00eef2ec, 0x00ebefe6, 0x00eef0e2, 0x00f0f3e5, 0x00f1f3e8, 0x00f4f4eb, 0x00f5f6ed,
- 0x00eef1e7, 0x00ebeee5, 0x00eceee8, 0x00eef0eb, 0x00f0f4ee, 0x00eef4f1, 0x00ebf0f0, 0x00ebeff0, 0x00e9ebeb, 0x00eaeceb, 0x00eaedec, 0x00eaedeb, 0x00f0f0ed, 0x00f2f1ee, 0x00f7f5f3, 0x00fcf9f7,
- 0x00f7f5f1, 0x00f5f0ef, 0x00f3eeef, 0x00f0ebee, 0x00f0ecef, 0x00edebeb, 0x00efe9eb, 0x00efe9eb, 0x00f1ebe6, 0x00f4efe8, 0x00faf5f1, 0x00f3f0ef, 0x00f0eff0, 0x00f3f3f3, 0x00edeeef, 0x00e8edef,
- 0x00e3ecea, 0x00eaeeee, 0x00e9eced, 0x00eeecef, 0x00ecebea, 0x00e5ebea, 0x00e6ecea, 0x00e7ebed, 0x00e7ebee, 0x00e8ebed, 0x00eaeded, 0x00eaecec, 0x00ececeb, 0x00ecebea, 0x00eceaea, 0x00efeded,
- 0x00f1f0df, 0x00f0f0e6, 0x00edeeea, 0x00e7eded, 0x00e7f0f6, 0x00e7f3f9, 0x00e3f1f5, 0x00e6f5fb, 0x00ecf7f7, 0x00e9f4f3, 0x00e9eeef, 0x00eaebef, 0x00ebf0f6, 0x00f1f5fe, 0x00f1eff7, 0x00efe9ec,
- 0x00f6e9d8, 0x00fdefdf, 0x00f9ede1, 0x00f3ede7, 0x00f3f9fa, 0x00f5fbfa, 0x00f9fafc, 0x00f6f7f8, 0x00f8faf9, 0x00f5f7f6, 0x00ebecec, 0x00e9ebea, 0x00ebedec, 0x00eaecec, 0x00ebeeee, 0x00eaeced,
- 0x00ebebe8, 0x00ebece9, 0x00eef0ec, 0x00f0f1ed, 0x00ebece9, 0x00ebece8, 0x00ebebe8, 0x00ecece9, 0x00ededec, 0x00edefef, 0x00ededeb, 0x00eeece7, 0x00f0efea, 0x00f2f1ed, 0x00f2f1ee, 0x00eeedeb,
- 0x00ecece9, 0x00e7e9e8, 0x00e9ecec, 0x00e9eaeb, 0x00eaecec, 0x00edebe8, 0x00efebe7, 0x00eee8e8, 0x00f0ecec, 0x00ebe8e8, 0x00f8f6f5, 0x00fbfaf9, 0x00fbfbfb, 0x00fdfefd, 0x00f7f8f7, 0x00fcfefd,
- 0x00cbd3cd, 0x00717a7d, 0x003f4a54, 0x0053607a, 0x00576d99, 0x004c649e, 0x00435fa4, 0x00405fad, 0x004166be, 0x004065c0, 0x003d60c4, 0x003b56be, 0x003551a9, 0x003a55a0, 0x006682ca, 0x005c76bd,
- 0x00344f9e, 0x003957aa, 0x003b59ad, 0x003255a9, 0x00345aa6, 0x003157a9, 0x003356ac, 0x003359a9, 0x002e56a5, 0x003057ac, 0x002e57b2, 0x003057b9, 0x00365abd, 0x00365bb5, 0x003a5fb0, 0x003e64ab,
- 0x005c5b58, 0x005a5a57, 0x00363733, 0x00171814, 0x00292a26, 0x0040413d, 0x002b2c28, 0x000c0d0a, 0x00090a06, 0x000d0d0a, 0x00080907, 0x000b0e0c, 0x00131419, 0x00110f15, 0x001c1b1d, 0x00201e1b,
- 0x001c200e, 0x001f2414, 0x001d2316, 0x00222823, 0x00222a35, 0x001d2c53, 0x00263d77, 0x00273f80, 0x001b3888, 0x001e3e95, 0x002446a0, 0x003255af, 0x0029489e, 0x001f3d91, 0x00294190, 0x00213783,
- 0x00254280, 0x005968a6, 0x00898fd0, 0x005a5a9d, 0x003e489a, 0x002f459e, 0x003153b1, 0x003059b8, 0x003b64b2, 0x004569ad, 0x0042599b, 0x003d4989, 0x00383663, 0x00423858, 0x003e2b3a, 0x00260e10,
- 0x001c0d07, 0x00231914, 0x001a1715, 0x00192023, 0x001c252d, 0x00151d1c, 0x001a211d, 0x00121a17, 0x00262f2d, 0x00444f4a, 0x00545f5d, 0x007a8580, 0x00a9b2af, 0x00dce3dd, 0x00fafef8, 0x00f9fdf8,
- 0x00f9faf8, 0x00fefff8, 0x00ebeae1, 0x00a5a294, 0x00555142, 0x004f4c3b, 0x00898578, 0x00dcd6cd, 0x00fdfdfd, 0x00fcfefb, 0x00fcfdfb, 0x00fafff5, 0x00fefcfe, 0x00fafdfb, 0x00fafdf7, 0x00868c7c,
- 0x00425528, 0x00425724, 0x00415823, 0x00425927, 0x00425a31, 0x00435e2e, 0x0044602c, 0x0045602e, 0x0046622b, 0x0047622c, 0x0049622d, 0x0049632c, 0x0049642c, 0x004a652b, 0x004b662a, 0x004c672c,
- 0x004f662d, 0x00536935, 0x004d642f, 0x004d6334, 0x005b6c45, 0x00758367, 0x00919e8b, 0x00afb9b4, 0x00b5bcc2, 0x00a5abba, 0x00cad1df, 0x00c3cdd6, 0x00c3cdd0, 0x00c5d0d3, 0x00d8e4e3, 0x00d7e5de,
- 0x00a1b69c, 0x00647a57, 0x0060784a, 0x005a753d, 0x005c7a3a, 0x005a7938, 0x005b7939, 0x005c7936, 0x005b7c38, 0x005c7b39, 0x005d7b3a, 0x005c7b39, 0x005d7b39, 0x005d7c39, 0x005e7d3a, 0x00607d3c,
- 0x005f7e3c, 0x00607f3c, 0x00607f3d, 0x00607f3d, 0x00607f3d, 0x00617f3d, 0x0061803e, 0x0062813f, 0x0062813e, 0x0062813e, 0x0061803e, 0x0060803e, 0x0061813f, 0x0060813f, 0x005f813f, 0x005f8240,
- 0x0061803e, 0x0061803e, 0x0060803d, 0x005f803d, 0x005f803d, 0x005c7f3d, 0x005b7f3c, 0x005d7f3c, 0x005f7f3c, 0x005f7f3d, 0x005f7d3c, 0x005f7d3d, 0x005e7b3a, 0x005f7b3a, 0x005f7a38, 0x005f7a38,
- 0x00547c37, 0x00557c38, 0x00567b3a, 0x00577a3a, 0x00567938, 0x00547735, 0x00527634, 0x00527735, 0x00547333, 0x00537432, 0x00527233, 0x00517036, 0x00507235, 0x00517035, 0x00517035, 0x00527035,
- 0x004f6d31, 0x004f6c31, 0x00506b31, 0x00506a31, 0x004f6a31, 0x00506931, 0x00506631, 0x00506431, 0x004d622d, 0x004e622e, 0x004c602f, 0x004b5f2f, 0x004a5d2d, 0x00495c2d, 0x00475a2b, 0x0046592b,
- 0x00425720, 0x00435621, 0x00445721, 0x00455723, 0x00475525, 0x00475325, 0x00475123, 0x00474e22, 0x00484b22, 0x00484b23, 0x00474a26, 0x0045412a, 0x00878a7d, 0x00f8fdfa, 0x00f7fdfd, 0x00f9feff,
- 0x00f4fcfb, 0x00f5fcf9, 0x00d4e3ef, 0x006b80a5, 0x007297c8, 0x00d8def5, 0x00fdfafb, 0x00fafaf4, 0x00d9e5e9, 0x00ccd4eb, 0x00b0b8e1, 0x00959bcb, 0x00a0abb4, 0x00b8c3c8, 0x00838b9c, 0x008a8cbe,
- 0x00b1cedf, 0x0086a9c9, 0x005d80b4, 0x004670b0, 0x00486cb6, 0x007190ca, 0x00a4bdec, 0x009cadda, 0x005c72a5, 0x00455f96, 0x00485e99, 0x006672b1, 0x007882ca, 0x006570bf, 0x00545fb3, 0x004750a8,
- 0x0039469b, 0x004751a7, 0x005961b9, 0x006970c4, 0x008487d6, 0x008e99ca, 0x0097abd7, 0x006889bd, 0x002962a7, 0x002e6bb5, 0x00346cb7, 0x00325ea5, 0x00293f7d, 0x00294a90, 0x003968b7, 0x003275d1,
- 0x003e74c8, 0x00437ac9, 0x004c7dca, 0x00588ed6, 0x006897e4, 0x005683cf, 0x005379c2, 0x008eb0ef, 0x00accbf5, 0x00a8c3e1, 0x0058759a, 0x001b3a6c, 0x001e4275, 0x0025497a, 0x00406492, 0x0057759c,
- 0x00495f6e, 0x00414945, 0x00483f2a, 0x00574116, 0x00906930, 0x00c39958, 0x00d2a367, 0x00d29f6f, 0x00d9a781, 0x00caa071, 0x009f7f46, 0x00756120, 0x00615731, 0x00655f65, 0x004e4874, 0x00484092,
- 0x002857a2, 0x002c5ba3, 0x003161a9, 0x003466ae, 0x003a6db6, 0x004275bd, 0x004f80c5, 0x005f8ccd, 0x0073a0d5, 0x008fbceb, 0x00bfe1fa, 0x00e2eff8, 0x00ecf4fd, 0x00e5e9f9, 0x00ebecf7, 0x00e3e4ea,
- 0x0099a197, 0x0051594c, 0x00394433, 0x00394630, 0x0037472e, 0x003b4432, 0x009b9d90, 0x00f2f3ec, 0x00fafefb, 0x00f9fdfd, 0x00ffffff, 0x00fcfcfc, 0x00b3afab, 0x003c332b, 0x00251b0e, 0x002d2212,
- 0x00933a32, 0x00c67168, 0x00e78c80, 0x00dd7e68, 0x00c73f1e, 0x00b61f03, 0x00c11c00, 0x00cc2301, 0x00b2290d, 0x00901907, 0x007b0a00, 0x00841502, 0x00c0441d, 0x00eb561b, 0x00f8550e, 0x00fc5709,
- 0x00ba6c59, 0x006e6d9b, 0x002458b6, 0x000051c5, 0x00205ac2, 0x002d66c5, 0x00316ac6, 0x002c6dca, 0x00276dcb, 0x002b6bc5, 0x00346ec3, 0x002354a3, 0x000c3182, 0x001b429a, 0x001e49a9, 0x002858be,
- 0x002e71cb, 0x003573cc, 0x00326bc3, 0x003268bf, 0x002e65c3, 0x002663c0, 0x002565bf, 0x002b67bc, 0x00335ea4, 0x005573b0, 0x005666a2, 0x00494c8b, 0x004d61a8, 0x003c58a8, 0x00254a9c, 0x0021489b,
- 0x00103278, 0x000c2566, 0x000d1a59, 0x00132156, 0x00162759, 0x00183b6d, 0x0041679c, 0x004a6ca4, 0x0040599b, 0x003b579d, 0x002f4d99, 0x00284d9b, 0x003b6cc0, 0x003a77cc, 0x003179cf, 0x002a7ace,
- 0x00227bde, 0x00237ada, 0x002f79d8, 0x004672d1, 0x007067c1, 0x005d65aa, 0x004569a2, 0x002977a5, 0x002b78c0, 0x00416bd0, 0x003f65d4, 0x00256acf, 0x00276acc, 0x003071d1, 0x003975d0, 0x003671ca,
- 0x003772bf, 0x004176bd, 0x005081c8, 0x006897d8, 0x006d98d4, 0x00526b82, 0x00162024, 0x00111110, 0x00312016, 0x003f2210, 0x00542d11, 0x005b2c0a, 0x006c320e, 0x00763b17, 0x00814524, 0x00824629,
- 0x0081431c, 0x00814823, 0x00804c2b, 0x0076462b, 0x005f3d26, 0x004e3321, 0x003e2c1e, 0x00241911, 0x0052514b, 0x00b9b8b4, 0x00fdfdfe, 0x00fcfcfb, 0x00fbf9fd, 0x00fdfefd, 0x00e5e5f0, 0x0080809a,
- 0x0010164b, 0x00111a5f, 0x00121d72, 0x000c1d77, 0x000f257d, 0x000a1f79, 0x000b207b, 0x000d1f7b, 0x000d1f7d, 0x000b1f7a, 0x00091f76, 0x00081f73, 0x00091f73, 0x000a1f74, 0x000a1e74, 0x000b1f73,
- 0x0007206d, 0x00091c71, 0x000e2079, 0x00132282, 0x0011298b, 0x00071f80, 0x000c2385, 0x001a288d, 0x001c2a8c, 0x00112486, 0x00091d81, 0x00031e85, 0x001b2063, 0x004d3a60, 0x009e7b80, 0x00bd8d77,
- 0x00b4885c, 0x00ab8252, 0x00ac8452, 0x00b68d5f, 0x00c49567, 0x00cb9f6b, 0x00cda374, 0x00d1a886, 0x00c29076, 0x00b57f62, 0x00c8957b, 0x00dab7a4, 0x00efe0eb, 0x00f3d2df, 0x00ce99a0, 0x00f19a97,
- 0x00edd8e9, 0x00e4d3e3, 0x00f0e3f0, 0x00f4f1f8, 0x00aaa5ab, 0x00393337, 0x000c0407, 0x001a0e14, 0x00080c0d, 0x0005100f, 0x00050e0c, 0x00080a08, 0x00040605, 0x00030609, 0x00080910, 0x0006080f,
- 0x00000206, 0x00020308, 0x00020407, 0x00000304, 0x00000101, 0x0009080a, 0x0068676d, 0x00a7a3b7, 0x00bcb5de, 0x00c7bfec, 0x00cdc6f0, 0x00d1ccf2, 0x00d2ccee, 0x00d3cdf2, 0x00d2cbf5, 0x00d1cafa,
- 0x00acacac, 0x00090808, 0x00050606, 0x00050706, 0x00080607, 0x00090808, 0x00080808, 0x000a0a0a, 0x000d0d0d, 0x000d0d0d, 0x000c0c0c, 0x000b0b0b, 0x000e0e0e, 0x000d0d0d, 0x00090909, 0x00070707,
- 0x00070707, 0x00070707, 0x00070707, 0x00070707, 0x00070707, 0x00070707, 0x00070707, 0x00080808, 0x00070707, 0x00070707, 0x00070707, 0x00070707, 0x00080808, 0x00090909, 0x000a0a0a, 0x000a0a0a,
- 0x00080e10, 0x00070e11, 0x00070e16, 0x00070d1b, 0x00070c20, 0x00060b20, 0x00070c1e, 0x00080e1d, 0x000b1118, 0x000a1215, 0x000a1416, 0x00071414, 0x000a1312, 0x00091110, 0x000d1212, 0x00222523,
- 0x00554e50, 0x004b4343, 0x004f4543, 0x00584643, 0x006e5f5c, 0x007b8594, 0x0097b2d1, 0x0084a4d6, 0x007598e9, 0x005f85d8, 0x006a90e0, 0x007ba2e5, 0x006b93d2, 0x004d7fc3, 0x00467ecc, 0x00417ed8,
- 0x004c77c5, 0x004a6fbd, 0x004362ae, 0x00526bad, 0x0037486d, 0x0013212c, 0x000d1912, 0x00101907, 0x00151a08, 0x00161a0a, 0x00161b0f, 0x00131b13, 0x00121a13, 0x000b130d, 0x00050e08, 0x00030c06,
- 0x0008110a, 0x000d140d, 0x00121a13, 0x00131c15, 0x00151a15, 0x00151a16, 0x00121715, 0x000d1312, 0x000b110e, 0x00070d0b, 0x00080d0b, 0x000d1210, 0x00121615, 0x00111514, 0x000f1211, 0x00101313,
- 0x00090a0a, 0x00080908, 0x00040505, 0x00060707, 0x00111111, 0x001b1b1b, 0x00292828, 0x00393838, 0x004d4a4a, 0x00595a59, 0x006d6967, 0x00847c77, 0x009f9692, 0x00b8afaa, 0x00d2c9c4, 0x00e0d8d4,
- 0x00e7e2de, 0x00f0e9e8, 0x00f7f3f0, 0x00f9f6f4, 0x00fdf9f8, 0x00fcfcfc, 0x00fbfdfa, 0x00fdfcfb, 0x00fcfefc, 0x00f4f6f3, 0x009e9f9b, 0x004f504b, 0x0043443f, 0x00555551, 0x005a5958, 0x006f6d6e,
- 0x007e6c72, 0x007a676d, 0x00867077, 0x00967d84, 0x00997f84, 0x00977f81, 0x00a28e8c, 0x00a2908c, 0x00958d84, 0x00918e82, 0x008e907e, 0x0090947d, 0x0092957e, 0x00939581, 0x009fa08e, 0x00aaac9c,
- 0x008e8f7f, 0x0076786b, 0x006f7167, 0x007c7e73, 0x008b8d84, 0x008b8e8a, 0x007c7e7f, 0x00747575, 0x006d6a69, 0x006f6b6b, 0x00777372, 0x007d7874, 0x00908781, 0x009e948d, 0x00bab1a9, 0x00d1c7c0,
- 0x00cebbb4, 0x00bdaba5, 0x009c8d89, 0x00877778, 0x00867479, 0x00837376, 0x00796a6e, 0x00776b6e, 0x00857573, 0x00a39894, 0x00d2c7c3, 0x00beb3b0, 0x00a8a09e, 0x009a9794, 0x007e7f7c, 0x006c716d,
- 0x00747470, 0x007b7774, 0x007e7874, 0x0083766e, 0x00776861, 0x00666462, 0x00626767, 0x0062686c, 0x0066676e, 0x0067686e, 0x0068696d, 0x00676769, 0x006c6767, 0x006d6864, 0x00747069, 0x0088837a,
- 0x009e9478, 0x0099917e, 0x008c887e, 0x007c7d83, 0x00868aab, 0x009199cb, 0x00959dd8, 0x00989ee2, 0x009da1ea, 0x009798e4, 0x00918fc9, 0x00878598, 0x00878aa0, 0x00a1a5b8, 0x00a7a2ae, 0x00988783,
- 0x00c0937f, 0x00d4a58d, 0x00c0957f, 0x00ad9285, 0x00bebdbe, 0x00d4d6d6, 0x00dbdadc, 0x00d7d5d7, 0x00d3d3d4, 0x00b3b3b3, 0x00777777, 0x00686867, 0x00686868, 0x006b6a6b, 0x006b6b6d, 0x0069686b,
- 0x00686865, 0x00686966, 0x00767774, 0x007e7f7d, 0x00757573, 0x00696b68, 0x00676864, 0x00696865, 0x00737471, 0x00787978, 0x007d7876, 0x00888079, 0x00958d85, 0x00938d86, 0x008d8783, 0x00837f7b,
- 0x006f6d6b, 0x00656464, 0x00676768, 0x00666769, 0x00656567, 0x006f6965, 0x00746b62, 0x00736b63, 0x007b756f, 0x00847f7b, 0x00b4b1ad, 0x00edece8, 0x00fefdfb, 0x00fefffe, 0x00fcfcfb, 0x00fdfdff,
- 0x00d2d8d7, 0x00858b8d, 0x006b7379, 0x008c94a4, 0x009da9c6, 0x008f9dc4, 0x006476a7, 0x00425891, 0x003e5ba2, 0x003d5ba7, 0x003654aa, 0x003952b5, 0x00334b9f, 0x003a509b, 0x006177bc, 0x005b70b5,
- 0x00334a98, 0x003a51a6, 0x003e57ad, 0x003654aa, 0x003556a8, 0x003658af, 0x003559b1, 0x00325aab, 0x003058a5, 0x003156a7, 0x002f55aa, 0x003154af, 0x003d5eb9, 0x004062b4, 0x003f63a9, 0x003a5f9c,
- 0x005d5d59, 0x005a5a56, 0x00383834, 0x00171713, 0x002a2b26, 0x00474843, 0x00353732, 0x00181a15, 0x0013140f, 0x00151612, 0x000e100b, 0x00171a13, 0x001d1c1f, 0x0016151b, 0x00212024, 0x00242121,
- 0x00242a16, 0x00272a18, 0x00222414, 0x00272821, 0x0024262f, 0x0019243f, 0x0025375e, 0x002e3d6c, 0x00243771, 0x0026397c, 0x0030428c, 0x00384f9c, 0x00354d9f, 0x00284496, 0x00284494, 0x001e3c8d,
- 0x00223c7b, 0x004f5d98, 0x008184bf, 0x005a5a94, 0x003e4894, 0x0031499e, 0x002b4fa7, 0x002950ab, 0x00385498, 0x0049578e, 0x00514a78, 0x00533458, 0x00552d3f, 0x007b4f56, 0x00784e4b, 0x00401c15,
- 0x001c120e, 0x0013141a, 0x00313c4b, 0x0055677a, 0x005d7187, 0x00415968, 0x00233c49, 0x00132b39, 0x00253a40, 0x00384c4c, 0x004e605e, 0x00798981, 0x00a8b2ab, 0x00dce1d9, 0x00fbfef6, 0x00fdfef7,
- 0x00fcfdfb, 0x00fefffa, 0x00f2f1e7, 0x00b9b4a6, 0x0077715d, 0x0077715c, 0x00a6a090, 0x00ece5dc, 0x00fffeff, 0x00fffefd, 0x00fcfcfb, 0x00fdfffb, 0x00fcfcfc, 0x00fbfefc, 0x00f5fcf3, 0x00848e77,
- 0x00435325, 0x00415622, 0x00425923, 0x00425927, 0x00445a31, 0x00445e2d, 0x0045602a, 0x0044602a, 0x0047622b, 0x0047632b, 0x0047642a, 0x0047642a, 0x0048642c, 0x0049652c, 0x004a672b, 0x004a682c,
- 0x004e692e, 0x00516c33, 0x004f6b30, 0x004f6931, 0x00556b3a, 0x00576a42, 0x006a7b5d, 0x0093a18f, 0x00b2bfb9, 0x00bbc6c7, 0x00bfc8ce, 0x00d1d7e3, 0x00dbe1ec, 0x00d6dce6, 0x00dae1e8, 0x00d6e0e2,
- 0x00b1c4b2, 0x006b8263, 0x005a744a, 0x005b7743, 0x005c7a3c, 0x005f7e3c, 0x005c7a39, 0x005c7a36, 0x005e7d3a, 0x005e7d3a, 0x005d7d39, 0x005d7d38, 0x005e7c3a, 0x005f7c3b, 0x005f7e3a, 0x00607f3b,
- 0x00607f3d, 0x00607f3d, 0x00607f3d, 0x00617f3d, 0x0061803e, 0x0062803e, 0x0062813f, 0x0063823f, 0x0061823e, 0x0062813e, 0x0061803d, 0x005f813c, 0x0061813e, 0x0061813e, 0x0061813d, 0x0061813e,
- 0x0061803a, 0x00607f3a, 0x005f7f3c, 0x005e803c, 0x00607f3d, 0x00607d3b, 0x005f7d3b, 0x00607e3c, 0x00617c3c, 0x00617c3c, 0x00617c3c, 0x00627c3b, 0x00617b3a, 0x00617b39, 0x00607a38, 0x00607a38,
- 0x005a7b39, 0x005a7a39, 0x005c7a3a, 0x005d7a3a, 0x005c7939, 0x00597737, 0x00577636, 0x00567635, 0x00577535, 0x00577534, 0x00557434, 0x00517437, 0x00527537, 0x00527437, 0x00527235, 0x00537236,
- 0x00516f34, 0x00516f34, 0x00516e34, 0x00506d33, 0x00516c32, 0x00506b31, 0x004f6931, 0x004f6831, 0x004c662f, 0x004d6730, 0x004b642f, 0x0049622f, 0x0047602e, 0x00475f2e, 0x00445d2c, 0x00445c2c,
- 0x00415f25, 0x00415e26, 0x00415e26, 0x00415d26, 0x00425a29, 0x00405828, 0x003e5526, 0x003e5325, 0x003f5225, 0x003c5023, 0x003e4c27, 0x00454731, 0x008d938b, 0x00f5fefc, 0x00f4fefe, 0x00f4fffe,
- 0x00f8fcff, 0x00f5fdfd, 0x00c8d9e8, 0x005e7ba4, 0x005982ba, 0x00b9c1de, 0x00f6effa, 0x00e1e6eb, 0x00d6e5f8, 0x00dcebfa, 0x00e1f1fc, 0x00dde4fc, 0x00e0e1ea, 0x00e0e2e6, 0x00dadbea, 0x00bcbcda,
- 0x00758dce, 0x00496aae, 0x00395dad, 0x00426dc2, 0x00486fca, 0x004d6ec2, 0x00546ebe, 0x004a5ea7, 0x0038509d, 0x003e5ca9, 0x00455cab, 0x005059a1, 0x005159a1, 0x004e5a9f, 0x006373b2, 0x006f7eba,
- 0x00768bbd, 0x008a9ec7, 0x00a3b9da, 0x00a8c1d9, 0x00a8bed2, 0x009eb4dc, 0x007089bf, 0x004f71a7, 0x002e67a9, 0x002564b0, 0x00326bba, 0x00375ca5, 0x0035396e, 0x0037447e, 0x003e60a5, 0x002e6bc1,
- 0x004275c6, 0x004375c2, 0x004d7dca, 0x005c8fda, 0x006393e2, 0x005986d6, 0x005e8ad4, 0x008eb7f7, 0x00a9cdf9, 0x00b8d9f7, 0x0088a9d0, 0x00315193, 0x00193a82, 0x0024458b, 0x0030508e, 0x004c67a1,
- 0x0068769a, 0x006b6976, 0x006a5c54, 0x0084684d, 0x00c49b6a, 0x00d9a76d, 0x00d8a66a, 0x00dca874, 0x00d6a67a, 0x00b79166, 0x008e724a, 0x006c5a37, 0x005f5856, 0x005a5a7a, 0x00414482, 0x003a3e99,
- 0x002e569b, 0x002f589a, 0x00335e9c, 0x003765a0, 0x00396aac, 0x003b6eb8, 0x004477c3, 0x005186d1, 0x005e97d4, 0x006faae1, 0x0098c6f2, 0x00c6dcf7, 0x00dff0fe, 0x00e4f2fd, 0x00e5eefc, 0x00dae4ef,
- 0x00a2aeac, 0x004d5852, 0x00263326, 0x00273521, 0x0024351c, 0x002c3522, 0x00939587, 0x00f1f1e9, 0x00f9fefb, 0x00f9fffe, 0x00fcfefe, 0x00fcfcfd, 0x00b2aeaa, 0x003c332b, 0x00271b0f, 0x002f2213,
- 0x00762919, 0x00a14333, 0x00b84138, 0x00c13329, 0x00cd2310, 0x00c51c04, 0x00b92000, 0x00ac2500, 0x00832005, 0x00671600, 0x006b1704, 0x00861d01, 0x009f2805, 0x00cd430b, 0x00f25d1c, 0x00f45710,
- 0x00c96648, 0x00896579, 0x00455694, 0x001a55b4, 0x001964d2, 0x002c6bca, 0x00336fc9, 0x003071cf, 0x00296fcc, 0x002b6bc5, 0x00326bc2, 0x002254a5, 0x000b3084, 0x0019409a, 0x001f4cac, 0x002556bc,
- 0x002b72cc, 0x003275cf, 0x002e6bc4, 0x003169c0, 0x002e66c3, 0x002763c1, 0x002a6bc6, 0x002f6dc6, 0x002453a0, 0x004c6fb4, 0x00738bcf, 0x006a78c6, 0x006880ca, 0x005272bb, 0x003d64ab, 0x00416aae,
- 0x004660a3, 0x00465d98, 0x005b70a5, 0x006c81af, 0x005f789e, 0x00496d9e, 0x00365f97, 0x001b447e, 0x00102f70, 0x000f3377, 0x001e478f, 0x002e5fa8, 0x003d76c6, 0x003c7dcf, 0x00357ace, 0x002f79cd,
- 0x003e78c0, 0x003179cc, 0x002d78db, 0x002c77e5, 0x003c6cde, 0x003c73cc, 0x003476bf, 0x002b7ebb, 0x002a7dd1, 0x003274dd, 0x00346ddb, 0x00316ccc, 0x00326ecd, 0x003571d0, 0x003573d0, 0x003572d2,
- 0x003576d5, 0x003071c8, 0x003373c7, 0x003d7dce, 0x005995e3, 0x006d98c4, 0x00526f84, 0x00233644, 0x00201b1c, 0x003c291d, 0x00523119, 0x00613616, 0x006e3614, 0x00743a16, 0x007b3d1d, 0x007c3f1f,
- 0x007e3f1d, 0x007c4321, 0x00794426, 0x006d3f27, 0x00533321, 0x00442c1f, 0x0035241b, 0x001e140d, 0x00474440, 0x00aeaba8, 0x00fffdfe, 0x00fef8fe, 0x00fff7fe, 0x00fefdfe, 0x00ede9f3, 0x008d8ba0,
- 0x0015174a, 0x00131855, 0x00141c63, 0x00121d67, 0x0016246d, 0x00121e6e, 0x00111e70, 0x00121e6f, 0x000d1d6e, 0x000e1d6d, 0x000f1d6d, 0x000d1c69, 0x000d1e6a, 0x000d1e6a, 0x000c1c68, 0x000d1c67,
- 0x000b1c64, 0x00121566, 0x00131467, 0x00181a6f, 0x00092275, 0x00092173, 0x000c1d71, 0x001b1a72, 0x001e1b6f, 0x00161f6f, 0x000e1d76, 0x00061c7e, 0x001c1b59, 0x004e3653, 0x00997571, 0x00b5876b,
- 0x00b08152, 0x00a57948, 0x00a17642, 0x00a77e4a, 0x00b58955, 0x00c09562, 0x00bc986d, 0x00b69a81, 0x00b68f78, 0x00bc8460, 0x00ca8c68, 0x00dba88b, 0x00f6dfe4, 0x00fcd6d6, 0x00d79188, 0x00f5836b,
- 0x00d9b8c6, 0x00d8c2d0, 0x00f6e9f2, 0x00fdf7ff, 0x00ccc8d2, 0x005c535d, 0x000f040f, 0x00140711, 0x00060707, 0x00050e09, 0x0009120c, 0x000e120e, 0x000e1010, 0x00121417, 0x0018191e, 0x000b0b12,
- 0x00010108, 0x00010006, 0x00010305, 0x00000101, 0x00010100, 0x00020101, 0x004e4d52, 0x009997aa, 0x00b7afd6, 0x00bcb3e0, 0x00c4bde8, 0x00c9c4eb, 0x00d2cbef, 0x00d7d1f7, 0x00d6d1f9, 0x00d4cffd,
- 0x00ada9aa, 0x00030102, 0x00030404, 0x00000100, 0x00040203, 0x00010000, 0x00000201, 0x00020504, 0x00090909, 0x000a0a0a, 0x00080808, 0x00080808, 0x00090909, 0x00090909, 0x00050505, 0x00030303,
- 0x00060606, 0x00050505, 0x00050505, 0x00050505, 0x00050505, 0x00050505, 0x00050505, 0x00050505, 0x00070707, 0x00060606, 0x00050505, 0x00050505, 0x00050505, 0x00050505, 0x00060606, 0x00060606,
- 0x00040d13, 0x00040d14, 0x00050e18, 0x00060f1d, 0x00070e22, 0x00060d23, 0x00050c21, 0x00050c1f, 0x00060e18, 0x00060f14, 0x00050f13, 0x00051215, 0x000b1416, 0x00091111, 0x000c1212, 0x00222523,
- 0x00383537, 0x002b2325, 0x001d1814, 0x001c0f0d, 0x003e312d, 0x00666872, 0x008295ab, 0x006b87b6, 0x004971ce, 0x004170ce, 0x004d7fdb, 0x004f82d5, 0x004b7fcb, 0x00437bcc, 0x00407ed5, 0x003d7be0,
- 0x003f74d5, 0x004171ce, 0x003864ba, 0x00486db8, 0x0046618e, 0x00203447, 0x00071616, 0x00071001, 0x0011150a, 0x00121309, 0x000e110a, 0x0009120b, 0x00071009, 0x00060f07, 0x00030d04, 0x00020d04,
- 0x000d120f, 0x00111813, 0x00161f18, 0x00162219, 0x00171f18, 0x00191f1a, 0x00181f1c, 0x00161d1c, 0x00181a1b, 0x000f1413, 0x000b100e, 0x000d1210, 0x00171c1b, 0x001b201e, 0x001c201e, 0x001c2420,
- 0x001f1d1e, 0x00171617, 0x000e0e0e, 0x000b0b0b, 0x000b0b0b, 0x000a0a0a, 0x000a0b0b, 0x000a0d0c, 0x00100f11, 0x000d0e0f, 0x000e0b0b, 0x0016100c, 0x00231e1a, 0x002a2320, 0x0039312d, 0x0044413b,
- 0x00685f5f, 0x007e7273, 0x00928e89, 0x00a6a29f, 0x00c2beba, 0x00d8d8d4, 0x00e9ede8, 0x00eeeeec, 0x00f9f5f8, 0x00e3e1e2, 0x008e8e8d, 0x004f504e, 0x004a4b48, 0x00464844, 0x0011130f, 0x000c0f0b,
- 0x001a0509, 0x00180105, 0x0024090d, 0x00321417, 0x00361718, 0x003f2420, 0x005d463e, 0x00635045, 0x004b4334, 0x003f3e2c, 0x0040422c, 0x00494a32, 0x004b4933, 0x00484a35, 0x00565743, 0x00666655,
- 0x003a362c, 0x0013120c, 0x00070700, 0x0014150a, 0x00212017, 0x001d1d19, 0x000f100d, 0x000b0b09, 0x00110909, 0x0019110e, 0x0029221b, 0x003b332a, 0x004d4037, 0x005b4c42, 0x007b6d61, 0x00a09183,
- 0x00b1998d, 0x00a48d81, 0x0069554b, 0x003c2825, 0x00261314, 0x00221312, 0x00110404, 0x000d0503, 0x001a0f10, 0x004b4341, 0x009a928e, 0x0090817c, 0x006d645f, 0x00544d49, 0x002c2c24, 0x00181a11,
- 0x0028221e, 0x00312722, 0x003c2f23, 0x003f2b1b, 0x00250e02, 0x00090301, 0x00010101, 0x00000101, 0x00020007, 0x00040208, 0x00010004, 0x00060305, 0x00191111, 0x001d140e, 0x00231b11, 0x0042392c,
- 0x00645433, 0x00574b35, 0x00524a3f, 0x00535258, 0x0063668b, 0x005f679f, 0x00575ea1, 0x005054a4, 0x004f4ca9, 0x005550b0, 0x005f5ca1, 0x00615c6f, 0x004c4d69, 0x0055556c, 0x005c5562, 0x00644c49,
- 0x00955a40, 0x00a56545, 0x0099613e, 0x008b644c, 0x0089837f, 0x00a09b98, 0x00b7b6b3, 0x00b6b8b5, 0x00b3aeb0, 0x00928d8f, 0x00433f3f, 0x00161312, 0x00070403, 0x00070503, 0x00060503, 0x00020000,
- 0x00040302, 0x00050503, 0x00151614, 0x00201f1d, 0x0010100e, 0x00020401, 0x00000100, 0x00020201, 0x000c0b0b, 0x00110e0e, 0x00170f0a, 0x00302419, 0x004d4036, 0x004a3e36, 0x003e342b, 0x00332b20,
- 0x00150e0c, 0x00060303, 0x00000000, 0x00010001, 0x00080709, 0x00150f0a, 0x00140c00, 0x00180e04, 0x00281e17, 0x0039312c, 0x00837d78, 0x00e5e2dd, 0x00fffefb, 0x00fcfdf9, 0x00fafdf9, 0x00f9fcfb,
- 0x00d5d9dd, 0x0086888c, 0x00727577, 0x00a0a4aa, 0x00cbd1df, 0x00d3d9ef, 0x00a0abcb, 0x0064739b, 0x003a4d86, 0x00334985, 0x00314991, 0x003146a0, 0x00334a94, 0x003b4e91, 0x00596daa, 0x005569a5,
- 0x0031418e, 0x0035479c, 0x00374ea3, 0x00344ea4, 0x003251a1, 0x003252a8, 0x002d50a5, 0x002d51a0, 0x0035549b, 0x0037539e, 0x0034519d, 0x003b55a3, 0x004059a5, 0x003b5798, 0x00365288, 0x003b5985,
- 0x005f5f5d, 0x005d5d5a, 0x003a3936, 0x001a1a16, 0x002c2c28, 0x00464842, 0x00353731, 0x00181b14, 0x00151411, 0x00161613, 0x000c0d08, 0x0015170c, 0x00171718, 0x00131317, 0x00212224, 0x00242321,
- 0x0028291a, 0x002d2c1b, 0x00272919, 0x00292b23, 0x002c2b31, 0x002a2f3d, 0x00353f52, 0x00393e55, 0x00332f56, 0x00353161, 0x003a356f, 0x003e4182, 0x00424f99, 0x00364c98, 0x002a4591, 0x001e3e8e,
- 0x00273c81, 0x0047538f, 0x00767bae, 0x005a5d8d, 0x0039488a, 0x002e4a97, 0x00244a9c, 0x0022489d, 0x003a4584, 0x004b4272, 0x005a3758, 0x006e3140, 0x008d4a49, 0x00b7786f, 0x009b6557, 0x00482319,
- 0x000e0a16, 0x0025354c, 0x006a87a8, 0x0088accf, 0x0087a9d0, 0x00779ec1, 0x00537a9d, 0x00406784, 0x003d5870, 0x00354f5d, 0x004c636a, 0x007e9090, 0x00a7b1ac, 0x00dce1dc, 0x00fbfef6, 0x00fcfdf5,
- 0x00fffdff, 0x00fffdfd, 0x00f4f1e7, 0x00c2bdae, 0x008c866e, 0x008b836c, 0x00b3ad99, 0x00eeeadb, 0x00fffbfe, 0x00fffcff, 0x00fdfffd, 0x00fdfffb, 0x00fdfefc, 0x00fcfdfc, 0x00ecf6e8, 0x0078876d,
- 0x00465628, 0x00435823, 0x00425b23, 0x00415a25, 0x00445b30, 0x00445e2c, 0x0044612a, 0x0043602b, 0x0048612d, 0x0047622c, 0x0046642a, 0x00476629, 0x0049652c, 0x004a672c, 0x004a692b, 0x004a6b2c,
- 0x00516d35, 0x00526e36, 0x00526f32, 0x004f6c2e, 0x00526d32, 0x005b7440, 0x00546b3e, 0x005c704f, 0x00909d8f, 0x00c8d7cd, 0x00c2cbc9, 0x00c6c8d6, 0x00d3d5e4, 0x00d5d9e6, 0x00dae1ea, 0x00d4e1e5,
- 0x00cad9d2, 0x00899d86, 0x00556e48, 0x00607d4a, 0x00567535, 0x005b7b36, 0x005b7a36, 0x005c7c36, 0x00607c3d, 0x005f7d3c, 0x005d7e39, 0x005d7e38, 0x00607d3b, 0x00607e3b, 0x0060813a, 0x0061823a,
- 0x0063823f, 0x0062813e, 0x0062803d, 0x0061803d, 0x0062813d, 0x0062813e, 0x0062813e, 0x0062813d, 0x0063823f, 0x0064813f, 0x0062803d, 0x005f803c, 0x0062813d, 0x0062803c, 0x00617f3b, 0x00627f3b,
- 0x0060803d, 0x005f803c, 0x005e803c, 0x005e813c, 0x0060803b, 0x00617e39, 0x00607e3a, 0x00607f3c, 0x00637e3e, 0x00637e3d, 0x00627c3b, 0x00617c39, 0x005f7b38, 0x005f7c38, 0x005d7c38, 0x005d7c39,
- 0x00627a40, 0x00617a3d, 0x005f7a3a, 0x005e7b39, 0x005d7a38, 0x005b7937, 0x00597835, 0x00587735, 0x005a7636, 0x005a7637, 0x00577536, 0x00517739, 0x00557639, 0x00547538, 0x00537435, 0x00527436,
- 0x00567138, 0x00557137, 0x00547037, 0x00526f35, 0x00536d32, 0x00516c31, 0x004f6c31, 0x004f6b32, 0x00506934, 0x004f6933, 0x004c6631, 0x0048632f, 0x0047632f, 0x0046622f, 0x0043602c, 0x00415f2a,
- 0x0046612b, 0x00465f2b, 0x00435e2b, 0x00415d29, 0x00415b2c, 0x003f5a2a, 0x003d5a2a, 0x003d582a, 0x0040562c, 0x003c542a, 0x003f502c, 0x00474732, 0x009ea497, 0x00f7fffa, 0x00f5fdf9, 0x00f4fef9,
- 0x00fdfdff, 0x00f9feff, 0x00c7d7e7, 0x0058729c, 0x005884bc, 0x00b6c0dd, 0x00cacbd9, 0x00808fa5, 0x007086b4, 0x007389b7, 0x008ea2cc, 0x00a6b1d5, 0x00cecddf, 0x00d6d6e5, 0x00e4e8f3, 0x00bbc5d5,
- 0x005f6cbb, 0x003f58a5, 0x004764b1, 0x00577dc6, 0x005a7ec7, 0x005b77bf, 0x00566cae, 0x005061a5, 0x006273bf, 0x00788fd9, 0x00899cdb, 0x009daaca, 0x00acbade, 0x00b9caee, 0x00c6d9f8, 0x00bfd4f2,
- 0x00acc0e8, 0x00a2b7db, 0x008ea8c6, 0x007e9db3, 0x006e8ca0, 0x005976a8, 0x003f5d9e, 0x003d659b, 0x003772b6, 0x002a6abb, 0x003167b9, 0x0037579f, 0x00463666, 0x004a487a, 0x005168a5, 0x003772c2,
- 0x004974ca, 0x004370c1, 0x00376ab6, 0x00366ab4, 0x004274c4, 0x004b78cc, 0x005988d9, 0x00719ce6, 0x00799fd6, 0x0096bae2, 0x00a4caf3, 0x006789cd, 0x001f3f85, 0x00244088, 0x00243f7e, 0x003d518a,
- 0x006c7095, 0x007d7283, 0x0095827b, 0x00c3a587, 0x00dcb580, 0x00daa971, 0x00dbaa6e, 0x00daab72, 0x00c29a6a, 0x0097794e, 0x006e5a40, 0x00584e46, 0x00494a68, 0x003f4981, 0x002f4188, 0x0031469b,
- 0x0030529a, 0x002e5399, 0x00305996, 0x00346197, 0x003667a4, 0x003a6ab4, 0x003a6bba, 0x004074c5, 0x005083cb, 0x005d94d0, 0x007caee1, 0x00a9c6f1, 0x00c8e3fe, 0x00d7eefe, 0x00d7eafa, 0x00d1e2f3,
- 0x009aa3ac, 0x00465051, 0x001b2b22, 0x0020301d, 0x00202f16, 0x00242c18, 0x008e9182, 0x00edf2e7, 0x00fbfefb, 0x00fbfefe, 0x00fcfefd, 0x00fcfcfd, 0x00b2aeaa, 0x003c342c, 0x00251c0f, 0x002f2414,
- 0x005c2d12, 0x00813a26, 0x008b291c, 0x00921309, 0x00a60f04, 0x00ab1b07, 0x00a42004, 0x008e1e00, 0x00650d01, 0x00570a02, 0x006b1c0f, 0x007d1f0a, 0x00831401, 0x00a22400, 0x00dd531c, 0x00e9591f,
- 0x00d75b3b, 0x00a75959, 0x006b506f, 0x003c5199, 0x001c64d3, 0x002c69cb, 0x00326eca, 0x003173d0, 0x002a6fd0, 0x002b6ac8, 0x002f68c1, 0x002254a5, 0x000c3285, 0x001b439b, 0x002250af, 0x002457bb,
- 0x00296eca, 0x003073ce, 0x002f6ec7, 0x00306cc1, 0x00306cc7, 0x002e6dca, 0x003374d1, 0x003674d0, 0x00164697, 0x002e559c, 0x005f83c8, 0x006986da, 0x00799eea, 0x00749fe4, 0x00709edb, 0x0079a5de,
- 0x008096dc, 0x006a7cbe, 0x005c71ac, 0x006177af, 0x00587ba4, 0x0039619a, 0x00144082, 0x000f387b, 0x001d478f, 0x002857a1, 0x003a6eba, 0x003c75c1, 0x003c7acb, 0x00397bcd, 0x003579ce, 0x00347bcf,
- 0x004678b9, 0x003b77c8, 0x003073d2, 0x002b71e2, 0x002b72e2, 0x002f7bdc, 0x00327ed0, 0x00327ec6, 0x00327ed7, 0x002d7be0, 0x002c74dc, 0x003871cc, 0x003872d0, 0x003872d1, 0x003172ce, 0x002d71ce,
- 0x003474d8, 0x003074d4, 0x003477d1, 0x003070c8, 0x003576cc, 0x005488c7, 0x00709ec8, 0x005c7fa1, 0x00333949, 0x00382c2c, 0x004e3221, 0x005d3519, 0x006e3717, 0x00743818, 0x00793a1d, 0x007a3b1e,
- 0x007f3c1e, 0x00773b1e, 0x006d3b1f, 0x0060351e, 0x00462a19, 0x0038231a, 0x002a1d16, 0x0017120b, 0x00383434, 0x00999a95, 0x00fdfefb, 0x00fef9fe, 0x00fef8f9, 0x00fdfcfd, 0x00edeef5, 0x009396a6,
- 0x001a1a4b, 0x0010134f, 0x00151a60, 0x00111c65, 0x0019236b, 0x00121d6b, 0x00111e6f, 0x00101e6c, 0x00131c6e, 0x00131e6d, 0x00121d6b, 0x000d1967, 0x000e1a66, 0x000d1b64, 0x000f1b64, 0x000f1a65,
- 0x000e1e6a, 0x0018176a, 0x001f1869, 0x00211b6b, 0x000c256d, 0x000b2368, 0x000a1b63, 0x0015115e, 0x001b115f, 0x00101b62, 0x000d216c, 0x00081c76, 0x001a154d, 0x00462e46, 0x00886559, 0x00a47653,
- 0x00a97646, 0x00a47642, 0x00a1763f, 0x00a0773f, 0x00a77c47, 0x00aa8352, 0x00b18e62, 0x00b29273, 0x00b07e64, 0x00b17353, 0x00bf815b, 0x00d7a285, 0x00f7d7ce, 0x00fdd7cc, 0x00e39380, 0x00e17250,
- 0x00c79b9d, 0x00eacbd1, 0x00fdeef1, 0x00f9f1f8, 0x00dfdee7, 0x0078707e, 0x00110818, 0x000e040d, 0x000d0809, 0x000c0f08, 0x0010170e, 0x00131814, 0x00161a19, 0x00272a2b, 0x002e3034, 0x000b0d13,
- 0x0002010a, 0x00010007, 0x00000004, 0x00000203, 0x00010201, 0x00010100, 0x00363838, 0x008b8a98, 0x00bdb6dc, 0x00beb5e1, 0x00c5bee9, 0x00c5c0e7, 0x00cdc5eb, 0x00d1caf1, 0x00d1ccf5, 0x00d0caf9,
- 0x00a5aaa5, 0x00000300, 0x00020302, 0x00010101, 0x00080a09, 0x00010001, 0x00040205, 0x00060306, 0x00050603, 0x00040703, 0x00080908, 0x000b0a0b, 0x00080a08, 0x00070707, 0x00080609, 0x00070608,
- 0x00000300, 0x00000200, 0x00030302, 0x00040304, 0x00030302, 0x00040404, 0x00060608, 0x00060608, 0x00000600, 0x00010501, 0x00040505, 0x00060607, 0x00060607, 0x00060607, 0x00080709, 0x000a080b,
- 0x00000b09, 0x00000e10, 0x0008111d, 0x000a1025, 0x000c122d, 0x000a102b, 0x000a1129, 0x000a0f26, 0x00010f14, 0x00010f10, 0x00051216, 0x000a131b, 0x000e151c, 0x000c1218, 0x000f1419, 0x001a1b1e,
- 0x001c221d, 0x001f201a, 0x001a1612, 0x000a0504, 0x000f0605, 0x002b2a2a, 0x005d6371, 0x006475a4, 0x003364b8, 0x002e65c3, 0x00336cd3, 0x003d78d3, 0x00437bcb, 0x004783d7, 0x004984e2, 0x00437eeb,
- 0x00317eda, 0x00347ad4, 0x00376fc9, 0x003462b7, 0x00416294, 0x00364b68, 0x00131e2b, 0x00070c0d, 0x00080e07, 0x00070b05, 0x000a0c0c, 0x00081209, 0x00081109, 0x00091207, 0x000b130d, 0x0008110b,
- 0x00091609, 0x00101e0e, 0x001c271c, 0x00212b23, 0x00232c22, 0x00252b28, 0x00252c2d, 0x00252b29, 0x001b241d, 0x00131d16, 0x00101814, 0x00161d1b, 0x001e2525, 0x00212829, 0x00272d2d, 0x002a3230,
- 0x00272b28, 0x00212422, 0x001d1d1d, 0x001a1a1a, 0x00151515, 0x00161616, 0x00171716, 0x00181716, 0x00131612, 0x000f130e, 0x000c0d0c, 0x000a0a0b, 0x00070707, 0x00020103, 0x00040306, 0x00080809,
- 0x00070a04, 0x0010120a, 0x00201e1a, 0x002e2b28, 0x003e3c38, 0x005b5a58, 0x00929091, 0x009e9d9c, 0x00adb0a8, 0x00a4a79f, 0x007b7c78, 0x00535453, 0x00535352, 0x00545354, 0x001d1b1c, 0x000b0a09,
- 0x000d0000, 0x00110100, 0x00190100, 0x001e0102, 0x002a0903, 0x00402016, 0x0063463d, 0x00654f44, 0x003f3d22, 0x00313618, 0x00373b20, 0x0043412b, 0x0044412c, 0x00413f2a, 0x004b4738, 0x005a564b,
- 0x002d2f21, 0x00090900, 0x00070400, 0x0013100a, 0x0018130f, 0x00160f0d, 0x000e0506, 0x000c0404, 0x000d0b00, 0x00201c09, 0x003e3328, 0x00493b2f, 0x0049382a, 0x00473324, 0x005f493d, 0x00836a5c,
- 0x00a39276, 0x00ad9d83, 0x008a7666, 0x005b483d, 0x002e211b, 0x001a100c, 0x000f0305, 0x000e0605, 0x00060900, 0x00181b12, 0x004f4d44, 0x005f504c, 0x004e443e, 0x003f3933, 0x0029221b, 0x001b1810,
- 0x00232310, 0x00312610, 0x004c3524, 0x00583824, 0x003b1302, 0x000c0300, 0x00040206, 0x00030104, 0x00000200, 0x00000101, 0x00040104, 0x000f070a, 0x00352928, 0x003f332a, 0x0033281a, 0x00473c2c,
- 0x0056471f, 0x0051462a, 0x00635950, 0x0065616a, 0x004f5273, 0x003d4675, 0x003c4782, 0x0043478d, 0x003b4285, 0x003b3f7f, 0x00414079, 0x0050495f, 0x00474a66, 0x003d3d54, 0x004a3b4b, 0x0078524f,
- 0x009e5e31, 0x0097501f, 0x00a15a31, 0x00a67153, 0x007a6860, 0x00645a54, 0x00847d7c, 0x009e9798, 0x00aaaba2, 0x009b9b92, 0x00625d5a, 0x002c2624, 0x000b0707, 0x000b0703, 0x00100a08, 0x00191312,
- 0x000c100a, 0x00090d05, 0x00131411, 0x00161715, 0x00090b07, 0x00010301, 0x00030304, 0x00020101, 0x00000300, 0x00010500, 0x0019130e, 0x003b2a1c, 0x00534136, 0x00433329, 0x002e2019, 0x002e1f1b,
- 0x00181308, 0x00090700, 0x00020000, 0x00090706, 0x00272525, 0x00473f34, 0x00332419, 0x00211308, 0x0024220c, 0x003a3526, 0x00857f77, 0x00e5e0da, 0x00fefefc, 0x00fafcf8, 0x00fbfbf9, 0x00fffdfe,
- 0x00ced9d5, 0x007e8884, 0x00767977, 0x00a7a5a6, 0x00d2d2d4, 0x00e5e5ec, 0x00d5d5e7, 0x00aaaec8, 0x005a6c8c, 0x00374a71, 0x00273a72, 0x00253985, 0x002a3f7e, 0x002f4279, 0x004f5e92, 0x0053609b,
- 0x00223974, 0x00283e83, 0x002f438f, 0x00314695, 0x00324f96, 0x00344d9f, 0x002f479d, 0x00324a96, 0x00304f89, 0x00364f87, 0x00354885, 0x00324383, 0x00333f7b, 0x0029386b, 0x00343e69, 0x00434f6f,
- 0x00595f52, 0x00585b51, 0x00393a34, 0x00191914, 0x002b2c26, 0x0045453f, 0x0034342e, 0x00181812, 0x000b1004, 0x000f1309, 0x000b0d05, 0x00131607, 0x00151513, 0x00131310, 0x00242424, 0x00262627,
- 0x001e250f, 0x00232a14, 0x00272919, 0x002e2c23, 0x00322c35, 0x00323230, 0x00464342, 0x0051494b, 0x004a3e45, 0x00453345, 0x003d294a, 0x003c2c59, 0x003f3e7a, 0x003a4287, 0x002f4290, 0x00233c8f,
- 0x00223e7a, 0x0037487e, 0x00676d9d, 0x00595d8a, 0x002e447c, 0x0029498e, 0x00264996, 0x00284696, 0x00383868, 0x004d3254, 0x00753a4b, 0x00a64b4a, 0x00c66c5d, 0x00d1816f, 0x0097564a, 0x003e1715,
- 0x001a2d3e, 0x004c7395, 0x007aaadc, 0x006da1da, 0x005e91c8, 0x00588ec8, 0x00578bc8, 0x005f8ec4, 0x004c7e99, 0x003e6679, 0x004e6878, 0x00748693, 0x009da6a8, 0x00d9d8da, 0x00fefdfd, 0x00fffcff,
- 0x00f5f9f5, 0x00fafaf2, 0x00f6f2e8, 0x00cac4b4, 0x00948c74, 0x008f8972, 0x00bcb4a2, 0x00f7f2e6, 0x00f7fbf3, 0x00f9fdf7, 0x00fdfffd, 0x00fcfffa, 0x00fbfdff, 0x00f9fdfb, 0x00e7eee4, 0x00748069,
- 0x003f5723, 0x003e591e, 0x00425c25, 0x00435c2a, 0x00435e31, 0x00425e2a, 0x00445e2c, 0x0046622c, 0x00406225, 0x00416327, 0x00456429, 0x0047652a, 0x0048682c, 0x004a692d, 0x004e692f, 0x004f6a31,
- 0x00476d2c, 0x00496e2c, 0x004f7230, 0x0051722d, 0x0051702c, 0x004f6d2f, 0x00587440, 0x00597247, 0x00617b59, 0x00a1bc9e, 0x00d2e1d7, 0x00d0d1de, 0x00c8c8d6, 0x00c7cad9, 0x00d6dae6, 0x00dfe5ee,
- 0x00d3e6d9, 0x00b2cbb0, 0x006c8464, 0x005f774b, 0x005c7b3e, 0x005e7d39, 0x00617c3a, 0x00627c3d, 0x005a7e35, 0x005b7f33, 0x00607e3b, 0x00627e3a, 0x00617e3a, 0x00617f3c, 0x0064803f, 0x0064813e,
- 0x005e8037, 0x005d8137, 0x0061823c, 0x0062823c, 0x0062813e, 0x0063813e, 0x00668341, 0x00668340, 0x0060823a, 0x00608339, 0x0064823e, 0x0064803d, 0x0062803c, 0x0062803b, 0x00658140, 0x0064813f,
- 0x005b7e36, 0x005c7f36, 0x0061803b, 0x0062803c, 0x00617e3c, 0x00627e39, 0x00637e3b, 0x00617e3d, 0x005b7e34, 0x005b7e36, 0x005c7e38, 0x005d7e39, 0x005e7e39, 0x005d7d39, 0x005d7c3a, 0x005d7b3b,
- 0x005d7933, 0x005c7935, 0x005c7936, 0x005b7937, 0x005c7936, 0x005c7837, 0x005c7737, 0x005d7738, 0x00537731, 0x00527731, 0x00587636, 0x00567638, 0x00547338, 0x00547335, 0x00577337, 0x00577238,
- 0x0050702f, 0x004f7032, 0x00557135, 0x00547032, 0x00546f33, 0x00537035, 0x00516c33, 0x004e6b32, 0x0048682b, 0x0047682a, 0x004c692f, 0x004b6630, 0x0047622d, 0x0047622d, 0x0047602f, 0x00476232,
- 0x00405c27, 0x00415d28, 0x00435c2c, 0x00435c2d, 0x00425d2b, 0x00415d2b, 0x00405b2d, 0x003f5b2c, 0x00365625, 0x00355923, 0x0040532c, 0x004d4b32, 0x00aeb6a4, 0x00fafff6, 0x00fdfdfc, 0x00fefdfe,
- 0x00f6fef6, 0x00f5fcf9, 0x00c6d2e0, 0x00546d94, 0x007aa2da, 0x00d8e7fc, 0x00b2b7d6, 0x0055659e, 0x002e5b9a, 0x00325d8f, 0x004b6798, 0x00596787, 0x00757399, 0x007d7d9f, 0x008e8fb0, 0x008693a7,
- 0x007581bd, 0x007388c1, 0x008ea6e0, 0x00a2bdef, 0x00b1cef1, 0x00bbcfee, 0x00bfcaef, 0x00bec6ee, 0x00c1cee8, 0x00c8daed, 0x00d1e1ee, 0x00d4e7df, 0x00cbdedb, 0x00bcd0d4, 0x009cacc2, 0x007d90ac,
- 0x005c7797, 0x004a6b92, 0x00456499, 0x0045659b, 0x0041649b, 0x004263a8, 0x004868b5, 0x004b6daf, 0x002a70ac, 0x00256cb5, 0x002b64b6, 0x0038549b, 0x00563660, 0x005e4e78, 0x0064699f, 0x003f6ebb,
- 0x002b5aa6, 0x001b4e97, 0x0020519c, 0x00295ba8, 0x002a5fb1, 0x00396abe, 0x005d8ce2, 0x006b99ed, 0x005f91c2, 0x005d92b2, 0x0076a4ca, 0x007196d2, 0x002e4e8b, 0x0025407c, 0x002e3e78, 0x00434b79,
- 0x006c6c7d, 0x00968d86, 0x00bda890, 0x00d5b588, 0x00dab674, 0x00ddaf79, 0x00ddad76, 0x00cea468, 0x009d8545, 0x00736637, 0x00605846, 0x00515163, 0x0037457e, 0x002b438a, 0x00254297, 0x002b4da4,
- 0x0020519a, 0x00235494, 0x002b5996, 0x002f5d95, 0x0035619e, 0x003b64b0, 0x003a63ba, 0x003f68c5, 0x004074ba, 0x004d85be, 0x006c9ed5, 0x0089b0e9, 0x00adcefc, 0x00bedaff, 0x00bfd4f6, 0x00bccce8,
- 0x00788a95, 0x00344543, 0x0018241e, 0x001e2b1f, 0x001d2d16, 0x00212916, 0x00929288, 0x00f3f1ed, 0x00f7fdf5, 0x00f4fcf5, 0x00fdfeff, 0x00fcfeff, 0x00b1aeaa, 0x003b332b, 0x00281b11, 0x00322515,
- 0x00393304, 0x004a330e, 0x0056240e, 0x005f1105, 0x006f0e03, 0x007d1505, 0x007a1204, 0x00720c04, 0x00520200, 0x00510202, 0x00620d10, 0x00681105, 0x00760b02, 0x00891203, 0x00bc3b18, 0x00dc5630,
- 0x00d8531e, 0x00bd4c29, 0x00944646, 0x00664c78, 0x00215ece, 0x002863c5, 0x00316cc9, 0x003270d3, 0x00236fc9, 0x00236ac1, 0x002f67c3, 0x002554a9, 0x00093389, 0x001c45a0, 0x002d56b8, 0x002b59c3,
- 0x001c6bc1, 0x002a72c6, 0x003270c5, 0x003871c8, 0x00336ec9, 0x003371d0, 0x003b7bda, 0x003878d7, 0x00124d95, 0x00245597, 0x00426db8, 0x004775cd, 0x005489d1, 0x005389c8, 0x004e7fbb, 0x004e78b6,
- 0x004562a2, 0x00334d91, 0x00273e88, 0x002a478f, 0x00315c9b, 0x00375fa6, 0x003057a8, 0x003967b8, 0x003777bd, 0x003376bd, 0x00397bc9, 0x003e7fd2, 0x00397acf, 0x003777d0, 0x003a76d4, 0x004079d8,
- 0x003676b3, 0x003a72bb, 0x003d6fcb, 0x00396fd5, 0x002779d8, 0x00297bd8, 0x00327ad9, 0x003a77d7, 0x003179cf, 0x00257cd3, 0x002878d1, 0x003971cb, 0x003a76cd, 0x003574ce, 0x002f72cf, 0x003173d4,
- 0x002b74ce, 0x002770cb, 0x003074d0, 0x003472cd, 0x003874cb, 0x003574c7, 0x004c85cf, 0x006492d0, 0x005c748b, 0x00494951, 0x0046312d, 0x005e3426, 0x006b341b, 0x0074361f, 0x007d3926, 0x007e3829,
- 0x0071380e, 0x006a3612, 0x00663418, 0x00552e17, 0x003d2415, 0x00311d16, 0x00281816, 0x001a1010, 0x0021261c, 0x0082897f, 0x00fafdf7, 0x00fffdfd, 0x00fcfbf8, 0x00fcfdfd, 0x00f0f2fa, 0x009da1b3,
- 0x00161f48, 0x00080f4c, 0x00131963, 0x00151c6e, 0x00191f6d, 0x00131d6e, 0x00131d72, 0x00141b72, 0x000c1d69, 0x000c1c69, 0x00101b6c, 0x000f1869, 0x000f1a69, 0x000f1968, 0x00111a69, 0x00101969,
- 0x00001c64, 0x000f1464, 0x001d1369, 0x0020186a, 0x00062562, 0x0006235f, 0x000e1b5e, 0x001b105a, 0x00100f4f, 0x00071a54, 0x00071f62, 0x000a176b, 0x00181240, 0x003c2332, 0x00744b3e, 0x00945e3a,
- 0x00986d2d, 0x00a07838, 0x00a87d44, 0x00a57d45, 0x00ab8149, 0x00af8a5c, 0x00b68d66, 0x00c18e66, 0x00c28b59, 0x00b68057, 0x00b27b5b, 0x00bd9074, 0x00deac97, 0x00f6bba5, 0x00f49d85, 0x00f0846a,
- 0x00e0ae9d, 0x00f9ded2, 0x00f8e6e7, 0x00efe0ea, 0x00f0ecf7, 0x00938ea5, 0x001c1227, 0x000f0313, 0x00080801, 0x000a0d00, 0x0016180b, 0x00161715, 0x00202326, 0x003b3d41, 0x00353339, 0x000f0c14,
- 0x00000102, 0x00000101, 0x00000001, 0x00000100, 0x00000200, 0x00000200, 0x00212125, 0x006a6676, 0x00a7a5c3, 0x00b9b6da, 0x00c5c0e9, 0x00cac5ec, 0x00cbc5e9, 0x00cec8ed, 0x00d4cbf8, 0x00d5cbfe,
- 0x00a8aaa7, 0x00010100, 0x00030302, 0x00020201, 0x00030505, 0x00010001, 0x00020102, 0x00040302, 0x00030402, 0x00030402, 0x00040505, 0x00050606, 0x00040503, 0x00020302, 0x00020203, 0x00010202,
- 0x00010300, 0x00000200, 0x00020303, 0x00030304, 0x00030402, 0x00040504, 0x00050707, 0x00050707, 0x00040706, 0x00040605, 0x00040604, 0x00040604, 0x00040504, 0x00040404, 0x00040504, 0x00050505,
- 0x00020c10, 0x00020d15, 0x0006111f, 0x00071126, 0x000a122d, 0x000b122e, 0x000a132c, 0x00071127, 0x00051119, 0x00051116, 0x00040f16, 0x0007111b, 0x00050d18, 0x00081019, 0x000f171c, 0x00121717,
- 0x00121518, 0x00151716, 0x000c0e0a, 0x000a0b07, 0x00050302, 0x000f0301, 0x003a322c, 0x00535a74, 0x00355db1, 0x002f61c7, 0x001c5cbe, 0x002768c6, 0x003775bf, 0x003e78c9, 0x003e79cd, 0x003b75d6,
- 0x00287bdb, 0x00307bd9, 0x002467bf, 0x001f58ab, 0x00335b91, 0x00405b80, 0x0014283c, 0x00010a12, 0x00080717, 0x0009041a, 0x00090814, 0x00071108, 0x00071208, 0x00071208, 0x00081208, 0x00061207,
- 0x000b150b, 0x000f1a10, 0x00182119, 0x001e281f, 0x00242e25, 0x002b332e, 0x00303935, 0x00333b36, 0x002d3332, 0x00262c2a, 0x00222825, 0x00242b28, 0x002b312f, 0x002c3432, 0x00313937, 0x00363e3b,
- 0x00363837, 0x00313332, 0x002d2e2e, 0x002c2c2c, 0x00272728, 0x00252626, 0x00212321, 0x001e211f, 0x001d1e1b, 0x00141615, 0x000e1417, 0x000e171d, 0x000b1519, 0x00061011, 0x00040c0c, 0x00030a05,
- 0x00030709, 0x00040709, 0x00010404, 0x00020402, 0x00010200, 0x00252623, 0x006d6e6b, 0x00696b68, 0x006c6d69, 0x006e6f6c, 0x0070706e, 0x00666664, 0x00585856, 0x00555653, 0x00262724, 0x00060704,
- 0x00140600, 0x00190600, 0x001b0200, 0x00220701, 0x002b0d02, 0x00422717, 0x00614b38, 0x0060513c, 0x003d3c1b, 0x002f3615, 0x0034391e, 0x00423f2e, 0x00413c2f, 0x003a3529, 0x00423e33, 0x00514f47,
- 0x0045403b, 0x001f1818, 0x000f0709, 0x001d1618, 0x002a2225, 0x002d2321, 0x002b2119, 0x002e251e, 0x00372a1f, 0x003b2d21, 0x00453127, 0x004a3423, 0x003c2612, 0x00351d09, 0x00432c17, 0x005d452f,
- 0x00907c5e, 0x00af9e82, 0x00a39078, 0x007d6c5b, 0x0040372a, 0x0018140a, 0x00050302, 0x00010300, 0x00050d05, 0x000b1510, 0x00161912, 0x002a1d13, 0x00382a20, 0x00352b23, 0x0020170e, 0x00170e04,
- 0x00201205, 0x002d1402, 0x00492c15, 0x00643b20, 0x004b1d05, 0x00160902, 0x00010503, 0x00000200, 0x00010101, 0x00020001, 0x00060001, 0x00130a09, 0x00463a35, 0x00574b3f, 0x003e3220, 0x00493e28,
- 0x00583d2d, 0x00574137, 0x00645551, 0x00555356, 0x00242c37, 0x00132228, 0x00192b2f, 0x002e3f3d, 0x00415242, 0x00323f29, 0x0013190e, 0x00221632, 0x002a2d48, 0x002a2742, 0x00483743, 0x00856057,
- 0x009d4b1d, 0x008c3104, 0x00994918, 0x00b4734e, 0x00775f4d, 0x0042332c, 0x003d3931, 0x0067655f, 0x00a9a29e, 0x00a9a29d, 0x007f7873, 0x00554e48, 0x00251e19, 0x00150f0a, 0x00120d08, 0x00221e16,
- 0x002a2928, 0x001d1d1a, 0x00100f0e, 0x000b0c0a, 0x00060704, 0x00010200, 0x00010300, 0x00020401, 0x00070702, 0x0023241e, 0x004f4942, 0x00705d4f, 0x00655241, 0x003b2b1c, 0x00201406, 0x00291c11,
- 0x00302a20, 0x00201912, 0x000b0503, 0x00110e0b, 0x0045413d, 0x00665d4e, 0x003e321f, 0x002d220e, 0x00453d2b, 0x004d4739, 0x00868276, 0x00e6e3d8, 0x00fefdf9, 0x00fffef9, 0x00f9fcf5, 0x00fafffa,
- 0x00d3d7d8, 0x00848685, 0x00787572, 0x00a39c98, 0x00d0c9c3, 0x00e5dfdb, 0x00e2dee1, 0x00d4d2db, 0x00a5acc0, 0x00717c97, 0x0042517a, 0x002f427d, 0x00263969, 0x0021335b, 0x00394a6c, 0x0043547b,
- 0x00293c72, 0x00283879, 0x00283b7c, 0x002f4586, 0x0034508f, 0x00354a94, 0x002f4089, 0x002b407e, 0x00324477, 0x00374272, 0x0032396a, 0x00343567, 0x0035315e, 0x003e3d5d, 0x004f5163, 0x00595d63,
- 0x0062645e, 0x0060625c, 0x003f4039, 0x001e1f18, 0x0031312b, 0x004b4c45, 0x00383932, 0x00191b14, 0x0012180f, 0x001b1f15, 0x001a1c10, 0x00212212, 0x001f1e18, 0x001c1c17, 0x002d2f2b, 0x00292d29,
- 0x00272e1c, 0x00303225, 0x00312f24, 0x00383430, 0x003c3138, 0x00423629, 0x0058462c, 0x006d523b, 0x00805a4d, 0x007c4f4e, 0x00663942, 0x00563048, 0x0040305e, 0x0034326e, 0x0028357a, 0x00203683,
- 0x00243679, 0x00303c73, 0x005a618c, 0x00535c80, 0x00223d6b, 0x001f4582, 0x001f498e, 0x0024498f, 0x004b3967, 0x00754362, 0x00af5c67, 0x00d66657, 0x00dd745a, 0x00e1876f, 0x00ae6d5f, 0x00624541,
- 0x004d6c92, 0x00699fda, 0x00529ae3, 0x003984cf, 0x004085d0, 0x004084d7, 0x003c7fd2, 0x004687d1, 0x00588cc3, 0x005a84b0, 0x005d7c9c, 0x00768ba4, 0x009fa7b4, 0x00dad8e3, 0x00fefbff, 0x00fef9fd,
- 0x00fcfcfb, 0x00fffdf8, 0x00f7f3e9, 0x00c7c2b0, 0x00888166, 0x00847f64, 0x00b8b39e, 0x00f3f1e5, 0x00fcfcfb, 0x00fcfdfd, 0x00fcfefd, 0x00fbfef9, 0x00fbfdfc, 0x00fafdf9, 0x00e0e8da, 0x006c7a5f,
- 0x00435527, 0x00445b24, 0x00435d24, 0x00435e28, 0x00425d2e, 0x0045612c, 0x00436029, 0x00446228, 0x00446328, 0x00456428, 0x00476528, 0x00496628, 0x0048682a, 0x004a692b, 0x004c6a2b, 0x004d6c2c,
- 0x00496f31, 0x00496e2e, 0x004d712d, 0x0050752b, 0x0052762b, 0x0050722c, 0x00557638, 0x0054733d, 0x0058744a, 0x0065805b, 0x00a4b3a1, 0x00c0c0cb, 0x00cacad4, 0x00c6c9d5, 0x00c1c7d0, 0x00c6cfd4,
- 0x00cedcd7, 0x00d8ebda, 0x00c0d7b8, 0x0087a173, 0x0069884e, 0x00618242, 0x005e7f38, 0x00617e38, 0x005f7f3a, 0x00607f39, 0x005f7f39, 0x00618138, 0x0062813a, 0x0064823c, 0x0062823b, 0x0063833d,
- 0x00618139, 0x0063833b, 0x0063823d, 0x0063833d, 0x0063823e, 0x0062813d, 0x0063833e, 0x0063833d, 0x0063833d, 0x0062843d, 0x0064823d, 0x0065803b, 0x0064803b, 0x00627f3a, 0x0064813d, 0x0062803a,
- 0x00627f38, 0x00627e39, 0x00637f3a, 0x00628038, 0x00607e38, 0x005d7f39, 0x005b803a, 0x005a8038, 0x005b803b, 0x005a8139, 0x005a8138, 0x00598038, 0x00588038, 0x00578038, 0x00578037, 0x00568035,
- 0x005d7936, 0x005c7936, 0x005c7836, 0x005a7835, 0x005a7835, 0x00597834, 0x00597734, 0x00597733, 0x00537734, 0x00547633, 0x00567535, 0x00557435, 0x00567336, 0x00567334, 0x00567234, 0x00567134,
- 0x00526f31, 0x00566f34, 0x00546c32, 0x00556d31, 0x00556b2f, 0x00516b2f, 0x004e6c2f, 0x004c6b2e, 0x004b6a30, 0x004b682e, 0x004b682d, 0x0049682f, 0x00476630, 0x00476530, 0x0047642f, 0x0045612e,
- 0x004c5b2c, 0x004a5a2c, 0x00495a2d, 0x00485a2e, 0x00465c2c, 0x00455c2d, 0x00435b2f, 0x00425a2f, 0x003d582d, 0x003c5a2e, 0x0042522c, 0x00534f2b, 0x00c0bfa6, 0x00feffed, 0x00fcfef0, 0x00fffff4,
- 0x00fdfbf7, 0x00fffcfc, 0x00c4c6d6, 0x00637197, 0x00a3c5ef, 0x00dff4fe, 0x008b9dca, 0x004663b8, 0x003e71d4, 0x005283cc, 0x006892c6, 0x00819bc3, 0x009497ce, 0x00a4a7d8, 0x00a5afd3, 0x00afc6d7,
- 0x00dad2e2, 0x00dcdee9, 0x00e9f4f8, 0x00ecfef5, 0x00edffeb, 0x00f3fee7, 0x00f3f7e4, 0x00f1f0e2, 0x00e0e3d6, 0x00c3c8bf, 0x00a0a6b8, 0x008488cd, 0x006c72b9, 0x005c63b0, 0x0048509f, 0x003d469c,
- 0x002d3d9a, 0x001d328f, 0x00203a9d, 0x003050b5, 0x003d61c4, 0x003b5ebc, 0x00335bac, 0x003962a4, 0x002d71b1, 0x002970bf, 0x003168bc, 0x003d549e, 0x0062355a, 0x0069496f, 0x005e5e8e, 0x002d5aa1,
- 0x001a4492, 0x002d56a3, 0x003c6db7, 0x003a6ab6, 0x003267bb, 0x004073cb, 0x004477ce, 0x003c6ebe, 0x004d82b9, 0x004f88b2, 0x005f94b0, 0x0084aeca, 0x00557992, 0x00345268, 0x00556876, 0x0081898d,
- 0x00aaa591, 0x00c3b089, 0x00d2bb7d, 0x00d8be68, 0x00d9bc57, 0x00dab170, 0x00c8a46b, 0x00ad934c, 0x00796e25, 0x005e5c30, 0x00545952, 0x003f4c74, 0x00284094, 0x001d439c, 0x0017489d, 0x00184f9b,
- 0x001d4fae, 0x002053a4, 0x0026579c, 0x002b5a98, 0x00335da0, 0x00385caf, 0x003858b6, 0x003e5cbe, 0x004566b3, 0x004d72ae, 0x005a85bf, 0x006d9add, 0x008fbaf7, 0x00a2c5fb, 0x009db9e5, 0x0095afce,
- 0x00778599, 0x003c4950, 0x0018231f, 0x00192619, 0x00192712, 0x001c2412, 0x008b8d7f, 0x00f1f0e8, 0x00f6fdf9, 0x00f8fcfb, 0x00fcfdff, 0x00fcfcfd, 0x00b4aeaa, 0x003d342a, 0x00241b0d, 0x00302615,
- 0x00482e12, 0x003d2c12, 0x00383019, 0x0033311d, 0x00332d14, 0x0039220c, 0x003a1000, 0x00430800, 0x0053010b, 0x00590011, 0x00570211, 0x0052060a, 0x00660501, 0x00730702, 0x008d1d0b, 0x00ba4129,
- 0x00e84b16, 0x00e43f08, 0x00c33a1a, 0x00914351, 0x002f57bb, 0x00295ebe, 0x002d6bc8, 0x002e72d2, 0x002770d0, 0x002a6dca, 0x00316bc3, 0x002757a9, 0x000b368b, 0x001e48a2, 0x002e5bbf, 0x00285bc6,
- 0x001b67c2, 0x002c72ca, 0x003370c8, 0x003770c8, 0x003670ca, 0x003573cf, 0x00397bd7, 0x003174d1, 0x002057a8, 0x003d6eb9, 0x00457dc8, 0x00377bd4, 0x00367dc3, 0x003679b6, 0x003570a4, 0x0034649e,
- 0x003c58a9, 0x003c56af, 0x003f5bbb, 0x003c63c6, 0x00376ac9, 0x00446fcf, 0x004b72cf, 0x004675ce, 0x003878ce, 0x003178cd, 0x00307bd1, 0x00327ed7, 0x00337ad6, 0x003776d7, 0x003972d7, 0x003c70d7,
- 0x001f7de5, 0x003674db, 0x00446dcd, 0x004c6ac4, 0x003479c2, 0x003477c6, 0x003973cd, 0x004a6cd2, 0x004a73c9, 0x003a7abd, 0x002e77bc, 0x003272c8, 0x003377ce, 0x003076cd, 0x002a74cf, 0x002b76d2,
- 0x002b6ecd, 0x003475cf, 0x003474c9, 0x003b73c8, 0x00396fc3, 0x003373d7, 0x002e73d6, 0x003e78cc, 0x006480b5, 0x006d7191, 0x00584953, 0x005a3634, 0x006c3328, 0x0076352b, 0x0079362d, 0x007b332a,
- 0x00743711, 0x006d3515, 0x00612d13, 0x004f2812, 0x00381f11, 0x00291811, 0x00221512, 0x00160d0e, 0x00181917, 0x00797976, 0x00f9f8f4, 0x00fffffc, 0x00f7fdf3, 0x00f9fffa, 0x00eef7f9, 0x00a3afbb,
- 0x001b2758, 0x00050f54, 0x000f176a, 0x00111876, 0x00131a78, 0x000f1a77, 0x00101c77, 0x00101b77, 0x00101b75, 0x000f1c75, 0x000e1a74, 0x000e1a73, 0x000d1b73, 0x000c1b70, 0x000e1c70, 0x000b1c6d,
- 0x00002376, 0x00131872, 0x001a126c, 0x001d1467, 0x00001f5b, 0x00001d56, 0x00061955, 0x00170f54, 0x00101152, 0x00071955, 0x00041a57, 0x0009145e, 0x001e173e, 0x003e212b, 0x006a402b, 0x008c592d,
- 0x00a87639, 0x00af8044, 0x00ab7e45, 0x00a3773f, 0x00a77c45, 0x00b39569, 0x00c59a6b, 0x00d08546, 0x00c27033, 0x00b67a55, 0x00bc9277, 0x00bc9c8c, 0x00ce906b, 0x00e69873, 0x00f7a082, 0x00f9a99b,
- 0x00fcbba4, 0x00ffd1c2, 0x00f7e7de, 0x00e5d3d9, 0x00efeaf8, 0x00aeadc6, 0x00211c31, 0x00090410, 0x00080700, 0x000d0e00, 0x001a1a0b, 0x00181915, 0x00303432, 0x00464a4c, 0x0024262a, 0x0006090f,
- 0x0001040a, 0x00010308, 0x00000103, 0x00000000, 0x00010300, 0x00000100, 0x00080709, 0x002e2b36, 0x00867fa3, 0x00b6afd7, 0x00c1bae3, 0x00c8c1e7, 0x00ccc6ea, 0x00cec8ee, 0x00cfc8f4, 0x00cdc6f7,
- 0x00aaa9a5, 0x00050300, 0x00030300, 0x00010200, 0x00010402, 0x00020200, 0x00010200, 0x00020301, 0x00050503, 0x00040402, 0x00040404, 0x00040505, 0x00030503, 0x00020503, 0x00010405, 0x00010404,
- 0x00020301, 0x00010300, 0x00010302, 0x00020403, 0x00040504, 0x00050706, 0x00050808, 0x00040807, 0x00060509, 0x00030406, 0x00020405, 0x00020406, 0x00030509, 0x0004050c, 0x0004050d, 0x0004060e,
- 0x00010d15, 0x00030f1a, 0x00071222, 0x00081224, 0x000d162b, 0x000c162b, 0x000c1728, 0x000a1724, 0x000c1721, 0x000a161a, 0x00091616, 0x00041211, 0x00051217, 0x000a1823, 0x000b1827, 0x000c1726,
- 0x000a1319, 0x00131613, 0x003c382a, 0x004b3e2a, 0x00332109, 0x0031260f, 0x00382f1d, 0x00493d3b, 0x005a5579, 0x004d5a96, 0x002e4d9f, 0x002052b5, 0x002863cc, 0x003770cf, 0x00396ac1, 0x00446bbc,
- 0x002c6cc9, 0x002b68c4, 0x001d55b2, 0x001649a2, 0x002e539d, 0x00416199, 0x00223a5f, 0x00040e22, 0x0006090f, 0x00090b0a, 0x00090e08, 0x00051209, 0x0008150c, 0x000b170b, 0x000d170d, 0x000d170f,
- 0x00101c12, 0x00121f16, 0x001a251c, 0x00202c22, 0x00273129, 0x002e3531, 0x00343a37, 0x00383d3a, 0x00383d39, 0x00323731, 0x002c322c, 0x002d342e, 0x00333836, 0x00363b3c, 0x003d4246, 0x0045484d,
- 0x0048494a, 0x00434546, 0x00404242, 0x00414344, 0x003e3f40, 0x0038393a, 0x002d3030, 0x00282c2b, 0x0027272b, 0x00212123, 0x0016191b, 0x00131918, 0x00161b1a, 0x00151918, 0x00111515, 0x00101211,
- 0x000b0e0b, 0x00090d0b, 0x00060a07, 0x00020602, 0x00020403, 0x00393938, 0x00a0a19f, 0x00909291, 0x00898a89, 0x00818182, 0x008f9090, 0x007b7c7b, 0x005e5e5d, 0x005a5b56, 0x00282921, 0x000b0c03,
- 0x001a0d04, 0x001e0f05, 0x00281208, 0x00371f0f, 0x003d210d, 0x00472f17, 0x00645038, 0x00584b33, 0x00373321, 0x002a2e1a, 0x00373c25, 0x003c3d25, 0x00403f29, 0x00393722, 0x003e3b27, 0x004b4935,
- 0x004f4d3c, 0x00302c1e, 0x00140d05, 0x001f190d, 0x00302720, 0x003c2e16, 0x00564428, 0x006c5b43, 0x00725c52, 0x005c4439, 0x00502f25, 0x00542f1b, 0x005c2415, 0x0058160b, 0x00621610, 0x0074211d,
- 0x00836960, 0x00a58f84, 0x00968075, 0x00705d50, 0x00423628, 0x001f1708, 0x000c0700, 0x00090a02, 0x00131413, 0x00101414, 0x000d0e0c, 0x001f1203, 0x003f2f24, 0x0043352f, 0x002f251f, 0x0017100a,
- 0x00121004, 0x001f1300, 0x00412812, 0x0062371c, 0x005f1e07, 0x00250f07, 0x00040302, 0x00040200, 0x00070503, 0x00050101, 0x00070303, 0x000b0604, 0x00332d28, 0x00413934, 0x00423934, 0x004d443d,
- 0x00483e2f, 0x00484033, 0x00534a40, 0x004c463d, 0x00464037, 0x005a5342, 0x006c654f, 0x00746c4f, 0x0083734f, 0x00645027, 0x002e2009, 0x002b2d22, 0x0040332d, 0x00301b13, 0x0068423d, 0x00945d50,
- 0x00863a1f, 0x00721e04, 0x008b3113, 0x00ad5837, 0x00aa5e3b, 0x006f4422, 0x003a260e, 0x003c352b, 0x00747a86, 0x0092949c, 0x00aea5a3, 0x009d8878, 0x0068482d, 0x0038240d, 0x00160f03, 0x000d140b,
- 0x0021241c, 0x00191d19, 0x000a0e0d, 0x0006090d, 0x0006080e, 0x00000106, 0x00000305, 0x00020606, 0x002b2c2d, 0x005a5e5a, 0x00757a76, 0x00767e75, 0x00696255, 0x00423321, 0x00341e0a, 0x00503a27,
- 0x004f4034, 0x00372c22, 0x001f1611, 0x00251a16, 0x00554843, 0x0057523f, 0x002b2d16, 0x00373724, 0x006e6b5c, 0x005b584e, 0x00848078, 0x00e5e1d9, 0x00fdfcfb, 0x00fffefb, 0x00fdfcfa, 0x00fffeff,
- 0x00d3d4d6, 0x00838485, 0x00777577, 0x00a19e9f, 0x00d1cecd, 0x00e3e1df, 0x00e1dfde, 0x00e1dfe0, 0x00d6d7de, 0x00b7bbc0, 0x009095a1, 0x00656d8c, 0x00434c70, 0x002c3964, 0x003e4d7c, 0x0045558d,
- 0x00253876, 0x00223677, 0x0025397c, 0x00273b7b, 0x002c3f7a, 0x002b3a5b, 0x0032394f, 0x003a3a4d, 0x00472f3b, 0x004a2b33, 0x00563235, 0x005b3735, 0x0063463e, 0x006d5d4e, 0x00706a55, 0x006e7157,
- 0x006f705e, 0x006e7061, 0x00494a41, 0x001f201d, 0x00353339, 0x0048464b, 0x00353635, 0x00181b15, 0x001c1e14, 0x001e2113, 0x00282a1d, 0x002f3023, 0x002b2c25, 0x002b2d24, 0x00343631, 0x00343732,
- 0x00373b31, 0x003c3d34, 0x003d3e35, 0x003d3e35, 0x0043403d, 0x0045423b, 0x00564b44, 0x006b5348, 0x00965d53, 0x00a15e51, 0x009a514a, 0x00934f4d, 0x006a405c, 0x003f2d59, 0x00292d69, 0x001d327a,
- 0x00212a8c, 0x002a3786, 0x00556aa7, 0x006178a9, 0x00294680, 0x00304894, 0x00374a9e, 0x003f499d, 0x00564d80, 0x0076637b, 0x00a27b7f, 0x00bc7e65, 0x00d4a79f, 0x00ddc6ce, 0x00aaa9c9, 0x00708bb6,
- 0x005f95d3, 0x00538dcc, 0x004477b7, 0x004c79b4, 0x006886ba, 0x005787b3, 0x004b82b2, 0x004c83c0, 0x004e86cf, 0x005085be, 0x005a86ad, 0x007195a2, 0x009eaea9, 0x00d2dbd7, 0x00fbfefd, 0x00fbfcff,
- 0x00f7fefc, 0x00fbfffa, 0x00f8f6ed, 0x00c3bbab, 0x007b6d56, 0x00756950, 0x00b7ae99, 0x00f3f1e4, 0x00fffefc, 0x00fdfefd, 0x00fbfcfd, 0x00faf7f9, 0x00fdfbfe, 0x00fbfafb, 0x00d4ded3, 0x0072846c,
- 0x00415a36, 0x003e582c, 0x00435c2d, 0x00455a29, 0x00495b2d, 0x00475e29, 0x00446129, 0x00436329, 0x0048642c, 0x0048652b, 0x0049652b, 0x004a662b, 0x0049672d, 0x004a682e, 0x004c6930, 0x004d6a30,
- 0x004d6f2f, 0x004d6f2e, 0x004f7131, 0x00507332, 0x00537534, 0x00517332, 0x00557636, 0x00537435, 0x0058743b, 0x00537239, 0x00607654, 0x006f777f, 0x00798189, 0x00848d97, 0x00979ea9, 0x00afb5bf,
- 0x00b7c0c7, 0x00bac2c1, 0x00d2dad8, 0x00dbe3db, 0x00cdd7cd, 0x009fb596, 0x007d9b6e, 0x006a8859, 0x005f7c47, 0x005f7c41, 0x00648344, 0x0061823c, 0x00678543, 0x0065833f, 0x0062813d, 0x0062803f,
- 0x0060833f, 0x0060823d, 0x00648743, 0x00648841, 0x00638540, 0x005e8239, 0x005f8339, 0x00608439, 0x0062833d, 0x005e823a, 0x0062833d, 0x00657f3e, 0x00687f43, 0x00667f42, 0x00678044, 0x00688045,
- 0x00677f42, 0x00657e3f, 0x00657e3d, 0x00657e3d, 0x00657e3b, 0x00637f3c, 0x0061803b, 0x00627f39, 0x005f803b, 0x005f803a, 0x005f7f39, 0x005e7f38, 0x005f7e38, 0x005e7e38, 0x005e7d37, 0x005e7d36,
- 0x005e7935, 0x005e7934, 0x005d7934, 0x005c7934, 0x005a7935, 0x00587835, 0x00567734, 0x00557733, 0x00547735, 0x00537732, 0x00527632, 0x00527532, 0x00517534, 0x004f7633, 0x004d7533, 0x004c7533,
- 0x004a722d, 0x004d702d, 0x00526f30, 0x00526c2f, 0x0050682c, 0x00476a2d, 0x00446c31, 0x00456b31, 0x004a642c, 0x004e642e, 0x00546732, 0x004f632e, 0x004d622e, 0x004a622c, 0x0048632c, 0x0045632d,
- 0x00495f2b, 0x00465e29, 0x00435d2a, 0x00415d29, 0x00415c28, 0x00415c29, 0x00405b2c, 0x003f5a2d, 0x003e582c, 0x003d5729, 0x003e5726, 0x00475423, 0x00cdcec3, 0x00fef9f9, 0x00fcfaf6, 0x00fefdef,
- 0x00fcfdf3, 0x00f6fbf6, 0x00b1bddb, 0x00657fac, 0x00bde7fd, 0x00a3c8ec, 0x005c82b6, 0x006087c4, 0x008eb4ed, 0x00a1c3ea, 0x00bedbf4, 0x00cfe7f4, 0x00e2e8f0, 0x00eaedea, 0x00f3f0ec, 0x00f5f1e8,
- 0x00fbf2f5, 0x00f6f1f8, 0x00f2f1fa, 0x00e9f0f8, 0x00d8e6f3, 0x00c8d9ef, 0x00a7bedf, 0x00849ac8, 0x006679b2, 0x005a6fa9, 0x004f68ad, 0x003857a6, 0x002e4da0, 0x002c4d9c, 0x002e4fa2, 0x00294b9c,
- 0x0027499b, 0x00194091, 0x00173d8e, 0x002950a0, 0x003a5fb3, 0x003065b7, 0x002853a2, 0x003e4b98, 0x004260b0, 0x002870c2, 0x002275c1, 0x001f5d95, 0x00692f3c, 0x008f3c3d, 0x00984242, 0x00723844,
- 0x00235ba3, 0x003f69b8, 0x004869bc, 0x00385cb4, 0x003e75d0, 0x005387e4, 0x006387e3, 0x007082d4, 0x0094a9d0, 0x00a2cfd6, 0x00abd2d1, 0x00ccd2dd, 0x00bcb6af, 0x00998970, 0x00b99d79, 0x00caa576,
- 0x00deb179, 0x00e1b77b, 0x00dfb87c, 0x00d6ba70, 0x00d2bf6b, 0x00ccac5c, 0x00bc9852, 0x008f7637, 0x005f593b, 0x00555b5f, 0x003f5179, 0x0029468e, 0x001f41a0, 0x001a4194, 0x0020488c, 0x00264e82,
- 0x001f4a9a, 0x00234d9b, 0x002a52a1, 0x002c549f, 0x00325aa3, 0x00315aa6, 0x00315caa, 0x003560b0, 0x003761b0, 0x003e68af, 0x004975b7, 0x005c88c5, 0x0081aaed, 0x0091bafb, 0x0086b0f0, 0x00749dd8,
- 0x006f93bd, 0x0041647b, 0x0017323a, 0x0013251d, 0x0019280d, 0x0019280f, 0x0086917d, 0x00eef0e9, 0x00fdfbfb, 0x00fcfbfd, 0x00fcfcff, 0x00f7fffd, 0x00afb2ad, 0x003a382d, 0x00221a0b, 0x00332113,
- 0x00412614, 0x003f2615, 0x00402a1c, 0x003f2b1c, 0x003b261a, 0x00392013, 0x0035150c, 0x0036130b, 0x00370e0e, 0x00330d0b, 0x00390707, 0x003d0101, 0x00510509, 0x00640d0f, 0x00790f08, 0x009f2812,
- 0x00d14613, 0x00d94914, 0x00c93d14, 0x00b33c2a, 0x00963e58, 0x004f5a89, 0x002e6ab7, 0x002f71d8, 0x003071e5, 0x002e6ece, 0x003267c1, 0x002656a9, 0x000f31a3, 0x001e45b1, 0x002e5db9, 0x00235ea3,
- 0x00215fc1, 0x002e6dca, 0x003572ce, 0x00316fc7, 0x003874cc, 0x003572cb, 0x003d7bd4, 0x003271cb, 0x002f69c3, 0x00447ed6, 0x004684dd, 0x003f83dc, 0x003d81d7, 0x003c7ecf, 0x003b79c8, 0x003e78c7,
- 0x004076c6, 0x003a70c4, 0x003a6fc9, 0x003a6ccc, 0x003f76d2, 0x003b70ce, 0x003f74d1, 0x003f76d1, 0x003b75ce, 0x003977ce, 0x003b7bd1, 0x00397bd0, 0x00397ad1, 0x003679d2, 0x00357ad3, 0x003379d3,
- 0x002f78d5, 0x003375d2, 0x003875d2, 0x003973cd, 0x003479cc, 0x003074c6, 0x003576ca, 0x003976cc, 0x003d7acc, 0x00357ac7, 0x003174c5, 0x003073c9, 0x003777d1, 0x003377ce, 0x002f71ca, 0x002e70c9,
- 0x002d6fcb, 0x003273cd, 0x003275cc, 0x003073cc, 0x003576cc, 0x003274d2, 0x003172ce, 0x003671ca, 0x004277c8, 0x005278bb, 0x00576ea3, 0x00505676, 0x00583d42, 0x006a392c, 0x007e3a22, 0x00863515,
- 0x00753916, 0x00673416, 0x005b2f19, 0x00482919, 0x0030211b, 0x001e1717, 0x00151316, 0x000a0a10, 0x00171119, 0x006e676d, 0x00faf6f6, 0x00fbfdfa, 0x00f7fdf4, 0x00fafdf9, 0x00f8f9fc, 0x00bcbcc8,
- 0x002d3151, 0x00060d3b, 0x000e1654, 0x000c1963, 0x00111d74, 0x000d1b6d, 0x00111b6b, 0x00121a6d, 0x00121971, 0x000c176c, 0x00091568, 0x000c186a, 0x000e1a6a, 0x000f1a68, 0x000e1963, 0x000e1b61,
- 0x00071a68, 0x000d1866, 0x00111461, 0x00101357, 0x000c174c, 0x000a153d, 0x000e1434, 0x0020213a, 0x0028273a, 0x00202430, 0x0022222f, 0x002d2d41, 0x0057515b, 0x00655957, 0x006c594f, 0x007b614d,
- 0x008f6f50, 0x0099744f, 0x009b714b, 0x0094663f, 0x00a06d41, 0x0098774a, 0x00ae8a56, 0x00cb8e4e, 0x00c77f44, 0x00b1754f, 0x00b07c65, 0x00b98e78, 0x00d59079, 0x00e8aa96, 0x00f3bfbc, 0x00eecfdc,
- 0x00f5d4c6, 0x00f5d0c1, 0x00fdddd5, 0x00f6d4cb, 0x00f7dde3, 0x00c3b6bb, 0x00372e38, 0x00040307, 0x00020800, 0x00090e01, 0x0014160c, 0x001d1d23, 0x004b4c53, 0x004e4d54, 0x00100e15, 0x0005050a,
- 0x00030309, 0x00010206, 0x00000004, 0x00000003, 0x00020003, 0x00020101, 0x00010000, 0x00121015, 0x00766f83, 0x00bdb5cf, 0x00c6bedd, 0x00c8c0e2, 0x00cbc3e9, 0x00cec6ef, 0x00cec6ef, 0x00cfc7f2,
- 0x00acaba6, 0x00100a07, 0x00040300, 0x00010200, 0x00010401, 0x00000200, 0x00000100, 0x00000200, 0x00040502, 0x00050503, 0x00040504, 0x00030604, 0x00040504, 0x00020604, 0x00010605, 0x00020506,
- 0x00010401, 0x00010401, 0x00000402, 0x00010403, 0x00040605, 0x00050806, 0x00060908, 0x00050909, 0x0008080b, 0x00050708, 0x00030607, 0x00020507, 0x00020508, 0x0002040a, 0x0003050b, 0x0004060c,
- 0x00000e16, 0x0003101b, 0x00071320, 0x000a1525, 0x000c1627, 0x000d1829, 0x000c1827, 0x000b1823, 0x000c161f, 0x000d171d, 0x000a1617, 0x00091615, 0x000c191e, 0x00091822, 0x00081825, 0x000d1b28,
- 0x000f161f, 0x0022201e, 0x006b6051, 0x007f6d51, 0x00785b36, 0x00806a4b, 0x007b664d, 0x00705644, 0x005d434e, 0x004d456d, 0x003d4f8f, 0x002349a1, 0x00154eb9, 0x002257b9, 0x002f62b9, 0x003a64ae,
- 0x002961b8, 0x002053ab, 0x000f4298, 0x00154397, 0x00204690, 0x00375693, 0x00253f69, 0x00050e2a, 0x00050d0c, 0x000b1007, 0x000c1305, 0x0007150e, 0x000b190f, 0x00111c15, 0x00131e15, 0x00121f17,
- 0x00131e15, 0x0017221a, 0x001c2820, 0x00212e24, 0x0027322b, 0x002d3631, 0x00333936, 0x00373c3a, 0x00373d36, 0x00333a32, 0x0031382f, 0x00333b34, 0x003a403d, 0x003f4345, 0x00464950, 0x004d4f58,
- 0x00575758, 0x00555658, 0x00515253, 0x00525455, 0x004f5152, 0x00474a4b, 0x003a3e3e, 0x00313636, 0x002e3032, 0x00282a2c, 0x001d1e1f, 0x00171a19, 0x001a1c1a, 0x00181a17, 0x00151714, 0x00151714,
- 0x00121311, 0x00101311, 0x000a0e0a, 0x00030701, 0x00040603, 0x004e4f4c, 0x00d1d1ce, 0x00c5c5c5, 0x00b8b9bb, 0x00b2b2b5, 0x00bcbcbd, 0x009c9d9c, 0x006d6d6b, 0x0062635d, 0x0025261d, 0x000d0e04,
- 0x001c0d09, 0x0027160e, 0x00493327, 0x005a4231, 0x004e331e, 0x004b351a, 0x00615037, 0x004f4430, 0x002f2e1d, 0x0027291b, 0x003a3c29, 0x003f3f25, 0x0045442c, 0x003d3d27, 0x003d3c26, 0x0047452f,
- 0x0045412c, 0x00332f1e, 0x001a1304, 0x001a1504, 0x002c2614, 0x004d4020, 0x006c5a35, 0x007c6c50, 0x007f6b60, 0x006c5448, 0x005a3a2d, 0x00603b28, 0x00682e1a, 0x005f180d, 0x00611009, 0x006c1211,
- 0x00644947, 0x007e6562, 0x00654d45, 0x00473127, 0x00332213, 0x001e1205, 0x00130b00, 0x0016110a, 0x00161410, 0x00120f10, 0x00151210, 0x002a210e, 0x00423427, 0x0042342f, 0x002c241f, 0x00130f0c,
- 0x000d0c00, 0x00191102, 0x003a240f, 0x005d351a, 0x00612107, 0x002a1409, 0x00181311, 0x00130e0a, 0x000d0805, 0x00211d1a, 0x0043403b, 0x0038352f, 0x002e2a23, 0x0026231c, 0x00201c15, 0x002d2922,
- 0x0038281e, 0x002e2016, 0x003a2b1e, 0x003c2d1e, 0x00534233, 0x00806e56, 0x00a69375, 0x00a89170, 0x009b7e55, 0x0077552b, 0x00583f18, 0x005e5946, 0x004c3a23, 0x002a0e03, 0x005c3022, 0x00864e41,
- 0x00783020, 0x00722110, 0x00752006, 0x00903318, 0x00b35634, 0x00996848, 0x005b4632, 0x00332e2a, 0x00364551, 0x00575f68, 0x009c9594, 0x00b19886, 0x00936e4d, 0x00574023, 0x001a1002, 0x00020801,
- 0x00141710, 0x00202420, 0x00101415, 0x0003060b, 0x0001020b, 0x00000109, 0x00000107, 0x00060a0e, 0x00444747, 0x00797c79, 0x00808881, 0x00717d7c, 0x006a675a, 0x00564635, 0x00523c25, 0x006d5640,
- 0x005e4e3d, 0x004d4137, 0x004a423b, 0x00574a46, 0x005f5047, 0x00413e2d, 0x002d331d, 0x00444636, 0x00686558, 0x004f4b44, 0x00817c77, 0x00e7e1dd, 0x00fefcfc, 0x00fdfbfa, 0x00fefdfc, 0x00fefdff,
- 0x00d7d5d6, 0x00878686, 0x00757576, 0x009f9fa0, 0x00d0d0d0, 0x00e1e1e0, 0x00dedfde, 0x00dfdfdf, 0x00e2e1e2, 0x00d8d9da, 0x00c8c9ce, 0x00a9aec3, 0x007b839f, 0x004e5a80, 0x004a5a86, 0x0053649b,
- 0x001f326e, 0x001f3070, 0x001a2d6c, 0x001b2f6a, 0x001d3066, 0x00392843, 0x00522e37, 0x005e313c, 0x006a2f32, 0x007a393c, 0x008a504c, 0x008b554b, 0x00836252, 0x0088735f, 0x00807d64, 0x007b836a,
- 0x00838573, 0x00848679, 0x0055564d, 0x0021211e, 0x00323036, 0x0048474d, 0x00383939, 0x00191c19, 0x00202215, 0x0026291a, 0x00363929, 0x003f4137, 0x003c3e33, 0x003b3c34, 0x0041433a, 0x0040423b,
- 0x0042453a, 0x00484941, 0x0048493e, 0x00494940, 0x004c4a41, 0x004f5450, 0x00524f4c, 0x0075615c, 0x00b38071, 0x00bb7a6a, 0x00ac675b, 0x00a66562, 0x00805a6e, 0x0054456b, 0x003d4375, 0x00283f7d,
- 0x002e3793, 0x002e3a86, 0x005f74ae, 0x00778ebc, 0x00385286, 0x003e5196, 0x004853a2, 0x005556a4, 0x006c678f, 0x00908697, 0x00bca7a3, 0x00e7b6a2, 0x00e3c7c8, 0x00dddceb, 0x009eb2d4, 0x00658ebf,
- 0x005083bf, 0x004678b3, 0x003f6ba1, 0x005d7fac, 0x00839bbf, 0x007da1bf, 0x005d8aad, 0x004c7eb4, 0x00437ac0, 0x004779b6, 0x005582ab, 0x006a9099, 0x0094a699, 0x00cad7cc, 0x00f8fdf8, 0x00fafbfd,
- 0x00fafefd, 0x00fdfefc, 0x00f9f6ef, 0x00c9c1b1, 0x0082735d, 0x007f725a, 0x00bdb49e, 0x00f5f3e4, 0x00fdfef8, 0x00fefefc, 0x00fafbfd, 0x00fef8fd, 0x00fdf9fd, 0x00fdfbfd, 0x00d1ddd4, 0x008ba08c,
- 0x0061795b, 0x004b6442, 0x00425b31, 0x00445b2b, 0x00495e29, 0x00476027, 0x00456327, 0x0046632b, 0x0048652c, 0x0049652d, 0x0049652e, 0x0049662e, 0x0049672e, 0x004a682e, 0x004c692f, 0x004d6a31,
- 0x004f6d30, 0x00517033, 0x00527233, 0x00527333, 0x00537434, 0x00537433, 0x00557536, 0x00557436, 0x00577638, 0x00537435, 0x00546e42, 0x007e8b8d, 0x00919c9f, 0x00909b9e, 0x00b5bfc4, 0x00c2cad2,
- 0x00cacfd7, 0x00cbcfd6, 0x00c4c8d0, 0x00cacfd1, 0x00dce2e6, 0x00d6e6df, 0x00cce2d7, 0x00bed4c2, 0x009ab093, 0x00789169, 0x00637e4a, 0x00607f41, 0x0063833c, 0x0064843c, 0x0065863a, 0x00638438,
- 0x0061843f, 0x00628440, 0x0060823c, 0x0062853f, 0x0065873f, 0x0064863f, 0x00608339, 0x0062843b, 0x00638240, 0x0062833e, 0x0062823c, 0x0065833b, 0x0065813d, 0x0065823b, 0x0064823b, 0x0066833d,
- 0x0065813e, 0x0064813c, 0x00638239, 0x0063813a, 0x00638239, 0x0062823b, 0x0062823a, 0x0063813a, 0x00638039, 0x00628039, 0x00628039, 0x00618039, 0x00607f39, 0x005f7f38, 0x005e7e38, 0x005d7d38,
- 0x00607b38, 0x00607b37, 0x005e7a35, 0x005c7934, 0x005b7934, 0x00597934, 0x00577933, 0x00567a33, 0x00537633, 0x00537732, 0x00527631, 0x0055722f, 0x00527432, 0x004d7531, 0x004b7432, 0x004b7531,
- 0x004c7531, 0x004d7330, 0x004a6e2e, 0x00506c2f, 0x00506c2e, 0x004a6b2e, 0x0040672b, 0x0047672c, 0x00506a32, 0x00526631, 0x004e602c, 0x004e632e, 0x004e632d, 0x004a622b, 0x0046632a, 0x0045642c,
- 0x0046612a, 0x0045602a, 0x00425f29, 0x00405e27, 0x00405c26, 0x003f5a26, 0x003e5a28, 0x003f592a, 0x003d582a, 0x003c5628, 0x003c5622, 0x00465620, 0x00d6d6d0, 0x00fff6fe, 0x00fffcfa, 0x00fffdee,
- 0x00fdfbf3, 0x00f9fefd, 0x009eadd4, 0x006580b3, 0x0099c5e9, 0x005f8cc4, 0x003e6aaa, 0x004f76b6, 0x005e87b6, 0x006d8db7, 0x008daacb, 0x00b9d0e4, 0x00e7f5fa, 0x00e9eff1, 0x00ecede8, 0x00fbf6ed,
- 0x00f2f2fe, 0x00edf0ff, 0x00c9cfe2, 0x009aa7c0, 0x007086aa, 0x005f7caa, 0x004e70a6, 0x004264a3, 0x00375aa6, 0x003657a6, 0x003055a8, 0x002d54aa, 0x002850a4, 0x002b53a6, 0x002b57a4, 0x002852a2,
- 0x001d4692, 0x001c4795, 0x00113d8a, 0x001a4590, 0x002f5ba9, 0x003064b3, 0x00305aa7, 0x003b4794, 0x002d499b, 0x002064b2, 0x00307bbb, 0x002e6290, 0x007a333a, 0x00a03a31, 0x00b44333, 0x009c4430,
- 0x005968a1, 0x004b60a4, 0x004060ae, 0x003967be, 0x003a77d1, 0x005382d8, 0x00627ecd, 0x0095a0de, 0x00dde7f9, 0x00e4fbfa, 0x00e1f4e9, 0x00e7ddd6, 0x00cfba9d, 0x00c8a97d, 0x00d3ac75, 0x00e0ac6e,
- 0x00ebb477, 0x00ecb87f, 0x00e1b778, 0x00d8b777, 0x00cbb66c, 0x00c7a95e, 0x00a4853d, 0x0077612c, 0x00585b4c, 0x004c5a72, 0x00324c84, 0x00214398, 0x0019409b, 0x001a4191, 0x00214688, 0x00274a7c,
- 0x001f4594, 0x00254b9a, 0x00294f9c, 0x0029519c, 0x002f57a2, 0x002d57a2, 0x002e59a3, 0x002f5ba4, 0x00315ea6, 0x003463aa, 0x003c6aae, 0x004c77b5, 0x006e96de, 0x0081adf4, 0x0081b0f6, 0x0073a0e6,
- 0x006d97c8, 0x00577b9b, 0x00264352, 0x00112725, 0x0014250d, 0x00192812, 0x00869281, 0x00eef2e9, 0x00fcfbf9, 0x00fefafc, 0x00fbfbff, 0x00f9feff, 0x00aeb5b0, 0x003a3930, 0x0020190b, 0x00322012,
- 0x003e2517, 0x0042291c, 0x003e2a1b, 0x003b2718, 0x00382315, 0x00372117, 0x00351d15, 0x002f1710, 0x00291208, 0x00260d06, 0x002a0a04, 0x00350301, 0x0043090a, 0x00540c0b, 0x00630d09, 0x007c1002,
- 0x00b83609, 0x00d04316, 0x00cc4118, 0x00c6371f, 0x00bb3635, 0x0077536f, 0x004b66a2, 0x003c6ec9, 0x002971e2, 0x002c6bd0, 0x002f63c4, 0x002d52ac, 0x0011349e, 0x001a45ac, 0x00285db8, 0x002060a9,
- 0x00225cbc, 0x00306cc8, 0x003571cd, 0x00326fc6, 0x003773c8, 0x003673c8, 0x003f7cd1, 0x003471c8, 0x003471ca, 0x004681e0, 0x004683e2, 0x004285dc, 0x004081db, 0x003b79d1, 0x003673c8, 0x003777c9,
- 0x00427ed0, 0x00376fc3, 0x00346dc4, 0x00376dca, 0x003a71ce, 0x003a71cf, 0x003b77d3, 0x003a73cf, 0x003772cb, 0x003b77cf, 0x003e7bd0, 0x003b7ace, 0x003a7ad0, 0x003779cf, 0x00367bd0, 0x00347bd0,
- 0x003779d0, 0x003777d0, 0x003574ce, 0x003677cf, 0x00377acf, 0x003277c9, 0x003478ca, 0x003677cc, 0x003679ca, 0x003779cb, 0x003070c4, 0x003071c7, 0x003575ce, 0x003376ce, 0x002d6fc7, 0x002c6dc6,
- 0x002f71c9, 0x003275cc, 0x003074ca, 0x002e76cc, 0x002b75ca, 0x003076cc, 0x003273cb, 0x003274ce, 0x003274cc, 0x003b71c0, 0x004572b3, 0x005572a1, 0x0061596c, 0x0060413c, 0x006a3722, 0x007f3f1e,
- 0x0074391b, 0x0068341b, 0x00552c16, 0x00422614, 0x002e1f17, 0x001e1a17, 0x00161414, 0x000d0b11, 0x000e0c11, 0x00625d62, 0x00f6f4f2, 0x00fafdf8, 0x00f9fdf6, 0x00fcfdfb, 0x00fcfcfe, 0x00c8c8cf,
- 0x0037374f, 0x00090d33, 0x000c1549, 0x000c1759, 0x000c1b6a, 0x000c1963, 0x000e195e, 0x00101a61, 0x00111867, 0x000e1764, 0x000b1661, 0x000d1961, 0x000e195e, 0x000b1657, 0x000a1450, 0x000c164f,
- 0x000b144e, 0x000e144d, 0x0012154c, 0x00131847, 0x0013153d, 0x00171836, 0x0027263b, 0x003f3b4c, 0x00524a57, 0x00605762, 0x00777179, 0x00928c9b, 0x00b2adb8, 0x00c2b6be, 0x00aea1a2, 0x009b8c85,
- 0x00856f5e, 0x00876555, 0x00825d45, 0x007e533b, 0x00865438, 0x0087583d, 0x009d6744, 0x00c37c4c, 0x00d0915f, 0x00be9270, 0x00ad8b78, 0x009e8173, 0x00bc8d7c, 0x00eabeb7, 0x00fce7e8, 0x00fbeefd,
- 0x00fae7e3, 0x00f3d6ce, 0x00f5d0c8, 0x00f7cec4, 0x00f3d4d2, 0x00d3bfbe, 0x00483f40, 0x00060407, 0x00000600, 0x00040a01, 0x0012140c, 0x0034333d, 0x005b5a62, 0x003c3b43, 0x0004030a, 0x00020207,
- 0x00020206, 0x00030307, 0x00020204, 0x00020203, 0x00000002, 0x00020001, 0x00010001, 0x000e0c10, 0x00696373, 0x00b5aec5, 0x00c2bad7, 0x00c6bede, 0x00c8bfe6, 0x00cac2e9, 0x00cbc3e9, 0x00cec6ed,
- 0x00b3aeae, 0x00180e0c, 0x000e0703, 0x00040200, 0x00010502, 0x00000400, 0x00000600, 0x00000500, 0x00010303, 0x00030303, 0x00030504, 0x00020503, 0x00020403, 0x00000302, 0x00000402, 0x00010401,
- 0x00010404, 0x00000403, 0x00020403, 0x00020504, 0x00040705, 0x00050907, 0x00080a08, 0x00090b08, 0x00090a0c, 0x0007090c, 0x0006070b, 0x0003060a, 0x00010408, 0x00000407, 0x00030509, 0x0005070b,
- 0x00020c19, 0x00030e1b, 0x00071320, 0x00081423, 0x000b1728, 0x000c1726, 0x000e1926, 0x000d1824, 0x000d191e, 0x000d191e, 0x000d181b, 0x000e191c, 0x00121d23, 0x000d1923, 0x000f1b27, 0x000e1824,
- 0x00232226, 0x00655d54, 0x00857464, 0x0077593f, 0x008b6740, 0x00b08b68, 0x009b7450, 0x0082563c, 0x00734f4a, 0x00524558, 0x002f3663, 0x0026468e, 0x00154ba9, 0x001249a5, 0x002557ad, 0x002b58a7,
- 0x002250a0, 0x00184594, 0x000d3687, 0x000c3681, 0x00234389, 0x00314d85, 0x00253a64, 0x0007132b, 0x00060c0f, 0x000b1006, 0x000e1407, 0x000d1810, 0x00121d17, 0x0017221b, 0x001a251e, 0x001b2821,
- 0x001b251f, 0x001c2721, 0x001f2a24, 0x00222e26, 0x0026312a, 0x002b332f, 0x002f3633, 0x00323734, 0x00363a34, 0x00333932, 0x00333831, 0x00363c36, 0x003c4340, 0x00414648, 0x00494e53, 0x004f545a,
- 0x005d6062, 0x005e6163, 0x005d5f61, 0x005e6162, 0x005d6062, 0x00595c5d, 0x004b4e4f, 0x00424345, 0x003a393e, 0x00303133, 0x00212323, 0x00181a18, 0x00151814, 0x00151814, 0x00171916, 0x00171a17,
- 0x00181b17, 0x00181b18, 0x0010130f, 0x00080b07, 0x00020603, 0x005a5d5a, 0x00edeeec, 0x00ebeae9, 0x00e0dfe3, 0x00dbdadd, 0x00e3e2e5, 0x00b7b7b7, 0x00767773, 0x0060615a, 0x0022241b, 0x000b0e02,
- 0x001c0e0a, 0x002f1e16, 0x00685447, 0x00725c4b, 0x00583f2a, 0x00513b22, 0x005f4e35, 0x004c402a, 0x002b2a1a, 0x0026281b, 0x003b3d2d, 0x0046462f, 0x0046462d, 0x00414129, 0x0044432a, 0x004d4b33,
- 0x0047422f, 0x0036311d, 0x00251d0c, 0x0029240d, 0x003a3422, 0x00544726, 0x00624f2e, 0x0065543a, 0x006c564d, 0x00614b40, 0x005e4137, 0x00694735, 0x00693522, 0x00591a0a, 0x004f0600, 0x00520404,
- 0x00432424, 0x00422521, 0x00391b1a, 0x003a1f16, 0x00301b11, 0x001e0d04, 0x001b0c07, 0x001f1312, 0x00180e0e, 0x000f090a, 0x00181010, 0x00282211, 0x0035291f, 0x00322721, 0x00221b16, 0x00120d0c,
- 0x00090801, 0x00120c00, 0x00341f0c, 0x00573119, 0x0060270e, 0x00361f14, 0x002d2b23, 0x002a281f, 0x004d4741, 0x00908a83, 0x00cbc6bf, 0x00afaaa3, 0x007e7972, 0x00514e46, 0x00121007, 0x000e0c03,
- 0x0034130c, 0x00563a2d, 0x00715649, 0x00442b1c, 0x00361e0e, 0x00674e38, 0x009b8062, 0x009d7e5d, 0x008d6943, 0x007a5229, 0x00694b28, 0x00594634, 0x00412a18, 0x002d0f02, 0x00492215, 0x006e3c30,
- 0x00824037, 0x007d3227, 0x0069180c, 0x006c1504, 0x00933826, 0x00895a4b, 0x005f514b, 0x00323239, 0x00172537, 0x00262f37, 0x0067625f, 0x00917c68, 0x00977754, 0x005d4a2d, 0x00251d0d, 0x00252c26,
- 0x004a4d48, 0x004d4f4b, 0x00373737, 0x0017171b, 0x0004030a, 0x00020209, 0x00010105, 0x000f0e10, 0x00565857, 0x00858982, 0x00858a86, 0x0074807e, 0x00787265, 0x006d604c, 0x00654f38, 0x00705b41,
- 0x00574837, 0x00544b3d, 0x00746d63, 0x00847b6e, 0x006d5e50, 0x003c3927, 0x002c2e1e, 0x002b2e1c, 0x00373029, 0x0028231b, 0x0076706c, 0x00e6e0de, 0x00fffdfc, 0x00fffdfd, 0x00fcfcfb, 0x00fcfffb,
- 0x00d5d3d6, 0x00818181, 0x006e6e6d, 0x00979795, 0x00c6c6c5, 0x00d9dad9, 0x00dbdcdc, 0x00d8dada, 0x00dad7d8, 0x00d9dad9, 0x00d8dade, 0x00d3d7e3, 0x00b9bed5, 0x00919ab7, 0x00707ca2, 0x0062719d,
- 0x003a487d, 0x00334479, 0x002e3e73, 0x002e3e6c, 0x00344271, 0x007a425f, 0x00ac4f60, 0x00b45664, 0x00af535e, 0x00b35e66, 0x00c47a7b, 0x00c18783, 0x00a2867d, 0x008d867a, 0x0082877a, 0x007d8e81,
- 0x00898b7b, 0x008e8f84, 0x0062625c, 0x002d2d2c, 0x0039383e, 0x004d4d52, 0x00404040, 0x00262625, 0x002c2e29, 0x0036392a, 0x0048493c, 0x00535348, 0x004f4f46, 0x004c4d42, 0x0051524a, 0x004f5147,
- 0x0052534c, 0x0055564b, 0x0056564e, 0x0054554e, 0x00575750, 0x00555e54, 0x00545951, 0x00887f74, 0x00d7b4a7, 0x00ddb2a1, 0x00d7a59e, 0x00cda09b, 0x00ae93a3, 0x008b89a0, 0x00707aa1, 0x00526d9c,
- 0x0050549c, 0x00464f86, 0x006e7ea5, 0x00879fba, 0x005b7294, 0x005a6c9e, 0x007680bc, 0x00989ad7, 0x00bdb7d5, 0x00cecacf, 0x00e5d4cd, 0x00f2d1c3, 0x00eedcdd, 0x00e5e6f1, 0x009cacc3, 0x004e6d95,
- 0x00466ea0, 0x003f6797, 0x003e5d8a, 0x00557195, 0x008da0be, 0x008dacc2, 0x006c8da9, 0x0048749f, 0x00416fb0, 0x004975a9, 0x005b81a4, 0x0077949c, 0x0098a799, 0x00ccd7cc, 0x00fafef8, 0x00fcfdff,
- 0x00fafeff, 0x00fcfcfa, 0x00fbf8ed, 0x00d1c9b7, 0x00938770, 0x0090846d, 0x00cac0ab, 0x00f9f5e7, 0x00fdfdf7, 0x00fcfcfa, 0x00fcfdff, 0x00fdf9fd, 0x00fdfdfd, 0x00fcfdfc, 0x00d5e0db, 0x00a3b2aa,
- 0x00869c86, 0x005b7252, 0x00425a33, 0x00435d28, 0x00476026, 0x00476328, 0x00456429, 0x0047642c, 0x004a662c, 0x004a662d, 0x004a672f, 0x004a6730, 0x004b682f, 0x004c692f, 0x004d6b30, 0x004d6d31,
- 0x00517032, 0x00507030, 0x00527333, 0x00517332, 0x00547636, 0x00527334, 0x00547536, 0x00547434, 0x00577938, 0x00537633, 0x004a6435, 0x00849287, 0x00b8c4bd, 0x00a1afa6, 0x00aab6b3, 0x00bac6c3,
- 0x00c4cccd, 0x00d2d9db, 0x00d6dbe1, 0x00d0d4dd, 0x00c9cdd7, 0x00c9d2e7, 0x00d0dcf0, 0x00d5e0ed, 0x00d9eae1, 0x00c2d8bc, 0x0092aa84, 0x0077915b, 0x0065803d, 0x00668336, 0x006a8839, 0x00688b35,
- 0x0064873d, 0x0065893e, 0x0063863d, 0x0062853b, 0x00658841, 0x00638740, 0x00628440, 0x00608440, 0x00658643, 0x00648442, 0x0063843c, 0x00618732, 0x00628933, 0x00618732, 0x00628735, 0x00618634,
- 0x00618635, 0x00618636, 0x00618636, 0x00608637, 0x00608535, 0x00618239, 0x0062813a, 0x0062813b, 0x0063833c, 0x0063823b, 0x0063823b, 0x0062813a, 0x00617f39, 0x00607e38, 0x00607d37, 0x005f7d37,
- 0x00617c36, 0x00617c36, 0x00607c37, 0x005f7c36, 0x005e7b36, 0x005b7b36, 0x00597a37, 0x00587a38, 0x00567736, 0x00547734, 0x00547533, 0x005a7030, 0x00587131, 0x00527230, 0x004e722f, 0x004d742f,
- 0x004e7635, 0x004d7432, 0x004c6d30, 0x004b6a2f, 0x004d682d, 0x004b672c, 0x00526a33, 0x00516631, 0x004f632e, 0x004f642d, 0x004b632c, 0x004a662d, 0x004a652d, 0x004a652d, 0x0048642b, 0x0048632a,
- 0x0045622d, 0x0045612c, 0x00445f2b, 0x00425e2a, 0x00405c28, 0x003e5a27, 0x003c5a27, 0x003d5826, 0x003d572a, 0x003a5628, 0x003b5424, 0x0043561d, 0x00e3e3de, 0x00fdfafc, 0x00fdfcfb, 0x00fdfef3,
- 0x00fcfef7, 0x00f5fefc, 0x0090a0cc, 0x004a66a2, 0x005381ad, 0x003e69ac, 0x003d67b4, 0x003c62af, 0x00375c9d, 0x003c5f96, 0x004b6797, 0x005a779b, 0x00a2b2d2, 0x00d8e5f6, 0x00eef6fe, 0x00e1e4f1,
- 0x00b7c0df, 0x008e9dbf, 0x006a7aa2, 0x00576f9b, 0x004a6a9d, 0x004b6fa9, 0x00456cad, 0x00416ab0, 0x004167ba, 0x003660b0, 0x002951a7, 0x002652a2, 0x00254da0, 0x002651a0, 0x002853a3, 0x0026519e,
- 0x0017418f, 0x00194791, 0x00153f8a, 0x0013418a, 0x0028529f, 0x003162ad, 0x003961af, 0x003d55a5, 0x001e4191, 0x00124a8b, 0x002d5f95, 0x003b4a70, 0x00731e29, 0x0093251a, 0x00ad3b23, 0x00a94e28,
- 0x00915480, 0x00685e8f, 0x00526dad, 0x002e73c0, 0x002666bd, 0x003962ac, 0x00768dc2, 0x00c0cae6, 0x00f0f2fb, 0x00e9f0ee, 0x00deded3, 0x00d2bd9f, 0x00c3a97d, 0x00ceac76, 0x00d7af74, 0x00e2b473,
- 0x00edb87a, 0x00e8b97c, 0x00e2b57d, 0x00d9b677, 0x00cba86c, 0x00ba9b52, 0x008b7032, 0x006d5830, 0x00585b65, 0x0043547a, 0x002b4787, 0x001e4391, 0x00184192, 0x00183f89, 0x001e438a, 0x00234784,
- 0x001e4291, 0x00224693, 0x00254b98, 0x00254c97, 0x002a529c, 0x002a549d, 0x002b569e, 0x002b579f, 0x002c5aa3, 0x00305ea5, 0x003661a7, 0x003e68a8, 0x005580c6, 0x00719fe4, 0x0082b2f9, 0x007caef4,
- 0x007a9ed7, 0x006f91b5, 0x003b5970, 0x001e363c, 0x0013251b, 0x00162819, 0x00869584, 0x00eef2e8, 0x00fffbff, 0x00fdfbfd, 0x00fcfbfe, 0x00f7fffd, 0x00aeb4af, 0x003b3b32, 0x0021190e, 0x00312116,
- 0x00422d1e, 0x003f2c1f, 0x003e2a1e, 0x00382519, 0x00321f12, 0x00311c13, 0x002c1911, 0x0029150e, 0x002c1411, 0x002a1411, 0x0029110a, 0x002b0f05, 0x00310d08, 0x00400c0b, 0x005b1411, 0x00650e04,
- 0x008d1704, 0x00b82f08, 0x00d1401a, 0x00d0351d, 0x00cf312d, 0x00a14a57, 0x00785e83, 0x00536dab, 0x002976d7, 0x002b6bd3, 0x003264cc, 0x003651b2, 0x001b3d94, 0x001949a2, 0x00255fb9, 0x001f5fba,
- 0x00215dbb, 0x002e6ac6, 0x003772cd, 0x003672c8, 0x003975c8, 0x003a77cb, 0x003c79cf, 0x002b68c1, 0x002b66c4, 0x00447ddb, 0x004885e3, 0x004486e1, 0x004283d9, 0x003b7acd, 0x003777c7, 0x003676c3,
- 0x003b78ca, 0x00326cc1, 0x00366cc3, 0x003871c9, 0x003e75d0, 0x003b75d1, 0x003a75cf, 0x003672cd, 0x003673cd, 0x003977d1, 0x003b7bd2, 0x00397acf, 0x003979d1, 0x003778cf, 0x003679cd, 0x00357ace,
- 0x003c7acf, 0x003878cb, 0x003878ca, 0x003778cb, 0x003b7acd, 0x003675c8, 0x003978c9, 0x003778c7, 0x003778ca, 0x003575c8, 0x003070c5, 0x00326fc6, 0x003574cb, 0x003371cc, 0x002d6ec8, 0x002d6dc4,
- 0x002d6fc9, 0x003074ca, 0x003074cd, 0x002d71c8, 0x002e72ca, 0x002e72c7, 0x002e73ca, 0x002f76ca, 0x002f75cb, 0x002e71bd, 0x00356eb3, 0x004975aa, 0x006c7994, 0x00706770, 0x00634a46, 0x00623e30,
- 0x006b3821, 0x00623720, 0x00532d18, 0x00432514, 0x00352116, 0x00261b12, 0x001d1610, 0x00130d0c, 0x000d040b, 0x00534e53, 0x00ebeced, 0x00f9fef8, 0x00fafdf9, 0x00fbfefa, 0x00fcfdff, 0x00d2d2d9,
- 0x00424256, 0x00080c2c, 0x000c1141, 0x000b154c, 0x0009135b, 0x000b1756, 0x000d1554, 0x000a1352, 0x000d1256, 0x000b1053, 0x000b0f51, 0x000b0f4c, 0x000f144b, 0x000d1343, 0x000f133f, 0x00141842,
- 0x001a1737, 0x00221f3d, 0x002c2946, 0x00272641, 0x0027223e, 0x0037324c, 0x00655d75, 0x008b8197, 0x00a295aa, 0x00afa3b5, 0x00c8b7d0, 0x00cbc0d8, 0x00d7cce6, 0x00e0d3e6, 0x00dacddc, 0x00cec1c7,
- 0x00c3aeae, 0x00b79a95, 0x00ab8682, 0x00a1786e, 0x0095655e, 0x0086433c, 0x00833127, 0x009b4026, 0x00ad6845, 0x00ae8e76, 0x00c3b5a5, 0x00cac6bc, 0x00dbc2b5, 0x00f4dedb, 0x00faf4f8, 0x00f8f3fc,
- 0x00fdf4f5, 0x00f7e4e1, 0x00f5d5d0, 0x00f5c9c4, 0x00efcac9, 0x00dfc4c7, 0x00675a5c, 0x000b0d0f, 0x00000300, 0x00000500, 0x00181b13, 0x004b4951, 0x0058555b, 0x00211f24, 0x00020106, 0x00000003,
- 0x00020104, 0x00040305, 0x00060605, 0x00040302, 0x00010002, 0x00010001, 0x00010001, 0x00080608, 0x005d5765, 0x00a69fb5, 0x00b9b2cc, 0x00bbb3d1, 0x00bcb4d8, 0x00c0b8df, 0x00c3bce1, 0x00c6bee6,
- 0x00b6b1ae, 0x00241713, 0x00181009, 0x000d0802, 0x00070701, 0x00020500, 0x00020500, 0x00010400, 0x00000100, 0x00010302, 0x00020402, 0x00010401, 0x00010302, 0x00000202, 0x00000201, 0x00010301,
- 0x00000403, 0x00010404, 0x00020403, 0x00020503, 0x00040807, 0x00060a08, 0x00090b09, 0x000c0c0a, 0x000a0d0b, 0x000a0c0b, 0x00080a0c, 0x0005070a, 0x00010406, 0x00000205, 0x00010307, 0x0005050b,
- 0x00000916, 0x00030d19, 0x0007101d, 0x00091322, 0x000b1525, 0x000d1725, 0x000e1823, 0x00101824, 0x000c191c, 0x000d191c, 0x000f1a20, 0x00101921, 0x00141a25, 0x00161b26, 0x00181b24, 0x0019181e,
- 0x00645652, 0x00c0ab9f, 0x00b49680, 0x009e7657, 0x00b88557, 0x00bd8457, 0x009c5e33, 0x008b4e24, 0x00855339, 0x0064483c, 0x00332d38, 0x00202f55, 0x001b4385, 0x00163f8b, 0x001f4b99, 0x00224ea1,
- 0x00264481, 0x00173472, 0x00213d7d, 0x0035518e, 0x002b467e, 0x002b406e, 0x00213356, 0x00061226, 0x00040f0d, 0x000a1308, 0x000f160b, 0x00101a16, 0x00161f19, 0x001c2521, 0x00202924, 0x00212c23,
- 0x00212a26, 0x00232c26, 0x00222d28, 0x00232c27, 0x00242d27, 0x00252e2a, 0x00282e2d, 0x0029302c, 0x002d332c, 0x002e352d, 0x00323831, 0x00373e39, 0x003e4543, 0x0043494b, 0x004c4f54, 0x0050555b,
- 0x00606265, 0x0066686a, 0x0068696b, 0x006b6e6f, 0x006c6f70, 0x00686c6d, 0x005c5e60, 0x004f5053, 0x00404344, 0x00343838, 0x00252827, 0x001a1c19, 0x00131613, 0x00141713, 0x001b1e19, 0x001e231e,
- 0x00202422, 0x001f231f, 0x001a1d18, 0x000f120e, 0x00070b05, 0x00626662, 0x00fdfefc, 0x00fdfcfb, 0x00f8f7f9, 0x00f6f5f7, 0x00f9f8fb, 0x00c8c8c9, 0x00797977, 0x00656761, 0x00292b22, 0x000d1004,
- 0x001b0d09, 0x0035261e, 0x00746157, 0x00756252, 0x0056412d, 0x00523f2a, 0x0061513d, 0x00463c28, 0x00282516, 0x0027281c, 0x00424535, 0x00494c32, 0x00434428, 0x003f3f24, 0x004a482e, 0x0057543a,
- 0x00454026, 0x00312b12, 0x00362e16, 0x004b452b, 0x005d563c, 0x00574929, 0x004d3b1d, 0x004c3a23, 0x00574839, 0x00645547, 0x00766352, 0x0078634d, 0x0067442e, 0x00532715, 0x003f0c00, 0x00390001,
- 0x00270907, 0x001e0000, 0x003f211d, 0x00664a45, 0x00483129, 0x00240f09, 0x0024120c, 0x00311f1d, 0x002c1e21, 0x00190e10, 0x0014080b, 0x001b180d, 0x00231a16, 0x00221814, 0x001e1612, 0x00120e0d,
- 0x00050902, 0x000d0a01, 0x00281b09, 0x00422c15, 0x00532411, 0x00312013, 0x00262419, 0x00373328, 0x00918d83, 0x00d8d4ca, 0x00ddd8cf, 0x00bcb7ae, 0x00a6a297, 0x006b685c, 0x00110f07, 0x00050300,
- 0x003f1008, 0x007d4f3e, 0x00b58677, 0x00875e4d, 0x0047210f, 0x0059321e, 0x00886249, 0x00926c4f, 0x008c623e, 0x00754926, 0x00663d20, 0x005e402e, 0x00563826, 0x00553829, 0x00684a3a, 0x00785a50,
- 0x00895956, 0x00773e3a, 0x0054150f, 0x00510a01, 0x00721c1d, 0x00623b4a, 0x00433d54, 0x00222a43, 0x00152739, 0x00202f34, 0x0056564f, 0x007d6e56, 0x00886f4d, 0x005b4a2e, 0x003c3426, 0x00515653,
- 0x006e6f69, 0x00575751, 0x003f3e3a, 0x002d2b29, 0x000c0b0c, 0x00020203, 0x00060506, 0x00191817, 0x005a5d56, 0x0085837d, 0x00858681, 0x00768183, 0x00786f63, 0x0071614e, 0x00624c33, 0x00604b2e,
- 0x005a4731, 0x005c5341, 0x00827c6a, 0x00908975, 0x00685e47, 0x00373525, 0x00252719, 0x0017170a, 0x0019170e, 0x001a160d, 0x00736c69, 0x00e5dedc, 0x00fdfbfb, 0x00fefefd, 0x00fcfcfc, 0x00fdfdfa,
- 0x00d9d9d8, 0x00828381, 0x006f706f, 0x00979897, 0x00c5c6c6, 0x00ddddde, 0x00e5e4e5, 0x00e5e4e4, 0x00e1e1e2, 0x00e0e0e1, 0x00e3e2e3, 0x00eaeaed, 0x00e7e6f4, 0x00d9ddee, 0x00b8c0d6, 0x009da8c3,
- 0x006f7b9c, 0x006d789a, 0x006a759a, 0x006c7999, 0x00727a9a, 0x00bb7684, 0x00e37c7f, 0x00e88484, 0x00e28c8f, 0x00e7a3a4, 0x00f0bfbe, 0x00e6c1c1, 0x00bdafb0, 0x00acaaae, 0x00a1a8ae, 0x00a3b1b9,
- 0x00acafa1, 0x00abaca2, 0x008b8b87, 0x005e5f5e, 0x00636367, 0x00707074, 0x006c6b6c, 0x00575556, 0x005f605a, 0x0064665a, 0x0075776b, 0x0081817b, 0x007e7e77, 0x007b7b74, 0x007d7e76, 0x007c7d74,
- 0x007e7e78, 0x0081827b, 0x007f8077, 0x0080817a, 0x0080847a, 0x007b8b7d, 0x00809183, 0x00aeb6a8, 0x00e4dcd0, 0x00ecdfd4, 0x00f2e0dd, 0x00f1e1df, 0x00e7e1e9, 0x00d9e1ea, 0x00cad9e7, 0x00b8cfe4,
- 0x00b2b2d7, 0x00a0a6bc, 0x00aab5be, 0x00b6c6c7, 0x00aabac2, 0x00b7c5d7, 0x00ced8ee, 0x00e3e9fd, 0x00eff0f7, 0x00ebeee1, 0x00e8e3d4, 0x00eddfd8, 0x00ece5e5, 0x00eef1f8, 0x00b4bdc7, 0x00788998,
- 0x00657c92, 0x005d7389, 0x004d6175, 0x005b6f7f, 0x0084929f, 0x009ba9b4, 0x00899aa9, 0x00768fac, 0x00678db8, 0x006c8fb4, 0x00829bb4, 0x009fb0b6, 0x00b4bbad, 0x00d6dbcf, 0x00fbfcf7, 0x00fcfefd,
- 0x00fcfefe, 0x00fefef9, 0x00fefbf0, 0x00d9d5c2, 0x009e967e, 0x009d947d, 0x00d0c7b1, 0x00fcf6e6, 0x00fcfdf4, 0x00fefefa, 0x00fbfdfd, 0x00fbfafa, 0x00fcfdfe, 0x00fbfcfe, 0x00d5dee0, 0x00a6b1b5,
- 0x0098aca0, 0x00657b63, 0x00435c37, 0x0043602b, 0x00446223, 0x00446129, 0x0046632a, 0x0049642c, 0x004a672f, 0x004a682f, 0x004b6930, 0x004b6931, 0x004d6932, 0x004e6b32, 0x004f6d32, 0x00506e32,
- 0x004f7033, 0x00507133, 0x00527335, 0x00527435, 0x00547636, 0x00557636, 0x00547535, 0x00537433, 0x0058793a, 0x00567739, 0x00405d27, 0x00425833, 0x006d8060, 0x0073866a, 0x007c8c79, 0x0093a192,
- 0x009ba4a0, 0x00a2abad, 0x00bdc3ca, 0x00d7dae7, 0x00cfd3e5, 0x00bfc2e2, 0x00cdcdf2, 0x00dee0fb, 0x00e3e9f5, 0x00e3eeea, 0x00e1eedf, 0x00ccdcc3, 0x0098af81, 0x0077915c, 0x00648145, 0x005b7b3a,
- 0x00638541, 0x00628641, 0x00668943, 0x00668844, 0x00648842, 0x00638543, 0x00648643, 0x00658746, 0x00648544, 0x00668443, 0x0064863f, 0x00608a37, 0x005e8a33, 0x005f8a34, 0x005e8936, 0x00618b38,
- 0x005e8839, 0x005f883d, 0x005f8740, 0x005e8641, 0x005e8541, 0x0060833e, 0x0062813a, 0x0062823c, 0x0064843d, 0x0063833d, 0x0062823c, 0x0061813a, 0x00618039, 0x00607f38, 0x00607f38, 0x00607e38,
- 0x00627e37, 0x00617e37, 0x00607d37, 0x005e7c36, 0x005e7c36, 0x005d7b37, 0x005c7b39, 0x005b7b3b, 0x00587a38, 0x00557a36, 0x00567634, 0x005b7231, 0x005a7132, 0x00567231, 0x00537131, 0x0052712f,
- 0x00506f33, 0x00507033, 0x004d6f34, 0x004d6b33, 0x004f6730, 0x005d6331, 0x007c7d4c, 0x00767c4a, 0x00526630, 0x004b652c, 0x004a6a30, 0x00466a2e, 0x00476a2d, 0x0048672c, 0x0048652c, 0x004a642a,
- 0x0045652b, 0x0045632b, 0x0045612a, 0x00445f2a, 0x00425e2b, 0x00405d29, 0x003e5b28, 0x003d5927, 0x003d5828, 0x003b5423, 0x003c5523, 0x00425920, 0x00edf1eb, 0x00fefcfc, 0x00fffdfb, 0x00fefcf2,
- 0x00fafdfb, 0x00f3fdfb, 0x008095c9, 0x00355798, 0x002e5d98, 0x003a65b8, 0x00305ab6, 0x002b54b1, 0x003964b6, 0x00456ebb, 0x004064ab, 0x00365798, 0x004d6aa5, 0x00859dd3, 0x009ab1dc, 0x00798bbe,
- 0x004d6cab, 0x00355a96, 0x00355a99, 0x004069ad, 0x005182c9, 0x005083ce, 0x004174c3, 0x00386dba, 0x003466bb, 0x002e60b8, 0x002757ab, 0x002650a2, 0x00234d9d, 0x00244d9f, 0x002751a3, 0x002853a3,
- 0x00184492, 0x0017428f, 0x001a4490, 0x00194790, 0x0026509a, 0x002d519c, 0x002d54a0, 0x002d59a9, 0x00214f94, 0x00203c6b, 0x00393855, 0x005c2f42, 0x008a202b, 0x00a73225, 0x00b7411c, 0x00ba4c0d,
- 0x00d13e44, 0x009a5c6c, 0x00586489, 0x00166199, 0x002c63a8, 0x006c87b5, 0x00c8d0e4, 0x00f4f6ec, 0x00f6ead8, 0x00ecccc9, 0x00cfa895, 0x00d0af6e, 0x00d4b272, 0x00dfb874, 0x00e7c27c, 0x00eac480,
- 0x00e8ba79, 0x00e2b97a, 0x00deb478, 0x00daae73, 0x00c49a5d, 0x009b8345, 0x00756738, 0x00665f4f, 0x004f5885, 0x00364b8d, 0x00294891, 0x0020468e, 0x00184384, 0x00174084, 0x001c428e, 0x00204396,
- 0x001a3e87, 0x001d418c, 0x0021458f, 0x00214691, 0x00264c97, 0x00274f97, 0x0029539c, 0x0029549e, 0x00285499, 0x0029559f, 0x002e58a0, 0x00345f9b, 0x004571b5, 0x005f8bd2, 0x007eaaf4, 0x0088b7ff,
- 0x0087b2ec, 0x007ba0d0, 0x0047678b, 0x002b475c, 0x00132833, 0x00162724, 0x0089958e, 0x00eff3f1, 0x00fffcfd, 0x00fcfbfb, 0x00fdfcfd, 0x00fbfdfc, 0x00afb6b0, 0x003c3b35, 0x00211a13, 0x002f231b,
- 0x003f3324, 0x003e3225, 0x003b2e24, 0x0032261b, 0x00291e14, 0x00271c13, 0x00251813, 0x00241611, 0x00241610, 0x00221510, 0x001e170f, 0x001c1b0b, 0x001f150d, 0x002b140f, 0x004b231e, 0x005a2018,
- 0x00620300, 0x00921b02, 0x00c5381b, 0x00dc381b, 0x00e63023, 0x00d73b2d, 0x00b74d4c, 0x00836570, 0x003e78bb, 0x00346dce, 0x003365d3, 0x003455bb, 0x001d4687, 0x001c4e96, 0x00245fb8, 0x00215dd1,
- 0x00225db9, 0x002d68c3, 0x003671cc, 0x003975cc, 0x003876ca, 0x003e7bcf, 0x003975cb, 0x001f59b3, 0x001e5cb8, 0x003c79d4, 0x004884df, 0x004986dd, 0x00417ed3, 0x003b7aca, 0x003878c9, 0x003676c6,
- 0x003976c3, 0x004782d2, 0x004780d4, 0x003670c7, 0x003c74cd, 0x003978d1, 0x003879d2, 0x003573cd, 0x003676cd, 0x003a7ad0, 0x003b7bd1, 0x003879cf, 0x00397ad0, 0x003878ce, 0x003b7ace, 0x003c7bcf,
- 0x00477fc7, 0x00427bc4, 0x00437dc7, 0x00447ec9, 0x003e79c6, 0x003b77c5, 0x003e7ac8, 0x003975c4, 0x003474c3, 0x003272c1, 0x002e6ec1, 0x003672cb, 0x003675ce, 0x003472ca, 0x002e6ec7, 0x00306dc8,
- 0x002e6fc7, 0x003072c9, 0x002f71c9, 0x002d71c8, 0x002d70c8, 0x002d71c4, 0x002e73c4, 0x003077ca, 0x002c77cc, 0x002874c4, 0x002970ba, 0x002e6fb0, 0x00517cad, 0x006985a7, 0x0062728b, 0x004a5564,
- 0x005c3a30, 0x0059382a, 0x00533320, 0x004c2c15, 0x003c2009, 0x002f1b06, 0x00261607, 0x001c1107, 0x00060304, 0x003f4146, 0x00dadfe5, 0x00fafefd, 0x00fcfcfc, 0x00fcfdfa, 0x00fcfefe, 0x00dadde1,
- 0x004f4f5a, 0x00080a1f, 0x00030929, 0x00070f33, 0x00050f40, 0x000c123e, 0x000d0f3e, 0x000d0e3c, 0x000a0d3b, 0x000d0d3a, 0x00100e39, 0x00141136, 0x00211d3a, 0x00221d34, 0x00282335, 0x00332b3d,
- 0x00362726, 0x003b2c2b, 0x00433434, 0x0044363a, 0x00604d59, 0x00897789, 0x00b7a2ba, 0x00ceb9d3, 0x00d2bede, 0x00d7c2e1, 0x00decbf1, 0x00dcc9f0, 0x00dacbf2, 0x00d8c9ec, 0x00dacdee, 0x00dfd4ed,
- 0x00e9d5ed, 0x00e2cce0, 0x00e1c7d8, 0x00dcc0cd, 0x00c099ac, 0x00a34d54, 0x00911b16, 0x00931501, 0x00932a0f, 0x00975042, 0x00b38b7e, 0x00ceb4ab, 0x00f6dbc8, 0x00fdf5e8, 0x00fafbf5, 0x00f1fcfc,
- 0x00f7f8ff, 0x00fbf2f8, 0x00fae4e3, 0x00f4d1ca, 0x00eec7bc, 0x00e0c0bf, 0x00866f70, 0x0020181a, 0x00030403, 0x00000100, 0x001e201d, 0x00434249, 0x00353238, 0x0009090e, 0x00030507, 0x00010102,
- 0x00000001, 0x00040304, 0x00060503, 0x00030200, 0x00000000, 0x00000000, 0x00020103, 0x00050308, 0x004d4955, 0x009893a8, 0x00b0a9c6, 0x00b0a8ca, 0x00b3aad1, 0x00b7add6, 0x00beb5dc, 0x00c2b9e0,
- 0x00b8afab, 0x00301e19, 0x0022160e, 0x00170f08, 0x00100d08, 0x00070701, 0x00050602, 0x00010302, 0x00000100, 0x00000301, 0x00010301, 0x00000300, 0x00010303, 0x00010303, 0x00000201, 0x00000202,
- 0x00010303, 0x00010303, 0x00010301, 0x00020502, 0x00050908, 0x00090b0a, 0x000a0d0a, 0x000c0e0b, 0x000c0f0e, 0x000b0e0e, 0x000a0c0d, 0x0007080a, 0x00020407, 0x00000205, 0x00010307, 0x0003060a,
- 0x00000812, 0x00020b15, 0x00080e1c, 0x000a1120, 0x000a1222, 0x000b1423, 0x000e1523, 0x000e1522, 0x000c181c, 0x000d1a1b, 0x000e1b1f, 0x000f1a21, 0x00141b24, 0x00181c23, 0x0019181c, 0x00363030,
- 0x00b19a91, 0x00e3c5b2, 0x00daaf94, 0x00dfad8b, 0x00d09266, 0x00b37549, 0x00a56439, 0x0093562b, 0x0077411c, 0x005d371a, 0x00402b1b, 0x00221d20, 0x0014223f, 0x00192c5b, 0x0020366e, 0x00253f81,
- 0x002d406d, 0x002b3f6b, 0x005a6c99, 0x007285b4, 0x00465b84, 0x002d3e63, 0x001d2a47, 0x00020c1b, 0x00050c0e, 0x00091108, 0x000e150c, 0x000f1814, 0x00161e19, 0x001b2721, 0x00212c2a, 0x00242e2a,
- 0x0025302c, 0x00242e2a, 0x00222c28, 0x00212925, 0x00212822, 0x001f2523, 0x00212424, 0x00222624, 0x00242c26, 0x00282f29, 0x002e342e, 0x00343a35, 0x003c413f, 0x00424647, 0x004b4f52, 0x0051555a,
- 0x00616466, 0x00696c6e, 0x006d7071, 0x00727576, 0x00747778, 0x00737476, 0x0067686a, 0x0059595d, 0x004b4a4e, 0x003e3f42, 0x002f3031, 0x001f211f, 0x00131613, 0x00171a16, 0x00242621, 0x00272a26,
- 0x002a2d2b, 0x00292c29, 0x00242624, 0x00191c19, 0x0010130f, 0x00686967, 0x00fcfcfb, 0x00f9f9f8, 0x00fbfbfe, 0x00fcfcfe, 0x00fdfdfe, 0x00cececd, 0x00797976, 0x006e6f68, 0x00373931, 0x0012140a,
- 0x00150c04, 0x002d2319, 0x0075685a, 0x00827562, 0x00594734, 0x00493925, 0x00564835, 0x003f3624, 0x00252315, 0x002b2a20, 0x0048493b, 0x004a4b33, 0x00414026, 0x003c3a22, 0x0045432a, 0x00504f31,
- 0x004b4428, 0x0042391e, 0x005b5134, 0x006d6347, 0x006d6244, 0x0058492a, 0x004a391c, 0x0044321f, 0x004b3f30, 0x006b5d4f, 0x008d7f6b, 0x0088775b, 0x006e553a, 0x0062422c, 0x004e2d1b, 0x003b140d,
- 0x00280e07, 0x002f1811, 0x006c574f, 0x008e7b72, 0x00514039, 0x00281914, 0x002d211c, 0x004a403e, 0x00534a4a, 0x002f2829, 0x000a0402, 0x00090b04, 0x0017140f, 0x001b130f, 0x001a130e, 0x00110f0a,
- 0x00080701, 0x00080900, 0x001a1305, 0x0030200f, 0x003c1a0c, 0x00271a0b, 0x002c2818, 0x00434030, 0x00969286, 0x00b8b4a9, 0x009b968c, 0x00908d80, 0x008c887b, 0x00555247, 0x000e0b06, 0x00050102,
- 0x003b0a03, 0x0062351f, 0x00a97f67, 0x00af8b73, 0x0073513c, 0x00724e3c, 0x0093715b, 0x008f6f54, 0x00856043, 0x006e492d, 0x00633f27, 0x006a4d37, 0x00775f4e, 0x008a7c67, 0x00aca397, 0x00b5ada0,
- 0x00af9e98, 0x009b837d, 0x00785354, 0x00643132, 0x005c1b22, 0x00442a46, 0x002f2d56, 0x00171f45, 0x0023374c, 0x004a585e, 0x008a8c84, 0x009a8f76, 0x008b7b5e, 0x0071624d, 0x00554d42, 0x00504f4f,
- 0x004a493f, 0x00323127, 0x0029261f, 0x00201d18, 0x00120e0c, 0x00171310, 0x00312c26, 0x004a453d, 0x00757169, 0x008b887e, 0x007e8178, 0x006c7472, 0x005b5546, 0x00584630, 0x0060482f, 0x00745d41,
- 0x0066583f, 0x005a533e, 0x006e6954, 0x00827c65, 0x00594f35, 0x0020200e, 0x00101308, 0x000c0d05, 0x001b160c, 0x001c170d, 0x006e6863, 0x00e2dcd8, 0x00fefdfa, 0x00fffefc, 0x00fcfdfd, 0x00fcfefd,
- 0x00dadbdc, 0x008a8b8c, 0x007d7f80, 0x00abadac, 0x00dadcda, 0x00eff0f0, 0x00f6f6f7, 0x00f9f7f8, 0x00f8f7f7, 0x00f5f6f5, 0x00f7f6f5, 0x00fafbf4, 0x00f6f6f7, 0x00f7fcfd, 0x00edf2fa, 0x00e2e8f5,
- 0x00d2dbeb, 0x00d2daeb, 0x00d1daea, 0x00d3daec, 0x00d9ddeb, 0x00f0dad8, 0x00f6d9c9, 0x00f0d8c7, 0x00f2ded1, 0x00f6ece1, 0x00f9f6ee, 0x00f5f1ec, 0x00e9eae7, 0x00e6e8e9, 0x00e6e5ec, 0x00e8e8f1,
- 0x00e7e8dd, 0x00e7e9e0, 0x00e1e2dd, 0x00d0d1cf, 0x00d6d6d8, 0x00d7d7d9, 0x00d6d5d6, 0x00cecccd, 0x00d5d4ce, 0x00d4d4cb, 0x00dadad4, 0x00dddeda, 0x00dbdcd9, 0x00dadbd5, 0x00dcddd7, 0x00dcdcd4,
- 0x00dcddd6, 0x00ddded9, 0x00dedfd8, 0x00dbdcd5, 0x00ddddda, 0x00d2ded0, 0x00d6e5d5, 0x00e5efe4, 0x00f4f7ef, 0x00f5f6f2, 0x00f9f8f7, 0x00f7f6f7, 0x00f9f7fc, 0x00f6fafd, 0x00f4fcfd, 0x00f1fafd,
- 0x00f6f3fe, 0x00f2f2f3, 0x00eeefeb, 0x00ebf2e9, 0x00eaf3f1, 0x00eff8fa, 0x00f5fbfd, 0x00f8fbfc, 0x00f9faf9, 0x00f6f7e6, 0x00f8f6e7, 0x00f7f8f7, 0x00f6f9fa, 0x00f8f9fb, 0x00e9ecee, 0x00d5dbdc,
- 0x00d4d9de, 0x00cdd7da, 0x00c4cdcd, 0x00c7cfd4, 0x00d5dfe2, 0x00e0e4e6, 0x00dce1e8, 0x00d3dff0, 0x00c8def6, 0x00c9def3, 0x00d5e4ef, 0x00e0e5e8, 0x00e5e7dc, 0x00f0efe7, 0x00fdfdfb, 0x00fafdfb,
- 0x00fbfffc, 0x00fdfef8, 0x00fefbf1, 0x00dbd7c8, 0x009e9580, 0x009c9580, 0x00cfc8b4, 0x00faf7e7, 0x00fffff7, 0x00fefffb, 0x00fcfefb, 0x00fbfcf7, 0x00fcfcfd, 0x00fafbfc, 0x00dadfe1, 0x00a9b0b6,
- 0x00a5b3af, 0x006e7f6e, 0x00445a39, 0x00405e28, 0x0041621d, 0x00446226, 0x0048642a, 0x0047662b, 0x004b682e, 0x004b682e, 0x004c6a2f, 0x004d6b31, 0x00506b33, 0x00516c34, 0x00516d35, 0x00526e36,
- 0x0051712f, 0x00527231, 0x00557435, 0x00547334, 0x00567537, 0x00567637, 0x00567637, 0x00547435, 0x00577737, 0x005a793a, 0x00577439, 0x005b743d, 0x00586e3c, 0x00617747, 0x00637850, 0x006c7e5e,
- 0x007d8b7e, 0x0078847d, 0x00788084, 0x00959ba7, 0x00c7ccdf, 0x00d4d7e4, 0x00c0c0cd, 0x00cacbd5, 0x00e0e5ec, 0x00e0e6e6, 0x00e4ebea, 0x00e3edec, 0x00daeae4, 0x00cdded6, 0x00b3c5bb, 0x00a1b2ab,
- 0x007b986b, 0x006d895c, 0x00668252, 0x00698653, 0x0064824a, 0x00658448, 0x00678546, 0x00668644, 0x00668741, 0x00678840, 0x00658841, 0x00618841, 0x00628743, 0x00638642, 0x00628644, 0x00648647,
- 0x00628549, 0x0061854b, 0x0061834c, 0x00618150, 0x00628253, 0x00638347, 0x0063833e, 0x00638340, 0x0063843d, 0x0063833d, 0x0062823d, 0x0060813b, 0x00608139, 0x005f8138, 0x005f8039, 0x005f803a,
- 0x00617f39, 0x00617f39, 0x00617f38, 0x005f7e38, 0x005f7e38, 0x005e7d39, 0x005d7c3a, 0x005c7b3a, 0x005c7a38, 0x005a7a37, 0x00577936, 0x00547932, 0x00557632, 0x00547532, 0x00537535, 0x00547435,
- 0x005b7138, 0x005a6c35, 0x005c6a37, 0x00626e3d, 0x006d7244, 0x00887d51, 0x009b8b5f, 0x00837d4e, 0x005a6a34, 0x004f6b32, 0x00446b2f, 0x00416c2d, 0x00426b2b, 0x0045682a, 0x004a662c, 0x004d652b,
- 0x0048642a, 0x0047632a, 0x00466128, 0x00446028, 0x00425f2a, 0x00405d2a, 0x003e5b28, 0x003c5928, 0x003e592a, 0x003a5726, 0x003c5623, 0x00415620, 0x00f5fbf3, 0x00fdfcfc, 0x00fffbf9, 0x00fdfcf4,
- 0x00f9fdff, 0x00f0fefd, 0x006d86c0, 0x003b5aa8, 0x003266aa, 0x003b68bf, 0x002854b6, 0x002b59b7, 0x00416dc6, 0x003c6cbd, 0x003967b8, 0x003663b0, 0x00355da7, 0x003a5ea4, 0x004669ac, 0x004162a7,
- 0x002e57aa, 0x002d59a9, 0x00406bbd, 0x003d6cbd, 0x003e73c2, 0x003f75c5, 0x00386cbe, 0x003064b6, 0x002d5fb3, 0x002d5eb1, 0x002d5aae, 0x002952a4, 0x00234b9e, 0x0021499a, 0x00254ea2, 0x002a56a5,
- 0x00244c9b, 0x001d4895, 0x00224b97, 0x00204996, 0x00214e97, 0x002c4b92, 0x001c4087, 0x00104692, 0x00255087, 0x0040425d, 0x0060323b, 0x007d2326, 0x00951f28, 0x00ab3528, 0x00ba3f18, 0x00bc4401,
- 0x00d7381f, 0x00a44737, 0x00684849, 0x00475b74, 0x0088a1c7, 0x00cdd4eb, 0x00f2f0f4, 0x00f3edd6, 0x00ebcfab, 0x00e4b99a, 0x00dba680, 0x00e0b269, 0x00e7be77, 0x00e5bc76, 0x00e8c080, 0x00e4bf7e,
- 0x00e0bc74, 0x00dfbc70, 0x00d5b068, 0x00cca15e, 0x00b48648, 0x0080733c, 0x00646648, 0x00555c64, 0x003e4d94, 0x002f489a, 0x00274a98, 0x00214c8d, 0x001b487e, 0x00194182, 0x001a3e8f, 0x001e3c9e,
- 0x001a3a83, 0x001b3c86, 0x001d4087, 0x001e438b, 0x00224891, 0x00274e95, 0x00284f97, 0x00284f98, 0x00264d93, 0x00254e96, 0x00285295, 0x00295491, 0x003763a3, 0x004976bd, 0x006d99e2, 0x0085b1f9,
- 0x0095bbfe, 0x0084a9e3, 0x004f72a2, 0x003a587f, 0x00273f5f, 0x001c323b, 0x00879795, 0x00eef2f2, 0x00fffafc, 0x00fcfafb, 0x00fffdfc, 0x00fcfefa, 0x00b0b7b1, 0x003b3c37, 0x00211b17, 0x002f2522,
- 0x003a362a, 0x003b342a, 0x00383227, 0x00322b21, 0x00272116, 0x00221d16, 0x00211a14, 0x001c1711, 0x001b1410, 0x0019130b, 0x0019160e, 0x00141a06, 0x001b1810, 0x00221511, 0x00361c1f, 0x0045201e,
- 0x00500f06, 0x00670d00, 0x009f2812, 0x00c8391a, 0x00e23415, 0x00e23417, 0x00d63e24, 0x00b85238, 0x006f6881, 0x004d6ab1, 0x003667c8, 0x00255cc7, 0x001e4c94, 0x001f4f98, 0x00275db3, 0x002461d1,
- 0x00255fbb, 0x002c66c1, 0x003670cc, 0x003873cb, 0x003874c9, 0x00417dd1, 0x003b77cb, 0x001f5ab1, 0x00215bb8, 0x003c78d4, 0x004682dc, 0x004382d6, 0x003778ca, 0x003775c2, 0x003872be, 0x003573bf,
- 0x004985d3, 0x0075b0f5, 0x006ea9f0, 0x003e79cc, 0x003e75cc, 0x003c7bd0, 0x003679ce, 0x003779ce, 0x00397ed1, 0x003b7dd1, 0x003878cc, 0x003877ca, 0x003b79c9, 0x00407bca, 0x00437ccb, 0x00457ecb,
- 0x004e7fbe, 0x004b7dbc, 0x005084c2, 0x004f84c5, 0x004177be, 0x003f77c1, 0x00427bc6, 0x003b76c1, 0x003572c3, 0x003070be, 0x002f6cc0, 0x003471cb, 0x003971cd, 0x00336fc9, 0x00306dc8, 0x002f6ec8,
- 0x002e6ec8, 0x002c70c7, 0x002f71c9, 0x002e6fc7, 0x002e71c8, 0x003070c4, 0x003471c5, 0x003173c5, 0x002d75cc, 0x002873c9, 0x002974c6, 0x002c72c1, 0x003572b6, 0x004c7dba, 0x005481b6, 0x004f77a5,
- 0x00594c50, 0x00503e3c, 0x0049342b, 0x00482d1e, 0x003e1f0a, 0x00381b05, 0x002a1302, 0x00221204, 0x00070402, 0x0034373b, 0x00cbd2d8, 0x00f7fcfc, 0x00fdfdfe, 0x00fcfcf9, 0x00fcfefc, 0x00e3e6e5,
- 0x005c6065, 0x00070914, 0x00030718, 0x00070d24, 0x000b0e2d, 0x000d0d2b, 0x000e0c2b, 0x0015112f, 0x001e1b35, 0x002a243c, 0x00302a3e, 0x003b3442, 0x004c424b, 0x004c4145, 0x004c4242, 0x00534745,
- 0x0049362e, 0x0047362f, 0x0063534d, 0x007b6a69, 0x00a28e97, 0x00c1b0c0, 0x00d0c2d5, 0x00cebfd7, 0x00ccbddc, 0x00d6c7e6, 0x00dac8ed, 0x00dcc9f2, 0x00deccf6, 0x00d9caf2, 0x00d7caee, 0x00d8ccee,
- 0x00ddcdee, 0x00dcccea, 0x00e2d1ef, 0x00ebd3f2, 0x00d2b8d7, 0x00be675f, 0x00aa2b0e, 0x00b21e00, 0x00bc1f05, 0x00a9220f, 0x00a8372c, 0x00bc5b52, 0x00eda583, 0x00ffdbba, 0x00f6f7da, 0x00ecffed,
- 0x00f8f9fd, 0x00faf5fa, 0x00ffeff3, 0x00fde4de, 0x00f7c8c0, 0x00e0bbb7, 0x008d7272, 0x0027181c, 0x00120f12, 0x00060408, 0x00131414, 0x001e1f22, 0x00111014, 0x0007060b, 0x00070709, 0x00030304,
- 0x00010000, 0x00010100, 0x00010201, 0x00010100, 0x00020003, 0x00010002, 0x00020102, 0x00020203, 0x003e3a49, 0x00888398, 0x00a49eb9, 0x00a7a0c0, 0x00aca3c9, 0x00b4aad3, 0x00beb3dc, 0x00c4b9e2,
- 0x00beaead, 0x003a211d, 0x0029180e, 0x001e1309, 0x00161008, 0x000a0a01, 0x00040700, 0x00000400, 0x00020203, 0x00020404, 0x00020302, 0x00010200, 0x00000303, 0x00000302, 0x00000200, 0x00000200,
- 0x00030205, 0x00010204, 0x00000302, 0x00010502, 0x00060909, 0x000a0c0b, 0x000b0e09, 0x000c0f0b, 0x000e1010, 0x000d0f0f, 0x000c0e0c, 0x00080a09, 0x00040506, 0x00010205, 0x00010407, 0x00030709,
- 0x00020410, 0x00020713, 0x00020916, 0x00040c19, 0x00070f1d, 0x000b1221, 0x000c1420, 0x000b151d, 0x0010161e, 0x000f1719, 0x000d181b, 0x000d171d, 0x00141a1f, 0x001b1d1f, 0x00191515, 0x00554b45,
- 0x00c7a99c, 0x00d8af9a, 0x00dcab8e, 0x00e3aa86, 0x00d29265, 0x00c1835c, 0x00bf865f, 0x00b07a50, 0x00905c36, 0x006e421c, 0x00482905, 0x00301b05, 0x00190f11, 0x00161326, 0x00161837, 0x00131a45,
- 0x0022254c, 0x00434a6c, 0x007480a1, 0x007481a4, 0x0051617d, 0x0033405b, 0x000f1e32, 0x00000a12, 0x00090d0e, 0x000b100c, 0x000d120c, 0x000e1611, 0x00151c1a, 0x001a2520, 0x00212b26, 0x00272f2d,
- 0x00283131, 0x00262d2d, 0x00212928, 0x001f2624, 0x001e2520, 0x001a211d, 0x00181d1a, 0x00171e18, 0x001e251f, 0x00242923, 0x002a2f29, 0x002f342f, 0x00363a38, 0x003a3f40, 0x0043484c, 0x004a4f54,
- 0x005f5f62, 0x00666769, 0x00696c6d, 0x006e7272, 0x00727575, 0x00737576, 0x006a6c6e, 0x005e5f62, 0x004f5054, 0x00424246, 0x00333435, 0x00242724, 0x00191b17, 0x001a1e18, 0x00262b24, 0x002d312b,
- 0x00313432, 0x00303431, 0x002a2e2b, 0x00212421, 0x001b1d1a, 0x006f706d, 0x00fbfcfa, 0x00f8faf8, 0x00fefcff, 0x00fefcff, 0x00fcfafd, 0x00cdcdcd, 0x00787877, 0x006f716b, 0x003b3d33, 0x000f1307,
- 0x00150b04, 0x002c211a, 0x007a6f63, 0x00968c7d, 0x005d5041, 0x003e331f, 0x004b422a, 0x0035301c, 0x00221f15, 0x00312f24, 0x00474738, 0x00454630, 0x003f3f26, 0x003a3a22, 0x003e3c24, 0x00413c21,
- 0x00584e35, 0x00675d42, 0x007d7351, 0x007b704e, 0x00655937, 0x00605331, 0x005a4d2b, 0x00493b23, 0x004c3a2d, 0x00675a4a, 0x00897d65, 0x008e8362, 0x00766b46, 0x00735f44, 0x006c533d, 0x00634737,
- 0x003e2b21, 0x0055453a, 0x0092877b, 0x008b8276, 0x0041382e, 0x00271f1a, 0x00403c32, 0x006c6a65, 0x0080787b, 0x004d4a4c, 0x00080505, 0x00030502, 0x0014100e, 0x00150d0b, 0x0018100b, 0x00130f08,
- 0x0013100a, 0x000f1009, 0x00141106, 0x0026180d, 0x002d130b, 0x002d2314, 0x00484835, 0x00565844, 0x008c8a7c, 0x00a8a697, 0x00858374, 0x00807e6e, 0x006e6b5f, 0x0049463c, 0x00302c23, 0x002a271b,
- 0x00441a0b, 0x004f2b14, 0x0082624a, 0x00b69b84, 0x00cab09e, 0x00c0a794, 0x00ad9883, 0x008b7761, 0x00735949, 0x005d4630, 0x006e5742, 0x0096816c, 0x00b8ad97, 0x00d0cebe, 0x00e6ecdd, 0x00dde7db,
- 0x00dddedd, 0x00e2d9da, 0x00d3c3c4, 0x00bd9fa2, 0x00845963, 0x00423256, 0x00232952, 0x00141f45, 0x0037455a, 0x00778287, 0x00b1b7ad, 0x00b8b799, 0x009f9578, 0x00958875, 0x00837b71, 0x005f595a,
- 0x00342d21, 0x002f291e, 0x002b2719, 0x00191507, 0x00201a12, 0x00443f37, 0x005c584c, 0x00666459, 0x00898179, 0x00918a84, 0x0076756f, 0x00535854, 0x00392f1e, 0x0043331b, 0x006a573b, 0x008b7958,
- 0x006f624a, 0x00453d28, 0x00524e35, 0x006b6b52, 0x00454026, 0x000f1003, 0x00050702, 0x00030403, 0x001e1711, 0x00221c15, 0x00706b64, 0x00e4ded8, 0x00fefbfa, 0x00fffdfc, 0x00fbfcfb, 0x00fafffc,
- 0x00d8dad8, 0x008e8d8d, 0x00858485, 0x00b6b7b6, 0x00eae7e6, 0x00faf9f9, 0x00fcfefd, 0x00fefefd, 0x00ffffff, 0x00fefdff, 0x00fcfaf9, 0x00fbfaf3, 0x00fefafa, 0x00fdfefb, 0x00fafefb, 0x00f6fcfa,
- 0x00fafeff, 0x00fbfeff, 0x00f8fdfe, 0x00fafeff, 0x00fafcfd, 0x00f3fdf1, 0x00f3fff0, 0x00f1fff0, 0x00f4fdf3, 0x00f4fef6, 0x00effff6, 0x00f2fff7, 0x00f6fff8, 0x00fcfefb, 0x00fefcfb, 0x00fdfcf9,
- 0x00fefdfa, 0x00fdfef9, 0x00fefffb, 0x00fbfdfa, 0x00fdfefc, 0x00fdfdfc, 0x00fdfcfb, 0x00fcfcfa, 0x00fffdfc, 0x00fdfcf8, 0x00fffdf9, 0x00fefdf9, 0x00fdfdfb, 0x00fcfdf9, 0x00fdfff9, 0x00fdfff7,
- 0x00fffefd, 0x00fffcfd, 0x00fffffe, 0x00fcfef9, 0x00fbfdf8, 0x00f9fef4, 0x00f9fef6, 0x00f7fef7, 0x00fefeff, 0x00fcfffe, 0x00f9fefc, 0x00fbfffe, 0x00fdfefc, 0x00fbfefd, 0x00f5fafa, 0x00f8faf9,
- 0x00fff8fb, 0x00fdfaf7, 0x00fffdf6, 0x00fcfdf4, 0x00fcfffd, 0x00f9fefd, 0x00fafdfc, 0x00faffff, 0x00ffffff, 0x00fefff6, 0x00fdfef4, 0x00f5fffe, 0x00f4fdfb, 0x00fafcfc, 0x00fafdf8, 0x00fafcf3,
- 0x00fdfcf2, 0x00fefef9, 0x00fcfef8, 0x00fbfffc, 0x00fafffb, 0x00fffefb, 0x00f9fcfa, 0x00f8fefd, 0x00f3fdff, 0x00f1feff, 0x00f7fefd, 0x00fcfdfd, 0x00fdfdf2, 0x00fbf8ee, 0x00fbfbf7, 0x00f9fcfb,
- 0x00fcfdfc, 0x00fcfcf7, 0x00fbfaf2, 0x00dbd9cb, 0x009c9782, 0x009b9782, 0x00cfcab9, 0x00f7f6ea, 0x00fffefc, 0x00fffffe, 0x00fafdf9, 0x00f8fef3, 0x00fbfcfd, 0x00fbfcfd, 0x00dfe0e5, 0x00b4b7c1,
- 0x00b1b9b9, 0x00788676, 0x00465b39, 0x00406029, 0x003f631a, 0x00466429, 0x0048642b, 0x0046662b, 0x004c6631, 0x004d6731, 0x004d6932, 0x004e6b31, 0x00506b31, 0x00506c32, 0x00506e34, 0x00516e36,
- 0x00537332, 0x00527232, 0x00547335, 0x00557435, 0x00567536, 0x00567736, 0x00567737, 0x00547736, 0x00577637, 0x005b7a3b, 0x00597838, 0x005e7c3b, 0x00607c3f, 0x00607c3f, 0x005e7941, 0x00627a4e,
- 0x007a8b6f, 0x008a988a, 0x00818c87, 0x007c878b, 0x00b0b7c6, 0x00d2d7dc, 0x00c4c6c6, 0x00c3c4c7, 0x00c9cbd3, 0x00d0d3db, 0x00e2e8ef, 0x00dce5ef, 0x00e4eefa, 0x00e7f3fe, 0x00e6f3f9, 0x00e0eaf8,
- 0x00daecd7, 0x00c6d8c2, 0x00adc1a5, 0x009eb494, 0x00758d62, 0x00637d4b, 0x00658346, 0x00658242, 0x006a8643, 0x006d8a43, 0x0064833e, 0x00658643, 0x00688646, 0x00668543, 0x00678746, 0x00638341,
- 0x00688347, 0x00678249, 0x00648049, 0x00637f49, 0x00648050, 0x00628445, 0x005f853c, 0x0060853d, 0x00648440, 0x0063843e, 0x0062833c, 0x0061823b, 0x0060813b, 0x005f813a, 0x005e8038, 0x005e8036,
- 0x0063803c, 0x0062803a, 0x00618039, 0x005f8038, 0x005e7f39, 0x005d7d3a, 0x005d7d3b, 0x005d7c3b, 0x005e793a, 0x005c7839, 0x00577c38, 0x004d8033, 0x00507a31, 0x00547833, 0x00577738, 0x005b7539,
- 0x005c6834, 0x00696f3f, 0x008a8a5e, 0x009a966c, 0x00ada57c, 0x00b9a77c, 0x00908050, 0x00686230, 0x0055642f, 0x00506e36, 0x00456e30, 0x00416e2c, 0x00436e2e, 0x00456a2c, 0x0049672a, 0x004b6428,
- 0x004a632c, 0x0047642c, 0x0046632a, 0x00446227, 0x00426028, 0x00415e27, 0x00405d26, 0x003e5d27, 0x00415a2c, 0x00405b2a, 0x003f5825, 0x00455a25, 0x00f8fdf9, 0x00fcfcff, 0x00fbfbf9, 0x00fafbf1,
- 0x00f8ffff, 0x00f2feff, 0x005d77b5, 0x003e64b3, 0x00356eb5, 0x00295aac, 0x002252ac, 0x003465bb, 0x004675ce, 0x00396bc1, 0x003469b7, 0x003166b3, 0x003464b1, 0x00315dab, 0x00325ea9, 0x003a61ae,
- 0x00395db9, 0x002d57af, 0x003765bb, 0x003d71c3, 0x003268b9, 0x00366aba, 0x00376cbb, 0x003466b5, 0x00305cb0, 0x002f59ae, 0x002d58ab, 0x002751a4, 0x001f4a99, 0x001b4295, 0x001f4997, 0x0025519e,
- 0x002e54a4, 0x002a52a1, 0x0027509b, 0x001d4791, 0x001d4994, 0x002e4890, 0x00193c7d, 0x00053c80, 0x00294770, 0x005a404f, 0x007b332e, 0x008b1e14, 0x00881a17, 0x009b2e1a, 0x00ad3c0f, 0x00c24201,
- 0x00cb4014, 0x00ac3e20, 0x00904433, 0x00ad8187, 0x00e4e5ea, 0x00f8f5f0, 0x00e8dcd3, 0x00d9c5ad, 0x00d8ac84, 0x00dca97a, 0x00edb77e, 0x00eab870, 0x00ebba78, 0x00ecbf84, 0x00e5bc81, 0x00e3bd81,
- 0x00dcbb6d, 0x00dab867, 0x00c9a957, 0x00b69445, 0x009d7432, 0x006f6b40, 0x00546054, 0x0042506b, 0x0032469c, 0x002b47a2, 0x00244b9c, 0x001f4f8c, 0x001d4d78, 0x0019447e, 0x00193e8f, 0x001d38a0,
- 0x0019387d, 0x001c3b81, 0x001f4082, 0x001f4186, 0x0021448c, 0x00254b90, 0x00244c91, 0x00224a90, 0x00224690, 0x00234993, 0x00214a90, 0x00224d8d, 0x002c5897, 0x003966ab, 0x005987ce, 0x007aa6eb,
- 0x0091b7fe, 0x0088aeee, 0x00577cb3, 0x004c6d9f, 0x004c6794, 0x00354e5f, 0x008a9ca1, 0x00eaf2f3, 0x00fff8ff, 0x00fef9ff, 0x00fffefc, 0x00fbfef5, 0x00b0b7af, 0x003b3c35, 0x00211d17, 0x002f2727,
- 0x0038352d, 0x003a392f, 0x0038362c, 0x00313025, 0x0027251c, 0x001f1c13, 0x0019170f, 0x0018160e, 0x00191313, 0x00181315, 0x0014140d, 0x00101305, 0x0019120f, 0x001d0f11, 0x00221116, 0x002e1519,
- 0x003f1513, 0x00490908, 0x006d1204, 0x00a52c12, 0x00d33514, 0x00d83310, 0x00d9350f, 0x00d83c15, 0x00a55750, 0x006e658f, 0x003d68b5, 0x001d64c8, 0x002351ab, 0x00284fa1, 0x00295ab2, 0x002663c6,
- 0x00255fbc, 0x002b66c1, 0x003672cb, 0x003976cb, 0x003876c8, 0x004382d3, 0x003f7dce, 0x002563b7, 0x002a64bf, 0x003f7ad7, 0x00407cd4, 0x003a78cc, 0x003270bf, 0x003270be, 0x003272bb, 0x003272bb,
- 0x004a82d1, 0x0070acf1, 0x006aa7ec, 0x003b7acb, 0x003b78cd, 0x00397bce, 0x00367acb, 0x00377ece, 0x003f7fd6, 0x003d7ed2, 0x003677ca, 0x003777c5, 0x003f79c2, 0x00497dc4, 0x004e80c6, 0x004f83c5,
- 0x005981b4, 0x005782b6, 0x005987bc, 0x005686be, 0x00487ab9, 0x004579bd, 0x00427ac0, 0x003a75bd, 0x00356fc1, 0x00336ec0, 0x002f69bf, 0x00306fc6, 0x00346dc6, 0x002e6dc4, 0x002b6bc1, 0x00296ac0,
- 0x002e6cc6, 0x00306ec8, 0x00306ec9, 0x002d6fc5, 0x002d71c9, 0x003471c0, 0x00386fbf, 0x003571c3, 0x003273d0, 0x002c70cd, 0x00266ec6, 0x00276fc5, 0x003072c2, 0x003975c1, 0x00447ec6, 0x004c81c6,
- 0x0063677c, 0x004e4d59, 0x00393235, 0x003a2a23, 0x003b2310, 0x00382009, 0x00281301, 0x001d1000, 0x000c0909, 0x002d3035, 0x00bdc3c9, 0x00f5f9f9, 0x00fbfcfe, 0x00fbfbfb, 0x00fafbfa, 0x00edf0ef,
- 0x006e7174, 0x000d0d12, 0x00060811, 0x000d0f1e, 0x00151428, 0x001d192b, 0x00252134, 0x00322d3d, 0x004e4555, 0x00574e5a, 0x004f464d, 0x0051484a, 0x005f5151, 0x005f504d, 0x00584b44, 0x0056473f,
- 0x00523d41, 0x00675459, 0x0097898e, 0x00b6a4ad, 0x00cabbc8, 0x00ccbecf, 0x00c8c0d1, 0x00c7bfd3, 0x00d3c8e5, 0x00d9ceed, 0x00d6cced, 0x00dbcaef, 0x00dac9f2, 0x00dacbf1, 0x00dad0f2, 0x00dad0f1,
- 0x00e0d3f4, 0x00dbceee, 0x00d9ceee, 0x00e0d2ef, 0x00d2c2e0, 0x00d08071, 0x00c04518, 0x00d43c08, 0x00e93c16, 0x00d53e28, 0x00bd3327, 0x00b74136, 0x00da7857, 0x00f7b597, 0x00faf1d5, 0x00f2fbeb,
- 0x00fdf5fb, 0x00fee9f0, 0x00feeeef, 0x00feeee6, 0x00fad1c6, 0x00e3bfb7, 0x008d7271, 0x0027171c, 0x001b161e, 0x00110c14, 0x0008070c, 0x00090b0c, 0x0008070b, 0x0007060b, 0x00060507, 0x00050407,
- 0x00040205, 0x00000003, 0x00000101, 0x00000100, 0x00020102, 0x00010000, 0x00010101, 0x00000100, 0x00362f42, 0x007b748a, 0x009b93af, 0x00a39aba, 0x00a49abf, 0x00a79ec5, 0x00b2a9d1, 0x00bbb2d8,
- 0x00b6afa1, 0x003a2215, 0x00311a13, 0x0027170f, 0x001a0f08, 0x000d0902, 0x00060603, 0x00040304, 0x00000300, 0x00000300, 0x00000401, 0x00000401, 0x00000102, 0x00000201, 0x00010103, 0x00040106,
- 0x00000200, 0x00000200, 0x00000402, 0x00040706, 0x000a0b0c, 0x000e100d, 0x00121311, 0x00131510, 0x000c1409, 0x000a1008, 0x000c0e0a, 0x000a0b0a, 0x00060a09, 0x00020607, 0x00040409, 0x0004030a,
- 0x00000306, 0x00000407, 0x0000050f, 0x00020917, 0x00090e1d, 0x000a0f1e, 0x000b101f, 0x000d121f, 0x00041411, 0x0006130f, 0x000a1619, 0x000c141e, 0x00101518, 0x00191818, 0x001e1814, 0x0069544e,
- 0x00a99375, 0x00aa8666, 0x00aa7558, 0x00aa6d4a, 0x00bb7550, 0x00bb8362, 0x00d7a186, 0x00dca787, 0x00bf996a, 0x00a6824d, 0x00895f30, 0x007d5429, 0x0065442b, 0x00533831, 0x0035212c, 0x00190b25,
- 0x00060c17, 0x00272f3e, 0x0063677d, 0x00697186, 0x00566077, 0x00293547, 0x00070f1f, 0x00040614, 0x00000a07, 0x00020a02, 0x000d130d, 0x000e1514, 0x00151a1a, 0x001a211f, 0x00232929, 0x00292c2e,
- 0x00222b24, 0x00202a24, 0x001f2724, 0x001d2423, 0x00192120, 0x00151b1a, 0x00121716, 0x00111715, 0x00111b0f, 0x00162116, 0x00232821, 0x00292c27, 0x002e3330, 0x0035393b, 0x0042454b, 0x004a4e56,
- 0x004f5752, 0x00575d5a, 0x00626767, 0x00666a6c, 0x00696c6e, 0x00696a6d, 0x0066666a, 0x005e5d61, 0x00454c46, 0x003b3f3c, 0x00333434, 0x00282b29, 0x001a211d, 0x001a1f1d, 0x00272626, 0x002e2e2d,
- 0x00262e25, 0x00282f26, 0x00282d27, 0x00252825, 0x00222221, 0x00747372, 0x00fffcfd, 0x00fffcff, 0x00f7fbf4, 0x00f9fcf7, 0x00fbfcfd, 0x00ceced0, 0x007d7d7a, 0x006b6c65, 0x0032312a, 0x000f0d05,
- 0x00050900, 0x00262717, 0x007e7969, 0x00a59d8e, 0x006c6255, 0x00413828, 0x004a4332, 0x00373222, 0x00171c07, 0x0030311d, 0x00484639, 0x0040422d, 0x003c3c27, 0x003a3623, 0x003c3724, 0x003f361f,
- 0x00595731, 0x00716c48, 0x007a6e50, 0x006f5f40, 0x00645833, 0x006e5f3a, 0x0068573b, 0x00504028, 0x00433b23, 0x00585134, 0x006d6447, 0x00786e49, 0x0070653c, 0x006e5f3e, 0x006d5b42, 0x006c5749,
- 0x004c5035, 0x0063644d, 0x00898575, 0x00635f53, 0x00353229, 0x00474740, 0x007e7e7a, 0x00b2b2b0, 0x00aeb7ac, 0x006f786e, 0x000d130d, 0x00000604, 0x00170f0d, 0x001d1510, 0x003b2d2b, 0x0050413d,
- 0x00444d36, 0x0039412b, 0x002c2c1d, 0x00231c14, 0x00211007, 0x00312c1b, 0x00575243, 0x00575344, 0x007f856d, 0x00a8a996, 0x00928f82, 0x00989587, 0x00787369, 0x00646059, 0x0067635c, 0x00605956,
- 0x0054421c, 0x00544221, 0x009d8b73, 0x00decdba, 0x00f6e9d9, 0x00f1e8d9, 0x00d2cbbd, 0x00b3a99e, 0x0095927a, 0x00837e67, 0x009d9280, 0x00c5bba9, 0x00e7e4d6, 0x00e8efe1, 0x00e4f1e9, 0x00dceeeb,
- 0x00d3ede2, 0x00dbeae4, 0x00ebe9ed, 0x00ede6ea, 0x00d0bec4, 0x007c7b9c, 0x002d3363, 0x00182045, 0x00364a52, 0x006c7b76, 0x00a1ab9b, 0x00a9ad94, 0x00a6a189, 0x009c9587, 0x00a79a96, 0x007d7372,
- 0x003a3623, 0x00433d2b, 0x00494033, 0x002f2618, 0x003f3828, 0x006a6253, 0x00655b51, 0x00574b42, 0x0061614d, 0x00757061, 0x005b5750, 0x002e352f, 0x00291e10, 0x00493722, 0x0082694f, 0x00957b61,
- 0x00615b3b, 0x002a2a0e, 0x003c3a25, 0x005f5e47, 0x00353018, 0x00090801, 0x00070506, 0x000b0a09, 0x00232518, 0x002d2b1f, 0x007b756c, 0x00e5e0d8, 0x00fffefa, 0x00fffdfc, 0x00fffcff, 0x00fffdff,
- 0x00ced6cf, 0x00888e88, 0x007f8080, 0x00b1b1b2, 0x00e3e3e3, 0x00f7f7f8, 0x00fdfbff, 0x00fffcff, 0x00f9fef7, 0x00fcfef8, 0x00fdfcf8, 0x00fdfcf5, 0x00fefdf9, 0x00fefef9, 0x00fcfdfc, 0x00fafeff,
- 0x00f4fcf7, 0x00f4fef8, 0x00fcfdfc, 0x00fffdff, 0x00fffcfe, 0x00f3feff, 0x00eefefe, 0x00ecfefe, 0x00e1fff8, 0x00e3fff8, 0x00e8fefc, 0x00ecfdf9, 0x00f5fff6, 0x00fbfef4, 0x00fffef7, 0x00fffdf6,
- 0x00f6fef2, 0x00f9fef5, 0x00fcfdf9, 0x00fcfefc, 0x00fefcfd, 0x00fdfdfe, 0x00fdfcff, 0x00fefcff, 0x00f4f9f4, 0x00f7fcf5, 0x00fcfcfb, 0x00fcfefa, 0x00fffefc, 0x00fffefd, 0x00fffeff, 0x00fffefd,
- 0x00f7fbf2, 0x00f9fef5, 0x00fcfefb, 0x00fefdfb, 0x00fefefb, 0x00fcfef5, 0x00fcfcf7, 0x00fdfbfd, 0x00f3fff6, 0x00f5fff9, 0x00f8fffd, 0x00f9fdfc, 0x00fcfdfc, 0x00fefbfb, 0x00fffbfb, 0x00fffafb,
- 0x00f7f8f1, 0x00f8f8f2, 0x00fcfbf5, 0x00fefcf7, 0x00fffefc, 0x00fdfefd, 0x00fdfeff, 0x00fbfdff, 0x00f7fef6, 0x00fbfef2, 0x00f8fdf6, 0x00f3fdfd, 0x00f9fefe, 0x00fcfffc, 0x00fefdf8, 0x00fffdf2,
- 0x00f6ffe7, 0x00f9fee8, 0x00fefeef, 0x00fffef5, 0x00fdfef8, 0x00fcfcfa, 0x00fdfcfe, 0x00fffcff, 0x00f1fffa, 0x00f2fcf9, 0x00fbfcfc, 0x00fdf9f8, 0x00fff6f3, 0x00fcf6f2, 0x00fffcfb, 0x00ffffff,
- 0x00f5fbf1, 0x00f3f8ef, 0x00fefcf4, 0x00e9e7da, 0x00c1bfae, 0x00bdbdac, 0x00e1dfd3, 0x00fbf9f2, 0x00fafff4, 0x00f7fbf2, 0x00fdfefc, 0x00fafdfa, 0x00fcfdfe, 0x00fefdff, 0x00dfd9e3, 0x00bab5be,
- 0x00aab2a6, 0x00768469, 0x00485b33, 0x0044602a, 0x003e631f, 0x00456527, 0x00496530, 0x004a6530, 0x00436628, 0x0047682a, 0x004c6a2f, 0x004d6a30, 0x004f6c33, 0x004f6b34, 0x00536f38, 0x00546f38,
- 0x004a712b, 0x004c712c, 0x00517332, 0x00547536, 0x00557637, 0x00557537, 0x00577639, 0x005a7839, 0x00517932, 0x00537834, 0x00587935, 0x005a7b33, 0x005d7e35, 0x005e7e39, 0x00627d41, 0x00637c46,
- 0x005b7847, 0x0075906d, 0x00a6b8a8, 0x00abb9b4, 0x00a0aeb0, 0x00b3bcbe, 0x00c1c2c7, 0x00c7c7d0, 0x00bfc8ca, 0x00bac2c7, 0x00c2c4d0, 0x00d1d4e7, 0x00d9e1f2, 0x00dbe2f6, 0x00e5ecfd, 0x00eaf0ff,
- 0x00d1dad5, 0x00d3ddd4, 0x00eef3f0, 0x00e9f4e7, 0x00bccbb0, 0x0091a47e, 0x0085986c, 0x00778f57, 0x005c8237, 0x005e8736, 0x006a8a44, 0x00667f41, 0x00688442, 0x0067833e, 0x006e8743, 0x006c8540,
- 0x005f8333, 0x00618336, 0x00688340, 0x00678444, 0x00697f48, 0x00628240, 0x00658542, 0x00638640, 0x005b8435, 0x00598335, 0x005f833b, 0x00608239, 0x0062823c, 0x005f833a, 0x0060803c, 0x0061813e,
- 0x005a8333, 0x005b8133, 0x005e8039, 0x005e7f3a, 0x005e7f39, 0x005e7c39, 0x00627d3f, 0x00647e41, 0x005b7e37, 0x00597a36, 0x00557937, 0x00477e36, 0x00527f3a, 0x00587e39, 0x00567335, 0x0061723e,
- 0x00707f46, 0x00959965, 0x009e966a, 0x007f704a, 0x008a7551, 0x00907c54, 0x006f6135, 0x00645e2f, 0x00526d2b, 0x00466a26, 0x00476f2b, 0x0041712c, 0x00426e2c, 0x0045692b, 0x004a672b, 0x004e652b,
- 0x00446624, 0x00446625, 0x00466426, 0x00466227, 0x00436027, 0x00425e27, 0x00435d27, 0x00425d27, 0x003b5c22, 0x00395a22, 0x003f5b26, 0x004d6233, 0x00f9fefb, 0x00fefafd, 0x00fffdfd, 0x00fefbf4,
- 0x00f0fcf6, 0x00e9fcf8, 0x005a77b8, 0x00426abd, 0x00366dbc, 0x001f55a4, 0x002e5fb0, 0x004271c6, 0x003974bf, 0x002f69b4, 0x002e68b4, 0x002b65b1, 0x002f66b4, 0x003465b5, 0x003663b5, 0x003561b3,
- 0x002656a7, 0x002a5aad, 0x003664b9, 0x004170c3, 0x00386aba, 0x00396bb8, 0x003a68b6, 0x003663b2, 0x002757a1, 0x002b559d, 0x002f57a4, 0x002a54a5, 0x002650a0, 0x001f4798, 0x001d4597, 0x00244c9b,
- 0x0026589c, 0x002a58a1, 0x00255099, 0x001c4691, 0x001b4390, 0x002b468e, 0x00284288, 0x001b4484, 0x002d3e50, 0x005c3028, 0x007f2311, 0x008b1502, 0x00801c12, 0x0099381a, 0x00b5431b, 0x00cc4201,
- 0x00a24000, 0x00a93805, 0x00bd4725, 0x00e27a63, 0x00f5ccbe, 0x00e7d6c9, 0x00cab5a7, 0x00c7a591, 0x00d8a971, 0x00dab367, 0x00eab86e, 0x00efbb76, 0x00efb883, 0x00edbc88, 0x00eabb8a, 0x00e2ba82,
- 0x00ceb75a, 0x00c6af4f, 0x00b59b44, 0x009e8433, 0x00856828, 0x005e6147, 0x00435863, 0x003b4d7c, 0x00264698, 0x0024489e, 0x00224d9c, 0x0021518a, 0x0020507b, 0x00204784, 0x001e3b8c, 0x001d329b,
- 0x000e366e, 0x00113670, 0x001a3e7c, 0x00193c7f, 0x001b3b81, 0x00214288, 0x00264890, 0x0023448f, 0x00154083, 0x001a4688, 0x001f488e, 0x00224d8c, 0x00295195, 0x00315ca0, 0x004d76be, 0x006d95e1,
- 0x0080b4f1, 0x0084b1f1, 0x006388c4, 0x005479b5, 0x005f7db6, 0x005a7791, 0x00a1b4be, 0x00eef5fd, 0x00fbf8f9, 0x00fbf7f2, 0x00fefef9, 0x00fcfef4, 0x00b1b7ad, 0x00383d38, 0x00211f1f, 0x00332b34,
- 0x00303626, 0x0034392b, 0x00353930, 0x002f312b, 0x00252622, 0x001d1e1a, 0x00181916, 0x00151513, 0x000a1309, 0x000e110b, 0x00131210, 0x0011110d, 0x00190f0f, 0x001e0f13, 0x0023111b, 0x00241421,
- 0x001e1713, 0x002e1105, 0x00440a03, 0x006f1a05, 0x00b33411, 0x00cc3915, 0x00e23513, 0x00f53002, 0x00cd4517, 0x00865f5f, 0x004a6393, 0x001d68c3, 0x002858c9, 0x002e51b3, 0x002e52b0, 0x002c64b9,
- 0x00205fb6, 0x002262b4, 0x003673ca, 0x003e7bcf, 0x003c7cce, 0x004484d0, 0x00407bd0, 0x003069c2, 0x002467b7, 0x003376c7, 0x003f7ad5, 0x003874c9, 0x002e6bbe, 0x00306ebb, 0x003872c3, 0x003773c1,
- 0x003479bd, 0x003d82c7, 0x004282cf, 0x003977c9, 0x003978cd, 0x003777ca, 0x003b7ad1, 0x003c7bd6, 0x00347dca, 0x003479c7, 0x003677c5, 0x003a78c4, 0x00477bc1, 0x00527fc1, 0x005b84c1, 0x006285c0,
- 0x005986a3, 0x005e86a9, 0x006389b5, 0x005c86b7, 0x004e7cb5, 0x00497bb8, 0x00487bc0, 0x004073be, 0x002e6cb3, 0x002d6ab7, 0x00316cbf, 0x00306cc5, 0x002c65c0, 0x002762bd, 0x00316ac4, 0x002c65c2,
- 0x00256cbe, 0x002a6cc1, 0x002f6dc6, 0x002e6ec6, 0x002f70c7, 0x003770c4, 0x003e6ec4, 0x003c6fc6, 0x003472c7, 0x002d6dc5, 0x002868c4, 0x00276ac7, 0x002d6ecb, 0x003171cd, 0x003d78d3, 0x00407ad5,
- 0x00597a97, 0x0050657f, 0x00394154, 0x00302c34, 0x0032211a, 0x00301d0c, 0x002a1507, 0x0022120a, 0x00060b00, 0x001e221e, 0x00adafb4, 0x00f6f6f6, 0x00f7fbfa, 0x00fdfeff, 0x00fcf9fd, 0x00fbfafe,
- 0x007a8178, 0x00080e05, 0x000a070d, 0x00120d13, 0x00151119, 0x00201a22, 0x00352b35, 0x004a3f4a, 0x004e4949, 0x004f4844, 0x00514542, 0x005a4d48, 0x005c4f4a, 0x005a4b44, 0x0053423d, 0x00584842,
- 0x00675d68, 0x008b808d, 0x00b6a9bb, 0x00c4b8cc, 0x00c8bfd1, 0x00c4becf, 0x00c5bfd4, 0x00cac5da, 0x00c9cddc, 0x00cbd0e0, 0x00d0cde6, 0x00dacaec, 0x00dcccee, 0x00dad0f0, 0x00ddd2f3, 0x00dad1f1,
- 0x00d0d1e5, 0x00d1d0e6, 0x00d9d1ed, 0x00dbd2ee, 0x00d4c5e2, 0x00dc8e7b, 0x00d55528, 0x00ea501e, 0x00ee5626, 0x00f47a5b, 0x00f17971, 0x00e4736e, 0x00e47d64, 0x00e79c83, 0x00ffe4d3, 0x00fffaf3,
- 0x00f2dadc, 0x00e4c3c2, 0x00f4cbc6, 0x00ffe0d5, 0x00ffdad1, 0x00efcac7, 0x00957879, 0x00311f29, 0x0018181b, 0x0015181b, 0x00141117, 0x00222126, 0x0027252b, 0x00090a0e, 0x00030106, 0x00060208,
- 0x00000400, 0x00000400, 0x00000000, 0x00020001, 0x00000202, 0x00000001, 0x00020002, 0x00050208, 0x00302f38, 0x00726f81, 0x009a93af, 0x00a59cbf, 0x00a69cc4, 0x00a399c1, 0x00a79dc5, 0x00aea4cf,
- 0x00bfafa5, 0x00452519, 0x003b1f16, 0x002e1c13, 0x001e130b, 0x000e0a03, 0x00030501, 0x00000200, 0x00000200, 0x00000301, 0x00000402, 0x00010302, 0x00000200, 0x00000100, 0x00000100, 0x00010000,
- 0x00000102, 0x00000302, 0x00050707, 0x00090b0a, 0x000e110f, 0x0012150f, 0x00151811, 0x00161a12, 0x00141811, 0x00121611, 0x00111310, 0x000c0f0c, 0x00070b08, 0x00020604, 0x00020304, 0x00020205,
- 0x0000050c, 0x0000060d, 0x00010711, 0x00020815, 0x00050b17, 0x00050b17, 0x00050b17, 0x00050b15, 0x00060e0e, 0x00070e0f, 0x00051012, 0x0007141b, 0x00091214, 0x000f0f0c, 0x00292316, 0x00746253,
- 0x00a18268, 0x00b88f72, 0x00b58464, 0x00986240, 0x009c5f3e, 0x00a67454, 0x00cea285, 0x00e2b99b, 0x00ddb58d, 0x00d6a97a, 0x00c48e5a, 0x00b47b43, 0x009f6a3f, 0x008a5c42, 0x00502f22, 0x00190807,
- 0x00060209, 0x0013121e, 0x003c3d4a, 0x00606570, 0x00404653, 0x00161e2a, 0x0001070e, 0x0001030a, 0x00000605, 0x00050806, 0x000d100f, 0x000b1110, 0x00101616, 0x00151c1b, 0x001b2220, 0x001e2323,
- 0x00232a2a, 0x00222828, 0x00202526, 0x001c2222, 0x00181c1d, 0x00101615, 0x000b120e, 0x000b110c, 0x000c130a, 0x000f170e, 0x00181e17, 0x001e241e, 0x00252d29, 0x002e3535, 0x003c4045, 0x00454950,
- 0x004c4f51, 0x00515557, 0x00575b5d, 0x00595d5d, 0x00595c5c, 0x005b5d5c, 0x00585a5a, 0x00515454, 0x00444646, 0x00393d3d, 0x00323434, 0x00292c29, 0x001d221e, 0x001c1f1d, 0x00222522, 0x00252a25,
- 0x00252924, 0x00262a25, 0x00282b27, 0x00262926, 0x00262826, 0x00757673, 0x00fdfdfb, 0x00fcfcfc, 0x00fbfbfa, 0x00fdfdfd, 0x00fdfdff, 0x00cfced1, 0x0081817e, 0x0065665f, 0x0025261d, 0x001d1f14,
- 0x00333024, 0x004d493b, 0x00817c6e, 0x00a7a295, 0x00777366, 0x00474436, 0x00444132, 0x00363323, 0x00202010, 0x00363226, 0x00484636, 0x003d3c2d, 0x00353925, 0x00373425, 0x00302b16, 0x00453c28,
- 0x006c6548, 0x00776c4d, 0x00615332, 0x0050421f, 0x00554520, 0x0062532c, 0x00584925, 0x00413115, 0x0044341d, 0x005b4c2d, 0x00655734, 0x00675c2f, 0x006c6132, 0x006b5f39, 0x00635638, 0x00574935,
- 0x0052563c, 0x00575a44, 0x00525544, 0x00424237, 0x005b5e55, 0x0092928c, 0x00bfc2bd, 0x00daddd9, 0x00d9dfd4, 0x00a3a99e, 0x002b332b, 0x00050b0b, 0x001e1715, 0x00433732, 0x0071635a, 0x00827567,
- 0x007e7d68, 0x006d705d, 0x0055594b, 0x002e2c23, 0x00180f0c, 0x00363223, 0x004f4d3b, 0x004a4b38, 0x008e8e7f, 0x00ccc9bc, 0x00bbb7ad, 0x00bdbaaf, 0x0098948b, 0x0076736c, 0x00626059, 0x00635e5c,
- 0x00625b4a, 0x00857f70, 0x00d4d0c4, 0x00f0f0e7, 0x00eef2ec, 0x00f0f8f2, 0x00edf4ee, 0x00dde1dd, 0x00d4dad0, 0x00c8cdc4, 0x00cacbc3, 0x00dbded4, 0x00e7f1e9, 0x00deefe6, 0x00d8ebe5, 0x00d9f0eb,
- 0x00dbf5f2, 0x00daf0eb, 0x00ddebea, 0x00e3eeeb, 0x00eaeeec, 0x00d0d9ec, 0x007783a1, 0x003d475c, 0x003b4146, 0x00535a56, 0x006a7265, 0x008a8f7e, 0x00a4a593, 0x00959585, 0x00a29d91, 0x0080796b,
- 0x003d3426, 0x004c4233, 0x004d4131, 0x00302513, 0x00483e27, 0x006c634c, 0x00615743, 0x00524735, 0x0058503d, 0x005b5044, 0x00393429, 0x00181913, 0x00231808, 0x00523f25, 0x00866d53, 0x00866f51,
- 0x00524932, 0x0026220f, 0x002c2a1c, 0x00464536, 0x002d2918, 0x000c0b0a, 0x00040307, 0x000b0b0b, 0x0035332e, 0x003d3a30, 0x007d786f, 0x00e4e3d7, 0x00fcfef5, 0x00fdfefb, 0x00fcfbfc, 0x00fcfbfe,
- 0x00d4d8d4, 0x008f928e, 0x00838382, 0x00b3b2b2, 0x00e7e6e5, 0x00fafaf9, 0x00fbfbfd, 0x00fcfcfd, 0x00fcfdfb, 0x00fcfcfb, 0x00fcfbfc, 0x00fdfbfa, 0x00fefdf9, 0x00fefdfb, 0x00fbfcfc, 0x00f9fcf9,
- 0x00fbfefd, 0x00fbfdfc, 0x00fcfdfb, 0x00fdfdfb, 0x00fefcfb, 0x00fff8ff, 0x00fff8fe, 0x00fef9fe, 0x00fcfcfb, 0x00fbfcfc, 0x00fafcfe, 0x00fafbfc, 0x00fcfcf7, 0x00fefcf1, 0x00fffced, 0x00fefbe7,
- 0x00fafbf8, 0x00fcfbf9, 0x00fdfbfa, 0x00fbfbf9, 0x00fdfcfa, 0x00fbfcfa, 0x00fafdfb, 0x00fbfdfd, 0x00fcfdfd, 0x00fcfdfc, 0x00fcfcfd, 0x00fdfdfa, 0x00fcfcfa, 0x00fcfcfa, 0x00fdfdfa, 0x00fcfdfa,
- 0x00fafbfa, 0x00fbfdfa, 0x00fcfef9, 0x00fbfdf8, 0x00fcfcfb, 0x00fdfaf9, 0x00fef9f8, 0x00fff9fa, 0x00f9fafc, 0x00fafafe, 0x00fbfafe, 0x00fcfafe, 0x00fffcfe, 0x00fffcfa, 0x00fdfaf6, 0x00fdfaf5,
- 0x00fdfcf6, 0x00fdfbf8, 0x00fffafa, 0x00fefafc, 0x00fefbfe, 0x00fdfcfd, 0x00fcfdfd, 0x00fcfcfb, 0x00fbfcff, 0x00fefcfd, 0x00fcfcfd, 0x00f7fdfe, 0x00fafefe, 0x00fdfffa, 0x00fdfef6, 0x00fffef3,
- 0x00fcfcef, 0x00fcfcf1, 0x00fefcf5, 0x00fffdf5, 0x00fcfdf7, 0x00fbfbfa, 0x00fcfbfe, 0x00fcfdfd, 0x00f8fffa, 0x00fafffd, 0x00fcfcfc, 0x00fefafc, 0x00fdf3f7, 0x00fffafa, 0x00fbfaf5, 0x00f9fff7,
- 0x00fafdf9, 0x00f7faf7, 0x00fcfcfa, 0x00fafbf5, 0x00f3f4ea, 0x00f0f2e6, 0x00f6f7ed, 0x00fafcf4, 0x00fafdf9, 0x00fdfefc, 0x00fbfdfc, 0x00fbfefd, 0x00fdfdfc, 0x00fefbfc, 0x00ccc3c3, 0x00a29794,
- 0x009e9c88, 0x00707758, 0x0046562d, 0x00425b28, 0x003d6122, 0x00456528, 0x0045642a, 0x0048652b, 0x0047662c, 0x0049682d, 0x004c682f, 0x004c692f, 0x004d6b32, 0x004d6c32, 0x00506f34, 0x00516f34,
- 0x004d7130, 0x004e7130, 0x00517232, 0x00527434, 0x00547535, 0x00557636, 0x00587737, 0x00597737, 0x00577837, 0x0057793a, 0x00587938, 0x00587d35, 0x005a7f36, 0x005b8136, 0x005e8237, 0x005e8039,
- 0x00637f41, 0x005d7647, 0x007c926f, 0x0099ae92, 0x00a5b8a6, 0x00a8b3ba, 0x00b4bacf, 0x00ccd2e8, 0x00d6dcef, 0x00c4cbdc, 0x00b7bcca, 0x00bdc3ce, 0x00c8d1d1, 0x00d6dfdb, 0x00e2ece2, 0x00dbe6d8,
- 0x00dfcfe3, 0x00d3c5d7, 0x00d8cedd, 0x00f2e9f0, 0x00f2f4ef, 0x00ebf3e3, 0x00ddedd3, 0x00cde6c3, 0x0092b382, 0x00668753, 0x0063834d, 0x0069854b, 0x00708b4b, 0x0068853f, 0x00678735, 0x006c8933,
- 0x0066882b, 0x0065832d, 0x0065862d, 0x00688932, 0x00638530, 0x00628438, 0x0060853b, 0x0061853d, 0x005f853b, 0x0061853c, 0x0060833b, 0x0063833d, 0x005f853d, 0x005e833b, 0x005d8139, 0x005d8139,
- 0x005d823a, 0x005e8138, 0x005f7f39, 0x005f8039, 0x005e7f38, 0x0063833e, 0x005c7c39, 0x00567634, 0x005c7838, 0x005f7b3d, 0x005c7c3e, 0x0052803f, 0x0053783d, 0x005a7941, 0x00758a54, 0x0099a271,
- 0x00a6a675, 0x00868152, 0x004e4216, 0x0043350b, 0x005e4d23, 0x00615d2b, 0x005c612a, 0x00606931, 0x00577034, 0x004d6c2e, 0x004c7031, 0x00466f2e, 0x00456e2d, 0x00466d2b, 0x00476a29, 0x00486727,
- 0x00476527, 0x00466527, 0x00476327, 0x00456126, 0x00436127, 0x00416027, 0x00415e28, 0x00415e28, 0x003d5c24, 0x003f5e29, 0x00405a28, 0x005d6e44, 0x00f7fcfa, 0x00fefbfd, 0x00fcfbf8, 0x00fdfdf0,
- 0x00f4fdfa, 0x00eafdff, 0x005978b4, 0x00436bbe, 0x002d66b0, 0x002257a2, 0x003569b0, 0x00457bc3, 0x003672ba, 0x002a66ae, 0x002964ad, 0x002a65ae, 0x002e67b1, 0x003267b3, 0x002f60ae, 0x002959a8,
- 0x002f57ab, 0x003059ad, 0x00355fb3, 0x00406ebf, 0x00396ab6, 0x003d6eb7, 0x003b69b2, 0x003862ac, 0x002d54a1, 0x002c509c, 0x002d52a1, 0x002c55a6, 0x002b55a6, 0x002650a1, 0x001e4898, 0x001b4592,
- 0x002a57a0, 0x002f5aa6, 0x0027539d, 0x001b4692, 0x0016408a, 0x0022458e, 0x002c4788, 0x002d4270, 0x0045272b, 0x0063160d, 0x00771501, 0x007b1400, 0x00672104, 0x00893a11, 0x00a5420f, 0x00c43d00,
- 0x009b4c07, 0x00bc4108, 0x00e04e1c, 0x00e54f23, 0x00d58b5d, 0x00dcb58e, 0x00c6a987, 0x00caa287, 0x00e1ac75, 0x00deb767, 0x00e1bc6b, 0x00e8ba7a, 0x00e5b986, 0x00e9b88c, 0x00e0b584, 0x00d7b275,
- 0x00cab054, 0x00b8a245, 0x009c8836, 0x00827331, 0x00695b34, 0x00435154, 0x002f4f70, 0x0028487f, 0x00234793, 0x00234998, 0x00224b95, 0x00224f8a, 0x00255081, 0x00224681, 0x001a377d, 0x00183082,
- 0x0011306a, 0x00173570, 0x00183775, 0x00143574, 0x00163577, 0x001a3b7f, 0x00204387, 0x001e3f84, 0x001b3f88, 0x0021438e, 0x00214790, 0x00204d8f, 0x00214d8e, 0x00295597, 0x003b67a8, 0x00547fc0,
- 0x0078a5e5, 0x008ab5f7, 0x006f99da, 0x005580c2, 0x005f89c8, 0x007596b6, 0x00b0c6d5, 0x00eef8fd, 0x00fefaff, 0x00fef9f6, 0x00fefef7, 0x00fcfef2, 0x00b0b7ae, 0x00373e39, 0x001e1f21, 0x00302b35,
- 0x00343730, 0x00363a33, 0x00353933, 0x002d322d, 0x00232723, 0x001b1f1c, 0x00161817, 0x00121513, 0x0009110e, 0x000d1010, 0x00101013, 0x00100f12, 0x001b0c11, 0x00210c13, 0x001f0f19, 0x001c131f,
- 0x00131b24, 0x001a171d, 0x00271012, 0x003b0a03, 0x0076220c, 0x00aa3721, 0x00d3381a, 0x00fa3200, 0x00ef3500, 0x00b34f32, 0x00735c69, 0x003a63a9, 0x00305ad2, 0x002e53c1, 0x002952ae, 0x002d64a6,
- 0x00225fba, 0x002563b9, 0x003672c6, 0x00407bcf, 0x00417fd0, 0x004482d3, 0x003e7bcd, 0x00306dc1, 0x002d6abd, 0x003572ca, 0x003c78d1, 0x003670c8, 0x00306bc0, 0x00316dc0, 0x003775c4, 0x003676c3,
- 0x003676c2, 0x003374c1, 0x003474c3, 0x003978cb, 0x00387ace, 0x003778ce, 0x003678cd, 0x00387ad0, 0x00367ccc, 0x00387cca, 0x003b7ac4, 0x00407cc0, 0x005282bb, 0x005e86b7, 0x00668ab3, 0x006c89ae,
- 0x006888a0, 0x006e8ca7, 0x006e8dad, 0x00668aaf, 0x00557dac, 0x00507db2, 0x004879b7, 0x003e70b5, 0x003269b4, 0x003168b8, 0x00326abe, 0x002c66bf, 0x00215ab4, 0x00215bb6, 0x002c68c1, 0x002b67c3,
- 0x002d6bc4, 0x002d6bc3, 0x002d6bc4, 0x002c6cc5, 0x002d6ec6, 0x003670c5, 0x003c6ec3, 0x003c6dc3, 0x00396fca, 0x00366bc8, 0x003066c5, 0x003067c8, 0x003069cb, 0x00306cce, 0x003272d3, 0x003273d4,
- 0x004a7cba, 0x00567bb5, 0x00476390, 0x00354763, 0x00232830, 0x00201c1b, 0x00201611, 0x0022180f, 0x000d0d08, 0x001d1a17, 0x009c9b9e, 0x00f4f4f3, 0x00f6fcfa, 0x00fbfeff, 0x00fafdfd, 0x00fcfffd,
- 0x008c918d, 0x00131411, 0x00060001, 0x00100505, 0x00100204, 0x00150807, 0x002a1e1c, 0x00463b39, 0x00453b35, 0x003f342e, 0x00514741, 0x00574d4c, 0x00514647, 0x003b3035, 0x00362a2f, 0x006e5f67,
- 0x009a91b1, 0x00b0a8c6, 0x00c5bcdc, 0x00c6bfdc, 0x00c2bdd6, 0x00bfbdd2, 0x00c5c5da, 0x00cacbde, 0x00cccfdf, 0x00cdd0e0, 0x00d3cee5, 0x00dacce7, 0x00dbcee8, 0x00dad2e9, 0x00d9d3eb, 0x00d6d3eb,
- 0x00cfd2e6, 0x00d4d1e7, 0x00d9d1e8, 0x00dfd8ed, 0x00d9cce6, 0x00ec8f90, 0x00e15a44, 0x00ea5b37, 0x00dd6d4b, 0x00f8a798, 0x00fac9c6, 0x00ebc3c7, 0x00dea49d, 0x00dca4a8, 0x00fed6e3, 0x00fde6ff,
- 0x00e7a596, 0x00ce867a, 0x00d58b7a, 0x00eeac9a, 0x00fed2c5, 0x00fbdfde, 0x009e878b, 0x0030262f, 0x001d1d25, 0x00332d33, 0x003e3941, 0x0053545b, 0x0054545d, 0x0025252b, 0x0004010a, 0x00030207,
- 0x00010002, 0x00010003, 0x00000003, 0x00000103, 0x00000102, 0x00010100, 0x00010001, 0x00050108, 0x00403a48, 0x00827c91, 0x00a19ab5, 0x00b4adcd, 0x00bfb6dd, 0x00beb5dd, 0x00b6aed6, 0x00b3abd6,
- 0x00c1aea4, 0x0048261b, 0x00402119, 0x00341f16, 0x0025170f, 0x00150f07, 0x00090904, 0x00030602, 0x00010604, 0x00010604, 0x00000605, 0x00030505, 0x00000603, 0x00010403, 0x00000303, 0x00010202,
- 0x00010303, 0x00020402, 0x00060807, 0x000b0e0b, 0x00111412, 0x00131712, 0x00161a15, 0x00171c16, 0x00191b12, 0x00161912, 0x00131612, 0x000f110e, 0x00080a08, 0x00030503, 0x00020402, 0x00010503,
- 0x00050a11, 0x00060b13, 0x00090d19, 0x00090d1b, 0x000b0f1c, 0x000a0f1b, 0x00080e17, 0x00040a10, 0x0004090f, 0x00020909, 0x00010909, 0x00020e15, 0x00060c0a, 0x00090804, 0x0031291c, 0x007b6f59,
- 0x00aa8c72, 0x00a17d5f, 0x00bd9274, 0x00c59476, 0x00c28b71, 0x00be8864, 0x00cc9770, 0x00d3a17e, 0x00d3a37f, 0x00ce9a71, 0x00c48757, 0x00b3703d, 0x009b5f31, 0x00825738, 0x00442918, 0x00120508,
- 0x000a050d, 0x000c0a13, 0x00202025, 0x003b3e47, 0x00252a32, 0x00080f15, 0x00000605, 0x00000507, 0x00050906, 0x00060906, 0x000a0e0c, 0x00070c0c, 0x000b0f11, 0x00101316, 0x00131719, 0x0016191a,
- 0x001e2224, 0x001f2222, 0x001c1f20, 0x00171b1c, 0x00121518, 0x000c1012, 0x00070e0d, 0x00070e0a, 0x000b110b, 0x000c130c, 0x00131912, 0x0019201a, 0x00242b28, 0x002d3233, 0x003a3c41, 0x0042434a,
- 0x0047494d, 0x004b4d51, 0x004f5054, 0x004c4e51, 0x004a4c4d, 0x004a4c4d, 0x00494a4b, 0x00434446, 0x003b3b3f, 0x00333636, 0x002e312f, 0x00282b27, 0x001f221e, 0x001d201d, 0x00202320, 0x00212420,
- 0x00232624, 0x00232623, 0x00262825, 0x00282b28, 0x002c2e2c, 0x00797b79, 0x00fefffd, 0x00fdfefc, 0x00fdfcfc, 0x00fcfdfc, 0x00fdfefe, 0x00cdcdce, 0x007d7c7b, 0x00696964, 0x00474841, 0x0062655a,
- 0x00959284, 0x00969586, 0x009c9c8d, 0x00a8a898, 0x006d6c5e, 0x0039372b, 0x003c392e, 0x00383529, 0x00292619, 0x002c2a1d, 0x003a352c, 0x0032332d, 0x0035322c, 0x00323227, 0x002c2618, 0x00433d2b,
- 0x00685b44, 0x006a5c3f, 0x004b3b1c, 0x003a2907, 0x00362203, 0x003f2e08, 0x004b3a16, 0x004a3617, 0x00513e23, 0x00685634, 0x0073613a, 0x00756535, 0x00766636, 0x0075653d, 0x00625231, 0x00503f28,
- 0x00483f2b, 0x00423a28, 0x00554e40, 0x00736c63, 0x00ada6a1, 0x00cac3c1, 0x00d8d3d1, 0x00dcd7d5, 0x00e3dcd8, 0x00c7c2bb, 0x00575852, 0x00111313, 0x001c1312, 0x0053423c, 0x00847367, 0x00827561,
- 0x006e6752, 0x00656651, 0x005d604e, 0x0036352b, 0x001f1918, 0x003f3d31, 0x004d4a39, 0x00444231, 0x00929084, 0x00dad7cb, 0x00cecac1, 0x00cfcac4, 0x00a49d9a, 0x0067605f, 0x00544f4f, 0x00767176,
- 0x00adb0ab, 0x00cdd1cf, 0x00e6e9ec, 0x00e8eef4, 0x00e7f0f7, 0x00e2eef5, 0x00e9f5fd, 0x00e3eef6, 0x00e6eef5, 0x00dae1e6, 0x00d7dcdf, 0x00e0e5e4, 0x00e7edf0, 0x00eaf1f4, 0x00e8eef3, 0x00e9f0f5,
- 0x00e9eef4, 0x00e4eeee, 0x00e8f2f0, 0x00e1ede7, 0x00e2eee4, 0x00e5f0f5, 0x00cfd6e2, 0x00959b9e, 0x004f4f4f, 0x002f322f, 0x00353731, 0x006c726a, 0x00999d93, 0x00878b7d, 0x00959684, 0x0077745d,
- 0x003f3124, 0x00493c2c, 0x00453826, 0x00231503, 0x003f331a, 0x0060543a, 0x0063563d, 0x005d4f3a, 0x005f4e3f, 0x004f4032, 0x0031291c, 0x001d1b13, 0x00271a08, 0x00564029, 0x0081684c, 0x00705a3d,
- 0x00423223, 0x001b1408, 0x001a1711, 0x002e2e28, 0x002f2821, 0x0018151a, 0x0008060e, 0x00060508, 0x002f2b2a, 0x003a352c, 0x007c766e, 0x00e3e1d6, 0x00fefef7, 0x00fcfdfa, 0x00fbfcfc, 0x00fbfdff,
- 0x00d8d8d8, 0x0090908f, 0x00858585, 0x00b3b2b2, 0x00e8e7e7, 0x00fbfafa, 0x00fffeff, 0x00fffeff, 0x00fffffe, 0x00fefefd, 0x00fefdfe, 0x00fffdfe, 0x00fffdfb, 0x00fcfefc, 0x00fbfffd, 0x00fbfffc,
- 0x00fffffe, 0x00fefefd, 0x00fbfefd, 0x00fefcfa, 0x00fdfbfd, 0x00fff8fc, 0x00fef7ff, 0x00fef5ff, 0x00fdf4fd, 0x00fdf5fd, 0x00fff6ff, 0x00fef7fe, 0x00fffafc, 0x00fdfcf8, 0x00fcfef5, 0x00f9fdf1,
- 0x00fdfdfe, 0x00fcfdfe, 0x00fefcfe, 0x00fcfbfd, 0x00fefdfe, 0x00fdfefe, 0x00fffeff, 0x00ffffff, 0x00fffeff, 0x00fefdff, 0x00fbfcff, 0x00fdfcfa, 0x00fcfefc, 0x00fefcfb, 0x00fdfefb, 0x00fdfdfb,
- 0x00fdfefa, 0x00fdfffc, 0x00fdfefb, 0x00fdfefa, 0x00fffefa, 0x00fffcfc, 0x00fefafd, 0x00fdfbff, 0x00fdfdfe, 0x00fefdfd, 0x00fcfbf9, 0x00fdfdfa, 0x00fefdfb, 0x00fefefd, 0x00fbfcfc, 0x00fdfefe,
- 0x00fdfefc, 0x00fdfcfd, 0x00fffbff, 0x00fefafe, 0x00fffbfd, 0x00fdfcfa, 0x00fefffb, 0x00fefff9, 0x00fffdfd, 0x00fffdff, 0x00fffcfc, 0x00fcfdf9, 0x00fdfdfa, 0x00fcfffe, 0x00fdfffe, 0x00fcfffd,
- 0x00fefcfd, 0x00fbfdfa, 0x00fcfdfa, 0x00fefcfb, 0x00fdfdfb, 0x00fefcfb, 0x00fefcfe, 0x00fbffff, 0x00f8fffb, 0x00f8fef9, 0x00fefcfb, 0x00fcf8fb, 0x00fff7ff, 0x00fdfbff, 0x00fafaf9, 0x00f9fef7,
- 0x00fffdfe, 0x00fcfbfc, 0x00fffefe, 0x00fcfdfb, 0x00fffdfa, 0x00fcfdf8, 0x00f9fbf8, 0x00f8fcfb, 0x00ffffff, 0x00fefdfe, 0x00fcfbfd, 0x00faf8ff, 0x00fefeff, 0x00fffaf9, 0x00bbaaa1, 0x0080705d,
- 0x0081735b, 0x00646440, 0x004a5529, 0x00465d2c, 0x003f5f27, 0x0044632a, 0x0045622a, 0x0047652d, 0x0048662d, 0x004a672e, 0x004c682f, 0x004d6a30, 0x004e6b32, 0x004f6c33, 0x00506e34, 0x00506d34,
- 0x00507132, 0x004f6f30, 0x00517132, 0x00537434, 0x00547535, 0x00567636, 0x00577737, 0x00587637, 0x00567739, 0x0058793b, 0x0058783b, 0x00597b3d, 0x005a7b3a, 0x005d7f38, 0x005d7f34, 0x005d8032,
- 0x0063813c, 0x0062803f, 0x00617e43, 0x00658151, 0x0088a178, 0x00a5b9ae, 0x00b5c7cd, 0x00cad9e1, 0x00d8e2eb, 0x00d7e2e9, 0x00dce4eb, 0x00d3dce0, 0x00c3cac4, 0x00c7ccc4, 0x00d8ddd1, 0x00e6ebdc,
- 0x00e4c2cf, 0x00c3a6b3, 0x00c3abb7, 0x00d7c3cb, 0x00e9e4ea, 0x00eeebef, 0x00e6edf0, 0x00e3f4f3, 0x00d7ece4, 0x009fbcb2, 0x0063817b, 0x00567267, 0x00627f70, 0x00678669, 0x0060815a, 0x00648857,
- 0x0064884b, 0x00628948, 0x00628743, 0x005f8544, 0x00618344, 0x0060833f, 0x00638440, 0x00618640, 0x0061853d, 0x005f853d, 0x0060853d, 0x005e803c, 0x005f843c, 0x005e843e, 0x005c8338, 0x005c8238,
- 0x005e843a, 0x005d8137, 0x005d8039, 0x005f803b, 0x005f7f3a, 0x005c7a37, 0x00617d3c, 0x0064823e, 0x00637b3c, 0x005d7837, 0x0060743d, 0x006e7c51, 0x008d9467, 0x009da376, 0x00b8ba8d, 0x00afae82,
- 0x00847f51, 0x00525422, 0x004f541f, 0x00606830, 0x00606d34, 0x005d7538, 0x00527031, 0x00526e30, 0x00527031, 0x00507031, 0x00527333, 0x004b6e2e, 0x00486d2c, 0x00496c2c, 0x00486b2c, 0x00476829,
- 0x00496629, 0x00476527, 0x00466326, 0x00446225, 0x00436126, 0x00426027, 0x00425f27, 0x00415e27, 0x00415b23, 0x003f5d26, 0x0045592a, 0x0075825b, 0x00fefcff, 0x00fffbff, 0x00fffaf9, 0x00fffdf1,
- 0x00fafffe, 0x00ecfcfd, 0x005674ad, 0x003f67b5, 0x00235aa6, 0x00275ba7, 0x004175bd, 0x00477ec5, 0x00346eb7, 0x002964ad, 0x002a64ae, 0x002f67b2, 0x003367b4, 0x003464b3, 0x00305cad, 0x002b54a6,
- 0x002e57a7, 0x002e56a6, 0x00325ead, 0x003c6cba, 0x003a6bb9, 0x003b6db9, 0x003969b6, 0x003561af, 0x002955a3, 0x0028519f, 0x002950a1, 0x002950a2, 0x002d54a7, 0x002a54a6, 0x00234d9e, 0x001e4797,
- 0x002954a0, 0x002f59a4, 0x002d56a2, 0x001f4a94, 0x00123d8a, 0x001b3e8f, 0x0033468a, 0x00454161, 0x00661d13, 0x006a0e01, 0x00731300, 0x006e2407, 0x00674511, 0x007b4412, 0x00973f13, 0x00c03714,
- 0x00c24b0e, 0x00d3541b, 0x00db5725, 0x00d75e2d, 0x00e49360, 0x00e6b47b, 0x00d3ad6e, 0x00cca96c, 0x00dfb077, 0x00dcb072, 0x00e1b577, 0x00debf76, 0x00e1b880, 0x00dcb680, 0x00d8af78, 0x00cea768,
- 0x00bea24d, 0x00a2903d, 0x00837737, 0x006a6740, 0x00504f53, 0x00344c72, 0x00264a83, 0x00254a86, 0x00234d8d, 0x00234d8d, 0x00234d91, 0x00254d8d, 0x00294c8b, 0x00294782, 0x00213a76, 0x001c326f,
- 0x00102b64, 0x00132e69, 0x00193572, 0x00153270, 0x00153273, 0x00163479, 0x001e3d83, 0x001d3d81, 0x001e3e87, 0x0021428d, 0x0020458c, 0x001b478e, 0x00204a8d, 0x00265397, 0x00335fa0, 0x004671b0,
- 0x006792d7, 0x0082b0ee, 0x007aaae8, 0x005f8ece, 0x006798dc, 0x008dafd6, 0x00bad0e6, 0x00effbfe, 0x00fef8ff, 0x00fef8f6, 0x00fffdf7, 0x00fcfef2, 0x00b2b9b0, 0x00383f3b, 0x001f2123, 0x00302e36,
- 0x00373a3a, 0x00383a39, 0x00363937, 0x00303331, 0x00272b2a, 0x00202425, 0x00191d1e, 0x00121618, 0x000e1014, 0x000b0e11, 0x000b0e13, 0x00061115, 0x00170f11, 0x001d0f11, 0x001f0f15, 0x0019111b,
- 0x000c192c, 0x000a1527, 0x001d1b28, 0x00250712, 0x00551312, 0x008d2315, 0x00b93314, 0x00d5360b, 0x00e23a01, 0x00ca451b, 0x00a24a46, 0x006f527e, 0x003b5bc6, 0x002755c1, 0x001b4faf, 0x00285da4,
- 0x002660b9, 0x002561b9, 0x003673c6, 0x003f7dce, 0x004583d1, 0x004a87d7, 0x003976c6, 0x00306dc1, 0x003975cd, 0x003c77d1, 0x003873cb, 0x00326cc8, 0x002e67c1, 0x00316bc3, 0x003a74c5, 0x003c76c8,
- 0x003676c7, 0x003576ca, 0x003877ca, 0x003676cb, 0x003674cb, 0x003573cd, 0x003a77cd, 0x003b79d2, 0x003a79cd, 0x003a79c6, 0x00407bc3, 0x004b81c0, 0x005f88b7, 0x006b8ab0, 0x00738eaa, 0x00788da2,
- 0x00788e9c, 0x007a92a3, 0x007791a8, 0x006d8baa, 0x005c7eab, 0x00597fb5, 0x004c77b6, 0x003a6baf, 0x003268b1, 0x002f68b5, 0x003169bd, 0x002a63bf, 0x001d54af, 0x00245cb7, 0x002e67c0, 0x002966be,
- 0x00316ac8, 0x002d69c3, 0x002c69c1, 0x002e6bc4, 0x00306cc7, 0x003571cc, 0x003570ca, 0x00346fc8, 0x00366fca, 0x00366dc8, 0x003169c3, 0x00346ac5, 0x00326cc7, 0x00356ecc, 0x003371cf, 0x003372d0,
- 0x003977cb, 0x00447cca, 0x004b7abb, 0x00426b9d, 0x002e4863, 0x001a283c, 0x00131922, 0x00131213, 0x00150f0b, 0x001e1610, 0x00958d90, 0x00f1f0f0, 0x00fdfefe, 0x00f7fefc, 0x00f9fdfe, 0x00f9fefe,
- 0x009b9a9a, 0x00181515, 0x00040002, 0x000f0104, 0x00120001, 0x00140300, 0x00261612, 0x00443630, 0x00473d37, 0x00433933, 0x00554c4b, 0x00534a4f, 0x00382f3e, 0x00120c1f, 0x002e2941, 0x00827996,
- 0x00bdb3d1, 0x00c0b7d2, 0x00c2b9d5, 0x00c3bad5, 0x00c4bcd6, 0x00c6bed8, 0x00cdc7e0, 0x00d1cce4, 0x00d2cde3, 0x00d1cee4, 0x00d9ceea, 0x00ddcded, 0x00dccfed, 0x00dbd0ec, 0x00d7d0eb, 0x00d6d2eb,
- 0x00d6d2ed, 0x00d6d1e9, 0x00ded5ed, 0x00e2d9f2, 0x00e4d7eb, 0x00ef8c89, 0x00e95640, 0x00ef5937, 0x00db6d4b, 0x00efaa9b, 0x00fcdbd9, 0x00ecd6dd, 0x00f7d0cf, 0x00f5ced7, 0x00fee3f8, 0x00ecd6fb,
- 0x00f48568, 0x00df7453, 0x00db775a, 0x00df8368, 0x00f3beb5, 0x00fde0de, 0x00b3a0a9, 0x00635d68, 0x0075727d, 0x00999396, 0x00a4a1a9, 0x00aba8b9, 0x009e9bab, 0x006e6b77, 0x0032313d, 0x0016161e,
- 0x0008050d, 0x00020007, 0x00030208, 0x00000007, 0x00010106, 0x00000000, 0x00020100, 0x00090509, 0x004d4858, 0x008a859a, 0x00a099b5, 0x00b2a9cc, 0x00c9bfe8, 0x00d4cbf4, 0x00d6cdf4, 0x00d8cff5,
- 0x00c1aca2, 0x004b241b, 0x00432018, 0x00371f15, 0x00291a12, 0x001a140b, 0x000e0f07, 0x00070d06, 0x00030b0b, 0x00030b09, 0x00040a0a, 0x0007090a, 0x00070a09, 0x00070a08, 0x00060a09, 0x00060907,
- 0x00060806, 0x00050707, 0x00080b09, 0x000d110f, 0x00131715, 0x00161a16, 0x00181d15, 0x00191e17, 0x00181c14, 0x00151a13, 0x00131713, 0x00111411, 0x00090c0a, 0x00050806, 0x00050908, 0x00070c0a,
- 0x000e131a, 0x0011161e, 0x00161b25, 0x00181c28, 0x001a1f2b, 0x001b1f2b, 0x00161b25, 0x000d131b, 0x00090c0e, 0x00060b0b, 0x00020a08, 0x00000b10, 0x00030b06, 0x00050502, 0x00292514, 0x007a7259,
- 0x00987f60, 0x00937154, 0x00ae8768, 0x00ba8a70, 0x00c7967e, 0x00c98e63, 0x00c08553, 0x00bc875e, 0x00bd8c66, 0x00c08761, 0x00b67648, 0x00a96331, 0x0095582d, 0x0070492b, 0x002b1809, 0x00070405,
- 0x00040408, 0x0007060b, 0x0018171a, 0x00222427, 0x00191d22, 0x00060e12, 0x00010607, 0x00000505, 0x00040706, 0x00080804, 0x00070606, 0x00070a0c, 0x00060a0d, 0x00090d0f, 0x00080c0e, 0x000b100e,
- 0x00101517, 0x00131718, 0x00131717, 0x000f1314, 0x000c1011, 0x00080e0e, 0x00050d0a, 0x00040c08, 0x00090e08, 0x000d120b, 0x00121710, 0x00191f18, 0x00222826, 0x002b3132, 0x0034383d, 0x003c3f45,
- 0x003f4244, 0x00414446, 0x00424448, 0x003f4144, 0x00393c3e, 0x0036393b, 0x00333437, 0x00303135, 0x002b2d2e, 0x00282b2b, 0x00272928, 0x00242522, 0x001e201c, 0x001b1f1c, 0x001d211e, 0x001e211e,
- 0x00212421, 0x00222521, 0x00232622, 0x00272a26, 0x002c2e2c, 0x007a7b7a, 0x00fdfefd, 0x00fdfefc, 0x00fcfcfd, 0x00ffffff, 0x00fbfcfc, 0x00cbcccb, 0x007b7b79, 0x0071716b, 0x006b6c62, 0x008f9184,
- 0x00b0ae9d, 0x00a8a998, 0x00a1a394, 0x00959789, 0x004d4d41, 0x00212014, 0x0027281a, 0x002e3021, 0x00272314, 0x00231c10, 0x00262619, 0x00262624, 0x002d2c26, 0x002c2820, 0x00282116, 0x0032291c,
- 0x004d4329, 0x005c4f32, 0x003c2c12, 0x00331f01, 0x00372306, 0x0048350f, 0x005f4c28, 0x0066522f, 0x006d5937, 0x007b6642, 0x007e693f, 0x00796433, 0x0074602f, 0x006b582c, 0x005b4927, 0x00503e25,
- 0x004b3b29, 0x00544434, 0x0089796e, 0x00bdada7, 0x00d9cccb, 0x00ded0d1, 0x00d7cacb, 0x00d1c4c4, 0x00dbcdcc, 0x00d8c9c8, 0x008b8681, 0x003a3e3d, 0x00241b16, 0x00493730, 0x00736051, 0x0075634e,
- 0x0060563e, 0x004f4c37, 0x00454936, 0x002f2f25, 0x00241e1c, 0x00444037, 0x00504d3e, 0x003f3e30, 0x008d877d, 0x00d5cfc8, 0x00c8c3bd, 0x00ccc8c5, 0x00a19c9c, 0x00746f6f, 0x00989395, 0x00cec7cd,
- 0x00e1e6ef, 0x00e6ebf5, 0x00dee4f1, 0x00dee6f5, 0x00c4cedf, 0x00bcc7d8, 0x00c9d3e4, 0x00d0d8e9, 0x00dee5f3, 0x00d8ddeb, 0x00e1e6ed, 0x00e9ecf2, 0x00e9ebf1, 0x00ececf6, 0x00e4e2eb, 0x00e2dde9,
- 0x00efeaf0, 0x00ecebf0, 0x00e3eae6, 0x00e4ede6, 0x00d3e3d1, 0x00c7d1ce, 0x00bfc8c5, 0x00cacec8, 0x009c9992, 0x004e4c47, 0x002d2e2a, 0x00535855, 0x007d8781, 0x00777a6f, 0x0081826d, 0x006c684e,
- 0x003f3022, 0x004e4030, 0x00493b27, 0x00251805, 0x0037290f, 0x00615338, 0x0066593b, 0x0061523a, 0x0051412d, 0x00433123, 0x00392f20, 0x002e2c24, 0x00382a17, 0x005d462f, 0x00796046, 0x00573f25,
- 0x0026190b, 0x001f1710, 0x0022211f, 0x002f2c2c, 0x002d2522, 0x00211b21, 0x0011111b, 0x0004050a, 0x001a1814, 0x00231e16, 0x006f6a61, 0x00dfddd1, 0x00fffdf8, 0x00fefcfa, 0x00fcfdfd, 0x00fcfdfe,
- 0x00d9d9d9, 0x008b8b8b, 0x007e7d7e, 0x00b0b0b0, 0x00dfdede, 0x00edecec, 0x00f1eff1, 0x00f0eef1, 0x00f0eff1, 0x00eeedef, 0x00eeecf0, 0x00eeebf3, 0x00edebef, 0x00ececef, 0x00ecf0ee, 0x00ecf1ef,
- 0x00eef0f0, 0x00efefef, 0x00efeff0, 0x00f0efef, 0x00f2eef1, 0x00ebf1ec, 0x00e6f2eb, 0x00e9efed, 0x00ededf0, 0x00f0ecf3, 0x00f3e9f6, 0x00f4eaf7, 0x00f1ecf4, 0x00f0eff2, 0x00ecefef, 0x00ebeeee,
- 0x00efeef0, 0x00eeedef, 0x00edecef, 0x00eeeced, 0x00e9ecea, 0x00ecedeb, 0x00edeeec, 0x00ededec, 0x00efecef, 0x00ededef, 0x00eaebee, 0x00efeeec, 0x00ededec, 0x00eeeeee, 0x00eceeec, 0x00eeedeb,
- 0x00eeeceb, 0x00ededec, 0x00ecedeb, 0x00ededec, 0x00eeeeeb, 0x00ededf1, 0x00ecedf1, 0x00eceef0, 0x00eeefee, 0x00eff0ed, 0x00f0f1ec, 0x00f0f2ed, 0x00eef0ee, 0x00edf1f0, 0x00ebf1f1, 0x00eaf2f2,
- 0x00eef2eb, 0x00eff0ee, 0x00eeedef, 0x00efedf0, 0x00efecec, 0x00f1eee9, 0x00f2eee7, 0x00f3efe5, 0x00efefea, 0x00f1efee, 0x00f3efee, 0x00f5eeeb, 0x00f2eeec, 0x00f0eeef, 0x00eceef0, 0x00eaedf0,
- 0x00e9eff5, 0x00eaeef4, 0x00ebedf2, 0x00ecedef, 0x00ededed, 0x00eeebf0, 0x00ebecf1, 0x00e5f0ef, 0x00e3f2ec, 0x00e8f0ea, 0x00eaecea, 0x00f0e9ee, 0x00ede4ec, 0x00eee9f0, 0x00fbfcfb, 0x00f5fcf3,
- 0x00fffcfc, 0x00fefcfd, 0x00fafdfc, 0x00fbfffd, 0x00fbfffc, 0x00f8f9f7, 0x00f3f7f6, 0x00f7f9fb, 0x00ffffff, 0x00fffcff, 0x00fdfbfe, 0x00f9f9ff, 0x00fefcfb, 0x00fdf8f3, 0x00ad9b8c, 0x006d583f,
- 0x006c5d3a, 0x00625d34, 0x004f5829, 0x004d5f30, 0x003b5c2a, 0x0044602a, 0x00456226, 0x00486429, 0x0048672e, 0x004a682f, 0x004b682f, 0x004d6a31, 0x004e6b31, 0x004f6c32, 0x00506e33, 0x00506d32,
- 0x00507133, 0x00517034, 0x00527133, 0x00537333, 0x00547436, 0x00567737, 0x00577837, 0x00577838, 0x00577739, 0x00577939, 0x0057773c, 0x00567940, 0x00587b3c, 0x005b8039, 0x005d8033, 0x005d802d,
- 0x00608133, 0x00628339, 0x005f7e39, 0x005e7a3f, 0x00648048, 0x006a8560, 0x008faa8e, 0x00bfd6c0, 0x00def2e8, 0x00dcebe7, 0x00d9e5e6, 0x00d7e0e6, 0x00d6dcdf, 0x00c9cdd0, 0x00c4c8c8, 0x00d6d8d9,
- 0x00e2bfbe, 0x00b28e94, 0x00b79a9f, 0x00d0b3bd, 0x00e5dae3, 0x00f1edfb, 0x00e4e8f8, 0x00dfebf8, 0x00ddf1fd, 0x00cfe5f6, 0x00aac5d7, 0x007998c1, 0x007999b3, 0x007396a6, 0x00638689, 0x005f847b,
- 0x005b866c, 0x00578163, 0x00578566, 0x005e8b67, 0x00598465, 0x005d8447, 0x00608640, 0x0061843f, 0x0063863e, 0x0060863d, 0x005f873d, 0x0060833d, 0x005d833a, 0x005e843c, 0x005c8239, 0x005c8239,
- 0x005c8338, 0x005e8138, 0x005e813a, 0x005c8039, 0x005d7e38, 0x00627f3b, 0x005f7b38, 0x00587432, 0x00647a3c, 0x00768a4f, 0x0093a16d, 0x00b9aa8b, 0x00c7ba97, 0x00c1b191, 0x009c8f6a, 0x006a6038,
- 0x004d4c1f, 0x0058612d, 0x0063773b, 0x0056702f, 0x004e7530, 0x004f7834, 0x0049742f, 0x004a732f, 0x00517333, 0x00527132, 0x004e6c2c, 0x00516e2e, 0x004c6c2b, 0x004a6d2b, 0x00466c29, 0x00456b29,
- 0x00496728, 0x00476627, 0x00466426, 0x00446325, 0x00436225, 0x00436126, 0x00435f27, 0x00435f27, 0x00405f25, 0x00425d29, 0x00465c2c, 0x008d9674, 0x00fffdff, 0x00fffbff, 0x00fbf9f5, 0x00fefcee,
- 0x00fafef9, 0x00edfbfd, 0x004f6ba2, 0x00395dab, 0x00205ba1, 0x003467b4, 0x004679c3, 0x004077c0, 0x002f67b1, 0x002d67b1, 0x002e66b1, 0x003469b6, 0x003566b5, 0x003361b2, 0x002b56a8, 0x002a51a5,
- 0x002c5aa6, 0x002b58a4, 0x002d5ba8, 0x00396bb7, 0x00376bb9, 0x00376dbc, 0x00356aba, 0x003063b4, 0x002757ac, 0x002855ab, 0x002954a7, 0x002a53a5, 0x002b53a6, 0x002e57a8, 0x002b55a4, 0x00284fa0,
- 0x00254f9c, 0x00315aa8, 0x00315ba6, 0x00244e99, 0x00143f87, 0x00113b8e, 0x002e4583, 0x00574355, 0x0082200d, 0x007d1605, 0x00761b02, 0x006e3e1a, 0x007b7230, 0x008b652c, 0x008f3d14, 0x00a82713,
- 0x00e3480c, 0x00df5824, 0x00d56632, 0x00dd8255, 0x00efa96f, 0x00e7ad67, 0x00d0a952, 0x00c9a852, 0x00d3ae70, 0x00dfa87c, 0x00dcae7d, 0x00d4bd6a, 0x00d0b472, 0x00d3ac71, 0x00caa166, 0x00c19856,
- 0x00a88c38, 0x008a7830, 0x006b6331, 0x0057584a, 0x003e4669, 0x002c4685, 0x00234a8f, 0x00204988, 0x001c4981, 0x001f4c83, 0x00254f8a, 0x00264b8d, 0x0028478c, 0x00304b88, 0x002f477f, 0x00273f6b,
- 0x00163369, 0x000d2a61, 0x000e2b64, 0x000e2c67, 0x000b2867, 0x000f2d70, 0x0017357a, 0x001b387c, 0x001e3d85, 0x0025428e, 0x0021468d, 0x0019468e, 0x001c4c8e, 0x00264f93, 0x002f589a, 0x003c65a5,
- 0x005481bf, 0x0073a2dd, 0x0084b7f4, 0x0075a8e8, 0x007eb3f4, 0x00a8ccf2, 0x00cce2f6, 0x00f2fcfd, 0x00fdf8fd, 0x00fff9f8, 0x00fffcf4, 0x00fefff1, 0x00b2b9ae, 0x0039403a, 0x001f2225, 0x00312e3b,
- 0x003b3e3e, 0x00393c3c, 0x00393c3b, 0x00343736, 0x002d3031, 0x0026292c, 0x001c2125, 0x0012171c, 0x000d0e13, 0x000d0e12, 0x00071014, 0x0003141a, 0x000f110f, 0x001a100d, 0x001c1111, 0x0019141b,
- 0x00081a33, 0x000a1832, 0x00151a33, 0x00221125, 0x004b141d, 0x00861d12, 0x00a9280c, 0x00aa2d07, 0x00c33401, 0x00d2390e, 0x00be3b2b, 0x0096465c, 0x00445dbb, 0x00235abf, 0x000f4eb3, 0x002356ab,
- 0x00215eb4, 0x002361b7, 0x003673c6, 0x00417ece, 0x004b87d8, 0x00508cdd, 0x003875c6, 0x00316ec1, 0x003d79ce, 0x003a73ca, 0x002e67bf, 0x002f64c3, 0x002b65be, 0x003167c0, 0x003972c6, 0x003f78cf,
- 0x003574c6, 0x003a79cd, 0x00397bd2, 0x003878d3, 0x003378ce, 0x003876ce, 0x003875cf, 0x003975cf, 0x003878cc, 0x003c7ac7, 0x00437dc3, 0x004e83be, 0x00648bb3, 0x00738fab, 0x007b91a3, 0x007f9099,
- 0x007d929b, 0x007f95a2, 0x007992a3, 0x006b88a0, 0x006181a8, 0x005b7faf, 0x004873ac, 0x003767a8, 0x003165ae, 0x00346ab8, 0x00326abd, 0x002b61bb, 0x00154da7, 0x00245bb6, 0x002e68c0, 0x002d68c1,
- 0x00306dc4, 0x002e6bc4, 0x002a68bf, 0x002c6cc2, 0x003271c8, 0x003575d4, 0x002e71ce, 0x002e70c9, 0x003370c8, 0x00346fc6, 0x00316bc0, 0x00346cc1, 0x00346ec4, 0x003670c8, 0x003472ca, 0x003372ca,
- 0x002a72d2, 0x003476d0, 0x003f7dc9, 0x004b80c3, 0x00476f96, 0x003a5070, 0x001d2b39, 0x000e0e14, 0x00150b08, 0x001c0e09, 0x00847b75, 0x00efebee, 0x00fcfffe, 0x00fcfffe, 0x00f8fbfc, 0x00f8fefd,
- 0x00a5a4a2, 0x00262023, 0x00080102, 0x00120202, 0x00180005, 0x001b0808, 0x002e1c15, 0x004b3c37, 0x005a4d47, 0x00534949, 0x00534a4a, 0x00423a47, 0x00221d33, 0x000b0828, 0x00363359, 0x008884b1,
- 0x00cfc1d5, 0x00cabdd0, 0x00c3b8cb, 0x00c8bdd1, 0x00cdc1d7, 0x00d2c6de, 0x00d4c8e2, 0x00d4c9e4, 0x00d8cbe8, 0x00d8cdea, 0x00dcceee, 0x00dacdef, 0x00d8cdee, 0x00d8ceed, 0x00d7d1ee, 0x00d8d3f1,
- 0x00d6d2ee, 0x00dbd2ed, 0x00ddd3ec, 0x00e5dcf6, 0x00e5d7f1, 0x00f29189, 0x00ea4f2c, 0x00f05122, 0x00e4633a, 0x00f59d8b, 0x00f6c5c0, 0x00edc7c9, 0x00fcd3cc, 0x00ffe1e0, 0x00faf2f5, 0x00e2ddf8,
- 0x00f9774a, 0x00f06b42, 0x00f5835d, 0x00e98869, 0x00e6ab9e, 0x00f8d7d9, 0x00e5d9e3, 0x00cecdda, 0x00e6dfe8, 0x00ebe3e4, 0x00e1dde1, 0x00dbd8eb, 0x00dbd8e7, 0x00d4d0de, 0x00b5b3c0, 0x00898595,
- 0x0032313b, 0x000e0d16, 0x00020109, 0x00010109, 0x00010007, 0x00000003, 0x00010000, 0x000d0b0d, 0x005b5367, 0x00938ba4, 0x009990ae, 0x00a099ba, 0x00b8b1d7, 0x00c7c0e8, 0x00d2c9f0, 0x00ddd3f9,
- 0x00c3aca5, 0x004a241b, 0x00431f16, 0x00381e15, 0x002b1d14, 0x001f1810, 0x0015130b, 0x000e1108, 0x000a100e, 0x0009100d, 0x000b0f0e, 0x000b0f0e, 0x000e0e0c, 0x000b0f0c, 0x000a0d0c, 0x00090c0a,
- 0x000b0e0c, 0x000b0e0d, 0x000e1211, 0x00121713, 0x00171b1a, 0x00191d18, 0x001b1f19, 0x001d201a, 0x001e211a, 0x001a1d17, 0x00181b15, 0x00151814, 0x000d100e, 0x000b0e0b, 0x000e100e, 0x00131411,
- 0x00161c23, 0x001c2228, 0x00232831, 0x00262b36, 0x00282d3a, 0x00282c39, 0x00232732, 0x00191e26, 0x00111517, 0x0008110e, 0x00050c0e, 0x00040e12, 0x00020a04, 0x00040801, 0x00211c0e, 0x00766a4d,
- 0x0093785c, 0x00684d2d, 0x00876549, 0x009d785f, 0x00a07566, 0x00b17448, 0x00bb7840, 0x00b57c4a, 0x00b68057, 0x00b0764f, 0x00a86942, 0x00a76131, 0x00a0633e, 0x00704d31, 0x001f1002, 0x00010200,
- 0x000e040b, 0x00120c0d, 0x0029292a, 0x00232729, 0x0022262a, 0x00101717, 0x00090d10, 0x00050b0a, 0x000a0d0c, 0x000a0b08, 0x000a0709, 0x000a080d, 0x00080b0c, 0x0005090a, 0x0005080c, 0x00060a0c,
- 0x00090d0f, 0x000b0f11, 0x000c1012, 0x000b0e10, 0x00080d0d, 0x00060a0a, 0x00040908, 0x00040a07, 0x000a0e0a, 0x000c120c, 0x000f1710, 0x00131b15, 0x00202724, 0x00282e30, 0x0030353a, 0x0034393f,
- 0x00393c40, 0x00383c3f, 0x00393d3f, 0x00333738, 0x002f3131, 0x00272929, 0x00242627, 0x00202325, 0x00212122, 0x001e2120, 0x001e2120, 0x001c201e, 0x001a1d1a, 0x00191e19, 0x0019201b, 0x0019201c,
- 0x001f201f, 0x001f211e, 0x001f211d, 0x00222420, 0x00252724, 0x00777877, 0x00fdfefd, 0x00fdfefc, 0x00fcfbff, 0x00fefdff, 0x00fdfcfc, 0x00cfcfce, 0x007c7d7b, 0x006b6d68, 0x005d5f57, 0x006d6f63,
- 0x007b776d, 0x006a695c, 0x00646557, 0x005a5b4e, 0x002a2b20, 0x00111408, 0x001d1f13, 0x002a2a1e, 0x00211f12, 0x001b1608, 0x00231c13, 0x0028221e, 0x00252726, 0x001e2119, 0x001a1812, 0x001b1308,
- 0x00523a2c, 0x0065513a, 0x003f2b0b, 0x00311d01, 0x00503819, 0x00685230, 0x0076613a, 0x0074613d, 0x007f6747, 0x0087704a, 0x007d673b, 0x0074602d, 0x0063501f, 0x0056441b, 0x004f3d1c, 0x0047351e,
- 0x004f3f2f, 0x005e4a3c, 0x00957e75, 0x00cfb8b5, 0x00e5d0d2, 0x00e1cacf, 0x00b89da1, 0x0099787b, 0x00aa888b, 0x00ceb2ad, 0x00c0b1af, 0x007a8182, 0x00504342, 0x00513e31, 0x005c4433, 0x00634931,
- 0x005c4f33, 0x004c4930, 0x00464531, 0x0033372c, 0x001e1f1a, 0x00302f21, 0x00474230, 0x003c3928, 0x0088837a, 0x00cfcbc5, 0x00c6c1bf, 0x00c2bdbd, 0x00a3a0a4, 0x0099959b, 0x00dcd9dc, 0x00edeaec,
- 0x00e2e7fa, 0x00d8dff2, 0x00cbd4e8, 0x00bac5da, 0x00a9b5cb, 0x00b4bfd7, 0x00aeb9d1, 0x00b1bbd4, 0x00c1c5e1, 0x00b8bed5, 0x00c8cee2, 0x00cfd5e5, 0x00cfd2e2, 0x00cbc9d7, 0x00bbb4c3, 0x00beb5c3,
- 0x00e7dee6, 0x00e9e7e8, 0x00e8e8e4, 0x00e8eee4, 0x00ccd5c8, 0x00afbbb0, 0x00a4aaa1, 0x00babbb0, 0x00e4ddd2, 0x00b2aea6, 0x005c5857, 0x004f5555, 0x00636b6a, 0x00555d54, 0x00515542, 0x003e4126,
- 0x00423128, 0x00524235, 0x00554833, 0x00342713, 0x00392d12, 0x004f4328, 0x005b4e33, 0x00594c34, 0x0041311e, 0x002f210d, 0x00312418, 0x00343123, 0x00463623, 0x00645336, 0x00775f44, 0x00482f18,
- 0x001e1007, 0x002f2823, 0x00444243, 0x003c3e3f, 0x002a2526, 0x00181723, 0x00141421, 0x0008080f, 0x000b0706, 0x000a0501, 0x00625f53, 0x00dcdccd, 0x00fefdf8, 0x00fefefc, 0x00fcfdfd, 0x00fbfcfd,
- 0x00d5d4d4, 0x00757474, 0x00505050, 0x006d6f6f, 0x00808283, 0x00848889, 0x0087898a, 0x0089898a, 0x0088878b, 0x00878589, 0x0086848c, 0x00848391, 0x0081828c, 0x0081828b, 0x0082868b, 0x00838989,
- 0x00888d8f, 0x00888e8e, 0x008c8c8e, 0x008d8c8d, 0x008e8a8f, 0x007e9288, 0x00799586, 0x007d9386, 0x00888e92, 0x00898a93, 0x008c8795, 0x008b8494, 0x00898493, 0x0083848f, 0x0080858d, 0x007e858b,
- 0x0088888c, 0x00828587, 0x00808083, 0x007d807f, 0x007c7f7e, 0x00808382, 0x00848485, 0x00838386, 0x00858388, 0x00838386, 0x00848286, 0x00828380, 0x0083817f, 0x00818181, 0x00838184, 0x00818081,
- 0x00848383, 0x00828383, 0x00818182, 0x00808283, 0x00808483, 0x007f858b, 0x0080878d, 0x00838a8c, 0x008c8a89, 0x008d8c89, 0x008f8f8a, 0x008b8d87, 0x00898d89, 0x00868e8b, 0x0084908f, 0x00829090,
- 0x008c8f8a, 0x008b8d8a, 0x008b8a89, 0x008b8787, 0x008d8884, 0x008d887e, 0x008e897e, 0x008d897b, 0x008d8984, 0x008b8987, 0x00908684, 0x0091857c, 0x008e847e, 0x00868486, 0x0080828a, 0x00798289,
- 0x0079828a, 0x0079808b, 0x007d7f89, 0x007e7f84, 0x00827d83, 0x007e7e87, 0x007b7f87, 0x00788180, 0x0078827a, 0x007d837a, 0x00827e7b, 0x00898083, 0x00897c84, 0x00a8a4a9, 0x00f2f3f2, 0x00effaf0,
- 0x00fbfcfc, 0x00ffffff, 0x00fdfcfd, 0x00fbfdfd, 0x00fcfcfd, 0x00f8fcfc, 0x00f5f9f9, 0x00f9fdfd, 0x00fdfdfe, 0x00fdfefd, 0x00fdfafd, 0x00fcfafc, 0x00fdfcfe, 0x00fff8f2, 0x00ab9689, 0x006d583c,
- 0x006d5d37, 0x00635d2e, 0x00555828, 0x00495e2c, 0x003b5e30, 0x0043622b, 0x00476129, 0x0047622a, 0x0049672e, 0x0047662d, 0x0046662d, 0x00496930, 0x004c6c32, 0x004e6d32, 0x00506e33, 0x00506f33,
- 0x00507031, 0x004f7032, 0x00507133, 0x00527334, 0x00537437, 0x00547535, 0x00557734, 0x00567836, 0x00587839, 0x00567937, 0x0056793b, 0x0055793d, 0x005a7d3b, 0x005a7f36, 0x005c8134, 0x005b802e,
- 0x0060822e, 0x00608132, 0x00628238, 0x0064843f, 0x00608040, 0x005f7f41, 0x00608248, 0x00749864, 0x009fbb99, 0x00bed6bf, 0x00d9eae2, 0x00dae6e6, 0x00d8dbe9, 0x00e0e0f0, 0x00d2d4e5, 0x00cbcbdf,
- 0x00edc6c2, 0x00dbb9b5, 0x00d0b0b2, 0x00e8d4d7, 0x00f4e6f2, 0x00ebe3f5, 0x00e6e8fe, 0x00dae2fa, 0x0091a2ca, 0x008095c0, 0x008ba9e2, 0x006387d8, 0x006589d2, 0x006c92ca, 0x006c94c3, 0x00739ec1,
- 0x005d8397, 0x003f676f, 0x0042666b, 0x00527a7d, 0x0054868b, 0x005d855b, 0x00648642, 0x00648340, 0x006a8042, 0x00658440, 0x0061823d, 0x005c853b, 0x005b843c, 0x005b8238, 0x005f8139, 0x005f8036,
- 0x005c8239, 0x005d8238, 0x005b7f37, 0x005e803b, 0x005f7f3d, 0x005c793a, 0x00657d40, 0x00768a4f, 0x0095a76a, 0x00a9bd7e, 0x00c4c190, 0x00cfab96, 0x00bb9c83, 0x00a1886b, 0x006b5833, 0x00585127,
- 0x00646b38, 0x00617339, 0x00537331, 0x00517b33, 0x00467d31, 0x0044772e, 0x00497932, 0x00487530, 0x004e7031, 0x00506e30, 0x00516c2e, 0x00536c2e, 0x004f6d2d, 0x004c6c2c, 0x00466d2b, 0x00456e2b,
- 0x004a6727, 0x00486627, 0x00476527, 0x00456427, 0x00436227, 0x00436027, 0x00436027, 0x00436028, 0x00455f2c, 0x00405e29, 0x00485b2f, 0x009ca482, 0x00fefdff, 0x00fbfcfc, 0x00faf8f6, 0x00fdfbec,
- 0x00fcfcf8, 0x00e6f7fb, 0x004c66a0, 0x002d58a0, 0x00285ea4, 0x003e75bc, 0x00477dc9, 0x003a70bd, 0x002d64b1, 0x003067b4, 0x00346ab7, 0x003467b6, 0x003362b3, 0x002d5aac, 0x002851a5, 0x00264ca1,
- 0x002c5ba9, 0x002657a4, 0x00295ca9, 0x00356bb7, 0x00356dbb, 0x00346dbc, 0x00326abb, 0x002c64b6, 0x00285bb1, 0x002559ae, 0x002b5baf, 0x002e59ab, 0x002e58aa, 0x002e5aaa, 0x002e5ba9, 0x002b57a7,
- 0x002750a0, 0x00305ba8, 0x00335eac, 0x0029549e, 0x0019458e, 0x000f3c8e, 0x002f4587, 0x005e4356, 0x0098280e, 0x00891b03, 0x007c2a0f, 0x00805e35, 0x009c9f59, 0x00b4955a, 0x00ab6941, 0x00a93c31,
- 0x00e93c07, 0x00d1541d, 0x00d77b4a, 0x00d79d6b, 0x00e7a56c, 0x00daa152, 0x00c89c3d, 0x00c1a63e, 0x00cba768, 0x00d39d7b, 0x00d5a176, 0x00c1b354, 0x00c3a55c, 0x00bd9d5d, 0x00b89152, 0x00aa8542,
- 0x00876c21, 0x006c5d24, 0x005c5739, 0x004f555d, 0x003d4885, 0x00365097, 0x0035559c, 0x002e5290, 0x0027527f, 0x002e5787, 0x00345993, 0x00305091, 0x003a5497, 0x005067a0, 0x005e72a2, 0x00596e90,
- 0x002f4581, 0x00132b66, 0x000b2460, 0x0009235f, 0x000a2764, 0x000b2968, 0x00133175, 0x0015337a, 0x001e3b85, 0x0021438e, 0x00204390, 0x001b468e, 0x001d478f, 0x00224d90, 0x00295296, 0x002e5d99,
- 0x004372af, 0x005c8cc8, 0x0083b4f1, 0x0081b3f4, 0x0091c2fc, 0x00aed6f8, 0x00cee7fa, 0x00f4feff, 0x00fffbff, 0x00fefbf7, 0x00fffcf4, 0x00fcfdf1, 0x00b1b9b2, 0x0038403e, 0x00202528, 0x0030313b,
- 0x003f4242, 0x003d4142, 0x003b3f41, 0x00353a3c, 0x002f3336, 0x00292c30, 0x00202328, 0x00171921, 0x000d1117, 0x000a0e11, 0x000a1115, 0x0002161b, 0x000c1412, 0x0011110e, 0x00181112, 0x00141419,
- 0x00091a33, 0x00091a34, 0x000e1436, 0x001a0f27, 0x00491c33, 0x0092251d, 0x00a4270c, 0x0091290a, 0x00a52b06, 0x00c22e08, 0x00cc3420, 0x00b53b47, 0x00525fa5, 0x00265fbb, 0x000c53b6, 0x002153b5,
- 0x00225fb8, 0x002360b7, 0x003975c6, 0x004481cd, 0x004f8cd8, 0x00508dd9, 0x003b78c7, 0x003672c4, 0x003975cd, 0x002d6cc3, 0x002962bf, 0x002d61be, 0x002f63c0, 0x002e67be, 0x003671c6, 0x003e7bcd,
- 0x003d78d0, 0x003c79c9, 0x003b77ce, 0x003777d0, 0x003272d0, 0x003575cb, 0x003875cd, 0x003976cb, 0x003a77cb, 0x003f7ac6, 0x00477cc0, 0x005282b9, 0x00688cae, 0x00768fa4, 0x007e909b, 0x00848e91,
- 0x0084969b, 0x0082969f, 0x00798f9e, 0x006d879d, 0x006182a5, 0x005980aa, 0x004571a7, 0x003264a3, 0x003465b1, 0x00356bb9, 0x003a6cc3, 0x002b5eb8, 0x000f449f, 0x001c56ad, 0x003067c0, 0x00336bc2,
- 0x003470c9, 0x002f6ac5, 0x002c6ac3, 0x002b6dc4, 0x003073c9, 0x003176d1, 0x002b73cd, 0x002971cb, 0x002e73c4, 0x002e70c1, 0x00306dbe, 0x00306bbe, 0x00366ec4, 0x003471c7, 0x003372c8, 0x003173c8,
- 0x002874db, 0x002d76d3, 0x003678cf, 0x00437fc8, 0x005783ba, 0x00597ca9, 0x00384e6d, 0x00191e34, 0x00180d0e, 0x001c0b06, 0x007c6f66, 0x00e6e3e6, 0x00fefdfd, 0x00f9feff, 0x00fbfdfc, 0x00fbfcfd,
- 0x00b7b4ba, 0x00362f32, 0x000b0405, 0x000d0000, 0x00140101, 0x00100100, 0x002d1e19, 0x004c3d3b, 0x005f5452, 0x00574e4e, 0x00463e46, 0x002a2436, 0x0017123a, 0x00201c49, 0x00474475, 0x008a8bbc,
- 0x00d5c4cf, 0x00cdbec9, 0x00cabdca, 0x00ccbfcf, 0x00d3c6d9, 0x00dacbe3, 0x00d8c9e4, 0x00d5c6e4, 0x00dfcaee, 0x00ddccef, 0x00decbf0, 0x00dacbf1, 0x00d7ccf1, 0x00d7cdf0, 0x00d7d1f0, 0x00d8d3f1,
- 0x00dacef0, 0x00d8d2f0, 0x00dcd2ef, 0x00e5d7f3, 0x00e3d4f2, 0x00ef927f, 0x00ed4f1e, 0x00f54e11, 0x00ed5023, 0x00e3694d, 0x00de7d71, 0x00d68985, 0x00ebab97, 0x00f6cbc1, 0x00f8f1ed, 0x00d3e6f1,
- 0x00f67b4a, 0x00ec6237, 0x00fd9470, 0x00fda88c, 0x00eaaea2, 0x00eccbc7, 0x00fcf2f8, 0x00f6f7fe, 0x00f3ebf6, 0x00ded4d7, 0x00cfc5ca, 0x00c2bfd2, 0x00c3bfd0, 0x00d7d7e4, 0x00eff0f9, 0x00dfdfeb,
- 0x00a29caa, 0x00514d59, 0x0014121c, 0x00020109, 0x00010006, 0x00020103, 0x00020102, 0x00100f14, 0x00635a70, 0x00958ca6, 0x00978eaf, 0x00a299be, 0x00b1a8cd, 0x00bab0d7, 0x00c3bbe2, 0x00ccc4ea,
- 0x00bbada3, 0x00412319, 0x003d1d14, 0x00371d15, 0x002f1d17, 0x00261b14, 0x001f1711, 0x00181510, 0x00111510, 0x000f1610, 0x00101511, 0x000f1611, 0x00111410, 0x000d140f, 0x000d110e, 0x000c110e,
- 0x000f130f, 0x00101512, 0x00151a15, 0x00191e1a, 0x001d221d, 0x001f2120, 0x00212321, 0x00232423, 0x0022241e, 0x001e2018, 0x001c1e13, 0x00191c10, 0x0012140b, 0x0011130d, 0x00161715, 0x001c1b1c,
- 0x001d2328, 0x00242a31, 0x002d323b, 0x00303440, 0x00323645, 0x00333743, 0x002f343c, 0x00292e33, 0x001b2122, 0x00131c19, 0x000e130f, 0x00091104, 0x000d1308, 0x00070e00, 0x00161605, 0x00615941,
- 0x00897555, 0x003f270c, 0x00452c1b, 0x00493630, 0x0042383c, 0x00775c3c, 0x00b48a56, 0x00ba8b57, 0x00bf8455, 0x00b37448, 0x009d6037, 0x00975f37, 0x0093644c, 0x00684835, 0x00220e06, 0x000b0100,
- 0x00240100, 0x002d1705, 0x0038301f, 0x0034332b, 0x002d2a2f, 0x001e1e1e, 0x00111210, 0x000a1108, 0x000b150d, 0x000c1211, 0x000c0e0e, 0x000e0e0a, 0x000e100b, 0x000c0e0b, 0x000e0e0e, 0x000e0e11,
- 0x00090d0b, 0x00080d0a, 0x00080d0b, 0x00090d0b, 0x00080c0a, 0x00060a08, 0x00070909, 0x00090d0c, 0x00090d0e, 0x000b1110, 0x000b1612, 0x000f1d17, 0x00182721, 0x0021312b, 0x00253630, 0x00283833,
- 0x002e3838, 0x00313b3a, 0x002f3938, 0x00293230, 0x001f2724, 0x0019211d, 0x00121916, 0x000d1512, 0x00141813, 0x00131814, 0x00131816, 0x00121917, 0x00131a18, 0x00141c18, 0x00141d18, 0x00151b19,
- 0x00151814, 0x00151814, 0x00161914, 0x00161914, 0x001c1e1a, 0x00727371, 0x00fdfefe, 0x00fefefe, 0x00fafbfb, 0x00fdfdfd, 0x00fdfcfb, 0x00cdcdcc, 0x007b7c7c, 0x00686969, 0x00353533, 0x00353432,
- 0x004a4942, 0x00413d33, 0x0041372a, 0x00403428, 0x0030281e, 0x0026271f, 0x002b322c, 0x00404844, 0x003e362f, 0x00302113, 0x00462c1c, 0x005a2c22, 0x000c2825, 0x00012325, 0x00081620, 0x00271722,
- 0x00854431, 0x00925d38, 0x00593108, 0x00594013, 0x007f5c4a, 0x00856746, 0x00896947, 0x00866742, 0x00876e48, 0x0088714c, 0x00796641, 0x00665735, 0x00584c32, 0x004e422e, 0x004b412f, 0x003a3022,
- 0x00212f16, 0x00412e20, 0x00865d59, 0x00c99e9c, 0x00e1d1c5, 0x00d9c1b3, 0x00aa766b, 0x008d342f, 0x00a23735, 0x00c06d5f, 0x00e8bab4, 0x00afabb5, 0x00726566, 0x00574337, 0x004f301b, 0x00512a0e,
- 0x0050300a, 0x004e3717, 0x00544931, 0x00404133, 0x0029352d, 0x003d3a26, 0x005a4d32, 0x004c3e25, 0x007e7564, 0x00b0a8a2, 0x00b2acb1, 0x009997a5, 0x00696a7b, 0x0081868f, 0x00edf3f2, 0x00e0e9dd,
- 0x00a7bce7, 0x0096aacc, 0x00aabdd4, 0x00aabdca, 0x00a3b5c3, 0x00bacbe5, 0x0097a7d1, 0x0090a1d6, 0x00a1b7e5, 0x00a8c1e4, 0x00aac7e4, 0x00a4c2e3, 0x00abc7e8, 0x00aac1e3, 0x008ca0ba, 0x0090a0b2,
- 0x00c0cfc9, 0x00e2eee3, 0x00e7ece6, 0x00e8e8e8, 0x00d6d2dd, 0x00d5d9dc, 0x00d1d5d7, 0x00c8c8cb, 0x00e1dfdc, 0x00eaeae5, 0x00babcb6, 0x0080847e, 0x003d4846, 0x00233135, 0x000e2327, 0x0020333c,
- 0x004c5151, 0x00585d5d, 0x004a4e4d, 0x00565858, 0x0060615c, 0x00424137, 0x00393726, 0x00545040, 0x00463e27, 0x00271d06, 0x001e0e01, 0x002d1900, 0x00422c0f, 0x00594328, 0x0076634b, 0x004b3922,
- 0x001b1102, 0x00322922, 0x00544f4e, 0x00454148, 0x0022222e, 0x00111832, 0x00081430, 0x00030e1f, 0x00070904, 0x00070500, 0x00676459, 0x00dfded3, 0x00fffefd, 0x00fdfefe, 0x00fafcff, 0x00fafffe,
- 0x00c8cec3, 0x0062665f, 0x002d322f, 0x003b4243, 0x00313a41, 0x00242d38, 0x00222837, 0x00242839, 0x0029293f, 0x0026263b, 0x00232635, 0x00202730, 0x0020282e, 0x00212831, 0x00212833, 0x00202831,
- 0x001c292f, 0x001b2b30, 0x001d2c33, 0x001a2d33, 0x001d2b37, 0x001d2c38, 0x00222a3b, 0x00242a3b, 0x0020293c, 0x001e293c, 0x001c283a, 0x001b293b, 0x0019273c, 0x0019273d, 0x0017263b, 0x0016263b,
- 0x0019252c, 0x001b272e, 0x001b272e, 0x0019242a, 0x0019252a, 0x001c2429, 0x001e232b, 0x0021242d, 0x00271f33, 0x00291f31, 0x00271c27, 0x0024221d, 0x00241e20, 0x00221d25, 0x00211a29, 0x001f1c31,
- 0x00191e2c, 0x0018202b, 0x0015242b, 0x0013292a, 0x00132d27, 0x00152b2b, 0x00192931, 0x001d2935, 0x00262c3b, 0x00292f3c, 0x002c2f39, 0x002b2b31, 0x002f2d2e, 0x00302d27, 0x00312e21, 0x00312d1d,
- 0x00362a20, 0x00382a21, 0x0038271e, 0x0037251b, 0x00332115, 0x002f2212, 0x002a2213, 0x00282415, 0x00262618, 0x00232618, 0x00212417, 0x00222214, 0x00202316, 0x0020221b, 0x001e211f, 0x001c201f,
- 0x00181d1e, 0x00181d1a, 0x001c1c1a, 0x001f1b1b, 0x00241919, 0x001c1c18, 0x001b1d17, 0x001e1d16, 0x00281e13, 0x002a1e12, 0x002b200f, 0x002c2211, 0x00241f13, 0x00616059, 0x00e9eae7, 0x00f9fbfb,
- 0x00f2fcfc, 0x00f9fdfc, 0x00fffefc, 0x00fffaf8, 0x00fcfcf9, 0x00f9fdfb, 0x00ecf5f4, 0x00f2fdfd, 0x00fcfffc, 0x00fdfff6, 0x00fdfef7, 0x00f7fdf3, 0x00fbfefd, 0x00fefefa, 0x009b938d, 0x00675949,
- 0x006d5c37, 0x00645a2b, 0x00545823, 0x00475d25, 0x003b662f, 0x00436529, 0x00446023, 0x00466228, 0x00456733, 0x00426632, 0x00406631, 0x00426933, 0x00476d35, 0x00486b32, 0x004b6c30, 0x004f6f31,
- 0x00506833, 0x00506d36, 0x004d7237, 0x004a7435, 0x004d7635, 0x00507531, 0x0055732e, 0x005a742f, 0x00587a30, 0x00547d2d, 0x00517f2a, 0x00508128, 0x0057832a, 0x00588128, 0x005e832d, 0x005d822e,
- 0x005d8231, 0x005d8034, 0x005e813c, 0x005d8241, 0x005d8145, 0x00618234, 0x005f832c, 0x00598736, 0x00538643, 0x0066935f, 0x009abf9b, 0x00c6dfca, 0x00dbe7e8, 0x00d8e1e7, 0x00d7e1e9, 0x00cbd7e4,
- 0x00b6b8b5, 0x00c3c1bf, 0x00d3cdca, 0x00c7c3c1, 0x00d5d0d1, 0x00d6dfe1, 0x00c6d6db, 0x00a9bed0, 0x005d7998, 0x006d87b1, 0x00496fa7, 0x003370c3, 0x004172b0, 0x004779bd, 0x004a7fce, 0x004b88e8,
- 0x00324da6, 0x00252467, 0x00222254, 0x00283b5e, 0x00186c9f, 0x00537a73, 0x007d7f5e, 0x0093765a, 0x00aa755a, 0x009e7a59, 0x00817952, 0x005f7e46, 0x00518c4a, 0x00538239, 0x0069893e, 0x006d792d,
- 0x005c7d3b, 0x005d803e, 0x005d813f, 0x005e7e42, 0x00617948, 0x0067784f, 0x00969d79, 0x00bcb595, 0x00cdbb8c, 0x00d2b97e, 0x00c6ae78, 0x00b9a17f, 0x008e805a, 0x00636135, 0x004f5d29, 0x00597135,
- 0x00537a36, 0x00547b36, 0x00537932, 0x0052762e, 0x0054762f, 0x00537631, 0x00537532, 0x00517230, 0x00547333, 0x00537132, 0x00507031, 0x004f6f30, 0x004d6e30, 0x004d6e30, 0x004c6c2f, 0x004c6c30,
- 0x00496728, 0x00496728, 0x00476629, 0x00456429, 0x00456229, 0x00446028, 0x00436029, 0x00446029, 0x00405e28, 0x003e5c27, 0x00485a2c, 0x00a2a687, 0x00f1fffc, 0x00f0fdfd, 0x00f9fbf8, 0x00fefbef,
- 0x00fcfafb, 0x00d5edff, 0x00345fa2, 0x001d58a9, 0x003c6bbb, 0x004880cb, 0x003675bf, 0x002a6ab1, 0x003265b1, 0x00376ab6, 0x003668b4, 0x003666b3, 0x00315ead, 0x002752a1, 0x00234c9c, 0x002e54a5,
- 0x002b5bab, 0x002758a7, 0x002859a7, 0x003a6bb6, 0x00386bb5, 0x00386cb5, 0x003467b2, 0x002f63ae, 0x002b5bac, 0x00285aac, 0x00285aac, 0x002d5eae, 0x002c5dad, 0x002d5fae, 0x003061af, 0x003364b2,
- 0x00295da5, 0x002659a6, 0x00285da6, 0x00265ba3, 0x001c4d97, 0x000e3a93, 0x00264789, 0x004a4e61, 0x008d3425, 0x00731b07, 0x00834926, 0x008c9156, 0x00b7ab6b, 0x00d8af7f, 0x00ddb691, 0x00a19b7d,
- 0x00804c20, 0x00915e2d, 0x00c6925e, 0x00d29f64, 0x00cca05c, 0x00c59c53, 0x00bc994e, 0x00ba9751, 0x00c09860, 0x00c2a067, 0x00c19f62, 0x00c29b50, 0x00b5954c, 0x00a68e43, 0x008a7b37, 0x00746d30,
- 0x00575e31, 0x00575e4c, 0x006c747b, 0x006a6f8a, 0x00656a9c, 0x00747ca4, 0x00808bb0, 0x006f789f, 0x005d628e, 0x00666b9a, 0x006e71a3, 0x00656795, 0x006d6d99, 0x008b89b0, 0x009d99c3, 0x00928eb6,
- 0x00465b9a, 0x001b2f6c, 0x00152564, 0x000e1b5c, 0x000d1f61, 0x0011286b, 0x000c2a6f, 0x000c2f78, 0x00163d8c, 0x001a4598, 0x00194399, 0x001d4190, 0x001c4499, 0x001c499d, 0x001f52a6, 0x00255ca8,
- 0x002e6ea2, 0x00417caf, 0x0071a6d8, 0x0087baf0, 0x009cc7fb, 0x00a7ceef, 0x00cae7f9, 0x00effcff, 0x00fdfaf9, 0x00fdfbf6, 0x00fcfaf2, 0x00fbfcf6, 0x00aeb7b8, 0x00374043, 0x001e2729, 0x002f3739,
- 0x003a4444, 0x003b4547, 0x00394346, 0x00333d40, 0x002e373a, 0x00262f31, 0x001c2428, 0x00151d21, 0x0012181d, 0x000c1415, 0x000a0e13, 0x000c0e1b, 0x000e0c18, 0x000c0f19, 0x0010101b, 0x0013101e,
- 0x0011111b, 0x0010111f, 0x0013111e, 0x000f1019, 0x002c2937, 0x0080361d, 0x00a82b08, 0x00b11b08, 0x00a22b1e, 0x0090322a, 0x008e3e40, 0x00904453, 0x006c5b84, 0x00425e99, 0x001f4fa0, 0x00224ab6,
- 0x001e5bba, 0x00215cb3, 0x003c75bd, 0x004f88c7, 0x005b94cf, 0x00508bcd, 0x003c7ac5, 0x003371c7, 0x003577d2, 0x003377d2, 0x003575cc, 0x00396dbc, 0x002e66bb, 0x002c69bc, 0x003879cc, 0x003b79cb,
- 0x003f77ba, 0x004177b8, 0x004277bd, 0x004177c2, 0x003471ca, 0x003371c2, 0x003374c1, 0x003576c4, 0x003e7cc8, 0x00417cc0, 0x00487bb9, 0x005482b3, 0x006888a7, 0x00748a9d, 0x0081919a, 0x008c9496,
- 0x007e998d, 0x007e9a94, 0x00749093, 0x00698993, 0x005d849d, 0x004e7b9d, 0x003c6e9a, 0x002e669c, 0x002e67ac, 0x00336cb4, 0x003a6fb9, 0x00305da5, 0x000f3f89, 0x0020539d, 0x003368b6, 0x00366aba,
- 0x002f70be, 0x002c6bbb, 0x002d6fc1, 0x002c71c5, 0x002e72ca, 0x003174cb, 0x003071c8, 0x00306dca, 0x002e6cc5, 0x002d6dc4, 0x002f6dc4, 0x002b6dc4, 0x003270ca, 0x003171cb, 0x003573cd, 0x003675cf,
- 0x00326dcf, 0x003871c0, 0x003970b6, 0x004377b3, 0x004d7cc0, 0x004f79c7, 0x004569b6, 0x003a5094, 0x001a1930, 0x0015050a, 0x006b5f4d, 0x00ddd7d7, 0x00fcfbfd, 0x00fdfaf9, 0x00fdfdfc, 0x00fcfffd,
- 0x00bbc0bb, 0x00434543, 0x00010301, 0x00030300, 0x00040102, 0x00050301, 0x00181210, 0x00372f3d, 0x004d4b56, 0x003f3f44, 0x00202230, 0x000b0d30, 0x001d156d, 0x002f2575, 0x005c5390, 0x00a29dba,
- 0x00cdbcd7, 0x00c9bad5, 0x00d0c5df, 0x00d1cae2, 0x00d1cce4, 0x00d1cde4, 0x00cecce3, 0x00d0cee7, 0x00d9d2ed, 0x00d7d1ea, 0x00d6cce6, 0x00d4cbe5, 0x00d5cbe7, 0x00d8cde9, 0x00dbd2ed, 0x00dcd2ef,
- 0x00d8d2eb, 0x00dfd7f3, 0x00dbd1ef, 0x00e2d8f4, 0x00ded3ef, 0x00ec9e82, 0x00da5c20, 0x00e75217, 0x00f94917, 0x00fc4a1e, 0x00fc481c, 0x00f84719, 0x00fa643e, 0x00fca591, 0x00ece1da, 0x00c5f0ff,
- 0x00d9bd97, 0x00cc8b85, 0x00ed9ca7, 0x00fdb8c4, 0x00f5b092, 0x00dabe98, 0x00f8f2d9, 0x00f1f2fa, 0x00eed7f9, 0x00dbb8d4, 0x00cbaec3, 0x00bbbec3, 0x00adb0b6, 0x00b9bac3, 0x00e9e9f3, 0x00f6f6fc,
- 0x00f0eff4, 0x00c8c8ce, 0x006c6971, 0x00211d26, 0x00050409, 0x00020102, 0x00010003, 0x0012121b, 0x00686183, 0x009690b3, 0x009992b6, 0x00aba5c5, 0x00c0b9d6, 0x00bfb5d5, 0x00c2b6db, 0x00c8bbe1,
- 0x00bbafa4, 0x003e241a, 0x00381e16, 0x00351f17, 0x00302019, 0x002a1f16, 0x00241e17, 0x001d1d18, 0x00181d18, 0x00171e1a, 0x00171e1a, 0x00151d17, 0x00151b16, 0x00131a13, 0x00131a13, 0x00131a14,
- 0x00151a17, 0x00161c19, 0x001a201c, 0x001d231e, 0x00212621, 0x00222623, 0x00242524, 0x00242523, 0x0023231d, 0x00212118, 0x001e1f15, 0x001a1b11, 0x00181710, 0x00191815, 0x001f201e, 0x00242626,
- 0x002a2e34, 0x0031353c, 0x00373c42, 0x00383c44, 0x003a3d48, 0x00393d47, 0x00373b42, 0x0034383e, 0x00272b2d, 0x001a211e, 0x00131816, 0x00111410, 0x00101515, 0x0010130e, 0x0015140a, 0x00514635,
- 0x00947861, 0x005c3c26, 0x005d3a29, 0x005d3f36, 0x00432c32, 0x006f5234, 0x00b3915f, 0x00bc9462, 0x00b98453, 0x00aa6f3f, 0x00a16234, 0x00995e32, 0x008c5936, 0x006d4627, 0x00351804, 0x001f0700,
- 0x00260e06, 0x002f2215, 0x0028241c, 0x00212522, 0x002e2e2f, 0x00252423, 0x00191a16, 0x0011170d, 0x00111910, 0x000e1815, 0x00111714, 0x0012140d, 0x00131411, 0x00111212, 0x00111013, 0x00100f15,
- 0x000d1112, 0x000b100f, 0x000a0f0e, 0x000a0f0e, 0x000a0f0f, 0x00090d0e, 0x000b0e0f, 0x000f1112, 0x000d1110, 0x000e1312, 0x000e1815, 0x00111d1a, 0x001a2522, 0x00202d29, 0x0023312e, 0x00253230,
- 0x0026322f, 0x00283331, 0x00273030, 0x00222a2a, 0x0018201e, 0x00101814, 0x000b110d, 0x00090e0a, 0x000c120d, 0x000d120d, 0x000c130f, 0x000b1512, 0x000e1715, 0x00101815, 0x00101714, 0x00101513,
- 0x000e120b, 0x000c110a, 0x000e120c, 0x000f120c, 0x00151711, 0x006e6f6d, 0x00fdfdfd, 0x00fdfdfd, 0x00fbfbfc, 0x00fefeff, 0x00fefefe, 0x00cecece, 0x007e7e7f, 0x0069686a, 0x002f2f2f, 0x002a2a2a,
- 0x00504a3f, 0x004a4133, 0x004b3e2e, 0x004d3d2f, 0x003d3229, 0x0034312d, 0x00444645, 0x005e605f, 0x00555047, 0x00433529, 0x0064402f, 0x00793e2b, 0x001c2316, 0x00071c16, 0x000d1011, 0x00361f21,
- 0x009e5b44, 0x009d6438, 0x007b5018, 0x00846b34, 0x00967355, 0x0093744f, 0x0095764c, 0x008f7249, 0x008c7249, 0x00887049, 0x0077633c, 0x006b5b38, 0x00695b42, 0x00685c48, 0x00564b39, 0x0034281a,
- 0x000b1700, 0x002c180c, 0x00694842, 0x009e7775, 0x00c6bfb2, 0x00d9c6bb, 0x00ab827a, 0x00914243, 0x008d3432, 0x00a15e4d, 0x00e4bdb2, 0x00cdcbd0, 0x009c9390, 0x005c4b3f, 0x003f2714, 0x003f2208,
- 0x0046260a, 0x00523a20, 0x006b5c44, 0x005e5744, 0x004a4b41, 0x005b4e40, 0x00625442, 0x00564b3b, 0x00695e55, 0x00676061, 0x005e5a69, 0x00474562, 0x002f3355, 0x006e7692, 0x00b8c3d4, 0x0085959c,
- 0x00556599, 0x004f5f84, 0x00a6b6c7, 0x00bbcad0, 0x00a5b1bb, 0x009da7bc, 0x00929aba, 0x00a6afd6, 0x00beceeb, 0x00bdcfe4, 0x00b7cee4, 0x00afc7e5, 0x00b6cce9, 0x00b9cbe5, 0x0097a7bc, 0x008e9aa9,
- 0x00bdc6c6, 0x00e4ede8, 0x00dddfdf, 0x00d3d3d7, 0x00ddd7e9, 0x00e5e6e3, 0x00e6e6db, 0x00cfcec0, 0x00c8c4b7, 0x00e6e1d6, 0x00f2ede5, 0x00c2bab8, 0x00575256, 0x001b1a23, 0x0011121e, 0x00252836,
- 0x004f4a46, 0x004b4642, 0x00423d39, 0x007e7c77, 0x00a3a29c, 0x0078776f, 0x00656458, 0x00837f75, 0x00827d6e, 0x00595543, 0x002b2217, 0x003c3125, 0x00645747, 0x00665a43, 0x00655742, 0x00493a25,
- 0x001c1205, 0x00251f1a, 0x00383637, 0x002c2e39, 0x00181f34, 0x00111e47, 0x00091841, 0x0005122b, 0x000e1414, 0x000d0f09, 0x006d6b61, 0x00dfdbd7, 0x00fffdff, 0x00fdfeff, 0x00f9fdff, 0x00f8fefd,
- 0x00cdcec5, 0x006b6d67, 0x003a3e3a, 0x00484f51, 0x00323b45, 0x001c2535, 0x00192235, 0x001b2239, 0x001d223b, 0x001c203d, 0x001a2034, 0x0017202a, 0x0017202d, 0x00172030, 0x0016212e, 0x0015212d,
- 0x0014222f, 0x00132433, 0x00132533, 0x00132634, 0x00152733, 0x00162738, 0x0017263a, 0x0016253a, 0x00162339, 0x00132339, 0x00112338, 0x0010243a, 0x000f233d, 0x000e223c, 0x000c213a, 0x000b223a,
- 0x0015223a, 0x0018243c, 0x0016243c, 0x00122337, 0x00152636, 0x00132431, 0x0011212b, 0x00121e29, 0x00181d28, 0x00171a26, 0x0014151c, 0x00151813, 0x00171718, 0x00131318, 0x00121118, 0x00141520,
- 0x00101422, 0x000e1523, 0x000b1727, 0x000a1b29, 0x000b1f2b, 0x000f2029, 0x0014222c, 0x001a2630, 0x00222735, 0x00252936, 0x00272932, 0x0028292b, 0x002d2b26, 0x002e2b1e, 0x002d2917, 0x002c2712,
- 0x00342211, 0x00352313, 0x00352311, 0x0033200e, 0x002d1b08, 0x00291805, 0x00261806, 0x00251a07, 0x00211b0b, 0x001e1b0e, 0x001a1a0c, 0x0018190b, 0x00181a0f, 0x00181913, 0x00151713, 0x00121512,
- 0x00131116, 0x00101211, 0x00131210, 0x00151110, 0x00170f0f, 0x0010130d, 0x0011140c, 0x0016140b, 0x001f1607, 0x00211604, 0x00291c07, 0x002e200b, 0x00291b0b, 0x0062594d, 0x00dfdad1, 0x00f0efe9,
- 0x00eaebf2, 0x00eae6e7, 0x00eee5e0, 0x00efe5db, 0x00e5e0d5, 0x00dcddd5, 0x00eef3f1, 0x00f4fcfd, 0x00fafcfa, 0x00fefff8, 0x00fefcf7, 0x00f9fdf4, 0x00fdfdfe, 0x00fffcfa, 0x00918782, 0x00645646,
- 0x006c5834, 0x00635829, 0x00555722, 0x00455c22, 0x003a662f, 0x003f6428, 0x00426023, 0x00466428, 0x00466535, 0x00416132, 0x00395b2e, 0x003b5d32, 0x0049683e, 0x004e6a3f, 0x00546e41, 0x005d7648,
- 0x00647b5c, 0x00688462, 0x00668761, 0x005e8359, 0x005c8052, 0x005c7b4a, 0x005c7643, 0x005d7540, 0x0057723a, 0x0055763b, 0x00567c3a, 0x00567f38, 0x00597d38, 0x005a7c36, 0x005c8035, 0x005e8537,
- 0x00597e35, 0x005b8038, 0x005d813c, 0x005a833c, 0x005d8244, 0x0066823a, 0x00658235, 0x0060863c, 0x00608846, 0x005c8049, 0x0066845c, 0x009cb096, 0x00d3e0db, 0x00d2e1e2, 0x00cde2e7, 0x00bddbe2,
- 0x00cabfd7, 0x00caccda, 0x00c3cdd7, 0x00c8dcdf, 0x00c0ccd4, 0x00c8d0e1, 0x00cdd5ed, 0x00bcc7ee, 0x0097c1eb, 0x00508dc6, 0x00306cb2, 0x003863b2, 0x00376cbd, 0x00326cbc, 0x003266b6, 0x00406ac0,
- 0x0020358c, 0x00132570, 0x00152665, 0x001e3b6b, 0x003d6a83, 0x0084997f, 0x00969868, 0x009e946f, 0x008e765f, 0x0082795b, 0x006d774f, 0x00597e44, 0x00528b42, 0x0057863a, 0x005f8a3d, 0x00618036,
- 0x005a822e, 0x005b802c, 0x00628431, 0x00627b33, 0x00818c59, 0x00a8ab88, 0x00bdb8a0, 0x00c3b2a4, 0x00c5aa9a, 0x00c2a891, 0x00b09679, 0x008b7a55, 0x00645d32, 0x00585e2d, 0x0062723c, 0x00607b41,
- 0x00567a38, 0x00537935, 0x00557a34, 0x0052782e, 0x0054752c, 0x0052752d, 0x0052732f, 0x0054732f, 0x00537434, 0x00517132, 0x00517133, 0x00506f32, 0x00506f33, 0x004d6e31, 0x004c6b2f, 0x004a6c2f,
- 0x0049672a, 0x0049672a, 0x0047662a, 0x00466529, 0x00476229, 0x00456129, 0x00436129, 0x00436029, 0x00445d2a, 0x003f5d26, 0x00475c2e, 0x00adad90, 0x00effdfc, 0x00f2fbfc, 0x00fafcf9, 0x00fdfbef,
- 0x00fffaff, 0x00c3dcfc, 0x002d589c, 0x002c67bb, 0x004c7bc8, 0x00437cc8, 0x003672be, 0x002f6bb6, 0x003268b4, 0x003469b5, 0x003567b5, 0x003163b0, 0x002b58a7, 0x002851a1, 0x002f55a6, 0x003359aa,
- 0x002d5eaf, 0x002759a9, 0x002556a5, 0x003869b4, 0x003869b2, 0x003a6cb5, 0x003666b2, 0x003162af, 0x002e5dae, 0x002a5bae, 0x002d5eb1, 0x003463b4, 0x003566b5, 0x003667b5, 0x003768b4, 0x003566b2,
- 0x002e61aa, 0x002b5ca6, 0x00295ca5, 0x00295ca5, 0x001f539a, 0x00154397, 0x00284286, 0x00525264, 0x00933c24, 0x00832e0e, 0x00a06a3c, 0x00a8ac6c, 0x00c2ba75, 0x00dbb984, 0x00f0d1a9, 0x00d1ccb1,
- 0x00966749, 0x007d502a, 0x00b88b60, 0x00be945d, 0x00b48d50, 0x00b89552, 0x00b69250, 0x00b59250, 0x00b99358, 0x00b9975f, 0x00b9975a, 0x00b6914c, 0x00a28542, 0x008d783a, 0x0075652c, 0x00615927,
- 0x00595c44, 0x00727674, 0x008c92a1, 0x00868bac, 0x008f95c4, 0x00a5acd3, 0x00acb5d7, 0x009299c0, 0x007879a4, 0x008082af, 0x008a8ab6, 0x008280ac, 0x008482ab, 0x009a96be, 0x00a6a4c7, 0x009a98b9,
- 0x005a6594, 0x002a3866, 0x001a2758, 0x000e1d50, 0x000a1e52, 0x0012295f, 0x00132c64, 0x0018356d, 0x0026417d, 0x002a4984, 0x00314d86, 0x00385183, 0x00365191, 0x002a498f, 0x00264b96, 0x002c58a0,
- 0x002e629c, 0x003c6ea3, 0x006696c9, 0x0082aee3, 0x0098bcfb, 0x009bbfe7, 0x00bfdbf3, 0x00edfafc, 0x00fdf9fa, 0x00fdfcf8, 0x00fdfaf4, 0x00fcfcf6, 0x00aeb7ba, 0x00363f42, 0x001f2829, 0x00313939,
- 0x003f484b, 0x0040484b, 0x003e454a, 0x00394044, 0x0033393e, 0x002b3135, 0x0020282b, 0x00182023, 0x0012171e, 0x000b1217, 0x000a0e15, 0x000d0f1a, 0x000c0e1a, 0x000d0d1a, 0x0010101b, 0x0010121b,
- 0x0013131e, 0x0012121e, 0x00151421, 0x0012111b, 0x00242431, 0x007a3019, 0x00ae3011, 0x00b91c09, 0x00ab1a05, 0x009d1e06, 0x00a72f1a, 0x00b33c39, 0x00875d7d, 0x0052639e, 0x001d50aa, 0x001248c2,
- 0x002b5dc3, 0x00295ab3, 0x003d70b9, 0x005588c8, 0x006596d2, 0x005c8ed0, 0x004579c4, 0x003d71c6, 0x003b74cc, 0x003c78cf, 0x00447dd1, 0x004b7dcb, 0x003c74cc, 0x002e6fc5, 0x003d80d3, 0x003b79c8,
- 0x00457ec1, 0x00467bbc, 0x00457abe, 0x003c77bf, 0x003376ca, 0x003174c3, 0x003377c1, 0x003477c1, 0x003c78c4, 0x00427bc2, 0x004a7dbc, 0x00507eb1, 0x006383a6, 0x00728aa1, 0x007b8f9b, 0x00829097,
- 0x008f9085, 0x00898f89, 0x00899293, 0x0072838d, 0x005f7b98, 0x005479a4, 0x003c69a2, 0x002b60a6, 0x002867bd, 0x002d6fc9, 0x003771ca, 0x002a58ab, 0x000c3a90, 0x002256ac, 0x00366dc5, 0x00366ec7,
- 0x003172cb, 0x002a6cc6, 0x002d71cd, 0x002d73d1, 0x003175d4, 0x003378c9, 0x003177be, 0x002e73bc, 0x002d70b9, 0x002e72bb, 0x003074bd, 0x003075bd, 0x003277be, 0x003177bd, 0x003278be, 0x00367bc2,
- 0x002673df, 0x002d73ce, 0x003474c4, 0x003873b5, 0x00447bc2, 0x003a70c0, 0x003f72c6, 0x00426fc2, 0x002d497c, 0x000d213e, 0x004b5660, 0x00d2cecf, 0x00fffdff, 0x00fefcfd, 0x00fbfdfd, 0x00fffeff,
- 0x00cdd0d0, 0x00525250, 0x00050304, 0x00080606, 0x000a080d, 0x000a0706, 0x00120d0d, 0x001f1a25, 0x0020212a, 0x00171b1d, 0x000a111b, 0x0009102d, 0x00171465, 0x00201c67, 0x004d4b86, 0x009d9ebe,
- 0x00d3c2df, 0x00d0c1de, 0x00cfc4de, 0x00d1cae3, 0x00d1cce7, 0x00cecbe5, 0x00cecce3, 0x00d3d0e8, 0x00d6d0e9, 0x00d5cde6, 0x00d3cbe3, 0x00d6cbe6, 0x00d9cdeb, 0x00d9cfec, 0x00dbd1ec, 0x00dbd2ee,
- 0x00ddd0ed, 0x00e0d6f2, 0x00dcd1ef, 0x00e0d8f5, 0x00e0d7f5, 0x00f19b90, 0x00e75737, 0x00fa4b31, 0x00f24d33, 0x00db633c, 0x00e07e53, 0x00d36a38, 0x00eb4b29, 0x00f17b66, 0x00f1c8c4, 0x00d6f3fc,
- 0x00fbe3d2, 0x00f6cbc9, 0x00f8c6d1, 0x00fdcdd2, 0x00f4b198, 0x00deb094, 0x00f9eada, 0x00f3f1f7, 0x00ecdefe, 0x00ebcfe6, 0x00e1cbda, 0x00cacbd1, 0x00bfbfc9, 0x00d1d0d9, 0x00eeedf8, 0x00f3eef8,
- 0x00f9faff, 0x00f9f8fb, 0x00cbc6cc, 0x00625c68, 0x0007040f, 0x00020304, 0x00010204, 0x001d1b27, 0x00716c8d, 0x009a93b7, 0x00a39abf, 0x00b9afd0, 0x00cec5e1, 0x00c8bedf, 0x00c7bce2, 0x00c8bbe3,
- 0x00c1b2a9, 0x003f271d, 0x00352219, 0x00322419, 0x002d241c, 0x0029241b, 0x0027241c, 0x0022231e, 0x00212622, 0x001f2623, 0x001d2622, 0x001d221e, 0x001a1f1c, 0x001a1e1a, 0x001a201b, 0x001c201e,
- 0x00202420, 0x001f2421, 0x00202623, 0x00212725, 0x00252a24, 0x00262927, 0x00252725, 0x00242521, 0x0025231e, 0x0024231c, 0x001f2218, 0x00191d13, 0x001c1c15, 0x001f1f1a, 0x00252824, 0x002c2f2b,
- 0x0035383b, 0x003a3d42, 0x003f4348, 0x0040434b, 0x00414450, 0x0040434e, 0x003e4348, 0x003d4245, 0x00343638, 0x00262b28, 0x001c201e, 0x0017181d, 0x00171c23, 0x00181a1d, 0x0016150c, 0x004e4435,
- 0x00ae8976, 0x00a17863, 0x009e725f, 0x008f6758, 0x00795856, 0x008c6e4b, 0x00b39663, 0x00b7925f, 0x00b3804f, 0x00a46c3c, 0x009b602f, 0x00945b2d, 0x0089552d, 0x007a4e2d, 0x00573416, 0x0046280b,
- 0x00332d2b, 0x002d2a28, 0x00100d0c, 0x000b0e0d, 0x001d1e1b, 0x00232320, 0x0020231a, 0x001a1f12, 0x00181c16, 0x00121c16, 0x00131b15, 0x00131710, 0x00131411, 0x00121412, 0x0010110f, 0x000f120f,
- 0x00101415, 0x00101414, 0x000e1412, 0x000b1411, 0x000c1311, 0x000c1211, 0x000c1210, 0x000e120f, 0x00111615, 0x00111716, 0x00111918, 0x00121b1a, 0x00161e1c, 0x001a231f, 0x001c2823, 0x001e2a26,
- 0x00232c2e, 0x00232d2f, 0x00222b2d, 0x001d2626, 0x00151e1c, 0x000e1713, 0x000a130e, 0x000a130e, 0x00101110, 0x00101310, 0x000e1611, 0x000c1714, 0x00101716, 0x00111614, 0x000e1510, 0x000d140f,
- 0x0010120d, 0x000e100c, 0x000f110d, 0x0010130c, 0x0013160f, 0x006e706b, 0x00fdfffc, 0x00fcfefc, 0x00fffbfe, 0x00fffeff, 0x00fefdfe, 0x00cececd, 0x007d7d7e, 0x00646564, 0x00242624, 0x00202322,
- 0x00504236, 0x00615344, 0x006c5b4a, 0x00665441, 0x00433628, 0x002e2922, 0x0032342f, 0x00444740, 0x00443b36, 0x003f2f23, 0x0065412e, 0x007c3219, 0x00281f0c, 0x000c1109, 0x000b0905, 0x003a1f19,
- 0x00a15f46, 0x009d6337, 0x0090632b, 0x00967a42, 0x008f724a, 0x008e7146, 0x0097784b, 0x00947748, 0x008e7445, 0x00876f45, 0x007a643c, 0x00766441, 0x00786850, 0x00776a57, 0x005d5443, 0x002d2417,
- 0x00131404, 0x002a160c, 0x00593f38, 0x0073554f, 0x00959082, 0x00cabcb0, 0x00d5b9af, 0x00c38c8a, 0x00bc7c7c, 0x00c8978b, 0x00e9cbc0, 0x00dedcdd, 0x00c7c2be, 0x007e7169, 0x003f2e1e, 0x0045321d,
- 0x00624832, 0x00765d48, 0x0087735b, 0x006f614b, 0x00514535, 0x005e4e41, 0x008b8072, 0x00817567, 0x005b4d4e, 0x003c353f, 0x00333046, 0x00212348, 0x00272d5a, 0x00606b91, 0x00667492, 0x0021364b,
- 0x001b2357, 0x00343d61, 0x00a4aebd, 0x00c0cacd, 0x00b4bcbe, 0x009a9ea8, 0x008e91a2, 0x00a0a4b8, 0x00abb0c1, 0x009fa7ad, 0x00a3b0b9, 0x00a8b6cc, 0x00a7b6ca, 0x00afbcd0, 0x00a8b5c4, 0x00adb9c0,
- 0x00d6d9e0, 0x00e0e2e6, 0x009a9ba1, 0x008f8e96, 0x00cccad8, 0x00cbcac5, 0x00abac9a, 0x00969682, 0x00b3a799, 0x00d7c7bf, 0x00e1d3cb, 0x00cab9b8, 0x008d7d84, 0x00594a56, 0x00312434, 0x00261c2e,
- 0x00291f11, 0x002a2014, 0x00494035, 0x00938f84, 0x00c1c2ba, 0x00bbbdb5, 0x00adafa7, 0x00b4b5af, 0x00b8b4b0, 0x009d9792, 0x0066635e, 0x00656763, 0x00848074, 0x006a6152, 0x004d402c, 0x003e301a,
- 0x002a1a0e, 0x00302825, 0x00303135, 0x00192131, 0x0011223c, 0x00182b5b, 0x000f2252, 0x00091938, 0x00161c28, 0x00121613, 0x006c6a65, 0x00e2dddd, 0x00fffdfe, 0x00ffffff, 0x00fcfcfd, 0x00f9fcfa,
- 0x00d4cfcc, 0x007d7b7a, 0x005a5c5d, 0x006f777b, 0x00505b68, 0x002e3b4f, 0x0029374d, 0x002a3752, 0x002c3655, 0x002b3655, 0x002a334f, 0x00293244, 0x002a3348, 0x00283548, 0x00263747, 0x00263745,
- 0x002e3b52, 0x002c3e52, 0x002b4052, 0x002a4055, 0x002d4255, 0x002d435b, 0x002d435d, 0x002d425c, 0x002c405d, 0x00293e5d, 0x00243c5b, 0x00223c5a, 0x001f3a5a, 0x001e3b59, 0x001d3b58, 0x001e3c5a,
- 0x0027345d, 0x002c3860, 0x0027395e, 0x00243958, 0x00203953, 0x001f394d, 0x001b3748, 0x001d3546, 0x00263748, 0x00223243, 0x001e2c38, 0x00222a2c, 0x001e2628, 0x0021272b, 0x0021282c, 0x0021262a,
- 0x00222434, 0x001f2537, 0x001d273c, 0x001d2a41, 0x00212d47, 0x00233241, 0x00293840, 0x002f3c46, 0x003c3f4c, 0x003e404b, 0x00404047, 0x00424241, 0x00444238, 0x00474331, 0x0047412a, 0x00463f26,
- 0x00503a22, 0x00503a20, 0x004d381b, 0x004a3418, 0x00442f13, 0x00402c13, 0x003c2b15, 0x003a2c17, 0x00352a1b, 0x00332a1d, 0x002e281b, 0x002c261c, 0x002b2922, 0x002a2a24, 0x00242823, 0x00222725,
- 0x00212025, 0x00202122, 0x00242020, 0x0025211d, 0x00271f1c, 0x0022221c, 0x0025241c, 0x0029251a, 0x0038291b, 0x003f2b1a, 0x00442e19, 0x004b331d, 0x0047331c, 0x00594936, 0x008e8172, 0x008b8172,
- 0x00777175, 0x006a605e, 0x00615248, 0x00604e3f, 0x00514737, 0x0079746a, 0x00dfe1de, 0x00f5fcfc, 0x00fcfaf9, 0x00fffefa, 0x00fefaf8, 0x00f8fef8, 0x00fdfeff, 0x00fffcf9, 0x007a786f, 0x005e5342,
- 0x00695535, 0x0062572a, 0x00535521, 0x00465b21, 0x0039662c, 0x00406528, 0x00436426, 0x00466629, 0x00496436, 0x003f5b31, 0x00324f29, 0x00385332, 0x00536c4e, 0x0062795b, 0x006f8667, 0x007e9574,
- 0x008da09a, 0x00839c91, 0x00769384, 0x0072937e, 0x007b9a7f, 0x007e987a, 0x007a8f71, 0x00788b6a, 0x006f8461, 0x00637c55, 0x005e794d, 0x00597746, 0x005a7645, 0x005d7c46, 0x005a7b3e, 0x005c813c,
- 0x00587b38, 0x005b7f3b, 0x005c833b, 0x005a8438, 0x005e833f, 0x0064813d, 0x00637d37, 0x005f7e38, 0x00628443, 0x0069864d, 0x00687f50, 0x0071805d, 0x00a9b6a8, 0x00cee0db, 0x00c9e2e5, 0x00b0d3da,
- 0x00b6adc7, 0x00cbc8d8, 0x00ddddeb, 0x00d8dce4, 0x00dfe1e8, 0x00d9dbed, 0x00e1e8f8, 0x00dbeafd, 0x0085b0ed, 0x003771c3, 0x003269bc, 0x00425fb4, 0x003468c3, 0x002963bc, 0x00396dbe, 0x00365aa7,
- 0x0022378e, 0x0017398f, 0x002f4f95, 0x00335384, 0x008d9298, 0x00909475, 0x0077794b, 0x006b694e, 0x00444546, 0x006b7670, 0x007d9580, 0x006e9169, 0x00669658, 0x0050813d, 0x00598747, 0x0059834b,
- 0x005d8646, 0x00608243, 0x00688645, 0x008ba165, 0x00bbc194, 0x00c8c3a3, 0x00bcb099, 0x00b9a696, 0x00bca298, 0x00a68b82, 0x007b6b53, 0x00626035, 0x005e6133, 0x00636f3d, 0x00627a40, 0x00567638,
- 0x00567a37, 0x00567937, 0x00547733, 0x0054772f, 0x0055782f, 0x0053752e, 0x00517330, 0x00517230, 0x00557334, 0x00527233, 0x004f7132, 0x004f7133, 0x004e6e31, 0x004b6d2f, 0x004c6b2d, 0x004a6b2d,
- 0x004b672c, 0x004a662a, 0x00486529, 0x00476528, 0x00476329, 0x00456229, 0x00426228, 0x00406128, 0x0044602b, 0x00426029, 0x00495c2e, 0x00bbb79e, 0x00f1fdfd, 0x00f5feff, 0x00fbfcf9, 0x00fdfaee,
- 0x00fffcff, 0x00b8cef9, 0x003160a4, 0x003d79d0, 0x004d7fcc, 0x003e74c0, 0x00326cb6, 0x002e6bb3, 0x00376bba, 0x003669b8, 0x003263b3, 0x002c5dac, 0x002856a7, 0x002a55a6, 0x002e57a8, 0x002a54a4,
- 0x002956aa, 0x002552a6, 0x002253a4, 0x003367b3, 0x003569b1, 0x00386cb3, 0x00356ab3, 0x003466b3, 0x003664b6, 0x003364b7, 0x003362b6, 0x003665b6, 0x003768b7, 0x003a6bb9, 0x00386ab8, 0x003468b5,
- 0x003967b2, 0x003363af, 0x002b5ea7, 0x00295aa4, 0x0022549b, 0x00224da1, 0x0035498a, 0x00696574, 0x00b55b3e, 0x00b16239, 0x00bd8f54, 0x00b7bb6f, 0x00cac777, 0x00dbc087, 0x00e9d0a5, 0x00dad6bb,
- 0x00e1baa8, 0x00c4a18c, 0x00aa8768, 0x00a7895f, 0x00b2945c, 0x00aa8b50, 0x00a98a4c, 0x00b09152, 0x00ba955c, 0x00b8935d, 0x00af8d54, 0x00a68442, 0x008e723b, 0x007d6735, 0x006e5f37, 0x00645e41,
- 0x00666566, 0x007a7b88, 0x008b92a7, 0x008a93b3, 0x00a2add6, 0x00b3bbde, 0x00abb4d3, 0x008f94b7, 0x008081ab, 0x008687b3, 0x008888b1, 0x008381aa, 0x008d8ab0, 0x009593b5, 0x009595b0, 0x009092ac,
- 0x006e7094, 0x004c5378, 0x00354169, 0x001e2f59, 0x00081e4b, 0x00102855, 0x00243b66, 0x00445c84, 0x0064739b, 0x00687799, 0x0072829c, 0x007f8ca2, 0x006c7aa4, 0x0044588f, 0x00294885, 0x002c4f94,
- 0x00305799, 0x0035609c, 0x00537fb8, 0x00769fd6, 0x008eb2f1, 0x008eb2d9, 0x00b8d5ed, 0x00edfafd, 0x00fffcfa, 0x00fffefa, 0x00fefaf5, 0x00fdfbf8, 0x00b0b7ba, 0x00394042, 0x00232a29, 0x00353b3a,
- 0x0041474b, 0x003e4548, 0x003c4346, 0x00383f42, 0x0031383c, 0x002d3338, 0x00252c2f, 0x001c2225, 0x00171d1f, 0x000e1519, 0x000a0e15, 0x000f0d17, 0x000c0c17, 0x000c0d18, 0x000f101a, 0x000f121a,
- 0x00161420, 0x00171623, 0x00161724, 0x0014141f, 0x001b1a27, 0x00652413, 0x00a93115, 0x00b61a06, 0x00b10f02, 0x00ab1503, 0x00b72605, 0x00c53823, 0x00976071, 0x005e69a0, 0x001d52a8, 0x000943c1,
- 0x002f56ba, 0x003860b6, 0x00547ec7, 0x006f9ad3, 0x0094bbf0, 0x009dc5f9, 0x00648cd0, 0x003b63b1, 0x003b64bc, 0x004a75c7, 0x005f8fdb, 0x0078a8ef, 0x00659deb, 0x003d7ac7, 0x003879c4, 0x003e7bc2,
- 0x004b7bbd, 0x004d7abc, 0x004776b7, 0x003d72b7, 0x003172c1, 0x003576c2, 0x003779be, 0x003879bd, 0x004077c0, 0x004479bd, 0x004b7bb7, 0x00517dad, 0x006787a9, 0x00708aa0, 0x006e8691, 0x00798d93,
- 0x00ac9b90, 0x00b8aea7, 0x00b3aeae, 0x009fa5af, 0x007c91b1, 0x005c7dab, 0x003a66a2, 0x00265ca4, 0x002665c3, 0x002c6fd2, 0x00326fce, 0x00204fa4, 0x0007368e, 0x002456b0, 0x00376dc7, 0x00386dca,
- 0x00356ccc, 0x002b67c7, 0x002b6dcc, 0x00296ecd, 0x002d70d3, 0x002e73c9, 0x002c72c1, 0x00296ec1, 0x002e6ec1, 0x002f6fc3, 0x002d70c4, 0x003072c5, 0x002f74c4, 0x003073c3, 0x002d71c0, 0x003073c4,
- 0x00276fda, 0x00306ec6, 0x004880c3, 0x006190c7, 0x0079a6dc, 0x005d8ace, 0x003e6eb8, 0x00376bba, 0x004977bb, 0x002a5787, 0x00466280, 0x00c7c6d0, 0x00fbfaff, 0x00fdfcfb, 0x00fafbfd, 0x00fcfefc,
- 0x00d8d5d9, 0x00646166, 0x000c080e, 0x00131215, 0x00191820, 0x0023211b, 0x00211d19, 0x001c1721, 0x00111423, 0x00071218, 0x00020e17, 0x000a1432, 0x000f1364, 0x000c115d, 0x002b326c, 0x00727d9b,
- 0x00dac6e6, 0x00ddcbea, 0x00cdbfdb, 0x00cec5df, 0x00cfc9e5, 0x00d1cce6, 0x00d2cde3, 0x00d2cce2, 0x00d4cae8, 0x00d2c8e5, 0x00d2cae5, 0x00d6cce8, 0x00dacfee, 0x00dad2ed, 0x00dad2eb, 0x00dcd3ed,
- 0x00ded4f4, 0x00e0d4f3, 0x00dcd3ee, 0x00e0dbf5, 0x00e3d8f4, 0x00eda3a4, 0x00da5f52, 0x00f05449, 0x00e66052, 0x00e0937e, 0x00f9cba8, 0x00e2a078, 0x00eb512e, 0x00e55c49, 0x00f1a197, 0x00e8e6ec,
- 0x00feebe6, 0x00fcedef, 0x00f7eef2, 0x00feeef1, 0x00efad98, 0x00dc9f8d, 0x00f9dbd2, 0x00eee9f4, 0x00eeefff, 0x00feeffb, 0x00f6eaf3, 0x00e9e6ee, 0x00e8e4ed, 0x00eeecf5, 0x00f6f7fe, 0x00f7f8fb,
- 0x00f5efff, 0x00fbf4ff, 0x00f2ebf4, 0x009f9aa9, 0x001b1626, 0x00050409, 0x00040508, 0x002d2b38, 0x007e769c, 0x009d95bc, 0x00a59cc2, 0x00b9b0d0, 0x00cbc2dd, 0x00ccc2e1, 0x00c8bde2, 0x00c4bae0,
- 0x00b4b5a4, 0x00332a1b, 0x00302316, 0x002d2419, 0x002d271e, 0x0028251d, 0x00272721, 0x00282824, 0x001b2a1c, 0x001b2b1e, 0x00202b24, 0x00222722, 0x001e221f, 0x001d211e, 0x00202423, 0x00222825,
- 0x001f2820, 0x00202821, 0x00222924, 0x00232925, 0x00252924, 0x00282927, 0x00272727, 0x00232321, 0x001b2214, 0x001a2012, 0x001b2014, 0x001c1f15, 0x001d1f17, 0x0022211d, 0x002b2928, 0x00322f30,
- 0x00303835, 0x00373e3b, 0x00434648, 0x0045474c, 0x0043484d, 0x0043474d, 0x0046484e, 0x00414647, 0x00303a31, 0x00293028, 0x00222725, 0x001d222a, 0x001a2029, 0x00161a20, 0x00181517, 0x00554841,
- 0x00bea286, 0x00c4997c, 0x00c39177, 0x00aa7c65, 0x00a17768, 0x00ac8d65, 0x00b69666, 0x00a98351, 0x009d753c, 0x00926631, 0x00945e30, 0x0092582e, 0x008b5835, 0x007d4e30, 0x00653a22, 0x005c3721,
- 0x001e3034, 0x000a1419, 0x00030006, 0x00070308, 0x0010130d, 0x001f251b, 0x002c2c23, 0x002e2a21, 0x001d2416, 0x00172718, 0x001b261c, 0x0020201b, 0x001f211a, 0x001c1e18, 0x001a1c18, 0x001a1e1a,
- 0x000e1910, 0x000f1911, 0x00121816, 0x00111918, 0x0010161a, 0x00111716, 0x00121615, 0x00111814, 0x000a1a0d, 0x000e1a10, 0x00141918, 0x00141a1a, 0x00171d19, 0x0018211c, 0x001e2323, 0x00212425,
- 0x00182823, 0x00192823, 0x001b2625, 0x00172020, 0x00121d19, 0x000f1814, 0x00121715, 0x00131715, 0x00081308, 0x000c140a, 0x000f1613, 0x000f1717, 0x000e1713, 0x000f1612, 0x000f1413, 0x00101212,
- 0x00051005, 0x00070f06, 0x000c1109, 0x0010120c, 0x00151711, 0x0070706f, 0x00fffeff, 0x00fffdff, 0x00f6fbf7, 0x00f9fefa, 0x00fdfffd, 0x00cececd, 0x007d7d7e, 0x005e5d5e, 0x001e1c1e, 0x001b1a1c,
- 0x00352b16, 0x00594d36, 0x0073614b, 0x00715b45, 0x00544637, 0x00332a22, 0x00241e1e, 0x00262424, 0x001e1d0c, 0x00281f0b, 0x00603724, 0x007f2d10, 0x00351806, 0x00160d04, 0x00302119, 0x0067453e,
- 0x009e6542, 0x008e602d, 0x0091672e, 0x0091753c, 0x00786135, 0x00826737, 0x00937546, 0x00957a4a, 0x00847238, 0x007b6b36, 0x00746135, 0x00786541, 0x0072634a, 0x00796957, 0x00726055, 0x00483a32,
- 0x00141700, 0x001f1200, 0x00564035, 0x0069544e, 0x006d6b5f, 0x0099958a, 0x00e4d2cf, 0x00eecac9, 0x00e4c2b9, 0x00e2cdbb, 0x00e2d2c9, 0x00dcddd8, 0x00c8c5be, 0x00858075, 0x00433a2f, 0x005c4c40,
- 0x0070634c, 0x00867660, 0x00927966, 0x0071563f, 0x004b2f16, 0x005f4e3f, 0x00b9a8a1, 0x00ad9e9a, 0x004c4941, 0x0025242b, 0x00252540, 0x00212450, 0x002a336b, 0x00404e80, 0x00374773, 0x00162951,
- 0x000a1638, 0x0036435b, 0x00abb1c2, 0x00dbdfe5, 0x00c5c5c3, 0x009e9b9d, 0x008a8287, 0x008f8b92, 0x00949990, 0x009aa091, 0x00b3b6b3, 0x00c0c4d4, 0x00c0cad7, 0x00c4ced7, 0x00c7cdd8, 0x00c9d0d9,
- 0x00d7e1e0, 0x00c0cacb, 0x004f545c, 0x003c3b49, 0x009f9fae, 0x00d5d6d0, 0x00b9b6a8, 0x008f887b, 0x008d8a76, 0x00a99d90, 0x00a99992, 0x00958180, 0x00786068, 0x00644857, 0x00492e41, 0x0042243d,
- 0x00453819, 0x0041371d, 0x00645a46, 0x00988f82, 0x00c0c0b9, 0x00c1c4bf, 0x00bdbebf, 0x00bfc0c3, 0x00b4b9b2, 0x00a3a89d, 0x00706f71, 0x00485056, 0x00494a47, 0x003c3529, 0x00372616, 0x0036210e,
- 0x002a1c05, 0x00332d21, 0x00333438, 0x00131d30, 0x000c2243, 0x00142963, 0x00152565, 0x000f2153, 0x000e2028, 0x00081313, 0x00666768, 0x00e3dce1, 0x00fffbff, 0x00fefdfd, 0x00fdfcfe, 0x00fdfdff,
- 0x00d1d1c8, 0x00848581, 0x006f7175, 0x00899198, 0x005e6a7a, 0x00364459, 0x00333f5c, 0x00333d60, 0x002c3e58, 0x00283c56, 0x002c3b59, 0x00303c54, 0x00323e56, 0x00324059, 0x0035435d, 0x0034455d,
- 0x00304c60, 0x00304c60, 0x00364f69, 0x0036526d, 0x0036546b, 0x0036556f, 0x003a5476, 0x00385073, 0x002d4e69, 0x002a4d69, 0x002b4c6e, 0x002c4e6f, 0x002d4b6f, 0x002c4b71, 0x002e4d72, 0x002d4e74,
- 0x002c4671, 0x002d4875, 0x002d4977, 0x002c4975, 0x002f4f73, 0x002e5171, 0x00315475, 0x003a5e7a, 0x003c6376, 0x003e6574, 0x00446074, 0x003b4e5d, 0x002a3b47, 0x00233136, 0x00273035, 0x00273234,
- 0x00222f31, 0x00213039, 0x00263048, 0x0028324f, 0x0028365e, 0x002e3b51, 0x00394152, 0x003f4956, 0x003c4b4e, 0x00424c4c, 0x004c4d4e, 0x00514d4b, 0x00554d40, 0x00564f3b, 0x00594e37, 0x005c4d33,
- 0x00584a21, 0x005a4920, 0x005d4721, 0x005a411d, 0x00523b15, 0x00503919, 0x004e381d, 0x0048361e, 0x003e3618, 0x003a331c, 0x003a3022, 0x00373027, 0x0038342e, 0x00383530, 0x0035312e, 0x00313030,
- 0x001f261f, 0x0021261f, 0x00292827, 0x002d2824, 0x002e2724, 0x002e2926, 0x00332d28, 0x003a312a, 0x0040351c, 0x004b381e, 0x00533a1f, 0x005b3e22, 0x00614327, 0x00654a2e, 0x00745b43, 0x006d5741,
- 0x00453d2e, 0x00392d17, 0x00301d07, 0x002d1801, 0x00271603, 0x005a5347, 0x00e2dedb, 0x00fefffe, 0x00f6fbf6, 0x00faf8f4, 0x00fffbf8, 0x00fdfdf8, 0x00fefffd, 0x00fcfdfb, 0x006b6661, 0x005f5243,
- 0x005c5328, 0x00555520, 0x00525721, 0x00485b24, 0x003b652c, 0x00406728, 0x00446629, 0x0044672e, 0x003d622b, 0x003b592a, 0x00394d2e, 0x0041553b, 0x00627260, 0x00798777, 0x008e9b93, 0x009fa8a4,
- 0x008ca8b1, 0x007e989f, 0x00798f97, 0x0081989d, 0x0091a7a5, 0x009baea7, 0x00a4b2a9, 0x00a2b1a3, 0x0091a48a, 0x0083977c, 0x00798a74, 0x006e7e6b, 0x006c8264, 0x006a835e, 0x00567046, 0x004e6e38,
- 0x004e782f, 0x00578036, 0x005c853d, 0x005b843b, 0x005c8639, 0x00617f40, 0x00688145, 0x00668143, 0x005c7f32, 0x00648138, 0x006e8248, 0x0072784d, 0x00878e79, 0x00b5c6be, 0x00c8e2e6, 0x00acd2de,
- 0x009ea4ae, 0x00a39da5, 0x00dfccd4, 0x00ebd0d7, 0x00f3d7dc, 0x00e8dde8, 0x00dee3f6, 0x00c4d9fa, 0x004c7fc1, 0x00366cc1, 0x003a65c3, 0x004b5db8, 0x00386ccd, 0x003469c6, 0x003964ba, 0x00223f88,
- 0x00174187, 0x00174d9d, 0x002d5eaa, 0x005e7bac, 0x00856c5e, 0x004b3e1b, 0x004f4a2f, 0x00535c59, 0x004f7088, 0x007fa6b6, 0x00799ea6, 0x00638574, 0x0081a475, 0x00628860, 0x00567e60, 0x00578374,
- 0x00538162, 0x00618563, 0x0072896c, 0x00a4af90, 0x00c1be9c, 0x00b5aa8a, 0x00ad9883, 0x00a08b76, 0x007b6e55, 0x00685c41, 0x00635b3d, 0x0061693b, 0x0064713e, 0x005d723b, 0x0059723a, 0x0058793a,
- 0x004d7831, 0x004e782f, 0x00537733, 0x00567832, 0x0057762f, 0x0053762f, 0x00547332, 0x00567335, 0x004e742e, 0x004d732e, 0x004f7130, 0x00517032, 0x004e6f32, 0x004e6d32, 0x004e6a31, 0x004d6a32,
- 0x00466928, 0x00466928, 0x0048672a, 0x0048652a, 0x00476529, 0x0048642a, 0x0049622d, 0x0048612d, 0x003d6124, 0x003e5f23, 0x004b5b30, 0x00c7c2ac, 0x00f2fdfe, 0x00f5fefd, 0x00fafdfc, 0x00fff9f4,
- 0x00f7fdf9, 0x00a8c6e9, 0x004572b7, 0x004280d6, 0x004774c3, 0x00376cb8, 0x003569b8, 0x003367b6, 0x002f68b1, 0x002f66b1, 0x003163b1, 0x002b5baa, 0x002654a3, 0x002854a3, 0x002852a3, 0x00254d9f,
- 0x00174c9a, 0x00194c9b, 0x002254a3, 0x003567b4, 0x003466b1, 0x003062ac, 0x003565b2, 0x003867b6, 0x003368b3, 0x003469b7, 0x003869bb, 0x003666b7, 0x00376ab8, 0x00386ab8, 0x003869b8, 0x00396aba,
- 0x00346baf, 0x003068ac, 0x003163ab, 0x003060ab, 0x00275aa2, 0x00254e9d, 0x00465594, 0x0085707d, 0x00bc703e, 0x00c28445, 0x00c39f58, 0x00b7be6a, 0x00cfd17e, 0x00e0ce92, 0x00e8d3ac, 0x00e0daca,
- 0x00eddcce, 0x00e8d5c6, 0x00ccb6a4, 0x00ac9579, 0x00aa9265, 0x00aa8f5c, 0x00a58852, 0x00a3834a, 0x0099813e, 0x00998042, 0x009c7d40, 0x00927234, 0x007f6333, 0x0078623d, 0x0083725c, 0x00887d7a,
- 0x00686f76, 0x006f7788, 0x007a83a1, 0x00868fb5, 0x009ba5ce, 0x00aaadd5, 0x00a8a8cf, 0x009193ba, 0x008187a7, 0x00888eb0, 0x008486ab, 0x007f7ea3, 0x008989aa, 0x008786a4, 0x008986a3, 0x008d8ca8,
- 0x007b7a88, 0x00686e81, 0x00515b78, 0x0028375b, 0x00061e47, 0x00122b51, 0x0043577c, 0x00828eae, 0x00a3adb8, 0x00a3a6aa, 0x00b3b0b5, 0x00c1c1c0, 0x00a4a9c0, 0x00616c9a, 0x00364885, 0x00334b94,
- 0x0029508c, 0x002d568e, 0x00446ca7, 0x00668cc8, 0x0082a4e3, 0x008aa8d0, 0x00bed3f0, 0x00effaff, 0x00f8fbf8, 0x00f9fcf5, 0x00fffcf7, 0x00fefdfb, 0x00b2b6ba, 0x00383e41, 0x001f2325, 0x00313234,
- 0x0038403f, 0x00384340, 0x003b4244, 0x00383d40, 0x002f3737, 0x002b3133, 0x0026292e, 0x001d2427, 0x000d1815, 0x000a1312, 0x00080d10, 0x0007090f, 0x00060911, 0x00090a13, 0x000d0c17, 0x00100f1a,
- 0x000e1315, 0x000d1216, 0x0015141d, 0x0013131d, 0x0017161e, 0x00571e14, 0x00a03520, 0x00b8210f, 0x00b11b00, 0x00b92300, 0x00cc3504, 0x00d63c18, 0x00a35e62, 0x00686a98, 0x002852a8, 0x000b41c1,
- 0x001c469c, 0x003c64ad, 0x007497d8, 0x0099b8f1, 0x00c1e0fd, 0x00b7d4f8, 0x00657ebe, 0x004159a2, 0x005a7cbe, 0x0081a3e2, 0x00a5cbf7, 0x00a0cafa, 0x006396dc, 0x004279c1, 0x004379c2, 0x004379b8,
- 0x004b80af, 0x004c7aac, 0x004e79b2, 0x004978b8, 0x003c73bf, 0x003971b6, 0x003d72b4, 0x004175b8, 0x00447fb6, 0x004c81b4, 0x00537eb2, 0x00577ca9, 0x00637e9e, 0x006b8496, 0x007c8f9c, 0x009ba9b5,
- 0x00ddc9b0, 0x00efdecf, 0x00ead9d9, 0x00d9d2dd, 0x009fabc9, 0x005f78a7, 0x00395c9e, 0x002453a3, 0x001f61b6, 0x00266dcc, 0x002d6bcb, 0x001c469f, 0x00082f86, 0x002855ac, 0x003d6bc5, 0x003e6dcb,
- 0x002f69c3, 0x002b65bf, 0x002e6ac7, 0x002e6ccc, 0x00306ecd, 0x003471d1, 0x00336ece, 0x00316cca, 0x002a6bc7, 0x002c6cc9, 0x003170ce, 0x003473d1, 0x003673d2, 0x003572d0, 0x003571cf, 0x003571ce,
- 0x002d70b8, 0x00578bc7, 0x0093b9ec, 0x00bad0ef, 0x00b2c1e8, 0x009aafe2, 0x006f8ecd, 0x00426eb6, 0x003272ac, 0x003072a9, 0x00608ab5, 0x00cfcbdb, 0x00f8f9fd, 0x00fdfefe, 0x00fdfbff, 0x00fffeff,
- 0x00d8dddb, 0x00717474, 0x00191720, 0x0023212d, 0x00272434, 0x00312d2b, 0x00312b2d, 0x00282436, 0x000f1a27, 0x00031019, 0x0001101d, 0x00101f40, 0x00111b69, 0x000f1a69, 0x001b2869, 0x004b5b84,
- 0x00bbaec3, 0x00d3c6de, 0x00c9bcd6, 0x00c9bdd8, 0x00d3c9e3, 0x00d1cbe4, 0x00d3cee8, 0x00d2cde7, 0x00ccc7d9, 0x00ccc7d8, 0x00d4cae4, 0x00dacfed, 0x00dad2ed, 0x00d8ceea, 0x00dcceee, 0x00e0d4f1,
- 0x00d9d5e9, 0x00d9d2ea, 0x00e0d3f1, 0x00e1d6f4, 0x00dfd6f4, 0x00efb9c8, 0x00e58c90, 0x00f2807e, 0x00d18178, 0x00d4b4a7, 0x00f8e4d6, 0x00e7b9a1, 0x00f55f39, 0x00e9553a, 0x00f58477, 0x00f7d1d8,
- 0x00f6f0ee, 0x00ebf2f3, 0x00f0f4f7, 0x00fef2f1, 0x00eda48f, 0x00d98c84, 0x00fed8d6, 0x00fcf2ff, 0x00e3f7f4, 0x00ecede7, 0x00f3e6e8, 0x00f6f0f6, 0x00fbf9fb, 0x00fefafd, 0x00fff9ff, 0x00fff9ff,
- 0x00f7f3f9, 0x00f2eff8, 0x00fbf6fe, 0x00d3ccd9, 0x00454051, 0x0007040d, 0x000c080f, 0x003f3a4e, 0x0081819b, 0x009692b6, 0x00a39bc2, 0x00b4aacc, 0x00c7bdda, 0x00cbc1e0, 0x00cfc3e7, 0x00d0c2ed,
- 0x00b7b6aa, 0x002b261a, 0x00241e11, 0x00242216, 0x00232419, 0x0023251c, 0x0022261f, 0x00242924, 0x001f2b24, 0x001e2b23, 0x00212b23, 0x00222821, 0x001e241e, 0x001b221c, 0x001e2520, 0x00222925,
- 0x00222a24, 0x00232923, 0x00242925, 0x00232824, 0x00232722, 0x00252723, 0x00232420, 0x001e2119, 0x00191c12, 0x001a1d13, 0x001d1f14, 0x001d1f14, 0x001f2019, 0x0022231d, 0x00272824, 0x002b2c2a,
- 0x00323736, 0x003b3f3e, 0x00444548, 0x0046474c, 0x00464a4e, 0x00474a4e, 0x0045474a, 0x003f4240, 0x00323832, 0x002e2f2b, 0x00252a28, 0x001f242a, 0x00172126, 0x0022282b, 0x003a3a37, 0x007e7367,
- 0x00bb9678, 0x00ac7b5a, 0x00b7815a, 0x00b67e5a, 0x00b57f5f, 0x00ba8c5d, 0x00b78b5a, 0x00a07244, 0x00976638, 0x008d5e34, 0x008d5c3a, 0x008c5c41, 0x00835a49, 0x00684538, 0x0044241d, 0x003f2523,
- 0x00081c35, 0x00000518, 0x0005010b, 0x000c0002, 0x00060e00, 0x001f2516, 0x00303528, 0x003e3630, 0x003b362e, 0x00313b2a, 0x002e3827, 0x00353529, 0x00323226, 0x00313125, 0x002e2f23, 0x00292e20,
- 0x0025281e, 0x0024281e, 0x00252822, 0x00232926, 0x00202625, 0x001e2521, 0x001e2520, 0x001e2720, 0x001c281e, 0x001e261f, 0x00202522, 0x001e2321, 0x001f2320, 0x001f2522, 0x00212827, 0x00232828,
- 0x00202d2b, 0x001e2b29, 0x001d2728, 0x00192222, 0x00141f1a, 0x00121c16, 0x00151b16, 0x00151c16, 0x00111612, 0x00131811, 0x00131a16, 0x00111b19, 0x00121a17, 0x00121915, 0x000f1714, 0x000d1510,
- 0x000d110d, 0x000e130d, 0x0010140e, 0x0011150e, 0x00161911, 0x006f716e, 0x00fefefd, 0x00fefefd, 0x00f9f9f8, 0x00fefefd, 0x00fcfdfc, 0x00cecfce, 0x007c7c7c, 0x00595a59, 0x00101211, 0x00090a09,
- 0x00382412, 0x0068523d, 0x00765f47, 0x006e553d, 0x00544331, 0x0030271c, 0x0015110c, 0x00171613, 0x001d1a0d, 0x002c1c0e, 0x0058311d, 0x00823416, 0x004d280f, 0x0053392c, 0x00988679, 0x00c7afa2,
- 0x00b2896c, 0x00906743, 0x008d693c, 0x008f7643, 0x006c6231, 0x00796532, 0x008d7743, 0x00907944, 0x0083723c, 0x00786837, 0x0066542b, 0x00574624, 0x0057472f, 0x006d5e4b, 0x007e6f62, 0x0062544b,
- 0x0026200d, 0x001a0e01, 0x00413728, 0x005c5448, 0x00404338, 0x00585a51, 0x00b7b6b1, 0x00e2d8d7, 0x00e2d8d1, 0x00ddd7d0, 0x00dddbd1, 0x00d8d7cf, 0x00a2a39c, 0x0055534b, 0x00313123, 0x004e4a41,
- 0x006b6050, 0x00857061, 0x00907561, 0x00735238, 0x00572f11, 0x006f5a48, 0x00afa696, 0x00aaa192, 0x004e4942, 0x0013121a, 0x0010142c, 0x000f183f, 0x0018265b, 0x0026376a, 0x00223765, 0x00132c56,
- 0x00434964, 0x0082869c, 0x00c2c3ce, 0x00e8e6e7, 0x00d7d1c4, 0x00bcb2a2, 0x00ada292, 0x00c2b7a5, 0x00cdc6aa, 0x00c6bfa3, 0x00ccc6b6, 0x00d8d5de, 0x00dfe1e2, 0x00dbdedc, 0x00d2d5d3, 0x00d1d4d6,
- 0x00dce0ec, 0x009fa2b4, 0x002d3045, 0x0021243a, 0x00545c6b, 0x00a5abb4, 0x00d5d8dd, 0x00b0b1b5, 0x00656462, 0x005f5659, 0x0072646a, 0x0076646a, 0x00452c36, 0x004f323c, 0x0051343d, 0x00583844,
- 0x00705536, 0x006f5b3f, 0x0075664d, 0x00a39986, 0x00bab8b2, 0x00b6b8b5, 0x00b9bdbe, 0x00bbc0c4, 0x00b8bcc0, 0x00b0b2b7, 0x006f7275, 0x002a3239, 0x0013120b, 0x001b0e01, 0x002e1802, 0x00321601,
- 0x002b1100, 0x002c1b12, 0x002c2727, 0x00111829, 0x00021736, 0x000d2564, 0x00142a70, 0x00142a5e, 0x000d1d2f, 0x00010c13, 0x005c5f62, 0x00dedadd, 0x00fefafe, 0x00fffdfe, 0x00fffefd, 0x00fffffc,
- 0x00dbd7d4, 0x008f8e8e, 0x007b7e84, 0x009aa3ac, 0x006a7689, 0x003c4c65, 0x00324362, 0x00314467, 0x002b4163, 0x00283e62, 0x002c3e61, 0x0031415d, 0x00364662, 0x00364965, 0x00394d68, 0x003a506e,
- 0x003d5978, 0x003d5a7a, 0x00425d7f, 0x00425f81, 0x00426183, 0x003f6385, 0x003f6489, 0x003d6289, 0x00375f83, 0x00345e86, 0x00305b82, 0x00315e83, 0x00315d81, 0x00305c85, 0x002f5b83, 0x002f5c86,
- 0x00355684, 0x00305483, 0x00305788, 0x00376394, 0x004f7faf, 0x005f92c1, 0x00679ccd, 0x00679ccc, 0x00578db9, 0x005286b8, 0x005782b2, 0x006481b4, 0x00647ea2, 0x004b647f, 0x002c4252, 0x00263a43,
- 0x00293b43, 0x002a3a46, 0x002d3b4b, 0x002e3b59, 0x00313d62, 0x0033425e, 0x00384a58, 0x0041515d, 0x0047555c, 0x004c5558, 0x00515252, 0x0056534d, 0x005d5543, 0x0061593f, 0x00645a3c, 0x0065593a,
- 0x00685324, 0x00685322, 0x0069501f, 0x00644b1a, 0x005e4614, 0x005c4317, 0x005c411b, 0x00583f20, 0x004e3c23, 0x004b3b24, 0x00463728, 0x0041382c, 0x00433b31, 0x00423d36, 0x003c3a35, 0x00363833,
- 0x002c2e2b, 0x002f302b, 0x00302e2c, 0x00342f2a, 0x00342e2a, 0x0035302a, 0x003a3328, 0x00423829, 0x00533e24, 0x005f4225, 0x00674523, 0x00754e2a, 0x008c633f, 0x00a37c58, 0x00b08b69, 0x00a27f5f,
- 0x00867456, 0x00806644, 0x006d4f29, 0x00604119, 0x00503616, 0x00796c57, 0x00ebe7de, 0x00f9f9f9, 0x00fcfdfd, 0x00fff8fb, 0x00fffafa, 0x00fafcf7, 0x00fbfefd, 0x00fbfffa, 0x005b5b51, 0x0055503c,
- 0x005b5029, 0x00585323, 0x00515722, 0x00465d25, 0x003b662c, 0x003b6625, 0x003f6726, 0x00406528, 0x00456233, 0x00495b37, 0x0047533c, 0x00505849, 0x006b706b, 0x00828a87, 0x00939c9e, 0x009ba4aa,
- 0x007d95b5, 0x0061728f, 0x00566382, 0x00757e9b, 0x0097a0b3, 0x00a5b1be, 0x00abb8c2, 0x00abbbbc, 0x00aab3af, 0x00a9abaa, 0x00a0a4a6, 0x0095a1a4, 0x0092a39b, 0x00869a87, 0x00547051, 0x003e6133,
- 0x004e7236, 0x005a803f, 0x005c853d, 0x005b8434, 0x005b8735, 0x005a8241, 0x005d8448, 0x005d8341, 0x00648238, 0x006f8239, 0x006e7937, 0x00807a47, 0x00837e63, 0x0097988d, 0x00d1dfdf, 0x00cfe9f0,
- 0x00bed4c5, 0x00a68d88, 0x00ae6d6e, 0x00e78c92, 0x00ea9f9d, 0x00e9cec7, 0x00d7e8e8, 0x008cc4d6, 0x003f68a5, 0x005560bd, 0x004e5ac3, 0x004365c6, 0x003865c3, 0x003f6bbe, 0x001b4890, 0x00103c7f,
- 0x001a58a1, 0x002262af, 0x00467bb6, 0x008699b8, 0x006c4127, 0x00432013, 0x008f8089, 0x009ca9d0, 0x00719fec, 0x005a85cb, 0x00284780, 0x002f3a54, 0x009a9e98, 0x0096a0a2, 0x00546c7b, 0x00547e9d,
- 0x004d75b1, 0x004c6ba4, 0x00475d89, 0x00676e8c, 0x00918b8a, 0x008a8166, 0x006c6339, 0x005e5c22, 0x005e651f, 0x00606b27, 0x00607032, 0x005b733a, 0x005c773e, 0x0056783b, 0x00527635, 0x00547a37,
- 0x00507834, 0x00507832, 0x00527834, 0x00557732, 0x00577630, 0x0055752f, 0x0053742f, 0x00517330, 0x00507330, 0x00507231, 0x00517031, 0x00517032, 0x004e6f32, 0x004d6e31, 0x004c6b2f, 0x004c6b2f,
- 0x004b682d, 0x004a682b, 0x004a672b, 0x0049662a, 0x00476529, 0x0047652a, 0x0046632b, 0x00446329, 0x0044612b, 0x00425f27, 0x004b5b30, 0x00c9c7b0, 0x00f1fffd, 0x00f6ffff, 0x00f7fdfa, 0x00fdfcf2,
- 0x00fafafb, 0x00a8c1ea, 0x005080c5, 0x00417ed4, 0x003b6dbc, 0x00366bb6, 0x002f69b4, 0x002f65b3, 0x003265b4, 0x003165b4, 0x002f61b1, 0x00295aa9, 0x00204f9f, 0x001b4899, 0x001d499a, 0x00204b9c,
- 0x001c4c9e, 0x002051a2, 0x002456a5, 0x003668b4, 0x002d5fa9, 0x00285aa4, 0x002a5ca7, 0x003062ae, 0x003768b7, 0x00386abb, 0x003a6bbd, 0x003768b8, 0x003468b5, 0x003468b4, 0x003668b4, 0x003769b5,
- 0x003266b0, 0x003669b2, 0x003466ae, 0x003366b0, 0x002d5ea7, 0x00294f9a, 0x00566297, 0x0095767d, 0x00b3652d, 0x00c18a42, 0x00ba9f4d, 0x00b7be66, 0x00c6ce7a, 0x00dad295, 0x00e2d3ae, 0x00e5dbcd,
- 0x00e2dce5, 0x00e5dde0, 0x00ebe0dd, 0x00cfc2b5, 0x00a8987b, 0x009d8a63, 0x009c8758, 0x0099814d, 0x0090763d, 0x00866a32, 0x00795b24, 0x00775b25, 0x00877049, 0x00907e66, 0x008a7f79, 0x007e7783,
- 0x00787a9b, 0x007b7ea4, 0x00767ea7, 0x007983ac, 0x00808db2, 0x008e94b6, 0x009c9ec0, 0x008c8eb1, 0x00797b9d, 0x007c7ea2, 0x007d7ca1, 0x00777598, 0x006b6c8a, 0x00676881, 0x006d6f85, 0x0075798d,
- 0x008d8193, 0x007c798e, 0x00505772, 0x001d2e50, 0x00062047, 0x00152e53, 0x004f607f, 0x0099a1b8, 0x00c2bbbb, 0x00beaba4, 0x00c1b0a3, 0x00cdcbb6, 0x00b8bec3, 0x00747c9f, 0x003c4e84, 0x00314a90,
- 0x00274997, 0x002c4f9b, 0x00365ea0, 0x00537bbd, 0x00739adc, 0x0085a3d0, 0x00bbd0eb, 0x00eef8fe, 0x00fbf9f9, 0x00fefdf8, 0x00fffbf6, 0x00fdfdfa, 0x00b1b6ba, 0x003a3f42, 0x00232628, 0x00373739,
- 0x00424849, 0x00434b4b, 0x0042474a, 0x003d4245, 0x00363d3d, 0x00313838, 0x002c3133, 0x00252b2d, 0x001c2324, 0x00181f21, 0x0016191d, 0x0014161b, 0x0012161b, 0x0013161c, 0x0017181e, 0x00191a20,
- 0x00171c1f, 0x001a1c22, 0x001a1c21, 0x00202029, 0x001e1f23, 0x004c2923, 0x008c4535, 0x00a43328, 0x00ad330f, 0x00b63e11, 0x00c84c19, 0x00d64e2c, 0x00a2655d, 0x00727289, 0x003d5e95, 0x002146a0,
- 0x00344f90, 0x005974ac, 0x009bb6dd, 0x00bbd3f4, 0x00c1d5f2, 0x00a2b2d5, 0x007986ae, 0x008c97c5, 0x00b4c5e8, 0x00b8c6ef, 0x00a3b4de, 0x006d85b7, 0x0044689f, 0x00466ea2, 0x005078ab, 0x005881aa,
- 0x006180a7, 0x005f7ba0, 0x00647fa6, 0x006182ae, 0x004f78ad, 0x004b75a5, 0x00547eaa, 0x006992c0, 0x0092b5dc, 0x00a3c4e4, 0x009db9dd, 0x008097ba, 0x006e8093, 0x007c8d96, 0x00a7b5bb, 0x00d4e0df,
- 0x00fbe9da, 0x00fcede4, 0x00efe1e0, 0x00d6d0d6, 0x008d95aa, 0x005d7092, 0x003d5988, 0x0031568f, 0x003969ae, 0x004074c0, 0x003f6eb8, 0x0027478c, 0x00123073, 0x003a5c9f, 0x004a6eb2, 0x00496eb5,
- 0x00416cb3, 0x003e68b1, 0x00406cb3, 0x003f6fb3, 0x00406fb7, 0x004271bf, 0x00416fc2, 0x003e6dc2, 0x003f6ec3, 0x00416fc4, 0x004573c8, 0x004978cd, 0x004a78cd, 0x004674ca, 0x004472c7, 0x004371c7,
- 0x00899ec2, 0x00b6bcd2, 0x00d6cdd5, 0x00dcc1b9, 0x0088675f, 0x007c656f, 0x00a6a2bb, 0x0099a8d0, 0x004d78ac, 0x003568a3, 0x007198c5, 0x00d4d8e8, 0x00f3f8fc, 0x00f9feff, 0x00fcfbfc, 0x00fffeff,
- 0x00e8e7e8, 0x008c8a90, 0x0033303e, 0x003f3d51, 0x00414059, 0x0048464e, 0x00504c59, 0x00464266, 0x001c244c, 0x00061234, 0x00001031, 0x00182e5a, 0x0014297d, 0x00162d85, 0x000e2574, 0x001f3874,
- 0x00927f9b, 0x00c7b7d2, 0x00c7b9d5, 0x00c8bdd8, 0x00d2c9e4, 0x00cec9e2, 0x00d1cbe4, 0x00d1c9e3, 0x00d0c5dd, 0x00d3c8e1, 0x00d9cdea, 0x00dcd2ee, 0x00dbd2ed, 0x00d5cce7, 0x00d7ceea, 0x00ded8f2,
- 0x00ded6f0, 0x00dcd1ee, 0x00dcd1ed, 0x00ddd3ef, 0x00ddd3f1, 0x00e6d4e7, 0x00ead6d8, 0x00ead9c7, 0x00ddccc7, 0x00eed4e9, 0x00f8d4f2, 0x00f3a7be, 0x00f1613b, 0x00ed5a34, 0x00f87a5e, 0x00feb8b9,
- 0x00f9f3fb, 0x00e5fafd, 0x00e4fdf8, 0x00f1f4e9, 0x00ed9585, 0x00e2827c, 0x00fed3d8, 0x00e5dced, 0x0095b1b7, 0x0094938d, 0x00968682, 0x00a2999f, 0x00ccc3ca, 0x00f0e8eb, 0x00fcf5fa, 0x00fff9fe,
- 0x00fbf2fd, 0x00faf2fe, 0x00f6ecfa, 0x00eee5f8, 0x007e788e, 0x0016151f, 0x000b0c0f, 0x00494859, 0x008f87aa, 0x009b92bb, 0x00a49bc2, 0x00b0a7c8, 0x00c1b9d4, 0x00c7bedb, 0x00ccc3e4, 0x00ccc2ea,
- 0x00b0b2a9, 0x001a1c11, 0x001c1c12, 0x001d1d14, 0x001e2219, 0x001a2016, 0x001b2219, 0x001d251c, 0x00212924, 0x001f2820, 0x00202721, 0x0021261e, 0x001d211d, 0x001a1f1a, 0x001d211e, 0x00222622,
- 0x00202821, 0x00202720, 0x00202720, 0x001f261f, 0x00202520, 0x00202220, 0x001d1d1d, 0x00191915, 0x00161812, 0x00191b13, 0x001b1d12, 0x001c1d11, 0x001f1f17, 0x0022221e, 0x00272726, 0x002c2c2e,
- 0x00373838, 0x003b3c3c, 0x00404144, 0x0044454a, 0x0044474b, 0x00414346, 0x00454649, 0x003b3d3c, 0x00353732, 0x0034362f, 0x00242820, 0x001d271d, 0x003c4645, 0x00767f7c, 0x00afafac, 0x00ccc5b9,
- 0x00c6a582, 0x00ad8057, 0x00af7c4f, 0x00be8658, 0x00c68f63, 0x00c8905f, 0x00b3794d, 0x009e663b, 0x00905d3b, 0x0085593f, 0x00825c4c, 0x00775850, 0x006b535b, 0x004f3c4d, 0x003c2d45, 0x00352a47,
- 0x00101f30, 0x00190d18, 0x0026060e, 0x00240400, 0x000a0900, 0x00132209, 0x003c4639, 0x00463b39, 0x0055433a, 0x00474734, 0x00444732, 0x0048412d, 0x0048432d, 0x0046422c, 0x00453f2c, 0x00433d29,
- 0x003d3c27, 0x00393927, 0x0039372d, 0x00393731, 0x00343230, 0x002d302a, 0x002b3028, 0x002c3127, 0x002f322e, 0x002e322c, 0x002c322c, 0x0027302b, 0x002a2e2c, 0x00292d2e, 0x002a2e30, 0x002a2e2e,
- 0x00222c2c, 0x00202c2b, 0x00202b2b, 0x001d2726, 0x001c2421, 0x0018201c, 0x00181e1a, 0x00161e17, 0x00191c1b, 0x00191e18, 0x00171f1a, 0x00151f1c, 0x00171f1b, 0x00171e1a, 0x00131b18, 0x000f1813,
- 0x00131511, 0x00131711, 0x00141912, 0x00151a12, 0x001a1d14, 0x0071726f, 0x00fdfdfe, 0x00fdfeff, 0x00fbfcfc, 0x00fefeff, 0x00fbfcfc, 0x00cacccc, 0x007c7c7c, 0x005a5a5a, 0x00070707, 0x00030202,
- 0x002c1e0c, 0x005a472f, 0x00735c46, 0x00614931, 0x00413022, 0x001e170c, 0x00080504, 0x00161410, 0x00261d13, 0x002d1e0d, 0x00563824, 0x00744124, 0x007c5748, 0x00a18b81, 0x00e2d6d2, 0x00efe8e3,
- 0x00cfbdaf, 0x00ab8f79, 0x009c7d61, 0x00907756, 0x007a764d, 0x00807443, 0x008a7a47, 0x00877745, 0x00806e40, 0x006f5e34, 0x004e3e1b, 0x00322406, 0x00372a15, 0x004f4131, 0x005f5047, 0x0053433e,
- 0x00291906, 0x00160d00, 0x00201d0f, 0x00303126, 0x001d1c18, 0x001f211c, 0x00757d75, 0x00b5c2b9, 0x00ccd1cc, 0x00d1d3cd, 0x00d9d9d2, 0x00c7c9ba, 0x0087867f, 0x003b382d, 0x001d1a11, 0x002f2720,
- 0x00453929, 0x0064503e, 0x007e644d, 0x006a4733, 0x00683f25, 0x00836a53, 0x0092886d, 0x00888066, 0x00524f3a, 0x001c1c14, 0x0013171d, 0x00182035, 0x00162247, 0x0016254c, 0x001a2b50, 0x002a3f5e,
- 0x00757a89, 0x007e7e8f, 0x00a6a3ac, 0x00e3e0df, 0x00dbd0c3, 0x00c9bda3, 0x00c5b896, 0x00d7caa6, 0x00e1d4b0, 0x00d9cbab, 0x00d3c9b3, 0x00d7d0d2, 0x00e1ded9, 0x00dedbd4, 0x00d5d3ca, 0x00d9d7d7,
- 0x00d2d3e6, 0x007f839c, 0x003c3f5e, 0x004e556e, 0x00424a5b, 0x004f5c73, 0x009fa8c3, 0x00abb1ca, 0x00494d61, 0x00242536, 0x0045404f, 0x00504a52, 0x0037292c, 0x00413230, 0x00503d3b, 0x0054403d,
- 0x006d5433, 0x00705c41, 0x007d6d57, 0x00a59a8b, 0x00b6b5b3, 0x00b3b6b6, 0x00b3b8ba, 0x00b7bec1, 0x00bbb7bd, 0x00b6b2b4, 0x00847f7f, 0x0037312b, 0x00140300, 0x00291100, 0x004c2e11, 0x005d3818,
- 0x0043220a, 0x00230b03, 0x001b0f0d, 0x00100f18, 0x0008142b, 0x0010245e, 0x00172d73, 0x00182e60, 0x00121b31, 0x0000060f, 0x00595c5d, 0x00ddd9d9, 0x00fffcff, 0x00fefbfd, 0x00fffdfd, 0x00fdfdf8,
- 0x00dad8d3, 0x008d8d8b, 0x00808388, 0x009da5af, 0x006d798d, 0x0036465f, 0x002d405d, 0x002b3f5f, 0x00263a5d, 0x00273b5e, 0x002b3b5f, 0x00303e5b, 0x00354463, 0x00374968, 0x003a4f6e, 0x003d5474,
- 0x00415c7f, 0x00416084, 0x0043638a, 0x0042648c, 0x00446790, 0x003f6990, 0x003d6990, 0x003c6890, 0x003b6690, 0x00386590, 0x0035638f, 0x002f628a, 0x002c5c88, 0x002b5d89, 0x00306091, 0x002d5e8e,
- 0x002e5e7c, 0x0038688d, 0x005586b1, 0x0076abdc, 0x0086bdf5, 0x007bb7f4, 0x005f9de5, 0x004888d7, 0x003772c7, 0x002863b8, 0x002a5db2, 0x004971c6, 0x007396dd, 0x007fa1d9, 0x00607da7, 0x003e5877,
- 0x00284251, 0x00294252, 0x002b4156, 0x002a405a, 0x002e4465, 0x002e4562, 0x00314862, 0x003a4f65, 0x00485565, 0x004d565e, 0x00535758, 0x0055564e, 0x005e5643, 0x0061563d, 0x0063573b, 0x0064583a,
- 0x00685423, 0x0069531e, 0x006a4f19, 0x00684b15, 0x00644710, 0x00604210, 0x005c4011, 0x00573f19, 0x00583e27, 0x00543d27, 0x004d3a29, 0x00463a2c, 0x00493e33, 0x00484138, 0x00423e38, 0x00393a33,
- 0x00353534, 0x0033342f, 0x0035332f, 0x0037342d, 0x003e3933, 0x00413a30, 0x00423626, 0x00493a24, 0x005b3e25, 0x00724d2d, 0x009a7047, 0x00ba8c5f, 0x00d2a276, 0x00cfa176, 0x00bf936a, 0x00b38860,
- 0x00a3875f, 0x00a28155, 0x00947042, 0x007b5728, 0x00674925, 0x008f8066, 0x00f4eee1, 0x00fcfaf8, 0x00fdfbff, 0x00fef8fd, 0x00fffcfd, 0x00f9fdf8, 0x00fbfefd, 0x00fafdf9, 0x00505347, 0x00555640,
- 0x005f5931, 0x00585624, 0x0050561f, 0x00495e25, 0x003d642d, 0x00396325, 0x003e6627, 0x00416529, 0x004a5d32, 0x00545e3b, 0x00545940, 0x00515340, 0x005c5e58, 0x00686e6b, 0x007a8185, 0x007e888f,
- 0x00536c89, 0x002c3a59, 0x00323657, 0x00535170, 0x0086869e, 0x00929dab, 0x0097a8af, 0x009eafb2, 0x00abafb2, 0x00b2b0b2, 0x00b4b2b4, 0x00adb7b9, 0x00aab7b1, 0x0091a798, 0x005f7960, 0x0041613a,
- 0x004d7537, 0x0055803c, 0x005e843d, 0x005c8637, 0x0067863a, 0x005a8846, 0x00568646, 0x0055843d, 0x00628539, 0x00698134, 0x00707732, 0x00736a30, 0x00735d3f, 0x00817062, 0x00d9cdcc, 0x00edebf2,
- 0x00cfece0, 0x00ad9e99, 0x0094595f, 0x00ac4b58, 0x00a75d67, 0x00d6c6c5, 0x00bcdde2, 0x0074b3c9, 0x00365fa7, 0x00515dc4, 0x004658ca, 0x002468ca, 0x004465ae, 0x0029478c, 0x0018387a, 0x001d569d,
- 0x00226eb1, 0x00266090, 0x007596b2, 0x007e8083, 0x004c311c, 0x004a2f29, 0x00ada1ae, 0x008f99c5, 0x005276ca, 0x0016347e, 0x00132057, 0x00443a4f, 0x00b2938e, 0x00a19195, 0x005f6072, 0x004d6385,
- 0x003154b4, 0x002d48a6, 0x0037499a, 0x00303b7c, 0x00484e5d, 0x0047513b, 0x0053612c, 0x00617528, 0x00637c26, 0x005d7b27, 0x0058782a, 0x00527532, 0x00537735, 0x00537838, 0x00547937, 0x00557a37,
- 0x004f7834, 0x00507932, 0x00537833, 0x00557631, 0x00557530, 0x00557431, 0x00547530, 0x00537530, 0x00527331, 0x00517331, 0x00517132, 0x00517133, 0x004e7032, 0x004d6e31, 0x004c6b2f, 0x004c6b2f,
- 0x004e6a2f, 0x004c6a2d, 0x004b692b, 0x0049672b, 0x0048662b, 0x0048652c, 0x0046632b, 0x00436329, 0x0044602d, 0x00416028, 0x00556539, 0x00d3ceb7, 0x00f5ffff, 0x00f8ffff, 0x00f9fcfb, 0x00fefbf3,
- 0x00f6fafc, 0x0097b6de, 0x004d80c4, 0x003774c8, 0x003867b8, 0x003669b8, 0x002e65b3, 0x002e63b3, 0x003564b8, 0x003162b4, 0x00295bac, 0x002253a4, 0x001c4c9e, 0x001a489b, 0x001e4c9e, 0x002251a1,
- 0x002958ae, 0x002052a4, 0x002558a6, 0x00396bb7, 0x002d5ea8, 0x002759a3, 0x002e60aa, 0x003468b2, 0x003868b9, 0x003768b9, 0x00396abc, 0x003668b8, 0x003467b5, 0x003165b3, 0x003466b3, 0x003568b4,
- 0x003567b2, 0x003567b0, 0x003465ae, 0x002f62a9, 0x003264ae, 0x00315c9e, 0x00626e9b, 0x00946b6e, 0x00aa612b, 0x00af7f3b, 0x00b19d52, 0x00acb566, 0x00bec97c, 0x00ced098, 0x00e3dcbe, 0x00eadcda,
- 0x00e0e1ed, 0x00e6e4ec, 0x00f2ecef, 0x00f3eae7, 0x00d7cab9, 0x00b4a588, 0x0098865f, 0x00907b4d, 0x00917447, 0x007b5c2d, 0x006b4b1a, 0x00775b2b, 0x00987e61, 0x00927e73, 0x0083757c, 0x007b728b,
- 0x0077779c, 0x007476a0, 0x00797da9, 0x006f749e, 0x00616a8e, 0x006d7292, 0x008186a4, 0x00787d9c, 0x005f6186, 0x005e6287, 0x00696d93, 0x0063678d, 0x00565b7f, 0x005b6081, 0x006f7391, 0x00787c98,
- 0x00887e9a, 0x006a688a, 0x00363c66, 0x000c1a49, 0x00061d4f, 0x00152a54, 0x00475578, 0x008f94ad, 0x00bfb0b8, 0x00b39c9a, 0x00b1a098, 0x00bcc5b0, 0x00b9c4d1, 0x007b8cb3, 0x003a4f8f, 0x002e4897,
- 0x00224a9a, 0x00214998, 0x002b57a0, 0x00416cb3, 0x006a94de, 0x0086a3d1, 0x00c2d4ef, 0x00eff8fc, 0x00fef8fa, 0x00fffdf8, 0x00fefbf4, 0x00fafbf7, 0x00b9bec2, 0x005b5e63, 0x005b5a5e, 0x007f7b7f,
- 0x00939798, 0x009fa5a4, 0x00a0a5a6, 0x009ca1a2, 0x009aa0a0, 0x00999e9e, 0x0097999c, 0x00949799, 0x00919697, 0x008e9395, 0x008d9093, 0x008c8e91, 0x008a8d91, 0x008a8d91, 0x008b8d91, 0x008c8f92,
- 0x008e9195, 0x008d9194, 0x00909195, 0x00909195, 0x008f9195, 0x00a1998d, 0x00bea195, 0x00d59697, 0x00d79d96, 0x00d7a28d, 0x00dfa38c, 0x00e79f8f, 0x00d1afa6, 0x00b8b8bd, 0x00a3b0c7, 0x009ca0ce,
- 0x0092a7ca, 0x00a7bad7, 0x00c9daea, 0x00d7e4ed, 0x00d6e1e7, 0x00c4cbd9, 0x00c6ccdc, 0x00d7dbf2, 0x00dbe1f3, 0x00cad2df, 0x00b4bdd1, 0x009fa9c5, 0x009eaeca, 0x009fb3d2, 0x00a4b9d7, 0x00aabcd6,
- 0x00adbdc7, 0x00b3bec9, 0x00bbc3d4, 0x00b6c2d8, 0x00a7bcda, 0x00a1b8d0, 0x00abbfd7, 0x00bfd0ea, 0x00d7e5fb, 0x00e0eefe, 0x00dde7f6, 0x00c6d0db, 0x00b6bbbf, 0x00c1c7c4, 0x00dde0dd, 0x00eff1ea,
- 0x00f1ede1, 0x00efeee5, 0x00e9e8e4, 0x00d7d8d7, 0x00b7bec7, 0x00a2afbe, 0x009cadc2, 0x0098aec8, 0x009cb5d8, 0x00a0b8dc, 0x00a0b6d8, 0x008fa1c1, 0x00899cbd, 0x0099abcd, 0x00a7b9db, 0x00a2b6d8,
- 0x009db7d9, 0x009bb5d6, 0x009db6d9, 0x009cb7db, 0x009cb8db, 0x009ebbd6, 0x009dbcd1, 0x009bbcd1, 0x009dbdd3, 0x009dbdd2, 0x009ebed3, 0x00a1c0d5, 0x00a1c1d5, 0x00a0bfd4, 0x009fbed4, 0x009fbed5,
- 0x00d5dae0, 0x00dbd2d3, 0x00e8cbc7, 0x00dbb3a7, 0x009a6d68, 0x00826869, 0x00c3bac7, 0x00d0daf8, 0x00799ed6, 0x004675b4, 0x005a7db2, 0x00bbc4d8, 0x00f4fafc, 0x00fafcfc, 0x00f9f9fb, 0x00fffcff,
- 0x00efeded, 0x009b999e, 0x00444051, 0x0054526b, 0x006b698e, 0x00797a91, 0x007b7c9b, 0x0061639b, 0x0022286f, 0x0004114c, 0x00061b53, 0x00112c65, 0x00162e90, 0x000f288c, 0x000d2789, 0x000e2a79,
- 0x00776483, 0x00beadc9, 0x00cebfda, 0x00ccc0d9, 0x00d0c7e0, 0x00cfc8e1, 0x00cdc7de, 0x00cdc5dc, 0x00d2c6e1, 0x00d7cbe7, 0x00dbd0ed, 0x00d9d0eb, 0x00d8cdea, 0x00d7cbe8, 0x00dbd1ed, 0x00e0d8f4,
- 0x00dcd5f0, 0x00d9d2ec, 0x00dfd3ee, 0x00dacfee, 0x00dcd2ee, 0x00e7cde4, 0x00ebc7d0, 0x00f7dac7, 0x00f5e2db, 0x00f3e2f2, 0x00f6d9f7, 0x00e4a8c0, 0x00ea6638, 0x00e7662d, 0x00f37a56, 0x00fcafb2,
- 0x00efeefb, 0x00e4fafb, 0x00eafbf6, 0x00f0eadb, 0x00f38f7c, 0x00ed8881, 0x00f3cccf, 0x00b4abbc, 0x002c444f, 0x002d2a20, 0x0036281a, 0x00392f2b, 0x005f5153, 0x00968b8b, 0x00dcd2d8, 0x00f9f1f9,
- 0x00faf3fc, 0x00f6f0fb, 0x00f9f1ff, 0x00f2e9fc, 0x00a8a0ba, 0x002d2a33, 0x00100f16, 0x00585568, 0x00958ab4, 0x009b91bd, 0x00a49bc4, 0x00aca4c5, 0x00c2b9d6, 0x00c7bcdb, 0x00c9bee0, 0x00c9bee4,
- 0x00afb2ac, 0x0014190f, 0x0016190f, 0x00181a10, 0x001b2017, 0x00181e15, 0x001c221a, 0x001f261f, 0x00212821, 0x00202721, 0x001f261e, 0x001c231d, 0x00191f19, 0x00181d1a, 0x001b201b, 0x001f231e,
- 0x001b221d, 0x001b221d, 0x001c221d, 0x001b221c, 0x001c211f, 0x001d1e1e, 0x00191917, 0x00151510, 0x0012150b, 0x0016190e, 0x00171a0c, 0x001a1c10, 0x00202119, 0x00232320, 0x00292928, 0x0030302f,
- 0x00363636, 0x003b3b3c, 0x003e3f41, 0x00424348, 0x00414349, 0x0043454a, 0x003f4143, 0x00454646, 0x003a3a37, 0x002c2c29, 0x003b4038, 0x0070786d, 0x00b3bdbc, 0x00dee5e4, 0x00f5f8f5, 0x00e3dfd5,
- 0x00bca287, 0x00c89f7f, 0x00d4a77a, 0x00d2a274, 0x00c79a68, 0x00b88157, 0x00a86e4a, 0x009a6443, 0x008a5d45, 0x007f5849, 0x00735550, 0x005d494e, 0x004e4359, 0x00494460, 0x00525173, 0x004a4b73,
- 0x004c4448, 0x00683a3e, 0x0071322e, 0x00642215, 0x00151401, 0x000f1b07, 0x003e473a, 0x00544443, 0x0063473f, 0x00564f37, 0x00575437, 0x005f4f36, 0x005f5035, 0x005d5232, 0x005a502f, 0x00584f2c,
- 0x00554d2f, 0x00524930, 0x00504633, 0x004d4339, 0x00473c35, 0x003c3832, 0x0036382d, 0x0035382d, 0x00353730, 0x00363730, 0x00333931, 0x00313631, 0x00323635, 0x00313537, 0x002e3637, 0x002e3536,
- 0x00263230, 0x00263130, 0x00242e2e, 0x00212b2a, 0x001d2523, 0x001c231f, 0x001a201c, 0x001a201c, 0x001d221d, 0x001e231d, 0x001c221e, 0x0018211e, 0x0019211e, 0x0018201c, 0x00141c19, 0x00121916,
- 0x00151814, 0x00181c17, 0x00191e17, 0x001a1e17, 0x001f221a, 0x00737572, 0x00fdfdfd, 0x00fdfefe, 0x00fbfbfc, 0x00ffffff, 0x00fcfcfc, 0x00cdcece, 0x007b7c7c, 0x005a5a5a, 0x00050505, 0x00000000,
- 0x00180e05, 0x00473626, 0x0067523f, 0x00543e2a, 0x00332515, 0x00191309, 0x00050200, 0x00120e0a, 0x001d1105, 0x002e190a, 0x006d533d, 0x009f806b, 0x00c2a59f, 0x00d8c8c4, 0x00ebe5e6, 0x00dee2e2,
- 0x00d7d1cd, 0x00dfc4bf, 0x00c5a496, 0x00957762, 0x00766f4b, 0x00847651, 0x00897b52, 0x0084774f, 0x007f724b, 0x00615431, 0x0034280a, 0x00281d03, 0x00362b19, 0x00302517, 0x00251a12, 0x00221713,
- 0x00281606, 0x00211808, 0x000e1002, 0x000c0e06, 0x000b0704, 0x00090503, 0x00272e2a, 0x0063746a, 0x00adbfb4, 0x00ced0c9, 0x00cac7c0, 0x00a3a69b, 0x00635d55, 0x002b251b, 0x00181305, 0x00201508,
- 0x002f210d, 0x004b3325, 0x005d4331, 0x005c3e2b, 0x0062442a, 0x0079624a, 0x007c7153, 0x006f6847, 0x00555335, 0x00292816, 0x0011120f, 0x001b1f29, 0x00252c43, 0x001b253c, 0x00233244, 0x0040515f,
- 0x005a5c65, 0x00494451, 0x00837d85, 0x00ebe1e4, 0x00ded1c3, 0x00d6c7aa, 0x00d0c4a0, 0x00d7cba2, 0x00ddd0ac, 0x00dccdb0, 0x00dbd0bf, 0x00dad4d5, 0x00e1ddd3, 0x00dedbce, 0x00d4d3ca, 0x00dadada,
- 0x00c6c7e2, 0x00737399, 0x0044486d, 0x00616584, 0x003e4852, 0x002e3856, 0x005e688a, 0x00777ca0, 0x003a425c, 0x00151b31, 0x001f2134, 0x00343741, 0x00292728, 0x00312c26, 0x0041382f, 0x00483d31,
- 0x00685033, 0x006a5540, 0x006e5f50, 0x008d857c, 0x009c9e9e, 0x00a7adab, 0x00b4b8b8, 0x00bdbdbe, 0x00b4afab, 0x00b7aca8, 0x008f8179, 0x004e3328, 0x002f1102, 0x00573317, 0x007b5738, 0x0087613c,
- 0x005c3b1f, 0x00291104, 0x000f0202, 0x00050307, 0x00131a2b, 0x0018295b, 0x001b306b, 0x001c2d58, 0x0010172a, 0x0003080e, 0x00606160, 0x00e0dbda, 0x00fffcfe, 0x00fffcfc, 0x00fffdfb, 0x00fefff9,
- 0x00d9d7d3, 0x008e8c8e, 0x0083848b, 0x009ea4b1, 0x006c7887, 0x00334457, 0x002b3e53, 0x002a3c55, 0x00253850, 0x00283856, 0x002d3b57, 0x00323f5a, 0x00374561, 0x00384969, 0x003b5070, 0x003f5776,
- 0x00405c7f, 0x00436287, 0x0044668d, 0x0043688f, 0x00466c95, 0x00416d95, 0x003c6a94, 0x003c6995, 0x00396891, 0x00376791, 0x00356890, 0x002e608d, 0x00285b87, 0x002c5e8a, 0x002a5c8b, 0x002a5c8b,
- 0x003c728e, 0x00659bbf, 0x0088c2eb, 0x0088c4f9, 0x0072b0f6, 0x005697e7, 0x00387bd2, 0x002669c7, 0x001e5cc0, 0x001754bd, 0x00184db5, 0x002655ba, 0x00507dd3, 0x007fa8f3, 0x0099bef3, 0x0091b4e1,
- 0x007b9bbc, 0x006686a7, 0x00456383, 0x0034526f, 0x00264465, 0x00224063, 0x002f486e, 0x003a5173, 0x00415267, 0x00495561, 0x00525a5b, 0x0052554e, 0x005e5643, 0x005f553d, 0x0060553b, 0x00615539,
- 0x00655021, 0x0068501e, 0x006a4e1a, 0x00694c16, 0x00684912, 0x00644411, 0x005e4011, 0x005b3e17, 0x005a3e24, 0x00593f29, 0x00503b29, 0x004b3d2f, 0x004c3f36, 0x004c433d, 0x0046413c, 0x003f3c39,
- 0x003a3a36, 0x003a3734, 0x00373631, 0x003c3731, 0x003e3a33, 0x0044392b, 0x004a3b27, 0x0056422a, 0x006e4c2f, 0x00986e4b, 0x00cc9e72, 0x00dcaa7b, 0x00d7a375, 0x00bb8a5d, 0x009e6e42, 0x0096683c,
- 0x00957044, 0x00956b3c, 0x008d6332, 0x00845827, 0x00775830, 0x009d8b6f, 0x00f4f0e1, 0x00fdfdfa, 0x00fcfcfe, 0x00fefafe, 0x00fefcfc, 0x00fcfffb, 0x00fbfefd, 0x00f7fbf7, 0x004e5347, 0x00565942,
- 0x0067633b, 0x005d5d2a, 0x00525921, 0x00475c23, 0x003a612b, 0x003b6528, 0x00436a2b, 0x00446427, 0x004d5e2f, 0x00555b35, 0x00525634, 0x00534f37, 0x00454436, 0x003a3d36, 0x003f4944, 0x004a5958,
- 0x00284250, 0x00222c3c, 0x00242237, 0x004d4055, 0x0075747f, 0x006f7d7f, 0x00657b77, 0x006b837a, 0x008e9690, 0x00a4a39f, 0x00aba9a6, 0x00abb8b3, 0x00a8b9ad, 0x008da58f, 0x00637f5f, 0x004a6d3f,
- 0x0052783c, 0x005a8140, 0x005c7f37, 0x00628237, 0x00678136, 0x005d8440, 0x005b8849, 0x005b8945, 0x005e8435, 0x00678136, 0x00727b33, 0x00726b31, 0x00715735, 0x007b634f, 0x00c4aea5, 0x00f3e5e4,
- 0x00d5edf4, 0x00c3c0c8, 0x00bea7b2, 0x00cda0af, 0x00b393a3, 0x00adb0be, 0x0065829d, 0x005285ab, 0x003564b3, 0x004567ca, 0x003465cc, 0x00266ecf, 0x003a5a9d, 0x002e4381, 0x0035528e, 0x003166ac,
- 0x0029689d, 0x00557690, 0x008c9799, 0x00675a4c, 0x003a2f26, 0x00493937, 0x00706874, 0x00545f85, 0x004a6aa3, 0x002d3f71, 0x00353552, 0x00795c5e, 0x00bf8f7b, 0x00aa8679, 0x00857570, 0x0074787f,
- 0x003956a7, 0x0024398b, 0x00283c84, 0x0023316f, 0x00334355, 0x00536656, 0x00607b47, 0x00638133, 0x005c7f31, 0x00557a31, 0x0050772f, 0x00517734, 0x00507734, 0x00537937, 0x00527a33, 0x00537a35,
- 0x00507831, 0x00527831, 0x00537833, 0x00547631, 0x00537531, 0x00557432, 0x00547631, 0x00557632, 0x00527431, 0x00527331, 0x00517232, 0x00517334, 0x004f7033, 0x004e6e32, 0x004c6c30, 0x004d6b30,
- 0x004e6c2f, 0x004c6b2d, 0x004a692b, 0x0049682a, 0x0049662c, 0x0049652d, 0x0047632c, 0x0045622a, 0x0042602a, 0x0043602a, 0x005f6a40, 0x00ded2c1, 0x00f7fefc, 0x00f9ffff, 0x00f9fcfa, 0x00fffaf5,
- 0x00f8fcfb, 0x0090b0d8, 0x004679bd, 0x002f6dc2, 0x00325eb1, 0x002d5fb0, 0x002c61b2, 0x003164b6, 0x003162b4, 0x002a5bac, 0x002355a6, 0x001f50a2, 0x001d4ea0, 0x001f4ea1, 0x002352a4, 0x002656a6,
- 0x002657ac, 0x002657a9, 0x002a5cab, 0x003e71bc, 0x003a6cb6, 0x003a6bb5, 0x003b6cb7, 0x003c6eb9, 0x003567b7, 0x003466b7, 0x003767b8, 0x003b6cbc, 0x00386ab9, 0x003264b3, 0x003063b0, 0x003467b2,
- 0x00376ab3, 0x003869b5, 0x003363af, 0x002c5da4, 0x002d5da7, 0x003b66a5, 0x00717ca5, 0x00996a70, 0x009c5726, 0x009b7238, 0x00998c4e, 0x009e9f63, 0x00b6c182, 0x00cdd2a2, 0x00e4e2c9, 0x00f3e1e3,
- 0x00e2e3f1, 0x00edebf5, 0x00f0edf1, 0x00f9f3f0, 0x00f8eedf, 0x00eee0c8, 0x00c0ae8e, 0x009b8562, 0x00856a3e, 0x0076592b, 0x006f5124, 0x007e623a, 0x00806950, 0x007e6962, 0x00908089, 0x00a59cb0,
- 0x008c8caf, 0x00717198, 0x006c7097, 0x00656a8e, 0x004e5676, 0x00585e7b, 0x006e7593, 0x00727999, 0x006b6f95, 0x0070759c, 0x00757aa2, 0x006c729b, 0x006c729b, 0x00757ca4, 0x007a83a8, 0x00737ca0,
- 0x00645f89, 0x003e3f6e, 0x00121b4c, 0x00011149, 0x00061e52, 0x00142859, 0x00354269, 0x0077799a, 0x00b2a6b1, 0x00b9a5ab, 0x00b4a8a8, 0x00b0beb8, 0x00a7b7ce, 0x00738ab7, 0x00345090, 0x00244492,
- 0x001c4696, 0x001e4896, 0x00255396, 0x003861a8, 0x00628bd4, 0x008fabd9, 0x00cde1f9, 0x00f2fafd, 0x00fefcfe, 0x00fffef9, 0x00fcfbf3, 0x00fafdf7, 0x00c4cbce, 0x00767a7f, 0x008e8b90, 0x00c0b7bd,
- 0x00e1e5e4, 0x00f1f4f4, 0x00f0f4f5, 0x00eef3f3, 0x00f1f3f4, 0x00f0f3f3, 0x00f1f4f5, 0x00f2f3f5, 0x00eef3f3, 0x00eef2f2, 0x00eff2f2, 0x00eff2f3, 0x00f0f3f4, 0x00f0f3f4, 0x00f0f3f4, 0x00f1f3f4,
- 0x00f2f2f3, 0x00f3f4f6, 0x00f0f3f3, 0x00f3f4f5, 0x00f1f3f4, 0x00f1f4e9, 0x00f4efe7, 0x00ffe8f0, 0x00f7edea, 0x00f9f0ea, 0x00f8eee5, 0x00ffe7e5, 0x00fcf3e9, 0x00f5f8f3, 0x00edf5f6, 0x00efebf9,
- 0x00e5f2fd, 0x00eaf6fd, 0x00f0fafb, 0x00f2f9f7, 0x00f0f5ef, 0x00f0f3f7, 0x00f4f6f9, 0x00fafbff, 0x00f7f9fd, 0x00f1f6f5, 0x00edf2f4, 0x00f1effc, 0x00f0f4ff, 0x00eaf3ff, 0x00eaf6fe, 0x00eef7fc,
- 0x00f0f2f4, 0x00f5f5f8, 0x00f7f7f8, 0x00f5f8fb, 0x00ebf5fd, 0x00e9f2fc, 0x00ecf5fc, 0x00f0fafe, 0x00f6fdff, 0x00f8fcfe, 0x00f7fafd, 0x00f6f7fb, 0x00eff2f2, 0x00f5f6f1, 0x00fafdf4, 0x00f9f8ef,
- 0x00fafbf5, 0x00f9fcfa, 0x00f5f9f7, 0x00f4f7f9, 0x00eef1f5, 0x00edf3f8, 0x00ecf6f8, 0x00ebf5fb, 0x00eff7fe, 0x00f1f7fe, 0x00eef6fc, 0x00f0f7ff, 0x00ebf1fc, 0x00edf4fe, 0x00f0f9ff, 0x00eff9ff,
- 0x00eaf9fe, 0x00ebf9ff, 0x00ebf7fe, 0x00eaf8fd, 0x00eaf8fd, 0x00eaf8fb, 0x00eaf9fa, 0x00e9fafa, 0x00eafafe, 0x00e9f9fd, 0x00eaf9fd, 0x00eafafd, 0x00ebfafe, 0x00ecfbfe, 0x00ecfbfe, 0x00ecfafe,
- 0x00eff5f8, 0x00efeaec, 0x00e0d0d4, 0x00ccb1b8, 0x00c3aab6, 0x00c9c1d5, 0x00acb7d7, 0x0086a2cf, 0x006392d3, 0x005284cf, 0x005076b2, 0x00a8b4ce, 0x00f3fefb, 0x00fcfefe, 0x00fbfffd, 0x00fcfbf8,
- 0x00f5f2f2, 0x00aca7b0, 0x00514c5f, 0x0062607f, 0x008181aa, 0x00a3a5c9, 0x009a9ccb, 0x006061aa, 0x00141a76, 0x00081663, 0x00091f61, 0x00132d6f, 0x001e3598, 0x001c329c, 0x00172f97, 0x0014308a,
- 0x00735c7e, 0x00bca9c8, 0x00cfc0dc, 0x00cfc4dd, 0x00cdc5dc, 0x00cfc8df, 0x00cec7de, 0x00cfc5dd, 0x00d4c9e3, 0x00d9cce8, 0x00dbd1ed, 0x00d7d0eb, 0x00d7cde9, 0x00d9ceea, 0x00dbd3ee, 0x00dad1ee,
- 0x00ddd2f0, 0x00ddd4f0, 0x00dcd2ec, 0x00ddd2f2, 0x00d8cfed, 0x00dfa0be, 0x00d27988, 0x00e18975, 0x00e2b2a8, 0x00e5d2e6, 0x00e1daf4, 0x00ceadc0, 0x00e26931, 0x00e4662a, 0x00e7784c, 0x00f3b4b1,
- 0x00f1edfc, 0x00eff7fe, 0x00f6f2ef, 0x00e7c5b5, 0x00e7795d, 0x00f69184, 0x00f7d5d5, 0x009d98aa, 0x0005191c, 0x001a1206, 0x00281708, 0x001c0f09, 0x00221311, 0x00322524, 0x007c6c72, 0x00c8bac2,
- 0x00f1e9f4, 0x00f9f1ff, 0x00f7eeff, 0x00f8efff, 0x00bab0ca, 0x00413d4c, 0x0014121e, 0x00615e77, 0x009790b8, 0x009b93c0, 0x00a49cc6, 0x00b1a8cc, 0x00c2b8d6, 0x00c8bcdc, 0x00c6b9db, 0x00c6b8de,
- 0x00b3afac, 0x0012150e, 0x0011170f, 0x00141812, 0x001a1e1a, 0x001a1e19, 0x001d211b, 0x001f251f, 0x00252722, 0x00232621, 0x00202420, 0x001a201a, 0x00161d18, 0x00161e16, 0x00181f1a, 0x0019201b,
- 0x00191f1c, 0x00181d1a, 0x00171c18, 0x00161c17, 0x00161b18, 0x00151817, 0x00121412, 0x000e110c, 0x000e0f09, 0x00111209, 0x0014170c, 0x00171a0f, 0x0022241c, 0x00262924, 0x0030312f, 0x00363736,
- 0x003e3b40, 0x00424145, 0x004a4950, 0x004b4b53, 0x004d4d56, 0x004f4e56, 0x0047474c, 0x0048494c, 0x00424042, 0x004e4f4b, 0x00939690, 0x00d7d9cf, 0x00f1f9f8, 0x00eef7f9, 0x00f2f9fb, 0x00d2d1d0,
- 0x00ad9786, 0x00af9072, 0x00bd9874, 0x00bd966c, 0x00a17b53, 0x009d6a4d, 0x009e6551, 0x008d5b47, 0x007a5648, 0x00735652, 0x0069565a, 0x00605863, 0x007a7993, 0x009398b6, 0x00a8b0d2, 0x0097a2cb,
- 0x00997465, 0x00ac5e50, 0x00b54f41, 0x00b05539, 0x00665d3c, 0x0037462c, 0x0040473c, 0x0059434b, 0x006e4741, 0x00625331, 0x00665e33, 0x006c5834, 0x006f5a36, 0x006e5a31, 0x006d5a2f, 0x006a592b,
- 0x00695632, 0x00645331, 0x00614f35, 0x005d4c36, 0x00544336, 0x00494134, 0x00433f34, 0x00403c32, 0x003f3c34, 0x003e3d35, 0x003c3d37, 0x00373d39, 0x00383e3d, 0x00343f3f, 0x00323e3e, 0x002f3e3c,
- 0x002b3637, 0x00283434, 0x00263030, 0x00222b2a, 0x00202826, 0x001c2421, 0x001c221e, 0x001b211b, 0x001d231e, 0x0020251e, 0x00202521, 0x001c2523, 0x001c2522, 0x001a2320, 0x0017201c, 0x00161d18,
- 0x00191e17, 0x001c201a, 0x001e201a, 0x001e201b, 0x0022251e, 0x00747774, 0x00fcfefe, 0x00fdfefe, 0x00fcfcfc, 0x00fefffe, 0x00fefdfd, 0x00cfcece, 0x007d7c7c, 0x005d5c5b, 0x000f0e0d, 0x00030402,
- 0x00170e0b, 0x003e3124, 0x00615144, 0x00564432, 0x003b2f23, 0x00201b11, 0x00090403, 0x0014120b, 0x0024150a, 0x00453120, 0x00a48e7c, 0x00d5c7bc, 0x00f5dfdc, 0x00ecdde0, 0x00e2e0e4, 0x00ccdcdd,
- 0x00d2d6dc, 0x00e3cbd1, 0x00e4bcc0, 0x00c79d93, 0x00877958, 0x006f6344, 0x00685d40, 0x00685e3f, 0x0062593b, 0x00494124, 0x00271f05, 0x0029220b, 0x003e3628, 0x00282116, 0x000d0600, 0x00130d09,
- 0x00392119, 0x003a3626, 0x00202619, 0x00030e02, 0x00120603, 0x000d0403, 0x00171815, 0x004e6258, 0x00bacac0, 0x00d2d2c9, 0x00afa8a4, 0x006b6e62, 0x002f2a22, 0x00201506, 0x00332917, 0x004d3c29,
- 0x005d4534, 0x005a432f, 0x005c4135, 0x005c4637, 0x00564132, 0x0068583f, 0x00796c4d, 0x006e643f, 0x00645e3a, 0x00454126, 0x00242314, 0x00161616, 0x00161721, 0x00181b24, 0x00282f36, 0x00475053,
- 0x00525155, 0x00403c41, 0x00817780, 0x00e6dce1, 0x00e8dacd, 0x00e3d7ba, 0x00ddd2ab, 0x00e0d7ab, 0x00e6dbba, 0x00e6dbc0, 0x00e4dcd0, 0x00e0dadf, 0x00e3dfd4, 0x00dedccb, 0x00d4d5ca, 0x00dbdedd,
- 0x00bebbe0, 0x0061618e, 0x00373969, 0x00485274, 0x00353f4c, 0x00323a52, 0x00494c6c, 0x004c5270, 0x002e3650, 0x00141d34, 0x00101a2c, 0x002a2e3a, 0x003d4041, 0x0044423c, 0x00454338, 0x00373525,
- 0x00624c39, 0x00766655, 0x008d8379, 0x009b9894, 0x008f9596, 0x009aa0a1, 0x00a9a9ad, 0x00ada8a9, 0x00b0a098, 0x00b6a798, 0x00a18977, 0x0077513d, 0x006b432a, 0x007d5237, 0x007a5335, 0x00664224,
- 0x00432512, 0x001d0902, 0x000b0103, 0x00080508, 0x00121624, 0x001e2957, 0x001c2b61, 0x00132142, 0x00111821, 0x00131614, 0x0076736e, 0x00e6dedc, 0x00fffbfe, 0x00fffdfe, 0x00fefcfc, 0x00fefdfb,
- 0x00d9d6d6, 0x008f8e8e, 0x0085878d, 0x009fa7ae, 0x006c7784, 0x00334150, 0x002c3a4f, 0x002b394e, 0x0029374d, 0x002b384b, 0x00303b53, 0x0035405a, 0x003a4664, 0x003b4b69, 0x003e5273, 0x00405778,
- 0x00425f81, 0x00476588, 0x00496990, 0x00476c95, 0x004a719b, 0x0045719a, 0x00406e97, 0x003e6d95, 0x00396994, 0x0034668e, 0x0033648b, 0x002a5d89, 0x002e5e8b, 0x002e618c, 0x002d5e8e, 0x004477a4,
- 0x0078afd1, 0x008bc5ee, 0x0085c2f2, 0x0068a9e7, 0x004789da, 0x00387bd7, 0x00286bd1, 0x002366d3, 0x002263d6, 0x00195ccc, 0x001b57cc, 0x001c52be, 0x002658bd, 0x004876d1, 0x0078a4ec, 0x0090bcf9,
- 0x0090b5ea, 0x0088ade0, 0x007fa5d3, 0x007297c1, 0x00597ca8, 0x00436494, 0x002f4f80, 0x00284670, 0x0037506b, 0x00415565, 0x00475458, 0x004e5550, 0x00565243, 0x0058503d, 0x005b503a, 0x005f4f38,
- 0x00664b24, 0x00664c20, 0x00684d1d, 0x006a4e18, 0x006b4d13, 0x00684813, 0x00634212, 0x00604116, 0x005f4226, 0x005d402b, 0x00573e2f, 0x00514033, 0x00504239, 0x004d443b, 0x0049443d, 0x00433f3b,
- 0x003f3c37, 0x003b3a33, 0x003a3833, 0x003a3a32, 0x003e3b31, 0x004b3f2d, 0x00523d26, 0x005b442b, 0x00835d3a, 0x00ad7f58, 0x00cc9a6f, 0x00c79365, 0x00b17c4d, 0x00966434, 0x007f4e1e, 0x007b4b1c,
- 0x00895c2c, 0x00895c28, 0x008d5e28, 0x0081541d, 0x00775528, 0x009e8b6c, 0x00fbf1e2, 0x00fdfdfa, 0x00fffdff, 0x00fcfbfc, 0x00fffdfd, 0x00fdfefa, 0x00fcfffe, 0x00eef5ef, 0x0050564a, 0x00565a42,
- 0x006b673f, 0x005d602c, 0x00505b21, 0x00465e24, 0x003c642f, 0x003d642b, 0x0045672c, 0x00486429, 0x00606939, 0x0066683d, 0x00605936, 0x00524a2b, 0x00433f2d, 0x00353a27, 0x00323f2e, 0x00354a37,
- 0x00334a46, 0x002e3836, 0x00413b3e, 0x0069595e, 0x007e7774, 0x00617063, 0x00435d4a, 0x0032533a, 0x005b6854, 0x007f8071, 0x008f8e82, 0x00889a8a, 0x00899e85, 0x0075906e, 0x005d7b50, 0x00507840,
- 0x00567d3e, 0x005c813d, 0x00607e3b, 0x0068823b, 0x006e8340, 0x00688041, 0x006b894b, 0x00658b44, 0x0062843b, 0x00698238, 0x00727d39, 0x007b773a, 0x008f7c54, 0x00a0896b, 0x00ac9681, 0x00d4bfb0,
- 0x00dfe7f9, 0x00dbe9f2, 0x00d6e4ef, 0x00cad7e3, 0x00becbe0, 0x00899dba, 0x00334a78, 0x005274ae, 0x003265b7, 0x002564ba, 0x00276ac3, 0x00206ec0, 0x00425f9a, 0x003c508a, 0x0052649f, 0x004c6eaf,
- 0x00446289, 0x00666f70, 0x00817162, 0x0058412a, 0x003b3535, 0x003d3c3f, 0x00555b65, 0x00415364, 0x002a3f5f, 0x00363d4e, 0x00564548, 0x00895e49, 0x00d0906d, 0x00c49470, 0x00bb9a7a, 0x00a49880,
- 0x006a7ba3, 0x002c3e6a, 0x001e2d61, 0x00223663, 0x0039515a, 0x0055755d, 0x005c814e, 0x00577e37, 0x00577a38, 0x0053783f, 0x0053793f, 0x00537832, 0x00547933, 0x00537b34, 0x00537a34, 0x00547a34,
- 0x00547732, 0x00557832, 0x00537834, 0x00537732, 0x00527732, 0x00547632, 0x00547631, 0x00547531, 0x00547332, 0x00537333, 0x00527333, 0x00527334, 0x00507134, 0x004e6f32, 0x004c6d30, 0x004c6c2f,
- 0x004e6c2f, 0x004d6b2e, 0x004c692d, 0x004a672c, 0x0049672c, 0x0048662c, 0x0047642c, 0x0046622b, 0x00475f2e, 0x00425f29, 0x006a734d, 0x00e6dacc, 0x00fbfeff, 0x00f8fffe, 0x00fafdfb, 0x00fffdf6,
- 0x00fafcfd, 0x0083a4cd, 0x00366ab1, 0x002562ba, 0x002c5aae, 0x002d5db0, 0x003265b7, 0x003264b6, 0x002b5cae, 0x002657a9, 0x002555a8, 0x002353a6, 0x001e4fa1, 0x001e50a2, 0x002455a8, 0x002858ac,
- 0x003566b9, 0x003061b3, 0x002d5dad, 0x003e6fbb, 0x004174bc, 0x003d70b8, 0x003b6eb8, 0x003b6cba, 0x003768b9, 0x003062b2, 0x003162b3, 0x003869b8, 0x003e6ebd, 0x003768b6, 0x003061ae, 0x002e62ac,
- 0x003466ae, 0x003465b0, 0x003162ad, 0x002c60a7, 0x00265aa3, 0x003867a1, 0x007681a6, 0x00a26c75, 0x00914f27, 0x00806231, 0x00898153, 0x00989870, 0x00bac395, 0x00ccd3af, 0x00e7e1d2, 0x00f6dae8,
- 0x00e9e8f3, 0x00efecf4, 0x00efebef, 0x00ede7e5, 0x00e6dcd0, 0x00e1d1c0, 0x00c3ae95, 0x00a78e6f, 0x0092714d, 0x007d5d34, 0x0076542f, 0x00715332, 0x006a513c, 0x0079635b, 0x00b5a3aa, 0x00d5cada,
- 0x00c4bede, 0x009594b6, 0x007c7ca0, 0x00787b9c, 0x00767998, 0x00767f9a, 0x008992ae, 0x00949dbd, 0x009ca1c9, 0x00979ec8, 0x00868ebb, 0x00727bab, 0x006c74a6, 0x006a74a5, 0x005a6594, 0x0043507e,
- 0x0034386d, 0x001c255b, 0x00101c54, 0x000a1b52, 0x00061a52, 0x00122354, 0x00202d58, 0x00484f71, 0x008d8498, 0x00a295a2, 0x00a09ba7, 0x008b9fa9, 0x00798fb5, 0x005470a3, 0x002c4c8f, 0x001e448e,
- 0x001f468f, 0x00204b8d, 0x00234d8e, 0x002a5090, 0x005373bd, 0x0089a0d0, 0x00cfdef9, 0x00f5fcfe, 0x00fffbfe, 0x00fefcf8, 0x00fffdf6, 0x00fafdf7, 0x00c6cccf, 0x00787b7f, 0x00939094, 0x00c8bec3,
- 0x00ebecee, 0x00fafafb, 0x00fcfdfd, 0x00fbfdfd, 0x00fdfefe, 0x00fcfefe, 0x00fbfefd, 0x00fbfefc, 0x00fcfdfe, 0x00fafcfd, 0x00fafcfd, 0x00fbfdfd, 0x00fcfefd, 0x00fcfdfd, 0x00fcfdfd, 0x00fbfefd,
- 0x00fffdff, 0x00fbfefd, 0x00fefefe, 0x00fafefe, 0x00fdfefe, 0x00f7fff7, 0x00f7fcf9, 0x00fcf8fe, 0x00f9fdff, 0x00effefd, 0x00f3f8ff, 0x00fdf8fb, 0x00fefcf4, 0x00f8fdf3, 0x00f9fdf6, 0x00fef9f7,
- 0x00f8fcff, 0x00f9fdfc, 0x00fbfef9, 0x00fcfff0, 0x00fefff1, 0x00fffef8, 0x00fefcfd, 0x00fcf9fd, 0x00fbfbf8, 0x00fbfff8, 0x00fbfdf7, 0x00fffbfe, 0x00fdfcfe, 0x00fbfcff, 0x00fbfdfe, 0x00fbfdfd,
- 0x00fefff7, 0x00fdfcf4, 0x00fefbf7, 0x00fefdf7, 0x00f8fdfc, 0x00f9fffd, 0x00fafcfe, 0x00fcfcfd, 0x00fffcff, 0x00fdfbfc, 0x00fffafc, 0x00fdfbfa, 0x00fefcf7, 0x00fcfbf2, 0x00fffcf4, 0x00fefcf4,
- 0x00f7fdff, 0x00f5fefd, 0x00f6fffe, 0x00f6fdfa, 0x00fcffff, 0x00fafefb, 0x00fafdfa, 0x00fdfffa, 0x00fffefc, 0x00fffef8, 0x00fdfefa, 0x00fdfbfd, 0x00fdfdfe, 0x00fbfdfb, 0x00fafdfa, 0x00fafffa,
- 0x00fcfefe, 0x00fdfefe, 0x00fdfeff, 0x00fcffff, 0x00fbfffe, 0x00fcfefd, 0x00fcfefd, 0x00fbfffb, 0x00fdfefb, 0x00fcfefb, 0x00fcfdfb, 0x00fbfefb, 0x00fcfefb, 0x00fbfefb, 0x00fbfefa, 0x00fafefa,
- 0x00f1fafd, 0x00d4d8e5, 0x00bab8cb, 0x00c3bcdb, 0x00abb0d9, 0x008a9ed0, 0x005780b2, 0x004177b2, 0x005088d9, 0x004b83d9, 0x004772b4, 0x00a2b3cb, 0x00f4fcff, 0x00f3fcfb, 0x00fdfefd, 0x00fbfff8,
- 0x00fdf9f8, 0x00bfbac2, 0x005f586f, 0x006d698a, 0x009191c0, 0x00acb1d9, 0x009da2dc, 0x005a5ab1, 0x00171e89, 0x00132175, 0x000b206b, 0x000d276a, 0x0023399f, 0x00243aa4, 0x001f35a0, 0x00203a96,
- 0x007d6584, 0x00c2adcc, 0x00d5c2e0, 0x00d3c4e0, 0x00d0c5dd, 0x00cbc4db, 0x00cec6de, 0x00d1c7e2, 0x00dbcde9, 0x00deceea, 0x00ded0ec, 0x00d7ceea, 0x00d7ceea, 0x00dad1ed, 0x00d9d2ec, 0x00d3cbe4,
- 0x00d9ceed, 0x00ddd5ef, 0x00d8cfec, 0x00e1d9f5, 0x00d8ceee, 0x00e587a6, 0x00dd5160, 0x00ec543d, 0x00dd8879, 0x00d7c4cf, 0x00daddf1, 0x00b9b0b4, 0x00e26c2b, 0x00e76a2b, 0x00e78458, 0x00eabfb9,
- 0x00eae4f9, 0x00f7edfa, 0x00f3cbcc, 0x00d48877, 0x00dd6341, 0x00f79883, 0x00fae7e4, 0x00a9a4b5, 0x00101d28, 0x002b1e12, 0x00462f1e, 0x003e2b20, 0x00311d17, 0x00200f0b, 0x002e1d1d, 0x00685a5d,
- 0x00cbbfca, 0x00f4eaf7, 0x00f8eefd, 0x00f3e8f8, 0x00bdb3cb, 0x00514c5b, 0x001e1d2b, 0x00696781, 0x009c96c1, 0x009c93c2, 0x00a89cca, 0x00b1a5cd, 0x00c1b6d4, 0x00c4b9d7, 0x00c3b7d8, 0x00c5b9dd,
- 0x00aeaead, 0x000f130f, 0x000f150f, 0x00111510, 0x00191c18, 0x001a1c19, 0x001e201c, 0x00212320, 0x0026251e, 0x00262520, 0x0022241f, 0x001d221e, 0x001a201a, 0x00181d1a, 0x00171d18, 0x00181d1a,
- 0x00171b18, 0x00161a18, 0x00131914, 0x000f1711, 0x000f1511, 0x000e110e, 0x000c0d09, 0x000a0a04, 0x00090b05, 0x000f1108, 0x0015170c, 0x00191b11, 0x0025271f, 0x002d2e29, 0x00393a38, 0x003f403e,
- 0x004a474e, 0x004f4b54, 0x0057545e, 0x005d5b66, 0x00605c6a, 0x005f5b68, 0x00595760, 0x00504d55, 0x005f6061, 0x009e9f9c, 0x00e9e5e4, 0x00fdf9f6, 0x00f1f3fd, 0x00e3eefb, 0x00dbe4f4, 0x00cbcede,
- 0x00aa9b9d, 0x00a79188, 0x008d715f, 0x00775944, 0x006e553e, 0x006e5246, 0x006d4e49, 0x005d423e, 0x00635553, 0x00888080, 0x00a6a6aa, 0x00b0b5be, 0x00d6daea, 0x00e8edf7, 0x00eff4ff, 0x00dde1f7,
- 0x00d18158, 0x00d75a37, 0x00e15435, 0x00f17453, 0x00c9b98e, 0x00859479, 0x004a524d, 0x0059414c, 0x0077433e, 0x00705532, 0x00705b2a, 0x007a582c, 0x007c5b2c, 0x007c5e2b, 0x007a5e28, 0x007a5e24,
- 0x00755b2b, 0x0072562c, 0x006f522e, 0x006a4d33, 0x00624532, 0x00564337, 0x004e4137, 0x00493d35, 0x00423b32, 0x00413d35, 0x003d3f38, 0x003a403a, 0x00374440, 0x0035433f, 0x0030423d, 0x002e403c,
- 0x002d3838, 0x002a3435, 0x00242d2d, 0x00202928, 0x001d2524, 0x001c2421, 0x0019211c, 0x0019201b, 0x0019201a, 0x001e241e, 0x001f2623, 0x001e2725, 0x001f2726, 0x001f2622, 0x001b221d, 0x00191f1a,
- 0x00181f18, 0x001c211a, 0x001d201a, 0x001d1f1a, 0x0022241e, 0x00757774, 0x00fdfefd, 0x00fefefd, 0x00fbfcfb, 0x00fdfffe, 0x00fdfdfd, 0x00d0cecf, 0x007d7c7d, 0x00656465, 0x00211f21, 0x00111112,
- 0x00121414, 0x002d2923, 0x004a4137, 0x004b3e31, 0x0040372c, 0x002a261f, 0x001f1c18, 0x0033302a, 0x00514332, 0x00816953, 0x00cebca6, 0x00d2dcd4, 0x00f0dfde, 0x00e1d6da, 0x00dedfe4, 0x00d5ebf1,
- 0x00c1c6d4, 0x00bc9dae, 0x00cf9aa7, 0x00e1a4a0, 0x00cdae8c, 0x0092806d, 0x00443c32, 0x00241d13, 0x00332f1d, 0x00322e1c, 0x001e1a08, 0x0024200f, 0x00312d24, 0x001d1a13, 0x00090703, 0x000d0b08,
- 0x003e2219, 0x00423f30, 0x00273022, 0x00041306, 0x00140201, 0x00110101, 0x00241c16, 0x00667367, 0x00c7d2c4, 0x00d3c6bb, 0x00a69391, 0x00565752, 0x002a2418, 0x0031210f, 0x00543e2a, 0x00795e44,
- 0x0085654f, 0x006a513d, 0x00554234, 0x004f4439, 0x00363533, 0x004f4436, 0x007b6a54, 0x00746649, 0x00726945, 0x00746b4c, 0x00665e48, 0x0030291f, 0x000e0605, 0x00100b07, 0x0028231e, 0x0039352c,
- 0x00373530, 0x002e2829, 0x007c747a, 0x00e6d9e1, 0x00e6dcd3, 0x00e1d6bc, 0x00ddd5af, 0x00e4dfb4, 0x00e8e6cb, 0x00e8e4d6, 0x00e9e4e1, 0x00e4e1e9, 0x00e0e1d6, 0x00dbdecb, 0x00d6dbcb, 0x00dadde0,
- 0x00b3b4de, 0x00616196, 0x003c3d72, 0x003a4069, 0x0026343d, 0x0032353d, 0x00464347, 0x0047484f, 0x00333541, 0x00191e29, 0x0009121b, 0x002d333b, 0x006b7577, 0x00898e8e, 0x00676b68, 0x0041413e,
- 0x006e625b, 0x008c847d, 0x00b5b1af, 0x00c8c8cb, 0x00b4babf, 0x00abafb0, 0x009e9c9a, 0x00978f85, 0x00a18773, 0x00b1937b, 0x00a88065, 0x00986043, 0x007c4b32, 0x00633822, 0x003d1e0c, 0x00230d02,
- 0x00130600, 0x00070002, 0x00070709, 0x00060810, 0x00181b2a, 0x001a2146, 0x00182249, 0x00161f37, 0x00302f2f, 0x0039362a, 0x00898175, 0x00ece0dd, 0x00fffafd, 0x00fffeff, 0x00fcfcfc, 0x00fcfdfb,
- 0x00d6d5d5, 0x008c8d8c, 0x00848787, 0x00a0a7ab, 0x006d797e, 0x0034404a, 0x002e3944, 0x002f3843, 0x002d363f, 0x00313840, 0x00353d49, 0x00384059, 0x003d4762, 0x003f4c67, 0x0041536f, 0x00435874,
- 0x00446283, 0x004a6789, 0x004b6c90, 0x00486f93, 0x004b7398, 0x00487499, 0x00457197, 0x00446f96, 0x00396890, 0x0036668c, 0x0031638b, 0x002c5d86, 0x002b5d87, 0x002e608a, 0x005285b1, 0x0087bce4,
- 0x0092cdfe, 0x0082bef8, 0x0063a3e4, 0x004f92e0, 0x003f83e2, 0x002b70d7, 0x002266d1, 0x002469d4, 0x001f64d2, 0x001c5ec7, 0x001e5ec5, 0x001d5dba, 0x001b57b7, 0x001a52af, 0x00285db8, 0x00386bc2,
- 0x003e6cc0, 0x00507ccc, 0x006d98e4, 0x0073a2ea, 0x006a98df, 0x00608acb, 0x005478b7, 0x00406399, 0x00335176, 0x00354e66, 0x00445560, 0x00495253, 0x00514e45, 0x00524d3e, 0x00554b3a, 0x00584736,
- 0x0061482c, 0x00644a28, 0x00684c23, 0x006b4f1c, 0x006e4e16, 0x006b4914, 0x00644413, 0x00614316, 0x00614527, 0x0060442c, 0x005c4132, 0x00574339, 0x00524238, 0x004f433a, 0x00494039, 0x00443e37,
- 0x003f3a39, 0x003c3936, 0x00383931, 0x00393830, 0x003d3c30, 0x00503f2a, 0x00573d22, 0x006a4c2e, 0x009e7850, 0x00b5885d, 0x00ad7b4d, 0x009c6838, 0x00824c1c, 0x00744212, 0x0079481a, 0x00845629,
- 0x00996839, 0x00a3733e, 0x00a2713a, 0x008f5d27, 0x0079592b, 0x00a79374, 0x00fbf4e5, 0x00fafdf8, 0x00fcfffe, 0x00fdfffd, 0x00fffffd, 0x00fffffc, 0x00f9fdfb, 0x00e4ece6, 0x004f564c, 0x00565a43,
- 0x0062633a, 0x005a5d2a, 0x00505a21, 0x00475f24, 0x00416631, 0x0043662e, 0x004a682e, 0x00556830, 0x00757943, 0x0086804f, 0x007e7444, 0x006f6238, 0x0055552e, 0x004a532e, 0x00435930, 0x003d5c32,
- 0x00455a35, 0x004f5435, 0x0061583d, 0x006a523b, 0x0070674b, 0x005d6b45, 0x00426134, 0x00325c2b, 0x00465d30, 0x00616640, 0x006d714c, 0x00627b50, 0x0063814f, 0x005a7e46, 0x00557c40, 0x00547f3d,
- 0x0059803a, 0x00607f3a, 0x00657f3b, 0x00718242, 0x00788347, 0x007e783e, 0x00827e44, 0x007b8243, 0x00708544, 0x006f8645, 0x006d803f, 0x006c763d, 0x00848050, 0x009a9267, 0x009a9069, 0x00b0a883,
- 0x00b6aebc, 0x00a7b2b9, 0x0096b1b2, 0x008bb3b2, 0x0083a5b2, 0x00728ba4, 0x002d3962, 0x003d497d, 0x00284884, 0x00134580, 0x001c5991, 0x002d6597, 0x00305798, 0x0042569b, 0x006166a7, 0x00635588,
- 0x00704a51, 0x00875d4b, 0x0082583f, 0x0050301d, 0x00372f33, 0x0027394e, 0x00476582, 0x003a556b, 0x00252b39, 0x004c3c3b, 0x00734c3d, 0x00a26548, 0x00d68c66, 0x00c98f64, 0x00ba9064, 0x00a98b62,
- 0x007f7e6d, 0x004b4b4a, 0x001d222f, 0x00142236, 0x0013322e, 0x00406844, 0x0056814a, 0x005a8337, 0x00577a39, 0x00577744, 0x00587945, 0x00577e35, 0x00567a31, 0x00557a31, 0x00557833, 0x00567833,
- 0x00547730, 0x00557732, 0x00557935, 0x00547a33, 0x00537933, 0x00547833, 0x00547631, 0x00547432, 0x00537432, 0x00537432, 0x00527433, 0x00527435, 0x00517134, 0x004f6f33, 0x004d6d31, 0x004c6d31,
- 0x004d6c2d, 0x004d6b2e, 0x004c692d, 0x004a682b, 0x0049672c, 0x0048662c, 0x0047642c, 0x0046612c, 0x00445f2a, 0x0042602a, 0x00717c54, 0x00efe3d8, 0x00fbfcff, 0x00f9ffff, 0x00f8fefa, 0x00fefdf5,
- 0x00f6fbfe, 0x007196c0, 0x00285da4, 0x001e5db5, 0x00325bb2, 0x003563b8, 0x003461b7, 0x002c5cb0, 0x002455a9, 0x002554a9, 0x002b5aaf, 0x002d5cb1, 0x002859ad, 0x00295caf, 0x003063b8, 0x00376ac0,
- 0x004274c5, 0x003667b8, 0x002d5dad, 0x003c6eba, 0x00497cc5, 0x003a6db5, 0x003668b3, 0x003869b7, 0x003d6cbd, 0x003665b7, 0x002c5daf, 0x002f61b1, 0x003869b9, 0x003a6bba, 0x003264b2, 0x002b5daa,
- 0x00305fad, 0x003160ad, 0x003163ab, 0x003164aa, 0x00295ba2, 0x002e6194, 0x00667896, 0x00a66d7a, 0x008b4e33, 0x0074593c, 0x00938e77, 0x00bbb4a8, 0x00d5d7c2, 0x00d9dec9, 0x00e4ded7, 0x00fbd6e7,
- 0x00f2f0f0, 0x00f1eded, 0x00eee8e5, 0x00d6cec9, 0x00aea198, 0x00a18e82, 0x009a816e, 0x0095785f, 0x00826145, 0x006d4c2c, 0x00633f22, 0x00644228, 0x00684c3b, 0x008e776b, 0x00d3c2be, 0x00ece3ea,
- 0x00e3dced, 0x00bdbad0, 0x009694af, 0x008c8ca9, 0x009f9fbd, 0x00a3abc7, 0x00a7b2cf, 0x00a7b3d4, 0x009da9d3, 0x008895c2, 0x006674a7, 0x00505e96, 0x003e4b87, 0x00364481, 0x00283975, 0x001b2d68,
- 0x00182a69, 0x00152767, 0x00122660, 0x00071b53, 0x00071b4c, 0x0010224e, 0x00122448, 0x002a3756, 0x0051596f, 0x00646b7d, 0x00687289, 0x00566e8e, 0x00415a8c, 0x002d4a83, 0x00224182, 0x001f4385,
- 0x00214478, 0x00294c7c, 0x00305082, 0x00375283, 0x005c6fac, 0x008899c5, 0x00cddbf5, 0x00f4fbfe, 0x00fefbfc, 0x00fefdf7, 0x00fffdf6, 0x00fafcf7, 0x00c5c9cd, 0x007a7c81, 0x00958f95, 0x00ccbfc6,
- 0x00eaebea, 0x00fbfbfb, 0x00fdfefc, 0x00fcfdfb, 0x00fdfcfd, 0x00fbfcfb, 0x00fafdfb, 0x00fbfdfc, 0x00fdfcfc, 0x00fcfcfc, 0x00fcfdfc, 0x00fcfffd, 0x00fefffe, 0x00fefffe, 0x00fdfffe, 0x00fdffff,
- 0x00fbfdfb, 0x00fafdfc, 0x00fcfcfb, 0x00f9fefd, 0x00fcfdfc, 0x00f5fff6, 0x00f6fcf7, 0x00fdf7fc, 0x00f6fdfb, 0x00edfefd, 0x00f4feff, 0x00fcfafd, 0x00fcfdf6, 0x00f3fef8, 0x00f3fbf9, 0x00fdf6fc,
- 0x00fdfeff, 0x00fffffb, 0x00fefdf5, 0x00fffff0, 0x00fefbef, 0x00fefbf7, 0x00fffdff, 0x00fdfcff, 0x00fbfcfc, 0x00f8fdf7, 0x00f9fbf6, 0x00fdf8fa, 0x00fdfbfe, 0x00fbfcff, 0x00fafcfd, 0x00fcfffc,
- 0x00fefcf1, 0x00fefcf0, 0x00fdfcf2, 0x00fbfaf8, 0x00f9fdfe, 0x00fafeff, 0x00fafdfc, 0x00fafefb, 0x00fefcf9, 0x00fefcfb, 0x00fefdfc, 0x00fffbfa, 0x00fefdfa, 0x00fbfaf6, 0x00f8fcf8, 0x00f7fefc,
- 0x00f9fefc, 0x00fafffe, 0x00fafffc, 0x00fcfffe, 0x00fcfefb, 0x00fcfcfa, 0x00fcfdf7, 0x00fefdf8, 0x00fcfdf8, 0x00fefcf6, 0x00fefcf7, 0x00fffefc, 0x00fefefa, 0x00fefffa, 0x00fcfef8, 0x00fafdf8,
- 0x00fefdf6, 0x00fffef8, 0x00fefef9, 0x00fdfef7, 0x00fdfdf7, 0x00fdfafc, 0x00fef9ff, 0x00fef9fd, 0x00fffaff, 0x00fef9fe, 0x00fef8fe, 0x00fef9ff, 0x00fff9ff, 0x00fef9ff, 0x00fef9fe, 0x00fffaff,
- 0x00e6f9fc, 0x00b2c0d3, 0x0065759b, 0x008798d4, 0x005783cb, 0x00366cba, 0x003f82cf, 0x005499e4, 0x004b88db, 0x003e6cc7, 0x004c70b4, 0x009cb3cb, 0x00f5ffff, 0x00f5fcfc, 0x00fdfef9, 0x00fdfef3,
- 0x00fdfcf3, 0x00cec8ce, 0x00686274, 0x006c688b, 0x009392c2, 0x00acb4de, 0x00929dd5, 0x004c54b2, 0x00192395, 0x00182882, 0x000c216d, 0x000e286a, 0x00203893, 0x00243b9b, 0x00223697, 0x002d419b,
- 0x00947b99, 0x00cfb8d6, 0x00dac7e4, 0x00d5c5e1, 0x00d1c4df, 0x00cfc4de, 0x00d1c6e0, 0x00d7c9e6, 0x00d8cbe6, 0x00dbcbe6, 0x00dacce8, 0x00d5cce8, 0x00d8cfeb, 0x00d9d1ed, 0x00d6cfea, 0x00d2c9e3,
- 0x00d8ceea, 0x00ded4ef, 0x00dbd0ed, 0x00e2d8f2, 0x00d7cce8, 0x00ec8b95, 0x00ef584c, 0x00fc5927, 0x00f08156, 0x00edbdbb, 0x00f4daec, 0x00cca8af, 0x00ed6a23, 0x00f06c2c, 0x00ee8b64, 0x00e0bcc8,
- 0x00e7e0ed, 0x00fbd6e2, 0x00ea8d90, 0x00d84f40, 0x00e15e2d, 0x00f19f7d, 0x00f9eadf, 0x00a6abbc, 0x002c2a3b, 0x00482b23, 0x00613e2c, 0x004f3929, 0x00433022, 0x003d2c21, 0x002e1c15, 0x00362623,
- 0x007d6f78, 0x00c5b9c3, 0x00e7deea, 0x00e4dcec, 0x00c8c0d8, 0x006b6977, 0x00232335, 0x00666581, 0x009c96c2, 0x009b93c3, 0x00a89dcc, 0x00b4a8cf, 0x00beb4d1, 0x00c0b6d3, 0x00c1b7d7, 0x00c5b9dc,
- 0x00aaafae, 0x000b100d, 0x000c110d, 0x000e110e, 0x00191917, 0x001a1b16, 0x001e1f19, 0x0021211a, 0x0025231d, 0x0025231e, 0x0022221e, 0x001e211e, 0x001b1f1b, 0x00171b18, 0x00131814, 0x00121713,
- 0x00111710, 0x00111612, 0x000e1410, 0x000b130e, 0x000a100e, 0x00090c0a, 0x00080805, 0x00070703, 0x000c0c07, 0x0012120b, 0x00181710, 0x001e1d15, 0x002d2c25, 0x00363531, 0x00424240, 0x00474847,
- 0x0055535c, 0x005c5964, 0x00696673, 0x00706d7b, 0x00777182, 0x00736d7d, 0x006a6773, 0x0077747f, 0x00aeadb2, 0x00dedee0, 0x00f8f5f8, 0x00f8f0f9, 0x00e6e7f9, 0x00dae0fd, 0x00d1d9f8, 0x00c5c9ed,
- 0x00c2b8d0, 0x00d1c1cd, 0x00968085, 0x0058413f, 0x0041302e, 0x00483c3e, 0x005e545b, 0x006a656d, 0x008e9294, 0x00c3cacb, 0x00e4efef, 0x00edf6f7, 0x00f7fbfe, 0x00fbfaf7, 0x00fef9f6, 0x00f5edef,
- 0x00f29b60, 0x00f1612d, 0x00fa592f, 0x00fa7d51, 0x00f6deb2, 0x00adbfa4, 0x004f5a52, 0x00573c4b, 0x007b403c, 0x0077552e, 0x00775c24, 0x00835d2a, 0x00835f29, 0x00856328, 0x00866326, 0x00846220,
- 0x00806229, 0x007d5c2a, 0x0079562d, 0x00735031, 0x006a4732, 0x005e4537, 0x00534337, 0x004b3d33, 0x00443b34, 0x00423e37, 0x003f4039, 0x003c413b, 0x003a4743, 0x00364643, 0x00314440, 0x002b423f,
- 0x00303c3c, 0x002b3637, 0x0023302e, 0x001f2a28, 0x001d2525, 0x001c2221, 0x0018201c, 0x00161e19, 0x00181f19, 0x001d241e, 0x001e2722, 0x001d2724, 0x00202725, 0x00202523, 0x001b211d, 0x00191e1b,
- 0x00181f18, 0x001a2019, 0x001a1f18, 0x001b1f19, 0x0021241d, 0x00757674, 0x00fefdfe, 0x00fefefe, 0x00fdfcfd, 0x00ffffff, 0x00fefcfd, 0x00d2d0d1, 0x007d7d7d, 0x00676666, 0x002b2b2a, 0x00181817,
- 0x000f161a, 0x00191819, 0x00241f18, 0x00271e14, 0x00292318, 0x001e1b16, 0x00302e2b, 0x00514c4b, 0x006e5a4d, 0x00836953, 0x00988a76, 0x009fb3a6, 0x00dececd, 0x00dfcfd1, 0x00dad7da, 0x00cbe0e4,
- 0x009a9cad, 0x008b6477, 0x00a76271, 0x00c77774, 0x00ecbc99, 0x00d1c0b2, 0x0073706e, 0x0035322c, 0x0024221b, 0x00211f16, 0x00222115, 0x00272619, 0x0025221e, 0x0013110f, 0x00030302, 0x00060705,
- 0x00381914, 0x003b382a, 0x00243121, 0x00132112, 0x00361f1f, 0x003c2223, 0x00322520, 0x005c665a, 0x00babdad, 0x00cebbb0, 0x00aa9392, 0x0061605e, 0x004c4133, 0x00624d3a, 0x0071543c, 0x00815d3f,
- 0x00856045, 0x00614931, 0x00403121, 0x0026221b, 0x001e242a, 0x005c544e, 0x00988776, 0x0083765e, 0x00726748, 0x00827458, 0x00867662, 0x0056483d, 0x001b0d0c, 0x00100300, 0x001c0e08, 0x002f1f11,
- 0x002e2a20, 0x0039322f, 0x00948990, 0x00eddfeb, 0x00e7ddd7, 0x00dcd4bb, 0x00d7d4af, 0x00dcdfb1, 0x00e8e8d4, 0x00e7e8e3, 0x00e7e8ed, 0x00e4e4ee, 0x00e2e6da, 0x00dce3d0, 0x00d5dccf, 0x00d8ddde,
- 0x00a6a7d5, 0x00555692, 0x00393c75, 0x002d325b, 0x001e2b33, 0x002e291b, 0x004e4029, 0x005c5540, 0x00504c41, 0x002c2f28, 0x00151a19, 0x00373d42, 0x00878d96, 0x00a1a5ae, 0x007f7f88, 0x00797780,
- 0x00978f93, 0x00949093, 0x00acadb4, 0x00bfc4ce, 0x00bcc3cd, 0x00b3b6b8, 0x009c9893, 0x0085796a, 0x007c5d43, 0x0083613d, 0x007d4e2b, 0x006e3317, 0x004a1b08, 0x002d0a04, 0x00180301, 0x00090002,
- 0x00050409, 0x00030513, 0x00030c17, 0x00071021, 0x001b2235, 0x00212644, 0x001b1e3a, 0x001e212e, 0x00544e46, 0x00605849, 0x00998f81, 0x00efe3dd, 0x00fff9fa, 0x00fefcfd, 0x00faf9fb, 0x00fbfdfe,
- 0x00d8d8d7, 0x008d8d8b, 0x00848585, 0x00a0a4a8, 0x0071797d, 0x00374147, 0x00303940, 0x0031393d, 0x0031373a, 0x0035393b, 0x00383d44, 0x003a4155, 0x003f4860, 0x00404d64, 0x0043546d, 0x00475a74,
- 0x00496382, 0x004b6888, 0x004b6d8e, 0x00486f91, 0x004c7197, 0x00497397, 0x00477295, 0x00456f93, 0x003f6990, 0x0039658c, 0x00356388, 0x00305e86, 0x0034638a, 0x005282ab, 0x0092c4e8, 0x00a1d4f8,
- 0x007fbcfe, 0x0066a3f2, 0x004b8ae1, 0x004082e0, 0x002d6fd7, 0x002468d4, 0x002265d2, 0x002165d0, 0x002365c9, 0x002667c6, 0x002b6fc7, 0x00226ab4, 0x002165b8, 0x001c5bb5, 0x001650b0, 0x001a51b5,
- 0x001d4cb8, 0x002554bb, 0x002c5cc1, 0x002e61c2, 0x002d5fbe, 0x003764b2, 0x004970b8, 0x004f75b5, 0x0044638f, 0x003b5371, 0x003a4c5b, 0x00455054, 0x004c4b46, 0x004f4a41, 0x004f473b, 0x00534337,
- 0x00604833, 0x00644a2e, 0x00674d29, 0x00694f22, 0x006d4e1b, 0x006c4a18, 0x00664717, 0x0064451b, 0x0064472b, 0x0061452d, 0x005e4333, 0x00594337, 0x00524036, 0x004d3f37, 0x00463c36, 0x003e3933,
- 0x00373532, 0x0036352f, 0x0035362c, 0x0037372c, 0x003d392f, 0x004e3b26, 0x00715338, 0x00927254, 0x00b68c65, 0x00af7f55, 0x00915e2f, 0x00814b1b, 0x00723c0d, 0x00724011, 0x00825227, 0x008a5c33,
- 0x008f5c2f, 0x008d5b29, 0x00925f2a, 0x008f5c26, 0x007f5c30, 0x00a99575, 0x00fef7e4, 0x00fafff5, 0x00fcfefe, 0x00fcfefe, 0x00fcfdfc, 0x00fefffc, 0x00f8fdfc, 0x00dae3de, 0x004e564c, 0x00505741,
- 0x0055592d, 0x00525823, 0x004e5a21, 0x00476025, 0x00416531, 0x0044622d, 0x0048612b, 0x004f622b, 0x00716c39, 0x00817542, 0x00877944, 0x00887c46, 0x006c6e39, 0x005a6933, 0x00516c35, 0x004b6f37,
- 0x00596f33, 0x00676b34, 0x00635828, 0x006a5128, 0x00746b3b, 0x0064743d, 0x00527438, 0x00447432, 0x00546e35, 0x00626a38, 0x00656e3b, 0x005e783f, 0x00557938, 0x00557d37, 0x0057833b, 0x00548136,
- 0x00587f38, 0x005f7f3b, 0x00697e3e, 0x00737f45, 0x00787844, 0x00886a35, 0x00956e3b, 0x0087713b, 0x007b854b, 0x00778c4f, 0x006a8247, 0x006e814a, 0x00717a47, 0x00737944, 0x00777d4a, 0x00787f4c,
- 0x00917e65, 0x00787059, 0x00746f5b, 0x00747668, 0x005c625b, 0x005f6366, 0x003f444c, 0x00283040, 0x00282d45, 0x0022263d, 0x0029324f, 0x00284867, 0x001a4896, 0x004058b0, 0x00594e9c, 0x006b3459,
- 0x00892b1a, 0x008f442c, 0x007d432d, 0x00492820, 0x00372329, 0x00294076, 0x003661a6, 0x00344f86, 0x00403857, 0x00573945, 0x00844f50, 0x00b06a64, 0x00c47d6f, 0x00c18270, 0x00bb886e, 0x00ab8263,
- 0x00a58d6c, 0x00857668, 0x002e2628, 0x00151c26, 0x002c483c, 0x0051794a, 0x0057833b, 0x005e892a, 0x0063832c, 0x00647b31, 0x00607834, 0x00587b32, 0x005a7a34, 0x005a7933, 0x00597831, 0x005a7934,
- 0x00557732, 0x00567832, 0x00577a34, 0x00557b33, 0x00537a35, 0x00537734, 0x00557631, 0x00567533, 0x00537432, 0x00537432, 0x00527434, 0x00537435, 0x00537235, 0x00507034, 0x004d6e32, 0x004c6e31,
- 0x004c6c2c, 0x004d6b2d, 0x004b6a2c, 0x0049682a, 0x0049652c, 0x0048642c, 0x0047632b, 0x0046612c, 0x00435f2b, 0x0044602a, 0x0076805a, 0x00f0e7dd, 0x00f7f8fa, 0x00fafeff, 0x00f8fdf9, 0x00fbfbf4,
- 0x00eff5fd, 0x00678bb9, 0x002658a0, 0x002161b7, 0x003663ba, 0x003463bc, 0x002c58b1, 0x002554aa, 0x002657ab, 0x002d5eb1, 0x003666bb, 0x00396abf, 0x003c6dc2, 0x003e70c4, 0x003f71c5, 0x004072c6,
- 0x003c6ebf, 0x00386aba, 0x002557a6, 0x003062ae, 0x00578ad4, 0x004e80ca, 0x004375c0, 0x003e70bc, 0x004676c5, 0x004574c5, 0x003a6bbd, 0x003163b3, 0x003263b2, 0x003767b5, 0x003567b4, 0x003162af,
- 0x002e60aa, 0x002d5eab, 0x003162aa, 0x003162ac, 0x002c60a5, 0x00275f8f, 0x00546882, 0x00a16775, 0x008a4e3a, 0x00715b4a, 0x00b1aaa7, 0x00dcd1d9, 0x00e7eae0, 0x00dde6d6, 0x00e5dddb, 0x00fdd4eb,
- 0x00f3eee4, 0x00f2ebe2, 0x00e4dbd2, 0x00b8aba4, 0x00837168, 0x007b645a, 0x007c6151, 0x00765745, 0x00644128, 0x00553216, 0x0057321a, 0x005a361f, 0x00634533, 0x008c7464, 0x00d4c3b7, 0x00ebe0d9,
- 0x00e9e2e7, 0x00dfdbe8, 0x00b9b5cb, 0x009b98b3, 0x00928fad, 0x00919ab5, 0x008b99b4, 0x007a87a5, 0x006976a3, 0x00566395, 0x003a4981, 0x002d3d7a, 0x00243275, 0x001b2a6f, 0x0016286f, 0x0014276f,
- 0x00102e70, 0x000f2a6a, 0x000d275e, 0x00071d4f, 0x000e204c, 0x001b2951, 0x00324464, 0x004b5c76, 0x0056687f, 0x00586981, 0x00556988, 0x004d6395, 0x00405790, 0x003b5490, 0x003f5d97, 0x00426299,
- 0x0056739c, 0x00637d9f, 0x007588ad, 0x00808fb6, 0x009ea3d5, 0x00b9bfe7, 0x00e0e9fe, 0x00f5faff, 0x00fffbfc, 0x00fffef8, 0x00fdfdf6, 0x00fbfffb, 0x00caced2, 0x007d7d82, 0x00938c92, 0x00c4b9bf,
- 0x00eef0ec, 0x00fbfcf9, 0x00fefffb, 0x00fefffc, 0x00fdfdfe, 0x00fdfdfe, 0x00fdfefe, 0x00fdfdfe, 0x00fffdfd, 0x00fefdfc, 0x00fdfefc, 0x00fdfffc, 0x00fffffd, 0x00fefffd, 0x00fcfefd, 0x00fcfefd,
- 0x00fefffd, 0x00fcfdfa, 0x00fdfefc, 0x00fcfffc, 0x00fffeff, 0x00fcfef3, 0x00fafcf5, 0x00fff4f9, 0x00fcfbfb, 0x00fbfdfb, 0x00fbfdfc, 0x00fcf4f5, 0x00fffbf8, 0x00f1fdf8, 0x00f0fdfb, 0x00fbf9fd,
- 0x00fdfbfe, 0x00fcfafa, 0x00fffef9, 0x00fdfbf3, 0x00fffcf7, 0x00fdfaf9, 0x00fefbff, 0x00fefcff, 0x00fafdfe, 0x00f6fefd, 0x00f9fefc, 0x00fefbfc, 0x00fbfbfe, 0x00f9fdff, 0x00f7feff, 0x00f9fefe,
- 0x00fefdf5, 0x00fefef4, 0x00fcfdf6, 0x00fcfdfc, 0x00f5fcfe, 0x00f6fffe, 0x00f6feff, 0x00f7feff, 0x00fffcfe, 0x00fcfcfc, 0x00fefdfe, 0x00fefbfd, 0x00fcfefd, 0x00f9fdfd, 0x00f4fefe, 0x00edfffb,
- 0x00fdfffb, 0x00fcfdfa, 0x00fefdfd, 0x00fcfcfd, 0x00fffffe, 0x00fcfcfb, 0x00fdfdfc, 0x00fefefd, 0x00fcfcff, 0x00fafcfd, 0x00fbfffe, 0x00fdfcfc, 0x00fffefe, 0x00fcfefc, 0x00fafffb, 0x00fafffc,
- 0x00fcfefd, 0x00fcfefb, 0x00fdfffd, 0x00fbfeff, 0x00fcfefe, 0x00fdfdfa, 0x00fefdf9, 0x00fefdf9, 0x00fdfdf8, 0x00fdfcf8, 0x00fefdf9, 0x00fefdf9, 0x00fffcf9, 0x00fffcf8, 0x00fffcf8, 0x00fffcf9,
- 0x00f8faf3, 0x00a9afbb, 0x002c375d, 0x003c538f, 0x002c5aaf, 0x002662b6, 0x00397acb, 0x004586d1, 0x004971b9, 0x005972bb, 0x00889ad4, 0x00c1d8ec, 0x00f0fcff, 0x00f8fefe, 0x00fafcf8, 0x00fdfbef,
- 0x00fffcf3, 0x00dad5d9, 0x006f6b7c, 0x006a6889, 0x009292c4, 0x00afb8e1, 0x008594c7, 0x004550a7, 0x00192596, 0x0015287e, 0x000d2567, 0x000a255d, 0x00182e7b, 0x00182b83, 0x001e2f88, 0x00344696,
- 0x00a98ead, 0x00d9c2e0, 0x00d8c4e1, 0x00d2c2de, 0x00d1c5e0, 0x00d2c8e2, 0x00d4c9e3, 0x00d5c8e3, 0x00d7c8e4, 0x00d7c6e3, 0x00d3c6e1, 0x00d2c9e3, 0x00d8ceeb, 0x00d6cdeb, 0x00d5cdea, 0x00d8cfed,
- 0x00d9ceec, 0x00d8d1ec, 0x00ddd2ee, 0x00ddd2ef, 0x00d8cce7, 0x00e59d93, 0x00da743f, 0x00da7413, 0x00e2813b, 0x00f29e9a, 0x00fda7c5, 0x00ed7892, 0x00fc601d, 0x00f06629, 0x00f38868, 0x00f4bada,
- 0x00daced5, 0x00e69ca6, 0x00e15f63, 0x00ec3b2c, 0x00ea662f, 0x00fab189, 0x00f9f2dc, 0x00b9c0ce, 0x00504458, 0x005a352e, 0x006c422f, 0x0058412b, 0x0045321d, 0x003f2b1c, 0x0036251a, 0x00281c15,
- 0x003c2e35, 0x00766a71, 0x00a198a3, 0x009e96a7, 0x00ccc3d8, 0x00898496, 0x00292739, 0x00615d7a, 0x009c96c3, 0x009f98c6, 0x00ada4d1, 0x00bab0d7, 0x00c1b8d5, 0x00beb4d3, 0x00bdb2d3, 0x00c2b7d8,
- 0x00abaeaf, 0x000c0f0d, 0x000b110c, 0x000d120c, 0x00151510, 0x001a1912, 0x001e1e14, 0x00232319, 0x002a241f, 0x002b241e, 0x0026231b, 0x001e201a, 0x001a1c18, 0x00151717, 0x000f1313, 0x000d1113,
- 0x000a1212, 0x000b1011, 0x000a0e0b, 0x00090c04, 0x00080b05, 0x00070904, 0x00040805, 0x00030808, 0x000f0b15, 0x00141016, 0x001a1514, 0x00211d15, 0x00312d26, 0x003a3a36, 0x004a4b4d, 0x0051545c,
- 0x0061606c, 0x00696675, 0x00787685, 0x00817e8e, 0x00878193, 0x00817b8b, 0x0086858f, 0x00b1afb8, 0x00e9e4ee, 0x00f2f1f7, 0x00efeef5, 0x00f0eefa, 0x00dfe1f2, 0x00d4daef, 0x00e3eafa, 0x00e2e8f8,
- 0x00d3cfe1, 0x00d2cbd8, 0x00a197a8, 0x00756d7d, 0x00554e60, 0x005a5666, 0x00918d99, 0x00b6b6c0, 0x00dcdee6, 0x00f1f5f9, 0x00f6fcfd, 0x00f3f9f9, 0x00f3f6fa, 0x00f5f6f8, 0x00faf8fa, 0x00f7f3f4,
- 0x00f2c1ac, 0x00f77f4d, 0x00f15f26, 0x00fc774a, 0x00f2ddd2, 0x00c7cbc4, 0x0062635d, 0x00583733, 0x00624631, 0x006d542c, 0x00765725, 0x007f5823, 0x00815d20, 0x00845f1f, 0x00845f1e, 0x00806319,
- 0x00846426, 0x00805d25, 0x007c5726, 0x0077522a, 0x006f4929, 0x00644630, 0x0059432f, 0x00533d2c, 0x004c3d31, 0x00474034, 0x00414334, 0x003c4436, 0x00384a3f, 0x00354941, 0x0031473e, 0x002c463f,
- 0x002f3c3f, 0x002b383a, 0x00233231, 0x001f2c2a, 0x001e2526, 0x001d2221, 0x00192019, 0x00181e17, 0x001b211c, 0x0020251f, 0x0020281f, 0x001e2822, 0x00202827, 0x00202727, 0x001c2321, 0x0019201e,
- 0x001c1e1d, 0x001c1f1c, 0x001b1f1a, 0x001c2019, 0x0022251c, 0x00757773, 0x00fdfefc, 0x00fcfefb, 0x00fbfcff, 0x00ffffff, 0x00fbfdfd, 0x00ced0cd, 0x007c7b77, 0x0067665f, 0x0028271f, 0x001d1a12,
- 0x00151d1c, 0x00111316, 0x000f1212, 0x00121114, 0x00181515, 0x00161412, 0x00323125, 0x0055503f, 0x00665244, 0x005c422f, 0x004e3a26, 0x00635f48, 0x00b7a299, 0x00d5c2bd, 0x00d9d2cf, 0x00d8dbda,
- 0x009b97a2, 0x0080656d, 0x008d5f67, 0x00ab7276, 0x00e3b9a7, 0x00e4d7d9, 0x00c0bcc5, 0x00989695, 0x00575248, 0x00393628, 0x00303322, 0x001c2514, 0x00141914, 0x000b0c0d, 0x00000004, 0x000a040a,
- 0x0028160a, 0x002b2716, 0x00252d1c, 0x002d3524, 0x005f5149, 0x00685752, 0x00453f34, 0x00474d3f, 0x00919387, 0x00b5a7a0, 0x009f9286, 0x006a5c50, 0x006e5b44, 0x008c7357, 0x00896e4c, 0x00896b4b,
- 0x007f6955, 0x00685a4b, 0x004f4a41, 0x003a3b36, 0x0049514f, 0x00979290, 0x00b9b2ab, 0x00958e7a, 0x00706142, 0x00726245, 0x007b6c54, 0x00685a4b, 0x003b2924, 0x001f0b06, 0x00240c01, 0x00472b14,
- 0x006b4328, 0x00816155, 0x00c5b6b3, 0x00efebf5, 0x00e5eaeb, 0x00dfe2cf, 0x00d6d6b7, 0x00e1ddb7, 0x00e9e8d7, 0x00e6ebe9, 0x00e7eef0, 0x00e4e7e9, 0x00e6e5e6, 0x00e6e2e2, 0x00dddbd6, 0x00dcded8,
- 0x00a2a5c2, 0x00494e80, 0x002c376c, 0x001d2956, 0x001e2e40, 0x0042352a, 0x005d482b, 0x00605a3c, 0x004a5341, 0x002b3b2d, 0x0017221d, 0x0034383b, 0x006f6a73, 0x00817d86, 0x00737479, 0x00848e90,
- 0x00aaa498, 0x009a978f, 0x0090928f, 0x0098999c, 0x00a09da7, 0x00a39a9f, 0x00998c8b, 0x007f6d65, 0x005c4231, 0x004f3526, 0x003f2715, 0x002d0d09, 0x00140000, 0x000f0100, 0x00090000, 0x00030000,
- 0x00030009, 0x0005060f, 0x00070d13, 0x000a1118, 0x001e212c, 0x002e2f3f, 0x0021212c, 0x0015171b, 0x004a4644, 0x0068635c, 0x00a6a09a, 0x00ede6e2, 0x00fdf9f8, 0x00fdfcfa, 0x00fbfafa, 0x00fbfdfb,
- 0x00dbdadc, 0x008e8f8f, 0x00818483, 0x00a0a3a4, 0x00747876, 0x003e4143, 0x00333739, 0x00313536, 0x0035383a, 0x00393a3e, 0x00393d3f, 0x0039424a, 0x00414b57, 0x00434f60, 0x00445569, 0x00485b70,
- 0x004c6380, 0x004c6886, 0x004d6d8a, 0x004b6f8c, 0x004e6f94, 0x00497395, 0x00457493, 0x00427093, 0x003e6a8f, 0x003b698a, 0x00356787, 0x002e5f7f, 0x004b7da3, 0x008abbe1, 0x00a7dafc, 0x008cbee7,
- 0x005aa3fd, 0x004c93f0, 0x004084df, 0x003c7fdb, 0x002b6cd3, 0x002466d7, 0x001d60d5, 0x001c61d2, 0x00245dbd, 0x003871c3, 0x0073a3e2, 0x008cb3ce, 0x007690c9, 0x005e78c0, 0x00385bac, 0x002652a3,
- 0x001a54ad, 0x00134db6, 0x001152bb, 0x001452b8, 0x00194eac, 0x00164ba6, 0x001c54a5, 0x003264b0, 0x005982bd, 0x005777a3, 0x00334c65, 0x00394b54, 0x00494c48, 0x004e4a40, 0x004d4537, 0x00524433,
- 0x005c4931, 0x005f4a2d, 0x00614d27, 0x00644e21, 0x00684d1c, 0x00684c19, 0x00664c18, 0x00654a1f, 0x0066472b, 0x0062462c, 0x005f452c, 0x0059452d, 0x0051402e, 0x004c4033, 0x00423a32, 0x00383832,
- 0x00343432, 0x0035332f, 0x00343227, 0x00352c20, 0x00433829, 0x006c4f34, 0x00aa835f, 0x00c49d75, 0x00c2916d, 0x00a9754d, 0x00835023, 0x00704011, 0x00704011, 0x007b4e1f, 0x00855729, 0x00845528,
- 0x0082451e, 0x00773c15, 0x007a481e, 0x007d5027, 0x00795d40, 0x00a99a85, 0x00faf7e8, 0x00fbfdf7, 0x00fefeff, 0x00fdfdff, 0x00fcfcfd, 0x00fbfdfa, 0x00f5fcfb, 0x00cfdad4, 0x00475445, 0x00445238,
- 0x004a582b, 0x00465822, 0x00455b20, 0x00445f24, 0x0041602d, 0x00465e29, 0x004a6229, 0x00486427, 0x005d652f, 0x00736534, 0x00876d3d, 0x008a6a3d, 0x00746e39, 0x00596c33, 0x004c6d32, 0x00497536,
- 0x005c7235, 0x006f723c, 0x00837a49, 0x009a8055, 0x00877449, 0x006e713e, 0x0061773c, 0x00527638, 0x005a783a, 0x005e783c, 0x005f7b3b, 0x005d7d3c, 0x00557c34, 0x00538034, 0x00518336, 0x004f8232,
- 0x00607d3a, 0x006b7b3f, 0x0073793f, 0x00767640, 0x0074683c, 0x008b643a, 0x008f693c, 0x00786b36, 0x00838a55, 0x00889058, 0x00767d44, 0x00777947, 0x00748049, 0x006f7d44, 0x00737e48, 0x00757842,
- 0x00725d3f, 0x005c4b36, 0x006c5d52, 0x00837b76, 0x00717b65, 0x0066774c, 0x00698046, 0x00587335, 0x00576245, 0x0056584d, 0x00485551, 0x002f5b51, 0x00154091, 0x00253485, 0x004b3a6d, 0x00824140,
- 0x0084240d, 0x00652516, 0x004e2623, 0x00322a2f, 0x00242434, 0x00172f6f, 0x00274691, 0x00273874, 0x00463757, 0x0050323f, 0x007c5555, 0x00996a64, 0x00a27364, 0x00a1705f, 0x00ac8068, 0x00a87d61,
- 0x00a8866b, 0x00a58f79, 0x00494029, 0x00383e29, 0x0055734d, 0x005e854e, 0x0055823b, 0x0055832f, 0x00648432, 0x00667f31, 0x00617a2e, 0x00597e34, 0x005b7b35, 0x00587935, 0x00597833, 0x00597833,
- 0x005a7939, 0x00587936, 0x00577a34, 0x00537b32, 0x00547934, 0x00537633, 0x0053752f, 0x0051762f, 0x00557234, 0x00557234, 0x00547335, 0x00547436, 0x00537235, 0x00507133, 0x004b7030, 0x004a702f,
- 0x004d6b2f, 0x004d6b2f, 0x004b6a2d, 0x0049682a, 0x0049652b, 0x0048632a, 0x00466329, 0x00456129, 0x00455e2b, 0x00465e2d, 0x007a8763, 0x00f1ede4, 0x00f8f9f9, 0x00fbfafa, 0x00fbfcf7, 0x00fdfcf5,
- 0x00e2effc, 0x006587bb, 0x00305fa9, 0x003167c0, 0x003968c0, 0x002f5eb8, 0x002658ae, 0x002a5baf, 0x003668b9, 0x003d70c2, 0x004073c7, 0x004375cc, 0x004879d1, 0x004575cb, 0x003c6dbe, 0x003567b5,
- 0x003866b9, 0x003868b9, 0x001d4e9c, 0x002557a4, 0x005486d2, 0x005b8ed9, 0x005286d0, 0x00487dc7, 0x004a7dca, 0x004e7fcf, 0x004679c9, 0x003b6dba, 0x003362ad, 0x003464ad, 0x00386ab2, 0x003a6bb3,
- 0x003762b4, 0x003260b3, 0x003263af, 0x003263af, 0x002f5fa8, 0x00295d98, 0x003e628c, 0x00796d87, 0x00725955, 0x00736861, 0x00c6bcb7, 0x00eadcdd, 0x00eee9e1, 0x00dedcd3, 0x00ddd7d5, 0x00f0dae4,
- 0x00f5e8eb, 0x00f4e5e4, 0x00d4c5bb, 0x009c8b7a, 0x00705c42, 0x006a5334, 0x006b512e, 0x006b4d2d, 0x0068422b, 0x005a361f, 0x004f2e14, 0x004c300e, 0x00543c21, 0x00705e4a, 0x00ac9e8f, 0x00d3c6bd,
- 0x00e5dce1, 0x00ede5ef, 0x00d4cad9, 0x00a89daf, 0x00776d83, 0x005e6379, 0x004c5974, 0x003d4b6c, 0x00324481, 0x002f4486, 0x00223d86, 0x001c3c87, 0x001c3983, 0x00193379, 0x00152e70, 0x00152b6a,
- 0x00132a6f, 0x0012296f, 0x000c2461, 0x00081d51, 0x00152446, 0x00373c52, 0x006c6e78, 0x00838083, 0x008b8388, 0x00857f86, 0x008d919e, 0x00909cbd, 0x0093a1c4, 0x0095a2c6, 0x0098a8c8, 0x009eb0ca,
- 0x00b2bed6, 0x00bcc3d4, 0x00cacbda, 0x00cfd3e1, 0x00e1dbed, 0x00eae7f4, 0x00f1f3f2, 0x00faf7f8, 0x00fffaff, 0x00fffcfb, 0x00fbfcf8, 0x00f5faf7, 0x00c7ced0, 0x007d7f81, 0x00939191, 0x00c5bfbf,
- 0x00eeecea, 0x00fbfaf9, 0x00fdfdfa, 0x00fafbf8, 0x00fbfcfc, 0x00fcfdfd, 0x00fbfdfb, 0x00fbfcfb, 0x00fffeff, 0x00fdfdfd, 0x00fbfdfb, 0x00fafdfa, 0x00fcfcfa, 0x00fcfcf9, 0x00fbfcf9, 0x00fcfcfa,
- 0x00fefdfe, 0x00fcfdfc, 0x00fbfbf8, 0x00f9fefc, 0x00fcfdfa, 0x00fbfcf8, 0x00fafcf8, 0x00fff8f9, 0x00fffafe, 0x00fffafb, 0x00fef9f9, 0x00fbf5f7, 0x00fbfafa, 0x00f5fdfb, 0x00f4fcfd, 0x00f9fafa,
- 0x00fcfcfa, 0x00fcfcfd, 0x00fbfdf6, 0x00fafcf3, 0x00fbfdf8, 0x00fafcf8, 0x00fbfbfb, 0x00fbfbfc, 0x00fafcfd, 0x00f9fbfe, 0x00f8fcfc, 0x00fbfdf9, 0x00f8fcfd, 0x00f7fcfb, 0x00f6fefa, 0x00f8fefa,
- 0x00fefbf6, 0x00fffef7, 0x00fdfdf6, 0x00fcfdf9, 0x00f9fffc, 0x00f6fdfb, 0x00f5fcfa, 0x00f7fefc, 0x00fffcff, 0x00fefcff, 0x00fbfbfa, 0x00faf9f6, 0x00f8fcfc, 0x00f8fcfc, 0x00f7fffa, 0x00f3fdfa,
- 0x00fcfdfb, 0x00fdfcfb, 0x00fdfbf9, 0x00fdfcfb, 0x00fdfefa, 0x00fafbfa, 0x00fbfcfb, 0x00fbfefd, 0x00fdfffd, 0x00fcfdfd, 0x00f9fbfb, 0x00fbfbfa, 0x00fbfcfc, 0x00fcfefe, 0x00fdfffe, 0x00f9fdfb,
- 0x00fcfdff, 0x00fcfcff, 0x00fdfdff, 0x00fbfefd, 0x00fafdfc, 0x00fbfdfa, 0x00fcfdf7, 0x00fbfef7, 0x00fdfcf8, 0x00fefdf8, 0x00fefdf8, 0x00fdfbf6, 0x00fdfaf5, 0x00fdfaf6, 0x00fefaf6, 0x00fdfaf7,
- 0x00f8f8f6, 0x00a2a6b2, 0x001e2440, 0x002b3967, 0x00395695, 0x004b71ae, 0x00537bb2, 0x006088b9, 0x0089a0c9, 0x00b3c2e6, 0x00deeaff, 0x00effcfc, 0x00f5fdfd, 0x00f9fefe, 0x00fafdf7, 0x00fbfdf3,
- 0x00fdfcf4, 0x00dedcdf, 0x00767585, 0x006a698b, 0x009492c5, 0x00aab2e0, 0x00788abd, 0x003f51a0, 0x001b2f98, 0x000e2783, 0x00041f6f, 0x00041d60, 0x000f206a, 0x00111d6b, 0x0018246f, 0x0036458a,
- 0x00b491aa, 0x00dfc4db, 0x00cebdd2, 0x00cac2d7, 0x00cccae1, 0x00d2d0e8, 0x00d3cbe6, 0x00d3c6e2, 0x00d5c5e5, 0x00d5c6e6, 0x00d2c6e2, 0x00d1c9e2, 0x00d7cdeb, 0x00d6cbe9, 0x00d5cbe7, 0x00dad1ee,
- 0x00dacfef, 0x00dbd1f1, 0x00ddd2ed, 0x00d5cce8, 0x00d5cce9, 0x00e3b2b2, 0x00d08667, 0x00ce7237, 0x00e77037, 0x00f47756, 0x00fa6e5d, 0x00f55944, 0x00f65b22, 0x00df5f35, 0x00f39280, 0x00f8bfd7,
- 0x00cfa3a1, 0x00cf6360, 0x00e44e45, 0x00f0432f, 0x00d58655, 0x00e6cead, 0x00eff7ec, 0x00dbd4e5, 0x008f667d, 0x00623e31, 0x005d3e25, 0x004f3721, 0x00412714, 0x00391e0e, 0x00311707, 0x002a1303,
- 0x00362019, 0x0054413d, 0x00625452, 0x0053494e, 0x00958c95, 0x007b7880, 0x002b2b37, 0x0059586c, 0x009f97c1, 0x00a39bc6, 0x00b0a8d4, 0x00c0b8e0, 0x00c1b8d8, 0x00bdb2d4, 0x00bab0d1, 0x00bdb4d3,
- 0x00a3b0a7, 0x00041106, 0x000a140d, 0x00101613, 0x0013170f, 0x001a1c13, 0x00221f15, 0x0029221a, 0x00272615, 0x00262512, 0x00292218, 0x00251d17, 0x001c1919, 0x0015151a, 0x000e1119, 0x000f101d,
- 0x0000080c, 0x00020d0b, 0x00090e09, 0x000a0c04, 0x00080b00, 0x00010f00, 0x00021107, 0x00060e10, 0x00080b19, 0x00100d1b, 0x001d131b, 0x002b1f19, 0x00363427, 0x0045433f, 0x00555461, 0x0062647c,
- 0x00656c75, 0x006d707c, 0x00848292, 0x008b8799, 0x008f8c9c, 0x009896a2, 0x00c2c0cc, 0x00e6e3f0, 0x00e5ecee, 0x00e4ebef, 0x00eaedf7, 0x00e4e4f9, 0x00d5d9e5, 0x00dce2e9, 0x00f1f7fd, 0x00f1f7fd,
- 0x00dae4e6, 0x00b9c1c8, 0x009192a6, 0x00757493, 0x0056567d, 0x0056586d, 0x00aca9b8, 0x00e3deea, 0x00f4f7f6, 0x00f3f5f7, 0x00f6f7fa, 0x00f9fafb, 0x00f7f6fa, 0x00f7f4fd, 0x00fbf7ff, 0x00fbf7ff,
- 0x00ebe4eb, 0x00eca370, 0x00e2611e, 0x00f87349, 0x00e8d9ee, 0x00eae6ee, 0x00aa9a9a, 0x00794937, 0x00324415, 0x004e4619, 0x0064461a, 0x00744c18, 0x00764f16, 0x00775413, 0x007a5b15, 0x007a5d14,
- 0x00705c0d, 0x00725712, 0x00745117, 0x00724a1a, 0x006e421c, 0x00653e20, 0x005e3b22, 0x00573820, 0x0043381b, 0x003e3c21, 0x003e4128, 0x003a422e, 0x00354536, 0x00314539, 0x002f443b, 0x002a413a,
- 0x00213a32, 0x001f352e, 0x0020302f, 0x001f2a2b, 0x0019221f, 0x00141c17, 0x00141b17, 0x00161d19, 0x00112213, 0x00152618, 0x001c2a1e, 0x00212b24, 0x00212a28, 0x00242929, 0x00232627, 0x00212428,
- 0x00151c18, 0x00161b16, 0x001a1f19, 0x00202319, 0x0026291d, 0x007b7b77, 0x00fefefd, 0x00fffeff, 0x00f6faf7, 0x00f9fcf9, 0x00f9fbfa, 0x00cdcdcb, 0x007e7b74, 0x00635e54, 0x0031291f, 0x0041372b,
- 0x00344133, 0x001d2922, 0x000b1216, 0x000e101c, 0x00151819, 0x00202017, 0x00403828, 0x00554a35, 0x00584a31, 0x004d3a27, 0x00462c1b, 0x00482a11, 0x00634b37, 0x00847160, 0x00bbaca4, 0x00e2d7d5,
- 0x00cecdc6, 0x00b3afac, 0x00a89b9d, 0x00bca6aa, 0x00e9ccd1, 0x00dcd2de, 0x00d3d0dd, 0x00e3d9e0, 0x00b7b59b, 0x0074795b, 0x002d341c, 0x000d1a08, 0x00020d08, 0x00030509, 0x0007000b, 0x001c0a1a,
- 0x001f2004, 0x00191900, 0x00241f0d, 0x003a3422, 0x00636050, 0x00636251, 0x0049473a, 0x0036362b, 0x004b5240, 0x00757b68, 0x00817d6a, 0x00665436, 0x007a6040, 0x00987857, 0x00957658, 0x00a48970,
- 0x00a2a28d, 0x00959a8c, 0x008e918e, 0x00828583, 0x00908f86, 0x00b3b6b7, 0x00ced0d0, 0x00b6b0a3, 0x006e683c, 0x00645b31, 0x00716543, 0x006a5d49, 0x004d3a33, 0x00341a0d, 0x003a1607, 0x00684024,
- 0x009d531c, 0x008e5e3c, 0x00cab3a6, 0x00e7eef5, 0x00dff2f6, 0x00e5ece3, 0x00e0dcc8, 0x00e9ddc0, 0x00e2ead2, 0x00d9e8de, 0x00e0ece9, 0x00e0e7de, 0x00e7ddf0, 0x00e9dbe9, 0x00e7d8de, 0x00e8e0d7,
- 0x0096a69e, 0x00425471, 0x00324273, 0x00213466, 0x0030475d, 0x00715c54, 0x00896852, 0x0070654e, 0x00305130, 0x001b3721, 0x000b1e14, 0x00161919, 0x00453941, 0x00625d62, 0x00727477, 0x007d8c8b,
- 0x00929266, 0x00878a6b, 0x00717266, 0x00606061, 0x00796e78, 0x008d7d80, 0x00988183, 0x008c7373, 0x00564f46, 0x003b3933, 0x002e2c2b, 0x00151516, 0x00030102, 0x00040102, 0x00070407, 0x00060209,
- 0x00000000, 0x00020202, 0x00080808, 0x000f0f0f, 0x00202020, 0x00242424, 0x00171717, 0x00090909, 0x00202020, 0x003f3f3f, 0x009a9a9a, 0x00ebebeb, 0x00fbfbfb, 0x00fefefe, 0x00fefefe, 0x00ffffff,
- 0x00cedbd9, 0x0087908e, 0x00868686, 0x00a7a4a3, 0x007a7673, 0x00403e3a, 0x00383432, 0x00373432, 0x0031342d, 0x00333833, 0x00383c3e, 0x00394041, 0x00434a53, 0x00444f5b, 0x00475668, 0x00485c74,
- 0x00426674, 0x00426b7d, 0x004f7089, 0x0052728d, 0x0052748d, 0x00487192, 0x004c739a, 0x00467097, 0x00356884, 0x00346680, 0x00326583, 0x00356988, 0x0075a6cd, 0x00a3d5f7, 0x008dbcf3, 0x0079a6e0,
- 0x003894f1, 0x003589e4, 0x003881da, 0x003778c9, 0x002667cb, 0x002161d3, 0x001c5ad8, 0x00235ede, 0x00235cae, 0x005583bd, 0x00c2def3, 0x00dad7cd, 0x00c0aed3, 0x00c2b4e2, 0x00b8b8ec, 0x0090a2d6,
- 0x00347bac, 0x001867b4, 0x00105dc1, 0x001459c7, 0x001f57aa, 0x001956b6, 0x001555bb, 0x001e57b5, 0x003b76b5, 0x005483b0, 0x00456789, 0x00354e5d, 0x00424b4a, 0x004b4a44, 0x004f473a, 0x00574639,
- 0x00504722, 0x00564b25, 0x005c4d25, 0x005f4c1e, 0x00654e1c, 0x00674e1b, 0x00674e1e, 0x00684e23, 0x005e4b22, 0x005b4724, 0x005d4729, 0x005a4225, 0x00514029, 0x004a3f2e, 0x00423c33, 0x003a3734,
- 0x002b3324, 0x002c2f21, 0x00372d22, 0x00402f20, 0x006c5241, 0x00ab8062, 0x00e1a987, 0x00e3ad8c, 0x00be9164, 0x00ac7e52, 0x009c6d41, 0x008e5f32, 0x00895830, 0x008a5930, 0x0089582f, 0x00825028,
- 0x007d3b11, 0x00763b17, 0x00754226, 0x00684026, 0x006d5847, 0x00a8a093, 0x00fdfaf1, 0x00ffffff, 0x00f6fbf6, 0x00f9f9fa, 0x00fcfcfd, 0x00fafff9, 0x00f7fefb, 0x00c0cac5, 0x00404f42, 0x003f553c,
- 0x00375c23, 0x00385d1c, 0x003d601f, 0x003f5f23, 0x00415e2b, 0x004b5b28, 0x004e622b, 0x003f6629, 0x00406122, 0x005b5121, 0x008b603c, 0x009c6546, 0x00776a3d, 0x00556a32, 0x004b7133, 0x00487433,
- 0x004f7028, 0x005e6b30, 0x007e7545, 0x0091774f, 0x00977954, 0x0073653a, 0x006c6c3a, 0x0060713b, 0x004e7c31, 0x004e8134, 0x00547f37, 0x005c7935, 0x00527f34, 0x00508336, 0x00508337, 0x00558238,
- 0x00637d35, 0x0073793d, 0x007f7243, 0x0089754c, 0x00917856, 0x00976f4f, 0x009d7755, 0x007b7547, 0x0072884a, 0x0084854e, 0x00887d4a, 0x00887649, 0x007d8650, 0x0086945c, 0x009aa06f, 0x009f956b,
- 0x0083774f, 0x004e4635, 0x005d565a, 0x00676775, 0x00657b60, 0x006c8e43, 0x00698f28, 0x006c931e, 0x00698c34, 0x006a804e, 0x00698363, 0x0040794f, 0x000d2e7b, 0x002e3376, 0x00503454, 0x00662509,
- 0x007c2f0e, 0x00431411, 0x00210c1e, 0x000a172e, 0x0006223b, 0x00102964, 0x00253680, 0x00292a67, 0x003b3247, 0x002d1f23, 0x00584642, 0x00776358, 0x00584032, 0x00513523, 0x008b6855, 0x009f7662,
- 0x0099795f, 0x00907d59, 0x006b633a, 0x00636f38, 0x00608244, 0x00578243, 0x005a8246, 0x005c8245, 0x00588133, 0x005a7d25, 0x005c7a2a, 0x005b7c36, 0x005c7d38, 0x005a7b36, 0x005d7b39, 0x005e7c39,
- 0x00547931, 0x00537931, 0x00577834, 0x00577733, 0x00567931, 0x0055772f, 0x00567631, 0x00567631, 0x004e742d, 0x004f732e, 0x00527230, 0x00517130, 0x00507232, 0x004e7031, 0x00506e30, 0x00506d30,
- 0x00476c2a, 0x00486b2a, 0x004a6a2d, 0x0048682d, 0x0048682b, 0x00456228, 0x0049632d, 0x0048612c, 0x003f6025, 0x00425f27, 0x007c8d69, 0x00f0f3f1, 0x00fefcf5, 0x00fff9f3, 0x00fffcfa, 0x00fdfbff,
- 0x00ceedf0, 0x00658fc3, 0x00436cb9, 0x003f6dc4, 0x003262bf, 0x002e61bc, 0x003668c3, 0x003e71c6, 0x003f7cbf, 0x00427cc5, 0x00457bcd, 0x004478d1, 0x004273d1, 0x003d6cc4, 0x003b67bb, 0x003865b0,
- 0x003a6bb7, 0x003a6ab8, 0x002251a1, 0x002957a8, 0x004a7bcb, 0x005384d4, 0x00578ad8, 0x005589d7, 0x00457ec5, 0x003f7bc0, 0x00477cc8, 0x004876c6, 0x003e6cb7, 0x003766aa, 0x003b68ad, 0x003a68af,
- 0x003366b3, 0x003163b3, 0x003662b7, 0x003362b3, 0x003361a8, 0x002f5fa5, 0x003a64a2, 0x005174a0, 0x004e6165, 0x006b7069, 0x00c9c1b7, 0x00f0e0d9, 0x00f3e4e2, 0x00dfd5d5, 0x00ded8da, 0x00e7e3e5,
- 0x00eae7e7, 0x00e6ddd6, 0x00c0afa3, 0x00988266, 0x00785f35, 0x00624717, 0x00684c1b, 0x007c5c31, 0x00816740, 0x006c5331, 0x004a300f, 0x00412902, 0x003d2907, 0x0044351c, 0x006b5d4e, 0x00978984,
- 0x00bab8b2, 0x00d6d0cf, 0x00e0d2d9, 0x00beaeb1, 0x007b6970, 0x00524b5f, 0x003a3e5b, 0x002a335a, 0x00143269, 0x0015387e, 0x00163d8f, 0x00113990, 0x00103785, 0x00113476, 0x000f2e67, 0x00122b5f,
- 0x000e225f, 0x000c225d, 0x000e245e, 0x00162959, 0x0034394e, 0x00585152, 0x008e7b6e, 0x009a7a66, 0x00947b5b, 0x00988165, 0x00bbaba0, 0x00c6c8cf, 0x00d9d9de, 0x00dddee5, 0x00e0dae6, 0x00e6dfe8,
- 0x00dcdfd9, 0x00e2e0da, 0x00ebe0dc, 0x00eae0d7, 0x00e8dbcd, 0x00e9d8d4, 0x00fce7ec, 0x00fff8ff, 0x00f9f7f7, 0x00f6f8f8, 0x00f9fafb, 0x00f9fbfd, 0x00c4c8cb, 0x006b6c6d, 0x006f6f6c, 0x00969591,
- 0x00b0b6ac, 0x00bcc1b9, 0x00c5c6c2, 0x00c3c3c1, 0x00c3c6c3, 0x00c3c5c2, 0x00c5c3c1, 0x00c4c1c0, 0x00bec2b8, 0x00bfc3bb, 0x00c3c5c2, 0x00c5c6c4, 0x00c4c5c1, 0x00c4c5c1, 0x00c6c5c5, 0x00c6c5c5,
- 0x00c0c5bc, 0x00c1c6bd, 0x00c3c7c2, 0x00c4c7c3, 0x00c4c5c2, 0x00c3c3c4, 0x00c4c3c7, 0x00c5c4c6, 0x00bdc1bd, 0x00bec0bd, 0x00c1bfc0, 0x00c2bfc2, 0x00c0c1c0, 0x00c0c1c1, 0x00c3c1c5, 0x00c5c3c7,
- 0x00bdc4bb, 0x00bec5be, 0x00c1c4c0, 0x00c2c4c0, 0x00c2c6c2, 0x00c2c6c3, 0x00c4c4c4, 0x00c4c5c6, 0x00bcc4bb, 0x00bdc4bd, 0x00c0c2c0, 0x00bfbfc0, 0x00c0c1c2, 0x00c1c1c3, 0x00c5c1c3, 0x00c4c0c1,
- 0x00bdbfb5, 0x00c1c2bb, 0x00c4c5c0, 0x00c3c4be, 0x00c4c5be, 0x00c4c5bf, 0x00c4c4c2, 0x00c4c4c3, 0x00bdc2bb, 0x00bec2ba, 0x00c1c1bf, 0x00c2c1c0, 0x00c4c4c1, 0x00c5c4c3, 0x00c6c5c7, 0x00c7c4c6,
- 0x00bcc3ba, 0x00bfc3bb, 0x00c3c2be, 0x00c4c3c1, 0x00c2c3c2, 0x00c1c3c1, 0x00c4c3c2, 0x00c9c6c4, 0x00c1c4be, 0x00bfc2bc, 0x00c1c2bf, 0x00c3c3c3, 0x00c4c2c6, 0x00c5c3c6, 0x00c7c5c8, 0x00c8c6ca,
- 0x00bec0bc, 0x00bfc0be, 0x00c3c2c3, 0x00c3c2c3, 0x00c4c4c4, 0x00c2c2c1, 0x00c2c2c0, 0x00c6c5c3, 0x00bdc1b9, 0x00bbbeba, 0x00c6c7c6, 0x00e2e3e0, 0x00fefefa, 0x00fefdfb, 0x00fffdfd, 0x00fffdfe,
- 0x00eef6f0, 0x00a7afb4, 0x00424659, 0x00696f89, 0x009ca5c9, 0x00bbc6e7, 0x00c8d1ee, 0x00d0daf4, 0x00d8e8eb, 0x00e7f7f6, 0x00fafefe, 0x00fdfefc, 0x00fdfdfd, 0x00fdfefd, 0x00fefffe, 0x00fbfefd,
- 0x00f3fce8, 0x00dae1db, 0x007d828e, 0x00676787, 0x00908ec5, 0x00a4a7df, 0x007780c2, 0x004556a1, 0x00133d8f, 0x00092f88, 0x0001207b, 0x0000156a, 0x000d1863, 0x000e175e, 0x001b2468, 0x00373e83,
- 0x00a7818a, 0x00d6bcc9, 0x00cec1cf, 0x00c7c8d6, 0x00c6cde1, 0x00cecee7, 0x00d2c9e8, 0x00d7c7ee, 0x00ccc6e0, 0x00d1c8e4, 0x00d6ceea, 0x00d5cee7, 0x00d4c9e8, 0x00d3cae6, 0x00dad0ed, 0x00e1d2f2,
- 0x00d4d0e6, 0x00d5d0e5, 0x00d6cce9, 0x00d3c8e6, 0x00d8cdea, 0x00e7c6d9, 0x00daa1a8, 0x00cf7c76, 0x00e46334, 0x00f05f21, 0x00f85716, 0x00f75812, 0x00e8572e, 0x00d5634e, 0x00fba4a4, 0x00fab8c9,
- 0x00c67f5e, 0x00db583c, 0x00f14d35, 0x00f86041, 0x00dec19c, 0x00e2eee0, 0x00effaff, 0x00f7dffe, 0x00b68487, 0x007d5f43, 0x0079613f, 0x00755847, 0x00724e40, 0x006e4d37, 0x006f4833, 0x00714b38,
- 0x00664e2d, 0x005c492f, 0x00493526, 0x002b1e16, 0x00443b36, 0x003e3e42, 0x0021212d, 0x0059596b, 0x009b9eb3, 0x009b9bb5, 0x00aeaacc, 0x00c1bbe1, 0x00c1b9e0, 0x00b8aed3, 0x00b9adcf, 0x00beb1d2,
- 0x00aab2b0, 0x00111917, 0x00111817, 0x00181d1e, 0x0020231f, 0x00272923, 0x002a2922, 0x00302b24, 0x00333226, 0x00332e23, 0x002b2620, 0x0022211f, 0x001b191b, 0x00181417, 0x00121216, 0x00111015,
- 0x000d0f10, 0x000b0d0d, 0x00050806, 0x00040b04, 0x00030b00, 0x00010b00, 0x00030c01, 0x00091103, 0x00110e0f, 0x00181112, 0x001f150f, 0x00292012, 0x00383925, 0x004a4c43, 0x005a5f64, 0x00686f80,
- 0x00757483, 0x00807e8d, 0x008c8898, 0x008f8b9c, 0x009b99a6, 0x00bab9c2, 0x00ebebf2, 0x00f8f8ff, 0x00e6e7f0, 0x00e4e7f4, 0x00e2e4f0, 0x00d7d8ed, 0x00d4d9e8, 0x00e7edf4, 0x00f3f8fc, 0x00f5fbfb,
- 0x00f0f7f8, 0x00dde3eb, 0x009597a7, 0x0045455d, 0x002a2a48, 0x005d5e6f, 0x00cfced6, 0x00f9f7fd, 0x00f9f8fd, 0x00f9f9fc, 0x00fbfafd, 0x00faf9fb, 0x00f9f8fc, 0x00f9f8fe, 0x00f8f7fe, 0x00faf8ff,
- 0x00fbf6fd, 0x00fabd93, 0x00d55f22, 0x00f06840, 0x00e8d4e6, 0x00f4edf7, 0x00dbcaca, 0x00986c5d, 0x002e3610, 0x00463512, 0x00573612, 0x005d3b11, 0x005f3f0e, 0x0062460e, 0x00624a0d, 0x00634c0b,
- 0x00634c09, 0x0065490e, 0x00654512, 0x00623e13, 0x005f3614, 0x00563317, 0x00503019, 0x00492e17, 0x003f321a, 0x003a361f, 0x00373a25, 0x00333d2a, 0x002d4030, 0x002a4033, 0x00273c31, 0x0022392f,
- 0x0020332f, 0x001b2d2a, 0x00192728, 0x00162122, 0x00121b18, 0x00101813, 0x00111814, 0x00131c16, 0x00152218, 0x001a271c, 0x00202b21, 0x00232d26, 0x00232c29, 0x00222a28, 0x001e2424, 0x001b2224,
- 0x00161917, 0x00161916, 0x00191e18, 0x0020241b, 0x00272c20, 0x007b7c78, 0x00fcfcfc, 0x00fefcfe, 0x00fbfcfd, 0x00fefefe, 0x00f9faf9, 0x00cfd0cc, 0x007c7a72, 0x00656157, 0x00433e33, 0x0060584b,
- 0x005d5e51, 0x0042443d, 0x00121113, 0x000d0b13, 0x00141212, 0x001d1a0e, 0x00342e1a, 0x00433a20, 0x00463722, 0x00453222, 0x00422a19, 0x003f2511, 0x003e2d1a, 0x00423427, 0x00645c52, 0x00aba6a0,
- 0x00deddd7, 0x00e6e2e0, 0x00d6cccb, 0x00e5d5d4, 0x00ebd7d7, 0x00e1dbe1, 0x00d6d7db, 0x00e9e5e3, 0x00efe8d7, 0x00b3b29e, 0x00414232, 0x00081004, 0x00000702, 0x00040401, 0x00130c08, 0x0031201c,
- 0x003d3219, 0x0031270f, 0x002d200c, 0x00392d1b, 0x0048402d, 0x004d4735, 0x00474031, 0x002f291c, 0x00201a0f, 0x003c362b, 0x00584f41, 0x00594930, 0x0080694a, 0x00997d5c, 0x008e7253, 0x00a68e73,
- 0x00cfcab6, 0x00c8c8bb, 0x00abaaa3, 0x0096958d, 0x00969080, 0x00ada9a4, 0x00ccc9c3, 0x00b9b19f, 0x00746b47, 0x00605431, 0x00615336, 0x00635542, 0x004d3c32, 0x00331d0e, 0x003b1f0b, 0x00715434,
- 0x00af5c20, 0x00824720, 0x00ab8b76, 0x00e8e6e2, 0x00eef8f5, 0x00f6f6e8, 0x00efe6d0, 0x00efdfc4, 0x00eae7d7, 0x00e3eae5, 0x00dde8e3, 0x00deecd8, 0x00e7e5eb, 0x00e9dfe5, 0x00e7dbdc, 0x00ebe3d8,
- 0x00aeb6b9, 0x005f668d, 0x003f467e, 0x003a417d, 0x004c5873, 0x008b746e, 0x0091735a, 0x00725e46, 0x00424731, 0x002a3121, 0x000f180f, 0x000a0d0b, 0x00211f22, 0x004c4c4d, 0x006d7170, 0x00767f7e,
- 0x00927860, 0x00867465, 0x00766b66, 0x00645d60, 0x006c666d, 0x00827877, 0x00948981, 0x009e9187, 0x007d796f, 0x00565850, 0x00373936, 0x001d1c1d, 0x00040404, 0x00030101, 0x00050605, 0x00090a0a,
- 0x00010101, 0x00030303, 0x000a0a0a, 0x00151515, 0x001b1b1b, 0x00131313, 0x00090909, 0x00040404, 0x000d0d0d, 0x001b1b1b, 0x00818181, 0x00e8e8e8, 0x00fdfdfd, 0x00fdfdfd, 0x00fefefe, 0x00fdfdfd,
- 0x00d4dadf, 0x008c9093, 0x00858486, 0x00a6a4a2, 0x00787470, 0x00413f39, 0x00383531, 0x00353330, 0x00343532, 0x0036383a, 0x00353d3a, 0x0032453a, 0x00395047, 0x003c5655, 0x003c5c5e, 0x003e646d,
- 0x00406d77, 0x0042717f, 0x00477a86, 0x004b7a8b, 0x004b7b8a, 0x004c759a, 0x004a6f9f, 0x00486c9f, 0x003c6794, 0x00366193, 0x00325f92, 0x004c7bb2, 0x008dbdf8, 0x0095c6ff, 0x0072a3ea, 0x005f8fdb,
- 0x004680da, 0x004983d3, 0x003f79c4, 0x003571b8, 0x002164bf, 0x001d61ca, 0x001d5dca, 0x00255dc4, 0x004769a8, 0x0091a4c9, 0x00e5f3f4, 0x00d8e0c6, 0x00b4a5b3, 0x009d8298, 0x00c5adbe, 0x00d2c5cb,
- 0x00a7c0d2, 0x0084aade, 0x004173c6, 0x002359c2, 0x00245db6, 0x001e5bbc, 0x001657b5, 0x001a56b0, 0x00285fa8, 0x004675b0, 0x005c82af, 0x00466480, 0x0039474f, 0x00454947, 0x0048463b, 0x004f4839,
- 0x0057492f, 0x00594b2e, 0x005c4c2b, 0x005e4d25, 0x00645023, 0x00654f21, 0x00654f23, 0x00664f26, 0x005f4d2a, 0x005d4a2c, 0x005b472c, 0x0058422a, 0x004e3e2c, 0x00493e32, 0x00423d35, 0x003a3734,
- 0x0036342a, 0x0030291f, 0x004e3c2f, 0x00745c4a, 0x00ae8f78, 0x00d8a987, 0x00ecb28b, 0x00dca67f, 0x00cd9873, 0x00ce9970, 0x00c99568, 0x00c49066, 0x00bb885c, 0x00ae7b53, 0x009b693d, 0x00915f31,
- 0x0096532f, 0x008d5232, 0x00764529, 0x005c3a1f, 0x00665744, 0x00a9a596, 0x00fcfbf3, 0x00fdfdfc, 0x00fbfefd, 0x00fdfcff, 0x00fffdff, 0x00fdfffb, 0x00f9fffc, 0x00a6afa9, 0x00394a3a, 0x003c5538,
- 0x003c5b27, 0x003d5e20, 0x00406021, 0x00426025, 0x00435f2c, 0x004a5b26, 0x00496127, 0x003c6725, 0x00425f23, 0x005d5123, 0x0089623e, 0x009e6c4c, 0x00746d3e, 0x0051692f, 0x00476e2e, 0x0045712e,
- 0x005b6c30, 0x0070723d, 0x008f8252, 0x00967951, 0x009f7f5c, 0x00827049, 0x006f703f, 0x0060743c, 0x00547933, 0x00537d35, 0x00587c36, 0x005e7633, 0x00557b32, 0x00568036, 0x00578036, 0x005b7f35,
- 0x00778446, 0x0078723d, 0x007c653d, 0x008d6f4b, 0x00a78464, 0x00a07250, 0x00a47c54, 0x007b7340, 0x006c763d, 0x007c713f, 0x00967e51, 0x00a78860, 0x009a9566, 0x0091905e, 0x00978f63, 0x00a08863,
- 0x00988858, 0x00786f59, 0x00414142, 0x002e3851, 0x00405f69, 0x005e8772, 0x00578557, 0x005e8d45, 0x00658c40, 0x00688545, 0x006b8a4f, 0x0048743d, 0x00133271, 0x002b326c, 0x0036213d, 0x005c2209,
- 0x007b3125, 0x0049192e, 0x00150220, 0x00030a30, 0x001a2c53, 0x00173471, 0x000a2862, 0x00132856, 0x0037354a, 0x001c161d, 0x00251b1c, 0x002f2622, 0x00211513, 0x002b1c16, 0x005e4940, 0x00876c62,
- 0x0087695e, 0x007c6b50, 0x0079734b, 0x006c7b40, 0x0060833e, 0x005b8642, 0x005b8444, 0x005b8040, 0x00617f37, 0x006e8639, 0x006b833a, 0x005b7d37, 0x005b7c37, 0x005a7c38, 0x005a7c38, 0x00587b36,
- 0x00577932, 0x00567831, 0x00577734, 0x00577733, 0x00557930, 0x0053772e, 0x00547530, 0x00547530, 0x00537430, 0x00527431, 0x00527231, 0x00527231, 0x004e702f, 0x004d6f2f, 0x004c6c2c, 0x004b6c2c,
- 0x004c6e2f, 0x004c6c2e, 0x004a692e, 0x0049682d, 0x0048682b, 0x004a672c, 0x0047622a, 0x00466128, 0x00456129, 0x00455e29, 0x007d8d6b, 0x00f5f8f7, 0x00fffef7, 0x00fefaf3, 0x00fdfbf8, 0x00fafcff,
- 0x00d1eaf3, 0x006f92c9, 0x004e79c2, 0x00477acd, 0x004172ce, 0x004376d4, 0x004479d5, 0x004a7dd1, 0x00447fc8, 0x00427bc9, 0x003d73c8, 0x003c70cc, 0x00386bca, 0x00366ac2, 0x003b6ec1, 0x004275c0,
- 0x004472c7, 0x004273c8, 0x002859ae, 0x00295cae, 0x004277c7, 0x00497ecc, 0x005286d3, 0x00578eda, 0x005188d4, 0x00457ec9, 0x004075c2, 0x004474c8, 0x003f71bc, 0x003a6db4, 0x00396bb0, 0x00386ab3,
- 0x003b6dc4, 0x00396ac2, 0x003765be, 0x003566b7, 0x003365ad, 0x003668b4, 0x004370b5, 0x00587dad, 0x005b6d80, 0x007f848a, 0x00d0c7ca, 0x00eddde0, 0x00ecdbe3, 0x00e3d7df, 0x00e3dbe2, 0x00eae3eb,
- 0x00ece7eb, 0x00e9e0df, 0x00cabbb5, 0x00b7a391, 0x008f7657, 0x00624622, 0x0062441f, 0x0081603b, 0x00937552, 0x00785a3c, 0x00503215, 0x004a2b12, 0x0040260d, 0x0036210d, 0x00443224, 0x00615045,
- 0x0093897c, 0x00b2a699, 0x00ccbdad, 0x00c3b09f, 0x00907d66, 0x006d5f65, 0x00535063, 0x003c3d5a, 0x001b2b5f, 0x00182f6e, 0x001a367f, 0x00183783, 0x00133173, 0x00122c64, 0x00142c5b, 0x001b2f59,
- 0x00293156, 0x00303c5c, 0x0042506c, 0x005a6679, 0x0072726c, 0x007f725b, 0x008d7550, 0x00916d41, 0x00927144, 0x009a7a51, 0x00b1977b, 0x00c4b8ae, 0x00ddd2c8, 0x00e8dcd4, 0x00e8d8d5, 0x00e6d6d1,
- 0x00e1d0c7, 0x00dfccc1, 0x00d5bfb2, 0x00c8b6a4, 0x00baa591, 0x00af9c93, 0x00dcccc8, 0x00fdf7f4, 0x00fcf9fa, 0x00fbfafb, 0x00fcfcfd, 0x00fcfeff, 0x00b2b6b7, 0x003a3d3c, 0x001a1b18, 0x00282a26,
- 0x002d2f2d, 0x00323532, 0x00363734, 0x00343531, 0x00343632, 0x00333532, 0x00333331, 0x00343331, 0x0032342f, 0x00333430, 0x00353533, 0x00353634, 0x00363732, 0x00353732, 0x00363733, 0x00363732,
- 0x00353531, 0x00353531, 0x00363634, 0x00363634, 0x00353632, 0x00343433, 0x00333434, 0x00343533, 0x00333233, 0x00313130, 0x00312f30, 0x00302e2f, 0x002d2e2e, 0x002d2f2f, 0x00303032, 0x00323333,
- 0x00313330, 0x00313430, 0x00313330, 0x00313430, 0x00323732, 0x00323733, 0x00333532, 0x00333532, 0x00313631, 0x00313531, 0x00323231, 0x00312f31, 0x002f2f31, 0x00303131, 0x00323230, 0x0031332f,
- 0x0031312d, 0x0033332f, 0x00353631, 0x00373830, 0x0034352e, 0x00343531, 0x00333432, 0x00323432, 0x0032332f, 0x0032322e, 0x00333231, 0x00333331, 0x00353631, 0x00353732, 0x00363835, 0x00373735,
- 0x0031332f, 0x00333331, 0x00353332, 0x00333231, 0x00313130, 0x002f302e, 0x002f312d, 0x0032322e, 0x00323231, 0x00323230, 0x00333331, 0x00333333, 0x00333334, 0x00333333, 0x00323232, 0x00313132,
- 0x002f2d2f, 0x00302f30, 0x00303030, 0x00303130, 0x00313331, 0x00323331, 0x0031322f, 0x00343432, 0x002f302d, 0x002f302e, 0x00444443, 0x00a1a29f, 0x00fafbf8, 0x00fbfbf9, 0x00fcfcfb, 0x00fdfdfb,
- 0x00f4f7f6, 0x00b4b9bd, 0x005f636f, 0x009198a8, 0x00c6d0e3, 0x00e9f4ff, 0x00f4fdff, 0x00f6fdfe, 0x00f7fdfb, 0x00f8fefc, 0x00fcfefd, 0x00fdfffc, 0x00fefefe, 0x00fdfffc, 0x00fdfefa, 0x00fafdf8,
- 0x00f9feee, 0x00ebefe9, 0x008b8e97, 0x0064627f, 0x008c88bb, 0x009e9ed5, 0x007177b8, 0x0045549e, 0x002448a1, 0x001a3e9d, 0x000a2a8a, 0x00041d78, 0x000d1c6d, 0x0014226e, 0x001a2872, 0x00283580,
- 0x00916779, 0x00ccadc1, 0x00d6c6d9, 0x00cfcddf, 0x00cacfe4, 0x00cecee6, 0x00d0c9e4, 0x00d3c4e5, 0x00d1c6e2, 0x00d7cce9, 0x00d8d0ec, 0x00d5cde8, 0x00d4c9e7, 0x00d4cbe6, 0x00d7d0eb, 0x00dfd5f0,
- 0x00dad3ee, 0x00d7cfe9, 0x00d1c7e5, 0x00d2c7e4, 0x00dad1ed, 0x00e4cde7, 0x00ddb9c8, 0x00d49c9e, 0x00dc785f, 0x00e16743, 0x00e56134, 0x00e95f33, 0x00d0634a, 0x00d68079, 0x00f8bec6, 0x00dfb4c9,
- 0x00ea6f36, 0x00f86230, 0x00f75127, 0x00fe7754, 0x00f6d6bf, 0x00e9eeec, 0x00eff7ff, 0x00ebd5f6, 0x00bb8583, 0x00a5724c, 0x00a87d51, 0x00967462, 0x00946f5c, 0x009b725c, 0x00a2755c, 0x00a98064,
- 0x009f7e63, 0x00846853, 0x005b4333, 0x002c1d12, 0x00180e07, 0x00161617, 0x0015161d, 0x00504f5c, 0x009897ae, 0x009f9cb8, 0x00ada8ca, 0x00beb7dd, 0x00c2bbe1, 0x00b7afd2, 0x00afa6c7, 0x00b7adcd,
- 0x00b0b2b7, 0x001e2227, 0x001f2329, 0x0027292f, 0x00363739, 0x003d3c3f, 0x00413f3f, 0x0045423e, 0x00494341, 0x0047403d, 0x003b3838, 0x00262e30, 0x00222024, 0x001c1718, 0x00161111, 0x0016100f,
- 0x00170f13, 0x00131112, 0x000c1312, 0x00051213, 0x00010f0f, 0x00020a05, 0x00060b02, 0x00090e06, 0x000f0f0c, 0x0017150c, 0x00201f0e, 0x00282410, 0x003f3d25, 0x00504b43, 0x00636062, 0x00716d7d,
- 0x007d7683, 0x0086808c, 0x008e8996, 0x008f8c9a, 0x00a9a7b5, 0x00d1d0db, 0x00f4f3fd, 0x00efeff9, 0x00e4e3f0, 0x00e1e2f1, 0x00d7d9e7, 0x00d6d8ee, 0x00e6eaf6, 0x00f5f7fe, 0x00f4f6fc, 0x00f7fbfb,
- 0x00f4f7f8, 0x00f6fafd, 0x00b5b8c1, 0x00626373, 0x00747386, 0x00bab9c5, 0x00f5f3fc, 0x00f8f8fc, 0x00fafafd, 0x00fcfcfc, 0x00fbfbfb, 0x00fbfafd, 0x00fbfaff, 0x00faf9fe, 0x00f9f8fe, 0x00f9f7ff,
- 0x00fbf7ff, 0x00fad3b1, 0x00d77141, 0x00e8603d, 0x00e0c4d6, 0x00e8dbea, 0x00e7d5de, 0x00bf9490, 0x004b4a31, 0x00442c15, 0x004a2912, 0x0045290e, 0x0048300c, 0x004a340b, 0x004c380b, 0x004e3c0b,
- 0x00513c09, 0x0052390a, 0x0052350c, 0x00502f0d, 0x004f290d, 0x0049260f, 0x00442510, 0x003e240f, 0x00382b16, 0x0035301c, 0x00343623, 0x002f3928, 0x002b3d2f, 0x00273b2f, 0x0023382d, 0x001d332a,
- 0x001d2d2a, 0x00162623, 0x00132121, 0x00131d1e, 0x00131b19, 0x00141916, 0x00141917, 0x00161c18, 0x0019231e, 0x001c2721, 0x00202a23, 0x00232c26, 0x00232c29, 0x00212928, 0x001d2323, 0x00192022,
- 0x00151918, 0x00141815, 0x00191c18, 0x0023251d, 0x002c2e24, 0x007f7e7b, 0x00fefdfd, 0x00fefcff, 0x00fdfdff, 0x00fdfdfd, 0x00fafcfa, 0x00cdcfcc, 0x007a7771, 0x006c675d, 0x00565044, 0x006a6454,
- 0x006f6451, 0x005b5243, 0x00282018, 0x00110a09, 0x00120c06, 0x001a1405, 0x0038311a, 0x00453c1f, 0x003f2e19, 0x00362212, 0x00311b0f, 0x00372217, 0x00473b30, 0x00393229, 0x001d1c14, 0x003c3e35,
- 0x00a7a8a6, 0x00deddda, 0x00dad5d1, 0x00dad3d0, 0x00e7dcd7, 0x00ebe9e7, 0x00e3e5df, 0x00e2dfd5, 0x00c4baaf, 0x00878377, 0x002b2822, 0x00060904, 0x00020302, 0x00100a02, 0x00332716, 0x00533e27,
- 0x00665035, 0x00675238, 0x006c573d, 0x00695440, 0x00463421, 0x003b291d, 0x004d392f, 0x0048342d, 0x00261310, 0x00200f0b, 0x0032221b, 0x004a3f29, 0x007b664d, 0x008c7356, 0x007e6348, 0x00998269,
- 0x00cdc3b5, 0x00cecabc, 0x009b968a, 0x00787161, 0x00776650, 0x00807367, 0x00857c71, 0x00817862, 0x006e6442, 0x005b502c, 0x00514329, 0x00594b36, 0x005b4b40, 0x00402e21, 0x00382312, 0x00675239,
- 0x00b25e21, 0x00793b10, 0x0090684b, 0x00d3c5b9, 0x00eae8e1, 0x00efe6da, 0x00f7ead9, 0x00f7e7d4, 0x00eae2dc, 0x00dfe1e2, 0x00dce8e5, 0x00d8edd6, 0x00e7eaec, 0x00eee8ea, 0x00e9e0e0, 0x00eee9da,
- 0x00cbccd3, 0x007c7da0, 0x004c487d, 0x00504984, 0x00665c77, 0x008b736c, 0x0081634a, 0x006c4c36, 0x00603e35, 0x00412a21, 0x001c110a, 0x00070a05, 0x00111817, 0x00404444, 0x005e5e5e, 0x00646064,
- 0x00865957, 0x007d605e, 0x00988486, 0x00999295, 0x00838285, 0x007e7b74, 0x0081796d, 0x008c8573, 0x00878174, 0x00606257, 0x003f423d, 0x0021201f, 0x00060607, 0x00020001, 0x00030404, 0x000a0909,
- 0x00040404, 0x00030303, 0x000e0e0e, 0x00191919, 0x00151515, 0x000e0e0e, 0x00060606, 0x00050505, 0x000f0f0f, 0x00090909, 0x00656565, 0x00dddddd, 0x00fcfcfc, 0x00fdfdfd, 0x00ffffff, 0x00ffffff,
- 0x00d7d9dd, 0x008b8e90, 0x00868787, 0x00a5a4a1, 0x0078716d, 0x00453e38, 0x003a332d, 0x0038332d, 0x003a3432, 0x00383834, 0x003a393f, 0x003b3f4f, 0x003f495a, 0x00415165, 0x0042556f, 0x00415d7b,
- 0x0046668e, 0x004b6e94, 0x004b759b, 0x005176a1, 0x004d769c, 0x0052739c, 0x004b7097, 0x00486e94, 0x003d6690, 0x00386490, 0x005584b4, 0x0088bde9, 0x0091cafc, 0x0071abef, 0x005690dc, 0x004884d3,
- 0x00477ad2, 0x00457bcc, 0x003571c1, 0x002566b5, 0x001861c2, 0x00135ec8, 0x001a5fc9, 0x001852b4, 0x005e83ba, 0x00b5cfe8, 0x00d4e5e6, 0x00b1c8b3, 0x00a3979f, 0x0063454a, 0x00936b64, 0x00e4bea5,
- 0x00e5d9d3, 0x00cbd4ee, 0x006985cb, 0x002753b5, 0x00205dbc, 0x001f60ba, 0x00185ab3, 0x001d5eb2, 0x00245aaf, 0x002e5fa9, 0x00557fbe, 0x005c7dac, 0x0041546b, 0x003c474c, 0x0041453d, 0x00474736,
- 0x00524537, 0x00564936, 0x005b4c33, 0x005d4c2e, 0x00634e2e, 0x00644f2e, 0x00644f2f, 0x00634f2f, 0x00614f35, 0x005e4d34, 0x005c4a35, 0x005a4734, 0x004f4236, 0x004b4239, 0x00443f3a, 0x003d3935,
- 0x00433532, 0x0048362c, 0x00836859, 0x00b39078, 0x00cda287, 0x00d49f7a, 0x00d99c73, 0x00d79a71, 0x00d99d75, 0x00dea37a, 0x00dba279, 0x00d9a177, 0x00ce976c, 0x00c08b60, 0x00ab784c, 0x00a26f43,
- 0x00ad6b4a, 0x00955b3c, 0x0078492d, 0x005d3f26, 0x00665b4a, 0x00aeaca1, 0x00fcfcf8, 0x00fafdfb, 0x00fbfeff, 0x00fdfdff, 0x00fdfcfc, 0x00fcfef9, 0x00fafefc, 0x008b938e, 0x00394838, 0x003f5637,
- 0x00405d29, 0x00405f22, 0x00426223, 0x00456126, 0x0047612f, 0x004b5d28, 0x00486227, 0x003d6827, 0x004a6328, 0x0065592b, 0x00936e49, 0x009e7350, 0x006f6e3d, 0x004f682d, 0x004c6f30, 0x00496d2d,
- 0x0062642f, 0x006f6135, 0x00a28863, 0x009c7253, 0x009b7455, 0x008c714c, 0x00787143, 0x0068723e, 0x005b7737, 0x00567833, 0x005d7935, 0x00667435, 0x005e7a35, 0x005a7c34, 0x005a7e35, 0x005d7c32,
- 0x007f7f45, 0x00948452, 0x00a6875f, 0x00916a4a, 0x00a6795e, 0x00ad7b59, 0x00956d43, 0x006d6431, 0x0070753f, 0x00816e41, 0x00a17f58, 0x00bf9372, 0x009b885f, 0x00918157, 0x009f8a63, 0x009d7958,
- 0x0094814b, 0x00908667, 0x0033352f, 0x0013263e, 0x00224676, 0x003d6a91, 0x0059879e, 0x005f8c85, 0x0061884f, 0x00688c3b, 0x006f8a3b, 0x00687b44, 0x002e4277, 0x001c2655, 0x002d213a, 0x00522719,
- 0x00531620, 0x004d2949, 0x001d0c38, 0x000d173e, 0x002a3263, 0x00143565, 0x0003214d, 0x0015314d, 0x003a3f4e, 0x00191b20, 0x000b0b0c, 0x000f1010, 0x00131419, 0x0018171a, 0x002d2826, 0x00564c49,
- 0x00665052, 0x007a715f, 0x007f815e, 0x00708449, 0x005e8138, 0x005b8239, 0x005f8240, 0x005c7c3c, 0x006a7c40, 0x00778344, 0x006f8242, 0x005e803a, 0x005c7f38, 0x005e7e3a, 0x005c7d38, 0x005b7d38,
- 0x00597b34, 0x00587a34, 0x00587935, 0x00577934, 0x00567932, 0x00547730, 0x00557631, 0x00557531, 0x0053742f, 0x0052742f, 0x00517330, 0x00507130, 0x004f7030, 0x004e6e30, 0x004d6d2f, 0x004c6e2e,
- 0x004d6e30, 0x004b6c2e, 0x004a6a2e, 0x0048682c, 0x004a682d, 0x004d682e, 0x0048612a, 0x00476129, 0x00465f2b, 0x00415b28, 0x00819271, 0x00fafdfd, 0x00fffcf6, 0x00fffcf5, 0x00fefcf8, 0x00fbfeff,
- 0x00d0e4f2, 0x006b8ec5, 0x004f7cc2, 0x00497ed1, 0x004d7ed7, 0x00487dda, 0x00457cd7, 0x00447ace, 0x004077c3, 0x003b73c2, 0x003b71c7, 0x003e71ce, 0x003f73d4, 0x003f76d1, 0x00447bd1, 0x00457ccb,
- 0x004378d1, 0x004477d0, 0x003366be, 0x002e63b8, 0x003e72c5, 0x004379c9, 0x00497fcf, 0x005386d6, 0x00568ad8, 0x004e83cf, 0x00467ac8, 0x004071ca, 0x003f73be, 0x003d71ba, 0x003f72ba, 0x003e71be,
- 0x00396bc4, 0x003669c4, 0x003d6dc8, 0x004075c5, 0x004377c0, 0x004779c8, 0x00507bc6, 0x00668ac4, 0x007f91ad, 0x00a2a7b8, 0x00dad0de, 0x00e9d7e4, 0x00ead6e9, 0x00e9dbec, 0x00ebe1f0, 0x00ece5f1,
- 0x00edebee, 0x00f2eced, 0x00e7ddde, 0x00e0d1cd, 0x00b69f93, 0x007d6253, 0x0062442f, 0x006b4b2f, 0x00795839, 0x00694b27, 0x00583618, 0x005b3628, 0x005b3827, 0x00492b17, 0x00452917, 0x00543b27,
- 0x00755e47, 0x008d7557, 0x00ae9372, 0x00b29871, 0x00957b4e, 0x00796353, 0x006c5a5c, 0x0054464e, 0x002b2a46, 0x001c2348, 0x00222e5b, 0x00293969, 0x0036456d, 0x00434d6d, 0x00586179, 0x00686f82,
- 0x008e8682, 0x0097958a, 0x00acaf9f, 0x00bec1aa, 0x00c4ba91, 0x00ac9661, 0x00947334, 0x00996d29, 0x009e6d2f, 0x009b6f33, 0x009f7743, 0x00a48361, 0x00b89878, 0x00be9f82, 0x00ba997f, 0x00b3927a,
- 0x00a7836d, 0x0099785f, 0x008d6c51, 0x00836547, 0x00785b3c, 0x00735f4f, 0x00bfb2ab, 0x00f6f1ea, 0x00fffdfc, 0x00fcfafb, 0x00fcfdfd, 0x00fcfdfd, 0x00aeb1b1, 0x002a2d2b, 0x00000000, 0x00040503,
- 0x00030202, 0x00020301, 0x00030402, 0x00030301, 0x00040404, 0x00020202, 0x00020201, 0x00010301, 0x00010202, 0x00010201, 0x00010202, 0x00010202, 0x00030303, 0x00030303, 0x00030302, 0x00030300,
- 0x00040202, 0x00040201, 0x00040303, 0x00040303, 0x00040302, 0x00030202, 0x00030303, 0x00030302, 0x00040104, 0x00020103, 0x00010103, 0x00010102, 0x00010101, 0x00010201, 0x00030202, 0x00030403,
- 0x00020301, 0x00010400, 0x00020300, 0x00020300, 0x00020502, 0x00020603, 0x00040603, 0x00040803, 0x00020400, 0x00010401, 0x00010201, 0x00020303, 0x00000202, 0x00010202, 0x00010000, 0x00020200,
- 0x00020300, 0x00040501, 0x00080903, 0x00090a04, 0x00060703, 0x00030303, 0x00020202, 0x00010100, 0x00010100, 0x00010100, 0x00030202, 0x00020302, 0x00040502, 0x00030402, 0x00040402, 0x00030300,
- 0x00030201, 0x00030302, 0x00020202, 0x00010101, 0x00020001, 0x00020000, 0x00010100, 0x00010200, 0x00010200, 0x00020300, 0x00030403, 0x00030304, 0x00030304, 0x00030303, 0x00030202, 0x00040302,
- 0x00020203, 0x00030403, 0x00000101, 0x00020303, 0x00030204, 0x00040204, 0x00020202, 0x00030503, 0x00020203, 0x00010200, 0x00181816, 0x00888887, 0x00fefefe, 0x00fbfbfa, 0x00fefefb, 0x00fdfdfa,
- 0x00f6f5fd, 0x00b7b9be, 0x0067696d, 0x00979b9e, 0x00ccd4d5, 0x00ecf4f3, 0x00f9fefc, 0x00fcfffe, 0x00fdfdfc, 0x00fcfbfb, 0x00fdfcfb, 0x00fdfff8, 0x00fffffb, 0x00fdfefc, 0x00fdfefc, 0x00fbfefa,
- 0x00fefef7, 0x00f7f7f4, 0x009c9da4, 0x00605d75, 0x008b85b5, 0x009a98cd, 0x007074b4, 0x00425099, 0x002948a8, 0x002146aa, 0x001a3da3, 0x00173596, 0x00132881, 0x00192e82, 0x001a2f81, 0x00173082,
- 0x0082526c, 0x00c09db4, 0x00decae0, 0x00d1cbe0, 0x00ccd0e6, 0x00cdcbe5, 0x00d1c9e5, 0x00d4c6e3, 0x00d7cbe7, 0x00d7cde7, 0x00dad0eb, 0x00d5ccea, 0x00d7cdea, 0x00d5cde9, 0x00dad2ee, 0x00dcd2f0,
- 0x00dbd2ee, 0x00d3cce7, 0x00d0c6e4, 0x00d4cbe6, 0x00dad0ec, 0x00dbd0ee, 0x00ddceea, 0x00dfc4d6, 0x00e7adad, 0x00e79d94, 0x00ea9a8d, 0x00e79588, 0x00dd9d9c, 0x00e9b8c1, 0x00f8d9ef, 0x00d0b8d5,
- 0x00f46834, 0x00f9632c, 0x00f75620, 0x00f56437, 0x00f9a390, 0x00fad6da, 0x00f9e9f7, 0x00e1cbe2, 0x00a77d7d, 0x009b6a4f, 0x00ae7d5b, 0x00a07562, 0x00a27560, 0x00aa7961, 0x00b27f67, 0x00b98a6e,
- 0x00ae8570, 0x00a4816e, 0x007a5c4c, 0x00382419, 0x00150500, 0x00141314, 0x00131519, 0x003e3f48, 0x008f8da2, 0x00a4a2bd, 0x00a9a5c8, 0x00b7b1d7, 0x00beb6dd, 0x00b4abcf, 0x00ada4c4, 0x00b3abc9,
- 0x00b4b6bb, 0x002e323c, 0x0032363f, 0x003d4048, 0x004c4c53, 0x00535159, 0x00575459, 0x005b5758, 0x005e575a, 0x005a5356, 0x004d4d4f, 0x003c454b, 0x00313034, 0x00282423, 0x00201716, 0x001e1411,
- 0x00201717, 0x0018191b, 0x000d171e, 0x00061420, 0x00031523, 0x00071726, 0x000b1926, 0x000d1923, 0x000b151a, 0x00131816, 0x00202518, 0x00313121, 0x004a4530, 0x005b4e46, 0x006c5d5d, 0x007a6771,
- 0x007c727e, 0x00867d88, 0x008e8793, 0x0095919d, 0x00c1bfcc, 0x00e8e7f3, 0x00f2f1fe, 0x00ebebf8, 0x00e2e3ef, 0x00dcddeb, 0x00d4d5e4, 0x00e1e1f6, 0x00f2f3fd, 0x00f4f4fb, 0x00f1f2fa, 0x00f4f7f9,
- 0x00f9fcfb, 0x00f1f4f8, 0x00d2d7d7, 0x00c0c3ca, 0x00dcdce5, 0x00f6f5fb, 0x00fdfdfb, 0x00f8f8fa, 0x00fefffe, 0x00fafbf7, 0x00fbfbf7, 0x00fafaf9, 0x00fbfafd, 0x00fbfaff, 0x00f7f6fe, 0x00f6f4ff,
- 0x00f4f3fe, 0x00fbe1ca, 0x00dd8862, 0x00da593d, 0x00d2b0be, 0x00e8d7e9, 0x00e0cede, 0x00d8adb6, 0x006c6a53, 0x00422515, 0x0039190a, 0x00321e0b, 0x00322107, 0x00372608, 0x00352704, 0x00362903,
- 0x003c2c04, 0x003f2a05, 0x00402707, 0x00402307, 0x00412007, 0x003b1f09, 0x00361f09, 0x00301f09, 0x002f2711, 0x00302f1a, 0x00303521, 0x002f3a28, 0x002b3b2d, 0x00263a2e, 0x001f3429, 0x001b3128,
- 0x001b2b25, 0x00152521, 0x0013211f, 0x0016201f, 0x001a1f1e, 0x00191c1a, 0x00181c19, 0x00191e1c, 0x001b2421, 0x001f2924, 0x00222c25, 0x00252f28, 0x00272f2b, 0x00242c2a, 0x001d2423, 0x00192022,
- 0x00141917, 0x00131815, 0x00181c17, 0x0023251d, 0x002f3126, 0x0081807d, 0x00fefdfd, 0x00fefdff, 0x00fefeff, 0x00fdfffe, 0x00f9fcfb, 0x00ced0cd, 0x007c7973, 0x006d675e, 0x00585145, 0x00696152,
- 0x00716043, 0x0062523c, 0x00453829, 0x00271b14, 0x001c0f05, 0x002f2514, 0x00534a32, 0x005c5136, 0x00493922, 0x00331e10, 0x001b0901, 0x001e100a, 0x002a241b, 0x002d2a23, 0x000f120d, 0x00050905,
- 0x005e6561, 0x00b8bcb8, 0x00dee1da, 0x00dcdad5, 0x00e9e6de, 0x00e9e9e0, 0x00d2d4c6, 0x00b2af9e, 0x00635a4e, 0x00302b24, 0x00090401, 0x00040306, 0x00030100, 0x0021170b, 0x004e3f23, 0x006a542d,
- 0x0072583b, 0x007a6044, 0x008b7156, 0x008f7660, 0x005a422f, 0x00331a0f, 0x003a2018, 0x00482d29, 0x00361f1e, 0x00220a0d, 0x001e0d09, 0x003c3325, 0x0063513c, 0x00776049, 0x006e573f, 0x00907c66,
- 0x00cac2b3, 0x00cfc9bc, 0x008c8472, 0x0070614c, 0x006d5436, 0x005b4938, 0x00493b2b, 0x00625741, 0x006b6446, 0x00544b2f, 0x0051462e, 0x005a4c3a, 0x00615143, 0x00493a2c, 0x003d2d1b, 0x005b5039,
- 0x00ac6324, 0x00824a1d, 0x00694624, 0x008d806f, 0x00a29e96, 0x00bbb3aa, 0x00dcd2c7, 0x00efe2d9, 0x00ebe7e5, 0x00e5e8f1, 0x00dceaec, 0x00d1eadb, 0x00dae2e9, 0x00e7e4ee, 0x00ebe5e7, 0x00efeade,
- 0x00dddce0, 0x00958faf, 0x00504873, 0x00624f81, 0x00795f6e, 0x00897063, 0x0072573d, 0x006b402e, 0x00733d38, 0x0061332f, 0x002e130e, 0x00100a05, 0x000b1711, 0x002e3130, 0x00484848, 0x005f545a,
- 0x00885f62, 0x008f7276, 0x00af9fa2, 0x00c0b9bf, 0x00979b98, 0x007e7b72, 0x005c5543, 0x00615541, 0x00736858, 0x00645a50, 0x0045413d, 0x00232322, 0x00060607, 0x00010001, 0x00010303, 0x00090908,
- 0x00040404, 0x00050505, 0x00131313, 0x001a1a1a, 0x00101010, 0x00080808, 0x00060606, 0x00030303, 0x000b0b0b, 0x00070707, 0x00535353, 0x00d9d9d9, 0x00fcfcfc, 0x00fdfdfd, 0x00ffffff, 0x00fdfdfd,
- 0x00d5d8d9, 0x008b8e8e, 0x00858785, 0x00a4a49f, 0x0079716b, 0x00453c34, 0x003d332b, 0x003a3129, 0x003a332c, 0x003a3632, 0x003c3639, 0x00403a49, 0x00484457, 0x00494c65, 0x004b546f, 0x004c5a7f,
- 0x004e5f89, 0x00506894, 0x0054719d, 0x0059749f, 0x0057729d, 0x00517594, 0x00467389, 0x00447185, 0x00396583, 0x003e6e93, 0x0070a3ca, 0x009cd5fc, 0x007ab8ec, 0x005b9bdb, 0x004788cc, 0x003b7ec5,
- 0x00367dde, 0x003879d8, 0x002c6fc8, 0x002465bc, 0x001d63c4, 0x001760c8, 0x001b63c6, 0x001558b5, 0x005888ca, 0x00a5cafa, 0x00bad8f0, 0x00bad7d6, 0x00cecede, 0x00b5a3b2, 0x00bea1a6, 0x00e0c2af,
- 0x00f1e7e4, 0x00ccd3f6, 0x005b76bf, 0x002451b5, 0x00175cb8, 0x001b5fb2, 0x00195bae, 0x001c5eb1, 0x00255fb8, 0x00265ab0, 0x003764af, 0x00597dbe, 0x00546e8f, 0x00384956, 0x003d4743, 0x003f4635,
- 0x004d453b, 0x0051483b, 0x00554a38, 0x00584a33, 0x005f4e34, 0x00625035, 0x00615136, 0x00605137, 0x0060503a, 0x005d4e3b, 0x005a4c3a, 0x0058493d, 0x004e453b, 0x004a433f, 0x0046413c, 0x00413c38,
- 0x00473731, 0x0062483e, 0x00a58470, 0x00c79c82, 0x00c99270, 0x00ce916b, 0x00d4946a, 0x00d6946c, 0x00d7986e, 0x00d7996f, 0x00d69971, 0x00d2986f, 0x00c99068, 0x00be875d, 0x00b47e54, 0x00af7950,
- 0x00af724f, 0x00976242, 0x0070462a, 0x00563a24, 0x00685f51, 0x00b3b3a9, 0x00fcfefc, 0x00f9fdfc, 0x00fafffe, 0x00fcfdfe, 0x00fffefe, 0x00fafcf6, 0x00fbfefd, 0x00757c78, 0x003f4e3e, 0x0041573a,
- 0x00405e29, 0x00426023, 0x00436223, 0x00476328, 0x0049612f, 0x004d602b, 0x0049652a, 0x00416a2a, 0x004e642a, 0x006a5b2d, 0x0093724b, 0x009d7450, 0x006c6f3c, 0x00516930, 0x004e6e32, 0x00506c31,
- 0x006a6535, 0x007b663e, 0x0091704f, 0x009a6a4f, 0x009e7156, 0x00876745, 0x00776a3e, 0x006c6f3d, 0x005f7537, 0x005b7734, 0x005c7533, 0x00657435, 0x005d7934, 0x005a7d34, 0x005a7e35, 0x00607d34,
- 0x00797a3f, 0x00887845, 0x00b1936a, 0x00b79070, 0x009e7256, 0x00a57852, 0x008b6c3c, 0x0068672e, 0x00767c44, 0x007f6d40, 0x0096744f, 0x00b28667, 0x009f8a64, 0x007f6f46, 0x008b744f, 0x00a17a5b,
- 0x00967f4e, 0x008b7d5d, 0x0058584b, 0x00213442, 0x000d3164, 0x001f4a85, 0x004974a5, 0x0060879d, 0x00688b5e, 0x00738e3f, 0x00738733, 0x007f8351, 0x003e517b, 0x0015224d, 0x002f2e47, 0x00624642,
- 0x00320b1c, 0x003b2548, 0x001d1a3e, 0x000e203a, 0x00232b4e, 0x000c2a47, 0x00032038, 0x0015303d, 0x002c3334, 0x00191b18, 0x00090a07, 0x00080d0e, 0x00070d14, 0x0011171b, 0x0018191c, 0x001e1b1b,
- 0x003d3335, 0x004e4f3f, 0x00525c37, 0x005c7539, 0x00648839, 0x00608438, 0x00678741, 0x00637c3e, 0x00717c48, 0x007d7d4e, 0x006a7740, 0x005e813c, 0x005d8039, 0x005e7d3a, 0x005e7f39, 0x005e7e39,
- 0x005a7d36, 0x005a7c36, 0x005a7c37, 0x00597b36, 0x00587b34, 0x00567931, 0x00567732, 0x00577633, 0x00557731, 0x00547631, 0x00537532, 0x00517231, 0x00507131, 0x004e6e30, 0x004e6e30, 0x004d6d2f,
- 0x004b6c2d, 0x004b6d2e, 0x0048692c, 0x0048682c, 0x0049672d, 0x004c672e, 0x0047612a, 0x0048622c, 0x00425c28, 0x00455f2b, 0x008d9e7e, 0x00fafdfd, 0x00fffdf7, 0x00fffcf5, 0x00fefcf7, 0x00fcfefe,
- 0x00c7dce7, 0x006182b9, 0x004b77bc, 0x004a7bcd, 0x004476cb, 0x004677d2, 0x004378d2, 0x004176c9, 0x003f77bf, 0x003f76c3, 0x004277ca, 0x00477ad4, 0x00497cdc, 0x004980da, 0x00447cd2, 0x00417aca,
- 0x00427acf, 0x00457dd2, 0x003c74c8, 0x00356cbe, 0x00356abb, 0x003a6ebd, 0x003b6fbe, 0x004174c3, 0x004d7fcd, 0x005183d0, 0x004f81d0, 0x004879d1, 0x004377c2, 0x003e72ba, 0x003c71b5, 0x003d71ba,
- 0x00356abb, 0x00396cc2, 0x004578ce, 0x004d80ce, 0x004c82c8, 0x004a79c4, 0x004872b6, 0x005d7eb0, 0x0097a8c0, 0x00bec3d4, 0x00d8d2de, 0x00e0d2e0, 0x00decee2, 0x00e6dbec, 0x00eae1ef, 0x00ece5ee,
- 0x00eaeaed, 0x00eae7ea, 0x00ece5ea, 0x00eee1e7, 0x00dec9cb, 0x00ac9292, 0x00755851, 0x00593a29, 0x00503112, 0x004f310c, 0x005a3b18, 0x006d4331, 0x006f4a31, 0x005d361f, 0x00502f14, 0x00563619,
- 0x005f421c, 0x0075562c, 0x0086693a, 0x008d6d3d, 0x00785924, 0x006d4b2b, 0x006e5240, 0x00654d3f, 0x0045393b, 0x00423d48, 0x00575869, 0x006a6f83, 0x00868898, 0x009e9ca5, 0x00b8b5b6, 0x00c8c5c1,
- 0x00e0d1b2, 0x00e6dcb8, 0x00e9e2ba, 0x00f0e9bc, 0x00e7d398, 0x00caa966, 0x00a3782c, 0x00a87424, 0x00a16e23, 0x00a26f2d, 0x00966628, 0x00956333, 0x00936537, 0x0092623a, 0x00845630, 0x007c4f2c,
- 0x00774a29, 0x00704425, 0x006b4222, 0x006f4824, 0x006c4723, 0x005f4c37, 0x00b3aca0, 0x00f6f2e8, 0x00fffff8, 0x00fefdf9, 0x00fdfcfb, 0x00fcfdfc, 0x00b4b5b5, 0x002d2f2e, 0x00030403, 0x00030404,
- 0x00070704, 0x00090905, 0x00090905, 0x00080905, 0x00060704, 0x00050704, 0x00030502, 0x00030501, 0x00020400, 0x00040601, 0x00050703, 0x00060704, 0x00070806, 0x00070706, 0x00060605, 0x00070705,
- 0x00080804, 0x00080805, 0x00080806, 0x00080805, 0x00080805, 0x00070704, 0x00060705, 0x00070705, 0x00050504, 0x00040404, 0x00030304, 0x00010202, 0x00010201, 0x00020200, 0x00040302, 0x00050404,
- 0x00030805, 0x00030703, 0x00040602, 0x00050704, 0x00090a08, 0x000b0e0b, 0x000d100c, 0x000f110d, 0x000c100b, 0x000a0d08, 0x00070706, 0x00050505, 0x00020203, 0x00010202, 0x00010201, 0x00030403,
- 0x000a0b07, 0x000d0f0a, 0x0011130d, 0x0010110b, 0x000e0e0b, 0x00080708, 0x00040304, 0x00030201, 0x00010200, 0x00020200, 0x00040502, 0x00050703, 0x00080905, 0x00080a05, 0x00090906, 0x00090806,
- 0x00050503, 0x00040503, 0x00020302, 0x00010201, 0x00030102, 0x00020001, 0x00020101, 0x00030302, 0x00050603, 0x00080a06, 0x000a0c09, 0x000a0c09, 0x000b0c0a, 0x000c0b0a, 0x000d0c0c, 0x000f0d0e,
- 0x000a0b09, 0x00090b08, 0x00090a08, 0x00080808, 0x00080708, 0x00090708, 0x00050505, 0x00080908, 0x00040305, 0x00010200, 0x001d1e1b, 0x008e8f8d, 0x00fdfdfd, 0x00fbfbfa, 0x00fcfdfa, 0x00fbfbf7,
- 0x00faf8fd, 0x00bcbbbe, 0x00676865, 0x00969b94, 0x00cbd2c6, 0x00edf3ea, 0x00f9fcf5, 0x00fdfdf8, 0x00fffdfb, 0x00fffcfe, 0x00fcfdfb, 0x00f9fff6, 0x00fcfefb, 0x00fbfffd, 0x00fcfefc, 0x00fcfdfa,
- 0x00fcfcf8, 0x00f8f9f9, 0x00a1a2a6, 0x005e5b71, 0x00847da8, 0x009691c5, 0x006c6fac, 0x003f4e95, 0x002543a3, 0x002448ad, 0x002548b0, 0x001e3ca1, 0x0016308e, 0x001c3590, 0x001a348f, 0x0015338e,
- 0x007a4864, 0x00ba95ae, 0x00e1cbe3, 0x00d1c9e0, 0x00ced0e7, 0x00cbc9e3, 0x00d1c9e6, 0x00d6c9e7, 0x00d9cee7, 0x00d8cfe5, 0x00d6cde5, 0x00d5cae9, 0x00d8cfeb, 0x00dad2ee, 0x00dcd2ef, 0x00dcd1ef,
- 0x00d4cbe6, 0x00d2cae7, 0x00d3cce7, 0x00d9d0ed, 0x00d8cfe8, 0x00d2ceef, 0x00d0cdec, 0x00d3c8e3, 0x00dfc0cf, 0x00e8c2ca, 0x00f4c9cf, 0x00f9ced5, 0x00fad6e2, 0x00f1d6ea, 0x00efdbf4, 0x00c7bbd6,
- 0x00dd6e50, 0x00e16943, 0x00de5e2e, 0x00e15324, 0x00ef6a52, 0x00fc9f97, 0x00fdd3d8, 0x00eac9d3, 0x00957a77, 0x00825c4d, 0x00956750, 0x00976652, 0x009e6d56, 0x00ad7861, 0x00b78067, 0x00be8c70,
- 0x00b58a73, 0x00ae8875, 0x007b5d4b, 0x003c2319, 0x00180703, 0x000f0b0d, 0x00080d0f, 0x002f3038, 0x0086849a, 0x00a5a2bd, 0x009f9bbd, 0x00aba5c9, 0x00b4acd0, 0x00b2a9cc, 0x00ada4c5, 0x00afa7c6,
- 0x00babec4, 0x00414655, 0x004a4e5e, 0x00575966, 0x0065656f, 0x006b6873, 0x006c6870, 0x006e6970, 0x00736971, 0x006c656c, 0x00615f65, 0x004e545d, 0x00414045, 0x00332e2f, 0x002b2022, 0x00281a1b,
- 0x001c171a, 0x0014171e, 0x00142331, 0x00243d53, 0x003d607c, 0x005b799c, 0x006c87ab, 0x006c87a6, 0x0052697f, 0x00394c53, 0x002c383b, 0x00393e39, 0x00544841, 0x0066514d, 0x00795b5c, 0x00886166,
- 0x007d6e79, 0x00877a85, 0x00908592, 0x00a09aa7, 0x00d8d8e2, 0x00f0f3fc, 0x00eef1fc, 0x00eaecfb, 0x00e4e2f5, 0x00dad9ea, 0x00e0def2, 0x00eae9fc, 0x00ecebfa, 0x00eae9f4, 0x00f3f5fb, 0x00eef4f4,
- 0x00f3f6f7, 0x00f6faf6, 0x00eff3f1, 0x00f2f5f4, 0x00fafcfc, 0x00fdfdfd, 0x00fafafa, 0x00f7f6f7, 0x00fbf9f7, 0x00f7f6f3, 0x00fcfbf8, 0x00fafaf9, 0x00f9f9fb, 0x00f8f9fd, 0x00f2f3fa, 0x00f2f2fb,
- 0x00eff0ff, 0x00f8e5d6, 0x00dd967e, 0x00c64e39, 0x00ca9ba4, 0x00e5d1e3, 0x00cabbce, 0x00cfaaba, 0x00807568, 0x0041211a, 0x0035150e, 0x0024160c, 0x00261909, 0x00251a07, 0x00281d06, 0x00221b01,
- 0x002e2105, 0x00311f03, 0x00331d03, 0x00331a04, 0x00331804, 0x002f1a05, 0x002f1d08, 0x002e200a, 0x002b2612, 0x002b2d1a, 0x002d3522, 0x002c3827, 0x002b3b2d, 0x0026392c, 0x00233629, 0x001f3227,
- 0x001a2a25, 0x00152520, 0x0016221f, 0x001b2320, 0x00212523, 0x00242724, 0x00242925, 0x00252c27, 0x00282c2a, 0x00282f2c, 0x0029312b, 0x002a332c, 0x002a322e, 0x00272e2c, 0x00202726, 0x001a2322,
- 0x00171918, 0x00141614, 0x00181c17, 0x0022261c, 0x002f3427, 0x007e807a, 0x00fcfdfb, 0x00fcfcfc, 0x00fefeff, 0x00fcfdfc, 0x00fafdfc, 0x00ced0cd, 0x00807e75, 0x006a6459, 0x00554e42, 0x00675f52,
- 0x006f5936, 0x006f593e, 0x007a6754, 0x00614e43, 0x003c2b1b, 0x004b3e27, 0x006b6043, 0x006e6144, 0x00614f37, 0x00432f1d, 0x00160501, 0x00090301, 0x00100e0a, 0x0012150a, 0x00090d07, 0x00010800,
- 0x00222922, 0x007c857c, 0x00d9dfd9, 0x00e3e7df, 0x00d5d6ce, 0x00bbc0ae, 0x00999a87, 0x007d7966, 0x00473930, 0x00211713, 0x00170d12, 0x000f0a0e, 0x000d0805, 0x002e240e, 0x005d4d27, 0x00715a28,
- 0x0077583a, 0x00735538, 0x007d5f46, 0x008d6f58, 0x006a4c3c, 0x0037190d, 0x00280b05, 0x00341815, 0x00402229, 0x002e1317, 0x00240f11, 0x00322d22, 0x00594a3b, 0x006e5e49, 0x0065513c, 0x00766852,
- 0x00b4aa9d, 0x00b9b3a1, 0x00877d69, 0x00837156, 0x00886c49, 0x00715a43, 0x00675644, 0x0091826e, 0x008b836b, 0x0060583f, 0x00635945, 0x00554633, 0x003e2b1f, 0x00332515, 0x00423a2a, 0x00666450,
- 0x00ae7038, 0x00926438, 0x005f3f20, 0x005e503d, 0x00756f6c, 0x008a8481, 0x00a4a09d, 0x00b3aeae, 0x00acaeb5, 0x009aa1ad, 0x0084949f, 0x0077928f, 0x008792a7, 0x00acacbe, 0x00c3bdc7, 0x00d1cbc2,
- 0x00cac2c4, 0x00887f94, 0x00443255, 0x004e3755, 0x0065443d, 0x006e5940, 0x005a4127, 0x005f2c1c, 0x00813636, 0x0078383a, 0x004f1f21, 0x0022110b, 0x00091108, 0x00161a16, 0x00363233, 0x0063535b,
- 0x00a28588, 0x00b5a0a3, 0x00beb5bb, 0x00c0bfc2, 0x009ea49e, 0x00767564, 0x004c422f, 0x005e4a34, 0x007f6a5d, 0x006b5550, 0x00493739, 0x00232423, 0x000a0909, 0x00030202, 0x00050303, 0x00090707,
- 0x00040404, 0x00050505, 0x00151515, 0x00171717, 0x000d0d0d, 0x00080808, 0x000a0a0a, 0x00020202, 0x00060606, 0x00050505, 0x00565656, 0x00dbdbdb, 0x00ffffff, 0x00fdfdfd, 0x00fcfcfc, 0x00fafafa,
- 0x00d5d8dd, 0x008c8e90, 0x00868585, 0x00a7a49f, 0x007b726a, 0x00463c32, 0x003f342c, 0x003d322a, 0x003b322c, 0x003e362d, 0x00403436, 0x00453940, 0x004d434e, 0x004c4959, 0x004f5169, 0x00515b74,
- 0x004e5e80, 0x00516689, 0x00596d95, 0x00587194, 0x00576f96, 0x004c7387, 0x00467384, 0x00417283, 0x0034667f, 0x00437a96, 0x0078b0d7, 0x008ac7f0, 0x0071b3e8, 0x005ca1d8, 0x004d92d1, 0x003a82bb,
- 0x002474e5, 0x00226bd2, 0x002160c2, 0x00205ab2, 0x002358b1, 0x00205ab3, 0x00215db8, 0x002161b8, 0x002f6ab4, 0x003f79b6, 0x005b88b8, 0x007e9bb5, 0x00a8b2e0, 0x00c8c9f0, 0x00d1cae3, 0x00d7d2cf,
- 0x00e4e9f1, 0x009db0e5, 0x003c5cae, 0x00275cc1, 0x001e66bd, 0x00185fad, 0x001b5ba8, 0x001b5dae, 0x00265fbe, 0x00255cb8, 0x002555ad, 0x00456eb8, 0x005e7baa, 0x0041586c, 0x0036484a, 0x0038483a,
- 0x0048413f, 0x004d4541, 0x00514940, 0x0054493a, 0x00594c39, 0x005d503a, 0x005f523c, 0x005e513c, 0x005d5040, 0x005a4e3d, 0x00574b40, 0x00544840, 0x004b4340, 0x00443e3b, 0x00443e3e, 0x003f3a38,
- 0x00493630, 0x006d5244, 0x00b38c78, 0x00cd9979, 0x00cf916b, 0x00d49267, 0x00d08d61, 0x00cf8b61, 0x00c8865d, 0x00c38259, 0x00bd7e56, 0x00b47851, 0x00b0754c, 0x00ae754c, 0x00b27a50, 0x00b47d52,
- 0x00ba8161, 0x00a67657, 0x00775236, 0x00513a24, 0x006a6456, 0x00b4b8ae, 0x00fafefc, 0x00f7fafb, 0x00fbfefe, 0x00fefffe, 0x00fdfcfb, 0x00fcfcf9, 0x00fbfefb, 0x006d756f, 0x00445545, 0x00405739,
- 0x00435e2b, 0x00425f23, 0x00486225, 0x00466126, 0x00496130, 0x0049632b, 0x0048672a, 0x00416929, 0x005a6831, 0x00726235, 0x009b7650, 0x0099744e, 0x006a6f3c, 0x0051692f, 0x00506d32, 0x00536930,
- 0x00776942, 0x00977d58, 0x008f6747, 0x00a16f54, 0x00a6745a, 0x00856545, 0x007c6d44, 0x00727642, 0x00637a3a, 0x005e7734, 0x00617535, 0x00647637, 0x005d7b35, 0x00557e32, 0x00587f35, 0x005c7d36,
- 0x006f7239, 0x00877a47, 0x008e7249, 0x00a17c5b, 0x00a0785a, 0x00987448, 0x007e6730, 0x006d6f32, 0x00767f47, 0x007d6d41, 0x008b6a46, 0x0094694b, 0x008b7752, 0x006e6138, 0x00776640, 0x008a6c49,
- 0x00ad8a67, 0x009f8867, 0x007c7562, 0x00424f4a, 0x00052048, 0x000b2b64, 0x00294883, 0x00547099, 0x0075896c, 0x0074833b, 0x007f863c, 0x00737147, 0x00182b54, 0x00031a3f, 0x0029334a, 0x00433a3a,
- 0x001d0720, 0x000f0a28, 0x0009142c, 0x0003171f, 0x00151e30, 0x00213c46, 0x00163636, 0x00162e26, 0x0024291c, 0x00323325, 0x001e1f17, 0x00070d0c, 0x00050f12, 0x00050e11, 0x00090f11, 0x00111212,
- 0x001a171c, 0x0017200c, 0x003b4d27, 0x005c7937, 0x00618535, 0x00628437, 0x005d7736, 0x004c6028, 0x00616139, 0x00766e49, 0x006f7246, 0x0060833c, 0x005c7f39, 0x005e803a, 0x005e7e39, 0x005d7d37,
- 0x005c7e38, 0x005a7d37, 0x005b7d38, 0x005a7c37, 0x005b7b36, 0x00597934, 0x00587934, 0x00577934, 0x00567834, 0x00567734, 0x00557533, 0x00537433, 0x00517232, 0x00507131, 0x004f7030, 0x004e6f30,
- 0x004d6d2f, 0x004a6b2c, 0x00496a2c, 0x0047682b, 0x0049682d, 0x0049662d, 0x00456129, 0x0047652c, 0x00455d28, 0x004c642f, 0x009faf8c, 0x00fcfefd, 0x00fdfcf5, 0x00fdfdf5, 0x00fefef8, 0x00fdfffe,
- 0x00bacfd9, 0x003b6092, 0x002b5598, 0x002e62ae, 0x003668bd, 0x003a6dc4, 0x003e6ec5, 0x004375c1, 0x004578bc, 0x004779bf, 0x004979c4, 0x004779ca, 0x004a7dd5, 0x00487ed3, 0x00477fd1, 0x00447fc8,
- 0x00477bce, 0x004a7fd1, 0x00457bcd, 0x003369b9, 0x002b5fae, 0x002d60ad, 0x002f61ad, 0x003565b1, 0x004270bc, 0x004977c1, 0x004b7ac8, 0x004c7cce, 0x004375be, 0x003f73b3, 0x003b70b0, 0x003c71b3,
- 0x004675c5, 0x004577c7, 0x004a79c9, 0x004578bf, 0x003d71ac, 0x003b6aa6, 0x002f558e, 0x00476894, 0x009daec2, 0x00cad0dd, 0x00d8d3de, 0x00d0c4d0, 0x00cfc0d2, 0x00d9cfdd, 0x00dfd9e1, 0x00dedcde,
- 0x00dcdfe2, 0x00e1e0e3, 0x00ede6f0, 0x00efe4f1, 0x00ebdae7, 0x00dbc6d1, 0x00a48b8d, 0x0072554b, 0x004c2c14, 0x00472907, 0x005d3a18, 0x006b4326, 0x00714629, 0x005e3612, 0x005b350c, 0x00654114,
- 0x00654212, 0x00674412, 0x0067410d, 0x00643f0c, 0x0067400e, 0x006f491a, 0x00845e31, 0x0085633f, 0x00806a54, 0x00948374, 0x00b6ab9f, 0x00cbc5ba, 0x00dcd6c7, 0x00e4dcc8, 0x00eae1c7, 0x00f0e6c7,
- 0x00fbeab6, 0x00fcedb8, 0x00f9ebb4, 0x00f9ecb1, 0x00f7df96, 0x00dcb868, 0x00ad7e29, 0x00ad741d, 0x00a0681d, 0x009d6a26, 0x00986225, 0x0093591c, 0x008b5019, 0x00814916, 0x00763f11, 0x00713d13,
- 0x00703d1b, 0x00683814, 0x006d3f1b, 0x0071451f, 0x0069421b, 0x0050412b, 0x00a5a496, 0x00f0efe1, 0x00fffdf4, 0x00fffef7, 0x00fdfcf8, 0x00fefffb, 0x00b1b3b1, 0x002a2c2b, 0x00010504, 0x00010507,
- 0x000a0908, 0x000a0a08, 0x000c0c0a, 0x000b0b07, 0x000a0b06, 0x00090a05, 0x000a0a08, 0x00090908, 0x000a0907, 0x000a0907, 0x00090807, 0x00070705, 0x00080805, 0x00070705, 0x00070706, 0x00080907,
- 0x000a0808, 0x000a0907, 0x000b0a09, 0x000b0b09, 0x000a0907, 0x00080905, 0x00090906, 0x000a0b07, 0x000a0909, 0x00080805, 0x00050603, 0x00030401, 0x00020302, 0x00030404, 0x00050505, 0x00060604,
- 0x00050906, 0x00040906, 0x00050a07, 0x00070c08, 0x000a0e09, 0x000e110c, 0x0012130f, 0x00131410, 0x00121410, 0x000d0f0c, 0x000a0b09, 0x00070706, 0x00050506, 0x00030203, 0x00030504, 0x00040705,
- 0x000d0d0a, 0x0011110e, 0x0013130e, 0x0012130c, 0x000f1009, 0x000b0c08, 0x00060805, 0x00040503, 0x00070504, 0x00050503, 0x00060704, 0x00060705, 0x00080907, 0x00090a07, 0x000a0b07, 0x000a0b05,
- 0x000a0a08, 0x00080907, 0x00050605, 0x00040503, 0x00040503, 0x00020301, 0x00010200, 0x00010300, 0x00070503, 0x000a0a07, 0x000c0c0a, 0x000b0c0a, 0x000d0f0c, 0x00111310, 0x00141513, 0x00161713,
- 0x00161615, 0x00131211, 0x00121110, 0x000f100d, 0x000f110c, 0x000d0f0b, 0x000e0f0c, 0x0010100f, 0x000c0a0a, 0x00080704, 0x0020201d, 0x008e8e8c, 0x00fcfcfa, 0x00fbfcf9, 0x00fbfdf9, 0x00fcfefb,
- 0x00f9f7fa, 0x00b9b8ba, 0x00676965, 0x00979b91, 0x00d2d7c7, 0x00f2f5e7, 0x00fcfdf2, 0x00fffef6, 0x00fffbff, 0x00fef6fd, 0x00fcf9fb, 0x00f9fef6, 0x00f9fcfb, 0x00f4fafb, 0x00f1f4f7, 0x00f0f3f4,
- 0x00eeeeee, 0x00e5e5e6, 0x009b9aa4, 0x005a5569, 0x00837aa3, 0x009089b9, 0x006d6fa8, 0x00414f95, 0x002440a0, 0x002246ac, 0x002347b1, 0x00193ba3, 0x00163295, 0x001d399b, 0x001f3d9f, 0x001a3d9f,
- 0x007d4867, 0x00ba92ae, 0x00e2cae5, 0x00d1c7e0, 0x00cccde4, 0x00ccc9e2, 0x00d2cae6, 0x00dacdea, 0x00dccee9, 0x00d5cde4, 0x00d2cbe3, 0x00d2c7e6, 0x00dad1ec, 0x00ddd4ef, 0x00ded3ef, 0x00d7d0ec,
- 0x00d2c6e4, 0x00d3cbe5, 0x00dbcfec, 0x00dad2ee, 0x00d5cae7, 0x00cac8e7, 0x00c8c9e9, 0x00cdcae6, 0x00d6cae6, 0x00d6cadc, 0x00ddcbe2, 0x00edddee, 0x00f9ebfc, 0x00ece1f4, 0x00ebe4fc, 0x00dad5ef,
- 0x00e1979c, 0x00e09180, 0x00d97b57, 0x00de6837, 0x00f14d32, 0x00f26a5c, 0x00feb8b4, 0x00f8d0cd, 0x009b8e86, 0x007a5e58, 0x0083594d, 0x00905d46, 0x009b664d, 0x00a87257, 0x00b17a5e, 0x00b68265,
- 0x00af8069, 0x00a17964, 0x007d5c4f, 0x00473025, 0x001c0806, 0x00100e09, 0x00090d0c, 0x00202226, 0x00726f83, 0x009c99b3, 0x009d99bb, 0x00a39dc2, 0x00aea6cb, 0x00b1a8cc, 0x00afa7c7, 0x00aea7c4,
- 0x00c1c7cc, 0x00555b6e, 0x005f6476, 0x00686b7b, 0x00797988, 0x007b7987, 0x00797481, 0x007a7380, 0x007b737c, 0x00776e78, 0x006e6972, 0x005b5d65, 0x004c484f, 0x00433f44, 0x00362d34, 0x002d242d,
- 0x001f262f, 0x00303f55, 0x00576e8f, 0x007090b7, 0x007fa9de, 0x007daef1, 0x007db0f8, 0x0082b5f9, 0x007cabdf, 0x006b92b9, 0x00587494, 0x00526075, 0x005d4e5b, 0x006f5053, 0x0086575a, 0x00995c5a,
- 0x00816f76, 0x0086757d, 0x008a7d86, 0x00b6afb8, 0x00eeeef6, 0x00f2f6fe, 0x00ebeffb, 0x00e9ecfd, 0x00e1dff5, 0x00dcd8ef, 0x00e6e2fb, 0x00e7e6fa, 0x00ebeafb, 0x00eeecfa, 0x00f0f0f8, 0x00f2f5f6,
- 0x00f5f9f5, 0x00f7f9f8, 0x00f7fbf5, 0x00f9fdf7, 0x00fafcf7, 0x00f8f9fa, 0x00f8f8f7, 0x00faf8fa, 0x00faf9fa, 0x00faf9f9, 0x00f8f8f7, 0x00f6f6f5, 0x00f5f5f7, 0x00f3f3fa, 0x00f0effa, 0x00edecf9,
- 0x00e1e8fb, 0x00f2e6e5, 0x00d8a498, 0x00be4e41, 0x00c98a8b, 0x00e4ccda, 0x00cab9d1, 0x00bc9cb3, 0x0080726b, 0x00523132, 0x002f1011, 0x001a0e0a, 0x001a0e07, 0x001a1208, 0x001e1508, 0x001c1608,
- 0x00181300, 0x001e1400, 0x00231503, 0x00261404, 0x00271304, 0x00241604, 0x00251906, 0x00271e0a, 0x00282813, 0x00292f1a, 0x00283420, 0x00283826, 0x0027382a, 0x0025372a, 0x001f3125, 0x001e2d23,
- 0x00182921, 0x00192922, 0x001e2924, 0x00252c28, 0x002e302f, 0x00333433, 0x00323532, 0x00303533, 0x00343837, 0x00303634, 0x002a332e, 0x0029332b, 0x002a312d, 0x00282f2d, 0x001f2725, 0x00171e1e,
- 0x00131615, 0x00111411, 0x00151914, 0x0020241a, 0x00303527, 0x007f817b, 0x00fcfefb, 0x00fdfdfd, 0x00fcfdfd, 0x00feffff, 0x00f8fbfb, 0x00caccc9, 0x007e7c74, 0x00686258, 0x00524a3f, 0x0060564a,
- 0x007a6036, 0x00907857, 0x00a38b74, 0x00968171, 0x0073614e, 0x005e5036, 0x006c6040, 0x006c5e3e, 0x00705d44, 0x005d4836, 0x002d1e12, 0x000e0c06, 0x000c0c02, 0x000a0e03, 0x000a1004, 0x00070e03,
- 0x000d1607, 0x004d5749, 0x00bac3b8, 0x00bec1b8, 0x00797e75, 0x00666755, 0x00615e48, 0x005a503d, 0x004b372d, 0x00352523, 0x00281b1c, 0x00181215, 0x001d1810, 0x003a2f17, 0x0064532b, 0x00876e3a,
- 0x00856948, 0x00715435, 0x00684b33, 0x007c5f49, 0x0067473b, 0x0034160d, 0x001e0100, 0x00230607, 0x00381920, 0x00351a20, 0x00301c1e, 0x0034322d, 0x004a3f33, 0x005b4f40, 0x00534334, 0x00483e2d,
- 0x007a7668, 0x00989583, 0x007f775f, 0x00857254, 0x0095754d, 0x00846950, 0x00806d56, 0x00a0927e, 0x00817f6d, 0x00534e3e, 0x00514837, 0x00463323, 0x00362011, 0x00362817, 0x00615c4a, 0x007c826e,
- 0x00a27e52, 0x008c6f4b, 0x00604b32, 0x00746b5d, 0x009f9c9d, 0x00a8aaac, 0x0090969b, 0x00798088, 0x005c6977, 0x00485869, 0x003f5266, 0x002e4659, 0x00586086, 0x008786a7, 0x00736e81, 0x006d6865,
- 0x0087867a, 0x0090878f, 0x00685763, 0x00493135, 0x00573812, 0x00614e28, 0x00684d32, 0x00693525, 0x007b2323, 0x007b2a2e, 0x00632527, 0x003c1915, 0x00141007, 0x00100f0b, 0x00292225, 0x005f4f58,
- 0x00938d8b, 0x00a4a3a3, 0x00b4b8b8, 0x00b8c2c0, 0x00a5a89c, 0x007c7560, 0x00614c34, 0x00805e48, 0x00875f59, 0x00593334, 0x00361c22, 0x00151615, 0x00060605, 0x00000201, 0x00070607, 0x000c0c0c,
- 0x00090909, 0x00050505, 0x00191919, 0x00141414, 0x00070707, 0x00070707, 0x00030303, 0x00020202, 0x00070707, 0x00020202, 0x00585858, 0x00dadada, 0x00fefefe, 0x00fefefe, 0x00fcfcfc, 0x00fefefe,
- 0x00d3d9da, 0x008b8e8e, 0x00878683, 0x00a6a39c, 0x0080746c, 0x00483c31, 0x00463a2f, 0x0045362c, 0x00433529, 0x0043372f, 0x0040382a, 0x003f412c, 0x00454d3c, 0x0045514a, 0x00445652, 0x00435e5f,
- 0x00406468, 0x00406971, 0x00476f7d, 0x0049757f, 0x004a7686, 0x00417389, 0x00477999, 0x00497d9f, 0x004d82a7, 0x00679dcb, 0x0085bcef, 0x0083bcf4, 0x0079b6f2, 0x006eaded, 0x0067a6e7, 0x005b9cde,
- 0x003480e5, 0x00366fd0, 0x003b5db4, 0x00435399, 0x0043467f, 0x00344076, 0x001d346c, 0x00193c78, 0x00194d92, 0x001a529c, 0x0029599e, 0x00405d99, 0x004c69bb, 0x006281d0, 0x0081a3e2, 0x00a7ceef,
- 0x00a6d1ef, 0x006592dc, 0x00265ab8, 0x001e5fc6, 0x00196aba, 0x00185eaa, 0x001d59a6, 0x001d59ab, 0x001d5aba, 0x001e58b8, 0x002055af, 0x002c5aab, 0x005a7eb1, 0x005b7997, 0x002f4852, 0x00334845,
- 0x00454245, 0x00484446, 0x004e4848, 0x00534a45, 0x00574b42, 0x00574a3e, 0x00594c3f, 0x005a4e42, 0x005a5144, 0x00564f42, 0x00524b40, 0x004f4643, 0x00474340, 0x00403c3c, 0x00433f3e, 0x003e3939,
- 0x0048352a, 0x00785847, 0x00c59a81, 0x00dea583, 0x00d89467, 0x00d79166, 0x00d58f63, 0x00d18d63, 0x00c6825b, 0x00a96740, 0x008c4d25, 0x0082461d, 0x007b401a, 0x00834a25, 0x00a76e4a, 0x00bb825f,
- 0x00b98662, 0x00af8565, 0x0089694f, 0x005b4432, 0x00676258, 0x00b7bbb5, 0x00f7fdfb, 0x00f9fdfe, 0x00fcfffd, 0x00fdfefb, 0x00fffefc, 0x00fcfcf8, 0x00f8faf8, 0x0079807b, 0x00465547, 0x0041553b,
- 0x00435d29, 0x00445e22, 0x00476023, 0x00466126, 0x00485f2e, 0x0048652c, 0x0046672a, 0x0044692a, 0x005b6430, 0x007d673e, 0x0096724d, 0x00916d47, 0x00656e39, 0x00556b31, 0x00587035, 0x006c7640,
- 0x009c8763, 0x00ac8b6b, 0x00a97a60, 0x00b37e67, 0x008e5b42, 0x007e5f3e, 0x007a6b42, 0x00757846, 0x00667a3a, 0x00617433, 0x00627635, 0x005d7937, 0x00557f35, 0x00518133, 0x00548135, 0x005a8139,
- 0x00697739, 0x0076733d, 0x00766537, 0x00745833, 0x007a5c3a, 0x00876b3e, 0x0081743b, 0x006c783a, 0x0068783f, 0x00837b4f, 0x008b754f, 0x00755736, 0x00706d42, 0x006b6f3f, 0x00797949, 0x0075693a,
- 0x00976c56, 0x009d7e5e, 0x00867553, 0x00696b49, 0x00313d42, 0x0015253e, 0x001c2a4e, 0x004c5478, 0x00939481, 0x008b8651, 0x00878049, 0x006d6450, 0x0011254e, 0x00092844, 0x00021b25, 0x000f1716,
- 0x00110e23, 0x00020d1a, 0x00031916, 0x00133013, 0x004b564c, 0x00607662, 0x0050664d, 0x00424a2d, 0x00514b30, 0x0059503c, 0x00221a0b, 0x000d0c04, 0x00080b0c, 0x00070d09, 0x00030600, 0x000b0903,
- 0x00061006, 0x001c2e11, 0x00526b3b, 0x0063833d, 0x00608430, 0x00628136, 0x005f7634, 0x003e4b1a, 0x003f3918, 0x00605233, 0x007f7e55, 0x005c7d37, 0x005d7f39, 0x00597e37, 0x005b7c37, 0x005a7c36,
- 0x00597d37, 0x00597c37, 0x00597c36, 0x00597b35, 0x005a7a36, 0x00587834, 0x00577833, 0x00577833, 0x00557833, 0x00557733, 0x00557533, 0x00537433, 0x00527333, 0x00507132, 0x004f7031, 0x004f6f30,
- 0x004d6e2f, 0x004c6d2e, 0x004c6d2e, 0x004a6c2e, 0x0049692f, 0x004c6931, 0x0046622a, 0x004c6932, 0x00465d28, 0x0049602b, 0x00b5c4a1, 0x00fbfdfd, 0x00fffff9, 0x00fdfdf5, 0x00fffff9, 0x00fbfefc,
- 0x00a6c0c5, 0x00193e6d, 0x00103d7e, 0x00174b95, 0x0014489a, 0x002957a4, 0x003360a8, 0x003864a3, 0x003d669b, 0x00436aa1, 0x00456ba8, 0x00446db0, 0x004a76c1, 0x004675bf, 0x004478c0, 0x003e76b7,
- 0x003e6eb3, 0x00416eb4, 0x003866ad, 0x0027579c, 0x001d4b90, 0x001e4d90, 0x00225194, 0x002c579c, 0x003462a5, 0x003968a9, 0x003f6bb1, 0x00426cb2, 0x00406cac, 0x003d6aa0, 0x003d6aa1, 0x003c69a2,
- 0x003d69a4, 0x00416eac, 0x003e6aab, 0x002f5b95, 0x00265681, 0x00264e76, 0x00325476, 0x00627d97, 0x00b5c2c8, 0x00d0d4d6, 0x00cbc9c8, 0x00beb7b8, 0x00c7bdc4, 0x00d2cbce, 0x00d7d3d1, 0x00d8d5cf,
- 0x00d7d9d6, 0x00dddcde, 0x00e7e2ec, 0x00e9e2f2, 0x00ece0f4, 0x00e9daea, 0x00d9c6ce, 0x00ad9693, 0x006a4e3f, 0x00563922, 0x005a3b1a, 0x00684214, 0x006b4514, 0x006b410f, 0x00754e16, 0x00825b20,
- 0x007e561a, 0x00764e15, 0x006a420d, 0x00663d0e, 0x00754a1e, 0x0086581e, 0x00976c29, 0x00997234, 0x00a88b58, 0x00cdb485, 0x00eedaac, 0x00f8eabc, 0x00faedbd, 0x00fcecba, 0x00fceab6, 0x00fdebb3,
- 0x00fbe7a9, 0x00fce9ad, 0x00ffedb2, 0x00fbeaad, 0x00fbdf97, 0x00e5be70, 0x00b58433, 0x00a56a1a, 0x009e6420, 0x00965f24, 0x00935c24, 0x008c5111, 0x0082470a, 0x00783e09, 0x00703808, 0x006d380c,
- 0x00673a13, 0x00643813, 0x006c411f, 0x006e4622, 0x005e3916, 0x00392d1a, 0x008f9188, 0x00f5f5ed, 0x00fefdf6, 0x00fcfcf5, 0x00fafaf4, 0x00fefffa, 0x00b2b3b1, 0x002d2e2e, 0x00030809, 0x0004080b,
- 0x000a0b07, 0x000b0a08, 0x000b0a08, 0x000c0c09, 0x000a0b06, 0x000a0b06, 0x00090a07, 0x000b0a09, 0x000a0906, 0x000a0908, 0x000a0a08, 0x000a0b07, 0x000b0b08, 0x000a0b07, 0x00090a06, 0x00090a07,
- 0x00080905, 0x00090b06, 0x000c0d08, 0x000d0e09, 0x000c0d09, 0x000b0c07, 0x000c0d08, 0x000e0e0a, 0x000b0d09, 0x000a0b07, 0x00080905, 0x00050702, 0x00040503, 0x00040503, 0x00050503, 0x00060403,
- 0x00040904, 0x00030703, 0x00030704, 0x00050a06, 0x000a0d09, 0x000e100c, 0x000e110d, 0x000d100d, 0x000c0e0a, 0x00090b07, 0x00070a07, 0x00050806, 0x00080808, 0x00060607, 0x00090909, 0x000b0b0b,
- 0x000c0d08, 0x000e0f0b, 0x0010110d, 0x000e0f09, 0x000b0c05, 0x00090a05, 0x00080906, 0x00060704, 0x00070706, 0x00060605, 0x00060704, 0x00060804, 0x00090907, 0x000a0a08, 0x000c0c0a, 0x000c0c0a,
- 0x00090a07, 0x00080906, 0x00060705, 0x00060704, 0x00050704, 0x00030402, 0x00020300, 0x00030401, 0x00060503, 0x000a0a07, 0x000c0c08, 0x000b0c06, 0x000f100b, 0x00181915, 0x001f1f1d, 0x0020211f,
- 0x001b1c17, 0x00171714, 0x00131310, 0x0013130f, 0x00141510, 0x0011130e, 0x00171814, 0x00161514, 0x0012120f, 0x00070703, 0x0022221f, 0x00929390, 0x00fffffe, 0x00fcfdf9, 0x00fdfffc, 0x00fdfffd,
- 0x00f7f7f6, 0x00bbbcb9, 0x006a6c65, 0x00999c92, 0x00d1d4c8, 0x00eceee4, 0x00edf0eb, 0x00ebeced, 0x00e8e2ea, 0x00e4dce7, 0x00dcdbe1, 0x00cbd5d4, 0x00bbc3ce, 0x00aab1c1, 0x00989aad, 0x008c8a9c,
- 0x0074777e, 0x00767781, 0x0063626f, 0x005d5970, 0x007b7398, 0x008d86b4, 0x007272a8, 0x00465296, 0x0026409f, 0x002649ae, 0x001b42ab, 0x000e329a, 0x00163498, 0x00223fa4, 0x002241a6, 0x001c40a6,
- 0x00854e6a, 0x00c097b1, 0x00e1c6e0, 0x00d4c9e1, 0x00cecde4, 0x00d1cde6, 0x00d4cce7, 0x00d8cbe9, 0x00d8cde9, 0x00d4cde5, 0x00d4cde6, 0x00d5cbe8, 0x00d9cfeb, 0x00dcd2ed, 0x00dbd0ed, 0x00d5cbe9,
- 0x00ccc4dd, 0x00d3cbe5, 0x00ddd2ed, 0x00d9d1ee, 0x00d4c8e4, 0x00c8c3e1, 0x00cbc7e3, 0x00d0cde8, 0x00d2d4ef, 0x00d2d3ee, 0x00d1d2ec, 0x00d7d9f1, 0x00f0efff, 0x00f2edff, 0x00e9e4f9, 0x00efe6fe,
- 0x00edceed, 0x00e8cdd7, 0x00e9c1b7, 0x00e69c87, 0x00ef5b55, 0x00e8625a, 0x00feaca5, 0x00ffd9cf, 0x00bfb3a1, 0x00a07b71, 0x00986559, 0x009e6c50, 0x00a87057, 0x00a77153, 0x00a36c50, 0x00a56f53,
- 0x00a07157, 0x00966e59, 0x007b5d50, 0x004c342b, 0x001a0a09, 0x00100d09, 0x00090f0b, 0x00181b1c, 0x00605f72, 0x009492ab, 0x009c98b8, 0x009f9abc, 0x00aea6c9, 0x00b8afd2, 0x00b9b0d2, 0x00b9b0d0,
- 0x00c9cfd6, 0x006a6e83, 0x0076798d, 0x0077798b, 0x00868698, 0x00848394, 0x0084808f, 0x00847d8c, 0x00867d88, 0x00817783, 0x00786d77, 0x00685b61, 0x005b5059, 0x004e4854, 0x00363545, 0x00383c52,
- 0x005d7594, 0x006c8cb6, 0x007099cf, 0x0075a5e0, 0x0077abf1, 0x0066a2f8, 0x005e9efd, 0x005c9ffa, 0x0062a3f2, 0x00659ee6, 0x006798d7, 0x006e8cc6, 0x0077739c, 0x00775e75, 0x007f5660, 0x00945b55,
- 0x00836b73, 0x00877279, 0x009d8f96, 0x00d3ccd3, 0x00f4f5fc, 0x00eaedf6, 0x00e9edfa, 0x00e8eafc, 0x00dcdaf2, 0x00ddd6f0, 0x00e6e0fc, 0x00e6e4f8, 0x00eae8f8, 0x00edeaf9, 0x00f0eef9, 0x00f7f5fc,
- 0x00f7f6fb, 0x00f5f5f6, 0x00f7f9f9, 0x00f7faf5, 0x00fafaf5, 0x00faf9fb, 0x00fafafc, 0x00faf9f9, 0x00f8f9fb, 0x00fafafc, 0x00f7f7fa, 0x00f4f4f7, 0x00f2f1f9, 0x00efedfa, 0x00ece8fa, 0x00e9e5f8,
- 0x00d9dff6, 0x00e4e2ed, 0x00d3b1b1, 0x00bf5550, 0x00c87d74, 0x00e6c7d6, 0x00d7c7e2, 0x00d0b5d3, 0x00a0948c, 0x006b4d50, 0x002f1215, 0x00180d07, 0x001c0f0b, 0x00191009, 0x001a130a, 0x001d180d,
- 0x001a150b, 0x001e1609, 0x001f1509, 0x00201409, 0x00211208, 0x001d1506, 0x001e1907, 0x00201f0a, 0x00252815, 0x00272f1c, 0x00263422, 0x00253726, 0x0025372a, 0x00223529, 0x001d2f23, 0x001c2b21,
- 0x001d2c23, 0x001d2b23, 0x00232c26, 0x002b312c, 0x00373939, 0x003e3e3f, 0x003e3f40, 0x003f4042, 0x003e4145, 0x003b3f42, 0x00343c39, 0x002d3730, 0x00282f2a, 0x00252a28, 0x001d2322, 0x00151b1b,
- 0x000d1211, 0x000b0f0d, 0x0010130f, 0x001c1f16, 0x002f3226, 0x0081817c, 0x00fefefc, 0x00fefefd, 0x00fbfdfd, 0x00fcfefe, 0x00fafdfd, 0x00cccecc, 0x00797871, 0x006d685e, 0x00686053, 0x00817667,
- 0x0091774e, 0x009b8263, 0x009c856e, 0x00907b6c, 0x00817160, 0x005d5037, 0x00483b1c, 0x00645435, 0x008d795d, 0x009a846d, 0x00645543, 0x0028271b, 0x000f0d01, 0x00121102, 0x001f200e, 0x001f210f,
- 0x002b2e1d, 0x004e5244, 0x007d8277, 0x00666860, 0x00343730, 0x003d3829, 0x00493b29, 0x004d3927, 0x00492e23, 0x00341f1a, 0x00241310, 0x0017100d, 0x0029231b, 0x003e321e, 0x00604e2e, 0x008b7146,
- 0x00856f56, 0x00634e35, 0x00523d27, 0x005f4a38, 0x00472e23, 0x00230b04, 0x001c0702, 0x001e0a05, 0x002d161a, 0x003a2527, 0x00382c2c, 0x0032322f, 0x00342e27, 0x00392f25, 0x00342b22, 0x002a261c,
- 0x004d4f47, 0x00626255, 0x00625d49, 0x007e6e50, 0x00907046, 0x0085674b, 0x0078654f, 0x00817968, 0x00646a60, 0x0046473c, 0x004f493c, 0x00624c3a, 0x00694d3b, 0x0062503c, 0x0088846e, 0x00909a86,
- 0x00877658, 0x006a5d42, 0x00665a46, 0x009f998b, 0x00dddcdb, 0x00dfe3e4, 0x00c9d1d8, 0x00a5acb7, 0x00687783, 0x00566871, 0x005f7081, 0x0063758b, 0x009093bf, 0x00b2afd2, 0x00a29fb2, 0x0096968f,
- 0x00a8aca2, 0x00beb9bd, 0x00978c8f, 0x0059453d, 0x00674b16, 0x00887249, 0x00ab8f74, 0x009c6d58, 0x00782823, 0x006f1f1c, 0x00651b1a, 0x004e1513, 0x002e110e, 0x001a0e0d, 0x001d1618, 0x00424245,
- 0x006f7776, 0x007c8785, 0x008e9a96, 0x00a5aca5, 0x00a59f8e, 0x00968068, 0x00876750, 0x00845943, 0x00562c28, 0x002a0809, 0x001a0409, 0x00070908, 0x00040504, 0x00000101, 0x00080809, 0x00121211,
- 0x00121212, 0x000f0f0f, 0x00181818, 0x00111111, 0x00060606, 0x00060606, 0x00020202, 0x00010101, 0x000a0a0a, 0x00030303, 0x00575757, 0x00dadada, 0x00ffffff, 0x00fefefe, 0x00fefefe, 0x00fdfdfd,
- 0x00d4d8d8, 0x008c8d8d, 0x00888683, 0x00a8a39d, 0x0080726a, 0x00504135, 0x0048392c, 0x004b3a2d, 0x00473529, 0x00443325, 0x003a3831, 0x00324248, 0x00354b58, 0x00375365, 0x00365a70, 0x00365e7d,
- 0x003a6e93, 0x00447ba2, 0x00528cb4, 0x005a96c0, 0x00649fcc, 0x0072a2da, 0x007da4e6, 0x007fa6ed, 0x0083a9f0, 0x0085aaf4, 0x0085a9f3, 0x0084a7f7, 0x0084a6f3, 0x00799ce3, 0x00688bd6, 0x00577bc2,
- 0x004b6498, 0x00494f7e, 0x004c3c61, 0x00553148, 0x004d1d27, 0x00371319, 0x001c0711, 0x000c0516, 0x0006143b, 0x000a1d4f, 0x00132663, 0x001c3071, 0x00203e96, 0x00294b9f, 0x003864a6, 0x005586af,
- 0x006089bb, 0x00426dbe, 0x002656b7, 0x00205fc4, 0x001569b2, 0x001d5fa9, 0x002257a4, 0x001d54a6, 0x001957b4, 0x001c58b6, 0x001b56af, 0x002257a8, 0x004971a9, 0x005b7da4, 0x003c5970, 0x002e4551,
- 0x00414449, 0x00434447, 0x00484648, 0x004e4848, 0x00544a48, 0x00554b46, 0x00574d46, 0x00564f45, 0x00555046, 0x00535042, 0x004f4c41, 0x004d4844, 0x00454441, 0x00413f3f, 0x003f3e3c, 0x00393633,
- 0x004e3b30, 0x008d6c57, 0x00d1a689, 0x00e2a981, 0x00da9465, 0x00d68d63, 0x00d58d65, 0x00d58f67, 0x00d08b64, 0x00c5815e, 0x00ab6b48, 0x00844825, 0x00571c06, 0x00561e04, 0x00834e2e, 0x00a67151,
- 0x00b68562, 0x00af8566, 0x0097765e, 0x006c5545, 0x006c6461, 0x00bbbcbc, 0x00f9fdfc, 0x00faffff, 0x00fdfefd, 0x00fcfdf8, 0x00fdfcf8, 0x00fefdfa, 0x00f4f4f3, 0x00858a87, 0x002d382c, 0x003c4c33,
- 0x00445d2a, 0x00435e22, 0x00476023, 0x00476026, 0x004b5f2f, 0x0049632c, 0x00476529, 0x00476629, 0x00646333, 0x00836740, 0x00966e49, 0x008c6942, 0x005d6932, 0x00556b31, 0x0066743d, 0x00898353,
- 0x00a88f71, 0x00b69276, 0x00b88a73, 0x00b88470, 0x0080523b, 0x00745939, 0x007e734a, 0x006c733d, 0x005e7334, 0x00637835, 0x005e7432, 0x005e7a38, 0x00578038, 0x00528436, 0x00538437, 0x00568238,
- 0x00687738, 0x0072713b, 0x00807043, 0x00846a44, 0x00785a3a, 0x00816439, 0x00887943, 0x00727d43, 0x00667844, 0x008b865d, 0x00a4926f, 0x00917a57, 0x00717948, 0x006a7d44, 0x006c8144, 0x0070793b,
- 0x00835c4b, 0x008b6a4a, 0x0081683d, 0x00776839, 0x00716b4f, 0x005c574f, 0x00443d40, 0x0070626a, 0x00a99586, 0x00967f5d, 0x009a8767, 0x0075655e, 0x001a2d49, 0x0016353d, 0x00142d28, 0x00191f12,
- 0x00262034, 0x001e2926, 0x00395238, 0x00597944, 0x00767c5f, 0x00777d5b, 0x007e8362, 0x008a8563, 0x008f7b5c, 0x008a745d, 0x00604e3d, 0x00251d12, 0x000c0a07, 0x0016190f, 0x00232514, 0x00201e0b,
- 0x002c4021, 0x00486336, 0x00607e45, 0x0064883e, 0x005d8032, 0x005f7a36, 0x005e7035, 0x00333a12, 0x002a2005, 0x00554529, 0x0077764d, 0x005d7d37, 0x005a7c35, 0x00597c36, 0x005a7c37, 0x005a7d38,
- 0x00587b36, 0x00577a36, 0x00577b35, 0x00567a34, 0x00597835, 0x00577633, 0x00557631, 0x00557632, 0x00547630, 0x00537530, 0x00537532, 0x00517331, 0x00527233, 0x00506f31, 0x004e6f31, 0x004d6e30,
- 0x004b6d2d, 0x004b6c2d, 0x004c6c2d, 0x004a6b2d, 0x0049682f, 0x004a672f, 0x0047622b, 0x004d6831, 0x0049602b, 0x004b642f, 0x00c0d0ad, 0x00fcfefe, 0x00fefdf8, 0x00fefdf6, 0x00fefef8, 0x00fdfefd,
- 0x00acc2cc, 0x001f4372, 0x001a4786, 0x00083c84, 0x00013080, 0x00264a8a, 0x006f8dc1, 0x007495bf, 0x006d85a5, 0x007088a9, 0x004f668e, 0x00233d6d, 0x001f3d76, 0x00224680, 0x00204a83, 0x0019477a,
- 0x001e4274, 0x00153b6e, 0x00193d72, 0x00193c72, 0x00173b73, 0x001e427b, 0x00214681, 0x00224a86, 0x00234b8a, 0x00224b88, 0x00234683, 0x00214076, 0x00375685, 0x0036577b, 0x003e5f82, 0x0038597e,
- 0x002a4977, 0x002a4b78, 0x00365580, 0x003f5f84, 0x00183b54, 0x0018344a, 0x00526776, 0x008fa0a7, 0x00c8cfca, 0x00d5d5d0, 0x00c8c3be, 0x00c1b7b8, 0x00cfc4cc, 0x00dad4d6, 0x00d9d7d4, 0x00d8dbd2,
- 0x00e0dadd, 0x00e2dce2, 0x00e7e3ea, 0x00e9e4ef, 0x00ebe4f2, 0x00eee3f0, 0x00efe0ea, 0x00dfccd2, 0x00b49e98, 0x008e766a, 0x006f5339, 0x0069481b, 0x00714e1b, 0x00845d24, 0x00926b2a, 0x00a07734,
- 0x00a07736, 0x00956c2f, 0x00845b26, 0x007f5925, 0x00896139, 0x00966b2e, 0x00a2752f, 0x00a57c36, 0x00b49253, 0x00d9bc7f, 0x00f8e1a3, 0x00fdecb0, 0x00feedb1, 0x00feeab0, 0x00fbe7aa, 0x00fbe8a8,
- 0x00fee4ae, 0x00fce4b0, 0x00fbe7b3, 0x00f5e5b0, 0x00f6db9d, 0x00e9c481, 0x00bb8e49, 0x00a26d2a, 0x00965f2d, 0x0088582d, 0x00805228, 0x00794c18, 0x006e3f10, 0x00673a12, 0x00623712, 0x005b3313,
- 0x00563118, 0x00603d26, 0x0073533e, 0x007b5c47, 0x005c4029, 0x002e2720, 0x0085898a, 0x00f1f3f3, 0x00fcfefb, 0x00fcfdfa, 0x00fdfefa, 0x00fdfffb, 0x00b2b4b2, 0x002c2e2d, 0x00020706, 0x00030708,
- 0x000b0b08, 0x000a0907, 0x00090908, 0x000a0a09, 0x000b090a, 0x000b0909, 0x00090a07, 0x000a0a08, 0x000a0a08, 0x000b0a08, 0x000c0c08, 0x000c0d08, 0x000c0c09, 0x000c0b09, 0x000b0b08, 0x000b0b08,
- 0x00090c08, 0x000a0d09, 0x000c0f0a, 0x000e100d, 0x000f100e, 0x000e0f0c, 0x000f0f0b, 0x00100f0e, 0x000e100b, 0x000d0e0a, 0x000a0c07, 0x00070904, 0x00090805, 0x000a0905, 0x000a0a05, 0x000a0a06,
- 0x00070b06, 0x00060905, 0x00060a06, 0x00070b07, 0x00090a07, 0x000a0b08, 0x00090d0a, 0x00080c09, 0x00070c07, 0x00060a05, 0x00060906, 0x00070807, 0x000a0708, 0x00090708, 0x0009090a, 0x000a0a0b,
- 0x000b0d06, 0x000b0c07, 0x000d0e09, 0x000b0c06, 0x000c0c07, 0x000b0b07, 0x000c0c09, 0x000b0a08, 0x00070804, 0x00060703, 0x00060702, 0x00060702, 0x00080706, 0x00090807, 0x000a0a07, 0x00090b07,
- 0x000c0c09, 0x000a0b08, 0x00090a07, 0x00070906, 0x00070805, 0x00060604, 0x00060503, 0x00070705, 0x00070804, 0x000b0c08, 0x000d0d0a, 0x000c0d08, 0x0010100c, 0x00181815, 0x001f201d, 0x0022231f,
- 0x001c1f18, 0x00181b14, 0x0013140f, 0x0013130f, 0x00141310, 0x00161613, 0x001d1d1a, 0x001a1b18, 0x00161714, 0x00080906, 0x00222321, 0x0091928f, 0x00fffffe, 0x00fefefc, 0x00fffefd, 0x00fefefd,
- 0x00fbf8f5, 0x00b9b7b4, 0x0050534f, 0x00676e6c, 0x00858b90, 0x009198a0, 0x00878d99, 0x00797e8f, 0x00646686, 0x0059597a, 0x004f536c, 0x00414e60, 0x003b4464, 0x00373c64, 0x002e315a, 0x00272851,
- 0x0022263f, 0x0035374f, 0x004f5068, 0x0065637e, 0x00847fa4, 0x008e89b4, 0x007e7daf, 0x004f5898, 0x00253e99, 0x002646a7, 0x001e41a7, 0x0013349a, 0x001a3395, 0x00253ea0, 0x002641a4, 0x002240a4,
- 0x00985e75, 0x00cea0b7, 0x00e1c3d8, 0x00d4c6da, 0x00d0cde5, 0x00d4ceea, 0x00d5cdea, 0x00d7c9ea, 0x00d5cae8, 0x00d5ceeb, 0x00d6cfeb, 0x00dbd2ed, 0x00ded4f1, 0x00dbd0ed, 0x00d2c6e5, 0x00cec2e2,
- 0x00d2cae5, 0x00d9cfec, 0x00dad1ee, 0x00d4cce8, 0x00d4c9e5, 0x00d5c8e2, 0x00d5cae3, 0x00d3cce5, 0x00d4cfec, 0x00d0d3ee, 0x00d4d3ed, 0x00d9daf3, 0x00e9e4fc, 0x00f0e8fe, 0x00ebe0f5, 0x00f3e8fa,
- 0x00ffe5ff, 0x00f3e7f6, 0x00f3e5f1, 0x00f8e0e8, 0x00e99cb7, 0x00d58aa4, 0x00f4bccb, 0x00eacdcb, 0x00b9967a, 0x00a86a4a, 0x00a56241, 0x00946148, 0x00905d42, 0x00965f46, 0x00a36c51, 0x00a06d50,
- 0x00966a53, 0x00886451, 0x005e4438, 0x0038261e, 0x001b0f0f, 0x000f0e09, 0x000b0f0a, 0x000f1313, 0x00525362, 0x0089889f, 0x00928dad, 0x009b95b7, 0x00aca5c8, 0x00b5acd0, 0x00bbb1d4, 0x00bdb3d3,
- 0x00ced1dc, 0x007a7c94, 0x00838499, 0x00848598, 0x008c8c9f, 0x008a8a9a, 0x00898694, 0x008a8590, 0x008d808e, 0x00847a86, 0x007d6d77, 0x00785d61, 0x0067555f, 0x004e4a59, 0x00424860, 0x00607392,
- 0x008dafe2, 0x007fa9e5, 0x005f91d5, 0x005d98e1, 0x00629aee, 0x005997f4, 0x005296f5, 0x004b94f0, 0x004b95ec, 0x005195ec, 0x005391e5, 0x006290e5, 0x007b86c6, 0x007c769c, 0x00796573, 0x00856359,
- 0x0081626b, 0x008c7379, 0x00c7b7bc, 0x00eae4ea, 0x00ededf6, 0x00e4e7f3, 0x00e1e6f6, 0x00dbdff3, 0x00dbd6f3, 0x00e0d6f7, 0x00e6ddf6, 0x00e6e4f2, 0x00ebe8f7, 0x00edeaf8, 0x00f0eef8, 0x00f4f2fa,
- 0x00f9f6ff, 0x00f8f5fb, 0x00f6f6f9, 0x00f5f7f5, 0x00f6f5f5, 0x00f7f5fa, 0x00f9f9fd, 0x00f6f5fb, 0x00f9f7ff, 0x00f7f6fc, 0x00f4f3f9, 0x00f1f0f7, 0x00efedf9, 0x00eae8f9, 0x00e2dff5, 0x00dedbf3,
- 0x00d7d6ee, 0x00d5daec, 0x00cfb4bb, 0x00bf5a54, 0x00bc6b5a, 0x00ddbbc8, 0x00dacfea, 0x00dec9ea, 0x00cdc1b9, 0x00917578, 0x0033161a, 0x001c0e07, 0x001f0f0c, 0x001b120b, 0x00181209, 0x001c1a10,
- 0x001c1912, 0x001c180f, 0x0019160b, 0x00171309, 0x001a1208, 0x00191506, 0x001c1906, 0x001f1f0a, 0x00232918, 0x00262f20, 0x00243323, 0x00233425, 0x00213326, 0x001e3124, 0x001a2d1f, 0x001a2b1e,
- 0x00202b24, 0x00202924, 0x00272d28, 0x00323733, 0x003f4241, 0x00454747, 0x00464747, 0x0048494b, 0x004a4a52, 0x0044464c, 0x0039403f, 0x002d3730, 0x00242c26, 0x001f2623, 0x00171f1e, 0x000e1616,
- 0x000c0d0e, 0x00080a09, 0x000b0d0a, 0x00161911, 0x002b2e23, 0x007e7f7a, 0x00fcfcfb, 0x00fcfcfc, 0x00fdfcff, 0x00ffffff, 0x00fbfbfb, 0x00cdcfcb, 0x007b7b73, 0x006a675c, 0x00605b4d, 0x00887f70,
- 0x00876d49, 0x008c7559, 0x007f6954, 0x006c594b, 0x00635545, 0x004b4027, 0x003a2b0b, 0x00604f2e, 0x00887459, 0x00a38b74, 0x00705f4c, 0x00343221, 0x00211b0b, 0x00322c18, 0x004e4a33, 0x00514d37,
- 0x004b4637, 0x00443e33, 0x004c4a42, 0x004c4a43, 0x00464744, 0x0054483e, 0x005d4939, 0x005e4535, 0x005a3a2f, 0x003e251f, 0x001c0a03, 0x000e0601, 0x0027221a, 0x003d3425, 0x00594a30, 0x007f6844,
- 0x007e6b5b, 0x00554332, 0x00463624, 0x00504033, 0x002f1d13, 0x00150600, 0x001d1108, 0x0024180f, 0x00332226, 0x003b2d30, 0x00352c2d, 0x002b2c2c, 0x002b2822, 0x002e2921, 0x00403d35, 0x0043483e,
- 0x003f4344, 0x0040413d, 0x00525141, 0x00786e52, 0x00876b41, 0x007e6147, 0x0068533f, 0x005c5648, 0x004f5957, 0x00535652, 0x006f6860, 0x00846c5a, 0x007f604a, 0x0077634d, 0x0088846a, 0x007b8771,
- 0x00605a44, 0x00504730, 0x00796e59, 0x00c5bcaa, 0x00f1ebe2, 0x00eaebe4, 0x00e5ebeb, 0x00dae1e5, 0x00bec3ca, 0x00b3bdbc, 0x00bdc9cd, 0x00c4d3e0, 0x00d7d8f9, 0x00dcdaf4, 0x00dbdbe6, 0x00d9ded1,
- 0x00d3d5d0, 0x00bfbcc3, 0x008a8389, 0x005a4b47, 0x00816937, 0x00a8916d, 0x00b69b82, 0x00aa8269, 0x00803d33, 0x006a1e18, 0x00681916, 0x00550b0d, 0x003e0d10, 0x00220b0b, 0x00171110, 0x00313c3a,
- 0x00606367, 0x00697070, 0x00787d78, 0x0094948a, 0x00a89682, 0x00a4876f, 0x0087634a, 0x005e361e, 0x002a0d0a, 0x00140101, 0x000b0204, 0x00040504, 0x00040505, 0x00010101, 0x00040605, 0x00131611,
- 0x001a1a1a, 0x00161616, 0x00151515, 0x000d0d0d, 0x00050505, 0x00020202, 0x00060606, 0x000a0a0a, 0x000a0a0a, 0x00020202, 0x00585858, 0x00dadada, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fdfdfd,
- 0x00d8d7dd, 0x00918d92, 0x00888484, 0x00a8a39c, 0x0083746a, 0x00524235, 0x00493a2b, 0x00473729, 0x00452f25, 0x00473325, 0x00524845, 0x0053556a, 0x00586079, 0x00606e8e, 0x006d84a6, 0x00738eba,
- 0x007c9dd6, 0x0082a9e2, 0x0087b3ed, 0x0087b4ef, 0x0089b7f5, 0x008eb4f1, 0x008daaea, 0x0086a4e5, 0x008499e0, 0x00798bd1, 0x007182c2, 0x006776b5, 0x005c67a0, 0x0050598f, 0x00414a7c, 0x003c4472,
- 0x00463942, 0x00452b34, 0x0036111a, 0x00380811, 0x00370302, 0x00240200, 0x00120100, 0x00050201, 0x00080015, 0x0005021e, 0x00020025, 0x00020937, 0x0004114f, 0x0015265c, 0x00385272, 0x005b727c,
- 0x00687591, 0x0055639f, 0x003653a7, 0x00285ab8, 0x001868b4, 0x00205aac, 0x002555a6, 0x001f54ab, 0x001e57b1, 0x001b55af, 0x001553a8, 0x001953a1, 0x0039629c, 0x00587ba9, 0x004c6c8b, 0x002d475e,
- 0x003e4149, 0x003f4248, 0x0045454a, 0x004a484b, 0x004f4a4c, 0x00504b49, 0x00524e48, 0x00524f45, 0x00535147, 0x004f4f41, 0x004d4d3f, 0x00494741, 0x0040413d, 0x0040403f, 0x00393a35, 0x0033332b,
- 0x00604e46, 0x00a78976, 0x00d3a98c, 0x00d69e74, 0x00d99664, 0x00d99168, 0x00d88d66, 0x00d18c64, 0x00d79070, 0x00db9678, 0x00d69775, 0x00be8462, 0x00935d3f, 0x00683516, 0x00602f0e, 0x00825233,
- 0x00a77256, 0x00a97b61, 0x00936f5a, 0x00695343, 0x00746d6c, 0x00c4c3c6, 0x00fcfdfc, 0x00fbfcfd, 0x00ffffff, 0x00fffefb, 0x00fdfbf7, 0x00fcfaf7, 0x00f1f0f0, 0x00676c68, 0x00232e21, 0x003c4c30,
- 0x00475d2e, 0x00475f26, 0x00486125, 0x00486128, 0x004d6030, 0x004a632a, 0x00466325, 0x00486526, 0x00726839, 0x008f6b45, 0x00966a46, 0x00805c35, 0x0058652e, 0x005b6e36, 0x0068703c, 0x00837449,
- 0x009c8068, 0x00b48f76, 0x00926952, 0x00956550, 0x00845b41, 0x007e6444, 0x006d693d, 0x00627039, 0x0063793b, 0x00637b37, 0x00647c38, 0x00617a38, 0x005c7f39, 0x00558336, 0x00558337, 0x00597f36,
- 0x006e7639, 0x00857e4a, 0x00877246, 0x00866743, 0x008b674a, 0x008b6741, 0x008e7748, 0x00757a46, 0x00768052, 0x009c906d, 0x00ae9a7a, 0x009b8764, 0x006f7f4b, 0x00678646, 0x005f813b, 0x00698137,
- 0x0086654a, 0x00896b49, 0x00785c32, 0x00654c21, 0x00745e40, 0x006d5643, 0x00816c5f, 0x008e756c, 0x00a48978, 0x00997d5f, 0x00866f53, 0x00705750, 0x001a2732, 0x003c5346, 0x005f7158, 0x00565438,
- 0x004a3544, 0x0036342c, 0x00354425, 0x002d4117, 0x00535135, 0x0065684b, 0x00787857, 0x008b825f, 0x00836b4e, 0x00917761, 0x008d7869, 0x00352b23, 0x00151510, 0x001e2416, 0x00484e38, 0x005f6345,
- 0x005e7749, 0x0068864b, 0x005f803a, 0x005d8234, 0x005f8137, 0x00668045, 0x00576935, 0x00282e0c, 0x0041341b, 0x0069583b, 0x00706e44, 0x005f7e38, 0x005a7b35, 0x00587c35, 0x00577a35, 0x00567c37,
- 0x00597935, 0x00587835, 0x00577934, 0x00557933, 0x00577734, 0x00547531, 0x00537630, 0x00537530, 0x00557330, 0x00547330, 0x00517331, 0x00507331, 0x00506f30, 0x004e6e2f, 0x004a6d2d, 0x00486d2c,
- 0x004e6e31, 0x004e6c30, 0x004c6a2d, 0x0049692c, 0x004a692f, 0x0049672e, 0x0048642a, 0x0049652c, 0x004a602d, 0x0049622f, 0x00ccdebc, 0x00fcffff, 0x00fffffb, 0x00fffef8, 0x00fdfdf7, 0x00fcfefc,
- 0x00b0c3d3, 0x002a4f7d, 0x0025548f, 0x00174c90, 0x000e408c, 0x00365388, 0x00afc1e5, 0x00c8ddf4, 0x00c3cedf, 0x00c7d2e5, 0x00828da6, 0x00202b4d, 0x000c1d48, 0x000c2450, 0x0003214c, 0x00002045,
- 0x00031b40, 0x00092247, 0x00243d64, 0x00203b63, 0x0008274f, 0x00052652, 0x00072858, 0x0006295b, 0x00082761, 0x0004255d, 0x00062053, 0x00132750, 0x00586c8c, 0x00657d92, 0x006b8295, 0x00546b81,
- 0x001b2d4d, 0x00142746, 0x00536782, 0x006f8397, 0x0018323a, 0x0024353f, 0x0078848b, 0x00b2baba, 0x00d8d7d0, 0x00e0d9d7, 0x00cec5c6, 0x00c9bec6, 0x00d7cddc, 0x00e1dce4, 0x00dededf, 0x00dbdfd8,
- 0x00e5dbe3, 0x00e5dce7, 0x00e5e2e8, 0x00e6e6ec, 0x00e7e4ed, 0x00ede7ed, 0x00efe6ea, 0x00ecdfe3, 0x00e6d4d5, 0x00ceb8b9, 0x00a68d81, 0x00846444, 0x00785830, 0x008d6a35, 0x009c783b, 0x00ac8642,
- 0x00ba8e4a, 0x00b28846, 0x009f7937, 0x00a17e41, 0x00a7844f, 0x00a97d43, 0x00a6783a, 0x00a17638, 0x00b38c52, 0x00d8b87f, 0x00fde4aa, 0x00feedb4, 0x00feedb4, 0x00fbe7b0, 0x00f4e2a8, 0x00f3e4a5,
- 0x00fde1b1, 0x00f6dfb0, 0x00f2e1b1, 0x00eadfad, 0x00e8d49a, 0x00e0c286, 0x00b18c4e, 0x008c6025, 0x007d4e24, 0x006e4723, 0x0062401f, 0x005c3e14, 0x004f2f0b, 0x00492b0e, 0x00402409, 0x00351b03,
- 0x0045271e, 0x00664b40, 0x008f796e, 0x009e897e, 0x00735f54, 0x00373639, 0x00818a92, 0x00e8f1f3, 0x00fafcfd, 0x00fdfcfe, 0x00fdfffe, 0x00fcfefc, 0x00b2b2b3, 0x002c302f, 0x00000503, 0x00010805,
- 0x00090607, 0x00080706, 0x00050604, 0x00050704, 0x00080504, 0x00090705, 0x00070803, 0x00090b04, 0x000b080a, 0x000b090a, 0x000d0d09, 0x000d0d08, 0x000b0b09, 0x000a0a08, 0x000a0b07, 0x000a0b07,
- 0x000c0b0b, 0x000d0d0c, 0x0010100d, 0x0012120f, 0x00131311, 0x0012130e, 0x0012130d, 0x00121310, 0x00131211, 0x0012110f, 0x000e0f0a, 0x000b0d06, 0x000d0b08, 0x000e0d08, 0x000c1007, 0x000b1006,
- 0x000b0d0c, 0x000a0c0a, 0x00090d09, 0x00070c07, 0x00070906, 0x00080906, 0x00090c07, 0x000a0c07, 0x000b0c0a, 0x000a0b09, 0x00070908, 0x00070a09, 0x00090808, 0x000a0909, 0x00090b09, 0x000a0c0a,
- 0x000f0f0c, 0x000d0d0a, 0x000a0b07, 0x000b0c06, 0x000e0f08, 0x000f100b, 0x000d0e0a, 0x000b0c09, 0x000c0a0a, 0x00090808, 0x00070704, 0x00050401, 0x00050504, 0x00050604, 0x00060904, 0x00050a04,
- 0x00100c0e, 0x000e0c0d, 0x000b0a0a, 0x00080806, 0x00070805, 0x00070704, 0x00070804, 0x00080a05, 0x000c0b0b, 0x000b0a0a, 0x000b0b09, 0x000c0b06, 0x000e0e08, 0x00141510, 0x001b1d18, 0x001e211a,
- 0x001e1d1b, 0x001a1a16, 0x0012140d, 0x0011130c, 0x0010110c, 0x00161612, 0x001e1f1b, 0x001b1d19, 0x00191816, 0x000a0a09, 0x00242424, 0x00929290, 0x00fffffd, 0x00fefefd, 0x00fefefe, 0x00fcfdfa,
- 0x00faf6f3, 0x00aba8a8, 0x001d2023, 0x001c252b, 0x00222b40, 0x0026314c, 0x001e2b49, 0x00182444, 0x00161f48, 0x00131c45, 0x00131d41, 0x000c1e3f, 0x00101c4e, 0x00192059, 0x001b2259, 0x001c2257,
- 0x00282c56, 0x0046496f, 0x0067698a, 0x00767798, 0x008786ab, 0x008e8bb5, 0x008182b1, 0x00555e9a, 0x00254397, 0x002747a3, 0x002647a9, 0x001d3a9c, 0x00203694, 0x00273e9b, 0x0028409e, 0x00273f9f,
- 0x00a66a7e, 0x00d9a9bd, 0x00e2c3d4, 0x00d4c4d7, 0x00d2cde7, 0x00d4cdeb, 0x00d4ccea, 0x00d5c8e9, 0x00d8c9ef, 0x00d9cff2, 0x00dad3f3, 0x00ded6f1, 0x00dbd0ee, 0x00d2c8e4, 0x00cbc2de, 0x00cec5e2,
- 0x00dcd0ee, 0x00e0d3f3, 0x00d9cfec, 0x00cec8e2, 0x00d1c6e4, 0x00dac9e8, 0x00d9c7e4, 0x00d4c9e4, 0x00d7cce8, 0x00d7d0ec, 0x00d6d1ea, 0x00d9d4ed, 0x00e8e3f7, 0x00f2e7fe, 0x00ebe1f3, 0x00f1e3f7,
- 0x00ffe8fe, 0x00f4e7f4, 0x00eae3f0, 0x00faf4fd, 0x00fad6f3, 0x00ecc1e0, 0x00eec8dc, 0x00b8a6a4, 0x008a634a, 0x009b5a39, 0x00ac6845, 0x00895a42, 0x0078482e, 0x0086553c, 0x009d6d51, 0x009c7054,
- 0x00916656, 0x006a4a3d, 0x00301b12, 0x00221710, 0x00191414, 0x0011120c, 0x000f130d, 0x000a0c0a, 0x00424251, 0x007a778e, 0x00817b9a, 0x008d87a8, 0x009d96b9, 0x00a9a2c6, 0x00b0a8cb, 0x00b5accd,
- 0x00cbd3d3, 0x007a8092, 0x00898ca0, 0x008c8c9f, 0x009091a1, 0x008e8d9b, 0x00918c9b, 0x00928b99, 0x008c868c, 0x00837e83, 0x0085737c, 0x008c6466, 0x006b545d, 0x00514c60, 0x00606c8e, 0x0087a2d2,
- 0x007fb5ef, 0x006ba8ed, 0x005895e7, 0x005c9af2, 0x005696f2, 0x00528fea, 0x005591ef, 0x005098ee, 0x00439aea, 0x00429af2, 0x004a93f7, 0x004f8bf0, 0x006989df, 0x007a87bc, 0x007c778d, 0x007a6868,
- 0x00826669, 0x00a59091, 0x00eedde1, 0x00f8edf2, 0x00e8e9f0, 0x00e5eaf7, 0x00e4e6f9, 0x00dad7f4, 0x00d1d3e8, 0x00dad9ef, 0x00e8ddf6, 0x00ece6f2, 0x00ecebf9, 0x00eceaf8, 0x00f0eafb, 0x00f4edff,
- 0x00f1f2f6, 0x00f3f4f9, 0x00f6f3fb, 0x00f2f1f8, 0x00f2f1f5, 0x00f4f1f9, 0x00f4f1fd, 0x00f2f0fc, 0x00ebeeef, 0x00ebedf0, 0x00ecedf5, 0x00ebebf5, 0x00e9e6f8, 0x00e4e0f6, 0x00ded7f5, 0x00dad2f4,
- 0x00cbd0df, 0x00c5d4e6, 0x00d1bbc9, 0x00c35d5e, 0x00b55b45, 0x00dbb5be, 0x00dcceeb, 0x00d8c4eb, 0x00d1d1bd, 0x00af9f9a, 0x0052393b, 0x00240f07, 0x001e0e09, 0x0022170f, 0x001d140f, 0x001e1812,
- 0x00111706, 0x00111607, 0x0015150d, 0x0014140b, 0x0017140d, 0x00191607, 0x001c190b, 0x001c1e15, 0x00182710, 0x001a2b16, 0x00203120, 0x00213224, 0x001d2e21, 0x001a2a1f, 0x001b281f, 0x001b281f,
- 0x00162518, 0x00162519, 0x00232d25, 0x00343834, 0x00424442, 0x004c4b4c, 0x004d4a4f, 0x004c4b51, 0x00444b49, 0x00404846, 0x00394340, 0x002d3630, 0x001e2524, 0x001a1f20, 0x00161a1e, 0x000d1117,
- 0x00000700, 0x00000500, 0x00060903, 0x0014160e, 0x0025271a, 0x007a7a73, 0x00fffefe, 0x00fefeff, 0x00f5fbf8, 0x00f7fdf9, 0x00fbfefd, 0x00cecfce, 0x00807f79, 0x00605c53, 0x003c3429, 0x005d5346,
- 0x006c5e34, 0x00776948, 0x0072624e, 0x005b4c3e, 0x004c3e2c, 0x00382a14, 0x00332306, 0x00574522, 0x00665932, 0x00736243, 0x006e5843, 0x004f4631, 0x00584e39, 0x007a745c, 0x008b836c, 0x006e6551,
- 0x00323117, 0x00211d08, 0x002a231a, 0x003c3834, 0x00484648, 0x004f3a39, 0x00664643, 0x0074524b, 0x00725742, 0x005d4632, 0x00301e14, 0x00140a04, 0x00231e17, 0x0034291e, 0x00413122, 0x00533d29,
- 0x00403824, 0x0029200d, 0x003a3123, 0x00574e43, 0x0051483d, 0x00322922, 0x00221916, 0x002a211e, 0x002e2b23, 0x002b271f, 0x002a2725, 0x0027262a, 0x002d2c28, 0x002e2b25, 0x0055524e, 0x00676968,
- 0x0032443d, 0x002a392f, 0x00505245, 0x00746a53, 0x00785f39, 0x0072563d, 0x00513a2b, 0x00353027, 0x002d413a, 0x004d5c54, 0x007e7773, 0x008e7264, 0x007f5a43, 0x006e593f, 0x006c634b, 0x004e5744,
- 0x0035371a, 0x0048462a, 0x00a39880, 0x00e6d7c3, 0x00f6eadb, 0x00f0eae1, 0x00e9eae6, 0x00e3e9e8, 0x00d8e1d3, 0x00dce3cd, 0x00e9eee3, 0x00eaf5f0, 0x00ecebf8, 0x00e7e5f2, 0x00e5e2ea, 0x00e2e4d7,
- 0x00c3d4c2, 0x00b4bfc1, 0x0086848e, 0x0054494c, 0x0079663e, 0x00ab9074, 0x009f7f68, 0x009b765f, 0x00794d32, 0x005f210f, 0x0062130d, 0x00590205, 0x004c0610, 0x00330e13, 0x001c1517, 0x00263b37,
- 0x00525d55, 0x00616760, 0x0075706c, 0x0090817c, 0x00a48274, 0x00966e59, 0x006d432d, 0x004c2310, 0x00181203, 0x00040500, 0x00000505, 0x00080607, 0x00060605, 0x00000200, 0x00030203, 0x00110d13,
- 0x000e140d, 0x00131714, 0x00101111, 0x000a090b, 0x00050404, 0x00050304, 0x00262223, 0x003b373a, 0x00232821, 0x00030802, 0x00565757, 0x00dbdbdc, 0x00fefefe, 0x00fefeff, 0x00fffeff, 0x00fffeff,
- 0x00d1d9d4, 0x00888f89, 0x00898581, 0x00ada39c, 0x007f7368, 0x004e3d31, 0x00533c30, 0x004d3629, 0x00453621, 0x005d4c37, 0x0078615c, 0x007e6578, 0x0079647c, 0x007a6d8b, 0x00897ea4, 0x008986b0,
- 0x007a88b3, 0x007486b9, 0x007184bb, 0x006b80b7, 0x006379b4, 0x005b72ab, 0x00576a9f, 0x00526097, 0x0040527d, 0x00404b71, 0x0044436e, 0x003c375b, 0x00372c44, 0x0037283b, 0x003a2836, 0x00433039,
- 0x0068461c, 0x0065411f, 0x00512010, 0x00401006, 0x002b0a09, 0x00190605, 0x000f0505, 0x00070403, 0x00000200, 0x00040007, 0x00050012, 0x00000115, 0x0003021c, 0x002d2933, 0x007d7872, 0x00ab9d7c,
- 0x00ad9d89, 0x0088809b, 0x00545698, 0x003253ab, 0x001764b3, 0x002057a9, 0x002550a7, 0x002254aa, 0x001859a3, 0x001457a4, 0x001755a2, 0x0019539b, 0x00295993, 0x004a71a2, 0x005974a0, 0x003e4f78,
- 0x00313e40, 0x00344043, 0x0040454b, 0x0047474c, 0x004b494a, 0x00504b4b, 0x00554e4c, 0x0057534c, 0x0047513b, 0x00465139, 0x00494d3d, 0x00464240, 0x003d413b, 0x003b3f3b, 0x00383834, 0x003b3834,
- 0x00736955, 0x00b39b81, 0x00caa183, 0x00ca9770, 0x00d79965, 0x00d4906a, 0x00d68c6a, 0x00d88e6d, 0x00d3946c, 0x00d29672, 0x00d49677, 0x00d39a7e, 0x00c89175, 0x00ac775c, 0x0079462e, 0x006d3a24,
- 0x007d4f26, 0x0082583a, 0x0076503d, 0x00573c33, 0x00786e6f, 0x00cbc8cc, 0x00fffeff, 0x00fffbff, 0x00fafef8, 0x00f8fef4, 0x00fff8f5, 0x00fcfbf8, 0x00ecebea, 0x004a4e49, 0x002e352a, 0x003d4a35,
- 0x00405e24, 0x00436122, 0x00486323, 0x004d6328, 0x004f6032, 0x004d622c, 0x00496228, 0x00546832, 0x00746c3a, 0x008d6a3e, 0x008e5e3c, 0x00744f2b, 0x0053612a, 0x005c6a33, 0x00605f30, 0x007a5e35,
- 0x009f8f69, 0x00907658, 0x0068402c, 0x00774a36, 0x006d4931, 0x0073603d, 0x006a653c, 0x00657241, 0x005d7c33, 0x0058792c, 0x00637c35, 0x00687a39, 0x005f7e38, 0x005b8236, 0x005f843a, 0x0063813d,
- 0x006f7935, 0x00786f37, 0x00795e37, 0x00835e3c, 0x008e6145, 0x00835436, 0x0087623e, 0x00787045, 0x00878f5d, 0x00a69c76, 0x00a58a6d, 0x00997f60, 0x006b8045, 0x00658943, 0x0063893e, 0x006b8a3b,
- 0x007d733c, 0x008d804f, 0x00816942, 0x006a4d29, 0x007b5a3e, 0x0086624b, 0x009c7566, 0x00926c5d, 0x007c6444, 0x0077643d, 0x00876f53, 0x0086675d, 0x00565b52, 0x006c7b59, 0x007a7e59, 0x00685634,
- 0x00533739, 0x0037281a, 0x00363519, 0x0027310b, 0x004d3d2d, 0x00514b30, 0x0050462a, 0x00645136, 0x00786042, 0x008a745e, 0x00715c55, 0x00261b18, 0x000a0c07, 0x000a1005, 0x002f3723, 0x006c7254,
- 0x005b8337, 0x005a8435, 0x00618637, 0x00648836, 0x00607f3b, 0x00687e48, 0x00626d45, 0x004e4f30, 0x0067663e, 0x00777148, 0x00696c3c, 0x005d803c, 0x005c7f3a, 0x005c7c39, 0x00607c3b, 0x00607c3b,
- 0x00537a2f, 0x0055792f, 0x00577734, 0x00577734, 0x00567734, 0x0054772f, 0x00567632, 0x00597536, 0x004d752a, 0x004f7129, 0x00527231, 0x004f7030, 0x00507030, 0x004e6e2e, 0x004e6e30, 0x004d6d30,
- 0x00446e26, 0x00466d28, 0x004a6b2f, 0x0048672c, 0x0049672c, 0x0049652d, 0x004b6230, 0x004c632e, 0x003f5e26, 0x00415f25, 0x00dbeaca, 0x00fdfeff, 0x00fffefb, 0x00fefef7, 0x00fffefb, 0x00fefeff,
- 0x00a7c4d4, 0x003b6389, 0x0028548f, 0x00215398, 0x001e519e, 0x00465d8a, 0x00bcc3dd, 0x00e5ecfc, 0x00dee6e2, 0x00e6ede8, 0x00c4c3cd, 0x0087859a, 0x00636b8a, 0x00526280, 0x00405575, 0x00304c66,
- 0x002c3f4d, 0x003c4f60, 0x00607288, 0x004f627d, 0x001d3455, 0x00183259, 0x0019335f, 0x00173361, 0x000a315a, 0x0009305e, 0x00132c58, 0x00373f5c, 0x0096a3b2, 0x00b8c2ce, 0x00afb8c6, 0x007c8893,
- 0x00253740, 0x002b3b43, 0x008995a0, 0x00a6b3b9, 0x005c6b65, 0x005a6263, 0x00a09ea5, 0x00cfccca, 0x00dcdacc, 0x00d6d1c9, 0x00ccc0c5, 0x00cec1ce, 0x00d9cfe1, 0x00e0dbe9, 0x00dcdae3, 0x00dbdcde,
- 0x00e2dadd, 0x00e1ddde, 0x00e5e1e4, 0x00e5e3e5, 0x00e6e5e5, 0x00e9e6e7, 0x00efe8ec, 0x00eee7ea, 0x00ede4e5, 0x00e0d7d8, 0x00cab8b5, 0x00ab8e7d, 0x00805f44, 0x007d5b32, 0x0097723e, 0x00b38b4c,
- 0x00bc9a47, 0x00bb9945, 0x00b69144, 0x00bd9b55, 0x00bf9e5e, 0x00b48a54, 0x00a87749, 0x009f7241, 0x00a28449, 0x00c4aa70, 0x00f1d7a1, 0x00fde4b2, 0x00f9e5b5, 0x00f4e0b1, 0x00f1dbac, 0x00eedbab,
- 0x00e6d6a0, 0x00dfd4a0, 0x00dbd4a5, 0x00d5ce9f, 0x00d2c690, 0x00cdb77f, 0x00ac8b57, 0x00875f2d, 0x00614314, 0x00583b18, 0x004f361a, 0x00433217, 0x00392812, 0x002d1e0d, 0x0029170f, 0x002c1816,
- 0x00443934, 0x006f6661, 0x00a09497, 0x00b1a5a9, 0x00887d7e, 0x00484753, 0x0085899f, 0x00e9eff8, 0x00f6fdf9, 0x00f8fcfa, 0x00fcf9fa, 0x00fffcfb, 0x00b2b4b1, 0x002b3030, 0x0004080a, 0x0004090c,
- 0x00010800, 0x00030800, 0x00070704, 0x00090706, 0x00050604, 0x00050602, 0x00080705, 0x00090709, 0x00040800, 0x00030800, 0x00080a07, 0x000a0b09, 0x00080907, 0x00080806, 0x000c0909, 0x000b0909,
- 0x00040804, 0x00080b07, 0x000f0e0b, 0x00110f0d, 0x000f0f0c, 0x0011120e, 0x00151410, 0x00161511, 0x0012160c, 0x000d1207, 0x000c0e06, 0x000b0b06, 0x000c0d06, 0x000c0c07, 0x00110f0b, 0x0012120c,
- 0x00080d07, 0x00070c06, 0x00080a07, 0x00080a07, 0x00080c07, 0x00090d0a, 0x000b0d0d, 0x000d0e0c, 0x00060c05, 0x00040b03, 0x00080a07, 0x000b0a0b, 0x000a0b0b, 0x000b0b0c, 0x000d0b0e, 0x000e0d0e,
- 0x000c1009, 0x000a0e05, 0x000d0e09, 0x000e0f0c, 0x000e1109, 0x0010120d, 0x00111212, 0x0010100f, 0x00070d04, 0x00070b04, 0x00070803, 0x00060703, 0x00060705, 0x00070806, 0x000a0a08, 0x000d0b0a,
- 0x00060d04, 0x00080d06, 0x000b0a09, 0x00090a09, 0x00090805, 0x00060704, 0x000a0709, 0x000c080b, 0x00050b01, 0x00040a00, 0x000a0b05, 0x000c0c09, 0x000a0d08, 0x0011120c, 0x001c1814, 0x001d1c18,
- 0x00161a10, 0x0014170f, 0x0014160f, 0x0015150d, 0x0013150e, 0x00151612, 0x001d1e1b, 0x00191c19, 0x0010140d, 0x00040601, 0x0020211e, 0x00939391, 0x00fefffc, 0x00fefefc, 0x00fffeff, 0x00fffeff,
- 0x00f1f8eb, 0x00a0a5a0, 0x000e1016, 0x000d1324, 0x000c183f, 0x00112150, 0x00162558, 0x0016235b, 0x00152a55, 0x001b305c, 0x00223566, 0x00223367, 0x00202c70, 0x00242d75, 0x002d337d, 0x002e347a,
- 0x003e4776, 0x00687195, 0x008f91b7, 0x009092b7, 0x009698c0, 0x009995bb, 0x00827fae, 0x005f68a5, 0x00244892, 0x00173e91, 0x002243a1, 0x001d3895, 0x00203289, 0x00283a90, 0x002e3f9b, 0x002f429f,
- 0x009f6971, 0x00d6acb6, 0x00e3c5d2, 0x00d7c9d6, 0x00d3cde4, 0x00d3cce8, 0x00d6caee, 0x00d9c8f2, 0x00d3cbec, 0x00d6d0f0, 0x00dad3f5, 0x00dbd3f0, 0x00d1c7e3, 0x00ccc2de, 0x00d1c5e5, 0x00ddcfec,
- 0x00d8d2e9, 0x00d8d0ea, 0x00d3cae6, 0x00d0c5e1, 0x00d3c9e4, 0x00d9c9e7, 0x00dbc8e8, 0x00dcc9e9, 0x00d2cde0, 0x00d6d3e7, 0x00d9d3ea, 0x00dad2eb, 0x00e8e0f8, 0x00f3e7ff, 0x00f0e0fa, 0x00f2e1fb,
- 0x00f5e4e8, 0x00f0e9ef, 0x00e8e4f1, 0x00f2eaf9, 0x00fdeafb, 0x00fde7fc, 0x00f2daeb, 0x00b29da2, 0x006f5236, 0x00824e2e, 0x00945c3c, 0x00885941, 0x00885c44, 0x00996c4f, 0x009d7257, 0x00926852,
- 0x00715339, 0x003b2713, 0x00140400, 0x00160d07, 0x00161719, 0x00121510, 0x0011110b, 0x000a0e0d, 0x00242b30, 0x004f5162, 0x006f6a87, 0x007e7699, 0x009288b0, 0x00a198bf, 0x00afa5cb, 0x00b6add1,
- 0x00cdd2d8, 0x007e8096, 0x0088899f, 0x008e8da1, 0x00918fa0, 0x008e8a99, 0x00918c99, 0x00948c96, 0x00908893, 0x00898289, 0x008a737a, 0x00946565, 0x006c525c, 0x005d5871, 0x007d90b6, 0x0089afe4,
- 0x006facf8, 0x0061a4fa, 0x00599efb, 0x005498fc, 0x004d8df1, 0x00538cdf, 0x00578fd9, 0x005194dd, 0x004597e5, 0x004297f6, 0x004093fb, 0x003f8cfc, 0x004980e0, 0x006088c6, 0x006a85a2, 0x00647475,
- 0x00aa888d, 0x00e1c8ca, 0x00f6e5e6, 0x00efe5e8, 0x00e7e9f0, 0x00e6edf9, 0x00e8edfd, 0x00dbddf3, 0x00cfcfea, 0x00e0dafa, 0x00ece6fb, 0x00f3eefb, 0x00f2eefc, 0x00f0ecf9, 0x00ebeaf8, 0x00f1e9fb,
- 0x00f5f1fc, 0x00f6f1fe, 0x00f4f2fc, 0x00f3f0f7, 0x00f2f0f4, 0x00f2f0f9, 0x00f0effa, 0x00eeeef7, 0x00edecf6, 0x00ebeaf5, 0x00eae9f6, 0x00e9e8f7, 0x00e4e2f6, 0x00dedcf4, 0x00d6d3f0, 0x00d2ceed,
- 0x00cecce0, 0x00c6d6f0, 0x00d7c6d8, 0x00c9676a, 0x00af5334, 0x00cfa9af, 0x00dad0ea, 0x00d0c8e8, 0x00d4d0c4, 0x00c9b8b8, 0x00715958, 0x002d160b, 0x00200d00, 0x0026190c, 0x001e1709, 0x0018160e,
- 0x0013150c, 0x0013140e, 0x000f120c, 0x0010170f, 0x0013170f, 0x00191a0f, 0x001b1c0c, 0x001a200d, 0x00182613, 0x001a2917, 0x001d2d1e, 0x001c2e1f, 0x00192b1d, 0x0017271a, 0x00162519, 0x00172319,
- 0x00132216, 0x00162217, 0x00202921, 0x002f332e, 0x0041403f, 0x004c4a4b, 0x004c4a4e, 0x004a4a4e, 0x00484c4f, 0x0043494a, 0x0039403e, 0x0028322b, 0x0018211c, 0x00151d19, 0x00111717, 0x000a1011,
- 0x00000403, 0x00000401, 0x00050803, 0x0010130b, 0x001f2115, 0x00767670, 0x00fefdfd, 0x00fefeff, 0x00f8fafc, 0x00fbfeff, 0x00fafcfd, 0x00cececd, 0x00818079, 0x00605c51, 0x00272114, 0x00373021,
- 0x0050431f, 0x0062553a, 0x00635544, 0x00514435, 0x00392c18, 0x00281a04, 0x00291b00, 0x00413410, 0x00584425, 0x00584427, 0x0068533b, 0x006c6249, 0x008b7e64, 0x007f7658, 0x005c5235, 0x004e4428,
- 0x00362d16, 0x002b2111, 0x00231911, 0x00261f1a, 0x003d3639, 0x00533a3c, 0x00664541, 0x006c4840, 0x00805c49, 0x00826551, 0x005b4739, 0x00352b21, 0x0037342d, 0x00332a23, 0x00201209, 0x00261106,
- 0x00120d03, 0x00100b00, 0x002f2b21, 0x00555249, 0x00747268, 0x00535249, 0x001b1b13, 0x001a1b12, 0x00272923, 0x0022221c, 0x002a2727, 0x00312f35, 0x00373634, 0x00282723, 0x00474946, 0x005c6362,
- 0x00344544, 0x002c3735, 0x00495045, 0x005d5a43, 0x005a4622, 0x0072563e, 0x00513e2c, 0x0022251b, 0x00182b2e, 0x003f4b4b, 0x0066625c, 0x00856b59, 0x00876146, 0x006e5839, 0x00616041, 0x002e4023,
- 0x002e2f19, 0x00665f45, 0x00c2b396, 0x00e9d5b7, 0x00f0dbc2, 0x00f8e9d6, 0x00f0ebdc, 0x00ebeadf, 0x00e8e7ce, 0x00ece7c9, 0x00eae9cb, 0x00dde7cd, 0x00dee1e0, 0x00e3e2e5, 0x00e3e3dc, 0x00dfe6d1,
- 0x00cedcd3, 0x00bdc8d4, 0x00898a9e, 0x00625a69, 0x007f6f56, 0x00ab8c76, 0x00a7866a, 0x00997c5f, 0x007a5539, 0x00602415, 0x00550702, 0x005f0003, 0x005c0912, 0x0044181d, 0x001b1614, 0x000d3024,
- 0x00524a49, 0x0064595a, 0x00736160, 0x008a6b67, 0x0097675a, 0x007d4a36, 0x0053280e, 0x003f1e06, 0x00101809, 0x00020a04, 0x00030c0a, 0x00090909, 0x00050303, 0x00020101, 0x00000100, 0x00020401,
- 0x00080b0a, 0x00141312, 0x000f100e, 0x00080808, 0x00040303, 0x000a090a, 0x002b2d2c, 0x00444445, 0x00373836, 0x00131413, 0x00595958, 0x00dadadb, 0x00fefdff, 0x00fefefe, 0x00fdfdfe, 0x00fdfefd,
- 0x00d4d7da, 0x008c8c8c, 0x00898480, 0x00aca399, 0x00817466, 0x00514130, 0x00523f2e, 0x00473121, 0x0055442f, 0x0076604e, 0x007c583d, 0x008c462b, 0x0080462c, 0x00834a38, 0x007d4e40, 0x00734c45,
- 0x00634444, 0x00563c41, 0x004f3942, 0x00503f45, 0x0044363e, 0x002f343f, 0x0023303e, 0x00272e3b, 0x002a2a31, 0x00252223, 0x00231612, 0x00261209, 0x002c1100, 0x00462503, 0x00744d1d, 0x00a07b43,
- 0x00bd8a45, 0x00b78957, 0x008b694c, 0x00634d44, 0x0019252c, 0x0003181e, 0x00001a18, 0x0000140e, 0x00000402, 0x00080303, 0x00070000, 0x00040301, 0x001a0e04, 0x006f562b, 0x00cea765, 0x00e3aa4c,
- 0x00f8b175, 0x00d29692, 0x00795c88, 0x003c4899, 0x00125fae, 0x002455ad, 0x00234ca4, 0x001c4ca3, 0x001a56a3, 0x001c59a5, 0x001c58a0, 0x001b5698, 0x0022528a, 0x00406799, 0x005775a5, 0x00475b87,
- 0x00323e44, 0x00364046, 0x003f444b, 0x0044464d, 0x0048494c, 0x004d4d4d, 0x00514f4c, 0x00525249, 0x004d5040, 0x004a503c, 0x00444b38, 0x0046473e, 0x0041443a, 0x003d403b, 0x00353833, 0x0043433d,
- 0x008a7e70, 0x00baa088, 0x00c39b7c, 0x00ce9d75, 0x00d89e6a, 0x00d38f68, 0x00c87f5d, 0x00c47c5b, 0x00cd8b68, 0x00d49575, 0x00d29579, 0x00cf967d, 0x00c9967c, 0x00b38268, 0x007a4c34, 0x006a3e25,
- 0x006b3817, 0x00693b22, 0x005f3824, 0x0050362b, 0x007a6d70, 0x00cfcbd0, 0x00fffefe, 0x00fcfbfd, 0x00fefefc, 0x00fefdf9, 0x00fdf6f3, 0x00fdfbf9, 0x00e2e3e2, 0x005e635d, 0x00394537, 0x0049593f,
- 0x00475c2c, 0x00456225, 0x00486223, 0x004c6328, 0x004b6130, 0x00516731, 0x0051662d, 0x005b6d36, 0x007e6f42, 0x008e643f, 0x007e4f2e, 0x006c4522, 0x00526027, 0x00606831, 0x00646432, 0x0092764c,
- 0x00a68f75, 0x007f614a, 0x006b442f, 0x006d442f, 0x00503018, 0x00594c29, 0x00686b3c, 0x00637640, 0x00597932, 0x005d7e36, 0x00617b35, 0x006f773c, 0x00677b38, 0x00657f3a, 0x00628038, 0x00667e39,
- 0x007c773f, 0x007e6839, 0x0066441c, 0x006b3d20, 0x00633419, 0x00682b13, 0x00723e21, 0x00715e36, 0x00958e6a, 0x00b59e82, 0x00a4836b, 0x00a68a6b, 0x0075884c, 0x0062883d, 0x005f8d38, 0x00668d33,
- 0x0085873f, 0x009a955c, 0x007d6c43, 0x005e4025, 0x00653a2c, 0x00805143, 0x00906450, 0x00865e44, 0x00785e3c, 0x00735d39, 0x007f6644, 0x008c654f, 0x00666747, 0x00797d47, 0x00787234, 0x00573609,
- 0x00773e46, 0x008d6a62, 0x009d8c6f, 0x008f8253, 0x00664645, 0x00493b2c, 0x003b341f, 0x00473923, 0x006b4f3e, 0x00725a54, 0x00422e2a, 0x00180e14, 0x000a100e, 0x00041006, 0x000d1d04, 0x0051633d,
- 0x00638931, 0x005d842c, 0x00658832, 0x00628431, 0x00627f3c, 0x00677d4b, 0x006d7a53, 0x0066684b, 0x00696441, 0x00706540, 0x00747545, 0x005e823b, 0x005c8039, 0x005e813b, 0x005e7f3a, 0x005e7f3a,
- 0x005b7c36, 0x00597a34, 0x00577a34, 0x00567b32, 0x00577a31, 0x00567830, 0x00557731, 0x0056762f, 0x0052752f, 0x00557430, 0x00527331, 0x00517432, 0x00517232, 0x004f7030, 0x004d6e2e, 0x004d6e2f,
- 0x00496e2b, 0x004c6c2d, 0x004b6a2f, 0x0047682b, 0x0047662b, 0x0049672e, 0x0048642e, 0x004a622b, 0x0048622e, 0x004a632f, 0x00e5f6d5, 0x00fcfffe, 0x00fffef9, 0x00fffff8, 0x00fffef8, 0x00fbfefc,
- 0x00cfe9f3, 0x009cc1e2, 0x007ba8db, 0x006da0e0, 0x00588bd0, 0x007d90b5, 0x00d2d2df, 0x00eff1f2, 0x00f2ede2, 0x00f7f2e7, 0x00f6eeeb, 0x00ebe3ec, 0x00d9d7e6, 0x00cbd3e4, 0x00bdcfde, 0x00a5bfcb,
- 0x00acb2bb, 0x00abb3bc, 0x00b8c0cc, 0x009aa6b4, 0x006f8296, 0x00667c97, 0x005f7799, 0x005a749a, 0x0053739f, 0x005477a1, 0x00597092, 0x00808193, 0x00c3c6cb, 0x00d8dedd, 0x00cbd2ce, 0x00a5a8a2,
- 0x00909699, 0x00b0b5ba, 0x00d9dbdc, 0x00e8ebe2, 0x00d5d8c9, 0x00bfbdb9, 0x00cac1c4, 0x00e2d8d5, 0x00eee1da, 0x00e4d6d7, 0x00d9c9d5, 0x00dccde2, 0x00e2d8f5, 0x00e5e1f8, 0x00e1e1f1, 0x00e2e6f0,
- 0x00f3e2ee, 0x00f0e4eb, 0x00efe7eb, 0x00eeebea, 0x00edefe9, 0x00eff0ec, 0x00f0eef0, 0x00ecebee, 0x00f0e5f1, 0x00eee4f1, 0x00e7d6e3, 0x00d9c0c2, 0x00b19487, 0x00a58768, 0x00bb9b68, 0x00c7a664,
- 0x00d6b361, 0x00dab964, 0x00d5b65f, 0x00dcc269, 0x00dac06f, 0x00d3ad78, 0x00c89976, 0x00c0956c, 0x00c29e74, 0x00d7b68d, 0x00f3d5ad, 0x00fce1bb, 0x00fae3bf, 0x00f3e0bb, 0x00eddcb6, 0x00eadab4,
- 0x00e8daad, 0x00e0d8ab, 0x00d5d3a7, 0x00d1d0a1, 0x00cdc792, 0x00cbbb84, 0x00bda36f, 0x00a78854, 0x00887048, 0x00806a4c, 0x00736450, 0x00656051, 0x005d5951, 0x0055534f, 0x00595556, 0x00676164,
- 0x008d8693, 0x00aaa7b2, 0x00bbbac5, 0x00c6c6d0, 0x00b0b0bc, 0x007e8397, 0x00a2a9c1, 0x00ecf3fb, 0x00f9f9fc, 0x00fbfbfe, 0x00fdfafd, 0x00fffefe, 0x00b0b3b1, 0x0029302e, 0x00000604, 0x00030a06,
- 0x00080b07, 0x00090b06, 0x000a0a07, 0x00090a07, 0x00090907, 0x000a0b08, 0x00080906, 0x00080905, 0x00090904, 0x00070802, 0x00080804, 0x00090906, 0x00060704, 0x00050602, 0x00060603, 0x00080905,
- 0x00070806, 0x00080a07, 0x000c0b0a, 0x000c0b09, 0x000b0c08, 0x000e0f0a, 0x0013130d, 0x0014160f, 0x0016160e, 0x00111209, 0x000d0e06, 0x00090b04, 0x00090b04, 0x000a0c04, 0x000c0d07, 0x000d0e06,
- 0x000c0e0b, 0x00090c09, 0x00070a07, 0x00080b06, 0x000b0e0a, 0x000c100d, 0x000c0f0c, 0x000a0e0a, 0x00070b07, 0x00050805, 0x00080909, 0x000b0b0e, 0x000c0c0d, 0x000a0b0b, 0x000a0c0b, 0x000b0f0a,
- 0x000f100b, 0x000f100b, 0x0010110d, 0x000f100c, 0x000f100a, 0x0011130e, 0x00131310, 0x0011100e, 0x000b0c08, 0x000a0b07, 0x000a0a07, 0x000a0a07, 0x000c0c0a, 0x000d0e0b, 0x000d100c, 0x000d100c,
- 0x000e100c, 0x000e0f0c, 0x000d0d0b, 0x000c0c0a, 0x000b0a08, 0x00090a06, 0x000b0c07, 0x000b0e09, 0x000a0c0a, 0x000a0c09, 0x000c0d0a, 0x000c0e08, 0x000b0d06, 0x000e0f07, 0x0015150c, 0x0017180d,
- 0x00191c14, 0x001a1b14, 0x001a1a13, 0x00191a12, 0x00191912, 0x00181814, 0x001c1e1b, 0x00191b18, 0x00141411, 0x00060603, 0x0020211e, 0x00929391, 0x00fffffd, 0x00fefefc, 0x00fefefd, 0x00fdfefd,
- 0x00f8f9ec, 0x00b0b3b1, 0x002a2e3b, 0x0039405f, 0x00495489, 0x005465a3, 0x005165a4, 0x004a61a3, 0x00475f99, 0x00486199, 0x004b629a, 0x00455997, 0x003d4d9a, 0x003a479a, 0x003d499c, 0x003f4b9b,
- 0x005a62a0, 0x008a90c3, 0x00afb3de, 0x00abb1d6, 0x00a3a6cc, 0x00a2a1c5, 0x008284ae, 0x006e7ab0, 0x003b58a6, 0x00193b8e, 0x001e3f99, 0x001d368f, 0x001c2c80, 0x00253386, 0x0027378a, 0x00293c8e,
- 0x009c5f68, 0x00d9a9b5, 0x00e5c5d2, 0x00daccd9, 0x00d2cde2, 0x00cfc9e4, 0x00d3c9eb, 0x00d8caf5, 0x00d8cef9, 0x00dad1f9, 0x00d8d0f2, 0x00d1cae4, 0x00c8c0da, 0x00cdc5e0, 0x00d7ceea, 0x00ded5ef,
- 0x00dfd5f0, 0x00d7cde9, 0x00cec5e1, 0x00cec4e0, 0x00d2cae6, 0x00d7c8e9, 0x00dac8ea, 0x00dfcdee, 0x00dfd1ec, 0x00e2d6f0, 0x00e2d7f0, 0x00dfd6ed, 0x00e6def5, 0x00eee3fc, 0x00ede0fa, 0x00efe2fc,
- 0x00f1e8f3, 0x00e9e3ee, 0x00e4dae4, 0x00e9d8df, 0x00fce7ed, 0x00ffeef1, 0x00f6e2e1, 0x00bfa7a4, 0x007a625b, 0x00795e58, 0x007c5d52, 0x0089624b, 0x009b7059, 0x00a1785d, 0x00906a4f, 0x007b583d,
- 0x004f311d, 0x00261204, 0x00150a01, 0x00120f0d, 0x00101417, 0x000f190f, 0x000a1007, 0x00070b09, 0x00101019, 0x002d2c3f, 0x00585470, 0x00736b8e, 0x00897fa5, 0x009b91b7, 0x00afa6ca, 0x00b8b1d3,
- 0x00cfced3, 0x007d7a8a, 0x00828090, 0x00858391, 0x00878291, 0x00857f8d, 0x008a828f, 0x008f838d, 0x00957c8f, 0x008f7683, 0x00896d75, 0x007d645b, 0x005c5565, 0x005b688d, 0x00839eda, 0x007eacf6,
- 0x00689ef1, 0x005f9aef, 0x005794ed, 0x005193ed, 0x004d94f5, 0x004a8ef3, 0x004d8af2, 0x004e8dea, 0x004c90e4, 0x00458fe5, 0x003f8de7, 0x003588e5, 0x003d81dc, 0x00447bd1, 0x00537cd2, 0x006680d7,
- 0x00c3a79e, 0x00f4dfd7, 0x00f9e9e3, 0x00ecdee0, 0x00e7e3eb, 0x00ebedf7, 0x00dfe4f3, 0x00e0e7f9, 0x00d8d9ef, 0x00d9dcf2, 0x00efeaf9, 0x00f4e9f1, 0x00faeef3, 0x00f3e9e8, 0x00f0ede9, 0x00e9eced,
- 0x00e9fbf9, 0x00ebf7fe, 0x00f2f4fc, 0x00faeef8, 0x00ffe6f0, 0x00f4ecf4, 0x00f0f1f7, 0x00efeffb, 0x00f1f1fd, 0x00f0f0fa, 0x00ededf9, 0x00e6e6f3, 0x00e3e2f4, 0x00dddcef, 0x00d5d3e9, 0x00d0cee4,
- 0x00c7ceea, 0x00cecfe0, 0x00e3cdd9, 0x00bc8288, 0x00a54d56, 0x00d29ba7, 0x00e0c5d2, 0x00c9d1dc, 0x00c3cbd8, 0x00cdbfd1, 0x00906e7c, 0x00421b11, 0x00320c03, 0x00371906, 0x00240d02, 0x00201609,
- 0x000d170d, 0x00091410, 0x000e1412, 0x0014130b, 0x00231508, 0x00151a06, 0x000e1e0c, 0x00162112, 0x00162115, 0x00182318, 0x0018251a, 0x0018251b, 0x0018241c, 0x0018231c, 0x0015211c, 0x00151e1b,
- 0x00111b11, 0x00171d14, 0x0021241c, 0x002e2d28, 0x00413a39, 0x004b4546, 0x00494647, 0x00484547, 0x004b4c4e, 0x00444648, 0x00373a3a, 0x00292c27, 0x001a1c19, 0x00171916, 0x00101211, 0x00060908,
- 0x00010201, 0x00010300, 0x00040703, 0x000a0d09, 0x00141711, 0x006e6e6d, 0x00fdfbfd, 0x00fdfefd, 0x00fbfbfb, 0x00f9fbfa, 0x00fcfdfe, 0x00cdcfd0, 0x007c7c7b, 0x005e5c5b, 0x001d1a19, 0x001b1816,
- 0x00241c1a, 0x00261f1d, 0x0038312f, 0x00312c21, 0x0026210c, 0x00201803, 0x001d1500, 0x0030290f, 0x0051452e, 0x004c4128, 0x00403c27, 0x00404935, 0x00665f52, 0x004c3c31, 0x00251108, 0x004b352a,
- 0x00564e3a, 0x003f3b27, 0x001d1a0b, 0x00262415, 0x004b4439, 0x00715b46, 0x006c4f34, 0x006e4f33, 0x008c6a4a, 0x0093704f, 0x007c5938, 0x00644626, 0x005a432a, 0x0045311e, 0x001f0f05, 0x00130400,
- 0x00050405, 0x00090908, 0x00141313, 0x00272727, 0x00585757, 0x004d4d4d, 0x001a1a1a, 0x00191917, 0x00282828, 0x0020211e, 0x0029292b, 0x002d2d30, 0x00303132, 0x00242724, 0x003d4141, 0x004d5352,
- 0x002e3836, 0x00222d28, 0x00333634, 0x00333230, 0x002b2722, 0x003a403b, 0x00323b33, 0x001b2621, 0x00152320, 0x002e3635, 0x00494d4a, 0x005f5d56, 0x00706359, 0x00695d4f, 0x00776659, 0x0058473a,
- 0x00433b18, 0x00807958, 0x00cec5a9, 0x00ddd4be, 0x00e7e0ce, 0x00edeada, 0x00ededdf, 0x00ecefe2, 0x00e7e9da, 0x00e4e6da, 0x00e9e9e2, 0x00e6e7e2, 0x00e9e9e9, 0x00e5ece7, 0x00e3ebe8, 0x00dee6e8,
- 0x00cfd8dc, 0x00c5c9cf, 0x009a9298, 0x007a6b66, 0x008a745b, 0x00978464, 0x008d7a5b, 0x00806649, 0x0070412f, 0x005c2116, 0x00500805, 0x004f0200, 0x00531215, 0x003f1917, 0x001a0c08, 0x00121c10,
- 0x003d2e1e, 0x00554338, 0x006b5349, 0x006d564a, 0x006d5243, 0x00564131, 0x00504032, 0x00352c24, 0x00090909, 0x00000405, 0x00000906, 0x00020d02, 0x00020b01, 0x00080705, 0x00070509, 0x0008020b,
- 0x0004040f, 0x0010121a, 0x00101216, 0x00040a01, 0x000b0a01, 0x000d120b, 0x001e231c, 0x00262b19, 0x0027290e, 0x00161703, 0x005f6052, 0x00dad8d6, 0x00fefbfe, 0x00fefbfd, 0x00fdfbfc, 0x00fffff9,
- 0x00c9d9d7, 0x00848d8c, 0x00878887, 0x00aca5a2, 0x0082726d, 0x004d3b32, 0x0047382b, 0x00433426, 0x00554c3f, 0x00524b3e, 0x00251d14, 0x001b170c, 0x00221814, 0x00241c16, 0x002b191a, 0x002c191b,
- 0x002d1b1d, 0x00291a1a, 0x002b1c19, 0x00251a13, 0x00221a13, 0x0013130d, 0x0011130e, 0x000b0c06, 0x0014120d, 0x000e0a05, 0x00100702, 0x001c0e01, 0x00503413, 0x00835c31, 0x00be8e5e, 0x00dea973,
- 0x00e9aa6d, 0x00daa36b, 0x00d5a06d, 0x00ac8159, 0x004f3a28, 0x00181509, 0x00141b13, 0x0008110b, 0x00070202, 0x00110400, 0x00150401, 0x000e0005, 0x00311e12, 0x00876d42, 0x00cba96e, 0x00dcac64,
- 0x00f3b270, 0x00dda37e, 0x008e6259, 0x00342332, 0x0022395d, 0x00294b7a, 0x00244c8c, 0x00214a90, 0x001c4d9d, 0x001f51a5, 0x002458a9, 0x001e55a0, 0x00204e8e, 0x00335c8e, 0x0053779e, 0x004b6a89,
- 0x0030374e, 0x00353d4e, 0x003d4450, 0x0040494e, 0x00434f4b, 0x0047534b, 0x0048524d, 0x0048514e, 0x004d4d55, 0x004b4a54, 0x00484751, 0x00454348, 0x003f4240, 0x00383e36, 0x003b3e35, 0x005f5850,
- 0x00ac9282, 0x00caa183, 0x00d4a07e, 0x00d8a176, 0x00d99e72, 0x00d49564, 0x00c98656, 0x00b87547, 0x00b37045, 0x00be7950, 0x00cc8659, 0x00c48156, 0x00b88162, 0x008c6654, 0x005b453e, 0x0052484d,
- 0x003e394c, 0x003b3648, 0x00433d4e, 0x003f3842, 0x00736e72, 0x00d6d3d1, 0x00fbfaf7, 0x00fdfefc, 0x00fdfefc, 0x00fcfdfb, 0x00fbfdfa, 0x00f7fdfa, 0x00dfd9da, 0x00776662, 0x00604738, 0x00735033,
- 0x0072551c, 0x00745919, 0x00745c1e, 0x006b581d, 0x00665a2f, 0x005a5f2b, 0x005e6039, 0x00755f4e, 0x00986738, 0x00875e27, 0x007a5b33, 0x004f413a, 0x00545e4c, 0x00616438, 0x008b8155, 0x00ad907d,
- 0x008a7d62, 0x00675767, 0x004b3c63, 0x003c3262, 0x002e331b, 0x00455416, 0x00617227, 0x00677a36, 0x005a7742, 0x00557b3e, 0x0066783d, 0x0087783b, 0x0091825d, 0x007b7348, 0x00777144, 0x006b652e,
- 0x00754f32, 0x0086464d, 0x006a1f34, 0x005a1428, 0x005d3423, 0x00573116, 0x00715230, 0x007a5e44, 0x008d6e65, 0x008d6f65, 0x008a6e5e, 0x00a48c73, 0x009f8f68, 0x008f815b, 0x00827450, 0x007b6c4a,
- 0x008d7e52, 0x00a08a63, 0x00745736, 0x00583c20, 0x00482d20, 0x007f6a60, 0x0078655b, 0x005d493e, 0x00654428, 0x00916a44, 0x00825b3c, 0x006f5446, 0x006f504b, 0x0076594d, 0x007b564d, 0x00592f22,
- 0x008f665c, 0x00af8d7a, 0x00ae8f75, 0x00a78c6a, 0x006f5331, 0x005c4a31, 0x0043341c, 0x00412e16, 0x00533924, 0x00372517, 0x00150c0d, 0x000b0c14, 0x00060c1c, 0x00070c09, 0x000a0d01, 0x00504f2f,
- 0x0063852f, 0x005e822c, 0x00628534, 0x00638735, 0x0063833a, 0x00617f3a, 0x006a8141, 0x006d783d, 0x00797547, 0x0083774a, 0x00787940, 0x00608134, 0x00607e37, 0x00617c3c, 0x00617a3d, 0x0062793f,
- 0x005e793e, 0x005d783a, 0x005c783a, 0x005f773a, 0x00607838, 0x00557c3a, 0x004f7d36, 0x00557a2b, 0x005f751b, 0x005e741c, 0x00587021, 0x0053712a, 0x004e6d37, 0x004e6e32, 0x00516e30, 0x0056702c,
- 0x004c6c2b, 0x004d6a29, 0x004a6b23, 0x00496e21, 0x00486928, 0x0045662d, 0x00446334, 0x004d6541, 0x00455a2f, 0x00526035, 0x00faffe5, 0x00fcfffe, 0x00fdfefc, 0x00fffefd, 0x00fffdfc, 0x00fffeff,
- 0x00f9fdfa, 0x00f1f7f8, 0x00edf0f6, 0x00e9eaf1, 0x00dde4ee, 0x00e5e5e5, 0x00f3f2ed, 0x00fbf7f4, 0x00fffaf6, 0x00fffbf5, 0x00fefdf6, 0x00fbfaf8, 0x00fcfcfb, 0x00fafafd, 0x00f7fafc, 0x00f7fbfd,
- 0x00f6f5f7, 0x00f5f5f8, 0x00f4f2f8, 0x00e9e8ef, 0x00dddee5, 0x00d8dae0, 0x00d8d9de, 0x00d5d7dc, 0x00d1d6de, 0x00ced3dc, 0x00cfd3da, 0x00d2d6d6, 0x00e8e7ea, 0x00eeeff2, 0x00ecedef, 0x00e7e4e5,
- 0x00efeef1, 0x00f4f5f6, 0x00fafbfb, 0x00fcfbfc, 0x00fcfdfb, 0x00f4f6f1, 0x00f4f6ed, 0x00f5f7ed, 0x00faf8ec, 0x00f7f7eb, 0x00f5f6e8, 0x00f7f9eb, 0x00f6f8f3, 0x00f6faf7, 0x00f3f8f7, 0x00f2f9fa,
- 0x00faf9fa, 0x00f8f8f8, 0x00f9fafa, 0x00fafbfa, 0x00fafcf9, 0x00f8f9f7, 0x00faf8fa, 0x00faf8fa, 0x00faf5f9, 0x00f7f6f8, 0x00f7f5f8, 0x00f2efee, 0x00efebe9, 0x00ebe6e1, 0x00ede8e1, 0x00ede9df,
- 0x00f4ede5, 0x00f4efe3, 0x00f2eee1, 0x00f3efe3, 0x00f4f0e6, 0x00f1eae4, 0x00efe7e2, 0x00ede8e1, 0x00f0ebe6, 0x00f3eee9, 0x00f8f4f0, 0x00f9f7f2, 0x00faf7f2, 0x00f9f7f1, 0x00f7f6ef, 0x00f7f7ef,
- 0x00f3f1eb, 0x00f4f3eb, 0x00f2f1eb, 0x00f2f2eb, 0x00efefe7, 0x00edece4, 0x00ebe8e1, 0x00e9e4dc, 0x00e4dfdb, 0x00e0ddd8, 0x00dcdcd9, 0x00d4dad8, 0x00d7dadc, 0x00d7d9dc, 0x00dad9de, 0x00dddcde,
- 0x00e8e7e5, 0x00ebece9, 0x00f1f1ef, 0x00f1f1f2, 0x00edebed, 0x00dde2e6, 0x00e3eaf1, 0x00f3f9fb, 0x00fefcff, 0x00fbfbfb, 0x00fcfbf9, 0x00fdfffa, 0x00b3b4b2, 0x00313232, 0x00070509, 0x0007060a,
- 0x000a0804, 0x000b0806, 0x000c080d, 0x0009070e, 0x000a0c10, 0x00080c0c, 0x00020604, 0x000b0d07, 0x00090802, 0x000b0b02, 0x000d0c07, 0x000e0e0c, 0x00090907, 0x00080805, 0x00090a07, 0x000a0b07,
- 0x000a0b08, 0x00090b08, 0x000b0b08, 0x000a0a07, 0x00090a07, 0x000c0e09, 0x0013120d, 0x00151510, 0x00151610, 0x0010100a, 0x000a0a05, 0x00050601, 0x00070702, 0x00080904, 0x000a0c06, 0x000b0c06,
- 0x00070904, 0x00050804, 0x00040804, 0x00070a06, 0x000b0d0b, 0x000c0f0d, 0x000a0e0a, 0x00070c07, 0x00080807, 0x00040905, 0x00030b07, 0x00030d08, 0x00030d07, 0x00050c07, 0x00070c08, 0x00080b07,
- 0x000c0f09, 0x000d0e0a, 0x00110f0c, 0x00130f0d, 0x00140e0d, 0x00110e0c, 0x000f0e0c, 0x000d0f0e, 0x000f0d10, 0x000b0e0f, 0x00070d0d, 0x00040d0a, 0x00060d0b, 0x000a100d, 0x00101512, 0x00141915,
- 0x0017140b, 0x0014120a, 0x00110e05, 0x000f0d04, 0x00100b06, 0x000e0b07, 0x000e0c0a, 0x000c0d0e, 0x000e0d18, 0x000d0d17, 0x000d0f14, 0x000c0f0e, 0x000b0e0c, 0x000c0e0e, 0x00101110, 0x0011130e,
- 0x00181811, 0x001a1813, 0x001b1914, 0x001b1914, 0x001c1915, 0x00191813, 0x001b1c17, 0x00181913, 0x0011130e, 0x00080a05, 0x00282925, 0x00959693, 0x00fdfefd, 0x00fdfdfd, 0x00fdfcfd, 0x00fefdfe,
- 0x00fbf8f7, 0x00bbbbba, 0x005f5f61, 0x0087888b, 0x00b9bac4, 0x00d2d5de, 0x00d6d9e3, 0x00d3d9e2, 0x00d0d4db, 0x00cfd2da, 0x00ced0db, 0x00c5c7d5, 0x00bdbdd3, 0x00b6b6cd, 0x00aeaec7, 0x00a8a7c1,
- 0x00b4b4c4, 0x00cccbda, 0x00e1deef, 0x00dbd9e7, 0x00d0cfe1, 0x00c2c6d9, 0x00abb3ca, 0x00a5aeca, 0x008991b4, 0x00636e95, 0x0057608d, 0x004f5787, 0x004e5186, 0x004a5089, 0x00474c88, 0x00454a88,
- 0x00936f73, 0x00caabb1, 0x00efd3dd, 0x00e0cdd6, 0x00d6ccda, 0x00cec8d7, 0x00d0cee1, 0x00d7d6ed, 0x00ddd7f6, 0x00d8d2f1, 0x00d2cbe9, 0x00c8c2da, 0x00cdc6e0, 0x00d4cce5, 0x00dcd4ee, 0x00ddd6ef,
- 0x00d5cfe7, 0x00d1cbe2, 0x00cdc6de, 0x00d0c7de, 0x00d2cae3, 0x00d3c9e5, 0x00d6cce9, 0x00ddd4f0, 0x00e1d7f5, 0x00dfd7f3, 0x00e0d8f2, 0x00e1d9f2, 0x00e7dff9, 0x00ece4ff, 0x00ece1fd, 0x00e9dffa,
- 0x00eee1f6, 0x00e0d7ed, 0x00d7cee7, 0x00d8d0e8, 0x00eee5fa, 0x00f3ebf9, 0x00f5e6ed, 0x00c5aeb0, 0x008c6a60, 0x009d7663, 0x009b7258, 0x009d734f, 0x009e7354, 0x00967155, 0x00785840, 0x00543925,
- 0x001f0f03, 0x001a1109, 0x001a1611, 0x00181516, 0x0010131a, 0x00071313, 0x00041115, 0x00020d10, 0x000d090c, 0x001d191a, 0x00403a3c, 0x00625c64, 0x00858096, 0x008e8caf, 0x00a3a4d0, 0x00b0b4e4,
- 0x00cdc8d0, 0x00797285, 0x00797484, 0x007c7886, 0x007a7583, 0x007c7482, 0x007e7381, 0x0081727f, 0x00866b7e, 0x00846678, 0x0080626d, 0x00755a53, 0x005a5a6f, 0x0061729f, 0x007899da, 0x0071a4f4,
- 0x006198ee, 0x005b92f1, 0x00518de8, 0x004b8fe8, 0x004890eb, 0x004b90eb, 0x004b8de5, 0x004686e2, 0x004583dd, 0x004180de, 0x003a80e4, 0x00327ae4, 0x003578e0, 0x003c75d5, 0x004a7bcf, 0x005177c4,
- 0x00ab928b, 0x00dfcac5, 0x00f8e8e5, 0x00f0e3e9, 0x00e3deec, 0x00e7e8f7, 0x00e1e5f8, 0x00e0e6f9, 0x00cfd2ec, 0x00d4d5f2, 0x00cfcef0, 0x00b6b9e9, 0x00cfcee6, 0x00f1eef5, 0x00ecebee, 0x00f1f3f0,
- 0x00f2faf8, 0x00f4fbfa, 0x00f9f9f9, 0x00fcf3f8, 0x00feecef, 0x00f4edf6, 0x00eeeff9, 0x00ecedf7, 0x00ebebf8, 0x00eaeaf6, 0x00e8e9f4, 0x00eaeaf8, 0x00e5e5f4, 0x00e3e3f5, 0x00dcdcee, 0x00d9d9ec,
- 0x00ced3f1, 0x00d5d1e4, 0x00e5d2db, 0x00c4979c, 0x00a85564, 0x00ce95a3, 0x00dbbeca, 0x00bccad2, 0x00beccda, 0x00d6c7e1, 0x00ad8894, 0x006c443e, 0x00401c0a, 0x00321206, 0x002a1401, 0x001d1303,
- 0x0008140a, 0x00081410, 0x000f1610, 0x0015150d, 0x00211404, 0x0015170b, 0x000f1c0e, 0x00142012, 0x00172417, 0x0019251a, 0x00182319, 0x00152018, 0x00161f19, 0x00141e19, 0x000f1b18, 0x000e1918,
- 0x000f160f, 0x00161b14, 0x001d1f1a, 0x00282623, 0x00383333, 0x00423c3e, 0x00433f41, 0x00434142, 0x00414746, 0x003c4241, 0x00303634, 0x00242722, 0x00141614, 0x00121412, 0x000c100d, 0x00040906,
- 0x00020201, 0x00020301, 0x00030602, 0x00060905, 0x000e110c, 0x006a6a6a, 0x00fdfcfe, 0x00fcfdfe, 0x00faf9f9, 0x00fcfcfc, 0x00fcfdfd, 0x00cececf, 0x007d7c7d, 0x005f5e5f, 0x00131113, 0x000a080a,
- 0x0008040b, 0x000a070a, 0x000c0908, 0x00110d04, 0x00211d08, 0x002c270f, 0x0039341e, 0x004d4830, 0x00564c3a, 0x004a412d, 0x00383827, 0x00273626, 0x003c392f, 0x003e2f28, 0x0047332d, 0x00634f44,
- 0x005e5544, 0x00413a29, 0x0021210c, 0x00282413, 0x0053493a, 0x007a654e, 0x00684d2c, 0x00705332, 0x009a7b56, 0x009d7a57, 0x0084613f, 0x00735334, 0x00573e28, 0x003c2917, 0x001c0f02, 0x00120802,
- 0x00020202, 0x00060606, 0x00060606, 0x000b0b0b, 0x001c1c1c, 0x00212122, 0x00181819, 0x001f2020, 0x00252627, 0x001f201f, 0x00201f21, 0x00262425, 0x00262526, 0x00252826, 0x00383e3d, 0x00414945,
- 0x00232c2a, 0x001c2121, 0x001b201f, 0x001c1c1c, 0x00191719, 0x00161b1a, 0x000e1914, 0x00101c19, 0x0024302d, 0x002e3636, 0x00313a36, 0x00454642, 0x0069615a, 0x00796f62, 0x007d6e62, 0x00776657,
- 0x00706647, 0x009f987a, 0x00dfd7bd, 0x00e6deca, 0x00e9e3d5, 0x00f0ece1, 0x00f1efe6, 0x00eaede1, 0x00e4e9e2, 0x00e5e8e0, 0x00e9ebe7, 0x00eee9ee, 0x00ecefeb, 0x00eaeeeb, 0x00e2ebea, 0x00dfe7eb,
- 0x00d8dde6, 0x00c6c4cd, 0x00a0999c, 0x007d6e67, 0x0074624a, 0x00827151, 0x00685937, 0x00594627, 0x0067432e, 0x00683529, 0x005a1a15, 0x00520d0f, 0x00440b0d, 0x00371514, 0x00180b02, 0x000c1004,
- 0x002a1a0e, 0x00402c25, 0x0049342b, 0x004d382d, 0x00503c2d, 0x00625044, 0x0063594f, 0x003b352f, 0x00050503, 0x00010003, 0x00010604, 0x00000d05, 0x000d1709, 0x002f2825, 0x00352d2d, 0x001c1218,
- 0x0000030f, 0x000e101c, 0x000c1217, 0x00050a04, 0x000f1004, 0x00111010, 0x001a1b1b, 0x00262518, 0x00333517, 0x002a2c12, 0x00686859, 0x00dddada, 0x00fffaff, 0x00fefafe, 0x00fefbfb, 0x00fffff4,
- 0x00c9dbda, 0x00858f8f, 0x00848887, 0x00a9a4a2, 0x0080716d, 0x00483730, 0x0041342a, 0x003f3127, 0x004b4539, 0x003d382c, 0x00060901, 0x00010600, 0x00000200, 0x00060301, 0x000e0407, 0x00100206,
- 0x00100406, 0x00100504, 0x00100601, 0x000c0700, 0x00090401, 0x00060500, 0x00060600, 0x00010201, 0x00080202, 0x000a0100, 0x001c1001, 0x0039270e, 0x0082633b, 0x00b68c5e, 0x00d5a26f, 0x00dea86f,
- 0x00e8aa6e, 0x00e8ad74, 0x00e4ad78, 0x00cfa06f, 0x006b5135, 0x00251c0a, 0x00131305, 0x00070803, 0x00140c02, 0x00281604, 0x002c1608, 0x00200b09, 0x00321a0b, 0x007d6234, 0x00c9a668, 0x00ddad62,
- 0x00e8a766, 0x00dba379, 0x00896249, 0x00261413, 0x00050b1e, 0x000b2443, 0x00113563, 0x0022457b, 0x00285098, 0x00224d9c, 0x001e4d9d, 0x001f519e, 0x001f4b8d, 0x002f578c, 0x004f749e, 0x004c6d8f,
- 0x002e354e, 0x00363c52, 0x003b4254, 0x003e4650, 0x00414c4c, 0x0045514b, 0x00485150, 0x004a5053, 0x004c4e52, 0x004a4a54, 0x0049474e, 0x00494547, 0x00434449, 0x00353938, 0x0042443a, 0x007b7460,
- 0x00c3a58a, 0x00d6a98c, 0x00d7a381, 0x00d69e75, 0x00d69f6d, 0x00d59a67, 0x00cc9060, 0x00c58a5c, 0x00bc7e53, 0x00b36f46, 0x00a46334, 0x009f5d32, 0x007e4e31, 0x005b3e31, 0x004b4142, 0x00404554,
- 0x003a4060, 0x00393c57, 0x003a3c4f, 0x00393846, 0x00767374, 0x00dddbda, 0x00fafdf7, 0x00fdfffa, 0x00fefdfd, 0x00fdfdff, 0x00fafdf9, 0x00fdfbf8, 0x00dfdad7, 0x0087706a, 0x006b4c3c, 0x00633f20,
- 0x00845929, 0x00815c24, 0x007e612c, 0x00786534, 0x00736644, 0x006b6636, 0x00776843, 0x007d564a, 0x00935d2d, 0x00855621, 0x00684520, 0x004e3a3c, 0x004b4a3e, 0x006a6035, 0x00a89464, 0x00ad826a,
- 0x00817a75, 0x005d5372, 0x00312c5e, 0x001e1e51, 0x00323a23, 0x005b6528, 0x006c722d, 0x006d6f30, 0x00696f3a, 0x00697b3d, 0x006e7736, 0x008f7c4b, 0x007f7054, 0x00796e4e, 0x0070683c, 0x00403205,
- 0x00643619, 0x007d3238, 0x006d1d2b, 0x00631422, 0x0086552e, 0x00835e38, 0x00775a38, 0x00937059, 0x00946a5f, 0x006e443c, 0x008a6254, 0x00ae8873, 0x00a5886b, 0x00917b60, 0x0058452e, 0x003b2e1c,
- 0x0094795c, 0x0098785a, 0x00664626, 0x0049280f, 0x00563b2c, 0x00736059, 0x006c5e56, 0x004b4039, 0x0033200f, 0x006c5134, 0x00795a3d, 0x0078553f, 0x00846954, 0x006d554a, 0x00422c23, 0x00503a33,
- 0x009a837c, 0x00a28c80, 0x00a28d79, 0x00a78d74, 0x008b6f4d, 0x007b6653, 0x00483928, 0x0036200b, 0x003e2a12, 0x003a2a1c, 0x00292221, 0x000f0c1b, 0x00060b17, 0x00090d0b, 0x000a0c00, 0x00484927,
- 0x00678334, 0x00658536, 0x00658737, 0x00658838, 0x00638636, 0x00638138, 0x0068803b, 0x006f7b40, 0x008d8756, 0x0094885a, 0x0077783d, 0x00618332, 0x005f7f36, 0x005e7c39, 0x005e7b3a, 0x005f7a3f,
- 0x005e7743, 0x005d783f, 0x005d793c, 0x005f7938, 0x005e7a35, 0x00557c3d, 0x00527c3b, 0x0058792f, 0x005e741f, 0x005d7325, 0x0056712c, 0x00507139, 0x004e7042, 0x004c6f38, 0x004e6e2c, 0x00547225,
- 0x004f6732, 0x00516931, 0x004c6a28, 0x00496b27, 0x00496a2a, 0x00476731, 0x00456434, 0x004b623b, 0x00485c31, 0x004d5b31, 0x00f9fee3, 0x00feffff, 0x00fefffe, 0x00feffff, 0x00fefeff, 0x00fdffff,
- 0x00fefdfd, 0x00fefeff, 0x00fffefe, 0x00fffcfe, 0x00fbfffb, 0x00fdfcfc, 0x00fcfbfa, 0x00fefcfb, 0x00fffdf8, 0x00fffcf8, 0x00fefbf7, 0x00fefcf8, 0x00fffdf9, 0x00fffffd, 0x00fbfcfb, 0x00fafbfb,
- 0x00fcfbfd, 0x00fdfdfe, 0x00fdfcfd, 0x00fcfdfd, 0x00fdfefe, 0x00fdffff, 0x00fcfefd, 0x00fcfdfd, 0x00fdfdfb, 0x00fcfbfc, 0x00faf9fd, 0x00f6f6f6, 0x00f6f3f6, 0x00f3f2f5, 0x00efeff2, 0x00edeced,
- 0x00f1f1f5, 0x00f1f2f5, 0x00f3f3f5, 0x00f4f2f6, 0x00f5f4f6, 0x00f6f6f7, 0x00f9faf6, 0x00fafaf6, 0x00fcfbf6, 0x00fcfcf5, 0x00fbfcf2, 0x00fbfef3, 0x00fafcf7, 0x00fcfffb, 0x00fbfefb, 0x00fbfefc,
- 0x00fefefd, 0x00fffffe, 0x00fefdfe, 0x00fffefe, 0x00fefdfd, 0x00fcfcfb, 0x00fafcfa, 0x00fcfefc, 0x00fefdff, 0x00fcfcfe, 0x00fcfefd, 0x00fbfdfd, 0x00fcfefc, 0x00fcfcfc, 0x00fefdfc, 0x00fdfcfc,
- 0x00fdfcfb, 0x00fefefe, 0x00fefdff, 0x00fdfcfe, 0x00fefffd, 0x00fefdfc, 0x00fefdfe, 0x00fcfdfc, 0x00fdfdfe, 0x00fffeff, 0x00fefdfe, 0x00fefefe, 0x00fffdfe, 0x00fefdfd, 0x00fefefe, 0x00fefefe,
- 0x00fffeff, 0x00fffeff, 0x00fefefe, 0x00fefefe, 0x00fdfefe, 0x00feffff, 0x00fcfdfd, 0x00fdfefd, 0x00fcfdff, 0x00fcfcfb, 0x00fcfdfd, 0x00fbfefe, 0x00fafefe, 0x00fdfdff, 0x00fcfefe, 0x00fdfffc,
- 0x00fefcfb, 0x00fffffd, 0x00fefefc, 0x00fffcfd, 0x00fdfbfd, 0x00fafbfb, 0x00f6fcfd, 0x00fafdff, 0x00fdfdff, 0x00fcfdfd, 0x00fbfbfa, 0x00fbfdfa, 0x00c2c1bf, 0x00575655, 0x00322f2f, 0x00252221,
- 0x001a120c, 0x000f0605, 0x000a0307, 0x00070409, 0x0009080b, 0x000a0c0d, 0x00050907, 0x000d0f0a, 0x000a0b00, 0x000e0e03, 0x00090902, 0x000c0d0a, 0x000d0c0b, 0x000b0b09, 0x000d0e0c, 0x000e0e0c,
- 0x000c0e0a, 0x000d0e0b, 0x000e0e0b, 0x000c0d0a, 0x000c0e0a, 0x000f100c, 0x0013130e, 0x00171410, 0x00131510, 0x0010120d, 0x000b0b07, 0x00080904, 0x00090804, 0x000a0a06, 0x00090a05, 0x00090a05,
- 0x00050703, 0x00050804, 0x00050804, 0x00060a04, 0x00080b07, 0x000a0c0a, 0x00090c09, 0x00060a08, 0x00050904, 0x00050804, 0x00030905, 0x00020905, 0x00040805, 0x00050804, 0x00050a04, 0x00050903,
- 0x000c0c08, 0x000d0e0a, 0x000e0f0c, 0x000f100d, 0x000f0e0c, 0x000c0a08, 0x000a0907, 0x000b0b09, 0x00080a0a, 0x00060b0a, 0x00050c0a, 0x00040c09, 0x00070d0a, 0x000c100c, 0x00101510, 0x00131913,
- 0x00151416, 0x00131012, 0x000e0c0c, 0x000f0b08, 0x000e0d08, 0x000f0d08, 0x000e0f0a, 0x000e0f0b, 0x000d0f0d, 0x000c100e, 0x000c110e, 0x000d110e, 0x000f1110, 0x00101111, 0x00101211, 0x00111310,
- 0x0015140e, 0x00171510, 0x00181612, 0x00191712, 0x00191712, 0x00151410, 0x00171812, 0x0012150d, 0x0010120e, 0x000a0b06, 0x002b2b27, 0x00979894, 0x00ffffff, 0x00ffffff, 0x00fdfcfd, 0x00fefcfd,
- 0x00f9f9f8, 0x00bdbdbe, 0x006a696a, 0x009d9d9f, 0x00d9d8d9, 0x00f6f6f7, 0x00fcfdfb, 0x00fefefe, 0x00fdfefe, 0x00fdfefe, 0x00fffffc, 0x00fefdff, 0x00fcfcfe, 0x00f7f8fd, 0x00f4f6f9, 0x00f3f5fd,
- 0x00f0eff5, 0x00faf7fe, 0x00fbf8fd, 0x00faf8fe, 0x00f3f2f9, 0x00f1f3fd, 0x00e4ebf5, 0x00e4ecf7, 0x00dfe3f1, 0x00d0d5e8, 0x00cad1e7, 0x00c7cbe6, 0x00c2c7e8, 0x00c2c5ea, 0x00bec2e7, 0x00bdc1e6,
- 0x00e2c2c7, 0x00f3d8e0, 0x00fbe6ed, 0x00f2e5ec, 0x00e7e1e9, 0x00e5e1ec, 0x00e6e5f2, 0x00e7e7f8, 0x00e5e2fa, 0x00dfdaf4, 0x00dad4ec, 0x00d6d1e6, 0x00ded8ec, 0x00e4dcf2, 0x00e5def2, 0x00e0daed,
- 0x00dbd4e9, 0x00d8d1e6, 0x00d3cfe2, 0x00d3cfe1, 0x00d4d1e5, 0x00d7d0e8, 0x00d9d1ea, 0x00ddd4ed, 0x00ddd8f0, 0x00ddd7ef, 0x00ddd7ee, 0x00e1d9f1, 0x00e6def7, 0x00e8e0f9, 0x00e6dff7, 0x00e1dbf1,
- 0x00e1d3e8, 0x00dbcfe4, 0x00cfc8e0, 0x00d2cce4, 0x00e4e1f4, 0x00f1eaf9, 0x00f5e8f2, 0x00beabae, 0x0076594d, 0x00896858, 0x0097725b, 0x0097714f, 0x00886144, 0x0078543e, 0x004f321b, 0x002b1605,
- 0x00110300, 0x001a110c, 0x001b1813, 0x00111010, 0x000b0e0f, 0x00081014, 0x000a1312, 0x000a0e11, 0x00160e0a, 0x002e2320, 0x004c3e3b, 0x00655859, 0x00837b87, 0x00908da6, 0x00a2a4c8, 0x00abadd9,
- 0x00cec6d1, 0x006b6573, 0x006a6574, 0x006b6776, 0x006a6771, 0x006e6672, 0x0070636f, 0x0071616d, 0x00755a6a, 0x00745967, 0x00755662, 0x006c514e, 0x00595671, 0x005972a2, 0x00628dd1, 0x005e9def,
- 0x005092f1, 0x004d8deb, 0x004a8be7, 0x00468ae2, 0x00468ce4, 0x00448cd7, 0x004589d5, 0x00437edc, 0x003f70dc, 0x00376ed5, 0x00356dd8, 0x00306fda, 0x00356fe8, 0x00386dd6, 0x004373c7, 0x003f6ca3,
- 0x00826a6a, 0x00bda9ac, 0x00f5e6ea, 0x00eee3ee, 0x00e6e3f4, 0x00e5e6fb, 0x00d9daf6, 0x00ceceee, 0x00c1c0e2, 0x00a5a5c7, 0x00596094, 0x003f55ac, 0x00a5ace0, 0x00dadaf7, 0x00ded7e6, 0x00f0eaea,
- 0x00f6f6f4, 0x00f6f8f6, 0x00f6f8f8, 0x00f7f5f4, 0x00f5efed, 0x00ebe6ec, 0x00e0e1eb, 0x00dddfe7, 0x00dbdbe6, 0x00d7d7e2, 0x00d4d4e2, 0x00cecfdb, 0x00d3d3e3, 0x00d6d7e6, 0x00dbdbed, 0x00dcdcf0,
- 0x00d8daf8, 0x00d9d6e8, 0x00ebd7e3, 0x00d8adb5, 0x00ad6170, 0x00bf889a, 0x00e1c6d4, 0x00c0cfd6, 0x00bfcbdb, 0x00d0c5da, 0x00ccacbd, 0x00aa857f, 0x006b473c, 0x003d200f, 0x00251002, 0x001c1305,
- 0x0009100a, 0x00091410, 0x00101716, 0x00141611, 0x001d1106, 0x0015170b, 0x00101b11, 0x00162114, 0x0019231a, 0x001a241b, 0x00172119, 0x00131d16, 0x00101b16, 0x000e1815, 0x000b1411, 0x00091210,
- 0x000b120d, 0x000e1511, 0x00141715, 0x001c1c1b, 0x00282727, 0x00323030, 0x00343235, 0x00353639, 0x00373a3e, 0x00303538, 0x00292e2e, 0x001f221d, 0x00121411, 0x000e110d, 0x000b0e0b, 0x00050705,
- 0x00020504, 0x00010301, 0x00030402, 0x00020603, 0x000a0e08, 0x00666866, 0x00fdfdfd, 0x00fbfbfa, 0x00fdfcfe, 0x00fbfafa, 0x00fdfcfc, 0x00cdcdcc, 0x007c7d7c, 0x005d5d5d, 0x000f0f0f, 0x00030202,
- 0x00060406, 0x000c0b07, 0x000a0702, 0x001f1c13, 0x003b3a28, 0x004d4c37, 0x007a7865, 0x00989580, 0x00726b5b, 0x0045402e, 0x00313325, 0x002b382b, 0x00353128, 0x00463a33, 0x00675650, 0x006d5a51,
- 0x004a4132, 0x00433f2e, 0x00474233, 0x0036301b, 0x003f2f1f, 0x00624f35, 0x00543b1e, 0x006a5031, 0x009f8061, 0x00a07f61, 0x008d6b4e, 0x0072563a, 0x004d3826, 0x002e1f10, 0x00120b00, 0x000f0a04,
- 0x00080707, 0x000a0809, 0x000d0b0d, 0x000b0b0c, 0x00050505, 0x00030403, 0x00111313, 0x001b1d1d, 0x00211f23, 0x001b1b1b, 0x00161517, 0x00201e1e, 0x00212121, 0x00242826, 0x00303736, 0x002e3530,
- 0x00212826, 0x0019211e, 0x00191b1d, 0x00141613, 0x00120e0f, 0x00090e0a, 0x00030a07, 0x000e1414, 0x00293031, 0x00343c3c, 0x00313635, 0x002c312d, 0x004d4944, 0x00716c60, 0x00817669, 0x007a6c5d,
- 0x00988c72, 0x00c9bfa5, 0x00e2dbc4, 0x00eae5d2, 0x00f4eee2, 0x00f5f1e9, 0x00f1f1ea, 0x00efefe9, 0x00eaebe6, 0x00e8ebe3, 0x00efeeec, 0x00f1eef2, 0x00eef1f0, 0x00ecf3ed, 0x00e4eae8, 0x00dfe7e9,
- 0x00d7d9e3, 0x00c9c8d0, 0x00bcb2b4, 0x008d837b, 0x007c6f55, 0x0087765a, 0x005c472c, 0x00402c12, 0x00684e3b, 0x008a6558, 0x008c6059, 0x006f3b38, 0x00491b1e, 0x002f1411, 0x001e100b, 0x0014130c,
- 0x0020110a, 0x002d1e15, 0x00301c15, 0x00332216, 0x004d3b2f, 0x005f5246, 0x005a4e48, 0x002f2a23, 0x00060403, 0x00020202, 0x00030508, 0x00030e0a, 0x00191b13, 0x00393026, 0x00493c37, 0x002b1f1f,
- 0x00090711, 0x000c0f1a, 0x000f121a, 0x00090d11, 0x00120e0a, 0x00100b14, 0x00140b15, 0x00211b1b, 0x004a4736, 0x00444031, 0x006f6a64, 0x00ded9dc, 0x00fffcff, 0x00fefcfe, 0x00fcfcf9, 0x00fffff2,
- 0x00cfdcdf, 0x00889192, 0x00848987, 0x00a4a39e, 0x00786d65, 0x00413329, 0x003d3126, 0x003d3126, 0x00504a3f, 0x004c473e, 0x001d1c13, 0x00071008, 0x00090a04, 0x000d0909, 0x000d0809, 0x00090206,
- 0x000f0307, 0x000e0403, 0x00100802, 0x000e0900, 0x000c0902, 0x00020300, 0x00020303, 0x00000000, 0x000d0902, 0x000f0700, 0x002a1b08, 0x004f381e, 0x00937149, 0x00b68a5c, 0x00d29d6a, 0x00dea86c,
- 0x00e2a36b, 0x00e7aa73, 0x00e4ac78, 0x00dfae7e, 0x00886e4c, 0x00362611, 0x00151002, 0x00120f06, 0x0040331e, 0x0060492c, 0x006b4b34, 0x00644433, 0x005e401c, 0x007e5e28, 0x00b38e4a, 0x00c7934c,
- 0x00da995d, 0x00dda377, 0x008d6448, 0x0026140e, 0x00020709, 0x0000081d, 0x00011336, 0x000c2754, 0x00203f7d, 0x001f498b, 0x001e4a8f, 0x00214f95, 0x00204b89, 0x002b5389, 0x004a6e9d, 0x00496c94,
- 0x00303852, 0x00353d53, 0x00394155, 0x003b4254, 0x003f4652, 0x00444a51, 0x00494c50, 0x004b4e50, 0x004c4c4d, 0x004d4b4d, 0x004e484a, 0x004c463e, 0x00413f4c, 0x00373940, 0x005b5a55, 0x00a19a80,
- 0x00cbab84, 0x00d0a181, 0x00c89274, 0x00ca8f6b, 0x00ce995d, 0x00d29969, 0x00cf986c, 0x00ce976d, 0x00d2956d, 0x00cc8e63, 0x00bf8055, 0x00a76d41, 0x00714630, 0x0044312b, 0x0045434e, 0x00374961,
- 0x003f425f, 0x00393b54, 0x0036374c, 0x0031323d, 0x00797779, 0x00e1e0dd, 0x00fcfdf9, 0x00fdfefa, 0x00fffffe, 0x00fcfefc, 0x00fdfcfa, 0x00fefcf1, 0x00dbd1cc, 0x00856d64, 0x006b4a3d, 0x005a371e,
- 0x0076512e, 0x00795d33, 0x007a623d, 0x00746545, 0x006d6655, 0x00736d49, 0x00897455, 0x00886258, 0x00864f2c, 0x006a3e17, 0x0058371e, 0x003f2d2e, 0x00474032, 0x008f7e55, 0x00a98b5d, 0x00a06d4d,
- 0x00706d7e, 0x0045446e, 0x00222457, 0x00141744, 0x00474934, 0x00767141, 0x00807337, 0x00846d38, 0x00857342, 0x007f762d, 0x00776d2a, 0x00847447, 0x00665c43, 0x00676141, 0x0059512e, 0x00362703,
- 0x009e6f4d, 0x009f5b56, 0x0067191f, 0x006a1e19, 0x009a5f2f, 0x00876032, 0x00876743, 0x00986f56, 0x00b67d72, 0x00ae7567, 0x00b87e6f, 0x00b5806a, 0x009e7a65, 0x00866e5e, 0x002b1e15, 0x002d2927,
- 0x009f836d, 0x008a6b4e, 0x005c371e, 0x003b1700, 0x00725442, 0x00614d42, 0x00251915, 0x00100a09, 0x00170d08, 0x003c3223, 0x0058422b, 0x007a562b, 0x007c6547, 0x0040311e, 0x0028251a, 0x0030342f,
- 0x0056575d, 0x006d6865, 0x008f7f7a, 0x007b6458, 0x0067432f, 0x00533d31, 0x00332417, 0x002e1b0b, 0x00392614, 0x003d2f1f, 0x003b3132, 0x001f1b23, 0x00040810, 0x00060c04, 0x000c1202, 0x00464c2a,
- 0x0070853f, 0x00688438, 0x00638138, 0x00648438, 0x00628137, 0x00688139, 0x006a7b3a, 0x0071783c, 0x00938a59, 0x009a8c60, 0x00797943, 0x005f8134, 0x005f8037, 0x005d7d38, 0x005c7b38, 0x005b7c3f,
- 0x005c793d, 0x005b793b, 0x005b793a, 0x005c7939, 0x005b7a35, 0x0058793c, 0x0057773c, 0x00597633, 0x005d732e, 0x00577337, 0x00516f42, 0x004b6e4c, 0x004e7358, 0x004d7140, 0x004c6e2f, 0x00527121,
- 0x0055653a, 0x00506532, 0x004e682f, 0x004c682b, 0x004b6930, 0x004a6a33, 0x00486636, 0x00445f33, 0x004d6237, 0x004e6435, 0x00f8ffe6, 0x00fefffc, 0x00ffffff, 0x00fefefd, 0x00fdfefe, 0x00fefffe,
- 0x00fffdff, 0x00fcfcfc, 0x00fefcfe, 0x00f9fcfa, 0x00fafcfd, 0x00fefcff, 0x00fdfdfc, 0x00fafefd, 0x00fdfcfb, 0x00fdfcfb, 0x00fffdfc, 0x00fefdfb, 0x00fefffc, 0x00fefefd, 0x00fefdfd, 0x00fdfbfc,
- 0x00fdfdfd, 0x00fcfdfc, 0x00fbfcfb, 0x00fafbfb, 0x00fcfcfc, 0x00fdfcfc, 0x00fefdfe, 0x00fefdfe, 0x00fefcfe, 0x00fcfafc, 0x00fcfbfc, 0x00fcfdfc, 0x00f8f9f9, 0x00f5f6f5, 0x00f5f6f6, 0x00f6f5f7,
- 0x00f5f4f3, 0x00f3f3f4, 0x00f1f0f1, 0x00f4f3f2, 0x00f1f2f2, 0x00f0f1f5, 0x00eeeef2, 0x00f0eff1, 0x00f0f0ed, 0x00f1f1ed, 0x00f4f4ef, 0x00f6f7f2, 0x00f8f8f9, 0x00f8f9fb, 0x00fafafd, 0x00fbfbfe,
- 0x00fffcfd, 0x00fefdfd, 0x00fefdfd, 0x00fcfcfb, 0x00fdfefd, 0x00fcfdfc, 0x00fcfefc, 0x00fbfefb, 0x00fcfcfd, 0x00fdfdfc, 0x00fcfbfc, 0x00fdfefd, 0x00ffffff, 0x00fefffd, 0x00fefefd, 0x00fdfcfd,
- 0x00fffdff, 0x00fcfdfc, 0x00fdfdfe, 0x00fdfdfd, 0x00fcfefb, 0x00fefffd, 0x00fefcfc, 0x00fefcfb, 0x00fdfdfe, 0x00fdfefe, 0x00fdfdfe, 0x00fdfdfd, 0x00fdfdfe, 0x00fefeff, 0x00fefeff, 0x00fefeff,
- 0x00fcfdfd, 0x00fcfdfd, 0x00fdfefe, 0x00fcfcfc, 0x00fcfdfc, 0x00fcfdfc, 0x00fdfefd, 0x00fdfefc, 0x00fdfbfd, 0x00fcfcfb, 0x00fcfbfc, 0x00fbfdfe, 0x00f9fbfc, 0x00fbfdff, 0x00fbfafd, 0x00fafdfc,
- 0x00fefbfd, 0x00fcfcfc, 0x00fdfdfe, 0x00fbfefc, 0x00fdfefd, 0x00f6fbfe, 0x00f8fdff, 0x00f9fdff, 0x00fbfcfd, 0x00fcfefd, 0x00fffefe, 0x00fcfaf8, 0x00c9c5c1, 0x0074706b, 0x0079736e, 0x008c8682,
- 0x0087756c, 0x00584a41, 0x0030241f, 0x0017110d, 0x000c0905, 0x000c0b09, 0x000c0c0c, 0x000b0d09, 0x00040401, 0x000f0f08, 0x000b0c05, 0x000a0c07, 0x000c0c09, 0x000e0f0c, 0x000f110f, 0x0010110e,
- 0x00141110, 0x00121210, 0x00111210, 0x0011130f, 0x0012130f, 0x0013130f, 0x0014150f, 0x00151710, 0x00171712, 0x0014150f, 0x0011120c, 0x000d0e08, 0x000c0f08, 0x000b0c07, 0x000b0b07, 0x000a0b06,
- 0x00080c09, 0x00080c08, 0x00090b09, 0x00090b09, 0x00090c09, 0x00090d08, 0x00090c07, 0x00080a05, 0x00060907, 0x00070906, 0x00060907, 0x00040a07, 0x00040906, 0x00050a06, 0x00060b06, 0x00070904,
- 0x000b0c0b, 0x000b0d0b, 0x000b0e0b, 0x000c0f0b, 0x000c0d09, 0x00080905, 0x00070804, 0x00090b05, 0x00070906, 0x00070906, 0x00070906, 0x00060704, 0x00060803, 0x000a0c05, 0x0011130a, 0x0016180e,
- 0x0015121b, 0x00100f15, 0x000c0a0e, 0x000a0a0c, 0x000c0b0a, 0x000a0c08, 0x000a0c05, 0x00080c02, 0x000a0f01, 0x00080f02, 0x00080e07, 0x000b0f0f, 0x000e1012, 0x00101210, 0x0010110f, 0x000e1010,
- 0x000f0d0c, 0x000f0e0b, 0x00120f0a, 0x0013100a, 0x00111009, 0x000f0f07, 0x0011120c, 0x000c0f09, 0x0011100f, 0x000b0a08, 0x002c2d2a, 0x00979896, 0x00fefefe, 0x00ffffff, 0x00fdfdfd, 0x00fdfffe,
- 0x00fcfafd, 0x00bdbdbd, 0x0068696b, 0x00969897, 0x00cecfce, 0x00f1f1ef, 0x00fafbfc, 0x00fafdfb, 0x00fcfdfe, 0x00fdfdfc, 0x00fdfcfc, 0x00fdfbfe, 0x00fefbff, 0x00fdfbfe, 0x00fefdff, 0x00fdfdfd,
- 0x00fcfdff, 0x00fafafc, 0x00fbfaff, 0x00fafbfe, 0x00ffffff, 0x00fcfefb, 0x00f7fcfa, 0x00f8fdfc, 0x00fdfdff, 0x00f8fcff, 0x00f8fdff, 0x00f6fcfc, 0x00fafbff, 0x00f7fafd, 0x00f8fafd, 0x00f7f9fd,
- 0x00fef5fa, 0x00fdf6f8, 0x00fff6fa, 0x00fcf6f8, 0x00fbf8fd, 0x00f8f7fb, 0x00f8f8fe, 0x00f6f7fb, 0x00f7f6ff, 0x00f7f3fd, 0x00f6f0fe, 0x00f5f0fb, 0x00f6f1fc, 0x00f8f2fc, 0x00f6f1fe, 0x00f3effc,
- 0x00f1ebf9, 0x00ede9f7, 0x00ede7f6, 0x00ece7f4, 0x00eee7f4, 0x00ece7f6, 0x00eee7f9, 0x00efe8fb, 0x00f0e8fa, 0x00ede6f8, 0x00ede6f8, 0x00ede7f9, 0x00eee9fa, 0x00eee8fa, 0x00ede6f8, 0x00eae3f7,
- 0x00e6d5ea, 0x00e2d7e9, 0x00dcd2e7, 0x00d8d2e7, 0x00e9e5f7, 0x00f3f2fb, 0x00f9f1f5, 0x00cbbabd, 0x0079645b, 0x007d6456, 0x00886857, 0x007e5d44, 0x00664b31, 0x005b402b, 0x00412714, 0x001f0d03,
- 0x00160908, 0x001e160e, 0x0024201c, 0x001b1919, 0x00111214, 0x000d0f0e, 0x000a0a05, 0x00110e06, 0x003e3127, 0x006a5a50, 0x0087746b, 0x00867370, 0x008e7e86, 0x00988c9f, 0x00a9a1be, 0x00b1aacf,
- 0x00cac4ca, 0x005c5761, 0x005b5663, 0x005d5766, 0x00595460, 0x00625964, 0x00675762, 0x00695763, 0x006e5661, 0x00725562, 0x00735260, 0x006e4d51, 0x00534f72, 0x005069a2, 0x005386d4, 0x004b92f1,
- 0x003c8af2, 0x003e88f0, 0x004189e6, 0x004285e0, 0x004587dc, 0x003e86cc, 0x003d83ca, 0x003b70d9, 0x00365fd1, 0x003360ba, 0x003768ba, 0x00396bc3, 0x00396aed, 0x003767df, 0x004375cf, 0x003c72a2,
- 0x0054484b, 0x008d8188, 0x00e0d5e2, 0x00e8dff2, 0x00e9e5fd, 0x00e2e0fd, 0x00d3d2f5, 0x00bcb8e3, 0x009c97c7, 0x008381ad, 0x00454887, 0x00495abe, 0x009895dc, 0x00ad9ecc, 0x00cdbacd, 0x00f6ebec,
- 0x00f9f8f8, 0x00f2fcfb, 0x00eafeff, 0x00e3fcfc, 0x00dbfcff, 0x00ebf4fb, 0x00f0effb, 0x00ececf8, 0x00e5e5f1, 0x00e2e2f0, 0x00e0e0ee, 0x00dcdbec, 0x00d3d3e2, 0x00ccccdf, 0x00c7c7da, 0x00c5c5db,
- 0x00cdceee, 0x00d3d0e7, 0x00e1d3e0, 0x00e2c1c6, 0x00b06d7e, 0x00a87786, 0x00e1c7d7, 0x00c8cfdf, 0x00c0cbd9, 0x00cfc3d6, 0x00d8bdcb, 0x00c1a4a3, 0x009c7e74, 0x00674b3c, 0x001f0b00, 0x00130a04,
- 0x000b130d, 0x000c1713, 0x000e1714, 0x00111613, 0x00191308, 0x00151710, 0x00151c16, 0x00171f18, 0x001c221d, 0x001c241f, 0x001a211d, 0x00161b1a, 0x00111818, 0x000d1314, 0x00090f10, 0x00070e0f,
- 0x00070e09, 0x000a110d, 0x000d120f, 0x00131413, 0x001b1c1a, 0x00222121, 0x00252426, 0x0027282b, 0x00262c30, 0x0021292c, 0x001e2526, 0x00191d1a, 0x00131513, 0x0010130f, 0x000c0f0b, 0x00060804,
- 0x00000600, 0x00000301, 0x00020402, 0x00020503, 0x00090c08, 0x00646665, 0x00fdfefc, 0x00fbfcfb, 0x00feffff, 0x00fdfcff, 0x00fefdfe, 0x00d0d0d0, 0x0078797a, 0x005a5b5b, 0x000f0f0e, 0x00080707,
- 0x00060705, 0x000b0c08, 0x0023221b, 0x00414135, 0x00444435, 0x0039382a, 0x00656356, 0x00817d6f, 0x004f4a3f, 0x00282217, 0x00282922, 0x002b3b32, 0x00322f2a, 0x00352a25, 0x00584a44, 0x006a5751,
- 0x005b5446, 0x006d6857, 0x00807a64, 0x00544733, 0x00311907, 0x00412c17, 0x00402910, 0x005a4127, 0x00917759, 0x00977a5e, 0x007a5f45, 0x005e4630, 0x004f3f34, 0x003b312b, 0x00181212, 0x000a080e,
- 0x00060604, 0x00050505, 0x00090909, 0x000a0a0a, 0x00070606, 0x00070605, 0x000d0c0d, 0x00111012, 0x001c181c, 0x00161616, 0x000c0c0d, 0x00161615, 0x001b1c1d, 0x00212625, 0x0029302e, 0x00262d2a,
- 0x0019201b, 0x0019211d, 0x00131716, 0x000f100d, 0x00080509, 0x00070506, 0x000a0b0c, 0x00111112, 0x001d2122, 0x0025292b, 0x002a2e2d, 0x00242726, 0x00222520, 0x0047463b, 0x00605b4f, 0x00524d3e,
- 0x009b947d, 0x00e3dcc7, 0x00e5dece, 0x00f1eadf, 0x00efe9e3, 0x00ece7e4, 0x00eeebeb, 0x00ecebec, 0x00e9ebe8, 0x00e8ebe9, 0x00ededee, 0x00f4edf6, 0x00f3f3f1, 0x00f1f4ee, 0x00e7f0e9, 0x00e3eaeb,
- 0x00dddeea, 0x00dedae5, 0x00ccc8c9, 0x009f948d, 0x00897b65, 0x0093806a, 0x006e5e46, 0x00584b32, 0x00746a55, 0x009d897d, 0x00ad958c, 0x009f817d, 0x006c4f4d, 0x00382726, 0x00170f09, 0x0016150d,
- 0x001d100c, 0x00241811, 0x001d110b, 0x00261a12, 0x003e332b, 0x00473c32, 0x00322822, 0x0019130c, 0x00060501, 0x00010300, 0x00040303, 0x000d0b0f, 0x00211712, 0x002e1f16, 0x0036261a, 0x0031231a,
- 0x001b1819, 0x000e111b, 0x000f131f, 0x000e0f1c, 0x000e0b11, 0x00120616, 0x00150512, 0x00201319, 0x00524842, 0x00473e39, 0x006a6263, 0x00dfd8df, 0x00fffcff, 0x00fdfcfe, 0x00fefdf9, 0x00fffff2,
- 0x00d1dddd, 0x00899292, 0x00868988, 0x00a4a19e, 0x00776c67, 0x0043352e, 0x003f3329, 0x003c3127, 0x00524d42, 0x00615d53, 0x003f4138, 0x00292e2b, 0x000f1710, 0x00070707, 0x00090a09, 0x000f0c0d,
- 0x000c0509, 0x000d0908, 0x000a0904, 0x00090c02, 0x00060900, 0x00040a06, 0x00020405, 0x00070906, 0x0017160a, 0x00190e02, 0x003c2a12, 0x007c6340, 0x00ad845a, 0x00bf8e5d, 0x00d69f66, 0x00e4a76d,
- 0x00e6ac76, 0x00eab179, 0x00e3ad77, 0x00ebbb8a, 0x00aa8965, 0x00513b1f, 0x00261302, 0x00322311, 0x00765f42, 0x009b7c55, 0x00a8815b, 0x00b18a5d, 0x00b08853, 0x00a98242, 0x00c29552, 0x00d59c58,
- 0x00dca269, 0x00d5a479, 0x006e4e2f, 0x00160c04, 0x00000700, 0x0001030c, 0x00000113, 0x00020821, 0x000c1d46, 0x00183568, 0x00254681, 0x00264b8b, 0x00254b89, 0x00295088, 0x00436899, 0x00436795,
- 0x002f3954, 0x00343d55, 0x00363f57, 0x00393f58, 0x003f4157, 0x00444455, 0x00484852, 0x0049484b, 0x004e4843, 0x004b463e, 0x004b4738, 0x00494530, 0x00413954, 0x004c455e, 0x00817b7c, 0x00b4ae84,
- 0x00c5a56a, 0x00c2926e, 0x00be836b, 0x00bc7e65, 0x00c38e4d, 0x00c4915e, 0x00c59368, 0x00c7966d, 0x00cf9970, 0x00d49c74, 0x00d29c73, 0x00c59169, 0x007f6253, 0x00474145, 0x0036475c, 0x00264a71,
- 0x00343c5a, 0x00313751, 0x002e3043, 0x002b2b38, 0x007c7a79, 0x00e8e6e5, 0x00fffffd, 0x00fdfdfb, 0x00fcfefc, 0x00fefefd, 0x00fbfdf6, 0x00fdfbe5, 0x00d4c7bb, 0x00775e56, 0x0060433c, 0x00533129,
- 0x004c3422, 0x00624e3f, 0x00675a53, 0x00656361, 0x006d6f7e, 0x00767972, 0x00706c64, 0x0080707a, 0x008c716d, 0x0054423b, 0x00342c30, 0x0042485c, 0x006c7276, 0x00918977, 0x00917961, 0x00865849,
- 0x00474c7e, 0x00252d63, 0x001b2552, 0x001e2742, 0x00504f3c, 0x0083724f, 0x0093724d, 0x00986b46, 0x009e6d39, 0x00966d20, 0x008a651a, 0x00956e40, 0x00705b3b, 0x0068583b, 0x005b4a27, 0x00664f23,
- 0x00a47f5d, 0x008b5c55, 0x006e3e41, 0x006d3f3c, 0x0088612f, 0x00816336, 0x00785631, 0x00936547, 0x00ad6350, 0x008e3c2b, 0x00af594a, 0x00be705d, 0x00a57469, 0x007d6864, 0x00252229, 0x004e5a6c,
- 0x00a38780, 0x00826252, 0x00532d19, 0x00411502, 0x006e4835, 0x00684e46, 0x002a1c1b, 0x00232325, 0x00040b0d, 0x000e1411, 0x00484130, 0x006f4e1b, 0x002f250f, 0x000b0a01, 0x002e4132, 0x00486868,
- 0x0015323d, 0x001d2f38, 0x00464753, 0x00483842, 0x00421d28, 0x00341719, 0x0025140e, 0x0026150a, 0x00201607, 0x001f1207, 0x00160e0a, 0x00120c10, 0x000c0b0d, 0x00050b02, 0x0018240b, 0x00596742,
- 0x00728549, 0x006b8444, 0x00698341, 0x006a8542, 0x0068823b, 0x006b7e3c, 0x00727c3d, 0x00707239, 0x00867b4a, 0x00928458, 0x007d7d47, 0x00618336, 0x005d8136, 0x005d8038, 0x005b7e37, 0x00577d3a,
- 0x00577b38, 0x00597a38, 0x005a7a38, 0x00587b37, 0x00597b36, 0x005a7739, 0x00587339, 0x00557136, 0x00567045, 0x00517256, 0x004f7569, 0x00497778, 0x004a7b7b, 0x004b785f, 0x004a7041, 0x004d6c28,
- 0x00566437, 0x00516635, 0x00516832, 0x004e672f, 0x004b6a2d, 0x0048692e, 0x0048682e, 0x0042612b, 0x004a6638, 0x005f7a4e, 0x00f7fee9, 0x00fffffe, 0x00fefefe, 0x00fefefd, 0x00ffffff, 0x00fefefd,
- 0x00fdfdff, 0x00fefdff, 0x00fdfefe, 0x00fafffe, 0x00fbfdfd, 0x00fbfeff, 0x00f9fdfd, 0x00f9fcfd, 0x00f6fcfb, 0x00f8fdfe, 0x00fcffff, 0x00fcfdfe, 0x00fbfbfb, 0x00fdfcfe, 0x00ffffff, 0x00fffeff,
- 0x00fcfdfc, 0x00fcfdfc, 0x00fcfefc, 0x00fdfffd, 0x00fefefd, 0x00fdfdfc, 0x00fbfcfb, 0x00fcfdfc, 0x00fdfbfb, 0x00fcfcfb, 0x00fcfcfa, 0x00fdfffa, 0x00fefefd, 0x00fefffe, 0x00fdfffd, 0x00feffff,
- 0x00fbfcfa, 0x00fcfcfa, 0x00fbfbf9, 0x00fafaf9, 0x00f7f8f7, 0x00f7f8fc, 0x00f7f6fd, 0x00f9f4fb, 0x00f6f7fa, 0x00f6f5f6, 0x00f5f4f5, 0x00f3f2f4, 0x00f3f1f7, 0x00f1f0f7, 0x00f1eff9, 0x00f2eef8,
- 0x00f1f1f1, 0x00f1f0f1, 0x00f3f2f3, 0x00f6f6f7, 0x00f7f6f8, 0x00f8f8f8, 0x00f7f9f6, 0x00f8faf6, 0x00fafbfb, 0x00fefdfe, 0x00fefcfd, 0x00fefdff, 0x00feffff, 0x00feffff, 0x00fcfdfc, 0x00fcfcfc,
- 0x00fefffe, 0x00fcfcfd, 0x00fefdfd, 0x00fdfbfa, 0x00fefdfd, 0x00fefeff, 0x00fffefe, 0x00fffefd, 0x00fffeff, 0x00fefefe, 0x00fefefe, 0x00fefefd, 0x00fdfdfd, 0x00fdfdfd, 0x00fffefe, 0x00fefdfe,
- 0x00fffffe, 0x00ffffff, 0x00ffffff, 0x00fffffe, 0x00ffffff, 0x00fdfffe, 0x00fefffd, 0x00ffffff, 0x00fefdfe, 0x00fcfcfc, 0x00fbfbfb, 0x00fffdfc, 0x00fbfdf9, 0x00fefdfb, 0x00fcfcfb, 0x00fdfdfd,
- 0x00fffeff, 0x00fefeff, 0x00fdffff, 0x00fefefe, 0x00fdfffd, 0x00fbfeff, 0x00f8feff, 0x00f8fcfd, 0x00fafeff, 0x00fdfeff, 0x00fffefe, 0x00fefaf6, 0x00cbc1bb, 0x006b6157, 0x00776a60, 0x00a6988e,
- 0x00d1b7a0, 0x00bca691, 0x00a99685, 0x008c7e71, 0x00464037, 0x0013110c, 0x00060302, 0x000d0c0b, 0x00050606, 0x000b0c0a, 0x000a0c08, 0x000c0d09, 0x000f100c, 0x0012130f, 0x00151612, 0x00151612,
- 0x00161512, 0x00151512, 0x00141512, 0x00141512, 0x00151613, 0x00151612, 0x00151711, 0x00171812, 0x00181813, 0x00171913, 0x00141510, 0x0013140e, 0x0011130e, 0x0011120d, 0x0010100b, 0x0010110d,
- 0x000e1311, 0x000f130f, 0x0010130f, 0x000f110e, 0x000e110c, 0x000d100b, 0x000b0e0b, 0x000a0b08, 0x00070b08, 0x00080a08, 0x000a0b08, 0x000b0c08, 0x000a0c09, 0x000b0d09, 0x000c0d0a, 0x000c0c0a,
- 0x00090c0a, 0x00090d0a, 0x00090f0b, 0x0009110c, 0x000a100b, 0x00080d08, 0x00090c06, 0x000c0f07, 0x000c0d07, 0x000b0b05, 0x000a0903, 0x00080700, 0x000a0801, 0x000e0c04, 0x00141209, 0x0019160c,
- 0x000f120d, 0x000a0f09, 0x00050c06, 0x00050a06, 0x00060b04, 0x00070903, 0x00070a03, 0x00060900, 0x00060900, 0x00050800, 0x00050905, 0x00070b0a, 0x000a0f0e, 0x000d100f, 0x000d0f0e, 0x000b0e0e,
- 0x00090806, 0x000a0a06, 0x000c0b06, 0x000e0c06, 0x000d0c05, 0x000a0b03, 0x000e0f08, 0x00090c06, 0x000d0c0a, 0x000a0a07, 0x002c2c2a, 0x00969694, 0x00fefefd, 0x00ffffff, 0x00fdfdfe, 0x00fcfdfd,
- 0x00f5f5f6, 0x00bababa, 0x00686868, 0x009a9a9c, 0x00d6d5d5, 0x00f6f4f6, 0x00fbfafa, 0x00fefcfd, 0x00f9f9f9, 0x00fafafa, 0x00fcfbfb, 0x00fcfbff, 0x00fefdfc, 0x00fcfbfc, 0x00fefdfe, 0x00fefdff,
- 0x00fafbfd, 0x00fbfcff, 0x00fbfbfc, 0x00fdfdff, 0x00fcfefb, 0x00f9fdfa, 0x00f9fdfa, 0x00fafdf8, 0x00fcfefb, 0x00fbfdfb, 0x00fbfdfc, 0x00fdfffe, 0x00fafffe, 0x00fcfffe, 0x00fcffff, 0x00fcfdfe,
- 0x00fef7fb, 0x00fffcfe, 0x00fefafa, 0x00fcfafc, 0x00fcfbfc, 0x00fffdff, 0x00fefeff, 0x00fcfeff, 0x00fdfbff, 0x00fffdff, 0x00fffefd, 0x00fffdfe, 0x00fefcfc, 0x00fdf9ff, 0x00fcf8ff, 0x00fffbff,
- 0x00fffdff, 0x00fdfcff, 0x00fdfbff, 0x00fdfcfe, 0x00fffcfe, 0x00fdfcff, 0x00fdfbff, 0x00fcf9ff, 0x00fdfafd, 0x00fcf8fd, 0x00faf6fd, 0x00faf6fe, 0x00fcf7ff, 0x00fbf7fe, 0x00f9f5fc, 0x00f8f3fb,
- 0x00f7edf9, 0x00f8eff8, 0x00f4edf8, 0x00f3ecf9, 0x00f7f6fd, 0x00fafaff, 0x00fdfcfe, 0x00ece6e6, 0x00c1b2ae, 0x00bdac9f, 0x00b6a298, 0x00aa9486, 0x00927e71, 0x008b7b6e, 0x007c6d62, 0x0062564b,
- 0x00544a47, 0x00524b47, 0x00554f4d, 0x00504d4c, 0x003e3d3a, 0x003c3733, 0x003c3126, 0x004c3f2f, 0x00847260, 0x00a28d7c, 0x00ac9383, 0x00a3897f, 0x00947d7e, 0x0097858f, 0x00a899ab, 0x00b4a6be,
- 0x00c6c0c7, 0x004f484f, 0x004e454d, 0x004e444e, 0x004f444c, 0x005b4b54, 0x00635056, 0x006a565b, 0x0073585f, 0x0075575f, 0x00755159, 0x0072494f, 0x004c4969, 0x00455e9a, 0x004f82d3, 0x003880e5,
- 0x002f80e9, 0x003782e5, 0x003a80df, 0x003c7dd7, 0x003f7cd2, 0x00377ace, 0x003473d6, 0x003565e4, 0x004161c9, 0x00567bab, 0x006a93ad, 0x005c88a9, 0x00416adf, 0x003c64e4, 0x004773e1, 0x002f5fa8,
- 0x002c2623, 0x004b4544, 0x00b5b2b7, 0x00dad6e5, 0x00e4e1fb, 0x00cecaed, 0x00b9b6dc, 0x00a5a1cd, 0x008e8bb8, 0x009995c3, 0x008689c3, 0x006571c5, 0x009494d1, 0x00c0b6db, 0x00f1e4f9, 0x00f9f0f6,
- 0x00f8fbfb, 0x00effbfb, 0x00e8f9fe, 0x00e4f9fe, 0x00e4fbfc, 0x00edf8fb, 0x00f1f3fd, 0x00eef0fc, 0x00eeecfb, 0x00ebe9f9, 0x00e9e7f8, 0x00e1e0f2, 0x00d9d9eb, 0x00cfcfe2, 0x00cacbde, 0x00cacbdf,
- 0x00cac5ea, 0x00cacbe2, 0x00d3cbd9, 0x00e2ccd2, 0x00c2879b, 0x009d7184, 0x00d2bbcd, 0x00bac1d0, 0x00c2cbda, 0x00cebfd2, 0x00dbc1d5, 0x00c7b1b7, 0x00b49b99, 0x00957c70, 0x00574436, 0x00281f13,
- 0x0010150e, 0x000a150f, 0x000a1514, 0x00101415, 0x00161612, 0x00151714, 0x00161a19, 0x001a1f1d, 0x001d2220, 0x001e2420, 0x001d221e, 0x00191d1b, 0x00141918, 0x000e1314, 0x000a0e10, 0x00070d0e,
- 0x00050e09, 0x0008100c, 0x000a0f0c, 0x000d0e0d, 0x00121211, 0x00151415, 0x00171719, 0x00181a1c, 0x00151c1d, 0x00151e1f, 0x00171f1f, 0x00181c19, 0x00191b19, 0x00151915, 0x000f130f, 0x00080b06,
- 0x00000301, 0x00000200, 0x00010300, 0x00010500, 0x00080a06, 0x00636364, 0x00fdfdfe, 0x00fcfcfd, 0x00fffdfe, 0x00fdfcfc, 0x00fffdfd, 0x00d2d1d0, 0x007b7a7c, 0x005b5a5b, 0x00100f0f, 0x00070606,
- 0x00030701, 0x00080b05, 0x00393b32, 0x004c4d42, 0x002b2c23, 0x0014130b, 0x001e1c13, 0x002a261d, 0x001c1911, 0x00130f08, 0x001e1e19, 0x0028362f, 0x002f2e2c, 0x0027201d, 0x00423733, 0x006a605b,
- 0x009d968c, 0x00bdb8a8, 0x00c2b9a8, 0x00816e5c, 0x003a1a0a, 0x00311b06, 0x002e1905, 0x003b2511, 0x00715941, 0x007b604b, 0x004f3624, 0x00483224, 0x00726460, 0x006e6767, 0x00333037, 0x000d0e1b,
- 0x00040403, 0x00050505, 0x00080707, 0x00050404, 0x0009080a, 0x000a090b, 0x00070607, 0x000d0b0e, 0x00121113, 0x000e0e0f, 0x000b0a0a, 0x000e0b0e, 0x00171617, 0x001d2020, 0x001f2724, 0x001b2723,
- 0x001a1f1d, 0x00171f1c, 0x000f1311, 0x000e0d0f, 0x000c0608, 0x000b0405, 0x00100e0c, 0x00161616, 0x0019171b, 0x00171c1c, 0x001a1f1d, 0x001d2220, 0x00101510, 0x00262a20, 0x0037382b, 0x00525243,
- 0x00bcb5a7, 0x00ece6d8, 0x00ebe3d9, 0x00ede5e0, 0x00e0dbda, 0x00e2dfe1, 0x00e3dfe2, 0x00dedcdd, 0x00e1e0e2, 0x00e4e6e5, 0x00ededf0, 0x00ede9f0, 0x00f2f1ed, 0x00eff2eb, 0x00ebf0ea, 0x00e7eceb,
- 0x00e4e2ec, 0x00e0dbe6, 0x00c9c3c7, 0x00a9a09b, 0x00978b7a, 0x009f8b7b, 0x00917d6c, 0x00867d68, 0x0093957f, 0x00a0a492, 0x00a5a597, 0x00aaa499, 0x00948581, 0x00564848, 0x0018130f, 0x0012100b,
- 0x001c1616, 0x00191611, 0x000e0805, 0x000e0804, 0x001b1511, 0x001b140d, 0x00170f08, 0x0018150b, 0x001b1812, 0x0014120b, 0x00100c07, 0x00120907, 0x0037251a, 0x0055412f, 0x005a462f, 0x005a4c35,
- 0x0034332c, 0x000e1112, 0x00080f16, 0x000d0f1b, 0x000d0a15, 0x001b0b0b, 0x00301e13, 0x00392a20, 0x004f443d, 0x00413832, 0x00696261, 0x00dcd8da, 0x00fefcfe, 0x00fefdfc, 0x00fcfbf8, 0x00fffef7,
- 0x00d3dadb, 0x008b9090, 0x00848685, 0x00a3a19d, 0x00756d66, 0x0040362d, 0x003f372d, 0x00383026, 0x00524a45, 0x0064625c, 0x004f524b, 0x003c493c, 0x002a3128, 0x00111712, 0x00040a08, 0x00070b0b,
- 0x00090c0a, 0x00090b08, 0x00070b06, 0x00060b03, 0x00080902, 0x00020704, 0x00000605, 0x000b0a09, 0x00271d14, 0x002c1c05, 0x00604628, 0x00a4825c, 0x00c69969, 0x00cd9a63, 0x00e0a86c, 0x00e4ab6b,
- 0x00e7b37e, 0x00ecb57e, 0x00ecb57f, 0x00f0bb89, 0x00be9870, 0x00694e2b, 0x0040270c, 0x00523a1c, 0x009e7a54, 0x00be9264, 0x00c99863, 0x00d6a768, 0x00d8a566, 0x00c08a51, 0x00d39a62, 0x00e6aa78,
- 0x00ebb08b, 0x00bb9071, 0x00472c1b, 0x00090200, 0x00000801, 0x00040100, 0x00080206, 0x00010006, 0x0001031e, 0x0008173a, 0x001b2f5d, 0x00264277, 0x002a4c7f, 0x002c5183, 0x0044689a, 0x00436998,
- 0x002c3b4f, 0x00323e54, 0x00363e59, 0x00393b5a, 0x003f3a58, 0x00453d56, 0x00484152, 0x00484149, 0x004a443c, 0x004b4435, 0x00494531, 0x0042432b, 0x004c4877, 0x006c6693, 0x009c93a2, 0x00b1a87c,
- 0x00b5954b, 0x00ae7f54, 0x00ad7260, 0x00a86c5a, 0x00ae7a2e, 0x00b17d45, 0x00ae7b52, 0x00ad7f55, 0x00bc8963, 0x00bc8962, 0x00b68562, 0x009e7353, 0x006b574e, 0x00454853, 0x002e4763, 0x001e4a76,
- 0x002f3755, 0x002d344c, 0x00292f42, 0x00262937, 0x007d7d7e, 0x00eceae9, 0x00fffffd, 0x00fefef9, 0x00fdfefe, 0x00fdfffd, 0x00fbfcf5, 0x00fefee6, 0x00c5bdb3, 0x0056484b, 0x00463644, 0x0046394b,
- 0x00454153, 0x004b5164, 0x00414e68, 0x0042547a, 0x004c6498, 0x00406691, 0x002d5983, 0x0041659b, 0x006987bf, 0x00476b9f, 0x00325e95, 0x003e73ac, 0x00376392, 0x00547191, 0x0069738b, 0x00534a61,
- 0x00292c65, 0x001b274e, 0x001a2741, 0x001c282b, 0x002b2a15, 0x004c3926, 0x00724e3c, 0x00915e4f, 0x00a47145, 0x00996c29, 0x00915b14, 0x00964c1a, 0x00582f0f, 0x0051341c, 0x007d6951, 0x00988169,
- 0x007b6e71, 0x005f637b, 0x00647098, 0x00475d7e, 0x00525e5e, 0x005d5338, 0x00957350, 0x007f4c30, 0x00852c17, 0x00922c19, 0x00902616, 0x00bc5748, 0x00b07b74, 0x00846e77, 0x00464f64, 0x00557196,
- 0x00736f80, 0x0066585b, 0x00593f3a, 0x00754f42, 0x007f5a49, 0x00977d71, 0x008d7f78, 0x00817f7c, 0x001f2427, 0x00030a0b, 0x00313532, 0x005b564a, 0x000e120c, 0x00091710, 0x00061c11, 0x0017332e,
- 0x00233e42, 0x0013262d, 0x00182131, 0x002c2c47, 0x00504462, 0x004b3b4a, 0x0034262b, 0x00281f1b, 0x00352f2b, 0x0029221b, 0x00100a08, 0x00140d08, 0x000b0704, 0x001d2112, 0x004a563c, 0x00576949,
- 0x004d5b2f, 0x00566734, 0x00697944, 0x006f8146, 0x006c7d3c, 0x00737a3d, 0x0077773e, 0x00726e3a, 0x00867648, 0x00938056, 0x00807b47, 0x00638133, 0x00627f35, 0x00607d35, 0x005f7d35, 0x005c7c37,
- 0x00577933, 0x00577a34, 0x00597a35, 0x00577b34, 0x00577b34, 0x005c7730, 0x005c7430, 0x00537434, 0x00557554, 0x004e7a77, 0x00457a90, 0x00346f9c, 0x0035719c, 0x0043768a, 0x004a7470, 0x00486b50,
- 0x0057682c, 0x00516929, 0x00506729, 0x0050672a, 0x004d6a25, 0x004a6a24, 0x004a6928, 0x00476729, 0x004a6639, 0x00779571, 0x00f5fff1, 0x00fffffd, 0x00fffffd, 0x00fefffc, 0x00fefefc, 0x00fefffe,
- 0x00fcfbfc, 0x00fbfbfd, 0x00fdfdfe, 0x00fdfefd, 0x00fcfdfd, 0x00fbfcfe, 0x00fbfcfe, 0x00fcfffe, 0x00fafefe, 0x00f8fdff, 0x00f6fcfc, 0x00fcfffe, 0x00fdfdfd, 0x00fffcfe, 0x00f9f7f7, 0x00f3f2f1,
- 0x00f6f9f9, 0x00fafcfc, 0x00fbfefd, 0x00fcfefd, 0x00fdfcfc, 0x00fdfcfc, 0x00fcfefd, 0x00fcfefd, 0x00fefdfe, 0x00fdfefc, 0x00fafcf8, 0x00fcfaf4, 0x00f9fdf9, 0x00fcfcf9, 0x00fbfbfa, 0x00fafbfa,
- 0x00fefefb, 0x00fffefe, 0x00fffefe, 0x00fdfefe, 0x00fffffd, 0x00fefbfd, 0x00fefcfe, 0x00fefcfd, 0x00fdfdff, 0x00fcfcfe, 0x00fbfcfc, 0x00fafbf9, 0x00fbf7fb, 0x00f9f4f8, 0x00f8f4f9, 0x00f8f2f7,
- 0x00f1f3f3, 0x00f1f1f2, 0x00f2f1f0, 0x00f2f2f0, 0x00f2f0f1, 0x00efeef0, 0x00ebeded, 0x00eaeced, 0x00f0f0ef, 0x00f4f4f4, 0x00f9f9f9, 0x00fbfcfc, 0x00faf9f9, 0x00f9f9f9, 0x00fafcfa, 0x00fdfcfb,
- 0x00fcfcfd, 0x00fbfcfb, 0x00fbfcfc, 0x00fbfcfd, 0x00fcfdfc, 0x00fefefe, 0x00fdfcfd, 0x00fdfdfc, 0x00fdfefc, 0x00fefefd, 0x00fefefe, 0x00fcfdfd, 0x00ffffff, 0x00fffdfe, 0x00fffdfe, 0x00fffdff,
- 0x00fefdfc, 0x00fbfcfb, 0x00fcfefc, 0x00fcfdfb, 0x00fefcfe, 0x00fdfcfe, 0x00fdfefe, 0x00fcffff, 0x00fefdfe, 0x00fbfcfe, 0x00fefdfd, 0x00fffbf8, 0x00fffdf8, 0x00fefefb, 0x00fdfefd, 0x00fcfefd,
- 0x00fdfeff, 0x00fcfdfd, 0x00fcfdfe, 0x00fcfdfd, 0x00fffffe, 0x00feffff, 0x00fcfffd, 0x00fefefe, 0x00fdfcfd, 0x00fefefd, 0x00fdfcfa, 0x00fefbf7, 0x00ccc0ba, 0x0067594d, 0x005d4d3c, 0x00887665,
- 0x00ba9678, 0x00ad9171, 0x00b59d7e, 0x00d7c4aa, 0x00b5aa9b, 0x00625a52, 0x0016110b, 0x00070804, 0x00080a09, 0x00090a0d, 0x00090a0b, 0x000d0e0a, 0x0011110e, 0x00141411, 0x00171613, 0x00171614,
- 0x00161713, 0x00161713, 0x00151613, 0x00151613, 0x00181714, 0x00171713, 0x00161713, 0x00181814, 0x00181915, 0x00191b17, 0x00191915, 0x00191813, 0x00181914, 0x00171813, 0x00151610, 0x00151612,
- 0x00151815, 0x00151914, 0x00151814, 0x00111412, 0x000e110e, 0x000c0f0b, 0x000b0e0a, 0x00090c09, 0x00080c06, 0x00070b06, 0x000b0b08, 0x000e0c0a, 0x000f0c0c, 0x000e0c0b, 0x000f0d0a, 0x000e0e0c,
- 0x000a0e0b, 0x000a100c, 0x000a120c, 0x0009130c, 0x000a140e, 0x000b130d, 0x000d120a, 0x000f120a, 0x00121208, 0x00111006, 0x00120e05, 0x00110b03, 0x00110c04, 0x00140f08, 0x0019150e, 0x001c1913,
- 0x00111900, 0x000d1500, 0x00081000, 0x00070e01, 0x00080d03, 0x00090b05, 0x000b090a, 0x000b080c, 0x000f0710, 0x000f0510, 0x000d070f, 0x000a0c0d, 0x000b0f0e, 0x000e0f10, 0x000e0e0f, 0x000c0e0c,
- 0x00090a06, 0x000b0b06, 0x000d0c06, 0x000e0b07, 0x000d0c07, 0x000a0903, 0x000c0c05, 0x00070902, 0x000a0b07, 0x00080805, 0x002b2a29, 0x00979695, 0x00fefffe, 0x00feffff, 0x00fdfcfe, 0x00fdfcff,
- 0x00f8fafb, 0x00b9b9ba, 0x00696969, 0x00999a9a, 0x00d1d1d1, 0x00f3f3f3, 0x00fdfdfd, 0x00fefcfd, 0x00fdfbfd, 0x00fdfcfc, 0x00fefdff, 0x00fefdfe, 0x00fefefd, 0x00fefdfe, 0x00fffeff, 0x00fffefe,
- 0x00fffeff, 0x00fffefd, 0x00fefefd, 0x00fefeff, 0x00fcfbf9, 0x00fefdf7, 0x00fefef8, 0x00fbfcf5, 0x00fffdfa, 0x00fffef9, 0x00fefdf6, 0x00fffef6, 0x00fffef5, 0x00fffef6, 0x00fffff7, 0x00fefef6,
- 0x00fbfbfd, 0x00fbfdfd, 0x00fdfdfd, 0x00fbfcfd, 0x00fafdfc, 0x00fcfdfe, 0x00fdfdfd, 0x00fcfdfa, 0x00fffdfb, 0x00fdfcf9, 0x00fdfcfa, 0x00fffefd, 0x00fffdfc, 0x00fdfcfb, 0x00fcfbfa, 0x00fefdfc,
- 0x00fffefc, 0x00fefdfc, 0x00fffefd, 0x00fefefc, 0x00fffdfb, 0x00fdfffd, 0x00fffffe, 0x00fffdfc, 0x00fffdfc, 0x00fffdfc, 0x00fffcfd, 0x00fefcfd, 0x00fffdfe, 0x00fffefe, 0x00fdfdfc, 0x00fefdfc,
- 0x00fefbff, 0x00fefafc, 0x00fffbff, 0x00fefdff, 0x00fafdfb, 0x00fbfdff, 0x00f9fafd, 0x00fcfefb, 0x00f7f5f1, 0x00f8f5ee, 0x00f3eee7, 0x00f0e9e0, 0x00e8e1dd, 0x00e9e3dc, 0x00e9e2dd, 0x00e2dcd9,
- 0x00d8d6d1, 0x00d6d3cf, 0x00d6d2d0, 0x00d1cfcc, 0x00c7c4c3, 0x00c0bab6, 0x00bdb2ac, 0x00c7bab0, 0x00ddcfbf, 0x00e2d2c2, 0x00ddc9b9, 0x00d8c4b9, 0x00cebbb8, 0x00cfbfc2, 0x00d2c4cf, 0x00d8cbdd,
- 0x00bfb8bf, 0x00443a3e, 0x00423438, 0x0045373a, 0x004d3b3e, 0x00574245, 0x005e4748, 0x00695152, 0x0075555c, 0x0076545a, 0x00704c51, 0x00693e41, 0x00443e5a, 0x0040538a, 0x004474bf, 0x002a6ecc,
- 0x002972d6, 0x003177d9, 0x003376d2, 0x003974cd, 0x003a70c6, 0x002e6fc5, 0x00286acb, 0x002a5bdd, 0x00546ad2, 0x00839fca, 0x009fc5d0, 0x007ba4b3, 0x00476bd6, 0x004367db, 0x003e66ce, 0x001a4787,
- 0x001a1810, 0x00201f18, 0x00868686, 0x00ccccd4, 0x00d9d8ea, 0x00bcb9d5, 0x00a2a1c0, 0x008d8cb2, 0x008c89b4, 0x00918fbd, 0x007679aa, 0x007d86bc, 0x00d5d6f8, 0x00f3ecfd, 0x00fcf6fc, 0x00f9f4fa,
- 0x00f1f3fb, 0x00f1f5fd, 0x00edf1f1, 0x00ebebe7, 0x00f0ede4, 0x00ececf1, 0x00e8e8f2, 0x00e6e7f0, 0x00e5e6f8, 0x00e5e5f7, 0x00e3e3f4, 0x00deddf0, 0x00d8d7ea, 0x00d5d3e9, 0x00d0cee2, 0x00cccade,
- 0x00d0c6ed, 0x00cacde5, 0x00cbccd9, 0x00dbd0d8, 0x00cd9bae, 0x00a78094, 0x00c9b3c7, 0x00b1b6c9, 0x00b7bfd1, 0x00cec1d6, 0x00d5c2d2, 0x00d0c0c9, 0x00bfaaa7, 0x00c6aea4, 0x00c8b5a5, 0x009e917e,
- 0x00373931, 0x000c110c, 0x000c1412, 0x000c1212, 0x00111210, 0x00151616, 0x00171c19, 0x001b211c, 0x00222325, 0x00232424, 0x00212421, 0x001c211d, 0x00181b18, 0x00121513, 0x000d0f0e, 0x000c0d0c,
- 0x00051009, 0x000a120b, 0x000b110a, 0x000d0f0b, 0x0012100f, 0x00121010, 0x000e1010, 0x000c0f0e, 0x00111316, 0x00111719, 0x00131a19, 0x00151a15, 0x001c201c, 0x001b201b, 0x00131814, 0x000b0e0a,
- 0x00040405, 0x00010202, 0x00000300, 0x00010501, 0x000a0c0a, 0x00666567, 0x00fffefe, 0x00fdfefc, 0x00ffffff, 0x00fffeff, 0x00fdfdfc, 0x00cececd, 0x007c7b7d, 0x00595859, 0x000c0c0a, 0x00020301,
- 0x00060705, 0x0011130e, 0x004e5247, 0x0055584e, 0x0020201b, 0x0011110a, 0x00111007, 0x0014140c, 0x00221c19, 0x0026231e, 0x00282a23, 0x002d3930, 0x00393531, 0x002c2522, 0x00302825, 0x00544847,
- 0x0099968e, 0x00c9c6ba, 0x00dbd2c3, 0x00a89382, 0x00573222, 0x00311607, 0x00240b00, 0x002e1604, 0x005b3f2d, 0x00644534, 0x0035190a, 0x00382015, 0x006c5d5b, 0x006c6667, 0x00313137, 0x000c111a,
- 0x00020303, 0x00050505, 0x00060605, 0x00050604, 0x00060607, 0x00060606, 0x00050504, 0x00080908, 0x000d0b0b, 0x000b0a0a, 0x000c0b0a, 0x000f0c0e, 0x00151314, 0x0018191a, 0x00161d19, 0x00121d19,
- 0x001b1d1f, 0x00161a1a, 0x000d0e0d, 0x00090a0c, 0x00050505, 0x000a0604, 0x000d0c08, 0x0010110f, 0x0016141b, 0x000f1315, 0x000b1212, 0x00101817, 0x00151b19, 0x00272a24, 0x002d3126, 0x0074796c,
- 0x00e3ded3, 0x00eae4db, 0x00e6e0db, 0x00e6e2e0, 0x00e3dfe0, 0x00dfdddf, 0x00dbdadc, 0x00d2d0d2, 0x00d0ced4, 0x00d6d7da, 0x00eeeeef, 0x00edeaec, 0x00f1eeeb, 0x00f3f1eb, 0x00efeee8, 0x00ecebe9,
- 0x00e0dee5, 0x00d8d3dd, 0x00b2adb2, 0x00a59d99, 0x00afa79a, 0x00aa998a, 0x009d8d7b, 0x0091917a, 0x00a0a898, 0x00a4ae9f, 0x0098a694, 0x00989e90, 0x009f9b91, 0x006e6a64, 0x00201e17, 0x000d0f0a,
- 0x001b181b, 0x00151313, 0x00040202, 0x00030000, 0x00030101, 0x000e0902, 0x00221d12, 0x00353326, 0x00473f34, 0x00494036, 0x00463c32, 0x00352a21, 0x0053432f, 0x0076634c, 0x00776349, 0x005e573b,
- 0x0035372c, 0x00090e0c, 0x00040e12, 0x000e141e, 0x0012121f, 0x002e2111, 0x005a4e29, 0x00625638, 0x005d5447, 0x004a433e, 0x00787672, 0x00dfe0e1, 0x00fdfeff, 0x00fdfffe, 0x00fbfdfb, 0x00fcfefa,
- 0x00d5dadc, 0x008d8f90, 0x00858685, 0x00a3a29e, 0x00736d67, 0x0039332b, 0x0038342c, 0x0039352d, 0x00524948, 0x00666260, 0x005b5b58, 0x004a5348, 0x004e534c, 0x003c423d, 0x00161b1b, 0x0007090b,
- 0x00070a0d, 0x00070c0d, 0x00060a09, 0x00020700, 0x00030700, 0x00020803, 0x00020503, 0x000c0f09, 0x00301d0f, 0x00482e19, 0x007c5d3d, 0x00ac8959, 0x00cd9d6b, 0x00d9a46e, 0x00e9b176, 0x00eeb179,
- 0x00eeb687, 0x00f1b885, 0x00eeb985, 0x00f4bc8a, 0x00c99d73, 0x00815f3a, 0x00543916, 0x006a4e2c, 0x00b28760, 0x00cc996d, 0x00d29e67, 0x00e2b370, 0x00d09c60, 0x00b57a45, 0x00d9996d, 0x00edab86,
- 0x00dea790, 0x008f6956, 0x00270e04, 0x00050000, 0x00020904, 0x00090300, 0x000c0503, 0x00080203, 0x0005000f, 0x0002051d, 0x00071331, 0x00193055, 0x00304b76, 0x002f4d7c, 0x00496897, 0x00486898,
- 0x002e3a4d, 0x00353f54, 0x00393f59, 0x003b3a57, 0x003f3652, 0x00443850, 0x00473d4c, 0x00443c42, 0x00473f39, 0x004b4337, 0x003d3f2d, 0x003b4731, 0x005c5e9b, 0x008280bd, 0x009491ab, 0x009d9a73,
- 0x009c7f34, 0x0094653c, 0x008f5540, 0x00915646, 0x00986520, 0x0096622e, 0x00855227, 0x007b4e23, 0x00906143, 0x00986c4f, 0x00875e45, 0x006a472e, 0x004b403d, 0x003d4754, 0x002a4a64, 0x00184973,
- 0x002e3856, 0x002a354f, 0x00252f40, 0x00222835, 0x007e8082, 0x00eeeded, 0x00fffffa, 0x00fcfef7, 0x00fffeff, 0x00fefdfd, 0x00fcfdf9, 0x00f9fee8, 0x00b5b4b2, 0x00383646, 0x002e2f4c, 0x003f456a,
- 0x003b446f, 0x00324774, 0x00254376, 0x002b4f88, 0x00325aa2, 0x00275d9f, 0x001b5a99, 0x00215aa0, 0x003467b7, 0x002d63b1, 0x002463ae, 0x001b5e9e, 0x00255e96, 0x0040689b, 0x0037527f, 0x0026335b,
- 0x00212254, 0x001a253f, 0x00122026, 0x000d1c0e, 0x00101303, 0x00180b01, 0x00371c11, 0x006e483c, 0x0097704d, 0x00886738, 0x00704715, 0x00733215, 0x00361c14, 0x00463536, 0x008c8383, 0x0089797f,
- 0x00676b88, 0x005370a4, 0x00426faa, 0x002b5c92, 0x003d586e, 0x005e5743, 0x00a48962, 0x00966346, 0x0097392a, 0x00a53b2b, 0x0088200d, 0x00983725, 0x008c5752, 0x007a6673, 0x00606c86, 0x002e4e77,
- 0x002d385a, 0x00322f45, 0x004c3e45, 0x00735853, 0x007d5e4f, 0x00bca597, 0x00ac9d90, 0x008a817c, 0x001d1c1a, 0x00100c0d, 0x002a3239, 0x0035476a, 0x000e1e33, 0x000b1a22, 0x00090f0f, 0x000c110a,
- 0x001c221e, 0x00373a3f, 0x001e2332, 0x001d2440, 0x00373f6b, 0x00413c4f, 0x00271f27, 0x00201f23, 0x00312f32, 0x00221b1c, 0x000d0704, 0x000e0300, 0x0032261a, 0x005c5947, 0x005b6447, 0x00283819,
- 0x00111c02, 0x0027310e, 0x00566035, 0x006b7745, 0x00757e43, 0x00797940, 0x0078753c, 0x00746d36, 0x008f7752, 0x009c7f5d, 0x0086794a, 0x00677e33, 0x00687d34, 0x00677c35, 0x00637a31, 0x00607831,
- 0x00607733, 0x00607835, 0x005f7835, 0x005b7731, 0x00597630, 0x005a7727, 0x005a7727, 0x0059752e, 0x00517454, 0x0049777c, 0x00376e8f, 0x001d5c9a, 0x002162a6, 0x00326b9f, 0x0040708e, 0x00416a75,
- 0x00566d27, 0x00516c28, 0x004f6926, 0x00506927, 0x004b681f, 0x0048691c, 0x00496a1f, 0x004a6b25, 0x004c643d, 0x00839c85, 0x00f4fbf5, 0x00fcfdfb, 0x00fbfcf9, 0x00fefefb, 0x00fcfdf9, 0x00fcfffe,
- 0x00efedea, 0x00eeeaeb, 0x00eeece7, 0x00eeede7, 0x00efebea, 0x00e9e9e5, 0x00eeeee8, 0x00ebe9e8, 0x00f7f9fb, 0x00fcfeff, 0x00f5fcfd, 0x00f4fff9, 0x00f9fdfe, 0x00fafcfb, 0x00d0d0d0, 0x00aeaaaa,
- 0x00bcbec2, 0x00c8cacc, 0x00d7d9d9, 0x00dfe1df, 0x00edecea, 0x00eeefec, 0x00f1f5f2, 0x00f7fcf9, 0x00fbfdfe, 0x00fdfeff, 0x00fbfdfc, 0x00fdfcf9, 0x00fcfefd, 0x00fdfdfb, 0x00fcfefb, 0x00fefffc,
- 0x00fffffc, 0x00fffeff, 0x00fefefe, 0x00fbfdfb, 0x00fefdfa, 0x00fefcfb, 0x00fbfcf9, 0x00fbfdfa, 0x00ffffff, 0x00fdfefe, 0x00fbfffb, 0x00f9fef7, 0x00fcfbfa, 0x00fdfcf9, 0x00fdfdf8, 0x00fcfbf6,
- 0x00f8f8fb, 0x00fdfcff, 0x00fafafa, 0x00f7f9f7, 0x00f8f7f8, 0x00f7f7f8, 0x00f3f4f3, 0x00f4f3f3, 0x00f7f4f4, 0x00f7f4f6, 0x00f4f5f4, 0x00eef0f0, 0x00eeeeec, 0x00eff0f1, 0x00f2f5f3, 0x00f8f9f7,
- 0x00f9f8fb, 0x00f8f7f9, 0x00f3f4f3, 0x00f2f4f2, 0x00f0f0f0, 0x00f2f2f1, 0x00efefec, 0x00eeefee, 0x00f1f0f2, 0x00f1eff1, 0x00eaeaec, 0x00e2e5e6, 0x00eaeaeb, 0x00e9eae9, 0x00e5e7e5, 0x00e8e6e5,
- 0x00e7e3e7, 0x00e7e5e8, 0x00e6e6e5, 0x00e6e6e3, 0x00e8e6e7, 0x00e6e3e4, 0x00e4e3e2, 0x00e3e3e2, 0x00e9e6e7, 0x00ebeaec, 0x00eeebe9, 0x00ece4dd, 0x00ebe7df, 0x00e9e6e2, 0x00e9e8e6, 0x00eceaec,
- 0x00e4e9e7, 0x00e9ebea, 0x00ececed, 0x00eeebe9, 0x00ebe8e5, 0x00e9e5e1, 0x00e5e5de, 0x00ebe8e4, 0x00f0eaed, 0x00edeae9, 0x00ecebe7, 0x00eeebe5, 0x00bbada6, 0x00564437, 0x00432e1c, 0x0067513d,
- 0x008c6243, 0x006f4c2e, 0x0078593c, 0x00bea58b, 0x00e2d5c2, 0x00b2ab9c, 0x00474137, 0x00080905, 0x00060408, 0x000b0911, 0x000a090b, 0x000c0b06, 0x0011120d, 0x00141411, 0x00171714, 0x00161716,
- 0x00181715, 0x00181614, 0x00161614, 0x00161714, 0x00191715, 0x00181713, 0x00151811, 0x00151a12, 0x00191714, 0x001c1a17, 0x00191914, 0x00171911, 0x00181913, 0x00191c14, 0x00171b12, 0x00191b14,
- 0x00161716, 0x00161917, 0x00161915, 0x00131612, 0x00101310, 0x000e110c, 0x000b0f09, 0x00080c08, 0x00090909, 0x0008090a, 0x000a0a09, 0x000c0a08, 0x000c0a09, 0x000d0b09, 0x000e0d0a, 0x000b0e0b,
- 0x00090f0c, 0x00070e0c, 0x0008100a, 0x0009130b, 0x000a150f, 0x000c150d, 0x000f160a, 0x0013180d, 0x001d1910, 0x001a160c, 0x00171309, 0x00151108, 0x0016130c, 0x00171411, 0x00171515, 0x00161417,
- 0x0013190c, 0x0011160d, 0x000c120c, 0x000b100c, 0x0009110e, 0x000b0f0d, 0x000e0f0e, 0x00110e10, 0x00180c13, 0x00190a10, 0x00140d0e, 0x000d110e, 0x000c110f, 0x000d110e, 0x000c100d, 0x000c0e0b,
- 0x000a0b07, 0x000e0e09, 0x000f0e09, 0x000f0e09, 0x00110e0a, 0x000c0b04, 0x000c0c05, 0x00090903, 0x000c0b08, 0x00090807, 0x002a2929, 0x00959594, 0x00fefefd, 0x00ffffff, 0x00fdfefe, 0x00fbfdfe,
- 0x00fcf9fc, 0x00b9b6b9, 0x00565755, 0x00858685, 0x00c0bfbd, 0x00dddcdc, 0x00e7eae6, 0x00eaecea, 0x00ededef, 0x00efefef, 0x00f4f5f3, 0x00f4f6f2, 0x00f6f8f3, 0x00f9f9f7, 0x00fcfbfb, 0x00fefcfa,
- 0x00fdfcfc, 0x00fdfefc, 0x00fcfefa, 0x00fefeff, 0x00fffefd, 0x00fbfdfb, 0x00fafcf9, 0x00fbfaf4, 0x00fffdfe, 0x00fffffc, 0x00fdfcf8, 0x00fdfcf6, 0x00fcfdf5, 0x00fffff6, 0x00fdfef6, 0x00fbfdf3,
- 0x00fbfcff, 0x00f7fcfe, 0x00f9fcfe, 0x00fbffff, 0x00fafffc, 0x00fafcfa, 0x00fdfefa, 0x00fefffa, 0x00fffdfd, 0x00fffdfd, 0x00fefdfa, 0x00fefdfa, 0x00fefffa, 0x00fbfef9, 0x00f9fdf5, 0x00fbfdf8,
- 0x00fdfcfa, 0x00fcfbf9, 0x00fdfdfa, 0x00fdfefa, 0x00fefbf9, 0x00fafcf9, 0x00fbfefa, 0x00fdfef9, 0x00ffffff, 0x00fffffc, 0x00fdfff9, 0x00fafef7, 0x00fcfef9, 0x00fdfffa, 0x00fcfef9, 0x00fefef9,
- 0x00fff9f8, 0x00fdf7f7, 0x00fefafb, 0x00fffcfd, 0x00f8fbfd, 0x00f6fbfc, 0x00f5fcfa, 0x00fafefc, 0x00fefdfd, 0x00fffdfd, 0x00fdfcfa, 0x00fcfdf9, 0x00fcfdfa, 0x00fdfbf9, 0x00fdfaf8, 0x00fbfcf8,
- 0x00fcfefb, 0x00fefdfc, 0x00fffcfd, 0x00fdfcfa, 0x00fdfdfc, 0x00fcfcf7, 0x00fbf9f3, 0x00faf7ef, 0x00fff7f4, 0x00fff7f1, 0x00fef7ed, 0x00fcf5ee, 0x00fcf3f3, 0x00fcf4f7, 0x00f9f3f7, 0x00f7f2f9,
- 0x00b6b5aa, 0x00372d26, 0x003c2c2a, 0x00443130, 0x00503735, 0x00593c3c, 0x00654446, 0x006e4a4d, 0x006c4e47, 0x00694b43, 0x006b4541, 0x00663634, 0x003c2f43, 0x002f3f6c, 0x003a5fa4, 0x00275eb1,
- 0x00135dab, 0x001f64b6, 0x002d65bf, 0x002c63b8, 0x002c60b6, 0x002061b3, 0x002861c4, 0x003156da, 0x004563bf, 0x007191b8, 0x0091b2c2, 0x00779bb1, 0x004b66c9, 0x003a57be, 0x00274598, 0x0014345c,
- 0x00171f06, 0x000f1601, 0x0053554d, 0x00adabae, 0x00cbc9d6, 0x00b3b2c6, 0x009995b4, 0x008180a3, 0x00737d9a, 0x007883a2, 0x008787a6, 0x00b9b2c2, 0x00f5ebe6, 0x00f9ebeb, 0x00fef0f2, 0x00fcf5f6,
- 0x00f0f4f1, 0x00ecf0ef, 0x00f4f1f2, 0x00f9f2ea, 0x00faead8, 0x00eee7eb, 0x00e6e3f7, 0x00e2dff4, 0x00d3d6e2, 0x00d1d2df, 0x00d6d5e7, 0x00deddf1, 0x00dfdcf2, 0x00dddcf2, 0x00dcd8ef, 0x00dad5ee,
- 0x00cec6e8, 0x00c3cbde, 0x00c5cbdd, 0x00d1d1db, 0x00d3b1c5, 0x00b291a6, 0x00bfaac2, 0x00c0c4da, 0x00a8b8c1, 0x00bbb4c2, 0x00d2bed2, 0x00cfc3d5, 0x00d0bdbf, 0x00dac2b6, 0x00f7ded0, 0x00f5e3d2,
- 0x00868875, 0x00222a1b, 0x00080e09, 0x00090f0d, 0x000e120f, 0x00131713, 0x001e1e1c, 0x00242222, 0x001e241e, 0x0020241f, 0x00242622, 0x00252522, 0x0021211e, 0x00191916, 0x00131310, 0x0014130f,
- 0x00021201, 0x00051103, 0x000d1309, 0x0012140e, 0x00141311, 0x0013110f, 0x000f0c0b, 0x000e0a0a, 0x00061105, 0x0007110a, 0x000e1511, 0x00171b17, 0x0020221e, 0x00212321, 0x001c1d1c, 0x00171615,
- 0x00020b01, 0x00000300, 0x00010500, 0x00020502, 0x00080c09, 0x00666766, 0x00fffeff, 0x00fffeff, 0x00fafcf9, 0x00fcfdfb, 0x00fdfefc, 0x00cecfce, 0x00797879, 0x005a595a, 0x00121012, 0x000b090c,
- 0x00040e00, 0x001a2113, 0x0061645c, 0x00565751, 0x001e1f1a, 0x0010110b, 0x0016160d, 0x00292622, 0x004f5243, 0x00696a5a, 0x006c6960, 0x006f736a, 0x00696a65, 0x003c3736, 0x002c2423, 0x00383432,
- 0x00676f63, 0x009a9d8e, 0x00b6afa0, 0x00968173, 0x005e3729, 0x00351709, 0x00240a02, 0x0035140a, 0x004e321c, 0x00624a33, 0x00523723, 0x003d2415, 0x00352822, 0x002e2529, 0x0019161e, 0x00111420,
- 0x00010700, 0x00000500, 0x00030403, 0x00050405, 0x00070605, 0x00050403, 0x000b090a, 0x00090608, 0x00030801, 0x00040803, 0x00090b0a, 0x000c0d0a, 0x00111212, 0x00171918, 0x001a1e1e, 0x00151a1b,
- 0x000c1911, 0x0009120d, 0x000a0d0b, 0x00050807, 0x00080507, 0x000d0908, 0x00130f0d, 0x00161514, 0x000d1510, 0x0008120d, 0x00030e0d, 0x0005100f, 0x0019211d, 0x00222722, 0x0043463f, 0x00a3a59c,
- 0x00e4e9d7, 0x00e4e6d8, 0x00e9e7e1, 0x00ece8e8, 0x00e8e5e9, 0x00e0dee3, 0x00e0dde5, 0x00c9c6ce, 0x00b2b6b3, 0x00bac0bb, 0x00e4e5e5, 0x00e8e5e9, 0x00ecebe7, 0x00f0f1e8, 0x00efefe9, 0x00e8e9e7,
- 0x00d5ddda, 0x00d1d4d6, 0x00a7a2a9, 0x00938e8c, 0x00b3afa3, 0x00aa9c8f, 0x00a18f83, 0x009a9487, 0x0090a88a, 0x0093ab90, 0x0093a793, 0x00909b8c, 0x00909186, 0x007d7d73, 0x003b3733, 0x00131212,
- 0x000d140c, 0x000a110c, 0x00080909, 0x000a0808, 0x00060501, 0x000e0a04, 0x00312a20, 0x005a5044, 0x00756f57, 0x0080775f, 0x007d7261, 0x005e5347, 0x00574531, 0x00635238, 0x0061503a, 0x0048422d,
- 0x0011210f, 0x0005150d, 0x001d2931, 0x00232c34, 0x002c2a36, 0x004c4522, 0x0077693a, 0x00736543, 0x00504e35, 0x00353527, 0x00757771, 0x00e0e6e3, 0x00feffff, 0x00fffeff, 0x00fefcff, 0x00fffbff,
- 0x00cfdad3, 0x00868e88, 0x00878884, 0x00a3a39e, 0x00706c66, 0x0035332c, 0x003a3632, 0x00403c3a, 0x003f4439, 0x00575b56, 0x006b6c69, 0x005d6058, 0x005e5f5b, 0x00565b5a, 0x00393d3e, 0x00212425,
- 0x00000a03, 0x00000701, 0x00020608, 0x00010401, 0x00000300, 0x00000300, 0x00020304, 0x00191411, 0x0053462b, 0x00765d3a, 0x00916c42, 0x00b18555, 0x00d8a46f, 0x00e6b27a, 0x00f3b983, 0x00f1b780,
- 0x00e6b881, 0x00edba7f, 0x00edb680, 0x00efb884, 0x00d2a377, 0x0098734d, 0x007a5732, 0x008e6b47, 0x00bb9661, 0x00cc9d63, 0x00d49f63, 0x00e0ad6e, 0x00c38751, 0x00b97449, 0x00eea989, 0x00eeac97,
- 0x00a7846c, 0x00523b26, 0x00110001, 0x00090303, 0x00030606, 0x00090200, 0x000f0103, 0x00100302, 0x00020601, 0x0000060d, 0x00060d1e, 0x000b1632, 0x00273a61, 0x00354b75, 0x00566b97, 0x00506596,
- 0x002c3d45, 0x00303b47, 0x00393a4e, 0x003d394f, 0x00433951, 0x0047394c, 0x00493b49, 0x004a3d43, 0x00403f35, 0x0040402e, 0x003a4035, 0x00425c57, 0x006a75c1, 0x007478c7, 0x008381b0, 0x00958f7e,
- 0x0087772b, 0x00835a2d, 0x00834d35, 0x00894e3c, 0x00895818, 0x00834b1c, 0x006e350f, 0x00522205, 0x00462809, 0x004e351d, 0x00493222, 0x00433226, 0x003f3d44, 0x003d495e, 0x002c456a, 0x00163d70,
- 0x001a3144, 0x001d303f, 0x00222e3f, 0x001c242e, 0x00808283, 0x00edf0ed, 0x00ffffff, 0x00fffffc, 0x00f8fff7, 0x00f9fef7, 0x00fcfcf7, 0x00f6fcf2, 0x00b7c2cc, 0x00455272, 0x00364271, 0x0030447d,
- 0x001a4075, 0x00103c75, 0x001c448a, 0x0026549f, 0x002455a9, 0x0016519f, 0x000b4994, 0x000b4992, 0x0007499b, 0x000b4c9f, 0x001756a3, 0x001a5891, 0x00255a8e, 0x002d548e, 0x001a336e, 0x001f2e62,
- 0x00121931, 0x000d191b, 0x000a180d, 0x00091900, 0x00131708, 0x001c130c, 0x002b1411, 0x006b4b45, 0x007b6a4b, 0x00817751, 0x00624834, 0x005b3133, 0x00303348, 0x00505b78, 0x006f769d, 0x00837fa8,
- 0x005e77a1, 0x003168a3, 0x001d5da5, 0x00135393, 0x004b5f7e, 0x008d877c, 0x00ad8d72, 0x00945f4d, 0x00803019, 0x00862b14, 0x00852210, 0x008d331f, 0x0081504a, 0x00705f6a, 0x005e6783, 0x002f4a75,
- 0x0019395c, 0x001e2d49, 0x003b394c, 0x00493a3b, 0x00694f41, 0x00ad9789, 0x00ad9b8f, 0x00928279, 0x00383523, 0x00433c2a, 0x00464c5c, 0x001e428d, 0x000f295b, 0x0009152d, 0x00100b15, 0x001c0b05,
- 0x003f361a, 0x00736f5e, 0x00717075, 0x003f4761, 0x00172e59, 0x001b1c31, 0x00170f23, 0x001b1b2d, 0x00131e1c, 0x0015190f, 0x0030261f, 0x00453325, 0x00664f3b, 0x0061553e, 0x00423f29, 0x0026311a,
- 0x000f1a00, 0x00151f00, 0x003c4321, 0x0055592d, 0x0081814f, 0x0087824d, 0x00817445, 0x007c683b, 0x00836e40, 0x0091784f, 0x008c774a, 0x00767936, 0x00747934, 0x00727c32, 0x00707835, 0x00717934,
- 0x00617424, 0x0066792d, 0x00667330, 0x00667633, 0x00667537, 0x005f7523, 0x00637724, 0x0061752f, 0x004b7344, 0x003f6f6a, 0x00326989, 0x002061a3, 0x002162bb, 0x00225eaa, 0x003865a8, 0x00466ea0,
- 0x00476f22, 0x00466b23, 0x004a682a, 0x004d6b2e, 0x004e6b26, 0x004c6717, 0x0050681d, 0x004f6924, 0x00476035, 0x00809681, 0x00f6fcfb, 0x00fefcfc, 0x00fcf9f8, 0x00fdfdfc, 0x00fffbfc, 0x00fefaf9,
- 0x006e6f61, 0x00706d62, 0x007a726c, 0x007f756c, 0x007c746c, 0x00786f69, 0x007d716e, 0x008b8181, 0x00cbd0ca, 0x00eff9f4, 0x00fafdfc, 0x00f9fefe, 0x00f7fdfd, 0x00f7fafc, 0x00919293, 0x003c3839,
- 0x00353e3a, 0x00434a48, 0x00595d5d, 0x00676a6b, 0x007b7d81, 0x008b8d91, 0x00a3a5a8, 0x00b6b7ba, 0x00c1c7c5, 0x00d1d9d5, 0x00e3e7e6, 0x00e9eaea, 0x00eceeec, 0x00f0f2f0, 0x00f8f7f9, 0x00fdfbfd,
- 0x00f4f8f0, 0x00f8fdf7, 0x00fefefd, 0x00fffdfd, 0x00fffcfd, 0x00fcfdfb, 0x00fefefe, 0x00fcfeff, 0x00eefef2, 0x00f0fdf3, 0x00f3fcf5, 0x00f4fdf5, 0x00fcfff7, 0x00fcfdf3, 0x00fffdf5, 0x00fffaf4,
- 0x00f6fbf4, 0x00f8fcf6, 0x00fbfcfa, 0x00fcfcfc, 0x00fefefe, 0x00fefefe, 0x00fefdff, 0x00fffdff, 0x00f6fbf6, 0x00f7faf7, 0x00f9f8f9, 0x00f6f4f6, 0x00f3f3f4, 0x00f6f4f5, 0x00fcf9fb, 0x00fdfcfd,
- 0x00f0f7f1, 0x00eff3ec, 0x00f0f2f0, 0x00ececed, 0x00e9e9e9, 0x00dedede, 0x00cfced2, 0x00c4bfc3, 0x00afb6ae, 0x00a2a8a3, 0x009d9e9d, 0x009e9c9e, 0x009a9a9b, 0x008e8f90, 0x007b797c, 0x006b676c,
- 0x005e615b, 0x005b5d59, 0x005b5c5d, 0x005b5b5d, 0x005f5f5f, 0x005a595a, 0x005e5c60, 0x00636065, 0x005c615a, 0x005b605b, 0x00625f5b, 0x006c615a, 0x006d635f, 0x006b6664, 0x0069676a, 0x0067676c,
- 0x005b655f, 0x005e635e, 0x00656461, 0x006c6862, 0x0078726b, 0x00766d65, 0x00756b63, 0x007a6f6c, 0x006a6b60, 0x0066655d, 0x00706a65, 0x00777066, 0x005b4a41, 0x0029170c, 0x002e1606, 0x00442815,
- 0x004d2b08, 0x0051320d, 0x00755536, 0x00987d61, 0x00c6b6a1, 0x00d7cebc, 0x009f988d, 0x00464340, 0x00000100, 0x00020406, 0x000d0b10, 0x000b0c0b, 0x000f0f0e, 0x00121210, 0x00171413, 0x00151615,
- 0x000f1209, 0x000f1109, 0x00131411, 0x00141413, 0x00161712, 0x00141510, 0x00171715, 0x00191815, 0x0013160d, 0x00151810, 0x00181812, 0x00181812, 0x00171913, 0x00171912, 0x001a1814, 0x001b1a17,
- 0x0010180d, 0x0010170e, 0x00131713, 0x00131711, 0x00131713, 0x0010130e, 0x000f100f, 0x000d0d0f, 0x00010a00, 0x00000901, 0x00070a07, 0x000a0809, 0x000b0a07, 0x000a0a06, 0x000d0b0a, 0x000e0c0d,
- 0x00030d01, 0x00030c03, 0x00071007, 0x0009130d, 0x000d1612, 0x00101a12, 0x00171f17, 0x001c1d17, 0x00141507, 0x00161709, 0x001b170d, 0x001c1512, 0x00191417, 0x0017171e, 0x001a1a26, 0x00212133,
- 0x00141e28, 0x000d1723, 0x000e1627, 0x000f1729, 0x000c1523, 0x000e1720, 0x00161821, 0x00181518, 0x00171405, 0x00171302, 0x0018120b, 0x000e1114, 0x000e1310, 0x000d1110, 0x000f1012, 0x000d0c0d,
- 0x00040b00, 0x00060d03, 0x000f0d0c, 0x00120f0b, 0x00120d0c, 0x00100e07, 0x000e0e0a, 0x000b0a06, 0x00090c03, 0x00070900, 0x00292a27, 0x00969697, 0x00fffffe, 0x00fffeff, 0x00fffeff, 0x00fffeff,
- 0x00f3f5f4, 0x009ea19f, 0x001d1e1d, 0x00313231, 0x00515051, 0x005d5b5c, 0x006c6a6b, 0x00757374, 0x00737571, 0x007e7f7c, 0x008b8c89, 0x00929190, 0x009d9c9c, 0x00a8a7a6, 0x00b5b5b4, 0x00bcbcbc,
- 0x00c8cdc5, 0x00ccd1c9, 0x00d7d7d4, 0x00ddddda, 0x00e0e0dd, 0x00e2e1e3, 0x00e6e1e7, 0x00eae6e9, 0x00e4e7e5, 0x00e4e6e4, 0x00ebeae9, 0x00f1f0ee, 0x00f3f1f0, 0x00f4f1f0, 0x00f7f2f1, 0x00f8f1f1,
- 0x00e6f8ef, 0x00ecf6f1, 0x00f4f8f7, 0x00f8f9fa, 0x00fbfafb, 0x00fcfcfb, 0x00fcfdf9, 0x00fffef9, 0x00f9fff3, 0x00f9fef3, 0x00fbfdf5, 0x00fafaf6, 0x00fefef7, 0x00fcfef8, 0x00fdfefa, 0x00fffefe,
- 0x00f5fff2, 0x00f7fff5, 0x00fbfefb, 0x00fefdf9, 0x00fffffb, 0x00fbfcf5, 0x00fdfbf7, 0x00fefffa, 0x00f7fdf3, 0x00f4fdf1, 0x00fafcf5, 0x00fdfcf6, 0x00fcfef9, 0x00fdfef6, 0x00fffffa, 0x00fefffb,
- 0x00f5fcf0, 0x00f7fcf3, 0x00fcfdf9, 0x00fbfcfb, 0x00f8fafb, 0x00f9fdfe, 0x00fcfeff, 0x00fdfdff, 0x00f3faf4, 0x00f5fbf5, 0x00f9fdfa, 0x00fcfefd, 0x00fdfdfc, 0x00fefdfd, 0x00fffdff, 0x00ffffff,
- 0x00f7fcf7, 0x00f9fbf8, 0x00fdfcfb, 0x00fdfdfc, 0x00fcfcfc, 0x00fdfcfd, 0x00fffeff, 0x00ffffff, 0x00f9fef3, 0x00f9fdf3, 0x00fcfef6, 0x00fefefa, 0x00fdfcfc, 0x00fefcff, 0x00fcfaff, 0x00fdfbff,
- 0x00b8b3a6, 0x003b291f, 0x003f2621, 0x00482b26, 0x0054332c, 0x005f3b33, 0x006a433b, 0x006e463d, 0x006e473d, 0x006a443b, 0x00643a31, 0x00633227, 0x003f2b32, 0x002a2f4b, 0x00344c79, 0x00214a83,
- 0x00104383, 0x0019498e, 0x0022519e, 0x00224fa0, 0x001f4da5, 0x001a579b, 0x001e5ca5, 0x002953ba, 0x003a50ba, 0x004e65ae, 0x005d78ae, 0x005678ad, 0x003a52a7, 0x0020347c, 0x000a1c3d, 0x00081c0f,
- 0x00171f08, 0x00111805, 0x0033372d, 0x008a8b8a, 0x00c1c1cd, 0x00b1b2c3, 0x00898ba4, 0x005c617f, 0x00344163, 0x005a6788, 0x00a99ba3, 0x00d79666, 0x00e9aa79, 0x00eaae81, 0x00f8c7a5, 0x00f9d8c5,
- 0x00f8ebea, 0x00f3eef9, 0x00e6eefc, 0x00e3eefe, 0x00e5f0ff, 0x00ecedfe, 0x00e9ebfb, 0x00e4e4f4, 0x00d6d8e6, 0x00d1d0e3, 0x00c8cad9, 0x00cac8de, 0x00cbcce0, 0x00cfcde4, 0x00d5d4eb, 0x00d9d7ef,
- 0x00e0cef8, 0x00d5d8f3, 0x00c6d2e4, 0x00cad4db, 0x00d2b9c8, 0x00b99fb6, 0x00ab9cb4, 0x00b9bfd3, 0x00bec5d3, 0x00bdb2c1, 0x00cbbecd, 0x00ccc4d6, 0x00d5c4c3, 0x00e1c5b9, 0x00f7dfcc, 0x00fdecd2,
- 0x00d2ceb8, 0x00606454, 0x00060b04, 0x00080d0a, 0x00121412, 0x00171814, 0x001e1e1a, 0x0023241f, 0x00272623, 0x002a2924, 0x002f2d27, 0x002e2d26, 0x00282820, 0x001e1f16, 0x0016170d, 0x0015160b,
- 0x000f1706, 0x00101607, 0x0014160a, 0x0019170e, 0x001b1811, 0x001a1711, 0x0014120c, 0x000f0e08, 0x000d1209, 0x000e140d, 0x00121813, 0x001a1f1b, 0x00202521, 0x00222623, 0x001c201d, 0x00181a17,
- 0x000b110a, 0x00050903, 0x00050702, 0x00030500, 0x00040803, 0x00646663, 0x00fefdfc, 0x00fcfcfd, 0x00fefdfe, 0x00fdfdfd, 0x00fefdfe, 0x00d0d0d0, 0x007d7c7d, 0x005c5d5c, 0x00101110, 0x00050605,
- 0x000a0d03, 0x00262a20, 0x0063655e, 0x004c4d47, 0x0014140e, 0x000e0c04, 0x0019160a, 0x00373328, 0x006e6f5c, 0x008b8976, 0x00898674, 0x009d9a8b, 0x008f8a7f, 0x00514b46, 0x0026211e, 0x00222322,
- 0x00414743, 0x006a6b65, 0x00797168, 0x006e594e, 0x00623b2f, 0x00442015, 0x00280701, 0x00320d03, 0x00583222, 0x00845f4f, 0x00856451, 0x00624635, 0x00332418, 0x001c150f, 0x0012100d, 0x00101313,
- 0x000a0b0a, 0x00050605, 0x00010101, 0x00040303, 0x00070606, 0x00070706, 0x00070909, 0x00070909, 0x00080908, 0x00090a0a, 0x0009090b, 0x000d0d0d, 0x00141414, 0x001a1d1a, 0x00181d1a, 0x00141b18,
- 0x0007110e, 0x00040a08, 0x00000200, 0x00010100, 0x000a0707, 0x000f0d0b, 0x00131310, 0x00121613, 0x000f1818, 0x000c1615, 0x00050f10, 0x00030d0e, 0x0018201d, 0x00191f1a, 0x005e625d, 0x00ced1cb,
- 0x00eaece3, 0x00eaebe3, 0x00e7e7e2, 0x00e7e7e5, 0x00e2e3e3, 0x00dadadc, 0x00d6d6d9, 0x00c3c2c5, 0x00a8a9a9, 0x00aaacaa, 0x00d9d9db, 0x00e6e4e7, 0x00ebebe4, 0x00eff0e5, 0x00efefe4, 0x00e9e9df,
- 0x00dad9db, 0x00dad8e0, 0x00aaa6ab, 0x008e8c8b, 0x00a7a79c, 0x00a1988b, 0x009c9184, 0x00969586, 0x008a9e86, 0x008da18b, 0x0092a391, 0x008d9588, 0x007d7e73, 0x0085867a, 0x00575a4e, 0x00151c10,
- 0x000d0f0f, 0x00101614, 0x00131614, 0x00141814, 0x000d110a, 0x00121008, 0x0040362c, 0x00746455, 0x0097876c, 0x009f8b6f, 0x00867963, 0x00534d42, 0x00382e1f, 0x00493e30, 0x00433b30, 0x0037352f,
- 0x002e3e42, 0x002d4049, 0x00344654, 0x00313f4c, 0x0048494f, 0x006b6741, 0x0069622d, 0x0058542d, 0x003d3d34, 0x00202221, 0x00666a6d, 0x00d9e3e2, 0x00f9fefd, 0x00fdfefd, 0x00fefdfe, 0x00fffbff,
- 0x00d7d8db, 0x008d8e8e, 0x00868783, 0x00a2a39c, 0x006a6b63, 0x0033352c, 0x0034342e, 0x003c3c37, 0x003a3b3a, 0x004e4d4f, 0x00726f70, 0x0077746d, 0x006e6e68, 0x00656a66, 0x005c6263, 0x00424949,
- 0x00121a1b, 0x00020809, 0x00010406, 0x00020506, 0x00000401, 0x00040702, 0x00010200, 0x00241c12, 0x00957a5f, 0x00ba9571, 0x00a77a4d, 0x00bd8a57, 0x00dea973, 0x00eab881, 0x00f3c08a, 0x00f1bf88,
- 0x00eabc8b, 0x00f1be87, 0x00edb57e, 0x00ebb27b, 0x00daa877, 0x00ba9368, 0x00a9865d, 0x00b99671, 0x00d4aa7c, 0x00d8a673, 0x00d6a16c, 0x00deab73, 0x00d39666, 0x00dc9872, 0x00f2b094, 0x00ce907d,
- 0x006c4839, 0x0026110e, 0x00060000, 0x00050204, 0x0002010a, 0x000d0105, 0x000a0000, 0x00090200, 0x000a0703, 0x001b1b1e, 0x00282b31, 0x000c1322, 0x0016213a, 0x00344360, 0x00546483, 0x004f6182,
- 0x00333d47, 0x003a3d49, 0x003f3d4a, 0x0047414b, 0x004b3e47, 0x004b3e42, 0x00483c41, 0x004c4043, 0x00413f3d, 0x003e3d3e, 0x00414f56, 0x00577d95, 0x006986dd, 0x005064bb, 0x00626ea8, 0x0084878a,
- 0x008f7a43, 0x00946b42, 0x00956242, 0x00935e44, 0x007e4f20, 0x00743f14, 0x00632f0b, 0x00482009, 0x0036241d, 0x00393334, 0x003b3d45, 0x003f4553, 0x0036455b, 0x002b4363, 0x001f3f65, 0x00173f6f,
- 0x001b314a, 0x001f3148, 0x001c283a, 0x001e2631, 0x007f8482, 0x00edf1ee, 0x00fefffc, 0x00fefffb, 0x00fffffd, 0x00ffffff, 0x00fbfeff, 0x00f3fdfd, 0x0097aac1, 0x00253b6a, 0x0026417f, 0x001f418a,
- 0x000f3b84, 0x00093682, 0x00164594, 0x002254a3, 0x001c50a4, 0x0017468f, 0x000b3a74, 0x00083566, 0x0010377b, 0x001f4086, 0x00315084, 0x00324f65, 0x0022384d, 0x00212e59, 0x001c2352, 0x001d2145,
- 0x00140e1e, 0x000d100c, 0x000a1502, 0x000b1b02, 0x000d130b, 0x001a1614, 0x0020150d, 0x0074644d, 0x007a7358, 0x00777066, 0x004a4b5a, 0x003b497f, 0x002f67ab, 0x00366db7, 0x00335ba3, 0x004c5ba0,
- 0x00354f94, 0x0014478f, 0x0019589a, 0x00204d81, 0x006b5b6b, 0x009f897f, 0x008e755d, 0x00683f2f, 0x005d1d0e, 0x00762d1b, 0x00904330, 0x0095503b, 0x00785143, 0x00695a5e, 0x00565d6f, 0x00334869,
- 0x0012335d, 0x001f3250, 0x002b3142, 0x00332c2d, 0x00544439, 0x008f8075, 0x009f9082, 0x00897a6b, 0x00655240, 0x0079614c, 0x00535264, 0x002250ae, 0x001b3374, 0x00111236, 0x00200e1b, 0x004b2a1c,
- 0x008b6446, 0x00967864, 0x009a8b83, 0x008d8b95, 0x00415a72, 0x0037364f, 0x0035344a, 0x00363e52, 0x00273440, 0x002d2e31, 0x004f433b, 0x00775747, 0x00724d32, 0x005a4326, 0x00372914, 0x00131803,
- 0x00161209, 0x00121003, 0x001d1c05, 0x002f2b0f, 0x00776f41, 0x0096895b, 0x008b7a4a, 0x00796334, 0x00816339, 0x00906f4b, 0x008b7043, 0x008b7b3e, 0x008d7e3e, 0x008b7d3b, 0x00887e3b, 0x00867c39,
- 0x007b7933, 0x007e7837, 0x00797533, 0x007c783e, 0x007d7a41, 0x0072762c, 0x006e7a26, 0x006a7727, 0x0060723d, 0x0055705f, 0x003c6277, 0x00285994, 0x00245eb6, 0x001f54aa, 0x002754a3, 0x003f67aa,
- 0x004a784c, 0x0049714a, 0x00486945, 0x004c6846, 0x0049622a, 0x004b6219, 0x004f6418, 0x004e641a, 0x004f5d37, 0x00929b8b, 0x00f4f7f8, 0x00fcfdfd, 0x00fcfbf8, 0x00fefefa, 0x00fffdf8, 0x00f3eee8,
- 0x001e1306, 0x0025170a, 0x002e1c0f, 0x00341e0f, 0x00311a0d, 0x00362112, 0x002b190a, 0x00483d30, 0x00c0bdb5, 0x00f3f6f5, 0x00fafefe, 0x00f6fbfe, 0x00f7fdfd, 0x00f5f7f8, 0x00777a7c, 0x00101010,
- 0x000a0d13, 0x000f1419, 0x0013171d, 0x0013181d, 0x001b1e25, 0x0022262d, 0x002b2f36, 0x00353940, 0x003f444a, 0x004b5056, 0x00606368, 0x00767779, 0x0088898b, 0x0098999b, 0x00aeafb0, 0x00c2c2c4,
- 0x00d0ced1, 0x00dedde0, 0x00e6e6e7, 0x00ebeced, 0x00f6f5f8, 0x00f3f8f6, 0x00f4fcf8, 0x00f9feff, 0x00f3fdfd, 0x00f2fefc, 0x00f4fffd, 0x00f4fffb, 0x00f9fff7, 0x00fafcf1, 0x00fdfdf0, 0x00fcfded,
- 0x00fcfcfd, 0x00fafaf9, 0x00f9f9f8, 0x00fcfcfc, 0x00ffffff, 0x00fcfdfe, 0x00fbfdfd, 0x00fbfdfb, 0x00fdfdfb, 0x00fcfcfd, 0x00fefefe, 0x00feffff, 0x00fafdfd, 0x00fbfdfc, 0x00fffefc, 0x00fffefd,
- 0x00f9fbfa, 0x00fbfcfb, 0x00f8f9f8, 0x00f8f9f8, 0x00f6f6f6, 0x00f5f5f6, 0x00ececed, 0x00e4e2e2, 0x00dedfde, 0x00d7d9d8, 0x00cacacb, 0x00bebcbe, 0x00aaabab, 0x00959796, 0x006f6f6f, 0x00515051,
- 0x003b3c3c, 0x002d2e2d, 0x001e1e1f, 0x00151516, 0x000a0a09, 0x00080807, 0x00060507, 0x00070608, 0x00090906, 0x00060706, 0x000b0806, 0x000e0903, 0x000d0a07, 0x00090a09, 0x00090a0c, 0x00080a0c,
- 0x00020806, 0x00090b0b, 0x000e0907, 0x0020160b, 0x003b2c1f, 0x00352315, 0x00312011, 0x00332218, 0x001f160e, 0x00140d09, 0x00140d0a, 0x00160f0a, 0x00180a03, 0x001d0d00, 0x00271102, 0x002c1400,
- 0x003a1400, 0x00502f15, 0x006e5035, 0x006e563a, 0x00a09277, 0x00d1c9b1, 0x00d2ccbb, 0x00949188, 0x00242421, 0x00030103, 0x000a080a, 0x000a0a08, 0x000b0d08, 0x000d0d0a, 0x000d0d0b, 0x000c0d0a,
- 0x000e0c0c, 0x000f0e0c, 0x000f0e0d, 0x000f0f0d, 0x0010110c, 0x0010120d, 0x0011130e, 0x0012150e, 0x00131410, 0x00141611, 0x00161511, 0x00151510, 0x00151711, 0x00141610, 0x00161610, 0x00171811,
- 0x00131814, 0x00131613, 0x00141513, 0x00131512, 0x00131613, 0x00111510, 0x000d120e, 0x000a0f0b, 0x00030a03, 0x00040906, 0x00060806, 0x00080707, 0x00090806, 0x000a0b08, 0x00090a06, 0x000b0c06,
- 0x00050d04, 0x00090d08, 0x000e110c, 0x00101511, 0x00121916, 0x00151f18, 0x00151e17, 0x00181d14, 0x001b190f, 0x001e1912, 0x00211a15, 0x001c1518, 0x001f1f2a, 0x00303646, 0x00424a60, 0x0057637e,
- 0x00434ea3, 0x00313e8e, 0x00253480, 0x00213276, 0x00162c5e, 0x00122848, 0x00112333, 0x00101e1c, 0x00161b02, 0x00181a00, 0x00171809, 0x00131719, 0x00141714, 0x00111310, 0x000d100c, 0x000c0a09,
- 0x00080d09, 0x000b0d08, 0x000e0d08, 0x00100d09, 0x00100e08, 0x000d0e06, 0x000e0e07, 0x000a0a04, 0x000f0e0a, 0x00090a04, 0x00282827, 0x00959596, 0x00fefefd, 0x00fffffe, 0x00fdfefe, 0x00fcfefc,
- 0x00f9f9fa, 0x009b9c9c, 0x00030303, 0x00010101, 0x00070707, 0x00080807, 0x000e0e0d, 0x000f0f0e, 0x000e0e0e, 0x00121112, 0x00171616, 0x00191818, 0x001e1d1d, 0x00212220, 0x00262725, 0x00282a28,
- 0x002c2d2a, 0x002e2f2c, 0x00353533, 0x003b3b39, 0x003f413f, 0x00454648, 0x004f4c53, 0x0057545b, 0x0065636a, 0x006c6970, 0x0077757b, 0x00828085, 0x008b898d, 0x00949396, 0x009e9c9f, 0x00a2a1a3,
- 0x00a3ada9, 0x00a8b0ae, 0x00b2b8b7, 0x00bcbebf, 0x00c5c4c5, 0x00cdcbca, 0x00d3d2d0, 0x00d9d8d4, 0x00dee0da, 0x00e2e3df, 0x00e3e5e1, 0x00e6eae5, 0x00e9ede7, 0x00ecedea, 0x00edeeec, 0x00f0f0f0,
- 0x00eef3ee, 0x00f3f8f1, 0x00f4f9f4, 0x00f7fbf5, 0x00fafcf8, 0x00fcfef7, 0x00fdfef9, 0x00fcfffb, 0x00fafef8, 0x00fafff8, 0x00f9fef7, 0x00f9fcf7, 0x00fbfcfa, 0x00fbfef9, 0x00fbfef8, 0x00fdfef9,
- 0x00fafbf7, 0x00fcfcf7, 0x00fefdfa, 0x00fffefc, 0x00fefdfd, 0x00fdfefd, 0x00fefffe, 0x00fdfefb, 0x00fbfffc, 0x00fbfffb, 0x00fbfefd, 0x00fcfefe, 0x00fefefd, 0x00fdfefe, 0x00fdfdff, 0x00fcfcfe,
- 0x00fbfcfc, 0x00fbfdfc, 0x00fdfcfb, 0x00fefcfb, 0x00fefdfd, 0x00fcfefe, 0x00fbfeff, 0x00fbfeff, 0x00f9fdfd, 0x00fbfefe, 0x00f8fcfb, 0x00fbfffe, 0x00fafffd, 0x00fafffd, 0x00fafefd, 0x00fafffe,
- 0x00bbb1a2, 0x00422b1b, 0x00492a1b, 0x00512e21, 0x005e3427, 0x00673a2d, 0x00714236, 0x00754639, 0x00774637, 0x006e4130, 0x00663926, 0x0067331a, 0x004b2d25, 0x00362c33, 0x0043495d, 0x00475876,
- 0x00213665, 0x00162e67, 0x001a397b, 0x00193f8a, 0x0017449e, 0x00194c9d, 0x001c4e9d, 0x001e4aa2, 0x002b49a6, 0x003853a4, 0x003a579d, 0x002f4e8c, 0x00172c61, 0x00061233, 0x0000050d, 0x000c0b01,
- 0x0016160b, 0x0012120a, 0x002c2b2b, 0x007e7c85, 0x00c8c5dc, 0x00b1b0ce, 0x00595a7f, 0x00181d46, 0x000e1340, 0x0043577f, 0x00afa5b7, 0x00cf8b69, 0x00d67c4d, 0x00d9723b, 0x00eb7b45, 0x00f28858,
- 0x00f6b69c, 0x00f4cbc6, 0x00ecdce8, 0x00d9e2fc, 0x00c8e5ff, 0x00dae3f8, 0x00e4e2f4, 0x00e2e0f5, 0x00e0e0f3, 0x00dddff3, 0x00dddaf0, 0x00d3d3e8, 0x00d2cfe5, 0x00c9c9e1, 0x00c6c4dd, 0x00c5c4de,
- 0x00dac1f3, 0x00cfd0f2, 0x00c6d8e9, 0x00c4dae3, 0x00decde0, 0x00cfb5d0, 0x00b5a0be, 0x00adaec5, 0x00bfc2d2, 0x00cbc2cf, 0x00cec2ce, 0x00c8c3d5, 0x00d4c1c2, 0x00dac2b6, 0x00e9cdb6, 0x00edd1b5,
- 0x00eadcc5, 0x0096917f, 0x0018160d, 0x000a0d07, 0x0011110e, 0x00191715, 0x00221c1a, 0x0029231f, 0x002b2823, 0x002f2d27, 0x0035342c, 0x0034342a, 0x00302e24, 0x00262518, 0x001f1d0f, 0x001e1c0b,
- 0x00191c09, 0x001a1c0a, 0x001e1d0d, 0x00221c10, 0x00281f16, 0x00271e16, 0x00241d15, 0x001e1911, 0x0014140a, 0x0014160b, 0x00181a11, 0x0021221e, 0x00222422, 0x00232622, 0x001d221d, 0x001a1d1b,
- 0x00161816, 0x000d100d, 0x000a0c09, 0x00050803, 0x00060a06, 0x00646764, 0x00fefefd, 0x00fdfdfd, 0x00ffffff, 0x00fefefe, 0x00fefefe, 0x00d0d0d0, 0x007d7d7d, 0x005e5e5e, 0x00101010, 0x00020202,
- 0x00090704, 0x0023211a, 0x0066645d, 0x0048453f, 0x0017120d, 0x0016100a, 0x002f2a1f, 0x00474233, 0x00605b44, 0x00655f45, 0x0059533b, 0x00504431, 0x005a4b40, 0x00514640, 0x002a2624, 0x001e2121,
- 0x001f2827, 0x00313835, 0x003a3835, 0x0043332f, 0x00603a36, 0x004e2421, 0x002c0100, 0x00350b02, 0x00613423, 0x008f6351, 0x009f7762, 0x008f6c58, 0x00654d3c, 0x003c2d1e, 0x001d1608, 0x000f0e01,
- 0x000b0b0c, 0x00060707, 0x00040504, 0x00060705, 0x00040403, 0x00070707, 0x00070808, 0x00070909, 0x000a0b0b, 0x000a0a09, 0x000c0b0d, 0x000f0e0e, 0x00151415, 0x00191b19, 0x001a1e1e, 0x00161b1b,
- 0x000c1212, 0x00070c0b, 0x00050706, 0x00070908, 0x00110f10, 0x00141513, 0x00141712, 0x00131913, 0x000f1818, 0x000c1616, 0x000a1316, 0x000b1317, 0x00171c1f, 0x001c1f20, 0x00818383, 0x00e2e3e1,
- 0x00edf0e5, 0x00ebeee5, 0x00e8eae6, 0x00e1e2e1, 0x00dcdcdf, 0x00d8d8db, 0x00c9cacb, 0x00c4c6c6, 0x00929392, 0x006b6d6b, 0x00b4b4b4, 0x00eae5ec, 0x00f3f0ed, 0x00eceae2, 0x00eeebdf, 0x00e9e7dd,
- 0x00e0d9df, 0x00dcd6df, 0x00b6b1b8, 0x00908f8e, 0x009a9b94, 0x00979084, 0x00989083, 0x00939481, 0x008a967f, 0x0088947d, 0x008a917e, 0x00808273, 0x00716c60, 0x00808071, 0x006b7060, 0x00273522,
- 0x000f0e10, 0x000f1110, 0x00151616, 0x00131412, 0x000c0d06, 0x001c170e, 0x005d5144, 0x00907f6b, 0x00aa8f71, 0x00a38863, 0x0087745d, 0x004c4e53, 0x00353037, 0x004a4553, 0x00504e64, 0x00505272,
- 0x00475984, 0x003e537c, 0x002e4066, 0x001f2e4d, 0x003b4151, 0x005a5a4d, 0x00484431, 0x003a3635, 0x00383a56, 0x00202642, 0x00696f89, 0x00d9e1eb, 0x00fafefe, 0x00fcfdf9, 0x00fefdf7, 0x00fdfaf8,
- 0x00dad6d7, 0x00908e8d, 0x00878784, 0x00a1a39c, 0x00676a62, 0x0033352e, 0x002e312d, 0x00393c3a, 0x003e3f41, 0x00424447, 0x00615d5f, 0x00807874, 0x00888380, 0x007d7e7c, 0x007b7d7f, 0x00656a6d,
- 0x00333d41, 0x000f181a, 0x00090e11, 0x00060a0b, 0x0007050b, 0x000b0a07, 0x00060000, 0x002d1f13, 0x00a9886b, 0x00cba17a, 0x00ba8655, 0x00cb955e, 0x00e2ab74, 0x00e6b680, 0x00f0c190, 0x00eec391,
- 0x00f0bc8f, 0x00f1b985, 0x00edb27e, 0x00e8af77, 0x00dead7b, 0x00d4ac80, 0x00cfab84, 0x00d1ae8c, 0x00dbad83, 0x00d7a777, 0x00d8a775, 0x00d4a873, 0x00e9ac7f, 0x00e8a57e, 0x00d69373, 0x009c6246,
- 0x00432714, 0x00180f01, 0x000f0d07, 0x000a0306, 0x000a0109, 0x00080206, 0x00010000, 0x00030000, 0x00070503, 0x001f1e1d, 0x00303031, 0x0013141b, 0x00121521, 0x002f3443, 0x00505668, 0x00596071,
- 0x0047474e, 0x00484447, 0x004e4746, 0x004f453f, 0x00524338, 0x0053433a, 0x004d413d, 0x004a3f3f, 0x003e3c49, 0x00404554, 0x005a6e90, 0x00578dca, 0x004a76da, 0x003053b5, 0x00374e9b, 0x00626d8c,
- 0x008b7659, 0x00937146, 0x00996d42, 0x00915e3b, 0x00754331, 0x006c3c1f, 0x005e361f, 0x00513c33, 0x0049576c, 0x00537092, 0x006284b2, 0x005981b2, 0x004d72a5, 0x00365c90, 0x001d4578, 0x0010396f,
- 0x001a2e4a, 0x0012263c, 0x00122030, 0x00212a32, 0x008a928f, 0x00eff3f0, 0x00fefefb, 0x00fffffa, 0x00ffffff, 0x00fdfffd, 0x00f9feff, 0x00f2ffff, 0x008899b9, 0x001d3568, 0x00203a7e, 0x00133581,
- 0x000c3080, 0x000e347b, 0x00153f83, 0x001e4788, 0x00194383, 0x00193673, 0x0013315f, 0x0014354b, 0x001c2c5f, 0x00242957, 0x00363451, 0x004e4a3b, 0x005e5553, 0x00352e47, 0x00201c43, 0x00121633,
- 0x0014111b, 0x000e1208, 0x000e1408, 0x000c140d, 0x000c0919, 0x0014090b, 0x00675645, 0x00776238, 0x00907d63, 0x008b7980, 0x00393a5f, 0x00244b8b, 0x00287eca, 0x001e6dbe, 0x003067ba, 0x003e51a2,
- 0x00263a87, 0x0007367c, 0x000d457e, 0x001c476d, 0x008d5d62, 0x00957670, 0x0070574a, 0x004b2f24, 0x00461c15, 0x006a3c33, 0x008e6453, 0x00805942, 0x005f4936, 0x00463933, 0x00313032, 0x00212535,
- 0x001d283f, 0x001e2530, 0x00232327, 0x001d1610, 0x00241e10, 0x002d2920, 0x002d2922, 0x00312b27, 0x0049372d, 0x005c4635, 0x004d4750, 0x00345692, 0x003d4b75, 0x002e2a42, 0x003c282e, 0x00795549,
- 0x0092644a, 0x00916a50, 0x008c6b56, 0x008f7a69, 0x0093897c, 0x00645c6c, 0x002e304b, 0x00303a56, 0x00485c6e, 0x005d5e64, 0x0082736c, 0x00a37765, 0x009c674d, 0x008b6348, 0x00432d17, 0x001a1504,
- 0x00130c14, 0x00150d0a, 0x001f180a, 0x00231804, 0x0066572d, 0x009a8659, 0x0091794c, 0x007f6136, 0x007e5c36, 0x0085603f, 0x008e6441, 0x00a67b44, 0x00a8824a, 0x00a67f43, 0x00a38343, 0x009d813d,
- 0x009b7d3e, 0x00967c3f, 0x0093793d, 0x009a7f49, 0x00997f4f, 0x008e7d3f, 0x008c7c38, 0x008c792f, 0x00897a39, 0x007c7549, 0x00555d4c, 0x001c2e3f, 0x001e4274, 0x00214481, 0x001d437d, 0x00264980,
- 0x00396b82, 0x003b6680, 0x00456a83, 0x004e6b7f, 0x00506550, 0x004f602d, 0x0057631f, 0x00555e12, 0x0059592f, 0x00aaa994, 0x00fcf9f7, 0x00fdfdfe, 0x00fdfcfb, 0x00fffcf9, 0x00fffef6, 0x00e6dfd6,
- 0x002b1307, 0x00301806, 0x003a2007, 0x003e1f05, 0x003f1e01, 0x003e1d05, 0x00351703, 0x005d4732, 0x00d7cbc2, 0x00fbf7f4, 0x00fefefe, 0x00f8fdff, 0x00f6fefd, 0x00e9eeef, 0x0064686c, 0x000d0e11,
- 0x00111220, 0x00111421, 0x00101420, 0x000e131e, 0x0010141f, 0x0010131f, 0x000d101c, 0x000c0f1c, 0x000d0f1a, 0x0011141f, 0x00181a22, 0x001f1e24, 0x0027252e, 0x002b2a33, 0x0036353e, 0x0042424a,
- 0x004a4c53, 0x005a5860, 0x006f6d75, 0x00808087, 0x009e9ba4, 0x00a9adb4, 0x00bcc7ce, 0x00cedde5, 0x00deedf5, 0x00e3f5f8, 0x00e9fdff, 0x00eafafa, 0x00f2f8f6, 0x00f3f6f3, 0x00f6f7f4, 0x00f8fbf3,
- 0x00fffeff, 0x00fffeff, 0x00fefffd, 0x00fcfdfa, 0x00f9faf8, 0x00f9f9f9, 0x00fdfdfd, 0x00fdfdfd, 0x00fcfcfd, 0x00fcfdfe, 0x00fdfcfd, 0x00fffffe, 0x00fdfdfd, 0x00fdfdfe, 0x00fdfdfc, 0x00fdfefd,
- 0x00fdfcfe, 0x00fdfdfd, 0x00fcfcfc, 0x00fcfefd, 0x00fdfdfb, 0x00fffffe, 0x00fefdfe, 0x00fffdfe, 0x00fffdfe, 0x00fcfefd, 0x00fafbfa, 0x00f5f5f4, 0x00efeeee, 0x00e9e8e8, 0x00dddbdb, 0x00cfcece,
- 0x00bdbcc0, 0x00aeaeae, 0x009e9e9e, 0x00929292, 0x007b7b7b, 0x00666666, 0x004c4c4d, 0x00363736, 0x00242425, 0x001b1b1c, 0x00171414, 0x0014120f, 0x000a090b, 0x0006080b, 0x0006080d, 0x00020609,
- 0x00020306, 0x00040100, 0x000a0000, 0x00241409, 0x004b3320, 0x004c2f1b, 0x00492d1a, 0x00432c18, 0x002c1d13, 0x00170d06, 0x00110702, 0x00130c04, 0x0022150c, 0x0025170b, 0x00271204, 0x00311a09,
- 0x00451f14, 0x00422210, 0x00472c1a, 0x003a2610, 0x00776c55, 0x00b7b199, 0x00d4cfbc, 0x00d2d1c1, 0x007f7d76, 0x00292323, 0x00040303, 0x00040301, 0x00040603, 0x00050402, 0x00050603, 0x00070705,
- 0x00080805, 0x00070905, 0x00070907, 0x00080907, 0x000a0a07, 0x000c0c08, 0x000e0d0a, 0x000f100b, 0x0010120d, 0x000f110c, 0x000f100a, 0x000f0f09, 0x000f100b, 0x0010110c, 0x0012120c, 0x0012130b,
- 0x000f110f, 0x000f110f, 0x00101210, 0x000e110e, 0x000f130e, 0x000d120d, 0x000d100c, 0x000c0d09, 0x00060a07, 0x00050804, 0x00060906, 0x00060b04, 0x00070b0a, 0x00070c09, 0x00070d0b, 0x00090d09,
- 0x00090c0a, 0x000d0f0d, 0x0012120f, 0x00151512, 0x00151714, 0x00171b17, 0x00111511, 0x00151913, 0x001d1c15, 0x00191511, 0x0018131a, 0x0024202b, 0x00595d77, 0x007d89ab, 0x007183aa, 0x005f74a5,
- 0x004567d5, 0x003156c1, 0x00234bb4, 0x00234eb1, 0x001c499e, 0x0018448a, 0x00123770, 0x000f2e57, 0x0015293f, 0x00132431, 0x000f1b24, 0x00121615, 0x00131415, 0x00131414, 0x000f1110, 0x000e0f0d,
- 0x000d0c09, 0x000d0b09, 0x000d0b07, 0x00100c09, 0x000f0d06, 0x000b0d05, 0x000e0e06, 0x000a0903, 0x000e0e0a, 0x00090904, 0x00292827, 0x00949495, 0x00fffffe, 0x00ffffff, 0x00fdfeff, 0x00fdfefc,
- 0x00f9faf9, 0x009a9a9a, 0x00020202, 0x00030303, 0x00030303, 0x00010101, 0x00020202, 0x00010101, 0x00000002, 0x00000002, 0x00000002, 0x00010002, 0x00020102, 0x00010001, 0x00010102, 0x00000101,
- 0x00000002, 0x00000001, 0x00010102, 0x00020102, 0x00010101, 0x00010104, 0x00040209, 0x0007060c, 0x000c0b11, 0x000d0d12, 0x000f0f15, 0x00111017, 0x0015131a, 0x001c1920, 0x00201d25, 0x00211f26,
- 0x00232525, 0x00262928, 0x002f2e2e, 0x00373233, 0x003e3739, 0x00443c40, 0x00494246, 0x004c494d, 0x00525554, 0x0054575a, 0x00575d5d, 0x005e6564, 0x00696e6e, 0x00717275, 0x007b7c7c, 0x00808383,
- 0x008e9193, 0x00979a9b, 0x00a4a6a8, 0x00aaacae, 0x00b7b9b8, 0x00bfc2c1, 0x00c6c9c8, 0x00cbcdc8, 0x00d3d5d4, 0x00d2d7d4, 0x00d9dddc, 0x00dde0dc, 0x00dfe1e0, 0x00e1e5e3, 0x00e3e6e6, 0x00e7e8e5,
- 0x00eeefef, 0x00eceeec, 0x00eef0ee, 0x00f1f2f0, 0x00f3f2ef, 0x00f6f4f1, 0x00f8f7f4, 0x00f9faf6, 0x00f7f7f5, 0x00f8f8f6, 0x00fafaf9, 0x00fcfcfa, 0x00fdfdfb, 0x00fdfefc, 0x00fcfefe, 0x00fbfdfe,
- 0x00fdfbfd, 0x00fcfcfd, 0x00fbfcfc, 0x00fcfcfb, 0x00fdfdfc, 0x00fdfdfd, 0x00fcfcfe, 0x00fdfdff, 0x00fcfefe, 0x00fbfdfc, 0x00fafefc, 0x00f9fefb, 0x00fdffff, 0x00fbfefc, 0x00fefffe, 0x00fefefe,
- 0x00beb3a0, 0x004c2f1c, 0x004f301b, 0x005b3323, 0x00683a2b, 0x00703d2e, 0x00784433, 0x007c4937, 0x007b4835, 0x00754331, 0x006f3f23, 0x006f3a1a, 0x004f2d1b, 0x003d2d28, 0x004c494d, 0x00686d7a,
- 0x0046536f, 0x001e305a, 0x00122a61, 0x0012327d, 0x000d388f, 0x000f3d9f, 0x001440a6, 0x001e44a0, 0x002d4e9b, 0x00345698, 0x00254a83, 0x00103260, 0x0001112d, 0x00010711, 0x000a0504, 0x00130700,
- 0x0016120e, 0x001a1717, 0x003d3a41, 0x00858292, 0x00c8c2e2, 0x00b7b5da, 0x00464772, 0x00080d3e, 0x0028396c, 0x005e76a8, 0x008692be, 0x00867c99, 0x009a6569, 0x00b76049, 0x00d36034, 0x00ef692e,
- 0x00eb723c, 0x00e68664, 0x00f0b19a, 0x00f1d4cb, 0x00e3dddb, 0x00dcdae4, 0x00d9d7ec, 0x00d8d6e8, 0x00dad7ee, 0x00dcdbf1, 0x00e1e0f8, 0x00e1dff6, 0x00e0dff6, 0x00dedbf6, 0x00dad8f1, 0x00d8d7f0,
- 0x00e2cbfb, 0x00cfd1f2, 0x00bed5e3, 0x00c0d8de, 0x00dad0e4, 0x00e1cae7, 0x00d2c2e1, 0x00babbd3, 0x00b1b6c6, 0x00c3bcc6, 0x00cdc1ce, 0x00c4becf, 0x00c2aeaf, 0x00b19583, 0x00ac8b73, 0x00c2a481,
- 0x00ddcdb0, 0x00aba391, 0x00262519, 0x0010110b, 0x0010110f, 0x001d1715, 0x00231f1a, 0x0025231b, 0x002d2823, 0x00333028, 0x0039372c, 0x003b3a2b, 0x00353224, 0x002e2b1c, 0x00262314, 0x00252313,
- 0x00232412, 0x00232311, 0x00262312, 0x002b2516, 0x00332a1c, 0x0030271b, 0x002c2518, 0x00251f12, 0x001b190c, 0x001a1a0d, 0x001e2016, 0x00262824, 0x00242726, 0x00232724, 0x001f2320, 0x001d201f,
- 0x001a1c1a, 0x00121310, 0x000f100c, 0x000a0d08, 0x000a0d09, 0x00676866, 0x00fefefd, 0x00fefcfc, 0x00fffffe, 0x00fcfcfc, 0x00fdfdfd, 0x00cfcfcf, 0x007b7b7b, 0x00606060, 0x00161616, 0x00070707,
- 0x000a0703, 0x00312d26, 0x006e6962, 0x00453e3a, 0x001e1612, 0x00342c26, 0x00484137, 0x005b5443, 0x00635e42, 0x00554e32, 0x00393213, 0x003b2c19, 0x00574839, 0x00665952, 0x003a3833, 0x00202524,
- 0x00162021, 0x001f2425, 0x002e2c2b, 0x004c3b39, 0x006b4945, 0x00613431, 0x0042120e, 0x0045160c, 0x00663322, 0x008c5c49, 0x009e735c, 0x0097725a, 0x006e553e, 0x00412e1a, 0x00221705, 0x00191503,
- 0x000c0c0c, 0x0008080a, 0x00040506, 0x00060707, 0x00020204, 0x00050607, 0x00090a09, 0x00080a0a, 0x000b0c0c, 0x000b0b0c, 0x000c0b0c, 0x000d0c0e, 0x000f0f0e, 0x00131514, 0x00161a17, 0x00151a18,
- 0x00131a19, 0x00141817, 0x00161917, 0x00191817, 0x00191918, 0x00171816, 0x00121a13, 0x000e1912, 0x000d1717, 0x000c1618, 0x000d1719, 0x00131b1d, 0x0015191c, 0x00323435, 0x00abaaab, 0x00ebe9e9,
- 0x00ecf1e6, 0x00ecf1e7, 0x00e5eae3, 0x00dcdfdc, 0x00d7d7d8, 0x00d3d3d4, 0x00c4c4c5, 0x00b1b3b2, 0x005f5f5a, 0x00252820, 0x006f706d, 0x00d7d4dd, 0x00f3f0ec, 0x00edece3, 0x00ebe9dd, 0x00ece6dd,
- 0x00e0dbdf, 0x00ddd6de, 0x00b3adb4, 0x0088888d, 0x0091928c, 0x00989288, 0x009a9483, 0x00959580, 0x0088917b, 0x00858a76, 0x007d7f6d, 0x00716b5e, 0x00605b4d, 0x00757463, 0x0079826e, 0x00445440,
- 0x00100f0d, 0x00060806, 0x000d0e0e, 0x00080a08, 0x000b0b04, 0x00241e13, 0x006e6351, 0x00a18f77, 0x00b29675, 0x00ae8d67, 0x008c7863, 0x00575c6f, 0x003e4156, 0x00484666, 0x004e537a, 0x0050598e,
- 0x00384a8c, 0x00324687, 0x00263a6f, 0x001c2d56, 0x00252b42, 0x00323139, 0x0039353d, 0x003d3a53, 0x00414277, 0x00303364, 0x0072789f, 0x00d8e2ee, 0x00f8fef9, 0x00fafff3, 0x00fefef0, 0x00fcfbf2,
- 0x00dcd5d8, 0x00918d8f, 0x00868785, 0x00a1a39e, 0x00636960, 0x002f322b, 0x00313531, 0x003a3c3b, 0x00404245, 0x00434548, 0x004c4a4a, 0x00746662, 0x008c8882, 0x008f8d8b, 0x00898e8f, 0x00848a8d,
- 0x005f696c, 0x0042494e, 0x003a3f43, 0x002c2d30, 0x000f0f14, 0x000d0707, 0x00140b05, 0x00513f30, 0x00af8b69, 0x00c09066, 0x00bd8753, 0x00d2975f, 0x00e2aa75, 0x00e3b17f, 0x00e8bd8e, 0x00eac295,
- 0x00eebc8d, 0x00ecb684, 0x00eab07a, 0x00e8ad78, 0x00e0ac79, 0x00daaf83, 0x00d5b188, 0x00d0b08a, 0x00d0a981, 0x00d1a579, 0x00d1a373, 0x00cfa66f, 0x00dba071, 0x00c68458, 0x00975731, 0x006d3913,
- 0x003a2906, 0x002f2810, 0x0021200f, 0x00150f0d, 0x0010010b, 0x00070009, 0x00000002, 0x00000203, 0x00040402, 0x00070607, 0x000f0d0e, 0x000a080b, 0x00121217, 0x0032343a, 0x00565962, 0x00535561,
- 0x004e4a50, 0x00564d4e, 0x00544a41, 0x00534534, 0x005a4831, 0x00584836, 0x0052463c, 0x004f4745, 0x004f5064, 0x005b5f7b, 0x005471a2, 0x003677c7, 0x00215bc2, 0x001b47ab, 0x0015348a, 0x00374479,
- 0x00726151, 0x0084613c, 0x00825829, 0x00784723, 0x0069372d, 0x00663926, 0x00503325, 0x00483e45, 0x0043648b, 0x005283bc, 0x005e98d7, 0x005394d8, 0x00689fdd, 0x006b9cda, 0x005788c3, 0x004272ab,
- 0x002e4860, 0x00243a4e, 0x00102231, 0x001e2731, 0x008c9291, 0x00f5f4f3, 0x00fdfdfb, 0x00fefffa, 0x00ffffff, 0x00ffffff, 0x00fbfeff, 0x00f6fdff, 0x00818fb3, 0x001d2f66, 0x00183176, 0x000e2c7a,
- 0x000c3079, 0x000f3074, 0x00133770, 0x00193a72, 0x00153366, 0x00102b69, 0x00102f5c, 0x00123749, 0x00172754, 0x00171843, 0x002b2439, 0x00584f31, 0x0055483f, 0x00342c49, 0x001c1a48, 0x00081230,
- 0x00121018, 0x00111412, 0x000b110b, 0x00050b13, 0x000d0621, 0x0039282e, 0x00846d52, 0x0082682b, 0x00987e57, 0x008a6c77, 0x00484064, 0x001c4171, 0x00186da5, 0x001d6bb0, 0x001f549e, 0x00333f8d,
- 0x00172c77, 0x00134c90, 0x00165d92, 0x002e5f83, 0x008b5c68, 0x006d4d4a, 0x005e473c, 0x0049322a, 0x00301413, 0x004f302a, 0x00735a4a, 0x0068523b, 0x0043351b, 0x0034281a, 0x00211b14, 0x00211a20,
- 0x00221e21, 0x00241e1b, 0x00251e14, 0x001e1307, 0x00131001, 0x0013150d, 0x00121511, 0x00151615, 0x00342b26, 0x00422f25, 0x0035302f, 0x0032465a, 0x00646e7b, 0x00635c64, 0x004b3b3a, 0x00705347,
- 0x00855d47, 0x0080553b, 0x00895e3f, 0x007b5330, 0x008a6541, 0x007e6f79, 0x00424164, 0x003b4b69, 0x00465a71, 0x0052545b, 0x008a776c, 0x00ad7d66, 0x00b17655, 0x008c5d44, 0x00442611, 0x00281d10,
- 0x00140c14, 0x00140b0c, 0x001e140c, 0x001d0e03, 0x0057421c, 0x00987e54, 0x00957a4c, 0x0088683c, 0x0086603e, 0x00845f40, 0x00875a34, 0x00aa7344, 0x00b27c48, 0x00aa7742, 0x00ac8043, 0x00aa7c3e,
- 0x00a77f3e, 0x00a37b40, 0x00a17c42, 0x00a78050, 0x00a27b4d, 0x009e7b4a, 0x009f7f44, 0x00a07c39, 0x00a17f36, 0x00997f43, 0x0072663f, 0x0038382f, 0x001d324b, 0x00162f55, 0x0008264e, 0x00102d54,
- 0x00194f91, 0x00204c93, 0x00355b9c, 0x004e69a4, 0x005c6d71, 0x005e6a48, 0x00626b2e, 0x0063641a, 0x00676030, 0x00c3bca4, 0x00fefbf5, 0x00fcfdfe, 0x00fdfdff, 0x00fffaf8, 0x00fffef5, 0x00d7cfc3,
- 0x003b2310, 0x00492b17, 0x00533213, 0x00593215, 0x005a3010, 0x005a3211, 0x00532e0f, 0x0085664d, 0x00ebddd0, 0x00fcf6f1, 0x00fafbf8, 0x00f7fdfd, 0x00f9fdfd, 0x00dde2e5, 0x0052575c, 0x000a1013,
- 0x00151627, 0x00151827, 0x00121625, 0x00121624, 0x00101422, 0x00161827, 0x00131625, 0x00111523, 0x00131424, 0x00141725, 0x00161724, 0x00191722, 0x0018161f, 0x0015131f, 0x0013111e, 0x0014151d,
- 0x0013131d, 0x00181621, 0x001c1924, 0x0024212e, 0x00342f38, 0x002f3242, 0x00505d6d, 0x00798a99, 0x0097afc0, 0x00b2cbdb, 0x00c9e3f3, 0x00c8dfed, 0x00c4cfda, 0x00bfc4cc, 0x00c1c1c6, 0x00cfcccb,
- 0x00e0e1dc, 0x00e7e8e7, 0x00eeeeee, 0x00f1f1f1, 0x00f9f8f9, 0x00fdfbfc, 0x00fbfbfa, 0x00fdfdfd, 0x00fefdff, 0x00ffffff, 0x00fefefe, 0x00fefeff, 0x00fefeff, 0x00feffff, 0x00fdfffc, 0x00fefffe,
- 0x00fdfefd, 0x00fdfdfd, 0x00fcfcfc, 0x00fefefe, 0x00fffefe, 0x00fdfdfc, 0x00fcfcfc, 0x00fefdff, 0x00fefbfd, 0x00fefefd, 0x00fffffe, 0x00fdfefc, 0x00fcfcfc, 0x00fefeff, 0x00fefeff, 0x00fefcfe,
- 0x00fafafa, 0x00f8f8f7, 0x00f6f6f5, 0x00f0f0f0, 0x00e8e8e8, 0x00dfdfe0, 0x00d4d4d4, 0x00c8c9c9, 0x00b9bab9, 0x00a8a8a9, 0x00939291, 0x00807e7e, 0x00666768, 0x0053585d, 0x003e464a, 0x002f393d,
- 0x001e1f1e, 0x001d1814, 0x001d100a, 0x00432f21, 0x00745741, 0x0076533a, 0x00603f26, 0x004e331c, 0x00311e12, 0x001f1209, 0x00140a07, 0x0019100b, 0x0020170e, 0x0023140a, 0x002b1708, 0x003d2614,
- 0x0046211d, 0x003a1a10, 0x00392011, 0x00392614, 0x0071664e, 0x00ada690, 0x00cdc7b3, 0x00e4e0d0, 0x00cac8bd, 0x00716c65, 0x000f0e0a, 0x00020300, 0x00000100, 0x00010001, 0x00010200, 0x00030100,
- 0x00030400, 0x00020301, 0x00020302, 0x00050604, 0x00040402, 0x00070702, 0x00090904, 0x000b0d07, 0x000a0d07, 0x000a0c06, 0x00080a03, 0x00070802, 0x00070803, 0x00090a05, 0x000a0b06, 0x000c0b06,
- 0x00060b07, 0x00070c08, 0x00080b06, 0x000a0c09, 0x00090c07, 0x00090c09, 0x00070b05, 0x00070904, 0x00070806, 0x00050703, 0x00030603, 0x00030a02, 0x00020903, 0x00030a06, 0x00050c06, 0x00060b09,
- 0x00070b07, 0x000c0e0b, 0x0010100d, 0x00121110, 0x00141311, 0x00151814, 0x000e130d, 0x00131710, 0x00181711, 0x00181214, 0x002a272f, 0x005b5867, 0x00a3abc9, 0x00abbce7, 0x00879bcd, 0x006177b4,
- 0x003f78d6, 0x00306acb, 0x00215cbe, 0x001c59bd, 0x001855b8, 0x001851b0, 0x001546a1, 0x00154095, 0x001d3a85, 0x00173079, 0x0014244f, 0x001b1f1e, 0x00151918, 0x00101312, 0x00121111, 0x00101013,
- 0x000d0b06, 0x000e0c09, 0x000f0b08, 0x00110b09, 0x000f0b08, 0x00090b03, 0x00090e05, 0x00070b06, 0x000b0c09, 0x00080906, 0x00282727, 0x00959595, 0x00fefefd, 0x00ffffff, 0x00fdfdfd, 0x00fffefd,
- 0x00f8f9f8, 0x009b9b9a, 0x00020201, 0x00030302, 0x00000001, 0x00040405, 0x00050506, 0x00030304, 0x00030404, 0x00000102, 0x00000001, 0x00030304, 0x00020103, 0x00020204, 0x00010002, 0x00010003,
- 0x00000303, 0x00010305, 0x00030206, 0x00040306, 0x00030305, 0x00020204, 0x00010303, 0x00010301, 0x00010202, 0x00010303, 0x00000203, 0x00000002, 0x00000004, 0x00010106, 0x00020208, 0x0002030a,
- 0x00020102, 0x00020202, 0x00050101, 0x00070001, 0x00080103, 0x00080004, 0x00090107, 0x0008040b, 0x0007080d, 0x0005080d, 0x00060a0e, 0x00070a10, 0x000c0e14, 0x000d0f14, 0x000e1114, 0x00101316,
- 0x00191a1d, 0x001a1b21, 0x001f2022, 0x00222228, 0x0024262a, 0x00282c2c, 0x002d2f2c, 0x00313231, 0x00363738, 0x003a3d40, 0x00414447, 0x004a4c4d, 0x00525553, 0x005d6062, 0x006a6e6e, 0x006f7471,
- 0x007d817e, 0x00828683, 0x008b8f8c, 0x00959792, 0x009e9c97, 0x00a5a19d, 0x00ada9a4, 0x00b3b0ac, 0x00c0bcbb, 0x00c6c2c1, 0x00cecaca, 0x00d3d1d0, 0x00d9d8d6, 0x00dededc, 0x00e2e2e2, 0x00e3e4e5,
- 0x00e6e7e6, 0x00e9eaea, 0x00edeeee, 0x00eff0f0, 0x00f2f0f2, 0x00f5f1f3, 0x00f8f4f4, 0x00f9f6f6, 0x00fcf9f5, 0x00fefcf8, 0x00fefef8, 0x00fbfcf6, 0x00fdfdf7, 0x00fcfbf6, 0x00fffcf8, 0x00fffcf9,
- 0x00c4b6a2, 0x0052321c, 0x005b321d, 0x00633725, 0x006f3d2e, 0x00754334, 0x007b4738, 0x007f4c3a, 0x007e4b3a, 0x00794532, 0x0079412b, 0x00713d1b, 0x00663a25, 0x00563728, 0x00523f38, 0x00655d5d,
- 0x006c6e81, 0x00363e5e, 0x00102153, 0x000e2767, 0x00092d82, 0x0008319b, 0x00133aa9, 0x0020459c, 0x002f4d84, 0x00224372, 0x000e2b4e, 0x00011431, 0x0000070e, 0x00010407, 0x000c0500, 0x00180500,
- 0x00141b20, 0x002b303a, 0x00616576, 0x009091a9, 0x00b5b4da, 0x00b9bbe7, 0x007176ab, 0x00414a88, 0x00586fae, 0x006f86ca, 0x005e82c8, 0x004b75cb, 0x00625c91, 0x00855169, 0x00a14a3e, 0x00c64d2a,
- 0x00e55e2c, 0x00e16738, 0x00e2794a, 0x00e69267, 0x00f7c097, 0x00f2ded5, 0x00e9e3ed, 0x00e3e1f0, 0x00dadcee, 0x00dbdcef, 0x00e2dfee, 0x00dcdbea, 0x00d9dff4, 0x00dbdef8, 0x00dddcf8, 0x00e0d8f6,
- 0x00e0d5fd, 0x00d9dff8, 0x00d0e0f8, 0x00bbdced, 0x00c3c5ed, 0x00bcb2dd, 0x009f93c1, 0x00909cc0, 0x00acb0ce, 0x00beb9ca, 0x00cec2cb, 0x00c3b4bd, 0x00ab9384, 0x00a08066, 0x00ab8866, 0x00c9a784,
- 0x00e1c7ab, 0x00b4a691, 0x00312a1e, 0x00111409, 0x000f100e, 0x00181811, 0x001e1c16, 0x0024231c, 0x002c281e, 0x00333024, 0x003e3a2c, 0x00403c2c, 0x003e3727, 0x0036301e, 0x002f2a18, 0x002e2a16,
- 0x00302c1a, 0x00302b19, 0x00342b1a, 0x00392e1d, 0x00403424, 0x003d3223, 0x003b2f22, 0x0034281c, 0x002a2015, 0x00271f15, 0x002a241e, 0x002f2d27, 0x002f2f29, 0x00282a25, 0x00232623, 0x00212323,
- 0x001e2121, 0x00141817, 0x00101513, 0x000a0f0d, 0x000f1111, 0x00676969, 0x00fcfdfd, 0x00fcfcfc, 0x00fffdfe, 0x00fdfcfd, 0x00fffefe, 0x00cecece, 0x00777777, 0x005d5f5e, 0x001c1d1d, 0x00141615,
- 0x00231f17, 0x0059544b, 0x0089817d, 0x004d4342, 0x00342a28, 0x00423832, 0x00473b2d, 0x00645642, 0x00918567, 0x00897c57, 0x00615432, 0x00615238, 0x00877a69, 0x0083766d, 0x004c4745, 0x00232525,
- 0x001b2225, 0x001a2221, 0x00333230, 0x00564c4b, 0x00715553, 0x00714c46, 0x00643430, 0x00602e27, 0x006f3429, 0x008c5847, 0x00a1715c, 0x008c684e, 0x00634d30, 0x00483019, 0x003e2614, 0x003a2011,
- 0x00161411, 0x00080607, 0x00030103, 0x00040404, 0x00050706, 0x00070906, 0x00080906, 0x00080807, 0x000c0a0e, 0x000c0b09, 0x000d0b0d, 0x00080609, 0x0009080b, 0x000a0c0a, 0x000f1413, 0x00101814,
- 0x00161d19, 0x001a211e, 0x001c2020, 0x001b1f20, 0x0017191b, 0x00131916, 0x00121914, 0x000e1813, 0x000a1413, 0x000a1614, 0x00091415, 0x00151f21, 0x00141a1d, 0x004f5154, 0x00cfcecf, 0x00f1eeee,
- 0x00edeee4, 0x00e9ece2, 0x00e2e6dd, 0x00d3d8d1, 0x00cdd1cd, 0x00c3c4c2, 0x00babab8, 0x008f8f8d, 0x00363431, 0x000e0d0a, 0x00454444, 0x00b6b5b6, 0x00eeeee6, 0x00edede0, 0x00e9e9dc, 0x00e8e6dd,
- 0x00e3dde3, 0x00dad5db, 0x00a9a5ae, 0x00787a7b, 0x008b9087, 0x00969a8b, 0x00999889, 0x00969580, 0x008b8e7a, 0x0082846f, 0x007c7665, 0x00615c4d, 0x00504b3d, 0x006b6d5b, 0x0089917c, 0x00606d55,
- 0x001a1918, 0x000a0c08, 0x00090a09, 0x00090a08, 0x0015130e, 0x002d261e, 0x00685d4d, 0x0095856d, 0x00a48669, 0x00917651, 0x00695543, 0x00404554, 0x00373b58, 0x003c436a, 0x00444c82, 0x003f4c8f,
- 0x00324596, 0x00243c82, 0x001d3371, 0x00182953, 0x00131935, 0x00111126, 0x00353552, 0x004c507d, 0x0041458c, 0x0028326e, 0x00727aaa, 0x00dce5f3, 0x00f9fdf6, 0x00fbfef1, 0x00fdffed, 0x00fcfef1,
- 0x00dcd4dd, 0x00908b90, 0x00868685, 0x00a0a29d, 0x00636860, 0x002c2f29, 0x00303531, 0x00343836, 0x003a3940, 0x003c4045, 0x00413d41, 0x00584a4b, 0x007c7473, 0x008d8988, 0x00969595, 0x00969b9b,
- 0x00909198, 0x00818789, 0x0084868a, 0x00656669, 0x00333133, 0x00251c12, 0x004e3a28, 0x00967c62, 0x00c99e76, 0x00b8875a, 0x00b87f4e, 0x00c8925e, 0x00dda875, 0x00e1b281, 0x00e6ba8b, 0x00e9bd90,
- 0x00edbb90, 0x00e7b281, 0x00e7b17f, 0x00e6b179, 0x00dfad7b, 0x00d9ae81, 0x00d9b28b, 0x00d3b08d, 0x00d5ab84, 0x00d1a479, 0x00ce9f72, 0x00c9a16b, 0x00dda574, 0x00ca8e5e, 0x00a5693b, 0x00875526,
- 0x00654e25, 0x005a522f, 0x00423b23, 0x002b241a, 0x0019070d, 0x00070607, 0x0003040b, 0x00030206, 0x00040302, 0x00010101, 0x00040302, 0x00030101, 0x00131012, 0x003b3737, 0x00595857, 0x003c3d3b,
- 0x00352a2e, 0x0051453f, 0x00685848, 0x00685339, 0x00614c2b, 0x00594730, 0x0052483d, 0x00535358, 0x00697297, 0x006576a5, 0x003c5d9e, 0x001454ae, 0x000e43a9, 0x000d37a2, 0x00092583, 0x0017216a,
- 0x00483b43, 0x00594327, 0x00573512, 0x004b2606, 0x004e2125, 0x00462a29, 0x003e323a, 0x00414961, 0x003e6ba6, 0x003878bd, 0x00387ecd, 0x00327fc8, 0x003e80ca, 0x004d8ad1, 0x005d93df, 0x006491df,
- 0x007a94ba, 0x006a87a9, 0x003b5773, 0x002c4658, 0x00989f9f, 0x00f3f5f2, 0x00fefdfa, 0x00fefefb, 0x00fdfeff, 0x00fcfefc, 0x00fcfdfc, 0x00f7fdfa, 0x008a95b5, 0x0024396a, 0x00112969, 0x00102b75,
- 0x00143377, 0x00122f65, 0x00193161, 0x001c345e, 0x0012244b, 0x00041e51, 0x000a2653, 0x00112b3a, 0x000f1a3d, 0x000c0828, 0x001c101b, 0x00382a10, 0x004f4436, 0x0049465e, 0x00171d43, 0x00001030,
- 0x000c0e14, 0x000d1515, 0x00070d13, 0x00010515, 0x00150623, 0x00624442, 0x0092704b, 0x00a37c3a, 0x009f7450, 0x00986f76, 0x00523e60, 0x001d3758, 0x00175b8f, 0x0015598f, 0x001a4d8e, 0x001e3577,
- 0x00274a93, 0x003677ba, 0x002d74ad, 0x00316895, 0x0058425d, 0x002f1d22, 0x004e3a3a, 0x0049393d, 0x0031242c, 0x004c413e, 0x00605951, 0x003f3924, 0x00241903, 0x00221807, 0x0021160f, 0x00221616,
- 0x00241711, 0x00251d10, 0x00281e11, 0x0020150a, 0x00161508, 0x000e110b, 0x00131814, 0x00111514, 0x002a2222, 0x003c2d29, 0x002d2222, 0x00333e43, 0x008f98a4, 0x0093959f, 0x006c6362, 0x00765c52,
- 0x007b4f3a, 0x00754731, 0x0080522f, 0x00825330, 0x00834a1a, 0x00806563, 0x00726c7d, 0x00737688, 0x00434f63, 0x00303437, 0x0079655f, 0x009d735c, 0x00ac6e52, 0x009c634a, 0x00865a43, 0x00644735,
- 0x00261b27, 0x0014080c, 0x001c0a04, 0x001d0800, 0x005e411a, 0x009c7c4f, 0x009f7a49, 0x009a7045, 0x00916a47, 0x00825e3f, 0x007f5536, 0x009a6a3d, 0x00b17643, 0x00ac6d36, 0x00ae753a, 0x00a77339,
- 0x00a67746, 0x00a17346, 0x00a4784d, 0x00ac7b4f, 0x009b743d, 0x009d7041, 0x00a07241, 0x00a37330, 0x00a6792a, 0x009c7837, 0x00897142, 0x005e5444, 0x002d3447, 0x0015253e, 0x00142741, 0x002e4258,
- 0x001e449b, 0x00194299, 0x0023479f, 0x003a5ba5, 0x00556179, 0x0062654f, 0x0077733e, 0x007b7029, 0x007d6a3c, 0x00d0c7ab, 0x00fcfdf2, 0x00f9fefb, 0x00fdffff, 0x00fdf9f7, 0x00fefbf3, 0x00cfc2b7,
- 0x00482817, 0x00543218, 0x00643e1d, 0x006a3d1a, 0x00724019, 0x00704016, 0x00633818, 0x009a785b, 0x00f8ede4, 0x00fdfbf5, 0x00fdfafc, 0x00f5fcfc, 0x00fafcfc, 0x00ccd2d5, 0x003f4348, 0x000d1119,
- 0x00131725, 0x00111423, 0x00141626, 0x00141727, 0x00131726, 0x00121726, 0x00121725, 0x00111624, 0x00151828, 0x00131727, 0x00151727, 0x00151621, 0x0017161f, 0x0016151f, 0x00161521, 0x0013151d,
- 0x00171322, 0x0011101c, 0x00151320, 0x0013131d, 0x0013121d, 0x0012182b, 0x003f4d68, 0x00596e88, 0x005c7998, 0x006687a7, 0x0081a2c3, 0x0092b0cc, 0x00a5b9d0, 0x00a0b0c2, 0x008791a0, 0x00777e8b,
- 0x00707073, 0x0079797d, 0x00848588, 0x008f9293, 0x00b6babb, 0x00e2e7e8, 0x00f1f4f7, 0x00eff1f7, 0x00edf0fa, 0x00ecf3fc, 0x00eff8fc, 0x00f1f9f9, 0x00f6fbfe, 0x00f6fdfe, 0x00f9fefd, 0x00fafdfe,
- 0x00fbfffe, 0x00fdfdfd, 0x00fffefc, 0x00fdfdf9, 0x00fefefd, 0x00fcfdfb, 0x00fcfefa, 0x00fdfdfb, 0x00fefbfc, 0x00fffdfc, 0x00fcfbf8, 0x00fcfbf8, 0x00fefefb, 0x00fefefd, 0x00fcfbfc, 0x00fdfafc,
- 0x00fcfcfa, 0x00fefefd, 0x00ffffff, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fdfdfc, 0x00fdfdfb, 0x00fcfbfd, 0x00f7f7f6, 0x00efeff0, 0x00ebeaea, 0x00dfe0e2, 0x00d6dbdd, 0x00c6cbd1, 0x00b8bcc2,
- 0x00b3afb0, 0x00a7a09b, 0x00988a82, 0x00aa9787, 0x00b9a08a, 0x00a78b73, 0x0082664f, 0x00604733, 0x00453328, 0x0030261d, 0x00271d17, 0x00211a14, 0x0020130c, 0x001f1307, 0x00301e12, 0x00312111,
- 0x002c0c0e, 0x0032160f, 0x003f261c, 0x004e3c28, 0x00857c63, 0x00b2ad92, 0x00d4cfba, 0x00e3dfcc, 0x00f6f1e6, 0x00c8c3b9, 0x004f4b47, 0x000d100d, 0x00020100, 0x00000000, 0x00010000, 0x00020000,
- 0x00010002, 0x00010000, 0x00020100, 0x00020200, 0x00030401, 0x00010301, 0x00050603, 0x00060803, 0x00080704, 0x00060603, 0x00040402, 0x00020300, 0x00020200, 0x00030400, 0x00040501, 0x00020501,
- 0x00050504, 0x00020403, 0x00040502, 0x00040603, 0x00060904, 0x00030905, 0x00030904, 0x00030703, 0x00050704, 0x00040604, 0x00050704, 0x00010403, 0x00010604, 0x00010605, 0x00010502, 0x00020505,
- 0x000b070c, 0x000a0607, 0x000d0b0a, 0x000f0d09, 0x000d0d06, 0x000b0f07, 0x00090f09, 0x000f1212, 0x000e0c12, 0x001e1823, 0x005f5a6d, 0x00a5a5b9, 0x00a8b7db, 0x007187b8, 0x005170ac, 0x00496db4,
- 0x00296cc3, 0x002066c0, 0x00185fbd, 0x001258bd, 0x001053bf, 0x00104ebd, 0x001148b8, 0x001142b0, 0x001a3dae, 0x001535a1, 0x00182e78, 0x00333c46, 0x0031373c, 0x001e2122, 0x000e0c0c, 0x000e0c09,
- 0x00100b0c, 0x000d0a0d, 0x000c0a0b, 0x000c0c06, 0x000d0d03, 0x000c0c05, 0x000d0d08, 0x00090906, 0x000e0e0b, 0x000a0b06, 0x00282927, 0x00949594, 0x00fffefe, 0x00fefeff, 0x00fefeff, 0x00fefeff,
- 0x00fbf9fb, 0x00999799, 0x00030102, 0x00020202, 0x00020202, 0x00020403, 0x00020403, 0x00020402, 0x00050406, 0x00040305, 0x00040405, 0x00030304, 0x00010203, 0x00020203, 0x00030305, 0x00030305,
- 0x00050206, 0x00030104, 0x00020206, 0x00030307, 0x00030407, 0x00010404, 0x00000401, 0x00000501, 0x00010404, 0x00020505, 0x00020404, 0x00000303, 0x00000305, 0x00010406, 0x00010407, 0x00020407,
- 0x00050403, 0x00040303, 0x00070204, 0x000a0206, 0x000b030a, 0x000b030b, 0x0009030b, 0x0007050c, 0x0006060d, 0x00040509, 0x00030508, 0x00000108, 0x00010208, 0x00000206, 0x00000204, 0x00000306,
- 0x0003010b, 0x00030b15, 0x00131c2a, 0x001b2738, 0x001c2b3e, 0x0015232c, 0x000c191d, 0x00030d12, 0x00010305, 0x00010102, 0x00020206, 0x00050607, 0x00050507, 0x0007080a, 0x000a0c10, 0x000c100e,
- 0x00131417, 0x00161718, 0x00181918, 0x001b1b19, 0x00201f1d, 0x0024211f, 0x00272420, 0x002b2823, 0x00332e2c, 0x00373231, 0x003c3838, 0x00403d3d, 0x00444242, 0x00494747, 0x004d4c4c, 0x004f4e4f,
- 0x005a5859, 0x005f5f60, 0x0068696b, 0x00707375, 0x007b7c7e, 0x00898688, 0x00979293, 0x009e9a99, 0x00aaa9a6, 0x00b2b1ae, 0x00bcbbb7, 0x00c4c3bd, 0x00cac9c3, 0x00d1cec9, 0x00ddd8d3, 0x00efeae5,
- 0x00c7b69f, 0x005b311f, 0x00663629, 0x006f3833, 0x00713f3c, 0x00754742, 0x00764d44, 0x00774e41, 0x007a4637, 0x007d4135, 0x007e3f2f, 0x00794227, 0x007b422a, 0x0077412b, 0x006e422e, 0x006b4d3b,
- 0x005d6259, 0x003b4952, 0x00152740, 0x0010244c, 0x001d2a69, 0x000b3880, 0x000e4289, 0x001e4479, 0x002d3751, 0x001b212f, 0x0006080e, 0x00010803, 0x00010b0b, 0x00000702, 0x00090c05, 0x00222010,
- 0x002a566e, 0x00446a86, 0x005a7b9c, 0x006881a8, 0x008093c4, 0x0090a4dc, 0x00768dcf, 0x005c76c1, 0x005478d0, 0x005076d4, 0x003b70c9, 0x002f72c6, 0x003063b8, 0x00385aa9, 0x00455097, 0x0053467e,
- 0x00784153, 0x00a34f43, 0x00d0623b, 0x00ea6720, 0x00fe7d1a, 0x00efa96b, 0x00eed1bc, 0x00f3edf3, 0x00e6f4fd, 0x00eaeeef, 0x00edeee4, 0x00e1ead6, 0x00d4f0f8, 0x00dcebff, 0x00e5ddfd, 0x00fcd6fe,
- 0x00c0f6f6, 0x00d0dbe7, 0x00b8c1dd, 0x0078a5de, 0x005e7ce9, 0x005162ca, 0x003d53b4, 0x003058b0, 0x00676fbf, 0x009993bd, 0x00bba99e, 0x00ba9a59, 0x00b58d54, 0x00bb8c58, 0x00c3996b, 0x00d9aa85,
- 0x00d6b797, 0x00b19c88, 0x00413a2d, 0x00070d03, 0x00071515, 0x000a170f, 0x00141f17, 0x001c221b, 0x002a291a, 0x00343220, 0x00413b26, 0x004a4029, 0x00483a23, 0x0043341d, 0x003c2d17, 0x003c2e18,
- 0x00332d1d, 0x00393121, 0x00433726, 0x00483a28, 0x004e3e2c, 0x004d3b29, 0x004a3626, 0x00452f1f, 0x0042241d, 0x0040231e, 0x00402622, 0x00402d27, 0x0040342c, 0x00343029, 0x00292b27, 0x00232a28,
- 0x001a2425, 0x00162120, 0x000e1717, 0x000b1212, 0x00121517, 0x006c6d6f, 0x00fafcfc, 0x00fefefe, 0x00fefefe, 0x00fdfdfd, 0x00fcfcfc, 0x00cccccc, 0x0079797a, 0x005d5d5d, 0x00171718, 0x00131313,
- 0x00363121, 0x00797166, 0x009d918d, 0x00605153, 0x00433334, 0x003b2a25, 0x00301d10, 0x005d4831, 0x00967e54, 0x00a18d58, 0x0087784a, 0x00675b48, 0x00756c5d, 0x00877b6e, 0x0051483f, 0x002b2321,
- 0x0022221e, 0x001e1d19, 0x0022221e, 0x003d3f3d, 0x004d5049, 0x004e4b3c, 0x00544030, 0x00552e22, 0x00672828, 0x00905a54, 0x00a47c70, 0x00725f4a, 0x004f4127, 0x0053301d, 0x00662a21, 0x00782221,
- 0x001f160f, 0x000d0400, 0x00080201, 0x00070605, 0x00060a07, 0x00040a05, 0x00030a05, 0x00050b07, 0x000b0c09, 0x000f0f0b, 0x000f0d0c, 0x0008050b, 0x00070509, 0x00050609, 0x00090c0d, 0x00101515,
- 0x00111c17, 0x00162120, 0x00111e23, 0x00121d26, 0x00101c25, 0x000c1319, 0x00111919, 0x00101616, 0x00091512, 0x000a1813, 0x000c1a13, 0x00101c15, 0x00232926, 0x00797a7a, 0x00f0ecf0, 0x00f4edf3,
- 0x00f2e8ec, 0x00e8e1e2, 0x00dfddd9, 0x00ced2c7, 0x00c1c8b9, 0x00b6bfb1, 0x00969f96, 0x00545d58, 0x001a1620, 0x00181123, 0x002c2a34, 0x008b9383, 0x00e6ecdd, 0x00e9e8de, 0x00e7e1e0, 0x00e6e0e0,
- 0x00d9d1db, 0x00cecad4, 0x00aeb0b4, 0x00798177, 0x007d8c72, 0x008c9c8a, 0x008d9a8a, 0x00878c7b, 0x0078725b, 0x00726e55, 0x006f6f59, 0x00575c4b, 0x003c473a, 0x0061695c, 0x008e9585, 0x00777967,
- 0x001f271c, 0x00030a03, 0x000a0c0c, 0x00100f13, 0x0029232a, 0x0030282c, 0x00615a57, 0x009f958d, 0x009b8e7c, 0x00796d51, 0x00524732, 0x00282823, 0x001d2034, 0x00243353, 0x002f477a, 0x002d4e8e,
- 0x00264a8e, 0x001e3d79, 0x00172d63, 0x00152149, 0x0013162e, 0x00070c1b, 0x001e2b3d, 0x003a4e6e, 0x00384b84, 0x001e3262, 0x0067759c, 0x00dbe2ec, 0x00fffef9, 0x00fefef9, 0x00fffff8, 0x00fbfffe,
- 0x00d6d5d9, 0x008d8c8e, 0x00888787, 0x00a3a3a0, 0x00696a65, 0x002f312d, 0x002e3231, 0x00333838, 0x0035393e, 0x00383e45, 0x003b3a43, 0x00483a42, 0x005f565c, 0x0081787c, 0x009a9496, 0x00999797,
- 0x009b9995, 0x009b9b94, 0x009c9a9b, 0x00938c8f, 0x0071676b, 0x006f5642, 0x00a17f5a, 0x00cba075, 0x00d19a68, 0x00bc8454, 0x00b07c4e, 0x00bb8c60, 0x00d2a67c, 0x00dcaa7f, 0x00e7b281, 0x00f6b887,
- 0x00e9bb8f, 0x00e5b68a, 0x00e1b387, 0x00dfb187, 0x00e1b387, 0x00dfb187, 0x00dfb084, 0x00dcaf82, 0x00d6a67b, 0x00cfa074, 0x00c79a6c, 0x00c49c6a, 0x00d8a374, 0x00e2ac79, 0x00d49b68, 0x00bf8852,
- 0x00a67441, 0x009d6f48, 0x00764f2c, 0x00523417, 0x00331907, 0x00171001, 0x000c0800, 0x000c0802, 0x000a0700, 0x00050100, 0x00060202, 0x00030002, 0x00080207, 0x00211d18, 0x003f3e2c, 0x002d2d13,
- 0x001f120e, 0x004c3627, 0x007d5a3d, 0x00875a31, 0x00754d27, 0x005b4634, 0x0053535c, 0x00566b8f, 0x005883d3, 0x004070cf, 0x001847a1, 0x00063578, 0x000c2387, 0x0013208d, 0x000f1888, 0x00091076,
- 0x000b1a50, 0x001a203f, 0x00232030, 0x002a1921, 0x0036141f, 0x001d244d, 0x00254788, 0x004164b8, 0x004679d5, 0x003b7ccf, 0x002f78ba, 0x00277bb0, 0x002c79ba, 0x002e74d1, 0x003670e9, 0x004471fe,
- 0x005589d8, 0x00579aea, 0x0056a1e6, 0x00549aca, 0x00b6cbd1, 0x00f2f9f3, 0x00fefffb, 0x00f9fcff, 0x00fafeff, 0x00fcfcf7, 0x00fcfdf6, 0x00f8fbf0, 0x009eacbe, 0x003f587a, 0x000d2c5d, 0x00163570,
- 0x00142c5d, 0x001e2f5a, 0x001c2749, 0x00161f3a, 0x00111831, 0x00081a35, 0x000c1e2c, 0x00121c14, 0x00180f01, 0x001c0704, 0x00200708, 0x002c1711, 0x003f3521, 0x00494c42, 0x00354046, 0x00101e42,
- 0x000b1306, 0x0006130c, 0x00040c0f, 0x0004090b, 0x002d1d0d, 0x0087602f, 0x00ab7738, 0x00b37433, 0x00986037, 0x0090674f, 0x00402e39, 0x000b2c5c, 0x001c4178, 0x002f639b, 0x002e6aa2, 0x002869a6,
- 0x002e75b4, 0x003575b5, 0x002c62a5, 0x002a5a9b, 0x00184387, 0x000a1231, 0x00353043, 0x00403e5a, 0x003d486c, 0x00515b72, 0x00434a55, 0x0021221c, 0x00160b00, 0x001d0f08, 0x001e1113, 0x001b0f1c,
- 0x0014140a, 0x00141611, 0x00201e1f, 0x001f1b1e, 0x0012120d, 0x0016160b, 0x00141504, 0x001b1808, 0x001e1716, 0x00332630, 0x002f233b, 0x003c3f68, 0x005274b5, 0x004f669f, 0x0072738d, 0x00a17973,
- 0x00aa6f48, 0x00794d33, 0x00785242, 0x0081604e, 0x00955735, 0x00915a2f, 0x00a97752, 0x00906d55, 0x00433d36, 0x0033332e, 0x00535147, 0x00796d5b, 0x00895c3f, 0x00945432, 0x009f5229, 0x00a14c21,
- 0x00272317, 0x00130b01, 0x001c0d01, 0x00281001, 0x007d5123, 0x00ae7941, 0x00ae7439, 0x00a76b37, 0x008a6038, 0x00715138, 0x005e5434, 0x005f6e3e, 0x00aa7638, 0x00b46b29, 0x00b5702f, 0x00a2743f,
- 0x008b7764, 0x0098786f, 0x00af8474, 0x00a97c55, 0x008d7520, 0x009c723a, 0x00a06b3c, 0x00a16d2d, 0x00987426, 0x008d7441, 0x00817060, 0x0065647c, 0x002c346c, 0x00212d59, 0x002a324b, 0x004b5357,
- 0x0040426b, 0x0036497e, 0x001c407e, 0x00254f91, 0x00374565, 0x00625350, 0x008a6042, 0x009b602f, 0x008b6840, 0x00d7cab2, 0x00f8fef2, 0x00f1fffb, 0x00f1fdfd, 0x00f8fefc, 0x00f9faf5, 0x00bbafa5,
- 0x00492b13, 0x005f3919, 0x00703f1c, 0x007e4418, 0x007f4110, 0x007c4804, 0x006c430c, 0x00ab8a6a, 0x00fff6fc, 0x00fdfdff, 0x00fafdfb, 0x00f4fff1, 0x00fefdef, 0x00c8cbc7, 0x00343441, 0x00101430,
- 0x00141b21, 0x00151a21, 0x00161923, 0x00151823, 0x00141823, 0x00131923, 0x00121922, 0x00141a23, 0x00131822, 0x00111925, 0x00131824, 0x00161923, 0x00151822, 0x00151822, 0x00141621, 0x00141622,
- 0x0011131e, 0x00111421, 0x00161621, 0x00121320, 0x000b0d18, 0x00192036, 0x00576688, 0x005f7aa6, 0x00416fae, 0x004477b7, 0x004377b6, 0x004d7fb6, 0x00638ebe, 0x0078a5cf, 0x0083b1d9, 0x007aa9d1,
- 0x006e7b85, 0x00515c67, 0x002d353d, 0x002f373c, 0x007c858d, 0x00c1ceda, 0x00c1d0e4, 0x00acbcd9, 0x009fb1de, 0x00a6bce9, 0x00b1ccea, 0x00bbd8e3, 0x00c8e2e9, 0x00cde4ea, 0x00d5e8e9, 0x00ddeaea,
- 0x00e9f7f0, 0x00f0f9f2, 0x00f5fbf3, 0x00f7fbf1, 0x00fbfff3, 0x00f9fdf3, 0x00fbfef6, 0x00fcfdf4, 0x00fbfcf3, 0x00fcfdf3, 0x00fdfdf3, 0x00fbfbf1, 0x00fffdf6, 0x00fdfcf7, 0x00fffefb, 0x00fffbfa,
- 0x00fbfdf4, 0x00fcfef8, 0x00fdfefb, 0x00fefefe, 0x00fffeff, 0x00fdfdfd, 0x00fdfcfc, 0x00fdfcfd, 0x00fdfdfe, 0x00fefffe, 0x00fefffc, 0x00fcfcfa, 0x00fffff9, 0x00fefefc, 0x00fdfcfa, 0x00fffbfa,
- 0x00f9f8ef, 0x00f7f7ec, 0x00f4f1e9, 0x00f0ebe2, 0x00eee9de, 0x00e7e4dd, 0x00cfcdcb, 0x00bebbba, 0x00aea6a3, 0x009a9491, 0x00837c79, 0x00746964, 0x00665b54, 0x005c5048, 0x00483d36, 0x00393028,
- 0x0038221c, 0x003c281d, 0x00322112, 0x005a4d39, 0x00c2bda0, 0x00d7d5b9, 0x00d5d5b7, 0x00d9d8bd, 0x00ede8d6, 0x00ebe6d6, 0x00b5b2a5, 0x0055594e, 0x00161512, 0x00020402, 0x00020300, 0x00040500,
- 0x00000100, 0x00010101, 0x00020101, 0x00010100, 0x00010102, 0x00010203, 0x00040304, 0x00070607, 0x00030301, 0x00030202, 0x00020203, 0x00010101, 0x00010100, 0x00020201, 0x00010202, 0x00000001,
- 0x00000403, 0x00000202, 0x00020001, 0x00070102, 0x00060301, 0x00030704, 0x00000806, 0x00000909, 0x00020401, 0x00030302, 0x000b0801, 0x000f0908, 0x000d080c, 0x0009020e, 0x00080012, 0x00050015,
- 0x0003000f, 0x00030008, 0x00070506, 0x00070801, 0x00080b00, 0x00030c00, 0x00010905, 0x00040613, 0x00090533, 0x002f2b57, 0x007d81a5, 0x00a9bdd1, 0x009cc3da, 0x005e8cbd, 0x00356bb6, 0x00245fc4,
- 0x001a5cc8, 0x001a58c6, 0x001e57c6, 0x001f52c3, 0x001e4fbd, 0x001b4ab6, 0x001846b1, 0x001541a6, 0x001240a5, 0x000e3a9d, 0x0011378b, 0x00334c82, 0x0064728a, 0x00464a4f, 0x00120a08, 0x00170603,
- 0x00140113, 0x000f0316, 0x00060510, 0x00000f06, 0x00041701, 0x00040d04, 0x00060608, 0x000e0b0c, 0x000a0b0a, 0x00090a09, 0x00272827, 0x00969695, 0x00fefefe, 0x00fffefe, 0x00fefdfd, 0x00fffffd,
- 0x00fbf9fa, 0x00989798, 0x00020102, 0x00010101, 0x00020202, 0x00030303, 0x00020303, 0x00030403, 0x00050404, 0x00030303, 0x00020202, 0x00040405, 0x00030305, 0x00030306, 0x00020105, 0x00010104,
- 0x00010002, 0x00020104, 0x00020205, 0x00030307, 0x00030308, 0x00020405, 0x00000605, 0x00000605, 0x00000606, 0x00000606, 0x00000304, 0x00000102, 0x00000304, 0x00030506, 0x00030405, 0x00020103,
- 0x00000504, 0x00000706, 0x00010608, 0x0002070c, 0x00050a0e, 0x0005090d, 0x0006090b, 0x00070a0a, 0x000c0405, 0x000e0506, 0x000d050c, 0x00080512, 0x00080811, 0x0006070b, 0x00040705, 0x00010703,
- 0x00182a32, 0x0039586f, 0x005a80a5, 0x005988bc, 0x005484cc, 0x005381a9, 0x00497285, 0x002c4c62, 0x00131e2a, 0x00050b10, 0x00010103, 0x00020002, 0x00040200, 0x00040100, 0x00030200, 0x00000300,
- 0x00000107, 0x00030308, 0x00010105, 0x00000002, 0x00000102, 0x00000001, 0x00000001, 0x00030102, 0x00030001, 0x00030003, 0x00030104, 0x00020004, 0x00010004, 0x00010003, 0x00020103, 0x00020205,
- 0x00030406, 0x00050709, 0x000a0b0e, 0x000f0e11, 0x00121013, 0x00151416, 0x0019191b, 0x001d1c1d, 0x00242326, 0x0029282b, 0x0028272a, 0x002b2a2c, 0x002e2e31, 0x00333336, 0x0058585c, 0x00b6b5b9,
- 0x00c6b8a3, 0x005b3424, 0x00693c2f, 0x00713d36, 0x0074413c, 0x00744943, 0x00734c42, 0x00724c3d, 0x00774432, 0x007d4332, 0x00824935, 0x007d4e32, 0x00895039, 0x008b4e36, 0x00834c35, 0x007c5039,
- 0x005f4838, 0x003f342b, 0x004b4444, 0x00474351, 0x002a233f, 0x0028111e, 0x00321717, 0x002e2723, 0x001b222c, 0x000a1116, 0x00090705, 0x00110602, 0x00190c08, 0x001f212a, 0x00304562, 0x003d6292,
- 0x00547bbb, 0x005f81c0, 0x006583c2, 0x006a82c1, 0x00778bcf, 0x007b92d7, 0x006e88d3, 0x005a76c6, 0x004568be, 0x003960b9, 0x00375db7, 0x004057b6, 0x003c5cb4, 0x00395cae, 0x003459a0, 0x0030538a,
- 0x00393c5a, 0x00462d2e, 0x0076382b, 0x00af4d2d, 0x00e2602f, 0x00e57239, 0x00eb8953, 0x00f5aa89, 0x00f7d8d1, 0x00fbeff1, 0x00f8f5fc, 0x00edfcfa, 0x00e9f4f8, 0x00eef0f8, 0x00f9effc, 0x00eddff9,
- 0x0097c6fc, 0x00828dd9, 0x005f6cbd, 0x002b5fb5, 0x001d41ac, 0x00172b7d, 0x00152365, 0x00032251, 0x00302459, 0x006a5862, 0x00a58b82, 0x00b9988a, 0x00c6a086, 0x00cda17b, 0x00c69862, 0x00c8995e,
- 0x00c8a067, 0x00b3966c, 0x00614e36, 0x0018110a, 0x000a0d19, 0x000b1517, 0x00121e19, 0x001b231c, 0x002a2a1e, 0x00343123, 0x00413a29, 0x00493e2b, 0x00473b26, 0x00423520, 0x003d301b, 0x003e321d,
- 0x003c3425, 0x00423928, 0x004a3f2d, 0x0050442f, 0x00564732, 0x00594733, 0x00574230, 0x00533c2c, 0x0052342b, 0x0051332c, 0x004d332b, 0x004b382e, 0x00483c32, 0x003e3831, 0x0030312d, 0x002a2f2d,
- 0x001c2524, 0x0018211f, 0x00121a18, 0x00121615, 0x001a1a19, 0x0071706f, 0x00fcfdfc, 0x00fefcfd, 0x00fcfefd, 0x00fcfefd, 0x00fcfdfd, 0x00cfcfcf, 0x007d7c7d, 0x005d5c5c, 0x00111010, 0x00080708,
- 0x002d2c17, 0x00767263, 0x00a39b92, 0x005b504e, 0x00322426, 0x0030211f, 0x002e2014, 0x00463824, 0x00735e3b, 0x00847245, 0x006a5934, 0x003c301f, 0x00473d2e, 0x00796e63, 0x005d554f, 0x00333029,
- 0x00262122, 0x001f1e1e, 0x00191b19, 0x00202422, 0x002c2e2a, 0x002b2c1e, 0x00392d1e, 0x003e2318, 0x00562320, 0x00855851, 0x00af8c84, 0x00837464, 0x005f5541, 0x004d3021, 0x004d1a13, 0x00641817,
- 0x0020130f, 0x000c0100, 0x00090202, 0x00060505, 0x00000302, 0x00000403, 0x00020706, 0x00060b0b, 0x0011110f, 0x001a1a15, 0x00272523, 0x0029252a, 0x001a161a, 0x00100e0f, 0x0010100f, 0x00131511,
- 0x00191e18, 0x00191d19, 0x00151b19, 0x00161c1d, 0x0014191b, 0x00151717, 0x0010110f, 0x000f110e, 0x000f160f, 0x000c140c, 0x000e170c, 0x00161d12, 0x00363832, 0x009f9c99, 0x00f9f3f2, 0x00f6eeef,
- 0x00efe8ea, 0x00e5e0e1, 0x00d5d2d1, 0x00c9cbc5, 0x00b9c0b6, 0x00aab2a9, 0x0069716d, 0x00293130, 0x00161622, 0x001b1825, 0x001c1c24, 0x005e625d, 0x00d0d2c6, 0x00ece9dc, 0x00e6e1d7, 0x00e5ded6,
- 0x00dbd2d6, 0x00cecacc, 0x00b8b8b8, 0x00888c86, 0x007d8472, 0x00889080, 0x00858876, 0x0077725c, 0x0065593e, 0x005d5337, 0x005f583f, 0x00545744, 0x0042493d, 0x00686d61, 0x00919785, 0x007a7c67,
- 0x002c3127, 0x00080c08, 0x00161818, 0x00242327, 0x002d262f, 0x00271f25, 0x003c3531, 0x008e847c, 0x00baaf9b, 0x009a9076, 0x006b644c, 0x00373329, 0x001c2130, 0x00293a59, 0x00324a7a, 0x00304f8b,
- 0x002d4b90, 0x001d3a73, 0x000e2556, 0x000c1b3d, 0x00141a2f, 0x000b1221, 0x000c192c, 0x001c2d4f, 0x002e4177, 0x001e3362, 0x00657497, 0x00dce2ec, 0x00fffffa, 0x00fefef9, 0x00fefefa, 0x00fbffff,
- 0x00d7d7d9, 0x008c8c8f, 0x00868588, 0x00a3a4a4, 0x00696b68, 0x0030332f, 0x00333634, 0x00383a3a, 0x003a3c45, 0x003a3e47, 0x003f3d49, 0x00433944, 0x00474049, 0x005c555c, 0x00827e82, 0x00929295,
- 0x009e9d9c, 0x00999894, 0x009d9996, 0x00a0999a, 0x00a69b99, 0x00b79b87, 0x00b18b66, 0x00bc9168, 0x00d69e6e, 0x00c99261, 0x00b78253, 0x00b28659, 0x00c99f76, 0x00d6a97d, 0x00e2b17f, 0x00eeb583,
- 0x00e9bb91, 0x00e9bb91, 0x00e6ba8f, 0x00e4b78c, 0x00e1b286, 0x00deaf84, 0x00dbac80, 0x00d7ac7f, 0x00d4a47b, 0x00d0a177, 0x00c89c6f, 0x00c59969, 0x00d5a172, 0x00e0aa76, 0x00dca470, 0x00d19761,
- 0x00c99165, 0x00c08e61, 0x00a97e59, 0x008e6749, 0x0051341e, 0x001f1415, 0x00070511, 0x0007030b, 0x00070305, 0x00040002, 0x00030002, 0x00040107, 0x0008010c, 0x000c040f, 0x00170f18, 0x00140a0e,
- 0x00211009, 0x00473021, 0x0073543c, 0x00805c3d, 0x00715442, 0x005c5252, 0x00697188, 0x00627dae, 0x004871c7, 0x002a57b8, 0x0006318c, 0x0002256d, 0x00011767, 0x00031268, 0x00081267, 0x00080f5f,
- 0x00060f41, 0x00000b22, 0x000b0b15, 0x00190c04, 0x003f1f0e, 0x00494633, 0x00606b6a, 0x007e8aa7, 0x006889d9, 0x004b74db, 0x00366de0, 0x002b71df, 0x002b7cdd, 0x00287dd4, 0x00227aca, 0x002077ca,
- 0x003770d1, 0x003079db, 0x003e8ee1, 0x00559ddd, 0x00c5d8e0, 0x00f4fcf9, 0x00fdfef7, 0x00fbfefe, 0x00f9fcff, 0x00fdfdfa, 0x00fdfdf6, 0x00fdfef7, 0x00a2aebe, 0x00748cac, 0x0023426b, 0x00102d62,
- 0x001d3261, 0x00162348, 0x00070e2a, 0x00030619, 0x000b1123, 0x000b182d, 0x0005121f, 0x00081009, 0x00171508, 0x00190e16, 0x00150717, 0x001e1422, 0x0019170e, 0x001e221f, 0x0049545b, 0x004b5878,
- 0x00412e2d, 0x000e0509, 0x00110b13, 0x0002040b, 0x00302920, 0x00816f56, 0x00705f3d, 0x007b6848, 0x00565c53, 0x0024343c, 0x00081e40, 0x000a3267, 0x0027548d, 0x00376ca9, 0x00346db1, 0x002868ae,
- 0x001759a0, 0x00114e91, 0x00144585, 0x00204d8b, 0x001a3d73, 0x00051542, 0x0028355f, 0x00425687, 0x00405892, 0x00334b73, 0x00223752, 0x000c181f, 0x0013140c, 0x00171713, 0x0013141a, 0x0010121f,
- 0x00151711, 0x000f1411, 0x00151719, 0x0013171b, 0x00101513, 0x0011150e, 0x000e1209, 0x000f120c, 0x000f0d1b, 0x001d1d32, 0x00202142, 0x003b4a73, 0x003d6bb0, 0x00325b96, 0x004c628b, 0x005f545d,
- 0x008b6b59, 0x006c584b, 0x005c493d, 0x0059473f, 0x00855736, 0x007c553a, 0x008a6d5c, 0x00918786, 0x00556c86, 0x0042698e, 0x00365f88, 0x003e6389, 0x004e627f, 0x00454d63, 0x003d3f52, 0x00312738,
- 0x00161412, 0x00120d08, 0x00150b04, 0x002f2010, 0x008e6a49, 0x00b08454, 0x00af7c48, 0x00a16a37, 0x00835531, 0x00745033, 0x00654e31, 0x00605635, 0x009c7b62, 0x00a3784f, 0x00a8763b, 0x00a97725,
- 0x00a1783d, 0x00b38b6c, 0x00b89180, 0x009c725c, 0x009d7027, 0x00a46d39, 0x00a66b39, 0x00a56e2a, 0x009f7525, 0x0095753e, 0x008e785d, 0x007d737f, 0x003a3864, 0x0039395a, 0x00444150, 0x00514d48,
- 0x004d445e, 0x00394268, 0x00243d6b, 0x00163869, 0x003a4159, 0x006e5952, 0x00895e40, 0x0091592c, 0x008a6a46, 0x00daceba, 0x00fafff6, 0x00fafffd, 0x00fbfafc, 0x00fefefb, 0x00fefaf2, 0x00b1a392,
- 0x0058351b, 0x00693e1b, 0x0078451c, 0x00804416, 0x00844412, 0x007c4609, 0x00764d17, 0x00b49571, 0x00fdf8fc, 0x00fcfcfd, 0x00fafefe, 0x00fbfff8, 0x00fcfcf1, 0x00bdbdba, 0x00292b35, 0x00141531,
- 0x001a1d25, 0x00181b23, 0x00171a23, 0x00161922, 0x00161a23, 0x00131821, 0x00121720, 0x00141923, 0x00151a24, 0x00131924, 0x00151a26, 0x00171b26, 0x00141925, 0x00131723, 0x00131622, 0x00121420,
- 0x0012131f, 0x000f1421, 0x00121521, 0x0012131f, 0x000c0f1b, 0x00242c41, 0x005f6e91, 0x00647db0, 0x004472b3, 0x004276ba, 0x003d74b9, 0x003f74b3, 0x004a75ad, 0x00527eb1, 0x006292c4, 0x006c9dcd,
- 0x008eaac9, 0x0089a3c4, 0x007a91b0, 0x007188a2, 0x0096adc8, 0x00aec9e6, 0x008eaccf, 0x006e8eb9, 0x006789c0, 0x006e92cf, 0x007298d7, 0x007397d5, 0x007796d6, 0x007594d2, 0x007594cd, 0x007c96ce,
- 0x0095a9e3, 0x009bace1, 0x00aab9ea, 0x00b8c6f0, 0x00c7d3f1, 0x00d5e2f5, 0x00d7e4f2, 0x00e2edf8, 0x00f2f9fd, 0x00f2f8fc, 0x00f2f9fc, 0x00f4fafb, 0x00fafcfd, 0x00fafdfc, 0x00fafdfd, 0x00fcfdfe,
- 0x00fefff5, 0x00fcfdf5, 0x00fdfef7, 0x00fcfdf8, 0x00fefeff, 0x00fdfdff, 0x00fdfefe, 0x00fdfefe, 0x00ffffff, 0x00fdfdfa, 0x00fcfefa, 0x00fbfefc, 0x00f8faf9, 0x00f8fafb, 0x00fbfcfe, 0x00fcfbfc,
- 0x00fdfbf9, 0x00fdfbfb, 0x00fffefe, 0x00fdfdfa, 0x00fdfdfc, 0x00fbfcfb, 0x00fcfcf8, 0x00fbfbf8, 0x00faf7f5, 0x00f1efea, 0x00eae6e4, 0x00e3e0dc, 0x00dad5d2, 0x00d2cdcb, 0x00c6c0bc, 0x00bbb3b2,
- 0x00b8a8a7, 0x00a49591, 0x008a7f76, 0x009f9888, 0x00e8e5d1, 0x00e8e8d2, 0x00cccdb6, 0x00c1c2ae, 0x00cfcbbd, 0x00dcd7c8, 0x00dedcd3, 0x00a1a39e, 0x004d4d48, 0x001e1f1c, 0x00000102, 0x00020202,
- 0x00020301, 0x00020203, 0x00020102, 0x00010002, 0x00010104, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000101, 0x00030103, 0x00050406, 0x00040406, 0x00020104,
- 0x00020209, 0x00020204, 0x00040001, 0x00060000, 0x00050101, 0x00020404, 0x00000606, 0x00000706, 0x00010401, 0x00111208, 0x0037351d, 0x004e4d27, 0x00403e25, 0x001f1c0e, 0x00070204, 0x00030107,
- 0x0001000e, 0x0004030f, 0x0003020a, 0x00000002, 0x00010301, 0x00020300, 0x00010105, 0x0001021b, 0x00152366, 0x00425aa8, 0x00678ad3, 0x005889ca, 0x00659fd9, 0x0069a0e7, 0x003d73ce, 0x00295dc9,
- 0x001d60bd, 0x00195bb9, 0x001857b8, 0x001953b8, 0x00174db5, 0x001648b2, 0x001643b0, 0x00153ea9, 0x00153fa6, 0x00103a9f, 0x000d3596, 0x00123493, 0x003e5694, 0x00606e95, 0x0041485a, 0x00131217,
- 0x000c0003, 0x000c0108, 0x000d050e, 0x0008080c, 0x00050a06, 0x00040604, 0x00050607, 0x000a0a0a, 0x00040606, 0x00060706, 0x00242423, 0x00959594, 0x00ffffff, 0x00fdfdfe, 0x00fffefe, 0x00fffefd,
- 0x00f9faf9, 0x00979796, 0x00030303, 0x00020302, 0x00050405, 0x00040405, 0x00040305, 0x00030203, 0x00030303, 0x00030403, 0x00030404, 0x00030405, 0x00040406, 0x00030306, 0x00020005, 0x00020004,
- 0x00000003, 0x00030205, 0x00030305, 0x00030306, 0x00040308, 0x00030506, 0x00010807, 0x00000708, 0x00000505, 0x00010506, 0x00010405, 0x00000304, 0x00030406, 0x00050607, 0x00050507, 0x00030305,
- 0x00000604, 0x00030606, 0x00040507, 0x0005070a, 0x00080a0d, 0x0007090c, 0x0009080a, 0x000b080a, 0x000d0406, 0x000f0506, 0x000e0708, 0x0007060a, 0x0008090b, 0x00050508, 0x000b0f12, 0x00364046,
- 0x00728699, 0x0084a4c5, 0x006c91c2, 0x004c7ab4, 0x004174bc, 0x004778b7, 0x005481bb, 0x006084bb, 0x005c73a2, 0x0038496b, 0x00111731, 0x00030417, 0x0000020a, 0x0002050a, 0x00000407, 0x00000808,
- 0x00010008, 0x00000007, 0x00010006, 0x00000002, 0x00000001, 0x00010102, 0x00010002, 0x00030005, 0x00030004, 0x00030005, 0x00020005, 0x00020104, 0x00010104, 0x00000002, 0x00010102, 0x00010104,
- 0x00000004, 0x00000104, 0x00000104, 0x00010103, 0x00010103, 0x00000103, 0x00010104, 0x00020004, 0x00030206, 0x00020205, 0x00020205, 0x00010104, 0x00010003, 0x00020104, 0x00313034, 0x00aeadb2,
- 0x00c7b8a6, 0x005b3528, 0x00683e32, 0x00703e35, 0x00724038, 0x0071453c, 0x006e483a, 0x006f4a37, 0x007b4738, 0x00864d3a, 0x008b533b, 0x0086563b, 0x00945841, 0x009b593f, 0x00945339, 0x008f5137,
- 0x0076482f, 0x00563624, 0x006d5948, 0x0084746a, 0x00533d3e, 0x001e141e, 0x00111218, 0x00191f1e, 0x0020221d, 0x00161513, 0x0018110f, 0x0017151a, 0x0028314f, 0x00435f96, 0x00517eca, 0x004582db,
- 0x00587bd4, 0x006281d6, 0x006d89dd, 0x00728bdc, 0x00778ddf, 0x00728bda, 0x005e79cb, 0x004964b7, 0x00375ab1, 0x00335db4, 0x003a5cb4, 0x00454fb1, 0x003a53ab, 0x003458ab, 0x00305aa3, 0x00295893,
- 0x00374e7c, 0x0025253d, 0x00260a13, 0x00511711, 0x0097402d, 0x00ca5d30, 0x00e1682b, 0x00ef6e34, 0x00f29179, 0x00f9bfbb, 0x00fde6e7, 0x00f7f6f6, 0x00f5f6ed, 0x00f4f2f6, 0x00d7e1f7, 0x009bb4e2,
- 0x005d76c3, 0x0051468f, 0x0039397c, 0x00093880, 0x00042981, 0x00091d65, 0x00091d5c, 0x0001245c, 0x002b2478, 0x0056487b, 0x00887499, 0x00a390b2, 0x00c2a5aa, 0x00cea993, 0x00c5986c, 0x00bb8d49,
- 0x00bf924f, 0x00b48f5d, 0x00725738, 0x0024150d, 0x0010101e, 0x000f171d, 0x00131e1c, 0x001d231f, 0x002c2b23, 0x00353026, 0x00403729, 0x00473c2b, 0x00453927, 0x00413624, 0x003e3422, 0x00413826,
- 0x00463d31, 0x00473f30, 0x004c4432, 0x00524833, 0x005a4b36, 0x00604e39, 0x005f4a37, 0x005d4735, 0x005f4237, 0x005f4136, 0x005b3e34, 0x00573f35, 0x004e3c33, 0x00453a32, 0x0036332c, 0x002c3028,
- 0x00212623, 0x001d211e, 0x00181c19, 0x001a1b18, 0x0022201d, 0x00737371, 0x00fbfefc, 0x00fcfdfd, 0x00fefeff, 0x00ffffff, 0x00fdfdff, 0x00cecece, 0x007d7d7d, 0x005e5e5d, 0x0011110f, 0x00070705,
- 0x00322e1b, 0x007c776a, 0x00948e83, 0x00403933, 0x00211817, 0x003a302d, 0x003f342b, 0x003d3423, 0x004f3c21, 0x0062512b, 0x00443716, 0x001d1306, 0x002f2517, 0x00746c61, 0x006f6661, 0x00413f37,
- 0x00322b2d, 0x00242123, 0x001b1d1b, 0x001b1d1a, 0x00191e19, 0x00141c0f, 0x00212012, 0x00301d15, 0x0041171a, 0x006e4947, 0x00aa8e88, 0x00887b6e, 0x00665e4c, 0x0051372a, 0x004a1a15, 0x00551413,
- 0x00201114, 0x000d0203, 0x00060001, 0x00050305, 0x00010202, 0x00010303, 0x00030707, 0x00070c0a, 0x00181515, 0x00262420, 0x003a3635, 0x00484248, 0x003d3839, 0x00312f2c, 0x00282921, 0x00292c1f,
- 0x0025241a, 0x00211f15, 0x001b1b11, 0x001b1b13, 0x00201f1a, 0x0029221c, 0x00272017, 0x00201a11, 0x00171309, 0x00211f13, 0x003c3b2d, 0x00464536, 0x0058554c, 0x00aaa49e, 0x00f4ece9, 0x00ebe3e2,
- 0x00e7dfe0, 0x00e0dad9, 0x00cfcecb, 0x00c7cac9, 0x00bcc3c4, 0x00a3abaf, 0x00575e62, 0x001e2427, 0x001d1e28, 0x001d1d26, 0x000e0f13, 0x00323135, 0x00aeaca1, 0x00e6e4d4, 0x00e0dec8, 0x00e4dfcb,
- 0x00e3d9d4, 0x00d1c7c7, 0x00a49e9b, 0x0073726f, 0x00757569, 0x00878677, 0x007e7c65, 0x00746d4f, 0x007d6a4d, 0x00746447, 0x0061573d, 0x00565540, 0x004e5444, 0x006e7162, 0x008e927f, 0x007b7b66,
- 0x00343734, 0x00151718, 0x00252725, 0x00292929, 0x00231d25, 0x001f171e, 0x001b1410, 0x004d433a, 0x00a69b8a, 0x00b7ac96, 0x007c755e, 0x0046413a, 0x00454a53, 0x004e5c77, 0x00384e77, 0x00365286,
- 0x00324e8c, 0x00193369, 0x000a1f4a, 0x000e1d3a, 0x00111827, 0x000d1424, 0x00061325, 0x000f1e3e, 0x00263973, 0x001f3366, 0x006a789d, 0x00dee3ee, 0x00fffdf9, 0x00fefdf7, 0x00fffef8, 0x00fafffb,
- 0x00dbd9df, 0x008e8c90, 0x00888587, 0x00a4a4a3, 0x006e6e6c, 0x00333835, 0x00343937, 0x00373d3c, 0x003c3e46, 0x003d404a, 0x003e3d4b, 0x00443f4b, 0x00474450, 0x00454249, 0x00545458, 0x006b6f6f,
- 0x008f9090, 0x009f9b9c, 0x00a39e9c, 0x00a39d9a, 0x00b0a5a4, 0x00b49885, 0x00755031, 0x00764c25, 0x00c08a5b, 0x00ce9768, 0x00bd8a5b, 0x00b3875a, 0x00c19a73, 0x00d2a87e, 0x00d7ac7b, 0x00e1b07c,
- 0x00eab992, 0x00edbb95, 0x00eabd93, 0x00e7bb92, 0x00e3b68b, 0x00dfb187, 0x00d9ab81, 0x00d3a97f, 0x00d4a47c, 0x00ce9e77, 0x00c99d72, 0x00c69d6e, 0x00cf9d6e, 0x00d7a26d, 0x00d8a06b, 0x00d49b62,
- 0x00d69a68, 0x00dda578, 0x00d4a277, 0x00b1845f, 0x006d4727, 0x00372423, 0x00180d19, 0x000b0508, 0x000a0405, 0x00080302, 0x00040402, 0x00030405, 0x00060206, 0x00060007, 0x0007020c, 0x00070108,
- 0x001b0804, 0x00331c12, 0x004c3523, 0x00634d37, 0x006b5b5b, 0x0066677a, 0x006f81a8, 0x005a7ab9, 0x003762bc, 0x002049ab, 0x00002581, 0x00001963, 0x00010d52, 0x00010a4b, 0x00020d4c, 0x00010e46,
- 0x00010a3a, 0x000a0f2c, 0x0007090f, 0x00291f0e, 0x0079602d, 0x00917f3f, 0x008b8248, 0x008f8c6c, 0x007884a9, 0x00576ebc, 0x00436ed3, 0x003670ed, 0x002b77eb, 0x00237dde, 0x001f81ce, 0x001e84c5,
- 0x003372e1, 0x002471e0, 0x002276d8, 0x004288d6, 0x00bdcfe1, 0x00f4f9fb, 0x00fbfdf7, 0x00fbfefd, 0x00faffff, 0x00fefefb, 0x00fefffa, 0x00fdfcf9, 0x0097a0b1, 0x00899ebd, 0x00547095, 0x00183260,
- 0x0017264d, 0x00060e2c, 0x00080c1c, 0x0015161e, 0x0013181e, 0x00101629, 0x000c1220, 0x0009120c, 0x000b100d, 0x000d0b1c, 0x000d0928, 0x000b0b29, 0x0011171b, 0x00272f30, 0x00222f38, 0x00263354,
- 0x00515962, 0x00131d25, 0x00060a11, 0x00050b12, 0x002b271d, 0x007b6a54, 0x006f5b40, 0x00684e38, 0x0034252f, 0x00150e27, 0x0024365d, 0x002c5b94, 0x003c70b0, 0x00376eb2, 0x002561ac, 0x002160b0,
- 0x00174e9d, 0x00083b82, 0x000b3573, 0x00214377, 0x0018375e, 0x000b2255, 0x0027437b, 0x00335292, 0x002d5198, 0x0026477e, 0x00122f52, 0x00091c2a, 0x0009140c, 0x000b1410, 0x000b1316, 0x000f1724,
- 0x00161612, 0x000f1212, 0x00131217, 0x00101319, 0x00101315, 0x00101511, 0x000a100b, 0x000a110f, 0x00111427, 0x00242743, 0x00242f54, 0x00334e7d, 0x002c61a7, 0x003167ac, 0x003d699d, 0x002e3f5a,
- 0x0022111a, 0x00382f37, 0x00777575, 0x00423931, 0x00604027, 0x00704d34, 0x0075604f, 0x007d7a7c, 0x00416592, 0x004577b5, 0x003875bc, 0x00316db6, 0x00396ead, 0x003d6da7, 0x00325f92, 0x000e2b5e,
- 0x000d0d16, 0x00111016, 0x00131414, 0x00383830, 0x008e7a60, 0x00a58560, 0x00ae8355, 0x00a67345, 0x00925f3c, 0x008c6143, 0x0079583e, 0x005f4a34, 0x00877f82, 0x00928777, 0x00977e4f, 0x00a67c1e,
- 0x00b17824, 0x00b08259, 0x00a78270, 0x008a6756, 0x00a56f32, 0x00a66f3c, 0x00a76e37, 0x00a67026, 0x00a57426, 0x009e763d, 0x009a7c5c, 0x008d797a, 0x00423754, 0x004b4155, 0x004e4445, 0x004b412e,
- 0x00503d44, 0x00424056, 0x0025324c, 0x0017304f, 0x0040414c, 0x00755d50, 0x008f6544, 0x00966135, 0x00937255, 0x00e2d6c7, 0x00fbfff8, 0x00fafcfa, 0x00fff9f9, 0x00fefdf6, 0x00fef8ed, 0x00a2917d,
- 0x005a3015, 0x006a3b1c, 0x006f3f14, 0x00784011, 0x007b3f0c, 0x00733f0a, 0x00795521, 0x00bca485, 0x00fffcff, 0x00fffeff, 0x00f7fcfa, 0x00fcfef9, 0x00f7f7ed, 0x00abaaa5, 0x0021232a, 0x0018182e,
- 0x00211d26, 0x001e1c23, 0x001b1b22, 0x00191b20, 0x0016191f, 0x00161920, 0x0014181f, 0x00151a21, 0x00171925, 0x00161a24, 0x00151924, 0x00161927, 0x00141926, 0x00131725, 0x00121422, 0x00131320,
- 0x00141323, 0x00131525, 0x00141522, 0x00111322, 0x000c1120, 0x00202844, 0x0054658b, 0x005d7baa, 0x004977be, 0x00477bc3, 0x004076c1, 0x004275ba, 0x004d79b6, 0x004978b1, 0x004274af, 0x004279b0,
- 0x005b7fb7, 0x006f93cb, 0x008aafe0, 0x008db2de, 0x008cb0df, 0x0085acdc, 0x006e98c9, 0x005b87be, 0x005986cc, 0x005e8ed4, 0x005b8ddb, 0x005685d9, 0x00527dd0, 0x004c77cb, 0x004670c4, 0x00476dbe,
- 0x00506fc1, 0x00506dbf, 0x005470bf, 0x005a75c3, 0x00667ec9, 0x00708bc0, 0x007998b9, 0x0086a3c6, 0x00b9cbee, 0x00c7d9fa, 0x00b7c8e5, 0x00becce3, 0x00d4dcee, 0x00e0e7f3, 0x00e3ebf4, 0x00eaf1f8,
- 0x00f5f4ed, 0x00f9f8f1, 0x00fcfcf4, 0x00fdfef8, 0x00fefefe, 0x00fdfeff, 0x00fdfffd, 0x00fcfefd, 0x00fffeff, 0x00fffefe, 0x00fcfefb, 0x00f7fdfc, 0x00f8fdfc, 0x00fafdff, 0x00fbfefc, 0x00fefffa,
- 0x00fffdff, 0x00fffeff, 0x00fdfdff, 0x00f7fefd, 0x00f7fdfc, 0x00f8faf8, 0x00fcfef7, 0x00fbfff8, 0x00fffdff, 0x00fffdff, 0x00fefefd, 0x00fefffd, 0x00fefefc, 0x00fdfefa, 0x00fcfefa, 0x00fbfbf8,
- 0x00fff4f8, 0x00f8eff2, 0x00ebe6e3, 0x00ecebe2, 0x00f3f5e6, 0x00ebeedf, 0x00d9ddcb, 0x00d4d7c8, 0x00d1cec7, 0x00cdc9c1, 0x00d4d3cb, 0x00b6b7af, 0x0082857c, 0x0061615a, 0x00252622, 0x0010100e,
- 0x00111010, 0x00090909, 0x00000100, 0x00000100, 0x00000001, 0x00020102, 0x00000000, 0x00000100, 0x00050305, 0x00030103, 0x00000101, 0x00000100, 0x00020101, 0x00040303, 0x00020402, 0x00000100,
- 0x0004010c, 0x00030107, 0x00040002, 0x00070000, 0x00060100, 0x00040602, 0x00000603, 0x00000602, 0x00070808, 0x002f2f20, 0x00656646, 0x0071773a, 0x006b6e40, 0x003c3e20, 0x000a0b02, 0x00010202,
- 0x0003020f, 0x00020411, 0x0001020f, 0x0001020b, 0x0004050b, 0x00070206, 0x0004000b, 0x00050929, 0x0028429a, 0x00416ecf, 0x003e77d8, 0x002d70cb, 0x002d71c4, 0x003674d0, 0x002c66ca, 0x002b5dcd,
- 0x002464bf, 0x001f5ebb, 0x001956b2, 0x001952b3, 0x00164bb4, 0x001548b2, 0x001343ab, 0x001240a5, 0x00193ea7, 0x001339a3, 0x001237a0, 0x000a2ea1, 0x00102e88, 0x003e5598, 0x006778a1, 0x00333e52,
- 0x000a0506, 0x000a0304, 0x000c0308, 0x000b0108, 0x00090210, 0x00040408, 0x00030303, 0x00050604, 0x00040204, 0x00040304, 0x001f1f1e, 0x00919290, 0x00fdfdfe, 0x00fefefe, 0x00fdfffd, 0x00fbfdfb,
- 0x00fcfbfc, 0x00999899, 0x00030203, 0x00020202, 0x00030303, 0x00020302, 0x00040404, 0x00010201, 0x00060407, 0x00040305, 0x00020204, 0x00020305, 0x00030406, 0x00030305, 0x00020104, 0x00030205,
- 0x00050106, 0x00050207, 0x00030305, 0x00030507, 0x00050509, 0x00020606, 0x00000906, 0x00000808, 0x0006070b, 0x00040609, 0x00030507, 0x00020406, 0x00040406, 0x00050506, 0x00060506, 0x00050606,
- 0x00050606, 0x00060807, 0x00050706, 0x00060907, 0x000c0a0a, 0x000c090a, 0x000c090a, 0x000e080b, 0x0012090c, 0x0010080a, 0x000c0704, 0x000c0a06, 0x000a0907, 0x000d0e12, 0x004d535d, 0x009da9bb,
- 0x00c7daf0, 0x00a5c3ef, 0x005c84ba, 0x004479b2, 0x003e77b8, 0x00366bbc, 0x003365bc, 0x003f69ba, 0x005c7dc0, 0x00677eba, 0x00556697, 0x00203054, 0x0008142a, 0x000e1e2f, 0x00081c28, 0x0001121a,
- 0x00080413, 0x0004010c, 0x0006040b, 0x00010103, 0x00000000, 0x00020203, 0x00010001, 0x00020002, 0x00060108, 0x00040008, 0x00030006, 0x00030205, 0x00030205, 0x00020203, 0x00020202, 0x00020104,
- 0x00030306, 0x00040205, 0x00040204, 0x00030304, 0x00040506, 0x00030506, 0x00030305, 0x00020205, 0x00050408, 0x00040407, 0x00030306, 0x00020204, 0x00030205, 0x00030103, 0x00353336, 0x00b2b0b3,
- 0x00beb89a, 0x0050341e, 0x0060382a, 0x0068362e, 0x006b3830, 0x006a3e31, 0x006f4736, 0x00774f3e, 0x007c5437, 0x0088583a, 0x00925b43, 0x008d5d3f, 0x009b593e, 0x00a25b3f, 0x00a4553b, 0x009e4f34,
- 0x007d4a25, 0x006d4523, 0x00563418, 0x00593a27, 0x004d3121, 0x001a1e24, 0x0003111e, 0x0005131a, 0x000f1403, 0x0010160f, 0x00282d35, 0x003c4c67, 0x005170aa, 0x005276c1, 0x00597cd7, 0x005c81e0,
- 0x005880e0, 0x005f84e2, 0x006483e5, 0x005e79da, 0x00566ec9, 0x005169c2, 0x00455eb8, 0x003b56ad, 0x002c57a5, 0x002a5ba9, 0x003558ac, 0x004153b0, 0x003552ac, 0x002f54a8, 0x002c52a4, 0x00284f9b,
- 0x00163e6d, 0x00152b4e, 0x0010102c, 0x0011030c, 0x00310b0c, 0x006d180b, 0x00b43c0a, 0x00e7591d, 0x00ea6a33, 0x00de8163, 0x00e5a39b, 0x00f6cec9, 0x00feede5, 0x00e2e0ec, 0x0091a6cc, 0x003872b8,
- 0x00383157, 0x003b1a3c, 0x0039254d, 0x00092a5d, 0x00062b7a, 0x001a327a, 0x00213885, 0x00174290, 0x002736a4, 0x00333998, 0x00423c93, 0x004f4a91, 0x007e6d93, 0x00a78b8e, 0x00c79e83, 0x00cb9a66,
- 0x00b68d43, 0x00a7874a, 0x00725630, 0x002e1e11, 0x001c1a27, 0x00161d23, 0x001b2226, 0x0022282b, 0x00272c1d, 0x002d301f, 0x00393528, 0x0042382d, 0x00403729, 0x003e3426, 0x0040362c, 0x00433b33,
- 0x003f3f2d, 0x00403e2e, 0x004a4332, 0x00564b38, 0x005c5039, 0x0061523b, 0x0066513c, 0x00684e3e, 0x00604b33, 0x00634936, 0x0065473c, 0x005f4339, 0x00513d2f, 0x00453a2d, 0x0039322b, 0x002d2d28,
- 0x001c251a, 0x00182115, 0x001d2018, 0x0026241f, 0x002c2620, 0x007b7877, 0x00fffeff, 0x00ffffff, 0x00f8fafa, 0x00fbfdfc, 0x00fcfcfc, 0x00cecdcd, 0x007b7b7b, 0x005e5e5e, 0x00181617, 0x00110f10,
- 0x00343a1b, 0x00868b72, 0x007b7c6d, 0x00252319, 0x001e1715, 0x003b312f, 0x003d312c, 0x0034271e, 0x002d2708, 0x0046411a, 0x00474022, 0x00372e20, 0x00393026, 0x00615950, 0x00685f5e, 0x00494142,
- 0x0031362e, 0x0022251e, 0x0020201d, 0x001f201f, 0x00181914, 0x00171f16, 0x0023251d, 0x00342924, 0x002c160c, 0x0046332a, 0x00877771, 0x00686256, 0x004a4339, 0x003e281f, 0x00401514, 0x00490e11,
- 0x0018120a, 0x00080500, 0x00050000, 0x00070007, 0x00020307, 0x00020305, 0x00050004, 0x00060305, 0x000b0e06, 0x001d2115, 0x00393933, 0x004e4c4c, 0x00514f46, 0x0049453d, 0x004a443c, 0x00534f40,
- 0x0048482c, 0x003a3821, 0x002d2615, 0x002c2414, 0x004d4435, 0x00635549, 0x005b483e, 0x00332618, 0x0026250a, 0x00626347, 0x00a6a28c, 0x00b3ad9c, 0x00b0a89c, 0x00d3cac2, 0x00fbedec, 0x00f5e5e8,
- 0x00dce0ce, 0x00d5dacd, 0x00d6d9d4, 0x00c7cbcd, 0x00b2b7c2, 0x00a7acb8, 0x00606273, 0x00252735, 0x000c1817, 0x000f1615, 0x000e0f18, 0x00130d1c, 0x00817a74, 0x00d4cdbc, 0x00d4ceb4, 0x00e6dcc4,
- 0x00dbd7c0, 0x00d3cbbe, 0x00a19793, 0x006d6460, 0x00786f6b, 0x00887e6d, 0x007e7159, 0x007c6b4e, 0x00837046, 0x0072623a, 0x005b4d30, 0x0058533d, 0x005d6255, 0x006f7164, 0x0088837a, 0x007d7467,
- 0x00394237, 0x00131911, 0x001a1b1a, 0x00232125, 0x00282328, 0x00221b1f, 0x00261d1e, 0x002e241f, 0x004f4d33, 0x008a886e, 0x0088826f, 0x00575346, 0x006f7476, 0x00737e92, 0x003c4d73, 0x003a5183,
- 0x00214374, 0x000d2752, 0x00031639, 0x000e1a35, 0x00131d27, 0x00121b25, 0x00141e34, 0x001e2b54, 0x0026406d, 0x0019315b, 0x00667399, 0x00dfe1ef, 0x00fefefa, 0x00fffefa, 0x00fffefc, 0x00fdfeff,
- 0x00d5d7d6, 0x00898b89, 0x00878586, 0x00a4a3a3, 0x006d716c, 0x00383c39, 0x003b3d3e, 0x003e4043, 0x0036403f, 0x00394244, 0x003e424c, 0x00454653, 0x0041444d, 0x0043454e, 0x00494a54, 0x0045484d,
- 0x00555d57, 0x00717471, 0x008c8787, 0x00958f8a, 0x00a59891, 0x009c816f, 0x008c664a, 0x00986c4b, 0x00b68853, 0x00c38f5f, 0x00c59367, 0x00b98d65, 0x00bd9872, 0x00cea97e, 0x00d5ab7f, 0x00e1b283,
- 0x00e1ba8d, 0x00e4ba8d, 0x00e9bd92, 0x00e5b98f, 0x00e4b68b, 0x00e0b389, 0x00dbae86, 0x00d5a67d, 0x00c7a170, 0x00c49c6c, 0x00c69a6e, 0x00c6996a, 0x00cc996a, 0x00d19e6a, 0x00da9e6d, 0x00e09f6c,
- 0x00dda86a, 0x00e3af78, 0x00dca478, 0x00c59266, 0x00a3734d, 0x00785b4a, 0x004e3a32, 0x00362018, 0x00131100, 0x00070600, 0x00040102, 0x00000101, 0x00020001, 0x00040102, 0x0009020b, 0x0006020b,
- 0x00080300, 0x00100400, 0x0026170c, 0x00534641, 0x00767b8d, 0x007e8eb6, 0x006b87c1, 0x004c6fbe, 0x00204fa4, 0x000b3593, 0x00011d7c, 0x00011566, 0x00010f4a, 0x0000093b, 0x00040a38, 0x00040c39,
- 0x00001336, 0x00000820, 0x001c1c1d, 0x00726746, 0x00b49e4f, 0x00b0922b, 0x00a3821a, 0x0098822b, 0x008d8e6b, 0x00798998, 0x00556faf, 0x003760cb, 0x002c6ce6, 0x002977e4, 0x00247fdb, 0x002182cb,
- 0x002572dd, 0x001f79e6, 0x002275e3, 0x004187e3, 0x00c2d1e8, 0x00f5faf9, 0x00fffdfc, 0x00fffeff, 0x00f1fff9, 0x00f7fff5, 0x00fdfbf8, 0x00fefbfa, 0x005c6576, 0x008ea1bc, 0x008399be, 0x0050668e,
- 0x0010253b, 0x000c1827, 0x00141920, 0x00151417, 0x00131612, 0x0015121e, 0x0013131d, 0x0010150f, 0x0002100c, 0x00081630, 0x001b244e, 0x00222c5b, 0x0023333d, 0x0035434d, 0x00484e63, 0x00282b50,
- 0x001b3747, 0x001c3740, 0x00070f15, 0x00080909, 0x004c4330, 0x008e755e, 0x007e5c45, 0x00653827, 0x00452824, 0x002f1a25, 0x00363a59, 0x002c6096, 0x00265fa4, 0x00275fad, 0x00265db4, 0x001c52ae,
- 0x0009428d, 0x000b397c, 0x00204279, 0x002d486c, 0x0023344e, 0x001d366e, 0x002e5099, 0x00264e9e, 0x001c4c95, 0x001a477e, 0x0005244f, 0x00011324, 0x0009130f, 0x000d1614, 0x000e1519, 0x000c1721,
- 0x00090e03, 0x000a0e0a, 0x00131318, 0x00101217, 0x000a0f0e, 0x000b120d, 0x00080e0d, 0x00091115, 0x00021125, 0x00192544, 0x001c2b58, 0x001b396d, 0x00063c86, 0x00084793, 0x00265fa5, 0x00385f94,
- 0x00091c2f, 0x00001122, 0x00757a88, 0x007a777a, 0x00452e1f, 0x006a4b31, 0x007e6352, 0x00736e75, 0x0028517e, 0x00225b9d, 0x002061b7, 0x001c62be, 0x002468bd, 0x002c71be, 0x003171bc, 0x0013539b,
- 0x00010f14, 0x00031417, 0x00323b45, 0x006f777a, 0x00a1978a, 0x00a68f77, 0x00aa8565, 0x00b2805a, 0x009d7248, 0x00936b45, 0x008a634e, 0x005a403a, 0x00707895, 0x00899299, 0x00979275, 0x00a48430,
- 0x00ae7a0f, 0x009d7239, 0x00986e57, 0x00946f65, 0x00ac7645, 0x00aa7446, 0x00af743f, 0x00ae7230, 0x00a5751f, 0x009d762f, 0x009b774f, 0x00896b64, 0x004a3944, 0x00564345, 0x00594138, 0x00583e23,
- 0x005b4331, 0x005a524d, 0x00434347, 0x00212937, 0x002d2825, 0x00634a34, 0x008b5e3f, 0x0097623b, 0x0096805e, 0x00e6e1cc, 0x00fcfff8, 0x00fdfefb, 0x00fdfcf7, 0x00fef9f1, 0x00fff8ec, 0x009d8779,
- 0x004c2f0b, 0x005b3911, 0x006b3d15, 0x00743d17, 0x00784015, 0x00683c0a, 0x0085613b, 0x00ceb4a1, 0x00f8fcf5, 0x00f5fdf7, 0x00f8fcfa, 0x00fffefa, 0x00f1efe4, 0x009b9894, 0x00262229, 0x00221f33,
- 0x0020211f, 0x0020211e, 0x00212122, 0x00201e22, 0x00201e21, 0x001d1a20, 0x001c1924, 0x001c1924, 0x0014181c, 0x0010171b, 0x00161922, 0x0019192a, 0x00151727, 0x00141527, 0x00161427, 0x00141528,
- 0x000d161d, 0x000e161f, 0x00121324, 0x00111324, 0x00101323, 0x001c2441, 0x004a5884, 0x005973a7, 0x004077b9, 0x003d79c0, 0x003e78c6, 0x004177c3, 0x004a7cbf, 0x00477ab9, 0x004778b9, 0x00477aba,
- 0x003e76b6, 0x004175b4, 0x005888c9, 0x00699ad9, 0x006899d4, 0x005d8dcb, 0x00598acd, 0x005889cf, 0x004889ce, 0x004487d0, 0x004886d9, 0x004b83e0, 0x00487fda, 0x00477bd7, 0x004877d3, 0x004773d1,
- 0x003b6bbf, 0x003864b9, 0x00375db6, 0x003558b5, 0x002f52b0, 0x002f559f, 0x00345c97, 0x002c528f, 0x00577faa, 0x0082a4cd, 0x006f8ab4, 0x00546a91, 0x0054617e, 0x00656e87, 0x00787c93, 0x008b8b9e,
- 0x008f9683, 0x009a9f90, 0x00b2b4ab, 0x00c2c3be, 0x00d1cfce, 0x00d7d6d6, 0x00e5e3e5, 0x00eeedef, 0x00eef3ea, 0x00f0f8ed, 0x00f7fcf8, 0x00fcfdfd, 0x00fcfdfe, 0x00fdfdfc, 0x00fdfbfe, 0x00fdfbfe,
- 0x00f4faf6, 0x00f5fbf9, 0x00f8fcfd, 0x00f6fefd, 0x00f4feff, 0x00f9fdff, 0x00fffeff, 0x00fefbfc, 0x00f4fbf2, 0x00f6fbf3, 0x00fefcfb, 0x00fdfafd, 0x00fbfdfe, 0x00f9fdfe, 0x00fbffff, 0x00fbffff,
- 0x00f7f8fa, 0x00f9f9f8, 0x00fcfcfb, 0x00fbfbfd, 0x00fafcf8, 0x00fafcf8, 0x00f9fbf5, 0x00f7f8f1, 0x00eef2e6, 0x00eceee4, 0x00f2f0ea, 0x00e3e1dc, 0x00d4d5d0, 0x00cbccc8, 0x00b0afab, 0x00969693,
- 0x00737871, 0x00626661, 0x004e504d, 0x00424241, 0x00323133, 0x00282729, 0x001c1c1d, 0x00111113, 0x00060d03, 0x00040903, 0x00030404, 0x00030103, 0x00000000, 0x00000000, 0x00040203, 0x00030205,
- 0x00000202, 0x00000000, 0x00070001, 0x000b0000, 0x00060301, 0x00030403, 0x00040404, 0x00020303, 0x00000d00, 0x00353925, 0x00737854, 0x00768139, 0x00747e42, 0x00464d22, 0x000b0e02, 0x00040204,
- 0x00000305, 0x00000810, 0x0014182a, 0x00202337, 0x00212335, 0x001b171d, 0x00161322, 0x00242b51, 0x00375fb0, 0x00336ccd, 0x002a6cd7, 0x002773db, 0x00216cce, 0x002263c9, 0x002e66d8, 0x003562de,
- 0x001b65b8, 0x00185bb4, 0x001755b4, 0x001952b8, 0x00194eb9, 0x001648b4, 0x001742ad, 0x00173fab, 0x000f3c9d, 0x000f3897, 0x000d2e97, 0x000a2ca0, 0x00082a90, 0x000b287f, 0x004a5ea0, 0x005a6a8f,
- 0x000d1b12, 0x00000700, 0x000a0003, 0x0011000c, 0x0011001c, 0x00060009, 0x00050204, 0x0008040a, 0x00000000, 0x00000000, 0x001d1d1d, 0x008f8f8f, 0x00fdfdfd, 0x00fefefe, 0x00fefefe, 0x00fefefe,
- 0x00f7f9f6, 0x00959694, 0x00020200, 0x00020201, 0x00030404, 0x00020304, 0x00030305, 0x00040305, 0x00000200, 0x00010200, 0x00020201, 0x00020104, 0x00020205, 0x00030306, 0x00030308, 0x00030306,
- 0x00000200, 0x00000200, 0x00040606, 0x00040406, 0x0006060a, 0x0003070a, 0x0003090c, 0x0004080c, 0x00000805, 0x00000603, 0x00050607, 0x00060607, 0x00050608, 0x00060509, 0x000c070d, 0x000c070d,
- 0x00000700, 0x00020800, 0x00090606, 0x000c0807, 0x000e0a06, 0x000f0908, 0x00100a0a, 0x0012090c, 0x000c0905, 0x000c0a08, 0x000c0806, 0x00080a01, 0x0020211a, 0x0060666a, 0x00c7ccdb, 0x00e9f3fe,
- 0x00c7e4f8, 0x00a1c5f6, 0x0085b2f0, 0x0084b6f7, 0x0072aaef, 0x004f89e7, 0x00386cd6, 0x00305dc5, 0x00315bac, 0x003e62ac, 0x005775b8, 0x005a75ae, 0x00516b95, 0x00617d9f, 0x00597892, 0x0033506b,
- 0x000a1016, 0x00000104, 0x00040308, 0x00040307, 0x00010204, 0x00010302, 0x00060306, 0x00070307, 0x00000000, 0x00000102, 0x00020207, 0x00060309, 0x00040407, 0x00030305, 0x00060408, 0x0005040a,
- 0x00000200, 0x00000301, 0x00030304, 0x00030205, 0x00010205, 0x00020307, 0x00050408, 0x00040407, 0x00000000, 0x00000101, 0x00020104, 0x00040205, 0x00030506, 0x00020304, 0x00424043, 0x00c2c2c5,
- 0x00c2baa2, 0x004e321d, 0x00563120, 0x005c2e20, 0x00623124, 0x00673a29, 0x00724832, 0x007e563f, 0x008a5c41, 0x008f5d44, 0x00956144, 0x0095633a, 0x00a05a36, 0x00a85a3a, 0x00a95536, 0x00a14f31,
- 0x00834628, 0x006e4122, 0x004d2c0b, 0x00341801, 0x00371f03, 0x00261a12, 0x00090700, 0x00060501, 0x00000c0e, 0x00102f48, 0x00386590, 0x004174af, 0x005876b2, 0x007b6e9a, 0x009f6c86, 0x00b9636b,
- 0x005e85e2, 0x006186e5, 0x005678d8, 0x004666c5, 0x003e5cb9, 0x003a59b3, 0x003554ad, 0x003050a8, 0x002a50a6, 0x002a54ab, 0x002c5aae, 0x002c5baf, 0x002b57ad, 0x00304ea7, 0x002d439b, 0x0027388e,
- 0x00202972, 0x001a235a, 0x000b1842, 0x00010f22, 0x00000a0c, 0x00220406, 0x00550f05, 0x00952c0b, 0x00d34d19, 0x00e36137, 0x00e3704a, 0x00ee8d77, 0x00e8b8b3, 0x00a4a1c1, 0x003d6ea8, 0x000a67c4,
- 0x0078321e, 0x00721a10, 0x00612529, 0x00243052, 0x0025479c, 0x00324da7, 0x00274aaf, 0x000d4dbf, 0x00123ede, 0x00143dce, 0x001634b5, 0x0020329a, 0x002b3177, 0x00534670, 0x00957a83, 0x00b38e78,
- 0x00b78e65, 0x00a3805c, 0x00684c30, 0x00362919, 0x00222321, 0x00182024, 0x001d262c, 0x00232a2e, 0x00292d2a, 0x0031302a, 0x0038332d, 0x003b342d, 0x003c332c, 0x0039332a, 0x003a372d, 0x00403e33,
- 0x00444539, 0x00434237, 0x00494436, 0x00534b39, 0x005d513a, 0x0062553c, 0x0067543c, 0x0069533e, 0x006b503c, 0x006c4f3d, 0x006b4d3f, 0x00634639, 0x00553f2e, 0x004a3b2b, 0x003c3227, 0x002d2c20,
- 0x0023271c, 0x001e2118, 0x00212018, 0x002b271f, 0x00332b24, 0x007d7a78, 0x00fcfdfc, 0x00fcfefe, 0x00fcfafb, 0x00fefdfe, 0x00fdfcfc, 0x00cecece, 0x007a7b7b, 0x005b5b5b, 0x00141515, 0x00111212,
- 0x003f4428, 0x0092977d, 0x00727462, 0x001d1d13, 0x0015120d, 0x00231f1b, 0x00201b18, 0x001c1610, 0x001e1806, 0x00443e28, 0x004e4734, 0x0040392b, 0x00474135, 0x00544f47, 0x00585351, 0x00423e3c,
- 0x003c3b3a, 0x002e2e2d, 0x00232623, 0x001b1e1a, 0x00191c14, 0x001b271d, 0x001b2b21, 0x002a3029, 0x001d150f, 0x0029201a, 0x00655f57, 0x00515146, 0x00322c23, 0x0021100b, 0x00210304, 0x002f040a,
- 0x001e1818, 0x000d0708, 0x00040000, 0x00040001, 0x00050307, 0x000f0d12, 0x00100d10, 0x000a0707, 0x000b0a02, 0x0017160d, 0x0027271f, 0x00383731, 0x00424032, 0x003d3a29, 0x0045422c, 0x005c583d,
- 0x00797153, 0x00706549, 0x005d4e34, 0x0057472d, 0x007c6e55, 0x00927f6c, 0x007a6454, 0x00463420, 0x00574b2d, 0x00a89d7f, 0x00cfc4a9, 0x00ccc2aa, 0x00d7d0bd, 0x00f6eedf, 0x00f1e7e1, 0x00f4eae9,
- 0x00e4e6d9, 0x00d6d9cf, 0x00ced1ca, 0x00a4a7aa, 0x00777b87, 0x007e8392, 0x00484d5d, 0x001b232d, 0x0010181e, 0x00101a18, 0x0013141a, 0x00100515, 0x00605851, 0x00bcb79f, 0x00c7c3a1, 0x00ddd7b2,
- 0x00e0dac0, 0x00d7cdc0, 0x009b8f8a, 0x00675a58, 0x006f625f, 0x007f7260, 0x007b6b4e, 0x00796343, 0x007b5e37, 0x006a512d, 0x00544024, 0x005b503c, 0x00696a5e, 0x00717265, 0x007d7b6d, 0x00767261,
- 0x00474842, 0x00181915, 0x00161716, 0x001f2020, 0x00242325, 0x00221e1f, 0x00231e1c, 0x0026201d, 0x00272414, 0x005a5545, 0x00857e6a, 0x006a6854, 0x00747874, 0x00788290, 0x003e4f6a, 0x00384e78,
- 0x00223d6b, 0x00122850, 0x00001332, 0x000a172c, 0x00242e34, 0x00414952, 0x00364053, 0x00273759, 0x002c4276, 0x001f3362, 0x0066749a, 0x00dce2ee, 0x00fdfff9, 0x00fdfef8, 0x00fefff9, 0x00fbfffe,
- 0x00d9d8db, 0x008d8d8e, 0x00888588, 0x00a4a3a3, 0x006f736e, 0x00393e38, 0x003a3e3d, 0x003d4142, 0x003c4147, 0x003f444c, 0x003b404d, 0x003d4351, 0x00404752, 0x00424a55, 0x00464f59, 0x00485258,
- 0x0045474c, 0x0048494c, 0x00595455, 0x006c6562, 0x00756a64, 0x007f6a5c, 0x009b7b64, 0x00b58b70, 0x00c39362, 0x00ca9769, 0x00c8986b, 0x00be936a, 0x00bd9873, 0x00cfaa81, 0x00d4ae83, 0x00deb888,
- 0x00e4b98f, 0x00e4b88f, 0x00e2b78d, 0x00e0b88d, 0x00dfb68c, 0x00dfb68b, 0x00daaf85, 0x00d4a57c, 0x00c89f74, 0x00c69a70, 0x00c2956b, 0x00c09163, 0x00c49564, 0x00cd9966, 0x00d69f6a, 0x00dfa36d,
- 0x00eaac76, 0x00ecaf7a, 0x00e3a972, 0x00dfa673, 0x00cf9869, 0x00bd8d4f, 0x00926e2a, 0x006f501b, 0x00483313, 0x00251c08, 0x000d0b02, 0x00030802, 0x00000700, 0x00010600, 0x00000400, 0x00030800,
- 0x000a0400, 0x00090001, 0x000f0e12, 0x00434959, 0x00788eb6, 0x007899d5, 0x004c78c2, 0x002e5eba, 0x00143e9e, 0x00032385, 0x00011775, 0x0004136d, 0x00021048, 0x00000c33, 0x00000b25, 0x00000d2c,
- 0x00000d39, 0x00020927, 0x00414342, 0x009b9368, 0x00c7b149, 0x00d7a82f, 0x00d4a019, 0x00bd960c, 0x00bca832, 0x00b3ae65, 0x0080876d, 0x005a6d93, 0x004064c4, 0x00396bd7, 0x003775e2, 0x00377de2,
- 0x003577e1, 0x00297bef, 0x002374e6, 0x00458aeb, 0x00c6d4ed, 0x00f5f8f9, 0x00fefcfd, 0x00fcfefe, 0x00f7feff, 0x00fcfffb, 0x00fdfbf9, 0x00f7f4f6, 0x003c4455, 0x007e92ac, 0x0088a0bd, 0x007087a5,
- 0x00444d5d, 0x0024262d, 0x00151511, 0x00111207, 0x000c1001, 0x00140d11, 0x00110e10, 0x00091007, 0x00041420, 0x00112653, 0x00233a79, 0x0033488c, 0x00253d57, 0x00546777, 0x00a3b1c3, 0x007981a0,
- 0x002a2760, 0x004b456f, 0x003a2d41, 0x002d1818, 0x00926f4f, 0x00ae805b, 0x0085552d, 0x005f2d07, 0x005a3113, 0x00431d05, 0x002d2f2b, 0x001d5891, 0x002f6bae, 0x00225fac, 0x002359af, 0x00275cb5,
- 0x00224ea0, 0x00284587, 0x002e4576, 0x0044526d, 0x00535c61, 0x0040588b, 0x00214692, 0x00174193, 0x001a4492, 0x00153974, 0x00062148, 0x00011122, 0x00050b00, 0x000d1107, 0x000b0e06, 0x00090d0b,
- 0x000e0901, 0x00110907, 0x001b1415, 0x00161212, 0x000a0905, 0x00090e0b, 0x00030809, 0x00030b10, 0x0003102a, 0x001b264f, 0x00192d5f, 0x001d3f78, 0x00245fab, 0x001c5cb0, 0x000c50a3, 0x00215ba7,
- 0x002a4e82, 0x00324670, 0x00667087, 0x00787781, 0x003c2d29, 0x0059361a, 0x00775537, 0x00675752, 0x00364d78, 0x00264b90, 0x002252a6, 0x002258b5, 0x001c52a8, 0x002c67b1, 0x00417cc1, 0x003776b5,
- 0x0037465a, 0x00112437, 0x002d4355, 0x00707f8e, 0x00838985, 0x00857667, 0x007e654b, 0x00936e4b, 0x009f7250, 0x009b7052, 0x009b7b65, 0x0052494c, 0x00435e86, 0x005b7a9a, 0x00798e8d, 0x008c8854,
- 0x00ac7d37, 0x00a97249, 0x00a17558, 0x00ab8472, 0x009f8251, 0x00aa7a4d, 0x00ab7840, 0x00b07532, 0x00ae7629, 0x00ab7937, 0x00a07544, 0x008c6952, 0x005c423a, 0x00614432, 0x005a3b1d, 0x00613d12,
- 0x006f4720, 0x00816850, 0x00776b58, 0x00353027, 0x0026170a, 0x0057381e, 0x006e4421, 0x0082542b, 0x00a38b72, 0x00f3eae0, 0x00fbfaf9, 0x00fbfdfb, 0x00fefefc, 0x00fff9f5, 0x00fcfcf0, 0x00998d7e,
- 0x006d523c, 0x0077583f, 0x00775336, 0x00774f30, 0x00724a29, 0x0067441d, 0x008b714e, 0x00d3c4af, 0x00f9fcfc, 0x00f8fefc, 0x00f5faf9, 0x00fdfefa, 0x00ebe6de, 0x00948f8a, 0x00272626, 0x00232429,
- 0x00302827, 0x002f2825, 0x002d2626, 0x00292324, 0x00252222, 0x00201f21, 0x001c1d22, 0x001a1c20, 0x00191b1d, 0x0014191c, 0x00141922, 0x0017182a, 0x00161829, 0x00131728, 0x00121524, 0x00121423,
- 0x00121424, 0x000f1525, 0x000f1224, 0x00111324, 0x000f1323, 0x00151d39, 0x003c4e76, 0x005270a2, 0x00497ac2, 0x00437bc9, 0x003f78cc, 0x004179c9, 0x00487cc7, 0x00477dc4, 0x004279c0, 0x003e78c0,
- 0x003a70c8, 0x00386ec3, 0x00457bce, 0x00568bda, 0x00548ad3, 0x004f85cf, 0x004c85d1, 0x004a84d2, 0x004788d4, 0x004588d8, 0x004788d6, 0x004687cf, 0x004586cd, 0x004785cc, 0x00427dc4, 0x003b75be,
- 0x00346db7, 0x003367b4, 0x003061b1, 0x003060af, 0x002b59aa, 0x002756a6, 0x002a5ba7, 0x002858a2, 0x00426eae, 0x00668dc7, 0x006483b9, 0x003a5381, 0x00253353, 0x002b344c, 0x002d3144, 0x00363643,
- 0x0035362a, 0x00333428, 0x0038392e, 0x00414139, 0x004c4b48, 0x00585756, 0x006f6e6d, 0x00878785, 0x00a1a49b, 0x00b6b9b3, 0x00cdcdc9, 0x00deded6, 0x00eae8e2, 0x00f2eee6, 0x00f6f0e8, 0x00f6f2eb,
- 0x00fff9f3, 0x00fdf9f6, 0x00fdfaf9, 0x00fbfcfb, 0x00f8ffff, 0x00fafdfb, 0x00fffdfb, 0x00fffefd, 0x00fffefd, 0x00fcfdfc, 0x00fdfcfc, 0x00fcfdfd, 0x00f8fffe, 0x00f7fefd, 0x00f9fdfc, 0x00f7fdfc,
- 0x00fbf9ff, 0x00fdfbfe, 0x00f9fbfb, 0x00f3f9fa, 0x00f9fefe, 0x00f9feff, 0x00fbfffe, 0x00fdfbfc, 0x00f9fbfa, 0x00fdfefd, 0x00f9f9f5, 0x00fafaf4, 0x00fbfdf7, 0x00f8faf5, 0x00fafaf6, 0x00f2f4f1,
- 0x00e9e8e8, 0x00dedede, 0x00d1d2d2, 0x00c7c8c8, 0x00b5b6b6, 0x00a3a3a3, 0x008c8c8c, 0x00787777, 0x00636263, 0x00515151, 0x003e3e3d, 0x002a2b29, 0x001c1d1c, 0x00131413, 0x000d0d0c, 0x000b0c0b,
- 0x0004020c, 0x00070005, 0x000a0100, 0x000c0001, 0x00040000, 0x00010202, 0x00010400, 0x00000500, 0x00040a01, 0x002e2f1e, 0x00626642, 0x00737c3c, 0x00656f3a, 0x00373e1a, 0x00010800, 0x00020701,
- 0x00040a16, 0x00171d2c, 0x002e3243, 0x002e3347, 0x00262b41, 0x00222432, 0x00202436, 0x00303f62, 0x0037579c, 0x002d5baf, 0x002d68c0, 0x00296ac3, 0x002265c2, 0x002766cc, 0x002460cd, 0x002660d6,
- 0x00235dc8, 0x001d55c0, 0x00164ebb, 0x001850bf, 0x00154cba, 0x001549b7, 0x001642ae, 0x00153ea7, 0x00133d9a, 0x00133996, 0x000f2e85, 0x000a2479, 0x000c2787, 0x000a2383, 0x0019337f, 0x00314c80,
- 0x001d2e36, 0x00010b0b, 0x00010001, 0x000c0009, 0x000f001b, 0x0009010d, 0x00020202, 0x00050506, 0x00010101, 0x00000000, 0x001d1d1d, 0x008f8f8f, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd,
- 0x00f9faf9, 0x00989897, 0x00020202, 0x00020202, 0x00020303, 0x00020303, 0x00030304, 0x00030303, 0x00010303, 0x00020204, 0x00020204, 0x00010103, 0x00020104, 0x00030205, 0x00030305, 0x00030306,
- 0x00020307, 0x00020407, 0x00040508, 0x00050408, 0x00050508, 0x00030809, 0x00020809, 0x00030708, 0x00020608, 0x00020709, 0x0006070a, 0x0008070a, 0x00050507, 0x00050507, 0x00080608, 0x000b080a,
- 0x00090706, 0x00080702, 0x00090702, 0x000c0902, 0x00100b04, 0x00130b09, 0x00120b0a, 0x00110a08, 0x000f0a0b, 0x000d0a0d, 0x000c0c09, 0x001a1d0d, 0x00757672, 0x00c8cdd4, 0x00dfecff, 0x00ccdff9,
- 0x009eb9ee, 0x00779ce0, 0x006a99df, 0x00699ee3, 0x005e98df, 0x004886e2, 0x003471d7, 0x00336dd3, 0x003064c1, 0x002c5ab0, 0x00325bab, 0x004a72bb, 0x00688fca, 0x0079a4d9, 0x0083b2e0, 0x006695c2,
- 0x00333b4f, 0x000a0f1e, 0x0000000a, 0x00020409, 0x00010203, 0x00030303, 0x00040203, 0x00030404, 0x00030108, 0x00000106, 0x00000306, 0x00030405, 0x00030304, 0x00020205, 0x00030406, 0x00020305,
- 0x00020208, 0x00020306, 0x00050307, 0x00050406, 0x00030505, 0x00030406, 0x00040407, 0x00030306, 0x00010003, 0x00020104, 0x00020003, 0x00010002, 0x00020204, 0x00000002, 0x003f3f41, 0x00c6c6c8,
- 0x00b9b59c, 0x00472d18, 0x00502a19, 0x005c2b1a, 0x006c3825, 0x0074452f, 0x007a5037, 0x00805840, 0x008d5b41, 0x00955e44, 0x009b6240, 0x0097602a, 0x00a45c33, 0x00a35534, 0x00a14e38, 0x00984c3a,
- 0x0073452f, 0x00573824, 0x003b2512, 0x00463927, 0x007d7161, 0x00755548, 0x003a1c1b, 0x0018152d, 0x000d396b, 0x001f588d, 0x004c7eb1, 0x00668baf, 0x00ada0b0, 0x00cda6b0, 0x00bf8790, 0x00b67480,
- 0x005c86ca, 0x005982c9, 0x00456bb6, 0x00385cab, 0x00385aae, 0x003959b0, 0x003756ae, 0x003352ae, 0x002f52ad, 0x003052b0, 0x002b54ae, 0x001957a9, 0x002953ab, 0x0028459b, 0x00243283, 0x00262776,
- 0x0023215c, 0x0021284d, 0x000f1732, 0x000a1a28, 0x00061919, 0x000c1617, 0x00171119, 0x00251014, 0x0059140a, 0x00902e13, 0x00bf5233, 0x00c96652, 0x00855f7e, 0x004a4f86, 0x003a5ca5, 0x005184d3,
- 0x00a94023, 0x00992521, 0x00711f3d, 0x002c2f75, 0x002b48cd, 0x002f49c1, 0x00274cbc, 0x001051be, 0x00174cc7, 0x00174fad, 0x00194eaa, 0x000d3ea3, 0x00122d89, 0x001e2877, 0x00383073, 0x00635180,
- 0x00a08b9f, 0x00a6959d, 0x00615754, 0x00313323, 0x002a3520, 0x00222f2b, 0x00202c35, 0x00252d35, 0x002c2d32, 0x00313032, 0x00343132, 0x00343230, 0x00363332, 0x00363334, 0x00383638, 0x00403c3e,
- 0x0041413f, 0x0043443f, 0x004b4940, 0x00554f42, 0x005e523f, 0x0061533d, 0x0065543d, 0x00695540, 0x00705341, 0x0070523f, 0x006d503d, 0x00644937, 0x0056412f, 0x004a3c2c, 0x003b3225, 0x002d2b1c,
- 0x00202216, 0x001f2017, 0x00242219, 0x002b251c, 0x00322922, 0x007b7774, 0x00fdfdfc, 0x00fdfeff, 0x00fcfbfb, 0x00fdfcfd, 0x00fbfcfc, 0x00cecfce, 0x007d7d7d, 0x005f5e5e, 0x00141515, 0x000c0e0d,
- 0x003f472c, 0x00959d84, 0x006f7462, 0x0023261a, 0x001b1b19, 0x00191914, 0x0010100b, 0x000e0d09, 0x00121008, 0x002f2d22, 0x00514f42, 0x002b291c, 0x0038352a, 0x0053504b, 0x00433f40, 0x003e3a3b,
- 0x00393a39, 0x00303030, 0x00292929, 0x00212421, 0x001e1f1a, 0x0016231d, 0x00182922, 0x002a3530, 0x001a1a1b, 0x00212220, 0x00535751, 0x003f443c, 0x0026231e, 0x00170908, 0x001a0305, 0x00230307,
- 0x0011110c, 0x00090705, 0x00060102, 0x00070202, 0x00312a2c, 0x00514b4c, 0x004c4847, 0x002d2926, 0x00131006, 0x00181308, 0x001e1c0c, 0x00242413, 0x0032301a, 0x002c2610, 0x003d371b, 0x005a5233,
- 0x007b704b, 0x0082744f, 0x006e5a36, 0x0068512f, 0x00907a5b, 0x009f8a70, 0x0078634b, 0x00594529, 0x00907d60, 0x00d3c3a2, 0x00c5b896, 0x00a8a081, 0x00c3bea8, 0x00efe9dc, 0x00e9e0dd, 0x00e1d9da,
- 0x00cfd3c6, 0x00bec3b7, 0x00a7a9a5, 0x007c7c7f, 0x0042424f, 0x003e3f4b, 0x00262935, 0x0012181f, 0x0013181f, 0x00111a1c, 0x00101119, 0x00110517, 0x00534a47, 0x00a6a08c, 0x00c2bea0, 0x00ddd9b7,
- 0x00e6e0c4, 0x00cbc1af, 0x0085786e, 0x005d4c48, 0x005c4a47, 0x005f503e, 0x0078684c, 0x00846f50, 0x008d6a49, 0x006e5231, 0x005d492e, 0x00655b47, 0x0073736b, 0x00717168, 0x00737268, 0x00676658,
- 0x00333531, 0x00141614, 0x00151515, 0x00181718, 0x001d1a1c, 0x00201d1d, 0x00211f1b, 0x001d1d18, 0x00231e15, 0x00332d21, 0x00666150, 0x00717257, 0x00666a64, 0x00616a73, 0x00425069, 0x0039496f,
- 0x00223b5f, 0x000b1f3f, 0x0003142c, 0x00061324, 0x004a5159, 0x00969ca9, 0x00636c82, 0x002b3d5d, 0x00263b71, 0x001f3261, 0x0067759a, 0x00dae0ec, 0x00fcfcf9, 0x00fefcfa, 0x00fdfefb, 0x00f9fdfd,
- 0x00d9d8dd, 0x008c8d90, 0x00868688, 0x00a5a6a5, 0x00757873, 0x00414340, 0x00404343, 0x00414547, 0x0042444c, 0x0040464e, 0x003c454f, 0x003d4854, 0x003e4a59, 0x00404c5e, 0x00434f62, 0x00475365,
- 0x0049525e, 0x004a5159, 0x004d4e54, 0x004a4748, 0x00413a39, 0x0043362e, 0x005b4537, 0x0085644f, 0x00b98965, 0x00bd8b63, 0x00bb8c61, 0x00ba9167, 0x00bc9972, 0x00cba87f, 0x00d7b287, 0x00dfb989,
- 0x00e2ba8f, 0x00e4ba92, 0x00e2b78e, 0x00e3b88f, 0x00ddb18a, 0x00d9ae86, 0x00d2a880, 0x00cca27b, 0x00c99e76, 0x00c2986e, 0x00bb9165, 0x00ba8d5c, 0x00be8e5e, 0x00cb9664, 0x00d9a270, 0x00e2a975,
- 0x00e7ae79, 0x00eeb37a, 0x00e5a674, 0x00e8ab78, 0x00e9a879, 0x00dfa145, 0x00c18828, 0x00af7b3b, 0x007e5b59, 0x004a374e, 0x002b2549, 0x000b1738, 0x0004162d, 0x00040e1d, 0x0000060d, 0x00010d10,
- 0x0002060c, 0x00000211, 0x0015203c, 0x0052648b, 0x007394d8, 0x005683d4, 0x00295dba, 0x00174bb1, 0x000e3195, 0x00001776, 0x00061570, 0x0005106c, 0x00030d4d, 0x00060c3c, 0x00040c31, 0x0000072c,
- 0x00000935, 0x00121530, 0x0059544e, 0x009e8b5b, 0x00ab8c1f, 0x00cd932e, 0x00e09e2f, 0x00d69b19, 0x00d6a917, 0x00c7a625, 0x00b49b3b, 0x00998951, 0x007b7585, 0x0076799b, 0x008087b6, 0x00737db3,
- 0x004c78b6, 0x003d77c9, 0x003672d1, 0x00568be5, 0x00d1d8fb, 0x00f5f8f8, 0x00fafbf9, 0x00fafffd, 0x00f7fdfe, 0x00fafdfa, 0x00fffffd, 0x00e3e3e9, 0x002c364c, 0x005b6c88, 0x00869bb6, 0x00798ea6,
- 0x003f454e, 0x00111310, 0x00120f07, 0x00120e02, 0x000f1102, 0x000f0905, 0x0016100b, 0x00090a01, 0x000a1b2e, 0x00253f73, 0x001e3e82, 0x0020448d, 0x00264669, 0x007791a9, 0x00b1bfda, 0x006a6f97,
- 0x00072d5e, 0x00183c58, 0x002d4147, 0x00545741, 0x00a98c68, 0x00997054, 0x00874c3b, 0x007b3936, 0x00843943, 0x0071272e, 0x003e2138, 0x001a578b, 0x002660a3, 0x00194f9a, 0x001f4c9e, 0x00254ca1,
- 0x00284b90, 0x00263a6f, 0x00354366, 0x001e2232, 0x00525049, 0x003c4f74, 0x001c3c7a, 0x0016377d, 0x0016357b, 0x00132a5b, 0x00111d42, 0x000d0f13, 0x00120602, 0x00130800, 0x00130803, 0x00110602,
- 0x000e0702, 0x000d0401, 0x00281b1a, 0x00160d0d, 0x00110703, 0x000c0601, 0x00070904, 0x00090c0f, 0x00131c39, 0x0026335f, 0x00374980, 0x002a4c87, 0x003660aa, 0x002b63b5, 0x002662bd, 0x00154eae,
- 0x002b569c, 0x004d6090, 0x007c7a99, 0x00746776, 0x004b3945, 0x00453523, 0x00453528, 0x003a393f, 0x00253b6e, 0x00224387, 0x00254a9b, 0x00214898, 0x00294c93, 0x002a4f8b, 0x00476b9e, 0x00567bad,
- 0x00617b94, 0x00334e67, 0x00102540, 0x00395468, 0x005b6369, 0x005f5c51, 0x00634f3c, 0x00745439, 0x0083604c, 0x00947561, 0x00887b74, 0x003a5b66, 0x001f3b62, 0x0032527e, 0x003c5a7e, 0x00627f91,
- 0x00908373, 0x00a27866, 0x00b7816c, 0x00b48967, 0x008e8c58, 0x00997c4e, 0x00a27749, 0x00a17237, 0x00b47b3c, 0x00af7840, 0x00a7774a, 0x00906a46, 0x006e4d34, 0x00613d1e, 0x00532c0b, 0x00572a05,
- 0x00875b24, 0x00967045, 0x00936f4f, 0x0052371c, 0x002d1007, 0x0052330f, 0x005c370d, 0x00764b29, 0x00aa9482, 0x00faf1eb, 0x00fcfdfc, 0x00f6fcfa, 0x00faffff, 0x00fefdfd, 0x00f8fbf9, 0x00afacaa,
- 0x00a8a096, 0x00c6bbb0, 0x00cfbfb2, 0x00c4b3a4, 0x00b19b8d, 0x009a8570, 0x00ae9d88, 0x00e1dbcc, 0x00fefdff, 0x00f9fcfc, 0x00f9fdfa, 0x00f9fdf7, 0x00e6dbd5, 0x00837b76, 0x00302a26, 0x002f2b28,
- 0x00382b21, 0x00392d22, 0x003a2f25, 0x00342b24, 0x002f2723, 0x00272220, 0x00211f1f, 0x001d1c1b, 0x0018181b, 0x00141719, 0x0012161d, 0x00121423, 0x00121524, 0x00121525, 0x00111323, 0x00110f23,
- 0x00121224, 0x000f1320, 0x00131321, 0x00121222, 0x00111424, 0x000b152c, 0x002f4062, 0x004f6a9b, 0x004c7bc2, 0x00447cc9, 0x00427ecf, 0x00417bc9, 0x00467ac7, 0x00467bc7, 0x004479c9, 0x00417acd,
- 0x003f73ca, 0x00386ec3, 0x003f74c8, 0x004e7ed1, 0x005583d3, 0x005181cf, 0x004c7fcb, 0x00457bc5, 0x00457bc8, 0x00467fcc, 0x004985ca, 0x004888be, 0x004886c1, 0x004882be, 0x004178b7, 0x00396faf,
- 0x003266a9, 0x003467a8, 0x003566ac, 0x003161a8, 0x002e5ba6, 0x002b59a5, 0x002a59a7, 0x003061ab, 0x00496eb7, 0x005f82c1, 0x007392c6, 0x004f6790, 0x0029314a, 0x00323041, 0x00362b36, 0x0039282d,
- 0x00202115, 0x00181a0e, 0x00101109, 0x00080905, 0x00050506, 0x00060608, 0x000d0d0d, 0x001c1c1a, 0x00343430, 0x00454543, 0x005a5750, 0x006c6553, 0x00857867, 0x00998574, 0x00ae9182, 0x00bf9e90,
- 0x00d1b4a0, 0x00d9bfae, 0x00e7cdc3, 0x00eed9ce, 0x00f0e4de, 0x00f1ece6, 0x00f4f1ee, 0x00f8f6f4, 0x00fcfaf8, 0x00fdfcfa, 0x00fdfdfa, 0x00fcfdf8, 0x00fcfaf8, 0x00fffcfb, 0x00fefcfc, 0x00fdfafc,
- 0x00f9fafb, 0x00fdfbfe, 0x00fefeff, 0x00fcfdff, 0x00fcfdfe, 0x00f7fbfc, 0x00f8fefc, 0x00f9fefe, 0x00fafafc, 0x00fafbfc, 0x00fdfdfa, 0x00fcfef6, 0x00fcfdf7, 0x00fdfdf6, 0x00fefef8, 0x00fbfefa,
- 0x00fdfdfb, 0x00fcfcfa, 0x00fcfcfb, 0x00fbfcfc, 0x00fcfcfd, 0x00f3f3f3, 0x00edecec, 0x00e8e7e6, 0x00e1dfe1, 0x00d6d6d7, 0x00cbcccd, 0x00c1c2c2, 0x00b9b9ba, 0x00a8a7a7, 0x008d8b8b, 0x007a7978,
- 0x00615c5e, 0x00473c39, 0x00271513, 0x001d0905, 0x000c0102, 0x00040201, 0x00010403, 0x00000502, 0x00030600, 0x00141309, 0x002f2e1e, 0x00394024, 0x002a2f1d, 0x000e1408, 0x00000203, 0x0006060e,
- 0x00121623, 0x00111525, 0x000e1121, 0x000b0e1d, 0x00050a19, 0x00030e1c, 0x00051221, 0x00051126, 0x000c1531, 0x00111d3d, 0x00243759, 0x00355071, 0x00335b93, 0x0025549f, 0x002357b2, 0x001a57bd,
- 0x001e49c5, 0x001e4cc5, 0x001d4ac8, 0x001949c9, 0x001546c1, 0x001443b9, 0x001441af, 0x00153fa4, 0x00173894, 0x0016358b, 0x00213875, 0x00323b4e, 0x00283269, 0x00212b73, 0x00172372, 0x00192770,
- 0x000f2740, 0x00000e13, 0x00000302, 0x00020100, 0x00070012, 0x00040206, 0x00020102, 0x00030102, 0x00020202, 0x00010101, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fefefe, 0x00fdfdfd, 0x00fdfdfd,
- 0x00faf9fa, 0x00989899, 0x00020202, 0x00000000, 0x00010101, 0x00020101, 0x00020201, 0x00010100, 0x00030303, 0x00030404, 0x00030404, 0x00030304, 0x00040306, 0x00050408, 0x00050508, 0x00040509,
- 0x00040508, 0x00020406, 0x00040506, 0x00070607, 0x00070608, 0x00050708, 0x00050809, 0x00040608, 0x00070609, 0x00070609, 0x0009070b, 0x000b080c, 0x00070409, 0x0009040a, 0x000b060c, 0x000c0a0e,
- 0x000a0b0a, 0x00080905, 0x000b0807, 0x00100907, 0x00130905, 0x00120905, 0x00110b08, 0x000d0b09, 0x000e0b10, 0x000e0d14, 0x000d1312, 0x0059655a, 0x00d4e0e6, 0x00e5f2fc, 0x00a7b9e4, 0x007b94d1,
- 0x00597fc7, 0x004674c0, 0x004277c4, 0x003f76c4, 0x003b77c5, 0x003577c5, 0x003174c5, 0x003374c6, 0x00306abf, 0x002c64b5, 0x002a5eb3, 0x002559a4, 0x003568b5, 0x003f73bd, 0x00588cd5, 0x007baeee,
- 0x008ba0bd, 0x0050647c, 0x000f1930, 0x00000415, 0x0005060d, 0x00040808, 0x00020304, 0x00030304, 0x00030108, 0x00000107, 0x0004060a, 0x00000103, 0x00020203, 0x00030205, 0x00050407, 0x00040305,
- 0x00050308, 0x00020206, 0x00030206, 0x00040306, 0x00030407, 0x00030406, 0x00030305, 0x00020305, 0x00050409, 0x00030206, 0x00030204, 0x00010003, 0x00020104, 0x00010004, 0x0049484a, 0x00d3d2d3,
- 0x00b8b49e, 0x00422715, 0x004d2513, 0x00622f1c, 0x0077402c, 0x007d4b33, 0x00815236, 0x0086573d, 0x008b593c, 0x00935843, 0x00995f3c, 0x009e602f, 0x009e5a33, 0x009b5438, 0x008f4c37, 0x00804735,
- 0x00573928, 0x00483323, 0x00362c1c, 0x00847b6f, 0x00d5cbbd, 0x00aa939f, 0x005e4962, 0x00463e5a, 0x00475879, 0x00667897, 0x00a1b7cd, 0x00bfcbde, 0x00d9ddf0, 0x00ced4ea, 0x00929aca, 0x006f7bb8,
- 0x004f7bb2, 0x004f79b6, 0x003d65a6, 0x0034589f, 0x003758a7, 0x003756aa, 0x003654aa, 0x003552ac, 0x00314ea6, 0x00304faa, 0x002f51aa, 0x002b4da4, 0x00284a9d, 0x00233c8a, 0x001a3075, 0x001e2c69,
- 0x001f2a55, 0x00212744, 0x00202335, 0x0022222c, 0x00262826, 0x00313338, 0x00253038, 0x00101e2d, 0x00150210, 0x00380406, 0x0062221c, 0x00824147, 0x00504276, 0x00313773, 0x006974ae, 0x0099a4cd,
- 0x00a84424, 0x00992d2a, 0x006c2445, 0x00283384, 0x001d42d5, 0x002d42c6, 0x002943b9, 0x001a4db6, 0x002346b4, 0x00284a9c, 0x00224f9c, 0x00164aaf, 0x00173ba3, 0x001b2f95, 0x0015217a, 0x002a2a7b,
- 0x006d669e, 0x00928bb0, 0x00656570, 0x00333c32, 0x00263717, 0x00253433, 0x00273141, 0x0029313d, 0x00313239, 0x0034343a, 0x00363237, 0x00363233, 0x00363435, 0x00333337, 0x0034353c, 0x00393d43,
- 0x003d3f41, 0x00424344, 0x004a4a46, 0x00534e47, 0x005b5142, 0x005f5240, 0x0063523e, 0x0067523f, 0x006e523f, 0x0070513f, 0x006f503d, 0x00674b39, 0x00584332, 0x00493b2c, 0x00382e22, 0x0029261b,
- 0x00191d12, 0x001a1d15, 0x00201f18, 0x00252019, 0x002f261f, 0x007c7875, 0x00fefefc, 0x00fdfefb, 0x00fcfcfc, 0x00fcfcfc, 0x00fafafa, 0x00cecece, 0x007f7f7f, 0x00626162, 0x001a1a1a, 0x00141514,
- 0x00393f28, 0x00818570, 0x006a6c5c, 0x0036372f, 0x002c2b26, 0x001c1b19, 0x0010100c, 0x0012130f, 0x0014120f, 0x0025241e, 0x0045443c, 0x00303026, 0x0033322b, 0x004b4a46, 0x00393837, 0x00343334,
- 0x003a3839, 0x00322e31, 0x00282928, 0x00272522, 0x001f201a, 0x001a201d, 0x001a2624, 0x0028312f, 0x0019211f, 0x00292d2b, 0x00535752, 0x003c3d3a, 0x002a2521, 0x00211716, 0x00241412, 0x00210c0b,
- 0x00070905, 0x00090903, 0x00100d0a, 0x001a1415, 0x00423739, 0x00524848, 0x00403834, 0x002f2620, 0x002f291b, 0x00363323, 0x0036351f, 0x0048472f, 0x00504d31, 0x00524e30, 0x005b5530, 0x00645b34,
- 0x0071663d, 0x00796942, 0x0068542e, 0x0068522c, 0x00917858, 0x009b836b, 0x00735d47, 0x006f593f, 0x00b19f7f, 0x00d8c6a5, 0x00ada07f, 0x009c9173, 0x00c4c1ae, 0x00eae5dc, 0x00dad9d7, 0x00cfcdd4,
- 0x00c7ccc0, 0x00afb1a9, 0x008a8b85, 0x00615e60, 0x00343134, 0x00222226, 0x001a1a1f, 0x0014181c, 0x0011151b, 0x000f151c, 0x0010111c, 0x00100718, 0x0039322f, 0x008d8876, 0x00ccc8af, 0x00e1debf,
- 0x00d9d6bd, 0x00c7bdb0, 0x008b7d74, 0x0064524d, 0x00533f36, 0x00423425, 0x00584d35, 0x007a694e, 0x008a6e50, 0x006b5439, 0x0058482e, 0x00665f4f, 0x00747670, 0x006e6f6c, 0x005c5d55, 0x00434139,
- 0x001e211e, 0x000f1211, 0x00121314, 0x00151516, 0x001a1818, 0x00262422, 0x00292824, 0x0023221d, 0x001b1b16, 0x001a1a12, 0x004c4a3b, 0x006b6a51, 0x0054564d, 0x00464e54, 0x003c495e, 0x00394766,
- 0x00253c5f, 0x000c1f3d, 0x00031229, 0x000d1827, 0x005c6468, 0x00a5adb7, 0x00657185, 0x00223455, 0x001c3366, 0x001c2f5f, 0x00667498, 0x00dadfec, 0x00fffcfb, 0x00fffdfa, 0x00fefefc, 0x00f9fefe,
- 0x00d8d8dc, 0x008e8e91, 0x00878789, 0x00a5a7a5, 0x00787a76, 0x00414441, 0x003e4242, 0x00404448, 0x0040454a, 0x0040464f, 0x003d4751, 0x003d4b57, 0x003f4b5e, 0x003f4c61, 0x00404d64, 0x0046516a,
- 0x0049546a, 0x004e5468, 0x00535364, 0x004f4d5a, 0x004c484c, 0x004d4546, 0x004e3f37, 0x006e5547, 0x008d6343, 0x00956742, 0x00b98c62, 0x00bf976d, 0x00b39168, 0x00c9a679, 0x00ddb889, 0x00e0b885,
- 0x00e2ba90, 0x00e5bb93, 0x00e1b78f, 0x00e3b991, 0x00dab089, 0x00d3a982, 0x00cea57e, 0x00cba17b, 0x00c59c74, 0x00be926a, 0x00b1875b, 0x00b58554, 0x00c19160, 0x00d29b6b, 0x00dfa877, 0x00e8af7d,
- 0x00e9ad79, 0x00edb07d, 0x00eeb280, 0x00f0b283, 0x00e8aa78, 0x00dda258, 0x00ca924e, 0x00b98769, 0x008c6f98, 0x005c5196, 0x00373b8a, 0x00253887, 0x00132f6b, 0x00082356, 0x00000e3a, 0x00000a33,
- 0x00030d2c, 0x00010e34, 0x003d5480, 0x006f89c2, 0x005a81cf, 0x003865c3, 0x001748af, 0x00093ba6, 0x000b2a87, 0x0005186f, 0x0006146b, 0x0006106a, 0x00030d50, 0x00090c45, 0x00050c3b, 0x00000a35,
- 0x00040d38, 0x001d1e34, 0x005f5849, 0x00987f4c, 0x00ab8317, 0x00bc7d25, 0x00d18c31, 0x00c98920, 0x00dda123, 0x00d19b23, 0x00a4750e, 0x00895b15, 0x00846130, 0x00997f5b, 0x00af9779, 0x00968464,
- 0x00788291, 0x006a85b4, 0x004a71b3, 0x005f85d3, 0x00d5daf7, 0x00f7f8fb, 0x00fafcf9, 0x00f7fdf9, 0x00f6fdfe, 0x00fcfdfc, 0x00fefdfa, 0x00d6dae3, 0x001f2c41, 0x00344563, 0x00778ca4, 0x006d8296,
- 0x00262a2f, 0x000d0b0a, 0x00140f06, 0x00151005, 0x00101105, 0x00160e09, 0x00140d07, 0x00070901, 0x00102231, 0x00496094, 0x0036539b, 0x00264795, 0x002f5079, 0x008ba5c3, 0x009fb2d0, 0x0042507a,
- 0x000b0e50, 0x00192042, 0x00413f45, 0x0081745e, 0x009c8669, 0x007e6c63, 0x0062535e, 0x004d4665, 0x00434370, 0x00434570, 0x00374f79, 0x0012477a, 0x001f4f8a, 0x001b468b, 0x001a3f82, 0x00183a7d,
- 0x001c3469, 0x002d3b66, 0x002b334a, 0x0017151f, 0x00453e37, 0x00384865, 0x00143468, 0x000b2866, 0x000f2a6a, 0x0015255a, 0x00171d3f, 0x0017141f, 0x00180b00, 0x00190c04, 0x00110805, 0x00120a0e,
- 0x00130f0e, 0x00120a10, 0x001b1117, 0x000d040e, 0x00140c08, 0x000c0a05, 0x000d100c, 0x00060c16, 0x00141f41, 0x00374477, 0x005469a2, 0x005c7ebb, 0x00345496, 0x003661af, 0x002456ae, 0x00124aa8,
- 0x00264b96, 0x004d5589, 0x0068617c, 0x00684f5e, 0x0052444f, 0x002c2c35, 0x00293649, 0x002a4565, 0x0019488a, 0x00134593, 0x00104095, 0x00154292, 0x002d5096, 0x00254986, 0x002d5084, 0x00466a9e,
- 0x00728eae, 0x00486183, 0x000f2946, 0x00253951, 0x00606769, 0x00695e58, 0x00796555, 0x006f5241, 0x00644a3d, 0x00847068, 0x00606569, 0x001d4e66, 0x0011284f, 0x0038527c, 0x002c4672, 0x0049678c,
- 0x007d818f, 0x009d797e, 0x00af8171, 0x00af8862, 0x00899054, 0x00918157, 0x00997b57, 0x009f784c, 0x00a57442, 0x009b673c, 0x008a5d31, 0x0079522d, 0x006e4a2c, 0x00663e1e, 0x00552b04, 0x006e4012,
- 0x009a692e, 0x009c703f, 0x00967244, 0x0075522e, 0x00371502, 0x00482102, 0x005c3713, 0x007a5434, 0x00ac9986, 0x00fdf6ee, 0x00fbfffb, 0x00f9fffd, 0x00f7fffd, 0x00fbfefe, 0x00f5f9fb, 0x00aeafb3,
- 0x00c3c5c2, 0x00e7e4e2, 0x00f8f4ef, 0x00fbf3ec, 0x00f1e8e2, 0x00e9dcd3, 0x00ebe0d5, 0x00f9f4ec, 0x00f7fff9, 0x00f5fbf8, 0x00f9fcfa, 0x00fcfefc, 0x00e1d3d0, 0x007b716b, 0x00332c24, 0x00342f25,
- 0x00413024, 0x00423226, 0x00413226, 0x003d3026, 0x00362b25, 0x00302824, 0x00282320, 0x00221e1c, 0x001b1a1b, 0x00181819, 0x0015161c, 0x00131623, 0x00141824, 0x00131722, 0x0011151f, 0x00121522,
- 0x0012131f, 0x000f1320, 0x000f1420, 0x00131422, 0x00111423, 0x000d1126, 0x0024334e, 0x00465f8a, 0x004a7bbe, 0x00427bc6, 0x00447fd1, 0x00437ccd, 0x00457acb, 0x00457bcb, 0x00427acc, 0x00407bd0,
- 0x004175c8, 0x003d70c3, 0x003f6fc3, 0x004672c6, 0x004d76ca, 0x004a77c7, 0x004576c2, 0x004375bf, 0x004377c0, 0x004479c3, 0x00467cc3, 0x00487ebe, 0x00497dc2, 0x004578be, 0x003e6fb7, 0x003a6ab2,
- 0x003766b2, 0x003864b4, 0x003461af, 0x00305cad, 0x002f57a9, 0x002c55aa, 0x002a56a6, 0x00315cac, 0x004468b1, 0x005777b6, 0x00718cc0, 0x0063759c, 0x00373a4d, 0x003c363e, 0x00403233, 0x003b2721,
- 0x0024251b, 0x001d1e16, 0x0011120d, 0x000b0c0b, 0x00040407, 0x00050408, 0x00020005, 0x000e0c10, 0x001e1d1c, 0x0029282a, 0x003c3831, 0x004d4031, 0x00604937, 0x00674a37, 0x006e4a32, 0x00784c37,
- 0x0081553d, 0x008b5e4e, 0x00976e5e, 0x009f7d6c, 0x00ac8e81, 0x00b4a29c, 0x00beb5b0, 0x00cdc1be, 0x00dbd0cf, 0x00e4dad7, 0x00ede3de, 0x00f3e8e2, 0x00f8ece6, 0x00fcf1eb, 0x00fef5f0, 0x00fff9f4,
- 0x00fffaf4, 0x00fffbf6, 0x00fefcf8, 0x00fcfdfc, 0x00fbfdfe, 0x00f9fcff, 0x00f9fdfc, 0x00fbfdfd, 0x00fbfbfd, 0x00fdfcfe, 0x00fefefb, 0x00fbfdf7, 0x00fdfef9, 0x00fdfef8, 0x00fcfdf7, 0x00fcfefa,
- 0x00fefdfc, 0x00fcfbfa, 0x00fdfdfc, 0x00fefefe, 0x00fefdff, 0x00fcfcfe, 0x00feffff, 0x00fcfdff, 0x00fefdfc, 0x00fdfdfd, 0x00fdfdfe, 0x00fdfcfe, 0x00fdfcfd, 0x00f9f7f8, 0x00efeeee, 0x00e8e8e8,
- 0x00dcd7d7, 0x00b1a29c, 0x00624e45, 0x00402b1d, 0x00180b07, 0x00050200, 0x00010102, 0x00000101, 0x00010202, 0x00050200, 0x000c0803, 0x000a0c07, 0x00070806, 0x00000309, 0x00000107, 0x0002030b,
- 0x000b0c19, 0x00080b18, 0x00030612, 0x0000010c, 0x00000107, 0x00000310, 0x00010413, 0x0000040c, 0x0006000b, 0x000a030f, 0x00100b16, 0x001d1a24, 0x00172644, 0x000b2d5b, 0x0011407c, 0x00174d97,
- 0x002240b5, 0x002648ba, 0x002448bd, 0x001d45be, 0x001640b7, 0x00153eb2, 0x00153fac, 0x00153ca2, 0x0016388f, 0x001a388b, 0x003a4b81, 0x00726d6d, 0x004f4d68, 0x003f4070, 0x00343973, 0x00202761,
- 0x00152742, 0x000d1b29, 0x00040a0e, 0x00000603, 0x00020206, 0x00020504, 0x00010302, 0x00010202, 0x00010101, 0x00020202, 0x001b1b1b, 0x008d8d8d, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00faf9f9, 0x009b9a9a, 0x00010201, 0x00010100, 0x00010000, 0x00030102, 0x00030203, 0x00010102, 0x00020302, 0x00030303, 0x00030404, 0x00030404, 0x00040406, 0x00060507, 0x00050607, 0x00040507,
- 0x0006060a, 0x00060609, 0x00060408, 0x0008070a, 0x00070609, 0x0006090b, 0x00070a0c, 0x0008090c, 0x0009090c, 0x000a0a0e, 0x0009080c, 0x00090609, 0x000b060b, 0x000e090d, 0x000e090d, 0x000d070b,
- 0x00080b0b, 0x000b0b0c, 0x000c0a08, 0x00110b08, 0x00130b06, 0x00140e08, 0x00130d0c, 0x00131112, 0x0006080f, 0x00080e16, 0x003a4452, 0x009babb4, 0x00e5fbfd, 0x00d4eefe, 0x009fbeea, 0x006285c6,
- 0x004d79c5, 0x004173c4, 0x003c72c6, 0x003870c4, 0x003872c3, 0x003575bf, 0x003176bb, 0x003176bb, 0x00306fbb, 0x002e68ba, 0x002a62b5, 0x00265eb0, 0x00275db2, 0x00255caf, 0x002b61b4, 0x00467acd,
- 0x0095b1de, 0x009ab6dc, 0x004c637f, 0x00102035, 0x0000050e, 0x00000409, 0x00000304, 0x00000100, 0x00000103, 0x00030207, 0x00030107, 0x00010104, 0x00020305, 0x00040307, 0x00040207, 0x00050407,
- 0x00060609, 0x00050407, 0x00040306, 0x00040405, 0x00040506, 0x00040506, 0x00040506, 0x00050507, 0x00040508, 0x00040406, 0x00030205, 0x00020104, 0x00010003, 0x00010004, 0x004d4c4f, 0x00d6d3d6,
- 0x00bbb4a2, 0x00442916, 0x00562e1d, 0x006f3927, 0x007f442d, 0x00834a30, 0x00855234, 0x00865636, 0x008a5338, 0x00905539, 0x00925737, 0x00935a2d, 0x00915133, 0x00894f36, 0x00733d2e, 0x00593121,
- 0x0041281f, 0x003c2b21, 0x00988b81, 0x00e0d8cc, 0x00ebd3c9, 0x00bc99a9, 0x008a667d, 0x007e596a, 0x00a8888d, 0x00cabbb9, 0x00dcd7d8, 0x00c1c4d2, 0x009cb8de, 0x0081a6e2, 0x004f7cca, 0x004072ca,
- 0x00476fa9, 0x00456ca8, 0x00375c9c, 0x0033579c, 0x003658a6, 0x003656a8, 0x003554a7, 0x003352a7, 0x00324da4, 0x002e4da0, 0x00314a9f, 0x0034459d, 0x00293d8d, 0x001e367b, 0x0019316c, 0x001a315e,
- 0x002c3a5a, 0x00464e64, 0x005e5c68, 0x00675e65, 0x00614f50, 0x005d575b, 0x004e5b62, 0x00294758, 0x000d2132, 0x000f0b1a, 0x00160512, 0x00280e2b, 0x002e336e, 0x00454b81, 0x008e8ab1, 0x00b39fab,
- 0x00a84820, 0x0096372b, 0x006a2f4e, 0x001f3a89, 0x001a43d7, 0x002e3fc6, 0x002f3eb6, 0x002244ad, 0x00313daf, 0x00334197, 0x002a4798, 0x001346aa, 0x001a41a8, 0x002040ab, 0x001f359e, 0x00233094,
- 0x002f3383, 0x00585f92, 0x00535c77, 0x00374541, 0x002b3c21, 0x002e3a3c, 0x002e3749, 0x00323945, 0x00353843, 0x00353741, 0x0036343c, 0x00363439, 0x0035353b, 0x0032343c, 0x0033353f, 0x00373c43,
- 0x003e3f49, 0x0043444a, 0x004a494c, 0x00504c4b, 0x00564d43, 0x005b4e40, 0x005f4e3d, 0x00634d3a, 0x00694c3b, 0x006c4d3c, 0x006d4e3e, 0x00674a3a, 0x00574132, 0x00443629, 0x0031281e, 0x00222017,
- 0x0016170f, 0x0016170f, 0x001e1c15, 0x00231f18, 0x002b241c, 0x00787673, 0x00fdfefe, 0x00fbfdfd, 0x00fcfcfc, 0x00fefefe, 0x00fcfbfb, 0x00cecdcd, 0x007f7f7f, 0x00626363, 0x001b1b1b, 0x00161515,
- 0x00202214, 0x00424336, 0x0043433a, 0x002e2d25, 0x0025221f, 0x00131210, 0x00100e10, 0x00131312, 0x00171513, 0x001e1d18, 0x002d2c25, 0x00282721, 0x00282823, 0x00373734, 0x00313030, 0x00333234,
- 0x00373439, 0x00303133, 0x002b2c2a, 0x00272823, 0x0025241e, 0x001f211f, 0x00212324, 0x00212625, 0x00111a18, 0x00232c29, 0x004d524e, 0x00373635, 0x002f2826, 0x002a1f1f, 0x00231816, 0x00130605,
- 0x00040302, 0x000b0a05, 0x00211f19, 0x001f1a17, 0x00201515, 0x00251917, 0x001a0f09, 0x0020160c, 0x00474132, 0x0053513d, 0x0059573e, 0x006f6b4b, 0x007f7958, 0x007d7751, 0x007f774d, 0x007b7042,
- 0x00796b3e, 0x007d6f43, 0x0076673c, 0x0075633b, 0x00988361, 0x00968269, 0x006f5c46, 0x007f6a51, 0x00c3af92, 0x00d3c4a2, 0x00aea181, 0x00aca486, 0x00d8d4c9, 0x00e6eae2, 0x00d8dddf, 0x00d4dae2,
- 0x00cdcbca, 0x00a9a7a2, 0x005d5b57, 0x0029261f, 0x002a2522, 0x00221d18, 0x001d1816, 0x00181515, 0x0010121d, 0x000c101a, 0x000a0c19, 0x00090310, 0x001d1917, 0x00716f5f, 0x00d7d5c3, 0x00d9d8c0,
- 0x00cfc7be, 0x00cdc3bc, 0x00a49492, 0x006f5e56, 0x00443023, 0x001c1309, 0x003a3327, 0x00746654, 0x0077614b, 0x0053402b, 0x00392c1a, 0x00454033, 0x00595c5c, 0x005e615e, 0x0043453f, 0x00222118,
- 0x001b1a1d, 0x0019191b, 0x001c1c1e, 0x00151615, 0x00161915, 0x00232520, 0x002a2b27, 0x0022211e, 0x0013150e, 0x00090e05, 0x002f3024, 0x004e4b35, 0x002f2e27, 0x001f252a, 0x00323c4f, 0x0037425f,
- 0x00273459, 0x000e1c3a, 0x0008162c, 0x000d1626, 0x002b3337, 0x0048535b, 0x00313f52, 0x0019294c, 0x001d3167, 0x0016295a, 0x00637096, 0x00d8ddea, 0x00fffefb, 0x00fdfcf9, 0x00fcfefb, 0x00f9ffff,
- 0x00dad8df, 0x008f8e92, 0x00888788, 0x00a5a6a4, 0x00767976, 0x00404541, 0x003d4342, 0x00414748, 0x00414549, 0x0040434c, 0x00414754, 0x0040495a, 0x00414b61, 0x003d4a61, 0x003c4b64, 0x00414d6b,
- 0x00424a6e, 0x00444c68, 0x00484c67, 0x004b4e61, 0x004e505e, 0x004c4d55, 0x00595357, 0x005b4942, 0x00956b53, 0x00d4a884, 0x00e4b890, 0x00dbb389, 0x00c8a67a, 0x00d0ab7e, 0x00deb687, 0x00dfb483,
- 0x00e8ba95, 0x00e6bb95, 0x00e1b791, 0x00e0b790, 0x00d4ad84, 0x00c9a078, 0x00c89f78, 0x00c79f76, 0x00c39872, 0x00b58c64, 0x00b08157, 0x00b88655, 0x00cc9b69, 0x00d7a774, 0x00e2ae7d, 0x00e5b07e,
- 0x00ecb282, 0x00ecb283, 0x00f1b786, 0x00ebb17f, 0x00e1aa76, 0x00d9a578, 0x00c09679, 0x00967480, 0x005d4ea2, 0x004d4fb8, 0x00465aca, 0x003b5ac6, 0x002e53aa, 0x001f4396, 0x00193787, 0x00193388,
- 0x0015396c, 0x003e6297, 0x006686c4, 0x005e7fc3, 0x00375eb9, 0x001c4daf, 0x0007349f, 0x00012c95, 0x0008227f, 0x00071967, 0x000b1561, 0x0006105f, 0x00071053, 0x00040d48, 0x00040c45, 0x00000c3c,
- 0x0003072a, 0x00191920, 0x0065583e, 0x00997e3d, 0x00ab7a11, 0x00a2640f, 0x00b97221, 0x00c68028, 0x00ce851f, 0x00b06907, 0x00a35c04, 0x00ac6804, 0x00955b02, 0x009a6811, 0x00b3892a, 0x00a68321,
- 0x00947955, 0x00919191, 0x00808eb1, 0x00748cc5, 0x00d6d5ee, 0x00fbf8fb, 0x00fcfdfb, 0x00f6fdfd, 0x00f7fdff, 0x00fafbfc, 0x00fcfbfa, 0x00c0c3cd, 0x001b2944, 0x00162a47, 0x00657a95, 0x00596b80,
- 0x0013161c, 0x00040404, 0x00120e0b, 0x000e0b03, 0x0011120e, 0x00140c07, 0x000d0400, 0x000b0d00, 0x0016242f, 0x006176a6, 0x004964ad, 0x001b3b88, 0x003d618c, 0x0097b4d2, 0x00889fc0, 0x00304570,
- 0x001c175a, 0x001d1333, 0x00655256, 0x009f8969, 0x008b7c63, 0x00696c72, 0x003f5378, 0x002a5293, 0x001b56a6, 0x0013539e, 0x00215899, 0x002c5688, 0x00234a80, 0x001a3c73, 0x00133168, 0x000d275c,
- 0x0013254d, 0x0019243f, 0x00242637, 0x00464347, 0x00544944, 0x0020324c, 0x000c2f61, 0x0010356c, 0x00123274, 0x00142b5d, 0x001f2a51, 0x001e1f2f, 0x00150c0f, 0x00120b0d, 0x00100c17, 0x000b0a1c,
- 0x00090b15, 0x00161723, 0x001c1a29, 0x00151221, 0x00120e16, 0x000f1013, 0x00080e15, 0x000d1a28, 0x0025345e, 0x002d4378, 0x00375290, 0x006b90cb, 0x006681bb, 0x0038599f, 0x003660b1, 0x00164ba4,
- 0x00294a95, 0x00545781, 0x006a586e, 0x00654a50, 0x00483f50, 0x002c415e, 0x00355e8d, 0x004074ab, 0x003977c8, 0x002b6cc0, 0x00205cb1, 0x000b3f8f, 0x00123a7f, 0x00224786, 0x00274b87, 0x00335a93,
- 0x008faad0, 0x00375576, 0x00051738, 0x000a1b2f, 0x00454245, 0x00675b50, 0x00584133, 0x00503c2b, 0x00594847, 0x005f5861, 0x00445469, 0x001c4f71, 0x00192f56, 0x002f3f66, 0x002d4268, 0x00264465,
- 0x005f6885, 0x0083717e, 0x009f7b77, 0x00ab886b, 0x008f9150, 0x0089815b, 0x008c7761, 0x0095755b, 0x008a623e, 0x00784d27, 0x00613514, 0x005b3913, 0x00704e2e, 0x006d4826, 0x00693d17, 0x008d5c33,
- 0x00a66f38, 0x009d6c35, 0x009a6b3d, 0x00946a41, 0x005c3411, 0x004d2302, 0x00654121, 0x007f5e41, 0x00b09d8d, 0x00fcf9ed, 0x00fdfcf9, 0x00f8fcfd, 0x00f8fdfe, 0x00f9fefe, 0x00f2f8fa, 0x00abafb3,
- 0x00c4c6ca, 0x00e7eaec, 0x00f9fbfc, 0x00fafefe, 0x00fdfcff, 0x00fefbfc, 0x00fef7f6, 0x00fbfbf4, 0x00f4fef8, 0x00f7fef9, 0x00fafcfb, 0x00fcfcfb, 0x00d5c6c3, 0x0070645d, 0x003b3326, 0x003d3929,
- 0x00503a2a, 0x004e392a, 0x004c392b, 0x00443428, 0x003d3025, 0x00362c23, 0x002f2822, 0x0027221d, 0x00201c1b, 0x001b1918, 0x0017161b, 0x00141621, 0x00141923, 0x00141722, 0x0011151e, 0x00111520,
- 0x0011111b, 0x000e111d, 0x0010121e, 0x000f131d, 0x0012141e, 0x00101423, 0x00182139, 0x00384f72, 0x004f7bbb, 0x004578bf, 0x00447ac8, 0x00487dcd, 0x004a7bcc, 0x00477bcc, 0x00447bcd, 0x00417ccf,
- 0x004678cb, 0x004173c3, 0x003b6abb, 0x003a67b7, 0x003c66b7, 0x003d67b7, 0x003f6ab7, 0x003f6db6, 0x004172bc, 0x004073b9, 0x004173bb, 0x004271c2, 0x004372c3, 0x004172c3, 0x003d6cbd, 0x003c68b8,
- 0x003761b7, 0x003660b6, 0x00345db4, 0x00325cb0, 0x00345db3, 0x002f59ab, 0x002c56a5, 0x00325ca9, 0x003d64ab, 0x00496ba9, 0x00647eb2, 0x006d80a4, 0x00494c5a, 0x00403939, 0x0042322a, 0x003b2516,
- 0x00272621, 0x001f1e1a, 0x00121210, 0x0008080a, 0x00030208, 0x0007060d, 0x000b0910, 0x0019171d, 0x002c2b31, 0x00373739, 0x004d4645, 0x005f4d43, 0x006f5447, 0x00755441, 0x00754c37, 0x0076472e,
- 0x00753c24, 0x00733a24, 0x00723e2a, 0x0073452f, 0x00795143, 0x00785f58, 0x00796a68, 0x0083706b, 0x00897370, 0x008d7873, 0x0098817b, 0x00a48c83, 0x00b49a90, 0x00bea297, 0x00ccb0a5, 0x00d8beb2,
- 0x00e3cfc3, 0x00e2d3c6, 0x00e8dbd3, 0x00ede4dd, 0x00f3eeec, 0x00f1eeed, 0x00f6f2f4, 0x00fbfaf9, 0x00fefcfd, 0x00fefcfd, 0x00fffdfb, 0x00fdfdf8, 0x00fdfef9, 0x00fdfef9, 0x00fefef9, 0x00fdfefb,
- 0x00fefdfd, 0x00fefdfe, 0x00fefdff, 0x00fdfdfe, 0x00fcfbfd, 0x00fdfdfe, 0x00fcfcfc, 0x00fdfdfd, 0x00fefefe, 0x00fcfbfb, 0x00fdfbfb, 0x00fbfbfb, 0x00fbfbfc, 0x00fdfdfe, 0x00fdfcfc, 0x00fdfcfb,
- 0x00fbf1ea, 0x00c7b6ac, 0x00705b4d, 0x0057402d, 0x0029190e, 0x000d0602, 0x00010100, 0x00000202, 0x00040205, 0x00030203, 0x00030000, 0x00000002, 0x00030006, 0x00010007, 0x0003000c, 0x00060310,
- 0x000f0d1d, 0x000a0c15, 0x00060a0e, 0x00020608, 0x00000402, 0x0000020c, 0x0001040e, 0x00020705, 0x000f0900, 0x00190a01, 0x001a0801, 0x00170702, 0x00090914, 0x00030d26, 0x0002193d, 0x0001264f,
- 0x00182d8c, 0x001c3794, 0x00223fa3, 0x001d3fa6, 0x001a3fad, 0x00163da7, 0x00153ea5, 0x00163c9e, 0x001a3790, 0x001f3c8f, 0x0043548b, 0x00968e88, 0x00847b8a, 0x00625b75, 0x00565479, 0x00595a81,
- 0x00686c8a, 0x00575f71, 0x00192327, 0x00000706, 0x00000501, 0x00030403, 0x00010100, 0x00020203, 0x00020202, 0x00030303, 0x001d1d1d, 0x008e8e8e, 0x00fdfdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00ffffff,
- 0x00fbf9f9, 0x009a9999, 0x00020302, 0x00000000, 0x00020102, 0x00040203, 0x00050405, 0x00030304, 0x00050604, 0x00050605, 0x00050506, 0x00040407, 0x00040507, 0x00050609, 0x00060609, 0x00070608,
- 0x00070708, 0x00060608, 0x0008070a, 0x000a080b, 0x000a090c, 0x0007070a, 0x000a0a0d, 0x000a080c, 0x000d0b0f, 0x000b090d, 0x000b070c, 0x00090309, 0x000a040a, 0x00090308, 0x000a0309, 0x000a0308,
- 0x00050c10, 0x00050a0a, 0x000c0f0c, 0x000e0b07, 0x00130a05, 0x00140d09, 0x000f0a0b, 0x000d0c13, 0x00070b19, 0x00343e4d, 0x009eacbf, 0x00b5cfec, 0x00a0bce0, 0x00a9ccf3, 0x00b6e0fc, 0x0098c6fa,
- 0x005386d8, 0x003f75c9, 0x003b72c8, 0x003d76c9, 0x003771c8, 0x003675bd, 0x003576b9, 0x003474b7, 0x003370c0, 0x00306dc0, 0x00306cc0, 0x002e68bf, 0x002c67bc, 0x00265fb6, 0x00245bad, 0x002f66ba,
- 0x006089c4, 0x008ab3e4, 0x007fa1ca, 0x0059728c, 0x0019222f, 0x00000206, 0x00060709, 0x00060604, 0x00010204, 0x00050508, 0x00020004, 0x00040306, 0x00050507, 0x00040407, 0x0006060a, 0x00050509,
- 0x0008070a, 0x00070709, 0x00060609, 0x00050508, 0x00060407, 0x00060507, 0x00060506, 0x00040405, 0x00070608, 0x00040406, 0x00040407, 0x00010104, 0x00000002, 0x00000002, 0x00545457, 0x00d9dbde,
- 0x00beb6a4, 0x004e311d, 0x00623828, 0x00783f2f, 0x0083442b, 0x0084472a, 0x00884f31, 0x00895231, 0x008c5236, 0x00925136, 0x00905335, 0x00865232, 0x007c4930, 0x006d3f2c, 0x00522d22, 0x00382114,
- 0x003c3224, 0x007c6d5a, 0x00e5d9c8, 0x00feecd9, 0x00eab7a4, 0x00d7795e, 0x00ce5c36, 0x00d06131, 0x00f7ad7b, 0x00ffdfbe, 0x00e8ded4, 0x00afc6de, 0x00699cd8, 0x005c84c3, 0x004b64a6, 0x00575c99,
- 0x004667b2, 0x004163ad, 0x003456a3, 0x003153a4, 0x003354a8, 0x003353a8, 0x003352a5, 0x00304e9e, 0x002c4693, 0x0028418a, 0x002b3e88, 0x00343d8a, 0x00283679, 0x00223069, 0x001e2e5d, 0x001d2c4e,
- 0x004e556e, 0x0087899b, 0x00a3a0ad, 0x00beb7c1, 0x00c0b3bb, 0x00aea4ac, 0x008c8d96, 0x005a696e, 0x002b4c53, 0x001b3549, 0x00051a36, 0x00020e3c, 0x00354074, 0x007d80a2, 0x00a89faf, 0x00aa9490,
- 0x00b04b12, 0x009d3a1e, 0x006c3742, 0x0020407e, 0x001544c6, 0x002a3eb4, 0x002c3dab, 0x00243eaa, 0x003232b9, 0x003232ac, 0x002d3aa5, 0x001d40a2, 0x001a3ba1, 0x00193aa4, 0x0015339c, 0x00132d93,
- 0x001b2f7f, 0x00304178, 0x003b4a6c, 0x0035404b, 0x00323d31, 0x00323b45, 0x00343a50, 0x00373b4f, 0x00383d49, 0x00383b48, 0x00393945, 0x00393944, 0x00383845, 0x00333644, 0x00313746, 0x00353b4b,
- 0x003e4051, 0x00444451, 0x00494951, 0x004d494e, 0x00524844, 0x0054473f, 0x0057453a, 0x005b4336, 0x00604532, 0x00644636, 0x00644637, 0x005c4032, 0x004b372a, 0x003a2e23, 0x00282018, 0x001a1813,
- 0x00131310, 0x0013140f, 0x001b1a14, 0x001f1d17, 0x00272119, 0x00777671, 0x00fefffe, 0x00fdfefd, 0x00f9fbfb, 0x00fdfdfd, 0x00fefdfd, 0x00cecece, 0x007a7a7a, 0x005c5d5d, 0x00181718, 0x00131112,
- 0x00131208, 0x001a1812, 0x0024221c, 0x00211f1b, 0x00181514, 0x000b070c, 0x000f0c0f, 0x00151115, 0x00151515, 0x00131412, 0x001e1f1b, 0x00242520, 0x0021221e, 0x00292a28, 0x002b2b2b, 0x00313132,
- 0x00343336, 0x002f2e30, 0x002c2b29, 0x002a2a25, 0x00282922, 0x00261f1f, 0x002a2426, 0x00252525, 0x00202625, 0x00383e3b, 0x00565a57, 0x00464341, 0x00312927, 0x001b1311, 0x00110b07, 0x000a0904,
- 0x000a1003, 0x000b1005, 0x0027261d, 0x002c261e, 0x00251a14, 0x00281c15, 0x0022160b, 0x002a2112, 0x004d4531, 0x0059543a, 0x00605b3c, 0x007b764e, 0x00827d52, 0x007c7649, 0x00787044, 0x00776e3e,
- 0x0084774b, 0x0086794e, 0x007f7147, 0x007a6a42, 0x00887654, 0x007b6a51, 0x00776952, 0x009e8f75, 0x00cfc0a1, 0x00d2c6a6, 0x00b2ab8c, 0x00b2ac90, 0x00d1d4ca, 0x00dae2df, 0x00d1dfe5, 0x00c9d6e6,
- 0x00d0cbd1, 0x00aca6a6, 0x00423f37, 0x00181104, 0x003c3220, 0x00413827, 0x00281f13, 0x00140e0a, 0x000f0e18, 0x000d101f, 0x00080817, 0x000a030c, 0x00080606, 0x0047473e, 0x00c6c6bb, 0x00d9d9cf,
- 0x00dcd7d4, 0x00e2d9d8, 0x00baacab, 0x00807167, 0x00422f1a, 0x000e0a03, 0x00353733, 0x008a8579, 0x00817262, 0x00514336, 0x00231a0e, 0x00151410, 0x00282e30, 0x003c4041, 0x00282a26, 0x0016140d,
- 0x00191a1d, 0x001e1e1f, 0x00191819, 0x0010100f, 0x000c0e0a, 0x00131510, 0x001c1f1b, 0x00151712, 0x000c0e0a, 0x00030a04, 0x001b1c13, 0x002a2611, 0x0016130e, 0x000b0f12, 0x0023293b, 0x00313954,
- 0x00202b4f, 0x000a1432, 0x00061128, 0x000f1827, 0x00060d11, 0x00081019, 0x00182438, 0x001d2f52, 0x001e346a, 0x00142859, 0x00627094, 0x00d8dfea, 0x00fefff9, 0x00fdfef7, 0x00fdfffb, 0x00f9ffff,
- 0x00d8d8dd, 0x008f8e92, 0x00888788, 0x00a5a6a3, 0x00767976, 0x003f4441, 0x003c4241, 0x00404647, 0x003f4347, 0x003f434b, 0x00434653, 0x00424858, 0x0040495f, 0x003b4761, 0x003a4667, 0x003c4870,
- 0x003f4874, 0x003e4970, 0x00414a6c, 0x00454b6a, 0x00474d65, 0x00444b61, 0x00464953, 0x00564c4a, 0x00a3836d, 0x00d5ae8c, 0x00dbae87, 0x00e1b48a, 0x00d7af82, 0x00d5ac7c, 0x00deb481, 0x00e2b782,
- 0x00e4ba95, 0x00e3bb94, 0x00dfb58f, 0x00dbb18c, 0x00cea67e, 0x00be956e, 0x00bb936d, 0x00b9936a, 0x00b58c65, 0x00aa845d, 0x00ac8155, 0x00bd8956, 0x00d4a16d, 0x00dfac79, 0x00e6b282, 0x00e7b385,
- 0x00e9b384, 0x00ecb789, 0x00eeb888, 0x00e8b182, 0x00e7ad7e, 0x00c1a5a1, 0x0088829c, 0x00585d95, 0x003f55bf, 0x003f64d4, 0x003a69d7, 0x00356bcf, 0x003769c3, 0x002d58b9, 0x002749b2, 0x003146be,
- 0x003b72ba, 0x006698e3, 0x005582d0, 0x003b63b9, 0x00254aae, 0x00123ba5, 0x00042c98, 0x0000248b, 0x000b1f73, 0x000a1861, 0x00081155, 0x0005154d, 0x00071156, 0x00030b4f, 0x0003094b, 0x00010d3e,
- 0x000a1321, 0x00343522, 0x006c5b2c, 0x0078540b, 0x00ae700d, 0x00b27714, 0x00be801d, 0x00cd892f, 0x00be6d1b, 0x00a04b00, 0x00c57111, 0x00d58317, 0x00b36b00, 0x00a05f01, 0x00af7405, 0x00b47d0a,
- 0x00ae6f0b, 0x008b6a3a, 0x0090867f, 0x00969cbd, 0x00e0dcee, 0x00fef9fb, 0x00fbfffb, 0x00f2fefd, 0x00f6fffe, 0x00fcfcff, 0x00fbfbfd, 0x00abb3c3, 0x001d304b, 0x00122946, 0x004f6681, 0x0052657b,
- 0x000e1419, 0x00070709, 0x000f0b0a, 0x000d0a09, 0x000b0e11, 0x00120e07, 0x000b0700, 0x000c1001, 0x000a1116, 0x003e517a, 0x00354b8d, 0x00153179, 0x0054759d, 0x0097b9d6, 0x006886a9, 0x00254273,
- 0x0010235d, 0x001a2136, 0x00797b6c, 0x009b9261, 0x007a7656, 0x00606772, 0x00385087, 0x00224ba8, 0x001f58c4, 0x001a58be, 0x002857ab, 0x006984b7, 0x00405987, 0x00182f5b, 0x0010264b, 0x000e203d,
- 0x00111b2e, 0x0010131f, 0x00101018, 0x003c373a, 0x003a2f2c, 0x0013304a, 0x001c4f7d, 0x00356ba3, 0x003762aa, 0x002e5191, 0x003d5586, 0x003d4c6e, 0x0020273d, 0x0019223d, 0x00121d3f, 0x00091a44,
- 0x0012233d, 0x00384b67, 0x002f3c5a, 0x001b2841, 0x000b1526, 0x000e1828, 0x00041325, 0x0032465d, 0x004b6998, 0x00294687, 0x0014377a, 0x00326297, 0x009ab1dd, 0x00556fa5, 0x00335496, 0x002151a3,
- 0x002c4784, 0x00706b8c, 0x00816c75, 0x006d5551, 0x0038404f, 0x00375e8c, 0x00316bac, 0x002c70b9, 0x002574c5, 0x002b79c9, 0x003479c8, 0x002763ac, 0x00103c7d, 0x000b3475, 0x00184083, 0x003e68ab,
- 0x0086a7d0, 0x00364f74, 0x001b2f49, 0x001c2836, 0x00392e29, 0x00664f45, 0x003c2315, 0x00381f17, 0x004e4e58, 0x004b576e, 0x00294267, 0x003d608e, 0x00344374, 0x00252c51, 0x00464b5f, 0x002f363a,
- 0x004a5156, 0x005f5a6a, 0x008b7982, 0x00a2897c, 0x00a48d4a, 0x008b8164, 0x007f7368, 0x00836d61, 0x005a3725, 0x00633f26, 0x00724e32, 0x006d4d2f, 0x0082613f, 0x006c4926, 0x007b502f, 0x00946749,
- 0x00a26834, 0x009c6633, 0x00956534, 0x0097683c, 0x00815730, 0x00623814, 0x00613e1d, 0x007b5d44, 0x00b0a192, 0x00fdfbee, 0x00fdfcf6, 0x00fdfdfb, 0x00fdfcfc, 0x00fcfffd, 0x00edf0f0, 0x00aaacad,
- 0x00c3c5ca, 0x00e6e8ea, 0x00f4f9fa, 0x00f8fcfc, 0x00f9fcfc, 0x00fcf8fc, 0x00fcf8fc, 0x00fafefc, 0x00f5fdf6, 0x00f7fef9, 0x00fbfbf9, 0x00fefbfb, 0x00cdbaba, 0x00675851, 0x00423929, 0x0044432b,
- 0x005a422c, 0x0059422f, 0x0055402f, 0x004d3b2c, 0x00433327, 0x003b2f26, 0x00332923, 0x002c2320, 0x00211e1d, 0x001e1d1d, 0x001a1b1e, 0x00161920, 0x00151a1f, 0x00151b20, 0x0014191d, 0x0013171c,
- 0x0010151c, 0x0011151c, 0x0011151c, 0x0012161c, 0x000f161b, 0x0011141c, 0x000f1827, 0x00243756, 0x004671a8, 0x004c7fbf, 0x004579c4, 0x004c7ecc, 0x004f7ccb, 0x004d7dcc, 0x00487bcd, 0x00447dd0,
- 0x004a7bca, 0x004677c6, 0x003969b8, 0x003462b2, 0x00345fb2, 0x00365fb1, 0x003661b0, 0x003362af, 0x003467af, 0x00366aae, 0x00396ab5, 0x003b67c1, 0x003d69c0, 0x003c6ac1, 0x003a68bc, 0x003b65ba,
- 0x003861ba, 0x00345eb6, 0x003059af, 0x002d57ad, 0x002955a7, 0x002f5aac, 0x002c56a5, 0x002e59a6, 0x003761a6, 0x004368a5, 0x005473a5, 0x006e85a7, 0x00606772, 0x00423e3a, 0x003f3123, 0x00442d19,
- 0x00252524, 0x001e1d1d, 0x00121214, 0x000b0b0f, 0x0005030b, 0x00090711, 0x000f0c18, 0x001f1c29, 0x00323138, 0x003f3e41, 0x00514e4e, 0x005b5250, 0x006d5a4f, 0x0078594b, 0x007c513f, 0x007f4c36,
- 0x007d3e28, 0x00763924, 0x00753c27, 0x00794232, 0x007b4c3f, 0x0074534e, 0x006f5854, 0x00715854, 0x0072564d, 0x0075554b, 0x0079584c, 0x007c594a, 0x00875f4e, 0x00895f4c, 0x00906753, 0x009a6e59,
- 0x009a7a5e, 0x0094795e, 0x00907965, 0x0092806f, 0x00988d82, 0x00a59d96, 0x00b5afad, 0x00c4c2bf, 0x00d6d6d3, 0x00e2e0dd, 0x00e9e7e4, 0x00ebede8, 0x00f1f2ed, 0x00f5f6f2, 0x00fcfdf9, 0x00fefffb,
- 0x00fdfefc, 0x00fefffe, 0x00fefeff, 0x00fdfdfe, 0x00fafafc, 0x00fcfcfe, 0x00fbfcfd, 0x00fbfdfd, 0x00fcfcfa, 0x00fcfcfa, 0x00fdfcfc, 0x00fcfdfc, 0x00fdfdfd, 0x00fbfcfc, 0x00fdfcfd, 0x00fffdff,
- 0x00f4ead6, 0x00b4a28e, 0x005f4936, 0x00503921, 0x0028170b, 0x000e0601, 0x00010003, 0x0000010a, 0x00040407, 0x00050103, 0x00070001, 0x00020001, 0x00030001, 0x00050006, 0x00050007, 0x00040208,
- 0x0009060c, 0x000a080d, 0x0006080c, 0x00020507, 0x00000001, 0x00000006, 0x00010105, 0x00080603, 0x00130c00, 0x00170d00, 0x00170901, 0x00140800, 0x000b0506, 0x000b070c, 0x0002060e, 0x00010912,
- 0x00071341, 0x000d1f51, 0x00162d6a, 0x0017357c, 0x001f429b, 0x001b42a0, 0x00173ea0, 0x0015399c, 0x00173491, 0x0015318a, 0x00263479, 0x005d556f, 0x00736a7a, 0x00797077, 0x007a7375, 0x00847d7d,
- 0x00c2bac4, 0x00ada9b6, 0x003d3c43, 0x00040709, 0x00000500, 0x00020604, 0x00000200, 0x00020303, 0x00010101, 0x00030303, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00ffffff,
- 0x00faf9f9, 0x009b9b9b, 0x00020202, 0x00020202, 0x00040303, 0x00060505, 0x00070606, 0x00070706, 0x00070807, 0x00070807, 0x00080709, 0x0007070a, 0x0007080a, 0x0008090b, 0x0009090b, 0x000a090a,
- 0x00080708, 0x00080708, 0x0009070a, 0x000a080b, 0x0009080c, 0x0007080c, 0x0009090c, 0x000b0b0e, 0x00090a0b, 0x000b090b, 0x000b070a, 0x000b070a, 0x00120c10, 0x00150d11, 0x00140c10, 0x00120a0e,
- 0x00010a11, 0x00040b10, 0x00070b0b, 0x000c0a08, 0x00110b09, 0x00130e0b, 0x0009060a, 0x00050610, 0x00233041, 0x00758699, 0x00c4dbf8, 0x008fb5e7, 0x00638dc7, 0x006c9cd8, 0x008bbcf0, 0x0093cafd,
- 0x005490dd, 0x003873c3, 0x00356ec5, 0x003d76d1, 0x00376fcf, 0x003871c2, 0x003870be, 0x00396fbe, 0x00386ec4, 0x00356dc4, 0x00336bc3, 0x002f68c3, 0x002d66bd, 0x002b62b8, 0x002a5db2, 0x002f61b1,
- 0x003873b8, 0x00669bd8, 0x0085b2e3, 0x0083a5c8, 0x00475868, 0x000d171e, 0x00000506, 0x00030402, 0x00020501, 0x00010503, 0x00030507, 0x00040307, 0x0007060a, 0x00050507, 0x0008080c, 0x0008070c,
- 0x0008080b, 0x0009090b, 0x0007080a, 0x00060609, 0x00070509, 0x0008060a, 0x0007060a, 0x00070609, 0x00050505, 0x00020304, 0x00030406, 0x00040507, 0x00000002, 0x00000001, 0x005b5a5d, 0x00dfdfe3,
- 0x00bdb7a9, 0x00523523, 0x00663828, 0x00793b2a, 0x0088442b, 0x008a492c, 0x008b4f30, 0x008c5430, 0x008b4e2e, 0x008e4c2f, 0x00874b32, 0x00734936, 0x00623c2d, 0x004d2e23, 0x00412a21, 0x003f3426,
- 0x007b7160, 0x00c8b59a, 0x00ebcaac, 0x00f7bc9d, 0x00ed9777, 0x00da6c3e, 0x00dc6a3d, 0x00e99770, 0x00faddc8, 0x00f3ece8, 0x00eaf0f2, 0x00c5d4e6, 0x006b8bbd, 0x004770ba, 0x002e62be, 0x002360ce,
- 0x004461c3, 0x003d5abb, 0x002e4bae, 0x002845a8, 0x002743a4, 0x0028439e, 0x00284495, 0x00233e87, 0x001e3776, 0x00162e66, 0x000f2b5f, 0x00072c5f, 0x00172a5c, 0x00292c5b, 0x00362756, 0x003c204a,
- 0x0066496e, 0x009a88a3, 0x00afb0c5, 0x00bed2de, 0x00c4e8ed, 0x00dbe5f7, 0x00c7bdd1, 0x0097867d, 0x00756e57, 0x00657878, 0x00557285, 0x00537193, 0x0073718a, 0x00a09fa9, 0x00a9b0b7, 0x00869da7,
- 0x00cf3d2f, 0x00b62c31, 0x007b2744, 0x0022306f, 0x000c3da6, 0x001c3992, 0x00203a8a, 0x000e3d8d, 0x001b31b4, 0x001534ac, 0x001933a5, 0x0020329e, 0x001d3399, 0x00153192, 0x0011338c, 0x00123785,
- 0x001b3976, 0x00203765, 0x00344265, 0x00393c54, 0x003a3747, 0x0035394e, 0x00353d53, 0x003b4353, 0x00404354, 0x00404151, 0x003e3f4d, 0x003d3f4c, 0x003a3c4c, 0x0035394b, 0x0033394b, 0x00363b50,
- 0x003e4058, 0x00434556, 0x00484954, 0x004a464d, 0x004d413e, 0x004c3c37, 0x004e3c34, 0x00533e32, 0x005a3f2f, 0x005b3e30, 0x00583a2d, 0x004e3327, 0x003e2c22, 0x002f241c, 0x00201913, 0x0015130f,
- 0x000d100c, 0x000e130d, 0x00141812, 0x00191917, 0x001e1b17, 0x00747371, 0x00fefefe, 0x00fffdff, 0x00fafbfb, 0x00fcfdfd, 0x00fdfefd, 0x00cecfcf, 0x007a7a7a, 0x005e5d5d, 0x001a1919, 0x00141314,
- 0x00170f0c, 0x00100a06, 0x00211b19, 0x00231e1f, 0x00171214, 0x000a070a, 0x00131013, 0x00141212, 0x000d0b0a, 0x000a0907, 0x0010100d, 0x001a1d19, 0x001b1e1c, 0x00202323, 0x0027292c, 0x00313437,
- 0x00343036, 0x002f2d2e, 0x002e2e2a, 0x002d2e29, 0x002c2923, 0x00302124, 0x00302026, 0x00332d30, 0x00494e4e, 0x005c5f5d, 0x005d5f5a, 0x005c5552, 0x004b3e3f, 0x001e1616, 0x00050200, 0x00090c07,
- 0x000a1203, 0x000e1206, 0x0039372d, 0x004e453b, 0x00493a32, 0x00403026, 0x00302112, 0x00322514, 0x00494226, 0x00534e2f, 0x00595331, 0x00696338, 0x007a7345, 0x007a7242, 0x00807648, 0x00817644,
- 0x008b8156, 0x00897e53, 0x00776b41, 0x0064572e, 0x00564828, 0x00483a26, 0x00857967, 0x00c6baa2, 0x00d9cdb0, 0x00d3c9ad, 0x00b3ad92, 0x00969479, 0x008c938b, 0x00909d9c, 0x0099abb6, 0x008ea1b8,
- 0x0097929e, 0x00786f72, 0x00383029, 0x00493d2b, 0x006e6146, 0x0070674b, 0x00483e28, 0x0022190e, 0x0015101e, 0x00110c21, 0x000c071a, 0x000a050b, 0x00040403, 0x002c2e29, 0x00abaea9, 0x00dadcdc,
- 0x00dedbe3, 0x00d0cace, 0x00b8abad, 0x009d8d82, 0x005e4b34, 0x00191815, 0x00272d32, 0x0083827f, 0x008f857d, 0x00746c64, 0x00434039, 0x00151817, 0x00091014, 0x00171a1c, 0x00121413, 0x0014120f,
- 0x00161518, 0x00161617, 0x000d0c0e, 0x00050505, 0x00030403, 0x00080906, 0x00181a16, 0x00161913, 0x00121515, 0x00090e0c, 0x00121409, 0x00161402, 0x0014120a, 0x000d0f16, 0x000e1526, 0x001d2843,
- 0x001c254c, 0x000b1334, 0x00040c25, 0x000d1524, 0x00040c10, 0x0008111b, 0x00243045, 0x00283c5c, 0x0021366c, 0x001a2a5c, 0x00677397, 0x00dadeeb, 0x00fefdfb, 0x00fefdfa, 0x00fcfefc, 0x00fafefe,
- 0x00d9d9dc, 0x008f8f91, 0x00868887, 0x00a4a8a3, 0x00787977, 0x00414442, 0x003c4240, 0x003f4545, 0x003d4248, 0x003e434b, 0x003e434d, 0x003d4252, 0x003d455c, 0x0039435f, 0x00394468, 0x003c4874,
- 0x003c4679, 0x003c4877, 0x003f4a75, 0x00404970, 0x003f496c, 0x00434f6e, 0x00333e50, 0x005c5c5f, 0x00a08071, 0x00ad8767, 0x00d0a57d, 0x00deb386, 0x00deb787, 0x00dab17e, 0x00e2b680, 0x00e4b67c,
- 0x00e2b994, 0x00e1bb95, 0x00dbb48f, 0x00d5ad88, 0x00c69f79, 0x00b68d69, 0x00b38a66, 0x00b08963, 0x00a9805d, 0x00a7825e, 0x00b1865d, 0x00c6905c, 0x00dca772, 0x00e2b07c, 0x00e4b384, 0x00e7b68b,
- 0x00ebb68e, 0x00eabb8b, 0x00e9b589, 0x00edb78a, 0x00d7a276, 0x007f8396, 0x00365b9a, 0x002b59a7, 0x002b6dce, 0x002474c7, 0x00287cc3, 0x00338abe, 0x003175a9, 0x001e5199, 0x002f4eb3, 0x004d5edb,
- 0x005598f1, 0x004a83de, 0x003263bd, 0x002951b2, 0x001a3da3, 0x000b309a, 0x0004268f, 0x00001e83, 0x000a1c6e, 0x000e1a5f, 0x00071145, 0x00011738, 0x0005114d, 0x00030b4e, 0x0003084c, 0x00010c42,
- 0x00151f1e, 0x005e5c31, 0x008d7a37, 0x007b5402, 0x00b2700c, 0x00c7900e, 0x00c99609, 0x00ca8c14, 0x00c07114, 0x00b66501, 0x00d88518, 0x00d9880e, 0x00bf7504, 0x00aa630b, 0x00ad6a25, 0x00ae6d40,
- 0x00ca6a02, 0x00935710, 0x007a5b38, 0x00958c9d, 0x00e6e1ef, 0x00fdf9fd, 0x00fafffc, 0x00f2feff, 0x00f9fefd, 0x00fbf8fb, 0x00faf9fe, 0x009da8ba, 0x001f3453, 0x000e2442, 0x002f4463, 0x00637790,
- 0x000f151e, 0x000c0c10, 0x001a151b, 0x001a161d, 0x00171924, 0x00171610, 0x00121104, 0x00141601, 0x00111b1d, 0x00202f54, 0x00263772, 0x001f3478, 0x006e8cb4, 0x0099bad9, 0x0058789c, 0x00203b6d,
- 0x00242b6e, 0x004b435d, 0x00978474, 0x009a7e4c, 0x00856b3c, 0x00766e6a, 0x006b7297, 0x0040579f, 0x001d4596, 0x00244f93, 0x004568a3, 0x009ba8d9, 0x005f709a, 0x00152442, 0x000d1b2f, 0x000a1926,
- 0x00090d16, 0x000f0f12, 0x00060405, 0x001c1515, 0x00281f21, 0x00335e7b, 0x00367dae, 0x00418aca, 0x003a7bce, 0x002e65b0, 0x002f599f, 0x002d4d83, 0x00284171, 0x00274378, 0x002c4c8c, 0x002f589b,
- 0x0040638e, 0x004d6f9a, 0x003e5e88, 0x005b769e, 0x00536989, 0x0039516c, 0x002b4562, 0x00496b8e, 0x005781be, 0x002e58a4, 0x0015448d, 0x001e5688, 0x0099b4d5, 0x007e99c2, 0x00305286, 0x0026589b,
- 0x00435e90, 0x00827d8f, 0x004f3836, 0x00230907, 0x00334350, 0x003d6191, 0x003969a8, 0x003671b3, 0x003477bc, 0x003275b2, 0x003771af, 0x003e70a7, 0x002d5185, 0x00153672, 0x00284888, 0x006182c9,
- 0x007699c4, 0x002a4369, 0x0037445f, 0x0051535e, 0x0059463c, 0x00553727, 0x003a1e0f, 0x0039241e, 0x003b445a, 0x00334d70, 0x001c3568, 0x0035427e, 0x00262f74, 0x002e2f50, 0x00635855, 0x00725e2b,
- 0x006a613f, 0x004e575e, 0x00737a91, 0x008e8191, 0x00b97a39, 0x00958370, 0x005f5f64, 0x00635758, 0x004c2d28, 0x004f301f, 0x004b2b19, 0x00573a1f, 0x006e5031, 0x00664728, 0x0070492c, 0x008b6045,
- 0x009a6335, 0x00996633, 0x00956233, 0x008e5e32, 0x0090643c, 0x00774f2d, 0x00573718, 0x006c543b, 0x00b2a492, 0x00fcf8ec, 0x00fefef6, 0x00fdfdf7, 0x00fffaf5, 0x00fdfdf6, 0x00eeece8, 0x00afaba8,
- 0x00d1cece, 0x00f2eff0, 0x00fdfeff, 0x00fdfdff, 0x00fefeff, 0x00fffbfe, 0x00fefbfe, 0x00f9fefc, 0x00f5fff6, 0x00f7fcf6, 0x00fcfcf9, 0x00fffbfd, 0x00c1b0b1, 0x005d4b46, 0x00463e2b, 0x004b4a2c,
- 0x00624732, 0x005f4632, 0x005b4330, 0x00533e2c, 0x00483629, 0x00413327, 0x003a2f25, 0x00332922, 0x002c2622, 0x00292523, 0x00242426, 0x001f2327, 0x001f2427, 0x001e2428, 0x001d2226, 0x001e2224,
- 0x001e1f27, 0x001a1e22, 0x001b1f21, 0x00181c20, 0x00161b1f, 0x0014161c, 0x00121922, 0x000f2136, 0x00264f82, 0x004a7ab7, 0x005082c8, 0x004e7fc9, 0x00517ecd, 0x004d7ccc, 0x004a7ccc, 0x00487ecf,
- 0x00467dcd, 0x00447acb, 0x00396ebf, 0x002f61b3, 0x00315fb4, 0x002f5cb1, 0x002b5aab, 0x002757a8, 0x002459a8, 0x00265ca5, 0x002a5fa8, 0x002d5fa9, 0x003162a9, 0x003266a9, 0x003267ab, 0x003467aa,
- 0x003565a7, 0x003367a5, 0x003063a2, 0x00295b9b, 0x00235595, 0x002c5ba4, 0x002753a3, 0x002857a4, 0x002f60a6, 0x003664a0, 0x00466d9e, 0x00617fa1, 0x00687580, 0x00424340, 0x003e3629, 0x003f321c,
- 0x00272828, 0x00212123, 0x0017151c, 0x00121019, 0x000f0c18, 0x00110e1c, 0x00181524, 0x00282534, 0x003b3a45, 0x0047454e, 0x0053535b, 0x005b5960, 0x00665959, 0x00755956, 0x007d524b, 0x007f4c3e,
- 0x007d3c2f, 0x00763829, 0x00763a2b, 0x007d4438, 0x007e4d43, 0x0074504a, 0x006f534f, 0x0072544f, 0x0076534a, 0x007c574c, 0x0081584b, 0x00825443, 0x0086523d, 0x00874f37, 0x00894e35, 0x00894e33,
- 0x007a512c, 0x006c4a26, 0x005c3e20, 0x004f361c, 0x00453325, 0x003f3128, 0x00413531, 0x0047413a, 0x0053504c, 0x00615d59, 0x0075746d, 0x0084867e, 0x00979690, 0x00aba9a5, 0x00bcbcb8, 0x00c4c3c1,
- 0x00d2d4d4, 0x00dddede, 0x00ecebec, 0x00f0f0ef, 0x00f6f4f4, 0x00f8f7f7, 0x00fafaf9, 0x00fbfcfb, 0x00fefefe, 0x00ffffff, 0x00fdfdfe, 0x00fcfdfd, 0x00fefeff, 0x00fefeff, 0x00fdfeff, 0x00fefeff,
- 0x00ecdfca, 0x00947f67, 0x00412b11, 0x003a230a, 0x001f0d03, 0x000e0403, 0x00020105, 0x0001010c, 0x00010006, 0x00070108, 0x000a0207, 0x000f0901, 0x00151304, 0x00120c05, 0x000a0500, 0x000a0500,
- 0x000b0505, 0x000a0706, 0x00080608, 0x00070606, 0x00060103, 0x000b0002, 0x000f0001, 0x000f0401, 0x00111005, 0x000d110a, 0x00090f0c, 0x0005070c, 0x00060106, 0x000e0204, 0x000c0000, 0x00120000,
- 0x00000903, 0x00000d10, 0x00011428, 0x00051d42, 0x000b296a, 0x00123785, 0x00143895, 0x0017389d, 0x001c389e, 0x00162e95, 0x00142182, 0x001f1c6c, 0x00444060, 0x00746f6c, 0x00837c61, 0x00a0946f,
- 0x00d4beb0, 0x00d0bdbd, 0x00584550, 0x000e050a, 0x00080104, 0x00030301, 0x00020100, 0x00010401, 0x00010101, 0x00030303, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00ffffff,
- 0x00f8f8f8, 0x009a9a9a, 0x00020202, 0x00020202, 0x00040505, 0x00060706, 0x00070808, 0x00080808, 0x00090908, 0x00090a09, 0x000a0a0b, 0x00090a0c, 0x000a0b0e, 0x000b0b0f, 0x000c0b10, 0x000c0b0f,
- 0x000b0c0e, 0x000b0b0e, 0x000c0c0f, 0x000d0d0f, 0x000e0e11, 0x000c0c0f, 0x000b0b0d, 0x000e0c0f, 0x000d0b0e, 0x000d0b0d, 0x00100e10, 0x00242023, 0x004d444a, 0x005f575d, 0x00554e54, 0x00443c42,
- 0x001f2a33, 0x00182228, 0x00131718, 0x00100e0e, 0x00110b0c, 0x00110c0d, 0x000d0e12, 0x00121621, 0x00647489, 0x00a1b6cb, 0x008faad6, 0x00648add, 0x005786d1, 0x005287cf, 0x00558ed3, 0x005595d8,
- 0x004281cb, 0x00306fbf, 0x003370c5, 0x003972cf, 0x003a6dd0, 0x003b69d0, 0x003b68cf, 0x003b68ce, 0x003968d1, 0x00386acf, 0x003a6dd0, 0x00376acc, 0x003268bc, 0x003167b3, 0x003367b2, 0x002f65ae,
- 0x002467b5, 0x00417cc3, 0x006699d5, 0x007ca5cf, 0x008198aa, 0x004b5861, 0x000a1114, 0x00000100, 0x00070805, 0x00040402, 0x00050506, 0x00050409, 0x0008060a, 0x00090909, 0x00080809, 0x000b090d,
- 0x00090909, 0x00090809, 0x0007070a, 0x0006060a, 0x0009060c, 0x0009070c, 0x0007060a, 0x0007060a, 0x00060607, 0x00040405, 0x00030405, 0x00050606, 0x00010001, 0x00010001, 0x00636364, 0x00e5e4e5,
- 0x00bcb9a6, 0x004e3523, 0x005c3422, 0x006f3824, 0x0082422b, 0x0086472c, 0x00864b2d, 0x00864e31, 0x007d4b38, 0x00774937, 0x006d4835, 0x00593f32, 0x00583729, 0x00583a29, 0x00735841, 0x0094785c,
- 0x00c1a17c, 0x00dbae88, 0x00e6b288, 0x00dd9f71, 0x00d0855a, 0x00c8845e, 0x00d8a081, 0x00f4cfb4, 0x00ffeedf, 0x00fbf1eb, 0x00f7fbf1, 0x00c9d9d8, 0x006983aa, 0x003d60a8, 0x002c5aba, 0x00295bd4,
- 0x003f5fb0, 0x003756a8, 0x0028469c, 0x0026419c, 0x00213b97, 0x001b368b, 0x001c3983, 0x00193677, 0x00132c5a, 0x0009274d, 0x00081f46, 0x000c1f4a, 0x001a2951, 0x003c4463, 0x00605974, 0x00654d66,
- 0x006a3551, 0x008a5d73, 0x00bfa0b1, 0x00b5adba, 0x00a1bdbf, 0x00c6cfdd, 0x00d2d4e7, 0x00b4b1b8, 0x009c94a0, 0x009da4b5, 0x00a3b0c6, 0x00aeb9d7, 0x00a6a2b7, 0x009f99a9, 0x00ababb8, 0x00929eaa,
- 0x00ca3b34, 0x00a43035, 0x0065273b, 0x001c2451, 0x000f338b, 0x00113186, 0x00132d86, 0x00112a88, 0x001a2c93, 0x0015338d, 0x00133084, 0x001b2880, 0x0017297c, 0x00142777, 0x000f2971, 0x000f296c,
- 0x00172b67, 0x001e2c5e, 0x002b3b64, 0x00323c5e, 0x00353857, 0x00323d56, 0x00354358, 0x003e4459, 0x0045435b, 0x00454255, 0x00443f4d, 0x00413c4b, 0x003c3b4f, 0x00353950, 0x00313b52, 0x00303f57,
- 0x003e425e, 0x00424559, 0x00444652, 0x00474449, 0x004d403b, 0x004a3b31, 0x0048382b, 0x004c3a29, 0x0052362c, 0x0050352b, 0x004a3227, 0x00422d22, 0x0036261e, 0x00291f17, 0x001a160e, 0x0010130b,
- 0x000a100c, 0x000c130f, 0x00101614, 0x00141719, 0x001a191a, 0x00717272, 0x00fcfefc, 0x00fdfcfe, 0x00fefcfd, 0x00fffefe, 0x00fdfdfd, 0x00d0d0d0, 0x007e7e7e, 0x005c5c5c, 0x00181918, 0x001b1d1d,
- 0x00110d0c, 0x000d0a08, 0x001c1a16, 0x00181716, 0x00121210, 0x000a0908, 0x00181714, 0x001b1918, 0x00181516, 0x00141210, 0x00080705, 0x00080908, 0x000d0e0e, 0x001a1b1c, 0x002d2e30, 0x00323234,
- 0x00343035, 0x00333132, 0x002f2f2d, 0x002f2e2d, 0x002b2c28, 0x002b2827, 0x00242220, 0x0033332f, 0x005f6059, 0x0067675a, 0x004d4f3d, 0x004b4936, 0x005b5348, 0x0038342c, 0x00030200, 0x00040603,
- 0x000c0905, 0x00130e07, 0x00443c34, 0x0053473e, 0x0048372a, 0x00422f1e, 0x00311e0b, 0x00331e0a, 0x004d3a1f, 0x00594428, 0x00574524, 0x00564c1f, 0x00615728, 0x00706536, 0x0081774a, 0x00807849,
- 0x00766f49, 0x006b633f, 0x005a5233, 0x003e371b, 0x0029220c, 0x00342c1b, 0x00897f68, 0x00c6bb97, 0x00d7c69b, 0x00cec3a0, 0x00aeaf9a, 0x00818f8b, 0x004e6a85, 0x003d607f, 0x003b6581, 0x0033617b,
- 0x0052627a, 0x0046444d, 0x0039291d, 0x007b5e42, 0x00987a54, 0x008c7b5a, 0x00645d47, 0x0031322b, 0x00130c16, 0x0013090f, 0x00100b0f, 0x000c0c07, 0x000f1406, 0x002e3225, 0x00959a91, 0x00d0d3cd,
- 0x00cecbca, 0x00b9b3ad, 0x00a79d90, 0x009d9077, 0x0073613c, 0x002b2b21, 0x002a3134, 0x00747370, 0x00a29d9b, 0x00a49f9c, 0x0084817d, 0x004c4c4b, 0x00313434, 0x001f2020, 0x00080c0a, 0x00121510,
- 0x00141116, 0x00100e12, 0x00060605, 0x00010200, 0x00080807, 0x000d0e0c, 0x00191c17, 0x001f231f, 0x0029272c, 0x001b1b1c, 0x00101310, 0x000f140b, 0x00181c1b, 0x00131820, 0x00070e1b, 0x00131c2b,
- 0x0020273e, 0x000c142b, 0x00060e24, 0x00090f23, 0x00000917, 0x00031126, 0x001a2b47, 0x0023365b, 0x002b3b65, 0x00253059, 0x006e7995, 0x00dae1e9, 0x00fffefc, 0x00fffffc, 0x00fcfefb, 0x00fefefd,
- 0x00dbd8de, 0x008f8d92, 0x00848686, 0x00a1a5a2, 0x00757674, 0x003e423e, 0x0039413b, 0x003b4540, 0x00404448, 0x003d4347, 0x003b414a, 0x003a3f50, 0x0039415a, 0x0036405e, 0x00374367, 0x0036466e,
- 0x00364574, 0x00394876, 0x003c4b75, 0x003a4a72, 0x003c496f, 0x003c4870, 0x00353d5c, 0x00565468, 0x00967674, 0x00b48f75, 0x00e2b58e, 0x00eaba8b, 0x00eabc8c, 0x00e4b687, 0x00deb585, 0x00d9b482,
- 0x00e0b794, 0x00dbb593, 0x00d1aa87, 0x00cba480, 0x00c29b77, 0x00b8916c, 0x00b58e68, 0x00b08b65, 0x00b08a64, 0x00b58f6b, 0x00c4996e, 0x00d49d68, 0x00d9ae74, 0x00d7b27b, 0x00d6b484, 0x00dcb58e,
- 0x00edbb8a, 0x00e8ba7d, 0x00ddb882, 0x00d3b794, 0x008c7f90, 0x003c5698, 0x002252ac, 0x00285cb4, 0x002f61bb, 0x003367b7, 0x00487ec8, 0x00548ccb, 0x002f60a9, 0x00234c9f, 0x004d70cf, 0x006b89f6,
- 0x005386de, 0x003765c2, 0x00224ba8, 0x001f41a6, 0x0016359a, 0x000a2a8f, 0x00052383, 0x00031e78, 0x00081b6a, 0x0007175d, 0x0001124c, 0x0000144a, 0x000b0b3e, 0x000d073a, 0x00070738, 0x00001142,
- 0x00102226, 0x0059512a, 0x00a48137, 0x00b77c14, 0x00d0881f, 0x00c29221, 0x00bf9728, 0x00c18329, 0x00c76814, 0x00cd760a, 0x00d4880b, 0x00cf9009, 0x00ba8212, 0x00b57a20, 0x00ba7928, 0x00be772a,
- 0x00d17202, 0x00b06d12, 0x0082521a, 0x008c7664, 0x00e8dee4, 0x00fdfafa, 0x00fafefb, 0x00f8fffc, 0x00fcfefe, 0x00fffcfc, 0x00fafcf9, 0x009ca6b4, 0x001b2c4f, 0x00112148, 0x00202e59, 0x00717ba0,
- 0x002d2b36, 0x00191417, 0x001e1518, 0x001d1417, 0x000f121e, 0x000d1417, 0x000f130d, 0x00251f0e, 0x003b3534, 0x00313c58, 0x00203c67, 0x001a4174, 0x007b9dc1, 0x0097b2d6, 0x0058719c, 0x0020396f,
- 0x00223065, 0x002f3561, 0x00555670, 0x0063625a, 0x006e6758, 0x00868295, 0x007d81a8, 0x007787bd, 0x002c5189, 0x001f4c8f, 0x004476af, 0x008bafd9, 0x00566a90, 0x0008142a, 0x00000d1a, 0x00040e13,
- 0x0009090e, 0x00090a10, 0x00040715, 0x001a2436, 0x003b4661, 0x004977a9, 0x003775b4, 0x003d7db4, 0x002d6aad, 0x00386db9, 0x00205098, 0x00295598, 0x00365f8b, 0x00365e8f, 0x00365e95, 0x00416ab1,
- 0x004170a8, 0x004172b6, 0x003567b0, 0x00497dc4, 0x006692b9, 0x00769bb3, 0x0098b7cd, 0x00657fa9, 0x004062aa, 0x002a54a1, 0x002c5aa1, 0x0044669d, 0x0092b5d2, 0x007da6cc, 0x00346294, 0x00255393,
- 0x0048567f, 0x00625a7d, 0x002f2044, 0x0020173c, 0x0032495f, 0x002c5c8c, 0x003068a9, 0x00316caf, 0x003269b8, 0x00326dba, 0x00306cb6, 0x002d65a8, 0x002b528c, 0x00112e61, 0x00455984, 0x008695bd,
- 0x00577893, 0x00243a5f, 0x0020284d, 0x002c1d42, 0x0033403d, 0x0055473a, 0x00583e2e, 0x00594235, 0x00493859, 0x001f3661, 0x0012396c, 0x002c427d, 0x00353f6a, 0x004f4d59, 0x00776455, 0x00997a4e,
- 0x00896e4d, 0x00726256, 0x00786962, 0x0093796f, 0x00a26d3c, 0x009b7959, 0x007d6b59, 0x00564f4a, 0x00232637, 0x002a2732, 0x00291a1f, 0x00331604, 0x0073451e, 0x007b4b24, 0x006d411f, 0x00795539,
- 0x00a1642d, 0x009f643d, 0x00935c36, 0x00905f2f, 0x008d622a, 0x0083583b, 0x005a331e, 0x00624330, 0x00ac9e81, 0x00fffbef, 0x00fcfdfa, 0x00f6fbf7, 0x00fefcfa, 0x00fefcf8, 0x00e3e4e0, 0x009e9999,
- 0x00c2bec0, 0x00e1e1e3, 0x00f4f9f9, 0x00f7fafa, 0x00f8fefc, 0x00f9fdfc, 0x00f7faf7, 0x00f6fbf6, 0x00f9fefc, 0x00fdfdfd, 0x00fbfbf7, 0x00fffefa, 0x00b5a9a3, 0x00514237, 0x004f4131, 0x00564832,
- 0x0063482e, 0x0061472f, 0x005e462e, 0x0056412c, 0x004a3728, 0x00433328, 0x003e3127, 0x00392e26, 0x00392f29, 0x00372b27, 0x00302b26, 0x002a2d25, 0x002c2e25, 0x002e2d29, 0x002c2a28, 0x002c2826,
- 0x002d2627, 0x002e292a, 0x002e292a, 0x00292426, 0x00242426, 0x00232129, 0x001e222b, 0x00121f2e, 0x001d3050, 0x003e5b82, 0x00577ca7, 0x00517caf, 0x004f7ec4, 0x00487ed1, 0x004480d9, 0x003e7ede,
- 0x004a7ad1, 0x004878cf, 0x004070c4, 0x003565b5, 0x002f60af, 0x002f62ae, 0x002657a2, 0x0022519e, 0x00254f9e, 0x002754a3, 0x00265aa8, 0x00235ca5, 0x00265ca7, 0x002b60a7, 0x002f62a6, 0x003362a5,
- 0x003563a5, 0x003266a3, 0x003366a3, 0x003565a8, 0x003161a3, 0x00325ca5, 0x002d54a0, 0x0027529d, 0x002f58a2, 0x00365f9e, 0x003e6699, 0x0054759b, 0x005e6f82, 0x0040454d, 0x003a3635, 0x003b3329,
- 0x002c2c33, 0x0026272b, 0x001d1d21, 0x0019191e, 0x0016161f, 0x00151722, 0x001c1f2a, 0x002b2f3a, 0x00424355, 0x004f4f5d, 0x00595a63, 0x00615d64, 0x006b5d5d, 0x00735c5c, 0x007a5956, 0x0079504a,
- 0x00764239, 0x00733a33, 0x0071382f, 0x00783d35, 0x007d443a, 0x00744743, 0x006f4d48, 0x00724d47, 0x00774c45, 0x007d4f48, 0x007f5346, 0x0080533f, 0x00824f3a, 0x00845037, 0x00865337, 0x008a5439,
- 0x0078532b, 0x00694926, 0x00583e1f, 0x004b381a, 0x003d2f1c, 0x00332a18, 0x002f2a18, 0x002b2817, 0x00342a1a, 0x003a3120, 0x003d3920, 0x003e3d1f, 0x004b462b, 0x00565038, 0x005f5b44, 0x0063604d,
- 0x006f7066, 0x00787a74, 0x00878c8e, 0x00939da4, 0x00a6b3be, 0x00b2c2ce, 0x00bed1da, 0x00c8dde4, 0x00e1e4ec, 0x00e4e6ea, 0x00f0f3f2, 0x00f9faf8, 0x00fdfafa, 0x00fefbfc, 0x00fcfcfc, 0x00fefefd,
- 0x00d7d3cb, 0x00665e55, 0x00120c00, 0x00110901, 0x000b0201, 0x00090102, 0x00080401, 0x00080205, 0x00110208, 0x00190809, 0x00311a07, 0x00573610, 0x00664729, 0x0048321b, 0x00160c00, 0x00110804,
- 0x00080407, 0x00060307, 0x00040408, 0x00010402, 0x00020402, 0x00030103, 0x00050003, 0x000a0500, 0x001d1107, 0x001e140b, 0x00130d04, 0x000b0906, 0x000d0509, 0x00110709, 0x00100405, 0x000d0000,
- 0x00040908, 0x00060808, 0x00060509, 0x000a070f, 0x000c0e28, 0x000c1b3f, 0x000b1e52, 0x00122664, 0x001b2c7a, 0x00162a77, 0x00172871, 0x000e1e5d, 0x00263066, 0x00464c70, 0x00525668, 0x00868786,
- 0x00b1ab9d, 0x00b1a899, 0x00494037, 0x000c0706, 0x0005000c, 0x00070408, 0x00020200, 0x00030402, 0x00030303, 0x00030303, 0x001d1d1d, 0x008f8f8f, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fdfdfd,
- 0x00f8faf7, 0x009b9c9a, 0x00030302, 0x00040404, 0x00060707, 0x00070909, 0x0009090b, 0x000a0a0c, 0x000d0b11, 0x000d0c12, 0x000c0d11, 0x000b0c0f, 0x000c0c11, 0x000e0d11, 0x000e0e11, 0x000e0e11,
- 0x00111116, 0x00111015, 0x00100f14, 0x00111015, 0x00101015, 0x00100f16, 0x000b0a12, 0x000e0d16, 0x00160811, 0x0016070f, 0x00322128, 0x005f4a50, 0x008f7177, 0x009e7c81, 0x009c7a7d, 0x00926f71,
- 0x007d747d, 0x0071778a, 0x00576d8b, 0x003c5c85, 0x0033517b, 0x0029405f, 0x0021344b, 0x003c4b60, 0x0086a7d0, 0x0094c1f2, 0x006097d4, 0x005085d7, 0x004f86d5, 0x004e87d7, 0x004a86d4, 0x003e7ac6,
- 0x003977c8, 0x003775c7, 0x003a77c9, 0x003974c9, 0x003a72cc, 0x003a6ed1, 0x00386cd1, 0x00346bc7, 0x00376ec8, 0x00336dc4, 0x003570c5, 0x00346fc3, 0x00306cbf, 0x00326cba, 0x003168b6, 0x002b63a9,
- 0x001f64b3, 0x002669af, 0x003777b3, 0x005086bc, 0x00739bc2, 0x006989ac, 0x00192d48, 0x00010217, 0x000b080d, 0x000f0508, 0x000c0507, 0x00050506, 0x00070708, 0x00080807, 0x00080907, 0x000a0a0a,
- 0x000b090d, 0x000b080c, 0x0008080a, 0x0009090a, 0x000c0a0c, 0x000b090b, 0x00060709, 0x00060609, 0x00060407, 0x00080507, 0x00030304, 0x00030505, 0x00020001, 0x00030103, 0x00646565, 0x00e5e5e4,
- 0x00b3b89a, 0x00423214, 0x0055351e, 0x00683b25, 0x007c4029, 0x0081452f, 0x00854a36, 0x007f4a36, 0x0061422c, 0x00533d28, 0x00523d30, 0x004a3a30, 0x005d4739, 0x0090755f, 0x00c19d83, 0x00d4a885,
- 0x00d6aa72, 0x00daa973, 0x00dda475, 0x00c68859, 0x00d49567, 0x00e4caa8, 0x00f4e5d2, 0x00fef3e3, 0x00f9f0da, 0x00f3eed9, 0x00f4f2e5, 0x00d7deda, 0x007a90b1, 0x00405ea1, 0x003052b4, 0x002d52cd,
- 0x00345e96, 0x00305596, 0x00284892, 0x00223d8f, 0x00233a8d, 0x001f3484, 0x001c3075, 0x001a2e6b, 0x00082947, 0x00052739, 0x00142744, 0x00323360, 0x00536281, 0x0077869b, 0x00a6a6b8, 0x00b19dab,
- 0x00946069, 0x008c515c, 0x00b27e8d, 0x00ceb1ba, 0x00b4bfc0, 0x00a0a8b5, 0x00b6b8d2, 0x00cbcce4, 0x00bfc4db, 0x00b8bad4, 0x00c1c1dd, 0x00d0cdea, 0x00c5bed9, 0x00aaa2b9, 0x00a79fb3, 0x00a9a0b1,
- 0x00bb3c29, 0x00892f2a, 0x00582735, 0x001a1b3d, 0x000b286d, 0x00082077, 0x000b1d7d, 0x00171b80, 0x00071f61, 0x00032559, 0x000b245a, 0x000f1b5a, 0x00071451, 0x0002124e, 0x000a1753, 0x000c1e56,
- 0x00071b46, 0x0014284c, 0x0029385e, 0x00323d61, 0x00313957, 0x002e3d58, 0x0035425f, 0x003d435d, 0x003f4252, 0x0044404d, 0x00473c4c, 0x00463b4a, 0x003b3c4f, 0x00373e54, 0x00343f58, 0x0031415c,
- 0x0038435a, 0x003b4556, 0x00424352, 0x00444045, 0x00423c32, 0x00423627, 0x00443325, 0x00463323, 0x0041311f, 0x003d2d1f, 0x003f2a20, 0x003b261e, 0x0030221c, 0x00251c16, 0x001b1511, 0x00141311,
- 0x00041307, 0x0009130e, 0x000f1717, 0x0013181c, 0x00181a20, 0x00727173, 0x00ffffff, 0x00ffffff, 0x00f8fbfa, 0x00fafdfb, 0x00fbfcfb, 0x00cdcdcd, 0x007f7e7e, 0x00605f5f, 0x00191618, 0x00181617,
- 0x00131510, 0x00181a15, 0x001e201c, 0x000d0f0b, 0x000d0d0a, 0x00151512, 0x001c1b18, 0x0021201e, 0x00373a31, 0x00383a32, 0x00181816, 0x00050505, 0x00080707, 0x001e1d1d, 0x00353436, 0x00353536,
- 0x002c312d, 0x002d312e, 0x00313031, 0x00322f31, 0x002a2b2c, 0x00272a28, 0x00232521, 0x002e302a, 0x00555a41, 0x005f6047, 0x00494630, 0x003a3820, 0x004a4939, 0x0037382b, 0x00070704, 0x000b090b,
- 0x00080300, 0x00150c04, 0x004d3f38, 0x00524239, 0x003e2d20, 0x003e2b1c, 0x00341c0d, 0x003b210e, 0x00634d2a, 0x007b6342, 0x007d6642, 0x007c6e43, 0x0073663b, 0x00766941, 0x008b7e59, 0x007f7753,
- 0x0042441a, 0x002c2f0d, 0x00272510, 0x001d1807, 0x0028261a, 0x004a4939, 0x008c846d, 0x00b4a784, 0x00b2ae71, 0x00b0b087, 0x00a7ad9e, 0x00788c9e, 0x003c639b, 0x0028588f, 0x001d5684, 0x0018557d,
- 0x0030566d, 0x00454f51, 0x00534334, 0x00976f4b, 0x00a87d54, 0x00937b61, 0x006b6156, 0x00343339, 0x0010140d, 0x00181107, 0x001e1706, 0x001e2309, 0x002d2f1a, 0x003a3d2c, 0x006e7166, 0x00a2a49c,
- 0x00b5b7a7, 0x00adac96, 0x00918871, 0x007b6f51, 0x006c5e39, 0x004c473b, 0x004e4d4d, 0x00979394, 0x00d2d3d2, 0x00cdcdcd, 0x00cacac9, 0x00bdbdbd, 0x00a5a5a5, 0x005d5d5d, 0x000f0f0f, 0x000e0d0e,
- 0x000d0e0d, 0x000c0d0c, 0x00050605, 0x00000100, 0x000a0a0a, 0x00121212, 0x001a191a, 0x00272627, 0x00292d27, 0x00242722, 0x00161a1a, 0x00151b19, 0x002b3234, 0x002b3034, 0x001d222a, 0x00212535,
- 0x0016232c, 0x0007121e, 0x00091122, 0x00050b1e, 0x0000081a, 0x00020c2b, 0x0018234b, 0x00232f54, 0x001c2d44, 0x00121f32, 0x00646e81, 0x00d9e0e8, 0x00fefcfe, 0x00fefbff, 0x00fffeff, 0x00ffffff,
- 0x00d6d9d6, 0x008c8f8d, 0x00838786, 0x00a1a5a2, 0x00737871, 0x003a4037, 0x00373c37, 0x003c4242, 0x0034403a, 0x00303c3a, 0x00353c44, 0x00373b50, 0x00353b57, 0x00343d5e, 0x00364167, 0x0035436e,
- 0x00284266, 0x002d436b, 0x00344773, 0x00324574, 0x00384572, 0x00354374, 0x00343a68, 0x003d375c, 0x00685c54, 0x00ac8f74, 0x00e0b492, 0x00ecbb8b, 0x00eebb8a, 0x00e2b289, 0x00daaf8b, 0x00deb699,
- 0x00d0af88, 0x00cba983, 0x00c7a17e, 0x00c19a77, 0x00bd9973, 0x00ba9770, 0x00ba966f, 0x00b8966e, 0x00b19565, 0x00ba9c6e, 0x00cda479, 0x00e0a779, 0x00d8b27b, 0x00d3b482, 0x00d8b78c, 0x00dbb58e,
- 0x00e0b773, 0x00ddb977, 0x00c9ae83, 0x00908b81, 0x00415496, 0x00234db0, 0x002559c6, 0x002b5abc, 0x00305ba5, 0x004870b6, 0x006a88d3, 0x005974c5, 0x003a59b4, 0x00577bd7, 0x006f96f4, 0x005b86e3,
- 0x00305dae, 0x001f4ba1, 0x00163c9b, 0x00103397, 0x000b278c, 0x00082384, 0x000c2380, 0x00081f76, 0x00001a58, 0x00001851, 0x00001455, 0x00001158, 0x00100836, 0x0013062c, 0x000f0932, 0x00061445,
- 0x00183230, 0x0050420f, 0x0094630f, 0x00cd8011, 0x00e2982b, 0x00c39c3e, 0x009f7a2b, 0x00a9662a, 0x00bf6308, 0x00d58003, 0x00d78b02, 0x00c38e05, 0x00bc9126, 0x00c18d2e, 0x00c27f23, 0x00d8851f,
- 0x00df8c01, 0x00c88211, 0x009b6517, 0x009c794f, 0x00eadddb, 0x00fdf8f8, 0x00fefbff, 0x00fffeff, 0x00fbfff7, 0x00f6fff4, 0x00f9fffa, 0x007e8697, 0x00102046, 0x001b2d5a, 0x00192957, 0x00434b74,
- 0x001a1d1f, 0x000f1005, 0x001d1710, 0x0015110c, 0x000e101a, 0x0007121c, 0x000b0c14, 0x0027140f, 0x003d332b, 0x002d4050, 0x00163c61, 0x0018507b, 0x007d9ec0, 0x008fa1c7, 0x00636f9d, 0x002d3874,
- 0x00172e4a, 0x001d3362, 0x000e1e4f, 0x0022334c, 0x003f494e, 0x00646688, 0x00898bbf, 0x008e97ca, 0x005387a1, 0x000e4a7f, 0x004a81c3, 0x005783b3, 0x003c5981, 0x00172c47, 0x00081027, 0x00090c1a,
- 0x00050b0f, 0x0009131e, 0x00111f37, 0x001c3054, 0x004a6795, 0x005480c4, 0x005488cf, 0x003f76a9, 0x002d6c97, 0x005d96d7, 0x003569b7, 0x005385d1, 0x0075a9d4, 0x006899c3, 0x00638ec1, 0x005075b9,
- 0x002c6ca0, 0x002f71bd, 0x002b6bc5, 0x003074c7, 0x003b779a, 0x008db8cd, 0x00cde6ff, 0x00b8c8f7, 0x00567bc1, 0x001b4e92, 0x001d468a, 0x004f5fa0, 0x0096bed6, 0x0082b5d9, 0x00386597, 0x00274684,
- 0x0028364e, 0x0035365a, 0x00302b64, 0x002a2a71, 0x0011314c, 0x001b4c82, 0x00225a9f, 0x00285ca6, 0x002c64a9, 0x002160a6, 0x0015509c, 0x001f5ba9, 0x003260a0, 0x00345480, 0x007988a7, 0x00a0a1b3,
- 0x002a5361, 0x00031c3b, 0x00090a38, 0x001a063e, 0x00193d43, 0x004c4741, 0x007d6459, 0x007b5c53, 0x00452745, 0x00112c53, 0x000e386c, 0x001b3673, 0x00474e67, 0x00736a66, 0x0089725d, 0x008d6c48,
- 0x007a5c33, 0x00502f0e, 0x00653f27, 0x008e6748, 0x0092643d, 0x0092653f, 0x00856950, 0x00797573, 0x00345d74, 0x000b2b45, 0x00090e25, 0x002a1a1b, 0x007d4922, 0x00754720, 0x00663f24, 0x004b3023,
- 0x00935b1c, 0x009a623b, 0x00935b3b, 0x0094622e, 0x00906322, 0x00916244, 0x0068372c, 0x00502a1c, 0x00949566, 0x00f9fcea, 0x00fafefe, 0x00f9f9fa, 0x00fefdfc, 0x00fcfefc, 0x00d3cbd0, 0x00574e52,
- 0x00595c57, 0x00797d78, 0x009ea29f, 0x00afb5b2, 0x00c5cdc9, 0x00d6dcd9, 0x00f6f8f9, 0x00fcfdff, 0x00f0fbf5, 0x00f2faf3, 0x00fafcfa, 0x00fefcf8, 0x00ada398, 0x00504333, 0x00584535, 0x005b4632,
- 0x005d491f, 0x00594421, 0x005c442b, 0x005a4230, 0x004f3829, 0x00493427, 0x0048362c, 0x0046362f, 0x003c3425, 0x003d3325, 0x003e342a, 0x003c382a, 0x003c3527, 0x003c3527, 0x0040342d, 0x0043352f,
- 0x003e352a, 0x00413a31, 0x00433b38, 0x003e3735, 0x00373332, 0x00343032, 0x00302a35, 0x002d2837, 0x00182628, 0x001a2d36, 0x00375164, 0x00527494, 0x005483bf, 0x00467bca, 0x004780df, 0x004684ed,
- 0x004d7dd3, 0x004779cb, 0x004272c8, 0x003566ba, 0x002c61b0, 0x002f63af, 0x002b5aaa, 0x002855a6, 0x001b4d96, 0x001f4a94, 0x002653a3, 0x001e54a6, 0x002455a7, 0x002657a4, 0x002f5dab, 0x003561a8,
- 0x0030649d, 0x003364a1, 0x003c6aae, 0x003f6bb0, 0x003965ae, 0x00375ba7, 0x003655a6, 0x002f53a2, 0x00265494, 0x002c5a91, 0x00365f91, 0x00496c94, 0x005a6d85, 0x00474f5e, 0x003c3c44, 0x00423a3b,
- 0x002f3534, 0x00292f31, 0x00292a2f, 0x0025262e, 0x0023222f, 0x00212331, 0x002a2a3a, 0x00353648, 0x003f4956, 0x004d5563, 0x005e5d6a, 0x006d6164, 0x00726366, 0x00745e5f, 0x00785b5e, 0x00745454,
- 0x0068453d, 0x00653c32, 0x00673430, 0x006e3834, 0x00783c35, 0x0072413c, 0x00734647, 0x00744a48, 0x006e493b, 0x0071493a, 0x00784d3e, 0x00794c3b, 0x00794c36, 0x007c4e36, 0x00815139, 0x00855339,
- 0x006c5324, 0x0061481e, 0x005a4220, 0x00524024, 0x00473b22, 0x003f371f, 0x00403921, 0x00423b22, 0x003d3b17, 0x00413e17, 0x00463f19, 0x00464115, 0x004c3f18, 0x004c421c, 0x004f4424, 0x0050442c,
- 0x0040422b, 0x0040483c, 0x00485454, 0x00495c67, 0x004c6276, 0x00446278, 0x0049667d, 0x00546d80, 0x0062767b, 0x006e7a7c, 0x00aeb2b3, 0x00f2f1ef, 0x00fefcfc, 0x00fefdfe, 0x00fefcff, 0x00fefeff,
- 0x00bbc2b9, 0x003f453d, 0x00010200, 0x00050505, 0x00030000, 0x00080401, 0x00100704, 0x00120701, 0x00180b00, 0x00271a01, 0x00714e2f, 0x00b78142, 0x00be8f5e, 0x00997856, 0x004b2f1c, 0x00150a05,
- 0x00000500, 0x00000200, 0x00000307, 0x00010501, 0x00000802, 0x00010108, 0x0005040e, 0x00160c10, 0x00281c07, 0x002b1a06, 0x002a160a, 0x00271714, 0x001b1214, 0x00140a0b, 0x0016080c, 0x00180807,
- 0x00010e05, 0x00080a00, 0x000f0500, 0x00150200, 0x00170207, 0x0009010d, 0x0004031b, 0x0006092e, 0x00000e34, 0x00000f3a, 0x00061746, 0x00061d4c, 0x00162561, 0x001f2b66, 0x002d3269, 0x005b5d81,
- 0x007d8977, 0x00767b5f, 0x002b2b15, 0x00050302, 0x00060010, 0x0007050b, 0x00040405, 0x00060409, 0x00010101, 0x00020202, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00f2f9f2, 0x00989d97, 0x00020303, 0x00030505, 0x00060a06, 0x00080d0a, 0x000b0d11, 0x000c0d12, 0x00080d10, 0x000b0f13, 0x000e1015, 0x000e0f14, 0x000e1014, 0x00101215, 0x00131317, 0x00131218,
- 0x000c1314, 0x000e1214, 0x0011131a, 0x00121319, 0x00121216, 0x0013131e, 0x000f0b1d, 0x00180d1e, 0x00130b10, 0x001d1114, 0x00553d44, 0x007e5e65, 0x00734a4d, 0x00693c3f, 0x00875459, 0x00a77378,
- 0x0090807d, 0x00858ba3, 0x007793c6, 0x006097dc, 0x005a93da, 0x00638fc5, 0x006886b8, 0x007a90bc, 0x007eb5e1, 0x006bb2ed, 0x005197e4, 0x004a85d8, 0x004580d2, 0x004583d5, 0x00427dd2, 0x003c76ce,
- 0x003371c1, 0x003475c1, 0x003875c8, 0x003a74c7, 0x003571c6, 0x003670cf, 0x00386ed5, 0x003770ca, 0x002e71b7, 0x002d70b5, 0x003372bc, 0x003271c0, 0x00316ec4, 0x00306dbe, 0x003068ba, 0x002960ac,
- 0x001b62ac, 0x001e63aa, 0x002465a7, 0x002d6ba7, 0x00487eb8, 0x006089bf, 0x00466091, 0x0017224a, 0x00000106, 0x00080400, 0x000a0200, 0x00060405, 0x00080608, 0x000a0909, 0x000d090c, 0x000e0a0c,
- 0x00070707, 0x00080808, 0x000a0a0a, 0x000b0b0b, 0x000e0e0e, 0x000b0b0b, 0x00090909, 0x00080808, 0x00030503, 0x00020402, 0x00040504, 0x00040403, 0x00010001, 0x00040304, 0x00706e70, 0x00ebe8ea,
- 0x00b8b7a1, 0x0043311b, 0x004f321f, 0x00623a27, 0x006e3b28, 0x00723e2c, 0x00713e2d, 0x00673a29, 0x00543627, 0x004a3426, 0x0042342c, 0x00403b37, 0x0067584e, 0x00a9937e, 0x00cdb294, 0x00ddb893,
- 0x00d5a87a, 0x00d9a87d, 0x00cda076, 0x00b68861, 0x00e0b493, 0x00fdeed8, 0x00fdf4e6, 0x00fef1e5, 0x00faecde, 0x00f7ede0, 0x00f3ede4, 0x00e2e5e4, 0x0094a4c2, 0x00475e9e, 0x002c49a3, 0x003150c4,
- 0x003c5da2, 0x003c5aa3, 0x00324b98, 0x00243a87, 0x0020337a, 0x001f2e70, 0x0015225c, 0x00141f53, 0x000f1b3c, 0x001e2b43, 0x004c5170, 0x007c79a3, 0x0098a5c0, 0x00a3b5c4, 0x00b5bcc6, 0x00c1b6be,
- 0x00d6aab5, 0x00c48e9e, 0x00a8798b, 0x00bca0ae, 0x00b2b9be, 0x009196a3, 0x008f94a7, 0x00bec2d4, 0x00dbdef7, 0x00c3c5e1, 0x00bcbbd7, 0x00d0cde9, 0x00d1cce6, 0x00c5bfd5, 0x00aaa3b8, 0x00a9a3b5,
- 0x00c14231, 0x00862a23, 0x00521d20, 0x001a1122, 0x00051643, 0x00030f4d, 0x00030b52, 0x000b0956, 0x00040e45, 0x0001113f, 0x0000113c, 0x00040d3d, 0x00010a38, 0x00010e39, 0x0002133c, 0x0007163e,
- 0x00122240, 0x0020304a, 0x00333f59, 0x00384158, 0x00363d4f, 0x00313f53, 0x00354258, 0x003c4356, 0x0044404f, 0x00463f4a, 0x004a3e4a, 0x004b3d49, 0x00413e4c, 0x003c3f50, 0x00394054, 0x00344257,
- 0x003c455c, 0x003d4556, 0x0040414f, 0x003f3b40, 0x003d342c, 0x003c2f20, 0x003d2c1d, 0x003e2c1b, 0x003e2a1c, 0x003a281d, 0x003a251d, 0x0036211a, 0x002e1f18, 0x00251c14, 0x001c1810, 0x00141710,
- 0x000c150e, 0x000f1612, 0x00141919, 0x00151a1c, 0x00191b1f, 0x00717172, 0x00fffefd, 0x00fffdff, 0x00fbfafb, 0x00fffeff, 0x00fffeff, 0x00cfcfcf, 0x00787878, 0x005c5c5b, 0x000a0a0a, 0x000c0c0b,
- 0x00252523, 0x0041423e, 0x00363733, 0x000d0e0a, 0x00070805, 0x000c0d09, 0x000e0f0b, 0x000f100b, 0x00252520, 0x0030302b, 0x001a1a19, 0x00050606, 0x000a0a09, 0x001e1f1f, 0x00303132, 0x00323334,
- 0x00313331, 0x00323432, 0x00313031, 0x00302f30, 0x002b2c2d, 0x00262927, 0x00282925, 0x002b2c26, 0x00575245, 0x006e6a58, 0x00544d3b, 0x003d3622, 0x00353222, 0x00232318, 0x00010200, 0x00030707,
- 0x00090100, 0x00120902, 0x0030261e, 0x00352921, 0x0035251a, 0x003f2e1f, 0x00332110, 0x00362412, 0x005c482f, 0x00715b43, 0x00715c41, 0x00736544, 0x00756946, 0x00796d49, 0x008a7e5b, 0x006f6746,
- 0x00333113, 0x00191801, 0x00131000, 0x00181504, 0x002f2f21, 0x00393c34, 0x00696a5d, 0x00989679, 0x009f9c6f, 0x00999b7e, 0x009ca59d, 0x006c8398, 0x00325c92, 0x0024578b, 0x001d5782, 0x00185577,
- 0x00365370, 0x00575f65, 0x00665649, 0x00987251, 0x009f7550, 0x00897059, 0x006d6357, 0x00464948, 0x002c2c2d, 0x00362b28, 0x00362e22, 0x002a2e19, 0x00323525, 0x00373b2e, 0x00363b31, 0x0050544b,
- 0x0084857b, 0x008f8d7d, 0x00706853, 0x0051472a, 0x004c401c, 0x004f4a3f, 0x005a595a, 0x009a979a, 0x00dbdbdc, 0x00dbdadb, 0x00d6d6d7, 0x00d8d8d8, 0x00c6c6c6, 0x006f706f, 0x000c0c0b, 0x00010201,
- 0x000a0a09, 0x000b0b0a, 0x00070706, 0x00040404, 0x000a090a, 0x00121213, 0x00151516, 0x001b1b1c, 0x001f2120, 0x001b1d1a, 0x00131514, 0x00171c19, 0x00383c3c, 0x005f6364, 0x00606567, 0x00454a4f,
- 0x002c333b, 0x0020262f, 0x00121820, 0x00090f17, 0x00020a11, 0x000d1628, 0x00222c43, 0x00273247, 0x00232d3c, 0x00171e2c, 0x00626874, 0x00d7dbe2, 0x00fdfbfd, 0x00fefefd, 0x00fefdfc, 0x00fdfefa,
- 0x00d9dada, 0x008f9191, 0x00868888, 0x00a2a6a4, 0x00727772, 0x00393f39, 0x00333a36, 0x00363d3d, 0x00303a3e, 0x002c363d, 0x002f3645, 0x00313651, 0x00303958, 0x002e3a5e, 0x00303d65, 0x0030406c,
- 0x00273e6e, 0x002d4073, 0x002e4073, 0x002f4174, 0x00303f72, 0x00283b75, 0x00283b6f, 0x00232c56, 0x004e454a, 0x009c8474, 0x00d5b195, 0x00e1ba8e, 0x00dfb686, 0x00d7b085, 0x00cfad85, 0x00cfb08e,
- 0x00caa57f, 0x00c39f79, 0x00c09974, 0x00bd9771, 0x00bd9871, 0x00bf9a72, 0x00c29b73, 0x00c09a71, 0x00bf9e73, 0x00c7a47b, 0x00ceaa7c, 0x00d4ad81, 0x00d8ae8b, 0x00dcad8b, 0x00e4b287, 0x00e9b376,
- 0x00e8b778, 0x00dcb697, 0x00938788, 0x004b5883, 0x001c4c9d, 0x002154bb, 0x00285ec7, 0x003a6ec7, 0x005682c7, 0x006892d4, 0x006688ce, 0x004868b4, 0x005578cc, 0x006e96e9, 0x005480d2, 0x003363b2,
- 0x001e439f, 0x00163b98, 0x000b2e8f, 0x00052689, 0x00062385, 0x00082282, 0x000a217d, 0x00091f75, 0x00041b5e, 0x00031658, 0x00001352, 0x00000e4f, 0x000c0736, 0x000e0937, 0x00080b34, 0x0004183e,
- 0x00434c41, 0x008e6f32, 0x00b17716, 0x00d8860f, 0x00e4a033, 0x00b68a36, 0x00704807, 0x008b4d08, 0x00cd700d, 0x00da810d, 0x00d9890a, 0x00c58a0f, 0x00c89731, 0x00cd9436, 0x00c27d1a, 0x00dd8e1f,
- 0x00e9910b, 0x00d58c20, 0x00a16b1d, 0x009e7e52, 0x00e9e1db, 0x00fcfaf7, 0x00fcfbfe, 0x00fefdfd, 0x00fdfefb, 0x00fdfffb, 0x00f5fff8, 0x005c7379, 0x000d2b45, 0x00183758, 0x00082746, 0x00091d37,
- 0x00051310, 0x000c1708, 0x00142111, 0x00071504, 0x00001210, 0x00001519, 0x00030911, 0x00160707, 0x00342330, 0x0029365c, 0x00123568, 0x00285b93, 0x0088a1c4, 0x008c96b7, 0x005d6487, 0x00232c59,
- 0x0030394d, 0x00475178, 0x000d173f, 0x000a1a2c, 0x0068787c, 0x008089ae, 0x00475187, 0x00707db4, 0x004a789a, 0x00447bb6, 0x003367af, 0x003862a1, 0x0037578d, 0x002c4874, 0x001d3258, 0x00132444,
- 0x0017253f, 0x00253556, 0x002d4169, 0x00415c8c, 0x005d7fb5, 0x005b8acd, 0x00659cda, 0x003d76a2, 0x00588ebc, 0x0071a4e5, 0x003161ae, 0x006a99e4, 0x0086b9e3, 0x0076a8ce, 0x0085b4e3, 0x00739ee0,
- 0x00548ebe, 0x003773bb, 0x00316ec0, 0x002e6fb9, 0x004a859f, 0x00b3dfed, 0x00bbdaef, 0x009fb6e3, 0x00456cb1, 0x003567a8, 0x0023508a, 0x0049659a, 0x009ec6d3, 0x009fc3df, 0x00526f97, 0x002b3e70,
- 0x001e2738, 0x00232643, 0x00323563, 0x003a4180, 0x000f2c46, 0x00113a6d, 0x00215492, 0x002c5c9c, 0x00275698, 0x00205398, 0x00184e96, 0x00184d98, 0x002a5896, 0x004f709d, 0x00647a9a, 0x00818a9e,
- 0x001b3852, 0x00081b43, 0x000d1345, 0x00261651, 0x00467077, 0x00585852, 0x00614c40, 0x005f4a3a, 0x00482a46, 0x001b2e54, 0x000f3163, 0x00122862, 0x0031344a, 0x00615650, 0x007a634c, 0x00755532,
- 0x006e4c2d, 0x0059351a, 0x00724b35, 0x00845c42, 0x00865a38, 0x007d5946, 0x00766d66, 0x005b7075, 0x00387399, 0x00356496, 0x001e3964, 0x004d4c64, 0x00795f48, 0x005b4935, 0x0058534d, 0x00394055,
- 0x00815228, 0x00986941, 0x00936334, 0x0095652a, 0x00966521, 0x00966539, 0x0079492e, 0x00502b18, 0x00a39d8c, 0x00fcfcf6, 0x00fafcfe, 0x00fbfbfd, 0x00fdfdfc, 0x00fefffe, 0x00c3bfbf, 0x00211a1c,
- 0x000f0d0a, 0x00201f1c, 0x002b2c29, 0x00323632, 0x00404640, 0x00696e6a, 0x00d7dad8, 0x00f8fafa, 0x00f7fcfa, 0x00fbfffb, 0x00fbfdfb, 0x00fbfaf5, 0x00a59d92, 0x005c4f40, 0x005d4d3e, 0x005d4a38,
- 0x005e4826, 0x005a4426, 0x0058412a, 0x00553f2b, 0x004f3a2a, 0x004a3628, 0x0049382c, 0x004b3b31, 0x00473d2b, 0x00473c2a, 0x00463d2c, 0x00464230, 0x00453f2d, 0x00463d2e, 0x004d3f36, 0x0052403a,
- 0x0056473f, 0x00544841, 0x00524744, 0x00504642, 0x0048403d, 0x00403a35, 0x00393331, 0x003b3835, 0x002b312a, 0x00202b29, 0x00334449, 0x00526a7b, 0x005e82aa, 0x00507bb3, 0x005281c6, 0x005185d3,
- 0x00507ed4, 0x004e7fd4, 0x004275cc, 0x00356ac1, 0x00275db3, 0x002c61b4, 0x002357aa, 0x002356a7, 0x0025529f, 0x00244e9b, 0x001f4994, 0x00224e96, 0x0027539b, 0x002f59a5, 0x002f5aa8, 0x002d57a4,
- 0x00335aaa, 0x00355eab, 0x003a66b2, 0x003a68b3, 0x003260ac, 0x003257a4, 0x003154a1, 0x002d559d, 0x00285496, 0x0026538d, 0x002d5689, 0x0043658f, 0x005a6d86, 0x00505969, 0x0043454d, 0x00474142,
- 0x003d3e44, 0x00373941, 0x0034353e, 0x0031333c, 0x002f323f, 0x002f3341, 0x00333746, 0x00383e4f, 0x0045505f, 0x00525c6b, 0x00616371, 0x006f686d, 0x0073686d, 0x00736366, 0x00745e61, 0x006f5656,
- 0x006a4946, 0x00643d38, 0x005f322e, 0x0064332e, 0x006b352f, 0x00683b36, 0x0069403f, 0x006a433f, 0x00694137, 0x00684134, 0x006b4336, 0x006b4332, 0x006e4531, 0x00744a34, 0x007b503a, 0x007f543b,
- 0x006f542b, 0x00664c25, 0x005e4824, 0x00584727, 0x004f4326, 0x00484023, 0x00484222, 0x00494423, 0x004c4622, 0x00514923, 0x00554b23, 0x00564e1f, 0x005a4e22, 0x00584e26, 0x00574d2c, 0x00584f35,
- 0x00525042, 0x00525753, 0x00515e63, 0x004c606d, 0x00415a6f, 0x003d5c74, 0x0038566e, 0x00344e62, 0x00354750, 0x003e474c, 0x008c9093, 0x00eaeae8, 0x00fffdfc, 0x00fefefe, 0x00f9fafb, 0x00fbfdff,
- 0x00aeb2b1, 0x002e312f, 0x00000100, 0x00040403, 0x00040200, 0x000b0600, 0x00120900, 0x00180c00, 0x001c1000, 0x00352717, 0x0094744f, 0x00d69c51, 0x00d19f62, 0x00ba9465, 0x00674a2a, 0x001f0b04,
- 0x00070400, 0x00060106, 0x00010104, 0x00040303, 0x00060907, 0x00000204, 0x00080a0e, 0x00231c18, 0x00382412, 0x0039220e, 0x00301908, 0x0029180b, 0x0020130b, 0x001e1008, 0x00210f09, 0x00241004,
- 0x00151503, 0x001f1404, 0x00241401, 0x00281100, 0x00220d00, 0x00150a07, 0x00060407, 0x00000213, 0x0000021c, 0x0000011d, 0x00010521, 0x00030a2d, 0x000f1743, 0x00172048, 0x0020264a, 0x00353853,
- 0x00666b6a, 0x00595b53, 0x001b1c14, 0x00010402, 0x00010407, 0x00040608, 0x00020404, 0x00040404, 0x00010101, 0x00020202, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00f9fcf8, 0x009b9d9a, 0x00010302, 0x00040505, 0x00080a08, 0x00080c0b, 0x000a0d0f, 0x000b0f12, 0x000f1116, 0x00111318, 0x0013151a, 0x00131519, 0x00131519, 0x0015171b, 0x0017181c, 0x0016181c,
- 0x0011171a, 0x0013171b, 0x0013161c, 0x0014171c, 0x00141619, 0x0013181e, 0x0010151e, 0x0015161f, 0x00151319, 0x002a2429, 0x005a4b52, 0x005a454a, 0x00391e1f, 0x00371717, 0x00462324, 0x00644040,
- 0x00837175, 0x00777690, 0x005f74a0, 0x004673b2, 0x003e76bf, 0x00447aba, 0x004e7bb9, 0x005880b9, 0x005488cb, 0x004c8ad3, 0x004485d5, 0x003d7bce, 0x003673c6, 0x003873c7, 0x003670c5, 0x003471c5,
- 0x003471c1, 0x003472c4, 0x003973c7, 0x003872c5, 0x003672c7, 0x00376fcc, 0x00386ecc, 0x00356ec3, 0x003471ba, 0x003574bf, 0x003471bf, 0x003270c7, 0x00306dc5, 0x002e6bc1, 0x002965b3, 0x002662aa,
- 0x002d5bb5, 0x002f5fb3, 0x002c5daa, 0x002e61a6, 0x00396aab, 0x004771ac, 0x005b7baf, 0x00374d75, 0x00030b14, 0x00070705, 0x00050502, 0x00070607, 0x00060708, 0x00070a09, 0x000b0a0b, 0x000c0b0b,
- 0x000a0a0a, 0x000a0a0a, 0x000b0b0b, 0x000c0c0c, 0x000c0c0c, 0x000a0a0a, 0x00080808, 0x00070707, 0x00050506, 0x00050506, 0x00030304, 0x00050505, 0x00000000, 0x00080807, 0x00757473, 0x00e9e9e8,
- 0x00bcb8a9, 0x003c2f1e, 0x00493624, 0x00553a29, 0x005c3729, 0x005a372a, 0x00543024, 0x004b2b1e, 0x003f2b21, 0x003a2d21, 0x0039302b, 0x00454547, 0x008a8078, 0x00a99680, 0x00b29574, 0x00d2ae85,
- 0x00d4a87d, 0x00cfa681, 0x00d5b193, 0x00d1b69d, 0x00f0ddcf, 0x00fef6e8, 0x00faefe4, 0x00f5e8de, 0x00f8e7db, 0x00f1e5d7, 0x00ebe3d7, 0x00eae9df, 0x00b9c0d3, 0x006672a0, 0x0032438a, 0x00384caa,
- 0x003d59a2, 0x0039549a, 0x002d4487, 0x001e316f, 0x00182558, 0x00161c4a, 0x001d1b43, 0x00221d3e, 0x002a1a3b, 0x00574a64, 0x00a092b0, 0x00b4a6cc, 0x00b0b8ce, 0x00abbdc7, 0x00b4c5c9, 0x00c4c9cc,
- 0x00eacfda, 0x00efccdb, 0x00d3b1c1, 0x00b49eb0, 0x00abaab4, 0x009b9dac, 0x00727585, 0x008b8e9f, 0x00cbcce3, 0x00cccce6, 0x00c1bfdb, 0x00cecbe8, 0x00d1cce8, 0x00cdc8e0, 0x00cec9e0, 0x00bfbacf,
- 0x00bf4d3f, 0x00722213, 0x00451609, 0x00160b03, 0x00040d18, 0x0002061e, 0x00030125, 0x0008022a, 0x00060226, 0x00000522, 0x00020823, 0x00040721, 0x000a0f25, 0x001e2839, 0x00232f3d, 0x00222d3a,
- 0x002f3842, 0x00374048, 0x003d434d, 0x003e4049, 0x00413f49, 0x003d404f, 0x003c3f51, 0x0043404e, 0x004c404a, 0x004e3e44, 0x00513d44, 0x00533f46, 0x004b3f49, 0x0046404d, 0x00414050, 0x003b4052,
- 0x003e4358, 0x003d4251, 0x003c3e48, 0x003b373a, 0x003b2f29, 0x0039281e, 0x00372519, 0x00362515, 0x00362216, 0x00342117, 0x00341f18, 0x00311d16, 0x002c1c15, 0x00261b13, 0x00201912, 0x001b1a13,
- 0x00171918, 0x00171a18, 0x001a1c1b, 0x001a1d1d, 0x001c1e20, 0x00727273, 0x00fffefe, 0x00fffdfd, 0x00fdfdfc, 0x00fefefe, 0x00fcfcfc, 0x00cccccc, 0x007b7b7b, 0x005c5c5c, 0x000c0c0c, 0x000c0c0c,
- 0x0030312f, 0x005a5b5a, 0x00484948, 0x000e0e0d, 0x00070706, 0x000b0b0a, 0x000e0d0d, 0x000b0a0a, 0x00090807, 0x000f0f0d, 0x00111111, 0x00040504, 0x000f100f, 0x00202020, 0x00343335, 0x00353436,
- 0x00363837, 0x00373836, 0x00363634, 0x00303030, 0x002c2e2f, 0x00252526, 0x00322f2e, 0x00383431, 0x00666055, 0x00898173, 0x007d7366, 0x005f5647, 0x00413730, 0x00231e18, 0x00050302, 0x00070604,
- 0x000a0501, 0x00080400, 0x00130e08, 0x00150e07, 0x0022180f, 0x00382b22, 0x003b2d24, 0x0034271c, 0x00342218, 0x00322115, 0x00372618, 0x00463a29, 0x00574b39, 0x005e553e, 0x007a7158, 0x00676049,
- 0x0035311a, 0x00282810, 0x00333320, 0x00353323, 0x0025251a, 0x001f2526, 0x00575e5f, 0x008a8f81, 0x0087876d, 0x00787d6f, 0x00818c90, 0x00667c95, 0x00365a8d, 0x002e5887, 0x0026547d, 0x001f4d6f,
- 0x003b526c, 0x004b5158, 0x00584c42, 0x0086684b, 0x008c6c4b, 0x00806d58, 0x009f958b, 0x00929294, 0x00585758, 0x00544c49, 0x00605750, 0x003c3c2e, 0x003a392f, 0x003c3e36, 0x002d302c, 0x00333633,
- 0x00494942, 0x005b5a4e, 0x00575042, 0x004a422f, 0x004c3f25, 0x004f4a43, 0x00767474, 0x009f9f9e, 0x00c7c5c6, 0x00cac9c9, 0x00bdbdbd, 0x00b5b6b5, 0x00a3a2a3, 0x00606060, 0x001d1d1d, 0x00141515,
- 0x00151514, 0x00121211, 0x000f0e0e, 0x000b0b0b, 0x000d0d0d, 0x00101010, 0x00101111, 0x00141515, 0x001f1c1f, 0x001d1c1c, 0x00181618, 0x000f0f0d, 0x00222121, 0x00525350, 0x006c6e6a, 0x005e5f5a,
- 0x006e6d6c, 0x0062615d, 0x0042433d, 0x0032332e, 0x002c2d27, 0x00363635, 0x00444545, 0x004b4d4b, 0x00525553, 0x00434444, 0x00818382, 0x00e1e2e3, 0x00fefcfe, 0x00fcfdfd, 0x00fafafe, 0x00fdfeff,
- 0x00d9dadd, 0x008f9191, 0x00868986, 0x00a1a6a2, 0x00707572, 0x00383d3c, 0x0032373b, 0x0033383f, 0x002c3241, 0x00272e40, 0x00282f48, 0x002a3155, 0x002b365f, 0x00293765, 0x0028386a, 0x00263a70,
- 0x00263d7b, 0x00263c7c, 0x00283e7d, 0x00263d7a, 0x00263b7c, 0x001b377f, 0x00183575, 0x00152b5d, 0x00353547, 0x00847570, 0x00d8bfaa, 0x00dabc94, 0x00d1af82, 0x00d0af84, 0x00ccad85, 0x00c2a47f,
- 0x00c69d76, 0x00c39c73, 0x00c19a70, 0x00c09970, 0x00c29c74, 0x00c49c76, 0x00c89e78, 0x00cca07a, 0x00cba27d, 0x00cba680, 0x00d1af89, 0x00c8b88d, 0x00e0ac9d, 0x00e8a28d, 0x00f5aa86, 0x00fbb676,
- 0x00e2b895, 0x00a496ab, 0x0048529d, 0x002247b9, 0x00185ac8, 0x001757c0, 0x001e57ba, 0x003a72c9, 0x0073a2e6, 0x00719fe0, 0x00557cc1, 0x005376c2, 0x006688dc, 0x004e75c7, 0x002e5aa8, 0x00174892,
- 0x00143999, 0x000d3191, 0x00032285, 0x00001d81, 0x00082083, 0x000b2081, 0x000a1c77, 0x00081a6e, 0x0006165c, 0x00031556, 0x0006124e, 0x00010a40, 0x0008053b, 0x00050e40, 0x00060f38, 0x0014243d,
- 0x00665028, 0x00b27a21, 0x00d38816, 0x00e68e13, 0x00dc9e35, 0x00996420, 0x00683100, 0x00a15b08, 0x00dc8506, 0x00db850f, 0x00db8723, 0x00cc892c, 0x00cd9435, 0x00d69a2a, 0x00d28d16, 0x00e09212,
- 0x00e28905, 0x00d0871a, 0x009e6818, 0x00a28353, 0x00efe6dd, 0x00fefdf8, 0x00fdfdff, 0x00fefefe, 0x00fffffe, 0x00fcfef8, 0x00f3faf8, 0x00677476, 0x001c334a, 0x00122a46, 0x000d2441, 0x0002162c,
- 0x000b140e, 0x000d1405, 0x00151c0a, 0x000f1202, 0x0003100d, 0x00010c12, 0x00050912, 0x0013050c, 0x00221637, 0x001c2b65, 0x00123377, 0x00355fa3, 0x008c9ab8, 0x00818091, 0x0066626f, 0x00424252,
- 0x00342724, 0x00221a2c, 0x001a1b35, 0x0024343e, 0x006e8692, 0x00879ac7, 0x002e4381, 0x00253e78, 0x004d78a0, 0x005083bf, 0x003567b4, 0x003a63b2, 0x005176c2, 0x00567bbf, 0x002c4f8f, 0x0020417d,
- 0x003f5b93, 0x001f3f77, 0x004f71aa, 0x007094d3, 0x006c91d1, 0x005885c8, 0x005889c2, 0x00376991, 0x004e82a8, 0x004e7db6, 0x003965aa, 0x005b85cd, 0x006191bb, 0x005f8eb8, 0x006c99ce, 0x007098e4,
- 0x005c90c1, 0x00629ad9, 0x002d65a8, 0x002e68a3, 0x0078acbc, 0x00b9e4ee, 0x00aed1e7, 0x006283b2, 0x003460a9, 0x002b65a4, 0x001c548a, 0x004776a5, 0x00a7c4d0, 0x00b2bdd4, 0x00797a97, 0x00231f3f,
- 0x00111917, 0x0013212c, 0x00223354, 0x0033467e, 0x0025365f, 0x00092a5a, 0x001c3f76, 0x00274679, 0x001f3d73, 0x0020457c, 0x0026508b, 0x00104180, 0x00234f88, 0x006689b7, 0x005c779b, 0x004b5c77,
- 0x00273359, 0x000e204d, 0x002b366b, 0x004e4a86, 0x00538691, 0x00626867, 0x003f3024, 0x00433723, 0x005c394d, 0x00262c4a, 0x00152952, 0x000f1c4d, 0x00302c3c, 0x0054423a, 0x00664b34, 0x006a4627,
- 0x005c3422, 0x0062412d, 0x00623c2b, 0x006b4a35, 0x00815637, 0x00725040, 0x0065574e, 0x0053675e, 0x003b7087, 0x003a6695, 0x003c5489, 0x00535070, 0x00725e49, 0x00574f3e, 0x004c515b, 0x00435587,
- 0x006a4f48, 0x00896c47, 0x00916d35, 0x00996a2b, 0x009d6424, 0x009d6628, 0x00926032, 0x00603821, 0x00c2b5c4, 0x00fafcfd, 0x00faf9ff, 0x00fefdfd, 0x00fefcff, 0x00fbf9fb, 0x00bdbab9, 0x001d1516,
- 0x00110907, 0x0016110c, 0x0013100d, 0x000b0b05, 0x000a0b04, 0x003b3d38, 0x00d6d8d7, 0x00fafcfb, 0x00fcffff, 0x00fafdfb, 0x00fafafa, 0x00f2f0ed, 0x00a1978f, 0x006c5f53, 0x006a594c, 0x00655444,
- 0x00614a31, 0x0059432b, 0x00533d29, 0x00513c2b, 0x004f3c2e, 0x004c3b2d, 0x004d3d2e, 0x00514331, 0x004f4730, 0x004e472d, 0x0050472e, 0x00514832, 0x00544633, 0x00524534, 0x005c4b3f, 0x00624d46,
- 0x00614e46, 0x005d4c43, 0x005c4b44, 0x00584942, 0x0051453f, 0x004e4437, 0x004c4131, 0x00483f2a, 0x00474028, 0x0058543f, 0x007b7c6d, 0x00888e85, 0x006e7d88, 0x0065798f, 0x00667d9e, 0x005c769e,
- 0x004e7abd, 0x00507dc5, 0x004d7bc9, 0x003d6dc3, 0x002757b4, 0x002354af, 0x002d5cb5, 0x002e5cae, 0x00234b95, 0x00244f93, 0x00436aa2, 0x004e6c9e, 0x0033518b, 0x002a498e, 0x003757a4, 0x003354a9,
- 0x003152b2, 0x003257b2, 0x00375eb4, 0x003963b5, 0x00305ca7, 0x003155a1, 0x002f529c, 0x002c5398, 0x00255093, 0x00204c87, 0x00244c81, 0x003a5c87, 0x00556782, 0x00565d6f, 0x00494953, 0x004f474a,
- 0x004c4450, 0x0047424e, 0x0042414c, 0x00403e4a, 0x003d404e, 0x003f4051, 0x003f4456, 0x0043495e, 0x004a5369, 0x00535d71, 0x005f6577, 0x006b6a73, 0x006f6b76, 0x006e666d, 0x006e6168, 0x0069585b,
- 0x00664c4f, 0x0060413f, 0x005b3833, 0x005d362f, 0x00603530, 0x005a3631, 0x005a3935, 0x005a3b33, 0x0059352e, 0x0058362c, 0x005b3a2e, 0x005e3d2e, 0x00654432, 0x006c4c39, 0x0072533f, 0x00735640,
- 0x0071552f, 0x006a522d, 0x0064502e, 0x0061512f, 0x005c4f2c, 0x00554b27, 0x00534a26, 0x00544c28, 0x005a5127, 0x005d5428, 0x00625328, 0x00645425, 0x0068562c, 0x00675832, 0x00665a3b, 0x00645e44,
- 0x005f6259, 0x005b6567, 0x005c6f7b, 0x005a7187, 0x00577390, 0x00517291, 0x00496b87, 0x0046647b, 0x00445663, 0x0048545c, 0x009b9ea3, 0x00f1f0ef, 0x00fffefd, 0x00fefefe, 0x00faf9f9, 0x00fcfefe,
- 0x009fa3a2, 0x001e1f1f, 0x00010203, 0x00060304, 0x00080601, 0x00130a02, 0x00170e02, 0x001a0d00, 0x001a0e02, 0x00302110, 0x008e714a, 0x00d29a48, 0x00cea057, 0x00b6905b, 0x0061461d, 0x00250e02,
- 0x000c0302, 0x00060002, 0x00060006, 0x000f0611, 0x001c121f, 0x0006060b, 0x000c0e0a, 0x001c160c, 0x003c2009, 0x004e3013, 0x0057391e, 0x003c210e, 0x00271002, 0x003a200c, 0x0050321a, 0x00523216,
- 0x0058461f, 0x00664b1f, 0x00785a2b, 0x007d5827, 0x00674a20, 0x0050391d, 0x00291c08, 0x000d0a06, 0x00020406, 0x00020504, 0x000a0909, 0x000c020a, 0x00170d12, 0x00241d22, 0x002e2932, 0x0035303f,
- 0x0035314b, 0x0029283f, 0x00090c1f, 0x0000050c, 0x00000803, 0x00050803, 0x00030304, 0x00040404, 0x00010101, 0x00020202, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00fafbfa, 0x009b9e9a, 0x00000401, 0x00030605, 0x000b0b0d, 0x000f0e13, 0x00101116, 0x000f1216, 0x0015161c, 0x0016181d, 0x00181a1e, 0x00181a1e, 0x00191a1f, 0x001a1b20, 0x001b1d21, 0x001a1d20,
- 0x001a1c21, 0x00191b20, 0x00181c21, 0x00191b20, 0x00191b1f, 0x00161b1d, 0x00131b1d, 0x00121c1d, 0x00131a1b, 0x00262c2c, 0x0049494b, 0x002f2d2e, 0x00292020, 0x00322828, 0x002b1d1e, 0x002a1d1d,
- 0x0058424d, 0x006a6173, 0x00646a8a, 0x00435b88, 0x002d5ca4, 0x00265fb1, 0x002563bd, 0x002665c2, 0x002c68c0, 0x003067bc, 0x003368bd, 0x002a63b9, 0x002762b8, 0x002b64bb, 0x002e67bc, 0x00336dc0,
- 0x00356ec4, 0x00356fc5, 0x003972c6, 0x003a73ca, 0x003973c8, 0x003a6fcb, 0x003a6dc5, 0x00366dc0, 0x00336fb8, 0x003170ba, 0x003170c1, 0x002c6dc3, 0x002d68c6, 0x002965bc, 0x00245fb2, 0x002360ac,
- 0x003d54bf, 0x003c5abc, 0x00395db6, 0x003360b1, 0x003361b2, 0x00305da7, 0x004970b2, 0x004e6ea3, 0x001f2f41, 0x00010a0d, 0x00050c0a, 0x00070706, 0x00060808, 0x00070808, 0x000a0b0c, 0x000b0b0a,
- 0x000d0d0d, 0x000c0c0c, 0x000c0c0c, 0x000c0c0c, 0x000b0b0b, 0x000a0a0a, 0x00090909, 0x00080808, 0x00070607, 0x00060506, 0x00040404, 0x00060606, 0x00000000, 0x000c0c0c, 0x007d7e7d, 0x00ececeb,
- 0x00bab8aa, 0x003a3023, 0x003f3424, 0x004a372a, 0x00493228, 0x00422a20, 0x00361f16, 0x002e190f, 0x00332519, 0x00403428, 0x00433c35, 0x005a5455, 0x00a4988b, 0x00b9a086, 0x00b5936d, 0x00bd9265,
- 0x00b48355, 0x00c39973, 0x00d9bc9a, 0x00efd9c2, 0x00fbf3ea, 0x00faf2e4, 0x00f0e8d5, 0x00efe3d3, 0x00f3e6d6, 0x00f0e4d2, 0x00e4ddc8, 0x00e1ddcb, 0x00cbcdcf, 0x008e92ae, 0x00404878, 0x00333b81,
- 0x00223f82, 0x001e3a77, 0x00162f66, 0x00122757, 0x000f1e42, 0x00151a39, 0x00221c38, 0x00281c33, 0x004c384e, 0x008f778e, 0x00bfa9c2, 0x00bfb0cb, 0x00b2b8c8, 0x00b1c3c9, 0x00bbd2d2, 0x00ccdbdc,
- 0x00e0d6de, 0x00ead5e3, 0x00ecd4e4, 0x00e0cee0, 0x00c8c2d2, 0x00bbbbcb, 0x00727783, 0x00565969, 0x00a0a2b7, 0x00cfd0e8, 0x00c6c6e0, 0x00d8d6f3, 0x00cdcae6, 0x00c9c6de, 0x00d8d5ec, 0x00c8c6db,
- 0x00a94e42, 0x005e1e10, 0x003f1b08, 0x001e1504, 0x000c150c, 0x0005080c, 0x0001010e, 0x00030112, 0x0004001a, 0x00030520, 0x0004091d, 0x000f101c, 0x004e535b, 0x00858b92, 0x006a7277, 0x00363e42,
- 0x00373e3e, 0x003b4142, 0x003d4143, 0x003c3d3e, 0x00433d41, 0x0043424b, 0x0043424d, 0x00474149, 0x00514044, 0x00543e3e, 0x00573d3f, 0x00573f40, 0x004f3f44, 0x004a4048, 0x00443e49, 0x003d3c49,
- 0x00393d4d, 0x00393c47, 0x00383940, 0x00363233, 0x00362926, 0x0034221b, 0x00301e14, 0x002e1c10, 0x002b1a0e, 0x002c1b11, 0x002e1a13, 0x002e1b14, 0x002c1c16, 0x00281c14, 0x00251c15, 0x00231d18,
- 0x001d1b19, 0x001e1c1a, 0x001f1e1c, 0x001e1f1d, 0x001f2020, 0x00747474, 0x00fffefd, 0x00fefefd, 0x00fcfdfc, 0x00fdfdfc, 0x00fcfdfc, 0x00cfd0cf, 0x007c7b7c, 0x00676767, 0x003a3a3b, 0x003c3c3d,
- 0x005e605d, 0x007d7e7c, 0x006d6e6d, 0x004b4b4a, 0x00454543, 0x004a4948, 0x00403f3f, 0x003b3a3a, 0x0040403f, 0x00434443, 0x00414241, 0x003f403f, 0x00484848, 0x00595958, 0x00676667, 0x00676668,
- 0x00626565, 0x00666666, 0x00666665, 0x00626362, 0x005f6060, 0x005b595a, 0x00645f5e, 0x006e6865, 0x00918981, 0x00a8a096, 0x00a69c90, 0x008f857a, 0x00746b63, 0x005e5754, 0x0045413f, 0x0042403f,
- 0x003e3d35, 0x00414039, 0x0046433d, 0x0045413a, 0x004a423d, 0x004f4541, 0x00554a46, 0x00554a45, 0x00554843, 0x005b4d49, 0x00635753, 0x0070635f, 0x00716860, 0x00746a5d, 0x00898270, 0x008c8573,
- 0x007f7c6b, 0x007e7c6a, 0x00858573, 0x0079786a, 0x00555449, 0x004f5555, 0x00788283, 0x00939790, 0x0093917f, 0x0093938a, 0x00959d9e, 0x008697ab, 0x006682a6, 0x005e7da3, 0x00577698, 0x0053718d,
- 0x0062788c, 0x006a7078, 0x00716862, 0x009d856f, 0x00a2876c, 0x009e8d79, 0x00c1b9af, 0x00b6b8b9, 0x00848283, 0x007c7473, 0x008a8481, 0x0084837a, 0x007b7d75, 0x0080807a, 0x00797a78, 0x00787878,
- 0x007a7b78, 0x007d7b76, 0x00757267, 0x00756d61, 0x00766e5b, 0x0077716d, 0x009b9b9b, 0x00b5b5b5, 0x00bfbebe, 0x00c0c0bf, 0x00b3b3b2, 0x00b1b1b1, 0x00a8a7a8, 0x008c8c8c, 0x00777778, 0x00737474,
- 0x00575656, 0x004e4e4e, 0x00464646, 0x00434343, 0x00403f40, 0x00424242, 0x00484848, 0x003f4040, 0x001e1d1d, 0x000f0f11, 0x000b0b0b, 0x00060505, 0x00090704, 0x0012120f, 0x00292a22, 0x00444439,
- 0x00686658, 0x006e6d5d, 0x005d5c4a, 0x00545243, 0x005c5948, 0x00605b4b, 0x006d6855, 0x0073705d, 0x00737165, 0x00635f57, 0x009d9b93, 0x00ebeae6, 0x00fffcfb, 0x00fcfdfb, 0x00faf9fc, 0x00fefeff,
- 0x00d8dad9, 0x008e918e, 0x00868986, 0x00a0a5a3, 0x006d7173, 0x0032373c, 0x002c303a, 0x002c2f3d, 0x00272b43, 0x00262b44, 0x00242c4b, 0x00212d55, 0x00243360, 0x00253668, 0x0022376c, 0x00203771,
- 0x001f3a7c, 0x00223b81, 0x00203a7f, 0x0020387e, 0x001c377d, 0x00163681, 0x000d2f6e, 0x00061f4f, 0x002e3145, 0x00857978, 0x00d2bca5, 0x00d1b48e, 0x00d0ad7e, 0x00cfac80, 0x00caa87c, 0x00c2a076,
- 0x00c39e71, 0x00c39e70, 0x00c49f71, 0x00c39f72, 0x00c59f75, 0x00c69f77, 0x00cba17c, 0x00d0a480, 0x00d2a982, 0x00d4ac87, 0x00d6b289, 0x00ccbb8a, 0x00e4ac97, 0x00eda78f, 0x00f4ac93, 0x00edb08c,
- 0x00a39497, 0x005866a0, 0x001d42a5, 0x00194ccf, 0x001455cf, 0x001d5ccd, 0x001b55bd, 0x00225cb5, 0x003d6eb6, 0x003f6db2, 0x00416bb4, 0x00577dcd, 0x00486cc4, 0x003158ae, 0x00224b9e, 0x00113c8c,
- 0x000c2e8d, 0x00062686, 0x00001d7e, 0x00021a7d, 0x00071e7e, 0x00081b78, 0x0005176e, 0x00041564, 0x00031354, 0x00011151, 0x00050e45, 0x00080735, 0x0003093f, 0x00020f40, 0x00081134, 0x002d323b,
- 0x00976e2c, 0x00bf7514, 0x00d17d04, 0x00dc8709, 0x00b97f1c, 0x008e5311, 0x008b4c0b, 0x00bb7909, 0x00dc8b05, 0x00e28f16, 0x00dc8b29, 0x00d0893d, 0x00c98c28, 0x00d7991f, 0x00e6a11b, 0x00e3980d,
- 0x00dd8806, 0x00c78115, 0x00946212, 0x00a38656, 0x00f2eae2, 0x00fefdfa, 0x00fdfdff, 0x00fdfdff, 0x00fffefc, 0x00fefefc, 0x00eff1f3, 0x0083808d, 0x002a314e, 0x001a2149, 0x00252b51, 0x00131435,
- 0x0010060d, 0x00120605, 0x00140b01, 0x00130b04, 0x000c0b0e, 0x0004070b, 0x0004090a, 0x000e0508, 0x00201d46, 0x00223479, 0x00153680, 0x00456ab2, 0x008a90a1, 0x0088807d, 0x0083776b, 0x007c7468,
- 0x0052392b, 0x0033232d, 0x001f2033, 0x0041535b, 0x007d9cab, 0x008ca7d9, 0x00304b8e, 0x00254383, 0x00547fa6, 0x004473b0, 0x003b6bb6, 0x003d66bb, 0x00527bcb, 0x00749dea, 0x00265296, 0x00234f8f,
- 0x005079b6, 0x00274f8d, 0x005580bb, 0x00658ecd, 0x005781c0, 0x004672b1, 0x003c6ea0, 0x003a6e8e, 0x00396b8b, 0x002d5a8f, 0x00325a9d, 0x0030579c, 0x002f5c86, 0x0037648f, 0x004570a7, 0x00668dda,
- 0x00669cca, 0x003d70b1, 0x002c5fa3, 0x004170ab, 0x0096c5d2, 0x00b9e2ea, 0x008bb1c9, 0x003e6498, 0x003261af, 0x001f579d, 0x00246096, 0x004a82b4, 0x00a4c0cc, 0x00b4b3cc, 0x0090829f, 0x003b2646,
- 0x00141d13, 0x0009171d, 0x00132e4a, 0x00233a79, 0x00243566, 0x00061f4d, 0x00041d4a, 0x00051c42, 0x0015274e, 0x001c315c, 0x00153260, 0x00113569, 0x00072a60, 0x00355584, 0x0057759c, 0x00455d7e,
- 0x001f2149, 0x001f305e, 0x00394c81, 0x00515393, 0x00568a9b, 0x00676a6f, 0x004b3b32, 0x00483e2a, 0x005a3a44, 0x002f2941, 0x00161f41, 0x00182049, 0x004a424d, 0x006a574c, 0x00644832, 0x005f3c20,
- 0x00583623, 0x00503225, 0x00321406, 0x00523424, 0x00855e44, 0x0072432e, 0x007c5b40, 0x00595738, 0x00345255, 0x003e4d6e, 0x00303156, 0x0066485e, 0x00845f35, 0x00675132, 0x00423c3c, 0x002b3766,
- 0x00584e62, 0x007f6c55, 0x008e703a, 0x009d6e30, 0x00a36526, 0x00a2681f, 0x0098672a, 0x00613b1e, 0x00d6c6db, 0x00fcfcfc, 0x00fbfcfc, 0x00fafdfc, 0x00fcfefd, 0x00fefcff, 0x00b4afae, 0x001a0f0f,
- 0x00221714, 0x00261d19, 0x0028211a, 0x00211c17, 0x00171209, 0x00504d4b, 0x00e7e8e7, 0x00f8f9fa, 0x00fdfefe, 0x00fefefe, 0x00fcffff, 0x00ecebe9, 0x0097918a, 0x0076695e, 0x00716255, 0x006d5a4b,
- 0x00604b37, 0x0056422f, 0x004e3b29, 0x004d3b2b, 0x004e3e30, 0x004f4030, 0x00524631, 0x00584d35, 0x00595236, 0x00585133, 0x00554e2f, 0x00554931, 0x005a4b36, 0x00604d3c, 0x00665142, 0x006d5149,
- 0x00654f46, 0x00644f47, 0x00624c47, 0x005f4c45, 0x005c4c44, 0x00574939, 0x00594b34, 0x0055462a, 0x00736648, 0x00a2967c, 0x00b3aa8f, 0x008a8370, 0x0067665f, 0x0077787c, 0x006f747d, 0x00515868,
- 0x00426690, 0x004e6fa4, 0x005274b0, 0x004d72b9, 0x003d61b6, 0x00294ea3, 0x003357aa, 0x003a5ba9, 0x00305290, 0x005477af, 0x009ab7e2, 0x00a9bccf, 0x0062789e, 0x00374c80, 0x00334b91, 0x00334ca1,
- 0x00304eaf, 0x003154b0, 0x00345cb0, 0x003660ad, 0x002e5c9e, 0x002e5397, 0x002c4d91, 0x00284d8e, 0x00224e8d, 0x001f4b83, 0x0021487a, 0x002e4f78, 0x004a5b76, 0x00515769, 0x004d4b56, 0x005a4f56,
- 0x00574e58, 0x00564f59, 0x00524e58, 0x004f4c58, 0x004a4c5a, 0x00484a5c, 0x00484e61, 0x00495166, 0x004e5a6e, 0x00556076, 0x005a6575, 0x00646a76, 0x00686a75, 0x00686672, 0x00666168, 0x0063595c,
- 0x00604e50, 0x00614748, 0x005b423d, 0x005f3f38, 0x005a3a34, 0x00583732, 0x0052362e, 0x0051342b, 0x004c2e27, 0x004e3229, 0x0052372c, 0x00563d2f, 0x005e4537, 0x00654d3e, 0x006b5544, 0x006c5847,
- 0x006f5a37, 0x006e5b37, 0x00685734, 0x00645531, 0x00635531, 0x005f522d, 0x005b5029, 0x005c5229, 0x005f5628, 0x0062572a, 0x0065592a, 0x006b582a, 0x006a5c30, 0x006e5e3e, 0x006e644a, 0x006d6856,
- 0x0068706b, 0x0068767b, 0x00667c8b, 0x00657e97, 0x006181a0, 0x005f82a3, 0x00577b9b, 0x00577892, 0x00536878, 0x005b6671, 0x00adb3b9, 0x00f5f7f6, 0x00fdfbfb, 0x00fcfcfb, 0x00fafbfa, 0x00fdfdfe,
- 0x008f9492, 0x00131513, 0x00020202, 0x00090403, 0x00120d05, 0x001b1208, 0x001f150a, 0x001b0e02, 0x00140801, 0x001e0f06, 0x005b4423, 0x00a17534, 0x00aa874b, 0x008d6d43, 0x00402909, 0x00170200,
- 0x000a0200, 0x00070104, 0x00050007, 0x0018111c, 0x002d2431, 0x00171519, 0x00090703, 0x00180900, 0x00513117, 0x00815e3e, 0x00967450, 0x00745433, 0x004d2f11, 0x0064411f, 0x00855d38, 0x0093683e,
- 0x008f6f40, 0x009c7643, 0x00ac824d, 0x00b18149, 0x00987041, 0x007b5d38, 0x003d2b0e, 0x00150d03, 0x00090403, 0x00120a03, 0x00201304, 0x00301008, 0x003e2914, 0x00493825, 0x00322920, 0x00332d33,
- 0x00231f46, 0x001b1943, 0x00030725, 0x00010512, 0x00000a00, 0x00060705, 0x00040304, 0x00040404, 0x00010101, 0x00020202, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00f9fbf9, 0x009b9f9b, 0x00000501, 0x00040805, 0x000e0e10, 0x00121116, 0x00131318, 0x0013161a, 0x0017181e, 0x00181a1f, 0x001a1c20, 0x001a1c20, 0x001b1c21, 0x001c1d22, 0x001c1e22, 0x001c1e21,
- 0x001d2022, 0x001d2024, 0x001c2023, 0x001e2024, 0x001e1f23, 0x001b1e1f, 0x00191f1d, 0x00171e1e, 0x00191d1d, 0x00272b2b, 0x003b3f40, 0x002f2e30, 0x001e1c1e, 0x00292326, 0x00262023, 0x00261f23,
- 0x002d1b23, 0x004b3e4c, 0x005d5f75, 0x00545f83, 0x00315b9f, 0x00235fb4, 0x001c63c4, 0x001864ca, 0x002763c6, 0x003061bd, 0x003061b8, 0x00235bb3, 0x00225bb3, 0x00265eb5, 0x00245eb4, 0x002a64ba,
- 0x003269c1, 0x00346bc3, 0x00376dc4, 0x003871c8, 0x003770c7, 0x003a6fc7, 0x003a6dc1, 0x00366cbc, 0x00306db5, 0x002d6bb8, 0x002b6bbc, 0x002969c2, 0x002c64c4, 0x00275fb7, 0x002359aa, 0x00255ba5,
- 0x003a58b8, 0x00395ab6, 0x00345fb5, 0x002d5fb1, 0x00265db1, 0x002b5daf, 0x003463ab, 0x005278b5, 0x0034516a, 0x00061721, 0x00030b0d, 0x00090907, 0x000a090a, 0x000b0a0b, 0x000b0b0b, 0x000c0b0a,
- 0x000e0e0e, 0x000d0d0d, 0x000c0c0c, 0x000c0c0c, 0x000a0a0a, 0x000b0b0b, 0x000a0a0a, 0x00090909, 0x00080707, 0x00080707, 0x00050505, 0x00070707, 0x00000000, 0x00101010, 0x00858585, 0x00eeeeee,
- 0x00b9b6a9, 0x00343024, 0x00372e25, 0x003d322a, 0x00392923, 0x002c2019, 0x0022160d, 0x00281d14, 0x004e3f34, 0x00695e4f, 0x00807667, 0x00908b7e, 0x00baa68d, 0x00d5b693, 0x00cfa578, 0x00b37f4a,
- 0x00c38e5d, 0x00daaf85, 0x00e6c5a3, 0x00f1dcc7, 0x00f6eae3, 0x00f1ead6, 0x00eae5cb, 0x00e4dcc7, 0x00e1d5c2, 0x00dbd2b8, 0x00d2cbb0, 0x00c9c5a6, 0x00c0c2b3, 0x00a1a4a9, 0x004c4f69, 0x001f214c,
- 0x00102a65, 0x000b2659, 0x000d2753, 0x0011284a, 0x001b2d41, 0x00323b48, 0x0041404b, 0x00483f49, 0x00877181, 0x00c2a7bb, 0x00cfb6cb, 0x00cec2d4, 0x00cdd1db, 0x00cfdfe4, 0x00d2e7e7, 0x00dceded,
- 0x00e7e7f2, 0x00ebe3f0, 0x00efdcf0, 0x00eedef2, 0x00e3d5ec, 0x00cfcfdc, 0x00747782, 0x001e212d, 0x0075768c, 0x00d5d6ee, 0x00dcddf4, 0x00dcdcf5, 0x00dadaf1, 0x00d0d0e5, 0x00c7c6dd, 0x00afaec4,
- 0x00894b44, 0x00491f0e, 0x003f2816, 0x002c2812, 0x00162111, 0x00050a03, 0x00020307, 0x00000009, 0x00030115, 0x00050921, 0x000c0f24, 0x00232228, 0x00757479, 0x00b0b4b5, 0x007e8383, 0x00393f39,
- 0x00343837, 0x003b3f3c, 0x003f3f3d, 0x00403c3c, 0x004a3f43, 0x004b4249, 0x00494047, 0x004d3e44, 0x00563d41, 0x005b3e3e, 0x005d3e3e, 0x005b3d3b, 0x00523c3e, 0x004d3d41, 0x00463b41, 0x003e3941,
- 0x00333744, 0x0032343d, 0x00313035, 0x00302b2c, 0x00302421, 0x002b1c17, 0x0027180f, 0x0026160a, 0x0026130d, 0x0024150d, 0x00271811, 0x002b1b15, 0x002c1d16, 0x002a1c16, 0x00281c16, 0x00272018,
- 0x00241e1a, 0x00231f1a, 0x0024201e, 0x00232120, 0x00242220, 0x00757574, 0x00fefffe, 0x00fdfefd, 0x00fcfcfd, 0x00fffeff, 0x00fefefe, 0x00cecece, 0x00767676, 0x00848483, 0x00acacab, 0x00cacac9,
- 0x00e1e0e1, 0x00e5e4e4, 0x00e0dfde, 0x00d9d9d8, 0x00dedfde, 0x00d9dad9, 0x00dbdcda, 0x00dadcd9, 0x00d8d8d7, 0x00d8d8d6, 0x00dcdcdb, 0x00d8d8d7, 0x00d8d8d8, 0x00dcdddd, 0x00dfe0e0, 0x00dbdddb,
- 0x00dedfdf, 0x00e1e0e1, 0x00e2e0e1, 0x00dfdfdf, 0x00dfdedf, 0x00e1dfdf, 0x00e2dede, 0x00e2e0e0, 0x00f1e8e4, 0x00f0e9e2, 0x00f0e8e3, 0x00e9e2da, 0x00e8e1dd, 0x00e6e0da, 0x00dcd7d6, 0x00dbd9d7,
- 0x00dedcd6, 0x00dad9d2, 0x00d9d9d3, 0x00d8d6d3, 0x00dad6d4, 0x00dbd6d3, 0x00d9d4d0, 0x00d5d1ce, 0x00ddd3d4, 0x00e0d8d8, 0x00e4dbdc, 0x00e6dfde, 0x00e9e0dc, 0x00e0dcd5, 0x00e3ded4, 0x00e6e2d3,
- 0x00e3e0d4, 0x00e9e8dd, 0x00ebebe0, 0x00e4e4db, 0x00dadad3, 0x00d6dddb, 0x00e1eae8, 0x00e4e6e1, 0x00eae4da, 0x00ebe9e2, 0x00e3e6ec, 0x00dee9f3, 0x00d4e9fa, 0x00d6eaf8, 0x00d3e4f6, 0x00d6e5f5,
- 0x00d7e7f5, 0x00dee2e8, 0x00e1dcd8, 0x00f5e8d8, 0x00f6e6d2, 0x00efe5d5, 0x00f1eee4, 0x00edeeeb, 0x00e4e1e2, 0x00e5e1df, 0x00e9e2e0, 0x00e6e4df, 0x00e9e7e5, 0x00e2e3e1, 0x00e5e6e7, 0x00e3e6e6,
- 0x00e8e6eb, 0x00e4e5e2, 0x00e3e1de, 0x00e5e2da, 0x00e5ded3, 0x00e3e1dd, 0x00ebeaeb, 0x00eef0f1, 0x00ebecec, 0x00ececec, 0x00eeedee, 0x00e8e8e8, 0x00edeeee, 0x00e7e7e7, 0x00ebebea, 0x00e5e4e3,
- 0x00e2e2e2, 0x00dcdcdd, 0x00d7d8d8, 0x00d8d8d8, 0x00d9d9d9, 0x00d9d9d9, 0x00dbdada, 0x00b1b0b0, 0x00403f41, 0x000a0b08, 0x00040304, 0x00050201, 0x00050201, 0x00050300, 0x0015120a, 0x002e2b1a,
- 0x0054513b, 0x00625f45, 0x00555138, 0x0047432a, 0x004b452c, 0x00676040, 0x007f795a, 0x007f7c5f, 0x006c644f, 0x00544e3d, 0x00979283, 0x00eeebe1, 0x00fdfbf7, 0x00fcfcfc, 0x00fcf9fd, 0x00fdfcfd,
- 0x00d9d9db, 0x008e8f8e, 0x00868887, 0x00a0a4a2, 0x00696d6e, 0x002b3035, 0x00242937, 0x0025293d, 0x00232442, 0x00232846, 0x00232b4e, 0x001e2c58, 0x00203162, 0x0020346b, 0x001d3470, 0x00183373,
- 0x001b377f, 0x001b3780, 0x001b3381, 0x001b3481, 0x00152e7e, 0x00082973, 0x000e2c6e, 0x00051b4f, 0x003f4055, 0x00958a87, 0x00baa48e, 0x00c0a379, 0x00caa576, 0x00c6a170, 0x00c09c6c, 0x00c09c6d,
- 0x00c39d70, 0x00c49f71, 0x00c6a074, 0x00c59f73, 0x00c69e73, 0x00c79e74, 0x00cea37c, 0x00d3a882, 0x00daad88, 0x00daaf89, 0x00d9b28a, 0x00d2b686, 0x00dea886, 0x00efad94, 0x00e6ab9d, 0x00b99393,
- 0x004e5a8c, 0x00184196, 0x001950c2, 0x001355d7, 0x001b51d1, 0x001e56cc, 0x002059c3, 0x001f58b5, 0x002355a6, 0x003362b0, 0x004b73c5, 0x004468c0, 0x002a4dad, 0x001f44a1, 0x000a318b, 0x00042e84,
- 0x00092486, 0x00052182, 0x00041d80, 0x00051f7e, 0x00071c76, 0x0004186c, 0x00031463, 0x00001159, 0x00010f4e, 0x00000c44, 0x0004093e, 0x000a052a, 0x00030e44, 0x00010c3b, 0x000f1532, 0x00453f39,
- 0x00b2731f, 0x00cb790b, 0x00d67b02, 0x00c57500, 0x00a46b10, 0x00945412, 0x00ac671b, 0x00c38000, 0x00d58700, 0x00e0921b, 0x00d78829, 0x00cb833e, 0x00c3851b, 0x00ce8f0c, 0x00e8a615, 0x00e09704,
- 0x00d78208, 0x00bd7912, 0x00895910, 0x00a28659, 0x00f6efe8, 0x00fffcfa, 0x00fffefe, 0x00fffffe, 0x00ffffff, 0x00fcfdfb, 0x00ede9f3, 0x009890a6, 0x003e3a66, 0x00333465, 0x00393667, 0x00130e35,
- 0x0012000d, 0x001a0409, 0x00190403, 0x00140305, 0x000e0211, 0x00030706, 0x00050808, 0x000b0508, 0x002d2b5a, 0x002b458a, 0x001c408b, 0x00476fad, 0x0089888a, 0x0091836b, 0x008a7758, 0x00786a49,
- 0x006c4d39, 0x00534347, 0x00363748, 0x00788d95, 0x008db3c3, 0x007190c6, 0x0017357d, 0x00214287, 0x005986af, 0x003a67a3, 0x004370bc, 0x00406cbd, 0x002f5ead, 0x004371bd, 0x0026559c, 0x00295b9b,
- 0x005685c6, 0x005284c0, 0x004e7db9, 0x004d7cb5, 0x004e7bb8, 0x004170a9, 0x006291c0, 0x0090c4dd, 0x009bc5e2, 0x00678dbf, 0x00325695, 0x00567abb, 0x006891ba, 0x005a85b1, 0x00315d96, 0x003059a6,
- 0x0031649d, 0x0028599c, 0x00355ea3, 0x004d76ad, 0x00aed5e2, 0x00afd6e4, 0x00678dab, 0x00305594, 0x002957aa, 0x00245ca3, 0x00235d9d, 0x003c7cb5, 0x00819ab0, 0x009c96b7, 0x008d749b, 0x006d5076,
- 0x00545d54, 0x0021383d, 0x00123152, 0x00123073, 0x00283575, 0x000c2048, 0x00041335, 0x00020e28, 0x000f132e, 0x00121e38, 0x00122245, 0x0015335a, 0x000d2c5e, 0x00183b6a, 0x00294a76, 0x0054739a,
- 0x0028234c, 0x00324774, 0x005c71a9, 0x005c67a8, 0x003e6a82, 0x0055535d, 0x005c4942, 0x0049462e, 0x00644348, 0x00493c4b, 0x001a1733, 0x001c1f40, 0x00362c31, 0x00463123, 0x00472c13, 0x0048270b,
- 0x005f3f36, 0x00593d37, 0x00341714, 0x003e2418, 0x0076553e, 0x00865133, 0x008f5d36, 0x007e683e, 0x005d665c, 0x00494655, 0x00483046, 0x00825358, 0x0089531e, 0x006b4722, 0x00523f38, 0x00363a62,
- 0x00504b7e, 0x00766a62, 0x00896d43, 0x009c6c32, 0x00a7662b, 0x00a16919, 0x00966a23, 0x006e4c29, 0x00eadaf0, 0x00faf9f5, 0x00fefefa, 0x00fafafa, 0x00fafafc, 0x00fdfdfb, 0x00b1aaa8, 0x00201612,
- 0x00352425, 0x00362823, 0x003d312b, 0x003a2f27, 0x0031261d, 0x006d6863, 0x00f4f4f4, 0x00f8f9f7, 0x00fffeff, 0x00f9f8f8, 0x00fdfbfc, 0x00e4e3e2, 0x00938b87, 0x00797067, 0x0074665b, 0x006c5c4d,
- 0x00614f40, 0x00554334, 0x004b392b, 0x004b3b2b, 0x004f4030, 0x00524532, 0x00574d37, 0x005d553c, 0x00665b3f, 0x00615c3b, 0x00605636, 0x005d4e35, 0x00634e39, 0x0066523f, 0x006e5544, 0x00715648,
- 0x006c5048, 0x00694f46, 0x0069514b, 0x0066514a, 0x0066544c, 0x00625240, 0x0067573e, 0x00635236, 0x0090795b, 0x00bfa98a, 0x00b9a487, 0x00836e52, 0x007b6b5b, 0x00a4968b, 0x006b5f5a, 0x002b211f,
- 0x001d2f42, 0x00273857, 0x0034496f, 0x00435a90, 0x00495fa7, 0x003c549f, 0x002b458e, 0x002f498b, 0x006c86bb, 0x00a7c3ec, 0x00cfe2ec, 0x00c1ccca, 0x0097a1b7, 0x005a6a91, 0x00394b87, 0x00324997,
- 0x00314ba8, 0x002c4ca4, 0x002c52a1, 0x002d559b, 0x002c5791, 0x002c4f8f, 0x002a4c8d, 0x00234b86, 0x00214a85, 0x001f487d, 0x001f4574, 0x0024446b, 0x003d4d67, 0x00484e61, 0x0051505c, 0x0061575e,
- 0x00685b64, 0x00655a64, 0x00635764, 0x005d5663, 0x00585464, 0x00515365, 0x00515467, 0x0052596d, 0x00545e78, 0x00546176, 0x00576579, 0x005d6776, 0x00636879, 0x00636571, 0x0062616c, 0x00605a60,
- 0x005e4f52, 0x005d4b4a, 0x005f4a46, 0x00604640, 0x005c413a, 0x00583d34, 0x0053372d, 0x004c3126, 0x00472e26, 0x00483128, 0x004e382f, 0x00514035, 0x0058493d, 0x005e5045, 0x0065574d, 0x006a5b52,
- 0x006d6043, 0x006a5c3f, 0x0068593b, 0x00665838, 0x00655835, 0x00635630, 0x0062562c, 0x0062572a, 0x0064582a, 0x00665c2c, 0x006e5e31, 0x00735f32, 0x0072613c, 0x00726546, 0x00706954, 0x006a6e5f,
- 0x006c767a, 0x006c7b89, 0x006b839a, 0x006a86a5, 0x006286aa, 0x006289ae, 0x005b82a4, 0x005d7d9b, 0x005c6f85, 0x00697684, 0x00c3c8cf, 0x00f8f7f7, 0x00fbfcfb, 0x00fbfcfb, 0x00fdfcfc, 0x00fafdfb,
- 0x00808285, 0x000d0f0f, 0x00050503, 0x00080701, 0x001b150a, 0x0021180c, 0x00291c12, 0x001c0f04, 0x00100501, 0x000b0200, 0x00231103, 0x00462803, 0x00543a13, 0x00412b0f, 0x001c0b01, 0x00120600,
- 0x00070303, 0x00030104, 0x00040202, 0x0016161c, 0x0036363d, 0x00272826, 0x00141007, 0x00362611, 0x009c7a54, 0x00c9a079, 0x00cea37a, 0x00ab8259, 0x008b643e, 0x00986d43, 0x00ac7c50, 0x00bb8654,
- 0x00b38555, 0x00b1834d, 0x00ba864d, 0x00b78147, 0x00a3733f, 0x008a693e, 0x00543916, 0x001e0f01, 0x00180600, 0x00291903, 0x003d2207, 0x004d2109, 0x007b5a33, 0x00826947, 0x0040311c, 0x00281f22,
- 0x00201b4a, 0x00191848, 0x0005072c, 0x0000010f, 0x00010b00, 0x00040702, 0x00010102, 0x00030301, 0x00010101, 0x00020202, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00f9fbfa, 0x009c9e9c, 0x00010402, 0x00040706, 0x000c0f0f, 0x00111416, 0x0014171a, 0x0016191c, 0x00181b1f, 0x001a1b20, 0x001c1d22, 0x001c1d22, 0x001b1d21, 0x001b1e21, 0x001d1e22, 0x001e1f23,
- 0x001e2026, 0x001c1f23, 0x001f2224, 0x001e2024, 0x00202226, 0x001e2020, 0x001f211f, 0x001d211f, 0x001f1f22, 0x00252728, 0x00313234, 0x002a2d2f, 0x001f1f23, 0x001f1f23, 0x00242327, 0x00212024,
- 0x0029181e, 0x0025171d, 0x003c3544, 0x0052536d, 0x003f609d, 0x00285eb4, 0x001c61c5, 0x001762d2, 0x002961cb, 0x003160c0, 0x003260b9, 0x002b61b9, 0x00275eb7, 0x00265cb5, 0x002058b0, 0x001e58af,
- 0x002a5fbb, 0x002e65bd, 0x003269c2, 0x00346dc4, 0x00366dc7, 0x003b6fc3, 0x003c6ebf, 0x00366dba, 0x002e6ab3, 0x002a67b5, 0x002866ba, 0x002663c0, 0x002b61bf, 0x002659ae, 0x002858a2, 0x00295898,
- 0x00305bac, 0x00315fb0, 0x003063b4, 0x002965b7, 0x002562ba, 0x002965ba, 0x002a5dac, 0x00436bb0, 0x00476388, 0x00172c3e, 0x0006080f, 0x00070605, 0x000b090a, 0x000a0a0b, 0x000c0d0d, 0x000c0d0c,
- 0x000f0f0f, 0x000e0e0e, 0x000d0d0d, 0x000d0d0d, 0x000b0b0b, 0x000b0b0b, 0x000a0a0a, 0x00080808, 0x00090909, 0x00060707, 0x00060606, 0x00040404, 0x00010101, 0x00121212, 0x008d8c8c, 0x00efefee,
- 0x00b8b8a9, 0x00313025, 0x0033322a, 0x0034312d, 0x00282822, 0x00211f18, 0x001a1911, 0x00363327, 0x00625644, 0x00776952, 0x009f9073, 0x00c2af91, 0x00e7cca4, 0x00f9d2a2, 0x00d6a56e, 0x00c38b4d,
- 0x00d7a567, 0x00e6b985, 0x00dfb893, 0x00eaccb4, 0x00f2e1d1, 0x00e7dec2, 0x00d8d5b2, 0x00ccc7a8, 0x00c2bb9e, 0x00bcb692, 0x00aea882, 0x00a09c72, 0x0091916e, 0x00878777, 0x005e5c5b, 0x00322d3c,
- 0x00071f48, 0x000a2446, 0x00112b47, 0x001a3447, 0x00455c60, 0x006c7c7c, 0x008a9191, 0x00989899, 0x00beafb8, 0x00dec8d6, 0x00e5d1e0, 0x00e2dae6, 0x00dddfe7, 0x00d8e4eb, 0x00d8e9ed, 0x00d8e9eb,
- 0x00dbe7ee, 0x00dee2ed, 0x00e5dcf0, 0x00e5daef, 0x00e1d2ec, 0x00dad6e6, 0x007c7c89, 0x0013131f, 0x004f5164, 0x00afb1c6, 0x00d1d3e8, 0x00d2d5ea, 0x00cacde1, 0x00bec2d4, 0x00a6a9bb, 0x0086899a,
- 0x005a3d39, 0x00352218, 0x00352e1e, 0x002e311e, 0x00172310, 0x00020b01, 0x00010705, 0x0000060b, 0x0004061e, 0x00040c28, 0x00090b25, 0x002b212c, 0x008b868f, 0x00b7b3b8, 0x007a797b, 0x00393b37,
- 0x00393734, 0x003c3836, 0x0040393a, 0x0041383c, 0x00473741, 0x00483c43, 0x00493d3f, 0x004c3a3b, 0x00553837, 0x005e3b36, 0x00603c37, 0x005c3933, 0x00523734, 0x004c3837, 0x00453638, 0x003f3438,
- 0x002d3036, 0x002c2d31, 0x002c2a2c, 0x002d2627, 0x002b201e, 0x00251814, 0x0021120c, 0x00201009, 0x001e0f09, 0x001f120a, 0x0022150e, 0x00281a14, 0x002b1c16, 0x002a1a15, 0x002a1b17, 0x002c1f1a,
- 0x002b221b, 0x002b231d, 0x002c2421, 0x002a2421, 0x00282522, 0x00777674, 0x00fefffe, 0x00fdfefd, 0x00fbfcfc, 0x00fefefe, 0x00fdfdfd, 0x00cdcdcd, 0x00767676, 0x008c8c8b, 0x00cdcccc, 0x00f0efef,
- 0x00fcfcfc, 0x00fefdfd, 0x00ffffff, 0x00fefefd, 0x00fcfdfd, 0x00fcfdfd, 0x00fbfcfc, 0x00fdfefd, 0x00fdfefc, 0x00fefefd, 0x00fefdfc, 0x00fdfdfc, 0x00fefdfe, 0x00fefefe, 0x00fdfefc, 0x00fcfdfb,
- 0x00ffffff, 0x00fefeff, 0x00ffffff, 0x00ffffff, 0x00fffffe, 0x00fefdfc, 0x00fcfcfa, 0x00fdfdfb, 0x00fefbfa, 0x00fffcfa, 0x00fffbf8, 0x00fdfaf6, 0x00fef9f6, 0x00fffbfa, 0x00fffcfc, 0x00fffdff,
- 0x00fbfff7, 0x00fbfff9, 0x00fdfffb, 0x00fbfcfa, 0x00fcfdfd, 0x00fbfcfb, 0x00fdfcfb, 0x00fffefe, 0x00fffcff, 0x00fffcff, 0x00fdfbfe, 0x00fefbfc, 0x00fffefd, 0x00fffefd, 0x00fefefb, 0x00fefdf7,
- 0x00fcfdf4, 0x00fcfcf6, 0x00fefef8, 0x00fdfcf8, 0x00fdfdfb, 0x00f8fdf9, 0x00f9fff8, 0x00fffdf9, 0x00fefaf4, 0x00fffaf5, 0x00fefdfa, 0x00fbfcfb, 0x00f9feff, 0x00f8fdfd, 0x00fcfdff, 0x00fcfcfd,
- 0x00f3fdfd, 0x00fbfcfc, 0x00fdfcf9, 0x00fefdf3, 0x00fffcf1, 0x00fdfdf3, 0x00fcfcf5, 0x00fffdfc, 0x00fefbfc, 0x00fffbfc, 0x00fdfafc, 0x00fffcfc, 0x00fdfefd, 0x00fdfdfc, 0x00fdfcfe, 0x00fdfdfe,
- 0x00fbfcfd, 0x00fcfefc, 0x00fcfdfb, 0x00fffcfb, 0x00fffcf8, 0x00fffefc, 0x00fdfefd, 0x00fdfffd, 0x00feffff, 0x00fefffe, 0x00ffffff, 0x00fefefe, 0x00feffff, 0x00fefefe, 0x00fffefe, 0x00ffffff,
- 0x00fcfdfd, 0x00fdfefe, 0x00fefefe, 0x00ffffff, 0x00ffffff, 0x00fcfbfb, 0x00fefdfd, 0x00d7d6d6, 0x00535151, 0x00171615, 0x0011100f, 0x00141013, 0x0015110e, 0x00120d06, 0x001a1407, 0x003c3720,
- 0x007c7858, 0x008b8665, 0x00807859, 0x0062593a, 0x00685c3f, 0x007e744c, 0x00857c52, 0x00878059, 0x007f7757, 0x00716a51, 0x00a6a08d, 0x00edeadc, 0x00fffef7, 0x00ffffff, 0x00fdfafc, 0x00fefefe,
- 0x00dadad8, 0x008e8f8d, 0x00868887, 0x009fa3a4, 0x00666b6d, 0x00262b31, 0x001f2431, 0x00202438, 0x00222343, 0x00222548, 0x00212950, 0x001b2a59, 0x001c2e62, 0x001c306a, 0x00183270, 0x00163276,
- 0x00173780, 0x00183581, 0x00173486, 0x00163083, 0x000d297d, 0x0005216d, 0x000a2362, 0x00061549, 0x00454656, 0x00938783, 0x00ad967c, 0x00b2926a, 0x00b68e5a, 0x00b58c58, 0x00b78e58, 0x00bf9561,
- 0x00bb9b6f, 0x00bd9b70, 0x00bd9b71, 0x00bd9a6f, 0x00c39d73, 0x00c59e74, 0x00c7a078, 0x00cba37c, 0x00d4a680, 0x00d3a984, 0x00d5ac82, 0x00d8ae7d, 0x00e0b07a, 0x00dfb294, 0x00a88a91, 0x005f5890,
- 0x001444ab, 0x000e53bc, 0x00115bc5, 0x00175cc6, 0x002b52ce, 0x002857d0, 0x002155c8, 0x002359bf, 0x003263be, 0x003a68c0, 0x003760bc, 0x002a4fb2, 0x001d3fa9, 0x0014359d, 0x000b2b90, 0x00062587,
- 0x00041f7d, 0x00031d7a, 0x00031c7a, 0x00081d78, 0x00071b6f, 0x00061664, 0x0004135a, 0x00020f50, 0x00000c45, 0x0000093d, 0x00040938, 0x000f0726, 0x00010e42, 0x00000a32, 0x00212336, 0x0070583f,
- 0x00c57c12, 0x00d37d04, 0x00d27a01, 0x00c47705, 0x00a5681a, 0x009a560a, 0x00b06912, 0x00c98403, 0x00d59101, 0x00d58e13, 0x00d48c27, 0x00d6913f, 0x00c78915, 0x00cd8f06, 0x00e4a10c, 0x00da9301,
- 0x00d27f0f, 0x00b57316, 0x007e4f0f, 0x00a28761, 0x00f7f1ec, 0x00fefefa, 0x00fcfefb, 0x00fefffd, 0x00fefffc, 0x00fdfefa, 0x00e6e6f1, 0x00797e9d, 0x00434a7e, 0x00363f7b, 0x00383d77, 0x001c1e4d,
- 0x00090011, 0x00100309, 0x00100005, 0x000d0106, 0x00080013, 0x00040b04, 0x000a1009, 0x001f1d19, 0x00313e69, 0x002f5295, 0x00325da2, 0x004e75ab, 0x008b8577, 0x00927e55, 0x0089703d, 0x00705f2a,
- 0x005f452d, 0x00473a3e, 0x00515368, 0x00758d9c, 0x007ca5bc, 0x00456ba4, 0x0010327d, 0x00244990, 0x005a86b3, 0x00335fa1, 0x003f6db7, 0x003565ae, 0x001c4e90, 0x00194789, 0x00184683, 0x0015447a,
- 0x001b4d7e, 0x00295c8c, 0x00245989, 0x00285a8c, 0x0036699f, 0x00416ea2, 0x0080abd4, 0x007da9bd, 0x00a0c5dd, 0x0090b1df, 0x005a79b3, 0x0093b4ee, 0x00a3cbee, 0x009dc8f1, 0x005380b6, 0x002f5aa5,
- 0x00225792, 0x0028539a, 0x0033549b, 0x006f87c2, 0x00b3d0de, 0x00a4c4d6, 0x003e6286, 0x00234790, 0x002251aa, 0x001e52a0, 0x00235da5, 0x002767b5, 0x00547194, 0x00817caa, 0x006f5889, 0x007b628f,
- 0x009daba6, 0x007390a0, 0x00193c67, 0x001a3685, 0x0020317d, 0x000e1d45, 0x000a1326, 0x000c0b1b, 0x00130814, 0x001a1420, 0x001f2637, 0x001e3049, 0x004b6a92, 0x006b8db8, 0x005274a1, 0x006384b0,
- 0x00231d3e, 0x00162951, 0x00243d71, 0x00253374, 0x00133655, 0x00423646, 0x0059413b, 0x00413c22, 0x005a3934, 0x00523c44, 0x00281b2d, 0x002d273e, 0x003d2d2c, 0x004b3223, 0x0051351d, 0x005f3f29,
- 0x005e463e, 0x00473030, 0x002f191d, 0x002e1613, 0x005a3e2c, 0x008a5636, 0x00a16e47, 0x00987c53, 0x007e7b71, 0x00604f56, 0x00543135, 0x00864e3c, 0x008d4e16, 0x006d421b, 0x00472f24, 0x00292849,
- 0x00373b7f, 0x00655b62, 0x008a6d4e, 0x009b6534, 0x00a86430, 0x009e6a1e, 0x008f6925, 0x00775f3a, 0x00f6ebf9, 0x00fdfcf1, 0x00fcfff0, 0x00f9fdfc, 0x00fdffff, 0x00fdfcfb, 0x00a59b99, 0x002a1a18,
- 0x00382624, 0x0045322c, 0x004d3b31, 0x0047352c, 0x00443427, 0x00837a76, 0x00faf8f8, 0x00f7f6f6, 0x00fefdfe, 0x00faf8f9, 0x00fdfefd, 0x00dad9d7, 0x00888580, 0x007b726b, 0x00786c63, 0x006f5e55,
- 0x00625445, 0x0056483a, 0x004b3d31, 0x004a3c30, 0x00504336, 0x00544a39, 0x005c533f, 0x00645d47, 0x006f664b, 0x006c6647, 0x00696141, 0x0067563c, 0x00635039, 0x00644e39, 0x006c5340, 0x006f5344,
- 0x00674c3e, 0x00674c40, 0x00664d43, 0x00655147, 0x006b574e, 0x00685644, 0x006b5841, 0x00705a43, 0x0083674a, 0x009f8264, 0x00af9171, 0x0088694b, 0x00a3866d, 0x00d0b5a1, 0x00937b68, 0x005a4332,
- 0x00312d1d, 0x002b2823, 0x0026252e, 0x002a2c47, 0x002f3363, 0x002b3368, 0x002a376a, 0x003d4b7b, 0x009cacd0, 0x00c9d9f5, 0x00b1bac3, 0x00a0a48b, 0x00afb6b6, 0x00a4afc5, 0x0052608c, 0x002d3e7c,
- 0x002c4892, 0x00274792, 0x002a4c91, 0x002c4f8b, 0x002d5386, 0x002c4c83, 0x00294981, 0x0021477d, 0x001b4275, 0x001a4170, 0x001d406a, 0x00203d60, 0x0034425a, 0x00444759, 0x0058535e, 0x00685a63,
- 0x006e5d63, 0x006c5d65, 0x006c5b67, 0x00685d69, 0x00625b6c, 0x0058596a, 0x0058596c, 0x00575c70, 0x0058627c, 0x0058657d, 0x0058667c, 0x005e677d, 0x005f6679, 0x00616476, 0x0061616e, 0x00615d66,
- 0x005c5355, 0x005e5050, 0x005e4f4b, 0x00614c45, 0x005a463b, 0x005a4336, 0x00533c2d, 0x004c3527, 0x004a352c, 0x004a362f, 0x004c3a33, 0x004e403a, 0x00544945, 0x0059504d, 0x00635a58, 0x006a6060,
- 0x0069644f, 0x006a644f, 0x00695f49, 0x00675c41, 0x00655b3a, 0x00605731, 0x005e552b, 0x0062592e, 0x00675c28, 0x0069602d, 0x006c6031, 0x006e5e38, 0x006d6342, 0x00706852, 0x006f6f5e, 0x006d746c,
- 0x006a7e86, 0x00677f92, 0x006785a1, 0x006687ab, 0x00638ab2, 0x005e89b1, 0x005d86ac, 0x006084a4, 0x00596f88, 0x006e7b8c, 0x00ced4dd, 0x00f8fbfa, 0x00fcfbfa, 0x00fdfdfb, 0x00fffffe, 0x00f2f2f1,
- 0x006c7171, 0x00090d0c, 0x00050202, 0x000e0b05, 0x00241a0f, 0x00291f10, 0x002b1e11, 0x001f1407, 0x000b0400, 0x00060002, 0x00100402, 0x00140500, 0x00170804, 0x00150b04, 0x000d0704, 0x00050603,
- 0x00010501, 0x00020804, 0x00020504, 0x000e1718, 0x002f3838, 0x00282a23, 0x001e1706, 0x00624f35, 0x00d2ab81, 0x00e3b589, 0x00d8a777, 0x00d1a172, 0x00ca9e71, 0x00cc9b69, 0x00dca570, 0x00e0a56d,
- 0x00d59d70, 0x00ce9862, 0x00c58952, 0x00b87b42, 0x00a26b39, 0x008e673b, 0x00603f1d, 0x002b1505, 0x00311504, 0x00573a1f, 0x0066411f, 0x00622900, 0x00794e18, 0x008b693c, 0x005d492d, 0x002b221f,
- 0x000f0f3a, 0x0017194a, 0x0006092f, 0x00000111, 0x00020b00, 0x00030601, 0x00010001, 0x00040303, 0x00010101, 0x00020202, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00f6faf6, 0x00989c99, 0x00000300, 0x00060a07, 0x000f1313, 0x00131717, 0x0016191b, 0x001b1d21, 0x001a1d21, 0x001b1d22, 0x001d1e24, 0x001d1e23, 0x001c1f22, 0x001c1f22, 0x001e2024, 0x00202025,
- 0x001e2027, 0x001d2025, 0x00212227, 0x00202126, 0x00232328, 0x00222022, 0x00242020, 0x00241f20, 0x00272123, 0x00272225, 0x00292629, 0x002e2b2f, 0x0025232a, 0x00211e26, 0x001f1e25, 0x001f1d24,
- 0x00221718, 0x001f1313, 0x00261b25, 0x00322e40, 0x003f5385, 0x003560a8, 0x00215bb5, 0x00195cc3, 0x00285ec2, 0x00315dbc, 0x002e59b5, 0x002a5db6, 0x00255bb5, 0x00255ab4, 0x002157b1, 0x001c53ab,
- 0x001c51ad, 0x002258b3, 0x002d63be, 0x00336bc1, 0x00376cc8, 0x003a6dc0, 0x003c6fbd, 0x003a6fbd, 0x002a69b1, 0x002967b3, 0x002765b7, 0x00235db8, 0x002a5bb1, 0x002a56a1, 0x00476eac, 0x005074a7,
- 0x0027639a, 0x0026639f, 0x00276bab, 0x002269b1, 0x001a66b9, 0x002165bc, 0x00235fb1, 0x003766b1, 0x004e6895, 0x002a3d57, 0x00060712, 0x00060705, 0x000b0a0a, 0x000c0c0c, 0x000e0e0d, 0x000d0e0e,
- 0x000d0d0d, 0x000d0d0d, 0x000d0d0d, 0x000d0d0d, 0x000c0c0c, 0x000b0b0b, 0x000a0a0a, 0x00080808, 0x00070706, 0x00060605, 0x00060606, 0x00030303, 0x00010101, 0x00151415, 0x00949394, 0x00f1f0f1,
- 0x00bbb9ae, 0x00313128, 0x0033342f, 0x00313533, 0x00252d2a, 0x001f231d, 0x002b291f, 0x00494431, 0x007a6549, 0x009a815f, 0x00c7a67d, 0x00edca9d, 0x00fcd8a5, 0x00f7cd96, 0x00d9a66c, 0x00cc9959,
- 0x00e3ad74, 0x00e2b47e, 0x00d7aa7e, 0x00d1a888, 0x00d4b499, 0x00c6ba9e, 0x00afaa8a, 0x00969174, 0x007b755c, 0x00726e4d, 0x0076734f, 0x00716f44, 0x0052502a, 0x004c472e, 0x00484236, 0x003f3638,
- 0x00232533, 0x00343a45, 0x004f5860, 0x00616e75, 0x00819091, 0x0092a0a0, 0x00b5bfc0, 0x00ccd2d7, 0x00e5e2e6, 0x00f3ebf2, 0x00f1eaf1, 0x00ebeaf1, 0x00e9eaf2, 0x00e3e7f0, 0x00dbe3eb, 0x00d9e2ea,
- 0x00dae3ed, 0x00dfe4f0, 0x00e3e4f5, 0x00e5e2f6, 0x00e5def5, 0x00e7e4f8, 0x00a2a2b4, 0x003a3a4c, 0x00191a2f, 0x0036374f, 0x0056596f, 0x005a5f73, 0x005e6575, 0x0059616b, 0x003c444d, 0x002c343a,
- 0x002d2e30, 0x00292b29, 0x002b2f2b, 0x002c3229, 0x001a201c, 0x00040909, 0x0001090e, 0x00010a18, 0x00020a27, 0x00001030, 0x00070c2d, 0x0033263f, 0x00988fa3, 0x00b8b2be, 0x00716b70, 0x002f2e2b,
- 0x00342f2f, 0x003a3234, 0x003f3438, 0x0040323a, 0x00463340, 0x0047383f, 0x00483937, 0x004c3734, 0x0055342f, 0x005e362e, 0x0061372f, 0x005d342b, 0x0051302b, 0x004a302d, 0x00412e2d, 0x00392b2c,
- 0x00292c2b, 0x00272827, 0x00272424, 0x00282121, 0x00261b1a, 0x001f1210, 0x001b0c0a, 0x001b0c09, 0x001b0d0a, 0x001d100a, 0x001f130e, 0x00251713, 0x00291915, 0x00291714, 0x002b1917, 0x00301e19,
- 0x00352320, 0x00342620, 0x00332822, 0x00312822, 0x002d2822, 0x00787775, 0x00feffff, 0x00fdfefc, 0x00fbfbfa, 0x00fefffe, 0x00fcfcfc, 0x00cfcfcf, 0x00767676, 0x00898989, 0x00c8c8c9, 0x00eae9ea,
- 0x00fefefd, 0x00fdfefd, 0x00ffffff, 0x00fefefe, 0x00ffffff, 0x00fefefe, 0x00ffffff, 0x00fefeff, 0x00feffff, 0x00fcfdff, 0x00ffffff, 0x00fdfefc, 0x00fefefe, 0x00fffefe, 0x00fffffd, 0x00fffefd,
- 0x00fcfdff, 0x00fcfdfe, 0x00fdfefe, 0x00fdfefd, 0x00fffefd, 0x00ffffff, 0x00fdfffe, 0x00fcfdfd, 0x00fefdfe, 0x00fefcfd, 0x00fffafd, 0x00fffbfd, 0x00fdfdff, 0x00fcfdfe, 0x00fefefe, 0x00fdfdfc,
- 0x00fcfff9, 0x00fcfefb, 0x00fdfdfb, 0x00fcfdfa, 0x00fbfdfc, 0x00fbfdfd, 0x00fdfefe, 0x00fffefe, 0x00fefdff, 0x00fefdfe, 0x00fdfdfe, 0x00fdfdfe, 0x00fefefe, 0x00fefdfe, 0x00fefeff, 0x00fefffd,
- 0x00fffffb, 0x00fefefa, 0x00fffffc, 0x00fefefd, 0x00fffdfe, 0x00fffefa, 0x00fefef7, 0x00fffcfa, 0x00fdfbf7, 0x00fef9f6, 0x00fffdfa, 0x00fefef8, 0x00fdfffa, 0x00fdfdfa, 0x00fefbfc, 0x00fefafd,
- 0x00fdfeff, 0x00fefdff, 0x00fcfffe, 0x00fcfffb, 0x00fefffb, 0x00fefdf8, 0x00fffef8, 0x00fffef9, 0x00fffefc, 0x00fffffe, 0x00fefcff, 0x00fcf8fb, 0x00fefcfe, 0x00fdfdfc, 0x00fbfbfd, 0x00f9fbfd,
- 0x00fcfeff, 0x00fcfffe, 0x00fdfefe, 0x00fefeff, 0x00fffdfc, 0x00fdfdfc, 0x00fefffe, 0x00fdfffe, 0x00fefefd, 0x00fefefd, 0x00ffffff, 0x00fefefe, 0x00fefefe, 0x00fdfdfd, 0x00fefdfe, 0x00fefeff,
- 0x00fdfdfe, 0x00fefefe, 0x00ffffff, 0x00fefefe, 0x00fefefe, 0x00fcfcfb, 0x00fefefd, 0x00d8d8d7, 0x00545354, 0x001c1b1b, 0x0019181a, 0x001b1a1e, 0x001e1d19, 0x001c1a0e, 0x00272412, 0x004e4b31,
- 0x00837e5c, 0x008d8765, 0x007d7555, 0x00675c3f, 0x00776b51, 0x00887f59, 0x007e774c, 0x007b734a, 0x007b7453, 0x00767154, 0x00aca691, 0x00ede9d9, 0x00fffef7, 0x00fefffe, 0x00fffcfb, 0x00fdfdfc,
- 0x00d8dad8, 0x008d8f8c, 0x00848785, 0x009fa3a2, 0x00676b6c, 0x00272c30, 0x001f2330, 0x00212539, 0x0021243f, 0x00222643, 0x00212b4d, 0x001b2c57, 0x001c2f60, 0x001a2f68, 0x0016316e, 0x00143275,
- 0x00163180, 0x00142f80, 0x00143185, 0x00132f84, 0x000d277e, 0x000d2371, 0x000e1f60, 0x000e194e, 0x003b374e, 0x0076686b, 0x009a8372, 0x009e7f5d, 0x00a67e52, 0x00a67e4f, 0x00ac8454, 0x00b38a5a,
- 0x00ae8f6b, 0x00b3926e, 0x00b69672, 0x00b89772, 0x00be9975, 0x00c19a75, 0x00c29d76, 0x00c39e77, 0x00c79c73, 0x00ca9d77, 0x00cc9f7b, 0x00cfa47f, 0x00c8af88, 0x00958c8b, 0x00434e7d, 0x001b3eab,
- 0x000c50d9, 0x000e59c8, 0x00135cb8, 0x001c56ab, 0x00314dbd, 0x002c54ca, 0x002354c9, 0x00275bc3, 0x003565c4, 0x00315dba, 0x00254cae, 0x001f40a9, 0x001832a3, 0x00102996, 0x0009228b, 0x00071f83,
- 0x00061d77, 0x00051b74, 0x00061a72, 0x00091a6e, 0x00081764, 0x00051258, 0x0004114f, 0x00020f45, 0x0002093f, 0x00010838, 0x00040733, 0x000d0829, 0x00010f3c, 0x00060f2a, 0x00443a35, 0x00a2743f,
- 0x00dc8517, 0x00d78614, 0x00ca8118, 0x00b5751c, 0x00a06017, 0x00a75903, 0x00c2750e, 0x00d0880c, 0x00ca8e06, 0x00c3860b, 0x00ca8c1e, 0x00d2942b, 0x00ba7c08, 0x00cc8a0c, 0x00e29d1e, 0x00d69014,
- 0x00cf7b1e, 0x00a56217, 0x00714212, 0x00a2876c, 0x00f8f2f3, 0x00fffefe, 0x00fdfffe, 0x00feffff, 0x00fefffc, 0x00fdfefb, 0x00d4e3ec, 0x0040698b, 0x001f4b7f, 0x0014417c, 0x001a427c, 0x000e2b5d,
- 0x0002091a, 0x0000090a, 0x00030907, 0x00010908, 0x00020a13, 0x00060a03, 0x0015170d, 0x002f2e2b, 0x002f4575, 0x00255195, 0x003060a6, 0x00426a9a, 0x00837865, 0x00937b4d, 0x008a7038, 0x006f6029,
- 0x004b4042, 0x003d3c58, 0x00596388, 0x00597692, 0x007da6c1, 0x00486daa, 0x0012317b, 0x0032549b, 0x006f99c5, 0x003864a3, 0x002c5a9e, 0x00295893, 0x00446da1, 0x00678cb9, 0x006b8db3, 0x00406080,
- 0x006f8ead, 0x0097bbdc, 0x00739dc3, 0x0076a7d2, 0x004c80b5, 0x004d7cb0, 0x0089b2db, 0x00598196, 0x009fc0d5, 0x008ba8d1, 0x008ca7d8, 0x008facde, 0x00648aa6, 0x00a2cdf0, 0x005783b4, 0x0028529b,
- 0x001b4e99, 0x001f4693, 0x003e559a, 0x007f8bc0, 0x00abbac6, 0x008299ab, 0x0027466b, 0x00183c83, 0x001f45a3, 0x00224797, 0x00204d9c, 0x002156b4, 0x002d5384, 0x00475990, 0x00444784, 0x005e5d97,
- 0x00a7b8c9, 0x007c96b8, 0x0027427c, 0x001b368e, 0x001a377d, 0x00283357, 0x00181927, 0x00281f26, 0x005d463f, 0x0056423b, 0x004c3f40, 0x0073737d, 0x007486a5, 0x00859fc7, 0x007492bf, 0x006788b7,
- 0x00261d33, 0x0000102f, 0x0008234e, 0x00152361, 0x00212f55, 0x004d2d46, 0x005a2f2f, 0x003a2e12, 0x004d2e1e, 0x00593f39, 0x005d4a4e, 0x005c535d, 0x00806e64, 0x006f5742, 0x00644b30, 0x007e644e,
- 0x004b3a37, 0x0024181d, 0x001f1218, 0x00160a0a, 0x00281809, 0x004e3522, 0x00937e75, 0x0073717b, 0x00485774, 0x00444758, 0x00584448, 0x00764d37, 0x00743e27, 0x0051372d, 0x00242329, 0x00052037,
- 0x00212253, 0x00594950, 0x008e6850, 0x00a46a38, 0x00a1612f, 0x00916634, 0x008b734a, 0x00756d57, 0x00faf9f8, 0x00fdfdeb, 0x00fbfee7, 0x00fafcfa, 0x00fdfdfb, 0x00fefafb, 0x009a8d8b, 0x00301f1d,
- 0x0047322d, 0x00553e34, 0x005f473b, 0x00593f34, 0x005e4739, 0x009c8f8b, 0x00fdf9fb, 0x00fbf8f8, 0x00fefeff, 0x00fafafb, 0x00fafbfb, 0x00d0cfce, 0x00847f7d, 0x0079716d, 0x00796e68, 0x0070635c,
- 0x0063574a, 0x00584d41, 0x004e4339, 0x004d423a, 0x00534941, 0x005a5046, 0x00625a4b, 0x006c6553, 0x00756e58, 0x00736e55, 0x0072674e, 0x00725f46, 0x0068523d, 0x00634a37, 0x00604736, 0x005c4334,
- 0x0061463a, 0x0062463c, 0x00634840, 0x00624b43, 0x00624d47, 0x00624f3f, 0x0069533e, 0x00725744, 0x00806249, 0x00927256, 0x009c7a5b, 0x00967250, 0x00ccaa8a, 0x00edcbac, 0x00d3b495, 0x00bd9f80,
- 0x00977c53, 0x00826746, 0x00725a44, 0x0064514a, 0x003a2f3b, 0x001c192d, 0x00292a44, 0x003b3f5c, 0x00757c99, 0x00a4aec6, 0x009d9ea8, 0x005f5b42, 0x00777775, 0x00b9c0d0, 0x008595b5, 0x00425887,
- 0x00223e79, 0x0021407c, 0x0025457e, 0x0028497b, 0x00244876, 0x0023426c, 0x00213d68, 0x001e3a68, 0x00173a67, 0x00163962, 0x0019385d, 0x001f3756, 0x0031394f, 0x00454251, 0x005e535c, 0x006e5a61,
- 0x00775860, 0x00765a63, 0x00745b65, 0x00705c67, 0x00695b6a, 0x0060596a, 0x005e5b6d, 0x005e5f73, 0x0060667f, 0x005f6a80, 0x00606a82, 0x00636880, 0x00626679, 0x00636374, 0x00666371, 0x0068636d,
- 0x006e6367, 0x006c5d5e, 0x006b5a55, 0x0067534b, 0x005f4a3f, 0x005d4638, 0x00594033, 0x00533c2f, 0x004f3c34, 0x004b3a35, 0x00493b37, 0x004b4140, 0x00504a4d, 0x00535055, 0x005a5a5f, 0x005f6168,
- 0x00676964, 0x00676960, 0x0069685a, 0x0066634e, 0x00635c42, 0x00625a3b, 0x00645d38, 0x00645e35, 0x00656031, 0x00646132, 0x00656138, 0x006a6344, 0x006c6854, 0x006b6d61, 0x0068736f, 0x00677a81,
- 0x00647e94, 0x0062819f, 0x006486a9, 0x006488b0, 0x006288b5, 0x00608bb9, 0x00628bb9, 0x005e83af, 0x00566e8b, 0x0076879a, 0x00dfe6f1, 0x00fbfdfd, 0x00fcfcfb, 0x00fcfbf9, 0x00fffdfb, 0x00e5e4e1,
- 0x00545958, 0x00060908, 0x00040002, 0x00100704, 0x002c1f13, 0x00362918, 0x00322517, 0x0023180b, 0x000f0705, 0x00050000, 0x00070208, 0x0001000e, 0x00030111, 0x00040111, 0x0003020b, 0x00000309,
- 0x00030505, 0x00000501, 0x00010906, 0x000b1814, 0x00172724, 0x0012100b, 0x004e3f2c, 0x00a98d71, 0x00e5b68a, 0x00dca879, 0x00d29d68, 0x00dba773, 0x00e9b788, 0x00ecb584, 0x00f1b480, 0x00f1b078,
- 0x00e5ad81, 0x00d99e6c, 0x00c88856, 0x00b67540, 0x009e6438, 0x008d6037, 0x006d4626, 0x003f2209, 0x005a351a, 0x008d6243, 0x0096623b, 0x0092521a, 0x0094632d, 0x008f6b46, 0x005f4c35, 0x001c1412,
- 0x000a0d28, 0x00181e3b, 0x00080d24, 0x0001030c, 0x00020702, 0x00040503, 0x00010001, 0x00020103, 0x00010101, 0x00020202, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00f6faf7, 0x00999d9a, 0x00010402, 0x00080c0a, 0x00141718, 0x00181a1d, 0x00191a1f, 0x001c1c23, 0x001e1f24, 0x001e1f24, 0x001f2025, 0x001e2025, 0x001e2024, 0x001e2024, 0x001f2225, 0x00212327,
- 0x0022232a, 0x00222429, 0x00242529, 0x00252429, 0x0026252b, 0x00282328, 0x00282024, 0x00272125, 0x002b2228, 0x002b2229, 0x002c242a, 0x002e272e, 0x00312b34, 0x002c2730, 0x00231f25, 0x001e1920,
- 0x00241814, 0x00201514, 0x001b1117, 0x0013101c, 0x001f2542, 0x00354572, 0x003c558e, 0x00375aa1, 0x003157ab, 0x003057b1, 0x002d5bb6, 0x00265cb5, 0x00255cb6, 0x00265ab6, 0x002357b2, 0x001d54ae,
- 0x002054b1, 0x001e53b0, 0x002157b2, 0x00285db7, 0x003264c1, 0x003869c1, 0x00396cbf, 0x00376cbf, 0x002e68b8, 0x002863b2, 0x002a65b8, 0x00285db0, 0x003055a1, 0x0045629c, 0x0092a9d7, 0x00aabedc,
- 0x00598aad, 0x00396e96, 0x00296595, 0x002467a4, 0x001e64b5, 0x002160ba, 0x00265fb6, 0x00315eaf, 0x00516b9c, 0x00374d6a, 0x00030914, 0x00050604, 0x000b0b0a, 0x000a090a, 0x000c0e0c, 0x000c0c0d,
- 0x000c0c0c, 0x000c0c0c, 0x000d0d0d, 0x000c0c0c, 0x000c0c0c, 0x000b0b0b, 0x000a0a0a, 0x00080808, 0x00090908, 0x00090807, 0x00090908, 0x00040404, 0x00030303, 0x00181819, 0x009a9b9b, 0x00f1f2f3,
- 0x00bebbb5, 0x0035342f, 0x00333734, 0x00303838, 0x0025312c, 0x0022261d, 0x00403c2d, 0x005b5035, 0x009b7e5a, 0x00c6a278, 0x00cba370, 0x00e0b983, 0x00e3be88, 0x00e9c088, 0x00ddb077, 0x00c49a5f,
- 0x00cfa070, 0x00d9ad7d, 0x00d3a87e, 0x00b98f69, 0x00a37a59, 0x008a775f, 0x0069624e, 0x004f4838, 0x0030281d, 0x002e2915, 0x0049472e, 0x005e5c3c, 0x003f3d1d, 0x00322d19, 0x00353026, 0x003b3435,
- 0x005a4546, 0x006f5f5d, 0x009c9390, 0x00b2b0b2, 0x00aaafb4, 0x00b2bac2, 0x00d0d8de, 0x00dfe6ec, 0x00eae8f0, 0x00ebe8ee, 0x00eae9ed, 0x00e7e9f1, 0x00ebe9f2, 0x00ece8f3, 0x00ebe8f2, 0x00eae8f3,
- 0x00e3e3f3, 0x00e0e2f2, 0x00dbdfed, 0x00d9ddee, 0x00deddef, 0x00e3e1f7, 0x00d7d6eb, 0x00928fa7, 0x0025253d, 0x00070820, 0x000a0d22, 0x000c1223, 0x00171f2b, 0x001c262c, 0x000f1b1f, 0x00182427,
- 0x00273430, 0x002c3430, 0x00292f2b, 0x00333432, 0x00242426, 0x00080a11, 0x00020b14, 0x00000b1d, 0x00010d2b, 0x00021433, 0x00060d2f, 0x00382a47, 0x00a195ad, 0x00bbb4be, 0x00666464, 0x00292722,
- 0x00322e2b, 0x00372f2d, 0x003b302f, 0x003d3031, 0x00423138, 0x00443638, 0x00463633, 0x004a3531, 0x00593633, 0x005e372f, 0x005f372f, 0x005b342a, 0x00512d28, 0x00472b28, 0x003b2926, 0x00302523,
- 0x00242523, 0x001f201f, 0x001f1c1c, 0x00211919, 0x001f1414, 0x001a0c0b, 0x00180906, 0x00180b08, 0x001d0b0d, 0x001e100e, 0x001f120f, 0x00221512, 0x00281713, 0x00291612, 0x002c1915, 0x002f1e17,
- 0x00392222, 0x00382620, 0x00372922, 0x00332920, 0x002e2921, 0x00787774, 0x00fdfdfd, 0x00fdfdfa, 0x00fefbfc, 0x00ffffff, 0x00fdfcfc, 0x00cbcbcb, 0x00737373, 0x00868887, 0x00c5c7c6, 0x00e7e9e8,
- 0x00fefcff, 0x00fffdff, 0x00fefdff, 0x00ffffff, 0x00fbfbfd, 0x00f9fafc, 0x00f9fbfc, 0x00fafbfc, 0x00fcfaff, 0x00fcfbff, 0x00fbfbfc, 0x00fcfdfb, 0x00fcfdfd, 0x00fcfcfc, 0x00fbfcfa, 0x00fcfcfb,
- 0x00fefcff, 0x00fefdfe, 0x00fbfcfb, 0x00fafcfa, 0x00fbfbfb, 0x00fafdfd, 0x00f9fefc, 0x00fafdfb, 0x00fefdff, 0x00fffcff, 0x00fefafd, 0x00fefbfe, 0x00fcfbfd, 0x00fbfdfe, 0x00f9fefc, 0x00f9fefa,
- 0x00fefbfe, 0x00fefdff, 0x00fbfbfc, 0x00fbfcfb, 0x00fafbfc, 0x00fcfffd, 0x00fafefa, 0x00f9fdfc, 0x00fcfcff, 0x00fcfbfc, 0x00fafafc, 0x00fbfafe, 0x00fbfdff, 0x00fcfcfd, 0x00fcfdfc, 0x00f9fbf7,
- 0x00ffffff, 0x00fefefe, 0x00fbfcfd, 0x00fcfefd, 0x00fefeff, 0x00fbfdfa, 0x00f9fdf8, 0x00fcfff8, 0x00fff8fd, 0x00fffafd, 0x00fdfcf9, 0x00fbfef7, 0x00f9fef8, 0x00fafcfa, 0x00fdfafb, 0x00fdf7fc,
- 0x00fffeff, 0x00fdfdff, 0x00f9fefd, 0x00f7fffc, 0x00f8fdfc, 0x00fcfdfa, 0x00fefbf5, 0x00fefbf3, 0x00fffbfe, 0x00fffdff, 0x00fcfafe, 0x00fffbff, 0x00fbfcfd, 0x00fcfdfb, 0x00f8fcf9, 0x00f9fefa,
- 0x00fcfffe, 0x00fdfffe, 0x00fbfefd, 0x00fefdff, 0x00fdfdff, 0x00fcfcfc, 0x00fbfcfb, 0x00fafbfa, 0x00fefcfd, 0x00fefdfe, 0x00fcfcfc, 0x00fdfefd, 0x00fefdfe, 0x00fffefe, 0x00fdfefd, 0x00fdfefd,
- 0x00fdfcfd, 0x00fefdfe, 0x00fffeff, 0x00ffffff, 0x00fefefe, 0x00fcfcfb, 0x00fcfdfc, 0x00d4d5d3, 0x004b494c, 0x00100e10, 0x0009090a, 0x000c0d13, 0x0011120f, 0x00131208, 0x002c2a18, 0x0057563a,
- 0x007b7355, 0x007d7555, 0x006e6446, 0x005b5034, 0x006e634c, 0x00827c5b, 0x0077734b, 0x00726c48, 0x00736d52, 0x00706b52, 0x00a8a28e, 0x00eeeadb, 0x00fffef6, 0x00fefffb, 0x00fdfaf8, 0x00fefdfc,
- 0x00dadada, 0x008f8f8f, 0x00868787, 0x009fa3a3, 0x00686c6d, 0x00272d30, 0x001f252d, 0x00202634, 0x00222542, 0x00232746, 0x00222c4e, 0x001c2d57, 0x001c2f5e, 0x001b3066, 0x0017326c, 0x00143372,
- 0x00193180, 0x00152e7d, 0x00112d7e, 0x000f2b7e, 0x000b247c, 0x000d2274, 0x00081a62, 0x000b1956, 0x00292947, 0x004f4651, 0x007d6e64, 0x00897159, 0x008d704a, 0x0091724a, 0x0096774d, 0x009b7b51,
- 0x009c7f65, 0x00a4866b, 0x00aa8d6f, 0x00ad8f70, 0x00b69374, 0x00b99673, 0x00ba9872, 0x00bc9a71, 0x00c39871, 0x00c49c71, 0x00c29e7c, 0x00b89d89, 0x008a8488, 0x004b5884, 0x00254397, 0x001b4ac8,
- 0x001851db, 0x001e56c7, 0x001b57b5, 0x002358ae, 0x002f57bf, 0x002c59c8, 0x00285aca, 0x002d5fc4, 0x00305bba, 0x00254eaa, 0x001a40a0, 0x0017379e, 0x00122997, 0x000d228a, 0x00071d7d, 0x00031973,
- 0x00081a76, 0x00061871, 0x0005186b, 0x00071763, 0x00041458, 0x00030f4d, 0x00020d43, 0x00000a38, 0x00040837, 0x00050932, 0x0002062e, 0x0007072a, 0x00001239, 0x00141525, 0x005e412b, 0x00ae7229,
- 0x00d27d0c, 0x00da912c, 0x00b4761d, 0x008a530c, 0x00934a0e, 0x00b56207, 0x00c77610, 0x00c77d18, 0x00b47616, 0x00b2770c, 0x00c8901d, 0x00cf961e, 0x00af7002, 0x00c17e15, 0x00cf8a26, 0x00c07d1b,
- 0x00c56f22, 0x00914d10, 0x006b3d18, 0x00a7907b, 0x00f9f6fa, 0x00fdfefe, 0x00fcfdfc, 0x00fefefd, 0x00fffeff, 0x00fffefc, 0x00d0dce5, 0x00356185, 0x0018477d, 0x0012417c, 0x001a457d, 0x00163763,
- 0x00051023, 0x00020809, 0x00080a04, 0x00090904, 0x00020808, 0x00070703, 0x001f1d16, 0x002f2f35, 0x002b437e, 0x0021519c, 0x00195098, 0x00335e8e, 0x00847766, 0x009d805b, 0x00866b40, 0x00655732,
- 0x0031344e, 0x00273564, 0x00405689, 0x006a8eb1, 0x008db6d3, 0x004465a3, 0x001a337f, 0x0035549a, 0x00729ac7, 0x003a68a8, 0x00245397, 0x00204d84, 0x006182b0, 0x007792b4, 0x008a9fb7, 0x005c6d7f,
- 0x006d7a90, 0x009fb2cf, 0x0048688b, 0x003d6894, 0x00366aa3, 0x004976ac, 0x009cc3ea, 0x007095aa, 0x00adc9de, 0x007993b9, 0x009eb7e3, 0x0088a4d0, 0x00567b91, 0x00a6d0eb, 0x004a77a2, 0x00245197,
- 0x00194c96, 0x001a3e88, 0x00405493, 0x00878cb8, 0x009aa3a5, 0x0064757f, 0x001e3956, 0x00143575, 0x0018388d, 0x00234287, 0x00284e97, 0x00204cb1, 0x002c588d, 0x0030568f, 0x00254280, 0x00334b87,
- 0x009bafca, 0x008497c2, 0x002e4382, 0x001e378d, 0x00153c77, 0x00293854, 0x0056545c, 0x007c7271, 0x0086685a, 0x00785d4f, 0x00766057, 0x00544c4c, 0x00202c43, 0x00304869, 0x004a6690, 0x005f81ae,
- 0x002d2733, 0x0004162c, 0x00082a4d, 0x001d2963, 0x00302955, 0x005e2a49, 0x005f2629, 0x00362b0a, 0x0040230e, 0x0054392f, 0x0065504e, 0x005b4f53, 0x008c796a, 0x00776048, 0x007e674c, 0x006e5a46,
- 0x002b1b20, 0x00150e1b, 0x00120f16, 0x001a1617, 0x001f1607, 0x00221807, 0x005a575b, 0x004d5580, 0x00304580, 0x00414c5f, 0x006d6257, 0x0078522d, 0x006a3326, 0x004f3134, 0x001d1b25, 0x0000181d,
- 0x00231c29, 0x00685147, 0x0093694a, 0x009f652c, 0x009d6534, 0x0086644b, 0x007e6d66, 0x00686a6d, 0x00ffffff, 0x00fffef3, 0x00fefdef, 0x00fcfeff, 0x00fffffc, 0x00fef9fa, 0x008d827b, 0x00382620,
- 0x00563c37, 0x0064483f, 0x006e5044, 0x0063453a, 0x00745a4a, 0x00b3a59f, 0x00fefbfa, 0x00fcfbf9, 0x00fffdfe, 0x00fffeff, 0x00f7f8f9, 0x00cbcacb, 0x00827e7f, 0x007d7573, 0x00756e68, 0x006e655e,
- 0x0062584e, 0x00595046, 0x00514840, 0x00514942, 0x00584f49, 0x005e564f, 0x00685f56, 0x0072695e, 0x007d7264, 0x007a7160, 0x00766b57, 0x0073614a, 0x00675340, 0x00614a37, 0x005a4233, 0x00553d31,
- 0x005c3d37, 0x005d3e39, 0x005b403b, 0x0058423b, 0x005a443e, 0x005b4836, 0x00655137, 0x006c543a, 0x00997b61, 0x00be9d80, 0x00b08e6a, 0x00a27f57, 0x00d0af85, 0x00ddbe93, 0x00dabf90, 0x00d0b586,
- 0x00c79d6a, 0x00ac8757, 0x009f7f5a, 0x00887057, 0x004b3e36, 0x00282527, 0x00212531, 0x0020293c, 0x00313958, 0x00687390, 0x00aeb3c4, 0x008e867d, 0x0085858b, 0x00b9bdcd, 0x00abbad9, 0x00768cb7,
- 0x00203b77, 0x001c3a75, 0x00193970, 0x001b396c, 0x0018376a, 0x001a355f, 0x00193158, 0x00173158, 0x0014315a, 0x00133056, 0x00162f50, 0x0020334d, 0x00333648, 0x0048414d, 0x005e4f55, 0x006c5559,
- 0x007c525d, 0x007b5660, 0x00775861, 0x00745a64, 0x006c5c67, 0x00665a67, 0x00635e6b, 0x00626170, 0x0063657d, 0x00636a81, 0x00666c84, 0x006b6b85, 0x0068697d, 0x006c697b, 0x00726c7b, 0x0078717b,
- 0x0083757b, 0x007f6e6e, 0x007b6761, 0x00745f55, 0x00675145, 0x00624b3d, 0x005d4238, 0x00573e34, 0x00543d38, 0x004d3937, 0x00453738, 0x00453d41, 0x004c4750, 0x004f4e59, 0x00565863, 0x005c606c,
- 0x00666c75, 0x00656c6f, 0x00666b67, 0x00686a5c, 0x0069654f, 0x00686143, 0x0068613e, 0x0068633e, 0x006b663c, 0x0066653c, 0x00666543, 0x00696854, 0x006a6d62, 0x0068726f, 0x0065797a, 0x00627d8a,
- 0x006681a1, 0x006284a9, 0x006388b1, 0x00628ab6, 0x006088b7, 0x005c89b9, 0x005e89b9, 0x005a82ae, 0x00576e8e, 0x007f8ea4, 0x00eaf2fe, 0x00fbfdfe, 0x00fefdfc, 0x00fbfaf8, 0x00fdfcf8, 0x00d7d7d2,
- 0x00404449, 0x00050609, 0x00030000, 0x00110801, 0x002b2010, 0x003c2d1b, 0x0036291a, 0x00281c0f, 0x000e0807, 0x00030003, 0x00000003, 0x0001000f, 0x0001000e, 0x0001000a, 0x00010406, 0x00020707,
- 0x00040405, 0x00020404, 0x00020a07, 0x000c1517, 0x00071316, 0x00120d05, 0x00756147, 0x00bc9f7d, 0x00c6916a, 0x00be8759, 0x00ba8550, 0x00bb8855, 0x00dbaa7e, 0x00e4ae7e, 0x00e3a974, 0x00e1a46c,
- 0x00d39c6c, 0x00c98d5a, 0x00ba7d45, 0x00ae7037, 0x00996330, 0x00895a31, 0x006e4420, 0x004c290a, 0x006d411e, 0x0095643e, 0x009b6636, 0x00a66727, 0x00a37043, 0x00886448, 0x0042301e, 0x000a0605,
- 0x000f1221, 0x001b212e, 0x00090c15, 0x00000006, 0x00030203, 0x00020202, 0x00000000, 0x00000201, 0x00010101, 0x00020202, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00fafbfb, 0x009c9e9e, 0x00030504, 0x000a0d0b, 0x0016181b, 0x001a1c20, 0x001b1d20, 0x001d1e23, 0x00201f26, 0x001f2025, 0x001f2125, 0x001e2124, 0x001e2025, 0x001e2125, 0x001f2326, 0x00202527,
- 0x0025242b, 0x0025252b, 0x00242529, 0x0024252a, 0x0025262c, 0x0027242b, 0x0027232a, 0x0027262b, 0x002a272e, 0x002a252e, 0x002a272d, 0x002b272e, 0x002e2d35, 0x002f2d35, 0x002b2a2f, 0x00272429,
- 0x0032221a, 0x00271e1b, 0x001c161e, 0x000c0e17, 0x000d0a19, 0x00201b2f, 0x003f3c58, 0x004a5178, 0x003d599b, 0x003059a8, 0x00285cb6, 0x00265bb6, 0x00295bb7, 0x002859b6, 0x002457b3, 0x001f56b1,
- 0x002558b6, 0x002358b6, 0x002257b4, 0x002558b7, 0x002b5bb9, 0x003261bf, 0x003365be, 0x003264bd, 0x002e66b9, 0x002d66b7, 0x002c65b6, 0x002c5db0, 0x00365496, 0x006a7eae, 0x00c6d5f0, 0x00c6d3dc,
- 0x00a1b0cc, 0x008298b9, 0x0041658d, 0x002d5b93, 0x00255dab, 0x00255bb4, 0x002b60b6, 0x002b58a8, 0x004b6698, 0x003b5170, 0x00000b16, 0x00080706, 0x000a0909, 0x000b0a0a, 0x00090b0a, 0x00080b0b,
- 0x000c0c0c, 0x000d0d0d, 0x000d0d0d, 0x000b0b0b, 0x000c0c0c, 0x000a0a0a, 0x00090909, 0x00070707, 0x000b090b, 0x000b090b, 0x00090809, 0x00060606, 0x00050505, 0x001d1e1d, 0x00a1a3a1, 0x00f2f4f2,
- 0x00b5bbab, 0x0031382b, 0x00333b34, 0x00323d3c, 0x00293633, 0x0031372d, 0x004c4835, 0x007e6f52, 0x00a48855, 0x00ae864c, 0x00be8e56, 0x00cba269, 0x00d0a871, 0x00c39c65, 0x00b28b59, 0x009c7945,
- 0x00b19461, 0x00c7a676, 0x00c79c73, 0x00ab7e56, 0x007d4d29, 0x004a341e, 0x002e221c, 0x002b1d1e, 0x0017170e, 0x001d1d10, 0x00423f33, 0x00595846, 0x00615e49, 0x005d5a4e, 0x00635d5e, 0x00726774,
- 0x00997a5c, 0x008a6c57, 0x00a58b81, 0x00d8c5c8, 0x00e6dfeb, 0x00e6e5f3, 0x00edeefd, 0x00ececfe, 0x00dfe6e9, 0x00e0e3e6, 0x00e1e4ea, 0x00dbe5ec, 0x00e3e1ec, 0x00e8e0ed, 0x00efe0f3, 0x00f1e3f8,
- 0x00e4e9f2, 0x00e1e6f1, 0x00dde3f0, 0x00dbe1ef, 0x00dce0ee, 0x00dbdbf0, 0x00e5dffb, 0x00afabc9, 0x00262d40, 0x00091023, 0x0005081e, 0x000d1124, 0x00101d21, 0x00151f21, 0x001c2628, 0x00283433,
- 0x001c3726, 0x00263829, 0x003c3e3c, 0x004b4348, 0x00332836, 0x000d0819, 0x00070a1f, 0x00030b25, 0x00000d22, 0x0000112b, 0x000b1034, 0x00453657, 0x00b5a9c0, 0x00b7afba, 0x00595156, 0x002b2221,
- 0x00242717, 0x002b2c1c, 0x00372f27, 0x003a2c2a, 0x00412f31, 0x00443135, 0x00463235, 0x004f3333, 0x00513429, 0x00583628, 0x005e362a, 0x005c3229, 0x004e2b26, 0x00452827, 0x003b2325, 0x00301e23,
- 0x00161d0f, 0x0014190d, 0x00181612, 0x001b1412, 0x00170c0e, 0x0017090b, 0x001a090e, 0x001b0a0f, 0x00150e05, 0x00160e07, 0x0019100a, 0x001e120e, 0x00241412, 0x00281414, 0x002f1918, 0x00371f1d,
- 0x00312218, 0x0032231b, 0x00372a23, 0x00342821, 0x002d271b, 0x007a7772, 0x00fffdff, 0x00fffeff, 0x00f3fbf4, 0x00f9fef6, 0x00fdfffd, 0x00d0d0cf, 0x00787878, 0x008d8b8d, 0x00cecace, 0x00f1ebed,
- 0x00f9fdf9, 0x00fafdfa, 0x00fdfefd, 0x00fefffe, 0x00fffeff, 0x00fffdfe, 0x00fffdff, 0x00fffeff, 0x00f9fef9, 0x00fafefa, 0x00fdfefe, 0x00fefdff, 0x00fefdfe, 0x00fffeff, 0x00ffffff, 0x00fffeff,
- 0x00f9fdfa, 0x00f9fdf9, 0x00fffdfd, 0x00fefefe, 0x00fffeff, 0x00f9fefe, 0x00fdfeff, 0x00ffffff, 0x00f7fff9, 0x00f9fdf9, 0x00fefdfc, 0x00ffffff, 0x00fcfdfe, 0x00fbffff, 0x00fcffff, 0x00fbfefe,
- 0x00f8fff5, 0x00f7fff8, 0x00fefefc, 0x00fffefe, 0x00fffdfe, 0x00fdfdfe, 0x00fffdff, 0x00fffcff, 0x00f8fdf5, 0x00f7fff8, 0x00fcfcfb, 0x00fdfdfe, 0x00fcfdfd, 0x00fdffff, 0x00fdfdff, 0x00fffeff,
- 0x00f6fff7, 0x00f7fdf8, 0x00fdfeff, 0x00fefdfd, 0x00fefeff, 0x00f8fcf9, 0x00fbfefe, 0x00fffeff, 0x00f6fbf8, 0x00f7fcfa, 0x00fbffff, 0x00f9fefd, 0x00f7fdfa, 0x00fafefc, 0x00fefcfe, 0x00fff8ff,
- 0x00f7fbf6, 0x00f8fcfb, 0x00f9fefd, 0x00f4fdfd, 0x00f6ffff, 0x00fcfeff, 0x00fffcfc, 0x00fffdf9, 0x00f8faf2, 0x00f8fcf6, 0x00fbfbff, 0x00fffcff, 0x00fdfbfd, 0x00fefefd, 0x00fdfdfe, 0x00fcfeff,
- 0x00f6fef7, 0x00f7fef8, 0x00fcfcfc, 0x00fcfdfc, 0x00fdfbfd, 0x00fdfdfd, 0x00fffdff, 0x00fefdfe, 0x00f6fef4, 0x00f8fef7, 0x00fbfefc, 0x00fdfdfd, 0x00fefdfd, 0x00fdfcfc, 0x00fffdfe, 0x00fffcff,
- 0x00f8fcf7, 0x00fafefa, 0x00fefffe, 0x00fefefe, 0x00fbfcfd, 0x00fbfefe, 0x00fffeff, 0x00d5d3d3, 0x003d423e, 0x00050803, 0x00040507, 0x00080b10, 0x000b0c0b, 0x000d0c04, 0x00252414, 0x00454229,
- 0x0050522e, 0x0051512d, 0x00514b30, 0x004a412b, 0x00564838, 0x00625e40, 0x005c5a3a, 0x005f593b, 0x005b5e3e, 0x00616448, 0x00a6a28f, 0x00efeadb, 0x00fcfef5, 0x00fdfff9, 0x00fffbf9, 0x00fffdfd,
- 0x00d1dcd2, 0x00888f89, 0x00858887, 0x00a4a5a5, 0x006a6d6d, 0x002b3133, 0x00252832, 0x00272938, 0x00202a36, 0x00242a3b, 0x00252e4b, 0x0022315a, 0x00223360, 0x00203366, 0x001c326d, 0x001b3274,
- 0x000f2f74, 0x000b2b74, 0x000b2878, 0x000e277c, 0x000c2379, 0x00061c72, 0x00081c6e, 0x000e2063, 0x00152244, 0x002d2f3f, 0x00564d4d, 0x00675848, 0x00665136, 0x006c5335, 0x0073593c, 0x00775c3f,
- 0x006f5c41, 0x00796447, 0x00896d57, 0x0095775d, 0x00a18565, 0x00ac8c6b, 0x00b79472, 0x00bd9a74, 0x00b79c69, 0x00be9e6a, 0x00bfa384, 0x0098918b, 0x00425183, 0x001f3b94, 0x00214ac0, 0x001f4fd4,
- 0x001b51c1, 0x001e50ba, 0x00234fb5, 0x00224fb5, 0x00245abf, 0x002a5ec5, 0x00365fcd, 0x00325dc1, 0x001b4e9b, 0x00114090, 0x00143b93, 0x00143091, 0x000c2086, 0x00081b7d, 0x00091b77, 0x000a1771,
- 0x00001967, 0x00001665, 0x00041766, 0x0005155e, 0x00020f4b, 0x00000b42, 0x0003093d, 0x00020636, 0x00000723, 0x00000825, 0x0002092e, 0x00040c31, 0x00030e34, 0x0020191f, 0x0071492c, 0x00b5671a,
- 0x00ba6b00, 0x00b3771a, 0x00804e07, 0x00603103, 0x009a4b15, 0x00b05d0d, 0x00bd650e, 0x00b86a21, 0x00965f0f, 0x00996800, 0x00c4931e, 0x00d09d1b, 0x00ab6d09, 0x00924c02, 0x00853906, 0x00974c12,
- 0x00a25309, 0x006f3100, 0x006b3c1f, 0x00b69e92, 0x00fef9ff, 0x00fffdfd, 0x00ffffff, 0x00ffffff, 0x00f8fff5, 0x00f9fef2, 0x00c8cfdd, 0x0034577f, 0x002e548d, 0x00274b89, 0x001b3872, 0x002c3e6f,
- 0x0010131c, 0x000b0906, 0x00130803, 0x000f0304, 0x000f0401, 0x0028201b, 0x0030292e, 0x004e4e5f, 0x003e629a, 0x00155099, 0x00154e99, 0x00265287, 0x0075665b, 0x0091785d, 0x0078573d, 0x00564231,
- 0x00172f54, 0x00203c78, 0x001f3c7a, 0x005070a3, 0x00577b9f, 0x00264382, 0x001e357f, 0x00263e81, 0x0048769c, 0x0030619e, 0x00225292, 0x00234d85, 0x0049668e, 0x00304159, 0x003a3f52, 0x003e3c45,
- 0x004b5156, 0x008c9cae, 0x006982a3, 0x00476d9f, 0x003468a5, 0x003e65a2, 0x0087a6d8, 0x0096b3cf, 0x00b8dce5, 0x0063819b, 0x008fa7cf, 0x00a9c0ed, 0x008bacc1, 0x0095bdd6, 0x0048729d, 0x00234c91,
- 0x000e4d87, 0x00113d76, 0x0043578e, 0x008c8db2, 0x00878b83, 0x00455356, 0x0012243f, 0x000d2764, 0x0000246a, 0x00123567, 0x00254285, 0x001e40a8, 0x0020578d, 0x001d5890, 0x00255695, 0x002c5393,
- 0x0083a1b7, 0x00849ec0, 0x002b3d7a, 0x00203787, 0x001f4b7c, 0x00465a72, 0x00666069, 0x00847170, 0x00917759, 0x0083694a, 0x0077604b, 0x006c5d56, 0x00464e61, 0x00112444, 0x000b2551, 0x00476398,
- 0x0021261f, 0x00001016, 0x00092c47, 0x00212c62, 0x00362557, 0x00632242, 0x006e2c36, 0x00493617, 0x00352000, 0x003a2512, 0x00563f39, 0x00726665, 0x0082725f, 0x00917c5f, 0x007d664e, 0x00341e18,
- 0x000b0c08, 0x000c1116, 0x000f0e19, 0x0018181a, 0x0018160a, 0x00121303, 0x00242534, 0x002f3b7c, 0x00203b81, 0x00495761, 0x007b7257, 0x0088602c, 0x006a2b2a, 0x0046222f, 0x00150d16, 0x00081e15,
- 0x003d3c1a, 0x007b6442, 0x00976940, 0x00a06322, 0x00966630, 0x007e605a, 0x00615871, 0x00424a6b, 0x00ecfcef, 0x00f5faee, 0x00fefef8, 0x00fdffff, 0x00fefefd, 0x00fef9f7, 0x00837672, 0x0045302d,
- 0x00564233, 0x00684d3f, 0x00785b4c, 0x006d4d3d, 0x008b6c5b, 0x00cabab4, 0x00fffdff, 0x00fffcff, 0x00f9faf3, 0x00f9fbf7, 0x00f2f2f4, 0x00c2c0c4, 0x007d7a7a, 0x007d7675, 0x007a6e6e, 0x00746865,
- 0x00595846, 0x00535443, 0x00524f44, 0x00555048, 0x005c5650, 0x00665e5b, 0x00726767, 0x0079706c, 0x00787564, 0x00787264, 0x00776d5f, 0x00766650, 0x00695745, 0x00624c3b, 0x005c4238, 0x00593d36,
- 0x0051392c, 0x004b362b, 0x004e3832, 0x004f3835, 0x004f3d39, 0x0053432d, 0x00635032, 0x00705a3b, 0x009e8a60, 0x00c7b285, 0x00c5a87d, 0x00be9e73, 0x00c4a974, 0x00bfa46e, 0x00c5a874, 0x00bca16d,
- 0x00b6894c, 0x00a07c3d, 0x00947142, 0x006d512c, 0x002f230f, 0x00232019, 0x000e1419, 0x000d182b, 0x000e243c, 0x00253e5c, 0x0079809e, 0x00b5a9b0, 0x00bdbbcc, 0x00b8c0d7, 0x008e9bbf, 0x00435785,
- 0x00173b6e, 0x00113468, 0x000f2d65, 0x000f2961, 0x000c245d, 0x0010264c, 0x0015274e, 0x00132a4d, 0x000a2947, 0x000a2944, 0x00112947, 0x001d2e49, 0x003c3b50, 0x0050434f, 0x005e4850, 0x006a4a50,
- 0x00704d4a, 0x00704f4f, 0x00755358, 0x0075565f, 0x00705b65, 0x006b5b69, 0x006b5d6f, 0x006a6174, 0x005f6875, 0x00626c7a, 0x006c6d85, 0x00716c87, 0x00706c82, 0x00746f83, 0x00807487, 0x00877986,
- 0x00857978, 0x00847770, 0x0088746b, 0x00846c62, 0x00796354, 0x006e5448, 0x00654840, 0x005a4137, 0x004c3c2f, 0x0045372e, 0x00433639, 0x00453b43, 0x0045424d, 0x00474956, 0x00535367, 0x005c5b70,
- 0x0053676d, 0x005f6f6f, 0x006c7877, 0x00757b75, 0x00797768, 0x007a7561, 0x00777258, 0x00756e4f, 0x00646c3c, 0x00646b3e, 0x00676c4b, 0x006a6f60, 0x0068756e, 0x0067787a, 0x00677d89, 0x00688197,
- 0x005b83a2, 0x005a86a8, 0x00608ab5, 0x006189b8, 0x006187ba, 0x005983ba, 0x005c82bb, 0x00577aac, 0x00506f87, 0x008295a6, 0x00f2fcfe, 0x00f8fafe, 0x00fdfcfd, 0x00f9f7f6, 0x00fffcfc, 0x00cdcbca,
- 0x0027312b, 0x00010500, 0x00090603, 0x00180d05, 0x002b180c, 0x003b2a1a, 0x003d2a22, 0x0030201a, 0x000b0b00, 0x00000200, 0x00010006, 0x00000009, 0x00010009, 0x00000104, 0x00030304, 0x00050405,
- 0x00000400, 0x00000200, 0x00040309, 0x000c0f18, 0x00050a16, 0x00261c12, 0x00876e59, 0x009c7860, 0x006a3c08, 0x00683601, 0x00854c1a, 0x00a26f41, 0x00cd9a6e, 0x00dca374, 0x00d99d6b, 0x00d29260,
- 0x00b89051, 0x00b58645, 0x00b1793b, 0x00a86f30, 0x00986429, 0x00895c2c, 0x006b421a, 0x005a3410, 0x006a4315, 0x00865825, 0x009f6833, 0x00b37433, 0x009d6b44, 0x00664533, 0x00200907, 0x00050005,
- 0x0007160a, 0x000e1e0c, 0x00050908, 0x00020000, 0x0006000b, 0x00030304, 0x00020001, 0x00040306, 0x00000000, 0x00010101, 0x001c1c1c, 0x008d8d8d, 0x00ffffff, 0x00fefefe, 0x00ffffff, 0x00ffffff,
- 0x00f3f9f4, 0x00989d99, 0x00030605, 0x000d0f10, 0x00181b1a, 0x001e2021, 0x00222226, 0x00232226, 0x001c2122, 0x001c2021, 0x001e2126, 0x001f2229, 0x001f2128, 0x00212229, 0x0026252c, 0x0029272c,
- 0x001e2525, 0x00202523, 0x00252729, 0x0027272d, 0x0027282b, 0x0026272e, 0x00282934, 0x00292932, 0x00232b2b, 0x00242c2c, 0x00292b30, 0x00292a30, 0x00282a2e, 0x00292c30, 0x00302f37, 0x00313339,
- 0x00312c18, 0x0026291c, 0x0024282a, 0x00192029, 0x001c1117, 0x00261012, 0x00462931, 0x00554050, 0x00354b77, 0x00235295, 0x002559af, 0x002657b7, 0x00275bb7, 0x002659b7, 0x002658b9, 0x002758b8,
- 0x001f57b0, 0x002156b0, 0x002459b4, 0x002457b4, 0x002254b2, 0x00285ab7, 0x002959ba, 0x00275bb7, 0x002261ae, 0x002563b0, 0x002d61b4, 0x00335cac, 0x005e76b2, 0x00a5b2d9, 0x00dee2ef, 0x00c3c0bf,
- 0x00bcb1bd, 0x00cacadc, 0x008c93b7, 0x004d5f92, 0x002c55a2, 0x002552a8, 0x002d59b4, 0x002b51a3, 0x00365c86, 0x00264b60, 0x00020f1a, 0x00090708, 0x000a090a, 0x000c0b0b, 0x000b0a0c, 0x000b0c0d,
- 0x00090906, 0x00090a07, 0x000b0b0a, 0x000c0c0c, 0x000b0b0c, 0x000a0a0b, 0x000a0a0b, 0x0009090a, 0x00040804, 0x00060805, 0x000a0a08, 0x00090807, 0x00090808, 0x00242424, 0x00afaeaf, 0x00f8f6f7,
- 0x00bcbab1, 0x00373932, 0x00353c37, 0x0032413c, 0x00283730, 0x00353d2f, 0x00605c44, 0x00867550, 0x008d6631, 0x009e6e2f, 0x00c29051, 0x00ba9157, 0x008a6631, 0x006d4d1a, 0x00866d3e, 0x00958253,
- 0x00977f54, 0x00a78964, 0x00926f43, 0x00835a31, 0x005b2b09, 0x002a100c, 0x00170c0d, 0x00251b21, 0x002c262f, 0x00302b30, 0x00474542, 0x0075736f, 0x00b5b5aa, 0x00c5c2bf, 0x00b3afb5, 0x00b1acb8,
- 0x00c78f70, 0x00a7725c, 0x00ad7f74, 0x00dfbebf, 0x00f8e8f8, 0x00f7ebfd, 0x00f2ebff, 0x00efedfe, 0x00ebeff9, 0x00eae8f1, 0x00e3e8ed, 0x00dceaed, 0x00e3e1eb, 0x00e8dbea, 0x00e8d5e7, 0x00e6d2e6,
- 0x00dad5e4, 0x00dbdceb, 0x00d8e1ed, 0x00d7e1e9, 0x00d7dbe5, 0x00d3d3eb, 0x00cdc7e8, 0x009592b1, 0x0033314c, 0x00292b42, 0x000b0f22, 0x00101426, 0x00131e22, 0x00142220, 0x0022342b, 0x00293a2d,
- 0x0027422e, 0x003d4b3d, 0x005b5b56, 0x00605156, 0x003a2638, 0x0012081c, 0x000a061c, 0x00020721, 0x00000b24, 0x0000132d, 0x000b112f, 0x00524566, 0x00cbc0d6, 0x00b1abb6, 0x003e3938, 0x00232017,
- 0x00272314, 0x002b2917, 0x00312b1a, 0x00372a22, 0x003c2a28, 0x00432f30, 0x00463331, 0x004b3431, 0x0056352f, 0x005b362c, 0x005e352b, 0x005b3128, 0x004d2b24, 0x00422623, 0x0034201e, 0x00271a19,
- 0x0015180f, 0x0015140d, 0x00160f0d, 0x00190e0e, 0x0017070b, 0x0017060a, 0x0018070b, 0x001b0a0d, 0x00140c09, 0x00140c09, 0x00160d0a, 0x001b110b, 0x0021130e, 0x00271513, 0x002e1917, 0x00351e1a,
- 0x0037221e, 0x003a2520, 0x00392a23, 0x00352a21, 0x002c2619, 0x00777670, 0x00fdfffd, 0x00fdfefc, 0x00fafbfc, 0x00ffffff, 0x00fdfcfe, 0x00cdccca, 0x00727474, 0x00858686, 0x00c2c3c2, 0x00e4e3e4,
- 0x00f4f4f8, 0x00f5f6f8, 0x00f7f7f9, 0x00f6f6f8, 0x00f4f4f6, 0x00f4f3f5, 0x00f4f3f6, 0x00f4f3f6, 0x00f3f3f4, 0x00f3f3f7, 0x00f2f2f6, 0x00f4f6f5, 0x00f5f6f5, 0x00f3f4f4, 0x00f5f5f5, 0x00f5f4f5,
- 0x00f3f4f3, 0x00f5f4f5, 0x00f6f5f6, 0x00f4f6f6, 0x00f4f6f7, 0x00f0f8f6, 0x00eef8f5, 0x00f1f9f6, 0x00f1f7f6, 0x00f2f6f7, 0x00f4f5f9, 0x00f6f6fb, 0x00f3f6f9, 0x00f1f9f8, 0x00eff9f5, 0x00eefaf3,
- 0x00f9f7fa, 0x00f8f5f8, 0x00f8f7f8, 0x00f9f7fa, 0x00faf7f8, 0x00f6f5f5, 0x00f3f4f1, 0x00f3f3f0, 0x00edf0e9, 0x00eff2eb, 0x00eef1ec, 0x00eff4f4, 0x00f0f5f3, 0x00f5f7f5, 0x00f4f9f5, 0x00f5f8f4,
- 0x00f4f7f5, 0x00f4f7f6, 0x00f4f5f6, 0x00f4f4f9, 0x00f4f5fa, 0x00eef8f6, 0x00eaf9f4, 0x00ecf7fb, 0x00f1f3fc, 0x00eff5fd, 0x00ecf8fd, 0x00e8fafb, 0x00e6faf7, 0x00ebf9f8, 0x00f2f5fa, 0x00f6f1fc,
- 0x00f8f3f2, 0x00f4f5f7, 0x00eef6fa, 0x00eaf9fe, 0x00ebf7fb, 0x00f6fafc, 0x00fbfaf9, 0x00fef8f1, 0x00f9f4f4, 0x00f8f3f8, 0x00f4eff5, 0x00f1edef, 0x00ecebea, 0x00ecedeb, 0x00eaefe9, 0x00e7eee9,
- 0x00eaf2ea, 0x00ebf0ec, 0x00edf0f1, 0x00edf0f2, 0x00efeef2, 0x00eef0f1, 0x00eff1f1, 0x00f0f1f0, 0x00eff2ee, 0x00f0f2f0, 0x00f0efef, 0x00efefef, 0x00edeeed, 0x00eef0ee, 0x00eeefee, 0x00eceeed,
- 0x00f0f0f0, 0x00f5f6f5, 0x00fbfafa, 0x00fffefd, 0x00fbfdfb, 0x00fbfffd, 0x00fbfdfb, 0x00d2d2d1, 0x0040413f, 0x00070705, 0x0006050a, 0x00090c12, 0x000d110f, 0x000e1108, 0x00181c09, 0x0025280a,
- 0x00332e12, 0x00362f14, 0x003d331c, 0x003d3220, 0x003f3322, 0x00403b24, 0x0039381c, 0x003d3a1f, 0x0045432e, 0x0054533f, 0x00a29e8e, 0x00eeeadc, 0x00fefff5, 0x00fcfef6, 0x00fdfbf6, 0x00fdfcf6,
- 0x00d6dbda, 0x008d908f, 0x00858887, 0x00a1a3a2, 0x006a6d6a, 0x002c3230, 0x0025292d, 0x00272c35, 0x00242b38, 0x00272c3d, 0x0029314a, 0x00253459, 0x0024365f, 0x00223764, 0x001d356a, 0x00193371,
- 0x00112e75, 0x000f2a77, 0x000c2576, 0x000d2575, 0x000c2276, 0x00071d77, 0x00081e75, 0x000d246e, 0x00182551, 0x00262d47, 0x00383640, 0x003d3630, 0x003c301f, 0x0040311c, 0x00483922, 0x004a3c23,
- 0x004a3625, 0x00513b29, 0x00563e29, 0x00604630, 0x00715839, 0x00836748, 0x009a7c59, 0x00ab8c61, 0x00b39264, 0x00be9b6f, 0x00aa9a7c, 0x00596a76, 0x00183894, 0x001e48cc, 0x001647d3, 0x00184ac5,
- 0x002d49ac, 0x003347b5, 0x002f4abe, 0x002c56cc, 0x00246fce, 0x00366ed1, 0x003361c0, 0x002554a9, 0x001a4690, 0x00143d89, 0x000e3284, 0x000a2880, 0x00061c78, 0x00061971, 0x0008186a, 0x000a1665,
- 0x0005176c, 0x00031565, 0x00041661, 0x00051359, 0x00000e47, 0x00000a3c, 0x00010835, 0x0000052d, 0x00000525, 0x00010725, 0x0000092c, 0x00000d36, 0x00041331, 0x002f201d, 0x0078441f, 0x00a34d00,
- 0x00a45202, 0x00814a09, 0x005e3b04, 0x00653b15, 0x009a4918, 0x00a34c08, 0x009f4a07, 0x00974914, 0x007d4119, 0x00905e0d, 0x00c1951e, 0x00be8d08, 0x009f6001, 0x0090480f, 0x00772d04, 0x00823815,
- 0x00913d05, 0x00631f00, 0x006c3b22, 0x00bca29b, 0x00fefaff, 0x00fdfbfc, 0x00fdfdfe, 0x00fdfefe, 0x00fffffc, 0x00fefff9, 0x00cccedc, 0x005b6598, 0x005c69a7, 0x00525c9f, 0x002d336e, 0x004b4173,
- 0x004b2c3f, 0x00431e1f, 0x0043160c, 0x003e0f09, 0x00401616, 0x00443033, 0x003f3545, 0x00484963, 0x00305499, 0x00124da3, 0x000d4c9d, 0x001f4986, 0x005c4e4a, 0x0076594a, 0x005a3f2f, 0x003f3030,
- 0x000c2d65, 0x00234591, 0x001c4389, 0x001a457a, 0x001a3e64, 0x00182f71, 0x00223680, 0x0014296b, 0x002a557b, 0x003561a0, 0x001f4f90, 0x0019437b, 0x00152f54, 0x002f384d, 0x004f4c59, 0x005e5051,
- 0x005a5055, 0x00818396, 0x007d8dae, 0x004d6ea3, 0x0024569f, 0x003a609f, 0x004f709e, 0x007498ae, 0x00afcada, 0x00556c8f, 0x006478a4, 0x008aa1cb, 0x0090b2c2, 0x0090bacd, 0x002e5d80, 0x00184784,
- 0x00144e89, 0x001f477e, 0x00526691, 0x009695ab, 0x007e836c, 0x00445147, 0x00102532, 0x00042453, 0x00082461, 0x00112a58, 0x001a2e6a, 0x001f38a3, 0x00145283, 0x000c588c, 0x00125b94, 0x0012508b,
- 0x006685a3, 0x008c9ec9, 0x0033427a, 0x00293f8b, 0x001b5173, 0x002a3e52, 0x00433f45, 0x0067564e, 0x007f5b3c, 0x00765333, 0x00775a3f, 0x009b887a, 0x008e93a2, 0x002a3c5a, 0x0008234a, 0x00335081,
- 0x00363a31, 0x00031317, 0x0009283f, 0x00272e64, 0x003d2154, 0x006c1d42, 0x007a2f39, 0x00493213, 0x00331c00, 0x00412614, 0x004c362d, 0x004f4541, 0x003e331b, 0x00927d60, 0x0058472c, 0x00231503,
- 0x00151519, 0x00111520, 0x000d1620, 0x000c1418, 0x00161709, 0x00171805, 0x000f0d23, 0x00252b78, 0x002e3a88, 0x00747376, 0x00947c4d, 0x009a651d, 0x0073271c, 0x0044141b, 0x00140a03, 0x00233912,
- 0x00796e29, 0x00926e41, 0x0093642b, 0x00a2681b, 0x0080561e, 0x00503a47, 0x00373262, 0x00263665, 0x00f0fdf9, 0x00f7f8f9, 0x00fefcfd, 0x00fcfefe, 0x00fcfdf9, 0x00fdf9f6, 0x00786c67, 0x00453029,
- 0x0060473f, 0x00725448, 0x007f5f50, 0x00745240, 0x00967663, 0x00d7c7c1, 0x00fdfcfd, 0x00fffdfc, 0x00faf9f7, 0x00fefdfc, 0x00ebe9ec, 0x00b8b6b9, 0x00757272, 0x00797473, 0x00746e6c, 0x006f6764,
- 0x005f5d4f, 0x005b584c, 0x0057544c, 0x00595550, 0x00615b59, 0x006b6463, 0x00766e6c, 0x007e7573, 0x0080776f, 0x007c756b, 0x007c7064, 0x007b6a56, 0x006d5b49, 0x00644e3e, 0x005b4236, 0x00533a2f,
- 0x00523831, 0x004d332f, 0x00462f2d, 0x00463230, 0x004a3933, 0x0052452c, 0x005d512c, 0x00807047, 0x00a89364, 0x00b49e6b, 0x00c4aa75, 0x00c0a570, 0x00b19a5c, 0x00a18c4c, 0x00a38d4c, 0x00a08a48,
- 0x00ab783a, 0x009e7439, 0x0082602a, 0x004f370b, 0x00211a00, 0x00121304, 0x00091111, 0x00020c1a, 0x00001030, 0x000d2450, 0x00304067, 0x007c7189, 0x00b6b4cf, 0x008d92b1, 0x003c4e71, 0x001b345e,
- 0x00173769, 0x0014326c, 0x00112b67, 0x000d2462, 0x00051b5b, 0x00091b46, 0x000f213c, 0x000f223e, 0x000e2544, 0x000e2642, 0x0011263f, 0x0028354c, 0x00514d5d, 0x0061515b, 0x00634b51, 0x006a4b4a,
- 0x0077494b, 0x00774d4f, 0x00795156, 0x0077555b, 0x00735a62, 0x006f5d68, 0x006d6170, 0x006b6575, 0x006a6d7b, 0x00696f7e, 0x006f6e86, 0x00736b88, 0x00726b83, 0x00756c80, 0x007c6e7e, 0x0080717a,
- 0x00847276, 0x00897473, 0x008f7771, 0x008e7669, 0x00876e5f, 0x007a5f51, 0x006a4e43, 0x005c4237, 0x004f3932, 0x00463633, 0x00403338, 0x003f373f, 0x0043404e, 0x00454756, 0x004b5062, 0x00535a6d,
- 0x00607586, 0x00758693, 0x008d9aa3, 0x00969e9d, 0x0095988d, 0x008f8f7c, 0x0086856a, 0x007c785a, 0x006f714d, 0x006b704b, 0x00696f53, 0x00687266, 0x00667875, 0x00647b81, 0x00637f8f, 0x0062849d,
- 0x005c85a9, 0x005d88b1, 0x005f8ab8, 0x006089ba, 0x006188bb, 0x005884bc, 0x005681b9, 0x005479ab, 0x00557192, 0x008d9cb4, 0x00f5fdff, 0x00f9fbfc, 0x00fefcfc, 0x00f9f9f5, 0x00fcfdf8, 0x00c0c2bc,
- 0x00222629, 0x00020505, 0x000c0903, 0x001f1609, 0x00281808, 0x003a2a18, 0x003b2c1d, 0x002f2618, 0x00120f0a, 0x00030603, 0x00000202, 0x00010100, 0x00040100, 0x00040300, 0x00050502, 0x00050300,
- 0x00030000, 0x00050102, 0x00080006, 0x000a0514, 0x000c081c, 0x002c1b1a, 0x008e735d, 0x00a17d5f, 0x00834f22, 0x0092582a, 0x00a66a3d, 0x00bb855a, 0x00c49268, 0x00c69165, 0x00c58c5b, 0x00c48a56,
- 0x00b58a4a, 0x00b48543, 0x00b07b38, 0x00a97430, 0x0098672a, 0x008d622e, 0x00684113, 0x005c390d, 0x00744614, 0x008b5523, 0x00ac7138, 0x00b87738, 0x008b5836, 0x00412016, 0x00130104, 0x00020406,
- 0x000b1900, 0x000a1a02, 0x00000600, 0x00020000, 0x000a0111, 0x0006030b, 0x00020103, 0x00020202, 0x00000000, 0x00020202, 0x001d1d1d, 0x008d8d8d, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00f6f9f8, 0x009a9e9b, 0x00040706, 0x000d1010, 0x00191b1b, 0x001e2021, 0x00222326, 0x00222325, 0x00212327, 0x00202224, 0x00202226, 0x00202326, 0x001f2325, 0x00202327, 0x0024262b, 0x0026272c,
- 0x0028282c, 0x0028292c, 0x00292a30, 0x00282a30, 0x00272b2f, 0x00232b2f, 0x00222c34, 0x00222d36, 0x00202e31, 0x00222f32, 0x00273135, 0x00283235, 0x00252f2f, 0x00212b29, 0x00232b2a, 0x00252e2d,
- 0x00382c1b, 0x002d2e26, 0x00222d31, 0x001f2932, 0x00382a25, 0x004d281a, 0x005c2d1d, 0x005a3126, 0x002e3458, 0x00174282, 0x001853a5, 0x002457b6, 0x00265ab9, 0x002659b7, 0x002358b4, 0x002658b4,
- 0x002a5bb7, 0x002b59b9, 0x002959b7, 0x00275ab8, 0x002759b9, 0x002455b7, 0x001d4cb0, 0x001d50b0, 0x00255db3, 0x002b61b6, 0x002a5eae, 0x003c65af, 0x008fa3d6, 0x00ccd3ee, 0x00cdced2, 0x00b5aa9d,
- 0x00a87482, 0x00be98ad, 0x00ccb9d8, 0x009593c2, 0x00445caa, 0x002d4da6, 0x00264fa7, 0x00204d9c, 0x002c5580, 0x0021445b, 0x0003111c, 0x0008090a, 0x00090808, 0x000a0a09, 0x00090909, 0x00090807,
- 0x00090a09, 0x000a0a0a, 0x000b0b0b, 0x000b0b0b, 0x000b0b0b, 0x0009090a, 0x00080808, 0x00080808, 0x00070707, 0x00090908, 0x000a0a09, 0x000d0d0c, 0x000c0d0b, 0x002c2c2b, 0x00b6b6b5, 0x00f8f8f7,
- 0x00b5b8b7, 0x00373a3a, 0x00383c3d, 0x00313538, 0x00383537, 0x00433a33, 0x0071604c, 0x00775c38, 0x00744c17, 0x009e7331, 0x00c69c59, 0x00af9053, 0x008d672a, 0x009f7c39, 0x00bd9756, 0x00b3904f,
- 0x00775821, 0x006b5026, 0x005c3f27, 0x003f2719, 0x00240b10, 0x000b0f02, 0x00111503, 0x003a1409, 0x004c2b35, 0x00514b5b, 0x00908a9a, 0x00d2b3b0, 0x00f9d899, 0x00f6cf89, 0x00f2bb83, 0x00f5a08a,
- 0x00f68d41, 0x00e4843c, 0x00ce7c4d, 0x00e5ab9c, 0x00fae1ff, 0x00efe6fa, 0x00ebeaf2, 0x00eef2de, 0x00f2eee8, 0x00f4e7f5, 0x00efe4fa, 0x00e6e9f3, 0x00e7e8f2, 0x00e9e8f6, 0x00e7e4f5, 0x00e6e3f4,
- 0x00dcdee8, 0x00dee0ec, 0x00e0e2ef, 0x00dbdbe9, 0x00d9dae9, 0x00ced2e9, 0x00d1d3e4, 0x009b9b9a, 0x00343c7f, 0x002945a5, 0x00082d82, 0x00012647, 0x001b1f27, 0x003a3447, 0x00545465, 0x00495b59,
- 0x005c6573, 0x0073757f, 0x007d767e, 0x00756970, 0x003d3245, 0x000c0926, 0x00060c33, 0x00000d3e, 0x00010a45, 0x00031450, 0x001d2b56, 0x006c737f, 0x00d3d7f6, 0x00abaed6, 0x003b3d67, 0x001a1e3c,
- 0x001c2220, 0x0020271c, 0x0020231a, 0x00262621, 0x0027242a, 0x002f2d2d, 0x00363331, 0x00433b35, 0x00553930, 0x0058392c, 0x005a3929, 0x00573424, 0x00492d1d, 0x003c2719, 0x002e1f12, 0x0020190c,
- 0x00131208, 0x00100e04, 0x000f0c04, 0x000f0b03, 0x00100906, 0x000f0703, 0x00100804, 0x00120903, 0x00150908, 0x00150909, 0x00180b0a, 0x001a0d0a, 0x001d0f0c, 0x00221211, 0x00291915, 0x002d1e17,
- 0x00302517, 0x00362919, 0x003c2d1c, 0x00382c1a, 0x00372818, 0x0079766c, 0x00fefdf9, 0x00fdfdfa, 0x00fffcfd, 0x00fdfdfc, 0x00fafefa, 0x00b6c2bc, 0x0038535b, 0x0041647d, 0x00709ac4, 0x0084b3ec,
- 0x008bc0ef, 0x008cc1f0, 0x008dc1f1, 0x0089bded, 0x0083b7e8, 0x0080b4e5, 0x0080b4e4, 0x007fb3e4, 0x007db0de, 0x007bb0e0, 0x007ab3da, 0x007bb8d4, 0x007cb8d4, 0x007ab3d4, 0x007cb3d6, 0x0081b7dd,
- 0x0083b7dd, 0x0086b7e1, 0x0084b5e1, 0x0082b1df, 0x0084b2e0, 0x0087b1dd, 0x0086b4d9, 0x008db9de, 0x009ac9ed, 0x009bcfef, 0x009dd2ee, 0x009ad1ea, 0x009ed2eb, 0x009ecfeb, 0x00a2cded, 0x00a2cdef,
- 0x0089d6f6, 0x0096d2f2, 0x00aecdec, 0x00bfc5da, 0x00c4a8b1, 0x00ba9b97, 0x00b39388, 0x00a28879, 0x00868573, 0x00808a79, 0x00869283, 0x00849288, 0x00a29b96, 0x00b6a9ac, 0x00c1b9ca, 0x00b8bcdd,
- 0x0092c8f2, 0x0087c9f4, 0x0085c6f6, 0x008dc2ee, 0x009cbfde, 0x0095c1e3, 0x0090c0ea, 0x0090bfe7, 0x008dbfe6, 0x008abde3, 0x0086bbe1, 0x0087bce1, 0x0087b9de, 0x0089b7dc, 0x008bb4da, 0x008bb2d8,
- 0x0088b3d7, 0x0088b5de, 0x008bb9e1, 0x0085b3d9, 0x008fb9db, 0x00b1d5eb, 0x00d3edfa, 0x00cedce3, 0x00e0ddd8, 0x00e0d9cf, 0x00aa9c8f, 0x0083735d, 0x007c6f5f, 0x007e7667, 0x006d6d64, 0x00737976,
- 0x006c7470, 0x006d7372, 0x00757875, 0x007c7d76, 0x00857f7a, 0x00848684, 0x00848a8b, 0x00888d8f, 0x008b8e97, 0x00878992, 0x0081838c, 0x007d7f89, 0x00797a83, 0x007c7b83, 0x00838489, 0x008c8f92,
- 0x00939290, 0x00b4b5b2, 0x00faf9f6, 0x00fdfbf8, 0x00fefffb, 0x00fcfefa, 0x00fefffb, 0x00d4d3d0, 0x00454246, 0x0008060b, 0x000a090d, 0x00070c0b, 0x000c120f, 0x000c0f0b, 0x0011150c, 0x001b1c11,
- 0x00202010, 0x00272917, 0x0033331f, 0x0035361e, 0x003a351e, 0x0039331f, 0x003a311d, 0x003e341c, 0x00453c1f, 0x00575338, 0x00a19d8a, 0x00ebe9de, 0x00fdfdfd, 0x00fdfcfe, 0x00fefcfd, 0x00fcfbfb,
- 0x00d2ded1, 0x008b928b, 0x00858889, 0x00a6a1a7, 0x00756c6f, 0x003a352d, 0x00302f25, 0x002f332a, 0x002d3339, 0x002c3340, 0x002d344a, 0x002b3253, 0x0029325a, 0x002a3667, 0x0026366f, 0x001f3374,
- 0x0015307a, 0x000e2d78, 0x00092775, 0x00082575, 0x00072473, 0x000a206c, 0x0011206d, 0x00152470, 0x00182a6d, 0x001d3066, 0x00223560, 0x001e2f49, 0x001c2831, 0x001f2723, 0x0023291a, 0x00222611,
- 0x001c1e15, 0x001b1937, 0x001a1844, 0x00191d33, 0x00202a22, 0x00273131, 0x00373e3b, 0x004b5138, 0x006c6839, 0x00776a63, 0x005f5b88, 0x00233ea7, 0x00193fb1, 0x001c4fc6, 0x001150ca, 0x00084fc9,
- 0x001956b4, 0x002b51a1, 0x00556aaf, 0x007382c0, 0x007b8acd, 0x00567bd0, 0x002f57b6, 0x001a409e, 0x001a368f, 0x00193085, 0x00102374, 0x000d1d6d, 0x000a1769, 0x000b186b, 0x0008166b, 0x0007146a,
- 0x00011860, 0x00001658, 0x00051353, 0x00060f4c, 0x0006093d, 0x00040835, 0x00030730, 0x0000052b, 0x0000062d, 0x00000831, 0x00050929, 0x00070615, 0x001b130f, 0x003c2e14, 0x00563e19, 0x00654115,
- 0x006a3c08, 0x00642d01, 0x00612500, 0x00682c01, 0x007b3a09, 0x00853c06, 0x008b3f04, 0x00843602, 0x00833600, 0x009d520e, 0x00b46e26, 0x00a16010, 0x008d4e05, 0x00854300, 0x00914f0a, 0x00945212,
- 0x00723605, 0x00511b00, 0x006e4020, 0x00ccae9b, 0x00fefdf2, 0x00fafdf7, 0x00fbfffd, 0x00fbfdff, 0x00fefcff, 0x00fafdf9, 0x00c6c1c6, 0x005f5663, 0x006f4254, 0x006f232e, 0x007e1521, 0x0093151e,
- 0x00991b20, 0x008b1f28, 0x00792733, 0x006a3444, 0x007d6a82, 0x00364a7f, 0x001e428f, 0x001b4898, 0x000f429b, 0x00114296, 0x001d458c, 0x00233f74, 0x003e4065, 0x003e3a57, 0x00403953, 0x00312a43,
- 0x00092456, 0x0015336c, 0x00284489, 0x00274692, 0x001b3c8d, 0x0018387f, 0x00122e6d, 0x002a4177, 0x002e3a5c, 0x004b5470, 0x00222438, 0x0036303e, 0x00493840, 0x005b4243, 0x00604341, 0x006f5452,
- 0x005d4f58, 0x00484969, 0x0031417a, 0x002a4d9c, 0x002f60c8, 0x005d80ba, 0x007a94b4, 0x007994b2, 0x009fb8d0, 0x00607a92, 0x00748ea9, 0x00365168, 0x00708aa8, 0x007d97b7, 0x00233d65, 0x001d3862,
- 0x001c3979, 0x00213564, 0x00687498, 0x0099a4ae, 0x008c9993, 0x0058726e, 0x000b262f, 0x0006263f, 0x00092457, 0x00142f64, 0x000f2164, 0x00192c74, 0x002b4389, 0x002f4e8a, 0x00233e82, 0x00113070,
- 0x002d4e8a, 0x00345696, 0x002a458b, 0x00273f89, 0x0017297a, 0x001d2549, 0x002b2b39, 0x003a3542, 0x004c4043, 0x00473f3e, 0x00656262, 0x006f7076, 0x00687495, 0x00203161, 0x001a316f, 0x00415ba5,
- 0x00387585, 0x000d3858, 0x001e3565, 0x00282866, 0x003f1f50, 0x00512a3d, 0x00603633, 0x005e341d, 0x00512c0d, 0x004d2c12, 0x004d4038, 0x002d4c5d, 0x004f4d4c, 0x00847866, 0x0047351e, 0x00160900,
- 0x0005150f, 0x00031c1a, 0x00091718, 0x000d0e09, 0x00290d03, 0x000f0c00, 0x000d1115, 0x001e2746, 0x004e5e97, 0x00667a9c, 0x005f7079, 0x0056624b, 0x00484220, 0x001f1407, 0x0013060b, 0x00473450,
- 0x009e6b5a, 0x008e6654, 0x008a7164, 0x00726d65, 0x0033455a, 0x0019305c, 0x000c285b, 0x002a4172, 0x00f2fbfc, 0x00fbfdf1, 0x00fffef5, 0x00f9fafe, 0x00fefeff, 0x00fdfbf8, 0x00655950, 0x00493525,
- 0x00684634, 0x00754e3f, 0x007c5748, 0x006f5142, 0x00957e72, 0x00dcd4d0, 0x00fbfcfd, 0x00fffefe, 0x00fffeff, 0x00fefdfd, 0x00eaeaea, 0x00a3a4a5, 0x006e6e6f, 0x00707071, 0x00707071, 0x006c6b6a,
- 0x00625f5f, 0x00615c5d, 0x00605b5d, 0x00605c5d, 0x00635f60, 0x00686863, 0x0072756b, 0x007c7f76, 0x007c8179, 0x00787b73, 0x00727369, 0x00736c61, 0x006e605b, 0x00675453, 0x005a4545, 0x00523b39,
- 0x004c372f, 0x0049332a, 0x00453126, 0x00453327, 0x004b3b2a, 0x004f4124, 0x00776a43, 0x00b5a577, 0x00b5a06d, 0x00a28954, 0x00bb9c6a, 0x00ba976b, 0x00aa8755, 0x00a28047, 0x009a7a36, 0x009a7b2d,
- 0x009e7639, 0x00987745, 0x00654b2d, 0x00352415, 0x00151011, 0x00050706, 0x00050a08, 0x00030809, 0x00030105, 0x00140c19, 0x0035283f, 0x004c395b, 0x004f4e7f, 0x00313e77, 0x00112c6d, 0x0011347a,
- 0x000e2d71, 0x00112b67, 0x00132658, 0x00132546, 0x000f1f32, 0x000d1938, 0x000f1a3a, 0x000a1a36, 0x000a1e2e, 0x000f262f, 0x00182e32, 0x003d4d4c, 0x00706d75, 0x00726173, 0x006e566b, 0x00705068,
- 0x00794e44, 0x007a5149, 0x007d5450, 0x007b5556, 0x0079595d, 0x00765b61, 0x00765f65, 0x00756468, 0x00766771, 0x00726a6f, 0x00746770, 0x0075606d, 0x00765e6b, 0x007b626e, 0x00806672, 0x00816771,
- 0x00826c6b, 0x00856d6c, 0x0089716f, 0x008a736f, 0x008a716e, 0x00806a65, 0x00725f58, 0x0067554c, 0x005a4a3f, 0x004c4138, 0x00423a31, 0x003e3933, 0x003d3c42, 0x003b3c49, 0x0046485d, 0x005c607c,
- 0x0073899b, 0x008fa0b0, 0x00a7b2be, 0x00aeb5b8, 0x00afb3af, 0x00a5a8a0, 0x0093978d, 0x0084877f, 0x00777d7f, 0x006e7779, 0x00677177, 0x00657181, 0x0066758a, 0x00667895, 0x00647c9e, 0x006381a4,
- 0x006084aa, 0x005e86ae, 0x005f88b5, 0x005e88b4, 0x005f87b7, 0x005586bb, 0x004e81b7, 0x004c78a6, 0x005a7598, 0x009eacc4, 0x00f7fffe, 0x00fbfdfb, 0x00fbf8f8, 0x00fffdfc, 0x00f7f8f8, 0x00afb0af,
- 0x001d1d25, 0x00050609, 0x00131211, 0x00181812, 0x002f2528, 0x00352830, 0x003b2a39, 0x00372437, 0x001d161d, 0x000a120b, 0x00020b03, 0x00000100, 0x00010000, 0x00010001, 0x00020204, 0x00060405,
- 0x00050304, 0x00020404, 0x00020202, 0x00070707, 0x000b0b0b, 0x001b1603, 0x00706344, 0x00ae9472, 0x00bc9064, 0x00c69567, 0x00c69363, 0x00c49665, 0x00bf9261, 0x00bf8f5a, 0x00bf8b4f, 0x00bb8642,
- 0x00ba883f, 0x00b78540, 0x00b38042, 0x00a9763d, 0x00996736, 0x008c5b31, 0x0076471e, 0x006a3c15, 0x007a4927, 0x00895a32, 0x008c6040, 0x006f4c32, 0x00402414, 0x001a0d02, 0x00090306, 0x00060a06,
- 0x00030c0a, 0x00000402, 0x00010206, 0x00010001, 0x00050002, 0x00030003, 0x00010001, 0x00030304, 0x00020202, 0x00020202, 0x001d1d1d, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00f8f9fc, 0x009c9e9f, 0x00050808, 0x000e1112, 0x001a1c1e, 0x001f2123, 0x00222426, 0x00212524, 0x00242529, 0x00212426, 0x00202326, 0x00202426, 0x00212426, 0x00232528, 0x0024272a, 0x0025282a,
- 0x00262827, 0x00262829, 0x0028292c, 0x0029282d, 0x002c2a2e, 0x002b292d, 0x002b2a2f, 0x002c2d32, 0x002f2f32, 0x002e3034, 0x002f3136, 0x002e3237, 0x002c3036, 0x00292f34, 0x00272c33, 0x00252d34,
- 0x001e2b3b, 0x00222e36, 0x0026292c, 0x00241e17, 0x004e3b2b, 0x00594128, 0x005c3d28, 0x00553523, 0x004f2e27, 0x00432929, 0x003b2937, 0x00293758, 0x00364376, 0x0033497f, 0x00374e8c, 0x00355395,
- 0x002f58a2, 0x002b58a8, 0x00305bb0, 0x002f5ab3, 0x002f5db9, 0x00295cb6, 0x001c4ea4, 0x00234e9e, 0x002d5199, 0x002c4f9e, 0x003758a7, 0x00355ba6, 0x0090a8df, 0x00b7c7e1, 0x00b9bec0, 0x0093927f,
- 0x005f534c, 0x00897b79, 0x00c4b4be, 0x00c6b9cf, 0x006473ab, 0x0022478d, 0x001a4d97, 0x00144c94, 0x00224774, 0x001a374f, 0x00020d18, 0x00040606, 0x000a090b, 0x00090908, 0x0009090a, 0x000a0808,
- 0x000b0b0b, 0x000b0b0b, 0x000b0b0b, 0x000b0b0b, 0x000b0b0c, 0x000a0a0c, 0x0009080b, 0x0009080b, 0x000c0a0b, 0x000e0e0f, 0x00101111, 0x00121412, 0x000f100e, 0x00363633, 0x00bfbfbd, 0x00f6f7f4,
- 0x00b7b9b9, 0x00323535, 0x00303333, 0x00323539, 0x003e3b3d, 0x00514740, 0x006a5843, 0x006d5230, 0x00815921, 0x00a97c3c, 0x00cba45d, 0x00c8a969, 0x00c9a867, 0x00d9b675, 0x00cca96d, 0x00a48249,
- 0x008a6c3e, 0x00725834, 0x00543c25, 0x00332214, 0x00130603, 0x00070c00, 0x000e1502, 0x00401f12, 0x005e5056, 0x007d8795, 0x00d1d2dd, 0x00e7c0c3, 0x00ea925d, 0x00ea985b, 0x00efa96c, 0x00e5a37c,
- 0x00e9946a, 0x00e09467, 0x00e3ad89, 0x00e6c5ba, 0x00e1e1fe, 0x00e8ecfd, 0x00e9edf4, 0x00f1eadb, 0x00efe7db, 0x00efebf3, 0x00edeffb, 0x00eaecf7, 0x00e8e9f4, 0x00e8e6f6, 0x00eaebf4, 0x00ebecfa,
- 0x00e7e7f4, 0x00e6e7f4, 0x00e3e5f2, 0x00e1e3ed, 0x00dfe0ea, 0x00dfe4f6, 0x00e6e7f3, 0x00c1beb7, 0x00545c9c, 0x003651b0, 0x00194096, 0x00113962, 0x00383d46, 0x00665f75, 0x008b8b9b, 0x00859696,
- 0x008f98a9, 0x009c9fad, 0x00a39ba8, 0x0091848f, 0x003f3447, 0x00181533, 0x0010173f, 0x00020f40, 0x00071243, 0x002c3b6e, 0x006a769b, 0x00aaaebd, 0x00cdceee, 0x00acadd2, 0x0066698c, 0x004a4f6a,
- 0x00212728, 0x001a2017, 0x001c1f14, 0x001c1e19, 0x00201e26, 0x00262427, 0x00302e2b, 0x003d3531, 0x004f382f, 0x0055392c, 0x00583929, 0x00563524, 0x004a2e1e, 0x003d2718, 0x002d1f10, 0x0021190b,
- 0x00131109, 0x000f0c04, 0x000c0901, 0x000d0904, 0x000d0702, 0x000e0604, 0x000f0703, 0x00120703, 0x00130808, 0x00140909, 0x00170a0b, 0x00180a09, 0x00190a09, 0x001e0f0c, 0x00241610, 0x00281b11,
- 0x002e2215, 0x00352819, 0x003c2d1c, 0x003a2e1b, 0x00362817, 0x007a766b, 0x00fefdf8, 0x00fdfefb, 0x00fffafa, 0x00fffdfc, 0x00fafcf8, 0x00b3bdb9, 0x002b4651, 0x002b516d, 0x004776a2, 0x00568ac7,
- 0x005f9acb, 0x00609acc, 0x005d97ca, 0x005892c6, 0x00528bc0, 0x004d86bb, 0x004b85b9, 0x004c86b9, 0x004b83b7, 0x004782b8, 0x004381b0, 0x004587aa, 0x004686ab, 0x004482a9, 0x004984ad, 0x004c86b0,
- 0x005486b6, 0x005489ba, 0x005186b8, 0x004f81b4, 0x005083b5, 0x004c85b2, 0x00548fb7, 0x00659ac3, 0x0076a8cf, 0x007bacd3, 0x007eacd4, 0x007eadd4, 0x0082b5db, 0x007db3d9, 0x0079b0d7, 0x0079b3d9,
- 0x007ab9e1, 0x0089b8db, 0x0087a6bf, 0x00898e9f, 0x00877376, 0x007b605b, 0x0063473d, 0x004f3929, 0x003f3c2b, 0x003f4234, 0x00414a39, 0x00474c41, 0x00635953, 0x007e6d73, 0x00928c9d, 0x00919bbd,
- 0x006fa5dd, 0x0061a5dd, 0x0059a0d6, 0x005f9dcd, 0x006f97b9, 0x006896c0, 0x005f93c1, 0x005f94be, 0x005c94bf, 0x005891bb, 0x00558eb7, 0x00568eb7, 0x005387b1, 0x005283ad, 0x005481aa, 0x00547fa9,
- 0x005283aa, 0x005486af, 0x005587b1, 0x005183ad, 0x005b87ad, 0x0086acca, 0x00a8c7db, 0x00abbcc9, 0x00c8cac5, 0x00dcd7d1, 0x00a7a193, 0x005d584b, 0x00272418, 0x0026231c, 0x0023251e, 0x00222925,
- 0x00272a28, 0x00282b2b, 0x002d342f, 0x00353933, 0x003d3f39, 0x00444444, 0x00454849, 0x004c4b50, 0x004c4d55, 0x00474850, 0x003d3e48, 0x00383944, 0x0033333d, 0x0038383f, 0x00404145, 0x004b4e4f,
- 0x005b5b58, 0x00908f8d, 0x00efedeb, 0x00fffefc, 0x00fefdfc, 0x00fefffc, 0x00fdfdfa, 0x00d5d3d1, 0x00434242, 0x00090808, 0x0008070a, 0x00090c0f, 0x000e1212, 0x000d0f0e, 0x0010130f, 0x00191b12,
- 0x00201f11, 0x002b291b, 0x00323320, 0x00353621, 0x003b3a23, 0x00423a29, 0x00423924, 0x0040351d, 0x00423b1a, 0x00575036, 0x00a29d8b, 0x00eeebe3, 0x00fffbff, 0x00fefcff, 0x00fcfcfe, 0x00fbfdfb,
- 0x00d1dcd4, 0x008b918e, 0x00858788, 0x00a6a2a7, 0x0078706e, 0x00403a33, 0x00373628, 0x0035382b, 0x00333a3b, 0x00303844, 0x0031374b, 0x00303451, 0x002d345a, 0x002d3767, 0x0028386e, 0x001f3573,
- 0x00163178, 0x00102f79, 0x000a2974, 0x00072773, 0x00092772, 0x000d256a, 0x00142669, 0x0017296d, 0x001b2b69, 0x00203168, 0x00273868, 0x00293a5b, 0x002f3a4e, 0x00303841, 0x002d3234, 0x002b2d2c,
- 0x00202820, 0x00232440, 0x00232245, 0x00252835, 0x00282d21, 0x00272933, 0x001f212e, 0x001c1d1e, 0x001f2610, 0x00282738, 0x001f2964, 0x000e3397, 0x001c45a8, 0x001c4cab, 0x001045a6, 0x001c51ac,
- 0x003966ac, 0x006683c3, 0x006f88c2, 0x005369a1, 0x003f61a3, 0x003a60b7, 0x002449aa, 0x00193b99, 0x00143187, 0x00112a7c, 0x000a1f6d, 0x00081a68, 0x00071565, 0x00081667, 0x00061666, 0x00031264,
- 0x0000145b, 0x00011354, 0x0003114d, 0x00040c45, 0x00030737, 0x00030531, 0x0003062e, 0x00010529, 0x00000729, 0x0000082f, 0x00060c2a, 0x000d0e25, 0x001a1613, 0x00302513, 0x003e2c0d, 0x00432b04,
- 0x00502b02, 0x004d1f00, 0x00502004, 0x005e2a0a, 0x0069340c, 0x0079370b, 0x007c3a07, 0x00773504, 0x00823b05, 0x00914b0f, 0x00944f0d, 0x00914d09, 0x008c4801, 0x008c4601, 0x0098510b, 0x009a5310,
- 0x00703505, 0x00531f00, 0x006c4422, 0x00c8ad97, 0x00fefcf6, 0x00fdfef9, 0x00feffff, 0x00f9fdfd, 0x00fafcfc, 0x00fffefb, 0x00b4bac6, 0x002a3c6f, 0x003e3e6b, 0x003c2851, 0x00472147, 0x00501c3d,
- 0x00552443, 0x004c2649, 0x003a254b, 0x00686493, 0x00697cae, 0x00243f7e, 0x001d4187, 0x001a4490, 0x000e3f91, 0x00153f8d, 0x00224585, 0x00293d70, 0x0036395a, 0x00423c58, 0x00443e56, 0x00291f38,
- 0x00092050, 0x00072056, 0x00152e6c, 0x001d3a7c, 0x0017357f, 0x001f397f, 0x001e3572, 0x00516697, 0x00232d49, 0x004d5168, 0x004a4750, 0x00655551, 0x00665546, 0x00685242, 0x005c4534, 0x00604d3d,
- 0x00524b4e, 0x0041465d, 0x001e335c, 0x00244986, 0x003167b7, 0x005179b0, 0x008aaad5, 0x0092b5df, 0x007a9ac0, 0x00547499, 0x0089aace, 0x006a8bae, 0x007c9cc6, 0x006e8ebb, 0x00264576, 0x001e3e72,
- 0x00113875, 0x001a3564, 0x00687e9c, 0x008e95a2, 0x006b7674, 0x00435054, 0x00071a27, 0x000e243f, 0x00132654, 0x001d2d62, 0x00172459, 0x001c295d, 0x0022366a, 0x00223a73, 0x001a3476, 0x00163176,
- 0x00214084, 0x00263e82, 0x00213e74, 0x001d3068, 0x000c2350, 0x00151b3b, 0x001d2332, 0x00232130, 0x0027252a, 0x00302e31, 0x006a6c6d, 0x007b8188, 0x007789a5, 0x00122957, 0x0015346b, 0x003c5c9f,
- 0x00396986, 0x00395a88, 0x004e649b, 0x003f4b8a, 0x00332d5d, 0x003a2c47, 0x0049333b, 0x00583f34, 0x005c3f31, 0x0055372b, 0x004b4045, 0x00304963, 0x00535253, 0x00756554, 0x002d1b0a, 0x000e0401,
- 0x00010d0a, 0x0001151a, 0x00001019, 0x00040c0e, 0x00160a03, 0x000b0e0c, 0x00040d1c, 0x0021305a, 0x00374e93, 0x00344d84, 0x00374e72, 0x00415154, 0x00393e30, 0x000e0d0e, 0x00110f23, 0x003e365f,
- 0x00785f66, 0x006c5b63, 0x009d9aa1, 0x00a1b0b8, 0x00476484, 0x0023406d, 0x00153164, 0x00465888, 0x00f5fcfe, 0x00fefef0, 0x00fefeee, 0x00fbf9fd, 0x00feffff, 0x00fefcf5, 0x005b5245, 0x004a3525,
- 0x00664132, 0x00754e40, 0x00755043, 0x00664a3b, 0x00968273, 0x00e2dcd6, 0x00fcfdfd, 0x00fefcfc, 0x00fdfdfd, 0x00fffffe, 0x00e3e2e2, 0x00989998, 0x00686767, 0x006d6e6f, 0x006d6f6f, 0x006a6b6c,
- 0x00666465, 0x00646162, 0x00626061, 0x00626162, 0x00656465, 0x00696a68, 0x0072746e, 0x007a7c77, 0x007c7f7a, 0x00787b75, 0x0075746c, 0x00756d64, 0x006e615a, 0x00685653, 0x005c4745, 0x00533e38,
- 0x004f3733, 0x004c342d, 0x00473326, 0x00483627, 0x004e3d29, 0x0059472d, 0x009b8967, 0x00dac29a, 0x00c7ad7d, 0x00ac8e5d, 0x00b79465, 0x00b79067, 0x00a57e51, 0x00a17c48, 0x009b7938, 0x0096752b,
- 0x009d743b, 0x00926e42, 0x005c4021, 0x002b190b, 0x00130b07, 0x00090602, 0x00090a04, 0x000e0a07, 0x00100603, 0x00261819, 0x00574248, 0x006b5163, 0x00413d56, 0x001d2b51, 0x00173163, 0x00143371,
- 0x000c276a, 0x00102361, 0x000d1e54, 0x000d1c45, 0x000b1c38, 0x000d1637, 0x000c1734, 0x000f1b37, 0x000a1f31, 0x000a2230, 0x00273f45, 0x005c6d76, 0x007d7d87, 0x007e7282, 0x007d6b79, 0x007c6270,
- 0x007f564f, 0x007e564f, 0x007b514c, 0x007c5452, 0x007b5759, 0x0078585d, 0x00755960, 0x00755c62, 0x00735f66, 0x00726265, 0x00725e65, 0x00725563, 0x00735261, 0x00765863, 0x007b5e67, 0x007d6268,
- 0x007f6669, 0x00816769, 0x00836b69, 0x00846e69, 0x0089716c, 0x0086706b, 0x007d6a65, 0x0074625b, 0x0068574e, 0x005a4c44, 0x004a4037, 0x003e3932, 0x003a3a3f, 0x00373b47, 0x0044495c, 0x005e667f,
- 0x008192a7, 0x0099a6b8, 0x00aab4c1, 0x00aeb7b9, 0x00adb3b0, 0x00a9b1ab, 0x009ea7a1, 0x00909896, 0x007d888d, 0x00717e84, 0x00677582, 0x0064748a, 0x00657691, 0x0065799a, 0x00637ea1, 0x006181a5,
- 0x005e85ad, 0x005d85b1, 0x005c86b1, 0x005c86b1, 0x005d84af, 0x005285b8, 0x004b83b5, 0x004a78a5, 0x005e7a9a, 0x00a6b5cd, 0x00f7fffc, 0x00fefffd, 0x00fdf9fb, 0x00fefcfc, 0x00f2f2f4, 0x009da0a0,
- 0x00171920, 0x00070609, 0x0018120d, 0x001d1b12, 0x00232920, 0x002d2e2f, 0x00342e37, 0x003a283b, 0x00222025, 0x000d1a11, 0x00020f05, 0x00020302, 0x00000100, 0x00010100, 0x00020202, 0x00040503,
- 0x00050605, 0x00050406, 0x00050502, 0x00050406, 0x000a0909, 0x00110a02, 0x005a4d34, 0x009f8768, 0x009e714c, 0x00a06e46, 0x00b37e54, 0x00ae7f54, 0x00b28559, 0x00bc8c5a, 0x00be8b50, 0x00be8847,
- 0x00bb8842, 0x00b88544, 0x00b07e42, 0x00a97740, 0x00986635, 0x008f5d2f, 0x0079471e, 0x00714018, 0x00784823, 0x00754722, 0x00613613, 0x00492710, 0x00311707, 0x00180a00, 0x00070200, 0x00090d09,
- 0x00060f0e, 0x00010606, 0x00010305, 0x00020204, 0x00060200, 0x00020101, 0x00010203, 0x00060404, 0x00020202, 0x00020202, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00f9fafd, 0x009d9fa1, 0x00060809, 0x000f1112, 0x001a1c1e, 0x001f2123, 0x00212425, 0x00212424, 0x00212325, 0x00202325, 0x001f2325, 0x00202426, 0x00212427, 0x00232528, 0x00242728, 0x00242729,
- 0x00272827, 0x0028282a, 0x002a292d, 0x002b292e, 0x002d2a30, 0x002c2a2e, 0x002c2c2e, 0x002d2e31, 0x00302f33, 0x00313036, 0x002f3237, 0x002f3137, 0x002d3239, 0x002d3138, 0x00293037, 0x00293039,
- 0x00232f3f, 0x00252d36, 0x00282c2b, 0x003b312a, 0x005b4a35, 0x006c523b, 0x006a4f36, 0x006b4934, 0x005b3a2a, 0x0047251f, 0x00331c1d, 0x00232332, 0x001c1e37, 0x0019213b, 0x00273354, 0x00283961,
- 0x00284273, 0x002b4581, 0x00314a86, 0x002d4b8a, 0x00294888, 0x002e4a91, 0x002b488a, 0x00274480, 0x00223f73, 0x00213d7c, 0x002d4a8d, 0x0036569f, 0x005170ae, 0x008098c1, 0x00b9cbdc, 0x00adbaba,
- 0x00868283, 0x00a198a2, 0x00c8c1d1, 0x009c9ab7, 0x00435a92, 0x00224990, 0x00194a93, 0x00134790, 0x0021426d, 0x001b2e48, 0x00020912, 0x00070809, 0x000a0908, 0x0009090b, 0x00090909, 0x000a0909,
- 0x000b0b0b, 0x000b0b0b, 0x000a0a0a, 0x000b0b0a, 0x000b0b0c, 0x000b0a0d, 0x000a090d, 0x0009090e, 0x000b0b0c, 0x000f1010, 0x00121313, 0x001a1b1a, 0x00141413, 0x003f3e3c, 0x00c6c5c3, 0x00faf9f7,
- 0x00b6b7b4, 0x002f322f, 0x002e3031, 0x00343539, 0x00423e40, 0x00493f37, 0x00584833, 0x006b5535, 0x00926c37, 0x00ae8647, 0x00cda361, 0x00d2b173, 0x00dbb67a, 0x00d8b77e, 0x00b5925d, 0x008e6f3d,
- 0x00715335, 0x0050381d, 0x00301c0a, 0x001c0f03, 0x00170f07, 0x00101308, 0x00241e17, 0x00574238, 0x00888d8c, 0x00a2b9c1, 0x00dde6ec, 0x00cba1a5, 0x00cf512d, 0x00e06939, 0x00f19765, 0x00e5b787,
- 0x00f5bab3, 0x00f8cbb5, 0x00f9e2d0, 0x00f2eae2, 0x00d4e6fd, 0x00dae7ff, 0x00eaeaf6, 0x00f8e9e9, 0x00f6e5de, 0x00e3eceb, 0x00e6f0f8, 0x00edeefa, 0x00ebebf9, 0x00e7ebf7, 0x00edebf8, 0x00ececf8,
- 0x00ebe9f9, 0x00e8e8f7, 0x00e7e5f4, 0x00e3e4f0, 0x00e2e4f0, 0x00dcdff3, 0x00e3e2f2, 0x00d5cfcd, 0x00787ab7, 0x00364ea7, 0x00294ca1, 0x002b547f, 0x006a6d7b, 0x008f8a9d, 0x009e9daf, 0x0092a4a8,
- 0x0095a2b5, 0x009ea2b0, 0x00ada7b6, 0x00928493, 0x00312439, 0x001b1735, 0x001b2047, 0x002b3963, 0x00606e94, 0x008c9abe, 0x00b2bbd7, 0x00c3c3d3, 0x00c3c0dc, 0x00b5b2d3, 0x00aeacce, 0x00b4b4cb,
- 0x005f6265, 0x00181d15, 0x00181c10, 0x00181d16, 0x001b1d24, 0x00202224, 0x002a2a29, 0x0036302f, 0x0049372f, 0x0052382c, 0x0057392b, 0x00563626, 0x00493020, 0x003c291c, 0x002c2013, 0x0020190e,
- 0x0013120d, 0x000d0b07, 0x000b0605, 0x000c0704, 0x000b0403, 0x000d0502, 0x000f0604, 0x000f0604, 0x00140609, 0x00150808, 0x00170a08, 0x00170b09, 0x00170a08, 0x001b0e09, 0x0021130d, 0x00241610,
- 0x002e2016, 0x0033281b, 0x003c2f21, 0x003a301f, 0x00342a17, 0x00797869, 0x00fffdf6, 0x00fffdfb, 0x00fffafc, 0x00fefdfc, 0x00fbfcfa, 0x00b9c1be, 0x00304b56, 0x002c516c, 0x0044719d, 0x004d82bd,
- 0x005b96cd, 0x005a96cd, 0x005792c8, 0x004f8cc0, 0x004884b9, 0x00427fb3, 0x00407db2, 0x00417eb3, 0x00417cb2, 0x003e7aaf, 0x003d7aac, 0x003f7dab, 0x003f7fab, 0x003f7eac, 0x00427ead, 0x00437eac,
- 0x00437aac, 0x004078aa, 0x003e73a7, 0x003f73a7, 0x00497daf, 0x00498bb6, 0x00599cc6, 0x0068a5d0, 0x0078a9d8, 0x007ca9d9, 0x007fa7d8, 0x007fa5d7, 0x0079acd9, 0x0072abd6, 0x006aaed6, 0x0069b2d8,
- 0x0082afcd, 0x0084a6c1, 0x00768aa0, 0x00696d7a, 0x00635150, 0x00544037, 0x004a3027, 0x00402c1f, 0x00393127, 0x0037392f, 0x00414035, 0x00444330, 0x0055463c, 0x006b5a5d, 0x00867d8d, 0x008993b4,
- 0x006ca4d8, 0x005b9edc, 0x00519ad5, 0x005394c7, 0x00628fb7, 0x005a8aba, 0x005589ba, 0x005388ba, 0x00548cbc, 0x00518bb8, 0x004e89b5, 0x004f88b3, 0x00487daa, 0x004576a4, 0x004777a2, 0x004979a3,
- 0x004878a4, 0x00487aa3, 0x00487ca6, 0x00467ba5, 0x00517fa6, 0x006086a8, 0x007898b2, 0x007b93a0, 0x00b0b8bb, 0x00dadfd9, 0x00c7c9c4, 0x0089918e, 0x002d3133, 0x00171b18, 0x001d1f1a, 0x00191d17,
- 0x001e1d1a, 0x001f201d, 0x00272926, 0x002c3130, 0x00363836, 0x003e3e3c, 0x0044413d, 0x00474544, 0x004b454d, 0x0044414a, 0x003a3943, 0x002f2e38, 0x002c2b33, 0x002f3137, 0x00383b41, 0x0045484e,
- 0x005a5658, 0x00918f8f, 0x00f5f3f2, 0x00fefcfa, 0x00fefcfa, 0x00fdfdf9, 0x00fefefb, 0x00d4d3d0, 0x00454343, 0x00090a08, 0x00060507, 0x00090a0e, 0x000d0f11, 0x000e0e0e, 0x0011110e, 0x00161910,
- 0x0025251c, 0x002c2d1e, 0x00373326, 0x00393825, 0x003f3a29, 0x003e3724, 0x00473c28, 0x00453c1f, 0x00473e1d, 0x00585135, 0x00a8a290, 0x00eeebe3, 0x00fffcfd, 0x00fdfdfd, 0x00fcfbfc, 0x00fefdff,
- 0x00d4ddd4, 0x008c918e, 0x0085878a, 0x00a6a3a5, 0x007c7571, 0x00494338, 0x00423d30, 0x00403d30, 0x003b3d3d, 0x00343d44, 0x00333b4c, 0x00323753, 0x002f375c, 0x002f3b68, 0x002a3a6e, 0x001f3672,
- 0x00173177, 0x00132e78, 0x000e2a75, 0x000c2873, 0x000e2971, 0x0013296a, 0x001b2b6a, 0x001d2f6c, 0x00223168, 0x00273466, 0x002e3868, 0x00373e67, 0x00444769, 0x00484a65, 0x00494a60, 0x004d4c5e,
- 0x004a5656, 0x004d5267, 0x00505367, 0x00525555, 0x0056564b, 0x00524d5f, 0x00434163, 0x003a3b59, 0x002a3b47, 0x00192854, 0x00061b5e, 0x0001287f, 0x000b3384, 0x0015428a, 0x00375e9e, 0x006082b6,
- 0x0094a7d5, 0x00758cb7, 0x002a3f72, 0x0021417e, 0x002855a3, 0x002148a2, 0x00183d9c, 0x00123290, 0x000e267f, 0x000a1f73, 0x00081a6a, 0x00071765, 0x00071463, 0x00071664, 0x00071865, 0x00031260,
- 0x00021457, 0x00011251, 0x00010f49, 0x00020a40, 0x00020733, 0x00030530, 0x0003062d, 0x00020528, 0x0003052a, 0x00000b2b, 0x00040e2a, 0x000b0d22, 0x00120d0f, 0x00160f05, 0x00160d00, 0x001b0900,
- 0x002b0e02, 0x003d1805, 0x00552f1b, 0x005b361b, 0x00492105, 0x00572301, 0x00632805, 0x00682d01, 0x007a3b09, 0x0085450d, 0x00864609, 0x00803e00, 0x007e3701, 0x008a4100, 0x0099500b, 0x0099510b,
- 0x00723a0f, 0x00572702, 0x007b5335, 0x00d4bba5, 0x00fcfcf7, 0x00fdfdfa, 0x00fcfeff, 0x00fcfdfe, 0x00fffeff, 0x00f9faf5, 0x00acb5c9, 0x00183e7a, 0x001e3b76, 0x000f255b, 0x001a2960, 0x001e2c5d,
- 0x001c2b58, 0x001c2e62, 0x00263e77, 0x00627ebd, 0x005778bb, 0x00112e6b, 0x00113169, 0x00103675, 0x000c357b, 0x00123779, 0x001b3670, 0x00212e5e, 0x003b3657, 0x00392f49, 0x00382c43, 0x00251a31,
- 0x000c224b, 0x00051a4b, 0x00071e55, 0x000f2a66, 0x00183174, 0x001f3576, 0x0034477f, 0x004f5e8b, 0x001d203d, 0x00494b5d, 0x00827b7e, 0x00655540, 0x0065513a, 0x0062513a, 0x005b4d35, 0x00584d39,
- 0x004b4e4e, 0x00425161, 0x00587090, 0x00537aa7, 0x003a6cab, 0x002d5994, 0x0043699f, 0x004871a6, 0x002c5586, 0x00234c7c, 0x00527aa9, 0x006e96c8, 0x00648ac1, 0x00446aa3, 0x00183d78, 0x00113576,
- 0x00053672, 0x001f4570, 0x007e96b2, 0x0086929c, 0x00727173, 0x00363c43, 0x00141626, 0x0019203b, 0x001a2450, 0x0021285a, 0x00242e5b, 0x00233548, 0x0013254d, 0x00152758, 0x001d3270, 0x001e3579,
- 0x00233482, 0x001b326d, 0x001a2b5d, 0x00122746, 0x00071a2b, 0x0008152b, 0x00050b23, 0x000b1123, 0x004d525b, 0x004d5457, 0x0070767d, 0x0089969e, 0x007d91ad, 0x001b3a5f, 0x001a3d70, 0x003b629b,
- 0x00324b79, 0x001f366d, 0x00364e8b, 0x004f67a6, 0x00415484, 0x00263052, 0x00282e3e, 0x004f4d4f, 0x0065525f, 0x00543b49, 0x004c3a52, 0x00333f63, 0x005d4f5a, 0x0071554c, 0x004e2d1b, 0x002d1005,
- 0x000a0506, 0x00050914, 0x00060a18, 0x00030612, 0x0010080a, 0x00050912, 0x00091a34, 0x00283f72, 0x002d499d, 0x001d3f86, 0x002b487d, 0x002d4560, 0x00465456, 0x002e384a, 0x00272c4c, 0x003f4472,
- 0x0043486b, 0x0035405e, 0x00697c96, 0x00a4c0da, 0x007a9abd, 0x002f4d77, 0x00142a58, 0x0063739e, 0x00fafdff, 0x00fbfdf1, 0x00fdfbf1, 0x00fcfafd, 0x00fdfefc, 0x00fdfef4, 0x004c4437, 0x004a3828,
- 0x00674033, 0x00764c3f, 0x00724b3f, 0x00644539, 0x00a08d80, 0x00ece6e1, 0x00fdfeff, 0x00fbfdfd, 0x00fdfdfe, 0x00fbfbfc, 0x00dbdadb, 0x00888787, 0x00666666, 0x0070706f, 0x00717170, 0x006f6f6f,
- 0x006a696b, 0x00666667, 0x00656466, 0x00666766, 0x00686967, 0x006a6a69, 0x0071706f, 0x00787674, 0x007a7b7a, 0x00797978, 0x00787471, 0x00766c66, 0x006d6158, 0x00685751, 0x005f4a44, 0x00563f38,
- 0x00563c37, 0x00513931, 0x004b3627, 0x004b3627, 0x004b3927, 0x0065503a, 0x00b0997c, 0x00d8c29c, 0x00d2b187, 0x00c4a375, 0x00c29c74, 0x00b88f69, 0x00a87d58, 0x00ac8253, 0x00a67e44, 0x009f7935,
- 0x009b6f35, 0x00876032, 0x00533214, 0x002c1405, 0x00180902, 0x001b1304, 0x00160f02, 0x00221805, 0x00402f1c, 0x004f392c, 0x005f4239, 0x00815f53, 0x0076696b, 0x00323746, 0x00122646, 0x00142f5f,
- 0x00132566, 0x0013205d, 0x000f1a56, 0x00091849, 0x0008173f, 0x00091836, 0x00081632, 0x000b1b37, 0x00041a35, 0x00152d44, 0x00566c80, 0x007c8f9f, 0x00868a99, 0x0087818b, 0x00897b84, 0x0088717a,
- 0x0089625a, 0x00805a52, 0x0078514b, 0x00754d4b, 0x00795052, 0x00795155, 0x00765357, 0x00735356, 0x0074545e, 0x006f555b, 0x006d5059, 0x006c4957, 0x006b4754, 0x006b4a54, 0x00715158, 0x0075565b,
- 0x007c6062, 0x007b6160, 0x007b6460, 0x007d6760, 0x00826c64, 0x00836e68, 0x00806c69, 0x007d6963, 0x00736156, 0x0062544a, 0x0050453c, 0x00413a36, 0x003a3740, 0x00383949, 0x004c5064, 0x006e758b,
- 0x008d97ab, 0x009da8b9, 0x00a4aebc, 0x00a7aeb5, 0x00a8afb1, 0x00a8afaf, 0x009fa9a9, 0x0093a0a3, 0x00808d98, 0x0071808d, 0x0066798d, 0x00637a96, 0x00617c9b, 0x00627ea2, 0x006280a9, 0x005f81ac,
- 0x005e83b2, 0x005c84b0, 0x005d86b3, 0x005d85af, 0x005c82ae, 0x005184b6, 0x004980b5, 0x004775a1, 0x006d86a5, 0x00b6c4db, 0x00f8fdff, 0x00ffffff, 0x00fdfafc, 0x00fffeff, 0x00e9eae9, 0x00868a8a,
- 0x00070a10, 0x00080201, 0x00190e0a, 0x001c1408, 0x00162719, 0x001f2a26, 0x002c3135, 0x00392d39, 0x002b272e, 0x000e221a, 0x0004140d, 0x00060505, 0x00030302, 0x00010101, 0x00040405, 0x00040403,
- 0x0008080b, 0x00070607, 0x00050505, 0x00060909, 0x00060808, 0x00130c04, 0x00433325, 0x00745643, 0x006c3c1e, 0x006a3813, 0x00743e19, 0x00794723, 0x00a07047, 0x00bc8958, 0x00c59057, 0x00c18849,
- 0x00bb8747, 0x00b68343, 0x00b07e43, 0x00a4733d, 0x00996839, 0x0087572c, 0x00794921, 0x0074441d, 0x007b4a24, 0x0074471e, 0x00643817, 0x004e2b13, 0x00361a08, 0x001e0d00, 0x00090203, 0x000b0d09,
- 0x00091012, 0x00000606, 0x00010609, 0x00030604, 0x00040001, 0x00060304, 0x00040404, 0x00050504, 0x00040404, 0x00020202, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00f8fbfd, 0x009d9fa1, 0x0006080b, 0x000f1013, 0x00191b1d, 0x001d2021, 0x00202224, 0x00202124, 0x00202124, 0x001f2123, 0x001f2224, 0x001f2224, 0x00202324, 0x00222426, 0x00232528, 0x00232628,
- 0x00262529, 0x00272529, 0x002a262a, 0x002d292c, 0x002f2b30, 0x002d2b2f, 0x002e2c2e, 0x00302e30, 0x00323236, 0x00313338, 0x00313337, 0x002f3336, 0x0031333a, 0x002f343a, 0x002f3439, 0x002e353b,
- 0x002a353e, 0x00262c31, 0x00565551, 0x00837b6e, 0x00826e56, 0x00856a4f, 0x008d6c52, 0x008c6a52, 0x00744f3e, 0x004d2f1d, 0x00381d16, 0x00382824, 0x0029201e, 0x00140e13, 0x000f0c1d, 0x00111425,
- 0x00131830, 0x00151e3a, 0x0020294c, 0x00242f4f, 0x00232b4e, 0x00262a54, 0x00232a53, 0x00161d43, 0x00041035, 0x0001123e, 0x000a2459, 0x00234280, 0x002b4e8d, 0x003e5b8e, 0x007490b7, 0x00a9c2db,
- 0x00b8bccd, 0x00aeb0c4, 0x00aaabcc, 0x006b739a, 0x00294587, 0x001f4c96, 0x00174694, 0x0013438b, 0x00243d69, 0x0015233a, 0x0004040f, 0x00090808, 0x00090709, 0x00090908, 0x00070808, 0x00080907,
- 0x000b0a0d, 0x000a090b, 0x0009090a, 0x00090909, 0x0009090a, 0x0009090b, 0x0009090c, 0x0009080d, 0x000d0e10, 0x00111213, 0x00181718, 0x001f1e1e, 0x001b1b1a, 0x00494a47, 0x00cfd0cc, 0x00fcfcf9,
- 0x00b8b8b3, 0x00303331, 0x00313234, 0x00393a3e, 0x003e3c3d, 0x0048403b, 0x00574838, 0x00614c2f, 0x00805e27, 0x00a27b3e, 0x00be9655, 0x00c5a463, 0x00d6b57b, 0x00ccac7c, 0x00987850, 0x00684a2b,
- 0x002c190a, 0x00231106, 0x001b1100, 0x00110f01, 0x00181c08, 0x00332a26, 0x00413333, 0x00534f43, 0x00869d98, 0x00a7c6cc, 0x00d2e0e6, 0x00d1afb3, 0x00e73d34, 0x00e04024, 0x00eb7d52, 0x00ecdc98,
- 0x00f7e6f4, 0x00ffebed, 0x00f9e8e2, 0x00f3f0e4, 0x00d6f7fd, 0x00d4e7fc, 0x00e4e6fa, 0x00fde4fa, 0x00fbe9e5, 0x00def1e0, 0x00d7efe5, 0x00e9eaf8, 0x00ecedfb, 0x00eeeefd, 0x00edebf6, 0x00e7e9f1,
- 0x00ebebf9, 0x00e7e9f4, 0x00e6e6f2, 0x00e4e6f2, 0x00e4e3f1, 0x00dedef1, 0x00e3e0ec, 0x00e1d6d5, 0x008f8bc0, 0x00384c9b, 0x002c4a98, 0x003b5f91, 0x0089889d, 0x009b96ae, 0x009491a5, 0x008a96a3,
- 0x0094a1b6, 0x00999ead, 0x009e99aa, 0x00776b7d, 0x002a1c35, 0x00352e4f, 0x00616187, 0x00848bae, 0x00a5b1c7, 0x00b7c0d2, 0x00c1c5d5, 0x00c6c4d2, 0x00ccc8e3, 0x00cac4e2, 0x00d4cfeb, 0x00e7e3f5,
- 0x0097979c, 0x00272924, 0x0010130e, 0x00121814, 0x00171b23, 0x001d2225, 0x00242728, 0x00302e2c, 0x0045362e, 0x00513a2e, 0x00583d2e, 0x00573a2a, 0x004b3325, 0x003e2c1f, 0x002e2217, 0x00231a12,
- 0x00151212, 0x000d0b0c, 0x000b0708, 0x000b0607, 0x000a0503, 0x000b0503, 0x000e0604, 0x000d0605, 0x00130505, 0x00150805, 0x00170b07, 0x00170b09, 0x00160b09, 0x00180d09, 0x001c110c, 0x001f1410,
- 0x002a1e14, 0x0030261b, 0x00392d21, 0x00362c1e, 0x0033291a, 0x0077786b, 0x00fefef8, 0x00fdfdfd, 0x00fffbfe, 0x00ffffff, 0x00fbfcfb, 0x00b7c0c0, 0x00314c59, 0x002d516f, 0x00426d9d, 0x004a7cba,
- 0x005090c9, 0x005090c9, 0x004e8dc6, 0x004787bf, 0x004281b9, 0x00407fb7, 0x004180b7, 0x00407fb7, 0x003e7cb7, 0x003d7bb2, 0x003e7ab3, 0x003d7ab3, 0x003e7db4, 0x00407fb6, 0x003c7ab2, 0x003977ac,
- 0x003b75ac, 0x003976aa, 0x003a72a9, 0x00407ab0, 0x005189bd, 0x00529dca, 0x0059a9d5, 0x0064abd9, 0x0071a4da, 0x0076a2da, 0x007ca5df, 0x007ea6e0, 0x0074a9df, 0x006ba9dc, 0x0064b0de, 0x0064b3e0,
- 0x008a9cb5, 0x007c8a9f, 0x00606877, 0x00494a51, 0x003c342f, 0x003b3128, 0x0044352d, 0x0045382e, 0x003f372e, 0x003d3732, 0x00473d33, 0x004d4028, 0x00544034, 0x00645357, 0x007e7689, 0x00838fb0,
- 0x00659cd2, 0x00559bd5, 0x004b97d0, 0x004b91c7, 0x005689ba, 0x005287ba, 0x005086ba, 0x004f86ba, 0x004d8abd, 0x004b89b9, 0x004887b4, 0x004682af, 0x003e76a5, 0x003c6fa0, 0x003e6ea0, 0x004170a1,
- 0x003e76a5, 0x004076a4, 0x004075a2, 0x004278a4, 0x004779a3, 0x004e799e, 0x005b819c, 0x005e7d8f, 0x0091a0aa, 0x00bfcbce, 0x00bac7cc, 0x00889da8, 0x003a4652, 0x00172022, 0x001c1e1d, 0x0021211a,
- 0x00241f17, 0x0026231d, 0x002a2c27, 0x002e3431, 0x00343d3a, 0x0042413e, 0x0048423e, 0x004c4645, 0x004d474c, 0x00464249, 0x003c3943, 0x0033313c, 0x002d2d36, 0x0031333a, 0x00393d42, 0x00464a50,
- 0x0053514f, 0x008d8b89, 0x00efedec, 0x00fffdfc, 0x00fffdfc, 0x00fffefb, 0x00fffffc, 0x00d4d2cf, 0x00484846, 0x000f110d, 0x00080706, 0x000a090b, 0x000e0d0f, 0x00120e0d, 0x0015120e, 0x001e1d17,
- 0x002b2921, 0x00322f24, 0x00383427, 0x00383320, 0x003b3821, 0x003f3623, 0x00433923, 0x003e3516, 0x003c3810, 0x005c5738, 0x00b7b19d, 0x00f5efe9, 0x00fffdff, 0x00ffffff, 0x00fbfbfc, 0x00fefdfe,
- 0x00d2ddd6, 0x008e9390, 0x00868785, 0x00a9a3a3, 0x00847974, 0x00534a40, 0x00494331, 0x0047432e, 0x003e403c, 0x00383f43, 0x00383e4b, 0x00393c54, 0x00373c5d, 0x00343d67, 0x002e3b6b, 0x0024386f,
- 0x001d3175, 0x00172f76, 0x00132b74, 0x00112973, 0x00102b6e, 0x00162d65, 0x00203165, 0x00233466, 0x00293669, 0x00303968, 0x00393d6c, 0x003e406c, 0x0047466f, 0x004d4b73, 0x00545075, 0x005a5579,
- 0x004f6065, 0x00546070, 0x005a606b, 0x005d6157, 0x005e5c5b, 0x005d567d, 0x004b4988, 0x00404688, 0x00365086, 0x00234284, 0x000a2c75, 0x00052b6a, 0x0019427b, 0x00486998, 0x0090a4ca, 0x00cad3e4,
- 0x00aeafbf, 0x0039455f, 0x00102959, 0x002d5299, 0x001d56b1, 0x001a439e, 0x00143592, 0x00082983, 0x00061e73, 0x0004196a, 0x00071866, 0x00071461, 0x00091461, 0x000b1863, 0x000a1963, 0x0005135e,
- 0x00051351, 0x0003104d, 0x00020b46, 0x0000083c, 0x00020830, 0x0002072d, 0x00020629, 0x00010625, 0x00030624, 0x00030a26, 0x00080c27, 0x000f0c24, 0x00140d0f, 0x000f0802, 0x00110500, 0x00150501,
- 0x00230b03, 0x00311708, 0x0042281e, 0x0043281a, 0x002f1404, 0x00451a02, 0x0058250a, 0x005e2808, 0x006a310b, 0x00793e11, 0x007f420b, 0x007a3b07, 0x006b2700, 0x007b3301, 0x008c4204, 0x00934707,
- 0x0076431c, 0x00552905, 0x00735236, 0x00ceb9a6, 0x00fffdf8, 0x00fdfdfa, 0x00fefffe, 0x00fcfefe, 0x00fffffe, 0x00f9f8f4, 0x00aaadbc, 0x0021356c, 0x00193a68, 0x000d3260, 0x000b3a62, 0x00084062,
- 0x0003385b, 0x000f3c62, 0x00224b75, 0x007090bf, 0x006579ad, 0x00192c5a, 0x00162956, 0x00152f5f, 0x00123169, 0x00193369, 0x0021345f, 0x00252c4f, 0x00332a43, 0x0033243b, 0x00322337, 0x001d0f25,
- 0x000e1e3f, 0x000c1e45, 0x00081d48, 0x000e2454, 0x00223470, 0x00304077, 0x004f5e8d, 0x00323e65, 0x00202336, 0x00343240, 0x00726867, 0x00654c33, 0x0066513a, 0x00625341, 0x004b4335, 0x002f3027,
- 0x001e2933, 0x001e3249, 0x00516d90, 0x005378a4, 0x0039679b, 0x00285898, 0x00275499, 0x001e4e8e, 0x00154485, 0x00154583, 0x001f4f8b, 0x00255596, 0x001b4c8f, 0x001a4990, 0x0015438c, 0x000b3784,
- 0x0000356a, 0x00123961, 0x007a99b0, 0x0099a0ab, 0x007e7278, 0x003a2b37, 0x001a1023, 0x001c1532, 0x001c1d42, 0x0026244e, 0x0030344e, 0x001e312f, 0x00051427, 0x000c1941, 0x001f2d64, 0x001f2d73,
- 0x001e2e70, 0x0018275a, 0x000e1f3c, 0x00091c21, 0x00031803, 0x00000d1d, 0x0005132f, 0x00192b3f, 0x007d8b9d, 0x00657580, 0x0073848f, 0x008ca1af, 0x006f8aa5, 0x00284a72, 0x001d4574, 0x00386498,
- 0x00283169, 0x00172763, 0x00162d6d, 0x001f3d7f, 0x002c5587, 0x00295075, 0x0033516e, 0x004d6079, 0x00525172, 0x003e345a, 0x003b2859, 0x003f3064, 0x00623956, 0x00793d45, 0x00763534, 0x00470c08,
- 0x001e0002, 0x0015000f, 0x000e0017, 0x000f001c, 0x00150118, 0x0007081e, 0x000c2646, 0x00213b78, 0x00153999, 0x00103691, 0x00193c8b, 0x00244076, 0x004d6581, 0x004c6283, 0x001a2f5b, 0x002a4076,
- 0x001c4384, 0x00174378, 0x00275081, 0x00729dc3, 0x008fb3dc, 0x00415c84, 0x0012274e, 0x007e8aa7, 0x00fafdfe, 0x00fbfcf3, 0x00fefef5, 0x00fef9fe, 0x00feffff, 0x00fdfcf4, 0x003a3327, 0x004b3a29,
- 0x00674436, 0x00714a40, 0x006c473e, 0x0063483d, 0x00aa9d91, 0x00f3efeb, 0x00fffeff, 0x00fdfbfe, 0x00fcfefd, 0x00f8fbfb, 0x00cecfcf, 0x007a7a79, 0x00626363, 0x00727271, 0x00737170, 0x00737372,
- 0x00686a6b, 0x00656968, 0x00666868, 0x00686a68, 0x00676a67, 0x00676969, 0x006c6c6e, 0x00717272, 0x00757474, 0x00787577, 0x00767072, 0x00746967, 0x006e605d, 0x00695854, 0x005f4b46, 0x005a423c,
- 0x005b4038, 0x00543e32, 0x004d3a2a, 0x004c3929, 0x004a3a2a, 0x006c5542, 0x00b3967e, 0x00d3b796, 0x00d9b58c, 0x00cfa97f, 0x00be936d, 0x00b68864, 0x00ad7d5a, 0x00ae7f53, 0x00a97c47, 0x00a3783b,
- 0x009d6d34, 0x00895c2f, 0x005d3716, 0x00391908, 0x002a1404, 0x00301d08, 0x0038260d, 0x00594323, 0x007f6143, 0x00704f30, 0x005e3717, 0x00805532, 0x00806953, 0x003d3933, 0x00121e28, 0x000e2240,
- 0x00152055, 0x00161c57, 0x00111955, 0x000d184e, 0x0008174b, 0x000b1837, 0x00091830, 0x00091a37, 0x00071f40, 0x00334c6d, 0x007b94b3, 0x008ca2be, 0x008a93a4, 0x008d8e97, 0x00908b87, 0x008e807d,
- 0x008e6d64, 0x00866159, 0x00775149, 0x00734944, 0x00764645, 0x0079494a, 0x00794c4d, 0x00774a4b, 0x00744a4f, 0x0070474c, 0x006c424a, 0x00693c48, 0x00643744, 0x00603841, 0x00633e44, 0x006a454a,
- 0x00765658, 0x00775c59, 0x007a605c, 0x007a635c, 0x007d6860, 0x00806b67, 0x00816b6b, 0x007f6a66, 0x0078635e, 0x006a5750, 0x00594844, 0x00493c3d, 0x003e3843, 0x003b3a4c, 0x0051536b, 0x00757a92,
- 0x00909bac, 0x009da9b6, 0x00a3aeba, 0x00a6afb6, 0x00a8b0b6, 0x00a5afb5, 0x009cabb2, 0x008da1aa, 0x00798f9c, 0x006b8195, 0x00627b97, 0x005e7da0, 0x005c7fa3, 0x005b80a9, 0x005b83ae, 0x005982af,
- 0x005e86b5, 0x006087b5, 0x005f88b3, 0x005e85b1, 0x005e83ac, 0x005182b5, 0x004a7fb2, 0x004773a0, 0x007892ad, 0x00c3d2e4, 0x00f9ffff, 0x00fffeff, 0x00fffdfe, 0x00fffeff, 0x00e5e4e6, 0x007c7f83,
- 0x00050f0c, 0x00100403, 0x00160402, 0x00140600, 0x00031e05, 0x0010291a, 0x001e2f28, 0x00322831, 0x002d262c, 0x000e261b, 0x0004180e, 0x00080807, 0x00050304, 0x00030304, 0x00040305, 0x00070708,
- 0x00070807, 0x00070706, 0x00050604, 0x00040607, 0x00060607, 0x000b0303, 0x00382420, 0x00725248, 0x0097634c, 0x00a57050, 0x009e6443, 0x00a26c4c, 0x00b5835d, 0x00c48f61, 0x00c58e5a, 0x00c4884f,
- 0x00b78346, 0x00b27f42, 0x00aa773e, 0x00a06e3b, 0x00936233, 0x00865429, 0x007b4823, 0x0076411d, 0x0074451c, 0x007b4e23, 0x007c4f2a, 0x00654126, 0x00432511, 0x00251203, 0x00100701, 0x00100f09,
- 0x00050d0e, 0x0003090a, 0x0003070a, 0x00040609, 0x00060204, 0x00060405, 0x00030302, 0x00050503, 0x00040404, 0x00020202, 0x001c1c1c, 0x008e8e8e, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00f7fbfb, 0x009c9fa0, 0x0006070a, 0x000e1012, 0x00181a1c, 0x001c1f20, 0x001e2022, 0x001f2024, 0x001d1f20, 0x001d2022, 0x001d2022, 0x001d2021, 0x001f2123, 0x00212224, 0x00232426, 0x00242528,
- 0x0026252a, 0x00272429, 0x002b262a, 0x002e292c, 0x00302c31, 0x002f2c30, 0x00302d2f, 0x00322f31, 0x00343337, 0x00353338, 0x00323437, 0x00323338, 0x0031343a, 0x0032353b, 0x002f363b, 0x0030363b,
- 0x002a3237, 0x003d3f3c, 0x009c998e, 0x00d0c4b1, 0x00b29b81, 0x00ab8b6d, 0x00ae8d6f, 0x00ad8a6b, 0x0088664b, 0x00623f2c, 0x00472712, 0x00543717, 0x0054391f, 0x003b2210, 0x00251205, 0x00241309,
- 0x002e1f17, 0x003f302c, 0x005d4d4b, 0x0060524e, 0x0055443e, 0x00513a42, 0x0049353f, 0x002d1d26, 0x0006070e, 0x00000718, 0x0000102f, 0x000c2250, 0x00143b75, 0x002b4f8c, 0x002d558c, 0x00567eb1,
- 0x00a9b6d3, 0x00acbcde, 0x007082af, 0x00374e89, 0x00254998, 0x001f4fa2, 0x00164797, 0x0018468a, 0x0022375b, 0x0010192c, 0x0006080c, 0x000b0a0a, 0x000a0909, 0x00090a0b, 0x00070706, 0x00070908,
- 0x0009090b, 0x00080809, 0x00080808, 0x00080808, 0x00080808, 0x0009090b, 0x000a0a0d, 0x000a090e, 0x000f0f12, 0x00141316, 0x001b191b, 0x00222020, 0x001e1e1c, 0x004e504c, 0x00d3d5d0, 0x00fbfdf7,
- 0x00b7b7b1, 0x002f302c, 0x00363636, 0x003c3d3f, 0x00454244, 0x004d4541, 0x00594b3d, 0x00584227, 0x007c5d2a, 0x00a8854a, 0x00b69153, 0x00bb9857, 0x00b89962, 0x00a2825b, 0x005f4227, 0x002c1308,
- 0x00180604, 0x001a1308, 0x001d1910, 0x00141a08, 0x00233014, 0x00494138, 0x00564b4c, 0x00474e4a, 0x00859097, 0x00b1ced0, 0x00d4e7e8, 0x00d3c9c4, 0x00f4535a, 0x00e62d26, 0x00f0633d, 0x00eccc7f,
- 0x00f2dee0, 0x00eab6b1, 0x00e3998a, 0x00e59a82, 0x00ddccbe, 0x00e8e6ea, 0x00e6e0f3, 0x00efd8f9, 0x00f6e4f1, 0x00e4f2e9, 0x00daefe6, 0x00e1e4ef, 0x00e2e6f1, 0x00e8e9f5, 0x00ecebf7, 0x00eceef8,
- 0x00e8eaf3, 0x00e7eaf4, 0x00ebebf7, 0x00e7e7f4, 0x00e3e1ee, 0x00dbdeed, 0x00e2deeb, 0x00e7d4db, 0x00aa9ac3, 0x0047528f, 0x002f4c91, 0x003a5d97, 0x007c839e, 0x008d8aa4, 0x008c8da6, 0x008e99b7,
- 0x008e9fba, 0x0097a2b7, 0x009a97b0, 0x00847993, 0x007e7090, 0x00958aaf, 0x00aeadd0, 0x00b6bbd8, 0x00bbc1ce, 0x00c2c6c8, 0x00c8c6ce, 0x00cfc8dd, 0x00d2cae4, 0x00d5cde3, 0x00ded7eb, 0x00e6dfee,
- 0x00c5c1c4, 0x00747272, 0x00181a19, 0x000d1216, 0x0011161d, 0x001a1e24, 0x00212526, 0x002a2b2a, 0x00403531, 0x004f3c34, 0x00574236, 0x00563e31, 0x004d372b, 0x00412f26, 0x0032241d, 0x00281c18,
- 0x00181313, 0x00110d0d, 0x000d0807, 0x000d0806, 0x00090401, 0x000b0402, 0x000d0402, 0x000f0603, 0x00120606, 0x00130806, 0x00140907, 0x00130908, 0x00130809, 0x00140a07, 0x00180f09, 0x001c130d,
- 0x00261b15, 0x00292018, 0x002c251b, 0x002d241a, 0x00272116, 0x0074756b, 0x00fefff9, 0x00fffdfc, 0x00fef9fc, 0x00fdfcfc, 0x00fcfdfd, 0x00bcc5c5, 0x00354f5c, 0x002b516e, 0x003e6c9a, 0x00487db9,
- 0x004c8fc8, 0x004d8fc9, 0x004c8ec8, 0x004889c4, 0x004384bf, 0x004080bb, 0x003b7bb6, 0x003676b0, 0x003675b3, 0x003878b3, 0x003d7aba, 0x003e7abe, 0x003e7bbd, 0x003f7cbc, 0x003977b6, 0x003170aa,
- 0x002a67a2, 0x003673ac, 0x00427fb6, 0x004d8bc0, 0x005b97cc, 0x005d9fd3, 0x005da1d7, 0x0061a6dc, 0x0068a9e4, 0x0068a7e2, 0x0069a7e1, 0x006ba9e1, 0x0070a7e0, 0x0076ade3, 0x0075aae0, 0x006ea1d7,
- 0x00897887, 0x0072646f, 0x00484143, 0x0028221e, 0x00201e13, 0x002e2b1f, 0x0039362a, 0x003e3a30, 0x00483c3b, 0x0046383c, 0x00473731, 0x004e3920, 0x00534033, 0x00625358, 0x0076768a, 0x00768aae,
- 0x005d99cd, 0x005599d3, 0x004e9ad3, 0x004b94ca, 0x004e89c2, 0x004d86bf, 0x004c87bf, 0x004b86be, 0x00498abd, 0x004586b9, 0x004081b3, 0x003b7aad, 0x003772a7, 0x00366da2, 0x00366ba0, 0x00386ca0,
- 0x003e74a6, 0x003f75a4, 0x003b71a2, 0x003f77a8, 0x00457aa6, 0x004977a0, 0x00537ca2, 0x00537994, 0x007f9aaf, 0x00aac2d3, 0x00a0bbcd, 0x007193ab, 0x003a505f, 0x00162227, 0x001c1a18, 0x00241b0f,
- 0x002d1d0f, 0x002d2113, 0x002f271e, 0x0030302e, 0x0035393a, 0x00403d38, 0x004a4039, 0x004e4542, 0x004d4548, 0x00463e44, 0x003d3740, 0x0033303a, 0x002b2b34, 0x002e3237, 0x00363b3e, 0x00424749,
- 0x00585752, 0x008f8d8a, 0x00f0efee, 0x00fcfafb, 0x00fefafc, 0x00fefcfd, 0x00fffffe, 0x00d4d2d0, 0x004f4e4b, 0x00171911, 0x000f1006, 0x000f0f04, 0x00121304, 0x00151101, 0x00211d0d, 0x002b2a16,
- 0x003c3520, 0x003f3c22, 0x00423f25, 0x00423f24, 0x00433f23, 0x00484027, 0x004e442b, 0x00494222, 0x004a431e, 0x006c6647, 0x00c5c2aa, 0x00f8f6ec, 0x00fefdfe, 0x00fffefe, 0x00faf9fb, 0x00fdfbfd,
- 0x00d1dcd5, 0x008d928e, 0x00848682, 0x00a8a49f, 0x00897f71, 0x005b523d, 0x00524c31, 0x00504a2f, 0x0047473b, 0x00434644, 0x0041434a, 0x003d3f4f, 0x00393e58, 0x00374064, 0x00303d69, 0x0027396d,
- 0x001f3371, 0x001c3072, 0x00172c6f, 0x00152b6e, 0x00172a6c, 0x001a2d67, 0x00223365, 0x00283763, 0x00313b60, 0x003a3e5e, 0x00474663, 0x00494862, 0x004e4a65, 0x0055526e, 0x005a5773, 0x00585776,
- 0x00525d79, 0x00536180, 0x00526682, 0x004e6980, 0x0042618e, 0x003d5ca7, 0x003755b3, 0x003453b5, 0x003c5ca9, 0x004164a2, 0x004d6b97, 0x0063738f, 0x007598be, 0x008daccf, 0x00bacfe7, 0x00f2f2f5,
- 0x00aba5b3, 0x00242d50, 0x00223b77, 0x002954a8, 0x00143d9d, 0x00173691, 0x000e2680, 0x00021b72, 0x0001176b, 0x00011464, 0x0001125e, 0x0000115b, 0x0002115b, 0x0008165f, 0x0008165d, 0x00051259,
- 0x0005114b, 0x00030e43, 0x00000a3b, 0x00010635, 0x0001072e, 0x0003062a, 0x00020624, 0x0003061e, 0x00060920, 0x00080a20, 0x00130c1c, 0x002c1215, 0x003c2115, 0x003c1e0c, 0x003a1c02, 0x003a1a04,
- 0x003d1a07, 0x003b190e, 0x0038160d, 0x002f1007, 0x002c1105, 0x00451b03, 0x00572106, 0x00592404, 0x00622e0a, 0x006a380f, 0x0069360f, 0x005b2603, 0x004f1704, 0x00521c02, 0x00612d08, 0x00744018,
- 0x00724b2f, 0x0069472d, 0x008d7562, 0x00daccbe, 0x00fffdf9, 0x00fcfcfe, 0x00fdffff, 0x00fafeff, 0x00fefefd, 0x00fcf9f8, 0x00f8f1f0, 0x00f4eded, 0x00ebe7ed, 0x00e5e7eb, 0x00d2dfe2, 0x00cadadf,
- 0x00b7c8cf, 0x00afbcc1, 0x00a3a9ac, 0x00bdb9bc, 0x00aa9da0, 0x006a6c76, 0x00596375, 0x0056667b, 0x00556988, 0x00516380, 0x00505873, 0x0048455b, 0x004d3d4a, 0x00382835, 0x00312233, 0x00251929,
- 0x00121c32, 0x000f1b34, 0x000e1a39, 0x00132243, 0x001b294f, 0x00283156, 0x00454d70, 0x003b425d, 0x005d5967, 0x005e5c63, 0x0047383c, 0x00593836, 0x005f474f, 0x00453849, 0x00241e3a, 0x00171c41,
- 0x00162757, 0x000f255d, 0x000b2362, 0x00193678, 0x00435d9d, 0x001e4285, 0x001e488b, 0x001d498a, 0x00275297, 0x001a4689, 0x00133f83, 0x0017418a, 0x00265099, 0x00234c95, 0x001b478e, 0x00235097,
- 0x001f5284, 0x0035577c, 0x0099a6c0, 0x00aba1b0, 0x0080636e, 0x002e1624, 0x001d0a1c, 0x00120921, 0x0013162f, 0x00171b31, 0x00242e3f, 0x00192527, 0x000b1625, 0x0009132e, 0x00101a3e, 0x00151a46,
- 0x00141943, 0x00292f4a, 0x00495263, 0x0017241e, 0x00081105, 0x0005142e, 0x0007204d, 0x00183159, 0x006f84a4, 0x00465b79, 0x00506485, 0x0087a0c0, 0x006785ac, 0x00204671, 0x00133c6d, 0x00305a90,
- 0x001c2456, 0x000d1549, 0x0017255b, 0x00182b64, 0x001d356b, 0x00233d70, 0x00304a7b, 0x00375280, 0x00334479, 0x002b3972, 0x001c356b, 0x00093a6c, 0x00243b50, 0x0035383b, 0x0031271d, 0x001c0b03,
- 0x000d0901, 0x00020b02, 0x00000d09, 0x0000110f, 0x00030e10, 0x0001111d, 0x000e2942, 0x001f3b6e, 0x001b3c96, 0x0012338f, 0x00102f82, 0x00173272, 0x004e688e, 0x004d678b, 0x00132e54, 0x002e4d77,
- 0x001f5295, 0x00194d88, 0x00103e75, 0x003d6590, 0x0088a4c9, 0x00556888, 0x0014213d, 0x00939bae, 0x00fbfdff, 0x00fcfdff, 0x00fcfdfb, 0x00fffbfe, 0x00fdfdfd, 0x00fdfcf4, 0x002e281a, 0x00493b2b,
- 0x00674438, 0x0068453a, 0x0064423a, 0x00654c45, 0x00b4a89f, 0x00faf6f3, 0x00ffffff, 0x00f9fdfd, 0x00ffffff, 0x00f7f8f8, 0x00c3c4c2, 0x00696867, 0x005e5d5e, 0x006e6c6e, 0x006d6b6b, 0x006c6a6a,
- 0x00666b6a, 0x00636867, 0x00626766, 0x00646867, 0x00666a69, 0x0068696b, 0x006a696e, 0x006b6a6f, 0x00716c77, 0x00726e78, 0x00746d74, 0x00766a68, 0x006d615e, 0x00685852, 0x00604c45, 0x0059443c,
- 0x005a3e36, 0x00533c32, 0x00513c2f, 0x00523e2f, 0x004f3d30, 0x006f5641, 0x00a8896c, 0x00c5a982, 0x00d1ab79, 0x00c39a67, 0x00b08253, 0x00ab7a4e, 0x00ad7750, 0x00ab7749, 0x00a3723b, 0x00a57638,
- 0x009e6c36, 0x008e5f30, 0x006f4322, 0x00522b11, 0x00432408, 0x00513311, 0x00684a1f, 0x00866332, 0x00895f32, 0x007e5023, 0x00865329, 0x00a1683c, 0x0070542f, 0x00372813, 0x000e0f0a, 0x00060f19,
- 0x000a1334, 0x000f153e, 0x00121a45, 0x000d1943, 0x0007183f, 0x000b1a30, 0x0009192b, 0x00091d35, 0x00263d66, 0x005a73a0, 0x008ca5d3, 0x008da5d0, 0x008e9bb4, 0x00959da3, 0x0093958f, 0x00918e7d,
- 0x00937973, 0x00886963, 0x007a5550, 0x00754a45, 0x00784341, 0x007b4342, 0x007b4345, 0x00783e42, 0x006e3b41, 0x0068353d, 0x00622f39, 0x005e2b34, 0x0057242e, 0x004d1e26, 0x004b2125, 0x0050292b,
- 0x005b3b39, 0x00634843, 0x006b524c, 0x006b544c, 0x006f5a52, 0x0074615d, 0x007a6464, 0x007a6360, 0x0079605d, 0x006e5753, 0x00614a4a, 0x00524145, 0x00433a47, 0x00393549, 0x004c4c65, 0x006c7089,
- 0x008c93aa, 0x0099a5b8, 0x00a0adbd, 0x00a2b0bc, 0x00a2b3bf, 0x009eb0c0, 0x0096abbd, 0x0085a0b4, 0x006c8ba5, 0x00607f9b, 0x00587a9e, 0x00577dab, 0x00557dad, 0x00547faf, 0x005583b3, 0x005383b4,
- 0x005b88bc, 0x005c87b7, 0x005b85b3, 0x005a82af, 0x005b80a9, 0x00517eaf, 0x004f7eb0, 0x004a709b, 0x008199b4, 0x00d1dfee, 0x00fafffe, 0x00fffffc, 0x00fcfbf9, 0x00fdfcfe, 0x00dcdcdf, 0x006f7078,
- 0x00182120, 0x00452e2d, 0x00643936, 0x00542b1e, 0x00202b0e, 0x00081d08, 0x00121b11, 0x0026171d, 0x002a1d26, 0x000e1e1a, 0x00041410, 0x00080809, 0x00060405, 0x00020302, 0x00030303, 0x00030304,
- 0x00060708, 0x00070607, 0x00070708, 0x00060706, 0x00070606, 0x000d0204, 0x002d1818, 0x006e5146, 0x0096634c, 0x00a97653, 0x00c18a63, 0x00cb986e, 0x00c49564, 0x00bc8a54, 0x00b37f43, 0x00b57c3a,
- 0x00aa7b42, 0x00a6763e, 0x009f6d38, 0x00976435, 0x008d592f, 0x00814e24, 0x0076431d, 0x00713f19, 0x007a491e, 0x00835226, 0x0080522a, 0x00784d2c, 0x00583a20, 0x0038210d, 0x00130600, 0x000d0c02,
- 0x00090d0f, 0x00010608, 0x00070a0d, 0x00060408, 0x00070004, 0x00040304, 0x00020403, 0x00070706, 0x00050505, 0x00020202, 0x001c1c1c, 0x008f8f8f, 0x00fefefe, 0x00fdfdfd, 0x00fefefe, 0x00fefefe,
- 0x00f9fafb, 0x009c9ea0, 0x00050708, 0x000d0f10, 0x0017191c, 0x001b1d1f, 0x001d2021, 0x001c1f21, 0x001c2020, 0x001d2021, 0x001d1f20, 0x001c1f1f, 0x001f2122, 0x00212223, 0x00232223, 0x00242224,
- 0x00282428, 0x00282427, 0x002b2528, 0x002e292b, 0x00322d31, 0x00312d30, 0x00312f2e, 0x00333230, 0x00363438, 0x00363337, 0x00353538, 0x00343639, 0x0032353a, 0x0030333a, 0x002d3238, 0x002e3137,
- 0x00353532, 0x00716c65, 0x00dbd1c2, 0x00e9d6c2, 0x00d3b394, 0x00c7a380, 0x00cca781, 0x00caa17f, 0x00af8c69, 0x00916e4e, 0x007f5b3a, 0x00936b40, 0x00a78258, 0x00997651, 0x00876745, 0x00806242,
- 0x00957257, 0x00a58064, 0x00bb997c, 0x00bc9878, 0x00a47b5a, 0x00916452, 0x00704a3d, 0x00402718, 0x000c0b00, 0x00030f06, 0x00020a0c, 0x00000718, 0x0004153f, 0x00193367, 0x0029437d, 0x00304b88,
- 0x005e7095, 0x007187b5, 0x00405c96, 0x0021478d, 0x001f4ea4, 0x001b4b9f, 0x0016418f, 0x00204581, 0x001f2c49, 0x000c101d, 0x000d0c0e, 0x000c0c0a, 0x000a0a0a, 0x00080909, 0x00080809, 0x00070609,
- 0x00080808, 0x00070707, 0x00070707, 0x00070707, 0x00070708, 0x0008080a, 0x000a0a0e, 0x000b0a0f, 0x00110f13, 0x00161517, 0x001e1c1e, 0x00222222, 0x0020211f, 0x00555652, 0x00dbddd8, 0x00fcfef8,
- 0x00b8b6af, 0x002e2c25, 0x00383734, 0x003e3e40, 0x00464347, 0x004a4440, 0x0053493a, 0x005a482d, 0x00886c3d, 0x00b3945b, 0x00a58347, 0x00967434, 0x00836735, 0x00765837, 0x00462d19, 0x001a0603,
- 0x00130608, 0x00150f0c, 0x00111309, 0x00151b08, 0x002c391f, 0x00464d3e, 0x004c524d, 0x00505a5b, 0x00a496a9, 0x00ced4e1, 0x00dae7eb, 0x00dbe5db, 0x00f27f8a, 0x00f14744, 0x00f25a3c, 0x00eb9b54,
- 0x00e3b292, 0x00dc7e5f, 0x00d5593a, 0x00d44925, 0x00c47657, 0x00debaa9, 0x00efe0e0, 0x00ebdbf5, 0x00e6d9f4, 0x00e9edf7, 0x00e9f3f5, 0x00e8e7f3, 0x00e0e3ed, 0x00e2e1f0, 0x00e9e9f4, 0x00eeeef8,
- 0x00ebebf9, 0x00e8e9f6, 0x00e7e5f2, 0x00e9e7f4, 0x00e4e4f1, 0x00dde3f3, 0x00dedce8, 0x00f0d8e2, 0x00cab1d5, 0x006b6ca6, 0x003b5397, 0x00395da1, 0x007482a8, 0x00898cab, 0x008a8da8, 0x00929dc4,
- 0x00879aba, 0x00949dbb, 0x00afaecc, 0x00b1a7c2, 0x00bcafcf, 0x00bab3d4, 0x00b6b6d4, 0x00b5bdd6, 0x00c2c7d8, 0x00c6c9cf, 0x00c6c8d1, 0x00c6c4e1, 0x00d0cde6, 0x00dbd4eb, 0x00dbd3e4, 0x00dbd2df,
- 0x00dbd6e0, 0x00b5b1b9, 0x0044424a, 0x000b0f15, 0x000d1518, 0x0012191b, 0x001c2121, 0x002a2926, 0x003e342e, 0x004c3c31, 0x00544233, 0x0054402f, 0x004e3a2a, 0x00453326, 0x0036271c, 0x002a1d15,
- 0x001f1413, 0x001b0f0e, 0x00180b09, 0x00160a08, 0x00130604, 0x00100403, 0x000e0401, 0x000f0502, 0x00160809, 0x00140807, 0x00100604, 0x000d0603, 0x000e0705, 0x00100907, 0x00130c09, 0x0017100c,
- 0x00201713, 0x00241b16, 0x00241e15, 0x00241c15, 0x00221c14, 0x006f7069, 0x00fbfef8, 0x00fcfaf9, 0x00fff9ff, 0x00fffcff, 0x00fbfcfc, 0x00bac5c3, 0x00344f5c, 0x00244967, 0x003c6897, 0x004b7bbb,
- 0x00488bc8, 0x004b8ecb, 0x004b8eca, 0x00468ac4, 0x003f83bd, 0x00397db7, 0x003579b3, 0x003378b2, 0x003879b8, 0x00397ab7, 0x003a79b9, 0x003674b6, 0x003975b7, 0x003b77b8, 0x00326eae, 0x002b69a5,
- 0x002d69a5, 0x003f7eb8, 0x005494cc, 0x00599ad0, 0x0060a0d7, 0x00689fd9, 0x00679dd7, 0x00639fd9, 0x0061abe3, 0x0060aee3, 0x005fafde, 0x005eadd8, 0x0070a8d4, 0x007faad4, 0x00809bc5, 0x007385b0,
- 0x007c5c5f, 0x00674e4e, 0x003e2f2a, 0x001d150d, 0x001f1e12, 0x002b2a1f, 0x0036382b, 0x00434037, 0x00504145, 0x00513c45, 0x004c3836, 0x0049371e, 0x0050433b, 0x005e5864, 0x006b7691, 0x006784af,
- 0x005690c4, 0x004f93cb, 0x004a94d0, 0x004a90cb, 0x004783c5, 0x004582bd, 0x004280b7, 0x00407eb4, 0x00407fb9, 0x003c7db4, 0x003678ac, 0x002e71a2, 0x002f6ea0, 0x00306b9e, 0x0031679d, 0x0035699f,
- 0x003b6fa4, 0x003a71a4, 0x00396fa2, 0x003c73a4, 0x003f74a0, 0x0045759d, 0x004c799f, 0x004e7997, 0x007496b1, 0x0099b7d0, 0x0093b3cd, 0x006d95af, 0x004b6575, 0x00212f34, 0x00181614, 0x002a1e13,
- 0x002c1b0c, 0x002f1f12, 0x0032271e, 0x0036342c, 0x00393e3b, 0x00414039, 0x0048423b, 0x004b4643, 0x004c454b, 0x00443d43, 0x003a343d, 0x00323039, 0x00282a31, 0x002f3339, 0x00373b3f, 0x00424749,
- 0x005b5653, 0x00928e8b, 0x00f1efed, 0x00fffdfc, 0x00fefbfb, 0x00fcfcfa, 0x00f9fcf8, 0x00d3d4cf, 0x005a564e, 0x0029271e, 0x0030301f, 0x0032341a, 0x002d3014, 0x00323114, 0x00444423, 0x004e502f,
- 0x00605a38, 0x00605c39, 0x00616038, 0x0068633b, 0x006c683b, 0x006d6244, 0x006d6346, 0x006f6945, 0x0079714d, 0x00878262, 0x00c3c1a7, 0x00f3f1e6, 0x00fefdfe, 0x00fefefe, 0x00fbf9fc, 0x00fdfcfe,
- 0x00d6dfd9, 0x00919391, 0x00878783, 0x00aba5a0, 0x008d816f, 0x0062583c, 0x00595430, 0x00555130, 0x00514c42, 0x004c4c46, 0x0047494a, 0x0040434f, 0x003b4155, 0x0037405c, 0x002f3b60, 0x00273665,
- 0x001f316b, 0x001e2f6e, 0x001b2c6a, 0x001a2a67, 0x001c2c67, 0x001e2e66, 0x00253367, 0x002d3866, 0x003c3c60, 0x0046425a, 0x004c4855, 0x004f4d55, 0x0052515b, 0x00575765, 0x005b606e, 0x00575e70,
- 0x00575d93, 0x00566699, 0x004e6b9d, 0x003d6da4, 0x002d6abb, 0x002e6fc5, 0x00316ac6, 0x003d6dc8, 0x005d76b9, 0x007287b3, 0x009da5be, 0x00bab3bf, 0x009fbce6, 0x0082a6cf, 0x009fc0e1, 0x00dfecf7,
- 0x00babfd5, 0x004d6093, 0x00193880, 0x002245a0, 0x001e2f8a, 0x0011267e, 0x00041d6f, 0x00001768, 0x0002126a, 0x00021063, 0x00000f5c, 0x0000125b, 0x0001135a, 0x0008165c, 0x00081559, 0x00061255,
- 0x00040a40, 0x00030839, 0x00010534, 0x00000431, 0x0001062b, 0x00000726, 0x00020821, 0x00040a1e, 0x000c0a1f, 0x000c0d1d, 0x00201016, 0x00441a0c, 0x00592c0f, 0x00542709, 0x00552705, 0x00542602,
- 0x0053250c, 0x00542313, 0x00471b0c, 0x00391101, 0x00361202, 0x00481801, 0x00511c00, 0x00542100, 0x00673212, 0x006e3d1f, 0x005f3412, 0x004f280a, 0x004e291a, 0x00533225, 0x006a4b39, 0x007e604f,
- 0x00a1856e, 0x00b59b8a, 0x00d5c2b5, 0x00f3eade, 0x00fffffb, 0x00f9fbfa, 0x00fcfffc, 0x00fafdfb, 0x00fffeff, 0x00fefdfd, 0x00fdfefd, 0x00f7fcf7, 0x00fbfcff, 0x00fcfcfe, 0x00f9fcfc, 0x00f6fafb,
- 0x00f9fbff, 0x00fbfbfd, 0x00fcfcfa, 0x00f9fcfd, 0x00fbfafb, 0x00fafefc, 0x00f7fffa, 0x00f3fdfe, 0x00f1fbff, 0x00ecf6ff, 0x00e3e8f4, 0x00d7d5e0, 0x00d5ccd4, 0x00c0b6c0, 0x00afa8af, 0x00aba5ae,
- 0x00a3aab2, 0x00a0a6b2, 0x009aa1b5, 0x0096a1b7, 0x007a81a0, 0x006a7388, 0x00626b7e, 0x00646776, 0x00817a88, 0x0089828b, 0x005d5157, 0x003e2324, 0x00342029, 0x00221629, 0x001a1737, 0x001b244d,
- 0x00182557, 0x000f1f57, 0x0010255b, 0x003d538b, 0x004d5a97, 0x00264177, 0x001c3e75, 0x0011346a, 0x00203975, 0x0025427c, 0x00274682, 0x00173772, 0x001a3974, 0x001c3a75, 0x00173675, 0x00123371,
- 0x00244473, 0x00475377, 0x009694ae, 0x00786270, 0x004a2832, 0x00240d14, 0x00110713, 0x000c0a19, 0x00090f23, 0x000a1528, 0x001b2939, 0x001a243b, 0x0011162d, 0x000c1029, 0x00070d1e, 0x00050b1d,
- 0x00050717, 0x00363646, 0x00646771, 0x00202228, 0x000b0c16, 0x0006153a, 0x00173462, 0x001f3969, 0x007184b4, 0x004d618e, 0x00273e66, 0x005c789d, 0x005b79a6, 0x0017396b, 0x000d3366, 0x002c548b,
- 0x001c2b4e, 0x000d193e, 0x00171f47, 0x001c1b48, 0x00231e4e, 0x00262557, 0x00363b72, 0x002e3c73, 0x00273e78, 0x001e3a71, 0x00073264, 0x00044072, 0x00103554, 0x002b3946, 0x0024241f, 0x001c0e05,
- 0x00140902, 0x000b0803, 0x00070605, 0x00020605, 0x00070b08, 0x00010f0e, 0x00061929, 0x00183155, 0x00254085, 0x00223c84, 0x00173073, 0x00172c60, 0x004d6080, 0x00425570, 0x001b344e, 0x0044607b,
- 0x00496ea4, 0x00466a99, 0x00284874, 0x00284168, 0x007c8ba6, 0x00566275, 0x000e1725, 0x009ba2ae, 0x00fafdff, 0x00fafcff, 0x00fbfdfd, 0x00fcf8fb, 0x00fafbfa, 0x00f1efe7, 0x00302b1d, 0x00453728,
- 0x00624138, 0x00623f38, 0x005e3c35, 0x00685049, 0x00bdb2ab, 0x00fbf7f6, 0x00fdfcfc, 0x00fcfefc, 0x00fdfdff, 0x00fdfbff, 0x00b1b2b1, 0x00575956, 0x00575858, 0x00676868, 0x00656764, 0x00676765,
- 0x00626864, 0x00636764, 0x00636765, 0x00636767, 0x0065666b, 0x0065676c, 0x0065686f, 0x00676973, 0x006f6a78, 0x006e6a78, 0x006c6873, 0x006f6768, 0x006c6163, 0x00675956, 0x005c4d47, 0x0056463e,
- 0x00543d33, 0x004e3c31, 0x004b3b30, 0x004e3e32, 0x00504238, 0x006f5941, 0x00a1845f, 0x00b49768, 0x00be985e, 0x00b1874c, 0x00a67b41, 0x00a3753f, 0x00a57144, 0x00a2703d, 0x009b6d33, 0x009e6f30,
- 0x009a6a35, 0x008e6035, 0x00774927, 0x005e341a, 0x00523013, 0x0062421b, 0x00846334, 0x0089642e, 0x00825323, 0x00905e35, 0x009a653e, 0x00945e3a, 0x00603c22, 0x002d1a0a, 0x00100c07, 0x000c1216,
- 0x00090b1e, 0x000b0d25, 0x000c122b, 0x000f1b31, 0x00091c32, 0x00091722, 0x00091822, 0x000e2235, 0x00394d78, 0x00657cac, 0x007e97c9, 0x0087a0cd, 0x0091a0ba, 0x00959ea9, 0x00929992, 0x00919383,
- 0x00947f7a, 0x008b706b, 0x007c5d58, 0x0079524c, 0x007a4541, 0x0079403c, 0x00773f3c, 0x00743a39, 0x006b3237, 0x00632a33, 0x0058222b, 0x004f1b23, 0x0048151c, 0x00411015, 0x003c1013, 0x003e1516,
- 0x0042201d, 0x004d2e2b, 0x00593d38, 0x005e473d, 0x00624f46, 0x00665550, 0x006c5a57, 0x00725d5a, 0x0079595c, 0x00705355, 0x00644b4d, 0x0057454a, 0x00483c4a, 0x00393246, 0x0044445c, 0x005c647d,
- 0x00838ca4, 0x00929eb5, 0x0098a5b9, 0x009aaabb, 0x0098adc2, 0x0094adc4, 0x0089a7bd, 0x007599b2, 0x006281a7, 0x0057789e, 0x005077a0, 0x004f7caa, 0x004f7ead, 0x004f7fb0, 0x004f83b2, 0x005084b3,
- 0x005785b9, 0x005784b4, 0x005984b0, 0x005982af, 0x005a80a8, 0x00517dad, 0x00517eae, 0x00486d97, 0x008aa0bc, 0x00dee8f5, 0x00fafffc, 0x00fafbf5, 0x00fdfcf8, 0x00f9f9fd, 0x00cdcfd5, 0x00565964,
- 0x0012131a, 0x0053343b, 0x009c6a6a, 0x00ad756b, 0x00786a4e, 0x00494631, 0x001d1b0d, 0x00220f14, 0x00240f1d, 0x0013161a, 0x00030908, 0x00040402, 0x00060403, 0x00000101, 0x00050405, 0x00030403,
- 0x00040203, 0x00050502, 0x00060a05, 0x00060805, 0x00090808, 0x000a0202, 0x002f1c18, 0x00664c3a, 0x00936345, 0x00aa784f, 0x00c79564, 0x00c79762, 0x00be9158, 0x00b7894e, 0x00b17f40, 0x00ab762f,
- 0x00a77545, 0x009e6d3c, 0x00956432, 0x008d5d2f, 0x00835129, 0x007b4a20, 0x00714016, 0x00734318, 0x00815025, 0x008b542b, 0x00855329, 0x007a4d27, 0x006e4b2b, 0x004b3118, 0x00150600, 0x000e0a00,
- 0x000a0d0b, 0x00030709, 0x00030506, 0x00050306, 0x000a0109, 0x00020004, 0x00020401, 0x00010400, 0x00070707, 0x00030303, 0x001d1d1d, 0x008f8f8f, 0x00fefefe, 0x00fcfcfc, 0x00fdfdfd, 0x00fcfcfc,
- 0x00fafafc, 0x009d9ea0, 0x00050707, 0x000c0f0f, 0x0017191b, 0x001a1d1f, 0x001c1f1f, 0x001a1f1f, 0x001f2023, 0x00202023, 0x001f1f20, 0x001e201c, 0x001f2220, 0x00202320, 0x00202120, 0x00202021,
- 0x002a2428, 0x002b2528, 0x002b2627, 0x002e2928, 0x00342e2e, 0x00322e2d, 0x00312f2f, 0x00343433, 0x003a363a, 0x00393336, 0x00343335, 0x00323134, 0x00303235, 0x00313337, 0x002e3236, 0x002c2c2f,
- 0x00433c39, 0x00978c82, 0x00e4d5c3, 0x00decab3, 0x00d6b598, 0x00d3af8b, 0x00d7b38a, 0x00dbb58a, 0x00d2a986, 0x00be9674, 0x00b58e6b, 0x00c19971, 0x00d2ad89, 0x00d4b08d, 0x00cda786, 0x00c4a080,
- 0x00d0ab91, 0x00d2aa8c, 0x00d2a887, 0x00cea07d, 0x00be8e68, 0x00a37560, 0x00684334, 0x00382210, 0x00161405, 0x00051004, 0x00000b06, 0x0000070a, 0x00040318, 0x000a0c28, 0x00232950, 0x003b4372,
- 0x004d5273, 0x0041517f, 0x00304b85, 0x00264d96, 0x001f50a5, 0x00144593, 0x0019438a, 0x00203f74, 0x001a213c, 0x000f0c18, 0x00100d0e, 0x000b0b09, 0x000a0908, 0x00050706, 0x00040504, 0x00060507,
- 0x00070708, 0x00070708, 0x00070607, 0x00050505, 0x00060607, 0x00070608, 0x0008070a, 0x000a090c, 0x00121012, 0x00181819, 0x001d1e1e, 0x00212322, 0x00222321, 0x005a5a58, 0x00e2e2df, 0x00fcfcf9,
- 0x00b5b9a6, 0x002c2c1c, 0x00403c38, 0x00403d3f, 0x00474447, 0x00494542, 0x005e5449, 0x006f5d4a, 0x00796c36, 0x008e793f, 0x007c5f25, 0x00705016, 0x005d3e13, 0x005b4022, 0x004a3122, 0x0025120f,
- 0x00070600, 0x00080b03, 0x000c0d03, 0x00131a09, 0x00323d25, 0x003b503a, 0x0056625a, 0x00807f88, 0x00cfb9c9, 0x00e5e3eb, 0x00e4eaed, 0x00ddf3e7, 0x00f1a6ad, 0x00ee605d, 0x00f0533e, 0x00eb7435,
- 0x00d28b4c, 0x00e37037, 0x00f35a30, 0x00f6481c, 0x00c54617, 0x00c07654, 0x00e9c1ba, 0x00efe1f8, 0x00d7d9f1, 0x00daddee, 0x00e2e4f0, 0x00eceffa, 0x00eaebf6, 0x00e5e6f2, 0x00e5e2f1, 0x00e9e7f5,
- 0x00e5e9ec, 0x00e7eaf2, 0x00eaeaf6, 0x00e7e5f4, 0x00e6e7f4, 0x00dee5f3, 0x00e0dfed, 0x00f9ddf0, 0x00dbc6d7, 0x00828aaf, 0x00395291, 0x003a61ac, 0x006979ab, 0x00767e9f, 0x0072759b, 0x006b71a8,
- 0x00425e80, 0x00465875, 0x009799b9, 0x00cec5e1, 0x00c1bad2, 0x00b9b8d1, 0x00bbbbd9, 0x00bcc1e2, 0x00b7c4cc, 0x00bdc5cc, 0x00c3c7db, 0x00babde6, 0x00c3c2e1, 0x00d7d5e9, 0x00d7d1e6, 0x00ddd4e4,
- 0x00dadbe1, 0x00d2d5da, 0x00676a73, 0x000b0e15, 0x00071314, 0x000c1312, 0x001a1c1d, 0x00262625, 0x0030301d, 0x003f3723, 0x004f3e2b, 0x0054412b, 0x004f3727, 0x00473224, 0x003b271f, 0x00321d18,
- 0x00231607, 0x00231307, 0x0025120b, 0x0022100a, 0x001e0c0a, 0x00170805, 0x00130506, 0x00140409, 0x000b0a01, 0x000b0800, 0x000a0601, 0x000a0603, 0x00090503, 0x000c0807, 0x00120d0d, 0x00150c0d,
- 0x00111108, 0x0015150d, 0x001d1712, 0x001a140f, 0x001a1612, 0x00696c67, 0x00fffdfd, 0x00fffafe, 0x00f9f9f7, 0x00f8faf8, 0x00fbffff, 0x00bdc7c6, 0x00324e5f, 0x00234868, 0x00396397, 0x004878bb,
- 0x003c88b9, 0x003f87be, 0x004386c1, 0x004183be, 0x003d7fb9, 0x003d7fb9, 0x00397ab8, 0x003778b7, 0x00357eb0, 0x003781b6, 0x003b7bbb, 0x003a70b7, 0x00346fb1, 0x00346fb0, 0x002d68aa, 0x002e6aaa,
- 0x003a7bb0, 0x00498dc0, 0x005b9ad0, 0x005a9ad0, 0x005b9bd0, 0x006795cf, 0x007395d9, 0x00709fde, 0x0058acd5, 0x0053aed3, 0x0056b0d4, 0x0060b3d3, 0x007aaac8, 0x007e99b5, 0x00767a97, 0x006f6080,
- 0x006a493a, 0x005a4030, 0x00432d20, 0x00291b0e, 0x001d1c0d, 0x00272a1b, 0x0039372f, 0x00443e3c, 0x00403836, 0x00423337, 0x004a3736, 0x004d3c28, 0x00524a4f, 0x005c6077, 0x00667aa1, 0x005e86b8,
- 0x00478cbb, 0x00448cbf, 0x004890c8, 0x00488dc8, 0x004683c3, 0x004380bd, 0x00417cb8, 0x003c78b3, 0x00327aa9, 0x003078a9, 0x003273a9, 0x002f70a6, 0x00306ba1, 0x002f669c, 0x0030649c, 0x0033639e,
- 0x00306c98, 0x00336b9a, 0x003a6ea0, 0x003c70a2, 0x003f73a3, 0x004173a0, 0x004c7aa4, 0x004d779e, 0x005885a0, 0x00739eb7, 0x0077a0bd, 0x006c95b2, 0x00617990, 0x003a4b58, 0x001a1e25, 0x00211919,
- 0x001f1b0b, 0x00201d0e, 0x002b241d, 0x00312f2b, 0x0039393a, 0x003e3d3b, 0x00454140, 0x004c4549, 0x00414143, 0x003b3b40, 0x0038353e, 0x002f2d37, 0x0026272f, 0x002a2c32, 0x00373a3f, 0x00484850,
- 0x0056594e, 0x008f9389, 0x00f0efed, 0x00fffdff, 0x00feffff, 0x00fefdfd, 0x00fffcfc, 0x00e0dbd8, 0x00636652, 0x003f442d, 0x00616248, 0x0072734a, 0x00707047, 0x0075724a, 0x008a8560, 0x008e8a64,
- 0x00848553, 0x00848352, 0x00878355, 0x008b8657, 0x008d8858, 0x008d8562, 0x008d8366, 0x00908763, 0x00898c59, 0x0088895e, 0x00b6b49b, 0x00f0ede3, 0x00fffbff, 0x00fefbfd, 0x00fffbff, 0x00fffdff,
- 0x00cfded2, 0x00888f88, 0x00878581, 0x00afa8a1, 0x008f846e, 0x00695e3d, 0x00685d36, 0x00655a35, 0x00555237, 0x00545244, 0x004f4e4a, 0x00474b51, 0x00424658, 0x003b405c, 0x00333b5e, 0x002e3866,
- 0x001c3260, 0x001e2f64, 0x001f2d68, 0x00202c68, 0x00212c65, 0x00232f68, 0x002a336b, 0x00393b68, 0x003c4050, 0x0046454a, 0x00554e4e, 0x0055504b, 0x00575a56, 0x00535d5e, 0x0054636b, 0x005e6f7d,
- 0x00556aaa, 0x00496aa8, 0x00416cb6, 0x003774cc, 0x00297bdf, 0x002574cd, 0x004184d7, 0x006c9ee6, 0x00a7bfe4, 0x00c7d7e0, 0x00e0dbe1, 0x00d9c0cb, 0x0080a0d0, 0x004d77ab, 0x0086a9dc, 0x00e1eefe,
- 0x00c9d7eb, 0x006582ba, 0x0014348a, 0x00193b9b, 0x00201d73, 0x000e196b, 0x0008176b, 0x0006146a, 0x00001259, 0x00001159, 0x0001115b, 0x00011359, 0x00041158, 0x00091358, 0x00090d52, 0x00070c50,
- 0x0000082d, 0x0000072d, 0x0000062d, 0x0002062b, 0x00010625, 0x00040825, 0x00090a24, 0x000d0b21, 0x0004090d, 0x000c0d11, 0x002e1a1a, 0x005b230a, 0x00642a08, 0x005d2700, 0x005f2703, 0x005e2504,
- 0x00512400, 0x00502504, 0x004a1b07, 0x003c1303, 0x003e1900, 0x004d1e03, 0x0060280e, 0x006d371a, 0x007b5731, 0x008c6946, 0x008c6e52, 0x00907964, 0x00ac9a8d, 0x00c7b7b0, 0x00e0d1ce, 0x00e9dbd9,
- 0x00eee3cb, 0x00f3ebd8, 0x00f8eee2, 0x00faf3ed, 0x00fffefe, 0x00fefeff, 0x00fefeff, 0x00fdfbff, 0x00f6fdf5, 0x00f9fef8, 0x00fafcf9, 0x00f1fef7, 0x00f5fcfd, 0x00fbfeff, 0x00fffcff, 0x00fff8ff,
- 0x00f7f9f9, 0x00f8fcfb, 0x00fffeff, 0x00f9fdff, 0x00f5fdfc, 0x00fafefd, 0x00fffefe, 0x00fefeff, 0x00f0fef7, 0x00f2fef8, 0x00fbfdff, 0x00fffcff, 0x00fffbfe, 0x00fffafe, 0x00fffbff, 0x00fffaff,
- 0x00f1fcf6, 0x00f2fcf7, 0x00f3fafe, 0x00f6fcff, 0x00f2f6fc, 0x00f2f5f8, 0x00f5f6fe, 0x00f3f4fb, 0x00f0f4f2, 0x00f3f4f1, 0x00f5efef, 0x00f5eae4, 0x00eadee1, 0x00dcd5e0, 0x00cbc9e4, 0x00b9bfe0,
- 0x0094a8c6, 0x006b80a0, 0x0057648b, 0x00737fa3, 0x007780a4, 0x00627497, 0x0063759c, 0x005e709c, 0x00466189, 0x00415a83, 0x003f5684, 0x00354b7b, 0x002a3f70, 0x0026396a, 0x00253565, 0x001f2d5f,
- 0x000e1d40, 0x00444966, 0x007b6b84, 0x00573948, 0x003f1e26, 0x002d1620, 0x00130816, 0x00080c19, 0x00001212, 0x00001919, 0x00152635, 0x001a1f47, 0x00151634, 0x000a0d20, 0x00080916, 0x00090c0c,
- 0x00040b00, 0x002f322c, 0x00504b55, 0x001c162a, 0x00100a24, 0x000a1542, 0x0022366e, 0x0023396f, 0x004e6893, 0x00354e7a, 0x00102857, 0x00395280, 0x00344e7f, 0x00112d62, 0x00142f67, 0x002c4680,
- 0x000a2938, 0x00112133, 0x00191a34, 0x001c0e2b, 0x00331943, 0x00472e64, 0x0044366f, 0x002f2c68, 0x00163d69, 0x00053a5f, 0x00063465, 0x00113c77, 0x00122a56, 0x00262d4c, 0x00362736, 0x003d2124,
- 0x00260d03, 0x001e0401, 0x00250806, 0x00281108, 0x00231108, 0x00121412, 0x00384454, 0x00415371, 0x00193a65, 0x001f3f6d, 0x00182f5e, 0x0028375f, 0x003c465d, 0x00233242, 0x00203341, 0x004b616f,
- 0x004c6786, 0x00576f8d, 0x0029385b, 0x00232d4c, 0x00788096, 0x004b5360, 0x00121a21, 0x00acafb8, 0x00f0fcf8, 0x00f1fcf7, 0x00f9fdfe, 0x00fdf6fc, 0x00fbfcfa, 0x00e0ddd6, 0x0032291f, 0x00413226,
- 0x00513827, 0x0055392c, 0x00553832, 0x006f5955, 0x00cbc5be, 0x00faf8f6, 0x00fffdff, 0x00fffdff, 0x00f5faf5, 0x00f4f8f3, 0x009b9c9a, 0x00464746, 0x00504f50, 0x005b595b, 0x00615e60, 0x00625f61,
- 0x00586558, 0x005b665c, 0x00636561, 0x00636666, 0x00626569, 0x0060656b, 0x00646370, 0x00666377, 0x005e6471, 0x005f6472, 0x00646471, 0x0068646c, 0x00686063, 0x00655857, 0x00604f4c, 0x00594942,
- 0x00473e2a, 0x00443b2a, 0x00483b31, 0x004a3f39, 0x00504341, 0x00715e43, 0x00a0845f, 0x00a98c5f, 0x00a4873f, 0x00997933, 0x009c7437, 0x009a6e36, 0x00936332, 0x008e5f2b, 0x008e6028, 0x008c5f24,
- 0x00886127, 0x00825c2e, 0x00764b28, 0x00683e23, 0x005e391e, 0x00704b28, 0x00a88358, 0x00c29b6b, 0x00bd9561, 0x00b88e60, 0x00a37152, 0x00814839, 0x00442213, 0x00231109, 0x00180d0d, 0x00151315,
- 0x00101618, 0x00101618, 0x00090d15, 0x00040e12, 0x00031212, 0x00081317, 0x000b131e, 0x000a1629, 0x001e3c5a, 0x0048668b, 0x00637faa, 0x007994be, 0x0092a4c0, 0x0094a1aa, 0x00939999, 0x00919288,
- 0x008e857d, 0x0085756f, 0x00846865, 0x00835d5b, 0x00814a47, 0x007e4542, 0x007f3f41, 0x00743639, 0x00592625, 0x004d191b, 0x00440f15, 0x003e0a12, 0x0038070f, 0x0036060c, 0x0036060c, 0x0034080c,
- 0x00280e06, 0x0031170e, 0x003f251f, 0x004b322d, 0x00574039, 0x00604a49, 0x00674f53, 0x006f5454, 0x006b514a, 0x00694c48, 0x00654849, 0x0060454c, 0x004b3a4b, 0x003d334b, 0x00423e5d, 0x00515375,
- 0x0063748c, 0x007a8ca4, 0x008c9cb7, 0x008ea2be, 0x008aa4c1, 0x007e9dbb, 0x006f8fb0, 0x005f81a3, 0x004b7798, 0x0049769a, 0x004d78a2, 0x004e7caa, 0x00507daf, 0x004e7fb3, 0x005081b8, 0x005181b8,
- 0x004a81ab, 0x005081aa, 0x00567fae, 0x00587fac, 0x00597da8, 0x00507bb0, 0x00537db1, 0x004f709b, 0x008aa5b2, 0x00ddecf1, 0x00fcfefc, 0x00fbfaf4, 0x00fefdf9, 0x00faf9fa, 0x00c0c0cc, 0x003c3f50,
- 0x00000305, 0x0020080b, 0x005f2c2f, 0x0094514d, 0x00b28473, 0x00c6aa9a, 0x00a18680, 0x0062494e, 0x002a2224, 0x00262628, 0x00252627, 0x00121312, 0x00010000, 0x00050405, 0x00050101, 0x00040201,
- 0x00000300, 0x00000300, 0x00070708, 0x000a0909, 0x000d0909, 0x000a0403, 0x0024150e, 0x00705746, 0x00bd986c, 0x00c79e6a, 0x00ca9a63, 0x00c3965d, 0x00bf9559, 0x00b98e4f, 0x00b18140, 0x00ad7735,
- 0x00926c30, 0x008c622c, 0x00895a2a, 0x00855327, 0x007e4a23, 0x007a461f, 0x007c481f, 0x00844f28, 0x00865a23, 0x00895a24, 0x00885426, 0x00815029, 0x007f5934, 0x005d4327, 0x00241204, 0x00170f08,
- 0x00030802, 0x00000400, 0x00020307, 0x00070308, 0x00070006, 0x00020103, 0x00070608, 0x00070607, 0x00030a03, 0x00000200, 0x001d1e1b, 0x0090908f, 0x00fffdff, 0x00fcfbfe, 0x00fefeff, 0x00ffffff,
- 0x00f3f9f8, 0x00989d9d, 0x00030707, 0x000c1010, 0x00161a1b, 0x001b1f20, 0x001e2123, 0x001e1f22, 0x0018201b, 0x001b211e, 0x001f211f, 0x0020211f, 0x00212220, 0x00222223, 0x00242124, 0x00252123,
- 0x0021221d, 0x0025231e, 0x002c2625, 0x0031292c, 0x00322b2c, 0x00312d2b, 0x00332f2f, 0x00383233, 0x0031322b, 0x002f312b, 0x00333131, 0x00343135, 0x00333335, 0x00343438, 0x00323139, 0x002d2d34,
- 0x004f4e3b, 0x00a89f8b, 0x00e5d3bf, 0x00e5c8b2, 0x00dab395, 0x00d3a987, 0x00deb08d, 0x00eabc96, 0x00d7b484, 0x00c6a273, 0x00c6a078, 0x00cfa786, 0x00deb596, 0x00e5be9f, 0x00e5bfa3, 0x00e0b99f,
- 0x00d8b490, 0x00d6ad8c, 0x00d2a283, 0x00ca9774, 0x00bd8764, 0x00a4775f, 0x00613a2e, 0x00301b10, 0x00091902, 0x00001000, 0x00050b01, 0x00060800, 0x00110008, 0x00210d1b, 0x004b374e, 0x00665a76,
- 0x00535662, 0x003c4862, 0x00394d7f, 0x002a4c94, 0x001c4c9f, 0x0016428e, 0x001f4181, 0x00233665, 0x000e1720, 0x00080a07, 0x00110e0b, 0x000d0b0c, 0x000b0909, 0x00080807, 0x00050508, 0x00080608,
- 0x00040601, 0x00040602, 0x00060707, 0x00060708, 0x00070706, 0x00050405, 0x0008060b, 0x000d0a10, 0x000c0e0b, 0x00141512, 0x001d1d1e, 0x00212122, 0x00242422, 0x005e5d5b, 0x00ecebeb, 0x00fffefd,
- 0x00bebcae, 0x00383328, 0x00403a38, 0x003e3c3e, 0x00444346, 0x00464240, 0x00655e52, 0x00877a66, 0x00948458, 0x009e8756, 0x007f622d, 0x00614311, 0x004d3109, 0x00483014, 0x0044311d, 0x00201509,
- 0x00090500, 0x000b0904, 0x000c0e05, 0x00151b0e, 0x002c3520, 0x00324c30, 0x00586d5c, 0x009c97a1, 0x00efcce3, 0x00f7e6f0, 0x00e6ebe8, 0x00ddf9ee, 0x00eecbd2, 0x00de7c77, 0x00dd523a, 0x00f95f25,
- 0x00e78737, 0x00fc8651, 0x00fa743f, 0x00fc592f, 0x00ea4409, 0x00c85326, 0x00e09f86, 0x00e7d3db, 0x00d4d8f7, 0x00ddd6f3, 0x00dfd9f0, 0x00e1e2ed, 0x00ececf9, 0x00efeffb, 0x00e5e6f3, 0x00dcdce6,
- 0x00e2e1ec, 0x00e9e9f5, 0x00e7e8f4, 0x00e5e4f1, 0x00e4e4f0, 0x00dde8f6, 0x00dbdfef, 0x00eacfe8, 0x00e2c5d4, 0x009494b9, 0x002e4681, 0x002c53a8, 0x00374e88, 0x0035436b, 0x00394169, 0x0033387b,
- 0x00142a60, 0x001a2853, 0x006d7196, 0x00c4bed8, 0x00bbb5c7, 0x00b9bad0, 0x00bbbdd5, 0x00b8c2e0, 0x00b7c1dd, 0x00b4b9d6, 0x009ba0c6, 0x00767eb6, 0x008990b3, 0x00bec1d7, 0x00cfcede, 0x00d8d4df,
- 0x00dcd6e5, 0x00e0dcec, 0x00747382, 0x000e0f17, 0x00000c08, 0x000a110c, 0x00151813, 0x00222319, 0x00332d1c, 0x003f3522, 0x004b3b27, 0x00503f29, 0x004d3523, 0x00452f20, 0x003c251a, 0x00382017,
- 0x003a1a0d, 0x0036170b, 0x0035180e, 0x0032180e, 0x0028130c, 0x001f0e07, 0x00170906, 0x00120606, 0x000b0705, 0x000b0706, 0x00080505, 0x00060402, 0x00060400, 0x00070602, 0x000a0906, 0x000c0905,
- 0x000d0c08, 0x0012100d, 0x0015100e, 0x00110e0c, 0x0011100c, 0x00676a66, 0x00fdfdfb, 0x00fffbfd, 0x00fef9fe, 0x00fdfafe, 0x00fcfeff, 0x00bfc7c9, 0x00344f5e, 0x00234868, 0x00356293, 0x004073b4,
- 0x003d83bd, 0x003d81bc, 0x003a7eb7, 0x003b7cb7, 0x00397ab5, 0x003c7cb6, 0x00397bb6, 0x003e80b9, 0x004081bb, 0x003b7eb8, 0x003474af, 0x00356fad, 0x00336eaa, 0x003770ad, 0x003a73af, 0x00407cb6,
- 0x005695c9, 0x005f9bd1, 0x005f9cd2, 0x005a9bcf, 0x005798cf, 0x006e96d3, 0x007695d6, 0x00739dd9, 0x0061a9d2, 0x0062b0d2, 0x0060b2cb, 0x0068aec2, 0x0070939d, 0x0072777f, 0x00705d62, 0x007a5559,
- 0x00734c35, 0x0060422a, 0x00453018, 0x002b1f0a, 0x001c1b0a, 0x0026291c, 0x0034322b, 0x003d3a35, 0x00413737, 0x00483839, 0x00493b39, 0x00494139, 0x00525862, 0x00596e8b, 0x005b80ac, 0x005084bb,
- 0x004488bb, 0x004489bb, 0x00478cc0, 0x00478ac2, 0x004484c1, 0x00427fbb, 0x003e7ab3, 0x003976b0, 0x003375ab, 0x003274ab, 0x002f6fa8, 0x002f6da5, 0x002c689f, 0x002c659b, 0x002b6197, 0x002f6198,
- 0x00316696, 0x00346898, 0x00386a9a, 0x003b6d9d, 0x003d6f9d, 0x003f709c, 0x0045749e, 0x0045729c, 0x004f7fa2, 0x00608eb2, 0x006390b6, 0x006390b2, 0x006387a2, 0x00506b80, 0x00334553, 0x002c353d,
- 0x00282c2c, 0x0029292b, 0x002c2b2d, 0x002f3335, 0x00333a3e, 0x003a4042, 0x003f4145, 0x0041434a, 0x003d3e48, 0x00353741, 0x0032313c, 0x002d2e38, 0x00282a34, 0x002a2c34, 0x0033373a, 0x00434647,
- 0x005c5d53, 0x0095948e, 0x00f2efef, 0x00fffdff, 0x00fefeff, 0x00fefefe, 0x00fdfcfa, 0x00dad8d0, 0x0064654f, 0x0044462d, 0x00666647, 0x00757448, 0x00747446, 0x007e7d4f, 0x008c895a, 0x00848350,
- 0x0085804e, 0x00827d4b, 0x00827b4b, 0x00837c4a, 0x00857e4b, 0x00857e58, 0x00867f5d, 0x0089845a, 0x008a8558, 0x00827f58, 0x00aeab90, 0x00f0eee1, 0x00fffcfc, 0x00fffefe, 0x00fcfcff, 0x00fdfdff,
- 0x00d5dbd8, 0x008b8d89, 0x0087847e, 0x00aea89e, 0x0094896d, 0x006d623a, 0x006b6133, 0x00686031, 0x0060583d, 0x005d5647, 0x0056524b, 0x004e4f51, 0x00474956, 0x003d4258, 0x00353c5a, 0x002f3a62,
- 0x00253361, 0x00253164, 0x00232e64, 0x00222d62, 0x00242c61, 0x00273064, 0x002f3566, 0x003c3b63, 0x0044424f, 0x00514a4d, 0x00585148, 0x00585445, 0x00555d53, 0x004f605e, 0x00577378, 0x00618091,
- 0x004f6ac9, 0x00416dc4, 0x003770ce, 0x002c76e5, 0x001f78e4, 0x002a7ec4, 0x0069b0d8, 0x009fcee8, 0x00dee0f2, 0x00f8ece8, 0x00ebd6d1, 0x00caabc3, 0x005d84c3, 0x003366af, 0x007baae7, 0x00dff0fb,
- 0x00dfe7f8, 0x007a98dd, 0x00123994, 0x0014319a, 0x001e105f, 0x00121166, 0x00081463, 0x00041161, 0x0000135f, 0x00001361, 0x00021360, 0x0003145c, 0x00051356, 0x00071252, 0x00030c48, 0x00000943,
- 0x0002052a, 0x00010629, 0x00000528, 0x00000626, 0x00000723, 0x00010921, 0x0004071d, 0x00080818, 0x0008090c, 0x00130d11, 0x00341a13, 0x005e2105, 0x00622300, 0x00632600, 0x00632800, 0x005f2600,
- 0x00612d0c, 0x005d2d10, 0x004d1e08, 0x00481d09, 0x0059381b, 0x007e5337, 0x009d6e54, 0x00b5886e, 0x00cfab92, 0x00e3c6af, 0x00e6d3c1, 0x00e9e0d5, 0x00f4f1ed, 0x00f9f9fa, 0x00fcfdff, 0x00fafbfe,
- 0x00fcfbef, 0x00fffef4, 0x00fcf7f1, 0x00fdfaf6, 0x00fcfdfc, 0x00fbfbfc, 0x00fafbfd, 0x00f9fcfd, 0x00fdfbfa, 0x00fdfff8, 0x00f7fff9, 0x00f0fffb, 0x00f6fefe, 0x00fcfbfc, 0x00fef3fb, 0x00fdeffe,
- 0x00fcf4fc, 0x00fefafe, 0x00fdfcfe, 0x00f7ffff, 0x00f0fefa, 0x00f7fefd, 0x00fbfdf9, 0x00fffffe, 0x00f7fffd, 0x00fafeff, 0x00fefcfe, 0x00fefbfb, 0x00fffcf6, 0x00fdfdfa, 0x00fffffb, 0x00fdfdfd,
- 0x00f6fcf8, 0x00fafffd, 0x00f8fcff, 0x00f9fcff, 0x00fbfdfe, 0x00fcfdfd, 0x00ffffff, 0x00fefdfe, 0x00fdfefc, 0x00fdfdff, 0x00fcfcf3, 0x00fcfbe3, 0x00fbfaea, 0x00fdfef5, 0x00fafef9, 0x00f7fcfa,
- 0x00ebf6f7, 0x00f2feff, 0x00f2fdfd, 0x00f4fdfa, 0x00f4fcfd, 0x00f0fafe, 0x00eefafe, 0x00ecf7fd, 0x00dfe8f0, 0x00d6dfe6, 0x00c7cfda, 0x00b3bcc9, 0x00abb4c2, 0x00a8b2bf, 0x00a9b3bc, 0x00a6b1ba,
- 0x009f99b7, 0x00b6a8c2, 0x00af97ab, 0x0092747c, 0x006b4f51, 0x003c2c31, 0x0017141a, 0x00060f13, 0x00001515, 0x00001814, 0x000a1b28, 0x00191d4c, 0x001f1e40, 0x001e202f, 0x00111212, 0x00080800,
- 0x000f0c00, 0x0026211d, 0x00332b32, 0x001f162d, 0x00150b34, 0x00060d3b, 0x001f3262, 0x00273c6a, 0x00263b6b, 0x00112554, 0x000e2250, 0x001e3261, 0x00172c5c, 0x000e2453, 0x00142a5a, 0x002a4071,
- 0x0007222d, 0x000c1723, 0x00140f1c, 0x00230c1a, 0x00360b2d, 0x004f2656, 0x00412a60, 0x00342a66, 0x001c426b, 0x00063857, 0x000d3962, 0x0024296e, 0x002c215f, 0x00341c50, 0x00481f45, 0x00612845,
- 0x00651c29, 0x00661c25, 0x0061181f, 0x005c151b, 0x004d0e17, 0x0023131a, 0x00455662, 0x006e7f93, 0x00294360, 0x00243b59, 0x0024324e, 0x003f455c, 0x002f323d, 0x00151e26, 0x001f2e32, 0x001d3032,
- 0x003e4050, 0x00484c61, 0x001c1e39, 0x001d1f3c, 0x00777a8e, 0x00454b52, 0x000e1717, 0x00a9b2ae, 0x00f7fefd, 0x00f9fdfd, 0x00fdfdff, 0x00fdf8fb, 0x00fafbf9, 0x00d1cfc8, 0x002d261a, 0x003b2c1f,
- 0x00503025, 0x0052332a, 0x00523631, 0x0076635f, 0x00d7d3cd, 0x00faf9f8, 0x00fdfcfe, 0x00fcfdfc, 0x00f9faf9, 0x00eff0ef, 0x00898989, 0x003d3c3b, 0x00474646, 0x004f4f4e, 0x00535553, 0x00565856,
- 0x00585d55, 0x005b6059, 0x0060615e, 0x00616262, 0x005f6267, 0x005b6067, 0x005a5e6a, 0x005b5f70, 0x00596074, 0x005a6076, 0x005e5e72, 0x00605d6a, 0x00615c63, 0x005e5759, 0x0059504e, 0x00554d44,
- 0x004d4335, 0x004a4137, 0x00463d37, 0x00483f3d, 0x00484040, 0x00695a43, 0x00947d5a, 0x00998353, 0x00a08442, 0x00997b38, 0x00967335, 0x008a632b, 0x007d5422, 0x007b5220, 0x007e5620, 0x007c551c,
- 0x00794f21, 0x00784e29, 0x00714528, 0x00633b23, 0x0058341c, 0x00613f1e, 0x009b7852, 0x00c39f77, 0x00caa17c, 0x00b18668, 0x00835547, 0x005c2b2e, 0x00290d0d, 0x001e120f, 0x00110e0b, 0x000f1312,
- 0x001b1d19, 0x00181a16, 0x000b0d0a, 0x00050b02, 0x00000f01, 0x00020905, 0x0003070d, 0x00000814, 0x001a2f4c, 0x00425a7d, 0x00557097, 0x00738eb4, 0x008c9eb9, 0x008d9ba6, 0x008e989a, 0x008e9790,
- 0x008d8789, 0x00877a7d, 0x00856e70, 0x00866263, 0x0084514d, 0x007e4842, 0x00773c37, 0x006b322d, 0x00552123, 0x00481619, 0x003f0c11, 0x0039080e, 0x0032060b, 0x002f0409, 0x002f040a, 0x002d040a,
- 0x00250508, 0x002a0a0c, 0x00301213, 0x00391d1b, 0x00462d29, 0x00513a39, 0x005a4243, 0x00614744, 0x00654547, 0x00654345, 0x00634246, 0x005f4049, 0x004b3749, 0x0040344c, 0x003f3b58, 0x00404362,
- 0x00495978, 0x005e708f, 0x006c82a2, 0x006c87a6, 0x00678aaa, 0x005f85a6, 0x00547ba0, 0x004e769d, 0x00517da5, 0x005680ac, 0x005680ad, 0x005380ac, 0x00527eae, 0x004e7eb0, 0x004c7fb2, 0x004b7db1,
- 0x004d7fb0, 0x005280b0, 0x00537fb0, 0x00547ead, 0x00547ea9, 0x00507baf, 0x005078aa, 0x004f709b, 0x009ab1c2, 0x00e7f2fa, 0x00fbfdfb, 0x00fdfcf6, 0x00fdfcf9, 0x00fdfbf9, 0x00aeafb7, 0x00242635,
- 0x0008071b, 0x001c0713, 0x0034070b, 0x00641e1a, 0x009e4b43, 0x00c6847e, 0x00edc0ba, 0x00c2b0ac, 0x00a3a1a1, 0x00a89ea4, 0x009d9498, 0x00565756, 0x000f100e, 0x00030303, 0x00010000, 0x00050505,
- 0x00000100, 0x00000000, 0x00060507, 0x00080708, 0x000a0908, 0x00090704, 0x0020170c, 0x00715d48, 0x00c69e74, 0x00c39a67, 0x00c0935c, 0x00b79056, 0x00b08e52, 0x00a98446, 0x009e7333, 0x009f6d2b,
- 0x008a5f30, 0x00865a2d, 0x00815127, 0x007d4d23, 0x0078461f, 0x0077461e, 0x00835127, 0x008f5c32, 0x0093622f, 0x00925d2a, 0x00885123, 0x00804b21, 0x007e572e, 0x006c4f2e, 0x0036240e, 0x00130b03,
- 0x00050700, 0x00040404, 0x00040106, 0x00060008, 0x00080008, 0x00040105, 0x00060606, 0x00050505, 0x00090908, 0x00030201, 0x001e1e1e, 0x008f908f, 0x00fefffe, 0x00fcfdfb, 0x00feffff, 0x00fdfcfd,
- 0x00f6f8f9, 0x009b9d9d, 0x00050607, 0x000d0f10, 0x00171a1b, 0x001b1f20, 0x001d2122, 0x001d2022, 0x001c2121, 0x001d2122, 0x001f2121, 0x001f211e, 0x0021211e, 0x00232220, 0x00262322, 0x00272322,
- 0x0025211f, 0x0028211f, 0x002c2425, 0x0030292a, 0x00342b2b, 0x00342d2b, 0x00332f2e, 0x00353131, 0x00342f2f, 0x00332f2f, 0x00333032, 0x00343236, 0x00343536, 0x00333537, 0x00313236, 0x002c2f32,
- 0x00655849, 0x00b8a795, 0x00dbc2af, 0x00d4b49e, 0x00d6ab8d, 0x00d4a785, 0x00d4a480, 0x00d8a981, 0x00cea679, 0x00c49d72, 0x00c89f7a, 0x00d2a78a, 0x00deb59c, 0x00e5bea4, 0x00e4bea3, 0x00dfb99e,
- 0x00d8b197, 0x00d6a88e, 0x00c8997b, 0x00bf8e69, 0x00b37e59, 0x00a4755d, 0x005f3d2e, 0x0027180c, 0x0008170b, 0x00061307, 0x00050800, 0x00130600, 0x00341108, 0x004a231c, 0x00633f3a, 0x00674c4b,
- 0x00604847, 0x00494153, 0x003c446c, 0x002a4684, 0x001b458f, 0x001a3f82, 0x001f3a6f, 0x0019294a, 0x000d1217, 0x000d0d09, 0x00110f0b, 0x000d0c0e, 0x00090909, 0x00060706, 0x00050708, 0x00060607,
- 0x00070706, 0x00070705, 0x00070708, 0x00070608, 0x00060606, 0x00040404, 0x00060609, 0x000a0a0d, 0x000e0e0f, 0x00151516, 0x001d1d1f, 0x00212222, 0x00242421, 0x0061615d, 0x00eeeeeb, 0x00fefffb,
- 0x00c1bcae, 0x003e372b, 0x00413b36, 0x003b3c3b, 0x00434246, 0x00413d3d, 0x00514841, 0x00796e5d, 0x00a09069, 0x00ab9768, 0x00967c4b, 0x006d4e28, 0x00614724, 0x005a472b, 0x0054462c, 0x003a311d,
- 0x00161306, 0x000d0c02, 0x000b0b05, 0x001a1914, 0x0037332d, 0x00304429, 0x004a5b48, 0x008f828e, 0x00d3c2d5, 0x00e6dcde, 0x00e4e6e3, 0x00e1e9e5, 0x00e4eaf5, 0x00d3a49b, 0x00c75c43, 0x00fd4817,
- 0x00e79166, 0x00fbcaab, 0x00ffbca6, 0x00e99078, 0x00fc6233, 0x00e9582c, 0x00eb7d5a, 0x00ebb7aa, 0x00d4d4e5, 0x00d9d4e9, 0x00e1dbef, 0x00d5d7e2, 0x00dbdbeb, 0x00e5e6f3, 0x00ececf9, 0x00e8e8f6,
- 0x00e0dfef, 0x00dedeec, 0x00e0e2ec, 0x00e6e5f0, 0x00e4e5f0, 0x00dbe7f7, 0x00dee1f8, 0x00ecccef, 0x00f2cddb, 0x00a3a2bd, 0x0030467f, 0x001b46a4, 0x0019377f, 0x000a204c, 0x000c1c4c, 0x000e176b,
- 0x00071760, 0x00050e45, 0x004a4d77, 0x00a9a6bc, 0x00b6b4c2, 0x00b2b6c8, 0x00b2bbd1, 0x00a2b3d3, 0x008794c8, 0x006871a8, 0x003b4783, 0x00182b73, 0x00495c86, 0x00a2afc8, 0x00cdd3e2, 0x00d3d5df,
- 0x00dbd1e8, 0x00ddd6ed, 0x007a788d, 0x0011121c, 0x00000a02, 0x000b0f08, 0x00181711, 0x00232017, 0x00372f1a, 0x0040361e, 0x004b3b22, 0x00503b21, 0x00533622, 0x004c301e, 0x00472a1d, 0x0047271e,
- 0x0054200c, 0x004c1e08, 0x00491e0a, 0x00431e0b, 0x00371a0d, 0x002b150a, 0x001e0d07, 0x00110705, 0x000a0607, 0x00070709, 0x00050506, 0x00050403, 0x00040201, 0x00040301, 0x00050402, 0x00050403,
- 0x00080808, 0x000c0c0c, 0x000f0c0d, 0x000a0b0a, 0x000b0a0a, 0x00676766, 0x00fffcfd, 0x00fefbfd, 0x00fffaff, 0x00fdf9fe, 0x00fcfdfc, 0x00bfc6c8, 0x0036515e, 0x00254a6e, 0x00386498, 0x004072b7,
- 0x00427fba, 0x003c7bb4, 0x003877af, 0x003677b1, 0x00397ab4, 0x003375ac, 0x003d7bb4, 0x004582bb, 0x004082b9, 0x003d7db5, 0x00427fb5, 0x00477cb1, 0x005184b8, 0x005387bc, 0x00598fc4, 0x006094cb,
- 0x00629bd0, 0x00619cd1, 0x005c99ce, 0x005b98ce, 0x005b99d0, 0x00659ad0, 0x006d9ed4, 0x0070a1d3, 0x0073a1cb, 0x00759cba, 0x007592aa, 0x0072838b, 0x00716c60, 0x00726145, 0x0080623f, 0x008e693a,
- 0x0084633f, 0x006e5232, 0x00463016, 0x00291904, 0x00231a0c, 0x002e2820, 0x0039342f, 0x00413e38, 0x00453d3c, 0x00443e3a, 0x00484441, 0x004b5053, 0x0058718c, 0x005b82b1, 0x005284bd, 0x004282bf,
- 0x004085bc, 0x004185b4, 0x004987b8, 0x004c87b9, 0x004883c0, 0x004780bb, 0x00447bba, 0x003e78b3, 0x003974ae, 0x003672aa, 0x00316fa5, 0x002e6a9f, 0x002b679c, 0x002d6299, 0x002b6095, 0x002c5d94,
- 0x00305f92, 0x00316092, 0x00366696, 0x003a6a98, 0x003c6b98, 0x003e6d99, 0x0041719d, 0x0040719c, 0x004978a4, 0x004e7fab, 0x005084af, 0x005485b0, 0x00588bb2, 0x005a8bb1, 0x005787ab, 0x005884a5,
- 0x005c7d9d, 0x005b7591, 0x004d677e, 0x00435b6b, 0x003a505f, 0x003c4b56, 0x003a4752, 0x003a4653, 0x00353c4c, 0x002e3544, 0x002a2f3e, 0x00222633, 0x00252732, 0x002b2a33, 0x0038373b, 0x004a4848,
- 0x00626158, 0x0097978f, 0x00f1f0ed, 0x00fdfdfc, 0x00fefdff, 0x00fffdff, 0x00fefcfb, 0x00d9d7ce, 0x00626451, 0x0044472c, 0x00646444, 0x00706d43, 0x00716c45, 0x007f7a52, 0x008a855c, 0x007d794e,
- 0x007c744c, 0x007c754b, 0x0080764d, 0x0082784e, 0x0085794f, 0x00857856, 0x00847a58, 0x00867f55, 0x008b8557, 0x0086835a, 0x00b2b196, 0x00f1f0e3, 0x00fffcff, 0x00fffcfe, 0x00fdfbfe, 0x00fcfcfd,
- 0x00d7dcdd, 0x008b8e8a, 0x0086837c, 0x00aea89a, 0x00978967, 0x00726236, 0x00706330, 0x006c622d, 0x00665b3d, 0x00605743, 0x00585246, 0x004f4f4c, 0x0048484e, 0x003d4050, 0x00363b53, 0x0031395c,
- 0x002b3462, 0x002a3163, 0x00282f62, 0x00282e62, 0x002b2e61, 0x002e325f, 0x0034395c, 0x003c3d54, 0x004b4042, 0x00544844, 0x00594f47, 0x00585551, 0x004b5562, 0x004b617e, 0x006c8cb6, 0x005d84bc,
- 0x002b6fd9, 0x002873d1, 0x002d75d5, 0x002d6edc, 0x005085cf, 0x008ebbba, 0x00bbdbac, 0x00d6e1a9, 0x00fee9e7, 0x00fcd5d3, 0x00c3a1b4, 0x008e8cc6, 0x002f6bca, 0x002566bb, 0x0080adeb, 0x00e8ebf5,
- 0x00f5e9f6, 0x008ba1da, 0x000f378b, 0x00032b93, 0x00181164, 0x000e0f5e, 0x000a125f, 0x0004105d, 0x0004115e, 0x0002125f, 0x00051461, 0x0006165d, 0x00091557, 0x0006124d, 0x00030b42, 0x0001073a,
- 0x00070427, 0x00030424, 0x00020524, 0x00010523, 0x00010621, 0x0002071d, 0x00050719, 0x00070712, 0x000a0407, 0x00150c09, 0x002f1c13, 0x00451b04, 0x00552c0b, 0x00643c16, 0x006f4722, 0x00744f2b,
- 0x008b6959, 0x0096756c, 0x00a48b82, 0x00b7a497, 0x00d4cbb7, 0x00e8dacd, 0x00f3e9de, 0x00faefe4, 0x00fdf2e9, 0x00fdfaef, 0x00fdfef5, 0x00fcfdf8, 0x00fefcfb, 0x00fefcfd, 0x00fdfcfe, 0x00fdfeff,
- 0x00fefbf9, 0x00fafbf7, 0x00f9f8f8, 0x00fcfbfc, 0x00fdfefe, 0x00fbfcfd, 0x00fdfdfe, 0x00fefdfd, 0x00fefefd, 0x00fdfcf9, 0x00fefbf9, 0x00fefcf7, 0x00fdfbf7, 0x00fcfbf3, 0x00fef9f3, 0x00fef9f2,
- 0x00fff9f3, 0x00fef9f1, 0x00fffbf7, 0x00fefbf3, 0x00fefff9, 0x00fefefa, 0x00fefffe, 0x00fefeff, 0x00faffff, 0x00fbfffc, 0x00fffdfb, 0x00fffef6, 0x00fffdf4, 0x00fefff9, 0x00fbfffd, 0x00f7feff,
- 0x00f9fdf9, 0x00f9fdfa, 0x00fcfefa, 0x00fefefd, 0x00fffff8, 0x00fefdfa, 0x00fefdf9, 0x00fefdfb, 0x00f9fafc, 0x00fafbfc, 0x00fdfffa, 0x00fcfff1, 0x00fcfef1, 0x00f9fbed, 0x00f9faec, 0x00fdfbf0,
- 0x00fcf9f0, 0x00fbfcf1, 0x00fcfef5, 0x00fbfef0, 0x00fafeef, 0x00fdfef8, 0x00fcfdfd, 0x00fcfdfd, 0x00fafbfe, 0x00f9fafc, 0x00fafafe, 0x00fbfbff, 0x00fdfdff, 0x00fdfeff, 0x00fdffff, 0x00fbfeff,
- 0x00fcf7ff, 0x00f9f2fa, 0x00fdf6fc, 0x00fdf5f3, 0x00f9f4ef, 0x00f6f4f4, 0x00f3f5f7, 0x00eef3f5, 0x00f2f6f7, 0x00f0f2f1, 0x00e5e7ed, 0x00d1d9e6, 0x00c0c9cd, 0x00b1b5b7, 0x0092908f, 0x0073726c,
- 0x00605b59, 0x00655e5d, 0x00695e64, 0x00665d6b, 0x0060586d, 0x0050576c, 0x00404e65, 0x00414f67, 0x0048556f, 0x00273553, 0x000f1d3c, 0x00111e40, 0x00212d4e, 0x001c2645, 0x001c2344, 0x00353c5b,
- 0x000f1b30, 0x0010141f, 0x000c0d0f, 0x00100a06, 0x001e0c18, 0x002e1d3b, 0x002e2751, 0x002d2e62, 0x001b365e, 0x00042444, 0x000b3353, 0x000f2c56, 0x0018335f, 0x00182d5a, 0x002b3864, 0x00373a63,
- 0x002d1f3f, 0x00271b31, 0x002f2135, 0x0032263c, 0x0029253e, 0x00141c3a, 0x0026375a, 0x007188a8, 0x00567088, 0x00233a50, 0x0039465a, 0x00464b5e, 0x00252433, 0x001e212f, 0x00383e4a, 0x000b1420,
- 0x0015111f, 0x00191a2f, 0x00181b3a, 0x001b2148, 0x006f7895, 0x003d4953, 0x00061313, 0x00a3afa6, 0x00fefcfc, 0x00fcfbfd, 0x00fff9fd, 0x00fdfbfd, 0x00fdfefb, 0x00bfbcb6, 0x00272015, 0x0035281b,
- 0x004d2e28, 0x004f322c, 0x00533b37, 0x0081706d, 0x00e7e3e0, 0x00fdfcfd, 0x00fdfdff, 0x00fcfdfe, 0x00fbfcfd, 0x00e7e8e9, 0x00717172, 0x00313131, 0x003e3d3d, 0x00444343, 0x004b4c4c, 0x004d4e4e,
- 0x0057504d, 0x00585450, 0x00595755, 0x005a585a, 0x00585961, 0x00545762, 0x00515766, 0x00505b6c, 0x00505b71, 0x004d5a74, 0x004e5872, 0x0051566b, 0x00525564, 0x0053535b, 0x00545052, 0x00534e47,
- 0x00534a46, 0x004d4744, 0x00444140, 0x00423f41, 0x003f3e44, 0x004e443c, 0x0074644f, 0x0082714f, 0x0095814f, 0x00927b46, 0x00907342, 0x00805f34, 0x00714d2c, 0x006e4a28, 0x006d4b27, 0x0068481e,
- 0x006a4416, 0x00643e1a, 0x005e361f, 0x00532e1d, 0x00442415, 0x00391c0a, 0x004c3118, 0x005b4126, 0x005d402f, 0x004c2e24, 0x00341617, 0x00280814, 0x00211219, 0x00201c20, 0x000b0f0f, 0x00081110,
- 0x00111213, 0x00140f0d, 0x00151311, 0x00191813, 0x000e150b, 0x00060504, 0x00080a0f, 0x00060b13, 0x00283948, 0x004b6274, 0x0056708a, 0x006f8ba7, 0x008597b0, 0x008996a9, 0x008d94a2, 0x008d929d,
- 0x00888993, 0x00857e87, 0x00857379, 0x00836668, 0x0080534f, 0x00764640, 0x006d3833, 0x00602d29, 0x00512424, 0x00441a1b, 0x00391015, 0x00340b12, 0x002e080e, 0x002b070c, 0x002c080d, 0x002d080d,
- 0x002b0910, 0x002c0a12, 0x002e0d15, 0x00300f16, 0x0037181e, 0x003e252a, 0x00452e31, 0x004c3133, 0x00583239, 0x005b333a, 0x005b353c, 0x0055323d, 0x004a3247, 0x00433650, 0x00433e5d, 0x003d4160,
- 0x003c5079, 0x00405880, 0x00456189, 0x003f6188, 0x003f668e, 0x00446e99, 0x004a75a2, 0x00507daa, 0x005e87b3, 0x006288b6, 0x006288b3, 0x005e86ad, 0x005a84ae, 0x005581b0, 0x004f7eb0, 0x004d7db1,
- 0x004f7fb5, 0x004f7db1, 0x00507fb1, 0x00537ead, 0x00527dab, 0x005379ae, 0x004e73a4, 0x005877a1, 0x00adbfd1, 0x00eff6fd, 0x00fbfff9, 0x00fdfbf4, 0x00fffffb, 0x00fffefe, 0x009d9fa9, 0x00181a2c,
- 0x0004082c, 0x00070b1c, 0x001e0a10, 0x00511614, 0x009c1d24, 0x00b0474a, 0x00eaaaa8, 0x00cccabf, 0x00c6dbd2, 0x00e1d9dd, 0x00ecdde4, 0x00cccdce, 0x00818283, 0x00525152, 0x00313130, 0x00171617,
- 0x00101010, 0x000f0e0e, 0x00040406, 0x00020104, 0x000a0b0b, 0x000d0e0f, 0x0019120f, 0x00614f43, 0x00a68562, 0x00967247, 0x00906839, 0x00936d40, 0x008a673d, 0x00825c34, 0x007e542a, 0x00835427,
- 0x0082532c, 0x007f5029, 0x007d4d26, 0x007b4a25, 0x007b4926, 0x00824e2a, 0x008c572f, 0x00955f34, 0x0097612f, 0x00905827, 0x008c5220, 0x00854f1d, 0x007f542a, 0x007f603f, 0x0057412a, 0x00170b0a,
- 0x00060401, 0x00050405, 0x00040206, 0x00040106, 0x00080108, 0x00040204, 0x00060505, 0x00040203, 0x00050508, 0x00010002, 0x00201f20, 0x00909190, 0x00fffefe, 0x00fcfbfc, 0x00fdfefe, 0x00fcfcfc,
- 0x00f8f9fb, 0x009c9d9f, 0x00050708, 0x000d1011, 0x00181a1d, 0x001c1e21, 0x001e2023, 0x001e2123, 0x00222224, 0x00212324, 0x00212424, 0x00222321, 0x00252220, 0x00282322, 0x00292423, 0x002a2522,
- 0x00292324, 0x002a2323, 0x002e2526, 0x0032292b, 0x00362e2d, 0x0038302e, 0x00393030, 0x00383130, 0x00383131, 0x00353130, 0x00343132, 0x00343334, 0x00353436, 0x00343335, 0x00313236, 0x00313336,
- 0x00705a4e, 0x00baa191, 0x00b79885, 0x0098715d, 0x00a6755a, 0x00c08d6f, 0x00c99473, 0x00c99770, 0x00c7996f, 0x00c79c70, 0x00d1a47b, 0x00d7a885, 0x00ddaf91, 0x00dfb195, 0x00dbad90, 0x00d3a688,
- 0x00cc9d82, 0x00c59676, 0x00bb8c68, 0x00b58058, 0x00a9764c, 0x00a46d50, 0x006c3f2f, 0x002d190d, 0x0005100f, 0x0008110f, 0x0016110a, 0x003a2012, 0x00703c1e, 0x007c492c, 0x008c5d40, 0x0091694d,
- 0x00884e30, 0x0068443c, 0x00483c4c, 0x0024315b, 0x001e3c76, 0x00294377, 0x00223259, 0x00161e31, 0x00111311, 0x000e1108, 0x000e1109, 0x000c0d0c, 0x00090909, 0x00070907, 0x00060808, 0x00060505,
- 0x00070706, 0x00060705, 0x00070706, 0x00060606, 0x00060608, 0x00040407, 0x0007060b, 0x000a0a0d, 0x000e0e11, 0x00131214, 0x001c1b1d, 0x001f1f1f, 0x00222320, 0x00666763, 0x00f2f3f0, 0x00fefffb,
- 0x00c1bcb0, 0x00463b32, 0x00423d38, 0x003e393a, 0x003b3a3e, 0x00413d3d, 0x003f392f, 0x00605745, 0x008e805b, 0x00a49365, 0x009d8759, 0x007a5e3a, 0x006f5634, 0x00665535, 0x00524628, 0x004d432a,
- 0x0030301b, 0x001e1a0d, 0x00121008, 0x0027211d, 0x004a413f, 0x00404730, 0x00434e3a, 0x007d747d, 0x00b8b9c7, 0x00cdcfce, 0x00cccfca, 0x00d2ced3, 0x00d6e1f1, 0x00ddc3bd, 0x00c9694d, 0x00f93406,
- 0x00d28477, 0x00eed6d2, 0x00eae7e0, 0x00cfbab1, 0x00ee6e47, 0x00f4623b, 0x00ee714b, 0x00eea893, 0x00dbd8e0, 0x00d7d4e2, 0x00d9d7e5, 0x00dddce7, 0x00d5d7e3, 0x00dad9e8, 0x00e6e6f3, 0x00eceefa,
- 0x00e5e6f2, 0x00dfe1ed, 0x00dedfea, 0x00e4e2ed, 0x00e1e2ed, 0x00d2e0f0, 0x00d7ddf6, 0x00eed1f7, 0x00fad6e2, 0x00b2afcb, 0x003f598f, 0x001b44ae, 0x00193d85, 0x00162e5e, 0x000d1f52, 0x00111974,
- 0x00112070, 0x00101757, 0x004d5079, 0x00a19fb5, 0x00b4b4bb, 0x00b0b8c6, 0x00b1bfd4, 0x00899ec2, 0x00404f8d, 0x00253078, 0x0012216c, 0x0009216f, 0x003a5180, 0x0095a5c1, 0x00cfd6e7, 0x00d3d5e0,
- 0x00dbd4eb, 0x00e3daf5, 0x0086839a, 0x00151722, 0x00010b03, 0x000c0d05, 0x0018150c, 0x00232013, 0x00372c16, 0x0043361e, 0x004c3b1e, 0x00503b20, 0x00573b21, 0x00543724, 0x00503021, 0x00512e23,
- 0x00632a10, 0x005c270e, 0x0052240d, 0x0050220f, 0x003d1c11, 0x00331910, 0x0023100a, 0x00120705, 0x000a0508, 0x0006060b, 0x00040509, 0x00050504, 0x00030301, 0x00010200, 0x00020200, 0x00000201,
- 0x00030503, 0x0009090a, 0x000a0b0b, 0x0009080b, 0x00070908, 0x00656366, 0x00fefdfe, 0x00fffbff, 0x00fff9ff, 0x00fffaff, 0x00fbfcfc, 0x00bec5c8, 0x00344e5e, 0x00264b70, 0x00376599, 0x003d71b5,
- 0x003d7ab0, 0x003b78b0, 0x003777af, 0x003773af, 0x003676af, 0x003775ac, 0x00397ab1, 0x004080b8, 0x004580b8, 0x003f7cb6, 0x003f7aad, 0x005486b4, 0x006194c3, 0x006397c8, 0x00699dcc, 0x00679fce,
- 0x00629bce, 0x00629ace, 0x005f99ce, 0x005e99d0, 0x005e99d1, 0x005b9dcb, 0x005ea1ca, 0x00639dc6, 0x00748fb9, 0x007781a2, 0x00737186, 0x0077656c, 0x007e654e, 0x007d6238, 0x0082692f, 0x008f752d,
- 0x00866e43, 0x00705b35, 0x00564324, 0x0043341d, 0x00382d21, 0x003b332d, 0x00423b36, 0x0047423c, 0x0048453d, 0x00504d45, 0x00585a58, 0x005d6976, 0x006283a3, 0x005a8cbf, 0x004a87c5, 0x003d84c5,
- 0x004187bc, 0x004384b2, 0x004985b1, 0x004b85b8, 0x004983c1, 0x004a7fbc, 0x00447ab3, 0x003c76ae, 0x003772ab, 0x00336fa6, 0x002c6a9f, 0x002c679b, 0x002c6599, 0x002f6397, 0x002e6194, 0x00306194,
- 0x002f5e8e, 0x002f5f8e, 0x00336190, 0x00376492, 0x003b6694, 0x003f6a97, 0x00406c98, 0x00406e99, 0x003f749f, 0x004678a6, 0x00497eaf, 0x004c86b8, 0x00518dc2, 0x005894c8, 0x005d9bcd, 0x0063a1d5,
- 0x006da3d0, 0x0073a0ca, 0x006f9bba, 0x007092b0, 0x0069879f, 0x0065798e, 0x005a6b7c, 0x004f6174, 0x00404d5f, 0x00373f52, 0x0032394b, 0x002b303f, 0x0023252e, 0x0028282d, 0x003b3a3c, 0x00514f4f,
- 0x0064645a, 0x009b9992, 0x00f3f3ee, 0x00fefffc, 0x00fffdff, 0x00fffcff, 0x00fcfbf9, 0x00d8d5cf, 0x0062644f, 0x0045472d, 0x00606041, 0x006a6645, 0x006a6243, 0x007a7254, 0x008b825f, 0x007e734f,
- 0x00766b48, 0x00766b49, 0x007a6f4c, 0x007e7250, 0x00837753, 0x00847957, 0x00847b56, 0x00868053, 0x008a8457, 0x0084815a, 0x00b0af92, 0x00f0efe3, 0x00fefcfe, 0x00fdfbff, 0x00fdfbfe, 0x00fcfbfd,
- 0x00d7dae0, 0x008d8f8e, 0x0087847e, 0x00b0a79a, 0x00938460, 0x00716131, 0x0070622b, 0x006e6429, 0x00665a3a, 0x00615840, 0x00585245, 0x004e4e4a, 0x0046464b, 0x003c3f4f, 0x00373c55, 0x00353c5e,
- 0x002e355f, 0x002e3363, 0x002c3162, 0x002d3063, 0x002e2f61, 0x002f335a, 0x00343a52, 0x003a3b49, 0x00473e3d, 0x00514541, 0x00564c48, 0x00544d55, 0x00485572, 0x00586fa3, 0x00688ed1, 0x004c79ca,
- 0x001577e3, 0x001d76d4, 0x002774cc, 0x003e73d9, 0x008ea9d6, 0x00d0e1b6, 0x00d3d87d, 0x00e6d878, 0x00f9d3cb, 0x00e4b0bb, 0x00ad8fb2, 0x006e84d6, 0x001e6cda, 0x002066bf, 0x007fa7df, 0x00efe9ec,
- 0x00fae8e6, 0x009da8d8, 0x00103582, 0x00022b94, 0x000d1668, 0x000c105f, 0x000b125c, 0x0007125b, 0x0004135e, 0x00041460, 0x0001155e, 0x0004165a, 0x00061654, 0x0006114b, 0x00020a42, 0x00020439,
- 0x00060422, 0x00020320, 0x00000321, 0x00000421, 0x0000041e, 0x0002051c, 0x00040616, 0x00050710, 0x000b0605, 0x001d1310, 0x003a2c24, 0x0054392f, 0x00796248, 0x00a1876b, 0x00bba386, 0x00cfbba1,
- 0x00e1d1ca, 0x00eddcdc, 0x00f5e9e9, 0x00fbf3ee, 0x00f9fbf0, 0x00f7faf5, 0x00f8fefb, 0x00f7fdfa, 0x00f9fcfa, 0x00fafcf9, 0x00fdfdf9, 0x00fffdf8, 0x00fffdf9, 0x00fffcf9, 0x00fcf8f5, 0x00fcf7f5,
- 0x00fcfcfc, 0x00fcfdfc, 0x00f7f8fa, 0x00f8fbfd, 0x00eff2f3, 0x00f7f9fa, 0x00f8f8fa, 0x00fcfcfc, 0x00fefdfb, 0x00fefbf8, 0x00fdfaf9, 0x00fef8fe, 0x00fbfafb, 0x00f7fcfb, 0x00f5fdf6, 0x00f3fdf2,
- 0x00f5fdf7, 0x00f8fcf7, 0x00fbfcf8, 0x00fffdfa, 0x00fcfcfa, 0x00fefbfe, 0x00fefefe, 0x00fcffff, 0x00f9ffff, 0x00fbfffd, 0x00fdfefb, 0x00fdfef8, 0x00fffef3, 0x00fefffb, 0x00f9fdfb, 0x00f4fefd,
- 0x00fefffa, 0x00fbfdf9, 0x00fafdf6, 0x00fbfef8, 0x00fefff6, 0x00fafdf6, 0x00fafcf5, 0x00fcfdf9, 0x00fdfefc, 0x00fcfcff, 0x00f7fcfc, 0x00f4fcf9, 0x00fafff7, 0x00fdfafb, 0x00fcf7fa, 0x00fef8fa,
- 0x00fcf5f7, 0x00fff9f8, 0x00fcf9fa, 0x00f5f3f4, 0x00fefffb, 0x00fcfcf6, 0x00fcfef7, 0x00fcfef7, 0x00fdfefd, 0x00fefffe, 0x00fbfcfd, 0x00fcfdff, 0x00fefeff, 0x00fefefd, 0x00fcfefb, 0x00fbfefb,
- 0x00f6fbfd, 0x00fdfcfd, 0x00fdfcf8, 0x00fcfaf2, 0x00fcfbf5, 0x00fbfcfb, 0x00f9fefe, 0x00f8fdfc, 0x00fcfcfe, 0x00fdf8fe, 0x00faf9f9, 0x00f1fdf0, 0x00f3fef2, 0x00f8fef9, 0x00fffffd, 0x00fcfbf9,
- 0x00fdfbfa, 0x00fdfaf9, 0x00fdf9fb, 0x00fefafa, 0x00faf7f2, 0x00eff1f6, 0x00dde6ed, 0x00d6dee4, 0x00c5d1de, 0x00b3bfca, 0x00a2adb9, 0x00a3acb6, 0x00aeb5c1, 0x00a4a8ba, 0x009da0b3, 0x00a3a7b9,
- 0x0074738f, 0x006f6d7c, 0x003f4041, 0x001b2017, 0x000e1414, 0x001b2435, 0x00212b4f, 0x00202e5c, 0x001e315a, 0x000f284b, 0x0017314d, 0x000f2843, 0x0008244a, 0x000b2a57, 0x002f4b7a, 0x0036477a,
- 0x00222e59, 0x00191e47, 0x00161e45, 0x00202953, 0x00142753, 0x00182959, 0x0018305f, 0x0045618b, 0x0064829f, 0x0037516a, 0x00415164, 0x003e4457, 0x00181729, 0x00202336, 0x00434c5f, 0x001c293e,
- 0x000c0e1f, 0x000c112c, 0x00151f44, 0x001f2d5b, 0x0065789b, 0x002a404c, 0x00091819, 0x00a9b4ab, 0x00fcf9f9, 0x00fef8fd, 0x00fef6fd, 0x00fdfcfd, 0x00fdfcfb, 0x00b0aba6, 0x00231e11, 0x00322516,
- 0x004b2d25, 0x0050332d, 0x0059403d, 0x008c7c7a, 0x00f2efed, 0x00fdfdfd, 0x00fdfefd, 0x00fefdfc, 0x00fdfcfd, 0x00e0e0e0, 0x00616161, 0x002e2e2e, 0x0039393a, 0x003c3c3d, 0x00444446, 0x00454647,
- 0x00514644, 0x00514947, 0x00514d4b, 0x00514d4f, 0x004c4e55, 0x004a4e5a, 0x00485161, 0x00475468, 0x0045546b, 0x0043536c, 0x0045536c, 0x00485067, 0x00494e5f, 0x004a4e57, 0x004c4e51, 0x004f4d4b,
- 0x004e4944, 0x004a4746, 0x00404241, 0x003f3f46, 0x003a3b45, 0x0042393a, 0x005a4e40, 0x0063563d, 0x0073623b, 0x00725d34, 0x00715830, 0x006c5030, 0x00614026, 0x00593721, 0x00533318, 0x00502f11,
- 0x00543107, 0x004f2c0a, 0x00492711, 0x00432316, 0x00361a0e, 0x002b1106, 0x002a1201, 0x00270e00, 0x001d0800, 0x001e0505, 0x00170106, 0x0019050e, 0x001b171b, 0x00151b1a, 0x0007140f, 0x0004110e,
- 0x000c0e0e, 0x00100a0b, 0x00140d0f, 0x001d191d, 0x00131715, 0x000f0b0a, 0x000a090a, 0x00000608, 0x002d3f49, 0x00667a88, 0x00738da0, 0x00859db3, 0x00899db4, 0x008d99af, 0x008f96aa, 0x008c8fa4,
- 0x00858a98, 0x0085808d, 0x0082747c, 0x0084676a, 0x007c534e, 0x0074453f, 0x00663530, 0x00592a26, 0x004a2523, 0x00411d1e, 0x00341216, 0x002c0a12, 0x0027060d, 0x0025050b, 0x002b0b10, 0x00300f14,
- 0x0036131a, 0x00391822, 0x003b1923, 0x003a1821, 0x003a1a23, 0x00391f26, 0x003a2324, 0x003e2222, 0x00492228, 0x004e242b, 0x004f272f, 0x004c2833, 0x00472e44, 0x00433651, 0x00433f60, 0x00404566,
- 0x0039527c, 0x0036537d, 0x00365681, 0x00305581, 0x00345e8b, 0x003e6a98, 0x004976a4, 0x005483b1, 0x005e87b6, 0x006088b6, 0x00658ab5, 0x006689b1, 0x005c86ad, 0x005982ae, 0x004f7cab, 0x004b7cad,
- 0x004b7aae, 0x004d7baf, 0x004c7cac, 0x004f7aab, 0x004e78a7, 0x005177ab, 0x004b6ea0, 0x005d79a2, 0x00b8cad9, 0x00f5faff, 0x00fafcf6, 0x00fefcf3, 0x00fefdf9, 0x00fffcfd, 0x008f919b, 0x00131528,
- 0x00020c31, 0x0000081b, 0x000f0407, 0x00421411, 0x00a61824, 0x00ab333d, 0x00d08c89, 0x00bdc7b5, 0x00abd6c2, 0x00d9d6d9, 0x00e8d7df, 0x00e4e6e6, 0x00dddcde, 0x00c6c5c6, 0x00aaacaa, 0x00838282,
- 0x00656565, 0x00666665, 0x003e3d3c, 0x00181815, 0x00040506, 0x00090a11, 0x000c070a, 0x003f3026, 0x0088684d, 0x00876341, 0x0079542f, 0x007b5935, 0x0071502f, 0x00714c2f, 0x00734a2b, 0x00794b2a,
- 0x00764a21, 0x00794d25, 0x007c4e27, 0x007e4e2a, 0x0082502f, 0x008a5733, 0x00935e36, 0x00996337, 0x0094602d, 0x008b5322, 0x0087501b, 0x0088501d, 0x0080552a, 0x0084623f, 0x00634e32, 0x001e120b,
- 0x00030100, 0x00050304, 0x00030308, 0x00030007, 0x0006000a, 0x00050204, 0x00030406, 0x00040101, 0x00050606, 0x00020000, 0x0020201e, 0x008f918f, 0x00fffeff, 0x00fcfbfd, 0x00fbfdfe, 0x00fbfcfd,
- 0x00f8fafc, 0x009c9ea0, 0x00030709, 0x000c0f11, 0x00181a1d, 0x001d1e21, 0x001e2023, 0x001e2123, 0x00222323, 0x00212524, 0x00222525, 0x00232423, 0x00252322, 0x00282422, 0x00292522, 0x00292521,
- 0x002e2524, 0x002f2424, 0x00302828, 0x00332d2c, 0x003a3030, 0x003b3230, 0x0038332f, 0x0039312e, 0x00362f2f, 0x00373030, 0x00332f30, 0x00323131, 0x00353334, 0x00313031, 0x002f3031, 0x00323336,
- 0x00846d5f, 0x00c7ac9c, 0x00a88774, 0x007e5540, 0x007c4a30, 0x009f6b4d, 0x00b78160, 0x00c4906c, 0x00c6996f, 0x00c59a6e, 0x00cd9f72, 0x00d8a57b, 0x00dba984, 0x00d8a683, 0x00d09e7a, 0x00c89974,
- 0x00c09069, 0x00bb8961, 0x00b18054, 0x00ae7a4b, 0x00a66f40, 0x00a46845, 0x007b4731, 0x003f2114, 0x00080e12, 0x0016181b, 0x0036312e, 0x0063443b, 0x00875234, 0x00834e2c, 0x00986a44, 0x00ac8860,
- 0x00ab6234, 0x00865440, 0x00493137, 0x00171a3e, 0x001c3368, 0x002d416e, 0x00222d4e, 0x00141926, 0x00121411, 0x0011150d, 0x000d110b, 0x000c0e0e, 0x00090809, 0x00090a08, 0x00060704, 0x00090707,
- 0x00060605, 0x00050505, 0x00060606, 0x00050506, 0x00070608, 0x00050508, 0x0007070a, 0x000a0a0d, 0x000e0d0e, 0x00151415, 0x001b1a1b, 0x001e1f1e, 0x0020201e, 0x00686966, 0x00f6f7f4, 0x00fdfffc,
- 0x00c4bfb0, 0x004b4134, 0x00453831, 0x003a3130, 0x00332e35, 0x00312f33, 0x002e2b27, 0x00474134, 0x007f6d50, 0x00a48f63, 0x00a38960, 0x00654a27, 0x00573e1e, 0x00534220, 0x00493a1b, 0x00544a2b,
- 0x00544e38, 0x00474130, 0x00464035, 0x00504d44, 0x00665d5a, 0x00525340, 0x00565845, 0x00868282, 0x00b0b9c1, 0x00b2bebb, 0x00b7bab9, 0x00c8bdc6, 0x00becad7, 0x00dacccd, 0x00ce8878, 0x00e24f32,
- 0x00cb9b9c, 0x00d8d5e2, 0x00e9f8fc, 0x00d3dce6, 0x00ef8e76, 0x00f08155, 0x00f27b4d, 0x00f5a277, 0x00e9d8d1, 0x00dcdae1, 0x00d5d6e5, 0x00d8dae5, 0x00dfe0ec, 0x00dadbe7, 0x00d7d7e3, 0x00dbdcea,
- 0x00e5e6f2, 0x00e8e9f7, 0x00e2e1f0, 0x00dcdbeb, 0x00dbdfec, 0x00dae5f7, 0x00dcdff8, 0x00e5d1f1, 0x00f5deec, 0x00c8cfe7, 0x00788dc1, 0x003156b2, 0x00213f8b, 0x002e4579, 0x003e4e83, 0x0048549c,
- 0x00525ea3, 0x00666fa6, 0x009092bb, 0x00adabc2, 0x00c6c4d1, 0x00c1c2d0, 0x00bdc8e1, 0x008091b9, 0x001a2d6f, 0x00091f6c, 0x00163185, 0x000d2b7c, 0x00344a81, 0x008a98bb, 0x00ced3eb, 0x00d2d1df,
- 0x00d9d3e9, 0x00e2e0f3, 0x008f8f9e, 0x00141721, 0x00030703, 0x000c0b05, 0x0019130a, 0x00242011, 0x00372a19, 0x0043341e, 0x004e3b22, 0x00533b1d, 0x00603d24, 0x00603821, 0x005d3320, 0x005b3220,
- 0x00763216, 0x006f3113, 0x0067290d, 0x005b230a, 0x00492111, 0x003a1e12, 0x0027110c, 0x00130907, 0x00090608, 0x00040407, 0x00060607, 0x00050503, 0x00040404, 0x00000101, 0x00020100, 0x00010001,
- 0x00020202, 0x00040403, 0x00080607, 0x00050404, 0x00070507, 0x00616263, 0x00fefdff, 0x00fefdff, 0x00fffbff, 0x00fefbfc, 0x00fcfefe, 0x00bac2c3, 0x00304a5d, 0x0023496b, 0x00356496, 0x00396fac,
- 0x003878b4, 0x003576b3, 0x003776b4, 0x003374b2, 0x003074b0, 0x003279b0, 0x003c7eb3, 0x004987b7, 0x004f7fab, 0x0035638d, 0x00264a6f, 0x00446376, 0x005c7c90, 0x00607f94, 0x00668499, 0x00607e97,
- 0x006583a1, 0x005e7f9f, 0x005c80a2, 0x005b80a6, 0x005c82a9, 0x005c88a1, 0x00578094, 0x00557189, 0x005d6279, 0x00695f6e, 0x00785f63, 0x0088675d, 0x008d6847, 0x007c5b29, 0x00816221, 0x0093772b,
- 0x00886b47, 0x00745c38, 0x00725c3c, 0x00715e44, 0x00584736, 0x00463a30, 0x00433b38, 0x00424042, 0x004a5158, 0x00627175, 0x006f8492, 0x006a879c, 0x00628db5, 0x00588bc1, 0x004584c1, 0x003b81bf,
- 0x004286be, 0x004586b7, 0x004886b8, 0x004984b5, 0x004681bd, 0x00457bb3, 0x003d73ac, 0x003770a6, 0x00356da4, 0x002e699f, 0x002c669c, 0x00286398, 0x002f6599, 0x00326597, 0x00356495, 0x00336091,
- 0x00325f93, 0x00305d90, 0x00315e91, 0x00315d8f, 0x00376293, 0x00346191, 0x00346291, 0x00386896, 0x004070a3, 0x004277a9, 0x004782b4, 0x00468dbc, 0x004f95c8, 0x004d96c8, 0x005096c9, 0x005197cd,
- 0x00619cd0, 0x006ca1d1, 0x0076a7d4, 0x0079a7ce, 0x007ca2c9, 0x007ca0c3, 0x00809ec0, 0x007b97b4, 0x007889a4, 0x00778194, 0x00747685, 0x005b5b66, 0x00333238, 0x002b2a2c, 0x003d3d3e, 0x00545453,
- 0x006f6764, 0x00a19997, 0x00f4f2f0, 0x00fefefe, 0x00fefcfd, 0x00fdfcfb, 0x00fbfdfa, 0x00d9dad7, 0x00696b5b, 0x00494b35, 0x006c6a54, 0x00777256, 0x0079725b, 0x00878166, 0x00979176, 0x008a846a,
- 0x00847a61, 0x00867b61, 0x00897e65, 0x008b8069, 0x008c8368, 0x008d8567, 0x008e8666, 0x00928a69, 0x0097906f, 0x00918c6f, 0x00b6b3a0, 0x00efeee4, 0x00fefcff, 0x00fffeff, 0x00fbfbfe, 0x00fcfcfc,
- 0x00d8d9de, 0x008e8e8f, 0x00898784, 0x00aca99c, 0x00918662, 0x006e5f2f, 0x0074622d, 0x0075622d, 0x006c5b39, 0x00635940, 0x00585344, 0x004e4e4a, 0x0045464c, 0x003e4252, 0x003a3f59, 0x00363e61,
- 0x00323765, 0x00313364, 0x002f3362, 0x002e3260, 0x002f335d, 0x002d3552, 0x00353a4b, 0x003c3943, 0x004a3936, 0x004d3e36, 0x00554547, 0x00494653, 0x004d608d, 0x00688cce, 0x00527fd7, 0x00376cd0,
- 0x001276e1, 0x001c75d9, 0x00317adb, 0x004e7ee4, 0x00b2bad4, 0x00dbd691, 0x00e8d762, 0x00f7dc61, 0x00d8a290, 0x00b07e91, 0x00a08dc2, 0x004474c2, 0x001c69e0, 0x002063c3, 0x00779bd9, 0x00e7e5e9,
- 0x00feefec, 0x00b1b3d8, 0x001d3078, 0x00042086, 0x00061674, 0x00081267, 0x000c1266, 0x00081261, 0x00051361, 0x0002135e, 0x0002145e, 0x00001357, 0x00030f4c, 0x00030c42, 0x00040536, 0x0005022c,
- 0x0009041e, 0x00030119, 0x0002031a, 0x0007091f, 0x0015182a, 0x001f222f, 0x00383a43, 0x0054535a, 0x00796f72, 0x00988f8c, 0x00c6bbb8, 0x00dcd2c9, 0x00f2e5db, 0x00fbeee0, 0x00faefe0, 0x00fdf7ea,
- 0x00fcfcfc, 0x00f9fcfd, 0x00fbfbfe, 0x00fbfeff, 0x00fcfffd, 0x00f6fefc, 0x00f5fdfc, 0x00f5fdfe, 0x00f6fcfc, 0x00fbfffd, 0x00f9fdf7, 0x00f9faf3, 0x00fcfbf6, 0x00fcf8f6, 0x00fffafa, 0x00fffcfc,
- 0x00fbfdfe, 0x00fcfcfc, 0x00f8f2f4, 0x00e0d6d9, 0x00b9afaf, 0x00958b8a, 0x007f7877, 0x007e7a76, 0x008c857f, 0x00978d86, 0x00a89b9c, 0x00b7a4aa, 0x00bbaeb1, 0x00c1bfb6, 0x00cacbbf, 0x00cbcfbd,
- 0x00d3d0c5, 0x00d7d8cd, 0x00e6e1e1, 0x00eae4e3, 0x00ede5ea, 0x00eee9f2, 0x00f1eef7, 0x00f3f5f4, 0x00f6f8f8, 0x00fbfcfd, 0x00fbfafb, 0x00fbfbf9, 0x00fdffee, 0x00fcfff6, 0x00f7fdf9, 0x00f1fdfd,
- 0x00fbfcf8, 0x00fcfdf9, 0x00fdfdf9, 0x00fefefb, 0x00fefef9, 0x00fdfef8, 0x00fcfdf8, 0x00f9fbf4, 0x00fdfdfe, 0x00fffeff, 0x00fafdfd, 0x00f5fcfc, 0x00fbfeff, 0x00fcfafe, 0x00fbf9fc, 0x00fbfafd,
- 0x00fcf7fd, 0x00fdf8fc, 0x00fff9fd, 0x00fefdfd, 0x00fcfbfc, 0x00fbfef8, 0x00fcfef3, 0x00fafef6, 0x00fefdfb, 0x00fefffc, 0x00fefffe, 0x00fcfefe, 0x00fbfbfd, 0x00fafafa, 0x00fdfefa, 0x00fcfefa,
- 0x00f4f9ff, 0x00fcfdfd, 0x00fafef7, 0x00fefef7, 0x00fcfdf8, 0x00fafbfa, 0x00fcfefd, 0x00fcfcfb, 0x00fff6fb, 0x00fdf6fa, 0x00f9f8f8, 0x00f5feee, 0x00fafff6, 0x00fbfff7, 0x00fdfcfa, 0x00fefcfa,
- 0x00fdf9fa, 0x00fcfafe, 0x00fefaf9, 0x00fcfdf6, 0x00fcfdf2, 0x00f7fdf8, 0x00f4f9fa, 0x00f5fbfc, 0x00f8fdff, 0x00f6fdfd, 0x00f6fcfd, 0x00f6fcfb, 0x00fafefd, 0x00fbfdfc, 0x00fbfcfc, 0x00f8f9fc,
- 0x00faf7fd, 0x00f9f8fb, 0x00f3f6f6, 0x00f1f8f2, 0x00edf7f6, 0x00e9f4f4, 0x00ecf5f6, 0x00e7f1f8, 0x00e5eff9, 0x00d2ddf0, 0x00c6d0e6, 0x00adbcc9, 0x008196ad, 0x006a809f, 0x00778fb4, 0x006c81a6,
- 0x005e6e92, 0x00607090, 0x00526080, 0x003d4f6f, 0x003e567b, 0x00455a87, 0x00374a78, 0x00223a5f, 0x005b708c, 0x00566a7e, 0x004b5868, 0x002d3441, 0x00111225, 0x001b2033, 0x002d364d, 0x0016233a,
- 0x000e1323, 0x000c142a, 0x00101938, 0x00263359, 0x00637490, 0x0021313c, 0x001f282b, 0x00bec0bb, 0x00fefafb, 0x00fcf8fc, 0x00fff7fd, 0x00fbfcfc, 0x00fefafb, 0x00a09a97, 0x0021190f, 0x00312519,
- 0x00462d27, 0x004a342f, 0x00584545, 0x0096888a, 0x00f6f2f3, 0x00fdfdfc, 0x00fbfdfb, 0x00fcfcfb, 0x00fdfafe, 0x00d4d4d6, 0x00565757, 0x00333433, 0x003c3b39, 0x003d3b39, 0x00484543, 0x00474442,
- 0x00514241, 0x00524544, 0x00504747, 0x004c4548, 0x0045464c, 0x00424751, 0x003f4a58, 0x003c4a5f, 0x003a4a67, 0x00394c69, 0x00394b68, 0x003d4963, 0x0042495e, 0x00454956, 0x00484950, 0x004c494b,
- 0x00474245, 0x00424041, 0x003d4045, 0x00393b45, 0x00363b4b, 0x003b3a44, 0x00464346, 0x00423d39, 0x00463d2a, 0x0041351d, 0x0042311c, 0x00412b18, 0x003d2313, 0x00371c0a, 0x00351908, 0x00361a05,
- 0x00391c07, 0x00321701, 0x0035160c, 0x0035160f, 0x0032150b, 0x00331708, 0x00351e08, 0x00321c06, 0x00251209, 0x001d0b0e, 0x001c0b14, 0x00191117, 0x00151315, 0x000d1212, 0x000b1411, 0x0009100e,
- 0x00130e0f, 0x00120d0f, 0x00130c11, 0x00131016, 0x00121217, 0x00100f12, 0x000f0d0f, 0x0003050a, 0x00505965, 0x00a9b8c2, 0x00c7d8e4, 0x00c0d5e2, 0x009bacbc, 0x008492a6, 0x008e98ad, 0x008d98ad,
- 0x00878b9b, 0x00858390, 0x00847881, 0x007f696d, 0x00785251, 0x0069413e, 0x005e302e, 0x00502421, 0x00492225, 0x003f1a1d, 0x00341015, 0x002b090e, 0x0027050b, 0x0029080f, 0x0033131a, 0x003b1e26,
- 0x0045242f, 0x004a2c36, 0x004e333b, 0x004b3138, 0x00432a32, 0x003c272c, 0x00382325, 0x00391d21, 0x003f191e, 0x003f171e, 0x00431b25, 0x00482431, 0x00472f44, 0x00443750, 0x0045425f, 0x00434867,
- 0x0038507c, 0x0033507c, 0x00335380, 0x002e5483, 0x00315f8f, 0x004273a2, 0x005181ae, 0x005585af, 0x005c84b1, 0x006088ae, 0x00688cb4, 0x006687b5, 0x005c85b0, 0x00567fac, 0x004c79a9, 0x004577a6,
- 0x004874a9, 0x004875a9, 0x004a78aa, 0x004b77a7, 0x004e76a5, 0x004b77ac, 0x00466d9e, 0x00617da4, 0x00c4d2e0, 0x00f6fbff, 0x00fbfbf8, 0x00fcfdf5, 0x00fdfcf9, 0x00f9fafe, 0x007d7f88, 0x0011101e,
- 0x00090529, 0x0002111d, 0x000b0b0e, 0x00351813, 0x00a51626, 0x00a22a31, 0x00c27675, 0x00bac1ae, 0x009ec2b4, 0x00c6c9ca, 0x00daced6, 0x00d8d7d5, 0x00e2e1e1, 0x00ebeae8, 0x00eeecec, 0x00e4e0e1,
- 0x00e3e1e3, 0x00eae9ea, 0x00c1bfbf, 0x00706f6e, 0x00191919, 0x00010208, 0x00060408, 0x001b110b, 0x00452818, 0x0061442f, 0x00755943, 0x00745c46, 0x00755b45, 0x00795842, 0x007b533a, 0x0079492e,
- 0x00734626, 0x00764927, 0x007b4d29, 0x007f502a, 0x008a592f, 0x00905e32, 0x00976438, 0x009b693a, 0x00955e32, 0x00845220, 0x00814b1c, 0x00874d20, 0x008b5a37, 0x00876644, 0x007a614b, 0x00433826,
- 0x000a0708, 0x00030604, 0x00010406, 0x00000103, 0x00080408, 0x00030602, 0x00040807, 0x00030706, 0x000a0a0d, 0x00050307, 0x00242125, 0x00908f92, 0x00fefcfe, 0x00fdfbfc, 0x00fdfcfc, 0x00fdfdfb,
- 0x00fafafd, 0x009c9d9f, 0x00030507, 0x000d0e10, 0x00191a1b, 0x001d1e1f, 0x001f2021, 0x001e2122, 0x00232426, 0x00232527, 0x00252526, 0x00262422, 0x00282421, 0x00292522, 0x002a2622, 0x002c2622,
- 0x00312623, 0x00312823, 0x00352a26, 0x003b2d29, 0x003c302c, 0x003a322c, 0x0039302b, 0x00392f2a, 0x00352f2a, 0x00362f2a, 0x00352e2a, 0x00342e2b, 0x00373131, 0x00332f30, 0x002f2c2d, 0x00363233,
- 0x008b7866, 0x00d2b9a7, 0x00cfaf9c, 0x00bd9680, 0x00be9072, 0x00b78766, 0x00bb8764, 0x00c6926e, 0x00cb9b70, 0x00c89b70, 0x00ce9e73, 0x00d09c72, 0x00d09d76, 0x00cc9972, 0x00c59369, 0x00bb8d61,
- 0x00bd885f, 0x00b28354, 0x00ad7949, 0x00a5723f, 0x00a26d38, 0x009e693b, 0x00885938, 0x00533621, 0x00201815, 0x00372a27, 0x006a554d, 0x0095735d, 0x0098623f, 0x00814f27, 0x00956439, 0x009e7547,
- 0x00b0613a, 0x00824c35, 0x003c1f1c, 0x0008051a, 0x00152348, 0x002d3759, 0x0021253e, 0x00121321, 0x00141411, 0x0010160d, 0x000c110b, 0x000c0c0c, 0x000b0a0b, 0x00080908, 0x00080908, 0x00070709,
- 0x00070605, 0x00060505, 0x00060506, 0x00050507, 0x00070609, 0x00050508, 0x0005060a, 0x0006070b, 0x000e0c0f, 0x00121113, 0x00191819, 0x001b1b1c, 0x00202020, 0x006d6d6c, 0x00f9faf7, 0x00fbfdf9,
- 0x00c8bea9, 0x00584433, 0x0049362a, 0x003e2a28, 0x002c232c, 0x00272630, 0x0026282d, 0x002e2d2d, 0x006e5c42, 0x00a78e63, 0x00a88d5f, 0x0070582a, 0x004c350e, 0x004e3913, 0x004c3a1a, 0x00524626,
- 0x00554d32, 0x0058513c, 0x005d5748, 0x00635e51, 0x0065625b, 0x00575747, 0x005a5e4c, 0x00868a82, 0x00a8aeb1, 0x00b0bbc3, 0x00cad0dd, 0x00d3dae6, 0x00ded5e4, 0x00e8d8e4, 0x00d3bcc8, 0x00c4a3b0,
- 0x00c0d2c5, 0x00d2dfee, 0x00dfe4fe, 0x00dcd7fb, 0x00e0afab, 0x00e19767, 0x00ec974d, 0x00f9a551, 0x00f8d0af, 0x00e7e4e6, 0x00d6def1, 0x00d6d6df, 0x00dadbe7, 0x00ddddeb, 0x00dedeec, 0x00dfdeee,
- 0x00dcddeb, 0x00e1e0f1, 0x00e5e4f7, 0x00e1e1f5, 0x00dbd8eb, 0x00ddd7ee, 0x00e1e0f5, 0x00dee2f3, 0x00d9e4f4, 0x00ccdffb, 0x00a4b6e4, 0x005f73b2, 0x003a4690, 0x005e66a4, 0x009ca5d6, 0x00a2afcc,
- 0x00b3b6d5, 0x00b7bbdb, 0x00b7bbd9, 0x00b7b9d7, 0x00bfbad2, 0x00bbb2cb, 0x00bbb7d4, 0x009593bd, 0x00264484, 0x00062a79, 0x000b338b, 0x0003267b, 0x00354587, 0x009597c5, 0x00d8d0f2, 0x00dacee0,
- 0x00d6d4de, 0x00dde0e7, 0x00909399, 0x001b1c21, 0x00070405, 0x000f0b06, 0x001c140c, 0x00291e14, 0x0039291d, 0x00453223, 0x00513b25, 0x00573d23, 0x00674124, 0x00693a1e, 0x006c3518, 0x006f3619,
- 0x0081340e, 0x00853812, 0x00792e07, 0x00702705, 0x005a2710, 0x00442113, 0x0026100b, 0x0011090b, 0x000a0503, 0x00060200, 0x00080403, 0x00050302, 0x00020304, 0x00000203, 0x00020306, 0x00010307,
- 0x00000302, 0x00020202, 0x00040402, 0x00040102, 0x00070605, 0x00626063, 0x00fefefe, 0x00fffdfe, 0x00fefbf6, 0x00fefbf4, 0x00fbfdf8, 0x00b8c1be, 0x002c4658, 0x00224a69, 0x00336592, 0x003871a7,
- 0x00337cbc, 0x003276be, 0x002f75c0, 0x002b72bf, 0x002779c0, 0x003283bd, 0x003a85b0, 0x003c7b9b, 0x003d5761, 0x003a4045, 0x00453f31, 0x006b5f35, 0x008c7d56, 0x0090805d, 0x00927e5e, 0x00897458,
- 0x007f6e54, 0x00776355, 0x006e5e56, 0x006c5e5c, 0x00645759, 0x006a5249, 0x00664936, 0x00634431, 0x005f472c, 0x006a4e2f, 0x007b603c, 0x0082653c, 0x00846235, 0x0081592a, 0x008a5f2e, 0x00996b38,
- 0x0078593d, 0x006c4f31, 0x00735836, 0x007a5f3e, 0x005d422a, 0x00331d11, 0x0024191c, 0x001d1b2d, 0x0023456b, 0x004e83ad, 0x005f97c6, 0x006091bf, 0x005c8fbf, 0x00538cbb, 0x004a87b6, 0x004582b4,
- 0x004185b6, 0x004186b7, 0x004186b9, 0x003e81b6, 0x003c7ab3, 0x003b73a6, 0x00386c9d, 0x0039699a, 0x0031699f, 0x002e679e, 0x002e669d, 0x002b6599, 0x00326597, 0x00376997, 0x003d6794, 0x0038628c,
- 0x00315b9b, 0x002f5998, 0x002e5895, 0x002b5691, 0x002e5a94, 0x002d5b94, 0x002f5f98, 0x003768a1, 0x004175b0, 0x00457db6, 0x004789ba, 0x003c90b5, 0x004493b8, 0x004693b8, 0x005094bc, 0x005294be,
- 0x005992bf, 0x005d94c5, 0x00679bce, 0x006c9fd5, 0x00729ed9, 0x0065a3df, 0x006aa9e1, 0x0075a7dc, 0x00879fc2, 0x00929ab0, 0x009c97a0, 0x008d7f82, 0x00524242, 0x00372d2c, 0x00423f42, 0x0058595e,
- 0x00746969, 0x00a49a9b, 0x00f5f0f2, 0x00fdfdff, 0x00fefcff, 0x00fbfdfc, 0x00f9fefc, 0x00d9dcde, 0x007b7a7d, 0x00676664, 0x00999991, 0x00b2b3a5, 0x00c1c1b1, 0x00c9c9bb, 0x00d1d0c1, 0x00cac7bc,
- 0x00c3c3b4, 0x00c4c4b6, 0x00c8c6b8, 0x00cbc9bc, 0x00cecbbc, 0x00cecaba, 0x00cdc7b7, 0x00cfc6ba, 0x00d0cac3, 0x00d0cec7, 0x00dcddd4, 0x00f3f5ef, 0x00fefdfc, 0x00fffefc, 0x00fcfbf7, 0x00fefff9,
- 0x00d4d8da, 0x008a8e8d, 0x00858984, 0x00a8a99d, 0x00928968, 0x006e5d32, 0x00775e30, 0x007c6033, 0x006e5d3c, 0x00655a43, 0x00585346, 0x004c4d4c, 0x0045454f, 0x003f4257, 0x003b3f5d, 0x00363c63,
- 0x00323864, 0x00313462, 0x00323660, 0x0030345a, 0x00333757, 0x002f3649, 0x00363a42, 0x003c383a, 0x004b3527, 0x004e3b30, 0x00463e3e, 0x003d4455, 0x005075ad, 0x006093e0, 0x003c7ad7, 0x002b6dda,
- 0x00236ece, 0x002973e4, 0x003171eb, 0x00568af3, 0x00c3cdda, 0x00e9d891, 0x00fbde65, 0x00ffd952, 0x00d2a57d, 0x009f81a0, 0x00737ebf, 0x001c69a2, 0x001b57ca, 0x002351c1, 0x007493e8, 0x00cfe5f8,
- 0x00f5f9f7, 0x00c6c2e1, 0x00393475, 0x00101373, 0x00021678, 0x00011372, 0x00061772, 0x00051269, 0x000a1865, 0x0005125c, 0x0002135b, 0x00000c51, 0x00000540, 0x00070132, 0x00110227, 0x00200723,
- 0x00131020, 0x0023222e, 0x00373741, 0x004f4f55, 0x007e7f81, 0x009d9f9d, 0x00babab8, 0x00d0cfcd, 0x00e1ddde, 0x00f0ecef, 0x00fafbfb, 0x00f7fcfb, 0x00fdfcfd, 0x00fff9ff, 0x00fff7fe, 0x00fff9fe,
- 0x00f8fdfc, 0x00f7fdfd, 0x00f8fefe, 0x00f6fdfc, 0x00fefcfd, 0x00fafbfb, 0x00fcfbfa, 0x00fafcfd, 0x00f2f9fa, 0x00f8fefc, 0x00f6fbf7, 0x00f9fef8, 0x00fcfef9, 0x00fffbf9, 0x00fdf1f2, 0x00f9eaec,
- 0x00e5e4e3, 0x00e3d7d7, 0x00d5babe, 0x00bb9196, 0x0088595b, 0x00623b36, 0x0046281e, 0x00392213, 0x003a2616, 0x003f271a, 0x00422718, 0x00462816, 0x004f2b14, 0x00543118, 0x0058371b, 0x005b3a1f,
- 0x005c3f23, 0x00664c37, 0x00786157, 0x0073635d, 0x0076656b, 0x00675c74, 0x006c6577, 0x00757870, 0x00767872, 0x0088848f, 0x008c8193, 0x009e93a1, 0x00b0ac96, 0x00b8b9ac, 0x00cbd0d4, 0x00cdd4f2,
- 0x00eae5e5, 0x00ece8e7, 0x00f4f1f2, 0x00f8f7f5, 0x00fcfcfd, 0x00fbfdfb, 0x00fafcfb, 0x00fafcfb, 0x00fbfefd, 0x00fcfeff, 0x00fafbf8, 0x00f9f8f6, 0x00fffdfc, 0x00fdfdff, 0x00fcfdfd, 0x00fcfdfc,
- 0x00fcfffb, 0x00fdfdfd, 0x00ffffff, 0x00fefffb, 0x00fdfffc, 0x00fafdfa, 0x00fafdfb, 0x00f6f9fc, 0x00f8f9fb, 0x00f8fbfb, 0x00fafdfc, 0x00fafcfd, 0x00fbfcfd, 0x00fefeff, 0x00ffffff, 0x00fdfbfe,
- 0x00f9fef9, 0x00fdfffc, 0x00fcfffc, 0x00fefeff, 0x00fdfdff, 0x00f9fbf9, 0x00fcfdfb, 0x00fdfffc, 0x00fcfcf4, 0x00f9f8ef, 0x00fbf9f4, 0x00fcfefb, 0x00fdfefd, 0x00fcfcf7, 0x00fcfdf7, 0x00f8fcf5,
- 0x00fcfff8, 0x00fcfdf9, 0x00fdfdf9, 0x00fdfdf9, 0x00fcfefb, 0x00fcfcfb, 0x00fefdfd, 0x00fffdfe, 0x00fcfcff, 0x00fafbfc, 0x00fafafa, 0x00fbfcfb, 0x00fdfdfd, 0x00fcfffd, 0x00f7fcfa, 0x00f6fefa,
- 0x00fcfefd, 0x00fffffe, 0x00fefffd, 0x00fefffb, 0x00fdfcfa, 0x00fdfef8, 0x00fcfcf7, 0x00fdfdf9, 0x00fdfffe, 0x00fefefc, 0x00fdfdfa, 0x00f9fff2, 0x00fafef5, 0x00fafff5, 0x00f8fffa, 0x00f9fffa,
- 0x00f2fef6, 0x00f2fcf6, 0x00f1f8f8, 0x00ebf1f0, 0x00e0e7e4, 0x00d7e0e1, 0x00c2cbd2, 0x00b3bbc1, 0x00bec0c3, 0x00c5c7cb, 0x00bebec4, 0x00a9adb0, 0x00959aa4, 0x00939daa, 0x007b8799, 0x006d7a8d,
- 0x002f373b, 0x001a1f25, 0x00161920, 0x0032313a, 0x00717076, 0x00494a4b, 0x00595757, 0x00d1cdce, 0x00f9f8f6, 0x00fcfbfb, 0x00fff9fb, 0x00fbfdfb, 0x00fcf8f7, 0x00918b8a, 0x00201613, 0x00312420,
- 0x00382d27, 0x00403533, 0x00524749, 0x009e9398, 0x00f5eff3, 0x00fefbfc, 0x00fcfdfa, 0x00fafaf9, 0x00fbfcfd, 0x00c5c8c7, 0x00505352, 0x00363835, 0x003d3a36, 0x00443d38, 0x004e443e, 0x004f443d,
- 0x0052413e, 0x00544643, 0x00514644, 0x00494343, 0x00414346, 0x003c434a, 0x0036424f, 0x00324155, 0x002b3f5e, 0x00283e62, 0x00283e62, 0x002e405f, 0x0038415d, 0x0040435a, 0x00464354, 0x004a424d,
- 0x00473c4a, 0x00433c48, 0x003b3b45, 0x00343949, 0x00303b4e, 0x00323d55, 0x00333f56, 0x00323d55, 0x00333c50, 0x00363c48, 0x0035383d, 0x00312f30, 0x002a2118, 0x0028190c, 0x00291404, 0x002d1301,
- 0x0020160b, 0x00231211, 0x002a1219, 0x002d0d13, 0x003a1707, 0x00452609, 0x0052370e, 0x004f390f, 0x002d1e0c, 0x001a0e11, 0x00160e18, 0x00121014, 0x00131010, 0x00130e11, 0x00110d0d, 0x00130e0e,
- 0x00100e08, 0x00111011, 0x00111012, 0x000f1113, 0x000d0e13, 0x00080d10, 0x00090e11, 0x00080a0f, 0x00747579, 0x00dcdde1, 0x00e7e9ed, 0x00e1e5e9, 0x00a9b6bc, 0x0080939a, 0x00809aa1, 0x007e9ba3,
- 0x00868b97, 0x00878691, 0x00817a84, 0x007d6a73, 0x00715458, 0x00674246, 0x00593034, 0x00502629, 0x00461e23, 0x003e161c, 0x00300b10, 0x0027070b, 0x0028070c, 0x002d0c12, 0x00391b22, 0x00442931,
- 0x004d373c, 0x00534046, 0x0058474d, 0x0057464b, 0x004f3d46, 0x0047363f, 0x00443037, 0x00432731, 0x00452227, 0x00431d25, 0x0045202a, 0x00482734, 0x00473246, 0x00463c53, 0x00484662, 0x00444b68,
- 0x00355178, 0x0032517a, 0x0030527e, 0x002f5886, 0x00376795, 0x004578a4, 0x005486ae, 0x00588aaf, 0x00628baa, 0x006890aa, 0x00658fae, 0x005e8bb4, 0x005586b1, 0x00507fac, 0x004776a7, 0x004473a4,
- 0x004574a5, 0x004574a7, 0x004974a8, 0x004b75a8, 0x005074a7, 0x004976ab, 0x00436d9d, 0x006484a6, 0x00d2dce8, 0x00f8fcff, 0x00fcfbfd, 0x00f9fcf9, 0x00fbfefd, 0x00eef2f5, 0x0068686f, 0x000f0d12,
- 0x001e001a, 0x00091014, 0x0003150f, 0x00202018, 0x00991f2c, 0x0092252d, 0x00b96d6a, 0x00cbb0a6, 0x00b3b4b3, 0x00b9c0c3, 0x00cacfd4, 0x00d2d2ce, 0x00dbd7d7, 0x00dcddda, 0x00e5e4e3, 0x00eee9e9,
- 0x00ecece8, 0x00f0f0ec, 0x00e6e5e3, 0x00c3c0be, 0x0074726f, 0x00353533, 0x001a1717, 0x00100705, 0x00110802, 0x00231a16, 0x00282423, 0x003c3c3a, 0x00615851, 0x007b6353, 0x00835d43, 0x00814d2b,
- 0x00744c2f, 0x0078502e, 0x00815732, 0x0085582d, 0x008f612f, 0x00966632, 0x009a6a36, 0x009d6d3a, 0x008e5f31, 0x007d5024, 0x007f4e27, 0x00884b28, 0x008a583f, 0x007f5943, 0x00897061, 0x00807263,
- 0x002e2e28, 0x00060c05, 0x00000900, 0x00000400, 0x00010902, 0x00010b02, 0x00030f0a, 0x00020e0c, 0x000e0e16, 0x000e0a13, 0x002e2731, 0x00969096, 0x00fef9fc, 0x00fdf9f8, 0x00fffbf8, 0x00fefdf8,
- 0x00fafafb, 0x009d9e9e, 0x00040505, 0x000d0d0d, 0x001a191a, 0x001e1d1d, 0x00201f1f, 0x00212120, 0x00252424, 0x00272626, 0x00292627, 0x002c2525, 0x002d2525, 0x002d2625, 0x002e2724, 0x002f2622,
- 0x0033271e, 0x0037281f, 0x003c2b1f, 0x00402e20, 0x00413023, 0x003a3225, 0x00373226, 0x003a2f26, 0x00382f22, 0x003a2f24, 0x003a2d24, 0x00382a24, 0x003b2d2c, 0x00372a2c, 0x0034272b, 0x0042343a,
- 0x00948a6d, 0x00dccaae, 0x00d9bea2, 0x00d4af92, 0x00d3a483, 0x00d1a17d, 0x00cf9c76, 0x00d29f7a, 0x00d1a37b, 0x00cda37b, 0x00ca9f79, 0x00c79a73, 0x00c39670, 0x00c2946e, 0x00bd8e67, 0x00b3865d,
- 0x00b18151, 0x00ae7e4b, 0x00a87440, 0x00a16f3a, 0x00a27039, 0x0095773e, 0x00856d3b, 0x00624422, 0x003f210a, 0x005e3c21, 0x008c694a, 0x009f7a4f, 0x008c612e, 0x008c5f2b, 0x00b68355, 0x00b37b53,
- 0x00945b49, 0x00704636, 0x0033150a, 0x00130602, 0x0018191d, 0x00242329, 0x001d1c24, 0x0016141c, 0x00121316, 0x000d1411, 0x000b0f0f, 0x0009090d, 0x000a080d, 0x0009080b, 0x0008080a, 0x0007070a,
- 0x00070609, 0x00060509, 0x00060509, 0x00060508, 0x00070709, 0x00060606, 0x00050605, 0x00060606, 0x000b0b0b, 0x00111111, 0x00151515, 0x001a1a1a, 0x00212022, 0x00737474, 0x00fdfdfc, 0x00fcfdfb,
- 0x00ccbfae, 0x00634a3b, 0x0051372a, 0x00422a24, 0x00302429, 0x0024222a, 0x001f2025, 0x001c1d1d, 0x004c3d28, 0x0088714d, 0x00a0875d, 0x007d673e, 0x00553f1d, 0x00452e0f, 0x004f3a1c, 0x00524324,
- 0x0051462d, 0x00594d39, 0x00625844, 0x00645b4b, 0x00665d50, 0x00615b4f, 0x00666457, 0x007b7b74, 0x00a2a7a9, 0x00c6ced4, 0x00e3ecf5, 0x00e6ebf5, 0x00ece5f3, 0x00eee2ec, 0x00e9d4de, 0x00e2cad4,
- 0x00f9ae9e, 0x00dca59a, 0x00e4b8af, 0x00f7d8cf, 0x00efa78b, 0x00df7247, 0x00f37442, 0x00fb8756, 0x00f9d0bc, 0x00ebf6f1, 0x00d9ecf8, 0x00dddee9, 0x00dfdeeb, 0x00e1e0ed, 0x00deddeb, 0x00d5d7e5,
- 0x00dfdff0, 0x00dcddef, 0x00e2e1f4, 0x00e2e4f7, 0x00dedef1, 0x00d9d4eb, 0x00ded8ea, 0x00e5dfeb, 0x00e7e5ec, 0x00e3e3f6, 0x00d3d2f4, 0x009c9ece, 0x00575b97, 0x006f78ac, 0x00b4bce8, 0x00afbbdd,
- 0x00b0b2d2, 0x00aaadcd, 0x00a2a5c3, 0x00a3a4c1, 0x00b3acc4, 0x00bfb3cc, 0x00cec9e4, 0x00b1b1d9, 0x003b5496, 0x00062978, 0x00012b81, 0x0003257d, 0x0038488b, 0x009498c7, 0x00d1ceeb, 0x00d7cede,
- 0x00d6cfda, 0x00dddde5, 0x0092949a, 0x00222125, 0x00080305, 0x00110d06, 0x001c160a, 0x00292015, 0x00382b1a, 0x00443320, 0x00533b25, 0x00624229, 0x006f4429, 0x00713e22, 0x0071371a, 0x0076371a,
- 0x00863911, 0x008d3d16, 0x0086350e, 0x007e2f0f, 0x00652a1a, 0x0049231a, 0x0027100f, 0x000f080c, 0x00080506, 0x00070201, 0x00080403, 0x00020203, 0x00020305, 0x00040406, 0x00070809, 0x0007090a,
- 0x00060707, 0x00060706, 0x00040602, 0x00020301, 0x00060504, 0x00646063, 0x00fffdfd, 0x00fefdfe, 0x00fefdf7, 0x00fdfbf5, 0x00fcfef9, 0x00b7c0c0, 0x002a4255, 0x00214666, 0x0034648d, 0x003c73a4,
- 0x004f769f, 0x005378a3, 0x005176a3, 0x00466998, 0x0046709a, 0x004b7897, 0x00326073, 0x00214852, 0x002c3637, 0x003c3834, 0x005d503d, 0x00897346, 0x00b3996d, 0x00c2a57d, 0x00c8a980, 0x00c0a17a,
- 0x00bb9876, 0x00b29074, 0x00a4876c, 0x00977b62, 0x00836956, 0x0074563f, 0x0066462c, 0x00593a1f, 0x00492e0d, 0x00583b19, 0x00775730, 0x0074552c, 0x00785325, 0x0080572a, 0x00835525, 0x00956435,
- 0x006c4b2c, 0x00513413, 0x00654c27, 0x00745c38, 0x004e341c, 0x00200800, 0x0011050a, 0x000c0a1a, 0x001f3f66, 0x005588b6, 0x00589bd5, 0x005198dc, 0x004891d4, 0x00448ccc, 0x003e89c4, 0x003c84bd,
- 0x003b7eb3, 0x003e7eb0, 0x00417bab, 0x004074a3, 0x003d6f9e, 0x00356ea5, 0x002d6ca8, 0x002a6aa7, 0x002b69a6, 0x002d6ba7, 0x003270aa, 0x003572ab, 0x00306ba4, 0x002d68a0, 0x002c639a, 0x00285f94,
- 0x002a598e, 0x00265589, 0x00255385, 0x00255483, 0x002d5b89, 0x00346391, 0x003a6b99, 0x003e719e, 0x00487ca9, 0x004b83af, 0x004f87b2, 0x004f88b0, 0x005187b1, 0x00528ab4, 0x00568cb6, 0x00568cb7,
- 0x00568db7, 0x00578fb9, 0x005992be, 0x005997c3, 0x005e9bc9, 0x005f9bcf, 0x00669acc, 0x007199c5, 0x008596b6, 0x008a8ea0, 0x008e8890, 0x0084797c, 0x00584b4a, 0x003b3432, 0x00464547, 0x005b5e60,
- 0x00756a69, 0x00a59a9b, 0x00f4eff1, 0x00fcfbfe, 0x00fefdff, 0x00fcfefe, 0x00fcffff, 0x00dedfe4, 0x008a8b8b, 0x00817f7e, 0x00bfbebb, 0x00e0e2da, 0x00fafaf4, 0x00fefdf7, 0x00fefdf5, 0x00fcfdf5,
- 0x00fbfcf3, 0x00fbfcf4, 0x00fdfdf4, 0x00fdfdf4, 0x00fefdf5, 0x00fefbf5, 0x00fdf9f3, 0x00fef9f6, 0x00fdfbf8, 0x00fdfcfc, 0x00fcfdfb, 0x00fbfdfb, 0x00fefeff, 0x00fdfdfb, 0x00fcfcf9, 0x00fdfefa,
- 0x00d8d8dd, 0x008a8d8e, 0x00848983, 0x00a5a89a, 0x00928969, 0x006e5b31, 0x00775e2f, 0x007a5f32, 0x006d5c3c, 0x00625a43, 0x00565345, 0x004c4d49, 0x0045454e, 0x00404255, 0x003b3f5a, 0x00353960,
- 0x00333967, 0x00333766, 0x00323660, 0x0032355b, 0x00353558, 0x0034374f, 0x00353641, 0x003b3536, 0x0049352b, 0x00453731, 0x00403c41, 0x0048556c, 0x005d85c4, 0x004d84d6, 0x003170d0, 0x002569d6,
- 0x002972c9, 0x002972d6, 0x002b6ed6, 0x005a90ef, 0x00b9d0e7, 0x00e4debf, 0x00fff0af, 0x00f9de97, 0x00c5b1b6, 0x008884bf, 0x00354da2, 0x00075196, 0x001551c5, 0x001b4eb9, 0x005b7fd3, 0x00b8d6ec,
- 0x00f1f6f6, 0x00cfd2ed, 0x004f4d8a, 0x00121473, 0x00091882, 0x00031776, 0x00041768, 0x0002125a, 0x0007124d, 0x00030d40, 0x00101e4c, 0x0011224d, 0x00243055, 0x003e415f, 0x00676078, 0x008a798c,
- 0x00a2a2b2, 0x00c1c1cb, 0x00d9d9df, 0x00e2e2e6, 0x00f2f4f4, 0x00f9fefb, 0x00fbfefc, 0x00fcfdfc, 0x00fcfdfd, 0x00fbfefd, 0x00f7fefe, 0x00f2fffb, 0x00fcfefe, 0x00fdfcfe, 0x00fffdff, 0x00fcfbfb,
- 0x00f8fefc, 0x00f2fdfd, 0x00f3fffe, 0x00f4fefc, 0x00fdfffe, 0x00fdfcfc, 0x00fff9f8, 0x00fefdfa, 0x00fffcf9, 0x00faf8f3, 0x00f1eee8, 0x00e9e1db, 0x00d9c9c6, 0x00cbb4b2, 0x00b39897, 0x009e817f,
- 0x00806450, 0x00794f40, 0x00723a2d, 0x00722f23, 0x006f261a, 0x00692011, 0x0064200c, 0x005f1e09, 0x00621d07, 0x00671b08, 0x00651c09, 0x005c2007, 0x005d2003, 0x005e2203, 0x005f2503, 0x00612803,
- 0x0065310b, 0x00603210, 0x00653a1f, 0x00673f2b, 0x00502a1d, 0x001d0c1b, 0x000c0921, 0x000c101f, 0x0002081a, 0x000b0e27, 0x000e0925, 0x001b1225, 0x00221a1c, 0x00211f27, 0x002d3249, 0x002c375e,
- 0x0029252d, 0x00221f27, 0x0026242c, 0x002c2a30, 0x002b2a34, 0x0043424c, 0x0053545f, 0x0060616d, 0x00787987, 0x00858895, 0x009595a4, 0x00a4a3af, 0x00b0afb9, 0x00b9b9c2, 0x00c0c1c7, 0x00cacbcb,
- 0x00d2d4d9, 0x00dadede, 0x00e2e5e8, 0x00e5e9ed, 0x00ebeff2, 0x00eef1f3, 0x00f5f7f9, 0x00f9fbfe, 0x00fafdfe, 0x00fbfeff, 0x00fafbfd, 0x00f8f8fb, 0x00fbfbfd, 0x00fefdfd, 0x00fefcfe, 0x00fffbff,
- 0x00f8f9fa, 0x00fbfbfd, 0x00fcfdfc, 0x00fffeff, 0x00fefcff, 0x00faf9f9, 0x00fcfaf8, 0x00fdfdf8, 0x00fefdf6, 0x00fefdfa, 0x00fcfaf9, 0x00f6f7fc, 0x00fafcfc, 0x00fbfefe, 0x00fcfcfd, 0x00fafcf7,
- 0x00fffdfc, 0x00fffef9, 0x00fdfcfb, 0x00fbfdfa, 0x00f9f9f8, 0x00f9f8f8, 0x00fffcfd, 0x00fefcff, 0x00fefcfc, 0x00fefdfe, 0x00fcfbfb, 0x00fafbf9, 0x00fcfffd, 0x00fcfffd, 0x00fbfefe, 0x00fbfefd,
- 0x00fcffff, 0x00fefffe, 0x00feffff, 0x00fefdff, 0x00fffefe, 0x00fcfdfa, 0x00fefefc, 0x00fefffd, 0x00fffffe, 0x00feffff, 0x00fefdff, 0x00fdfefd, 0x00fffffb, 0x00fdfffc, 0x00fefefd, 0x00fffefe,
- 0x00fcfcfc, 0x00fbfdfb, 0x00fdfcfc, 0x00fafcfb, 0x00fdfdfe, 0x00fafcfe, 0x00fcfbfe, 0x00fbfdfb, 0x00fdfdfc, 0x00fffefd, 0x00fffcfc, 0x00fcfaf8, 0x00fcfbfd, 0x00fbfefe, 0x00f3f7fc, 0x00eff3fb,
- 0x00f8fafb, 0x00f6f8fb, 0x00f5f7f9, 0x00f7f6f7, 0x00f7f5f9, 0x00f0eff3, 0x00ece9eb, 0x00fbf8f9, 0x00fcfafc, 0x00fdfafc, 0x00fffeff, 0x00fefefe, 0x00fdfbfa, 0x0076716e, 0x001e1613, 0x002b211d,
- 0x00392b2a, 0x003f3333, 0x00584f50, 0x00a9a1a4, 0x00f9f4f8, 0x00fffcfc, 0x00fffffd, 0x00fefcfb, 0x00f9f8f9, 0x00babcbb, 0x004a4d4b, 0x00393936, 0x00413c39, 0x004b413c, 0x0052453e, 0x0052453c,
- 0x0057453f, 0x00564842, 0x00514641, 0x0047423e, 0x003f4042, 0x00373f45, 0x002f3c49, 0x002a3a4e, 0x00233658, 0x001f3258, 0x001e3257, 0x00223456, 0x002e3756, 0x00383c57, 0x003f3f57, 0x00413f50,
- 0x00464051, 0x00413d4d, 0x00383949, 0x0030374a, 0x0029374d, 0x002a3958, 0x002a3859, 0x002d3a5a, 0x00323b59, 0x00363a51, 0x00383a49, 0x003a3741, 0x003a3030, 0x00332421, 0x002c1914, 0x002a120b,
- 0x00221403, 0x00281505, 0x002d1508, 0x0036160c, 0x00532e18, 0x00664421, 0x00684b23, 0x00563d14, 0x002f1b0f, 0x001b0e12, 0x00110c15, 0x000a0c10, 0x000e0e10, 0x000f0c0e, 0x000c0c0b, 0x000b0b0d,
- 0x000f0c08, 0x000c0c0d, 0x000c0b0d, 0x000c0a0b, 0x0009080b, 0x0007070b, 0x000b090d, 0x001c1819, 0x009b9191, 0x00efe7e9, 0x00e8e4e4, 0x00e0e3e6, 0x00a3b1ba, 0x007a8e98, 0x008095a3, 0x007d93a0,
- 0x00888b96, 0x0086848f, 0x007f7881, 0x00786871, 0x006f5257, 0x00634146, 0x00552f32, 0x004a2325, 0x00411b1d, 0x00381417, 0x002a0b0e, 0x00270b0e, 0x002d0f14, 0x0035181d, 0x0043292e, 0x0051383e,
- 0x00604e52, 0x00655459, 0x006b5b60, 0x006c5d63, 0x00695a62, 0x0065565c, 0x00624f55, 0x005f464d, 0x005a3a41, 0x0059373e, 0x0054343c, 0x00543843, 0x00503f52, 0x004f4960, 0x004d4f69, 0x0047516d,
- 0x003b5982, 0x00375982, 0x00345985, 0x00335e8d, 0x00386998, 0x004678a6, 0x00598ab3, 0x005f90b5, 0x006891b0, 0x006c92ac, 0x00668dab, 0x005f89af, 0x005882aa, 0x004d78a2, 0x00436f9c, 0x003f6b98,
- 0x00406d9c, 0x00416c9f, 0x00446ea1, 0x00486ea3, 0x004b6fa4, 0x004874a9, 0x00446e9b, 0x006e8dae, 0x00e5e8f3, 0x00fcfdfd, 0x00fdfcfd, 0x00fbfcfc, 0x00f9fdff, 0x00dde0e5, 0x0053545a, 0x000a070a,
- 0x001a0123, 0x00091218, 0x00080d0a, 0x0029110c, 0x00971420, 0x00922328, 0x00b9706b, 0x00beae9e, 0x00b4b7b7, 0x00b5bac3, 0x00c6c5d0, 0x00cdcbc8, 0x00d2cfcf, 0x00d4d4d2, 0x00dfdcdb, 0x00e3e3df,
- 0x00e6e4e4, 0x00e8e6e5, 0x00e0dfdc, 0x00e0dfdb, 0x00e4e2e2, 0x00cdc9c9, 0x00938e8b, 0x00625a56, 0x004d433e, 0x004b433f, 0x002c2829, 0x00222424, 0x004b4642, 0x006a594f, 0x0070533f, 0x006c442a,
- 0x00764c2b, 0x007f5530, 0x008a5f36, 0x00906233, 0x00986731, 0x009d6b32, 0x00a4713a, 0x00a4723a, 0x008d5d2a, 0x007b4e1f, 0x00824f1b, 0x0095581b, 0x008f5a2a, 0x00835a35, 0x007c5f44, 0x008b7a69,
- 0x00757372, 0x002d3135, 0x000b1217, 0x00070d16, 0x00030812, 0x00050706, 0x000a0a05, 0x000d0e08, 0x001a1511, 0x0018110d, 0x00362d2a, 0x009a9492, 0x00fefefd, 0x00fefcfe, 0x00fffbff, 0x00fffdff,
- 0x00fbfbfb, 0x009d9e9e, 0x00050404, 0x000e0d0d, 0x001b1a1a, 0x001f1e1d, 0x0021201f, 0x00242121, 0x00272523, 0x00272726, 0x002b2829, 0x002e2828, 0x002f2828, 0x002e2927, 0x00302925, 0x00312723,
- 0x00392a24, 0x003a2c24, 0x003f2e23, 0x00432f20, 0x00432f23, 0x003e2f26, 0x003b2f27, 0x003a2e28, 0x003b2c26, 0x003a2c26, 0x00382b24, 0x00342722, 0x00352928, 0x00312627, 0x00312728, 0x00473d40,
- 0x00a5997f, 0x00d0bca4, 0x00ba9d84, 0x00b79177, 0x00cc9c7f, 0x00d8a687, 0x00dca987, 0x00dba987, 0x00d5a683, 0x00d1a681, 0x00cda37e, 0x00c89c76, 0x00c69871, 0x00c4956f, 0x00bf8f67, 0x00b5865c,
- 0x00af7e4e, 0x00af7e4c, 0x00a87443, 0x00a2703e, 0x00a6713f, 0x00a47443, 0x009a7041, 0x007f5431, 0x00663722, 0x0075462e, 0x00956449, 0x009b6a45, 0x00945e36, 0x00a46d46, 0x00cd936f, 0x00ba7d5d,
- 0x00905e53, 0x00664135, 0x00240b03, 0x001d140f, 0x00191a1b, 0x00141217, 0x0016141c, 0x0017131d, 0x000f1111, 0x000b120d, 0x000c110f, 0x000c0c0f, 0x000c0b0f, 0x0009080b, 0x00060509, 0x00040407,
- 0x0006070c, 0x0005060a, 0x00050507, 0x00050507, 0x0008070a, 0x00080709, 0x00080707, 0x00080607, 0x000a0a0a, 0x000f0f0f, 0x00131413, 0x00161615, 0x001f1e20, 0x00777678, 0x00fdfcfd, 0x00fdfdfd,
- 0x00d0c2b0, 0x006b4f3f, 0x00563b2a, 0x00472c22, 0x00312324, 0x00262126, 0x00222024, 0x001b1b1d, 0x00392c1b, 0x00675336, 0x00826d49, 0x00725e3d, 0x004d3818, 0x00382406, 0x004d3c1c, 0x004e3f20,
- 0x0055442f, 0x005c4837, 0x005e4f3e, 0x00605445, 0x00635748, 0x005d5247, 0x00625f52, 0x0077766b, 0x00acabb1, 0x00d3d9de, 0x00e2eaf1, 0x00e6eaf4, 0x00e9e5f4, 0x00ebe5ee, 0x00eadee4, 0x00d7c8ce,
- 0x00fb886e, 0x00da7355, 0x00e48c6c, 0x00faba96, 0x00e37b54, 0x00bc431d, 0x00c64523, 0x00e7775a, 0x00fdd5d3, 0x00f0f3f6, 0x00e5f3fc, 0x00e5e6f0, 0x00dcdee7, 0x00dcdce8, 0x00dfe0ec, 0x00dddfee,
- 0x00dbdbec, 0x00dfdeef, 0x00dfdeee, 0x00dddef0, 0x00e6e5f8, 0x00e8e1f8, 0x00dbd2e2, 0x00dbd0d8, 0x00eadfe3, 0x00efe4ec, 0x00e6daee, 0x00b3a8cc, 0x006b679a, 0x007074a6, 0x008f96c4, 0x0096a3c8,
- 0x009c9dbd, 0x00a1a0c0, 0x00a8aac8, 0x00b3b3d0, 0x00c4bdd4, 0x00c9c0d7, 0x00cfcce2, 0x00adafd2, 0x00375194, 0x00082a79, 0x000d3789, 0x000c3087, 0x00354888, 0x008b91c0, 0x00cac8e3, 0x00d2cbd9,
- 0x00d3cedb, 0x00dcdae6, 0x0093949c, 0x00212325, 0x00070405, 0x00130f07, 0x001f190b, 0x00292212, 0x003b2e1c, 0x00463621, 0x00563e25, 0x0066452a, 0x00764629, 0x00763f22, 0x00763819, 0x00793718,
- 0x008d3b17, 0x00933d1a, 0x00883710, 0x00803210, 0x00632a17, 0x00452118, 0x00230e0e, 0x000c050d, 0x0008050b, 0x00090305, 0x00080405, 0x00000104, 0x00040406, 0x00080808, 0x000c0d0b, 0x000d100b,
- 0x000d0d0d, 0x000d0d0c, 0x00050903, 0x00010401, 0x00020500, 0x00635f61, 0x00fefcfc, 0x00fdfeff, 0x00fffff9, 0x00fefcf7, 0x00fdfff9, 0x00b7bec0, 0x00273e4f, 0x001e4262, 0x00326288, 0x003f74a2,
- 0x0071788d, 0x008c90a4, 0x00848897, 0x007d7c8d, 0x0069707c, 0x004b585b, 0x00293b36, 0x0024342a, 0x00363531, 0x0040372e, 0x00584932, 0x00856a3a, 0x00ba996a, 0x00d3b182, 0x00e0ba88, 0x00e0b886,
- 0x00e0b387, 0x00d9ac80, 0x00cca177, 0x00bf986f, 0x00ae8963, 0x009f7b57, 0x008a6a49, 0x007b5d38, 0x006c4d28, 0x00694c25, 0x00795a30, 0x00795a2e, 0x00815b2d, 0x00865b2e, 0x00794d1f, 0x00926436,
- 0x00835f3c, 0x006f502d, 0x007c633b, 0x009c885e, 0x006d593b, 0x00261407, 0x000e0507, 0x000c0c1b, 0x0024436c, 0x005688b9, 0x005897d0, 0x005194d9, 0x00438fce, 0x003f8acb, 0x003c87c3, 0x003881bb,
- 0x00377ab8, 0x003a7cb4, 0x003b78af, 0x003770a9, 0x00366da5, 0x002c6db0, 0x00246bb2, 0x002569ad, 0x002f6aac, 0x00356ead, 0x003a74ae, 0x003d75af, 0x002a67a2, 0x0022619f, 0x001c5e9d, 0x001a5e9d,
- 0x00235584, 0x00225683, 0x00235783, 0x002a5f89, 0x00336991, 0x003c739a, 0x003f799f, 0x00417da2, 0x004d81ab, 0x004d84ac, 0x005184ad, 0x005582ae, 0x005683af, 0x005585af, 0x005487b1, 0x005387b2,
- 0x00588eba, 0x00548eb6, 0x00508eb4, 0x005290b9, 0x005698be, 0x006699c4, 0x006b95bc, 0x007391b5, 0x007d86a2, 0x00777485, 0x006a626a, 0x00625759, 0x00483b3b, 0x00393334, 0x0048494c, 0x005d6364,
- 0x00756a68, 0x00a59c9d, 0x00f6f0f3, 0x00fefdfe, 0x00fffeff, 0x00fcfefe, 0x00fbfefc, 0x00dddede, 0x008a8989, 0x00827f7f, 0x00bfbebb, 0x00dde2db, 0x00f9fcf7, 0x00fdfdfb, 0x00fdfef8, 0x00fbfdf7,
- 0x00fffffa, 0x00fdfefc, 0x00fcfef9, 0x00fcfef7, 0x00fefefa, 0x00fdfefd, 0x00fbfdfa, 0x00fafefb, 0x00fcfdfd, 0x00fcfcff, 0x00fcfcfb, 0x00fefffd, 0x00fcfffc, 0x00fcfffc, 0x00fcfefb, 0x00fcfdfc,
- 0x00ddd9df, 0x008e8e90, 0x00858a83, 0x00a5a898, 0x008f8667, 0x006d5b32, 0x00755e30, 0x00765f31, 0x006e5d3f, 0x00635b46, 0x00575648, 0x004e514b, 0x00474950, 0x00414656, 0x003c425b, 0x00363d62,
- 0x0034386a, 0x00343768, 0x002f355f, 0x0030355b, 0x00323356, 0x00373851, 0x00363540, 0x003c3434, 0x00483533, 0x00413535, 0x003c3e49, 0x00526482, 0x005e8ed0, 0x003f79cf, 0x00286bcd, 0x002269d5,
- 0x00296bc1, 0x00286dcd, 0x00286dc9, 0x00538fe4, 0x00a2c3e6, 0x00c0c7cf, 0x00e1dfd1, 0x00e1d6c7, 0x009d9fcb, 0x005767bb, 0x001d46a2, 0x000f57ac, 0x001756cd, 0x001a4ebc, 0x00446ebd, 0x00a2c2e3,
- 0x00ecf4f8, 0x00dadef8, 0x0060609b, 0x000f146a, 0x000a1b87, 0x00041874, 0x00071965, 0x00192766, 0x00363b67, 0x00434567, 0x006c748e, 0x008590a8, 0x00a5b2c4, 0x00bdc4d3, 0x00d4d8e3, 0x00e8e4ec,
- 0x00f5f3fd, 0x00fcfbff, 0x00fefeff, 0x00fbfdfd, 0x00f5fbf8, 0x00f5fdf9, 0x00f7fefa, 0x00fafefa, 0x00fffdff, 0x00fcfeff, 0x00f6fdfc, 0x00f3fffa, 0x00f9fcfb, 0x00fcfdf9, 0x00fbfefa, 0x00fbfefb,
- 0x00f7fefe, 0x00f6feff, 0x00f1fdfd, 0x00f6feff, 0x00fafbfb, 0x00faf2f1, 0x00ede0da, 0x00e9ddd6, 0x00dac8c4, 0x00c3b3ac, 0x00a3918a, 0x0088726b, 0x006d524c, 0x005f403a, 0x0056322d, 0x004e2620,
- 0x0053230b, 0x005b1f09, 0x00671f08, 0x0077240b, 0x007f240c, 0x007e2509, 0x007d2508, 0x007f270b, 0x0087240c, 0x008f240f, 0x008e270c, 0x007f2d09, 0x00832f09, 0x0089340c, 0x008a3a09, 0x00883e09,
- 0x008b4112, 0x008c461b, 0x008b4c25, 0x00905834, 0x007e4a2a, 0x00382427, 0x000e0c29, 0x000f1335, 0x000b1039, 0x00091033, 0x000a0d2a, 0x00110e25, 0x00150b27, 0x0015102f, 0x00202543, 0x001a2746,
- 0x001a162a, 0x000f0b20, 0x000a081c, 0x000c0b1d, 0x0008091d, 0x000a0c20, 0x000a0d20, 0x00080c20, 0x0012152e, 0x00181d33, 0x001d2136, 0x001c1c32, 0x00131428, 0x00111226, 0x001c2031, 0x002f3746,
- 0x0046495e, 0x004f5465, 0x00566071, 0x005e6578, 0x00656f82, 0x00707587, 0x00767d89, 0x007b808c, 0x00868a92, 0x009b9ea3, 0x00b0b1b2, 0x00b5b5b6, 0x00c2c1c3, 0x00cfcdcf, 0x00dfdbe2, 0x00ebe6ee,
- 0x00f8f4fc, 0x00faf9ff, 0x00fbfcfc, 0x00fdfffd, 0x00fbfbfa, 0x00fafbf8, 0x00fdfaf8, 0x00f8f9f4, 0x00fffdfc, 0x00fffefb, 0x00fcfcf9, 0x00f8fafd, 0x00f8fafd, 0x00fdfffd, 0x00fcfcfd, 0x00f7f9f9,
- 0x00feffff, 0x00fdfcff, 0x00fffefc, 0x00fafaf9, 0x00f7f9f7, 0x00fdfbfe, 0x00fffbfc, 0x00fdfaf8, 0x00fffdff, 0x00fefcff, 0x00fdfbfe, 0x00fdfcfe, 0x00f9fafa, 0x00fcfefd, 0x00fdfefc, 0x00fafaf9,
- 0x00fffdff, 0x00fffeff, 0x00fefeff, 0x00fffefd, 0x00ffffff, 0x00fdfefa, 0x00fffffc, 0x00fbfefd, 0x00ffffff, 0x00fffdff, 0x00fefefe, 0x00fdfdfd, 0x00fffeff, 0x00fffdfe, 0x00fefefe, 0x00fcfcfd,
- 0x00fffdff, 0x00fffcff, 0x00fcfcfb, 0x00fdfbfb, 0x00fcfcff, 0x00fefdff, 0x00fafefb, 0x00fafdf8, 0x00fffcfc, 0x00fffcf8, 0x00fdf8f4, 0x00fffbf8, 0x00fef9fb, 0x00fbfaf6, 0x00fafaf6, 0x00fafcfc,
- 0x00feffff, 0x00fbfcff, 0x00f6f9f8, 0x00fbfcf9, 0x00fcfbfd, 0x00fcfdff, 0x00fcfbfb, 0x00fcfdfb, 0x00fdfafd, 0x00fefcfd, 0x00fdfdfe, 0x00fdfeff, 0x00fdfdfc, 0x00605e5b, 0x001e1714, 0x0028201c,
- 0x0037292a, 0x003b2e2f, 0x005e5353, 0x00b5abad, 0x00fdf7fb, 0x00fefcfd, 0x00fefffc, 0x00fefcfd, 0x00faf6f9, 0x00b9b7b9, 0x004b4a4b, 0x00403d3d, 0x004b4442, 0x00514641, 0x0052463d, 0x0053473c,
- 0x005e4844, 0x00594943, 0x0053453f, 0x0047403b, 0x003f3b3d, 0x00363940, 0x00303744, 0x00293547, 0x00243255, 0x001f2f56, 0x00192d54, 0x001a2e54, 0x00253355, 0x002f3955, 0x00363c53, 0x003b3e50,
- 0x00413e55, 0x003e3d54, 0x00363a4e, 0x002d374c, 0x0028374f, 0x0026375b, 0x00253459, 0x00273357, 0x00293154, 0x002b2e4a, 0x002b2b40, 0x00322e3f, 0x00362d33, 0x00322629, 0x002a1d1c, 0x00291814,
- 0x00301f05, 0x00321a03, 0x00351b01, 0x00482610, 0x006d4523, 0x0077532b, 0x006c4c23, 0x00543811, 0x002d170f, 0x001b0b12, 0x000f070f, 0x00080a0b, 0x00070909, 0x0007070a, 0x00030704, 0x00020704,
- 0x000a0709, 0x000a0609, 0x00090a07, 0x00090805, 0x00080805, 0x00100908, 0x000d0403, 0x00251714, 0x00ab978f, 0x00f4e6e2, 0x00e6e1dd, 0x00dde0e4, 0x00a1afbb, 0x00778996, 0x007a8e9c, 0x00798e9a,
- 0x00858896, 0x0082808d, 0x007b747e, 0x0076646d, 0x00684d51, 0x005d3c40, 0x004d2a2c, 0x00401d1e, 0x003d1617, 0x00341113, 0x00280b0d, 0x00290e12, 0x0032171b, 0x003a2125, 0x004a3337, 0x005b4347,
- 0x006b555e, 0x00715d64, 0x0077676c, 0x007b6e72, 0x007b6f73, 0x00786d71, 0x0076676b, 0x00725e63, 0x006e505a, 0x006a4b53, 0x00654850, 0x00664e57, 0x005f5364, 0x0058566b, 0x004f556e, 0x0047546e,
- 0x00435d88, 0x003e5f89, 0x00375e8a, 0x00356391, 0x003b6d9c, 0x004678a5, 0x005785b0, 0x005e8db3, 0x00698fb2, 0x006c91ad, 0x00698da9, 0x00618aa7, 0x00577e9e, 0x004b7294, 0x0040648a, 0x003a6086,
- 0x00416493, 0x003f6497, 0x00406999, 0x0043699c, 0x00436da2, 0x004670a4, 0x00466e99, 0x007895b6, 0x00eeeefb, 0x00fefcfd, 0x00fafafb, 0x00fdfcff, 0x00f8fdfe, 0x00d4d5da, 0x0046474b, 0x000a0809,
- 0x000f011e, 0x00070d13, 0x00090b05, 0x00310b08, 0x009c111b, 0x00942d2c, 0x00b87e71, 0x00afaf97, 0x00b9babe, 0x00b9b6c6, 0x00c3bdcb, 0x00c7c7c2, 0x00cccbc9, 0x00d0cecc, 0x00d9d7d7, 0x00e1e1df,
- 0x00f0eaeb, 0x00ece6e8, 0x00d8d5d3, 0x00d2d2cd, 0x00ebe9e9, 0x00f1eded, 0x00dbd6d3, 0x00cdc7c2, 0x00cabebe, 0x00c4babc, 0x00979398, 0x0073777b, 0x00656365, 0x00615651, 0x005e4b3c, 0x005d3f2a,
- 0x00714320, 0x00784b23, 0x0087592d, 0x00936330, 0x009f6e34, 0x00a67437, 0x00a9773b, 0x00a37135, 0x008f5b27, 0x00825022, 0x00854f19, 0x00995b14, 0x008f5c20, 0x0080572b, 0x006a512f, 0x007a6e5a,
- 0x0096929b, 0x005d6074, 0x001d263e, 0x00192441, 0x00152242, 0x00050917, 0x000a090c, 0x00101010, 0x00211b16, 0x001c160e, 0x00382e25, 0x009b958e, 0x00fefffc, 0x00fcfbfd, 0x00fefbfc, 0x00fbfcf9,
- 0x00fcfbfc, 0x009f9d9f, 0x00060305, 0x000e0d0e, 0x001a1b1b, 0x001d1f1f, 0x00202120, 0x00222322, 0x002a2629, 0x002a292a, 0x002c2a2b, 0x002e2928, 0x00302927, 0x00312b27, 0x00332b26, 0x00352a24,
- 0x003c2f2a, 0x003e2f2a, 0x00413127, 0x00413022, 0x00412e24, 0x003e2d25, 0x003b2c26, 0x003b2b27, 0x003c2a2a, 0x00382a29, 0x00362926, 0x00312622, 0x00322927, 0x002f2524, 0x00312725, 0x004a4341,
- 0x00ac9383, 0x00a88c7b, 0x0080614b, 0x008a654d, 0x00b6886d, 0x00cd9e7f, 0x00dead8a, 0x00ddad89, 0x00d9a989, 0x00d4a785, 0x00cea380, 0x00cc9e7a, 0x00ca9974, 0x00c89670, 0x00c19168, 0x00bb8b5e,
- 0x00b68154, 0x00b47f52, 0x00ab7647, 0x00a87444, 0x00aa7543, 0x00ad7645, 0x00a67043, 0x00945d3c, 0x00804233, 0x00844a34, 0x00975d44, 0x00a0684a, 0x00aa734f, 0x00b27a59, 0x00bc8366, 0x00aa6f57,
- 0x007d534d, 0x00462a22, 0x00190c07, 0x001e1f19, 0x00222928, 0x001a191d, 0x00151419, 0x00151216, 0x00151514, 0x000f140e, 0x00090d0a, 0x000c0d0f, 0x000a0b0e, 0x0007080a, 0x00050507, 0x00030504,
- 0x0008080d, 0x0007060b, 0x00060607, 0x00050506, 0x0008070b, 0x0008070a, 0x00080807, 0x00080706, 0x000a0a0c, 0x000c0c0e, 0x000e0f0e, 0x0011120f, 0x001f1e1f, 0x007b7b7b, 0x00fefefd, 0x00fefdfd,
- 0x00cac3a8, 0x0071573e, 0x005f432f, 0x00533526, 0x003f2926, 0x0034292c, 0x002f2b2e, 0x0029272b, 0x00292712, 0x003d3519, 0x005c492b, 0x00594527, 0x0038260b, 0x002c1c00, 0x00523d26, 0x0056412c,
- 0x004f4329, 0x0052482c, 0x00594b36, 0x005c4e3c, 0x0060513e, 0x005c5148, 0x00655c56, 0x0088817f, 0x00c3c9c3, 0x00dfe8e6, 0x00e8edf4, 0x00e8eaf5, 0x00e9eaf5, 0x00eceaf2, 0x00f9f1f9, 0x00dfd7de,
- 0x00ed754d, 0x00d76037, 0x00ce542a, 0x00d2552d, 0x00bd3b14, 0x00951d07, 0x009a2e23, 0x00d07a70, 0x00eacfce, 0x00e5e4e9, 0x00eff1fa, 0x00f3f4fa, 0x00edecf5, 0x00e2e2ef, 0x00dfddee, 0x00e2deed,
- 0x00dee0eb, 0x00d3d4e0, 0x00d5d4e7, 0x00dfdef3, 0x00e1e2f4, 0x00e6e3f5, 0x00eae1f2, 0x00e8dae5, 0x00d3cbc2, 0x00dacecb, 0x00f5e1ed, 0x00cebcd3, 0x00776e99, 0x006c6e9d, 0x009199cc, 0x009daadf,
- 0x00a8b0c8, 0x00aeb5cc, 0x00bbbfda, 0x00c2c4df, 0x00c1bdd1, 0x00c3bbd1, 0x00cfc8e6, 0x00bfbce3, 0x004f6ea8, 0x00154185, 0x00153f93, 0x000c3187, 0x00334a8c, 0x008e95c2, 0x00d1ceee, 0x00d6cde2,
- 0x00cacdcf, 0x00d4d7d9, 0x00929399, 0x00222328, 0x000b0608, 0x00150f05, 0x00231a0d, 0x002f2418, 0x00373118, 0x00483d20, 0x005d4329, 0x0069462c, 0x0078482b, 0x007a4226, 0x007f3b23, 0x00863d23,
- 0x008b3e10, 0x008b3c0f, 0x0085330f, 0x007d2e10, 0x00602514, 0x00401913, 0x00240b12, 0x00100613, 0x00000505, 0x00000101, 0x00040305, 0x00030204, 0x00070606, 0x000e0d0a, 0x001b1616, 0x001e191a,
- 0x0013180c, 0x0013170d, 0x00100f09, 0x00070702, 0x00030503, 0x00625f62, 0x00fffdff, 0x00fffdff, 0x00f9fdef, 0x00f9fcef, 0x00fcfffa, 0x00b8bebf, 0x0024394b, 0x001d3d5b, 0x003b608e, 0x004975a9,
- 0x008f857b, 0x009a8980, 0x0091756e, 0x00896b5f, 0x007c6755, 0x006c5d4b, 0x004a442f, 0x00423f2a, 0x0035351d, 0x00352c17, 0x00563f26, 0x007d5d31, 0x00b08e5d, 0x00ceab77, 0x00dfb680, 0x00eaba86,
- 0x00e7ba7d, 0x00e0b577, 0x00d5a770, 0x00cb9e66, 0x00c59661, 0x00bc9367, 0x00b08b61, 0x00ab875d, 0x0099804e, 0x008f7743, 0x008d6e3d, 0x00906b3d, 0x008f6a3b, 0x007e5429, 0x0076461e, 0x00885830,
- 0x00987a4e, 0x00a3885b, 0x00a78d62, 0x00cab48b, 0x00a5926f, 0x004b3925, 0x00100709, 0x000d0c20, 0x001d4061, 0x00487ca5, 0x005c96cb, 0x00528dcc, 0x004384c1, 0x004185c5, 0x004186c3, 0x003c82c1,
- 0x002e7eb4, 0x002f7ab4, 0x003275b6, 0x003073b6, 0x00316fb3, 0x00286fb4, 0x00276fbc, 0x002b6eb6, 0x002e70a6, 0x00346fa4, 0x003d71a7, 0x003f6fa6, 0x003166a1, 0x002b66a5, 0x002d6aac, 0x002b6cb5,
- 0x00256587, 0x0028678a, 0x00336f96, 0x003c769f, 0x003f7da5, 0x004481a8, 0x004984ac, 0x004983aa, 0x004185a5, 0x004284a3, 0x004d83aa, 0x005880ad, 0x005682b1, 0x005483af, 0x005586b5, 0x005585b5,
- 0x004b89a8, 0x004b8aab, 0x004e8cb1, 0x00518eb5, 0x005592b9, 0x006890b1, 0x00718aab, 0x0070809d, 0x005b6572, 0x00515356, 0x004f4649, 0x004d4041, 0x003e3332, 0x003d3738, 0x00525154, 0x00606367,
- 0x006f6a61, 0x009f9c96, 0x00f5f0f0, 0x00fefcff, 0x00fcfeff, 0x00fdfefd, 0x00fefdfe, 0x00e2dee3, 0x00868781, 0x007d7e76, 0x00c0beba, 0x00dee0e0, 0x00f5f8f6, 0x00fbfcfb, 0x00fffeff, 0x00fafcfb,
- 0x00f9fef8, 0x00f9fff9, 0x00fcfffd, 0x00fdfefe, 0x00fcfdfd, 0x00f8feff, 0x00f9ffff, 0x00faffff, 0x00f6fff7, 0x00f7fcf7, 0x00fdfdfe, 0x00fdfeff, 0x00fcfcfb, 0x00f9fdfa, 0x00ffffff, 0x00ffffff,
- 0x00d4dad3, 0x00888e88, 0x00868783, 0x00a7a79c, 0x008e8467, 0x006d5a34, 0x00775e37, 0x007a5d37, 0x00675e38, 0x005e5d42, 0x0055564a, 0x00515251, 0x00474d52, 0x00414a57, 0x003d4660, 0x00374168,
- 0x0029385c, 0x002b375d, 0x002d3360, 0x002f315c, 0x002d3255, 0x0033334c, 0x00383040, 0x0042343e, 0x003a3029, 0x00312f32, 0x00444a5e, 0x005f78a1, 0x005485d1, 0x00306dc8, 0x002668d1, 0x002065d7,
- 0x001b62b8, 0x001f68c0, 0x002a70c5, 0x004181ce, 0x0088b3e8, 0x00b1c6e7, 0x00c9cfec, 0x00b8bde4, 0x005472b6, 0x001d49a6, 0x001e55bc, 0x002065c8, 0x001d5ed4, 0x002158c5, 0x003a67ba, 0x008eb1db,
- 0x00def1ed, 0x00dbe9f5, 0x007a7dac, 0x00151b6e, 0x000a1a8b, 0x00061f78, 0x00091e67, 0x00525f99, 0x00c8cee1, 0x00d8dfe7, 0x00eaecf3, 0x00f1f7f9, 0x00f5fefe, 0x00f9fefd, 0x00fdfeff, 0x00fffeff,
- 0x00f6fdf7, 0x00f5f9f6, 0x00faf9fb, 0x00fbfcfc, 0x00fbfcf8, 0x00f9fefa, 0x00fbfdfd, 0x00f9fcfc, 0x00f4fdf8, 0x00f4fefc, 0x00f7fdfd, 0x00f7fef4, 0x00fcfdf8, 0x00fcfdf9, 0x00fffcfb, 0x00fffdfe,
- 0x00edfbf5, 0x00e7faf4, 0x00eefaf9, 0x00f6fafe, 0x00ebe3e9, 0x00b8a7a4, 0x007e635f, 0x006b504c, 0x00493729, 0x003b2619, 0x00391e15, 0x003f1c14, 0x003b150e, 0x0040130e, 0x00461510, 0x0045110d,
- 0x004e1900, 0x00601e00, 0x0075280a, 0x0087290e, 0x0086290b, 0x00852a0d, 0x008a2e10, 0x00933115, 0x0098320c, 0x00a13110, 0x00ac3515, 0x00a43d11, 0x00a73e11, 0x00a64311, 0x00ae4916, 0x00ad4b14,
- 0x00a95718, 0x00af5f25, 0x00b96b3b, 0x00b87444, 0x00ba794b, 0x006e544c, 0x001e1933, 0x00141345, 0x0009174a, 0x00081a3e, 0x000b1839, 0x00181c38, 0x001b1743, 0x00221f4c, 0x0035335f, 0x002a314f,
- 0x00141a2e, 0x0012162b, 0x00131632, 0x00151736, 0x00151733, 0x00141835, 0x0014183c, 0x00161b3e, 0x0014203c, 0x001b2642, 0x00232949, 0x001b1e3f, 0x000b1131, 0x000c1130, 0x00141938, 0x001e2444,
- 0x0023314b, 0x002f3c56, 0x0036405f, 0x00323d5e, 0x0036405f, 0x0039445d, 0x0039405a, 0x00363d52, 0x00364449, 0x00475254, 0x005c5e62, 0x005a575b, 0x00595459, 0x00564e53, 0x00584e56, 0x00564e5b,
- 0x004d4f4d, 0x00525352, 0x005c5b5b, 0x006a696a, 0x00777678, 0x00888789, 0x0099979a, 0x009d9b9d, 0x00a3aaa2, 0x00adb4ae, 0x00acafb2, 0x00a9afba, 0x00adb3bc, 0x00bfc2ca, 0x00c9cad6, 0x00d0d1de,
- 0x00d5dee0, 0x00d8dedd, 0x00ececee, 0x00f3eff1, 0x00fbf6f7, 0x00fffafb, 0x00fefafd, 0x00fffbfd, 0x00f9faf4, 0x00f9fbf4, 0x00fefdfb, 0x00fffefe, 0x00fffefe, 0x00fefdfd, 0x00fffefe, 0x00fffffd,
- 0x00f7fef6, 0x00f8fff6, 0x00fdfefd, 0x00fefdfd, 0x00ffffff, 0x00fcfefe, 0x00fdfefd, 0x00fefeff, 0x00f7fdf8, 0x00f8fffb, 0x00fffffc, 0x00ffffff, 0x00fffeff, 0x00fffdff, 0x00fffeff, 0x00fffeff,
- 0x00f9f8f7, 0x00f9f9f7, 0x00fefcff, 0x00fffcff, 0x00fefcfd, 0x00fefcff, 0x00fffdff, 0x00fffcfa, 0x00f8fff2, 0x00f9fbf2, 0x00fffbf6, 0x00fdfaf6, 0x00fdfef9, 0x00fefffb, 0x00fffcfc, 0x00fffcfe,
- 0x00f3fbf7, 0x00f8fbf7, 0x00fbfbfb, 0x00fcfcfd, 0x00fdfdfe, 0x00fdfefe, 0x00ffffff, 0x00fffbfa, 0x00f7fcf7, 0x00f6f7f4, 0x00f9f9f9, 0x00fcfdfe, 0x00fbfbfb, 0x00545050, 0x001e1514, 0x00281c18,
- 0x0027211a, 0x002e2721, 0x00625959, 0x00c2b8bd, 0x00fdfbfd, 0x00fefcfd, 0x00fffdfe, 0x00fffeff, 0x00ecf4eb, 0x00a5aea6, 0x00444544, 0x00494443, 0x0057514a, 0x005f534b, 0x0063504a, 0x00625145,
- 0x005e4f3d, 0x005a4c3a, 0x00574a3e, 0x004e443a, 0x00413c39, 0x00333437, 0x002c323f, 0x00283047, 0x001d2c46, 0x00182a49, 0x00172950, 0x00162b56, 0x001c2f54, 0x00263253, 0x00333656, 0x00353954,
- 0x00323b4b, 0x00323b4c, 0x00323a50, 0x002c3953, 0x00263650, 0x00223257, 0x00222f5b, 0x00212e56, 0x001d2c43, 0x001e283b, 0x00222439, 0x00231e30, 0x00262027, 0x00261b1f, 0x00281b1e, 0x002d2123,
- 0x003b2e00, 0x00443106, 0x00533611, 0x00674120, 0x007e542b, 0x00835c30, 0x00744f28, 0x00593819, 0x002a1908, 0x00160904, 0x000b0209, 0x00030605, 0x00010503, 0x00010603, 0x00020507, 0x00050404,
- 0x00000300, 0x00000300, 0x00030304, 0x00060404, 0x00080801, 0x00100401, 0x00220906, 0x0045291f, 0x00a58e77, 0x00e8d7c5, 0x00f2e4e0, 0x00dcdee4, 0x009eacbf, 0x00788597, 0x007d899f, 0x007f8899,
- 0x00788389, 0x00787c82, 0x00746f76, 0x006d5e64, 0x0061454a, 0x00523236, 0x00442025, 0x003a161a, 0x002f130e, 0x002f1510, 0x00311516, 0x00301619, 0x003a2123, 0x00412d2f, 0x00544045, 0x00624f53,
- 0x00695d5e, 0x00746a68, 0x0085797c, 0x008b7d84, 0x00897c82, 0x0086797f, 0x0084747d, 0x00827075, 0x00766763, 0x0072605f, 0x00755f63, 0x0078646c, 0x006e6474, 0x00646479, 0x0059627c, 0x00505f7c,
- 0x003b6080, 0x003a6189, 0x003b638f, 0x003b6695, 0x003d6f9d, 0x004677a2, 0x005884ad, 0x005f88b0, 0x00608ba2, 0x00698da3, 0x006d8ba3, 0x0067849c, 0x00597791, 0x004b6986, 0x003f5d7e, 0x003b587f,
- 0x0032597d, 0x00335a82, 0x003a5f8d, 0x003c6594, 0x003c6699, 0x003d689c, 0x00496b9a, 0x00889dc0, 0x00e7f4f5, 0x00f7faf4, 0x00fdfafa, 0x00fdfafc, 0x00f9fbfe, 0x00c3c7ce, 0x0035363e, 0x000a040f,
- 0x0000010e, 0x00000706, 0x00120605, 0x00460c0a, 0x009f1419, 0x00983d33, 0x00be8f7e, 0x00a3ac93, 0x00adb9b4, 0x00adaeb9, 0x00bdb6c4, 0x00c6c4c3, 0x00c8c9c6, 0x00cfcbcb, 0x00dfd7da, 0x00e8e3e4,
- 0x00dde1d9, 0x00dadbd5, 0x00d9d6d5, 0x00d5d1d1, 0x00e1e1e0, 0x00d7d6d4, 0x00e1dadb, 0x00f1e6e8, 0x00e7e2d8, 0x00e1ded9, 0x00c6c4c9, 0x00b9bdc8, 0x00878d93, 0x005c5757, 0x00594c46, 0x005e453a,
- 0x006b481a, 0x0071491a, 0x007c4e20, 0x008f5f2a, 0x00aa773c, 0x00b58043, 0x00b17b40, 0x009e692f, 0x00855b1b, 0x0081561d, 0x0086531c, 0x00915814, 0x008d5d25, 0x00836035, 0x00876e56, 0x008c7e74,
- 0x00545c61, 0x00465567, 0x00263558, 0x002f416f, 0x00475a8b, 0x002b3654, 0x00171b30, 0x00070d18, 0x000b1008, 0x000c1100, 0x00313124, 0x00979688, 0x00fdfdfa, 0x00fcfafc, 0x00fffbff, 0x00fefbff,
- 0x00f4f8f1, 0x00989d97, 0x00010403, 0x000c0d0f, 0x001a1b1c, 0x001e1e1f, 0x00232123, 0x00262424, 0x00202621, 0x00242924, 0x002a2a2a, 0x00312b2d, 0x00332b29, 0x00342d29, 0x00372e2c, 0x003d2e2e,
- 0x00373024, 0x003b3225, 0x003f3127, 0x00402f29, 0x00402d24, 0x003f2b27, 0x003e2927, 0x003c2724, 0x0033251f, 0x002e251e, 0x00312823, 0x00302423, 0x00312826, 0x002d2523, 0x002e2425, 0x004e4448,
- 0x00907e66, 0x00836a52, 0x00674530, 0x006d4731, 0x0083533a, 0x00a47055, 0x00d19a81, 0x00e3ac90, 0x00d5ae86, 0x00d4ad86, 0x00d1a281, 0x00d09e7c, 0x00ca9b75, 0x00c69570, 0x00c5926e, 0x00bf8f67,
- 0x00b48152, 0x00b38151, 0x00b17b4d, 0x00ad7749, 0x00ad7647, 0x00b67a4b, 0x00b27047, 0x00a36240, 0x00894c30, 0x008a4d34, 0x00a46651, 0x00be8166, 0x00bd8764, 0x00ab7659, 0x009b6551, 0x008b5449,
- 0x00362214, 0x000e0300, 0x000f0c07, 0x00181f1b, 0x002b3334, 0x00303237, 0x00241f25, 0x001c1517, 0x000d140a, 0x000a1202, 0x00070d04, 0x000a0b0d, 0x000a0a0e, 0x000a080c, 0x0009060b, 0x000a070b,
- 0x00020703, 0x00020604, 0x00050507, 0x00060408, 0x00080808, 0x00070707, 0x000a070a, 0x000b0a0c, 0x00070707, 0x00090909, 0x000c0c0c, 0x000e0e0e, 0x001e1e1e, 0x00818181, 0x00ffffff, 0x00ffffff,
- 0x00d1c5b1, 0x007e604b, 0x00684b36, 0x005e3c2a, 0x004b3329, 0x003f2d2d, 0x00352f2f, 0x00292d2e, 0x00282718, 0x00322c18, 0x00493b23, 0x0048391d, 0x002b1b03, 0x002d1e04, 0x00524128, 0x0057452f,
- 0x00564531, 0x005a4a36, 0x005f4e3b, 0x00614e3d, 0x005e4c39, 0x00594b3e, 0x00564b44, 0x007f7774, 0x00cecece, 0x00e7e9eb, 0x00e3e4eb, 0x00dbdce6, 0x00d6d8e1, 0x00cdcfd6, 0x00dfdfe5, 0x00cecfd3,
- 0x00e78b67, 0x00d55d39, 0x00d74720, 0x00e03c1b, 0x00c63717, 0x00a13c28, 0x00a96c61, 0x00c1a6a3, 0x00d2c4d1, 0x00ddc6dc, 0x00decee2, 0x00e3e5f0, 0x00f1f3fd, 0x00eeecf9, 0x00dee0ee, 0x00d6dde7,
- 0x00e2e4f3, 0x00e1e0f0, 0x00d2d3e4, 0x00cdcde0, 0x00dddaed, 0x00e7e5f9, 0x00e5e4f4, 0x00e8e3ef, 0x00e1d3d3, 0x00dbc9cb, 0x00e5ced5, 0x00decada, 0x00857ea1, 0x004f5786, 0x008799d0, 0x00aac4f7,
- 0x00c2c6e3, 0x00bfc4e0, 0x00c5c9e4, 0x00cbcde9, 0x00cecadc, 0x00d4cde1, 0x00e2def5, 0x00d5d9f9, 0x006a86c0, 0x001f4490, 0x00083286, 0x00062f81, 0x00435c98, 0x009da6d1, 0x00d0d1f0, 0x00d3cddb,
- 0x00d1cbd7, 0x00d4d5dd, 0x008b8d92, 0x00242325, 0x000d0807, 0x00171105, 0x00231b09, 0x002e2717, 0x003e351e, 0x00503e26, 0x0060452a, 0x006a482a, 0x007c492b, 0x007f4627, 0x00844022, 0x008b3f22,
- 0x0093401c, 0x008e3b14, 0x00822e09, 0x00782a09, 0x005a2211, 0x00391511, 0x001c080e, 0x000b0611, 0x0003060e, 0x00010209, 0x00030205, 0x00030303, 0x00090a08, 0x0011100c, 0x001d1a13, 0x00211e16,
- 0x00262219, 0x00211e16, 0x0017150d, 0x000b0d04, 0x00050a04, 0x00626362, 0x00ffffff, 0x00fffdfe, 0x00fffcf6, 0x00fffbf6, 0x00fdfdfb, 0x00b6bdbf, 0x00213648, 0x001d3b57, 0x003b5e84, 0x004b76a1,
- 0x009b775f, 0x0091654b, 0x00956046, 0x00905837, 0x0092653b, 0x0097744a, 0x00735a32, 0x00614f2c, 0x0043391e, 0x00382b17, 0x004d3820, 0x006c4e24, 0x00a17e4d, 0x00c49e6c, 0x00d6ae77, 0x00e1b67b,
- 0x00f0bc80, 0x00eab879, 0x00e0af70, 0x00d5a563, 0x00cc9e5d, 0x00c39a60, 0x00b8945e, 0x00b4935d, 0x00ae8f5a, 0x00a88a56, 0x00a48653, 0x00a38251, 0x00967144, 0x0082582d, 0x007c4e26, 0x0084542d,
- 0x00a48155, 0x00c2a275, 0x00c7ae7d, 0x00d4bf8f, 0x00c2b08b, 0x006c5d46, 0x00150c07, 0x00090917, 0x00153559, 0x003f6f9c, 0x005f95c4, 0x005c87bb, 0x004e80b2, 0x004a85b6, 0x004787ba, 0x004185be,
- 0x00357eba, 0x00327cbe, 0x002979bd, 0x002975bc, 0x002672bf, 0x002970bb, 0x002e72b7, 0x003572b1, 0x003d70a4, 0x00406e9d, 0x00406a95, 0x00416a96, 0x00416fa3, 0x004378b1, 0x00437eba, 0x003d80c0,
- 0x003e7aa3, 0x00407fa8, 0x004281af, 0x004383b1, 0x003f83b3, 0x004185b3, 0x004284b3, 0x004385b2, 0x003f84ac, 0x004286ad, 0x004984b0, 0x005484b4, 0x004f84b3, 0x005086b3, 0x004d87b3, 0x004c87b5,
- 0x004b86b1, 0x004d85b2, 0x004e8aae, 0x00558eb4, 0x005691b0, 0x006986a2, 0x0068798b, 0x005c6876, 0x004e4e57, 0x004b464b, 0x004c4247, 0x00453b3f, 0x003b3336, 0x00413d40, 0x00535555, 0x005a6160,
- 0x00716965, 0x00a29b98, 0x00f5f0ef, 0x00fdfefe, 0x00fbfefe, 0x00fcfffd, 0x00fdfffe, 0x00dfdee0, 0x008a8883, 0x00807c78, 0x00bfbbb8, 0x00e2e1e6, 0x00f8fafb, 0x00fafaff, 0x00fdfdfe, 0x00fafdfd,
- 0x00fdfdfe, 0x00fcfdfe, 0x00fcfeff, 0x00fbfdfe, 0x00fafdfb, 0x00f5fefc, 0x00f4fffd, 0x00f7fffc, 0x00f8fefd, 0x00fbfefc, 0x00fcfffb, 0x00fefefb, 0x00fffefc, 0x00fdfffd, 0x00fbfffc, 0x00fafffc,
- 0x00dbdade, 0x008c8f8f, 0x00848683, 0x00a4a899, 0x00898362, 0x006a5a30, 0x00735e32, 0x00765e33, 0x00695e41, 0x00605e49, 0x0055574c, 0x004f544f, 0x00444d51, 0x003e4856, 0x0039445c, 0x00324061,
- 0x002d3866, 0x002c3664, 0x002b3360, 0x00292f58, 0x00282f52, 0x00303049, 0x00352d3e, 0x00423541, 0x00382d35, 0x002d2d3e, 0x00485573, 0x006385b6, 0x00437ccd, 0x002668c7, 0x001c61cb, 0x00145acb,
- 0x002262cb, 0x002468ca, 0x00256bc1, 0x002969b6, 0x006f9de7, 0x00a3c4fe, 0x00a5c1fe, 0x007b98e8, 0x00275ab8, 0x001456b6, 0x00256ccf, 0x00296ed9, 0x002161d7, 0x002862ca, 0x002d5fb0, 0x00729ac8,
- 0x00dceef7, 0x00e7f4fd, 0x008a94b9, 0x001c266e, 0x000a1787, 0x00051d7b, 0x000a1c61, 0x005d68a2, 0x00eeeef7, 0x00fcf8f7, 0x00fefcf6, 0x00fcfef8, 0x00f6fef8, 0x00f6fdfc, 0x00f8fefd, 0x00f9fefe,
- 0x00fdfeff, 0x00fbfdfd, 0x00fafaf8, 0x00fafbf7, 0x00fdfcf6, 0x00fefdf8, 0x00fdfdfa, 0x00fdfcfa, 0x00f6fbfa, 0x00f6fefc, 0x00f7fcf8, 0x00fcfced, 0x00fcf8ec, 0x00fdf6ee, 0x00f9f1ec, 0x00f4f2ec,
- 0x00e9efed, 0x00dfe9e7, 0x00dfe7e9, 0x00ececf2, 0x00d0c6ce, 0x00816a68, 0x00361811, 0x002f140a, 0x002f1208, 0x00341107, 0x00381309, 0x0043160d, 0x003f1107, 0x00441008, 0x00471308, 0x004c1309,
- 0x00581800, 0x00621a00, 0x006b1e03, 0x00772208, 0x007e2a0e, 0x00823113, 0x00853515, 0x008d3c1c, 0x00a54622, 0x00ac3f1f, 0x00aa3812, 0x00b23c0e, 0x00b54311, 0x00bb4513, 0x00be4d15, 0x00bf5014,
- 0x00c36122, 0x00c06427, 0x00ca7337, 0x00d08043, 0x00da8e57, 0x00a17d6d, 0x00393044, 0x001b174e, 0x00101c63, 0x000f2050, 0x000e1e41, 0x00151e3e, 0x001a1455, 0x00221f60, 0x002f3164, 0x00242d46,
- 0x001c1f41, 0x001c2043, 0x001c2045, 0x00171e42, 0x00161e42, 0x001a2148, 0x001a224b, 0x0019204b, 0x001d2951, 0x00243258, 0x002c355d, 0x00242953, 0x000e1941, 0x00151f46, 0x00242e57, 0x00293862,
- 0x003a4a74, 0x00475582, 0x004b5985, 0x00465780, 0x00495a85, 0x004b5c81, 0x004d5b7a, 0x0058647f, 0x00697383, 0x007a808c, 0x0081818a, 0x007c797d, 0x00726c70, 0x0070696e, 0x006c656b, 0x0068626a,
- 0x006f696f, 0x0069666b, 0x00636164, 0x00696868, 0x00717271, 0x006f6e6d, 0x00737272, 0x006b6c6c, 0x006a6c6a, 0x0064696a, 0x003c414a, 0x00070e29, 0x00060c21, 0x001a2039, 0x00222a41, 0x002f354b,
- 0x003b4051, 0x003e414c, 0x0055535c, 0x005e585c, 0x00686161, 0x00726b68, 0x00827a7a, 0x00938b8a, 0x009b9391, 0x00aea6a5, 0x00beb7b6, 0x00c4bebd, 0x00d9d3d2, 0x00e1dcda, 0x00eeebe7, 0x00fefbf7,
- 0x00fbfdf8, 0x00fdfffd, 0x00fdfdff, 0x00fefffe, 0x00fcfffe, 0x00fafefe, 0x00fbfffc, 0x00fcfffe, 0x00faffff, 0x00fafefd, 0x00fafefc, 0x00fcfeff, 0x00fefdfe, 0x00fffcfd, 0x00fcfefe, 0x00fcfdfb,
- 0x00fcfbfd, 0x00fffcff, 0x00fcfafb, 0x00fffdfc, 0x00fefefc, 0x00fafdfc, 0x00fdfdff, 0x00fcfefc, 0x00fbfefb, 0x00fdfdfa, 0x00fefbf9, 0x00fdfdfa, 0x00fdfefa, 0x00fdfefa, 0x00fefcf8, 0x00fefbf7,
- 0x00fbfcfb, 0x00fdfbfb, 0x00fbfbf9, 0x00fcfefb, 0x00fbfcfc, 0x00fbfdfe, 0x00fcfdfd, 0x00f9f5f8, 0x00fafafa, 0x00fcfafa, 0x00fefdfd, 0x00fdfefe, 0x00f4f4f3, 0x004c4b48, 0x0017130f, 0x001f1816,
- 0x002c231d, 0x00302824, 0x00665d5d, 0x00c9c2c5, 0x00fcfdff, 0x00fdfcfd, 0x00fcfbfb, 0x00fefbfd, 0x00ebecec, 0x00a0a2a3, 0x003f3d40, 0x004b4644, 0x005c544c, 0x00675b4e, 0x006b594b, 0x006c5a49,
- 0x006a5645, 0x00655240, 0x005f4f3f, 0x00564a3b, 0x00463f3a, 0x00383739, 0x002e333e, 0x00293044, 0x001d2a45, 0x00192749, 0x00172850, 0x00152d58, 0x001b2f56, 0x001f3051, 0x00263250, 0x002a354f,
- 0x002f3a51, 0x002d3b52, 0x002e3b53, 0x00293a52, 0x00223752, 0x001d3355, 0x001c2d53, 0x001a2a4d, 0x001d2840, 0x001c2536, 0x001c2030, 0x001d1b28, 0x001c1a1f, 0x00191316, 0x001a1414, 0x0024201d,
- 0x00503a0c, 0x006a5122, 0x00755829, 0x00815e2e, 0x008a612e, 0x00825b29, 0x006e481f, 0x00573617, 0x00321e11, 0x00210d0e, 0x000d0305, 0x00040200, 0x00000400, 0x00000100, 0x00000300, 0x00010301,
- 0x00020505, 0x00030203, 0x00010300, 0x00040101, 0x00050300, 0x00150001, 0x00421f10, 0x006e4532, 0x00b2866a, 0x00e4c0ad, 0x00f4e3d9, 0x00e0dfe1, 0x009bacbe, 0x00788697, 0x007c899b, 0x00808495,
- 0x007a7f8b, 0x00787883, 0x00706973, 0x00685a61, 0x005b4346, 0x004e3233, 0x003e1e20, 0x00341415, 0x00311514, 0x00361b1a, 0x00351c1e, 0x00352122, 0x003d2c2b, 0x00453534, 0x00554446, 0x00625253,
- 0x006f5e64, 0x007a6b6f, 0x00897b80, 0x008d8285, 0x008a8083, 0x00867d80, 0x0084787d, 0x00837579, 0x00817070, 0x007f6e6e, 0x007d6b6e, 0x00796d72, 0x00716f7b, 0x00676f81, 0x005d6a82, 0x00556783,
- 0x003e6286, 0x003f648e, 0x003e6491, 0x003b6693, 0x003d6e9a, 0x0042739c, 0x00507ba3, 0x00567ea5, 0x005f839b, 0x0067869c, 0x006c859b, 0x00677f92, 0x005a7284, 0x004d657a, 0x00425a72, 0x003d5570,
- 0x00354f71, 0x0035547a, 0x00325781, 0x00365d8b, 0x00376093, 0x003e6497, 0x004b6f99, 0x008ba3bf, 0x00eff4f7, 0x00fdfcf8, 0x00fffdfc, 0x00fbfaf9, 0x00f7f9fb, 0x00b6b8be, 0x0023242b, 0x00030006,
- 0x00000818, 0x0001090c, 0x00170705, 0x00590e10, 0x009e151c, 0x009b4940, 0x00bd9e89, 0x009caf94, 0x00b6b9bc, 0x00b4adc0, 0x00bcb3c3, 0x00c2c0c1, 0x00c6c4c3, 0x00cbc9c8, 0x00dbdad7, 0x00e7e6e4,
- 0x00e1e1dc, 0x00dbd7d6, 0x00dbd8d7, 0x00dadad6, 0x00e0dfdb, 0x00d8d4d5, 0x00dcd6d5, 0x00e7e0da, 0x00e2dad2, 0x00e3dfdb, 0x00c2c2c6, 0x00b2b9c5, 0x009da8b2, 0x0067686e, 0x00635e5d, 0x00675850,
- 0x00845b36, 0x007b5428, 0x00764c1d, 0x008c5e28, 0x00ad7b41, 0x00bd884d, 0x00ae7c40, 0x00956528, 0x00865b20, 0x008c5e2b, 0x00865925, 0x008e602b, 0x00926e43, 0x008b7254, 0x00897a6b, 0x00686162,
- 0x002c364b, 0x00233255, 0x001d335c, 0x00233e6f, 0x003f5c95, 0x004c6595, 0x00354c73, 0x00182d4a, 0x000b1d21, 0x0004130c, 0x00232c1e, 0x00919586, 0x00fdfef5, 0x00fefafe, 0x00fdf9fd, 0x00fcfafe,
- 0x00f9f9f6, 0x009c9c9b, 0x00030302, 0x000d0e0d, 0x001c1c1c, 0x001f2020, 0x00212323, 0x00222426, 0x00282727, 0x00282928, 0x00292b29, 0x002e2e2c, 0x00302d2b, 0x00352f2c, 0x00352d2a, 0x00392f2b,
- 0x003c322e, 0x003f342d, 0x003e3129, 0x003d2e29, 0x003c2c22, 0x003e2a26, 0x003e2726, 0x003c2524, 0x00342323, 0x002f2422, 0x002d2422, 0x00292120, 0x002a2524, 0x002a2522, 0x00231d18, 0x0045423b,
- 0x00a08072, 0x00ab8979, 0x00a4806e, 0x00936d57, 0x007e5137, 0x00865539, 0x00b58366, 0x00d6a485, 0x00d9ae8d, 0x00d9ad8d, 0x00d2a481, 0x00cf9e78, 0x00ca9771, 0x00c4916c, 0x00c18f68, 0x00bc8b62,
- 0x00b78458, 0x00b8835b, 0x00b27c50, 0x00ad7648, 0x00af754b, 0x00b5774a, 0x00ae6c3f, 0x00a3603c, 0x00934f38, 0x0092513a, 0x00aa6b56, 0x00b97f66, 0x00956548, 0x00794d35, 0x005d3326, 0x00401714,
- 0x00140702, 0x00060100, 0x00070a07, 0x000c1a15, 0x0027312f, 0x0036393a, 0x00302d2f, 0x00211b1a, 0x000b0d05, 0x000a0f01, 0x00090c05, 0x000b0a0d, 0x0009080d, 0x0008090d, 0x0008080c, 0x0009080b,
- 0x0006080a, 0x00050708, 0x00060509, 0x00070509, 0x00070708, 0x00070807, 0x00090809, 0x00090909, 0x00090909, 0x00090909, 0x00090909, 0x000b0b0b, 0x001e1e1e, 0x00848484, 0x00fefefe, 0x00fdfdfd,
- 0x00d5ccb6, 0x00896f56, 0x0070523b, 0x00623f28, 0x0057382a, 0x0047352d, 0x003b332d, 0x0032302c, 0x002d2924, 0x002e291f, 0x00382e1c, 0x00372c13, 0x002d1c07, 0x003a2c16, 0x00574734, 0x005f4f3f,
- 0x00625544, 0x00625645, 0x005f5141, 0x00615347, 0x005c4d40, 0x004f443b, 0x004b423d, 0x004b4543, 0x00797478, 0x009c999d, 0x00bcbec2, 0x00c7ccd1, 0x00c7ced4, 0x00c1c7cd, 0x00b7bbc1, 0x00babdc3,
- 0x00bfa6a1, 0x00be857a, 0x00c97168, 0x00df6f62, 0x00de8884, 0x00dbafaf, 0x00e0d5dd, 0x00d1e1ed, 0x00ced7eb, 0x00d7cde1, 0x00ccc2d2, 0x00c2c7cf, 0x00d4d5de, 0x00e1e2ed, 0x00e8eaf7, 0x00eceafa,
- 0x00e3e0ee, 0x00dfe1f0, 0x00e1e2f2, 0x00e0e0f2, 0x00d4d0e3, 0x00cad4e9, 0x00d9e7f9, 0x00e3e9fb, 0x00e8e0ec, 0x00e6dce8, 0x00d9cdd5, 0x00d8d1d7, 0x009496b3, 0x00394575, 0x006174b5, 0x009bb5f8,
- 0x00babed6, 0x00b7bbd3, 0x00bfc0dd, 0x00c3c4dd, 0x00d2cde0, 0x00d0c9da, 0x00d5d2e9, 0x00d4d6f7, 0x00637eb9, 0x00123983, 0x00134092, 0x00114192, 0x005570ae, 0x00aebce9, 0x00cfd3f0, 0x00d1cedd,
- 0x00cdcdd3, 0x00d3d5db, 0x008b8b93, 0x001c1a1d, 0x0010080b, 0x00110d04, 0x00211d0e, 0x002e281a, 0x00443825, 0x00523f2b, 0x005f462d, 0x0067492a, 0x0079482c, 0x007e472a, 0x00854628, 0x008c462b,
- 0x008e411d, 0x008a3d18, 0x00813211, 0x00793012, 0x00582417, 0x00371714, 0x001e0e15, 0x000d0b17, 0x00040b13, 0x0001050b, 0x00000304, 0x00030603, 0x000e0f0b, 0x00191610, 0x00261f16, 0x002e251a,
- 0x00332c1b, 0x00312c1d, 0x00292519, 0x001b1a10, 0x000e100a, 0x00666664, 0x00fefefd, 0x00fefbfa, 0x00fffcfa, 0x00fefbf6, 0x00fbfefb, 0x00b3bdbc, 0x00213647, 0x0018304d, 0x00425d81, 0x005a7ba5,
- 0x009b6f4a, 0x00925d36, 0x00b2744c, 0x00ad683b, 0x00b27843, 0x00aa7d47, 0x00947442, 0x00816a40, 0x00736245, 0x005e4e37, 0x0047351b, 0x00573f19, 0x007e6137, 0x00a78859, 0x00c9a776, 0x00d6b07b,
- 0x00ddb574, 0x00deb472, 0x00ddb072, 0x00d2a969, 0x00cda466, 0x00c49e61, 0x00bf975c, 0x00bb945b, 0x00b9945d, 0x00b99560, 0x00ba9762, 0x00b89563, 0x00b38c5f, 0x00a67a51, 0x00a3714c, 0x00a06a49,
- 0x00aa8053, 0x00c8a175, 0x00e9cb9c, 0x00ebd3a3, 0x00d9c69f, 0x00928469, 0x00160f04, 0x0002040d, 0x000f294b, 0x003a628a, 0x006095c7, 0x00508fc5, 0x004b87be, 0x004986b9, 0x004883bb, 0x004681b5,
- 0x00417baa, 0x004677a4, 0x004875a6, 0x004e74a3, 0x004e709e, 0x00446d99, 0x00436f98, 0x00476c91, 0x00445d7d, 0x00394e69, 0x002a3e54, 0x0023364b, 0x00324963, 0x0040597c, 0x00516e96, 0x005679a5,
- 0x004b82aa, 0x004d86b0, 0x004a86b5, 0x004684b8, 0x004386be, 0x004388c0, 0x004087c0, 0x003e87bf, 0x004284ba, 0x004482bb, 0x004385b8, 0x003e8bb5, 0x00418ab9, 0x00428aba, 0x00458aba, 0x004589be,
- 0x004e88ba, 0x005587b4, 0x006088b3, 0x006184ac, 0x005f769f, 0x00616b7c, 0x00555860, 0x00474950, 0x0048454d, 0x004a4449, 0x00463e42, 0x003a3435, 0x003b3838, 0x00424242, 0x00535554, 0x00606364,
- 0x006e6a63, 0x009e9b95, 0x00f4f1ef, 0x00fdfdfe, 0x00fdfeff, 0x00fcfdfe, 0x00f8fbf9, 0x00ddddda, 0x0086817f, 0x0084807b, 0x00beb9b5, 0x00dddbda, 0x00f6f4f4, 0x00faf8f9, 0x00fef9fa, 0x00f9f8f6,
- 0x00fbfafb, 0x00fafbfa, 0x00fafafb, 0x00fafaf9, 0x00fbf8f8, 0x00f6faf9, 0x00f6fafa, 0x00f9f8f9, 0x00fbf9fa, 0x00fbfaf6, 0x00fbfaf0, 0x00f8f8ed, 0x00f9f7f1, 0x00f8f9f7, 0x00f9f9f9, 0x00f8fafa,
- 0x00d8d7d8, 0x008c8f8c, 0x00848781, 0x00a6a99b, 0x008a8266, 0x00695934, 0x006c5a30, 0x006f5d32, 0x00695f48, 0x00615f51, 0x00555951, 0x004d5652, 0x00424e54, 0x003c4658, 0x0035405d, 0x002b3b61,
- 0x002a3765, 0x00283464, 0x00263263, 0x0025305e, 0x00262f57, 0x002d2d4b, 0x002c273e, 0x00332d43, 0x002f2742, 0x002b3554, 0x004f6b95, 0x005485be, 0x003173cb, 0x001d61c4, 0x001556c3, 0x001856c7,
- 0x00225de1, 0x002462d5, 0x002864cb, 0x002a67c0, 0x003c72cd, 0x004c80e2, 0x004375de, 0x002f62d0, 0x001f62c5, 0x001c6cc3, 0x00226dc9, 0x002a6ad4, 0x002665d3, 0x002b66ca, 0x001f53ab, 0x005e88c9,
- 0x00c4dfed, 0x00e6fcfc, 0x009baac1, 0x002e3a68, 0x000a157d, 0x00071d79, 0x00071a68, 0x0045508d, 0x00e0d9ed, 0x00fbf5f9, 0x00fbfbf7, 0x00fcfbef, 0x00fefcfd, 0x00fffefd, 0x00fafcfd, 0x00fdffff,
- 0x00f7f7f4, 0x00fdfef7, 0x00fafaf3, 0x00fefcf7, 0x00fdf9f2, 0x00faf6ee, 0x00f9f4eb, 0x00f6f3e9, 0x00fef7f5, 0x00f7f3f0, 0x00fef6ea, 0x00f8e5cd, 0x00f4d1c6, 0x00e1c0bc, 0x00d6b7b8, 0x00f1d7dd,
- 0x00e9e3e7, 0x00e1dce3, 0x00d8d2d9, 0x00e9dee9, 0x00ecd1e0, 0x00917575, 0x002b0b02, 0x00361409, 0x00361007, 0x003b1509, 0x0041170c, 0x003d1509, 0x00400f07, 0x003b0c04, 0x00471409, 0x004a1509,
- 0x00481607, 0x004b1906, 0x00612c1e, 0x00713d32, 0x00784e3e, 0x00755a40, 0x008c7052, 0x00a08062, 0x00b58060, 0x00a56748, 0x00974420, 0x00b23e0d, 0x00bb4315, 0x00bf4914, 0x00c45119, 0x00c9561e,
- 0x00cb6226, 0x00cd6b2d, 0x00d37437, 0x00d77f41, 0x00ee995c, 0x00d7a17d, 0x00795855, 0x003a1e47, 0x001e1c5f, 0x001a2252, 0x0015244b, 0x00152349, 0x001b1a64, 0x0024226b, 0x002a2b66, 0x00272d4d,
- 0x00202554, 0x001e2453, 0x001e2353, 0x001d2453, 0x001e2656, 0x001f2959, 0x001d285a, 0x001c285d, 0x00222d61, 0x00273265, 0x00293467, 0x00262f64, 0x00212b60, 0x00252d64, 0x002c376f, 0x00323f79,
- 0x0043578d, 0x00576ca3, 0x005c72a9, 0x005870a9, 0x005f77b2, 0x005d76a8, 0x006579a3, 0x008799bc, 0x00a1a7c5, 0x009d9eb3, 0x00afaeba, 0x00a8a6a9, 0x009c979b, 0x009e96a0, 0x00a199a4, 0x00958b97,
- 0x0098949a, 0x00a39ea4, 0x00928d92, 0x00949192, 0x00aaaaa7, 0x00a9aba7, 0x00abb0ab, 0x00a7aaa7, 0x00a1a5ad, 0x009aa0a9, 0x004e556a, 0x000d183d, 0x000c153c, 0x000f1941, 0x0009143d, 0x0012193e,
- 0x00131a33, 0x00181b2d, 0x0023212e, 0x00292229, 0x00312527, 0x00332621, 0x00372822, 0x00372922, 0x003a2823, 0x00382722, 0x0036251f, 0x0031221a, 0x002e1d17, 0x002d1c16, 0x002c1b15, 0x002b1713,
- 0x002f1c13, 0x004a3a33, 0x00514441, 0x00605959, 0x007b7a7f, 0x007e8185, 0x008c9191, 0x008b9293, 0x009f9fa0, 0x00adacaf, 0x00b1b0af, 0x00b5beba, 0x00bfbfbf, 0x00cccbcc, 0x00d7d4d6, 0x00ddd8da,
- 0x00eaebe5, 0x00eae9e9, 0x00f2f4f3, 0x00f3faf6, 0x00f8fffb, 0x00f5fefb, 0x00f3fdfc, 0x00f7fefd, 0x00f8fdff, 0x00f7fdfe, 0x00f5fcfd, 0x00f4fcfa, 0x00f8fdfc, 0x00f9fafb, 0x00fdfbfd, 0x00fffdff,
- 0x00fcfdf9, 0x00fcfcfa, 0x00fefffc, 0x00fcfdfa, 0x00fbfbfc, 0x00fafbfb, 0x00fafbfa, 0x00fbfafa, 0x00fdfdfb, 0x00fcfcfd, 0x00fbfdfd, 0x00f2f5f4, 0x00dddede, 0x00333232, 0x00100d0b, 0x001d1615,
- 0x00262019, 0x00332b28, 0x0075706f, 0x00dad4d6, 0x00fefcff, 0x00fdfdfd, 0x00fefdfc, 0x00fdfefe, 0x00e3e5e5, 0x008a888a, 0x00424140, 0x00494640, 0x0062564d, 0x006c5b4d, 0x00746251, 0x007b6554,
- 0x007a604b, 0x00735b46, 0x00695442, 0x005d4e3d, 0x00524740, 0x00433e3e, 0x0035353d, 0x002d2f40, 0x00262e4c, 0x00232a4e, 0x001a2a50, 0x00122a52, 0x00172c51, 0x001a2e51, 0x00213154, 0x00253355,
- 0x0025394f, 0x00243750, 0x00253751, 0x00253653, 0x00233350, 0x001c324e, 0x001a2f46, 0x001c2c40, 0x001f2837, 0x0020262b, 0x001e2121, 0x001d1e19, 0x001c1f15, 0x001a1911, 0x0014120b, 0x001b1813,
- 0x004f3b18, 0x00745e34, 0x00937747, 0x0096733d, 0x0092682f, 0x007f5623, 0x006d461a, 0x00593616, 0x00452718, 0x002e170c, 0x001a0a03, 0x00040300, 0x00080000, 0x00010000, 0x00020202, 0x00000102,
- 0x00020002, 0x00000003, 0x00020002, 0x00040405, 0x000e070c, 0x00270501, 0x0076412c, 0x00af6c4c, 0x00bd764e, 0x00cb967a, 0x00f9e2d3, 0x00dcdfe2, 0x00a1b9d1, 0x007b8fa5, 0x00768397, 0x007e7e8e,
- 0x00757b86, 0x0072737d, 0x006d6871, 0x00665960, 0x005a4347, 0x00462e2f, 0x003c2022, 0x003a1f1f, 0x00412c29, 0x0047322f, 0x00463231, 0x00403130, 0x00453333, 0x004d3c3c, 0x0059484b, 0x005e4c50,
- 0x00685b5d, 0x00726669, 0x0083777b, 0x00887c81, 0x00897e84, 0x0082797d, 0x0081797a, 0x00807777, 0x00807274, 0x007e7272, 0x007a7070, 0x00777273, 0x00737580, 0x0070788a, 0x0067728c, 0x005d6987,
- 0x00436b88, 0x0044698d, 0x0040668d, 0x003d668f, 0x00426a95, 0x00446d93, 0x004e7496, 0x00567896, 0x00677c93, 0x006a7c90, 0x006a7987, 0x00667479, 0x005e6a72, 0x0057626e, 0x004d5967, 0x00455266,
- 0x00384d64, 0x00314c6a, 0x0034517a, 0x00325886, 0x00385e90, 0x0038618e, 0x004b6b91, 0x0099afc9, 0x00f9f9ff, 0x00fefaf9, 0x00fdfbf8, 0x00fbfcf8, 0x00f5f8f9, 0x00a4a7af, 0x00161621, 0x0005020b,
- 0x00000d18, 0x0000070e, 0x00200f18, 0x00571020, 0x008e2133, 0x00956261, 0x00b7ad9f, 0x0099b09e, 0x00b7b1b7, 0x00b7adbb, 0x00b9b0bc, 0x00c4c0bf, 0x00c8c5c6, 0x00ccc9c9, 0x00dcdad9, 0x00e0dddd,
- 0x00d9d8d6, 0x00dddcd9, 0x00dcdada, 0x00eae7e6, 0x00e5e3e1, 0x00d9dad9, 0x00dddede, 0x00dddad8, 0x00eadeda, 0x00efe8ea, 0x00d0d0d6, 0x00acb6be, 0x00beccd4, 0x00a4aab3, 0x00898b91, 0x00827c7b,
- 0x00896c4c, 0x00806341, 0x0072512f, 0x007d5730, 0x00a67f4f, 0x00b38d5a, 0x0096703d, 0x00825c2a, 0x00816030, 0x0089653d, 0x00886849, 0x008a7565, 0x00978783, 0x00847b7f, 0x004e4b57, 0x002d3445,
- 0x001c3349, 0x00193957, 0x0026486f, 0x0030577e, 0x00335a88, 0x003267a1, 0x003f77b8, 0x004274aa, 0x003e6680, 0x002a4952, 0x00263c3b, 0x00899689, 0x00fefef8, 0x00fff9f6, 0x00fffbff, 0x00fdf6ff,
- 0x00f5f6f6, 0x009b9c9c, 0x00040503, 0x000e0f0d, 0x001e1d1e, 0x00222123, 0x00252526, 0x0029282a, 0x002b2b2d, 0x002a2b2b, 0x002c2d29, 0x002d2f28, 0x0031302b, 0x0034302d, 0x0037312d, 0x00393330,
- 0x003a322b, 0x003d312c, 0x003e302a, 0x003d2d2b, 0x003e2c29, 0x003b2725, 0x00392522, 0x00352223, 0x00322329, 0x002c2126, 0x002b2629, 0x00272526, 0x00262020, 0x00291f1d, 0x00241915, 0x00433630,
- 0x00997a69, 0x00a88476, 0x00ad8472, 0x00ab816a, 0x00a97b63, 0x00aa7d5e, 0x00b78966, 0x00c89979, 0x00d8a786, 0x00d7a889, 0x00d0a180, 0x00ca9b74, 0x00c5936e, 0x00c28e6d, 0x00bf8b67, 0x00ba845d,
- 0x00b77e57, 0x00b47c55, 0x00b17951, 0x00ad744f, 0x00a76d48, 0x00a56f40, 0x009e6839, 0x00945b38, 0x008c4f3b, 0x00844d36, 0x00784930, 0x00653d1e, 0x00432508, 0x00321806, 0x001e0800, 0x00160302,
- 0x00080403, 0x00030405, 0x00020a09, 0x00021210, 0x00131e1f, 0x00202524, 0x002b2b29, 0x0026221f, 0x0015140f, 0x000e1308, 0x000f120c, 0x000c0a0d, 0x000a090d, 0x00090a0c, 0x000a090d, 0x0009090b,
- 0x00060509, 0x0008070a, 0x000b080c, 0x000a080c, 0x000a0a0d, 0x0008080a, 0x00080809, 0x00090a09, 0x000a0a0a, 0x000a0a0a, 0x000d0d0d, 0x00040404, 0x00202020, 0x008c8c8c, 0x00ffffff, 0x00fefefe,
- 0x00d6cebf, 0x008d7662, 0x0072563d, 0x00653e25, 0x005d3b24, 0x0052392d, 0x0045372d, 0x0039332e, 0x00342d29, 0x00382f29, 0x003a3125, 0x003e321f, 0x00413323, 0x004a3b2d, 0x00594d40, 0x00685a4f,
- 0x006e6456, 0x006c6259, 0x00625950, 0x00625652, 0x00564c48, 0x004b423e, 0x00423d38, 0x003b3533, 0x00413f3f, 0x00585959, 0x00939495, 0x00aeb2b5, 0x00c7ccd1, 0x00d8dde4, 0x00d9dee6, 0x00d7dde4,
- 0x00e4d1e2, 0x00d4bec5, 0x00d4b5b7, 0x00e2bcb7, 0x00f5d4da, 0x00f9e1ed, 0x00fdf0fe, 0x00f2effc, 0x00e6efff, 0x00e3f0f6, 0x00d5dee6, 0x00d5d6e1, 0x00c9cad5, 0x00c9c9d6, 0x00cfcfdc, 0x00d6dae6,
- 0x00e2e2f2, 0x00e6e6f9, 0x00eeecfd, 0x00eae9fc, 0x00dfdcee, 0x00c8d5e9, 0x00c6d7e9, 0x00d3ddf3, 0x00e9e8fb, 0x00eae5f8, 0x00e0dbe4, 0x00d5d3dd, 0x00afb2cd, 0x00575f8c, 0x00323f7c, 0x007380ce,
- 0x00aaabc6, 0x00acb0c8, 0x00b2b6cd, 0x00bfc1d8, 0x00cdc8d9, 0x00d2cadc, 0x00cecadf, 0x00bec2e1, 0x005a75b3, 0x00204793, 0x002a59ab, 0x001d4d9e, 0x005773b0, 0x00b6c7f0, 0x00d7def3, 0x00d1d3e1,
- 0x00cbc9d0, 0x00d1d3db, 0x007a7b81, 0x00131217, 0x000f0a0a, 0x0015110a, 0x00231d11, 0x0031291f, 0x00403525, 0x004f3c2c, 0x005c462f, 0x0068492e, 0x00774930, 0x007d482d, 0x00824a2c, 0x008a4b30,
- 0x00894425, 0x00863f21, 0x007d3516, 0x00763318, 0x00552718, 0x00371b19, 0x00221618, 0x0012111c, 0x00070d14, 0x0005090e, 0x00010507, 0x00060b09, 0x00131511, 0x001e1d15, 0x002d281b, 0x00393022,
- 0x00403727, 0x003d3728, 0x002e2b1d, 0x001d1d12, 0x0010140c, 0x00686966, 0x00ffffff, 0x00fffcfc, 0x00fdfffa, 0x00fefcfb, 0x00fcfdfb, 0x00b6bbbf, 0x00223143, 0x00162947, 0x00415979, 0x005c789f,
- 0x00996a46, 0x0096603b, 0x00b57a52, 0x00b27145, 0x009f6834, 0x009b7239, 0x00997945, 0x009b8453, 0x00a18c63, 0x008d7353, 0x00654e2b, 0x005d4620, 0x00765a2e, 0x00977748, 0x00c2a06f, 0x00d7ae7c,
- 0x00d8b076, 0x00daaf77, 0x00d6ac73, 0x00cda56b, 0x00c6a167, 0x00c49b5f, 0x00bf9559, 0x00be9558, 0x00be9a61, 0x00c4a069, 0x00c39e6a, 0x00c39e6b, 0x00c1996b, 0x00bb8e65, 0x00b98862, 0x00ba8563,
- 0x00b5835a, 0x00c4986e, 0x00e5c195, 0x00f2d6a8, 0x00e6d0a8, 0x00a39073, 0x0024190b, 0x00080407, 0x000a1c37, 0x00325679, 0x005a93c3, 0x004697da, 0x003c89c7, 0x003e87be, 0x004485b3, 0x00477ea4,
- 0x0050738f, 0x0062758a, 0x00788192, 0x00807c87, 0x0072656d, 0x00515b6b, 0x003c5165, 0x00344555, 0x00283745, 0x00222c3b, 0x001c2430, 0x0018202a, 0x001a2430, 0x001d2a37, 0x002e3c4b, 0x003b4c5d,
- 0x00486883, 0x004f7492, 0x0050799e, 0x004f7da7, 0x004f85b6, 0x005289bd, 0x004e86bc, 0x004c86bc, 0x004d86b9, 0x004f84ba, 0x004c87b8, 0x00428caf, 0x00438bb3, 0x00458cb6, 0x004a8dbb, 0x00508ebd,
- 0x005789b3, 0x005c81ab, 0x005f7aa1, 0x005a6e92, 0x00535a7b, 0x004d515d, 0x00454548, 0x00423f44, 0x00444248, 0x00454047, 0x00433c42, 0x003d393c, 0x00413f40, 0x00464745, 0x00545654, 0x00616362,
- 0x00706d65, 0x009e9d96, 0x00f4f2ef, 0x00fefefd, 0x00ffffff, 0x00fefeff, 0x00f9fcfa, 0x00dbdeda, 0x00797470, 0x0067605c, 0x00938b85, 0x00b5aaa2, 0x00c3bbb5, 0x00c9bdb8, 0x00ccc0bb, 0x00cabfb8,
- 0x00cac0bb, 0x00c9c0bc, 0x00c9bfbb, 0x00cabfba, 0x00cbbfbb, 0x00c5c1bc, 0x00c3c1bd, 0x00c6c0bc, 0x00c8c1b5, 0x00cbc0b4, 0x00cac0b1, 0x00cbbfb2, 0x00c5bdb4, 0x00c8c4be, 0x00cccdc9, 0x00ccd0cd,
- 0x00b7b6b8, 0x00858686, 0x00878884, 0x00a6a89b, 0x00888266, 0x00685b36, 0x006b5b32, 0x006e5c34, 0x00655e45, 0x005e5f52, 0x00525b53, 0x004a5753, 0x00414e55, 0x003a465a, 0x00323f5f, 0x00293965,
- 0x00273668, 0x00263468, 0x00233065, 0x00222e60, 0x00212a5a, 0x0029294f, 0x002a2645, 0x002f2c4a, 0x00252a4c, 0x002c3f6a, 0x005275aa, 0x00487cc3, 0x002668c6, 0x001457be, 0x001254bd, 0x001957c3,
- 0x00255ce4, 0x00245cd5, 0x00235fca, 0x002a65c3, 0x00376fcc, 0x003267ce, 0x002760c8, 0x00245ec9, 0x002166c4, 0x001f69be, 0x002369bf, 0x002f68d2, 0x00205dc2, 0x00245cbf, 0x001547a6, 0x003f69bc,
- 0x00b6d0ef, 0x00e6f8ff, 0x00abb6c6, 0x003c4569, 0x00050d62, 0x00041670, 0x00031361, 0x00333979, 0x00cac5df, 0x00faf4fd, 0x00fefdfc, 0x00fffefb, 0x00fcfbfb, 0x00fffafd, 0x00fbf9fc, 0x00fcf9fc,
- 0x00fdfafa, 0x00fff9f6, 0x00fcf5ee, 0x00fff2eb, 0x00fae3d8, 0x00fde3d6, 0x00eed1c4, 0x00dbbfb0, 0x00f4ddd3, 0x00fbe7de, 0x00fae3d4, 0x00f8ceb7, 0x00ddab9f, 0x00daaaa6, 0x00d1a9a9, 0x00efd0d2,
- 0x00eadee5, 0x00ede1ec, 0x00e0d5df, 0x00e9d9e6, 0x00f7dced, 0x00b09294, 0x0033160c, 0x00311309, 0x003a160e, 0x00381209, 0x003b140c, 0x00401810, 0x00401810, 0x00492118, 0x00563324, 0x00573424,
- 0x0064423a, 0x00745148, 0x008d6d64, 0x00a1877f, 0x0097887c, 0x007e7b65, 0x008b856a, 0x00938969, 0x00997351, 0x00915e3e, 0x008f451d, 0x00b04010, 0x00b84314, 0x00bb4a1a, 0x00bf501d, 0x00c55520,
- 0x00c86024, 0x00cd692e, 0x00d57636, 0x00da7e40, 0x00ea9352, 0x00f2a778, 0x00bb8068, 0x00623540, 0x00261647, 0x00272352, 0x00161e4a, 0x00151f50, 0x001d1b5f, 0x00232263, 0x00282a5f, 0x0024294c,
- 0x00212658, 0x00202559, 0x00202459, 0x001f2458, 0x0022285a, 0x00232b5d, 0x00212a5e, 0x00202a61, 0x00212c62, 0x00253066, 0x0028316a, 0x002c316d, 0x00282f6c, 0x002c3470, 0x00313b79, 0x00354382,
- 0x00485d99, 0x005b72ad, 0x006279b8, 0x005e78ba, 0x006782c3, 0x006984bd, 0x007a8fc4, 0x008ea0ce, 0x00adb4d8, 0x00b8b9d2, 0x00bab6c4, 0x00bbb6bb, 0x00b2a9ae, 0x00bdb3bc, 0x00bfb7c1, 0x00b1a9b5,
- 0x00b1a8b2, 0x00c5bec6, 0x00b9b4b9, 0x00b6b4b4, 0x00cecfcb, 0x00d7d8d4, 0x00d7d8d8, 0x00d1d3d6, 0x00d0d4db, 0x00bec1d1, 0x005f667e, 0x001d2b5c, 0x001b2a5b, 0x001f2d60, 0x001a2a58, 0x001c2a55,
- 0x00222d4e, 0x002a2f4a, 0x00353247, 0x00403743, 0x0046373c, 0x004f3c36, 0x00533e33, 0x00543e32, 0x00533d31, 0x004f392e, 0x00493327, 0x00432d21, 0x0040281d, 0x003f251b, 0x003d231a, 0x003c2018,
- 0x003c1e14, 0x003b1f19, 0x0034201b, 0x003a2b2a, 0x00454043, 0x003b363b, 0x001c1c1f, 0x00040608, 0x00000000, 0x00060204, 0x000e0b05, 0x00221f16, 0x0028231c, 0x00342b27, 0x00392e2c, 0x003c3131,
- 0x004d4746, 0x00464342, 0x0050504c, 0x00586156, 0x006a756d, 0x00838c8d, 0x00959ca4, 0x00aeb3bc, 0x00b6bfc9, 0x00c3c9d4, 0x00d5dbe5, 0x00d6dbe2, 0x00f3f3f7, 0x00fefbfd, 0x00fdfcfc, 0x00fdfbfb,
- 0x00fdfdfa, 0x00fefdfa, 0x00fffefa, 0x00fefdf9, 0x00fefcfb, 0x00fdfdfd, 0x00fafbfc, 0x00f9fafb, 0x00fdfbfc, 0x00fcfdfe, 0x00f4f8f8, 0x00f0f4f5, 0x009ea0a1, 0x00151614, 0x000c0a06, 0x0019130f,
- 0x00241f18, 0x00342d29, 0x00807d7b, 0x00e7e1e3, 0x00fffdff, 0x00fefeff, 0x00fefefe, 0x00feffff, 0x00d8d7d9, 0x00797677, 0x00383535, 0x0048423c, 0x00605147, 0x006a5849, 0x00715e4c, 0x007a6551,
- 0x0082664b, 0x007c6149, 0x006f5642, 0x00624f3c, 0x0053443b, 0x0049403d, 0x003c373d, 0x00353243, 0x002b314d, 0x00292f52, 0x001f2c53, 0x00162d56, 0x00172c54, 0x001b2f54, 0x001e3053, 0x00223153,
- 0x00263551, 0x00243452, 0x00253552, 0x00243652, 0x0024344f, 0x0020344e, 0x00203349, 0x00223145, 0x00252b37, 0x0026292d, 0x00242221, 0x0026221c, 0x00221f15, 0x00201d13, 0x001a1a10, 0x0026271f,
- 0x00574937, 0x00776348, 0x0091774f, 0x00906f3c, 0x00926931, 0x00865d2b, 0x0071481e, 0x0062391c, 0x004f3117, 0x003d240b, 0x00281203, 0x00180600, 0x00110200, 0x00080100, 0x00040101, 0x00010102,
- 0x00040608, 0x00000108, 0x00020105, 0x00040308, 0x00181419, 0x004e1a10, 0x00964a32, 0x00c66e4a, 0x00c06837, 0x00c07d5a, 0x00f6d7c3, 0x00e1dfe3, 0x00a3bfda, 0x007c92aa, 0x006a7c90, 0x00787c88,
- 0x00707781, 0x006f707a, 0x0069636d, 0x0063555d, 0x00584146, 0x004c3535, 0x00462d2c, 0x0048302c, 0x00503f39, 0x0055433e, 0x0052403e, 0x0052403e, 0x004c3b3b, 0x00513e3f, 0x00574547, 0x0059484b,
- 0x00604e53, 0x006b585e, 0x007a686e, 0x00807076, 0x00827279, 0x007e7277, 0x007d7376, 0x00817578, 0x00827475, 0x007e7372, 0x007b7372, 0x00797677, 0x00737783, 0x006f788a, 0x0068738b, 0x005f6c86,
- 0x00496b8b, 0x0046698c, 0x00406488, 0x003e658a, 0x003f678d, 0x0042688a, 0x004f6e8d, 0x005b7791, 0x006c7c8c, 0x006e7988, 0x006d757c, 0x00696e6c, 0x00626664, 0x005c5f62, 0x0052575c, 0x00484f58,
- 0x003b4a5a, 0x00354965, 0x00304e71, 0x00305380, 0x002f5a8c, 0x00365b89, 0x00516f96, 0x00a3b5ce, 0x00f9fafd, 0x00fefaf8, 0x00fffdf8, 0x00fdfefb, 0x00eef2f7, 0x009499a1, 0x00090a15, 0x0008050d,
- 0x00020a17, 0x00010915, 0x00181523, 0x004b1b35, 0x006d223e, 0x0080606d, 0x00a3a4a3, 0x0095a7a3, 0x00b9abb5, 0x00b6acb8, 0x00b7b3b8, 0x00c2bfc0, 0x00c6c1c1, 0x00cfcbcb, 0x00dad8d5, 0x00d8d5d4,
- 0x00dad5d6, 0x00e0dcdd, 0x00e2dfdd, 0x00ece9e7, 0x00e6e4e0, 0x00d4d7da, 0x00dadddd, 0x00e0dbd9, 0x00ede2df, 0x00f4eded, 0x00dddce0, 0x00d0d7e0, 0x00d6e2ee, 0x00c8cfd9, 0x00babdc0, 0x00aeadaa,
- 0x00a18c7d, 0x008c7763, 0x007e6650, 0x007f6548, 0x009c805c, 0x009f835d, 0x00896d46, 0x00775b35, 0x008a7150, 0x00a58b6e, 0x00a28f7d, 0x008d848e, 0x0069656e, 0x00414353, 0x001d2335, 0x00243143,
- 0x002e445b, 0x004c6681, 0x006f8da8, 0x007193b1, 0x00597d9a, 0x003d72ae, 0x00356faf, 0x00346aa0, 0x004b7591, 0x00628394, 0x00738a8b, 0x00acb8b2, 0x00fbfbf5, 0x00fef9f9, 0x00fdf9fa, 0x00fefafd,
- 0x00f8f9fb, 0x00a0a0a1, 0x00060707, 0x000f100f, 0x00202021, 0x00242425, 0x00262728, 0x0029292a, 0x002d2c2d, 0x002e2d2e, 0x002c2c2a, 0x002f312b, 0x0030302c, 0x0034322d, 0x0039342f, 0x003a3430,
- 0x003b332f, 0x003d322f, 0x003d312d, 0x00392c2b, 0x00382927, 0x00362422, 0x00392523, 0x00352325, 0x002f2427, 0x002a2229, 0x00242128, 0x00262227, 0x00271f20, 0x002d201e, 0x0025150e, 0x003b2a20,
- 0x00946f60, 0x009c7364, 0x00855a47, 0x008d6248, 0x00aa7f61, 0x00be9170, 0x00c69975, 0x00cc9c7a, 0x00cd9f79, 0x00cc9d7a, 0x00c99876, 0x00c89872, 0x00c5936d, 0x00c08d67, 0x00bc8762, 0x00b7805a,
- 0x00b37a57, 0x00b07652, 0x00ac724d, 0x00a86e4a, 0x00a06541, 0x009a653b, 0x00906136, 0x00895534, 0x00844d38, 0x007e4b34, 0x006a3d23, 0x004e280a, 0x003b2106, 0x00311f0d, 0x00190e05, 0x000a0304,
- 0x00090608, 0x0005080a, 0x00010a08, 0x00000f0a, 0x0006100e, 0x00141716, 0x00292627, 0x002d2627, 0x00161713, 0x000c120b, 0x000c100c, 0x000b0b0d, 0x000a090d, 0x000a0a0d, 0x000a090c, 0x0009090b,
- 0x00070709, 0x0009080b, 0x000b090c, 0x000c0a0e, 0x000b0a0d, 0x000b0a0c, 0x000a090b, 0x000b0a0b, 0x000a0a0a, 0x000c0c0c, 0x000b0b0b, 0x00050505, 0x00242424, 0x00919191, 0x00ffffff, 0x00ffffff,
- 0x00dbd0c8, 0x008c7867, 0x00775943, 0x00684526, 0x00634127, 0x005a3f2b, 0x004c392c, 0x003f352c, 0x003e342c, 0x003f352c, 0x0044372b, 0x00453a28, 0x00524234, 0x00584d40, 0x00675c52, 0x00746960,
- 0x00796e6c, 0x00746d69, 0x006a6363, 0x0063605f, 0x00575254, 0x004c4b48, 0x0041403b, 0x00383734, 0x0030302d, 0x00545653, 0x00babbbb, 0x00cfd1d3, 0x00ccd1d5, 0x00d3d9de, 0x00dae0e7, 0x00e1eaf1,
- 0x00f2e7fc, 0x00e4e6f3, 0x00dde1ec, 0x00d6e0e4, 0x00dbdce8, 0x00e2daf1, 0x00ebdbf5, 0x00ecdffd, 0x00ecf0fb, 0x00e4fafa, 0x00e6f5fb, 0x00eaedf9, 0x00e8e7f4, 0x00dbddea, 0x00d3d2df, 0x00cbccd9,
- 0x00c9c7d9, 0x00d0d0e1, 0x00e2e0f0, 0x00e8e8f7, 0x00edecfe, 0x00dbe6f6, 0x00c5d2e4, 0x00c5d0e5, 0x00d0d2ed, 0x00d7d9ea, 0x00e9e9f9, 0x00e0e2eb, 0x00d0d3e7, 0x009397bc, 0x0031346e, 0x0041448b,
- 0x00aeb0c8, 0x00d3d7ee, 0x00d8dbf4, 0x00d6d7ef, 0x00d4cfde, 0x00d3ccdc, 0x00d0cfe3, 0x00c5cceb, 0x006b85c2, 0x002b519e, 0x002452a3, 0x00114395, 0x005e7cb9, 0x00bfcff7, 0x00d7dcf5, 0x00cbcbda,
- 0x00cac8d5, 0x00ccced5, 0x00696972, 0x000d0d12, 0x00100b0e, 0x001c1410, 0x00281c17, 0x00362a20, 0x00433528, 0x004c3c2e, 0x005c4633, 0x00674c34, 0x00754c35, 0x00794c31, 0x00814e31, 0x00865134,
- 0x00874830, 0x00844429, 0x007a3b1f, 0x00753b1f, 0x00582f24, 0x003b231f, 0x00251b1f, 0x00161621, 0x000e131b, 0x00070c0b, 0x00010604, 0x0004090a, 0x00131410, 0x00242016, 0x00362d1f, 0x00423725,
- 0x004b412d, 0x0047402d, 0x00353021, 0x00222416, 0x00131a10, 0x00686966, 0x00fefefc, 0x00fdfefb, 0x00fffefb, 0x00fbfdfa, 0x00fbfbfe, 0x00b5bdbe, 0x00202c3e, 0x00162840, 0x00425773, 0x005a7396,
- 0x0091633b, 0x00946138, 0x009f683e, 0x00915226, 0x0086501e, 0x00885f2a, 0x00a3814c, 0x00b99e67, 0x00c8a979, 0x00be9a6e, 0x00a17e54, 0x008c7244, 0x00917043, 0x00a17f4b, 0x00be9966, 0x00cea971,
- 0x00d6ac77, 0x00d5ac74, 0x00d2a670, 0x00c9a26c, 0x00c29b64, 0x00c0965d, 0x00bd8d55, 0x00ba8d55, 0x00c09760, 0x00c59e67, 0x00c8a26e, 0x00c79f6f, 0x00c09468, 0x00ba8b62, 0x00c08f6a, 0x00c2926c,
- 0x00c18664, 0x00ba8760, 0x00d2a87d, 0x00edcd9f, 0x00e9cfa5, 0x00af997b, 0x00302013, 0x000d0406, 0x00071528, 0x00294864, 0x00558cb3, 0x004395d3, 0x004490c6, 0x004b8cbe, 0x005187ab, 0x004e7b92,
- 0x00606d79, 0x00817f80, 0x008e7d74, 0x007d6055, 0x00744b35, 0x00554843, 0x00363739, 0x00252729, 0x00212228, 0x001f2326, 0x00232529, 0x00252527, 0x00191918, 0x0012110f, 0x0024221e, 0x00393430,
- 0x004a525a, 0x004e5965, 0x004b5d70, 0x00435d77, 0x0044698c, 0x004b749c, 0x004f7aa4, 0x004f7aa5, 0x00567eac, 0x00597faa, 0x005481a9, 0x004a86a4, 0x004c88a8, 0x004c89aa, 0x004d87ad, 0x004d83a7,
- 0x0051739b, 0x004e678a, 0x00465273, 0x0041465b, 0x003b384e, 0x0038343a, 0x00393738, 0x003b3b3d, 0x00454047, 0x00423f45, 0x003d3b43, 0x003e3c42, 0x00444244, 0x004b4a49, 0x00575954, 0x0061655e,
- 0x0076736a, 0x00a1a29a, 0x00f2f3ef, 0x00fefffe, 0x00fdfefe, 0x00fdfefe, 0x00fbfcfb, 0x00d4d3d1, 0x004f4742, 0x001b120f, 0x00251813, 0x002d1e17, 0x0036251d, 0x0033251d, 0x0036251c, 0x0034221a,
- 0x0035231c, 0x0033241c, 0x0035241c, 0x0035231c, 0x0035241f, 0x00312620, 0x00312620, 0x0032251d, 0x003a251a, 0x00372418, 0x003a2518, 0x00362417, 0x002f2219, 0x0036322a, 0x0055524e, 0x005c605d,
- 0x00676263, 0x006c6a6a, 0x00949591, 0x00aeb0a4, 0x00878266, 0x00665a36, 0x006a5c34, 0x006c5c35, 0x0067614c, 0x005e6257, 0x00515c56, 0x00495655, 0x003e4c58, 0x0037455d, 0x00303f61, 0x00283966,
- 0x0026346e, 0x0024316d, 0x00212e69, 0x001d2a62, 0x001c275d, 0x00232452, 0x0028244c, 0x0027244e, 0x001c2650, 0x002d477a, 0x00537cbe, 0x003971c0, 0x001357ba, 0x000a4eb2, 0x001754bc, 0x002158bf,
- 0x001a53d1, 0x001f58cb, 0x002a60cc, 0x003068c6, 0x003266c2, 0x002b62c2, 0x00245ebe, 0x00225ec1, 0x00215ebd, 0x002060b3, 0x00225eb7, 0x001e53b6, 0x00124baa, 0x00164bae, 0x001143a8, 0x00284fb0,
- 0x0099afe0, 0x00e6f4ff, 0x00bec9d4, 0x00565d70, 0x00030551, 0x00061365, 0x00010c5b, 0x00202661, 0x00aba7c6, 0x00f1f3f9, 0x00fcfeff, 0x00fcfefa, 0x00fefefd, 0x00fdfbf8, 0x00fef2f3, 0x00f9e2e0,
- 0x00f5ebe8, 0x00fbeeeb, 0x00fae4e0, 0x00ddc0ba, 0x00c49c91, 0x00d5a89d, 0x00cca092, 0x00ad8171, 0x00d5aca0, 0x00fbd5cb, 0x00fed4c3, 0x00e9b598, 0x00dca291, 0x00e6b3a8, 0x00e6b6b4, 0x00f1cfd3,
- 0x00e8d9e3, 0x00efe6f3, 0x00e6ddea, 0x00e1d3e1, 0x00fbe4f5, 0x00c9afb1, 0x00462822, 0x002f100b, 0x003b1816, 0x0034100c, 0x0045241e, 0x0068463d, 0x0094796c, 0x009c8174, 0x00937e6d, 0x008e7a69,
- 0x008a7773, 0x00988680, 0x00ac9d99, 0x00b6aca5, 0x00797f70, 0x0048513c, 0x0052573a, 0x00696342, 0x00865f3d, 0x00884f2a, 0x0092421b, 0x00b04012, 0x00b7471a, 0x00bc4a1a, 0x00c24e1f, 0x00c6561f,
- 0x00cb5b25, 0x00ce6629, 0x00d87536, 0x00dd7f3a, 0x00e98c48, 0x00eb8f52, 0x00df895c, 0x009a5a43, 0x003f2338, 0x00292043, 0x00212254, 0x00191d55, 0x001e1e56, 0x00242558, 0x00242855, 0x001f234c,
- 0x0022265b, 0x00222559, 0x0022265a, 0x0023285c, 0x00262b60, 0x00252c61, 0x00232c61, 0x00242e62, 0x00242e67, 0x00252f68, 0x00282f6b, 0x00292e6d, 0x002b3573, 0x002f3a78, 0x00333f7f, 0x00364385,
- 0x004a5d9f, 0x005a70b4, 0x005f76bc, 0x00627dc1, 0x006a86cc, 0x006b8ac9, 0x007792cc, 0x00728abe, 0x00a2abd2, 0x00cfd3ed, 0x00ccc8da, 0x00bcb5c0, 0x00b4abb1, 0x00c5bbc3, 0x00d2c9d3, 0x00c8bfca,
- 0x00bfb3c1, 0x00d2c9d4, 0x00d5ced4, 0x00d8d5d5, 0x00efeeea, 0x00f3f5f0, 0x00eff1f1, 0x00eef1f4, 0x00f1f3fb, 0x00ced3e1, 0x005f6786, 0x0025346b, 0x002c3d79, 0x00303f78, 0x002f3f75, 0x002c3d70,
- 0x00303a64, 0x00363b5a, 0x00444157, 0x004e4451, 0x0059484b, 0x00655046, 0x006a5241, 0x006b513f, 0x00694e3f, 0x00654a3b, 0x005f4235, 0x005b3d30, 0x0057382a, 0x0059382b, 0x00573629, 0x00543426,
- 0x005a2e26, 0x00512b23, 0x004f302b, 0x005c4543, 0x005b4c4f, 0x00382f35, 0x00150e13, 0x00050204, 0x000a0401, 0x00100700, 0x001d0e07, 0x00231705, 0x00352114, 0x003f291e, 0x003a221b, 0x002a130c,
- 0x00140503, 0x000c0200, 0x00080302, 0x00040501, 0x00020a05, 0x00111719, 0x0023242e, 0x00424753, 0x004e515e, 0x003d3f4e, 0x00444755, 0x003b3c48, 0x00242027, 0x00211a1d, 0x00302828, 0x00453938,
- 0x0045433e, 0x00504f48, 0x00625f59, 0x006c6a64, 0x007f7f7a, 0x00888a87, 0x009e9f9e, 0x00a5a7a5, 0x00b2b4b5, 0x00bbbebd, 0x00b1b6b6, 0x007e8283, 0x00141514, 0x00050503, 0x0015120f, 0x00160f0b,
- 0x00271c18, 0x00302a26, 0x008f8888, 0x00eeeded, 0x00fffeff, 0x00fefdfd, 0x00fcfefd, 0x00fcfefd, 0x00c7c6c9, 0x005e5c5b, 0x00332f2e, 0x00433a36, 0x005d4b41, 0x00685242, 0x00765e4a, 0x0080674f,
- 0x008a6c51, 0x0084674e, 0x00765c46, 0x0064503a, 0x00544538, 0x0049403a, 0x003e3a3e, 0x00373344, 0x002f314e, 0x002b2f51, 0x00222e52, 0x00172c53, 0x00182d53, 0x00192d52, 0x001b2f52, 0x001d3051,
- 0x00223155, 0x00213352, 0x00253551, 0x00273651, 0x0027364f, 0x00253652, 0x00273750, 0x0028394a, 0x002e303e, 0x002c2a2f, 0x002a2525, 0x002b231f, 0x0027221c, 0x0026211d, 0x0022211c, 0x00373833,
- 0x00726869, 0x007b6d5f, 0x00826f4f, 0x00927548, 0x00916936, 0x00885e31, 0x007e532c, 0x00774e2e, 0x00714d2d, 0x005b411a, 0x00472d08, 0x00402208, 0x00351f0a, 0x00281a0b, 0x001f170f, 0x001d1a19,
- 0x00191920, 0x000a0b14, 0x000a0a15, 0x00181920, 0x00362f3a, 0x006c2e27, 0x00a8492d, 0x00d0683d, 0x00c65c26, 0x00b66b40, 0x00f5cab5, 0x00e1e1e4, 0x00acccea, 0x00809cb9, 0x0066788f, 0x006e7681,
- 0x006d717d, 0x00696973, 0x00635d66, 0x005b5056, 0x00544142, 0x004b3735, 0x004e3936, 0x0057433e, 0x00654f4c, 0x0062544e, 0x0060504d, 0x005b4847, 0x00544142, 0x004e3d3e, 0x00513d3f, 0x004f3e3d,
- 0x00533e44, 0x0059444a, 0x00675259, 0x006e5861, 0x00745e66, 0x00705f65, 0x00716568, 0x0074696a, 0x00796c6e, 0x00786e6e, 0x00756e6d, 0x00716e6f, 0x006c707b, 0x006a7283, 0x00636e85, 0x005b6981,
- 0x004b6786, 0x00456483, 0x00416282, 0x003e6082, 0x00406384, 0x00436280, 0x00516a84, 0x005e7486, 0x006e7884, 0x00717580, 0x00716f74, 0x006d6a65, 0x0067635e, 0x00625d5c, 0x00585654, 0x004d4d4f,
- 0x003d4456, 0x0034475e, 0x002f4a6d, 0x002d5079, 0x002e5688, 0x002e537e, 0x005e779e, 0x00b1c3dc, 0x00fdfcff, 0x00fdfbf7, 0x00fffef9, 0x00fdfdfc, 0x00e9edf1, 0x0085898f, 0x00000108, 0x0007090c,
- 0x000a091d, 0x00000716, 0x0015152e, 0x002f1739, 0x003c133b, 0x0027223b, 0x00414e5b, 0x0066717a, 0x00bba8b5, 0x00b3adae, 0x00b4b5b3, 0x00c1c0be, 0x00bdbaba, 0x00c3c1be, 0x00d8d6d5, 0x00d7d4d1,
- 0x00dad8d8, 0x00e3e1df, 0x00e8e6e4, 0x00ecebe7, 0x00e1e0df, 0x00d6d9df, 0x00dbdee6, 0x00e2e1e0, 0x00f2e8e5, 0x00f2ebe9, 0x00e6e3e4, 0x00e0e5ed, 0x00e4eff9, 0x00e0e6ee, 0x00e0e1e3, 0x00e2dcd9,
- 0x00c7bfb9, 0x00b7ada3, 0x00a2968b, 0x00b4a694, 0x00c2b39a, 0x009a896f, 0x009b8a71, 0x00a3947c, 0x00c4b4a3, 0x00d3c6b4, 0x00b0a7a4, 0x00616175, 0x00282b3d, 0x002b3242, 0x00464f61, 0x00636f7d,
- 0x0092a0b2, 0x00b2c5d3, 0x00d9edfd, 0x00d3edf9, 0x00bedbe9, 0x0093beeb, 0x006192c5, 0x00406c9a, 0x005d7e9d, 0x009fb9ce, 0x00d8e6f2, 0x00e9f0f1, 0x00fefefd, 0x00fffcfb, 0x00fcf7f6, 0x00fffafb,
- 0x00fdfbfe, 0x00a1a1a1, 0x00070707, 0x00100f10, 0x00212122, 0x00262728, 0x002a2a2b, 0x002b2d2b, 0x002e2d2e, 0x002f2f30, 0x002e302e, 0x002e302b, 0x0032322d, 0x0034322f, 0x003a3532, 0x003c3633,
- 0x003d3432, 0x003e332f, 0x003b2e2d, 0x003a2b2a, 0x00382728, 0x00362321, 0x00322221, 0x002c2021, 0x00251f23, 0x001e1d23, 0x001e1c25, 0x00201921, 0x00211519, 0x00241514, 0x001f0c07, 0x00321e15,
- 0x00825645, 0x00a47966, 0x009c6e59, 0x00a07458, 0x00a87b5a, 0x00b58a63, 0x00c0926a, 0x00c3966e, 0x00c49670, 0x00c2936c, 0x00c3906b, 0x00c58f6b, 0x00c48d68, 0x00c38d67, 0x00bd8661, 0x00b57c59,
- 0x00ad734f, 0x00a76c4b, 0x00a26744, 0x009f633e, 0x00965937, 0x008d5932, 0x0083552e, 0x007f4d2f, 0x007e4934, 0x0077452e, 0x006c3e25, 0x00573214, 0x004b3318, 0x003e2f1d, 0x001e160d, 0x000b0607,
- 0x00060307, 0x0004080b, 0x00050c0b, 0x00000b05, 0x00020a07, 0x000e0f0e, 0x002a2527, 0x0031292c, 0x00181618, 0x0009130e, 0x0008110e, 0x000b0b0e, 0x000b0a0d, 0x000a0a0d, 0x000a090d, 0x0008090b,
- 0x000c090d, 0x000b090d, 0x000c0b0f, 0x000c0b0e, 0x000c0b0d, 0x000b0a0b, 0x000d0d0d, 0x000c0c0c, 0x000d0d0d, 0x000c0c0c, 0x000d0d0d, 0x00040404, 0x002c2c2c, 0x009a9a9a, 0x00fefefe, 0x00fdfdfd,
- 0x00d7d1ce, 0x0088786c, 0x00775b46, 0x006b492b, 0x00694223, 0x005b3d26, 0x004d3523, 0x00413025, 0x003d312b, 0x0044372f, 0x004a3d33, 0x004e3e2f, 0x00534738, 0x005e5348, 0x006f6861, 0x0077706b,
- 0x007a7476, 0x00787578, 0x006e6f74, 0x006a6b70, 0x005b5e67, 0x004d4f50, 0x0040443f, 0x003b3c39, 0x0031312e, 0x00474a48, 0x00a9aaab, 0x00d4d5d8, 0x00dee2e5, 0x00e6eaef, 0x00e2e5ed, 0x00dee4eb,
- 0x00eae4f1, 0x00eaf4fb, 0x00e4f8fe, 0x00daf7fb, 0x00e0f1f9, 0x00e9e5fa, 0x00f5e3f8, 0x00f9e1f4, 0x00eeebf5, 0x00e4f4f8, 0x00e3f4fb, 0x00efeffa, 0x00f0f0fa, 0x00eef0fb, 0x00e4e5f1, 0x00e0ddeb,
- 0x00d4d1e0, 0x00caccdc, 0x00c5c4d7, 0x00cbccdf, 0x00dddcf1, 0x00e1eaf3, 0x00dee7f0, 0x00d7e0f2, 0x00cad0eb, 0x00c3c8db, 0x00cccfe0, 0x00d7dae3, 0x00e7e5ee, 0x00b9b1cc, 0x00544574, 0x00493473,
- 0x00a0a5ba, 0x00dfe4f9, 0x00daddf5, 0x00d5d6eb, 0x00dad4e7, 0x00e4dcec, 0x00ece5f9, 0x00dfdef9, 0x006884bf, 0x00193d84, 0x00093785, 0x000d4191, 0x006d8dc9, 0x00c3d6fc, 0x00ced4ed, 0x00c6c9d9,
- 0x00ccced8, 0x00c7c8cf, 0x0058595e, 0x000e0d12, 0x00110a09, 0x001f1513, 0x002e211e, 0x003b2d28, 0x0048382e, 0x00504032, 0x005c4937, 0x00664d38, 0x006e4f37, 0x00734d33, 0x007c5035, 0x00835638,
- 0x00814d36, 0x00814a33, 0x007a432a, 0x0075422b, 0x005b372a, 0x00412c29, 0x002b2425, 0x001a1e25, 0x0010171a, 0x000d120c, 0x00060c06, 0x000b100f, 0x0022201d, 0x00332c22, 0x0044392a, 0x0050412c,
- 0x00514530, 0x004b422f, 0x00393323, 0x00252618, 0x00161e13, 0x006a6c67, 0x00fefffc, 0x00fcfefa, 0x00fcfdf8, 0x00fafffc, 0x00fbffff, 0x00b6bfc3, 0x00232c3d, 0x0017253e, 0x00374965, 0x00485c7d,
- 0x008c5e34, 0x0098673f, 0x008d5b32, 0x007d471d, 0x008a5b2e, 0x00926b38, 0x00b08c55, 0x00c7a568, 0x00d3ab6d, 0x00d7a66a, 0x00cb9761, 0x00b38b5b, 0x00b28956, 0x00b88c58, 0x00c89962, 0x00cda169,
- 0x00d4a66f, 0x00d4a571, 0x00cfa06d, 0x00c89b6a, 0x00bd9564, 0x00c0935f, 0x00bc8c58, 0x00ba8b56, 0x00bf935f, 0x00c49a66, 0x00c89f6f, 0x00c59b6e, 0x00af8258, 0x00ab7b53, 0x00bf8d66, 0x00c4926a,
- 0x00cd8a6e, 0x00bd8361, 0x00c89870, 0x00ddba8c, 0x00e4c89e, 0x00b4997a, 0x0034200f, 0x00120403, 0x00040a1a, 0x00173349, 0x00477594, 0x00528fba, 0x0067a0c3, 0x007ba9c6, 0x008bb0c2, 0x0087a4ae,
- 0x00878b88, 0x00998e80, 0x009c7e6b, 0x008e634b, 0x007d4629, 0x00644733, 0x003e2f24, 0x00251c0f, 0x001d1912, 0x0021221d, 0x00222321, 0x001f1e1b, 0x0021180f, 0x002c1e0e, 0x004e3c29, 0x006c543d,
- 0x007a6550, 0x00715f50, 0x005d524b, 0x004c4b4c, 0x003d4957, 0x003f5366, 0x0040586f, 0x00425c76, 0x0050647f, 0x00586982, 0x00577088, 0x004d718a, 0x004a6c88, 0x00436883, 0x003d637f, 0x00385b79,
- 0x0037506a, 0x0035465a, 0x002e3442, 0x00302b32, 0x00372a2d, 0x0039302f, 0x003b3735, 0x003b3b3c, 0x003e3d44, 0x003b3d45, 0x00373b44, 0x003c4048, 0x00424449, 0x004c4e4d, 0x005b5c56, 0x0065655b,
- 0x007a786a, 0x00a3a59a, 0x00f2f3ef, 0x00fefefe, 0x00fcfeff, 0x00fdfeff, 0x00fdfdfc, 0x00d4d2d1, 0x004c443e, 0x00130906, 0x001c0d05, 0x002a1405, 0x002c1607, 0x002a1304, 0x002b1505, 0x00281003,
- 0x002e1406, 0x002c1507, 0x002d1506, 0x002c1505, 0x002c1407, 0x00281507, 0x00291505, 0x002b1503, 0x002f1400, 0x00301300, 0x00321602, 0x00311504, 0x00231307, 0x002e251e, 0x005c5855, 0x006b6c6d,
- 0x00736e70, 0x00807f80, 0x00a4a6a1, 0x00babdae, 0x008c866a, 0x00675b36, 0x006a5c34, 0x006c5f3a, 0x0066614d, 0x005f6259, 0x00515c5a, 0x0049555a, 0x003e4b5b, 0x00354560, 0x002c3e65, 0x0027386b,
- 0x00213272, 0x00212f71, 0x001d2a6d, 0x001a2766, 0x00192460, 0x001e2254, 0x00232351, 0x001f214f, 0x00102453, 0x00274a85, 0x004779c1, 0x002664bb, 0x00084eb2, 0x00094ab0, 0x001a52b8, 0x002452b8,
- 0x001655c5, 0x00225bc2, 0x00265bc0, 0x002052b3, 0x00164b9f, 0x00154da0, 0x001854a7, 0x002058af, 0x002056b1, 0x001e4dac, 0x001948a6, 0x0012439f, 0x00084195, 0x000a42a0, 0x000d3fa7, 0x00173cb1,
- 0x008295d0, 0x00dfebfd, 0x00d0dad8, 0x00687074, 0x0001053c, 0x00020d55, 0x00020c52, 0x00161b53, 0x00888ca4, 0x00ebeef4, 0x00f9fefd, 0x00fcfffd, 0x00fffdfd, 0x00fef7f3, 0x00f9dcd9, 0x00d7aea6,
- 0x00c6b6b3, 0x00ead4d1, 0x00f2d2cd, 0x00cca49c, 0x00ac776b, 0x00d09589, 0x00e0a394, 0x00c0806e, 0x00be8572, 0x00d59a87, 0x00da9f87, 0x00d59675, 0x00e2a78e, 0x00f3bbad, 0x00ecbdbb, 0x00f1cfd4,
- 0x00ddd1dd, 0x00e6e5ef, 0x00e6e4ef, 0x00dad4e0, 0x00f4e2f1, 0x00dbc7c9, 0x00614543, 0x002b1110, 0x002b0c0b, 0x00250905, 0x004a2f2b, 0x007f675f, 0x00968579, 0x007b6e62, 0x00696253, 0x00737062,
- 0x00828374, 0x00727165, 0x00787a6d, 0x0087897b, 0x00515b47, 0x00353920, 0x00484525, 0x00735f38, 0x00a0653a, 0x00a15126, 0x00a34215, 0x00af4412, 0x00b74917, 0x00b84b15, 0x00c2511b, 0x00c5541f,
- 0x00d15e26, 0x00d16325, 0x00d46c2a, 0x00d26e29, 0x00d5742a, 0x00e06f23, 0x00e67631, 0x00c8733b, 0x00673d37, 0x00311b39, 0x002b2154, 0x00201f61, 0x0020254a, 0x0021244a, 0x0022254a, 0x001f2351,
- 0x0025265c, 0x0024255b, 0x0026275d, 0x00272960, 0x00292c63, 0x00292f65, 0x00272f65, 0x00273065, 0x00253067, 0x00262e66, 0x0029306b, 0x002a306e, 0x002c3473, 0x002d3677, 0x00313e80, 0x00354086,
- 0x0044589c, 0x005067ae, 0x00576fba, 0x005b77c0, 0x006582cc, 0x006383cb, 0x006e8ccf, 0x00708cc2, 0x00a0aad3, 0x00cacde8, 0x00c7c2d5, 0x00c1b8c4, 0x00b7adb3, 0x00c7bdc4, 0x00d7ced8, 0x00d5ccd9,
- 0x00c9bfce, 0x00d1c6d3, 0x00dcd3da, 0x00e9e5e5, 0x00f7f6f2, 0x00fafdf7, 0x00f7fdf9, 0x00f8fdfc, 0x00fafbff, 0x00ced4e2, 0x00596283, 0x002c3a7c, 0x00354788, 0x00374c8a, 0x003c518d, 0x00394e85,
- 0x00384470, 0x003f4466, 0x004a465e, 0x00564a59, 0x00645056, 0x0070564b, 0x00755743, 0x00765743, 0x00755340, 0x006f4e3a, 0x006d4937, 0x00684232, 0x0066402e, 0x0068402f, 0x006b4233, 0x0068412f,
- 0x00723c2e, 0x00734335, 0x00674136, 0x00745452, 0x00594647, 0x00211315, 0x000c0203, 0x00130a09, 0x00241711, 0x002d1c12, 0x003d2518, 0x004a2a14, 0x00583120, 0x006e4737, 0x0082584d, 0x0072473f,
- 0x00482821, 0x0029120b, 0x00100400, 0x00070702, 0x00000401, 0x0006060a, 0x00110c12, 0x002c292f, 0x0046454b, 0x00434249, 0x0048444d, 0x00494149, 0x0031232a, 0x00362627, 0x00392622, 0x00331d16,
- 0x001c1a13, 0x001b1911, 0x00100b06, 0x00070300, 0x00030300, 0x00020402, 0x00030403, 0x00010301, 0x00080c09, 0x00131715, 0x000c0f10, 0x00010305, 0x00040404, 0x00040303, 0x000b0906, 0x0016110c,
- 0x00241c18, 0x002c2824, 0x00969090, 0x00f0f0f0, 0x00fdfcfb, 0x00fefefe, 0x00fcfefe, 0x00fefffe, 0x00b7b8b9, 0x004c4a47, 0x00312e2b, 0x003d3731, 0x0056453a, 0x00644f3e, 0x00735a47, 0x0081654d,
- 0x008c6c4d, 0x00886a4c, 0x00795e42, 0x00675137, 0x00554336, 0x004b3e39, 0x003e3639, 0x00352e3e, 0x002f2d48, 0x002b2b4c, 0x00232a4d, 0x001b2b51, 0x00182a51, 0x00172b50, 0x00172a4d, 0x00162c4d,
- 0x00212e54, 0x00243150, 0x00263450, 0x0028364f, 0x002c364c, 0x002b3755, 0x002b3958, 0x002e3952, 0x00313344, 0x00332d38, 0x0034282e, 0x00332626, 0x002c2220, 0x002a2323, 0x00292627, 0x0049464a,
- 0x00746d86, 0x00877c7e, 0x007a6a58, 0x00846c44, 0x00956f40, 0x00936941, 0x00946741, 0x00936646, 0x0088633e, 0x00745423, 0x00614210, 0x00673c1d, 0x005d3d23, 0x00553d2d, 0x00473832, 0x003e3439,
- 0x001f1f2b, 0x00111120, 0x00282838, 0x00403f4c, 0x004d4859, 0x00813730, 0x00b74729, 0x00db6133, 0x00cf581c, 0x00be6838, 0x00f0bfa5, 0x00e0dee0, 0x00a4cae8, 0x0087a5c3, 0x00697c96, 0x006b727e,
- 0x00666c79, 0x0062646e, 0x005e5b62, 0x00574d50, 0x00544141, 0x004e3b37, 0x00574240, 0x00624e4a, 0x006b5c55, 0x006a6059, 0x00675b56, 0x00655050, 0x005b4649, 0x00553f43, 0x004d383a, 0x00483334,
- 0x00483038, 0x004d343b, 0x00553d44, 0x005a424a, 0x005f464f, 0x005e4a51, 0x005e4f54, 0x00635458, 0x006a5d5d, 0x006b6160, 0x006c6463, 0x006b6768, 0x00666874, 0x00666b7e, 0x00616982, 0x005a6681,
- 0x0049627d, 0x0046607c, 0x00415f7b, 0x003f5f7c, 0x00415f7b, 0x0049627c, 0x0056697f, 0x0062707f, 0x0070737b, 0x00737277, 0x00756e6c, 0x0072695e, 0x006c6358, 0x00665d54, 0x005a534c, 0x00504a48,
- 0x003b434c, 0x00334559, 0x002e4668, 0x002a4c76, 0x00285487, 0x00295079, 0x00677fa5, 0x00c1cfe7, 0x00fffdff, 0x00fffbf6, 0x00fefbf6, 0x00fdfbfa, 0x00e0e4e9, 0x00767a81, 0x00000208, 0x0007090e,
- 0x000d071b, 0x00030d1f, 0x000b1e39, 0x001a1e47, 0x00161345, 0x0006153d, 0x000b1f3f, 0x0044445f, 0x00b99ba9, 0x00b1ada6, 0x00b2b6ac, 0x00bebbbb, 0x00ababa8, 0x00b2b2b0, 0x00d2cdcc, 0x00d5d3ce,
- 0x00deded9, 0x00e5e4e2, 0x00edeae9, 0x00e9e6e6, 0x00ddddd9, 0x00d8dce4, 0x00dfe3ed, 0x00e6e4e8, 0x00f2e8e5, 0x00f0e7e6, 0x00e6e2e3, 0x00dfe2e6, 0x00e4edf2, 0x00e3e8eb, 0x00e7e4e4, 0x00f3eae7,
- 0x00e3e7f1, 0x00d4d6da, 0x00b3b2b3, 0x00aaa9a2, 0x00cac6ba, 0x00c1baae, 0x00b3ab9f, 0x00a49d92, 0x00958f86, 0x00807d79, 0x005f5f63, 0x00424959, 0x00555d6a, 0x007b8291, 0x00a8aeb9, 0x00c4cbd5,
- 0x00dadee7, 0x00e3eaef, 0x00ebeff6, 0x00e6ecf5, 0x00e3eaf1, 0x00d1e9f9, 0x00bbd6ed, 0x00a0b9d6, 0x00a8b7cf, 0x00ced8e8, 0x00eff4fd, 0x00f8faff, 0x00fbfcfd, 0x00fefffb, 0x00fafaf5, 0x00fefef9,
- 0x00fcfbfc, 0x00a0a1a0, 0x00080708, 0x00110f11, 0x00201f20, 0x00292728, 0x002f2c2e, 0x00302f2e, 0x00303131, 0x002f3030, 0x0031312e, 0x0031312a, 0x0034342e, 0x0033322e, 0x00373430, 0x0038342e,
- 0x003a3330, 0x003a3030, 0x00392c2e, 0x00362929, 0x00322227, 0x00342424, 0x002d2121, 0x00282023, 0x00251f25, 0x00242129, 0x0024222d, 0x002b242d, 0x002f2026, 0x00382423, 0x003d261f, 0x0054382f,
- 0x008f614d, 0x00ab7d68, 0x00a97d63, 0x00b48667, 0x00b78d68, 0x00b48860, 0x00b78b61, 0x00bf9268, 0x00be8f65, 0x00b78a5e, 0x00b8885f, 0x00bd8862, 0x00be8762, 0x00be8864, 0x00b9815e, 0x00b27854,
- 0x00a76a4b, 0x00a36646, 0x009a5d3d, 0x00945637, 0x008d4f2f, 0x00824d27, 0x00774925, 0x0077462c, 0x0077422d, 0x00723e2b, 0x006b3a24, 0x005a3115, 0x004c3218, 0x003d2b1c, 0x001b120a, 0x00080304,
- 0x00040101, 0x0006090a, 0x00070c0a, 0x00020c06, 0x00040a07, 0x00131212, 0x002b2326, 0x002b2224, 0x00131215, 0x00051110, 0x00051010, 0x000a0a0d, 0x000b090d, 0x00090a0d, 0x000a090d, 0x000a090c,
- 0x000b080a, 0x000d0a0e, 0x000d0c10, 0x000e0e10, 0x000d0c0f, 0x000d0d0e, 0x000d0e0d, 0x000e0f0f, 0x000d0d0d, 0x000e0e0e, 0x000c0c0c, 0x00040404, 0x00343434, 0x00a4a4a4, 0x00fcfcfc, 0x00fdfdfd,
- 0x00d6d2d2, 0x007c7368, 0x006f5944, 0x006f4a2c, 0x00674220, 0x005b3a20, 0x004e3620, 0x00413122, 0x0040322b, 0x00473830, 0x004e3e36, 0x00544438, 0x005e5045, 0x006a5f55, 0x0078716b, 0x007d7975,
- 0x00818086, 0x007f818a, 0x00787e88, 0x00717884, 0x00636a79, 0x00596163, 0x0049524b, 0x003b413a, 0x00373a38, 0x00383b39, 0x00737373, 0x00b5b3b6, 0x00d4d3d9, 0x00e2e2eb, 0x00d6d6e1, 0x00d1d4de,
- 0x00d6dfcd, 0x00dde1df, 0x00dbd8e7, 0x00e2dbf3, 0x00e9dff4, 0x00eae0ee, 0x00ede8eb, 0x00f2ede7, 0x00f2eaea, 0x00f4e7ef, 0x00f5eff8, 0x00f0f1fa, 0x00f3f3fe, 0x00f5f4ff, 0x00f2f2ff, 0x00eff0fd,
- 0x00ebecfa, 0x00e4e6f2, 0x00d4d4e5, 0x00c8c8dc, 0x00c7c7da, 0x00d2d3d4, 0x00e1e1e0, 0x00e0e2ed, 0x00dbdff8, 0x00d2d6e8, 0x00c2c4d2, 0x00c1c1bf, 0x00dad0ce, 0x00d3bdcc, 0x00816081, 0x00592f60,
- 0x008889a1, 0x00d5d8f1, 0x00d4d8ef, 0x00d6daee, 0x00e2deec, 0x00ede5f4, 0x00e9e5f6, 0x00c6c7e5, 0x0048639c, 0x000b3074, 0x000f428f, 0x002357a5, 0x006e92d0, 0x00b9cdf9, 0x00c5cde7, 0x00c9c9d8,
- 0x00d6d2de, 0x00b3b6bd, 0x003b3d44, 0x00100f14, 0x00181112, 0x00271b1b, 0x00372627, 0x0041322f, 0x004c3c37, 0x00524439, 0x005c4b3c, 0x00624e3b, 0x00684f38, 0x006c4d35, 0x00755138, 0x007d583d,
- 0x00815441, 0x0080513b, 0x00784b32, 0x00744932, 0x005f3f34, 0x004b3836, 0x00342f30, 0x001f2529, 0x00151d1c, 0x00151b12, 0x00111810, 0x001b201e, 0x00383632, 0x004b443a, 0x005a4f40, 0x0062543f,
- 0x005f4f3a, 0x00534835, 0x003f3929, 0x0027291b, 0x00171f15, 0x006a6e6a, 0x00fdfffd, 0x00fcfdfa, 0x00fbfdfb, 0x00f9fdfc, 0x00fcfefd, 0x00b4bec1, 0x00212c3c, 0x0017253b, 0x002e3e5c, 0x00334364,
- 0x0084532a, 0x009b6a41, 0x008e5d33, 0x007c4a20, 0x00986d3f, 0x00a47f49, 0x00b38f53, 0x00c09b58, 0x00dfa55f, 0x00e7a65c, 0x00da9955, 0x00c69558, 0x00c29154, 0x00c59353, 0x00cd9657, 0x00ce9859,
- 0x00d69c63, 0x00d09b64, 0x00ca9863, 0x00c19260, 0x00b98c5d, 0x00bb895a, 0x00bd8758, 0x00bb8858, 0x00c09163, 0x00c19465, 0x00c19668, 0x00b58b5e, 0x0093663b, 0x009c6c43, 0x00bc8b63, 0x00c08e66,
- 0x00d08874, 0x00bb7e5f, 0x00ba8761, 0x00caa377, 0x00d9b990, 0x00b29576, 0x002f1906, 0x00180a02, 0x000d1421, 0x001a3143, 0x00586b75, 0x00898b7d, 0x009e9d8c, 0x00aaac9a, 0x00b9bcaf, 0x00aeafa3,
- 0x00aeada3, 0x00cac2b9, 0x00c3b6b3, 0x00a29390, 0x00968482, 0x009e846f, 0x00745a41, 0x003f2e14, 0x00221d12, 0x0020231c, 0x001f2522, 0x001b201b, 0x00282214, 0x004c3a22, 0x007a5f40, 0x0095704b,
- 0x00a67039, 0x009c6b3a, 0x008b653a, 0x00775c3b, 0x00594c3b, 0x00474138, 0x00393935, 0x00323434, 0x003e3d3e, 0x00504e4b, 0x00605d62, 0x005e5969, 0x00444556, 0x00303547, 0x00232e41, 0x0023303f,
- 0x00232b37, 0x00252a2b, 0x00272620, 0x002b2316, 0x00352812, 0x00393129, 0x00383537, 0x0039383b, 0x0038373f, 0x00363944, 0x00363c47, 0x003b414b, 0x00464a51, 0x00505253, 0x0060605b, 0x006d6a61,
- 0x007a7b6f, 0x00a2a69c, 0x00f4f4ef, 0x00fffffc, 0x00fefefe, 0x00fdfeff, 0x00fafaf9, 0x00d7d2cf, 0x00554b47, 0x00221711, 0x00332013, 0x00412509, 0x0047270f, 0x00492a0e, 0x004a2b11, 0x0046250c,
- 0x0047280c, 0x0047280d, 0x0048290c, 0x0046290b, 0x0047280e, 0x0045280f, 0x0047280d, 0x0048290c, 0x004d2705, 0x004d2707, 0x004d2909, 0x004a2a0e, 0x003c2815, 0x004d4337, 0x00908b86, 0x00a6a7a7,
- 0x00aba6aa, 0x00b0afb1, 0x00c6c7c3, 0x00cfd2c4, 0x00908c72, 0x00605634, 0x00645832, 0x00695c37, 0x00605d49, 0x005c5f54, 0x00505958, 0x0047535a, 0x003e4b5e, 0x00354563, 0x002d3f6a, 0x00273970,
- 0x001f3074, 0x001d2d71, 0x001a296d, 0x00182467, 0x00141f61, 0x00161b57, 0x00181d54, 0x00141d4f, 0x000f245e, 0x0023498b, 0x00386fbd, 0x001859b1, 0x000246aa, 0x000b47ad, 0x001a4db2, 0x001d46a8,
- 0x001358aa, 0x001957aa, 0x0011459b, 0x00062f86, 0x00002572, 0x00002b73, 0x0004387e, 0x00083b84, 0x000e3092, 0x000e2898, 0x000e2a97, 0x00073187, 0x00023782, 0x00003593, 0x000a38a7, 0x000b2fac,
- 0x005a6dbe, 0x00c2d0e9, 0x00e0e6e1, 0x00959c90, 0x000e0e37, 0x0002053d, 0x00000742, 0x00040934, 0x0062697d, 0x00dfe6eb, 0x00f6fefe, 0x00f7fdfc, 0x00fdfcf2, 0x00fef7ec, 0x00f8d5c8, 0x00c78f7a,
- 0x00ad9797, 0x00e5c8c6, 0x00f1cec8, 0x00d9a79f, 0x00b87368, 0x00d2887b, 0x00ffb4a4, 0x00f2aa97, 0x00d48a71, 0x00bf7a5f, 0x00c17d5e, 0x00db9c76, 0x00fcc5ab, 0x00f2c0b0, 0x00f0c4c0, 0x00f1d5d8,
- 0x00cdced4, 0x00dbe3e8, 0x00e8f1f7, 0x00dadce7, 0x00e7e2ee, 0x00e8dbde, 0x007d6969, 0x002f191a, 0x00351e20, 0x003d2826, 0x005a4643, 0x00695c54, 0x00656156, 0x005e6456, 0x006e7969, 0x007d8c7b,
- 0x00647056, 0x003a462b, 0x004d573c, 0x0072795f, 0x00585a3e, 0x00463f1d, 0x00695128, 0x00a06d3f, 0x00c96132, 0x00c34213, 0x00b93806, 0x00b0450e, 0x00b74910, 0x00bc4a14, 0x00c34e18, 0x00c55318,
- 0x00ce591d, 0x00ce5918, 0x00cf5f17, 0x00d26617, 0x00d86c1a, 0x00ec6711, 0x00f26d12, 0x00e98128, 0x00a36b4b, 0x005b3b4e, 0x00342157, 0x00251e5d, 0x001d233b, 0x001a2234, 0x001a213e, 0x001d1f55,
- 0x00252458, 0x00252559, 0x0027285c, 0x00262a5d, 0x00272b5f, 0x00282d62, 0x00292e64, 0x002b2f67, 0x002a3369, 0x002a3269, 0x002b306b, 0x002c2f6d, 0x0029306f, 0x002a3372, 0x002f3b7b, 0x00334284,
- 0x00415399, 0x004c62a9, 0x005269b4, 0x005772bc, 0x005d7bc5, 0x006082c9, 0x006886cd, 0x007e99d6, 0x00a3afd8, 0x00afb2cf, 0x00b9b4c9, 0x00beb4c2, 0x00bcafb8, 0x00c3b8c3, 0x00d1c8d5, 0x00d2c8d6,
- 0x00d6c7d9, 0x00ccc2ce, 0x00d6ced3, 0x00e8e4e2, 0x00f8f7f1, 0x00fffffa, 0x00fdfefc, 0x00fbfdff, 0x00f6f9fe, 0x00c1c7da, 0x004d567b, 0x002d3a83, 0x0034478b, 0x00354b92, 0x003e5396, 0x003d508d,
- 0x003a4677, 0x0041466b, 0x004b4761, 0x00574a5a, 0x00665057, 0x006e5145, 0x0073523b, 0x0076543c, 0x00775039, 0x00744c35, 0x00724832, 0x006f442e, 0x006e422c, 0x00744631, 0x007a4b37, 0x007b4c38,
- 0x008c4a3a, 0x00854b3e, 0x00805146, 0x00774f4a, 0x00412727, 0x001a0609, 0x001c0a0f, 0x00251014, 0x002e1712, 0x00311c11, 0x00482616, 0x00733a20, 0x00854935, 0x00995b49, 0x00a76859, 0x00985c52,
- 0x0089524c, 0x006b453d, 0x00381c18, 0x00180a04, 0x000f0903, 0x00190a09, 0x002d191a, 0x002b181d, 0x00231318, 0x00302327, 0x004a3b3d, 0x00564142, 0x00472d2b, 0x004b2d27, 0x0049271d, 0x00411d11,
- 0x002a231e, 0x00201c15, 0x0019140e, 0x00110d09, 0x000a0905, 0x00030402, 0x00010202, 0x00000402, 0x00000503, 0x00000200, 0x00030506, 0x00040709, 0x00090b0b, 0x000d0d09, 0x000e0b05, 0x00151008,
- 0x001c1a14, 0x002e2a27, 0x00a29f9e, 0x00f5f4f3, 0x00fdfbfa, 0x00fcfefd, 0x00fbfbfc, 0x00fdfefd, 0x00a7a5aa, 0x00393736, 0x00322d2a, 0x003c322d, 0x00514035, 0x00614a39, 0x00745844, 0x007f604a,
- 0x00896846, 0x00836445, 0x00785b3f, 0x00674e35, 0x00544033, 0x00493a35, 0x003f3537, 0x00352e3b, 0x002b2949, 0x0026264a, 0x00212649, 0x001b294d, 0x0018284c, 0x0015264a, 0x00152648, 0x00142849,
- 0x0018284b, 0x001c2d4a, 0x0024304b, 0x0028324a, 0x002b344a, 0x002b375a, 0x002d3763, 0x002f345b, 0x00352f4b, 0x00392d43, 0x003d2d3e, 0x003a2936, 0x00322330, 0x00312635, 0x00302d39, 0x00575664,
- 0x007676a2, 0x006f6a7f, 0x007c736e, 0x00826f52, 0x00977449, 0x00a27950, 0x00a67b56, 0x00a57a57, 0x009e7846, 0x00937235, 0x008f682f, 0x00925f39, 0x008b6548, 0x00816250, 0x005e4841, 0x00362c2d,
- 0x001e1a2a, 0x00282739, 0x0058586d, 0x00625f76, 0x00524b61, 0x008c3731, 0x00c8492b, 0x00e55a2a, 0x00e1591b, 0x00ca6938, 0x00eab498, 0x00d6d4d7, 0x0096c2e2, 0x0086adcb, 0x006d879c, 0x00626a71,
- 0x005d6371, 0x005a5b66, 0x0055515a, 0x0051484d, 0x004d3d3c, 0x004c3a37, 0x0056433f, 0x0063514b, 0x006c5c58, 0x0069605a, 0x006c5f5b, 0x006b5556, 0x00614b4f, 0x00574045, 0x00472f34, 0x00362125,
- 0x00371d24, 0x003a1e27, 0x003c202a, 0x003f232f, 0x00432533, 0x00412a34, 0x003e2e33, 0x00423235, 0x004b3d3e, 0x00524848, 0x00585253, 0x00585559, 0x00545663, 0x00585c70, 0x00595e79, 0x00565d7b,
- 0x004a6178, 0x00455f77, 0x00435f79, 0x00425f7c, 0x0049637e, 0x0052667f, 0x005e6a80, 0x00666d7c, 0x00736d76, 0x00787071, 0x007b6f6a, 0x00796c60, 0x00746656, 0x006c5d4f, 0x005d5046, 0x0052473f,
- 0x00424249, 0x00364352, 0x002e4762, 0x002a4b73, 0x00244f84, 0x00254673, 0x007084a9, 0x00cedaee, 0x00fefdfc, 0x00fbf9f3, 0x00fdfbf8, 0x00fdfbfb, 0x00d3d7dd, 0x005d6169, 0x00010109, 0x0006070e,
- 0x0013031f, 0x0006102a, 0x00052547, 0x00032656, 0x00011f5d, 0x0002235b, 0x00071c48, 0x003f3b5f, 0x00b995a2, 0x00a7a698, 0x00acb6a4, 0x00bab8b6, 0x00a19e9d, 0x00acaaa8, 0x00d1cccb, 0x00d4d1cb,
- 0x00dfdeda, 0x00e2e2de, 0x00ebe8e6, 0x00e8e3e3, 0x00dcdcdb, 0x00dee4ef, 0x00dfe5f1, 0x00e6e7eb, 0x00f4eae4, 0x00f0e7e3, 0x00e9e3e0, 0x00e3e1e5, 0x00e7e9f1, 0x00e8e6eb, 0x00ebe5e5, 0x00f8edea,
- 0x00e7f4fe, 0x00e6f4fd, 0x00ddeaf5, 0x00b8c2c9, 0x00898e90, 0x00717374, 0x005a5e5e, 0x00565c5d, 0x0054575f, 0x00515860, 0x006b7478, 0x00939c9c, 0x00c8d0ce, 0x00dee1df, 0x00eef1eb, 0x00f1eee9,
- 0x00f5ece7, 0x00f5e7e9, 0x00f2e3e6, 0x00efe0e3, 0x00eee0e6, 0x00eee4e4, 0x00f5eeeb, 0x00f1eaea, 0x00ede4e9, 0x00eee5ed, 0x00eee5ee, 0x00f8f2fb, 0x00fcfefe, 0x00f9fefc, 0x00f8fefa, 0x00f6fffc,
- 0x00fcfcfb, 0x00a2a3a1, 0x0009090a, 0x00121212, 0x00232423, 0x002b2c2b, 0x00303030, 0x00303130, 0x00323331, 0x00323132, 0x0032312f, 0x0032332c, 0x0031332d, 0x0031312e, 0x0034312f, 0x0034302e,
- 0x003e3535, 0x003f3636, 0x003f3337, 0x003d3132, 0x003d2f30, 0x003f3330, 0x0049403f, 0x00585452, 0x006b6a70, 0x0072737c, 0x007f7f8b, 0x00918a97, 0x00978990, 0x00a18a8a, 0x00a88984, 0x00b38e86,
- 0x00c79380, 0x00b4866d, 0x00aa7e61, 0x00b98d6a, 0x00c39b6f, 0x00c69d6f, 0x00c4996d, 0x00c09567, 0x00bc8e62, 0x00b78659, 0x00b8845a, 0x00b9835d, 0x00b67e5b, 0x00b47c58, 0x00ad7450, 0x00a66b49,
- 0x00a06446, 0x00975a3b, 0x008d5031, 0x00874a2c, 0x00804124, 0x00793f21, 0x00723c21, 0x00703823, 0x0073352a, 0x006e3124, 0x00672f1d, 0x005c2b14, 0x0053301c, 0x0041281b, 0x001d0d07, 0x000b0105,
- 0x000b0105, 0x00090708, 0x00080b06, 0x00000a02, 0x00040a06, 0x00121010, 0x0023191f, 0x0021151e, 0x000f0e13, 0x00061013, 0x00070e12, 0x000d0c10, 0x000b0a0e, 0x000a0a0e, 0x000a080d, 0x000a080c,
- 0x000d0b0f, 0x000c0a0e, 0x000c0d0f, 0x000d0f10, 0x000d0d11, 0x000f0f13, 0x00101111, 0x000e0f0f, 0x000e0e0e, 0x000e0e0e, 0x000c0c0c, 0x00050505, 0x00383838, 0x00acacac, 0x00fdfdfd, 0x00fcfcfc,
- 0x00d3cdc1, 0x00766a5a, 0x0064513e, 0x00614b34, 0x005b462c, 0x004d3c27, 0x00473723, 0x00423425, 0x00403124, 0x0047372b, 0x004f3f2e, 0x00594832, 0x00675a47, 0x00756857, 0x0080796d, 0x0084827b,
- 0x008c898c, 0x00888791, 0x007d818b, 0x007a7e8d, 0x006e7386, 0x0062696c, 0x004d5550, 0x003e443d, 0x00393c3b, 0x00393d3a, 0x00717673, 0x00bcc1c0, 0x00cbcfd5, 0x00c1c5d0, 0x00b7bac7, 0x00b8bcc8,
- 0x00bfc5c5, 0x00b8bec4, 0x00b0b3bf, 0x00b3b4c5, 0x00b6b5c5, 0x00b8b8c0, 0x00bbc2c6, 0x00c3c6c8, 0x00cac8d0, 0x00cfc8d8, 0x00cfd1df, 0x00d7d9e6, 0x00dadcea, 0x00e0e3ef, 0x00e8eaf8, 0x00efeffd,
- 0x00eceffa, 0x00eff1fd, 0x00eeeffd, 0x00e7e7f4, 0x00dcdbf0, 0x00d3d2df, 0x00d1cedb, 0x00d5d2e5, 0x00e2def6, 0x00e1ddf4, 0x00cfcde3, 0x00bdbccd, 0x00bbb5c8, 0x00cfc6de, 0x009a8ea9, 0x00524263,
- 0x007e859a, 0x00d8dbef, 0x00eae5f9, 0x00ede7f7, 0x00ece4f4, 0x00dfddf0, 0x00c9d2f0, 0x0099acda, 0x0029529b, 0x000f439a, 0x002860b2, 0x003765ad, 0x006888c2, 0x00aabee9, 0x00c6cded, 0x00caccdf,
- 0x00ddd4de, 0x00aba5ab, 0x002e2a28, 0x00181611, 0x00221f16, 0x00282921, 0x0033342b, 0x003f3f37, 0x004c443f, 0x00514940, 0x00574c3f, 0x005b4c3b, 0x00614e3b, 0x00664f3b, 0x006f5440, 0x00775a46,
- 0x007f5a45, 0x007c5743, 0x00714f3c, 0x006e4d3d, 0x0060483b, 0x0051423b, 0x003d3630, 0x002b2c29, 0x00222224, 0x00212020, 0x00232426, 0x002e3237, 0x0049494e, 0x005b5959, 0x00676561, 0x0069645e,
- 0x00625b52, 0x00524d43, 0x003f3e33, 0x00292b1f, 0x001a2016, 0x006a6e6a, 0x00fafdfd, 0x00fbfafc, 0x00fffcff, 0x00f8faff, 0x00f6ffff, 0x00aec2c0, 0x00272f2f, 0x00352320, 0x00784542, 0x00914740,
- 0x00a65322, 0x00b46835, 0x00ac6732, 0x00995c29, 0x009d713b, 0x00ae8b4f, 0x00b08e52, 0x00ba9557, 0x00d6a26a, 0x00dfa366, 0x00ce9b5e, 0x00ba975c, 0x00c29359, 0x00c9955f, 0x00cb955c, 0x00cb9057,
- 0x00d2965c, 0x00c9935d, 0x00c3945e, 0x00bc915e, 0x00b28c5a, 0x00b28652, 0x00b68551, 0x00b98952, 0x00c28f60, 0x00c18f60, 0x00ba8d5d, 0x00a67b4b, 0x0087552c, 0x00a06d48, 0x00bf906d, 0x00b38263,
- 0x00a47069, 0x00a67361, 0x00aa795f, 0x00c0906d, 0x00d8ad80, 0x00aa835a, 0x003b1d00, 0x00372610, 0x00585a56, 0x00697479, 0x00879597, 0x008c9785, 0x00949c8c, 0x00969b8c, 0x009a9690, 0x008c8a87,
- 0x00a19c98, 0x00d1cdcb, 0x00c0bbb5, 0x009c9b90, 0x00bec0b6, 0x00dbd6c1, 0x00c0b79f, 0x008c8571, 0x00493f38, 0x00322a22, 0x00342b22, 0x0033291c, 0x003f2f1a, 0x005f492d, 0x00876f4f, 0x00957951,
- 0x009f743e, 0x009b7441, 0x00987547, 0x00907049, 0x00795d44, 0x00684f3b, 0x00594130, 0x004c3526, 0x00543c2f, 0x00684d3e, 0x00735b4d, 0x006d5a4b, 0x00493f37, 0x00251f1d, 0x001f1e23, 0x001e1f24,
- 0x00282125, 0x002a2023, 0x00292220, 0x002b221f, 0x002e282a, 0x00342d37, 0x00373039, 0x0035313a, 0x0036343e, 0x00343743, 0x00373f43, 0x003c4343, 0x00494b4c, 0x00555451, 0x0067625e, 0x00736d67,
- 0x007f7a75, 0x00a7a5a0, 0x00f4f3f0, 0x00fdfefc, 0x00fbfdfd, 0x00fbfefc, 0x00f9fcf5, 0x00d6d2c7, 0x005b4c3a, 0x002f1c0c, 0x0042270c, 0x00562f09, 0x005e3410, 0x005f3411, 0x00643b15, 0x00653915,
- 0x00643814, 0x00663814, 0x00663812, 0x0062380e, 0x0062340f, 0x005f340e, 0x005f340d, 0x0060340c, 0x0060310d, 0x0062340e, 0x0065360c, 0x0064350b, 0x00553211, 0x006b533d, 0x00bbaea3, 0x00d4d3d2,
- 0x00d5d3dd, 0x00dad8df, 0x00e6e3e1, 0x00e3e2d4, 0x00908a70, 0x005b5332, 0x005d5732, 0x00615a39, 0x005c5b4c, 0x005a5d54, 0x004e5756, 0x0044515a, 0x003c485f, 0x00354266, 0x002d3c6c, 0x00273771,
- 0x001c2e76, 0x00192c72, 0x0016286e, 0x00132566, 0x00102160, 0x00111b57, 0x000f1a53, 0x000a194f, 0x000e2767, 0x00244b93, 0x003163b5, 0x001046a3, 0x000338a1, 0x001041aa, 0x001544a8, 0x001944a2,
- 0x001653a4, 0x0013499d, 0x0005358c, 0x0000257a, 0x0002267a, 0x00012a75, 0x00002b76, 0x0000216f, 0x00011874, 0x00041d78, 0x0004228a, 0x00002693, 0x00023295, 0x0001369c, 0x00073aa3, 0x000936a2,
- 0x003858a9, 0x0097afe2, 0x00d5eaee, 0x00afbfc0, 0x002d3738, 0x0002071f, 0x00000322, 0x0000011e, 0x00535164, 0x00dedde8, 0x00fbfcfe, 0x00f8fbf8, 0x00fff9f3, 0x00fefaf7, 0x00f4e4e0, 0x00bfa39d,
- 0x00b3998c, 0x00dfc6be, 0x00e7cfce, 0x00d4bac1, 0x00c19ca3, 0x00cda5a8, 0x00ebc6c3, 0x00f1ccc8, 0x00e9c3c1, 0x00d4b8b1, 0x00cbb2ab, 0x00e3cbc0, 0x00f4e2dc, 0x00e5d2ce, 0x00e1d1cf, 0x00ece1e1,
- 0x00cec9ce, 0x00d5d3d7, 0x00f2f1f8, 0x00e5e4ef, 0x00e3dceb, 0x00e8ecec, 0x00969090, 0x004d2c33, 0x00754654, 0x00725e5d, 0x0068695e, 0x00596654, 0x005c564b, 0x00564f48, 0x00545148, 0x00515c50,
- 0x003d5b3f, 0x002d3a28, 0x00495244, 0x006c7b67, 0x00675d40, 0x006c3a14, 0x009f4f22, 0x00ca6a33, 0x00bd6432, 0x00b14d21, 0x00a93e12, 0x00ac4116, 0x00af4916, 0x00b44c17, 0x00bd5114, 0x00c95514,
- 0x00cf530d, 0x00d4560f, 0x00d55e14, 0x00d5661a, 0x00d56e1e, 0x00e66a0e, 0x00ef710e, 0x00e67b20, 0x00bf8051, 0x007e5b4c, 0x002d1f27, 0x00111528, 0x0006121d, 0x00030e17, 0x00090f1a, 0x00111322,
- 0x0017223c, 0x001d2644, 0x00262e4c, 0x00282f50, 0x00262c57, 0x00262c5b, 0x00262e5f, 0x00283065, 0x002b316d, 0x00282e6b, 0x00242e6d, 0x00263172, 0x002a3476, 0x002b3474, 0x00333d7b, 0x00373f7f,
- 0x00465092, 0x004b5aa1, 0x005566b1, 0x00596fba, 0x006078c6, 0x005e7dc2, 0x006783c3, 0x007e96d5, 0x0093a4dd, 0x009fa7d4, 0x00b1b5d7, 0x00b6b8ce, 0x00bbb6c3, 0x00c4bac5, 0x00cec2c9, 0x00decbce,
- 0x00dcd4dd, 0x00d2cad0, 0x00d7d0d1, 0x00e9e5e1, 0x00fdfbf6, 0x00fbfcf8, 0x00fbfdfc, 0x00fbfcfe, 0x00f8f4ff, 0x00bcbad2, 0x00515577, 0x0037467e, 0x003a4b86, 0x003a4e8e, 0x003d5395, 0x003d5491,
- 0x003a4b7f, 0x003d466e, 0x0044445f, 0x00514a5a, 0x005b4b52, 0x00654d43, 0x00684c3a, 0x00694c3b, 0x006c4c3d, 0x006c493b, 0x00694535, 0x0067412f, 0x006e4232, 0x00774839, 0x007d4b3d, 0x007e483d,
- 0x008c482d, 0x00824731, 0x008b5d49, 0x007d5348, 0x004c302a, 0x00372119, 0x003c271e, 0x002f140c, 0x0047190e, 0x005b261a, 0x0061291a, 0x00783920, 0x00975a43, 0x00af6f5a, 0x00b87964, 0x00ae715d,
- 0x00955849, 0x0082483c, 0x00734130, 0x00683b2a, 0x00532819, 0x00502717, 0x005f3b2d, 0x00563c31, 0x002f1518, 0x002b1717, 0x00493634, 0x00523d38, 0x004b382f, 0x003c2b20, 0x003a2c20, 0x0031251b,
- 0x0029251d, 0x00202019, 0x00151811, 0x000d100b, 0x00040807, 0x00000303, 0x00000000, 0x00000100, 0x00030102, 0x00050204, 0x00030304, 0x00020704, 0x00020804, 0x00090d08, 0x0010100a, 0x0016120e,
- 0x001c1812, 0x00383332, 0x00b3b0b0, 0x00f3f5f2, 0x00fcfcfb, 0x00fafefd, 0x00f9fcfa, 0x00f9fbfa, 0x00a09799, 0x003c2f2e, 0x00342722, 0x00403027, 0x00533e30, 0x00604934, 0x006c543b, 0x00795c43,
- 0x00816548, 0x007b6046, 0x0070573f, 0x00604d34, 0x004f4132, 0x00423c31, 0x00343531, 0x00292d36, 0x00242841, 0x00212546, 0x001d2547, 0x0018264d, 0x0015234c, 0x0015234a, 0x00142344, 0x00122342,
- 0x0017264a, 0x0018274b, 0x001d2d53, 0x0023355a, 0x0026375d, 0x00203765, 0x00223564, 0x002a3358, 0x003e2f42, 0x0043313c, 0x00413136, 0x003a3034, 0x00332e3b, 0x002a2840, 0x002b2c47, 0x00676585,
- 0x00808db0, 0x00545d7f, 0x00646984, 0x0080768b, 0x00977879, 0x00a57e6b, 0x00ae8465, 0x00af8858, 0x00a78552, 0x00a28a54, 0x00a99660, 0x00ab9566, 0x00a8897c, 0x008b707e, 0x0056406b, 0x002d2761,
- 0x00192e61, 0x002c3e68, 0x00626c85, 0x006f666e, 0x006e3f3f, 0x009b3325, 0x00d24725, 0x00eb5323, 0x00f25921, 0x00e16a43, 0x00eba691, 0x00d7c4ce, 0x008fb1da, 0x0086a9cf, 0x00718ca8, 0x005a6473,
- 0x005a5b66, 0x0051515a, 0x00494950, 0x00444246, 0x00413a3a, 0x003f3935, 0x004d443f, 0x005a524b, 0x00675657, 0x00685959, 0x00695b59, 0x00685555, 0x00634d51, 0x00573d43, 0x003f262a, 0x002f161b,
- 0x00311019, 0x00300f1a, 0x002e1017, 0x002f1217, 0x0032111b, 0x0033141b, 0x00301617, 0x0035181c, 0x003c262c, 0x0045353a, 0x00494047, 0x0047474e, 0x00464c5a, 0x00495364, 0x004b576c, 0x004c5b72,
- 0x0044627c, 0x00465f78, 0x00475f75, 0x004e6275, 0x005a6675, 0x00606a73, 0x00636a71, 0x00696b6b, 0x00766d70, 0x00786f6c, 0x00776d66, 0x00766b60, 0x0074665a, 0x006d5d51, 0x005c4f43, 0x004f443c,
- 0x00464144, 0x003b434f, 0x0034445b, 0x002f4669, 0x002b4c7b, 0x002a466b, 0x00788eaa, 0x00d7eaf4, 0x00fcfbff, 0x00fbfdf9, 0x00f8fcf6, 0x00f9fdf3, 0x00c8cdca, 0x00484a4f, 0x0004030b, 0x00050611,
- 0x000a071a, 0x0007152d, 0x000a2446, 0x0005214f, 0x00051b58, 0x00021e54, 0x00051743, 0x00333a5d, 0x009a90a2, 0x00a7a7a6, 0x00a8b0a9, 0x00aeb0b6, 0x00a9a4ac, 0x00bcb5ba, 0x00d3cccb, 0x00dbd1cf,
- 0x00e1d7d3, 0x00e3ddd4, 0x00e6e3da, 0x00e3e3de, 0x00e1e5da, 0x00e3e7e3, 0x00e4e5e2, 0x00e7e6e0, 0x00f2e9ea, 0x00f2e6ec, 0x00e8dfe2, 0x00e7e0e2, 0x00eae5e7, 0x00e7e0df, 0x00ece3dd, 0x00f6ece2,
- 0x00edf2f7, 0x00eff4f7, 0x00f0f3f7, 0x00eaecee, 0x00bdbebe, 0x00858887, 0x00717473, 0x00868887, 0x00a6a5aa, 0x00b7b7b9, 0x00d3d6d7, 0x00e1e5e4, 0x00eef0f1, 0x00f2f1f0, 0x00eef1eb, 0x00ece9e9,
- 0x00e9e5e7, 0x00ece5e8, 0x00ebe5e7, 0x00eee6e7, 0x00ece5e7, 0x00e8e5e5, 0x00eae8e3, 0x00e9e7e4, 0x00ede6ea, 0x00efe9ec, 0x00ece8ea, 0x00f4f2f5, 0x00fefffd, 0x00fefffc, 0x00fcfefa, 0x00f8fbf9,
- 0x00fbfef2, 0x00a5a5a1, 0x000b0b0e, 0x0012131b, 0x0026272f, 0x002b2e30, 0x002b312a, 0x002d3229, 0x00373330, 0x00383234, 0x0033302b, 0x00313526, 0x0031372e, 0x00262d2c, 0x00283539, 0x00314450,
- 0x003d556e, 0x00415c7a, 0x0047658a, 0x004a6990, 0x004e6b97, 0x005b77a0, 0x007b97c1, 0x0090acd6, 0x00a2bee1, 0x00b0c9e9, 0x00b2cbe9, 0x00b5cbea, 0x00b7c2e3, 0x00b3b7d6, 0x009e9eba, 0x00a099b6,
- 0x00c28363, 0x00be7c5e, 0x00bb7559, 0x00c98566, 0x00d09c74, 0x00cba473, 0x00c4a66e, 0x00bca266, 0x00bf9064, 0x00c58662, 0x00c78362, 0x00bf7e5c, 0x00b67356, 0x00b26e54, 0x00a5634c, 0x00985842,
- 0x00915643, 0x00894d3e, 0x00814536, 0x007d4033, 0x0077392b, 0x0073381e, 0x006e3615, 0x006d321b, 0x00693026, 0x00633024, 0x00592f1a, 0x00523214, 0x0049341a, 0x003a2a1a, 0x00170b03, 0x000a0001,
- 0x00080405, 0x00090808, 0x00070804, 0x00000400, 0x00050706, 0x000d0d0b, 0x00111112, 0x00111014, 0x000f0d15, 0x000a0e15, 0x000a0b12, 0x000c0b0f, 0x00080a0e, 0x00090a0f, 0x000a090e, 0x00090b0e,
- 0x000c0b13, 0x000d0c13, 0x000d0e12, 0x000d1012, 0x000e0d12, 0x00100f13, 0x000f100f, 0x000f0f0d, 0x00101010, 0x00111111, 0x000f0f0f, 0x00050505, 0x003b3b3b, 0x00b3b3b3, 0x00fdfdfd, 0x00fcfcfc,
- 0x00c6c5ae, 0x00625844, 0x00574938, 0x004f4331, 0x004b3d2d, 0x00493b2a, 0x00433626, 0x00403122, 0x00372e16, 0x003a331c, 0x004a3e25, 0x005b4c31, 0x006d604a, 0x007a705c, 0x00887e6f, 0x008d857e,
- 0x00898b82, 0x00858786, 0x0085878f, 0x007d818f, 0x00757989, 0x006b7077, 0x00555a58, 0x00454946, 0x002e392d, 0x00353f35, 0x00898f8b, 0x00bbc0c1, 0x00a3a7ac, 0x00b0b4be, 0x00c1c5d4, 0x00d4d8ea,
- 0x00ccd5db, 0x00cbd3da, 0x00d0d7e2, 0x00d6dce7, 0x00d4dae2, 0x00d4d8e1, 0x00d7dae6, 0x00d7dae7, 0x00ced9dc, 0x00ced7dd, 0x00d0d4e1, 0x00ced1e0, 0x00caccd9, 0x00c8c9d6, 0x00cbcadc, 0x00cecbdf,
- 0x00d5d9e6, 0x00d9dce9, 0x00e6e8f6, 0x00eceefd, 0x00ecedfc, 0x00ecebfc, 0x00e7e3f6, 0x00e2dbf0, 0x00d8d7e7, 0x00dedded, 0x00e4e1f7, 0x00dddaf2, 0x00bab5d0, 0x00b5b1cb, 0x00a9a4c2, 0x0075718c,
- 0x007b8794, 0x00d1d8e3, 0x00ebe7fa, 0x00e9e1ec, 0x00ddd4e4, 0x00cfcce5, 0x00c1c7f2, 0x0090a4db, 0x00275ca4, 0x001d5cad, 0x002b63b5, 0x00325495, 0x006882b9, 0x00b5c5f0, 0x00c7d0f0, 0x00d1d3ea,
- 0x00dcdad8, 0x00b7b5ac, 0x005b554c, 0x0029221a, 0x00242419, 0x002b3128, 0x00343a36, 0x00434641, 0x00434b3b, 0x00474b3b, 0x00504a3e, 0x0053493d, 0x005c4a3d, 0x00614c3f, 0x006d534a, 0x0074594f,
- 0x00765e45, 0x00715b44, 0x006e5544, 0x00665043, 0x005d4d42, 0x00574a43, 0x004c413e, 0x003c3332, 0x00272b27, 0x002d312d, 0x003a3c3f, 0x004d4d55, 0x0066656c, 0x00747277, 0x007c797f, 0x0078767b,
- 0x0062675f, 0x004f544c, 0x0040413b, 0x002a2a23, 0x00181d11, 0x00686e69, 0x00ffffff, 0x00fff8fd, 0x00f8f9f7, 0x00f1f6f8, 0x00f4fefe, 0x00abc1c1, 0x00292f26, 0x00492617, 0x00af6553, 0x00e27158,
- 0x00c8753a, 0x00bf6e32, 0x00bb6d36, 0x00b76e38, 0x00bf834c, 0x00c9965d, 0x00c8935f, 0x00c79862, 0x00cba564, 0x00cca764, 0x00c59e61, 0x00bd9862, 0x00c49861, 0x00ca9a62, 0x00d39b66, 0x00d69965,
- 0x00c69657, 0x00c29358, 0x00bf925b, 0x00b9925e, 0x00ac8d5a, 0x00b18754, 0x00b58854, 0x00ba8a58, 0x00b58b4f, 0x00b68a52, 0x00b48451, 0x00a17041, 0x008c5e34, 0x009b6c47, 0x00a47153, 0x008a563d,
- 0x00644531, 0x0079543d, 0x00a3745a, 0x00bf8d6c, 0x00c6936a, 0x00b2865f, 0x00755233, 0x006d5642, 0x0096988a, 0x00a5afa8, 0x00a0aea8, 0x00a2af9f, 0x00a4ac9e, 0x00abb0a4, 0x00b3b1b0, 0x00b2acad,
- 0x00bdbeb6, 0x00bbbdb3, 0x00979993, 0x00acb1a5, 0x00dbe4d8, 0x00e6e8d9, 0x00dedbcc, 0x00d0cdc0, 0x00928e7b, 0x00574e3c, 0x00443625, 0x003f2e1d, 0x004f3a21, 0x00675032, 0x008b714f, 0x009b7e59,
- 0x00927b38, 0x0094793e, 0x009d7b4c, 0x009e7a53, 0x00947352, 0x008c6a4f, 0x00875f4b, 0x007d5343, 0x00775a3a, 0x00806341, 0x00836243, 0x00856546, 0x0064513e, 0x002f251b, 0x00241b19, 0x00262222,
- 0x00251e16, 0x00261f19, 0x002b2120, 0x002b252a, 0x00272d37, 0x002f2b3c, 0x00342d3e, 0x00342e3f, 0x00262e30, 0x00293233, 0x0033393a, 0x003b4040, 0x004b494a, 0x00575552, 0x006d6763, 0x007b726e,
- 0x007c7c6e, 0x00a5a49f, 0x00f4f3f1, 0x00fcfffd, 0x00f9fffd, 0x00fbfffb, 0x00fbfcf7, 0x00dcd8cb, 0x00595233, 0x00302003, 0x00492b08, 0x00633409, 0x006a3c12, 0x00693b12, 0x00734119, 0x00734119,
- 0x006b3b0b, 0x006f3e0e, 0x00784316, 0x00784318, 0x00784317, 0x00743f12, 0x00774016, 0x0076421b, 0x00683d0e, 0x00703c0c, 0x00753c0f, 0x00763a0c, 0x00683713, 0x007f6044, 0x00dec9ba, 0x00f6f2f0,
- 0x00edf0f1, 0x00f0f3ef, 0x00f8f7f2, 0x00efecde, 0x00939073, 0x00595537, 0x005b573c, 0x005c5940, 0x004e5740, 0x00505748, 0x004d5251, 0x00434f5b, 0x0039455f, 0x00324064, 0x002c396b, 0x00243372,
- 0x00122b68, 0x000e2667, 0x000f246b, 0x000e2264, 0x00091f56, 0x000b1a54, 0x000c1756, 0x00061652, 0x00002458, 0x00144383, 0x002858a7, 0x000e3c9a, 0x0004319b, 0x00113ba4, 0x00173ca2, 0x001e40a3,
- 0x0011479c, 0x00063990, 0x00022b88, 0x00042b88, 0x0009358e, 0x000e3a93, 0x00173d97, 0x00183d95, 0x000a3884, 0x000a3485, 0x000f3594, 0x00113aad, 0x001440ac, 0x001245ab, 0x001546ac, 0x001945aa,
- 0x001b4797, 0x005173b3, 0x00bbd2f9, 0x00c6d6eb, 0x007d857c, 0x001c1f29, 0x00020116, 0x00020213, 0x0033373a, 0x00b5b8b9, 0x00f8f8f8, 0x00fffbfc, 0x00fefbfc, 0x00fffafc, 0x00fdf3f7, 0x00e0d0d6,
- 0x00ccb9a2, 0x00d8cac0, 0x00dfcfd3, 0x00dccfdd, 0x00dacddb, 0x00decdd9, 0x00ead8de, 0x00eed7df, 0x00e3dfd8, 0x00dddedd, 0x00d9d6dd, 0x00e6dfe8, 0x00f1ebee, 0x00ede9ea, 0x00f1ebeb, 0x00f0e8eb,
- 0x00c8cac4, 0x00cac9c8, 0x00f2ebf2, 0x00ece6f3, 0x00e1dae8, 0x00e6f1f2, 0x00c3c4c4, 0x0077525e, 0x004f242a, 0x003e352a, 0x00323b2a, 0x00273b27, 0x003c3127, 0x00372924, 0x003d312d, 0x00464d44,
- 0x00365e3d, 0x002b3d28, 0x00424d3e, 0x00677a68, 0x006c5e3f, 0x00833716, 0x00be4e27, 0x00da6130, 0x00a46021, 0x00964d19, 0x00993f1a, 0x00aa3a13, 0x00af4717, 0x00b24d17, 0x00be5017, 0x00c65315,
- 0x00c64e02, 0x00cb5203, 0x00d7580f, 0x00d96315, 0x00d56e1d, 0x00e7710e, 0x00ee7513, 0x00e77f2c, 0x00986225, 0x004a2c09, 0x00170e03, 0x00030c08, 0x0000080d, 0x00020509, 0x0008050a, 0x000b0809,
- 0x00000e16, 0x00081422, 0x00161f32, 0x001e263d, 0x00222b49, 0x00222a4f, 0x00262d59, 0x00292d62, 0x0022305f, 0x00243063, 0x00253068, 0x0026316f, 0x00293376, 0x002e3878, 0x00363d7c, 0x00333c7e,
- 0x00364882, 0x00394b8a, 0x0046559b, 0x004c60ab, 0x005a72bf, 0x00647bc2, 0x006c82c3, 0x007f90d5, 0x007f99cc, 0x008b9fcd, 0x00a8b6db, 0x00b5bcd9, 0x00bdb7ca, 0x00c7bbc7, 0x00dccbd1, 0x00e5ced0,
- 0x00d8dad7, 0x00d2d1cc, 0x00d5d0cd, 0x00ece6e2, 0x00fefbf7, 0x00fbfcfb, 0x00fffeff, 0x00fffcff, 0x00eeeff1, 0x00b0aec2, 0x0055557a, 0x00465287, 0x00465691, 0x00485a97, 0x00475a9c, 0x00455a9a,
- 0x00334a78, 0x00324265, 0x003c3f5b, 0x00494354, 0x00504547, 0x0059433e, 0x005d3f3c, 0x005c413a, 0x00574132, 0x0056402f, 0x00573d2e, 0x005d3c2e, 0x00673e31, 0x00744338, 0x007e463e, 0x007f453d,
- 0x00854520, 0x00814927, 0x008b5943, 0x00684231, 0x003d2318, 0x00664c43, 0x00906e68, 0x00825853, 0x00916149, 0x00ae745e, 0x00bc7965, 0x00bc7862, 0x00b7765d, 0x00bf7f67, 0x00c4846e, 0x00bd7b65,
- 0x00b47c5f, 0x00b17a5d, 0x00be846a, 0x00c38670, 0x00b0745f, 0x00965d46, 0x0085513f, 0x006d4336, 0x00281509, 0x00190800, 0x00403027, 0x005f4d41, 0x00574538, 0x00302419, 0x002e2721, 0x00292926,
- 0x001b2214, 0x00151f12, 0x00111612, 0x000b100f, 0x00030a09, 0x00010405, 0x00020005, 0x00020005, 0x00000100, 0x00010000, 0x00030300, 0x00000903, 0x00060e09, 0x000f100d, 0x00191512, 0x00201818,
- 0x001d1e12, 0x00414037, 0x00c6c2c0, 0x00f5f8f5, 0x00fafdfd, 0x00fbfdfc, 0x00fdf9fc, 0x00faf3f6, 0x008d8782, 0x00362c24, 0x0036261e, 0x00422d26, 0x00503829, 0x005c4230, 0x006a4f3c, 0x00715741,
- 0x006c5a3b, 0x006b563b, 0x00644e34, 0x0056442d, 0x00463c2a, 0x003d372c, 0x0031312f, 0x00272834, 0x001b2533, 0x00162339, 0x00162146, 0x00151f51, 0x00121f49, 0x00111f46, 0x00132244, 0x00112244,
- 0x000d263f, 0x000e2845, 0x001a2f55, 0x00213763, 0x00243a6b, 0x00203b72, 0x0024386d, 0x002d365b, 0x00353435, 0x003a332f, 0x00403531, 0x003a3236, 0x003b3b4f, 0x00353656, 0x0041416a, 0x008485b2,
- 0x0098b0c2, 0x00667896, 0x004d547e, 0x005b5c8b, 0x008a7a95, 0x00a48b8b, 0x00ba9787, 0x00c29e7c, 0x00ac9c6f, 0x00a49b73, 0x00aaa487, 0x00a6a48b, 0x008e7d8c, 0x00655480, 0x0042367f, 0x002f348d,
- 0x00143f7f, 0x0023456f, 0x00656984, 0x00856668, 0x009b493a, 0x00b63c24, 0x00dc4625, 0x00f14b1a, 0x00ef550f, 0x00db6231, 0x00df907a, 0x00ceb5c1, 0x008da9d4, 0x0084a1c9, 0x00758faf, 0x00546175,
- 0x00474f4e, 0x003e4444, 0x003b3e42, 0x00343538, 0x00313233, 0x0032312e, 0x00443f3e, 0x00534b4c, 0x00534d47, 0x0058514b, 0x00615254, 0x00624d54, 0x005c4449, 0x004e343a, 0x003d1e27, 0x00300e18,
- 0x00240708, 0x0026080b, 0x00280910, 0x00260910, 0x00240912, 0x0029060d, 0x002d070e, 0x002d0a11, 0x002a1519, 0x00332329, 0x003a303b, 0x003c3947, 0x003b4453, 0x003e4b5d, 0x0044556a, 0x00485d73,
- 0x003a5d77, 0x003f5e75, 0x00496175, 0x00536575, 0x00626972, 0x00686a6f, 0x006d6a6b, 0x00716a66, 0x006d6a5d, 0x006d6a5d, 0x00736a60, 0x0075675c, 0x00726157, 0x006a594b, 0x005e4d43, 0x00564740,
- 0x0044473d, 0x003f4647, 0x003c4858, 0x00374b6a, 0x00344e76, 0x00374d6f, 0x008e9ebb, 0x00e8f3fd, 0x00f0fef8, 0x00f2fef3, 0x00fafef7, 0x00fdfdf4, 0x00b8bbb6, 0x00313536, 0x00000009, 0x00060214,
- 0x00000c14, 0x00041c2d, 0x00112548, 0x00061c4a, 0x00041753, 0x000e2158, 0x000b1948, 0x00152146, 0x004f5e65, 0x008a9698, 0x00afb5b7, 0x00aeb0bb, 0x00b0abb6, 0x00c5c0c6, 0x00d5ccd0, 0x00dcd1d0,
- 0x00d9d7c9, 0x00d9d9cd, 0x00e1e0d8, 0x00e5e2db, 0x00e5e8e2, 0x00e8e6de, 0x00eae3de, 0x00ece5e3, 0x00e6e8e5, 0x00e4e2e5, 0x00e3dbe3, 0x00eae0e5, 0x00ede5e5, 0x00e6dedb, 0x00f0e5df, 0x00f9eee6,
- 0x00eeefeb, 0x00e9eae7, 0x00eaebea, 0x00f1f2f2, 0x00efeef0, 0x00e0dfe1, 0x00d9d8da, 0x00e3e2e4, 0x00e6e9e8, 0x00e9eaea, 0x00f6f7f7, 0x00f1f1f1, 0x00eeeeee, 0x00ebebeb, 0x00ecebeb, 0x00edeaeb,
- 0x00e4e8e4, 0x00e6e9e5, 0x00eae9ea, 0x00ece9ec, 0x00eae9e8, 0x00e9e7e6, 0x00eae6e7, 0x00ebe8e7, 0x00e4e9e1, 0x00e5e6e1, 0x00eae9e6, 0x00f6f3f1, 0x00fffdfc, 0x00fffcfb, 0x00fffefd, 0x00fffdfc,
- 0x00f5ffe8, 0x00a3a89b, 0x000a0a0c, 0x0011121f, 0x0025292f, 0x002b2e2d, 0x0033322e, 0x0037322d, 0x00313226, 0x00332f2b, 0x00342e2c, 0x002f3226, 0x002a3532, 0x002d3d44, 0x0052687d, 0x007594b2,
- 0x0080b0d2, 0x0077abd5, 0x006ca0d9, 0x005e93d1, 0x004f85c8, 0x004d80c8, 0x004c79c7, 0x004b79c3, 0x00568eca, 0x006a9fd9, 0x0077a7e3, 0x007ca6e1, 0x00809dd4, 0x007d93ca, 0x007481bd, 0x006e75b1,
- 0x00a66956, 0x00aa6d53, 0x00ae6f53, 0x00b67a55, 0x00c29269, 0x00c59e73, 0x00c69f77, 0x00c39d75, 0x00bc9061, 0x00b9885c, 0x00bc805e, 0x00b87654, 0x00a96749, 0x009f6046, 0x00945440, 0x00834a37,
- 0x006f4025, 0x006b3924, 0x006c3628, 0x00693427, 0x00663426, 0x0069331b, 0x006b361c, 0x006a3322, 0x005c331e, 0x005c3420, 0x00593523, 0x0054371f, 0x004b3721, 0x00372717, 0x00130701, 0x000b0105,
- 0x00000300, 0x00000600, 0x00030801, 0x00000400, 0x00060808, 0x000c0d10, 0x000f0f15, 0x00100f16, 0x00080c0e, 0x00090c0f, 0x00090c10, 0x000a0c10, 0x00090a0e, 0x00090a0e, 0x000a0a0f, 0x000c0c12,
- 0x00080e0e, 0x00090e0f, 0x000d0f13, 0x000e1015, 0x00100f14, 0x000f0f11, 0x00120f12, 0x00131014, 0x000e0e0e, 0x000e0e0e, 0x00121212, 0x00060606, 0x00444444, 0x00bcbcbc, 0x00fefefe, 0x00ffffff,
- 0x00bfbeac, 0x00514737, 0x00463b2b, 0x00403726, 0x00392e1f, 0x003e3324, 0x00372d1d, 0x00322616, 0x002f2514, 0x00342c1c, 0x00443826, 0x00574833, 0x006b5d4c, 0x007c7060, 0x00897e71, 0x008d857e,
- 0x008c8c8a, 0x008b8c8f, 0x00888a93, 0x007f838e, 0x00727682, 0x00686e70, 0x004f554e, 0x003f443e, 0x00323833, 0x00434a45, 0x00a6aea9, 0x00ccd3d2, 0x00a3a9ac, 0x00b7bbc4, 0x00cfd3df, 0x00e2e6f4,
- 0x00dee2ec, 0x00d9dde7, 0x00d8dce8, 0x00dee2ed, 0x00e4e9f2, 0x00e6ecf5, 0x00e7ecf7, 0x00e6ecf6, 0x00e6ecf4, 0x00e7ecf5, 0x00e9ebf8, 0x00e8eaf7, 0x00e6e8f3, 0x00e5e7f3, 0x00e4e5f3, 0x00e2e3f1,
- 0x00dadbe7, 0x00d8dae5, 0x00dadce6, 0x00dcdfe9, 0x00dee0ec, 0x00e3e4f2, 0x00e8e7f6, 0x00e6e3f2, 0x00dfdced, 0x00dfdced, 0x00dedbed, 0x00e5e1f7, 0x00d2cee3, 0x00bcb8cf, 0x00a4a0b7, 0x00827e94,
- 0x008a93a5, 0x00d2d7e4, 0x00e2deeb, 0x00ddd5df, 0x00d3cad5, 0x00d0cde0, 0x00d3d8f5, 0x00a4b7e0, 0x003c67a9, 0x002459a2, 0x0014448d, 0x0024417d, 0x007b92c4, 0x00c0cef6, 0x00c9d0ec, 0x00dbdded,
- 0x00d9d5d7, 0x00bab3b0, 0x00908983, 0x004b4740, 0x0034352a, 0x00353a31, 0x003b403b, 0x00444841, 0x004a4d45, 0x004c4c44, 0x00514b44, 0x0052493f, 0x00584b3d, 0x005d4f3f, 0x00665547, 0x006b584a,
- 0x00735f4e, 0x006f5c4b, 0x006a5649, 0x00615045, 0x00594d43, 0x00544c44, 0x004b433e, 0x003d3632, 0x00333333, 0x003d3c3d, 0x004d4c51, 0x00616069, 0x0077767e, 0x00818086, 0x00858588, 0x00808081,
- 0x00727371, 0x005d5d59, 0x0042413b, 0x00272720, 0x0014190e, 0x00646b67, 0x00f7fcfd, 0x00fdf9fc, 0x00fef6f8, 0x00faf8fd, 0x00f6fdfd, 0x00afc2c3, 0x002e362e, 0x00482d1f, 0x00a26554, 0x00d67963,
- 0x00da9465, 0x00d48557, 0x00c87446, 0x00c96e40, 0x00cb733e, 0x00d37f4a, 0x00cc834c, 0x00cc8e55, 0x00d1ab68, 0x00ceb16a, 0x00c2a463, 0x00c39763, 0x00c2965f, 0x00c5985e, 0x00ca9d61, 0x00cd9d61,
- 0x00c9995f, 0x00c2955b, 0x00ba945a, 0x00b7925b, 0x00ae8e58, 0x00b18854, 0x00b28852, 0x00b58a55, 0x00b38851, 0x00b18752, 0x00ad814e, 0x00a47849, 0x00986e43, 0x009a6e49, 0x00956746, 0x0089593c,
- 0x00795737, 0x00906b48, 0x00be916c, 0x00d3a47d, 0x00bd8e66, 0x00b08764, 0x0086664a, 0x00624f3d, 0x00666561, 0x006f767e, 0x00677375, 0x006f7a6f, 0x007f877a, 0x0094998f, 0x00adada6, 0x00b9b5af,
- 0x00c2c1ba, 0x00a8a9a3, 0x00969a91, 0x00bec4bb, 0x00d0d9cf, 0x00c5c8bb, 0x00b4b5a3, 0x00a9a99b, 0x00938d7e, 0x00746b5b, 0x00524535, 0x00463622, 0x00533c20, 0x006d5532, 0x008d744c, 0x009b8155,
- 0x009e8047, 0x009d7f4a, 0x00a17f51, 0x00a17f57, 0x00a0805d, 0x00a07e60, 0x009a765b, 0x00926e54, 0x009a795b, 0x009f7d5d, 0x00937250, 0x00907049, 0x00746449, 0x00423a29, 0x001c1a10, 0x0022221c,
- 0x0026241a, 0x0026231d, 0x00282522, 0x00282a2a, 0x00253037, 0x002f2d3d, 0x00322c3b, 0x002f2a39, 0x00282831, 0x00292d31, 0x00303436, 0x00393c3c, 0x00494948, 0x00585653, 0x006f6a64, 0x007d756d,
- 0x00847f75, 0x00aba8a4, 0x00f4f3f1, 0x00fafffd, 0x00f9fffd, 0x00fafffb, 0x00fafcf9, 0x00d9d7cc, 0x005e543f, 0x0036210d, 0x004b2e0e, 0x0065390f, 0x00704117, 0x006f4119, 0x00714219, 0x006e4014,
- 0x00724214, 0x00754316, 0x00794619, 0x00774517, 0x00744214, 0x00774113, 0x00784315, 0x00764517, 0x00754217, 0x007c4115, 0x007a3e0f, 0x00793e0c, 0x006e3d13, 0x00886545, 0x00e8d0bd, 0x00fcf9f1,
- 0x00fbfbfd, 0x00fcfcfb, 0x00fefdf9, 0x00f1eee2, 0x00908e73, 0x00535134, 0x00565439, 0x0057563f, 0x00525645, 0x00525449, 0x004b504e, 0x00404c56, 0x0037455d, 0x002f3e62, 0x00273869, 0x001e316e,
- 0x0013296f, 0x000d246a, 0x000b2067, 0x000b2063, 0x00061b58, 0x0007184f, 0x0007154a, 0x00001448, 0x00022056, 0x00123b7c, 0x00224d9c, 0x000a3792, 0x00022f96, 0x000c379c, 0x000f3898, 0x00133c96,
- 0x000e37a4, 0x00022a95, 0x00012793, 0x000c329e, 0x00143ba4, 0x00173ea3, 0x001f43a9, 0x002548ac, 0x002647a8, 0x002343a6, 0x001d3ea4, 0x00193ea9, 0x001c41a5, 0x001d44a8, 0x001e45a9, 0x002046ac,
- 0x00173394, 0x00374ba2, 0x00a1aaed, 0x00c8cafa, 0x00bab7cb, 0x005a586a, 0x00050614, 0x0001020e, 0x0027272c, 0x00929294, 0x00fbfbfb, 0x00fffdfb, 0x00fefdfb, 0x00fdfbfa, 0x00fffbfc, 0x00f4ecf0,
- 0x00dfccc2, 0x00dbcdcd, 0x00d5c9d1, 0x00d6cddd, 0x00dad4e2, 0x00e0d5e1, 0x00e0d3dc, 0x00e0d2d9, 0x00e5dcdc, 0x00e6e0e5, 0x00dcd5dd, 0x00dfd7e0, 0x00eee7ec, 0x00f9f4f5, 0x00f9f4f4, 0x00efeae9,
- 0x00d1cfd0, 0x00c8c4c9, 0x00e9e2ea, 0x00f0e8f5, 0x00dfd7e6, 0x00e4e9ef, 0x00d5d3d9, 0x00927481, 0x00422124, 0x0030271d, 0x00181e0c, 0x00242816, 0x00422920, 0x003b221d, 0x00352820, 0x00444f3f,
- 0x00476649, 0x00364130, 0x003b4436, 0x00627360, 0x006e6443, 0x007d3a18, 0x00a94820, 0x00be5626, 0x0092571f, 0x00914d23, 0x009a431a, 0x00b2380b, 0x00b0440f, 0x00b34a16, 0x00b95116, 0x00bf5617,
- 0x00cb5510, 0x00d15510, 0x00d75a10, 0x00db6211, 0x00d76913, 0x00e16b0f, 0x00e87419, 0x00dc762b, 0x00723612, 0x00280401, 0x00140402, 0x00070609, 0x00030711, 0x00060610, 0x00090407, 0x000b0200,
- 0x0000030c, 0x0000030e, 0x00030615, 0x00080c20, 0x000e142c, 0x00101734, 0x00161c40, 0x00191f45, 0x001d2651, 0x00252c58, 0x002a3161, 0x002a3066, 0x00263069, 0x002b3670, 0x002e3877, 0x00303f81,
- 0x00334586, 0x0033478c, 0x00384b94, 0x004053a0, 0x004f67b3, 0x005e75bb, 0x006880bf, 0x00788fce, 0x00859ad2, 0x0095a6d8, 0x00aebae4, 0x00bbc3e4, 0x00c4c1d7, 0x00c8c0ce, 0x00e0d4da, 0x00e2d1d2,
- 0x00e1dde2, 0x00dcd8d8, 0x00d6d0d1, 0x00eae6e4, 0x00fcfcf5, 0x00fcfefa, 0x00fcfafb, 0x00fffdff, 0x00eeecf3, 0x00aca7bf, 0x0057577c, 0x004c598d, 0x004d5e96, 0x004d609a, 0x00445a97, 0x003f5491,
- 0x00334378, 0x00333f69, 0x003b3d5e, 0x00433f52, 0x00483f44, 0x004e3c37, 0x004f3730, 0x004d372d, 0x00503a2e, 0x0050382c, 0x0051362b, 0x0057372c, 0x00603a30, 0x006a3d35, 0x0072413a, 0x0076423b,
- 0x008c432b, 0x008b4b34, 0x00905945, 0x006a4130, 0x003b1d10, 0x007b5f53, 0x00be9c91, 0x00c49b90, 0x00d39b8b, 0x00e1a18f, 0x00df9984, 0x00d28e74, 0x00bd7b5e, 0x00c38467, 0x00ca8a70, 0x00c38167,
- 0x00cd8f74, 0x00d4967a, 0x00dc9e84, 0x00e0a289, 0x00cd9177, 0x00b87d62, 0x0099624c, 0x00744838, 0x002d130f, 0x001a0402, 0x00392621, 0x0056433a, 0x0049382e, 0x0021150e, 0x00201b16, 0x001b1e1b,
- 0x001c1e1b, 0x00161b17, 0x00101414, 0x000b1012, 0x00030a0b, 0x00000506, 0x00000004, 0x00000003, 0x00010100, 0x00040200, 0x00060501, 0x00040b07, 0x000c120d, 0x00151511, 0x001f1a15, 0x00271f1b,
- 0x002a241e, 0x0056504b, 0x00d4cfcc, 0x00f9faf7, 0x00fafdfc, 0x00fcfdfc, 0x00fffefd, 0x00f0eceb, 0x00847d7c, 0x00372c27, 0x0036251f, 0x003f2b24, 0x004c3726, 0x0057412c, 0x00614c33, 0x00675438,
- 0x00685039, 0x00654d39, 0x005b4732, 0x004d3d28, 0x003d3224, 0x00342d25, 0x00282927, 0x001e242b, 0x00182134, 0x00151f38, 0x00131e40, 0x00111c49, 0x000e1b42, 0x000c1b40, 0x000e1e40, 0x000e2043,
- 0x000f2445, 0x0012294d, 0x001b305b, 0x00203764, 0x00233b6b, 0x00223c73, 0x00243a6e, 0x002c385d, 0x0038333e, 0x003d3439, 0x003d3237, 0x0038323d, 0x0041465f, 0x004a5072, 0x00616590, 0x009499c7,
- 0x00a4a8b4, 0x00949ab8, 0x00687299, 0x00535c8f, 0x004f557d, 0x0069697d, 0x00878088, 0x00958b85, 0x008f887f, 0x007f7975, 0x0062656c, 0x0046586d, 0x003b4472, 0x0033387e, 0x0029388a, 0x00203f94,
- 0x00184686, 0x00374e79, 0x007d7287, 0x00ac6c6e, 0x00bd4538, 0x00c53b22, 0x00da421b, 0x00ea430f, 0x00ef5311, 0x00d75e2f, 0x00cf8168, 0x00cab2b8, 0x0096b5d5, 0x0087aac7, 0x006e90a4, 0x00495f67,
- 0x00464748, 0x003b3c3d, 0x00343435, 0x002e2e2e, 0x00282724, 0x002c2a25, 0x00393531, 0x00453f3e, 0x004c4445, 0x004f4748, 0x0056484d, 0x00574248, 0x0050383e, 0x00442a2f, 0x0035171d, 0x00290a10,
- 0x0024040a, 0x0025050c, 0x0026060e, 0x0024060e, 0x0022080f, 0x0026060c, 0x002a070d, 0x002b0a11, 0x00291219, 0x002d1d26, 0x00312735, 0x00333041, 0x00333d4e, 0x00374659, 0x003f5167, 0x00455b71,
- 0x00415e79, 0x00456077, 0x004e6478, 0x00586978, 0x00666e74, 0x006b6d6f, 0x006f6b68, 0x00726a63, 0x0071685e, 0x0070675c, 0x0074665c, 0x00736257, 0x006d5b4f, 0x00655343, 0x005d4c3c, 0x00584a3a,
- 0x004d4b43, 0x004a4c4f, 0x00444c5b, 0x003f516b, 0x003d5476, 0x00445974, 0x009bacc2, 0x00ebf7fc, 0x00f2fdfd, 0x00f5fef8, 0x00fbfefa, 0x00fcfef6, 0x00b0b3af, 0x002e3132, 0x0004050c, 0x0001000e,
- 0x00011024, 0x000e213b, 0x00132548, 0x00051942, 0x00011344, 0x00081b49, 0x000b1c44, 0x00071638, 0x00303f49, 0x007d858e, 0x00b0b7b9, 0x00acb5b5, 0x00b0b4b4, 0x00c7c8c6, 0x00cecfce, 0x00d1d2d2,
- 0x00d5d2d3, 0x00d8d8d8, 0x00dfdee0, 0x00e5e2e6, 0x00e3e6e8, 0x00e6e6e2, 0x00e5e2dd, 0x00eae8e5, 0x00eae9ea, 0x00e5e4e8, 0x00dddae1, 0x00e6e4e8, 0x00e6e7e6, 0x00dfe1dd, 0x00e6e5e0, 0x00edede5,
- 0x00eeeded, 0x00f0efef, 0x00e9e9e9, 0x00eeeeed, 0x00f0f0f0, 0x00ededed, 0x00e9eaea, 0x00eff0f0, 0x00f0f1f0, 0x00eceded, 0x00efefef, 0x00eeeeee, 0x00ececec, 0x00e8e9e9, 0x00e9e8e9, 0x00eae9ea,
- 0x00ecebec, 0x00ebebeb, 0x00eceaed, 0x00ebeaeb, 0x00e9ebe8, 0x00e8e8e5, 0x00e9e6e4, 0x00eae7e5, 0x00e9e8e4, 0x00e8e7e3, 0x00eae9e6, 0x00f5f2f0, 0x00fefdfb, 0x00fefbfa, 0x00fefcfa, 0x00fefcfa,
- 0x00f9feef, 0x00a6a8a0, 0x000c0b0d, 0x0013131d, 0x0027292c, 0x002e2e2a, 0x0035322b, 0x0039342c, 0x0038322d, 0x00372e31, 0x00322e33, 0x00293138, 0x0032414d, 0x0062778d, 0x008fadcc, 0x009ac0ea,
- 0x0085b4ea, 0x007bafec, 0x006ba2e7, 0x005e96e0, 0x00508ad6, 0x00447cce, 0x003268bb, 0x00245dac, 0x001a549e, 0x00275fa7, 0x004a7ec6, 0x006392d9, 0x006890d3, 0x006284c6, 0x005a77ba, 0x004d66a8,
- 0x00985370, 0x00906061, 0x0084694e, 0x00897a4b, 0x00a08c5a, 0x00b48a6d, 0x00ba8470, 0x00bc7f74, 0x00b08464, 0x00a08353, 0x00977644, 0x009d693a, 0x008b592b, 0x007e4f24, 0x0075461e, 0x00684016,
- 0x005e3910, 0x005c3412, 0x005b3311, 0x005c3515, 0x005d3817, 0x00633a23, 0x00663e2a, 0x00683e31, 0x00673d2b, 0x00643d2b, 0x005f3a26, 0x005a3a20, 0x004d381e, 0x00322010, 0x00100100, 0x000a0001,
- 0x00000100, 0x00000200, 0x00000200, 0x00020403, 0x00090c0b, 0x000c0f10, 0x000d1012, 0x000c0f11, 0x000b0d10, 0x000b0d11, 0x000b0d12, 0x000b0d12, 0x000a0b0f, 0x00090b0f, 0x00090b10, 0x000b0d12,
- 0x000c0e14, 0x000c1014, 0x000f1015, 0x000f1116, 0x00101014, 0x000f1011, 0x00111010, 0x00121110, 0x00111111, 0x00121212, 0x00121212, 0x000a0a0a, 0x004d4d4d, 0x00c8c8c8, 0x00fefefe, 0x00fefefe,
- 0x00c5c3b6, 0x00564f44, 0x0050483f, 0x004a453a, 0x00473f35, 0x00494238, 0x00484238, 0x00443d34, 0x00403b32, 0x00464138, 0x00574b42, 0x0067584d, 0x007a6c63, 0x00877c74, 0x00928983, 0x0095908c,
- 0x009a9898, 0x0097979a, 0x00929398, 0x00898d92, 0x007b8085, 0x00737879, 0x005f6561, 0x00545956, 0x004f534f, 0x005d625e, 0x00b5bab6, 0x00eef3f1, 0x00e4e9eb, 0x00dee3e9, 0x00dfe3ee, 0x00dbdeec,
- 0x00e4e5ee, 0x00e3e5ed, 0x00e5e7ef, 0x00e7e9f2, 0x00e6e8f2, 0x00e5e7f1, 0x00e2e5ef, 0x00dee1ea, 0x00dfe0ec, 0x00dddfe8, 0x00e0e1ea, 0x00e5e6ef, 0x00ebebf3, 0x00eeeff7, 0x00f1f2fa, 0x00f1f4f9,
- 0x00f7f7fe, 0x00f3f4fb, 0x00ebecf4, 0x00e9eaf1, 0x00ebebf3, 0x00eae9f1, 0x00e6e5ef, 0x00e2e1eb, 0x00dcd9e5, 0x00cdcad6, 0x00c4c1ce, 0x00cecbda, 0x00e4e1f0, 0x00dddaeb, 0x00a4a1b2, 0x00898798,
- 0x00b4bcc9, 0x00d3d8e1, 0x00d7d5db, 0x00dbd4dc, 0x00e3dadf, 0x00e7e2ef, 0x00eceefd, 0x00bac5dd, 0x004e6a98, 0x00305486, 0x00234375, 0x00516089, 0x00b1bbdf, 0x00d5d9f3, 0x00e4e3f4, 0x00f1ebf5,
- 0x00c6c0c5, 0x009a9191, 0x00a7a19e, 0x00898883, 0x0064655f, 0x005e5e5c, 0x005f5f60, 0x00636363, 0x00696867, 0x00666663, 0x00676461, 0x0065615d, 0x006a645d, 0x006b685e, 0x00716b62, 0x00736c63,
- 0x007c706c, 0x00786d68, 0x00746965, 0x006f6561, 0x0069625f, 0x00686160, 0x00645d5b, 0x005b5552, 0x00585254, 0x00615c5c, 0x00716d71, 0x00838188, 0x0096959e, 0x009c9ca3, 0x00a1a1a6, 0x009d9ea0,
- 0x008c8a8c, 0x00767774, 0x005a5954, 0x0041423c, 0x0030302b, 0x00737b79, 0x00f5fbfc, 0x00fefffe, 0x00fff4fa, 0x00fdf7fd, 0x00fbfbfe, 0x00bec5cd, 0x00545659, 0x0071605b, 0x00be9b91, 0x00ebb9a9,
- 0x00f5d0ba, 0x00f9c5ac, 0x00e38f74, 0x00ce603f, 0x00de582f, 0x00e05a2c, 0x00dd6430, 0x00e37c43, 0x00dea464, 0x00d3af67, 0x00c8a561, 0x00ce9963, 0x00c7985d, 0x00c59d5e, 0x00c4a15e, 0x00c1a05a,
- 0x00c1a060, 0x00bd9c5d, 0x00bb995d, 0x00ba945d, 0x00b68a59, 0x00b28956, 0x00b08852, 0x00af8751, 0x00ad8450, 0x00aa824e, 0x00a9814e, 0x00ac8353, 0x00ac835a, 0x00aa7f5c, 0x00a17756, 0x009d7455,
- 0x00ab8752, 0x00b6935c, 0x00cba373, 0x00bf966d, 0x00a0755c, 0x00926c5d, 0x0051342d, 0x003a2928, 0x00535158, 0x00686d79, 0x00848c95, 0x009ca2a2, 0x00a7aaa3, 0x00a2a599, 0x00a2a496, 0x00acaf9c,
- 0x00acaf9d, 0x00abb0a1, 0x00b7bdb3, 0x00acb2ad, 0x009fabad, 0x00a7b0a7, 0x00a9afa0, 0x00919688, 0x008a8c7a, 0x008c8875, 0x006b5d4a, 0x004f3b24, 0x00563c1c, 0x00785d38, 0x00987a50, 0x00a08053,
- 0x00a58255, 0x00a08052, 0x00a08053, 0x00a28158, 0x00a98863, 0x00b59270, 0x00b49170, 0x00ae8d6a, 0x00b5916d, 0x00b18f68, 0x00a17d54, 0x009a7441, 0x008f7957, 0x00635a40, 0x00232213, 0x001c2115,
- 0x0027281c, 0x0026271e, 0x00292c24, 0x00272f2a, 0x00273737, 0x002e303c, 0x00302d3c, 0x002c2b38, 0x0028272f, 0x0027282e, 0x002e2e31, 0x00373837, 0x004b4846, 0x005d5954, 0x00766d68, 0x00837a73,
- 0x0089857c, 0x00adaba6, 0x00f5f6f1, 0x00fbffff, 0x00fafeff, 0x00fdffff, 0x00fcfdfd, 0x00d9d8d3, 0x006a5d54, 0x0047332b, 0x00604836, 0x007b5834, 0x008b6345, 0x00865f3c, 0x00845c39, 0x007e5732,
- 0x00794d29, 0x00794e29, 0x00774d26, 0x00784b24, 0x0072441e, 0x0077431a, 0x00733f14, 0x006e3b11, 0x006f3e18, 0x00733d14, 0x00774014, 0x007d4414, 0x00743f18, 0x008f6648, 0x00eacfbb, 0x00fef9ed,
- 0x00fcfcff, 0x00fcfdfc, 0x00fdfdf9, 0x00f0efe3, 0x008e8d75, 0x00514f37, 0x00525039, 0x0054523d, 0x00515244, 0x004f5249, 0x0049504e, 0x003d4b54, 0x0037425a, 0x002f3d5f, 0x00263764, 0x001b3066,
- 0x00162670, 0x000d2169, 0x000b1e65, 0x00091b60, 0x00081959, 0x0006144b, 0x00081746, 0x00021744, 0x00041f50, 0x000d326c, 0x001a448a, 0x00063085, 0x00012a8f, 0x00072d92, 0x000d3291, 0x000c328b,
- 0x000a2a98, 0x00052690, 0x000d2e97, 0x0014359d, 0x0016359b, 0x00183698, 0x00163495, 0x000d2d8a, 0x0008257f, 0x00021c74, 0x0002196c, 0x00021d63, 0x00031e60, 0x00062366, 0x000f2a72, 0x00132d7c,
- 0x001d2a81, 0x00293483, 0x006f70ba, 0x00b5b1e8, 0x00cac0e5, 0x00b2aebd, 0x00504d56, 0x000d0b11, 0x00140f12, 0x007c7a7a, 0x00fbfcfa, 0x00fefdfb, 0x00fefefc, 0x00fdfcfa, 0x00fdfefc, 0x00eeefec,
- 0x00ddcfdd, 0x00dad0e0, 0x00d6d2e1, 0x00cbcede, 0x00cdd2de, 0x00d5d7e2, 0x00d9d8e2, 0x00dcdbe2, 0x00eadfe6, 0x00eae0e6, 0x00dad1d7, 0x00d5ced6, 0x00eae3ea, 0x00faf2f9, 0x00f5eff2, 0x00f1eced,
- 0x00dad4da, 0x00c8c2c9, 0x00e0d7e1, 0x00e9e2ef, 0x00dfd7e8, 0x00ddd8e8, 0x00ede4f4, 0x00c4b4c1, 0x0059534e, 0x00323123, 0x00292110, 0x0043281a, 0x0069302b, 0x00502520, 0x00382419, 0x003a4832,
- 0x004e694c, 0x003b4633, 0x00353e2d, 0x00556c56, 0x00727555, 0x007d4c31, 0x008f4328, 0x00934826, 0x007a582b, 0x00825834, 0x00924b27, 0x00b93b0e, 0x00b14518, 0x00ac4e21, 0x00ab552a, 0x00b15b32,
- 0x00bb5b35, 0x00c45d2c, 0x00d26328, 0x00d66522, 0x00d26514, 0x00d36a24, 0x00d77636, 0x00ab5925, 0x00451307, 0x00180000, 0x00120304, 0x00090210, 0x000a0512, 0x000c050e, 0x00100408, 0x00140102,
- 0x000e060b, 0x00090307, 0x00060007, 0x00040009, 0x0006040f, 0x00040412, 0x00030515, 0x0006091a, 0x000a0f26, 0x0010152d, 0x00181934, 0x00241f42, 0x00333660, 0x00364070, 0x002c3c74, 0x002e4585,
- 0x002e488f, 0x00334d95, 0x003d549e, 0x00475ea7, 0x00596ab3, 0x006178bc, 0x007186c9, 0x008598db, 0x0094a7e1, 0x009cade1, 0x00acbae8, 0x00bfc9f1, 0x00d3d3ef, 0x00cbc6dc, 0x00ddd4e4, 0x00e8dae4,
- 0x00e8e2ec, 0x00e6e3e7, 0x00dddadc, 0x00edeae7, 0x00fefdf9, 0x00fffcfa, 0x00fcf8f9, 0x00fdfcff, 0x00e9e2ef, 0x00a29ab2, 0x00615f82, 0x00596397, 0x005c689f, 0x0054629c, 0x00465792, 0x003d4c88,
- 0x00374175, 0x00364068, 0x003a3e5e, 0x003e3c53, 0x00403946, 0x00473736, 0x0049342e, 0x0048342c, 0x0049382e, 0x0047352c, 0x0046332b, 0x004c352e, 0x00553733, 0x005c3837, 0x00653d3d, 0x006b4142,
- 0x008a3c35, 0x0089453c, 0x00995c57, 0x00805048, 0x005a332a, 0x00855f51, 0x00c69c8d, 0x00d5a695, 0x00e7ac95, 0x00e9a890, 0x00e39c85, 0x00d78f79, 0x00cd866f, 0x00d18d75, 0x00c8866b, 0x00bf7e60,
- 0x00d39178, 0x00e7a58b, 0x00efad92, 0x00e8a88c, 0x00d49578, 0x00c18063, 0x00a96a52, 0x0083503e, 0x00391913, 0x00280c0a, 0x004b3331, 0x0056403b, 0x0033211c, 0x00180e0c, 0x001d191c, 0x0013171d,
- 0x00191920, 0x00121519, 0x000d1117, 0x000a0f17, 0x00030a11, 0x0000050c, 0x00010106, 0x00010100, 0x00020201, 0x00080501, 0x000d0a06, 0x000d0f0f, 0x00181715, 0x00221b19, 0x002d201c, 0x00342420,
- 0x003a2827, 0x006c605d, 0x00e6ddda, 0x00fcfefa, 0x00fefffd, 0x00fafdfc, 0x00fffcfc, 0x00e6e4e2, 0x007b726e, 0x00362922, 0x0039271e, 0x00402c23, 0x004a3725, 0x00523f2c, 0x00594933, 0x005f5138,
- 0x005f4939, 0x005f4839, 0x00564232, 0x0048382a, 0x00362d24, 0x002b2523, 0x00201f22, 0x00191a24, 0x00181d2f, 0x00151b32, 0x00111a37, 0x000d183f, 0x0009173b, 0x0009173c, 0x000b1c3c, 0x000d1f41,
- 0x0013264b, 0x00152c53, 0x001c325e, 0x001e3765, 0x00223a6b, 0x00233b72, 0x0026396f, 0x002b3660, 0x00373348, 0x00353042, 0x002f2c3f, 0x002d304a, 0x004c5981, 0x006472a2, 0x007782b8, 0x008790c8,
- 0x00b3a2a5, 0x00b2aab6, 0x00a1a3bb, 0x008790b9, 0x005f79a7, 0x00456392, 0x003d5e8b, 0x0035547f, 0x00374981, 0x00344482, 0x00253986, 0x00133f99, 0x001a3d9d, 0x002042a0, 0x00224499, 0x001f418c,
- 0x002e426d, 0x005a495f, 0x00a7676a, 0x00d35d52, 0x00f03724, 0x00e23616, 0x00e53b0b, 0x00e73901, 0x00eb4f0b, 0x00d35d28, 0x00cf8465, 0x00d0b9b3, 0x00bad8eb, 0x009cbecd, 0x00789aa1, 0x00566f69,
- 0x00453f42, 0x00393334, 0x00312b29, 0x002a2623, 0x00242118, 0x0027231c, 0x00302b25, 0x00393131, 0x0040373c, 0x0040393f, 0x0045393f, 0x00473338, 0x0043292f, 0x003a1d25, 0x002f1018, 0x0028070f,
- 0x0026050f, 0x0026050d, 0x0025050e, 0x0024060d, 0x0022080e, 0x0026060c, 0x002a0711, 0x002a0b15, 0x002a141c, 0x002c1c27, 0x002e2434, 0x00322f43, 0x00343e54, 0x0038475f, 0x0040536c, 0x00465e77,
- 0x0048627f, 0x004c637c, 0x0055667c, 0x005e6b7b, 0x006c7076, 0x00727071, 0x00746e69, 0x00756c63, 0x0075695d, 0x00716557, 0x00726256, 0x00705e4e, 0x00695644, 0x00624f37, 0x005e4c34, 0x005d4d35,
- 0x00595141, 0x0054524c, 0x0050575a, 0x004a5967, 0x00485c74, 0x0057697c, 0x00abb9c9, 0x00eff9fd, 0x00f4fbfb, 0x00f8fdf7, 0x00fcfffa, 0x00f6f9f2, 0x00aaabab, 0x003d3c44, 0x0021212e, 0x000f1224,
- 0x000c153e, 0x00101e43, 0x00132146, 0x00021436, 0x00000e2e, 0x00031332, 0x000b1b37, 0x0007172f, 0x00273449, 0x00727b8f, 0x00b2b8c2, 0x00afb8a7, 0x00b4beb0, 0x00c2cec3, 0x00c6d3d0, 0x00c8d4d5,
- 0x00cbd2dd, 0x00d1d6de, 0x00dcdbe6, 0x00e3dfec, 0x00ebe1f0, 0x00e7e3e5, 0x00e9eae4, 0x00ebeee8, 0x00edebed, 0x00e4e4e6, 0x00e0dfe3, 0x00e8e8ea, 0x00e8eaeb, 0x00dee2e1, 0x00e1e5e2, 0x00e7ece7,
- 0x00efeff0, 0x00f4f4f5, 0x00ededed, 0x00e9eae9, 0x00e8e8e7, 0x00e6e6e5, 0x00e9e9e9, 0x00efeeef, 0x00f4f3f3, 0x00f0f0f0, 0x00efefef, 0x00edeeee, 0x00ececec, 0x00ebebeb, 0x00ececec, 0x00eaebeb,
- 0x00ebeced, 0x00e8e9e9, 0x00e6e6e7, 0x00e7e6e6, 0x00e8e8e6, 0x00e9e8e5, 0x00eae7e6, 0x00ece8e7, 0x00e9e6e5, 0x00e7e5e3, 0x00e8e7e5, 0x00f3f1ee, 0x00fffdfb, 0x00fffcfa, 0x00fffdfb, 0x00fffdfb,
- 0x00fcfff6, 0x00a7a9a4, 0x000d0d0f, 0x0016151d, 0x002a2729, 0x00322e27, 0x00373127, 0x00393427, 0x003b322e, 0x00362d30, 0x002d2f41, 0x002b3e64, 0x006884af, 0x0090b2e4, 0x0090b7f0, 0x0079a5e8,
- 0x00669aed, 0x005b95ec, 0x004e8ce4, 0x004684e3, 0x003d7edb, 0x003a7ada, 0x003373d0, 0x002c70cc, 0x001c5fbb, 0x000f52ac, 0x001b5bb5, 0x003271ca, 0x004b84df, 0x00457dd8, 0x004175cf, 0x003c6fc7,
- 0x006650ac, 0x0058527f, 0x00454b50, 0x004b5733, 0x0069643e, 0x00815e54, 0x008c5a63, 0x0093586e, 0x00886657, 0x00796c3f, 0x006d632c, 0x00734e28, 0x00694521, 0x0063401c, 0x005b3b15, 0x005c3917,
- 0x00593713, 0x00563814, 0x00543712, 0x005a3b1a, 0x0060431d, 0x006c4a3c, 0x006e4d44, 0x006f4c3d, 0x00724532, 0x006d3f2a, 0x00673c23, 0x005f381d, 0x004c301a, 0x002d1b0e, 0x000b0302, 0x00040101,
- 0x00000300, 0x00000301, 0x00020404, 0x00050809, 0x000e1011, 0x000e1113, 0x000c0e12, 0x000c0e13, 0x000b0e12, 0x000b0e13, 0x000b0d13, 0x000c0e13, 0x000b0c11, 0x000b0c11, 0x000b0c11, 0x000d0e13,
- 0x000f0f16, 0x000f1015, 0x00101216, 0x00101217, 0x00101116, 0x00111214, 0x00121312, 0x00131311, 0x00141414, 0x00131313, 0x00151515, 0x000e0e0e, 0x00585858, 0x00d1d1d1, 0x00fdfdfd, 0x00fdfdfd,
- 0x00e2e2da, 0x00a7a39b, 0x00a19f97, 0x009d9d94, 0x00a29f98, 0x009f9b95, 0x009f9c96, 0x009f9c96, 0x009d9a93, 0x00a29e97, 0x00aaa19c, 0x00b4a8a3, 0x00bdb1ad, 0x00c3b9b5, 0x00c7c0bc, 0x00cbc6c4,
- 0x00cccaca, 0x00cbcacc, 0x00c6c8ca, 0x00c1c5c5, 0x00b8bdbe, 0x00b5bbb9, 0x00afb5b0, 0x00a7aba8, 0x00a5aaa3, 0x00a7aca5, 0x00ced1cd, 0x00f4f8f5, 0x00f7fcfc, 0x00f5f9fd, 0x00eceff8, 0x00e8e9f6,
- 0x00e1e3e9, 0x00e7eaf0, 0x00eef0f6, 0x00eef1f7, 0x00e9ecf3, 0x00e5e9f0, 0x00e4e7ef, 0x00e3e6ee, 0x00e9eaf3, 0x00edeff6, 0x00f1f4f8, 0x00f3f4f8, 0x00f5f5f9, 0x00f8f7fc, 0x00fafafd, 0x00f9fbfd,
- 0x00f8fafb, 0x00f9fbfd, 0x00f9f9fc, 0x00faf9fc, 0x00fefbfe, 0x00fefcff, 0x00f7f5f9, 0x00e8e9ed, 0x00dedce3, 0x00d7d6dd, 0x00d7d5dd, 0x00e0dee6, 0x00f2f0fa, 0x00f6f4fe, 0x00d5d3df, 0x00cbc9d5,
- 0x00dde6eb, 0x00e4e8ef, 0x00e6e5e9, 0x00eeeaed, 0x00f6efed, 0x00fbf5fc, 0x00f5f3fe, 0x00d6daec, 0x0094a6c5, 0x008aa1c3, 0x008a9fc0, 0x00a9b1ce, 0x00dee4fa, 0x00e9e9fa, 0x00f4f2fa, 0x00fbf4f9,
- 0x00dad5d4, 0x00bdb9b5, 0x00cecac6, 0x00cbcac6, 0x00b2b4b1, 0x00b0afb0, 0x00b1aeb2, 0x00b0afb3, 0x00b4b5b6, 0x00b3b4b4, 0x00afb1b0, 0x00b3b2b0, 0x00b0b2ad, 0x00b3b6af, 0x00b2b5ae, 0x00b5b5af,
- 0x00b6b5b5, 0x00b5b3b2, 0x00b5b2b1, 0x00b4b1b0, 0x00b3afaf, 0x00b3afaf, 0x00b3aead, 0x00b1acaa, 0x00afa8aa, 0x00b3aeb0, 0x00bab6ba, 0x00c3c2c7, 0x00cccbd1, 0x00cfcfd4, 0x00d1d1d4, 0x00d0d0d0,
- 0x00c3c4c3, 0x00babcb9, 0x00aaaaa6, 0x00a0a09c, 0x00969491, 0x00b0bbb9, 0x00f5fefd, 0x00fcfdfb, 0x00fff6f9, 0x00fff8ff, 0x00fdfcff, 0x00c8ccd5, 0x006c7077, 0x008c8785, 0x00d0beb7, 0x00f8dfd3,
- 0x00fff3ec, 0x00ffe7dc, 0x00d5927e, 0x00b45035, 0x00d34a21, 0x00e15125, 0x00e75c27, 0x00e86c32, 0x00df8449, 0x00db8f51, 0x00d89459, 0x00d99761, 0x00d1985e, 0x00cd9d5e, 0x00c69f5c, 0x00bba059,
- 0x00bfa65f, 0x00bda05e, 0x00ba9b5d, 0x00bb935c, 0x00b58958, 0x00ad8755, 0x00aa8751, 0x00a9844e, 0x00a8834e, 0x00a7834e, 0x00a6814e, 0x00a88253, 0x00ab845c, 0x00a7805c, 0x009c7554, 0x00967052,
- 0x00ae8a55, 0x00bd9767, 0x00af885f, 0x008f6647, 0x007b5647, 0x0077564d, 0x004c3530, 0x00645653, 0x00a7a6a6, 0x00b9bfc0, 0x00c5cdce, 0x00c1c3cd, 0x00acada9, 0x009c9f95, 0x009fa390, 0x00a9ad96,
- 0x00bcc0aa, 0x00c3c7b8, 0x00c4c9bd, 0x00abafac, 0x00a9b2b5, 0x00c2cac1, 0x00cdd4c1, 0x00c6cbb9, 0x00c0c0ab, 0x00a39e88, 0x0073674e, 0x005b492c, 0x005f4621, 0x0081653c, 0x00997a4e, 0x00a18052,
- 0x00a27f56, 0x00a07f53, 0x009a7b4f, 0x009e7f55, 0x00a98761, 0x00b99670, 0x00c09f77, 0x00bf9f75, 0x00b9986d, 0x00ae8d61, 0x009a7646, 0x00a26f39, 0x00a18460, 0x00897961, 0x00323223, 0x001d231b,
- 0x00242720, 0x00282723, 0x002a2c26, 0x002c322b, 0x002c3635, 0x002f303a, 0x002e2c38, 0x002a2935, 0x00222229, 0x00232227, 0x0029282a, 0x00373231, 0x004b4743, 0x00625954, 0x0079716b, 0x00887d77,
- 0x008b8a80, 0x00aeada8, 0x00f4f4ef, 0x00fbfefe, 0x00fdffff, 0x00fcfdfd, 0x00f9fafb, 0x00e1dfdf, 0x00897d79, 0x007f6f6e, 0x00ac9a90, 0x00c9af98, 0x00d5bca4, 0x00cbb39b, 0x00bfa48b, 0x00b89b82,
- 0x00b3947a, 0x00af8f74, 0x00a28568, 0x009a7a5d, 0x008e6e52, 0x008e6646, 0x00855c39, 0x007d5635, 0x007a5434, 0x00794e2f, 0x00734822, 0x00784721, 0x006f401f, 0x008b6950, 0x00e5d1bf, 0x00fefbf1,
- 0x00fafcfd, 0x00feffff, 0x00fdfdfb, 0x00f0efe5, 0x008c8b77, 0x004c4b35, 0x004c4c36, 0x004f4f3e, 0x004a4e42, 0x004b4e48, 0x00414c4a, 0x0039474e, 0x00303e50, 0x002c3956, 0x0022345d, 0x001a2c61,
- 0x00122464, 0x000d1f63, 0x00081a5e, 0x0008185b, 0x00061554, 0x00041249, 0x00061544, 0x00021742, 0x00021a48, 0x000d2d65, 0x00173a80, 0x00062b80, 0x0003268b, 0x0005278c, 0x00082a8b, 0x00082a86,
- 0x00072885, 0x00072a85, 0x000d308a, 0x0011348c, 0x00103488, 0x000d3184, 0x00062878, 0x0000226e, 0x0001216d, 0x00031f6b, 0x00001b5e, 0x00001549, 0x00001242, 0x00021143, 0x00001445, 0x0001164e,
- 0x000d1f61, 0x0015205d, 0x00363c70, 0x008080a7, 0x00b0afc5, 0x00c4c0ce, 0x00a4a0a9, 0x004f4a4e, 0x001a1616, 0x006d6a69, 0x00ebebe9, 0x00fdfcfb, 0x00fefefd, 0x00fdfcfc, 0x00fdfefe, 0x00edf0ef,
- 0x00d7cce4, 0x00d4cadf, 0x00d4d0dd, 0x00d2d0dc, 0x00cdd4d9, 0x00d1d5dd, 0x00d8dce7, 0x00dadee6, 0x00e6dfe6, 0x00e9dce3, 0x00d9d0d4, 0x00cdc9cf, 0x00e3dee4, 0x00f6eef5, 0x00f4eef2, 0x00f2edf0,
- 0x00dfd9dd, 0x00ccc5cd, 0x00d7d2dc, 0x00e7ddeb, 0x00dcd5e6, 0x00dbcde4, 0x00f1e6fa, 0x00e0dbe6, 0x00747b70, 0x00292315, 0x00342311, 0x00602e21, 0x00782e2c, 0x005a2623, 0x003c271c, 0x00394b35,
- 0x004e674c, 0x00464d3b, 0x002f3926, 0x004f644d, 0x00717d5c, 0x007c5b42, 0x00774129, 0x006e3a1f, 0x006c5d32, 0x007c6143, 0x00844c2b, 0x00ac3a18, 0x00a74f2f, 0x009f5640, 0x00995d49, 0x00976054,
- 0x00a05f50, 0x00ab5f49, 0x00b5603f, 0x00c1653b, 0x00c96d31, 0x00cb7a45, 0x00b26b3e, 0x00713814, 0x00220200, 0x00130003, 0x00070204, 0x0004040f, 0x00050411, 0x000b040a, 0x000e0403, 0x00140202,
- 0x000c0002, 0x000f0303, 0x000f0302, 0x000f0505, 0x000b0205, 0x000b050a, 0x00060408, 0x00050607, 0x00050711, 0x00080a13, 0x000f0d1a, 0x00170d23, 0x00292a48, 0x003d456d, 0x00394b7e, 0x0036508b,
- 0x0037579c, 0x00405ea5, 0x004d66af, 0x005a6fb6, 0x006a7ac0, 0x006e85c7, 0x007d92d4, 0x00859bda, 0x008da3dd, 0x0095a9df, 0x00a1b2e2, 0x00b1bfe9, 0x00c8cded, 0x00c8c9e2, 0x00d3cfe3, 0x00e6deed,
- 0x00e9e6f2, 0x00efedf4, 0x00e6e3e6, 0x00f2f1ef, 0x00fcfbf8, 0x00fdfafa, 0x00fbf8f9, 0x00fcfcfd, 0x00dad6e2, 0x00938ca1, 0x00625f7d, 0x00606797, 0x005e6696, 0x00586295, 0x00465486, 0x003f4d7d,
- 0x003c4472, 0x003d446a, 0x003e4260, 0x003c3d54, 0x003c3648, 0x00403436, 0x0040312a, 0x0040322a, 0x0042352f, 0x003f322e, 0x003e2f2d, 0x00423030, 0x004a3138, 0x0050323b, 0x005a3842, 0x00623e4a,
- 0x00843c3d, 0x00864444, 0x008f5451, 0x00885651, 0x00754b3f, 0x008e6557, 0x00b98e7c, 0x00c49280, 0x00e0a38d, 0x00e9a88f, 0x00db977d, 0x00c58067, 0x00c17b61, 0x00d38d74, 0x00cb866d, 0x00bb765a,
- 0x00c48368, 0x00e2a086, 0x00eba98c, 0x00e5a486, 0x00cf8e70, 0x00bf7b5b, 0x00a56346, 0x0088523c, 0x004f2c23, 0x00452722, 0x005d4441, 0x00503a34, 0x001f0e09, 0x00130a0a, 0x00120f16, 0x000d111d,
- 0x0012141f, 0x000d111b, 0x000a0e1a, 0x00080e1a, 0x00030a17, 0x00010711, 0x00020409, 0x00000202, 0x00030402, 0x000a0902, 0x00130e0a, 0x00171417, 0x00241c1d, 0x002f201f, 0x003a2624, 0x00452e29,
- 0x004a332f, 0x0081706c, 0x00f0e6e1, 0x00fffefb, 0x00fdfffc, 0x00fcfefe, 0x00fcfdfb, 0x00dadad8, 0x0069605a, 0x0033251d, 0x0039271c, 0x003d2a1e, 0x00473523, 0x004b3c29, 0x00534531, 0x00584c38,
- 0x005a4736, 0x00594738, 0x00504132, 0x00423528, 0x00322922, 0x0029211f, 0x00201d1f, 0x001b1a22, 0x001a1c2b, 0x00191c2e, 0x00131b2f, 0x000b1733, 0x00081531, 0x00081635, 0x000b1c3a, 0x000f2043,
- 0x00142a4e, 0x00183057, 0x001b3560, 0x001b3663, 0x001c3868, 0x0021386d, 0x0023366a, 0x002a3460, 0x00312f4a, 0x002d2c47, 0x00272948, 0x00303a62, 0x004b5f93, 0x005a6ea8, 0x006f81bf, 0x008495d3,
- 0x00a59695, 0x00a4999d, 0x00b0aeb8, 0x00afafc5, 0x008c9eb7, 0x00809bbb, 0x00688ab4, 0x003d6597, 0x00274294, 0x002b42a0, 0x002540a3, 0x002049a8, 0x0029439f, 0x00364298, 0x003f418b, 0x004a3e77,
- 0x0064425b, 0x008d4951, 0x00be564d, 0x00e24d37, 0x00fb3a1d, 0x00f03a13, 0x00ec3a07, 0x00e83700, 0x00e4490e, 0x00d35c30, 0x00d58b6c, 0x00ceb2ac, 0x00c7dde7, 0x00b4ccd6, 0x009eb6b8, 0x007f8f88,
- 0x00423e3c, 0x0038322e, 0x00322b24, 0x002c241c, 0x00251f12, 0x00271f15, 0x002b211b, 0x00312525, 0x00342c31, 0x00332d36, 0x00372c33, 0x00392528, 0x00361c23, 0x0030141d, 0x002b0b15, 0x00280611,
- 0x0025040f, 0x0026050d, 0x0026060d, 0x0024070f, 0x0023090c, 0x0025060e, 0x00260610, 0x00270914, 0x002c1721, 0x002d1f2c, 0x00302739, 0x00333247, 0x0035405a, 0x00394964, 0x003f5370, 0x00455d7b,
- 0x0049617f, 0x004f647e, 0x0058677d, 0x005f697a, 0x006c6c73, 0x00726e6f, 0x00746c67, 0x0073685e, 0x00716555, 0x006d5f50, 0x006b5b4c, 0x006a5848, 0x0066533c, 0x00634f36, 0x00645135, 0x00645238,
- 0x00605741, 0x005e594f, 0x005a5f5b, 0x00556267, 0x00536374, 0x006a7884, 0x00b9c6cf, 0x00f3fbfd, 0x00f6fcfb, 0x00fbfffb, 0x00f9fcf7, 0x00f4f7f2, 0x00a1a0a3, 0x0041414b, 0x00434555, 0x00383a4e,
- 0x00151e4b, 0x00111b44, 0x000d1a3d, 0x00030f2c, 0x00000c1f, 0x00061025, 0x00051428, 0x00051429, 0x00182540, 0x00596583, 0x00acb5c8, 0x00b3b8ab, 0x00b7bcb3, 0x00c5ccc5, 0x00c4d0cd, 0x00c8d4d5,
- 0x00ccced7, 0x00d3d2da, 0x00ddd8db, 0x00e6dfe4, 0x00eee0e5, 0x00ede5e2, 0x00eceae0, 0x00eceae6, 0x00e9e8e6, 0x00e4e3e2, 0x00e2e2e2, 0x00e9eae9, 0x00e8e9e7, 0x00e0e1de, 0x00e1e3e0, 0x00e6e9e5,
- 0x00f4f5f4, 0x00f5f6f5, 0x00ededed, 0x00ececeb, 0x00ececeb, 0x00ebeaeb, 0x00eeedee, 0x00edecee, 0x00f0efef, 0x00eeeeee, 0x00ebecec, 0x00eeefef, 0x00edecec, 0x00ebebeb, 0x00eaeaea, 0x00eaebeb,
- 0x00e8e9e8, 0x00e6e7e7, 0x00e4e4e4, 0x00e5e5e4, 0x00e9e9e8, 0x00ebe9e8, 0x00ebe8e7, 0x00ede8e8, 0x00e8e6e5, 0x00e6e4e2, 0x00e6e5e2, 0x00f2efec, 0x00fffcfa, 0x00fffcfa, 0x00fefcfa, 0x00fdfcfb,
- 0x00f7fef4, 0x00a5a8a5, 0x000b0b0d, 0x0017141a, 0x002c2728, 0x00352e26, 0x00363023, 0x00353022, 0x00362f2e, 0x0039313a, 0x00333b51, 0x00506fa2, 0x008fb7eb, 0x0088b4f0, 0x006d9fe1, 0x005c91dd,
- 0x004c87e0, 0x004583e1, 0x003d7edd, 0x00397bdd, 0x00397bdd, 0x003a7bdd, 0x003072cf, 0x002c70cd, 0x003174d3, 0x00296aca, 0x001254b3, 0x001353b3, 0x002765c9, 0x00326dd2, 0x00326dcf, 0x00376fd1,
- 0x004262c4, 0x003f5399, 0x002a3458, 0x00342a31, 0x00422d1e, 0x00462d2b, 0x00482f2f, 0x004e3337, 0x00513a2b, 0x00523c1f, 0x0052391a, 0x00563021, 0x00563222, 0x005c3722, 0x00623b25, 0x00693e2b,
- 0x006a3e29, 0x00693f29, 0x00653d25, 0x0067402a, 0x00714a36, 0x007d5445, 0x007c543f, 0x007b4d35, 0x00764426, 0x00703f21, 0x0069381e, 0x00603523, 0x00442a20, 0x002b1e19, 0x000b0909, 0x00010604,
- 0x00010404, 0x00020505, 0x00040707, 0x00090c0d, 0x000c0e10, 0x000f1114, 0x000d0e12, 0x000c0e12, 0x000b0e13, 0x000b0e13, 0x000b0d13, 0x000c0e13, 0x000b0d11, 0x000b0d11, 0x000c0d11, 0x000e0e13,
- 0x000f0f15, 0x00111015, 0x00101217, 0x00101217, 0x000f1216, 0x00121315, 0x00131413, 0x00141412, 0x00141414, 0x00171717, 0x00171717, 0x00111111, 0x005d5d5d, 0x00d4d4d4, 0x00fcfcfc, 0x00fcfcfc,
- 0x00fefdfb, 0x00f6f5f3, 0x00f6f6f3, 0x00f0f1ed, 0x00f9f9f6, 0x00f7f5f2, 0x00f8f6f3, 0x00f8f7f2, 0x00f7f7f6, 0x00f8f7f4, 0x00fbf6f4, 0x00fcf3f2, 0x00fff6f4, 0x00fbf5f3, 0x00fbf7f6, 0x00fcfbf7,
- 0x00fcf9fa, 0x00f8f7f7, 0x00f7f9f7, 0x00f6faf8, 0x00f5faf7, 0x00f3f8f5, 0x00f7fbf8, 0x00f4f8f4, 0x00fbfcf8, 0x00f2f6ef, 0x00f5f9f2, 0x00f7fdf7, 0x00f5f8f7, 0x00fbfcff, 0x00f8f8fc, 0x00fcfdff,
- 0x00fdfdff, 0x00fafbff, 0x00f7f8fd, 0x00f7f9fd, 0x00fafcff, 0x00fafcfe, 0x00f8fbfd, 0x00f7fbfd, 0x00f9fbfe, 0x00f9fcfe, 0x00fbfefe, 0x00fcfdfd, 0x00fcfcfd, 0x00fcfbfd, 0x00fcfcfe, 0x00fcfdfe,
- 0x00fdfcfd, 0x00fdfefe, 0x00fcfdfc, 0x00fcfdfc, 0x00fdfcfd, 0x00fdfbfc, 0x00fdfdfc, 0x00fcfdfc, 0x00f5f5f9, 0x00f7f7f9, 0x00fafafd, 0x00fbfbfc, 0x00fbfbfd, 0x00fbfbfd, 0x00fcfcff, 0x00f8f8fb,
- 0x00fafefe, 0x00f8fcfc, 0x00f9f9fd, 0x00fffdfd, 0x00fefaf7, 0x00fdfbf9, 0x00f9f8f9, 0x00f7faff, 0x00edf6ff, 0x00eaf9fd, 0x00eef8fc, 0x00f9fbfb, 0x00fbfaff, 0x00fefeff, 0x00f9f7fb, 0x00fcfbfc,
- 0x00fcf6f6, 0x00fcf9f7, 0x00faf8f7, 0x00fbfafa, 0x00f4f5f5, 0x00fafafd, 0x00f6f6fa, 0x00f5f7fa, 0x00faf9fd, 0x00f8f8fa, 0x00f7f7f8, 0x00f5f9f8, 0x00f7f9f8, 0x00f6faf8, 0x00f5f8f6, 0x00f3f9f5,
- 0x00f6f7f8, 0x00f5f6f7, 0x00f6f6f8, 0x00f8f6f8, 0x00f9f6f7, 0x00f9f5f6, 0x00f9f6f7, 0x00f9f7f8, 0x00f9f6f6, 0x00f7f5f6, 0x00f9f8fb, 0x00f9f9fc, 0x00fcfcfe, 0x00f9f9fb, 0x00fafafb, 0x00faf9fa,
- 0x00f9f8f8, 0x00fafbf9, 0x00f8f8f5, 0x00f8f8f3, 0x00f7f7f2, 0x00ecf9f5, 0x00effcfa, 0x00f8fbfa, 0x00fffafa, 0x00fef9fa, 0x00fdf9fd, 0x00cccad1, 0x00747681, 0x008a8c8f, 0x00cbc5c3, 0x00efeae0,
- 0x00fff8f9, 0x00fbefe8, 0x00cc9388, 0x009b482d, 0x00ba3d14, 0x00cc4715, 0x00df511b, 0x00e55922, 0x00dd622d, 0x00de6c38, 0x00df7b49, 0x00d78753, 0x00d38e54, 0x00ce9657, 0x00c89b59, 0x00be9a56,
- 0x00bea15c, 0x00bb9d5b, 0x00b9985b, 0x00bb945b, 0x00b78755, 0x00a8844f, 0x00a78550, 0x00a68450, 0x00a6844d, 0x00a3824d, 0x00a68452, 0x00a38252, 0x0097744a, 0x008e6b45, 0x00967150, 0x00997255,
- 0x00a38153, 0x00a8865d, 0x00926b4d, 0x00634029, 0x0056362d, 0x006d564e, 0x0094857c, 0x00c6bdb6, 0x00dcddd1, 0x00d1d9cb, 0x00c1c8c2, 0x00a4a5ac, 0x00959496, 0x00a2a49b, 0x00cdd0be, 0x00e1e5cc,
- 0x00eaecd4, 0x00eaefda, 0x00e6e8dc, 0x00e3e4dc, 0x00eaeaed, 0x00e3e9db, 0x00cccfbf, 0x00d3d5c2, 0x00d2cfba, 0x00a39c82, 0x007a6b4d, 0x006f5b39, 0x00755a31, 0x00886a3f, 0x00977748, 0x00a28150,
- 0x00a48159, 0x00a07e55, 0x009b7950, 0x0099784f, 0x009f7d54, 0x00a9885d, 0x00b9996c, 0x00c2a476, 0x00bd996f, 0x009e8153, 0x00976e3f, 0x00a96f3b, 0x00b38e6d, 0x00a3927c, 0x00555149, 0x00272b2a,
- 0x00242927, 0x00282a27, 0x002f2c2a, 0x00302f2b, 0x00323434, 0x002e3038, 0x002b2b37, 0x00282831, 0x00231e28, 0x001f1c21, 0x00292426, 0x0034312e, 0x004f4845, 0x00635b56, 0x007d726c, 0x008b7f78,
- 0x008c8982, 0x00b0aea9, 0x00f5f5f2, 0x00fcfffe, 0x00fafffb, 0x00fbfdfb, 0x00fcfefc, 0x00e1dde0, 0x008e848a, 0x00898081, 0x00c5b9b7, 0x00e5dece, 0x00fef9ec, 0x00fefaeb, 0x00fef5ea, 0x00fdf4e7,
- 0x00fceedf, 0x00fcecdd, 0x00f7e8d7, 0x00f3e2d2, 0x00eedfcd, 0x00efd7c0, 0x00e9d0b6, 0x00e3cab6, 0x00dbc1b1, 0x00d3b6a0, 0x00cdac93, 0x00c6a183, 0x00b19076, 0x00b59e8c, 0x00ebdfd5, 0x00faf9f5,
- 0x00f9fcff, 0x00fafefb, 0x00fdfefa, 0x00efeee5, 0x00989686, 0x005a5848, 0x00555544, 0x00555645, 0x0051534b, 0x004c504b, 0x00444b4a, 0x0039464a, 0x002e3a49, 0x0023324b, 0x0019294d, 0x00132452,
- 0x000d1d56, 0x00081752, 0x00071452, 0x00061150, 0x00050f4d, 0x00010b43, 0x00051143, 0x00031341, 0x00051a47, 0x000b265d, 0x00132f73, 0x00062477, 0x00072586, 0x00052284, 0x00082584, 0x00082381,
- 0x00032a7f, 0x00062c82, 0x000a2e86, 0x000a2d83, 0x000c3183, 0x000a2f7e, 0x00062877, 0x00022670, 0x00032a75, 0x00022b72, 0x00072b6d, 0x0007275c, 0x00031f4e, 0x00001844, 0x0000113e, 0x00000b3d,
- 0x00010b43, 0x00051245, 0x0006113b, 0x00222c4b, 0x007c808e, 0x00a5a5af, 0x00c2bdc6, 0x00aca9b0, 0x00595657, 0x00646260, 0x00e0e1dd, 0x00fbfbf7, 0x00fcfdfa, 0x00fcfcfc, 0x00fbfdfe, 0x00f6f8f9,
- 0x00e2d5f3, 0x00d5c8db, 0x00dacdd8, 0x00dcd3d5, 0x00d5d2d3, 0x00d4d9dc, 0x00dce1e9, 0x00d9e0e8, 0x00e4dee8, 0x00ebdee4, 0x00e2d6db, 0x00cfcad2, 0x00d9d5db, 0x00efeaef, 0x00f4eef3, 0x00f1eaee,
- 0x00e5dde4, 0x00cdc9d1, 0x00d7d1dd, 0x00ded9e7, 0x00dbd4e5, 0x00decce4, 0x00e6d7ed, 0x00eaeef4, 0x00b4c2b3, 0x00514b37, 0x00452310, 0x00713120, 0x007b2c27, 0x00532319, 0x0039271a, 0x003b4d36,
- 0x00526b53, 0x004c5640, 0x00313524, 0x00496044, 0x006b7e5f, 0x006d5e48, 0x00532f1e, 0x004d2c18, 0x00605e40, 0x0076694c, 0x007d5137, 0x009f462f, 0x008b493f, 0x00704440, 0x00533237, 0x003b2430,
- 0x004a2535, 0x005a2c31, 0x00753e38, 0x00965641, 0x00b87853, 0x00b57f59, 0x007f5031, 0x00381306, 0x00110101, 0x00090103, 0x0009060e, 0x00050911, 0x0005050f, 0x00070407, 0x000d0506, 0x000e0503,
- 0x00190200, 0x00250e06, 0x00301a11, 0x002e1c14, 0x001d0f09, 0x000d0502, 0x000b0605, 0x000b0902, 0x000c0e0d, 0x00101310, 0x00161316, 0x00170913, 0x00110d20, 0x00252b4b, 0x0041527c, 0x00526da1,
- 0x005773b7, 0x005370b5, 0x005670b6, 0x006075ba, 0x00707ec1, 0x007187c6, 0x007a91cf, 0x007c97d0, 0x00859bd9, 0x008ba2d9, 0x0097aade, 0x00a1b1e0, 0x00b4bce0, 0x00c1c5e5, 0x00cdcdea, 0x00d7d7f0,
- 0x00e8e5f4, 0x00f5f3fd, 0x00ebe8f0, 0x00f6f5f6, 0x00fbfdf8, 0x00fcfcf8, 0x00fbfaf7, 0x00fdfffd, 0x00cfc6d2, 0x007f7787, 0x005e5872, 0x005b5b86, 0x005a5b86, 0x00545785, 0x00485079, 0x00434c74,
- 0x0046496f, 0x00424867, 0x0040445e, 0x003e3d54, 0x003b3548, 0x003b3137, 0x00382d2a, 0x00362d29, 0x00392e30, 0x00362c30, 0x00342a30, 0x00372b34, 0x003d2d3b, 0x00432f40, 0x004d3549, 0x00543a51,
- 0x007e3d4d, 0x0082464f, 0x00854c54, 0x00835151, 0x0090645d, 0x00976b5c, 0x00b0806f, 0x00b9836c, 0x00d89a82, 0x00dd9b81, 0x00c7836b, 0x00ab654f, 0x0099513a, 0x00ab644b, 0x00a25d43, 0x0097543a,
- 0x00b16f53, 0x00d59377, 0x00e09d80, 0x00d59475, 0x00c28262, 0x00b2704d, 0x00a36342, 0x008f5a3f, 0x006a463c, 0x005f403a, 0x00634a45, 0x003e2822, 0x00140300, 0x0011080b, 0x000f0c16, 0x00101522,
- 0x000f1223, 0x000c101f, 0x000a0f1e, 0x00080e1d, 0x00030b19, 0x00020a15, 0x0002070e, 0x00000508, 0x00070607, 0x000e0d08, 0x00181411, 0x001e1b1d, 0x002e2323, 0x003c2a27, 0x0048312b, 0x0050362e,
- 0x005a4039, 0x0095827d, 0x00fbedeb, 0x00fefcfb, 0x00fcfefc, 0x00f8fefc, 0x00fafcf8, 0x00cbcbc8, 0x00584c48, 0x00322319, 0x003a271b, 0x00382616, 0x00433221, 0x00453723, 0x004b3f2d, 0x004e4430,
- 0x00544232, 0x00524234, 0x004a3e32, 0x0041342b, 0x00322821, 0x0029211e, 0x0022201f, 0x00202022, 0x0021212d, 0x0021232e, 0x001b2130, 0x00101c2e, 0x000c182e, 0x000d1b31, 0x000f203b, 0x00122343,
- 0x00192c52, 0x001a335a, 0x001e3561, 0x001a3565, 0x001a3567, 0x001c3666, 0x00213262, 0x0026315b, 0x002a2a4f, 0x0022284c, 0x00222c56, 0x00293e6f, 0x00274482, 0x00203b7f, 0x00445ea4, 0x008096dd,
- 0x00a6a4a5, 0x008f8e8a, 0x009b9595, 0x00a39d9f, 0x00a0a6a9, 0x009daebe, 0x0087a0be, 0x005c7dae, 0x003b58b1, 0x003850b9, 0x00384ab1, 0x003950a0, 0x0055509b, 0x00674f90, 0x00774a7d, 0x00864766,
- 0x00ad4f56, 0x00c65347, 0x00e0533f, 0x00f24726, 0x00fd3c17, 0x00fb4013, 0x00f73c0b, 0x00f13a07, 0x00db420e, 0x00c85b2f, 0x00df9880, 0x00caafa7, 0x00bdcad4, 0x00c2d2d8, 0x00c3d0d1, 0x00afb6ad,
- 0x00524c48, 0x003c362f, 0x00383128, 0x00352b1e, 0x00302317, 0x002b1f12, 0x002a1e17, 0x002b201d, 0x002d2228, 0x0029202c, 0x002b1e29, 0x002d181e, 0x002a1217, 0x00260d13, 0x00240810, 0x00260610,
- 0x00290311, 0x0026030d, 0x0023030d, 0x0023050c, 0x0022070d, 0x0024070c, 0x00260a12, 0x00280f17, 0x002c1929, 0x002f2334, 0x00322c40, 0x0035364e, 0x00384460, 0x003a4b6a, 0x003e5373, 0x00415a7b,
- 0x00475c7d, 0x004d607c, 0x0057657c, 0x005d6779, 0x00686970, 0x006e696a, 0x00726763, 0x0071635a, 0x006d5e52, 0x00675946, 0x00655543, 0x0062523d, 0x00615038, 0x00645136, 0x0068563b, 0x006a5b3c,
- 0x006f624b, 0x006a6455, 0x00666962, 0x00616c6c, 0x005f6d78, 0x0076838a, 0x00c9d6d9, 0x00f2fefc, 0x00f9fcfc, 0x00fcfefa, 0x00fcfdfa, 0x00eeefeb, 0x00858488, 0x002d2d39, 0x00404253, 0x00404156,
- 0x00191e4b, 0x000e153e, 0x000a1234, 0x00040f28, 0x00000614, 0x00000816, 0x00021022, 0x0006172e, 0x00081537, 0x00364369, 0x00999fbc, 0x00b8b6b5, 0x00bbbebe, 0x00c6cac7, 0x00c9cdca, 0x00ccd1cc,
- 0x00cccecc, 0x00d3d2ce, 0x00ddd5d3, 0x00e7dbd7, 0x00f2e1df, 0x00eae2dc, 0x00eaeae5, 0x00e9ede8, 0x00eae5e4, 0x00e3e2e0, 0x00e2e2e1, 0x00e8e9e7, 0x00e8e8e6, 0x00e3e2dd, 0x00e3e2dd, 0x00eaeae6,
- 0x00f0efef, 0x00f5f4f4, 0x00f2f1f2, 0x00f2f2f2, 0x00ebebeb, 0x00e9e9e9, 0x00ecedec, 0x00edeeed, 0x00efefef, 0x00eeefee, 0x00eeefef, 0x00ededed, 0x00edeced, 0x00ebeaea, 0x00ebeaea, 0x00eaebea,
- 0x00eae7e8, 0x00e6e5e5, 0x00e4e4e4, 0x00e5e6e6, 0x00e9eaea, 0x00ecebeb, 0x00eceae8, 0x00ebe9e5, 0x00e7e5e4, 0x00e6e3e1, 0x00e6e3e1, 0x00f0edeb, 0x00fdfdfa, 0x00fdfdfb, 0x00fcfdfb, 0x00fcfcfb,
- 0x00f9fffc, 0x00a6a8a8, 0x000e0c0f, 0x001b151b, 0x00312827, 0x00372e25, 0x00342e23, 0x00343025, 0x00312e35, 0x00363643, 0x004e5e81, 0x0073a0da, 0x007fafef, 0x006599dc, 0x00558ed8, 0x004789d6,
- 0x004185de, 0x003c82de, 0x00377cdd, 0x00357adb, 0x00347adc, 0x00367bd7, 0x00387ad6, 0x003171d0, 0x00316fcf, 0x003575d7, 0x003270d3, 0x002465c7, 0x00215fc4, 0x002967cc, 0x002e69ce, 0x00316ed3,
- 0x003476cf, 0x003761ae, 0x00293577, 0x00241645, 0x00260819, 0x001c0709, 0x0020100b, 0x00201a0d, 0x002a190e, 0x00351d0e, 0x0046251b, 0x00512d2a, 0x00643c35, 0x006e4138, 0x00794a3e, 0x00815144,
- 0x00844f3d, 0x007f4b36, 0x007b4735, 0x007c4b35, 0x00845541, 0x008b5743, 0x0089533a, 0x00854d29, 0x007d451f, 0x00733d1b, 0x006c391f, 0x005c3227, 0x003e282d, 0x0028242c, 0x000f151c, 0x0000080f,
- 0x0003040a, 0x0005070b, 0x000b0c0f, 0x000b0d10, 0x000c0e12, 0x000d0f13, 0x000c0e11, 0x000b0e0f, 0x000d0e13, 0x000d0e12, 0x000c0d11, 0x000c0e11, 0x000b0d11, 0x000a0d11, 0x000a0d10, 0x000b0e10,
- 0x00101016, 0x00101116, 0x000f1217, 0x00101117, 0x000f1215, 0x00121313, 0x00131413, 0x00141313, 0x00161616, 0x00181818, 0x00181818, 0x00101010, 0x00646464, 0x00d7d7d7, 0x00fcfcfc, 0x00fdfdfd,
- 0x00fdfdfd, 0x00fefeff, 0x00fefeff, 0x00fdfdfe, 0x00fdfdfc, 0x00fdfcfb, 0x00fffefe, 0x00fefdfd, 0x00fffdff, 0x00fffefe, 0x00fdfcfc, 0x00fdfbfb, 0x00fdfbfd, 0x00fefcfe, 0x00fdfcfd, 0x00fefbfd,
- 0x00fffefc, 0x00fdfdfb, 0x00fcfefa, 0x00f9fef9, 0x00fafefc, 0x00fafdfd, 0x00fcfefe, 0x00fdfefe, 0x00fdfffa, 0x00fdfffa, 0x00fcfff8, 0x00fcfff9, 0x00fcfefb, 0x00fdfefd, 0x00fefefd, 0x00fefefd,
- 0x00fefefe, 0x00fefdff, 0x00fefeff, 0x00fefeff, 0x00fffeff, 0x00fefefe, 0x00fefefd, 0x00fffeff, 0x00fefffd, 0x00fdfffd, 0x00fdfefc, 0x00fdfdfb, 0x00fefefd, 0x00fffefd, 0x00fefefc, 0x00fdfdfd,
- 0x00fdfffd, 0x00fbfdfb, 0x00fdfefd, 0x00fefffd, 0x00fdfdfc, 0x00fdfdfb, 0x00fcfdfa, 0x00fdfefb, 0x00fcfefd, 0x00fdfefe, 0x00fdfefc, 0x00fdfefc, 0x00fdfefc, 0x00fdfdfd, 0x00fdfdfd, 0x00fefdff,
- 0x00fafdfe, 0x00fcfefc, 0x00fbfdfc, 0x00fdfefb, 0x00fffcfb, 0x00fcfdf6, 0x00fdfcfb, 0x00fbfdfe, 0x00fbfdff, 0x00f9fefe, 0x00fbfdfd, 0x00fdfbfd, 0x00fffcff, 0x00fdfbff, 0x00fdfafd, 0x00fffcfe,
- 0x00fdfbf9, 0x00fdfcfa, 0x00fcfdfb, 0x00fcfdfc, 0x00fffdfe, 0x00fdfdfe, 0x00fcfefe, 0x00fcfdfe, 0x00fdfdfd, 0x00fefdfd, 0x00fcfdfc, 0x00fbfdfb, 0x00f9fefd, 0x00fbfeff, 0x00f9fefe, 0x00f7fefe,
- 0x00f9fefc, 0x00fafdfd, 0x00fafcfd, 0x00fbfcfd, 0x00fefdfd, 0x00fefefd, 0x00fdfefd, 0x00fdfeff, 0x00fefdfe, 0x00fdfcff, 0x00fdfdff, 0x00fdfefe, 0x00fefefe, 0x00fdfefc, 0x00fefefc, 0x00fffefe,
- 0x00fefdfb, 0x00fcfefc, 0x00fdfcfa, 0x00fefffc, 0x00fefefa, 0x00f3fefb, 0x00f4fefc, 0x00fafdfc, 0x00fdfcf7, 0x00fdfaf9, 0x00fdf9fd, 0x00ccc9d1, 0x00727482, 0x0080868d, 0x00c3c6c9, 0x00e6ece6,
- 0x00fbf8fa, 0x00fef6f5, 0x00cfa9a1, 0x00884d36, 0x00a24016, 0x00b64311, 0x00d34f19, 0x00e4521f, 0x00ed4f24, 0x00f2532d, 0x00e85d35, 0x00d0713e, 0x00d38047, 0x00d28d4f, 0x00cf9552, 0x00c0954e,
- 0x00ba9c53, 0x00b99b57, 0x00ba9559, 0x00b89259, 0x00b38654, 0x00a5834f, 0x00a4834f, 0x00a48551, 0x00a4854d, 0x00a4844f, 0x00a07f4d, 0x00947344, 0x0089673e, 0x0083603c, 0x008b6747, 0x008c654b,
- 0x008b6747, 0x00865f47, 0x00765140, 0x005b382e, 0x0048302c, 0x0075645b, 0x00beb5ab, 0x00ddd9cb, 0x00d3dac1, 0x00c3ceb1, 0x00a2a897, 0x00a29fa7, 0x00c6c3c5, 0x00dfdfd7, 0x00f1f5e1, 0x00f1f5db,
- 0x00eff4d5, 0x00eff2d7, 0x00f7f4e3, 0x00f8f4e7, 0x00faf3eb, 0x00f5f6e4, 0x00dfe0cc, 0x00d5d3bc, 0x00ccc5ab, 0x00a69b7d, 0x007b6947, 0x0079653e, 0x00886d41, 0x008e7043, 0x009c784a, 0x00a67e50,
- 0x009e7e58, 0x009b7954, 0x0098764f, 0x0097764d, 0x009d7b50, 0x00a68658, 0x00b99a6b, 0x00c2a274, 0x00b18f64, 0x00886a3c, 0x008e6536, 0x00ae7041, 0x00b69076, 0x00b19e90, 0x00827e80, 0x00474c56,
- 0x002f393b, 0x002d3032, 0x002f2d2e, 0x00373333, 0x00393639, 0x0030333a, 0x002a2d36, 0x00262930, 0x00221f25, 0x001e191d, 0x00272122, 0x00372e2c, 0x00514844, 0x00675a56, 0x007e736c, 0x008d8279,
- 0x0087887f, 0x00adada6, 0x00f5f4f0, 0x00fcfefc, 0x00fcfffd, 0x00fcfefd, 0x00fbfcfc, 0x00dfdbdf, 0x008b848c, 0x00857a83, 0x00c1bac0, 0x00dce1df, 0x00f9fdfc, 0x00fcfffe, 0x00fdfdfd, 0x00fefefd,
- 0x00fcfdfb, 0x00fdfefa, 0x00fefef9, 0x00fdfbf8, 0x00fdfdf7, 0x00fdfaed, 0x00fdf8ea, 0x00fdf7f0, 0x00faf4ed, 0x00faf1e8, 0x00f9efdf, 0x00f7ecda, 0x00f3ebd9, 0x00f1ebe2, 0x00f8f5f3, 0x00f9fcfe,
- 0x00f5fcfa, 0x00fafffd, 0x00fcfffc, 0x00f6f5ef, 0x00c9c7bc, 0x00aca99e, 0x00a2a194, 0x009b9b91, 0x008c8e88, 0x0080837f, 0x00727877, 0x0061676c, 0x004e5966, 0x00404b61, 0x00303d5a, 0x00283659,
- 0x001c2b58, 0x00182553, 0x00141e50, 0x00111a4c, 0x000b1347, 0x00060d44, 0x00061044, 0x00071341, 0x00061b41, 0x000e2455, 0x00102562, 0x00031864, 0x00041873, 0x00061a76, 0x00081c77, 0x00091c77,
- 0x00002079, 0x0002237b, 0x0002277f, 0x00052c84, 0x00082e83, 0x00083081, 0x00022a7b, 0x00022778, 0x00002879, 0x00002a77, 0x00032979, 0x00082773, 0x0006276a, 0x0004245e, 0x00001d54, 0x0000164e,
- 0x00001149, 0x00020c42, 0x00010a35, 0x00000c2a, 0x002b3948, 0x00676975, 0x00948f9a, 0x00aba7b2, 0x009d9e9f, 0x00979796, 0x00d3d4d0, 0x00f9fbf5, 0x00fafdf8, 0x00fafcf8, 0x00fafdfb, 0x00f7fbf9,
- 0x00e2d2ed, 0x00ddc6d4, 0x00e5cbcf, 0x00efcfc9, 0x00e8d5ce, 0x00ded7d6, 0x00dcdee3, 0x00dbe4ec, 0x00e5e2eb, 0x00ebe2e6, 0x00dfd5d9, 0x00cfc9d2, 0x00d8d1d9, 0x00ede7ed, 0x00f6eff5, 0x00f1e8ef,
- 0x00e6dfe7, 0x00cec9d3, 0x00d4d0dd, 0x00dfd8e7, 0x00dbd3e4, 0x00dccae2, 0x00dfd1e8, 0x00eaeff5, 0x00dbe7d5, 0x009a8973, 0x00552712, 0x006f2512, 0x006d251b, 0x004c2215, 0x003b2e1f, 0x003d4c3a,
- 0x00506d55, 0x00535945, 0x002f321d, 0x00445939, 0x00647f5e, 0x005b5643, 0x003d281b, 0x0048392a, 0x005b674b, 0x006f6a4c, 0x00745340, 0x00793b39, 0x00532b34, 0x00332234, 0x00241f3b, 0x000e1539,
- 0x00131236, 0x002b1f3a, 0x004b3247, 0x00624147, 0x00704d45, 0x00674b34, 0x003d2613, 0x00130400, 0x00060400, 0x00020306, 0x0001080c, 0x0000050b, 0x0000070c, 0x00030704, 0x00080401, 0x000b0302,
- 0x002d0f01, 0x004a2c1d, 0x00604335, 0x00624b3d, 0x00403125, 0x00160e04, 0x000a0500, 0x00090601, 0x000a0d04, 0x000d1007, 0x000f0c07, 0x00120606, 0x000b0510, 0x000c0e26, 0x00273454, 0x00495f8b,
- 0x00607bb3, 0x005d76b1, 0x00566cab, 0x00576dab, 0x006572b3, 0x006479b7, 0x006880bc, 0x00728ac5, 0x007b93d0, 0x00839bd5, 0x008ca1d8, 0x0095a7d9, 0x00a3aed8, 0x00b0b8de, 0x00bec2e4, 0x00c5c8e9,
- 0x00dde0ee, 0x00f1f0ff, 0x00ebe9f4, 0x00f9f8fa, 0x00fefefc, 0x00fefffb, 0x00f9faf4, 0x00fdfefe, 0x00c0b9c1, 0x006e6873, 0x005a5369, 0x00575476, 0x00595678, 0x00575478, 0x00515172, 0x004e4e6e,
- 0x004c4c65, 0x0047485e, 0x00434358, 0x003f3d53, 0x003d364b, 0x003b333c, 0x00362e30, 0x00322b2c, 0x002f2a30, 0x002d2933, 0x002a2633, 0x002b2637, 0x002f2741, 0x00372a49, 0x00413152, 0x0047365a,
- 0x0068364d, 0x006f3e51, 0x00754452, 0x007e5158, 0x009a6e69, 0x00a87b6f, 0x00a87763, 0x00b0775e, 0x00c7896c, 0x00d08f72, 0x00c58269, 0x00ac6954, 0x00944e39, 0x008f4833, 0x00823b26, 0x0087402c,
- 0x00af6e50, 0x00cd8c70, 0x00cf8f71, 0x00c28464, 0x00b47756, 0x00aa6b46, 0x00a46643, 0x00945f43, 0x0078584a, 0x006f534a, 0x005d463f, 0x002d1812, 0x00130300, 0x00150d12, 0x0011101c, 0x000d1324,
- 0x000f1426, 0x000d1325, 0x000b1123, 0x00081021, 0x00050d1d, 0x00050e1b, 0x00050d15, 0x00040a11, 0x0008080c, 0x00111110, 0x001e191a, 0x00262024, 0x00382b2b, 0x004a3532, 0x00553a33, 0x00583930,
- 0x0062473a, 0x00a7928a, 0x00fff3ef, 0x00fefbfb, 0x00fbfffe, 0x00f7fcfb, 0x00fbfdfa, 0x00c4c1bf, 0x00493b35, 0x00352317, 0x003d2619, 0x003d2817, 0x00423020, 0x00433523, 0x00433828, 0x00453c2c,
- 0x004b3e2d, 0x004d4032, 0x004a3d34, 0x0042362f, 0x00352d26, 0x002c2622, 0x00262321, 0x00262423, 0x00272728, 0x002a2b2d, 0x00282c32, 0x001f2830, 0x00192332, 0x001a2536, 0x001a273e, 0x00172744,
- 0x00172c4d, 0x001a3057, 0x001e3560, 0x001d3565, 0x001a3666, 0x001e3462, 0x001f2f5b, 0x00222c54, 0x001d244a, 0x0016244d, 0x00233669, 0x00254380, 0x00224891, 0x00214492, 0x002f509d, 0x006682ce,
- 0x0091a9ae, 0x008d9898, 0x00918986, 0x00938275, 0x00a19181, 0x00a6a7a1, 0x0099a2af, 0x007283ae, 0x004f61b2, 0x004f5cc0, 0x005a5cb4, 0x00665e8a, 0x00865c86, 0x00a05877, 0x00b85366, 0x00ce4d57,
- 0x00e2493a, 0x00ed492d, 0x00f34723, 0x00f94516, 0x00fc4214, 0x00fa3d0e, 0x00f63a0d, 0x00f84212, 0x00d24418, 0x00c96241, 0x00f1b19f, 0x00d4b9b8, 0x00adb1bb, 0x00b8bec6, 0x00cdd1d3, 0x00d2d0cb,
- 0x00726f6a, 0x003e3931, 0x0040372e, 0x003f3223, 0x003a2b1d, 0x00332413, 0x002f2217, 0x002d211a, 0x002c1e22, 0x00261a25, 0x00251621, 0x00251116, 0x00240d12, 0x00220a0f, 0x0023070d, 0x00260610,
- 0x00290510, 0x0028050f, 0x0025060e, 0x00250710, 0x0024090e, 0x0025080f, 0x00250a12, 0x00270f18, 0x0029192b, 0x002e2438, 0x00332f45, 0x00363953, 0x00374565, 0x00384a6e, 0x003a5075, 0x003b557c,
- 0x0040577a, 0x00465a78, 0x00516079, 0x00596376, 0x0064656d, 0x00696466, 0x006d6360, 0x006d6158, 0x0066594b, 0x00635443, 0x005f503e, 0x005e503d, 0x00605036, 0x00655338, 0x006d5b3d, 0x00706040,
- 0x00746b4d, 0x0072705a, 0x00707568, 0x006d7872, 0x0066767a, 0x00808c8f, 0x00d6e1e1, 0x00f3fdfa, 0x00fbfdf9, 0x00fcfef8, 0x00fefefa, 0x00e6e6e3, 0x00757479, 0x00262833, 0x002a2d3e, 0x00232437,
- 0x000b1038, 0x000d1437, 0x0009112c, 0x00030a1c, 0x00000810, 0x00010912, 0x00021120, 0x0006172d, 0x0003103a, 0x001d2f5c, 0x00677098, 0x00aaa7b6, 0x00ccc6d3, 0x00cecad0, 0x00d1cdce, 0x00ceccc5,
- 0x00cbc9bb, 0x00d6d1c2, 0x00e2d9cb, 0x00e8ded2, 0x00f1e4d7, 0x00ebe6e2, 0x00e9eced, 0x00ebeff1, 0x00eaebe9, 0x00e7e8e5, 0x00e6e9e4, 0x00e6e7e2, 0x00e3e2dd, 0x00e0ddd7, 0x00e4e0db, 0x00e8e4e1,
- 0x00ededec, 0x00f1f1f0, 0x00eeeeee, 0x00eeefef, 0x00edeced, 0x00ebebec, 0x00ededec, 0x00ededec, 0x00ededed, 0x00edeeee, 0x00edeeee, 0x00ebebeb, 0x00ececec, 0x00ececec, 0x00ecebec, 0x00ededed,
- 0x00e7e5e4, 0x00e6e5e4, 0x00e6e6e6, 0x00e7e9e8, 0x00ebeaec, 0x00edebec, 0x00ebeae8, 0x00e9e7e4, 0x00e3e1df, 0x00e3e0de, 0x00e6e4e2, 0x00f2f0ee, 0x00fefffc, 0x00fefefc, 0x00fdfdfb, 0x00fdfbfa,
- 0x00f7fefc, 0x00a5a8ab, 0x00100c10, 0x001f151b, 0x00332626, 0x00342922, 0x00342d24, 0x0034322c, 0x00242b35, 0x003a4459, 0x00708cb1, 0x0077b0e9, 0x0065a0e0, 0x005391d7, 0x004a89d8, 0x00468cdc,
- 0x003987d8, 0x003a86da, 0x003882dd, 0x00357ed6, 0x00367bd6, 0x00377ad0, 0x003976d0, 0x003671cd, 0x003670cd, 0x003772d1, 0x003672d2, 0x003670d1, 0x002a68ca, 0x002763c6, 0x002866c9, 0x002d6acf,
- 0x002274c0, 0x00336abc, 0x003647a1, 0x0030257b, 0x002a0e3d, 0x001c0a13, 0x00150b01, 0x00181501, 0x00261506, 0x0031181c, 0x00431f28, 0x00553030, 0x00714643, 0x007f504a, 0x00885447, 0x00915945,
- 0x008f523a, 0x008a4d36, 0x00894b32, 0x00894e32, 0x008f563c, 0x00945336, 0x00924f29, 0x008d4a20, 0x00804518, 0x00753d1d, 0x00653624, 0x00543031, 0x0039293f, 0x0025273f, 0x000b192c, 0x0000101f,
- 0x0005070c, 0x00080a0f, 0x000b0d12, 0x00090b10, 0x000c0e13, 0x000e0f14, 0x000d0e13, 0x000c0e13, 0x000d0e13, 0x000c0e12, 0x000b0d11, 0x000c0e11, 0x000b0d11, 0x000b0d11, 0x000a0d10, 0x000b0e11,
- 0x000e1014, 0x000f1014, 0x000f1116, 0x000f1116, 0x00101115, 0x00121314, 0x00131313, 0x00141314, 0x00161616, 0x00171717, 0x00181818, 0x00101010, 0x00696969, 0x00d8d8d8, 0x00fefefe, 0x00ffffff,
- 0x00fffefe, 0x00fafafa, 0x00fbfbfa, 0x00fdfcfc, 0x00fdfcfd, 0x00fcfcfd, 0x00fcfdfd, 0x00fefffd, 0x00fffcfe, 0x00fefcfd, 0x00fdfbfb, 0x00fdfafb, 0x00fffcfe, 0x00fffdff, 0x00fefdfe, 0x00fefcfd,
- 0x00fefcff, 0x00fcfcfd, 0x00fbfcfc, 0x00fbfffc, 0x00fcfffd, 0x00fbfdfe, 0x00fafbfd, 0x00fdfdfd, 0x00fcfffb, 0x00fcfef8, 0x00fefdf8, 0x00fdfdf7, 0x00fdfdf9, 0x00fdfefb, 0x00fdfefc, 0x00fefefd,
- 0x00fbfdfd, 0x00fbfdfd, 0x00fcfdfc, 0x00fdfefc, 0x00fdfdfe, 0x00fdfdfe, 0x00fefdfd, 0x00fcfbfc, 0x00fdfdfc, 0x00fefdfd, 0x00fefcfc, 0x00fdfbfb, 0x00fefcfe, 0x00fdfcfd, 0x00fefcfc, 0x00fffdfd,
- 0x00fefffe, 0x00fcfcfc, 0x00fefcfd, 0x00fdfbfc, 0x00fcfbfa, 0x00fdfcfa, 0x00fcfdfa, 0x00fdfdfa, 0x00fcfdfc, 0x00fbfbfc, 0x00fbfbfb, 0x00fbfbfc, 0x00fbfbfc, 0x00fbfafd, 0x00fdfdff, 0x00fbfafe,
- 0x00fdfefd, 0x00fdfefa, 0x00fcfefb, 0x00fcfefc, 0x00fdfbfc, 0x00fcfdfa, 0x00fdfdfa, 0x00fdfdfb, 0x00fcfcfc, 0x00fcfdfb, 0x00fdfbfc, 0x00fffcfc, 0x00fdfafa, 0x00fcfaf8, 0x00fefcfc, 0x00fdfcfa,
- 0x00fbfcfc, 0x00fbfcfc, 0x00fcfefe, 0x00fbfdfc, 0x00fcfbfc, 0x00fcfcfd, 0x00fcfcfe, 0x00fefdff, 0x00fffdff, 0x00fefdff, 0x00fdfeff, 0x00fcfdfd, 0x00fcfeff, 0x00fcfeff, 0x00fbfeff, 0x00f9feff,
- 0x00f9fdfe, 0x00fafdff, 0x00f9fcff, 0x00fafcfe, 0x00fefdff, 0x00fefdff, 0x00fdfdff, 0x00fdfeff, 0x00fefefe, 0x00fdfdfe, 0x00fefefe, 0x00fcfdfa, 0x00fefefd, 0x00fdfdfd, 0x00fefdfe, 0x00fefdff,
- 0x00fdfdfc, 0x00fcfbfd, 0x00fcfcfd, 0x00fdfdfd, 0x00fcfdfc, 0x00fcfeff, 0x00fbfffe, 0x00fdfffd, 0x00fdfef3, 0x00fdfef5, 0x00fbfbf7, 0x00cfced1, 0x00777783, 0x00858b92, 0x00bec7ca, 0x00dcebe7,
- 0x00fafafc, 0x00fbfafa, 0x00c3b4ac, 0x007b5a45, 0x009f5d3a, 0x00c0653c, 0x00d35f34, 0x00d94e26, 0x00ee4023, 0x00f8492d, 0x00f15131, 0x00d95e31, 0x00d56433, 0x00d4713c, 0x00d77f44, 0x00d28849,
- 0x00cc9250, 0x00c69254, 0x00bc8d54, 0x00b48852, 0x00ab8451, 0x00a68150, 0x00a4804d, 0x00a6814d, 0x00aa8952, 0x00a78450, 0x009a7847, 0x00836033, 0x00734c27, 0x00724b2b, 0x006e492d, 0x006e4830,
- 0x006f4439, 0x00653d36, 0x005b3730, 0x00412520, 0x0037271f, 0x00706a5d, 0x00ccccba, 0x00d6dac4, 0x00cad1b8, 0x00a8b393, 0x00a3aa95, 0x00d1cfd0, 0x00f8f6f6, 0x00f8f9f2, 0x00eaeadf, 0x00e3e1cf,
- 0x00d9d7be, 0x00d1caae, 0x00d1c3a9, 0x00dac9ad, 0x00f0ddc0, 0x00fcf2d9, 0x00fcf4dd, 0x00e6d8bf, 0x00c5b595, 0x00a79572, 0x00866f49, 0x00856b43, 0x0098774c, 0x009b7950, 0x009e7a50, 0x009e7a4e,
- 0x009d7b5a, 0x00997754, 0x0096754f, 0x0095754b, 0x0098764a, 0x00a07f52, 0x00b59468, 0x00b8966c, 0x0096754d, 0x0072522b, 0x008a613a, 0x00a36e4c, 0x00987b6e, 0x00979093, 0x00929baa, 0x007789a2,
- 0x00546479, 0x00404a5a, 0x00343843, 0x00393a41, 0x0036353b, 0x0030343a, 0x002b2f37, 0x00282c32, 0x00221f24, 0x001d161a, 0x00271d1f, 0x00382b2b, 0x00554744, 0x006a5a55, 0x007f716a, 0x008b8078,
- 0x008b8b85, 0x00abaca7, 0x00f4f4f2, 0x00fdfffc, 0x00fffffe, 0x00ffffff, 0x00fdfefe, 0x00dfdfdf, 0x00898a8c, 0x007d7d7f, 0x00b7babf, 0x00d6e4ea, 0x00f1fdfe, 0x00f5feff, 0x00f5fcfd, 0x00f5fdfc,
- 0x00f4fdff, 0x00f7fdff, 0x00f9fdff, 0x00f7fdfe, 0x00f9fefe, 0x00fcfbfa, 0x00fcfcfa, 0x00fafefd, 0x00f6feff, 0x00fafdfe, 0x00fefdfb, 0x00fffbf7, 0x00fffbf8, 0x00fdfdfd, 0x00f9ffff, 0x00f0fcfe,
- 0x00fafeff, 0x00f9fdfc, 0x00f9fbf8, 0x00fefef9, 0x00fcfbf4, 0x00f9f8f3, 0x00f6f7ef, 0x00f2f5ee, 0x00eef0f0, 0x00e6eae9, 0x00e3e7e5, 0x00dee1e0, 0x00d7dde2, 0x00d1d7e2, 0x00c3c9d9, 0x00b7c0d4,
- 0x00a5acc5, 0x00989fbb, 0x00868baa, 0x00777a98, 0x00686889, 0x005b5c84, 0x0050557c, 0x00495272, 0x00444f68, 0x003d4a68, 0x0038446c, 0x002d3a6e, 0x001f2b6e, 0x001c296b, 0x001c2c6b, 0x00182865,
- 0x000d2688, 0x000c2485, 0x00082283, 0x00082487, 0x000c2689, 0x00072386, 0x00011f82, 0x00001d81, 0x00031d83, 0x00022086, 0x00031e8b, 0x00061b90, 0x00071f85, 0x0008217d, 0x000a2376, 0x000e2573,
- 0x00091b68, 0x00000f59, 0x00041254, 0x00000a3f, 0x0000092e, 0x0012172f, 0x003e3e51, 0x006e6e80, 0x008d8e98, 0x009d9da3, 0x00dddee1, 0x00fafbfb, 0x00f9fbf9, 0x00fdfcfa, 0x00fbfdfa, 0x00fafdf9,
- 0x00e8c9d6, 0x00c49896, 0x00c99185, 0x00d9957d, 0x00e9ae9d, 0x00f5cdc9, 0x00f0dbe0, 0x00e5e1ef, 0x00e8e8f3, 0x00eae5e8, 0x00dfd9db, 0x00d1cbd6, 0x00d5cdd8, 0x00eae2eb, 0x00f6eef6, 0x00f4ebf4,
- 0x00e9e1ea, 0x00d3ccd6, 0x00d5cfdb, 0x00ddd8e8, 0x00ddd4e8, 0x00dac9e3, 0x00ded0e7, 0x00dee3e5, 0x00fdfcea, 0x00e5bda8, 0x0087442e, 0x006c1b05, 0x00491a06, 0x003b2813, 0x00333624, 0x00374639,
- 0x00506d59, 0x0058604c, 0x0032351e, 0x003b512f, 0x005b7859, 0x004b5042, 0x00302720, 0x003f3832, 0x00505e43, 0x0071674c, 0x0076594e, 0x00633e4e, 0x00281a33, 0x00171c3e, 0x0012234b, 0x000c2957,
- 0x0014275c, 0x002c3564, 0x004d4e78, 0x00696484, 0x00636271, 0x00413b38, 0x000b0601, 0x00040400, 0x00010403, 0x00010707, 0x00010808, 0x00010508, 0x00040804, 0x00060802, 0x000f0d04, 0x001e1909,
- 0x00552e1a, 0x00694232, 0x00704d3f, 0x00725546, 0x00564134, 0x00291b0f, 0x00110901, 0x00090301, 0x00090704, 0x00080a02, 0x000a0b06, 0x000b0804, 0x000c0c0c, 0x00050611, 0x00090c1d, 0x001e243d,
- 0x00475478, 0x00616c99, 0x006a76ab, 0x005d6ba6, 0x005465a5, 0x005569a9, 0x005972ae, 0x00637ab6, 0x006d84c2, 0x007892cf, 0x00839bd4, 0x00889ed4, 0x0096a6d9, 0x00a0acdc, 0x00aeb6e2, 0x00b2bbe7,
- 0x00daddf2, 0x00edeefe, 0x00f0f1fc, 0x00f9f9fc, 0x00fffcfb, 0x00fdfbf9, 0x00fafbf7, 0x00fcfafa, 0x00b3a9b0, 0x00615962, 0x00564b5b, 0x00564d60, 0x005d5263, 0x00605465, 0x00605461, 0x005d535f,
- 0x00564c56, 0x00504851, 0x004a4351, 0x00453f4f, 0x0041394c, 0x003c3643, 0x00332f3b, 0x002d2a37, 0x0028293b, 0x0025273e, 0x0021243f, 0x001f2243, 0x0021214d, 0x00282456, 0x00312a5f, 0x00362d67,
- 0x004a305a, 0x00563b5d, 0x005c3f58, 0x006a4a57, 0x00946f6b, 0x00aa7f72, 0x00ab7a68, 0x00a97059, 0x00b87a61, 0x00c48469, 0x00c4816b, 0x00c27e6e, 0x00c37e6f, 0x00bf7a69, 0x00b16e5b, 0x00ac6956,
- 0x00be7f66, 0x00c88b72, 0x00c4886b, 0x00be8263, 0x00b37959, 0x00ab714c, 0x009e6642, 0x008d5f43, 0x00795d51, 0x006a534b, 0x004e3a35, 0x0026130d, 0x001c0d08, 0x001b1415, 0x0016161e, 0x00151c2a,
- 0x0015192a, 0x0013172a, 0x000e1427, 0x000a1325, 0x00071025, 0x00081123, 0x000a111e, 0x000c111d, 0x0011111a, 0x0017161e, 0x00231f25, 0x002e282d, 0x00423233, 0x00533b38, 0x005e4037, 0x00613e34,
- 0x0077594b, 0x00bba59a, 0x00fff8f1, 0x00fffcfb, 0x00f8ffff, 0x00fafbfc, 0x00fcfbfb, 0x00bbb3b3, 0x00432f29, 0x003d2419, 0x004a2c1f, 0x004b2f1f, 0x004a3325, 0x00443525, 0x0043382b, 0x00433b2e,
- 0x004d4330, 0x004c4332, 0x00473f32, 0x0042382e, 0x00393229, 0x00332d27, 0x00302c26, 0x00332d26, 0x0035332c, 0x0038372d, 0x0038392e, 0x0030352d, 0x00292f30, 0x00282f37, 0x00272f41, 0x00222d47,
- 0x001c2c4c, 0x001b3054, 0x001e335c, 0x001d3461, 0x001b3362, 0x001f315c, 0x001d2b52, 0x001b254b, 0x0015204a, 0x001a3060, 0x002d4a88, 0x002f59a3, 0x00386abf, 0x003b6ac2, 0x002b58ac, 0x003d64b5,
- 0x005c8eb2, 0x007c9ab5, 0x008c94a0, 0x00867a78, 0x00947e77, 0x00a69897, 0x00b3aaaf, 0x00968ca1, 0x007b6088, 0x00875d8f, 0x009d5f7f, 0x00b45e51, 0x00cb584b, 0x00de523f, 0x00ed4d32, 0x00fb4525,
- 0x00ff421c, 0x00fe4319, 0x00fc4614, 0x00f84914, 0x00f04c18, 0x00f1481b, 0x00f24b26, 0x00de4721, 0x00bb5139, 0x00d28c7d, 0x00f7d2d0, 0x00d0c5ce, 0x0098a0b1, 0x009fa3b3, 0x00c5c3d3, 0x00e9deec,
- 0x00a2a4a3, 0x0052524c, 0x00474037, 0x00483b2c, 0x00483624, 0x00422e1b, 0x003f291b, 0x003a241b, 0x00301e1e, 0x0028191f, 0x0023131b, 0x00220e13, 0x00220a10, 0x0022060f, 0x0024050d, 0x00260610,
- 0x00290610, 0x0027060f, 0x0025070e, 0x00240810, 0x00240810, 0x00240710, 0x00250a15, 0x00290f1d, 0x002d1e32, 0x0030283e, 0x00333049, 0x00343856, 0x00344368, 0x00334871, 0x00344c76, 0x0034507b,
- 0x003a527a, 0x003f5477, 0x004a5977, 0x00535d74, 0x005d5f6a, 0x00615f63, 0x00655e5c, 0x00645c54, 0x005f5348, 0x005c4f42, 0x00594c40, 0x00594e41, 0x005f513e, 0x0065553f, 0x006e5f46, 0x0075674a,
- 0x00797257, 0x00787a64, 0x007b8175, 0x0075817a, 0x006f8183, 0x00909c9c, 0x00e3eaea, 0x00fafefe, 0x00fdfbf9, 0x00fdfcfa, 0x00fefcfc, 0x00e1e0df, 0x0067676b, 0x001f2229, 0x00141823, 0x000c111d,
- 0x000b112a, 0x00181f33, 0x00191e2d, 0x000d131d, 0x00121823, 0x000f1522, 0x00081429, 0x00081834, 0x000b1e4e, 0x000e2558, 0x00273567, 0x00646591, 0x00bbb6d5, 0x00cdc8d9, 0x00d6cad0, 0x00d7c8c5,
- 0x00d7cbbf, 0x00d9d3c4, 0x00e3e0d7, 0x00e7e6e5, 0x00e3ecee, 0x00dfeef9, 0x00cddff2, 0x00cbdeef, 0x00c7d7e6, 0x00c4d2db, 0x00d3e0e4, 0x00dde6ea, 0x00dadee4, 0x00d8dae0, 0x00e8e9f0, 0x00eaeaf1,
- 0x00edeeee, 0x00f0f1f0, 0x00ecedec, 0x00eaeaea, 0x00e9e9e9, 0x00e8e7e8, 0x00ebeaeb, 0x00edeced, 0x00efefef, 0x00eeedee, 0x00ececec, 0x00e9e9e9, 0x00eceded, 0x00edeeee, 0x00eaebea, 0x00e8e8e8,
- 0x00e5e6e4, 0x00e7e8e7, 0x00eaebe9, 0x00ececea, 0x00edeaec, 0x00ede9eb, 0x00e9e7e6, 0x00e3e2e0, 0x00e0dedd, 0x00e2e0df, 0x00e8e7e6, 0x00f5f4f3, 0x00fffffe, 0x00fffdfb, 0x00fefcfa, 0x00fefaf8,
- 0x00f8fdfc, 0x00a5a6aa, 0x000f0a0f, 0x001f141a, 0x00332425, 0x00332721, 0x0032302a, 0x002d3333, 0x00233652, 0x004e688e, 0x0083aee0, 0x0067aaea, 0x004d91d6, 0x00478fd5, 0x00488fdb, 0x003c86d4,
- 0x003c8ad9, 0x003b87d7, 0x003a84d7, 0x003981d3, 0x003a7ecf, 0x003b7ccd, 0x003b78ce, 0x003974cb, 0x00396dc8, 0x00386dc9, 0x003b6ecb, 0x003c6fcb, 0x00386fca, 0x002f67c2, 0x002b64bf, 0x002a66c1,
- 0x00356bb5, 0x00366bc3, 0x003363c5, 0x002d53be, 0x00394086, 0x00402e51, 0x00371920, 0x00260801, 0x00170607, 0x00161329, 0x00231e31, 0x003b2825, 0x00583d30, 0x006d4b3a, 0x0080583f, 0x008a5a3a,
- 0x00965f37, 0x00956235, 0x00986333, 0x00986334, 0x00976536, 0x00985b3e, 0x008f5038, 0x0082492b, 0x006e4429, 0x005e3f34, 0x004e3946, 0x0041365d, 0x0031366c, 0x001c2c59, 0x00001532, 0x00021928,
- 0x0010121c, 0x000d0e19, 0x000d0e19, 0x000e1019, 0x000e0f15, 0x000b0d12, 0x000e0f14, 0x000d0e14, 0x000d0f14, 0x000c0e12, 0x000c0e11, 0x000d0f12, 0x000c0e13, 0x000d0e14, 0x000d0e13, 0x000d0f13,
- 0x000e1013, 0x000e1012, 0x000e1014, 0x000f1015, 0x00111116, 0x00111215, 0x00131314, 0x00131315, 0x00161616, 0x00151515, 0x00171717, 0x00131313, 0x006c6c6c, 0x00dcdcdc, 0x00ffffff, 0x00fefefe,
- 0x00fdfbfd, 0x00fffdff, 0x00fffeff, 0x00fdfafc, 0x00fcfcfc, 0x00fcfdfc, 0x00fafbfa, 0x00f9fbfa, 0x00fefcff, 0x00fcfbfe, 0x00fcfbfc, 0x00fdfbfc, 0x00fdfafd, 0x00fbfbfb, 0x00f9fbf9, 0x00f9faf8,
- 0x00fdfbff, 0x00fcfbff, 0x00f9fafc, 0x00f8fbfa, 0x00f9fcfa, 0x00f9fafb, 0x00fafafc, 0x00fbfbfa, 0x00fefdfc, 0x00fcfcf8, 0x00fbfbf4, 0x00fefef7, 0x00fdfdf8, 0x00fdfdfb, 0x00fcfcfa, 0x00fafcf9,
- 0x00fefeff, 0x00fcfcfd, 0x00fbfcf9, 0x00fbfcf9, 0x00fcfcfc, 0x00fcfcfc, 0x00fbfcf9, 0x00fbfcf8, 0x00fdfdfd, 0x00fdfcfd, 0x00fefbfb, 0x00fefbfb, 0x00fffcff, 0x00fefbfc, 0x00fdfaf9, 0x00fffbfa,
- 0x00fffbfe, 0x00fffbfd, 0x00fffafc, 0x00fefafc, 0x00fdfbfc, 0x00fcfdfc, 0x00fdfdfb, 0x00fffffb, 0x00ffffff, 0x00fefdfe, 0x00fefdfe, 0x00fdfcfb, 0x00fcfbfe, 0x00fdfdfd, 0x00fdfdfe, 0x00fdfdfe,
- 0x00fffcfe, 0x00fffdff, 0x00fdfcfd, 0x00fafcfc, 0x00fdfcfd, 0x00fafcfb, 0x00fafcfa, 0x00fafcfa, 0x00fffdfe, 0x00fdfcfa, 0x00fefcf9, 0x00fdfefa, 0x00fbfdf9, 0x00f9fbf9, 0x00fbfcfb, 0x00fbfdfb,
- 0x00fefcff, 0x00fdfdff, 0x00fefeff, 0x00fefffd, 0x00fefffe, 0x00fcfdfb, 0x00fdfdfd, 0x00fcfcfe, 0x00fffcff, 0x00fdfcff, 0x00fcfcfd, 0x00fffcfd, 0x00fefcfe, 0x00fefcfe, 0x00fbfcfb, 0x00fcfcfc,
- 0x00fdf9fe, 0x00fdf9fd, 0x00fbfafc, 0x00fbfbfd, 0x00fffcff, 0x00fdfcfe, 0x00fcfcfd, 0x00feffff, 0x00fefdff, 0x00fdfcff, 0x00fdfcfd, 0x00fcfcf9, 0x00fdfcfb, 0x00fdfcfc, 0x00fcfcfc, 0x00fbfcfc,
- 0x00fffeff, 0x00fffeff, 0x00fdfdfe, 0x00fcfdfd, 0x00fdfdfc, 0x00fcf9fc, 0x00fcfafc, 0x00fbfdfc, 0x00f9fef4, 0x00f8fff2, 0x00f6fbf3, 0x00cccccc, 0x007a7780, 0x008c8d91, 0x00c2c7c7, 0x00e0ece6,
- 0x00fdfdff, 0x00fdfdfe, 0x00bfaeab, 0x006e4c40, 0x008c4c36, 0x00c06a51, 0x00e37658, 0x00e36745, 0x00e54e30, 0x00e34829, 0x00e14c25, 0x00e3592c, 0x00dd5b2b, 0x00d65c2b, 0x00d26630, 0x00d8773d,
- 0x00d5844d, 0x00c98850, 0x00bc864f, 0x00ab844b, 0x00a5834e, 0x00a5814f, 0x00a27c49, 0x00a6824c, 0x00b48c5b, 0x00a98152, 0x008d6839, 0x00744f23, 0x00704723, 0x00794f31, 0x00734b2f, 0x00734b32,
- 0x00774742, 0x006b413b, 0x005c3b2f, 0x003e2519, 0x003c321f, 0x007b7866, 0x00cbcfbd, 0x00cdd4c1, 0x00b2baad, 0x009ba597, 0x00d0d4c7, 0x00f2efe9, 0x00f7f5f1, 0x00e7e7e4, 0x00d1d0c9, 0x00bfbbaf,
- 0x00a79a8b, 0x009e8d75, 0x009e8766, 0x00af966e, 0x00dabb8c, 0x00ead5b5, 0x00fbeacd, 0x00ebd5b8, 0x00c3ac8a, 0x00ad936e, 0x0093754e, 0x0093754c, 0x009d7c51, 0x009c7c52, 0x009c7a50, 0x009e7a50,
- 0x009d775a, 0x009b7655, 0x0094724c, 0x00927347, 0x00947347, 0x0099784c, 0x00ad8d64, 0x00ad8c65, 0x008a6644, 0x006a4727, 0x007b563a, 0x00845d47, 0x00746866, 0x0076808c, 0x00839eb4, 0x007da1c0,
- 0x006d8dab, 0x005c748a, 0x00425562, 0x0037444b, 0x0030373c, 0x002e363a, 0x00292f36, 0x00262c32, 0x00251d26, 0x001f131b, 0x00291c1f, 0x003c2c2d, 0x00584a47, 0x006b5c56, 0x007d7167, 0x00887f72,
- 0x008c878a, 0x00afadad, 0x00f4f3f4, 0x00fbfefa, 0x00fdfefe, 0x00fdfdfc, 0x00fafdf9, 0x00dbded6, 0x00898789, 0x007f807e, 0x00bfc1c2, 0x00dde5ec, 0x00f4fdff, 0x00f4feff, 0x00f5fcfc, 0x00f6fcfa,
- 0x00fbfefe, 0x00fafefd, 0x00fafdfc, 0x00f8fbf9, 0x00f9fbfa, 0x00fafafb, 0x00fafbfd, 0x00f6fdfc, 0x00fafdff, 0x00f8fcff, 0x00f8fbf8, 0x00fefbf8, 0x00fffcf7, 0x00fdfdfb, 0x00f9fefe, 0x00f4fdfc,
- 0x00fbffff, 0x00fafefe, 0x00f8faf9, 0x00fbfdfa, 0x00fefefa, 0x00fefdfa, 0x00fefffa, 0x00fcfdfa, 0x00fdfeff, 0x00fafeff, 0x00f9fbfc, 0x00fdfcfc, 0x00f9fdfc, 0x00fbfdfe, 0x00f7fbfd, 0x00f1f8fc,
- 0x00f4f6ff, 0x00f1f3fe, 0x00ebedf8, 0x00e8e8f2, 0x00e4e1ed, 0x00e1e0ef, 0x00d4d8e7, 0x00cad2df, 0x00c7ccd3, 0x00b9bfca, 0x00a9afc0, 0x009ba2be, 0x008b91ba, 0x00848cb4, 0x007885a8, 0x006a7999,
- 0x005566a8, 0x004d5d9e, 0x003e4e90, 0x00354588, 0x002e3f84, 0x002a3d86, 0x00233784, 0x001d327d, 0x001a2b7e, 0x0014287c, 0x000e237a, 0x000e1e7d, 0x000a1f6f, 0x00091c62, 0x00081958, 0x00091954,
- 0x000f165a, 0x0005104f, 0x00031348, 0x0002113e, 0x00021033, 0x00080c2e, 0x000d0f2b, 0x0020253c, 0x004b4c5e, 0x006f6f7d, 0x00c2c3c9, 0x00f7f7f8, 0x00fcfdfa, 0x00fefbf9, 0x00fefdfa, 0x00fcfdfa,
- 0x00eac2c2, 0x00b07363, 0x00a4543b, 0x00b7542e, 0x00c86d50, 0x00e49f96, 0x00f2c9cd, 0x00ecdcee, 0x00e8e6f6, 0x00e9e7ec, 0x00e3dfe3, 0x00d2cdd8, 0x00d3cbd7, 0x00e4dee7, 0x00f1edf3, 0x00f2eef2,
- 0x00ede4ee, 0x00dad1db, 0x00d2cbd8, 0x00ddd5e7, 0x00ddd2e8, 0x00d8c9e2, 0x00e1d5e6, 0x00dde1dd, 0x00fdf5e3, 0x00fdcbb7, 0x00ab604a, 0x0071210a, 0x00331b00, 0x00313219, 0x002c3a29, 0x00353e3a,
- 0x004a6a57, 0x005d634f, 0x0034381d, 0x00334a23, 0x00587755, 0x00575e50, 0x002f2924, 0x0031302b, 0x004f5845, 0x0076654c, 0x007a5a4c, 0x005d3a47, 0x00322436, 0x00292b44, 0x00182643, 0x00102347,
- 0x00121f4d, 0x00242755, 0x00313258, 0x004a4c6a, 0x006c7287, 0x00575456, 0x00100b07, 0x00050300, 0x00070407, 0x000e0b0f, 0x00040605, 0x00070505, 0x000c0702, 0x00130802, 0x00261b0f, 0x00413220,
- 0x00693c2c, 0x006f4335, 0x006a4235, 0x006d4b3f, 0x0050362c, 0x0028180f, 0x000f0700, 0x000a0700, 0x000e090c, 0x0009090a, 0x00080c0b, 0x000a0e09, 0x000b0d0a, 0x0009090b, 0x00090507, 0x000d0810,
- 0x002a2741, 0x004b496d, 0x006a6f9b, 0x006673a7, 0x005a69a7, 0x005365a4, 0x00526ca7, 0x005970ae, 0x006277b8, 0x006a83c4, 0x00758ecc, 0x007e97d1, 0x008a9fd6, 0x0093a5d7, 0x009dadd9, 0x00a1b2de,
- 0x00cbc9e7, 0x00e0def4, 0x00f2f4ff, 0x00fafdfd, 0x00fffdfe, 0x00fdfcfb, 0x00fcfdf8, 0x00f8f4f2, 0x00a4979d, 0x00564c53, 0x00564450, 0x00584751, 0x005f4d53, 0x00635154, 0x00665654, 0x00655955,
- 0x005f4f54, 0x00594b4e, 0x0051474c, 0x004a4249, 0x00423b46, 0x003d3844, 0x00363243, 0x00302b41, 0x00292944, 0x00252747, 0x00202448, 0x001c224c, 0x001c1f54, 0x001f215b, 0x00262562, 0x00282668,
- 0x003c3067, 0x00473a66, 0x004d3c5b, 0x00574154, 0x00795a5a, 0x00997168, 0x00ad806c, 0x00b27d63, 0x00bf7e6b, 0x00cb8872, 0x00c3806d, 0x00bc7b6d, 0x00bd7c70, 0x00bf7f71, 0x00b97b6b, 0x00ae715f,
- 0x00b87b66, 0x00c48974, 0x00cb9177, 0x00c78d6f, 0x00b57d5e, 0x00a7734e, 0x00986844, 0x008c6649, 0x00695348, 0x004c3931, 0x00372720, 0x0026150d, 0x00241510, 0x00211919, 0x001b1a1f, 0x00181e27,
- 0x001e1e30, 0x001a1b2e, 0x00121829, 0x000c1526, 0x00081227, 0x00081227, 0x000b1325, 0x000f1527, 0x00181728, 0x001d1c2b, 0x002a2631, 0x00353138, 0x00483a3a, 0x0057423b, 0x00614537, 0x00634233,
- 0x00846358, 0x00c9b2a7, 0x00fef9f2, 0x00fdfcf9, 0x00f8ffff, 0x00fdfcfd, 0x00faf7f6, 0x00b1a6a4, 0x00402721, 0x0048291f, 0x00583428, 0x00593727, 0x0055392d, 0x004c3a2c, 0x00483d32, 0x00484137,
- 0x00514837, 0x004d4536, 0x00453f31, 0x0040382d, 0x003b352c, 0x0039342c, 0x0039342b, 0x003e362a, 0x00443f30, 0x0045412f, 0x0045422c, 0x003b3c29, 0x0032352c, 0x00323334, 0x0031343e, 0x002b3344,
- 0x00253051, 0x00213157, 0x001f325a, 0x001b2f5b, 0x00182f5a, 0x001d2d53, 0x00192849, 0x00142141, 0x00172553, 0x00253f74, 0x0035599c, 0x003666b5, 0x00467fd8, 0x004b7fda, 0x003667bc, 0x003962b4,
- 0x003a70ac, 0x005377ae, 0x006c85b0, 0x007982a8, 0x00747497, 0x00737697, 0x00908da8, 0x008d7f96, 0x009c5560, 0x00b65556, 0x00ce5448, 0x00e15535, 0x00e6532e, 0x00ec4f26, 0x00f04b1b, 0x00f84813,
- 0x00ff4514, 0x00fd4718, 0x00fa4a17, 0x00f44c1b, 0x00e74d1b, 0x00e34d22, 0x00d84c28, 0x00bf4724, 0x00c27866, 0x00e9bfb8, 0x00f2e6ec, 0x00bec6d8, 0x00869ab2, 0x008f9cb3, 0x00b1b9cf, 0x00dbd9ec,
- 0x00c6c8cc, 0x00797978, 0x0048433a, 0x004a3e30, 0x0054412c, 0x004b3420, 0x00462d1c, 0x003f271a, 0x00351d1d, 0x002b171b, 0x00231117, 0x00210c11, 0x00220910, 0x00240710, 0x0026060f, 0x00270911,
- 0x002a0511, 0x00280411, 0x0025060e, 0x00240710, 0x0023070f, 0x00240711, 0x00250b15, 0x0029111f, 0x002e1f35, 0x00302741, 0x0032304c, 0x00333859, 0x0032436b, 0x00304571, 0x002e4972, 0x002d4b76,
- 0x00354b79, 0x003a4f77, 0x00455578, 0x004e5a75, 0x00595d6c, 0x005e5e65, 0x00615c5c, 0x005f5852, 0x005d5148, 0x005a4c41, 0x0054483d, 0x00554b43, 0x005b5042, 0x00625544, 0x006c614a, 0x00746b4e,
- 0x00807761, 0x00818370, 0x007e847b, 0x0078857f, 0x00738787, 0x0099a7a6, 0x00e7ecee, 0x00fafcfd, 0x00fefafa, 0x00fefafc, 0x00fffdff, 0x00d7d6d6, 0x00545658, 0x0016191d, 0x000c1118, 0x000a1317,
- 0x00141722, 0x001d2129, 0x0026282f, 0x0026272f, 0x00262b3a, 0x001e2237, 0x000f1a37, 0x0008183c, 0x000c1f52, 0x00122960, 0x00182e66, 0x002a3c6f, 0x008992b4, 0x00c7cadc, 0x00cfc7ce, 0x00d4c8c2,
- 0x00d5cac5, 0x00d8d4db, 0x00d3dbe5, 0x00d7eaf6, 0x00c2e3f7, 0x00a2c7ef, 0x008eb6e1, 0x008eb4da, 0x0092afd7, 0x009ab5d3, 0x00b5d0e4, 0x00cbe3f4, 0x00cbdcef, 0x00cbd9ec, 0x00dae8fa, 0x00d8e3f5,
- 0x00eeedf1, 0x00f2f1f3, 0x00e8e8e9, 0x00e5e5e5, 0x00e4e4e3, 0x00e6e7e5, 0x00e9eae8, 0x00eaeae9, 0x00eeeded, 0x00edecec, 0x00eae7e8, 0x00e8e7e8, 0x00ebeceb, 0x00ebedec, 0x00e7e9e8, 0x00e6e7e6,
- 0x00eae8ea, 0x00ebe9eb, 0x00ececeb, 0x00eaebe8, 0x00e9e7e7, 0x00e9e7e6, 0x00e7e8e3, 0x00e3e3df, 0x00e2ddde, 0x00e4e1e1, 0x00ebe9e9, 0x00f8f5f5, 0x00fffefe, 0x00fffbfa, 0x00fefcf9, 0x00fdfcf8,
- 0x00fefdff, 0x00a7a4aa, 0x000e080b, 0x001c1114, 0x00302220, 0x002f2721, 0x002b2f2d, 0x001c2c32, 0x00355176, 0x00698fc1, 0x0075a8e2, 0x00599be6, 0x004c8dda, 0x00458cd9, 0x00448eda, 0x00418ddb,
- 0x004188e0, 0x004187de, 0x003d82d7, 0x003c80d5, 0x003e81d2, 0x003c7dd2, 0x003779cf, 0x003173ca, 0x00386dcb, 0x003469c7, 0x003669c6, 0x003a6ac7, 0x003268c2, 0x00336ac4, 0x002e6ac2, 0x002666bd,
- 0x003669bc, 0x002f67c3, 0x002e65c9, 0x003064ce, 0x00415bab, 0x005a5992, 0x005c4b6d, 0x003e283b, 0x0013091f, 0x00080b2a, 0x000c1536, 0x001b1e35, 0x00323240, 0x00483c41, 0x00604e4b, 0x00755c4f,
- 0x008f6657, 0x00906d55, 0x00926f54, 0x00926e56, 0x008c6d54, 0x008b635e, 0x007e585a, 0x006d524c, 0x00594d4e, 0x00474558, 0x0038406a, 0x002f3b81, 0x00263786, 0x001b3167, 0x00011836, 0x000c222c,
- 0x00323041, 0x001c1a29, 0x000a0915, 0x0010111b, 0x000e0f18, 0x000b0e15, 0x000c1014, 0x000c1012, 0x00101015, 0x000f0f14, 0x000e0f12, 0x000e0f14, 0x000d0f14, 0x000d0f15, 0x000c0f14, 0x000c1014,
- 0x00101117, 0x000e1015, 0x000f1014, 0x000f1115, 0x00111016, 0x00101113, 0x00111211, 0x00111311, 0x00161616, 0x00161616, 0x00171717, 0x00131313, 0x00717171, 0x00e0e0e0, 0x00fefefe, 0x00fdfdfd,
- 0x00fafef9, 0x00f6f9f4, 0x00fcfbfc, 0x00fdfcfd, 0x00fcfafa, 0x00fefbfd, 0x00fffcfe, 0x00fffdff, 0x00f8fcf7, 0x00f8fef7, 0x00fafcfa, 0x00fcfcfe, 0x00fdfdfe, 0x00fdfcfc, 0x00fdfbfe, 0x00fefdff,
- 0x00f5fcf5, 0x00f8fef6, 0x00fbfefb, 0x00fbfcfe, 0x00fcfbfd, 0x00fefbfe, 0x00fffbff, 0x00fffdff, 0x00f8fcf5, 0x00fafcf3, 0x00fdfdf6, 0x00fefdf6, 0x00fdfcf5, 0x00fefdf9, 0x00fffeff, 0x00fffeff,
- 0x00fcfef8, 0x00fcfef7, 0x00fffffc, 0x00ffffff, 0x00fefffc, 0x00fefefc, 0x00ffffff, 0x00ffffff, 0x00fafff7, 0x00fcfff8, 0x00fffdfd, 0x00fffdff, 0x00fffeff, 0x00fffeff, 0x00fffeff, 0x00ffffff,
- 0x00f9fcfa, 0x00fafdf9, 0x00fefffe, 0x00fefcff, 0x00fffdff, 0x00fefefc, 0x00ffffff, 0x00fffdff, 0x00f9fff7, 0x00f8fdf6, 0x00fdfefd, 0x00ffffff, 0x00ffffff, 0x00fdfdff, 0x00fffdff, 0x00ffffff,
- 0x00fbfcf7, 0x00fbfdf8, 0x00fdfffe, 0x00fcfeff, 0x00fcffff, 0x00fafefe, 0x00fcfdff, 0x00fdfefe, 0x00f7fcf5, 0x00f7fdf4, 0x00fefff9, 0x00fdfef9, 0x00fffffd, 0x00fcfffd, 0x00fbfcfc, 0x00fafbfd,
- 0x00f5fcf8, 0x00f6fcf7, 0x00fbfdfc, 0x00fdfdfe, 0x00fdfbfc, 0x00fcfefd, 0x00ffffff, 0x00fffcff, 0x00f8fef9, 0x00fbfefb, 0x00fbfdff, 0x00fefdff, 0x00fffcfe, 0x00fcfcfd, 0x00fffcff, 0x00fffcff,
- 0x00f8faf6, 0x00fbfbf8, 0x00fefbfb, 0x00fffcfd, 0x00fffdff, 0x00fffdff, 0x00fefdff, 0x00fffeff, 0x00f8fefa, 0x00f7fefa, 0x00fdfefd, 0x00fffefd, 0x00fefffc, 0x00fefefd, 0x00ffffff, 0x00fffeff,
- 0x00f9fff8, 0x00fafff9, 0x00fdfdfe, 0x00fcfcfe, 0x00fafbfa, 0x00fdf7fc, 0x00fff8ff, 0x00fbfdfe, 0x00eefde7, 0x00f0fee9, 0x00f7fef3, 0x00ccd0cc, 0x00797678, 0x0088878b, 0x00c7c6c9, 0x00ecefec,
- 0x00eafff6, 0x00f4fef2, 0x00d3c4bf, 0x00805a53, 0x00914b41, 0x00af5949, 0x00d56958, 0x00e9725a, 0x00df6e3f, 0x00d96532, 0x00d85126, 0x00dd491d, 0x00e85529, 0x00e5592c, 0x00e1592b, 0x00dd6034,
- 0x00cb7033, 0x00c2793d, 0x00ba7d45, 0x00af8047, 0x00a2834b, 0x00a47d4d, 0x00a67b4f, 0x00aa8051, 0x00a5854c, 0x009b7a42, 0x00896033, 0x0082572e, 0x00966b48, 0x00a07355, 0x00956851, 0x00885a46,
- 0x00754e3a, 0x006d4a34, 0x00654633, 0x0047331b, 0x00554e34, 0x00979a81, 0x00ced2c1, 0x00c1c8bd, 0x0098a99e, 0x00aebab4, 0x00f4f9f2, 0x00fdfcf2, 0x00f4f4ee, 0x00dbd8d4, 0x00a8a1a3, 0x007e7779,
- 0x007b715d, 0x00897c5a, 0x00a98f67, 0x00bb9a68, 0x00d3ae6d, 0x00dabb93, 0x00f0cfb8, 0x00eed1b5, 0x00c3ad7f, 0x00a58b5e, 0x00947449, 0x009c7a50, 0x009d7d53, 0x009d7b54, 0x009f7858, 0x009f785a,
- 0x0091744e, 0x0092744f, 0x0092704a, 0x00916f47, 0x008e6f42, 0x00947449, 0x00a5825c, 0x00a98463, 0x00826643, 0x00624323, 0x00694a32, 0x00715849, 0x00777a7d, 0x007792a3, 0x0078a3c4, 0x006fa2ce,
- 0x00679fbd, 0x006996a8, 0x0063838f, 0x0050676e, 0x00364747, 0x002c3a3b, 0x002a3038, 0x00242831, 0x001d1b19, 0x001d1616, 0x002d2121, 0x0041302f, 0x005e4c49, 0x00706059, 0x0082726a, 0x008d7e78,
- 0x00838883, 0x00a8adaa, 0x00f4f4f4, 0x00fefefb, 0x00fefffa, 0x00fefff9, 0x00fefff8, 0x00dfe0d9, 0x007d8677, 0x006f7a6c, 0x00afb6b3, 0x00d8dadd, 0x00f1f6f6, 0x00f8faf7, 0x00fdfdfe, 0x00fefdff,
- 0x00f7fff7, 0x00f7fdf6, 0x00fdfef9, 0x00fefefa, 0x00fdfefa, 0x00fdfcfb, 0x00fffeff, 0x00fdffff, 0x00f0fffa, 0x00f4fdfb, 0x00fbfafa, 0x00fffaf7, 0x00fdfbf3, 0x00fdfef6, 0x00fbfcfc, 0x00f8f9ff,
- 0x00f2fff7, 0x00f4fff8, 0x00f8fef9, 0x00fffffd, 0x00fdfbf9, 0x00fcfafa, 0x00fffdff, 0x00fffdff, 0x00f3fff6, 0x00f2fef7, 0x00f8fcfe, 0x00fffdfa, 0x00fdfbf8, 0x00fffcfc, 0x00fffcff, 0x00fcfcff,
- 0x00f5fef7, 0x00f7fbf6, 0x00fdfafa, 0x00fffafb, 0x00fff8f8, 0x00fcfafd, 0x00fdfdfd, 0x00fefcfb, 0x00f2fcec, 0x00f1fceb, 0x00f4f8f2, 0x00f4f6f9, 0x00f0f5ff, 0x00eef4fe, 0x00ecf1fe, 0x00e6edf9,
- 0x00dae6f0, 0x00d7e4f2, 0x00d2ddf4, 0x00cfd9f7, 0x00c9d4f7, 0x00c2ccf5, 0x00b7c0ee, 0x00a9b3e4, 0x008c9fcc, 0x007e91c1, 0x006f80b7, 0x006170aa, 0x00596697, 0x004e5b7e, 0x00424d6b, 0x003d4667,
- 0x002a3859, 0x00222e4e, 0x001b2347, 0x00171f3e, 0x00151d33, 0x00131837, 0x00101339, 0x000d102f, 0x0005101d, 0x00171f28, 0x007f8289, 0x00ebeaee, 0x00fffcfc, 0x00fffcfb, 0x00fffdfc, 0x00fffefb,
- 0x00e9cbb5, 0x00c07a5a, 0x00b15129, 0x00c14416, 0x00b74121, 0x00af5a4d, 0x00dba1a6, 0x00f1d9ec, 0x00e8ecf3, 0x00dfe6e6, 0x00dee0e4, 0x00d8cfdf, 0x00d0c9d7, 0x00e0d7e3, 0x00f3eaf5, 0x00f9f0fc,
- 0x00e6e5e8, 0x00d6d6dd, 0x00d1cad9, 0x00ded4e8, 0x00d9d3eb, 0x00d2c9df, 0x00ded6e2, 0x00ece8e6, 0x00f4dac3, 0x00f2b296, 0x00ce7b63, 0x00833a1f, 0x00252503, 0x002b3f21, 0x002e4032, 0x003d4345,
- 0x003e664b, 0x0058684c, 0x00353b22, 0x002a4219, 0x004f7252, 0x00555e53, 0x00332b2d, 0x00353334, 0x00445336, 0x00655432, 0x00684032, 0x005f3944, 0x00605058, 0x005e5c68, 0x004b4d65, 0x003b3f5b,
- 0x001f2743, 0x00181b38, 0x00191735, 0x001b1b37, 0x00434c60, 0x005d585d, 0x00332728, 0x00130b0c, 0x000d0c08, 0x00100e0a, 0x000c0605, 0x00120907, 0x00160803, 0x00230f08, 0x00412920, 0x005b4137,
- 0x00653e25, 0x00613b24, 0x00542c1d, 0x005a372a, 0x00523a30, 0x00321f19, 0x00170709, 0x0012080d, 0x00070e0c, 0x00000809, 0x00050b0f, 0x00030e07, 0x00060b06, 0x00100d08, 0x00150d08, 0x001c1011,
- 0x001f181e, 0x00222032, 0x003c3e62, 0x004f5687, 0x005869a6, 0x005a6dab, 0x006074b4, 0x005f76b5, 0x005775ae, 0x00597bb3, 0x006683be, 0x00758ccc, 0x007e96cf, 0x00859acf, 0x00909fd6, 0x0096a5da,
- 0x009ea6b9, 0x00bac0d0, 0x00eeeef9, 0x00fafcfe, 0x00fcfdfa, 0x00fefdfa, 0x00fffdfb, 0x00f0e9ea, 0x00807c78, 0x003f393b, 0x004e3d43, 0x00553d40, 0x00604746, 0x00655047, 0x006e584f, 0x006e5952,
- 0x005e5445, 0x00584f44, 0x00534a46, 0x004f4647, 0x00473d48, 0x0040394b, 0x0038334a, 0x00312c48, 0x001f293f, 0x00192542, 0x0019234d, 0x00182152, 0x00171d5b, 0x00191c60, 0x0021206d, 0x00242372,
- 0x00202a5b, 0x002b335f, 0x003d3a5e, 0x00483d54, 0x005e4447, 0x007f5a51, 0x00b38374, 0x00c58c78, 0x00c1886b, 0x00c4876c, 0x00b77464, 0x00a15e57, 0x008b4e46, 0x008b4e43, 0x00905049, 0x009a5c4e,
- 0x00a27257, 0x00b58165, 0x00c89077, 0x00c08b6e, 0x00ac7859, 0x009e6c48, 0x00906446, 0x00846049, 0x00483b29, 0x002d2214, 0x002d2118, 0x00312018, 0x002e211b, 0x00282322, 0x00272428, 0x00232731,
- 0x001a252e, 0x0016222b, 0x00151d2c, 0x0010182a, 0x00091328, 0x000a1329, 0x00131630, 0x00191a32, 0x001a212f, 0x00252933, 0x00353340, 0x00423c43, 0x00534444, 0x005f4a44, 0x00664640, 0x00694435,
- 0x00866d56, 0x00d0c2ad, 0x00fbfcf1, 0x00fcfefa, 0x00f5fefe, 0x00fbfcff, 0x00f7edf4, 0x00a9979b, 0x003b2319, 0x004f3223, 0x00623f30, 0x00673f30, 0x00604136, 0x00584239, 0x00584842, 0x005c4d4a,
- 0x00545437, 0x004f4e35, 0x00494532, 0x00423e2f, 0x00403c30, 0x00433e32, 0x004a4337, 0x0050473a, 0x004b4d32, 0x004b502e, 0x004e4f34, 0x004a492f, 0x003f3f30, 0x003d3c37, 0x003a3843, 0x00363748,
- 0x0022334b, 0x00223250, 0x00213055, 0x001a2d52, 0x00172c57, 0x00162446, 0x00162542, 0x00152344, 0x001e3457, 0x002e5182, 0x003e65ab, 0x004176ca, 0x00508de8, 0x004d85e1, 0x004171cd, 0x004470ca,
- 0x003372b5, 0x00295d9f, 0x002f539c, 0x004560aa, 0x00435fa8, 0x00415696, 0x0062659c, 0x00866b8b, 0x00b85542, 0x00d14d27, 0x00ef4e24, 0x00f74723, 0x00f64b1c, 0x00f24f16, 0x00f45018, 0x00f35114,
- 0x00ee4f0c, 0x00f04d16, 0x00f3491b, 0x00ec471b, 0x00e2461e, 0x00cf4b23, 0x00d56141, 0x00de7f63, 0x00e6c2a9, 0x00f2ede1, 0x00e5effb, 0x00a8c3da, 0x006f8da9, 0x007f97b0, 0x00abb8d3, 0x00d1d5f0,
- 0x00cad9d5, 0x00a5afa6, 0x0064655c, 0x0054493a, 0x0058452d, 0x004f3821, 0x004d3120, 0x0049291b, 0x00301d12, 0x002a1413, 0x00260f15, 0x00230f13, 0x00200a12, 0x00230811, 0x00260713, 0x002b0714,
- 0x00240509, 0x0023060a, 0x0025070e, 0x00250710, 0x0025090f, 0x00230812, 0x00270c19, 0x002b1321, 0x00251f29, 0x00272538, 0x002d2c4a, 0x00313659, 0x002d3d66, 0x002b406c, 0x00293f71, 0x00284275,
- 0x0023436e, 0x002e4a71, 0x00405579, 0x004d5d7a, 0x005c6275, 0x0062636d, 0x00645e65, 0x0062595a, 0x00535142, 0x004d4a35, 0x004e463b, 0x00504c48, 0x005b524a, 0x00605747, 0x006f6152, 0x007b6f5c,
- 0x007e7d62, 0x007f846e, 0x007d867a, 0x00798785, 0x00788c8e, 0x00a4adb1, 0x00f1f2f4, 0x00fdfdfe, 0x00f8fbf6, 0x00f9fcf7, 0x00fcfafd, 0x00c4c1c2, 0x00323334, 0x0007090b, 0x00080a0d, 0x000d1218,
- 0x000b1508, 0x00101a10, 0x00242526, 0x002b2a32, 0x0025263a, 0x001f213c, 0x00171d43, 0x000c1545, 0x00001647, 0x000c265a, 0x001a356f, 0x0014366b, 0x005e7295, 0x00bac3d6, 0x00cdc8d0, 0x00d5c9c8,
- 0x00c4c0bc, 0x00a6aeb8, 0x0095a5c8, 0x0089ace4, 0x006194df, 0x005990d6, 0x00649ee0, 0x006ba3e0, 0x007db5e0, 0x009ad0ed, 0x00b4ddfd, 0x00add5f3, 0x00a9c5e4, 0x00afc6e5, 0x00b4c7e8, 0x00b8c7eb,
- 0x00d5dbd7, 0x00e0e6df, 0x00e6e5e4, 0x00e4e5e2, 0x00eae9ea, 0x00eaebea, 0x00ebebec, 0x00ebebed, 0x00e0e7e0, 0x00e2e5df, 0x00e7e5e6, 0x00e9e6e7, 0x00e9e9ea, 0x00e9e9eb, 0x00eae9ec, 0x00eae7ec,
- 0x00e2e8e3, 0x00e3e8e3, 0x00e8e7e9, 0x00e9e8e9, 0x00e9e9e8, 0x00e9e8e5, 0x00ece9e7, 0x00e9e2e2, 0x00dde2d9, 0x00e2e2dd, 0x00edeae9, 0x00f8f6f4, 0x00fdfdfd, 0x00fefbfb, 0x00fffdfc, 0x00fffdff,
- 0x00f4fcf6, 0x00a2a6a3, 0x000f070a, 0x001e1015, 0x002f2020, 0x00282321, 0x0024272a, 0x00253645, 0x004f7d9e, 0x0070a5d8, 0x005e98de, 0x004f91e4, 0x00498de1, 0x00458be0, 0x00458ae2, 0x00468de5,
- 0x003783d5, 0x00377fd2, 0x00397cd2, 0x003a7ad0, 0x003c7cd1, 0x00377dd7, 0x00327cd6, 0x003377d3, 0x002d71c9, 0x002d6cc5, 0x00346bc7, 0x003266c4, 0x00285eba, 0x002e67c2, 0x00326cc8, 0x002b66c0,
- 0x001d68b6, 0x002466bd, 0x002762c4, 0x002f60c6, 0x004360bd, 0x004f5fac, 0x005e66a5, 0x00585588, 0x00303653, 0x00152040, 0x00070f3a, 0x000f2763, 0x00263466, 0x00333961, 0x00534b6b, 0x006c5f76,
- 0x00776a6e, 0x007c6d6f, 0x00836e74, 0x00806f75, 0x007f6f76, 0x007c697f, 0x0071607b, 0x005d5c70, 0x003f5867, 0x002d4f76, 0x00264688, 0x00183592, 0x001a328f, 0x00213574, 0x00111d45, 0x0023303a,
- 0x0061676f, 0x00424b4f, 0x0011121c, 0x00060511, 0x000e0f1a, 0x000d1017, 0x00110e15, 0x00111017, 0x00090f0e, 0x000a0f0f, 0x000f1114, 0x00101016, 0x00101016, 0x000f1015, 0x00111116, 0x00131117,
- 0x000b0f0c, 0x000a100e, 0x000e1114, 0x000f1217, 0x000f1119, 0x00101215, 0x00141314, 0x00131315, 0x00111310, 0x00131411, 0x00171616, 0x00151415, 0x00767677, 0x00e5e5e6, 0x00ffffff, 0x00ffffff,
- 0x00e9e6e5, 0x00cac7c6, 0x00cbc7c8, 0x00cfcccc, 0x00c8c7c6, 0x00cbcaca, 0x00cecaca, 0x00cfcacb, 0x00cbc9c9, 0x00cdcac9, 0x00cdcbca, 0x00cccbca, 0x00cbcaca, 0x00cbcbca, 0x00c9cbc9, 0x00c8cbc9,
- 0x00cccbcd, 0x00cccbcc, 0x00cbcbcd, 0x00cbcbcf, 0x00cbcace, 0x00cac9cb, 0x00cbcaca, 0x00cecacc, 0x00cdccc6, 0x00cccbc5, 0x00cccac3, 0x00cccbc3, 0x00cfcdc7, 0x00d2d1cb, 0x00d4d4cf, 0x00d5d4d1,
- 0x00d6d8d5, 0x00d7d8d4, 0x00d8d7d6, 0x00d7d7d6, 0x00d8d6d4, 0x00d7d6d3, 0x00d7d6d5, 0x00d7d7d6, 0x00d8d8d4, 0x00d7d7d4, 0x00d8d6d7, 0x00d9d6d8, 0x00d8d5d7, 0x00d9d6d8, 0x00d8d7da, 0x00d7d7d8,
- 0x00dfdbdc, 0x00dddada, 0x00dddadc, 0x00ded9dd, 0x00dfdcdc, 0x00dfdedb, 0x00dee0dc, 0x00dde0dc, 0x00dde0df, 0x00dddedf, 0x00dfdee0, 0x00e0dfe0, 0x00dfe0e1, 0x00dddfe0, 0x00dcdfdf, 0x00dbdedf,
- 0x00dedbdc, 0x00dddbdb, 0x00dcdbdd, 0x00d9dbde, 0x00d8dddf, 0x00d5dcde, 0x00d1d7d9, 0x00cdd2d2, 0x00d0d0cf, 0x00d5d4d0, 0x00d9d9d3, 0x00d8dcd6, 0x00dadeda, 0x00d9dedc, 0x00d3d8d7, 0x00ced4d3,
- 0x00cbd0d2, 0x00ced1d3, 0x00ced1d2, 0x00d2d3d4, 0x00d6d3d4, 0x00d5d5d4, 0x00d6d8d7, 0x00d7d5d4, 0x00d2d6d5, 0x00d5d6d4, 0x00d7d5d7, 0x00d9d4d8, 0x00d9d4d6, 0x00d8d3d6, 0x00dad1d9, 0x00d7d1d7,
- 0x00d6d0cd, 0x00d6d1ce, 0x00d7d1d1, 0x00d6d2d2, 0x00d3d2d3, 0x00d4d4d5, 0x00d5d5d7, 0x00d5d5d7, 0x00d3d5d8, 0x00d4d6d7, 0x00d7d5d6, 0x00d7d6d4, 0x00d7dad6, 0x00d6d9d4, 0x00d7d8d4, 0x00d6d9d5,
- 0x00d2d6d6, 0x00d3d3d6, 0x00d3d0d4, 0x00cfcfcf, 0x00cecccf, 0x00d3c5d6, 0x00d2c5d5, 0x00cbcdca, 0x00c3d5bf, 0x00c5d7bf, 0x00c9d6c4, 0x00a8aea5, 0x006c686a, 0x008d878c, 0x00c7c5c5, 0x00e4e7df,
- 0x00effdf8, 0x00f9fdf7, 0x00d6c3c0, 0x008d6060, 0x00a95657, 0x00cd6e6c, 0x00d56d60, 0x00ce6349, 0x00ce7140, 0x00d47945, 0x00d86935, 0x00e74d26, 0x00df4319, 0x00e2471e, 0x00e55326, 0x00de5728,
- 0x00d06230, 0x00c46a3a, 0x00bc7842, 0x00b08248, 0x009d8148, 0x00a3804f, 0x00a67d4d, 0x00a57d4c, 0x00a27b4a, 0x009b7343, 0x008f6638, 0x009b6f46, 0x00a47e5a, 0x00a37859, 0x00956c51, 0x00895d45,
- 0x00754934, 0x0069452b, 0x0064472c, 0x004a3817, 0x005b5837, 0x00a1a88a, 0x00cad4be, 0x00aebaae, 0x00a2a7b1, 0x00dbdeed, 0x00f7f9f9, 0x00fefdf2, 0x00d9dad3, 0x00a4a4a5, 0x00878587, 0x008c8688,
- 0x009a8b7e, 0x00ad947b, 0x00bca175, 0x00c29d63, 0x00c99d54, 0x00c9a176, 0x00d3b090, 0x00e1ba9b, 0x00c4a378, 0x009c7b51, 0x008b693f, 0x009c784d, 0x009e7c53, 0x00a07c56, 0x009c7656, 0x00997558,
- 0x00977454, 0x00947351, 0x00916e4a, 0x008e6d47, 0x008a6c40, 0x008d6e43, 0x009c7a53, 0x00a78463, 0x00967658, 0x007b543f, 0x00725747, 0x0082766b, 0x0084949d, 0x00749bb4, 0x0065a2c4, 0x005fa4cf,
- 0x0067a8cd, 0x0079adc6, 0x007faaba, 0x0074959c, 0x004a6564, 0x00334245, 0x00262f36, 0x001f252a, 0x001d1a1d, 0x00211719, 0x00322225, 0x00433033, 0x005e4d4a, 0x0071635b, 0x0083756b, 0x008b8073,
- 0x0089888a, 0x00ababac, 0x00f3f2f2, 0x00fcfcf8, 0x00fcfef8, 0x00fdfff8, 0x00fbfdf5, 0x00d8dad0, 0x00686c61, 0x00474c42, 0x00747771, 0x00979792, 0x00b6b8b2, 0x00c5c4bd, 0x00d3d0ca, 0x00dad8d0,
- 0x00e5e3db, 0x00e6e3da, 0x00e9e5dc, 0x00eeebe0, 0x00f0ede3, 0x00f4f2ec, 0x00f6f5f5, 0x00f5f7fb, 0x00f5fcfa, 0x00f6fbfa, 0x00fbfafa, 0x00fffbf7, 0x00fdfaf1, 0x00fcfaf2, 0x00fbfaf6, 0x00fafbfb,
- 0x00f6fefe, 0x00faffff, 0x00fafdfc, 0x00fcfefc, 0x00fcfdfa, 0x00fbfcfa, 0x00fbfdfc, 0x00fafdfe, 0x00f9fdfc, 0x00f8fffc, 0x00fafcf9, 0x00fdf8f5, 0x00fef9f4, 0x00fdfbf8, 0x00fefdfb, 0x00fcfcf9,
- 0x00fdfdfa, 0x00fdfaf9, 0x00fcfcf9, 0x00fefbf7, 0x00fcf9f3, 0x00fcfafa, 0x00fbfef8, 0x00fefcf1, 0x00f9ffe2, 0x00fcffe3, 0x00fdfeeb, 0x00fffff7, 0x00fafcf9, 0x00f8fef9, 0x00f6fff7, 0x00f5fef4,
- 0x00fdfdeb, 0x00fdfeec, 0x00fdfff0, 0x00fbfff4, 0x00f8fcf6, 0x00f7fcf9, 0x00f4faf9, 0x00f2f8f8, 0x00ebf2f5, 0x00e6eff2, 0x00e0eaed, 0x00dce7ea, 0x00d8e4e3, 0x00d1ddd4, 0x00c4cec3, 0x00bdc5bf,
- 0x00adb3b5, 0x00a0a5ae, 0x009197a1, 0x008d9599, 0x007c8586, 0x00727992, 0x005e648b, 0x00505878, 0x003e4458, 0x00313746, 0x00757680, 0x00e4e2e6, 0x00fffdfd, 0x00fcfaf7, 0x00fcfbf6, 0x00fdfef8,
- 0x00f6d7c0, 0x00db8564, 0x00bc4e1f, 0x00d44513, 0x00c8431d, 0x00ab4635, 0x00c58285, 0x00ddc1d2, 0x00e7ebf2, 0x00e5edee, 0x00dfe2e6, 0x00d7cfdc, 0x00ccc6d1, 0x00ddd5e1, 0x00f2eaf6, 0x00f9f3fc,
- 0x00eae7f0, 0x00ded7e5, 0x00cdc7d8, 0x00dcd2e5, 0x00dcd2e8, 0x00d5cbdf, 0x00d7d0db, 0x00ede6e1, 0x00eec3ae, 0x00dc8c77, 0x00ce755b, 0x00844023, 0x00182703, 0x001f4121, 0x001e3f2d, 0x00373f41,
- 0x00436855, 0x00606b58, 0x00323c1e, 0x00253912, 0x00486d4b, 0x0061685d, 0x00423f40, 0x003f3e3c, 0x0043472e, 0x005c4023, 0x006f4233, 0x00966c72, 0x00b1999c, 0x00afa0a3, 0x009e97a0, 0x00888592,
- 0x00685d76, 0x003b2c48, 0x00231931, 0x00120e26, 0x00242838, 0x0061595f, 0x005f5052, 0x0026171c, 0x001a0f11, 0x00201312, 0x00221211, 0x00210e0b, 0x00281009, 0x00371c12, 0x00503326, 0x005f4030,
- 0x00764833, 0x006e4332, 0x004b2114, 0x00502d21, 0x005e443c, 0x00432f2a, 0x00190a0a, 0x000e070b, 0x00090c12, 0x0002070f, 0x00040a13, 0x00030e0b, 0x00070f06, 0x00141106, 0x00211408, 0x00312014,
- 0x00382528, 0x002f2134, 0x00282646, 0x00333b65, 0x0042548b, 0x00495e9a, 0x005069a4, 0x00556caa, 0x005872b0, 0x005a77b6, 0x005f7ab9, 0x00677fbf, 0x006f87c0, 0x00768bc2, 0x007d8fc6, 0x008596cb,
- 0x009497b0, 0x00b4b6c9, 0x00edecf7, 0x00fcfdff, 0x00fcfdfa, 0x00fdfcf7, 0x00fffcf8, 0x00e4dedc, 0x00726967, 0x003b2f33, 0x004a3439, 0x00553b39, 0x005f443b, 0x00674d41, 0x006e5545, 0x006f5845,
- 0x00675443, 0x005f4f43, 0x00594a43, 0x00534545, 0x00493e46, 0x0041394c, 0x0036334c, 0x002c2b48, 0x001f2946, 0x0019234a, 0x00152151, 0x00132057, 0x00121c5f, 0x00121a63, 0x00161c69, 0x00191d6e,
- 0x00192967, 0x00222e60, 0x002f3359, 0x003e3952, 0x004f393b, 0x006b4940, 0x00a4796a, 0x00c08b73, 0x00c28971, 0x00ca8a74, 0x00b47767, 0x00a36460, 0x009a5e56, 0x009c5e54, 0x00895146, 0x00985f4d,
- 0x00ad7864, 0x00b9836b, 0x00be8a6f, 0x00b38166, 0x00a57354, 0x009a6e4a, 0x00825f3d, 0x0072553a, 0x0048392d, 0x0035291e, 0x00372b23, 0x00382920, 0x00322620, 0x00302a28, 0x00302f30, 0x00242e32,
- 0x00252b37, 0x001f2734, 0x00192132, 0x00121c2f, 0x000a152d, 0x000b152e, 0x00141a34, 0x001c203a, 0x0026283d, 0x00343346, 0x00413e4e, 0x004a474d, 0x00594b4c, 0x00634d47, 0x00674a3f, 0x00674735,
- 0x00967565, 0x00dfcfbf, 0x00fbfaf1, 0x00f8fef9, 0x00f0fffb, 0x00f7fafb, 0x00f1e7eb, 0x009c8a8b, 0x003f211b, 0x00573227, 0x00673e31, 0x006c4132, 0x00674539, 0x0060473d, 0x005f4f47, 0x00635952,
- 0x00615e46, 0x00585640, 0x004e4b38, 0x00484434, 0x00474234, 0x004c4537, 0x00514b3a, 0x00564f3d, 0x005a563b, 0x005b5839, 0x005e593c, 0x005a573a, 0x004f4c3a, 0x0045443c, 0x003d3c41, 0x00373847,
- 0x002c3451, 0x00293353, 0x00222e52, 0x001a2b50, 0x0015274f, 0x00192544, 0x001b2641, 0x001c2b48, 0x0032466f, 0x00406397, 0x00436fb5, 0x004a85da, 0x004f91ee, 0x004582df, 0x00346bc2, 0x003d70c1,
- 0x00457fd3, 0x003c6fca, 0x001e4cac, 0x001a48b1, 0x002a5ecc, 0x003b66cb, 0x005464b0, 0x00846a92, 0x00d65938, 0x00f04712, 0x00fb4609, 0x00fe401d, 0x00fc4813, 0x00f55119, 0x00eb5913, 0x00e35f18,
- 0x00e5581b, 0x00e6531d, 0x00e44c1a, 0x00ec4d28, 0x00f35534, 0x00ec744f, 0x00f1a481, 0x00f7c6aa, 0x00f8e7db, 0x00e9f4f2, 0x00d4f1fd, 0x0099c4db, 0x006695b1, 0x007fa3c2, 0x009fb8d6, 0x00b9c8e6,
- 0x00cedce1, 0x00bdc8c6, 0x008a8f86, 0x005e5648, 0x0055402a, 0x00543721, 0x004e2f1d, 0x00482615, 0x00361b17, 0x002f1413, 0x00260e10, 0x00210e0f, 0x00200b10, 0x0023070d, 0x0024040b, 0x0027020a,
- 0x0027040b, 0x0026040d, 0x0025050e, 0x0024060e, 0x0025080f, 0x00220811, 0x00240c17, 0x00281120, 0x00271d2f, 0x00272238, 0x00272745, 0x002a3154, 0x00283964, 0x00243b69, 0x001f3969, 0x001e3d6c,
- 0x00254172, 0x002e4775, 0x0040547b, 0x0050607c, 0x00606678, 0x00686b73, 0x006c696c, 0x00666261, 0x005c594e, 0x00554f44, 0x00514a45, 0x00514e4f, 0x005d5550, 0x00615a4f, 0x006c6454, 0x0077715b,
- 0x00858170, 0x0086887a, 0x007e867d, 0x00788686, 0x007a8f93, 0x00adb5bd, 0x00f4f5f9, 0x00fcfdfe, 0x00fbfcfc, 0x00fdfdfb, 0x00fcf9fa, 0x00b9b7b5, 0x00212121, 0x00010504, 0x00000706, 0x00040f0d,
- 0x00121a0b, 0x00192115, 0x00242622, 0x0028282e, 0x001f2133, 0x00161b35, 0x0011193d, 0x000a1543, 0x00071d53, 0x00132d67, 0x0010336c, 0x0003326c, 0x004c6d8b, 0x00a3b6c9, 0x00c9ccd1, 0x00d6d1cf,
- 0x00b3adb8, 0x00656e8f, 0x004f6ba2, 0x004e7ecd, 0x004a8ef2, 0x0062a8f9, 0x006ab2fb, 0x0061acf1, 0x007bbff8, 0x0096d2fe, 0x008bc2eb, 0x007aa7d2, 0x00779dc2, 0x0089a9d4, 0x0094b4da, 0x00a5c3e8,
- 0x00dcdddb, 0x00e7e7ea, 0x00e5e7e5, 0x00e8e9e6, 0x00eeecee, 0x00f0f0f2, 0x00ededee, 0x00e8ebea, 0x00e5e6e6, 0x00e6e7e8, 0x00e5e6e2, 0x00e9e8e8, 0x00e7e7e9, 0x00e6e8e7, 0x00e6e7e7, 0x00e9e8e8,
- 0x00e2e3e2, 0x00e7e3e6, 0x00e6e5e3, 0x00e7e9e9, 0x00ecedeb, 0x00e8e9e7, 0x00e6e7e6, 0x00e5e5e3, 0x00e3e4e3, 0x00e6e4e1, 0x00eceae7, 0x00f8f5f3, 0x00fcfcfa, 0x00fdfdfc, 0x00fcfdfb, 0x00fdfefe,
- 0x00fafbfb, 0x00a6a7a7, 0x000d0509, 0x001e0d15, 0x002d1e20, 0x002b2426, 0x00252930, 0x003f5565, 0x006593c4, 0x00679edd, 0x005793e0, 0x004d8fe6, 0x00458be1, 0x00458be4, 0x004186e2, 0x003980dc,
- 0x00387cd8, 0x003476d2, 0x003472cc, 0x003873cc, 0x003674c8, 0x00337ad7, 0x002f7dda, 0x002e7bda, 0x003276d3, 0x003171d0, 0x00326ccd, 0x003067c7, 0x00265ebd, 0x002561bc, 0x002a69c1, 0x002a6bc1,
- 0x000f65c3, 0x002368c8, 0x002c61c3, 0x00365bc0, 0x00415ec2, 0x004165c2, 0x003f65b8, 0x004165aa, 0x006170a2, 0x005b5a85, 0x0021255f, 0x00022188, 0x000b2c86, 0x00203788, 0x00374589, 0x00474e88,
- 0x00585589, 0x00575482, 0x0056527d, 0x005a5582, 0x005a5a85, 0x00525588, 0x00445185, 0x00394e7b, 0x001f4c76, 0x000f4385, 0x0005378f, 0x00012b9a, 0x0012329c, 0x0025397e, 0x00111e43, 0x00293134,
- 0x006a6b76, 0x006f6d7c, 0x00343441, 0x000e0d18, 0x000a0d17, 0x000e0e1b, 0x000f0f18, 0x000c1212, 0x000e0f10, 0x000d1213, 0x000c1112, 0x00101215, 0x00111318, 0x000f1218, 0x000f1117, 0x000f1117,
- 0x000c0f11, 0x000c1012, 0x000e1115, 0x000e1215, 0x000e1014, 0x000e1111, 0x00101212, 0x00101113, 0x00121211, 0x00151515, 0x00151515, 0x00171717, 0x007b7a7b, 0x00e9e9e9, 0x00fefefd, 0x00fcfcfb,
- 0x00bab2a2, 0x003e2f1f, 0x00412f1f, 0x003d2b18, 0x00442f1f, 0x003e2c1b, 0x003e2e1a, 0x00402d1c, 0x003e2d21, 0x003f2d1f, 0x003d2e1b, 0x003a3019, 0x003c2f1b, 0x003d2d1d, 0x003e2c1f, 0x00402b20,
- 0x00412c1e, 0x00432c20, 0x00462b23, 0x00482925, 0x00482725, 0x00432a1e, 0x003f2d18, 0x003f2d18, 0x00422c1e, 0x00432d20, 0x00412c1e, 0x003f2a1a, 0x00412a1d, 0x00442d20, 0x00452f22, 0x00463125,
- 0x00433221, 0x00433220, 0x00443224, 0x00443226, 0x00433227, 0x00423428, 0x0043362c, 0x0043372f, 0x00453a32, 0x00453d34, 0x00453e37, 0x00463e39, 0x004b423c, 0x00504741, 0x00534c47, 0x0054504a,
- 0x0050534b, 0x0053584e, 0x00595f58, 0x005d625e, 0x00606460, 0x005d625f, 0x005f6362, 0x00606564, 0x00646667, 0x00636666, 0x00656765, 0x00646662, 0x00656764, 0x00666664, 0x00686463, 0x00686363,
- 0x00626460, 0x00626460, 0x00616461, 0x00616562, 0x00636864, 0x005f6360, 0x005e615f, 0x005e605e, 0x00636161, 0x00656060, 0x00645f5f, 0x00636261, 0x00696365, 0x006d6366, 0x006b5d61, 0x0069595e,
- 0x0066595c, 0x00665c5e, 0x00665e5f, 0x0063625f, 0x00626262, 0x005c6463, 0x005c6564, 0x005f6563, 0x006a616d, 0x006d606c, 0x006d616b, 0x00696269, 0x00676368, 0x00636869, 0x005e6b68, 0x005b6e67,
- 0x00666465, 0x00646363, 0x00626262, 0x005f615f, 0x005c5f5d, 0x00595d59, 0x00575853, 0x0054534e, 0x00564e4c, 0x00574f4b, 0x00544d49, 0x004d4a44, 0x004a4741, 0x0048413b, 0x004a3f39, 0x004c433a,
- 0x00443d37, 0x00423f38, 0x00403e3b, 0x003e3e3f, 0x003e3f42, 0x00443f3f, 0x004a413d, 0x004d4540, 0x00514a46, 0x004d4844, 0x004e4747, 0x00423f3e, 0x00595755, 0x008b8a89, 0x00cfcbcd, 0x00eee9ec,
- 0x00dffefd, 0x00f2fcfa, 0x00ebcbc8, 0x009f5951, 0x009a3824, 0x00ba5f41, 0x00e28864, 0x00ed8d67, 0x00e56d44, 0x00e45c32, 0x00e55f42, 0x00d86a61, 0x00d1594d, 0x00d14a38, 0x00df4e30, 0x00ec5124,
- 0x00ea500e, 0x00e35a19, 0x00d86228, 0x00c56933, 0x00aa7148, 0x009c784d, 0x00927b49, 0x008f8041, 0x00a1823a, 0x00a9783a, 0x00a3743e, 0x009f7a4d, 0x00898a5b, 0x008f8755, 0x008e743d, 0x00935b24,
- 0x006f4d28, 0x00634623, 0x005d4a2d, 0x0041371d, 0x005e634f, 0x009dac9a, 0x00b9ccbe, 0x00a5b4ae, 0x00aec0b9, 0x00d8e5e4, 0x00daedf0, 0x00c0e4f6, 0x008fbfda, 0x0071a8cb, 0x0066a0c6, 0x0067a0cb,
- 0x007595b3, 0x009290a0, 0x00af878c, 0x00c7796d, 0x00df6c55, 0x00ee673d, 0x00f56738, 0x00fc744a, 0x00de623c, 0x00b84824, 0x00ac4e29, 0x00ae5f3b, 0x00ac704b, 0x00a9764f, 0x00a1764d, 0x009a774c,
- 0x00977443, 0x00937344, 0x008e7046, 0x00886b45, 0x00856c40, 0x00876f3b, 0x00947d43, 0x00a18b50, 0x00aa8d64, 0x00987a5a, 0x008a644c, 0x009c7259, 0x009396a4, 0x007197bc, 0x006094ca, 0x005d98ce,
- 0x00799fb6, 0x00a2b2b9, 0x00bdbcb8, 0x00bdb6ad, 0x0095948f, 0x005c6b73, 0x00283b4a, 0x0018212e, 0x00221422, 0x002c131a, 0x00452526, 0x00573634, 0x00684c47, 0x0075615b, 0x0082736e, 0x00878179,
- 0x00888571, 0x00aca79e, 0x00f6f1f3, 0x00fffbff, 0x00fdfafe, 0x00fefcfc, 0x00fdfdfa, 0x00d8d9d5, 0x00534e4e, 0x001c1615, 0x0028231d, 0x00302c1c, 0x00393824, 0x003d3b27, 0x0043412f, 0x00474532,
- 0x0053513f, 0x005b5947, 0x006c6957, 0x007a7765, 0x00848170, 0x00908e7f, 0x00a19f93, 0x00afaca2, 0x00b7b3a8, 0x00bab8ad, 0x00c3c1b7, 0x00ccc9be, 0x00d5d2c7, 0x00dddacf, 0x00e5e4da, 0x00e7e8df,
- 0x00e5ecdd, 0x00ebf1e5, 0x00f2f7ef, 0x00f5f8f3, 0x00fcfefa, 0x00fafdf8, 0x00fbfdf9, 0x00fcfffa, 0x00fefef1, 0x00fdfdf2, 0x00fdfdf5, 0x00f5fdfb, 0x00fffcfe, 0x00fefdff, 0x00fcf8fd, 0x00fdf8fe,
- 0x00fcf8f9, 0x00fbf8f8, 0x00fff9f8, 0x00fefaf5, 0x00fff7ef, 0x00fbfaf5, 0x00fdfdf5, 0x00fdfcf2, 0x00fffff0, 0x00fcffee, 0x00f9fdef, 0x00f8faf3, 0x00fffaff, 0x00fff6fe, 0x00fff4ff, 0x00fdf2fe,
- 0x00fcfcfb, 0x00fbfbf9, 0x00fdfefc, 0x00fbfefd, 0x00fcfefe, 0x00fbfdfb, 0x00fcfff9, 0x00fefff7, 0x00fffef5, 0x00fdfef2, 0x00fcfdf6, 0x00f9fbfa, 0x00fcfefe, 0x00feffff, 0x00feffff, 0x00fcfefd,
- 0x00f9fbfc, 0x00f7fafb, 0x00f5f7fb, 0x00f3f5f7, 0x00f1f1f2, 0x00efeeef, 0x00ebe9ec, 0x00e6e5e7, 0x00e5e3e6, 0x00dfdcde, 0x00dedddb, 0x00edede9, 0x00fefdfa, 0x00fffefb, 0x00fdfdf9, 0x00fffefb,
- 0x00faebe2, 0x00d3b0ae, 0x009b605d, 0x00ac5444, 0x00d74917, 0x00cb4310, 0x00cc5d34, 0x00df9e92, 0x00e7e2ea, 0x00e7e8ef, 0x00e7e6ed, 0x00dcd2dc, 0x00cfc8d1, 0x00dad3dd, 0x00f0eaf3, 0x00f5f3fd,
- 0x00ecebf2, 0x00dadde3, 0x00dad4df, 0x00d9d2dc, 0x00e2d6e3, 0x00c0dbd1, 0x00d1dbc3, 0x00f2c6a7, 0x00f78050, 0x00e76f3d, 0x00b6562d, 0x00512509, 0x000e2215, 0x00243e36, 0x00253a36, 0x00383e3b,
- 0x004a5c3a, 0x00516650, 0x0031443b, 0x0022312c, 0x00796b66, 0x00a58772, 0x008f5d47, 0x00663018, 0x0049241e, 0x006c5454, 0x00af9da7, 0x00bfb1bf, 0x00c2b5be, 0x00c2b7bd, 0x00c5bac0, 0x00bfb6bb,
- 0x00a7a8ab, 0x00757482, 0x002f2f49, 0x00181638, 0x00161542, 0x0036344c, 0x006b6973, 0x00544f56, 0x002b1e18, 0x00352316, 0x0033210c, 0x0038240a, 0x00462813, 0x004d2d1f, 0x00583730, 0x00653e3c,
- 0x0085532d, 0x00734322, 0x00613319, 0x00724d34, 0x006e5544, 0x004a3b2b, 0x001d1307, 0x000e0901, 0x000c0c05, 0x00070901, 0x00160b08, 0x00260e04, 0x00452818, 0x0052321f, 0x00553421, 0x005a3421,
- 0x0055361c, 0x0054351f, 0x00462914, 0x00412917, 0x00523c2c, 0x0051424c, 0x005c536d, 0x00605d79, 0x005c5b83, 0x005e628b, 0x00646c94, 0x006a7298, 0x00777b9c, 0x00817f9e, 0x00958ba9, 0x00a597b2,
- 0x00b29d9e, 0x00d1bec0, 0x00fff2f7, 0x00fffcff, 0x00fefcff, 0x00fafcf8, 0x00fafff6, 0x00d3d2ca, 0x005b5548, 0x00362f1f, 0x00433325, 0x00503830, 0x005a3d30, 0x00624130, 0x00704934, 0x00784f3a,
- 0x0073543f, 0x006a5144, 0x0060504a, 0x00544d53, 0x00414253, 0x0032385b, 0x0028315e, 0x00232d5e, 0x001a2865, 0x00142466, 0x00102369, 0x000b2163, 0x00091d63, 0x00091c5d, 0x000d205e, 0x00122260,
- 0x000d2859, 0x00112d59, 0x001c345e, 0x0022365a, 0x00323144, 0x00453638, 0x00826157, 0x00b17f6e, 0x00c78076, 0x00ca8078, 0x00c07b70, 0x00a77665, 0x00b27869, 0x00ac7265, 0x00af6e63, 0x00b37264,
- 0x00bd7f68, 0x00bc8167, 0x00b37759, 0x00ae7553, 0x00a26942, 0x00815e42, 0x00765d4a, 0x00785c4a, 0x00573929, 0x004e3023, 0x004c2f25, 0x00483128, 0x00423733, 0x003c393b, 0x0038373c, 0x00343740,
- 0x0028313b, 0x00232b3b, 0x001c223b, 0x00161d3c, 0x000e163d, 0x0010193e, 0x001a2043, 0x00232949, 0x0032344c, 0x003f3e53, 0x0049495a, 0x00505057, 0x00645159, 0x006b4b4e, 0x00704a48, 0x0067423a,
- 0x00958271, 0x00eae0d2, 0x00fffbf4, 0x00fdfdfd, 0x00fbfdfe, 0x00f3fdfb, 0x00ddddd9, 0x00996f74, 0x006d2225, 0x0073352b, 0x007e4838, 0x00744731, 0x007f4438, 0x007a4940, 0x007d5750, 0x0075685d,
- 0x00786559, 0x006e5a4f, 0x005f4d44, 0x0056483f, 0x0051483e, 0x00534e40, 0x00585442, 0x005d5845, 0x006a614b, 0x006e664c, 0x0070684c, 0x00666041, 0x0057523f, 0x004d4b3e, 0x00434241, 0x003b3b45,
- 0x00313b4b, 0x002e344c, 0x00292a49, 0x00242641, 0x00232241, 0x002b2036, 0x00242039, 0x00333d63, 0x004064a6, 0x004272bd, 0x005286d8, 0x005b92e5, 0x00598ee2, 0x004678cb, 0x003267bd, 0x00336cc4,
- 0x00517fc0, 0x005287d3, 0x003672cc, 0x001454b7, 0x002058bb, 0x005066b4, 0x007f6ca1, 0x00af6a82, 0x00eb523a, 0x00f84617, 0x00fe470a, 0x00fc4c00, 0x00fc5011, 0x00ed5222, 0x00dc563a, 0x00c7594e,
- 0x00a96068, 0x009e6578, 0x008d5f77, 0x00967591, 0x00ceb1cd, 0x00e7e7e8, 0x00ebefe6, 0x00f7ece6, 0x00fceaed, 0x00f0edf5, 0x00dce3f7, 0x009ebed7, 0x006c9dc0, 0x0077a5cb, 0x008ab0da, 0x00accbf4,
- 0x00d3dee8, 0x00b7cbe0, 0x008ea6c7, 0x00728eb2, 0x00434f61, 0x00433e3a, 0x00493422, 0x004e2e14, 0x00341d17, 0x002d1b26, 0x00211023, 0x00190812, 0x001a050f, 0x0020060f, 0x0023050f, 0x0023000c,
- 0x00240309, 0x0023030a, 0x0022050a, 0x001f050a, 0x0020060c, 0x001d070f, 0x001f0d16, 0x00241120, 0x00251931, 0x00241f3b, 0x00242446, 0x00242b51, 0x0023315f, 0x00213464, 0x001d3264, 0x001a3565,
- 0x002d3f62, 0x003f4e70, 0x00515b7a, 0x005e667d, 0x006f6f81, 0x0073727d, 0x0074737a, 0x00727176, 0x006b686a, 0x00626062, 0x00595c5d, 0x00515d58, 0x00575c5c, 0x005e6361, 0x006b6e6f, 0x00737578,
- 0x00798282, 0x00778587, 0x00798a8e, 0x0070868b, 0x007a949c, 0x00bdc3d1, 0x00f8f3fc, 0x00fffeff, 0x00fffff9, 0x00fdfff3, 0x00fafdf1, 0x00a2a89b, 0x000e130b, 0x00030801, 0x00060d02, 0x00080f00,
- 0x001f160c, 0x0028201c, 0x0032272f, 0x002e2630, 0x00292730, 0x00202428, 0x00162028, 0x000d1a2a, 0x0012214d, 0x001a2862, 0x001c2b73, 0x000c2372, 0x0055657f, 0x00b0bab5, 0x00c7ccbb, 0x00cacdc7,
- 0x008b98c8, 0x002f428a, 0x004154a2, 0x00768ecb, 0x00b5d0ed, 0x00b0d8f8, 0x00699ed2, 0x005395cf, 0x006cb8f6, 0x0082c2f5, 0x009fcbf2, 0x00b0c7e2, 0x00cbc6d2, 0x00d3ced7, 0x00ded8e1, 0x00dde6ef,
- 0x00d3edf7, 0x00e2edec, 0x00e7e3de, 0x00f6eadc, 0x00f8eae1, 0x00eae8e3, 0x00d9e1e3, 0x00d6dde7, 0x00ece6e7, 0x00faeae6, 0x00f6eae6, 0x00e3eaf5, 0x00cbe7f3, 0x00c3e0f3, 0x00cbe0f2, 0x00d5e0ec,
- 0x00eddcca, 0x00f5dacb, 0x00fbe5d8, 0x00f2eae4, 0x00d9ebf5, 0x00b1e2f5, 0x009ed8f5, 0x00aedefa, 0x00cce5fb, 0x00d6e1ec, 0x00dfe0de, 0x00eeeadf, 0x00fffef4, 0x00fbfef5, 0x00fbfff9, 0x00f9fdff,
- 0x00f6fcfc, 0x00a1a5a6, 0x00090707, 0x00130d0f, 0x00241b21, 0x00161925, 0x00455469, 0x007c9bbf, 0x00679cdb, 0x005698df, 0x004b90dd, 0x00478cdf, 0x00468adc, 0x004186da, 0x003e7fd6, 0x003a7dd3,
- 0x003a7ed6, 0x003a7cd6, 0x00387bd5, 0x003477d2, 0x003172cd, 0x002e6cd3, 0x002e6ed7, 0x003173dc, 0x003477da, 0x003379da, 0x002f76d4, 0x002d74d0, 0x00286bcc, 0x002561c8, 0x00285eca, 0x002f62d4,
- 0x003863af, 0x002e5dae, 0x003265be, 0x002a65c4, 0x001e5fbe, 0x002265c3, 0x002a6bc5, 0x002f66b8, 0x004375b9, 0x006f9bd5, 0x0087ace4, 0x004b73b2, 0x000d367d, 0x0002307a, 0x00033688, 0x00003994,
- 0x00023a9a, 0x00003496, 0x0006319a, 0x00092b96, 0x00152e9f, 0x0007308a, 0x0007307e, 0x00102a71, 0x0017266d, 0x00112979, 0x00092b82, 0x00022e8d, 0x000d398f, 0x001f2c68, 0x00362249, 0x00754453,
- 0x00957e70, 0x00988789, 0x008b6f75, 0x005d2a28, 0x0040100f, 0x00100719, 0x00001129, 0x00001727, 0x001a0f02, 0x00171510, 0x00141615, 0x00131313, 0x00121214, 0x00111416, 0x000f1517, 0x000d1619,
- 0x000b1313, 0x000c1211, 0x000e1111, 0x000e1112, 0x00100f10, 0x00101113, 0x00111116, 0x00111119, 0x00131014, 0x00121115, 0x00121214, 0x00131315, 0x00828183, 0x00ececec, 0x00fcfdfb, 0x00fcfefc,
- 0x00baad9e, 0x002b1203, 0x00301605, 0x00301702, 0x002d1300, 0x002d1601, 0x002f1902, 0x002f1703, 0x002e1502, 0x002e1302, 0x002e1602, 0x002c1902, 0x002a1703, 0x002a1404, 0x002a1504, 0x002a1505,
- 0x002e1305, 0x002e1205, 0x002e1104, 0x002d0f03, 0x002d0e05, 0x00291205, 0x00251504, 0x00251407, 0x00241307, 0x00231307, 0x00251509, 0x0028180c, 0x002c1a10, 0x002d1b11, 0x002e1c11, 0x002e1d12,
- 0x00332416, 0x00352619, 0x00392a1d, 0x003a2c21, 0x003d3025, 0x0043382d, 0x00494035, 0x004a4238, 0x00514842, 0x00524c46, 0x0055514b, 0x0058534e, 0x005b5550, 0x005d5752, 0x005e5b55, 0x005d5d57,
- 0x00585b56, 0x005a5e5a, 0x005b605d, 0x005d645f, 0x005d6460, 0x005c6360, 0x005c605f, 0x005f6162, 0x00616365, 0x00636465, 0x00626361, 0x0060625f, 0x0060615f, 0x00626362, 0x00626362, 0x00646463,
- 0x00646461, 0x00646562, 0x00626461, 0x00616661, 0x00616761, 0x00636963, 0x00636863, 0x00636663, 0x00696564, 0x006a6565, 0x00666363, 0x00616563, 0x00656565, 0x00666464, 0x00686363, 0x006c6363,
- 0x00696363, 0x006a6466, 0x00666866, 0x00646965, 0x00636967, 0x00656867, 0x00646764, 0x00666463, 0x00696263, 0x00696062, 0x00695f62, 0x00655c5f, 0x005f5a5b, 0x00595958, 0x00535753, 0x004f5850,
- 0x00524e50, 0x004b494a, 0x00424242, 0x00393b3a, 0x00323532, 0x002b2d28, 0x0025241f, 0x0023201a, 0x00211814, 0x00231714, 0x00201713, 0x001b1711, 0x001f1813, 0x00211510, 0x0022160f, 0x00261a10,
- 0x002a2016, 0x002b241d, 0x002b2724, 0x00292a29, 0x002d2d2c, 0x00332f2c, 0x003a312d, 0x003e3732, 0x003e3a36, 0x003f3a37, 0x003f3a38, 0x00423c3c, 0x005e5b5d, 0x009a9799, 0x00d6d5d6, 0x00ededee,
- 0x00e6fff9, 0x00f5fefc, 0x00f0d5cf, 0x00a96968, 0x008d2d1b, 0x00aa4a2c, 0x00ca6940, 0x00e58157, 0x00fe906b, 0x00f3785b, 0x00d55d40, 0x00cd624e, 0x00d76754, 0x00d9604d, 0x00c94a2d, 0x00da4f2b,
- 0x00e7511e, 0x00e85a23, 0x00de5e26, 0x00c95c29, 0x00b35e33, 0x00a8623e, 0x009e6d44, 0x00977948, 0x009c7a44, 0x00aa7649, 0x00ad7a4d, 0x00a97752, 0x00928457, 0x00938155, 0x008f7043, 0x00955c34,
- 0x00795234, 0x00674930, 0x0056432c, 0x003d3423, 0x005d6962, 0x009cb0ae, 0x00a6c0c3, 0x0095b2be, 0x009bbdd1, 0x00accbe1, 0x00a3c0da, 0x009bbbde, 0x0087b5da, 0x007cb2dd, 0x0076b2e0, 0x0073b3e0,
- 0x007ca9ca, 0x0094a3ba, 0x00a19ba7, 0x00b48d8d, 0x00c27f74, 0x00c67b62, 0x00c6765b, 0x00cf785e, 0x00c96251, 0x00b14537, 0x00a63f30, 0x00a94936, 0x00a86245, 0x00a5734c, 0x00997a4a, 0x008a7943,
- 0x0091734d, 0x008f724f, 0x00896b4e, 0x0085684e, 0x00826746, 0x00856c44, 0x0091794b, 0x009d8658, 0x00a48867, 0x00977462, 0x00805f4c, 0x00896750, 0x007f8992, 0x00688fb3, 0x005993c4, 0x005093c7,
- 0x00759db9, 0x009ab1ba, 0x00b8c0bc, 0x00c7cac0, 0x00b0b5b0, 0x0081949b, 0x00415361, 0x001f2832, 0x0023181f, 0x002f191b, 0x00482927, 0x005d3936, 0x006e4f49, 0x007a635c, 0x0087776f, 0x008c8377,
- 0x00888376, 0x00aca59e, 0x00f5f1ef, 0x00fffcfe, 0x00fffafe, 0x00fffdff, 0x00fdfcfb, 0x00d4d5d0, 0x00484843, 0x00151110, 0x00211e15, 0x002a2813, 0x002d2b17, 0x002c2918, 0x002a2917, 0x002b2b17,
- 0x0032311d, 0x0031301c, 0x0032321f, 0x0033321f, 0x00343220, 0x00363624, 0x003f3e2e, 0x004a4437, 0x004e4a3d, 0x00534f43, 0x005a564b, 0x005d5a4e, 0x00676458, 0x00737163, 0x00807e6f, 0x00868474,
- 0x00929888, 0x009ba193, 0x00a8ada3, 0x00b4b8b0, 0x00c5c8c0, 0x00cfd1c9, 0x00d8d9d0, 0x00dfe0d7, 0x00e5e3d8, 0x00eae8dd, 0x00eeebe2, 0x00f0f1e9, 0x00f7f3f0, 0x00f6f5f6, 0x00f4f4f6, 0x00f6f8fd,
- 0x00f5fafd, 0x00f7fbff, 0x00f6fdfb, 0x00f6faf9, 0x00f4fcf7, 0x00f8fcfa, 0x00f9fefb, 0x00fafcfb, 0x00f8fefa, 0x00f8fffb, 0x00f6fcf7, 0x00f9fdfa, 0x00fcfdf9, 0x00fefbf9, 0x00fef9f6, 0x00fff9fa,
- 0x00fefdfb, 0x00fffefd, 0x00fefefd, 0x00fcfefd, 0x00fdffff, 0x00f9fbfb, 0x00fcfefd, 0x00fafcfb, 0x00fcfcf8, 0x00fdfef8, 0x00fbfcf7, 0x00fafaf9, 0x00fbfbfe, 0x00fdfdff, 0x00fdfdfe, 0x00fbfcfd,
- 0x00fcfcfc, 0x00fcfdfd, 0x00fcfdfe, 0x00fcfdff, 0x00fefffd, 0x00fffefd, 0x00fefdfc, 0x00fefdfd, 0x00fffeff, 0x00fefdfe, 0x00f8f6f7, 0x00f4f2f3, 0x00fefcfe, 0x00fefdfe, 0x00fcfbfa, 0x00fefefb,
- 0x00fef5f1, 0x00eed3d2, 0x00b98984, 0x00b35f4d, 0x00d34817, 0x00d24815, 0x00c0532c, 0x00cd8a7f, 0x00e5dae3, 0x00eeebf0, 0x00eae6eb, 0x00dfd3dd, 0x00d0c8d1, 0x00d8d1dc, 0x00ede9f2, 0x00f3f3fb,
- 0x00eeecf3, 0x00e3e1ea, 0x00d8d4de, 0x00e0d5e0, 0x00e2d9e3, 0x00e4d4d8, 0x00d8b9af, 0x00cc8973, 0x00cf5f34, 0x00cc693c, 0x008d491e, 0x003f1f09, 0x000f2217, 0x00273732, 0x002d3d37, 0x0034352c,
- 0x00424f30, 0x00586654, 0x0048584e, 0x00555c5c, 0x00948780, 0x00a48378, 0x00693c2b, 0x004c1b0a, 0x0067433e, 0x008f7b7c, 0x00bbabb5, 0x00bfb2c0, 0x00c0b3be, 0x00bfb3bc, 0x00c4bbc0, 0x00c1bec0,
- 0x00c1bfc5, 0x00b6b2c1, 0x005c5d72, 0x002b2a49, 0x0017173b, 0x0019152f, 0x0063616e, 0x006d6871, 0x00322923, 0x002e2114, 0x003b2a16, 0x003c260f, 0x00482b16, 0x00502e1f, 0x005c392e, 0x00664137,
- 0x0085532f, 0x007d4d2f, 0x0071452a, 0x007e5a45, 0x00735847, 0x004c392c, 0x0026180c, 0x00150c03, 0x000c0701, 0x00150f08, 0x00332619, 0x00533925, 0x006d4f3c, 0x00765642, 0x0071503a, 0x006b472f,
- 0x00614028, 0x005e3e2d, 0x00583c2a, 0x00503b29, 0x00503b2e, 0x00524249, 0x007f7585, 0x009992a6, 0x008586a2, 0x007c7e9f, 0x007c84a3, 0x008991b1, 0x00a3a4c0, 0x00b0abc3, 0x00b5abbf, 0x00bcadbf,
- 0x00cfbbc0, 0x00e6d6da, 0x00fef6f9, 0x00fefcfe, 0x00fdfdfe, 0x00fbfcf9, 0x00fcfaf4, 0x00ccc5bf, 0x00504437, 0x00342517, 0x00422e21, 0x004b352c, 0x00573a2b, 0x005e3d2b, 0x006a452e, 0x00744c33,
- 0x00735142, 0x006c5147, 0x0060504b, 0x00534d52, 0x00444652, 0x00384060, 0x002f3864, 0x002a3463, 0x00213068, 0x001b2b6a, 0x00142668, 0x000e2265, 0x000a1c5e, 0x000b1b5b, 0x000e1c58, 0x00111e59,
- 0x001d2043, 0x00242443, 0x002a2c43, 0x002e2d3c, 0x00322d2f, 0x00362b27, 0x00645148, 0x0094756a, 0x00b48575, 0x00c08878, 0x00c08571, 0x00be806a, 0x00b87b64, 0x00b97963, 0x00bb7b68, 0x00c07f6b,
- 0x00bb7e6b, 0x00b87c67, 0x00af765f, 0x00a6765a, 0x008f6442, 0x007a563c, 0x0085634f, 0x0086654e, 0x00624535, 0x005e4538, 0x004f3c31, 0x004c3e37, 0x004a413f, 0x00423f41, 0x003d3a40, 0x0038393f,
- 0x00293141, 0x00262d40, 0x001e253f, 0x0018213f, 0x00131e40, 0x001a2546, 0x00262e4e, 0x00333957, 0x003e4155, 0x0047465a, 0x004c4e5a, 0x0053545b, 0x00655258, 0x006f4e54, 0x006f4c49, 0x0064423a,
- 0x00a08a79, 0x00f2eade, 0x00fefff7, 0x00f7fbfb, 0x00fafdff, 0x00f8fdfb, 0x00d7d0cb, 0x008e6263, 0x00742325, 0x007e392e, 0x00864a38, 0x007f4c35, 0x00874639, 0x00854c43, 0x00865b53, 0x007c685d,
- 0x00806c5d, 0x00766355, 0x0066564a, 0x005d5144, 0x00584f41, 0x005b5544, 0x005f5b47, 0x0064614b, 0x0070684f, 0x00736c51, 0x00756d4e, 0x006c6546, 0x005d5843, 0x00514f44, 0x00454543, 0x003c3e49,
- 0x00343748, 0x002c2f48, 0x00252944, 0x00222441, 0x001f203b, 0x00271e35, 0x00302c46, 0x00424d76, 0x00456cab, 0x004e7cc5, 0x005e93e2, 0x005992e4, 0x005285da, 0x004275ca, 0x003166be, 0x002c65bd,
- 0x004d7fc3, 0x00578bdc, 0x004a87dc, 0x002f70d1, 0x001e57b4, 0x003c55a4, 0x007268a1, 0x00a46e8c, 0x00d5584b, 0x00e64f32, 0x00e55635, 0x00c95e4b, 0x00c26257, 0x00b3626b, 0x00a36476, 0x00956688,
- 0x0081699c, 0x00786ba4, 0x006f6da2, 0x00737ab0, 0x00aab4e2, 0x00e2effb, 0x00f1f7f4, 0x00f6ede9, 0x00f9e9e8, 0x00f2eaf2, 0x00d3ddec, 0x009db9d3, 0x006c9fc2, 0x007aa7d0, 0x0086b0d5, 0x00a7c7ec,
- 0x00d4e0ec, 0x00afc3dd, 0x0088a0c0, 0x008caad1, 0x005c6c81, 0x0041413f, 0x00423324, 0x00462e15, 0x00311c18, 0x002a1d29, 0x001e0f21, 0x001d0913, 0x001c040e, 0x001e050f, 0x0020050f, 0x0022030d,
- 0x0023030a, 0x0022030b, 0x0021050a, 0x001e0409, 0x001e0508, 0x001c050b, 0x001e0912, 0x00220e1b, 0x0021132c, 0x00221b39, 0x00232146, 0x0023274f, 0x001d2a58, 0x001a2c5b, 0x00192e5d, 0x001a3462,
- 0x00384667, 0x004a5776, 0x005d6783, 0x006b7389, 0x007a7b8c, 0x007f7e89, 0x00818187, 0x007e7e82, 0x0079777a, 0x00706e73, 0x0066696c, 0x00606868, 0x00626968, 0x00686c6e, 0x00707779, 0x00787f82,
- 0x00798689, 0x00788992, 0x00788b94, 0x006f888f, 0x007e9ba3, 0x00c4cad7, 0x00fbf6fd, 0x00fefdfd, 0x00fefdf5, 0x00fbfdf3, 0x00f8faf4, 0x00999a9b, 0x00060612, 0x00030612, 0x00070c15, 0x00061011,
- 0x0018191b, 0x0023232a, 0x002a2b36, 0x00292d3d, 0x00282f3e, 0x001f2d3b, 0x001a2d3d, 0x0011263d, 0x000b2455, 0x00102969, 0x00122970, 0x0009246a, 0x0059687f, 0x00b4b9bb, 0x00c7c6bc, 0x00c9c7c2,
- 0x008a8fb7, 0x00364682, 0x00677cc1, 0x00abc7f7, 0x00abcdf4, 0x007ea3d9, 0x006a94c7, 0x0081a6ca, 0x00b6ccdd, 0x00cdd7e4, 0x00d0d7e4, 0x00cbd0eb, 0x00b7cdf5, 0x009ec3ee, 0x0097cbf6, 0x009cd8fb,
- 0x00c7deed, 0x00d6edfa, 0x00b9d9ec, 0x00b3daf2, 0x00aedff5, 0x0096c8f1, 0x0084b4df, 0x0092b9e1, 0x00cee1f4, 0x00e7eef5, 0x00e2edf4, 0x00c3e0fb, 0x0097c2eb, 0x0097c2f0, 0x009dc4ef, 0x00a1c2e7,
- 0x00c6d5eb, 0x00d9e6ef, 0x00d7edef, 0x00c6e4f7, 0x0091c7f0, 0x007ab3e7, 0x006fa8d7, 0x007eaed9, 0x00aac4dc, 0x00c3d0da, 0x00d3d6d3, 0x00f2ece4, 0x00fffcf3, 0x00fafef6, 0x00fafff8, 0x00f8fffe,
- 0x00f8fbfe, 0x00a7a8aa, 0x000c0809, 0x001b1113, 0x001c1a1c, 0x001e2432, 0x007589a3, 0x0094b6e1, 0x00639bdb, 0x004c90d9, 0x00478fdc, 0x004689db, 0x004086d7, 0x003b7fd4, 0x003a7fd6, 0x00387ed6,
- 0x003d7ed6, 0x003b7dd7, 0x003a7dd6, 0x00377cd5, 0x003679d3, 0x003373d2, 0x00316fd0, 0x002e6ece, 0x002f70cc, 0x003175d0, 0x003378d2, 0x003477d2, 0x003271cf, 0x002e68c9, 0x00285ec1, 0x00275bc1,
- 0x002d61b3, 0x002b5fb4, 0x00295fb9, 0x00235cbd, 0x001f5abd, 0x002461c0, 0x002f6bc5, 0x00326cbf, 0x003362aa, 0x005d89c9, 0x00a2ccfa, 0x00a6c3e7, 0x004e71a7, 0x0020438b, 0x00032981, 0x00002d95,
- 0x00032ea0, 0x000530a1, 0x0007359a, 0x00022e8a, 0x000b3586, 0x00043791, 0x00043791, 0x000c3287, 0x00183280, 0x0011328a, 0x00072f8f, 0x00002f95, 0x000a308a, 0x00202867, 0x003a2a51, 0x007b525f,
- 0x009b9fab, 0x00bcb1c3, 0x00a58087, 0x00984737, 0x00843117, 0x00391312, 0x000c0b15, 0x0007121d, 0x0018140c, 0x000e1314, 0x0011151a, 0x00171316, 0x00171314, 0x00141415, 0x00131316, 0x00121318,
- 0x000d1515, 0x000e1414, 0x000e1412, 0x000f1212, 0x000f120f, 0x00111114, 0x00121117, 0x0014111a, 0x00131116, 0x00121216, 0x00111114, 0x00141416, 0x00848485, 0x00ecebeb, 0x00fcfdfb, 0x00fbfdfb,
- 0x00c2af9b, 0x00452710, 0x00523219, 0x0041270a, 0x00482d0e, 0x00482d0e, 0x00462b0b, 0x00462a0d, 0x0045290f, 0x00442612, 0x00432613, 0x00402711, 0x003d2511, 0x003e2410, 0x00402612, 0x00412a15,
- 0x0045291b, 0x00472a1e, 0x004b2f22, 0x004f3326, 0x0052372b, 0x00503e31, 0x00504637, 0x00544a3c, 0x00605447, 0x0065594c, 0x006a5c52, 0x006c5f56, 0x0073665e, 0x007c6e68, 0x00847671, 0x008a7b77,
- 0x00958981, 0x00978c82, 0x00988e85, 0x009a9088, 0x009d948e, 0x009e9790, 0x009e9891, 0x009e9993, 0x00a09a98, 0x00a09b98, 0x00a19c9a, 0x00a29d9c, 0x00a29d9c, 0x00a19d9b, 0x00a09e9b, 0x009e9f9a,
- 0x009da09c, 0x009ea19c, 0x009fa29e, 0x009da29d, 0x009da39f, 0x009ba09d, 0x009ba09d, 0x009da19e, 0x009fa1a0, 0x009fa19f, 0x009ea09d, 0x009d9e9c, 0x009e9f9d, 0x009d9e9d, 0x009c9e9c, 0x009b9e9b,
- 0x009d9b9a, 0x009c9b99, 0x009d9e9a, 0x009b9f99, 0x009da39d, 0x009ca29c, 0x00999d99, 0x009b9d99, 0x00a1a0a0, 0x00a39f9e, 0x00a0a09d, 0x009ea49e, 0x00a2a3a1, 0x00a2a2a1, 0x00a19e9d, 0x00a19a99,
- 0x009e9897, 0x00979695, 0x008d8f8d, 0x00828b87, 0x007e8481, 0x007a7b77, 0x0078716e, 0x006e6967, 0x00675e5f, 0x005f5858, 0x00595051, 0x004f4646, 0x00453d3a, 0x003b342f, 0x002e2a24, 0x0028251d,
- 0x001e1719, 0x00181414, 0x00120f10, 0x000d0d0c, 0x000a0c0a, 0x00080a06, 0x00090905, 0x000c0905, 0x00160b09, 0x001b0f0c, 0x001e140f, 0x00201910, 0x00281f14, 0x002d2216, 0x0033271b, 0x00392c21,
- 0x0042372d, 0x00473d35, 0x004c443f, 0x004d4a46, 0x0053504d, 0x005a524f, 0x005f5553, 0x00615b5a, 0x00665d5c, 0x00635d5c, 0x00635d5e, 0x00615f60, 0x00817d7f, 0x00b3b2b3, 0x00e5e4e6, 0x00eff0f1,
- 0x00f2fefe, 0x00f7fbf8, 0x00f9e0e0, 0x00b07b7a, 0x00812a18, 0x009e3a17, 0x00c15629, 0x00d46334, 0x00df6d48, 0x00ef7c60, 0x00f6886e, 0x00db7555, 0x00c55e44, 0x00d2664d, 0x00dd6a52, 0x00d15335,
- 0x00d64a20, 0x00de501f, 0x00e75b2d, 0x00df602e, 0x00c9562c, 0x00b6532b, 0x00a85931, 0x009a6a3c, 0x009e7d53, 0x00ad7f57, 0x00b47d5a, 0x00b17750, 0x009d7d4d, 0x00977b4c, 0x00906e47, 0x00975f43,
- 0x007f5947, 0x00644938, 0x004e3f32, 0x00494641, 0x006f848b, 0x0099b5c6, 0x008db2c9, 0x0084b2d0, 0x0084b3db, 0x007aa9d4, 0x0078a1ce, 0x0083a4d3, 0x007eade1, 0x0080b3e6, 0x0079b4e6, 0x0073b6e4,
- 0x0087bde6, 0x0094bddb, 0x00a7bdd0, 0x00b4b6c4, 0x00bfb1b5, 0x00baaeac, 0x00baa29c, 0x00c39999, 0x00c07e86, 0x00af5d64, 0x00a1474c, 0x009e4644, 0x00934e3b, 0x00916342, 0x00927248, 0x00897b44,
- 0x008b6e52, 0x00896b53, 0x00856653, 0x00826452, 0x0081654d, 0x0083684a, 0x008a6f4b, 0x00937953, 0x0091735e, 0x007f6252, 0x00775a4e, 0x007f6856, 0x006e7d8e, 0x005b88ab, 0x005590c1, 0x005093c5,
- 0x006693af, 0x00869fab, 0x00a4b0b3, 0x00b3bdbb, 0x00afbebe, 0x009bafb9, 0x00657887, 0x0035424c, 0x00261a21, 0x00321e1c, 0x004d302c, 0x005e3d37, 0x0074564c, 0x007e695e, 0x00897870, 0x008e8075,
- 0x00888376, 0x00aaa59f, 0x00f5f2f2, 0x00fdfbfe, 0x00fffcff, 0x00fffdfe, 0x00fdfdfc, 0x00d4d4d2, 0x00484b45, 0x00141512, 0x0024251c, 0x00302f1a, 0x00343320, 0x00343221, 0x00353522, 0x00373621,
- 0x00383523, 0x00363421, 0x0033331e, 0x0033321d, 0x00322f1c, 0x00343120, 0x00343222, 0x00353123, 0x00312e20, 0x00322e1f, 0x00343020, 0x00322f1e, 0x00323120, 0x00323120, 0x00363322, 0x00373322,
- 0x002f3225, 0x002f3225, 0x002d2f23, 0x002c2f22, 0x00323427, 0x00393a2e, 0x00444539, 0x00515147, 0x00625f53, 0x0068695a, 0x00727163, 0x007e7b6a, 0x008c8b82, 0x00959995, 0x009fa6a6, 0x00a3acb2,
- 0x00acbdcf, 0x00bcd3e3, 0x00cbe4f9, 0x00ceebfc, 0x00d2f0fe, 0x00def5fc, 0x00e4f5fe, 0x00e1f6ff, 0x00e8fbff, 0x00ebfdfe, 0x00f0feff, 0x00f4fffd, 0x00f9fffc, 0x00fafef4, 0x00fdfdf2, 0x00fdfcec,
- 0x00fffffd, 0x00fffffe, 0x00fffeff, 0x00ffffff, 0x00fefefe, 0x00fdfdfd, 0x00fdfcfe, 0x00fdfbff, 0x00fdfbff, 0x00fdfcfe, 0x00fdfefc, 0x00fbfefb, 0x00fafcfb, 0x00fcfefc, 0x00fdfefc, 0x00fdfdfc,
- 0x00fefcfd, 0x00fefcfc, 0x00fdfbfb, 0x00fbf8fe, 0x00faf9fa, 0x00fcfbfd, 0x00fdfbfd, 0x00fefafd, 0x00fdfdff, 0x00fdfcfd, 0x00f8f6f7, 0x00f4f1f3, 0x00fbf9fa, 0x00fefbfd, 0x00fefdfe, 0x00fdfcfc,
- 0x00fffaf7, 0x00fdecec, 0x00d6aaa9, 0x00c07264, 0x00d24613, 0x00d44e1c, 0x00c3502a, 0x00c98074, 0x00e1d2d8, 0x00ebe6ea, 0x00ece5ec, 0x00e0d6e1, 0x00d2c8d2, 0x00d3ced7, 0x00e8e3ec, 0x00f0f0fa,
- 0x00eeeaf2, 0x00e6e4eb, 0x00dbd4de, 0x00ddd6e1, 0x00e2d3df, 0x00d4a4b1, 0x00b16a6d, 0x00a35041, 0x00a54b22, 0x009e572c, 0x008d5d3a, 0x0072634f, 0x001e2d2c, 0x00101d1a, 0x002c332f, 0x003e3b33,
- 0x00515441, 0x00798275, 0x00949a95, 0x00999e9c, 0x00826f6f, 0x00583932, 0x0040140b, 0x005f3527, 0x008e6c6b, 0x0089787c, 0x00998a98, 0x00b2a3b4, 0x00b8a6b3, 0x00b2a5ae, 0x00b8b1b4, 0x00bebaba,
- 0x00c4bec5, 0x00bfbcc4, 0x00b7b5c7, 0x0079798f, 0x002e2c4c, 0x0019182f, 0x002d2c3e, 0x003f3f48, 0x00433936, 0x00372b21, 0x00362514, 0x003e2711, 0x004a2d16, 0x0052311e, 0x005b362a, 0x00623c32,
- 0x007f4c33, 0x007d4f35, 0x00784e37, 0x0077533d, 0x00634737, 0x00432d1f, 0x00281509, 0x001b0b00, 0x0027160c, 0x00443327, 0x006c5447, 0x007d5c4a, 0x00805f4c, 0x00805d4a, 0x0071503b, 0x00684730,
- 0x005c3b27, 0x0060422e, 0x00654a3b, 0x00604a3c, 0x00614c40, 0x00786868, 0x00a79ba8, 0x00bab2be, 0x00a7a8bb, 0x00a7a9be, 0x00b1b5c9, 0x00b2b4cb, 0x00bcb9cd, 0x00beb7c6, 0x00beb5bf, 0x00bfb5bb,
- 0x00d1c1c5, 0x00e6dcde, 0x00fdf7f9, 0x00fcf9fa, 0x00fefdfe, 0x00fefdfc, 0x00fcf8f4, 0x00bbb3ab, 0x00433328, 0x00362313, 0x00462f21, 0x004a3129, 0x00573a29, 0x005d3d2a, 0x0067442e, 0x006e4a33,
- 0x006f4c3e, 0x00684e44, 0x005f504b, 0x00534e51, 0x004b4e57, 0x00444b68, 0x00414970, 0x003d4570, 0x00364277, 0x002d3b73, 0x00253474, 0x001d2c6c, 0x00172664, 0x00112059, 0x00101d56, 0x000f1d50,
- 0x00261e3e, 0x002b2034, 0x00302230, 0x00372527, 0x002f2924, 0x0029241f, 0x00434039, 0x0073685e, 0x00a98978, 0x00bb9075, 0x00c99173, 0x00c58769, 0x00bd7c61, 0x00bc7b5f, 0x00c08165, 0x00bd8066,
- 0x00b97d68, 0x00b27d67, 0x00af7f67, 0x00a1775c, 0x00815f46, 0x007a5337, 0x00976d53, 0x00815c46, 0x00503123, 0x005e483e, 0x005a4945, 0x004d4240, 0x00484344, 0x00434144, 0x003a3a3d, 0x00343539,
- 0x002e3244, 0x002a3044, 0x00232c45, 0x001f2947, 0x00222d4e, 0x002d3858, 0x003d4765, 0x0048546d, 0x00535a6c, 0x00555967, 0x00575c66, 0x005a5b61, 0x0067545d, 0x00725355, 0x006f4e4a, 0x0065443a,
- 0x00a69387, 0x00f6f0e4, 0x00fffff8, 0x00f9fbfc, 0x00fefbfe, 0x00fafefb, 0x00cbbbb7, 0x00824e50, 0x007e2929, 0x00853c30, 0x008a4a37, 0x008d523b, 0x00974e41, 0x00965449, 0x00916054, 0x00866d5d,
- 0x00877061, 0x007e6a5b, 0x00715f52, 0x00675a4c, 0x00615849, 0x00655f4d, 0x006a6651, 0x00706b55, 0x00797257, 0x007a7455, 0x007a7254, 0x00716a4a, 0x00605b47, 0x00515044, 0x00434444, 0x00383d46,
- 0x0033334b, 0x002b2f47, 0x00232641, 0x001f213a, 0x0021223d, 0x00271f34, 0x003e3b57, 0x004b567e, 0x004466a7, 0x004d7bc6, 0x006397e9, 0x005b94e6, 0x004a7ed3, 0x004073ca, 0x003469c4, 0x002a5fbd,
- 0x004572c1, 0x004b83d4, 0x005590e8, 0x004f91e8, 0x004176d0, 0x004160ae, 0x006468a7, 0x008f7298, 0x00be626d, 0x00ce5f59, 0x00c26769, 0x0093718f, 0x008a7099, 0x00796d9e, 0x00726fa9, 0x00636fb5,
- 0x005a72c2, 0x005071c0, 0x005074bf, 0x004a70b8, 0x00749cde, 0x00c5dbf2, 0x00eaf4f4, 0x00eee9e5, 0x00f8e7e2, 0x00f2eeee, 0x00d4ddea, 0x009abad1, 0x006a9cc3, 0x0071a2c8, 0x007aa3c8, 0x00a1bfe1,
- 0x00cddbe7, 0x00b1c8e1, 0x0088a2c4, 0x009abce4, 0x008197ae, 0x004e5559, 0x0039322b, 0x00413123, 0x00352424, 0x002c202d, 0x001f1224, 0x00190a14, 0x0018050f, 0x001b030d, 0x001f040f, 0x00200210,
- 0x0022040f, 0x001f030c, 0x001f040c, 0x001d040a, 0x001c0508, 0x001b060c, 0x001e0a14, 0x001f0d1b, 0x001e1328, 0x001d1632, 0x00221d41, 0x00202249, 0x0018234e, 0x0011234e, 0x00192d57, 0x00203860,
- 0x00424c6d, 0x00596380, 0x006e7691, 0x007c8398, 0x008b8b9a, 0x008e8d97, 0x00908e95, 0x008f8e91, 0x0089868a, 0x00808284, 0x007c7c81, 0x0074787d, 0x0072767b, 0x0071797e, 0x00777f86, 0x0078858c,
- 0x00778690, 0x0072878f, 0x00748d97, 0x00698790, 0x0084a5b1, 0x00ced8e0, 0x00fcfafd, 0x00fafcf9, 0x00fffef6, 0x00fcfff6, 0x00f0f3f2, 0x00868992, 0x00000117, 0x00060621, 0x0006041e, 0x0006071b,
- 0x00081320, 0x000f1b2c, 0x0019253e, 0x00212f48, 0x0025354e, 0x0023384b, 0x001d364d, 0x0015314e, 0x00143169, 0x00123378, 0x000a2973, 0x00012262, 0x005a698a, 0x00b3b7c0, 0x00cbc5c3, 0x00c8c2bf,
- 0x00999bb5, 0x00788bb9, 0x0099b3eb, 0x006b8dcf, 0x004c6fad, 0x006b8dc5, 0x00acc4ef, 0x00d2def4, 0x00efe4e1, 0x00ede6e5, 0x00d7d4df, 0x00a2b4d7, 0x00628fd1, 0x0060a0e4, 0x005fa8ee, 0x0067b4f9,
- 0x00c4cde0, 0x00b7d1ea, 0x0080aed5, 0x006aaddf, 0x0058a5ea, 0x005099d7, 0x005b9cd4, 0x0084b8e7, 0x00cbe6fe, 0x00cee5f7, 0x00a8c3de, 0x008bb3d9, 0x00abcdfa, 0x00b5d9ff, 0x009ebdf2, 0x0095b4e5,
- 0x00bbdbfd, 0x00c4e9fd, 0x009bc6f2, 0x0079ace2, 0x0072aaf3, 0x0071ade9, 0x0067a0d3, 0x006c9ac7, 0x008ea7c1, 0x00b0bec9, 0x00d5dada, 0x00f1ebe6, 0x00fffaf3, 0x00fcfdf6, 0x00f9fdf9, 0x00f6fffe,
- 0x00fdfcfd, 0x00a4a3a3, 0x000e070c, 0x000b0508, 0x0024242e, 0x00556274, 0x009cb3d5, 0x00789fd0, 0x00548fd3, 0x004b94de, 0x004991e3, 0x004085d6, 0x003c7ed2, 0x00377ecf, 0x00397cd3, 0x003b81d5,
- 0x00397ed8, 0x003b7fd6, 0x003c7ed9, 0x003c7fd8, 0x003b7ed9, 0x003d7ed6, 0x003c7ad3, 0x003876cf, 0x003273cb, 0x002f6fc7, 0x003574cd, 0x003774ce, 0x003975ce, 0x003770ca, 0x003066c0, 0x00295eb8,
- 0x00265ebe, 0x00255ebf, 0x00245dbf, 0x00184fb4, 0x001c56b6, 0x00255fba, 0x00285eb6, 0x00346bbe, 0x00376bb4, 0x003268ac, 0x005c89bf, 0x009fbecf, 0x00a1bde8, 0x006380c1, 0x00324fa5, 0x0018389d,
- 0x001337a7, 0x00133aa2, 0x001b47a6, 0x002151a1, 0x002a5ea2, 0x001a58b0, 0x000f4bb1, 0x001949a6, 0x002847a0, 0x0016409a, 0x000a369b, 0x00013398, 0x000e328b, 0x001c2868, 0x0030214a, 0x00683e51,
- 0x007a84a6, 0x00b7aac4, 0x00a87076, 0x00a03a19, 0x00c25429, 0x00834c42, 0x00271c25, 0x0003101e, 0x001a1412, 0x00101419, 0x00181921, 0x00191416, 0x00191516, 0x00181516, 0x00171515, 0x00151815,
- 0x00151519, 0x00121616, 0x00121514, 0x00101414, 0x00101311, 0x000f1214, 0x00110f15, 0x00100f14, 0x00101015, 0x00111014, 0x000f0e12, 0x0019191b, 0x008b8b8c, 0x00ececec, 0x00fefefe, 0x00fdfcfb,
- 0x00c6b59d, 0x00503016, 0x0057361b, 0x0057391a, 0x005e3c1c, 0x005e3d1c, 0x005d3c1c, 0x005d3c1e, 0x005f3d22, 0x005f3d26, 0x0061402d, 0x00624431, 0x00624835, 0x00694e3b, 0x00715542, 0x00715845,
- 0x007c6452, 0x00836b5a, 0x008e7766, 0x00998270, 0x00a18c7b, 0x00a39489, 0x00a59c94, 0x00a9a098, 0x00b0aba3, 0x00b6b1a8, 0x00bcb5af, 0x00beb8b3, 0x00c2bcb7, 0x00c5bebb, 0x00c8bfbf, 0x00ccc1c1,
- 0x00cdc5c2, 0x00cec7c2, 0x00cfc8c3, 0x00cfcac6, 0x00cecac8, 0x00ccc9c6, 0x00c9c7c4, 0x00c8c7c5, 0x00c8c6c5, 0x00c8c6c6, 0x00c8c6c6, 0x00c9c6c6, 0x00c8c6c7, 0x00c6c5c5, 0x00c5c6c3, 0x00c6c8c4,
- 0x00c9cbca, 0x00c9cbca, 0x00c7cbc8, 0x00c7cbc8, 0x00c7cac9, 0x00c9cac8, 0x00c9c9c6, 0x00c9cac6, 0x00cbcac8, 0x00cbcbc7, 0x00c9cac7, 0x00c9cbc9, 0x00c9cac8, 0x00cbccca, 0x00cbcdcb, 0x00cdceca,
- 0x00d0c9ca, 0x00cfcaca, 0x00cbc9c7, 0x00c8cac5, 0x00c3c8c4, 0x00c4c9c5, 0x00c3c7c3, 0x00bfc2bf, 0x00bebdbb, 0x00bab7b5, 0x00b6b4b1, 0x00b1b7b0, 0x00aeb2ad, 0x00a6a7a4, 0x00989795, 0x008e8d89,
- 0x007b7b76, 0x0072726e, 0x00616360, 0x00505350, 0x00404741, 0x003c3933, 0x003a302b, 0x00342a27, 0x0029271f, 0x0022221c, 0x001e1c17, 0x001b1712, 0x001b1210, 0x001a0f0c, 0x00170c07, 0x00190908,
- 0x000f0809, 0x000c0607, 0x000a0606, 0x00090705, 0x00090905, 0x000b0b05, 0x000f0c06, 0x00110c06, 0x001b100b, 0x00211510, 0x00251a13, 0x002b2015, 0x00382a1d, 0x00403022, 0x00473529, 0x00503b30,
- 0x0052412f, 0x005a4a40, 0x0060534c, 0x00615950, 0x00655e59, 0x006b6661, 0x00736b67, 0x00776d6c, 0x00787170, 0x00797272, 0x00767070, 0x00756f6f, 0x008a8888, 0x00c3c1c1, 0x00f0efef, 0x00f9f8f9,
- 0x00fcfcf3, 0x00fcfaf7, 0x00f8e3e4, 0x00b4898b, 0x007b2a14, 0x00a33b12, 0x00cb531e, 0x00db591e, 0x00d35a34, 0x00d56850, 0x00e1775b, 0x00eb8552, 0x00db7955, 0x00c46249, 0x00ca654f, 0x00d76953,
- 0x00dd5b42, 0x00da502e, 0x00df4f25, 0x00e85728, 0x00e5562a, 0x00d24f24, 0x00b84f22, 0x009c5f31, 0x00937756, 0x00a57c59, 0x00af7a51, 0x00b57743, 0x00a67b38, 0x009b7840, 0x00936d47, 0x0091604c,
- 0x006d554a, 0x0064514c, 0x006d6463, 0x00747b82, 0x00839fb6, 0x008cb3d4, 0x007cacd6, 0x0071abdd, 0x0067a5df, 0x00619fde, 0x006da3e1, 0x007ba0db, 0x007aa8e5, 0x0077ace5, 0x0070afe5, 0x006fb1e2,
- 0x0079bbe7, 0x0082bfe3, 0x008ac3e1, 0x0090c2dd, 0x0095bed5, 0x0098bfd2, 0x009bbad0, 0x00a5b4ce, 0x00b39fbd, 0x00b186a1, 0x00a86c84, 0x009e5d6a, 0x008e544d, 0x00815741, 0x00876545, 0x00897045,
- 0x00876954, 0x00866658, 0x00836258, 0x007f6056, 0x00806151, 0x00846751, 0x00886b4e, 0x00907153, 0x00836450, 0x006f5047, 0x00765d57, 0x00868173, 0x00718998, 0x005888ac, 0x004f8cbd, 0x004a8fc1,
- 0x005b8bad, 0x006e90a2, 0x00869ea7, 0x0095a9ae, 0x009bb0b8, 0x0093acb9, 0x007a8e9d, 0x00535e6a, 0x00302a2f, 0x00362726, 0x004f3632, 0x0062433c, 0x00775a4f, 0x00816b5e, 0x008a796d, 0x008e8173,
- 0x00878176, 0x00aaa49d, 0x00f4f2ee, 0x00fdfcfa, 0x00fffdfd, 0x00fdfdfe, 0x00fdfafb, 0x00d3d2d1, 0x00474c44, 0x00141813, 0x0025271c, 0x0031301b, 0x0034331e, 0x0035331f, 0x00353421, 0x00373623,
- 0x00373724, 0x00373824, 0x00393724, 0x00393623, 0x00393523, 0x00383623, 0x00373522, 0x00363420, 0x00363322, 0x00363321, 0x00373522, 0x00373621, 0x00393623, 0x00353320, 0x0033331f, 0x0034321e,
- 0x002b2f1e, 0x002a2d1d, 0x00242717, 0x00212313, 0x00242414, 0x00252616, 0x0029291a, 0x00323224, 0x00333329, 0x00363527, 0x00363528, 0x0032331d, 0x00343b2c, 0x003a413b, 0x00435154, 0x004a5e6a,
- 0x006585a1, 0x007499b9, 0x007dadd0, 0x0081b3da, 0x0080bae1, 0x0091bcdf, 0x009bc2e1, 0x00a2c8e3, 0x00afd2ef, 0x00bcdcf3, 0x00c4e3f1, 0x00c7e1e8, 0x00c7d7d3, 0x00c9d4c6, 0x00d3dcc0, 0x00e0e4c1,
- 0x00e5e0dc, 0x00e7e5e1, 0x00ece8e6, 0x00f3efef, 0x00f4f2f2, 0x00f7f5f6, 0x00f7f4f7, 0x00faf9fc, 0x00fdfdff, 0x00fdfdfe, 0x00fefdff, 0x00fcfcfd, 0x00fdfdfb, 0x00fdfcfc, 0x00fffdff, 0x00fefcfd,
- 0x00fbfcf9, 0x00fdfefa, 0x00fffefe, 0x00fefefd, 0x00fdfdfd, 0x00fcfcfc, 0x00fdfbfe, 0x00fefbfc, 0x00fefcfd, 0x00fefcfb, 0x00f7f5f5, 0x00f2f0f2, 0x00f8f5f7, 0x00fdfafc, 0x00fffdff, 0x00fffdfe,
- 0x00fcfdfb, 0x00faf1f2, 0x00dcbdbb, 0x00c7816f, 0x00cf4918, 0x00d14714, 0x00c95531, 0x00d48b7c, 0x00e2cdd4, 0x00ece0e2, 0x00f1e6ea, 0x00e3d8e3, 0x00d3c9d6, 0x00cfcad5, 0x00e4e0e7, 0x00f0eff7,
- 0x00eeecf6, 0x00e8e4ed, 0x00d8d2da, 0x00e2d9e4, 0x00d2c6d1, 0x00bd7083, 0x0098333d, 0x00973c34, 0x007c3d1c, 0x00653e1c, 0x00725d43, 0x00706e65, 0x00303b40, 0x00242a2d, 0x00504e4b, 0x006d655a,
- 0x008e9083, 0x00b1b2aa, 0x00c8c7c7, 0x00bdb7bc, 0x00705a5d, 0x00421e20, 0x004e2721, 0x00744e48, 0x0080696c, 0x00776c72, 0x008a7f8b, 0x00a598a8, 0x00b4a3b1, 0x00b0a3ad, 0x00b5acaf, 0x00bcb8b8,
- 0x00c6bec0, 0x00c3c0c5, 0x00c7c5cf, 0x00c1c0d0, 0x006f6e86, 0x002f3047, 0x0019182d, 0x0030303d, 0x004e4846, 0x00392f28, 0x002e1f12, 0x003e2817, 0x004a2c18, 0x00532f1d, 0x005d3527, 0x0064392d,
- 0x0071422c, 0x00774a34, 0x00784e39, 0x00704c3b, 0x005a3c2c, 0x00452d20, 0x0031190c, 0x002d1408, 0x00462f20, 0x00674b3a, 0x007a5e4b, 0x007f614c, 0x00876751, 0x008d6953, 0x007b5542, 0x00624026,
- 0x00533320, 0x004e3221, 0x00553b31, 0x00584438, 0x006f5c55, 0x00968785, 0x00b5a6ac, 0x00b6abb0, 0x00a9a9b2, 0x00acacb8, 0x00b0b1bc, 0x00b5b6c4, 0x00beb9c6, 0x00c1b7c0, 0x00bfb2b6, 0x00bdafb1,
- 0x00cbc2c3, 0x00eae2e5, 0x00fdfbfd, 0x00fdfdfd, 0x00fefefc, 0x00fcfef9, 0x00f8f5ee, 0x00aea69c, 0x00412d20, 0x0042271a, 0x004d3125, 0x004e352b, 0x005b3b2a, 0x00603e2c, 0x0065422e, 0x006b4530,
- 0x006a4b38, 0x00654d41, 0x005f504a, 0x00564f53, 0x0053535f, 0x004e536f, 0x004c5478, 0x004b537a, 0x00454f7f, 0x003d4a7d, 0x0036427b, 0x00313d79, 0x00263469, 0x001c295e, 0x00172254, 0x00162350,
- 0x00272240, 0x002f2032, 0x00342127, 0x003d2019, 0x0032291d, 0x00282622, 0x003b4240, 0x00636764, 0x00917f65, 0x00ad8760, 0x00c79167, 0x00cf8e6c, 0x00c78666, 0x00c88569, 0x00c08567, 0x00c08367,
- 0x00bc8870, 0x00b07f67, 0x00a17961, 0x008b6850, 0x006e523e, 0x007b4e32, 0x00986749, 0x007b5037, 0x0037170a, 0x00402c26, 0x00443838, 0x00454044, 0x00444047, 0x00424044, 0x003c3b3d, 0x003a3738,
- 0x002d3348, 0x002e3449, 0x002b334d, 0x002a344f, 0x00343f5b, 0x00404d66, 0x004f5d74, 0x005b697c, 0x00636e7a, 0x00636c75, 0x00636a71, 0x0066676f, 0x006c5b61, 0x00715659, 0x006a4c4a, 0x00674941,
- 0x00af9e92, 0x00f7f1e8, 0x00fffdf7, 0x00f9fafc, 0x00fefdff, 0x00fcfef8, 0x00c3a9a3, 0x007d3f3e, 0x00852624, 0x00873526, 0x008e4731, 0x00905035, 0x00a04f3f, 0x00a0574a, 0x009d6256, 0x00926e5e,
- 0x0087705d, 0x00826c59, 0x00776453, 0x006f614f, 0x006a624e, 0x006d6952, 0x00736f57, 0x0079745a, 0x007e795c, 0x007e7b5a, 0x007d7657, 0x00726a4e, 0x00605c46, 0x00514f44, 0x00434241, 0x00383c43,
- 0x00333447, 0x002e2d45, 0x0026263c, 0x00222137, 0x00232236, 0x00292235, 0x0045435e, 0x004e5985, 0x00476eae, 0x005787d2, 0x00649bed, 0x005790e2, 0x004678cd, 0x004072c8, 0x00376ac5, 0x002b5fbd,
- 0x004071c4, 0x00477ed0, 0x005189de, 0x005893ec, 0x00578bdf, 0x00567cc6, 0x006374b4, 0x007974a8, 0x009e7592, 0x00aa7184, 0x00947698, 0x005e80d2, 0x00547cd0, 0x004b79d6, 0x004278d5, 0x003d79dd,
- 0x003979df, 0x003978d8, 0x003b79d4, 0x003874c9, 0x00518bdb, 0x00a9c6e6, 0x00e8f5fb, 0x00f2f0f0, 0x00f4e6de, 0x00f3eded, 0x00d0dae7, 0x0094b3c9, 0x005f90ba, 0x006391b8, 0x006d97bd, 0x0097badb,
- 0x00c6d7e7, 0x00b8d1ec, 0x0092adcf, 0x008caed7, 0x009ab0d0, 0x00687481, 0x0037393b, 0x0036312b, 0x0034272b, 0x002c2332, 0x001f1325, 0x001b0e17, 0x00170611, 0x0018030f, 0x001a030e, 0x001d020e,
- 0x001f020c, 0x001d020a, 0x001e040b, 0x001d040a, 0x001b0509, 0x001a060d, 0x001d0a16, 0x001e0d1b, 0x001b1125, 0x001a142f, 0x001f193d, 0x001b1c41, 0x00141e46, 0x0013244a, 0x00213459, 0x002c4367,
- 0x00515978, 0x00666d88, 0x007a7f97, 0x00888b9e, 0x009794a1, 0x009a98a1, 0x009a98a0, 0x0097979c, 0x00939195, 0x008c8d90, 0x00878891, 0x0082838e, 0x007a818f, 0x0077818c, 0x00778591, 0x00748893,
- 0x00718798, 0x006b8794, 0x006e8e9b, 0x00608690, 0x0087acba, 0x00d6e4e9, 0x00fdfdf9, 0x00f9faf1, 0x00fffff5, 0x00f9fcf8, 0x00e5e7ef, 0x007b7c92, 0x00111237, 0x001c1b44, 0x00282550, 0x002f2e54,
- 0x001c3349, 0x00172d47, 0x001e3552, 0x002e4565, 0x00344b67, 0x00314d67, 0x002a4b66, 0x00224669, 0x001c427a, 0x00143d86, 0x00062c76, 0x0001275d, 0x005c6d8f, 0x00b3b4c7, 0x00cec2ca, 0x00cbbebf,
- 0x00b2b1bb, 0x00a8b6d1, 0x00708ebb, 0x002c5390, 0x003662b0, 0x008099cc, 0x00cdd8f5, 0x00eee5ed, 0x00f5dfd2, 0x00e3dbdc, 0x00b1c1d9, 0x00709bd2, 0x00509ef2, 0x005fabfc, 0x0058a3ef, 0x007ebff6,
- 0x00d4d3dd, 0x00a9bdd8, 0x0078a6d6, 0x006bb2f3, 0x0060b1f5, 0x005da0df, 0x0080b5e6, 0x00b2d9f8, 0x00cbedfc, 0x00b0d5f0, 0x0087accf, 0x0092b5d3, 0x00bed0fb, 0x00bac7f5, 0x00afb8ed, 0x00bac8f3,
- 0x00badbf8, 0x009bc9ed, 0x0080b2df, 0x0080b4f0, 0x0093c0fe, 0x008ec5fd, 0x006fa4d9, 0x00719eca, 0x00a4bed7, 0x00c4d2e1, 0x00d8dce0, 0x00f2eeec, 0x00fefbf6, 0x00fcfcf7, 0x00f9fcf8, 0x00f8feff,
- 0x00fefbf8, 0x00a4a0a0, 0x00070508, 0x000c0b0f, 0x00485162, 0x0096aac4, 0x0095b8df, 0x00628fc7, 0x005294dc, 0x004c97e7, 0x003c87dc, 0x004083d7, 0x003d81d6, 0x003c7fd3, 0x003a7ed4, 0x003b80d5,
- 0x00367dd4, 0x00397ed4, 0x003a7dd7, 0x00397ed8, 0x003b80dd, 0x003d81d3, 0x003d7fd1, 0x003e7fcf, 0x003e7dd4, 0x003b78cf, 0x003c75d1, 0x003b72d0, 0x003972cd, 0x003772c8, 0x003470c3, 0x00306cba,
- 0x001f63ca, 0x002263cc, 0x00235dc5, 0x001952b5, 0x001e54b3, 0x002657b5, 0x002a5db7, 0x00386dc0, 0x00346bbe, 0x002861b2, 0x003869a6, 0x00678399, 0x007d96bd, 0x007e93cb, 0x008d9fe5, 0x007a8cdd,
- 0x004960bf, 0x002d4da3, 0x001f4896, 0x002c5fa5, 0x00558bc4, 0x003a7bd7, 0x001858c1, 0x00164dac, 0x001b42a0, 0x00083693, 0x00052e92, 0x00002e92, 0x00092882, 0x00172366, 0x00372c59, 0x0079586f,
- 0x009497be, 0x009f869e, 0x009e5353, 0x00b12e03, 0x00ca4a17, 0x00a0635c, 0x00443b4d, 0x000d213c, 0x00171314, 0x00151011, 0x001b1717, 0x001b1615, 0x001f1815, 0x001b1514, 0x001a1716, 0x001b1816,
- 0x00191918, 0x00171816, 0x00131615, 0x00121314, 0x000e1314, 0x000f1015, 0x000f0f15, 0x00100f14, 0x000f1014, 0x000f0f12, 0x000f0e11, 0x001d1c1f, 0x00939494, 0x00f0f0f0, 0x00fdfdfd, 0x00fdfcfb,
- 0x00cbbba9, 0x00694f3a, 0x00735943, 0x007d644c, 0x0090775b, 0x008f785a, 0x00997f64, 0x00a18870, 0x00ae9581, 0x00b69d8b, 0x00bfa79a, 0x00c8b2a9, 0x00d2c0b8, 0x00dcccc3, 0x00e1d4c9, 0x00e2d8cb,
- 0x00e3d9cf, 0x00e5dcd1, 0x00e9e0d5, 0x00ebe5d8, 0x00ede9dd, 0x00eeede4, 0x00eceee9, 0x00ebeee9, 0x00ecedec, 0x00ebedeb, 0x00eeefef, 0x00f0f1f2, 0x00efeff1, 0x00efeef2, 0x00f0eef3, 0x00efecf2,
- 0x00ecefee, 0x00edefee, 0x00edefed, 0x00eceded, 0x00ececef, 0x00ededf0, 0x00eeeff0, 0x00eeeef1, 0x00edeef1, 0x00eceef1, 0x00eef0f1, 0x00eef0f1, 0x00edeff2, 0x00eeeff1, 0x00eff1f1, 0x00eff1f1,
- 0x00f1f0f0, 0x00efeeec, 0x00eeeeeb, 0x00eff1ed, 0x00f1f1ef, 0x00f3f0ec, 0x00f4efe8, 0x00f4efe9, 0x00f5f1eb, 0x00f4f0ea, 0x00f1eee9, 0x00eeece7, 0x00ebe7e3, 0x00e6e3df, 0x00e0dfdb, 0x00dddcd7,
- 0x00ded5d5, 0x00d6cecf, 0x00c5c1c1, 0x00b6b6b4, 0x00a9ada9, 0x009ea29e, 0x00909390, 0x00818382, 0x00716f6c, 0x00615d5c, 0x00534d4c, 0x0044423f, 0x00393431, 0x002d2826, 0x00241e1d, 0x00211b19,
- 0x00201415, 0x001b1312, 0x001a1110, 0x00170d0d, 0x00130a09, 0x00120505, 0x00100304, 0x000e0605, 0x00090a03, 0x00050b02, 0x00050a02, 0x00070b05, 0x000d0b0a, 0x0015090d, 0x001b0a10, 0x001f0910,
- 0x0019100e, 0x00150d0b, 0x00120c09, 0x00120f0a, 0x0013130c, 0x0017150d, 0x001b170e, 0x001d170e, 0x00261a13, 0x002e1d17, 0x00332018, 0x00382419, 0x00442f21, 0x004d3827, 0x00543f2d, 0x005c4432,
- 0x00644c3e, 0x006b5648, 0x00705f52, 0x006f6257, 0x0071665e, 0x00766d69, 0x007c7472, 0x007e7775, 0x00817b76, 0x007f7a78, 0x00817d7c, 0x007e7b7b, 0x009a9699, 0x00d0cccf, 0x00faf8f9, 0x00fbfbfd,
- 0x00fefcf3, 0x00fffef9, 0x00f4ebee, 0x00ad969a, 0x00742c1a, 0x00a7370c, 0x00d84d10, 0x00f0570a, 0x00e95721, 0x00d7562f, 0x00d0562d, 0x00e16426, 0x00e7784c, 0x00db785a, 0x00cc6958, 0x00c36458,
- 0x00e16e5c, 0x00e46448, 0x00e0552f, 0x00df4e22, 0x00eb5523, 0x00e75925, 0x00c55521, 0x008e542a, 0x00696445, 0x00816f4c, 0x009b774b, 0x00a87632, 0x009d7923, 0x008f7730, 0x00816d3f, 0x007a5f4b,
- 0x00656d77, 0x00748391, 0x008da3b3, 0x008fafc5, 0x0082afd3, 0x007aaed9, 0x006ea7db, 0x0060a4dd, 0x005fa1de, 0x005ea5e1, 0x0066a6e4, 0x0071a7e7, 0x0075a9e7, 0x006ea8de, 0x0068a6d7, 0x0069aad5,
- 0x0072b5e1, 0x0071b9e3, 0x0075bde9, 0x0074c2ee, 0x0071bdec, 0x007cb8ed, 0x0089b9f1, 0x0088b9ee, 0x008bbbeb, 0x0093bbe2, 0x0094b2d2, 0x0094a5bc, 0x00968c9a, 0x008b7379, 0x00866163, 0x00875e58,
- 0x0083674f, 0x00816350, 0x007e5f50, 0x00805f53, 0x00805c49, 0x00845f45, 0x00856241, 0x008c6846, 0x007a5541, 0x00654334, 0x006a5451, 0x006c777a, 0x0065889c, 0x005287ac, 0x004b89b8, 0x004589ba,
- 0x005387ad, 0x005a87a3, 0x00688aa1, 0x006e8ea2, 0x007996ab, 0x007a99ae, 0x007b93a5, 0x00647a88, 0x004d4c54, 0x00453c40, 0x004e3e3b, 0x00614c45, 0x0077635d, 0x0080706a, 0x00877a74, 0x00877f7a,
- 0x00817e82, 0x00a6a2a3, 0x00f3f3ee, 0x00fffef6, 0x00fffff7, 0x00fcfefa, 0x00fdfafb, 0x00d3d2d3, 0x00434b46, 0x000e1810, 0x00202718, 0x00302f1b, 0x00343221, 0x00333221, 0x00353321, 0x00393622,
- 0x00363626, 0x00363423, 0x00393522, 0x0037341f, 0x00363520, 0x0034331d, 0x0034331d, 0x0033341b, 0x00373620, 0x0036361e, 0x0033351c, 0x0035361e, 0x0038351f, 0x00393520, 0x0037351e, 0x0039371f,
- 0x0030351e, 0x00333720, 0x0032341e, 0x002e2e19, 0x0030301c, 0x0030301f, 0x00353729, 0x00373a2e, 0x00333632, 0x002f342e, 0x002c3534, 0x00304644, 0x004d686c, 0x00648290, 0x007696b0, 0x00779fc3,
- 0x006a9dca, 0x00649cce, 0x00629ad4, 0x005e9ed9, 0x005c9dd9, 0x005599cb, 0x005896c7, 0x005c9bcb, 0x00649fd6, 0x006d9fd5, 0x00729fd4, 0x006d95bf, 0x00537385, 0x003e5b5c, 0x003b554b, 0x00445845,
- 0x00616359, 0x006a6c60, 0x007d7d70, 0x008c8b7e, 0x0099978d, 0x00a5a29d, 0x00adaaa7, 0x00b7b4b3, 0x00c0c1c0, 0x00c9c9cb, 0x00d4d3d3, 0x00dfddda, 0x00e4e1dd, 0x00e9e7e3, 0x00eeece7, 0x00efede9,
- 0x00f4f4f1, 0x00f8f8f3, 0x00fdfcf7, 0x00fefdfb, 0x00fdfcf5, 0x00fefcfc, 0x00fffeff, 0x00fffffe, 0x00fefffd, 0x00fcfdfa, 0x00fbf9f9, 0x00f8f3f7, 0x00fbf7fb, 0x00fefaff, 0x00fffcff, 0x00fdfcfd,
- 0x00f9fcfe, 0x00f6f5fa, 0x00e9cccc, 0x00cb8e7e, 0x00cd4716, 0x00cb4414, 0x00c9542f, 0x00d38678, 0x00eaccd6, 0x00f8e1e5, 0x00f8e5ec, 0x00e7dae8, 0x00d4cad5, 0x00cecad3, 0x00dfdce4, 0x00eeeef5,
- 0x00f2f0f8, 0x00eae4ed, 0x00dcd3de, 0x00e8dfeb, 0x00c8bac5, 0x009a5862, 0x0078252a, 0x006c3028, 0x0048331d, 0x00494330, 0x0065645d, 0x00777178, 0x00827988, 0x0091898f, 0x00aba7a3, 0x00babfac,
- 0x00d6cdcd, 0x00e1d9da, 0x00decdd3, 0x00b39ea2, 0x00624347, 0x003e1c21, 0x00674349, 0x0085646a, 0x007e6d76, 0x00776e76, 0x007c7581, 0x009b8b9d, 0x00b3a7b1, 0x00b3a7b0, 0x00b5aab0, 0x00b7b2b2,
- 0x00c2b9bc, 0x00ccc6c7, 0x00c5bfc2, 0x00d3cfd7, 0x00bfbdc6, 0x0077788a, 0x0045455d, 0x00585a6c, 0x006c676f, 0x00453f40, 0x00372a26, 0x003e2a1f, 0x004a2e1d, 0x0056321d, 0x00603520, 0x00683c25,
- 0x006f4432, 0x00724b38, 0x00724d3a, 0x006a4637, 0x00563427, 0x004c2b1e, 0x004e2d1c, 0x00583623, 0x00764e3b, 0x00835943, 0x00825b44, 0x00815b43, 0x00865f44, 0x008d694c, 0x008d6953, 0x007f5b43,
- 0x005a3a2c, 0x00402317, 0x00452c26, 0x005e4845, 0x008e7e80, 0x00ac9e9d, 0x00b5a9aa, 0x00b4a9ae, 0x00b0abb3, 0x00b2acb7, 0x00b1acb5, 0x00b6b2bd, 0x00bcb4bf, 0x00c2b8bf, 0x00c0b4b6, 0x00bdb0b1,
- 0x00c9c6ca, 0x00eaeaeb, 0x00f9fcfa, 0x00fbfcfb, 0x00fdfffe, 0x00fffefb, 0x00f7ede7, 0x00a7978e, 0x004b2b1e, 0x00542f1f, 0x00523022, 0x0051362a, 0x005b3c2e, 0x005e3d2a, 0x0062402b, 0x0065412d,
- 0x0067453a, 0x00654a43, 0x00604f4b, 0x00595152, 0x005a5861, 0x005c5f71, 0x005f647d, 0x00616583, 0x005c6389, 0x00555e85, 0x004c5683, 0x00454e7c, 0x003a446c, 0x002f365d, 0x00282d51, 0x00252b4a,
- 0x00172b55, 0x00212a3e, 0x002e262f, 0x00382522, 0x00322a27, 0x001d222d, 0x003f4c60, 0x00647286, 0x00715b54, 0x00845741, 0x00b37c64, 0x00bf927b, 0x00ba8d73, 0x00b3826b, 0x00b8866d, 0x00bb8b6f,
- 0x00b7846d, 0x009e7258, 0x0081573e, 0x006a442d, 0x0067422b, 0x007f4d37, 0x00895240, 0x00643c28, 0x002c130b, 0x00302120, 0x002f2a2e, 0x0034363e, 0x00373943, 0x003b383f, 0x003d373d, 0x003d3238,
- 0x002e3249, 0x0031364c, 0x00323b52, 0x00344257, 0x00435167, 0x00506072, 0x005f6f7f, 0x006b7986, 0x00707e86, 0x00707d81, 0x00727d81, 0x006e7378, 0x0072686a, 0x006c5858, 0x00614946, 0x006a514a,
- 0x00bfb2a9, 0x00faf5ee, 0x00fbfdf8, 0x00fcfcfe, 0x00fefbff, 0x00fff9f2, 0x00bb9990, 0x007a322c, 0x00851c16, 0x00842715, 0x008c391f, 0x00904426, 0x00a24533, 0x00a44f41, 0x00a25c50, 0x00976657,
- 0x008c6e58, 0x00866c56, 0x00806a54, 0x007a6a54, 0x00776c55, 0x00787258, 0x007d795d, 0x00827e62, 0x00888362, 0x0086835f, 0x00827c5d, 0x00777055, 0x0067624f, 0x0058554b, 0x00494645, 0x003d3e44,
- 0x00343445, 0x002f2e40, 0x00252639, 0x00262336, 0x00272334, 0x00312b3e, 0x00535472, 0x005e6c94, 0x005c87c5, 0x006699e4, 0x005f95ea, 0x005188de, 0x003f72c9, 0x003a6fc6, 0x00376ac5, 0x002c60bd,
- 0x003a6fc9, 0x004a81d5, 0x004c84d8, 0x00548de0, 0x005b91e0, 0x005d8dd6, 0x005d84ca, 0x006383c6, 0x007587c6, 0x007686c2, 0x006882c6, 0x004e88de, 0x004280dc, 0x003e7ada, 0x003778d7, 0x003777d7,
- 0x003d7bd9, 0x00417cd4, 0x004378cb, 0x004278c4, 0x004879bc, 0x0083a3cb, 0x00d7e9fa, 0x00eaf4f4, 0x00efe7d8, 0x00ecede6, 0x00c9d6dc, 0x008caac3, 0x005e8bba, 0x00618fbc, 0x00719abf, 0x009ebedd,
- 0x00c4dce9, 0x00b1cbe5, 0x0095b4d8, 0x007c9dca, 0x0095b2dc, 0x008ba4bf, 0x00435565, 0x0029363c, 0x0032303b, 0x002f2d3b, 0x00261f2e, 0x0020161d, 0x001b0c13, 0x00190710, 0x00190611, 0x001c040f,
- 0x001d030e, 0x001b030c, 0x001b050d, 0x001a050b, 0x00170508, 0x0016050a, 0x00180a11, 0x00180c16, 0x00170e22, 0x00151029, 0x00181434, 0x00171738, 0x00151d40, 0x001d2849, 0x00313c5e, 0x003f4e6f,
- 0x005e667d, 0x0071778b, 0x00838699, 0x009092a0, 0x00a29fa8, 0x00a6a3aa, 0x00a5a1a9, 0x00a49fa5, 0x009e9da1, 0x009a9b9f, 0x0097949e, 0x008e8d9d, 0x00858c99, 0x007a8999, 0x00748a9b, 0x00708d9d,
- 0x006a8ca0, 0x00668c9e, 0x006992a3, 0x005f8a97, 0x008fb5c6, 0x00dfedf4, 0x00fefefc, 0x00f9f8f1, 0x00fbfdf6, 0x00f7fbf8, 0x00dcdee6, 0x0088899d, 0x004d506e, 0x00676a89, 0x00989ab8, 0x00b2b7cd,
- 0x0097b5cb, 0x007f99b4, 0x007a94b2, 0x008ba2c0, 0x008ca2bb, 0x007e9aae, 0x007999b0, 0x006084a4, 0x002e5890, 0x00143e85, 0x00042f73, 0x00012d5b, 0x005c6c98, 0x00b4b1d1, 0x00d2c0d6, 0x00d2bdc3,
- 0x00cfcbc8, 0x00aebec3, 0x00587290, 0x001c457d, 0x002f5cb3, 0x00507bc2, 0x0082a5db, 0x00afc9f0, 0x00d1e8fd, 0x00b8d9fb, 0x0083a9dd, 0x007baff2, 0x0090c8ff, 0x0087baf3, 0x007da4dc, 0x0098bce3,
- 0x00c2c8e4, 0x0099b7e2, 0x0099c8f5, 0x009cd6ff, 0x008bbbed, 0x009eb7d6, 0x00cedaec, 0x00e6eefb, 0x00b0dcf8, 0x0077bdf5, 0x0068aee3, 0x0092c1d5, 0x00bdc9ea, 0x00ccc6ec, 0x00ded2f5, 0x00d3d0f4,
- 0x009fbed8, 0x0089b6d0, 0x00aad8f1, 0x00b6ddfe, 0x00acbaf9, 0x0081a9e6, 0x006ca1d4, 0x0087b3e0, 0x00c1d8f7, 0x00d1e0f1, 0x00dbe1ea, 0x00f2f0f1, 0x00fffef7, 0x00fbfcf6, 0x00f9fef9, 0x00fafffb,
- 0x00fff8f7, 0x00a8a4a4, 0x0006040a, 0x002e323d, 0x0092a5c0, 0x00accbf2, 0x00739dd2, 0x005a92d2, 0x004d94e3, 0x004491e6, 0x003c88de, 0x004287d9, 0x004386db, 0x004083d8, 0x003e82d8, 0x003c80d4,
- 0x003d81da, 0x003a7ed8, 0x003a7ed5, 0x003b7cd9, 0x003d7fda, 0x00367fd5, 0x003480d1, 0x00377dd3, 0x003c79d8, 0x003b76d5, 0x003e76d7, 0x003c74d5, 0x003a75d3, 0x003978d2, 0x003575cc, 0x002d6fc2,
- 0x001e69d9, 0x002366d7, 0x002664cd, 0x00235abb, 0x002654b1, 0x00254faa, 0x002a54b0, 0x002d5eb5, 0x00326cc7, 0x002c6cc6, 0x00275eb6, 0x001f4293, 0x00395396, 0x00687eb6, 0x008e9fc8, 0x00a4b2d2,
- 0x00b2c1e4, 0x008da1c9, 0x005874a8, 0x004b6dab, 0x00729be3, 0x006e9beb, 0x003967b4, 0x001a468d, 0x0017357f, 0x000c2d7b, 0x000d3287, 0x00113d90, 0x00214691, 0x00334984, 0x005b628e, 0x009f9bbb,
- 0x00c292a4, 0x009c5357, 0x009a2c1f, 0x00c62f04, 0x00b44023, 0x00775974, 0x00466499, 0x001c5795, 0x00222532, 0x00231311, 0x0025130e, 0x001e191a, 0x001d1818, 0x00201916, 0x001d1816, 0x001f1914,
- 0x001f1a19, 0x001c1919, 0x00161817, 0x00121615, 0x00101618, 0x00121419, 0x00131217, 0x00141216, 0x00131218, 0x00111115, 0x00121114, 0x00222123, 0x009e9e9e, 0x00f3f3f2, 0x00fefefd, 0x00fbfbf9,
- 0x00e8e0d6, 0x00c5b4a9, 0x00cdbeb0, 0x00d6c8b7, 0x00e1d2c0, 0x00e4dbc5, 0x00ece1cc, 0x00f1e4d6, 0x00f7ebe4, 0x00f9eee4, 0x00f9f0e9, 0x00f9f3ef, 0x00fcf7f4, 0x00fefbf7, 0x00fdfcf8, 0x00fefbf7,
- 0x00fefefb, 0x00fcfefa, 0x00fcfef9, 0x00fafdf8, 0x00f9fcf6, 0x00f9fbf7, 0x00fbfbf9, 0x00fcfdfa, 0x00fefcff, 0x00fcfcff, 0x00f9fbfc, 0x00f7f9fa, 0x00f8fafc, 0x00fbfcfe, 0x00fbfcfe, 0x00fafbfe,
- 0x00f8fcfc, 0x00f8fcfb, 0x00f9fbf9, 0x00fafbfb, 0x00fcfcff, 0x00f9fafb, 0x00f6f9f7, 0x00f7fafa, 0x00fbfbfe, 0x00fbfcfe, 0x00fafdfb, 0x00fafcf9, 0x00fbfcfc, 0x00fcfbfc, 0x00fbfaf9, 0x00faf9f9,
- 0x00fffcfa, 0x00fcf7f3, 0x00fbf3ee, 0x00fcf4ef, 0x00f9f0ec, 0x00f7ece2, 0x00f1e5d8, 0x00eee2d5, 0x00efded6, 0x00e8d8d2, 0x00dcd0c9, 0x00cec5bd, 0x00bfb4ae, 0x00afa49e, 0x009d938d, 0x00918683,
- 0x007d7374, 0x006d6465, 0x005b5655, 0x004b4b48, 0x003d3f3e, 0x00353836, 0x002b2d2a, 0x00232322, 0x001e181a, 0x00151010, 0x00180e0e, 0x00180c0a, 0x00180a0a, 0x00140708, 0x00150609, 0x00160708,
- 0x001a0709, 0x00190707, 0x00180405, 0x001d0507, 0x001d0909, 0x00170509, 0x00110609, 0x00100808, 0x000c0a0a, 0x000c0d0a, 0x000b0e07, 0x000b0f09, 0x000f0d10, 0x00150a13, 0x00190915, 0x001a0516,
- 0x001c110d, 0x0019100b, 0x0017110b, 0x0019150d, 0x001c1a10, 0x001e1a10, 0x00211a0f, 0x00251c11, 0x0031221c, 0x0037251d, 0x003c291e, 0x003f2d1e, 0x00493625, 0x00533e2c, 0x005c4632, 0x00614934,
- 0x00685140, 0x006d5746, 0x00725f50, 0x00746558, 0x00766961, 0x00786f68, 0x007c756f, 0x00807775, 0x00877b7c, 0x00837a7b, 0x00807c79, 0x007c7876, 0x00928f8f, 0x00c9c5c7, 0x00fcfafa, 0x00fcfcfd,
- 0x00fafbf9, 0x00fdfffe, 0x00f1f0f4, 0x00ada1a8, 0x00723424, 0x00a33c10, 0x00d04b0e, 0x00ee4f07, 0x00f75217, 0x00ea5222, 0x00dd501b, 0x00de4c0d, 0x00d9582c, 0x00e47052, 0x00db7460, 0x00ca685c,
- 0x00d1624e, 0x00e67056, 0x00e96e4b, 0x00dc5d34, 0x00d55629, 0x00d0583c, 0x00b15443, 0x007f5a50, 0x004d585f, 0x005a5659, 0x007e6c5f, 0x008c6e45, 0x00817137, 0x00746e46, 0x006a6957, 0x0078747c,
- 0x00709bae, 0x007eaac3, 0x0087b5d0, 0x0080b4d3, 0x007ab0d9, 0x0071acd3, 0x0067a5d0, 0x0062a0cf, 0x00649ed5, 0x00639ed1, 0x0064a4d4, 0x0065ace1, 0x0069aadd, 0x0064a5d1, 0x0064a2c8, 0x0066a1c2,
- 0x0071aed0, 0x0073b2db, 0x0073b6e3, 0x006db5e6, 0x006bb6ed, 0x0077b3ea, 0x0074b1e1, 0x0072addf, 0x0074b1e4, 0x007cb8e5, 0x0087bbe2, 0x008cbada, 0x009aaccb, 0x00979bb7, 0x00888099, 0x00816b83,
- 0x007f674c, 0x007a5f48, 0x007b5e4c, 0x007c5a4d, 0x007f5845, 0x007a5436, 0x00815f37, 0x00836239, 0x0077503b, 0x00714c39, 0x00695753, 0x0056737b, 0x0056809a, 0x004f84a9, 0x004f8bb4, 0x004b89b7,
- 0x005489b8, 0x005984ad, 0x005c84a9, 0x006185a7, 0x006486a9, 0x006383a5, 0x006784a0, 0x00647a93, 0x00575d72, 0x004e4c5b, 0x004c434d, 0x005b5056, 0x00746a6f, 0x007b747a, 0x00838086, 0x0083878b,
- 0x007b8091, 0x00a0a2ad, 0x00f0f3f1, 0x00fefef4, 0x00fefff3, 0x00fcfff8, 0x00fdfcfd, 0x00d2d4d7, 0x00454a4a, 0x00111a12, 0x00232919, 0x00302d17, 0x0034321e, 0x0034331f, 0x00353421, 0x00363522,
- 0x00393525, 0x00383524, 0x00383423, 0x00373523, 0x00363523, 0x00393622, 0x00393520, 0x0037371e, 0x003a3922, 0x00393820, 0x0035361d, 0x0036371d, 0x0038361d, 0x0037351c, 0x0034341a, 0x0036351b,
- 0x0031341b, 0x0031331a, 0x0032321b, 0x002f2f19, 0x0030301d, 0x002b2e1f, 0x0032372c, 0x00343b33, 0x00323d45, 0x00414c55, 0x00546d7d, 0x006696b0, 0x0083b4d4, 0x0084b6de, 0x0075a8d8, 0x006da2d4,
- 0x006ea1df, 0x0069a0df, 0x0068a0e2, 0x0066a3e5, 0x0065a1e2, 0x005a9fd1, 0x00559acd, 0x005499d0, 0x005d9bde, 0x00619cdf, 0x00659ce0, 0x006c9dda, 0x006791b9, 0x00597c98, 0x0038576a, 0x00193540,
- 0x0019291b, 0x001d291b, 0x002c3525, 0x002e3321, 0x00383927, 0x00403f2e, 0x00403f2f, 0x00484536, 0x00525149, 0x00575650, 0x005f5d59, 0x0067665f, 0x00727168, 0x00807f77, 0x00908f87, 0x0097968c,
- 0x00acaaa4, 0x00b6b4af, 0x00c6c4be, 0x00d2d0c8, 0x00dad7ce, 0x00dbd9d3, 0x00dddcd5, 0x00dddfd6, 0x00ebe6e5, 0x00ede8e7, 0x00ede9e7, 0x00ebe8e7, 0x00faf6f9, 0x00fdfafd, 0x00fefcff, 0x00fcf9fd,
- 0x00f3fcfa, 0x00f8f9fc, 0x00e8d5d1, 0x00ca8f7f, 0x00ca471a, 0x00cb4817, 0x00bd4d26, 0x00ce8674, 0x00edcfda, 0x00f7dee4, 0x00f9e5eb, 0x00e5dae5, 0x00d2cad4, 0x00ccc9d2, 0x00dddbe2, 0x00edeef2,
- 0x00f5f1fb, 0x00f0ebf4, 0x00dbd8df, 0x00ebe3ed, 0x00c3b8c1, 0x00735451, 0x004a261b, 0x00433120, 0x002e2e22, 0x0052534e, 0x00999697, 0x00ae9faa, 0x00bea7ba, 0x00c1b5be, 0x00c3c1bd, 0x00c6d4c1,
- 0x00e3d9df, 0x00f1e0e5, 0x00ceb8bd, 0x0094737b, 0x00532e36, 0x00543036, 0x00785e63, 0x00887179, 0x00837380, 0x00847884, 0x00807984, 0x00968b99, 0x00afa3af, 0x00b3a5af, 0x00b3a8ae, 0x00b1aaae,
- 0x00bab1b3, 0x00c3bdbf, 0x00c8c2c3, 0x00cdc6cb, 0x00d2cdd4, 0x00b5b6c5, 0x00898c9f, 0x008f909f, 0x009792a1, 0x00736a73, 0x004a3f3f, 0x0039291f, 0x00492e1e, 0x00593823, 0x00623c26, 0x006b3e27,
- 0x006d4634, 0x00704939, 0x006b4734, 0x00633f2e, 0x00583425, 0x00553222, 0x00654029, 0x00784f39, 0x00895b46, 0x00905d46, 0x00895c41, 0x007e5a3e, 0x00785139, 0x00744e34, 0x00825b45, 0x00926e56,
- 0x0078574a, 0x00644640, 0x006a5451, 0x00816f71, 0x00a79ba1, 0x00b0a4ab, 0x00b0a4ab, 0x00b3a5b1, 0x00b3a8ba, 0x00b6aac0, 0x00b5abbc, 0x00b8b2bf, 0x00b9b1be, 0x00bbafbc, 0x00c3b5c0, 0x00c1b1bc,
- 0x00c9cbcd, 0x00efeff0, 0x00f8fcfb, 0x00fafdfd, 0x00fdfcfb, 0x00fcfdf5, 0x00ece5d9, 0x0099887b, 0x00593327, 0x005c3124, 0x00573023, 0x00533626, 0x005b3a2a, 0x005e3c2b, 0x005f3d2d, 0x00603d2b,
- 0x0063483b, 0x00624c43, 0x0061504d, 0x005f5556, 0x00635d67, 0x00646572, 0x00676c7d, 0x00697084, 0x006c6f90, 0x00676a8f, 0x005b6187, 0x004f577d, 0x00454b6b, 0x003c3f5d, 0x0033354e, 0x00313147,
- 0x00222f42, 0x002f2f36, 0x00352526, 0x003d241d, 0x003a2a2e, 0x0024283c, 0x00435375, 0x006071a0, 0x004a406b, 0x00472c4d, 0x0075556a, 0x008d7879, 0x00937a74, 0x00907169, 0x00977165, 0x00a07565,
- 0x008c6550, 0x007d543f, 0x006f442d, 0x00653920, 0x0070442c, 0x007a4c3f, 0x006c4139, 0x00512e27, 0x00361e21, 0x0034262d, 0x002f2b31, 0x002c3036, 0x00313239, 0x00352f35, 0x00352d33, 0x003b2e34,
- 0x002f3144, 0x00323549, 0x00343d51, 0x00394758, 0x004b596c, 0x00576875, 0x00637880, 0x006e8288, 0x007a868d, 0x007d898d, 0x007a8588, 0x00747b80, 0x00766f72, 0x0069585a, 0x005e4848, 0x006d5856,
- 0x00c9bfb9, 0x00faf8f4, 0x00fdfefb, 0x00fcfbfd, 0x00fffafe, 0x00fef2e8, 0x00b38b81, 0x0072271f, 0x008d1a16, 0x00831e0c, 0x008a2e15, 0x00863715, 0x009e3c27, 0x009e4735, 0x009e5445, 0x00966452,
- 0x008c6e55, 0x008a6e55, 0x00877058, 0x0083725a, 0x0080755c, 0x007f795e, 0x00848064, 0x008a8569, 0x008f886a, 0x008d8668, 0x00878164, 0x007a765c, 0x006a6654, 0x005a584d, 0x00494a45, 0x00414245,
- 0x00373844, 0x00302c3a, 0x00272532, 0x002d2935, 0x002b2632, 0x00413b4b, 0x00696b88, 0x007789b2, 0x006d95db, 0x0071a3f3, 0x005d95e9, 0x004d85d8, 0x003b6ec4, 0x003b6fc7, 0x003668c7, 0x00295fbe,
- 0x003b6cc7, 0x00467ad0, 0x004f84d8, 0x005589db, 0x005a8dda, 0x005890d7, 0x00568cd0, 0x00578dd3, 0x005f8fe0, 0x00618dde, 0x005989d3, 0x005487d2, 0x004b7fcf, 0x004679ce, 0x004177cc, 0x004077cd,
- 0x004176cd, 0x004379cc, 0x004276c4, 0x004375bf, 0x004573b6, 0x00668dbd, 0x00bbd5ef, 0x00e3f1f8, 0x00eae5d8, 0x00eeede7, 0x00c9d5dc, 0x0084a2bb, 0x00608ac0, 0x006690c3, 0x00739bc6, 0x009cc2e1,
- 0x00c6dee9, 0x00b9d1e8, 0x009fbcdc, 0x0083a3ce, 0x0086a8d6, 0x008eb1d4, 0x0057758f, 0x002c4455, 0x00333547, 0x00363244, 0x002c2433, 0x00231c25, 0x001b101b, 0x001a0b15, 0x00170811, 0x00190810,
- 0x001a060e, 0x0018050f, 0x0018070e, 0x0016070c, 0x0016060b, 0x0014070d, 0x00140b11, 0x00150b17, 0x001a0b22, 0x00170f26, 0x0018132d, 0x00181731, 0x001b203e, 0x00262e4c, 0x003c4562, 0x004c5973,
- 0x006b7483, 0x007b808f, 0x008d8d9c, 0x009897a3, 0x00a7a2ab, 0x00aaa8ae, 0x00a8a7ac, 0x00a6a5aa, 0x00a4a3aa, 0x00a1a0a9, 0x009a9aa6, 0x009194a1, 0x008893a2, 0x007d92a2, 0x007290a2, 0x006b8ea2,
- 0x006790a3, 0x00608a9e, 0x006590a5, 0x005b8697, 0x0092b6c9, 0x00e4f2f9, 0x00fafcfa, 0x00f9fbf8, 0x00f9fcf8, 0x00fafdfc, 0x00d1d5d8, 0x007d838c, 0x006a707f, 0x00929aa5, 0x00c7d0d9, 0x00e4ecee,
- 0x00dcf4fe, 0x00d1e4f6, 0x00caddf3, 0x00d0dff7, 0x00d2e0ef, 0x00c8dce7, 0x00c7e1ee, 0x009fbdd4, 0x00496da3, 0x001e4089, 0x00082e74, 0x00063465, 0x005b6c97, 0x00b2b0d3, 0x00d0c2d6, 0x00d4c1c8,
- 0x00ceccca, 0x00b5c3c9, 0x006c87a1, 0x00365c8c, 0x003f66bb, 0x003570c0, 0x00377ac1, 0x005a95d7, 0x009bcbfb, 0x00a2c5ee, 0x008da7d4, 0x00afc6ec, 0x00b6d2f6, 0x0084aee2, 0x0070a7e0, 0x0072b5f1,
- 0x00a3b9dc, 0x009dc6ef, 0x00a6e3fe, 0x008dd6fc, 0x0077b1ec, 0x0099c1e6, 0x00c3ddf4, 0x00cbe1f7, 0x0090c8f9, 0x005fb3f8, 0x0059b6f4, 0x0089d6f1, 0x00bfe7f9, 0x00cbe0fb, 0x00c3cff2, 0x00b4c3e5,
- 0x0089b5d1, 0x008fc4e3, 0x00b1e5fc, 0x00aad1f4, 0x0097a6de, 0x006b96c9, 0x0073a6d8, 0x0097c2ef, 0x00bcd5f7, 0x00cadbf1, 0x00dfe5f0, 0x00eceeee, 0x00fcfef7, 0x00fefdf9, 0x00fefffc, 0x00fbfdfc,
- 0x00fcf7f6, 0x00a29ea2, 0x0010111c, 0x005b6577, 0x00a0bce3, 0x0085afe1, 0x005c92cd, 0x005393d8, 0x004b92e7, 0x00438ee8, 0x003b87de, 0x003d83d3, 0x003f83d6, 0x004185d8, 0x003b82d6, 0x003a80d2,
- 0x003c80d9, 0x003c7fdb, 0x00397ed3, 0x00397cd8, 0x003a7dd6, 0x003580d7, 0x00307fd2, 0x00327cd5, 0x003d74d3, 0x003f74d3, 0x004478d5, 0x004075d1, 0x003f77d4, 0x003a78d3, 0x003374d0, 0x003275d3,
- 0x002469d3, 0x002668d0, 0x002660c3, 0x002b5dbc, 0x002b56b2, 0x002752a9, 0x002251a7, 0x002c5db2, 0x00336dcb, 0x00316ecf, 0x002a65c8, 0x001e53b7, 0x001e4c9e, 0x00274c8b, 0x002d4678, 0x00516486,
- 0x0094a5bf, 0x0098a7c4, 0x007385ab, 0x00768ec0, 0x008298d7, 0x008fabdc, 0x006d88b6, 0x00526998, 0x003c4f87, 0x00344a88, 0x004565a7, 0x005278bb, 0x00648bcd, 0x006987c0, 0x00728bbb, 0x00899cc8,
- 0x00a26979, 0x0095444a, 0x0099281c, 0x00c52804, 0x00b1402d, 0x00695175, 0x004169ab, 0x002770c0, 0x00354b71, 0x00272b46, 0x001b1924, 0x0016171c, 0x001a191e, 0x001e1b1c, 0x00191614, 0x00221a1c,
- 0x00211b19, 0x00211a1b, 0x001b1a1b, 0x00181a19, 0x00161a1f, 0x0015171c, 0x00121619, 0x00141517, 0x0018161c, 0x0018171c, 0x00121215, 0x002b2b2b, 0x00a9a9a9, 0x00f4f4f3, 0x00fbfcf9, 0x00fafcfa,
- 0x00f6f9f0, 0x00f3f3e9, 0x00fbf9f0, 0x00fdfaf0, 0x00fdfbef, 0x00fefbf3, 0x00fffbf5, 0x00fffdfb, 0x00f9fdf3, 0x00fafcf2, 0x00fdfbfa, 0x00fefdfe, 0x00fcfffe, 0x00fcfefb, 0x00fefbfe, 0x00fefbfd,
- 0x00f0faf6, 0x00f2fbf6, 0x00f5fdfb, 0x00fafffe, 0x00f7fffe, 0x00f9fdf7, 0x00fbfcf9, 0x00fbfcfc, 0x00f3faf2, 0x00f6fcf6, 0x00fbfffc, 0x00fcfdfd, 0x00fffdff, 0x00fffdff, 0x00fffeff, 0x00fbfbfc,
- 0x00f8fef7, 0x00f8fef7, 0x00fcfffb, 0x00fefffd, 0x00fffffe, 0x00fffefd, 0x00ffffff, 0x00fffeff, 0x00f6f8f1, 0x00f0f1ef, 0x00f1f0ee, 0x00f0eee9, 0x00ece8e3, 0x00e9e3e0, 0x00e6ddda, 0x00e2d7d4,
- 0x00cac3b6, 0x00c2b7ab, 0x00bcada3, 0x00b9a79b, 0x00ad9991, 0x00a1887a, 0x00957a6d, 0x00876d60, 0x00705c4c, 0x00645041, 0x005a4238, 0x004e3b32, 0x0045352c, 0x00402f27, 0x00392922, 0x0035221c,
- 0x00221713, 0x001d1412, 0x001e1414, 0x00150e0f, 0x0010110f, 0x0010100d, 0x000b0c0b, 0x000e0d0c, 0x00060a02, 0x00040700, 0x00100a06, 0x00170502, 0x00150505, 0x00190806, 0x001f0c0c, 0x001f0a0c,
- 0x00150600, 0x001a0502, 0x00210608, 0x00210407, 0x00200003, 0x00190207, 0x0017080e, 0x0013080b, 0x000a0700, 0x00090700, 0x000c0801, 0x000f0c07, 0x001a0e12, 0x00190b14, 0x001a0919, 0x001d091f,
- 0x00170f06, 0x00171107, 0x001b150b, 0x001e180e, 0x00201d12, 0x00241d13, 0x00291e16, 0x002d2119, 0x002f2513, 0x00352617, 0x003e2a1d, 0x00432e1f, 0x004d3725, 0x00543d2b, 0x005d4231, 0x00624634,
- 0x005d4b30, 0x0062503a, 0x006a5948, 0x006e6052, 0x006f635a, 0x00716764, 0x00756b6b, 0x00776d6b, 0x00706d66, 0x00717069, 0x0076726e, 0x00736e6b, 0x00848385, 0x00bbb9bb, 0x00fffbff, 0x00fffdff,
- 0x00f4fdf4, 0x00f3fef8, 0x00f6f4f5, 0x00aeadb2, 0x00693c30, 0x008d391d, 0x00c54c25, 0x00e95123, 0x00ea4f0d, 0x00e64d0e, 0x00e7480f, 0x00e6460f, 0x00d84b25, 0x00d15034, 0x00da614e, 0x00de7161,
- 0x00d26a4c, 0x00c75c39, 0x00e57657, 0x00e47656, 0x00c65e3f, 0x00ac5057, 0x0093526e, 0x00746183, 0x00446289, 0x00445274, 0x0055506a, 0x00625053, 0x00595b4a, 0x005d6b69, 0x00748193, 0x008c98bf,
- 0x0070b3cd, 0x0072b4d1, 0x0071b2d4, 0x006daed4, 0x006babd4, 0x0068a6d0, 0x00619cc7, 0x00639cc8, 0x005c9abd, 0x005b98ba, 0x0065a3cc, 0x0064afdd, 0x0067acd6, 0x0066a6cd, 0x00649ec2, 0x00679cbe,
- 0x0066a2bc, 0x006ba7ca, 0x006da9d5, 0x006aa7da, 0x0067a8e1, 0x0064a8d6, 0x0060a3d1, 0x005d9ece, 0x00589ec3, 0x005da0c8, 0x006ba3d3, 0x0078a6d4, 0x0084aad3, 0x008ca9d0, 0x00869dc5, 0x007f90b7,
- 0x00786b4d, 0x006a5b43, 0x006d5746, 0x00705447, 0x00745341, 0x00755135, 0x00876244, 0x008c6848, 0x007c6542, 0x0080674e, 0x00756d68, 0x005b7c95, 0x005780a1, 0x005181a9, 0x005688b9, 0x005288be,
- 0x004e8ab5, 0x004e85b1, 0x005580b0, 0x00547da9, 0x004f74a5, 0x004e6f9a, 0x0058739d, 0x005c729b, 0x0055667d, 0x004d596f, 0x0051566b, 0x00606276, 0x00707186, 0x0071758c, 0x007c819d, 0x008489a8,
- 0x007684a0, 0x009aa5b1, 0x00eff5f8, 0x00fbfdf4, 0x00fdfeef, 0x00fcfdf6, 0x00fffcfe, 0x00d7d2dd, 0x00404b43, 0x000b1c08, 0x001e2813, 0x002d2c18, 0x0034321e, 0x00343420, 0x00343321, 0x00383425,
- 0x0032361e, 0x0033351e, 0x00363521, 0x00383523, 0x00373523, 0x00383621, 0x003a3720, 0x003a371f, 0x0034361b, 0x0035371b, 0x0037381e, 0x0038381e, 0x0037361e, 0x0038351e, 0x0039361f, 0x0038351e,
- 0x002b3312, 0x002d3011, 0x00312e19, 0x0034301c, 0x002e3020, 0x0031362c, 0x00313835, 0x003a454b, 0x004c6971, 0x00708f9e, 0x008db4d2, 0x007cbaec, 0x0072b0e5, 0x006da9e3, 0x0069a4e5, 0x006ea3ea,
- 0x005f9bdd, 0x005f9cdb, 0x0069a3e5, 0x006da3e8, 0x006ca2e5, 0x0060a1d8, 0x00589fd4, 0x00599dd8, 0x00549eda, 0x005b9ee2, 0x00659fe9, 0x0072a7ee, 0x0077a7e5, 0x007aa4d8, 0x007397c3, 0x006282a9,
- 0x002d4c39, 0x0016301e, 0x0017281c, 0x00232f1e, 0x00272b15, 0x002b2b15, 0x002f2b17, 0x0030291b, 0x00262b10, 0x00252b14, 0x002c2a1e, 0x002e2a22, 0x002f2d24, 0x002f2e22, 0x00342f25, 0x00313026,
- 0x00282a18, 0x002c2d1d, 0x00363629, 0x00414035, 0x004b493e, 0x00545248, 0x005d5b52, 0x0065645c, 0x006e7265, 0x00797d72, 0x00878682, 0x00979592, 0x00d2d1d1, 0x00f8f6f6, 0x00fffeff, 0x00fffdff,
- 0x00eefef5, 0x00f3fbf7, 0x00e3d2ce, 0x00be8374, 0x00c64617, 0x00cb4b19, 0x00bf4f2c, 0x00d6897f, 0x00e6d5d8, 0x00ede1de, 0x00f4e6e9, 0x00e8dbe9, 0x00d6cad6, 0x00d1c9d2, 0x00ddd5df, 0x00eeeaf7,
- 0x00edf0f3, 0x00eceef2, 0x00e0d9e3, 0x00ede2ec, 0x00c6b9c5, 0x005e5a53, 0x00252717, 0x0030372a, 0x002a402f, 0x00545d59, 0x00988e98, 0x00a98da3, 0x00b696ab, 0x00b7a6af, 0x00b8b7b6, 0x00becbc0,
- 0x00dad3d5, 0x00dccdce, 0x00ae9097, 0x00724a4e, 0x0051272a, 0x00714b57, 0x008c7281, 0x008d798e, 0x0078747c, 0x0078777b, 0x00867d88, 0x009c8d9c, 0x00b1a5b0, 0x00b2a7b0, 0x00b8abb5, 0x00bab0b6,
- 0x00acaaa4, 0x00b8b5b1, 0x00c7c1c4, 0x00c9c1c6, 0x00cfc8cc, 0x00d2cfda, 0x00c5c3d7, 0x00b3afc2, 0x009698a1, 0x0076777c, 0x00484145, 0x00392a2a, 0x00442c21, 0x00543626, 0x00653e2b, 0x0070452e,
- 0x0066482a, 0x0066462c, 0x0064432c, 0x005e3c28, 0x005e3a28, 0x00684230, 0x00774e3c, 0x00855848, 0x00895e3e, 0x008b5c3e, 0x008d5d40, 0x0088603e, 0x007a5032, 0x00693f23, 0x00663d26, 0x00734d39,
- 0x00664d39, 0x007b6659, 0x00ab9898, 0x00b0a1a7, 0x00b2aab1, 0x00b1a4b1, 0x00b3a3b5, 0x00b5a6ba, 0x00b0a9b4, 0x00b1a9b7, 0x00b5acbd, 0x00b9afc3, 0x00bbb0c3, 0x00baadc0, 0x00c2b3c5, 0x00c1b0c2,
- 0x00c9d0cc, 0x00eaf2ef, 0x00f7fbfb, 0x00fcffff, 0x00fcfff9, 0x00fffcf6, 0x00e9d8d1, 0x00927a70, 0x005a3b23, 0x00603923, 0x00603a26, 0x00593b29, 0x005d3d2b, 0x005f3d2e, 0x005f3c2f, 0x00603d30,
- 0x00594632, 0x005d4b3e, 0x0063534f, 0x00625a5b, 0x0068656a, 0x006e6c77, 0x00757282, 0x0077788a, 0x006c7788, 0x00697287, 0x00666986, 0x005e627f, 0x00545770, 0x004c4a61, 0x00474357, 0x00443d4e,
- 0x00313127, 0x003c2f1f, 0x004a2d20, 0x00492918, 0x004b2f34, 0x005d4c64, 0x007e7aa7, 0x007075b8, 0x00323d7d, 0x001c2066, 0x00251652, 0x00342d40, 0x00463a48, 0x004f3c44, 0x00573b3d, 0x00603e39,
- 0x004b2e17, 0x00502b14, 0x00613524, 0x006e4330, 0x0074463a, 0x00623e43, 0x00573643, 0x004e3141, 0x00362e32, 0x002e2a2d, 0x002b262c, 0x0029292d, 0x00302b30, 0x00332a33, 0x00352b31, 0x003b2e36,
- 0x00262e37, 0x00283239, 0x00383f4b, 0x00424958, 0x00535f6c, 0x00616f7a, 0x0074818c, 0x007a8a92, 0x007c8e8a, 0x00819090, 0x00828d90, 0x007c8485, 0x007c7579, 0x00695c5e, 0x005a474a, 0x00715b5f,
- 0x00c6c8bb, 0x00f4f9f0, 0x00fcfdfb, 0x00f9fafc, 0x00fffbff, 0x00fdece5, 0x00ac8076, 0x00772020, 0x0086180d, 0x007d1905, 0x00862a10, 0x00832e11, 0x00952f1c, 0x00983a2a, 0x009e4f3d, 0x0099624d,
- 0x00856a48, 0x00846c4a, 0x00896f57, 0x0086735d, 0x0083765f, 0x00857d62, 0x008d826a, 0x00938870, 0x008b8d66, 0x008c8a65, 0x00898364, 0x007f795c, 0x006c6756, 0x005d5a4e, 0x004c4a49, 0x00444247,
- 0x00303737, 0x00272c2d, 0x002d2935, 0x00332f38, 0x002d292d, 0x004c4b59, 0x009b9ebc, 0x0092a5d0, 0x00639ad6, 0x0065a0e7, 0x005b94e7, 0x004780d5, 0x00396cc5, 0x00396bc5, 0x003a69ca, 0x002d5fc2,
- 0x003068bc, 0x003b73c6, 0x004a80d5, 0x004f82d4, 0x005188d2, 0x00528ad2, 0x00548dda, 0x005591e0, 0x004d95e2, 0x004a91e0, 0x00508add, 0x005185cb, 0x004d7fcb, 0x00477cc7, 0x004577cd, 0x004277ce,
- 0x003678c2, 0x003877c5, 0x003d76ca, 0x003f76c5, 0x003e75bf, 0x00537eb8, 0x00a4beee, 0x00deeafe, 0x00dfe7ce, 0x00e3eedb, 0x00c3d0d9, 0x007b97b7, 0x005582bc, 0x005f8ac2, 0x007198c8, 0x00a2c2e3,
- 0x00ccebf0, 0x00c5e3f2, 0x00a6c0de, 0x0089a5ce, 0x007698cb, 0x0078a2ce, 0x006a8eb5, 0x00435f7c, 0x002d3b47, 0x0033353f, 0x00312935, 0x0029242d, 0x00211923, 0x001a0f1a, 0x00180916, 0x00190915,
- 0x00140707, 0x00150809, 0x0015080c, 0x0013070c, 0x0012060c, 0x0012070c, 0x00140912, 0x00150a19, 0x000e0c15, 0x0010101d, 0x00151428, 0x00191a32, 0x0021263e, 0x0031374f, 0x004f526c, 0x00616480,
- 0x006e787d, 0x007e858b, 0x0092949d, 0x009f9da4, 0x00aaa4aa, 0x00aea7ad, 0x00aea7ae, 0x00aca6ae, 0x009ea4a5, 0x009da2a4, 0x009d9ea8, 0x00999ba8, 0x008998a6, 0x007f95a7, 0x007292a7, 0x006891a8,
- 0x00548b99, 0x0057889a, 0x00618ba2, 0x00598096, 0x009abacf, 0x00e8f5fb, 0x00fffcfd, 0x00fbfdfc, 0x00f2feef, 0x00f6fff8, 0x00bbc4c4, 0x00656b71, 0x007b8087, 0x00a7aeb0, 0x00d7e2de, 0x00f1faf2,
- 0x00eafef6, 0x00e9fbf7, 0x00eef9fe, 0x00f0f7fd, 0x00f6fcfc, 0x00f3fcfc, 0x00eefdff, 0x00c7daee, 0x00517aa2, 0x00153c7a, 0x000b3375, 0x000c386f, 0x00586998, 0x00adafd1, 0x00d0c7dc, 0x00d7c6cf,
- 0x00c8cfc9, 0x0099aeb3, 0x005b7591, 0x006687b4, 0x007b9ee2, 0x005b8cd0, 0x003c73ba, 0x00306eb5, 0x00498bbf, 0x00669ac5, 0x0083a3cf, 0x00b4c4eb, 0x00adbeea, 0x007ca1d4, 0x007aacea, 0x0077c0ff,
- 0x00bdcfe1, 0x00c0e3f5, 0x00aedffc, 0x0078b9f3, 0x0066a1dd, 0x0081add8, 0x00a0bce0, 0x00b2ccec, 0x008bc3e7, 0x006ab2e0, 0x0068b2e7, 0x007cc4f0, 0x009bc6f0, 0x00a5c3e4, 0x00b0c4e3, 0x00c1d1ed,
- 0x00a8d2e7, 0x0087b7cb, 0x008bb5d2, 0x009ebddc, 0x00a6b1d4, 0x006e95c6, 0x006a99cf, 0x0084acdd, 0x0089a9c4, 0x009bb3c2, 0x00cfdbe3, 0x00ebeff3, 0x00fffdfc, 0x00fffffc, 0x00fefefd, 0x00fffdfc,
- 0x00f9faf2, 0x009ea0a3, 0x002a3041, 0x00677891, 0x00739ac7, 0x005e8fc9, 0x005691d8, 0x005396e6, 0x003e8ede, 0x003788da, 0x003b85db, 0x003f82d7, 0x003d80d5, 0x003a80d4, 0x003f83da, 0x004183dd,
- 0x00377fd0, 0x00347dd3, 0x00377cd5, 0x00387dd7, 0x00387dd7, 0x00317fd5, 0x003f83df, 0x004485de, 0x00437fc9, 0x005489d4, 0x0073a2ec, 0x00729ae7, 0x004677cc, 0x003971c8, 0x003b77d1, 0x003473d1,
- 0x00256dc4, 0x002866be, 0x00295ebb, 0x002d5db8, 0x002a54ad, 0x00254fa8, 0x002652ae, 0x002f5ebb, 0x00266bc3, 0x002569c5, 0x00276ccd, 0x002564c8, 0x002358b2, 0x002551a0, 0x0014357b, 0x00122963,
- 0x002a4469, 0x00415679, 0x00425178, 0x007385a9, 0x008091b9, 0x008995b9, 0x00abb1d5, 0x00939dc7, 0x005b6d94, 0x00657daa, 0x00849ed6, 0x008cade9, 0x0086adea, 0x006386c3, 0x003f619a, 0x00395b8f,
- 0x006b4862, 0x007a3b4a, 0x008d272a, 0x00b22005, 0x00ad3b2a, 0x006f537a, 0x003d5da9, 0x002872cf, 0x004879ae, 0x003c6797, 0x00223c61, 0x00161f2b, 0x00191c26, 0x00191921, 0x00211921, 0x00231b1f,
- 0x001c1d12, 0x001c1b12, 0x001c1c1a, 0x00191d1c, 0x00171d1f, 0x0018191d, 0x001d1a23, 0x0019151e, 0x00121815, 0x00141816, 0x00101115, 0x00302f33, 0x00b2b2b2, 0x00f7f7f6, 0x00ffffff, 0x00fffffe,
- 0x00f7fbfe, 0x00f9fdfe, 0x00f9ffff, 0x00f5fbf8, 0x00f7fcf7, 0x00f9fff9, 0x00fafefa, 0x00f8fffe, 0x00fcfefe, 0x00fafefd, 0x00fbfefe, 0x00fbfeff, 0x00f9fffc, 0x00f9fefb, 0x00fafdfc, 0x00f9fefd,
- 0x00f6fdfe, 0x00f5fefc, 0x00f5fffe, 0x00f7fefe, 0x00f7fefc, 0x00fcfffa, 0x00fcfef8, 0x00fcfdf9, 0x00fbfdf9, 0x00fcfefb, 0x00fefefe, 0x00fdfcfd, 0x00fdfbfd, 0x00fdfcfe, 0x00fdfcfd, 0x00fbfafb,
- 0x00f3f3f2, 0x00efefee, 0x00e9e9e7, 0x00e3e2df, 0x00dedcd9, 0x00dcd8d5, 0x00d6d2cf, 0x00d0ccc8, 0x00c3bdb7, 0x00b7b1ac, 0x00a9a19c, 0x009a9188, 0x008d837a, 0x0082776d, 0x0074675c, 0x006a5a50,
- 0x00645042, 0x00604b3d, 0x005e4738, 0x005f4634, 0x005a3f2e, 0x005c3928, 0x005a3522, 0x0054311c, 0x004d2b1a, 0x00472516, 0x00401f12, 0x00391b0f, 0x00371c10, 0x00361c11, 0x00341b12, 0x00321711,
- 0x00251817, 0x001c1213, 0x001b1212, 0x00171111, 0x00141512, 0x0012120e, 0x00080a07, 0x00070905, 0x000a0b07, 0x000c0b08, 0x00120907, 0x001d0906, 0x00291714, 0x003f2c29, 0x004d3a38, 0x004b3738,
- 0x003a2322, 0x002e1416, 0x0028090d, 0x002e0b0f, 0x00340f14, 0x002b0f11, 0x00220d0c, 0x00200a06, 0x001c0600, 0x00190100, 0x00190401, 0x001c0702, 0x001b070a, 0x001b070e, 0x00190813, 0x0018081a,
- 0x001f110a, 0x0021150d, 0x0023170e, 0x00251c11, 0x00241e11, 0x00282013, 0x002e2216, 0x00322418, 0x00342818, 0x003c2a1b, 0x00422d1e, 0x00453020, 0x004c3624, 0x00523a28, 0x00563d2a, 0x005a3e2c,
- 0x005c4431, 0x00604a3a, 0x00675245, 0x006a594d, 0x006a5d54, 0x006b615c, 0x006a635f, 0x0067625c, 0x00696260, 0x006a6461, 0x006d6564, 0x006b6565, 0x00777576, 0x00adacac, 0x00fbfafa, 0x00fefefd,
- 0x00fbfbfb, 0x00f9feff, 0x00f4f8f6, 0x00b4b7b6, 0x005d4441, 0x006f3530, 0x00a2493c, 0x00c8533b, 0x00df4c1f, 0x00e44b13, 0x00e6450b, 0x00ea4312, 0x00e34c24, 0x00d74a2b, 0x00d04e30, 0x00cf593b,
- 0x00d96542, 0x00dd6e4c, 0x00d06949, 0x00d3765e, 0x00c57a68, 0x009a5f8e, 0x007e5eab, 0x00636eb9, 0x004d71c2, 0x004454a3, 0x002c3178, 0x00362f68, 0x003c5678, 0x005f82aa, 0x0083a7d9, 0x008faeec,
- 0x0068b7db, 0x0063b0d5, 0x0062acd3, 0x0067aed8, 0x006baed9, 0x0065a4cf, 0x005b96c0, 0x005b94bd, 0x006196b7, 0x006798b9, 0x0069a6c9, 0x0062b0d7, 0x0065add3, 0x0064a5c8, 0x005e9bb9, 0x006296b7,
- 0x006397b9, 0x00699ac2, 0x00699bc8, 0x00659ac9, 0x006398cb, 0x00569ec3, 0x004c9dbb, 0x004f96b7, 0x00548eb8, 0x005989b9, 0x006188c0, 0x00688cc3, 0x006d97cc, 0x006ea1d0, 0x0069a1ce, 0x00609fc7,
- 0x00827f69, 0x006d6659, 0x005f544d, 0x00645250, 0x00664d44, 0x006a4f3c, 0x007c624a, 0x008a7057, 0x0087745c, 0x008b796a, 0x0074777a, 0x00527a9c, 0x005481a9, 0x005483ac, 0x005886b4, 0x005685b6,
- 0x004f80b7, 0x004f7cb8, 0x004c78b4, 0x004b74ad, 0x00496ea6, 0x00486ca3, 0x004b6da2, 0x00506da2, 0x00576d99, 0x00566891, 0x00546188, 0x00606d92, 0x006a799f, 0x00697ca5, 0x007086b2, 0x007890be,
- 0x007385b5, 0x0098a7c3, 0x00eaf4fb, 0x00fbfef9, 0x00fefeef, 0x00fcfdf6, 0x00fefcfc, 0x00d4d1d9, 0x00434b45, 0x00101b09, 0x00212811, 0x002d2d18, 0x0034321e, 0x00353420, 0x0035331f, 0x00373521,
- 0x00353621, 0x00353520, 0x00373622, 0x00373523, 0x00373422, 0x00373520, 0x00383720, 0x00383720, 0x00383720, 0x00383720, 0x00393821, 0x00393820, 0x0038351f, 0x0037351e, 0x0037341e, 0x0036341d,
- 0x00313216, 0x00323015, 0x00312e19, 0x00312e19, 0x002c2f21, 0x0029312b, 0x00364447, 0x00637785, 0x0087acc1, 0x008bb2d2, 0x0082b6e3, 0x0070b7f5, 0x0061aaec, 0x0065a9ee, 0x0068aaf0, 0x0066a6ee,
- 0x0066a1ea, 0x0068a1e6, 0x006fa5e7, 0x0072a7e6, 0x0071a4df, 0x0065a4da, 0x005ca1d6, 0x005ca0d8, 0x005da1e4, 0x0061a3e9, 0x0062a0eb, 0x0066a1ea, 0x006ba0e6, 0x0073a3e4, 0x007eaae6, 0x007fa9e2,
- 0x006a8f8b, 0x0043635e, 0x0017312b, 0x001b2d21, 0x002c321d, 0x002e3019, 0x00302f14, 0x002f2f15, 0x002e2e16, 0x002d2e18, 0x002f2d1d, 0x00312f22, 0x00302d20, 0x002d2d1f, 0x002a2a1b, 0x0028291a,
- 0x00272617, 0x00272617, 0x0029271a, 0x002b291c, 0x002f2d1f, 0x00323120, 0x00313120, 0x0030301f, 0x002f3023, 0x00323327, 0x0034312b, 0x003f3d37, 0x00a3a39f, 0x00f2f3ef, 0x00fefdfc, 0x00fdfdfd,
- 0x00f5fcf9, 0x00fcfeff, 0x00e2cec9, 0x00b27666, 0x00bd420d, 0x00c74614, 0x00bd512b, 0x00d28d82, 0x00eddae3, 0x00f1e4eb, 0x00efe5ec, 0x00e9deeb, 0x00d7ced9, 0x00cfc9d3, 0x00d6d3db, 0x00e6e5ee,
- 0x00eeeef3, 0x00f1f1f7, 0x00e3dfe7, 0x00ede4ed, 0x00c7bec9, 0x005d6a60, 0x002a4731, 0x00476353, 0x0062736f, 0x0074757a, 0x00847883, 0x008b7081, 0x00947785, 0x009c8c91, 0x00aba6a7, 0x00b8c2bc,
- 0x00ccc2cb, 0x00c2afb3, 0x008e6d70, 0x005b2f30, 0x00613538, 0x0086626e, 0x00907989, 0x00887a8e, 0x007e7985, 0x00867f87, 0x00938891, 0x00a0939e, 0x00ada2ab, 0x00b1a6ae, 0x00b9acb5, 0x00beb4b9,
- 0x00b3a9ad, 0x00b7adb1, 0x00c5bac1, 0x00c4babf, 0x00c8bec3, 0x00d1c9d4, 0x00d2ccde, 0x00c3bed2, 0x00a6a5b5, 0x00908f9b, 0x006b6670, 0x004a3e43, 0x003b271f, 0x00492f20, 0x0064432f, 0x00704932,
- 0x00684830, 0x0064442c, 0x005c3c24, 0x005c3c25, 0x0064422d, 0x006f4c36, 0x007d563e, 0x00895f46, 0x00906144, 0x00946044, 0x00916040, 0x008e6240, 0x00835937, 0x0074492c, 0x00643d25, 0x0065402e,
- 0x0065463a, 0x00856f69, 0x00bdabae, 0x00b3a5b0, 0x00a7a0af, 0x00aca2b3, 0x00afa4b6, 0x00b0a4b8, 0x00b6a8bb, 0x00b6aabd, 0x00b7abbf, 0x00b9adc2, 0x00baaec3, 0x00b9acc0, 0x00bcb1c4, 0x00bbb0c2,
- 0x00d3d3d5, 0x00f4f4f6, 0x00f9fbfc, 0x00fdffff, 0x00fbfef8, 0x00fefef6, 0x00dacac0, 0x00846e5f, 0x0065402b, 0x006d402d, 0x006a402d, 0x00624230, 0x0063412f, 0x00634030, 0x005e3e2e, 0x005b3d2d,
- 0x005b463a, 0x00604d45, 0x00625451, 0x00655b5b, 0x006c696a, 0x00727174, 0x0075767c, 0x00787980, 0x00737785, 0x006f7183, 0x006b6c80, 0x0065677c, 0x005b5b6b, 0x0054505c, 0x004c4652, 0x004a4348,
- 0x005a3b1d, 0x005a361a, 0x005b351b, 0x0058301c, 0x00643c37, 0x007d576b, 0x00887096, 0x006c60a2, 0x003846a4, 0x001e36a3, 0x0004106a, 0x000a0e2f, 0x0014122a, 0x00211d2f, 0x00261621, 0x002f1a19,
- 0x00351914, 0x0046231d, 0x00532f28, 0x0068423b, 0x00613b36, 0x00442f44, 0x00493d5e, 0x00544765, 0x00463e4a, 0x00352d38, 0x00292127, 0x00292324, 0x002e2726, 0x002f252a, 0x0032282d, 0x00362a2f,
- 0x002d2934, 0x00302f39, 0x003d3e4a, 0x00484c56, 0x005a656a, 0x0069777c, 0x0079878d, 0x00818f95, 0x00879598, 0x008b969d, 0x00899399, 0x00828c8d, 0x007d7a7b, 0x006c6064, 0x00594b4c, 0x00726364,
- 0x00d3d3cd, 0x00f8faf8, 0x00fafcfc, 0x00f9fbfb, 0x00fffcff, 0x00f9e7dc, 0x00a07365, 0x00711d19, 0x0086170c, 0x00841e0a, 0x0084270d, 0x00802a0c, 0x008d2914, 0x008e3220, 0x00934734, 0x00915c47,
- 0x0089694a, 0x00886a4d, 0x00896d56, 0x0088715b, 0x0084765f, 0x00867d65, 0x008c856d, 0x00908d72, 0x00939071, 0x00928d71, 0x008c866b, 0x007d795f, 0x00696754, 0x0059584d, 0x004a4744, 0x00403d40,
- 0x0036353a, 0x00302f34, 0x00312c33, 0x00352e31, 0x00302728, 0x005c5b66, 0x00c4cee6, 0x00a5bfe3, 0x0073a5e5, 0x00669deb, 0x00558ee3, 0x00447dd6, 0x003469c0, 0x003668c3, 0x003a6ac7, 0x002a5dbc,
- 0x003266bf, 0x003c70c7, 0x00497ad0, 0x004b7dce, 0x004a80cb, 0x004c86d0, 0x00518edb, 0x005496e5, 0x005099eb, 0x004893e9, 0x00468cde, 0x004b82cf, 0x00477dcb, 0x00437acc, 0x003d79ce, 0x003c77d2,
- 0x003877d1, 0x003a78d5, 0x003878d2, 0x003679d1, 0x003476cc, 0x004172bd, 0x008ba9e1, 0x00d1e3f6, 0x00e7ebd8, 0x00e1e8dd, 0x00b7c3cc, 0x006b86aa, 0x004a76b7, 0x005580ba, 0x006992c3, 0x0091b5d7,
- 0x00cee8ec, 0x00d8eefb, 0x00b0c6e3, 0x0092acd6, 0x00709acd, 0x006292c4, 0x006998c5, 0x004d7697, 0x00344255, 0x00403a47, 0x003a323a, 0x002d2e36, 0x00231f27, 0x001d151d, 0x00150d15, 0x00160812,
- 0x0015060f, 0x0014070f, 0x0014080e, 0x0012080d, 0x0011080c, 0x0010090d, 0x00110a0f, 0x00120a14, 0x00120d1d, 0x00131023, 0x0018142b, 0x001f1c33, 0x00292b3f, 0x003a3e50, 0x00575a6d, 0x00696d80,
- 0x007a7f85, 0x00888b91, 0x009a99a0, 0x00a4a0a5, 0x00aba6a8, 0x00ada9aa, 0x00aca9ab, 0x00aaa7ac, 0x00a0a4aa, 0x009fa2a9, 0x009ca0aa, 0x00989fa8, 0x008a9ba7, 0x007b97a7, 0x006b93a5, 0x006390a8,
- 0x0051899e, 0x005989a1, 0x005c849c, 0x005c7e93, 0x00a5bdd1, 0x00ebf5fc, 0x00fefeff, 0x00f9fefb, 0x00f9fef7, 0x00fafefd, 0x00aab1b1, 0x004d535b, 0x0070767e, 0x00a8b2b0, 0x00dceadd, 0x00effceb,
- 0x00f2fbfc, 0x00f5fcfe, 0x00f7f9ff, 0x00fbf9fe, 0x00fdfcfc, 0x00fbfefe, 0x00f4fffd, 0x00d6e9f2, 0x006182b2, 0x00183b7b, 0x00133a7f, 0x00143c7d, 0x00506692, 0x00a7afca, 0x00caccd9, 0x00cfcdd1,
- 0x00bfc8cd, 0x008594ab, 0x00465a79, 0x00809ac1, 0x00aac6ef, 0x00a3b2db, 0x008498bf, 0x005985b5, 0x004186bd, 0x004b89c7, 0x005d8fc7, 0x007d9bcf, 0x008fa7d5, 0x0089abde, 0x009dd1f8, 0x00a3e8fb,
- 0x00f1ded8, 0x00ebedf4, 0x00bdd4f0, 0x0080afdf, 0x0072a9dc, 0x0091beea, 0x00b3d2f7, 0x00d0e6fa, 0x00c5def0, 0x00a3bbd4, 0x0085acc9, 0x0084b7dd, 0x0099c2d9, 0x00b3cbdb, 0x00c9dce5, 0x00d8e3ec,
- 0x00ccdde9, 0x00b7cadc, 0x00b8c9dc, 0x00cbd8ea, 0x00bcc4ce, 0x007d9fca, 0x0072a2d9, 0x008cb9e8, 0x0088a3c6, 0x00889cb3, 0x00c1cdda, 0x00ecf1f8, 0x00fefcfd, 0x00fffefb, 0x00fdfefa, 0x00fdfdf8,
- 0x00fbfaf6, 0x00a4a7af, 0x00354156, 0x00516b8b, 0x00497ab0, 0x004882c4, 0x004d90db, 0x004993e4, 0x003f8be0, 0x003b87dc, 0x003e85d9, 0x004285d8, 0x003e83d5, 0x003b82d5, 0x003d82d7, 0x003e82da,
- 0x003e85d9, 0x003d81db, 0x003c82da, 0x003e81dc, 0x003a7cd7, 0x00377cd1, 0x004483d3, 0x005d93e1, 0x0087b2ea, 0x00a3c9f3, 0x00b6d6f9, 0x00a9c5f5, 0x006892d0, 0x005382ca, 0x005488d7, 0x00427dd1,
- 0x003a70c1, 0x003666ba, 0x00305fb4, 0x002f5cb4, 0x00204da5, 0x001d4da8, 0x001f52ae, 0x00285dba, 0x002c68c4, 0x002b69c4, 0x00266ac3, 0x001e64b9, 0x001958b2, 0x002b60be, 0x002c56b4, 0x002543a2,
- 0x000f2875, 0x000f2262, 0x000b184b, 0x00273657, 0x00212f44, 0x00202b44, 0x00555c7d, 0x00586287, 0x00495883, 0x00566c9b, 0x004a639b, 0x003e5d99, 0x00436aa7, 0x002c5897, 0x00194a89, 0x001f5391,
- 0x004b4580, 0x00603b69, 0x00782c40, 0x00a52417, 0x00a83625, 0x006f4b6b, 0x00425ca2, 0x00276cc9, 0x003277c2, 0x00377fd8, 0x00417cbd, 0x0034465b, 0x000b1825, 0x00181c2a, 0x001a1c24, 0x00201d1f,
- 0x001f1a18, 0x00211c1b, 0x001d1b1b, 0x001b1d1d, 0x00181c1f, 0x0019191d, 0x001a191f, 0x0019191f, 0x0019171b, 0x0019181b, 0x00131216, 0x00333436, 0x00b6b7b7, 0x00f7f8f7, 0x00fdfefd, 0x00fdfffd,
- 0x00fefdff, 0x00f8fbfc, 0x00fbfcfe, 0x00f8fbfb, 0x00f7fdf9, 0x00f5fbf7, 0x00f6fdf9, 0x00f8fefe, 0x00fdffff, 0x00fafeff, 0x00f9fefd, 0x00fbfcff, 0x00fbfdfc, 0x00fcfcff, 0x00fdfdfd, 0x00fefefc,
- 0x00fefefb, 0x00fcfbf6, 0x00fefff9, 0x00fffff7, 0x00fdfcf6, 0x00fcfaf3, 0x00f5f4ee, 0x00f4f1eb, 0x00efece6, 0x00e8e4df, 0x00e3dfdb, 0x00ddd9d7, 0x00d1cccc, 0x00c4bfbf, 0x00b7b1b2, 0x00aca5a7,
- 0x00a09a97, 0x0097918c, 0x00847d78, 0x00716b64, 0x00635b53, 0x005e544b, 0x00574b42, 0x0051443b, 0x0046372d, 0x003f3127, 0x003e2e22, 0x003e2d20, 0x003e2b1e, 0x003e2a1b, 0x003e2716, 0x003d2213,
- 0x0041210c, 0x0043210a, 0x004c260e, 0x00532a14, 0x00582e15, 0x005e2b15, 0x00622c16, 0x00602a16, 0x005d2913, 0x00562612, 0x00562716, 0x00512414, 0x004d2215, 0x004b2216, 0x00461f15, 0x003f180f,
- 0x002e1a1e, 0x00221216, 0x00241619, 0x001f1517, 0x00100c0c, 0x000d0a09, 0x0010110f, 0x00181b18, 0x00333530, 0x004c4c49, 0x00635b5b, 0x00756864, 0x00978e8a, 0x00bbb3ae, 0x00cfc8c4, 0x00cbc4c0,
- 0x00baaca9, 0x009d8b87, 0x00887371, 0x008a6f72, 0x00856669, 0x00805d59, 0x00764b41, 0x0067372b, 0x005f2418, 0x0053150d, 0x00440e06, 0x003c0501, 0x00290001, 0x00270605, 0x0028110e, 0x00220f10,
- 0x00271610, 0x00261810, 0x002a1e14, 0x002a2014, 0x002a2214, 0x00302617, 0x00342617, 0x00372819, 0x003c2b1e, 0x00422d1e, 0x00453022, 0x00453123, 0x004a3427, 0x004d3625, 0x00503724, 0x00513723,
- 0x00594231, 0x005b4638, 0x005e4d41, 0x00605346, 0x0062564d, 0x00635853, 0x00615855, 0x005e5652, 0x00605858, 0x005f5855, 0x00635b5c, 0x00645e5f, 0x006c686a, 0x009f9d9e, 0x00fcf9fc, 0x00fffefe,
- 0x00fefcfd, 0x00fbfdf9, 0x00fcfcfc, 0x00c2c6c0, 0x00495063, 0x003d3a5b, 0x005e4673, 0x00815076, 0x00b85253, 0x00cb5031, 0x00d3461b, 0x00dd481a, 0x00dd4c22, 0x00de4d23, 0x00db4c1f, 0x00d6461a,
- 0x00d5481c, 0x00e26442, 0x00ce6550, 0x00ba6661, 0x00a77080, 0x007469b3, 0x005168cb, 0x00406bc5, 0x00395eb3, 0x002c3e93, 0x00141c72, 0x00232e81, 0x00497fbd, 0x0072afe8, 0x0087bff3, 0x0083aae4,
- 0x0067abd0, 0x0061a5c9, 0x0066a8d0, 0x006eadda, 0x006ba7d9, 0x00639cd1, 0x005c94c9, 0x005d95c8, 0x006199ca, 0x00659ecc, 0x006da6d7, 0x0067a9d5, 0x0068a9d5, 0x0064a1ca, 0x005b95c0, 0x005891bb,
- 0x005f8fbb, 0x005e91b8, 0x005f93bb, 0x005d93b8, 0x005a90b6, 0x005091ae, 0x004b90aa, 0x004a8ca8, 0x004f81a9, 0x004f7da8, 0x00527dac, 0x005581af, 0x005487b5, 0x00518cb5, 0x004f8eb5, 0x004d93b6,
- 0x00708999, 0x0060748c, 0x0054617c, 0x005a5e7d, 0x005f5970, 0x00605967, 0x00706c72, 0x007b797d, 0x0080838c, 0x007b808f, 0x00657895, 0x004e7dac, 0x005e86b5, 0x006288b5, 0x005679ab, 0x004a6fa5,
- 0x004b71b5, 0x00456fb8, 0x003f69b2, 0x003d65ae, 0x004460a7, 0x004166b0, 0x004164ae, 0x004064ac, 0x004261a1, 0x00425f9e, 0x0048629f, 0x00546fad, 0x005e7cbf, 0x005e82c8, 0x00658dd5, 0x006590d9,
- 0x006680c8, 0x008ba3cc, 0x00e0f2fe, 0x00f7fefd, 0x00fdfff3, 0x00fffdfa, 0x00fff9ff, 0x00d6d0da, 0x00494946, 0x00151909, 0x0024280e, 0x002e2d18, 0x0035321f, 0x00373421, 0x0035331f, 0x00363520,
- 0x00373523, 0x00363522, 0x00363523, 0x00373523, 0x00373423, 0x00383522, 0x00383722, 0x00383823, 0x00383722, 0x00383721, 0x00393722, 0x00393722, 0x00383522, 0x00373421, 0x00373421, 0x00363320,
- 0x003a311b, 0x00372f18, 0x00342f1b, 0x00312d1b, 0x002e3129, 0x002d373c, 0x004f6373, 0x007c99b6, 0x0086b6e7, 0x0078b1e6, 0x0071afea, 0x006aace7, 0x006daceb, 0x006daded, 0x006cacec, 0x006aabec,
- 0x0074adf0, 0x0071abea, 0x0070ace5, 0x0071ade5, 0x006ea6dd, 0x006fa5e3, 0x00699fdf, 0x00679edc, 0x0068a3e0, 0x0069a6e0, 0x0067a7dd, 0x0065a5db, 0x0068a5db, 0x006ca6dc, 0x0071a9de, 0x0073abe0,
- 0x0084b4d3, 0x007ba5bf, 0x00426777, 0x001f3840, 0x00222d27, 0x002a2d23, 0x002f2b1b, 0x00312c19, 0x00362f1d, 0x0034301d, 0x00322f1c, 0x002e2d1a, 0x00322e1e, 0x00333021, 0x00322f20, 0x00343122,
- 0x00322e1f, 0x00353122, 0x00383425, 0x00363224, 0x00343121, 0x0034331e, 0x0032331c, 0x0031321c, 0x002c2f1d, 0x002b2d1d, 0x002c2c20, 0x0026241b, 0x008c8b84, 0x00efeee7, 0x00fefdf8, 0x00fdfcf7,
- 0x00fbfef9, 0x00fdfdfc, 0x00eacfca, 0x00b37365, 0x00b83c0a, 0x00bf3f12, 0x00c15735, 0x00d79a90, 0x00eae1f1, 0x00eae7f4, 0x00eae7f1, 0x00ecdeec, 0x00dad2dc, 0x00d1ccd7, 0x00d5d3db, 0x00e6e1eb,
- 0x00f3f1f9, 0x00f2f1f8, 0x00e9e4ee, 0x00ede5ed, 0x00cfc4d0, 0x00818682, 0x006c7970, 0x008a928f, 0x009f97a3, 0x009b919c, 0x00908890, 0x00857e81, 0x007e7677, 0x0083787b, 0x009d8e94, 0x00b7a7b1,
- 0x00b1a9b5, 0x00a59394, 0x00755450, 0x0054251b, 0x00774649, 0x0097747f, 0x008f798c, 0x0086798f, 0x00877d8d, 0x0092858d, 0x009f9096, 0x00a3969e, 0x00a99ea7, 0x00b1a5ae, 0x00bbadb8, 0x00c4b9c3,
- 0x00c8b8c5, 0x00baabb8, 0x00beafbc, 0x00c1b3bf, 0x00c6b8c2, 0x00d5c4d1, 0x00d8c9d9, 0x00d7cddd, 0x00beb5c9, 0x009d98a9, 0x00928d9c, 0x006c656e, 0x00392a27, 0x00402c21, 0x005f4332, 0x00694933,
- 0x006e4b2f, 0x00664429, 0x005d3d25, 0x005e3f27, 0x006b4c34, 0x0075533b, 0x00825b45, 0x008b614b, 0x00946549, 0x00976548, 0x00976846, 0x00926140, 0x00875a39, 0x00815336, 0x00784f34, 0x00754d39,
- 0x007a5a54, 0x00947e7c, 0x00b8a9b1, 0x00aba1ac, 0x00aca5bb, 0x00ada6b7, 0x00aea5b4, 0x00b1a7b6, 0x00b5a9b9, 0x00b5aab8, 0x00b7acb9, 0x00b7acb9, 0x00b9afbc, 0x00bab0bf, 0x00bbb1bf, 0x00bcb3c1,
- 0x00ded9de, 0x00faf7f9, 0x00fdfdfc, 0x00fdfffe, 0x00fcfdf8, 0x00fffdf7, 0x00cab9ae, 0x00786251, 0x006c4531, 0x006e452f, 0x006d4630, 0x006b4a37, 0x006b4937, 0x00694939, 0x00614535, 0x005f4535,
- 0x0060473e, 0x005f4b44, 0x005f504d, 0x00625859, 0x006d6568, 0x0074716f, 0x00797774, 0x007a7879, 0x0077767f, 0x0070707a, 0x006e6e79, 0x00676773, 0x00615c64, 0x005b5155, 0x0052484b, 0x00514540,
- 0x005e4231, 0x00543b31, 0x005b413a, 0x00714f4c, 0x00ac6b5d, 0x00bc6857, 0x00994134, 0x007e2e31, 0x00583569, 0x003a3a86, 0x00283279, 0x0020173d, 0x000d0725, 0x00130722, 0x001d0e22, 0x001f0e1e,
- 0x00261224, 0x002b192d, 0x00372539, 0x00403149, 0x003f2d4d, 0x00222a61, 0x0030407b, 0x003a487a, 0x0033334e, 0x002c2834, 0x00332829, 0x0031211b, 0x00342320, 0x00342527, 0x0035292e, 0x00312633,
- 0x0030272b, 0x00302a2e, 0x003e3b40, 0x004a4d4f, 0x00626a6b, 0x00707a7d, 0x00808a91, 0x00879297, 0x008e97a5, 0x009098a6, 0x008e99a2, 0x00838f91, 0x007f7e7f, 0x0070666a, 0x005f5356, 0x007f7777,
- 0x00e3e4e0, 0x00f6fcfa, 0x00fafdfc, 0x00fafafa, 0x00fffafe, 0x00f1dfd5, 0x008a6051, 0x006c1d17, 0x0088190f, 0x00892410, 0x0083270c, 0x007f290a, 0x00892710, 0x00852b19, 0x00893e2b, 0x0087533e,
- 0x008a654d, 0x008a674f, 0x008b6d57, 0x008d725c, 0x00887865, 0x008c7e6b, 0x008e8772, 0x00938f75, 0x00959278, 0x00928c75, 0x008b836b, 0x007e7662, 0x00696454, 0x0057544c, 0x0044433f, 0x003a393a,
- 0x0039333b, 0x00302d30, 0x00342c2f, 0x00352b2b, 0x003a2e2c, 0x00737481, 0x00c5d0ee, 0x009db5e0, 0x006fa0e0, 0x006099e8, 0x00518be1, 0x00457fda, 0x003366c0, 0x003365c4, 0x003e6ecf, 0x002b5ec2,
- 0x003562bd, 0x003c6cc4, 0x004578cb, 0x00477ecc, 0x00447eca, 0x004a85d1, 0x00528eda, 0x005996e2, 0x005695e5, 0x004c8ee0, 0x004687db, 0x004281d9, 0x00407dd8, 0x003e7cd8, 0x003d79d7, 0x003d77d9,
- 0x003b75d9, 0x003975d5, 0x003876d4, 0x003676d3, 0x003473cf, 0x003a6bc1, 0x006e91d5, 0x00bed6f1, 0x00eff4e7, 0x00e2eae1, 0x00afbdc9, 0x005d76a3, 0x003e64b3, 0x004d74b8, 0x006187bf, 0x00799ac0,
- 0x00bfd2da, 0x00dbe9f6, 0x00c1d3eb, 0x009cb2d8, 0x00719dd0, 0x005c8dc5, 0x00669dd1, 0x005889b2, 0x00425369, 0x00444149, 0x00443c41, 0x0033363d, 0x0027252e, 0x001e1921, 0x00150d18, 0x00140a13,
- 0x00150913, 0x00130910, 0x00120a0f, 0x00110b0f, 0x00110c11, 0x00110c10, 0x00120c13, 0x00140d16, 0x00161120, 0x00181325, 0x001d182c, 0x00262336, 0x00333344, 0x00424552, 0x005b5e69, 0x006a6e78,
- 0x00828287, 0x008f8d92, 0x00a09c9f, 0x00a7a3a4, 0x00aca7a6, 0x00ada8a9, 0x00aaa7aa, 0x00a7a4ab, 0x00a2a3aa, 0x009d9fa7, 0x00979ea7, 0x00949da7, 0x008599a6, 0x007594a5, 0x006391a2, 0x00598da3,
- 0x005589a3, 0x005888a0, 0x00587d96, 0x00657d95, 0x00b4c1d9, 0x00f0f8fe, 0x00fafdfb, 0x00f7fff6, 0x00fdfffd, 0x00f4f6fb, 0x00989ea7, 0x00373b51, 0x00494e6a, 0x00878ea2, 0x00d8e1ed, 0x00f2fbfb,
- 0x00fafffd, 0x00fafcfb, 0x00faf9fe, 0x00fefafd, 0x00fefcfd, 0x00f9fdfc, 0x00f1fdff, 0x00d8edfa, 0x006285bc, 0x00164085, 0x001d4796, 0x00214595, 0x004c668f, 0x009dafbe, 0x00c6d3d8, 0x00c9d5d8,
- 0x00afbddb, 0x005f6f98, 0x0040507a, 0x0096a5c6, 0x00c2ccd2, 0x00d5c4c4, 0x00dac5c8, 0x00c3c7d1, 0x008fbce2, 0x0068a9e2, 0x004f96dd, 0x00569ae7, 0x0093bff3, 0x00bfd7f8, 0x00e1eaf7, 0x00eae6e6,
- 0x00fee0cb, 0x00f6e2d0, 0x00e2d9ce, 0x00cccbcc, 0x00c5d2dc, 0x00d3e0ee, 0x00d5e4f0, 0x00e0e8f3, 0x00f1e6e7, 0x00f0dfd6, 0x00e6d8db, 0x00d8d9f2, 0x00dae1e7, 0x00dde9dc, 0x00dee8d8, 0x00dddcd1,
- 0x00e7d4e5, 0x00e6d4ec, 0x00e6d4ef, 0x00dfdbf1, 0x00cad9e0, 0x00a0c4eb, 0x0086b4ec, 0x008ab6e4, 0x007e99bd, 0x00859ab3, 0x00c7d4e3, 0x00eef3fb, 0x00fdfdfe, 0x00fefbf9, 0x00fffefc, 0x00fefdfa,
- 0x00fffdff, 0x00a7adbb, 0x00283b57, 0x002d5078, 0x003772b0, 0x00498dd6, 0x004790e0, 0x003d8adf, 0x00438be1, 0x00438bdd, 0x004489db, 0x00468add, 0x004288dc, 0x004287dc, 0x003d81d6, 0x00397cd1,
- 0x004082dc, 0x003e81da, 0x004589e3, 0x003f81dd, 0x003c80db, 0x005489ce, 0x0087b0e3, 0x00acccf4, 0x00c6d8e4, 0x00cddbd8, 0x00ced4cf, 0x00d4dad4, 0x00bfcee0, 0x00b4cbee, 0x00aec9fa, 0x0094b9ee,
- 0x007792d2, 0x005b7abd, 0x003d62a8, 0x002d57a5, 0x002151a7, 0x001c53ad, 0x001d54b2, 0x00255fbc, 0x002f68c4, 0x002c67bd, 0x002e68bd, 0x002b60b1, 0x001b54b0, 0x00235abf, 0x002d64d0, 0x002e62d2,
- 0x002751b9, 0x00113a94, 0x00153783, 0x000c2965, 0x00051c48, 0x00061b55, 0x000b2367, 0x00103073, 0x00193c8b, 0x001a3e8d, 0x00163785, 0x001a3884, 0x0020418c, 0x001f4895, 0x002454a6, 0x00235caf,
- 0x00274da6, 0x00293a8d, 0x00443270, 0x00793456, 0x008b3f52, 0x00594578, 0x00405aa4, 0x002e6ac2, 0x002c67c1, 0x002372da, 0x00448be1, 0x00708eb2, 0x003a506e, 0x000f1d32, 0x00111a26, 0x001e2127,
- 0x00261c1f, 0x00261d1e, 0x00231d1e, 0x00201d1d, 0x001d1e22, 0x001d1d22, 0x001e1e25, 0x001c1a20, 0x001b1921, 0x001a191f, 0x00151517, 0x00393a3a, 0x00bebfc0, 0x00f9f9fa, 0x00fcfcfc, 0x00fefefd,
- 0x00fcfdfd, 0x00fdffff, 0x00f9fbfb, 0x00fcfefb, 0x00fcfef9, 0x00fafcf5, 0x00fcfef7, 0x00fdfffd, 0x00feffff, 0x00fefdff, 0x00fefdfb, 0x00fdfdf8, 0x00fcfcf5, 0x00faf9f4, 0x00f8f6ee, 0x00f7f3ec,
- 0x00f5f0e5, 0x00f6ece3, 0x00f0e8db, 0x00eae2d5, 0x00e0d8c9, 0x00d6cdc4, 0x00bbb5ac, 0x00a9a19a, 0x00918b81, 0x00807970, 0x006d655e, 0x00615a54, 0x00554e4a, 0x004b4442, 0x00433b3a, 0x003f3636,
- 0x00362e28, 0x00352c26, 0x002f271f, 0x002b2118, 0x00281e13, 0x002b2014, 0x002d2113, 0x002f2114, 0x00322011, 0x00312111, 0x00342110, 0x0036220f, 0x00382210, 0x003d2512, 0x00412610, 0x0040220c,
- 0x004c270e, 0x00522811, 0x0055270f, 0x005d2c11, 0x005f2c11, 0x00682d13, 0x006c2e15, 0x006e3019, 0x006a2d19, 0x00672d1b, 0x00622d1a, 0x00592614, 0x00542415, 0x00532618, 0x004e2215, 0x00471b0f,
- 0x002f181e, 0x0029141a, 0x00201215, 0x001b1112, 0x001e1b18, 0x0035342f, 0x005e5f5c, 0x007e817d, 0x00a8a9a4, 0x00cac7c6, 0x00dcd7d4, 0x00e1dbd6, 0x00ebebe0, 0x00f6f7ee, 0x00f7faf0, 0x00f4f5ed,
- 0x00f3f2eb, 0x00ebe4dc, 0x00e8dcd7, 0x00ead8d6, 0x00e2c9c8, 0x00d8afa5, 0x00ca9581, 0x00bb7f67, 0x00b46750, 0x00a75340, 0x008d3d27, 0x0072210e, 0x004d1104, 0x00350900, 0x002a0c03, 0x00250f09,
- 0x0026170f, 0x002a1c13, 0x002e2116, 0x002f2317, 0x00302518, 0x0033281a, 0x0035291a, 0x00382a1b, 0x003f2b1e, 0x00442d20, 0x00442f22, 0x00443224, 0x00463325, 0x004a3525, 0x004a3522, 0x004e3521,
- 0x004f3b29, 0x00523f30, 0x00544437, 0x0056473b, 0x00564941, 0x00564b47, 0x00554c4b, 0x00544e4b, 0x0055504e, 0x00564f4e, 0x0056504f, 0x00575354, 0x005d5859, 0x00908d91, 0x00f9f8fa, 0x00fefbfd,
- 0x00fefcfd, 0x00fdfbf7, 0x00fdfef7, 0x00cdd0c7, 0x003e5572, 0x00223974, 0x00374592, 0x00544e9b, 0x00904f68, 0x00af4f45, 0x00c04b2b, 0x00d14d22, 0x00d14b1a, 0x00d84a1c, 0x00de4f19, 0x00e44d14,
- 0x00de4b16, 0x00d04a25, 0x00d36853, 0x00bb656f, 0x00905a7d, 0x005b68af, 0x003066b4, 0x002665a2, 0x00264d86, 0x00203270, 0x001f2c6c, 0x003e5496, 0x0065abd8, 0x0079c3e6, 0x0078bbd5, 0x007da9c1,
- 0x0070a7cb, 0x0069a2c6, 0x006aa2cb, 0x006da4d4, 0x00689dd5, 0x006296d4, 0x005e95d4, 0x005e96d5, 0x005e9cdb, 0x0062a0df, 0x0067a3de, 0x00699fd2, 0x0065a2d3, 0x00619bcc, 0x005891c4, 0x00528ec0,
- 0x00538eba, 0x00528eb7, 0x00538fb5, 0x005391b8, 0x004e8cab, 0x005582a5, 0x00537b9b, 0x004b7c9c, 0x00407e9d, 0x003b81a2, 0x003c85a5, 0x004088a7, 0x004484a6, 0x004a7fa0, 0x00547fa4, 0x005c82a7,
- 0x005d88ad, 0x006385b4, 0x005e7aaa, 0x006778ad, 0x006a729f, 0x00636a8f, 0x0064708a, 0x0067748c, 0x006f819d, 0x007486ac, 0x006382b0, 0x005485bc, 0x005f87b7, 0x006382b3, 0x004a689d, 0x003a5993,
- 0x004065aa, 0x004068b3, 0x003d66b4, 0x003a5faf, 0x003c5aa6, 0x003d5fb1, 0x003c61b2, 0x00385dad, 0x0032549f, 0x003b5ca5, 0x004768b0, 0x005073bc, 0x00537cc9, 0x00517ed2, 0x005384dd, 0x005285e0,
- 0x005272c2, 0x007e99cd, 0x00daf0fb, 0x00f2fdff, 0x00fbfef3, 0x00fefcfc, 0x00fff9ff, 0x00d8d0dc, 0x004b4846, 0x00161809, 0x0024270c, 0x002e2c18, 0x0036321e, 0x00363422, 0x0034331f, 0x0036341f,
- 0x00373423, 0x00363522, 0x00363522, 0x00363522, 0x00373522, 0x00373521, 0x00383722, 0x00383823, 0x00363722, 0x00373722, 0x00373723, 0x00373723, 0x00383623, 0x00373522, 0x00363421, 0x00363321,
- 0x00382f19, 0x00372f18, 0x00332e1a, 0x0034301d, 0x002b2e2a, 0x0036434c, 0x00688296, 0x0083aacb, 0x007aafe7, 0x0070aded, 0x0069ace7, 0x0078aede, 0x0073aad9, 0x0073ade1, 0x0070ace0, 0x0072ace4,
- 0x0073b1ea, 0x0071afe9, 0x006bafe4, 0x006dafe4, 0x0069a9dc, 0x0073a3e8, 0x00719ee6, 0x006e9fdf, 0x006ea6db, 0x006da9d7, 0x0069aad1, 0x0065a8cc, 0x0066a8cc, 0x006aabd0, 0x0068a8cf, 0x006bacd5,
- 0x0077acdf, 0x0084b1df, 0x00759bbc, 0x004a627c, 0x00242e35, 0x00282b2b, 0x00322c24, 0x00332c20, 0x00362e22, 0x00373125, 0x00363222, 0x00363522, 0x00343020, 0x00363223, 0x00332f1f, 0x00343020,
- 0x002f2a19, 0x00302d1a, 0x0034301f, 0x00353121, 0x00363321, 0x0035351e, 0x0033341c, 0x0032341c, 0x002e301c, 0x002f311d, 0x00303020, 0x002b2b1b, 0x007b7b6e, 0x00e1e1d6, 0x00fefef7, 0x00fdfdf8,
- 0x00fefef6, 0x00fef9f8, 0x00f4d7d1, 0x00c38272, 0x00ba3e0c, 0x00bf4114, 0x00cf6747, 0x00e4aba3, 0x00e8e5f4, 0x00e2e7f4, 0x00e5e8f0, 0x00e9dee9, 0x00dcd3de, 0x00d4ceda, 0x00d4d2d9, 0x00e3e2eb,
- 0x00f2f0f7, 0x00f3eff9, 0x00e9e4ed, 0x00ede5ef, 0x00d6ccd7, 0x00a1949b, 0x00998a8e, 0x00af9ba7, 0x00bca5b8, 0x00bdb1bb, 0x00aeacae, 0x009ca69c, 0x00878f84, 0x00867f80, 0x00947c88, 0x00ae88a1,
- 0x009b969f, 0x00968384, 0x0066443c, 0x00572519, 0x00885557, 0x009f7c86, 0x00907a8e, 0x00897f95, 0x00908493, 0x009b8a91, 0x00a49498, 0x009f949a, 0x00a59ba3, 0x00afa4ad, 0x00b8acb7, 0x00c3b6c4,
- 0x00ccbccb, 0x00c8baca, 0x00b8aaba, 0x00beb0bf, 0x00c7b7c6, 0x00ccb8c5, 0x00d5c1cd, 0x00ded0dc, 0x00cac1d4, 0x00aea8ba, 0x009492a3, 0x00706976, 0x003e3434, 0x003f2c24, 0x00584030, 0x006e513d,
- 0x006f4c30, 0x006b492e, 0x0067472c, 0x00694c31, 0x0073553a, 0x007b5a40, 0x00835f44, 0x008a6348, 0x00946549, 0x009b694e, 0x009b6a4a, 0x0095643e, 0x00855633, 0x00835534, 0x0082593d, 0x00835b47,
- 0x008c6c67, 0x00a48c8c, 0x00b4a4ac, 0x00aca2b1, 0x00aca8be, 0x00aaa5b1, 0x00aca8b0, 0x00ada8ae, 0x00b4abb1, 0x00b7aeb3, 0x00b6acb1, 0x00b5acb0, 0x00b6afb4, 0x00bbb5bb, 0x00b9b4bb, 0x00bebac0,
- 0x00e0dae0, 0x00fcf8fa, 0x00fefdfc, 0x00fdfffd, 0x00fefef9, 0x00fefaf4, 0x00bbaca0, 0x00705b49, 0x006a4931, 0x006f482f, 0x00734b33, 0x00704f3a, 0x00704f3c, 0x00704e3f, 0x00694b3b, 0x00664d3c,
- 0x005e483f, 0x005f4a46, 0x005b4c4a, 0x005e5354, 0x00655e60, 0x00716d6a, 0x0074736c, 0x00777473, 0x0075757b, 0x0074717a, 0x006e6d76, 0x0067666f, 0x00615a5f, 0x005b5152, 0x00554947, 0x0053463c,
- 0x00464a56, 0x004c5162, 0x005e6173, 0x008b7e90, 0x00d5907b, 0x00ea8055, 0x00d04c1b, 0x00b52f0b, 0x007d2b22, 0x005a2b40, 0x004a3257, 0x00413256, 0x00382845, 0x0023132d, 0x0026182f, 0x001e1226,
- 0x00231632, 0x003d3457, 0x00343255, 0x001d1c48, 0x002f3166, 0x00314991, 0x002e4e9a, 0x00334b8a, 0x00353a5b, 0x00362e3a, 0x00332522, 0x00331e13, 0x00311e15, 0x00342427, 0x0033272d, 0x002d2734,
- 0x002f2426, 0x002f2628, 0x003d3839, 0x004e4e4d, 0x0065696a, 0x00737b7d, 0x00838b91, 0x008b939a, 0x009197a4, 0x009499ab, 0x008e97a3, 0x00828e8d, 0x00808082, 0x00746c70, 0x00655c60, 0x0090888a,
- 0x00eaeee9, 0x00f9fefd, 0x00f8fdfd, 0x00fcfbfc, 0x00fdfbfe, 0x00e5d4ca, 0x00744c3e, 0x00651913, 0x0087190f, 0x008a2611, 0x007e2609, 0x00822c0c, 0x00882911, 0x00862c19, 0x00833d29, 0x007f4f39,
- 0x00875f49, 0x0088634f, 0x00896a53, 0x008b6f5b, 0x00887663, 0x008a7d6d, 0x008e8672, 0x00928d78, 0x00928f76, 0x008d8872, 0x00867f68, 0x007a7460, 0x00666255, 0x00525149, 0x003f3e3a, 0x00363435,
- 0x00352f35, 0x0030292c, 0x00312b29, 0x00302625, 0x00493f3a, 0x0084828f, 0x00aebad8, 0x009bb3dd, 0x006c9fe0, 0x005b95e4, 0x004d8ade, 0x00447cd4, 0x003063bb, 0x003161bf, 0x003f70d0, 0x002c5fc2,
- 0x00305db5, 0x003968bf, 0x004274c8, 0x00457ccc, 0x00457dcd, 0x004983d0, 0x00518bd5, 0x005691db, 0x00538ed8, 0x005087d3, 0x004b83d3, 0x004380db, 0x00437ed6, 0x00447bd6, 0x004578d1, 0x004676d2,
- 0x004471cb, 0x004570cb, 0x004470c3, 0x004770c3, 0x00426ebe, 0x004169c4, 0x00567ac7, 0x00a2bae0, 0x00e7eee1, 0x00e5ebe3, 0x00b2c0c9, 0x006077a7, 0x00365aaa, 0x004970ba, 0x006289c5, 0x006e91bc,
- 0x009cb4b8, 0x00c1d1df, 0x00c7d9f0, 0x00a8bce0, 0x00729cd2, 0x00588ac4, 0x005a92c7, 0x005f90bd, 0x0054687c, 0x004f4750, 0x00433d3e, 0x0034363e, 0x0027272e, 0x001f1926, 0x00150f1c, 0x00180a17,
- 0x00160b16, 0x00140b13, 0x00140c11, 0x00140d14, 0x00140f12, 0x00130e14, 0x00151014, 0x00171219, 0x00191622, 0x001b1726, 0x001f1a2d, 0x00272337, 0x00353345, 0x00434352, 0x005a5b67, 0x006a6a75,
- 0x00818083, 0x00908e91, 0x00a09c9f, 0x00a6a1a1, 0x00aaa4a3, 0x00aba6a5, 0x00a8a4a6, 0x00a6a2a7, 0x009d9ea7, 0x00999ba5, 0x009097a0, 0x008a959d, 0x007c939f, 0x006d8f9e, 0x005c8b9b, 0x0053899f,
- 0x005286a0, 0x0058829c, 0x0056778f, 0x007184a0, 0x00c3cadf, 0x00f4f9fb, 0x00f8fef2, 0x00f6ffee, 0x00fbfffb, 0x00eef2f9, 0x00868c9f, 0x00282c4e, 0x0030345f, 0x00565c83, 0x00b2bada, 0x00eaf2fa,
- 0x00f8fefd, 0x00f9fafb, 0x00f7f7f7, 0x00faf6f8, 0x00fbf9fa, 0x00f6fbfd, 0x00f0fefd, 0x00cbe4f1, 0x00517cb4, 0x00174692, 0x002351a5, 0x002a469e, 0x004f6890, 0x009eb5bd, 0x00c1d7d2, 0x00bdd0d3,
- 0x00899ac4, 0x004d5d92, 0x00717fae, 0x00b1b7d8, 0x00bfc1b5, 0x00b0b9c7, 0x00b0bcd5, 0x00bbc7d8, 0x00bccfdf, 0x00a9c9e7, 0x008eb5e1, 0x0083aee4, 0x00b3d0f9, 0x00dde6f7, 0x00eee8e3, 0x00f5dcc4,
- 0x00d4eaf3, 0x00dbe6ed, 0x00dbe4e4, 0x00e2dfda, 0x00dddfde, 0x00d6dfe5, 0x00d0e0f2, 0x00d2e9fb, 0x00d5e6f9, 0x00d2e0f2, 0x00d5dff4, 0x00dad9fd, 0x00c8e0f1, 0x00c2e3e7, 0x00bbdfdf, 0x00b9d3dd,
- 0x00bbbcec, 0x00bbb7f3, 0x00b7bef8, 0x00a4bdf5, 0x0082bee1, 0x0077a9d9, 0x006391c5, 0x00668dbe, 0x007593b6, 0x009cb2cc, 0x00d8e5f5, 0x00f1f6fe, 0x00fdfeff, 0x00fcfcf9, 0x00fdfdfa, 0x00fefdf9,
- 0x00fffdff, 0x00aab1c1, 0x001d3353, 0x00204875, 0x003271b4, 0x00438bd8, 0x00428ee0, 0x003c8ae2, 0x00428adb, 0x004689db, 0x004789d9, 0x00468adf, 0x004389dc, 0x004187dd, 0x003f82d6, 0x003e81d5,
- 0x003c80d7, 0x003e81d9, 0x004184dc, 0x003c80dc, 0x004c91e9, 0x0087b2ea, 0x00b5d0ee, 0x00bcd0e0, 0x00c7cab9, 0x00e0ddbd, 0x00f2ebc4, 0x00f2efc6, 0x00d9dacb, 0x00bdc9cd, 0x00c0d0eb, 0x00bad1f8,
- 0x00b8caf8, 0x009aafe7, 0x006589c6, 0x003b62ae, 0x001449a3, 0x001753af, 0x001a57b6, 0x002160be, 0x00316ac0, 0x003069bd, 0x003564bb, 0x003557ba, 0x002955b7, 0x00295abc, 0x002d66c6, 0x002d6bc7,
- 0x002865be, 0x00144da6, 0x0012469e, 0x0014429d, 0x001e439e, 0x00143e99, 0x00063894, 0x00053997, 0x00083ca4, 0x00103da4, 0x001840a0, 0x001c3e97, 0x001d3e93, 0x001f449b, 0x002954b1, 0x002357b6,
- 0x001a4297, 0x00153896, 0x0028398d, 0x00574284, 0x0064487e, 0x0040529e, 0x00315eb6, 0x002c69c0, 0x003e68b3, 0x002d65c0, 0x00356dba, 0x007598c1, 0x007a95b5, 0x003b4d66, 0x00172132, 0x00161b22,
- 0x00261f1f, 0x00261f1f, 0x00241f1c, 0x00241f1f, 0x001f1e20, 0x001e1e25, 0x00201f25, 0x001f1c24, 0x001e1d24, 0x001e1d23, 0x00161517, 0x003e3d3d, 0x00c5c4c6, 0x00fafafb, 0x00fcfcfb, 0x00fffffe,
- 0x00fbfafa, 0x00fdfbf8, 0x00fffbf8, 0x00fcf6ef, 0x00fcf6ea, 0x00f9f1e2, 0x00fcf3e2, 0x00faeee0, 0x00f7e8e1, 0x00f4e5dd, 0x00efe1d7, 0x00eadfcd, 0x00e7dbca, 0x00e3d6c3, 0x00ddd0bd, 0x00d7cdb8,
- 0x00ccbeab, 0x00c4b5a2, 0x00b7a694, 0x00a7947f, 0x00947d6c, 0x00766959, 0x00575045, 0x003f3830, 0x002f2720, 0x00271e18, 0x00251b16, 0x00241c18, 0x001c1512, 0x00181410, 0x00191512, 0x001a1512,
- 0x001f1615, 0x00201715, 0x00241915, 0x00251812, 0x00281912, 0x002b1b11, 0x00312014, 0x00342316, 0x003a281a, 0x00372518, 0x00392514, 0x003a230e, 0x003d230d, 0x00432611, 0x00482610, 0x0049230b,
- 0x004f220e, 0x0053240d, 0x005b2a13, 0x005f2b13, 0x00662f1b, 0x006a2e0f, 0x006d3010, 0x006b3015, 0x006c2d1d, 0x00682b1b, 0x0067281a, 0x00612713, 0x005a2813, 0x00572b19, 0x00482212, 0x00412014,
- 0x00272533, 0x002b2730, 0x00363034, 0x004c4644, 0x0082807a, 0x00b6b5b1, 0x00dfe2dd, 0x00f1f4f1, 0x00fafdfb, 0x00fdfffc, 0x00fcfbfb, 0x00f9fbf7, 0x00f9f9f6, 0x00f3f6f1, 0x00f5f6f4, 0x00f8faf6,
- 0x00f9f9f6, 0x00f8f5f5, 0x00f9f3f3, 0x00fbf0f0, 0x00f9f0ed, 0x00fcece5, 0x00fbdcd2, 0x00f3c4ba, 0x00e2a79c, 0x00d18f82, 0x00c07b6d, 0x00b46d60, 0x00874c41, 0x005e2f25, 0x00431910, 0x00371508,
- 0x0028150c, 0x002e1d13, 0x00322217, 0x00322418, 0x00322418, 0x0036291c, 0x00392c1f, 0x00392c1f, 0x00412d22, 0x00412b20, 0x00422e21, 0x00423120, 0x00443320, 0x00453421, 0x00483524, 0x00483624,
- 0x00463325, 0x00463527, 0x0046372b, 0x00453a2f, 0x00443b32, 0x00433c35, 0x00463e39, 0x0049403d, 0x004a4343, 0x004b4444, 0x00474243, 0x00484544, 0x00484448, 0x007e7d7f, 0x00f0f2f3, 0x00fafbfc,
- 0x00fcfcfc, 0x00fcfaf5, 0x00fefef8, 0x00d0d4d1, 0x00415a79, 0x00163973, 0x002a4a95, 0x003f55aa, 0x00624d86, 0x007d506f, 0x009c5258, 0x00b85338, 0x00cd4f2c, 0x00d44b21, 0x00d94919, 0x00de4815,
- 0x00e94916, 0x00d64316, 0x00c1432e, 0x00aa5157, 0x00796099, 0x004762a7, 0x002153a1, 0x001e5092, 0x001c3a75, 0x00122964, 0x002c427c, 0x005e84bb, 0x0078c2e9, 0x0075c0df, 0x006bb0c6, 0x0078acbf,
- 0x006ea3cb, 0x0069a0c9, 0x00689fcc, 0x0069a0d1, 0x00669dd4, 0x006099d3, 0x005a95d2, 0x005b98d6, 0x005f9edd, 0x005d9fdb, 0x0062a0d8, 0x00619bce, 0x00649ed0, 0x005d99c7, 0x00548fbe, 0x004f8cba,
- 0x004b8bb7, 0x004a8ab0, 0x004d8bb2, 0x004c8bae, 0x004886a6, 0x004c7ca3, 0x004b77a0, 0x0042769b, 0x003f7b99, 0x003a809d, 0x003a83a1, 0x003e85a3, 0x004281a5, 0x0043779b, 0x0049769a, 0x00557fa4,
- 0x00577db1, 0x006286bb, 0x006080b6, 0x005c7aac, 0x005871a3, 0x00576f9f, 0x00556c9a, 0x004a6090, 0x00536ea1, 0x006683b6, 0x006485c0, 0x004a7cb9, 0x004e75b0, 0x004e71ab, 0x003e599a, 0x00344f8f,
- 0x003755a3, 0x004265b3, 0x004d6dc0, 0x004268ba, 0x004263b3, 0x003f66b4, 0x004367b6, 0x00395eaa, 0x00385ca6, 0x004367b1, 0x005174bf, 0x005478c4, 0x004f75c4, 0x004973c6, 0x004874cb, 0x004774cd,
- 0x004b66b6, 0x007a8fc2, 0x00e1f1ff, 0x00f4fbff, 0x00fbfef4, 0x00fcfdfa, 0x00fefaff, 0x00d5d1d9, 0x004c4848, 0x0017170c, 0x0025260f, 0x002e2c1b, 0x0036331f, 0x00373521, 0x0035341f, 0x00373520,
- 0x00373624, 0x00373522, 0x00383522, 0x00373521, 0x00373521, 0x00373620, 0x00373520, 0x00373421, 0x00383724, 0x00383623, 0x00383623, 0x00383622, 0x00383623, 0x00383521, 0x00373420, 0x0035321e,
- 0x0035321c, 0x00342f16, 0x00332d17, 0x00312e1b, 0x002d3431, 0x00526572, 0x0080a2bc, 0x007caad1, 0x006fa8e2, 0x006daeea, 0x006fade7, 0x0074abd4, 0x0076aeda, 0x0072afde, 0x0073afe4, 0x006eade2,
- 0x0069afe1, 0x0068ade0, 0x0068afde, 0x006bafdc, 0x006aadd6, 0x0072a8e3, 0x0072a5e5, 0x006fa4e1, 0x006ea7d9, 0x006da7d4, 0x006eaad2, 0x006dabcf, 0x006daacd, 0x006facce, 0x006ba8cc, 0x0071add3,
- 0x0078aad8, 0x0077a6d4, 0x0088b1da, 0x007797bd, 0x003d5060, 0x0021292d, 0x002a2822, 0x00312a1a, 0x003a301e, 0x00392e1e, 0x003b3021, 0x00322d1b, 0x00312e1c, 0x00302d1c, 0x00332f1d, 0x0032301d,
- 0x00343120, 0x0033301e, 0x00353120, 0x00363322, 0x00373524, 0x00373622, 0x0033341d, 0x0031331c, 0x0031331d, 0x0031331d, 0x002e301c, 0x00262615, 0x00626156, 0x00cac8c0, 0x00fdfbf5, 0x00fdfcf6,
- 0x00f8fdfa, 0x00f9fbf6, 0x00fee6df, 0x00d19682, 0x00be3e1c, 0x00b7421c, 0x00d77a5e, 0x00eac0af, 0x00e7e7ed, 0x00e2e3ee, 0x00e8e3f2, 0x00e5dee8, 0x00dcd4e0, 0x00d1ccd4, 0x00d5d0d9, 0x00e3e0ea,
- 0x00f6f0f9, 0x00f4f2f9, 0x00ebe4ee, 0x00ebe4ec, 0x00d5ccd9, 0x00998c93, 0x00937d88, 0x00aa939f, 0x00bfa9bb, 0x00c2b8c1, 0x00bebabe, 0x00b1b8b2, 0x009fa49f, 0x00968c91, 0x00937d89, 0x009d768d,
- 0x0093818b, 0x0093797d, 0x00583736, 0x005d332c, 0x009b7274, 0x009e828a, 0x00907a8b, 0x00908096, 0x00968697, 0x009f8d99, 0x00aa9ba4, 0x009e949c, 0x00a299a0, 0x00aca3a9, 0x00b5abb4, 0x00bfb4bf,
- 0x00cbbbcb, 0x00d5c7d6, 0x00c5b8c4, 0x00bdafbc, 0x00c5b8c4, 0x00c3b5bf, 0x00d1c2cc, 0x00dbcdd9, 0x00d5cadc, 0x00bbb5c5, 0x009f99a9, 0x00938d9a, 0x00685d60, 0x00483b36, 0x004c3b2f, 0x00635040,
- 0x00745034, 0x00735033, 0x00755235, 0x00765336, 0x00815c40, 0x00866045, 0x008d664b, 0x008f684d, 0x0095674e, 0x00966c51, 0x00986d52, 0x00916748, 0x007f5538, 0x007d573c, 0x008f6955, 0x0094725e,
- 0x00a18777, 0x00b099a1, 0x00b09fb5, 0x00a79dba, 0x00a8a9a9, 0x00a8a5ac, 0x00aca7ad, 0x00b0aab1, 0x00b6adb3, 0x00b5acb3, 0x00b5adb3, 0x00b2aab0, 0x00b6aeb4, 0x00bcb5ba, 0x00bab4ba, 0x00c4c0c6,
- 0x00e7e3e9, 0x00fafafc, 0x00fdfdfd, 0x00fafefc, 0x00fdfdf7, 0x00fdf4ec, 0x00b29f93, 0x006c5344, 0x006f4d3c, 0x006d4c36, 0x00734f3b, 0x00724f40, 0x00725143, 0x00715144, 0x006d4e42, 0x00675042,
- 0x005e4a43, 0x005a4a45, 0x00594745, 0x00574d4a, 0x00605758, 0x00616161, 0x0069676a, 0x006b6c70, 0x006c6b75, 0x006b686e, 0x00686166, 0x00655c5d, 0x005e5454, 0x00514a4f, 0x0048484d, 0x0056585e,
- 0x00507397, 0x00587ca5, 0x006281af, 0x007e8ec5, 0x00ad88ac, 0x00bf7b7f, 0x00cb6850, 0x00c95725, 0x00ac4425, 0x00872d2b, 0x00591d36, 0x003b285b, 0x00403260, 0x002f2350, 0x002f2851, 0x002d284f,
- 0x00232452, 0x001b2456, 0x00283372, 0x002e4085, 0x00334597, 0x00254ba2, 0x001f4699, 0x003e5694, 0x006e6679, 0x006b504a, 0x005e3422, 0x0057270e, 0x00431b0a, 0x003d1c19, 0x003c242d, 0x00332639,
- 0x00382224, 0x00352322, 0x00413431, 0x004d4641, 0x00696861, 0x00767975, 0x00858a8d, 0x008a9099, 0x009299ac, 0x009499b4, 0x008c95a9, 0x007f8f8b, 0x00787f80, 0x00727474, 0x00676668, 0x009c9999,
- 0x00f5f4f5, 0x00f9fdfc, 0x00fdfdfe, 0x00fbfcfc, 0x00fffdfe, 0x00dbc8c0, 0x00653b32, 0x005f1d14, 0x007e1e17, 0x007e2514, 0x007e2812, 0x00802e14, 0x00852e1a, 0x00803321, 0x00813d2e, 0x007d4c3b,
- 0x007e5b48, 0x007e614d, 0x00846a55, 0x00836e57, 0x00877361, 0x00887a66, 0x00908471, 0x00918b79, 0x008d8976, 0x0085826e, 0x007e7b66, 0x0075735a, 0x00616152, 0x004d5045, 0x003b3c37, 0x0032312d,
- 0x002d2727, 0x002b2420, 0x002c2320, 0x00282120, 0x00544f4c, 0x00838da1, 0x0099add2, 0x00afcdf6, 0x007dadea, 0x005791da, 0x004b87dc, 0x003f7cd6, 0x00275cc1, 0x00285fc2, 0x003b6fd4, 0x002860c2,
- 0x002d59b7, 0x003462bf, 0x003f70c8, 0x004175c9, 0x00437acc, 0x00477ecd, 0x004f86d4, 0x00538ad9, 0x005284d4, 0x004d7fcb, 0x00467dcf, 0x00447ed5, 0x00447ed5, 0x00477dd4, 0x00477ad2, 0x004879cd,
- 0x004571c8, 0x004571c6, 0x004771c6, 0x00456fc1, 0x00476fc1, 0x003b6dbe, 0x003e6db4, 0x007e9bc9, 0x00d6dbe2, 0x00e6eaed, 0x00c3cbe2, 0x007085b0, 0x00365ca0, 0x004972b3, 0x00658fca, 0x006f93c2,
- 0x007c9bad, 0x0094b0c8, 0x00b5d0ed, 0x00acc9f0, 0x0079a4de, 0x004f83c3, 0x004378b7, 0x005a88c0, 0x006e7d99, 0x00515159, 0x00463d44, 0x00373442, 0x00292631, 0x001d1d24, 0x0015131e, 0x00110f17,
- 0x00110f1b, 0x00120f1a, 0x0014101b, 0x00151218, 0x00161215, 0x00151115, 0x0016111a, 0x0018141b, 0x001d1721, 0x001d1921, 0x001f1c23, 0x0025242a, 0x00343138, 0x00444149, 0x005d5961, 0x006d6971,
- 0x007f7e80, 0x008f8e8f, 0x009d9b9b, 0x009f9d9c, 0x00a3a09f, 0x00a4a2a2, 0x00a3a1a2, 0x00a2a0a2, 0x009b99a2, 0x0095959e, 0x008c8e98, 0x007e8d95, 0x00718b99, 0x0065899c, 0x005a8499, 0x0050829b,
- 0x004e7f9c, 0x00557d94, 0x0058768c, 0x007a8ea0, 0x00d0d8e5, 0x00f5fbf6, 0x00fafef5, 0x00fafef1, 0x00fbfdf9, 0x00e9edf2, 0x00767b91, 0x001e2242, 0x00232a5d, 0x00293263, 0x00737fad, 0x00cfe0f1,
- 0x00f9fff9, 0x00f8fbf7, 0x00f5f7f4, 0x00faf8f7, 0x00fbfafe, 0x00f4fdfd, 0x00e9fafc, 0x00b0cde5, 0x003c6fa9, 0x00175199, 0x002b5aa9, 0x002c4598, 0x005f6d95, 0x00afbbc5, 0x00cbd5d0, 0x00bac5c1,
- 0x007986a9, 0x007e90b9, 0x00b5bee9, 0x00a9afc8, 0x008a827b, 0x005d6680, 0x00475580, 0x00526286, 0x00768bb2, 0x0086a8d1, 0x0087b3e5, 0x0084b9f3, 0x009dcbff, 0x00b9d4f4, 0x00bec7dc, 0x00c5bcc3,
- 0x008cc9fa, 0x0092c4ee, 0x0099bce2, 0x00a2b8d4, 0x0099a9c8, 0x008ca1c4, 0x007b95c2, 0x007092c5, 0x007193cc, 0x007999cb, 0x00869fd7, 0x0087a1e3, 0x007fa9d5, 0x0076a9c9, 0x006b9cbe, 0x006995b8,
- 0x00697cb8, 0x005e6eb0, 0x006a7fc1, 0x006f92ce, 0x006aa3d0, 0x007ca2c7, 0x008ea9c9, 0x009fb9d4, 0x00c0d1e6, 0x00d2e0ed, 0x00e6ecf5, 0x00f1f2f6, 0x00fefefe, 0x00fefcfa, 0x00fefcfa, 0x00fefdfa,
- 0x00fbfcfc, 0x00a8b3c1, 0x001b3352, 0x00234979, 0x002d6ab2, 0x003b81d3, 0x00408be1, 0x003f8ce6, 0x004387dd, 0x004586d7, 0x004787d9, 0x004587db, 0x004488da, 0x004286d7, 0x004388dc, 0x00428be0,
- 0x003e88e0, 0x003a82d7, 0x004185d8, 0x004285d2, 0x0077adf4, 0x00abcef3, 0x00b8cbde, 0x00cad4d1, 0x00ececab, 0x00fbf39b, 0x00f5ef91, 0x00eff1a7, 0x00d3e0db, 0x00bcd6e6, 0x00aed9f2, 0x00a2d9fa,
- 0x00b5cdf1, 0x00b4cdf0, 0x00a6bfec, 0x007794c7, 0x003359a7, 0x001a4fa7, 0x001c55b9, 0x002563cb, 0x002f6bc6, 0x00306abd, 0x003466b7, 0x00345ec1, 0x002956b3, 0x002555b1, 0x00275cb4, 0x002661b8,
- 0x00296ac5, 0x001c5db8, 0x000541a2, 0x001449b0, 0x002d5ac9, 0x00275dc1, 0x00215fbe, 0x001c59be, 0x001a57bb, 0x001d52b7, 0x001c4aac, 0x00254caa, 0x001f45a0, 0x001b439f, 0x001945a2, 0x001244a1,
- 0x0014429e, 0x001647a4, 0x00264aa8, 0x0039499e, 0x00424d9e, 0x003158b1, 0x003064c3, 0x003067c4, 0x003460b0, 0x003163b8, 0x00336aba, 0x003d75af, 0x007ca8d4, 0x0086a6cb, 0x00374b64, 0x00171e2a,
- 0x00211c22, 0x00252220, 0x00201e18, 0x00211f17, 0x0020201e, 0x001f1e21, 0x001e1f26, 0x001d1d24, 0x001f1f29, 0x001c1f28, 0x0014171d, 0x003e4144, 0x00cbcbcf, 0x00faf9f9, 0x00fbfbf8, 0x00fcfdf9,
- 0x00f6ece7, 0x00eedcd4, 0x00ead6cc, 0x00decabb, 0x00e0cbb4, 0x00d4bea4, 0x00d2b89d, 0x00d2b39a, 0x00cfab92, 0x00d0a891, 0x00cca790, 0x00c6a98b, 0x00c5aa8e, 0x00c4a98a, 0x00c0a788, 0x00bba585,
- 0x00b5a181, 0x00ad997b, 0x00a0876b, 0x00987a60, 0x0084664d, 0x00655843, 0x00474433, 0x00322f23, 0x00252016, 0x00221d14, 0x00211b15, 0x00201b16, 0x001c1916, 0x001b1916, 0x001b1b17, 0x001c1c18,
- 0x001d191b, 0x00201a1b, 0x00251c1c, 0x00251917, 0x002a1a17, 0x002b1a14, 0x00311e17, 0x00342118, 0x00352419, 0x0038251a, 0x003a2415, 0x003d220d, 0x0041210c, 0x0046220f, 0x004d2411, 0x004f220e,
- 0x00522110, 0x0055230e, 0x00592513, 0x005c2716, 0x00612b1c, 0x0069310a, 0x00672c05, 0x00642810, 0x00672728, 0x006b2626, 0x006e261f, 0x00692610, 0x00582307, 0x0045210a, 0x00392313, 0x00413933,
- 0x004b697e, 0x00677a89, 0x00818b92, 0x00a6a6a5, 0x00dfddd8, 0x00f1f2ef, 0x00f2f9f8, 0x00f3fcff, 0x00f6fbfa, 0x00f8f7f9, 0x00f9f6fa, 0x00f5f6fc, 0x00f7f4fa, 0x00f4f3fa, 0x00f5f4f9, 0x00f6f4f8,
- 0x00f1f2f5, 0x00f2f1f6, 0x00f4f2f8, 0x00f1f1f6, 0x00f2f1f7, 0x00f3edf5, 0x00f5eef6, 0x00f5ebf3, 0x00f6e0e9, 0x00f0d7da, 0x00e9cacc, 0x00d6afaf, 0x00b48584, 0x00a2706b, 0x008f5452, 0x006c312d,
- 0x00311e14, 0x002c190f, 0x00321f15, 0x00342217, 0x003a281e, 0x003c2a1f, 0x003b2b20, 0x003f3025, 0x00402f22, 0x003f2e21, 0x003f2d1f, 0x0041311e, 0x0040311c, 0x0040321e, 0x00403220, 0x003f3321,
- 0x00372e20, 0x00382e21, 0x00392e23, 0x00392f25, 0x00372f27, 0x00352d27, 0x00352d28, 0x00372f2b, 0x0038312f, 0x00393232, 0x00383331, 0x003b3839, 0x00302d2f, 0x0069696c, 0x00e9eceb, 0x00fcffff,
- 0x00fcfdfd, 0x00fefdfc, 0x00fcfdfe, 0x00d7dade, 0x00556782, 0x0024426e, 0x00325993, 0x003e67b0, 0x004765b8, 0x004760b1, 0x00625891, 0x00935459, 0x00be4d3b, 0x00c7472c, 0x00cc4325, 0x00d0432b,
- 0x00e24217, 0x00e33f0c, 0x00cc3e1b, 0x00a44b4b, 0x005864b2, 0x00485eae, 0x002b479b, 0x002a4093, 0x001e2e7a, 0x00112c6f, 0x00385e94, 0x00689fcd, 0x0079bee3, 0x006fb2d8, 0x0066a7ce, 0x0068a5cb,
- 0x0060a1d1, 0x0061a2d2, 0x0061a1d1, 0x0060a0d0, 0x005e9ccd, 0x005b99cb, 0x005997c9, 0x005a99cc, 0x005e9bce, 0x005e9bcf, 0x005b9ccd, 0x005b9bc5, 0x005fa0cb, 0x005897c1, 0x004d8db7, 0x004a8ab2,
- 0x004a87ae, 0x004b88af, 0x004b86ae, 0x004a83ac, 0x00437da5, 0x003f7dae, 0x003c7ba8, 0x003a77a0, 0x00407a94, 0x00417996, 0x003f7797, 0x00437aa2, 0x00467cab, 0x004078a3, 0x003e79a3, 0x004383a6,
- 0x006077af, 0x006d87ba, 0x006b89b7, 0x005679a0, 0x00456b9b, 0x004168a0, 0x00385d9d, 0x00264991, 0x0034599c, 0x005274b3, 0x005479b9, 0x004472b7, 0x00436bb2, 0x004466af, 0x0035519f, 0x002f4598,
- 0x00314d9d, 0x004463b1, 0x00526ec1, 0x004669b8, 0x004368b7, 0x00456cb4, 0x00496fb6, 0x003f65a8, 0x004368ac, 0x005174ba, 0x005072ba, 0x004c6cb4, 0x004c6bb4, 0x004969b0, 0x004767ae, 0x004969af,
- 0x00465da4, 0x007988b8, 0x00e9f1ff, 0x00fbfaff, 0x00fefdf3, 0x00fefdfa, 0x00fdfcfd, 0x00d2d3d8, 0x004a4948, 0x0019170d, 0x00272613, 0x002d2e1b, 0x0035341f, 0x00383522, 0x00373421, 0x00373622,
- 0x00363523, 0x00373522, 0x00373521, 0x00363521, 0x00373521, 0x00373520, 0x0037341f, 0x00383420, 0x003a3522, 0x00393522, 0x00393521, 0x00393521, 0x003a3622, 0x00393621, 0x0037341f, 0x0036331e,
- 0x002e3220, 0x002e2f1a, 0x002f2f1b, 0x002d2f1d, 0x002f3e3c, 0x00567582, 0x0077a5bf, 0x006ea7d1, 0x006da8df, 0x006fabe1, 0x0071ade0, 0x0074acd5, 0x0070afdd, 0x006bafde, 0x0064acdd, 0x0062aee1,
- 0x0062b0dc, 0x0063afda, 0x0068afd8, 0x006caed4, 0x0070add1, 0x006eacd8, 0x006eabdd, 0x0070a9dc, 0x006da8d9, 0x006ca6d5, 0x006ea6d4, 0x006ea6d2, 0x0070a7d1, 0x0071a7d0, 0x0071a7cf, 0x0074a8d1,
- 0x0078a2be, 0x007aa7cd, 0x007daad7, 0x0084b0e1, 0x00577a95, 0x00253a3f, 0x00282d20, 0x00302c0d, 0x00423016, 0x003b2815, 0x003c2f1d, 0x0034331e, 0x002f2e1c, 0x0030301e, 0x0032311d, 0x0033301e,
- 0x00343220, 0x00353320, 0x00383523, 0x00373523, 0x00363422, 0x00343322, 0x00333320, 0x00333320, 0x0031321d, 0x0031321c, 0x002d2e1a, 0x00252613, 0x00545245, 0x00b6b5ab, 0x00fdfcf8, 0x00fdfcfa,
- 0x00ecfefa, 0x00f3fdf5, 0x00fff0e6, 0x00dca695, 0x00b93a2a, 0x00a43a23, 0x00d3876f, 0x00e6d0b7, 0x00e0eae4, 0x00ebe4f1, 0x00f0e0f6, 0x00e4dee9, 0x00ddd5df, 0x00d0cbd3, 0x00d5cfd9, 0x00e2dbe5,
- 0x00f2ebf3, 0x00f7eff9, 0x00ede7f0, 0x00eee6f1, 0x00d0cbd5, 0x00968d97, 0x00847a81, 0x008e848c, 0x00a49ca4, 0x00b3aeb4, 0x00c3bcc4, 0x00c2bac1, 0x00b7acb4, 0x00a799a3, 0x0091818a, 0x00846e79,
- 0x00997b7c, 0x00927475, 0x004f3136, 0x00694a4e, 0x009e828c, 0x00968089, 0x00947f8b, 0x0097828d, 0x00928191, 0x00a08e9f, 0x00b1a2b0, 0x00a69ba3, 0x00a59ba1, 0x00aba2a9, 0x00b6acb4, 0x00bdb2ba,
- 0x00cabcc7, 0x00d4c9d3, 0x00d8cdd6, 0x00c1b5be, 0x00baafba, 0x00c1b7c1, 0x00c9bfc9, 0x00d2c8d6, 0x00d8cadd, 0x00c5bacb, 0x00aba3b0, 0x009d939e, 0x007e767a, 0x0049403f, 0x003d3730, 0x00565047,
- 0x00765136, 0x007c563a, 0x0082583c, 0x00875b3d, 0x00916344, 0x00946749, 0x0093674c, 0x00956b51, 0x00936d56, 0x0093715b, 0x00926d5b, 0x00876451, 0x006a4631, 0x00664436, 0x00876559, 0x009f836c,
- 0x00a59674, 0x00af9da8, 0x00ad9cc7, 0x00a89dd3, 0x00a6ac8b, 0x00aba8a3, 0x00aea6b4, 0x00b4a9b8, 0x00b6abb6, 0x00b5aab6, 0x00b4aab6, 0x00b5abb5, 0x00b7aeb6, 0x00bbb4ba, 0x00b8b2b8, 0x00c9c3c9,
- 0x00ebebef, 0x00f7fbfb, 0x00f8fefb, 0x00f5fefa, 0x00fffff8, 0x00f9ede6, 0x00a99189, 0x006c4941, 0x006c4b3e, 0x00654c39, 0x006b503f, 0x006c4d45, 0x006e4d47, 0x00694d46, 0x00664c44, 0x00644d46,
- 0x005c4c43, 0x00544940, 0x0051443f, 0x00524644, 0x00534c4f, 0x0052515e, 0x0059596d, 0x00595d6f, 0x00575865, 0x005b575d, 0x00584e4c, 0x0054463c, 0x00534b45, 0x005a6168, 0x006c8193, 0x007b9ab8,
- 0x006db1e3, 0x0067a8de, 0x005f9adb, 0x006096f3, 0x006881f9, 0x00787fdb, 0x008977a3, 0x009a6f60, 0x00c06648, 0x00c65253, 0x008f345e, 0x00323381, 0x0032317b, 0x002a3076, 0x00293378, 0x002c3f7d,
- 0x00254383, 0x001b3a85, 0x00143892, 0x00214aab, 0x002950bb, 0x001a48b0, 0x001f469f, 0x005d6cac, 0x00aa8c8d, 0x00bb8363, 0x00c47944, 0x00b56322, 0x00934621, 0x006f3323, 0x0052272d, 0x0040243d,
- 0x00432323, 0x003e211f, 0x00472f29, 0x00514137, 0x006a6155, 0x0075746a, 0x00818785, 0x00878f97, 0x008694a9, 0x008b97b5, 0x008694ab, 0x00809792, 0x00748384, 0x00727e7d, 0x006a7173, 0x00a6a8a8,
- 0x00fbfafb, 0x00fdfbfa, 0x00fffefd, 0x00fefdfc, 0x00fefcfd, 0x00d3b9b7, 0x00582c2b, 0x0056201b, 0x0068261c, 0x006e2617, 0x007f3220, 0x00803420, 0x00803c28, 0x007b3d2d, 0x007f4537, 0x00814d42,
- 0x00725f4d, 0x00766651, 0x007f6b55, 0x00806d59, 0x0087715c, 0x00877560, 0x00907e6a, 0x00918473, 0x0087806f, 0x007f7a6b, 0x00757561, 0x00696d4e, 0x00555a49, 0x00444a40, 0x00343633, 0x002c2925,
- 0x00291f15, 0x00271910, 0x002a1c16, 0x0024191a, 0x005c6064, 0x0090a5c5, 0x009bbaea, 0x00a4c7f2, 0x0070a0d1, 0x00548bcc, 0x004a88d6, 0x003d7bd9, 0x002461ce, 0x00225ccd, 0x00346dda, 0x002962cc,
- 0x002959b9, 0x003261c0, 0x003c6bc7, 0x003e6ec5, 0x004273c7, 0x004477c9, 0x004c82d3, 0x004f86d8, 0x00487ed5, 0x004379d0, 0x004179ce, 0x00427dcd, 0x00467fcf, 0x00477ed3, 0x00447cd1, 0x00427bce,
- 0x004076c9, 0x003f74c8, 0x004174c9, 0x004174cd, 0x004172c7, 0x003570b7, 0x00366da6, 0x006384b7, 0x00c5c5ea, 0x00e6e5fe, 0x00cfd3f1, 0x008699bc, 0x00426b97, 0x005280b4, 0x006492ca, 0x006a93cd,
- 0x006898c1, 0x0072a2ca, 0x0089b5dd, 0x008bb8e3, 0x0073a3df, 0x005187cc, 0x003b6bb5, 0x00567ec3, 0x007188a8, 0x00525765, 0x0046444d, 0x003c344a, 0x00282530, 0x00191c20, 0x0010191b, 0x000c151b,
- 0x00091321, 0x000c1325, 0x00111524, 0x0015171f, 0x00171715, 0x0017141a, 0x0019141c, 0x001a161c, 0x001c1a1b, 0x001f1e1b, 0x0022231c, 0x00282a21, 0x00373630, 0x00474441, 0x005e5a5a, 0x006f6a6a,
- 0x00797c76, 0x00888b86, 0x00959793, 0x00989895, 0x009b9b99, 0x009d9c9c, 0x009c9b9b, 0x009a989a, 0x00959294, 0x008e898f, 0x0083858f, 0x0073868f, 0x00668092, 0x005d7f96, 0x00557c96, 0x004b7794,
- 0x004b7992, 0x0054788e, 0x005c7a89, 0x008296a1, 0x00dae5e7, 0x00f6fcfa, 0x00fbfcfc, 0x00fdfdfa, 0x00fafcf7, 0x00e2e7ea, 0x00676e80, 0x00131b36, 0x001e295e, 0x0018295b, 0x004c6094, 0x00b2cbec,
- 0x00f5fdef, 0x00f6fcf0, 0x00f3f8ee, 0x00f4f8f1, 0x00f6fcfd, 0x00eefcfb, 0x00dbf3fa, 0x0093b6d8, 0x002a659d, 0x001c5b9c, 0x002f60a5, 0x0033448d, 0x0076769b, 0x00c5bdc7, 0x00ddd1cc, 0x00c5beb5,
- 0x0098a8b0, 0x00a9bccf, 0x00b6c3dd, 0x00a8afc2, 0x00887b81, 0x0054526f, 0x0025285d, 0x001c2e6f, 0x003b67c0, 0x004d8ce5, 0x004c95ef, 0x004093e4, 0x0055a0e9, 0x0060a2e7, 0x00588ed8, 0x005181cb,
- 0x002b84d0, 0x00297cc8, 0x002b71c2, 0x002c66b9, 0x002752aa, 0x00234ba3, 0x0016398f, 0x00113389, 0x002350a2, 0x00406bbe, 0x004e83d3, 0x005093df, 0x005c9ae3, 0x00609cdf, 0x00699bdf, 0x006c9cdd,
- 0x007faadb, 0x008aaee1, 0x0099b8e5, 0x00a0bce3, 0x00a7bfe4, 0x00bac1cd, 0x00cbcbc7, 0x00dcd8d9, 0x00e7e4e4, 0x00e7e6e3, 0x00e6e4e1, 0x00efedea, 0x00fffdfb, 0x00fffefd, 0x00fffefd, 0x00fbfcfa,
- 0x00f8fcf9, 0x00a9b6c0, 0x001e3753, 0x00244a7b, 0x002a64b1, 0x003679d1, 0x003d85df, 0x003f89e5, 0x004288dd, 0x004589d9, 0x00488ad9, 0x004487db, 0x004888d9, 0x004887db, 0x00468cdf, 0x00408de4,
- 0x003a8ee5, 0x003988db, 0x004286ce, 0x005890cc, 0x00a8cbf2, 0x00b0cce4, 0x00a5b8c0, 0x00d9dfc2, 0x00fefd81, 0x00faf757, 0x00e3eb52, 0x00c4d970, 0x00a2cde9, 0x007fc2f2, 0x0064c1f4, 0x005bc9ee,
- 0x0092bed9, 0x00a8c6db, 0x00b7cbe1, 0x00b9c0dc, 0x007181bd, 0x002e50a2, 0x001b4fb9, 0x002264da, 0x002469c7, 0x002d6bbc, 0x002968af, 0x002569b3, 0x00245dab, 0x002b5ab1, 0x00244fa9, 0x002650b1,
- 0x002b68c3, 0x00296ac8, 0x000e51b2, 0x000343a6, 0x00124ab4, 0x001a5bb7, 0x002369c1, 0x00286cc5, 0x002466bd, 0x002060b8, 0x001c57b1, 0x001b52ab, 0x002051aa, 0x001e4ea7, 0x0019469f, 0x0016419a,
- 0x00134aa7, 0x001952ae, 0x001f56b6, 0x002056b3, 0x002659b7, 0x00255db8, 0x002e62c1, 0x003168c5, 0x002f65c2, 0x002b62c0, 0x00296bc4, 0x001a6bbc, 0x004a89ca, 0x0087b9eb, 0x007899bd, 0x0041516a,
- 0x0015191d, 0x001b1d1b, 0x001b1c13, 0x001d1c14, 0x00202018, 0x001d1c1e, 0x001c1d23, 0x001b1d25, 0x001a212c, 0x0019212c, 0x000f1822, 0x0040484e, 0x00cfd3d6, 0x00fafaf9, 0x00fcfbf5, 0x00fefbf4,
- 0x00ebdad1, 0x00c1a496, 0x00b99c8c, 0x00ab8a77, 0x00b28972, 0x00ae836a, 0x00af8168, 0x00af8166, 0x00b2856b, 0x00b5866c, 0x00b58b6e, 0x00b49271, 0x00b79779, 0x00b99b7c, 0x00b89c7d, 0x00b59b7d,
- 0x00b09678, 0x00a89072, 0x009c8264, 0x00977a5e, 0x00876a50, 0x006b5d43, 0x00534a33, 0x00403321, 0x0034271a, 0x002e2217, 0x002b2018, 0x00281f19, 0x00251d19, 0x00231b17, 0x00221b17, 0x00201a15,
- 0x00201713, 0x00221814, 0x00241914, 0x00251812, 0x00281911, 0x002a1a10, 0x002d1c12, 0x00301f14, 0x00352115, 0x00362116, 0x00392113, 0x003f2311, 0x00422310, 0x0040200d, 0x0044210e, 0x00492312,
- 0x00512814, 0x00522512, 0x00562818, 0x0057291a, 0x00582c1a, 0x005a2b0a, 0x005c2a0a, 0x005f2b1a, 0x005c2d29, 0x00582923, 0x00562319, 0x0053230e, 0x00563320, 0x004d3b35, 0x00535156, 0x00748193,
- 0x00a1bfe4, 0x00b3c7e2, 0x00bac6d4, 0x00d8d9db, 0x00f7f4f1, 0x00f8f7f6, 0x00f1f6f7, 0x00eef6fb, 0x00f3f4fc, 0x00f8f3f8, 0x00fbf5f9, 0x00f3f3f8, 0x00f5f3f8, 0x00f1f1f6, 0x00f3f2f7, 0x00f4f2f7,
- 0x00f4f1f5, 0x00f3f1f5, 0x00f3f2f6, 0x00f4f2f8, 0x00f4f0f6, 0x00eeeff4, 0x00eef1f6, 0x00f1f1f6, 0x00f9f1f5, 0x00fbf0f2, 0x00f9edee, 0x00f9e8e4, 0x00f3dad6, 0x00ddbeba, 0x00bb9895, 0x00a7827b,
- 0x0069564f, 0x003d2a22, 0x00332119, 0x0035241b, 0x003c2920, 0x003e2b21, 0x003c2b20, 0x00402f24, 0x00413124, 0x003e2f21, 0x003e2e1f, 0x003f2e1e, 0x003a2d1b, 0x00392b1a, 0x00372a1a, 0x00332a1a,
- 0x0035291e, 0x0031261b, 0x002b2119, 0x00261d17, 0x00241b16, 0x00211914, 0x00221814, 0x00241a17, 0x00241d1b, 0x00221c1a, 0x00231f1d, 0x00252323, 0x001a1618, 0x00514f52, 0x00dcdcdd, 0x00fdfeff,
- 0x00feffff, 0x00fffefd, 0x00fefdfd, 0x00e4e5eb, 0x006d7d97, 0x00324e78, 0x0040629e, 0x004f75bf, 0x005a77cc, 0x00536cbe, 0x00505aa1, 0x00635788, 0x00875871, 0x0095576a, 0x00a25864, 0x00a75963,
- 0x00be5349, 0x00bd4e3a, 0x00b14e43, 0x008d5363, 0x004e68b7, 0x00455fb1, 0x00274498, 0x002a3d91, 0x00112573, 0x00132d71, 0x00527bb2, 0x007cafde, 0x006eb3d7, 0x0062a5cc, 0x005d9fc7, 0x005f9dc7,
- 0x005e9cd1, 0x005e9ccf, 0x005f9bce, 0x005d9acc, 0x005a98ca, 0x005a99cb, 0x005a98cb, 0x005897c9, 0x005898c8, 0x005796ca, 0x005697c6, 0x005999c5, 0x005d9bc5, 0x005593c1, 0x004887b3, 0x004485af,
- 0x004a84af, 0x004a84af, 0x004981a9, 0x00457da3, 0x004079a2, 0x00407ca8, 0x00407ca9, 0x003e7ba0, 0x003e7b9b, 0x003c7596, 0x00387295, 0x003c739d, 0x004474a1, 0x0049779a, 0x004c7995, 0x004d7a8c,
- 0x007c889b, 0x0093a4b4, 0x009cb0c2, 0x00728ba0, 0x0048658e, 0x003b5893, 0x00264189, 0x00274492, 0x004a64b5, 0x00536fb6, 0x004d6bb0, 0x00406bb1, 0x004268b1, 0x003f63ac, 0x002c4a96, 0x00233c8a,
- 0x002d4899, 0x004560b0, 0x00526ec0, 0x004768b8, 0x004469b8, 0x004b70b8, 0x004f75bb, 0x00486db2, 0x00496cb3, 0x004e72b7, 0x004a6cb2, 0x004263aa, 0x004665ae, 0x004362ab, 0x003f5ea8, 0x003b5aa4,
- 0x003c5195, 0x00727faf, 0x00eaf1ff, 0x00fcfbfd, 0x00fffcf4, 0x00fffdfc, 0x00fdfcfd, 0x00d2d4d8, 0x00494b47, 0x001a180e, 0x00292615, 0x002f2e1a, 0x0035341f, 0x00373424, 0x00363322, 0x00383523,
- 0x00373422, 0x00363521, 0x00353420, 0x00353320, 0x00373521, 0x0037351f, 0x0037341e, 0x0038341f, 0x003a3520, 0x003a3520, 0x0039341f, 0x00393420, 0x003b3622, 0x003a3622, 0x00383420, 0x0037331e,
- 0x002f3221, 0x002f2e1b, 0x00302e1b, 0x002d2f1e, 0x00304141, 0x00527384, 0x006d9cba, 0x00669fcd, 0x006aa7db, 0x006da6dc, 0x0074a7dd, 0x0078a4e0, 0x007ba5e6, 0x0073a4e2, 0x006ea2e0, 0x006fa5e2,
- 0x0075a9e8, 0x0076a8e6, 0x0077a5e2, 0x0077a3dd, 0x0079a2da, 0x0070a5d9, 0x006aa7da, 0x006ca7da, 0x0069a6d6, 0x006aa6d5, 0x006ba5d3, 0x006ca5d0, 0x006ea5cf, 0x006fa6cf, 0x0070a6cf, 0x0070a6cc,
- 0x0073a7cc, 0x0071a9d5, 0x0070a7db, 0x0078b0e6, 0x00709ec0, 0x0043616d, 0x00212f2c, 0x00333420, 0x0036311b, 0x00332d1e, 0x00363122, 0x0033311f, 0x00342f1f, 0x00312f1e, 0x0032311d, 0x0032301c,
- 0x0035331f, 0x00363320, 0x00383522, 0x00373520, 0x00353320, 0x00343222, 0x00323221, 0x0032331f, 0x0031331e, 0x0031321c, 0x002f311c, 0x00272815, 0x00444136, 0x009b9890, 0x00fdfbf7, 0x00fefcf9,
- 0x00f3fffe, 0x00f5fef6, 0x00fdf7ef, 0x00e5bbad, 0x00b44d43, 0x00a85141, 0x00d9a08f, 0x00e3d7c4, 0x00dde8e6, 0x00f0e9f8, 0x00eee0f6, 0x00e6e0ea, 0x00ded6e1, 0x00d7ced8, 0x00d4cfd9, 0x00dad5de,
- 0x00f1e9f3, 0x00f8f0fb, 0x00f1e9f4, 0x00f1eaf3, 0x00d8d0db, 0x00aea2ac, 0x0093858f, 0x00897d85, 0x00908991, 0x00a19aa2, 0x00b8b1b8, 0x00c3b9c2, 0x00c4b7c1, 0x00b3a5af, 0x0091808b, 0x0084727c,
- 0x00a98b8c, 0x0087696b, 0x005b3e41, 0x008b7075, 0x00a2898f, 0x0098838d, 0x00988490, 0x00998691, 0x00958392, 0x00a190a0, 0x00b5a8b6, 0x00afa4ad, 0x00a99ea6, 0x00aea2ac, 0x00b8adb6, 0x00bbb0b9,
- 0x00c4b7c1, 0x00d2c7cf, 0x00e0d6de, 0x00d6cbd3, 0x00b8adb8, 0x00bcb2bd, 0x00c3bac5, 0x00cbc1ce, 0x00dacee2, 0x00d1c6d9, 0x00b7adbb, 0x00a097a2, 0x00999196, 0x006a6364, 0x003a3630, 0x004a453c,
- 0x0075513c, 0x00825e45, 0x00896346, 0x008d6344, 0x00936748, 0x009a6d4f, 0x00976b4e, 0x00966c4e, 0x009a7158, 0x00966f56, 0x008e674d, 0x00845f44, 0x006c4935, 0x00634144, 0x0070525d, 0x00927e7d,
- 0x00afa68d, 0x00b0a4ae, 0x00ab9fc3, 0x00aa9ed1, 0x00aaac96, 0x00aba6a6, 0x00ada6b4, 0x00b2a8b5, 0x00b4acb8, 0x00b4acb7, 0x00b5abb7, 0x00b6adb7, 0x00b7afb6, 0x00bbb3b9, 0x00b9b0b6, 0x00cec4ca,
- 0x00f3f0f6, 0x00fafcfd, 0x00fbfffc, 0x00f7fffc, 0x00fffff9, 0x00ede0da, 0x008f7770, 0x005e3c36, 0x00614335, 0x00624a37, 0x00665241, 0x00645047, 0x00614a44, 0x005f4942, 0x00604b45, 0x005f4d48,
- 0x005b4e4a, 0x00524843, 0x004d4240, 0x004b3e3f, 0x004a4040, 0x00534345, 0x0058484d, 0x0051474d, 0x0047474f, 0x0040424b, 0x00393a46, 0x00494b57, 0x006f7d94, 0x0085a4c9, 0x008abae7, 0x0073b0e8,
- 0x00749bf6, 0x008ab6e4, 0x00a5d3de, 0x00bae3d9, 0x00b4cedd, 0x00a8b9d1, 0x008a9bb7, 0x00757f99, 0x007071a3, 0x006f6fbd, 0x005771d0, 0x002170d5, 0x000e54bd, 0x000b49b8, 0x001046b7, 0x002557c6,
- 0x00295bc6, 0x002958c0, 0x00194bb1, 0x001147a5, 0x001750aa, 0x002251af, 0x002c56af, 0x006481cc, 0x00878db0, 0x00897d8d, 0x00b39898, 0x00cca798, 0x00cd9c88, 0x00b78476, 0x00925e56, 0x00804e48,
- 0x00514b54, 0x00423d47, 0x00413f46, 0x0046484c, 0x0054585c, 0x00616a6c, 0x00748386, 0x00808f97, 0x0084969e, 0x008998a5, 0x0083969c, 0x00809895, 0x00758888, 0x00748285, 0x00767e80, 0x00b4b7bb,
- 0x00fffbff, 0x00fffcfe, 0x00fefefe, 0x00fdfffe, 0x00fafafa, 0x00c3a9a9, 0x004f2525, 0x004f201a, 0x0066281e, 0x006d291b, 0x00813727, 0x00853b28, 0x00854431, 0x00844b3a, 0x00844d3f, 0x00855348,
- 0x00786354, 0x007b6655, 0x00816956, 0x00826955, 0x00836c55, 0x00816c55, 0x0088735f, 0x008c7966, 0x00837968, 0x00797164, 0x006f6a57, 0x00615f45, 0x004b4b3e, 0x00383b38, 0x0027292a, 0x001e1c1d,
- 0x00221510, 0x001f110b, 0x001d120e, 0x001d1819, 0x005e636d, 0x00a7b7da, 0x00b0c7f4, 0x0098b3d6, 0x007d9cc3, 0x007fa3d3, 0x00638ac5, 0x004f7bc5, 0x002d5bba, 0x00295abe, 0x003d6dd1, 0x003163c6,
- 0x002c57ba, 0x00325dbe, 0x003765c2, 0x003667c0, 0x00396bbf, 0x003e73c5, 0x00477fcf, 0x004a81d1, 0x004479cf, 0x004074cd, 0x004075ce, 0x00407dcf, 0x004780d3, 0x004881d5, 0x00477dd2, 0x00467dce,
- 0x004678cf, 0x004274c9, 0x004275c9, 0x004176c9, 0x003f72c7, 0x003570bb, 0x00386daf, 0x004d70ac, 0x00aeb2db, 0x00e0e3fb, 0x00d3daf6, 0x0091a5c0, 0x00436b90, 0x005581b2, 0x006793cd, 0x00709adb,
- 0x007ca2c9, 0x007ea5c9, 0x007ca4c6, 0x007da5ca, 0x006e9bd3, 0x005484c8, 0x003b6ab3, 0x004c77ba, 0x006c81a9, 0x00596779, 0x00424552, 0x003c364c, 0x00292934, 0x001b1f21, 0x00111618, 0x00091418,
- 0x000c1324, 0x000e1428, 0x00131629, 0x00161723, 0x0019191a, 0x001a171d, 0x001b1720, 0x001c181e, 0x00221e1f, 0x00282522, 0x002c2b23, 0x00323128, 0x00403c36, 0x004d4744, 0x00615b5a, 0x006e6766,
- 0x00767774, 0x0082837f, 0x008e8f8c, 0x0090918e, 0x00939291, 0x00939292, 0x00918f8f, 0x008d8c8c, 0x008a838b, 0x00837d85, 0x00777981, 0x00687981, 0x00607585, 0x00577389, 0x004e6f88, 0x00486c89,
- 0x0050728e, 0x0057738a, 0x00617a8a, 0x008c9da5, 0x00e4ebed, 0x00fafdfe, 0x00fafbfd, 0x00fdfef9, 0x00fefefc, 0x00d9dee4, 0x00545c6e, 0x000d1638, 0x00192961, 0x000d235e, 0x00334e88, 0x0094b4e5,
- 0x00f7fefd, 0x00f5faff, 0x00eff4fb, 0x00edf3fc, 0x00f1fbfd, 0x00edfeff, 0x00d5f1fe, 0x0087aedc, 0x002f68ae, 0x002465b4, 0x002c5ca6, 0x003d4788, 0x008c8aaa, 0x00d5cbd3, 0x00dcd1cc, 0x00cdc9c0,
- 0x00b9c3cb, 0x00b8c6d6, 0x00b1bdd1, 0x00b2b5c6, 0x00bcb0b4, 0x0092a2c9, 0x00395d9d, 0x000f3988, 0x002065c6, 0x00368aef, 0x003292f7, 0x002789e8, 0x00318ee5, 0x003d8ee4, 0x00246dc1, 0x002465bc,
- 0x002b67b0, 0x002963a8, 0x0027569e, 0x002a4f96, 0x00375092, 0x003d538e, 0x003b4f88, 0x0045568b, 0x00637ea8, 0x0083a1c7, 0x009ab4d6, 0x00a4b7cf, 0x00a7b8d1, 0x00acbcce, 0x00bac4d9, 0x00c4cfda,
- 0x00d7dae2, 0x00dedee1, 0x00d3cfd2, 0x00cac1bd, 0x00d6cac7, 0x00d8d3d0, 0x00dddadb, 0x00e1dfdc, 0x00e4dfde, 0x00e0dedc, 0x00e0dfdd, 0x00ebeae7, 0x00fefdfb, 0x00fefcfa, 0x00fffefb, 0x00fefdf9,
- 0x00fcfefd, 0x00a7b3be, 0x001f3753, 0x00294e7e, 0x002964b1, 0x002c70c9, 0x003982dd, 0x00418be8, 0x004389de, 0x00458ad8, 0x00458ada, 0x004388de, 0x004687da, 0x004887da, 0x00478bdf, 0x00448ee4,
- 0x004091ea, 0x00468fe4, 0x004686d0, 0x006b9ddb, 0x00b9d9fc, 0x00c2d4fb, 0x00d3dbe0, 0x00f3f7b9, 0x00fbf765, 0x00f2e965, 0x00d9d067, 0x00cecb8a, 0x00c4d2c4, 0x00a5c1c6, 0x007a9cb9, 0x00668bb5,
- 0x0059a2dc, 0x007eb5e3, 0x009ac5e4, 0x00c3def7, 0x00a9c3ea, 0x005c80c0, 0x002053a4, 0x002060c3, 0x002c6acf, 0x003167c3, 0x003069bf, 0x002668b6, 0x00285cb3, 0x00335fb8, 0x00204aa7, 0x00113c99,
- 0x00275fbe, 0x002f6dcb, 0x002666c4, 0x001653b4, 0x000940a3, 0x000f4ea9, 0x001e60b9, 0x002968c3, 0x002a67be, 0x00205db5, 0x001c57af, 0x002159b1, 0x002a5eb7, 0x002b5eb7, 0x002457af, 0x001f50a6,
- 0x002157b4, 0x00275ebb, 0x00275cbb, 0x00245bb6, 0x00285fbe, 0x002d62c1, 0x002d63c2, 0x002d63c0, 0x002f63c2, 0x002a60bd, 0x002560bc, 0x001f6bbe, 0x002f6fb9, 0x00588fcb, 0x0090b9eb, 0x007b99bf,
- 0x003c4e5f, 0x00142028, 0x00161c1d, 0x00212320, 0x001e2019, 0x001e1c1c, 0x001f1d22, 0x001e1e21, 0x001e222d, 0x001d222c, 0x00111720, 0x00474c52, 0x00d7dadc, 0x00fbfbfa, 0x00fefdf8, 0x00fffdf6,
- 0x00e5d5c9, 0x00af8b7a, 0x00b28b78, 0x00ab7b67, 0x00ae7259, 0x00ad6f56, 0x00af6e55, 0x00b07053, 0x00b4795e, 0x00b57c5f, 0x00b48261, 0x00b3876a, 0x00b78c70, 0x00b99277, 0x00b79777, 0x00b59878,
- 0x00b3937a, 0x00ac8e74, 0x009f8166, 0x00987b61, 0x00886a4f, 0x00715b41, 0x005a482d, 0x0047341a, 0x003c281b, 0x00342317, 0x002e2017, 0x002a1f18, 0x00281e18, 0x00231a13, 0x00211910, 0x0020190f,
- 0x00261a12, 0x00251910, 0x0022170c, 0x0023180b, 0x0025190c, 0x00281b0c, 0x00291b0b, 0x002c1d0d, 0x00341f11, 0x00362113, 0x00371e11, 0x003c2011, 0x00402313, 0x003e210e, 0x003f220d, 0x00452513,
- 0x004a2616, 0x004d2816, 0x00522d17, 0x0058321e, 0x005a3620, 0x005a3317, 0x00502b0e, 0x00472310, 0x004a221a, 0x004e291b, 0x005b3722, 0x00765338, 0x00978173, 0x008f8c96, 0x007f8dac, 0x008ba9da,
- 0x0099b7e6, 0x00a4b8dd, 0x00bdcae0, 0x00e6e9f0, 0x00f7f4f4, 0x00f4f2f2, 0x00f3f6f6, 0x00f0f5f9, 0x00f7f4fb, 0x00fbf4f7, 0x00f7f2f3, 0x00f1f3f8, 0x00f0eff4, 0x00f0eff4, 0x00efeef2, 0x00f1f0f4,
- 0x00f3f0fa, 0x00f4f1f9, 0x00f1eef7, 0x00f1f0f7, 0x00f3f0f6, 0x00ecf3f6, 0x00e8f2f4, 0x00eaf3f1, 0x00f0f1f4, 0x00eff0f1, 0x00f3f4f3, 0x00f5f3f1, 0x00f3ecec, 0x00f3e7e6, 0x00e4d6d3, 0x00ccbab6,
- 0x00b09d9a, 0x00796662, 0x00352520, 0x002e1f17, 0x00392820, 0x0039291f, 0x00392c20, 0x003c2e22, 0x00412f27, 0x003e2f22, 0x003d2e1e, 0x003c2e1d, 0x00352a1a, 0x00332718, 0x00302215, 0x002a2014,
- 0x002b2018, 0x00281e16, 0x00231a14, 0x001e1511, 0x001c1310, 0x0019100d, 0x0017100b, 0x0018110c, 0x00191213, 0x00171111, 0x00161111, 0x00181416, 0x00130f0f, 0x00434143, 0x00cecdcd, 0x00f9fbf8,
- 0x00ffffff, 0x00fdfcfd, 0x00fcfcfc, 0x00ecedf2, 0x0076879e, 0x00264068, 0x0030528d, 0x003c64aa, 0x004668bc, 0x00546dbf, 0x005270bf, 0x004e70c0, 0x00676faa, 0x007673ac, 0x008b7eaf, 0x009685b0,
- 0x00aa7893, 0x00a36677, 0x00895667, 0x006a5176, 0x004063b6, 0x004264b6, 0x00244293, 0x001e3584, 0x000c206b, 0x00183475, 0x00618dc3, 0x007bb2e2, 0x0067abd1, 0x0060a2c9, 0x005b9cc2, 0x005c99c1,
- 0x005b96cb, 0x005c96c9, 0x005c96c7, 0x005b97c6, 0x005895c5, 0x005896c7, 0x005896c7, 0x005694c3, 0x005a94c8, 0x005892c6, 0x005494c4, 0x005998c6, 0x005b97c3, 0x005290bc, 0x004786af, 0x004581ab,
- 0x004e83b1, 0x004a83af, 0x004580a7, 0x00427ca3, 0x003d769f, 0x004378a1, 0x004379a2, 0x00407b9e, 0x00407c9f, 0x0039779a, 0x00327096, 0x00366e98, 0x00466e97, 0x0053728c, 0x005f7c8b, 0x006c8486,
- 0x00a3a49a, 0x00c5cdc3, 0x00bdc7c7, 0x008e9ca7, 0x00465983, 0x00223678, 0x00293c8e, 0x003e56ae, 0x00586dc2, 0x00526bb5, 0x004a69ad, 0x003c65a9, 0x003a5ca4, 0x003858a3, 0x00274591, 0x001b3683,
- 0x002f4697, 0x00485db0, 0x00506fbf, 0x004769b7, 0x004268b4, 0x004b71b9, 0x004e76b9, 0x004a6fb4, 0x004968b3, 0x004565ad, 0x003e5da4, 0x003c5ca2, 0x00405ea6, 0x00415da7, 0x0039569f, 0x0035529a,
- 0x0032458e, 0x006a77ac, 0x00e7eeff, 0x00fbfcfe, 0x00fdfbf4, 0x00fefbfa, 0x00fcfbfa, 0x00d0d4d6, 0x00494a49, 0x001a180e, 0x00292617, 0x002f2e18, 0x0035331e, 0x00353422, 0x00343320, 0x00383520,
- 0x00393523, 0x00373522, 0x00353420, 0x00343320, 0x00363421, 0x0037331f, 0x0036331d, 0x0037331e, 0x003a3622, 0x003a3622, 0x00393520, 0x00393520, 0x003b3721, 0x003a3620, 0x0038341d, 0x0037321c,
- 0x00313323, 0x00312f1e, 0x00302c1d, 0x002d2f22, 0x0037484d, 0x00527387, 0x006493b2, 0x006098c7, 0x0067a4da, 0x0066a0d7, 0x006da4dd, 0x006fa3e3, 0x0072a4e7, 0x006ea2e2, 0x006ca0e0, 0x006d9ede,
- 0x0079a8eb, 0x0076a7e9, 0x0071a4e4, 0x006fa2e2, 0x006ea0df, 0x0069a1d8, 0x0064a0d3, 0x0064a1d4, 0x00669fd5, 0x0067a0d4, 0x0068a1d0, 0x006ba4ce, 0x006ba4cc, 0x006ca5ce, 0x006da5cd, 0x006ea7cd,
- 0x006fa7d1, 0x006baadb, 0x0068a8df, 0x006aabe5, 0x0077aad1, 0x005e808f, 0x00233937, 0x002b3621, 0x00323022, 0x00333529, 0x00323224, 0x0033321f, 0x00322e1c, 0x002f2f1b, 0x0030311a, 0x0030301b,
- 0x00373322, 0x00363322, 0x00383522, 0x0038351f, 0x0036341f, 0x00343321, 0x0032321f, 0x0032341d, 0x00353320, 0x0034331e, 0x0031311d, 0x002d2e1a, 0x00373528, 0x00817f76, 0x00f5f6f1, 0x00fcfdf9,
- 0x00fafefc, 0x00fafef7, 0x00fdfbf4, 0x00e5ccc3, 0x00b46868, 0x00b77575, 0x00e3bab6, 0x00ddd7d1, 0x00d8e2ea, 0x00eeeafa, 0x00e9e2f2, 0x00e6e1e9, 0x00dedae3, 0x00d9d2db, 0x00d5d0d9, 0x00dbd4dc,
- 0x00f0e8f3, 0x00f5eefa, 0x00f2ecf6, 0x00f1e9f3, 0x00dcd6df, 0x00bbafba, 0x00a396a0, 0x00958a92, 0x008e868d, 0x00958e96, 0x00aca3ab, 0x00bbb3bc, 0x00c8bcc6, 0x00b7a7b0, 0x0092818b, 0x008d7c83,
- 0x00b19198, 0x0084666c, 0x006d5055, 0x00a0878d, 0x009d878d, 0x0098838e, 0x00998692, 0x009a8991, 0x00998797, 0x00a493a3, 0x00b9abb8, 0x00b6aab5, 0x00aa9ea8, 0x00aea1aa, 0x00bbaeb8, 0x00c0b5bf,
- 0x00c2b5c0, 0x00cabcc6, 0x00dfd3dc, 0x00e9dee6, 0x00c6bac4, 0x00bab0ba, 0x00bcb5bf, 0x00c5bdc8, 0x00dbcddf, 0x00d7cbdc, 0x00c2bac6, 0x00a9a0ab, 0x009f999f, 0x008d8689, 0x00463f3a, 0x003f362f,
- 0x00785543, 0x0084614d, 0x008a664f, 0x00906a4f, 0x00946c4e, 0x00996f4f, 0x00976d4c, 0x00976e4c, 0x00996f55, 0x008b6147, 0x007c5330, 0x007e572d, 0x0084624e, 0x00856474, 0x00705879, 0x00827691,
- 0x00b0aea0, 0x00ada9b0, 0x00a7a1bb, 0x00ab9ecd, 0x00aca6a1, 0x00aba1aa, 0x00aca4b3, 0x00afa7b2, 0x00b5aab8, 0x00b5abb7, 0x00b4acb6, 0x00b5adb5, 0x00b5aeb6, 0x00bcb4bc, 0x00bbb4ba, 0x00d1cad0,
- 0x00f6f1fc, 0x00fdfcff, 0x00f9fcfb, 0x00f7fefa, 0x00fefdf6, 0x00e0d4cd, 0x00786159, 0x0055362e, 0x00563a2e, 0x005b4234, 0x005c4b3e, 0x005a4f48, 0x00564a44, 0x00544941, 0x00564d44, 0x00584e48,
- 0x005a4d4f, 0x00544648, 0x00473f3f, 0x00443b3c, 0x00403d38, 0x00513c30, 0x004b3627, 0x00463a34, 0x00333440, 0x00293246, 0x0045566e, 0x00748cab, 0x0093baea, 0x0075afea, 0x005097dc, 0x00348ad9,
- 0x007594f1, 0x00acc9e4, 0x00cdeacd, 0x00dff7ad, 0x00dae7b1, 0x00dde3d6, 0x00c8d1e1, 0x009aaed6, 0x005b84cc, 0x004172c9, 0x003379d2, 0x00277fd3, 0x002b77d3, 0x00286ad0, 0x00164fba, 0x001a4abc,
- 0x002c55cb, 0x003460d4, 0x002e64cc, 0x001c5fbc, 0x00135eb3, 0x00265ab3, 0x00325db2, 0x005b85d9, 0x006384ce, 0x004a61a0, 0x006171a2, 0x008687ae, 0x00b19aa8, 0x00c8a3a7, 0x00c89a93, 0x00c99784,
- 0x008292ae, 0x007082a0, 0x00627a95, 0x005c7892, 0x005d7893, 0x005f7b92, 0x00668391, 0x006d8993, 0x00879899, 0x008d9c9a, 0x00859893, 0x007f9898, 0x00788c90, 0x00738285, 0x00818b8a, 0x00c0c7cb,
- 0x00fffcff, 0x00fffdff, 0x00fcfdfe, 0x00fdfefd, 0x00f6f6f8, 0x00baa3a2, 0x004f2b27, 0x00532a21, 0x00672f26, 0x006e3224, 0x007d3b2b, 0x00833f2d, 0x00864b39, 0x00865241, 0x00835445, 0x00805649,
- 0x007e5e54, 0x00806154, 0x00826554, 0x00856653, 0x00846951, 0x00806551, 0x00836b58, 0x0085715d, 0x00827264, 0x0076695d, 0x006a604f, 0x005b5442, 0x00444039, 0x00303031, 0x00202021, 0x00191418,
- 0x001d0e11, 0x001a0b0d, 0x00160f0f, 0x00101316, 0x0055616d, 0x0096a7c6, 0x0098acd2, 0x009eb6d4, 0x00bacde5, 0x00cadefc, 0x00abc0ea, 0x007891ca, 0x003453aa, 0x00284faa, 0x003f6bca, 0x003263c0,
- 0x002c59bd, 0x00305cbc, 0x00325fbc, 0x003262ba, 0x003464b9, 0x003c70c2, 0x00457bcd, 0x00467ccd, 0x004378ce, 0x004074cc, 0x004176ce, 0x00447bd2, 0x004680d1, 0x004880d4, 0x00467fd2, 0x00457fcf,
- 0x004978d0, 0x004376cd, 0x004374cd, 0x004275ca, 0x003f71c7, 0x003872c4, 0x00376ab9, 0x003e62a4, 0x00989ccc, 0x00d9def8, 0x00dde7fa, 0x00a1b5c9, 0x003e6586, 0x003a6597, 0x005984c1, 0x0074a0e7,
- 0x00a9c1e8, 0x00aac2e8, 0x0099b5d4, 0x008eadcc, 0x006b90c7, 0x004c75b8, 0x003d6cb2, 0x00406eb0, 0x006e85b2, 0x0074839c, 0x00384150, 0x00363449, 0x00292b33, 0x00212628, 0x000f1616, 0x00081315,
- 0x000f1428, 0x00111429, 0x0013152a, 0x00151527, 0x0018171c, 0x001a171c, 0x001c181b, 0x001d1919, 0x00282022, 0x00302826, 0x00373129, 0x003e382d, 0x004b4139, 0x00554a44, 0x00635a55, 0x006e645e,
- 0x00787371, 0x007f7b78, 0x00888583, 0x00898786, 0x00898788, 0x00888688, 0x00858386, 0x007f7e81, 0x0080797f, 0x0079757a, 0x006e6f77, 0x00646f78, 0x005d6c7c, 0x00536a7f, 0x004b667d, 0x0045667e,
- 0x00536c88, 0x005a6f85, 0x00637684, 0x0096a1ab, 0x00eceef2, 0x00fdfeff, 0x00fbfcfe, 0x00fdfff9, 0x00fffdfe, 0x00d1d4dd, 0x0040475e, 0x000b153f, 0x000e225c, 0x00082361, 0x0033558f, 0x008db3e6,
- 0x00f5feff, 0x00edf5fe, 0x00e4eafb, 0x00e7f1fe, 0x00e7f4fd, 0x00e2f5ff, 0x00c2e0fb, 0x0078a1d9, 0x003c74c4, 0x002d6ec9, 0x002452a1, 0x0046467f, 0x00a09ab4, 0x00e0d4d8, 0x00dbd1ca, 0x00d6d2c7,
- 0x00c7c9d3, 0x00c0c4d5, 0x00b8becf, 0x00b7b8c7, 0x00cbbfbe, 0x00b7c4e4, 0x007797cb, 0x003762a0, 0x001754aa, 0x002c75cf, 0x004293e9, 0x00348ad9, 0x003b89d2, 0x00478ed6, 0x003573b9, 0x003f76c1,
- 0x005b7cba, 0x005f7cb8, 0x00647fb3, 0x007486b8, 0x009098c1, 0x00a4aacd, 0x00b7bed8, 0x00c2cada, 0x00cacfdc, 0x00cdd6e1, 0x00d1dbdd, 0x00d2d2d3, 0x00c6c6c6, 0x00c2bfbc, 0x00cbc5bf, 0x00d8d5c9,
- 0x00e5d6ce, 0x00e6dac9, 0x00cfc4b0, 0x00c2b19c, 0x00cebea8, 0x00d4cec6, 0x00d7d6d3, 0x00dadad5, 0x00ded7db, 0x00dbd6d9, 0x00dbd7d7, 0x00eae7e5, 0x00fdfdfb, 0x00fdfdfb, 0x00fffdfb, 0x00fdfdf9,
- 0x00fdfdff, 0x00a7b1bf, 0x001c3452, 0x002b5180, 0x002e69b3, 0x00286cc2, 0x00357cd7, 0x00438bea, 0x00478be3, 0x004689da, 0x004287d8, 0x004189e0, 0x004288d9, 0x004588d9, 0x00448ada, 0x00448cde,
- 0x004991ee, 0x004d90e4, 0x004785cb, 0x0078a5de, 0x00b7d3fc, 0x00b4c9fc, 0x00d0e2e3, 0x00f0ffb0, 0x00f9eb65, 0x00f9de8b, 0x00f5d8ac, 0x00f5e2dd, 0x00efefd0, 0x00dbebd5, 0x00a9bec0, 0x006f85ab,
- 0x003997da, 0x005ea7dd, 0x0080bbdd, 0x00aed2e7, 0x00c3e1f9, 0x0094b8e8, 0x003264a6, 0x001f5eb6, 0x003067ce, 0x003064c8, 0x002e62c2, 0x002a66bb, 0x002d5cb7, 0x003762be, 0x001f46a8, 0x0006318c,
- 0x002353b2, 0x002f66c6, 0x00306cc8, 0x002963c0, 0x002054b0, 0x001650aa, 0x001c5ab3, 0x002360b8, 0x00245db9, 0x001d56b1, 0x001d56af, 0x00235eb4, 0x002c63bb, 0x002d62ba, 0x00245db1, 0x00235cad,
- 0x002f62c4, 0x003066c7, 0x002c61bf, 0x00295fbb, 0x002c63c2, 0x003469c9, 0x002e65c1, 0x002c61bd, 0x003163c4, 0x002b5fbe, 0x00215bb7, 0x002765be, 0x002b6abd, 0x003c74bf, 0x006296d9, 0x00709bd3,
- 0x00728fb9, 0x00405774, 0x000f1e2e, 0x00151d24, 0x001c1f19, 0x001f1c1a, 0x00231f21, 0x001f1e1e, 0x00232128, 0x00212327, 0x0016191f, 0x00505357, 0x00e0e0e2, 0x00fefdfd, 0x00fdfdfb, 0x00fbfdf7,
- 0x00d9d3b4, 0x00a7886b, 0x00b2846e, 0x00b37762, 0x00b5674f, 0x00b26047, 0x00b66149, 0x00b26447, 0x00a96a43, 0x00a86e47, 0x00af7354, 0x00b17c61, 0x00b28367, 0x00b58a6c, 0x00b99074, 0x00b69276,
- 0x00a68c66, 0x00a08765, 0x009a7c61, 0x0097755b, 0x0087674f, 0x00735b3d, 0x0061492a, 0x004f3821, 0x003b2a11, 0x00322614, 0x0032241b, 0x0031221c, 0x0029221a, 0x00251f17, 0x00251c16, 0x00221c17,
- 0x001c1a04, 0x001c1808, 0x001d1509, 0x001d1608, 0x00201809, 0x00261a0c, 0x002b1c11, 0x002d1e11, 0x002d2107, 0x00302109, 0x0034210d, 0x003b2111, 0x003c2414, 0x003e2715, 0x00432c1b, 0x004a2d21,
- 0x0048321a, 0x0050371f, 0x005e412b, 0x006c4c36, 0x0074563c, 0x00745033, 0x00674329, 0x005a3823, 0x0061482f, 0x00866c4c, 0x00b59977, 0x00d7bb97, 0x00d9cec1, 0x00bcc2d4, 0x00889dcf, 0x007c9fec,
- 0x007aa3cf, 0x008aa8c9, 0x00c5d4ec, 0x00f0f2fa, 0x00f3f1f4, 0x00f3f3f5, 0x00f7f6fb, 0x00fcf7ff, 0x00f5f7f5, 0x00f5f2ef, 0x00f6f0f2, 0x00f4f1f7, 0x00f0f0f5, 0x00efeff5, 0x00f1f0f7, 0x00f1f0f5,
- 0x00ecf0ef, 0x00eef0f1, 0x00f1f0f4, 0x00f1f0f6, 0x00f0f1f6, 0x00ecf2f6, 0x00e9f2f5, 0x00e7f2f2, 0x00e3efed, 0x00e8efee, 0x00eceff0, 0x00edeef0, 0x00f2f0f1, 0x00f2f0f0, 0x00f3f0f2, 0x00eee7ea,
- 0x00e5ded6, 0x00c1bab0, 0x005c534b, 0x002e221b, 0x0033251c, 0x0036261e, 0x003b2a23, 0x003e2c24, 0x00332c1b, 0x00352b1a, 0x00372c1b, 0x00342a1a, 0x00312518, 0x002f2216, 0x002e2118, 0x002c201b,
- 0x001f190b, 0x001e180a, 0x001e160f, 0x001b1311, 0x00180e0e, 0x0019100f, 0x001b1110, 0x0019100e, 0x000e0d04, 0x000c0c04, 0x00120d0c, 0x00130e0f, 0x00161513, 0x00373636, 0x00c4bcc2, 0x00fcf9fe,
- 0x00f4fbf5, 0x00f5fcf4, 0x00fcfefe, 0x00f8f5fc, 0x00828ea4, 0x001a325b, 0x00284580, 0x00345ca2, 0x003c67b1, 0x005174c0, 0x006086db, 0x005994f0, 0x00638ee0, 0x007093e3, 0x0085a0ea, 0x0093a5eb,
- 0x009ba0ca, 0x009186aa, 0x00776d93, 0x0050548c, 0x002b5aad, 0x00395eae, 0x00243f8f, 0x0012287a, 0x00062564, 0x00275086, 0x006a97cb, 0x0071abda, 0x005da1c8, 0x005fa0c8, 0x005d9ac6, 0x006096c4,
- 0x005191bf, 0x005292c0, 0x005693c4, 0x005692c4, 0x005290c1, 0x005390c2, 0x005892c4, 0x005792c3, 0x005191b9, 0x005190bc, 0x005492bf, 0x005694c2, 0x005391c0, 0x004f8dbb, 0x004c87b3, 0x004a81b0,
- 0x003f81a4, 0x003f80a0, 0x00427ca5, 0x004379a3, 0x004177a1, 0x0044769e, 0x004776a1, 0x0044779e, 0x00397e9a, 0x00327a99, 0x0033749d, 0x00386e9c, 0x00476c91, 0x00698296, 0x00969fa8, 0x00acaca7,
- 0x00bac2a1, 0x00c7cfb5, 0x00c0c9c2, 0x008f99a4, 0x00384677, 0x0024337c, 0x004355ad, 0x00576aca, 0x004c68b6, 0x004360a4, 0x003d5b9f, 0x00315298, 0x002a4b95, 0x0034539c, 0x002e4895, 0x00203886,
- 0x00274690, 0x004061ac, 0x005172c0, 0x004b6dbd, 0x004468b5, 0x004c71b8, 0x005274ba, 0x004f6eb8, 0x003c63a4, 0x00375b9e, 0x0036559e, 0x0037559f, 0x0039579f, 0x0038569f, 0x00324e9a, 0x002f4996,
- 0x00233d7d, 0x005f739e, 0x00e4ebfd, 0x00fdfbff, 0x00fffef5, 0x00fffefc, 0x00fefaff, 0x00d3d3da, 0x00424b44, 0x00141809, 0x00282513, 0x002f2c19, 0x0033331f, 0x00353421, 0x00373322, 0x00383524,
- 0x0031321a, 0x0031341b, 0x0035331f, 0x00373321, 0x0035351f, 0x0037351e, 0x003b3321, 0x003b3423, 0x00313417, 0x0034361b, 0x00393420, 0x00393422, 0x003c3622, 0x003a3621, 0x003a3320, 0x00393320,
- 0x00283218, 0x002b2e17, 0x002f2c1b, 0x002e2e23, 0x00394d57, 0x0050728e, 0x005c89b4, 0x005990c8, 0x005a9ccd, 0x005a99c9, 0x00629ed4, 0x005da1db, 0x0064a4dd, 0x0064a3da, 0x0068a2dc, 0x006ca1dd,
- 0x006fa5db, 0x0067a4da, 0x006aa2df, 0x00659fe3, 0x005f9fe0, 0x00619dd5, 0x00629bd0, 0x00649cd3, 0x005f9bc8, 0x005e9ac5, 0x00649fca, 0x0068a2ce, 0x0069a2cb, 0x006ba2cb, 0x006da3ce, 0x006da2cb,
- 0x005da3c2, 0x005fa5ce, 0x0066a9e0, 0x0067a8e3, 0x0078add4, 0x00759aa9, 0x00405253, 0x00262c1f, 0x00273116, 0x00283423, 0x002d3124, 0x0034311d, 0x00322e1c, 0x00302e1a, 0x00312e1c, 0x00313020,
- 0x0030331b, 0x0032341c, 0x00363520, 0x00373622, 0x00353521, 0x00333321, 0x00343221, 0x00333121, 0x002c3115, 0x002e3117, 0x0032321c, 0x00312f1e, 0x002d2b20, 0x0067655f, 0x00eeece9, 0x00fffefd,
- 0x00f6fff1, 0x00f4fded, 0x00fdf9f4, 0x00e9d5d4, 0x00b5878d, 0x00c09a9d, 0x00dfc2c9, 0x00dad2d9, 0x00cedbdd, 0x00e3e4ed, 0x00efe8f5, 0x00ebe3eb, 0x00e0d9e2, 0x00d9d2df, 0x00dcd3e2, 0x00e0d6e5,
- 0x00e7e3e9, 0x00edeaee, 0x00f1ecf4, 0x00efe9f3, 0x00e0d9e1, 0x00c4bac2, 0x00b5a8b3, 0x00a89ca7, 0x008d898d, 0x0088848a, 0x0099939a, 0x00aea6ae, 0x00c2b7c0, 0x00b3a4ae, 0x00927d8a, 0x009e8794,
- 0x00a2908e, 0x00867371, 0x00887176, 0x00a48e97, 0x0099868d, 0x0097838e, 0x009e8697, 0x009e8998, 0x008f898f, 0x0099929d, 0x00b9acb9, 0x00beb2ba, 0x00b1a5b1, 0x00ada2ac, 0x00bbacb7, 0x00c7bbc5,
- 0x00c2bebd, 0x00bfb9bc, 0x00cbc2c9, 0x00e8dee5, 0x00ded3db, 0x00c2b6c2, 0x00beb3c2, 0x00c8bdcb, 0x00ccc7ce, 0x00cec9d2, 0x00cfc6d3, 0x00b9b0ba, 0x009f969c, 0x00a1989a, 0x006f6567, 0x003f3639,
- 0x00534028, 0x00715c40, 0x00846650, 0x008e6c53, 0x00936f4e, 0x00936c4b, 0x0096694b, 0x00976a4a, 0x008a6843, 0x007c5d37, 0x007a5231, 0x007f5325, 0x008b6b53, 0x00866b86, 0x005f4980, 0x00766ca2,
- 0x009dae9b, 0x00a5afa8, 0x00a6a3b5, 0x00a99bc5, 0x00b09ea8, 0x00aea0ae, 0x00aea3b3, 0x00b3a6b6, 0x00b1a9b4, 0x00b2aab3, 0x00b5aab5, 0x00b5acb6, 0x00b5adb5, 0x00bcb3bb, 0x00c6bac3, 0x00dfd5dc,
- 0x00f2f5f7, 0x00f6fefa, 0x00f5fdfa, 0x00f8fefc, 0x00fcfdf7, 0x00d6c9c4, 0x00624946, 0x0053332f, 0x00493421, 0x004f3e28, 0x00514333, 0x004c4842, 0x00494541, 0x00494441, 0x004a4643, 0x004e4547,
- 0x00484440, 0x00433e39, 0x00413c3b, 0x003f3637, 0x003e3535, 0x00483020, 0x004d3221, 0x003f322f, 0x001a2932, 0x00354f67, 0x007f9ec6, 0x008cb3e5, 0x00659fe0, 0x004389d8, 0x003684e0, 0x00318df3,
- 0x008bacee, 0x00c2dedf, 0x00d9edc4, 0x00ebf79e, 0x00f4f6b1, 0x00f7f6e0, 0x00edeefb, 0x00ced5ff, 0x0071a4dd, 0x004384bc, 0x003b7ebb, 0x00488bc6, 0x007cb4f3, 0x008eb7fb, 0x007692ea, 0x00556cca,
- 0x003256b1, 0x002451ae, 0x00295ebe, 0x002567c4, 0x001669c0, 0x00245cb4, 0x003661c0, 0x004d7bdb, 0x003a70cc, 0x001f53aa, 0x002b55a9, 0x003a5ba2, 0x007278a4, 0x00a89eb6, 0x00bca2ab, 0x00bc9593,
- 0x007caed4, 0x007aabd3, 0x007cabdd, 0x007aa7dc, 0x007aa7d9, 0x0078a1ca, 0x007496ba, 0x00708aa3, 0x00719188, 0x00809e8e, 0x00869e95, 0x007d969b, 0x007d8f94, 0x00768387, 0x009199a1, 0x00d3d8e1,
- 0x00f5fdf8, 0x00fafdfb, 0x00fdfdff, 0x00ffffff, 0x00e9ebef, 0x00af9a99, 0x005c3736, 0x00643b3a, 0x00653729, 0x00693826, 0x007b4233, 0x007e4434, 0x00824d3d, 0x00815240, 0x00835749, 0x00825b4d,
- 0x00785f4a, 0x007c604b, 0x0082614f, 0x00856452, 0x00856450, 0x0081614f, 0x00806353, 0x00836a59, 0x00756952, 0x006a5f4e, 0x00645246, 0x0059483f, 0x003c3632, 0x002a2929, 0x001f1c21, 0x0019121b,
- 0x000d0904, 0x000b0602, 0x00100d13, 0x00121924, 0x00657689, 0x009fb3d6, 0x0099abd3, 0x00b2c2e3, 0x00cfe3ed, 0x00e3f7f9, 0x00e3efff, 0x00b5c4ee, 0x00455fac, 0x00284ba0, 0x003e6bc7, 0x003164c1,
- 0x002759b4, 0x002a5eb8, 0x002f60ba, 0x003060b9, 0x003365bc, 0x003c6fc4, 0x004577cd, 0x00467ad0, 0x003c75c7, 0x003c75c8, 0x004279cf, 0x00447bd0, 0x00477fd1, 0x004980d3, 0x004a81d7, 0x004a80d6,
- 0x003e79c8, 0x003e78c7, 0x004176cb, 0x004575cd, 0x004074ca, 0x003970c7, 0x003c6dc0, 0x003d62ad, 0x006e82a9, 0x00b2c4da, 0x00e0eeff, 0x00bbcedd, 0x00517490, 0x00264e7d, 0x003d66aa, 0x006083db,
- 0x0092aec6, 0x00b3cee3, 0x00b5cde5, 0x00a7bdd9, 0x007c9dce, 0x005178b9, 0x003e65ae, 0x003c66ad, 0x00678ab1, 0x0091abc2, 0x00546073, 0x003a3a4e, 0x00272a33, 0x00252a2e, 0x0012191e, 0x000c121a,
- 0x0009121f, 0x000c1424, 0x00141529, 0x00181528, 0x00171620, 0x001c151e, 0x0022191f, 0x00241c20, 0x002b251b, 0x00322b1e, 0x0040342a, 0x004b3d34, 0x0054463b, 0x00584d43, 0x00675a53, 0x0070605c,
- 0x00696862, 0x006e6e68, 0x007a7774, 0x007e7977, 0x007c7878, 0x007a7678, 0x00797276, 0x00736f73, 0x00656766, 0x00606262, 0x00606166, 0x005f636c, 0x0057636e, 0x004f6071, 0x00495c72, 0x00485d75,
- 0x00446073, 0x00506776, 0x00687382, 0x00a3a7b1, 0x00f5f3f5, 0x00fffeff, 0x00fffbff, 0x00fffdff, 0x00f6fdf3, 0x00c0c8cb, 0x00272f47, 0x0008143d, 0x00061b5c, 0x000f2d70, 0x0034579d, 0x00749bdf,
- 0x00d0e2ef, 0x00c5d9e8, 0x00b8c3dd, 0x00c3cde5, 0x00d4e5f7, 0x00d0e8fd, 0x0097b2e2, 0x005a7fc2, 0x003272bd, 0x002169bc, 0x001d4694, 0x00554b78, 0x00b3a7b9, 0x00e3d7d8, 0x00e3d7d2, 0x00e0d8d1,
- 0x00c5c8ca, 0x00bec4c9, 0x00c4c2d0, 0x00c2bdc9, 0x00c8bbb9, 0x00bec7d0, 0x00abbede, 0x007f96c0, 0x003a6a9c, 0x00477eb4, 0x0068a0dc, 0x00609dd3, 0x006fa5d3, 0x0081abdc, 0x0088a9de, 0x0096afea,
- 0x00a9c0e1, 0x00b7caeb, 0x00cdd8fa, 0x00d4d8f7, 0x00dcd9f1, 0x00e1daed, 0x00ebe3f0, 0x00ede6ea, 0x00d7d9cc, 0x00d2d7c8, 0x00dadbd0, 0x00d9d7cf, 0x00cec8c2, 0x00c4bfb9, 0x00c7c0b9, 0x00cdc8bd,
- 0x00d8d3c0, 0x00d7d1be, 0x00c9c1af, 0x00bbb3a1, 0x00c0b6a4, 0x00c8c4bd, 0x00d5d3d3, 0x00dddad9, 0x00dcdcd7, 0x00d5d4d1, 0x00d6d2d1, 0x00e9e4e3, 0x00fefcfa, 0x00fffdfb, 0x00fffbfb, 0x00fffcfd,
- 0x00f4fbf6, 0x009faeb8, 0x0019304c, 0x002a4f80, 0x003672ba, 0x003275ca, 0x00347ad6, 0x003b84e2, 0x003c88d9, 0x004089d5, 0x004387d9, 0x004087e0, 0x004186d9, 0x004184d5, 0x004785db, 0x004687e0,
- 0x003e8ad8, 0x004289d5, 0x004c85c9, 0x007baae7, 0x00c0d6ff, 0x00c3caff, 0x00dcdfe6, 0x00f9fcb6, 0x00efea6c, 0x00f4e4ac, 0x00fee8e2, 0x00f9e6f8, 0x00f0f3d9, 0x00f4fde1, 0x00e0eee5, 0x00abb1dc,
- 0x0036a8cd, 0x0067bdda, 0x0090cde4, 0x00b3d6e7, 0x00cee7fc, 0x00a8cbf5, 0x004971b4, 0x00295db7, 0x002764c0, 0x002b62c1, 0x002c60c2, 0x002863c3, 0x00315ebd, 0x003c62c4, 0x002647ab, 0x000f3195,
- 0x0011489e, 0x002761b5, 0x00306ac1, 0x002a60b9, 0x002c5ab2, 0x002255b1, 0x00275cb9, 0x002a5ebc, 0x001c5ab1, 0x001c58b0, 0x00205ab3, 0x002862b8, 0x002b65b9, 0x002661b4, 0x002661b4, 0x002c66bb,
- 0x002d68c1, 0x002e69c2, 0x002a62bf, 0x00285fbe, 0x002e66c3, 0x00336ac8, 0x003266c7, 0x002f63c4, 0x002863bc, 0x002361b8, 0x002a60bf, 0x002c64c3, 0x002360b9, 0x002e6bc0, 0x00437bcc, 0x004b80c9,
- 0x005c90be, 0x00648eb2, 0x0036506c, 0x00162532, 0x00171f24, 0x001f1d1e, 0x00261e22, 0x00261e21, 0x001f201d, 0x001f221f, 0x001c1b1e, 0x005c595e, 0x00e8e9ea, 0x00fdfffd, 0x00fffefe, 0x00ffffff,
- 0x00ddd2b6, 0x00ae896d, 0x00af7c63, 0x00b16c53, 0x00b55a40, 0x00af5035, 0x00ae4d33, 0x00ad4f32, 0x00a55834, 0x00a55e39, 0x00a86244, 0x00ac6c52, 0x00ae7658, 0x00b38061, 0x00b38567, 0x00b18768,
- 0x00a78766, 0x00a28267, 0x0098795e, 0x0093755d, 0x0086684c, 0x0075593e, 0x00614727, 0x004d391e, 0x003a2a18, 0x0034261b, 0x0030221f, 0x002d2222, 0x00261f20, 0x00221d1c, 0x001e1815, 0x001b1914,
- 0x001f1a0b, 0x001a160b, 0x00150f07, 0x00151108, 0x0019140b, 0x0021190e, 0x00251d11, 0x00292012, 0x00321f0c, 0x0034210d, 0x0037230f, 0x003c2516, 0x003b2719, 0x00422d1d, 0x00473422, 0x00463624,
- 0x00402b18, 0x004d3725, 0x00644e38, 0x007e644b, 0x008f7559, 0x009b7c5d, 0x00ab8c6c, 0x00bea083, 0x00d3b692, 0x00e2c59a, 0x00eacf9f, 0x00e9d2a5, 0x00d9d5c4, 0x00b5c5db, 0x0083a1dc, 0x0073a0fa,
- 0x0077a0d9, 0x008caad8, 0x00cfe0fb, 0x00f0f2fe, 0x00f6eff5, 0x00f9f4f7, 0x00f7f4f7, 0x00f5f3f8, 0x00f6f2f6, 0x00faeef2, 0x00f9eef3, 0x00f3f0f6, 0x00f0eff4, 0x00eeedf2, 0x00eeeef3, 0x00eff0f4,
- 0x00f0f1f5, 0x00eff1f5, 0x00f0f0f6, 0x00f1f0f5, 0x00f0f0f6, 0x00edf2f4, 0x00eaf4f3, 0x00e9f4f3, 0x00e9f2f4, 0x00e8eff1, 0x00e8eef2, 0x00eaf0f4, 0x00ebf0f4, 0x00e5eaef, 0x00e8edf3, 0x00ebeef4,
- 0x00f6eeee, 0x00f6edeb, 0x00a59a97, 0x004a3e39, 0x00291e15, 0x0031261b, 0x0033281d, 0x0033291c, 0x00382b1e, 0x00382a1b, 0x00342617, 0x0034291a, 0x00302518, 0x002d2316, 0x002a2114, 0x00251e12,
- 0x00201911, 0x001e1810, 0x0019130f, 0x00120f0c, 0x00100b0b, 0x00140f0d, 0x0018110e, 0x0017100d, 0x00120c07, 0x00100b06, 0x00130b0a, 0x00160f0e, 0x001b1311, 0x00322c2a, 0x00b5aead, 0x00f8f7f4,
- 0x00f9fdfb, 0x00fdfefa, 0x00fcfcfb, 0x00fffdff, 0x00909baf, 0x0020385e, 0x00325188, 0x005077bf, 0x006a94e0, 0x007799eb, 0x006995ea, 0x005494f0, 0x005594f2, 0x00639df8, 0x0073abfd, 0x007baefc,
- 0x008fabf1, 0x008a9fe1, 0x007591cb, 0x005173b4, 0x002c66b6, 0x00385dae, 0x001f3e88, 0x0005246c, 0x00143270, 0x00426aa0, 0x006f9ed0, 0x006daad7, 0x00559ac3, 0x00569ac0, 0x005594bb, 0x005a92be,
- 0x00548fbe, 0x005490be, 0x005590bf, 0x00538fbe, 0x004f8ebc, 0x00508ebd, 0x00528fbe, 0x00528ebe, 0x00528fbd, 0x00518ebe, 0x00528dbd, 0x00528dbb, 0x004d8bb9, 0x004a89b4, 0x004784af, 0x004381ac,
- 0x00417ba5, 0x003f7aa4, 0x004078a0, 0x003f769e, 0x003e769d, 0x0043739c, 0x00457299, 0x00417599, 0x003a7b9e, 0x00397ba1, 0x003477a3, 0x0039709d, 0x004b6e8f, 0x008496a3, 0x00c3c8c4, 0x00d3ccb9,
- 0x00c4c3a3, 0x00aeb19b, 0x00b7beb7, 0x008b95a2, 0x003c4d82, 0x003c4e9a, 0x004e61bb, 0x004d63c6, 0x004464b2, 0x004264a6, 0x002f5191, 0x00214087, 0x00203f87, 0x0035549c, 0x00325199, 0x001e3d86,
- 0x002b4896, 0x004463b2, 0x005273c2, 0x004e6ebd, 0x004667b5, 0x00496cb5, 0x00486db1, 0x004468ab, 0x003c5fa4, 0x0034569d, 0x0033539c, 0x0034539b, 0x00325299, 0x00304f95, 0x002c4890, 0x0029438d,
- 0x00263d82, 0x006272a3, 0x00e4eaff, 0x00fefcfe, 0x00fffdf3, 0x00fffffa, 0x00fdfdfd, 0x00d2d5d8, 0x00464b49, 0x0017150c, 0x00292314, 0x002f2b18, 0x0034311e, 0x0035341f, 0x0035341f, 0x0034331d,
- 0x0034321e, 0x0034331d, 0x00363220, 0x00363321, 0x0035341e, 0x0035341d, 0x0038341e, 0x0039341f, 0x0037341d, 0x003a361f, 0x003a3522, 0x00393522, 0x003b3721, 0x00393620, 0x0037331f, 0x0038321e,
- 0x002f301b, 0x0030301b, 0x002c2c1d, 0x002b3028, 0x0039515e, 0x004e7291, 0x005281af, 0x004e88c0, 0x005697c9, 0x005691c1, 0x005598c9, 0x004ba0cf, 0x0053a3ce, 0x005aa4cd, 0x005da0ca, 0x0066a3c9,
- 0x006ba4ce, 0x0064a5d2, 0x0061a4d8, 0x005ca3da, 0x0051a6df, 0x005c9fd4, 0x005f9cd0, 0x00609cd1, 0x00629ccb, 0x00629cc9, 0x00649dca, 0x00669fcb, 0x0068a1c9, 0x0069a1c8, 0x006aa1c8, 0x006ca3c8,
- 0x0063a8c7, 0x0062a5d0, 0x0065a7d9, 0x0064a3dc, 0x0079abd0, 0x008caebd, 0x005f716c, 0x00282f1c, 0x00343620, 0x002c3523, 0x002b301f, 0x0031311a, 0x00302f18, 0x00322f1b, 0x00302c1a, 0x002f2f1d,
- 0x0033321e, 0x0034331f, 0x00373521, 0x00373521, 0x00343420, 0x0032331f, 0x00333320, 0x00333420, 0x002f321b, 0x0030331c, 0x002f311c, 0x00303120, 0x0027271b, 0x0056564f, 0x00e1e1dd, 0x00fbfcf9,
- 0x00f9feef, 0x00fcfff2, 0x00fefcf7, 0x00efe8e8, 0x00c2b0b8, 0x00c2b1bd, 0x00d1c2d1, 0x00d1d0dc, 0x00d0d5e0, 0x00dedcea, 0x00e9e6f2, 0x00eae4ed, 0x00dad8df, 0x00dbd3dd, 0x00ddd5e0, 0x00e1dae6,
- 0x00eae4ed, 0x00f1ebf3, 0x00f0e9f3, 0x00ede6f1, 0x00ddd6de, 0x00cac1c8, 0x00c0b4bc, 0x00b1a7ae, 0x00969197, 0x008d888e, 0x00948d94, 0x00a8a0a8, 0x00bcb1ba, 0x00ab9ca6, 0x008d7a85, 0x00a18c98,
- 0x009f8b93, 0x0097838b, 0x009a868f, 0x009e8892, 0x0098878f, 0x0097858f, 0x009a8995, 0x00998997, 0x00948894, 0x009e91a0, 0x00baadb9, 0x00c4b7c2, 0x00b8abb1, 0x00aca1ab, 0x00b4aab2, 0x00c3b9c1,
- 0x00cfc4ca, 0x00ccc2c9, 0x00c0b6bd, 0x00dcd1da, 0x00eadfe8, 0x00cdc4d1, 0x00c3bac7, 0x00c5bcc7, 0x00c7bfc7, 0x00d1c8d1, 0x00d4cbd4, 0x00c9c0c8, 0x00a69ca1, 0x00a49c9e, 0x00979093, 0x0050494c,
- 0x00473326, 0x007a6554, 0x00846e5a, 0x00846751, 0x008c6b50, 0x008d674a, 0x008b654a, 0x008d6748, 0x00876545, 0x00896546, 0x00916a44, 0x00a77e47, 0x00a6886f, 0x008c7293, 0x00423571, 0x005b5ca0,
- 0x009caca9, 0x00a6b1ac, 0x00a3a4ac, 0x00a99ac0, 0x00ae9aae, 0x00ad9caf, 0x00aca4b0, 0x00b0a5b5, 0x00b3abb6, 0x00b6adb7, 0x00b4aab3, 0x00b2abb1, 0x00b5adb4, 0x00beb7bd, 0x00c8c0c5, 0x00e1dae0,
- 0x00fdf8fe, 0x00fdfefe, 0x00f7fdfb, 0x00f9fefc, 0x00fefdf8, 0x00c8bbb5, 0x0047312c, 0x00452822, 0x00412b1e, 0x00453224, 0x0040362a, 0x00393c34, 0x003a3c35, 0x003d3c38, 0x003a3d37, 0x003c3b37,
- 0x003d3a3b, 0x0040363b, 0x003a3235, 0x00383031, 0x003a312e, 0x0048311f, 0x00473322, 0x00322e2a, 0x00405972, 0x006e91bf, 0x0079a7e1, 0x00639adc, 0x004285d4, 0x003581dd, 0x002d84e4, 0x003193f8,
- 0x00a4beea, 0x00d7eeeb, 0x00ebf9d5, 0x00f9fdbe, 0x00faf4c9, 0x00f6eae4, 0x00eaddf3, 0x00ddd4fa, 0x00a8c3e9, 0x008bb2c8, 0x0087adbf, 0x00a7c1d8, 0x00deecf7, 0x00eef2fc, 0x00e6e5f6, 0x00c8c4ea,
- 0x007b82be, 0x00435ba5, 0x0023509f, 0x001d5fbb, 0x001267c9, 0x00215cba, 0x003063be, 0x00336acc, 0x001c56c6, 0x001550bf, 0x001e57c4, 0x002657ba, 0x005573bb, 0x008ea0cf, 0x008d97b0, 0x00757682,
- 0x004586c9, 0x004c8bd2, 0x004d8fd7, 0x004a89d6, 0x004d87d2, 0x005d91d1, 0x0072a2d2, 0x007ca4c3, 0x0079999c, 0x007e9c8e, 0x00839d91, 0x007e999c, 0x007c9397, 0x0079888c, 0x0098a2a7, 0x00dbe2e6,
- 0x00f8fcfc, 0x00fefcff, 0x00fcfbff, 0x00feffff, 0x00e3e4e6, 0x00a89494, 0x005b3d3b, 0x0063433e, 0x00673e32, 0x006d3f32, 0x007a4739, 0x007b4837, 0x007e4f3f, 0x007d5542, 0x007c5a47, 0x007d5c4c,
- 0x00826254, 0x00836251, 0x00846050, 0x00845f4e, 0x00815b48, 0x007f5b48, 0x007d5d4b, 0x007c604c, 0x00726150, 0x00695649, 0x005e483e, 0x00504038, 0x0037302f, 0x00242227, 0x0018181e, 0x00131118,
- 0x0012070c, 0x000b0309, 0x0006060e, 0x00131a2a, 0x0071879e, 0x00aec5ef, 0x009fb6e2, 0x00a3b8d6, 0x00c3cfe2, 0x00e7f2fa, 0x00f1fafb, 0x00ccd8f7, 0x00516ab0, 0x00274da0, 0x003769c1, 0x002c68bf,
- 0x002b58ba, 0x002e5dbd, 0x003160be, 0x003162bb, 0x003468bc, 0x003b70c2, 0x004277c8, 0x00437aca, 0x003a71c7, 0x003b73c9, 0x003f78cd, 0x00437dcf, 0x00467ed1, 0x004981d4, 0x004a80d3, 0x004a81d2,
- 0x00447ace, 0x004277ca, 0x004378cd, 0x004477cb, 0x003f72c6, 0x003b6fc9, 0x003d6fc7, 0x003b66b2, 0x005871a0, 0x0096acca, 0x00d7eafa, 0x00cde1e9, 0x007290a7, 0x002d4f7e, 0x00294f94, 0x00375cb6,
- 0x006e7fa3, 0x008f9ebb, 0x00b9c8de, 0x00d0e2f7, 0x009cbbe2, 0x006489c4, 0x00385fa3, 0x003864a6, 0x006689b5, 0x00a7c2df, 0x008291a8, 0x00454960, 0x00242a34, 0x00222a2d, 0x00101c1b, 0x000a1514,
- 0x000f1423, 0x00111528, 0x0016172c, 0x0017182a, 0x00171923, 0x001b171d, 0x00221d1d, 0x00272121, 0x00342b24, 0x003c2f25, 0x0047362d, 0x00523e34, 0x005b473a, 0x005f4d40, 0x0066584a, 0x006d5c50,
- 0x0067605e, 0x006b6563, 0x00736d6a, 0x00736e6b, 0x00706b6a, 0x006b6868, 0x00666365, 0x00615f62, 0x0059585a, 0x0056565a, 0x0055555a, 0x0056595d, 0x00515a62, 0x00485764, 0x00425364, 0x00415568,
- 0x00465667, 0x00505f6d, 0x0067707d, 0x00a9abb3, 0x00faf8fa, 0x00fffcff, 0x00fdfbfe, 0x00fcfcfb, 0x00f5faf5, 0x00b6bfc7, 0x00151f39, 0x0004123d, 0x00041d5f, 0x00183a7f, 0x002a5198, 0x004673b8,
- 0x007889a5, 0x0073809b, 0x00516177, 0x005d6c82, 0x008a9bb7, 0x00829abe, 0x00436192, 0x0026518d, 0x003470bc, 0x002568bd, 0x001b448a, 0x00645072, 0x00bcb0bb, 0x00e5d8d8, 0x00e6e0d7, 0x00ded9cd,
- 0x00d3ced1, 0x00c9c6ce, 0x00cac7ce, 0x00cdc3cc, 0x00c8c2bb, 0x00ccc6be, 0x00c9c9c4, 0x00b7b9c1, 0x00a0aec6, 0x00adc1d8, 0x00bbcfe9, 0x00bed5ea, 0x00c9dbe7, 0x00d4dbeb, 0x00d5d5e9, 0x00d4cfe8,
- 0x00cdd8e5, 0x00d9e0ed, 0x00e6e7f3, 0x00ece8f0, 0x00eadfe5, 0x00e7d9dc, 0x00e2d3d1, 0x00e0d2c9, 0x00dad5c3, 0x00d9d3c1, 0x00d8d6c9, 0x00d4d8d7, 0x00d1d4d0, 0x00c9ccc9, 0x00bdc2bc, 0x00b8beb6,
- 0x00c0c2be, 0x00c1c7c2, 0x00c1c6c1, 0x00bbc1bb, 0x00adb4ac, 0x00b3b4b0, 0x00c5c3c0, 0x00d3d4d0, 0x00dcd9d8, 0x00d4d3d1, 0x00d1cecd, 0x00e3e0df, 0x00fdfdfb, 0x00fdfcfa, 0x00fffcfa, 0x00fffdfb,
- 0x00f7f9fb, 0x00a1aebc, 0x00142d49, 0x00284d7c, 0x003c78bd, 0x004081d4, 0x00327bd3, 0x002c78d2, 0x003880d5, 0x00438ada, 0x00448be0, 0x003b89e1, 0x003e84d8, 0x003f83d4, 0x004183d5, 0x004184d6,
- 0x003780d4, 0x004382d5, 0x00437bc6, 0x00759fe3, 0x00c4dbfb, 0x00e3d1fc, 0x00f0cadb, 0x00f1da9e, 0x00dbc76b, 0x00e8d6bb, 0x00faf1fb, 0x00f4eefd, 0x00e6fae3, 0x00eafcdf, 0x00ecf7ea, 0x00d3d5f1,
- 0x006fd5db, 0x00a4eff4, 0x00b8ebf2, 0x00cfe8f6, 0x00c2d2f1, 0x008eabde, 0x00446db0, 0x00265db1, 0x00225fb9, 0x002d65c1, 0x002b63c1, 0x002a62c3, 0x00345ec0, 0x003d60c4, 0x002648ab, 0x0017399a,
- 0x0014439c, 0x002d61b7, 0x002c61b8, 0x001f53a9, 0x0017439a, 0x001e4eaa, 0x00265ab7, 0x002b5ebc, 0x00255db7, 0x00225bb3, 0x00225bb2, 0x002762b7, 0x002a68bb, 0x002665b7, 0x002463b5, 0x002867b9,
- 0x003169c5, 0x003168c4, 0x002a61bf, 0x00265ebc, 0x002c66c1, 0x002f6bc6, 0x002d68c6, 0x002c66c4, 0x002962bf, 0x002b63be, 0x002b61be, 0x003366c5, 0x002968c2, 0x001f60bb, 0x002e70c9, 0x003275c9,
- 0x00326cb5, 0x005685be, 0x006487b0, 0x00425975, 0x0012202e, 0x001e1b1f, 0x00261e1e, 0x00231e1d, 0x00241f20, 0x00242122, 0x001c191b, 0x00605c5f, 0x00ececec, 0x00fcfefb, 0x00fcfffc, 0x00feffff,
- 0x00e2d4b7, 0x00ae896a, 0x00b37e62, 0x00ad6349, 0x00b9553d, 0x00ac432a, 0x00a83b22, 0x00a5391c, 0x00a54323, 0x00a44a2a, 0x00a55134, 0x00a55b3f, 0x00ab664c, 0x00b17156, 0x00b47b60, 0x00b17f64,
- 0x00a57e63, 0x00a07a5d, 0x009c7760, 0x00957459, 0x00876550, 0x00755b40, 0x005a432e, 0x00473325, 0x00312623, 0x002a2227, 0x00312e39, 0x00313441, 0x00373d4c, 0x00383d4c, 0x00373b47, 0x00393e48,
- 0x0030373b, 0x002c353a, 0x00252d34, 0x00232b33, 0x001c2328, 0x00181d1b, 0x001a1c15, 0x0029251b, 0x00362817, 0x003c2915, 0x0046341e, 0x00453322, 0x0048382c, 0x0047372d, 0x0042362a, 0x003b2f24,
- 0x00332714, 0x003e311d, 0x006b5b44, 0x009e876c, 0x00c2a788, 0x00d3af89, 0x00e5c094, 0x00e3be93, 0x00efc895, 0x00f7d193, 0x00ecca88, 0x00e8cc89, 0x00ddd3ba, 0x00b8c0d1, 0x008398d6, 0x00799cfa,
- 0x006c9ad8, 0x008eade0, 0x00d1e0ff, 0x00efedfd, 0x00fdf3f8, 0x00f7eff1, 0x00f5f0f3, 0x00f4f1f5, 0x00f7f1f6, 0x00f9eff4, 0x00f5eef2, 0x00eff0f3, 0x00f0f0f4, 0x00f2eff5, 0x00f0eef5, 0x00eeecf3,
- 0x00f5f0f7, 0x00f3f1f7, 0x00f2f1f6, 0x00f1f1f6, 0x00f1f0f7, 0x00f2f1f5, 0x00f2f1f4, 0x00f2f0f6, 0x00f1eff8, 0x00f0f0f7, 0x00eff0f7, 0x00eef0f8, 0x00f1f1fc, 0x00eeedfa, 0x00ededf9, 0x00eae9f5,
- 0x00f0eded, 0x00f1ecec, 0x00e2dbdc, 0x009a9191, 0x003e3331, 0x002b1f1a, 0x002e241b, 0x0032281c, 0x003d2c22, 0x003a2921, 0x0036281b, 0x00352a1a, 0x0032261a, 0x00302418, 0x002b1f12, 0x002b1e17,
- 0x00241c15, 0x001f1712, 0x0019100e, 0x00160d0e, 0x00140a0d, 0x00120b0b, 0x00120b09, 0x00120c09, 0x00100907, 0x00100a05, 0x00110b05, 0x0017120b, 0x00160f08, 0x002f2722, 0x00aba09e, 0x00f9f3ef,
- 0x00f7fcfa, 0x00fbfcf8, 0x00fefefc, 0x00fefdff, 0x00a4adbf, 0x00314868, 0x00426492, 0x006088c9, 0x00719ce8, 0x007397e8, 0x00678bd8, 0x005d84c8, 0x006198e6, 0x0073aefa, 0x0076b1ff, 0x0074a9fc,
- 0x0073a8f0, 0x0074a9f8, 0x0071a7fa, 0x00649cec, 0x004c81d5, 0x003e6ab2, 0x001e3f85, 0x000f2d72, 0x00304d8c, 0x00547eb7, 0x0072a8d6, 0x005ea1c6, 0x005098bd, 0x005495be, 0x005791bd, 0x005c8dbe,
- 0x005391bd, 0x00518fbb, 0x00518cbb, 0x004f8aba, 0x004e8aba, 0x00508bba, 0x00528bba, 0x00518bb9, 0x00518aba, 0x00528aba, 0x00508bb9, 0x004e8bb8, 0x004d87b5, 0x004b84b1, 0x00457fab, 0x004179a7,
- 0x004279a5, 0x003e759f, 0x003a719d, 0x003a729c, 0x003e729f, 0x00417095, 0x00417095, 0x003f7499, 0x003e7ca2, 0x00397aa3, 0x003d78a5, 0x0038709a, 0x00557091, 0x008a9ca9, 0x00d2d1d2, 0x00d1c6ba,
- 0x00a1a598, 0x009ba09d, 0x00a5afbb, 0x007989a4, 0x004a5f9f, 0x00445fae, 0x003859ae, 0x004366c0, 0x004167af, 0x00305b95, 0x0020477f, 0x001e3781, 0x00253d88, 0x0038509c, 0x003d59a2, 0x0024418b,
- 0x00284791, 0x004162ac, 0x005374bf, 0x004c6cb9, 0x004463b1, 0x003f60aa, 0x003e61a6, 0x003c5fa5, 0x003c5aa2, 0x0035539d, 0x0033519b, 0x00314e97, 0x00314c97, 0x002b458f, 0x0028418a, 0x0027418b,
- 0x001e3478, 0x005a699a, 0x00e4eaff, 0x00fdfcff, 0x00fffcf5, 0x00fefcfb, 0x00fcfdfb, 0x00d2d5d8, 0x00484b48, 0x0018160b, 0x00252211, 0x002a2815, 0x0032301c, 0x0035331f, 0x00353320, 0x00353420,
- 0x00363422, 0x00363420, 0x00363421, 0x00363421, 0x00363320, 0x00363420, 0x00383520, 0x003a351f, 0x003a3623, 0x003c3622, 0x003b3621, 0x003b3621, 0x003c3722, 0x003a3520, 0x0036331e, 0x0038321d,
- 0x002c3017, 0x002f301c, 0x002a2a1d, 0x00343835, 0x004e687e, 0x004e769b, 0x004378a6, 0x00407fb6, 0x004985bd, 0x005088bd, 0x005893c1, 0x0058a3c2, 0x0078b2ce, 0x0082b2ca, 0x0087aac1, 0x0098b3c9,
- 0x0091b0c5, 0x0086aecc, 0x0080b0d8, 0x0066a4d1, 0x005da7dc, 0x005fa0d3, 0x00639fd2, 0x0067a2d3, 0x0069a1d4, 0x0069a2d2, 0x00679fce, 0x00669eca, 0x0069a1ca, 0x006aa1ca, 0x006ba1cb, 0x006ea3cd,
- 0x0069a7bf, 0x0069a7ca, 0x006aa5ce, 0x006b9dce, 0x0083a6c6, 0x00a4bbc3, 0x00838e7f, 0x003d3a1e, 0x00342f15, 0x0034311a, 0x00383522, 0x0032301c, 0x0031301f, 0x002f2e1b, 0x00312f1d, 0x00333021,
- 0x0034331f, 0x0035331f, 0x00373521, 0x00373421, 0x00343320, 0x0033331f, 0x00333420, 0x00343320, 0x0032331d, 0x0032331e, 0x002f311d, 0x002f301e, 0x0029271c, 0x0044423c, 0x00c4c1bf, 0x00f8f6f5,
- 0x00fbfdef, 0x00fcfbf2, 0x00fffdfd, 0x00fafafd, 0x00d8dee8, 0x00b8bbcb, 0x00cac3d6, 0x00d4c7d9, 0x00d5c8d7, 0x00dedae4, 0x00eae8f2, 0x00e7e4ed, 0x00dcd6e0, 0x00dad5dd, 0x00ded7e0, 0x00e3dae2,
- 0x00e9e2ec, 0x00f2ecf4, 0x00f2eaf4, 0x00efe8f3, 0x00d9d2db, 0x00c7bec6, 0x00c5bac3, 0x00bbb3ba, 0x00a7a0aa, 0x00969198, 0x00908a90, 0x009e979d, 0x00b1a6ae, 0x00a3949f, 0x0096848f, 0x009f8a95,
- 0x009c8d95, 0x00a4959e, 0x00a28f9a, 0x009e8c97, 0x009a8a95, 0x00968b93, 0x00998c96, 0x00998c96, 0x00968795, 0x00a093a1, 0x00bbafbe, 0x00cabfc6, 0x00bcb2bb, 0x00b1a5ad, 0x00b7aab6, 0x00c1b5bf,
- 0x00cfc4ce, 0x00d6ced5, 0x00c4bbc5, 0x00c6bac3, 0x00e8dbe6, 0x00e2d8e0, 0x00beb7c0, 0x00c7c1c8, 0x00c6bec6, 0x00cbc2c8, 0x00d8cfd3, 0x00cfc7ca, 0x00b1a7ad, 0x00a59ca4, 0x00a49ca5, 0x008e858e,
- 0x00675e57, 0x00988c83, 0x00ab9a8e, 0x008a7667, 0x00896e5b, 0x00896e55, 0x0083644d, 0x0085644c, 0x007c5f48, 0x0093775e, 0x00aa8a6a, 0x009e7b49, 0x00917455, 0x007c6882, 0x004d3f83, 0x00564ea6,
- 0x008f9da7, 0x00a1ada9, 0x00a4a3a6, 0x00aca0bf, 0x00b198b6, 0x00ada0b5, 0x00aba3af, 0x00b0a6b2, 0x00b2a8b7, 0x00b6abb9, 0x00b5abb5, 0x00b1abb1, 0x00b6adb6, 0x00bab2ba, 0x00cac2c8, 0x00e3dde3,
- 0x00fdfdfd, 0x00f8fcfc, 0x00fafffd, 0x00f2fcf7, 0x00fbfaf8, 0x00b0a8a4, 0x002f1c17, 0x00381e1b, 0x00341c16, 0x00332219, 0x00282115, 0x0020291c, 0x002b3127, 0x002a2a29, 0x002c2c30, 0x002d2931,
- 0x00302b2d, 0x0031292b, 0x00302828, 0x00332b27, 0x003e332b, 0x00473b2b, 0x003c392f, 0x003f4c55, 0x005e84b7, 0x006399da, 0x004b8bd5, 0x00377dcf, 0x00397cd6, 0x00377fdc, 0x00367fdb, 0x00418deb,
- 0x00bcc9dd, 0x00e1f2fa, 0x00ceddf0, 0x00c5d4e7, 0x00a0b0d5, 0x008395be, 0x007382b2, 0x006d7dbb, 0x007d89c2, 0x008895c2, 0x0097a0c9, 0x00afb7dd, 0x00ded9ec, 0x00f0ebf2, 0x00fff5f9, 0x00fff5f2,
- 0x00dfdee4, 0x009ca7c6, 0x00455e9a, 0x002654a9, 0x00205cd1, 0x00205bbe, 0x002963c3, 0x002c63c8, 0x002054c1, 0x001b4bbb, 0x002252c3, 0x002155be, 0x003568cb, 0x006299ec, 0x00649ee7, 0x002e6aad,
- 0x00125ebb, 0x00236cd0, 0x002a73dc, 0x002971db, 0x002b70d9, 0x003071c8, 0x005f98df, 0x0089b9eb, 0x0089acc1, 0x007c9aa2, 0x00879e9f, 0x00809a9a, 0x00839699, 0x007c898c, 0x00a5adb2, 0x00e4eaf0,
- 0x00f9fefc, 0x00f8f6f8, 0x00ffffff, 0x00fefefd, 0x00e3e2e6, 0x0091807f, 0x005f463d, 0x005f413b, 0x00674038, 0x006b4138, 0x0071473b, 0x00714837, 0x00785142, 0x007b5744, 0x007b5948, 0x007e5b4d,
- 0x0082604e, 0x00815e4b, 0x00835e4b, 0x00835d4a, 0x00835c47, 0x007e5844, 0x00795846, 0x00755946, 0x006d5544, 0x00624d3e, 0x00584539, 0x00463831, 0x0034292c, 0x00271f27, 0x0017151d, 0x000b0b11,
- 0x00100a0e, 0x00090609, 0x000c0e1b, 0x00152234, 0x0063799b, 0x007e9fce, 0x008bade1, 0x009ebbe5, 0x00c6d8f4, 0x00cfdff3, 0x00c9daf2, 0x00b0c6f1, 0x004c6fbb, 0x00204ea6, 0x00326bcc, 0x002264c8,
- 0x002a58b9, 0x002f5ebd, 0x003361be, 0x003361bb, 0x003566bb, 0x003c6fc1, 0x004276c8, 0x004278cb, 0x004278cc, 0x003f76cc, 0x003f78cd, 0x003f7acc, 0x00437ed0, 0x00477fd2, 0x00487ed0, 0x00477bcf,
- 0x00477dd0, 0x004277ca, 0x004376cd, 0x004577cd, 0x004273c7, 0x003b70c7, 0x003c6ec7, 0x003c67bb, 0x00486aa5, 0x006f8eb4, 0x00c7e0f5, 0x00d2e6ed, 0x0090a7b9, 0x003e5886, 0x00284a8f, 0x002146a3,
- 0x006c7ba1, 0x009daccd, 0x00b0bddd, 0x00c4d2ee, 0x00a8c1ea, 0x007fa2d6, 0x003e65a2, 0x00325a99, 0x006180ad, 0x00abc4e5, 0x00a7bbd7, 0x00515c7b, 0x00273240, 0x00242c31, 0x00181f22, 0x0011161a,
- 0x00111522, 0x00121628, 0x0017192c, 0x00171929, 0x00161a22, 0x001b181c, 0x0026201e, 0x00302824, 0x0042312b, 0x004e3a2f, 0x00574034, 0x005b4434, 0x00674e3c, 0x00695541, 0x006c5a45, 0x006e5946,
- 0x00665d57, 0x00685e59, 0x0069615b, 0x0068615c, 0x00665e5b, 0x005e5955, 0x00524f4c, 0x004c4846, 0x004b4846, 0x004a4949, 0x004a4a4a, 0x004b4d4b, 0x00474c4e, 0x00424951, 0x003e4753, 0x003c4854,
- 0x003e4954, 0x00484f58, 0x00676873, 0x00b4afb9, 0x00fefbfe, 0x00fdfcfc, 0x00fcfbfd, 0x00fbf9fb, 0x00fafbfd, 0x00aab2bc, 0x000c1731, 0x00000e38, 0x00112a6e, 0x001b3c83, 0x003359a4, 0x0027539d,
- 0x00102637, 0x00051324, 0x000a1122, 0x0009111c, 0x00172631, 0x00112939, 0x00011a36, 0x00143a65, 0x003870af, 0x002868ae, 0x00294b80, 0x00755d6a, 0x00cfbac0, 0x00e6dada, 0x00e4dbdb, 0x00dfdbd7,
- 0x00d7d3cf, 0x00d7ced0, 0x00d7cdd3, 0x00d5cacb, 0x00d0c7c5, 0x00d7c6b2, 0x00d7c5af, 0x00d8c5ba, 0x00d2c8ca, 0x00d3d0cf, 0x00d7d5ce, 0x00d8daca, 0x00e6e1d2, 0x00efe0d9, 0x00efd8d6, 0x00ecced6,
- 0x00cad0bf, 0x00d7dbcd, 0x00e6e6da, 0x00ebe9dd, 0x00e9e3db, 0x00e5ddd7, 0x00e3dad5, 0x00e2d9d5, 0x00dfd6d4, 0x00dad1d2, 0x00d4d1d4, 0x00d0d3d6, 0x00d0d3db, 0x00d0d2db, 0x00c5c8d2, 0x00bbbeca,
- 0x00afb8c1, 0x00b5bec5, 0x00b7c3cd, 0x00b9c5ce, 0x00aeb9c3, 0x00a7a9ab, 0x00acacab, 0x00bcbbb7, 0x00cbc8c7, 0x00c7c6c3, 0x00c7c6c3, 0x00dcdbd9, 0x00fffdfc, 0x00fefdfd, 0x00fffefd, 0x00fcfdfb,
- 0x00f5f7fb, 0x009eadbc, 0x00122a48, 0x00234c7a, 0x003973b7, 0x004085d3, 0x003d84d9, 0x003780d8, 0x00377cd6, 0x003d80d6, 0x004087de, 0x003a88e0, 0x003d82d7, 0x004081d5, 0x003f7fd3, 0x003a7acd,
- 0x003379ce, 0x002c6fc0, 0x003970be, 0x004f7fc5, 0x00a2c0f3, 0x00e6a8ca, 0x00ee7180, 0x00de754d, 0x00b27a41, 0x00c8ad92, 0x00eeefe9, 0x00ddf6fa, 0x00dff8ea, 0x00edf7e2, 0x00e5e2ce, 0x00dec8c9,
- 0x009de1a9, 0x00bbe8c3, 0x00d9efe5, 0x00e3e4f6, 0x00b1b1e9, 0x00586eb6, 0x003b60b5, 0x00255bb4, 0x001f60b6, 0x002a67b7, 0x002866b8, 0x00235dbc, 0x003561c6, 0x00395bc2, 0x002645a9, 0x001f3d9f,
- 0x0016479e, 0x00275aae, 0x002254a8, 0x00144498, 0x001e479d, 0x001a49a5, 0x002253b0, 0x002b5bba, 0x002c5ebd, 0x00295eb9, 0x002660b6, 0x002663b8, 0x002665ba, 0x002364b8, 0x002465b8, 0x00286aba,
- 0x002b66c4, 0x00316ac8, 0x002c66c4, 0x00225dba, 0x002862bd, 0x00316cc8, 0x002f6ac7, 0x002b64c1, 0x002c66c6, 0x002f66c4, 0x002d63c0, 0x003362c1, 0x002963c3, 0x002260c5, 0x002368ce, 0x002971d5,
- 0x002770bf, 0x002d6ab2, 0x005081bb, 0x006587b9, 0x003c4e71, 0x001b202e, 0x00171818, 0x00242127, 0x00221d21, 0x00282728, 0x00191917, 0x00636160, 0x00faf8f9, 0x00fefcfc, 0x00fffefe, 0x00ffffff,
- 0x00e4d6bb, 0x00b68f74, 0x00af7e62, 0x00ac684c, 0x00b1573c, 0x00aa462d, 0x00a13921, 0x009f321a, 0x009e3419, 0x009f381e, 0x009f4228, 0x00a44d33, 0x00aa5b41, 0x00b1664d, 0x00b37258, 0x00af755b,
- 0x00a17659, 0x009d7457, 0x0096735b, 0x008f6e54, 0x0084634b, 0x006f5a4a, 0x0050433d, 0x003a2f2e, 0x002c2b3a, 0x0044485f, 0x00687291, 0x007889ab, 0x008499bd, 0x00859abd, 0x008195b5, 0x00889cba,
- 0x00889db9, 0x008a9fbd, 0x007e93b1, 0x006b819d, 0x00506378, 0x003c4a56, 0x00252e33, 0x002a292a, 0x00433929, 0x004f3f2b, 0x004e3e2a, 0x00443726, 0x003d3427, 0x00372e23, 0x002d261c, 0x00292219,
- 0x00221a0b, 0x00301f0e, 0x00382610, 0x004f371e, 0x00846447, 0x00b68d65, 0x00e3b786, 0x00e9c08d, 0x00e7b980, 0x00efc07f, 0x00f5c780, 0x00f4c984, 0x00e7d0b1, 0x00bebbc7, 0x008696c8, 0x007797ea,
- 0x006d98d8, 0x0091ade1, 0x00d5e3fe, 0x00f4f2ff, 0x00fdf3f1, 0x00f9f0f1, 0x00f5f1f0, 0x00f2f0f4, 0x00f0f0f6, 0x00f4eff5, 0x00f3eef4, 0x00f0eff3, 0x00f1f0f5, 0x00f3f1f6, 0x00f0f1f5, 0x00edf0f3,
- 0x00f3f1f6, 0x00f4f1f6, 0x00f3f1f5, 0x00f1f1f5, 0x00f2f0f6, 0x00f5eff6, 0x00f5eef6, 0x00f3eef7, 0x00f5edf7, 0x00f5eef9, 0x00f1ecf6, 0x00f0eef7, 0x00f2eefb, 0x00f1eefc, 0x00efedfa, 0x00eeeaf8,
- 0x00edeaee, 0x00ede9ed, 0x00ede8eb, 0x00e5dee0, 0x00807878, 0x00322925, 0x002c231c, 0x00332b22, 0x00362a1e, 0x0037291e, 0x003b2b1e, 0x003b2b1d, 0x0038271a, 0x00342418, 0x002f2117, 0x002c1f19,
- 0x00271c15, 0x00221811, 0x001c100c, 0x00180e0b, 0x00160b0b, 0x00120b09, 0x00100907, 0x00100a08, 0x000f0806, 0x00100906, 0x00140a07, 0x001a110d, 0x00180d09, 0x00291f1a, 0x00998f8a, 0x00f1ece5,
- 0x00f8fcfc, 0x00fffefb, 0x00fcfcf9, 0x00fffffe, 0x00a7afbe, 0x00354b69, 0x00406290, 0x005e88c8, 0x006d98e6, 0x00668ddf, 0x005f81c7, 0x007588c2, 0x0077a2ea, 0x007dadf7, 0x007eaffa, 0x007aa3e6,
- 0x0072a1e9, 0x0068a0f2, 0x00629ef6, 0x005895ef, 0x005a83d0, 0x004a71b8, 0x0034579a, 0x00214486, 0x003e5e9b, 0x006391c6, 0x0070a8d2, 0x005fa5c7, 0x004d96b9, 0x005292bb, 0x00548bb7, 0x005b89bc,
- 0x00528ebb, 0x00528cba, 0x005089b7, 0x004e87b5, 0x004e87b6, 0x004e88b7, 0x004e87b7, 0x004e87b7, 0x004d88b5, 0x004f88b6, 0x004d88b6, 0x004b89b6, 0x004a85b4, 0x004882b0, 0x00427da9, 0x003f79a5,
- 0x0040769e, 0x003c739d, 0x00386f97, 0x00386d97, 0x003d7098, 0x0041709a, 0x00417297, 0x003e759b, 0x003b799c, 0x003c789f, 0x003b76a1, 0x003a6f9a, 0x004e6e93, 0x007f95ab, 0x00b1bec6, 0x00a4a8a5,
- 0x00969a9d, 0x00adb3bd, 0x00a2adbe, 0x007584a3, 0x004d649d, 0x003f59a5, 0x003553a3, 0x004263ba, 0x003960a9, 0x002a5792, 0x00183f78, 0x0020347c, 0x00233880, 0x00384f98, 0x003e5ca3, 0x002a4b91,
- 0x00284b93, 0x003e62aa, 0x004a6cb6, 0x004464b0, 0x00425fad, 0x003e5da6, 0x00395a9f, 0x0037589f, 0x0036559d, 0x0037569e, 0x0035529a, 0x00304b94, 0x002d4691, 0x0028418b, 0x00233c86, 0x001f3982,
- 0x001b3379, 0x0059699c, 0x00e2eaff, 0x00fcfdfd, 0x00fffdf4, 0x00fffdfb, 0x00fdfdfd, 0x00d2d5d9, 0x00484b48, 0x0017170c, 0x00262513, 0x002a2b16, 0x0030301b, 0x0034321e, 0x0034321f, 0x0034321e,
- 0x00363522, 0x00363521, 0x00363421, 0x00363421, 0x00363321, 0x00373420, 0x00393521, 0x003c3622, 0x003b3721, 0x003c3721, 0x003b3620, 0x003c3620, 0x003c3721, 0x003a3520, 0x0036331e, 0x0037331e,
- 0x00302f16, 0x0033321d, 0x0027291c, 0x00353c3e, 0x00536e8a, 0x004b74a0, 0x00376ca3, 0x003374b0, 0x004381b7, 0x004f86b8, 0x005d8bb6, 0x0082a8c8, 0x00bed2ea, 0x00d5d9ed, 0x00dfd9ea, 0x00e2d2df,
- 0x00dbc7dd, 0x00c7c5e2, 0x00c1cef3, 0x008babd9, 0x006a9fd2, 0x0067a1d5, 0x0066a4d6, 0x0069a3d7, 0x006ba4d7, 0x006ba5d5, 0x0069a1cf, 0x00679fc9, 0x006aa1ca, 0x006ba2ca, 0x006ca2ca, 0x006da4cc,
- 0x006da7bd, 0x006da6c6, 0x006ca3cc, 0x006d9ecb, 0x0086a1c1, 0x00aebcc3, 0x009da192, 0x00595335, 0x00373011, 0x00353019, 0x00383520, 0x0033311c, 0x0031301a, 0x00302f1b, 0x0030301a, 0x0031301c,
- 0x0033321e, 0x0036331f, 0x00383521, 0x00373521, 0x00353320, 0x00333320, 0x00333420, 0x00333320, 0x0032301d, 0x0031311d, 0x0030311d, 0x002f301d, 0x002a2a1c, 0x0036362d, 0x00a7a7a1, 0x00f2f2ee,
- 0x00fbfef8, 0x00fdfcfa, 0x00fdfdfa, 0x00fffeff, 0x00d9e8e9, 0x00bec2cb, 0x00cdc1cf, 0x00d9bacf, 0x00ddc0cd, 0x00e4d9df, 0x00e9e7e9, 0x00e9e4ee, 0x00ded6df, 0x00d9d1dd, 0x00ddd6de, 0x00e0dae3,
- 0x00e9e2ea, 0x00f2ecf3, 0x00f2eaf3, 0x00f0e9f3, 0x00d8d2db, 0x00cac1ca, 0x00c9bec7, 0x00c2b9c3, 0x00afa8b2, 0x009f979f, 0x00938c93, 0x00999299, 0x00a599a2, 0x00a3949e, 0x00998892, 0x009d8993,
- 0x009f919a, 0x00a597a1, 0x00a1939e, 0x009d8d99, 0x009d8e9a, 0x00988a96, 0x00988c96, 0x00988b96, 0x00948791, 0x009f939f, 0x00bbb0b9, 0x00cfc2c9, 0x00c2b7c2, 0x00b8abb5, 0x00baafb6, 0x00beb4bc,
- 0x00d2c5ce, 0x00e2d8e1, 0x00d5c9d3, 0x00c1b4be, 0x00d4c9d0, 0x00e2d9e4, 0x00ccc5d0, 0x00c7bfc6, 0x00cbc4cc, 0x00c5bec3, 0x00d3cccf, 0x00d4cdd0, 0x00c3bbc0, 0x00aca3ab, 0x00a49ba5, 0x00ada4af,
- 0x00948e8f, 0x00a09796, 0x00cbbdbc, 0x00c4b2ad, 0x00a69287, 0x009c8679, 0x00856f60, 0x00826b5d, 0x00957d74, 0x00c5ada2, 0x00c8af9c, 0x0085623e, 0x006e5932, 0x0088747a, 0x00635785, 0x00504795,
- 0x009096a8, 0x00a6abab, 0x00a5a3a5, 0x00aba0b8, 0x00af9bb2, 0x00aca0b2, 0x00aaa4b0, 0x00aea5b1, 0x00b2a6b7, 0x00b4aab8, 0x00b4abb5, 0x00b4adb5, 0x00b5abb5, 0x00b2a9b3, 0x00c3bac2, 0x00e5dfe5,
- 0x00fcfbfd, 0x00f9fdfd, 0x00f9fdfc, 0x00f6fefa, 0x00f3f2ef, 0x00958d89, 0x00261411, 0x00311816, 0x002a1410, 0x002a1813, 0x00271f15, 0x0026251d, 0x001f1f18, 0x001d1818, 0x00222021, 0x00221d23,
- 0x00272023, 0x00251c1e, 0x002a1f1e, 0x00332820, 0x00413429, 0x00473c2f, 0x0046453f, 0x00546374, 0x005789c2, 0x004481cf, 0x003176cd, 0x003077d2, 0x003777ce, 0x003779cd, 0x003d7ece, 0x005d9de9,
- 0x00d5daf8, 0x00c0cbfe, 0x007a8cdf, 0x005976d8, 0x002d60aa, 0x001c5b9b, 0x001f5ca2, 0x00215db0, 0x002b57c4, 0x002f57c8, 0x00375ec8, 0x004b76d3, 0x007699df, 0x00a2bee9, 0x00cde4f7, 0x00ddeef9,
- 0x00ebf8fc, 0x00dbe8f7, 0x00819ad0, 0x003c5aad, 0x002d54c0, 0x002c5dc2, 0x002e65c8, 0x002f65c5, 0x002955b8, 0x00274db1, 0x002853b8, 0x002854b9, 0x002b64cb, 0x004688ec, 0x003d8bec, 0x001366c4,
- 0x002166cd, 0x003c7fe9, 0x003e85f0, 0x00367dea, 0x00347be2, 0x00387cd6, 0x004c88da, 0x006fa3df, 0x0085afcd, 0x0081a0bc, 0x007e9aa5, 0x00849b9b, 0x00849698, 0x00808c8e, 0x00abb4b3, 0x00eff1f3,
- 0x00fdfefe, 0x00fcfafb, 0x00fffffe, 0x00fffbf9, 0x00d7d4d3, 0x008b7a78, 0x00624a43, 0x0063443f, 0x00633f3b, 0x0069433e, 0x006a4239, 0x006e483c, 0x00755141, 0x00785747, 0x00795a48, 0x007c5d4d,
- 0x00815c4b, 0x00815b4a, 0x00845d4c, 0x00835b49, 0x00815946, 0x007b5540, 0x00765540, 0x0071543f, 0x00634b3b, 0x005a4336, 0x00523d34, 0x0040332e, 0x00292224, 0x00211e22, 0x00151719, 0x000a0c0d,
- 0x000f090d, 0x000e090c, 0x0000010c, 0x00252e45, 0x005f7899, 0x006c8ac2, 0x008dadea, 0x00a0bcef, 0x0097b5dc, 0x0086a2cc, 0x00728fc4, 0x007293d4, 0x003d69be, 0x001e53b0, 0x002a65c9, 0x002263c8,
- 0x002b58ba, 0x00325fbf, 0x003462bf, 0x003162ba, 0x003668bc, 0x003f73c5, 0x004478cb, 0x004478cb, 0x004076c8, 0x003f75ca, 0x004079cd, 0x003f7acc, 0x00447ed0, 0x00467fd0, 0x00477dd0, 0x00467acf,
- 0x00457bcf, 0x004376cd, 0x004275ca, 0x004175c8, 0x003f71c8, 0x003d6ec5, 0x003c6dc0, 0x003766b9, 0x003a66aa, 0x005a7caf, 0x00adc8e6, 0x00d9eafc, 0x00a8bbd0, 0x0058709d, 0x002e4f8f, 0x002348a1,
- 0x00566c9f, 0x009baeda, 0x00c0d1f2, 0x00aec0dd, 0x007b96bb, 0x006e8fc4, 0x004468a4, 0x003b61a0, 0x005c79a6, 0x00a3b8db, 0x00a4b7d3, 0x00546289, 0x00324053, 0x00202a35, 0x001a2428, 0x00111719,
- 0x0011131e, 0x00131524, 0x00171728, 0x00161725, 0x00151b20, 0x001d1c1d, 0x002a2521, 0x00362e28, 0x004c3731, 0x00593f34, 0x00634436, 0x006b4b37, 0x0072523c, 0x00755940, 0x00745e43, 0x00755e47,
- 0x00655b52, 0x00665a52, 0x00635a52, 0x005f5850, 0x005a534c, 0x00534e47, 0x0047463d, 0x00414038, 0x00403e36, 0x0040403a, 0x0040413c, 0x0040443f, 0x003c403f, 0x00373c3f, 0x00363b42, 0x00353a42,
- 0x00383d46, 0x00383b44, 0x005c5c65, 0x00bab5bc, 0x00fdfafe, 0x00fefcff, 0x00fefeff, 0x00fcfbfa, 0x00f3f4f6, 0x009a9ead, 0x000b142d, 0x00071440, 0x001e3476, 0x00254389, 0x002d5296, 0x00264f93,
- 0x00152230, 0x00000913, 0x0000080b, 0x00000307, 0x00000d08, 0x00000c12, 0x00000e1b, 0x00193e58, 0x004379aa, 0x00306ba9, 0x0038537f, 0x00967376, 0x00ddcbcc, 0x00e3dfdc, 0x00e7e4e1, 0x00dddcdd,
- 0x00e0dbda, 0x00e0d4dc, 0x00dfd3d6, 0x00dfd1d5, 0x00d1cdc9, 0x00d3cdc7, 0x00cdccbe, 0x00ceccc7, 0x00ccccd2, 0x00cccfd4, 0x00ced2d2, 0x00cfd5cf, 0x00dcddd7, 0x00e4e0e1, 0x00e3dadf, 0x00e1d5e0,
- 0x00d8dac3, 0x00dbdcca, 0x00dfdfd0, 0x00e2e1d3, 0x00e3e0d7, 0x00e3dfda, 0x00e3dedd, 0x00e2dce0, 0x00e1d8e3, 0x00dcd5e2, 0x00d9d0d9, 0x00d8caca, 0x00d8ccce, 0x00dbcece, 0x00d6cacb, 0x00ccc1c4,
- 0x00bdb7b7, 0x00bab4b3, 0x00b8b4b5, 0x00c4bfc1, 0x00bbb9bd, 0x00acaaa9, 0x00a09f9d, 0x00a6a3a1, 0x00b6b4b1, 0x00bbb9b6, 0x00c4c2bf, 0x00e1dfdd, 0x00fffefd, 0x00fcfafa, 0x00fdfcfc, 0x00fefdfc,
- 0x00f6fafd, 0x00a3aebf, 0x00112945, 0x00234a76, 0x003772b5, 0x004789d7, 0x00428bde, 0x003e89e1, 0x003a81db, 0x003b7dd5, 0x003c82d9, 0x003a88de, 0x004387da, 0x004688d9, 0x004081d3, 0x003878cc,
- 0x002f76d0, 0x003275cf, 0x003271c4, 0x003a6ebc, 0x007197d8, 0x00d29cb4, 0x00cf6862, 0x00ca5e42, 0x00ca623b, 0x00cd725a, 0x00f4b6ab, 0x00f1d4ce, 0x00f3eada, 0x00d6debc, 0x00b7cda0, 0x00aac592,
- 0x00b4df94, 0x00cde5b8, 0x00d7e0d0, 0x00ede4f9, 0x00a8a8e8, 0x00495fb5, 0x003862bf, 0x00215eb7, 0x001a5aac, 0x002764b1, 0x002560af, 0x002662ba, 0x003464c2, 0x00345cbd, 0x002144a4, 0x001e41a1,
- 0x001c4ca5, 0x002558ae, 0x001e51a4, 0x001d4da0, 0x00284ea6, 0x002652af, 0x002659b5, 0x002f62c1, 0x002e61c0, 0x00275eb8, 0x002560b6, 0x002765ba, 0x002766bc, 0x002464ba, 0x002465b8, 0x002567b8,
- 0x002a66c2, 0x002e69c6, 0x002c66c4, 0x00235ebc, 0x002762bf, 0x00326dc9, 0x00306bc6, 0x002b65c1, 0x002964c2, 0x002e67c5, 0x002b63bf, 0x002e61be, 0x002b66c6, 0x002765ca, 0x00266bd0, 0x002970d5,
- 0x00246ac5, 0x00306dc3, 0x00336aae, 0x005580be, 0x00587cae, 0x0032435c, 0x00111921, 0x001d202c, 0x00211f27, 0x00201f23, 0x001a1a1b, 0x00656464, 0x00fbf7fa, 0x00fefbfd, 0x00fffefe, 0x00fdfdfd,
- 0x00eaddc4, 0x00bd997f, 0x00b28069, 0x00ab6f56, 0x00b36046, 0x00ad5036, 0x00a64229, 0x00a1331c, 0x009c2e1b, 0x009b2e1a, 0x009d321d, 0x009f3e27, 0x00a64e35, 0x00aa5e44, 0x00ad6a50, 0x00aa6f52,
- 0x009f6e56, 0x00956950, 0x00906b52, 0x008d6b52, 0x0080614b, 0x0063534e, 0x00464149, 0x00474856, 0x00737f9c, 0x008da1c8, 0x008fabdb, 0x008caee2, 0x008eb3e8, 0x008aaee0, 0x0088aad9, 0x0087aad7,
- 0x0086a3dc, 0x0081a1d8, 0x0081a2d6, 0x0085a6d5, 0x008aa7cd, 0x00889eb9, 0x00586676, 0x00363c3f, 0x00463b31, 0x00514331, 0x004e402d, 0x0040382a, 0x00342c23, 0x0026231a, 0x001f1c15, 0x001f1b13,
- 0x00231810, 0x00241208, 0x00260d02, 0x002a0f00, 0x00462106, 0x0070481b, 0x00b78a57, 0x00e2b483, 0x00efc089, 0x00f0bf7e, 0x00f2c07c, 0x00f7c981, 0x00e6caa8, 0x00c0bbbe, 0x008391bc, 0x00718fdb,
- 0x007197d9, 0x0090a9db, 0x00d6e0fe, 0x00f8f4ff, 0x00fbefeb, 0x00f9eeeb, 0x00f5eff0, 0x00f0eff4, 0x00edeef5, 0x00ebeef4, 0x00edeef4, 0x00f0eff5, 0x00f1f0f6, 0x00f2f0f6, 0x00f4f1f6, 0x00f4f3f6,
- 0x00f2f2f7, 0x00f4f1f7, 0x00f4f0f7, 0x00f2f1f6, 0x00f2f0f6, 0x00f4eff8, 0x00f5eef9, 0x00f4eff9, 0x00f5eef8, 0x00f3eef9, 0x00f3edf9, 0x00f1ecf6, 0x00f3effa, 0x00f2edf8, 0x00f3edf8, 0x00f3edfa,
- 0x00f0eef5, 0x00f5f3f9, 0x00e5e2e7, 0x00ece9eb, 0x00d7d1d2, 0x00938c89, 0x004b423d, 0x00292018, 0x003b3024, 0x00423628, 0x003c2d1f, 0x00402f20, 0x003f2d1f, 0x003a281c, 0x0035251a, 0x00332318,
- 0x002e1f18, 0x00281b14, 0x0021130f, 0x001c0e0c, 0x00190a09, 0x00120a07, 0x000d0804, 0x000d0904, 0x00130807, 0x00120b08, 0x00120b07, 0x0019110c, 0x001c100b, 0x00291c15, 0x008b7f77, 0x00efece1,
- 0x00fefdff, 0x00fefafa, 0x00fdfbf9, 0x00fdfbf9, 0x00b2b9c5, 0x00455976, 0x004a6a98, 0x005e87c5, 0x005d8ad5, 0x005984d1, 0x006586d1, 0x008797cd, 0x0084aefa, 0x0079aaf6, 0x007ca8f0, 0x007da0dc,
- 0x007399df, 0x005e96e9, 0x005292ee, 0x00508de7, 0x006080c6, 0x005a7dc0, 0x004769ab, 0x00274a87, 0x003c639d, 0x00699cce, 0x0074afd9, 0x0060a7cb, 0x004e99bd, 0x005092ba, 0x00558db8, 0x005b89b9,
- 0x00548aba, 0x005289b8, 0x004e87b5, 0x004c86b3, 0x004d86b4, 0x004c85b3, 0x004a84b3, 0x004a84b3, 0x004b83b3, 0x004b82b0, 0x004a82b1, 0x004984b2, 0x004882b1, 0x00467ead, 0x004078a6, 0x003d75a0,
- 0x003d719c, 0x00376d97, 0x00356995, 0x00386a94, 0x003b6e99, 0x003e6f9c, 0x003f709c, 0x003f7398, 0x003f769a, 0x003c749a, 0x003b749b, 0x003f709c, 0x00476d96, 0x00617d9d, 0x007790a3, 0x006c8388,
- 0x00a0a0a6, 0x00c4c8ce, 0x00b0b6c6, 0x00919cb4, 0x005a6d9e, 0x0032498b, 0x0036519f, 0x004866b8, 0x003559a3, 0x00284e8e, 0x001e3d80, 0x0023327b, 0x0022347d, 0x0030468d, 0x00415ea7, 0x00325196,
- 0x00294b92, 0x004264ac, 0x004b6cb5, 0x003e5da8, 0x003857a3, 0x003858a1, 0x0038589e, 0x0038569f, 0x0037559f, 0x0034519a, 0x00345099, 0x002f4a93, 0x00233c85, 0x00213984, 0x00253b87, 0x00243a86,
- 0x00223781, 0x006070a1, 0x00e3eafe, 0x00fefdfc, 0x00fffef4, 0x00fffefc, 0x00fdfdfc, 0x00d1d5d9, 0x00494a49, 0x0018170c, 0x00272514, 0x002c2c18, 0x0032301c, 0x0034301d, 0x0033311e, 0x0032331e,
- 0x00373422, 0x00363421, 0x00363421, 0x00353321, 0x00363320, 0x0037341f, 0x00393520, 0x003a3722, 0x003d3923, 0x003b3721, 0x00393621, 0x003b3622, 0x003a3722, 0x003a3520, 0x0037341e, 0x0035331d,
- 0x00333118, 0x0030311b, 0x0025291c, 0x002f373c, 0x00456181, 0x00426c9e, 0x002f65a1, 0x002d6dad, 0x00457fb9, 0x004d86b7, 0x005e88b1, 0x0093a5c6, 0x00d5d5ec, 0x00dac7d9, 0x00caacb8, 0x00d9b1b6,
- 0x00d9b3c2, 0x00e8d5ea, 0x00d5d5f5, 0x0094a9d7, 0x006d9bd1, 0x00649cd2, 0x0061a0d3, 0x0065a1d5, 0x0065a1d2, 0x00659fd0, 0x00659ece, 0x00659dcb, 0x00679ec9, 0x0068a0c8, 0x0069a1c8, 0x0069a2c6,
- 0x0069a3bd, 0x00679fc1, 0x006ba0cc, 0x006a9acb, 0x00819dbe, 0x009eabb4, 0x00a2a498, 0x00756d50, 0x00393016, 0x00342f17, 0x0035321f, 0x00312f1c, 0x00302e1b, 0x0032301c, 0x0032311f, 0x0031331d,
- 0x0037321f, 0x00373320, 0x00383522, 0x00373521, 0x00363320, 0x00343420, 0x00323420, 0x0031331f, 0x0031321d, 0x002f301a, 0x00302f1b, 0x002e2e1c, 0x00292a1c, 0x002c2c23, 0x008f8f8a, 0x00eaeae8,
- 0x00fafefd, 0x00fbfcfc, 0x00fffbfd, 0x00fbfdfb, 0x00e1f1f0, 0x00c7c8cb, 0x00d6bfc9, 0x00ecb9cd, 0x00edc0d0, 0x00e6d4d6, 0x00e7e3e6, 0x00ebe5f0, 0x00ddd7e3, 0x00d8cfd9, 0x00dcd5df, 0x00e4d9e4,
- 0x00e9e3ee, 0x00f1ebf4, 0x00f7f0fa, 0x00f1eaf4, 0x00d9d2dc, 0x00cac0ca, 0x00cbbfc8, 0x00c9bfc7, 0x00bfb6be, 0x00aaa2ab, 0x0098919a, 0x00918a92, 0x009e939c, 0x00a89aa3, 0x009f8f99, 0x0092818b,
- 0x009f92a0, 0x00a599a5, 0x009f95a0, 0x009a919c, 0x0099909a, 0x009a8f9a, 0x00998e99, 0x00968d98, 0x00958895, 0x00a2949f, 0x00beb5be, 0x00d0c6cf, 0x00c9bdc7, 0x00baadb6, 0x00b8afb6, 0x00beb6bc,
- 0x00cac0c8, 0x00ddd2db, 0x00e9dde7, 0x00d2c6ce, 0x00c5bbc4, 0x00d9d0da, 0x00d9d1db, 0x00c7c0c7, 0x00d1c8ce, 0x00c4bcc0, 0x00d2cacc, 0x00d4ccce, 0x00cec7cc, 0x00beb5be, 0x00aba1ad, 0x00afa6b3,
- 0x00aaa7ad, 0x009b969a, 0x00bab1b3, 0x00ddd1cf, 0x00eee0de, 0x00ddcdcc, 0x00cabab5, 0x00c9b9b5, 0x00ddcfce, 0x00f4e6e6, 0x00e0ccc6, 0x00a58676, 0x008c7b44, 0x009b8a7f, 0x0073667f, 0x005a4c8b,
- 0x008c86a3, 0x00a9a6ad, 0x00a5a1a7, 0x00aca2b6, 0x00aca0b3, 0x00ada3b1, 0x00aca4b3, 0x00b0a4b3, 0x00b2a6b5, 0x00afa6b1, 0x00b0a6b0, 0x00b1a9b2, 0x00b4aab3, 0x00aba1aa, 0x00c4bac1, 0x00f1eaee,
- 0x00fffafe, 0x00fafcfc, 0x00fcffff, 0x00f8fffd, 0x00e2e1df, 0x007f7774, 0x00200d0c, 0x00291210, 0x00473432, 0x00655d54, 0x00817970, 0x007b766c, 0x005c5550, 0x0039302e, 0x001f1419, 0x0020141d,
- 0x0026151f, 0x00221416, 0x002b1b18, 0x00382a1e, 0x00433626, 0x00504434, 0x00534c46, 0x005b6679, 0x004779b8, 0x002d70c2, 0x002d76d4, 0x00246ed2, 0x003373cb, 0x003470c1, 0x004680c8, 0x007eb4ef,
- 0x00cdd5f0, 0x007c8ad6, 0x00374eb8, 0x00214acb, 0x001357b8, 0x001363b3, 0x002272c2, 0x002f79dc, 0x003772f4, 0x003972f6, 0x003f76f5, 0x004284ee, 0x00588eec, 0x006698de, 0x0085ade1, 0x0092b5da,
- 0x00b1ceee, 0x00ceebfe, 0x00abc7fd, 0x006484d7, 0x00446acc, 0x004277d5, 0x00457ddc, 0x00477ada, 0x003d6acc, 0x003863c1, 0x003a64c4, 0x003967c7, 0x00346cd1, 0x003679df, 0x002a74dc, 0x001265c8,
- 0x003a70d4, 0x004781e6, 0x004584e9, 0x003c7de4, 0x003880de, 0x00387cd3, 0x004381cd, 0x00518ac8, 0x006e97c2, 0x00799cc0, 0x00889fb6, 0x00859994, 0x00859291, 0x00859090, 0x00bcc1c1, 0x00f1f2f2,
- 0x00fffcff, 0x00fdfcfb, 0x00fdfdfb, 0x00fefdfb, 0x00cfcac7, 0x00816f6b, 0x00614743, 0x00614442, 0x005f3d3b, 0x00623f3a, 0x00623d38, 0x00684339, 0x00704c40, 0x00714f40, 0x00755547, 0x00765747,
- 0x007b5746, 0x007d5746, 0x00805847, 0x007e5844, 0x007a5540, 0x0078543f, 0x0070503c, 0x00664935, 0x00593f30, 0x00503929, 0x004a3529, 0x003b2f29, 0x00282423, 0x001c1d1f, 0x00101314, 0x00080a08,
- 0x00110b0b, 0x000c0809, 0x000e0f1d, 0x00303950, 0x00687da6, 0x005a72ad, 0x00708cca, 0x007c9bd3, 0x006183b0, 0x005274aa, 0x005176b5, 0x004267b2, 0x002d5ab9, 0x001b50b4, 0x002a63c8, 0x002461c6,
- 0x002d5cbf, 0x003362c3, 0x003664c2, 0x003464bd, 0x00396bbf, 0x004275c6, 0x004479ca, 0x004177c8, 0x003d73c8, 0x003e75ca, 0x004078cd, 0x00417bce, 0x00447dd0, 0x00457ed1, 0x00447bd0, 0x00437acc,
- 0x004577ce, 0x004376ce, 0x004174ca, 0x004073c8, 0x003f72c6, 0x003f70c2, 0x003f70c2, 0x00366ac0, 0x003364b5, 0x00426ba7, 0x008ca7d1, 0x00d2e4f9, 0x00cbd9ee, 0x00758ab1, 0x0035528d, 0x003459a9,
- 0x00335091, 0x00516b9f, 0x0096acd8, 0x00aec2e4, 0x0094afd6, 0x007b9acb, 0x004869a5, 0x003b609d, 0x00637aa7, 0x0096a9c4, 0x007e8ca9, 0x00455480, 0x003e4a67, 0x001a2635, 0x001d262f, 0x0011181d,
- 0x0012121d, 0x00121421, 0x00171725, 0x00171923, 0x00161c1e, 0x00201d1d, 0x00312824, 0x0040342d, 0x00563e36, 0x00624537, 0x006f4e3c, 0x00734f39, 0x0078563e, 0x007a5b42, 0x00795f44, 0x00775f45,
- 0x006b5d4f, 0x006a5d4e, 0x0065594a, 0x005e5545, 0x00574f41, 0x00514c3f, 0x00464438, 0x00413f34, 0x003f3e35, 0x003f4035, 0x003d3f34, 0x003b3f37, 0x00373c35, 0x00313833, 0x002f3534, 0x002e3436,
- 0x0032323a, 0x0025262b, 0x0057585d, 0x00c5c2c6, 0x00fdfcfd, 0x00fcfbfe, 0x00fdfeff, 0x00fdfefc, 0x00ebeef0, 0x00898d99, 0x00080e28, 0x000a123c, 0x00273979, 0x00284283, 0x00224284, 0x001f4280,
- 0x001f2738, 0x00020710, 0x00010105, 0x00010301, 0x00030704, 0x00010708, 0x00020d16, 0x00203c53, 0x0047739e, 0x00396aa3, 0x00465c84, 0x00ae8683, 0x00efe0de, 0x00e4e1df, 0x00e3e7e8, 0x00dfe6e6,
- 0x00e7e0e3, 0x00e8dddd, 0x00ead9de, 0x00e3dad7, 0x00dad9da, 0x00d3d6d1, 0x00d0d1d1, 0x00cad3d2, 0x00c9cdd7, 0x00c8d0d6, 0x00cad2d4, 0x00cbd6d1, 0x00d7dfda, 0x00e0e4e8, 0x00e1e3ec, 0x00dfdef0,
- 0x00e4e2ce, 0x00e3e2d0, 0x00e2e0d2, 0x00e0dfd4, 0x00dedcd7, 0x00e0dedc, 0x00e2dfdf, 0x00e2dee2, 0x00e2dce5, 0x00ded9e4, 0x00dcd2d9, 0x00dbc7c3, 0x00dbc9c6, 0x00decdc9, 0x00dbccc9, 0x00d7cac7,
- 0x00ccbeba, 0x00bfb4b0, 0x00b7aca7, 0x00b9b2ad, 0x00c8c1bb, 0x00b3b1af, 0x009b9998, 0x00989495, 0x00a8a5a3, 0x00acaaa8, 0x00b9b8b6, 0x00dbdbd8, 0x00fefffb, 0x00fdfdf9, 0x00fefcfa, 0x00fffdfb,
- 0x00f9fbff, 0x00a3aebf, 0x00142947, 0x001b436e, 0x00336cae, 0x00478dd9, 0x004891e4, 0x00418ae2, 0x003f84dc, 0x003e80d7, 0x003e82db, 0x003885de, 0x004186d9, 0x004688d9, 0x004484d8, 0x004281d9,
- 0x004186e6, 0x003f86e2, 0x003e80db, 0x003c75c8, 0x004e7ec9, 0x009a91aa, 0x00ddadaa, 0x00d38c81, 0x00e27162, 0x00e06a5f, 0x00e67772, 0x00f29a9a, 0x00cdb19e, 0x00a1a984, 0x0093bb85, 0x0096d792,
- 0x00c9e2ab, 0x00cfdebe, 0x00cfcfd0, 0x00e5defa, 0x00929ade, 0x003455a9, 0x003265bb, 0x001c62b6, 0x001957ab, 0x00255dad, 0x00265cb0, 0x002567bc, 0x003766c5, 0x002e58b4, 0x002144a3, 0x001c45a0,
- 0x001f4ca6, 0x002457ad, 0x002358aa, 0x002658a9, 0x003058ae, 0x002b58b4, 0x002d60bd, 0x003166c6, 0x002f63c0, 0x00275db8, 0x00265fb7, 0x002a66bc, 0x002865bb, 0x002462b7, 0x002363b6, 0x002465b7,
- 0x002c65c3, 0x002d68c5, 0x002f69c6, 0x00245fbc, 0x002661be, 0x002e6ac7, 0x00316dc8, 0x002b68c2, 0x002964be, 0x002a66c2, 0x002962be, 0x002b62be, 0x002f68c6, 0x002e6ccc, 0x002c6ecf, 0x002e74d6,
- 0x002d72cd, 0x003171c6, 0x002960b2, 0x003467b0, 0x005c89cb, 0x00617b9c, 0x00212c3e, 0x00091424, 0x001e1f2a, 0x001a1b21, 0x001f1e21, 0x006b6a6c, 0x00fbfafa, 0x00fdfdfd, 0x00fcfdfe, 0x00fdfeff,
- 0x00efdec9, 0x00cba590, 0x00b2866f, 0x00b47f65, 0x00af6d51, 0x00b06045, 0x00a84d33, 0x00a43d28, 0x00a0301f, 0x009f2c1f, 0x009b2c1b, 0x009c351e, 0x00a3472e, 0x00a9553b, 0x00ab6246, 0x00a8694e,
- 0x009f6a4f, 0x0091634b, 0x0089634b, 0x0088654f, 0x007a5d46, 0x00594f55, 0x00676b82, 0x008890af, 0x009bb5e2, 0x0091b4ea, 0x007ba6e7, 0x0074a3e8, 0x006697dd, 0x006395d8, 0x006494d3, 0x006292d0,
- 0x005d89dc, 0x005783d3, 0x005b88d2, 0x00618fd2, 0x006b93cb, 0x007d9bc7, 0x00596d88, 0x0038424c, 0x003e3832, 0x00433627, 0x003e321f, 0x00312e1f, 0x00292319, 0x00201f17, 0x001a1d17, 0x001d1c18,
- 0x00221a13, 0x0038261a, 0x00513927, 0x0051311a, 0x00603416, 0x006e451a, 0x009b713f, 0x00cda26e, 0x00eebd88, 0x00f1be83, 0x00f3be7f, 0x00f5c484, 0x00e7c9a6, 0x00c0b9ba, 0x008491b4, 0x006e8ccd,
- 0x007397d3, 0x0090a7d6, 0x00d3dbf9, 0x00f6effc, 0x00faede6, 0x00f7ece8, 0x00f3f0eb, 0x00eef1f2, 0x00ebeff5, 0x00e7eff3, 0x00eaeef4, 0x00eeeef4, 0x00eeeef4, 0x00eeeff5, 0x00f1f0f6, 0x00f3f3f6,
- 0x00f3f1f6, 0x00f3f1f6, 0x00f3f1f7, 0x00f3f1f6, 0x00f2f1f6, 0x00f1f0f9, 0x00f2effb, 0x00f3eff9, 0x00f1f1f7, 0x00f0f0f7, 0x00f1eef7, 0x00f2eff6, 0x00f2f0f6, 0x00f2f1f5, 0x00f2eff4, 0x00f1eff5,
- 0x00f2f2f9, 0x00eeeef6, 0x00e0e0e6, 0x00e0dfe3, 0x00ece8ea, 0x00e4dedc, 0x009d968f, 0x00544a43, 0x00362a1d, 0x003b2f21, 0x00463626, 0x00473321, 0x00452f20, 0x00402b1d, 0x003c281a, 0x00382318,
- 0x00311f16, 0x002c1c13, 0x0026150f, 0x001f100c, 0x001b0c09, 0x00130b08, 0x000f0907, 0x000e0905, 0x00120805, 0x00140c08, 0x00170e09, 0x001b110a, 0x00241710, 0x002b1f16, 0x0083776e, 0x00ede9df,
- 0x00fdffff, 0x00fdfbf9, 0x00fefcfa, 0x00fffdfa, 0x00bfc5ce, 0x00566883, 0x004b6996, 0x00507ab5, 0x004b7ac6, 0x005786d0, 0x00749ae5, 0x008ea1e2, 0x007dabfe, 0x0076a6f9, 0x0078a2ec, 0x007d97d3,
- 0x006b8dd0, 0x00578ee2, 0x005190f0, 0x00508cec, 0x007080c4, 0x006283c3, 0x00587ebd, 0x004367a4, 0x00547db3, 0x0072a6d5, 0x006fabd6, 0x005ca5c9, 0x004d98bb, 0x005696c1, 0x005a8ebf, 0x00628bbd,
- 0x00528bb7, 0x005189b5, 0x004e87b4, 0x004c85b2, 0x004d85b3, 0x004c84b2, 0x004b83b1, 0x004b83b1, 0x004782ae, 0x004980ad, 0x004880ac, 0x004881af, 0x004780ae, 0x00437baa, 0x003d74a2, 0x003a719d,
- 0x00356b95, 0x00336992, 0x00316591, 0x00326591, 0x00376994, 0x00396d9c, 0x003a709e, 0x003c7198, 0x00407395, 0x003f7396, 0x003f7298, 0x00446f9c, 0x00426c99, 0x00476c94, 0x004b7290, 0x004c7589,
- 0x00969392, 0x00c5c4c3, 0x00c2c7c8, 0x00b8c2cc, 0x007383a2, 0x0036497f, 0x00374c93, 0x004156a8, 0x00294293, 0x002a4491, 0x00263a87, 0x0026327b, 0x00203079, 0x002d4288, 0x003c58a0, 0x00355399,
- 0x00294c93, 0x004366ae, 0x004d6eb7, 0x003e5da7, 0x003654a0, 0x0034539e, 0x0035539c, 0x0036519b, 0x00315198, 0x002e4c93, 0x002b4790, 0x0026408b, 0x00213a84, 0x002b438d, 0x00354b98, 0x00324794,
- 0x002c4289, 0x006e7dae, 0x00e5ecfe, 0x00fffeff, 0x00fffcf4, 0x00fffdfa, 0x00fdfcfc, 0x00d2d4d8, 0x00484c47, 0x0017180b, 0x00262412, 0x002c2b17, 0x0033301d, 0x0035311f, 0x00333120, 0x00333421,
- 0x00373521, 0x00363521, 0x00363421, 0x00353421, 0x00363321, 0x0038341f, 0x003a3520, 0x003b3623, 0x003e3a25, 0x003b3924, 0x003a3723, 0x003b3622, 0x003a3622, 0x00393520, 0x0037331e, 0x0035331d,
- 0x00302f14, 0x0032321e, 0x002b2e22, 0x00333c42, 0x003f5e81, 0x003a699c, 0x002d66a5, 0x003272b7, 0x004382b9, 0x004e87b8, 0x00628ab2, 0x009eaac9, 0x00e2def3, 0x00d9bbcc, 0x00956c74, 0x00956367,
- 0x00d2a8ac, 0x00f4e0ed, 0x00d2d2ed, 0x0088a2cb, 0x00699cd5, 0x00619ace, 0x00629ecf, 0x00629cd1, 0x005f9dcc, 0x005d9ac9, 0x00609ac9, 0x00639bc8, 0x00649bc6, 0x00669cc5, 0x00689fc5, 0x00689fc5,
- 0x0063a0be, 0x00629dc6, 0x00669ed0, 0x006898d2, 0x007b99bc, 0x008f9caa, 0x00989992, 0x007a715c, 0x00353016, 0x00343221, 0x002d2c1c, 0x0032301d, 0x00312f1b, 0x0032301d, 0x0034301c, 0x00353220,
- 0x00363420, 0x00373420, 0x00373521, 0x00353420, 0x00363320, 0x00353421, 0x00323521, 0x0031331f, 0x002e311c, 0x002d2f19, 0x002f301c, 0x002c2c1b, 0x002a2a1d, 0x002a2921, 0x007d7b77, 0x00e0dddb,
- 0x00f8fefe, 0x00fafaff, 0x00fdf8fb, 0x00fefcfc, 0x00e8f5ec, 0x00d7d2cf, 0x00d7b7bc, 0x00efaebc, 0x00e3a7b7, 0x00ceb5b9, 0x00e5dfe0, 0x00efe4f1, 0x00dbd9e1, 0x00d4ccd8, 0x00ddd8e2, 0x00e1dce5,
- 0x00e7e2ed, 0x00efeaf4, 0x00f6f0fa, 0x00f1eaf4, 0x00d6cfda, 0x00cac0c9, 0x00cabec6, 0x00cbc0c7, 0x00c3bcc2, 0x00b4adb4, 0x009f9aa2, 0x00918b93, 0x00a1949e, 0x00b3a3ad, 0x00a4949d, 0x0095818c,
- 0x009b919f, 0x00a398a5, 0x00a095a1, 0x0097919b, 0x009b919d, 0x0099909b, 0x009a8e9b, 0x00988c98, 0x00928992, 0x00a0949e, 0x00bfb5be, 0x00d0c6cb, 0x00cbc0ca, 0x00baafb8, 0x00bab0b9, 0x00c6bbc2,
- 0x00d2c9d2, 0x00d7ccd6, 0x00eee1eb, 0x00e8dbe4, 0x00c8bbc5, 0x00cec3cf, 0x00dbd1dd, 0x00cdc6ce, 0x00cec5c8, 0x00c8c0c2, 0x00cdc5c7, 0x00d1c8ca, 0x00cdc5c9, 0x00d0c7cf, 0x00c6bbc7, 0x00b5abb9,
- 0x00b6b2bc, 0x00b0adb8, 0x00aba3aa, 0x00c7bec4, 0x00f1e7ee, 0x00f9f0f5, 0x00f4eaef, 0x00f0e8ec, 0x00f1ebf5, 0x00f8f4fd, 0x00e6dce4, 0x00cfb5b7, 0x009e9254, 0x00a29474, 0x0086757b, 0x00604a80,
- 0x00897a96, 0x00ada4ae, 0x00a9a1aa, 0x00aba3b5, 0x00ada4b0, 0x00aca3ae, 0x00b0a5b4, 0x00aea5b5, 0x00afa4b2, 0x00aea6b0, 0x00aca2ad, 0x00a8a0a9, 0x00a9a0a9, 0x00a49ba3, 0x00c6bbc3, 0x00f5eef2,
- 0x00fffbfc, 0x00f7fafa, 0x00fafcfc, 0x00fafffd, 0x00cfcecd, 0x00655d5d, 0x00231212, 0x00412d2d, 0x00857672, 0x00afa69f, 0x00c9c0b9, 0x00c9bab1, 0x00a19690, 0x00685a59, 0x002e1d23, 0x0027151d,
- 0x00241218, 0x00221210, 0x002a1811, 0x00352515, 0x004c3d2b, 0x005d4834, 0x00655348, 0x00646776, 0x003f6ead, 0x002467b9, 0x001f6bcc, 0x001968ce, 0x002d6fca, 0x003370bf, 0x00447bc1, 0x0088bcef,
- 0x00a5bbd1, 0x004259a7, 0x001d38ae, 0x00183fd2, 0x002160d0, 0x002874cf, 0x003685df, 0x003b87f1, 0x004083fc, 0x004688f8, 0x005091fb, 0x00539df9, 0x00569bf9, 0x005190e8, 0x005892e2, 0x006497dd,
- 0x006f9ddf, 0x007fabec, 0x0081a9f0, 0x00648ee0, 0x005681d5, 0x005485de, 0x00548ae4, 0x00558be4, 0x005083de, 0x004f81dc, 0x005083df, 0x004d81dd, 0x004780de, 0x004e86e5, 0x004b85e6, 0x004481e2,
- 0x005984df, 0x005b8ce7, 0x00548ce2, 0x004f8ce4, 0x004a91df, 0x00468ad7, 0x00518ed0, 0x00548cc8, 0x005f8bbd, 0x00739bc8, 0x008aa6c2, 0x00889894, 0x0092a09c, 0x00a3aba8, 0x00d8d8d7, 0x00fbf9f9,
- 0x00fffdff, 0x00fefcf9, 0x00fefcf9, 0x00fefdf7, 0x00c4beb8, 0x0074615c, 0x005c3f3f, 0x005c3f3f, 0x00583635, 0x005b3a37, 0x0056332f, 0x005e3a35, 0x0067453a, 0x0069483d, 0x006e4c3f, 0x00705040,
- 0x00755340, 0x007a5644, 0x007b5642, 0x007b563f, 0x0074523a, 0x00715038, 0x006a4c35, 0x00684c38, 0x005f4737, 0x004c3927, 0x0039291b, 0x002f271e, 0x0022211c, 0x001a1d1a, 0x00121713, 0x000c0f0b,
- 0x000e0906, 0x000c060a, 0x000f0d1d, 0x00556077, 0x008ea1c8, 0x006176af, 0x00687cbb, 0x00718ac5, 0x005678ab, 0x003f64a1, 0x003b65ad, 0x003560b6, 0x001e4eb0, 0x001b4fb2, 0x002e64c5, 0x00295ebe,
- 0x002f5cbe, 0x003663c3, 0x003867c4, 0x003768c0, 0x003b6dc1, 0x004073c5, 0x004075c7, 0x003f73c5, 0x003c72c6, 0x003d74c8, 0x004178cd, 0x00417ace, 0x00457ed0, 0x00457ed2, 0x00437ad0, 0x004178cc,
- 0x004476ce, 0x004379cc, 0x004175c8, 0x004172c8, 0x003f72c5, 0x003d70ba, 0x003b6fb9, 0x003368bc, 0x003066bf, 0x003661a8, 0x006985bd, 0x00b8c8e5, 0x00dee8f6, 0x008da0c4, 0x0039578b, 0x003d65ad,
- 0x004267b1, 0x00355895, 0x004b6b99, 0x00728db4, 0x009fbce5, 0x009dbef1, 0x005b7cb3, 0x003a5890, 0x00667aa2, 0x008e9bb7, 0x004a5775, 0x0033447a, 0x00435073, 0x001a273b, 0x0019232d, 0x0013181e,
- 0x0014131c, 0x0012151d, 0x00151720, 0x00171c20, 0x001a221e, 0x0024221e, 0x00362b26, 0x00473730, 0x005c4034, 0x00664736, 0x00734d3a, 0x00775339, 0x007a553b, 0x0079593d, 0x00775939, 0x00755a3c,
- 0x00685948, 0x00665947, 0x00635645, 0x005d5240, 0x0057503d, 0x00534e3c, 0x004b4836, 0x00444332, 0x00414534, 0x00424532, 0x00404233, 0x003c4035, 0x00373b33, 0x00333932, 0x002f3631, 0x002e3431,
- 0x002a2d30, 0x001d1e21, 0x005b595e, 0x00d3ced3, 0x00fbf9fc, 0x00fdfdfe, 0x00fcfefe, 0x00fefeff, 0x00dfe1e2, 0x00777c87, 0x00090c25, 0x001a1d4a, 0x0031407c, 0x00364b8c, 0x00223b7c, 0x0024417e,
- 0x00323649, 0x000d0f1b, 0x00040607, 0x00050604, 0x00080903, 0x00060605, 0x00061313, 0x002d4454, 0x004d749e, 0x003f6da0, 0x00586a8d, 0x00c29990, 0x00f6e5e4, 0x00e4e2e0, 0x00dee5e8, 0x00e4edee,
- 0x00e8e4e7, 0x00eadfe0, 0x00ebdddf, 0x00e9dddf, 0x00dadede, 0x00d7ddd9, 0x00d4dadb, 0x00d0d5de, 0x00ced4df, 0x00cdd5df, 0x00ccd5d9, 0x00cad7d3, 0x00d3deda, 0x00d9e3e6, 0x00dee3ee, 0x00dce0f3,
- 0x00e9dfda, 0x00ebe2dc, 0x00e9e2dd, 0x00e4dfdc, 0x00dcd8d6, 0x00dfdcda, 0x00e1dfdc, 0x00e2e0de, 0x00e0dede, 0x00e0dddf, 0x00e0d7d7, 0x00decfc9, 0x00dac9c4, 0x00dac9c5, 0x00d9cac6, 0x00d8cbc5,
- 0x00d3c8c1, 0x00cac1bc, 0x00b8aea5, 0x00aea79e, 0x00c0b8ae, 0x00c8c4c1, 0x00afacaa, 0x009a9997, 0x00999794, 0x00a4a19f, 0x00bbb9b8, 0x00dcdbd9, 0x00fefdfb, 0x00fcfcf9, 0x00fefcfa, 0x00fefafa,
- 0x00fafafe, 0x00a2adbf, 0x00132a47, 0x00183f6a, 0x002864a3, 0x00478cd5, 0x00468fdf, 0x003c85de, 0x003b81d9, 0x003f83da, 0x00468be4, 0x00428de6, 0x004488db, 0x004484d4, 0x00417fd2, 0x003e7fd7,
- 0x003880df, 0x003380de, 0x003a81e3, 0x003e82db, 0x00447ace, 0x005583b2, 0x009ab0c8, 0x00bdb2c2, 0x00ed9ba0, 0x00f18c98, 0x00f5879c, 0x00f595a0, 0x00d9b3a8, 0x00acbc9b, 0x0099cc9e, 0x0092e6aa,
- 0x00cae0c5, 0x00ccd7d1, 0x00c8cadf, 0x00c6c5f3, 0x006880c6, 0x002b5ca2, 0x002867b2, 0x001c68b1, 0x001d56ad, 0x002653b1, 0x00295ab8, 0x00256cbf, 0x003264bf, 0x002655ae, 0x001e47a2, 0x001b449e,
- 0x00194aa2, 0x00255aaf, 0x002a5fb3, 0x002e5fb4, 0x002b54ac, 0x002959b6, 0x002e64c0, 0x00316ac6, 0x002f67c1, 0x002861ba, 0x002660b7, 0x002862b8, 0x002863b8, 0x002661b5, 0x002662b5, 0x002865b7,
- 0x002b67c3, 0x002a68c4, 0x002e6bc6, 0x002663bd, 0x002461bd, 0x002c69c4, 0x00316dc9, 0x002a68c4, 0x002764bd, 0x002967c2, 0x002a63bf, 0x002962bc, 0x00316ac4, 0x002f6cc6, 0x002f6fc9, 0x003473d0,
- 0x003071c8, 0x002d6bc1, 0x002564b7, 0x00225dae, 0x004179cb, 0x00799bc6, 0x004a5f75, 0x00091a2e, 0x00141e2a, 0x001a1f28, 0x001f1f26, 0x006f6f72, 0x00fcfbfa, 0x00fbfcf9, 0x00fcfdfe, 0x00fcfcff,
- 0x00f6e0d4, 0x00d3af9f, 0x00b48c79, 0x00b98b73, 0x00b47961, 0x00b26a54, 0x00b05d47, 0x00ae4d3b, 0x00b13c32, 0x00ab3328, 0x00a22b1d, 0x009a2b17, 0x00a03e26, 0x00a34b33, 0x00a85a42, 0x00a46246,
- 0x0098664d, 0x00946a4f, 0x0089634b, 0x007f5a44, 0x00755943, 0x00777380, 0x0093a0c5, 0x00a4b7e1, 0x008bafee, 0x0075a2e9, 0x006097e8, 0x005894eb, 0x00528fe8, 0x004c87dd, 0x004c86d6, 0x004c86d4,
- 0x004d83ec, 0x00477de1, 0x004c82e1, 0x00497fd5, 0x004e7dc3, 0x005f86bb, 0x003a5679, 0x00222f43, 0x00322d29, 0x00312518, 0x00271d0d, 0x001e1e11, 0x001b1910, 0x0016160e, 0x00151613, 0x00171818,
- 0x00291e1c, 0x003a261f, 0x00755b4c, 0x008f6a55, 0x008f5f43, 0x008c6339, 0x00a57f51, 0x00c9a377, 0x00eaba8e, 0x00f1be8b, 0x00f4bf86, 0x00f2bf86, 0x00e3c5a3, 0x00bfb7b8, 0x008491b0, 0x006d8cc7,
- 0x00809edc, 0x0092a6d2, 0x00d3daf4, 0x00f6eef6, 0x00feede7, 0x00fbece7, 0x00efece7, 0x00e8f0ec, 0x00e8f0f8, 0x00e7f1f7, 0x00ebeff6, 0x00eeebf3, 0x00ecebf0, 0x00ecebf1, 0x00efeef4, 0x00f2f2f5,
- 0x00f2f0f6, 0x00f1f1f6, 0x00f2f1f7, 0x00f3f0f7, 0x00f2f1f7, 0x00eff2f8, 0x00edf2f9, 0x00edf2f9, 0x00ecf2f7, 0x00ebf4f7, 0x00eef4f8, 0x00eff3f6, 0x00f0f3f5, 0x00f1f2f4, 0x00f0f1f3, 0x00edf0f0,
- 0x00eceefa, 0x00edeffa, 0x00d9dbe1, 0x00e2e2e5, 0x00eceaeb, 0x00ede8e6, 0x00e6deda, 0x00b9afab, 0x00625a50, 0x003f352a, 0x00423125, 0x004d3626, 0x004c3320, 0x00452e1c, 0x003e291a, 0x003b2719,
- 0x00362118, 0x00311f16, 0x002b1710, 0x0024110a, 0x001e0c07, 0x00160c09, 0x00100a09, 0x000e0807, 0x00130b07, 0x00180f0b, 0x001e140e, 0x00241911, 0x002a1c16, 0x002e2019, 0x007a6b62, 0x00e7ddd2,
- 0x00feffff, 0x00fdfbf9, 0x00fffdfb, 0x00fffcf9, 0x00ced3dd, 0x00657590, 0x00425f8b, 0x00406aa6, 0x004e7dc7, 0x006293df, 0x0080adfc, 0x0082a4fa, 0x0069a8ff, 0x0072afff, 0x0071a0f0, 0x00758ecb,
- 0x006b89cc, 0x005990e6, 0x005393f3, 0x005b8eee, 0x00767eb9, 0x006681bd, 0x006088c6, 0x006489c7, 0x00749dd2, 0x0075abd9, 0x0064a4cd, 0x00529cc1, 0x004d98bc, 0x005998c1, 0x005e92c1, 0x00618cbe,
- 0x00538bb9, 0x005188b6, 0x004e86b2, 0x004e85b1, 0x004f85b1, 0x004d84b1, 0x004a83b1, 0x004a83b2, 0x004880ad, 0x004981ac, 0x004880ad, 0x004782b0, 0x00457fae, 0x004279a9, 0x0039709f, 0x00316c96,
- 0x00356796, 0x00316490, 0x0030618a, 0x0032638c, 0x0035688f, 0x0035699d, 0x00376ba0, 0x003b729d, 0x00417390, 0x00427493, 0x00457398, 0x00426e9a, 0x003b6a9b, 0x003b6c9b, 0x003a6d97, 0x003b7194,
- 0x00978f7b, 0x00bab7a1, 0x00b4b4a2, 0x00babdb1, 0x009ca7b2, 0x00646f96, 0x00434c8c, 0x002f3a8a, 0x00242e8d, 0x00323c99, 0x002d368b, 0x00272f7a, 0x001b2870, 0x00263a81, 0x003b579d, 0x0037589d,
- 0x00375aa1, 0x004f72b8, 0x005475bd, 0x004867b2, 0x004562af, 0x004a68b1, 0x00425fa7, 0x0035509c, 0x0029468c, 0x0028458c, 0x002a468f, 0x002e4891, 0x00445ca5, 0x005a70bb, 0x005b70bd, 0x004257a6,
- 0x00354e94, 0x007787b7, 0x00e9f2ff, 0x00fcfcfc, 0x00fffdf6, 0x00fcfdf6, 0x00fdfefd, 0x00d3d5d8, 0x00494c49, 0x0017160a, 0x00272412, 0x002e2d19, 0x0034311e, 0x0034311e, 0x0033311e, 0x0033311e,
- 0x00363421, 0x00363420, 0x0035351f, 0x00353520, 0x00383422, 0x00393521, 0x003b3720, 0x003c3822, 0x00403b26, 0x003d3a24, 0x003b3821, 0x003a371f, 0x003a3621, 0x003a3621, 0x0038341e, 0x0035321c,
- 0x00363216, 0x0032311a, 0x002a2d23, 0x00333b46, 0x00415f85, 0x003e6ca2, 0x003b74b7, 0x004083c8, 0x00508fc5, 0x005691bf, 0x006797bc, 0x008eb6cd, 0x00c7dbe7, 0x00b6b5b9, 0x008e7d7a, 0x0091776f,
- 0x00ccbeb8, 0x00e2e6eb, 0x00c0dff0, 0x006faecc, 0x004aa4d3, 0x005ba1d4, 0x00639fd1, 0x00629fd2, 0x00629cce, 0x00619bcc, 0x00629bc9, 0x00639cc6, 0x00649cc6, 0x00669dc5, 0x00699fc6, 0x006aa0c8,
- 0x0061a5ca, 0x005c9dcc, 0x0065a1d9, 0x00679cdc, 0x007a9bc9, 0x008fa0b9, 0x00969d9f, 0x00717364, 0x002e3121, 0x002f392b, 0x00292e1e, 0x00302e1b, 0x00312e1a, 0x00302e1b, 0x0035311d, 0x00373221,
- 0x00353520, 0x00363420, 0x00353521, 0x00343521, 0x00363421, 0x00363522, 0x00333521, 0x0030311e, 0x0030301b, 0x002e2f19, 0x002d2e19, 0x002b2c1a, 0x002c2d1f, 0x0025251c, 0x00605f59, 0x00cccac6,
- 0x00f7ffff, 0x00fafaff, 0x00fff6fb, 0x00fbfaf7, 0x00f0f9ea, 0x00d7ccbf, 0x00b48a88, 0x00c0707b, 0x00a65b6b, 0x00907575, 0x00d3cbcb, 0x00ede5f2, 0x00e3d9e4, 0x00d2cbd6, 0x00dfd7e2, 0x00e2dbe6,
- 0x00e5e0eb, 0x00eae5ef, 0x00f7f1fa, 0x00ede6f0, 0x00d4ccd8, 0x00cdc3cd, 0x00ccc0c8, 0x00cbc0c9, 0x00c8c0c7, 0x00bbb4bb, 0x00a9a4aa, 0x009b969d, 0x00a496a0, 0x00b4a4af, 0x00a897a2, 0x009c8894,
- 0x009f95a1, 0x00a59ca8, 0x009d98a2, 0x009a939f, 0x009b92a1, 0x009d91a0, 0x00988e9a, 0x00978c98, 0x00948893, 0x00a1979f, 0x00c3b8c2, 0x00d6cad3, 0x00cfc2ce, 0x00bbb0b9, 0x00c1b5bf, 0x00cfc3cb,
- 0x00d9cad5, 0x00cdc2c9, 0x00dcd2da, 0x00f5e9f3, 0x00ddd0d9, 0x00c7bac7, 0x00d0c5d1, 0x00d6ced6, 0x00c8c0c3, 0x00d1cbcc, 0x00cdc6c7, 0x00d1cbcc, 0x00d0cacf, 0x00cfc6d1, 0x00d7ccdc, 0x00c8bdcf,
- 0x00b9b5ca, 0x00bab7c5, 0x00b8b4bf, 0x00c5bcca, 0x00efe7f1, 0x00f9f1fa, 0x00f4f1fe, 0x00ebeaf8, 0x00e2e2f2, 0x00e8edfe, 0x00e6e2f6, 0x00e6cedf, 0x00b2a863, 0x009e915f, 0x00917e6f, 0x006b4e74,
- 0x00876f92, 0x00b1a0b2, 0x00aca2aa, 0x00aaa4b2, 0x00a8a9a7, 0x00aea7b2, 0x00b0a5b4, 0x00b0a7b3, 0x00ada4b1, 0x00aca3ae, 0x00aca1ac, 0x00a9a1aa, 0x00a59ea6, 0x00a59fa6, 0x00c9c1c9, 0x00f5f0f6,
- 0x00fdfcfe, 0x00f9fbfc, 0x00f8fbfc, 0x00fafffd, 0x00babcb9, 0x00564e4e, 0x00463738, 0x007c6667, 0x00beacac, 0x00cec3bf, 0x00d9ccc5, 0x00dec9bf, 0x00c9b3ae, 0x0098807f, 0x004a3237, 0x002e1821,
- 0x003b252d, 0x004f393a, 0x0057443a, 0x0053422f, 0x0053432c, 0x00694528, 0x00785844, 0x006f676c, 0x003e67a3, 0x002560b4, 0x001460c2, 0x001160c9, 0x00236bc9, 0x002e6dbd, 0x003e79c1, 0x0080b5ee,
- 0x007aaca8, 0x001b457c, 0x00203fac, 0x002641d3, 0x003b5cd2, 0x004b6cd4, 0x005073d2, 0x005273db, 0x00557acd, 0x005986ba, 0x00638cba, 0x00668bca, 0x005f87cf, 0x005a7fd6, 0x005782df, 0x005482e5,
- 0x004d7fe9, 0x003e74d8, 0x003d75d3, 0x003b77ca, 0x00397bc6, 0x004578cc, 0x004879d1, 0x00487fd8, 0x004585e3, 0x004289e4, 0x00468de9, 0x004988e6, 0x005788de, 0x00678ade, 0x007a93e2, 0x008597e3,
- 0x0085a5f3, 0x0089b0f7, 0x0082aff8, 0x007db3f5, 0x007dbff7, 0x0081c5f8, 0x0087c8fb, 0x0083c1f5, 0x0087b6e8, 0x0084afdc, 0x0084a0bf, 0x0096a49d, 0x00c6cec7, 0x00d2d7d1, 0x00f1efeb, 0x00fffcf9,
- 0x00fffcfd, 0x00fef9f7, 0x00fffaf8, 0x00fdf7f1, 0x00b9aeab, 0x00624e49, 0x00533835, 0x00553834, 0x004f2f30, 0x00523133, 0x004e2b2c, 0x00542f2e, 0x00603a34, 0x00633e35, 0x00674336, 0x006b4938,
- 0x0072513b, 0x00775440, 0x00785540, 0x0077543d, 0x00704d37, 0x00694730, 0x00785a43, 0x00987d67, 0x00a89181, 0x0083705e, 0x004e4032, 0x002d2821, 0x0013140f, 0x00141814, 0x00181e18, 0x000d130b,
- 0x000d0903, 0x00090505, 0x000f0d17, 0x00545774, 0x00aabbe5, 0x008d97d2, 0x00626caa, 0x005769a0, 0x005a7cb1, 0x004b72b2, 0x003763b1, 0x002f5bb6, 0x001e4cb2, 0x002351af, 0x003764c3, 0x003059b1,
- 0x00305fbe, 0x003765c4, 0x003a69c6, 0x00396ac3, 0x003e6fc5, 0x004174c7, 0x003e75c7, 0x003c73c4, 0x003d73c7, 0x003f76cb, 0x00447bd2, 0x00427bd0, 0x00467ed2, 0x00447cd0, 0x004279cf, 0x003f76cd,
- 0x004476cb, 0x004378ce, 0x004074c9, 0x003d71c6, 0x003f72c5, 0x004073ba, 0x003c71b6, 0x002e69ba, 0x00356dcd, 0x003560b3, 0x00506bae, 0x0095a1ca, 0x00e7ecff, 0x00adbddf, 0x00486597, 0x003460a0,
- 0x004174c8, 0x003d6aaf, 0x002c528a, 0x002d4d7a, 0x005877a2, 0x006f8dbe, 0x004d6b9f, 0x00304f82, 0x007989ac, 0x00a6b0c8, 0x003f4c6a, 0x00283b75, 0x004c5a83, 0x00212d46, 0x0019222e, 0x00151b1f,
- 0x0014161b, 0x0015161d, 0x00181a20, 0x001a2022, 0x001f2621, 0x00282622, 0x0039302a, 0x004e3c35, 0x0062453a, 0x006c4839, 0x0078503b, 0x007d5237, 0x007b5237, 0x00795336, 0x00745433, 0x00725335,
- 0x00685842, 0x00655740, 0x00655742, 0x00605540, 0x005a523e, 0x0058523e, 0x0054513d, 0x004f4e39, 0x004c503c, 0x004a4e39, 0x00474d3b, 0x00444b3f, 0x0040453c, 0x003d423b, 0x00393f3a, 0x00383d3b,
- 0x00313133, 0x00232327, 0x006f6c6f, 0x00e4dfe2, 0x00fefafe, 0x00fbfaff, 0x00fbfbfc, 0x00fffffc, 0x00d0d1d6, 0x00727783, 0x00313550, 0x004c4f7a, 0x006a77af, 0x00798ac4, 0x006a7db9, 0x007089bf,
- 0x0087839d, 0x00656274, 0x00625d62, 0x00605c57, 0x00625f57, 0x0063605c, 0x005d666a, 0x0078889a, 0x0087a6d1, 0x007ca1d6, 0x009ea8c5, 0x00ecc4ba, 0x00fbebe6, 0x00eaebee, 0x00e2ecef, 0x00e7f2f7,
- 0x00f7f0fa, 0x00f7edf1, 0x00f7eaef, 0x00f4ecee, 0x00e7eced, 0x00eae9e2, 0x00f0e5e0, 0x00ede1df, 0x00ebe2e3, 0x00ebe3df, 0x00ede5db, 0x00e9e4d4, 0x00efebd9, 0x00eeeae2, 0x00f1ecee, 0x00ece7f0,
- 0x00f8e5f5, 0x00f7e6f3, 0x00f8e9f4, 0x00f4e9f0, 0x00efe7e9, 0x00ece6e2, 0x00ede9e2, 0x00ede9e2, 0x00f0e9dc, 0x00eeeadd, 0x00e8eae2, 0x00dee6ec, 0x00d7dfe3, 0x00d5dee4, 0x00d7e0e4, 0x00d9e2e5,
- 0x00d9e1e3, 0x00d4e0e0, 0x00d2dcdd, 0x00c6cfd0, 0x00c9d0d2, 0x00d9dbdb, 0x00d2cfcd, 0x00c1c0be, 0x00b7b3b1, 0x00bebbb9, 0x00d4d3d1, 0x00edeceb, 0x00fffcfc, 0x00fdfbfb, 0x00fefdfe, 0x00faf9fa,
- 0x00f9f8fc, 0x00a4adc0, 0x0018304e, 0x00193d6a, 0x002462a2, 0x00468ad4, 0x00458ede, 0x003d86de, 0x00387ed6, 0x003f80d9, 0x004586e1, 0x00438ce5, 0x00488cdf, 0x004485d6, 0x003c7ccf, 0x00377cd1,
- 0x00337ce0, 0x00307ce4, 0x002f7fe4, 0x00367ddf, 0x00397ad5, 0x00357aeb, 0x003c7ee2, 0x006a9ce0, 0x009fafd5, 0x00b6bbdf, 0x00b8b6d7, 0x00babcd5, 0x00c5d7cd, 0x00c5dfd0, 0x00afd0c8, 0x00bed9e2,
- 0x00c3d9f9, 0x00c9d9fd, 0x00c7d6fd, 0x0091a6dd, 0x003e6ea8, 0x00296da6, 0x00206da6, 0x001b70ab, 0x002455b3, 0x002a48b8, 0x003558c5, 0x002a6dbf, 0x002c63b5, 0x002253a8, 0x00224ba4, 0x0017439b,
- 0x001a4ba4, 0x00285cb3, 0x002b5fb6, 0x002859b0, 0x002952aa, 0x002457b1, 0x002a65be, 0x002e6cc5, 0x002e67c2, 0x002a63bc, 0x00275fb8, 0x002861b8, 0x002862b8, 0x002761b6, 0x002962b7, 0x002c65ba,
- 0x002965c1, 0x002a68c3, 0x002f6dc5, 0x002865be, 0x002360bb, 0x002965c1, 0x00326ec8, 0x002b69c3, 0x002765c0, 0x002967c3, 0x002965bf, 0x002965bb, 0x002d6abf, 0x002f6bc0, 0x002f6ac0, 0x00386fc6,
- 0x00346dc6, 0x002b66c0, 0x001d59b4, 0x001b5ab7, 0x002f70cc, 0x00628fc5, 0x007993b3, 0x00293f5b, 0x000b1a2a, 0x00141b27, 0x001d1f26, 0x00757578, 0x00fdfcfd, 0x00fefdfd, 0x00fdfefd, 0x00fdfefd,
- 0x00f3e8e2, 0x00d0b6a8, 0x00b8957e, 0x00c19276, 0x00bc8465, 0x00b6785c, 0x00af6f53, 0x00ac634b, 0x00af5642, 0x00a94b36, 0x00a23c22, 0x009e3219, 0x00993b27, 0x00994b37, 0x00a05a43, 0x00a26047,
- 0x009e6341, 0x00986346, 0x008b6251, 0x006e5555, 0x00777389, 0x008aa4c9, 0x008bb5e5, 0x0082afe9, 0x0075a8f2, 0x006d9feb, 0x005f93df, 0x00588cd6, 0x005a8ad8, 0x005584d6, 0x004c83d7, 0x004984db,
- 0x005083d4, 0x004a80d3, 0x004a80d8, 0x00487cd3, 0x00517ec6, 0x005d85b6, 0x0031506e, 0x001b2a39, 0x00282427, 0x00271c1a, 0x001f1a17, 0x00131b18, 0x00171614, 0x00130e09, 0x00100b08, 0x00181211,
- 0x001c1715, 0x00261814, 0x0058443b, 0x009b7c6c, 0x00ba8c72, 0x00b38a59, 0x00bc9457, 0x00d4ab74, 0x00eab984, 0x00eeba81, 0x00f7c185, 0x00f2ba81, 0x00e4bb92, 0x00c9b2a3, 0x00aaa1a3, 0x009ba0b6,
- 0x00aeb6c9, 0x00bfc1cf, 0x00dddde6, 0x00f1edf4, 0x00f7f2f1, 0x00eeebec, 0x00ebeaed, 0x00eaeeee, 0x00eeeffa, 0x00edeef6, 0x00ebebf3, 0x00eaeaf0, 0x00ececf0, 0x00ececf3, 0x00eeedf6, 0x00f3f1f7,
- 0x00f3effa, 0x00f2eff9, 0x00f0eff7, 0x00efeef6, 0x00f0eef6, 0x00f0f0f5, 0x00f0f1f4, 0x00eff2f7, 0x00f3f1fb, 0x00eef0f6, 0x00eff0f6, 0x00f1f1f7, 0x00f1f1f6, 0x00f2f0f5, 0x00f1eff4, 0x00eef0f1,
- 0x00efedf5, 0x00f0eef7, 0x00e6e5eb, 0x00e4e4e7, 0x00eeedf0, 0x00e8e8e8, 0x00e9eae7, 0x00e7e7e5, 0x00b8b5b3, 0x00746f6e, 0x00413731, 0x00403024, 0x004c362b, 0x004d352a, 0x003f2618, 0x00412519,
- 0x003f2115, 0x00371c15, 0x002e1612, 0x00291210, 0x00230e0e, 0x001a0c0a, 0x00150903, 0x00160901, 0x001c0d07, 0x0024110a, 0x002d170d, 0x0030180d, 0x00391a15, 0x00381d19, 0x007a665f, 0x00e4d6ce,
- 0x00fcfdfe, 0x00fbf9f9, 0x00fbfcfc, 0x00feffff, 0x00d4dae7, 0x0076849b, 0x00364e70, 0x00456699, 0x00648bd7, 0x0072a3f2, 0x0076a7f5, 0x0070a1ef, 0x0073abfd, 0x0077abfa, 0x006b99ed, 0x00628dd8,
- 0x00648dd7, 0x006794e3, 0x006396e3, 0x005b8ad4, 0x006685c8, 0x006484bc, 0x00648cbf, 0x006a97ca, 0x0073aadf, 0x006aacdf, 0x00589fcf, 0x004d9cc6, 0x004a98c0, 0x005294c0, 0x00548ebb, 0x00588cb8,
- 0x00518ab8, 0x004f88b5, 0x004c88b4, 0x004b89b4, 0x004d87b4, 0x004a85b2, 0x004582af, 0x004480ae, 0x004680b0, 0x004780af, 0x003c81af, 0x003482af, 0x00387cac, 0x003875a5, 0x00316c9a, 0x00316690,
- 0x0034618a, 0x00336087, 0x00305e85, 0x00306186, 0x00346788, 0x0034678f, 0x00356895, 0x003b6e99, 0x00416f9c, 0x0040709b, 0x00416f98, 0x003c6d96, 0x003c6c97, 0x003a6c95, 0x003a6b92, 0x003b7093,
- 0x00999697, 0x00b3b5bb, 0x008b96a1, 0x008599a9, 0x008eabcc, 0x007696c6, 0x003f619b, 0x0018387e, 0x001e3886, 0x00374da0, 0x00273989, 0x00203280, 0x001b2d7a, 0x00223787, 0x003f5aa6, 0x004262ad,
- 0x004463ad, 0x005374ba, 0x005677bd, 0x005573bd, 0x006280c6, 0x006f90c9, 0x006284bb, 0x004b6dac, 0x002e4d9c, 0x00274996, 0x0031579f, 0x00446baf, 0x006084c8, 0x006c8cd4, 0x00607dcb, 0x003c58ac,
- 0x00294481, 0x00717fad, 0x00e9f2fd, 0x00fafcfd, 0x00fffdfb, 0x00f9fdf7, 0x00f7fffb, 0x00cfd5d9, 0x004d4a4a, 0x001c130b, 0x00282212, 0x002c2b18, 0x0034311d, 0x0034311d, 0x0032311d, 0x0037321f,
- 0x00353121, 0x00363120, 0x0035331e, 0x0034341f, 0x00383322, 0x00393621, 0x0039391f, 0x003b3920, 0x00403c24, 0x003d3b22, 0x003a3a1d, 0x00373a1b, 0x003b361f, 0x003c3621, 0x003c331f, 0x003b301d,
- 0x00412a10, 0x00352518, 0x002e2a2f, 0x0036415d, 0x00365e95, 0x00336eae, 0x00397cc2, 0x00428bd1, 0x005d8ed2, 0x006890cd, 0x006f94c1, 0x008cb6d0, 0x00bed6ea, 0x00b9c6d1, 0x00c6cbce, 0x00d1d0d0,
- 0x00c8cecd, 0x00d0e1e9, 0x00b7d2e4, 0x0078a6c5, 0x005997c1, 0x00669ecb, 0x006ea4ce, 0x00679fcb, 0x006a9ec8, 0x006ba0cb, 0x0068a0c8, 0x00649ec3, 0x00649ec5, 0x0066a1c7, 0x0068a2c7, 0x0069a2ca,
- 0x0066a7c4, 0x005ca4c6, 0x005ca9d2, 0x005aace2, 0x0059a9dc, 0x0063abce, 0x0078afc1, 0x00587f82, 0x002a3922, 0x00333715, 0x0030300f, 0x002f301c, 0x00302f1d, 0x002f2e1a, 0x0030311c, 0x0033331f,
- 0x00353422, 0x00373322, 0x00363522, 0x00353622, 0x00373521, 0x00363621, 0x0032351f, 0x002e311a, 0x00312e1e, 0x002f2e1d, 0x002d2d1b, 0x002a2a19, 0x002d2b1c, 0x00272316, 0x00555044, 0x00bbb6aa,
- 0x00fff9fd, 0x00fbfafd, 0x00f9fbfb, 0x00f6fcfb, 0x00fbf1e5, 0x00dca999, 0x009b4534, 0x00a12f1f, 0x00a22d22, 0x00a84d3c, 0x00ecbbb0, 0x00edeaef, 0x00e7deea, 0x00d4ced7, 0x00d9d5db, 0x00e5dfeb,
- 0x00e4deea, 0x00e9e4ee, 0x00f5eff8, 0x00ede6f0, 0x00d0c8d4, 0x00c9bfca, 0x00cbbfc7, 0x00ccc2ca, 0x00ccc0ca, 0x00c4b9c1, 0x00b4adb3, 0x00a7a1a6, 0x00aa9ea7, 0x00b2a4af, 0x00a598a3, 0x00a2939e,
- 0x00a195a1, 0x00a69aa8, 0x00a399a3, 0x009c929a, 0x009e919e, 0x009d939f, 0x00999199, 0x00968c97, 0x00968897, 0x00a898a7, 0x00c2b9ca, 0x00cfcfea, 0x00d0c8d0, 0x00c2b0b9, 0x00c7b1bc, 0x00c3b0c4,
- 0x00aea7a9, 0x00abad98, 0x00c6c8af, 0x00e9e5d7, 0x00e8d7f5, 0x00d3c6d8, 0x00cbc2ce, 0x00cfc8d3, 0x00d2c9d4, 0x00d1c9d0, 0x00c9c3c7, 0x00cbc7ca, 0x00ccc8cd, 0x00ccc7d1, 0x00d7d3e0, 0x00d1cbda,
- 0x00beb7c9, 0x00c1b6c4, 0x00c6b9bd, 0x00d1c5c7, 0x00f4e8f5, 0x00f3effb, 0x00ebeefb, 0x00d6d9f7, 0x00e5ddf7, 0x00f1e7f8, 0x00e7e2ea, 0x00e1e5de, 0x00cfb19b, 0x00aa8f62, 0x00928061, 0x0064607c,
- 0x006a699a, 0x00a59aab, 0x00b4a1ac, 0x00b597bc, 0x00aca8b3, 0x00aea5b0, 0x00aca5b0, 0x00afa6b2, 0x00aea6b0, 0x00b0a6b1, 0x00b1a8b1, 0x00b1acb1, 0x00afa9af, 0x00b2afb3, 0x00d7d4d8, 0x00f8f3fa,
- 0x00fdf9f4, 0x00fcfbfd, 0x00f7fcfe, 0x00f7fefe, 0x00b1aeb5, 0x005e4d54, 0x00785d5f, 0x00ac878b, 0x00dcc1ba, 0x00dfcfc1, 0x00e2d6c5, 0x00edd6c7, 0x00e4c1ba, 0x00ba8d87, 0x006d3f3b, 0x00512826,
- 0x006b504a, 0x0095807b, 0x009b9387, 0x008c887b, 0x00676554, 0x00625129, 0x006b5d38, 0x00676f5d, 0x003e65b1, 0x002457c1, 0x001558be, 0x00125daf, 0x002165b4, 0x002d67c1, 0x003971ce, 0x0076abed,
- 0x0080a1ce, 0x001f4391, 0x001941aa, 0x001844c4, 0x002e59d4, 0x003b62c7, 0x003e63bb, 0x004164b8, 0x00406eca, 0x003f76d6, 0x003e79d4, 0x004575cf, 0x004876d4, 0x004c76d5, 0x004972d1, 0x00436acc,
- 0x00345dc1, 0x002754b6, 0x002b5dbc, 0x002d62bf, 0x002c65c3, 0x003266bc, 0x00366bbd, 0x003770c5, 0x003e72cd, 0x003d75d1, 0x003f76d2, 0x004279d7, 0x00497bd8, 0x004f7cda, 0x005380dc, 0x005982e1,
- 0x00618bf4, 0x006c97f0, 0x00739eec, 0x0071a4e3, 0x006ba7f6, 0x006ba9f9, 0x006da4f9, 0x006c99f6, 0x00878cba, 0x008f868d, 0x009e8d76, 0x00ceb68e, 0x00e4c9b5, 0x00e5c9bf, 0x00f6e5e1, 0x00fef9f6,
- 0x00fdfdfa, 0x00fbfcf9, 0x00fbfcfa, 0x00fdf7fb, 0x00a997a8, 0x00503c35, 0x0049351f, 0x004f3426, 0x004b2d28, 0x004d2e2e, 0x00492c2a, 0x004b2f2b, 0x0050352e, 0x00543932, 0x005a4235, 0x00604739,
- 0x006c4c39, 0x006e4d3c, 0x0071513e, 0x0072523c, 0x006c4b34, 0x00644528, 0x008a6f4d, 0x00c5af8b, 0x00d6c199, 0x00c0af85, 0x00918865, 0x0061604a, 0x0039352d, 0x00251e1c, 0x00272621, 0x0016170c,
- 0x000f1004, 0x00090e08, 0x00050d15, 0x00293757, 0x007c8cd1, 0x00a4b3dc, 0x008b97be, 0x007687b2, 0x007988ca, 0x006378c6, 0x003c59b0, 0x002c53b1, 0x001a48ab, 0x002455b8, 0x002e66bf, 0x00265db5,
- 0x002a60bb, 0x003569c4, 0x00386dc7, 0x00376dc5, 0x003c70c6, 0x004076c9, 0x003f77ca, 0x003f75c8, 0x004278cf, 0x004379d2, 0x00437ad2, 0x00427bcf, 0x00447cd1, 0x00447dd1, 0x00427acd, 0x004078cb,
- 0x004476cd, 0x004476cc, 0x003f70c5, 0x003b6dbf, 0x004074c5, 0x003f74c8, 0x00376fc5, 0x00316bbf, 0x003d6dc5, 0x003c66b6, 0x003e65a6, 0x006c89c0, 0x00caddfd, 0x00c2d5f9, 0x0061729e, 0x00394f7b,
- 0x00305798, 0x00355a99, 0x002d5293, 0x00274a8a, 0x00274c89, 0x00254c88, 0x002b5088, 0x0028497e, 0x00788db9, 0x00a9bbe0, 0x00435d89, 0x0016377f, 0x003f598b, 0x002b3d5e, 0x00101b2f, 0x00151a26,
- 0x00181620, 0x001c1624, 0x001c1b25, 0x001d2326, 0x00242a28, 0x002c2d29, 0x0039382e, 0x004c4139, 0x00604536, 0x006d4b38, 0x00785339, 0x007a5537, 0x007a5338, 0x00765139, 0x00704f37, 0x006f4e3c,
- 0x0066553a, 0x0068573b, 0x0068583a, 0x00655736, 0x00695d39, 0x00655b36, 0x005f5731, 0x005e5731, 0x00605437, 0x005c5336, 0x00565334, 0x00515233, 0x00514f35, 0x00504d36, 0x004a4733, 0x00494534,
- 0x00413b31, 0x0037342b, 0x0085817c, 0x00e9e9e6, 0x00fefcfe, 0x00f8fafc, 0x00fdfcfd, 0x00fffdfe, 0x00cfcbcf, 0x00838387, 0x006f6f76, 0x009c9ba7, 0x00cbcddc, 0x00e3e7f5, 0x00e3e8f6, 0x00e6ecf7,
- 0x00f2eef8, 0x00e9e6eb, 0x00e9e8e8, 0x00e9e6e7, 0x00eae9e6, 0x00e8e5e7, 0x00e4e8eb, 0x00e7edf1, 0x00eef3ff, 0x00eaf2ff, 0x00eef2f8, 0x00fcf4f1, 0x00fff9f8, 0x00fbfbfd, 0x00f7fcfa, 0x00f7fbfc,
- 0x00fffcff, 0x00fffaff, 0x00fefafd, 0x00fbfafc, 0x00f7faf8, 0x00fafaf7, 0x00fbfaf5, 0x00fcf8f7, 0x00fffafb, 0x00fefbf9, 0x00fcf9f6, 0x00f9f9f2, 0x00fafaf1, 0x00fbfbf8, 0x00fbf9f9, 0x00faf8fa,
- 0x00fef9ff, 0x00fefafb, 0x00fdfbfa, 0x00fbfafa, 0x00fafaf9, 0x00f9faf7, 0x00f9faf6, 0x00f9fbf5, 0x00fcfbf9, 0x00fcfbf5, 0x00fafcf7, 0x00f4fcf9, 0x00f6faf9, 0x00f5f9f7, 0x00f7faf9, 0x00f8fbfa,
- 0x00f7f8fc, 0x00f9f6fa, 0x00f8f7f9, 0x00f7f5f7, 0x00f5f3f8, 0x00f8f7f2, 0x00f7f9ee, 0x00f8f7f1, 0x00f7f4f5, 0x00f5f4f4, 0x00f5faf7, 0x00f5fcf9, 0x00fafdfc, 0x00fafdfd, 0x00fafffd, 0x00f8fdfa,
- 0x00f1fbf8, 0x00a7a9bd, 0x00223053, 0x00194579, 0x001a69b2, 0x003d80d7, 0x004d8ae0, 0x004886da, 0x00367fd1, 0x003b7ed6, 0x003b80dc, 0x003789e4, 0x003e8ee6, 0x003b8ae2, 0x003381d9, 0x002f80d8,
- 0x003484e4, 0x003485e5, 0x003286e2, 0x002e7fdc, 0x002e7ad5, 0x002b7cdb, 0x002d7dda, 0x003980da, 0x004889dd, 0x00528cdc, 0x004d89cc, 0x00598bc6, 0x009ec2e1, 0x00d0e9f6, 0x00cddeea, 0x00d1dce5,
- 0x00c0dbf9, 0x00c2d8fe, 0x0096b0ef, 0x005c7acf, 0x003564c3, 0x00336dc9, 0x002467ba, 0x002269bb, 0x002461be, 0x002258bc, 0x00285ebe, 0x002366ba, 0x002862bd, 0x001952a9, 0x001e53a5, 0x00144699,
- 0x00164b9c, 0x00285eac, 0x002b5dad, 0x002858a8, 0x002954a4, 0x00275ab0, 0x002a61bd, 0x002e64c3, 0x003066c4, 0x002c62be, 0x00295eb9, 0x00265db6, 0x00265fb7, 0x002963ba, 0x002c65bc, 0x002d65bb,
- 0x002966c1, 0x002966c1, 0x002d6bc5, 0x002765be, 0x00235dba, 0x002963bf, 0x00346fc8, 0x002f6bc3, 0x00295fbd, 0x002f63c2, 0x002e65c1, 0x003065c0, 0x002e6cc4, 0x002c6fc6, 0x002970c6, 0x002c73c8,
- 0x00326dc9, 0x002961bd, 0x001b53ad, 0x002357b3, 0x002e69c5, 0x004579c6, 0x006f9ed8, 0x004a7499, 0x0011252c, 0x00081516, 0x001e241f, 0x00787a75, 0x00f9f7f9, 0x00fefbfe, 0x00fcfcfb, 0x00fefefa,
- 0x00eeede2, 0x00cdbcaa, 0x00bc9d83, 0x00c29676, 0x00c38d6a, 0x00be8665, 0x00b67d61, 0x00b0725c, 0x00a96443, 0x00a65a37, 0x00a84c32, 0x00ab3f29, 0x009d4433, 0x009c4f3f, 0x00a45d4b, 0x00a8624a,
- 0x00986037, 0x00936344, 0x00865d56, 0x00857381, 0x00909cc5, 0x008cafe0, 0x0085b0ef, 0x007babef, 0x00639fe4, 0x005d96de, 0x005e92dc, 0x006291d8, 0x00608ed6, 0x005a8ad7, 0x00568ade, 0x00528ae4,
- 0x00488ac9, 0x004985cd, 0x004e83d6, 0x004d80d8, 0x005a85cd, 0x006285b8, 0x00364d70, 0x00202c3b, 0x0023261c, 0x00231d15, 0x001e181a, 0x0011161b, 0x000f0d0f, 0x000c0602, 0x00110607, 0x00180d0f,
- 0x00101210, 0x00181611, 0x002c1c18, 0x00593f31, 0x00a68067, 0x00cea470, 0x00d9ab72, 0x00e3b783, 0x00e7be7d, 0x00e8b977, 0x00e9b677, 0x00eab378, 0x00daad83, 0x00ceaf99, 0x00d7c5c0, 0x00e2dee8,
- 0x00e4e5e4, 0x00e6e8e6, 0x00f0eff2, 0x00f5f3f8, 0x00f5f5f9, 0x00ededf3, 0x00eeebf5, 0x00eeebf5, 0x00e8eaf1, 0x00e8eaf1, 0x00ebeaf2, 0x00eceaf2, 0x00ecebf3, 0x00eeecf4, 0x00f2edf6, 0x00f4eff8,
- 0x00eeeff3, 0x00eeeef3, 0x00f0eef6, 0x00f0eef5, 0x00eeeef7, 0x00f0eff6, 0x00f3f0f7, 0x00f2f0f7, 0x00eeeff1, 0x00eff0f1, 0x00f2f1f6, 0x00f3f1f7, 0x00f2f0f4, 0x00f2f1f5, 0x00f3f2f9, 0x00f3f2f9,
- 0x00e9ecf0, 0x00ebeef3, 0x00eaebf0, 0x00e8e8ec, 0x00ebe9ec, 0x00f3f1f3, 0x00e8e5e8, 0x00ebe8eb, 0x00eaf0eb, 0x00c4cac5, 0x00868381, 0x00574841, 0x00432d29, 0x00493228, 0x00492c24, 0x004d2a23,
- 0x00391f0b, 0x00341a0d, 0x00301513, 0x002e1512, 0x00250e12, 0x00230d0a, 0x00210d0a, 0x001f0f0b, 0x001a1100, 0x00231603, 0x00331a0e, 0x003c1911, 0x00431c15, 0x003e1d17, 0x007a5f5c, 0x00deccc8,
- 0x00f6fdf8, 0x00f4fcf4, 0x00fefeff, 0x00ffffff, 0x00d8dfea, 0x007a889c, 0x003c4f74, 0x005573a4, 0x006491d2, 0x006a9ee8, 0x006c9fee, 0x0072a2ec, 0x007eacfa, 0x0077a4f4, 0x006c96e9, 0x006994e5,
- 0x006a9ae1, 0x006998dd, 0x00618bd2, 0x00567fc4, 0x00648bcb, 0x00769acf, 0x007ea2d4, 0x007aa4d7, 0x0069a9d1, 0x005fa9ce, 0x0056a2cb, 0x004b98c4, 0x004f95c0, 0x005391bd, 0x00578cba, 0x005887b6,
- 0x004484ad, 0x004584ad, 0x004986b1, 0x004884b0, 0x004983b0, 0x004780ae, 0x004881af, 0x00477fae, 0x003b7ea4, 0x003b7ca1, 0x003c7da9, 0x003881ae, 0x00387aa6, 0x0034719c, 0x00326494, 0x00325f8e,
- 0x002a587d, 0x0028597e, 0x002c5984, 0x002d5d85, 0x00306289, 0x0032638d, 0x00396595, 0x003c6b97, 0x00386993, 0x00396a93, 0x003d6c96, 0x003c6b94, 0x003d6e97, 0x003a6b93, 0x003c6b91, 0x0047779c,
- 0x00949ca0, 0x00a5b1bb, 0x0077879b, 0x006a839f, 0x007b9dc7, 0x007ca2d4, 0x005d80bf, 0x0036599e, 0x001c4082, 0x00284b8d, 0x00203a83, 0x00223280, 0x00233782, 0x00384f9c, 0x004d66b3, 0x004360ae,
- 0x0032599b, 0x00325697, 0x004564a9, 0x005a78bb, 0x007490d2, 0x00799ace, 0x007b9cd1, 0x007391d1, 0x004c74bd, 0x00426cb6, 0x00527dc7, 0x00618bd1, 0x00668cce, 0x005e82c7, 0x005370bb, 0x00304799,
- 0x00152e5e, 0x0061718f, 0x00e6eefe, 0x00fbfcfd, 0x00fcfff9, 0x00f8fffa, 0x00fbfeff, 0x00d2d5df, 0x00494a41, 0x00171507, 0x00272210, 0x002b2a16, 0x00302e1b, 0x00302f1d, 0x00312e1d, 0x0034311f,
- 0x002d3316, 0x002d3317, 0x0033341d, 0x00363320, 0x00363421, 0x0039351c, 0x003f3620, 0x00423823, 0x00393b17, 0x00393c17, 0x003e3b1c, 0x003b3b1f, 0x003b351e, 0x00363321, 0x00352c20, 0x00392e29,
- 0x002f2318, 0x00363737, 0x00475767, 0x00436680, 0x00346997, 0x0030649a, 0x00406db1, 0x004c7ac5, 0x004c81bd, 0x00477fba, 0x004d80b8, 0x006e95c8, 0x008dadd5, 0x0092accf, 0x00a0b2d1, 0x009db0c7,
- 0x0090afbd, 0x0091b4ce, 0x0087acd5, 0x006997cb, 0x005f96d3, 0x005c95d0, 0x00679bd9, 0x006ba1de, 0x0069a3d2, 0x0067a2cf, 0x006398cd, 0x006599ce, 0x0068a0d2, 0x006ba3d4, 0x006da4d7, 0x0069a4d7,
- 0x0069a0c4, 0x00639fc8, 0x0063a2d8, 0x005fa9e3, 0x0060acea, 0x0066a9df, 0x006da4d1, 0x00557995, 0x002b3a32, 0x002b2f19, 0x00332e17, 0x002f2f1b, 0x002f301a, 0x002e301c, 0x00333122, 0x00373422,
- 0x0032351f, 0x0033351f, 0x00353621, 0x00363722, 0x00373723, 0x00363721, 0x0033351f, 0x002f311d, 0x00292d15, 0x002b2d17, 0x002e2c1d, 0x002f2a1e, 0x00312b1d, 0x002a2316, 0x00423b30, 0x00a59e93,
- 0x00f5f8f3, 0x00f4faf5, 0x00f5fdfb, 0x00f7fefb, 0x00fff4eb, 0x00eaab9e, 0x009d3e31, 0x00a4291d, 0x00992e10, 0x00a24023, 0x00e8a49a, 0x00eae4ef, 0x00ebe4ed, 0x00ded7e0, 0x00dfd7e2, 0x00e7dee9,
- 0x00dddce2, 0x00e0dee4, 0x00f2edf6, 0x00ece6f1, 0x00cec9d1, 0x00c8c0c8, 0x00cec1cb, 0x00cfc3ce, 0x00c6bfc5, 0x00c2bbc1, 0x00bfb4bc, 0x00b4a8b1, 0x00aca2ab, 0x00ada2ac, 0x00a798a4, 0x00a697a2,
- 0x009a9197, 0x00a398a0, 0x00a498a3, 0x009f929f, 0x009d919e, 0x009d919e, 0x009d909c, 0x009d8f9b, 0x008e8a8d, 0x00a39a9e, 0x00c7bccc, 0x00d2cae1, 0x00c5bcc6, 0x00bbaeb8, 0x00b19eb0, 0x009c8798,
- 0x009f9a80, 0x00c7c895, 0x00d7d9a8, 0x00cbcaaf, 0x00c2bae2, 0x00d7cfe8, 0x00d0cade, 0x00cec4d6, 0x00cccad0, 0x00cecacf, 0x00ccc4ca, 0x00cbc4c9, 0x00cec9d1, 0x00cdc9d0, 0x00d5d1dc, 0x00d8d4e3,
- 0x00c3c1d0, 0x00bcb6bb, 0x00c2b7b9, 0x00d6c6c4, 0x00efe7ee, 0x00f0f0fb, 0x00d1d4f2, 0x00bdc2e5, 0x00daddec, 0x00ebe9ed, 0x00e9e2e7, 0x00e9f1ee, 0x00e8c6c1, 0x00b29169, 0x00a08a6c, 0x006c6d86,
- 0x00546492, 0x0093939b, 0x00b59fad, 0x00b994c0, 0x00aba7b5, 0x00aba3b0, 0x00b0a1b1, 0x00afa3b3, 0x00a7a3ab, 0x00a9a4ab, 0x00b0a9b1, 0x00b1aab1, 0x00b1aeb1, 0x00b8b6b8, 0x00e3dde3, 0x00fcf7fb,
- 0x00f9fbf2, 0x00f8fbf4, 0x00f7fdfc, 0x00f3fafc, 0x00b3abb7, 0x00775c6a, 0x0099717f, 0x00b58390, 0x00d1b6a8, 0x00e0d2ba, 0x00ecdfc8, 0x00f1dac8, 0x00deb4ac, 0x00af7f79, 0x007c4343, 0x00804b49,
- 0x009e8576, 0x00bfb0a1, 0x00cac2b3, 0x00c9c8bb, 0x009d9f8f, 0x00776943, 0x0072633c, 0x006a735b, 0x00375fa2, 0x00144cb1, 0x000c4cb4, 0x001156a4, 0x002461ae, 0x00285ebe, 0x003968cd, 0x0079acf1,
- 0x0085a1d3, 0x002d4e9a, 0x001b43a6, 0x001447be, 0x002251cc, 0x002a53b8, 0x003255b2, 0x003757ae, 0x002861b7, 0x002665c9, 0x002c68d1, 0x003668ca, 0x003b69cd, 0x003c65c9, 0x003258bb, 0x00294daf,
- 0x0016429d, 0x00123f9a, 0x001f4aaa, 0x002856b8, 0x002a5bbb, 0x002e5eb8, 0x00315eb9, 0x003163bf, 0x002e64ba, 0x002e64bc, 0x003367c2, 0x00386bc9, 0x003d6fd0, 0x003e6fd2, 0x004071d5, 0x004070d6,
- 0x00366bd9, 0x003a6ec6, 0x004370bf, 0x00426fb4, 0x00356cc5, 0x00346ddc, 0x003665de, 0x003859c4, 0x00696e8a, 0x00a39684, 0x00cdab85, 0x00e0b987, 0x00d7af90, 0x00cfaf9c, 0x00f8ded7, 0x00fff9f9,
- 0x00f3fdef, 0x00f3fef1, 0x00fafefb, 0x00f8f4f7, 0x009d8797, 0x00453127, 0x0047311c, 0x004b3121, 0x003f2b1c, 0x00402c1f, 0x00432c27, 0x00462e2d, 0x0048302d, 0x004c3530, 0x00523c37, 0x0058433c,
- 0x0059452c, 0x005e462d, 0x006a4b38, 0x006e4c39, 0x0065462e, 0x00563b1b, 0x00977d5a, 0x00e2caa3, 0x00dfd59c, 0x00d8d192, 0x00d0ca97, 0x00bbbb9c, 0x008a8276, 0x00413a33, 0x00433a34, 0x006e675d,
- 0x00565f42, 0x00293421, 0x00030e13, 0x001a2548, 0x00455397, 0x005f6d9a, 0x008491bb, 0x009baadb, 0x007f97d5, 0x005771bb, 0x003855ae, 0x002f53b1, 0x001c48aa, 0x002459b7, 0x002d67c4, 0x002661bd,
- 0x002661b5, 0x002f6bbe, 0x00366ec4, 0x00366cc4, 0x003d75ca, 0x00437bd0, 0x00457ad3, 0x00447ad2, 0x003f7ace, 0x00417ace, 0x004179d0, 0x00427bd0, 0x00447cd4, 0x00457cd2, 0x00457ad2, 0x004479d1,
- 0x003c78c5, 0x003f77c6, 0x003c70c2, 0x00396bbd, 0x004173c5, 0x003f74cb, 0x00376dc8, 0x00396cc6, 0x003b6ebb, 0x003b6bb1, 0x004065a9, 0x005675b0, 0x00a7beec, 0x00bed3fd, 0x00707dab, 0x00323f6a,
- 0x000c3666, 0x00153c72, 0x00204481, 0x00204585, 0x00204588, 0x001c3f82, 0x00234282, 0x00233e7a, 0x004a6d92, 0x007697b9, 0x003d5a8d, 0x0012327c, 0x00304c80, 0x002d3f60, 0x00172035, 0x00171b26,
- 0x00141719, 0x001c1a21, 0x0025202a, 0x0027282f, 0x002e3332, 0x00383b34, 0x00484238, 0x0051483d, 0x0059492c, 0x00664c30, 0x00775337, 0x00785035, 0x0079523a, 0x00734d3b, 0x00714d3e, 0x006e4d3f,
- 0x00615631, 0x00655a33, 0x006a5d36, 0x006e5f37, 0x0073633a, 0x0072633a, 0x006f613a, 0x006e603a, 0x00665d30, 0x00655c33, 0x00665e3a, 0x00605c39, 0x00605b3b, 0x005d5639, 0x005e523b, 0x005c4f3b,
- 0x004c4734, 0x00484536, 0x0096948b, 0x00efeceb, 0x00fdfdfe, 0x00fcfbfc, 0x00fefdff, 0x00ffffff, 0x00c5c7c5, 0x007b7d7b, 0x007f7e7f, 0x00b0b0b0, 0x00e3e3e3, 0x00f9faf9, 0x00fffeff, 0x00fffdff,
- 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fcfcfc, 0x00fdfdfd, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe,
- 0x00fbfdfa, 0x00fcfefb, 0x00fffeff, 0x00fffeff, 0x00fefffd, 0x00fefefc, 0x00fffdfe, 0x00fffdfe, 0x00fbfef8, 0x00f9fdf5, 0x00fefffa, 0x00fefffc, 0x00fcfffb, 0x00fcfffc, 0x00fefffe, 0x00fdfffd,
- 0x00f9fef7, 0x00f9fef7, 0x00fbfffa, 0x00fcfffb, 0x00fcfffc, 0x00fcfffd, 0x00feffff, 0x00fdffff, 0x00f7fff6, 0x00f8fff8, 0x00fafffc, 0x00fbfffe, 0x00fdfffc, 0x00fefefc, 0x00fffeff, 0x00ffffff,
- 0x00fafcf8, 0x00fbfdf9, 0x00fffdfd, 0x00fffdff, 0x00fffcfd, 0x00fdfef9, 0x00fffff9, 0x00fffffa, 0x00f6fef6, 0x00f7fff8, 0x00fafffd, 0x00f9fffe, 0x00fcfeff, 0x00fafdfd, 0x00fefeff, 0x00ffffff,
- 0x00edfbf4, 0x00a2a5b1, 0x00202b50, 0x00184778, 0x00196bb9, 0x003d7ad0, 0x005989e6, 0x00568ae1, 0x002d88c7, 0x00307ecc, 0x00357ad4, 0x003a85de, 0x00438ce6, 0x00408ae3, 0x003e82dd, 0x00377fda,
- 0x002e7dce, 0x002f7dcf, 0x003781d7, 0x003981da, 0x00327cd5, 0x003375cf, 0x003877d3, 0x00377bd7, 0x00307cd2, 0x00327fd2, 0x003d80d0, 0x00437ec7, 0x0089b3e1, 0x00cce7fc, 0x00dde7f9, 0x00d9ddef,
- 0x00a2c9eb, 0x007da4d4, 0x005078be, 0x003f6cc4, 0x003b70ce, 0x003b76d1, 0x003472ca, 0x003370c6, 0x00256bb4, 0x001e60ad, 0x002460b5, 0x00235cba, 0x002c63bf, 0x001f55ac, 0x001c4ea8, 0x0015459b,
- 0x000f4991, 0x00245aa5, 0x002c5caf, 0x002a59ab, 0x002b56ab, 0x00275ab3, 0x00295ec0, 0x002f61c2, 0x002863bc, 0x002660b9, 0x00265cb7, 0x00275cb7, 0x00255db7, 0x002b63bc, 0x002f65bf, 0x002f65be,
- 0x002164ba, 0x002464ba, 0x00316dc8, 0x002c68c2, 0x00225eb7, 0x00235fb7, 0x00356dca, 0x00376cca, 0x00235eb5, 0x002662b9, 0x003165c3, 0x003365c3, 0x002d6dc3, 0x002971c5, 0x002c76cb, 0x002f76cc,
- 0x002d70c2, 0x00225eb5, 0x001b53af, 0x002359b4, 0x002f6ac2, 0x004076ce, 0x006293db, 0x006b96c8, 0x00244848, 0x0000140a, 0x00192019, 0x00807d7e, 0x00fcf6fd, 0x00fffeff, 0x00ffffff, 0x00fefffb,
- 0x00f4f2ec, 0x00d7c5b7, 0x00bea18a, 0x00c29b7b, 0x00c79571, 0x00c08e6b, 0x00b98667, 0x00b67e65, 0x00b57255, 0x00b26649, 0x00af5b40, 0x00b15039, 0x00a4543b, 0x00a45a44, 0x00a8654a, 0x00ad6a4b,
- 0x00a16745, 0x00996a56, 0x008a6c69, 0x009d98b0, 0x0099b2e3, 0x0088ade8, 0x007facec, 0x0071a2e9, 0x005d97df, 0x005b93de, 0x005b91dd, 0x005c8ed8, 0x005b8bd4, 0x005689d3, 0x005287d5, 0x004f88d8,
- 0x00508dce, 0x004e89d6, 0x004d86d9, 0x004e86dd, 0x00608dd3, 0x005c7eac, 0x0032475f, 0x0020282e, 0x00241c15, 0x0021130d, 0x00130804, 0x000c0c11, 0x00100c09, 0x00120a05, 0x000e0601, 0x000a0301,
- 0x000b0a0c, 0x00161415, 0x001c1211, 0x00251309, 0x00644632, 0x00af885a, 0x00e2b67c, 0x00e8be88, 0x00e5b77b, 0x00ecba7a, 0x00e9b374, 0x00eab274, 0x00cc9f70, 0x00bc9f81, 0x00d9cabc, 0x00f5f4f5,
- 0x00f3f3f4, 0x00f0f0f1, 0x00eeecf1, 0x00eceaef, 0x00e8e8eb, 0x00ebecf0, 0x00eeecf3, 0x00ebeaf1, 0x00ebeaf3, 0x00ebebf4, 0x00edebf4, 0x00eceaf2, 0x00eaeaf1, 0x00ebebf1, 0x00efedf4, 0x00f1eff5,
- 0x00efeff7, 0x00efeff7, 0x00f1eef8, 0x00f0eef5, 0x00eeeef6, 0x00f0f0f5, 0x00f2f0f5, 0x00f2f0f5, 0x00f1f0f4, 0x00f2f1f4, 0x00f3f1f7, 0x00f2f1f6, 0x00f2f0f4, 0x00f1f0f4, 0x00f0f1f6, 0x00f0f1f6,
- 0x00f0eef6, 0x00f2f0f7, 0x00efedf4, 0x00ebeaef, 0x00e7e6e9, 0x00e7e7e8, 0x00e5e6e6, 0x00e4e5e5, 0x00ebedeb, 0x00ebeceb, 0x00dbd7d5, 0x00a79b97, 0x00574643, 0x0044312a, 0x00452d24, 0x0044281e,
- 0x003e2314, 0x00391f14, 0x00331712, 0x00311613, 0x00270e0e, 0x00260e0a, 0x00250f08, 0x00231108, 0x00211505, 0x002c1b0a, 0x00371b0e, 0x003f1a10, 0x00451e15, 0x00411f17, 0x00735750, 0x00d3c2b7,
- 0x00fbfefe, 0x00f8fcf9, 0x00fefdff, 0x00fdfefe, 0x00dce4eb, 0x008390a4, 0x003d5172, 0x005774a3, 0x00628cd1, 0x006494e2, 0x006a99e9, 0x007aa4ed, 0x0080a9f3, 0x0078a1ed, 0x006f97e5, 0x00769fec,
- 0x00779fea, 0x006d94de, 0x005d84cc, 0x005680c3, 0x00658ecc, 0x0087aadd, 0x0096b7e6, 0x008cb2df, 0x0071a5d0, 0x0066a4cb, 0x005a9ac4, 0x005294be, 0x005493bb, 0x00568fb6, 0x00578ab2, 0x005787b0,
- 0x004983b0, 0x004983af, 0x004983ae, 0x004782ac, 0x004680ab, 0x004580a9, 0x00447ea7, 0x00427ca4, 0x003e7ca4, 0x003f7aa4, 0x004079a4, 0x003e789f, 0x003b7099, 0x00366790, 0x00305a89, 0x002f5786,
- 0x002a5382, 0x00285284, 0x00275388, 0x00275789, 0x00285b8c, 0x002c5b8a, 0x00305f8b, 0x0033638e, 0x00386591, 0x003a6893, 0x003d6994, 0x003d6a94, 0x003f6e97, 0x003a6b92, 0x003d6c92, 0x004d7da1,
- 0x0093a0aa, 0x0093a3b2, 0x00657b91, 0x005d7a98, 0x00688db7, 0x006b92c6, 0x006186c3, 0x004c70b3, 0x00325298, 0x0036549d, 0x002b458e, 0x0032448b, 0x0041589c, 0x005169b2, 0x00405aa2, 0x002e4b94,
- 0x002a4d93, 0x00315297, 0x004e6db0, 0x006180c3, 0x00607dbb, 0x005c7eb4, 0x005a7db0, 0x005a7cb8, 0x00597ac4, 0x005d81cf, 0x00658fda, 0x006590d6, 0x005579bb, 0x004a68a9, 0x00415698, 0x00223077,
- 0x00191e4b, 0x00646783, 0x00e8e9f7, 0x00fffcfc, 0x00fbfef7, 0x00fafef9, 0x00f9fdfd, 0x00d2d4d8, 0x004a4a45, 0x0018150b, 0x00272313, 0x002c2b17, 0x002f2f1b, 0x002f2e1b, 0x002f2d19, 0x00312f1a,
- 0x0031311b, 0x0033331d, 0x0034321e, 0x00353321, 0x00363320, 0x00383319, 0x003d3319, 0x00403619, 0x003f391a, 0x00403c1b, 0x003f3a1b, 0x003e3a1f, 0x003c3c27, 0x00323527, 0x002e3028, 0x00353536,
- 0x003a4463, 0x0055718f, 0x00679ab2, 0x00599bb0, 0x00447d9c, 0x00416591, 0x003e518a, 0x003f4f91, 0x00386bab, 0x002e77b3, 0x002c71b1, 0x00446cb4, 0x004e75b1, 0x00597db8, 0x005e7eb4, 0x005f80b3,
- 0x005882b6, 0x005884c0, 0x005484c7, 0x005085d0, 0x004a86d5, 0x004d88d3, 0x004d88d3, 0x004c86d1, 0x005287cd, 0x005989cf, 0x005585ca, 0x005789ca, 0x005e8ed0, 0x006293d2, 0x006295d3, 0x006195d7,
- 0x007287bb, 0x006f89c3, 0x006987ca, 0x00658cd6, 0x006891dc, 0x006e93db, 0x006783c3, 0x00546598, 0x003a384f, 0x00322535, 0x00352927, 0x002f301a, 0x002e301b, 0x002e311a, 0x0032331e, 0x0034341f,
- 0x00353520, 0x00353520, 0x00363622, 0x00373723, 0x00363723, 0x00353721, 0x0031351e, 0x002d311d, 0x002c2d17, 0x002d2d18, 0x00302d1e, 0x002c281b, 0x00332d1f, 0x002e291a, 0x002f2a1e, 0x00868277,
- 0x00fbf7f8, 0x00fbfdfe, 0x00f3fdfe, 0x00f4fdfe, 0x00fff9f3, 0x00f7c3ba, 0x00984a3d, 0x008e2a1b, 0x008e2e1b, 0x0097412e, 0x00d89f98, 0x00e6e0ea, 0x00ebe6ee, 0x00e2dee7, 0x00e3dde7, 0x00e2dce6,
- 0x00e1dae6, 0x00e4dee8, 0x00f1eaf3, 0x00e8e3ec, 0x00cac6cf, 0x00c6bfc7, 0x00cbc1c8, 0x00cec3ca, 0x00ccc1ca, 0x00cac0c8, 0x00c7bbc4, 0x00bcb0b9, 0x00afa5ae, 0x00ada2ab, 0x00a397a0, 0x009e949c,
- 0x009c8f99, 0x00a296a0, 0x00a397a2, 0x00a0949f, 0x009f939f, 0x009e939e, 0x009a8f9a, 0x00988d98, 0x00948b93, 0x00a89ba6, 0x00cdbec9, 0x00e0ccce, 0x00c8c2cd, 0x00a9a5b7, 0x0084838f, 0x008f8b87,
- 0x00d4c68f, 0x00e4d490, 0x00dbd192, 0x00cac8a8, 0x00b2c1e5, 0x00c6c9e3, 0x00c7c6d7, 0x00c8c8d8, 0x00d2d0da, 0x00d3ced5, 0x00c5bec3, 0x00cac2c5, 0x00d2cace, 0x00cfc9cb, 0x00d1ccd0, 0x00dad4db,
- 0x00cac6d6, 0x00beb7c1, 0x00c0b7b8, 0x00d3c7c7, 0x00ede9f1, 0x00e6ecf9, 0x00b1bad3, 0x00acb7d3, 0x00dcdcea, 0x00edeaeb, 0x00e7e4e3, 0x00e3e9ed, 0x00f4dad9, 0x00c2a582, 0x00a38f72, 0x0078788b,
- 0x005c6593, 0x009590a0, 0x00b4a1b0, 0x00b699be, 0x00a7a6af, 0x00ada6b0, 0x00b1a5b2, 0x00b4a8b5, 0x00aba4ad, 0x00ada7ae, 0x00aea7af, 0x00ada6ad, 0x00aaa7aa, 0x00b6b4b6, 0x00e1dde2, 0x00faf7fa,
- 0x00fcfcf7, 0x00fdfdfa, 0x00f8fcfb, 0x00f3f7f9, 0x00ada3ad, 0x007c5e6b, 0x00a07782, 0x00b07e87, 0x00c9a89d, 0x00e0c8b5, 0x00ddccb9, 0x00d4c1b1, 0x00c19c94, 0x00a47571, 0x00814b4a, 0x0096635f,
- 0x00c0a196, 0x00d6c0b4, 0x00d9cbbc, 0x00e2dbcd, 0x00c5bfaf, 0x0099855f, 0x007d6c42, 0x006a7053, 0x0036589a, 0x000f41a5, 0x000843aa, 0x0011529f, 0x00225aa5, 0x001c4faa, 0x002d5bba, 0x0071a2e7,
- 0x00a8b7e5, 0x00546bb4, 0x001c3e9d, 0x001745ba, 0x001847be, 0x001e48b2, 0x00274cac, 0x003052a9, 0x002b5ab4, 0x00265ac1, 0x00255cc5, 0x002b5dbd, 0x002657b8, 0x00224eb0, 0x001841a1, 0x00133898,
- 0x00123994, 0x00133a96, 0x002048a5, 0x002552af, 0x002a59b5, 0x002a5bb8, 0x002a5bb8, 0x00275bb7, 0x00285ab7, 0x00285bb8, 0x00295bb9, 0x002a5ebd, 0x002d60c0, 0x003063c4, 0x003769ca, 0x003b6cce,
- 0x002f5bcf, 0x002e5bbe, 0x002752a7, 0x00224f96, 0x001448a5, 0x001247b4, 0x001949ba, 0x001c40a6, 0x0069698a, 0x00b3a299, 0x00cfae88, 0x00d6ac76, 0x00caa47f, 0x00cfb197, 0x00fae7d7, 0x00fefbf3,
- 0x00f5fff2, 0x00f5fff5, 0x00f9fefb, 0x00f0ece9, 0x008f767c, 0x00472f22, 0x0048311c, 0x004b3220, 0x00442e24, 0x00463127, 0x00432d29, 0x00412c2b, 0x00402c2a, 0x0041302c, 0x00473731, 0x004a3c32,
- 0x00564231, 0x005b4534, 0x00614536, 0x00624433, 0x0061462c, 0x005f4727, 0x00a18964, 0x00e2cda3, 0x00e0d49e, 0x00dfd59b, 0x00dad3a0, 0x00b6b38f, 0x00615b47, 0x002f2719, 0x006b6354, 0x00c6bfab,
- 0x00babd9b, 0x006b705a, 0x00101a16, 0x0018213a, 0x003e4983, 0x00374879, 0x00354c7c, 0x0040578d, 0x00405c9f, 0x003a59a4, 0x003657ad, 0x002d54af, 0x00204cad, 0x00265ab8, 0x002d66c2, 0x00235db8,
- 0x002c63ba, 0x003169bf, 0x00366cc5, 0x003970c8, 0x00407bcf, 0x00447ed2, 0x00437ad0, 0x004279ce, 0x00437bd1, 0x00447bd1, 0x00437ad1, 0x00417ad0, 0x00427bd2, 0x00437bd1, 0x004279cf, 0x004179ce,
- 0x004177c7, 0x004378c9, 0x003b70c2, 0x00376bbc, 0x003d6fc2, 0x003f72ca, 0x00396ec7, 0x003a6ec4, 0x00416dbd, 0x00446cb4, 0x004565aa, 0x004a66a3, 0x007e93c5, 0x00a7bae7, 0x00707ead, 0x0025325c,
- 0x00052759, 0x00103168, 0x00183976, 0x001a3b7c, 0x001c3d80, 0x001f4081, 0x001c3b77, 0x00203d74, 0x0036517c, 0x00506a91, 0x0036507d, 0x00173374, 0x002e4871, 0x00344462, 0x001b2432, 0x00161920,
- 0x001d1c24, 0x00231f2b, 0x002a2631, 0x002f2f35, 0x00363b3a, 0x0041413d, 0x004e473f, 0x00564d42, 0x00604c35, 0x00694f36, 0x00725035, 0x00724d32, 0x00704c32, 0x006b4b33, 0x00694b35, 0x006a4d38,
- 0x00655533, 0x006c5c37, 0x0072613b, 0x0074653b, 0x00796a3d, 0x00796b3d, 0x0076693c, 0x0074683a, 0x0071663a, 0x0070643b, 0x006f643e, 0x006a643f, 0x006a623f, 0x0067603f, 0x00675d40, 0x00665c41,
- 0x005f5942, 0x00635e4d, 0x00aaa79b, 0x00f4f1ec, 0x00fefffc, 0x00fdfdfd, 0x00fffeff, 0x00fdfdfd, 0x00bfbebf, 0x00767575, 0x00838282, 0x00b3b3b3, 0x00e3e3e3, 0x00f7f8f8, 0x00fbfbfb, 0x00fdfefd,
- 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fdfdfd, 0x00fdfdfd, 0x00fefefe, 0x00ffffff, 0x00ffffff, 0x00fefefe, 0x00fefefe, 0x00fdfdfd,
- 0x00fdfefd, 0x00fdfffd, 0x00fefeff, 0x00fefeff, 0x00fdfefc, 0x00fefdfb, 0x00fefcfc, 0x00fefdfc, 0x00fbfdfa, 0x00fbfdfb, 0x00fcfdfa, 0x00fffffc, 0x00fcfffb, 0x00fdfffc, 0x00fdfefa, 0x00fdfefa,
- 0x00fcfefc, 0x00fbfefb, 0x00fcfffc, 0x00fcfffd, 0x00fcfffd, 0x00fcfffe, 0x00fdffff, 0x00fcfffe, 0x00fafffc, 0x00fafffc, 0x00fbffff, 0x00fbffff, 0x00fcfffe, 0x00fcfffe, 0x00fdfeff, 0x00fdfefe,
- 0x00fffffe, 0x00fefefd, 0x00fffdfe, 0x00fffdff, 0x00fefbfd, 0x00fcfdfa, 0x00fdfef9, 0x00fdfef9, 0x00fbfefc, 0x00feffff, 0x00fdfdff, 0x00fbfdfe, 0x00fdfcfe, 0x00fcfcfc, 0x00fefdfe, 0x00fefdfe,
- 0x00f3fcfc, 0x00a8a4b8, 0x001d264a, 0x00154070, 0x001860a5, 0x00386bbc, 0x005482d8, 0x00598ee1, 0x003690dc, 0x003380d8, 0x003375d0, 0x003e7bcf, 0x004783d7, 0x004785d8, 0x004784d9, 0x004581d6,
- 0x003d7cce, 0x003a77cb, 0x003d79cd, 0x00427dd3, 0x00417dd2, 0x004375c7, 0x004272c2, 0x003f74c6, 0x003c79cc, 0x003c7acd, 0x003f78c8, 0x004679c4, 0x007ca2da, 0x00b5d0f6, 0x00b7c7e8, 0x00a7b1ce,
- 0x006095c2, 0x00477db3, 0x003971b3, 0x003d78c5, 0x003675c6, 0x003376c1, 0x003276ba, 0x003376b6, 0x002e70ad, 0x002665aa, 0x00245dac, 0x002457b7, 0x00295bb7, 0x002554b4, 0x001f4faa, 0x001a49a5,
- 0x001848a1, 0x002756b0, 0x002a59b4, 0x002957b1, 0x002956b1, 0x002459b4, 0x00235bba, 0x00295ebd, 0x002860bb, 0x00275fba, 0x00275db9, 0x00285eb9, 0x00265fb8, 0x002a63bb, 0x002d64bc, 0x002c63bb,
- 0x002263bb, 0x002666be, 0x00316ec8, 0x002f6bc6, 0x00215cb5, 0x00235db6, 0x00326ac5, 0x00346bc7, 0x00275dba, 0x00285fba, 0x003165c2, 0x003466c2, 0x002967bd, 0x00276fc2, 0x002c76ca, 0x00307ace,
- 0x003270c6, 0x00255db7, 0x001b50ae, 0x002559b6, 0x00316cc5, 0x00386fca, 0x004c7ecd, 0x006a97cf, 0x004e6d7a, 0x00172b2c, 0x00161f1e, 0x00858487, 0x00fcf7fd, 0x00fdfbfb, 0x00fefefd, 0x00f9fdf6,
- 0x00f8f5f3, 0x00ddcec3, 0x00bea58f, 0x00c2a07f, 0x00c99e79, 0x00c29774, 0x00bd8f71, 0x00bb8870, 0x00bb7e66, 0x00b67359, 0x00b56c51, 0x00b36549, 0x00ac6447, 0x00ab694b, 0x00b17251, 0x00b17552,
- 0x00a9735b, 0x0096756d, 0x009f95a1, 0x009cacd2, 0x0085b1f6, 0x0081abf3, 0x0074a2ec, 0x006795e1, 0x005d91de, 0x005d93e0, 0x006199e6, 0x005f96e1, 0x005a8ed8, 0x005587cf, 0x005183c8, 0x005284c8,
- 0x005789cd, 0x004e84d0, 0x004c85d7, 0x004d84da, 0x006389ce, 0x0061769e, 0x00494c5d, 0x00443732, 0x004b3121, 0x00402414, 0x00291108, 0x00130702, 0x00150100, 0x001a0601, 0x00220f02, 0x001f1007,
- 0x00120b0c, 0x000a0708, 0x001e1a18, 0x001e130a, 0x002b1205, 0x00643d15, 0x00c69861, 0x00e9bd89, 0x00e0af77, 0x00e3ae71, 0x00e7b070, 0x00e4aa69, 0x00c79a65, 0x00b0926e, 0x00d1c1ac, 0x00eeeee6,
- 0x00f1f0f4, 0x00f0eff2, 0x00f0edf2, 0x00eeedf2, 0x00e4e5e8, 0x00e7e8eb, 0x00ebeaf0, 0x00ededf2, 0x00efeff7, 0x00eeeef6, 0x00efedf5, 0x00eceaf3, 0x00e8e8ef, 0x00e9e8ef, 0x00edebf3, 0x00efedf5,
- 0x00f1f0fa, 0x00f0f0f9, 0x00f1eff8, 0x00f0eff5, 0x00efeef6, 0x00f0f0f5, 0x00f2f0f5, 0x00f1eff4, 0x00f0f0f5, 0x00f0f0f4, 0x00f1f0f6, 0x00f2f1f7, 0x00f4f2f7, 0x00f3f2f6, 0x00f1f1f6, 0x00f2f1f6,
- 0x00f3f1f8, 0x00f0eff5, 0x00f1f0f5, 0x00edeef1, 0x00e8e8eb, 0x00e8e7ea, 0x00ebeaec, 0x00e8e7e8, 0x00e3e4e3, 0x00ebecea, 0x00f7f5f3, 0x00eee8eb, 0x00b4aba9, 0x00716563, 0x00403028, 0x00412c24,
- 0x00422620, 0x003c2118, 0x00391e15, 0x0033180f, 0x002d130c, 0x002b110b, 0x0029100b, 0x0028130a, 0x002b1a0c, 0x00311c0b, 0x003d1d0e, 0x00451c10, 0x004c1d15, 0x00482018, 0x00714e46, 0x00cdb5a7,
- 0x00ffffff, 0x00f9fbfa, 0x00ffffff, 0x00fbfdfc, 0x00e5ecf1, 0x008d98ab, 0x0038496a, 0x004b6594, 0x005d82c9, 0x006995e2, 0x007aa5f2, 0x0080a5ec, 0x0083a7ef, 0x00789ee9, 0x007399e7, 0x007da3f3,
- 0x00799ff0, 0x00688cdb, 0x00658ad6, 0x006690d5, 0x00658ed1, 0x007095cf, 0x0081a4d9, 0x0082aad9, 0x0078a5d1, 0x006ca1c9, 0x005f94bf, 0x00558fb9, 0x005990bb, 0x00588db7, 0x005888b6, 0x005785b3,
- 0x004c85b1, 0x004b85b0, 0x004983af, 0x004681ad, 0x004580ac, 0x00437eaa, 0x00417ba7, 0x003f79a5, 0x003f77a5, 0x003e77a5, 0x0042749e, 0x00456e91, 0x0040668c, 0x003a6089, 0x00325684, 0x00325786,
- 0x0031558d, 0x002d538c, 0x00295592, 0x00285593, 0x00275795, 0x002c578c, 0x002f5a89, 0x00305b88, 0x0034608d, 0x0037638f, 0x003b6692, 0x003f6a95, 0x00416e97, 0x003e6b93, 0x00426d94, 0x00517ea3,
- 0x007f95a8, 0x006e889d, 0x0056748f, 0x005c80a0, 0x00648cb8, 0x00547baf, 0x004d70ad, 0x005374b5, 0x00526cb6, 0x004f69b3, 0x004a5da4, 0x0051649d, 0x005669a4, 0x003c5693, 0x00243d80, 0x002c4b8d,
- 0x00325199, 0x004565a7, 0x005473b2, 0x004866a4, 0x00314c88, 0x0023437b, 0x00224479, 0x00335390, 0x004f6db7, 0x005376c4, 0x005880cc, 0x005985cb, 0x004b6dac, 0x00455994, 0x004b4e87, 0x00392e68,
- 0x0028102d, 0x006c5b6b, 0x00f1e4ea, 0x00fdfcf6, 0x00fdfdf6, 0x00fdfcf9, 0x00fbfcfc, 0x00d4d5d7, 0x004a4945, 0x0016150d, 0x00262315, 0x002d2d18, 0x0032311d, 0x0031311e, 0x0032301d, 0x0033321e,
- 0x00343220, 0x0031311c, 0x00343420, 0x00333320, 0x00373421, 0x003a331b, 0x003d321b, 0x003e3315, 0x0044351b, 0x0043361a, 0x003f3720, 0x003c3624, 0x00303835, 0x002b3a41, 0x00385060, 0x004f6881,
- 0x004a98cf, 0x00509ad3, 0x005997cf, 0x00568fc1, 0x005c8bba, 0x00547fac, 0x003b6792, 0x0036638c, 0x004d729f, 0x004f739b, 0x00425d85, 0x003c4c5e, 0x0041546b, 0x00405b73, 0x00395c75, 0x003e667d,
- 0x00315c7b, 0x002a5773, 0x002b5878, 0x003a6789, 0x004a7596, 0x004b7798, 0x003d6b87, 0x00325d78, 0x00335368, 0x00385665, 0x004c6372, 0x005d6f7a, 0x0064737f, 0x0062737b, 0x0061727a, 0x0063727c,
- 0x00816c6c, 0x00807071, 0x007c6f73, 0x007a717a, 0x00736b79, 0x00625c6a, 0x00514a56, 0x00453f42, 0x003c322d, 0x00362b1e, 0x00383020, 0x0030311c, 0x002f301c, 0x002e3019, 0x0032321e, 0x0034341e,
- 0x00343520, 0x00343520, 0x00353622, 0x00363723, 0x00373723, 0x00363721, 0x0033351f, 0x002f311d, 0x002f2f1a, 0x002e2e1a, 0x00312e1e, 0x002c281a, 0x00332e1e, 0x00322c1e, 0x00292418, 0x006f6a5f,
- 0x00f5edee, 0x00fdfefc, 0x00f4fcfe, 0x00f4fefe, 0x00fffafb, 0x00f9d7d7, 0x00a8716c, 0x00965047, 0x00a3625b, 0x00ac766e, 0x00dab7b5, 0x00e8e3ed, 0x00e8e3ec, 0x00e0dae5, 0x00e5dde8, 0x00e5dde8,
- 0x00e8e0eb, 0x00e7dfea, 0x00f2e9f4, 0x00e7dfe9, 0x00c9c3cd, 0x00c6bec5, 0x00cbc1c7, 0x00cac0c8, 0x00cfc4cc, 0x00ccc1c9, 0x00ccc0c9, 0x00c2b6bf, 0x00b1a7af, 0x00aba1aa, 0x00a398a2, 0x009c919b,
- 0x009c8f9b, 0x009f929e, 0x00a397a2, 0x00a397a2, 0x00a296a1, 0x009f939e, 0x009a8f9a, 0x00988e98, 0x009d8d9b, 0x00aba0aa, 0x00d3c0c0, 0x00e9caad, 0x00c3b9cd, 0x008d95af, 0x00768389, 0x00a7ae87,
- 0x00e6cd6e, 0x00d3b759, 0x00c4ad65, 0x00c1c0a1, 0x00accce1, 0x00b9cfe3, 0x00c2cbe1, 0x00c2c9dc, 0x00d1d1e0, 0x00d2d0d9, 0x00c6bfc5, 0x00c8bdc0, 0x00d5c9cc, 0x00d4cbcb, 0x00d6cccd, 0x00e3d8d8,
- 0x00e0e1f6, 0x00c4c2d1, 0x00b6b4b7, 0x00c5c2be, 0x00e9eef3, 0x00d9e4f2, 0x00abb7d0, 0x00bbc9e4, 0x00dae1ea, 0x00e7e9e3, 0x00e4e4e2, 0x00d8dfef, 0x00fce4ec, 0x00ddc4ac, 0x009f8c76, 0x007f7a87,
- 0x00737198, 0x009b94a5, 0x00b2a6b7, 0x00b09fbc, 0x00a7a4ad, 0x00aea6b2, 0x00b3a7b4, 0x00b3aab5, 0x00afa5b1, 0x00ada5ae, 0x00aea7ae, 0x00ada7ad, 0x00aaa6aa, 0x00b8b5b8, 0x00e4e1e4, 0x00f8f9f9,
- 0x00fffafa, 0x00fdfbf9, 0x00fffefe, 0x00efefef, 0x009d8793, 0x00785360, 0x00a77582, 0x00b67e88, 0x00be8f8a, 0x00bb9588, 0x00ae9385, 0x00ab9e90, 0x00b99790, 0x00b38782, 0x0096615f, 0x0097625f,
- 0x00cda4a0, 0x00e8c9c0, 0x00e8d0c2, 0x00eedacc, 0x00dcc9b9, 0x00b1956f, 0x00826b3f, 0x006e6c4a, 0x0039558f, 0x000f3893, 0x000b3d9f, 0x00124b96, 0x001b4a96, 0x00184199, 0x00264ca3, 0x00658dcf,
- 0x00d5d2f9, 0x008993d4, 0x00243d93, 0x001c40ad, 0x001743bb, 0x001642b2, 0x00214ab2, 0x00284eae, 0x00274eb1, 0x00224db7, 0x001f4db6, 0x001a4dac, 0x001443a4, 0x00103e9e, 0x00113a9a, 0x00153c9c,
- 0x00143798, 0x00173b9a, 0x002349a2, 0x00264ea5, 0x002850a8, 0x002550b3, 0x00214cb5, 0x001e4ab2, 0x001d4cb1, 0x001e4db1, 0x002451b5, 0x002755b7, 0x002451b3, 0x002451b2, 0x002a58b8, 0x002c5bbb,
- 0x002f56cf, 0x002a55bc, 0x002351ab, 0x001b4a98, 0x0011429d, 0x00103ea5, 0x001a42a9, 0x001d3a94, 0x00585a81, 0x00968a8b, 0x00b4977d, 0x00bc925e, 0x00b08b66, 0x00c4a68b, 0x00fae9d6, 0x00fdfaf0,
- 0x00f4fdf9, 0x00f5fff9, 0x00f8fff6, 0x00e6e3d4, 0x008a6a5d, 0x004d331e, 0x004c341f, 0x004d3522, 0x00483226, 0x0048332b, 0x00402d29, 0x003c2c2a, 0x00382b2c, 0x00362c2d, 0x00393130, 0x00393232,
- 0x004c3630, 0x004e382f, 0x00553e33, 0x0059402d, 0x00725a40, 0x00a18a69, 0x00d1bd96, 0x00efdfaf, 0x00e3daa1, 0x00ddd89a, 0x00c7c187, 0x00958d5e, 0x006b603f, 0x006f674b, 0x00a9a084, 0x00e9e3c1,
- 0x00e0dbaf, 0x009d9e79, 0x00444634, 0x001c1f24, 0x0043436d, 0x0040548c, 0x002b4c8c, 0x00224587, 0x001c4089, 0x0018408a, 0x002752a0, 0x002c58ac, 0x002453af, 0x002a5cba, 0x003065c5, 0x00285dbf,
- 0x002e66bd, 0x003068be, 0x00376ec5, 0x003e75cc, 0x00467fd4, 0x00467fd3, 0x004178ce, 0x003d75ca, 0x004278d0, 0x00437ad2, 0x00437bd2, 0x00417bd1, 0x00437bd1, 0x00437ad0, 0x004279cd, 0x003f78cb,
- 0x004275ca, 0x004479cb, 0x003d71c4, 0x00396cbe, 0x003b6dc1, 0x004173ca, 0x004171c8, 0x003f6ec2, 0x003f65b4, 0x003a5ea3, 0x003a5798, 0x0036528b, 0x005a6c9e, 0x008294c1, 0x00586491, 0x00162147,
- 0x00051c50, 0x000b245b, 0x00122d68, 0x0014316f, 0x00183475, 0x00203c7b, 0x001a3771, 0x00213f75, 0x002f4575, 0x00425881, 0x00455986, 0x002d4076, 0x004e5f7e, 0x00576174, 0x00323a3f, 0x00252929,
- 0x002d282f, 0x002f2a34, 0x00302e36, 0x00333338, 0x003b3e3e, 0x00474243, 0x00504644, 0x00554b43, 0x00634c3c, 0x00674e3a, 0x006c4e35, 0x006c4b30, 0x0066462b, 0x005f4329, 0x0060462c, 0x00644930,
- 0x00665330, 0x006e5c36, 0x0076653c, 0x0079693c, 0x007f703e, 0x0081733f, 0x0080723f, 0x007e703d, 0x007e6d41, 0x007c6b40, 0x0078693f, 0x00746c40, 0x00746a41, 0x00736b41, 0x00736943, 0x00746a45,
- 0x0072694c, 0x007d755f, 0x00c3bead, 0x00f7f6eb, 0x00fbfef7, 0x00fefefc, 0x00fefdff, 0x00f7f8f9, 0x00b1afb1, 0x006d6c6d, 0x008c8d8c, 0x00bcbcbc, 0x00eae9ea, 0x00fafafa, 0x00fbfcfb, 0x00fbfdfb,
- 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fdfdfd,
- 0x00fefdff, 0x00fdfefe, 0x00fdfefe, 0x00fefefe, 0x00fefdfd, 0x00fefdfd, 0x00fefefc, 0x00fdfffb, 0x00fdfdfc, 0x00fbfcfc, 0x00fdfdfc, 0x00fefefc, 0x00fefffd, 0x00fefffc, 0x00fffffc, 0x00fffffe,
- 0x00fdffff, 0x00fcffff, 0x00fdffff, 0x00fcffff, 0x00fcffff, 0x00fcffff, 0x00fcffff, 0x00fcffff, 0x00fdffff, 0x00fbfffe, 0x00fbfefe, 0x00fafeff, 0x00fbffff, 0x00fcffff, 0x00fcfeff, 0x00fcfeff,
- 0x00ffffff, 0x00fdfefd, 0x00fefefd, 0x00fffeff, 0x00fffeff, 0x00fcfffe, 0x00fbfffd, 0x00fbfffc, 0x00fefefe, 0x00fefefd, 0x00fffdfe, 0x00fefefd, 0x00fffcfc, 0x00fefdfa, 0x00fefcfa, 0x00fefcf9,
- 0x00f4ffff, 0x00a9adc2, 0x001e284d, 0x00153868, 0x00194d81, 0x00395799, 0x005874c0, 0x005a8ddb, 0x003898ec, 0x00388ae3, 0x00367ad8, 0x003976d5, 0x003d79d8, 0x004481de, 0x004b88e6, 0x004a8ae7,
- 0x004a88e5, 0x003f7cda, 0x003976d3, 0x003c79d7, 0x004480de, 0x00497bd6, 0x004876cf, 0x004274cf, 0x003b75d3, 0x003876d4, 0x003d79d6, 0x003c78d1, 0x004778c5, 0x00517dbf, 0x005377b7, 0x005976b2,
- 0x00376ecb, 0x003771d0, 0x003974d9, 0x003874dc, 0x003773d4, 0x003874cb, 0x003874c6, 0x003a76c4, 0x00396dc7, 0x003264c1, 0x003c66c8, 0x004d6fca, 0x00395db9, 0x00274da7, 0x00244eaa, 0x001c49a8,
- 0x002149af, 0x002652b4, 0x002a58bd, 0x002755ba, 0x002656bc, 0x002559ba, 0x002259b9, 0x00235ab8, 0x00275dbb, 0x00275fbb, 0x002860bc, 0x002860ba, 0x00275fb8, 0x002b62ba, 0x002e63bb, 0x002c63ba,
- 0x002764bc, 0x002967bf, 0x002f6dc5, 0x00326ec9, 0x00235cb5, 0x00245bb7, 0x002f67c2, 0x00336cc8, 0x002d61bd, 0x00265bb5, 0x003064c0, 0x003163c0, 0x002966bf, 0x00276dc4, 0x003178ce, 0x00347cd0,
- 0x00336cc7, 0x002457b3, 0x002051b0, 0x00295cb8, 0x00316cc7, 0x00366ece, 0x003f73cb, 0x004e7dc1, 0x00597898, 0x0035495a, 0x001b242e, 0x008a8c92, 0x00fcf9ff, 0x00fefdfc, 0x00fffffc, 0x00fcfdf4,
- 0x00f6f7f2, 0x00e1d6c9, 0x00bba891, 0x00bfa383, 0x00c6a37e, 0x00c29f7c, 0x00be987b, 0x00bc9279, 0x00ba8b6f, 0x00ba8265, 0x00b67a5c, 0x00b47759, 0x00b17553, 0x00b47959, 0x00b77f5d, 0x00b78463,
- 0x00a78172, 0x009e8e99, 0x00a2a9c7, 0x0092afe9, 0x0071abfe, 0x0073a2f4, 0x006593df, 0x005d89d6, 0x006292e0, 0x006295e4, 0x005d97e4, 0x005996e2, 0x00568dd5, 0x005787c9, 0x005c85c1, 0x006084b9,
- 0x005f80b6, 0x005880c1, 0x005482c8, 0x00527ecf, 0x006682b9, 0x0079809a, 0x007e6f6f, 0x008c6b51, 0x009e7452, 0x00996d4d, 0x00764f38, 0x0051311f, 0x00401e09, 0x004b240c, 0x00623f22, 0x00684934,
- 0x004c392d, 0x0026190f, 0x00150a03, 0x0023120b, 0x00452c16, 0x00724820, 0x00ba8a55, 0x00e1b37e, 0x00e3b279, 0x00e2ac6e, 0x00dea765, 0x00dda45f, 0x00c5975e, 0x00ae9067, 0x00d3c3aa, 0x00f1efe4,
- 0x00eeeeef, 0x00f0eff2, 0x00f1f0f4, 0x00efeef2, 0x00e5e5e9, 0x00e2e2e6, 0x00e6e5eb, 0x00edecf3, 0x00eff0f7, 0x00eeeef6, 0x00edecf4, 0x00ebe9f1, 0x00e8e6ee, 0x00e7e5ee, 0x00eae8f1, 0x00efecf4,
- 0x00f0eff7, 0x00f1f0f8, 0x00f1eff8, 0x00f0eff5, 0x00f0eff6, 0x00f1f0f5, 0x00f1f0f5, 0x00f1eff4, 0x00f0f0f4, 0x00f1f1f6, 0x00f1f1f6, 0x00f1f0f6, 0x00f3f1f6, 0x00f3f1f6, 0x00f2f0f5, 0x00f2f0f6,
- 0x00f4f1f8, 0x00efeef3, 0x00efeef2, 0x00f0eff3, 0x00ebebef, 0x00eaeaee, 0x00e6e7e9, 0x00e3e3e4, 0x00eaece8, 0x00ececea, 0x00e9e9e8, 0x00f4f3f9, 0x00efebea, 0x00beb5b5, 0x006e615d, 0x00463531,
- 0x00402923, 0x003d241e, 0x00391f15, 0x00361b14, 0x0031150b, 0x002e110e, 0x002c120c, 0x002e190e, 0x00301d0c, 0x0039200c, 0x0044210e, 0x004d2111, 0x00552116, 0x004f2117, 0x006a4337, 0x00c5a696,
- 0x00fefefd, 0x00fafbf8, 0x00fcfefb, 0x00fafefc, 0x00ebf0f4, 0x009aa3b7, 0x00394b6a, 0x00496191, 0x005e85ca, 0x006c98e4, 0x0078a3f2, 0x0078a0ea, 0x007aa0ed, 0x00749beb, 0x006e96e9, 0x00729aef,
- 0x006f9aef, 0x006891e5, 0x006993e3, 0x006694de, 0x006292d9, 0x006999d9, 0x0075a6e0, 0x0076a9df, 0x0071a6d8, 0x00679ece, 0x00548fbd, 0x00508bba, 0x004f8dbc, 0x004f8abc, 0x004c86ba, 0x004a84ba,
- 0x004885b4, 0x004785b3, 0x004482b0, 0x004281af, 0x00407fad, 0x003f7eac, 0x003d7ba9, 0x003d7ba9, 0x003978a7, 0x003b78a8, 0x003c75a0, 0x00406f92, 0x003a688e, 0x0037648e, 0x00346290, 0x00366194,
- 0x00346094, 0x00345c95, 0x002f5a92, 0x002f5793, 0x002c548e, 0x002e568b, 0x002f5786, 0x002f5787, 0x00315d8a, 0x0034608c, 0x0038638e, 0x003b6690, 0x003c6791, 0x003d6992, 0x00416c94, 0x004c769c,
- 0x005d8198, 0x00557a94, 0x004e7592, 0x00567fa3, 0x00638cb8, 0x00587fb5, 0x004d71ab, 0x005a7aba, 0x005a73bb, 0x00566bb7, 0x0045599b, 0x00455887, 0x00304779, 0x001c356d, 0x0025417d, 0x003d5d9b,
- 0x004561a2, 0x00546ead, 0x004c66a1, 0x00324b86, 0x001c346a, 0x000b2a62, 0x0015386e, 0x00365692, 0x004c68b0, 0x004767b4, 0x00446bb8, 0x004975be, 0x003e5d9b, 0x003a4579, 0x004c406e, 0x004f2f57,
- 0x0043121a, 0x00835e5f, 0x00f7e4df, 0x00fffcf2, 0x00fdfef7, 0x00fffdfc, 0x00fbfdfc, 0x00d4d3d6, 0x004a4b45, 0x0016170e, 0x00242516, 0x002e2d18, 0x0030311c, 0x0032301d, 0x00312f1c, 0x0033311f,
- 0x0035311f, 0x0033311e, 0x0033321c, 0x00353322, 0x00353420, 0x00343420, 0x0035341f, 0x0037361d, 0x003c3623, 0x00393627, 0x0034372b, 0x00323a36, 0x00354f5f, 0x00426780, 0x005685a9, 0x006296c1,
- 0x00409bce, 0x004692cf, 0x004d8bcf, 0x005186d5, 0x004984cd, 0x00478ac9, 0x004587b5, 0x004782a0, 0x00616c7f, 0x00634f61, 0x00512f32, 0x004d2a14, 0x00594327, 0x00544835, 0x003a3a2b, 0x00222c22,
- 0x00152722, 0x001b2a23, 0x001f2e25, 0x00343e34, 0x00535548, 0x00525a4d, 0x00424e3a, 0x00393f2a, 0x0042381d, 0x005a4c2a, 0x0087714c, 0x00a78a64, 0x00bb9a71, 0x00bf9e78, 0x00c2a279, 0x00c8a47e,
- 0x00c49e65, 0x00c19d67, 0x00b7965e, 0x00c09e6d, 0x00b29466, 0x00937b51, 0x00766137, 0x00544719, 0x00343209, 0x00333309, 0x002f3210, 0x002f321a, 0x002c301b, 0x0030311d, 0x0031331f, 0x0033341e,
- 0x00333520, 0x00333520, 0x00353621, 0x00363722, 0x00363723, 0x00363721, 0x0033351e, 0x002f311d, 0x002d2e19, 0x002f301d, 0x00312f1f, 0x00312e1e, 0x00312c1d, 0x00302a1c, 0x002c261a, 0x005e584e,
- 0x00e3dedb, 0x00fdfdfc, 0x00f3f9fa, 0x00f6fdff, 0x00fcfbfc, 0x00fdebee, 0x00d2b1ae, 0x00c49994, 0x00ceacac, 0x00d4b8bb, 0x00dfd0d2, 0x00ebe4ee, 0x00e5dfe7, 0x00dfd9e4, 0x00e2dae4, 0x00e3dce6,
- 0x00e8e2eb, 0x00e9e2eb, 0x00f2eaf4, 0x00e8e1eb, 0x00cac3cd, 0x00c8bfc7, 0x00cac0c8, 0x00cbc0ca, 0x00cdc3ca, 0x00cec3cb, 0x00cbbfc7, 0x00c0b5be, 0x00b0a5ae, 0x00ada3ac, 0x00a399a2, 0x009e939d,
- 0x00998d99, 0x009d919d, 0x00a398a3, 0x00a599a4, 0x00a498a3, 0x00a1949f, 0x009e919d, 0x009c919c, 0x009f909b, 0x00b0a4af, 0x00d5c5c5, 0x00e7cdb3, 0x00bcb0cc, 0x00928eaa, 0x0090918e, 0x00c1bd86,
- 0x00cab04b, 0x00c5a653, 0x00c4b074, 0x00cbc6b2, 0x00b1cecf, 0x00b5cedb, 0x00c1d4e7, 0x00bdcdde, 0x00c6cbd8, 0x00cfcfd8, 0x00c5c0c6, 0x00c2b7bb, 0x00d0c3c7, 0x00d7cbcd, 0x00dccfd2, 0x00e9ddde,
- 0x00dde2fc, 0x00c9cae4, 0x00b4b4c4, 0x00bebdc5, 0x00e2e8f5, 0x00cfdaf3, 0x00aebada, 0x00c7d5f2, 0x00d5ddea, 0x00e8ecea, 0x00dee0e0, 0x00daddf9, 0x00f8e6ef, 0x00f3decf, 0x00b69d8e, 0x008f7e7f,
- 0x00807c90, 0x009d94a5, 0x00ada6b6, 0x00aca1ba, 0x00a6a5ac, 0x00aca5b1, 0x00aea4b2, 0x00b3a7b2, 0x00aea4b1, 0x00b1a8b2, 0x00b3abb3, 0x00b7b2b7, 0x00b7b3b8, 0x00c5c3c6, 0x00ebeaec, 0x00fcfcfc,
- 0x00fbfbf8, 0x00fefbfa, 0x00fefdfb, 0x00e9e2e5, 0x008c727a, 0x006a424e, 0x0093626c, 0x00a66e77, 0x00ac7772, 0x00ac7971, 0x00ad887e, 0x00ab9e92, 0x00c3a19a, 0x00c59693, 0x00a7716f, 0x008d5653,
- 0x00b2867e, 0x00e3beb4, 0x00efd1c2, 0x00f1d6c7, 0x00d5b7a8, 0x00a7835c, 0x007d6233, 0x00746e47, 0x00445e8d, 0x00163c8e, 0x000b3993, 0x000d4186, 0x00153c88, 0x00183990, 0x00183887, 0x0041639c,
- 0x00cfcef0, 0x00b3bcf6, 0x00374d9d, 0x001d3ea4, 0x00123fb6, 0x00113fb3, 0x001540af, 0x001945ac, 0x001d44aa, 0x001d43af, 0x001941ab, 0x001242a1, 0x00123ea2, 0x00113c9f, 0x00133b9e, 0x00153a9f,
- 0x00143499, 0x0018379b, 0x0020409d, 0x001e3f9b, 0x001c3c96, 0x00183da3, 0x00133ca6, 0x00133ba3, 0x00143da4, 0x001942a8, 0x001d46aa, 0x00234dae, 0x001e48a8, 0x001d46a5, 0x001b44a2, 0x001a42a0,
- 0x002349b8, 0x00254db0, 0x002750aa, 0x00264fa4, 0x00224da4, 0x001d44a3, 0x001f429e, 0x00243d8b, 0x00434b70, 0x00706b7b, 0x008d7d75, 0x008e6f4f, 0x00795f48, 0x00a89280, 0x00f9eee5, 0x00fefef8,
- 0x00f0fffd, 0x00f5fffe, 0x00f7fef4, 0x00e1dccb, 0x0085614c, 0x00543823, 0x004f3721, 0x004e3723, 0x004b3729, 0x0049362d, 0x003d2e28, 0x00372c29, 0x00332b2d, 0x002f2b2d, 0x00302e30, 0x00302f34,
- 0x00412e2d, 0x00493531, 0x00523e32, 0x005b4635, 0x00958163, 0x00c9b694, 0x00e2d3a5, 0x00ecdfab, 0x00e6e0a3, 0x00eae5a6, 0x00c7c484, 0x00a79c63, 0x00bdb387, 0x00cfc29f, 0x00ccc29d, 0x00ede3b9,
- 0x00d8d39b, 0x00b9b686, 0x007e7c5a, 0x00342e27, 0x00433b53, 0x003e528c, 0x002b539a, 0x00254e96, 0x00143f88, 0x000f3e85, 0x002758a2, 0x00295ba9, 0x002557af, 0x002c5fbb, 0x003264c6, 0x002858c0,
- 0x002a64b8, 0x003069be, 0x003a71c8, 0x00447bd1, 0x004980d6, 0x004880d6, 0x004078cf, 0x003e75cc, 0x004179d0, 0x00437ad2, 0x00427bd1, 0x004079d1, 0x00417acf, 0x004279cf, 0x004178cc, 0x003f77cb,
- 0x004276c9, 0x004379cc, 0x003e71c4, 0x00386abc, 0x00396bbe, 0x004170c5, 0x00436ec2, 0x003d67b8, 0x003157a2, 0x0026478b, 0x001e3d7b, 0x00223c74, 0x003d5082, 0x00586795, 0x002f3d67, 0x000e183e,
- 0x00011347, 0x00051a4f, 0x00071f56, 0x000b245d, 0x0016306a, 0x001b346f, 0x0018326b, 0x001f3a70, 0x002c4070, 0x00596d99, 0x008699c4, 0x007a8ab7, 0x0099a8c0, 0x00a4acb7, 0x005d6464, 0x00323431,
- 0x00373337, 0x003b363d, 0x003a393f, 0x003d3c40, 0x00434643, 0x004e4745, 0x00524843, 0x00554a41, 0x005f4a3c, 0x00624b39, 0x00644933, 0x0065482f, 0x00593d23, 0x00553c22, 0x00584127, 0x005e462c,
- 0x0060502a, 0x006a5a31, 0x0074653a, 0x00796b3b, 0x0080713e, 0x0083743f, 0x0083743f, 0x0082723d, 0x007f6e3d, 0x007f6d3f, 0x007a6c3c, 0x00746b3d, 0x00776c3b, 0x00796f41, 0x007c7243, 0x007f7448,
- 0x007c754f, 0x008c866a, 0x00d3d0b9, 0x00fbfae8, 0x00fbfef3, 0x00fefffb, 0x00fdfdfe, 0x00f6f7f7, 0x00a7a6a8, 0x00686969, 0x00949594, 0x00c5c5c5, 0x00eeedee, 0x00fcfbfc, 0x00fffefe, 0x00fdfdfc,
- 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00ffffff, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00ffffff, 0x00fefefe,
- 0x00fdfdfe, 0x00fdfefe, 0x00fdfeff, 0x00fefefe, 0x00fefefe, 0x00fdfefd, 0x00fdfffc, 0x00fcfffb, 0x00fdfffd, 0x00fefefd, 0x00fefdfc, 0x00fffffd, 0x00fcfcfb, 0x00fdfdfb, 0x00fffefc, 0x00fffdfc,
- 0x00fcfeff, 0x00fbfeff, 0x00fcfeff, 0x00fcffff, 0x00fcffff, 0x00fcffff, 0x00fcfffe, 0x00fcfffe, 0x00fdfefe, 0x00fbfefd, 0x00fafdfc, 0x00fafdfd, 0x00fbfefe, 0x00fcfeff, 0x00fcfeff, 0x00fdfefe,
- 0x00fffffe, 0x00fdfdfb, 0x00fefdfc, 0x00fffefd, 0x00fffdff, 0x00fcfeff, 0x00faffff, 0x00f9fefe, 0x00fefffc, 0x00fffdfd, 0x00fefdfd, 0x00fffdfb, 0x00fffbfd, 0x00fffcfd, 0x00fcfcfc, 0x00fffcff,
- 0x00f1fffe, 0x00a9aec9, 0x001d284f, 0x00213967, 0x00344d6e, 0x004a4b7a, 0x00626ba5, 0x005c88ce, 0x003899eb, 0x003f91e8, 0x003886e2, 0x00327ee4, 0x002b7bdb, 0x00327de3, 0x003b86eb, 0x003d88ed,
- 0x00408ef2, 0x003b88ed, 0x002e7ce1, 0x002a78dd, 0x00317ee3, 0x003c83e7, 0x00397fe2, 0x00357be0, 0x00327ce0, 0x00347de2, 0x00307ad9, 0x003177d3, 0x003a77cb, 0x004279c5, 0x004275bd, 0x004b78ba,
- 0x005077cd, 0x00537bd2, 0x00537cd1, 0x005681d2, 0x005b87d3, 0x005988ca, 0x005382c0, 0x005180be, 0x004873c7, 0x00446bcd, 0x005777d5, 0x0088a0eb, 0x005975c6, 0x0029469b, 0x0025489e, 0x002348a2,
- 0x00244bad, 0x00244eb1, 0x002959ba, 0x002756ba, 0x002558ba, 0x00275bbd, 0x002259b7, 0x001e55b4, 0x002158b5, 0x00275fbb, 0x002b63be, 0x002961bb, 0x00285fb8, 0x002c63bb, 0x002d64bb, 0x002c62ba,
- 0x002864bc, 0x002966bf, 0x002c6ac2, 0x003470ca, 0x002861bb, 0x00235ab6, 0x002c63bf, 0x00326bc7, 0x002962bc, 0x00245bb5, 0x002f63be, 0x002d61bc, 0x002664bd, 0x00296ec5, 0x00367bd3, 0x003a7cd4,
- 0x003167c2, 0x002456b2, 0x002051ae, 0x002d60ba, 0x002e6bc4, 0x00336ccf, 0x00376ccb, 0x003969b6, 0x00496b99, 0x00354b6a, 0x001e2b3a, 0x008f939d, 0x00fcfbfd, 0x00fefdfb, 0x00fefefa, 0x00fcfcf5,
- 0x00faf9f5, 0x00e1d9cc, 0x00baa993, 0x00bea485, 0x00c4a582, 0x00bfa281, 0x00bda183, 0x00b99b80, 0x00bd9679, 0x00bb8d6d, 0x00bb886b, 0x00b48765, 0x00b88364, 0x00b68661, 0x00bb8b6b, 0x00b78d71,
- 0x00ab9491, 0x00a9a8bd, 0x009eaede, 0x0082a8ec, 0x0063a0fd, 0x005f94e6, 0x005987d7, 0x005a87d4, 0x006994e5, 0x006599e6, 0x005a94e2, 0x005191df, 0x00528bd2, 0x005f8bc8, 0x0086a7d6, 0x009ab0d5,
- 0x007f91b6, 0x006b87b8, 0x006587c5, 0x005b7ec3, 0x006d7eaf, 0x00908b96, 0x00a58b79, 0x00c5976d, 0x00daa374, 0x00d19a75, 0x00c99675, 0x00b68b6c, 0x00ab7a55, 0x00b7845c, 0x00c4906c, 0x00c59974,
- 0x00a98b73, 0x00735b43, 0x002e1809, 0x002f1405, 0x00826345, 0x00be9364, 0x00d2a26e, 0x00d8ab74, 0x00deac73, 0x00e0aa6b, 0x00dea562, 0x00dca25c, 0x00c5975c, 0x00ae9066, 0x00d3c4a9, 0x00edece0,
- 0x00ececed, 0x00ececed, 0x00f0f0f2, 0x00f2f2f5, 0x00ecebf0, 0x00e1dfe6, 0x00e1dfe6, 0x00e9e8ee, 0x00efedf7, 0x00ecebf5, 0x00ebeaf3, 0x00eae9f2, 0x00e8e6ef, 0x00e7e5ed, 0x00e9e7ef, 0x00ecebf2,
- 0x00f0eef6, 0x00f0eff7, 0x00efeef7, 0x00eeedf4, 0x00efedf6, 0x00f1eff5, 0x00f1f0f4, 0x00f0f0f3, 0x00f3f1f7, 0x00f2f1f6, 0x00f2f1f6, 0x00f0eff4, 0x00eeeef4, 0x00f1f0f7, 0x00f3f3f8, 0x00f1f0f6,
- 0x00f1eef7, 0x00eeecf3, 0x00f1eef4, 0x00f1eff4, 0x00eeedf1, 0x00e8e9eb, 0x00e7e9e9, 0x00e7eae8, 0x00e9e8e9, 0x00ece9e9, 0x00ecebee, 0x00ececf1, 0x00f1eef2, 0x00f8f3f4, 0x00d4cccb, 0x008c7f7c,
- 0x0043302e, 0x0039241e, 0x0039201b, 0x00361b14, 0x0035180e, 0x0033160f, 0x00311711, 0x00311d0f, 0x00372210, 0x003e2410, 0x004a2512, 0x00522311, 0x005c2818, 0x00552716, 0x00643c2a, 0x00ba9b87,
- 0x00fefdfb, 0x00fcfcf7, 0x00fefefe, 0x00fcfefb, 0x00eef1f9, 0x00a7afc1, 0x00405372, 0x004d6995, 0x006389cf, 0x006590de, 0x006996e8, 0x006c99e8, 0x00709cee, 0x006b98ec, 0x006692e8, 0x006593ea,
- 0x006293ea, 0x006395eb, 0x006597e9, 0x005a8dd9, 0x00588ed7, 0x00609bdd, 0x0066a1df, 0x0067a1dc, 0x006ca1d8, 0x00629bcd, 0x00558cbc, 0x004884b4, 0x004583b7, 0x004182ba, 0x004383c1, 0x003f82c2,
- 0x004886b6, 0x004583b3, 0x004381b0, 0x00417fae, 0x004280af, 0x003e7dac, 0x003c7caa, 0x003b7caa, 0x003b7aa9, 0x003a79a8, 0x003d76a1, 0x003b7498, 0x00376d96, 0x00306a93, 0x00376d9a, 0x003a6f9e,
- 0x0037689a, 0x00346594, 0x00376093, 0x00355b8b, 0x00375789, 0x002e5887, 0x0030598a, 0x00305987, 0x00325b89, 0x00345e8a, 0x0035608b, 0x0036618b, 0x0036618a, 0x0039648d, 0x003b668e, 0x003d6a91,
- 0x0045708d, 0x00467190, 0x004a7598, 0x00507ca0, 0x00628cb9, 0x005981b3, 0x004e73ad, 0x005477b6, 0x004c64aa, 0x00354c93, 0x00233877, 0x001a3159, 0x000e2355, 0x000f2b5e, 0x00415c95, 0x0047659e,
- 0x003a5593, 0x004c669f, 0x00425792, 0x00263a70, 0x000e2356, 0x00052456, 0x0026477e, 0x0048639d, 0x00455ca2, 0x003758a2, 0x003e65b1, 0x00416eb9, 0x003b5895, 0x00383767, 0x004a3053, 0x005f2c42,
- 0x00722a27, 0x00a6726b, 0x00ffe7df, 0x00fefaf0, 0x00fdfef9, 0x00fbfdfb, 0x00fdfefc, 0x00d6d4d4, 0x004a4a44, 0x0011160d, 0x00212214, 0x002a2916, 0x00302e19, 0x002f2f1a, 0x00302d1a, 0x00312f1d,
- 0x0032321e, 0x0030311a, 0x0032311f, 0x0035311d, 0x00363421, 0x00333523, 0x00323728, 0x00303527, 0x002e312a, 0x00313b38, 0x00405156, 0x00506a77, 0x005e86a9, 0x006094c3, 0x005793cb, 0x004b8dcc,
- 0x00438dca, 0x004287ca, 0x004281cd, 0x004985d7, 0x004a89d6, 0x004a87c3, 0x004f7fb0, 0x00536f8b, 0x004c3a43, 0x00421c1a, 0x005f2210, 0x008c4a16, 0x0098603f, 0x008c684a, 0x00705746, 0x003a3022,
- 0x002c2b26, 0x00403f35, 0x004e493c, 0x005f5441, 0x00715b42, 0x00594f38, 0x0043361d, 0x0039280b, 0x00573716, 0x00926941, 0x00d09f70, 0x00e5ad78, 0x00f7b889, 0x00f9be8e, 0x00f4bf8e, 0x00f3bb8d,
- 0x00e5b376, 0x00daa96a, 0x00dcab70, 0x00e1af74, 0x00cb9d68, 0x00bd9865, 0x00957a4c, 0x005b4b20, 0x0031300d, 0x002c3512, 0x002b3216, 0x002d3019, 0x0030301b, 0x002f311d, 0x0032311f, 0x0031341e,
- 0x00353521, 0x00343421, 0x00353521, 0x00353622, 0x00353622, 0x0034361f, 0x0030341c, 0x002d301b, 0x002f2f1c, 0x002d2c1a, 0x00312f1f, 0x00312e1d, 0x002e291a, 0x002b2618, 0x002d271b, 0x0050493e,
- 0x00ccc8c4, 0x00f9f9f7, 0x00f7faff, 0x00f8fefe, 0x00fbfcfd, 0x00fbf8f7, 0x00e4d3d3, 0x00d1bab9, 0x00cfbbc1, 0x00d1c6cf, 0x00dad2dd, 0x00e7e1ea, 0x00e6dfe9, 0x00ddd9de, 0x00e0dae2, 0x00e1dbe2,
- 0x00e7deea, 0x00e8e0e9, 0x00f0eaf2, 0x00e8e4ed, 0x00cfc9d3, 0x00c7bfc8, 0x00cbc0c8, 0x00cdc3ca, 0x00cdc0ca, 0x00cdc2cb, 0x00c7bcc5, 0x00baafb8, 0x00ada2ab, 0x00aca2aa, 0x00a79da5, 0x009a9299,
- 0x00988c97, 0x009f939e, 0x00a396a2, 0x00a599a5, 0x00a599a5, 0x00a095a1, 0x009f939f, 0x009f939f, 0x009f939e, 0x00b0a5b1, 0x00d2c5cb, 0x00d5ccc3, 0x00beadce, 0x009a879d, 0x00a39288, 0x00d0bd81,
- 0x00c7ac51, 0x00c2aa69, 0x00d6c29f, 0x00ded8cc, 0x00c7d6c8, 0x00a7c2c4, 0x00afc9d4, 0x00bdd3dd, 0x00c9cfd9, 0x00d0cfd8, 0x00c7bfca, 0x00c0b6bd, 0x00cbc0c7, 0x00d7cbd2, 0x00e3d7e1, 0x00e7dee7,
- 0x00b7bcef, 0x00b9bce0, 0x00bebfdb, 0x00bcbccd, 0x00d1d8f0, 0x00bfcdeb, 0x00a6b5de, 0x00bdcdf8, 0x00dae0f5, 0x00e7ecef, 0x00dedbe4, 0x00dadcf8, 0x00f0e3ea, 0x00faece4, 0x00dec6ba, 0x00a68f81,
- 0x00897d87, 0x00948f9d, 0x00aea7be, 0x00a8a6b6, 0x00ada6ad, 0x00aba4ac, 0x00ada2af, 0x00afa5b0, 0x00b0a7b3, 0x00b5acb6, 0x00bab3ba, 0x00bdb7bd, 0x00c7c3c7, 0x00d4d2d6, 0x00f3f2f4, 0x00fdfcfd,
- 0x00fcfdfb, 0x00fbfcfa, 0x00fef9fc, 0x00ded4d6, 0x0085666f, 0x00795459, 0x009c6f74, 0x00ab787c, 0x00a36b69, 0x00a36a64, 0x00b88c84, 0x00b8a69b, 0x00cba69e, 0x00c69491, 0x00ad7473, 0x00884d4c,
- 0x00805148, 0x00a88275, 0x00caab9b, 0x00ceafa1, 0x00aa8777, 0x008a613b, 0x0077592b, 0x00776f45, 0x005a6d9a, 0x001f3f8d, 0x00123a91, 0x000e3b7e, 0x000e307a, 0x000f297e, 0x00051d67, 0x00142f5f,
- 0x00abafd4, 0x00c8d4fc, 0x005364ae, 0x001d3795, 0x00113aa8, 0x000e3aa8, 0x000e3ca5, 0x00103ea5, 0x00193fa6, 0x001a3ea5, 0x00183ca1, 0x00123c99, 0x00143b9c, 0x00163b9d, 0x0014369b, 0x00123099,
- 0x0017349b, 0x001a369b, 0x001e399a, 0x001b3595, 0x00162f8a, 0x000f2f92, 0x000c3196, 0x000c3094, 0x0013359a, 0x001a3ca0, 0x001b3e9f, 0x00183d9a, 0x001a3f9b, 0x001d439c, 0x001b4099, 0x001b4199,
- 0x0018389e, 0x00183d9b, 0x00183e99, 0x00174195, 0x00194095, 0x00153a8d, 0x00193686, 0x001f347c, 0x002d3867, 0x0036405b, 0x00454150, 0x004d3b32, 0x0046332a, 0x008f807b, 0x00f9f4ee, 0x00f8fbfb,
- 0x00effefe, 0x00f3fcfc, 0x00fafcf9, 0x00dbd1c7, 0x00835e49, 0x005b4128, 0x0057402a, 0x00553f28, 0x00523d30, 0x004c3b2f, 0x00413429, 0x00383028, 0x002f2b2a, 0x002a292b, 0x00292a2c, 0x002b2c30,
- 0x003d2f30, 0x00493a34, 0x0058463b, 0x006f5c48, 0x00bfad8f, 0x00e2d4aa, 0x00e7dca9, 0x00eae0a7, 0x00e7dea2, 0x00e0db9b, 0x00c6bf7f, 0x00b0a563, 0x00cbbe8e, 0x00dcd1a6, 0x00d2c79e, 0x00ede2b3,
- 0x00d2cb8f, 0x00c1be80, 0x00989167, 0x00493e2d, 0x00453546, 0x00394c83, 0x00264b94, 0x00264a93, 0x001e4891, 0x00124289, 0x001b4f98, 0x00265aa8, 0x00295cb3, 0x003062bd, 0x003161c2, 0x002d5bc1,
- 0x002c62b9, 0x00336ac0, 0x003f77cd, 0x00467fd4, 0x004981d7, 0x00457dd3, 0x004279d0, 0x003f77cc, 0x00417ad0, 0x00447bd3, 0x00447bd2, 0x00417ad1, 0x00407acf, 0x004179d0, 0x004077cc, 0x003f76cb,
- 0x004275c9, 0x004175c9, 0x003f71c5, 0x003768bb, 0x003869ba, 0x003e6cbc, 0x00426cbc, 0x003962b1, 0x00284893, 0x00143377, 0x000b2667, 0x0008245d, 0x00192a5c, 0x001f305c, 0x000b1944, 0x0007133a,
- 0x0005164b, 0x0003164a, 0x0004194d, 0x00092156, 0x00112b61, 0x00173066, 0x00193268, 0x001b3368, 0x00334479, 0x007b8cbe, 0x00bed1fa, 0x00b1bfea, 0x00cfddf2, 0x00dce5f1, 0x008a9394, 0x00404440,
- 0x003e3b40, 0x00423d43, 0x00454247, 0x00494749, 0x004e5047, 0x00575047, 0x005b4e47, 0x005c4d46, 0x00604b3e, 0x005c4635, 0x005c442f, 0x005b422a, 0x00533b23, 0x004e381f, 0x00523e25, 0x00534328,
- 0x005c4c2a, 0x00665630, 0x0073633b, 0x007c6c3f, 0x00827240, 0x0082723e, 0x0080703c, 0x007d6d39, 0x007e6938, 0x00796736, 0x00756536, 0x006d6333, 0x00716535, 0x00746835, 0x007d703f, 0x00827649,
- 0x007f7b50, 0x00949270, 0x00e0e0c5, 0x00fcfce7, 0x00fbfff2, 0x00fcfef8, 0x00fbfcfb, 0x00f5f6f5, 0x00969796, 0x005b5b5b, 0x00878687, 0x00afafaf, 0x00d4d5d4, 0x00dbdcdb, 0x00dededf, 0x00ddddde,
- 0x00dfdfdf, 0x00dfdfdf, 0x00dfdfdf, 0x00dfdfdf, 0x00dfdfdf, 0x00dfdfdf, 0x00dfdfdf, 0x00dfdfdf, 0x00dedede, 0x00dfdfdf, 0x00e1e1e1, 0x00e2e2e2, 0x00e3e3e3, 0x00e3e3e3, 0x00e3e3e3, 0x00e3e3e3,
- 0x00e4e3e3, 0x00e3e4e3, 0x00e4e3e4, 0x00e4e3e4, 0x00e3e4e3, 0x00e1e4e2, 0x00dfe4e1, 0x00e0e3e0, 0x00e4e4e3, 0x00e2e3e1, 0x00e3e4e2, 0x00e2e2e0, 0x00e7e6e3, 0x00e4e2e0, 0x00dfdddb, 0x00dddcd9,
- 0x00dcdddd, 0x00dcdddd, 0x00ddddde, 0x00dedede, 0x00dedede, 0x00dedede, 0x00dedede, 0x00dededd, 0x00e1dddf, 0x00deddde, 0x00dcdddc, 0x00dcdcda, 0x00dbdcd9, 0x00dbddd9, 0x00dbdeda, 0x00dddeda,
- 0x00e0dddd, 0x00dedbdb, 0x00e0dadb, 0x00e1dbdb, 0x00e0dada, 0x00dadbda, 0x00dadcdc, 0x00dddcdf, 0x00e0dcdc, 0x00dcd8d8, 0x00ded8d9, 0x00dad7d7, 0x00dbd6dc, 0x00dcdbe1, 0x00dcdce4, 0x00d8dae3,
- 0x00cbdee3, 0x008e98b7, 0x001f2956, 0x00283e67, 0x005a556a, 0x00684f6b, 0x0072638d, 0x006481be, 0x003c9be9, 0x004492e3, 0x00458de4, 0x003685de, 0x00317dd5, 0x002d7ad1, 0x00357fd9, 0x003683d9,
- 0x003784dd, 0x003786dd, 0x003480d9, 0x002a77cf, 0x002a76ce, 0x002d7cd7, 0x00337fdd, 0x00337cd8, 0x00357ed8, 0x00387fd5, 0x004183d4, 0x004689d3, 0x005a8fd2, 0x006a9ad8, 0x007fabe4, 0x008eb5eb,
- 0x00acc1eb, 0x00b1c7f1, 0x00bcd5f6, 0x00bfdbf7, 0x00bbdbf6, 0x00b5daf0, 0x00afd6ee, 0x009fc7e4, 0x0083a8df, 0x006689cc, 0x00637fca, 0x009fb6e7, 0x00647dbd, 0x00223a85, 0x00254390, 0x003050a5,
- 0x00274ba5, 0x00214ca8, 0x002655b5, 0x002757b4, 0x00245ab7, 0x00265bb9, 0x002057b6, 0x001852b0, 0x001c52af, 0x00255ab7, 0x002e62be, 0x002c61bb, 0x002a60b9, 0x002a62ba, 0x002c64bc, 0x002a62ba,
- 0x002a64c0, 0x002a65bf, 0x002d67c2, 0x00326dc6, 0x002b64bf, 0x00225bb5, 0x00275fba, 0x002f68c1, 0x002c64c0, 0x00255cb8, 0x002c60bd, 0x002b60bc, 0x002463bc, 0x002d71c7, 0x003679d0, 0x003573cc,
- 0x002a5ebd, 0x002252af, 0x002555b3, 0x002a5eb9, 0x002d6bc4, 0x002f6bcd, 0x002c63c6, 0x003161b8, 0x004566a3, 0x00354e74, 0x0024354d, 0x00919aa0, 0x00fefeff, 0x00fefdf9, 0x00fdfefa, 0x00fbfdf9,
- 0x00fbfcf9, 0x00e3dcd2, 0x00b9aa97, 0x00bfa68a, 0x00c2a684, 0x00bea785, 0x00bba686, 0x00b9a385, 0x00bc9e81, 0x00bd9778, 0x00bc9274, 0x00b79473, 0x00b98d6e, 0x00b68d6c, 0x00b78f75, 0x00b59585,
- 0x00aba7b2, 0x009dadce, 0x008ba8e4, 0x0075a6f3, 0x005c9af9, 0x00538ae0, 0x005684d8, 0x005e87d9, 0x006893de, 0x006698e2, 0x005993df, 0x004b8ad8, 0x00548ad0, 0x007196cb, 0x00b1c6eb, 0x00d5daef,
- 0x00cccedf, 0x00afbcdf, 0x008da2d4, 0x006982c2, 0x00767da4, 0x009f8c90, 0x00ad8468, 0x00c0834f, 0x00b3753f, 0x009f653d, 0x00a56f4a, 0x00bb845a, 0x00c98d5c, 0x00d5935d, 0x00e5a371, 0x00e7aa7b,
- 0x00cfa881, 0x00b4916e, 0x006d4c2c, 0x004b2608, 0x00926941, 0x00d4a475, 0x00daaa73, 0x00d6a973, 0x00d9a76d, 0x00dba567, 0x00daa15f, 0x00d59954, 0x00c29259, 0x00b19169, 0x00d7c5ac, 0x00efeae0,
- 0x00e7e8e9, 0x00ebebed, 0x00f1f2f3, 0x00f2f2f5, 0x00edebf1, 0x00e2e0e7, 0x00e0dee4, 0x00e4e2e9, 0x00ecebf4, 0x00ecebf5, 0x00ecebf4, 0x00ebebf3, 0x00ebe9f2, 0x00e8e5ee, 0x00e7e5ed, 0x00eae8f0,
- 0x00eeedf3, 0x00f0eef6, 0x00efeef6, 0x00edecf3, 0x00eeecf6, 0x00f0eff5, 0x00f0f0f5, 0x00f1f1f5, 0x00f1f0f5, 0x00f1f0f6, 0x00f0f0f4, 0x00efeff3, 0x00efeef5, 0x00f1f0f6, 0x00f2f2f7, 0x00f3f2f8,
- 0x00efeff6, 0x00efeff4, 0x00f1f0f5, 0x00f1f0f4, 0x00f1eff3, 0x00ecebee, 0x00e9e9ea, 0x00e5e5e5, 0x00e5e5e7, 0x00eaebe9, 0x00eaebeb, 0x00f0f0f0, 0x00edecf1, 0x00f1eef0, 0x00f4eef0, 0x00d5cecd,
- 0x00796c6b, 0x003d2c29, 0x0037221d, 0x00381f1a, 0x0032170c, 0x00351913, 0x00331a14, 0x00352015, 0x00382511, 0x00432815, 0x004c2814, 0x00562814, 0x005e2818, 0x005d2d1b, 0x00623825, 0x00b4927f,
- 0x00fdfef8, 0x00fefff7, 0x00fdfefa, 0x00fefffc, 0x00f2f4fa, 0x00b1b8cb, 0x00435573, 0x0048638f, 0x005b81c1, 0x00638dd8, 0x006594e5, 0x006698e8, 0x00699aef, 0x006495ec, 0x005f90e9, 0x005f92ea,
- 0x005b93e7, 0x005e96e9, 0x006198e9, 0x00598edc, 0x005c94e0, 0x0060a0e4, 0x005d9fdf, 0x005d9bda, 0x00639acf, 0x005c91c3, 0x004e84b1, 0x00487dab, 0x003f7caf, 0x003f7fb8, 0x003d82c0, 0x003981c4,
- 0x004583af, 0x004381ad, 0x004380ac, 0x004480ad, 0x004480ae, 0x00417eac, 0x003f7cab, 0x003e7cab, 0x003c7aaa, 0x003c7aa8, 0x003c78a5, 0x003977a0, 0x0033739f, 0x002f739e, 0x003579a6, 0x003275a4,
- 0x00346e9a, 0x00346892, 0x00356088, 0x00375c83, 0x0039547b, 0x002d5782, 0x002c5587, 0x002d5788, 0x002c5884, 0x002f5b86, 0x002f5c86, 0x002f5d85, 0x00315d86, 0x00325e87, 0x00336088, 0x0035628a,
- 0x00386a89, 0x003d6e90, 0x00447496, 0x004b7ba0, 0x005d89b1, 0x005983b2, 0x00557daf, 0x00577bb5, 0x00425c9e, 0x00213b7e, 0x00112862, 0x00081b40, 0x00051a49, 0x001d3666, 0x004f689e, 0x003b558f,
- 0x002e4983, 0x00435c93, 0x0034487e, 0x001f3161, 0x000d1f49, 0x00153061, 0x0038548b, 0x004f639c, 0x00425393, 0x00344f99, 0x00365ba7, 0x003968b5, 0x003c5797, 0x003c3560, 0x004d263e, 0x00722d34,
- 0x00963d2a, 0x00c68371, 0x00ffe6d9, 0x00fdfaf2, 0x00f9fffc, 0x00fafefd, 0x00fdfefc, 0x00d7d5d1, 0x00494a40, 0x0011150b, 0x001d2112, 0x00292714, 0x002d2c18, 0x002f2c19, 0x002f2c1a, 0x00322e1d,
- 0x00302f1b, 0x002f2e1a, 0x00322f1b, 0x00332e1c, 0x0033321f, 0x002f3628, 0x0027362a, 0x002f403c, 0x003e4f54, 0x004c6673, 0x00628199, 0x006490b0, 0x006295cc, 0x004f90cc, 0x004289cd, 0x003e8bd3,
- 0x004c7fc6, 0x004881c7, 0x004786cd, 0x00478cd4, 0x004b82c4, 0x004c71a7, 0x0045537f, 0x00423551, 0x00330e0f, 0x00390c04, 0x0073331c, 0x00b45830, 0x00ab5d42, 0x00804734, 0x00613b32, 0x00472e2e,
- 0x003b3034, 0x004a3f3e, 0x00564443, 0x005f493f, 0x00644034, 0x004a3226, 0x003c1e14, 0x003d1b0d, 0x00805138, 0x00c68f6e, 0x00edad84, 0x00f0a77c, 0x00f7a97e, 0x00fdb28b, 0x00f7b188, 0x00eea480,
- 0x00c28a5d, 0x00b27749, 0x00b87b51, 0x00b4764d, 0x00a16a42, 0x00a37957, 0x006e5036, 0x003a2816, 0x0026291e, 0x0027312a, 0x00283227, 0x002f301b, 0x0030311d, 0x0033321f, 0x00343421, 0x00353620,
- 0x00343521, 0x00333421, 0x00343521, 0x00353521, 0x00353521, 0x0033351e, 0x0031341c, 0x002d301b, 0x002e2f1b, 0x002c2c1a, 0x002f2d1c, 0x002d2a1a, 0x002d281a, 0x002d271a, 0x002f291c, 0x00484135,
- 0x00b2afa6, 0x00f3f4f0, 0x00fbfdff, 0x00f9fdff, 0x00fbfcfd, 0x00f9fbfd, 0x00e1dddd, 0x00c5c0c2, 0x00bfbcc4, 0x00c4c3d3, 0x00d3d3e2, 0x00e6e0ea, 0x00e8e2ed, 0x00e1dbe3, 0x00dfd8e2, 0x00e0d9e2,
- 0x00e2dce6, 0x00e4dee5, 0x00eae5ee, 0x00ece8f2, 0x00d4cdd7, 0x00c9bfc8, 0x00cabfc9, 0x00cdc1ca, 0x00c7bcc6, 0x00cfc4cd, 0x00c1b6bf, 0x00b5abb4, 0x00ada1aa, 0x00aea3ab, 0x00a99fa7, 0x009e949c,
- 0x00958b96, 0x00a095a0, 0x00a396a2, 0x00a599a5, 0x00a59aa6, 0x009e939f, 0x009e929e, 0x00a193a0, 0x00a298a3, 0x00b4abb4, 0x00cdc8d3, 0x00c9ccdc, 0x00c4aed2, 0x00ae8b9b, 0x00b58e7f, 0x00cba26a,
- 0x00b89c54, 0x00cab28d, 0x00decdbf, 0x00e1d4d3, 0x00e5e2c6, 0x00b7cdc6, 0x00adcacc, 0x00c5dadf, 0x00ced6da, 0x00dad7e1, 0x00d4ccd9, 0x00c7bcc9, 0x00ccc1d4, 0x00cdc3d8, 0x00e1d8ef, 0x00c2bfd7,
- 0x00858ccb, 0x00a5aadc, 0x00b7b9e2, 0x00b1b2d0, 0x00bcc4e7, 0x00b2c0ed, 0x009babdd, 0x00b4c7f5, 0x00dfe9fe, 0x00e0e2f1, 0x00e4dff2, 0x00dedafb, 0x00ede3e9, 0x00faf1ef, 0x00f5ddd1, 0x00c7a98f,
- 0x00907b74, 0x00918797, 0x00b0aac5, 0x00aba9b8, 0x00aea2ac, 0x00aba3ab, 0x00aba1ad, 0x00ada1ac, 0x00aca5af, 0x00b2aab4, 0x00b6afb6, 0x00b8b3b8, 0x00c4bfc4, 0x00d8d6d9, 0x00f7f5f7, 0x00fffcff,
- 0x00f5fdf7, 0x00fbfbf9, 0x00fffbfb, 0x00deccd1, 0x009d7b80, 0x00ba9497, 0x00e0b9b8, 0x00edc0c0, 0x00cc9694, 0x00b57c79, 0x00ae7f78, 0x00b29b8e, 0x00c99e96, 0x00c18a86, 0x00ab6b6b, 0x008d4a4c,
- 0x00643227, 0x00754c40, 0x00916f62, 0x00917065, 0x00775346, 0x00704422, 0x00765326, 0x00786b40, 0x00667999, 0x002c4990, 0x00163b8f, 0x00113b7f, 0x000b2672, 0x00071a6d, 0x00001054, 0x0001143a,
- 0x00627197, 0x00b8c7ec, 0x006674b6, 0x001d3183, 0x0017369a, 0x000d3696, 0x00093495, 0x00073799, 0x00133b98, 0x00183a97, 0x00183591, 0x0013338a, 0x00102c88, 0x00122e8d, 0x00152f93, 0x00162f97,
- 0x00162d94, 0x001d3397, 0x00203597, 0x001b2f8f, 0x00152883, 0x000b2883, 0x0010318d, 0x0011328f, 0x0013328e, 0x00183792, 0x00183790, 0x0018378d, 0x0017368b, 0x00163689, 0x00103283, 0x00163888,
- 0x001b378e, 0x0019398f, 0x00103286, 0x00072d80, 0x00042370, 0x00031e67, 0x000d2469, 0x00132666, 0x0015265b, 0x00112652, 0x001b274b, 0x002e2c45, 0x00443a49, 0x00969199, 0x00f9fafd, 0x00f7fbff,
- 0x00f4fefd, 0x00f7fbfd, 0x00fdf9fb, 0x00d2c4c1, 0x007c5a44, 0x005f472e, 0x005b462e, 0x005a452e, 0x0053422e, 0x004f4030, 0x00463b2c, 0x003a3427, 0x002c2926, 0x00252525, 0x00222426, 0x0023252c,
- 0x00382e2d, 0x00473b34, 0x005f5140, 0x0093836c, 0x00dccda7, 0x00e0d4a5, 0x00e1d89f, 0x00e3da9e, 0x00e1da9a, 0x00dbd594, 0x00cdc783, 0x00cabe78, 0x00dacd99, 0x00d4c799, 0x00c6bc8f, 0x00d1c895,
- 0x00bfb874, 0x00c7c07f, 0x00ab9f70, 0x00615138, 0x004a353b, 0x00374474, 0x002c498e, 0x002a498f, 0x001b4489, 0x00104084, 0x00184c93, 0x00235aa5, 0x002b60b6, 0x003164bf, 0x002d5dbd, 0x002e5cbf,
- 0x002e66bb, 0x003870c6, 0x00427acf, 0x004982d7, 0x00487fd6, 0x00437ad2, 0x004179cf, 0x004279d0, 0x00417bd0, 0x00447cd2, 0x00457cd2, 0x00437bd2, 0x00437cd2, 0x00427ad1, 0x004177cd, 0x003f75cb,
- 0x003e73c6, 0x004174c8, 0x004071c5, 0x003364b6, 0x003465b6, 0x003d6bba, 0x00406ab8, 0x00325aa9, 0x001f428a, 0x00143478, 0x00082766, 0x00031d56, 0x00011647, 0x00071744, 0x0001103b, 0x0006133c,
- 0x00011346, 0x0005184a, 0x00091e50, 0x000d2458, 0x00112b61, 0x00132e64, 0x00163066, 0x00182f66, 0x0033487e, 0x007286bc, 0x00aabdeb, 0x00a0afdd, 0x00c5d3ee, 0x00dae5f5, 0x00929da4, 0x00464c4d,
- 0x00434447, 0x00474547, 0x004e4a4c, 0x0056514f, 0x005b594c, 0x00605649, 0x0063534a, 0x0063524b, 0x005f4d3e, 0x00594635, 0x0055402d, 0x00523f29, 0x004d3924, 0x00493620, 0x004a3a22, 0x004c4025,
- 0x00544928, 0x005f532f, 0x006e613b, 0x007a6c41, 0x00817242, 0x0080703e, 0x007d6c3b, 0x007a6837, 0x00796432, 0x00746131, 0x00715f31, 0x006b5c32, 0x006e6030, 0x006e612f, 0x00776a36, 0x007d7343,
- 0x007c7748, 0x009a9873, 0x00e7e9cc, 0x00fcfce9, 0x00fcfff6, 0x00fbfefa, 0x00f7f8f9, 0x00ecebed, 0x00737573, 0x00383938, 0x00515051, 0x00636263, 0x00797979, 0x007d7e7d, 0x00807f80, 0x00817f81,
- 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00808080, 0x00828282, 0x00838383, 0x00838383, 0x00828282, 0x00828282, 0x00838383,
- 0x00848483, 0x00848484, 0x00848485, 0x00858484, 0x00848484, 0x00808682, 0x007e8581, 0x007f8381, 0x00818480, 0x00828580, 0x00828581, 0x0081827f, 0x00878582, 0x007c7977, 0x00676463, 0x0064615f,
- 0x00646260, 0x00656361, 0x00666462, 0x00676462, 0x00676463, 0x00676362, 0x00666261, 0x00666361, 0x00686462, 0x00676462, 0x00666361, 0x0067625e, 0x0067615d, 0x0066625c, 0x0066625c, 0x0068615d,
- 0x00655d5a, 0x00655b5a, 0x00685b5b, 0x00695d5b, 0x00685c5b, 0x00625e5b, 0x00615f5e, 0x00655f61, 0x00645c5b, 0x00625a5a, 0x00605a5c, 0x00605a5e, 0x00676771, 0x006c6f7d, 0x00666f7f, 0x005f6b7e,
- 0x0055727f, 0x0043537e, 0x00243063, 0x003d4a72, 0x00846165, 0x008a515a, 0x00805770, 0x006d79ac, 0x00419be0, 0x00498fd9, 0x00508ed8, 0x004b8ccb, 0x004d8ed1, 0x004f90d0, 0x005494d8, 0x005797da,
- 0x005596d8, 0x005496d8, 0x005494d7, 0x004e8ecf, 0x004585c6, 0x003d85ca, 0x00418ad2, 0x004a8ed4, 0x005796d8, 0x00659edc, 0x0079abe1, 0x0093c0ec, 0x00b0d4f3, 0x00c6e2f9, 0x00d0ebfa, 0x00d9f0ff,
- 0x00f1f6ec, 0x00f5f9f5, 0x00f7faf9, 0x00f4fbf7, 0x00f0fdf4, 0x00e9fcec, 0x00e6fdf1, 0x00dff8f2, 0x00cbedf6, 0x00a8c9e8, 0x007793bc, 0x006b80ac, 0x00425887, 0x003c528e, 0x004b67a9, 0x004969b3,
- 0x00264d9b, 0x00214ea0, 0x002253a9, 0x002659af, 0x00295fb4, 0x00275cba, 0x002257b7, 0x001952b0, 0x001b52b0, 0x002459b6, 0x002c61bc, 0x002c62bb, 0x002c61ba, 0x002a61ba, 0x002c64bc, 0x002d65bd,
- 0x002965c0, 0x002a65bf, 0x002f69c5, 0x00306bc3, 0x002c66c3, 0x00225bb5, 0x002059b3, 0x00275fb9, 0x002960ba, 0x00235ab6, 0x00285ebb, 0x002860bc, 0x002665bf, 0x003374cc, 0x003275cb, 0x002562bc,
- 0x002456b3, 0x002250ad, 0x002a59b7, 0x00275cb6, 0x002e6dc7, 0x00306ed0, 0x002962c6, 0x002b5cbb, 0x00466db1, 0x003e5b89, 0x002f455e, 0x0096a2a9, 0x00fdfffa, 0x00fcfbf6, 0x00fefefa, 0x00fcfcfc,
- 0x00fefefe, 0x00e6e1d9, 0x00bbad9d, 0x00bfa88d, 0x00c1a786, 0x00bda989, 0x00bba98b, 0x00b9a88a, 0x00bba388, 0x00bd9e80, 0x00b99a7c, 0x00b79b7d, 0x00bc997d, 0x00b9957d, 0x00b5998c, 0x00b4a4a5,
- 0x009eadd3, 0x008aabe2, 0x0076a4eb, 0x006aa1f3, 0x005d92ec, 0x004e85da, 0x005384d7, 0x006189d8, 0x006d93d8, 0x006592d8, 0x00578cd6, 0x004d89d6, 0x005383c6, 0x00849dca, 0x00c5c8e0, 0x00ddc9cf,
- 0x00e7d5d6, 0x00e2e0f4, 0x00bfcbf4, 0x00869cd6, 0x00747899, 0x0099807d, 0x00a47556, 0x0097561d, 0x00743805, 0x00522100, 0x00471503, 0x00854c26, 0x00d18b59, 0x00d3884c, 0x00e69a62, 0x00e69e66,
- 0x00dda576, 0x00deac7d, 0x00c09163, 0x009d6d40, 0x00ba8450, 0x00daa470, 0x00d9a770, 0x00d2a46b, 0x00d3a068, 0x00d49d60, 0x00d29858, 0x00ce9050, 0x00bd8b57, 0x00ae8b69, 0x00d9c3b1, 0x00f0e8e4,
- 0x00e6e6e7, 0x00e8e8ea, 0x00edeeef, 0x00f1f2f3, 0x00eeebf2, 0x00e5e3ea, 0x00e0dfe5, 0x00e0e0e6, 0x00e7e6ef, 0x00ecebf4, 0x00eeeef6, 0x00eeeef6, 0x00efecf6, 0x00eae7f1, 0x00e5e3ed, 0x00e7e5ee,
- 0x00edebf1, 0x00f0eef5, 0x00efeff6, 0x00ededf3, 0x00efecf5, 0x00f0eef5, 0x00f0f0f6, 0x00f0f0f6, 0x00f1f1f7, 0x00f0eff6, 0x00efeff4, 0x00efeff4, 0x00efeff6, 0x00f1eff6, 0x00f2f0f5, 0x00f2eff5,
- 0x00f0eff5, 0x00f0eff5, 0x00f2f1f6, 0x00f1f0f5, 0x00efeff2, 0x00f0f0f2, 0x00ececee, 0x00e8e8ea, 0x00e8e8e8, 0x00e8e7e6, 0x00eceae8, 0x00eeece9, 0x00f0edf1, 0x00eeebef, 0x00f3eff4, 0x00f8f5f7,
- 0x00d7d0d0, 0x00867b7a, 0x003b2c2a, 0x002f1d19, 0x0037201a, 0x00351c19, 0x00331d19, 0x00322016, 0x00382615, 0x00422817, 0x004e2a18, 0x005a2c19, 0x00602a1a, 0x00612f1e, 0x005f3421, 0x00a88371,
- 0x00fefff9, 0x00fefef7, 0x00fefdf9, 0x00fefdfa, 0x00f8f9fe, 0x00bbc1d3, 0x00475675, 0x00425a87, 0x005478b9, 0x006089d3, 0x006595e3, 0x006497e4, 0x006294e6, 0x005f90e2, 0x005f8fe3, 0x00608fe5,
- 0x00608fdf, 0x006191dd, 0x006493db, 0x006490d5, 0x006896da, 0x006ba2db, 0x005e96c7, 0x00598bb9, 0x00658aad, 0x006485a4, 0x00607e98, 0x00587794, 0x004e7499, 0x004978a4, 0x00477cae, 0x00417db4,
- 0x005183a6, 0x005081a4, 0x004e7fa2, 0x004d7ea1, 0x004d7da1, 0x004d7da1, 0x004c7ca0, 0x004a7a9e, 0x0048759d, 0x0045769b, 0x00447598, 0x003f7193, 0x00346d93, 0x00317097, 0x003677a1, 0x002d709c,
- 0x002b6996, 0x002b638a, 0x002b5b7e, 0x002f5675, 0x00365372, 0x002d587f, 0x002b5889, 0x002b5b8a, 0x002a5a86, 0x002b5b86, 0x00295b83, 0x002b5c83, 0x00305f87, 0x00316087, 0x0034648a, 0x0038688e,
- 0x003f7498, 0x0043779c, 0x00497ea0, 0x004e81a4, 0x005888ad, 0x005f8bb5, 0x00628cb8, 0x005b83b3, 0x003a5a97, 0x00173674, 0x00082358, 0x0004123b, 0x00102353, 0x003a4e84, 0x004d649d, 0x002f4685,
- 0x002e4280, 0x003a4e84, 0x00263969, 0x0017274e, 0x00132143, 0x00223965, 0x00384f82, 0x00485689, 0x00424e88, 0x00344b92, 0x003154a1, 0x003262b2, 0x00405c9e, 0x0044375f, 0x00562232, 0x008b322d,
- 0x00ba4e2f, 0x00da8d73, 0x00fee8d8, 0x00fffbf6, 0x00f6fffe, 0x00f9ffff, 0x00fafefc, 0x00d8d5d0, 0x004c4a3e, 0x0011160a, 0x001e2212, 0x00292714, 0x002e2c18, 0x002f2d1a, 0x00302e1a, 0x0032301e,
- 0x00322d1e, 0x00322d1d, 0x00322e1d, 0x00322f1c, 0x00343222, 0x00303428, 0x0027372d, 0x00455b5b, 0x007395a9, 0x0076a0c2, 0x006497c3, 0x005994cc, 0x00508ed2, 0x004487cd, 0x003f84c9, 0x004087ce,
- 0x00448cd9, 0x005289d0, 0x006383c3, 0x006a74a6, 0x005a4f6f, 0x00463948, 0x002d2026, 0x0022100e, 0x00240204, 0x0042181a, 0x00894f43, 0x00c5754c, 0x00d39178, 0x00926553, 0x003f2318, 0x00261a18,
- 0x0026272e, 0x0027292c, 0x002d2f2d, 0x0034302b, 0x002f251f, 0x002b1f17, 0x0024150d, 0x00412f20, 0x00a8856c, 0x00deb190, 0x00e5ae88, 0x00e3a87f, 0x00e3a77c, 0x00dfa47e, 0x00c28b66, 0x009e6b46,
- 0x008e5339, 0x00763b1f, 0x00561d08, 0x004b1606, 0x00663627, 0x006c473b, 0x003c221b, 0x00281716, 0x002a2d33, 0x00272e3b, 0x00262e2e, 0x002d311b, 0x0031311e, 0x00323320, 0x00343522, 0x00323422,
- 0x00333521, 0x00323421, 0x00343521, 0x00343521, 0x00353521, 0x0034361f, 0x0032341c, 0x002e301b, 0x002e2f1b, 0x002d2d1b, 0x002e2d1c, 0x002c2a1a, 0x002f2a1e, 0x00302a1e, 0x00322b1d, 0x0040382b,
- 0x009a998d, 0x00eeece9, 0x00fdfdfe, 0x00fdfaff, 0x00fefcff, 0x00fcfdfc, 0x00e2e6e4, 0x00c2c8c6, 0x00b8bac6, 0x00bfc0d4, 0x00d4d2e4, 0x00e5dfe9, 0x00ede7f3, 0x00e8e1eb, 0x00e4e0e9, 0x00e1dce5,
- 0x00e4e0e7, 0x00e1dbe3, 0x00e5e0e9, 0x00ede8f2, 0x00ded4df, 0x00d0c3cd, 0x00cabec8, 0x00cdc0cb, 0x00c9bfc7, 0x00cdc3cb, 0x00beb4bc, 0x00b4aab2, 0x00ab9fa8, 0x00ab9fa9, 0x00aa9fa8, 0x00a397a1,
- 0x00968b98, 0x009f94a0, 0x00a599a5, 0x00a79ba7, 0x00a69aa5, 0x009f939f, 0x009e909d, 0x00a193a0, 0x00a89aa8, 0x00b8aeba, 0x00cecadf, 0x00c4cff7, 0x00d8c1de, 0x00c2969d, 0x00a16758, 0x00844629,
- 0x00855743, 0x00b38e88, 0x00e4c9c9, 0x00e3cecc, 0x00f1d9bc, 0x00c7d0c0, 0x00b7cfc5, 0x00c8dbd4, 0x00d4d9d9, 0x00e9e4ee, 0x00e4dbeb, 0x00d3c8df, 0x00bdb5da, 0x00aaa7d2, 0x00acabdb, 0x007d83b5,
- 0x006d76b9, 0x00a4aae0, 0x00acafdb, 0x00aaaace, 0x00acb2dd, 0x00adb8eb, 0x0099a6dd, 0x00b0bff1, 0x00dbdefe, 0x00e0dcf4, 0x00ebe3fc, 0x00e5d8fc, 0x00e7e6e5, 0x00f9efef, 0x00fee0d0, 0x00ecbf93,
- 0x00a8816b, 0x00938293, 0x00ada9c7, 0x00a7abb7, 0x00b5a1af, 0x00b1a3b0, 0x00aea4b0, 0x00aca3ad, 0x00aba3ac, 0x00aca3ad, 0x00aea8b0, 0x00aeaaaf, 0x00bbb5ba, 0x00d8d4d8, 0x00fbfafc, 0x00fffeff,
- 0x00f3fffa, 0x00f9faf9, 0x00fef9f9, 0x00e5cfd2, 0x00caaaad, 0x00ebcccb, 0x00ffe5df, 0x00ffe0db, 0x00f1c7c0, 0x00ce9a96, 0x009c6d64, 0x00a27d6c, 0x00b88178, 0x00b5736e, 0x00a25a59, 0x00873e3f,
- 0x00703833, 0x007d5148, 0x008a685e, 0x008c6e66, 0x0078574e, 0x006f4325, 0x00744f24, 0x00716233, 0x0069798e, 0x00435c9b, 0x00173786, 0x000f337b, 0x00061a6c, 0x00040f62, 0x00000847, 0x00010c28,
- 0x001a2f53, 0x007483ae, 0x008e94c8, 0x0042437f, 0x0021266a, 0x0015266c, 0x000d266e, 0x0009286f, 0x000c2870, 0x00122770, 0x0013246c, 0x00142367, 0x000f1f67, 0x0011206f, 0x0014267b, 0x00172a83,
- 0x00162b86, 0x00162a83, 0x0013257d, 0x000f2176, 0x00111f71, 0x000e236f, 0x00142c76, 0x00152c76, 0x00112874, 0x00122974, 0x00132b76, 0x000f2871, 0x000b246d, 0x000a236a, 0x00051d63, 0x00071f65,
- 0x000a1553, 0x00061a5c, 0x0009256a, 0x000b2d76, 0x00092263, 0x00172b68, 0x00465890, 0x00505f97, 0x00243f7e, 0x001d4386, 0x002f559b, 0x0037579b, 0x005a6993, 0x00aeb6d0, 0x00fbffff, 0x00f8f8fa,
- 0x00fdfeff, 0x00fcf9fe, 0x00fbf4f8, 0x00c5b6b7, 0x006f5642, 0x00604b35, 0x00604e37, 0x005f4d35, 0x005b4b35, 0x00554733, 0x004f4431, 0x00433b2b, 0x00332e24, 0x00292620, 0x00242220, 0x00242224,
- 0x003b312a, 0x00493e30, 0x0072664e, 0x00bcb08e, 0x00decfa0, 0x00d9cb95, 0x00ded397, 0x00dcd294, 0x00ded297, 0x00d5cb8f, 0x00c0b878, 0x00d0c884, 0x00e5d8a8, 0x00c2b78d, 0x00aca279, 0x009c9163,
- 0x00b4ab6c, 0x00c5b97e, 0x00b5a678, 0x00765e42, 0x00573c3e, 0x00404060, 0x002d3f71, 0x002e4477, 0x00214281, 0x00143d81, 0x00184893, 0x00245aa8, 0x003166bd, 0x00366ac3, 0x002c5eb9, 0x002b5bb7,
- 0x003770c5, 0x004179ce, 0x00457ed2, 0x004a83d7, 0x004a7fd8, 0x00447ad2, 0x00437cd2, 0x00437cd3, 0x00437dd2, 0x00447dd2, 0x00437cd2, 0x00427bd1, 0x00427bd2, 0x004279cf, 0x004076cd, 0x003f75cb,
- 0x003f74c9, 0x004173c9, 0x003e6fc2, 0x003062b4, 0x003365b7, 0x003f6ebe, 0x003f6ab8, 0x002e56a5, 0x001f438e, 0x001d4086, 0x001a3a7c, 0x00122e68, 0x0004194d, 0x00001242, 0x0000103e, 0x00071643,
- 0x00041448, 0x0008194b, 0x000e2254, 0x0010275b, 0x00102a60, 0x00112d64, 0x0016316a, 0x0017306b, 0x00223875, 0x003d538f, 0x00576aa8, 0x005369a1, 0x008295be, 0x00b4c5dd, 0x008c98aa, 0x00525a65,
- 0x004b4d56, 0x004f4e53, 0x00595355, 0x00625a53, 0x0068604c, 0x006c5e4a, 0x006c5a49, 0x00695746, 0x00614f3e, 0x00574734, 0x004e402c, 0x00483a27, 0x00443524, 0x00413222, 0x00433625, 0x00483d29,
- 0x004d452d, 0x00564e32, 0x00655c3d, 0x00706743, 0x00786c43, 0x00786b3f, 0x0078683d, 0x0076653a, 0x00755f35, 0x006f5d33, 0x006e5a33, 0x006b5935, 0x006c5a32, 0x006b592c, 0x00705f2e, 0x00746938,
- 0x00797044, 0x00a19c7a, 0x00efeed5, 0x00fcfdef, 0x00fcfffd, 0x00fdffff, 0x00f9f9fb, 0x00dddcdf, 0x005b5c5c, 0x00282928, 0x003e3f3f, 0x00535353, 0x00606060, 0x00605f5f, 0x00636263, 0x00676566,
- 0x00636363, 0x00636363, 0x00636363, 0x00636363, 0x00636363, 0x00636363, 0x00636363, 0x00636363, 0x00636363, 0x00636363, 0x00636363, 0x00636363, 0x00636363, 0x00636363, 0x00636363, 0x00636363,
- 0x00636264, 0x00626263, 0x00626262, 0x00636262, 0x00636364, 0x005f6462, 0x005c655f, 0x005d645e, 0x0060635e, 0x0060635d, 0x00626460, 0x00656562, 0x00686462, 0x00544e4e, 0x002c2627, 0x00251e1f,
- 0x0029221d, 0x002c2420, 0x002e2621, 0x002e2722, 0x002e2622, 0x002d2520, 0x002c241f, 0x002d2520, 0x002f2622, 0x002e2520, 0x002e241d, 0x0031221b, 0x0033211d, 0x0031211b, 0x002f1f18, 0x002f1c16,
- 0x002d1813, 0x002b1712, 0x002d1813, 0x002f1914, 0x002e1714, 0x00261814, 0x00241916, 0x00271917, 0x00251716, 0x0023191a, 0x001e171b, 0x0025232c, 0x00394257, 0x00344561, 0x0022395b, 0x0019375c,
- 0x00163b58, 0x00233d75, 0x00394583, 0x0061628d, 0x00a45a4a, 0x00b24e41, 0x00a34e55, 0x0087749a, 0x004c92cf, 0x00598cc9, 0x00809fcd, 0x009fb6c7, 0x00b8ccde, 0x00bdd4e3, 0x00c4d8e9, 0x00cedfee,
- 0x00cfe0ed, 0x00cee1ed, 0x00ccdfed, 0x00c8dbea, 0x00c1d4e5, 0x00afcce2, 0x00a9c8e3, 0x00b0cce4, 0x00c3d8e6, 0x00d3e3ec, 0x00e7eef2, 0x00f6f6f8, 0x00fff9fb, 0x00fffafb, 0x00fffcf7, 0x00fffcf6,
- 0x00fffff2, 0x00fefdf4, 0x00fefdf9, 0x00fffffd, 0x00f7faf4, 0x00f1f8ee, 0x00f0fcf5, 0x00edfbf7, 0x00e6fdfe, 0x00dbf5fc, 0x00acc6e2, 0x00647e98, 0x005d759b, 0x0092abd8, 0x0098b5ed, 0x006080c2,
- 0x002b539f, 0x002d5ba8, 0x002d5fad, 0x002b62ad, 0x002961ae, 0x00285fb7, 0x002357b8, 0x001d53b2, 0x002055b5, 0x00255ab8, 0x002960bb, 0x002a61ba, 0x002d61ba, 0x002c62b9, 0x002e65bd, 0x002f66be,
- 0x002966c0, 0x002a67c0, 0x00306cc5, 0x00316cc5, 0x002f69c5, 0x00245db9, 0x001b54ae, 0x001e56b1, 0x002156b3, 0x002257b4, 0x00265bb6, 0x00265db7, 0x002866c0, 0x003777d1, 0x002a6ac4, 0x001954b0,
- 0x002451af, 0x00224cab, 0x002956b4, 0x00295bb7, 0x002d6dc6, 0x002c6cca, 0x002662c2, 0x002c60c0, 0x00426db7, 0x0048699d, 0x0047617f, 0x009badb2, 0x00fafff7, 0x00fdfef5, 0x00fefdfa, 0x00fdf9fd,
- 0x00fffcff, 0x00eae3de, 0x00bcad9e, 0x00bba489, 0x00bca483, 0x00bbaa8a, 0x00b8a98c, 0x00b7a98d, 0x00bfa88d, 0x00c0a487, 0x00bfa485, 0x00bca389, 0x00bd9e84, 0x00bda191, 0x00b4a5a1, 0x00a4a5b4,
- 0x0085a1dc, 0x007ca9f0, 0x006aa1ef, 0x006296e7, 0x006087d7, 0x005185da, 0x005289da, 0x00618dd8, 0x007191d5, 0x00668dd4, 0x005586d0, 0x005189d6, 0x00507bba, 0x0094a4c9, 0x00ded1dd, 0x00c59c94,
- 0x00b69e9b, 0x00c8c2d8, 0x00acbbe4, 0x007995d2, 0x00646f96, 0x00746164, 0x009b7359, 0x00b07745, 0x00a4744d, 0x007d5b47, 0x004e2f20, 0x00764624, 0x00c08055, 0x00c27d48, 0x00c9844d, 0x00db9761,
- 0x00e6a978, 0x00eab384, 0x00e1af7c, 0x00d2a06b, 0x00d89e63, 0x00dca56e, 0x00d6a36b, 0x00ce9d65, 0x00cf9963, 0x00ce945a, 0x00c6894e, 0x00c18145, 0x00ae7a4c, 0x00a58164, 0x00d6c0b4, 0x00efe7e9,
- 0x00e7e6e7, 0x00e8e6e8, 0x00ebebec, 0x00eeeff1, 0x00f0edf4, 0x00e7e5ed, 0x00dfe0e6, 0x00dedde5, 0x00e2dee9, 0x00ebe7f2, 0x00eeedf7, 0x00eeeef7, 0x00f0edf6, 0x00eae8f1, 0x00e3e3eb, 0x00e3e4eb,
- 0x00ebe9f2, 0x00f0edf6, 0x00f1f0f8, 0x00eeeff4, 0x00f0eef6, 0x00f0eff4, 0x00efeff4, 0x00efeff4, 0x00f4f1f9, 0x00f0eef7, 0x00f1f0f5, 0x00eeeff3, 0x00ececf3, 0x00f0f0f6, 0x00f3f2f6, 0x00eeedf1,
- 0x00f3f0f7, 0x00f2f0f7, 0x00f1f0f7, 0x00f1f1f5, 0x00eeeff1, 0x00eeefef, 0x00ededee, 0x00ebebec, 0x00ebe9ea, 0x00e9e7e9, 0x00ebe7e6, 0x00ede9e6, 0x00f1f0ef, 0x00f1f3f4, 0x00e8eaec, 0x00e8ecee,
- 0x00f0edf5, 0x00e0d9df, 0x007a7072, 0x003c302c, 0x002f1e19, 0x00311d1b, 0x002f1d1a, 0x0033231a, 0x003a281b, 0x0041271a, 0x004b2818, 0x00582c1a, 0x00612d1d, 0x0060311f, 0x0059311b, 0x009d7c66,
- 0x00fffefd, 0x00fffefc, 0x00fffcf9, 0x00fffdfb, 0x00fbfdfd, 0x00c0c6d7, 0x00465670, 0x003d557f, 0x005473b8, 0x006085d0, 0x00638fdc, 0x006694db, 0x00618ed6, 0x00628dd4, 0x00628bd2, 0x00668cd4,
- 0x006b8bd2, 0x006e8ece, 0x007393cd, 0x006f8dc0, 0x006f8bba, 0x006889a9, 0x005f7c91, 0x005c717f, 0x0071727b, 0x00857f84, 0x00958d8c, 0x008e8686, 0x006d7076, 0x00556470, 0x004d6678, 0x004a6d83,
- 0x00556e83, 0x004f697e, 0x00466175, 0x00425e71, 0x003e5b6d, 0x00415e70, 0x003f5b6d, 0x003c596a, 0x003f586d, 0x003e576e, 0x0044596e, 0x00546178, 0x0055708d, 0x004c6f8f, 0x00407192, 0x00377194,
- 0x002e6897, 0x00316692, 0x002c638a, 0x00306287, 0x00396386, 0x00376a92, 0x00356995, 0x00356991, 0x00366894, 0x00366993, 0x00346990, 0x00366b91, 0x003d7096, 0x003d7196, 0x0040769a, 0x00447a9d,
- 0x004c80a9, 0x005185ad, 0x005288aa, 0x005389aa, 0x005789ab, 0x005c8cb1, 0x006392b7, 0x005e89b2, 0x0041669a, 0x001f4579, 0x00072859, 0x00041540, 0x001d3266, 0x00455b93, 0x00425992, 0x002d4382,
- 0x002a3a7b, 0x00384981, 0x0021335e, 0x00112042, 0x000d1932, 0x00162850, 0x002a3c68, 0x003d4471, 0x0040407a, 0x00334489, 0x002b4d9b, 0x002c5eb2, 0x004460a2, 0x0048385d, 0x00561c28, 0x00943425,
- 0x00ca5231, 0x00e08a6f, 0x00fee6d9, 0x00fdfaf9, 0x00f2fdfe, 0x00f9feff, 0x00f8fefa, 0x00d7d6cc, 0x004e4b3f, 0x0013160d, 0x001f2215, 0x002b2715, 0x002f2d19, 0x00302e1a, 0x002f2f19, 0x0031311c,
- 0x00332f21, 0x00332f1f, 0x00322f1b, 0x0033321c, 0x0035311d, 0x00323021, 0x002d3727, 0x004c5e5a, 0x00789ab7, 0x0076a1ce, 0x005e96cd, 0x00518fd0, 0x004b88cc, 0x004e87c6, 0x005388c0, 0x005586bb,
- 0x004494be, 0x005982ae, 0x005e5e89, 0x00613a62, 0x00421b2a, 0x001f1210, 0x00101503, 0x000b1d05, 0x00210905, 0x00531d22, 0x00a9635c, 0x00b97345, 0x00996339, 0x007c5433, 0x003c2409, 0x00130e00,
- 0x000c0d0b, 0x000a1209, 0x00101b0d, 0x00131e0e, 0x00181e0e, 0x00281e0c, 0x00251701, 0x00645031, 0x00cda57e, 0x00e1b082, 0x00e1aa73, 0x00e4ad71, 0x00d7a065, 0x00c3915a, 0x00a67a43, 0x00986c3b,
- 0x00ab774f, 0x00ae7b4f, 0x00754620, 0x00461d01, 0x00502c0f, 0x00583c25, 0x0054442a, 0x00403620, 0x0030301f, 0x00303223, 0x00272c1b, 0x002f301d, 0x0031311c, 0x0033321d, 0x00323520, 0x00343521,
- 0x00353522, 0x00343522, 0x00353521, 0x00353521, 0x00353521, 0x0033351e, 0x0030341c, 0x002d301a, 0x002f2d1a, 0x002e2c1b, 0x002e2b1b, 0x002c2a1a, 0x002e2a1e, 0x00322d20, 0x00312c1d, 0x00363123,
- 0x00898679, 0x00e9e4e1, 0x00fffcfb, 0x00fef9fe, 0x00fefbfe, 0x00fefefd, 0x00e8ece8, 0x00cbd1cc, 0x00bcb9c7, 0x00c5bfd5, 0x00d8d1e3, 0x00e5dfe6, 0x00ede6f0, 0x00ece4ed, 0x00ebe6ee, 0x00e4dee4,
- 0x00eae1ed, 0x00e3d9e5, 0x00e1dbe4, 0x00ebe6ef, 0x00e5dce7, 0x00d7cbd4, 0x00c9bec4, 0x00cfc3ca, 0x00cfc2cd, 0x00cec1cc, 0x00bbb1ba, 0x00b0a7af, 0x00a79ba3, 0x00a599a1, 0x00a299a0, 0x00a299a0,
- 0x009b8c9d, 0x009c8f9e, 0x00a79ba8, 0x00a99ea8, 0x00a69aa5, 0x00a296a1, 0x009c919c, 0x009d949f, 0x00ab9dad, 0x00baaeb9, 0x00c8bfd1, 0x00c8ccec, 0x00e6d6e1, 0x00dab8ba, 0x00aa7774, 0x007e3c3a,
- 0x0081383c, 0x009d5d56, 0x00d2a294, 0x00ddbca8, 0x00ddc7b3, 0x00bec5b0, 0x00b6cbb2, 0x00c6d7c0, 0x00dbdad8, 0x00f2e9f4, 0x00eee4f7, 0x00d2c8e7, 0x008b86ba, 0x00676caa, 0x005a64a8, 0x00596cb3,
- 0x0098a2df, 0x00afb6e9, 0x00a9aed2, 0x00a9abc7, 0x00a7afcf, 0x00b2bdec, 0x00a5b2e5, 0x0098a5dc, 0x00bdbee7, 0x00e7def6, 0x00ebe2f7, 0x00e8d7f4, 0x00e6e5dc, 0x00f9eeed, 0x00fcddca, 0x00edbb80,
- 0x00bd8b6f, 0x00987e94, 0x00a5a1c1, 0x00a4abb2, 0x00b8a0b0, 0x00b2a2b1, 0x00ada5b0, 0x00aca2af, 0x00b0a6af, 0x00b0a6b0, 0x00aea9b1, 0x00aca8ad, 0x00b7b1b7, 0x00dcd8db, 0x00fdfcfe, 0x00fbfbff,
- 0x00f4ffff, 0x00fcf9fc, 0x00fdf7f6, 0x00ead4d6, 0x00dcc0bf, 0x00f6dfda, 0x00f8ebde, 0x00f9e8da, 0x00fde1d5, 0x00d7aba4, 0x00855349, 0x00844f3d, 0x009d554c, 0x009d4f48, 0x008d3e3a, 0x007e3331,
- 0x00884f4d, 0x009d706b, 0x00a88980, 0x00ae958d, 0x00947971, 0x007c5438, 0x00704d22, 0x00675a27, 0x0069788d, 0x005169a6, 0x000f2f7c, 0x00042a72, 0x0004196c, 0x00041163, 0x00000a45, 0x00000c1d,
- 0x0007173a, 0x00303759, 0x008c83a4, 0x00776084, 0x00301639, 0x0023193e, 0x0014163c, 0x0006123a, 0x0008123f, 0x000c113f, 0x000c0f3b, 0x000d1138, 0x000c143f, 0x000c1648, 0x000c1b55, 0x000c1e5c,
- 0x00142570, 0x000c1d65, 0x0005155a, 0x00031454, 0x00091756, 0x000a1c57, 0x000b1e58, 0x000d1f5a, 0x000d1d58, 0x000d1d58, 0x000f1f5b, 0x00091957, 0x00051553, 0x00041553, 0x0000114e, 0x00041753,
- 0x0021274c, 0x002f3c71, 0x00496198, 0x004768a5, 0x0039518a, 0x005b70a0, 0x00abbfe5, 0x0098aad5, 0x00395ca5, 0x003360b8, 0x002e63c3, 0x00225dbc, 0x005176af, 0x00aec4df, 0x00f6fef9, 0x00fafcf8,
- 0x00fffaff, 0x00fffaff, 0x00f8f0ef, 0x00beb3ac, 0x006e5b42, 0x0064533d, 0x00655640, 0x0065563e, 0x0066573e, 0x0061523a, 0x005d5037, 0x00554a34, 0x00443a2c, 0x00362d24, 0x002e261e, 0x002c241f,
- 0x00433628, 0x004e422f, 0x00928767, 0x00c2b68d, 0x00cebe87, 0x00dbca91, 0x00ded092, 0x00ddcf91, 0x00dccd94, 0x00c6b87f, 0x00a69b5f, 0x00ccc383, 0x00ddd0a5, 0x00beb48e, 0x00a59f79, 0x00898258,
- 0x00b7ae73, 0x00c7bc84, 0x00a7976a, 0x00644a31, 0x00603f43, 0x00554b5d, 0x00383b57, 0x0031385b, 0x002c417d, 0x00213e85, 0x001b4296, 0x002958b0, 0x003b6ec9, 0x003c71c8, 0x002f64b8, 0x003164b6,
- 0x004479d2, 0x004b80d9, 0x004880d6, 0x004983d7, 0x00477ed6, 0x004179d0, 0x00407bce, 0x003f79cc, 0x004379d0, 0x00437ad0, 0x00427ad1, 0x00427bd0, 0x00437bd3, 0x004279cf, 0x003f77cc, 0x003d76ca,
- 0x004675cd, 0x004574cb, 0x003d6fc1, 0x002e63b3, 0x003061b4, 0x003b6abc, 0x003866b5, 0x002956a5, 0x00264b98, 0x00284c94, 0x0026488a, 0x00233f7b, 0x000b245a, 0x00011748, 0x00001545, 0x00011644,
- 0x000c1952, 0x000d1c52, 0x000e2054, 0x000f275a, 0x00112c61, 0x00112f65, 0x00112e68, 0x00122e6a, 0x00152c73, 0x00182e75, 0x0021337d, 0x00293f87, 0x00475c92, 0x00788cb5, 0x008a9cb5, 0x00596779,
- 0x00535565, 0x0056555f, 0x005f5859, 0x00645c4e, 0x006a6044, 0x006f5f44, 0x00705b45, 0x006a573e, 0x00624e3d, 0x00554532, 0x004b3e2c, 0x00453929, 0x003e3226, 0x003b3126, 0x003c3428, 0x0041392c,
- 0x004b4237, 0x0051493a, 0x005c5541, 0x00645e43, 0x006c6442, 0x006f653f, 0x0070653e, 0x0070633b, 0x00725e3d, 0x006e5d3b, 0x006e5838, 0x006d563c, 0x006c5635, 0x006b5530, 0x006d582c, 0x006f6233,
- 0x00776945, 0x00aa9f85, 0x00f8f4e1, 0x00fffff7, 0x00f8fffd, 0x00fbfffe, 0x00fcfdfb, 0x00d4d4d4, 0x005c5a5c, 0x00424141, 0x005f5f5f, 0x00767776, 0x00878787, 0x00898989, 0x008a8b8a, 0x00898c89,
- 0x008b8b8b, 0x008b8b8b, 0x008b8b8b, 0x008b8b8b, 0x008b8b8b, 0x008b8b8b, 0x008b8b8b, 0x008b8b8b, 0x008c8c8c, 0x008c8c8c, 0x008c8c8c, 0x008c8c8c, 0x008c8c8c, 0x008c8c8c, 0x008b8b8b, 0x008b8b8b,
- 0x008d8b8f, 0x008b8b8d, 0x008a8b8a, 0x008a8b8a, 0x008b8a8c, 0x00878c8a, 0x00848e86, 0x00848d84, 0x00888b88, 0x008b8d8b, 0x00888a87, 0x008b8b88, 0x008f8989, 0x00716969, 0x00352e2d, 0x002d2425,
- 0x00392923, 0x003c2d26, 0x003f3029, 0x003f3029, 0x003f3129, 0x003d2f27, 0x003c2f26, 0x003d3027, 0x0041302d, 0x0040302b, 0x00412e26, 0x00442c23, 0x00452a25, 0x00412921, 0x003d251b, 0x003c2217,
- 0x003f1e19, 0x003c1c17, 0x003c1d16, 0x003d1e16, 0x003d1b16, 0x00341c16, 0x00311e17, 0x00341f17, 0x0036211f, 0x00312223, 0x002b232a, 0x003c3c4b, 0x00516381, 0x003b5980, 0x00184170, 0x0007396e,
- 0x00143a68, 0x001c377e, 0x003b4a8d, 0x00605c86, 0x00a64222, 0x00c13f20, 0x00b8493c, 0x0091697e, 0x005e8fc8, 0x0085a0d5, 0x00c3ceee, 0x00e6e6eb, 0x00f4fafc, 0x00f6fcfb, 0x00f3f9f9, 0x00f7fdfb,
- 0x00fafeff, 0x00fafeff, 0x00f9fcfd, 0x00f7fbfb, 0x00f8f7fb, 0x00f2fafe, 0x00eef8fd, 0x00eff6fa, 0x00f8f9fc, 0x00fafcfd, 0x00fdfcf9, 0x00fefbf8, 0x00fefcfb, 0x00fefcff, 0x00f9fbfa, 0x00f6f7f7,
- 0x00e6f9fa, 0x00dceefb, 0x00d6e7fa, 0x00d3e0fc, 0x00c9d3f6, 0x00c1cce9, 0x00bfcee4, 0x00bccee6, 0x00c3d1f2, 0x00ccdefa, 0x00c8ddf7, 0x00a6bfdd, 0x0091a9d3, 0x00819dd1, 0x006c8dca, 0x003c61a4,
- 0x003157aa, 0x00406abc, 0x004676c6, 0x00346cba, 0x00245ca9, 0x002159b2, 0x002156b6, 0x002057b4, 0x002456b8, 0x00275ab9, 0x00285fbb, 0x002860b9, 0x002c62ba, 0x002d62ba, 0x002d65bb, 0x002d66bc,
- 0x002e6bc6, 0x002d69c5, 0x002e6ac3, 0x00306cc5, 0x00306ac5, 0x00245db9, 0x001c54ad, 0x001b53ad, 0x002157b5, 0x002456b5, 0x002155b1, 0x00265cb7, 0x002966c2, 0x003475d0, 0x001f5db6, 0x00124aa4,
- 0x00244cae, 0x002449ac, 0x002d56b6, 0x002a5cb7, 0x002f6fc6, 0x00296cc3, 0x002666bd, 0x002a63bc, 0x003e68b7, 0x004d6fa7, 0x005f7c9c, 0x00a4b9be, 0x00f6fef3, 0x00fcfdf3, 0x00fefdf8, 0x00fcf9fe,
- 0x00f8fefb, 0x00e9e5dd, 0x00c0afa1, 0x00b69f88, 0x00baa284, 0x00bca88a, 0x00bcaa91, 0x00bdac96, 0x00baab88, 0x00bda983, 0x00c1a98a, 0x00c2a68e, 0x00c0a38c, 0x00bea79a, 0x00ad9fa7, 0x008990af,
- 0x006c9bd6, 0x0069a6eb, 0x00649cee, 0x006191e4, 0x006686ce, 0x005487d9, 0x00588ee1, 0x006891db, 0x006690c9, 0x00608dcb, 0x00588ad1, 0x004e87d5, 0x006088c5, 0x00aeb7d9, 0x00ddc2cf, 0x00996054,
- 0x00655144, 0x00adafbf, 0x00a8bae3, 0x006c8cd0, 0x00556896, 0x003e353f, 0x006c4a3a, 0x00a3734e, 0x00ab916b, 0x008b816e, 0x00746359, 0x00906851, 0x00a46e4b, 0x00925727, 0x009a5828, 0x00bd794b,
- 0x00d5a268, 0x00dbab73, 0x00e8b281, 0x00e8b37d, 0x00e9af70, 0x00e1aa70, 0x00d9a16d, 0x00cb9665, 0x00ba894a, 0x00b47e3f, 0x00b07337, 0x00a7662d, 0x00945e34, 0x00926b55, 0x00d3bbb7, 0x00f6ebf8,
- 0x00e1e5de, 0x00dfe3df, 0x00e8eaeb, 0x00edebf0, 0x00eeedf2, 0x00ebe8f0, 0x00e8e2ee, 0x00e2deeb, 0x00dadce1, 0x00dde0e3, 0x00e9ebf0, 0x00ececf3, 0x00ecebf2, 0x00ebe9f1, 0x00e8e5ef, 0x00e9e5ee,
- 0x00dde8e8, 0x00e6edee, 0x00f3f2fa, 0x00f0eff7, 0x00f3eff9, 0x00f0f0f4, 0x00f1eff6, 0x00f2edf7, 0x00ebf0ee, 0x00ebefef, 0x00f0eef5, 0x00f0eef1, 0x00f1f0f3, 0x00f2f1f7, 0x00f8f2fc, 0x00f6f2fa,
- 0x00eaeeee, 0x00edeff1, 0x00f1f2f6, 0x00f1f1f6, 0x00f0eff3, 0x00efeef2, 0x00f0f0f2, 0x00f1f0f2, 0x00e7ece6, 0x00e5eae3, 0x00ede8e9, 0x00f6eae7, 0x00efebe8, 0x00f2f0f1, 0x00f1f0f5, 0x00ededf3,
- 0x00e4ebeb, 0x00eceded, 0x00dbd5da, 0x008e858a, 0x00382a2a, 0x002d1b1c, 0x00301f20, 0x00322522, 0x00312814, 0x00382813, 0x00432614, 0x00512718, 0x005d2b1c, 0x005f3120, 0x00582c1d, 0x00947161,
- 0x00f4f7e9, 0x00fafef5, 0x00fefbf6, 0x00fffaf8, 0x00ffffff, 0x00cad0df, 0x00505a7b, 0x003c517f, 0x00446da7, 0x00517fc5, 0x00608bd4, 0x00678fce, 0x006489ca, 0x006387c7, 0x006681c2, 0x00667ec0,
- 0x005e7cb1, 0x005f7aaa, 0x006a81ad, 0x006879a0, 0x00607193, 0x00626c7a, 0x00686d6f, 0x00746e69, 0x0085775f, 0x00a3886b, 0x00bc977e, 0x00b9947a, 0x00907865, 0x00655a50, 0x004e4b4c, 0x004c5157,
- 0x003c4f4e, 0x00364849, 0x00323f44, 0x002b383e, 0x00253139, 0x00242f38, 0x00232d36, 0x001f2932, 0x00142728, 0x00162827, 0x00292d35, 0x00574654, 0x00767386, 0x00727e99, 0x006380a0, 0x00547ca6,
- 0x003f7ea3, 0x00417faa, 0x004580af, 0x00497eb2, 0x004e7fae, 0x004d83ad, 0x005082af, 0x004e81ad, 0x00437ea1, 0x00427ea2, 0x00467ea5, 0x004c82a8, 0x004e85aa, 0x005086ab, 0x005387ad, 0x00558bb0,
- 0x004c8aad, 0x00528eb0, 0x005790b3, 0x00588eaf, 0x005d8fae, 0x005f8faf, 0x006592b6, 0x006692b8, 0x005483a8, 0x003f6e97, 0x00274877, 0x001a2c5c, 0x003a4c83, 0x004b6199, 0x00394c8c, 0x0023367d,
- 0x00213a71, 0x002e4674, 0x001f3059, 0x00101c40, 0x00081629, 0x000f1b41, 0x00232d5b, 0x00353260, 0x00252858, 0x00192e6a, 0x001e418c, 0x002054aa, 0x003b5a9e, 0x0048325b, 0x00591723, 0x009d3121,
- 0x00be4b19, 0x00d58360, 0x00ffe4d8, 0x00fefbff, 0x00f2ffff, 0x00f7fffe, 0x00fcfefe, 0x00ddd7ce, 0x004a4e38, 0x00101805, 0x001e2415, 0x002b2918, 0x00302e1b, 0x00322f1b, 0x00342f20, 0x00373122,
- 0x002f3118, 0x002f311a, 0x00343320, 0x00353321, 0x00363520, 0x0038341a, 0x0033331f, 0x003b4641, 0x00456e81, 0x004d84aa, 0x005691cc, 0x00528ed2, 0x00538acb, 0x005a87c2, 0x00597eb3, 0x00536e9d,
- 0x002e6469, 0x002c4754, 0x00241b34, 0x00280822, 0x00210a1a, 0x000c090a, 0x00071007, 0x00051603, 0x000f0200, 0x004d2215, 0x00af6a57, 0x00a1532f, 0x006a270d, 0x00643219, 0x004a2512, 0x00220a06,
- 0x00010300, 0x00000300, 0x00050904, 0x00030904, 0x000c1008, 0x001e0e06, 0x00482715, 0x009d745a, 0x00ddad7e, 0x00dea773, 0x00efad77, 0x00eaa56e, 0x00ce8c55, 0x00b57a47, 0x00b78155, 0x00c7946a,
- 0x00d2a66f, 0x00c39864, 0x00845d32, 0x005e3d19, 0x00503515, 0x00553f23, 0x006c5a43, 0x004e422d, 0x00242606, 0x002b2f0c, 0x002a2d11, 0x002f301d, 0x0030311d, 0x0031321b, 0x00353420, 0x00373623,
- 0x002f341e, 0x0031341e, 0x00343420, 0x00353522, 0x00343622, 0x0032351f, 0x0032321e, 0x0032301e, 0x00282d16, 0x00292c16, 0x002f2c1c, 0x002f2b1d, 0x002e2a1a, 0x00322d1e, 0x00373026, 0x00372d25,
- 0x006a7259, 0x00d2d3c4, 0x00fefbf8, 0x00fdf9fd, 0x00fff9fe, 0x00fdfdfe, 0x00f5f5f4, 0x00d9dad7, 0x00b7b8bb, 0x00c3becb, 0x00d8cfe1, 0x00e2dbe6, 0x00e8e3ec, 0x00ebe4ec, 0x00eee5f0, 0x00e8deec,
- 0x00e0dfe3, 0x00e1dfe4, 0x00e2dce5, 0x00eae1ec, 0x00e7e2ec, 0x00dad1dc, 0x00ccbfca, 0x00c4b8c2, 0x00a19a9e, 0x00ada7a9, 0x00beb4bc, 0x00b4a8b3, 0x00a79ba2, 0x00a2959d, 0x00a293a0, 0x00a092a0,
- 0x00948f93, 0x008f888e, 0x00a297a2, 0x00a89ba8, 0x00a699a4, 0x00a497a5, 0x00a192a3, 0x00a496a5, 0x00a29ba0, 0x00a9a3a7, 0x00baaebf, 0x00cdc4db, 0x00f0e4e5, 0x00f1d9db, 0x00d6abb6, 0x00bc7a90,
- 0x00a65058, 0x00924632, 0x00a96545, 0x00b28461, 0x00af9f95, 0x00b0b89b, 0x00bdcbab, 0x00c7d0b5, 0x00d4d4c6, 0x00f1f0ee, 0x00f9ebfe, 0x00c5bcdd, 0x00545593, 0x003a418f, 0x003f4ba2, 0x007a8ce1,
- 0x00b0c4ed, 0x009fb0cf, 0x00b4bbd7, 0x00adaec3, 0x00a6acc8, 0x00bcc8f0, 0x00c0c8fa, 0x00a2aae0, 0x00adb6cc, 0x00dcdce7, 0x00e8daed, 0x00ead5f1, 0x00e6e6d7, 0x00faedea, 0x00f9d1c0, 0x00edab71,
- 0x00b98757, 0x00887180, 0x00a39bbf, 0x00a4aab2, 0x00be9eb3, 0x00b1a2af, 0x00afa2b0, 0x00b0a4b2, 0x00aaa6ad, 0x00aaa7a9, 0x00afabaf, 0x00aba7ad, 0x00bbb7bb, 0x00e5e2e4, 0x00fffdff, 0x00fffafe,
- 0x00e8fdf4, 0x00f0f7ef, 0x00f7efeb, 0x00e1c4c8, 0x00d4bab6, 0x00f3e0d7, 0x00fdf0e5, 0x00fff9ec, 0x00efe8cf, 0x00b59688, 0x006b372d, 0x00682715, 0x00792d20, 0x007b2820, 0x00771e20, 0x00762425,
- 0x00986259, 0x00bb958c, 0x00ccafa8, 0x00d5c0b9, 0x00b8a39f, 0x00926b53, 0x00764c27, 0x006d5e2d, 0x00677d86, 0x005473a9, 0x000c2e7b, 0x000d2d78, 0x0014277f, 0x00111d6e, 0x00010a49, 0x00010b1d,
- 0x00001126, 0x00080c1e, 0x003a273d, 0x0067414f, 0x00481b28, 0x00321422, 0x00200c1e, 0x000e0619, 0x00000210, 0x00020311, 0x00080516, 0x00080716, 0x00090c20, 0x00040b2a, 0x00030e37, 0x00051142,
- 0x00001542, 0x00021748, 0x00030f44, 0x00000b3d, 0x00050e40, 0x00091646, 0x00021041, 0x00031345, 0x0000113a, 0x00000c35, 0x0000083d, 0x00080e44, 0x00070f44, 0x00060f44, 0x001a245d, 0x00424e88,
- 0x0096a3b1, 0x00a1b3d4, 0x00bdd2f8, 0x00a9c4f1, 0x006982b5, 0x009daed7, 0x00d7e4ff, 0x009babd3, 0x0026579a, 0x001959b6, 0x001156c2, 0x000d5ac7, 0x005088c1, 0x00badbf4, 0x00f4fdfb, 0x00fffdf4,
- 0x00f7faed, 0x00faf9f1, 0x00f4ebe6, 0x00b6ada0, 0x006d6342, 0x006a5a45, 0x006f5a4b, 0x00705f49, 0x00696144, 0x006a6141, 0x006c6042, 0x00685b41, 0x005b503c, 0x00514438, 0x004a3a33, 0x00473432,
- 0x00413d21, 0x00595331, 0x00b5ab85, 0x00cbbc91, 0x00d1bf89, 0x00e0ce91, 0x00dfcc8f, 0x00e3d194, 0x00d0c787, 0x00b1a76a, 0x00ab9f65, 0x00d6cc90, 0x00cdc298, 0x00c2b998, 0x00a1977b, 0x008b8261,
- 0x00b2b373, 0x00ccc68a, 0x00a59569, 0x004f361e, 0x00543035, 0x00624d53, 0x00463d4d, 0x0034324d, 0x00203564, 0x00163578, 0x001b3c92, 0x002c54b5, 0x004174d1, 0x004378d0, 0x003c6fc2, 0x004277c4,
- 0x00427ed0, 0x004784d3, 0x004882d6, 0x004a81d9, 0x00477ed4, 0x004278cf, 0x004379d3, 0x004279d4, 0x003a77c9, 0x003b77c7, 0x004079cc, 0x00427cd2, 0x00427cd2, 0x004379d1, 0x004478d0, 0x003f77cd,
- 0x003d73c3, 0x003c74c3, 0x003b6dbf, 0x002b5db0, 0x002c5fb1, 0x003867b9, 0x003963b8, 0x002e59af, 0x0027579c, 0x002e5a9d, 0x0033569c, 0x002e4c8d, 0x00112e65, 0x00011c4f, 0x000a2157, 0x000f255a,
- 0x00061b4e, 0x000a1f50, 0x000f2557, 0x0010285d, 0x00102c62, 0x000e2c65, 0x000f2e6c, 0x00102f70, 0x000c2d6c, 0x00112d6f, 0x001f3683, 0x00223c8d, 0x0027407e, 0x00506a99, 0x007b8eb3, 0x00545e7b,
- 0x00505964, 0x0057595c, 0x005f5a58, 0x00695e50, 0x006e6141, 0x00745e41, 0x00755c45, 0x006f5a41, 0x005b4e34, 0x004e482e, 0x004a4030, 0x0045392e, 0x003a3226, 0x00362e24, 0x00392f2a, 0x003e332e,
- 0x003d3f30, 0x00424331, 0x004f4d3b, 0x0058533d, 0x005f593b, 0x00675e3e, 0x006e6042, 0x00716140, 0x00675f35, 0x00655c35, 0x006a583c, 0x006f543f, 0x006a5137, 0x0067512e, 0x006d5831, 0x00725e36,
- 0x006d6640, 0x00a7a585, 0x00fdfbed, 0x00fcfdfa, 0x00f9ffff, 0x00fcfcfd, 0x00fffdff, 0x00cdc9cc, 0x00545a51, 0x00565d56, 0x00898a8c, 0x00a8a9a9, 0x00c0bfc0, 0x00c5c4c5, 0x00c9c5c8, 0x00c7c6c8,
- 0x00bfc3bd, 0x00bdc1bd, 0x00c3c2c2, 0x00c5c2c3, 0x00c2c2c1, 0x00c2c1c1, 0x00c5c2c4, 0x00c3c2c5, 0x00bcc3bc, 0x00bdc2bd, 0x00c2c1c2, 0x00c5c4c5, 0x00c5c4c5, 0x00c3c5c3, 0x00c5c4c6, 0x00c5c4c7,
- 0x00bcc1bc, 0x00bec3be, 0x00c2c3c4, 0x00c3c3c4, 0x00c4c2c4, 0x00bcc4c0, 0x00b9c4be, 0x00bcc3c1, 0x00b6c1ba, 0x00bbc3ba, 0x00c4c4c1, 0x00c7c1c0, 0x00c5bfbe, 0x009c9492, 0x004d4245, 0x0042373a,
- 0x0046392c, 0x004c3d32, 0x0056453c, 0x0058463e, 0x0056443b, 0x0056453c, 0x0058473e, 0x005a4840, 0x00544739, 0x00524639, 0x0059453a, 0x00644539, 0x00614339, 0x005d3d34, 0x00593630, 0x0055312d,
- 0x004d2f21, 0x004c2d1f, 0x00522f26, 0x00562f29, 0x00552e26, 0x004e2e25, 0x004c312a, 0x004e332b, 0x00413123, 0x003f302c, 0x00423843, 0x005e6476, 0x007a92b7, 0x005b82b0, 0x0030609b, 0x00195196,
- 0x00093d68, 0x00072d73, 0x00313d87, 0x004e4472, 0x00911f03, 0x00b21d02, 0x00ac291e, 0x0084495c, 0x006b97bc, 0x00b8c8ec, 0x00f3f9ff, 0x00fbfcfe, 0x00f0f2f6, 0x00ebedf1, 0x00e5e7ea, 0x00e4e4ec,
- 0x00dde5e4, 0x00dce4e2, 0x00e5e7eb, 0x00eaeaf1, 0x00eceff3, 0x00eef3f7, 0x00f6f7ff, 0x00f8f8ff, 0x00f4f8f5, 0x00f1f4f5, 0x00ecf2f4, 0x00e8edf5, 0x00dee9fb, 0x00d3e3fa, 0x00c2d3f1, 0x00b0c6e5,
- 0x0089c1e5, 0x0081b2de, 0x00779ed7, 0x006e8fce, 0x006982b9, 0x006a80ac, 0x006f81a8, 0x0070829b, 0x006c859a, 0x00778ea9, 0x008ea5c4, 0x00a8c4e4, 0x007e99c3, 0x00325287, 0x00234286, 0x00244691,
- 0x0023539f, 0x003b6cbb, 0x004576c9, 0x003267b9, 0x001e58a5, 0x001f54af, 0x002259b8, 0x002558ba, 0x001e5bb1, 0x001e59b2, 0x00245cb8, 0x002760bb, 0x002b60bc, 0x002e64bd, 0x003165c0, 0x002f65bf,
- 0x00286bbe, 0x002769bd, 0x002d69c2, 0x00306bc8, 0x002f6bc4, 0x00285fbb, 0x002358b5, 0x001d53b0, 0x001c57ae, 0x002159b0, 0x001e52ad, 0x00245db9, 0x002b6ac3, 0x00306fc8, 0x001650ac, 0x001849a6,
- 0x001c4ba4, 0x001e4aa6, 0x002e58b8, 0x002c5ebc, 0x003270ca, 0x002d6dc2, 0x002d68bf, 0x002b64bc, 0x00285da5, 0x00416f9f, 0x007695b5, 0x00b6cbcf, 0x00f6fff0, 0x00fbfdf5, 0x00fffcfd, 0x00fffaff,
- 0x00fbfffd, 0x00f0eae3, 0x00c2b1a4, 0x00b69f89, 0x00bba386, 0x00bba788, 0x00b8a98d, 0x00b9ab91, 0x00bfab8d, 0x00c2ab8a, 0x00c2a78d, 0x00c3a694, 0x00c4aa93, 0x00b9a79d, 0x0096909a, 0x00717fa1,
- 0x0075a6ed, 0x00669ff1, 0x005c95e7, 0x006391e0, 0x006985c9, 0x005887da, 0x005a92e1, 0x00678fd6, 0x006a8fcc, 0x00638bce, 0x005b8acf, 0x00457ac2, 0x006a8cc5, 0x00bdc0e0, 0x00d6b9bf, 0x00ad7561,
- 0x008a776e, 0x00bdbcd4, 0x009aabdb, 0x006083c8, 0x00435e8b, 0x001d202d, 0x0027140e, 0x00401e0c, 0x003c2a18, 0x0035312e, 0x003a3430, 0x006c5242, 0x009f7457, 0x00a16f49, 0x00aa7343, 0x00bc834f,
- 0x00d09b69, 0x00ddab79, 0x00e3b180, 0x00e5b27b, 0x00e6b273, 0x00e4ae74, 0x00d6a169, 0x00c4915a, 0x00ad7b42, 0x00a06b31, 0x00955b23, 0x008c4f1b, 0x00774521, 0x00805e4b, 0x00cdbab5, 0x00f3edf3,
- 0x00e8e7e6, 0x00e6e6e6, 0x00e6e5e8, 0x00eaeaee, 0x00eaeaf0, 0x00e9e9f0, 0x00e7e5ec, 0x00e1dfe6, 0x00d9d9e2, 0x00dddce6, 0x00e5e4ed, 0x00e9e8ef, 0x00edebf3, 0x00eceaf1, 0x00e8e6ed, 0x00e8e6ee,
- 0x00e5e4eb, 0x00ededf4, 0x00f2f1fa, 0x00f2f2f9, 0x00efeff6, 0x00eeeff4, 0x00ededf3, 0x00ededf3, 0x00eaeff4, 0x00eeeef0, 0x00ededf3, 0x00f3eff5, 0x00f5f2f6, 0x00eae7ed, 0x00dcdbe3, 0x00e7e9ec,
- 0x00eeeef0, 0x00f1eef3, 0x00f2f1f6, 0x00f0f1f5, 0x00f0eff2, 0x00eeeeef, 0x00ecefef, 0x00edeff0, 0x00ecedef, 0x00ecedeb, 0x00e8e7e3, 0x00f1e6e2, 0x00eeebe6, 0x00f0eeed, 0x00f0f4f5, 0x00ebecf3,
- 0x00e6ebef, 0x00ecebef, 0x00f4f1f6, 0x00dad3d6, 0x00777071, 0x003d2c2d, 0x002e1d1f, 0x002c2320, 0x0034291c, 0x00372616, 0x00402415, 0x004f281b, 0x00592a1c, 0x005d3120, 0x004e2715, 0x00866753,
- 0x00f4f0e8, 0x00fffef8, 0x00fffaf5, 0x00fcf8f4, 0x00fcfcfb, 0x00d6dde9, 0x00576380, 0x00374c76, 0x004267a0, 0x00567dbe, 0x006286c6, 0x006788bc, 0x00627eb2, 0x005e7aac, 0x00576f9e, 0x00536796,
- 0x0055628b, 0x00525c80, 0x00535e7a, 0x00525872, 0x004f5366, 0x00605b57, 0x00706550, 0x00866d54, 0x009c744b, 0x00a47142, 0x00aa6f41, 0x00b57a4c, 0x00a47552, 0x007e5d41, 0x00604b37, 0x005c5241,
- 0x00505048, 0x00494945, 0x0042413d, 0x003a3935, 0x00323331, 0x002d2f2b, 0x00282924, 0x0023231f, 0x001d1c18, 0x001d1b16, 0x002b1a1a, 0x004f292d, 0x00685259, 0x00716b7b, 0x00738097, 0x006c89aa,
- 0x005b8db5, 0x005b8fc1, 0x005991c7, 0x00548eca, 0x00508cc4, 0x005490be, 0x005991ba, 0x00588eb8, 0x00528eb4, 0x00518cb4, 0x00518cb5, 0x00558fb6, 0x005992b6, 0x005791b2, 0x005690b0, 0x005993b1,
- 0x005a92ba, 0x005d94b9, 0x005e94b7, 0x005f93b3, 0x006497b3, 0x006495b2, 0x006695b5, 0x006694b5, 0x00689abe, 0x006493bd, 0x005176a3, 0x004b6090, 0x004c6396, 0x00465b92, 0x0029417a, 0x00122767,
- 0x00263974, 0x00314375, 0x001b2c53, 0x000d1c3b, 0x000d1a30, 0x00141f41, 0x001c244c, 0x00262248, 0x001e1a4b, 0x00182463, 0x00183682, 0x0016479b, 0x00314e93, 0x00432e55, 0x0052131b, 0x00992f1c,
- 0x00c4451c, 0x00d88065, 0x00fce3d3, 0x00fdfdfc, 0x00ecfdfc, 0x00f4fffd, 0x00f9fefa, 0x00dbd6cd, 0x004e4c3d, 0x00141a07, 0x00232715, 0x002e2b19, 0x0032311d, 0x0032311c, 0x0033311e, 0x00353522,
- 0x00363421, 0x00353422, 0x00353520, 0x00343521, 0x00373622, 0x003d351a, 0x00373217, 0x0032372b, 0x002d4c5f, 0x002c587d, 0x0031639a, 0x003467a3, 0x0037639a, 0x0040618e, 0x00374e74, 0x00273554,
- 0x001c1f17, 0x00130f0e, 0x000b050c, 0x00140f1a, 0x00101621, 0x00030e13, 0x00010807, 0x00040902, 0x00170000, 0x004c230e, 0x00ab6b50, 0x00c26a50, 0x00a85f47, 0x00935542, 0x0063301f, 0x0037130b,
- 0x00110000, 0x00070001, 0x00070004, 0x00040309, 0x0002020a, 0x001e0208, 0x00784132, 0x00c28a74, 0x00eca483, 0x00f7aa81, 0x00f9a779, 0x00f29f70, 0x00d98b5f, 0x00c37d54, 0x00bc7c57, 0x00bd825c,
- 0x00ac7f4d, 0x0095683a, 0x008a613b, 0x00947152, 0x00684d32, 0x00483118, 0x0045331a, 0x0040361c, 0x00363011, 0x00342d0f, 0x00302c12, 0x002e2f19, 0x002e301c, 0x0030331d, 0x0031341f, 0x00343623,
- 0x00343523, 0x00353522, 0x00353522, 0x00353622, 0x00343521, 0x0032351e, 0x0030331c, 0x002e311b, 0x002b2d1a, 0x002c2c19, 0x00302c1d, 0x002f2b1c, 0x002e2b1b, 0x00302c1d, 0x00332d21, 0x00322a1e,
- 0x005f614d, 0x00c6c2b7, 0x00fcf4f3, 0x00fff7fb, 0x00fef6fc, 0x00fcfcfb, 0x00f8faf5, 0x00dbdfd9, 0x00c0b7c1, 0x00cabcce, 0x00dccee1, 0x00e0d7e4, 0x00e5dde8, 0x00e7e1e9, 0x00e8e3ec, 0x00e5dfe9,
- 0x00e4dee9, 0x00e8e3ed, 0x00e3dde7, 0x00e5dee7, 0x00e6e3ea, 0x00ded6dd, 0x00cec2c8, 0x00aa9fa4, 0x00655b62, 0x0080767e, 0x00b8acb7, 0x00b7aab4, 0x00aca1a8, 0x00a89ca4, 0x009f919b, 0x00988a95,
- 0x00998d97, 0x00928590, 0x009d8f9d, 0x00a89aa8, 0x00a599a4, 0x00a599a5, 0x009f94a1, 0x00a398a3, 0x00a599a4, 0x00a69ba9, 0x00aca0aa, 0x00cdbdc9, 0x00eae9df, 0x00f3e9e8, 0x00ead0de, 0x00e7b0d4,
- 0x00e58b9b, 0x00da7d6a, 0x00d3895f, 0x00c3936a, 0x00b1aea6, 0x00bac5a7, 0x00bdcea8, 0x00becbae, 0x00d5cec8, 0x00f5ebf5, 0x00f7ecfa, 0x00c4b8de, 0x004a498c, 0x00424b9b, 0x006374cb, 0x00a2bbf6,
- 0x00a6b5e0, 0x0096a0be, 0x00c8d0e1, 0x00b5b8c1, 0x00a5acc1, 0x00bcc6ed, 0x00c6d2fc, 0x00c1cbf4, 0x00d5d8ed, 0x00ebe8f2, 0x00ece2ef, 0x00ecd7f5, 0x00e7e7d4, 0x00f5dcd4, 0x00e0b49a, 0x00dd9750,
- 0x00af754d, 0x00806376, 0x009e98ba, 0x00a6acb5, 0x00bc9db1, 0x00b39fb0, 0x00aba1ae, 0x00aca4ae, 0x00aea3b0, 0x00ada4ae, 0x00aea6af, 0x00a9a5ab, 0x00c0bdc2, 0x00eae9eb, 0x00fdfdfd, 0x00fbfcfb,
- 0x00edfdfa, 0x00f9fcf9, 0x00eee3df, 0x00c6aea9, 0x00bba49b, 0x00e9d6cb, 0x00f5eddd, 0x00f1eedc, 0x00c1b29f, 0x007b5a51, 0x004b190f, 0x005c1b08, 0x00631809, 0x00631208, 0x00620c0a, 0x00651818,
- 0x00a06a67, 0x00d7afab, 0x00e4c7c4, 0x00e9d5d0, 0x00d9c9c5, 0x00b18d77, 0x00734d29, 0x00615323, 0x0067757f, 0x00637eb3, 0x00193a84, 0x000d2e7e, 0x001e3488, 0x001e2979, 0x00050d46, 0x00000b1b,
- 0x00020f25, 0x00100718, 0x00210611, 0x00340808, 0x004c110a, 0x0044100c, 0x002f0c0a, 0x001c0405, 0x000e0204, 0x00130206, 0x00150507, 0x00180c0b, 0x00100c0e, 0x00080a17, 0x00040c22, 0x000c1635,
- 0x0024355d, 0x00293a67, 0x0010214a, 0x000a1743, 0x002a3a5c, 0x0035466c, 0x00112247, 0x00041241, 0x00051342, 0x00081842, 0x001f3055, 0x0043527d, 0x00465383, 0x002f3d74, 0x00556297, 0x009faadb,
- 0x00d5dae7, 0x00b1bddd, 0x00acc2ea, 0x00a1c0ee, 0x007c93c2, 0x00b9c9eb, 0x00b1c1e3, 0x007386b0, 0x002854a1, 0x001754ba, 0x000f5dcf, 0x000d64d8, 0x005192cd, 0x00bce1f7, 0x00eefcf4, 0x00fcfbe9,
- 0x00fafbf0, 0x00fffcf6, 0x00eee9e1, 0x00aca797, 0x0068623c, 0x006c5f48, 0x0070604f, 0x00746751, 0x00786d50, 0x007a6e4d, 0x007c6e4d, 0x007c6d4e, 0x0076674c, 0x006d5f49, 0x00655542, 0x00605040,
- 0x00594e35, 0x007c7050, 0x00cdc099, 0x00daca9b, 0x00dece93, 0x00e3d290, 0x00dfcf8d, 0x00e9d897, 0x00d8c98c, 0x00bdad75, 0x00c8b884, 0x00ded29b, 0x00b5ad84, 0x00b4af8e, 0x00838061, 0x006c6843,
- 0x00a29e66, 0x00d3c794, 0x00ab9974, 0x00472e19, 0x002f0e12, 0x004e3431, 0x00493939, 0x003a313f, 0x00232a5d, 0x001c3076, 0x001f3b91, 0x00254ca9, 0x00396dc9, 0x003e74c9, 0x00396fbd, 0x004079c3,
- 0x004880d5, 0x004a83d7, 0x004880d8, 0x004880d9, 0x00467fd4, 0x00427cd0, 0x00447cd3, 0x00427cd2, 0x004179ce, 0x003f77cd, 0x004178ce, 0x00427bd0, 0x00417bd1, 0x00417ad0, 0x004078cd, 0x003a75c8,
- 0x003d72c3, 0x003f73c5, 0x003768bd, 0x002859ac, 0x002658a9, 0x003261b4, 0x002f5aae, 0x001c499b, 0x0017418c, 0x00214890, 0x0022458b, 0x00224183, 0x0016346b, 0x00092559, 0x000c2559, 0x00082052,
- 0x00091b52, 0x00102458, 0x0013295e, 0x00112b60, 0x000e2b62, 0x000d2b65, 0x000c2b68, 0x000a296a, 0x000a296d, 0x0018337b, 0x00203b8b, 0x0017348c, 0x0018387b, 0x0049649c, 0x00627aa0, 0x003a4e6a,
- 0x00525d6c, 0x005a5c65, 0x005f5c5a, 0x006b6051, 0x00736443, 0x00796242, 0x00785e41, 0x00705a3e, 0x00645339, 0x00554933, 0x004e4031, 0x0044382d, 0x00362f26, 0x00322b23, 0x00332c26, 0x00332c28,
- 0x003c3b37, 0x00404037, 0x0048473b, 0x004d4a3a, 0x00555038, 0x005e573a, 0x00675c40, 0x006a5d40, 0x00685c3d, 0x0067583a, 0x0067533b, 0x00684f3b, 0x00674e35, 0x00674f2e, 0x0069542f, 0x006b5933,
- 0x00736849, 0x00b1ab93, 0x00fdfbf0, 0x00fbfbf9, 0x00f9fdff, 0x00fdfffc, 0x00fdfefa, 0x00c6c7c5, 0x005e605e, 0x00747675, 0x00abacad, 0x00cccdce, 0x00e3e3e5, 0x00e7e6e9, 0x00e6e5e8, 0x00e9e7e8,
- 0x00e6e7e6, 0x00e8e9e8, 0x00e7e6e7, 0x00e7e6e8, 0x00e7e6e8, 0x00e7e7e8, 0x00e7e7e7, 0x00e6e6e5, 0x00e6e9e6, 0x00e8e9e7, 0x00eae9e9, 0x00e9e9e8, 0x00e7e7e7, 0x00e7e8e6, 0x00e6e8e8, 0x00e7e9e9,
- 0x00e6e9e6, 0x00e8eaeb, 0x00e7e9ea, 0x00e9ebea, 0x00e8eaec, 0x00e1e8e5, 0x00dee7e1, 0x00e0e5e3, 0x00e0e6e2, 0x00e4e7e0, 0x00e6e6e2, 0x00eae7e6, 0x00e5e1e2, 0x00b1abab, 0x004e4746, 0x00413834,
- 0x00544138, 0x0059463c, 0x00614d43, 0x00624f45, 0x00604f44, 0x00615044, 0x00645245, 0x00675447, 0x00665449, 0x00645247, 0x00695045, 0x00735044, 0x00714d42, 0x006d483c, 0x00654034, 0x005f3b2f,
- 0x005e362d, 0x005b3226, 0x005f3429, 0x0062352d, 0x005e332a, 0x00583529, 0x0055392c, 0x00543a2e, 0x004c3830, 0x0046383a, 0x00403c47, 0x005a667c, 0x0085a2cd, 0x00739fd6, 0x004b82c2, 0x003170b6,
- 0x00315e94, 0x003351a0, 0x005460a5, 0x006e5684, 0x00991e05, 0x00b51105, 0x00a41611, 0x007e3440, 0x00879fc2, 0x00e2e1fa, 0x00f8f2fc, 0x00d7dde8, 0x00a5abb6, 0x008c909f, 0x00777b8c, 0x00676d7c,
- 0x00696d7e, 0x006e7285, 0x0077798d, 0x00828696, 0x008c92a1, 0x00989eac, 0x00a5a9b7, 0x00adb3c1, 0x00aeb5c3, 0x00a5aebe, 0x0098a5bd, 0x008b9db9, 0x007090b5, 0x00648bba, 0x005d89bf, 0x005686be,
- 0x005296b9, 0x005593bb, 0x00598ebd, 0x00648fc2, 0x007795c2, 0x007f97b7, 0x007f92a8, 0x0082939f, 0x00818f92, 0x00788389, 0x00657581, 0x006e87a2, 0x006d89b2, 0x004867a0, 0x00254788, 0x001e4292,
- 0x002451a7, 0x003660b8, 0x003263b9, 0x002757ab, 0x002355a7, 0x001f54b3, 0x001c54b4, 0x002457b8, 0x002159b4, 0x002058b5, 0x002257b3, 0x00285cb8, 0x002d62bc, 0x002b64be, 0x002c67bd, 0x002a66bc,
- 0x002e6bc4, 0x002a69c3, 0x002c6ac3, 0x002e6cc6, 0x002d6bc3, 0x002d66c2, 0x00255cb8, 0x00164eab, 0x001a51ad, 0x002357b5, 0x001c52b0, 0x00235cb7, 0x002c6bc3, 0x002b67c0, 0x000f4aa3, 0x001b4da8,
- 0x00214ba9, 0x00234dac, 0x002d59b8, 0x002d63be, 0x003271cb, 0x002e70c3, 0x002b69bc, 0x002762b8, 0x002657a6, 0x00426ca7, 0x0080a1c4, 0x00c5dcdf, 0x00f6feef, 0x00fbfcf4, 0x00fbfcf6, 0x00fcfafc,
- 0x00fafdf8, 0x00f2f0e7, 0x00beb8aa, 0x00a69c87, 0x00b3a387, 0x00b7a486, 0x00baa689, 0x00bea689, 0x00c0a992, 0x00c1aa93, 0x00c4ab9e, 0x00c4a89f, 0x00c6af91, 0x00bbad94, 0x00aaa3a5, 0x00979dc4,
- 0x0088adf0, 0x006da0d9, 0x005d90d1, 0x005a8ccc, 0x005b7de3, 0x005888d2, 0x005c91d7, 0x006195df, 0x005c92e0, 0x005689d6, 0x00527fc6, 0x004d77b0, 0x00849cc2, 0x00c0cae2, 0x00c9cbd8, 0x00cec6ca,
- 0x00bcbcb4, 0x00b7bcdd, 0x008c94d0, 0x006476b6, 0x0035505d, 0x00051c12, 0x0008150a, 0x00140e17, 0x000e0414, 0x000b0403, 0x000f0702, 0x001e1000, 0x00624b2f, 0x009d7f5a, 0x00d0a97c, 0x00dbad78,
- 0x00d6a465, 0x00dba965, 0x00e2b271, 0x00e1af70, 0x00dfb576, 0x00e0b070, 0x00d7a566, 0x00c48f54, 0x009f6d3e, 0x00805024, 0x006b3f1d, 0x005a341a, 0x0040291e, 0x005e504e, 0x00cfc7c7, 0x00edeaef,
- 0x00e5e5e2, 0x00e4e5e2, 0x00e3e2e2, 0x00e7e5e9, 0x00eeedf4, 0x00edebf5, 0x00e9e8f2, 0x00e4e5ed, 0x00dfdce6, 0x00dddae4, 0x00e2dfe7, 0x00e7e5ea, 0x00edebf1, 0x00edecf1, 0x00e9e9ee, 0x00e7e6ed,
- 0x00e5e5e9, 0x00e9e9ed, 0x00f0eff4, 0x00f3f0f6, 0x00f4f0f6, 0x00f6eefb, 0x00edecfa, 0x00e5f1f8, 0x00dbf8f1, 0x00e3f2ea, 0x00eff0e9, 0x00fbe7e6, 0x00fee1ed, 0x00e6cad9, 0x00baadba, 0x00cad2df,
- 0x00f3f7ec, 0x00f1f0e8, 0x00f3f0ec, 0x00f4efed, 0x00f7eef0, 0x00f7f0f3, 0x00f0eff5, 0x00eeeff7, 0x00e8edff, 0x00e4eefd, 0x00ebeafe, 0x00f6def7, 0x00f1e5f2, 0x00eeeaed, 0x00eef0ed, 0x00f0eeef,
- 0x00f0eaf8, 0x00f1e8fa, 0x00eee5fb, 0x00f7f3fd, 0x00c3ccd3, 0x0077716f, 0x00352525, 0x002b1b19, 0x00392723, 0x0035251b, 0x003e2b1f, 0x003e291c, 0x004f3123, 0x00563325, 0x00522a1d, 0x00835a4c,
- 0x00e3e1e0, 0x00fbfcfb, 0x00fff9fc, 0x00fcf9fd, 0x00fafdff, 0x00dce2ea, 0x00677382, 0x0039495d, 0x004f627a, 0x005f738d, 0x00607086, 0x00616e78, 0x005f6571, 0x00565c66, 0x00505159, 0x00504e54,
- 0x0047433f, 0x00463f37, 0x00473d35, 0x004c4134, 0x0057493b, 0x005b5245, 0x00635545, 0x0083644e, 0x00945d33, 0x008d5321, 0x009a6332, 0x00a57647, 0x008f6f4d, 0x0071583f, 0x00624d38, 0x005f4e3a,
- 0x00554d3e, 0x00524a3e, 0x004d483d, 0x0047453b, 0x003d3e38, 0x00333631, 0x002d312a, 0x002b2e29, 0x002a2c29, 0x002c2924, 0x002d2419, 0x003d2310, 0x00533623, 0x006b4a3d, 0x0081675d, 0x008b7574,
- 0x007f8288, 0x00758599, 0x006a8cb1, 0x006092c2, 0x005595d7, 0x005494c6, 0x005393c0, 0x005692c0, 0x005196c2, 0x005195bf, 0x005093ba, 0x005393b4, 0x005c94af, 0x006194ac, 0x006393ab, 0x006895aa,
- 0x006697b3, 0x006799b3, 0x006799b3, 0x00689ab5, 0x006a9bb7, 0x006798b5, 0x006898b3, 0x006a9ab3, 0x006d9eb6, 0x00709fb8, 0x006d9db4, 0x006996a8, 0x00638da7, 0x00547894, 0x002d4e6f, 0x00122e54,
- 0x0026426a, 0x002b466f, 0x00192d58, 0x000e2348, 0x0010204b, 0x00051a41, 0x000f1c42, 0x001e1c3c, 0x00261734, 0x00201b3f, 0x001a2252, 0x00142e68, 0x002a3673, 0x003d2850, 0x004a1a2f, 0x00813131,
- 0x00bf372d, 0x00d27767, 0x00ffe6d9, 0x00fdfdf2, 0x00f0fffe, 0x00f3fbfb, 0x00f8fafd, 0x00daced6, 0x00534742, 0x001a1709, 0x00242612, 0x002c2b19, 0x0032301f, 0x0033301f, 0x0032301e, 0x00363222,
- 0x0032311f, 0x00323022, 0x00353022, 0x00373321, 0x00373522, 0x003a3626, 0x003b3326, 0x003a3326, 0x003a3324, 0x00363524, 0x00393625, 0x00353323, 0x002b291e, 0x00221e1a, 0x00100e0f, 0x000a0709,
- 0x00000403, 0x00030200, 0x000e0901, 0x00181006, 0x000f0d04, 0x00050802, 0x00000102, 0x0000020b, 0x000c0003, 0x002c1815, 0x009c6a56, 0x00da8348, 0x00e08a59, 0x00b16235, 0x008e4d27, 0x00763f24,
- 0x002e0c05, 0x00170000, 0x00100005, 0x00040107, 0x0002000e, 0x00260404, 0x0091562d, 0x00ce9269, 0x00e2aa7b, 0x00eeb681, 0x00efb67d, 0x00eab079, 0x00e2a874, 0x00d89c6c, 0x00cc8e61, 0x00ba7b4e,
- 0x00936834, 0x007f5022, 0x00ba855b, 0x00dea984, 0x00997154, 0x0060492c, 0x00403417, 0x0036311b, 0x002f2c1c, 0x00352e22, 0x00322e1f, 0x002d2e19, 0x0031311c, 0x0031311e, 0x00343522, 0x00373623,
- 0x00363423, 0x00343521, 0x00333520, 0x00333521, 0x00343421, 0x0033331f, 0x0031331d, 0x002f321b, 0x002f2f1e, 0x002f301d, 0x002d2e1b, 0x002a2918, 0x002e291a, 0x0034291e, 0x003c2b23, 0x00412e25,
- 0x0057483f, 0x00b0a29a, 0x00fffcf3, 0x00fcfaf6, 0x00fefeff, 0x00fafafc, 0x00fcfaff, 0x00e7e2ec, 0x00c9bdc8, 0x00cfbdcb, 0x00dcccdc, 0x00ded4e0, 0x00e3dbea, 0x00e4ddea, 0x00e4dfec, 0x00e9e3ef,
- 0x00e7e1eb, 0x00e6e4ed, 0x00e6e5ec, 0x00e4e4e9, 0x00e6e8eb, 0x00e4e0e3, 0x00d0c8cc, 0x00958d91, 0x00493e42, 0x00685f65, 0x00b9aeb6, 0x00b2a6ae, 0x00aca0ab, 0x00ab9cab, 0x00ab9aaa, 0x00a492a3,
- 0x00a08a96, 0x00988290, 0x00998497, 0x00a390a4, 0x00ab9baf, 0x00a799ae, 0x00a093a8, 0x00a396a9, 0x00ad99ac, 0x00ab9aa9, 0x00a49eaa, 0x00a1b8b5, 0x00d0dde9, 0x00e6edfc, 0x00e9e7fe, 0x00e3ddfd,
- 0x00d7cbe5, 0x00d5cadd, 0x00d4c9ce, 0x00cdc5bc, 0x00c7bfaf, 0x00b8cbbc, 0x00b1cac7, 0x00bdcbd5, 0x00e7dcf7, 0x00f8e7fc, 0x00fae6fd, 0x00c6acc8, 0x005c4c69, 0x00786a93, 0x00bab8e9, 0x00aaafe5,
- 0x006478d1, 0x00a1b0d9, 0x00e3e7f1, 0x00c8c4bd, 0x00aa99be, 0x00aea4d3, 0x00c1bce8, 0x00cccfe2, 0x00ecf8ea, 0x00deebdc, 0x00eef0f1, 0x00dbe3f8, 0x00ffdccc, 0x00f5b684, 0x00e88b50, 0x00e0844c,
- 0x00824e44, 0x00644a58, 0x00998dad, 0x00afa6c3, 0x00b3a1af, 0x00aea2af, 0x00aca1b3, 0x00b0a3b2, 0x00ada2af, 0x00aaa1af, 0x00aaa4ae, 0x00a8a4ab, 0x00c4c0c7, 0x00f1eef3, 0x00fffeff, 0x00fcfcfd,
- 0x00f6fffc, 0x00f9fcfd, 0x00ebdbd8, 0x00ad9286, 0x00a58370, 0x00bc9f88, 0x00c6b198, 0x00b29b8a, 0x00684b4a, 0x00451e26, 0x0041181c, 0x00461a0f, 0x00471911, 0x003c120a, 0x003b120d, 0x00401c16,
- 0x008c7167, 0x00d7bcb6, 0x00ebd1cc, 0x00ebd4d1, 0x00e7d0cf, 0x00baa891, 0x006c532f, 0x00704b27, 0x006b5c57, 0x00667a9f, 0x002f589f, 0x00013794, 0x00233585, 0x00252c64, 0x000a0633, 0x00040428,
- 0x00130415, 0x0016000f, 0x001e020a, 0x00230308, 0x002d0302, 0x002d0100, 0x00330300, 0x00360001, 0x00390001, 0x00370000, 0x00360205, 0x00260200, 0x0022050f, 0x001b0712, 0x0028192e, 0x00443f5d,
- 0x007881a8, 0x006f7bad, 0x00253271, 0x002b3a7d, 0x00757fd0, 0x00728fac, 0x00183560, 0x00212da1, 0x002e3bb9, 0x004c61a3, 0x008ba6c0, 0x00c0e2df, 0x00adcaf4, 0x00607ccb, 0x007594db, 0x00c1e4f9,
- 0x00bfd8f4, 0x009cbeee, 0x00a4ccfe, 0x006696d5, 0x008aa2d7, 0x00c0cdf3, 0x009ca1c4, 0x008587ae, 0x00466cb1, 0x001554ae, 0x001d68d1, 0x001563cc, 0x006e95d4, 0x00d3e1fc, 0x00fefefd, 0x00fdfcf4,
- 0x00f5fcf8, 0x00f4fdfb, 0x00dce6e1, 0x009c968e, 0x0071583e, 0x00675847, 0x006a5f51, 0x00756653, 0x0082724e, 0x00867749, 0x008d7c45, 0x00917d41, 0x0092793c, 0x0093753d, 0x008e6f39, 0x00886736,
- 0x00745f42, 0x009a8665, 0x00e4d0ac, 0x00e2cfa5, 0x00e5d3a0, 0x00e3d299, 0x00decc93, 0x00e1cf95, 0x00ddca95, 0x00d6c290, 0x00dfce97, 0x00d0c884, 0x00ada672, 0x00b0b080, 0x008e9064, 0x00514d24,
- 0x00766a3c, 0x00d4c59d, 0x00aa987b, 0x003c311c, 0x00160e06, 0x0031270f, 0x004b3e25, 0x003a2e25, 0x001e273c, 0x00182c55, 0x00183772, 0x00113c85, 0x002b59af, 0x003966be, 0x003e6ac1, 0x004b76ce,
- 0x004c85cf, 0x004d85d5, 0x004c82d7, 0x004a80d7, 0x00467dd9, 0x00427bd8, 0x00427cd8, 0x00417dda, 0x00407ad8, 0x003d7ad6, 0x003e7bd1, 0x003f7ccc, 0x003f7ccc, 0x00407bcc, 0x00417aca, 0x003e76c6,
- 0x003d6fbe, 0x004073c0, 0x003a69b8, 0x002957a7, 0x002654a3, 0x002e59a6, 0x00214895, 0x000e3783, 0x000a327a, 0x000d3577, 0x00133a79, 0x001b3e7b, 0x001a3871, 0x000a245d, 0x00061d56, 0x00081d52,
- 0x000c2059, 0x00132861, 0x00142a64, 0x00112965, 0x00102969, 0x000f2a69, 0x00062363, 0x00082668, 0x00113279, 0x0016377a, 0x0013387d, 0x0008367a, 0x0030528c, 0x00566ea3, 0x005b6b99, 0x004b587f,
- 0x0054617f, 0x0063687b, 0x0059555c, 0x006e5d57, 0x0082644a, 0x008a6545, 0x0086603f, 0x007d5a3d, 0x006a503b, 0x005e4a39, 0x00544438, 0x00443b32, 0x0033302b, 0x002d2926, 0x002d2726, 0x002f292a,
- 0x00343734, 0x00383a36, 0x003b3b3a, 0x003e3d3d, 0x00484541, 0x00534c46, 0x0060534b, 0x0069594c, 0x00725947, 0x006f5341, 0x006d543a, 0x00695433, 0x00665030, 0x0063482e, 0x006a4f37, 0x00675136,
- 0x00756651, 0x00bbb4a4, 0x00fefff6, 0x00f8faf7, 0x00fcfefe, 0x00f9fbf1, 0x00f6f7e9, 0x00bebeb5, 0x0067696b, 0x0082838b, 0x00bcbdca, 0x00dbe0ea, 0x00f3f7fd, 0x00f4faff, 0x00f5fafe, 0x00f6fbff,
- 0x00f5f5f8, 0x00fbf9fe, 0x00f6f5fb, 0x00f6f8fe, 0x00f8faff, 0x00f2f6f9, 0x00f1f6f7, 0x00f5f8f9, 0x00fbfaf8, 0x00fafaf5, 0x00f8f8f3, 0x00f5f7f1, 0x00f9f9f9, 0x00f5f8fb, 0x00f5f9ff, 0x00f3f7ff,
- 0x00f2f9ff, 0x00eff7fb, 0x00f1f8fd, 0x00f3f8fd, 0x00f7f8fe, 0x00eaf6fd, 0x00ebf8fb, 0x00eff3fa, 0x00fbf5f6, 0x00fdf8f5, 0x00f9faf5, 0x00f8fcf8, 0x00f1f4f3, 0x00b4b2ae, 0x004b443c, 0x004b3c30,
- 0x004e4333, 0x00524635, 0x005b4c3c, 0x00605041, 0x00635245, 0x00645246, 0x00675448, 0x006c574b, 0x0071574b, 0x006e5649, 0x00715447, 0x00785345, 0x00765045, 0x00724a40, 0x006a4339, 0x00643e33,
- 0x005c362a, 0x005d382a, 0x00623b2e, 0x00623a33, 0x00653e36, 0x005d3d26, 0x005e4429, 0x00574030, 0x00484241, 0x00434956, 0x003c5167, 0x004b6d8e, 0x0074a2d9, 0x007db2f0, 0x006da5ea, 0x00619fe8,
- 0x007197c0, 0x008a93b2, 0x00ac8da4, 0x00ac6469, 0x00af3023, 0x00ab2713, 0x009f2011, 0x0091251f, 0x00c8879a, 0x00f9d9e9, 0x00cbb5cd, 0x006c6575, 0x00251d35, 0x0019112e, 0x00140c32, 0x00120933,
- 0x000b0935, 0x000e0a3a, 0x00120d40, 0x00141143, 0x00181649, 0x00191b3e, 0x001e2645, 0x001d2c54, 0x00163566, 0x000f386c, 0x000e3e7b, 0x00174c8a, 0x00355da2, 0x004f6eb8, 0x006d82cd, 0x007581cd,
- 0x00a79082, 0x00b49c88, 0x00c5a68f, 0x00cfaa8b, 0x00d7a982, 0x00daab7c, 0x00d7a574, 0x00d39e6f, 0x00ce986e, 0x00c58f66, 0x00ae8659, 0x00817638, 0x0073716f, 0x00617297, 0x0027478c, 0x002d5bb2,
- 0x004a85c8, 0x004478b0, 0x004169a3, 0x005a74b2, 0x006e70c7, 0x00325fc5, 0x001451bf, 0x00245ac4, 0x002859b9, 0x002756b2, 0x002752ac, 0x002455a7, 0x00285caf, 0x002965bc, 0x00296ac4, 0x00246ac6,
- 0x002a69c3, 0x002d6cc4, 0x00336fca, 0x002f6dcd, 0x00306fd0, 0x002d67cc, 0x00275cc3, 0x001c4cb8, 0x00204bba, 0x00254ebd, 0x002350be, 0x001b64c6, 0x002e65c9, 0x002658ba, 0x001b44a6, 0x001d4ba7,
- 0x001d54aa, 0x001a57ad, 0x002362ba, 0x00326ecb, 0x00396ed1, 0x003468c6, 0x002b62c1, 0x001e59c0, 0x001e54bd, 0x003062b6, 0x007aa4dd, 0x00c9e9f1, 0x00f3fefe, 0x00f6fff6, 0x00f2fef4, 0x00f4fefb,
- 0x00fdfdf9, 0x00f7f4ec, 0x00c0b9ab, 0x00a19682, 0x00af9e83, 0x00b3a182, 0x00b5a384, 0x00baa687, 0x00bea88f, 0x00c0a992, 0x00c3aa99, 0x00c5a7a1, 0x00c4ad8b, 0x00bbad95, 0x00b8b3b3, 0x00aeb7dc,
- 0x0092b4f9, 0x007aa9e5, 0x005d93ce, 0x005586c7, 0x005479d8, 0x005584cf, 0x005b8fd2, 0x006093dc, 0x005990dd, 0x005285d2, 0x004f7ec7, 0x00537cbc, 0x007e97c7, 0x00adbde1, 0x00c7d1e9, 0x00d9dfed,
- 0x00d8dfe6, 0x00afbae5, 0x006e7ebb, 0x00586dac, 0x00253d44, 0x000c1a12, 0x00131a0e, 0x001a1318, 0x00130a14, 0x000e0906, 0x00140f04, 0x002a1d16, 0x00493320, 0x006a4c30, 0x00ac8461, 0x00c49569,
- 0x00b98652, 0x00cb9861, 0x00dcac72, 0x00e0b077, 0x00d8af77, 0x00ddae73, 0x00d4a468, 0x00c69359, 0x00a27140, 0x0078491f, 0x00502506, 0x00411c07, 0x002e180f, 0x005a4f4b, 0x00cdc7c7, 0x00e7e7eb,
- 0x00e6e5e5, 0x00e6e6e7, 0x00e4e4e6, 0x00e4e3e8, 0x00eaeaef, 0x00ecebf1, 0x00e8e8ed, 0x00e8e7ec, 0x00e5e3e7, 0x00e0dee3, 0x00dedce1, 0x00e1e0e4, 0x00e8e7ec, 0x00ebebf0, 0x00ebebf0, 0x00e7e6ec,
- 0x00e4e4e8, 0x00e9e8ee, 0x00ededf3, 0x00eff0f4, 0x00f2f1f6, 0x00f6eafa, 0x00f2ecfa, 0x00e7f1f5, 0x00dcf1ef, 0x00ecf2ec, 0x00f5f1ee, 0x00ffe4ea, 0x00efc2d3, 0x00c9a5b8, 0x00c5b2c6, 0x00d9d9e8,
- 0x00e9eeed, 0x00ecefef, 0x00f2f4f4, 0x00f0efef, 0x00f3edee, 0x00f7f0f1, 0x00f5eff1, 0x00f5eff3, 0x00f0eff5, 0x00f1eef4, 0x00f0ecf1, 0x00ede6f1, 0x00e4ece3, 0x00e3efe0, 0x00e3f3dc, 0x00e7f6df,
- 0x00edf4ef, 0x00ecf0ee, 0x00e3e8e9, 0x00ecf1ef, 0x00e9f6eb, 0x00d0cbc7, 0x00685c5c, 0x002a201b, 0x002f211d, 0x0036281e, 0x003c291e, 0x00402b1e, 0x004e2e22, 0x00573124, 0x004f271a, 0x007c5042,
- 0x00dcd6d9, 0x00fdfafb, 0x00fefafc, 0x00fcfbfd, 0x00ffffff, 0x00e8ebf2, 0x00737c89, 0x00303d4d, 0x003b495b, 0x00435165, 0x003c4957, 0x003e454a, 0x0040464c, 0x0042454b, 0x003c3d41, 0x003c393b,
- 0x00312f2d, 0x0037332a, 0x00443b35, 0x004b4139, 0x0051453a, 0x004b413b, 0x004f4237, 0x006e5440, 0x00845630, 0x0089572d, 0x00a27247, 0x009c7750, 0x00705b44, 0x00574b3a, 0x0052493c, 0x0051493b,
- 0x00504a3c, 0x004e473c, 0x00474138, 0x00403c34, 0x003c3a35, 0x00373731, 0x0034352d, 0x0035352e, 0x0039352c, 0x003c342c, 0x00392d1e, 0x00492b15, 0x00583720, 0x006c4830, 0x00795b43, 0x00806352,
- 0x007e756f, 0x00777b80, 0x00708295, 0x00688aa8, 0x005c8bb9, 0x005b91bd, 0x005893c1, 0x005994c4, 0x005698c6, 0x005496c5, 0x005297c5, 0x005197c2, 0x005494bc, 0x005794ba, 0x005896b9, 0x005995b6,
- 0x006594b7, 0x006797b8, 0x006596b6, 0x006698b8, 0x00689abb, 0x006697b8, 0x006697b5, 0x00699ab6, 0x006b9cbb, 0x006e9ebe, 0x006da0bb, 0x0072a1b8, 0x00759dbd, 0x006f95b5, 0x0054799c, 0x00425f88,
- 0x00365074, 0x00334870, 0x001c2c52, 0x00162349, 0x00101e40, 0x00041637, 0x000c1835, 0x001b1b33, 0x0020192e, 0x001a1a37, 0x000f1942, 0x00092155, 0x001e2c5f, 0x00342743, 0x0047212c, 0x00702e25,
- 0x00b13229, 0x00cb7366, 0x00fee4d6, 0x00fffcf1, 0x00f2fffd, 0x00f6fefd, 0x00f8fcfd, 0x00d8cfd5, 0x0050463f, 0x00161507, 0x0020230e, 0x00292815, 0x00302e1c, 0x00312d1f, 0x002f2d1d, 0x00312f1e,
- 0x002f2f1b, 0x0030301c, 0x00302d1b, 0x00312f1c, 0x0033311e, 0x00383121, 0x00383021, 0x00373220, 0x0038301d, 0x00373120, 0x00332f1e, 0x002d2b1c, 0x00242116, 0x001b1710, 0x00070403, 0x00030001,
- 0x00020402, 0x00070500, 0x000d0800, 0x000f0701, 0x00070502, 0x00010504, 0x00000205, 0x00010108, 0x000a0000, 0x00250f0a, 0x00845642, 0x00dd8c5d, 0x00eda070, 0x00d08659, 0x0099542e, 0x00a16540,
- 0x006e402a, 0x003e1c0e, 0x00170100, 0x000b0001, 0x0001010a, 0x00330d03, 0x00985e34, 0x00ce9364, 0x00dba06f, 0x00ecb17d, 0x00f6ba85, 0x00f5b885, 0x00f4b787, 0x00f6b98a, 0x00ebad7f, 0x00cc8e62,
- 0x008c5724, 0x00955c2e, 0x00e3a87f, 0x00f9c39d, 0x00ae8565, 0x00634a2b, 0x003e3115, 0x0038341e, 0x002a2b19, 0x00332e23, 0x00322e20, 0x002e2f1a, 0x0031321f, 0x00323320, 0x00343621, 0x00353622,
- 0x00353422, 0x00333520, 0x00333620, 0x00333521, 0x00343421, 0x00343420, 0x0032331e, 0x0030331d, 0x002e2f1b, 0x002e301c, 0x002e2e1c, 0x002b2a19, 0x002e291b, 0x0034291e, 0x003b2c23, 0x00402e27,
- 0x004c3b33, 0x009b8b86, 0x00fdf7f1, 0x00fefbf9, 0x00fbfbfe, 0x00fcfcfe, 0x00fbfcfd, 0x00eae8f0, 0x00d0c5d0, 0x00d1c2d0, 0x00dccedb, 0x00dcd4e2, 0x00e0d9e7, 0x00e2dbea, 0x00e5e0eb, 0x00e9e2ef,
- 0x00ebe7ef, 0x00eceaf0, 0x00eaeaef, 0x00e9eaed, 0x00eceef1, 0x00f0ecf0, 0x00ccc4c9, 0x007c7479, 0x00463c43, 0x007b7179, 0x00bbb0b8, 0x00b3a7b0, 0x00ad9fab, 0x00a696a4, 0x00a998a7, 0x00aa98a7,
- 0x00a6929e, 0x009d8b9a, 0x0099899b, 0x009e91a4, 0x00a69cb0, 0x00a59db0, 0x009f98aa, 0x00a098a9, 0x00a69aab, 0x00aa9caa, 0x00aa9a9f, 0x00b9a491, 0x00d7c7b7, 0x00f1dfd9, 0x00f8ebee, 0x00f8e7f2,
- 0x00eadbe5, 0x00e0d2dd, 0x00cecdce, 0x00c9c8c4, 0x00bec3bd, 0x00c0bbb7, 0x00c8c4be, 0x00dad4d2, 0x00ede8eb, 0x00f0f0f2, 0x00edf3f7, 0x00bfc8d3, 0x007687a4, 0x00a3b2db, 0x00a9bbf7, 0x005c6dcc,
- 0x004b60c3, 0x0092a2dd, 0x00d0dcf0, 0x00c5cbcf, 0x009495a5, 0x009093b0, 0x00bac1dd, 0x00cdd7eb, 0x00d3d4db, 0x00dfdde4, 0x00f3f0eb, 0x00f2ecdb, 0x00f4b795, 0x00e27c52, 0x00e67847, 0x00c7653b,
- 0x00432719, 0x003c3d41, 0x008593a1, 0x00a4a8bf, 0x00bb9baf, 0x00b39fb2, 0x00aca2b3, 0x00aca2b2, 0x00aaa1ae, 0x00aba3b0, 0x00a9a3ad, 0x00aaa5ad, 0x00c8c5cd, 0x00f3f0f5, 0x00fefcfe, 0x00fbfafe,
- 0x00fbfdff, 0x00fdfefd, 0x00e5d4ce, 0x00a48376, 0x00856148, 0x0086664a, 0x007b5b42, 0x00664834, 0x00522e25, 0x004d2122, 0x004a1e1e, 0x004c201b, 0x00461c16, 0x003e1914, 0x0037130d, 0x0034130f,
- 0x0074574f, 0x00c6aba6, 0x00e1cbc4, 0x00e0ccc7, 0x00decec7, 0x00bba791, 0x006b4f2b, 0x006a451f, 0x005e584f, 0x00557396, 0x003067a9, 0x000344a1, 0x00102d74, 0x000d194a, 0x00010424, 0x00050c26,
- 0x00270008, 0x00260004, 0x00250100, 0x00270001, 0x00270101, 0x00260000, 0x00220100, 0x00240200, 0x0026060b, 0x0021050c, 0x00230509, 0x001f0400, 0x00250f10, 0x00302128, 0x004f4752, 0x006d6e80,
- 0x00838eaa, 0x0059678f, 0x002e3e6d, 0x006e7cb2, 0x007a86c5, 0x00425a99, 0x00102c78, 0x004256c2, 0x008b9be6, 0x00b1cbd6, 0x00dcf3e2, 0x00eafcea, 0x00bac7ee, 0x006f7bc6, 0x0099a5eb, 0x00ddeffe,
- 0x00cdd6f9, 0x00afc6f4, 0x007295d1, 0x00608fd1, 0x00a1c3f5, 0x00bfd2fb, 0x00acbdf0, 0x008c9bd0, 0x00396abb, 0x00195ec2, 0x001b6ad1, 0x001e63c8, 0x007aa2d6, 0x00deeafc, 0x00fcfcf9, 0x00fcf8f0,
- 0x00f4faf6, 0x00f7feff, 0x00cdd3d1, 0x00827f79, 0x00654d34, 0x0060503f, 0x00645342, 0x00715f49, 0x0083714b, 0x008f7c4d, 0x0098834e, 0x009c854a, 0x009d8046, 0x009c7c43, 0x0095743c, 0x00916c38,
- 0x008a744f, 0x00b49f78, 0x00d8c598, 0x00d4c28f, 0x00d9c88e, 0x00dfcf91, 0x00e5d595, 0x00dccc8e, 0x00e0d193, 0x00ead99e, 0x00dccd91, 0x00ccbe81, 0x00a9a56e, 0x00aaa779, 0x00878659, 0x005a542a,
- 0x008d7c4e, 0x00c9b58f, 0x00a69274, 0x00463520, 0x00120c03, 0x002a1c07, 0x0042371d, 0x00352b1c, 0x001f222b, 0x00182340, 0x0019305d, 0x00193574, 0x002a529f, 0x00365fb2, 0x003e6bbe, 0x004b7cd1,
- 0x005286cd, 0x005386d2, 0x005083d6, 0x004c80d6, 0x00497dd6, 0x00467bd5, 0x00447ad4, 0x00437ad1, 0x004378d0, 0x004178ce, 0x00407acd, 0x003e7acb, 0x003e79ca, 0x004079cb, 0x004178c9, 0x003f75c5,
- 0x003e71c0, 0x003f70bf, 0x003968b7, 0x002754a3, 0x00224f9e, 0x002751a0, 0x001b4290, 0x000f3781, 0x000f3980, 0x001a4386, 0x00254e8c, 0x00284d88, 0x0013326b, 0x00051f57, 0x00091f55, 0x00102257,
- 0x00132861, 0x00142963, 0x000f2561, 0x000d2462, 0x000e2566, 0x000b2465, 0x00082464, 0x000e2c6d, 0x0014347a, 0x00143478, 0x000d3378, 0x00204c91, 0x004064a4, 0x004b66a1, 0x00627aaf, 0x00637cac,
- 0x0060739b, 0x006d7592, 0x005b5a63, 0x006b5852, 0x00826143, 0x00896446, 0x00846040, 0x0078573c, 0x00694e38, 0x005c4736, 0x00524136, 0x00443a33, 0x0035312d, 0x002d2a27, 0x002a2824, 0x002a2726,
- 0x002b2e2e, 0x002d2f30, 0x002f3133, 0x00353637, 0x00413c3c, 0x004d4340, 0x005e4f46, 0x006b5748, 0x00775949, 0x00795745, 0x0074593f, 0x006b5939, 0x00655134, 0x00634b30, 0x00624c30, 0x005a462b,
- 0x007a6a56, 0x00cabfb3, 0x00fdfdf5, 0x00fcfdfc, 0x00fafafe, 0x00f8f9f5, 0x00eeeeeb, 0x00a3a1a5, 0x004a4958, 0x005d5b73, 0x00898aa4, 0x00a3a5c5, 0x00b5bada, 0x00b2b8d7, 0x00aeb7d1, 0x00b0b8d0,
- 0x00b0b6d9, 0x00b2b7da, 0x00aeb6d8, 0x00b5c1e2, 0x00c6d1f4, 0x00c6d4f3, 0x00bfcee9, 0x00c1cde4, 0x00b0b9d0, 0x00a3aabe, 0x00a6abba, 0x00a9aab5, 0x00a9abba, 0x00acaec1, 0x00a9afc5, 0x00a6acc5,
- 0x00a9b5d3, 0x00b0b8d9, 0x00b0bade, 0x00b5bde5, 0x00b1bce1, 0x00b1bee4, 0x00b6c4e1, 0x00d7daf5, 0x00fdf9fc, 0x00fffdfd, 0x00fdfefd, 0x00fcfeff, 0x00f4f7f9, 0x00bbbaba, 0x005f5856, 0x005c4f4b,
- 0x005e534c, 0x0060544d, 0x0062564d, 0x0064574e, 0x00665851, 0x00685853, 0x006c5855, 0x006e5955, 0x00705956, 0x006c5652, 0x006a524c, 0x006c4f44, 0x00684941, 0x0063423a, 0x005b3a32, 0x0056362d,
- 0x00533029, 0x00543429, 0x0057362b, 0x005a3a30, 0x005b3e33, 0x00583c2d, 0x005a4235, 0x00523f3a, 0x004f4b52, 0x00686f83, 0x008394af, 0x0087a1ca, 0x0083a6dd, 0x006a94d2, 0x006a98d9, 0x0086b9f8,
- 0x00d6a6b6, 0x00c7818a, 0x00bf645e, 0x00c64a3e, 0x00c42b0f, 0x00bd2c0e, 0x00a5250a, 0x0089200c, 0x00ba8982, 0x00d7bebf, 0x00686065, 0x00171d1d, 0x00040610, 0x0004071b, 0x00030a1f, 0x000a0f29,
- 0x00040f31, 0x00050e34, 0x00030d35, 0x00000d32, 0x00000a32, 0x00020a3a, 0x00030d48, 0x00041454, 0x000d2172, 0x001b3183, 0x002d4191, 0x0044599b, 0x00697794, 0x00868f91, 0x00a3a794, 0x00b5b18e,
- 0x00cdac94, 0x00d6b295, 0x00dcb093, 0x00deae88, 0x00e2ab7e, 0x00e1ab77, 0x00dea671, 0x00dba06f, 0x00d59d70, 0x00ce9369, 0x00bf9068, 0x00a38662, 0x007a6970, 0x004f4974, 0x003e4985, 0x00738bce,
- 0x00a3caf6, 0x0096bbda, 0x008baac6, 0x00b1c6e4, 0x00a9b1e4, 0x005276c6, 0x002351b0, 0x002e59b4, 0x003358a9, 0x003a5cac, 0x004163ab, 0x004264ae, 0x004a75be, 0x004778c7, 0x003069b7, 0x002964b7,
- 0x00316bc7, 0x00346bc5, 0x003368c0, 0x003368bc, 0x003066b5, 0x002d5fb2, 0x00305db3, 0x002852aa, 0x001d4ca5, 0x002451ac, 0x002557b5, 0x002564bf, 0x003266c3, 0x002750af, 0x0018419c, 0x001e4aa1,
- 0x001e54a7, 0x00215caf, 0x002664b8, 0x003472c8, 0x003871ce, 0x00396dc1, 0x002c5eb0, 0x001c50ab, 0x001d51af, 0x002b59a7, 0x00769bd1, 0x00d1e7f4, 0x00fbfcff, 0x00fdfdfd, 0x00f8faf7, 0x00fafcfe,
- 0x00fffdfb, 0x00faf6ee, 0x00c2bcaf, 0x00978e79, 0x00aa9b80, 0x00b19e81, 0x00b3a083, 0x00b6a385, 0x00bba68f, 0x00bda991, 0x00c1aa9b, 0x00c4a7a0, 0x00c3ac8c, 0x00bbae95, 0x00b6b1b1, 0x00abb3d9,
- 0x0095b3f9, 0x0082b0ee, 0x00699ad9, 0x00578cc8, 0x005577d5, 0x005080c9, 0x005689cd, 0x00598fd4, 0x00598ddb, 0x005085d1, 0x004e7dce, 0x00507ac4, 0x005b7ab5, 0x00677eb0, 0x007f92ba, 0x009cabcd,
- 0x00b9c9df, 0x009daedd, 0x006a7abe, 0x005165a6, 0x000c212a, 0x000a120c, 0x0016180a, 0x00201714, 0x001b1117, 0x0015100f, 0x00201a14, 0x003d2f2c, 0x00564137, 0x00624736, 0x00674328, 0x006a3e1b,
- 0x00864f25, 0x00af7c4a, 0x00d7a572, 0x00d8a974, 0x00d6a976, 0x00cfa168, 0x00cb9b60, 0x00c1935a, 0x00b18050, 0x0080522a, 0x00482104, 0x00381501, 0x0028130a, 0x00635856, 0x00d7d3d4, 0x00e1e5ec,
- 0x00eae7eb, 0x00e9e7eb, 0x00e6e5e8, 0x00e2e2e5, 0x00e6e6ea, 0x00ebebee, 0x00e8e9eb, 0x00e4e5e7, 0x00e6e5e7, 0x00e3e2e4, 0x00dfdee2, 0x00dcdbe0, 0x00e1e1e5, 0x00e8e8ed, 0x00eaeaf0, 0x00e7e7ed,
- 0x00e6e3e9, 0x00e8e8ed, 0x00ededf2, 0x00f1eff4, 0x00f2f1f6, 0x00faecfd, 0x00f7eaf9, 0x00eaecef, 0x00e6f1ed, 0x00e9ebe7, 0x00ecdcde, 0x00ecc6ce, 0x00c48fa4, 0x00926d81, 0x009f859a, 0x00c2bdcf,
- 0x00c5cdd2, 0x00d8e0e2, 0x00edf2f3, 0x00eeefef, 0x00f2eff1, 0x00f6f0f2, 0x00f6eff1, 0x00f4eeee, 0x00f8efee, 0x00f6f0ec, 0x00f5eef1, 0x00eeeaf4, 0x00e6ebe8, 0x00e2ecde, 0x00e5efdc, 0x00e8f3df,
- 0x00f0efef, 0x00edeaec, 0x00edeaec, 0x00e8e8e6, 0x00eef3e7, 0x00f7f6f4, 0x00bdb5ba, 0x005e5557, 0x00261c18, 0x002f241d, 0x003e2c25, 0x003f2a1f, 0x004c2e20, 0x00512d1c, 0x00502918, 0x00714736,
- 0x00d3c9cf, 0x00fcf8fa, 0x00fffbfc, 0x00fbfcfd, 0x00fffeff, 0x00f3f3fa, 0x007b818b, 0x001c2530, 0x00212938, 0x00232e3c, 0x002b323c, 0x00313637, 0x00393b3c, 0x00393d3a, 0x00383936, 0x00363631,
- 0x0038332f, 0x00403e35, 0x004d4941, 0x00484438, 0x003c382c, 0x00322d28, 0x003e322a, 0x005f4736, 0x00815737, 0x008e6440, 0x00a07856, 0x00876b4e, 0x00564a3a, 0x00443f34, 0x00414239, 0x00404339,
- 0x00464035, 0x003c372b, 0x003b372d, 0x003e3b33, 0x003a3831, 0x0036332d, 0x0038342d, 0x003a352b, 0x0040352a, 0x00403629, 0x004a3423, 0x005b371c, 0x006a4528, 0x00785333, 0x00875f3e, 0x00896548,
- 0x00856c5c, 0x00797064, 0x00747576, 0x006d7d84, 0x00688396, 0x00618aac, 0x005e90ba, 0x005c92ba, 0x005a94c2, 0x005795c3, 0x005496c7, 0x005197c8, 0x005196c5, 0x005195c4, 0x005195c3, 0x005296c1,
- 0x006394b8, 0x006294b6, 0x006294b6, 0x006295b6, 0x006397b7, 0x006396b8, 0x006295b7, 0x006597ba, 0x00689abd, 0x00689cbb, 0x00669ebf, 0x00629fc5, 0x00699fc9, 0x006ea1cc, 0x0073a0cc, 0x006f97c3,
- 0x006584b0, 0x00516b93, 0x002d436c, 0x00233559, 0x00122444, 0x00061431, 0x0009142d, 0x0016182a, 0x0023192a, 0x00181b31, 0x000d183a, 0x00031a49, 0x000e1f47, 0x00231e35, 0x00391e21, 0x005a271b,
- 0x00a02f29, 0x00be7063, 0x00ffe3d7, 0x00fefcf2, 0x00f3fefd, 0x00f8fefe, 0x00fbfdfe, 0x00d9d1d6, 0x004f4740, 0x00151407, 0x001f220d, 0x00282713, 0x002f2d19, 0x00312d1d, 0x002f2d1a, 0x002f2f1b,
- 0x00322f1c, 0x0031301d, 0x00302f1c, 0x002f2f1a, 0x0033331f, 0x00363221, 0x003a3221, 0x0039331f, 0x00393424, 0x0034321e, 0x0036321f, 0x002f2e1b, 0x002a281b, 0x001e1a12, 0x00080600, 0x00030100,
- 0x00050709, 0x000a0a07, 0x000d0803, 0x00080100, 0x00010101, 0x00000305, 0x00000408, 0x00010004, 0x00100003, 0x00190401, 0x00633424, 0x00c68462, 0x00f8b28b, 0x00e8a077, 0x00b06a41, 0x00b9794f,
- 0x00b3795a, 0x00774d35, 0x00311205, 0x00100001, 0x00080207, 0x00441a05, 0x009f6135, 0x00c6875d, 0x00d29364, 0x00e3a672, 0x00f0b47d, 0x00f2b680, 0x00f6b885, 0x00fcbb8c, 0x00f2b083, 0x00d8966a,
- 0x00a16830, 0x00b87b49, 0x00f9ba8e, 0x00fcc49c, 0x00d0a582, 0x00856948, 0x00493a1d, 0x0035341a, 0x00312e20, 0x00342e23, 0x00322d20, 0x0031321f, 0x00303320, 0x00343521, 0x00353520, 0x00373622,
- 0x00343421, 0x00343420, 0x00343421, 0x00343421, 0x00343521, 0x0034351f, 0x0033341e, 0x0032331e, 0x0030321e, 0x002e311e, 0x002d2f1c, 0x002b2a1a, 0x0030281b, 0x0035281d, 0x003c2c23, 0x003f2f27,
- 0x00443129, 0x0080716b, 0x00f6eee7, 0x00fdfcf7, 0x00fbfdfc, 0x00fcfcfc, 0x00fbfcfd, 0x00f2eef7, 0x00d8cddb, 0x00d4c7d2, 0x00dcd0de, 0x00dbd3e1, 0x00ddd8e6, 0x00e3dee8, 0x00e6e1ec, 0x00e6e1eb,
- 0x00ebe8ef, 0x00edeaf1, 0x00f0eef4, 0x00eeecf2, 0x00f2f1f6, 0x00f5f0f5, 0x00cec5ca, 0x00736b6f, 0x004b3f49, 0x00897e85, 0x00b9aeb5, 0x00b5a8b2, 0x00ad9eac, 0x00a696a5, 0x00a292a1, 0x00a495a3,
- 0x00a2949f, 0x009c909b, 0x00978d99, 0x0098929e, 0x00a5a1af, 0x00a4a0b0, 0x009f9aab, 0x00a19aaa, 0x00a99cab, 0x00a89ea7, 0x00aa9ba0, 0x00b0a197, 0x00c6b5ae, 0x00decdce, 0x00f0e3e2, 0x00f5e6e8,
- 0x00f7e8f1, 0x00e7e1e9, 0x00d5d7de, 0x00cad2da, 0x00bac6cb, 0x00cac4c6, 0x00e3d4d5, 0x00eee5ea, 0x00ebf1f3, 0x00e6f7f2, 0x00e8fdf6, 0x00d5edec, 0x00bfd3e7, 0x00cedcf9, 0x009da3e6, 0x004e51ae,
- 0x004658cc, 0x006473cb, 0x008a98cf, 0x00b3bfd9, 0x008f9bad, 0x007c889e, 0x00c2cdee, 0x00b2bce1, 0x009188ac, 0x00d6c8de, 0x00feeaec, 0x00f1cda1, 0x00d77f59, 0x00c95f3d, 0x00d66c4f, 0x008a391d,
- 0x00130302, 0x00202a2b, 0x007c8d98, 0x009fa6b6, 0x00b69db4, 0x00b19fb1, 0x00aca1b1, 0x00aca2b2, 0x00aca3b0, 0x00aca3af, 0x00aaa2ac, 0x00aca7b0, 0x00d1ced5, 0x00f5f4f6, 0x00fcfbfc, 0x00fdfbfe,
- 0x00fcfcfc, 0x00fdfcf7, 0x00e5cec4, 0x00a58674, 0x008c6349, 0x00835d41, 0x007a5438, 0x00744f35, 0x00794b3c, 0x00744235, 0x0067342e, 0x005c3027, 0x00522a24, 0x004c261d, 0x00421e17, 0x0035140b,
- 0x005c3e38, 0x00a0877f, 0x00d4bdb4, 0x00dec7c0, 0x00cab6ad, 0x009e866e, 0x0061421d, 0x00674218, 0x005c574e, 0x00406485, 0x002d6aaf, 0x000f54b1, 0x000b296d, 0x000f1540, 0x00130e28, 0x001a1523,
- 0x00390609, 0x00370604, 0x00300000, 0x00290100, 0x00270202, 0x00240601, 0x001d0300, 0x001c0602, 0x001b070c, 0x0017050c, 0x00160307, 0x00230f07, 0x00403231, 0x00554b4d, 0x005e5b61, 0x005c5f6d,
- 0x00535c75, 0x0034425e, 0x0057668d, 0x007582ac, 0x00485485, 0x002e457e, 0x00122c79, 0x005468c1, 0x00d3e1ff, 0x00eafbef, 0x00e9f7ea, 0x00e7f7e9, 0x008f92d2, 0x00585b9c, 0x00b7bdea, 0x00e7f6ed,
- 0x00ceccf1, 0x008b9bca, 0x005f7cb6, 0x0090bbf1, 0x0099c0f7, 0x008099dc, 0x009ab4f3, 0x007d96d9, 0x00245ab5, 0x00125dc0, 0x001e69d3, 0x001e60b8, 0x0083a2d4, 0x00e3ecfe, 0x00fffdfc, 0x00fcfaf1,
- 0x00fcfdfe, 0x00f8fefe, 0x00cad2cf, 0x0088877f, 0x006f5741, 0x00675542, 0x00655241, 0x00675941, 0x007d6945, 0x008b764a, 0x009c8451, 0x00a28850, 0x00a1824b, 0x00a07f4a, 0x009b7946, 0x00947041,
- 0x009d8c63, 0x00bcab7e, 0x00b7a875, 0x00bcae73, 0x00dacd8e, 0x00e0d392, 0x00e4d798, 0x00ddd192, 0x00d9c98b, 0x00d6ca8a, 0x00d1c187, 0x00c7b77d, 0x00c5bc8c, 0x008c8a59, 0x00575328, 0x006d683c,
- 0x00bcaa7f, 0x00d2c198, 0x00a69170, 0x00433419, 0x00140d01, 0x00342812, 0x0045381e, 0x002f2514, 0x00282325, 0x001d212d, 0x00161f3e, 0x00152956, 0x00294b8d, 0x003661ab, 0x004271c1, 0x004d83d6,
- 0x005488d1, 0x005286d1, 0x005185d4, 0x004e81d3, 0x004b7ed3, 0x00497cd4, 0x004678d1, 0x004376cd, 0x004476c9, 0x004376c7, 0x004178c9, 0x003d79ca, 0x003c78c9, 0x003f79c9, 0x004177c7, 0x003e74c2,
- 0x004271c1, 0x003f6fbe, 0x003664b3, 0x0023519f, 0x001d4998, 0x00224b9a, 0x001f4694, 0x001d4892, 0x0029529b, 0x00335a9f, 0x00365c9e, 0x002a4e8c, 0x00102f6a, 0x00031d56, 0x000b215a, 0x0010235a,
- 0x00122261, 0x00122561, 0x00122863, 0x00102764, 0x000b2362, 0x000b2565, 0x00153174, 0x00163478, 0x000f2f75, 0x00123278, 0x0020448a, 0x00335da3, 0x00335898, 0x00264685, 0x003c5d99, 0x005175ad,
- 0x007189bc, 0x007a8aaa, 0x005c5c6c, 0x00645349, 0x00825938, 0x00886344, 0x00805c41, 0x0075543b, 0x00654a39, 0x00564434, 0x004c3e34, 0x00423831, 0x00342e2b, 0x002b2724, 0x00272621, 0x00282622,
- 0x0023242c, 0x00242529, 0x0026282a, 0x002e2d30, 0x003a3436, 0x00473b39, 0x005b4842, 0x00695146, 0x007b584a, 0x00805a4b, 0x00815f49, 0x00745f41, 0x006c5539, 0x00655135, 0x005c482d, 0x004f3e25,
- 0x00766756, 0x00d5c8be, 0x00fffdf7, 0x00fcfefb, 0x00fafcfd, 0x00fdfdfd, 0x00e5e1e8, 0x00807c89, 0x0016132f, 0x00111035, 0x00201f4c, 0x002b2e61, 0x003b4175, 0x00323d70, 0x002f3b6b, 0x002d3c6b,
- 0x00313e77, 0x002d3a72, 0x00314179, 0x0041558d, 0x006378b3, 0x006e84bd, 0x00697eb3, 0x006578a9, 0x0040517f, 0x00182850, 0x00161b40, 0x001c1c38, 0x001f203d, 0x001d2344, 0x0021254d, 0x001f2653,
- 0x00263066, 0x00323d76, 0x003e4988, 0x003d4e8e, 0x00405094, 0x0040508f, 0x005a6498, 0x00aaafd8, 0x00fef7ff, 0x00fdf9fb, 0x00fffefd, 0x00fcfefb, 0x00f7fbfb, 0x00e3e1e3, 0x00c0b8bb, 0x00c1b3b8,
- 0x00baafb1, 0x00b6abad, 0x00b2a6a8, 0x00ada1a2, 0x00a79c9c, 0x00a39796, 0x00a09092, 0x009e8c8f, 0x00968587, 0x00938183, 0x00927b7b, 0x00917670, 0x00896f67, 0x007f655c, 0x00735951, 0x006b514a,
- 0x006b5049, 0x006a4f48, 0x00694e47, 0x00695047, 0x00685147, 0x0068524a, 0x00614f4c, 0x00574b4b, 0x006b6572, 0x008b8fa5, 0x00929ec0, 0x007588b2, 0x005571a5, 0x0037568c, 0x00516fad, 0x0084a7de,
- 0x00cb7574, 0x00a54438, 0x00a43120, 0x00b32f15, 0x00bf290c, 0x00b02707, 0x00a12a0f, 0x007c220a, 0x00966b61, 0x00ac9c94, 0x00444043, 0x0008091d, 0x0002061d, 0x00040b29, 0x00030a2f, 0x00010e39,
- 0x00061245, 0x00000f45, 0x00001346, 0x00001649, 0x00021b4e, 0x00041960, 0x000e2071, 0x001e3081, 0x00323a8a, 0x00384283, 0x0055588c, 0x007c7899, 0x00ab9c94, 0x00bca984, 0x00c9b57b, 0x00d0ba6e,
- 0x00d8ad91, 0x00dcae8d, 0x00dca985, 0x00dba87a, 0x00dfa773, 0x00e2a874, 0x00e0a470, 0x00dc9e6c, 0x00da9d71, 0x00cf966a, 0x00c48e6a, 0x00b68d67, 0x00967274, 0x006b546e, 0x007f729d, 0x00bcbee7,
- 0x00d0e2f3, 0x00d5e6f1, 0x00c5dae5, 0x00d0e2f6, 0x00abb4db, 0x005572b4, 0x003055a4, 0x004668b1, 0x00667dc3, 0x00829adb, 0x009fb5f0, 0x00a2bdf6, 0x009fbdfe, 0x0091b9f6, 0x00547dc2, 0x00355faa,
- 0x00366ac3, 0x003567bc, 0x003965b6, 0x003d68b0, 0x00436caa, 0x004d73b3, 0x00527abe, 0x003c66ac, 0x001f4a9a, 0x001b4e9d, 0x00265cb2, 0x002866bf, 0x003462bf, 0x002147a4, 0x001a3d9a, 0x00214ca2,
- 0x002256aa, 0x002562b3, 0x002d6cbf, 0x003573ca, 0x00356fca, 0x003c6dbb, 0x002a58a2, 0x00184d9e, 0x001f4ea8, 0x0029539d, 0x007694ca, 0x00d4e3f5, 0x00fefeff, 0x00fdfcfe, 0x00fbf9f9, 0x00fffafd,
- 0x00fffdf9, 0x00fbf9f1, 0x00c4bfb3, 0x00918875, 0x00a09178, 0x00aa997d, 0x00ac9b7e, 0x00af9e80, 0x00b7a18b, 0x00baa58f, 0x00bca794, 0x00c1a69d, 0x00c1ab89, 0x00beb29b, 0x00b7b2b3, 0x00aab1d8,
- 0x0091aff6, 0x0081aeeb, 0x006fa1db, 0x006292d2, 0x00597ed5, 0x00507ec8, 0x005280c5, 0x005184cc, 0x004f83d2, 0x004d80d0, 0x004b7bcf, 0x004f7ccd, 0x005479be, 0x004f70af, 0x005570a9, 0x005b72a8,
- 0x006986ad, 0x006b87be, 0x005f77ba, 0x004a5c9c, 0x00040c1c, 0x00090505, 0x00181105, 0x0021160c, 0x001e1617, 0x001a1816, 0x001f1c18, 0x00241818, 0x00301b16, 0x00361c0e, 0x00320e04, 0x00451a04,
- 0x00824f27, 0x00b38156, 0x00d09c6f, 0x00cf9f71, 0x00cc9b6e, 0x00c59861, 0x00c4965e, 0x00c0935d, 0x00b58658, 0x008d613b, 0x004d270a, 0x003d1c09, 0x0034201b, 0x00685e5f, 0x00dedce2, 0x00dde3ed,
- 0x00e9e9ef, 0x00eae9ed, 0x00e6e5e7, 0x00e1e1e2, 0x00e4e2e3, 0x00eae9ea, 0x00e8e9e8, 0x00e2e3e2, 0x00e4e5e2, 0x00e4e5e2, 0x00e2e2e3, 0x00dbdbdf, 0x00dadadf, 0x00e2e2e8, 0x00eaeaf1, 0x00e9e8ee,
- 0x00e8e5ea, 0x00e7e7ec, 0x00edecf2, 0x00eeeef3, 0x00f1f0f6, 0x00f7eaf6, 0x00fbebf5, 0x00f5f0f2, 0x00eff6f0, 0x00dfdbd8, 0x00c6b5b8, 0x00d0adb6, 0x00b07f93, 0x00876179, 0x00977b96, 0x00c5b6d0,
- 0x00c0c5cc, 0x00cfd7db, 0x00e9eff1, 0x00ecf0f2, 0x00edf1f2, 0x00f0f0f2, 0x00f3eeee, 0x00f4efed, 0x00f8eee8, 0x00f8eee8, 0x00f7edf0, 0x00f1e8fa, 0x00efecf2, 0x00eeebe8, 0x00efeae3, 0x00ede9e3,
- 0x00f6eeef, 0x00efe6ef, 0x00eee4ec, 0x00ece5e8, 0x00f0e8e3, 0x00f8f3f5, 0x00f2edf1, 0x00b1adb1, 0x00453f3f, 0x0029201c, 0x0033231e, 0x003c281f, 0x0047291b, 0x00512e1c, 0x00512a19, 0x006e4232,
- 0x00c1bec2, 0x00f9f7f9, 0x00fefdfd, 0x00fbfcfd, 0x00fdfcfd, 0x00f8f8fd, 0x00898990, 0x00191a22, 0x001d1e25, 0x0023252d, 0x00323136, 0x003a3534, 0x003e3c38, 0x00423f39, 0x0044413c, 0x0042403a,
- 0x00403d38, 0x0043443a, 0x0045443d, 0x00393930, 0x0027271f, 0x0025241e, 0x003d3129, 0x00634b3c, 0x00856243, 0x008c684a, 0x0087654a, 0x00644f39, 0x00433f36, 0x00363933, 0x002f3634, 0x00323938,
- 0x003a322b, 0x00312b21, 0x00353128, 0x003d3b34, 0x003a3930, 0x0039352c, 0x003e362d, 0x00413629, 0x00433524, 0x004a3726, 0x00563c24, 0x00684522, 0x0077502b, 0x00855d33, 0x0093693d, 0x00976e41,
- 0x0093714b, 0x00877051, 0x007d6c55, 0x00756f5e, 0x006f726b, 0x00687c8f, 0x006384a3, 0x00638aa9, 0x00628eb7, 0x005e90bb, 0x005991c0, 0x005593c4, 0x005295c7, 0x005095c9, 0x005096cb, 0x005098cc,
- 0x005e92b3, 0x005e92b5, 0x006094b7, 0x006094b7, 0x006094b8, 0x006094b7, 0x006294b8, 0x006496bb, 0x00679ac0, 0x00659abe, 0x00649ec8, 0x005fa4d9, 0x0062a0d3, 0x0067a3d7, 0x0072a5d8, 0x0073a4d4,
- 0x00799bce, 0x007691be, 0x00627aa2, 0x00586b8d, 0x00384865, 0x001d2845, 0x0011182f, 0x00151527, 0x001e192a, 0x00171d31, 0x000d1b36, 0x00061d45, 0x00081b3b, 0x00141529, 0x00291619, 0x00411d11,
- 0x00842521, 0x00b16f63, 0x00ffe5de, 0x00fefef4, 0x00f7ffff, 0x00fafdfd, 0x00fdfcfc, 0x00dad2d4, 0x00504840, 0x00191507, 0x00222410, 0x002a2a15, 0x00312f1a, 0x0033301b, 0x0030311b, 0x0032311e,
- 0x00332d18, 0x00302d18, 0x00302e1a, 0x002f2f1a, 0x0032321d, 0x0032301c, 0x0035301d, 0x0038321f, 0x0036331f, 0x0033301b, 0x00302e1a, 0x002c2c19, 0x0028281a, 0x001b1a12, 0x00040300, 0x00020001,
- 0x00050a0a, 0x000b0c08, 0x000e0a05, 0x00070300, 0x00010000, 0x00000001, 0x00020407, 0x00020004, 0x00180301, 0x00200501, 0x00401506, 0x00915b3e, 0x00ebaf8b, 0x00f9bc91, 0x00e8a175, 0x00db9463,
- 0x00cd885e, 0x00ac7556, 0x005d321b, 0x001e0601, 0x00150607, 0x0059280a, 0x00a76333, 0x00c27e4e, 0x00ca8654, 0x00dc9966, 0x00e7a570, 0x00f0ae79, 0x00f7b582, 0x00f4b281, 0x00edab7d, 0x00df9d72,
- 0x00d4955c, 0x00e3a06b, 0x00fcba88, 0x00f8bc90, 0x00e5b692, 0x00a38666, 0x004e4024, 0x00323019, 0x00312f20, 0x00342f25, 0x002f2a1d, 0x0032321d, 0x0033341f, 0x00343421, 0x00343420, 0x00343420,
- 0x00333520, 0x00333520, 0x00343521, 0x00343522, 0x00353521, 0x00343520, 0x00343420, 0x00343321, 0x0031311c, 0x002f301d, 0x002c2e1b, 0x002b2918, 0x002f291b, 0x0035291e, 0x003d2c24, 0x00422f2a,
- 0x00453126, 0x0072625a, 0x00e6dcd6, 0x00fefbf8, 0x00fcfcfc, 0x00fefefe, 0x00fbfbfc, 0x00f7f3fa, 0x00ded4dd, 0x00d7cbd4, 0x00dcd0dc, 0x00dbd1e1, 0x00ddd7e3, 0x00e3dde8, 0x00e8e1eb, 0x00e6e0eb,
- 0x00e3e4e9, 0x00eae9ee, 0x00eeedf3, 0x00eeeef2, 0x00f0f0f4, 0x00f9f6f9, 0x00d7d2d5, 0x00898285, 0x00655c64, 0x00958c92, 0x00b7adb4, 0x00b1a6b0, 0x00af9fad, 0x00ab9ba9, 0x00a092a0, 0x009b8d9c,
- 0x009b929a, 0x009b949d, 0x0096909b, 0x0093909b, 0x00a19eac, 0x00a3a0af, 0x00a29dab, 0x00a19aa8, 0x00a79da6, 0x00a99ca4, 0x00a69ba5, 0x00a39fb0, 0x00b8b4be, 0x00d0c9d1, 0x00e6dfe5, 0x00ede6e7,
- 0x00f3eff3, 0x00ecedf3, 0x00e5e7f1, 0x00dde1ec, 0x00cdd8e7, 0x00ddd8e0, 0x00ede4e7, 0x00eeedef, 0x00e4f2f1, 0x00e0f7f0, 0x00e4fdf1, 0x00e0faef, 0x00d8e4ea, 0x00e3e2f5, 0x00c4b7e6, 0x008369af,
- 0x004959d2, 0x00616fd6, 0x00606cc1, 0x007f90c8, 0x00859aab, 0x007b91a9, 0x0097a5c9, 0x00636ba4, 0x008971b0, 0x00e6c9ee, 0x00fbcacb, 0x00e3904f, 0x00bd5e36, 0x00c6664e, 0x00c5766b, 0x00733c39,
- 0x000b0104, 0x00131e1e, 0x006b787e, 0x0099a0ac, 0x00b3a2bd, 0x00ada1b2, 0x00aca2ae, 0x00aca1af, 0x00aba4b0, 0x00aaa3ab, 0x00aaa3ab, 0x00afaab2, 0x00d7d4da, 0x00f9f8f9, 0x00fefcfe, 0x00fffdff,
- 0x00fcfcf6, 0x00fcfaf4, 0x00dbc0b6, 0x00a5826d, 0x009c6f54, 0x009b6f4f, 0x00986e4a, 0x00976b4a, 0x0097664c, 0x00935b48, 0x00844f41, 0x00744a3e, 0x00694135, 0x00633e32, 0x00553226, 0x004d2a1c,
- 0x004f3025, 0x006e5447, 0x009f8577, 0x00b0988b, 0x00968072, 0x00735c3b, 0x00614115, 0x006a4815, 0x005e5c4f, 0x003e6081, 0x002d66a9, 0x001457ad, 0x00162866, 0x0020183b, 0x002b1525, 0x002e1116,
- 0x00410608, 0x00370201, 0x00300000, 0x002d0000, 0x00220001, 0x00220300, 0x00210502, 0x001a0203, 0x00120106, 0x0018070d, 0x00261618, 0x00443732, 0x0058554e, 0x00474544, 0x003b3d3f, 0x00464a53,
- 0x00474f61, 0x00455068, 0x0058647d, 0x0032405f, 0x00505b7e, 0x00677dac, 0x002b447e, 0x005166ad, 0x00d8e7ff, 0x00d5e5e1, 0x00c4cfd1, 0x00c6cdde, 0x007b76c5, 0x006362a2, 0x00cdd3ea, 0x00f2fde1,
- 0x00cec8e8, 0x00949ecc, 0x00aac5f3, 0x00a2ccfb, 0x005687d0, 0x004368b5, 0x004c72bb, 0x004466b2, 0x001c57b0, 0x00145ec3, 0x001d62c2, 0x00225dab, 0x0087a4d2, 0x00e6efff, 0x00fffdfd, 0x00fffcf4,
- 0x00f7fdf9, 0x00fcffff, 0x00e9ebe9, 0x00ccc9c2, 0x00beac9b, 0x00ad9d8d, 0x00a08f7f, 0x009c8c77, 0x009d8d6c, 0x00a9956d, 0x00af986c, 0x00ad9363, 0x00a98a5b, 0x00a38356, 0x0098794c, 0x00916e45,
- 0x009e9363, 0x00c7bb8b, 0x00cabe8b, 0x00d5ca90, 0x00e2d69a, 0x00e1d597, 0x00e0d595, 0x00dad090, 0x00c1b779, 0x00beb477, 0x00c6ba7f, 0x00cbba83, 0x00d4cb9d, 0x00959064, 0x00555326, 0x00767247,
- 0x00ccbc8f, 0x00dccb9e, 0x009f8b69, 0x003d2a14, 0x00160f05, 0x00392f18, 0x0041371c, 0x002a1d0b, 0x002f231b, 0x00241919, 0x000f0c1c, 0x00111834, 0x00203a6e, 0x003960a1, 0x004679c4, 0x004983d5,
- 0x005087d1, 0x005086d2, 0x005185d4, 0x004e82d3, 0x004c7ed4, 0x004a7cd3, 0x004678ce, 0x004475cb, 0x004373c5, 0x004474c3, 0x004277c6, 0x003d77c8, 0x003b77c7, 0x004077c9, 0x004176c9, 0x003e73c4,
- 0x003e6ebf, 0x003f6ebd, 0x003462b0, 0x00224f9e, 0x001d4797, 0x00224998, 0x00234a98, 0x002b53a2, 0x00355fa7, 0x00385ea5, 0x00375c9f, 0x002f5391, 0x00173570, 0x0009245d, 0x000e275e, 0x0011245d,
- 0x00102363, 0x00081c59, 0x00091f5c, 0x000d2464, 0x00142d6d, 0x00183375, 0x001a377e, 0x0015347c, 0x000f3074, 0x001c3d83, 0x002f539b, 0x00245097, 0x00163b83, 0x00194287, 0x00204b8f, 0x00315da2,
- 0x00648cc4, 0x00758db2, 0x005b5f6f, 0x00645049, 0x00845530, 0x00845d3f, 0x007d5b40, 0x00705339, 0x005c4535, 0x004e4031, 0x00443a2f, 0x003a342d, 0x00312c2a, 0x00272423, 0x0022211f, 0x00252120,
- 0x001d2226, 0x001d1f22, 0x00212125, 0x002a292c, 0x00383133, 0x00453836, 0x0058443c, 0x006a4e43, 0x00795441, 0x00825a46, 0x00856049, 0x00765f45, 0x00675037, 0x005c4a2f, 0x00534128, 0x0053442e,
- 0x0097897b, 0x00e7dbd4, 0x00fdf9f5, 0x00fefefd, 0x00fbfeff, 0x00fcfdff, 0x00d5d2e1, 0x006c697d, 0x000e0d2f, 0x000b0a3a, 0x000c0e46, 0x00191c5e, 0x00222c73, 0x001a276d, 0x0017286d, 0x00172a6d,
- 0x00192c7c, 0x00132877, 0x00193180, 0x0026408f, 0x00425fad, 0x00516fbb, 0x005975be, 0x005a75bb, 0x00475fa1, 0x001f3471, 0x00030d45, 0x00060633, 0x00030833, 0x00050b3b, 0x000c1348, 0x000f1855,
- 0x0019286c, 0x00263680, 0x002a4090, 0x002a4195, 0x002f449e, 0x0036479a, 0x005360a7, 0x00a8afe3, 0x00fbf7ff, 0x00fefcfd, 0x00fcfcf8, 0x00fefef9, 0x00f9fcfc, 0x00f9f9fb, 0x00f9f5f8, 0x00faf3f7,
- 0x00f7f6f8, 0x00f7f4f7, 0x00f5eff5, 0x00f3ecf1, 0x00f3ecf0, 0x00f3ebf0, 0x00f3eaf1, 0x00f1e6ef, 0x00f0e5ed, 0x00f1e3eb, 0x00efe0e4, 0x00efdedb, 0x00ebdbd6, 0x00e6d6cf, 0x00decdc8, 0x00dbc8c5,
- 0x00ccbeb6, 0x00c9bab4, 0x00c1b0ab, 0x00bdaba6, 0x00b6a49f, 0x00b19f9e, 0x00a3959a, 0x009a919b, 0x00a09eaf, 0x00999cb8, 0x007d86a9, 0x0064719a, 0x004c5e8a, 0x00435784, 0x005d71a0, 0x008396c6,
- 0x00ba5e49, 0x00a03b27, 0x00a03219, 0x00a73015, 0x00a3280e, 0x009d2b15, 0x008b2c19, 0x006c2414, 0x006b4a45, 0x00968985, 0x00837f8d, 0x00494f76, 0x001f2452, 0x000a1243, 0x00060f47, 0x00081653,
- 0x00091d61, 0x00071c64, 0x00061d69, 0x0007216d, 0x000c2870, 0x00122b88, 0x00162b8f, 0x00203188, 0x002f336c, 0x00413f5d, 0x006f626a, 0x00a38e7b, 0x00c19b71, 0x00c59b61, 0x00cea35e, 0x00d9aa5d,
- 0x00d6a380, 0x00daa57f, 0x00dca47d, 0x00daa574, 0x00e0a671, 0x00e3a874, 0x00e1a573, 0x00e0a573, 0x00dba375, 0x00d59e73, 0x00cd996c, 0x00c69365, 0x00aa7d6a, 0x00966d73, 0x00af8d9e, 0x00dbc3d7,
- 0x00dad4dc, 0x00cdced4, 0x00cfd6df, 0x00c6cce3, 0x007f89b4, 0x004b5e97, 0x005c75b1, 0x008da6dc, 0x00b8c7f4, 0x00cddcfa, 0x00c4d2f8, 0x00a3b2e2, 0x009cb1e7, 0x00b6d1fb, 0x007f9ddd, 0x0039599d,
- 0x003260b5, 0x003860af, 0x004b6eb3, 0x006884c0, 0x00889ecf, 0x0098afde, 0x0099b6e8, 0x007193c9, 0x00255697, 0x00164b92, 0x00235aad, 0x002d63be, 0x002c58b6, 0x001a3f9d, 0x001a409b, 0x00244da5,
- 0x00235daf, 0x002869bb, 0x003174c9, 0x003276cd, 0x002d6dc7, 0x003467b4, 0x0027509a, 0x001b499c, 0x00204fa6, 0x00285098, 0x00748fc5, 0x00d6e1f5, 0x00fffcff, 0x00fffcff, 0x00fef6fc, 0x00fff7fe,
- 0x00fefcfc, 0x00fffdf7, 0x00c9c5b9, 0x008c8470, 0x0093856b, 0x00a08f72, 0x00a39276, 0x00a69579, 0x00b09b86, 0x00b39e8c, 0x00b9a392, 0x00bba195, 0x00bda883, 0x00b8ab93, 0x00b5afb1, 0x00a8b0d9,
- 0x0092b2f9, 0x007ba6e8, 0x006b99d5, 0x006492cb, 0x005f80d2, 0x00557fc2, 0x00517ebd, 0x004678bc, 0x004576c1, 0x004173c3, 0x004172c8, 0x004877cf, 0x004e77cb, 0x00476ec1, 0x004a6fc0, 0x004769b7,
- 0x00456fac, 0x003f65a9, 0x005070b3, 0x004f68a6, 0x00141a31, 0x0011040a, 0x00220e01, 0x002d1701, 0x00271912, 0x001f1b17, 0x00231f19, 0x0023140e, 0x00241006, 0x00291104, 0x00482712, 0x006e4525,
- 0x00a5744d, 0x00be8c65, 0x00c49264, 0x00c39363, 0x00c18f5c, 0x00b88a56, 0x00bc905c, 0x00b88c59, 0x00b68960, 0x009a704c, 0x006a4529, 0x00775845, 0x00776761, 0x007d7879, 0x00e1e2e9, 0x00dee7f2,
- 0x00ebeaf1, 0x00eae9ee, 0x00e6e6e9, 0x00dfe1e0, 0x00dfe0de, 0x00e3e3e0, 0x00e7e8e5, 0x00e8e6e4, 0x00e5e5e3, 0x00e3e3e2, 0x00e5e5e6, 0x00dfdee1, 0x00d7d6db, 0x00dbdae0, 0x00e5e5eb, 0x00e8e7ed,
- 0x00e6e6eb, 0x00e6e6ec, 0x00ebe9ee, 0x00ececf0, 0x00f1f0f7, 0x00f5edf3, 0x00faf0f3, 0x00efefee, 0x00eef2ea, 0x00e0e2dd, 0x00cbc1c4, 0x00d4bac4, 0x00ae8ba0, 0x008e738a, 0x00c3adc6, 0x00e7dcf4,
- 0x00e5e5eb, 0x00e1e4e9, 0x00e9edf3, 0x00e8eef5, 0x00e8f2fa, 0x00e8f1f8, 0x00ebeff6, 0x00ecf0f4, 0x00eef0f2, 0x00f1eef2, 0x00f0edf6, 0x00eeedff, 0x00f4ebfe, 0x00f5eaf8, 0x00f2e6f1, 0x00f0e4ef,
- 0x00f1edfd, 0x00edeafd, 0x00e7e4fc, 0x00eae7fa, 0x00f0e8f8, 0x00f1edf8, 0x00eeecf5, 0x00eaeaee, 0x00949494, 0x003d3734, 0x002f251e, 0x0038281d, 0x0043271a, 0x004c2d1c, 0x00502a1a, 0x00693f2f,
- 0x00b4b1b5, 0x00f6f3f7, 0x00fefdfe, 0x00fdfcfd, 0x00fffcfe, 0x00fdfcfd, 0x00969191, 0x001e1b1b, 0x002a2323, 0x002b2523, 0x003a322f, 0x00413830, 0x0048423a, 0x004c483e, 0x0047443b, 0x00414037,
- 0x003f3b34, 0x0037392f, 0x002b2f26, 0x00272c23, 0x00252c23, 0x002f261d, 0x00493329, 0x006d523e, 0x008c6a4a, 0x007c5b3e, 0x00644730, 0x00453525, 0x002c2a27, 0x002c2f2d, 0x002a302f, 0x002c312f,
- 0x002f2a26, 0x00323027, 0x0034322b, 0x0033322b, 0x0036342b, 0x003c352b, 0x0042352a, 0x00463525, 0x004d3821, 0x00573e25, 0x00644827, 0x00724e23, 0x0081592d, 0x00906533, 0x009f713a, 0x00a4743a,
- 0x00a3723f, 0x009a6e3b, 0x008e683d, 0x0082623b, 0x00725b38, 0x00655d53, 0x0065666d, 0x006b6f78, 0x006e7d90, 0x006b7f99, 0x006a86a6, 0x00678cb0, 0x00618fb9, 0x005d91be, 0x005d94c1, 0x005c96c4,
- 0x006393b5, 0x006191b5, 0x006494b8, 0x006494b8, 0x006696bb, 0x006596bb, 0x006697bd, 0x006697c0, 0x006a9ac1, 0x006a9cc1, 0x006c9ec5, 0x00709bc1, 0x006d97ba, 0x007194b6, 0x00728fb2, 0x007285a5,
- 0x008687a4, 0x008c8a9e, 0x008c8494, 0x008c8289, 0x007b6969, 0x00474358, 0x0022253f, 0x0014162b, 0x001a192c, 0x00131b31, 0x000a1936, 0x00081f40, 0x000b1f3b, 0x000c1626, 0x0017131a, 0x00281814,
- 0x00631a1a, 0x009b6664, 0x00ffe7e0, 0x00fefdf8, 0x00faffff, 0x00fbfefe, 0x00fcfcfd, 0x00d9d5d3, 0x00504b43, 0x001a190b, 0x00262713, 0x002e2c15, 0x0035331c, 0x0036341c, 0x0034341d, 0x0033361f,
- 0x0035331f, 0x0034301b, 0x00352f1d, 0x0034321e, 0x00363520, 0x0035321f, 0x00373320, 0x0037351f, 0x0038351e, 0x0036341c, 0x0031321d, 0x0030311d, 0x002e2c1d, 0x001f1e14, 0x00070900, 0x00030600,
- 0x0005060a, 0x000a0907, 0x000d0a04, 0x00080700, 0x00020201, 0x00010005, 0x00020407, 0x00030102, 0x00290e06, 0x00310f03, 0x00360a02, 0x00532a1a, 0x00b17a5e, 0x00e3a17c, 0x00f8ae80, 0x00ea9d67,
- 0x00e1905b, 0x00d69466, 0x0091552e, 0x003c1306, 0x002f1202, 0x00733917, 0x00b46a3b, 0x00c27a4c, 0x00c7814d, 0x00d38e5a, 0x00d8935f, 0x00e5a26e, 0x00eba877, 0x00eba877, 0x00e7a476, 0x00dd996f,
- 0x00e29c66, 0x00efa46f, 0x00fab484, 0x00fcbe96, 0x00e7b592, 0x00a48464, 0x0047391c, 0x002c2c0f, 0x002f3020, 0x00302e22, 0x002f2d20, 0x00323220, 0x0031311f, 0x002f301c, 0x0030331c, 0x0030331d,
- 0x00353722, 0x00353620, 0x00353520, 0x00343421, 0x00343421, 0x0034341f, 0x0034331f, 0x00343220, 0x0031341f, 0x002f311d, 0x002e2f1b, 0x002d2a19, 0x0030281c, 0x00362a21, 0x003f3027, 0x0043332c,
- 0x00452f24, 0x00645249, 0x00d5c7c2, 0x00faf6f4, 0x00fdfcfd, 0x00fcfdff, 0x00fcfeff, 0x00fcfafd, 0x00e6dfe8, 0x00dacfd7, 0x00dfd3de, 0x00dbd2df, 0x00dcd5e0, 0x00e3dde7, 0x00e8e1ea, 0x00e7e2e7,
- 0x00e4e2e7, 0x00eae8ed, 0x00ecedf0, 0x00eeeff1, 0x00f1f0f2, 0x00fbf7fa, 0x00ede8eb, 0x00c7c3c6, 0x00b0a9af, 0x00b4adb3, 0x00b2abb1, 0x00aca4ac, 0x00a99ba7, 0x00aa9ba8, 0x00a395a2, 0x00988a98,
- 0x009d9198, 0x00a397a0, 0x009b909b, 0x00928995, 0x009c93a2, 0x00a79dac, 0x00a89ca8, 0x00a99ba5, 0x00ae9da5, 0x00ac9ca1, 0x00a69bb0, 0x00a2a2d2, 0x00b5b1d1, 0x00c3bacb, 0x00d5c0c7, 0x00dec4bb,
- 0x00e7c6b2, 0x00eacab2, 0x00f1c7af, 0x00efc2b3, 0x00f6c7b7, 0x00f4d0bb, 0x00f0d5ba, 0x00f0d9c6, 0x00f2ddd3, 0x00f3e3d7, 0x00faeae0, 0x00feede1, 0x00f2ddd7, 0x00f1dadf, 0x00d8c0d4, 0x00907192,
- 0x007e8cca, 0x00acb6f0, 0x00909bdd, 0x008995cf, 0x00839aaa, 0x008096a6, 0x007f8baa, 0x0068649a, 0x00caa4d6, 0x00e7b7c3, 0x00df8b7b, 0x00de5d31, 0x00b36656, 0x009d7680, 0x00a194aa, 0x00656b8a,
- 0x00160b26, 0x00170817, 0x00665864, 0x009993a1, 0x009bb0be, 0x00a5a3b1, 0x00aea1ae, 0x00a9a1ad, 0x00aba3ad, 0x00a9a2a9, 0x00a9a3aa, 0x00b2aeb4, 0x00dedbe0, 0x00fbf9fc, 0x00fefcff, 0x00fefdff,
- 0x00fdfcf5, 0x00fffcf2, 0x00d2b5aa, 0x00a17565, 0x00a37458, 0x00aa7a59, 0x00ab7c56, 0x00ac7e55, 0x00b07b59, 0x00ad7152, 0x00a2654e, 0x00915d4a, 0x00865845, 0x007c503b, 0x00724a35, 0x0069432d,
- 0x00613827, 0x005e3924, 0x0063442e, 0x006d4d38, 0x006c5038, 0x00674e1f, 0x006d5519, 0x00715010, 0x00676448, 0x004b6a7c, 0x003c689f, 0x002a54a2, 0x0039285e, 0x00420d25, 0x004c0309, 0x00510101,
- 0x00470108, 0x003d0000, 0x00400507, 0x00420809, 0x00310403, 0x00280000, 0x002b0000, 0x00250002, 0x002c0303, 0x003e1811, 0x00573c3b, 0x00515053, 0x00333634, 0x001a2122, 0x0030343c, 0x0047505a,
- 0x00484f5f, 0x00373f54, 0x00171f36, 0x001c233d, 0x007882a0, 0x008191a8, 0x00304160, 0x00424f85, 0x00afb7ec, 0x0098a3c7, 0x00a3a9cd, 0x00b3b7e3, 0x008187dd, 0x008f9dda, 0x00bfd3ee, 0x00d4f3e0,
- 0x00e7ebfd, 0x00cee1fd, 0x00a8c9f7, 0x006493d9, 0x003566b7, 0x003d6bba, 0x004d76c3, 0x005980cc, 0x003f6dbd, 0x002156a8, 0x002457a3, 0x002e5c95, 0x009db5d6, 0x00edf5ff, 0x00fafcfc, 0x00fdfcf7,
- 0x00fefefc, 0x00fcfffe, 0x00fafdfb, 0x00fdf8f5, 0x00faf3e9, 0x00f4efe6, 0x00eeebe0, 0x00e9e7da, 0x00e7dfcb, 0x00e6dcc1, 0x00e1d7b8, 0x00ddd1ae, 0x00d6c3a2, 0x00cbb797, 0x00bba886, 0x00af9b7b,
- 0x00c0b78e, 0x00d9d0a8, 0x00dbd2a7, 0x00e4dbad, 0x00ddd3a5, 0x00ded5a6, 0x00e6deac, 0x00cfc794, 0x00bdb383, 0x00c7c28f, 0x00ccc28f, 0x00ccbb89, 0x00c6bd92, 0x00a6a079, 0x0078734d, 0x008d8960,
- 0x00d2c096, 0x00e2cea3, 0x009a8663, 0x00372711, 0x000f0502, 0x001b1505, 0x002a2008, 0x00271b01, 0x003b2913, 0x00332010, 0x001c0c09, 0x000f0811, 0x0017264a, 0x0036568c, 0x004c7bbd, 0x004985d1,
- 0x004c86d7, 0x004b86d7, 0x004985d9, 0x004682d9, 0x00447dd7, 0x00437bd4, 0x004179d0, 0x003f74ca, 0x003e74c5, 0x004074c5, 0x003f76c7, 0x003c75c7, 0x003b73c6, 0x003f74c8, 0x004074c7, 0x003d70c2,
- 0x003c6ebd, 0x003a6bbb, 0x002e5ead, 0x001f4e9b, 0x001e4996, 0x00244b9a, 0x00274e9e, 0x002e57a5, 0x00365ea7, 0x00365da3, 0x00355d9e, 0x00365c99, 0x001e3c78, 0x000b245f, 0x000a2159, 0x000c1f57,
- 0x00071f5e, 0x00031b58, 0x000b2161, 0x00152b6e, 0x001e377b, 0x001d3a7e, 0x00113177, 0x000f3078, 0x0023448f, 0x002f5099, 0x00284d98, 0x00103a82, 0x00184291, 0x003260ad, 0x003166b6, 0x002660ad,
- 0x004376ba, 0x006686b6, 0x005b637c, 0x0066534e, 0x00815029, 0x00805b3e, 0x00765840, 0x00684f37, 0x00554234, 0x00483b2f, 0x003e362c, 0x0036302a, 0x002c2827, 0x00252122, 0x00201f1d, 0x00201f1e,
- 0x001c1f29, 0x00171822, 0x001a1c24, 0x0026262a, 0x00372e31, 0x00463536, 0x0058413c, 0x00674a41, 0x007a4f40, 0x00825642, 0x00855f49, 0x00725b43, 0x00654e38, 0x00634f39, 0x007a6753, 0x009b8c7a,
- 0x00dad2c7, 0x00f8f3ec, 0x00fcfaf6, 0x00fefdfd, 0x00f7fafa, 0x00fdfdfd, 0x00cccad7, 0x005b596d, 0x000b0c32, 0x000f1246, 0x000d1352, 0x0017206c, 0x001e2d83, 0x00172980, 0x00142880, 0x001a3187,
- 0x001a2d8a, 0x00152b85, 0x001f3891, 0x0025419a, 0x003655af, 0x004767c0, 0x005775cb, 0x005b79ca, 0x006481cf, 0x004864ad, 0x00102164, 0x00070d43, 0x00030a40, 0x00050d47, 0x00131b59, 0x001a2469,
- 0x00213182, 0x00273d94, 0x002e48a8, 0x002848ae, 0x002d4fba, 0x003751af, 0x006471c5, 0x00afbaed, 0x00fbf9fd, 0x00fdfcf7, 0x00fbfbef, 0x00fcfdf0, 0x00fcfefa, 0x00fcfcfc, 0x00fefcfd, 0x00fdfafb,
- 0x00fefeff, 0x00fefdff, 0x00fefcff, 0x00fefdff, 0x00fffdff, 0x00fefcff, 0x00fefbfe, 0x00fefafd, 0x00fdfbff, 0x00fefcff, 0x00fdfcfe, 0x00fefdfa, 0x00fefefb, 0x00fffdfa, 0x00fdfaf8, 0x00fefaf8,
- 0x00fffdfb, 0x00fffbf7, 0x00fdf7f5, 0x00f9f3f0, 0x00f9f3ef, 0x00f7f2f2, 0x00f7f5f8, 0x00f2f2f3, 0x00f2f2fd, 0x00edeef9, 0x00dee2ee, 0x00d8dfec, 0x00d3d8e7, 0x00d0d5e5, 0x00d1d6e8, 0x00d5daeb,
- 0x00dfd0bd, 0x00cfbcaa, 0x00d4b7a9, 0x00d3afa4, 0x00d3a29f, 0x00cd9c9f, 0x00bb8d98, 0x00b58d9d, 0x00a88da3, 0x00c5afc6, 0x00dad1e9, 0x00b3b5de, 0x00868cba, 0x00646b9f, 0x00545b95, 0x004f5d9a,
- 0x004c61a6, 0x004b60a9, 0x00465eaa, 0x003e58a2, 0x00324d98, 0x002d4a8d, 0x00233d73, 0x00253861, 0x003b3b41, 0x005a4d3e, 0x0093795d, 0x00b88f69, 0x00c7996f, 0x00c89271, 0x00cd9681, 0x00cf9987,
- 0x00cf9f7b, 0x00d1a07e, 0x00d1a07c, 0x00cd9e77, 0x00cf9c72, 0x00d1a175, 0x00d1a27a, 0x00d2a47d, 0x00d4a684, 0x00d2a486, 0x00cfa173, 0x00cb9e4a, 0x00bb8d4e, 0x00b0825a, 0x00aa7e65, 0x00b89283,
- 0x00b59b9b, 0x00ab9caa, 0x00c9c5e4, 0x009b9cd2, 0x004951a0, 0x005c6ca2, 0x00a3b5dc, 0x00cbddf9, 0x00cedbfc, 0x00bac6e8, 0x007c87ac, 0x00626c96, 0x008d9bca, 0x00bcd1f9, 0x007a93c5, 0x003e5890,
- 0x004a6dae, 0x006d8ac4, 0x009cb5e0, 0x00bac9eb, 0x00ccd1ef, 0x00c6cced, 0x00c6d5fc, 0x009bb2e3, 0x003660a8, 0x001a4e9f, 0x00265ab7, 0x002e63c2, 0x00234fb3, 0x00163aa1, 0x001e43a8, 0x001e4fb0,
- 0x00205ebe, 0x00286ecb, 0x003179d6, 0x003279d8, 0x002a6bce, 0x00275bb3, 0x001d479d, 0x001b4aa8, 0x00204fb1, 0x00264e9c, 0x007692cb, 0x00d6e3f5, 0x00fefcff, 0x00fefcfd, 0x00fef9fd, 0x00fef8fe,
- 0x00fcfefb, 0x00fefcf6, 0x00c6c3b8, 0x0087806e, 0x008a7c64, 0x00938468, 0x00988b6d, 0x009e8f71, 0x00a7927e, 0x00aa9584, 0x00ad9a89, 0x00ae9a8a, 0x00b4a47e, 0x00ada38b, 0x00b0abb0, 0x00a9b0de,
- 0x008eaef3, 0x0077a0e0, 0x006396cb, 0x005d8bc1, 0x005b7ecc, 0x00557cc2, 0x005079b7, 0x004b75b6, 0x004772bd, 0x00416ebf, 0x003d6dbe, 0x003b6cbd, 0x00426ec2, 0x003d69c3, 0x003e66c3, 0x004166c1,
- 0x003968b3, 0x00335faa, 0x004467ae, 0x005d77b6, 0x00383b60, 0x00150a16, 0x00230e03, 0x00321800, 0x00321a05, 0x002d1b14, 0x002e2014, 0x00372609, 0x004a3014, 0x005c401d, 0x00805e37, 0x009e7449,
- 0x00b48755, 0x00bc8d5b, 0x00c1915a, 0x00c2935c, 0x00bc8a52, 0x00b58950, 0x00b28952, 0x00b28650, 0x00b1815b, 0x009a6e4e, 0x00785239, 0x00a98b7a, 0x00b8a9a4, 0x00a8a3a4, 0x00dddee5, 0x00dbe3ee,
- 0x00eceaf3, 0x00edeaf2, 0x00e5e4e9, 0x00e1e2e1, 0x00e1e1dc, 0x00e1e2db, 0x00dfe2dc, 0x00e6e8e3, 0x00e3e1e5, 0x00e1dfe4, 0x00e6e5e9, 0x00e4e3e7, 0x00dad9df, 0x00d6d5db, 0x00dcdbe0, 0x00e1e1e7,
- 0x00e5e4eb, 0x00e2e3ea, 0x00e7e4eb, 0x00efeef1, 0x00f2f0f7, 0x00f1f2f1, 0x00f0f2ec, 0x00e9f3eb, 0x00ebf1f0, 0x00eaefee, 0x00eae6ea, 0x00e0dbdf, 0x00bfb1bf, 0x00c5bbcb, 0x00f3e7f8, 0x00f0eafd,
- 0x00f3ebeb, 0x00f2ecef, 0x00efedf3, 0x00ecf1f8, 0x00eaf7fe, 0x00e1f1f8, 0x00e4f4fa, 0x00e8f6fc, 0x00ebecf9, 0x00edeefd, 0x00f0f2f7, 0x00eef7f3, 0x00faf1ec, 0x00faede6, 0x00f3e3db, 0x00efe5da,
- 0x00e3eeec, 0x00e5f4f5, 0x00dff1f5, 0x00dff0f4, 0x00e0eaec, 0x00ecf2f5, 0x00e8ebf0, 0x00f1f2fa, 0x00e0dfe5, 0x008f8989, 0x00352d28, 0x002e2219, 0x0040291d, 0x004a3021, 0x004d2c1e, 0x005d3729,
- 0x00a4a6a8, 0x00f3f2f5, 0x00fefcfd, 0x00fffdfd, 0x00faf8f8, 0x00fcfdfb, 0x009b9390, 0x002b2421, 0x00211618, 0x002c2120, 0x003b322d, 0x004a4037, 0x00534d42, 0x004d473c, 0x0039352a, 0x00322d23,
- 0x0026241d, 0x00201f18, 0x001e2219, 0x00252b22, 0x002a2f2a, 0x00302516, 0x004e3922, 0x0078583d, 0x008a6042, 0x006e4a2e, 0x004b3116, 0x00342812, 0x0027241c, 0x002d2a22, 0x00312e28, 0x002d2a22,
- 0x002c2a28, 0x002c2c27, 0x00292923, 0x002a2a23, 0x00323028, 0x00383226, 0x003c3021, 0x0042321f, 0x00513922, 0x0061422b, 0x006c4f2e, 0x0075582b, 0x00886537, 0x00986f3e, 0x00a1753f, 0x00a07337,
- 0x009f7239, 0x009c6c38, 0x008f6634, 0x00865d2d, 0x00745123, 0x00664b2d, 0x00614c35, 0x00684f3e, 0x006d5b58, 0x0074676c, 0x00757079, 0x00707783, 0x00708094, 0x006e859d, 0x006c88a1, 0x006d8aa7,
- 0x006991ae, 0x00668dac, 0x006a91af, 0x006a92b0, 0x006c94b4, 0x006a94b3, 0x006a95b3, 0x006894b4, 0x00688fb5, 0x00688cb5, 0x006e89a7, 0x00788086, 0x00767880, 0x00797479, 0x007b7176, 0x00846f72,
- 0x008b6d66, 0x008e6a5e, 0x00986959, 0x00a4725a, 0x00a06e4c, 0x0061545f, 0x00232746, 0x00141534, 0x001b1738, 0x00131537, 0x000c1736, 0x00061a37, 0x000c1e3d, 0x000f1a30, 0x00131828, 0x001b161f,
- 0x00411011, 0x007f5a5a, 0x00fce8e4, 0x00fdfbf5, 0x00f9fbfd, 0x00f5fbfa, 0x00fafcfa, 0x00d5d4cf, 0x00524c49, 0x001f1a13, 0x0028281a, 0x002f2f17, 0x0039371f, 0x003a3720, 0x00373520, 0x00393620,
- 0x0036361f, 0x00393621, 0x00393520, 0x00383720, 0x003a3a26, 0x00393823, 0x00393822, 0x00383722, 0x003d3926, 0x00393722, 0x002d2f1a, 0x002c2f19, 0x002e301f, 0x0024271d, 0x00080d04, 0x00010500,
- 0x00040407, 0x00070607, 0x00090804, 0x00070601, 0x00020302, 0x00020405, 0x00000300, 0x00040000, 0x003f1e18, 0x00552718, 0x003d0f03, 0x00351202, 0x00622d12, 0x008d4c29, 0x00bf7542, 0x00dd8a51,
- 0x00e39154, 0x00df945f, 0x00a56436, 0x00592607, 0x00562a0c, 0x00905024, 0x00b66e3a, 0x00bf7440, 0x00c67a48, 0x00cc814d, 0x00c87f47, 0x00d08a52, 0x00da9664, 0x00db9767, 0x00e39f70, 0x00e09a6f,
- 0x00d5915a, 0x00e9a070, 0x00f8b187, 0x00febd98, 0x00f5bfa0, 0x00ac8e6e, 0x004a3f1f, 0x002b280d, 0x00333121, 0x00302c21, 0x002d2c1e, 0x002c2f18, 0x002e2f18, 0x002e311c, 0x002e341f, 0x002e321c,
- 0x00333121, 0x0032311e, 0x0031311d, 0x0031301d, 0x0030311d, 0x0030311c, 0x0030321b, 0x0030321b, 0x00333121, 0x00302f1e, 0x002d2b19, 0x002b2816, 0x0030291d, 0x00362b21, 0x003f3025, 0x00453329,
- 0x00452d24, 0x005a463c, 0x00bdaca6, 0x00faf5f1, 0x00fdfdfb, 0x00f9fdfc, 0x00f8fcfb, 0x00fcfdfa, 0x00ede6ee, 0x00ddd0d9, 0x00e0d4dd, 0x00dcd4e0, 0x00dfd8e1, 0x00e3dde7, 0x00e5e2e8, 0x00ebe8ea,
- 0x00eae7ed, 0x00ece9ee, 0x00ebecee, 0x00eef0ef, 0x00f5f6f5, 0x00faf6f7, 0x00f5f2f4, 0x00e7e5e7, 0x00d7ced4, 0x00c1b8c2, 0x00ada6ae, 0x00a9a2a8, 0x00a99da9, 0x00a598a4, 0x00a195a0, 0x00a497a3,
- 0x009d8894, 0x00a28e9c, 0x00a3909e, 0x009b8997, 0x00998898, 0x009b8998, 0x00aa96a1, 0x00b19ca5, 0x00bb9fab, 0x00bd9da5, 0x00b68d94, 0x00bb7d88, 0x00c07a76, 0x00ca7c66, 0x00c1704b, 0x00c97441,
- 0x00d47233, 0x00df773b, 0x00ee7f46, 0x00ec7a45, 0x00f78556, 0x00ef945a, 0x00eb9759, 0x00f0975d, 0x00f69862, 0x00f99e6b, 0x00f1a674, 0x00f6bf92, 0x00f3d4c9, 0x00e4d6ea, 0x009097c5, 0x004e61a8,
- 0x00acbaa7, 0x00e8eeef, 0x00e5ebfd, 0x00d4ddf7, 0x0098a7ae, 0x007f9393, 0x00889198, 0x00b8b0c8, 0x00ecc1c2, 0x00c38c65, 0x00b2643a, 0x00c15b51, 0x00966b81, 0x007d78a8, 0x00859bd4, 0x006d8ccc,
- 0x00262856, 0x000f021e, 0x005a4459, 0x00918593, 0x009eabbe, 0x00a4a2ae, 0x00a99fa9, 0x00a8a0a7, 0x00a69ea8, 0x00a69fa8, 0x00a5a0a8, 0x00b4b0b6, 0x00e6e3e7, 0x00fefbfd, 0x00fdfafc, 0x00fdfcfc,
- 0x00fbfef4, 0x00fff4e9, 0x00c2a498, 0x00986f61, 0x00a4735a, 0x00a97b59, 0x00a97f59, 0x00ac825b, 0x00b58262, 0x00b37a5e, 0x00a66e53, 0x00976749, 0x00905e42, 0x008c593e, 0x00825538, 0x007e5034,
- 0x00774d2e, 0x00704624, 0x006a4323, 0x006c4628, 0x00765334, 0x00725a21, 0x00755f1a, 0x007c5c14, 0x00786a47, 0x00626d77, 0x004f608b, 0x00404e8d, 0x00612952, 0x00741322, 0x0082090a, 0x00870403,
- 0x00770d06, 0x00781107, 0x008d3325, 0x008e3b30, 0x0056130c, 0x003c0404, 0x00340601, 0x00270201, 0x0041171f, 0x005d3841, 0x00503b45, 0x00252b36, 0x000e0f1a, 0x00212936, 0x00434a57, 0x0043495a,
- 0x00252b41, 0x00101730, 0x0001071f, 0x00323a56, 0x008087a3, 0x006f7896, 0x00363b64, 0x004f5091, 0x008f8ed0, 0x006e75a2, 0x00a5b5d0, 0x00cae2f3, 0x00bfdbfa, 0x0097b9f7, 0x00668dde, 0x0081abe8,
- 0x00bad3f7, 0x0098b5ea, 0x005076b5, 0x00305fa7, 0x004874c1, 0x00658ece, 0x0092b7e9, 0x00b7d8fa, 0x00889dd5, 0x004d64a1, 0x004e689a, 0x006688a9, 0x00c5d8eb, 0x00f4fdff, 0x00f9fdfa, 0x00fcfaf7,
- 0x00fbfdfd, 0x00fcfffe, 0x00fdfcfb, 0x00fefdfa, 0x00fffdf8, 0x00f8fef8, 0x00f6fdf8, 0x00fbfdfb, 0x00fffbfb, 0x00fefaf2, 0x00f9faeb, 0x00f8fae8, 0x00faf7e6, 0x00faf5e5, 0x00f5f2e2, 0x00f3eee0,
- 0x00f4edd2, 0x00f6efd7, 0x00f3ecd4, 0x00f0eacf, 0x00ece6cd, 0x00ebe5cb, 0x00f2edd0, 0x00d7d2b3, 0x00cec3a7, 0x00dbd1b6, 0x00d4caa8, 0x00d1c19b, 0x00cac0a1, 0x00aaa389, 0x00787658, 0x009f9b7b,
- 0x00cdc19c, 0x00decaa7, 0x00937f62, 0x00352511, 0x00080002, 0x000a0800, 0x001e1804, 0x003a2f17, 0x00614b2e, 0x00573c26, 0x002c1909, 0x00130a03, 0x00091129, 0x0028416c, 0x004f79af, 0x004f7fc5,
- 0x004585d8, 0x004886dc, 0x004787db, 0x004282d9, 0x003e7ad9, 0x003b77d4, 0x003b78d1, 0x003a75d1, 0x003974cc, 0x003b74cc, 0x003b74c9, 0x003a74c4, 0x003d73c5, 0x004276c9, 0x004276c8, 0x003f70c3,
- 0x003969bc, 0x003a68ba, 0x002b58a9, 0x001e4b9a, 0x00234c9a, 0x00244b99, 0x002b53a2, 0x003059a9, 0x003359a6, 0x003258a1, 0x00355ea1, 0x00335997, 0x0012306d, 0x00051d59, 0x00021952, 0x00051850,
- 0x00061c60, 0x000c2165, 0x00192f72, 0x001f387b, 0x00183479, 0x000e2e74, 0x000e3077, 0x001d3f8a, 0x003552a3, 0x00314f9e, 0x001b3f8a, 0x0019478f, 0x003763b0, 0x003c6ebe, 0x003a72c2, 0x002c67b9,
- 0x00396fb8, 0x005c7eb2, 0x005a6782, 0x005f5151, 0x00794d2b, 0x00715239, 0x00684f3a, 0x005e4736, 0x00503c35, 0x00433531, 0x00362e29, 0x002a2823, 0x00232122, 0x001e1c1c, 0x00191a16, 0x001a1918,
- 0x00191d27, 0x00161720, 0x00191a21, 0x00222228, 0x00342d31, 0x00433634, 0x00523f38, 0x0061463e, 0x00784f43, 0x007e5444, 0x007c5743, 0x0069533b, 0x00644f38, 0x00867361, 0x00c6b4a8, 0x00eae1d4,
- 0x00f9f1e8, 0x00fcfaf4, 0x00fffefa, 0x00fefbfc, 0x00fafcfc, 0x00fbfdf9, 0x00bfc3ca, 0x00424655, 0x000f1037, 0x00111247, 0x000b1350, 0x00101c63, 0x0018297b, 0x0014297a, 0x0010287e, 0x00172f85,
- 0x0016287c, 0x0015297c, 0x00203789, 0x00284394, 0x002d4c9b, 0x003858a4, 0x004d6cb6, 0x005270b8, 0x006d84c8, 0x00657cbc, 0x00263872, 0x00030c3a, 0x00000a3b, 0x00061047, 0x000a1751, 0x00152162,
- 0x001b2d79, 0x0022398f, 0x002946a4, 0x002b4bb1, 0x002e55c1, 0x003155af, 0x005e75c3, 0x00b1bfee, 0x00fdfcff, 0x00fdfcf6, 0x00fafdea, 0x00f9fde6, 0x00fafef0, 0x00fbfef5, 0x00fcfdf7, 0x00fdf9f7,
- 0x00fafdfa, 0x00fdfffb, 0x00fdfdfa, 0x00fefdfb, 0x00fefefd, 0x00fbfcfb, 0x00fafcf9, 0x00fbfdf8, 0x00fefffe, 0x00fffefe, 0x00fbfcfc, 0x00fcfcf9, 0x00fdfcfd, 0x00fffdfe, 0x00fdfefe, 0x00fdfffd,
- 0x00fcfcfb, 0x00fffefc, 0x00fffffe, 0x00fdfdfe, 0x00fdfdfe, 0x00fafcf8, 0x00f9fcf7, 0x00f9fbf8, 0x00fafefe, 0x00fcfdff, 0x00f8fcfb, 0x00f8fefb, 0x00fafbfa, 0x00fcfbfb, 0x00f9fbf7, 0x00f7f9f9,
- 0x00eafaf6, 0x00ebf7f7, 0x00eef8f3, 0x00f2f6f3, 0x00f9f5f2, 0x00fbf2f2, 0x00f4efed, 0x00f8eef2, 0x00f7eaf3, 0x00f9ecf9, 0x00fdf7f8, 0x00f5f8ed, 0x00ecf0f0, 0x00e9eaee, 0x00e1e8ef, 0x00dfe8f3,
- 0x00d6e6f8, 0x00d5e6f7, 0x00cfe2f5, 0x00c2d8ea, 0x00b6cee1, 0x00a6c3be, 0x009bb7a6, 0x009aada2, 0x00aba3a3, 0x00bfa8ab, 0x00d1b2b3, 0x00dab6b4, 0x00ddb8b3, 0x00dbb9ad, 0x00d6b7a9, 0x00d4b8a8,
- 0x00dcb9a0, 0x00dbb9a1, 0x00d6b69a, 0x00d0b396, 0x00ccaf94, 0x00cbb394, 0x00ceb599, 0x00d0b49d, 0x00d3b7a5, 0x00d5b7a6, 0x00d1b494, 0x00cdb069, 0x00c2a167, 0x00be9971, 0x00ae8a69, 0x009e7d67,
- 0x0084706c, 0x00a092a3, 0x00aaabcb, 0x00555f93, 0x004352a1, 0x0093a7ce, 0x00c8dbf0, 0x00d8eaff, 0x00b1bedc, 0x008490af, 0x006d7c99, 0x008695b6, 0x00b6c7f0, 0x0097a9d3, 0x004c6290, 0x00546c9b,
- 0x008ba7d1, 0x00bdd0f4, 0x00dbe7fd, 0x00dbddf1, 0x00d8d3ec, 0x00d2d1ec, 0x00cacff4, 0x008f99d1, 0x002f4ca1, 0x001f44a6, 0x002652b7, 0x00295dbc, 0x001c47ac, 0x000e349e, 0x001d47b1, 0x002053be,
- 0x00286ad0, 0x002770d4, 0x002d76da, 0x003075dc, 0x002864ce, 0x001d4faf, 0x001542a3, 0x001c4db8, 0x001e4bb7, 0x00274ea5, 0x007b9cd8, 0x00d2e9f3, 0x00f9fdfe, 0x00f9fef5, 0x00fafef6, 0x00f9fcfa,
- 0x00f7fcf5, 0x00fafcf2, 0x00c7c4b9, 0x00827b6b, 0x00786c55, 0x0086775c, 0x00928067, 0x0098866c, 0x00988b71, 0x009e8e75, 0x00a69382, 0x00aa9584, 0x00ae9f78, 0x00a69c84, 0x00adaab0, 0x00a7acdc,
- 0x007ea6e8, 0x006b9dd5, 0x005f92c6, 0x005783b9, 0x005677bf, 0x005475b9, 0x005374b7, 0x005172b7, 0x004471b1, 0x004370b3, 0x00446fbb, 0x003f69ba, 0x003d66bd, 0x003c64bf, 0x003c62c4, 0x003d62c6,
- 0x002d65ab, 0x002c61a7, 0x004269b0, 0x00617dbe, 0x004f5182, 0x002a1b30, 0x002e1010, 0x003f1804, 0x00392000, 0x00412a12, 0x00523723, 0x00654923, 0x00845f37, 0x00967347, 0x00b1875e, 0x00bf9166,
- 0x00b59050, 0x00bd9457, 0x00c5945d, 0x00c29158, 0x00bb894d, 0x00b78950, 0x00b48452, 0x00af7e4e, 0x00a27a48, 0x008e693f, 0x00755031, 0x009b7b68, 0x00d0bfba, 0x00cfc7c9, 0x00dddbe4, 0x00dfe3f0,
- 0x00e7e9ec, 0x00e9eaed, 0x00e8e7ea, 0x00e2e2e4, 0x00e0e1de, 0x00dfe0dd, 0x00e3e2e0, 0x00e7e3e7, 0x00dde3e4, 0x00dbe0e5, 0x00e1dde9, 0x00e7e4eb, 0x00e0dfe4, 0x00d5d1d9, 0x00cecad2, 0x00dfdde4,
- 0x00dee2e2, 0x00dfe3e1, 0x00e6e5ea, 0x00ebeaf1, 0x00f1f0f6, 0x00edf2ef, 0x00eff5f1, 0x00edf4f1, 0x00e0f2e7, 0x00e2efe7, 0x00e8eeef, 0x00cfd3d6, 0x00adacb3, 0x00ccc9d8, 0x00f2ebff, 0x00efe9ff,
- 0x00f0e8e1, 0x00e8e1dc, 0x00f2eef2, 0x00eef4f9, 0x00e6f3fc, 0x00e3f1fb, 0x00e6f1fd, 0x00f0f0fc, 0x00f0f2f1, 0x00f2eef3, 0x00f8e8e6, 0x00f9e0c8, 0x00f2c5a8, 0x00eeb597, 0x00e4aa92, 0x00e7b5a0,
- 0x00e7ddc2, 0x00e5ead8, 0x00e7eee5, 0x00e8ede4, 0x00eae9e0, 0x00eaedee, 0x00f4f4fd, 0x00f1f1f7, 0x00ebf3ea, 0x00c9ccc4, 0x006a6762, 0x00352b25, 0x0038291e, 0x00422c21, 0x0044261f, 0x00593630,
- 0x0090948c, 0x00e8ecea, 0x00faf6fa, 0x00fdfafc, 0x00fdfcfa, 0x00fdfdfa, 0x00a59d9d, 0x002f2928, 0x000c0c03, 0x0024201a, 0x00413935, 0x0049433b, 0x00434035, 0x003a352d, 0x002e2622, 0x0028211b,
- 0x00171c0e, 0x0011190d, 0x001d2019, 0x00262b23, 0x00272b25, 0x0036271a, 0x005a3d2a, 0x0078553f, 0x0078572e, 0x005f431f, 0x00452a13, 0x00342313, 0x0028221a, 0x002c281e, 0x00372f28, 0x00372c21,
- 0x00242a1f, 0x0022271d, 0x0021231c, 0x0025251e, 0x002a2821, 0x002d261c, 0x0034271c, 0x003f2f22, 0x004e3d1f, 0x005f4a2e, 0x006e5636, 0x007b613b, 0x008e6f47, 0x0099744c, 0x009b7247, 0x009d7243,
- 0x00936c33, 0x008c6731, 0x008b6032, 0x00855d2f, 0x007c592e, 0x00745329, 0x006d4828, 0x00623f25, 0x00543b27, 0x00564232, 0x00614d48, 0x0068595c, 0x0066646a, 0x00666973, 0x006b6f7b, 0x006d7581,
- 0x005b7e8b, 0x00597d8c, 0x00648196, 0x00637f97, 0x00607d97, 0x00607a97, 0x005b7695, 0x00597395, 0x0051708d, 0x004b6b86, 0x004f607b, 0x00585b68, 0x005f5e6c, 0x0066626b, 0x006f606c, 0x00716066,
- 0x0069584e, 0x006f5746, 0x007a5847, 0x008b644e, 0x008d6345, 0x00574955, 0x00252248, 0x0019163a, 0x00131931, 0x000e1530, 0x00121b3a, 0x000f1a38, 0x000f1a34, 0x00101832, 0x0012162e, 0x00141529,
- 0x00210b06, 0x0062514c, 0x00f5e6e5, 0x00fffaf9, 0x00fcfefd, 0x00f8fbfb, 0x00fffdfe, 0x00d8d6d6, 0x0040463a, 0x0013160a, 0x00292519, 0x00312e1b, 0x00393523, 0x003b3625, 0x003b3627, 0x003c3626,
- 0x0032371d, 0x0033361e, 0x003a3925, 0x003b3928, 0x003d3b2b, 0x00393727, 0x003c3929, 0x003f3b2b, 0x00373b22, 0x0032371d, 0x00333522, 0x00303321, 0x002f3426, 0x00282c23, 0x00100f0d, 0x00030404,
- 0x00000300, 0x00000300, 0x00040504, 0x00080602, 0x00000303, 0x00010608, 0x0005050a, 0x00080002, 0x003c1f0c, 0x006c4123, 0x00703c23, 0x004e1f05, 0x00480e00, 0x006a2801, 0x00af6130, 0x00db8753,
- 0x00d88c4c, 0x00d58b4c, 0x00b46d3b, 0x00814514, 0x00804a1e, 0x00ab6533, 0x00c57544, 0x00c57644, 0x00bd7838, 0x00bd7839, 0x00be783d, 0x00c27e45, 0x00c7844d, 0x00ce8b5a, 0x00dc976c, 0x00d79267,
- 0x00c5894f, 0x00e09e6a, 0x00fdb996, 0x00febb9b, 0x00f3c0a2, 0x00c9ab8c, 0x0065543d, 0x002c2813, 0x00242913, 0x00282c1a, 0x002e2f1f, 0x002e2f1b, 0x002e2e1a, 0x0030301c, 0x0032311e, 0x00333220,
- 0x002d3219, 0x002e3118, 0x0031321c, 0x0031321d, 0x0030311a, 0x0030301a, 0x0031301e, 0x0030311e, 0x002a2f15, 0x00292e16, 0x002a2b18, 0x002b2819, 0x0031281b, 0x003a2b22, 0x0042302b, 0x00473330,
- 0x003e2d1a, 0x00463626, 0x00a3948c, 0x00f1efea, 0x00fefbfa, 0x00fcfcfe, 0x00fefcff, 0x00fefdff, 0x00ebeded, 0x00dad9da, 0x00ddd4de, 0x00ddd5df, 0x00e0d7e3, 0x00e2dbe4, 0x00eae0eb, 0x00eee7ed,
- 0x00e5ebea, 0x00e6e9e8, 0x00edeeef, 0x00eff0f2, 0x00f3f4f4, 0x00fbfbfa, 0x00faf6f8, 0x00f2edf0, 0x00d7d4d5, 0x00bebabd, 0x00aaa3aa, 0x00aba3ab, 0x00a79ea8, 0x00a398a4, 0x00a194a2, 0x00a496a6,
- 0x00a18d92, 0x009a8990, 0x00a38f9b, 0x00a894a2, 0x008c7886, 0x0078616f, 0x009e8693, 0x00bea0ae, 0x00b49b9a, 0x00a18282, 0x00945b5a, 0x009e352a, 0x00a53f27, 0x00b24a23, 0x00b84b1d, 0x00c4551f,
- 0x00c7601b, 0x00c96423, 0x00d86b34, 0x00cc6233, 0x00ce653e, 0x00d4754c, 0x00de7d52, 0x00e9824f, 0x00eb8134, 0x00eb822c, 0x00eb8734, 0x00eb944a, 0x00dfb19b, 0x00cdbfd2, 0x005c5f9c, 0x004155b6,
- 0x00c5d4af, 0x00ecf2e8, 0x00f1eefd, 0x00dedcfd, 0x00a3a8c5, 0x00878ea9, 0x00a7a4be, 0x00eadcf5, 0x00e6c6bb, 0x00aa7c4d, 0x00915333, 0x00864a5b, 0x00604978, 0x0053569b, 0x007b8ddf, 0x0091aaf8,
- 0x004e648d, 0x000f1c2d, 0x002f2b3c, 0x00786e7d, 0x00a19bb2, 0x00aca4b1, 0x00ae9fad, 0x00ac9ead, 0x00a49ea1, 0x00a39da1, 0x00a49ea4, 0x00bab4ba, 0x00f0ecf0, 0x00fefcfd, 0x00fffdfe, 0x00fcfbfa,
- 0x00f8fded, 0x00f3ebdb, 0x00af988c, 0x0090695c, 0x009a6e58, 0x00a2785c, 0x00a47f61, 0x00a88362, 0x00a27d59, 0x009f7554, 0x009f6c50, 0x00956649, 0x008b5e42, 0x00875b3f, 0x008b5b40, 0x00895a3e,
- 0x0074512a, 0x00714e26, 0x0075502d, 0x00775431, 0x00815d39, 0x007c6635, 0x0080692f, 0x008d6a28, 0x007d7342, 0x006a726d, 0x00555e7d, 0x004a4a81, 0x00742b4f, 0x008e232c, 0x00ab2520, 0x00bb281e,
- 0x00ab2b05, 0x00a22a08, 0x00d25f44, 0x00cc6d58, 0x007b2f29, 0x00521b19, 0x0032060b, 0x003b1827, 0x00463747, 0x00392b40, 0x00282037, 0x00151d2e, 0x0032364b, 0x0045485a, 0x003d3c52, 0x001e1a35,
- 0x0000061c, 0x0000031a, 0x000c102c, 0x003e4263, 0x0058617c, 0x003d4158, 0x0058557a, 0x00827db7, 0x006e72b3, 0x003f4c7e, 0x0095a6ce, 0x00d4f3ff, 0x00a8d1f3, 0x005e89cf, 0x00325ebd, 0x003564d2,
- 0x00456ea1, 0x0040689d, 0x003d639f, 0x005177b3, 0x0088abe2, 0x00bddafb, 0x00dcf0ff, 0x00e6f1ff, 0x00b7c5e0, 0x009faec6, 0x00b5c0de, 0x00c6dcf2, 0x00eaf5ff, 0x00f5fdff, 0x00fbfbff, 0x00fffbff,
- 0x00f5fbf2, 0x00f8fcf4, 0x00fefbfb, 0x00fffcfe, 0x00fcfcf9, 0x00f9fefc, 0x00f9feff, 0x00f9ffff, 0x00f3fef8, 0x00f4fdf8, 0x00f9fffb, 0x00fcfffb, 0x00fdfff9, 0x00fdfef7, 0x00fffffa, 0x00fffdfa,
- 0x00f9f9e4, 0x00fbfae7, 0x00fefcee, 0x00fdfaef, 0x00fdf9f0, 0x00f9f6eb, 0x00fffcf0, 0x00f6f3e5, 0x00e6e8d1, 0x00ebeed5, 0x00f3ebd6, 0x00f1e3c8, 0x00d2cab7, 0x00adac97, 0x00928c7d, 0x00b9b29c,
- 0x00c8c29d, 0x00d5c7a5, 0x00a08f77, 0x004c3e2f, 0x000b0904, 0x00181509, 0x00403926, 0x006c604b, 0x008c805d, 0x00746548, 0x003f2c17, 0x00180901, 0x00050714, 0x00182b4b, 0x004c6a9b, 0x005a81bf,
- 0x004286cb, 0x004386d0, 0x004785d7, 0x004582d9, 0x003e7ed6, 0x003e7dd7, 0x00417ad9, 0x003f77d8, 0x003475c7, 0x003075c7, 0x003675ca, 0x003d73c6, 0x003d75c6, 0x004378cb, 0x004677cb, 0x004272c6,
- 0x003166af, 0x003363b0, 0x002855a4, 0x001f4a99, 0x00284e9e, 0x002a4fa1, 0x002f55aa, 0x003458af, 0x00285699, 0x002a599c, 0x00365da1, 0x00284d8e, 0x00072362, 0x00001754, 0x00061756, 0x000e1e5f,
- 0x00072261, 0x0013306e, 0x0020377b, 0x00173077, 0x000d296d, 0x00123076, 0x00284794, 0x003555a4, 0x00224a90, 0x00173e86, 0x001b4592, 0x00325fa9, 0x00416ebd, 0x004070be, 0x003e70c6, 0x003264bb,
- 0x002863a3, 0x00456f9f, 0x0051617f, 0x00584f52, 0x006e4931, 0x00644933, 0x00604738, 0x00563f31, 0x003f3526, 0x00342d20, 0x002c2722, 0x0022201f, 0x001e1d1c, 0x001a1819, 0x0019181a, 0x00191819,
- 0x000f1a1b, 0x0011181a, 0x001a1a23, 0x0025222a, 0x00322c30, 0x00403535, 0x00503c3d, 0x005e4443, 0x00674d39, 0x006e4f3c, 0x00725241, 0x00664d39, 0x00705b49, 0x00a79287, 0x00e6d6ce, 0x00f9edea,
- 0x00f4f4ea, 0x00f9fbf2, 0x00fefefd, 0x00fefefa, 0x00fdfefc, 0x00fafdfc, 0x00b5b8bf, 0x003a3c4d, 0x0007142c, 0x00081640, 0x0008174e, 0x000c1b5e, 0x00142571, 0x00142877, 0x0015297b, 0x00192c80,
- 0x000f276f, 0x00132772, 0x00233785, 0x002a408e, 0x00304694, 0x00344b97, 0x00475da7, 0x004e61aa, 0x00607cb2, 0x006881b9, 0x003f4e89, 0x000a1946, 0x00000836, 0x00051141, 0x0009134a, 0x00151e5d,
- 0x00162b6a, 0x001d357f, 0x002a469f, 0x002c4fb0, 0x00305ac1, 0x002d53ad, 0x00607cc5, 0x00b9c9f3, 0x00f5fcf7, 0x00f7fcf0, 0x00fdfcf1, 0x00fdfeee, 0x00f9fef1, 0x00fafff4, 0x00fefdf5, 0x00fffef9,
- 0x00f6fef6, 0x00f9fef5, 0x00fdfffd, 0x00feffff, 0x00fdfdfa, 0x00fbfdf9, 0x00fbfdfd, 0x00fefffc, 0x00f4fef8, 0x00f6fff5, 0x00fcfffc, 0x00fdfefe, 0x00fdfbfd, 0x00fafcf9, 0x00fefcfd, 0x00feffff,
- 0x00f4fcf4, 0x00f7fcf6, 0x00fdfcfc, 0x00fbfffd, 0x00fffffe, 0x00fefffa, 0x00fffdfb, 0x00fffdfc, 0x00f4fff5, 0x00f4fff4, 0x00fbfffb, 0x00fdfffa, 0x00fffdfb, 0x00fffdf7, 0x00fffdf5, 0x00fffcf2,
- 0x00eefef8, 0x00eefdf9, 0x00f4fffd, 0x00f6fffe, 0x00f7fffd, 0x00f7fcfb, 0x00fbfcfd, 0x00fefafe, 0x00f7fbef, 0x00f7faf0, 0x00fdfbf0, 0x00fefeee, 0x00fcfff0, 0x00fdfef4, 0x00fffef8, 0x00fcfffb,
- 0x00f0fef7, 0x00f2fef8, 0x00f4fffa, 0x00f1fefd, 0x00effdfd, 0x00f1fdf5, 0x00f2fcef, 0x00f4fbf2, 0x00f1f1ea, 0x00f8f0ee, 0x00fff0f4, 0x00fff0f4, 0x00fff0f1, 0x00fff0ed, 0x00fef2ea, 0x00fcf3e8,
- 0x00f8ebd7, 0x00f9ebd8, 0x00fbeada, 0x00fbe9da, 0x00f4e5d5, 0x00f3e6d6, 0x00f5e6d9, 0x00f5e7db, 0x00ece4d3, 0x00efe2d4, 0x00f1dfce, 0x00f1d8bb, 0x00eaceb1, 0x00e6cbb0, 0x00e0c1b0, 0x00d1b6a6,
- 0x00b6af9e, 0x00b3b1ad, 0x00a0a3b8, 0x006d7a9c, 0x008ba2d1, 0x00c9dbf6, 0x00d9e3f9, 0x00dae4fd, 0x00b6ccd7, 0x00abc1d0, 0x00c3d3ea, 0x00bfcee9, 0x008da0bd, 0x00607393, 0x0069789e, 0x00a8b8e0,
- 0x00cee6f6, 0x00d4e5f4, 0x00d2d8e6, 0x00bdbac9, 0x00afa7b9, 0x00d0cae2, 0x00b2b1da, 0x005b5c9a, 0x000c2970, 0x00213f99, 0x003354b5, 0x002651a9, 0x00123792, 0x00082c8c, 0x002549ac, 0x002e57b9,
- 0x001e65ba, 0x001f6abd, 0x003071cc, 0x002c68c7, 0x00194caf, 0x000f3b99, 0x001b3ca1, 0x00254ab5, 0x00174ba8, 0x0022519a, 0x007ea2dc, 0x00d7edfb, 0x00f6fefa, 0x00fafff6, 0x00fcfdf7, 0x00f8fdf9,
- 0x00fafefc, 0x00fdfffa, 0x00c6c4bb, 0x00797364, 0x00675c44, 0x0074664b, 0x007e6e54, 0x0086755b, 0x008b7d67, 0x0091816f, 0x00998874, 0x009d8a77, 0x00a2946b, 0x009b907b, 0x00a3a1a5, 0x009fa6d6,
- 0x00799de3, 0x006793ce, 0x005988bb, 0x00527eaf, 0x004e6eb4, 0x004e6cb0, 0x004e6bae, 0x004d6bae, 0x004a6cad, 0x00496cae, 0x00496cb2, 0x004469b2, 0x003e63b3, 0x003960b3, 0x003962bb, 0x003b64bf,
- 0x003363b7, 0x003463ad, 0x004068aa, 0x005979bb, 0x006368a3, 0x00544565, 0x00563b35, 0x00643f15, 0x006e4713, 0x00784f2f, 0x00855b3d, 0x00946d3d, 0x00ab8350, 0x00ba915d, 0x00c29763, 0x00c19560,
- 0x00be9256, 0x00c0955a, 0x00c1945a, 0x00c29258, 0x00bd8c50, 0x00b98a4f, 0x00b5874f, 0x00af824c, 0x00aa7e4f, 0x00976e46, 0x00764e30, 0x0084634e, 0x00cdbcb3, 0x00e7dfdd, 0x00dddce0, 0x00dadfe8,
- 0x00e7e9f0, 0x00ecedf2, 0x00e7e6ea, 0x00e3e3e4, 0x00e1e2de, 0x00dcdddb, 0x00e3e2e3, 0x00e3dfe7, 0x00dcdce8, 0x00e6e4f6, 0x00e7e3f4, 0x00e4e3ea, 0x00e2e3e4, 0x00d7d8dc, 0x00c2c3c6, 0x00d5d4d9,
- 0x00dadde0, 0x00e2e3e7, 0x00e5e6eb, 0x00e8e8ec, 0x00eeeef2, 0x00ecf2f0, 0x00e8f4ef, 0x00e9f2f0, 0x00e5f2ee, 0x00e4f0ee, 0x00e6f2f4, 0x00dceaeb, 0x00d1dadc, 0x00dde2e8, 0x00e8e8f3, 0x00f2edfa,
- 0x00ebdddd, 0x00e7dbdd, 0x00efedf0, 0x00eceff3, 0x00e2f0f2, 0x00ecf2f8, 0x00f1f0f7, 0x00f8eff1, 0x00fbe2df, 0x00f4cecf, 0x00e7b1a3, 0x00e49062, 0x00da723f, 0x00da6a37, 0x00d36637, 0x00d1744b,
- 0x00d7a785, 0x00f3d3b9, 0x00fcead3, 0x00fceedb, 0x00f9e0d1, 0x00ece5e2, 0x00f1f2f7, 0x00f1ebf1, 0x00f2f2f1, 0x00f2f2ee, 0x00b7b6b2, 0x00615c56, 0x00291d15, 0x003a2820, 0x003e2722, 0x003c241e,
- 0x00878883, 0x00ebece9, 0x00fdfafb, 0x00fdfafa, 0x00fbfbf9, 0x00fdfcf9, 0x00b0acab, 0x00373230, 0x00080702, 0x001f1916, 0x0038302d, 0x0039342d, 0x002b261d, 0x00211e15, 0x001a1810, 0x0015140c,
- 0x0014130b, 0x0011130d, 0x00171913, 0x001b2219, 0x001d221a, 0x00302215, 0x00593f2a, 0x007f6049, 0x00846344, 0x0060442a, 0x003a2311, 0x00281c0f, 0x00201d14, 0x00232115, 0x002d2418, 0x00302112,
- 0x001f221c, 0x001b1f19, 0x00181b16, 0x00191b15, 0x001d1d16, 0x00201d13, 0x002b2316, 0x003a2f21, 0x0053402a, 0x00634e37, 0x006f593f, 0x007c6648, 0x008f7555, 0x00927654, 0x008d6f49, 0x008e6e46,
- 0x008a693e, 0x0084633b, 0x0082603a, 0x00815f3b, 0x007b5e3b, 0x0073542e, 0x00633f1c, 0x00522b10, 0x00422009, 0x0042220e, 0x004a291f, 0x00503530, 0x004f3e3a, 0x004e4340, 0x00514946, 0x00534d49,
- 0x0040535c, 0x0041555f, 0x00495c69, 0x00475968, 0x00445667, 0x0046576b, 0x00405268, 0x003e5168, 0x003e5069, 0x00374763, 0x002c3f59, 0x002e425a, 0x003d4d66, 0x0045526b, 0x00434c61, 0x0042445a,
- 0x00373641, 0x003d373d, 0x00443a3c, 0x00534643, 0x00514339, 0x00342d3f, 0x00191937, 0x00131533, 0x00101231, 0x000e112e, 0x00121531, 0x000f142d, 0x000c1227, 0x000a1126, 0x00081026, 0x00071026,
- 0x00120a0d, 0x005b5356, 0x00eee5e9, 0x00fcf8fa, 0x00fafcfa, 0x00f8fbf7, 0x00fdfef9, 0x00d3d6cf, 0x0043453e, 0x0017140f, 0x00242118, 0x002a2919, 0x002f2f1e, 0x00303120, 0x00333123, 0x00323120,
- 0x00323221, 0x00333222, 0x00333122, 0x00353324, 0x00353224, 0x00363525, 0x00343423, 0x00333422, 0x002f311e, 0x00313420, 0x00353728, 0x00333627, 0x00393f34, 0x00363c33, 0x00171b16, 0x00000401,
- 0x00000205, 0x00010004, 0x00020002, 0x00020200, 0x00000505, 0x00000708, 0x00030609, 0x00070000, 0x003c1609, 0x00834e36, 0x00a76b49, 0x00905731, 0x008d4d26, 0x00a45f33, 0x00c27842, 0x00cf8148,
- 0x00d5864b, 0x00d2844b, 0x00c37842, 0x00ae6834, 0x00aa6834, 0x00bb703b, 0x00c4763f, 0x00c77a41, 0x00bf793b, 0x00be7839, 0x00bc763b, 0x00ba773d, 0x00bc7b43, 0x00c78853, 0x00cf8f60, 0x00c68557,
- 0x00bb7f52, 0x00d6956c, 0x00f8b593, 0x00f2af92, 0x00e7b799, 0x00dabda2, 0x00796950, 0x002f2e16, 0x00272a14, 0x002c2b1b, 0x002e2c1c, 0x002d2d1a, 0x002c2e1a, 0x002f2f1b, 0x0031311d, 0x0030321f,
- 0x002e301a, 0x002f3019, 0x0031311c, 0x0030321d, 0x002f311b, 0x002f2f1a, 0x002f301c, 0x002f321c, 0x002c301a, 0x002c2d1a, 0x002b2a1a, 0x002c291a, 0x0032291c, 0x00392c20, 0x00403026, 0x0045332b,
- 0x00462c20, 0x003d261b, 0x008f7e77, 0x00eee9e4, 0x00fdfefa, 0x00fcfefc, 0x00fafdfe, 0x00fafcfd, 0x00f4f2f6, 0x00e2e0e4, 0x00dad5da, 0x00dcd5dc, 0x00ddd8de, 0x00e1dae1, 0x00e5e0e5, 0x00e7e5e9,
- 0x00e6e7e8, 0x00eae9e9, 0x00f1f0f0, 0x00f3f6f4, 0x00f7fbf8, 0x00fafaf9, 0x00f3f0f3, 0x00ece9eb, 0x00dddadd, 0x00c0bcc0, 0x00a5a0a7, 0x00a59fa7, 0x00a49ca5, 0x00a097a2, 0x009b919d, 0x009c919e,
- 0x00a7929a, 0x009f8c96, 0x00a18e9a, 0x00ae9ca6, 0x0084727c, 0x0054414b, 0x008c7780, 0x00bea5ac, 0x00a58789, 0x00715051, 0x0065271e, 0x008f1e05, 0x00a63815, 0x00b74a21, 0x00ac4116, 0x00a43e0e,
- 0x00a24a18, 0x0093431b, 0x00823618, 0x00682412, 0x005c1c13, 0x006a271f, 0x008c4135, 0x00b25e3d, 0x00d46e27, 0x00e4791e, 0x00eb811f, 0x00e98c2f, 0x00e3a983, 0x00b194a0, 0x004c437c, 0x007a83dc,
- 0x00dcdfd5, 0x00e8e6f2, 0x00bdb4db, 0x009489c7, 0x008883c2, 0x009693cf, 0x00c0bae9, 0x00f6ebfc, 0x00e6c2c9, 0x00a47064, 0x006f4544, 0x004c4568, 0x004c4684, 0x00514d9d, 0x006e71c7, 0x008c9ce8,
- 0x007293b7, 0x00284454, 0x00121c26, 0x0055555e, 0x00a3859b, 0x00af9ead, 0x00a69ca5, 0x00a199a1, 0x00a59ea4, 0x00a49fa4, 0x009f9a9e, 0x00bdb9bc, 0x00f8f5f8, 0x00fdfbfd, 0x00fffeff, 0x00fefdfe,
- 0x00fbfff4, 0x00e7e0d5, 0x00917d74, 0x00805e55, 0x00926c5b, 0x0096735d, 0x00977a63, 0x00997d63, 0x0096775e, 0x00926c54, 0x008d624c, 0x00845c43, 0x007a563b, 0x00795539, 0x007d593c, 0x007f5c3e,
- 0x00775738, 0x007a5a37, 0x007e5c3a, 0x0083623f, 0x00856741, 0x007f7043, 0x0086753f, 0x00947734, 0x008c7946, 0x0078756d, 0x005f6277, 0x00564e7e, 0x00782c48, 0x008c2228, 0x00a3241b, 0x00b1291b,
- 0x00ba2800, 0x00af2902, 0x00e36942, 0x00d67051, 0x00722e21, 0x00471817, 0x001f050f, 0x00372741, 0x0035385d, 0x000e103d, 0x0011183b, 0x00384251, 0x004f5665, 0x00494b5d, 0x0029293e, 0x00090a1f,
- 0x00020118, 0x0002021d, 0x0014152f, 0x00343753, 0x00222a42, 0x00171c26, 0x00353542, 0x00443f6a, 0x002e3075, 0x001e266a, 0x005c6ba5, 0x0089a5d1, 0x00557eaf, 0x00255595, 0x002e60b2, 0x003b6fd1,
- 0x00507aae, 0x006b91c5, 0x0093b3e1, 0x00b1ccef, 0x00d4ecfa, 0x00e1f4fc, 0x00eaf6fe, 0x00ecf5fd, 0x00ebeef8, 0x00f2f1f5, 0x00f6f8f9, 0x00f0fcfc, 0x00f0fbfd, 0x00f3f9fe, 0x00f9fcff, 0x00fbfdfa,
- 0x00fbfcf8, 0x00fefcf9, 0x00fdfbfb, 0x00fdfcfd, 0x00f9fcfb, 0x00f7fdfc, 0x00f4fdfd, 0x00f4fefc, 0x00f6fdfe, 0x00f7fefe, 0x00f6fcfb, 0x00f8fffd, 0x00f7fefd, 0x00f8fefe, 0x00fcffff, 0x00fcfffd,
- 0x00fdfdf2, 0x00fdfdf5, 0x00fdfef9, 0x00fefffd, 0x00fdfefd, 0x00fcfcfb, 0x00fefefb, 0x00fefdfa, 0x00fbfbf6, 0x00fdfef5, 0x00fffaf0, 0x00fef7ea, 0x00f4f5e9, 0x00f0f4ea, 0x00e7e7dd, 0x00efeede,
- 0x00f1ead0, 0x00f7e9d3, 0x00d6c7b4, 0x009f9588, 0x0060615b, 0x005b5950, 0x00757060, 0x009c9281, 0x00beb192, 0x00a5977c, 0x0064543e, 0x00281d12, 0x0006070f, 0x000e1d35, 0x003e547a, 0x005674a4,
- 0x004e88cc, 0x004a84c9, 0x00467cc6, 0x004279c8, 0x003d76ca, 0x00417cd3, 0x00417bd6, 0x003d77d3, 0x003a76c9, 0x003774c9, 0x003672c5, 0x003b73c4, 0x003e76c6, 0x004276c7, 0x003f71c2, 0x003868bb,
- 0x003264b2, 0x003461b1, 0x002a55a5, 0x00234c9c, 0x002b52a3, 0x003159aa, 0x00345db0, 0x00335aaf, 0x002e56a2, 0x002e58a1, 0x0030579c, 0x001f4384, 0x00082863, 0x0009225e, 0x000f2361, 0x00152666,
- 0x00152e72, 0x00193276, 0x00132b71, 0x000e2b72, 0x0018367e, 0x00284991, 0x002c4f9a, 0x00234492, 0x000f3383, 0x001a3d8e, 0x002a53a4, 0x003666b4, 0x003d6ab7, 0x00416ebd, 0x00497ac9, 0x004576c3,
- 0x003264a7, 0x00426499, 0x00425476, 0x00494554, 0x00543d2e, 0x00564031, 0x00503d2d, 0x0049372a, 0x00382e26, 0x002e2721, 0x00231f1f, 0x001c1b1c, 0x00161615, 0x00131312, 0x00151414, 0x00161514,
- 0x0014191a, 0x00181b1c, 0x001d1c22, 0x00232127, 0x00302e30, 0x003e3836, 0x004a3c3a, 0x0056423e, 0x00634940, 0x00674a3f, 0x00684a3d, 0x00604534, 0x00776053, 0x00b19f95, 0x00e5d8cf, 0x00e9e2de,
- 0x00f8f6f3, 0x00fdfcf9, 0x00fbfcf9, 0x00fcfcfa, 0x00fefffa, 0x00f9fef9, 0x00a1a9af, 0x00262d3a, 0x00081030, 0x000e1745, 0x000d1850, 0x00091658, 0x000f1e68, 0x0010246d, 0x00132872, 0x00172c76,
- 0x00132571, 0x00182874, 0x00273885, 0x002c408d, 0x002a408b, 0x002e468e, 0x003c5297, 0x00435799, 0x005a6fa9, 0x006d7fb9, 0x0056649d, 0x001d2c59, 0x00000831, 0x00050e3b, 0x00040e41, 0x00101c53,
- 0x00192867, 0x0022337e, 0x002a4397, 0x002d4eaa, 0x003359bc, 0x003057af, 0x00577bc3, 0x00a6beec, 0x00e6e9f5, 0x00eaeaee, 0x00efedec, 0x00f1f3eb, 0x00f2f7f0, 0x00f5f9f3, 0x00f9faf3, 0x00fcfbf4,
- 0x00fbfefd, 0x00fdfcfc, 0x00fdfafd, 0x00fefcfd, 0x00fefdfc, 0x00fafdf9, 0x00f7fdfb, 0x00f8fefb, 0x00f7fcfa, 0x00f9fdfb, 0x00f9fdfa, 0x00fefeff, 0x00fcfdfd, 0x00f9fdfc, 0x00fafdfb, 0x00fafdfc,
- 0x00fdfefb, 0x00fdfefc, 0x00fcfdfe, 0x00fcfefe, 0x00fdfdfd, 0x00fdfef8, 0x00fdfef7, 0x00fdfef5, 0x00fbfffa, 0x00fafff8, 0x00fbfff8, 0x00fdfef5, 0x00fefef3, 0x00fefeef, 0x00ffffee, 0x00fdfcea,
- 0x00fef8f9, 0x00fef8f9, 0x00fefafb, 0x00fbfdfb, 0x00fafefa, 0x00fafef7, 0x00fcfdf5, 0x00fcfdf3, 0x00f9fee9, 0x00faffe9, 0x00fdfeeb, 0x00fefeed, 0x00fbfdef, 0x00fcfdf1, 0x00fefdf4, 0x00fefdf7,
- 0x00fbfdf9, 0x00fbfcf8, 0x00fafcf9, 0x00f9fdfa, 0x00f9fdf8, 0x00fafcf9, 0x00fdfcfd, 0x00fefefb, 0x00fcfbf9, 0x00fdf9f7, 0x00fef7f6, 0x00fef9f6, 0x00fdfbf7, 0x00fbfcf6, 0x00f9fdf6, 0x00f8fdf6,
- 0x00fefcf6, 0x00fefdf7, 0x00fffdf8, 0x00fffdf9, 0x00fbfaf6, 0x00fbfbf7, 0x00fcfcf8, 0x00fbfdf9, 0x00fcf9f7, 0x00fdf7f7, 0x00fcf6f7, 0x00fbf3f9, 0x00fdf5f9, 0x00fcf4f1, 0x00fbf3e9, 0x00f9f4e8,
- 0x00f5f0e5, 0x00f5f5f0, 0x00ebf1f2, 0x00ddebee, 0x00def3f5, 0x00effdff, 0x00f1fbfb, 0x00eefbfc, 0x00e8f7f7, 0x00e9f6f8, 0x00eaf7fe, 0x00d2e0f0, 0x00b0c0d6, 0x00aabbd3, 0x00c2d2e6, 0x00e1f0ff,
- 0x00e8f6fc, 0x00e5eff5, 0x00bbbec4, 0x00959298, 0x00c0bac3, 0x00eee9f8, 0x00c3c2df, 0x00797ba9, 0x004c5c9e, 0x005d6fbb, 0x005f78c3, 0x005174b6, 0x003d599f, 0x0038539f, 0x004b6ab9, 0x004d70bf,
- 0x003c72be, 0x003e77c4, 0x004277c5, 0x003665b1, 0x001f4494, 0x00183a88, 0x0027479a, 0x002d4fa9, 0x00224da4, 0x002d539a, 0x0087a5d6, 0x00def0fb, 0x00f7fef4, 0x00f8fff4, 0x00f9fef4, 0x00f3fdf6,
- 0x00fbfeff, 0x00fcfefb, 0x00c7c5be, 0x00736e5f, 0x00594f38, 0x0062553b, 0x006b5c44, 0x0076654d, 0x007e6d5b, 0x00827262, 0x008c7d6a, 0x00907f6d, 0x00998b65, 0x00938874, 0x00a09ea0, 0x009da5d1,
- 0x007291d9, 0x005d85c1, 0x004f7cb1, 0x004875a2, 0x004a6baf, 0x004965a4, 0x004962a2, 0x004761a0, 0x0048629e, 0x0046619c, 0x0046629e, 0x004866a4, 0x004362a9, 0x003e5fab, 0x003d5fb1, 0x003d60b5,
- 0x003d5fba, 0x00345da4, 0x003d67a7, 0x004a73b0, 0x006670bc, 0x007d739c, 0x00977c7d, 0x00ab844f, 0x00b98240, 0x00b97d51, 0x00bd815b, 0x00c18953, 0x00c3915c, 0x00c7945f, 0x00c2905c, 0x00ba8856,
- 0x00b78555, 0x00b68653, 0x00ba8959, 0x00bc8c5a, 0x00c18e60, 0x00be8f57, 0x00bc8b52, 0x00b9884f, 0x00b78455, 0x00a17249, 0x00835637, 0x0077523b, 0x00b8a398, 0x00ebe0dc, 0x00ddd9db, 0x00dbdfe5,
- 0x00eae9f3, 0x00ebebf1, 0x00e9e8ec, 0x00e4e4e4, 0x00e2e3df, 0x00e3e2e3, 0x00dedce2, 0x00e3deee, 0x00ece9fd, 0x00e3e0fa, 0x00ddd7f3, 0x00e4e3e8, 0x00e5e4ec, 0x00e3e3e6, 0x00cfcfd5, 0x00cac9ce,
- 0x00d6d5da, 0x00dedce2, 0x00e3e5ea, 0x00e8e6ea, 0x00eeeef4, 0x00eeeff2, 0x00ebf1f2, 0x00efeff3, 0x00f0eef4, 0x00eaeef2, 0x00e5eff3, 0x00e3f1f2, 0x00e5eff1, 0x00e6e8ed, 0x00e9e7ee, 0x00dfd1da,
- 0x00d2c7d1, 0x00dfd7dd, 0x00eeebf1, 0x00ecebee, 0x00f5f0ee, 0x00fdede9, 0x00fbdfd6, 0x00efc7b5, 0x00ea9d83, 0x00e07f60, 0x00dc6940, 0x00ee6128, 0x00f4531e, 0x00fd5c2d, 0x00f5582f, 0x00f16644,
- 0x00e6977f, 0x00f9c8bb, 0x00ffe4da, 0x00fce9e3, 0x00fedfdd, 0x00f4e9e9, 0x00f2eff0, 0x00f5f3f2, 0x00f6f4f4, 0x00f4f4f1, 0x00efefeb, 0x00b8b8b4, 0x006e6966, 0x00685e5c, 0x006f605f, 0x00766563,
- 0x00aaa8a5, 0x00eceae6, 0x00fcfbf8, 0x00fcf8f6, 0x00fdfefc, 0x00fffdfe, 0x00cecdcd, 0x00747372, 0x004c4d4e, 0x005e5e5e, 0x006e6d6d, 0x00676363, 0x00615a59, 0x005e5957, 0x005b5856, 0x00555150,
- 0x00575653, 0x00555552, 0x005a5856, 0x005a5e56, 0x005c605a, 0x00686158, 0x0087786c, 0x00a69182, 0x00aa9581, 0x008d7e6d, 0x006e635b, 0x005c5b55, 0x00575c59, 0x005c5e55, 0x00645e54, 0x006a5e4e,
- 0x005c5c56, 0x00595b55, 0x00555853, 0x00555854, 0x00585a54, 0x005c5a53, 0x00656158, 0x00726c61, 0x008d7e6f, 0x00988876, 0x009f8f7b, 0x00a59683, 0x00af9e8b, 0x00ae9c86, 0x00a9967f, 0x00aa957f,
- 0x00a6927c, 0x00a4907a, 0x00a3907b, 0x00a28f7a, 0x00998a78, 0x008e7f69, 0x00807059, 0x0074634f, 0x006e584a, 0x006f584d, 0x00765d56, 0x007a645f, 0x00796864, 0x00776b64, 0x00786e63, 0x00776f62,
- 0x006a6c6e, 0x006d7071, 0x00747779, 0x0075787c, 0x0073767e, 0x00787b85, 0x00757683, 0x00747684, 0x00777789, 0x00706e81, 0x005c6783, 0x004f6c98, 0x005579a0, 0x005b7ba7, 0x0057759f, 0x00527097,
- 0x004b6185, 0x004d6683, 0x00516884, 0x00556f80, 0x00506779, 0x00535c6c, 0x00555867, 0x00525867, 0x004f576c, 0x00505667, 0x00575765, 0x00595560, 0x0057535b, 0x0053535d, 0x004d5462, 0x00485464,
- 0x0050555e, 0x0085868e, 0x00ebe9f0, 0x00fdfbfe, 0x00fefffe, 0x00fdfffb, 0x00fafef8, 0x00dbe2da, 0x007b7b78, 0x005a5753, 0x00625d59, 0x006a665a, 0x006d6b5e, 0x006c6a5d, 0x006d6a60, 0x006d6c5f,
- 0x00716c63, 0x006f6b61, 0x006f6b61, 0x00706d62, 0x00716d63, 0x00706c62, 0x006e6c61, 0x006d6d60, 0x00727265, 0x00595b4d, 0x0037392e, 0x003f4137, 0x004d504c, 0x004a4f4e, 0x00292d2f, 0x00090b10,
- 0x00010207, 0x00000103, 0x00020001, 0x00000200, 0x00000404, 0x00000408, 0x00060207, 0x00070000, 0x00380c0a, 0x007f4729, 0x00bd7950, 0x00c97b44, 0x00c87a49, 0x00ca7e4b, 0x00c57c49, 0x00c77f4c,
- 0x00ca814e, 0x00c57f49, 0x00c67d46, 0x00c47a40, 0x00c5773c, 0x00c77b40, 0x00ca7d40, 0x00c97e3e, 0x00c07b3c, 0x00ba7735, 0x00bc7a3a, 0x00bd7d41, 0x00c2854c, 0x00ca8e58, 0x00c38856, 0x00bb8050,
- 0x00b27959, 0x00ad7052, 0x00a6694e, 0x0093583e, 0x009a6e57, 0x00a58972, 0x00685840, 0x0037321a, 0x002f2d1a, 0x00312b1b, 0x00302a1a, 0x002d2d19, 0x002d2f1b, 0x002f2f1c, 0x0031311d, 0x002f331e,
- 0x0030311e, 0x0031321d, 0x0032321e, 0x0031331e, 0x0031321d, 0x0030301d, 0x0030301c, 0x0031311c, 0x0030321d, 0x002f2f1b, 0x002d2d1c, 0x002f2c1d, 0x00352b1f, 0x003a2d23, 0x003f3128, 0x0044332b,
- 0x004c2e24, 0x003a2116, 0x00806f66, 0x00e8ddd7, 0x00f7f8f2, 0x00f7f7f6, 0x00f1f6f6, 0x00f1f4f5, 0x00f5f1f6, 0x00e9e4ea, 0x00ddd9dd, 0x00e2d9e2, 0x00dedbe1, 0x00e3dbe5, 0x00e4dee4, 0x00e6e5e9,
- 0x00ebeaeb, 0x00ecebed, 0x00f0f0ef, 0x00f1f3ef, 0x00f4f5f3, 0x00f5f3f5, 0x00efedee, 0x00eae8e9, 0x00e1dce1, 0x00cbc7cb, 0x00b7b3b8, 0x00b9b3ba, 0x00b9b1bb, 0x00b6acb8, 0x00b1a7b4, 0x00b2a8b6,
- 0x00b1a8ad, 0x00afa8af, 0x00b1a9b2, 0x00b7b1b9, 0x009d969e, 0x00736870, 0x009a8d90, 0x00bfadab, 0x00a48c8a, 0x007d6661, 0x007f5953, 0x0098574e, 0x00a46760, 0x00a16d63, 0x0090615d, 0x007d5752,
- 0x006c5053, 0x00594c53, 0x00494652, 0x003d4352, 0x003d4a5e, 0x00494864, 0x00544e65, 0x0063525d, 0x00895f4a, 0x00aa764b, 0x00c98e52, 0x00d99a55, 0x00e0b084, 0x00c29b8e, 0x00a08093, 0x00d6c1e8,
- 0x00e0dfff, 0x00c4c2e7, 0x008f87b7, 0x007b6ea8, 0x009f93df, 0x00b4b0ee, 0x00cfcdfa, 0x00f1effc, 0x00e4cee9, 0x00af8bb4, 0x0084749f, 0x00718fb9, 0x008b8cbe, 0x009288c1, 0x009688bf, 0x00a09ecc,
- 0x00a6bdd3, 0x006c8b91, 0x003f5558, 0x006b7173, 0x00b79ba9, 0x00c4b3bf, 0x00b9afb7, 0x00b7adb6, 0x00bdb2bb, 0x00b9b3b9, 0x00b7b2b5, 0x00cecacb, 0x00f6f3f4, 0x00f8f5f7, 0x00faf7f8, 0x00f7f7f7,
- 0x00f5faf6, 0x00e4dfda, 0x00aa9896, 0x009f8280, 0x00a88a82, 0x00aa9085, 0x00ab998b, 0x00aa9c89, 0x00a69785, 0x00a38e7e, 0x009d8779, 0x00998174, 0x00927e6f, 0x00947d6d, 0x0095826f, 0x0096846f,
- 0x009a8671, 0x009d8c73, 0x00a08e77, 0x00a19277, 0x00a39678, 0x009d9a82, 0x00a89e84, 0x00b49c71, 0x00b29c76, 0x009c9b95, 0x00848ea0, 0x007981a0, 0x00926777, 0x009e5b59, 0x00aa5a50, 0x00b25f50,
- 0x00c7613c, 0x00c76a48, 0x00ea9c7d, 0x00cd8c79, 0x00714e4b, 0x005e4850, 0x00514958, 0x004f4e66, 0x0041496d, 0x003c466b, 0x005d6681, 0x006f727c, 0x005a5862, 0x00494956, 0x00413e4f, 0x002e283a,
- 0x00211c31, 0x00141226, 0x001f1f35, 0x00323549, 0x00222a3a, 0x000a1510, 0x0007100c, 0x00070e19, 0x00090c40, 0x00111359, 0x002c3084, 0x00414c9a, 0x00445b93, 0x0055769d, 0x00769ebc, 0x008db9d0,
- 0x00b5d3ef, 0x00cbe2f5, 0x00e5f4fd, 0x00f7faff, 0x00faf7fb, 0x00fbf8fb, 0x00fefbfd, 0x00fafbfe, 0x00fffdff, 0x00fefdfc, 0x00fbf9f6, 0x00f8f9f7, 0x00e4eaec, 0x00dce3e9, 0x00dae0e4, 0x00dddfdf,
- 0x00ece7e5, 0x00efe9e4, 0x00f4f2ed, 0x00f8f6f6, 0x00f8fcfd, 0x00fbfdfe, 0x00fafffe, 0x00f8fdfc, 0x00f9fbfe, 0x00fafdff, 0x00fafdfe, 0x00fdfeff, 0x00fcfdff, 0x00fdfdff, 0x00fcfcfd, 0x00fbfcfb,
- 0x00fffff8, 0x00fefef9, 0x00fffefd, 0x00fefdfe, 0x00fcfbfd, 0x00fdfdff, 0x00f9fafb, 0x00f9fafa, 0x00fbfdfc, 0x00f8fbf5, 0x00fdfbf8, 0x00fffbfd, 0x00fefdfe, 0x00f9fbfc, 0x00fbfdfe, 0x00fbfcfb,
- 0x00fffbef, 0x00fef8ea, 0x00faf4eb, 0x00f1edea, 0x00dde1e6, 0x00d9d9d5, 0x00dcdad0, 0x00ded8ce, 0x00e2d8c6, 0x00cbc2b0, 0x009c9484, 0x00787169, 0x0055555b, 0x004c5265, 0x00636c86, 0x007482a2,
- 0x006e90c7, 0x00668ac2, 0x005a7fbb, 0x00547bbd, 0x004c76bf, 0x004875c2, 0x00416ebe, 0x003d6dbb, 0x003c71c2, 0x003970bf, 0x00376cbc, 0x00386ec0, 0x003d70c5, 0x004174c9, 0x004170c5, 0x003b69be,
- 0x003563b5, 0x00345eb0, 0x002d54a6, 0x002b51a2, 0x003358aa, 0x00385fb1, 0x003a62b5, 0x00375fb2, 0x003259a9, 0x002b539e, 0x00264e95, 0x001d3f84, 0x000c2d6a, 0x00112a68, 0x00112765, 0x00122663,
- 0x00122a73, 0x000d266e, 0x00142b75, 0x001b3681, 0x00294492, 0x00254593, 0x00113381, 0x00042776, 0x000c3282, 0x001f4696, 0x003059ac, 0x00295db1, 0x002d57a3, 0x003159a5, 0x004a6fb9, 0x00567ec3,
- 0x004b72b4, 0x004a679a, 0x00485d81, 0x00474e61, 0x00463c39, 0x0048382e, 0x0049372a, 0x00413127, 0x00332a25, 0x00292320, 0x00222020, 0x001b1b1d, 0x00141515, 0x00121212, 0x00161616, 0x001b1a19,
- 0x00201f20, 0x00262525, 0x002b2a2c, 0x002d2d2e, 0x00383839, 0x00444141, 0x004b4343, 0x00544745, 0x005c4a45, 0x005a4840, 0x005c443a, 0x00563a2e, 0x006b5249, 0x009e8b85, 0x00d8ccc7, 0x00e9e3e1,
- 0x00f9f5f7, 0x00fdfdfc, 0x00fafcf9, 0x00fbfcf9, 0x00fefef9, 0x00f8fffa, 0x008d97a5, 0x00121c2e, 0x00091038, 0x00101947, 0x00131d54, 0x000a1555, 0x000c195f, 0x00112166, 0x0018296f, 0x00192a70,
- 0x00162378, 0x001b2b7e, 0x002c3e92, 0x002b4194, 0x00223c8f, 0x00233d8d, 0x002e4692, 0x00364c95, 0x004a5ca3, 0x006375b7, 0x00687bb8, 0x00354a79, 0x00010e3d, 0x00030b3b, 0x00080e42, 0x0010174d,
- 0x001d2267, 0x00232d7a, 0x002c3c91, 0x003048a4, 0x003b54bc, 0x00355ab3, 0x004467b6, 0x00667ebb, 0x008284ad, 0x0084809f, 0x008f88a2, 0x009592a4, 0x009d9eac, 0x00a5a7ae, 0x00aeafaf, 0x00b3b3ab,
- 0x00c0bbc4, 0x00c1bcc5, 0x00c7c3cd, 0x00cbcad3, 0x00cdcdd5, 0x00d0d2d8, 0x00d3d8de, 0x00d9dce2, 0x00dde3e7, 0x00dee6e9, 0x00e1e7e9, 0x00e9e9e9, 0x00ececec, 0x00eceeef, 0x00f0eff1, 0x00f4f3f5,
- 0x00f6f7f8, 0x00f6f7f6, 0x00faf9f9, 0x00fdfcfb, 0x00fdfefd, 0x00fdfef9, 0x00fffff9, 0x00fffff9, 0x00fdfdfb, 0x00fdfefc, 0x00fcfffd, 0x00fefefd, 0x00fdfffb, 0x00fefdf7, 0x00fefff4, 0x00fffdf1,
- 0x00fef7f7, 0x00fef8f5, 0x00fffaf5, 0x00fffaf4, 0x00fffcf5, 0x00fffcf4, 0x00fffdf3, 0x00fdfef2, 0x00fdfff3, 0x00fdfef1, 0x00fefcf4, 0x00fefafb, 0x00fefafe, 0x00fdf9fe, 0x00fdf9fe, 0x00fdf9fe,
- 0x00fffdfe, 0x00fefbfd, 0x00fdf8fe, 0x00fef9ff, 0x00fef9fe, 0x00fdf6fd, 0x00fef7fe, 0x00fdf9fe, 0x00fefcfb, 0x00fefef1, 0x00fdffe9, 0x00fcffe8, 0x00fafff1, 0x00f9fefb, 0x00fafeff, 0x00fbfeff,
- 0x00fefafe, 0x00fefeff, 0x00fcfeff, 0x00fbffff, 0x00f8feff, 0x00f9fdff, 0x00fafcfe, 0x00fcffff, 0x00fffefd, 0x00fffefe, 0x00fdf9fd, 0x00fbf5fd, 0x00fff9fe, 0x00fefbfc, 0x00fcfcf7, 0x00fefdf5,
- 0x00fffdfc, 0x00fcfefc, 0x00f5faf5, 0x00f7fdf9, 0x00f7fefa, 0x00fafcfc, 0x00fcfdfd, 0x00fbfefd, 0x00fdfffd, 0x00fbfffc, 0x00fcfeff, 0x00f7fbfe, 0x00eef5fa, 0x00f1f8fc, 0x00f7fcff, 0x00faffff,
- 0x00fefcff, 0x00f6f6f8, 0x00f3f4f4, 0x00e8e9e9, 0x00f3f3f5, 0x00fbfbfe, 0x00f1f2fa, 0x00dbdeeb, 0x00d3d7eb, 0x00d4dcf1, 0x00cfdced, 0x00c3d9e5, 0x00bdc9dd, 0x00bac8e1, 0x00becee9, 0x00b8cde9,
- 0x00abcae8, 0x00a5c8e7, 0x009ebbdf, 0x008fa6ce, 0x00818bb8, 0x007a88ac, 0x007f92b8, 0x007890c0, 0x006e89c1, 0x00748cb9, 0x00b1c3e0, 0x00edf6fa, 0x00fdfef3, 0x00fefff6, 0x00fdfdf8, 0x00fafffc,
- 0x00fafcfd, 0x00fefffd, 0x00cccac3, 0x006f6a5a, 0x00453c26, 0x004d4229, 0x00594a31, 0x0063533b, 0x006b5b46, 0x00726253, 0x007a6b59, 0x007f6f5f, 0x00887c55, 0x00867d67, 0x00979599, 0x00999fce,
- 0x00607fc7, 0x004c74b2, 0x003d6b9e, 0x00396693, 0x00405fa0, 0x00425d9e, 0x00445c9a, 0x00435a97, 0x00455b93, 0x00435b92, 0x00435b92, 0x00445f96, 0x00425c9c, 0x00405ba0, 0x003d5aa3, 0x003c59a6,
- 0x003452a8, 0x0034569e, 0x00426caa, 0x004a71b5, 0x005b6aba, 0x007d75a4, 0x00a1898a, 0x00bb925a, 0x00c6883b, 0x00c87f4c, 0x00ca8256, 0x00c98a56, 0x00c58c57, 0x00c68e5c, 0x00bf8958, 0x00b57f55,
- 0x00aa744b, 0x00aa764c, 0x00ac7b54, 0x00b3825a, 0x00bf8d67, 0x00c48e5a, 0x00be8b4e, 0x00b78548, 0x00b78250, 0x00a77549, 0x008d5e3c, 0x00744c33, 0x00ad9489, 0x00e8d9d6, 0x00dbd5d7, 0x00d7d7dd,
- 0x00e9e8f1, 0x00ebeaf0, 0x00ebebee, 0x00e6e6e6, 0x00e4e4e2, 0x00e5e4e8, 0x00dbd9e3, 0x00dfdbef, 0x00d1cae9, 0x00b7afd9, 0x00c2bedb, 0x00eae7ec, 0x00e8e9eb, 0x00e4e1e9, 0x00e0dee3, 0x00d4d1d9,
- 0x00ceccd2, 0x00d3d2d8, 0x00e0dfe3, 0x00ede9f0, 0x00f0eef3, 0x00f2eff7, 0x00f2eef6, 0x00f5edf8, 0x00f6ecf8, 0x00f2eef8, 0x00f0f1f8, 0x00e9eef3, 0x00e2e7e9, 0x00e9e6e9, 0x00dfd7dc, 0x00c5b0b5,
- 0x00d3cddc, 0x00e8e7f2, 0x00eceef0, 0x00f4f1f7, 0x00f3e4dc, 0x00f6d5c5, 0x00e4a88c, 0x00d07a52, 0x00d95d29, 0x00ec5f26, 0x00e9682c, 0x00dc723c, 0x00e46636, 0x00e25c33, 0x00cb4d2b, 0x00d06b4e,
- 0x00eecdbe, 0x00f5f1ec, 0x00e7faf5, 0x00e8fdfa, 0x00eaf8f8, 0x00f5faf8, 0x00fcfaf9, 0x00fbfaf8, 0x00f8faf6, 0x00f8faf6, 0x00fafcf9, 0x00f5f7f5, 0x00eeeded, 0x00ebe7e9, 0x00ede5e7, 0x00eee3e6,
- 0x00f2f1ee, 0x00fdfaf8, 0x00fdfdf9, 0x00fafaf7, 0x00fcfdfc, 0x00fcfdfe, 0x00f6f8f9, 0x00eaeaeb, 0x00e7e9e8, 0x00e1e7e6, 0x00e7eaea, 0x00eceaea, 0x00ece9ea, 0x00e9e9e9, 0x00ebeae9, 0x00e8e5e7,
- 0x00e8e8e7, 0x00e9e9e8, 0x00e7e8e7, 0x00e8e8e8, 0x00e9e8e4, 0x00ebe7e6, 0x00efebe8, 0x00f6efe9, 0x00f5f0e7, 0x00f3eee9, 0x00eae9e5, 0x00e3e7e7, 0x00e2e9e7, 0x00e5eae5, 0x00eae8e0, 0x00eee8dc,
- 0x00e9e9e5, 0x00e8e9e6, 0x00e6e8e5, 0x00e5e8e6, 0x00e9ebe8, 0x00eaeae7, 0x00ebeae5, 0x00efece6, 0x00f2ede0, 0x00f4edde, 0x00f2ecdd, 0x00f3eee2, 0x00f6f1e7, 0x00f6f1e5, 0x00f4eee2, 0x00f4ede4,
- 0x00f5f0e5, 0x00f5ede4, 0x00f6ece4, 0x00f4eee7, 0x00f2ede7, 0x00ebece8, 0x00e7ece6, 0x00e6ece5, 0x00ebe5e5, 0x00ece5e5, 0x00ede4e6, 0x00eee5e7, 0x00efe8e9, 0x00edeae7, 0x00eceae2, 0x00ebebe0,
- 0x00e8eae3, 0x00ebeae3, 0x00ebece6, 0x00ebebe8, 0x00ebe9ea, 0x00ececef, 0x00ece9ef, 0x00ede9ef, 0x00eee7f0, 0x00ece5f2, 0x00e9e3ed, 0x00e6e4ee, 0x00e7e8f3, 0x00e7e9f6, 0x00e6e8f2, 0x00e7e7f3,
- 0x00e4e7ef, 0x00e8e6ec, 0x00e5e6e9, 0x00e7eae4, 0x00e2e7e1, 0x00e6e6e5, 0x00e3eaec, 0x00e3e7eb, 0x00dfe9ee, 0x00e3eaee, 0x00e5e8e9, 0x00eae9e5, 0x00e8e6e2, 0x00e7e8e8, 0x00e2e8eb, 0x00dee8ec,
- 0x00dbeaeb, 0x00e7eff0, 0x00f8fbfc, 0x00fcfcfa, 0x00fefefa, 0x00fdfef8, 0x00f7fdf4, 0x00f7fdf4, 0x00eaece7, 0x00e8e7e4, 0x00ebe7e2, 0x00ebe9e1, 0x00edece1, 0x00edeae3, 0x00ebe8e1, 0x00ede9e1,
- 0x00f0eae6, 0x00efeae5, 0x00edeae4, 0x00ece9e2, 0x00edeae3, 0x00ebeae2, 0x00ebece2, 0x00e8eae0, 0x00e8e9df, 0x00aeb0a5, 0x0045473e, 0x004c5046, 0x00575b57, 0x00545959, 0x003b3f42, 0x00181921,
- 0x0001040b, 0x00000306, 0x00000100, 0x00010100, 0x00010304, 0x00010308, 0x00020104, 0x00090001, 0x00391006, 0x007f4325, 0x00bb7046, 0x00cc7134, 0x00d17e44, 0x00cf814a, 0x00c27b47, 0x00bf7d4c,
- 0x00bf7a4c, 0x00c37d4b, 0x00c17a3f, 0x00c5773d, 0x00cd7b39, 0x00cb8142, 0x00c87f3e, 0x00c88140, 0x00bf7d39, 0x00b97733, 0x00be7e3c, 0x00c18244, 0x00ca8e54, 0x00c48b54, 0x00b67d4a, 0x00bd8455,
- 0x00cd9b7d, 0x00a26851, 0x0057200e, 0x00400905, 0x004d250d, 0x00563d2a, 0x00443823, 0x0037331b, 0x0032301d, 0x00322d1c, 0x00322d1b, 0x002e2f1a, 0x002f311c, 0x0032311f, 0x0033331f, 0x00323520,
- 0x00323320, 0x00333420, 0x00333420, 0x0032341f, 0x00323320, 0x0032311e, 0x0032311d, 0x0033321e, 0x0031331f, 0x0030321f, 0x002f2f1e, 0x002f2e1e, 0x00352c20, 0x00392d22, 0x003e3025, 0x00433328,
- 0x004a2d21, 0x003b2418, 0x007d6c62, 0x00e6dad3, 0x00f2f2ed, 0x00efefee, 0x00eaeeef, 0x00ebeff1, 0x00efeff0, 0x00edebef, 0x00eae6e8, 0x00f0e8ee, 0x00eee7ef, 0x00f0e7f1, 0x00f1edf0, 0x00f3f2f4,
- 0x00f3f2f3, 0x00f5f4f5, 0x00f5f5f4, 0x00f2f4f0, 0x00f1f1f1, 0x00eeeef0, 0x00ecebee, 0x00eeedf1, 0x00f3eef5, 0x00eeeaf0, 0x00e7e3e9, 0x00ebe6ed, 0x00ebe4ee, 0x00ebe1ee, 0x00e8dfeb, 0x00ebe2ee,
- 0x00e0e3e5, 0x00e3e6e9, 0x00e3e7eb, 0x00e3e8ea, 0x00e0e4e6, 0x00d5d7d7, 0x00e0dfdd, 0x00eae7e1, 0x00e6ddd6, 0x00e5d5cf, 0x00e9dad6, 0x00ecd6de, 0x00ead8dc, 0x00e8d6dc, 0x00e6d5db, 0x00e2d3dc,
- 0x00dfd5de, 0x00d9d7db, 0x00d3d6d9, 0x00d1d7db, 0x00d0dde0, 0x00d5dad3, 0x00d6dbd0, 0x00dadad6, 0x00e2d6e0, 0x00e7d6dd, 0x00e7d9db, 0x00eddcdb, 0x00ede6e2, 0x00e7e4e3, 0x00e3e3e5, 0x00e7e9f3,
- 0x00e1eefd, 0x00dde7e6, 0x00dae0d2, 0x00dee1d4, 0x00dde0e8, 0x00e0ebe9, 0x00e0f0dc, 0x00e5f6cd, 0x00e9efd8, 0x00efe1ea, 0x00eae2f3, 0x00ddeaf7, 0x00e3e9f9, 0x00e2e2f7, 0x00e5e3ee, 0x00e7e3ec,
- 0x00eaeaf0, 0x00e2e8eb, 0x00d9dfdf, 0x00dce1e3, 0x00dfe9e5, 0x00e9e4ea, 0x00ede1e9, 0x00e7e2e8, 0x00eee2ea, 0x00eae3e8, 0x00eae6e8, 0x00ede9e9, 0x00f5f2f2, 0x00f8f3f4, 0x00f7f3f3, 0x00f4f1f1,
- 0x00edf7f2, 0x00f1f2ef, 0x00eee5e5, 0x00f2e0e2, 0x00f4e1e1, 0x00f5e5e1, 0x00f1e8e0, 0x00f0e9de, 0x00ede9de, 0x00efe6de, 0x00eee5e0, 0x00ede5e1, 0x00ece5e1, 0x00eee6e0, 0x00ece8df, 0x00eae8dc,
- 0x00e9e4da, 0x00ebe5d9, 0x00ede7d8, 0x00eee9d8, 0x00edebd9, 0x00e7e8e1, 0x00ece9dd, 0x00f3e4c6, 0x00f0e5c5, 0x00e1e9e5, 0x00cee7ef, 0x00cae4f5, 0x00e6d9e4, 0x00efd4d0, 0x00f5d5c7, 0x00f7dac9,
- 0x00f6dada, 0x00eed6d5, 0x00efdfe1, 0x00eae1e6, 0x00d7d6df, 0x00d7d7df, 0x00dcdce3, 0x00e0dfe5, 0x00e1d6dd, 0x00e1d5dc, 0x00e4dde2, 0x00b9bbbb, 0x0057595b, 0x004c484b, 0x00585459, 0x00605a60,
- 0x00564f58, 0x0046424d, 0x003e3f4b, 0x00464b54, 0x0037434b, 0x001a253e, 0x00111e38, 0x001c2c34, 0x00313e3c, 0x00525969, 0x00707593, 0x008d91bd, 0x00afb5d9, 0x00d0dbf4, 0x00deeef6, 0x00e6f6fc,
- 0x00ebfcfd, 0x00f3fcff, 0x00f9fdfa, 0x00fffbf3, 0x00fffaeb, 0x00fefaec, 0x00fef9ef, 0x00fcfbf6, 0x00f8fdfb, 0x00fafdfc, 0x00fbfef9, 0x00faf6ef, 0x00d8ded8, 0x00bec5c5, 0x00a2aaac, 0x00999aa0,
- 0x00a19895, 0x00a89f9a, 0x00b5aeab, 0x00bcbabc, 0x00c1c8cc, 0x00cecfcf, 0x00d7d6d1, 0x00ddddd8, 0x00ece6e5, 0x00f6f1f1, 0x00fbf7f7, 0x00faf7f6, 0x00fcf8f8, 0x00fefcfa, 0x00fcfcf9, 0x00fcfdf9,
- 0x00fdfff9, 0x00fdfef9, 0x00fdfefc, 0x00fdfdfe, 0x00fdfcfe, 0x00fefeff, 0x00fbfcfe, 0x00f9fbfc, 0x00fbfdfa, 0x00fbfdf9, 0x00f8f7f5, 0x00fdf7ff, 0x00fffcfd, 0x00fbfeff, 0x00f7fdfb, 0x00f9fcfb,
- 0x00fdfdf9, 0x00fdfaf4, 0x00fcfbf4, 0x00fefdfc, 0x00f8fcfe, 0x00fbfbf7, 0x00fcfcf1, 0x00fcf9f0, 0x00fcfaec, 0x00fbf8ed, 0x00f2f0e6, 0x00efede9, 0x00dfdee6, 0x00cfd1e0, 0x00cbcbe0, 0x00cccee6,
- 0x00b6c9ee, 0x00aec1ea, 0x009cb1e0, 0x008ca4d9, 0x007d99d5, 0x007394d4, 0x006289cb, 0x005881c4, 0x00507cc6, 0x004675bc, 0x003b6cb9, 0x003a6ec0, 0x003e70c2, 0x004173c5, 0x003d6cc0, 0x003763b6,
- 0x00315eae, 0x00325aac, 0x002b50a3, 0x002e52a3, 0x003357a9, 0x00375db0, 0x00335aaf, 0x003056ac, 0x002d53a4, 0x00284d9a, 0x00244992, 0x001a3d83, 0x00082564, 0x00082060, 0x00081e5e, 0x000a1d5b,
- 0x000b246d, 0x00112873, 0x001a347d, 0x001f3983, 0x00163381, 0x000b2a78, 0x000c2e79, 0x00163888, 0x0025499c, 0x002f54a7, 0x00315bb0, 0x003464bc, 0x003e6ab6, 0x003e60a9, 0x002c4a8d, 0x00234181,
- 0x004364a1, 0x0050689c, 0x00627b9f, 0x00616c83, 0x00414045, 0x0042352f, 0x00413326, 0x003b2f24, 0x002f2923, 0x0027231f, 0x001e1d1c, 0x0019191a, 0x00141515, 0x00151616, 0x001e1e1e, 0x00252526,
- 0x002f2d28, 0x00393734, 0x003e3c3a, 0x003e3f3e, 0x00454648, 0x004c4d4c, 0x00524e4f, 0x0056504e, 0x005b4d49, 0x00554843, 0x00554137, 0x0051372a, 0x0050382d, 0x006d5c54, 0x00a29894, 0x00c6c3c2,
- 0x00edecee, 0x00fcfcfe, 0x00fafdf9, 0x00fbfcfa, 0x00fdfcf7, 0x00f4fbfd, 0x007f8ba0, 0x000e1635, 0x000f1746, 0x00121a51, 0x00121a5a, 0x000f165e, 0x000c155e, 0x00141f66, 0x001c286e, 0x001a266a,
- 0x00122580, 0x00192f89, 0x002d43a0, 0x002a43a1, 0x001b3795, 0x00193691, 0x00213b92, 0x00274294, 0x00364d9b, 0x005166b6, 0x007085c7, 0x005668a1, 0x00131f54, 0x0001083c, 0x00060a3e, 0x00090944,
- 0x0018195e, 0x001e2374, 0x002a338a, 0x003344a4, 0x004155be, 0x003e63be, 0x003860af, 0x00385297, 0x002d306a, 0x00221b4c, 0x001e1540, 0x00191539, 0x00191634, 0x0017172b, 0x00151723, 0x00141517,
- 0x001c1727, 0x00211b2c, 0x002d2739, 0x00393546, 0x00423f52, 0x004a4a5a, 0x00545666, 0x005f5f72, 0x00686f7d, 0x00717585, 0x00747983, 0x007e797b, 0x007e7d7d, 0x00847f81, 0x00979596, 0x00aca9a9,
- 0x00b9b6b9, 0x00bfbdbe, 0x00c3c2c2, 0x00c9c6c5, 0x00c7c6c7, 0x00ccc5c4, 0x00ccc6c5, 0x00cecccb, 0x00d4d2d5, 0x00d6d6da, 0x00d8dcde, 0x00dfe1e5, 0x00e5eaea, 0x00e8ebec, 0x00ebeeec, 0x00f0f0ef,
- 0x00e7f6f2, 0x00eafaf4, 0x00effaf5, 0x00f4fbf8, 0x00f8fafa, 0x00fafafc, 0x00faf9fb, 0x00fcfafd, 0x00fdf6fd, 0x00fff7fc, 0x00fcf7fb, 0x00fafcfd, 0x00fafefd, 0x00fdffff, 0x00fcfdfe, 0x00fdfefd,
- 0x00fbfef9, 0x00fcfdf7, 0x00fefcf5, 0x00fffdf4, 0x00fffdf2, 0x00fffdea, 0x00fefde9, 0x00fdfdef, 0x00fdfdfc, 0x00fdfdfb, 0x00fdfbfb, 0x00fbfbfa, 0x00fbfbfa, 0x00fcfcf7, 0x00fdfcf2, 0x00fdfbec,
- 0x00fcfcff, 0x00fbfcff, 0x00f9fdff, 0x00f7ffff, 0x00f3fdfd, 0x00f4fdfe, 0x00f7fdfe, 0x00fafcfd, 0x00fffcfb, 0x00fefbf9, 0x00fefbfa, 0x00fdfdfa, 0x00fcfcf2, 0x00fcfcef, 0x00f9fdf0, 0x00fcfdf4,
- 0x00fbfdfd, 0x00fdfdff, 0x00fbfbfb, 0x00fcf9fd, 0x00fbf9fa, 0x00fef9f9, 0x00fffdf4, 0x00fefbf3, 0x00fdfdf7, 0x00fcfdf7, 0x00fdfcf7, 0x00fdfcf7, 0x00fbfdf8, 0x00fcfff8, 0x00fcfdf5, 0x00fdfef5,
- 0x00fff9ff, 0x00fefbff, 0x00fafafd, 0x00f6f9fa, 0x00f8fcfd, 0x00fafffd, 0x00f9fff7, 0x00f7fcf2, 0x00fafcf4, 0x00fafef5, 0x00f8fff0, 0x00f7feee, 0x00f7faf1, 0x00fafaf9, 0x00f5f9fa, 0x00f3fbff,
- 0x00ebfbfe, 0x00ebf9fd, 0x00eaf7ff, 0x00eef2fe, 0x00efebf9, 0x00ededee, 0x00e8f2f1, 0x00e1edf9, 0x00dbeefa, 0x00ddebf9, 0x00ecf6fc, 0x00fafdfc, 0x00fffcf0, 0x00fefbf6, 0x00fdf8f8, 0x00fafafd,
- 0x00fbfbfd, 0x00fcfcfb, 0x00d3d2cd, 0x006b675e, 0x002e271a, 0x00342a1c, 0x00433628, 0x004b3d2f, 0x0058483f, 0x005e5043, 0x0066584a, 0x006c5e49, 0x0071674a, 0x00726d5e, 0x0085858a, 0x008f96b5,
- 0x005d73a7, 0x00476496, 0x003e5e8d, 0x003b598a, 0x00405894, 0x003b5693, 0x003a5691, 0x003c5692, 0x003e588e, 0x003e5a8f, 0x003f5b92, 0x003d5a91, 0x003d5997, 0x003e599b, 0x003e579f, 0x003a529d,
- 0x002f5094, 0x00395ba1, 0x004d70b9, 0x004c71c2, 0x005366b6, 0x00646b98, 0x00887e84, 0x00a18660, 0x00ae753c, 0x00b26d41, 0x00bd7652, 0x00b68052, 0x00ba8258, 0x00bb8657, 0x00b88155, 0x00af784d,
- 0x00a56e46, 0x00a36c43, 0x00ab7550, 0x00ac7e55, 0x00b2805a, 0x00b37f4c, 0x00ab733d, 0x009d6732, 0x009c6636, 0x00966539, 0x00835731, 0x00704b2e, 0x00ac9487, 0x00ebdcd8, 0x00dbd3d6, 0x00d8d6de,
- 0x00e7e6f3, 0x00ebeaf2, 0x00eceaee, 0x00ebe8e8, 0x00e7e2e0, 0x00e3e0e3, 0x00e4e3ed, 0x00d8d9ed, 0x008889b4, 0x007078a7, 0x00b9bbe3, 0x00ececef, 0x00ebe8f7, 0x00dcdce6, 0x00eae8f6, 0x00dfdeeb,
- 0x00cfccdb, 0x00c9c8d2, 0x00dcd7e1, 0x00ebe6ea, 0x00efebef, 0x00eeeef4, 0x00f2effb, 0x00f6eff7, 0x00faeef0, 0x00f9f0f4, 0x00f8f0f8, 0x00eeecf6, 0x00eceef6, 0x00f1eff4, 0x00e0dddc, 0x00dcd1c9,
- 0x00ddebea, 0x00f0f6f8, 0x00f6f2f6, 0x00f6dfe5, 0x00f0b5a9, 0x00e18967, 0x00d96a3d, 0x00dc5d25, 0x00ea6836, 0x00e4683e, 0x00c55e3c, 0x009b6044, 0x008f4c3c, 0x00773632, 0x00692e33, 0x008d6161,
- 0x00e3dedb, 0x00f5faf4, 0x00effef7, 0x00effef8, 0x00eeffff, 0x00f8fcfc, 0x00fffcfc, 0x00fdfaf8, 0x00fcfaf9, 0x00fefdfb, 0x00fafbf8, 0x00fdfefb, 0x00fcfdf9, 0x00fdfdfa, 0x00fffdfb, 0x00fdfbfa,
- 0x00f9fdfd, 0x00f6f9f8, 0x00fdfdfd, 0x00fbfefd, 0x00fcfcfc, 0x00fafdfb, 0x00fbfbfc, 0x00fcfafd, 0x00fffefd, 0x00fbfcfc, 0x00fcfdfa, 0x00fbfbf5, 0x00fdfffa, 0x00fbfefb, 0x00fbfdfb, 0x00fefffd,
- 0x00fcfbfa, 0x00fefefb, 0x00fffdff, 0x00fdf9fa, 0x00fdfcfa, 0x00fcfcf9, 0x00fcfefd, 0x00fdfaf5, 0x00fdfcf6, 0x00fbfdf7, 0x00fcfefd, 0x00fafffd, 0x00f7fdfe, 0x00f9fffa, 0x00fafef8, 0x00fcfef3,
- 0x00fcfcfb, 0x00fefdfd, 0x00fffefe, 0x00fffefe, 0x00fefffd, 0x00fcfefb, 0x00fcfcf9, 0x00fefcf8, 0x00fefff9, 0x00fefdf7, 0x00fffdf7, 0x00fdfef8, 0x00fcfcf8, 0x00fdfbf8, 0x00fffcf9, 0x00fffcf9,
- 0x00fffdf9, 0x00fdfbf6, 0x00fefbfa, 0x00fefdfb, 0x00fefdfc, 0x00fafdfb, 0x00f8fdfe, 0x00f7fefb, 0x00fffdff, 0x00fcfcff, 0x00fcfafd, 0x00fdfafc, 0x00fdfbfc, 0x00fdfcfa, 0x00fdfcf8, 0x00fdfef7,
- 0x00fdfcf9, 0x00fdf9f6, 0x00fcfbf8, 0x00fdfaf9, 0x00fffafc, 0x00fefbfd, 0x00fffcfe, 0x00fffdfd, 0x00fffcff, 0x00fefcfd, 0x00fefcfe, 0x00fefbfe, 0x00fffaff, 0x00fefafd, 0x00fefbfd, 0x00fffafd,
- 0x00fefcfe, 0x00fdfaf8, 0x00fef6f6, 0x00fdfaf5, 0x00fdfcf5, 0x00fcfbfa, 0x00fcfdfe, 0x00f9fcfe, 0x00fafeff, 0x00fbfdfe, 0x00fcfdfb, 0x00fcfdf6, 0x00fcfdf6, 0x00fcfef9, 0x00fafdfa, 0x00f8fcf7,
- 0x00f7feff, 0x00fbfdff, 0x00fafcfd, 0x00fefdfd, 0x00fcfdfb, 0x00fdfdfa, 0x00f7fcf7, 0x00f9fff9, 0x00ffffff, 0x00fefffd, 0x00fcfcfa, 0x00fbfff7, 0x00fbfef8, 0x00fdfef7, 0x00fefef9, 0x00fefef8,
- 0x00fbfef8, 0x00fdfff9, 0x00fefffa, 0x00fdfef9, 0x00fdfef9, 0x00fcfdf8, 0x00fcfdf8, 0x00fbfaf7, 0x00fefefb, 0x00bec0b9, 0x00494d46, 0x0052584f, 0x00565b5a, 0x004f5358, 0x0041454e, 0x00242936,
- 0x0010151c, 0x00110e0f, 0x00090003, 0x000a0000, 0x00010104, 0x00040505, 0x00020600, 0x00040200, 0x0044170b, 0x009a4f2c, 0x00c87142, 0x00cd793e, 0x00c77641, 0x00c47a47, 0x00c07b48, 0x00c4814e,
- 0x00bf7b4b, 0x00c07b47, 0x00c17843, 0x00c2753b, 0x00cb7b3d, 0x00c77f3c, 0x00c67e3d, 0x00c8803e, 0x00c57f3d, 0x00c37e3c, 0x00c78442, 0x00c68546, 0x00ca8e52, 0x00c18751, 0x00b87f4c, 0x00c8905d,
- 0x00eaad88, 0x00d59874, 0x009b6344, 0x00683b1c, 0x003f2006, 0x0038270e, 0x00363219, 0x0036371e, 0x00323321, 0x0031311b, 0x0031301b, 0x0031311d, 0x0032331f, 0x00333320, 0x00353421, 0x00373621,
- 0x00373421, 0x00363522, 0x00363522, 0x00353522, 0x00353522, 0x00333420, 0x00323220, 0x00343321, 0x00323221, 0x00323221, 0x00302f1f, 0x00302c1e, 0x00372e22, 0x003e3025, 0x00433226, 0x00473428,
- 0x00492b21, 0x003a2418, 0x00827168, 0x00eae2db, 0x00fafbf7, 0x00f5f9f7, 0x00f7fbfa, 0x00f8fbf9, 0x00fcfbff, 0x00fcfcfe, 0x00fafbfa, 0x00f8fcf7, 0x00fefafd, 0x00fef9fb, 0x00fefbfc, 0x00fffffe,
- 0x00f7faf8, 0x00f8fcfb, 0x00fcfcfd, 0x00fdfafc, 0x00fcfafb, 0x00f8fcf7, 0x00f5faf3, 0x00f8faf5, 0x00fafaf9, 0x00fbfbf8, 0x00fbfaf6, 0x00fcfbf6, 0x00fefdf8, 0x00fefcf8, 0x00fefcf8, 0x00fffcf7,
- 0x00fafeff, 0x00f9fcfd, 0x00fbfbfe, 0x00fbfbff, 0x00fcfdfe, 0x00fafdf9, 0x00f9fdf6, 0x00fafcf6, 0x00fdfef5, 0x00fbfbef, 0x00fffbf7, 0x00fcfafd, 0x00fdfbfe, 0x00fbfbfd, 0x00fefaff, 0x00fef9fc,
- 0x00fcfcfd, 0x00fcffff, 0x00fdfefd, 0x00fcfdfc, 0x00fafefe, 0x00fafdf4, 0x00fdfef7, 0x00fcfffc, 0x00fffbff, 0x00fdfbfd, 0x00fdfcfe, 0x00f9fafa, 0x00fcfeff, 0x00f9fefc, 0x00fafffe, 0x00f6fdfd,
- 0x00f6fbff, 0x00f9fdf7, 0x00fdfff4, 0x00fcfff2, 0x00f9fef6, 0x00f5fcf2, 0x00f8ffef, 0x00f6ffe8, 0x00fcfdef, 0x00fcfaf8, 0x00fdf8fc, 0x00f7fcfb, 0x00f8fcfc, 0x00f9fefd, 0x00fffffe, 0x00fcfbfb,
- 0x00f9fcfe, 0x00fbfcfb, 0x00fafcff, 0x00f7fefc, 0x00f5fdfb, 0x00f7fcfb, 0x00fafcfc, 0x00fcfdfc, 0x00fefafe, 0x00fafbfe, 0x00fcfdff, 0x00f9fafb, 0x00f7f9f7, 0x00fbfbfa, 0x00fdfcfb, 0x00fdfdfc,
- 0x00f8fafb, 0x00f7f8f6, 0x00fefdfb, 0x00fef9f9, 0x00fdfaf8, 0x00fcf9f7, 0x00fcfbf7, 0x00fefff7, 0x00fdfdfa, 0x00fdfdf9, 0x00fdfdf9, 0x00fcfffa, 0x00fffefb, 0x00fffffc, 0x00fffefb, 0x00fcfcf8,
- 0x00fdfcf9, 0x00fefdf6, 0x00fffcf4, 0x00fefff8, 0x00fffef7, 0x00fbfefb, 0x00fefef8, 0x00fefbed, 0x00fffcee, 0x00f6fef7, 0x00f1fffe, 0x00ecfff8, 0x00fefeff, 0x00fffbf5, 0x00fef9f3, 0x00fefaf2,
- 0x00fffaff, 0x00fcfbfe, 0x00fdfcff, 0x00f9feff, 0x00f9fcfd, 0x00fafefd, 0x00fbfcfe, 0x00fdfcfe, 0x00fff9fd, 0x00fdfcfa, 0x00fffbf8, 0x00cecec6, 0x006b645d, 0x00625d54, 0x00756f67, 0x006f6a60,
- 0x005c5853, 0x00636263, 0x006f7276, 0x00757b83, 0x0077808c, 0x00767c93, 0x00848a9c, 0x00a2aaaf, 0x00c3cdc6, 0x00d8dfdc, 0x00e3e6f1, 0x00edeefa, 0x00f9f9fd, 0x00f9fbff, 0x00f8fdff, 0x00f7fdfc,
- 0x00f2fefb, 0x00f8fdfc, 0x00fcfdf9, 0x00fffcf0, 0x00fcf7ea, 0x00fdfaf0, 0x00fdf8f5, 0x00fdfcfa, 0x00f6f8f9, 0x00f7fcf9, 0x00fcfef9, 0x00f8faf5, 0x00e1e7e9, 0x00c4cdd4, 0x00969ea6, 0x00737c86,
- 0x00615e68, 0x005f5d63, 0x005b5359, 0x004e4b4f, 0x004b4d4f, 0x00494d49, 0x0053534b, 0x0062625b, 0x00807e79, 0x0092918c, 0x00a2a39e, 0x00adafaa, 0x00bfc0bb, 0x00cbcbc6, 0x00dbdbd5, 0x00e6e7e0,
- 0x00ecede7, 0x00f5f7f1, 0x00fbfdf9, 0x00fbfdfa, 0x00fcfdfc, 0x00fefefd, 0x00fdfdfc, 0x00fcfbfa, 0x00fefdfe, 0x00fbfef8, 0x00fbfdfa, 0x00fcfcfc, 0x00fefdfd, 0x00fafefd, 0x00f9feff, 0x00fcfefe,
- 0x00fcf9f9, 0x00fefbfa, 0x00fffdfe, 0x00fffffe, 0x00fcfaff, 0x00fbfafa, 0x00fdfcfa, 0x00fefef8, 0x00fffef9, 0x00fffef9, 0x00fdfbf8, 0x00fcfaf9, 0x00fbfcfc, 0x00fafcfe, 0x00f9f8fd, 0x00f8f9fe,
- 0x00eff8fb, 0x00edf8fe, 0x00e8f3ff, 0x00dfecfd, 0x00dae8fe, 0x00d1e2fd, 0x00c1d6f6, 0x00b2cbed, 0x00a4bae2, 0x0096afd4, 0x0083a2cc, 0x00759bcd, 0x006e93ca, 0x00698fc7, 0x005d80bc, 0x005172ae,
- 0x003f64a0, 0x00375b9c, 0x00315195, 0x00315192, 0x00345699, 0x0033559f, 0x002c4f9e, 0x00254b9a, 0x00254a9b, 0x00274d99, 0x00264c95, 0x0012387c, 0x00051c5c, 0x00091b58, 0x000e1b55, 0x00171f56,
- 0x0029285b, 0x0033386c, 0x0040457a, 0x0039477c, 0x00283d78, 0x0023417f, 0x002f5196, 0x003f68b5, 0x00406ec5, 0x003f6fc8, 0x004573cf, 0x00436cc6, 0x003961b6, 0x002f54a2, 0x002a4e95, 0x00284c8c,
- 0x001c3f79, 0x0022426f, 0x004d648c, 0x006b7b93, 0x0058596c, 0x003d3838, 0x00382e29, 0x00372e2b, 0x002a2626, 0x00232020, 0x001e1d1f, 0x00171719, 0x00151417, 0x0019191a, 0x00272829, 0x00313332,
- 0x00433e36, 0x004c4841, 0x004c4b49, 0x004c4b4f, 0x004f4f5b, 0x0053535e, 0x0056555f, 0x0058575c, 0x005c5356, 0x00554e4a, 0x00534643, 0x004a3834, 0x003e2e28, 0x00443831, 0x0059524b, 0x0086867e,
- 0x00e3e3dc, 0x00fafaf5, 0x00fdfdfb, 0x00fcfbfa, 0x00fffefe, 0x00eaf2f0, 0x006f7c8a, 0x000e1631, 0x00151c4c, 0x00131c52, 0x00131c5b, 0x000c1757, 0x00091556, 0x00122064, 0x0019286e, 0x0016246b,
- 0x00142682, 0x001e338e, 0x003045a1, 0x002d449e, 0x001e378f, 0x001c3588, 0x001d3485, 0x00223b88, 0x00283f8d, 0x003d529e, 0x006579c2, 0x006578b7, 0x00293873, 0x00010b3d, 0x00050937, 0x00050435,
- 0x0011134a, 0x00141c5b, 0x00242e7b, 0x002e3f97, 0x004257be, 0x004566bf, 0x004162b2, 0x00324b92, 0x0019205e, 0x00070a40, 0x0004073a, 0x00020533, 0x0005052b, 0x0005031f, 0x00010213, 0x0003040a,
- 0x00040011, 0x00010013, 0x00090821, 0x000b0b27, 0x000c0d30, 0x000e1033, 0x00121537, 0x00111638, 0x00151938, 0x00161c38, 0x0012152c, 0x00111318, 0x00111216, 0x00161413, 0x00353534, 0x005a5c55,
- 0x006a6a61, 0x006b6d63, 0x006e6f69, 0x006d726d, 0x00606161, 0x0047423f, 0x00433836, 0x004b4443, 0x00595555, 0x00626262, 0x006f7070, 0x007a7f7f, 0x00898e8d, 0x008f9795, 0x00979d9a, 0x009ea3a1,
- 0x00acb2af, 0x00aeb5b0, 0x00b5bab5, 0x00bcbfba, 0x00c4c6c2, 0x00c8c8c7, 0x00cbc9cd, 0x00cdc8d1, 0x00d5ccd5, 0x00d9d0dc, 0x00d9d7e0, 0x00d8dee0, 0x00dce3e4, 0x00e0e5e7, 0x00e1e6e8, 0x00e1e6e9,
- 0x00e5e8ea, 0x00e7e9e6, 0x00eaece8, 0x00ecefeb, 0x00eef3eb, 0x00f1f6e7, 0x00f5f8eb, 0x00f9f9f4, 0x00fcfdfe, 0x00fcfcfc, 0x00fcfdfb, 0x00fbfffd, 0x00fcffff, 0x00fdfefd, 0x00fdfff7, 0x00fdfff3,
- 0x00fefffe, 0x00fbfdfc, 0x00fcfefd, 0x00fbfffd, 0x00fbfffd, 0x00fafefb, 0x00fcfffe, 0x00fcfffe, 0x00fffeff, 0x00fffdfc, 0x00fefdfa, 0x00fafdfb, 0x00f8fdf2, 0x00fafef2, 0x00f9fff3, 0x00fbfff6,
- 0x00fbfdff, 0x00fcfcfe, 0x00fdfcff, 0x00fefbfc, 0x00fefdfd, 0x00fbfcf8, 0x00fbfdf6, 0x00fcfcf4, 0x00fffcf9, 0x00fefcf9, 0x00fdfcf9, 0x00fcfefb, 0x00fcfdfa, 0x00fdfefa, 0x00fdfef9, 0x00fffdf8,
- 0x00fefbfe, 0x00fefcfd, 0x00fffefe, 0x00fdfefe, 0x00fafefb, 0x00f9fefa, 0x00f9fef8, 0x00fbfff5, 0x00fffdf8, 0x00fbfef6, 0x00fdfef4, 0x00f9fdf1, 0x00fefff7, 0x00fdfffa, 0x00fefcfb, 0x00fbfefc,
- 0x00fafefe, 0x00fafffe, 0x00fdfefe, 0x00fcfffd, 0x00fefcfc, 0x00fafbf7, 0x00fafdf8, 0x00f8fefd, 0x00f6fefe, 0x00f5fcfc, 0x00f8fdfc, 0x00f9fcf7, 0x00fffdf6, 0x00fefbf5, 0x00fefafc, 0x00faf8fc,
- 0x00fafdfa, 0x00fafcfb, 0x00d6d7d4, 0x006a6a66, 0x001b1815, 0x001e1815, 0x002c2320, 0x00332927, 0x003c302e, 0x00433733, 0x004c4033, 0x00554a33, 0x00585041, 0x005b5853, 0x006b6e70, 0x0079828f,
- 0x005a6a83, 0x00475779, 0x0054648d, 0x005f6fa0, 0x0049598b, 0x00334d82, 0x002f4f83, 0x00314e87, 0x0035558d, 0x00395a93, 0x003a5b94, 0x003b5d95, 0x003a5997, 0x003b5797, 0x003a5396, 0x00394f96,
- 0x00345789, 0x004466a9, 0x005072c5, 0x004b6fcb, 0x004f6db9, 0x005e719e, 0x00727886, 0x00837567, 0x00885b39, 0x00894d2f, 0x009a5d3d, 0x009b704a, 0x00ab7953, 0x00aa764f, 0x00a77046, 0x00a77045,
- 0x009f6c3e, 0x009c643a, 0x009e6842, 0x009a6940, 0x0090613b, 0x008d572b, 0x00895023, 0x0081471d, 0x007c4719, 0x0079491e, 0x006f461e, 0x00725130, 0x00b29d8c, 0x00efe0db, 0x00e4dadf, 0x00dfd8e4,
- 0x00e1e3f1, 0x00e6e7f0, 0x00edeaee, 0x00efe8e8, 0x00ede4e2, 0x00e5e0e4, 0x00e2e3ef, 0x00cad0e5, 0x006879a5, 0x0053689b, 0x009aa8d4, 0x00d7d3e5, 0x00eae7fc, 0x00e3e3f8, 0x00d8daf0, 0x00d9dbef,
- 0x00d8d8e8, 0x00c8c8d6, 0x00cac6d1, 0x00e1dbe2, 0x00f2e9ec, 0x00eef1f9, 0x00eff1fb, 0x00f4f1f4, 0x00fdefe9, 0x00fbefef, 0x00f6ebf3, 0x00f0ebfa, 0x00f0f2fe, 0x00f1f4f8, 0x00edf3ec, 0x00eff2df,
- 0x00e4f7e8, 0x00f1f3ef, 0x00ead4d7, 0x00dda6a7, 0x00e16c53, 0x00eb5625, 0x00f8591c, 0x00f65c1a, 0x00ce5c34, 0x00994530, 0x00622a27, 0x00342226, 0x002a233e, 0x00292f54, 0x004d547d, 0x007b8bab,
- 0x00d5e0e5, 0x00f9fcf6, 0x00fdfef3, 0x00fffef7, 0x00fafdfd, 0x00fcfafc, 0x00fcfbfc, 0x00fdfbfe, 0x00fefbfb, 0x00fcf9fa, 0x00fefbfc, 0x00fcfbf9, 0x00fdfefb, 0x00fbfdf8, 0x00fcfef8, 0x00fcfdf8,
- 0x00f7fffe, 0x00f8fefd, 0x00fafcfe, 0x00f8fdfd, 0x00fdfdfd, 0x00fbfefc, 0x00fcfafc, 0x00fcf8fd, 0x00fcfbff, 0x00fdf9fe, 0x00fdfbf7, 0x00f8fcee, 0x00fcfff2, 0x00f9fbf3, 0x00f9fbf5, 0x00fbfcf7,
- 0x00f7f9f5, 0x00fcfefc, 0x00fcfffe, 0x00fbfdff, 0x00fbfefb, 0x00fcfdfb, 0x00fafef8, 0x00fafff9, 0x00fcfffb, 0x00fcfefb, 0x00fafffa, 0x00fafffc, 0x00fafefd, 0x00f9fffe, 0x00f9fdfe, 0x00fbfdfd,
- 0x00fbfcff, 0x00fcfaff, 0x00fcf9fe, 0x00fdfafe, 0x00fdfcff, 0x00fcfcfe, 0x00fbfafd, 0x00fcfafd, 0x00fbfcfe, 0x00fefcff, 0x00fefdff, 0x00fbfdfd, 0x00fafcfd, 0x00fbfdfe, 0x00fcfefe, 0x00fcfdfc,
- 0x00fbfcfb, 0x00fdfcfd, 0x00fcfefe, 0x00fcfeff, 0x00fbfdfd, 0x00fcfdfd, 0x00fcfdfc, 0x00fefcfe, 0x00fdfcfe, 0x00fcfdfe, 0x00fefdff, 0x00fefdfe, 0x00fcfdfe, 0x00fcfdfd, 0x00fdfdfd, 0x00fcfdfc,
- 0x00fbf9fa, 0x00fbf9f9, 0x00fffcfe, 0x00fdfafd, 0x00fffbff, 0x00fdfbfe, 0x00fdfbfd, 0x00fcfbfc, 0x00fffdfc, 0x00fdfcfa, 0x00fdfbfa, 0x00fdfbf9, 0x00fdfbfd, 0x00fdfcfe, 0x00fefeff, 0x00fffdfe,
- 0x00fdfdf9, 0x00fffefe, 0x00fffefd, 0x00fdfdfa, 0x00fffdfa, 0x00fefcfd, 0x00fcfdfc, 0x00fffcfc, 0x00fdfbfd, 0x00fefcfd, 0x00fdfcfa, 0x00fdfdf9, 0x00fbfcf8, 0x00fcfcf8, 0x00fefcf7, 0x00fffbf8,
- 0x00fcfafc, 0x00fffbfd, 0x00fdfafc, 0x00fdfcfc, 0x00fcfcfc, 0x00fcfcfc, 0x00f9fcfb, 0x00fcfffe, 0x00f9fbfb, 0x00fcfcfd, 0x00fafdfb, 0x00f9fdfb, 0x00fafefa, 0x00f9fdfa, 0x00fcfefa, 0x00fcfffb,
- 0x00f9fdf6, 0x00fbfef8, 0x00fcfffa, 0x00fbfefa, 0x00f9fcfa, 0x00fdfffe, 0x00fcfdfd, 0x00fdfdfe, 0x00f7fcf6, 0x00b3b7b0, 0x0041473f, 0x00424c42, 0x0041484a, 0x00383d48, 0x0033384a, 0x00343951,
- 0x0046515f, 0x00504b52, 0x00423038, 0x00311b18, 0x00090403, 0x00040603, 0x00000703, 0x000b0f06, 0x00602e11, 0x00b66031, 0x00d37343, 0x00c57c49, 0x00c77c4e, 0x00c47b4f, 0x00c67e4e, 0x00c6804f,
- 0x00c07b47, 0x00be7842, 0x00be753f, 0x00bd743e, 0x00c1763b, 0x00c17c3a, 0x00c47e3c, 0x00c57e3c, 0x00c87f3d, 0x00cb8241, 0x00cd8645, 0x00cd8a4a, 0x00cb8d52, 0x00c38853, 0x00c38b57, 0x00d19a66,
- 0x00e39d64, 0x00d89966, 0x00cb9768, 0x00ac875e, 0x00594725, 0x00383313, 0x0034351b, 0x00313720, 0x002f341f, 0x002f331b, 0x0030311b, 0x0032321d, 0x0033331f, 0x0034331f, 0x00363522, 0x00383622,
- 0x00383521, 0x00363522, 0x00363523, 0x00363522, 0x00363522, 0x00343420, 0x00333320, 0x00343322, 0x00333224, 0x00323123, 0x00312e22, 0x00332d21, 0x003c3025, 0x00443326, 0x00493426, 0x004a3425,
- 0x00452b20, 0x0038241a, 0x0083726a, 0x00ebe6df, 0x00fefdfa, 0x00fafdfb, 0x00fcfffc, 0x00fcfffb, 0x00fcfcfb, 0x00fdfefa, 0x00f9fef8, 0x00f2fef2, 0x00fbfdf9, 0x00fafdf7, 0x00fbfcf9, 0x00fbfcf8,
- 0x00f1fbf6, 0x00f5fbf9, 0x00fafafa, 0x00fcf6f8, 0x00fbf6f6, 0x00f9fbf3, 0x00f9fff1, 0x00f9fef2, 0x00f8fdf3, 0x00fafef2, 0x00fafcf0, 0x00fbfef0, 0x00fdfff2, 0x00fcfff2, 0x00fdfef1, 0x00fefef1,
- 0x00f5fafb, 0x00fafafc, 0x00fdf9fe, 0x00fef8ff, 0x00fefafe, 0x00fcfdfb, 0x00f9fef8, 0x00f6fffa, 0x00f7fdf5, 0x00fafef6, 0x00fffffb, 0x00fcfdfc, 0x00fdfcfe, 0x00fdfcfe, 0x00fffdff, 0x00fefcfd,
- 0x00fcfbfc, 0x00fbfcfc, 0x00fdfcfc, 0x00fefefc, 0x00fefdfc, 0x00fcfefa, 0x00fffafd, 0x00fdfcfd, 0x00fbfaf9, 0x00fdfbfb, 0x00fefefc, 0x00f8fdfc, 0x00fafeff, 0x00f9fbfe, 0x00fbfcfe, 0x00fbfdff,
- 0x00fafafa, 0x00fcfbfc, 0x00fcfdfc, 0x00fbfdfd, 0x00f9fbfc, 0x00fcfefb, 0x00fefefb, 0x00fefefd, 0x00fbfbfd, 0x00fcfcfa, 0x00fcfcfd, 0x00fcfdf9, 0x00fdfdfa, 0x00fdfcfa, 0x00fdfefd, 0x00fcfefc,
- 0x00f8fcfc, 0x00f7fcfc, 0x00f5fcfe, 0x00f6feff, 0x00f5fdfd, 0x00f8fdfc, 0x00fafffd, 0x00fafffc, 0x00faffff, 0x00f7fefe, 0x00f7feff, 0x00f6fdfd, 0x00f8fdfd, 0x00f9fcfc, 0x00f9fcfc, 0x00fafdfd,
- 0x00f7fcfc, 0x00f8fdfa, 0x00fafefa, 0x00f9fcf8, 0x00f9fefa, 0x00fafbf9, 0x00fbfcf9, 0x00fcfefb, 0x00fafdff, 0x00f9fefd, 0x00f9fdfa, 0x00f8fff7, 0x00fefef8, 0x00fefef8, 0x00fffcf8, 0x00fefbf8,
- 0x00fffaf9, 0x00fff7f8, 0x00fff9fa, 0x00fefbfa, 0x00fefcf7, 0x00fcfaf6, 0x00fcfcf9, 0x00fffcfc, 0x00fefef8, 0x00fdfdf7, 0x00fffefa, 0x00fbfdf3, 0x00fffffe, 0x00fdfefb, 0x00fffcff, 0x00fefafd,
- 0x00fcfefc, 0x00fcfdfd, 0x00fdfefe, 0x00fefdfc, 0x00fffeff, 0x00fbfdfc, 0x00fefdfd, 0x00fcfdff, 0x00fdfefd, 0x00fffefd, 0x00fdfbf7, 0x00dad0c6, 0x007a7366, 0x007f7667, 0x009c9783, 0x008c8b73,
- 0x00838672, 0x009b9e92, 0x00b8bdbb, 0x00c9cdd2, 0x00d9dcec, 0x00e6e6ed, 0x00edeeed, 0x00f6f5f3, 0x00fcfbfb, 0x00fefdfe, 0x00fcfdfc, 0x00fcfefc, 0x00fefefc, 0x00fcfcfc, 0x00fcfcfc, 0x00fdfdfb,
- 0x00f8fffc, 0x00fafef8, 0x00fbfdfa, 0x00fdfdf5, 0x00fffdfe, 0x00fbfcfb, 0x00faf8fd, 0x00fcfafd, 0x00f9fcfb, 0x00f9fdf6, 0x00f3f9f4, 0x00eff5fa, 0x00d2dcea, 0x00b4bdd0, 0x0081889f, 0x0058637c,
- 0x00384055, 0x0033384b, 0x00282633, 0x00161318, 0x000f0b0d, 0x00050a07, 0x00060a06, 0x000a0b08, 0x000c120a, 0x00101710, 0x00171d17, 0x00212821, 0x00373e37, 0x00464c45, 0x005b615a, 0x006c736c,
- 0x008d8c89, 0x00a09f9d, 0x00b6b5b3, 0x00c2c1c0, 0x00d2d0d0, 0x00dad8d8, 0x00e5e2e3, 0x00f3f0f1, 0x00f6f6f7, 0x00f7f8f6, 0x00f7f9f7, 0x00f8fafa, 0x00fbfdfb, 0x00fcfdfd, 0x00fdfdfe, 0x00fdfdfc,
- 0x00fcfbff, 0x00fdfcff, 0x00fdfbfc, 0x00fcfcfc, 0x00fffcfd, 0x00fefcfd, 0x00fdfdfc, 0x00fdfefb, 0x00fefefd, 0x00fefcfd, 0x00fefdff, 0x00fdfbfd, 0x00fcfbfd, 0x00fdfefd, 0x00fefdfd, 0x00fefdfe,
- 0x00fafcfc, 0x00fbfdfd, 0x00fbfdfd, 0x00f9fcfb, 0x00fdfefe, 0x00fcfcfc, 0x00f9fbfb, 0x00f8fafa, 0x00f6f8f8, 0x00f3f5f4, 0x00ebf1f4, 0x00dbebf4, 0x00cfdef2, 0x00c6d7ef, 0x00b7c8e4, 0x00a6bad8,
- 0x0089a4c6, 0x007c97bf, 0x006e88b4, 0x006681ae, 0x005c79ab, 0x005271ac, 0x004464a7, 0x00395ca1, 0x003056a0, 0x002c5299, 0x0025488f, 0x000e2f72, 0x00091654, 0x00121a51, 0x00161747, 0x001f1b46,
- 0x00392139, 0x006b5872, 0x00a89cb5, 0x00b4aeca, 0x0097a4c5, 0x007b94be, 0x005074aa, 0x003d6bad, 0x003770c5, 0x00356fcd, 0x003164c6, 0x003353b0, 0x002d51ab, 0x002f55a7, 0x00305ca3, 0x003e69a9,
- 0x00315789, 0x0014335c, 0x001f365c, 0x0053657f, 0x00656c85, 0x00404347, 0x002b2b2c, 0x002e2c2f, 0x00262328, 0x0026242a, 0x00201e23, 0x001d1c1f, 0x001a191c, 0x00242424, 0x00363835, 0x00434643,
- 0x0056503d, 0x005f5b4f, 0x005d5a58, 0x005c5a64, 0x005d5c73, 0x005a5b70, 0x005b5c72, 0x005c5f6f, 0x005c5c62, 0x00575958, 0x00514f4f, 0x00474047, 0x003e373b, 0x003f3933, 0x003c372c, 0x006d6b5b,
- 0x00e5e5d4, 0x00fafaee, 0x00fefdf7, 0x00fcf9fc, 0x00fefcfe, 0x00dee6e4, 0x00657275, 0x00192235, 0x001e2853, 0x00192455, 0x000e1a51, 0x0007154c, 0x000a1a54, 0x000d1f60, 0x000d1f68, 0x00132473,
- 0x00182a81, 0x0025388d, 0x002c3f92, 0x00253888, 0x001f337f, 0x001f337c, 0x001d3078, 0x0021357b, 0x001d3077, 0x0024367f, 0x004459a1, 0x005d76bd, 0x003f538e, 0x00101b4d, 0x00040832, 0x0008092e,
- 0x00050c2f, 0x000a1544, 0x00172360, 0x001f3582, 0x00344ba6, 0x003c55ad, 0x00374b9c, 0x00233780, 0x00081b57, 0x00010f49, 0x0008134c, 0x000b134a, 0x000f1140, 0x000b0a2b, 0x00030318, 0x0005040c,
- 0x0000010f, 0x00000317, 0x00080c2b, 0x000b1139, 0x000c1245, 0x000c1245, 0x00111748, 0x00111949, 0x001d2550, 0x00252e54, 0x001b2647, 0x000e1625, 0x00000913, 0x00010302, 0x00252b26, 0x00696d60,
- 0x00787c6a, 0x00797a6c, 0x0073766d, 0x00767974, 0x005a605f, 0x003a3531, 0x00332c25, 0x00433936, 0x00564d49, 0x005d5954, 0x0066635e, 0x00636661, 0x00666864, 0x00606964, 0x005f6763, 0x00626a67,
- 0x00646259, 0x0067635b, 0x0067615c, 0x0065615c, 0x0062605c, 0x00656461, 0x00686867, 0x006b6d6d, 0x00717272, 0x0075767b, 0x0075787f, 0x00757a81, 0x0073767f, 0x0073787f, 0x0071787c, 0x0072787d,
- 0x00777f81, 0x007a8182, 0x0083888b, 0x00899194, 0x00909a99, 0x0099a1a0, 0x00a1a6a7, 0x00a8acad, 0x00b0b5b7, 0x00b6b9bb, 0x00bec2c2, 0x00c3caca, 0x00c8cfd1, 0x00cfd3d7, 0x00d4d8db, 0x00d6dcdc,
- 0x00dadbd7, 0x00dedfdc, 0x00e2e4e2, 0x00e5e9e6, 0x00edeeeb, 0x00edeeeb, 0x00eef0ee, 0x00f2f4f2, 0x00f7f9f6, 0x00f8fcfa, 0x00fafcfc, 0x00f8faf8, 0x00f8fbf8, 0x00f8fbfa, 0x00f7fdfc, 0x00f8fdfb,
- 0x00f9fcfa, 0x00fbfdfb, 0x00fbfdfc, 0x00fcfdfd, 0x00fafef9, 0x00f9fcfb, 0x00fafefe, 0x00fafefe, 0x00fcfeff, 0x00fdfeff, 0x00fbfefe, 0x00fbfffd, 0x00fbfefc, 0x00fcfffd, 0x00fdfefd, 0x00fefdfe,
- 0x00fefefd, 0x00fefefd, 0x00fffeff, 0x00fdfdfd, 0x00fdfefc, 0x00fbfdfb, 0x00fbfcfd, 0x00fbfcfd, 0x00fefefc, 0x00fefefd, 0x00fbfefc, 0x00fbfffb, 0x00fafefb, 0x00fcfefc, 0x00fcfdfb, 0x00fcfdf9,
- 0x00f9fcf9, 0x00fcfcfb, 0x00fefdfd, 0x00fffffb, 0x00fdfefc, 0x00fdfcfa, 0x00fdfcfc, 0x00fbfcfb, 0x00fef9fb, 0x00fdf9fb, 0x00fdfaf9, 0x00fbfaf8, 0x00fefdf9, 0x00fbfcf9, 0x00fcfffe, 0x00f4faf7,
- 0x00fdfffe, 0x00fdfffe, 0x00dde0dd, 0x0071736f, 0x000e0f0b, 0x00100e0a, 0x00191510, 0x001f1915, 0x00271c19, 0x002b1f1b, 0x0034291e, 0x00392f1a, 0x0041382d, 0x00423f3a, 0x004e5051, 0x00585f69,
- 0x00576179, 0x0045506b, 0x00535e7e, 0x00697596, 0x00515b81, 0x0031446f, 0x002e4676, 0x00354d7e, 0x00395283, 0x00395486, 0x00365485, 0x0037578a, 0x00385794, 0x00375595, 0x00335193, 0x00335093,
- 0x003a5c94, 0x004c6fb5, 0x005175ca, 0x004870ca, 0x004d6ebb, 0x005f77a6, 0x00697285, 0x00796e67, 0x006d442a, 0x0061290c, 0x00733a18, 0x007f5029, 0x0096623c, 0x0098623c, 0x00976039, 0x009f683e,
- 0x00905b33, 0x00895430, 0x007d4c29, 0x007b4d2b, 0x00673a1a, 0x005d2d0b, 0x006a3a14, 0x006e3f19, 0x006a3d19, 0x00673f1c, 0x00644321, 0x007f6447, 0x00cbb8ab, 0x00efe1de, 0x00e9dee4, 0x00e1dae5,
- 0x00e5e3f4, 0x00e9e8f3, 0x00eeebef, 0x00eee7e7, 0x00e9e0de, 0x00e6e0e5, 0x00e2e3f0, 0x00d6dbf2, 0x00838cbe, 0x0044568c, 0x005b6899, 0x00adabc4, 0x00ecebfe, 0x00d3d7ec, 0x00a0a4be, 0x00a4a9c0,
- 0x00cdd0e4, 0x00cccede, 0x00bbbac7, 0x00d2ced6, 0x00ede6ea, 0x00f2f1f8, 0x00f0f4f9, 0x00f1f3ef, 0x00f5f4ee, 0x00f1f4f3, 0x00f0f6f9, 0x00ecf3fe, 0x00ebf0fd, 0x00ecf2f7, 0x00f1f4f1, 0x00f8f7e7,
- 0x00f8e9e5, 0x00f1c7b9, 0x00e08c77, 0x00de663f, 0x00f6541e, 0x00f76022, 0x00e65d26, 0x00b94d22, 0x00682d24, 0x0038131d, 0x00270f27, 0x00221330, 0x002a2a5a, 0x00424b83, 0x00636fa5, 0x008392c1,
- 0x00d8dfef, 0x00f7fafb, 0x00fffcfa, 0x00fdfdfb, 0x00fbfbff, 0x00fbfbff, 0x00fffcfe, 0x00fefaff, 0x00fefdff, 0x00fcfafe, 0x00fefbff, 0x00fdfdff, 0x00fafcff, 0x00fafeff, 0x00fafdfb, 0x00f7faf7,
- 0x00fbfffe, 0x00fbfffe, 0x00fcffff, 0x00fcffff, 0x00fdfdfe, 0x00fefdfd, 0x00fdfcfe, 0x00fbf9fe, 0x00fffcfd, 0x00fffcff, 0x00fffdfe, 0x00fdfffd, 0x00fdfdff, 0x00fdfdff, 0x00fcfefd, 0x00fbfffe,
- 0x00fdffff, 0x00ffffff, 0x00fcfdfc, 0x00fcfdfc, 0x00fdfffe, 0x00fdfefc, 0x00fcfdf9, 0x00fcfef9, 0x00fdfdfd, 0x00fffefe, 0x00fcfefd, 0x00fdfffe, 0x00fefeff, 0x00fcfdfe, 0x00fcfbfe, 0x00fdfdfe,
- 0x00fdfbff, 0x00fdfaff, 0x00fdfaff, 0x00fefcff, 0x00fffeff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00fefeff, 0x00fffcff, 0x00fefcff, 0x00fcfdfd, 0x00fcfdfe, 0x00fcfcfe, 0x00fcfcfd, 0x00fdfcfc,
- 0x00fdfefe, 0x00fefefe, 0x00fcfdfe, 0x00fbfcfd, 0x00fcfdfd, 0x00fffdff, 0x00fefdfe, 0x00fefbfd, 0x00fffeff, 0x00fffeff, 0x00fefdff, 0x00fcfcfe, 0x00fcfeff, 0x00fdffff, 0x00fbfeff, 0x00f8fcfe,
- 0x00fffefd, 0x00fefefd, 0x00fffefe, 0x00fdfdfd, 0x00fdfefc, 0x00fdfefc, 0x00fdfdfc, 0x00fffdfd, 0x00fffefd, 0x00fdfef9, 0x00fffdfb, 0x00fffbfe, 0x00fdfcff, 0x00fdfdfe, 0x00fdfefe, 0x00fcfefe,
- 0x00fdfcff, 0x00fefdfe, 0x00fefefe, 0x00fdfdff, 0x00fefdfe, 0x00fffbfe, 0x00fffbff, 0x00fcfeff, 0x00fffdff, 0x00fefdfe, 0x00fefdfc, 0x00fefdfa, 0x00fefdfc, 0x00fefdfc, 0x00fefefa, 0x00fefefb,
- 0x00fdfcfe, 0x00fefcfd, 0x00fffdff, 0x00feffff, 0x00fefcff, 0x00fffdff, 0x00fffdff, 0x00fffeff, 0x00fefeff, 0x00fefdff, 0x00fdfefe, 0x00fcfefe, 0x00fcfefd, 0x00fdfefd, 0x00fffffd, 0x00fdfffc,
- 0x00fbfdfb, 0x00f9fbf9, 0x00fafcfc, 0x00fbfcfd, 0x00fcfdff, 0x00fdfdfe, 0x00fdfcfc, 0x00fefdfd, 0x00fafefa, 0x00abafa9, 0x002d352c, 0x002b352b, 0x00343a3c, 0x002e333e, 0x002d3343, 0x004d5268,
- 0x005e89c8, 0x007d9dbd, 0x0088989b, 0x006a6d51, 0x003f361b, 0x0023190e, 0x00130105, 0x003f1d25, 0x00935036, 0x00c26b37, 0x00d1773c, 0x00c57c4a, 0x00c47d4d, 0x00c67f4e, 0x00c98050, 0x00c78050,
- 0x00be7746, 0x00ba733f, 0x00b67139, 0x00b97137, 0x00bc753a, 0x00c07839, 0x00c17b3a, 0x00c67b3e, 0x00cc8241, 0x00cf8544, 0x00d08947, 0x00d49050, 0x00d09057, 0x00c48953, 0x00c58c58, 0x00cb9461,
- 0x00d18659, 0x00cc8b5f, 0x00c58e67, 0x00b28c66, 0x006c5b3f, 0x003e381c, 0x0032341d, 0x0030371e, 0x002f351f, 0x002e341b, 0x002f311a, 0x0032301d, 0x0034321e, 0x0034331e, 0x00363521, 0x00373521,
- 0x00373523, 0x00353523, 0x00363522, 0x00383522, 0x00373422, 0x00353421, 0x0035341f, 0x00353320, 0x00353324, 0x00343224, 0x00353226, 0x003a3429, 0x0043372b, 0x0049382b, 0x004a3528, 0x00493124,
- 0x00452e23, 0x003a251b, 0x0083726a, 0x00ebe6df, 0x00fffdfc, 0x00fbfbfc, 0x00fafdfb, 0x00fbfefb, 0x00fefffd, 0x00fefefb, 0x00fefffe, 0x00fcfffd, 0x00fdfdfe, 0x00fefeff, 0x00feffff, 0x00fbfdfe,
- 0x00f6feff, 0x00f7fffe, 0x00f9fefe, 0x00fbfdfd, 0x00fefefd, 0x00fffdfe, 0x00fffaff, 0x00fff8ff, 0x00fef7fe, 0x00fff8fe, 0x00fff8fe, 0x00fffafe, 0x00fffafe, 0x00fefafd, 0x00fef9ff, 0x00fef9ff,
- 0x00f0fcfb, 0x00f6fcfb, 0x00fefffe, 0x00fdfafd, 0x00fffcff, 0x00fdfdfd, 0x00fafdfd, 0x00f5fbfc, 0x00fafbfd, 0x00fefbfc, 0x00fefdfe, 0x00fbfefb, 0x00fefdff, 0x00fffdfe, 0x00fcfdff, 0x00fcfbfe,
- 0x00fffdff, 0x00fcfcfc, 0x00fdfcff, 0x00fbfcf9, 0x00fefefb, 0x00fdfdfd, 0x00fffefe, 0x00fefefe, 0x00fcfefb, 0x00fbfcfc, 0x00fcfdfb, 0x00fdffff, 0x00fbfffd, 0x00fcfefd, 0x00fcfdff, 0x00fbfeff,
- 0x00fefdfe, 0x00fefdfc, 0x00fffefc, 0x00fdfdfc, 0x00fffefe, 0x00fdfcfa, 0x00fcfafa, 0x00fefbfc, 0x00fefcfe, 0x00fffefd, 0x00fefffd, 0x00fffffe, 0x00fefefc, 0x00fffffe, 0x00fcfffc, 0x00fcfffe,
- 0x00fdfefd, 0x00fdfefb, 0x00fefdff, 0x00fcfeff, 0x00faffff, 0x00fcfefb, 0x00fefdfe, 0x00ffffff, 0x00fdffff, 0x00fcfdfd, 0x00fbfeff, 0x00fcffff, 0x00feffff, 0x00feffff, 0x00fcfffe, 0x00fcfdfd,
- 0x00fbfdfc, 0x00fcfefd, 0x00fbfdfa, 0x00fcfef9, 0x00fcfffb, 0x00fefefc, 0x00fdfdfb, 0x00fbfefc, 0x00fffefe, 0x00fefefd, 0x00fdfefb, 0x00fcfef9, 0x00fffffa, 0x00fffefb, 0x00fffdfb, 0x00fefcfc,
- 0x00fffcfd, 0x00fffbfd, 0x00fffdff, 0x00fdfdfd, 0x00fffeff, 0x00fbfcfc, 0x00fbfdff, 0x00fbfefe, 0x00fffefe, 0x00fdfffa, 0x00fdfffb, 0x00fcfbf6, 0x00fdfcfa, 0x00fffdff, 0x00fefcff, 0x00fefdff,
- 0x00fcfdfd, 0x00fdfcfe, 0x00fcfdfd, 0x00fffdfc, 0x00ffffff, 0x00fefcfd, 0x00fefefe, 0x00fdfdfe, 0x00fbfbfc, 0x00fbfafa, 0x00fdf8f6, 0x00e8dcd6, 0x00b5aea4, 0x00c1baab, 0x00ded9c7, 0x00d9d8c3,
- 0x00e4e4d8, 0x00ecece2, 0x00f5f6f4, 0x00f7fafe, 0x00f9fdfd, 0x00fdfdfa, 0x00fdfdfc, 0x00fdfeff, 0x00fefdfd, 0x00fcfbfb, 0x00fefdff, 0x00fdfdff, 0x00fdfcfc, 0x00fdfcfa, 0x00fbfcfb, 0x00fbfdfc,
- 0x00f6fdfc, 0x00f8fef8, 0x00fafef6, 0x00fefff8, 0x00fffff8, 0x00fcfbfe, 0x00f0effb, 0x00efeffd, 0x00e0e6f0, 0x00d7e0e8, 0x00c1cadc, 0x00adb4d5, 0x00868db4, 0x00636d94, 0x00373d69, 0x00202654,
- 0x0022274c, 0x00383a5b, 0x00222439, 0x0004060f, 0x00040207, 0x00040908, 0x00000702, 0x00040500, 0x00040904, 0x00030804, 0x00050705, 0x00030603, 0x00070a06, 0x00040903, 0x00060b07, 0x000c100d,
- 0x00161615, 0x001d1d1b, 0x00272524, 0x002f2d2c, 0x00444141, 0x00565454, 0x0071706f, 0x008a8a89, 0x009f9d9d, 0x00a9a8a6, 0x00b5b4b4, 0x00c1c0c1, 0x00d4d4d5, 0x00dfe0df, 0x00e8e9e8, 0x00f1f3f1,
- 0x00f6f6f8, 0x00fdfdfc, 0x00ffffff, 0x00fcfcff, 0x00fffbff, 0x00fefcfd, 0x00fefefd, 0x00fffefc, 0x00fffeff, 0x00fffefe, 0x00fdfeff, 0x00fdfcfe, 0x00fdfafc, 0x00fdfbfc, 0x00fcf9fc, 0x00fcfbfc,
- 0x00fafdfe, 0x00f9fcfc, 0x00fafcfd, 0x00fafbfd, 0x00fcfcff, 0x00fbfcff, 0x00fbfeff, 0x00fcffff, 0x00fbfeff, 0x00fcfbff, 0x00fbfbff, 0x00f9fbff, 0x00f6fbfe, 0x00fafdff, 0x00f5fcfe, 0x00eff7ff,
- 0x00e6f0fc, 0x00e0edfa, 0x00dae8f7, 0x00d1dff1, 0x00c6d6ec, 0x00b8c9e7, 0x00a7bade, 0x0099b0d6, 0x00849ccb, 0x00758dbc, 0x00647ca9, 0x004e628c, 0x0042486d, 0x00414160, 0x00332e47, 0x0030273e,
- 0x004f2a3c, 0x007b5e6f, 0x00cbb5c3, 0x00efe2ef, 0x00eceefe, 0x00d5e2f9, 0x0098accf, 0x005673a1, 0x00365899, 0x002a559f, 0x001c4290, 0x00213e85, 0x002b4891, 0x002f539a, 0x0023488c, 0x001e4383,
- 0x0014386d, 0x0015325f, 0x00475e81, 0x0072879f, 0x005e697e, 0x003b4246, 0x002f3131, 0x002a2b2d, 0x00252229, 0x0029272e, 0x001d1d20, 0x001d1d1d, 0x0021211f, 0x002e2f29, 0x00484a40, 0x0051554a,
- 0x006a634a, 0x00726d5c, 0x006f6e66, 0x006d6e72, 0x006c6d7f, 0x0065667a, 0x0062647b, 0x00616578, 0x005f5e6d, 0x0059585f, 0x00555256, 0x004a454c, 0x00413d3f, 0x00413d36, 0x00423e33, 0x007b7867,
- 0x00f2f0e5, 0x00fdfbf2, 0x00fffdf7, 0x00fdfafb, 0x00fffdff, 0x00dce0e0, 0x006f787c, 0x00474f61, 0x005a6283, 0x00515a7f, 0x00333d66, 0x00142049, 0x00000d3d, 0x00091852, 0x00122263, 0x0014226d,
- 0x00203083, 0x00223283, 0x001c2d7c, 0x00122571, 0x00172975, 0x001b2d78, 0x001c2e78, 0x001f3179, 0x00192775, 0x0013226c, 0x00283b84, 0x004b63ac, 0x005163a3, 0x00222e63, 0x00020736, 0x0001082e,
- 0x00040931, 0x00060d3c, 0x000d1852, 0x0015276b, 0x00213787, 0x00253685, 0x001c2d75, 0x000d1f5f, 0x0002124a, 0x0009154e, 0x00171f5a, 0x001c215c, 0x001a1a52, 0x0010123c, 0x00020524, 0x00010118,
- 0x00010419, 0x000e142c, 0x00222849, 0x00222750, 0x001e2456, 0x001f255a, 0x00272d62, 0x0030396c, 0x00454d77, 0x00475179, 0x00384467, 0x001a2540, 0x0001081b, 0x0000020e, 0x00383e41, 0x009c9e9d,
- 0x00b4b1af, 0x00b0adaa, 0x00a6a5a3, 0x00a5a5a6, 0x0095959a, 0x0082827f, 0x0083877c, 0x008c9188, 0x0093948e, 0x00949690, 0x00959592, 0x0092908f, 0x00908c8d, 0x008b8887, 0x00888483, 0x00878281,
- 0x007f8080, 0x007d7e7e, 0x007a7c7c, 0x00797c7c, 0x007b7d7e, 0x00797b7e, 0x006e7176, 0x0062676d, 0x00595e66, 0x004b5158, 0x00374048, 0x0028333c, 0x001c2631, 0x0016202a, 0x00142029, 0x0018232d,
- 0x00172528, 0x0019252b, 0x001e292e, 0x00212d2e, 0x00253132, 0x00283236, 0x002b3339, 0x002e363a, 0x00303940, 0x00323b40, 0x00353e41, 0x00374143, 0x003b4548, 0x00434b4f, 0x00485155, 0x004a5458,
- 0x00606161, 0x00666968, 0x00707674, 0x007b8280, 0x00898c8c, 0x008f9292, 0x00969c9b, 0x009da3a2, 0x00abadad, 0x00b1b2b2, 0x00b6b7ba, 0x00b7bbb9, 0x00bcbfc2, 0x00c2c5c4, 0x00c9cacb, 0x00cbd0ce,
- 0x00d2d4d5, 0x00d6d9d9, 0x00dbdfdf, 0x00dce0e1, 0x00e1e6e5, 0x00e3e6e5, 0x00e3e8e6, 0x00e5eae9, 0x00ebeef0, 0x00eef2f2, 0x00f0f3f2, 0x00f2f4f4, 0x00f5f6f7, 0x00f9fafa, 0x00fbfdfc, 0x00fcfffc,
- 0x00fffefd, 0x00fffffd, 0x00feffff, 0x00feffff, 0x00fdfffe, 0x00fdfefd, 0x00fdfdfe, 0x00fdfdfe, 0x00fcfdfe, 0x00fafdfc, 0x00fafefd, 0x00f9fffb, 0x00fafefa, 0x00fbfffc, 0x00fbfcfb, 0x00fbfcfa,
- 0x00fdfefc, 0x00fefefc, 0x00fdfcfc, 0x00fcfcf9, 0x00fdfcfa, 0x00fdfdfc, 0x00fdfdff, 0x00fcfcfe, 0x00fdfafd, 0x00fdfbfb, 0x00fefbfb, 0x00fdfefd, 0x00fffeff, 0x00fcfdfb, 0x00fbfefc, 0x00f2f9f2,
- 0x00fdfefe, 0x00fcfefe, 0x00e5e8e5, 0x007e817d, 0x000c0e0b, 0x000b0a05, 0x0013110a, 0x0017120d, 0x001f1311, 0x0020140f, 0x0025190f, 0x00261a0c, 0x002e251c, 0x00302d26, 0x00383934, 0x003c4244,
- 0x00484758, 0x00414252, 0x0055596a, 0x00707887, 0x0054586c, 0x00303855, 0x00364368, 0x003e4d71, 0x003b4972, 0x003c4d76, 0x003e537d, 0x00364f7c, 0x0034508a, 0x002f4e8c, 0x002e4f8e, 0x00305394,
- 0x004767a8, 0x005175be, 0x005278cc, 0x004972ca, 0x004c72c1, 0x005c77af, 0x0062708c, 0x006e6a6b, 0x00603a29, 0x00501d08, 0x00642e11, 0x006d3715, 0x007f4622, 0x00804824, 0x007a4620, 0x007f4721,
- 0x00764122, 0x00723e23, 0x006a3c22, 0x006b4027, 0x004b2710, 0x003a1601, 0x00533218, 0x00644427, 0x00614128, 0x005d3f27, 0x005b412b, 0x008b7563, 0x00e0d0ca, 0x00eadede, 0x00e0d9dc, 0x00e0dce3,
- 0x00e6e2f5, 0x00e8e5f3, 0x00edebf1, 0x00ede9ea, 0x00e8e2e0, 0x00e7e2e7, 0x00dfdfeb, 0x00dce0f5, 0x009ea7d5, 0x005e6aa0, 0x00566194, 0x009b9ac0, 0x00e9ecfd, 0x00b0b3d2, 0x00858baa, 0x008a92ad,
- 0x00a5a9c4, 0x00d1d3e7, 0x00c4c6d2, 0x00c6c6ce, 0x00d7d8da, 0x00eae8ec, 0x00f1f4f3, 0x00eff6ef, 0x00ebf7f1, 0x00e7f7f5, 0x00e7f8fa, 0x00e7f2fe, 0x00efedfb, 0x00f7f1f5, 0x00faeae6, 0x00f7decc,
- 0x00faad9b, 0x00ef7f5c, 0x00e35929, 0x00f65719, 0x00fa5f20, 0x00dc6537, 0x00934224, 0x004d2217, 0x0020122a, 0x00181433, 0x00201f48, 0x002c265d, 0x004b4f99, 0x005a67b4, 0x006172ba, 0x00778bc8,
- 0x00d8ddf6, 0x00f9fcff, 0x00fcfbfe, 0x00fefdfd, 0x00fcfcfd, 0x00fbfafc, 0x00fbfafc, 0x00f9fbfc, 0x00fdfbff, 0x00fdfdff, 0x00fafdfe, 0x00fafdfd, 0x00f9fcfe, 0x00f9fdfe, 0x00f7fefb, 0x00f5fef9,
- 0x00fefdfe, 0x00fefefe, 0x00fcfefe, 0x00fefeff, 0x00feffff, 0x00fffffe, 0x00fbfdfd, 0x00fafcfe, 0x00fefcfe, 0x00fbfdff, 0x00fbfefe, 0x00fcfdfc, 0x00fbfbfe, 0x00fcfdfe, 0x00fcfffc, 0x00f9fefb,
- 0x00fffeff, 0x00fdfffb, 0x00f9fef3, 0x00f9fcf3, 0x00f9fef2, 0x00fcfef5, 0x00fefef6, 0x00fdfef4, 0x00fffefc, 0x00fffefc, 0x00fefef9, 0x00fefffa, 0x00fffefb, 0x00fefefc, 0x00fefefd, 0x00fefefd,
- 0x00fffdfc, 0x00fffdfc, 0x00fefdfc, 0x00fefdfb, 0x00fefefb, 0x00fefffc, 0x00fefefb, 0x00fdfdfa, 0x00fffefe, 0x00fffdfc, 0x00fefdfb, 0x00fbfdf9, 0x00fbfdf9, 0x00fcfef9, 0x00fbfef8, 0x00fcfdf7,
- 0x00fffffb, 0x00fdfffa, 0x00fdfef9, 0x00fbfdf7, 0x00fdfef4, 0x00fcfdfb, 0x00fdfdfd, 0x00fefffb, 0x00fefffe, 0x00ffffff, 0x00fdfdfd, 0x00fcfcfa, 0x00fffefb, 0x00fffefb, 0x00fcfdfb, 0x00fdfdfc,
- 0x00fffdfc, 0x00fefffc, 0x00fbfcf8, 0x00fbfef7, 0x00fafef5, 0x00fcfef5, 0x00fcfef6, 0x00fcfef6, 0x00fffefa, 0x00fefef8, 0x00fdfdf7, 0x00fcfef6, 0x00fefff9, 0x00fefff9, 0x00fcfffa, 0x00fafff9,
- 0x00fffeff, 0x00fffdff, 0x00fdffff, 0x00fefffe, 0x00fdfdfe, 0x00fefcfc, 0x00fffefd, 0x00fdfefd, 0x00ffffff, 0x00fffdff, 0x00fdfdfd, 0x00fdfef9, 0x00fffffb, 0x00fffffc, 0x00fffef8, 0x00fffff7,
- 0x00fffeff, 0x00ffffff, 0x00fffdfe, 0x00fefffd, 0x00fffefd, 0x00fdfdfc, 0x00fdfcfb, 0x00fcfdfc, 0x00fffbff, 0x00fffdff, 0x00fefcfe, 0x00fbfdfe, 0x00fbfefb, 0x00fcfcfa, 0x00fdfef8, 0x00fefef9,
- 0x00fefdfd, 0x00ffffff, 0x00fcfdff, 0x00fbfeff, 0x00fafbfe, 0x00fbfbfd, 0x00fcfdfe, 0x00fbfdfc, 0x00fcfbfb, 0x00a5a6a3, 0x001f241d, 0x00212920, 0x002d3235, 0x00252b35, 0x002d3541, 0x005b6174,
- 0x005899ec, 0x006ea8dc, 0x0077a4bb, 0x006f8b85, 0x0087836b, 0x0078604c, 0x004e2412, 0x00763b28, 0x00b56343, 0x00c77443, 0x00c87842, 0x00c77c4e, 0x00c47e4e, 0x00c47d4e, 0x00c4804d, 0x00c67f4a,
- 0x00c07544, 0x00b9703e, 0x00b16a34, 0x00b36b36, 0x00b46d36, 0x00bb7239, 0x00bd7938, 0x00c57f3f, 0x00d08547, 0x00d58b4c, 0x00d58c4c, 0x00d69052, 0x00d6945b, 0x00cb8d56, 0x00c38851, 0x00bc824d,
- 0x00b56c4d, 0x00a05f44, 0x00794527, 0x00644128, 0x004b3d27, 0x00393521, 0x0031351e, 0x002f371f, 0x0030361f, 0x002f341a, 0x0030311a, 0x00312f1c, 0x0033311c, 0x0035341e, 0x00353420, 0x00363521,
- 0x00393524, 0x00363423, 0x00373522, 0x00393522, 0x00383423, 0x00353521, 0x0034361f, 0x0034351f, 0x00343425, 0x00353326, 0x003a382d, 0x00423e33, 0x004c4033, 0x004f3f31, 0x004e3b2c, 0x004c3527,
- 0x00472b23, 0x003c231c, 0x0083716a, 0x00ebe6df, 0x00fdfdfb, 0x00fbfcfc, 0x00f7fcf9, 0x00f8fcfa, 0x00fffcfa, 0x00fffcfb, 0x00fcfcfb, 0x00fcfbfe, 0x00fdfcfc, 0x00fffafc, 0x00fdfbfc, 0x00fcfbfa,
- 0x00fefdfe, 0x00fdfefc, 0x00fafefa, 0x00f7fdf7, 0x00f8fdf7, 0x00fbfbfa, 0x00fdfafc, 0x00fdf9fa, 0x00fffaff, 0x00fffbff, 0x00fcfaff, 0x00fbfcfe, 0x00f9fdfd, 0x00f7fdfd, 0x00f5fefe, 0x00f3fdff,
- 0x00f4fef6, 0x00f9fdf6, 0x00fafbf6, 0x00fcf9f7, 0x00fffbfc, 0x00fefbfd, 0x00fefafe, 0x00fbfbfd, 0x00fff9ff, 0x00fff9ff, 0x00fef8fd, 0x00fffeff, 0x00fffefd, 0x00fffefe, 0x00fbfefb, 0x00fdfffa,
- 0x00fff8ff, 0x00fffcff, 0x00fefdfd, 0x00fefffa, 0x00fdfdfa, 0x00fdfcfd, 0x00fafbfd, 0x00fbfcfa, 0x00fffeff, 0x00fdfffc, 0x00fdfffa, 0x00fbfff8, 0x00fdfffb, 0x00fefef9, 0x00fcfbfb, 0x00fafbf6,
- 0x00fffcfe, 0x00fefcfb, 0x00fcf8f9, 0x00fdfaf7, 0x00fefdfd, 0x00fcfdfc, 0x00fcfdf8, 0x00fffef7, 0x00fffcfc, 0x00fffeff, 0x00fffcfb, 0x00fefcfe, 0x00fffefc, 0x00fdfffd, 0x00fcfefa, 0x00fdfffb,
- 0x00fffcff, 0x00fffdfc, 0x00fffef9, 0x00fffcf9, 0x00fdfdf6, 0x00fefcf8, 0x00fcfbf9, 0x00fbfcfa, 0x00fffefe, 0x00fffdfd, 0x00fdfcfb, 0x00fdfefc, 0x00fdfcfc, 0x00fcfefe, 0x00f9fffc, 0x00fbfefc,
- 0x00fffcfc, 0x00fffdfd, 0x00fefbfa, 0x00fefcf9, 0x00fcfdfa, 0x00fffcfb, 0x00fdfbf9, 0x00fcfcfa, 0x00fffdfe, 0x00fffffe, 0x00fefdfa, 0x00fdfaf7, 0x00fbfcf9, 0x00fefcfb, 0x00fdfcfc, 0x00fcfcfd,
- 0x00ffffff, 0x00fdffff, 0x00f5fdfe, 0x00f2fefc, 0x00f2fffe, 0x00f3fefb, 0x00f4fefc, 0x00f7fefb, 0x00fafdff, 0x00f9fdfe, 0x00f9fdfb, 0x00fcfcfa, 0x00fcfdfd, 0x00fefdff, 0x00fcfafb, 0x00fefcfe,
- 0x00fefeff, 0x00fffeff, 0x00fbfdfc, 0x00fbfbf8, 0x00fdfbfd, 0x00fbfcfc, 0x00f7f9f9, 0x00f6f8f6, 0x00f9f6f6, 0x00f5f5f4, 0x00f8f3f6, 0x00fbf1f3, 0x00f5ecea, 0x00f8f3eb, 0x00fbfcf0, 0x00fbfded,
- 0x00fffdf7, 0x00fffdf9, 0x00fbfdfa, 0x00f9fefc, 0x00f9fdfe, 0x00fefdff, 0x00fdfdfc, 0x00fcfcfb, 0x00fffbff, 0x00fffdff, 0x00fbfafb, 0x00fafafb, 0x00fcfcfb, 0x00fdfefe, 0x00fbfffa, 0x00fafffc,
- 0x00faf9fe, 0x00f4f5f5, 0x00ebede2, 0x00dce0d1, 0x00c8ccc4, 0x00b4b8bf, 0x00a5abc2, 0x00a7aed2, 0x00939ace, 0x00848cbd, 0x00646fa7, 0x0052589a, 0x00404a89, 0x00384484, 0x00343d81, 0x003d4788,
- 0x00565b96, 0x005a5e8c, 0x002b314c, 0x00080a17, 0x0006080b, 0x00080b06, 0x00040c03, 0x00040b03, 0x00060c07, 0x00060c05, 0x00050a02, 0x00040a02, 0x00040a03, 0x00000701, 0x00010601, 0x00010600,
- 0x00080606, 0x00060503, 0x00030301, 0x00020200, 0x00050502, 0x00090a07, 0x000d0e0b, 0x0011110f, 0x00181618, 0x00202120, 0x0032332f, 0x00434242, 0x00575758, 0x00666869, 0x007d7e7d, 0x0090908f,
- 0x00a7a5a9, 0x00b5b4b6, 0x00c1c1c1, 0x00c7c8c9, 0x00d7d6d6, 0x00e1e1e0, 0x00edefed, 0x00f5f6f5, 0x00fcf9fa, 0x00fdfbfa, 0x00fbfcfb, 0x00fbfcfb, 0x00fefdfd, 0x00fefdfe, 0x00fbfcfc, 0x00f9fdfb,
- 0x00fcfbff, 0x00fdfbff, 0x00fbfcfe, 0x00fbfefe, 0x00fcfefd, 0x00fbfffd, 0x00f9fefc, 0x00fbfefd, 0x00fffdff, 0x00fefdff, 0x00fcfdff, 0x00fdfafd, 0x00fbfafc, 0x00fbfbfa, 0x00fcfefb, 0x00fcfcfb,
- 0x00fffdff, 0x00fcffff, 0x00fbfefd, 0x00f9fdfd, 0x00f9fdfe, 0x00f6fafd, 0x00f1f5fc, 0x00edf5fd, 0x00e9f1fc, 0x00e0ebf8, 0x00d5e1ef, 0x00c4cedc, 0x00b7b9c3, 0x00b2abb1, 0x00a19597, 0x00978989,
- 0x009b797a, 0x00937576, 0x00b39c9b, 0x00ddc9c8, 0x00eee6e7, 0x00e5e6eb, 0x00c6cddc, 0x00818fa7, 0x0037466f, 0x00273e6c, 0x0029426e, 0x00395078, 0x00314a78, 0x001a366a, 0x0028467e, 0x002c4b87,
- 0x001a376f, 0x001d3466, 0x004f6486, 0x0093a8bc, 0x00717d8a, 0x0036383e, 0x002b2c2d, 0x002d2d2f, 0x00252229, 0x0029272d, 0x00212122, 0x0020211c, 0x00282921, 0x003a3c2e, 0x00525643, 0x005d624e,
- 0x00797154, 0x007c7863, 0x00797a6b, 0x00777a77, 0x00747782, 0x006b6e7e, 0x0065677d, 0x00616379, 0x005c5870, 0x00555065, 0x004f4956, 0x00473f47, 0x00453d3f, 0x0045423b, 0x004d4b41, 0x008f8d7f,
- 0x00fefbf0, 0x00fffef8, 0x00fefcf8, 0x00fdf9fb, 0x00fefbfe, 0x00d5d5d9, 0x0071757a, 0x00686f7a, 0x009da1b6, 0x00b3b9ce, 0x00a1aabd, 0x00677284, 0x001b2743, 0x00081540, 0x00142158, 0x0018236a,
- 0x001d2976, 0x0015206c, 0x000e1b66, 0x000f1d68, 0x00111e6b, 0x00162471, 0x001c2b76, 0x00202f78, 0x001a2577, 0x0011206e, 0x00192b78, 0x00304898, 0x004d5fa7, 0x002c3d78, 0x00041041, 0x00000830,
- 0x00060b35, 0x00070c3b, 0x00090f45, 0x000f1956, 0x00152468, 0x00142063, 0x00091651, 0x00010e42, 0x00060f42, 0x000f174e, 0x001b235e, 0x00212566, 0x001f2164, 0x00161b51, 0x00070c39, 0x00000126,
- 0x00060922, 0x00282f4a, 0x005a6284, 0x005c658d, 0x004b5585, 0x004a5386, 0x00545b90, 0x005e689a, 0x0067719e, 0x0057638c, 0x003e4c70, 0x00202a4c, 0x00050920, 0x00040517, 0x004f545c, 0x00bebcc2,
- 0x00e2dce3, 0x00ded7dc, 0x00d8d0d6, 0x00d7d1d8, 0x00d0cad5, 0x00c9cecc, 0x00c9d3c7, 0x00c7d1c5, 0x00c9cec9, 0x00c6c9c5, 0x00c4c5c3, 0x00c7c2c0, 0x00c5bec0, 0x00c1b8ba, 0x00bfb6b9, 0x00bdb2b5,
- 0x00b4bbc6, 0x00aeb9c1, 0x00a5b2b9, 0x009dabb0, 0x00929fa7, 0x00829098, 0x0066777f, 0x004e6168, 0x003d4c5a, 0x002c3b47, 0x001e2e3a, 0x001c2f3b, 0x00192c37, 0x00172833, 0x00142730, 0x00152c32,
- 0x001d2e36, 0x001e2f36, 0x001d2f34, 0x001b2f31, 0x001a2d30, 0x001a2b2f, 0x001a292f, 0x0017272d, 0x0018262e, 0x0015242c, 0x0014242b, 0x0014252b, 0x0016272c, 0x0016282c, 0x0015272b, 0x0014272a,
- 0x0024292f, 0x00252a2e, 0x00272c30, 0x00272e32, 0x002a3035, 0x00283034, 0x00293336, 0x002c3638, 0x00343841, 0x0031373d, 0x00333b3d, 0x003c4141, 0x00404749, 0x00474e4f, 0x00515354, 0x00535756,
- 0x00636467, 0x00696b6f, 0x00707476, 0x0075797b, 0x00767d7f, 0x007d8284, 0x00828886, 0x00868d8d, 0x00929698, 0x00989b9c, 0x009ca1a1, 0x00a6acac, 0x00afb2b4, 0x00b4b8bb, 0x00bbc2c3, 0x00c0c5c6,
- 0x00cbc9cf, 0x00cbcdcf, 0x00cdd1d3, 0x00d1d4d8, 0x00d8d9db, 0x00dbdcdd, 0x00dcdfe0, 0x00dee4e2, 0x00e9e7ee, 0x00eaecf0, 0x00edeff2, 0x00f1f0f4, 0x00f2f4f5, 0x00f6f7f7, 0x00f7f8f8, 0x00f5f9f7,
- 0x00fdf9fc, 0x00fcfafa, 0x00fafafc, 0x00f9fafa, 0x00fbfbfb, 0x00fafcfc, 0x00f7fcfd, 0x00f9fcfa, 0x00fffcff, 0x00fefcff, 0x00fffbfd, 0x00fffeff, 0x00fefdfc, 0x00fefefc, 0x00fbfef9, 0x00f2f9f1,
- 0x00f4fff7, 0x00f2fdf5, 0x00ecf2ef, 0x008e9290, 0x000e110b, 0x000d0d07, 0x00130e0b, 0x0017110c, 0x00120f09, 0x00161208, 0x001b150a, 0x001c1204, 0x001e140a, 0x001e1a14, 0x00242121, 0x00272428,
- 0x00212927, 0x00293031, 0x00616366, 0x0098989d, 0x0068676c, 0x00343449, 0x0032334f, 0x00393f58, 0x003e4e61, 0x003b4d65, 0x0038486a, 0x00334670, 0x002b497b, 0x00264580, 0x002b4c8f, 0x003758a0,
- 0x004771ab, 0x004874b8, 0x004b77c9, 0x004974cc, 0x004e76c4, 0x005877af, 0x00637399, 0x00646374, 0x0049321d, 0x00401d03, 0x00612f15, 0x006e3615, 0x006e3713, 0x00652e0a, 0x00652d0d, 0x006c3517,
- 0x00643616, 0x00552e0f, 0x005f3922, 0x00613e2b, 0x00402114, 0x002d1709, 0x00462f24, 0x00533b2f, 0x0046351d, 0x0043331d, 0x00473223, 0x00776359, 0x00d8cbc6, 0x00e5dbdb, 0x00dfd5dd, 0x00e0dae4,
- 0x00d8dce3, 0x00e2e4e8, 0x00efe9f0, 0x00f1e8ed, 0x00e7e4e2, 0x00e3e0e4, 0x00e4e1f3, 0x00e8eaff, 0x00a9b4dc, 0x006b7aa7, 0x005f6999, 0x007e7eae, 0x00b6b6e1, 0x009094bf, 0x00b2b6e1, 0x00adafd7,
- 0x00808ca1, 0x00cad2e3, 0x00dadae9, 0x00c8cad2, 0x00c9c9cf, 0x00dedce0, 0x00f0edee, 0x00f1f7f4, 0x00e1f7eb, 0x00e1f5ed, 0x00eaf6f5, 0x00f3f2f7, 0x00fbeaec, 0x00fedad2, 0x00f3b6ab, 0x00e19784,
- 0x00eb6a35, 0x00e2551c, 0x00f25d27, 0x00f56736, 0x00cb5a34, 0x00813724, 0x00401615, 0x001e1224, 0x000b1932, 0x00151e40, 0x002b3263, 0x003f4486, 0x005b6abb, 0x006173ca, 0x005b72c3, 0x007989ce,
- 0x00d1deee, 0x00f3fcf9, 0x00fcfbfe, 0x00fffdfd, 0x00fbfcff, 0x00fbfdfb, 0x00f0f1ef, 0x00e7e8e4, 0x00e0eade, 0x00e1e9df, 0x00dee6de, 0x00e0e8e0, 0x00e2ece1, 0x00e3eee2, 0x00e5f0e4, 0x00e6f0e6,
- 0x00e5e6da, 0x00e3e4d9, 0x00e8e8e1, 0x00e7e7e2, 0x00eae9e2, 0x00ebebe3, 0x00ecece6, 0x00ecece6, 0x00dfecd9, 0x00e4f0df, 0x00edf1ec, 0x00e8e7ec, 0x00e2e4e6, 0x00e7e9e9, 0x00ededed, 0x00e8e9e6,
- 0x00e2ebd5, 0x00e6eeda, 0x00f1f8e4, 0x00f0f6e1, 0x00e8f0d4, 0x00e6ead2, 0x00eae8d7, 0x00efebdd, 0x00eef4de, 0x00e9efdb, 0x00e8e8d9, 0x00e8e7da, 0x00e8e9dc, 0x00e9e8dc, 0x00ebe8de, 0x00eee9e1,
- 0x00e2ead4, 0x00e5ecd4, 0x00e7ecda, 0x00e6eadb, 0x00e5e8d7, 0x00e5e7d8, 0x00e8e9dd, 0x00e8eada, 0x00e1ebd4, 0x00e3ecd6, 0x00e7eedb, 0x00e7eed8, 0x00e8eed9, 0x00e8eed7, 0x00e9eedd, 0x00e8ebe0,
- 0x00e3edd8, 0x00e1ecd6, 0x00e6eddb, 0x00e7eed9, 0x00e8eeda, 0x00e9ecdc, 0x00eeeee4, 0x00ecefe4, 0x00e4ecda, 0x00e4eddb, 0x00eef1e4, 0x00f0f0e4, 0x00ecefe3, 0x00eaebdf, 0x00edeae1, 0x00edece3,
- 0x00e2efd8, 0x00e2eed8, 0x00e6eedb, 0x00e5edda, 0x00e5ecd8, 0x00e6ecd9, 0x00e6eddd, 0x00e6ecde, 0x00dcead3, 0x00ddebd8, 0x00e4ecda, 0x00ebedd8, 0x00e7ecd5, 0x00e9ecda, 0x00e9ebd9, 0x00ebeae0,
- 0x00e0ead8, 0x00e0e8da, 0x00e5e9e2, 0x00e6e8e4, 0x00e7e8e1, 0x00e6e6de, 0x00e8e9e2, 0x00e9e9e2, 0x00e2e7d6, 0x00e2e6d9, 0x00e4e8dc, 0x00e5e9de, 0x00e7ebdc, 0x00e6eadc, 0x00e7ebdc, 0x00e8eadf,
- 0x00e0ebd9, 0x00e2ebdb, 0x00e8ebdf, 0x00eaeae0, 0x00e9e9e0, 0x00eae8e1, 0x00ede8e2, 0x00efe8e3, 0x00eae8dc, 0x00eae7da, 0x00eae6de, 0x00e7eadd, 0x00e6e8dd, 0x00e6ebdb, 0x00e8eadd, 0x00e7eadc,
- 0x00dde9d1, 0x00dfe9d8, 0x00e9ece1, 0x00f6f7f1, 0x00f8fafd, 0x00fafafd, 0x00fffdff, 0x00fcfcff, 0x00f4fcf2, 0x009ea59c, 0x00131712, 0x00181e1b, 0x001e2427, 0x001c222c, 0x00434657, 0x0075768c,
- 0x005097d4, 0x005da0d3, 0x0070a5d8, 0x006992b5, 0x007b8489, 0x00988576, 0x009d7054, 0x00ac6741, 0x00ad672f, 0x00be753f, 0x00c4794d, 0x00c57e50, 0x00c27c4e, 0x00c47c4a, 0x00c57d4c, 0x00c67d4c,
- 0x00b77339, 0x00ad6e34, 0x00ad6731, 0x00ac6333, 0x00b06836, 0x00b77239, 0x00c0783e, 0x00c87e46, 0x00c78642, 0x00ce8a47, 0x00d38b4e, 0x00d89057, 0x00d5925a, 0x00cb8d58, 0x00c58857, 0x00b37747,
- 0x00753713, 0x004b1400, 0x003d0f02, 0x00441f10, 0x003b2e1a, 0x0036321f, 0x00373525, 0x00333725, 0x002a3419, 0x002a3214, 0x002e3015, 0x00312f1c, 0x0031311d, 0x00333220, 0x00373422, 0x00373522,
- 0x0032351e, 0x00343520, 0x00373523, 0x00373423, 0x00373521, 0x00363620, 0x00343622, 0x00333523, 0x002c321d, 0x00313523, 0x003b3c30, 0x00474337, 0x0052463c, 0x00554437, 0x00543d32, 0x0054372d,
- 0x00422b1d, 0x00372316, 0x00827169, 0x00ede7df, 0x00fdfdfc, 0x00fafcfb, 0x00fcffff, 0x00ffffff, 0x00f4f7ef, 0x00e7ebe0, 0x00e5e2e0, 0x00e8e0e5, 0x00ede5e8, 0x00eee3e4, 0x00f2e4e8, 0x00f9eaed,
- 0x00f2e8de, 0x00f3e3da, 0x00f3e3dc, 0x00f2e3dd, 0x00f1e9e0, 0x00fbe8dc, 0x00ffe8df, 0x00ffe8e2, 0x00f8ead4, 0x00f8e6d5, 0x00f6e4db, 0x00f8e6de, 0x00f4ebe1, 0x00f1efe1, 0x00f5f0e7, 0x00f5f1e9,
- 0x00eef0d5, 0x00f5f0d9, 0x00fcecdf, 0x00fbe6e0, 0x00fbece8, 0x00fcf2f2, 0x00fff4fa, 0x00f5eff5, 0x00e1e1e5, 0x00e3dee5, 0x00e8e5ed, 0x00e8e8ee, 0x00e9e8ea, 0x00e7e6e7, 0x00e5e3e8, 0x00e8e6e8,
- 0x00e1e9e3, 0x00e4e6e3, 0x00e7e4e8, 0x00e8e7eb, 0x00ebe9ef, 0x00eeeef4, 0x00f5f4fe, 0x00faf8ff, 0x00eef7f2, 0x00eaf0e9, 0x00e9e9e3, 0x00edebe6, 0x00eeede6, 0x00eeede7, 0x00f0ecea, 0x00eee9e8,
- 0x00e7e8e0, 0x00e7e5de, 0x00e9e5e2, 0x00eae6e4, 0x00ebe6e3, 0x00eae7e4, 0x00eceae8, 0x00eeebe9, 0x00ecece6, 0x00edeee6, 0x00f3f1ec, 0x00f1f2ee, 0x00f4f2ef, 0x00f3f2f0, 0x00f2edee, 0x00efeeec,
- 0x00e7ebe0, 0x00e6e7df, 0x00eae7e1, 0x00ece8e2, 0x00efe9e7, 0x00f0e9e8, 0x00f1eae8, 0x00f2eaea, 0x00ebeadf, 0x00ebe9e0, 0x00eee9e4, 0x00f1ecea, 0x00ecebea, 0x00e9eae9, 0x00e9eaeb, 0x00e8eaee,
- 0x00e7ebdf, 0x00e6e9e1, 0x00ebeae7, 0x00eae9e8, 0x00ebeaea, 0x00ecebea, 0x00eeecee, 0x00f1ecee, 0x00ebeee4, 0x00edeee5, 0x00f1f0ed, 0x00f3f1f1, 0x00f2f0ee, 0x00f1efef, 0x00f0ebf0, 0x00f0ebf0,
- 0x00e6ebeb, 0x00e0eced, 0x00e2f2f8, 0x00e1f3fb, 0x00ddf6fe, 0x00e3f3fc, 0x00e8f5ff, 0x00e9f4fc, 0x00e3f2ee, 0x00e4efec, 0x00e6ebec, 0x00e8e7ea, 0x00e6e5e7, 0x00e8e8ec, 0x00f6f0f6, 0x00fff6fe,
- 0x00f5f9f5, 0x00f4f8f5, 0x00f6f8f6, 0x00f6f7f6, 0x00f5f5f6, 0x00f5f5f7, 0x00f6f4f7, 0x00f7f6f9, 0x00f5f9f2, 0x00f5fbf3, 0x00fbfafa, 0x00fff9fc, 0x00fffbfe, 0x00fffdfd, 0x00fffbf9, 0x00fdfdf6,
- 0x00f6fdec, 0x00f6fef0, 0x00f8fdf8, 0x00fafefb, 0x00f8fcfd, 0x00fbfdfd, 0x00fdfdff, 0x00fbfbff, 0x00f9fcf7, 0x00f9fbf8, 0x00fdfefd, 0x00ffffff, 0x00fcfbfa, 0x00f2f1f0, 0x00e3e2e1, 0x00d6d5d4,
- 0x00b1b8bd, 0x009da3a0, 0x007d8078, 0x005e6654, 0x003a4237, 0x00242830, 0x003d4360, 0x006970a5, 0x005b71aa, 0x005268aa, 0x004656a1, 0x003d4797, 0x00383e92, 0x003a4296, 0x00444c9d, 0x005c65b4,
- 0x006471ab, 0x003b4772, 0x00080e2c, 0x00060c1b, 0x00090d09, 0x00070b06, 0x000b0d07, 0x000a0d0b, 0x00030d00, 0x00030b00, 0x00050c04, 0x00070d07, 0x00060d07, 0x00060d08, 0x00070d08, 0x00080d09,
- 0x00000600, 0x00010600, 0x00050803, 0x00060703, 0x00030300, 0x00050603, 0x00050604, 0x00050705, 0x00000400, 0x00000400, 0x00020400, 0x00030502, 0x00040605, 0x000a0a0a, 0x00141213, 0x001b1b1b,
- 0x001a1f17, 0x001d211c, 0x002b2d2b, 0x00404141, 0x00595b5c, 0x006d6f6f, 0x00868788, 0x009a9a9c, 0x00a6aca6, 0x00b6bcb6, 0x00c9ccc8, 0x00d7d8d6, 0x00dfdfde, 0x00eaeae9, 0x00f5f5f5, 0x00f7f9f9,
- 0x00f9fefa, 0x00fafefb, 0x00fcfefd, 0x00fbfdfd, 0x00fcfdff, 0x00fafbfd, 0x00fbfcfe, 0x00fefdff, 0x00f5fcf6, 0x00f6fcf9, 0x00fcfafb, 0x00fff9f9, 0x00fefaf8, 0x00fdfbfa, 0x00fefcfc, 0x00fdfdfd,
- 0x00f8fef5, 0x00f8fbf3, 0x00fdfbf7, 0x00fefdf9, 0x00fcfff8, 0x00fefef8, 0x00fffefc, 0x00fffdfa, 0x00f6fff4, 0x00f3fbf3, 0x00f7fcfb, 0x00fafdff, 0x00f9faf9, 0x00f9f6f5, 0x00f9f1ef, 0x00f6ebe5,
- 0x00f1e3d7, 0x00e4d7ca, 0x00ebdacf, 0x00f4e4da, 0x00eee3db, 0x00e4dddc, 0x00d9d7dd, 0x00b2b4bf, 0x00697a87, 0x00697a8f, 0x008c9bb1, 0x00a4b4c8, 0x00798da6, 0x002a3f66, 0x00314577, 0x004c6299,
- 0x00203e6b, 0x000e2c50, 0x002d4766, 0x007f8fa5, 0x009aaab1, 0x004e5158, 0x0029252e, 0x00302b34, 0x00202321, 0x00212622, 0x00252627, 0x00232321, 0x002e3125, 0x00414332, 0x005f604d, 0x006b6e56,
- 0x0076774d, 0x007b7e5b, 0x007e806c, 0x0080827b, 0x00787b87, 0x006e7082, 0x006a6a82, 0x0062627c, 0x00555668, 0x004e4e5f, 0x00514a5b, 0x004d454b, 0x00474445, 0x0047443e, 0x0056514d, 0x009e9d94,
- 0x00f8feec, 0x00fafef1, 0x00fffdf9, 0x00fefbfc, 0x00fcf8fb, 0x00ccd0d2, 0x006e7179, 0x007c7c89, 0x00a5adb4, 0x00cfd9dd, 0x00e1eaf2, 0x00d5dee3, 0x00858e9e, 0x003a4164, 0x000c1148, 0x001c2065,
- 0x00071b53, 0x0003134d, 0x00061555, 0x000c195e, 0x00081460, 0x000f1b69, 0x001c2676, 0x001d2574, 0x000c1e62, 0x00061c61, 0x00122371, 0x001c3385, 0x00364791, 0x00344783, 0x00222a63, 0x000d1546,
- 0x0000062d, 0x0000042c, 0x00020938, 0x00080e44, 0x0009134c, 0x00071148, 0x00060a40, 0x00030839, 0x00000e33, 0x0004113e, 0x00131955, 0x001b1e64, 0x001c226a, 0x001e2464, 0x00111450, 0x00040638,
- 0x00030d23, 0x00323c55, 0x007a82a3, 0x00868eb7, 0x00747caa, 0x00656b9c, 0x00596194, 0x00565d8d, 0x003f5075, 0x00314263, 0x00364364, 0x00394164, 0x00393e56, 0x00484c5e, 0x009e9ead, 0x00e7e3ed,
- 0x00f0f1ec, 0x00f0eeec, 0x00f5edf2, 0x00f6ecf3, 0x00f4edf5, 0x00eef0ef, 0x00edf4f1, 0x00eaefec, 0x00deede2, 0x00e3ede5, 0x00e7ebe5, 0x00eae9eb, 0x00ebe8e9, 0x00ede8eb, 0x00f0e7ee, 0x00ece1ea,
- 0x00c8e1e5, 0x00b9cfd6, 0x00a4b6c4, 0x008c9eac, 0x00687e89, 0x004b626d, 0x00394f5e, 0x002f4456, 0x00224145, 0x00214046, 0x00233c48, 0x00203a46, 0x00213c45, 0x00253c46, 0x00293e4b, 0x002b3f4e,
- 0x00284447, 0x002b474b, 0x00324a51, 0x00334a51, 0x00354c52, 0x0032464d, 0x0030424a, 0x002b3f48, 0x00243d3e, 0x00243c40, 0x00263c43, 0x00283d45, 0x00293f46, 0x00293f46, 0x00283d44, 0x00273b43,
- 0x00273636, 0x00273637, 0x002c383f, 0x002d3941, 0x002d383f, 0x00303b41, 0x00353f48, 0x00353f48, 0x002c3e3d, 0x00263536, 0x002a3437, 0x00303639, 0x00303739, 0x0031373b, 0x0033373d, 0x0033383c,
- 0x002a3534, 0x002f3938, 0x00383e40, 0x00393d41, 0x00333c3e, 0x00323b3d, 0x00373d41, 0x00373e40, 0x00333e3b, 0x00363f3d, 0x003a4142, 0x003c4345, 0x003e4648, 0x00424a4d, 0x00464c51, 0x00474b53,
- 0x003f4a47, 0x00434c48, 0x004d5355, 0x0055595e, 0x005d6163, 0x0063686c, 0x006d7178, 0x0074797e, 0x0078827f, 0x00828c88, 0x008e9293, 0x0099989c, 0x00a09fa2, 0x00a3a5a7, 0x00a8aaae, 0x00adadb1,
- 0x00a7b2af, 0x00b0b6b5, 0x00b9bbbe, 0x00bdc1c4, 0x00c1c7c7, 0x00c6ccce, 0x00d0d4d9, 0x00dbdde3, 0x00dde2df, 0x00dfe4e1, 0x00e7e5e7, 0x00ece8e9, 0x00ebe8ea, 0x00eeebea, 0x00f0eced, 0x00e5e7e6,
- 0x00f6fffb, 0x00f6fef9, 0x00f3f9f6, 0x009ba09d, 0x000c0e0a, 0x00090905, 0x0013100c, 0x0019120d, 0x0017120c, 0x001c160e, 0x001e180f, 0x001d1408, 0x00191107, 0x0015120a, 0x0015130e, 0x0014120f,
- 0x0014120f, 0x001b1a18, 0x003a3733, 0x0075716c, 0x00777069, 0x0049444c, 0x00353340, 0x0051535e, 0x00757a88, 0x00596376, 0x0027324f, 0x0028385d, 0x00233d6d, 0x0025427c, 0x00325597, 0x004269b1,
- 0x004e74b8, 0x004771b9, 0x004875c2, 0x004a78cb, 0x004d79c6, 0x005679b6, 0x006277a3, 0x005c6177, 0x003f2c24, 0x003e1f0e, 0x0057280d, 0x0066310d, 0x0066300e, 0x005b2504, 0x00673210, 0x00824e31,
- 0x006d422a, 0x00532d18, 0x00573526, 0x00523527, 0x00331c13, 0x00271b12, 0x00312821, 0x0032281f, 0x002c2013, 0x002f2116, 0x002c1d14, 0x004f423c, 0x00b7aeab, 0x00e0dbda, 0x00dfdbde, 0x00d9d6da,
- 0x00dad8e4, 0x00e4e1ed, 0x00edeaf1, 0x00edeaec, 0x00e9e7e9, 0x00e5e0e5, 0x00dfdde9, 0x00d3d8ed, 0x00a0a5ce, 0x007a84b1, 0x006f77a7, 0x00545888, 0x00606393, 0x006f74a3, 0x00c2caf3, 0x00a5aecf,
- 0x008088a4, 0x00ccd3e9, 0x00e1e5f4, 0x00d0d4dd, 0x00c6c6cb, 0x00d6d2d9, 0x00e9e8ea, 0x00ecf5f3, 0x00e5f7f1, 0x00ebf4ef, 0x00f2f0eb, 0x00ffe6e1, 0x00f9c4b6, 0x00ec9c85, 0x00d57658, 0x00d46742,
- 0x00f95c13, 0x00f96123, 0x00e8612e, 0x00be4e2f, 0x00662a24, 0x002f141e, 0x000f0e23, 0x00071838, 0x000d1944, 0x00252657, 0x004b4b88, 0x005361ab, 0x005a71c7, 0x005b72cd, 0x005971c3, 0x00788ed0,
- 0x00d3dff1, 0x00f6fbfc, 0x00fbfaf9, 0x00fefdfa, 0x00f9fafd, 0x00f1f4ea, 0x00b1b8a9, 0x00848e7d, 0x00808c79, 0x0085927e, 0x00838f7a, 0x0084927a, 0x0088987f, 0x008b9c82, 0x008d9f84, 0x008b9d81,
- 0x00928f7b, 0x0093927c, 0x0091907b, 0x0092937d, 0x008f947a, 0x0090967c, 0x0091967f, 0x008e957d, 0x00939e81, 0x00a8b49a, 0x00aab2a3, 0x00909598, 0x0089908e, 0x00909790, 0x0093998b, 0x008c9483,
- 0x008a9679, 0x009ba484, 0x00afb892, 0x00acb98f, 0x0094a374, 0x00909771, 0x00909170, 0x009e9f7f, 0x00b5b695, 0x00a5a687, 0x008a8a6d, 0x008d8b71, 0x008c8d73, 0x008c8e74, 0x008e8d75, 0x008f8f76,
- 0x008e9574, 0x00919876, 0x008e9674, 0x008e9675, 0x008b9371, 0x00899270, 0x008b9473, 0x008d9674, 0x008f9777, 0x00939a7a, 0x00949c79, 0x0095a079, 0x00929c77, 0x00949e7c, 0x00939d7e, 0x00939e7e,
- 0x00959e80, 0x00959e7e, 0x00969f7d, 0x0095a07c, 0x00959f79, 0x0098a080, 0x0099a083, 0x0099a082, 0x00979f84, 0x009aa186, 0x00a0a48a, 0x00aaad93, 0x009fa387, 0x00979b7e, 0x00989a7e, 0x00999b7f,
- 0x008fa283, 0x0090a183, 0x008e9f80, 0x008f9d7c, 0x008f9b7b, 0x008c9979, 0x008d987c, 0x008a967b, 0x0087977a, 0x00879780, 0x008a9579, 0x008e966e, 0x008c9770, 0x008d9573, 0x008e9572, 0x008c9476,
- 0x00888f74, 0x00898f79, 0x00888e7a, 0x00878d7b, 0x00888d7d, 0x00868d77, 0x00878e72, 0x00868d73, 0x00888e73, 0x00878d73, 0x00898e74, 0x00898f77, 0x00898f73, 0x00888f73, 0x00899074, 0x00899274,
- 0x008b967b, 0x008d9579, 0x008e9479, 0x008f9379, 0x0090927a, 0x0094937c, 0x009a957f, 0x009d947f, 0x009e967f, 0x00a0937e, 0x009a927f, 0x008f947f, 0x008c957a, 0x008d9677, 0x00909878, 0x00939a7a,
- 0x008f9878, 0x008b917b, 0x0093998a, 0x00c6ccc0, 0x00f9fcf9, 0x00fcfdfc, 0x00fcfdfc, 0x00fafcfd, 0x00f8fcf8, 0x00a1a5a0, 0x000e140f, 0x001f2624, 0x003f4649, 0x00545c65, 0x0089909d, 0x00aeb4c3,
- 0x0081b1dd, 0x0070a4e2, 0x006da2ea, 0x006695e4, 0x00687fa3, 0x007b7774, 0x00ae9167, 0x00c9944f, 0x00b37131, 0x00ba7748, 0x00b9774b, 0x00c28151, 0x00bd7b49, 0x00c27a4b, 0x00bf7b48, 0x00bd7640,
- 0x00ba723f, 0x00b26c3a, 0x00a7642e, 0x00a4612d, 0x00a76733, 0x00b16c38, 0x00b7753a, 0x00be7b3d, 0x00c78246, 0x00cc8648, 0x00cf884b, 0x00d59053, 0x00d29054, 0x00ca8b52, 0x00c98d58, 0x00b87d49,
- 0x009f604a, 0x00844d3a, 0x00784e3c, 0x0062422f, 0x00392e1e, 0x00333223, 0x00323524, 0x00303721, 0x002c351c, 0x002d3316, 0x00303117, 0x0031301c, 0x0030311d, 0x0032311e, 0x0035331f, 0x00353420,
- 0x00343320, 0x00363622, 0x00373624, 0x00363523, 0x00363521, 0x0036361f, 0x00343620, 0x00323521, 0x00323323, 0x00343526, 0x003b3a2d, 0x00464134, 0x00514539, 0x00544337, 0x00513d30, 0x004e3629,
- 0x00442c20, 0x0039251a, 0x0081716a, 0x00eee8e1, 0x00fcfdfa, 0x00f7f9f7, 0x00fafdfb, 0x00fdfefd, 0x00d8dad3, 0x009c9b97, 0x00746b6b, 0x0086757a, 0x008d8380, 0x0091817c, 0x0099847c, 0x00ab8e85,
- 0x00af877e, 0x00ab7d76, 0x00a67a73, 0x00a47f73, 0x00a28876, 0x00c3937a, 0x00d0987c, 0x00d19c80, 0x00c9977b, 0x00bf8f75, 0x00b58b72, 0x00b69077, 0x00b69b82, 0x00bba58a, 0x00c2aa90, 0x00c1ad93,
- 0x00ceb798, 0x00d9baa0, 0x00c7a692, 0x00bd9489, 0x00bc9c96, 0x00c7afaf, 0x00b9acaf, 0x00979397, 0x00726f77, 0x00706976, 0x007a737e, 0x007b7b7e, 0x007c7a7f, 0x00787677, 0x00717574, 0x00737673,
- 0x00757676, 0x00757676, 0x00808088, 0x009596a0, 0x00b2b1bb, 0x00c7c8d4, 0x00e1e2ef, 0x00f2f4f8, 0x00dee1e1, 0x00b7b8b5, 0x0092908c, 0x00939089, 0x00949187, 0x00969288, 0x00938f85, 0x008f8a7f,
- 0x00858079, 0x00837d78, 0x00817c77, 0x00817d78, 0x0086817c, 0x0088847e, 0x00908b85, 0x0099938e, 0x00a3a09b, 0x00aba8a2, 0x00b1afab, 0x00b1b2ae, 0x00b1b1ac, 0x00adaba7, 0x00a8a5a1, 0x00a19e98,
- 0x00928e8a, 0x008e8986, 0x008c8682, 0x008e8883, 0x00958e8a, 0x009b938e, 0x00a19793, 0x00a29794, 0x009f998e, 0x00a2988f, 0x00a09690, 0x009a9490, 0x0093908d, 0x008d8e8a, 0x00858885, 0x00828785,
- 0x008d8982, 0x008c8a84, 0x008d8a86, 0x00898786, 0x008a8a8a, 0x008e8f8e, 0x00969797, 0x009e9d9c, 0x00a7a59e, 0x00ada9a3, 0x00b2adaa, 0x00b1adae, 0x00aba7a7, 0x00a7a2a5, 0x009f9aa0, 0x009a979e,
- 0x009299a1, 0x00909fa8, 0x0091aab8, 0x0092b3c4, 0x0091bbcc, 0x009abaca, 0x00a0bacd, 0x00a1b8c7, 0x00a1b3ba, 0x00a1adb3, 0x00a6adb1, 0x00b4b5b7, 0x00bbbabd, 0x00cac8cc, 0x00e4e0e2, 0x00f2eef2,
- 0x00f5f4f4, 0x00f4f5f5, 0x00f5f6f6, 0x00f9f9f9, 0x00f9fbfa, 0x00fafbfb, 0x00fdfcfc, 0x00fcfcfc, 0x00f9fbfb, 0x00fcfefd, 0x00fcfbff, 0x00fcf9fd, 0x00fcf9fd, 0x00fdfcfd, 0x00fdfcfc, 0x00fbfcf7,
- 0x00fcfef7, 0x00fcfef8, 0x00fcfefd, 0x00fafdfd, 0x00fbfcfe, 0x00fafcfc, 0x00f9fbf9, 0x00f6f7f4, 0x00eff1ee, 0x00e3e6e3, 0x00d6d7d5, 0x00c4c6c4, 0x00acadab, 0x0091918f, 0x006b6b68, 0x004f504c,
- 0x0032333e, 0x00222427, 0x0011140b, 0x000e1506, 0x00050d03, 0x00000613, 0x002d3959, 0x005e6da5, 0x005365b8, 0x004c61bb, 0x004758b1, 0x00424ca4, 0x00353e99, 0x00313d9a, 0x00324099, 0x004656a9,
- 0x004a5997, 0x0032416b, 0x00010c24, 0x00020d13, 0x00081207, 0x00080f08, 0x000b1009, 0x000a0f0a, 0x00070e06, 0x00060d05, 0x00060b04, 0x000a0f08, 0x00060d06, 0x00070f07, 0x00060e04, 0x00040d02,
- 0x00050803, 0x00060904, 0x00080b06, 0x00090c06, 0x00070b04, 0x00070b04, 0x00040802, 0x00020702, 0x00040801, 0x00030801, 0x00040702, 0x00040703, 0x00030703, 0x00030602, 0x00040502, 0x00030602,
- 0x00030300, 0x00010100, 0x00020300, 0x00050604, 0x00090b09, 0x000a0d0a, 0x00101311, 0x00181c1a, 0x00272929, 0x00373a38, 0x00464a47, 0x00525652, 0x00666a67, 0x007f827f, 0x00989b96, 0x00a6a8a3,
- 0x00bdbfc1, 0x00c5c8c9, 0x00d0d2d3, 0x00dadddd, 0x00e6e8e7, 0x00eff1f0, 0x00f3f5f4, 0x00f5f7f5, 0x00f9fcfb, 0x00fbfefd, 0x00fefcfb, 0x00fefaf8, 0x00fefaf8, 0x00fefcf9, 0x00fefbf6, 0x00fefbf4,
- 0x00fefdf5, 0x00fdfdf4, 0x00fefcf6, 0x00fffef7, 0x00fcfef3, 0x00fdfef2, 0x00fffcf1, 0x00fffbf0, 0x00fcfff9, 0x00fcfefa, 0x00fcfcfd, 0x00fcfcfc, 0x00fdfcf8, 0x00fefdf8, 0x00fefef7, 0x00fdfdf3,
- 0x00fdf6ed, 0x00fef9ee, 0x00fff8ed, 0x00fcf6eb, 0x00fbf8ed, 0x00faf9f1, 0x00f6f6f1, 0x00eef1ed, 0x00e1e4eb, 0x00e0e4ee, 0x00ecf2f3, 0x00f0f9f5, 0x00cedbe7, 0x0095a4be, 0x007486a9, 0x006a7eaa,
- 0x00556a98, 0x004c6084, 0x00516580, 0x00738493, 0x00afc2c4, 0x007a8083, 0x0036373b, 0x002c2e30, 0x0027282a, 0x00202321, 0x001d1f1d, 0x001b1e18, 0x00282c1d, 0x00424530, 0x005f6149, 0x006c7052,
- 0x0076774d, 0x007b7b5a, 0x007d7d67, 0x007d7f72, 0x0074767b, 0x00686a77, 0x00636477, 0x005e5e76, 0x0055546b, 0x00534f69, 0x0050495d, 0x00494548, 0x00484546, 0x00494844, 0x005a5953, 0x00a8a9a0,
- 0x00fcfcf6, 0x00fcfcf7, 0x00fdfdfa, 0x00fefcfb, 0x00fbf7f9, 0x00c6c3c9, 0x00696a72, 0x007e7f88, 0x00a6a9ad, 0x00d4d8d7, 0x00e7ede7, 0x00f2fbf0, 0x00d7dfe1, 0x008a92a9, 0x00232a52, 0x00090d47,
- 0x00030d42, 0x00071046, 0x0009134e, 0x00081252, 0x00050d55, 0x000c145f, 0x0016216c, 0x00141e69, 0x000b1a63, 0x0012206c, 0x00162574, 0x00122877, 0x00243780, 0x003a4e8d, 0x003a4885, 0x001c2a5e,
- 0x00010736, 0x00000533, 0x00030634, 0x000b0d3d, 0x00070b3c, 0x00040a38, 0x00040a34, 0x00030a32, 0x00050c34, 0x00060e3c, 0x000a0f4a, 0x000e1259, 0x001a206c, 0x0020286d, 0x00141c59, 0x00010c3f,
- 0x00010621, 0x001d2342, 0x004f5775, 0x00575e82, 0x00444b77, 0x00333d68, 0x0029345e, 0x002e3862, 0x003b476b, 0x00526082, 0x007985a3, 0x009aa2bb, 0x00bbc1d4, 0x00d0d2e1, 0x00f4f1f7, 0x00f8f2fb,
- 0x00fbf9f7, 0x00fefafa, 0x00fff7fc, 0x00fcf6f9, 0x00faf9fa, 0x00f8fbf9, 0x00fafdfb, 0x00f8fcfb, 0x00f6fcfa, 0x00f7fdfd, 0x00f3f9f7, 0x00f6fbfe, 0x00f0f6fa, 0x00e9f0f3, 0x00dae3e4, 0x00c8d3d4,
- 0x0097b0be, 0x007891a1, 0x00516d7a, 0x003e5c68, 0x002e4b5b, 0x002d4a59, 0x002b4a58, 0x00284856, 0x00264956, 0x00284a58, 0x002d4a58, 0x002b4a54, 0x002c4955, 0x002c4854, 0x002e4d55, 0x00325056,
- 0x003a585e, 0x003f5d63, 0x00435e67, 0x0047616a, 0x00466169, 0x0048626a, 0x00465e67, 0x00435e66, 0x003f575d, 0x003e565d, 0x003e565f, 0x00405961, 0x00435c63, 0x00435d63, 0x00405a61, 0x003d575f,
- 0x0049575e, 0x0049575d, 0x0048575f, 0x00485960, 0x004a5b61, 0x004b5c62, 0x004f5f68, 0x00505f69, 0x004e5e66, 0x00495861, 0x0049535a, 0x00495154, 0x00495255, 0x00485154, 0x00464e52, 0x00454e53,
- 0x00444f52, 0x00495357, 0x0050575c, 0x004e5559, 0x00485155, 0x00444e50, 0x00454c4f, 0x00434a4d, 0x0040484c, 0x003f474c, 0x003f474b, 0x003d4649, 0x003b4548, 0x003b4548, 0x003b4547, 0x00394446,
- 0x00364043, 0x00333c3f, 0x0030393d, 0x0030393c, 0x00323b3d, 0x00313b3c, 0x00313a3d, 0x00323b3e, 0x00313b3d, 0x00333d3f, 0x00353c3f, 0x0035383d, 0x0035373c, 0x00323639, 0x002f3538, 0x002f3438,
- 0x002f393a, 0x00333c3d, 0x00373e42, 0x003f454a, 0x00414a4c, 0x00444e51, 0x00505a5f, 0x00677176, 0x0083878b, 0x008b8d90, 0x00908f92, 0x00989697, 0x009c9a9a, 0x009c9a98, 0x00979793, 0x008b8e88,
- 0x00f5fdfa, 0x00f4faf7, 0x00f8fcfa, 0x00adb1ae, 0x00151511, 0x00090703, 0x0013100b, 0x0019130d, 0x001c1511, 0x00211913, 0x001f1810, 0x001c1408, 0x001b1208, 0x0019120a, 0x00150f08, 0x000c0800,
- 0x000b0801, 0x000d0901, 0x00120c01, 0x0020180f, 0x00463a30, 0x004f4746, 0x00666165, 0x00918c91, 0x0078777d, 0x00343942, 0x001a2233, 0x00192742, 0x00203863, 0x002d4a82, 0x004366a9, 0x004c73bc,
- 0x004a72b6, 0x004976ba, 0x004978c0, 0x00497bc6, 0x004e7cc7, 0x00547bbc, 0x005f78ad, 0x005a6487, 0x00443237, 0x003d2317, 0x00532b15, 0x005f3011, 0x00693719, 0x00663518, 0x00714229, 0x00865840,
- 0x005f3b27, 0x0049291a, 0x00482c24, 0x003c2721, 0x00261716, 0x00191614, 0x00191a18, 0x001e1e1a, 0x00241c1d, 0x0029201f, 0x002b211e, 0x00312724, 0x00898180, 0x00dbd3d6, 0x00e3dce1, 0x00dcd4da,
- 0x00dbd8e2, 0x00e1e0e8, 0x00ede9ef, 0x00ede8ea, 0x00ede8eb, 0x00ebe9ee, 0x00cacbd8, 0x009b9eb3, 0x007c7fa4, 0x008a8fba, 0x009497c6, 0x006a6c9c, 0x00383c6a, 0x00606694, 0x00c5cbf6, 0x008f95bd,
- 0x0079829e, 0x00d0d9ed, 0x00e1e6f3, 0x00dce0ea, 0x00d3d3d7, 0x00cecad4, 0x00e1dde7, 0x00ebedf6, 0x00f3f5f2, 0x00faf0ea, 0x00fdddd2, 0x00eeb098, 0x00e87350, 0x00e46238, 0x00ee6134, 0x00f16131,
- 0x00f26a20, 0x00d16331, 0x009c4c3b, 0x004b1f28, 0x000f0a29, 0x00090b26, 0x0010132d, 0x00131431, 0x00232059, 0x00424387, 0x005b63ae, 0x00506cae, 0x005370c2, 0x005373c7, 0x005a75c3, 0x007a8fca,
- 0x00d2e1ea, 0x00f6fbf5, 0x00fffef2, 0x00fffff2, 0x00fcfffd, 0x00ecf4da, 0x00828f68, 0x00424e2b, 0x00404d28, 0x00415128, 0x00405227, 0x003d5224, 0x00455a2c, 0x004a5e30, 0x004c6132, 0x004b5f30,
- 0x0058582f, 0x0058572d, 0x005a5a31, 0x00595b33, 0x005b5d34, 0x00565c32, 0x00596437, 0x00586434, 0x005a6538, 0x006a764b, 0x00717d59, 0x00565f4d, 0x004f5b43, 0x00566248, 0x0055613c, 0x00525f39,
- 0x0051602d, 0x0056642c, 0x0068763b, 0x00708142, 0x00657532, 0x005c652a, 0x00585c26, 0x006b7239, 0x00787c46, 0x005f632d, 0x004d511d, 0x004b4d1b, 0x00515324, 0x00545628, 0x00545528, 0x00535728,
- 0x004f5c23, 0x004e5c23, 0x00505c25, 0x004d5a24, 0x004e5b25, 0x004c5922, 0x004d5b23, 0x00505f26, 0x00546028, 0x00546028, 0x00526028, 0x00506124, 0x00506127, 0x00566530, 0x00596637, 0x00586537,
- 0x00586735, 0x00586834, 0x005b6a36, 0x005c6b34, 0x005e6d34, 0x005f6e36, 0x00616f3b, 0x00616e3a, 0x00636d3c, 0x00636d3b, 0x0067703e, 0x006a7341, 0x00676d3c, 0x00606534, 0x00636535, 0x00686838,
- 0x00556c44, 0x00566b41, 0x00586b3f, 0x0059673b, 0x005d683c, 0x0059653a, 0x005a653c, 0x0058673e, 0x00546747, 0x00536647, 0x004c5e36, 0x0050601b, 0x00515e23, 0x004f5a20, 0x004c5822, 0x004c5722,
- 0x00475324, 0x00485324, 0x00495326, 0x0049532a, 0x004b542e, 0x00485324, 0x0046521d, 0x00434f1c, 0x00465021, 0x00454f1f, 0x00485220, 0x0047511c, 0x00434e1d, 0x00444f1e, 0x00465223, 0x00465224,
- 0x00425322, 0x004a5726, 0x004b5625, 0x00495324, 0x004d5427, 0x004f5328, 0x00535428, 0x005c582c, 0x00615c32, 0x00615a31, 0x005c5930, 0x004f582e, 0x00515b2a, 0x00535d2a, 0x005b632f, 0x005e6733,
- 0x00525d2c, 0x004e562d, 0x005c6444, 0x00aab297, 0x00fafef1, 0x00fafcf6, 0x00fdfefc, 0x00fffdfd, 0x00fafbfc, 0x00a4a9a7, 0x00242b29, 0x00565e5e, 0x00a2a8ae, 0x00cdd2da, 0x00e6ecf5, 0x00ebf2fa,
- 0x00d8daee, 0x00b5c5f0, 0x0087a7ef, 0x006d9ff5, 0x006897e2, 0x005b7a90, 0x0073776a, 0x00b1a168, 0x00b58c44, 0x00a77436, 0x00b87d47, 0x00bc7d4e, 0x00bf7e4e, 0x00b87544, 0x00bf7744, 0x00ba723d,
- 0x00b9733c, 0x00b36d38, 0x00a86735, 0x00a56536, 0x00a4673d, 0x00ae6c3a, 0x00b7743f, 0x00be7940, 0x00c57c44, 0x00c57e43, 0x00c88246, 0x00cb864b, 0x00cd8a4f, 0x00ce8c55, 0x00d49461, 0x00ce905e,
- 0x00c68f7b, 0x00bb8c78, 0x00c6a18f, 0x0094796a, 0x003e3529, 0x002f2f20, 0x002f3523, 0x002e3522, 0x002f341d, 0x002f3219, 0x00323019, 0x0032301d, 0x0031301c, 0x0032311e, 0x0035321f, 0x0035341f,
- 0x00363420, 0x00383622, 0x00393724, 0x00373523, 0x00353521, 0x00353620, 0x00343520, 0x00323320, 0x00333023, 0x00333123, 0x00383529, 0x00423c2e, 0x004e4036, 0x00534034, 0x00503b2e, 0x004c3527,
- 0x00452d23, 0x0038241a, 0x0082716a, 0x00ede7df, 0x00fcfdfa, 0x00f9fbf8, 0x00f9fcfa, 0x00fcfefd, 0x00c7c5c3, 0x00504c4b, 0x00150b0a, 0x002b1d15, 0x00422f25, 0x003c2517, 0x00533222, 0x006c3b2b,
- 0x00742519, 0x006a120a, 0x006e1310, 0x0065140d, 0x006f2b22, 0x00943e2e, 0x00b4533f, 0x00bb5a44, 0x00b45543, 0x00a9503b, 0x00a04e39, 0x009b5239, 0x009a503b, 0x009c5741, 0x00a25c4c, 0x00a05c4e,
- 0x00b4815d, 0x00bf8568, 0x00975a42, 0x00814131, 0x00855348, 0x0083645a, 0x0057463f, 0x0023201b, 0x000b0d0c, 0x000b0b0f, 0x00100f15, 0x0019171e, 0x0019171b, 0x000e0e10, 0x000d0d10, 0x00100f0f,
- 0x000f0e0d, 0x00131214, 0x00434149, 0x007d7c89, 0x00b9b6c8, 0x00cecee2, 0x00e0e3f4, 0x00f0f5fe, 0x00d7d4dc, 0x00979598, 0x004e4c49, 0x003a382e, 0x00464033, 0x00473e32, 0x0042382d, 0x00372c1e,
- 0x00281f19, 0x00241d16, 0x00231c15, 0x00261e17, 0x002b231d, 0x00302922, 0x003c352c, 0x00464239, 0x005a524b, 0x00676159, 0x00736f68, 0x0073766e, 0x0073736c, 0x006b6a66, 0x00615d5c, 0x00514b4a,
- 0x00383430, 0x0034302e, 0x00332c2c, 0x00362f30, 0x0040393c, 0x004a4344, 0x00554d4a, 0x0059514c, 0x005a4e48, 0x005a4a41, 0x00594b3f, 0x00494235, 0x003d3930, 0x0034322d, 0x002b2b2a, 0x00252628,
- 0x002a261f, 0x002d2b25, 0x002d2c29, 0x0029282a, 0x002a2a32, 0x00303238, 0x003d4245, 0x004b504d, 0x00575251, 0x005f5955, 0x0067615d, 0x0066615f, 0x00655f5e, 0x005c5456, 0x004f484b, 0x00444144,
- 0x003b444c, 0x003c4f5b, 0x00436171, 0x00496e85, 0x0051819d, 0x0057839b, 0x005f889e, 0x0063859c, 0x006a7e90, 0x006c7a89, 0x0099a2b0, 0x00c5cacc, 0x00dfdfe3, 0x00ebe9e8, 0x00f7f3f6, 0x00faf8fd,
- 0x00fbfafa, 0x00fbfbfb, 0x00fbfbfb, 0x00fcfbfb, 0x00fcfcfc, 0x00fbfcfb, 0x00fdfdfc, 0x00fefffe, 0x00fcfcfd, 0x00fcfcfc, 0x00fcfbfd, 0x00fcfbfc, 0x00fdfbff, 0x00fcfcfe, 0x00fdfeff, 0x00fcfdfb,
- 0x00fbfbfa, 0x00fdfdf9, 0x00fcfefa, 0x00f7faf4, 0x00ebedeb, 0x00dbddd9, 0x00c4c8c3, 0x00b1b3ac, 0x00959592, 0x00767773, 0x0051534e, 0x00323430, 0x001b1c19, 0x00141513, 0x0011110e, 0x000c0c08,
- 0x0003080f, 0x00020808, 0x00070b05, 0x00050c00, 0x00050e0b, 0x00040f20, 0x0034426c, 0x005b67ae, 0x005265c5, 0x004c63ca, 0x004055bb, 0x0033409c, 0x002a3795, 0x003643a0, 0x003c4aa4, 0x0039489c,
- 0x00445891, 0x00425579, 0x00041226, 0x00000c08, 0x00061402, 0x00091105, 0x000a0f08, 0x00081008, 0x00090d07, 0x00070c05, 0x00080e04, 0x00040b01, 0x00080e08, 0x00060c07, 0x00060c07, 0x00070e09,
- 0x000b0e07, 0x000a0e06, 0x000a0d06, 0x000a0e07, 0x00090d07, 0x00090d07, 0x00060c05, 0x00070c05, 0x00060d04, 0x00050d04, 0x00060c05, 0x00070b05, 0x00070b07, 0x00080c07, 0x00090b07, 0x00080a06,
- 0x00060a04, 0x00040a03, 0x00030903, 0x00030803, 0x00040704, 0x00030503, 0x00020401, 0x00010400, 0x00020601, 0x00040702, 0x00050905, 0x00040a04, 0x000a0e09, 0x000f140f, 0x00141914, 0x00181c17,
- 0x00212223, 0x00353736, 0x004b4f4d, 0x005b5e5a, 0x00787a77, 0x00888a87, 0x009b9e9b, 0x00a9adaa, 0x00b9bcbb, 0x00cbcccb, 0x00dbdadb, 0x00e1e1e2, 0x00efeef0, 0x00faf9fa, 0x00fffffe, 0x00fefdfb,
- 0x00fefef8, 0x00fbfff6, 0x00fdfff9, 0x00fdfef9, 0x00fcfff8, 0x00f9fcf4, 0x00fafcf6, 0x00fcfdf7, 0x00fdfeff, 0x00fbfffd, 0x00f9fefe, 0x00f9fdfe, 0x00fbfefe, 0x00fdfefe, 0x00fcfcfe, 0x00fbfbfd,
- 0x00fbf9f1, 0x00fffef7, 0x00fffef8, 0x00fffef7, 0x00fefff7, 0x00fcfef6, 0x00f8fcf6, 0x00fafefb, 0x00feffff, 0x00f8fdfc, 0x00fafff9, 0x00f8feeb, 0x00f4faf6, 0x00ebf3f7, 0x00e2ebf9, 0x00dde8f8,
- 0x00d4e2f1, 0x00cdd9e7, 0x00c1cdde, 0x00c0cbd6, 0x00d2e0e1, 0x00c1c4c5, 0x0088878a, 0x006d6d70, 0x00606064, 0x004e504f, 0x00444543, 0x00353630, 0x00393c2e, 0x004a4c39, 0x005d6049, 0x0062664a,
- 0x006e6e48, 0x006d6c4e, 0x0071715c, 0x00707466, 0x00686a6e, 0x005b6068, 0x00555a68, 0x0056586c, 0x0055506a, 0x00544e6a, 0x004f4b5c, 0x004a4947, 0x00504f4d, 0x00504f4b, 0x00747471, 0x00bbbab6,
- 0x00fbfcf7, 0x00fbf8f6, 0x00fffffd, 0x00fdfbfb, 0x00f5f5f8, 0x00b6b3ba, 0x0065666d, 0x00818188, 0x00aeb1b2, 0x00d3d5d0, 0x00eaf0e3, 0x00ebf5de, 0x00e9f0e8, 0x00d6dbe6, 0x005c5f7b, 0x000b0b38,
- 0x00000630, 0x00050938, 0x000d1149, 0x00050b46, 0x00070e4f, 0x0010195b, 0x00172065, 0x00121b61, 0x00141c61, 0x001a2468, 0x00172468, 0x00102469, 0x001d2e73, 0x0038488b, 0x004e5b9c, 0x003b4981,
- 0x000b1446, 0x00000634, 0x00040734, 0x000b0b37, 0x000c0935, 0x00090a33, 0x00060830, 0x0004092d, 0x000a0d34, 0x00080d3b, 0x00050b41, 0x00030948, 0x000d125c, 0x001e2368, 0x001b215f, 0x00070f48,
- 0x0004061d, 0x00080c26, 0x00181e38, 0x00181c3a, 0x001e2243, 0x00283250, 0x00454e6e, 0x006a7292, 0x0099a5c1, 0x00c3cfe4, 0x00e0ebf8, 0x00eaf5f5, 0x00f9fdfe, 0x00fefffe, 0x00fdfdfd, 0x00fefbfe,
- 0x00f9f9f2, 0x00fdfcf6, 0x00fefcf7, 0x00fdfdf8, 0x00fefef9, 0x00f9f9f8, 0x00fcfafe, 0x00fcf9ff, 0x00fefcff, 0x00fbfeff, 0x00ecf2f6, 0x00d5e3e5, 0x00b8d0d5, 0x0098b6b8, 0x006c8b8d, 0x00517274,
- 0x00345869, 0x002f5062, 0x002e4d61, 0x002e4e61, 0x002c4d5e, 0x002a4f5e, 0x0028505e, 0x0029515f, 0x002b5160, 0x002a5162, 0x002a505f, 0x00284e59, 0x002a4d59, 0x002e4e5c, 0x00375763, 0x0043606b,
- 0x0048676f, 0x00516f77, 0x0058747c, 0x005a757e, 0x0058737c, 0x0059737c, 0x0057717a, 0x00557078, 0x00546e76, 0x00526c75, 0x00516c76, 0x00546e79, 0x0059727d, 0x005b747d, 0x0058727b, 0x00536f77,
- 0x005a6b76, 0x005c6c76, 0x005d6e78, 0x005e6e79, 0x0061717c, 0x0063747e, 0x00697a84, 0x006d7e86, 0x006a7c84, 0x0063747e, 0x005f6d74, 0x005c686b, 0x005b666c, 0x005e686e, 0x005f686d, 0x005e676e,
- 0x00606a70, 0x00636f75, 0x006a757a, 0x006a7579, 0x00657176, 0x00616c70, 0x00606a6e, 0x005e696e, 0x0060696f, 0x005e696d, 0x005b676a, 0x00576367, 0x00555f65, 0x00565f65, 0x00576167, 0x00566366,
- 0x00505c62, 0x004c585e, 0x00485359, 0x00465155, 0x00475256, 0x00434e52, 0x003e4a4f, 0x003a484d, 0x003c464c, 0x003c484d, 0x003d474c, 0x00393f44, 0x0033373f, 0x002f343b, 0x002a3138, 0x00282f36,
- 0x00222c32, 0x001a282d, 0x00142429, 0x00102026, 0x000f1d22, 0x000c1b21, 0x000e1b23, 0x002c373f, 0x005d616a, 0x0066676d, 0x0067666b, 0x00656464, 0x006b6769, 0x005e5958, 0x00373230, 0x00211e19,
- 0x00fafdfa, 0x00f9fbfb, 0x00fdfdff, 0x00bcbcbc, 0x00201e1d, 0x000c0905, 0x0017120c, 0x001b140f, 0x00211714, 0x00271c17, 0x00231911, 0x00221909, 0x001b1508, 0x0019150c, 0x00130f08, 0x000c0a04,
- 0x000b0704, 0x000e0705, 0x000a0200, 0x000b0302, 0x00120704, 0x00211b1a, 0x00474542, 0x00625f5d, 0x00474546, 0x00232328, 0x00171d27, 0x001a2539, 0x00263e64, 0x00405f94, 0x00496eaf, 0x004772ba,
- 0x004e74bb, 0x004a76bb, 0x004778bb, 0x00477dc0, 0x004b7dc5, 0x00547cc0, 0x00627cb7, 0x005b6591, 0x00453741, 0x00422b21, 0x0055341f, 0x00643c27, 0x00663b22, 0x00683f2a, 0x007b5542, 0x007e5946,
- 0x004f3423, 0x00371f15, 0x002c1a16, 0x00261716, 0x00181215, 0x00141314, 0x00161a18, 0x001a1c18, 0x00231f1c, 0x0028221f, 0x002d2523, 0x0029201e, 0x005f5756, 0x00bcb6b5, 0x00e3dddc, 0x00ddd6d5,
- 0x00dcd6e2, 0x00e6dee8, 0x00ede8ee, 0x00ebe9ec, 0x00ece9eb, 0x00f0edf3, 0x00c0bfcd, 0x00858598, 0x007b7b9b, 0x009695bd, 0x009f9dc9, 0x009897c2, 0x007b7da5, 0x008b90b6, 0x00bfc8e9, 0x007c85a6,
- 0x008e96af, 0x00d8ddf2, 0x00e3e7f4, 0x00e2e5ee, 0x00dedbde, 0x00d4ceda, 0x00d8d3df, 0x00e6e3ec, 0x00f9f1ef, 0x00fde0d3, 0x00f0aa92, 0x00e57857, 0x00e65e30, 0x00e75f30, 0x00e96236, 0x00d95e34,
- 0x008c5435, 0x005c342a, 0x002f1723, 0x00140b28, 0x000f0724, 0x001d0b1c, 0x001e0a16, 0x00251022, 0x002f346b, 0x004459af, 0x00516cc2, 0x00516cad, 0x005270bd, 0x005675c1, 0x005673b2, 0x00728ebe,
- 0x00d5e0e9, 0x00f7fcf6, 0x00fdfeed, 0x00fefdee, 0x00fcfdf9, 0x00eaf2ce, 0x00798753, 0x00384513, 0x00374512, 0x00384814, 0x00354711, 0x00374b13, 0x003a4f16, 0x003b5117, 0x003c5218, 0x003c5419,
- 0x00525723, 0x00515722, 0x00545924, 0x00535923, 0x00515923, 0x00515b24, 0x004e5922, 0x004e5b22, 0x00515c25, 0x00545e28, 0x00576330, 0x00505d34, 0x004e5c31, 0x00505e32, 0x004e5e2a, 0x004f5f29,
- 0x00566529, 0x00516222, 0x00576a24, 0x00657a31, 0x00798c40, 0x0079843e, 0x00626925, 0x005a621c, 0x005b6521, 0x00555e1b, 0x00555e1c, 0x00525a1b, 0x0052591d, 0x0052581d, 0x00545a1e, 0x0052591c,
- 0x004b5a18, 0x004f5e1c, 0x00566624, 0x004d5d1b, 0x004b5c1a, 0x004d5d1b, 0x004a5a19, 0x00495919, 0x004a5817, 0x004c5a19, 0x004c5b19, 0x004b5e1c, 0x00495c1c, 0x004d5d26, 0x004d5c28, 0x004a5a29,
- 0x004d5d2a, 0x0050602c, 0x00506128, 0x00526229, 0x00556423, 0x00576828, 0x00576a28, 0x00596a28, 0x005c6a2a, 0x005e6a2a, 0x005d6829, 0x005e672a, 0x0061682d, 0x005f652a, 0x00606628, 0x00606526,
- 0x00526c3c, 0x00546d39, 0x005b6e37, 0x005c6c32, 0x005f6931, 0x005b632e, 0x005c6835, 0x005c6a39, 0x005f704a, 0x005c704c, 0x00526637, 0x00526317, 0x00505f1b, 0x004f5f19, 0x0050611d, 0x00556521,
- 0x00516122, 0x0048571a, 0x00435017, 0x0046531b, 0x0046531b, 0x00455418, 0x00425213, 0x003f5011, 0x00415013, 0x00414f12, 0x00424e15, 0x00414d13, 0x003b480f, 0x003f4c12, 0x003c4a11, 0x003a4a0f,
- 0x003d4d13, 0x00404f13, 0x003e4d10, 0x003c4a0e, 0x003f4a10, 0x00424a12, 0x00444912, 0x00494a13, 0x004c4e17, 0x004e4f17, 0x004b5019, 0x00454d17, 0x00435116, 0x00485316, 0x004d5a19, 0x00505f1b,
- 0x004b561c, 0x00485021, 0x0059613e, 0x00aab096, 0x00fbfcee, 0x00fdfdf5, 0x00fcfefa, 0x00fdfffc, 0x00f8fafb, 0x00b3b8b8, 0x004c5354, 0x00868e91, 0x00c6ccd3, 0x00e5eaf3, 0x00eef5fd, 0x00ecf5fa,
- 0x00f9ecfc, 0x00efe9ff, 0x00c1d0f2, 0x0096baec, 0x006da4de, 0x006393c8, 0x0057799d, 0x0071818b, 0x009e8e64, 0x00b3984e, 0x00b2893f, 0x00be7f51, 0x00be7f4f, 0x00c07c48, 0x00ba703d, 0x00ba723a,
- 0x00bb713d, 0x00b16836, 0x00a96436, 0x00a5653a, 0x009f633e, 0x00a56736, 0x00b1703b, 0x00bb7540, 0x00c17840, 0x00c47d43, 0x00c57e44, 0x00c78146, 0x00cc864e, 0x00cd8953, 0x00ce8d58, 0x00c58653,
- 0x00a4725a, 0x008c644b, 0x0092725d, 0x00745e4d, 0x003b3629, 0x00323224, 0x002f3423, 0x002e3321, 0x002f331d, 0x0030301b, 0x0032301a, 0x0032301c, 0x0031301c, 0x0032311d, 0x0034331e, 0x00363520,
- 0x00363420, 0x00383623, 0x00393624, 0x00373622, 0x00353522, 0x0034351f, 0x0032341e, 0x00313220, 0x00313022, 0x00313123, 0x00343325, 0x003c362b, 0x0046382c, 0x004a382d, 0x00493627, 0x00493224,
- 0x00452d22, 0x003a251b, 0x00817169, 0x00ede7de, 0x00fdfdfa, 0x00fdfffd, 0x00fafdfc, 0x00fdfeff, 0x00c6c4c2, 0x0053514e, 0x001a120e, 0x00302119, 0x00312715, 0x00352512, 0x004a2b18, 0x005e2a18,
- 0x006f1008, 0x00720a09, 0x00670200, 0x006c0f0f, 0x0082433c, 0x0099615d, 0x009f6b66, 0x00a87876, 0x00a3716f, 0x00966764, 0x009c6c69, 0x009d7470, 0x00966e69, 0x008e6b65, 0x0088645c, 0x00826058,
- 0x00aa7557, 0x00a96d58, 0x00864835, 0x0079392a, 0x00703f35, 0x005d4136, 0x0027180f, 0x00020300, 0x00010400, 0x00040502, 0x00121213, 0x00221f2c, 0x00131316, 0x00030404, 0x00040201, 0x00040404,
- 0x00010101, 0x0009080c, 0x005b5862, 0x00afacbf, 0x00d4d2e8, 0x00cbceea, 0x00d2d8f1, 0x00d6def3, 0x00cdcedb, 0x00b2b2b8, 0x00686564, 0x00423d35, 0x0043392e, 0x0044372c, 0x003e3125, 0x00362719,
- 0x00261a16, 0x001f1610, 0x001d150d, 0x00201810, 0x00272018, 0x002d251d, 0x003a3027, 0x00443c32, 0x00544b43, 0x0060564e, 0x00696259, 0x006c675d, 0x0067645b, 0x005e5a53, 0x00504e4a, 0x003f3d3c,
- 0x00302d2f, 0x002d2b31, 0x002b2b31, 0x002e2f38, 0x003a3b46, 0x0046464d, 0x00504e52, 0x00555153, 0x00554a46, 0x0055463f, 0x00514237, 0x00463c30, 0x00393229, 0x002f2b25, 0x0023211f, 0x00171717,
- 0x001d1716, 0x001c1b19, 0x00171819, 0x0013181c, 0x00191e2b, 0x00222833, 0x00313742, 0x003f4248, 0x00464546, 0x004d4848, 0x00534d4a, 0x00544f4b, 0x00524b48, 0x004e4442, 0x00423837, 0x00373132,
- 0x002e353f, 0x00334453, 0x003a586e, 0x00416885, 0x00487c9d, 0x004d81a0, 0x005486a3, 0x00557e9a, 0x005a788f, 0x00697b8f, 0x00a8b2c1, 0x00ecf0f5, 0x00fafafb, 0x00fcfcfb, 0x00fcfbfb, 0x00fcfdfd,
- 0x00f8f9f9, 0x00fbfbfb, 0x00fdfcfc, 0x00fdfcfd, 0x00fefcfd, 0x00fefcfd, 0x00fcfbfc, 0x00fdfdfe, 0x00fcfbfd, 0x00fcfcfd, 0x00fdfdfe, 0x00fcfefc, 0x00fbfbfc, 0x00fafbfb, 0x00f4f5f5, 0x00ecedea,
- 0x00dde0dc, 0x00d4d7d2, 0x00bdc1ba, 0x00a2a6a1, 0x007d807b, 0x00606260, 0x00464843, 0x0030312b, 0x001a1a15, 0x0012130d, 0x000c0c07, 0x00080904, 0x00070804, 0x00090a06, 0x000b0c08, 0x00080804,
- 0x0005090b, 0x00080d09, 0x00080f05, 0x00071003, 0x00050e14, 0x00121c36, 0x00465387, 0x005e6dba, 0x005368c8, 0x004459bf, 0x003345a8, 0x00303c91, 0x0036469d, 0x004350a9, 0x0037469e, 0x002a3c8d,
- 0x004f5e9c, 0x0053648a, 0x00132234, 0x00000e09, 0x00011100, 0x00050e04, 0x00060c06, 0x00070d06, 0x00070c06, 0x00070e05, 0x00080e07, 0x00070d07, 0x000a0f08, 0x00070d06, 0x00080e07, 0x00070f04,
- 0x00080e04, 0x00080e04, 0x00070d04, 0x00080e05, 0x00070d05, 0x00070d05, 0x00070d04, 0x00080e04, 0x00060b02, 0x00060c04, 0x00080d06, 0x00090d07, 0x00090d08, 0x00080d08, 0x00080e08, 0x00090d08,
- 0x00090f07, 0x00091007, 0x00070e06, 0x00050c05, 0x00060b06, 0x00080d08, 0x00070c06, 0x00030902, 0x00000700, 0x00000600, 0x00030a03, 0x00050b05, 0x00030802, 0x00020801, 0x00000600, 0x00000500,
- 0x00010300, 0x00020502, 0x00050805, 0x00070a07, 0x000c0e0b, 0x00111312, 0x001f2120, 0x002a2d2c, 0x00373b37, 0x00464945, 0x00575958, 0x00676b6d, 0x0083878b, 0x00989c9f, 0x00aaaeb0, 0x00b6bbbe,
- 0x00c2c7c6, 0x00ced3d2, 0x00dde3e2, 0x00e3ebe7, 0x00ecf4ef, 0x00eff5f2, 0x00f5f9f9, 0x00f8fafb, 0x00f9faff, 0x00fbfdff, 0x00fbfdff, 0x00fafdfe, 0x00fbfdfd, 0x00fbfdfb, 0x00f9fdfb, 0x00f9fdfd,
- 0x00fbfcfa, 0x00fcfdfb, 0x00fcfefc, 0x00fcfffc, 0x00fafefb, 0x00f9fefb, 0x00f6fdfa, 0x00f6fdfb, 0x00f7fdff, 0x00f5fcfd, 0x00f5fcf7, 0x00fbffef, 0x00fcfef6, 0x00fcfffd, 0x00f9fdff, 0x00f9fdfd,
- 0x00f7fdfd, 0x00f9fdfd, 0x00f3fafd, 0x00f1f7f9, 0x00f3fcfa, 0x00f7f8f9, 0x00e2e2e4, 0x00d9d9dc, 0x00cfd0d2, 0x00c1c2c3, 0x00b5b4b5, 0x00a2a29f, 0x0095968b, 0x00919384, 0x008e917f, 0x008a8e7a,
- 0x0088866a, 0x00827f6b, 0x007e7d6e, 0x00767870, 0x00696c6d, 0x005c6066, 0x00575b63, 0x00585a68, 0x005a5a66, 0x005e5d6e, 0x0061606a, 0x00666666, 0x007a7879, 0x00838284, 0x00a4a4a4, 0x00d9d9d9,
- 0x00fffffe, 0x00fcfbfb, 0x00fcfefc, 0x00fefdfc, 0x00f0f0f1, 0x00a8a8ab, 0x00606467, 0x0084868c, 0x00b2b4bb, 0x00d0d4d4, 0x00e1e7dd, 0x00e0e7d9, 0x00e8eee3, 0x00eceff4, 0x009697aa, 0x00272542,
- 0x00000126, 0x0004052d, 0x000b0d3c, 0x00080b40, 0x000f104e, 0x00181c5a, 0x0019215f, 0x00151f5c, 0x0015205a, 0x0017215a, 0x00122055, 0x0017225b, 0x001f2c69, 0x003d4786, 0x005463a3, 0x004f609d,
- 0x00182860, 0x00020940, 0x0006093b, 0x000d0b3d, 0x000e0b36, 0x000c0d3b, 0x00070b37, 0x00050931, 0x00090c32, 0x00080c3a, 0x0003083b, 0x00010743, 0x000b1150, 0x00161c58, 0x00161e4f, 0x000a133e,
- 0x00121326, 0x00252839, 0x003c3f52, 0x004f5268, 0x00767a8e, 0x009aa1b2, 0x00bec5d6, 0x00dbe3ee, 0x00edf6f9, 0x00f0fafd, 0x00f4fcfd, 0x00f5fcf8, 0x00f9fdf8, 0x00f7faf2, 0x00fafbf8, 0x00fdfef9,
- 0x00fdfdf9, 0x00fdfdf9, 0x00f8fdf6, 0x00f4fdf7, 0x00f9fffb, 0x00fafafd, 0x00f8f5fb, 0x00efebf6, 0x00d6d9e5, 0x00bec7d1, 0x009ba8b7, 0x00748b96, 0x004b6c75, 0x00345b62, 0x00295158, 0x00224d52,
- 0x0029495f, 0x0029495e, 0x002e4e61, 0x002f5164, 0x002c4f5f, 0x002a4f5d, 0x002a4f60, 0x002c505f, 0x002c515e, 0x002c525f, 0x002b525e, 0x002a515a, 0x002f525d, 0x00355561, 0x0041606b, 0x004c6b74,
- 0x0058757e, 0x00627d85, 0x0069838a, 0x00688189, 0x00698089, 0x00697f89, 0x00677e87, 0x00647c84, 0x00647a82, 0x00637981, 0x00627983, 0x00657b85, 0x00697f89, 0x006a8189, 0x00667d85, 0x00617981,
- 0x006a7886, 0x006b7a87, 0x006d7e89, 0x006d7f88, 0x0070828b, 0x0074868f, 0x007b8c96, 0x007f8f9a, 0x007b8e96, 0x00748590, 0x006d7b85, 0x0067757c, 0x0065727a, 0x0068757c, 0x006b787e, 0x0069767d,
- 0x006e7b82, 0x00728087, 0x0079878d, 0x007b8a8f, 0x007a888e, 0x00768289, 0x00738087, 0x00737f88, 0x00747f88, 0x00738088, 0x00718086, 0x006d7c82, 0x006d7981, 0x00707b83, 0x00717e85, 0x00707e83,
- 0x006d787f, 0x0067747b, 0x005d6c72, 0x005c6b70, 0x005d6b70, 0x005b696e, 0x00566369, 0x00536067, 0x00505e64, 0x004f5e65, 0x00515e65, 0x004f5a61, 0x004b545d, 0x0045505b, 0x003c4b54, 0x0036464c,
- 0x00303e47, 0x0026383f, 0x001a3036, 0x00162e34, 0x00142b30, 0x0011272c, 0x0012262e, 0x00263940, 0x006d747a, 0x008e9198, 0x0087868c, 0x008e8a8f, 0x008c8787, 0x00827c7b, 0x00534d4a, 0x001f1b17,
- 0x00fefcfe, 0x00fcfcfe, 0x00fefdfe, 0x00c3c1c0, 0x002d2925, 0x00110904, 0x001e140f, 0x00231714, 0x00281a16, 0x002c1e19, 0x002b1b15, 0x00291a0e, 0x0022190f, 0x001d1710, 0x0018120d, 0x000e0d07,
- 0x000a0508, 0x000b0705, 0x000b0806, 0x00060201, 0x000b0202, 0x00060200, 0x000b0a08, 0x00181614, 0x00312c2a, 0x002a2a2b, 0x00161820, 0x001b2437, 0x003b5077, 0x00516ea2, 0x00496fac, 0x004672b4,
- 0x005573bd, 0x005075b8, 0x004c79b8, 0x00487cb9, 0x004c7ec1, 0x00527bc1, 0x00637dbe, 0x005c669b, 0x004a3a4a, 0x0048342c, 0x00533826, 0x00593a24, 0x005a3825, 0x005d3c28, 0x00715241, 0x00664937,
- 0x003f251d, 0x002b1810, 0x00221210, 0x00191010, 0x00120e11, 0x000f1210, 0x00151714, 0x001a1b18, 0x00241d1c, 0x00292020, 0x00322728, 0x00302324, 0x00413534, 0x008d8380, 0x00e0d8d3, 0x00ded7d2,
- 0x00ded5e4, 0x00e5dde8, 0x00ebe6ec, 0x00ebe9ed, 0x00ebe8ee, 0x00eceaf3, 0x00c4c2cf, 0x00928fa2, 0x008886a7, 0x009b9bbd, 0x009d9bc0, 0x00a4a2c2, 0x00c4c4e7, 0x00cdd1f0, 0x00abb0cf, 0x006f7591,
- 0x00aaacc4, 0x00dcdff0, 0x00e3e4f1, 0x00e5e5eb, 0x00e7e2e8, 0x00dcd9e4, 0x00d6d3df, 0x00e1dde4, 0x00fee5e5, 0x00f8bdaf, 0x00d47e63, 0x00df6943, 0x00e96537, 0x00e16e49, 0x00b55331, 0x0071260a,
- 0x00241413, 0x00110711, 0x00090516, 0x00070725, 0x00170a20, 0x001f0a1b, 0x001f0a16, 0x00241323, 0x003c437c, 0x004b64b1, 0x004c6ebc, 0x00506aaa, 0x005171b8, 0x004e6eb7, 0x005171b1, 0x00768dbc,
- 0x00d9dfec, 0x00f9fcf8, 0x00fdfdef, 0x00fefef1, 0x00fbfef9, 0x00eaf5ce, 0x008c9962, 0x0046531d, 0x003c4813, 0x003c4a12, 0x003c4d12, 0x003d5114, 0x003c5112, 0x003d5213, 0x003f5616, 0x00425a1a,
- 0x00525c24, 0x004e5820, 0x004d561e, 0x004c551d, 0x004f5920, 0x00545d25, 0x00515a23, 0x00545e27, 0x00565c28, 0x0050571f, 0x00525e28, 0x00556530, 0x005a6835, 0x0059672f, 0x0056662d, 0x0056672b,
- 0x0059682c, 0x00536623, 0x00576a28, 0x00667a35, 0x0080924d, 0x0086934d, 0x006d7733, 0x005e6923, 0x005e6826, 0x00626c29, 0x0067702d, 0x00606927, 0x005b6423, 0x005b6425, 0x005a6325, 0x00596123,
- 0x00576627, 0x00677636, 0x00738242, 0x005d6c2b, 0x0051601e, 0x00536321, 0x0050611f, 0x004d5e1c, 0x004e5e1d, 0x004d5c1b, 0x004f5e1f, 0x004e5e20, 0x004d5c25, 0x004f5e2a, 0x00516132, 0x004f6033,
- 0x004f5e36, 0x004f5e30, 0x004d5f2c, 0x004f6128, 0x00516223, 0x00536624, 0x00516423, 0x00556425, 0x00566425, 0x00566424, 0x00576222, 0x005b6324, 0x00606528, 0x0064662a, 0x0065662a, 0x00656729,
- 0x0059713a, 0x00647b42, 0x0075864b, 0x00798647, 0x006c7435, 0x00606729, 0x006d773d, 0x00727f48, 0x00697a4f, 0x005f764c, 0x00596f3e, 0x00576823, 0x005c6c26, 0x0063722f, 0x00677835, 0x00768642,
- 0x006b793a, 0x005a682a, 0x00506021, 0x00506021, 0x004e5e20, 0x00495919, 0x00485917, 0x00465616, 0x00465616, 0x00445313, 0x00455317, 0x00465418, 0x0045531a, 0x00445218, 0x0042511a, 0x00404f17,
- 0x0047541a, 0x00435418, 0x003f5013, 0x003d4c0f, 0x003f4c10, 0x003f4a0f, 0x003e480e, 0x003f4a10, 0x00434b10, 0x00414c10, 0x00434c14, 0x00434e16, 0x00404d0f, 0x0042510e, 0x0046520f, 0x0046540f,
- 0x00465018, 0x00454f1e, 0x005a643e, 0x00adb39b, 0x00fefff5, 0x00fafbf4, 0x00fcfdfa, 0x00fbfbfb, 0x00f8fbfd, 0x00babebf, 0x00606467, 0x008d9396, 0x00c9ced4, 0x00e2e8ef, 0x00eef5fd, 0x00ecf3fc,
- 0x00f8e7ff, 0x00faf1fb, 0x00f4f4fe, 0x00d6ecfc, 0x0098c2f1, 0x0076a8e2, 0x006591ce, 0x005477a5, 0x00707364, 0x00a89f69, 0x00c2a164, 0x00b87f53, 0x00ba7a4b, 0x00c37e4c, 0x00bb733c, 0x00bd703c,
- 0x00b66937, 0x00a96030, 0x00a45f34, 0x00a5653d, 0x009f6441, 0x00a06435, 0x00a96937, 0x00b16e3a, 0x00b76f3b, 0x00bb733b, 0x00c27940, 0x00c77f45, 0x00c8824a, 0x00c3804a, 0x00c1814c, 0x00ba7b46,
- 0x0074452e, 0x0047220a, 0x0043250e, 0x00422f1b, 0x002f2d1e, 0x00303324, 0x002d3523, 0x002d3621, 0x0031311f, 0x0031301c, 0x00332f1b, 0x0032301d, 0x0032301c, 0x0033301d, 0x0035331f, 0x00353521,
- 0x00373423, 0x00373523, 0x00383623, 0x00383522, 0x00363422, 0x0034331e, 0x0031331c, 0x0030331d, 0x00313221, 0x00323122, 0x00343026, 0x00383126, 0x003f3228, 0x00433325, 0x00473326, 0x004a3125,
- 0x00462d23, 0x003a241a, 0x00817069, 0x00ece5dd, 0x00fefefb, 0x00fcfefc, 0x00fbfefd, 0x00fbfdfd, 0x00cdcbcb, 0x00605f5b, 0x002c241f, 0x0032261e, 0x0023210f, 0x00221e0a, 0x003e2916, 0x00512716,
- 0x006a1311, 0x00670809, 0x006e1317, 0x00873c3d, 0x00996e6d, 0x008b7678, 0x00766d73, 0x0072686e, 0x005b5158, 0x00463d42, 0x0053494c, 0x00615857, 0x00686062, 0x006f6565, 0x00736b69, 0x00766f6c,
- 0x0096725d, 0x00996f60, 0x00845548, 0x00824f44, 0x0078534c, 0x00624a43, 0x00241812, 0x00040300, 0x00030203, 0x00000403, 0x00131416, 0x0025242d, 0x001b1a22, 0x00050506, 0x00000100, 0x00020300,
- 0x00070606, 0x00050509, 0x00504f5b, 0x00a6a4b8, 0x00c1bdd7, 0x00adaed0, 0x00b4b8dc, 0x00babfde, 0x00cccbdf, 0x00d9d6e2, 0x00a09a9e, 0x00605755, 0x00443730, 0x0046362b, 0x00453428, 0x003c291b,
- 0x002b1f17, 0x00251a10, 0x0023170d, 0x00281d13, 0x0032291f, 0x00382d24, 0x003f322a, 0x00473a31, 0x004f453b, 0x00584e44, 0x00645850, 0x00676057, 0x00635c54, 0x0055514b, 0x004b4744, 0x003c3b3a,
- 0x0035323a, 0x0033323e, 0x00343644, 0x00383b4c, 0x00434758, 0x004a515c, 0x0050545d, 0x0053545c, 0x00574f4e, 0x00554a44, 0x0054463d, 0x004c3d33, 0x0041372d, 0x00322d25, 0x0024221c, 0x00171913,
- 0x001b1418, 0x00171519, 0x00111319, 0x000e181f, 0x0016232f, 0x00202d39, 0x002f3a47, 0x003e444d, 0x0045464b, 0x00484446, 0x004c4645, 0x0048443b, 0x0046403a, 0x0042382f, 0x003c302c, 0x00352b2a,
- 0x002f323c, 0x00334353, 0x003d5971, 0x003f6b87, 0x00447b9e, 0x004781a5, 0x005287ac, 0x005484a3, 0x005b7b96, 0x0062798d, 0x00a0adbc, 0x00e7ebf4, 0x00fefffe, 0x00fbfbfb, 0x00fcfcfb, 0x00fcfdfb,
- 0x00fffdff, 0x00fffeff, 0x00fdfdfe, 0x00ffffff, 0x00fbfbfc, 0x00fbfcfc, 0x00fbfbfb, 0x00fdfdfd, 0x00fffeff, 0x00fdfdfd, 0x00f3f5f3, 0x00e5e9e2, 0x00cfd4ce, 0x00bdc0bb, 0x00a0a39f, 0x008a8d87,
- 0x0060635e, 0x00444742, 0x00242723, 0x00181b15, 0x000b0e0b, 0x00080a05, 0x000c0b07, 0x000d0d06, 0x000a0c07, 0x000b0c08, 0x000d0d0a, 0x000e0f0b, 0x0011110b, 0x000f100a, 0x000a0c06, 0x00080904,
- 0x00060a09, 0x00070d05, 0x000b1205, 0x00081207, 0x00040c18, 0x001d2448, 0x00545e97, 0x005f6bba, 0x005261c0, 0x00394ba8, 0x002f3f99, 0x00414b9c, 0x004a5aaf, 0x003f4ea6, 0x002c3b95, 0x002a388e,
- 0x004a5498, 0x00576790, 0x001c2c3f, 0x00030f0c, 0x00041202, 0x00051004, 0x00050c06, 0x00080b05, 0x00080e06, 0x00090f07, 0x00090f08, 0x00080d06, 0x00090e07, 0x00090f07, 0x00091007, 0x000b120b,
- 0x000a0e06, 0x00080d03, 0x00090f03, 0x00080f03, 0x00091005, 0x00080f05, 0x00080e05, 0x00080e04, 0x00090f07, 0x00080f06, 0x00080e07, 0x00090e07, 0x00090e08, 0x00090f08, 0x00090f07, 0x000a0f07,
- 0x000b100b, 0x000b0f09, 0x000a0e08, 0x00090f07, 0x00090f06, 0x00080f05, 0x00060d04, 0x00040a03, 0x00050c07, 0x00050d06, 0x00070d06, 0x00060d06, 0x00050c05, 0x00060c05, 0x00040902, 0x00030900,
- 0x00060904, 0x00030601, 0x00030401, 0x00030502, 0x00010300, 0x00000300, 0x00030501, 0x00040602, 0x00050504, 0x00050604, 0x00080a0a, 0x000a0e10, 0x00101417, 0x00131618, 0x001d2021, 0x00272c2d,
- 0x003b4242, 0x004e5455, 0x0065696a, 0x00767979, 0x008c9192, 0x009ba2a6, 0x00adb4b9, 0x00bbc1c5, 0x00c6ccd2, 0x00d7dcde, 0x00e9ebed, 0x00f3f5f7, 0x00f9fbfd, 0x00fcfeff, 0x00fcfeff, 0x00fcfdff,
- 0x00fafefd, 0x00fafefd, 0x00fafefe, 0x00f8fdfc, 0x00f9fefd, 0x00f9fefd, 0x00fafefe, 0x00fafefe, 0x00fafefe, 0x00f8feff, 0x00fbfffa, 0x00fbfdf3, 0x00fbfdf6, 0x00f9fdf9, 0x00f8fbf9, 0x00fbfbfc,
- 0x00faf9ff, 0x00f9fbfc, 0x00fbfcfe, 0x00fcfdfe, 0x00fbfdfd, 0x00fcfeff, 0x00fafafc, 0x00fcfefd, 0x00fffdff, 0x00fbfafc, 0x00fbfafd, 0x00f5f6f6, 0x00f1f3ee, 0x00eef0e7, 0x00edeee3, 0x00eaecdd,
- 0x00e0d8cd, 0x00d6d1c4, 0x00c9c7c0, 0x00b8bab3, 0x00a6abab, 0x009ba1a2, 0x00969aa1, 0x0093969d, 0x0094949e, 0x0096979e, 0x009d9da3, 0x00aaabab, 0x00b6b6b9, 0x00bdbdbe, 0x00cfcfd2, 0x00ecedee,
- 0x00fefcff, 0x00fafbfc, 0x00fffffe, 0x00fffffe, 0x00edeaec, 0x009b9e9d, 0x005e6363, 0x0083878b, 0x00b3b5bf, 0x00d0d5d8, 0x00e0e6e5, 0x00e5ebe2, 0x00dee4dd, 0x00e8eced, 0x00bfc1cb, 0x00515161,
- 0x00030122, 0x00010224, 0x00090831, 0x00100f3f, 0x00191851, 0x001a1c57, 0x00151b55, 0x00121d54, 0x00181f53, 0x00172351, 0x001b2453, 0x0025285a, 0x00394076, 0x004b578f, 0x0051619c, 0x004a5d9c,
- 0x002d3d7d, 0x0009134e, 0x00070c45, 0x000b0b3c, 0x00100d38, 0x000b0d3e, 0x00070b40, 0x000a0f3a, 0x000e1139, 0x000c113b, 0x00090e40, 0x0003063d, 0x00070940, 0x00101341, 0x002b3157, 0x003b445f,
- 0x00615f6d, 0x008d8b97, 0x00c2c0cd, 0x00d8d9e3, 0x00e8eaf4, 0x00f1f3fc, 0x00f9fdff, 0x00f8feff, 0x00f8fdff, 0x00f7fafd, 0x00f9fbfa, 0x00fdfff8, 0x00fcfefa, 0x00fcfff9, 0x00fcfffb, 0x00fbfffb,
- 0x00fbfcfc, 0x00f8fbfc, 0x00f6fdfb, 0x00f0fdfc, 0x00deedee, 0x00cdd7e2, 0x00b5bccc, 0x0096a0b0, 0x006d788b, 0x004e5f6d, 0x00394d60, 0x00314c5a, 0x002c4c5a, 0x002d515f, 0x002d5261, 0x00295160,
- 0x002f4c61, 0x002c4b60, 0x002d4d5f, 0x002c4f5f, 0x0029505e, 0x002a515d, 0x002d525d, 0x002e525e, 0x002f5461, 0x002f5660, 0x00315660, 0x0033565f, 0x003a5963, 0x00415e68, 0x004c6771, 0x00567079,
- 0x00637984, 0x006b818a, 0x0072868f, 0x0073868e, 0x0073858f, 0x00748790, 0x00738690, 0x0071858d, 0x0070828d, 0x006f818a, 0x006f8089, 0x0071838b, 0x00758790, 0x00758891, 0x0071828d, 0x006b7c87,
- 0x006e7c88, 0x006e7d88, 0x0070818b, 0x0073858d, 0x0076888f, 0x00788a92, 0x007f9099, 0x0084949f, 0x0082919d, 0x007a8995, 0x0071808a, 0x00697880, 0x0067757d, 0x006b7980, 0x006f7d84, 0x00707f85,
- 0x0074808a, 0x0076858d, 0x007c8c94, 0x00819198, 0x0085939a, 0x00839098, 0x00808e97, 0x007d8c94, 0x007c8a93, 0x007e8c95, 0x007e8c96, 0x007a8891, 0x007a888f, 0x007e8c92, 0x00818f96, 0x00808f95,
- 0x007e8e95, 0x0075868c, 0x00697c82, 0x0063767d, 0x00677980, 0x0065767e, 0x00607279, 0x005c6f75, 0x00586b73, 0x00586a72, 0x005b6a74, 0x005d6975, 0x0056646f, 0x004d5e6a, 0x00465a63, 0x003f545a,
- 0x00324952, 0x00294248, 0x00203b41, 0x001d3b40, 0x001f3d42, 0x001b353b, 0x001f353d, 0x002a3e45, 0x00818b95, 0x00bfc5cd, 0x00bebec6, 0x00c1bdc1, 0x00c1bbbe, 0x00bfb8b6, 0x008c8582, 0x003f3a33,
- 0x00fefcfc, 0x00fdfcfd, 0x00fefbfb, 0x00cec8c7, 0x003f3736, 0x00180c0b, 0x00251714, 0x00291c19, 0x002f1f1c, 0x00332320, 0x00301f19, 0x002f1e10, 0x00281d11, 0x00231c14, 0x001b140f, 0x00110f0c,
- 0x0008070a, 0x00050708, 0x00050507, 0x00060206, 0x000b0307, 0x000b0b09, 0x00040603, 0x00050502, 0x0012110b, 0x0010100e, 0x0002060b, 0x001b2433, 0x00495f83, 0x005271a3, 0x00496daa, 0x004a74b9,
- 0x005674bb, 0x005174b7, 0x004e78b5, 0x004a7bb4, 0x004c7cbe, 0x00537bc1, 0x006580c2, 0x0059669e, 0x00473a4a, 0x0048372f, 0x00513c2a, 0x00553e30, 0x00533a2a, 0x004e3626, 0x00543e2d, 0x00483222,
- 0x00321f15, 0x00271911, 0x001d140f, 0x0017100f, 0x00101012, 0x000f110d, 0x00161710, 0x001d1b16, 0x00271d1a, 0x002e2222, 0x00352628, 0x0039292b, 0x003d2e2d, 0x0060534f, 0x00c1b7b1, 0x00e3dbd4,
- 0x00dbd6dd, 0x00dfdbe0, 0x00e9e6ec, 0x00eeebf0, 0x00eae8ec, 0x00e5e7ed, 0x00cccedb, 0x009e9cb0, 0x008e8aa9, 0x00aaa5c8, 0x00a5a1c4, 0x009795af, 0x00dddcf6, 0x00e7e9ff, 0x008c8fa6, 0x00606279,
- 0x00bbbdd0, 0x00dcdceb, 0x00dfdeeb, 0x00e3e2e8, 0x00e6dfe4, 0x00e6e5ea, 0x00e0e0e5, 0x00e1dce0, 0x00f3d3ce, 0x00e6a68f, 0x00ca6c4e, 0x00e66e48, 0x00e7724b, 0x00ce795f, 0x00875543, 0x002a1918,
- 0x00010513, 0x00000416, 0x00040219, 0x00070019, 0x00120017, 0x001a081f, 0x001b0f24, 0x001d1d37, 0x003b4774, 0x0048629a, 0x004967a7, 0x004c64a0, 0x004e6cb3, 0x004d6cb1, 0x00526fae, 0x00778ebd,
- 0x00d8dfe9, 0x00fafcfa, 0x00fefcf3, 0x00fffff9, 0x00f6fdfc, 0x00f0fad8, 0x00a0aa76, 0x0056602d, 0x003a450f, 0x003a470f, 0x003e4d13, 0x003b4c10, 0x003b4c12, 0x003d4e12, 0x00425417, 0x00455818,
- 0x004c5924, 0x0047521e, 0x00434d19, 0x00444d18, 0x0049511b, 0x004b531e, 0x004e5721, 0x00505824, 0x005d6432, 0x00626632, 0x00525c26, 0x00506225, 0x0057692d, 0x005a6c2e, 0x005e7134, 0x005c6b2d,
- 0x00536529, 0x00536528, 0x0053642a, 0x0056692d, 0x005f7237, 0x00637331, 0x005e6c27, 0x00586823, 0x005c6a27, 0x005f6c29, 0x00626d2c, 0x005d6a29, 0x005d692b, 0x00606c2f, 0x005d6b2e, 0x00566226,
- 0x0058682b, 0x006e7e40, 0x00849357, 0x00829154, 0x00707e41, 0x005d6c2f, 0x00576628, 0x00526223, 0x004f6022, 0x004c5d22, 0x004c5c23, 0x004a5a25, 0x004a5b29, 0x004e5d34, 0x0052613d, 0x0051603f,
- 0x004d583c, 0x004c5937, 0x004b592e, 0x00485828, 0x00485920, 0x00485b1f, 0x004b5e1e, 0x004b5d1d, 0x004e5c1e, 0x004d5b1d, 0x00505b1e, 0x0051581c, 0x0053571d, 0x0056571e, 0x0058591f, 0x005a5b20,
- 0x00526a2e, 0x0062783a, 0x00778949, 0x007b8744, 0x006c7430, 0x00646b29, 0x00767d42, 0x0078814a, 0x005f7244, 0x00556b3e, 0x00526938, 0x0057692c, 0x00647334, 0x006c7d3e, 0x00667938, 0x006d7c3b,
- 0x00647336, 0x005d6d2d, 0x00576727, 0x0058692a, 0x00546526, 0x00536324, 0x00546425, 0x00526124, 0x004f6023, 0x004d5e22, 0x004b5c23, 0x004a5a22, 0x00495725, 0x00485622, 0x004b5825, 0x004e5b28,
- 0x0053612a, 0x00475820, 0x00425119, 0x00415016, 0x00404f14, 0x00404e13, 0x00404c13, 0x003e4a12, 0x003b4d11, 0x003e4b12, 0x003f4a14, 0x00424c19, 0x003e4b12, 0x003f4a0e, 0x003c490a, 0x003d4a0a,
- 0x003d4815, 0x003c481a, 0x00525c3c, 0x00a7ad9c, 0x00f8fdf8, 0x00f9fdf7, 0x00fcfcf8, 0x00fffdfe, 0x00f6fbfa, 0x00b8bbbc, 0x0063666a, 0x008c9097, 0x00c7ccd4, 0x00dfe5ed, 0x00ebf2fa, 0x00eef5fd,
- 0x00f6f4fd, 0x00f3eff2, 0x00f9f4f3, 0x00fbfbff, 0x00cfe6fa, 0x009dc4fa, 0x006a9be0, 0x006292d3, 0x00647482, 0x00848571, 0x00c5aa85, 0x00bd8657, 0x00b9794d, 0x00be7948, 0x00c07842, 0x00c0743c,
- 0x00b26631, 0x00a65d2c, 0x0099532a, 0x00955530, 0x00935d3b, 0x009c6133, 0x00a46632, 0x00a96835, 0x00ad6932, 0x00b26b33, 0x00bb7037, 0x00c2773e, 0x00c37a43, 0x00c17c46, 0x00c5824d, 0x00bf7d49,
- 0x007d5433, 0x00502f10, 0x003f260b, 0x003e2d14, 0x00353420, 0x00323523, 0x002f3523, 0x002f3422, 0x0031311e, 0x00312e1d, 0x00322f1b, 0x0031301c, 0x0033301d, 0x0034311e, 0x0035341f, 0x00363522,
- 0x00373523, 0x00373423, 0x00383522, 0x00373522, 0x00363422, 0x0034331e, 0x0032331c, 0x0032341f, 0x00303220, 0x00303022, 0x00323024, 0x00383027, 0x003f3227, 0x00443427, 0x00473325, 0x004a3125,
- 0x00462d23, 0x003a241b, 0x00817069, 0x00ede6df, 0x00fdfefa, 0x00fbfefc, 0x00f9fdfb, 0x00fcfffd, 0x00cccacb, 0x0060605c, 0x002b2524, 0x002b2825, 0x00161a11, 0x000e1403, 0x00261c0c, 0x00462a19,
- 0x00662020, 0x00691f23, 0x0087434b, 0x008d5f65, 0x005b5051, 0x00343b44, 0x001b2e39, 0x00142931, 0x0009141d, 0x00040c12, 0x00071417, 0x000f171c, 0x00151d1d, 0x001a1c1f, 0x00202627, 0x00333433,
- 0x00554d40, 0x0063564a, 0x00644d46, 0x00684949, 0x006f5657, 0x00544345, 0x00231b1c, 0x000b0d0b, 0x000a090b, 0x00080307, 0x000a050b, 0x00120f18, 0x0014121a, 0x00060709, 0x00000200, 0x00070903,
- 0x00030402, 0x00010008, 0x002b2938, 0x00777589, 0x00b0acca, 0x00aeb0d7, 0x00b6bae1, 0x00c0c4e8, 0x00d2d3ea, 0x00eae7f6, 0x00c3bdc3, 0x0079706f, 0x00483932, 0x0049372d, 0x0047342a, 0x00412b21,
- 0x0031261b, 0x002d2216, 0x002c1f14, 0x00302218, 0x00392d21, 0x003f3329, 0x00463830, 0x004a3c32, 0x004b3f34, 0x0050433a, 0x00574b41, 0x005c5146, 0x00565045, 0x004b453d, 0x00423f3b, 0x00383838,
- 0x00393944, 0x00393d4e, 0x003c4456, 0x00404a60, 0x0049556b, 0x004f5d6c, 0x00535d6a, 0x00555b65, 0x005e5858, 0x0058514c, 0x00564a40, 0x00524438, 0x00463b2f, 0x00393328, 0x002b271f, 0x00201f19,
- 0x001d181c, 0x0016151a, 0x0012151f, 0x00161f2d, 0x00202f41, 0x002a3b4a, 0x00364555, 0x00434d5a, 0x004d5056, 0x004f4d51, 0x00504a49, 0x004d493c, 0x00484138, 0x0042392d, 0x003a2f27, 0x00362b28,
- 0x0032333d, 0x00364356, 0x003f5973, 0x003f6987, 0x004378a1, 0x00417da7, 0x004885ad, 0x004d85a8, 0x00577a97, 0x00566e87, 0x008795a8, 0x00dbdfef, 0x00fcfbfb, 0x00fbfafc, 0x00fdfefc, 0x00fcfefc,
- 0x00fbfbfb, 0x00fbfbfb, 0x00ffffff, 0x00fcfcfc, 0x00f8f7f8, 0x00f3f2f3, 0x00e6e6e7, 0x00d6d5d6, 0x00c2c2c3, 0x00aeafaf, 0x00939691, 0x00777e70, 0x00545c4f, 0x003b4336, 0x00272d24, 0x001e251d,
- 0x000e110c, 0x000a0e09, 0x00080c05, 0x000a0d07, 0x00090e05, 0x00090c06, 0x000d0e07, 0x0010120d, 0x0011150e, 0x0012150f, 0x00131510, 0x00151610, 0x0011120b, 0x000f1109, 0x000e100a, 0x000f110c,
- 0x00030d00, 0x00050c01, 0x00060e02, 0x00030d07, 0x00030b1f, 0x00242c54, 0x006168a4, 0x005d65b3, 0x004d5db2, 0x00354899, 0x003c4e9e, 0x004d58a8, 0x004c58af, 0x0035439c, 0x002b3996, 0x003c45a2,
- 0x004d5aa3, 0x005b689b, 0x00232e4d, 0x00020c13, 0x00020d03, 0x00070f06, 0x00070e07, 0x00070e07, 0x00091009, 0x00070e09, 0x00070e08, 0x00060e06, 0x00060c05, 0x00090e07, 0x000b1009, 0x000b0f0b,
- 0x00070f04, 0x00070f03, 0x00080f03, 0x00080f03, 0x00091005, 0x00060e03, 0x00071005, 0x00071004, 0x00091104, 0x00091105, 0x00091106, 0x00091107, 0x000a1008, 0x00091008, 0x00081008, 0x00091008,
- 0x00081008, 0x00080f08, 0x00090f09, 0x00090f07, 0x00091007, 0x00070f05, 0x00070d05, 0x00080c06, 0x00060d05, 0x00070f06, 0x000a1008, 0x00080d05, 0x00080f06, 0x00081007, 0x00080f06, 0x00061006,
- 0x000a0d08, 0x00090c07, 0x00090b08, 0x000a0c09, 0x00070906, 0x00070a06, 0x00070905, 0x00070804, 0x00040704, 0x00040804, 0x00020603, 0x00000402, 0x00060a08, 0x00040704, 0x00010402, 0x00010504,
- 0x00040607, 0x0007090d, 0x00090b0f, 0x000d0f10, 0x00181b1e, 0x001d2529, 0x00283234, 0x00383d3f, 0x004a514f, 0x00626664, 0x007e7f7d, 0x00959392, 0x00a7a4a6, 0x00b5b2b2, 0x00c2bfbf, 0x00cfcbcd,
- 0x00dadeda, 0x00e7eae9, 0x00eff2f3, 0x00f1f4f5, 0x00f9fbfb, 0x00fbfdfb, 0x00fcfefc, 0x00fcfdfd, 0x00f9fcfb, 0x00fbfdfe, 0x00fdfffd, 0x00fcfdfa, 0x00fdfdf8, 0x00fcfefa, 0x00fdfef9, 0x00fefbf8,
- 0x00fdfdf8, 0x00fcfdf8, 0x00fcfaf9, 0x00fcfafa, 0x00faf8f9, 0x00fbfbfb, 0x00fcfcfa, 0x00fdfdfa, 0x00fcfbff, 0x00fdfcfe, 0x00fffeff, 0x00fcfdfe, 0x00fdfdfe, 0x00fdfdfc, 0x00fefffa, 0x00fefff7,
- 0x00fdfbf8, 0x00fbfbf7, 0x00f9f8f6, 0x00f3f4f4, 0x00ecf0ef, 0x00e9ecee, 0x00e7e9eb, 0x00e2e5e6, 0x00e2e1e3, 0x00e2e1e1, 0x00e1e0df, 0x00dedede, 0x00dedfde, 0x00e0e0e0, 0x00e9e9ea, 0x00f6f7f8,
- 0x00f9f9fd, 0x00f9fbfd, 0x00fdfdfd, 0x00fcfdfd, 0x00e1dfe1, 0x008f9591, 0x005b625e, 0x00868b8f, 0x00b3b7c5, 0x00d1d6e3, 0x00e0e5ed, 0x00e0e5e7, 0x00e2e8e1, 0x00e3e7e5, 0x00d2d3d7, 0x006f707a,
- 0x0006051f, 0x0001001d, 0x000e0a32, 0x002d2857, 0x003d3b71, 0x0033346a, 0x0022255a, 0x00202658, 0x00252d54, 0x00222e51, 0x00293054, 0x0035325b, 0x00353969, 0x00353e73, 0x0031427a, 0x00364a8c,
- 0x003a4c8e, 0x001b2766, 0x00061049, 0x00080a41, 0x000d0a38, 0x000b0b43, 0x00080c46, 0x00090f40, 0x00091038, 0x000d113b, 0x00151844, 0x00212355, 0x003d3e6b, 0x005a5d82, 0x008e93ac, 0x00b3bac7,
- 0x00dad7dc, 0x00eae7ec, 0x00fbf6fb, 0x00feffff, 0x00fbfdfd, 0x00fdfbfc, 0x00fffffd, 0x00fbfdfc, 0x00f9fdfe, 0x00fbfdfb, 0x00fefffb, 0x00f9fcf1, 0x00f9fbf6, 0x00fafcf9, 0x00fcfefd, 0x00fafbfd,
- 0x00ecf4fa, 0x00dbe8ef, 0x00c3d5da, 0x00a9c1c4, 0x007d999e, 0x0061808c, 0x00476575, 0x00395564, 0x002c4857, 0x002b4857, 0x00325061, 0x003d5b6b, 0x00537086, 0x0057738a, 0x00506c83, 0x004d697f,
- 0x0040606f, 0x003b5b6b, 0x00355461, 0x002e4d5a, 0x002b4e59, 0x0032565e, 0x00365a63, 0x00365c63, 0x00385d64, 0x00386165, 0x003a6167, 0x003f5f69, 0x0046646d, 0x004a6871, 0x00546f78, 0x005e767f,
- 0x006e8189, 0x00768890, 0x007f8f96, 0x00808e95, 0x00818d95, 0x007e8b93, 0x007b8a92, 0x007a8890, 0x00778791, 0x0076858e, 0x0077858d, 0x007b8991, 0x00818f98, 0x0083919a, 0x007e8a95, 0x0078838e,
- 0x00718088, 0x0073828b, 0x0076848d, 0x00798690, 0x007b8892, 0x007a8991, 0x007f8e96, 0x00819199, 0x007f8f97, 0x00798892, 0x0071818c, 0x006b7b85, 0x00687681, 0x006b7884, 0x00717f8a, 0x00727f89,
- 0x0073828b, 0x0078878f, 0x007d8f97, 0x0082949c, 0x008898a0, 0x008897a0, 0x0083949e, 0x007f9099, 0x007e8e95, 0x0082919a, 0x0084929c, 0x00808e98, 0x007d8c95, 0x00819098, 0x0085939d, 0x0085929d,
- 0x007d9297, 0x00778c91, 0x006b7f85, 0x00687a82, 0x00667781, 0x0064757e, 0x005f717a, 0x005b6f76, 0x00586c74, 0x00596c71, 0x005a6b74, 0x005a6977, 0x00556774, 0x004f646d, 0x00475e66, 0x003d555c,
- 0x0035515a, 0x002b484f, 0x00214248, 0x001e4348, 0x001c4246, 0x001d3d43, 0x00263e47, 0x00273a44, 0x00798791, 0x00d1dae2, 0x00e9e9ee, 0x00ece7eb, 0x00ece4e5, 0x00ede4e4, 0x00c3b9b6, 0x0069615b,
- 0x00fffcfe, 0x00fcfafb, 0x00fffcfb, 0x00d6d0cd, 0x00514745, 0x001e100f, 0x00281816, 0x002f1f1f, 0x00382020, 0x00372422, 0x0034221b, 0x0033200f, 0x002d2011, 0x00261d13, 0x001c1612, 0x00131212,
- 0x000e0d12, 0x0009090f, 0x0007050f, 0x00070510, 0x0005020c, 0x0006080a, 0x00030703, 0x00040700, 0x00050400, 0x00020202, 0x0006090e, 0x00212837, 0x00516688, 0x004d6c9b, 0x004b70aa, 0x00446eb2,
- 0x005773bc, 0x005476b7, 0x004f79b2, 0x004a7cae, 0x004c7cb8, 0x005379bf, 0x00667ec1, 0x0059639e, 0x0044374a, 0x0048352d, 0x004f3a2a, 0x004d3b30, 0x00503d32, 0x004c382b, 0x003f2e20, 0x003d2c1f,
- 0x002e2018, 0x00271d16, 0x00191310, 0x0014100f, 0x00151417, 0x0013130f, 0x0018160d, 0x00211b14, 0x00291e19, 0x00302220, 0x003a2b2b, 0x00403131, 0x00433332, 0x00453833, 0x00867d75, 0x00dad3c9,
- 0x00dcd4dd, 0x00e0dae0, 0x00e9e5ec, 0x00efedf4, 0x00e9e8ed, 0x00dfdee6, 0x00cccada, 0x00a6a2b6, 0x009792b2, 0x00b5add0, 0x00b6aece, 0x00adaabc, 0x00dddaef, 0x00ddddef, 0x0084879a, 0x005f6273,
- 0x00c8c7dc, 0x00dcdbe6, 0x00e2e0e9, 0x00e3dfe3, 0x00e3dadf, 0x00e7e6e3, 0x00e5e7e1, 0x00e6e2dd, 0x00f2cac2, 0x00e7a38c, 0x00d27354, 0x00ec7855, 0x00f39478, 0x00c69b91, 0x00727677, 0x000e3e4f,
- 0x00010412, 0x0006000a, 0x000f000c, 0x00180111, 0x000c0321, 0x0002042d, 0x00021642, 0x00032650, 0x002c405a, 0x004a5364, 0x00535a7b, 0x00475c9a, 0x00536fb7, 0x00566fb8, 0x00586db0, 0x00788bbf,
- 0x00d9dcef, 0x00fbfafd, 0x00fefcfc, 0x00fffeff, 0x00f8fcff, 0x00f0f6d7, 0x009ca475, 0x0052592c, 0x003d4617, 0x003f4918, 0x00404b18, 0x00404d18, 0x003e4d16, 0x003e4f18, 0x0041521a, 0x0041521b,
- 0x00475227, 0x00445125, 0x00455121, 0x00424e1c, 0x00404a1b, 0x00444b1d, 0x00505226, 0x0057592e, 0x007e8057, 0x00858559, 0x005a612f, 0x00526427, 0x005a6c2e, 0x00617435, 0x006d8246, 0x0067793f,
- 0x005b6935, 0x00556731, 0x00516331, 0x00546634, 0x0059683a, 0x0057652b, 0x005b6828, 0x005b692c, 0x005c692c, 0x005b692d, 0x005c6c31, 0x005d6e33, 0x0066743b, 0x006f7c44, 0x0069773f, 0x005c6831,
- 0x005d6a3a, 0x00657342, 0x00859461, 0x00abbb86, 0x0099a874, 0x00707e4b, 0x0063703d, 0x00636f3e, 0x005f6c3a, 0x00576633, 0x00546333, 0x00556339, 0x0054613e, 0x00546247, 0x0056634d, 0x00566050,
- 0x0054604f, 0x00515c46, 0x004d593c, 0x00495735, 0x00475629, 0x00485926, 0x00495b23, 0x00485d23, 0x004c5922, 0x004c5821, 0x004d5620, 0x004f551f, 0x0050521d, 0x0052521e, 0x0052531f, 0x0050521f,
- 0x00456222, 0x0049601e, 0x00576722, 0x00656c24, 0x0064661e, 0x005f621c, 0x00606424, 0x005b6226, 0x00506433, 0x00506638, 0x004e6334, 0x0054652f, 0x00697943, 0x0072804c, 0x005e6c35, 0x0059682d,
- 0x005b6a34, 0x005d6c34, 0x005e6d34, 0x005c6c2f, 0x00576728, 0x00546429, 0x0054632d, 0x0057662e, 0x00586732, 0x00586734, 0x00556432, 0x00536234, 0x00526232, 0x00526034, 0x0059663a, 0x00636f44,
- 0x00616c3b, 0x0053602e, 0x00495625, 0x00475524, 0x00455525, 0x00435323, 0x00415321, 0x00405321, 0x003f511d, 0x003c4f1b, 0x003d4e1d, 0x00404c1e, 0x00424c19, 0x00414b15, 0x003f4b13, 0x003e4a12,
- 0x0040481d, 0x003b4420, 0x004f543f, 0x00a6a7a1, 0x00fcfcff, 0x00fefffc, 0x00fcfff7, 0x00fbfefb, 0x00f9fafd, 0x00babcc0, 0x0066686f, 0x0091949d, 0x00cacfda, 0x00e2e8f2, 0x00eff6fd, 0x00f0f7fd,
- 0x00dcfcf3, 0x00e9fdef, 0x00f5f3f2, 0x00fdeff7, 0x00f4f2fc, 0x00d7effd, 0x0092bfea, 0x006da7d9, 0x007091b7, 0x00828eaa, 0x00a49092, 0x00c69163, 0x00c18659, 0x00b87441, 0x00bd743d, 0x00c3743f,
- 0x00bb6c38, 0x00aa6032, 0x008e491d, 0x007b3c18, 0x007d4624, 0x008d5228, 0x00965926, 0x009d5b2a, 0x00a25d28, 0x00a9622b, 0x00b36930, 0x00bc7138, 0x00c37a45, 0x00c8824f, 0x00cf8c57, 0x00c78652,
- 0x00976f49, 0x00674621, 0x00432d0c, 0x003b2d10, 0x0033331e, 0x00323626, 0x00333629, 0x00313326, 0x0032311f, 0x00312e1e, 0x00312f1c, 0x0031301c, 0x0033301c, 0x0034311e, 0x0035341f, 0x00353422,
- 0x00373522, 0x00373523, 0x00383521, 0x00373521, 0x00363423, 0x00343420, 0x0034341e, 0x00353421, 0x00343425, 0x00323224, 0x00333025, 0x00383127, 0x00413328, 0x00453427, 0x00453224, 0x00452f20,
- 0x00462d21, 0x00392319, 0x0083716a, 0x00ece6df, 0x00fdfefb, 0x00fdfffe, 0x00f9fdfb, 0x00fdfffe, 0x00cecccb, 0x0062605e, 0x002a2527, 0x00252027, 0x000e1a17, 0x00000803, 0x000b0b01, 0x002b1f13,
- 0x00602f35, 0x0076444d, 0x008b6773, 0x00584e56, 0x00072321, 0x00090e19, 0x00160e20, 0x00120a18, 0x000d020f, 0x000c0007, 0x000e0007, 0x00220a12, 0x00391b1e, 0x00331216, 0x00240207, 0x00200302,
- 0x00021612, 0x000c1c19, 0x00101417, 0x0017161c, 0x001e1821, 0x001c1620, 0x0016141d, 0x00131219, 0x001c111f, 0x00150915, 0x00080007, 0x00040209, 0x00020308, 0x00000002, 0x00030202, 0x00010401,
- 0x00070607, 0x0007070d, 0x000c0a19, 0x003f3c54, 0x009c97bb, 0x00bcbee9, 0x00c5caf8, 0x00cacef7, 0x00c2c2dc, 0x00c4c0d3, 0x00aca6b1, 0x00786d70, 0x004d3936, 0x004b352d, 0x00432e24, 0x003f281d,
- 0x00372920, 0x0034261d, 0x0033261d, 0x0034281d, 0x003b2d22, 0x00403328, 0x0045372d, 0x0046372e, 0x0043372c, 0x0045372e, 0x004c3e33, 0x0054473a, 0x00534a3e, 0x0049433a, 0x0041403c, 0x003d3f41,
- 0x003d4050, 0x003e4659, 0x00404d61, 0x0044526b, 0x004b5c78, 0x004f6279, 0x00516174, 0x00525e6c, 0x00605d61, 0x005c5552, 0x00594d43, 0x0057493d, 0x00473c31, 0x003c332a, 0x00312b23, 0x0028251d,
- 0x00231f26, 0x00191b22, 0x00161d27, 0x001d2c39, 0x002b3d52, 0x0034475b, 0x003d4e63, 0x00495668, 0x00585c65, 0x0056575e, 0x00555350, 0x0052503e, 0x00474134, 0x0041382a, 0x00382d22, 0x00332a20,
- 0x002c2a32, 0x002c3a48, 0x00334e67, 0x003a6082, 0x003e709c, 0x003d7ca9, 0x004183ae, 0x004682a8, 0x00557d9d, 0x00516984, 0x007a869d, 0x00d1d5e3, 0x00fdfcff, 0x00fbfbfc, 0x00fbfdfb, 0x00f9fcf6,
- 0x00fcfdfc, 0x00f0f0ef, 0x00e0e0df, 0x00cbcbcb, 0x00afadae, 0x00959495, 0x00757676, 0x00575757, 0x00383838, 0x00232324, 0x00171915, 0x00151c0d, 0x00121909, 0x000e1505, 0x000c1306, 0x000a1106,
- 0x000d0f0a, 0x000d100b, 0x000b0e07, 0x00070a02, 0x00090d03, 0x000c1007, 0x0010110b, 0x00141511, 0x00191b14, 0x00191b13, 0x00181912, 0x00181911, 0x00101009, 0x000d0d07, 0x000d0d08, 0x000b0b06,
- 0x00071002, 0x00040d00, 0x00000900, 0x00020c06, 0x00060a27, 0x00292e5b, 0x00686dad, 0x005a62ad, 0x00495aa7, 0x003a4b94, 0x004e5fa8, 0x004f5bac, 0x00434ca5, 0x00343d9d, 0x003643a4, 0x003c47a9,
- 0x00505bad, 0x005b63a3, 0x00232a54, 0x00010a1d, 0x00050d09, 0x000a100e, 0x00060e07, 0x00080f07, 0x00070d07, 0x00070d04, 0x00060b06, 0x00060b07, 0x00060c05, 0x00070d06, 0x000a0f09, 0x00090e04,
- 0x00061003, 0x00071105, 0x00081106, 0x00071005, 0x00091206, 0x00071104, 0x00071205, 0x00061104, 0x00071104, 0x00091004, 0x00091006, 0x00071006, 0x00080f07, 0x00080f07, 0x00080f07, 0x00080f07,
- 0x00091108, 0x000a1108, 0x000a1109, 0x00091109, 0x000b130b, 0x00091009, 0x00070e07, 0x00060d06, 0x00071006, 0x00070f07, 0x00080e07, 0x00070d06, 0x00070e05, 0x00060d04, 0x00080f07, 0x00070f07,
- 0x00090d07, 0x000a0e08, 0x00090c07, 0x00080c07, 0x000a0e09, 0x000c110c, 0x000c100b, 0x000a0f0a, 0x000c0f08, 0x00090c06, 0x00070b05, 0x000a0c05, 0x000c0c05, 0x000c0c06, 0x000a0b07, 0x00080906,
- 0x000d070a, 0x00090608, 0x00060404, 0x00080305, 0x00070205, 0x00040605, 0x00010702, 0x00020501, 0x00070903, 0x000c0c07, 0x00130f09, 0x0019140c, 0x001f1812, 0x00241d17, 0x00342d24, 0x00474137,
- 0x006b6965, 0x00908d8a, 0x00afacab, 0x00b6b3b3, 0x00c7c2c5, 0x00d5d1d5, 0x00dcd9df, 0x00e0dce2, 0x00e5e4e3, 0x00eeeeea, 0x00f7f7f8, 0x00fdfeff, 0x00fefdff, 0x00fdfdf8, 0x00fcfcf2, 0x00fdfceb,
- 0x00fffeed, 0x00fefdef, 0x00fffdf7, 0x00fffdfc, 0x00fdf8fc, 0x00fcfbff, 0x00fcfcfc, 0x00fbfbfb, 0x00fdfdff, 0x00fdfcfe, 0x00fcfbfc, 0x00fefdfe, 0x00fffcff, 0x00fefcfd, 0x00fbfcfa, 0x00fcfcf8,
- 0x00fff9ff, 0x00fffcff, 0x00fffcfe, 0x00fcfdfc, 0x00fbfefe, 0x00fbfffd, 0x00fcfffd, 0x00fcfff8, 0x00fdfffa, 0x00fdfdf3, 0x00fcfaf5, 0x00fafbfb, 0x00f7f9fa, 0x00fafafa, 0x00fcfcfd, 0x00fafcfb,
- 0x00fcfbfe, 0x00fafbfd, 0x00fbfefe, 0x00fafcfb, 0x00d5d6d5, 0x00828780, 0x005b625b, 0x008b9192, 0x00b8bdd7, 0x00d3d9ed, 0x00dadff1, 0x00dadee8, 0x00e0e6e2, 0x00e3e8e4, 0x00dadddf, 0x00848887,
- 0x00130c27, 0x0004001c, 0x00130e32, 0x0044416b, 0x005b5b8b, 0x004a4c7c, 0x002d325f, 0x00222b53, 0x001f2b4a, 0x00192642, 0x001f233f, 0x0020193a, 0x00191942, 0x0011194b, 0x00112157, 0x00243879,
- 0x003c4e92, 0x002a3878, 0x0006104c, 0x00080a43, 0x000a063b, 0x00040440, 0x00080c4a, 0x000e144b, 0x00252d59, 0x00444975, 0x00656798, 0x008c8ebb, 0x00c3c5e0, 0x00dce0ee, 0x00ebeff8, 0x00f4f9f8,
- 0x00fdfafd, 0x00fffffd, 0x00fffbfa, 0x00fffffa, 0x00fdfdf9, 0x00fefcf9, 0x00fdfdf8, 0x00fdfef7, 0x00fefefa, 0x00fffefb, 0x00fffcfb, 0x00fffcfd, 0x00fdfdfb, 0x00f7f6fb, 0x00dedee6, 0x00c4c7d3,
- 0x00a0aaba, 0x007f8fa0, 0x00506879, 0x003a5667, 0x00305262, 0x00285462, 0x001a4e5b, 0x001b4f5c, 0x002f5a6b, 0x0042687d, 0x005e8094, 0x006e89a1, 0x007789a6, 0x006a7799, 0x00667296, 0x007882a7,
- 0x007e99ab, 0x007693a3, 0x005f7e8b, 0x004d6c79, 0x003e5e68, 0x00416269, 0x0042636c, 0x0043676b, 0x00466a6e, 0x00486a6e, 0x0049696f, 0x004d6971, 0x00536e77, 0x0056707a, 0x005e757d, 0x00667d82,
- 0x0077888e, 0x007d8d94, 0x0086949b, 0x0088939a, 0x008a939a, 0x00859097, 0x00828f97, 0x00828c97, 0x007f8a93, 0x007e8991, 0x007d8890, 0x00818c94, 0x0088949c, 0x008b979f, 0x0086939a, 0x00808c92,
- 0x007b8792, 0x007a8691, 0x007c8992, 0x007d8a92, 0x007e8b95, 0x007e8b95, 0x007e8d95, 0x007f8d96, 0x007e8b93, 0x007a8791, 0x0074848e, 0x006e7f88, 0x00697883, 0x006b7a85, 0x0070808b, 0x0071818a,
- 0x0073838c, 0x0077868f, 0x007d8d96, 0x0083939d, 0x008a98a3, 0x008796a1, 0x0081929c, 0x007d8e98, 0x007c8c96, 0x00809099, 0x0083929d, 0x0082919b, 0x00818f99, 0x0082919a, 0x0083919c, 0x0082909a,
- 0x007b8f98, 0x00758992, 0x006a7d85, 0x0062757d, 0x005d717a, 0x00586c75, 0x00546971, 0x0050656c, 0x0052656e, 0x0052656d, 0x00526570, 0x004f6370, 0x004b616d, 0x0047606a, 0x00405b64, 0x0036535c,
- 0x002d4d57, 0x00264950, 0x0023474e, 0x0020484e, 0x0021484f, 0x0023454f, 0x0027424e, 0x00233944, 0x006a7881, 0x00cad2d8, 0x00f9fafc, 0x00fcf9f9, 0x00fcf6f6, 0x00fff8f8, 0x00e4dddc, 0x00918a86,
- 0x00fbfdf3, 0x00fafcf8, 0x00fafcfc, 0x00dcdcdd, 0x00615959, 0x0020100b, 0x00321d10, 0x003e2417, 0x003d2319, 0x003b2620, 0x0037231f, 0x00371f16, 0x00341f19, 0x002f1f1a, 0x00231611, 0x0017110c,
- 0x00110d0c, 0x000a0908, 0x00040505, 0x00020908, 0x00020508, 0x00040407, 0x00060207, 0x00040307, 0x00040409, 0x00040509, 0x00050908, 0x001e2223, 0x00546375, 0x005e769a, 0x004a6b9f, 0x004873b4,
- 0x005474a8, 0x00597ab4, 0x00577aba, 0x00517bb8, 0x00517abc, 0x005779b8, 0x00657eb0, 0x004f5d80, 0x003e2e3b, 0x00442b2e, 0x004a2f26, 0x00493626, 0x00483525, 0x00463327, 0x003d2d20, 0x0038291f,
- 0x002f241d, 0x002a1f1c, 0x001e1817, 0x00171312, 0x00161417, 0x00161413, 0x001b1914, 0x00241d1a, 0x002e231f, 0x00352821, 0x003e3227, 0x0045382a, 0x004d3c2f, 0x004f3e33, 0x00615348, 0x00a7978e,
- 0x00dcd8cf, 0x00dedcd3, 0x00e7e7df, 0x00e8eceb, 0x00e4eefb, 0x00cddff4, 0x009eb1cc, 0x008392b5, 0x00a39ec0, 0x00a598b5, 0x00c4b6c7, 0x00ccc8cb, 0x00dadcef, 0x00ccd1f0, 0x007980a4, 0x008a90b3,
- 0x00d9d7e6, 0x00dfdbdb, 0x00e3dcd9, 0x00e4ddda, 0x00e5dbe3, 0x00dcdedc, 0x00e0e4df, 0x00e2dcda, 0x00f3ced5, 0x00efb9bd, 0x00c58181, 0x00b15d5c, 0x00ce797b, 0x00d48587, 0x00b26867, 0x00773537,
- 0x002e061a, 0x002b041a, 0x0024021c, 0x001e061f, 0x000b0521, 0x0002011b, 0x0000061f, 0x00021229, 0x00172336, 0x002f3648, 0x00434a68, 0x004b598b, 0x00596baf, 0x00566bb4, 0x005b6eb3, 0x007e89c1,
- 0x00d8dced, 0x00fdfdfe, 0x00fefef9, 0x00fdfff9, 0x00f9fffc, 0x00e7f5ce, 0x0091a06c, 0x00535d33, 0x004b482f, 0x0046482a, 0x00414b26, 0x003d5121, 0x003d5521, 0x003f5623, 0x00415227, 0x0044502b,
- 0x0045541a, 0x0044541e, 0x00435424, 0x003f5328, 0x003c502c, 0x003f552e, 0x00405729, 0x004c6331, 0x00708049, 0x00717f44, 0x00576b28, 0x00596f29, 0x0064712a, 0x00697129, 0x006a742c, 0x00676f2e,
- 0x00546130, 0x0058693e, 0x00606c48, 0x00686b4b, 0x00676543, 0x0060632a, 0x005b6420, 0x00586525, 0x00566a2e, 0x00586828, 0x0056661f, 0x005e681c, 0x0073772b, 0x0082863f, 0x007a8040, 0x00677035,
- 0x00536c32, 0x00596e37, 0x0073834b, 0x008a965c, 0x00808a53, 0x0069743a, 0x00687739, 0x006d7d42, 0x0064763b, 0x005a6c2f, 0x0059682b, 0x005b652d, 0x00626b30, 0x00606d31, 0x00606d36, 0x005a6538,
- 0x005b644f, 0x0058614e, 0x005c634d, 0x00535b3a, 0x00576126, 0x00636b27, 0x00626624, 0x005b5e26, 0x00565c30, 0x00565d34, 0x004f5c36, 0x0045562d, 0x00495728, 0x004b591e, 0x00475611, 0x004f5b10,
- 0x004e5828, 0x00495522, 0x0047541d, 0x00495a1e, 0x00495e1d, 0x00455b18, 0x00435c17, 0x00445c17, 0x004c5c23, 0x004e5d23, 0x004b5d20, 0x004b5e17, 0x005d6f2e, 0x0066763a, 0x0056682e, 0x0053662b,
- 0x00546531, 0x005c6e37, 0x005d7032, 0x00566927, 0x00566726, 0x00576622, 0x005a6626, 0x00707a46, 0x00909673, 0x007e865e, 0x0057642f, 0x00516325, 0x00526723, 0x0054682b, 0x005b6e3b, 0x005f7149,
- 0x0062645e, 0x0056614f, 0x0048603e, 0x00476337, 0x004e6237, 0x004e5633, 0x00504e33, 0x00574e38, 0x00505628, 0x00435817, 0x00405a13, 0x00425412, 0x00404e1d, 0x00414d26, 0x00424f2d, 0x003c4b24,
- 0x003e4b1a, 0x00394315, 0x00555833, 0x00aaa692, 0x00fff9f9, 0x00fefdfc, 0x00fbfffa, 0x00fbfffc, 0x00fbfafe, 0x00bcbcbf, 0x00646566, 0x008e9193, 0x00cacbd0, 0x00e4e5eb, 0x00f1f1f7, 0x00f5f3f9,
- 0x00f6f3fa, 0x00f8f5f9, 0x00f5f5f5, 0x00f1f4f7, 0x00f2f8fd, 0x00edfaf9, 0x00d1e2f9, 0x00a1b5df, 0x007995d4, 0x007396d5, 0x006588b8, 0x0077989f, 0x00aca088, 0x00ad7d51, 0x00ba6f33, 0x00c56723,
- 0x00c36c34, 0x00ad5f37, 0x00894428, 0x00692e19, 0x00682f21, 0x00713c28, 0x00794329, 0x00854b32, 0x00964c30, 0x009b502f, 0x00a65b31, 0x00ab6230, 0x00b9743f, 0x00c98950, 0x00c88d50, 0x00b77f42,
- 0x00796856, 0x005a4736, 0x00392d1a, 0x003a2d1a, 0x0037321f, 0x00363521, 0x00343320, 0x00353221, 0x00333320, 0x00333020, 0x0031301d, 0x0031301c, 0x0032301c, 0x0033301e, 0x0033321e, 0x00343221,
- 0x00383424, 0x00383525, 0x00373623, 0x00363621, 0x00353423, 0x00363520, 0x0036351e, 0x00363520, 0x003a3027, 0x00372e24, 0x00362d22, 0x003b2e25, 0x00443126, 0x00483328, 0x00473324, 0x00463020,
- 0x00442b1d, 0x003a2418, 0x00806f67, 0x00ebe4dd, 0x00fbfcfb, 0x00fcfefe, 0x00f8fcfc, 0x00fafdfd, 0x00cdcbc8, 0x005f5c58, 0x00201a17, 0x001d1a16, 0x00141411, 0x00050502, 0x00040400, 0x0017120d,
- 0x00443538, 0x0055484c, 0x00463e40, 0x00211c21, 0x000e0b0f, 0x00170816, 0x00130714, 0x00090f18, 0x0003090f, 0x00090108, 0x00200500, 0x00571e10, 0x00862f20, 0x007b2917, 0x00591b09, 0x00300900,
- 0x00020608, 0x000e070f, 0x000e040c, 0x00070204, 0x00020504, 0x00040504, 0x000f0d0f, 0x0024101d, 0x00201529, 0x000f1425, 0x00010b0e, 0x00010700, 0x00000105, 0x00030008, 0x00070009, 0x00080007,
- 0x00090505, 0x00050603, 0x00010405, 0x001d1e26, 0x007a748b, 0x00aca9c0, 0x00b0aec4, 0x009a97ad, 0x00716e89, 0x005f5c73, 0x005d5e6e, 0x00606267, 0x00524b48, 0x0044382f, 0x00443527, 0x0046331f,
- 0x003d2f1d, 0x003a2a1b, 0x0038291a, 0x003c2c1e, 0x00443227, 0x0046352b, 0x0045372e, 0x00463832, 0x003d3231, 0x003f3132, 0x00453b37, 0x004b4239, 0x004d463d, 0x004c433b, 0x0048413b, 0x004c4343,
- 0x0044464d, 0x0045505c, 0x00445966, 0x00425f76, 0x00466684, 0x00486983, 0x004e697e, 0x00526673, 0x00666164, 0x00665953, 0x00604d3c, 0x00604c37, 0x00564232, 0x004c3c33, 0x00413934, 0x00373531,
- 0x00252634, 0x001b2332, 0x001d293c, 0x00283a54, 0x00394e6e, 0x003e5573, 0x00415a74, 0x004a6277, 0x005d6278, 0x005e6174, 0x005b5c61, 0x0056554a, 0x004a433e, 0x00413831, 0x00362c26, 0x00352c27,
- 0x002d2b31, 0x002d3645, 0x0034475d, 0x003b5773, 0x0044678f, 0x00417092, 0x00457a93, 0x004f8097, 0x00597b91, 0x00586f81, 0x00697b89, 0x00b7c4ca, 0x00fbffff, 0x00fbf8f9, 0x00fcfafa, 0x00fcfbfc,
- 0x00f8fbf6, 0x00c4c6c2, 0x005f635d, 0x00464c45, 0x00252b23, 0x00192017, 0x000c150a, 0x00091006, 0x00101308, 0x0013120c, 0x0011130b, 0x000f1606, 0x00161a0a, 0x00151809, 0x0013180b, 0x0013160b,
- 0x0014160d, 0x0012130b, 0x000c0e05, 0x000b0d05, 0x00101207, 0x0013140b, 0x0014160a, 0x0019190d, 0x001a1a14, 0x00181811, 0x0016160e, 0x0015150c, 0x0013120a, 0x000f0d06, 0x000e0c05, 0x000e0b04,
- 0x00090801, 0x00050301, 0x000a0c07, 0x00030504, 0x00090b23, 0x00333b66, 0x005f69a7, 0x005661ad, 0x00464ea8, 0x004a53ac, 0x00515fb9, 0x004255b1, 0x0037449d, 0x003c459c, 0x003f499c, 0x003c4798,
- 0x004b60a2, 0x00495b8f, 0x00152043, 0x00070c18, 0x000e0c04, 0x000b0d08, 0x00070a04, 0x00090803, 0x00170b0d, 0x00160809, 0x00251512, 0x001e0e08, 0x00170a04, 0x00110901, 0x000d0a01, 0x000b0a01,
- 0x00090f01, 0x00081103, 0x00040f02, 0x00010f01, 0x00051405, 0x00041305, 0x00061207, 0x00051108, 0x000e100a, 0x0010100b, 0x000d0f0a, 0x00080e07, 0x00070e06, 0x00070f06, 0x00051005, 0x00041003,
- 0x000a0f0a, 0x00070d06, 0x00060d04, 0x00060d04, 0x000c120a, 0x000a0f09, 0x00090f09, 0x00090f09, 0x0008110a, 0x0009110a, 0x0008110a, 0x0008120b, 0x00090f0b, 0x00090e0b, 0x000a0f0c, 0x000d0f0d,
- 0x000e1011, 0x000c0f0f, 0x000b0f0e, 0x00090e0c, 0x000b100d, 0x000a0f0d, 0x00090f0d, 0x00070e0c, 0x000c0f10, 0x000c0f0d, 0x0009100a, 0x00081106, 0x000c0f07, 0x000b0f09, 0x00090f08, 0x000b0d06,
- 0x000d0d0d, 0x000b0d0a, 0x00080e07, 0x00080d09, 0x00090c0b, 0x00060c07, 0x00030c03, 0x00020a05, 0x00070907, 0x00060908, 0x00040905, 0x00020802, 0x00030704, 0x00020503, 0x00030502, 0x00050703,
- 0x00171616, 0x00474645, 0x006f706f, 0x006f726f, 0x00737573, 0x00757776, 0x007c7e7f, 0x0078767b, 0x0073707f, 0x00868396, 0x009b9cab, 0x00a9afb0, 0x00bcbec6, 0x00c8c8d2, 0x00d3d3df, 0x00e0dfea,
- 0x00e8e8f1, 0x00eeedf2, 0x00f7f4f6, 0x00faf9f5, 0x00fefcf7, 0x00fbf9f6, 0x00fdfcfa, 0x00fbfbfd, 0x00fffeff, 0x00fdfcfe, 0x00fcfcfc, 0x00fcfdfb, 0x00fefdfa, 0x00fffefa, 0x00fdfdf7, 0x00fdfbf5,
- 0x00f6fdfd, 0x00fcfffc, 0x00fffef8, 0x00fffaf5, 0x00fffaf8, 0x00fcfbfb, 0x00f7fcf9, 0x00f6fdf9, 0x00fcfeff, 0x00fefdfc, 0x00f7fcf6, 0x00f1fff7, 0x00f3fff8, 0x00f9fff8, 0x00fbfbf7, 0x00fefaf8,
- 0x00fcfdf7, 0x00fdfaf8, 0x00fefdfc, 0x00fbfbfb, 0x00c7cacc, 0x006e7370, 0x00676d66, 0x00929592, 0x00c7c3c7, 0x00d7d3d7, 0x00dcdddb, 0x00dadfde, 0x00d7dfe1, 0x00d7e4ec, 0x00d2e4ec, 0x008da1a9,
- 0x00211a2f, 0x00060119, 0x000c0827, 0x00202244, 0x002e395f, 0x00223159, 0x00152551, 0x000d1e4b, 0x000d194e, 0x000d194e, 0x000d164c, 0x000d1149, 0x000a1354, 0x0006155b, 0x0002175d, 0x000b216d,
- 0x00253f80, 0x00283c78, 0x00061444, 0x00060b33, 0x00191a38, 0x002a2e4e, 0x00424966, 0x00656c86, 0x009c9bb2, 0x00c2c2d4, 0x00dee0ea, 0x00eceff6, 0x00f7f8f8, 0x00fafcfc, 0x00f8fefe, 0x00f8fefd,
- 0x00fef8f8, 0x00fffbf8, 0x00fefaf9, 0x00fefcf9, 0x00fefcfa, 0x00fcfdfb, 0x00fbfcf8, 0x00f9fcf8, 0x00fdfdff, 0x00f8f9fc, 0x00e7edf2, 0x00ced8e5, 0x00b4c1cd, 0x009aa8b4, 0x00687982, 0x00495d62,
- 0x00364e57, 0x00304d55, 0x00274755, 0x00294c5d, 0x002d5162, 0x002b525a, 0x0028555c, 0x00376c73, 0x00577e99, 0x00879dbf, 0x00999dbd, 0x008c809d, 0x00735a68, 0x00604342, 0x00634334, 0x007a533b,
- 0x00718f67, 0x007f9888, 0x00768d96, 0x006e86a2, 0x00617b99, 0x0051707c, 0x004f706d, 0x00527262, 0x005a7075, 0x005c6c7a, 0x00596d7c, 0x0058727d, 0x005e7883, 0x00607883, 0x00667986, 0x006c808c,
- 0x00788990, 0x00819098, 0x0087969e, 0x008c99a0, 0x008a949c, 0x0085939b, 0x00809199, 0x0081919c, 0x0085919f, 0x00808e99, 0x007c8b94, 0x007c8b92, 0x00829098, 0x0087959e, 0x0086959e, 0x0082929a,
- 0x007a8c95, 0x00768790, 0x007e8d95, 0x007e8b94, 0x007c8794, 0x007b8793, 0x0079888f, 0x007b8b90, 0x007f8d97, 0x007d8b96, 0x0074858c, 0x006a7d7f, 0x0066777a, 0x0069797a, 0x006f8180, 0x00748584,
- 0x0078858c, 0x0079858e, 0x007e8a92, 0x00859299, 0x008c98a0, 0x0087949a, 0x007e8e91, 0x007a898d, 0x0077858d, 0x007b8990, 0x007f8d93, 0x007e8d93, 0x007b8b91, 0x007a8b90, 0x007b8c91, 0x007b8c90,
- 0x00748b92, 0x0070868f, 0x00657b82, 0x005c7379, 0x00506a73, 0x0046656d, 0x00416368, 0x003d5f67, 0x003d5f67, 0x003b5d6a, 0x003b5e6b, 0x00395c66, 0x00365863, 0x00345460, 0x0030505b, 0x002c4e58,
- 0x00274753, 0x00244750, 0x0022454e, 0x00224650, 0x00234852, 0x001e444f, 0x00254a55, 0x001b3d47, 0x0052656c, 0x00adb7bd, 0x00f9fefe, 0x00f8fcf9, 0x00fefcf7, 0x00fefbf9, 0x00f4f2f0, 0x00b3adad,
- 0x00f8fdf1, 0x00f3fbf3, 0x00fbfffd, 0x00e8ebeb, 0x00736b69, 0x002a150e, 0x003a1c12, 0x00462617, 0x003a2513, 0x0037281a, 0x003d2721, 0x0040231d, 0x003b211e, 0x00311e1b, 0x00251716, 0x0018120f,
- 0x00080b01, 0x00040800, 0x00030703, 0x00030806, 0x00030707, 0x00090408, 0x000d020b, 0x0009030d, 0x00000704, 0x00000603, 0x00040906, 0x00141618, 0x00505a6a, 0x006c83a4, 0x005675a7, 0x004f79b9,
- 0x005076a3, 0x005279af, 0x00557bb8, 0x00537bbb, 0x00557cbe, 0x00607fb9, 0x006176a2, 0x00464c6b, 0x002d2524, 0x003b2820, 0x00492d20, 0x00472e20, 0x00442f22, 0x00422e23, 0x003e2a23, 0x00372720,
- 0x002c231a, 0x0028201a, 0x00211a18, 0x001b1516, 0x00171617, 0x001b1619, 0x00221b1d, 0x0027201f, 0x0029241a, 0x0030281e, 0x003f3529, 0x004e4133, 0x00534435, 0x00564438, 0x0057443a, 0x007b685f,
- 0x00c2c7b2, 0x00dfe1d1, 0x00eae9df, 0x00ebeeea, 0x00e6f3ff, 0x00d1e6fe, 0x009aacd8, 0x0091a1cc, 0x00a1a9c2, 0x00938ea3, 0x00c1b4c3, 0x00d2cccf, 0x00dedff7, 0x00a6aed3, 0x007377a3, 0x00bbbfe5,
- 0x00dbe0e2, 0x00e0dfd7, 0x00e5dbd3, 0x00e4d9d6, 0x00e0dbe0, 0x00dae0df, 0x00e0e4e4, 0x00e2dcdc, 0x00e8d2d1, 0x00eec9cc, 0x00d49da4, 0x00955159, 0x007d3339, 0x00924549, 0x00a6585c, 0x00964a4d,
- 0x005b2f39, 0x00522c39, 0x00422033, 0x002c162c, 0x00150d25, 0x0009081f, 0x0004021a, 0x0003031a, 0x00000812, 0x0008111e, 0x00282d48, 0x00444c7f, 0x006272b4, 0x005c70b8, 0x006171b6, 0x007f8ec6,
- 0x00d3dde7, 0x00f8fbf5, 0x00fffcfa, 0x00fdfef7, 0x00fcfdff, 0x00e8f3d3, 0x00aab48a, 0x007a7a5c, 0x004e4d32, 0x003d3c24, 0x0043472a, 0x0045542e, 0x00405629, 0x00455430, 0x004a5335, 0x0050523a,
- 0x00485617, 0x0047561b, 0x004b5a2a, 0x004b5b32, 0x004b5c37, 0x004d603a, 0x004f603a, 0x00566437, 0x00576a29, 0x00536721, 0x0051631e, 0x00506b24, 0x005d691f, 0x00576017, 0x00595b1a, 0x00545b1f,
- 0x004e6131, 0x00556a3e, 0x0061714b, 0x00626944, 0x00605d33, 0x005d5e23, 0x00585f20, 0x00556127, 0x00466426, 0x00476125, 0x004f6525, 0x00576420, 0x006c6e27, 0x00777a36, 0x0073783a, 0x00656d34,
- 0x004c6828, 0x004d6526, 0x0055662a, 0x005b672c, 0x005f672e, 0x00636a30, 0x00697337, 0x006b7639, 0x00556d25, 0x004f6820, 0x00576629, 0x00636a33, 0x0068732f, 0x00687730, 0x006b783a, 0x0063713c,
- 0x00536c48, 0x00526449, 0x005c684e, 0x0057643d, 0x00687739, 0x00858a49, 0x00807e44, 0x006d6e3b, 0x00596736, 0x0058663c, 0x00576642, 0x004f5f37, 0x00495a27, 0x004d5e21, 0x004e5d19, 0x004f5d13,
- 0x00455616, 0x00465818, 0x004c5f20, 0x004e6423, 0x004b6422, 0x00476120, 0x00465f20, 0x00475d21, 0x00415a1e, 0x00455621, 0x00475721, 0x00495912, 0x004e5d1d, 0x00546225, 0x00526028, 0x0054622d,
- 0x004c6126, 0x0057692c, 0x0058692f, 0x00506326, 0x00506222, 0x00576424, 0x00616a32, 0x0082875d, 0x009eaa83, 0x00839268, 0x00566632, 0x00556626, 0x00536720, 0x00536429, 0x00596638, 0x00586445,
- 0x005a5d40, 0x004d5d33, 0x004a6232, 0x0045662a, 0x004c6329, 0x005c6231, 0x00655f36, 0x006a5f38, 0x00515f1a, 0x00435d0e, 0x004a6216, 0x00515c19, 0x004a5625, 0x00475128, 0x00495129, 0x00485428,
- 0x0040530d, 0x0038490b, 0x00575e30, 0x00adae93, 0x00fdfbfd, 0x00fdfdfc, 0x00fdffff, 0x00fefeff, 0x00f7f8f6, 0x00bbbcbb, 0x00666668, 0x00939296, 0x00cbcace, 0x00e6e5ea, 0x00f5f4fb, 0x00f8f6ff,
- 0x00f7f2f6, 0x00f3f2f3, 0x00f4f6f7, 0x00effaf8, 0x00f3f5f7, 0x00f5f8fc, 0x00f5f5ff, 0x00dfe2fe, 0x008face0, 0x00688fc7, 0x006c92c5, 0x008197b3, 0x009594a0, 0x00a6908a, 0x00aa7b69, 0x00b0714b,
- 0x00a9622c, 0x00a65f28, 0x009a5224, 0x00763613, 0x00562009, 0x00512411, 0x005c301c, 0x006e3b26, 0x00723f1c, 0x00743d18, 0x0080411d, 0x008c4b26, 0x009b6137, 0x00a97449, 0x00a47246, 0x008f6032,
- 0x0048442f, 0x003a3621, 0x00352e1c, 0x0038321f, 0x003d3425, 0x003a3423, 0x00393323, 0x00383422, 0x0030301a, 0x002e3019, 0x0031311d, 0x0034311f, 0x0032301c, 0x0032301c, 0x00363222, 0x00363322,
- 0x0035351f, 0x00343520, 0x00363522, 0x00373623, 0x00363522, 0x00353620, 0x00363521, 0x00363323, 0x00312f1f, 0x00332d1f, 0x00372c22, 0x003e2e26, 0x00463128, 0x004a3329, 0x004a3228, 0x00493024,
- 0x00412c17, 0x00342414, 0x00807067, 0x00ece3df, 0x00fdfcfd, 0x00fdfefe, 0x00fbfcfe, 0x00fefeff, 0x00c5c9be, 0x00585a4d, 0x001c1812, 0x00181411, 0x00100c0d, 0x00070301, 0x00060002, 0x000e070b,
- 0x000e0e0a, 0x00121310, 0x00110f12, 0x000b080d, 0x000f0a0f, 0x001e0e1a, 0x001e101e, 0x000e111a, 0x00000a03, 0x00030000, 0x002b0701, 0x00712418, 0x00a03723, 0x008e351d, 0x00742e14, 0x004a1a06,
- 0x00000503, 0x0007050b, 0x00150a12, 0x0010070d, 0x00000605, 0x00030101, 0x0015070d, 0x002b0311, 0x0017060d, 0x00080e0e, 0x00050c08, 0x00040a02, 0x00010301, 0x00070108, 0x000a010a, 0x000d000a,
- 0x00000200, 0x00000300, 0x00000303, 0x00090a11, 0x00413a4f, 0x00665f71, 0x00584f63, 0x00463f56, 0x002a2e3e, 0x001c232f, 0x002d2e3c, 0x0056575f, 0x00625e5d, 0x004a4039, 0x0044342b, 0x004d382b,
- 0x003f3519, 0x003d3019, 0x003e2c1b, 0x00442e20, 0x00473125, 0x0048342a, 0x0048342f, 0x00463534, 0x00352f27, 0x00322d28, 0x00413a35, 0x004a413c, 0x004f4641, 0x00504642, 0x00534a45, 0x00544d4b,
- 0x00474f4d, 0x0047565a, 0x004c626f, 0x004b667d, 0x004a6e8b, 0x00537591, 0x005a748d, 0x005c6c7e, 0x005d615a, 0x00605749, 0x00675343, 0x00674e3b, 0x005f493b, 0x00574840, 0x004c4242, 0x00423c3f,
- 0x00253138, 0x001f2d39, 0x002b394c, 0x003b4e67, 0x0047607e, 0x00455f7d, 0x00506581, 0x00586b87, 0x005a6976, 0x0057626d, 0x005b5e65, 0x00555252, 0x0046413e, 0x003d3432, 0x00382e2e, 0x00332c2c,
- 0x00242828, 0x0029333e, 0x00314055, 0x00344b68, 0x003e5f84, 0x00456b8a, 0x004b708c, 0x0052768e, 0x00517382, 0x004f6c76, 0x005e707b, 0x00a3aeb6, 0x00fafbfd, 0x00fefcfc, 0x00fffcff, 0x00fffbff,
- 0x00f2f7ef, 0x00aaafa6, 0x001b1f1a, 0x00070c07, 0x00000900, 0x00040f02, 0x00040e04, 0x00070e06, 0x000a1404, 0x00111809, 0x0017180a, 0x00191b0c, 0x00191d0f, 0x00191b0f, 0x0019170d, 0x0019170f,
- 0x00131609, 0x000f1307, 0x000d0f07, 0x000d0f08, 0x0011120b, 0x0015150c, 0x0018170e, 0x0019180f, 0x00121607, 0x00101305, 0x00121005, 0x00141008, 0x00110e08, 0x00100c07, 0x00100b06, 0x00100b06,
- 0x00080500, 0x00010100, 0x00070503, 0x00010103, 0x00141a31, 0x00484d7c, 0x006269ae, 0x005b63b7, 0x004755aa, 0x004f5db2, 0x004c5ab4, 0x003a4eab, 0x0037459e, 0x003c489d, 0x0041469a, 0x003e4797,
- 0x00435f99, 0x00324e78, 0x00041333, 0x00050b16, 0x00130c02, 0x00140b05, 0x0016090a, 0x00241517, 0x004b3f36, 0x005e4b45, 0x00745a57, 0x006c5650, 0x005d473f, 0x004e3c33, 0x0032241b, 0x001c0e07,
- 0x00030c00, 0x00030a00, 0x000b0f04, 0x00071305, 0x00000f02, 0x00030f02, 0x00051206, 0x0006110a, 0x00070e05, 0x000a0d05, 0x000a0d08, 0x00080f09, 0x00080f07, 0x00080f07, 0x00080f0a, 0x00090f09,
- 0x00050d03, 0x00050e02, 0x00050d05, 0x00060d06, 0x000a1007, 0x000d0f0a, 0x000f0e0e, 0x000e100e, 0x00071008, 0x00071009, 0x0008120c, 0x0008120c, 0x0009100b, 0x000b0f0b, 0x000d100e, 0x000f100f,
- 0x00080f0a, 0x00080f0a, 0x000b110d, 0x000c110e, 0x000b0f0d, 0x000b100e, 0x000b110f, 0x000b100e, 0x00060f05, 0x00080f08, 0x0009100a, 0x000a1106, 0x00091106, 0x00091008, 0x00090f0a, 0x000a0f09,
- 0x00060e04, 0x00050d04, 0x00060d06, 0x00080e0a, 0x00090e0d, 0x000a0e0c, 0x000a0e0b, 0x000a0e0d, 0x00060d05, 0x00060d05, 0x00080e07, 0x00080e08, 0x00070c07, 0x00060c07, 0x00050a05, 0x00020702,
- 0x000b120c, 0x00444b44, 0x00858883, 0x00838582, 0x007a7f7d, 0x00727575, 0x00747278, 0x004c4a53, 0x000b0f19, 0x000a0f1a, 0x00141726, 0x001f222b, 0x002b2e3d, 0x003c4052, 0x00585b6e, 0x006b6b80,
- 0x00777e89, 0x00878c95, 0x00a2a5ad, 0x00b6b8bd, 0x00cbccca, 0x00d8d5d9, 0x00e2dde6, 0x00ece8ee, 0x00f1f3f2, 0x00f6f7f5, 0x00fdfbfc, 0x00fefbfc, 0x00fdfffb, 0x00fefffb, 0x00fffdfd, 0x00fffcfc,
- 0x00f3fff7, 0x00f6fff3, 0x00fafcf3, 0x00fbfbf3, 0x00fcfdf8, 0x00fafdfa, 0x00f9fcfe, 0x00f7fdff, 0x00f3fdf8, 0x00f5fbf5, 0x00fafbfa, 0x00f8fafa, 0x00fafcf9, 0x00fdfbf8, 0x00fefaf8, 0x00fffdf8,
- 0x00f9fbee, 0x00f8fbf4, 0x00fdfffd, 0x00fdfefe, 0x00bdc1c0, 0x00595f63, 0x00686c72, 0x0096989d, 0x00bbc1b8, 0x00d0d4cc, 0x00dedcd9, 0x00dedcdc, 0x00d9dede, 0x00d9e2e4, 0x00dde8ef, 0x00adb9c5,
- 0x00353548, 0x00050a1e, 0x0003021c, 0x00070929, 0x000b1539, 0x000f1942, 0x0014204f, 0x00192357, 0x00142356, 0x00132356, 0x001c2462, 0x0023286b, 0x001d2670, 0x0016256f, 0x00101c6a, 0x000d226c,
- 0x000e285f, 0x00263a69, 0x002e3a62, 0x004a516b, 0x00777a89, 0x00a1a3b6, 0x00d0cce2, 0x00eae8f6, 0x00f0f5f6, 0x00f3f9f4, 0x00fcfefb, 0x00fdfdfa, 0x00fdfffc, 0x00fdffff, 0x00fdffff, 0x00fcffff,
- 0x00f5faf1, 0x00f7fcf5, 0x00fbfffb, 0x00fcfefd, 0x00fcfdfe, 0x00fafcfe, 0x00f9fafe, 0x00f1f0f6, 0x00cedad9, 0x00aebbbb, 0x008d979d, 0x00656d7d, 0x0035414f, 0x001e2e3b, 0x001f303b, 0x002a3d47,
- 0x00254545, 0x00244648, 0x002d4c59, 0x002f4f60, 0x002b4f60, 0x002e4f63, 0x004f7288, 0x00719bae, 0x0083aeb8, 0x009cb4c2, 0x009fa0b5, 0x005e4b5f, 0x003b1a23, 0x003f1d1b, 0x00411a15, 0x0052271e,
- 0x00415938, 0x00445a55, 0x003b4f68, 0x00485a8f, 0x005c70a2, 0x0059718b, 0x00657e85, 0x006a817b, 0x005c746d, 0x005e717a, 0x0069788a, 0x00667c8a, 0x006a808e, 0x006c7f8e, 0x00718390, 0x00778694,
- 0x0077898d, 0x00809395, 0x008b9ba1, 0x008d9aa1, 0x0089979c, 0x0086959c, 0x0084929e, 0x0084939e, 0x007f9095, 0x007a8d91, 0x007c8c91, 0x007d8c92, 0x00809198, 0x0082939a, 0x0086959d, 0x00819199,
- 0x00748a8a, 0x00788c8e, 0x00798a8f, 0x007d8a91, 0x0086909b, 0x0087919c, 0x00828e98, 0x00818e97, 0x007b8d8f, 0x00798d8f, 0x0079898d, 0x00718284, 0x006a7b7e, 0x006b7c7e, 0x00748186, 0x0077858a,
- 0x00718584, 0x006f8283, 0x007b868d, 0x00828a93, 0x00839198, 0x007f9095, 0x007a888d, 0x00768589, 0x006b7f80, 0x006e8183, 0x00748789, 0x0077898c, 0x0076868a, 0x0076858a, 0x0078878d, 0x0078868d,
- 0x006a8588, 0x00647e82, 0x005d737b, 0x00546c75, 0x0044636b, 0x003a5c65, 0x0035565f, 0x0030515a, 0x00255053, 0x00295257, 0x002e545d, 0x002e525d, 0x002b4f58, 0x00294c58, 0x00284a58, 0x00274855,
- 0x001e454c, 0x001f454d, 0x0020444d, 0x0020444d, 0x00244652, 0x001c4450, 0x00244b58, 0x001f3e4c, 0x0035504d, 0x00859994, 0x00eff7f6, 0x00fbfefd, 0x00fffdfa, 0x00fdfbf9, 0x00fcfbfd, 0x00ccc8cb,
- 0x00fbfcf3, 0x00f7fcf7, 0x00fafefd, 0x00f1f4f3, 0x00807875, 0x00301b13, 0x003a1d11, 0x00472615, 0x00422919, 0x00412e22, 0x00422b25, 0x00432721, 0x003c231e, 0x00321f1b, 0x00251714, 0x0018120d,
- 0x000b0d04, 0x00060902, 0x00050704, 0x00060807, 0x00070708, 0x000a0307, 0x000b0209, 0x0007040b, 0x00020607, 0x0006090a, 0x00040706, 0x00060809, 0x003c4554, 0x007289a7, 0x006785b4, 0x00547db9,
- 0x00557bb0, 0x00547ab7, 0x005178b8, 0x00537cbd, 0x00587dbc, 0x006784bb, 0x0052678f, 0x00333954, 0x00302323, 0x003e281f, 0x004a2e1f, 0x004a3020, 0x00483222, 0x00453124, 0x00402f25, 0x003a2c22,
- 0x00332822, 0x002d2320, 0x00251c1c, 0x001f1919, 0x001a1818, 0x001c1818, 0x00231c1c, 0x00292320, 0x00302620, 0x00382d24, 0x0043372a, 0x004e3f30, 0x00514132, 0x005b493d, 0x0057453b, 0x005f4c44,
- 0x009d9c8d, 0x00dbd9cc, 0x00eae7df, 0x00eceeed, 0x00e1f0fd, 0x00cce3fe, 0x008ea6d0, 0x0094acd8, 0x00c0c7ea, 0x00aaa5c7, 0x009b90a7, 0x00bfb8bb, 0x00d6d9ee, 0x008991b4, 0x006f779f, 0x00c4cbef,
- 0x00dcdbe3, 0x00dfd9d5, 0x00e2d6cf, 0x00e1d5d1, 0x00dcd8dc, 0x00d7ddde, 0x00dbe4e3, 0x00dcdedc, 0x00e3d3d4, 0x00f0d4d7, 0x00ecc2c7, 0x00d09da1, 0x00b37c7e, 0x00a66e6d, 0x008e5754, 0x00824d48,
- 0x0075464e, 0x006b404b, 0x004d2b38, 0x00341c2c, 0x001d1626, 0x000e0d1e, 0x00020113, 0x00010012, 0x0000000d, 0x0000010e, 0x00080f27, 0x002c3765, 0x006676b5, 0x006376bd, 0x006074b7, 0x007d8dc6,
- 0x00d7dcec, 0x00fbfafa, 0x00fefcf9, 0x00fefdf6, 0x00fcfdfd, 0x00ebeed7, 0x00a2a584, 0x006b634e, 0x004c3f2f, 0x00463c2d, 0x00494632, 0x00454b31, 0x00404e2c, 0x00434b2d, 0x00464a2f, 0x004d4a33,
- 0x004c4f18, 0x00494f1a, 0x00464c1f, 0x004a5229, 0x004c5730, 0x004d5932, 0x00626c43, 0x00767f50, 0x006d753a, 0x005c6323, 0x004d5a17, 0x0049641f, 0x0051601a, 0x00505a16, 0x0052571a, 0x004f5920,
- 0x004b5b31, 0x004f633a, 0x0054663c, 0x00566132, 0x005a5c25, 0x005a5e21, 0x00555f23, 0x00506029, 0x00466130, 0x00486132, 0x004f6332, 0x00545f29, 0x005f6225, 0x0063692a, 0x0061692d, 0x0059642c,
- 0x0054662c, 0x0058682e, 0x0058642a, 0x00566026, 0x005e662c, 0x00666e33, 0x00676f35, 0x00626a2f, 0x00586827, 0x00586a28, 0x005a6729, 0x005f6a2d, 0x006b7c34, 0x00778b40, 0x00718543, 0x00627840,
- 0x0059754e, 0x005b7154, 0x00566b4a, 0x004f6639, 0x00627b37, 0x00798647, 0x00707740, 0x00616a3a, 0x005c6b3f, 0x005c6d45, 0x00546542, 0x004d5d35, 0x004d5e2a, 0x004f6122, 0x0053641d, 0x005d6c1f,
- 0x00576720, 0x004b5e16, 0x004d631c, 0x0059742c, 0x00587631, 0x00567434, 0x00516d34, 0x004c6430, 0x00465d32, 0x00485836, 0x004b5a2d, 0x00525d19, 0x00525c1d, 0x00545f24, 0x0056632b, 0x00596632,
- 0x0054642d, 0x0057652d, 0x00525f25, 0x004c5d1f, 0x004d5e1d, 0x004f5f1f, 0x00505e23, 0x00596536, 0x0066714e, 0x005d6941, 0x004e5c29, 0x00556526, 0x0053641f, 0x00526126, 0x0052602f, 0x00525e38,
- 0x00565c2a, 0x004f6025, 0x004b6423, 0x0048681e, 0x004e661a, 0x00636d25, 0x007d7e3a, 0x0084813e, 0x0067702a, 0x0051651e, 0x004f6420, 0x00525e26, 0x004f5d2a, 0x004e5828, 0x00505922, 0x005a6526,
- 0x0058671a, 0x00475814, 0x0057642f, 0x00a9b498, 0x00f7fefc, 0x00fbfefd, 0x00fcfffb, 0x00fbfefd, 0x00f9f8f9, 0x00bcbcbc, 0x00676668, 0x00929295, 0x00cbcacf, 0x00e5e5ea, 0x00f4f3fa, 0x00f6f5fc,
- 0x00f5f1f8, 0x00f6f4fc, 0x00f1f6f6, 0x00f1f7f5, 0x00f5f5f8, 0x00f5f4fc, 0x00f9f2fa, 0x00f7f7fd, 0x00b4c7eb, 0x008ca5d7, 0x00a9bee7, 0x00d1d0eb, 0x00adb3d0, 0x008d92b2, 0x009491a4, 0x009f8c8c,
- 0x00a66f4d, 0x00ac6231, 0x009b531b, 0x0086450a, 0x00582300, 0x003a1902, 0x00392205, 0x00472a10, 0x00552f0f, 0x005c3313, 0x005d2f10, 0x00623314, 0x00673d1f, 0x00694426, 0x005f3f21, 0x00513417,
- 0x003a3422, 0x00393320, 0x0036301e, 0x00352f1c, 0x00363220, 0x00373321, 0x00363221, 0x00363321, 0x0034301c, 0x0032301b, 0x0033311e, 0x0034311f, 0x0032301c, 0x0031301c, 0x00343220, 0x00343220,
- 0x00373523, 0x00363423, 0x00373523, 0x00383522, 0x00373522, 0x00353620, 0x0035361f, 0x0034331f, 0x00352d22, 0x00352d21, 0x00382c24, 0x003e2f27, 0x00443228, 0x00483427, 0x00483225, 0x00462f20,
- 0x00452d1b, 0x00382517, 0x0083716a, 0x00ede4e0, 0x00fcfcfd, 0x00fafdfc, 0x00f7fbfb, 0x00fafdfd, 0x00c9cac3, 0x0059584e, 0x001a1610, 0x0014120f, 0x000c0a09, 0x00060301, 0x00040000, 0x00050002,
- 0x00020100, 0x00020100, 0x00040004, 0x0009060b, 0x00141015, 0x001f151e, 0x001a141e, 0x000c1419, 0x00000903, 0x000e0301, 0x00360b06, 0x00762317, 0x00a23422, 0x0093351e, 0x00742b0e, 0x00481800,
- 0x00000509, 0x000a030e, 0x00190c15, 0x001b0f15, 0x00040805, 0x000f0705, 0x00240b0e, 0x0033020a, 0x00270003, 0x00120305, 0x00070300, 0x000a0300, 0x000a0000, 0x000c0001, 0x000a0105, 0x00080004,
- 0x00020500, 0x00030601, 0x00010404, 0x000b0911, 0x0020152c, 0x00261e30, 0x00262131, 0x004a4859, 0x00555769, 0x00333747, 0x00232433, 0x0040404b, 0x00686362, 0x005a4f49, 0x0046352b, 0x004c382a,
- 0x004d3a22, 0x004b3722, 0x00493221, 0x004a3123, 0x004a3226, 0x0049342a, 0x0046322c, 0x0041312c, 0x00342b24, 0x00322d28, 0x00413a35, 0x004a413d, 0x00524844, 0x00554b46, 0x00584f4a, 0x00595250,
- 0x0057585b, 0x00586269, 0x00566978, 0x00546f85, 0x00527591, 0x00577792, 0x00597389, 0x0060717f, 0x00636364, 0x0063594f, 0x00695647, 0x0067503e, 0x005e4c3e, 0x005b4f48, 0x004f4847, 0x004a4648,
- 0x00353b46, 0x002e3644, 0x002a3446, 0x00344459, 0x003a4e69, 0x003b516c, 0x00445870, 0x004e6278, 0x00596573, 0x005c646f, 0x00595c64, 0x004d4e52, 0x003a3839, 0x00342e2e, 0x00302929, 0x002d2829,
- 0x0025252a, 0x00292d3c, 0x00293348, 0x002d3f5b, 0x00324d70, 0x003e5f7d, 0x004c6c87, 0x0053718b, 0x00526d7f, 0x00526876, 0x005b6977, 0x00979ea9, 0x00f6f6fa, 0x00fffdfd, 0x00fefafb, 0x00fef9fa,
- 0x00fdfffa, 0x00c5c8c2, 0x00282b27, 0x00050a05, 0x00061006, 0x00061306, 0x00051004, 0x00091107, 0x0013180d, 0x00191d12, 0x001d1d11, 0x001e1f11, 0x001d2112, 0x001b1f11, 0x001a1b0e, 0x00191a0e,
- 0x0015160e, 0x0012140b, 0x000f1108, 0x000d0f08, 0x0011120a, 0x0014150b, 0x0015160a, 0x0016160b, 0x00131308, 0x00111106, 0x00120f06, 0x00131008, 0x00110f07, 0x00110d05, 0x00110b04, 0x00110b03,
- 0x00110906, 0x000d0904, 0x000a0705, 0x00000103, 0x001f273e, 0x0058618f, 0x005f69ac, 0x005460b1, 0x00545fb5, 0x005763b9, 0x004754af, 0x003648a6, 0x003c4aa3, 0x003e4a9f, 0x003e4697, 0x003f4c99,
- 0x004e66a5, 0x003c507f, 0x00091839, 0x00070f19, 0x00100800, 0x001e0804, 0x00553939, 0x00836767, 0x00a88e8b, 0x00a98f8b, 0x00ae938e, 0x00aa938b, 0x00a99089, 0x00a58c85, 0x00856d65, 0x00674f46,
- 0x002f2c22, 0x001c1912, 0x000a0801, 0x00080e01, 0x00081205, 0x00071103, 0x00040f02, 0x00040e05, 0x00070f06, 0x00090e06, 0x00090d08, 0x00080f09, 0x00091008, 0x00080f07, 0x00090f09, 0x000a0f09,
- 0x00090e07, 0x00090f06, 0x00090e08, 0x00080f09, 0x000a1008, 0x000c0f09, 0x000c0f0d, 0x000b100d, 0x0008100a, 0x0008100a, 0x0008120c, 0x0008120c, 0x0009100b, 0x000a0f0b, 0x000c100d, 0x000e0f0d,
- 0x000b100c, 0x000a100c, 0x000c100c, 0x000b100c, 0x000a0f0b, 0x000a100b, 0x000b120d, 0x000a120d, 0x000a120a, 0x000a110a, 0x000a110a, 0x000a1205, 0x00091105, 0x00091006, 0x00090f07, 0x00090f05,
- 0x000a0f08, 0x00080d07, 0x00080d08, 0x00080e0a, 0x000a0f0c, 0x000a100d, 0x000b120d, 0x000c130f, 0x000d1210, 0x000e1411, 0x000e1410, 0x000d130e, 0x000c120d, 0x000a100c, 0x00080d0a, 0x00060c09,
- 0x000e1313, 0x00545957, 0x00b1b4b2, 0x00b8bab8, 0x00a9adab, 0x00a1a4a2, 0x00a3a4a6, 0x00737379, 0x001a1a28, 0x00070919, 0x00070a1b, 0x00060b1b, 0x0002081c, 0x00050b24, 0x00111531, 0x00161736,
- 0x00161c35, 0x001f243b, 0x00272d40, 0x002d3542, 0x003c4349, 0x00494f57, 0x00616570, 0x007f828d, 0x00a3a6ad, 0x00b5b9be, 0x00bfc0c7, 0x00c7c9cf, 0x00ced2d4, 0x00d5dadb, 0x00e2e5e8, 0x00e8ebee,
- 0x00eef1f6, 0x00f7f8f7, 0x00fbfcf5, 0x00fcfef4, 0x00f8fef0, 0x00f4fff4, 0x00f4fefa, 0x00f2fdfd, 0x00fafcfc, 0x00fdfcfd, 0x00fcfafb, 0x00fcfcfc, 0x00fdfcfb, 0x00fffcfc, 0x00fefdfc, 0x00fdfdfb,
- 0x00fcfaf8, 0x00fefffe, 0x00fafdfa, 0x00fbfffb, 0x00afb6b3, 0x004b565d, 0x00697580, 0x009aa4ac, 0x00c3c7ca, 0x00d6d9d8, 0x00dddbd9, 0x00dad7d6, 0x00d7d8d7, 0x00d9dfdf, 0x00e0e7e9, 0x00b5bec2,
- 0x00434868, 0x000f1633, 0x0000021f, 0x00030926, 0x000b1030, 0x000e1237, 0x00141b46, 0x001b2252, 0x001f2a5f, 0x00212c67, 0x0023306e, 0x002e3076, 0x002c3781, 0x002e3b85, 0x00283a80, 0x00304285,
- 0x004b5d95, 0x00848ebe, 0x00a8aecd, 0x00cdcfe0, 0x00eaeaeb, 0x00f6f7f6, 0x00fcfbfe, 0x00fdfbfc, 0x00f9f6f6, 0x00fcf8f6, 0x00fffbf8, 0x00fefaf8, 0x00fdfaf7, 0x00fefcfb, 0x00fdfdfd, 0x00fffffd,
- 0x00fafef9, 0x00fafdfa, 0x00f9fdfc, 0x00f2f8f7, 0x00e1e8e9, 0x00d0d7db, 0x00b2bac0, 0x008e989e, 0x00616d71, 0x00414f53, 0x0029363e, 0x001f2939, 0x00162431, 0x001a2c37, 0x001f333a, 0x00243a40,
- 0x0026434b, 0x002a4a51, 0x0032525b, 0x00335362, 0x002c5060, 0x00415e7e, 0x007b97ba, 0x0094b2ce, 0x00b7d2da, 0x00a0aeb3, 0x00626363, 0x00362a2b, 0x00291116, 0x00230a12, 0x00220612, 0x00351525,
- 0x00263339, 0x00333f5d, 0x00394478, 0x003c478e, 0x003b4989, 0x003d5077, 0x00596e80, 0x00708584, 0x00718382, 0x006d7b88, 0x006e7b8e, 0x00708591, 0x00738894, 0x00758994, 0x00778a95, 0x00798a97,
- 0x007d8d94, 0x0086959c, 0x008e9da5, 0x008f9da3, 0x008c989e, 0x0086949c, 0x0080919a, 0x00809097, 0x00818f95, 0x007e8f94, 0x007b8c92, 0x007e8e94, 0x007d8e94, 0x00819298, 0x00829298, 0x007d9095,
- 0x0078888f, 0x007b8990, 0x007e8a8f, 0x009aa4a9, 0x00aeb6bb, 0x00abb3b8, 0x009fa8ad, 0x0098a3a8, 0x008b9a9e, 0x00859499, 0x007e8d92, 0x0074858a, 0x006d7d81, 0x006c7e81, 0x00738387, 0x00748489,
- 0x0074848b, 0x00708187, 0x00738088, 0x0076828a, 0x0078878e, 0x0076878d, 0x00718286, 0x006d7e81, 0x0068797e, 0x00697a7f, 0x006d7e83, 0x006e8084, 0x006d7f83, 0x006c7e82, 0x006d7f83, 0x006c7e82,
- 0x00697f87, 0x0060787f, 0x00566d75, 0x004b656d, 0x003d5b64, 0x0033545c, 0x002d4d57, 0x00274852, 0x0020474e, 0x00244b53, 0x00284d57, 0x00264a54, 0x00244850, 0x00234650, 0x00214552, 0x00204550,
- 0x00224650, 0x00234650, 0x0021454f, 0x0021454f, 0x00234651, 0x001e4752, 0x00204954, 0x001e414d, 0x00294344, 0x00677a7b, 0x00dfeaea, 0x00fafdfd, 0x00faf9f6, 0x00fefbf9, 0x00fdfcfb, 0x00dfdcdc,
- 0x00fffff6, 0x00fbfef9, 0x00f9fdfb, 0x00f5f8f7, 0x008c8380, 0x0038221a, 0x003e1e12, 0x004b2716, 0x004a2b1c, 0x00473023, 0x00452c26, 0x00442821, 0x003b231e, 0x00312019, 0x00281915, 0x001b130e,
- 0x00120e08, 0x000b0a05, 0x00080805, 0x00070808, 0x00080607, 0x000b0204, 0x000b0205, 0x00080409, 0x0006090b, 0x00050708, 0x00090a08, 0x00050303, 0x00292f3b, 0x006b7e9a, 0x007691bd, 0x005b81bb,
- 0x00587ec3, 0x00527abf, 0x00527ac0, 0x00547dbe, 0x006080ba, 0x00687fae, 0x00445374, 0x002e2f41, 0x00382520, 0x00422b1b, 0x004c3320, 0x004d3324, 0x004d3426, 0x00493427, 0x00423126, 0x003e2e22,
- 0x00372c26, 0x00312723, 0x0029201f, 0x00231d1c, 0x00201d1c, 0x00211a1b, 0x00271f1f, 0x002d2524, 0x00352824, 0x003a2f25, 0x0046392b, 0x004f3f31, 0x00523e33, 0x005a483d, 0x005e4a40, 0x005c473e,
- 0x006c6358, 0x00bdb6ac, 0x00eee9e4, 0x00efeff3, 0x00dbe8f7, 0x00b2c6ec, 0x00748ebc, 0x007d99cf, 0x00ced9ff, 0x00b9bedf, 0x006c6883, 0x00a9a5a6, 0x00dfe2f8, 0x00878eb1, 0x00687097, 0x00c1c9e9,
- 0x00dedae2, 0x00ded8d3, 0x00ded4cb, 0x00d8d1cb, 0x00d1cdd4, 0x00cbd1d6, 0x00cfd8dc, 0x00d1d9da, 0x00dbd3d7, 0x00e0d0d4, 0x00e7ced2, 0x00e7cacc, 0x00efd1d1, 0x00e3c7c4, 0x00ad938e, 0x007b635b,
- 0x00784d4c, 0x00663e3e, 0x0047272a, 0x002c1218, 0x000e050b, 0x000a030d, 0x00010009, 0x0003010d, 0x0000020f, 0x0000000a, 0x00000417, 0x001a204a, 0x006072a9, 0x00697bbe, 0x005f76b7, 0x007e8bc4,
- 0x00dbdeef, 0x00fafaf9, 0x00fffef9, 0x00fdfcf4, 0x00fffeff, 0x00f1ebde, 0x00948874, 0x00564233, 0x005b4037, 0x005b453b, 0x00554539, 0x004f4738, 0x004d4a36, 0x00514a36, 0x00534833, 0x00574633,
- 0x00574b1c, 0x0053491a, 0x0050491e, 0x004f4a20, 0x00514d26, 0x00514d25, 0x0069643c, 0x007c764b, 0x00746a36, 0x005e541d, 0x004e4d13, 0x00475b1d, 0x004d5518, 0x004e5118, 0x00525020, 0x00505327,
- 0x004c5537, 0x00495833, 0x0049582c, 0x004b571d, 0x0053580f, 0x00565a1b, 0x00505a22, 0x00495b2a, 0x00455b3d, 0x00495d42, 0x004f5f42, 0x00545c39, 0x00595c2d, 0x00575c28, 0x00565d28, 0x0053602b,
- 0x0059602c, 0x00656b36, 0x0070743f, 0x006c6e37, 0x0066672f, 0x00686831, 0x006a6b33, 0x0064662d, 0x00686d34, 0x006f7638, 0x006f7535, 0x006b7434, 0x0062722a, 0x00667a31, 0x00627a34, 0x00587537,
- 0x00557044, 0x00567148, 0x00506c3e, 0x00496832, 0x004e6d27, 0x005a6f38, 0x00556536, 0x00526336, 0x00586942, 0x00536740, 0x004e613c, 0x00506136, 0x00505f2a, 0x004e5e1d, 0x00627128, 0x00889346,
- 0x006f8331, 0x00536917, 0x004a6312, 0x00516d20, 0x0053722b, 0x00557337, 0x00557040, 0x004d663d, 0x00475c43, 0x00455743, 0x00485837, 0x00505817, 0x005a5e23, 0x00686f34, 0x00717c43, 0x0066723a,
- 0x005c6633, 0x0057612d, 0x00505d24, 0x0049591e, 0x004c5d20, 0x004a5b22, 0x004c5e25, 0x00485b2a, 0x0046532d, 0x004a572c, 0x00525e2c, 0x00525f23, 0x00525e1b, 0x00525b20, 0x00555c29, 0x00565a2f,
- 0x00575e1b, 0x0052601d, 0x0050631f, 0x004b661d, 0x00536818, 0x0065731e, 0x008b913e, 0x00949746, 0x006e763b, 0x00596539, 0x00566440, 0x004e6041, 0x00515f36, 0x00525f29, 0x0055621c, 0x006c7520,
- 0x00848e37, 0x006b792b, 0x005f6f35, 0x00a3b699, 0x00f1fffc, 0x00f8fefc, 0x00fefffc, 0x00fefefd, 0x00fafafc, 0x00bcbdbe, 0x00666667, 0x00919194, 0x00cbcacf, 0x00e6e5eb, 0x00f4f3f9, 0x00f5f4fa,
- 0x00f5f3fd, 0x00f2f5fe, 0x00f0f9fb, 0x00f1f6f3, 0x00f8f5f1, 0x00fcf3f8, 0x00fdeffc, 0x00f9eaf9, 0x00d5d2f2, 0x00c7d1ec, 0x00eaedff, 0x00fdf4fd, 0x00e4edfa, 0x00a9c2e9, 0x00809ccb, 0x00819abd,
- 0x009a8c8d, 0x009c7664, 0x00935d39, 0x008a491c, 0x00632400, 0x00271300, 0x00131600, 0x00151203, 0x0031220a, 0x004b3a24, 0x00533e29, 0x004f3827, 0x00483329, 0x00483731, 0x00473a36, 0x00443a39,
- 0x003c3926, 0x003b3725, 0x00353420, 0x0034311e, 0x00353420, 0x003a3422, 0x00383321, 0x00383120, 0x00372f1d, 0x00362f1b, 0x00352f1d, 0x0034311e, 0x0032301c, 0x0031301c, 0x00343221, 0x00343321,
- 0x00383624, 0x00373523, 0x00373521, 0x00383522, 0x00383523, 0x00383722, 0x00373620, 0x0035321e, 0x00352f22, 0x00362d22, 0x003a2d25, 0x00402f28, 0x00453128, 0x00493328, 0x00483125, 0x00442e1f,
- 0x00452d1b, 0x00382516, 0x00827269, 0x00ede5e0, 0x00fdfcfd, 0x00fbfefe, 0x00f9fcfd, 0x00fcfeff, 0x00cccbc8, 0x00595650, 0x0018140e, 0x0013100e, 0x000b0907, 0x00060404, 0x00030101, 0x00010000,
- 0x00020102, 0x00020101, 0x00020003, 0x00050107, 0x000d0b10, 0x00151218, 0x00121319, 0x00091215, 0x00040608, 0x001b0600, 0x004e170d, 0x00822717, 0x00a6321f, 0x00993820, 0x0074260b, 0x00410b00,
- 0x0002060f, 0x0008000d, 0x00180a15, 0x0020131a, 0x00110f0e, 0x00251110, 0x00481a1a, 0x00611316, 0x00580807, 0x003c0501, 0x002a0201, 0x002a0000, 0x00280304, 0x001a0005, 0x000a0001, 0x00020001,
- 0x00010502, 0x00000802, 0x000a0d0d, 0x001a1721, 0x0026162f, 0x00181020, 0x002e2935, 0x0063626f, 0x00676979, 0x00353a4a, 0x001d1e2c, 0x002d2c39, 0x005f5759, 0x00695a5a, 0x005b4740, 0x00523b33,
- 0x005c3a28, 0x005a3a27, 0x00563725, 0x00543325, 0x00503126, 0x004c3129, 0x00462e27, 0x003e2b23, 0x00312722, 0x00302b25, 0x003f3b35, 0x004b413f, 0x00564947, 0x005a4f4b, 0x005f5551, 0x00635959,
- 0x00646266, 0x00616971, 0x005f6f7f, 0x005b7289, 0x00587693, 0x005d7892, 0x0060778c, 0x0061717f, 0x00686569, 0x00695d59, 0x006a584f, 0x00644f43, 0x0062544a, 0x005e5651, 0x004b4747, 0x00414043,
- 0x00323541, 0x0029303c, 0x00151f2d, 0x00101d2e, 0x000e1e35, 0x000f1f38, 0x0019293f, 0x00253548, 0x003c4350, 0x00464a55, 0x00474b56, 0x003d4250, 0x0032353e, 0x00302f37, 0x00353239, 0x0037343b,
- 0x0033313c, 0x002f3141, 0x0031374d, 0x00313d57, 0x002e4060, 0x00334965, 0x00485c79, 0x00566985, 0x0053637b, 0x00586678, 0x00656d7d, 0x009297a2, 0x00edebf1, 0x00fdfbfd, 0x00fffbfe, 0x00fffbfc,
- 0x00fdfdfb, 0x00d7dbd5, 0x00454a45, 0x00060c07, 0x00040f05, 0x00071306, 0x00081105, 0x000e1608, 0x001a1e12, 0x001f2217, 0x00212216, 0x00212315, 0x00202315, 0x001f2114, 0x001c1e10, 0x00191c10,
- 0x00171711, 0x0014150d, 0x00101209, 0x000f1008, 0x0012130b, 0x0014150c, 0x0015150b, 0x0015150b, 0x00141309, 0x00131208, 0x00151108, 0x0017110a, 0x00161008, 0x00150f07, 0x00150d05, 0x00140d04,
- 0x00140805, 0x00100a05, 0x000d0908, 0x00020409, 0x00212b4a, 0x005c669c, 0x005b67af, 0x00515eb1, 0x005662b8, 0x00515eb2, 0x004150a8, 0x00394ca8, 0x00424fa8, 0x00414da2, 0x003e4699, 0x0041509f,
- 0x005162a9, 0x00485a8c, 0x00172547, 0x00050913, 0x00150b02, 0x00522d26, 0x00ad7e7b, 0x00c09792, 0x009a7873, 0x00795f55, 0x00766055, 0x00726055, 0x00806661, 0x00937573, 0x00a58483, 0x00a98484,
- 0x0083706b, 0x005d4e4a, 0x00271c17, 0x000d0902, 0x00060600, 0x00090b04, 0x00090e07, 0x00090e08, 0x00081007, 0x00080e06, 0x00080e07, 0x00091009, 0x000a1009, 0x00080f07, 0x00090f09, 0x000b100a,
- 0x000c100b, 0x000b1009, 0x000a100a, 0x00090f0a, 0x00090f08, 0x000b0f09, 0x000d0f0d, 0x000b110c, 0x0009110d, 0x0008110c, 0x0008130c, 0x0008120c, 0x0009100b, 0x000a0f0b, 0x000c0f0c, 0x000d0f0b,
- 0x000b120b, 0x000b120a, 0x000c120b, 0x000b110b, 0x000b100a, 0x000b100b, 0x000b110c, 0x000b110c, 0x000b110c, 0x000a110a, 0x00091108, 0x00091103, 0x000a1105, 0x000a1006, 0x00090f07, 0x00080f04,
- 0x000b100b, 0x00090f09, 0x00080d0a, 0x00080e0a, 0x00090f0c, 0x000b110f, 0x000d1312, 0x000f1513, 0x00121716, 0x00131817, 0x00131718, 0x00111616, 0x00101516, 0x000e1313, 0x000b1110, 0x000a100e,
- 0x000f1014, 0x004f5252, 0x00cacdcb, 0x00e1e3e2, 0x00dadcdb, 0x00d2d4d3, 0x00d8d9dc, 0x00acaeb6, 0x003c3b4a, 0x000d0c1c, 0x00080920, 0x00030626, 0x00050b30, 0x000d143b, 0x00101742, 0x000e1541,
- 0x000f1843, 0x000e1941, 0x000a1838, 0x0003142e, 0x0006182a, 0x000a192c, 0x001c273b, 0x002f3a4f, 0x00414c60, 0x00435062, 0x00495668, 0x00586475, 0x00626e7c, 0x006e7986, 0x00808b99, 0x008c99a6,
- 0x00b0abc0, 0x00bebec7, 0x00cdd1d0, 0x00d4dcd0, 0x00dce6d2, 0x00e2eed9, 0x00edf5e7, 0x00f4f8ee, 0x00fbf9f9, 0x00fdf9fd, 0x00fef8fe, 0x00fff9fe, 0x00fff9fe, 0x00fffaff, 0x00fdfaff, 0x00fefafd,
- 0x00fffdff, 0x00fbfcfd, 0x00f9fefc, 0x00f9fdfa, 0x00a6aeaa, 0x004a555d, 0x00707d8b, 0x009facb7, 0x00c2c9d2, 0x00d0d6dc, 0x00d3d3d8, 0x00d4d2d5, 0x00d5d4d7, 0x00e1e3e4, 0x00e7e9ea, 0x00b8bbbc,
- 0x003a4e7d, 0x000a1c44, 0x0000082a, 0x00030724, 0x000d0d2a, 0x000f0a2b, 0x000c0b31, 0x0011113c, 0x00111852, 0x00141d5b, 0x00192266, 0x001b2371, 0x00242e7d, 0x00323e8a, 0x003e4f96, 0x0050609e,
- 0x009fabdb, 0x00dee3fa, 0x00f6f6fd, 0x00fcfbfb, 0x00fefaf0, 0x00fdf7f5, 0x00fff7f7, 0x00fef9f7, 0x00fffef8, 0x00fffbf5, 0x00fcfaf2, 0x00fefdf8, 0x00fdfdf9, 0x00fefffc, 0x00fcfdfe, 0x00fcfdfd,
- 0x00edf7f8, 0x00e2eced, 0x00cbd7d8, 0x00adbbbd, 0x00849397, 0x0067777d, 0x004a5b62, 0x0031444b, 0x0026373f, 0x001e3238, 0x001b2c36, 0x001c2637, 0x001a2433, 0x001e2f3a, 0x0023383f, 0x002b4248,
- 0x00314954, 0x002f4c57, 0x00375561, 0x00335261, 0x003e5f70, 0x00677ea7, 0x009cabd8, 0x00bbc3e5, 0x00c0c2c8, 0x008b8d83, 0x00716e5e, 0x00665e4e, 0x003a2831, 0x0017061f, 0x0015072f, 0x001a1345,
- 0x002f3266, 0x003b3d82, 0x0047499a, 0x004c4fa9, 0x004a519e, 0x00424e80, 0x0055637e, 0x00707f88, 0x00808e93, 0x007a8694, 0x00778193, 0x00798b98, 0x00798c98, 0x007d8e9a, 0x007f8f98, 0x007c8c94,
- 0x00838f99, 0x008a97a0, 0x00929fa7, 0x00919ea4, 0x008c99a0, 0x0087969e, 0x0081919a, 0x007e8f95, 0x007f8f94, 0x007e8f93, 0x007c8d92, 0x007d8d92, 0x007b8c92, 0x007f9096, 0x00829298, 0x00809197,
- 0x007f8894, 0x007b858c, 0x009fa7aa, 0x00d1d6d5, 0x00dde0de, 0x00d0d2d0, 0x00babdbe, 0x00a9aeb0, 0x00969ea2, 0x00859095, 0x00828e96, 0x00788890, 0x006e7e87, 0x006a7c83, 0x006e7f88, 0x0070818a,
- 0x0073828c, 0x006b7d85, 0x00697b83, 0x006b7d84, 0x006a7c83, 0x006a7d83, 0x00687c83, 0x0063787f, 0x0061737b, 0x0060737a, 0x0062757c, 0x0063777d, 0x0063777d, 0x0063787d, 0x0063777c, 0x0060757a,
- 0x005f727f, 0x00566d78, 0x004b656f, 0x00415d66, 0x0035535c, 0x002d4c56, 0x00284852, 0x00234550, 0x001f444f, 0x00214752, 0x00234854, 0x00234852, 0x00244751, 0x00244751, 0x00234751, 0x00234851,
- 0x00244750, 0x0022464f, 0x0021464f, 0x0021464f, 0x00244652, 0x00224855, 0x00204754, 0x00214450, 0x00274146, 0x004e6064, 0x00c7d3d4, 0x00f7faf9, 0x00fcfdfa, 0x00fffdfb, 0x00fdfcfa, 0x00f4f0ef,
- 0x00fdfff5, 0x00fbfffa, 0x00fafefc, 0x00f7fafa, 0x00968c8a, 0x003f281f, 0x00401f11, 0x004c2513, 0x00492a17, 0x00492f22, 0x0043291f, 0x00432820, 0x00382118, 0x00322019, 0x002a1c15, 0x001f1610,
- 0x00141009, 0x000f0c07, 0x000a0905, 0x00070706, 0x00090506, 0x000b0202, 0x000b0102, 0x00090406, 0x0007090b, 0x00090909, 0x000c0b08, 0x00080402, 0x001a1d26, 0x00596980, 0x007b95b9, 0x005d81b3,
- 0x00547ec6, 0x00537ac2, 0x00537bbe, 0x005b80be, 0x00647fad, 0x005a6b90, 0x00323a4f, 0x002b262e, 0x003e2c1f, 0x0048311b, 0x00533a22, 0x00523a27, 0x00523a2a, 0x004f392b, 0x0047342a, 0x00433127,
- 0x00382e26, 0x00352a25, 0x002b231f, 0x0027211d, 0x00221e1c, 0x00251d1e, 0x00292022, 0x00302526, 0x00362a24, 0x003e3228, 0x0044372a, 0x00503f33, 0x00564237, 0x005a453b, 0x005d473d, 0x005c453d,
- 0x00554a47, 0x008a807c, 0x00cec6c3, 0x00dbd8db, 0x00e2ebfa, 0x00a0b2d8, 0x00617caa, 0x00708ec7, 0x00b8ccf8, 0x00c3cdf4, 0x008186a3, 0x00aeaaae, 0x00cbd1ea, 0x00868ab0, 0x006b7195, 0x00c0c4e3,
- 0x00dfdbe0, 0x00e5dcd8, 0x00e2dad2, 0x00ded5d1, 0x00d4d0da, 0x00ceccd7, 0x00c9ccd3, 0x00cbcbd0, 0x00d0cad2, 0x00d4c9d0, 0x00d8c8ce, 0x00d9c9cc, 0x00e0d1d2, 0x00e0d4d2, 0x00c9c0bc, 0x00928b84,
- 0x007e5b51, 0x00714f47, 0x005c3f39, 0x00452b29, 0x001d0f0e, 0x000f0306, 0x00060004, 0x00060005, 0x0008000d, 0x00070009, 0x00030110, 0x000d1335, 0x00526495, 0x006c80bd, 0x005b73b0, 0x00778cc0,
- 0x00d6dded, 0x00fbfcfe, 0x00fdfef7, 0x00fdfaf5, 0x00fefefe, 0x00f8ece0, 0x009e8a75, 0x00654935, 0x006b4837, 0x006b4c3e, 0x00604737, 0x00624e41, 0x00665745, 0x006d5945, 0x006b533b, 0x006c4d33,
- 0x00695023, 0x00675125, 0x00655226, 0x00635127, 0x00625125, 0x0065552b, 0x0069582c, 0x006b582c, 0x006a5322, 0x00674d1c, 0x005f501c, 0x005a5c25, 0x005d5621, 0x005c4d1f, 0x005d4d27, 0x005b4d2f,
- 0x00544e37, 0x00525232, 0x005c5d31, 0x00656527, 0x0067610e, 0x00605814, 0x00555319, 0x004f5525, 0x004e5740, 0x00535c49, 0x00585b47, 0x005c573b, 0x005d542a, 0x00585320, 0x0057531e, 0x00555822,
- 0x00666431, 0x00787542, 0x00918c5a, 0x00908957, 0x00766e3b, 0x00635c27, 0x00635c26, 0x00635d26, 0x007f7a41, 0x0097925a, 0x008f8c4d, 0x00747531, 0x005e611d, 0x005b631f, 0x00566422, 0x0055662a,
- 0x00556732, 0x00536533, 0x004e642c, 0x0050662c, 0x00506825, 0x00546739, 0x0050643c, 0x004e6238, 0x0051633c, 0x0051633c, 0x004f5f38, 0x00546134, 0x005c672f, 0x005c6625, 0x00636d25, 0x007e8539,
- 0x006e8238, 0x0064792f, 0x00566c23, 0x004f671f, 0x004a6321, 0x004b652a, 0x004d6533, 0x004a6236, 0x00475d3d, 0x00465b40, 0x00495b33, 0x00505b19, 0x005d6625, 0x00768244, 0x00839355, 0x006c7d40,
- 0x0052642b, 0x004c5e27, 0x004a5c21, 0x00475b22, 0x004a5f25, 0x00475c1e, 0x00485c1d, 0x00475b21, 0x00465820, 0x0047571f, 0x0049591c, 0x004c5a1b, 0x004f5916, 0x004e5617, 0x004e551a, 0x0050541e,
- 0x004f561d, 0x00505827, 0x004c5b2c, 0x004b5a30, 0x004d5e28, 0x00586324, 0x00686f31, 0x00686b33, 0x00676554, 0x00726f78, 0x006c7584, 0x00486971, 0x00486251, 0x004c6037, 0x004e5f1e, 0x00657118,
- 0x00888e32, 0x007a8136, 0x0069713a, 0x00a8b49b, 0x00f3fdfc, 0x00fafdff, 0x00fcfefa, 0x00fbfdfe, 0x00fafafb, 0x00bcbdbe, 0x00666667, 0x00919194, 0x00cccacf, 0x00e6e5eb, 0x00f4f2f9, 0x00f6f4fb,
- 0x00f1f3ff, 0x00eef4fd, 0x00eef8fb, 0x00f1f8f6, 0x00faf3f0, 0x00fdf1f2, 0x00fbebee, 0x00ebd2da, 0x00e2d4e1, 0x00f2eef9, 0x00f2f5fc, 0x00eaf9f8, 0x00effaf6, 0x00e8f3fa, 0x00bcc6d6, 0x009fb0c8,
- 0x008398c1, 0x007e84ad, 0x0075698a, 0x007b5a6e, 0x006f2e32, 0x002c1e20, 0x000a120d, 0x00010802, 0x00272720, 0x00615f57, 0x00757169, 0x0067615b, 0x005c5755, 0x005e5c5d, 0x0058585c, 0x004b4e53,
- 0x003b3e29, 0x00353823, 0x0031351f, 0x00343522, 0x00363622, 0x00383422, 0x0037321f, 0x0038311e, 0x00372f1c, 0x00372e1c, 0x00352f1d, 0x0033311d, 0x0032301d, 0x0033301d, 0x00353320, 0x00363422,
- 0x00373623, 0x00363522, 0x00363521, 0x00373521, 0x00383624, 0x00393823, 0x00383621, 0x0035321f, 0x00332e20, 0x00352d21, 0x003a2e25, 0x00403028, 0x00463229, 0x00493329, 0x00483125, 0x00442d1f,
- 0x00462f1c, 0x00392617, 0x00827369, 0x00ece5e0, 0x00fdfcfd, 0x00fcfefe, 0x00f9fcfe, 0x00fdfeff, 0x00cac9c7, 0x0058554f, 0x00141009, 0x000f0c0a, 0x000a0906, 0x00040403, 0x00010200, 0x00020303,
- 0x00040204, 0x00050205, 0x00050206, 0x00060308, 0x000a0a0f, 0x000a1013, 0x00061111, 0x00020e0f, 0x00080405, 0x002b0909, 0x005c1e17, 0x00842517, 0x00912611, 0x0090351c, 0x00742a0d, 0x00420e00,
- 0x0001050c, 0x0006000b, 0x00110611, 0x001e1119, 0x001e1918, 0x00381c18, 0x00662925, 0x008e2625, 0x00921c13, 0x00791606, 0x00640e05, 0x0065110c, 0x00531816, 0x0030080f, 0x00090100, 0x00000403,
- 0x00000601, 0x00040a04, 0x00111414, 0x0026202c, 0x002b1d35, 0x001c1623, 0x0026272d, 0x00393b43, 0x00343944, 0x00212735, 0x001d202c, 0x00272733, 0x00493f45, 0x00625053, 0x00614b48, 0x005a403d,
- 0x00643a29, 0x00633c2a, 0x00613b2a, 0x005e3729, 0x00583329, 0x00513129, 0x00482b25, 0x003d271f, 0x002e241e, 0x002e2821, 0x00403c35, 0x004d4544, 0x005a4e4d, 0x00615451, 0x00695d59, 0x006e6262,
- 0x006d6b6d, 0x006b7078, 0x00667281, 0x0062758b, 0x005d7793, 0x005d758e, 0x00607487, 0x005c6b78, 0x007f7e80, 0x009e9592, 0x008f817c, 0x006e5e57, 0x00564b47, 0x00464241, 0x002b2b2f, 0x00242930,
- 0x00353a43, 0x00474e58, 0x00404955, 0x003e4a59, 0x003d4a5d, 0x003b485d, 0x003e4b5e, 0x00424e5f, 0x004b505a, 0x004a4d57, 0x00484e5b, 0x00434d60, 0x003a4250, 0x00343647, 0x00363645, 0x0040404d,
- 0x0051505d, 0x0058586b, 0x0054566a, 0x00474d65, 0x00444d67, 0x00444e6a, 0x00434c66, 0x00454c68, 0x0048506b, 0x00565b72, 0x0064697c, 0x009394a4, 0x00e3e3ec, 0x00fcf9fd, 0x00fefefd, 0x00fbf9f7,
- 0x00fefefd, 0x00e8ece8, 0x00656a65, 0x000b120b, 0x00030e05, 0x00091508, 0x000a1305, 0x0011180b, 0x001c2114, 0x00222519, 0x00232517, 0x00222515, 0x00212316, 0x00202215, 0x001d1f12, 0x001a1c12,
- 0x0016170f, 0x0014150b, 0x000f1108, 0x000e1008, 0x0012130c, 0x0014140c, 0x0014140b, 0x0015140b, 0x00141409, 0x0017150a, 0x001b160c, 0x001f160e, 0x001f140c, 0x001e120a, 0x001b0f07, 0x001b0e05,
- 0x00160a01, 0x00110a03, 0x000d0a0a, 0x00050812, 0x0029345a, 0x005a65a3, 0x005765b3, 0x005260ba, 0x005361b8, 0x004958ab, 0x004051a5, 0x004252ac, 0x004351a7, 0x00434da3, 0x003d479c, 0x003f4fa1,
- 0x00475aa2, 0x00505f95, 0x00182544, 0x00060310, 0x003b2b1d, 0x00976a62, 0x00c48f84, 0x00996d62, 0x005f473a, 0x004f3f30, 0x004e4434, 0x004e4738, 0x00524339, 0x005c4540, 0x00735454, 0x00886165,
- 0x00977f7c, 0x00907a78, 0x00655350, 0x00332623, 0x000f0603, 0x000c0905, 0x000d0d07, 0x000e100a, 0x00060f06, 0x00091008, 0x00091009, 0x00091109, 0x000b110a, 0x00090f08, 0x000a0f09, 0x000c100a,
- 0x000d110b, 0x000b1109, 0x000b100a, 0x00091009, 0x00080e07, 0x000a0e09, 0x000d0f0c, 0x000c110d, 0x0009110c, 0x0009110c, 0x0008120c, 0x0007120b, 0x0009100b, 0x000a0f0b, 0x000b0f0b, 0x000e0f0b,
- 0x000a1108, 0x000a1208, 0x000b1209, 0x000b1109, 0x000b100a, 0x000a1009, 0x000a0f09, 0x000a0f09, 0x000a100a, 0x00091009, 0x00081007, 0x00091004, 0x00091005, 0x00090f07, 0x00080d07, 0x00060d05,
- 0x000b110c, 0x000a100b, 0x00090e0c, 0x00090e0c, 0x000b100d, 0x000c1112, 0x000e1215, 0x00111516, 0x0014191b, 0x00151a1b, 0x00161a1c, 0x00151a1b, 0x0014191b, 0x00131819, 0x00111618, 0x000f1416,
- 0x000e1015, 0x00434546, 0x00cccfce, 0x00f6f9f8, 0x00f7f9f8, 0x00eff1ef, 0x00eff1f3, 0x00d7d8df, 0x005d5e6a, 0x00111121, 0x000a0b21, 0x00030831, 0x000a123e, 0x00131c50, 0x0018225a, 0x0016225c,
- 0x0013245b, 0x000b1e54, 0x00102755, 0x001f3a61, 0x002f4a6d, 0x003b5373, 0x00475c7a, 0x004e6183, 0x00475f7d, 0x003e5774, 0x00354d6a, 0x00354d68, 0x003c536c, 0x00384e67, 0x00364c65, 0x003b526b,
- 0x0048556b, 0x00566273, 0x00616b70, 0x006a6a6a, 0x007a6b5f, 0x00917b6a, 0x00ac9384, 0x00c0a699, 0x00c7b9b8, 0x00cbc6cb, 0x00d3d0d6, 0x00dbd6da, 0x00e0dee2, 0x00e7e8ec, 0x00eff1f3, 0x00f3f7f9,
- 0x00f6fbfb, 0x00f6fafb, 0x00fcffff, 0x00f5f5f4, 0x009fa09c, 0x00535859, 0x00788085, 0x00a3aab0, 0x00c5ccd2, 0x00cfd7df, 0x00cad0db, 0x00cad1de, 0x00cad5e5, 0x00d4e1f2, 0x00d4e2f3, 0x00abbbcd,
- 0x0032588e, 0x000f2d5c, 0x00001038, 0x00010628, 0x00060523, 0x00080322, 0x00070327, 0x0006052c, 0x00050844, 0x00070e4e, 0x00071159, 0x00041669, 0x00122173, 0x0020317d, 0x002d3e87, 0x003b4b89,
- 0x008d9bc4, 0x00e0e5f9, 0x00f9fdfc, 0x00fffef9, 0x00fefcee, 0x00fffaf5, 0x00fefaf5, 0x00fdf8f6, 0x00fffdfa, 0x00fefefc, 0x00fafdfa, 0x00f6fcfa, 0x00f6fdff, 0x00ebf2f8, 0x00d6dce8, 0x00c6cbda,
- 0x009db2b9, 0x007d9398, 0x00576e72, 0x00485f64, 0x0040565c, 0x003c545b, 0x00334c52, 0x002d454c, 0x0029424a, 0x00223d42, 0x001e333c, 0x001f2a3b, 0x001e2837, 0x0020303c, 0x00243841, 0x002c4149,
- 0x00304950, 0x00344d59, 0x003a5762, 0x003a5667, 0x005e7c8d, 0x008d9db9, 0x00b0b4d1, 0x00c1b1ca, 0x00947b86, 0x008c7c7f, 0x00999690, 0x00817d7c, 0x00574b5f, 0x00281e43, 0x00272653, 0x003c497c,
- 0x005c5f8c, 0x005f6099, 0x005c5c9d, 0x0053529c, 0x00494b8a, 0x0051567f, 0x004d546b, 0x004f5760, 0x00636c71, 0x007a818e, 0x00858d9c, 0x007e8f99, 0x007f8f9a, 0x0083939d, 0x0082929a, 0x007b8b92,
- 0x00848f9a, 0x008a97a1, 0x00929ea8, 0x00909ca4, 0x008a989e, 0x0084949a, 0x007f9094, 0x007b8e8f, 0x007e9093, 0x007e9093, 0x007d8e92, 0x007b8b91, 0x007b8b92, 0x007e8f97, 0x0084939d, 0x0085939d,
- 0x00808a91, 0x00949ba1, 0x00cdd1cf, 0x00eceee9, 0x00e5e3d8, 0x00d7d3cc, 0x00b4b1ab, 0x009c9b99, 0x00878c8e, 0x007f878d, 0x00858f98, 0x00778794, 0x006c7b86, 0x00687a87, 0x00697c87, 0x006a7b88,
- 0x00687b83, 0x0062777f, 0x005d737b, 0x005f767d, 0x005f747c, 0x005e757c, 0x005c757d, 0x0058707a, 0x00576d76, 0x00556c74, 0x00556c74, 0x00566d75, 0x00576e76, 0x00576f76, 0x00566d75, 0x00536b73,
- 0x004e6672, 0x0048636d, 0x003e5c65, 0x0036555e, 0x002d4c57, 0x00284853, 0x00264853, 0x00254853, 0x00224652, 0x00214652, 0x00214653, 0x00234752, 0x00244852, 0x00234751, 0x00224650, 0x0022484f,
- 0x0022474f, 0x00234750, 0x0020454e, 0x0021464f, 0x00234551, 0x00214753, 0x001f4653, 0x00214451, 0x00213d44, 0x003c4f56, 0x00a4b2b3, 0x00eff4f6, 0x00fdfffd, 0x00fdfdfd, 0x00fdfcf9, 0x00fdfaf9,
- 0x00fcfff8, 0x00f8fdfa, 0x00fbffff, 0x00f9fbfb, 0x00a49996, 0x00483125, 0x00422110, 0x004c2711, 0x004a2918, 0x00482e1f, 0x0043291f, 0x0041261c, 0x0039221a, 0x00322015, 0x002b1d13, 0x00211a10,
- 0x0017130d, 0x00120f09, 0x000f0a07, 0x000c0706, 0x000b0405, 0x000c0300, 0x000c0300, 0x000a0405, 0x000a060a, 0x000a0909, 0x000d0906, 0x00090602, 0x0017191f, 0x00485568, 0x007c96b4, 0x006386b1,
- 0x00577dc6, 0x005579bc, 0x005d7ebe, 0x006786bd, 0x0063789e, 0x00455169, 0x00272b38, 0x002d2524, 0x00433022, 0x004d351e, 0x00573d25, 0x0058412c, 0x005a4331, 0x00574233, 0x00513e32, 0x004d3b2f,
- 0x0044352f, 0x003e302b, 0x00322825, 0x0029221e, 0x00241f1c, 0x00251c1c, 0x00292021, 0x002e2525, 0x00392d27, 0x0042342c, 0x0047372c, 0x004c3c2e, 0x00564335, 0x00584237, 0x005c453d, 0x005c453e,
- 0x004e443f, 0x005d524d, 0x008f8482, 0x00b7b0b5, 0x00e1e7fb, 0x00a9b9dd, 0x007791c0, 0x0083a1d8, 0x0097aae1, 0x00aebcea, 0x00afb4d7, 0x00cbcacf, 0x00afb3cd, 0x007a80a4, 0x008d91b5, 0x00c8c9e8,
- 0x00ddd6da, 0x00e4dbd6, 0x00eaded8, 0x00e6dfdd, 0x00dfdbe6, 0x00d9d5e1, 0x00d3ccd8, 0x00d1c8d4, 0x00d2c4d0, 0x00cec1cc, 0x00cbbec7, 0x00cbbec4, 0x00d1c6c8, 0x00cfc9c6, 0x00cbc7c2, 0x00b3b0ab,
- 0x00937066, 0x00806157, 0x007b5f57, 0x00735d56, 0x004e3d39, 0x00271b19, 0x00120506, 0x000c0203, 0x000f000d, 0x000d0209, 0x0008000e, 0x000c102a, 0x004c5988, 0x00707fb8, 0x005f71ae, 0x00748abc,
- 0x00d6dcf0, 0x00f9fbfc, 0x00fffaf9, 0x00fefbf4, 0x00fffcff, 0x00f8ecdb, 0x00a78c74, 0x006b4a30, 0x006d472d, 0x006e4830, 0x006b4934, 0x006d533e, 0x00745f4b, 0x00795f45, 0x00745535, 0x00765229,
- 0x0076522d, 0x0074532b, 0x0074542c, 0x0072572b, 0x00745c2f, 0x00776230, 0x00705929, 0x006f5524, 0x00745426, 0x00755424, 0x00745827, 0x00695d2b, 0x0073592b, 0x006f532b, 0x00765838, 0x007a5e44,
- 0x006c5c44, 0x006c6041, 0x00867a50, 0x009a8b53, 0x00938130, 0x0076621e, 0x0065561a, 0x005d5525, 0x00605c47, 0x0065614e, 0x00675d48, 0x00675539, 0x00675128, 0x00655120, 0x0064521c, 0x005f551d,
- 0x006c5d2e, 0x0078693a, 0x008f8151, 0x008f8151, 0x00766837, 0x00625522, 0x005f521e, 0x00625520, 0x007b6936, 0x008b7c48, 0x00877a3e, 0x006f641d, 0x00625916, 0x00605b1b, 0x005c5c21, 0x00595c24,
- 0x00545c23, 0x00515b23, 0x0051591f, 0x00535b21, 0x00585f25, 0x004f6036, 0x004b5d3b, 0x004b5b35, 0x00505b39, 0x00566039, 0x00596036, 0x00606737, 0x00787d45, 0x007d7f3f, 0x00666822, 0x0062651b,
- 0x0069753a, 0x00738045, 0x006b7a3e, 0x005a6a2d, 0x00546529, 0x004d5f26, 0x004d602a, 0x004c602d, 0x004d6037, 0x004f6238, 0x00506031, 0x004f5d17, 0x00586725, 0x006b7b39, 0x00738345, 0x00617434,
- 0x00495d22, 0x00475f21, 0x00495c25, 0x00475e25, 0x00455e28, 0x00475d1b, 0x00475b14, 0x00475813, 0x00495a1b, 0x00485816, 0x00475716, 0x00495919, 0x00485419, 0x00465317, 0x00465419, 0x00495518,
- 0x004c551f, 0x00485222, 0x00475125, 0x0044522c, 0x00465526, 0x00475720, 0x00495422, 0x00474e25, 0x005e5757, 0x007a7288, 0x007d81a7, 0x00497490, 0x00456669, 0x00455f45, 0x004a5b26, 0x00566518,
- 0x006b6d1d, 0x00676a28, 0x006d6f42, 0x00b0b49d, 0x00fbfdff, 0x00fdfdfd, 0x00fcfcfa, 0x00fbfcfc, 0x00fbfbfa, 0x00bebdbe, 0x00676668, 0x00929295, 0x00ccccd0, 0x00e7e6eb, 0x00f4f4fb, 0x00f6f6fe,
- 0x00f0f5fe, 0x00eef4fc, 0x00eef6fb, 0x00eff5f3, 0x00fdf2ee, 0x00fbf1ed, 0x00f6e0e0, 0x00ecced3, 0x00f5e5eb, 0x00fef6fb, 0x00f4f9fe, 0x00e6fdf5, 0x00edf5eb, 0x00f3f7ec, 0x00f4f5f4, 0x00dee3f0,
- 0x0099aed9, 0x007b90c3, 0x00616da1, 0x00625b8d, 0x006a4a6e, 0x00453e53, 0x0027303f, 0x00151b27, 0x0032323c, 0x0064636a, 0x007f7d81, 0x00706f6f, 0x00666665, 0x00626564, 0x00575b5b, 0x00464a49,
- 0x00383e28, 0x00313722, 0x00313420, 0x00333623, 0x00353420, 0x00353421, 0x00383420, 0x0037331f, 0x00393120, 0x00392f1e, 0x00352f1d, 0x0033311d, 0x0032301d, 0x0033301e, 0x00343320, 0x00353320,
- 0x00373522, 0x00373523, 0x00373623, 0x00373522, 0x00373622, 0x00373821, 0x00363720, 0x00343320, 0x00362d20, 0x00362b20, 0x003b2e26, 0x00403128, 0x0045332a, 0x004a3429, 0x00483124, 0x00462d20,
- 0x004a3022, 0x003c271a, 0x0083746b, 0x00ece6e0, 0x00fdfcfc, 0x00fbfdfd, 0x00f8fbfd, 0x00fbfffc, 0x00cdcac8, 0x0057544d, 0x000e0c04, 0x00070805, 0x00070805, 0x00030303, 0x00000000, 0x00020203,
- 0x00060208, 0x00020004, 0x00030005, 0x0008050c, 0x0009090f, 0x00040d0e, 0x00010d0c, 0x00000b0b, 0x000c0308, 0x0029080a, 0x00591b1a, 0x0079261a, 0x00892914, 0x0084351d, 0x00712f13, 0x00451604,
- 0x0002060c, 0x00020008, 0x0009010b, 0x00170c14, 0x001f1b17, 0x003a1e17, 0x006e2d26, 0x009f2e2b, 0x00ae2518, 0x009d2609, 0x0095250d, 0x00922a22, 0x00682221, 0x00340b0d, 0x00100202, 0x000a0d0b,
- 0x00010d05, 0x00060f07, 0x00181819, 0x0029232e, 0x002d2137, 0x0023232b, 0x00202226, 0x00191c23, 0x00151925, 0x00141926, 0x001c1f2d, 0x0021212c, 0x002e242c, 0x00453336, 0x00553e3e, 0x00573c3b,
- 0x00673c2b, 0x00683d2d, 0x006a4032, 0x00693f34, 0x00623b33, 0x00583730, 0x00482c27, 0x003b2621, 0x002f211d, 0x002f251f, 0x00413a34, 0x004f4847, 0x005f5554, 0x006b5d5c, 0x00746664, 0x00766c6a,
- 0x007a7379, 0x00767680, 0x006f7788, 0x0068788f, 0x00607893, 0x005e748a, 0x005f7081, 0x00697480, 0x00acacb1, 0x00e2dcda, 0x00bab1ab, 0x006c615a, 0x00332b29, 0x00232123, 0x0014181f, 0x0028313a,
- 0x007c8189, 0x00a0a6af, 0x00b0b7c3, 0x00b5bfce, 0x00bcc8d7, 0x00bac7d5, 0x00bac5d4, 0x00b7c1ce, 0x00b2b6c2, 0x00a7acb7, 0x0098a1ad, 0x008692a4, 0x0076818f, 0x00505668, 0x001f2334, 0x00232435,
- 0x00454455, 0x005c5d6d, 0x00616377, 0x004d4f62, 0x0041445c, 0x00454a61, 0x0043465f, 0x003f405a, 0x0041415e, 0x00484861, 0x00525167, 0x006f7082, 0x00cac7d3, 0x00f6f6fb, 0x00fffdfe, 0x00fefdfa,
- 0x00fffdfd, 0x00f5f8f3, 0x00828680, 0x00141a13, 0x00050e06, 0x00051106, 0x00071204, 0x000f1b0b, 0x00212419, 0x0024271c, 0x00242619, 0x00232617, 0x00222416, 0x00222316, 0x001f2113, 0x00191e11,
- 0x00191a11, 0x0013140b, 0x000e0f09, 0x000f0f0a, 0x0012110c, 0x00121109, 0x00131108, 0x00141209, 0x001a140d, 0x001c170e, 0x00201910, 0x00241b11, 0x00261910, 0x0025160c, 0x00221107, 0x001f0e04,
- 0x001f0e06, 0x00130904, 0x00110b0e, 0x000c0f1c, 0x003f4c76, 0x005c6bac, 0x005264b5, 0x004f61be, 0x005160bc, 0x004757a9, 0x004654a8, 0x004656ae, 0x004552a6, 0x003f4da0, 0x003c489c, 0x003a4b9c,
- 0x004459a1, 0x004f5e95, 0x00141b3f, 0x00120c18, 0x006a5448, 0x00b99182, 0x00a17766, 0x00644131, 0x004e3c2a, 0x004a4430, 0x00474835, 0x00464938, 0x004f493b, 0x0053463d, 0x005a4441, 0x00644547,
- 0x00755a5b, 0x008e7572, 0x00927b77, 0x00665450, 0x002d201c, 0x00140e0a, 0x000e0d08, 0x0010110a, 0x00070e07, 0x00081209, 0x000a120a, 0x000b120a, 0x000b110a, 0x000a1009, 0x000c100a, 0x000b1109,
- 0x000e120c, 0x000c1209, 0x000c1209, 0x000b1109, 0x00090f08, 0x000a0e09, 0x000c0f0c, 0x000b100b, 0x0009110b, 0x0008110b, 0x0007110c, 0x0007110b, 0x0009100b, 0x000b100b, 0x000c100c, 0x000e0f0d,
- 0x000b100a, 0x000a100a, 0x000a100a, 0x00090f09, 0x00090f09, 0x00080f08, 0x00070e08, 0x00070d07, 0x00090e0a, 0x00090f09, 0x00090f0a, 0x00091007, 0x00090f07, 0x00090f07, 0x00090e09, 0x00080f0b,
- 0x000c110e, 0x000b110e, 0x000b1010, 0x000c1110, 0x000d1211, 0x000e1214, 0x000f1317, 0x00101517, 0x00151a1f, 0x00171c21, 0x001a1e22, 0x001a1e21, 0x00181d1f, 0x00171c1d, 0x00161a1c, 0x0015191b,
- 0x000d0f15, 0x002e3033, 0x00babcbe, 0x00f6f7f8, 0x00fdffff, 0x00fafcf9, 0x00fcfdfc, 0x00f0f0f3, 0x00807f8c, 0x001b1b27, 0x00070a21, 0x00000834, 0x000c1749, 0x00192459, 0x00172360, 0x00192969,
- 0x000f2464, 0x00132e6b, 0x00426198, 0x006386b7, 0x00749ac5, 0x007597c0, 0x006f8eb4, 0x006586ad, 0x00547399, 0x003f5e83, 0x00315073, 0x00365678, 0x00446486, 0x00466687, 0x00406081, 0x003d5d7d,
- 0x0035566d, 0x00425a6f, 0x004e576d, 0x004c4553, 0x0050282b, 0x00511e15, 0x005b2118, 0x006a3528, 0x0073554f, 0x00706765, 0x00787676, 0x00807c7b, 0x00878886, 0x008f9695, 0x00a0abac, 0x00a4b3b5,
- 0x00bdcdd0, 0x00c3ced0, 0x00dcddde, 0x00d3d2d3, 0x008f8788, 0x00615d5b, 0x008b8986, 0x00afafb1, 0x00cbced5, 0x00d3dce7, 0x00c4d2e2, 0x00bacee4, 0x00b3cdeb, 0x00adcbee, 0x00a5c5eb, 0x008fb2da,
- 0x005986c3, 0x003e689f, 0x002b4676, 0x001c2b53, 0x000b1231, 0x00050625, 0x0007092c, 0x000b0d35, 0x000b0d46, 0x0009104f, 0x000b175e, 0x00061a6e, 0x00142678, 0x00172a74, 0x0015276b, 0x001c2b6a,
- 0x0065749a, 0x00c3cee6, 0x00f8fcfd, 0x00fbfdfc, 0x00fdfcf1, 0x00fbfbf0, 0x00fcfefc, 0x00f9fcfb, 0x00fafefd, 0x00f4fefd, 0x00e4f2f5, 0x00d5e7ef, 0x00b9ccd7, 0x009cafbe, 0x00748696, 0x005c6e7f,
- 0x003e5963, 0x0036525b, 0x00334f58, 0x0037535c, 0x003c5861, 0x00405d66, 0x003e5c63, 0x003b585d, 0x00344e59, 0x0027434b, 0x00223742, 0x001f2c3e, 0x001b2837, 0x001d2f39, 0x00273b43, 0x0030424b,
- 0x00324851, 0x00375259, 0x003d5562, 0x0045616f, 0x007c95ab, 0x00a2b1b9, 0x00c7c0c8, 0x00b18b9c, 0x006e3b53, 0x00887081, 0x00837c8e, 0x003c4551, 0x00342b4b, 0x00443d62, 0x005e6288, 0x0061799d,
- 0x0062637a, 0x004c4c69, 0x00373658, 0x002b2a53, 0x00323054, 0x00404059, 0x003b3d4a, 0x0024282c, 0x0024272e, 0x004f545b, 0x0080878f, 0x007e8e94, 0x0086959c, 0x0088969f, 0x0083919a, 0x007a8992,
- 0x0084929b, 0x0087949d, 0x008d9ba4, 0x008f9da7, 0x008b99a1, 0x00849598, 0x007e9192, 0x007c8e90, 0x007f8e94, 0x007d8d93, 0x00798a91, 0x00778890, 0x00788792, 0x007e8d99, 0x008595a2, 0x008899a6,
- 0x00969fa7, 0x00bcc3c6, 0x00f2f5f3, 0x00f7f5ec, 0x00eee7db, 0x00dcd3c4, 0x00b6b0a3, 0x0095938a, 0x00818488, 0x00848991, 0x008e98a6, 0x008393a3, 0x00718091, 0x00657686, 0x00617482, 0x00657785,
- 0x005a707c, 0x005a717b, 0x00556e77, 0x00566f77, 0x00576f78, 0x00546e77, 0x004f6b72, 0x004c676e, 0x004a626c, 0x0048616b, 0x0049626b, 0x004a646d, 0x004c656f, 0x004d6770, 0x004d6770, 0x004b666e,
- 0x00436169, 0x003c5b64, 0x0034525c, 0x002d4c57, 0x00284753, 0x00264652, 0x00274954, 0x00274a55, 0x00274859, 0x00254656, 0x00254654, 0x00254953, 0x00244952, 0x00224852, 0x00204651, 0x0021464f,
- 0x00234550, 0x00224650, 0x00224550, 0x0022454f, 0x00234551, 0x001e444f, 0x00204651, 0x0022454f, 0x00233e4a, 0x002e454e, 0x007f9096, 0x00dce9e9, 0x00fafbfd, 0x00fafdfb, 0x00faf7f5, 0x00fbf9f6,
- 0x00fbfef7, 0x00f9fcfa, 0x00fbfeff, 0x00fbfdfe, 0x00b3a8a5, 0x00523b2f, 0x00452613, 0x00512c13, 0x004b2914, 0x004c2f1e, 0x0042281a, 0x0040261c, 0x003a2418, 0x00332217, 0x002a1d11, 0x00241b11,
- 0x001b170f, 0x0019140d, 0x00140f0a, 0x00100a08, 0x00110808, 0x00120803, 0x00110801, 0x000f0805, 0x000b0809, 0x000d0b0a, 0x00110d09, 0x000f0a05, 0x00100e14, 0x0030394b, 0x00768da8, 0x006f8eb5,
- 0x005a7fc4, 0x005f7fc0, 0x006683ba, 0x006980af, 0x00505e77, 0x00353b4a, 0x002d2b2f, 0x00362b24, 0x0043321e, 0x004f3721, 0x00593f28, 0x005d4632, 0x00624b3a, 0x00624b3c, 0x00604a3e, 0x005b463b,
- 0x004f4138, 0x00493b34, 0x003a302a, 0x00312924, 0x0029211f, 0x00281e1f, 0x002a1f21, 0x002f2425, 0x003c2f28, 0x0043352e, 0x0049382f, 0x004d3d2f, 0x00564335, 0x005a4338, 0x005e443d, 0x005c433d,
- 0x00534945, 0x00574c47, 0x006d605f, 0x009d9497, 0x00d4d7ec, 0x00a7b7d5, 0x008da6d2, 0x008da9dc, 0x006178aa, 0x008190bd, 0x00c7cff2, 0x00e0e1e8, 0x009ba3ba, 0x00656b8f, 0x00a5a9ce, 0x00d9d7f5,
- 0x00e0dadb, 0x00e5dad5, 0x00e8ded6, 0x00e4dedb, 0x00dddde8, 0x00e1d9e6, 0x00e1d5e3, 0x00e0d0e0, 0x00dac9d5, 0x00d2c3cf, 0x00cdbfc9, 0x00c8bbc2, 0x00c9bec1, 0x00cbc3c3, 0x00c5bebe, 0x00bcb6b6,
- 0x00b1948b, 0x009a8076, 0x00987f76, 0x0099857d, 0x00816d68, 0x0060504d, 0x00362626, 0x0017090b, 0x0013030e, 0x0016040f, 0x00130312, 0x00100e24, 0x00464d78, 0x006e7eb3, 0x006073ac, 0x00788ebf,
- 0x00d5dfee, 0x00f8fafd, 0x00fffbf8, 0x00fffbf6, 0x00fdfafc, 0x00faeada, 0x00a5886d, 0x00704d2d, 0x00714b21, 0x00704925, 0x006f4a2d, 0x006d5038, 0x00765c47, 0x0079593b, 0x00755029, 0x00764d18,
- 0x00774c29, 0x00764d28, 0x00734d23, 0x007a582b, 0x00846633, 0x00846935, 0x00795c27, 0x00785726, 0x00785424, 0x00775123, 0x00785428, 0x0073552a, 0x007d542c, 0x007e522e, 0x008b5e3f, 0x00996d55,
- 0x00897058, 0x00836c4e, 0x00947d58, 0x00a38958, 0x009b7c38, 0x00846424, 0x007f6229, 0x0080683b, 0x007b6c53, 0x0077674f, 0x00756046, 0x00775a39, 0x007e5b30, 0x007f5e2d, 0x007d5f2a, 0x0079602b,
- 0x007a6136, 0x00796135, 0x007f673a, 0x00816a3b, 0x00806a3a, 0x00796434, 0x00705c2b, 0x006a5625, 0x00725928, 0x00796233, 0x007c622c, 0x00735a17, 0x006c571a, 0x0065531c, 0x00645521, 0x00625923,
- 0x005a561b, 0x0058561a, 0x005c561d, 0x005d551e, 0x00605625, 0x00505732, 0x004c583b, 0x004f5838, 0x00525635, 0x0053542d, 0x00565428, 0x005c5a27, 0x00777339, 0x00857e40, 0x006d6524, 0x005c5712,
- 0x005e6438, 0x006d7346, 0x00696e40, 0x005c602f, 0x00565b26, 0x00525920, 0x00535d23, 0x00546025, 0x004e5d23, 0x00516026, 0x00546227, 0x00525d1b, 0x00546221, 0x005a6827, 0x005e6c2c, 0x005d6e2c,
- 0x00506626, 0x004f6728, 0x004e632b, 0x0049622b, 0x00445d2b, 0x00495c18, 0x00505f15, 0x00556216, 0x00505e14, 0x004a5912, 0x00465513, 0x0045561b, 0x00495827, 0x00445522, 0x00435420, 0x00455720,
- 0x0046531c, 0x0048531f, 0x00485322, 0x00464f22, 0x00455523, 0x0040531f, 0x00415227, 0x00354224, 0x002c2c2b, 0x0042374b, 0x00515378, 0x003e689c, 0x00527385, 0x00537061, 0x003f532a, 0x00455217,
- 0x00535617, 0x00535421, 0x00696340, 0x00b7b0a0, 0x00fffbfd, 0x00fffdfe, 0x00fdfbfa, 0x00fefbfc, 0x00fbfbf9, 0x00bebebe, 0x00686769, 0x00939396, 0x00cecdd2, 0x00e8e8ed, 0x00f6f5fc, 0x00f8f7ff,
- 0x00f1f6fd, 0x00edf6fc, 0x00f0f6fd, 0x00f3f8f7, 0x00fef3f1, 0x00fceded, 0x00f1d5d5, 0x00f6d7d9, 0x00feeeee, 0x00fef5f5, 0x00f5f8fb, 0x00edfeff, 0x00f2f7ec, 0x00f8f6e9, 0x00fbf4ed, 0x00faf7fd,
- 0x00d7e5f9, 0x00b4c7f2, 0x007e90c8, 0x004f649e, 0x003c4580, 0x003f476f, 0x003e4564, 0x00313452, 0x00303146, 0x00555565, 0x00777681, 0x006f6f74, 0x00636463, 0x005e605d, 0x00575a56, 0x00484843,
- 0x00343b26, 0x002f3721, 0x0031341f, 0x00323620, 0x00363520, 0x00343520, 0x00363420, 0x0035331f, 0x003a3221, 0x00383120, 0x0035301d, 0x0033301c, 0x0032301d, 0x0032301d, 0x0034321f, 0x00343320,
- 0x00373721, 0x00373623, 0x00373624, 0x00373623, 0x00363622, 0x00353720, 0x00353520, 0x00343221, 0x00342c1e, 0x00352c21, 0x003b2f26, 0x00403128, 0x0046332a, 0x00493429, 0x00483024, 0x00482e22,
- 0x00493022, 0x003c2719, 0x0083746a, 0x00ebe6e0, 0x00fdfcfb, 0x00fcfdfd, 0x00f8fbfd, 0x00fcfefd, 0x00cbc9c5, 0x0054514a, 0x00080801, 0x00020401, 0x00030403, 0x00020303, 0x00000203, 0x00000103,
- 0x00020007, 0x00000005, 0x00030308, 0x0008080e, 0x000a0b11, 0x000a1012, 0x00091111, 0x00050c0e, 0x000b0309, 0x001e0203, 0x003b0a06, 0x00621c12, 0x007a2b18, 0x0076301c, 0x0059210f, 0x00330b04,
- 0x0000070a, 0x00030208, 0x0006000a, 0x000a040d, 0x00151512, 0x00321610, 0x00692620, 0x00a42d2a, 0x00bf2b1c, 0x00b82f0f, 0x00ae3218, 0x009f2b25, 0x00591311, 0x00250101, 0x00140a08, 0x00121c19,
- 0x0005130b, 0x00050b05, 0x00121012, 0x00211a24, 0x00231f30, 0x0020222a, 0x001d2126, 0x00161b24, 0x000f1621, 0x000f1621, 0x000f1220, 0x000c0d17, 0x00130810, 0x00291618, 0x00462d2c, 0x00573936,
- 0x00653a29, 0x006a4030, 0x0072473b, 0x00754a41, 0x00714941, 0x0065433d, 0x00503330, 0x003f2926, 0x00332322, 0x00362725, 0x00463b39, 0x00514a4b, 0x00645859, 0x00716162, 0x00796a69, 0x007d706e,
- 0x007d767a, 0x007a7882, 0x00737888, 0x006a768c, 0x00627691, 0x0064778b, 0x005f6e7d, 0x00848e99, 0x00d3d5d8, 0x00e6e2e1, 0x00938c89, 0x00423a36, 0x000f0b0d, 0x00121318, 0x0030363d, 0x00747f8a,
- 0x00c3cdd3, 0x00d8e0e8, 0x00d6deea, 0x00d5dfec, 0x00d7e1ee, 0x00d6e1ed, 0x00d7e2ee, 0x00d9e1ed, 0x00d7dfea, 0x00d7dfe9, 0x00d4deeb, 0x00d0dcef, 0x00c1ccde, 0x007a8394, 0x00222738, 0x001c2031,
- 0x00232535, 0x00333444, 0x00545565, 0x005f5f71, 0x00414052, 0x002f2f45, 0x003b3b51, 0x0047455e, 0x00494563, 0x0047425e, 0x0047445c, 0x00565468, 0x00b0afbc, 0x00f2f0f7, 0x00fbfafc, 0x00fcfafa,
- 0x00fdfcfa, 0x00fafcf8, 0x00979c95, 0x00232a22, 0x00050d06, 0x00051005, 0x00081406, 0x00111b0e, 0x0021271b, 0x0025281d, 0x0025281b, 0x0025291a, 0x0026271a, 0x00262619, 0x00232517, 0x00202216,
- 0x001a1c11, 0x0012140b, 0x000d0f08, 0x000e0f0a, 0x0011100b, 0x00111008, 0x00131108, 0x0014110a, 0x001c150c, 0x001f170e, 0x0023190f, 0x00271b10, 0x002a1a10, 0x002a180d, 0x00251307, 0x00210e02,
- 0x00200e03, 0x00170c06, 0x000d080c, 0x00171b2c, 0x004f5e8d, 0x005e6eb4, 0x005063b7, 0x004c61bf, 0x004c5eb8, 0x004858a9, 0x004959aa, 0x004653ac, 0x004552a7, 0x00404da1, 0x003a479d, 0x00354699,
- 0x00445da3, 0x004f5e95, 0x0012183c, 0x00251e2b, 0x00957d6f, 0x00b39482, 0x0072533e, 0x004e3621, 0x00473e27, 0x0043462d, 0x00414a32, 0x00424d38, 0x004b4c3e, 0x00534e45, 0x00554945, 0x005a4746,
- 0x00654b48, 0x00775d58, 0x008f7672, 0x0087706d, 0x004b3a37, 0x001b120f, 0x000e0906, 0x0012120d, 0x00070e07, 0x0009130b, 0x000a130b, 0x000b120a, 0x000b120b, 0x000b110a, 0x000c110a, 0x000b110a,
- 0x000b1109, 0x000b1209, 0x000c1209, 0x000c120a, 0x000b110a, 0x000c0f0b, 0x000d0f0b, 0x000b0f0a, 0x0008110a, 0x0008110b, 0x0007110c, 0x0006110b, 0x0009100b, 0x000b100b, 0x000c100c, 0x000f100e,
- 0x000a0f0a, 0x000a100a, 0x000a100a, 0x0009100a, 0x000a100b, 0x00090f0a, 0x00070d08, 0x00070c08, 0x00080d08, 0x00080d09, 0x00090e0b, 0x00090e09, 0x00090e0a, 0x000a0f0b, 0x000b100f, 0x000b1112,
- 0x000b1111, 0x000c1212, 0x000c1213, 0x000d1214, 0x000f1316, 0x000f1318, 0x00101319, 0x0012161a, 0x00161b20, 0x001b2025, 0x001d2227, 0x001c2026, 0x001b1f25, 0x00191c22, 0x00181c20, 0x001a1e22,
- 0x0013161b, 0x00202225, 0x00a0a1a3, 0x00f4f6f7, 0x00fafcfc, 0x00fafcfb, 0x00fdfeff, 0x00f9f8fb, 0x00989aa3, 0x0023252f, 0x0004071d, 0x00030838, 0x0011194f, 0x001a2460, 0x00172664, 0x00132568,
- 0x00112d6f, 0x004062a2, 0x007ea5e0, 0x0088b3e9, 0x007dabdc, 0x0078a2d2, 0x007096c3, 0x00658dbb, 0x00567eac, 0x004d74a1, 0x00446b96, 0x004b739c, 0x005a80ab, 0x005c84ad, 0x00567da5, 0x005379a2,
- 0x004b7d92, 0x00557592, 0x005e6b8b, 0x006b5c7f, 0x007a4054, 0x0074282e, 0x005f0808, 0x005c0800, 0x00592c21, 0x0059423c, 0x00655c57, 0x006f6b62, 0x006c6f67, 0x005c6760, 0x0054625f, 0x00516163,
- 0x00546467, 0x005c656a, 0x00737376, 0x007a7478, 0x00706164, 0x006d635e, 0x009e9790, 0x00c3bdbe, 0x00d3d8e1, 0x00c9d6e6, 0x00a8bed8, 0x0092b2d5, 0x007fa8d6, 0x0072a1d6, 0x006b9dd5, 0x00669bd6,
- 0x006098d6, 0x00689bd6, 0x00719cd2, 0x006988b7, 0x004d5f86, 0x002f3b5d, 0x00172146, 0x00111642, 0x00151d51, 0x0014215a, 0x00172267, 0x00172978, 0x00233382, 0x00192b71, 0x00142464, 0x00172860,
- 0x004b5c80, 0x00a7b4cb, 0x00f1fafe, 0x00f8fdfd, 0x00f9fef6, 0x00f9faf7, 0x00f9ffff, 0x00edf7f5, 0x00cedfe2, 0x00afc6ca, 0x008aa6af, 0x00658590, 0x00466778, 0x0036556a, 0x00334f65, 0x002e4a63,
- 0x002e4d57, 0x00304f59, 0x00385660, 0x003d5c66, 0x0044626c, 0x0049666f, 0x0048656d, 0x00436268, 0x003d5860, 0x00304c52, 0x00283d47, 0x00222f40, 0x001d2a39, 0x0021323d, 0x002d3f48, 0x0032434d,
- 0x00354a52, 0x003b515c, 0x00405665, 0x005a7181, 0x008ba4b9, 0x00b3bcaf, 0x00d9c8b9, 0x00bb8087, 0x005f193c, 0x005e3e60, 0x00615c80, 0x002b395a, 0x00534c73, 0x00797295, 0x00717790, 0x003e5c68,
- 0x00252a27, 0x0016191e, 0x000a0a13, 0x000b0a14, 0x001e1c21, 0x003c393c, 0x00494649, 0x003f3e3e, 0x00141516, 0x001c1f20, 0x005a5f62, 0x007c8a8d, 0x008a969d, 0x00879299, 0x0087929a, 0x00859199,
- 0x00839197, 0x00839298, 0x008998a0, 0x008e9ca6, 0x008c9ba5, 0x0086979c, 0x007f9194, 0x007b8c92, 0x007a8a93, 0x007c8b95, 0x007a8a95, 0x0074848f, 0x00748290, 0x007b8a99, 0x008f9fae, 0x009eadbd,
- 0x00b2bcc3, 0x00d6dce1, 0x00fafcf8, 0x00fefbf3, 0x00faf3e1, 0x00f0e6d4, 0x00c8c2b0, 0x00a4a397, 0x008f9396, 0x008f97a0, 0x009ea8b8, 0x009faec5, 0x00909fb4, 0x00788a9f, 0x005c6f81, 0x00516476,
- 0x004d6473, 0x004b6471, 0x0049636e, 0x0049636d, 0x004a646e, 0x0047646c, 0x00415f67, 0x003f5b63, 0x003b5762, 0x003b5762, 0x003c5863, 0x003e5b64, 0x00415d67, 0x00435f68, 0x00446069, 0x00445f68,
- 0x00395b62, 0x0035555d, 0x002c4c56, 0x00284954, 0x00274653, 0x00264754, 0x00264855, 0x00274856, 0x00254657, 0x00244656, 0x00254755, 0x00254853, 0x00234852, 0x00224852, 0x00224751, 0x00224650,
- 0x00214650, 0x00214650, 0x00224550, 0x00234650, 0x00224550, 0x001f4551, 0x00224652, 0x0022444f, 0x0025434f, 0x0026414b, 0x0062757c, 0x00c4d4d9, 0x00f8fcfd, 0x00fafefe, 0x00fcf9f7, 0x00fdfaf6,
- 0x00fdfdf7, 0x00fbfcfa, 0x00fbfeff, 0x00fcffff, 0x00c5b9b5, 0x00654c40, 0x004b2a17, 0x00572e16, 0x00542d16, 0x0051301d, 0x0045291a, 0x0040271b, 0x003a2519, 0x00332216, 0x002c1e13, 0x00271d14,
- 0x00221812, 0x001e1611, 0x001a130e, 0x0018110e, 0x001a100e, 0x001a1007, 0x00191004, 0x0018100a, 0x00131112, 0x00110f0e, 0x0016100c, 0x00100803, 0x000e080b, 0x001d212e, 0x00627689, 0x007490ad,
- 0x006885c0, 0x006f88bd, 0x006d82ac, 0x005e6b8b, 0x0040434f, 0x00383234, 0x00423732, 0x004a3a2d, 0x004e3928, 0x00553e2c, 0x005f4732, 0x00674e38, 0x006f5441, 0x00705546, 0x006c5448, 0x00675148,
- 0x005c4f44, 0x00564840, 0x00463c36, 0x0039322d, 0x00302826, 0x002f2224, 0x002f2325, 0x00332627, 0x003e2f29, 0x0043342c, 0x004b3a30, 0x00524033, 0x00584237, 0x005c433a, 0x005e433b, 0x005f433d,
- 0x00554a43, 0x0051443e, 0x0060524d, 0x00887c7d, 0x00aaaabc, 0x00b3bed8, 0x00a5b8df, 0x009ab0dd, 0x00546691, 0x0066729d, 0x00cbd3f2, 0x00ebeffa, 0x00a4aac4, 0x00686d93, 0x00a7a9ce, 0x00d6d5ef,
- 0x00e6dae0, 0x00e7d9d5, 0x00e7dcd4, 0x00e4dfdd, 0x00e1e2ed, 0x00e6dfea, 0x00eadde7, 0x00e8dae5, 0x00e5d4df, 0x00dacdd6, 0x00d1c5cd, 0x00ccbfc6, 0x00c8bac0, 0x00c7bbbf, 0x00c4b9bd, 0x00c0b4b9,
- 0x00c3aead, 0x00b5a19e, 0x00ac9a95, 0x00ac9a94, 0x00998782, 0x008e7b79, 0x00766464, 0x00564547, 0x00331d27, 0x00250e1b, 0x001d0d1a, 0x00180e1f, 0x00404167, 0x00707dae, 0x006172a9, 0x00768cbd,
- 0x00d5e0f2, 0x00f8fcff, 0x00fefefa, 0x00fdfef7, 0x00fefdfe, 0x00fbeadd, 0x00a6886f, 0x00714d28, 0x00734a19, 0x00734c1f, 0x00724d29, 0x006f4e36, 0x006f513f, 0x00724f2f, 0x00754e1f, 0x007a4f10,
- 0x007b4b2b, 0x00784a26, 0x00764c20, 0x0078521f, 0x0088662e, 0x00927136, 0x0089662c, 0x007f5825, 0x007c5220, 0x007c4f24, 0x007f522d, 0x007b532e, 0x0085522c, 0x0087522b, 0x00945e39, 0x00a16d4d,
- 0x00936f57, 0x0087664d, 0x00846446, 0x0086643e, 0x00865b2b, 0x00855723, 0x00966b3b, 0x009f7b52, 0x008d7353, 0x00836747, 0x007f603a, 0x00825b2f, 0x008a5a2a, 0x00885b2b, 0x00875d2e, 0x00855f32,
- 0x0088633e, 0x0084603a, 0x00825f37, 0x008b6b40, 0x00a08155, 0x00a08254, 0x008b6e40, 0x007f6234, 0x00826033, 0x00836134, 0x00835f2b, 0x00846325, 0x0081612e, 0x007e5f33, 0x007d6135, 0x007a6331,
- 0x00755f24, 0x00735e22, 0x00765f25, 0x00775e2b, 0x00775b35, 0x00695d40, 0x00646047, 0x00686246, 0x006b5e3d, 0x0067592f, 0x00675526, 0x0065531f, 0x0079652d, 0x008c773c, 0x007a6529, 0x00665415,
- 0x00675d43, 0x006d6346, 0x00635736, 0x005c4f26, 0x005e511f, 0x005e531b, 0x00585214, 0x00585414, 0x00565712, 0x00535612, 0x00555715, 0x00575517, 0x00535415, 0x00595a1e, 0x00616425, 0x00626c2b,
- 0x00586328, 0x0054642a, 0x00525f29, 0x004b5d29, 0x0049582a, 0x00575c1f, 0x00656720, 0x00696d21, 0x005e6619, 0x00535e1a, 0x004f5c24, 0x004c5b33, 0x004a5b45, 0x00495e45, 0x00496144, 0x00476140,
- 0x00495c1d, 0x004e5e19, 0x004e5b12, 0x0049570a, 0x00475a16, 0x00425b23, 0x003e582e, 0x00273e21, 0x001f2211, 0x0034281d, 0x003d3b46, 0x003c5081, 0x005d7483, 0x00627a6e, 0x00405538, 0x00414e22,
- 0x00474d2b, 0x00474931, 0x00635d51, 0x00b6aeaa, 0x00fffafd, 0x00fffcfc, 0x00fcfcfc, 0x00fafcfb, 0x00fbfcfc, 0x00bebfbf, 0x00676869, 0x00949497, 0x00d0cfd4, 0x00ebeaef, 0x00f7f5fd, 0x00f8f6fe,
- 0x00f2f5fd, 0x00eef5fa, 0x00f2f6fd, 0x00f6fbfc, 0x00fbf4f1, 0x00f0dee0, 0x00efd5d8, 0x00fce2e6, 0x00fff4f7, 0x00fdf5f5, 0x00fff8fa, 0x00fef5fc, 0x00f9f8fe, 0x00f3f6fa, 0x00f0f4fd, 0x00f3f3fd,
- 0x00fef6f3, 0x00f6eff0, 0x00c9cedd, 0x00809fba, 0x00397db2, 0x004a5d8f, 0x0045436f, 0x00302c53, 0x0027243d, 0x00403d51, 0x006c6b76, 0x00747377, 0x00696664, 0x005f5b56, 0x0058554d, 0x004c473e,
- 0x00373a26, 0x00333521, 0x00333420, 0x00343620, 0x00343420, 0x0034341f, 0x00353521, 0x00353622, 0x00383422, 0x00353320, 0x0033311d, 0x0033301c, 0x0032301e, 0x0032311e, 0x0034331f, 0x00363420,
- 0x00373722, 0x00363622, 0x00373622, 0x00373522, 0x00373522, 0x00363520, 0x00353420, 0x00353120, 0x00352d1f, 0x00372d22, 0x003d3026, 0x00423128, 0x0047332b, 0x00493228, 0x00462e22, 0x00482f24,
- 0x00492f21, 0x003c2718, 0x0082756a, 0x00ebe7e1, 0x00fefcfc, 0x00fcfdfe, 0x00f7fafe, 0x00fbfdfc, 0x00c8c6c3, 0x004f4c46, 0x00050300, 0x00000201, 0x00020103, 0x00030405, 0x00030608, 0x00000407,
- 0x00020007, 0x00000006, 0x0005050c, 0x000a0b13, 0x000b0c13, 0x000d1113, 0x000f1314, 0x000b1014, 0x000f0711, 0x00140207, 0x001f0100, 0x00320a04, 0x004b190e, 0x00471b12, 0x002f0c07, 0x00190202,
- 0x00020808, 0x00030206, 0x00040008, 0x00010009, 0x00090f11, 0x00261312, 0x005e2220, 0x00a02e2d, 0x00cd3726, 0x00c23717, 0x00b03118, 0x0096231c, 0x00530f0c, 0x00220605, 0x001b1414, 0x0014201e,
- 0x00121b19, 0x000f0e0e, 0x00110e10, 0x001b161c, 0x001a1f2b, 0x0020222b, 0x001e202a, 0x00181d29, 0x000f1724, 0x00090f1d, 0x00070918, 0x00060612, 0x00190c12, 0x00331e1e, 0x004f3430, 0x00593731,
- 0x00663d2e, 0x0070473a, 0x007c5149, 0x007f544e, 0x007b534f, 0x0073504d, 0x005f3f3f, 0x004d3233, 0x003a262b, 0x003b292c, 0x00493c3f, 0x00554b50, 0x00685a5d, 0x00756367, 0x007e6c6d, 0x0083716f,
- 0x007f7579, 0x007e7a84, 0x007d7f8f, 0x00707990, 0x00667591, 0x00667488, 0x00737f8c, 0x00acb5c0, 0x00e4e5e9, 0x00bfbdbf, 0x00686567, 0x003c393a, 0x0016171c, 0x0010151c, 0x00555f69, 0x00afbecb,
- 0x00d3dee9, 0x00d8e3ed, 0x00d2deea, 0x00d5e1ef, 0x00d8e2ee, 0x00d4dfeb, 0x00d4dfed, 0x00d5dfec, 0x00d6e0ee, 0x00d8e3f0, 0x00d9e4f2, 0x00dde7f8, 0x00c2cbdc, 0x00626b7b, 0x00101927, 0x00101726,
- 0x00212233, 0x001f212f, 0x002c2d3b, 0x004e4d5b, 0x005f5b6a, 0x00464256, 0x00343247, 0x0038344d, 0x004c4765, 0x00514c6a, 0x004a4663, 0x004d4a63, 0x009d9bab, 0x00efeef4, 0x00fdfdfb, 0x00fefdf8,
- 0x00fdfdfa, 0x00fdfefa, 0x00b0b7b0, 0x00384139, 0x00010a02, 0x00040f04, 0x000a1607, 0x00171f12, 0x00222a1c, 0x00262a1d, 0x00272b1d, 0x00282c1d, 0x00292a1d, 0x0029291d, 0x0027271b, 0x0023231a,
- 0x001b1c13, 0x00121309, 0x000d0d06, 0x000d0e08, 0x000f0f0a, 0x00111009, 0x0014110a, 0x0015120b, 0x001d150d, 0x0021180f, 0x0024190f, 0x00281a0e, 0x002c190d, 0x002d180b, 0x00281406, 0x00251102,
- 0x00271106, 0x001d0f09, 0x000a050a, 0x0022273c, 0x005969a0, 0x005b6dbb, 0x005166be, 0x004c62c3, 0x004c5fb9, 0x00485ba9, 0x004556a4, 0x004351a8, 0x00444fa3, 0x00414da2, 0x003a479e, 0x00314498,
- 0x00435ba5, 0x0054649d, 0x0025284e, 0x00463b46, 0x00ac9082, 0x0095816d, 0x004a3924, 0x004b3e28, 0x00423f2c, 0x00434732, 0x003c432f, 0x003f4836, 0x00484a3e, 0x004b4a41, 0x004d4a43, 0x00504842,
- 0x00654d49, 0x006a514c, 0x007c6462, 0x008c7776, 0x00665352, 0x002c1d1b, 0x00100503, 0x00131009, 0x0009100a, 0x0009130c, 0x0009130a, 0x000b1109, 0x000c120c, 0x000c120c, 0x000c120a, 0x000c130a,
- 0x000a110a, 0x000a120a, 0x000a1109, 0x000a1109, 0x000c110b, 0x000d100b, 0x000d0e0a, 0x000c0f0a, 0x0009110c, 0x0008110c, 0x0006110b, 0x0006100a, 0x0009100b, 0x000b100b, 0x000c100c, 0x000f100c,
- 0x000c110e, 0x000c120e, 0x000c120f, 0x000b120f, 0x000d1211, 0x000c1110, 0x000a0e0e, 0x000a0d0e, 0x000b0f0e, 0x000b0f0d, 0x000b0e0f, 0x000a0e0f, 0x000a0e12, 0x000a0f12, 0x000b0f15, 0x000c1016,
- 0x000c1217, 0x000d1318, 0x000e1219, 0x000e121b, 0x0010131e, 0x0011141e, 0x0012141e, 0x00151722, 0x001a1e26, 0x001e222a, 0x001f232b, 0x001d2128, 0x001c2028, 0x001a1e27, 0x001a1d27, 0x001c1f2a,
- 0x001e1d26, 0x0017171f, 0x0085868c, 0x00f0f2f3, 0x00f9faf9, 0x00fdfdfc, 0x00fafbfc, 0x00fdffff, 0x00b2b3bc, 0x0032343c, 0x00000117, 0x00070934, 0x00151a4f, 0x0017205b, 0x00182766, 0x000f246a,
- 0x00345298, 0x006d94d9, 0x0089b7f5, 0x007eb1e9, 0x006da4d8, 0x006d9ed6, 0x006893cc, 0x005f8bc4, 0x005d8bc3, 0x005d8bc2, 0x005a89bd, 0x005a89bb, 0x005f8bbf, 0x005e89bd, 0x005885b6, 0x005a87b8,
- 0x00578aa5, 0x005581a5, 0x00617cab, 0x007677ab, 0x0099658c, 0x00a14c61, 0x008e282f, 0x007d120a, 0x005d1203, 0x005b261a, 0x006b463b, 0x007e6255, 0x00958378, 0x00928b84, 0x007b7c7b, 0x00606b6d,
- 0x00616b70, 0x005e676c, 0x00595a5f, 0x005c575a, 0x0078686b, 0x00887f7f, 0x00b0aead, 0x00cccbd1, 0x00c7d5e8, 0x00aac2de, 0x0084a7ce, 0x00709fd0, 0x005b93d1, 0x00508dd2, 0x004c8dd5, 0x004b90db,
- 0x005997da, 0x005d97d9, 0x00669cdb, 0x006e9ed8, 0x00769cd1, 0x006989b8, 0x004a6491, 0x002e4170, 0x00182558, 0x00111e52, 0x00151e57, 0x001c225f, 0x001f2560, 0x00192157, 0x001a2052, 0x00232d56,
- 0x00454e6c, 0x008792a7, 0x00e7eff9, 0x00f6feff, 0x00f5fdfb, 0x00f7fafc, 0x00f7fdfb, 0x00e8f2f5, 0x008aa1aa, 0x0045626e, 0x002f5363, 0x00275063, 0x00224c63, 0x00254c65, 0x002b4f68, 0x002c4f6a,
- 0x0034545f, 0x00395763, 0x00415e6a, 0x0045646e, 0x004b6972, 0x00516d75, 0x00506b72, 0x004d6970, 0x00476067, 0x003c555b, 0x0031444e, 0x00273445, 0x001e2b39, 0x0020303c, 0x002f3f49, 0x00364751,
- 0x003b4c57, 0x003f525e, 0x00506172, 0x00708597, 0x009db3c9, 0x00c4c9a9, 0x00dabc98, 0x00b36364, 0x00731947, 0x00482454, 0x00424474, 0x002f4c79, 0x007b74a1, 0x009486a2, 0x00514f55, 0x000f2216,
- 0x00060700, 0x00030200, 0x00090600, 0x00120f02, 0x00292412, 0x003c3425, 0x00524b40, 0x00625c54, 0x00413938, 0x001f1b1a, 0x00313233, 0x00656f72, 0x008b959a, 0x00889096, 0x008a969a, 0x00869498,
- 0x00838f98, 0x00819098, 0x0088979e, 0x008e9ba5, 0x008d9da7, 0x008a9aa2, 0x0084949a, 0x007d8d96, 0x007a8c98, 0x00788895, 0x00778695, 0x00788898, 0x008593a5, 0x0092a0b3, 0x00a3b1c6, 0x00aebad0,
- 0x00bbc4d2, 0x00d7dce4, 0x00fcfdfb, 0x00fffcf1, 0x00fef6e1, 0x00f1e6d0, 0x00c5bdab, 0x00a7a499, 0x008a8e92, 0x00828b96, 0x009ea9bd, 0x00a9b8d4, 0x00a8b8d4, 0x0099acc6, 0x007689a1, 0x005d7389,
- 0x00415969, 0x00395362, 0x003b5864, 0x003d5c66, 0x003b5a63, 0x0036565f, 0x0031525c, 0x002e4d5a, 0x002d4e59, 0x002d4e59, 0x002f4f5a, 0x0031515c, 0x0035535f, 0x00375561, 0x00375561, 0x00375561,
- 0x0030525b, 0x002e4f59, 0x00284b55, 0x00264955, 0x00274855, 0x00264856, 0x00254857, 0x00254857, 0x00254658, 0x00244758, 0x00254856, 0x00244853, 0x00234754, 0x00234753, 0x00234751, 0x0023464f,
- 0x00244751, 0x00224750, 0x00234751, 0x0022464f, 0x00234551, 0x00204451, 0x00214451, 0x001f424d, 0x00264754, 0x00213f4a, 0x004a5f68, 0x00a4b6bd, 0x00f6fdfe, 0x00f9fefd, 0x00fffefb, 0x00fefaf5,
- 0x00fcfcf8, 0x00fafcfc, 0x00f9fdfe, 0x00fafdfd, 0x00d1c5c1, 0x00795f52, 0x0056321e, 0x005f3319, 0x005d321d, 0x00563120, 0x00492b1b, 0x0041291c, 0x00392518, 0x00332216, 0x002e2013, 0x00281d13,
- 0x00241913, 0x00211713, 0x001e1611, 0x001f1512, 0x00231513, 0x0022150c, 0x001f1708, 0x001d190e, 0x001b1614, 0x00181310, 0x0016100a, 0x00130b03, 0x000e0809, 0x000a0f17, 0x004c5e6d, 0x00859fb8,
- 0x007a8cba, 0x007483aa, 0x00626e88, 0x00555869, 0x0046403e, 0x004d3e37, 0x00584539, 0x005d4837, 0x005d4436, 0x0060473a, 0x006b5141, 0x00725643, 0x00795c4b, 0x007a5f4e, 0x00735c4c, 0x006e5a4c,
- 0x00685850, 0x0062524c, 0x004f443f, 0x003f3732, 0x00342b28, 0x00332727, 0x00322726, 0x00342927, 0x00432f2d, 0x0049372f, 0x004f3c30, 0x00554033, 0x005a4338, 0x005c453b, 0x005b423a, 0x005b403a,
- 0x004e403e, 0x00463833, 0x00584941, 0x007e716c, 0x009c9aa1, 0x00bec5d6, 0x00b9c7e3, 0x00a9badf, 0x00747da2, 0x00707496, 0x00c9cde5, 0x00eef0f9, 0x00c3c7e1, 0x00787ba0, 0x00989bbd, 0x00cecfe5,
- 0x00e7d7dd, 0x00e8d7d3, 0x00e6dbd2, 0x00e1dddc, 0x00dde1ee, 0x00e1dee8, 0x00e7e1e6, 0x00e7e1e6, 0x00e7dee6, 0x00e2dce1, 0x00d9d4d7, 0x00d3cacd, 0x00ccc1c5, 0x00ccc0c4, 0x00cbbec1, 0x00cabdbf,
- 0x00d0bdcb, 0x00c7b5bf, 0x00b8abae, 0x00b0a2a0, 0x00a19390, 0x009d8a88, 0x00a19090, 0x009d8b8d, 0x007c656e, 0x00543c49, 0x00311c27, 0x00230a19, 0x00383054, 0x007379a8, 0x007480b5, 0x00849ac9,
- 0x00d6e1f5, 0x00f9fbff, 0x00f8fdf6, 0x00fafdf6, 0x00f9fdfb, 0x00fbe9e4, 0x00a78b7a, 0x00725030, 0x00764a1c, 0x00744c22, 0x00745030, 0x00704f3e, 0x006d4d42, 0x00704e30, 0x00734f1e, 0x0079510f,
- 0x00804b2e, 0x007a4a27, 0x00774d1e, 0x00744e17, 0x00886526, 0x00a78645, 0x009f7d3c, 0x00856127, 0x007d5020, 0x007d4f26, 0x007b4f2a, 0x0078522c, 0x00825429, 0x00875525, 0x008c5b27, 0x008d602d,
- 0x00805f3f, 0x007a5d41, 0x00755940, 0x00785a3f, 0x007f553b, 0x00815332, 0x008e6342, 0x00906c4e, 0x00806545, 0x007b5f3c, 0x00806136, 0x00835d2d, 0x00885828, 0x0084562c, 0x00845936, 0x00855c3f,
- 0x008b5839, 0x008a5b39, 0x00875c39, 0x0087613a, 0x00947148, 0x00957247, 0x00876437, 0x00805c2e, 0x008a5e35, 0x008f5f36, 0x008a632e, 0x00846828, 0x00846735, 0x0083653e, 0x007f633c, 0x00806337,
- 0x0084672d, 0x00866a2d, 0x0085662c, 0x00856333, 0x008e6346, 0x00856650, 0x007e6750, 0x0081694b, 0x00896746, 0x0089673d, 0x00876333, 0x00886430, 0x0097743e, 0x00a28049, 0x0096773f, 0x0090743a,
- 0x00a1836a, 0x009a7d60, 0x007d613e, 0x0071562b, 0x00755b28, 0x00755c24, 0x006d571c, 0x007a662a, 0x00857337, 0x00706124, 0x005d4d11, 0x00614912, 0x00614b12, 0x00644f18, 0x006b591e, 0x00675d21,
- 0x00635522, 0x005d5524, 0x00585021, 0x004d4d21, 0x004b4824, 0x005a4c1f, 0x00675920, 0x0069611f, 0x005b581c, 0x00545626, 0x00555c3d, 0x0048554e, 0x00465a6b, 0x00678291, 0x0075969c, 0x00587d7d,
- 0x00516744, 0x004a5b27, 0x0044540f, 0x004b590d, 0x00435721, 0x003e583e, 0x0037544d, 0x002c484a, 0x00464c44, 0x00665f43, 0x006d5f45, 0x006b5c61, 0x00666251, 0x0053573b, 0x00475630, 0x003d502d,
- 0x00414e4b, 0x003f4e52, 0x005d6a72, 0x00b0bac3, 0x00f8fefe, 0x00fdfefc, 0x00fafcf8, 0x00f8fdf8, 0x00fdfcfe, 0x00c0bfc0, 0x00686869, 0x00959597, 0x00d1d1d5, 0x00ecebf1, 0x00f7f6fc, 0x00f7f7fc,
- 0x00f5f3ff, 0x00f2f2fd, 0x00edf3fa, 0x00f3f8fb, 0x00f2ecec, 0x00e6d6dc, 0x00edd8e2, 0x00fdedf2, 0x00fef8fd, 0x00f8f9fd, 0x00f6f9fc, 0x00fdf2fd, 0x00f7f7fe, 0x00f1f7fe, 0x00edf7ff, 0x00f0f2fc,
- 0x00fff3f2, 0x00fff5ec, 0x00ede9e8, 0x00bfd0d5, 0x0080aec6, 0x008b98b1, 0x0082839d, 0x006e7085, 0x00484553, 0x003b3943, 0x00595b5e, 0x00737674, 0x006e6c6b, 0x005b5957, 0x0052504d, 0x00474443,
- 0x003d3926, 0x00373320, 0x00343220, 0x00363420, 0x00343522, 0x00333520, 0x00313620, 0x002f341e, 0x00363522, 0x00333521, 0x0032321d, 0x0033301b, 0x0032301e, 0x0032301e, 0x0036321e, 0x00373320,
- 0x00383524, 0x00363423, 0x00373422, 0x00383522, 0x00373523, 0x00363620, 0x0035351e, 0x0035321e, 0x00392c22, 0x003a2d25, 0x003e3028, 0x00413229, 0x0046342b, 0x00463226, 0x00432d1e, 0x00472f21,
- 0x00492d21, 0x003d2519, 0x0083746b, 0x00ece7e1, 0x00fefdfc, 0x00fbfefd, 0x00f6fbfd, 0x00f9fefa, 0x00c8c5c3, 0x004e4945, 0x00030201, 0x00000303, 0x00020307, 0x00060809, 0x00070b0e, 0x0004070a,
- 0x00020209, 0x0003050c, 0x000a0c14, 0x0010121a, 0x000f1018, 0x000e0d11, 0x00100f12, 0x00111219, 0x0012101f, 0x000f0b11, 0x00090302, 0x00080000, 0x00130500, 0x00130301, 0x000f0005, 0x00110410,
- 0x00111415, 0x00090507, 0x00020006, 0x0001010a, 0x00000c0e, 0x00160f0f, 0x00491b1b, 0x00912e2e, 0x00c4392d, 0x00b03115, 0x009b280f, 0x00922c27, 0x00642b29, 0x002b1a16, 0x0016191b, 0x00122122,
- 0x001c1820, 0x001a0f15, 0x00140d11, 0x00151215, 0x00121f27, 0x001c232c, 0x001d222d, 0x00161f2d, 0x00191f32, 0x001c1f32, 0x001e1e2f, 0x001d1a2a, 0x002c1f22, 0x00422e2b, 0x00533a30, 0x0059382b,
- 0x00674339, 0x00754f47, 0x00805955, 0x00805755, 0x007b5555, 0x00775455, 0x00674449, 0x0056373d, 0x00452b35, 0x00412932, 0x004c3a43, 0x00584a53, 0x0068585e, 0x00726165, 0x007b696a, 0x00806d6a,
- 0x00817079, 0x007e7583, 0x007f7f91, 0x00727a90, 0x0063718c, 0x00677385, 0x0094a0aa, 0x00cad4db, 0x00cdcfd7, 0x0097979c, 0x007d7e81, 0x00888a8c, 0x00696f77, 0x004d5662, 0x0093a0ae, 0x00c6d7e9,
- 0x00d2dcef, 0x00d3deee, 0x00d0ddec, 0x00d5e3f1, 0x00d7e3f0, 0x00d4e1ee, 0x00d5e4f1, 0x00d5e4ef, 0x00dbe5f8, 0x00d6e3f4, 0x00d5e0ee, 0x00dde6f0, 0x00a7b0ba, 0x00414c56, 0x0006101c, 0x000a141f,
- 0x00161a2a, 0x00202430, 0x00161a25, 0x0020222d, 0x0042434d, 0x00565869, 0x004a4f61, 0x00393c53, 0x003e3c5a, 0x00484463, 0x004d4b67, 0x0048465f, 0x00888797, 0x00e4e4e9, 0x00fbfefb, 0x00fcfcf9,
- 0x00fffefd, 0x00fffefc, 0x00c6ccc6, 0x00505b52, 0x00010a02, 0x00041004, 0x000b1909, 0x00192114, 0x0023291b, 0x0027291c, 0x00282a1c, 0x00282c1c, 0x0027291c, 0x0025271a, 0x00212417, 0x001e1f16,
- 0x001a1915, 0x0011100a, 0x000b0b04, 0x000b0b05, 0x000c0c06, 0x000f0e07, 0x00121108, 0x00131208, 0x001e150f, 0x00231912, 0x00251a10, 0x00271a0d, 0x002c180b, 0x002e1808, 0x002c1605, 0x002c1403,
- 0x002e120c, 0x001e0d0b, 0x000f0810, 0x0030364d, 0x005f71ac, 0x00576cbe, 0x004f66c3, 0x004860c5, 0x004a5ab8, 0x004a5bab, 0x004354a2, 0x004552a7, 0x00434fa1, 0x00404ca0, 0x0037479d, 0x0031489b,
- 0x004759ac, 0x00535f9d, 0x003f4066, 0x00695b69, 0x00ae8b7d, 0x00746855, 0x0034301b, 0x0047412e, 0x00453e30, 0x00494436, 0x00453e33, 0x00464138, 0x0048423b, 0x0047433c, 0x004c4943, 0x004d4742,
- 0x00614f4c, 0x00695550, 0x006f5d59, 0x00847370, 0x007b6a66, 0x00433431, 0x00140806, 0x00110d08, 0x000b110b, 0x000a140d, 0x00081209, 0x000a1108, 0x000c130d, 0x000c130c, 0x000c130a, 0x000c140b,
- 0x000c110d, 0x000b110c, 0x000a1009, 0x00091008, 0x000a100a, 0x000b0f0a, 0x000b0d08, 0x00090e08, 0x0009110e, 0x0009110d, 0x0007110b, 0x0006100a, 0x0009100c, 0x000b100b, 0x000c100b, 0x000e100b,
- 0x00101317, 0x00101417, 0x000e1316, 0x000d1315, 0x000e1417, 0x000e1316, 0x000d1115, 0x000d1115, 0x000c1015, 0x000c0f14, 0x000d0f15, 0x000c0f15, 0x000d1019, 0x000c1119, 0x000d1119, 0x000d1018,
- 0x00101120, 0x00111221, 0x00101221, 0x00101222, 0x00121425, 0x00121623, 0x00131822, 0x00171b27, 0x001d202a, 0x001f222c, 0x001f212d, 0x001d202b, 0x001c1f2a, 0x001b1e2a, 0x001a1e29, 0x001b1f2a,
- 0x001d1a28, 0x0013111d, 0x006c6d74, 0x00e7eaeb, 0x00fbfbf9, 0x00fefefd, 0x00f8fbfa, 0x00f9fcfc, 0x00c9c8d0, 0x00504f56, 0x00000116, 0x0004062f, 0x0014194b, 0x00121c53, 0x000c1c54, 0x0025397a,
- 0x006f8dd1, 0x0087aff1, 0x0079aae5, 0x006ea7dc, 0x0065a2d4, 0x006298d1, 0x005c8cca, 0x005385c3, 0x005886c5, 0x005b8bc9, 0x00578ac3, 0x005083ba, 0x00507fb8, 0x004d7cb3, 0x004d7eb3, 0x005183b7,
- 0x005c7ca4, 0x004c77a6, 0x004774ac, 0x004c7ab5, 0x007578a1, 0x00987083, 0x00a55e5c, 0x00a13f2e, 0x00831409, 0x00721006, 0x007c1c16, 0x008a3029, 0x00a65f59, 0x00c28e8d, 0x00c6a5a8, 0x00a09699,
- 0x0094919c, 0x0094979f, 0x008d9194, 0x008c8f90, 0x009c989e, 0x00a1aab7, 0x00a3b8ca, 0x00a3bbd1, 0x0095b6df, 0x007fa9d7, 0x00679acd, 0x00619bd4, 0x005694d9, 0x004e8dd8, 0x004787d2, 0x004588d2,
- 0x00518ad6, 0x00548ed7, 0x005491d7, 0x005292d7, 0x005895d8, 0x00649ad6, 0x006996cb, 0x005c84b5, 0x003d5482, 0x001f305a, 0x0010153a, 0x001c0929, 0x00180928, 0x0020112f, 0x00342843, 0x00433b52,
- 0x00544e64, 0x00767482, 0x00dadae1, 0x00f5fcfb, 0x00f4fefb, 0x00fbf9fb, 0x00fbfbf9, 0x00f0f6f6, 0x008fa0a8, 0x003b515f, 0x00284957, 0x00244d5d, 0x00295265, 0x00295261, 0x00254d5c, 0x00264c59,
- 0x003b5565, 0x003f5a69, 0x00496472, 0x00526c77, 0x00577179, 0x005b777c, 0x00597479, 0x00577176, 0x00566872, 0x00485c64, 0x003b4d58, 0x002d3c4c, 0x001e2e3b, 0x001e2f39, 0x002d3f46, 0x0034474d,
- 0x0041515d, 0x00435361, 0x005a6978, 0x008597a9, 0x00aec1d7, 0x00dad5b9, 0x00edc19f, 0x00d67578, 0x0098355e, 0x004b2b53, 0x003a4a6a, 0x00487391, 0x00938dad, 0x00765e71, 0x00210e13, 0x00080602,
- 0x000f0807, 0x00100702, 0x00191001, 0x001f1600, 0x00251b03, 0x00342715, 0x004d4136, 0x005a5149, 0x00685d5e, 0x00504a48, 0x00222121, 0x00343c3d, 0x00697073, 0x00787f82, 0x00879194, 0x00869296,
- 0x00849098, 0x00839098, 0x0089969d, 0x008e9ca3, 0x008e9ba6, 0x008a99a4, 0x0082939e, 0x007e8c99, 0x00808ea0, 0x00818ea0, 0x008391a5, 0x0092a2b7, 0x00a4b0c9, 0x00aebbd5, 0x00adbbd7, 0x00abb9d5,
- 0x00b3bcd3, 0x00cacfde, 0x00f2f4f4, 0x00fdfcf1, 0x00fcf5dc, 0x00f1e5cc, 0x00c6bda8, 0x009c978c, 0x006a6e75, 0x006f7887, 0x00a4afc7, 0x00aab9d9, 0x00a7b8d5, 0x00a6b9d6, 0x009cb0c8, 0x008ea6bc,
- 0x005f758a, 0x003f5b6b, 0x002f4f5b, 0x002b4e56, 0x002a4e56, 0x00294d56, 0x00264a56, 0x00264955, 0x00284b56, 0x00284a56, 0x00284a56, 0x00284b57, 0x002a4c5a, 0x002a4c5a, 0x00294b5a, 0x00284b59,
- 0x002a4c57, 0x00294b56, 0x00244953, 0x00234a54, 0x00254855, 0x00244856, 0x00234957, 0x00244859, 0x0027465a, 0x00254659, 0x00234654, 0x00234751, 0x00244853, 0x00234752, 0x0021464f, 0x00214650,
- 0x00264552, 0x00244752, 0x00224550, 0x00224650, 0x00234551, 0x00204551, 0x001f444f, 0x001b424a, 0x00264857, 0x001e3e4b, 0x002f4853, 0x007f929d, 0x00f0faf9, 0x00fafcfb, 0x00fdfdf6, 0x00fefbf2,
- 0x00f4ffef, 0x00f1fcf3, 0x00f9fcfd, 0x00fbfcfd, 0x00e0d2cf, 0x008d6f63, 0x00603827, 0x00663821, 0x005d3619, 0x0055341a, 0x004c2d1b, 0x00412a1e, 0x003b2519, 0x00332115, 0x002e1f16, 0x002d2118,
- 0x001e1b09, 0x001e190d, 0x00241915, 0x00291a1a, 0x00291b1a, 0x00291d13, 0x00281d12, 0x00261d1a, 0x00191911, 0x0016140d, 0x001c130f, 0x001c0f0c, 0x00130a08, 0x0005050c, 0x00445064, 0x008da5c1,
- 0x006c819f, 0x00607087, 0x00565c70, 0x00534e57, 0x00584b44, 0x00644f42, 0x006e5448, 0x00715546, 0x0066533e, 0x00695746, 0x00775f4f, 0x00836451, 0x00866957, 0x00856a5a, 0x0081665a, 0x007b6256,
- 0x006a604f, 0x00645a4b, 0x005b4f46, 0x004c423c, 0x003d3430, 0x00382b2d, 0x0039292e, 0x00392a2d, 0x003b2f25, 0x00433529, 0x004f3c32, 0x00554038, 0x00594339, 0x005a433a, 0x005b403b, 0x005b3c3a,
- 0x00424035, 0x003b3427, 0x0044362d, 0x0071635a, 0x00b0a7ae, 0x00c2c3d1, 0x00bec5dd, 0x00bdc7ea, 0x009daec4, 0x008e99ac, 0x00d3d3ea, 0x00ebeef8, 0x00b5bcd6, 0x0074779a, 0x008d8ab0, 0x00cec8e4,
- 0x00dad3cd, 0x00e0d5c8, 0x00e5dad1, 0x00e3dcdd, 0x00d7ddea, 0x00d9dee5, 0x00dfe2e6, 0x00e4e3e8, 0x00dce3dd, 0x00d9e0dc, 0x00dbdbdc, 0x00d7d3d7, 0x00d2cacd, 0x00d2c8cb, 0x00d7c8cf, 0x00d6c7ce,
- 0x00ccc6d0, 0x00c8c1c9, 0x00c1b7c0, 0x00b6a9af, 0x00a79898, 0x00a79494, 0x00a89298, 0x00a99099, 0x00a39395, 0x008b7b81, 0x006a525f, 0x004c2e3c, 0x00362a50, 0x00606293, 0x007e87bd, 0x008f9dd4,
- 0x00cde3ed, 0x00effcf8, 0x00f5fcf7, 0x00fbfff8, 0x00fafefa, 0x00f8e8e8, 0x00a98c86, 0x0074533d, 0x006d4b17, 0x00704c21, 0x00775438, 0x0079574f, 0x00735250, 0x0076523c, 0x007c532c, 0x00825518,
- 0x00754a24, 0x00714a1d, 0x007b5223, 0x00765117, 0x00896723, 0x00af8c47, 0x00ab8345, 0x008e642a, 0x00745019, 0x0079501f, 0x007c512a, 0x00785133, 0x007f5624, 0x00845821, 0x008b5d24, 0x00895f27,
- 0x006d5b26, 0x00685831, 0x00715a41, 0x00745a4a, 0x007e5849, 0x007f553f, 0x00845742, 0x00815f49, 0x00716239, 0x00746132, 0x007c5f2d, 0x00805c27, 0x00855b2b, 0x00855934, 0x00855940, 0x0082574b,
- 0x00875c31, 0x00885a34, 0x008a5937, 0x00875d37, 0x00845d34, 0x00856037, 0x00895f36, 0x00875c32, 0x00835928, 0x00865a2c, 0x008a612f, 0x00816b2b, 0x0082693b, 0x00826843, 0x007e6643, 0x007e633d,
- 0x00796522, 0x007d6620, 0x0085672d, 0x008c683a, 0x008e6149, 0x00845c46, 0x0084604c, 0x0087624a, 0x00876135, 0x0089612e, 0x008f6230, 0x008f5f2b, 0x00966b35, 0x009d7540, 0x009b7340, 0x00a57c4d,
- 0x00b29a69, 0x00ab8f62, 0x00927148, 0x00886437, 0x00876231, 0x0086622c, 0x00865f2e, 0x009d7949, 0x00a08d4f, 0x00857439, 0x007a602c, 0x0083582c, 0x007e5825, 0x00805a27, 0x00815e29, 0x007b5c2b,
- 0x006f5d22, 0x006f5c2b, 0x0069562c, 0x0062502d, 0x005a482c, 0x00614825, 0x006c5427, 0x00685521, 0x00535114, 0x005b5b34, 0x006c7062, 0x005e6874, 0x00546690, 0x007892b8, 0x008fafd3, 0x006d93ae,
- 0x00566e5f, 0x00455b34, 0x0043501b, 0x00495414, 0x00445330, 0x003e565e, 0x00486182, 0x005c73a1, 0x00757e80, 0x00807d61, 0x00967f5a, 0x00aa7e66, 0x00866a41, 0x005a5122, 0x004f5128, 0x00445337,
- 0x00375353, 0x00324e5b, 0x005d748a, 0x00aac0d0, 0x00f2feff, 0x00fbfffc, 0x00fefbfd, 0x00fdfcff, 0x00f7faf4, 0x00bbbdba, 0x0068696b, 0x0096969a, 0x00d1d0d6, 0x00ebeaf1, 0x00faf8ff, 0x00fcf9ff,
- 0x00eef0f4, 0x00ebf1f4, 0x00ecf0f5, 0x00f3f7fb, 0x00ebe5eb, 0x00e5d7e1, 0x00f6e4ef, 0x00fff3fa, 0x00f3f7f7, 0x00e9f8f6, 0x00f1f8fb, 0x00f7f6f7, 0x00f9f8f0, 0x00f7faf0, 0x00f8f7f6, 0x00f7f7fb,
- 0x00e9f3ef, 0x00e6efeb, 0x00ebeef2, 0x00e0e1e8, 0x00c0c2ca, 0x00a1a6ab, 0x008e9097, 0x00909098, 0x005f6961, 0x00313b33, 0x0039403b, 0x00606561, 0x00717274, 0x005d5b5f, 0x00524c56, 0x0048404c,
- 0x00383821, 0x0031341b, 0x0033331e, 0x00363522, 0x00353621, 0x00343521, 0x00343424, 0x00343725, 0x002a351d, 0x002b361d, 0x0030331e, 0x0034311e, 0x0033311d, 0x0034321e, 0x00373221, 0x00373421,
- 0x0032341d, 0x0032351d, 0x00373520, 0x00393422, 0x00383421, 0x00363420, 0x00373321, 0x00373323, 0x00312d1d, 0x00342e21, 0x003e322b, 0x0044332d, 0x0046332b, 0x00452f24, 0x00472d22, 0x00492e22,
- 0x00432f17, 0x00362611, 0x0081746a, 0x00ece5e3, 0x00fdfdff, 0x00feffff, 0x00fcfbfe, 0x00fcfcff, 0x00c0c3bc, 0x0049493e, 0x00020000, 0x00020507, 0x0006090c, 0x00060c0d, 0x00080b0e, 0x000a0a0f,
- 0x0002090b, 0x00070e0f, 0x00151921, 0x00171b24, 0x00141520, 0x00120d14, 0x00160d18, 0x00181522, 0x000f181d, 0x00071111, 0x00020a08, 0x00030604, 0x00010200, 0x00040305, 0x000a0312, 0x001a0b25,
- 0x00111c0f, 0x000c100b, 0x00070309, 0x0001020d, 0x0000080b, 0x000a070b, 0x00360f15, 0x0083262c, 0x00a82e1a, 0x00992605, 0x00972a13, 0x00a0413e, 0x00764941, 0x00332428, 0x00191b24, 0x0019242c,
- 0x00121313, 0x00161011, 0x00191016, 0x0019161c, 0x000e2227, 0x001d2531, 0x00232638, 0x0024293b, 0x0024323e, 0x002f3a45, 0x003b3f4e, 0x003a3842, 0x00392b2b, 0x00453029, 0x005c3f37, 0x00674439,
- 0x00674b39, 0x0073584a, 0x007e5e56, 0x007c5855, 0x00795255, 0x00764f56, 0x006c4750, 0x0061404d, 0x00483537, 0x00402e32, 0x004b3b46, 0x00574953, 0x0064555d, 0x006d5a5e, 0x00786268, 0x007c656a,
- 0x00756d6f, 0x00757277, 0x007a7a88, 0x006e7389, 0x00707b93, 0x008d96aa, 0x00bfc4d2, 0x00d5dce5, 0x00bec8c8, 0x00a2aaaa, 0x00c1c5c9, 0x00d6d8e0, 0x00b9bec8, 0x00a6afbd, 0x00c4d1e3, 0x00cbdaed,
- 0x00bdd4de, 0x00c4d9e3, 0x00d0dfed, 0x00d4e0ef, 0x00cfdde9, 0x00cedbe9, 0x00d2ddef, 0x00d3e0f2, 0x00cce0ea, 0x00c8dfe9, 0x00d3dfea, 0x00dfe5eb, 0x00acb3bb, 0x00687077, 0x00474b57, 0x003d4351,
- 0x002c383d, 0x001c252b, 0x0010141e, 0x000e111c, 0x002a2a35, 0x00404351, 0x00585b6f, 0x005c5f74, 0x0042475b, 0x003c4057, 0x00494968, 0x00484562, 0x007b798b, 0x00d7d4dd, 0x00fffeff, 0x00fffffe,
- 0x00f8fdf5, 0x00f5fdf3, 0x00dee5df, 0x006f7971, 0x00010901, 0x00061004, 0x00131911, 0x001f251a, 0x001e2917, 0x00242a19, 0x002a2c1e, 0x002a2c1f, 0x0026291c, 0x0024261b, 0x00202017, 0x001f1f15,
- 0x00131506, 0x000b0f02, 0x00090a00, 0x000a0a03, 0x00090c05, 0x000c0c07, 0x00110d08, 0x0014100a, 0x00171305, 0x001d1609, 0x00261a0e, 0x002b1a0e, 0x002c1609, 0x002f1507, 0x00321608, 0x00331609,
- 0x00261403, 0x00190c04, 0x001d131c, 0x00434661, 0x006172b0, 0x004f66b8, 0x004f65c9, 0x004a60c9, 0x003c58aa, 0x004158a1, 0x004654a1, 0x004552a5, 0x003e4c9d, 0x003b479b, 0x0039459f, 0x003949a6,
- 0x003d5a9f, 0x00506099, 0x0065648b, 0x00867584, 0x00a37d70, 0x005e5042, 0x003e392c, 0x00443d31, 0x00403b2b, 0x00463f31, 0x004a3b34, 0x004b3934, 0x00493b35, 0x00493e3a, 0x004c4240, 0x004d4642,
- 0x004d463a, 0x005a5145, 0x006a5c55, 0x007c6a68, 0x00877471, 0x005b4b49, 0x001c1111, 0x00140d0b, 0x00081207, 0x00041107, 0x00081009, 0x000f120e, 0x000d130d, 0x000c130d, 0x000e120e, 0x000f110e,
- 0x00051103, 0x00061104, 0x00090f07, 0x000a1007, 0x000a100b, 0x000a0e09, 0x000c0d0a, 0x000d100b, 0x00000e03, 0x00010f04, 0x0005100b, 0x0008110d, 0x0009100a, 0x000b0f0b, 0x000f1110, 0x00121212,
- 0x000b1312, 0x000a1313, 0x000f1518, 0x00101519, 0x000f141a, 0x0011131b, 0x0013141c, 0x0011131b, 0x000a1110, 0x00081112, 0x000b1119, 0x000d131e, 0x000e1320, 0x00101321, 0x00131323, 0x00131322,
- 0x000b121d, 0x000b131e, 0x00101224, 0x00111425, 0x0014152b, 0x00131625, 0x00181826, 0x001b1f2a, 0x00171f25, 0x00192027, 0x001c1f29, 0x001c1d29, 0x00191d28, 0x00191d28, 0x001c1e2b, 0x001c202d,
- 0x00131820, 0x000a0f15, 0x0055585d, 0x00d4d5d8, 0x00ffffff, 0x00fcfcfc, 0x00fefcfe, 0x00fcfbff, 0x00dbe0de, 0x006a7071, 0x00040412, 0x00020429, 0x000f133f, 0x000c1647, 0x0025326c, 0x005b6fb0,
- 0x007da6de, 0x007babe2, 0x006ea3da, 0x0069a1d6, 0x005b9bc9, 0x00558dc8, 0x005483c9, 0x004e7fc5, 0x004881bc, 0x004980ba, 0x004b7fba, 0x00497db9, 0x00497cb9, 0x004679b5, 0x004779b4, 0x004a7cb8,
- 0x006781a8, 0x00507eaf, 0x003a74af, 0x002b71b4, 0x00517ba4, 0x007b7889, 0x00a0736e, 0x00bc614c, 0x00ab3519, 0x00931303, 0x008a0807, 0x00920f11, 0x009b2c30, 0x00ad5b5d, 0x00d598a1, 0x00d3b0bc,
- 0x00b3b0b7, 0x00a4abab, 0x0099a1a7, 0x009ca5a8, 0x00aeb2b4, 0x009cb7cb, 0x0089afd3, 0x007ca6ce, 0x006aa0c9, 0x00649bcd, 0x006099d6, 0x00629adf, 0x005997dc, 0x005490da, 0x004e87d2, 0x004981cb,
- 0x004280c6, 0x003f7ec3, 0x003e7fc9, 0x003a82cd, 0x003b86cf, 0x00458bcf, 0x005791ce, 0x006b9bd0, 0x00698db0, 0x00486582, 0x0031304c, 0x00321122, 0x00270617, 0x00371b29, 0x00604254, 0x0073586c,
- 0x005d5457, 0x00666062, 0x00c2bec1, 0x00f5f5f6, 0x00fdfdfd, 0x00fffcfa, 0x00fffaf6, 0x00fefcfa, 0x00a3b5b5, 0x00456164, 0x0028464f, 0x002c4f59, 0x0029505c, 0x00264a57, 0x002f4f5b, 0x00395762,
- 0x00395a60, 0x00436469, 0x00556f7b, 0x00617784, 0x00647d84, 0x00667c83, 0x00687985, 0x00657881, 0x005b7074, 0x00516669, 0x00485860, 0x00374352, 0x0020313b, 0x001e2e3a, 0x00303c4a, 0x00384551,
- 0x003b5157, 0x003c5159, 0x00596b7d, 0x008d9cb0, 0x00bac9e1, 0x00dbcfbc, 0x00eab7a0, 0x00ea8088, 0x008e324b, 0x00463241, 0x004f6577, 0x0071a6b3, 0x00928aa0, 0x004e3141, 0x001d0106, 0x001a0f07,
- 0x00151218, 0x001a1613, 0x00241916, 0x00201406, 0x0028190c, 0x00453129, 0x00604c49, 0x005e4e50, 0x006b665d, 0x006b6a5e, 0x003a3a36, 0x00282c2f, 0x00464a4c, 0x006a6f73, 0x008b8f95, 0x0090989f,
- 0x00819190, 0x007e8f8f, 0x0084949a, 0x008a98a0, 0x008b98a6, 0x008896a4, 0x008391a2, 0x00828fa2, 0x008899a7, 0x0094a5b4, 0x00a2b0c6, 0x00acb9d0, 0x00aab7d3, 0x00aab6d6, 0x00aeb9db, 0x00acb9dd,
- 0x00a6b9ca, 0x00b4c2cb, 0x00e0e5e4, 0x00f7f4e8, 0x00f8f0d9, 0x00e8dfc3, 0x00aea591, 0x00797068, 0x00536062, 0x0076858f, 0x00acbad4, 0x00b1bee1, 0x00a8badb, 0x00abbedc, 0x00adc1dd, 0x00a9bcd6,
- 0x0084a4b2, 0x005d808b, 0x00426571, 0x00305661, 0x00264d56, 0x00284d57, 0x002a4b59, 0x002b4b5b, 0x00264d51, 0x00234b52, 0x00274b56, 0x00244955, 0x00244a56, 0x00264a57, 0x00254857, 0x00264758,
- 0x001e4b4f, 0x001f4a50, 0x00224854, 0x00244855, 0x00234954, 0x00244955, 0x00284759, 0x0028475a, 0x001e4653, 0x00204755, 0x00254655, 0x00264754, 0x00244753, 0x00234753, 0x00254652, 0x00254651,
- 0x001d474b, 0x001f464d, 0x00224751, 0x00234752, 0x00234650, 0x0021434e, 0x00254754, 0x001d3f4e, 0x001f444d, 0x001a3e46, 0x0026414d, 0x00607480, 0x00dde8ea, 0x00f9fdfc, 0x00fffbfc, 0x00fffcf9,
- 0x00f9fdf6, 0x00f9fdfc, 0x00fafdfe, 0x00fafdfe, 0x00e7dad4, 0x009a7b6f, 0x00613924, 0x006b391f, 0x0065381e, 0x005c371f, 0x004f2f1c, 0x00422c1e, 0x003b2719, 0x00322113, 0x002d1f13, 0x002c2114,
- 0x00291e11, 0x00281d13, 0x002a1d16, 0x002b1d19, 0x002d201a, 0x002e2115, 0x002d2113, 0x002d2119, 0x00231e1b, 0x00201816, 0x00201111, 0x00200e0e, 0x00190c0c, 0x000e0a0e, 0x00343c48, 0x0067798b,
- 0x00586075, 0x0054596a, 0x00575660, 0x005e5757, 0x006b5e53, 0x00776453, 0x007b6453, 0x007d6453, 0x007a6358, 0x007c665d, 0x00856d62, 0x008d7360, 0x00927764, 0x008f7866, 0x00887262, 0x00826d5d,
- 0x0078685b, 0x00716259, 0x00665753, 0x00584b47, 0x00483c39, 0x003f3233, 0x003b2b2d, 0x003a2927, 0x00402d28, 0x0048362b, 0x00503d30, 0x00554132, 0x00574133, 0x005a4036, 0x005a3e37, 0x00583c33,
- 0x00453b35, 0x00463932, 0x00392b22, 0x00584c41, 0x00a8a09f, 0x00c2c1c8, 0x00b7bcc8, 0x00bbc4d5, 0x00e2ebf4, 0x00d5d7ed, 0x00dce0f1, 0x00c9d6e9, 0x008d98bc, 0x00696f9b, 0x007d80a8, 0x00bab7d0,
- 0x00dbcfcf, 0x00e2d4cb, 0x00e4dacf, 0x00e0dbd9, 0x00d7dde9, 0x00dae0e6, 0x00dce3e1, 0x00dce1de, 0x00d9e0de, 0x00dadfde, 0x00d9dbdd, 0x00d5d5d7, 0x00d5d0d3, 0x00d7d0d3, 0x00d9cfd5, 0x00d9cdd4,
- 0x00d6cddf, 0x00d2c9d7, 0x00cec4d0, 0x00c3b8bf, 0x00afa1a3, 0x00a69696, 0x00a59397, 0x00a49197, 0x009b8a93, 0x00a28e99, 0x00b199a6, 0x00a58b96, 0x00605375, 0x0060638f, 0x007684b5, 0x008499cb,
- 0x00d1e5f3, 0x00f2fdfc, 0x00f5fdf8, 0x00f7fff8, 0x00f7fefa, 0x00f3e9e7, 0x00a28d83, 0x006f523a, 0x006f4c1e, 0x0075502a, 0x007a573b, 0x007d5c51, 0x00795a54, 0x007f5d48, 0x00825a36, 0x0081561d,
- 0x007e4c2d, 0x007c4e26, 0x00805426, 0x00765017, 0x00816021, 0x00987738, 0x0098753a, 0x00876329, 0x007e5826, 0x00855c2e, 0x00825b2f, 0x007f5d34, 0x007c5923, 0x00815a20, 0x00875e1f, 0x00865f23,
- 0x00796233, 0x00705b38, 0x006f5940, 0x00745c4c, 0x007c5e52, 0x007d5746, 0x007f5641, 0x00805f47, 0x00826b48, 0x00816840, 0x007a5f31, 0x00805f2c, 0x008f6b3c, 0x00966f4c, 0x008f6953, 0x00845f54,
- 0x00885831, 0x00865531, 0x00895934, 0x008a6137, 0x00876134, 0x00845d30, 0x008a5e32, 0x008d5e35, 0x008b592e, 0x008e5b33, 0x008b6231, 0x00856b2d, 0x00846937, 0x00836940, 0x007d653e, 0x00756134,
- 0x007a672d, 0x0077642d, 0x00876e3f, 0x0090704e, 0x00795141, 0x00664536, 0x006d4d3b, 0x007b5740, 0x008b5d39, 0x008f5d32, 0x00915d2c, 0x00926029, 0x008c5e24, 0x008e622d, 0x008d6331, 0x0092693c,
- 0x00927342, 0x00966e40, 0x008e6435, 0x008c5d2c, 0x00915d2a, 0x00936230, 0x008a5b28, 0x008b6430, 0x00896e3d, 0x00806a3f, 0x00846b3d, 0x008b6236, 0x00885b2d, 0x00895b2c, 0x0089602e, 0x00866132,
- 0x0083643c, 0x00806341, 0x007e6645, 0x00816346, 0x0080603f, 0x00815c3d, 0x0084613b, 0x007c622f, 0x006d602c, 0x007b7458, 0x0094928d, 0x0081869e, 0x004f5c93, 0x004d6395, 0x0055729f, 0x0052779a,
- 0x0064717e, 0x005f6a5d, 0x00505734, 0x00515829, 0x0047564c, 0x00364e74, 0x004e68a8, 0x007890e0, 0x008890aa, 0x007c796e, 0x008f734b, 0x00b0703e, 0x0090692f, 0x00695421, 0x0049471d, 0x00424e37,
- 0x003b5561, 0x00324c62, 0x00536b87, 0x00a4bdd0, 0x00ebfcfe, 0x00f7fefc, 0x00fafbf9, 0x00fcfdfc, 0x00f9fbf9, 0x00bdbebd, 0x0067686a, 0x0096969a, 0x00d1d1d7, 0x00eaebf1, 0x00f7f7fe, 0x00f9f9ff,
- 0x00f3f3f9, 0x00f0f2f9, 0x00eaeff4, 0x00f1f5f8, 0x00e7e2e9, 0x00e8dde8, 0x00f6e9f5, 0x00fbf1fc, 0x00f0f6fc, 0x00ebf9fb, 0x00edfbfa, 0x00f0f9f1, 0x00f8f9e8, 0x00fdf9e8, 0x00fdf7ee, 0x00fbf9f5,
- 0x00ecf9fd, 0x00eaf5fd, 0x00eef3fc, 0x00eee7f3, 0x00e6cccb, 0x00c5bcbd, 0x00848c89, 0x00828a87, 0x008f9a93, 0x00636e67, 0x00313b36, 0x0049514e, 0x00717577, 0x00626267, 0x004d4a53, 0x003e3b45,
- 0x003b3723, 0x0035341f, 0x00353220, 0x00353422, 0x00343621, 0x00323620, 0x00323521, 0x00313722, 0x002e351f, 0x002e3520, 0x0031331f, 0x0032311d, 0x0031301d, 0x0031311d, 0x0033321d, 0x0035321e,
- 0x00353422, 0x00353421, 0x00363422, 0x00363421, 0x00373421, 0x0033351f, 0x0032341f, 0x00333220, 0x00332f1e, 0x00372f22, 0x003f3229, 0x0044322b, 0x00453128, 0x00442e23, 0x00442c1f, 0x00462d20,
- 0x00442d1d, 0x00382516, 0x0081726a, 0x00ebe4e2, 0x00fcfdfb, 0x00fcfffb, 0x00fafdfb, 0x00fafefd, 0x00c3c5bf, 0x004b4942, 0x00020000, 0x00020404, 0x0006090a, 0x00030809, 0x00000608, 0x0003070d,
- 0x000a0e15, 0x0011161f, 0x001c1e28, 0x001c1e26, 0x00161721, 0x00100d14, 0x00140f16, 0x00171522, 0x00161b26, 0x000e191d, 0x0004100f, 0x00020a06, 0x00000501, 0x0004070b, 0x00050514, 0x000f091f,
- 0x0010140e, 0x00151616, 0x000f1015, 0x00020a12, 0x0000080b, 0x00050208, 0x00270508, 0x006d1a1d, 0x009e2315, 0x009c240a, 0x009f311c, 0x00a64b48, 0x00845652, 0x00403131, 0x001b2021, 0x00111e23,
- 0x001d161e, 0x00271620, 0x00261821, 0x001f2024, 0x00112c2d, 0x001c2a34, 0x00252c3d, 0x00283345, 0x0036404f, 0x00434b58, 0x00484a58, 0x003c3943, 0x003d2f31, 0x0048352f, 0x00564036, 0x0061483a,
- 0x0070574f, 0x00775f5a, 0x007c615e, 0x00765857, 0x00705154, 0x006f4f54, 0x006a4b52, 0x00634851, 0x00523e49, 0x004b3944, 0x004b3b48, 0x00544750, 0x005f5258, 0x00665759, 0x006a595c, 0x006d5d5f,
- 0x0074676d, 0x007b727a, 0x00797684, 0x00767b8d, 0x009ba5b9, 0x00c4ccdd, 0x00d6dde8, 0x00d2d8e1, 0x00d7dee1, 0x00d2d9dc, 0x00e0e6ea, 0x00d3dadf, 0x00bac4cc, 0x00c7d5e0, 0x00cddfeb, 0x00c8dbea,
- 0x00c6dbea, 0x00cddff0, 0x00cddded, 0x00c4d3e2, 0x00becddb, 0x00c1d0dd, 0x00c3d1e0, 0x00c1cfdf, 0x00bfd0dd, 0x00c3d3e0, 0x00c8d4de, 0x00d1d6db, 0x00ccd4d8, 0x00c3ccd0, 0x00bec8cd, 0x00b2bac1,
- 0x00939ca5, 0x007e838d, 0x005a5e68, 0x0031373f, 0x001b1e26, 0x00252a35, 0x00373e4e, 0x00515769, 0x00646a81, 0x005b5f79, 0x00414362, 0x003d3e58, 0x00696979, 0x00c1c0c8, 0x00fdfcfb, 0x00fbfaf4,
- 0x00fcfcf8, 0x00fcfcf8, 0x00f0f2ed, 0x008d918b, 0x00040903, 0x00080f06, 0x00151d11, 0x0021281b, 0x00252c1d, 0x00292c1f, 0x002c2c1f, 0x00292b1e, 0x0025281b, 0x00232619, 0x001e2114, 0x001b1e12,
- 0x0011140d, 0x000b0f07, 0x00070902, 0x00080902, 0x00080a02, 0x000a0b02, 0x000d0c03, 0x00100e05, 0x001a120a, 0x0020160d, 0x0027190e, 0x002a180c, 0x002d170a, 0x002f1608, 0x00311607, 0x00321707,
- 0x002e1609, 0x001b0c0a, 0x0026212e, 0x004b5474, 0x005b71b2, 0x004d66b8, 0x004f65c6, 0x00495ec2, 0x004155ab, 0x004354a2, 0x004352a0, 0x00414fa5, 0x00394899, 0x00364396, 0x00364499, 0x0036479d,
- 0x003c559d, 0x006470ae, 0x008f8fb6, 0x009a8b96, 0x00896552, 0x003f3427, 0x002e2f24, 0x0028251d, 0x00342820, 0x003b2e27, 0x00402c2a, 0x00402b2a, 0x003e2f2c, 0x003d3131, 0x00403738, 0x00433d3a,
- 0x004b4439, 0x00534a3f, 0x00655851, 0x0073625f, 0x0082716e, 0x00655755, 0x00201715, 0x00100b08, 0x00091007, 0x00061208, 0x00060f08, 0x000b110a, 0x000a120a, 0x000a1209, 0x000d120b, 0x000f130c,
- 0x00081006, 0x00091008, 0x000a0f09, 0x000a1007, 0x000a1007, 0x000a0d09, 0x00090b0b, 0x00090e0a, 0x00040e0b, 0x00040e0a, 0x00040e0c, 0x00050e0c, 0x0009100c, 0x000c100f, 0x000e0f12, 0x000f0f12,
- 0x000e161f, 0x000f161f, 0x00101620, 0x0010161f, 0x0010131d, 0x0013161e, 0x0013161c, 0x00101319, 0x000d1218, 0x000c1118, 0x000f111e, 0x00121223, 0x00121221, 0x00121223, 0x00141328, 0x00141527,
- 0x00121327, 0x00111327, 0x00131229, 0x00121429, 0x0013142b, 0x00131525, 0x00161725, 0x00191c28, 0x001c1e28, 0x001c1e29, 0x001d1d29, 0x001b1b26, 0x00181c24, 0x00181c24, 0x00191d26, 0x00191e28,
- 0x00191b26, 0x0012141c, 0x0044464c, 0x00b5b7ba, 0x00fcfdfe, 0x00f7f9f9, 0x00fafdfd, 0x00fbfdfe, 0x00eeefed, 0x008a8c92, 0x00050513, 0x00090625, 0x00070b33, 0x00091746, 0x00465d91, 0x007e9dd6,
- 0x007ea1df, 0x00709cd9, 0x006296cd, 0x005f98cb, 0x005696c5, 0x004d85c0, 0x00497abc, 0x00487abd, 0x004c80c0, 0x004b7fbd, 0x00487bb7, 0x00467ab5, 0x004579b3, 0x004276b0, 0x003f73ac, 0x004174ad,
- 0x006272a2, 0x005d84bd, 0x004684c0, 0x002e7cbf, 0x003574a2, 0x005c758e, 0x00887677, 0x00b26e5f, 0x00d4553f, 0x00c42e1e, 0x00a00800, 0x00960405, 0x008f1119, 0x00892124, 0x009d4e54, 0x00b07e83,
- 0x00978a90, 0x006b6b73, 0x003e484c, 0x003c4b4b, 0x00636c67, 0x006a90ac, 0x006b9fca, 0x00699ecf, 0x0065a2da, 0x00619bda, 0x00609dde, 0x0062a0e1, 0x005b99d8, 0x00558fd2, 0x004c83c9, 0x00497ec5,
- 0x004177c3, 0x003a74bf, 0x003374c2, 0x00327bca, 0x00317eca, 0x003780c6, 0x004988c6, 0x00558cc2, 0x005b82ad, 0x005c789f, 0x00596077, 0x004e2d36, 0x003d181c, 0x00522a2d, 0x00785755, 0x00896866,
- 0x006a5956, 0x005e5454, 0x00a5a3a2, 0x00ecf0ec, 0x00fafefa, 0x00fbfbf7, 0x00fcf6f6, 0x00fffefd, 0x00c9d6d4, 0x006b8283, 0x002f4a4f, 0x0034535a, 0x0033575f, 0x0030525a, 0x0034545a, 0x003d5c61,
- 0x004d6570, 0x00566d78, 0x00627785, 0x00697e8a, 0x006e848c, 0x006f848a, 0x00708188, 0x006f7e86, 0x0068787e, 0x005e6d73, 0x00505d66, 0x003c4957, 0x0021323e, 0x001a2d39, 0x00263945, 0x0030434e,
- 0x003e4f5b, 0x0043515e, 0x00556878, 0x00879aab, 0x00bdcce1, 0x00cabbae, 0x009d6d5c, 0x00933b43, 0x006b2037, 0x005e4d5d, 0x0077929a, 0x0097c4c8, 0x00716771, 0x00291015, 0x00230407, 0x0025160e,
- 0x00271d2e, 0x00352a33, 0x00322528, 0x002b1c17, 0x0043302b, 0x00584340, 0x00624e4d, 0x00614f51, 0x00655954, 0x00756a61, 0x00635f59, 0x003e4342, 0x00484d50, 0x007a8084, 0x008a9396, 0x00859294,
- 0x00828e91, 0x007e8c8e, 0x007e8e92, 0x0083939b, 0x0085949f, 0x008595a2, 0x008c9dac, 0x0094a7b9, 0x00a2b0c8, 0x00a7b5cf, 0x00a4b1d0, 0x00a6b4d2, 0x00a5b2d1, 0x00a4b2d0, 0x00a3b1d0, 0x00a6b4d3,
- 0x00acb5d1, 0x00acb5c7, 0x00c5cbd0, 0x00d9dad4, 0x00dddaca, 0x00c6c1ae, 0x008a8579, 0x00676360, 0x0078828c, 0x009caabb, 0x00abbad5, 0x00acb8d9, 0x00abb9d9, 0x00b7c6e2, 0x00b8cce3, 0x00aac1d6,
- 0x0099b4c2, 0x008aa8b8, 0x007b99a7, 0x005e7f8a, 0x003b5d69, 0x002c4e5c, 0x002c4c5d, 0x002b4d5d, 0x00294b5a, 0x00294c5b, 0x00264959, 0x00234858, 0x00244b59, 0x00234a56, 0x00204852, 0x00214751,
- 0x00214a52, 0x00214a52, 0x00234954, 0x00234855, 0x00224954, 0x00224955, 0x00254858, 0x00254858, 0x00234657, 0x00234657, 0x00244756, 0x00244753, 0x00224851, 0x00214751, 0x0021454f, 0x0020454e,
- 0x0022474e, 0x0022474f, 0x0020454f, 0x0020454e, 0x0020454e, 0x0020434e, 0x00224551, 0x001c414d, 0x001f434f, 0x001f414b, 0x00223f4c, 0x00445c68, 0x00becdce, 0x00f3fbfa, 0x00fdfefd, 0x00fcfaf5,
- 0x00fdfef5, 0x00fafefb, 0x00f8fffd, 0x00f5fffe, 0x00ece1d5, 0x00a98775, 0x006a381d, 0x0079391b, 0x0073341a, 0x0069371c, 0x0059341c, 0x0045301e, 0x003a2718, 0x00352316, 0x00322117, 0x002e2015,
- 0x00291c0e, 0x002d1e0f, 0x00311f10, 0x00331e10, 0x00372013, 0x003a2215, 0x00372014, 0x00361e14, 0x00381e16, 0x00331a15, 0x002e1616, 0x002a1416, 0x00231215, 0x001f1315, 0x00372e32, 0x00544f53,
- 0x00554f42, 0x005c5549, 0x00645b51, 0x006d6258, 0x00796c62, 0x007f7066, 0x00827167, 0x0085736a, 0x0088716a, 0x008a736c, 0x008c7a6d, 0x008e806a, 0x0092846f, 0x00928371, 0x008c7c6e, 0x0088766a,
- 0x00806d66, 0x00786860, 0x006f5d5b, 0x00645052, 0x00564343, 0x00473a35, 0x003f3229, 0x003c2c20, 0x00453124, 0x004e3929, 0x00563f2c, 0x005a422c, 0x0059412b, 0x005a4130, 0x00583f30, 0x00563d2c,
- 0x0045392d, 0x003d3128, 0x00392b2b, 0x00403232, 0x00887c77, 0x00c7bfb1, 0x00d4d1bf, 0x00dad9c9, 0x00ededee, 0x00e4e7ef, 0x00d8e8fd, 0x0082b6e3, 0x005071bd, 0x006477c4, 0x009798df, 0x00c9c5f2,
- 0x00d4ceca, 0x00d8d4c0, 0x00dad9c8, 0x00dfddd7, 0x00dfdff8, 0x00e1dfe7, 0x00dedcdd, 0x00dedadc, 0x00dfd8dd, 0x00ded9db, 0x00ddd7db, 0x00dad7db, 0x00ddd7dd, 0x00dcd7df, 0x00dcd6e0, 0x00ded6e0,
- 0x00d9d1db, 0x00d7ced6, 0x00d7cdd6, 0x00cfc6cf, 0x00b7afb7, 0x00a39ba2, 0x00938b94, 0x00918891, 0x008c858c, 0x00938d92, 0x00b4aeb4, 0x00c3c2c3, 0x00a7a5bf, 0x00868bb3, 0x007a81ae, 0x008c97c7,
- 0x00d1e5f6, 0x00eefdfd, 0x00f7fffe, 0x00fcfffc, 0x00fffef8, 0x00edeedd, 0x00979279, 0x00635432, 0x00714d23, 0x00744e23, 0x00745127, 0x0075552d, 0x0082653e, 0x0099794e, 0x009c784a, 0x0088602c,
- 0x00844f2d, 0x00845228, 0x00845127, 0x007d4d21, 0x007c522a, 0x007d5734, 0x00876545, 0x008f704f, 0x008d7245, 0x00886f39, 0x00866b30, 0x00836120, 0x007e581f, 0x00835e25, 0x00825a2c, 0x00845a30,
- 0x007c5934, 0x00775535, 0x0073573c, 0x00755a40, 0x00755f4a, 0x007b5d35, 0x007e5b2c, 0x00825a30, 0x00876035, 0x00875e39, 0x00825936, 0x00855d38, 0x00997455, 0x00a58266, 0x00957657, 0x0088674e,
- 0x00806129, 0x008d6d36, 0x009d7945, 0x00946f3b, 0x008c6031, 0x008d5e31, 0x008f5c32, 0x00905d35, 0x00955b34, 0x00955936, 0x00935c32, 0x00925f28, 0x00926128, 0x008b6226, 0x00866631, 0x00766337,
- 0x00666950, 0x0061665e, 0x0073777b, 0x0079717d, 0x005c4b5b, 0x00413d3c, 0x004b483e, 0x00635149, 0x0089584a, 0x00925c3d, 0x00935c2e, 0x008f5e1f, 0x008a601c, 0x008a5e26, 0x008c5f33, 0x008c5e3c,
- 0x0081652e, 0x00875f2c, 0x00955c2d, 0x009b5525, 0x00a8541a, 0x009e5513, 0x00965714, 0x008e5e21, 0x007d6c47, 0x00756f55, 0x00707153, 0x00716e3d, 0x00806234, 0x00895e34, 0x008d603d, 0x00876247,
- 0x00716b5a, 0x006c6b59, 0x00796955, 0x0080633c, 0x009b5823, 0x00866325, 0x00846b2b, 0x00866d27, 0x007a6428, 0x007b6642, 0x0089786b, 0x007e6f7e, 0x004c3d6a, 0x00383056, 0x00252641, 0x00282d3e,
- 0x0061565d, 0x00786d5d, 0x0070644a, 0x0069603f, 0x004a4f65, 0x00324789, 0x003d5bbd, 0x005273e1, 0x006a7bb0, 0x0069757b, 0x0078644a, 0x009c5c2b, 0x00845939, 0x00694e39, 0x005b4e47, 0x00505256,
- 0x004c4c5b, 0x003f3f50, 0x004d4959, 0x00a5a3ac, 0x00fdfefc, 0x00fbfbfa, 0x00fffdfe, 0x00fffeff, 0x00fdfefd, 0x00c0c2c1, 0x0067696a, 0x00929599, 0x00ced1d7, 0x00e6e9f1, 0x00f2f6fe, 0x00f2f7fe,
- 0x00f0f6fa, 0x00eceef5, 0x00f4f3fc, 0x00f2edf7, 0x00e5ddea, 0x00e6e0eb, 0x00f1eef7, 0x00f8f3fd, 0x00f3f4fc, 0x00f2f6f9, 0x00f5f8fa, 0x00f2f6f6, 0x00f5f6f8, 0x00f5f7fa, 0x00f6f5fb, 0x00f6f7fb,
- 0x00f5f8fd, 0x00f5f7ff, 0x00f5f1fc, 0x00f3f4fb, 0x00dfdee6, 0x00c8cadc, 0x00bdbad5, 0x00bebdd4, 0x00c5c8db, 0x00b9bfcd, 0x00656d78, 0x0050585b, 0x00737878, 0x006c6e67, 0x004e4e45, 0x003e3f33,
- 0x00393824, 0x00353721, 0x00343420, 0x00343521, 0x00353721, 0x00343621, 0x00353522, 0x00343522, 0x0034341f, 0x00333320, 0x0033331f, 0x0033321e, 0x0034311f, 0x0033311e, 0x0034321e, 0x00363120,
- 0x00383523, 0x00373421, 0x00353420, 0x00363320, 0x00373422, 0x00323524, 0x002d3423, 0x002f3122, 0x00352f23, 0x003a2f23, 0x00413326, 0x00443325, 0x00473125, 0x00452f23, 0x00453023, 0x00483124,
- 0x00402f22, 0x00352619, 0x007f726a, 0x00ece4df, 0x00fefbf9, 0x00fefdf9, 0x00fdfcfa, 0x00fdfefd, 0x00c4c5c2, 0x00494845, 0x00030001, 0x00030401, 0x00090909, 0x00030608, 0x00010508, 0x0000030c,
- 0x00090e1a, 0x00141924, 0x00181e2b, 0x001b1f2b, 0x00151725, 0x000b0f1c, 0x000d1222, 0x0017192b, 0x001e1e2b, 0x001b1d28, 0x00161820, 0x000b0a0e, 0x00070505, 0x00060404, 0x000d0b0b, 0x0014100f,
- 0x00151225, 0x00191a27, 0x00151a22, 0x00081113, 0x0003070a, 0x000b0102, 0x00240001, 0x005d120f, 0x009e210c, 0x00b22505, 0x00b82f18, 0x00ac4341, 0x008e504b, 0x004f362c, 0x002a2318, 0x0020201c,
- 0x0022161d, 0x002d1827, 0x002d2132, 0x00222533, 0x000f2d33, 0x00152b37, 0x00213343, 0x00293648, 0x003a414d, 0x00484b53, 0x00424045, 0x00343233, 0x00373333, 0x00403e3f, 0x00504a4e, 0x00595256,
- 0x005d605c, 0x00676867, 0x006f6a6e, 0x006e636a, 0x00695864, 0x00675461, 0x00665461, 0x0062525f, 0x00574d5a, 0x00504754, 0x004f4852, 0x00524c4c, 0x005d5354, 0x005f5355, 0x0064555a, 0x006a595c,
- 0x006c6266, 0x00766e75, 0x007e7984, 0x009d9baa, 0x00d0cfe2, 0x00ddddee, 0x00dbdce9, 0x00d9dbe6, 0x00d6dbe0, 0x00d7dee1, 0x00d6e0e1, 0x00d0ddde, 0x00ccdbe0, 0x00ccdce5, 0x00cedfea, 0x00cbdcea,
- 0x00cfdee8, 0x00d3e0ee, 0x00cdd9ea, 0x00c3cee2, 0x00bcc5dd, 0x00bdc5db, 0x00bec6d9, 0x00c1c6d8, 0x00c3cad6, 0x00c5cdd7, 0x00cad2d9, 0x00cbd5d7, 0x00d5dce2, 0x00d6e0e5, 0x00dfe7ee, 0x00e4eaf0,
- 0x00d6e2e6, 0x00cfdbde, 0x00bac4c7, 0x009da5a9, 0x00535a60, 0x00262837, 0x002d2d44, 0x0041435b, 0x00606481, 0x006b6f8e, 0x0058607c, 0x0041495e, 0x00575c67, 0x00a7a8ab, 0x00f9f8f4, 0x00fffbef,
- 0x00fbfdfb, 0x00f9faf8, 0x00fafdfa, 0x00adada8, 0x00141612, 0x000b0a02, 0x001a1b10, 0x00242518, 0x00272b19, 0x002b2d1d, 0x00292a1c, 0x0028291c, 0x0025261b, 0x0024251b, 0x001f2118, 0x00191c14,
- 0x000f120a, 0x000b0f08, 0x00070d07, 0x00060e08, 0x00060d07, 0x00080d06, 0x000c0e06, 0x00111007, 0x0019140c, 0x001e180f, 0x0023190f, 0x0027190f, 0x002d1a11, 0x00301a12, 0x002f180f, 0x002f170d,
- 0x00271604, 0x00150f11, 0x00272d4b, 0x0052649a, 0x005269bc, 0x005267be, 0x00505fba, 0x004c58b2, 0x004852ac, 0x004450a6, 0x004352a8, 0x003c4ba7, 0x00364697, 0x00354391, 0x00364693, 0x00344897,
- 0x00354e97, 0x005865a3, 0x008e8cb4, 0x00988a96, 0x007d5d41, 0x002f2321, 0x0018151a, 0x00160f16, 0x001d1414, 0x00201714, 0x00251a16, 0x00261c19, 0x002b2325, 0x002c242d, 0x00352c3a, 0x003b3241,
- 0x003e3934, 0x0049433d, 0x005b514d, 0x00695d5b, 0x00807371, 0x00685e5c, 0x00231d1a, 0x000f0d08, 0x000a1208, 0x0008150a, 0x00061108, 0x000a1108, 0x000b1108, 0x000c1109, 0x000f130c, 0x000f140e,
- 0x00091006, 0x00091108, 0x000a1109, 0x000a1209, 0x000a120a, 0x00090f10, 0x00070e14, 0x00061013, 0x00080f16, 0x00080f15, 0x00070c15, 0x00070c16, 0x000b0d19, 0x000d0f1c, 0x000f101f, 0x0010111f,
- 0x00101528, 0x00111528, 0x00131629, 0x0015182b, 0x00151529, 0x00151628, 0x00151627, 0x00161526, 0x00151622, 0x00171422, 0x00171424, 0x00171325, 0x00191026, 0x00181028, 0x0017122c, 0x0019112f,
- 0x0016122f, 0x0015122d, 0x0015122e, 0x0015122a, 0x0015122c, 0x00171124, 0x001a1123, 0x001b1323, 0x001f1727, 0x00201a28, 0x00221b29, 0x00201c25, 0x001d1b22, 0x001b1b21, 0x001c1b22, 0x001b1b22,
- 0x00161e22, 0x0011171b, 0x00353a3e, 0x00969a9a, 0x00fafbf9, 0x00fafbf8, 0x00fcfdfc, 0x00fefdfe, 0x00f6f4f7, 0x00a9a5ad, 0x0018121c, 0x00090414, 0x00030c2b, 0x001b3761, 0x00628ac0, 0x0075a3e0,
- 0x00719eda, 0x006896d0, 0x006491cd, 0x00618ecd, 0x005387c8, 0x00487bb8, 0x004374ad, 0x004779b2, 0x005483bc, 0x005180b8, 0x004776ac, 0x004474a6, 0x004774a7, 0x004772a8, 0x00456fa5, 0x00446ea3,
- 0x00446d99, 0x005477a8, 0x006984c1, 0x006081c5, 0x004d75c0, 0x004570ab, 0x005e75a2, 0x0082738b, 0x00ce6051, 0x00e64a29, 0x00c2270a, 0x00650e08, 0x00670704, 0x0076190c, 0x007e2517, 0x007e3725,
- 0x00544136, 0x001d2825, 0x00031418, 0x00010d0d, 0x001f1711, 0x00325a6e, 0x00649dca, 0x00679dda, 0x006da0eb, 0x006595dc, 0x00679bd8, 0x006198c9, 0x005e97c6, 0x00568ece, 0x004883d3, 0x00417bdb,
- 0x003b6cbe, 0x003566b7, 0x003464b6, 0x003666b5, 0x003a6bb5, 0x003c6eb4, 0x004173b8, 0x004477b9, 0x004476b7, 0x003c70ac, 0x0042699d, 0x00465371, 0x00413037, 0x00553626, 0x007e573b, 0x00916c49,
- 0x006c6148, 0x004b4c44, 0x00808c8b, 0x00d8e7e8, 0x00f5ffff, 0x00fafefd, 0x00f8f5fb, 0x00fcfeff, 0x00d9e7e7, 0x008ba2a3, 0x00385455, 0x0039585a, 0x003d5f62, 0x003b5960, 0x00415d66, 0x0049646e,
- 0x005a6c71, 0x0065757b, 0x006e7f85, 0x0074858c, 0x007a8b93, 0x00798a92, 0x0076888f, 0x0076878e, 0x00708188, 0x0062737b, 0x0055646f, 0x003f4f5e, 0x00273746, 0x001c2d3c, 0x001e313d, 0x002a3d4b,
- 0x00394b5a, 0x003f515d, 0x004a5d69, 0x00778996, 0x00bdcedf, 0x00dbc8c6, 0x00725d56, 0x002d2e2d, 0x003e5b68, 0x00647d8f, 0x00a6adc4, 0x00b4a8ba, 0x0069454f, 0x001a0307, 0x00190b03, 0x00191a08,
- 0x002b2b12, 0x00322f18, 0x00423a2a, 0x00493b31, 0x00584141, 0x005e4546, 0x00644c4b, 0x00664d49, 0x006d534a, 0x00765f51, 0x00776c5f, 0x00525851, 0x004e5457, 0x00747b83, 0x00858e94, 0x00828f94,
- 0x007c9288, 0x00788d86, 0x00768d88, 0x007e9698, 0x00869cac, 0x0091a6b6, 0x009cb0bf, 0x009eb0c8, 0x00a3b0d3, 0x00a3b0d5, 0x009fadd5, 0x009dadd3, 0x00a3b2d6, 0x009fb0cc, 0x009eb0c8, 0x00a3b3c8,
- 0x00acb5d4, 0x00a8b2ce, 0x00acb7d1, 0x00afbad1, 0x00b0bbd0, 0x00a1adbf, 0x008b97a8, 0x008794a6, 0x0098a3bb, 0x00a1adc7, 0x00adb7d0, 0x00b1b6cd, 0x00a0a8b9, 0x00bdc5d1, 0x00dde6ee, 0x00cdd8e0,
- 0x00b0bfc3, 0x00a3b3c0, 0x009daabe, 0x0097a3bf, 0x007885a9, 0x004d5c7e, 0x0032415f, 0x0035435f, 0x00314259, 0x00324a62, 0x00254762, 0x001c4965, 0x001b4964, 0x001d485b, 0x00264c54, 0x00294849,
- 0x00244957, 0x00234a55, 0x00244955, 0x00244956, 0x00244956, 0x00254957, 0x00264958, 0x00254a57, 0x00274b59, 0x00254a57, 0x00244856, 0x00244756, 0x00244656, 0x00244655, 0x00234654, 0x00214654,
- 0x00224651, 0x00234650, 0x0022464f, 0x0020444d, 0x0021444d, 0x0021434e, 0x00214650, 0x001d464f, 0x001d424d, 0x001d424b, 0x0020424c, 0x002b4a51, 0x009fb4b8, 0x00e8f5f9, 0x00fafefd, 0x00fffefd,
- 0x00fefbf6, 0x00fefcfb, 0x00f7fffc, 0x00f5fffc, 0x00efe9dc, 0x00b89483, 0x006e3b22, 0x007f3b1f, 0x0079391c, 0x006c381c, 0x005a341b, 0x0047311f, 0x003d2819, 0x00362316, 0x00332117, 0x002f2115,
- 0x002c1f17, 0x00302015, 0x00342215, 0x00372313, 0x003b2414, 0x003c2515, 0x003a2416, 0x003b2317, 0x003d251c, 0x003c241c, 0x00371f1a, 0x0035211e, 0x0030201e, 0x002f2423, 0x00393130, 0x00484041,
- 0x00564d43, 0x00645b50, 0x00756b60, 0x007e7367, 0x0086796d, 0x008c7d72, 0x008f7e75, 0x00917f78, 0x00907c76, 0x00957f79, 0x00978579, 0x00988b76, 0x009d8e7c, 0x009d8d7e, 0x0097877c, 0x00948378,
- 0x008c7971, 0x0084736e, 0x00776764, 0x006c5b59, 0x005c4a49, 0x004f423e, 0x00453730, 0x00433128, 0x004b3627, 0x00553e2e, 0x005c4331, 0x00604531, 0x005e4230, 0x005c4130, 0x00543c2d, 0x00503a2b,
- 0x00403428, 0x003f322c, 0x00382b28, 0x00281a1d, 0x00685d58, 0x00aea69e, 0x00c5c2b4, 0x00e0e0d2, 0x00efedf1, 0x00ebecfb, 0x00bac9eb, 0x005d8ad3, 0x0036539b, 0x006475b7, 0x00bec5f5, 0x00e1defc,
- 0x00ddd6d4, 0x00d6cfc3, 0x00d5d1c4, 0x00ddd9d5, 0x00deddec, 0x00e1dde4, 0x00e0dede, 0x00dfdbdb, 0x00e0dbe0, 0x00e0dadf, 0x00e1dde1, 0x00e4dfe4, 0x00e3dee5, 0x00e3dce5, 0x00e2dce6, 0x00e3dbe6,
- 0x00dfd8e2, 0x00dcd6df, 0x00dbd5dd, 0x00dad4dc, 0x00cec9cf, 0x00bcb7bd, 0x00969297, 0x00858187, 0x008f8a91, 0x00a7a0a7, 0x00bdb9bf, 0x00cbcbce, 0x00cfcee7, 0x00bcc0e8, 0x00838bb6, 0x008894c1,
- 0x00d5e4f6, 0x00f2fcff, 0x00f9fffd, 0x00fbfffb, 0x00fdfcf7, 0x00efefdd, 0x009e997c, 0x006a5a36, 0x006e4b1f, 0x00734d21, 0x00754e23, 0x006f4b20, 0x007d5c34, 0x0098774b, 0x009e7b4a, 0x008c662f,
- 0x0084542c, 0x0088592b, 0x00835626, 0x007d5421, 0x00775024, 0x0077522c, 0x00876343, 0x009a765a, 0x00a0815a, 0x00987d4d, 0x0090723a, 0x00866124, 0x007d5621, 0x00805723, 0x00825828, 0x00855b2c,
- 0x007e562e, 0x007e5631, 0x00785632, 0x00785736, 0x00775c3d, 0x007b5937, 0x007a5533, 0x007b5233, 0x00805732, 0x00825835, 0x00825833, 0x00825b32, 0x008f6a3e, 0x00987848, 0x008e6f3e, 0x00886b38,
- 0x00906a30, 0x00ab834b, 0x00b38b55, 0x009d723e, 0x008a5e2a, 0x008c5d29, 0x008d5e28, 0x008d5d25, 0x00925c25, 0x00925b23, 0x00905c23, 0x00915d2d, 0x008f5f2b, 0x008a5f2f, 0x0087683f, 0x0077674b,
- 0x00636861, 0x005a656f, 0x00626e7c, 0x00798094, 0x00666476, 0x00424240, 0x003a3427, 0x00524137, 0x007b5b55, 0x00846153, 0x00806146, 0x0080663f, 0x007f6534, 0x00846037, 0x008b5e38, 0x00915c3e,
- 0x008d6429, 0x008b6034, 0x00885f41, 0x007d5a49, 0x007d5f53, 0x00836b5b, 0x00826b53, 0x007c6849, 0x007c6a49, 0x007e694b, 0x00796943, 0x00706d31, 0x00796233, 0x00815f43, 0x0086655a, 0x00816971,
- 0x007f88a4, 0x00798ba0, 0x0067777c, 0x006e6e61, 0x007d663d, 0x00936f40, 0x00ac834d, 0x00a37c3e, 0x00856126, 0x007f5c34, 0x0074543b, 0x006a4b4a, 0x00543846, 0x004e383d, 0x004c3e34, 0x003b341c,
- 0x005a4743, 0x00715b48, 0x00776147, 0x006b5739, 0x004e4954, 0x0049527e, 0x003f5091, 0x00364992, 0x004b567b, 0x005c5c64, 0x00644e3b, 0x00814522, 0x00795233, 0x0071553d, 0x006f5b4e, 0x00655953,
- 0x006a585f, 0x0059454f, 0x00514046, 0x00a49798, 0x00fdfbf4, 0x00fcfbf7, 0x00fffefc, 0x00fffdfe, 0x00fbfcfc, 0x00c2c3c3, 0x0066686a, 0x00929599, 0x00cccfd6, 0x00e5e9f2, 0x00eef2fc, 0x00edf2fb,
- 0x00eef3f9, 0x00eceef6, 0x00eff0f8, 0x00eeebf2, 0x00e4e0e8, 0x00e9e2eb, 0x00f4f0f8, 0x00f7f3fc, 0x00f0f2f8, 0x00f1f4fa, 0x00f2f5fb, 0x00f5f5fb, 0x00f4f5f9, 0x00f6f5f9, 0x00f4f4f8, 0x00f3f4f9,
- 0x00f1f5fb, 0x00f9f8fe, 0x00f0f1f9, 0x00f3f3fd, 0x00e8e7f3, 0x00d5d5e9, 0x00b6bcd4, 0x00c4c8dd, 0x00c8cbde, 0x00dee3f3, 0x00b1b8c3, 0x007a8087, 0x00797d7d, 0x00757572, 0x00535249, 0x00413f35,
- 0x00363822, 0x00363822, 0x00333520, 0x00333520, 0x00353722, 0x00363622, 0x00363623, 0x00363423, 0x0035341f, 0x0034331f, 0x0033331e, 0x0033331e, 0x0033321f, 0x0032331f, 0x0033331f, 0x00353220,
- 0x00373422, 0x00373321, 0x00353320, 0x00363420, 0x00383423, 0x00323525, 0x002e3524, 0x002f3221, 0x00373023, 0x003c3125, 0x00423226, 0x00473327, 0x00473124, 0x00463023, 0x00453022, 0x00473224,
- 0x00413022, 0x0035251b, 0x007e7369, 0x00eae4df, 0x00fdfcf7, 0x00fdfefb, 0x00fbfdf9, 0x00fdfefe, 0x00c3c6c2, 0x004b4a48, 0x00020000, 0x00090602, 0x00151310, 0x00131211, 0x000e1014, 0x000b0e15,
- 0x000b0f19, 0x000e131c, 0x000f121e, 0x00151623, 0x00171821, 0x00101221, 0x00151727, 0x001e202e, 0x00232736, 0x00232433, 0x0021212d, 0x001a1a22, 0x000f0e13, 0x0009070c, 0x000e0b10, 0x00141217,
- 0x001e131e, 0x0019131e, 0x00101519, 0x00091212, 0x00050804, 0x000e0200, 0x00250000, 0x00540e0c, 0x00891a0d, 0x009d1f0a, 0x00a22c1a, 0x00a04141, 0x007e4841, 0x004a362b, 0x0028271d, 0x001c251c,
- 0x00291f28, 0x002f1c2c, 0x002c1f2f, 0x00232331, 0x00132f34, 0x00192c3b, 0x00243143, 0x002e384a, 0x0039414c, 0x003d404b, 0x00313338, 0x002c2c2f, 0x0033343a, 0x00404249, 0x004f535a, 0x00555762,
- 0x005b6168, 0x00656871, 0x006e6b76, 0x006e6672, 0x006c5e6d, 0x006b5d6a, 0x006b5e6b, 0x00685c69, 0x005e555f, 0x0057515c, 0x00575258, 0x005b5457, 0x005e5556, 0x00595053, 0x00594e4f, 0x005c4f51,
- 0x00655b61, 0x00726a72, 0x00a29da8, 0x00cfcdda, 0x00dfdeee, 0x00dcdbea, 0x00d8d9e5, 0x00d6d8e3, 0x00d5d9df, 0x00d5dddf, 0x00d4dfde, 0x00d1dfdf, 0x00cddce0, 0x00ccdbe4, 0x00cfdeea, 0x00ccdce9,
- 0x00d2e1ef, 0x00d2e0ef, 0x00cad7e7, 0x00c1cedf, 0x00bcc7db, 0x00bfc9dc, 0x00c1c8da, 0x00c4c9da, 0x00c9d1d8, 0x00cdd4dc, 0x00ced7db, 0x00d2dadf, 0x00d7dfe3, 0x00d8e2e8, 0x00dce8eb, 0x00e4ecf0,
- 0x00dfe6eb, 0x00d5dee3, 0x00d7e0e3, 0x00dbe4e5, 0x00acb7bb, 0x00707380, 0x0046475a, 0x0033374a, 0x00484e69, 0x00646c87, 0x006c758d, 0x00687184, 0x005b5f6a, 0x008e8e93, 0x00f4f0f2, 0x00fffaf5,
- 0x00fcfdfb, 0x00fcfbfb, 0x00fbfcfa, 0x00c4c2c0, 0x002c2d26, 0x000f0f06, 0x001d2013, 0x0026291c, 0x00242716, 0x00292c1c, 0x002a2c1d, 0x0028291c, 0x0024251a, 0x00222319, 0x001e1f16, 0x00171a11,
- 0x000c100a, 0x00090e08, 0x00060c06, 0x00050c06, 0x00030a03, 0x00060b04, 0x000b0e06, 0x000f0f07, 0x0015130c, 0x001b160e, 0x001f170e, 0x0023160d, 0x002b1912, 0x00301b14, 0x00301912, 0x00301810,
- 0x0027130a, 0x001a121c, 0x003a405e, 0x005d6fa8, 0x005269bb, 0x004e62bb, 0x004d5db9, 0x004854af, 0x004650a7, 0x00434ea5, 0x00404ea5, 0x003b49a6, 0x00384496, 0x00364292, 0x00364693, 0x00334696,
- 0x003750a1, 0x005765a5, 0x007a7ca9, 0x00807281, 0x0053341e, 0x001c0907, 0x00090003, 0x000b0202, 0x00140601, 0x001b0a05, 0x001d0b05, 0x001c0b03, 0x001a0b05, 0x00201412, 0x002b2122, 0x00342a2d,
- 0x00322927, 0x003f3633, 0x00524644, 0x00635654, 0x007b6e6e, 0x00685e5e, 0x00201a19, 0x000d0a07, 0x0008110b, 0x0009140e, 0x0006100b, 0x0009100b, 0x000a0f0b, 0x000a0f0b, 0x000e120f, 0x000d1210,
- 0x000c110b, 0x000c120c, 0x000c120c, 0x000b120d, 0x000b120d, 0x00091013, 0x00080f15, 0x00071016, 0x00080f17, 0x00090f18, 0x000a0e18, 0x000b0d19, 0x000d0d1b, 0x000f0f1d, 0x0010121f, 0x00111320,
- 0x00111527, 0x00131628, 0x0018192c, 0x00191a2d, 0x001a1a2c, 0x001a192a, 0x001b1a2a, 0x001c1a2a, 0x001b1926, 0x001b1825, 0x001b1626, 0x001b1426, 0x001a1126, 0x00191029, 0x001a102d, 0x001b1131,
- 0x00161230, 0x0016122f, 0x0014112c, 0x00121029, 0x00111027, 0x00140e22, 0x00160d1e, 0x00160e1f, 0x00191323, 0x001c1625, 0x001e1926, 0x001c1923, 0x001a1920, 0x001a1a1f, 0x001a1a20, 0x001b1a20,
- 0x00151b21, 0x00161c20, 0x00212629, 0x007b8080, 0x00eff2f1, 0x00fcfffe, 0x00fbfefd, 0x00fdffff, 0x00f9fafc, 0x00c1bdc7, 0x002c2a32, 0x000a0411, 0x000b1b36, 0x003c5985, 0x00749dd4, 0x0070a3df,
- 0x00709eda, 0x006997d4, 0x006492cf, 0x005b8bc8, 0x00477dbd, 0x004075b1, 0x004072ac, 0x00487ab4, 0x005181bd, 0x004c7db6, 0x003e70a8, 0x003b6ca1, 0x004574a9, 0x004775ab, 0x004471a7, 0x00406ea2,
- 0x003b6b96, 0x0040699c, 0x004e75ad, 0x005e82bf, 0x00578ac9, 0x004c81b6, 0x004f7aa3, 0x0068728d, 0x00b26c6b, 0x00d56353, 0x00cc4b30, 0x00a1270a, 0x005e0203, 0x004f0509, 0x004b1719, 0x004f2d2e,
- 0x003e3a2e, 0x0023251c, 0x00131913, 0x000c110e, 0x00120b0d, 0x00284459, 0x00618db2, 0x006694ca, 0x006492d7, 0x006391d7, 0x005d90d0, 0x00598ec4, 0x00568bbd, 0x005484c2, 0x004e7dc5, 0x004b77cd,
- 0x003c6dbb, 0x003364b2, 0x002958a7, 0x002a5aa6, 0x002c5ca6, 0x003161a8, 0x002f60a4, 0x002d5fa1, 0x003668ad, 0x004778b8, 0x00618abe, 0x007087ad, 0x0057565f, 0x0048392f, 0x00684c37, 0x007c5b42,
- 0x0064594b, 0x004b4b45, 0x0065706d, 0x00bdcacc, 0x00f3f8fd, 0x00fcfeff, 0x00fefaff, 0x00fcfdfe, 0x00edf6f6, 0x00b3c4c6, 0x004f686b, 0x00456265, 0x0048666c, 0x004a6970, 0x004e6b74, 0x00506e77,
- 0x00616f78, 0x00697880, 0x0073838b, 0x007a8b92, 0x0081929a, 0x0081929a, 0x007e8f96, 0x007c8b92, 0x0073848b, 0x0066777f, 0x00556670, 0x00455665, 0x002a3b4a, 0x001f303f, 0x001e313e, 0x00273b48,
- 0x00334754, 0x003f4f5e, 0x00455865, 0x005c6d7c, 0x00a9bbc8, 0x00dfd6d9, 0x00726668, 0x00414b54, 0x007a9eb4, 0x008faac6, 0x00a2b2cd, 0x00a39ab3, 0x00462e36, 0x00120305, 0x0019130b, 0x00182113,
- 0x0026210d, 0x002f2816, 0x00443a28, 0x00524338, 0x005a473e, 0x005e4842, 0x005e4941, 0x0059433b, 0x00513d34, 0x005d483e, 0x006e6556, 0x00686b5d, 0x00525752, 0x005d5e65, 0x007d858c, 0x007e8893,
- 0x0074838b, 0x006e7e8d, 0x007689a0, 0x007f93b7, 0x0094a5d8, 0x00a4b4db, 0x009aa9ca, 0x009babcd, 0x009eadcf, 0x009aa9cc, 0x009fafd2, 0x009babce, 0x009eaed0, 0x009daecb, 0x009fb0ce, 0x00a3b3cf,
- 0x00a3b0cd, 0x00a3afcb, 0x00a5b1cb, 0x00a5b2c8, 0x00a3b0c4, 0x009ca9bd, 0x00a0adc1, 0x00a3b0c5, 0x009da8c4, 0x009da8c5, 0x00adb7d2, 0x00b5bbd1, 0x00a3aabc, 0x00abb2bf, 0x00d3dde5, 0x00e7f1f8,
- 0x00c8d7dd, 0x00b0becb, 0x00aab7c7, 0x00abb7d0, 0x009ca9c8, 0x00828fae, 0x00515d7e, 0x00485571, 0x003a4b64, 0x002c435d, 0x00234460, 0x00204a68, 0x001c4966, 0x00214d64, 0x00264b59, 0x00284950,
- 0x00284b5a, 0x00274b5a, 0x00274b5a, 0x00274a59, 0x00274959, 0x00274958, 0x00264858, 0x00264857, 0x00264a58, 0x00254958, 0x00254859, 0x0025475a, 0x0026475b, 0x00264759, 0x00254858, 0x00244758,
- 0x00244652, 0x00254752, 0x0021454f, 0x0022464f, 0x0021454e, 0x00244651, 0x00224550, 0x001f4650, 0x001d4550, 0x001e464f, 0x0020434e, 0x0025444c, 0x007d9297, 0x00dbe7ec, 0x00f9fefd, 0x00fdfdfd,
- 0x00fffaf8, 0x00fbfdf9, 0x00f9fefc, 0x00f5fefa, 0x00fcf3eb, 0x00c6a493, 0x00743f29, 0x007f3f23, 0x007c3e23, 0x006e3b21, 0x005a331e, 0x00462f21, 0x003d281b, 0x00372317, 0x00332219, 0x002d2018,
- 0x0030201a, 0x00332119, 0x0038251b, 0x003b271a, 0x003e281a, 0x003f291a, 0x003d2919, 0x003e2817, 0x00442c23, 0x00432b22, 0x003c251d, 0x0036221b, 0x00352621, 0x003c312c, 0x004a413c, 0x00504843,
- 0x00645a50, 0x0070665a, 0x0080766a, 0x00867b6f, 0x008e8177, 0x0092847a, 0x0095887d, 0x0096887d, 0x0095857e, 0x00998880, 0x009d8c81, 0x009f927f, 0x00a49686, 0x00a69687, 0x009f9084, 0x009a8c80,
- 0x0094847c, 0x008b7b74, 0x007c6c6a, 0x006f5e5e, 0x00625050, 0x00564742, 0x004d3d35, 0x0049362c, 0x00513a2c, 0x005a4131, 0x00604635, 0x00644a38, 0x00614836, 0x005d4533, 0x00543d2c, 0x004f3828,
- 0x0042372a, 0x003e322b, 0x003b2c2f, 0x0024171b, 0x004c4340, 0x00959087, 0x00b8b5ac, 0x00c2bfb9, 0x00d3d0d9, 0x00eae7f6, 0x0096a1cd, 0x00426ac2, 0x002b498f, 0x006e7eb0, 0x00d6e1f9, 0x00e5e8ef,
- 0x00e7dcdc, 0x00dfd5d1, 0x00d8cfcb, 0x00d6cfd0, 0x00dad5da, 0x00dfdcdf, 0x00e3dfe0, 0x00e3dee1, 0x00e4e1e2, 0x00e6e4e6, 0x00eae6ea, 0x00e9e6eb, 0x00e8e4ea, 0x00e5e3e9, 0x00e5e2e9, 0x00e3e2e9,
- 0x00e4dfe6, 0x00e2dee4, 0x00e1dee5, 0x00e1dee6, 0x00dcd9df, 0x00d3d0d5, 0x00aeabb0, 0x0096949b, 0x00a8a3ae, 0x00bdb7be, 0x00cac8cf, 0x00cfccd0, 0x00d6d7ef, 0x00cdd0f2, 0x008b92bd, 0x008c96c2,
- 0x00d7e1f6, 0x00f3fbfe, 0x00fafefe, 0x00fcfffd, 0x00fffdf9, 0x00f6f2df, 0x00a99e80, 0x00735f3b, 0x00734a1e, 0x00764b1e, 0x007c5129, 0x00764f26, 0x00735028, 0x007c572d, 0x00845e2b, 0x0081581f,
- 0x00825627, 0x008f6530, 0x0089602a, 0x007a531c, 0x00795224, 0x0077512e, 0x00815c42, 0x0097735e, 0x00b28f70, 0x00a78860, 0x0091703e, 0x0089622b, 0x00815824, 0x007f5222, 0x00845626, 0x00885828,
- 0x0086562e, 0x0083562b, 0x0080552d, 0x007d552c, 0x007b572d, 0x007e5638, 0x007f543a, 0x007c5135, 0x00805135, 0x00835532, 0x00885833, 0x00865a2f, 0x00865d2b, 0x00896630, 0x008b6b33, 0x008f7237,
- 0x009d7439, 0x009e773e, 0x009a713d, 0x0087612e, 0x00845e2c, 0x00845f2c, 0x00865d27, 0x008a5f23, 0x008e5f23, 0x00916220, 0x008e5f26, 0x008b5f38, 0x00895e3a, 0x00815f3e, 0x007e644f, 0x006f645a,
- 0x005b5f70, 0x005c697d, 0x006a7a93, 0x00808fa4, 0x006b7081, 0x00434039, 0x003f3226, 0x004e403b, 0x00715f64, 0x00796e6e, 0x00746a69, 0x006c6a5c, 0x00746850, 0x007d6445, 0x00895e3d, 0x00955c3d,
- 0x00955e24, 0x00885f39, 0x007d6155, 0x006d616d, 0x0067728d, 0x00818fa3, 0x008a969f, 0x0082847c, 0x007d6749, 0x007f603a, 0x00806336, 0x006d672c, 0x00775d36, 0x007f604e, 0x0080646a, 0x00756883,
- 0x007688b8, 0x006e8fb2, 0x004c6e87, 0x00567173, 0x0073765f, 0x0094724b, 0x00bb8656, 0x00aa7541, 0x008c5b28, 0x0086592d, 0x00794e2f, 0x007c553f, 0x008d6a5b, 0x008e7056, 0x009b815b, 0x008b7442,
- 0x0086685b, 0x00755640, 0x00705238, 0x006d4f37, 0x00655653, 0x00676477, 0x004a5171, 0x00242d53, 0x00222338, 0x00453d41, 0x00684e43, 0x007e513b, 0x007e5e46, 0x00705641, 0x006c5344, 0x00796053,
- 0x008e6b6a, 0x00836361, 0x00785b58, 0x00b7a49c, 0x00fefcf2, 0x00f9fcf4, 0x00fffdfe, 0x00fefdff, 0x00fcfcfe, 0x00c1c1c5, 0x0067686e, 0x0092939a, 0x00cbced5, 0x00e2e6ee, 0x00edf1fa, 0x00eaeff8,
- 0x00ecf1f8, 0x00edeef5, 0x00f1f0f7, 0x00ede8f1, 0x00e8e2eb, 0x00f0e7f0, 0x00f3eef6, 0x00f4f4fb, 0x00f2f2fb, 0x00f0f2f8, 0x00f4f4f9, 0x00f2f5f8, 0x00f4f6f9, 0x00f3f6f9, 0x00f4f4f9, 0x00f2f5f8,
- 0x00f4f3fd, 0x00f6f6fe, 0x00f5f5fd, 0x00eef0fa, 0x00f2f2fd, 0x00dedeef, 0x00b5b6ca, 0x00bbc1d5, 0x00bbc1d4, 0x00d9e0f0, 0x00cad1df, 0x00999fa6, 0x00767a7e, 0x00747672, 0x0057564f, 0x00444238,
- 0x00383724, 0x00373823, 0x00343520, 0x00333520, 0x00353723, 0x00353723, 0x00363623, 0x00353521, 0x00353421, 0x0032331f, 0x0031311e, 0x0032311e, 0x0033321e, 0x0032321d, 0x0032321e, 0x0033321d,
- 0x00363422, 0x00373322, 0x00363422, 0x00353521, 0x00363523, 0x00333524, 0x00323423, 0x00333220, 0x003a3125, 0x003d3125, 0x00443328, 0x00473227, 0x00473125, 0x00442f22, 0x00442f22, 0x00443123,
- 0x00413024, 0x0033271a, 0x007d746b, 0x00eae7de, 0x00fefdfa, 0x00fdfffb, 0x00fcfdfa, 0x00fffefd, 0x00c5c5c3, 0x004a4b47, 0x00070302, 0x000f0a04, 0x00221d18, 0x00211f1d, 0x001f1f20, 0x0015181c,
- 0x000f121a, 0x00080d12, 0x000c0d16, 0x0014121a, 0x0015141e, 0x00191726, 0x00201d32, 0x00272636, 0x002a293c, 0x00292837, 0x00272732, 0x00252732, 0x001b1d28, 0x00131420, 0x000f1019, 0x000e1118,
- 0x001d111c, 0x00100e11, 0x000a0f0e, 0x00020e08, 0x00060404, 0x00120100, 0x00330507, 0x00530b0a, 0x00760a04, 0x00881206, 0x00972c21, 0x008f4140, 0x00643e37, 0x003b2d26, 0x00252820, 0x001f2825,
- 0x002b2430, 0x002d2332, 0x00271e2d, 0x001f212e, 0x00162d33, 0x001c2e3b, 0x00242f3e, 0x002f3945, 0x00393d48, 0x0030343f, 0x002a2b36, 0x00292d36, 0x00353b47, 0x003e4955, 0x004e5965, 0x004e5b68,
- 0x00586074, 0x00606678, 0x0067697b, 0x006a687a, 0x006c6676, 0x006f6775, 0x00716875, 0x006d656e, 0x00635c67, 0x005f5a63, 0x005c595f, 0x005f5a5c, 0x00625a5e, 0x005c5555, 0x00524949, 0x004e4445,
- 0x0066595f, 0x008c858b, 0x00cac8cf, 0x00e0e0e9, 0x00d7dbe6, 0x00d2d5e0, 0x00d4d6e0, 0x00d5d8e1, 0x00d5d7df, 0x00d6dbdf, 0x00d4dddf, 0x00d2dedf, 0x00d1dee2, 0x00d1dee7, 0x00d0dee9, 0x00cedde9,
- 0x00d6e3f1, 0x00d1ddeb, 0x00c7d2e2, 0x00c2cde0, 0x00bfcadf, 0x00c3cde1, 0x00c6cedf, 0x00c9d1de, 0x00cdd5e0, 0x00cfd8de, 0x00d1dbe1, 0x00d4dde0, 0x00d9e1e6, 0x00dae3e5, 0x00dce7eb, 0x00e1eaee,
- 0x00dde4e9, 0x00dee5e9, 0x00d1dadd, 0x00ced8db, 0x00ccd7db, 0x00c8cbd7, 0x009496a5, 0x005a5d6d, 0x0040435b, 0x00535971, 0x006e758b, 0x007c8196, 0x006a6d7c, 0x00818189, 0x00e4e1e7, 0x00fdfcfa,
- 0x00fffffe, 0x00fcfcfa, 0x00fffeff, 0x00d6d6d3, 0x00474541, 0x00111208, 0x00202117, 0x00272a1d, 0x00262618, 0x00282b1c, 0x002b2e20, 0x0027291d, 0x0025261b, 0x00212318, 0x001a1d14, 0x0014180d,
- 0x000d100a, 0x00080d06, 0x00060b05, 0x00050c05, 0x00030a03, 0x00060c04, 0x000b0e06, 0x000d0e07, 0x0014130d, 0x00191510, 0x001d1610, 0x0021160e, 0x00281910, 0x002c1b12, 0x002d1b13, 0x002d1913,
- 0x0024110c, 0x00201924, 0x00505377, 0x006474af, 0x005265be, 0x004d5fba, 0x004d5ab7, 0x004954ae, 0x00414ca4, 0x003a499f, 0x0039479e, 0x003d46a3, 0x00394192, 0x00384191, 0x00354293, 0x00314297,
- 0x003448a0, 0x004e5fa8, 0x007170a5, 0x0063576f, 0x002b0d03, 0x00120000, 0x00180902, 0x0027160a, 0x00462c1e, 0x00563e29, 0x00543c23, 0x003a240e, 0x00230e01, 0x001c0902, 0x0021100a, 0x0023130d,
- 0x002a1c18, 0x00382925, 0x004e3f3b, 0x0060514e, 0x00786a6a, 0x0065595c, 0x0020191b, 0x000d080a, 0x000a0c0d, 0x000a1011, 0x00080e0f, 0x00090f0f, 0x0009100f, 0x000a100e, 0x000e1212, 0x000e1212,
- 0x00111416, 0x000f1313, 0x000f1212, 0x000e1213, 0x000d1210, 0x000b1215, 0x000b1117, 0x000a1017, 0x000c111c, 0x000d111c, 0x000d101c, 0x000d0f1b, 0x000e0e1b, 0x0011101f, 0x00141323, 0x00151325,
- 0x0016172b, 0x00191a2d, 0x001f1f32, 0x00201f32, 0x00201f30, 0x00201d2e, 0x00211d2c, 0x001f1b2a, 0x00211a29, 0x001f1926, 0x001e1625, 0x001d1425, 0x001b1326, 0x001a1229, 0x001b122c, 0x001b142e,
- 0x001a1330, 0x0017112d, 0x00140f2b, 0x00120d26, 0x00100d26, 0x00130d20, 0x00160d20, 0x00150d1f, 0x00181123, 0x00191324, 0x001b1625, 0x001b1624, 0x001b1623, 0x001a1622, 0x00191720, 0x0018171f,
- 0x00161b27, 0x00151a24, 0x00151920, 0x0063686b, 0x00e6eaeb, 0x00fcfffe, 0x00feffff, 0x00fafcfc, 0x00fffdff, 0x00d1ced5, 0x0046424e, 0x00060510, 0x00162848, 0x004e719b, 0x0077a1d7, 0x006fa6dd,
- 0x0070a0db, 0x006b9cd6, 0x006796d3, 0x005b8cc6, 0x00447cbf, 0x004077b4, 0x004276b3, 0x00487eb8, 0x005081bf, 0x004879b5, 0x003b6ba6, 0x003766a1, 0x003e6ca7, 0x00416ea8, 0x00416fa7, 0x003e6da5,
- 0x00386e9c, 0x003a6b9a, 0x00456fa2, 0x004d76aa, 0x004f82b8, 0x004d87bc, 0x004f82ac, 0x005b7c99, 0x009d8087, 0x00b87a77, 0x00c86552, 0x00cb451b, 0x00812011, 0x005e2024, 0x004a2832, 0x00423b43,
- 0x002f322e, 0x00222415, 0x001f1f13, 0x001c1b12, 0x0017131e, 0x00182a3f, 0x00547397, 0x006e95c4, 0x00648cd2, 0x005d8ed3, 0x005687cb, 0x005286c1, 0x005080b7, 0x00507dbb, 0x005079be, 0x005074c4,
- 0x003e6bb8, 0x003160ab, 0x002857a1, 0x0026569e, 0x002858a0, 0x0028589f, 0x0024539a, 0x00205095, 0x002f5ea2, 0x004475b8, 0x00608cca, 0x007c9dc7, 0x00737e91, 0x004c4546, 0x0047382c, 0x0065503e,
- 0x005a4f44, 0x00494843, 0x00515755, 0x00a2a7ab, 0x00f5f7fa, 0x00fcfefc, 0x00fffdff, 0x00f9fbff, 0x00f7feff, 0x00cedee1, 0x00697f83, 0x00536c70, 0x00526d72, 0x0059737a, 0x005a757c, 0x005a767d,
- 0x0067777f, 0x006b7d82, 0x0076888c, 0x00809196, 0x0087979e, 0x0087979f, 0x0084949b, 0x007e9094, 0x0078878f, 0x006a7b82, 0x005c6e77, 0x004a5b6a, 0x00314350, 0x00223442, 0x001d303e, 0x00233844,
- 0x00334553, 0x003b4e5b, 0x00445463, 0x00475665, 0x008d9dae, 0x00c6c6cb, 0x00706f77, 0x00596b77, 0x009abedb, 0x009ab9d9, 0x009cafcc, 0x008e8fa8, 0x0036242e, 0x0016080b, 0x001d1c13, 0x00162515,
- 0x002b1f10, 0x00352718, 0x003a2a1b, 0x00493826, 0x005e4b3b, 0x00654f3e, 0x005f493d, 0x00584639, 0x004f4038, 0x0052463e, 0x00645a4f, 0x006f6f57, 0x005e5c52, 0x0049494a, 0x00646570, 0x005e6475,
- 0x00464f64, 0x00444f6a, 0x005a6994, 0x006375ae, 0x006f7dc9, 0x008795ce, 0x0098a4d4, 0x009eaad9, 0x009ca9d0, 0x0099a8cb, 0x009eacca, 0x009daac7, 0x009ba9c6, 0x009eadc8, 0x00a1aece, 0x00a4b2d3,
- 0x00a9b4d2, 0x00a8b5d2, 0x00a8b6d2, 0x00a4b2ca, 0x00a0adc3, 0x009ba8be, 0x009fadc4, 0x00a2b2ca, 0x009ba7c5, 0x0097a3c1, 0x00a6b0cc, 0x00c2c7de, 0x00b4bbcd, 0x00a7aebc, 0x00bbc4cd, 0x00d5e0e6,
- 0x00e3eef4, 0x00c3cfdd, 0x00b0bdcd, 0x00a9b6ca, 0x009faac8, 0x009ba2c3, 0x00949dbb, 0x008a99b4, 0x00647590, 0x00445b77, 0x00264461, 0x00254966, 0x00274e6a, 0x002b5169, 0x0025495c, 0x00294b5b,
- 0x002d4b5f, 0x002c4c5f, 0x002b4c60, 0x002b4c5f, 0x002b4b5e, 0x002a4a5d, 0x0029495c, 0x0026495b, 0x0029485d, 0x0029485c, 0x0029495c, 0x0028495d, 0x0028495c, 0x0028495b, 0x0029495b, 0x002a495c,
- 0x00264957, 0x00264855, 0x00274854, 0x00254752, 0x00264752, 0x00274753, 0x00254553, 0x00244553, 0x00234753, 0x00214751, 0x00224551, 0x00203f48, 0x005d7478, 0x00c4d2d7, 0x00fafffe, 0x00f9fafb,
- 0x00fffcf9, 0x00fbfcf9, 0x00f8fdff, 0x00f7fefd, 0x00fdf9f1, 0x00d3b3a1, 0x007b4831, 0x00844529, 0x00814326, 0x00703a20, 0x005c3420, 0x00452f23, 0x003a251b, 0x00352218, 0x00302019, 0x002b1d19,
- 0x002f211a, 0x00302019, 0x0035231b, 0x0039261b, 0x003e291c, 0x00422c1c, 0x00422c1c, 0x00422b1b, 0x00452e23, 0x00452d22, 0x00422a20, 0x003f2a20, 0x003e2b24, 0x0043352d, 0x00534941, 0x005e544b,
- 0x006b6257, 0x00766d61, 0x00857a6e, 0x008d8276, 0x009a8d82, 0x009c8f84, 0x009f9288, 0x009f9388, 0x009e8f84, 0x00a09086, 0x00a39388, 0x00a49685, 0x00a7998a, 0x00a89a8c, 0x00a49589, 0x009f9286,
- 0x00978983, 0x008c7e78, 0x007c6d67, 0x0070605c, 0x0063524d, 0x005b4b42, 0x00524135, 0x004d3a30, 0x00523d2b, 0x005b4331, 0x00634735, 0x00674b3a, 0x00644c3b, 0x005e4837, 0x00553f2f, 0x0050392d,
- 0x00413524, 0x00382c23, 0x00352825, 0x00241a1f, 0x00312b2a, 0x007a7872, 0x00b5b3ad, 0x00989494, 0x00928d9b, 0x00b5b0c6, 0x00747baf, 0x003554b6, 0x00395694, 0x008b9dbf, 0x00dbe8f2, 0x00e2e5e0,
- 0x00ebe0df, 0x00ecdee1, 0x00e2d4d9, 0x00d7cdd2, 0x00d8d1cf, 0x00dcd9d6, 0x00dfdddb, 0x00e4e0e2, 0x00e9e9e6, 0x00ececec, 0x00eeedef, 0x00efebef, 0x00ebeaee, 0x00e9e6eb, 0x00e6e5ea, 0x00e6e5eb,
- 0x00e7e5e8, 0x00e6e3e9, 0x00e5e1e9, 0x00e3e0e8, 0x00e0dee6, 0x00dfdfe4, 0x00cfced2, 0x00bfbdc5, 0x00c4c3c9, 0x00ceccd1, 0x00d5d4d9, 0x00e4dde0, 0x00e1e0f6, 0x00dedffc, 0x009aa0c7, 0x008a93ba,
- 0x00d8e1f4, 0x00f2fcff, 0x00f9feff, 0x00fbfefe, 0x00fefdfa, 0x00f6f2dd, 0x00aa9a7b, 0x00735a36, 0x00774b1d, 0x007b4c1f, 0x007a4c22, 0x00784d24, 0x00785129, 0x00764f23, 0x00764d1a, 0x00774b16,
- 0x008f672e, 0x00ab8447, 0x00987335, 0x007c581b, 0x00795224, 0x007a5331, 0x007c553c, 0x008c6552, 0x00a8846b, 0x00a2805d, 0x00916d41, 0x00946a39, 0x00906431, 0x00875827, 0x00865525, 0x00875524,
- 0x00895425, 0x00885525, 0x00875525, 0x00815627, 0x00815825, 0x00805635, 0x0083553c, 0x0082533b, 0x00845336, 0x00865432, 0x008b5a32, 0x008a592d, 0x00845a25, 0x00856024, 0x00896829, 0x00917331,
- 0x0095702f, 0x008b652a, 0x0087622d, 0x00825e2e, 0x007f5f34, 0x00826138, 0x00816034, 0x0085602e, 0x00896028, 0x00885f22, 0x00855d29, 0x007a5e40, 0x0081634d, 0x008b7062, 0x0097827e, 0x00897c86,
- 0x00606a87, 0x004f5f7b, 0x0041536e, 0x004d5d70, 0x00565a64, 0x0061584f, 0x0078685a, 0x00756863, 0x007a7986, 0x00848c9e, 0x00758295, 0x00677987, 0x006e716d, 0x00786855, 0x00845f40, 0x00925936,
- 0x00925a23, 0x00845d3f, 0x006f5f5f, 0x00586083, 0x004d7ab4, 0x006996c6, 0x0081a5c8, 0x008d9ca8, 0x008a755e, 0x0089613a, 0x00875f31, 0x00746831, 0x007a6241, 0x00795f57, 0x00655162, 0x004d486c,
- 0x003e568a, 0x004e729d, 0x00467292, 0x00597a8c, 0x006a7f7a, 0x008b674b, 0x009e6539, 0x00975e2a, 0x00885522, 0x008b572a, 0x0083532a, 0x008a5e3b, 0x00ab805b, 0x00a47c4d, 0x00ab864b, 0x00a27c39,
- 0x008b684d, 0x00775236, 0x006f492f, 0x007b5542, 0x00866c5d, 0x0084756e, 0x006a635f, 0x003c3837, 0x002d2325, 0x00503d3e, 0x00654c4c, 0x0063443e, 0x006d5849, 0x008a7565, 0x00a08a78, 0x00a9897a,
- 0x00987164, 0x008a6256, 0x007c584f, 0x00bca297, 0x00fdfbf1, 0x00fbfbf4, 0x00fffffd, 0x00fffefd, 0x00fbfcfe, 0x00c1c2c5, 0x00686a6f, 0x0094979d, 0x00c8cbd2, 0x00dee2ea, 0x00e8edf6, 0x00e9edf9,
- 0x00edf0f6, 0x00f0f0f5, 0x00f1eef6, 0x00e9e4ef, 0x00e9e5ee, 0x00f1e9f3, 0x00f3edf7, 0x00f1f0f8, 0x00f5f4fa, 0x00f2f4fa, 0x00f2f5fb, 0x00f6f6fc, 0x00f3f6fc, 0x00f3f5fa, 0x00f0f3f9, 0x00edf2f9,
- 0x00f3f1fe, 0x00f3f4fe, 0x00f2f3fe, 0x00f2f2fe, 0x00f2f2fe, 0x00e8eafa, 0x00c6c9dc, 0x00b8bdcf, 0x00b8c0d3, 0x00c0c8da, 0x00bdc5d3, 0x009ea5b0, 0x00747a7d, 0x00707272, 0x00606159, 0x0049473e,
- 0x00373823, 0x00373723, 0x00343620, 0x00333520, 0x00353622, 0x00363623, 0x00353622, 0x00353421, 0x00333320, 0x0030321d, 0x0031311d, 0x0033321f, 0x0035331f, 0x0034321e, 0x0033321f, 0x0033321d,
- 0x0036351f, 0x00363520, 0x00373521, 0x00373522, 0x00363423, 0x00343424, 0x00343324, 0x00343223, 0x003a3025, 0x003e3227, 0x00443228, 0x00483328, 0x00463124, 0x00443122, 0x00443023, 0x00433125,
- 0x003d3221, 0x0031271a, 0x007c7669, 0x00eae7e0, 0x00fffdfa, 0x00fefffe, 0x00fafdf9, 0x00fefefe, 0x00c4c5c2, 0x004b4b47, 0x000d0a06, 0x00170e07, 0x00251f19, 0x002e2824, 0x002d2b2b, 0x001e1e1f,
- 0x00101319, 0x0006070c, 0x0009080e, 0x00110f14, 0x001a1518, 0x001b1523, 0x001f1a2d, 0x00232030, 0x00252334, 0x00272736, 0x00272835, 0x00262836, 0x00232636, 0x001e2331, 0x00131825, 0x000d101f,
- 0x00151014, 0x000c0e10, 0x00080d0d, 0x00040e0c, 0x000e0704, 0x001e0201, 0x00420c0b, 0x005d0f0b, 0x00780f0b, 0x00902017, 0x00993a32, 0x007b3f42, 0x004c302d, 0x00322b23, 0x00252e26, 0x00232e2b,
- 0x00292632, 0x00292232, 0x00231e2e, 0x00202230, 0x001b2c35, 0x00222f3c, 0x00262f3c, 0x002d3541, 0x002c333c, 0x00242a35, 0x00252c37, 0x002b333f, 0x0032424f, 0x003c4e5e, 0x00485c6f, 0x00485b72,
- 0x00526078, 0x0059647b, 0x005e667e, 0x0061667d, 0x0066667a, 0x006b697a, 0x006d6b78, 0x006b6871, 0x00686368, 0x00636166, 0x00656368, 0x00656068, 0x00666065, 0x005e565a, 0x00504847, 0x004a4140,
- 0x00786f6f, 0x00bab6b7, 0x00dedadd, 0x00dbd9de, 0x00d7d8e0, 0x00d4d6df, 0x00d4d4dd, 0x00d4d7de, 0x00d4d8dd, 0x00d4dbdd, 0x00d5dddf, 0x00d3dfe2, 0x00d4e1e6, 0x00d2dfe8, 0x00d0deea, 0x00d0deea,
- 0x00d1deec, 0x00cbd9e5, 0x00c7d3e2, 0x00c7d1e3, 0x00c3cee2, 0x00c5d0e3, 0x00cad2e4, 0x00ced8e5, 0x00d1d8e2, 0x00d1dae1, 0x00d2dadf, 0x00d4dee4, 0x00dbe3e7, 0x00dae2e7, 0x00dde3e9, 0x00dfe5ec,
- 0x00e8eff4, 0x00e7eef3, 0x00e5eef2, 0x00e1ebee, 0x00dbe5ea, 0x00dce2e9, 0x00d9dde6, 0x00b5b9c4, 0x0066687b, 0x004a4f62, 0x005f6479, 0x0071758b, 0x00757788, 0x007f7e88, 0x00d5d2d7, 0x00faf8f8,
- 0x00fefdfd, 0x00fdfefc, 0x00fffdfb, 0x00e7e7e5, 0x00696661, 0x001a1b14, 0x00212218, 0x0026291c, 0x0027291a, 0x00292d1c, 0x00282b1d, 0x0027291d, 0x00232419, 0x00202117, 0x00191b13, 0x0012150c,
- 0x000c1005, 0x00070d02, 0x00060c04, 0x00060e07, 0x00040c07, 0x00060d07, 0x000a0d07, 0x000c0c07, 0x00111007, 0x0016120b, 0x001b140f, 0x001f1410, 0x00241511, 0x00271712, 0x00281611, 0x0027140f,
- 0x001a0d0a, 0x00221d2f, 0x005e6589, 0x006171b0, 0x005265bc, 0x004a5cb5, 0x004956b2, 0x004851ab, 0x003e4ca1, 0x0037479e, 0x003944a0, 0x004043a3, 0x003a3e91, 0x003b4190, 0x00354190, 0x002f3f94,
- 0x0030419d, 0x00495aa2, 0x006268a0, 0x0047415a, 0x001d0601, 0x002a1407, 0x004c3520, 0x0068503a, 0x008d7356, 0x00a28667, 0x00997c59, 0x00775a38, 0x005d3f23, 0x00523821, 0x004f3824, 0x00483221,
- 0x0034241d, 0x00362620, 0x0044342e, 0x005b4c47, 0x00716362, 0x005e5354, 0x001c1417, 0x000c070a, 0x000a0b11, 0x000c0f14, 0x00090d14, 0x000b0f16, 0x000c1016, 0x000d1217, 0x00101419, 0x0010131a,
- 0x0014181e, 0x0013161e, 0x0013161b, 0x00111518, 0x00101417, 0x000e141b, 0x000e141e, 0x000e131d, 0x000e121c, 0x000d101c, 0x000e111d, 0x0010111e, 0x0011101f, 0x00121021, 0x00171426, 0x001b172b,
- 0x001d1c2e, 0x00212132, 0x00262436, 0x00282436, 0x00262233, 0x00262132, 0x00261f2f, 0x00241f2d, 0x00241c28, 0x00231928, 0x00211725, 0x00201524, 0x001f1429, 0x001d132a, 0x001c142c, 0x001d1530,
- 0x001b1631, 0x0018142f, 0x0016112b, 0x00130e28, 0x00100c25, 0x00130b21, 0x00150b1f, 0x00140b1f, 0x00140e1f, 0x00150f1f, 0x00161120, 0x00151220, 0x00151120, 0x0014111f, 0x0013131e, 0x0013141e,
- 0x00141724, 0x000f1420, 0x000f131d, 0x004d5156, 0x00d4d9d9, 0x00fafdfb, 0x00fefefe, 0x00fcfdfe, 0x00fffeff, 0x00dfdee0, 0x00605f67, 0x000a0a14, 0x001e3551, 0x00557da5, 0x006698cd, 0x006ba2db,
- 0x00669bd6, 0x00699cd3, 0x006696d1, 0x00598bc5, 0x00477fc2, 0x00447abb, 0x00477abb, 0x004b7cbb, 0x004b7bba, 0x004374b1, 0x003a6aa6, 0x003866a4, 0x003664a2, 0x003664a0, 0x003866a1, 0x003867a3,
- 0x00346c99, 0x003f709e, 0x004774a2, 0x004c77a5, 0x004a81af, 0x004986b5, 0x004785ad, 0x005184a6, 0x00838da3, 0x00a292a0, 0x00b97a76, 0x00dc592d, 0x00b2503e, 0x00834845, 0x00442e35, 0x00252a39,
- 0x000f1f18, 0x001d2110, 0x00322f1e, 0x003b3229, 0x002a2637, 0x00101d33, 0x002f4560, 0x005e7ea4, 0x006087c6, 0x00568acd, 0x004e83c8, 0x004981c2, 0x004779b9, 0x004d78b9, 0x005073b7, 0x004e6ab5,
- 0x003061a6, 0x002a5aa0, 0x0025559b, 0x00245499, 0x00235299, 0x00235399, 0x00215096, 0x00235299, 0x002f5fa3, 0x003e6eb3, 0x00527ebc, 0x00719ccc, 0x00849cb8, 0x005e6774, 0x00373536, 0x0049423b,
- 0x00504a44, 0x00484644, 0x0049494b, 0x00868889, 0x00eeedef, 0x00fcfdfd, 0x00fdfdfe, 0x00f7f9fb, 0x00f7fdff, 0x00e2edf0, 0x008b9fa2, 0x00647b7d, 0x005c7479, 0x00647e84, 0x00647e85, 0x00658088,
- 0x006a7d84, 0x006f8287, 0x007b8b91, 0x0085949b, 0x008c99a1, 0x008a98a0, 0x0085949c, 0x007f9097, 0x0077868e, 0x006d7f84, 0x0061737c, 0x00506270, 0x00374955, 0x00273946, 0x001c2e3c, 0x00213440,
- 0x002f4051, 0x003b4b5b, 0x00445563, 0x00425161, 0x006a7989, 0x00adb2bc, 0x008f95a1, 0x00798a9b, 0x0090b4d1, 0x0093b2d5, 0x009caecd, 0x0082859c, 0x002f2229, 0x001b0f0f, 0x00111008, 0x000e1709,
- 0x003b2820, 0x00443026, 0x00382212, 0x004b3620, 0x006a5739, 0x00614c32, 0x00544029, 0x00534332, 0x004e4037, 0x00493c38, 0x00574d44, 0x00726b51, 0x00696556, 0x004b4544, 0x0035323b, 0x001f2030,
- 0x00121a32, 0x00293354, 0x003a4579, 0x00354386, 0x00303a94, 0x004b559c, 0x00838bca, 0x009ca2db, 0x009aa7ce, 0x0099a8c7, 0x0096a4bd, 0x009aa8bf, 0x009eacc6, 0x00a3b0cd, 0x00a8b4d7, 0x00a5b1d8,
- 0x00a4b1cd, 0x00a4b3ce, 0x00a3b3cd, 0x00a0b1c9, 0x00a2b2c8, 0x00a0afc4, 0x009baac2, 0x009caac5, 0x009dabc9, 0x0097a5c4, 0x00a0aac6, 0x00bdc2d8, 0x00c0c6d7, 0x00acb3c1, 0x00a7b1ba, 0x00b3bfc6,
- 0x00e7f2f9, 0x00dee9f5, 0x00bdc7d7, 0x00a4b0c3, 0x0098a1bc, 0x00969bb8, 0x009ea6be, 0x00a3b1c9, 0x009eb0d0, 0x008398b8, 0x00405979, 0x002a4665, 0x002b4a66, 0x002e4e68, 0x00294861, 0x002f5068,
- 0x002f4c62, 0x002f4c63, 0x002e4d63, 0x002e4d63, 0x002f4c63, 0x002f4b61, 0x002d4b61, 0x002c4a61, 0x002d4a60, 0x002e4a5f, 0x002d4a5f, 0x002b495e, 0x002b495e, 0x002b495e, 0x002d4a5f, 0x002f4a60,
- 0x00294b5a, 0x00294959, 0x002b4859, 0x002b4858, 0x00294655, 0x002b4856, 0x00294757, 0x00284758, 0x00234855, 0x00244956, 0x00234654, 0x001f4049, 0x00435b60, 0x00a4b3b7, 0x00f7fdfc, 0x00f9fafc,
- 0x00fffbfe, 0x00fbfcfb, 0x00f9fefd, 0x00f4fefc, 0x00fcfcf2, 0x00dcbdad, 0x00844f39, 0x008b4a2f, 0x00874c32, 0x00733f26, 0x005d3521, 0x00442e23, 0x0038231b, 0x00332118, 0x002d1f18, 0x00291c18,
- 0x002d1c1a, 0x002f1e1b, 0x0033231b, 0x0037261a, 0x003c2a1d, 0x00432f1f, 0x0045301c, 0x00452f1c, 0x00493123, 0x00482f21, 0x00452d1f, 0x00432d21, 0x00473328, 0x004b3b30, 0x00594e41, 0x00685d50,
- 0x0072685e, 0x007b7167, 0x008c8176, 0x00958a7d, 0x00a09488, 0x00a2968a, 0x00a2978b, 0x00a1968b, 0x00a09489, 0x00a1958a, 0x00a5968c, 0x00a69788, 0x00a89a8c, 0x00ab9d8d, 0x00a79a8d, 0x00a1968a,
- 0x009c8d85, 0x008f817a, 0x007d6e69, 0x006f615c, 0x0062544f, 0x005d4d44, 0x00574337, 0x00533d31, 0x0058402f, 0x005f4634, 0x00644937, 0x00664b39, 0x00664c3b, 0x00604839, 0x00564133, 0x004f3c32,
- 0x00463826, 0x003e2f27, 0x00332624, 0x00281f21, 0x00201a1e, 0x00504c4e, 0x00b7b2b4, 0x00a9a2a7, 0x007c7184, 0x007a7089, 0x0066689e, 0x00334ab5, 0x00536aa1, 0x00aabccf, 0x00d5ded6, 0x00dfe2cc,
- 0x00efe2e2, 0x00eddde6, 0x00ebdbe5, 0x00e4d8dd, 0x00dbd3c6, 0x00d5d2cc, 0x00dadad9, 0x00e3e3e2, 0x00ecebec, 0x00ededee, 0x00f0f0f1, 0x00f1f1f1, 0x00eeeef1, 0x00ecebee, 0x00eae9eb, 0x00e7e7e9,
- 0x00e8e9ef, 0x00e8eaf0, 0x00e6e9ed, 0x00e4e6eb, 0x00e3e4ea, 0x00e8e8ed, 0x00e5e6ea, 0x00dee0e6, 0x00dbdadf, 0x00dbdae0, 0x00dbdce0, 0x00e8e7e8, 0x00e9e8fb, 0x00e2e5f9, 0x00a8abd0, 0x00949bbd,
- 0x00dae1f3, 0x00f7fbfd, 0x00fafefe, 0x00fcfefe, 0x00fcfcfb, 0x00f8edde, 0x00a58f73, 0x0070532f, 0x0079491c, 0x007e4b1d, 0x007d4c1e, 0x007c4e24, 0x00764e28, 0x007a5126, 0x007b5120, 0x007b4f19,
- 0x008e6c2e, 0x00ac8b47, 0x009b7b35, 0x0082621f, 0x007b5625, 0x00764e2c, 0x00734b33, 0x007d5342, 0x008d644e, 0x008d6446, 0x00885e37, 0x008e6536, 0x00946437, 0x008c582a, 0x008b5526, 0x00895323,
- 0x008b5023, 0x008b541f, 0x008b5621, 0x008a591f, 0x008b5a20, 0x0085562b, 0x00865736, 0x00885b36, 0x008b5534, 0x0087542c, 0x008a592e, 0x008c5c2f, 0x008e612d, 0x008b6129, 0x00846026, 0x00876727,
- 0x008d6a27, 0x0086662c, 0x00866a3a, 0x007e6642, 0x00796751, 0x007f6f60, 0x00827160, 0x00826c5b, 0x0083664c, 0x00806142, 0x00796149, 0x0069665f, 0x00746969, 0x00887b82, 0x00978c9c, 0x00847d97,
- 0x006e749c, 0x00414f6e, 0x0018223b, 0x001d252b, 0x00504e44, 0x00776754, 0x00937d6d, 0x007c6f69, 0x00767d93, 0x007f99b9, 0x005c81a6, 0x004e779c, 0x005e6f83, 0x00706662, 0x00815e46, 0x00915932,
- 0x00915b31, 0x007a5d49, 0x005f5962, 0x00405782, 0x00376aaf, 0x004476b5, 0x004f77a5, 0x005f7387, 0x00836757, 0x00905e40, 0x008a5c37, 0x00776243, 0x007b634f, 0x00765b57, 0x0052434c, 0x00322d43,
- 0x002c3e5f, 0x00405d79, 0x00526d83, 0x005b7386, 0x006c7683, 0x00886345, 0x00915421, 0x00905723, 0x00905b2a, 0x008a5729, 0x00845228, 0x007b4b24, 0x009e6f41, 0x00a1733e, 0x00b28649, 0x00ad813d,
- 0x008d5f3b, 0x00855737, 0x007a4e35, 0x00835846, 0x00937157, 0x009a805e, 0x0088724d, 0x0068552f, 0x006c5347, 0x0074595a, 0x00523d47, 0x00403742, 0x006d6669, 0x00a2958f, 0x00b1a094, 0x00b29283,
- 0x00a37567, 0x008c6053, 0x00775349, 0x00b5a093, 0x00fbfcf0, 0x00fdfdf4, 0x00fffefb, 0x00fdffff, 0x00fcfcfe, 0x00c0c0c3, 0x006a6b6f, 0x0095979d, 0x00c6c9d0, 0x00dbdee8, 0x00e6eaf5, 0x00e7ebf7,
- 0x00f0eff8, 0x00f1f2f8, 0x00eeedf4, 0x00e4e2ea, 0x00e6e1ea, 0x00efe7f1, 0x00f2ecf6, 0x00f1eff9, 0x00f5f5fd, 0x00f3f6fe, 0x00f2f7fd, 0x00f5f6fc, 0x00f3f5fa, 0x00f0f4f8, 0x00edf2f7, 0x00ecf1f8,
- 0x00f6f6fe, 0x00eff2ff, 0x00f3f5ff, 0x00f3f4ff, 0x00f0f2ff, 0x00ebeefb, 0x00e7e9f4, 0x00c7ccdd, 0x00bfc5dc, 0x00949cb0, 0x008b94a5, 0x00a0a9b6, 0x00777e85, 0x00717576, 0x00686964, 0x004f4e47,
- 0x00373823, 0x00363622, 0x00353520, 0x0034351f, 0x00353522, 0x00363724, 0x00343722, 0x00343521, 0x0033331e, 0x002f311b, 0x002f311c, 0x0032321e, 0x00353320, 0x00343320, 0x00333220, 0x0033321f,
- 0x00353420, 0x00353520, 0x00363421, 0x00373422, 0x00373423, 0x00343422, 0x00333323, 0x00343124, 0x003d3126, 0x00413327, 0x00453328, 0x00473328, 0x00453226, 0x00423124, 0x00423223, 0x00413222,
- 0x003c3321, 0x002f281a, 0x007a7768, 0x00e9e9de, 0x00fefefa, 0x00fcfffe, 0x00fafcfa, 0x00fffdff, 0x00c7c6c6, 0x004f4f4b, 0x000f0a04, 0x001c1209, 0x002d241e, 0x00443e3a, 0x0054504f, 0x00464445,
- 0x00222325, 0x00080a09, 0x00020102, 0x00090506, 0x00151010, 0x001d1722, 0x001a1528, 0x00181626, 0x00181928, 0x001a1b2b, 0x001c1d2d, 0x001e1f30, 0x00222537, 0x00212737, 0x00191f2e, 0x0015192a,
- 0x00100f1e, 0x000f1421, 0x0010181e, 0x000c151a, 0x0025100f, 0x00420f0f, 0x00651712, 0x007d140d, 0x0099231f, 0x00ad3933, 0x009f4240, 0x00623b3c, 0x003b2c28, 0x002f302c, 0x00273232, 0x001f3131,
- 0x00262935, 0x00262733, 0x00262533, 0x00232733, 0x00212f3a, 0x00282e3c, 0x002b2e3c, 0x002b333d, 0x00232734, 0x001b2330, 0x0025303d, 0x002a3847, 0x002f4357, 0x003b5169, 0x00455e79, 0x0045617e,
- 0x004a5f83, 0x004f6182, 0x00546381, 0x0057637d, 0x005c6479, 0x00616677, 0x00626774, 0x0064676f, 0x0067656c, 0x006b6a6b, 0x006e6e6e, 0x0069696d, 0x00615f62, 0x00595455, 0x004f4946, 0x004d4744,
- 0x009a8f8d, 0x00d5cfce, 0x00d8d4d3, 0x00d1cfcf, 0x00d5d8d9, 0x00d0d4d7, 0x00d3d5d9, 0x00d5d7da, 0x00d6dbde, 0x00d6dbde, 0x00d5dce0, 0x00d3dde1, 0x00d7e2e9, 0x00d4e1ea, 0x00cfdce8, 0x00d1deeb,
- 0x00cedce7, 0x00c8d6e1, 0x00c7d2e0, 0x00cad4e5, 0x00c8d2e4, 0x00c6cfe1, 0x00cad2e2, 0x00d1d8e6, 0x00d3dbe6, 0x00d4dde2, 0x00d5dfe3, 0x00dbe3e9, 0x00dae2e7, 0x00dae1e7, 0x00d9e2e6, 0x00dbe5e7,
- 0x00e3ebf1, 0x00e5edf3, 0x00ecf3f8, 0x00ebf3f8, 0x00eaf3f7, 0x00eaf3f5, 0x00e6ecf0, 0x00e1e7f0, 0x00b1b6c5, 0x00767b8a, 0x0057596c, 0x006b6b80, 0x00706f82, 0x007c7a8a, 0x00cac8d2, 0x00f4f4f8,
- 0x00fcfbfc, 0x00fdfdfc, 0x00fffffe, 0x00f4f4f2, 0x00858480, 0x0025271f, 0x001f2117, 0x00242719, 0x002b2c1f, 0x002a2e1f, 0x0026291c, 0x0027281d, 0x00232319, 0x001f2016, 0x00181911, 0x0013120a,
- 0x000d120a, 0x000a0e06, 0x00080c05, 0x00090e07, 0x00090d07, 0x00080d06, 0x00090c07, 0x000b0d08, 0x000f0f08, 0x0013110b, 0x0019130f, 0x001d1411, 0x00211412, 0x00231411, 0x0022130e, 0x0020110c,
- 0x0012070d, 0x00232137, 0x00656d95, 0x005c6daf, 0x005062be, 0x004857b5, 0x004753b1, 0x004750aa, 0x00414da3, 0x003b4ca2, 0x003b46a0, 0x003f41a0, 0x003d3f95, 0x003a3f91, 0x00364092, 0x002d3d92,
- 0x003046a1, 0x004254a2, 0x005c609c, 0x0034314f, 0x00251208, 0x00482f1a, 0x0078573a, 0x00977657, 0x00b69268, 0x00c6a275, 0x00b99665, 0x00a68353, 0x0098744b, 0x0096754e, 0x008e714c, 0x007e6140,
- 0x00543f32, 0x003c281d, 0x0039251c, 0x0054423a, 0x006d5d59, 0x00574a49, 0x00170f10, 0x000d070b, 0x00100f16, 0x00101119, 0x000c0f19, 0x000c0f1b, 0x000f111c, 0x0011121e, 0x00131520, 0x00131721,
- 0x001a1c29, 0x00181b28, 0x00171a26, 0x00161921, 0x00151622, 0x00131821, 0x00111821, 0x00111520, 0x000e111d, 0x000d101c, 0x000f101d, 0x0011111f, 0x00131022, 0x00151223, 0x001a1626, 0x001e1a2a,
- 0x00252032, 0x00292436, 0x002c2637, 0x002b2435, 0x002a2332, 0x002c2432, 0x002d2430, 0x002c242f, 0x002a1f2c, 0x00271e29, 0x00261a27, 0x00251927, 0x0024192c, 0x0022182f, 0x00221732, 0x00211934,
- 0x001f1835, 0x001c1631, 0x0019132d, 0x00151027, 0x00100c23, 0x0010091d, 0x0011081c, 0x0010071b, 0x0011091d, 0x00120b1c, 0x00120e1e, 0x0012101f, 0x00120e1f, 0x00100d1e, 0x000f0e1e, 0x0011101f,
- 0x000e1121, 0x000d121f, 0x000e121c, 0x0031353b, 0x00bec2c4, 0x00f7f9fb, 0x00fefeff, 0x00fdfdfe, 0x00fffdff, 0x00ecebef, 0x007e7e85, 0x000f131f, 0x00253c57, 0x005f85af, 0x006496c7, 0x00619cd2,
- 0x005d91cb, 0x005e91cb, 0x005c90c8, 0x005589c3, 0x004980c1, 0x00487cc0, 0x00497cbe, 0x00477bba, 0x004477ba, 0x003c6eb0, 0x003565a6, 0x003261a1, 0x002f5e9d, 0x002e5c9a, 0x002f5c98, 0x002f5b98,
- 0x00336395, 0x00376391, 0x00456c98, 0x0050779f, 0x004d7da6, 0x004680ad, 0x004284ae, 0x004284b1, 0x00638fb8, 0x007d9dc3, 0x00a194a5, 0x00cf7260, 0x00b85943, 0x007d3829, 0x00381109, 0x001f1b1b,
- 0x00101f18, 0x001b1f0d, 0x002c2b1b, 0x0037302a, 0x0025263e, 0x00141b2e, 0x000a172b, 0x003a5473, 0x005980b7, 0x00568ace, 0x004880ca, 0x003e7ac8, 0x004175c2, 0x004773bc, 0x00496db3, 0x004561a8,
- 0x002e5da1, 0x0029599c, 0x00265698, 0x00255597, 0x00225097, 0x001f4e95, 0x00215096, 0x0026559c, 0x00315fa7, 0x003b6bb1, 0x004d7cbf, 0x006596cd, 0x007ea1ca, 0x00728ba4, 0x003e4c5c, 0x003a3d43,
- 0x004a4649, 0x004b4648, 0x00474144, 0x00726b71, 0x00e1dae1, 0x00f9f8fa, 0x00fbfcfb, 0x00fbfefe, 0x00fbfffe, 0x00eff7fa, 0x00aebdc1, 0x0076888d, 0x00687d84, 0x006f878f, 0x006f878f, 0x006f8790,
- 0x0077868e, 0x0076868e, 0x007e8f95, 0x0088999e, 0x008e9da4, 0x008c9aa2, 0x0087959d, 0x00808e97, 0x007c8b93, 0x00728289, 0x00667780, 0x00546674, 0x003d4e5b, 0x00293b49, 0x001b2e3b, 0x001c2f3c,
- 0x00303e4e, 0x00364957, 0x00445461, 0x00445461, 0x004d6372, 0x008a949d, 0x00a3aab6, 0x008fa2b3, 0x0091adc8, 0x0098accc, 0x00a2acc3, 0x00787683, 0x002d1f1c, 0x001a0e02, 0x00110e00, 0x001c1b07,
- 0x004e332e, 0x00553b30, 0x00482e1b, 0x00644c2d, 0x0078623a, 0x0068522d, 0x00594727, 0x00584931, 0x00433830, 0x00392f2d, 0x004e4239, 0x00665a41, 0x00716559, 0x005d5253, 0x002a222b, 0x000f0c1c,
- 0x00373951, 0x00525777, 0x00333c6a, 0x001a2264, 0x00262b7f, 0x002e3387, 0x00565ca9, 0x008a91d1, 0x009faad6, 0x0099a8c5, 0x009baabe, 0x009dacbc, 0x009dacc2, 0x00a0adca, 0x0099a5ca, 0x00909bc8,
- 0x008e9ebb, 0x0090a1bc, 0x0091a2bb, 0x0095a7bd, 0x009caec2, 0x00a1b2c6, 0x009cacc2, 0x009dacc5, 0x00a0aecd, 0x0097a6c7, 0x009aa7c4, 0x00b5bbd2, 0x00bfc3d6, 0x00acb0c0, 0x009fa8b2, 0x00a2aeb6,
- 0x00d3dce9, 0x00ecf6fd, 0x00cad1e1, 0x00acb3c9, 0x009ea5bb, 0x00989cb5, 0x009499b4, 0x009fa9c6, 0x00a3b7d9, 0x009eb2d2, 0x007a8eac, 0x00506380, 0x00334663, 0x00364b69, 0x00324869, 0x00314b6e,
- 0x00344d69, 0x00344d69, 0x00334d67, 0x00324d66, 0x00344c68, 0x00334b67, 0x00324c66, 0x00334b66, 0x00324b66, 0x00314a66, 0x00304a65, 0x002f4a63, 0x00314963, 0x00314962, 0x00304a61, 0x00304a60,
- 0x002f4a5f, 0x002d485c, 0x002c485a, 0x002b495a, 0x002c495b, 0x002d485b, 0x002d495a, 0x002b4858, 0x00244b59, 0x00254956, 0x00254853, 0x00274752, 0x0032474f, 0x00819097, 0x00eff8fc, 0x00fbffff,
- 0x00fffbfc, 0x00fefdff, 0x00fafeff, 0x00f5fdff, 0x00fdfef4, 0x00e3c5b7, 0x0085523b, 0x008f4e34, 0x00864731, 0x0078402b, 0x005a3220, 0x003f2b22, 0x0034231d, 0x002c1d16, 0x00281c16, 0x00261a16,
- 0x00271916, 0x00271a16, 0x002d1d16, 0x00342119, 0x003a2820, 0x003f2d1f, 0x0044321d, 0x00483822, 0x0051372b, 0x004b3024, 0x00442a1d, 0x00422b1c, 0x004a3426, 0x00524032, 0x005f5142, 0x006f6253,
- 0x00776b60, 0x0081756d, 0x008f837a, 0x00958b7f, 0x009f958b, 0x00a1978b, 0x00a2998b, 0x00a1988c, 0x00a49a8e, 0x00a3998e, 0x00a59b8f, 0x00a69c8c, 0x00a89e8e, 0x00ab9f8f, 0x00a6998d, 0x009f9188,
- 0x0095877f, 0x00887c74, 0x00786a62, 0x006c5d56, 0x005e514a, 0x005b4d3f, 0x00574634, 0x00544131, 0x005d4136, 0x0062473a, 0x00654b39, 0x00644b37, 0x00644c3c, 0x0060493d, 0x00584337, 0x00533f33,
- 0x00463828, 0x003a2d26, 0x00302524, 0x002a2228, 0x00221e26, 0x00302f30, 0x008d8d8c, 0x00c1bfc1, 0x00908394, 0x0082718c, 0x00665e91, 0x0036479f, 0x007c89b1, 0x00c6d2db, 0x00cfd5c7, 0x00d4d8c1,
- 0x00dfd4d3, 0x00e1d2dd, 0x00e2d2df, 0x00e1d5da, 0x00e0d7cb, 0x00d7d3ca, 0x00d2d3cc, 0x00d5d6d2, 0x00e5e2e5, 0x00ede9ea, 0x00ededeb, 0x00efeeed, 0x00f2f2f4, 0x00f1f0f4, 0x00ecedef, 0x00ebebed,
- 0x00eae9ef, 0x00e9e8ee, 0x00eaeaee, 0x00edeef2, 0x00e9eaf1, 0x00eaedf1, 0x00e8ebec, 0x00e6e9eb, 0x00e5e7ee, 0x00e6e8ee, 0x00e2e6e7, 0x00e9eee7, 0x00e7e6f3, 0x00eef0fa, 0x00bab8d9, 0x009c9ebc,
- 0x00dbe0ef, 0x00f7fafc, 0x00fafffe, 0x00fcfefc, 0x00fcfdf8, 0x00f7ecd8, 0x00a08c6a, 0x0072522a, 0x007f4a1f, 0x00804a1f, 0x007f4c21, 0x007a4c25, 0x00754d2c, 0x00795028, 0x007b5123, 0x007e5020,
- 0x00896525, 0x0095712e, 0x00957330, 0x008d6b2a, 0x00805928, 0x00724a25, 0x006e482b, 0x00724b34, 0x007e513b, 0x007e5335, 0x007f542e, 0x0081572a, 0x0088572f, 0x00875429, 0x008a5429, 0x008f572c,
- 0x008e5426, 0x008c5323, 0x008b5424, 0x0088561f, 0x008f6226, 0x00996f33, 0x009c7438, 0x00906630, 0x00895424, 0x00885627, 0x00895828, 0x008c5f30, 0x00976a3f, 0x0091683e, 0x00865f37, 0x00835f34,
- 0x00816828, 0x00806b39, 0x0081754f, 0x006e6858, 0x006a6d76, 0x007b8195, 0x008c92a7, 0x009a9bb7, 0x00908197, 0x00847285, 0x006b6773, 0x00596d79, 0x00565d6d, 0x00494a5e, 0x00454056, 0x00423e5a,
- 0x004e4a66, 0x00525163, 0x00382f37, 0x00352217, 0x00593c1e, 0x00826348, 0x00846a53, 0x005a493e, 0x004e5364, 0x00526a8a, 0x005a81a8, 0x0043709c, 0x00566a83, 0x00716965, 0x00815d3f, 0x00945c28,
- 0x00856340, 0x00735b4f, 0x0060545d, 0x004e5172, 0x00415583, 0x00334567, 0x00222f40, 0x00232022, 0x005e3d2e, 0x008b5744, 0x00865642, 0x00775750, 0x0082605d, 0x00785a53, 0x006b584c, 0x00645746,
- 0x005a5943, 0x005d5c4f, 0x00635a54, 0x005d4b50, 0x0066475b, 0x00845b35, 0x00875a19, 0x00865a21, 0x00865d35, 0x007e5734, 0x0073532f, 0x006c502f, 0x00846441, 0x00785735, 0x008b6a45, 0x00916e4b,
- 0x00885d3a, 0x007f5438, 0x00845845, 0x00926657, 0x009a7456, 0x00997b4c, 0x00836732, 0x007a612f, 0x00997c69, 0x009d7f82, 0x0080727f, 0x006f7e97, 0x008e96a8, 0x00828389, 0x0065605d, 0x007f6a63,
- 0x00916f64, 0x0078554c, 0x006d534c, 0x00b8aaa3, 0x00f6fefa, 0x00fbfdfa, 0x00fdfdfa, 0x00fdfefb, 0x00fefdff, 0x00bebfc2, 0x0066686b, 0x00909398, 0x00c1c5cc, 0x00dadfe8, 0x00e6edf6, 0x00e7eef7,
- 0x00eef2f8, 0x00eef0f7, 0x00eae9f0, 0x00e3e1e9, 0x00e9e1ec, 0x00f1ecf4, 0x00efebf1, 0x00edeaf2, 0x00f5f3fb, 0x00f7f4fe, 0x00f1f5fc, 0x00eff5fa, 0x00eef4fa, 0x00f0f3fa, 0x00edf3f9, 0x00eef3fb,
- 0x00f0f3fe, 0x00eff2fe, 0x00eff4fd, 0x00f0f4fd, 0x00f0f3fe, 0x00eef3fc, 0x00e8f1f6, 0x00e7eff8, 0x00d3d7f1, 0x00949cb4, 0x00727d90, 0x00aeb9c8, 0x00868f96, 0x006d7274, 0x006f726c, 0x0051534a,
- 0x00363725, 0x00343422, 0x00343520, 0x0034351f, 0x00363422, 0x00373723, 0x00353821, 0x00353620, 0x00363522, 0x0032311f, 0x002e2f1b, 0x002f301b, 0x00332f1d, 0x0033301d, 0x0032321d, 0x0035321f,
- 0x00363320, 0x00353420, 0x00343420, 0x00363422, 0x00363422, 0x00333522, 0x00323423, 0x00353026, 0x003d3028, 0x00433228, 0x00453325, 0x00463425, 0x00443123, 0x00413023, 0x00403223, 0x00403222,
- 0x003a3323, 0x002f281d, 0x00797568, 0x00eae8de, 0x00fffdf9, 0x00fcfefc, 0x00f9fef9, 0x00fdfefd, 0x00c7c3c5, 0x00524e4d, 0x00110a03, 0x001d1106, 0x00312823, 0x005e5853, 0x00888582, 0x007d7b7c,
- 0x004a4a48, 0x00131013, 0x00060504, 0x00080502, 0x000d0504, 0x00151015, 0x0016161d, 0x00171721, 0x0017101d, 0x00130f1d, 0x0013131f, 0x0010131e, 0x00161826, 0x001a1b2b, 0x001c1d2b, 0x001d1f2d,
- 0x0010172c, 0x00101930, 0x001c2339, 0x001c1e32, 0x00401a1c, 0x006d231f, 0x00922e1e, 0x00a3250e, 0x00bd372e, 0x00c64441, 0x008d3533, 0x0040302e, 0x00332d2e, 0x00333538, 0x00273337, 0x00233238,
- 0x001f2836, 0x00202736, 0x001f2536, 0x00222635, 0x00272e3b, 0x00292d38, 0x00262a36, 0x00212432, 0x00191b2e, 0x001b2031, 0x00232d3d, 0x00263447, 0x002b435a, 0x00344f6c, 0x003f5d7f, 0x00456689,
- 0x0048628a, 0x004d6589, 0x00506789, 0x004e6481, 0x004f6076, 0x00516070, 0x0054616b, 0x005c656a, 0x006e6972, 0x00726e72, 0x00716f6f, 0x006c6b6d, 0x00646161, 0x005e5858, 0x004c4540, 0x00666056,
- 0x00b8aca1, 0x00dad0c7, 0x00d2cbc1, 0x00d2cec4, 0x00d7d6d0, 0x00cfd1ce, 0x00d4d5d4, 0x00d9d8d8, 0x00dadbe0, 0x00dadce3, 0x00d9dde4, 0x00d6dee4, 0x00d4dfe7, 0x00d2dfe8, 0x00d1dfe8, 0x00d0dee9,
- 0x00ccd9e1, 0x00ccd8e3, 0x00ccd7e4, 0x00c8d5e3, 0x00c7d2e3, 0x00c7d2e1, 0x00cbd6e1, 0x00d0d9e2, 0x00d8dce9, 0x00d9dee4, 0x00d7e0e1, 0x00d5e0e4, 0x00dae2e6, 0x00dce4eb, 0x00dde5eb, 0x00dfe7ed,
- 0x00dce4ed, 0x00dde3ec, 0x00dfe6ec, 0x00e2ecf0, 0x00f1f8fc, 0x00f1fcfa, 0x00eefaf8, 0x00eaf1f7, 0x00e4e6f5, 0x00bcbdcb, 0x007a7b8c, 0x005d5f6e, 0x006a6b7a, 0x006d6d7d, 0x00b5b6c0, 0x00f4f4f7,
- 0x00fdfcfb, 0x00fefcfe, 0x00fdfdfc, 0x00fbfbf9, 0x00a1a49e, 0x00363830, 0x001b2012, 0x0023281b, 0x002e2c20, 0x0029291e, 0x00292a1e, 0x0026261a, 0x0025251b, 0x00202218, 0x00191b10, 0x0016160d,
- 0x000a1009, 0x00090c06, 0x00060b06, 0x00080f0a, 0x000c110c, 0x000a100a, 0x00070d05, 0x000b0d05, 0x000f0d0f, 0x00120f0f, 0x0016110f, 0x0019120e, 0x001c1311, 0x001c1311, 0x001b1111, 0x001a1111,
- 0x000f0a13, 0x002f314d, 0x006c78a3, 0x00586cb0, 0x004c5eb7, 0x004a5ab2, 0x004553ab, 0x004651a8, 0x00424aa3, 0x003b4ca3, 0x003a46a1, 0x003d3e9b, 0x003d4093, 0x003a408f, 0x00353e91, 0x002f4097,
- 0x002e43a0, 0x004152a2, 0x00484d88, 0x00221e3c, 0x002f1812, 0x004e3117, 0x0078562c, 0x00a07c51, 0x00d3aa7d, 0x00dcb180, 0x00c49b62, 0x00b78f55, 0x00b18853, 0x00a88250, 0x008a6737, 0x006b481d,
- 0x00553922, 0x00583d2a, 0x00442c1b, 0x00523e30, 0x005f4f46, 0x00413631, 0x00130e0c, 0x00080508, 0x00160f1c, 0x0014111f, 0x000e0f1e, 0x000d1020, 0x00121424, 0x00161726, 0x00171927, 0x00191e2a,
- 0x001b1c2c, 0x00191b2b, 0x00181b2a, 0x00181a28, 0x0018182b, 0x00161a25, 0x00141b23, 0x00131824, 0x00151426, 0x00131324, 0x000f0f1e, 0x000c0c1c, 0x00100f24, 0x0018152b, 0x001e192f, 0x00221b32,
- 0x00292230, 0x002b2231, 0x002e2533, 0x00302734, 0x00332835, 0x00312530, 0x002f242e, 0x0030232c, 0x002e1d2b, 0x002c1b2a, 0x00281a26, 0x00251a25, 0x00271a2d, 0x00251a30, 0x00241a31, 0x00261a35,
- 0x00201534, 0x001c132f, 0x001a112a, 0x00140f24, 0x00100a1f, 0x000f081a, 0x00120719, 0x0010061a, 0x00120821, 0x0011081e, 0x000f0a1d, 0x000e0b1e, 0x000e0a1e, 0x000d081e, 0x000d091f, 0x00100b22,
- 0x00070a1d, 0x00101223, 0x00080b18, 0x0020242c, 0x009fa2a4, 0x00f5f8f7, 0x00f9fbfa, 0x00fbfbfb, 0x00ffffff, 0x00fef9ff, 0x0095949c, 0x0018252c, 0x002c4963, 0x005a84ad, 0x00598fbf, 0x005791c9,
- 0x005386c2, 0x005687c2, 0x005a8bc5, 0x00588ac5, 0x00477dbf, 0x004377b8, 0x003f70b1, 0x003868ad, 0x003663a8, 0x00325ea2, 0x002c589a, 0x00285593, 0x002a5795, 0x00295694, 0x00285392, 0x0028528f,
- 0x0030528b, 0x00325386, 0x003e5b89, 0x0048678b, 0x00466d97, 0x0043729f, 0x004179a9, 0x00407bb4, 0x005a8fc8, 0x0072a3da, 0x0087a1cb, 0x009e87a4, 0x00bd695a, 0x00a34520, 0x00570801, 0x00300604,
- 0x000b1811, 0x000d170c, 0x00161c13, 0x002b2a22, 0x0027253a, 0x000d151e, 0x00010911, 0x000f2334, 0x00436590, 0x005380be, 0x00457ac2, 0x003674c6, 0x00356dc3, 0x00386cbc, 0x003465af, 0x003763a9,
- 0x00315f9f, 0x002c5a9c, 0x0028589a, 0x00255496, 0x001f4d92, 0x001d4a8f, 0x001c498e, 0x002d5ba2, 0x003760aa, 0x00375eac, 0x004775b9, 0x00568cc4, 0x006b99ca, 0x007395c0, 0x00607d9b, 0x003d4d61,
- 0x003d3f44, 0x00444245, 0x00443c3e, 0x005a5056, 0x00c9bfc9, 0x00f6f4f9, 0x00fafcfb, 0x00f8fefa, 0x00ffffff, 0x00f8fcff, 0x00cad5d8, 0x008a989a, 0x00708185, 0x00788d92, 0x00758990, 0x00798d96,
- 0x007f8e96, 0x007f8c97, 0x00829399, 0x00889b9f, 0x008f9da5, 0x008b9aa0, 0x0084969a, 0x00829199, 0x007b8b92, 0x0073818a, 0x00687982, 0x00556876, 0x00445463, 0x00314351, 0x001b2f3b, 0x001f2f3e,
- 0x00293847, 0x00314353, 0x00405262, 0x00465766, 0x004c5e6b, 0x00666f71, 0x00838c8c, 0x008e9ba2, 0x009598b2, 0x00aaabbf, 0x00a7a7b1, 0x006d675f, 0x00281405, 0x00231102, 0x002d1c02, 0x004e3a17,
- 0x0069493e, 0x00725140, 0x00705137, 0x008b6e48, 0x009b8051, 0x00937c50, 0x0075633a, 0x00665435, 0x00524239, 0x00423230, 0x00564740, 0x0063543e, 0x006c5f57, 0x00625455, 0x0042383c, 0x00342f36,
- 0x00484a4d, 0x0032373f, 0x000b121e, 0x00030a26, 0x001f2456, 0x00262b70, 0x00363a85, 0x005a5fa1, 0x009fa8d5, 0x009ea8c7, 0x00a0adc2, 0x0095a5b4, 0x008f9db3, 0x008d9ab6, 0x008491b3, 0x008892bb,
- 0x00909fb6, 0x0093a3b8, 0x008fa0b4, 0x008899ab, 0x008e9daf, 0x0095a4b5, 0x0093a3b5, 0x0099aabe, 0x00a1b0cf, 0x009eacce, 0x0099a4bf, 0x00b3bacc, 0x00c5cedd, 0x00abb4c1, 0x00a1aab5, 0x009fa7b5,
- 0x00bcc4ce, 0x00e9f2f9, 0x00dbe2ef, 0x00b9bfcd, 0x00a3a9ba, 0x00999fb4, 0x00969fb3, 0x009fadc8, 0x009cb1db, 0x009eacd2, 0x00a6b0cd, 0x008589a1, 0x004b4c64, 0x003f4561, 0x00414d70, 0x003a4c72,
- 0x00384b6f, 0x00384a6e, 0x00374b6b, 0x00364b6a, 0x00374a6e, 0x00374c6e, 0x00374d6c, 0x00384e6c, 0x003b4c6f, 0x00384b6d, 0x00334b6a, 0x00314b65, 0x00334a64, 0x00334b66, 0x00334c67, 0x00334d66,
- 0x00324962, 0x00314960, 0x002f485d, 0x002f495d, 0x002f485e, 0x002e475c, 0x002c495a, 0x00294a58, 0x0027495c, 0x0028475a, 0x00224653, 0x00214751, 0x002a434c, 0x005e7277, 0x00d7e7e8, 0x00f6fdfc,
- 0x00f8fdf4, 0x00f6fdf6, 0x00f9fefb, 0x00f6fffe, 0x00fffbf7, 0x00e7c9bc, 0x00905948, 0x008d4b37, 0x007b4224, 0x006c3b1f, 0x00522c1b, 0x003c2922, 0x0031221c, 0x002a1c17, 0x00271a18, 0x00261a1a,
- 0x001c150d, 0x001f170f, 0x002a1a14, 0x00301f19, 0x0038261e, 0x003d2d20, 0x00473425, 0x004d3829, 0x004b3823, 0x0046311e, 0x00462c1c, 0x00492e21, 0x004c372a, 0x00554335, 0x00675548, 0x00746355,
- 0x00756e5d, 0x00807768, 0x008f8477, 0x00988d81, 0x009e968a, 0x00a29b8f, 0x00a59c91, 0x00a89c93, 0x009f9d8d, 0x009f9e8c, 0x00a49e90, 0x00a89d91, 0x00a89c8f, 0x00a99e92, 0x00a4988e, 0x009d9184,
- 0x008d8474, 0x007f7768, 0x0072655b, 0x00685a52, 0x005a4f45, 0x005a493e, 0x005e4639, 0x005c4435, 0x0059442e, 0x005f4934, 0x00664d3a, 0x00684d3c, 0x00644d3c, 0x00604b3e, 0x0058443a, 0x00513f38,
- 0x00423721, 0x00372d21, 0x002f2627, 0x002a232b, 0x00201f26, 0x00161518, 0x006a6a6c, 0x00b8b3b6, 0x00a6a0a4, 0x00a397a5, 0x008880a5, 0x00565c9e, 0x009a9dbb, 0x00d7dde3, 0x00d9d6d2, 0x00dad6c9,
- 0x00cacabe, 0x00cdc5c5, 0x00cec1c5, 0x00d0c6c5, 0x00d2cdc0, 0x00d6d1cb, 0x00d7d2d1, 0x00d6d0ce, 0x00d0d1c9, 0x00d7d7d2, 0x00e3e0df, 0x00eae8e8, 0x00edebeb, 0x00eeebed, 0x00f0ecf1, 0x00f2ecf4,
- 0x00e8ebeb, 0x00e5e8ea, 0x00e9e8ee, 0x00ecebf0, 0x00eeeff2, 0x00eceef1, 0x00edecf2, 0x00ebebf2, 0x00e1e9e4, 0x00e3e9e9, 0x00e7ebec, 0x00e9ede8, 0x00e2e3ee, 0x00edeef9, 0x00c1bfdf, 0x00a6a4c3,
- 0x00d9e2e3, 0x00f2fbf7, 0x00fbfeff, 0x00fdfefe, 0x00fafcfa, 0x00fbebd9, 0x00a58b6e, 0x00714d2c, 0x00744716, 0x0079491a, 0x007b4a24, 0x00794e27, 0x00774f2d, 0x0079502c, 0x007c5129, 0x007d5128,
- 0x00745314, 0x007c5b16, 0x00856223, 0x00825e21, 0x00785321, 0x00714c22, 0x00754b2c, 0x00784e37, 0x0074552b, 0x00755629, 0x007a5728, 0x007f5727, 0x00855528, 0x00845426, 0x008a542b, 0x008d562f,
- 0x00845321, 0x00845521, 0x00855425, 0x00835224, 0x00936838, 0x00ae8549, 0x00b58a4a, 0x009e7336, 0x007e5b18, 0x00815720, 0x00885928, 0x008a5d31, 0x008c603d, 0x00855b3c, 0x0082583a, 0x00855a3f,
- 0x00746521, 0x00736a36, 0x00746d51, 0x0062665f, 0x0062708a, 0x007789ae, 0x008d9ac9, 0x0099a2d4, 0x00848ca7, 0x00808098, 0x006e6f87, 0x004a606e, 0x00252d3a, 0x00161321, 0x001d111f, 0x001a0a1b,
- 0x001a1219, 0x00453b3a, 0x00796660, 0x005f412d, 0x00572e0b, 0x00805a3f, 0x00775342, 0x00412415, 0x001f211a, 0x002a3d48, 0x00526986, 0x00537198, 0x00657084, 0x007e706b, 0x00856240, 0x00955f25,
- 0x0077623b, 0x0076644b, 0x00705c5b, 0x00685968, 0x00575064, 0x00362c37, 0x002b1a1d, 0x0038211b, 0x005f3f21, 0x00785135, 0x00835345, 0x007f565b, 0x00825f5b, 0x007d6156, 0x0097796c, 0x009e876d,
- 0x007f7646, 0x008b7c54, 0x0083664d, 0x005d3a2d, 0x005e2c35, 0x00795025, 0x00875f21, 0x00815a29, 0x00705730, 0x0073603e, 0x00765f49, 0x0077624a, 0x008b745e, 0x00664c3c, 0x0054362c, 0x00684843,
- 0x00725831, 0x006f5333, 0x007f634e, 0x00947969, 0x0092765a, 0x00876641, 0x007d5932, 0x008b6744, 0x00ae9d87, 0x00c5b9b1, 0x00c1b9c8, 0x00b2bfdc, 0x00a3b0c5, 0x00888e9b, 0x00625f63, 0x00635256,
- 0x00564037, 0x004c372d, 0x00695652, 0x00bbb5b3, 0x00f5fefc, 0x00fcfffc, 0x00fffdfe, 0x00fffeff, 0x00f8fcf9, 0x00babebd, 0x0067696c, 0x00909297, 0x00c2c4cd, 0x00dadce8, 0x00eaedfa, 0x00ebeefb,
- 0x00e7f2f2, 0x00ebf0f4, 0x00e8e5ed, 0x00dfdce4, 0x00e9e1eb, 0x00f2ebf5, 0x00f2eaf5, 0x00f0ebf6, 0x00eef1f3, 0x00eff5f8, 0x00f1f6fc, 0x00eef5fb, 0x00eef3fc, 0x00eff3fd, 0x00f1f3fd, 0x00eff3fc,
- 0x00e8f1f9, 0x00eaf2f7, 0x00eff5ff, 0x00eff3ff, 0x00eff4fe, 0x00f0f6fb, 0x00ebf1fa, 0x00eff5ff, 0x00dcecf4, 0x00a6b4c7, 0x00828da3, 0x00bcc5dc, 0x009fa9b1, 0x00777c7f, 0x006d6d6f, 0x00575654,
- 0x00353b21, 0x002f331b, 0x0033341f, 0x0033341f, 0x00343521, 0x00363723, 0x00393625, 0x003a3526, 0x002d331b, 0x002c321a, 0x002e2f1a, 0x00312e1a, 0x00312e1c, 0x00322f1d, 0x00342f1f, 0x00363121,
- 0x002e311a, 0x0031321b, 0x0033331e, 0x00353420, 0x00353421, 0x00353223, 0x00352f25, 0x00372f26, 0x00373123, 0x003c3325, 0x00423427, 0x00433325, 0x00413023, 0x00403021, 0x00413123, 0x00423324,
- 0x0030331d, 0x00272a16, 0x0076766a, 0x00e7e9df, 0x00fcfef9, 0x00fdfdfc, 0x00fcfcfa, 0x00fffdff, 0x00c3c8bc, 0x004d4e47, 0x00100904, 0x001b120b, 0x003c3630, 0x0077736e, 0x00a6a3a2, 0x00979799,
- 0x00596058, 0x00272d25, 0x0022211f, 0x00191713, 0x00040300, 0x00070509, 0x00110c15, 0x0018131f, 0x00151918, 0x0017191c, 0x0016151b, 0x00121016, 0x0018121c, 0x001b141f, 0x001d1520, 0x00211726,
- 0x00121d2c, 0x000e1f2e, 0x00192233, 0x001b1c28, 0x004c1e1c, 0x00822e20, 0x00b13e2b, 0x00c53c26, 0x00ba452e, 0x00ac4437, 0x0074302e, 0x003a3336, 0x00403c42, 0x00393d45, 0x00272d3a, 0x00242d3c,
- 0x0016272c, 0x00192532, 0x001d2535, 0x00222a36, 0x00262c38, 0x00252936, 0x00242433, 0x001f1b2e, 0x00111a22, 0x00151e28, 0x0021293a, 0x00263247, 0x00293e59, 0x002d4867, 0x003a587e, 0x0042628a,
- 0x00436787, 0x004a6b8a, 0x004c698b, 0x00475f7f, 0x0044586f, 0x004b5b6c, 0x00576270, 0x00626770, 0x00676c6a, 0x006b6d69, 0x00706c6c, 0x006f6b6a, 0x00635e5a, 0x005d554b, 0x005d4d48, 0x0089786e,
- 0x00cbc0aa, 0x00d0c8b7, 0x00cfc7b6, 0x00d6cdbc, 0x00d7cfc0, 0x00d0cfc6, 0x00d5d3cf, 0x00dadad7, 0x00d4d9d5, 0x00d6dbda, 0x00d9dde4, 0x00d7dde6, 0x00d5dde5, 0x00d3dde7, 0x00d4dcea, 0x00d5ddea,
- 0x00c7dadd, 0x00c8d9df, 0x00cbd8e3, 0x00c9d6e3, 0x00c9d2e2, 0x00cbd5e3, 0x00d1dae7, 0x00d3dde8, 0x00d2dedf, 0x00d4dfdf, 0x00d5e0e2, 0x00d6e0e3, 0x00dae3e6, 0x00dee7e9, 0x00e0e8ed, 0x00e0e8f0,
- 0x00d2dfe2, 0x00d3e0e2, 0x00ced8dc, 0x00ced7dc, 0x00dbe6ea, 0x00e4f0f3, 0x00f4fdff, 0x00f6fcfe, 0x00e5f0f0, 0x00d1dbe0, 0x00abacb7, 0x0072727f, 0x00616270, 0x00605f6f, 0x00a6a5b1, 0x00f1f1f7,
- 0x00f7faf6, 0x00f8faf8, 0x00feffff, 0x00fffffe, 0x00b7b8b2, 0x00494b41, 0x00222319, 0x002e2d23, 0x00252d17, 0x00232816, 0x00292a1d, 0x0027281e, 0x0024271c, 0x001f2217, 0x001a1b12, 0x0015130f,
- 0x00060f00, 0x00040d00, 0x00060d04, 0x00080f0b, 0x000a110d, 0x000b100c, 0x000c0d0a, 0x000c0d09, 0x00080d05, 0x000b0f08, 0x0012110d, 0x00151211, 0x00171314, 0x00181215, 0x00191015, 0x00180f15,
- 0x000a0f18, 0x002e3954, 0x006d78ac, 0x005667b1, 0x004759b4, 0x004a55b2, 0x004b54af, 0x004a51ac, 0x003b4e9e, 0x00374e9e, 0x003848a0, 0x003d43a1, 0x003c4095, 0x003b3f91, 0x00383e93, 0x00354198,
- 0x00294397, 0x00394f92, 0x00434c82, 0x00201631, 0x002e160c, 0x005b3b1f, 0x008d6643, 0x00b88d66, 0x00d8b27a, 0x00dfb87c, 0x00d7aa6f, 0x00ca9c63, 0x00b58b52, 0x00a9824b, 0x009a7342, 0x00886334,
- 0x00775e37, 0x00937a59, 0x008d7359, 0x00715b44, 0x0057473b, 0x002e241c, 0x000f0607, 0x00120a13, 0x000f1216, 0x000b0c12, 0x00151323, 0x00111326, 0x00111425, 0x00141727, 0x001a1b2d, 0x001d1b2e,
- 0x00161d28, 0x00141d26, 0x00161b2a, 0x0016192b, 0x00151828, 0x00171827, 0x00191728, 0x00181626, 0x000e141e, 0x000e131e, 0x000d0f1d, 0x000b0b1b, 0x00131022, 0x001d172c, 0x00261f34, 0x002a2238,
- 0x0025212a, 0x0029252d, 0x00312734, 0x00352736, 0x00382a35, 0x00372732, 0x00372531, 0x0034242e, 0x002a1e22, 0x00271c1e, 0x00271b23, 0x00241b28, 0x0025172b, 0x0022172c, 0x00241530, 0x00251533,
- 0x001a152a, 0x00181327, 0x00161128, 0x00150f26, 0x0010091e, 0x0010071c, 0x0012071e, 0x0013071e, 0x000a0416, 0x000b0517, 0x000c071a, 0x000d081d, 0x000e0820, 0x000e0922, 0x00100b25, 0x00120d28,
- 0x00040d1c, 0x00070f1d, 0x00080d1b, 0x00131521, 0x0086868d, 0x00f1f0f2, 0x00fefcfd, 0x00fffcff, 0x00f9fdf5, 0x00f9fbf8, 0x00a8aab1, 0x00343e4a, 0x002f4963, 0x00507ba2, 0x005586bb, 0x005086c1,
- 0x004881b5, 0x005387bc, 0x005b88c6, 0x00507ebd, 0x003f70b4, 0x003a69ac, 0x003561a6, 0x00325ba2, 0x00265693, 0x0023528f, 0x0026518f, 0x002a5391, 0x002b518f, 0x00294e8d, 0x00274b8c, 0x0024488a,
- 0x0024467a, 0x00254675, 0x00314e7b, 0x003c5780, 0x003d5f88, 0x00406595, 0x00486ea8, 0x004976b7, 0x00518bbe, 0x00639ccc, 0x00799fd5, 0x008b97d3, 0x00c5776a, 0x00c1572d, 0x00842103, 0x003e0703,
- 0x00000d07, 0x00010f04, 0x00101209, 0x0021190e, 0x0019181d, 0x0012120f, 0x000a070a, 0x00050a11, 0x00183548, 0x00385f85, 0x004372b0, 0x003568b7, 0x002c62bb, 0x003066bc, 0x002e62b3, 0x002d62ae,
- 0x002c5c99, 0x00285796, 0x002b569b, 0x00255296, 0x00204c93, 0x001e488d, 0x00234d94, 0x00345ea5, 0x00275c9b, 0x00265898, 0x003968a6, 0x004a78b1, 0x005e88c3, 0x006891c6, 0x007090bb, 0x00596f8f,
- 0x00313c3e, 0x00383c3d, 0x00463c40, 0x004d4347, 0x00a79da8, 0x00edeef0, 0x00fefdfe, 0x00fffeff, 0x00f8fefa, 0x00f4fbf8, 0x00dde4e7, 0x00a2aab0, 0x0078858a, 0x007e8d94, 0x007f8f98, 0x007f909a,
- 0x007b8e92, 0x007b8d91, 0x00819298, 0x0088989f, 0x008d9ca5, 0x008b9aa3, 0x008896a0, 0x0084919c, 0x0074898c, 0x006d8286, 0x00697c85, 0x005d6f7c, 0x004c5d6a, 0x00394a57, 0x00223242, 0x00213041,
- 0x001d353e, 0x002a4149, 0x003d4f5d, 0x00485968, 0x0051616f, 0x005d6969, 0x006f7476, 0x007c8089, 0x00808491, 0x00a4a5ab, 0x00a89b9d, 0x00736456, 0x00523a17, 0x005b441b, 0x0085653b, 0x00a07e55,
- 0x00a48666, 0x009b7d59, 0x008b6744, 0x00a27e57, 0x00d4b488, 0x00c9ad7e, 0x00765a35, 0x00644a2c, 0x0055482a, 0x004b3d2a, 0x0059483d, 0x00695747, 0x006e5b57, 0x005c4b4b, 0x00493a3d, 0x00504343,
- 0x00313625, 0x0014180c, 0x0010140f, 0x000a0e15, 0x00101529, 0x00242862, 0x002c2e76, 0x00373a7d, 0x00717fa4, 0x008494b1, 0x008e9bb4, 0x008b97ad, 0x008896ab, 0x008b97b0, 0x0098a0c3, 0x009fa7ce,
- 0x0097a9b6, 0x009aabb9, 0x009cabbb, 0x0098a5b6, 0x0096a2b2, 0x0098a5b4, 0x00929fb1, 0x0094a0b6, 0x00a3b7ca, 0x00a5b5cf, 0x009aa3bc, 0x00b8bfcf, 0x00cbd2e0, 0x00afb5c4, 0x00a8adbd, 0x00aab1c2,
- 0x00b0bcc3, 0x00d6e0e6, 0x00e6eaf7, 0x00c7cad9, 0x00a7a9b9, 0x009ba0af, 0x00969db2, 0x009daccb, 0x0094b1d4, 0x0098abc8, 0x00b1b4cf, 0x009d91a6, 0x004e3f4e, 0x00433952, 0x004a4a6d, 0x003f4877,
- 0x00364d6d, 0x00364c6c, 0x003a4d71, 0x003d4e73, 0x003b4d71, 0x003b4e72, 0x003d4e75, 0x003e4d73, 0x00374c6a, 0x00374c6b, 0x00384c6b, 0x00364d6b, 0x00364d6b, 0x00374d6b, 0x00394c6a, 0x00394c6a,
- 0x002e4a5f, 0x002f4a5e, 0x00324860, 0x00324762, 0x00304761, 0x0030475d, 0x0030475b, 0x002d495c, 0x00214756, 0x001f4753, 0x00244856, 0x00284955, 0x00263c45, 0x004b5c62, 0x00c1cbd1, 0x00f5f9fe,
- 0x00fbfafa, 0x00fcfdfd, 0x00fafefe, 0x00f5fefd, 0x00fffaf6, 0x00ebcdc0, 0x0096614e, 0x0088452f, 0x007c4027, 0x0069361e, 0x004e2818, 0x0037241e, 0x002e1e19, 0x00281a16, 0x00251817, 0x00241919,
- 0x00201413, 0x00201413, 0x00271615, 0x002d1b18, 0x0035221c, 0x003a2a1d, 0x00423121, 0x00473524, 0x004a3428, 0x00473024, 0x00482c22, 0x004c3025, 0x00513a2d, 0x00594536, 0x00695546, 0x00746252,
- 0x007a6d62, 0x0084786c, 0x00918579, 0x00978f81, 0x009e988a, 0x00a19c8e, 0x00a29c90, 0x00a49d92, 0x00a49f91, 0x00a2a08f, 0x00a69f91, 0x00a89c91, 0x00a79b8f, 0x00a59b8f, 0x009e9488, 0x00968b7f,
- 0x00877f72, 0x007b7367, 0x006e6359, 0x0064574e, 0x00564b41, 0x0057463a, 0x005c4537, 0x005d4534, 0x00624836, 0x00664c3a, 0x006b503e, 0x006b5140, 0x00675041, 0x00604d40, 0x00554539, 0x004e4036,
- 0x00463826, 0x003b2f28, 0x002e2528, 0x0028222c, 0x001d1e25, 0x00131616, 0x003c3f3d, 0x0094928e, 0x00b8b0b1, 0x00a797a3, 0x0092879a, 0x00777697, 0x00a7a7b9, 0x00dedce4, 0x00e5dedd, 0x00ddd6ce,
- 0x00d2ccc8, 0x00d2cac7, 0x00c9c1c0, 0x00c3bbb9, 0x00bab9ae, 0x00bbb7b1, 0x00c1bbb9, 0x00c6bfbb, 0x00c7c1bf, 0x00cec7c6, 0x00d5cfcf, 0x00dbd5d5, 0x00e1dbdb, 0x00e5e0e1, 0x00e6e1e3, 0x00e6e1e3,
- 0x00e3e2e6, 0x00e5e4e9, 0x00e9e6ec, 0x00ebe8ee, 0x00e9e8ed, 0x00e6e5e9, 0x00e4e1e6, 0x00e3dfe5, 0x00e1dfe2, 0x00e1dee6, 0x00dedfe0, 0x00dee3dc, 0x00dadce4, 0x00e9e9f8, 0x00cdcbe4, 0x00b1b2ca,
- 0x00e0e2eb, 0x00f7f9fe, 0x00fcfdfd, 0x00fefefe, 0x00fafcfa, 0x00f9eadb, 0x00a38a6c, 0x00704d2c, 0x0079471e, 0x007d4922, 0x007c4924, 0x00774c29, 0x0074502f, 0x0074512d, 0x0077522b, 0x00775227,
- 0x00764e1a, 0x007a521b, 0x007d571b, 0x007d561c, 0x00775220, 0x00734e25, 0x00744d2a, 0x00754f30, 0x0072542a, 0x00745825, 0x00755520, 0x007e5627, 0x00815427, 0x00825426, 0x00835126, 0x00855229,
- 0x00805129, 0x0080512a, 0x007e5129, 0x007d522b, 0x00886238, 0x00947137, 0x0093712d, 0x008a6626, 0x00855a1f, 0x00885b28, 0x008e5f31, 0x008e6037, 0x00865c39, 0x007c5635, 0x00795535, 0x007f5c3c,
- 0x0078602b, 0x00746540, 0x00696150, 0x00565b62, 0x00586c92, 0x006a84b3, 0x00758dc1, 0x00788dbf, 0x007583a4, 0x00797f99, 0x005c6275, 0x00414c58, 0x00343336, 0x00352928, 0x0043322c, 0x0049332d,
- 0x003d2722, 0x005c4437, 0x00826552, 0x00825d3f, 0x0083542b, 0x007f573a, 0x0085604e, 0x0076563f, 0x004e3d2c, 0x00423e3d, 0x00535663, 0x00636b86, 0x007b7b84, 0x008d796a, 0x00846334, 0x008f5e17,
- 0x007a603c, 0x007c6248, 0x00795b4e, 0x008a6d69, 0x008d6c6b, 0x0079584f, 0x00714f3d, 0x00815e45, 0x008d6348, 0x0086593e, 0x00845743, 0x007f544d, 0x007e5a55, 0x00806158, 0x008f7364, 0x009b8167,
- 0x0092794a, 0x00987b4f, 0x008a6440, 0x00683921, 0x00612b26, 0x00784e20, 0x00805e22, 0x007a5b2f, 0x00836e56, 0x00a29481, 0x00a69a8d, 0x00928b7b, 0x009e9686, 0x00897e78, 0x00554548, 0x005d4a54,
- 0x008b755a, 0x0076624a, 0x0062523f, 0x007a6a58, 0x0076624b, 0x0061442e, 0x006c4b34, 0x008b6b58, 0x00b09e96, 0x00cac2c0, 0x00c8cad5, 0x00b4bed9, 0x00a4adc2, 0x00919ba8, 0x006f7279, 0x00544c54,
- 0x00422e30, 0x00463433, 0x00786a6b, 0x00c7c5c4, 0x00f4fffa, 0x00fbfffb, 0x00fffefd, 0x00fffefd, 0x00fcfcfe, 0x00bdbfc2, 0x0067696e, 0x008e9196, 0x00bfc1c9, 0x00d7d9e4, 0x00e7ebf5, 0x00e9eef7,
- 0x00eaf0f5, 0x00eff2f8, 0x00e0dee7, 0x00dcd8e1, 0x00ede6ef, 0x00f5edf6, 0x00efe9f3, 0x00eeebf5, 0x00f2f2fa, 0x00f2f5fd, 0x00f1f5fc, 0x00edf3f9, 0x00edf2f9, 0x00ebf2f9, 0x00ecf2fa, 0x00ecf2fa,
- 0x00e9eff8, 0x00ebf1fc, 0x00edf3fe, 0x00ecf1fd, 0x00eef3ff, 0x00edf4fa, 0x00e5eef4, 0x00e6f0fc, 0x00e6f4fd, 0x00bdc8dd, 0x008c97af, 0x00bdc7e1, 0x00c0c8d6, 0x00878e94, 0x00676c6b, 0x0064675f,
- 0x0041442e, 0x00343620, 0x0032321d, 0x0031311c, 0x0031321d, 0x00343621, 0x00353621, 0x00363521, 0x0032321f, 0x002e301c, 0x002d2e1a, 0x002d2c19, 0x002d2c19, 0x002e2d19, 0x00302e1a, 0x00322f1b,
- 0x0031301b, 0x0031311b, 0x0032311d, 0x0033321e, 0x0034321f, 0x00343022, 0x00342f24, 0x00363025, 0x003c3125, 0x00403227, 0x00443327, 0x00433225, 0x00403022, 0x003e3021, 0x003e3121, 0x003e3322,
- 0x00343220, 0x00292a18, 0x0076776a, 0x00e6eadf, 0x00fafef9, 0x00fafdfc, 0x00f9fdfa, 0x00fdffff, 0x00c6c6c0, 0x004f4d4a, 0x000f0805, 0x00170f09, 0x00423f39, 0x0084837f, 0x00a8a9a7, 0x009c9e9f,
- 0x00727876, 0x005b605c, 0x005d605c, 0x004e514a, 0x0024251c, 0x0011110f, 0x000c0a0d, 0x000d0a0d, 0x001c1b1b, 0x002b272a, 0x002d282a, 0x00251d1f, 0x002c2224, 0x00352a2b, 0x00342929, 0x00291c20,
- 0x0016141c, 0x00131a25, 0x00181d27, 0x001f1f23, 0x005a2b22, 0x00963e29, 0x00b44125, 0x00c03e20, 0x00ac4533, 0x008f3f38, 0x005b2f2d, 0x00444149, 0x004f505a, 0x003f4250, 0x00232b36, 0x00212a39,
- 0x00172633, 0x001a2737, 0x001d2937, 0x00212b35, 0x00212732, 0x001e222c, 0x00191c26, 0x00161522, 0x00151927, 0x00171c2b, 0x001c2235, 0x00222c43, 0x00223551, 0x00243e5d, 0x00314e70, 0x003b5b7d,
- 0x0045668b, 0x00496b8b, 0x00486888, 0x0042607b, 0x0040596c, 0x00445866, 0x004f5e68, 0x005d666c, 0x006c6d6c, 0x0074706f, 0x00746b6d, 0x006d6767, 0x00645e59, 0x005a5246, 0x006c5e51, 0x00a49783,
- 0x00d6c7af, 0x00d0c1ab, 0x00d1c4ac, 0x00d1c7ac, 0x00d0c7ae, 0x00ceccbb, 0x00d2d1c7, 0x00d7d8d0, 0x00d7d8d9, 0x00d8d9de, 0x00dadbe6, 0x00d6dae6, 0x00d3dbe4, 0x00d1dbe3, 0x00d0dbe4, 0x00d0dce2,
- 0x00cddce2, 0x00cddbe2, 0x00cddbe4, 0x00ccd9e5, 0x00ccd7e6, 0x00d1dbe9, 0x00d6e0eb, 0x00d6e1e9, 0x00d9e2e6, 0x00d8e2e4, 0x00d8e1e3, 0x00d8e2e5, 0x00dae4e7, 0x00dce6e9, 0x00dde7ea, 0x00dce6eb,
- 0x00e1eaed, 0x00e1e9ed, 0x00d6dee5, 0x00cbd4da, 0x00c6d1d4, 0x00c8d6d9, 0x00deecf0, 0x00e8f2f6, 0x00eaeef3, 0x00e8ecf3, 0x00dbd9e4, 0x00a4a2ae, 0x0060616c, 0x00565763, 0x008f929b, 0x00e4e9ee,
- 0x00fcfdfc, 0x00fbfcfa, 0x00fbfcfa, 0x00fdfdfb, 0x00cfd0c9, 0x0064655c, 0x001f2015, 0x002a2c1e, 0x00292b1a, 0x00282b1b, 0x0027291c, 0x0027291e, 0x0025261b, 0x001f2115, 0x0016180f, 0x000f120b,
- 0x000b0f07, 0x00080f04, 0x00080e06, 0x00080f09, 0x00081009, 0x00090f08, 0x00090d07, 0x00070d06, 0x00090b09, 0x000b0c0b, 0x000f0d0d, 0x00110e0f, 0x00110f11, 0x00120f12, 0x00130e12, 0x00120d11,
- 0x00111228, 0x003a4368, 0x006774ad, 0x005064af, 0x004155b0, 0x004452ad, 0x004751ab, 0x004952ab, 0x00404fa5, 0x00384da2, 0x003748a2, 0x003c45a2, 0x003d4496, 0x003a4290, 0x00334090, 0x002e3f92,
- 0x00294297, 0x00394c92, 0x0040477a, 0x00271c32, 0x00543928, 0x00876549, 0x00a17c54, 0x00b99166, 0x00dbb07f, 0x00e8bd85, 0x00e2b57a, 0x00dcb074, 0x00d3ab6f, 0x00cea970, 0x00d1ab77, 0x00d6b17e,
- 0x00ddba94, 0x00e8c9a5, 0x00eed3b1, 0x00d4c0a1, 0x00a0937d, 0x00736a5b, 0x003f3832, 0x001a1416, 0x000f0f14, 0x0015141c, 0x00151220, 0x00151728, 0x00151626, 0x00181a2b, 0x001a1c2f, 0x001b1c2f,
- 0x001c1f2f, 0x001a1d2d, 0x00181b2d, 0x0016192b, 0x00161728, 0x00161726, 0x00151626, 0x00141424, 0x00131321, 0x00121120, 0x00100e1f, 0x00100d1f, 0x00151024, 0x001d172c, 0x00251e33, 0x00292237,
- 0x00302330, 0x00322632, 0x00352735, 0x00382936, 0x00392933, 0x00382830, 0x0035242d, 0x00322229, 0x002f1c24, 0x002e1b22, 0x002c1b25, 0x00281a29, 0x0027192a, 0x0025182a, 0x0023162b, 0x0024162d,
- 0x001f142e, 0x001b122a, 0x00191028, 0x00160e23, 0x000f091a, 0x000c0518, 0x000d051a, 0x000e061a, 0x000c041a, 0x000c051a, 0x000d061d, 0x000d081f, 0x000e0822, 0x000d0923, 0x000e0a26, 0x000f0c27,
- 0x000a0d22, 0x000b0e22, 0x00080b1d, 0x00060817, 0x00676972, 0x00e1e2e5, 0x00fdfeff, 0x00fcfcfe, 0x00fcfdfd, 0x00fdfdfe, 0x00c3c4cb, 0x00535d6a, 0x002a465e, 0x00466f97, 0x004f7eb2, 0x004c81bb,
- 0x004e81b7, 0x005887c0, 0x00527eb9, 0x00426dac, 0x002e5ea0, 0x002b599b, 0x00244e8f, 0x00244a8c, 0x00214a8b, 0x00204888, 0x00214886, 0x00234885, 0x00234785, 0x00214482, 0x001f427f, 0x001d417d,
- 0x002a407e, 0x00254076, 0x00254273, 0x002f4d74, 0x0034567f, 0x0038588a, 0x004465a0, 0x004f72b4, 0x005a88bc, 0x00699bcf, 0x00739fd6, 0x007d9ee7, 0x00c57b6d, 0x00d26641, 0x00a73e1b, 0x004b100f,
- 0x00030714, 0x00171618, 0x00342e1d, 0x00402d16, 0x00372f23, 0x003e3228, 0x00372f21, 0x00222015, 0x001a2525, 0x0031455b, 0x00466190, 0x003a5ca5, 0x002b59b1, 0x002b61b5, 0x002862b0, 0x002362a9,
- 0x002c599c, 0x00275498, 0x00265196, 0x00245095, 0x00214d90, 0x00224d90, 0x002a5598, 0x00345ea2, 0x00275494, 0x00214f8f, 0x00325d99, 0x0041679f, 0x004873ae, 0x00527eb6, 0x00638ab8, 0x00617da0,
- 0x003f4853, 0x003f3f44, 0x004b4143, 0x00463e42, 0x00817f89, 0x00dde1e3, 0x00f8fcf9, 0x00fcfcfe, 0x00fbfdfc, 0x00fdfffe, 0x00eff1f4, 0x00bec1c7, 0x00848c92, 0x00808c93, 0x00829199, 0x00819399,
- 0x00809197, 0x007f8f96, 0x00809198, 0x0084959c, 0x008a9aa1, 0x008a9ba2, 0x0087989f, 0x0083949b, 0x007b8b92, 0x0074848b, 0x006e7f89, 0x00637381, 0x004f606e, 0x003d4f5c, 0x00223442, 0x001b2e3c,
- 0x001e343e, 0x002c3f4b, 0x003c4d5c, 0x00475967, 0x00546573, 0x005f6d6d, 0x00686f6d, 0x006e7078, 0x0075707c, 0x00867a81, 0x006f5e5a, 0x0063513b, 0x00a2885f, 0x00caac7b, 0x00ddba85, 0x00f0c794,
- 0x00d6b38b, 0x00ba976f, 0x00886237, 0x00926b41, 0x00deba8c, 0x00b8966a, 0x0065451d, 0x00735531, 0x00584226, 0x00503a25, 0x00594735, 0x00675849, 0x00685853, 0x005c4c49, 0x00453833, 0x00493f36,
- 0x00403f27, 0x002f2d17, 0x00292a16, 0x00252518, 0x00141415, 0x00141844, 0x0029306e, 0x00414881, 0x00737ba8, 0x00909bc0, 0x00919cba, 0x0099a4bd, 0x009aa8bd, 0x009ba8bf, 0x00a1abc7, 0x009ca8c4,
- 0x009fabba, 0x009fabb7, 0x00a8b4be, 0x00b3bec9, 0x00a6b1bd, 0x00a8b3c1, 0x00aab5c6, 0x009aa5b9, 0x00a2afc7, 0x00adb5d4, 0x009ea4bf, 0x00b2bbcb, 0x00c6cddc, 0x00a6abba, 0x00a3a8b7, 0x00adb4c3,
- 0x00b0b5bf, 0x00caced8, 0x00eff1fe, 0x00d8dce8, 0x00adb0b9, 0x009ca0ae, 0x00969db3, 0x0098a9c9, 0x0097b1d8, 0x009facce, 0x00b0adc8, 0x009b8495, 0x004a2b35, 0x003d2639, 0x00473b5b, 0x00484674,
- 0x003f4e77, 0x003f4d76, 0x00414e78, 0x00414f79, 0x00404f77, 0x00404e76, 0x00414e76, 0x00414e74, 0x00404d72, 0x003f4c75, 0x003d4d73, 0x003a4e6e, 0x00394d6f, 0x00394d6e, 0x00394d6c, 0x00394e6d,
- 0x00344b66, 0x00344b64, 0x00354a64, 0x00334864, 0x00314762, 0x0031465d, 0x002f475a, 0x002b485b, 0x0025475b, 0x00224656, 0x00234756, 0x00274854, 0x00213b43, 0x00354a4f, 0x009aaaad, 0x00e8f2f3,
- 0x00fffaff, 0x00fcfdff, 0x00f9fdfe, 0x00f6fefd, 0x00fdfaf5, 0x00f2d3c8, 0x00a06b5b, 0x00853e2b, 0x007f4029, 0x0067331b, 0x004e2918, 0x0034221c, 0x002c1b1a, 0x00241617, 0x00211518, 0x00211619,
- 0x00211518, 0x00211516, 0x00251516, 0x002b1a19, 0x0032201c, 0x0038281e, 0x003f2d21, 0x00453023, 0x00492f29, 0x00492f27, 0x004a2e26, 0x004e3129, 0x00563c32, 0x005e463a, 0x006b5548, 0x00746153,
- 0x007c6f65, 0x00857a6f, 0x0091867a, 0x00968d81, 0x009e958a, 0x009f988c, 0x009e998c, 0x009e9c8c, 0x00a09d8f, 0x009f9f8f, 0x00a5a093, 0x00a89c94, 0x00a4988f, 0x009f968a, 0x00978d81, 0x00908579,
- 0x00847a71, 0x00797065, 0x006a6054, 0x00605448, 0x0053493c, 0x00574537, 0x005e4636, 0x00624734, 0x00684c3c, 0x006b503e, 0x006f5342, 0x006f5444, 0x006a5346, 0x00624f44, 0x0055453c, 0x004d4037,
- 0x0049392d, 0x003d312c, 0x002f272a, 0x00242129, 0x001a1d23, 0x00171b19, 0x001b1e16, 0x0068675a, 0x00c2b5b0, 0x00ac9b9c, 0x00a69495, 0x0090887f, 0x00a8a0aa, 0x00ddd1e0, 0x00f4e6f8, 0x00ecdeed,
- 0x00e5dbda, 0x00e5dfd3, 0x00dedcd1, 0x00d6d2c7, 0x00c7c6c7, 0x00beb6b3, 0x00b6acac, 0x00b2a8a6, 0x00b0a5a5, 0x00b5aba9, 0x00bcb3b1, 0x00c4bbba, 0x00cdc3c6, 0x00d6cbcf, 0x00d9cfd3, 0x00d8cfd1,
- 0x00d8d2db, 0x00dcd7de, 0x00dcd6dc, 0x00d9d3d9, 0x00d1ccd3, 0x00d0cad1, 0x00d2cad1, 0x00d7d0d4, 0x00dbd3db, 0x00ddd6dd, 0x00dddadc, 0x00dadfd4, 0x00dbdfe4, 0x00e6e6f7, 0x00dcd9ef, 0x00c7c5da,
- 0x00e9e4ef, 0x00fcfbfe, 0x00fcfdfb, 0x00fcfffc, 0x00fafdff, 0x00f8eadd, 0x00ae947c, 0x00785436, 0x007c4822, 0x007e4b25, 0x007c4c29, 0x00764d30, 0x00725038, 0x00735234, 0x00765130, 0x0077522b,
- 0x007f4f2c, 0x007e4e25, 0x007d521f, 0x007b521d, 0x00794e20, 0x00775029, 0x00735029, 0x006f5028, 0x00735821, 0x00725b1a, 0x007a5d20, 0x00815726, 0x007d5323, 0x007f5327, 0x0082532c, 0x007e522a,
- 0x007e5231, 0x00744b2a, 0x007a5436, 0x007b583c, 0x0075583f, 0x00805d30, 0x00825b26, 0x00835e26, 0x00865b2b, 0x00835a2b, 0x008e6437, 0x0093683d, 0x00886138, 0x007e5b33, 0x007c5c34, 0x007f6037,
- 0x00845d37, 0x00796147, 0x0062564f, 0x004c4d5d, 0x004c608e, 0x005f79a9, 0x005f78a7, 0x00597196, 0x0064717e, 0x00747d7b, 0x00606158, 0x0064574e, 0x008d7361, 0x008e6d51, 0x008b6643, 0x00906945,
- 0x00967558, 0x008b6d52, 0x006f4c30, 0x00a07b5d, 0x00b37f64, 0x007d543f, 0x00936a56, 0x00aa8264, 0x00865f3d, 0x00785940, 0x007f6459, 0x007d696c, 0x00ac9692, 0x00c2a688, 0x00a38248, 0x00956c17,
- 0x00886633, 0x007d5c33, 0x00785234, 0x00926c5b, 0x00ae8473, 0x00a37762, 0x00996c4d, 0x00a3754f, 0x00a16f4f, 0x008e5b37, 0x00915e3f, 0x00855631, 0x007d5a4e, 0x00755853, 0x00796065, 0x00816a6c,
- 0x00947464, 0x009a7a5d, 0x00835e3e, 0x00583111, 0x00542e16, 0x007b562a, 0x007c5a2c, 0x007d6043, 0x00a3928d, 0x00c8bfbd, 0x00d8d4d1, 0x00ced0c5, 0x00ced0c1, 0x00acaba8, 0x005e5961, 0x0060586a,
- 0x00c0b5ab, 0x009a9987, 0x00616553, 0x006f775f, 0x0073695e, 0x005a4345, 0x00614049, 0x00735461, 0x00938d90, 0x00b1bcb8, 0x00c5d3d2, 0x00c3bccf, 0x00a9aab7, 0x00a1a0ac, 0x00898990, 0x006c6b71,
- 0x006c5c64, 0x006c5d61, 0x00a19699, 0x00dfdcd9, 0x00f7fdf8, 0x00fffefa, 0x00fffcfd, 0x00fffefd, 0x00fefcff, 0x00bebec3, 0x0066686e, 0x008b8f94, 0x00bcbfc7, 0x00d5d7e0, 0x00e6eaf3, 0x00e8eef6,
- 0x00eff4fb, 0x00f1f3fb, 0x00dfdbe5, 0x00dddae3, 0x00f1eaf3, 0x00f4eff7, 0x00eee8f1, 0x00eee9f3, 0x00f4f3fc, 0x00f4f7ff, 0x00f0f5fc, 0x00ecf3fa, 0x00edf1fa, 0x00e9f0f8, 0x00e9f0f8, 0x00e9eff8,
- 0x00e9eefa, 0x00e9effe, 0x00ebf2fe, 0x00ebf1fe, 0x00ecf1fd, 0x00ecf2fb, 0x00e5eff4, 0x00e3eef9, 0x00e8f5fe, 0x00c9d3e7, 0x00939eb8, 0x00b7c1dd, 0x00dbe3f2, 0x00a4abb4, 0x006a7070, 0x00626561,
- 0x00504f3b, 0x00393923, 0x0031321c, 0x002f301b, 0x0031321d, 0x00343521, 0x00343621, 0x0032351f, 0x0033311f, 0x002f301c, 0x002d2e1a, 0x002e2d19, 0x002f2d1a, 0x002f2e1a, 0x00302e1a, 0x00302f1a,
- 0x00302e1a, 0x00312f1b, 0x0032301d, 0x0033311d, 0x0034311e, 0x00332f20, 0x00352c22, 0x00372c22, 0x003f2f26, 0x00423127, 0x00463228, 0x00443225, 0x00423123, 0x003e3121, 0x003c3220, 0x003b3220,
- 0x00353423, 0x00292c1a, 0x0074796a, 0x00e4ebdf, 0x00f9fffa, 0x00fbfdfd, 0x00fbfdfb, 0x00fefffe, 0x00c8c5c3, 0x00514d4b, 0x00100907, 0x0017110d, 0x004d4b49, 0x008e8f8f, 0x00a8abad, 0x00a3a9ab,
- 0x0093999d, 0x008e9593, 0x00989c99, 0x008b9089, 0x00606159, 0x003f403e, 0x00242423, 0x0011130e, 0x00181612, 0x002e2825, 0x00413934, 0x0042362e, 0x004d3b34, 0x005e4b43, 0x005d4941, 0x0049332d,
- 0x00302313, 0x00302c21, 0x00322f28, 0x00363227, 0x006a3c27, 0x00964827, 0x00a4441e, 0x00ac4622, 0x008f4d43, 0x005e3f42, 0x00392f38, 0x003e404a, 0x00464653, 0x00322e42, 0x00242035, 0x0024273c,
- 0x00202c40, 0x001c2b3b, 0x001d2e39, 0x001e2a34, 0x001b1f2c, 0x00151624, 0x00141521, 0x00151421, 0x00151525, 0x00161827, 0x00181b2e, 0x001e263b, 0x001c2d48, 0x001f3654, 0x00294364, 0x00335070,
- 0x003e5e83, 0x00416482, 0x00416580, 0x003e6177, 0x003f5b6c, 0x00405664, 0x00485662, 0x00555d65, 0x00696569, 0x00726a6d, 0x00756a6a, 0x006a625c, 0x00685e55, 0x005a4f3e, 0x007f6f5c, 0x00baab91,
- 0x00d3bea2, 0x00d1bd9f, 0x00d3c1a1, 0x00cec09d, 0x00d1c5a3, 0x00cecbb4, 0x00d3d2c7, 0x00d8d8d0, 0x00d6d7d7, 0x00d7d8db, 0x00d8d9e3, 0x00d5d8e4, 0x00d3d9e4, 0x00d1d9e3, 0x00d0d8e2, 0x00d0d8e0,
- 0x00d1e0e9, 0x00cfdde6, 0x00ccdce6, 0x00cfdce8, 0x00d0deec, 0x00d6e0ef, 0x00d9e3ef, 0x00dae3ec, 0x00dce5e8, 0x00dbe4e6, 0x00dbe4e6, 0x00dce5e9, 0x00dde6eb, 0x00dce5ea, 0x00dae3e8, 0x00d8e1e5,
- 0x00e3ebee, 0x00e3ebef, 0x00e8f0f6, 0x00e1ebef, 0x00cbd6da, 0x00bbc8ce, 0x00bfcbd4, 0x00cad4dd, 0x00e0e1eb, 0x00e3e5ec, 0x00e7e4ec, 0x00bebcc4, 0x0064646c, 0x0055565d, 0x0081848b, 0x00d6dbe1,
- 0x00ffffff, 0x00fcfcf9, 0x00fcfdf9, 0x00fafbf7, 0x00e2e3de, 0x007f7f78, 0x001d1e14, 0x00282c1d, 0x002a2a1d, 0x002c2e1f, 0x00282b1d, 0x00292a1e, 0x0024241a, 0x001f2016, 0x0014160d, 0x000c1008,
- 0x000c1108, 0x000b1106, 0x000a0f07, 0x00090f09, 0x00081009, 0x00090e09, 0x00090d09, 0x00070c08, 0x00080a09, 0x00090b0b, 0x000c0b0d, 0x000d0b0e, 0x000d0c10, 0x000e0c12, 0x000f0c13, 0x000e0c12,
- 0x00141333, 0x003f4872, 0x006372ac, 0x004a61ab, 0x004257b0, 0x00434faa, 0x00454ea7, 0x00484ea6, 0x00414ea5, 0x00384ca2, 0x003548a3, 0x003b46a3, 0x003a4497, 0x0036428e, 0x002f3e8b, 0x002b3e8d,
- 0x002a3e94, 0x003b498d, 0x00444876, 0x00443746, 0x0082634e, 0x00947054, 0x0086613f, 0x008f6943, 0x00bb9061, 0x00d4a974, 0x00e1b47c, 0x00e3b77c, 0x00dcb579, 0x00d2ad74, 0x00e0bc88, 0x00ebca99,
- 0x00edc59a, 0x00ddbb91, 0x00dec399, 0x00eddbb2, 0x00f0e5c9, 0x00e4ddca, 0x00beb7ae, 0x00696463, 0x0019141c, 0x0015101a, 0x001c1526, 0x00171728, 0x0017192b, 0x00181b2c, 0x00181d2c, 0x001b1e2c,
- 0x001f2032, 0x001d1e2f, 0x001a1c2d, 0x00171a2a, 0x00181929, 0x00181927, 0x00161725, 0x00151324, 0x00141223, 0x00121021, 0x00141124, 0x00161226, 0x001b152a, 0x001e162d, 0x00231a31, 0x00251c33,
- 0x0032202d, 0x0034222f, 0x00362531, 0x00392933, 0x00382730, 0x0039272f, 0x0035222b, 0x00321e27, 0x00331c24, 0x00341b23, 0x00301c27, 0x002c1a2d, 0x00291b2c, 0x0028182c, 0x0023172a, 0x0024172c,
- 0x0021142e, 0x001d1129, 0x001a0f27, 0x00170e25, 0x0010081c, 0x000c0417, 0x000c0318, 0x000d0419, 0x000c051d, 0x000b041d, 0x000b041e, 0x000b0620, 0x000e0824, 0x000f0a27, 0x00100b29, 0x00100c2a,
- 0x000d0d29, 0x000b0d26, 0x000d0f24, 0x00050817, 0x0050525b, 0x00cbcdd1, 0x00fcfcff, 0x00fbfaff, 0x00fefdff, 0x00fdfdfc, 0x00dadce1, 0x00727985, 0x002a445f, 0x003f668f, 0x004d7bb1, 0x005084be,
- 0x005a86c3, 0x00567eba, 0x00446ba8, 0x00315897, 0x00204c91, 0x0021488a, 0x001e4283, 0x001e417f, 0x00204483, 0x001f4281, 0x001e407d, 0x001e3f7b, 0x0021407c, 0x00213f7b, 0x00203d78, 0x00203d77,
- 0x00293c7d, 0x001d3c71, 0x001d406d, 0x00204b71, 0x002b507e, 0x002e4f86, 0x00435f9a, 0x00546fa9, 0x006483ba, 0x006d97bf, 0x007c9fcc, 0x00829ed2, 0x00c87c72, 0x00cb6d58, 0x00ad574f, 0x00582f47,
- 0x00030427, 0x002d2321, 0x00856b4c, 0x009b7341, 0x00817251, 0x008e7758, 0x009b7f61, 0x008f7555, 0x006f5e48, 0x00615a55, 0x005c5b72, 0x004c588b, 0x003654a3, 0x003160ac, 0x002660a7, 0x001b61a1,
- 0x0029519d, 0x00214b97, 0x00244d97, 0x00234c96, 0x00254e92, 0x00275195, 0x002f5c9b, 0x00305b9b, 0x001f4b8c, 0x00194885, 0x00274f8b, 0x00385187, 0x00315a99, 0x00315e9b, 0x00436fa4, 0x004b6e95,
- 0x004a5266, 0x00434047, 0x00484042, 0x00453f40, 0x00727583, 0x00cfd5d5, 0x00f6fcf8, 0x00fcfefd, 0x00fffdff, 0x00fefdfe, 0x00faf7fb, 0x00d2d1d7, 0x008f959a, 0x00828e94, 0x0085959a, 0x0083989b,
- 0x00839399, 0x00809097, 0x007f8f96, 0x00819197, 0x0088989f, 0x008b9aa2, 0x008a99a0, 0x0085949b, 0x007c8d96, 0x0075868e, 0x0070818b, 0x00667784, 0x00526271, 0x00425361, 0x00273846, 0x001b2c3a,
- 0x001f303e, 0x00293b47, 0x003a4c5a, 0x00455864, 0x00506271, 0x0056686b, 0x005f6b6c, 0x006d707a, 0x00786b7b, 0x00716066, 0x0043322b, 0x002c1709, 0x00836f40, 0x00dbbc8a, 0x00eac590, 0x00e3b884,
- 0x00d8b27a, 0x00c5a069, 0x009c7442, 0x00956b3c, 0x00b4885f, 0x0090633e, 0x00865b37, 0x00a27b56, 0x00735232, 0x006e4f2f, 0x007d6447, 0x006d614c, 0x005d4e46, 0x0053473f, 0x004e4039, 0x00483d32,
- 0x004d412c, 0x004d462c, 0x0038301b, 0x00322b1e, 0x00291d22, 0x00111434, 0x00484e80, 0x00858dba, 0x00a2a7d4, 0x00a9b1d9, 0x00a5add2, 0x00a1aacb, 0x00a1aac6, 0x00a2abc4, 0x00a3adc3, 0x00a4b0c4,
- 0x00b1b9c4, 0x00aeb7be, 0x00c2cbd1, 0x00dae3e9, 0x00c5ced6, 0x00b1b8c3, 0x00bac1d1, 0x00b6bccf, 0x00a7abc5, 0x00a2a4c1, 0x009ea4bb, 0x00afbbc8, 0x00bfc9d6, 0x009ea5b4, 0x00a1a8b6, 0x00aeb6c3,
- 0x00b4b5c4, 0x00c1c2ce, 0x00f0f0f9, 0x00e5e6f1, 0x00b6b5ba, 0x00a1a1b1, 0x009aa0b7, 0x0097abcb, 0x009bb5e0, 0x00a4b0d3, 0x00b2a7c1, 0x0097747e, 0x00562225, 0x00431c28, 0x004c304c, 0x0053456f,
- 0x0045507d, 0x0045507b, 0x00454f7c, 0x0044507c, 0x0045517b, 0x00464f7b, 0x00444e7a, 0x00424e78, 0x00444d79, 0x00434d7b, 0x00404e77, 0x003d4e72, 0x003c4d72, 0x003b4b71, 0x003a4b6e, 0x00384b6e,
- 0x00384969, 0x00364a67, 0x00354965, 0x00344865, 0x00334763, 0x00324760, 0x0030475e, 0x002c485e, 0x0028475d, 0x0026475a, 0x00264757, 0x00264754, 0x0027404a, 0x002d4249, 0x007d8c90, 0x00dce7e9,
- 0x00fefafd, 0x00fcfcfe, 0x00f7fdfd, 0x00f7fefd, 0x00fefbf6, 0x00f8dbcf, 0x00a97765, 0x00813e29, 0x007c3f29, 0x00642f19, 0x004b2617, 0x0030201a, 0x00281917, 0x00221515, 0x001d1314, 0x001d1315,
- 0x001e181a, 0x00201718, 0x00251717, 0x00291a19, 0x002f1c1a, 0x0033231c, 0x0039281e, 0x00402b22, 0x00452c24, 0x00472d25, 0x00492d25, 0x004d3128, 0x00573c33, 0x005f463d, 0x006b544a, 0x00755f56,
- 0x007c7063, 0x0084796c, 0x008f8478, 0x00958b7f, 0x009c9287, 0x009e968b, 0x009d988b, 0x009e9b8c, 0x009e9d90, 0x009f9f92, 0x00a39f95, 0x00a49b92, 0x009e948c, 0x00999086, 0x0091877c, 0x00897f74,
- 0x007d746a, 0x00736a5d, 0x00625a4c, 0x00574e3f, 0x004e4535, 0x00544233, 0x005e4434, 0x00644735, 0x00694f3e, 0x006e5442, 0x00725746, 0x00715748, 0x006c5649, 0x00645147, 0x0056463e, 0x004e4039,
- 0x0045362a, 0x003e332e, 0x0030292c, 0x00222029, 0x00191d24, 0x001a1e1c, 0x00181b10, 0x00383625, 0x00a79b92, 0x00baa6a1, 0x00aa998a, 0x009c916e, 0x009d9091, 0x00c8b7ca, 0x00efdffb, 0x00f2e0f9,
- 0x00f1e5e5, 0x00efebdc, 0x00eff1df, 0x00eaeddf, 0x00e1e4e6, 0x00e0dad9, 0x00dbcece, 0x00cec1be, 0x00c2b4b4, 0x00b9acaa, 0x00b3a7a5, 0x00b5a8a8, 0x00b8a9ae, 0x00bcadb3, 0x00c1b2b8, 0x00c3b5ba,
- 0x00c3bbc5, 0x00c6bec6, 0x00c5bdc4, 0x00c6bfc5, 0x00cbc4cb, 0x00d2cad2, 0x00d8d0d6, 0x00e0d7dc, 0x00e3dde5, 0x00e6e0e6, 0x00e6e3e3, 0x00e5e8dd, 0x00ebedef, 0x00eeecfb, 0x00e6e2f6, 0x00d9d4e9,
- 0x00eae6eb, 0x00fffcfe, 0x00f9fcf8, 0x00fbfefd, 0x00fafdfd, 0x00fdf0e2, 0x00bea58e, 0x00876648, 0x007d4c27, 0x007d4c28, 0x007a4a2a, 0x00744b32, 0x00715038, 0x00725138, 0x00745132, 0x0075522f,
- 0x00814b32, 0x00824c2c, 0x007c4e24, 0x007f5021, 0x00784f20, 0x00785028, 0x00735227, 0x00705321, 0x00745d1f, 0x00816c24, 0x00876c27, 0x00835926, 0x007d5523, 0x007f5529, 0x0080552d, 0x007a542f,
- 0x007f553c, 0x00764f3b, 0x00775942, 0x00785b4b, 0x0078614e, 0x00846246, 0x007f5835, 0x00815833, 0x00835833, 0x0082562f, 0x008c6137, 0x008d6537, 0x00866331, 0x0080622d, 0x007f652e, 0x007d642a,
- 0x008c593c, 0x007f594c, 0x005f4847, 0x00544b62, 0x0064749a, 0x00637b9d, 0x00466178, 0x00324c54, 0x004a5940, 0x007a7f5a, 0x00756a3f, 0x008b5e40, 0x00c08e61, 0x00c8915c, 0x00b8864a, 0x00b28346,
- 0x00b59261, 0x00997954, 0x006e5233, 0x00a0816d, 0x00996e5f, 0x00764e41, 0x00865b48, 0x00a1744f, 0x0089511e, 0x00885227, 0x008e5f3f, 0x00865b4c, 0x00a17e6b, 0x00c9a77d, 0x00bb9b57, 0x009a761a,
- 0x00926625, 0x00895d29, 0x00875a36, 0x00906652, 0x00a37f6c, 0x0098725c, 0x00916848, 0x00986c45, 0x009f6a3e, 0x00996131, 0x00935d26, 0x008c5f19, 0x0087694c, 0x00775c62, 0x00654f6c, 0x006a5882,
- 0x006b546b, 0x006d5659, 0x006c5846, 0x00584a2a, 0x004f4720, 0x00775b34, 0x007e5939, 0x00967869, 0x00c5b1b9, 0x00cfc4cf, 0x00d6d4d5, 0x00dce4d9, 0x00e5eed8, 0x00d2d8cd, 0x007d7f80, 0x006a6773,
- 0x00bababc, 0x00cdd7cd, 0x00aec1ae, 0x00b2c5ae, 0x00979995, 0x006f5e6e, 0x00664b6b, 0x0080638b, 0x00b4b7c7, 0x00cde3e4, 0x00d4e5dd, 0x00e4c8d0, 0x00c3b4b6, 0x00b7adb2, 0x00ada8ac, 0x00908a90,
- 0x0094848d, 0x00938187, 0x00c4b8b7, 0x00f2eee8, 0x00fbfef2, 0x00fdfef8, 0x00fcfdfa, 0x00fdfffc, 0x00fdfbfd, 0x00bfc0c3, 0x0065676c, 0x008b8e94, 0x00babdc5, 0x00d4d7e1, 0x00e4e8f2, 0x00e8edf7,
- 0x00f0f6fa, 0x00f2f4f9, 0x00dfdfe7, 0x00e5e0ea, 0x00f1ecf6, 0x00f4ecf7, 0x00ede9f3, 0x00ebeaf2, 0x00f2f3fa, 0x00f6f8ff, 0x00f0f4fb, 0x00eaf2f8, 0x00ecf2fa, 0x00e9f1f8, 0x00e8f0f9, 0x00e7eff9,
- 0x00e7eef9, 0x00e7edfe, 0x00e8effc, 0x00ebf1fe, 0x00eaeffc, 0x00eaf0f9, 0x00e8f0f8, 0x00e3eef8, 0x00e7f4fe, 0x00cfdaee, 0x009da6c3, 0x00b2bbd9, 0x00c3cbdb, 0x009da3ac, 0x00717575, 0x00646762,
- 0x00555543, 0x003e3f2b, 0x0031321d, 0x0032321d, 0x0032321e, 0x00353621, 0x00333520, 0x0032351f, 0x0033321f, 0x002f311d, 0x002e2f1b, 0x00302e1a, 0x00302e1b, 0x00302f1b, 0x00312f1b, 0x0030301c,
- 0x002f2d1a, 0x00302e1b, 0x00312f1c, 0x0032301d, 0x0032301d, 0x00322e1f, 0x00342b20, 0x00372b21, 0x003c2e24, 0x00413127, 0x00443228, 0x00443225, 0x00413123, 0x003e3120, 0x003b311f, 0x003b321f,
- 0x00353423, 0x00282b1a, 0x00747869, 0x00e4eadf, 0x00fafffb, 0x00fcfefc, 0x00fafdfb, 0x00fdfefc, 0x00c9c8c4, 0x00514e4c, 0x000c0605, 0x00161110, 0x005d5b5c, 0x009da0a1, 0x00a6acae, 0x00a4acad,
- 0x00a5afb0, 0x00aab1b1, 0x00a9b1ae, 0x00a5aba7, 0x00929690, 0x00858682, 0x00646764, 0x0043463e, 0x0028241b, 0x002c241c, 0x00392d22, 0x00443225, 0x004f372a, 0x005e4335, 0x00614637, 0x005a3d30,
- 0x005c4519, 0x0060522e, 0x005e593c, 0x00615a40, 0x007b5534, 0x00935028, 0x00994c24, 0x009c4f2b, 0x00654b49, 0x00303f4e, 0x0020364c, 0x002f3243, 0x00272639, 0x001a162c, 0x00241e37, 0x002b2c42,
- 0x00253245, 0x00203140, 0x001e303a, 0x001e2932, 0x00111420, 0x000c0c19, 0x000f111c, 0x00141521, 0x00111322, 0x00131624, 0x00161a2a, 0x00182132, 0x001a2a41, 0x001d314c, 0x00243a59, 0x002d4464,
- 0x00315271, 0x00375b75, 0x00395f75, 0x00385d70, 0x003b5868, 0x003c5360, 0x0041505a, 0x004a5159, 0x005b555a, 0x00655a5f, 0x006b5e5c, 0x00645952, 0x0064564a, 0x005e4e3d, 0x008e7b64, 0x00c7b296,
- 0x00d0ba98, 0x00d5bd9a, 0x00cfbb96, 0x00d0bf99, 0x00d6c5a0, 0x00cfc9b1, 0x00d2d1c4, 0x00d7d6cb, 0x00d5d6d5, 0x00d5d6da, 0x00d7d9e2, 0x00d4d8e3, 0x00d2d8e3, 0x00d0d8e3, 0x00cfd8e1, 0x00cfd8e0,
- 0x00d1dfe7, 0x00d0dee5, 0x00cedce4, 0x00d1dde8, 0x00d5e1ed, 0x00d8e1ee, 0x00d8e2ec, 0x00dbe4ec, 0x00dce6e7, 0x00dde6e7, 0x00dde6e8, 0x00dce5e9, 0x00dce5ea, 0x00dce5ea, 0x00dbe3e8, 0x00d8e1e5,
- 0x00d5e1e4, 0x00d8e0e5, 0x00dee7ec, 0x00e3edf0, 0x00dee6ec, 0x00cfd8e2, 0x00bbc7d3, 0x00b5bfc8, 0x00c3c4ce, 0x00cdccd4, 0x00cdcbd2, 0x00a8a4ab, 0x0058555d, 0x00474950, 0x0073797f, 0x00bdc7cc,
- 0x00fffefe, 0x00fcfdfa, 0x00fafcf8, 0x00f9faf7, 0x00f3f4ef, 0x009e9f99, 0x0024261d, 0x002a2d1f, 0x0028291c, 0x002c2f1f, 0x002a2c1d, 0x002a2b1e, 0x00242519, 0x001f2015, 0x0014160c, 0x000d0f07,
- 0x000a1007, 0x000a1006, 0x000a0f08, 0x00080f08, 0x00060f08, 0x00070d08, 0x00080c09, 0x00070b07, 0x00040907, 0x00060908, 0x0008090b, 0x0008090c, 0x00090a0f, 0x000a0a11, 0x000a0a12, 0x00090912,
- 0x0015193b, 0x0048517e, 0x005e6eaa, 0x00475ca7, 0x003f51ac, 0x00414ea8, 0x00444da6, 0x00444ba2, 0x003c4b9f, 0x00374aa1, 0x003548a3, 0x003746a2, 0x00374396, 0x0033408d, 0x002d3d89, 0x002a3d8b,
- 0x00283c8d, 0x003a4586, 0x004b4d75, 0x00665764, 0x0088684b, 0x00714c2f, 0x005c3a17, 0x006e4824, 0x009d7848, 0x00c09965, 0x00d9b079, 0x00dfb87e, 0x00dbb57c, 0x00d6b47c, 0x00d4b37f, 0x00bc9c6c,
- 0x00ba9260, 0x00a88355, 0x00a9895b, 0x00e7d1a8, 0x00efe3c2, 0x00fcf5e0, 0x00f9f6e7, 0x00d2d0ca, 0x00666265, 0x00211c26, 0x0015101e, 0x00151728, 0x00161929, 0x0016192c, 0x00171b29, 0x001b1c2c,
- 0x001c1e2e, 0x001b1d2e, 0x001a1c2d, 0x00181c2c, 0x00191b2b, 0x00191b29, 0x00181926, 0x00161525, 0x00151425, 0x00141224, 0x00151125, 0x00191429, 0x001b132b, 0x001f152e, 0x00211730, 0x00231831,
- 0x00301e2b, 0x00321f2c, 0x0034222f, 0x00372630, 0x0038242e, 0x0037232c, 0x00341f27, 0x00311b23, 0x00311921, 0x00321920, 0x002f1a22, 0x002a1a28, 0x00271927, 0x0026162a, 0x00221328, 0x0020122b,
- 0x001e132a, 0x001c1127, 0x00190f25, 0x00170c21, 0x0011071b, 0x000d0417, 0x000b0216, 0x000b0318, 0x000c041e, 0x000b031d, 0x000a031f, 0x000b0521, 0x000d0825, 0x000e0a29, 0x000e0b2a, 0x000e0b2b,
- 0x000a0c29, 0x000c0d28, 0x000a0c23, 0x00070919, 0x003a3b45, 0x00b0b1b5, 0x00fcfcfe, 0x00fefdfe, 0x00fefdff, 0x00fefefd, 0x00e9edf1, 0x008e949f, 0x00324a65, 0x003c6189, 0x004774a9, 0x004c7eba,
- 0x005381bc, 0x00476ba9, 0x002d5290, 0x0025488a, 0x001b4087, 0x001e3f82, 0x001b3d7d, 0x00183c78, 0x001e3e7b, 0x001d3d7b, 0x001d3c7a, 0x001e3c79, 0x00213e79, 0x00213d77, 0x001f3b74, 0x00203b74,
- 0x00173574, 0x0013376e, 0x0011406b, 0x0016486f, 0x00204e7a, 0x00294e85, 0x00415d96, 0x005367a0, 0x005d78a2, 0x006a8aaa, 0x007c93ad, 0x00958fae, 0x00cb7f73, 0x00c37174, 0x009b657c, 0x005d5a95,
- 0x000e1c50, 0x002b151a, 0x00996b3a, 0x00d79c55, 0x00b49e68, 0x00bb956b, 0x00b88e5f, 0x00a77c47, 0x00906838, 0x00806046, 0x006d5759, 0x00584d6f, 0x00394b8e, 0x0035599e, 0x00285f9e, 0x00195e98,
- 0x001e4694, 0x00184390, 0x001e4893, 0x00214b95, 0x00244f93, 0x002b5799, 0x002d5b97, 0x0026528e, 0x0018437e, 0x0018447d, 0x00214178, 0x002b3b70, 0x001d437d, 0x00194785, 0x0024518a, 0x002f5381,
- 0x003d4557, 0x00403e46, 0x00443f3f, 0x00635e62, 0x009ea4b1, 0x00d4dadc, 0x00f1f8f2, 0x00fafcfc, 0x00fdfcfc, 0x00fffeff, 0x00fefbff, 0x00e3e1e7, 0x00a0a4aa, 0x00848e94, 0x00839199, 0x0082949c,
- 0x0083949b, 0x00829399, 0x007e8f95, 0x00809197, 0x0086969d, 0x008b9ba2, 0x008998a0, 0x0085959c, 0x007e8e97, 0x0077888f, 0x0072828c, 0x00677885, 0x00556674, 0x00465866, 0x002c3e4c, 0x001d303d,
- 0x001b2f3d, 0x00283846, 0x00354653, 0x00405260, 0x004e606e, 0x0052676f, 0x00566970, 0x00636e7b, 0x00786f82, 0x0080717b, 0x00554643, 0x00211304, 0x0036270c, 0x00826b3b, 0x00caa877, 0x00deb382,
- 0x00d3af65, 0x00d1ab68, 0x00be955c, 0x00b98c5c, 0x00a77752, 0x00976744, 0x00bf916e, 0x00cea380, 0x00b79167, 0x00ad885f, 0x008c7148, 0x0062583f, 0x004c402f, 0x004f4437, 0x0052443a, 0x00504338,
- 0x004d402f, 0x00514432, 0x00493b30, 0x00473a39, 0x003f2c3c, 0x001e1c3a, 0x004c5278, 0x009ea6cc, 0x00aeb2e1, 0x00adb3e0, 0x00aab0de, 0x00a4aad4, 0x00a8afcf, 0x00b6bed5, 0x00afb9ca, 0x00b9c4d2,
- 0x00d3d8de, 0x00d4dade, 0x00d9dfe3, 0x00edf3f7, 0x00e4eaee, 0x00c1c6cd, 0x00b3b7c3, 0x00bbbfcf, 0x00b0b3c9, 0x009b9eb8, 0x009ba2b8, 0x00b1bccb, 0x00b8c2d1, 0x009aa1b1, 0x009fa7b5, 0x00adb5c2,
- 0x00b4b8c5, 0x00c1c2ce, 0x00eaeaf2, 0x00eaecf3, 0x00bfbdc3, 0x00a0a0af, 0x00979fb6, 0x0095a9c9, 0x009ab4e0, 0x00a7afd4, 0x00a99bb3, 0x00875d63, 0x00511210, 0x004f1c25, 0x005b354f, 0x005e466f,
- 0x0047507e, 0x0048507e, 0x0048507e, 0x0047507e, 0x00474f7e, 0x00464e7c, 0x00454d7a, 0x00444d79, 0x00434d79, 0x00434c7a, 0x00414d78, 0x003d4e74, 0x003d4c73, 0x003c4a71, 0x003a496e, 0x0039486d,
- 0x00364768, 0x00354766, 0x00344665, 0x00334664, 0x00344663, 0x00334660, 0x0030465f, 0x002d475e, 0x0026465f, 0x0027475d, 0x00244557, 0x00264452, 0x0027424d, 0x00263b42, 0x00596d6e, 0x00bdcccc,
- 0x00fffbf7, 0x00fbfdfa, 0x00fafefd, 0x00f8fdfc, 0x00fffcf7, 0x00fce3d6, 0x00ad8571, 0x007a412b, 0x00773e28, 0x00602b15, 0x004a2315, 0x002b1c14, 0x00221712, 0x001e1412, 0x001d1515, 0x001d1518,
- 0x0021181d, 0x0023191c, 0x00271a1b, 0x002b1b1a, 0x002e1916, 0x00301e16, 0x00352318, 0x003a271d, 0x00432821, 0x00452922, 0x00472921, 0x004a2d25, 0x00543930, 0x005d443b, 0x006a5249, 0x00755d55,
- 0x007c6b5e, 0x00857467, 0x008f8074, 0x0094887b, 0x00999183, 0x009b9588, 0x009d978c, 0x009e998f, 0x00a09992, 0x00a09992, 0x00a39991, 0x00a1968b, 0x00999084, 0x00938a81, 0x00898079, 0x007f7970,
- 0x00766c62, 0x006a6156, 0x00595044, 0x00504638, 0x004a3e30, 0x00523e30, 0x005d4235, 0x0064483a, 0x006c4f3f, 0x00715545, 0x0076594b, 0x0073594a, 0x006c5748, 0x00645346, 0x0057483f, 0x004d4139,
- 0x00463531, 0x003d302f, 0x0031272a, 0x00252026, 0x001a1b21, 0x00121415, 0x00151612, 0x0018150d, 0x00827674, 0x00bfafa9, 0x00ac9991, 0x009c9379, 0x009c8c8b, 0x00b7a5b3, 0x00efe0f3, 0x00f4e9f9,
- 0x00ede9f1, 0x00eeefec, 0x00f1efea, 0x00efeaeb, 0x00f4e7f1, 0x00eee5e9, 0x00eae4e2, 0x00ece7e4, 0x00eae4e3, 0x00ded8d7, 0x00d3cbcc, 0x00c8c1c2, 0x00bdb7b8, 0x00b8b2b4, 0x00b9b3b5, 0x00bcb5b8,
- 0x00bebbc2, 0x00bfbdc3, 0x00c5c3c9, 0x00cecbd1, 0x00ddd9df, 0x00e5e0e7, 0x00e9e5ec, 0x00ebe8ee, 0x00f0ebf3, 0x00eeedef, 0x00edecf2, 0x00efeeed, 0x00f6f4fa, 0x00f0eef6, 0x00e6e4f1, 0x00e4e1ec,
- 0x00eceaed, 0x00fafcfb, 0x00fcfdfc, 0x00f8fdfa, 0x00fdfeff, 0x00fbf3db, 0x00b8a78a, 0x007f694b, 0x00794f35, 0x00754d2a, 0x00754a26, 0x00784e26, 0x00775226, 0x00755022, 0x00774f24, 0x00795125,
- 0x007e4841, 0x00804d2f, 0x00814e26, 0x007e5115, 0x007b5321, 0x0073522c, 0x006f5236, 0x006e573b, 0x007f6c32, 0x008f802e, 0x0096802f, 0x00886524, 0x00795728, 0x00715333, 0x00745b4d, 0x006f605f,
- 0x00646570, 0x005c6172, 0x00596278, 0x005f657d, 0x007c7b95, 0x008d8a8a, 0x00796f64, 0x0075614e, 0x00815c40, 0x00835730, 0x00875b2d, 0x00845d27, 0x0089632b, 0x00886231, 0x00825c30, 0x00855d35,
- 0x00865233, 0x00795037, 0x00674539, 0x00765e5d, 0x0094909a, 0x00818387, 0x00595c5b, 0x0047483b, 0x00524e2b, 0x008b8453, 0x00856f45, 0x008d6042, 0x00ba8c60, 0x00c1935a, 0x00b28348, 0x00a57b3f,
- 0x00ad895f, 0x00917354, 0x007d6552, 0x009f8b80, 0x0097817b, 0x0081655a, 0x007d594a, 0x0093684d, 0x008b5933, 0x007e5026, 0x00764927, 0x00684426, 0x006c482d, 0x00977547, 0x00a57e42, 0x0097691f,
- 0x008d6133, 0x00855c34, 0x00866045, 0x00866352, 0x00896a60, 0x00876658, 0x008c6957, 0x008c684e, 0x00906344, 0x008c603c, 0x00896337, 0x009b894f, 0x00b9aa91, 0x00a6969b, 0x008f819c, 0x00837da7,
- 0x00494a76, 0x002e324d, 0x004b535e, 0x00757e76, 0x006b755b, 0x00695a3b, 0x007e6246, 0x00ac9580, 0x00cec0be, 0x00c7c4c9, 0x00c7cfd6, 0x00c7d7db, 0x00dce8e6, 0x00f1f3f2, 0x00b1a6a2, 0x00836e6b,
- 0x00bfbaad, 0x00e5e7dc, 0x00d6dcd5, 0x00d3e2db, 0x00bfc5c6, 0x00a2a5a5, 0x00948e90, 0x00968d90, 0x00d0c9cb, 0x00efefef, 0x00e8e7e9, 0x00ede1e6, 0x00d1ccd3, 0x00ccc9d3, 0x00adacb8, 0x0094929e,
- 0x009c95a1, 0x00989197, 0x00cec5c7, 0x00f3f0e8, 0x00fefbf2, 0x00fdfcf4, 0x00fefcfb, 0x00fffefd, 0x00fbfdfb, 0x00bebfc0, 0x0065666a, 0x00888a8f, 0x00babcc5, 0x00d4d7e3, 0x00e7ebf7, 0x00ebf0fc,
- 0x00f2f6f9, 0x00edf0f5, 0x00e0dde6, 0x00e7e1ed, 0x00f2e9f9, 0x00efedfa, 0x00e9ebf6, 0x00e7ecf5, 0x00f4f2fc, 0x00faf6fe, 0x00f3f2f8, 0x00e9f0f5, 0x00e9f1f6, 0x00eaf1f7, 0x00ecf3fb, 0x00e8f2fc,
- 0x00e8eefa, 0x00e7edf9, 0x00e7ecfa, 0x00e9eef9, 0x00eaf0fe, 0x00e8effa, 0x00e3ecf9, 0x00e2edf8, 0x00e6effd, 0x00d4dff1, 0x00a3adc8, 0x0099a1bd, 0x00a0a6bc, 0x009699a5, 0x007a7c7d, 0x00666962,
- 0x00585b4e, 0x00434538, 0x00353527, 0x0031311f, 0x0033331e, 0x0034341d, 0x0036361f, 0x0035351e, 0x00353421, 0x0032321f, 0x0031301d, 0x00302e1b, 0x002f2e1a, 0x002e2e1a, 0x00302f1b, 0x0032311c,
- 0x00332e1d, 0x00322f1c, 0x00312f1d, 0x0031301c, 0x00322f1c, 0x00322e1e, 0x00342d21, 0x00372e21, 0x003c3026, 0x00403228, 0x00443328, 0x00423225, 0x003f3021, 0x003c301f, 0x003b311f, 0x003b3320,
- 0x0033341f, 0x00292b19, 0x0076776a, 0x00e6eadf, 0x00fbfff9, 0x00fbfefa, 0x00fafdf9, 0x00fefefc, 0x00c8c8c5, 0x004d4d49, 0x00080505, 0x001a1719, 0x006f6e6f, 0x00a4a6a6, 0x00a8acad, 0x00a9afaf,
- 0x00acb4b8, 0x00b2b9b9, 0x00afb5b9, 0x00aeb7b7, 0x00b1b6b7, 0x00b1b5b0, 0x0094928d, 0x0069655d, 0x00372825, 0x00311f18, 0x00352016, 0x00381f12, 0x00432615, 0x004f321f, 0x00573b28, 0x00583c27,
- 0x00654c2c, 0x00695531, 0x00765e3b, 0x007d633e, 0x008c6233, 0x00966835, 0x009c703c, 0x008f6b3d, 0x00534838, 0x00353a38, 0x0037404c, 0x00283346, 0x00161931, 0x0010142a, 0x00272d42, 0x0032394c,
- 0x0024303b, 0x00243139, 0x00242f33, 0x001f2425, 0x00111012, 0x0008080d, 0x00101118, 0x0015161c, 0x00181622, 0x00161722, 0x00181a27, 0x00151b27, 0x00192334, 0x001c293b, 0x00263349, 0x002c3b52,
- 0x002c4a62, 0x00335167, 0x0039576c, 0x00395669, 0x00395361, 0x003a4f5a, 0x003d4b53, 0x0042484e, 0x004e494d, 0x00544b4e, 0x005a5050, 0x0058504a, 0x005b4f47, 0x0060523e, 0x009b896e, 0x00ccba97,
- 0x00d2bd96, 0x00d1bc94, 0x00cdb993, 0x00d4bf9c, 0x00d6c2a4, 0x00cec9b6, 0x00cdd0c6, 0x00d2d4cb, 0x00d2d5d5, 0x00d2d6d9, 0x00d4dae0, 0x00d2d8e0, 0x00d0d7e1, 0x00cfd6e1, 0x00ced6e2, 0x00ced7e1,
- 0x00d4dee2, 0x00d3dde2, 0x00d5dde4, 0x00d7e0e7, 0x00dbe2ea, 0x00d8e1e8, 0x00d8e0e7, 0x00dae4ea, 0x00dee4e8, 0x00dee4e9, 0x00dde4ea, 0x00dce3e9, 0x00dbe3e8, 0x00dbe4e8, 0x00dce6e9, 0x00dde7ea,
- 0x00d5dde4, 0x00d1d9e0, 0x00cfd6dd, 0x00d3dadf, 0x00dce2e8, 0x00dee6f0, 0x00d2dce8, 0x00c0ccd5, 0x00b1bcc5, 0x00b1bac3, 0x00b0b2bb, 0x00928f99, 0x00564f5c, 0x00413c49, 0x0070707c, 0x00b0b5c0,
- 0x00fafbfb, 0x00fcfcfa, 0x00faf9f7, 0x00fcfdfa, 0x00f9fbf4, 0x00b1b4aa, 0x00323428, 0x002c2e1f, 0x002b2b1d, 0x002a2c1b, 0x00282a19, 0x0028291a, 0x00252419, 0x001d1c13, 0x0014140b, 0x000e1006,
- 0x000e0c06, 0x000c0d05, 0x000b0c06, 0x000a0d07, 0x00090c07, 0x000a0a08, 0x00090809, 0x00070808, 0x00090609, 0x0009070a, 0x000a070b, 0x000a080c, 0x000b080e, 0x000b080e, 0x0009060e, 0x0006050c,
- 0x00161d44, 0x004c578a, 0x005c67a9, 0x004857a8, 0x003d4dab, 0x003b4aa5, 0x003e4da3, 0x003d499e, 0x003d49a2, 0x003a48a4, 0x003945a4, 0x003545a0, 0x00364294, 0x0032408d, 0x002e3c8b, 0x00283b8c,
- 0x00273b8c, 0x00374281, 0x0054527d, 0x0070636a, 0x00775537, 0x006a491f, 0x00755124, 0x008a6334, 0x00ab824e, 0x00c79f67, 0x00dcb379, 0x00e2b981, 0x00d8af7b, 0x00deb486, 0x00bb8f66, 0x0080542d,
- 0x00a57b4d, 0x00c0996d, 0x00c9a47b, 0x00e6c99f, 0x00f0dab9, 0x00f8ebcf, 0x00f9f1dd, 0x00fbf7eb, 0x00c7c3be, 0x00565554, 0x000f1016, 0x000f151d, 0x00131522, 0x00191826, 0x00191628, 0x001d182d,
- 0x001f182c, 0x001d192e, 0x001d192f, 0x001a192f, 0x0018182e, 0x0018182a, 0x00181827, 0x00161626, 0x00181527, 0x00161325, 0x00171327, 0x00171228, 0x0019142b, 0x001b152d, 0x001f1831, 0x00201932,
- 0x002e1b2a, 0x002f1a29, 0x00321d2c, 0x00341f2d, 0x0038202f, 0x00371e2c, 0x00331c28, 0x002f1621, 0x002e1821, 0x002d1820, 0x002c1923, 0x00241929, 0x00231727, 0x00201529, 0x001f1227, 0x001c1128,
- 0x001d122c, 0x001b1029, 0x00190d28, 0x00160a26, 0x0010051f, 0x000c041a, 0x00090318, 0x00070218, 0x0008031b, 0x0008031c, 0x0009041f, 0x000b0622, 0x000e0826, 0x000f0929, 0x0010092b, 0x000f092b,
- 0x000a0a24, 0x000e0d26, 0x000b0a21, 0x00060518, 0x002c2b3a, 0x0094959e, 0x00f8fafd, 0x00f9fcfb, 0x00fffefe, 0x00fafaf7, 0x00f5f4f8, 0x00ada7bf, 0x00465372, 0x003b597d, 0x00457097, 0x00497cab,
- 0x004279a9, 0x0034689a, 0x00204c85, 0x00204681, 0x00254388, 0x00204483, 0x00173f7c, 0x00123b78, 0x00163b7a, 0x00163b7a, 0x00173b7a, 0x00193d7a, 0x001a3d77, 0x00183a71, 0x0017386d, 0x0018386c,
- 0x000b3772, 0x00173665, 0x00203a5e, 0x0029405d, 0x00244b78, 0x001b4e8b, 0x00275da0, 0x003d6aaa, 0x00766884, 0x00936966, 0x00ab6c60, 0x00b96f63, 0x00b5788a, 0x00976c9c, 0x007a65a8, 0x005c61b0,
- 0x00223170, 0x000f0d32, 0x00594642, 0x00aa8760, 0x00ce9e5e, 0x00b1865b, 0x00815a39, 0x00643617, 0x00582107, 0x005e311d, 0x0065433c, 0x0054484b, 0x002f3e61, 0x00385b8d, 0x00315d9b, 0x001e549b,
- 0x001c408e, 0x00133e86, 0x001a488c, 0x001c4b8b, 0x00255092, 0x002b5393, 0x002b5091, 0x00234585, 0x00173c78, 0x00103b70, 0x0016396d, 0x001c2f68, 0x001d376e, 0x001a366a, 0x0027416b, 0x00354967,
- 0x00363948, 0x003d3d44, 0x00464149, 0x00827e84, 0x00d4d4e5, 0x00dfe6e7, 0x00ecf3f1, 0x00f9fefc, 0x00fcfcfc, 0x00fdfdfd, 0x00fcfafc, 0x00efeff2, 0x00b0b5bb, 0x00858d96, 0x0086919c, 0x0086949f,
- 0x0087919d, 0x00848f9a, 0x00828d98, 0x00818d96, 0x0087949d, 0x008a98a0, 0x008b99a0, 0x0089979e, 0x0082919b, 0x00798991, 0x0073838d, 0x00677785, 0x005a6a7a, 0x004b5c6b, 0x00324453, 0x00203340,
- 0x00192b3d, 0x00233542, 0x00324453, 0x003d4e5c, 0x0049596a, 0x004c626b, 0x004d646e, 0x00586872, 0x00676d79, 0x00757377, 0x00676258, 0x0045422a, 0x002a1a06, 0x002e1501, 0x0073532b, 0x00b1875f,
- 0x00ddb781, 0x00dcb57c, 0x00d1a66f, 0x00d5a770, 0x00c4965c, 0x00b58750, 0x00d4a872, 0x00dfb384, 0x00e9bd97, 0x00cda27f, 0x007d5b3f, 0x004d3a2c, 0x004d3931, 0x00524135, 0x0055443c, 0x004e4336,
- 0x00504332, 0x00504231, 0x00574539, 0x004d3c33, 0x004a3535, 0x00282732, 0x003b4456, 0x00929aae, 0x00b5b6d3, 0x00b4b6d1, 0x00babbd7, 0x00b3b6cf, 0x00c9cedf, 0x00e0e7f1, 0x00c9d0d8, 0x00c0c7ce,
- 0x00d5d6de, 0x00e0e2e7, 0x00dedfe2, 0x00e8e7eb, 0x00f3f2f6, 0x00e2e2e7, 0x00b1b5bd, 0x00abb1bd, 0x00aab3cb, 0x0095a1ba, 0x0095a1bb, 0x00a6b1c7, 0x00a9b3c7, 0x00939cad, 0x00a0a9b7, 0x00acb4c1,
- 0x00b3b8c1, 0x00c3c6cd, 0x00e4e5ec, 0x00e8ecef, 0x00c0c2c7, 0x009ea4ae, 0x00949fb3, 0x0096aac7, 0x009eb3dc, 0x00abb0d3, 0x00968ca2, 0x00624548, 0x003a0b05, 0x004a2728, 0x005f4753, 0x005b5469,
- 0x00484f75, 0x00474f75, 0x00474f79, 0x0047517e, 0x0044517f, 0x003f4e7c, 0x003f4d79, 0x00414e77, 0x00404b73, 0x00404b6f, 0x003d4b6e, 0x00394a6e, 0x00374a6c, 0x0036496a, 0x00354968, 0x00364966,
- 0x00324765, 0x00314763, 0x00324562, 0x00324560, 0x0030455e, 0x002d475b, 0x002b4758, 0x00294757, 0x00274958, 0x00254856, 0x00244654, 0x001e424d, 0x0025434e, 0x001c3a43, 0x003d5861, 0x0096b1b9,
- 0x00fefff2, 0x00fafff7, 0x00f9fffc, 0x00fafefd, 0x00fffdf9, 0x00fce9dc, 0x00b08d7a, 0x0075442e, 0x00713a26, 0x005f2915, 0x004a2314, 0x002a1c11, 0x0021170e, 0x001c140e, 0x001d1715, 0x001e191b,
- 0x001f181b, 0x00241b1c, 0x002b1e1d, 0x00301f1c, 0x00321c17, 0x00301e13, 0x00322114, 0x00362418, 0x0040251c, 0x0043251d, 0x0044241d, 0x00472921, 0x0052342d, 0x005b4038, 0x00684f46, 0x00755a52,
- 0x007b685a, 0x00847164, 0x008e7d72, 0x0093867a, 0x00978e81, 0x00989286, 0x00999389, 0x009b948c, 0x009f948e, 0x009e928f, 0x00a0938c, 0x009c9184, 0x00928a7d, 0x008b837a, 0x007f7871, 0x00737068,
- 0x00696358, 0x0060574d, 0x0050463b, 0x00493c30, 0x0047382a, 0x00503a2d, 0x005a4134, 0x0063493c, 0x006c4e3d, 0x00715544, 0x00775a4b, 0x00755a4b, 0x006d5848, 0x00675548, 0x005b4b41, 0x0051433c,
- 0x00433333, 0x003a2d2e, 0x002f2625, 0x00241f20, 0x0018181a, 0x00121213, 0x00121213, 0x000f090a, 0x00594f4d, 0x00ae9e9b, 0x00b6a1a1, 0x00ac948f, 0x00ad9392, 0x00b79ea4, 0x00e4d3da, 0x00f1eaf3,
- 0x00eceff7, 0x00edf0f9, 0x00f4f2fb, 0x00f5edf8, 0x00fde6f7, 0x00f3eaf1, 0x00efefed, 0x00f1eef0, 0x00eeefee, 0x00ededec, 0x00ebe9ea, 0x00e7e6e6, 0x00e5e4e4, 0x00e1e1e0, 0x00e1dfdf, 0x00e2e0e1,
- 0x00e0e3e6, 0x00e2e4e8, 0x00e8e9ee, 0x00ebecf1, 0x00f1f0f6, 0x00efeff4, 0x00eeeff4, 0x00ecedf3, 0x00eeeef1, 0x00ebecef, 0x00e7e7ed, 0x00e4e0ea, 0x00e2dde5, 0x00dad8df, 0x00cccbcf, 0x00cbc9cd,
- 0x00ebeeec, 0x00fafcfa, 0x00fcfffd, 0x00f8fefc, 0x00fdfeff, 0x00f4f0d8, 0x00a89c7e, 0x006f5f47, 0x006b503f, 0x006a4c32, 0x006c4a27, 0x00754f21, 0x00785117, 0x00774c15, 0x007a4d18, 0x007e4f1f,
- 0x00784a3f, 0x007d4d2b, 0x007e4f1c, 0x0080520b, 0x00765220, 0x00694f32, 0x00605044, 0x00655c59, 0x007d7649, 0x00938b49, 0x00a5964e, 0x008d7635, 0x006f5832, 0x00746557, 0x0087838e, 0x0077809d,
- 0x004c6d9c, 0x0041679a, 0x003c6298, 0x00436196, 0x007c8dc1, 0x008b9eb4, 0x00848f94, 0x00736f6c, 0x007b5844, 0x00855936, 0x008b5a2c, 0x00895e22, 0x00895f23, 0x008b5e2e, 0x008d5c37, 0x008f593d,
- 0x00875933, 0x00744a2a, 0x00785037, 0x009c7a65, 0x00ac9584, 0x00988471, 0x007e6b53, 0x007c674b, 0x00766237, 0x0094804e, 0x007f623a, 0x007e523e, 0x00a07953, 0x00b68c5c, 0x00a57d49, 0x009a7440,
- 0x009b7a58, 0x00866956, 0x00715c53, 0x00988887, 0x00989393, 0x008d7b73, 0x00816459, 0x007e5848, 0x0072492d, 0x006b4523, 0x00714e2d, 0x007e613f, 0x00a38667, 0x00b29165, 0x00956d3c, 0x008e5e26,
- 0x008b674a, 0x00937158, 0x008b6b5a, 0x00796053, 0x00684d4a, 0x00654c45, 0x00836a63, 0x008f7368, 0x007d5d47, 0x00846347, 0x00aa9579, 0x00d4d7bc, 0x00e6e2d1, 0x00d4cfce, 0x00d7d3e4, 0x00d6d8f8,
- 0x0092a7d4, 0x005b769b, 0x004a657e, 0x007e949b, 0x00a7b4a5, 0x0098917a, 0x009b8a6f, 0x00b8aa93, 0x00c2bdb2, 0x00b8bdbe, 0x00bdccd7, 0x00bbd1e3, 0x00c9d6e5, 0x00efeef7, 0x00dbc8c8, 0x00ba9992,
- 0x00cfc5b0, 0x00f1e8df, 0x00e4dfe4, 0x00e1e4ee, 0x00c3cfd1, 0x00b4c4b3, 0x00c0ccb4, 0x00b9bfa3, 0x00d2c9bb, 0x00f4e5e6, 0x00f3e5f0, 0x00e9e9f0, 0x00d3d2df, 0x00b1b2c3, 0x00858497, 0x008a8c9e,
- 0x009fa1af, 0x00a3a1ac, 0x00d4cdd2, 0x00f3edeb, 0x00fffcf4, 0x00fdfcf7, 0x00fffdfb, 0x00fdfefc, 0x00fafdfb, 0x00bec0c1, 0x00626367, 0x0086878d, 0x00b9bbc3, 0x00d8dbe6, 0x00ebeffb, 0x00f1f5ff,
- 0x00edf5f6, 0x00eaecf1, 0x00ddd8e3, 0x00e6dbeb, 0x00f1eafc, 0x00f0eefe, 0x00e7ebf8, 0x00e7edf8, 0x00f4f2fa, 0x00fcf5fc, 0x00f5f0f7, 0x00eaf0f6, 0x00e9f0f7, 0x00ebf0f7, 0x00eff5fd, 0x00ebf3fd,
- 0x00e7eef7, 0x00e6edf6, 0x00e7ecf9, 0x00e7edf8, 0x00e9effe, 0x00e7eefb, 0x00e0e7fc, 0x00e3ecfa, 0x00e6f0fd, 0x00d9e5f6, 0x009ea8c1, 0x008189a4, 0x00babfd6, 0x00c4c6d4, 0x008a8a90, 0x00646562,
- 0x00565c53, 0x00474b42, 0x0036372c, 0x00333324, 0x0034331f, 0x0035341d, 0x0038361e, 0x0039361e, 0x00353721, 0x00333520, 0x0033321e, 0x0033301d, 0x00312f1c, 0x00302f1c, 0x0031301d, 0x0033311e,
- 0x0033311e, 0x0033311e, 0x0033311e, 0x0032311e, 0x0033311e, 0x00332f20, 0x00352e22, 0x00382f23, 0x003c3025, 0x00413328, 0x00443428, 0x00423224, 0x003e3122, 0x003b301f, 0x0039321f, 0x003b3422,
- 0x0030341d, 0x00272b19, 0x00777869, 0x00e8eae0, 0x00fcfef8, 0x00fcfdf8, 0x00fbfcf9, 0x00fffefd, 0x00c7c7c2, 0x004c4c48, 0x00030403, 0x00232526, 0x007f8082, 0x00a6a8a9, 0x00a7aaab, 0x00aaacad,
- 0x00acb4b7, 0x00b4b9bc, 0x00b2b9be, 0x00b6bdc2, 0x00b9bfc6, 0x00bebeb9, 0x008c867f, 0x005f534c, 0x00412a24, 0x004b3128, 0x00513327, 0x00543222, 0x005a3521, 0x00613e27, 0x00614028, 0x005c3b21,
- 0x0058422a, 0x005d4022, 0x00754c28, 0x00885a2f, 0x00835b21, 0x007d5f24, 0x00806d36, 0x00786f42, 0x004a462c, 0x00484130, 0x00646265, 0x00515a73, 0x0026324b, 0x00141f34, 0x001d2739, 0x00202c3b,
- 0x001b2628, 0x002b3435, 0x002f3230, 0x0028261f, 0x0018110b, 0x000e0908, 0x00120e12, 0x00171418, 0x001a171c, 0x0018171d, 0x0016151f, 0x0014161f, 0x00161b27, 0x00191f2b, 0x00252b39, 0x002e3543,
- 0x002b4253, 0x0033495b, 0x003b5165, 0x003d5366, 0x003b4f5f, 0x003a4b57, 0x003c474f, 0x003f434b, 0x00454543, 0x004a4645, 0x004d4845, 0x004d4b47, 0x00554e42, 0x00665c46, 0x00a39675, 0x00c8b991,
- 0x00cebd8f, 0x00cebb90, 0x00cfbc97, 0x00d4bea1, 0x00d5bfa9, 0x00cdc8bc, 0x00c9cfc9, 0x00cdd3cd, 0x00ced2d1, 0x00cfd4d5, 0x00d1d7db, 0x00ced6da, 0x00cdd5de, 0x00ccd4e0, 0x00cdd6e3, 0x00ced7e5,
- 0x00d4dde0, 0x00d5dee2, 0x00dae0e5, 0x00dae2e7, 0x00dde1e7, 0x00d9e1e6, 0x00d9e0e6, 0x00d9e1e7, 0x00dae2e5, 0x00dbe2e7, 0x00dce3e9, 0x00dce4e9, 0x00dce3e8, 0x00dbe3e7, 0x00dee6eb, 0x00e1e9ee,
- 0x00e0e8ec, 0x00dde5e9, 0x00d6dce3, 0x00d0d5db, 0x00c7cdd3, 0x00cbd1db, 0x00ced6e2, 0x00ccd9e4, 0x00c5d7e1, 0x00c4d0db, 0x00c0c5d1, 0x00bbb5c4, 0x00817486, 0x00473b4e, 0x005a5366, 0x00a2a0b0,
- 0x00f2f3f0, 0x00fdfefb, 0x00fbfbf8, 0x00fdfefa, 0x00f9faf2, 0x00c5c7bc, 0x00484a3e, 0x002b2d1e, 0x002b2e1f, 0x00272a19, 0x00272818, 0x00252417, 0x00212016, 0x001a1910, 0x00131209, 0x000e0d05,
- 0x000e0b05, 0x000c0a04, 0x000c0a05, 0x000c0a07, 0x000c0a07, 0x000d0809, 0x000d060a, 0x000b0608, 0x00090409, 0x000a050a, 0x000b050a, 0x000c060b, 0x000e060c, 0x000d050c, 0x000a040a, 0x00080208,
- 0x00152249, 0x004e5a8e, 0x005763a7, 0x004854a8, 0x003d4baa, 0x003748a2, 0x003a4ba1, 0x003d4da0, 0x003c49a1, 0x003c47a4, 0x003a44a3, 0x0033449e, 0x00353f92, 0x00323d8d, 0x002d398a, 0x0027378b,
- 0x00233787, 0x00313c7e, 0x00605e88, 0x006b5d63, 0x00785535, 0x00997749, 0x00b28d56, 0x00b99059, 0x00c29b60, 0x00d5ad71, 0x00e0b77c, 0x00e6bc85, 0x00d1a373, 0x00d1a278, 0x00ba8a63, 0x009e6c4a,
- 0x00c59971, 0x00deb38e, 0x00e9be98, 0x00e5be99, 0x00eecfac, 0x00f6e0c3, 0x00fcf2d8, 0x00fdfce9, 0x00f3f2e4, 0x00aaaca3, 0x00282d2a, 0x00071015, 0x0014171e, 0x00151220, 0x00171021, 0x001d1229,
- 0x001f122b, 0x001d132c, 0x001c142e, 0x0019142d, 0x0015132a, 0x00151427, 0x00171526, 0x00171626, 0x00171426, 0x00161426, 0x00151327, 0x0016142a, 0x0017142c, 0x001a1730, 0x001b1932, 0x001c1a33,
- 0x002a1927, 0x002b1828, 0x00301a2b, 0x00321a2b, 0x00361b2f, 0x0033182a, 0x00301525, 0x002b101f, 0x00281420, 0x0026141f, 0x00261622, 0x001e1728, 0x001f1527, 0x001c1629, 0x001c142a, 0x001a132b,
- 0x001a112a, 0x001a102c, 0x00180d2d, 0x0015092c, 0x00100627, 0x000d0621, 0x0009051b, 0x0007041a, 0x0007021a, 0x0008021b, 0x0008031e, 0x00090420, 0x000c0625, 0x000e0829, 0x000f0a2c, 0x00100a2d,
- 0x000a0a1f, 0x000f0e24, 0x000c0a21, 0x0006041a, 0x001e1d30, 0x00797a89, 0x00f2f5fd, 0x00f6fafc, 0x00fcfef9, 0x00f7fbf3, 0x00fdf6fb, 0x00cab9d9, 0x0054577a, 0x00374e74, 0x0042698d, 0x00457aa3,
- 0x0034729e, 0x002f6693, 0x003a6797, 0x005b7da8, 0x00657bab, 0x0042669c, 0x00244e89, 0x001a4681, 0x00194480, 0x0016407c, 0x00163f7a, 0x00183f79, 0x00193f77, 0x00183d71, 0x00183c6d, 0x00183d6a,
- 0x0008437a, 0x00213d67, 0x002f3957, 0x0039364b, 0x00254571, 0x0012508f, 0x001b62ab, 0x00326cae, 0x007c5663, 0x00ad4a33, 0x00ce522b, 0x00cf573d, 0x0092678f, 0x00665eae, 0x004a56b3, 0x003645a0,
- 0x001a2a71, 0x00172b66, 0x00293358, 0x0067605f, 0x00bc7f3f, 0x00a47a56, 0x00633c28, 0x004d1b0a, 0x00642819, 0x00824e3e, 0x007d5847, 0x004b3d2a, 0x00182a32, 0x002e4c6f, 0x00335592, 0x0025499a,
- 0x001e4290, 0x00174286, 0x00194887, 0x001e4e86, 0x00244f8d, 0x00284b8b, 0x0027438a, 0x00223981, 0x0014346d, 0x000a3564, 0x000d3462, 0x00152d67, 0x001c2e5f, 0x00293861, 0x004a556f, 0x004c5466,
- 0x00353740, 0x00303238, 0x00343139, 0x00706e75, 0x00d2cfda, 0x00e4e9eb, 0x00e8eeed, 0x00f8fdfc, 0x00fdfdfd, 0x00fdfefc, 0x00fcfdfb, 0x00f9fafb, 0x00c2c6cd, 0x008a919c, 0x00868f9c, 0x008993a1,
- 0x0087919c, 0x0085909b, 0x00838d98, 0x00838f99, 0x0085929b, 0x0089969f, 0x0088969e, 0x0087969e, 0x007f9099, 0x00788890, 0x0072828c, 0x00677684, 0x005d6b7b, 0x004e5c6c, 0x00384656, 0x00273645,
- 0x001a2c3a, 0x001e2f3f, 0x002a3c4a, 0x00374857, 0x00425262, 0x00455a67, 0x004b616a, 0x0053646d, 0x00556567, 0x005d6762, 0x00686a62, 0x00747562, 0x0074624d, 0x00563f24, 0x004e2f10, 0x006a4528,
- 0x009a7753, 0x00c29e70, 0x00dcb384, 0x00daaf78, 0x00d3a667, 0x00c79a59, 0x00d3a869, 0x00dcaf78, 0x00d8ac83, 0x00af8363, 0x0069402b, 0x0050312c, 0x004a2d28, 0x004e372f, 0x00574339, 0x0057493b,
- 0x00534734, 0x00594b37, 0x00574434, 0x005a4634, 0x00674f3f, 0x00464440, 0x003d434b, 0x00767a82, 0x0092939f, 0x0094949d, 0x00a5a5ae, 0x00babbc3, 0x00dde0e6, 0x00edf1f4, 0x00e9edf0, 0x00dcdee0,
- 0x00cbcdd6, 0x00ceced5, 0x00d5d2d8, 0x00dad4d8, 0x00eee8eb, 0x00f6f3f6, 0x00caccd2, 0x00a2a8b2, 0x0091a2b7, 0x0090a5bd, 0x008fa0bc, 0x00919eb9, 0x008793aa, 0x008591a4, 0x009ea8b7, 0x00a7b0bd,
- 0x00b1babe, 0x00c3c9cd, 0x00e3e6ed, 0x00e8edee, 0x00bfc2c5, 0x009ea5ae, 0x00959fb5, 0x0097a8c6, 0x00a1b2d6, 0x00a9aecc, 0x006e6679, 0x00382426, 0x003c1c14, 0x004f3b35, 0x005d5453, 0x00575f62,
- 0x0051556d, 0x004a506c, 0x00454e70, 0x00434f78, 0x003f507e, 0x003b4e7c, 0x003b4d77, 0x003f4c75, 0x003a4a68, 0x003b4963, 0x00384964, 0x00334966, 0x00324864, 0x00314863, 0x00304863, 0x00314861,
- 0x002e485e, 0x002f475d, 0x002e465c, 0x002e455b, 0x002c4559, 0x00284756, 0x00254853, 0x00244852, 0x0022474f, 0x00244651, 0x00234853, 0x001e424c, 0x00224651, 0x001d3f49, 0x00284c56, 0x006f929e,
- 0x00fffff5, 0x00fbfff9, 0x00f9fffe, 0x00faffff, 0x00fffdfa, 0x00fdede2, 0x00b59382, 0x0073462e, 0x006d3824, 0x005f2b17, 0x00492413, 0x002d1f13, 0x00241810, 0x00211712, 0x00211a18, 0x00211b1b,
- 0x00231b1c, 0x00291e1d, 0x0030221e, 0x0034231d, 0x0037201a, 0x00321f15, 0x00322014, 0x00352016, 0x003e2218, 0x0040221a, 0x0040221b, 0x00442720, 0x0051322c, 0x005a3d37, 0x00674c44, 0x00725850,
- 0x0079665a, 0x00826f64, 0x008d7b72, 0x0092837a, 0x00968b82, 0x00978f85, 0x00979086, 0x00999087, 0x009d918b, 0x009b8f8a, 0x009b8e87, 0x00968a7e, 0x008c8377, 0x00837b73, 0x0077706a, 0x006c6862,
- 0x00615952, 0x00564d44, 0x00463c32, 0x00423529, 0x00443327, 0x004e372b, 0x00584031, 0x00634939, 0x006b4d3b, 0x006f5340, 0x00765947, 0x00765a4a, 0x00705849, 0x006b564a, 0x00614d45, 0x0057443e,
- 0x00443431, 0x00372a29, 0x002d2323, 0x00221c1f, 0x0019181c, 0x00161517, 0x00161416, 0x000d0606, 0x00312325, 0x00796968, 0x00b1918b, 0x00b2756e, 0x00ab6d68, 0x00a56e6d, 0x00c6989a, 0x00f3dadc,
- 0x00f5eeef, 0x00f0f1f1, 0x00ecf1f4, 0x00f0f1f6, 0x00f7ecf3, 0x00f5f0f2, 0x00f2f0f1, 0x00efebed, 0x00eeedec, 0x00f1f0f0, 0x00f1f0f0, 0x00efeeef, 0x00f2f0f0, 0x00f3f1f2, 0x00f2eff1, 0x00f2eff1,
- 0x00f3f3f8, 0x00f3f3f8, 0x00f4f4fa, 0x00f0f1f6, 0x00edeaf1, 0x00eae8ee, 0x00eae9ef, 0x00e9e8ef, 0x00dfdce5, 0x00d4d2d8, 0x00cecad0, 0x00c2bcc5, 0x00bcb7bd, 0x00b5b3b9, 0x00b8b6ba, 0x00c4c0c5,
- 0x00f0f0f0, 0x00fcfbfd, 0x00fcfdfe, 0x00fafefd, 0x00fdfefe, 0x00f2efe6, 0x00a0998f, 0x00665d59, 0x00615052, 0x00604d4a, 0x00614d42, 0x00664e36, 0x006d4e28, 0x00714c23, 0x00734c21, 0x007a4e20,
- 0x00794b27, 0x007a4e16, 0x007b4e0b, 0x007a4f02, 0x006f5327, 0x00635049, 0x00574d62, 0x00616188, 0x006d7186, 0x00747778, 0x008d947f, 0x007d8761, 0x00606556, 0x00757c85, 0x008a96b4, 0x006b7fad,
- 0x00395c95, 0x003d6195, 0x004b6a98, 0x00596e94, 0x00777c9e, 0x00838ca5, 0x0085889a, 0x007b6f78, 0x00805948, 0x008a5d3c, 0x008a592b, 0x00875b20, 0x00866122, 0x00866029, 0x00885d2c, 0x0086582f,
- 0x00865f3a, 0x007a5431, 0x0091694e, 0x00b48f73, 0x00b7957d, 0x009c7a61, 0x007b5c3f, 0x00856847, 0x008b724a, 0x00907a4c, 0x00755a37, 0x00684837, 0x00826041, 0x00916e44, 0x007b582b, 0x00735423,
- 0x0086684a, 0x007d6552, 0x007e6964, 0x00a79d9d, 0x00aaa6a7, 0x00998c83, 0x00977d6f, 0x008d6d59, 0x00714b2c, 0x00644122, 0x0078573a, 0x00a58c71, 0x00e7ceb5, 0x00d9bb9c, 0x0097764f, 0x008e6539,
- 0x00a18970, 0x00c3ac96, 0x00bca795, 0x00a6968a, 0x00887571, 0x006c5a55, 0x0084736c, 0x00a79187, 0x008c7560, 0x008f775b, 0x00d5c7b2, 0x00e3e6e5, 0x00dfdad7, 0x00d0cdc8, 0x00e3e2e3, 0x00eef3f7,
- 0x00e2f2fa, 0x00b5c8d4, 0x00879aa5, 0x00a2afb4, 0x00dfdddb, 0x00e0d7cf, 0x00c4b9ae, 0x00beb2a5, 0x00b4b1aa, 0x00afb3b4, 0x00bcc7d2, 0x00b7cadc, 0x00bccadd, 0x00dadfeb, 0x00dfd7db, 0x00c9b5b2,
- 0x00ccc5b3, 0x00e4dcd7, 0x00dfdce2, 0x00e6e8f8, 0x00cedbdf, 0x00b9c8bf, 0x00b9c6b5, 0x00b0b7a6, 0x00d0ccc7, 0x00f2e8f1, 0x00e7dfee, 0x00d7d8e3, 0x00c9ccd9, 0x00a4a8b7, 0x00707486, 0x00717488,
- 0x008d8b9d, 0x009e9da9, 0x00c4c2c9, 0x00e6e3e3, 0x00fffcf8, 0x00fdfdf7, 0x00fffdfb, 0x00fcfdfa, 0x00fdfcfe, 0x00c0c0c3, 0x00626368, 0x0084868c, 0x00babcc4, 0x00dbdee8, 0x00edf2fc, 0x00f0f6ff,
- 0x00edf4f7, 0x00e9ecf1, 0x00ded9e4, 0x00e5daeb, 0x00f2e8fc, 0x00f0edfe, 0x00e6ebf8, 0x00e6eef7, 0x00f4f4fa, 0x00fbf4fb, 0x00f6eff8, 0x00edf1fa, 0x00e9eff9, 0x00e9eef7, 0x00f0f4fd, 0x00edf1fc,
- 0x00e8eef9, 0x00e6ecf8, 0x00e7edfa, 0x00e7ecfa, 0x00e8ecfc, 0x00e7ecfd, 0x00e1e7fd, 0x00e3ecfa, 0x00e2edfc, 0x00dae7fa, 0x00a4afc7, 0x008992ae, 0x00d8dcf6, 0x00dddeed, 0x0098979f, 0x00676765,
- 0x00585d57, 0x00494e45, 0x00393c31, 0x00353627, 0x00383523, 0x00393520, 0x003a3620, 0x003a3720, 0x00363822, 0x00333720, 0x0034341f, 0x0035321f, 0x0035321f, 0x0034321f, 0x00343220, 0x00353321,
- 0x00333420, 0x0034331f, 0x00353320, 0x00353320, 0x00363320, 0x00353122, 0x00382f24, 0x003b3025, 0x003e3126, 0x00423428, 0x00453428, 0x00423325, 0x003f3223, 0x003b3221, 0x00393321, 0x003a3523,
- 0x0033351f, 0x00292c19, 0x00777969, 0x00e8eadf, 0x00fcfef9, 0x00fcfdfa, 0x00fbfcfa, 0x00fefffd, 0x00c8c7c5, 0x004d4d47, 0x00070905, 0x002f3232, 0x00909193, 0x00aaacae, 0x00a6a9ac, 0x00a5a7a9,
- 0x00adb3b7, 0x00b3b9bc, 0x00b6bec0, 0x00b9c2c6, 0x00babfc7, 0x00b3b0a9, 0x00776b5d, 0x00554537, 0x00593c2f, 0x006e4c3b, 0x00754d3a, 0x00774a33, 0x007e4b31, 0x007f4b2e, 0x00774425, 0x006d3a18,
- 0x0066442a, 0x006c4326, 0x00855532, 0x00955f36, 0x00895a27, 0x0072501e, 0x005f491b, 0x00594f2b, 0x004a4234, 0x00655d56, 0x00a7a3ab, 0x00989ab7, 0x0052556a, 0x001e2134, 0x000a0e1a, 0x00080f15,
- 0x00212627, 0x00383a37, 0x003d3b36, 0x00322e25, 0x00231c12, 0x0016100b, 0x00130e0f, 0x00171213, 0x001a1517, 0x00181618, 0x00141419, 0x0012141b, 0x0010151f, 0x00101620, 0x001d232d, 0x00293039,
- 0x002d3c4c, 0x00344453, 0x003c4d5b, 0x003e4f5e, 0x003c4b5a, 0x003b4854, 0x003c464d, 0x003e4347, 0x00454244, 0x00484342, 0x00484442, 0x00444442, 0x00524c44, 0x00716954, 0x00aca083, 0x00c3b492,
- 0x00cebd94, 0x00cbb995, 0x00cdbc9b, 0x00d0bea3, 0x00d2bfad, 0x00cbc7be, 0x00ccd0ca, 0x00cdd1cc, 0x00cbd0d1, 0x00cad1d4, 0x00cbd3d6, 0x00c9d1d5, 0x00c9d1d9, 0x00cbd2dd, 0x00cdd4e0, 0x00ced6e3,
- 0x00d3dae1, 0x00d5dde2, 0x00d8dfe5, 0x00d9e1e6, 0x00dae0e6, 0x00d8dee5, 0x00d8dee4, 0x00d8dee4, 0x00d8e0e4, 0x00d8e1e5, 0x00dae2e7, 0x00dbe3e7, 0x00dbe1e6, 0x00dae0e7, 0x00dee3eb, 0x00e2e8ee,
- 0x00ebf0f4, 0x00ebf2f6, 0x00e7edf2, 0x00dce1e7, 0x00ccd2d8, 0x00c6cbd3, 0x00bec3cf, 0x00bdc8d2, 0x00c9d9e3, 0x00d5dee8, 0x00d9dce8, 0x00eae2f2, 0x00c3b2c6, 0x006a5a6c, 0x00473d4d, 0x008f8b9a,
- 0x00ebebe8, 0x00fdfdfa, 0x00fdfdfb, 0x00fefefb, 0x00fcfdf7, 0x00d8dad0, 0x005d5f54, 0x00292c1f, 0x002a2f1f, 0x00272a1a, 0x00272719, 0x00232217, 0x001e1d14, 0x0018170d, 0x00120f06, 0x000f0a03,
- 0x000b0b03, 0x000b0b03, 0x000b0904, 0x000a0905, 0x000a0a06, 0x000c080a, 0x000d060c, 0x000c050a, 0x00070307, 0x00070307, 0x00070307, 0x00070307, 0x000a0208, 0x000b0309, 0x00080308, 0x00070106,
- 0x001d294f, 0x00515d91, 0x005965a9, 0x004652a5, 0x00404baa, 0x003a49a3, 0x003a4ba0, 0x003d4ba0, 0x003b489d, 0x003b45a1, 0x003942a0, 0x0033429a, 0x00343d8f, 0x00303a88, 0x002a3684, 0x00253486,
- 0x00223381, 0x002c3573, 0x006c688d, 0x007a6a6b, 0x00946f4b, 0x00c39e72, 0x00d1aa78, 0x00cfa673, 0x00d1aa6f, 0x00ddb47a, 0x00e7bd84, 0x00e7bc86, 0x00c8996a, 0x00b6855a, 0x00b6865e, 0x00c18f6d,
- 0x00cb9e78, 0x00c99d79, 0x00bd906b, 0x00a57954, 0x00a7805f, 0x00bb9d80, 0x00dfcdb1, 0x00fdf3dc, 0x00fcf8ea, 0x00e4e3d7, 0x0061625e, 0x0010161d, 0x0010121c, 0x0012101d, 0x00181223, 0x001a1026,
- 0x001a0e29, 0x00191028, 0x00181229, 0x00151128, 0x00111125, 0x00121223, 0x00141426, 0x00141527, 0x00161428, 0x00151328, 0x00141228, 0x0014122a, 0x0016132c, 0x0018152f, 0x00191730, 0x001b1832,
- 0x0023152a, 0x0025162b, 0x0029172b, 0x002c162b, 0x002e162c, 0x002c1429, 0x00291122, 0x00260e1f, 0x0023101e, 0x0021111d, 0x00201322, 0x001b1428, 0x001b1429, 0x001b162b, 0x001c152c, 0x001c152d,
- 0x0017112d, 0x0017102d, 0x00150e2d, 0x00120b2d, 0x000f0729, 0x000c0622, 0x0009051c, 0x0008041d, 0x0008041d, 0x0008031d, 0x0008031e, 0x00080320, 0x000a0423, 0x000c0727, 0x000e082a, 0x000e082b,
- 0x000d0c25, 0x000e0d25, 0x000f0e25, 0x000a091f, 0x00100f23, 0x005e5d6d, 0x00ecedf6, 0x00fafcfe, 0x00fcfdfe, 0x00fbfdf8, 0x00fefdfb, 0x00d5d3dc, 0x005c6681, 0x002c446d, 0x003c5e94, 0x003e6cab,
- 0x003e6cad, 0x003e6496, 0x006a85ab, 0x00a3b6cb, 0x00acb3b7, 0x00718cae, 0x0041659a, 0x002d5287, 0x00274b83, 0x0023467e, 0x0020417a, 0x00204079, 0x00204078, 0x001f3f74, 0x001e3f70, 0x001e3f6d,
- 0x00134780, 0x001f3f6d, 0x0027375c, 0x00323654, 0x0027426f, 0x001e5187, 0x00265e99, 0x00335f92, 0x00603e4b, 0x008e3b30, 0x00b75043, 0x00b15255, 0x00735b98, 0x004e56af, 0x00324baf, 0x001c3592,
- 0x00203487, 0x00253f86, 0x0032487d, 0x0040425a, 0x00845941, 0x008d6d4c, 0x005c3e1d, 0x00542a0d, 0x00744021, 0x008d5f40, 0x00755537, 0x003c3018, 0x00061517, 0x00132b4c, 0x0029477c, 0x002b4995,
- 0x00264a97, 0x001d478c, 0x00174584, 0x001a4984, 0x001f4887, 0x00234185, 0x0020377d, 0x001c3075, 0x000f2d67, 0x00092f5c, 0x000c315b, 0x00132d59, 0x0034496f, 0x005c6f89, 0x006d7a8d, 0x00545a68,
- 0x00313335, 0x00232626, 0x00302f30, 0x00626061, 0x00cccacc, 0x00eaefee, 0x00e6ebeb, 0x00f6fafa, 0x00fffdff, 0x00fdfcfc, 0x00fffdfc, 0x00fdfdfd, 0x00d3d6dd, 0x00989ea9, 0x00828a95, 0x0086909c,
- 0x0086909b, 0x00848f9a, 0x00828d98, 0x00818d98, 0x00838f9a, 0x0085929d, 0x0086939e, 0x0085929d, 0x007b8d96, 0x0074858e, 0x006e7e8b, 0x00657584, 0x005b6b79, 0x004d5d6b, 0x00394958, 0x00293a49,
- 0x001f2e3c, 0x001e2d3c, 0x00213341, 0x002c3f4b, 0x00394a59, 0x003e5260, 0x00445a67, 0x00495c67, 0x004a5c61, 0x004e5c5c, 0x00555e58, 0x0063675c, 0x008d8472, 0x00968773, 0x00746049, 0x004c341e,
- 0x00422810, 0x00644a25, 0x009a7d58, 0x00be9d6e, 0x00d4ad79, 0x00d0a771, 0x00c59c67, 0x00be9661, 0x00aa7e53, 0x008c5f38, 0x006f4727, 0x005f3c26, 0x00573825, 0x00583d2a, 0x00604837, 0x005f493a,
- 0x005b4b37, 0x005f4d37, 0x0057452e, 0x00806a53, 0x00957f64, 0x006a635a, 0x00484a4b, 0x00525153, 0x004b4b4f, 0x004e4d4f, 0x00646467, 0x00a2a3a8, 0x00e0e0e5, 0x00e6e7ea, 0x00eff2f3, 0x00f2f4f2,
- 0x00e0e3e9, 0x00d3d5da, 0x00d3d3d7, 0x00cfcccf, 0x00d8d2d5, 0x00e3dfe2, 0x00dadae2, 0x00aeb2be, 0x008b98ad, 0x0094a3b8, 0x008f9db5, 0x008a97b0, 0x00808da4, 0x007d8a9f, 0x0096a0b2, 0x00a9b1bf,
- 0x00b6c0c9, 0x00c0c7ce, 0x00e4e7ef, 0x00e9ebee, 0x00c5c5c9, 0x00a2a7b9, 0x00949dbb, 0x0095a2c3, 0x00a2b1d4, 0x00969cb2, 0x00453f47, 0x002d1812, 0x00462c1d, 0x00523f37, 0x00524a48, 0x0054565b,
- 0x005a596a, 0x0054566b, 0x004a516b, 0x00404d6e, 0x003b4c74, 0x00384d75, 0x00384c72, 0x00384b70, 0x00364967, 0x00374961, 0x00344961, 0x00304862, 0x00304761, 0x002f4760, 0x002d4660, 0x002e465e,
- 0x002d455a, 0x002c455a, 0x002c4559, 0x002b4557, 0x002a4455, 0x00264553, 0x00234652, 0x00234652, 0x00244751, 0x00234550, 0x00224650, 0x001c414a, 0x00214650, 0x001e414c, 0x001f434d, 0x004f747f,
- 0x00fffdf5, 0x00fefffb, 0x00f9fffe, 0x00f8ffff, 0x00fefcfb, 0x00fcf1e7, 0x00b99989, 0x0070462f, 0x00693627, 0x005e2e1c, 0x004a2719, 0x0031221a, 0x002a1b15, 0x00261914, 0x00271f18, 0x00292118,
- 0x00312124, 0x00332322, 0x00372622, 0x0038261f, 0x003b231c, 0x00362116, 0x00342216, 0x00352116, 0x003c2018, 0x003d2019, 0x003e221b, 0x00432720, 0x0050312b, 0x00593c35, 0x00654c42, 0x0070574d,
- 0x0078615c, 0x00806c64, 0x0089786f, 0x008c8176, 0x00928a80, 0x00948d84, 0x00968d84, 0x00998f86, 0x009e8f8c, 0x009a8c88, 0x00988a82, 0x0095867a, 0x008a7e73, 0x007f766d, 0x00706862, 0x00635d59,
- 0x005a4f4e, 0x004e423e, 0x003c322a, 0x00392d23, 0x003e2e24, 0x00493328, 0x00543c2e, 0x00604534, 0x006a4b3a, 0x006d4f3d, 0x00745543, 0x00755846, 0x006f5547, 0x006a5347, 0x00614a41, 0x00564239,
- 0x00483535, 0x003a2b2c, 0x002b2021, 0x00201b1d, 0x00161619, 0x00141517, 0x00101112, 0x000e0a0c, 0x001c0b0d, 0x003f2e30, 0x0080524d, 0x00932d24, 0x00821c15, 0x00731710, 0x00863731, 0x00bd877c,
- 0x00f9e3dd, 0x00f6f1ea, 0x00e9f0ea, 0x00e6f0ea, 0x00ecf2f0, 0x00f0f0ef, 0x00f0edee, 0x00efedee, 0x00f2edee, 0x00f1eced, 0x00eeeaeb, 0x00edeaeb, 0x00f1edee, 0x00f0eced, 0x00ebe8e9, 0x00e7e5e6,
- 0x00ede7ee, 0x00eae3eb, 0x00e7e3ea, 0x00e6e2e9, 0x00e1dbe3, 0x00dcd5dd, 0x00cfc9d1, 0x00c2bbc4, 0x00bcb1be, 0x00b9b1b9, 0x00bbb4bc, 0x00beb9c0, 0x00c0bcc5, 0x00c9c6cd, 0x00d3d2d3, 0x00e1e2e2,
- 0x00f3f5f6, 0x00fdfcff, 0x00fefdfe, 0x00fbfefd, 0x00fcfffd, 0x00edeffc, 0x009599ac, 0x00535b6f, 0x004b5371, 0x00505673, 0x00555b70, 0x0054555e, 0x005e5148, 0x0069513c, 0x006a4b2c, 0x00724c21,
- 0x00794c2a, 0x00855929, 0x00865b22, 0x007f561e, 0x00765f47, 0x00675c69, 0x00494a74, 0x004c5894, 0x0049588e, 0x00505f82, 0x00738d95, 0x006d9380, 0x005f7b82, 0x005e7793, 0x005d76a3, 0x004d69a2,
- 0x00405c9c, 0x003a5385, 0x00546584, 0x007a7d8d, 0x008e7e81, 0x00837f8f, 0x005b576a, 0x00604b56, 0x0084574c, 0x00845639, 0x00916136, 0x009c7339, 0x00957839, 0x0080672d, 0x007b5f29, 0x007f6435,
- 0x007e614b, 0x0082644b, 0x009f7e63, 0x00ae8e69, 0x00ac8761, 0x009d7551, 0x007a552e, 0x00795631, 0x008b6d4c, 0x00846e49, 0x006f5a43, 0x006d5c59, 0x0084715e, 0x00786243, 0x0059421c, 0x00594417,
- 0x00846b57, 0x008c7a71, 0x00a59696, 0x00cac4c5, 0x00d1cfd3, 0x00b6aba4, 0x00b19e8d, 0x00a48e78, 0x0080604b, 0x00684c38, 0x006b5744, 0x00958879, 0x00d3cbbe, 0x00d4c3b4, 0x00a2907b, 0x00987f66,
- 0x00c1b6a9, 0x00dad3c7, 0x00dfdace, 0x00e3e0d9, 0x00ccc9c4, 0x009e9894, 0x009a968e, 0x00c1bdb1, 0x00c7b9ab, 0x00c3b5a4, 0x00e8ded5, 0x00e0dced, 0x00d5cbcc, 0x00c3baac, 0x00cfc9b2, 0x00dcddbf,
- 0x00d9e1d1, 0x00dce4df, 0x00d1d8d8, 0x00dcdde3, 0x00f3e3ee, 0x00f0e9ef, 0x00c6c4c3, 0x00a69d99, 0x00968989, 0x00a19a9d, 0x00bdbdc6, 0x00bfc9da, 0x00aab5ca, 0x009ca7b5, 0x00a4aab2, 0x00a2a0a1,
- 0x00ab9e9c, 0x00c7bdbf, 0x00cbcbd2, 0x00c9ccda, 0x00beccd1, 0x00b0bebf, 0x0092a29d, 0x0085918b, 0x00acafbb, 0x00cbc8dc, 0x00c3c2d6, 0x00bbbac8, 0x00c2c3d3, 0x00abb0c1, 0x006d7485, 0x005e6377,
- 0x0084859c, 0x009699aa, 0x00aaabb5, 0x00d6d4da, 0x00fffaf9, 0x00fcfbf9, 0x00fefcf9, 0x00fdfffc, 0x00fdfafc, 0x00c0c0c3, 0x00626469, 0x0085888e, 0x00bcbfc7, 0x00dee1eb, 0x00eef3fd, 0x00eff6ff,
- 0x00edf3f7, 0x00edecf3, 0x00e4dce8, 0x00eadcec, 0x00f0e9f9, 0x00ececf9, 0x00e5edf6, 0x00e7eff6, 0x00f6f6ff, 0x00fbf4fe, 0x00f5eff9, 0x00edf1fb, 0x00e7eef7, 0x00e4eef3, 0x00edf5fb, 0x00ecf2fb,
- 0x00ebedfc, 0x00e9ecfe, 0x00e6ebf9, 0x00e6eafa, 0x00e7ebfa, 0x00e5eafc, 0x00e1e9fd, 0x00e0ecf8, 0x00e2edfb, 0x00e0ebfd, 0x00b6c2d8, 0x009da7c5, 0x00cfd3f2, 0x00dddef2, 0x00a3a5af, 0x00666965,
- 0x005c605b, 0x004d5149, 0x003c4033, 0x00383929, 0x003a3625, 0x003b3623, 0x003a3620, 0x0039371f, 0x003c3826, 0x00363723, 0x00343421, 0x0034331f, 0x00343320, 0x00343420, 0x00363420, 0x00363521,
- 0x00373521, 0x00373521, 0x00373421, 0x00363320, 0x00373321, 0x00373123, 0x00393126, 0x003b3327, 0x00423429, 0x0045362a, 0x00453529, 0x00423225, 0x003f3223, 0x003b3221, 0x00393321, 0x003a3623,
- 0x00363722, 0x002a2c1a, 0x00767867, 0x00e7eadf, 0x00fdfefb, 0x00fdfefc, 0x00fafdfc, 0x00fcfffd, 0x00c8c7c8, 0x004f4f4b, 0x000c0d09, 0x003e403f, 0x009d9ea0, 0x00acafb1, 0x00a7abae, 0x00a4a7a8,
- 0x00adadb8, 0x00b1b5bc, 0x00b4bdbf, 0x00b9c3c7, 0x00b3bac2, 0x009c968c, 0x00645441, 0x005c4733, 0x00714c3c, 0x007f5540, 0x0085533c, 0x00864c31, 0x008a4828, 0x0087421f, 0x00813b15, 0x007b350a,
- 0x00683217, 0x00783e22, 0x00905331, 0x009c5b36, 0x00925d33, 0x007c5531, 0x00533a19, 0x004b422a, 0x00665858, 0x00877c85, 0x00c4bbcb, 0x00bfb3ce, 0x006d6477, 0x002d2331, 0x00180f13, 0x00231b18,
- 0x00473f38, 0x00544b40, 0x004d4538, 0x003d3729, 0x00302a1d, 0x00251f16, 0x001c1511, 0x001a130f, 0x001d1516, 0x001a1614, 0x00171616, 0x00111314, 0x000b1015, 0x000a1016, 0x00161b21, 0x00232a2d,
- 0x00343741, 0x003a3f48, 0x00404951, 0x00414b55, 0x003f4755, 0x003e4552, 0x003c444b, 0x003c4144, 0x00423c42, 0x00463e42, 0x00444044, 0x003f4047, 0x004d4b48, 0x00787465, 0x00afa892, 0x00bfb59b,
- 0x00c9bb9a, 0x00c9bca0, 0x00c8bea4, 0x00c9c1aa, 0x00cdc3b5, 0x00c8c8c4, 0x00c9cecd, 0x00cbcecf, 0x00cbccd0, 0x00c8ccd2, 0x00c7cdd3, 0x00c3cbd0, 0x00c4ccd4, 0x00c5ced7, 0x00c7d1da, 0x00c7d3dc,
- 0x00d4d7e1, 0x00d5d9e0, 0x00d6dce1, 0x00d8dde3, 0x00d7dfe4, 0x00d6dbe2, 0x00d4dbe0, 0x00d6dce0, 0x00d7dde5, 0x00d8dfe6, 0x00dae1e6, 0x00dae1e4, 0x00d9e0e4, 0x00d9dfe6, 0x00dbe2e8, 0x00dee5e9,
- 0x00e9eaf4, 0x00eaf0f5, 0x00eef3f9, 0x00ebf1f7, 0x00e8eff5, 0x00e3e8ef, 0x00d2d6de, 0x00bbc6ca, 0x00b1bcc5, 0x00b9bec5, 0x00c3c3ca, 0x00d9cfdb, 0x00d3c0d0, 0x0080707c, 0x003f353f, 0x007c7881,
- 0x00e5e3e5, 0x00fffdfe, 0x00f9f8f9, 0x00fafbfa, 0x00fefefa, 0x00e8e9e2, 0x0075786e, 0x00272c1e, 0x002a2c1f, 0x00282a1d, 0x0027271b, 0x0024231a, 0x001e1c14, 0x0016140b, 0x000f0d04, 0x000c0b03,
- 0x000e0908, 0x000c0906, 0x000a0804, 0x00070600, 0x00070701, 0x000a0606, 0x000a0409, 0x00070206, 0x000a0308, 0x00090207, 0x00070106, 0x00060004, 0x00080005, 0x00080106, 0x00060205, 0x00050104,
- 0x00232a53, 0x00565d93, 0x005761a6, 0x004752a5, 0x003f49a7, 0x003a49a1, 0x00394a9f, 0x003a499d, 0x003d469e, 0x003b439f, 0x0037419c, 0x00324295, 0x00353d89, 0x002f3a82, 0x0027367e, 0x00223380,
- 0x00222e79, 0x002e346d, 0x006d6885, 0x009c8a86, 0x00b99467, 0x00cea87f, 0x00d1aa7f, 0x00d0aa7c, 0x00dab183, 0x00e5bb8b, 0x00eec692, 0x00ecc48f, 0x00d4a978, 0x00c29666, 0x00c29665, 0x00ce9f72,
- 0x00d7a580, 0x00c69672, 0x0092633b, 0x0081542e, 0x007a5330, 0x007b5a3b, 0x00a68b6d, 0x00e3ccb2, 0x00f6e5d9, 0x00fcf2e3, 0x00b9b4ab, 0x00414146, 0x0008040c, 0x00130c1a, 0x00150e1f, 0x00140b21,
- 0x001a0c28, 0x00190e26, 0x00171026, 0x00141124, 0x00111020, 0x00111122, 0x00121226, 0x00131228, 0x00141329, 0x00141329, 0x00121128, 0x0013122a, 0x0014132c, 0x0015142e, 0x0014142d, 0x0016162f,
- 0x0021142f, 0x0021152f, 0x0021122a, 0x00221128, 0x00211029, 0x00221028, 0x001e0d22, 0x001c0c21, 0x001c0e24, 0x001b1022, 0x00181125, 0x00141027, 0x0014122a, 0x0015142c, 0x0014132e, 0x00171331,
- 0x00161032, 0x00150f33, 0x00120d32, 0x00100a31, 0x000c062d, 0x00090422, 0x0006021a, 0x0006011b, 0x0008021d, 0x0008021e, 0x0008031f, 0x00090321, 0x000b0625, 0x000c0828, 0x000c0829, 0x000b0628,
- 0x000f0d25, 0x000f0d26, 0x000d0b24, 0x000e0e24, 0x00050519, 0x00434353, 0x00d9dae2, 0x00fbfcfc, 0x00fdfbfd, 0x00fefbfa, 0x00fafdf2, 0x00e1eed9, 0x00748393, 0x002a426c, 0x00325094, 0x003457ab,
- 0x003c56b0, 0x004b619a, 0x007683a0, 0x00a6aaa9, 0x00ada982, 0x00859da8, 0x0052739f, 0x00365480, 0x002b4a7f, 0x0028467e, 0x0027437d, 0x0026407b, 0x00263f77, 0x00233d72, 0x001f3a6d, 0x001c3869,
- 0x00163974, 0x00193769, 0x001c3560, 0x002a3a61, 0x002a446c, 0x002a4b73, 0x002f4f6f, 0x002c445c, 0x003e2432, 0x00623034, 0x008b5064, 0x0081528a, 0x005559b5, 0x003753bd, 0x001e45ae, 0x000e3698,
- 0x00233c94, 0x003050a5, 0x005272b8, 0x00495d97, 0x00493d60, 0x0052493b, 0x0064542e, 0x007e663f, 0x00896038, 0x0086613b, 0x006f552e, 0x00423417, 0x000a100b, 0x00000c1e, 0x0014284b, 0x00294175,
- 0x00304d99, 0x0025478f, 0x00184182, 0x00154182, 0x00173d7e, 0x001c377b, 0x001b2f6f, 0x00192a67, 0x0015285d, 0x00102b58, 0x000f2e54, 0x001a3151, 0x005d738c, 0x008d9fad, 0x00657579, 0x00454f4d,
- 0x00363633, 0x0020211b, 0x002a2a22, 0x0054534c, 0x00c0c2bb, 0x00e5ebe9, 0x00dbe3e1, 0x00eef4f4, 0x00ffffff, 0x00fffeff, 0x00fdfcfc, 0x00fdfefe, 0x00e0e6e9, 0x00a9b2b8, 0x007e8a91, 0x00808d97,
- 0x00838f9b, 0x00818d99, 0x007d8a96, 0x007b8a94, 0x00798993, 0x007c8e97, 0x007d8f98, 0x007c8f97, 0x00788a94, 0x006f828b, 0x00677986, 0x00607281, 0x00556875, 0x00485c68, 0x00354855, 0x00273a47,
- 0x00222f41, 0x001f2d3d, 0x001c2d3b, 0x00223441, 0x002d404b, 0x00304655, 0x00344d5d, 0x0037505d, 0x003e5260, 0x0043535b, 0x0047585b, 0x00475754, 0x004b504e, 0x005c5e58, 0x005b5b53, 0x00494137,
- 0x00352a1f, 0x00302610, 0x00352712, 0x0059442c, 0x009d7d5e, 0x00bf997b, 0x00ba946e, 0x00b28c5f, 0x00a5774c, 0x009a6f3e, 0x009b713f, 0x00936839, 0x0081592f, 0x006b4723, 0x005a3b1d, 0x005e432b,
- 0x00624438, 0x005b3d2d, 0x00735a3f, 0x00b49d7a, 0x00c0a97f, 0x00887b66, 0x00534d43, 0x0049443a, 0x00433c3b, 0x00463f3c, 0x004a4646, 0x006e6b6d, 0x00c9c5c6, 0x00ecebe8, 0x00e1e3de, 0x00edefe7,
- 0x00f4f6f9, 0x00e9ecec, 0x00d0d3d2, 0x00cccecf, 0x00d2d1d6, 0x00d0d0d7, 0x00dadce6, 0x00c9cdd8, 0x00979eb3, 0x00848ba1, 0x008691a7, 0x008491a8, 0x007b89a0, 0x00818fa5, 0x009eabbd, 0x00aab4c2,
- 0x00acb0c3, 0x00bec1cf, 0x00eaedf7, 0x00eaedf3, 0x00cecfd4, 0x00a8acc9, 0x009198c1, 0x0099a4c9, 0x00989fb8, 0x00666872, 0x00221a16, 0x00321d0d, 0x00462f19, 0x0049382b, 0x00433b35, 0x00474548,
- 0x00564d56, 0x005a545f, 0x00545363, 0x00464d62, 0x003e4a67, 0x003a4a6b, 0x00354968, 0x00314867, 0x00324a68, 0x00324963, 0x002d495f, 0x0028485b, 0x0029465a, 0x00284659, 0x00274757, 0x00284856,
- 0x00294657, 0x00284657, 0x00274755, 0x00264651, 0x0026444f, 0x0023444d, 0x0020464c, 0x0020464c, 0x00244551, 0x00254551, 0x0022454f, 0x001b4048, 0x001f444f, 0x001e414d, 0x001b414a, 0x003b616b,
- 0x00f9fef0, 0x00f7fef5, 0x00fbfffd, 0x00fcffff, 0x00fffdfd, 0x00fcf5ed, 0x00c1a194, 0x00754a3a, 0x005c351a, 0x00562f18, 0x0047281a, 0x0033241c, 0x002d1e15, 0x002b1f18, 0x00322421, 0x00342725,
- 0x0033291c, 0x00372b1f, 0x003a2922, 0x003d2820, 0x003c261b, 0x003a251c, 0x0038231d, 0x0039231a, 0x00351f0f, 0x00372012, 0x003e221b, 0x00462723, 0x004f322b, 0x00583c34, 0x00664943, 0x006d544c,
- 0x006e5d51, 0x0077675c, 0x0083746b, 0x00897c74, 0x008f857c, 0x0091867e, 0x00968883, 0x00988b87, 0x0092897d, 0x0091857c, 0x0091827a, 0x008d7f73, 0x0083766d, 0x00786c65, 0x00695e5b, 0x005d5454,
- 0x0048463c, 0x003a392d, 0x002f2720, 0x002f241c, 0x00372b22, 0x00453024, 0x0056372c, 0x00604235, 0x005e4a33, 0x00624a34, 0x006f4f3f, 0x00735246, 0x006d5245, 0x00685045, 0x00614941, 0x00574038,
- 0x003e362d, 0x00322d25, 0x0027201f, 0x001f191b, 0x00131615, 0x000f1111, 0x00100f12, 0x00120e11, 0x000d0701, 0x00211710, 0x005f2e28, 0x0088190d, 0x00760900, 0x00700900, 0x0070110b, 0x00843730,
- 0x00c0a58d, 0x00e3dcc9, 0x00ebefe4, 0x00e1eae4, 0x00e2eeec, 0x00e9eaeb, 0x00efe9eb, 0x00f3ecf0, 0x00e8e9e3, 0x00e6e5e2, 0x00e3e1e2, 0x00e5e2e4, 0x00e6e1e2, 0x00e2dede, 0x00e0dbdc, 0x00ded9db,
- 0x00d7d4d4, 0x00d4d0d3, 0x00d9d1d8, 0x00dad2da, 0x00cdc8ce, 0x00c2bec2, 0x00b3acb2, 0x00a89fa9, 0x00afabae, 0x00c2bec2, 0x00d5cfd7, 0x00dfdbe2, 0x00ece6ed, 0x00f5f1f8, 0x00f3eef6, 0x00f6f2f8,
- 0x00f1f7f4, 0x00f7fef8, 0x00fbfcff, 0x00fefffd, 0x00fbfffd, 0x00e8ecfd, 0x008b90b6, 0x00475479, 0x00385577, 0x0048668c, 0x005a6c94, 0x00515e80, 0x00595561, 0x00665751, 0x006a4c3a, 0x00734d2b,
- 0x00714d39, 0x0084623f, 0x00966e4b, 0x00916841, 0x007c6254, 0x00625560, 0x003c3859, 0x002a315e, 0x00243b4e, 0x004c5f67, 0x00899f99, 0x007da08a, 0x00657b7e, 0x00475a70, 0x0044527d, 0x004f5e97,
- 0x004c628f, 0x004e607b, 0x00727484, 0x008b7f7f, 0x006a4e3e, 0x004f4143, 0x002a1c28, 0x003f2629, 0x006f4832, 0x007f5331, 0x0096683d, 0x009f7b46, 0x008d7941, 0x00846f3e, 0x00938056, 0x009d8862,
- 0x006f6b56, 0x00766b52, 0x009c876e, 0x00a38667, 0x0098734d, 0x008d6743, 0x00805938, 0x00805d3d, 0x00917f60, 0x008c8163, 0x007b6c61, 0x007b727c, 0x00948a7b, 0x00847b60, 0x007e6f4f, 0x00776843,
- 0x007a6f56, 0x00989083, 0x00d3cbc9, 0x00dfdcde, 0x00e9eaed, 0x00e7e1da, 0x00d7c6b9, 0x00b9a493, 0x00887557, 0x006e6146, 0x0078685b, 0x009d9290, 0x00cecccb, 0x00ded8d5, 0x00d2c3c1, 0x00c5b5ad,
- 0x00c6cebc, 0x00cdd4c1, 0x00d4d9cc, 0x00e1e4de, 0x00dae2dd, 0x00c2c9c3, 0x00c0c2be, 0x00d6d6d2, 0x00dee5d2, 0x00e0e4d1, 0x00e6ded6, 0x00d8cad2, 0x00c4b1a9, 0x00b29d8c, 0x00b6a28a, 0x00baaf95,
- 0x00aeb59c, 0x00c8d3c3, 0x00dde4e3, 0x00e9e6f0, 0x00e7d8e7, 0x00ddd5de, 0x00c5bdc6, 0x00a7999c, 0x0091837a, 0x00a39a95, 0x00ccc4c8, 0x00c9c7d3, 0x00939bae, 0x00606677, 0x00737685, 0x00848690,
- 0x0084817c, 0x00a8a7a7, 0x00bdbbc4, 0x00a8a8b5, 0x00959ca4, 0x0097a3a5, 0x007e898f, 0x00757e86, 0x0071818c, 0x00838d9e, 0x00a3a7bc, 0x00a9a9b5, 0x00aeb0c1, 0x00a3a4b9, 0x005e6079, 0x004e526b,
- 0x00818b9b, 0x0089909e, 0x008e919c, 0x00c8c9d0, 0x00fbfbfe, 0x00fcfbfb, 0x00fffdfd, 0x00ffffff, 0x00f6fcf6, 0x00bcc0be, 0x00616467, 0x00878a8e, 0x00bfc2c9, 0x00e2e4ee, 0x00f0f3ff, 0x00f1f4ff,
- 0x00e9f2f2, 0x00e7eaec, 0x00dfd8e4, 0x00e8d9eb, 0x00f5ebfa, 0x00f0eefc, 0x00eceefd, 0x00ebf2fe, 0x00f0f6f5, 0x00f1f1f5, 0x00efecfa, 0x00ebf2fa, 0x00e7ecf5, 0x00e5ebf4, 0x00f0f3ff, 0x00eff3ff,
- 0x00e5eff6, 0x00e4edf6, 0x00e6ecf9, 0x00e5e9fb, 0x00e5eaf9, 0x00e5e9fd, 0x00e4e9fe, 0x00e3ecfd, 0x00d8e9ef, 0x00deedf6, 0x00bfcae3, 0x00a3adcd, 0x00ccd1ef, 0x00dfe4fa, 0x00b4b7c5, 0x00727377,
- 0x00566154, 0x00465244, 0x003b4033, 0x00393a2b, 0x00393725, 0x003c3622, 0x003d3723, 0x003f3826, 0x0033371e, 0x0032371e, 0x00353620, 0x00363421, 0x0034311f, 0x00353321, 0x00393524, 0x003b3626,
- 0x0030321a, 0x0031331c, 0x00343321, 0x00363321, 0x0035321e, 0x00353120, 0x00393327, 0x003e362b, 0x003f3726, 0x00403625, 0x00443628, 0x00423527, 0x003d3325, 0x003c3426, 0x003d3627, 0x003b3524,
- 0x0032381e, 0x00262c16, 0x00747768, 0x00e7e8e0, 0x00fdfefc, 0x00fffefd, 0x00fffcff, 0x00fffeff, 0x00c1c6bf, 0x004e5149, 0x0012110f, 0x004d4d4f, 0x00a3a6a7, 0x00aaaeaf, 0x00a9abaf, 0x00a1a3a8,
- 0x009aa7a3, 0x00a2adaa, 0x00b1b8bc, 0x00b8bdc6, 0x00b0b4bb, 0x0088847e, 0x00524437, 0x00574036, 0x00654e34, 0x00704f36, 0x00794931, 0x0080462b, 0x00854322, 0x00863f1b, 0x00863714, 0x0084300d,
- 0x005e2a04, 0x006e3611, 0x008a4929, 0x00975232, 0x0092593a, 0x0081583c, 0x005a3d29, 0x0056443a, 0x006a6666, 0x00817a86, 0x00a195aa, 0x009e8ea5, 0x00635261, 0x00332125, 0x00372322, 0x00563e3b,
- 0x00655842, 0x005f533d, 0x00574837, 0x004d402f, 0x003b3825, 0x00322c1f, 0x002a201c, 0x00221a17, 0x001d1b13, 0x001c1a14, 0x00161511, 0x00121211, 0x000e0f11, 0x000e1011, 0x00191c1e, 0x0023252b,
- 0x002e332f, 0x00363c3a, 0x0044474b, 0x00484951, 0x00454a52, 0x0040454e, 0x0041424c, 0x003e3f4a, 0x00373a39, 0x003b3b39, 0x00413d43, 0x003f4149, 0x00535451, 0x00838177, 0x00b6b1a3, 0x00beb8a6,
- 0x00beb99c, 0x00bebba1, 0x00c5bfac, 0x00c9bfb3, 0x00cac3bc, 0x00c5c5c4, 0x00c6c9cd, 0x00c9cacd, 0x00bdc6c3, 0x00bdc5c6, 0x00c1c7cc, 0x00c1c7cf, 0x00c0c7d0, 0x00c0c8d1, 0x00c3cbd7, 0x00c5ccdb,
- 0x00c6d3d3, 0x00c9d5d5, 0x00d2d9de, 0x00d5dbe1, 0x00d5dee2, 0x00d2dadf, 0x00d3d9df, 0x00d5dbe0, 0x00cfdcdc, 0x00d4dedf, 0x00dde0e4, 0x00dddfe5, 0x00d8dde3, 0x00d9dfe5, 0x00e0e2eb, 0x00e2e3ed,
- 0x00dce9e7, 0x00e0ebed, 0x00e7eff5, 0x00edf4f9, 0x00f3f7ff, 0x00f9fbff, 0x00f4f6fb, 0x00e3e9f0, 0x00bcccc8, 0x00b1b9b8, 0x00b3b0b6, 0x00beb2bc, 0x00ac97a3, 0x006d5a65, 0x003a2c38, 0x0071656f,
- 0x00ccd2cd, 0x00f6f9f4, 0x00f9f9f8, 0x00fcfcfc, 0x00fefff8, 0x00f4f6ee, 0x008e8f88, 0x00323129, 0x00212917, 0x00202714, 0x00272a1c, 0x00222219, 0x001b1910, 0x00131108, 0x000e0e07, 0x000d0d09,
- 0x00080800, 0x00070600, 0x00080602, 0x00090604, 0x00080504, 0x00090507, 0x000a0408, 0x000a0207, 0x00030002, 0x00040104, 0x00070006, 0x00070006, 0x00060207, 0x00080307, 0x000a0208, 0x00090007,
- 0x001a2749, 0x004d5987, 0x00545ea0, 0x004551a4, 0x00424ea9, 0x003c4ba2, 0x003c49a0, 0x003c499e, 0x00354392, 0x00334096, 0x00344098, 0x00334093, 0x00323d85, 0x002b377b, 0x00263378, 0x0022317a,
- 0x001a2c6e, 0x002a3462, 0x006e6883, 0x00b39e94, 0x00d0a673, 0x00d2ac80, 0x00d3a985, 0x00d6ae84, 0x00dab886, 0x00e2c08e, 0x00f2cc9b, 0x00fad19e, 0x00f0c792, 0x00e2ba85, 0x00e1b685, 0x00e2b385,
- 0x00d3a579, 0x00b18557, 0x009c6d43, 0x00b1825a, 0x00b58b67, 0x00a7835f, 0x00bb9a7c, 0x00dec1a6, 0x00e5dabb, 0x00f8edd4, 0x00eee7d9, 0x008a8789, 0x00150e13, 0x000f0613, 0x0013081c, 0x00130721,
- 0x000c0919, 0x000e0b1e, 0x00150c22, 0x00150e1f, 0x0010101e, 0x000d1021, 0x00110f27, 0x0014102a, 0x000b1221, 0x000d1124, 0x00111129, 0x0013122d, 0x0012112e, 0x0012122d, 0x00131330, 0x00141233,
- 0x00131328, 0x00141328, 0x0017102b, 0x00190d2a, 0x00190b26, 0x001b0b27, 0x001b0a28, 0x00180925, 0x000e0a1a, 0x000e0d1c, 0x000f1022, 0x00101028, 0x00111029, 0x00110f2b, 0x00120f30, 0x00130f33,
- 0x000d102b, 0x000b102b, 0x000e0d32, 0x000d0b32, 0x00070831, 0x00070624, 0x000a0220, 0x00060121, 0x00010019, 0x0002011a, 0x0006041f, 0x00090522, 0x000d0727, 0x000d0829, 0x0011092c, 0x0013082d,
- 0x00090c1d, 0x00090b1f, 0x000c0c24, 0x00111028, 0x0006041a, 0x00302d41, 0x00c0bfcd, 0x00f8f9fb, 0x00f4fbf3, 0x00f6fcf4, 0x00f9fcf3, 0x00f2fae9, 0x00899aa3, 0x00284066, 0x00324989, 0x003651a5,
- 0x0034549c, 0x004b6292, 0x0062708e, 0x007d8583, 0x00898b67, 0x00708796, 0x00486a95, 0x00304f7f, 0x001f406e, 0x001d3e6f, 0x00264279, 0x00253f7a, 0x00203b74, 0x001d376f, 0x001d346d, 0x001c336c,
- 0x000b345c, 0x000c305a, 0x00173261, 0x00213865, 0x00293e5e, 0x00293c53, 0x00273445, 0x00222734, 0x0024161d, 0x003e2934, 0x0062476c, 0x005e4a99, 0x004856bc, 0x002b4ab7, 0x001337a5, 0x0014399f,
- 0x0029519d, 0x004e73c4, 0x005f7ace, 0x005c6fc2, 0x00464b93, 0x003d3d48, 0x00675b49, 0x00968068, 0x00997e51, 0x0094784b, 0x007b633b, 0x00403615, 0x000d0e06, 0x0000070a, 0x00060c23, 0x001d2549,
- 0x0023427c, 0x001c3f7b, 0x00163d81, 0x00123c83, 0x0014377b, 0x00173171, 0x001c2e6e, 0x001e2862, 0x00102652, 0x000e2b52, 0x00142f57, 0x00213754, 0x00607388, 0x00758591, 0x00535e67, 0x004a5054,
- 0x001e261c, 0x00090d03, 0x001d1c15, 0x00504e4a, 0x00bcbeb9, 0x00d9dfdb, 0x00cccfcf, 0x00e9e8e8, 0x00f9fef6, 0x00fbfef7, 0x00fcfdfc, 0x00fcfcfd, 0x00edf1f5, 0x00bdc5cd, 0x00838995, 0x007c8695,
- 0x0075888d, 0x0075888e, 0x00758691, 0x0072838e, 0x006f8089, 0x0071838c, 0x00748893, 0x00738793, 0x00648187, 0x005f7b7f, 0x005d747c, 0x00596c79, 0x004e616e, 0x00435563, 0x00364557, 0x002b3b4d,
- 0x001b313a, 0x00172d36, 0x00192b38, 0x001c2e3d, 0x00263545, 0x00293d4c, 0x002d4354, 0x00304655, 0x002c4b50, 0x002f4e52, 0x00354e56, 0x00334d51, 0x003d4e55, 0x003f4a4f, 0x003c4449, 0x003f454a,
- 0x00364030, 0x002e3626, 0x0016170d, 0x00170c07, 0x00543c31, 0x00937766, 0x00b99780, 0x00c8a27d, 0x00b89963, 0x00b09052, 0x00b89257, 0x00c09252, 0x00a2793f, 0x007a5425, 0x0060371c, 0x00633b27,
- 0x00543c20, 0x005f4828, 0x00a38a6a, 0x00d9bf96, 0x00d6c08a, 0x00a89775, 0x0060523f, 0x00554839, 0x00484633, 0x004a4338, 0x004e4442, 0x00544c4f, 0x00aba6a5, 0x00ebe8e1, 0x00e4e0db, 0x00e9e5e1,
- 0x00eaf0e7, 0x00e8eee3, 0x00cdcfcf, 0x00c4c4c8, 0x00ced2d5, 0x00d1d3da, 0x00d9dbe6, 0x00d8dcea, 0x00a0aeb4, 0x00808a96, 0x00838a9f, 0x007d8ca3, 0x00606d84, 0x00647187, 0x0099a0b8, 0x009a9fb9,
- 0x008b96a2, 0x00b6c1c9, 0x00edf0fc, 0x00f4f5fb, 0x00dddfea, 0x00aaabcf, 0x008a8bbc, 0x00a3abd1, 0x00727e88, 0x002b312b, 0x00241c0d, 0x00403017, 0x004d3920, 0x0047392c, 0x00453836, 0x00413b43,
- 0x00423e35, 0x0048453f, 0x00525054, 0x004d505b, 0x00434e61, 0x00384861, 0x00374a67, 0x00324966, 0x0024495b, 0x0022495b, 0x00274b5c, 0x00244755, 0x00234653, 0x00224553, 0x00264755, 0x00274657,
- 0x001f454b, 0x0020464a, 0x0022454d, 0x0022454e, 0x0021454c, 0x0021444f, 0x00224453, 0x00234451, 0x001e444a, 0x001d4349, 0x00224750, 0x001e424d, 0x0020434c, 0x0020434d, 0x001f414e, 0x0030515e,
- 0x00fbfdf3, 0x00fbfffa, 0x00fafffb, 0x00fbffff, 0x00fcfdfc, 0x00fffbf5, 0x00c6aba0, 0x00714c3d, 0x0057331f, 0x00522d1d, 0x0042231a, 0x0034221e, 0x002f2019, 0x0032231c, 0x00392923, 0x003b2b25,
- 0x003e2d20, 0x003f2f22, 0x00402d24, 0x003e2a21, 0x003a261a, 0x0038261a, 0x0037241b, 0x00362217, 0x003a1f17, 0x003b2017, 0x003f211b, 0x0045261f, 0x004c3026, 0x0053392e, 0x005f453c, 0x00664e44,
- 0x006f5b54, 0x0078655e, 0x0081706a, 0x00857971, 0x008b8176, 0x008b8175, 0x008d8278, 0x0092847c, 0x00918178, 0x00917e76, 0x008d7970, 0x00857367, 0x007a6a61, 0x006e6158, 0x005c524c, 0x00504944,
- 0x00423c37, 0x00362f2a, 0x002a201b, 0x00281e15, 0x002f241b, 0x003c2b1d, 0x004c3525, 0x00573f2f, 0x005e4431, 0x00634835, 0x006a4c3a, 0x006b4d3b, 0x00684e3e, 0x00634a3e, 0x00584239, 0x00503c36,
- 0x00433633, 0x00332b27, 0x00241d1d, 0x001a1718, 0x000d1412, 0x000a0f0d, 0x000c0d0d, 0x00100d0b, 0x000c0600, 0x001a0f0d, 0x004e251c, 0x00882213, 0x007c1004, 0x007d1507, 0x00731503, 0x006b1e0e,
- 0x00784d3b, 0x00baa295, 0x00e9e1d7, 0x00e7e6e2, 0x00e2e6e8, 0x00e4e4e7, 0x00e4e0e1, 0x00e3dce0, 0x00dfdadb, 0x00dfdbdb, 0x00dad4d5, 0x00d9d2d4, 0x00d4cfd1, 0x00d1cdcf, 0x00cfcbcc, 0x00cbcaca,
- 0x00d5cdd5, 0x00d4ccd4, 0x00d3c9d2, 0x00cbc2cb, 0x00b6afb6, 0x00a9a3a9, 0x00aea5ac, 0x00bdb5bc, 0x00ddd6dd, 0x00f1e8f0, 0x00f7eff6, 0x00f5f2f7, 0x00f7f3fb, 0x00f3f0f7, 0x00ecebee, 0x00f1eff3,
- 0x00f6f7f7, 0x00fbfdfc, 0x00fbfdfe, 0x00fbfdfd, 0x00f6fdfa, 0x00e4edfb, 0x008691bc, 0x00465883, 0x00415f8d, 0x005876ab, 0x006785b6, 0x004f6597, 0x00555972, 0x006a5d64, 0x0066503f, 0x006c4c2c,
- 0x006d4e49, 0x007e5c4d, 0x00936f58, 0x008c684c, 0x005f4537, 0x00433635, 0x002a2530, 0x001a1b2a, 0x00252924, 0x005a5c4c, 0x00969c81, 0x00859579, 0x004e544a, 0x00232330, 0x001f1b36, 0x00312f54,
- 0x00515370, 0x00585768, 0x00685e5e, 0x007b6454, 0x005b3312, 0x00392414, 0x003c2f26, 0x005d4336, 0x007e5135, 0x00885533, 0x0085572e, 0x00836031, 0x0087764a, 0x00b2a57f, 0x00d8cdae, 0x00ccc3aa,
- 0x009ea8a2, 0x0094968a, 0x00a19a87, 0x0099886c, 0x006c512e, 0x00654725, 0x00826343, 0x00a28a6e, 0x00cebfae, 0x00cfc8bd, 0x00b8b8b1, 0x00b9bbc6, 0x00b7b6ad, 0x00a7a28b, 0x00969071, 0x00726948,
- 0x00706558, 0x00aa9f98, 0x00f2ecec, 0x00eeedef, 0x00dfe7e9, 0x00ebe9df, 0x00dcd6c5, 0x00c4b8a5, 0x00b5a38e, 0x00b6a99a, 0x00aea69d, 0x00b9bab8, 0x00dce2e9, 0x00e5e6ed, 0x00eae7ea, 0x00f1eae9,
- 0x00d5e1d6, 0x00ced8cc, 0x00c9d4cb, 0x00d0d9d4, 0x00dbe2de, 0x00dde5e2, 0x00dee5e4, 0x00dce0e0, 0x00dfe9e1, 0x00e2e9e5, 0x00cbcac0, 0x00c0a79a, 0x00af927d, 0x00ac8b73, 0x009e8169, 0x008a755f,
- 0x00928f85, 0x00b3b4b6, 0x00c6c9d2, 0x00cbccd3, 0x00c1bcc1, 0x00bbb4bd, 0x00b8adb2, 0x00ad9c9b, 0x00af968e, 0x00ccb2af, 0x00ecd7da, 0x00dbd0d9, 0x009b9fae, 0x006a6f7d, 0x00747884, 0x007b8388,
- 0x00847980, 0x00a9a3ab, 0x00bebac0, 0x009d9ba5, 0x007b7e89, 0x00868e95, 0x0069727d, 0x006c7681, 0x00798598, 0x00838fa8, 0x00aab1c9, 0x00b4b5c2, 0x00a4a6b7, 0x00b1b4c8, 0x00757b8f, 0x00454b63,
- 0x00636880, 0x0064697a, 0x006d6f7c, 0x00bbbbc2, 0x00fdfcfb, 0x00fdfdf8, 0x00fdfdfb, 0x00fefefd, 0x00fcfcfd, 0x00bebfc1, 0x00616367, 0x00868a8e, 0x00c2c7cd, 0x00e2e7ef, 0x00eef3fc, 0x00eff4fd,
- 0x00eef1f7, 0x00e6e3ec, 0x00d4ccd8, 0x00e2d6e5, 0x00f4ecf9, 0x00f1f2fc, 0x00eaf0fa, 0x00ecf4fd, 0x00f1f7fc, 0x00f0eff7, 0x00ebebf5, 0x00eef1fc, 0x00e6ecf5, 0x00e5eaf4, 0x00eaf0fa, 0x00ebf0fa,
- 0x00e7eefb, 0x00e7edfb, 0x00e3e9f5, 0x00e3e9f7, 0x00e3e9f8, 0x00e7e8fc, 0x00e4e8f9, 0x00e0eaf8, 0x00dceaf1, 0x00e4f0fd, 0x00c2cee9, 0x00a9b2d3, 0x00d2daf9, 0x00e1e7fc, 0x00b4bec7, 0x007b8385,
- 0x00565e57, 0x004e554b, 0x003d4035, 0x00383a29, 0x00373421, 0x0039351f, 0x003b3822, 0x003c3923, 0x00393722, 0x00363722, 0x00363622, 0x00363521, 0x0034321f, 0x0034331f, 0x00363420, 0x00363520,
- 0x0033321d, 0x0034341e, 0x00343321, 0x00343321, 0x0034331f, 0x00343221, 0x00373426, 0x003d3829, 0x0043382d, 0x0043372b, 0x00443629, 0x00423526, 0x003e3324, 0x003a3423, 0x00383622, 0x00373621,
- 0x00333825, 0x002b2d1d, 0x0075786b, 0x00e5e8de, 0x00fefdfa, 0x00fefefb, 0x00fcfdfe, 0x00fffeff, 0x00c5c7c5, 0x0053534f, 0x00191816, 0x00575959, 0x00a6aaa9, 0x00a7abaa, 0x00a5a8a9, 0x009b9e9f,
- 0x0098a0a2, 0x00a1a9ab, 0x00adb1b8, 0x00b3bac2, 0x00a3adb1, 0x007d7d77, 0x003f382b, 0x003d3628, 0x00584736, 0x00634735, 0x00643b27, 0x006d3a21, 0x00844528, 0x008a4727, 0x008b4323, 0x008b3d1d,
- 0x00793d1c, 0x007d3e1e, 0x00874225, 0x008f472c, 0x00844a33, 0x00633c29, 0x00371f12, 0x002d201b, 0x00443e49, 0x005d546a, 0x00766680, 0x00856e82, 0x00694f59, 0x00472d2e, 0x00563b34, 0x00765948,
- 0x007b6248, 0x006f5840, 0x005e4a37, 0x00554431, 0x00463b29, 0x003e3424, 0x0033291f, 0x002c211a, 0x00282119, 0x00231d17, 0x001c1813, 0x00171410, 0x0011100f, 0x000f1010, 0x00151919, 0x001f2525,
- 0x0039302e, 0x00413c3a, 0x004a4648, 0x004b4b50, 0x00474b51, 0x0041464d, 0x003f4149, 0x003e3d44, 0x00383a3c, 0x003b3a3b, 0x003d3b41, 0x003b4148, 0x005b6260, 0x0092968f, 0x00b4b4ab, 0x00bab9ab,
- 0x00bdbaa7, 0x00bcbba9, 0x00c0bfb2, 0x00c4c3ba, 0x00c4c5bf, 0x00c2c4c5, 0x00c1c4c9, 0x00c1c4c9, 0x00bbbec4, 0x00babfc5, 0x00bdc2c9, 0x00bec4cc, 0x00bdc4ce, 0x00bbc3cd, 0x00bcc6d1, 0x00becad5,
- 0x00c8ced5, 0x00cbd1d6, 0x00d1d6db, 0x00d2d7dc, 0x00d3d9dc, 0x00d2d8db, 0x00d1d7dc, 0x00d2d9dd, 0x00d6dce2, 0x00d6dde3, 0x00d9dee4, 0x00d8dde3, 0x00d6dde1, 0x00d7dee2, 0x00dbe0e4, 0x00dce3e6,
- 0x00dce3e7, 0x00dee5ea, 0x00e4eaf0, 0x00e9eff4, 0x00f0f6fb, 0x00f7fafc, 0x00f6fafa, 0x00f2fbfb, 0x00e3f0ee, 0x00d7ddde, 0x00cbc7cd, 0x00b9acb6, 0x0099838e, 0x006b5861, 0x00372a32, 0x005c555b,
- 0x00bbbabc, 0x00f5f5f5, 0x00fbfcfb, 0x00fcfdfb, 0x00fbfcf4, 0x00fcfcf4, 0x00a6a69d, 0x003a3b30, 0x00252819, 0x00222417, 0x0026261b, 0x00212017, 0x0016150d, 0x000e0e04, 0x00090a01, 0x00090a03,
- 0x000a0704, 0x00080603, 0x00080603, 0x00080602, 0x00070402, 0x00060204, 0x00060104, 0x00050003, 0x00050104, 0x00050104, 0x00070004, 0x00050002, 0x00060104, 0x00080306, 0x000b0408, 0x00090307,
- 0x001a234a, 0x004e5689, 0x00535b9f, 0x004751a5, 0x00424ea8, 0x003d4ba2, 0x003a489d, 0x0039479a, 0x00384396, 0x00373e9a, 0x00353d93, 0x002f3c8d, 0x002d387e, 0x00293477, 0x0024306d, 0x001e2b6f,
- 0x001f2d6b, 0x002e3263, 0x00766e82, 0x00b8a192, 0x00d2a770, 0x00d5af88, 0x00d3ad88, 0x00dcb78f, 0x00edc69d, 0x00f3cfa4, 0x00fbd6a9, 0x00fbd5a5, 0x00fad3a0, 0x00edc690, 0x00e6bf88, 0x00e1b981,
- 0x00d5a379, 0x00a27348, 0x009f7046, 0x00c5976c, 0x00d5a87f, 0x00cda37d, 0x00d9b491, 0x00e2c4a1, 0x00f4e3c5, 0x00fef5da, 0x00fcf6e4, 0x00cfcbc3, 0x00463d42, 0x000f0711, 0x0012091a, 0x000f071c,
- 0x000e061e, 0x000e0720, 0x0010091e, 0x000f0a1c, 0x000e0c1a, 0x000c0d21, 0x000e0f25, 0x000f1227, 0x0010122b, 0x00111229, 0x0010122a, 0x000f112b, 0x000f112b, 0x0010102b, 0x00110f2e, 0x00131030,
- 0x0014122e, 0x00130f2c, 0x00120d2c, 0x00120a2a, 0x00130926, 0x00130825, 0x00120824, 0x000f0722, 0x000c0721, 0x000c0b21, 0x000c0e25, 0x000c0e28, 0x000c0f29, 0x000b0f2a, 0x000a0f2c, 0x000a0e2c,
- 0x000e1030, 0x000d0f32, 0x000d0c33, 0x00090a31, 0x00060831, 0x00060626, 0x00080421, 0x00080423, 0x00070321, 0x00080321, 0x00090423, 0x000a0625, 0x000d0928, 0x000e092a, 0x00100a2a, 0x000f092a,
- 0x000e0c24, 0x000e0c26, 0x000a0822, 0x00100f27, 0x0008071f, 0x001f1f30, 0x00a2a3ac, 0x00f0f3f1, 0x00f7fdf9, 0x00fafcf8, 0x00f8fbf4, 0x00fafff3, 0x009aa8b0, 0x002a3e5c, 0x002b4374, 0x00344e90,
- 0x00365593, 0x0042588c, 0x00435575, 0x00506068, 0x005f6d5c, 0x004e6c7f, 0x002f587d, 0x001f476d, 0x00183b68, 0x00193a6a, 0x001b3a70, 0x001b3972, 0x001a3871, 0x0018366d, 0x0018356a, 0x00173367,
- 0x00173158, 0x00152e5c, 0x00132f5a, 0x0018305a, 0x001f2e48, 0x00212833, 0x001a1c1d, 0x00171211, 0x001a151f, 0x002e2742, 0x003a396e, 0x003c3c9f, 0x003a50b7, 0x002342ad, 0x0010399c, 0x002148a8,
- 0x004f6ec1, 0x005d76cc, 0x00485eb6, 0x00384eaa, 0x00495dbb, 0x00525a7f, 0x004e4b4e, 0x006b5e56, 0x00967b5d, 0x009c805f, 0x006e5734, 0x0033280a, 0x000b0a00, 0x000c0c08, 0x00050608, 0x00111518,
- 0x001e356b, 0x001c3774, 0x00193b7a, 0x00163b83, 0x0015377c, 0x00162e71, 0x00172b63, 0x00192558, 0x00192755, 0x00192b58, 0x00172f54, 0x00354662, 0x005f7184, 0x005d6b7d, 0x0056646b, 0x00596061,
- 0x004f504f, 0x00494947, 0x005a5956, 0x00858482, 0x00c7c9c5, 0x00cacfcc, 0x00b7bcba, 0x00d8dcd8, 0x00f9fbf8, 0x00fefcf9, 0x00fcfcfa, 0x00fefefd, 0x00f5f8fa, 0x00cad3d9, 0x00828e96, 0x0073818d,
- 0x0073848f, 0x00748690, 0x0070828e, 0x006c808a, 0x00647a81, 0x00667e85, 0x00667f87, 0x00647f87, 0x00607a80, 0x00597478, 0x00546f76, 0x004e6873, 0x00455c68, 0x003c515d, 0x002f4450, 0x00253945,
- 0x001e333f, 0x001b2e3a, 0x001a2b39, 0x001a2b3a, 0x001f2f3e, 0x00203644, 0x00223d4b, 0x0025414e, 0x00254452, 0x00274854, 0x002b4a56, 0x002f5059, 0x002e4b56, 0x00334c56, 0x0039505c, 0x003d535e,
- 0x003e4e49, 0x0033413d, 0x003a4340, 0x00565656, 0x007c6c6a, 0x008d786f, 0x00ac9384, 0x00c6a88c, 0x00c9aa7d, 0x00c8a677, 0x00c39f5f, 0x00caa051, 0x00b98f4c, 0x009c7642, 0x00785129, 0x00653b20,
- 0x00634028, 0x008e6c4e, 0x00d7ba93, 0x00e4cc9a, 0x00e2cc92, 0x00bea780, 0x00614e31, 0x004f3c25, 0x00524835, 0x00534a3d, 0x00544e47, 0x004c4a47, 0x008c8a86, 0x00dbd8d1, 0x00ece8df, 0x00e4e1d6,
- 0x00e8e8e3, 0x00f0f3ec, 0x00dfe1e0, 0x00bebfc1, 0x00afb6bc, 0x00b8bfc7, 0x00c3c9d3, 0x00d0d5e2, 0x00c4cbd7, 0x00a7aab8, 0x00878ca0, 0x008392a7, 0x005f6e84, 0x00364258, 0x00515b72, 0x00677188,
- 0x00687083, 0x009299ab, 0x00adb0c0, 0x00c5c6d0, 0x00cacbd3, 0x008b90b5, 0x007074a4, 0x009fa0c3, 0x005f5c66, 0x00201a13, 0x00514531, 0x006a593c, 0x00615136, 0x00483c2e, 0x003e332b, 0x003c3633,
- 0x0042362b, 0x00443c34, 0x004b4743, 0x00505053, 0x004a515f, 0x003f4f60, 0x0031485b, 0x002b495d, 0x0024495c, 0x0022485d, 0x00224a5b, 0x00204851, 0x001f454e, 0x001f4651, 0x001e464f, 0x0021454d,
- 0x0021464a, 0x0020464a, 0x001f464b, 0x001e464a, 0x001f464b, 0x001f454d, 0x001f454f, 0x001f454e, 0x0020444d, 0x0020434d, 0x00214450, 0x001e414c, 0x0020444d, 0x0021454e, 0x001d414b, 0x0021454f,
- 0x00fbfaf1, 0x00fefffa, 0x00f8fbfd, 0x00f8fffb, 0x00fdfdfe, 0x00fdfbf1, 0x00ccb3ab, 0x00735244, 0x00503023, 0x004c2c20, 0x003c2219, 0x0031231c, 0x0034231c, 0x00382720, 0x003e2a22, 0x00432d24,
- 0x00473222, 0x00463224, 0x00473125, 0x00452e23, 0x003e271f, 0x0038261a, 0x00362518, 0x0038251a, 0x003c221b, 0x003c2219, 0x003f201a, 0x0044231d, 0x004a2c25, 0x0051342e, 0x005e413c, 0x00674d45,
- 0x006e5a55, 0x0076625c, 0x007e6c67, 0x0081726d, 0x00887a72, 0x00877a71, 0x00897a73, 0x008c7c73, 0x008d7973, 0x008a756e, 0x00846f66, 0x007b6a5b, 0x006f6056, 0x00645650, 0x00564947, 0x004d4141,
- 0x0035302b, 0x002e2824, 0x00261e1c, 0x00251c18, 0x00291e1b, 0x00322318, 0x003e2c1d, 0x00473323, 0x00543a2b, 0x005a4032, 0x00614637, 0x00614637, 0x005d4438, 0x00584036, 0x00513a32, 0x004b3530,
- 0x003b2e2d, 0x00302825, 0x00221c1b, 0x00181516, 0x000e1413, 0x00090f0e, 0x00090c0b, 0x000c0d09, 0x00130a08, 0x00180b08, 0x0036140b, 0x00631c0a, 0x00711c0d, 0x00761d0c, 0x007b2210, 0x007c2c1b,
- 0x006f3c2a, 0x007a5947, 0x00c2aaa2, 0x00e7d6d4, 0x00edddeb, 0x00ddd7db, 0x00dad5d7, 0x00d5ced2, 0x00d5ced2, 0x00dbd3d6, 0x00d7cfd2, 0x00d0cacc, 0x00d0c8cc, 0x00cdc6ca, 0x00cdc7c9, 0x00cec7c8,
- 0x00cec4cf, 0x00cbc3cb, 0x00c2bac2, 0x00b8afb8, 0x00ada5ae, 0x00b4abb3, 0x00cdc5cb, 0x00e7e0e7, 0x00f3ecf4, 0x00f6eef5, 0x00f8eff7, 0x00edeaef, 0x00f8f2f7, 0x00f0ecf0, 0x00f1edf3, 0x00f2eff6,
- 0x00f3f3f7, 0x00f7f9fa, 0x00fcfdfc, 0x00fcfcfd, 0x00f9fbfa, 0x00e4eafc, 0x008992bf, 0x0050628c, 0x0057749e, 0x005d7caa, 0x00708ebe, 0x00556d9e, 0x005d5e84, 0x00807580, 0x00756053, 0x006c4d2e,
- 0x005d493d, 0x00674c38, 0x007d5e43, 0x007c5938, 0x0065452e, 0x005f4633, 0x00675342, 0x00554130, 0x00543a1d, 0x00775c33, 0x008d7243, 0x00705f2c, 0x0065472c, 0x005d3d2e, 0x004a2729, 0x00442734,
- 0x004e3b3f, 0x0055423c, 0x004b3323, 0x006a4a2d, 0x00885b34, 0x00705b36, 0x007e714f, 0x00917554, 0x0091613c, 0x008b5932, 0x00835a30, 0x00806138, 0x00b0a284, 0x00ebe1cf, 0x00f6eee7, 0x00e8e2e5,
- 0x00c4dbe2, 0x00c7d7d8, 0x00c2c7c0, 0x009e998a, 0x0072614b, 0x006a5841, 0x00a1907a, 0x00d2c7b8, 0x00dbd9d6, 0x00dee1e3, 0x00d5dde7, 0x00d5dfec, 0x00ced4cf, 0x00b4b6a0, 0x0095937b, 0x00807c5e,
- 0x00888270, 0x00b5b2a9, 0x00e6e1e4, 0x00ebeef4, 0x00d7dbe2, 0x00d5d9d4, 0x00dddacf, 0x00cbc4b6, 0x00cabcaa, 0x00e3d8ce, 0x00ccc8c6, 0x00b9c0c2, 0x00e5eff9, 0x00eaf0fc, 0x00f4f4ff, 0x00f8f1fb,
- 0x00e1ede8, 0x00d0d8d3, 0x00c3cec8, 0x00c3c9c5, 0x00dbe0dd, 0x00e0e7e6, 0x00d5dfe1, 0x00d4dddf, 0x00d7e3ec, 0x00dae8f2, 0x00bdbab4, 0x00af8b5f, 0x00b1835e, 0x00b28467, 0x00956a5b, 0x00755353,
- 0x007e7782, 0x009ea0b2, 0x00a4acbd, 0x009aa7b3, 0x00909999, 0x00a7a1a1, 0x00a79391, 0x008c6e68, 0x009d726b, 0x00b78f8b, 0x00d6b6b6, 0x00d2bdc3, 0x00a8a3b0, 0x008e8f9c, 0x00858490, 0x00797880,
- 0x00918b98, 0x00b8b0ba, 0x00b6adb3, 0x0090898b, 0x00797177, 0x0077757e, 0x005b5e6c, 0x0064667a, 0x008a90a6, 0x00a1abbf, 0x00bdc1d5, 0x00bdbac5, 0x009c9dab, 0x00b5b8c9, 0x00a0a2ba, 0x0051536e,
- 0x0044495f, 0x00555a6b, 0x00818493, 0x00b7b7c2, 0x00fffeff, 0x00fffdfb, 0x00fffefe, 0x00fdfefd, 0x00fbfdfd, 0x00bcbebf, 0x00606265, 0x0086898d, 0x00c9cbd3, 0x00e5e8f3, 0x00eff3fe, 0x00f1f6ff,
- 0x00e5e9f0, 0x00d6d2dd, 0x00cfc4d2, 0x00e5d6e5, 0x00f5eaf7, 0x00eeeff7, 0x00e9f2f7, 0x00ecf8fd, 0x00f0f3fd, 0x00eae9f6, 0x00e9ecf5, 0x00ecf2fc, 0x00e5eff6, 0x00e5e8f4, 0x00e4e9f5, 0x00e4e8f6,
- 0x00e4e8f5, 0x00e0e6f5, 0x00e1e6f6, 0x00dfe5f8, 0x00e4e7f9, 0x00e7eafd, 0x00e2e6f5, 0x00e3ebf7, 0x00e2edfa, 0x00e3f1fd, 0x00c1ceea, 0x009eaccd, 0x00ccd6f3, 0x00dbe5fa, 0x00c2cbd8, 0x00848e91,
- 0x00545b54, 0x004c5249, 0x00404337, 0x0038392a, 0x003a3725, 0x003c3723, 0x003b3922, 0x003c3a21, 0x003b3823, 0x00373822, 0x00343621, 0x00353521, 0x00353420, 0x00363421, 0x00353320, 0x0034331f,
- 0x00373420, 0x0037361f, 0x00383622, 0x00373522, 0x00343420, 0x00343324, 0x00373429, 0x003c3629, 0x00433a2e, 0x0041392b, 0x00403728, 0x00403626, 0x003e3626, 0x003c3624, 0x003b3824, 0x003b3b25,
- 0x00353729, 0x002d2e22, 0x00797b70, 0x00e5e7e0, 0x00fefdfc, 0x00fcfdfc, 0x00fdfdff, 0x00fefefe, 0x00c9c9cd, 0x00595959, 0x00202120, 0x005b5f5f, 0x00a3a6a7, 0x00abadaf, 0x00a4a6a9, 0x009fa1a4,
- 0x009ca1a6, 0x00a0a6a9, 0x00abb0b5, 0x00afb6bb, 0x009fa8ad, 0x00717977, 0x003a3f39, 0x00363430, 0x00483f38, 0x00433127, 0x0044291c, 0x00573524, 0x007f4d3a, 0x00864f3a, 0x00854934, 0x008d4b36,
- 0x008e553a, 0x008c5035, 0x0084432c, 0x00803d2b, 0x00673326, 0x00411e16, 0x001e0a06, 0x00181012, 0x00251f32, 0x00312742, 0x0052415c, 0x0077606e, 0x007f6163, 0x00623e39, 0x00764f43, 0x00885f4a,
- 0x00866141, 0x007b5a3c, 0x006a5037, 0x005e4733, 0x00524132, 0x00483b2c, 0x003d3324, 0x00352b1c, 0x002f271c, 0x002a2119, 0x00241d15, 0x001c1811, 0x0013110e, 0x00111211, 0x00181918, 0x00252725,
- 0x003e322f, 0x00493f3d, 0x0052494a, 0x00524c51, 0x004d4b51, 0x0043464b, 0x003e4146, 0x003c3d41, 0x003c3941, 0x003b383b, 0x003d3c40, 0x00353d44, 0x00676e71, 0x00a4a7a7, 0x00b5b4b1, 0x00b8b6ae,
- 0x00b9b8ad, 0x00b8b8ad, 0x00bbbbb5, 0x00c2c2c1, 0x00c2c3c4, 0x00c0c1c6, 0x00bcbfc5, 0x00b8bfc4, 0x00b9bcc8, 0x00b8bcc6, 0x00b8bec6, 0x00b8bfc7, 0x00b9c0ca, 0x00b8bfcb, 0x00bbc4cf, 0x00bfc9d2,
- 0x00c3c8cf, 0x00c9cfd4, 0x00cdd5d9, 0x00ced5da, 0x00cfd4d9, 0x00d0d5db, 0x00cfd6db, 0x00d1dadc, 0x00d8dbe3, 0x00d6dce3, 0x00d5dde3, 0x00d5dde2, 0x00d4dde1, 0x00d5dce0, 0x00d7dee2, 0x00d9e0e3,
- 0x00dbe0e7, 0x00dde4e8, 0x00e0e6eb, 0x00e2e9ed, 0x00e9eff5, 0x00f6f8fb, 0x00f8fafc, 0x00f5fbfa, 0x00f0faf8, 0x00f1f7f6, 0x00ececef, 0x00c7bcc3, 0x00a8919a, 0x00826d76, 0x003f2f37, 0x004e464a,
- 0x00a9a6aa, 0x00f4f3f6, 0x00f7f8fa, 0x00feffff, 0x00f9f9f8, 0x00fdfcfa, 0x00b8b8b3, 0x004d4f47, 0x002a2b20, 0x00222219, 0x0026261d, 0x001e1d13, 0x0015140c, 0x000a0903, 0x00080701, 0x000b0906,
- 0x00090503, 0x00070503, 0x00070503, 0x00070504, 0x00070305, 0x00070206, 0x00060106, 0x00050003, 0x00060006, 0x00050004, 0x00060103, 0x00050002, 0x00080205, 0x00090407, 0x000b0509, 0x00090507,
- 0x001d2547, 0x00525a8a, 0x00565d9f, 0x004e56a9, 0x00464faa, 0x003f4ba2, 0x003a459a, 0x00384394, 0x00364194, 0x00363c93, 0x00343992, 0x002e3a88, 0x002b3679, 0x002a3473, 0x00273070, 0x00202a6c,
- 0x001b2664, 0x002e305a, 0x00827887, 0x00bfa593, 0x00dcae75, 0x00d7b487, 0x00d9b994, 0x00e4c29f, 0x00f8d1ae, 0x00fdd9b2, 0x00fcdaaf, 0x00fcd9a9, 0x00f9d3a1, 0x00f3cc98, 0x00e9c28c, 0x00e3bd85,
- 0x00cfa177, 0x009f7445, 0x009a6c3f, 0x00c18f64, 0x00dcad83, 0x00d6ad80, 0x00d2ae84, 0x00ddba94, 0x00f4dcba, 0x00fbedcb, 0x00fdf5d9, 0x00f2ebd8, 0x00867c76, 0x001d1516, 0x000b030e, 0x000d041a,
- 0x000d061e, 0x000b0820, 0x000e0a1f, 0x00110b1f, 0x00140d1c, 0x000f0f25, 0x000d1028, 0x000c1028, 0x0012122e, 0x0011132e, 0x000f132b, 0x000d112b, 0x000e0f2f, 0x000e0e2f, 0x000e0e2e, 0x000e0f30,
- 0x000d0e2e, 0x000d0b2c, 0x000d0a2c, 0x000e082b, 0x000f0627, 0x000e0626, 0x000d0827, 0x000c0926, 0x000b0a27, 0x000a0c25, 0x000a0e26, 0x000a0f28, 0x000c0f2a, 0x000c102c, 0x000b102d, 0x000b0e2b,
- 0x000c0f32, 0x000c0e35, 0x000b0c36, 0x00080a33, 0x00080836, 0x0009072b, 0x000b0625, 0x000c0625, 0x000b0627, 0x000b0627, 0x000d0829, 0x000c0929, 0x000f0b2c, 0x00110a2b, 0x00120b2c, 0x00100b2b,
- 0x000d0c27, 0x000c0b26, 0x000d0b28, 0x000b0926, 0x000c0b23, 0x00111123, 0x00888995, 0x00eaecf1, 0x00fbfcfc, 0x00fdfefc, 0x00fcfbfa, 0x00fbfefb, 0x00b2b6c2, 0x003a495a, 0x00223751, 0x00264163,
- 0x002a4e73, 0x002b4f75, 0x00325276, 0x00375778, 0x003f5c77, 0x002f5472, 0x00214c6f, 0x001b4269, 0x0019406f, 0x001a4071, 0x001a3d72, 0x00193b72, 0x001a3c74, 0x001b3c73, 0x001b3a6f, 0x001b3a6d,
- 0x001d334f, 0x00142a4f, 0x0011254b, 0x0013264a, 0x00343648, 0x00343231, 0x001c130b, 0x00140a03, 0x00131528, 0x001d2246, 0x002b3379, 0x00283998, 0x00394aad, 0x00273e9c, 0x002943a2, 0x004262bc,
- 0x005a74c6, 0x005565b4, 0x0040489c, 0x004c59b5, 0x005169da, 0x006471b5, 0x00434067, 0x00362b40, 0x00775b54, 0x008a6e59, 0x005f462c, 0x002d1d00, 0x001b1302, 0x00221a08, 0x00271d0b, 0x002d230c,
- 0x00202e5a, 0x0021376c, 0x001c3879, 0x0011367c, 0x0013327d, 0x00122e6b, 0x0014295c, 0x0014254f, 0x00212e5b, 0x00162755, 0x00283c64, 0x005c7082, 0x008a97ab, 0x008a95a5, 0x007b8191, 0x00777683,
- 0x009d9ba4, 0x00b8b7bd, 0x00c1bfc5, 0x00d6d5da, 0x00e1e3e5, 0x00d1d6d4, 0x00b0b5b1, 0x00cacfc8, 0x00fafbfa, 0x00fbfaf7, 0x00fefffb, 0x00fafcf8, 0x00fafefe, 0x00dae2e7, 0x008b959d, 0x006f7b85,
- 0x006a7d89, 0x00677c87, 0x00667c87, 0x00607884, 0x005d7681, 0x0059747f, 0x005b7781, 0x0059767e, 0x0057747f, 0x00526e78, 0x004b6871, 0x0044606a, 0x003d5661, 0x00364d59, 0x002c4350, 0x00263b49,
- 0x001b313e, 0x00192d39, 0x001a2a38, 0x001b2a39, 0x00202e3e, 0x001e3342, 0x00203a4a, 0x00223e4e, 0x00254655, 0x00234957, 0x00264b5a, 0x00274e5d, 0x002c5061, 0x002a4d61, 0x00305065, 0x0036536b,
- 0x003e5b5d, 0x00374d51, 0x006b7980, 0x00aeb2bd, 0x00ddd4de, 0x00c7bbbe, 0x00bdada7, 0x00c5ae9e, 0x00c6ae8d, 0x00c2a981, 0x00cdae77, 0x00d0aa57, 0x00c69e5a, 0x00b3894f, 0x00926838, 0x00704824,
- 0x007e5a39, 0x00be9c76, 0x00e2c39c, 0x00e4c794, 0x00e4cc8f, 0x00cbb17f, 0x00806844, 0x005e4527, 0x00574937, 0x0052463b, 0x00534c45, 0x00403e39, 0x00686561, 0x00bfbbb7, 0x00e8e1dd, 0x00e1dbd4,
- 0x00ede9dd, 0x00f6f3eb, 0x00eaeceb, 0x00ced1d6, 0x00aab3be, 0x00a3b0bb, 0x009dacb6, 0x00acb4c2, 0x00bdc1d2, 0x00b8bac8, 0x009ca1b1, 0x008696a7, 0x006e7891, 0x003b4460, 0x00191e3e, 0x00272c4b,
- 0x00363a53, 0x00454a5f, 0x003b3e50, 0x00575868, 0x006c6d77, 0x00434a6e, 0x00484d78, 0x00686484, 0x00504441, 0x00403322, 0x00695c43, 0x006a5d3c, 0x00554b31, 0x00483e2c, 0x0040342b, 0x0040352e,
- 0x00453624, 0x00453a2c, 0x004a423a, 0x004e4946, 0x0055565e, 0x0047535e, 0x002f4654, 0x00284657, 0x00234a5d, 0x001e485c, 0x00204c5b, 0x001c464e, 0x001f454e, 0x001d444f, 0x001c464e, 0x001e454a,
- 0x001e464a, 0x001d464a, 0x001d4649, 0x001e4648, 0x0020464a, 0x0021464c, 0x0021454e, 0x001f454e, 0x0021444e, 0x0020434d, 0x0021444f, 0x001f434d, 0x0020444d, 0x0021454e, 0x001f444e, 0x0020454e,
- 0x00fdfcf6, 0x00fdfbfa, 0x00fafcfe, 0x00fcffff, 0x00fbfbfd, 0x00fffaf7, 0x00d3bfb6, 0x00745748, 0x0045291c, 0x0042261b, 0x00362019, 0x00342320, 0x00362520, 0x003d2821, 0x00442e22, 0x004a3324,
- 0x004f3626, 0x004f3727, 0x004d3526, 0x004b3124, 0x00442d1e, 0x003b2a1b, 0x00362618, 0x00372519, 0x003b2218, 0x003c2118, 0x003d1f17, 0x0040211a, 0x00472822, 0x004d3029, 0x00593e36, 0x00644a41,
- 0x00685653, 0x00705e5a, 0x00776562, 0x007c6d67, 0x0082736b, 0x0082746b, 0x0082736b, 0x0086756d, 0x00887068, 0x00846b64, 0x007e655d, 0x00745f51, 0x0066554b, 0x00594944, 0x004a3d3c, 0x00413735,
- 0x00302b2a, 0x002b2324, 0x00231b1b, 0x00201916, 0x00231917, 0x00291e15, 0x00322619, 0x00382b1d, 0x00422e21, 0x00493427, 0x00513a2d, 0x00513b2f, 0x004f3b31, 0x004b3831, 0x0045302e, 0x00402a2b,
- 0x00342724, 0x002c2420, 0x00201b19, 0x00151514, 0x000b1212, 0x00091010, 0x000a100e, 0x000c0d0b, 0x00100804, 0x00180a09, 0x00241107, 0x003c1306, 0x005c200e, 0x00752a18, 0x0086321c, 0x008d3820,
- 0x008a4328, 0x007a412c, 0x0087584d, 0x00bc928f, 0x00f5cfd8, 0x00eadcdf, 0x00d9d4d5, 0x00d8d1d3, 0x00d9d1d5, 0x00dbd4d7, 0x00e3dbdd, 0x00ddd4d7, 0x00d8d1d3, 0x00d2ccce, 0x00d1cacc, 0x00cfc9cb,
- 0x00c7c0c9, 0x00bfb8bf, 0x00bab4ba, 0x00bfb9c2, 0x00cdc7cf, 0x00e1dde0, 0x00f0ebef, 0x00f4eff6, 0x00f0eef2, 0x00f4edf3, 0x00f3edf4, 0x00f0ecf1, 0x00efebf0, 0x00efe9f0, 0x00d2d1d7, 0x00c5c4c7,
- 0x00e3e5e6, 0x00fafcfc, 0x00f7fbfa, 0x00fcfdfd, 0x00fafdfd, 0x00e7e5f9, 0x00757793, 0x003b4152, 0x00525f68, 0x004b5768, 0x0044526c, 0x004a5175, 0x00524767, 0x0076636a, 0x007e6554, 0x006d4c27,
- 0x0064571e, 0x0069521a, 0x00705417, 0x0076521b, 0x00755123, 0x008e6c4c, 0x00a7856b, 0x008f6854, 0x0084523b, 0x009a6248, 0x008d542e, 0x006f3a09, 0x008b5127, 0x00ac6f50, 0x00854e38, 0x007f523f,
- 0x00735646, 0x006e5440, 0x00614a2e, 0x00694b2e, 0x007e5837, 0x00867045, 0x00958858, 0x009b8154, 0x00926437, 0x0089592f, 0x00805630, 0x009e815f, 0x00e5dac6, 0x00faf3ec, 0x00efedee, 0x00e4e3ef,
- 0x00d4e5f9, 0x00d8e5f2, 0x00d9e4e5, 0x00bdbfbc, 0x00a4a397, 0x00a7a497, 0x00c8c4ba, 0x00d6d2cc, 0x00cdcfd7, 0x00d5d8e6, 0x00dfe9f5, 0x00e0e7f3, 0x00dcded9, 0x00c5c4b4, 0x00aeae91, 0x00beba9c,
- 0x00c4bdac, 0x00c5c0b8, 0x00dddada, 0x00ecf0f5, 0x00d5dce2, 0x00c8cece, 0x00d1d3ce, 0x00d8d5ce, 0x00d5ccc0, 0x00e3d9d2, 0x00cfcaca, 0x00b8bcc1, 0x00e2e8f3, 0x00e9ecf6, 0x00e7e6ef, 0x00f9f2f6,
- 0x00f1f0f0, 0x00d7d1d0, 0x00b5b3af, 0x00b8b6b1, 0x00dfdcd9, 0x00dbdbdd, 0x00b3b6be, 0x00b0b0bf, 0x00bdc7dd, 0x00c6d5ef, 0x00b4b1b7, 0x009a7a55, 0x009e7354, 0x00936754, 0x00855955, 0x0088636e,
- 0x007a6b89, 0x00918ead, 0x009399b0, 0x0096a2b0, 0x008c9492, 0x00a99992, 0x00a0847b, 0x00715043, 0x00784c43, 0x00805857, 0x007e5f67, 0x00917d8e, 0x009e96ae, 0x00a2a0b4, 0x00a9a7b7, 0x0097939e,
- 0x00b1a6b9, 0x00b7adb5, 0x00796f6d, 0x0072675d, 0x007f716b, 0x006a5d5f, 0x00544b54, 0x006d6576, 0x00a8a8b8, 0x00c7ccd7, 0x00d6d6df, 0x00beb6c0, 0x00908b95, 0x00a59fb2, 0x00807c93, 0x003b3b54,
- 0x00383a4f, 0x0066687b, 0x009394a4, 0x00c0bfca, 0x00fefcff, 0x00fefefb, 0x00fdfefb, 0x00feffff, 0x00f9fbfb, 0x00bcbebf, 0x00606165, 0x00888a8f, 0x00c5c8d0, 0x00e0e4ee, 0x00edf2fd, 0x00f0f6ff,
- 0x00dedeec, 0x00cac4d2, 0x00d0c5d3, 0x00e5d8e3, 0x00ede5ed, 0x00e9ebef, 0x00e9f1f4, 0x00eef8fc, 0x00eaf0f7, 0x00e9e6f5, 0x00edebfb, 0x00ecf0fc, 0x00e6edf7, 0x00e4e9f5, 0x00e2e8f5, 0x00e4e8f5,
- 0x00e1e5f5, 0x00e0e5f4, 0x00dde3f2, 0x00e1e4f8, 0x00e2e7fa, 0x00e6e8fd, 0x00e2e5f6, 0x00e5edf8, 0x00e2edfa, 0x00e6f4ff, 0x00c6d5ef, 0x00a5b5d8, 0x00c7d6f5, 0x00d5e2fb, 0x00c9d6e7, 0x008c979e,
- 0x00515950, 0x004c5148, 0x003c4034, 0x0038392a, 0x00393624, 0x003b3723, 0x003a3620, 0x003b3921, 0x003a3721, 0x00363821, 0x00353621, 0x00363521, 0x00363421, 0x00363422, 0x00353320, 0x00343320,
- 0x00373522, 0x00363521, 0x00383622, 0x00363521, 0x0033311e, 0x00333222, 0x00393528, 0x003c3629, 0x0041382e, 0x0040372b, 0x00403728, 0x00403727, 0x003f3726, 0x003c3725, 0x003b3824, 0x003a3a24,
- 0x00343628, 0x002f3124, 0x007c7e73, 0x00e7e8e2, 0x00ffffff, 0x00fdfdfe, 0x00fcfbff, 0x00fefefe, 0x00cbcbce, 0x00606061, 0x002b2d2d, 0x005c6060, 0x009fa2a3, 0x00a7a8ac, 0x009fa1a5, 0x009da0a3,
- 0x00989ea3, 0x009ea5a9, 0x00a3a9ae, 0x00aab1b5, 0x0098a1a8, 0x00737b7e, 0x003c4546, 0x002c3133, 0x002e302f, 0x00292522, 0x00312924, 0x00453730, 0x0063463f, 0x0068473e, 0x00633e34, 0x006a3f33,
- 0x00745036, 0x007d543e, 0x00734433, 0x005f2e23, 0x003c1710, 0x0027110d, 0x00150b0d, 0x000e0d12, 0x000c0819, 0x00180e24, 0x003d2d41, 0x0068505d, 0x006e4c4f, 0x0061382f, 0x0080533e, 0x009c6a4b,
- 0x0093633c, 0x008d603f, 0x007d573c, 0x006d4f3b, 0x005b453b, 0x00534137, 0x0047392c, 0x003d2f22, 0x0034281e, 0x002f251d, 0x00271f17, 0x001f1a13, 0x00171310, 0x00181514, 0x001f1e1c, 0x002b2a29,
- 0x00413735, 0x004c4344, 0x0050484d, 0x00524c54, 0x004e4c54, 0x004a4b52, 0x00424249, 0x00403e46, 0x003b373e, 0x00393537, 0x003b393e, 0x003c434b, 0x00757b81, 0x00a9abb0, 0x00b2b1b3, 0x00b5b2b0,
- 0x00b5b4b1, 0x00b3b4b0, 0x00b4b7b4, 0x00b8bdbc, 0x00babebf, 0x00b8bbc0, 0x00b6b9c2, 0x00b6bac4, 0x00b5b8c4, 0x00b6bac3, 0x00b5bac2, 0x00b1b8c0, 0x00b1b9c3, 0x00b0b9c3, 0x00b3bdc6, 0x00b9c2ca,
- 0x00bec4ca, 0x00c4cbd0, 0x00c6cfd2, 0x00c8d0d3, 0x00ccd0d5, 0x00cdd1d8, 0x00cdd3d9, 0x00ced5db, 0x00d2d7dc, 0x00d1d7dc, 0x00d1d8dd, 0x00d2dade, 0x00d3dce0, 0x00d4dbe0, 0x00d4dbe0, 0x00d5dbe0,
- 0x00d8dee3, 0x00dbe2e7, 0x00dce3e6, 0x00dbe2e8, 0x00e0e6eb, 0x00ebeef4, 0x00f2f5f7, 0x00eef5f8, 0x00ebf6f4, 0x00f0f6f7, 0x00f8fafd, 0x00e6dde4, 0x00c9b4bf, 0x00a5939c, 0x0052434b, 0x0040393f,
- 0x00999a9d, 0x00e9eaee, 0x00feffff, 0x00fefefd, 0x00fafaf9, 0x00fefefb, 0x00cfd1c9, 0x0065675f, 0x00282a1e, 0x0027291e, 0x0023241c, 0x001d1d16, 0x00110f0b, 0x000a0803, 0x00060400, 0x00070401,
- 0x00080502, 0x00070503, 0x00070503, 0x00060404, 0x00070306, 0x00070207, 0x00060106, 0x00050004, 0x00050004, 0x00050004, 0x00060104, 0x00060104, 0x00080206, 0x000a0408, 0x000b0509, 0x000a0508,
- 0x0022274b, 0x00575c8e, 0x00595e9f, 0x005158a8, 0x004751a9, 0x00404ca2, 0x00384497, 0x00344091, 0x00353f92, 0x00353b93, 0x00323a8f, 0x002e3b8a, 0x002b357a, 0x002b3475, 0x0027306d, 0x00232b6d,
- 0x001e2565, 0x003a3762, 0x008e7f8f, 0x00cbad9c, 0x00e9b77a, 0x00e1bd90, 0x00e1c49e, 0x00e9caa4, 0x00f8d5b3, 0x00fbd8b5, 0x00fbd9b4, 0x00fbd9b0, 0x00f9d7aa, 0x00f2d19f, 0x00e9c791, 0x00e1bf86,
- 0x00d2a97d, 0x00c5996d, 0x00c99b6d, 0x00dcad80, 0x00e5b686, 0x00e3b788, 0x00dfb989, 0x00debb8e, 0x00ebcda2, 0x00f9e2ba, 0x00fef4cf, 0x00fdfae0, 0x00bcb5a0, 0x004a403b, 0x00090008, 0x000d0516,
- 0x000d051d, 0x000c0522, 0x000d0625, 0x000f0921, 0x00120a20, 0x000d0d25, 0x000b0e29, 0x000d0d28, 0x00100f2d, 0x0010112d, 0x0010122e, 0x00101130, 0x00101032, 0x000f0d32, 0x000c0d31, 0x000a0d2f,
- 0x00090c2c, 0x0009092b, 0x000a072b, 0x000c0529, 0x000e0428, 0x000e0527, 0x000c0727, 0x000a0726, 0x00080823, 0x00070a23, 0x00080c24, 0x000a0e26, 0x000c0f2a, 0x000c0f2b, 0x000b0e2c, 0x000b0d2c,
- 0x000b0e2f, 0x000b0e32, 0x000c0d32, 0x000a0c32, 0x00090a32, 0x000a072f, 0x000c0529, 0x000c0529, 0x000a0526, 0x000b0727, 0x000c0828, 0x000d0a29, 0x000e0929, 0x00100a2a, 0x00110a2a, 0x00110b2b,
- 0x000d0b28, 0x000c0b26, 0x000c0b25, 0x000b0a25, 0x000b0a22, 0x000a091e, 0x006e6c7e, 0x00dbdbe4, 0x00fcfffe, 0x00fffffe, 0x00faf9f9, 0x00fdf8ff, 0x00cbc9d1, 0x004f565a, 0x000f2221, 0x00112b29,
- 0x001f3f48, 0x001e3c54, 0x00193b58, 0x00153764, 0x0014386d, 0x0018385f, 0x00163b55, 0x00193b58, 0x001d3b62, 0x001d3b63, 0x001c3862, 0x001c3862, 0x0019365f, 0x00153258, 0x00112c51, 0x000e2a4d,
- 0x001c293d, 0x00131a33, 0x000b1125, 0x00303043, 0x00625a5a, 0x00514942, 0x001a110a, 0x000d0604, 0x000f1229, 0x000b1235, 0x0017215c, 0x001f2c81, 0x003d418d, 0x003b4390, 0x003d4da3, 0x004865c2,
- 0x005164bd, 0x003e4390, 0x005857a0, 0x007575c5, 0x00405ec7, 0x00454f9d, 0x002e2b64, 0x001d1134, 0x00422721, 0x00614432, 0x005b3e2a, 0x003b2511, 0x003d2c1a, 0x00534128, 0x00614d26, 0x00614c1d,
- 0x003a415b, 0x002e3a67, 0x001f366f, 0x0014317a, 0x000e2c79, 0x00112c6a, 0x00132e5c, 0x000d2548, 0x0012264f, 0x000f295b, 0x00394e79, 0x0098a5b4, 0x00d9e5f6, 0x00dce6f4, 0x00b8bfcc, 0x006c6f7e,
- 0x00888490, 0x00c2bfc9, 0x00c1bec8, 0x00b9b7c0, 0x00c8cacf, 0x00d3d9d6, 0x00bac0bb, 0x00bec2be, 0x00eaede9, 0x00fdfef9, 0x00fefefa, 0x00fdfefb, 0x00fafdfe, 0x00e7eff2, 0x009ca6ac, 0x00657178,
- 0x005c7581, 0x005c7681, 0x0058737d, 0x00536f79, 0x004e6b75, 0x004d6b75, 0x004e6c76, 0x004c6b75, 0x00476871, 0x0042626b, 0x00405d68, 0x003b5863, 0x00334e5a, 0x002f4954, 0x0029414d, 0x00233a46,
- 0x001b333f, 0x001a2f3c, 0x00192a38, 0x001b2a38, 0x001f2b3c, 0x001e3141, 0x001e3546, 0x00213a4c, 0x00234352, 0x00214655, 0x00244a5a, 0x00254d5f, 0x00254c5f, 0x00254b61, 0x002a4f64, 0x00305269,
- 0x00385159, 0x004b616a, 0x00a1b2b9, 0x00c4cfd5, 0x00d7d4db, 0x00ded7db, 0x00e3d9d9, 0x00d1c3bf, 0x00afa294, 0x00aca08f, 0x00b8a685, 0x00c7a96b, 0x00cba871, 0x00c39f6d, 0x00a37d4e, 0x00956f42,
- 0x00b48f68, 0x00e3be94, 0x00e7c898, 0x00dabe8a, 0x00dac487, 0x00dfc090, 0x00a98a61, 0x006c512d, 0x00463623, 0x0042352d, 0x00373030, 0x002e2d30, 0x00626266, 0x00b6b5b6, 0x00d1cdcc, 0x00dfdad7,
- 0x00eddad7, 0x00e6dad9, 0x00e6e1e4, 0x00d2d4dd, 0x00a2b0c2, 0x0097aabd, 0x0098a9bc, 0x0097a4b7, 0x0099a1af, 0x00a1a5b0, 0x009ea7b2, 0x008d9aaa, 0x007b859c, 0x0058607d, 0x00232a4a, 0x0006082a,
- 0x000d0f30, 0x000c0f2a, 0x000b0c25, 0x000e0d22, 0x00141220, 0x000f1335, 0x0017193c, 0x00282234, 0x004a362c, 0x00644e3a, 0x00635038, 0x00584c31, 0x004b4734, 0x0046412f, 0x00473c2c, 0x004c3b2a,
- 0x00443522, 0x00483c2c, 0x004d4237, 0x004e463e, 0x00525150, 0x00434d50, 0x0030424c, 0x00294251, 0x00224757, 0x001e475a, 0x001e4757, 0x001f4550, 0x001f444f, 0x00214553, 0x001f444f, 0x001d464b,
- 0x0020454c, 0x001f454b, 0x001e454a, 0x001e4648, 0x001f464a, 0x0020454c, 0x0020444e, 0x0020434e, 0x0020444d, 0x0020444d, 0x0021444e, 0x0021454f, 0x0021444e, 0x001f434d, 0x0020434e, 0x0020444f,
- 0x00fef8f4, 0x00f4f2f3, 0x00fdffff, 0x00f7feff, 0x00fdfeff, 0x00fdfbfa, 0x00dac6c0, 0x00775d51, 0x003d2218, 0x00362219, 0x0034211e, 0x00312121, 0x003b2521, 0x00412b23, 0x004d3226, 0x00513827,
- 0x00563728, 0x00553929, 0x00513727, 0x004c3322, 0x0045301f, 0x003e2c1f, 0x0039261b, 0x00382316, 0x003c2119, 0x003d2119, 0x003f211a, 0x0042241c, 0x00472a22, 0x004c3027, 0x00563b33, 0x005f453d,
- 0x00685251, 0x006c5854, 0x0072605c, 0x00756560, 0x007b6e65, 0x007b6e64, 0x007e6e65, 0x00806f64, 0x00826863, 0x007e625d, 0x00785c56, 0x006e564a, 0x005f4c41, 0x0053443c, 0x00433934, 0x00352e2c,
- 0x002d2428, 0x00261e22, 0x001e181b, 0x001c1717, 0x001f1718, 0x00231c16, 0x00282218, 0x002d241a, 0x0037251e, 0x003e2b23, 0x00442f28, 0x00452f29, 0x0045302b, 0x00422e2d, 0x003b292b, 0x0038272b,
- 0x00332724, 0x002a2320, 0x001f1c1b, 0x00151617, 0x000c1413, 0x000b1212, 0x000b1110, 0x000b0d0b, 0x000f0705, 0x00140b06, 0x00231009, 0x003a190b, 0x00622416, 0x00792c17, 0x008d3519, 0x00993b19,
- 0x00974323, 0x008f4929, 0x00884930, 0x00875241, 0x00c6948c, 0x00e3cecd, 0x00e7dee1, 0x00e4dbde, 0x00e9dfe3, 0x00e8e1e3, 0x00e0d9db, 0x00e0d9da, 0x00dcd5d7, 0x00d8d0d3, 0x00d8d0d3, 0x00d6d0d3,
- 0x00d6d0d9, 0x00d3cdd5, 0x00d7d2d9, 0x00e0dce2, 0x00efecf1, 0x00f0eef2, 0x00efedf1, 0x00f1eff5, 0x00f2eef4, 0x00f2eef5, 0x00f2edf3, 0x00efedf1, 0x00ece5ee, 0x00e1dde5, 0x00a09da1, 0x00717274,
- 0x00d1d2d3, 0x00f6f9f8, 0x00fbfcfb, 0x00fdffff, 0x00fdfefe, 0x00e8e3ef, 0x00857b84, 0x00484139, 0x00595545, 0x00434236, 0x00362e30, 0x00413547, 0x0043273c, 0x004f3331, 0x0071513a, 0x00705226,
- 0x006f5c1a, 0x00715616, 0x00735116, 0x00774d15, 0x007d5226, 0x008f6845, 0x00a17c5f, 0x00875f49, 0x0086523f, 0x0091593f, 0x007c4126, 0x0074401b, 0x0093583a, 0x00a26a4b, 0x00814c32, 0x007a5134,
- 0x0070573e, 0x006a583a, 0x0074644a, 0x006c593f, 0x00725240, 0x00756340, 0x00817047, 0x00866a41, 0x00885934, 0x00875832, 0x00875e3a, 0x00b29674, 0x00faf1d9, 0x00eeedde, 0x00dfe3dd, 0x00dbdfe1,
- 0x00dae0ef, 0x00d5dde7, 0x00e2e5ed, 0x00d3d6d8, 0x00c0bfbb, 0x00c5c5c1, 0x00d6d4d2, 0x00cecacb, 0x00d4cfd7, 0x00d7d6df, 0x00e3e3ee, 0x00e0e4eb, 0x00e8e5da, 0x00cdccb3, 0x00b2af8c, 0x00c4bd9e,
- 0x00cbc3b3, 0x00c3bcb6, 0x00dbd9db, 0x00edf4f8, 0x00d9e4e9, 0x00c8cfd2, 0x00d1d3d4, 0x00e8e4e1, 0x00dfd3cd, 0x00d2c9c5, 0x00b9b6b7, 0x00aeb2b8, 0x00d0d3e1, 0x00d1d0da, 0x00d1ccd1, 0x00f2e9e8,
- 0x00fdf0f0, 0x00e1d0cd, 0x00c3b2ad, 0x00ccbbb7, 0x00eee0de, 0x00e9dde1, 0x00aca6b3, 0x009798aa, 0x00979dbd, 0x008b94b8, 0x00666683, 0x00594742, 0x006f544d, 0x006f4d49, 0x007b5959, 0x009d8086,
- 0x00a190a5, 0x009a93a7, 0x0089879e, 0x008f919f, 0x0086858b, 0x00947f75, 0x00a38475, 0x00926f5f, 0x008d6361, 0x0069484f, 0x003b2539, 0x004d4461, 0x008384a6, 0x00a6a8c5, 0x00c6c6dc, 0x00b7b5c6,
- 0x009c8ea5, 0x008e8186, 0x006d5f58, 0x00635340, 0x006f594a, 0x007e6566, 0x00806a71, 0x00948090, 0x00b6adba, 0x00cdcbcc, 0x00dcd8da, 0x00b6a9b0, 0x00685d6d, 0x00635869, 0x003f384c, 0x0028273d,
- 0x005b5b70, 0x0089889b, 0x00a8a5b5, 0x00c2c1ca, 0x00fdfdff, 0x00fdfefb, 0x00fdfffb, 0x00fdfefd, 0x00fdfdfd, 0x00bdbdc0, 0x00606167, 0x00888a90, 0x00c5c8d0, 0x00dfe2ec, 0x00f0f3ff, 0x00edf0fc,
- 0x00dad5e8, 0x00cbc1d2, 0x00d9cbda, 0x00e5d5e2, 0x00f1e8f1, 0x00edf0f3, 0x00eff7f9, 0x00f0fdfd, 0x00e5ecf5, 0x00e4e6f2, 0x00f0f0fe, 0x00eaf0fb, 0x00e8ecf9, 0x00e3e9f8, 0x00e4e7f9, 0x00e5e7f7,
- 0x00e0e6fb, 0x00dfe3f3, 0x00e0e2f6, 0x00dfe4f8, 0x00e4e7fd, 0x00e5e9fb, 0x00e2e6f7, 0x00e4ebf8, 0x00dee8f6, 0x00e0f0fc, 0x00c9d6f2, 0x00a7b8dd, 0x00c3cff6, 0x00d2e2fd, 0x00d2def0, 0x0097a7ae,
- 0x00535851, 0x00494e46, 0x003c3d33, 0x00393829, 0x003a3723, 0x003a361f, 0x003a3720, 0x003a3822, 0x00393922, 0x00373822, 0x00373622, 0x00383522, 0x00363421, 0x00353521, 0x00343320, 0x0034331f,
- 0x00353421, 0x00363521, 0x00373623, 0x00363421, 0x0034331f, 0x00343323, 0x00373529, 0x003b382b, 0x00413a30, 0x0041382c, 0x00413628, 0x00403626, 0x003e3624, 0x003b3724, 0x003a3824, 0x003a3924,
- 0x00373a2c, 0x00333528, 0x007f8176, 0x00e9eae4, 0x00ffffff, 0x00fdfcfe, 0x00fbfbfe, 0x00fefdfe, 0x00cecdd0, 0x006a696c, 0x003c3c40, 0x0066686a, 0x009a9c9e, 0x00a4a6a7, 0x009c9fa1, 0x00979fa0,
- 0x009ba0a5, 0x009da4a8, 0x00a2a9ae, 0x00a4acb1, 0x009ca4ac, 0x0085898f, 0x0052575a, 0x002e3335, 0x00191e1e, 0x00171c18, 0x00262722, 0x0034302a, 0x00443430, 0x0046312d, 0x00412622, 0x0040251f,
- 0x00442e19, 0x00503523, 0x004f2f23, 0x003b1a12, 0x00200a07, 0x00160c0d, 0x000f0d11, 0x00090b12, 0x00090716, 0x00100917, 0x002a1c2a, 0x003f2832, 0x00492a29, 0x00573022, 0x0086573e, 0x009c6642,
- 0x009c623d, 0x0095613f, 0x00865c40, 0x00775541, 0x00634a41, 0x0059473d, 0x004f3f34, 0x0044342b, 0x00392b23, 0x0032241e, 0x002a1f1b, 0x00221916, 0x00181010, 0x00181413, 0x00201d1d, 0x002d2a2d,
- 0x0044383b, 0x004b4347, 0x004c474e, 0x004e4c55, 0x004f4f58, 0x004c4d55, 0x0045444d, 0x003f3b45, 0x003a3339, 0x00352e31, 0x003c383d, 0x00484c55, 0x00858990, 0x00aaabb1, 0x00aeaeb1, 0x00aeadad,
- 0x00abaaac, 0x00aaaaac, 0x00abaeb0, 0x00adb3b3, 0x00b2b9bb, 0x00afb4bd, 0x00afb1bf, 0x00b0b1c0, 0x00b2b4c1, 0x00b1b5c1, 0x00afb3bf, 0x00abb2bd, 0x00abb4be, 0x00abb5be, 0x00afb9c1, 0x00b4bdc5,
- 0x00bec4c9, 0x00c2c7cd, 0x00c6ccd2, 0x00c5ccd2, 0x00cad0d5, 0x00cad0d5, 0x00cad1d6, 0x00cbd1d7, 0x00cdd0d7, 0x00cbd1d6, 0x00ccd3d7, 0x00ced5d9, 0x00d0d7db, 0x00d2d8dd, 0x00d4dbdf, 0x00d4dee1,
- 0x00d2d9e0, 0x00d6dde2, 0x00d8dde5, 0x00d7dee4, 0x00dce3e9, 0x00dee3e6, 0x00e3e9ed, 0x00e6f2f3, 0x00e7f6f8, 0x00e5edf0, 0x00e9ebf0, 0x00f0e7ef, 0x00e0cdd9, 0x00c4b6c1, 0x00635761, 0x003a353c,
- 0x00898b91, 0x00dcdce1, 0x00fffefe, 0x00faf9f9, 0x00f9f9f9, 0x00fdfefd, 0x00e2e3dd, 0x0085857e, 0x002b2d24, 0x002b2d22, 0x0025251d, 0x001e1d18, 0x000f0d0a, 0x00090702, 0x00070602, 0x00050400,
- 0x00080604, 0x00070505, 0x00070405, 0x00070404, 0x00060303, 0x00060204, 0x00060004, 0x00060004, 0x00070205, 0x00060105, 0x00070107, 0x00070107, 0x00090308, 0x000a0408, 0x000b050a, 0x000b050a,
- 0x00262b4e, 0x00595d8e, 0x00585d9d, 0x004f56a5, 0x004851a9, 0x003f4aa2, 0x00394599, 0x00354191, 0x00393f94, 0x00373c96, 0x00323a92, 0x002e3b8b, 0x002b347c, 0x002b3376, 0x00282f6f, 0x00242a6c,
- 0x00222564, 0x00443f6a, 0x009c8b9b, 0x00d1b09b, 0x00eeb97d, 0x00e1be8d, 0x00e1c59c, 0x00e9caa4, 0x00efd1af, 0x00f2d2b1, 0x00f6d4b3, 0x00fad8b2, 0x00f9d8ad, 0x00f5d4a3, 0x00e9c894, 0x00e2bf8b,
- 0x00dfb68a, 0x00e2b789, 0x00e6b98b, 0x00e6bc89, 0x00e4ba87, 0x00deb47f, 0x00e1b887, 0x00e4c08f, 0x00e3c698, 0x00ebcda1, 0x00f1d9b2, 0x00f8ebc5, 0x00e5d8bc, 0x007f7368, 0x000d0505, 0x000b0510,
- 0x000c0522, 0x000b0524, 0x000b0526, 0x000d0523, 0x00110621, 0x000d0a26, 0x00090d2b, 0x000a0e2b, 0x000d0e2f, 0x000e102f, 0x00101232, 0x00101334, 0x000f1134, 0x000d0f33, 0x000a0d32, 0x00090c31,
- 0x000a0b2d, 0x00090a2b, 0x000a082a, 0x000a0627, 0x000b0426, 0x000c0626, 0x000c0625, 0x00090521, 0x000a0725, 0x00080824, 0x00090a25, 0x000c0d26, 0x000e0e27, 0x000d0e28, 0x000c0d2a, 0x000d0d2c,
- 0x000e0b2f, 0x000d0c2e, 0x000d0c31, 0x000c0d30, 0x000b0a33, 0x000d0831, 0x000e0631, 0x000c062d, 0x000e062b, 0x000c072b, 0x000d092b, 0x000d0829, 0x000f092a, 0x000f0928, 0x00100b29, 0x00100b28,
- 0x000f0b29, 0x000d0a29, 0x000c0b27, 0x000c0b26, 0x00090823, 0x0005051b, 0x00565667, 0x00cdced8, 0x00fdfeff, 0x00fdfefb, 0x00fcfcfc, 0x00fef9fc, 0x00dfdadf, 0x00676863, 0x0008100b, 0x0007180f,
- 0x0014252a, 0x000c232e, 0x00091e33, 0x00051c3a, 0x00031745, 0x00081e37, 0x000d2437, 0x00102739, 0x00152741, 0x000e223d, 0x000d1f3d, 0x000f203e, 0x000c1e38, 0x000b1c33, 0x000a192e, 0x0007192d,
- 0x000a111d, 0x00090914, 0x00271f25, 0x005a4b49, 0x0050433a, 0x002e231c, 0x00120e09, 0x000c0f10, 0x000f132c, 0x00090b2d, 0x0002093b, 0x000c1a60, 0x0035306f, 0x003a3b85, 0x00354698, 0x00304db0,
- 0x003447a6, 0x003d408b, 0x00807cbf, 0x00716fb3, 0x002141a0, 0x00222d74, 0x00201d4b, 0x0023162c, 0x003a2212, 0x00462d0e, 0x004b3115, 0x004e351f, 0x00685040, 0x007a6046, 0x00816441, 0x007f6132,
- 0x00505060, 0x00374266, 0x00243770, 0x001b3882, 0x0016367f, 0x00123269, 0x0016335b, 0x00102b4d, 0x00122d56, 0x00173467, 0x00516892, 0x00b2bfc7, 0x00ecf6fa, 0x00e9f0f5, 0x00e0e4ec, 0x0082838b,
- 0x004b474e, 0x00929094, 0x00a3a3a5, 0x00969798, 0x00a1a3a3, 0x00bbc0bd, 0x00bfc5bf, 0x00c0c6be, 0x00e4e5e0, 0x00fafcf7, 0x00fefdfb, 0x00fbfcf9, 0x00f9fefc, 0x00f2f9fb, 0x00b1bbc0, 0x00657077,
- 0x00506c76, 0x004e6b75, 0x004b6872, 0x0047656e, 0x0042616a, 0x0043626b, 0x003f6069, 0x003d5e67, 0x00385a62, 0x0034555e, 0x0033535d, 0x0031505a, 0x002b4a54, 0x002a4752, 0x0028424d, 0x00233b46,
- 0x00213544, 0x001d2f3e, 0x001b2b3a, 0x001b2938, 0x001e2b3b, 0x001b2e3d, 0x001c3443, 0x00203948, 0x0021414e, 0x00234754, 0x00254a58, 0x00274e5f, 0x00264a5c, 0x00264b60, 0x002a4e63, 0x002e5066,
- 0x0033444f, 0x006b7f86, 0x00cddde3, 0x00c1ccce, 0x00b7b9b9, 0x00cac8c7, 0x00e9e4e2, 0x00dfdadb, 0x00ada5a9, 0x009a9598, 0x00a99d94, 0x00b9a37a, 0x00c1a47a, 0x00c6a77d, 0x00bda071, 0x00c2a072,
- 0x00dab587, 0x00e8c794, 0x00e2c491, 0x00d8bb86, 0x00d4bd89, 0x00dcbb8d, 0x00bc9a71, 0x007c6240, 0x00453424, 0x003e342e, 0x003a3639, 0x004d4d57, 0x009d9da9, 0x00c2c1ca, 0x00d0ced4, 0x00e0dee2,
- 0x00e9cfd0, 0x00dbc7c9, 0x00dbd0d8, 0x00c8c7d5, 0x00a3b1c8, 0x00899ab5, 0x008897b1, 0x008a99b0, 0x00929dac, 0x009199a5, 0x008b94a1, 0x008897a7, 0x00848da4, 0x00727f99, 0x003f4967, 0x000a0e2d,
- 0x00010023, 0x00000120, 0x00050421, 0x00010114, 0x0001000f, 0x00080d25, 0x001b1e33, 0x00322c31, 0x005f4539, 0x006e5540, 0x005e4833, 0x00564734, 0x004b463a, 0x004c4433, 0x004c402a, 0x00513e23,
- 0x00453826, 0x00473c2a, 0x00463d2f, 0x00423d33, 0x0040413f, 0x003a4347, 0x0032434c, 0x002a434f, 0x00204353, 0x001c4656, 0x001e4858, 0x00204452, 0x00224351, 0x0020424f, 0x0022444f, 0x0021454e,
- 0x0021434e, 0x0021444e, 0x0021444d, 0x0020454b, 0x001f454a, 0x001e444c, 0x0020434e, 0x0021434e, 0x00224550, 0x0021444f, 0x0021444e, 0x0021444e, 0x0021444e, 0x0021444e, 0x0021444e, 0x0020434d,
- 0x00f6efe9, 0x00e8e2e3, 0x00fbfdff, 0x00f8fcff, 0x00fcfdff, 0x00fcfaf7, 0x00dfd0c8, 0x00786357, 0x002f160c, 0x002d1812, 0x002e1e1b, 0x002f1e1e, 0x003a2521, 0x00452b24, 0x004f3426, 0x00553826,
- 0x005a3926, 0x00583a28, 0x00543825, 0x004e3520, 0x00452f1e, 0x00402d21, 0x003c291f, 0x003a251d, 0x003c2419, 0x0042261e, 0x00462821, 0x00482922, 0x004c2d27, 0x004d3129, 0x00543b32, 0x005d443c,
- 0x00645050, 0x00695755, 0x006e5c59, 0x00705f5b, 0x0073655f, 0x00786963, 0x007c6a63, 0x007d6a62, 0x007d635c, 0x00785c54, 0x0074584f, 0x006b5247, 0x005c483f, 0x00504036, 0x0041342f, 0x00332929,
- 0x00272123, 0x00231c1e, 0x001c161a, 0x001b1417, 0x001d1417, 0x001d1814, 0x001f1c15, 0x00211e15, 0x00261e15, 0x002d2018, 0x0035251f, 0x00392723, 0x003b2825, 0x00382829, 0x00332429, 0x00302227,
- 0x002e241f, 0x0029221e, 0x00211e1c, 0x00191b1a, 0x00111819, 0x000d1414, 0x000a1110, 0x000b0e0e, 0x00120b09, 0x00150e0a, 0x00291810, 0x00401f13, 0x00642714, 0x007f2f17, 0x009a391b, 0x00a83f19,
- 0x00a14214, 0x00954419, 0x0099522b, 0x0086482b, 0x0089503b, 0x009f8784, 0x00dcd1d5, 0x00f1e8ea, 0x00e7dfe1, 0x00e6ddde, 0x00e0d7d9, 0x00ddd5d8, 0x00dfd7db, 0x00e0d8dc, 0x00e6dee1, 0x00ede3e4,
- 0x00e6e7eb, 0x00eae9ee, 0x00ecebf0, 0x00edecf0, 0x00ededf2, 0x00edecf4, 0x00eeeef5, 0x00f1eff5, 0x00f1eff5, 0x00eeeef1, 0x00ebebee, 0x00e2dee6, 0x00cfccd5, 0x00c5c0c8, 0x00969499, 0x007e7d81,
- 0x00cbcdce, 0x00f6f8f7, 0x00fafdfb, 0x00fcfdfc, 0x00fbfefd, 0x00f4e8e8, 0x00aa968c, 0x00806d51, 0x008e7c4e, 0x006a562f, 0x004a331d, 0x00624040, 0x00644046, 0x005a362c, 0x0069462a, 0x00715120,
- 0x0074561b, 0x007b5620, 0x007c5221, 0x00845327, 0x007d4f29, 0x00845b3c, 0x00926e4f, 0x007f5c40, 0x007e553a, 0x0087593d, 0x0071422b, 0x00744837, 0x0091624e, 0x0096654e, 0x0081563c, 0x006f4e2d,
- 0x006b5b3d, 0x00625738, 0x00574f38, 0x004d3e2f, 0x00654d4a, 0x007b6c54, 0x00847554, 0x00826541, 0x00815436, 0x00805432, 0x00865e3c, 0x00b69b79, 0x00f4eed1, 0x00e2e2cd, 0x00d5dbcd, 0x00d6dcd4,
- 0x00e5dce8, 0x00e2dbe5, 0x00e5e1e8, 0x00ebe9ef, 0x00cacbcb, 0x00c6c3c5, 0x00cdcbce, 0x00c0bdbe, 0x00e8e1e4, 0x00ece2e7, 0x00efe8eb, 0x00e5e2e7, 0x00d7d4c5, 0x00bfbba0, 0x00aba481, 0x00aca681,
- 0x00aca48e, 0x00b1aea4, 0x00d3d3d3, 0x00dfe3ea, 0x00d3dfe0, 0x00c3ccd2, 0x00d2d6db, 0x00ede9e9, 0x00e2d7d4, 0x00c0b9b4, 0x00959191, 0x0095969c, 0x00b8b9c2, 0x00bab5b9, 0x00c4baba, 0x00e4d6ce,
- 0x00f6dadb, 0x00f9dcda, 0x00e9cdc8, 0x00dec2be, 0x00cab3b3, 0x00b8a3a9, 0x00918393, 0x007c778f, 0x0064658b, 0x00494f7e, 0x00202756, 0x00181a38, 0x00251929, 0x002b181f, 0x00604c49, 0x00a8938d,
- 0x00d1c3c6, 0x00c3b9c1, 0x00aa9fad, 0x00938794, 0x00847181, 0x00967a73, 0x009c7e6d, 0x008a695b, 0x00634548, 0x00331f2e, 0x00170f2e, 0x00242651, 0x004f5887, 0x00747ca4, 0x00969cbc, 0x009294ad,
- 0x0073697e, 0x007c6e71, 0x00938176, 0x00786348, 0x006a4e35, 0x008c6d65, 0x00a18485, 0x00a78a96, 0x00ab9ca1, 0x00c8c1ba, 0x00e4dad4, 0x00a8969a, 0x0041333d, 0x0029202e, 0x000b0414, 0x00272336,
- 0x0078778b, 0x009b99a9, 0x00a29ead, 0x00bfbcc7, 0x00fdfcfe, 0x00fefefc, 0x00fffefe, 0x00fffefe, 0x00fbfcfa, 0x00bdbec0, 0x00626368, 0x008a8c91, 0x00c7cad1, 0x00dee1ea, 0x00edf1fc, 0x00e3e7f2,
- 0x00d0cce0, 0x00cec6d8, 0x00daccdc, 0x00e7d7e4, 0x00f9f0f8, 0x00f5f8fb, 0x00f0f9fa, 0x00ecfcf9, 0x00e1ebf6, 0x00e4e7f4, 0x00f0f0fe, 0x00e8edfc, 0x00e6ecf9, 0x00e3e7f6, 0x00e4e7f7, 0x00e3e9f8,
- 0x00e3e7fa, 0x00e0e6f7, 0x00dee3f8, 0x00dfe3f7, 0x00e1e4f9, 0x00e4e7fa, 0x00e2e6f9, 0x00e2ebf8, 0x00d9e4f4, 0x00ddecfa, 0x00cad7f4, 0x00a2b2d6, 0x00b7c7ec, 0x00d1e2fe, 0x00d6e3f4, 0x00a5b4bd,
- 0x00575e54, 0x004a5046, 0x003b3e33, 0x00393729, 0x00383522, 0x0039351f, 0x003c3621, 0x003c3924, 0x00373921, 0x00363921, 0x00363721, 0x00383521, 0x00363422, 0x00363422, 0x00353321, 0x00363321,
- 0x0034341f, 0x00343420, 0x00363421, 0x0035331f, 0x0032321e, 0x00323222, 0x00353528, 0x0039372c, 0x003f3b2d, 0x0040392b, 0x00413729, 0x00403627, 0x003d3626, 0x003a3825, 0x003a3a25, 0x003a3b24,
- 0x003b3e2e, 0x00383b2d, 0x0083847b, 0x00e9e9e4, 0x00fefeff, 0x00fdfdff, 0x00fcfbff, 0x00fcfcfd, 0x00d1d0d2, 0x00757578, 0x00515155, 0x00717274, 0x009b9d9f, 0x00a2a4a6, 0x00999c9f, 0x00949b9e,
- 0x00969c9f, 0x009ba2a5, 0x009ca2a8, 0x00a0a7ae, 0x0099a3aa, 0x0095989b, 0x00727373, 0x00484b48, 0x001b1f1b, 0x000b120c, 0x00131813, 0x00171a15, 0x001f1a15, 0x00221813, 0x0024130e, 0x0023110a,
- 0x00171201, 0x001f1409, 0x0021110a, 0x00190604, 0x00110508, 0x000e0c0f, 0x00060a0c, 0x0002080a, 0x0005070f, 0x000b0610, 0x00120713, 0x001d0c15, 0x00351a16, 0x005f3827, 0x008c5a40, 0x00985e3b,
- 0x009a5d35, 0x0096603d, 0x008a5d44, 0x007b5344, 0x00684944, 0x005c463e, 0x00534339, 0x004c3b34, 0x0040322c, 0x00342622, 0x002c1d1b, 0x00221617, 0x001a1013, 0x001a1415, 0x001f1a1c, 0x002b262c,
- 0x003e373e, 0x0049464c, 0x004b4b53, 0x004f4f5a, 0x004c4e5a, 0x00484a56, 0x0042424c, 0x003c3a43, 0x00332d2f, 0x00322c2d, 0x003f3a3e, 0x005f626a, 0x009ea0a6, 0x00b1b1b6, 0x00abaaad, 0x00a3a2a3,
- 0x00a5a6a5, 0x00a6a5a6, 0x00a5a7a9, 0x00a3aaab, 0x00aab2b5, 0x00a9aeb9, 0x00aaaabb, 0x00aaabba, 0x00acaebd, 0x00aaadbc, 0x00a7acbb, 0x00a5acb9, 0x00a8afba, 0x00a8b0b9, 0x00acb5bd, 0x00b1bcc3,
- 0x00bcc3c5, 0x00bfc6ca, 0x00c2c7cf, 0x00c0c7ce, 0x00c6ccd4, 0x00c5cbd1, 0x00c8ced3, 0x00cacfd5, 0x00cbd2d6, 0x00cad0d5, 0x00c9cfd4, 0x00c7ced2, 0x00c7cdd2, 0x00c9cfd4, 0x00ced5d9, 0x00d3dade,
- 0x00cfd6dd, 0x00d0d7dd, 0x00cfd5da, 0x00ced5dc, 0x00d4dbde, 0x00d9dfe2, 0x00d6dee1, 0x00d6e3e5, 0x00dceeef, 0x00e5f1f4, 0x00e3e8ec, 0x00e6e2e9, 0x00eddfeb, 0x00e4d8e3, 0x007b717b, 0x00322d36,
- 0x0078757a, 0x00c7c5ca, 0x00fefcfe, 0x00faf9fb, 0x00fefeff, 0x00fdfdfd, 0x00eff0ea, 0x00a4a49d, 0x00383b34, 0x0036392e, 0x002b2c23, 0x0023221f, 0x0014110f, 0x000f0d0a, 0x000a0806, 0x00050301,
- 0x00070603, 0x00070505, 0x00070406, 0x00060404, 0x00070404, 0x00060205, 0x00060005, 0x00070005, 0x00060202, 0x00070104, 0x00080207, 0x00080207, 0x000b0509, 0x000b060a, 0x000c070b, 0x000d060b,
- 0x0029314f, 0x005b618f, 0x00575d9b, 0x004d54a3, 0x00444ca6, 0x003e47a1, 0x00394397, 0x00384192, 0x00384094, 0x00373c96, 0x00323a90, 0x002d388b, 0x002d327d, 0x002e327a, 0x002a3071, 0x00252a6c,
- 0x00282c6b, 0x00514b76, 0x00a491a0, 0x00cca895, 0x00e4ae70, 0x00dab686, 0x00dac097, 0x00e3c8a0, 0x00e8cdaa, 0x00edcfae, 0x00f5d4b5, 0x00f9d8b6, 0x00f9d8b0, 0x00f5d3a6, 0x00edcb9a, 0x00e6c592,
- 0x00e4c093, 0x00e8c393, 0x00e8c28e, 0x00e2bb89, 0x00e1b982, 0x00e0b880, 0x00e4be86, 0x00e9c38f, 0x00d8b987, 0x00ccb07f, 0x00c3ab7c, 0x00c4b589, 0x00ddd0ae, 0x00a99d8d, 0x00231b16, 0x00090511,
- 0x000a0420, 0x000a0425, 0x000b0325, 0x000b0324, 0x000e0421, 0x00090826, 0x00080b29, 0x000a0c2d, 0x000b0e2b, 0x000c0e2f, 0x000f1033, 0x00101134, 0x000f1035, 0x000d0f35, 0x000c0e34, 0x000a0d33,
- 0x000b0c2d, 0x000a0c2d, 0x000c0a2b, 0x000b0728, 0x000b0527, 0x000d0627, 0x000f0825, 0x000c0724, 0x00080823, 0x00070923, 0x00080a23, 0x000c0c23, 0x000e0d24, 0x000e0c25, 0x000d0b27, 0x000e0a2a,
- 0x000e0b2e, 0x000d0c2d, 0x000f0c31, 0x000f0c34, 0x000d0a33, 0x000e0832, 0x000f0631, 0x000c062d, 0x000c052b, 0x000c082c, 0x000c092c, 0x000f0a2c, 0x000f092a, 0x00100a2a, 0x00100a29, 0x00120b29,
- 0x000b0b27, 0x000b0a28, 0x000c0929, 0x000b0826, 0x000c0924, 0x0008061c, 0x003c3c4d, 0x00b2b5bd, 0x00fdfcff, 0x00fdfdfc, 0x00fefdfc, 0x00fcfbfc, 0x00eeeae9, 0x00868782, 0x0010110b, 0x00060c04,
- 0x00060e0f, 0x00050d0e, 0x00030612, 0x00030517, 0x0002041c, 0x00020511, 0x00010914, 0x00020e16, 0x00040e19, 0x00010c19, 0x00020a1a, 0x00030a18, 0x00030913, 0x00050b11, 0x00080c10, 0x00070d10,
- 0x00081212, 0x000a0406, 0x003c2c24, 0x006a4d3e, 0x00301e12, 0x000d0300, 0x000e1110, 0x0008121f, 0x000c0f2c, 0x00141031, 0x000a042e, 0x00010842, 0x0021184a, 0x002d2a6d, 0x002d388d, 0x001d3daa,
- 0x00243ea4, 0x005154a0, 0x007c75b1, 0x0045447a, 0x000f3689, 0x00213066, 0x0026233f, 0x002c2024, 0x003e2608, 0x00422600, 0x004b2c06, 0x005d3f29, 0x00775a4d, 0x007b5d47, 0x007c5a39, 0x007d5829,
- 0x00505057, 0x0039425f, 0x0027386d, 0x001e3a82, 0x00193a83, 0x00193c70, 0x0021426b, 0x00203f5d, 0x00234670, 0x002c4e86, 0x00647ea9, 0x00b9cac5, 0x00f0f7fa, 0x00dae2e0, 0x00cdd1d1, 0x008d8d8d,
- 0x00424142, 0x005b5b5c, 0x00686865, 0x0075776f, 0x0092958e, 0x00a8ada8, 0x00babfba, 0x00c4c9c1, 0x00e4e5dd, 0x00fafcf5, 0x00fdfcf7, 0x00fcfcf9, 0x00f7fcfa, 0x00f5fcfd, 0x00c5cfd6, 0x00737e87,
- 0x0043616a, 0x0041606a, 0x003c5a65, 0x003b5a65, 0x00385763, 0x00365761, 0x0033555e, 0x0030535c, 0x002c5058, 0x002a4f58, 0x002b4f57, 0x002b4d54, 0x00284851, 0x00294651, 0x0028434f, 0x0025414d,
- 0x00223745, 0x001f3241, 0x001b2c3a, 0x001a2b39, 0x001b2a3a, 0x00192e3d, 0x001a3241, 0x00203948, 0x00214050, 0x00224654, 0x00274a58, 0x002b505f, 0x002d4f60, 0x00325366, 0x00325166, 0x002f4b62,
- 0x0043555d, 0x008c9da1, 0x00eff9fd, 0x00e7efed, 0x00c7ccc7, 0x00b9bdb9, 0x00cacacb, 0x00d7d6de, 0x00c0bfd2, 0x00abadc5, 0x00beb7c2, 0x00d2c3a8, 0x00c0ac8e, 0x00b79e79, 0x00c5a87e, 0x00dfc08e,
- 0x00e5c690, 0x00dfc28c, 0x00dbbe88, 0x00d7ba87, 0x00d5bc89, 0x00debe8f, 0x00c8a57e, 0x0088694b, 0x00402e1f, 0x003d312d, 0x00575459, 0x009597a3, 0x00c8cbdb, 0x00caccd8, 0x00cbccd4, 0x00d6d5dc,
- 0x00c4a4a4, 0x00a58b91, 0x00a799a5, 0x00a9a7bc, 0x00a8b4d2, 0x008e9fbe, 0x007f91af, 0x007688a3, 0x008392a2, 0x008e96a4, 0x008e97a4, 0x008d9aaa, 0x008996ab, 0x00838da9, 0x005b6486, 0x0024284d,
- 0x0006052d, 0x000a082b, 0x00050523, 0x00030419, 0x00010110, 0x00010a19, 0x00242b31, 0x004d4541, 0x006b4f3b, 0x00684d39, 0x00614b3a, 0x00564c41, 0x004f4a47, 0x004c4435, 0x004f412b, 0x00543e20,
- 0x004a4130, 0x00463e2d, 0x0040372a, 0x00393329, 0x00383633, 0x003a4041, 0x0039484f, 0x002d464d, 0x00214553, 0x001d4857, 0x001d4757, 0x00224355, 0x00254256, 0x00224353, 0x00224453, 0x00224353,
- 0x0020424f, 0x0021424f, 0x0023434e, 0x0022434c, 0x0021434b, 0x0020444d, 0x0020444e, 0x0021454e, 0x0022454f, 0x0021444e, 0x0020444d, 0x001f434c, 0x001f434e, 0x0020454f, 0x001f444d, 0x001f444e,
- 0x00f1eae9, 0x00dfdadb, 0x00fbffff, 0x00f5fdff, 0x00fbfcff, 0x00fcf8f9, 0x00e7d6d1, 0x007c655d, 0x00260e07, 0x0022110c, 0x002a1a18, 0x00311f1f, 0x003a2522, 0x00432b24, 0x004f3324, 0x00553823,
- 0x005e3d2d, 0x005d3c2b, 0x00583a27, 0x004f3622, 0x0047311f, 0x00442f22, 0x003f2c22, 0x003a281d, 0x00452821, 0x004e2e28, 0x0052322b, 0x0053342b, 0x00563731, 0x00553a32, 0x005a4237, 0x0061493e,
- 0x00655254, 0x00685657, 0x006b5a56, 0x006b5a54, 0x006e5d59, 0x0073625d, 0x0079665e, 0x0079655f, 0x00795e54, 0x0074584e, 0x0072544c, 0x006b5147, 0x005d4741, 0x00513e38, 0x0041322f, 0x00352827,
- 0x00292026, 0x00241d20, 0x001b1619, 0x00191414, 0x001b1515, 0x00181511, 0x0014150e, 0x0014140e, 0x0019110b, 0x001f150e, 0x00291c16, 0x002f211c, 0x00322220, 0x00312224, 0x002d2026, 0x002c1e26,
- 0x002d201e, 0x0027201d, 0x00201e1b, 0x00191c1b, 0x0011181a, 0x000d1315, 0x000c1311, 0x000d0f0e, 0x00120d0b, 0x0019140f, 0x00301b14, 0x004a2013, 0x006f2a16, 0x008c3115, 0x00a23b17, 0x00ad3f0e,
- 0x00af440b, 0x00a44710, 0x00994c18, 0x00914c1c, 0x007a3d1d, 0x00654a3f, 0x0092898e, 0x00d3c9ce, 0x00f5eaee, 0x00eae1e5, 0x00e3d9de, 0x00e7dde2, 0x00e5dce1, 0x00e8e0e4, 0x00efe6e9, 0x00f2ebec,
- 0x00f0f1f5, 0x00eeeff3, 0x00eceef2, 0x00eaedf0, 0x00efeff2, 0x00f0f0f4, 0x00eef0f5, 0x00eeeff5, 0x00efeef6, 0x00e8ebf0, 0x00e7e8ef, 0x00cfcad3, 0x00bab5bd, 0x00ada9b1, 0x00a3a1a7, 0x00aaacaa,
- 0x00e1dfe0, 0x00fafbfc, 0x00fafefc, 0x00f7fcfb, 0x00f9fcfc, 0x00f9e8e0, 0x00aa8b72, 0x007d6133, 0x00a3833e, 0x00846126, 0x00542c08, 0x00673728, 0x00724344, 0x006b422f, 0x006e4726, 0x0075541c,
- 0x00805237, 0x00835037, 0x00844e38, 0x00894f39, 0x0077432f, 0x006b442a, 0x007e6241, 0x007c6640, 0x0070582e, 0x0075572d, 0x0073533b, 0x00664a51, 0x007a5957, 0x0087685d, 0x00765c46, 0x00624e30,
- 0x00615a3b, 0x006e6b50, 0x00565745, 0x0037322c, 0x0056464c, 0x0084756d, 0x00907f6d, 0x00866b55, 0x00835442, 0x0081543a, 0x00835d3e, 0x00b19773, 0x00efe9c5, 0x00d9dcbb, 0x00c2ccae, 0x00c2cdb2,
- 0x00f6dfe7, 0x00f0dee4, 0x00e5d7db, 0x00eee7ee, 0x00cecdcf, 0x00bdbbbd, 0x00c4c3c4, 0x00b9b2b2, 0x00eadbdb, 0x00e9d8d6, 0x00eadbdd, 0x00ddd2d8, 0x00c8c0b0, 0x00b6b08f, 0x00aba07a, 0x00978d66,
- 0x0091866f, 0x009c968c, 0x00bfbebd, 0x00c6cbce, 0x00c3d1d3, 0x00b4bdc7, 0x00c9cdd8, 0x00e6e5e7, 0x00e8dcdd, 0x00c6bdbb, 0x008f888a, 0x009e9da2, 0x00bebdc2, 0x00afa8a8, 0x00a49793, 0x00a69485,
- 0x00bd9195, 0x00d4abab, 0x00c69f9a, 0x00a07874, 0x00725352, 0x00654b52, 0x00695568, 0x005c506d, 0x00383467, 0x002f3269, 0x00111a5f, 0x00051263, 0x00212756, 0x00312e3f, 0x00564948, 0x00867b63,
- 0x00beaf9f, 0x00b6a79e, 0x0099858a, 0x00684c61, 0x0067405e, 0x008d6b6a, 0x00856a5c, 0x00695044, 0x003d2a36, 0x00100821, 0x00090c38, 0x0007114b, 0x000f1e5c, 0x00263567, 0x003e4b70, 0x00434966,
- 0x004d4155, 0x00645759, 0x006e5a4b, 0x00765b3d, 0x007c5b3f, 0x00926a60, 0x00b48d8d, 0x00c19fa6, 0x00c1aca7, 0x00cec1b0, 0x00dcd0c5, 0x009d8a8c, 0x005d4d53, 0x005c4d59, 0x0025192b, 0x00332b3c,
- 0x00696177, 0x007e7888, 0x0086808c, 0x00b2aeb5, 0x00fefbfb, 0x00fefdf9, 0x00fffffe, 0x00fdfefd, 0x00fcfcfd, 0x00bdbdc1, 0x00626268, 0x008e8e95, 0x00c9cad3, 0x00e1e3ee, 0x00ebeffa, 0x00dde2ec,
- 0x00d1cadf, 0x00ccc1d4, 0x00d1c2d0, 0x00ead9e5, 0x00f8eff7, 0x00f5f7fc, 0x00edf7f8, 0x00e6f5f5, 0x00e0e7f4, 0x00e6e9f7, 0x00f0f1ff, 0x00e9f1fd, 0x00e7ebfa, 0x00e2e8f7, 0x00e0e7f4, 0x00e1e8f5,
- 0x00e7e9fd, 0x00e1e5f7, 0x00dee3f4, 0x00dde0f2, 0x00dae0f5, 0x00e3e5f8, 0x00e5e7f7, 0x00e4eafa, 0x00dbe7f6, 0x00e0effe, 0x00cbdaf7, 0x009da9d0, 0x00afbfe3, 0x00d7e6ff, 0x00d4e4f2, 0x00a9bcc3,
- 0x005c6358, 0x004c5246, 0x003b3e32, 0x003a392a, 0x00383423, 0x003a3421, 0x003c3622, 0x003c3823, 0x00383a22, 0x00363a22, 0x00363821, 0x00373621, 0x00363422, 0x00363422, 0x00363220, 0x00363221,
- 0x00363322, 0x00353321, 0x00353320, 0x0035331f, 0x0033311f, 0x00323223, 0x00373528, 0x003c392c, 0x0041392c, 0x0040382a, 0x00413729, 0x00403828, 0x003d3827, 0x00393724, 0x00373823, 0x00383b24,
- 0x003f4032, 0x003c3f32, 0x0085867e, 0x00eae9e6, 0x00fbfcfd, 0x00fdfeff, 0x00fdfbff, 0x00fcfdfd, 0x00d3d3d5, 0x007d7d81, 0x005c5c5e, 0x00787a7a, 0x009a9c9e, 0x00a2a4a7, 0x00989b9e, 0x00979b9f,
- 0x0092969b, 0x00949b9f, 0x00969ba2, 0x00989da3, 0x00979da3, 0x00969194, 0x008d8585, 0x006f6d6b, 0x003e3d36, 0x001c2017, 0x0011150f, 0x000e130d, 0x000f0f0a, 0x0014100b, 0x00150c08, 0x00120903,
- 0x00090c03, 0x00060401, 0x00090403, 0x000c0307, 0x00161118, 0x0016191f, 0x000d161a, 0x00061314, 0x000a0a0f, 0x00090508, 0x00080106, 0x0012050b, 0x003d2320, 0x006a4431, 0x008a583a, 0x00965b33,
- 0x009c5b35, 0x00995d3b, 0x008e5c42, 0x007f5447, 0x00664644, 0x005f4643, 0x005a4741, 0x0055433e, 0x00493935, 0x003a2c28, 0x002d211f, 0x00221918, 0x001b1215, 0x001a1316, 0x00201b1e, 0x002b262b,
- 0x003c3942, 0x00494851, 0x004e505b, 0x004f515e, 0x004d4e5d, 0x00494957, 0x0042424e, 0x003e3b46, 0x00362c32, 0x00352c2f, 0x0050494d, 0x0084858c, 0x00acacb4, 0x00aba8af, 0x00a7a3a8, 0x00a7a4a7,
- 0x00aaa9ad, 0x00a8a8ab, 0x00a3a5a9, 0x009ea5a7, 0x00a3abae, 0x00a6aab5, 0x00a9aaba, 0x00aaabbb, 0x00a7a9b7, 0x00a4a8b6, 0x00a3a7b5, 0x00a2a8b4, 0x00a5acb7, 0x00a5aeb6, 0x00a7b2ba, 0x00abb8bf,
- 0x00bdc3c8, 0x00bdc3ca, 0x00bbc1c6, 0x00b9c0c4, 0x00bec5cb, 0x00c2c8cf, 0x00c6cbd2, 0x00c9cdd6, 0x00c7d0d5, 0x00cbd2d7, 0x00cbd2d7, 0x00c5ccd2, 0x00c0c5cc, 0x00bec4cb, 0x00c2c9d0, 0x00c9cfd6,
- 0x00d5d8e2, 0x00ced4d9, 0x00c7cdd2, 0x00c3cad1, 0x00c5ced3, 0x00d2dadf, 0x00d5dfe3, 0x00d0e1e2, 0x00d2e9ea, 0x00dbebee, 0x00e7eef2, 0x00ece9f0, 0x00e2d4e1, 0x00ebdfeb, 0x00958d98, 0x00434049,
- 0x005e5c65, 0x00adadb4, 0x00f8fafc, 0x00fafcfd, 0x00fbfcfc, 0x00fcfdfc, 0x00f4f5f0, 0x00b9bbb5, 0x00484943, 0x003d3f35, 0x0033332b, 0x002a2924, 0x00181613, 0x00120e0c, 0x000d0908, 0x00070202,
- 0x00080604, 0x00080506, 0x00070407, 0x00060306, 0x00070307, 0x00070207, 0x00060006, 0x00060005, 0x00060005, 0x00060004, 0x00070206, 0x00070307, 0x000b040a, 0x000c050a, 0x000b070b, 0x000b070b,
- 0x0034385c, 0x00606496, 0x005b5f9f, 0x004e54a1, 0x00454ca4, 0x003e48a0, 0x00384295, 0x0036408f, 0x00363d92, 0x00373b8f, 0x0032398d, 0x002b3789, 0x002c337c, 0x002b3277, 0x00283074, 0x00252b6e,
- 0x002e3074, 0x005c5482, 0x00a691a1, 0x00c9a491, 0x00d7a160, 0x00d1ac79, 0x00d3b78c, 0x00dec399, 0x00e4c8a3, 0x00eacca9, 0x00f0d1b1, 0x00f4d4b3, 0x00f1cfac, 0x00efcaa2, 0x00e7c395, 0x00e3c190,
- 0x00e5c294, 0x00e7c394, 0x00e5c28f, 0x00dfbb85, 0x00e4bc84, 0x00ebc28a, 0x00e6c188, 0x00d8b57d, 0x00bfa06c, 0x00aa8d57, 0x009a7f4e, 0x00917f4d, 0x00b9aa85, 0x00afa491, 0x00332a26, 0x0008020d,
- 0x00090422, 0x000a0226, 0x000a0226, 0x00090226, 0x000b0325, 0x00080827, 0x00070c28, 0x00090c2d, 0x00090e2c, 0x000a0e2e, 0x000c0e32, 0x000d0f33, 0x000c0f33, 0x000c0f35, 0x000b0f37, 0x000b0f35,
- 0x000f0e31, 0x000e0c2f, 0x000e0a2d, 0x000f082a, 0x000f072b, 0x0010082a, 0x00100827, 0x000d0724, 0x000a0923, 0x00090924, 0x000a0b22, 0x000d0d21, 0x00100e25, 0x00100e27, 0x000e0b28, 0x000c0827,
- 0x000f0c30, 0x000f0c2e, 0x00100c31, 0x000f0b32, 0x000e0931, 0x000e072f, 0x000e062f, 0x000c062d, 0x000d072e, 0x000d082d, 0x000e092d, 0x000f092b, 0x000e0a2a, 0x000f0a28, 0x00100b28, 0x00120b28,
- 0x000c0a2b, 0x000c0a27, 0x000d0a27, 0x000c0827, 0x000d0925, 0x000b0820, 0x00222235, 0x009597a1, 0x00f8f9fd, 0x00fbfbf9, 0x00f8fbf7, 0x00fcfdf6, 0x00f4f3ed, 0x00a29f9c, 0x001b1715, 0x000a0405,
- 0x0015080a, 0x00130504, 0x00110200, 0x00100200, 0x000f0001, 0x000a0304, 0x000b080c, 0x00070806, 0x00080406, 0x000b070a, 0x000b090a, 0x00080604, 0x000a0400, 0x000d0700, 0x000f0a00, 0x00100b00,
- 0x00090f10, 0x000f0501, 0x00422513, 0x00593217, 0x00290c01, 0x00110a07, 0x000b1318, 0x000b2036, 0x0019203c, 0x001a112e, 0x0015092e, 0x00020935, 0x000e052e, 0x001b1853, 0x001f2f84, 0x000d36a6,
- 0x001d3aa9, 0x00555bab, 0x0055508d, 0x002a2b5a, 0x000c367d, 0x001d2c50, 0x00262128, 0x002e240f, 0x003f2801, 0x00462c00, 0x005a3d15, 0x00674a30, 0x006f4f45, 0x006e4c3c, 0x00795237, 0x007d5127,
- 0x00524d4e, 0x003d425a, 0x00293b6c, 0x001e3a82, 0x00193d87, 0x001e4278, 0x00264970, 0x00264865, 0x002b527c, 0x00305791, 0x005977a0, 0x00a4b3a6, 0x00ecf7ed, 0x00d4dcd1, 0x00c1c6be, 0x00b3b4ad,
- 0x0092938a, 0x0081837a, 0x00737569, 0x00828476, 0x009b9d90, 0x00a0a59b, 0x00a6aca4, 0x00b2b8b3, 0x00d7dad2, 0x00f4f7f0, 0x00fffdf8, 0x00fefefb, 0x00f9fbfb, 0x00f9feff, 0x00d5dfe5, 0x00838e95,
- 0x003d5b68, 0x00385663, 0x0031515b, 0x002e5058, 0x002d505a, 0x002c505a, 0x002b4f57, 0x00294d56, 0x00284e53, 0x00284e56, 0x002b5058, 0x002b4e56, 0x002a4a54, 0x002b4853, 0x0029454f, 0x0026424b,
- 0x00243b46, 0x00203541, 0x001a2c3a, 0x00192937, 0x001b293a, 0x00192c3c, 0x001c3240, 0x00233949, 0x00254151, 0x00274655, 0x002a4a59, 0x002b505d, 0x00315363, 0x00385768, 0x00365366, 0x00304d60,
- 0x005d6573, 0x00b0babf, 0x00f5fdfc, 0x00f4fdf3, 0x00e6eee0, 0x00ccd3c9, 0x00adafaf, 0x00b0b2bc, 0x00bcc2e1, 0x00b2bbe0, 0x00cdcde7, 0x00f3e9e5, 0x00e6d8c4, 0x00c4b091, 0x00c7b087, 0x00e1c791,
- 0x00e8cb8f, 0x00e3c78d, 0x00dabf88, 0x00d1b988, 0x00d4bb8f, 0x00dcba8f, 0x00b39068, 0x0074593a, 0x00463426, 0x00534949, 0x0082818a, 0x00a9adbd, 0x00c4c8dc, 0x00cdd0e0, 0x00bebfcd, 0x00afadba,
- 0x0090666c, 0x006b4d57, 0x00887786, 0x00a09cb3, 0x009ca9cb, 0x007589ad, 0x00768cad, 0x00788fab, 0x0079869a, 0x007f8a98, 0x0088949f, 0x008a9aa7, 0x008f9cb0, 0x008c97b3, 0x007d85a8, 0x005c6186,
- 0x002e305b, 0x00212143, 0x00121130, 0x0005051e, 0x00040214, 0x00161c25, 0x00454a48, 0x005b554a, 0x00674730, 0x00674738, 0x0060453a, 0x00554a45, 0x004b4744, 0x004b4437, 0x004f422a, 0x00594321,
- 0x00494131, 0x00403a2a, 0x00362f22, 0x00312c22, 0x0030302c, 0x003a403f, 0x00404d52, 0x00354950, 0x00244657, 0x001e4a58, 0x00204756, 0x00254354, 0x00224354, 0x00234354, 0x00254153, 0x00224455,
- 0x00244251, 0x00244251, 0x00244250, 0x0022434d, 0x0022434d, 0x0020434e, 0x0020444d, 0x0020444d, 0x0022454f, 0x001f434d, 0x0020434c, 0x0020444d, 0x00214450, 0x00214550, 0x0020444e, 0x0020444e,
- 0x00e8e4dd, 0x00d4cec9, 0x00fefcf9, 0x00fcfbf7, 0x00fefbfd, 0x00fdfcfa, 0x00e4e1e0, 0x007a7776, 0x000c0808, 0x0014100f, 0x001f1713, 0x002a1c15, 0x00352219, 0x00412b21, 0x004d3425, 0x00533726,
- 0x00583e2b, 0x00573c2e, 0x0053392b, 0x004e3728, 0x00483127, 0x00452c1f, 0x00442a17, 0x00452a17, 0x004f3320, 0x00583a27, 0x005c4129, 0x005f462d, 0x00654b37, 0x00674d3b, 0x006b503f, 0x00725345,
- 0x0070594b, 0x0070584f, 0x006f5950, 0x006e5a52, 0x006f5a56, 0x00725d56, 0x00776254, 0x007d6457, 0x007d5c50, 0x00795449, 0x00754e3f, 0x006e4932, 0x0063422f, 0x00593b2f, 0x0048312a, 0x003b2821,
- 0x002b2222, 0x0024201f, 0x001b1a18, 0x00171714, 0x00171516, 0x0014120f, 0x00120f0b, 0x00130d0d, 0x00150d10, 0x00160e12, 0x00161214, 0x001a1818, 0x00231d20, 0x00272023, 0x00242020, 0x00252022,
- 0x00232221, 0x00222321, 0x001d1f1c, 0x00181a18, 0x00141619, 0x00111114, 0x000d0f0c, 0x000e0b07, 0x001d080a, 0x00241413, 0x003b1e11, 0x0053260a, 0x006c2e0d, 0x0083390d, 0x0097420e, 0x00a7460d,
- 0x00ab440d, 0x00ab450f, 0x00a44514, 0x00994218, 0x008b3718, 0x006b311a, 0x00573022, 0x0085685e, 0x00d9d1d8, 0x00eeeff2, 0x00e2ebeb, 0x00e3ede9, 0x00e7ebe7, 0x00eae8e6, 0x00edeaec, 0x00eae7ec,
- 0x00f1ebfa, 0x00f0ebf4, 0x00eeedf2, 0x00edeef0, 0x00f3f2f0, 0x00edeee8, 0x00eef2f0, 0x00ebeff5, 0x00efeffe, 0x00e0e2f5, 0x00c4c0d0, 0x00c0b3b9, 0x00b3a7a7, 0x00b2a6aa, 0x00aba1a7, 0x00b9b3b7,
- 0x00eee9eb, 0x00fdfbfe, 0x00fdfefe, 0x00fbfdfb, 0x00fcfeff, 0x00f7e1dd, 0x009e7a65, 0x00634319, 0x00775519, 0x00724c19, 0x005a2d09, 0x00622e1c, 0x006d3b34, 0x00664429, 0x00645020, 0x00645e19,
- 0x00585f30, 0x00595c3a, 0x00545843, 0x00555451, 0x00423d4c, 0x00464153, 0x0050495b, 0x003d3440, 0x0049383f, 0x00685354, 0x006e5e64, 0x00655d77, 0x005c5265, 0x006d6569, 0x004b483f, 0x003b3c2c,
- 0x00515743, 0x00788076, 0x006d7875, 0x005b656c, 0x00788190, 0x00979dae, 0x009e9faf, 0x00847f89, 0x00785c59, 0x00825b51, 0x00875a49, 0x00b58671, 0x00f1d3c2, 0x00d5cdbe, 0x00b5c4b7, 0x00afcdc3,
- 0x00f1e1d9, 0x00f2e7f4, 0x00c3c1e5, 0x00a5ace0, 0x009cb1d8, 0x0099b1bf, 0x00a2b9b0, 0x00b0bcaa, 0x00ccc3bd, 0x00d4bccb, 0x00d7b7b2, 0x00d2b075, 0x00bca375, 0x00b4a882, 0x009d987b, 0x00837d6b,
- 0x00726d5e, 0x0086807d, 0x00aaacb2, 0x00b4bcc8, 0x00b6c6e2, 0x00bbbeba, 0x00c9c5b3, 0x00dcd1cb, 0x00e8dcea, 0x00d1cce1, 0x008991a9, 0x008499b0, 0x0090a1be, 0x006d748f, 0x00605a78, 0x005e4c6c,
- 0x0067497b, 0x007c6393, 0x0059456f, 0x00362447, 0x00231d3b, 0x00252a45, 0x003a4461, 0x00263355, 0x0015214e, 0x001f2c5e, 0x0019223f, 0x0040342a, 0x00837469, 0x00948176, 0x006c5443, 0x00523929,
- 0x00553a2e, 0x004e332f, 0x004b3031, 0x00462d2c, 0x0052383e, 0x005e4f59, 0x00685d6c, 0x00625466, 0x00332334, 0x00130216, 0x000b0213, 0x000b0414, 0x00080719, 0x00070c1d, 0x000c1327, 0x000b1227,
- 0x001c161e, 0x0029222c, 0x00453f45, 0x005b5859, 0x007e7b7d, 0x00999296, 0x00b8afb5, 0x00c9c2c8, 0x00c6bdc6, 0x00d1cad0, 0x00c3bdc8, 0x00938c9d, 0x00767283, 0x007a7688, 0x006c6a78, 0x00676673,
- 0x005a5760, 0x0067666d, 0x0085858a, 0x00b8b8ba, 0x00fbfbfb, 0x00fefffa, 0x00fbfef8, 0x00fafef9, 0x00fbfdff, 0x00bfc1c5, 0x00616369, 0x008b8d95, 0x00c6c7d4, 0x00dedeef, 0x00e9e8fb, 0x00dfdef0,
- 0x00e1ced7, 0x00d4bfcc, 0x00c9b9c5, 0x00eee3ef, 0x00f0eafa, 0x00eaeefa, 0x00eef4fc, 0x00e7ebf4, 0x00e2e3f3, 0x00e8eaf7, 0x00eff3f8, 0x00e9f0ef, 0x00ede3f5, 0x00dce9f9, 0x00cceefc, 0x00c9f3fe,
- 0x00e9e9fc, 0x00e7e6f8, 0x00d8def0, 0x00d2e8f9, 0x00e2dafa, 0x00e4deee, 0x00e4e4ec, 0x00d6e4f0, 0x00d8e5ff, 0x00e1e7ff, 0x00cfd7f0, 0x00a0b3c5, 0x009ac6d0, 0x00caeef7, 0x00d7e2f5, 0x00cdbbe0,
- 0x00686d67, 0x004f5149, 0x00404337, 0x00363526, 0x003a3523, 0x0037341f, 0x003a3721, 0x003b3922, 0x003d3a26, 0x003a3b26, 0x00363823, 0x00363622, 0x00353421, 0x00353320, 0x0033311d, 0x0033321d,
- 0x00312d1c, 0x0033301e, 0x0035331e, 0x0037341f, 0x00373423, 0x00363326, 0x00393329, 0x0040372d, 0x00423b2e, 0x00403b2a, 0x003c3925, 0x003a3923, 0x003a3924, 0x00383725, 0x00393828, 0x003e3d2e,
- 0x00414239, 0x003f3d37, 0x00858580, 0x00e9ebe7, 0x00fdfcfc, 0x00fdfefc, 0x00fafdfd, 0x00fdfefe, 0x00d6d3dc, 0x0085818c, 0x0066656b, 0x007a7d7e, 0x009da0a3, 0x009fa1a7, 0x00979ca0, 0x00909499,
- 0x0088898e, 0x0085888c, 0x0082878c, 0x00868b8f, 0x007f8389, 0x00787e7e, 0x007a8583, 0x00787f81, 0x006d6b72, 0x00545459, 0x00343136, 0x001e1a1b, 0x00160f0c, 0x00130b04, 0x00120700, 0x00140a02,
- 0x00060804, 0x00060102, 0x000c0100, 0x001b0705, 0x00301815, 0x00352019, 0x002b1813, 0x0025140e, 0x001c0e0c, 0x000f0203, 0x000f0001, 0x001d0401, 0x004f291c, 0x00784d38, 0x008d593e, 0x009d5c37,
- 0x00a4572c, 0x009e582b, 0x0093572e, 0x00815535, 0x00674d39, 0x005f4838, 0x005d4537, 0x00564334, 0x004f3d39, 0x003f302d, 0x002e2420, 0x00201b17, 0x00161514, 0x00151416, 0x001e1c1f, 0x00282427,
- 0x0036353b, 0x0046434c, 0x0053515d, 0x0054535f, 0x00534e5c, 0x004d4c56, 0x0040414a, 0x003d3b43, 0x00322b35, 0x003b363d, 0x00757479, 0x009ca3ab, 0x00a2aab2, 0x009da2ab, 0x00a7acb2, 0x00abb1b6,
- 0x00a9abb5, 0x00a8adb4, 0x00a5a9b2, 0x00a2a6b0, 0x00a4a7b1, 0x00a3a9b2, 0x009fa7b0, 0x009fa7af, 0x00a0a7b2, 0x009fa5b0, 0x009ea3ae, 0x009ea3ad, 0x00a1a7b0, 0x00a3abb4, 0x00a8b0ba, 0x00adb5be,
- 0x00b8bcc5, 0x00b9c0c8, 0x00b6bdc3, 0x00b5bcc1, 0x00b6c1c6, 0x00bac3c8, 0x00bdc6c9, 0x00bfc9cd, 0x00c7cdd4, 0x00c9cfd6, 0x00c7cfd6, 0x00c4cdd4, 0x00c6ccd4, 0x00c3cad1, 0x00bdc7cd, 0x00bcc6cc,
- 0x00c6cbd6, 0x00cfd6dd, 0x00d2dade, 0x00c8d1d9, 0x00bfc8ce, 0x00bac1c9, 0x00c6ced4, 0x00d4e1e3, 0x00dbe7ed, 0x00d7e6ea, 0x00d8e8e9, 0x00deecec, 0x00e7e8ee, 0x00e7dee7, 0x00bcacb5, 0x007a6470,
- 0x00424847, 0x00888d8c, 0x00f4f8f6, 0x00f7faf8, 0x00fbfdfb, 0x00fafcfa, 0x00f7f9f3, 0x00c9ccc5, 0x00666262, 0x003e3c37, 0x003b3b2e, 0x002d2e1d, 0x001f1f11, 0x0015150b, 0x000f0d09, 0x000b0707,
- 0x00070208, 0x00070308, 0x00060306, 0x00050305, 0x00070306, 0x00070107, 0x00050005, 0x00050104, 0x000a000a, 0x00080008, 0x00060106, 0x00050106, 0x00090208, 0x00090209, 0x0009050a, 0x0009060a,
- 0x00313856, 0x00636896, 0x00575c99, 0x004f55a0, 0x004349a0, 0x003a4298, 0x00373f8f, 0x00323a86, 0x00353687, 0x0036338a, 0x00313781, 0x00273d6b, 0x0026328f, 0x00253083, 0x00233077, 0x00232e6c,
- 0x00333a7e, 0x0059597b, 0x009c928b, 0x00bca372, 0x00cb9569, 0x00c89f70, 0x00cda87a, 0x00dbb489, 0x00ecc59e, 0x00f2caa3, 0x00f4cda5, 0x00efcba0, 0x00ebc79d, 0x00e3bd93, 0x00ddb88d, 0x00e1bd92,
- 0x00ebc693, 0x00e7c58f, 0x00e3c38b, 0x00e0bf89, 0x00e2c18a, 0x00ddc089, 0x00c9ad78, 0x00b49264, 0x00967550, 0x00886744, 0x007d6339, 0x00746828, 0x00938263, 0x00918379, 0x003a3139, 0x000c051b,
- 0x0005041d, 0x00030420, 0x00020521, 0x00020724, 0x0006062b, 0x0006092b, 0x00070b28, 0x00080c2a, 0x000c0d31, 0x000c0e33, 0x000b0e32, 0x000a0e2f, 0x000a0f30, 0x000a0e32, 0x000b0d33, 0x000c0e34,
- 0x00100b33, 0x000f0932, 0x000d0b2f, 0x000d0b2d, 0x000d092d, 0x000c0929, 0x000b0a25, 0x000a0924, 0x000e0b29, 0x000c0a28, 0x000a0922, 0x000b091e, 0x000e0a23, 0x00100d29, 0x00100d2b, 0x000d0a2a,
- 0x000f0a2e, 0x00100a31, 0x000e0932, 0x000c0734, 0x000e0735, 0x000f0734, 0x000e0932, 0x000f0b33, 0x00110a33, 0x0010072f, 0x000c042a, 0x000a0526, 0x00090624, 0x000c0924, 0x000d0922, 0x000d0a21,
- 0x000d0a25, 0x000c0c23, 0x000a0c1f, 0x00070c1e, 0x00080e1d, 0x00040a13, 0x000f151c, 0x00757a7f, 0x00fffaff, 0x00fffaff, 0x00fbf8fe, 0x00f8f9fa, 0x00fdfcfb, 0x00babbbd, 0x00262724, 0x00070502,
- 0x000c0a0d, 0x000b080a, 0x00070604, 0x00050303, 0x00060204, 0x00010702, 0x00000704, 0x00010804, 0x0003080c, 0x0007090c, 0x00070b0c, 0x00060b09, 0x00090607, 0x00090608, 0x000e0d10, 0x00100b10,
- 0x00070c09, 0x000d0902, 0x002e220f, 0x003b270f, 0x00190802, 0x000e0c09, 0x00121a20, 0x00142338, 0x001b2b57, 0x00152151, 0x00040b38, 0x00050527, 0x00040226, 0x000b0930, 0x00191f4b, 0x001c2861,
- 0x00253b7a, 0x00405490, 0x002b3b71, 0x00202656, 0x002a234e, 0x00361c28, 0x00351913, 0x003b201f, 0x00472529, 0x00503229, 0x00614a35, 0x005b4925, 0x00564219, 0x005d451e, 0x006a512a, 0x006e512f,
- 0x0071373f, 0x00413755, 0x001e3b63, 0x000b4079, 0x001c3d6d, 0x001f3e6b, 0x00234276, 0x00194a8d, 0x0018568b, 0x00245c73, 0x00366772, 0x007497a4, 0x00cddee4, 0x00d7ded8, 0x00dadcce, 0x00eae5d8,
- 0x00e1e4d8, 0x00d2d7cf, 0x00c8cdc9, 0x00c8cac7, 0x00b2b1ac, 0x00959588, 0x00959988, 0x00898f81, 0x00b8bcb8, 0x00e0e4e1, 0x00fafefa, 0x00f6fdfb, 0x00f7fcfd, 0x00f8fbfd, 0x00ebeff2, 0x00a7a7a9,
- 0x003b555d, 0x00304c53, 0x00305055, 0x002a4e53, 0x002f555d, 0x002c545d, 0x00295158, 0x002a5359, 0x0032535f, 0x00335362, 0x0030525e, 0x002d515a, 0x002f515c, 0x0030505c, 0x002b4954, 0x002b4451,
- 0x00283f4a, 0x00233845, 0x001d2e3d, 0x001c2c3a, 0x001f2b3d, 0x001d2e3d, 0x001d323e, 0x00223846, 0x00273f54, 0x002b485a, 0x002e4d5f, 0x002b525e, 0x00335866, 0x00355862, 0x00395a65, 0x0031525b,
- 0x006e757e, 0x00c6cdcf, 0x00f2f8f7, 0x00f7fdf4, 0x00f9fbee, 0x00f5f8eb, 0x00d0d4c9, 0x00acb2ab, 0x00a7aab5, 0x00a9a9bd, 0x00abb1c2, 0x00d9deef, 0x00edecd4, 0x00e0d2ad, 0x00dac49a, 0x00e7c09b,
- 0x00f6c89b, 0x00ecbe83, 0x00e5b875, 0x00e3bb7b, 0x00cfa38b, 0x00a98761, 0x006f5835, 0x005b4e39, 0x007b7787, 0x009b9bb9, 0x00adb1d3, 0x00adaece, 0x00b8b3d2, 0x00c3bed9, 0x00b9b6d1, 0x00a2a2bd,
- 0x007f8175, 0x00828587, 0x00b1b8c5, 0x00a7aeca, 0x007883b1, 0x00586796, 0x006779a5, 0x007c8cb5, 0x007c8fa8, 0x00748799, 0x00718594, 0x0077899c, 0x008797ae, 0x008793af, 0x00858dab, 0x00868aa8,
- 0x00787792, 0x006e6980, 0x00443b51, 0x001e1723, 0x00271e26, 0x004b4731, 0x005b5631, 0x005c5134, 0x005c4c3b, 0x005b4842, 0x00584440, 0x004f423f, 0x0051403c, 0x00524136, 0x00513f33, 0x004e3d2c,
- 0x00452d14, 0x00402e1a, 0x002e2517, 0x00272b24, 0x0026363c, 0x0033515a, 0x00355963, 0x002d5460, 0x00274759, 0x00244757, 0x001f4752, 0x001a464d, 0x001c464f, 0x001f4650, 0x001e454e, 0x001e464e,
- 0x001f4451, 0x001f4353, 0x00204351, 0x0021434e, 0x00234351, 0x00234350, 0x0021444e, 0x001f444f, 0x00214350, 0x001f414e, 0x0020414c, 0x001e3f49, 0x001d3c48, 0x001d3d48, 0x001e3e46, 0x001f3e47,
- 0x00dedbcf, 0x00c2c0b2, 0x00fdf8f4, 0x00fdfdfa, 0x00fffdfe, 0x00fffdfe, 0x00efebed, 0x00878385, 0x00010000, 0x00070804, 0x001b1510, 0x002b1b13, 0x00352217, 0x00412c21, 0x004d3428, 0x004f3626,
- 0x004f3a24, 0x00503b26, 0x00523829, 0x004e3526, 0x00493324, 0x00482e1f, 0x004c2c1e, 0x00503120, 0x00503a1d, 0x005a4326, 0x00684c31, 0x0070533a, 0x00745a42, 0x00765c46, 0x007b5e4c, 0x00806354,
- 0x0075624e, 0x0073604d, 0x00746153, 0x00735d55, 0x00755d56, 0x00765c55, 0x007d6058, 0x00806356, 0x00785846, 0x00725140, 0x00754c3b, 0x00714634, 0x00674233, 0x005a3b2f, 0x004d312b, 0x003f2927,
- 0x00242019, 0x00201e19, 0x001c1a18, 0x001a1817, 0x00181717, 0x00161212, 0x00150e0f, 0x00140d0e, 0x000c0905, 0x000c0b07, 0x00110c0b, 0x00171011, 0x001f1a1d, 0x00211b1f, 0x00241d21, 0x00252124,
- 0x001e221b, 0x001e231d, 0x001c201e, 0x00191c1c, 0x00161719, 0x00141316, 0x00140f11, 0x00140b0e, 0x00150903, 0x0020130c, 0x003a2012, 0x0058240b, 0x006f300e, 0x0083370e, 0x009a4112, 0x00a94512,
- 0x00a84708, 0x00a7450c, 0x00a24413, 0x00983d15, 0x008a3413, 0x00722e18, 0x004d1c0d, 0x00442219, 0x0075726d, 0x00bdc5c2, 0x00effaf8, 0x00edf5f1, 0x00f3f4ed, 0x00eeedeb, 0x00e4e1e6, 0x00f2eff9,
- 0x00eceaf0, 0x00edebf0, 0x00f0eef2, 0x00f2f2f2, 0x00f3f4f1, 0x00f0f2ee, 0x00eceff2, 0x00eff1fc, 0x00d7dde7, 0x00a1a8bd, 0x00726e83, 0x009f9098, 0x00c1b3b7, 0x00aca0a4, 0x00a49b9f, 0x00b8b2b6,
- 0x00eaeae8, 0x00f8f9f5, 0x00fdfefd, 0x00fbfefc, 0x00fcfefd, 0x00f9e6e5, 0x00957870, 0x004c3720, 0x004a3e10, 0x0057421b, 0x00523117, 0x00542a1d, 0x00653b35, 0x006a4c3a, 0x0062532e, 0x005f5d2a,
- 0x004c5827, 0x005a6540, 0x00747867, 0x005d605e, 0x00323444, 0x004f4c66, 0x0059506b, 0x00382c42, 0x00322b2f, 0x00403834, 0x00786d72, 0x009a96ad, 0x00958f9d, 0x008a8689, 0x00494240, 0x00343127,
- 0x00474f39, 0x006c7563, 0x00929a94, 0x00a8adaf, 0x00bdc5cc, 0x00c8c8da, 0x00c9c7d9, 0x00b3afbb, 0x00736f60, 0x0060543b, 0x007b634b, 0x00ac8971, 0x00f2d0c4, 0x00e2ccc6, 0x00d2c4ca, 0x00c9cad4,
- 0x00e7dcc8, 0x00e7e1e4, 0x00b4afcd, 0x007d81b1, 0x007c90b3, 0x007e99a1, 0x008da49c, 0x00a8bba5, 0x00b0b5a1, 0x00aaa5a2, 0x00bba59d, 0x00c8a679, 0x00ac9475, 0x008d7f69, 0x00887e75, 0x008d8581,
- 0x00737168, 0x00787673, 0x009e99a2, 0x00afafc4, 0x00bac6e4, 0x00c8cace, 0x00c8c4c2, 0x00d0c4cd, 0x00d6d5e1, 0x00d0d5e7, 0x008f98b3, 0x00657493, 0x00627593, 0x005a6182, 0x00575176, 0x005a4a74,
- 0x00534a6e, 0x00595277, 0x0030274f, 0x00191135, 0x0015132e, 0x001b1e36, 0x00212540, 0x001f2341, 0x00313e58, 0x00434e6c, 0x00393c50, 0x00574d40, 0x009b9085, 0x009d8e80, 0x00715e57, 0x00543c33,
- 0x00493e2a, 0x00504436, 0x005f4f4b, 0x005b4949, 0x005e5150, 0x00574c57, 0x0064576d, 0x0071637a, 0x00342936, 0x000a020d, 0x00170818, 0x001e1121, 0x00232030, 0x00191a27, 0x00161929, 0x00151c2d,
- 0x003a3b3d, 0x005e5f61, 0x0089858a, 0x009c979d, 0x00aaa6ad, 0x00a5a1a9, 0x00bdb6c0, 0x00d2ccd5, 0x00c1c0c2, 0x00c9c9ca, 0x00bcbac3, 0x00837e92, 0x00575567, 0x005c596b, 0x00615b6d, 0x00726d7e,
- 0x00616468, 0x0076777a, 0x00a7a7aa, 0x00d4d4d5, 0x00fdfdfc, 0x00fafdf9, 0x00fefffc, 0x00fefffe, 0x00f6fdf9, 0x00bbc1bf, 0x00616469, 0x008a8c97, 0x00c0c0cd, 0x00e0deee, 0x00e8e4f9, 0x00dcd8ed,
- 0x00dccccf, 0x00d2c2ca, 0x00d1c2d1, 0x00f0e5f4, 0x00f2ebfe, 0x00f0eefd, 0x00f1f1ff, 0x00e7e9f7, 0x00d8e3e5, 0x00e2ebef, 0x00edf5f8, 0x00e8f4f1, 0x00efe3f6, 0x00dee8fb, 0x00d7ecff, 0x00ceecfd,
- 0x00eae0ed, 0x00f0e6ef, 0x00e9e1ed, 0x00dae3ec, 0x00ebd5f0, 0x00eedce9, 0x00ede5f0, 0x00dbe4f5, 0x00cfe2f5, 0x00dce2f7, 0x00d0d4f2, 0x00abb4cb, 0x00a1cbd1, 0x00cbebfa, 0x00d8e1fd, 0x00d2bee3,
- 0x00687267, 0x00484f43, 0x00404137, 0x0038362a, 0x00393521, 0x0038351e, 0x003d3824, 0x003f3a26, 0x00363a21, 0x00353a21, 0x00363723, 0x00373422, 0x00353321, 0x0035321f, 0x0036301f, 0x0036301e,
- 0x002b2e13, 0x002e2f15, 0x0034311b, 0x00373221, 0x00353320, 0x00353127, 0x003d342f, 0x00443a32, 0x003c3a26, 0x003c3b24, 0x003d3b26, 0x003b3a25, 0x003a3a26, 0x00383827, 0x003d3d30, 0x00444438,
- 0x0040453b, 0x003b4036, 0x0081837d, 0x00ebece9, 0x00fbfefb, 0x00fdfffe, 0x00fffeff, 0x00fffeff, 0x00d1d1d2, 0x00838485, 0x00686a6d, 0x007b7f84, 0x00989da0, 0x009a9ea4, 0x00999ca3, 0x008e9198,
- 0x00767f7f, 0x00707979, 0x0070777a, 0x0072777b, 0x0073767a, 0x00777c7e, 0x00808788, 0x0083888b, 0x007f8585, 0x00797e7e, 0x00646467, 0x00464144, 0x00231d1a, 0x0019110a, 0x00180e06, 0x00180f04,
- 0x00050f00, 0x00070a00, 0x00110900, 0x001e0d07, 0x002a110e, 0x002e1111, 0x002f1414, 0x00311b1a, 0x001e160a, 0x00120b00, 0x001b0b07, 0x0037170d, 0x0065402e, 0x00805541, 0x008e583f, 0x009e603c,
- 0x009b5724, 0x009a5621, 0x0096562b, 0x00875331, 0x006c4e35, 0x00654839, 0x0061463d, 0x005d413a, 0x0047392c, 0x00372c25, 0x002c211f, 0x00211a1a, 0x00191514, 0x00151314, 0x00201c1e, 0x002a2729,
- 0x002f312d, 0x003f3f3f, 0x00514f56, 0x0055525d, 0x0053505c, 0x004a4854, 0x00423f4c, 0x003c3942, 0x002d3230, 0x004f504d, 0x00939399, 0x00a4a8b2, 0x00a0a4b0, 0x00a3a9b0, 0x00abafba, 0x00b0b2bc,
- 0x00a1abae, 0x00a2acaf, 0x00a2a8b0, 0x009fa4ad, 0x00a0a8b0, 0x009da5ae, 0x009fa3af, 0x009fa3ad, 0x0097a1a6, 0x00969fa5, 0x00979ea6, 0x00989fa7, 0x009aa1aa, 0x009ea6af, 0x00a6adb6, 0x00abb2bb,
- 0x00aab7ba, 0x00b3bfc0, 0x00afb8bc, 0x00afb6bd, 0x00b2babe, 0x00b4bcc0, 0x00bbc3c9, 0x00c2c8d0, 0x00bfcccd, 0x00c1cdce, 0x00c5cfd4, 0x00c5cfd7, 0x00c6cfd6, 0x00c7ced7, 0x00c8cdd8, 0x00c7cdd4,
- 0x00bbc6c8, 0x00becacd, 0x00ccd5da, 0x00d5dee3, 0x00d3dce3, 0x00cad0d9, 0x00bfc4ce, 0x00bcc6cd, 0x00c9ddde, 0x00d2e6e5, 0x00d4e6e8, 0x00e0ecee, 0x00eaecf0, 0x00ede4ec, 0x00dac7d1, 0x00b199a6,
- 0x00555b56, 0x0069706b, 0x00efefed, 0x00f7faf8, 0x00fcfdfc, 0x00fafbf9, 0x00fffefb, 0x00dcddd9, 0x0072776d, 0x00404338, 0x003c3d30, 0x00303021, 0x00222015, 0x0019160f, 0x00110e0c, 0x000c090a,
- 0x00020402, 0x00030403, 0x00050406, 0x00060406, 0x00080404, 0x00080206, 0x00080009, 0x00070009, 0x00030004, 0x00030004, 0x00060107, 0x00060107, 0x0009020a, 0x000b040c, 0x000e060f, 0x000d050e,
- 0x0025324a, 0x00556088, 0x00505795, 0x004b51a0, 0x003d459f, 0x00384197, 0x003a3f92, 0x00393e8c, 0x00303780, 0x00323987, 0x00313c82, 0x002a4073, 0x002a3492, 0x00273184, 0x00262e79, 0x00253172,
- 0x00283574, 0x00525772, 0x00948a81, 0x00b69e67, 0x00ca9766, 0x00cb9f71, 0x00d1aa7d, 0x00deb68a, 0x00e3c38f, 0x00ebc896, 0x00f0cb9c, 0x00ecc79a, 0x00e4c095, 0x00dbb78e, 0x00dab48b, 0x00e1b992,
- 0x00ddc085, 0x00dbbd83, 0x00dcbb84, 0x00d7b57f, 0x00cead76, 0x00c3a36d, 0x00ac8b5b, 0x009b794f, 0x0081653a, 0x00755b33, 0x00765d32, 0x00706029, 0x0088785c, 0x00776b65, 0x002b202c, 0x000d051d,
- 0x0000061a, 0x0000061b, 0x00020720, 0x00030723, 0x0008092b, 0x00080b2b, 0x000a0c2c, 0x000c0c2c, 0x00050d29, 0x00070e2b, 0x000a0e30, 0x000a0e32, 0x000b0f32, 0x000c0f34, 0x000d0e38, 0x000d0d37,
- 0x000b0b32, 0x000b0a31, 0x000c0a31, 0x000d0a2f, 0x000d092d, 0x000f0a2c, 0x00100c2b, 0x00100b29, 0x00070b20, 0x00090b20, 0x000a0a22, 0x000a0920, 0x000e0b22, 0x00110c26, 0x00110b2c, 0x00120b2b,
- 0x000b0929, 0x000c092d, 0x000e0830, 0x000e0732, 0x000c0833, 0x000c0834, 0x000f0834, 0x00110a34, 0x00090828, 0x00080725, 0x00090627, 0x000b0827, 0x000c0a24, 0x000c0a22, 0x000e0a23, 0x00110c23,
- 0x000a0e1e, 0x00090d1d, 0x00090e1f, 0x00080e1d, 0x0008101d, 0x00080e18, 0x00080d14, 0x005e6166, 0x00eff1f1, 0x00f9fbfa, 0x00fdfbfc, 0x00fdfbfb, 0x00fbfdfc, 0x00cbcdcd, 0x003f3c3f, 0x000b080b,
- 0x00040803, 0x00050804, 0x00060605, 0x00070506, 0x00050505, 0x00020504, 0x00040808, 0x00080c0e, 0x00050c06, 0x00020803, 0x00040607, 0x0005070a, 0x00080609, 0x0009070b, 0x00100d15, 0x000d0911,
- 0x00000a04, 0x00100d05, 0x0027180c, 0x00351f0f, 0x001e0e06, 0x00150e11, 0x001d1f33, 0x0020294f, 0x00142a52, 0x000f2453, 0x00071242, 0x0004082d, 0x00050327, 0x0007062a, 0x000f0f39, 0x00111746,
- 0x000d2856, 0x002c4576, 0x0028396c, 0x001c2551, 0x00211b41, 0x00301a20, 0x0040201c, 0x00432425, 0x003d2a21, 0x004b3729, 0x00594230, 0x00564227, 0x004a3315, 0x00432b12, 0x00523729, 0x005e443d,
- 0x0045281f, 0x001e252d, 0x001d3958, 0x0013436b, 0x001c3f6a, 0x00233c71, 0x00283e7f, 0x0026438d, 0x001c4c7b, 0x00274f6b, 0x00395a73, 0x005b819b, 0x00aabec9, 0x00bfc7c5, 0x00cbcac0, 0x00cdcbbd,
- 0x00c4cdbb, 0x00bdc8ba, 0x00c7ccc4, 0x00c8c8c0, 0x00a3a095, 0x00838172, 0x008b8679, 0x0087857a, 0x00919990, 0x00cad3cc, 0x00f6fefc, 0x00f7fdff, 0x00fafdff, 0x00fbfcfb, 0x00f8f7fa, 0x00c0bec1,
- 0x00416060, 0x002f4e4f, 0x00345459, 0x0032545b, 0x0032585e, 0x00335960, 0x00325762, 0x00345863, 0x002f575d, 0x00325860, 0x00375863, 0x00375763, 0x00365761, 0x00375461, 0x0037505f, 0x00344d5b,
- 0x00284249, 0x00253c45, 0x00203140, 0x001e2c3d, 0x001d2b38, 0x001b2b38, 0x00213245, 0x0024364b, 0x00203d4c, 0x00264354, 0x002f4f61, 0x00335666, 0x00365966, 0x00355762, 0x003a5a64, 0x003d5963,
- 0x00798685, 0x00cbd7d3, 0x00e2eae7, 0x00e4e8e2, 0x00f3f6ed, 0x00f9fcf4, 0x00eef1ec, 0x00d7d8db, 0x00aab4b6, 0x009398a2, 0x0090909f, 0x00bebbca, 0x00dad5b8, 0x00d8ca9e, 0x00e3c7a0, 0x00f1c9ac,
- 0x00e6bf90, 0x00dcb778, 0x00deb676, 0x00d3ab72, 0x00a47b66, 0x0073522f, 0x00543c1b, 0x00574a39, 0x007d8789, 0x009ea9b5, 0x00a5a9c2, 0x00a09db6, 0x00aea2b5, 0x00b9b1c1, 0x00beb6c5, 0x00b3aebd,
- 0x008a917b, 0x009ba196, 0x00cdcfd7, 0x009fa2b5, 0x00757a9d, 0x007079a2, 0x007a85ae, 0x008591b8, 0x007e93a4, 0x00778d97, 0x00758898, 0x0076869a, 0x0073819b, 0x00717b93, 0x007b7f9c, 0x008585a7,
- 0x00828797, 0x00878695, 0x006f6776, 0x004d4148, 0x00483d41, 0x00594b3d, 0x005b4a38, 0x005a4738, 0x00504530, 0x004f4334, 0x004f4138, 0x004c3e33, 0x004b3c31, 0x004e3d2f, 0x004a3929, 0x00453322,
- 0x003a2918, 0x002f2419, 0x00302c2a, 0x003e444a, 0x00465a6a, 0x00486478, 0x0043627a, 0x0033576e, 0x001c4552, 0x001a434f, 0x001d4551, 0x001e4753, 0x001e4853, 0x001d4750, 0x00204851, 0x00224753,
- 0x001c434a, 0x001c454b, 0x0020444e, 0x00224350, 0x0023454e, 0x00244650, 0x00244551, 0x0021444f, 0x001b4048, 0x001b4047, 0x001d3f48, 0x001f3d47, 0x001d3b46, 0x001d3945, 0x001e3946, 0x001f3c47,
- 0x00dbd5cb, 0x00bcb4ab, 0x00fefaf5, 0x00fcfbf7, 0x00fdfdfc, 0x00fefdff, 0x00f4f3f4, 0x00929190, 0x00060202, 0x00060502, 0x001c140e, 0x00291a10, 0x00352217, 0x00412c21, 0x004c3325, 0x00503724,
- 0x00523b25, 0x00533c27, 0x0054392a, 0x00503628, 0x004b3425, 0x004a311f, 0x004f3220, 0x00553924, 0x005f452a, 0x006a5132, 0x00765a3b, 0x007c5f41, 0x0081674a, 0x0084694e, 0x00876b52, 0x00896e57,
- 0x00856e5b, 0x00836d5a, 0x00816c5c, 0x007d685c, 0x00796257, 0x00785e54, 0x007b5e53, 0x007e5e50, 0x007d5545, 0x00774f3f, 0x00754939, 0x00704434, 0x00643e31, 0x005a3a30, 0x004d332c, 0x003f2c29,
- 0x002d2221, 0x0027211f, 0x00221e1d, 0x001f1b1a, 0x001e1a18, 0x001c1513, 0x0019100f, 0x00160e0c, 0x000d0805, 0x000d0705, 0x000e0907, 0x00120d0c, 0x001b1516, 0x001c1719, 0x001f1a1d, 0x00221d21,
- 0x00232320, 0x00222321, 0x00202121, 0x001c1d1e, 0x0018191b, 0x00161617, 0x00151111, 0x00140d0c, 0x00180c07, 0x0022140f, 0x003c1f13, 0x005a230b, 0x00702f0d, 0x0083360c, 0x00984110, 0x00a84710,
- 0x00af470e, 0x00af4814, 0x00a34012, 0x00963810, 0x00852e0c, 0x006d2911, 0x00542311, 0x003e1b10, 0x001f1817, 0x00595c5e, 0x00c4cbcd, 0x00e9f0ee, 0x00f3f5ef, 0x00f4f2f0, 0x00eeebed, 0x00ededf2,
- 0x00f1ecf5, 0x00f3eff6, 0x00f3f0f5, 0x00f4f3f4, 0x00f4f4f3, 0x00eff1f0, 0x00e9ebf0, 0x00d5d6e2, 0x00898a9f, 0x00434562, 0x00252037, 0x00695b62, 0x00b0a4a7, 0x00aba1a4, 0x00a8a0a4, 0x00c7c2c6,
- 0x00f0edee, 0x00fdfcfc, 0x00fbfcfb, 0x00fdfefc, 0x00fbfefd, 0x00ede4e7, 0x00817576, 0x003f3832, 0x00524c3f, 0x0064564a, 0x005e473d, 0x0051342d, 0x005f433b, 0x006a5a4a, 0x00575438, 0x00505a35,
- 0x0070744e, 0x00a0a388, 0x00c2c3b7, 0x00a9aaaa, 0x006d6f80, 0x00807f97, 0x009590a8, 0x00666073, 0x003a3237, 0x0023191a, 0x007f777a, 0x00dbd9e4, 0x00e4e4e8, 0x00b5b3b3, 0x0067645f, 0x00434236,
- 0x004e4d40, 0x00757165, 0x009c9992, 0x00ceccc6, 0x00dfe0dc, 0x00d8d2dd, 0x00d4d3e0, 0x00d4dade, 0x008e9b8a, 0x005b5f47, 0x00686547, 0x0099896b, 0x00e1c1af, 0x00e4c1c0, 0x00d5b6c1, 0x00c2a5bb,
- 0x00b8a099, 0x00bdabb7, 0x00a99fbe, 0x00797cab, 0x007689ab, 0x00749098, 0x006c887c, 0x008aa386, 0x0098a58f, 0x0080837d, 0x008a8078, 0x00a98b76, 0x007f6c60, 0x00685c58, 0x00807979, 0x00857f84,
- 0x00897f81, 0x0083767e, 0x009a8e9c, 0x00b2aec4, 0x00c6ccea, 0x00c3c8d8, 0x00b4b8c5, 0x00bcbace, 0x00d1cce0, 0x00d1d1e9, 0x008e94af, 0x00475470, 0x0040526d, 0x0055617c, 0x00444866, 0x003b385a,
- 0x004c4c6b, 0x0050526f, 0x00323351, 0x0034354e, 0x00343648, 0x00252838, 0x00292b3d, 0x005a5a6d, 0x00acaabc, 0x00afa7c0, 0x006c6b7a, 0x00676966, 0x007e7e78, 0x00564e48, 0x00544c44, 0x007e746b,
- 0x0095897d, 0x0091877e, 0x00928782, 0x009a918e, 0x00a8a39f, 0x00988f98, 0x006b5c6f, 0x00524457, 0x00372836, 0x00231422, 0x00271726, 0x00433545, 0x00696472, 0x00686873, 0x0060606d, 0x005f6270,
- 0x009e9a9f, 0x00d2cfd4, 0x00d6d1d7, 0x00cac5cc, 0x00aeacb2, 0x009d9ba2, 0x00aca8af, 0x00cdc9d0, 0x00dbd5db, 0x00dcd9de, 0x00c3c0ca, 0x007e7a8d, 0x002d2b39, 0x0023212f, 0x0035333e, 0x0063636c,
- 0x008f9094, 0x009d9da0, 0x00b4b4b6, 0x00d2d2d4, 0x00fdfefd, 0x00fafefa, 0x00fdfffc, 0x00fcfffd, 0x00fafcfb, 0x00bec0c1, 0x0064666c, 0x008e8f99, 0x00c1c1cd, 0x00dcdceb, 0x00dfdef0, 0x00cdccdf,
- 0x00d8c5cb, 0x00d3c2cb, 0x00ddcfdb, 0x00f2e9f6, 0x00f4effe, 0x00efeffd, 0x00eaecfa, 0x00e2e5f3, 0x00e0e5ee, 0x00ecf0fa, 0x00e9f2f7, 0x00e0f2ee, 0x00efe4f5, 0x00dfe4f5, 0x00d7e4f5, 0x00d8e9f8,
- 0x00f9d8e8, 0x00f5d0da, 0x00f6d7db, 0x00e4d7d6, 0x00e1b6c6, 0x00e5c5d1, 0x00eedfea, 0x00dde4f2, 0x00cee0fa, 0x00dce1fb, 0x00cbcdec, 0x00a5acc4, 0x00a4cbd1, 0x00c6e5f1, 0x00d8e2fa, 0x00d1bfe2,
- 0x006c746b, 0x00474e42, 0x003e3f35, 0x0038382a, 0x00393622, 0x0038351e, 0x003c3723, 0x003e3a24, 0x003a3b23, 0x00383a22, 0x00383623, 0x00373421, 0x00353321, 0x0033321e, 0x0033311e, 0x0033301d,
- 0x002f2f1a, 0x0031311b, 0x0036331f, 0x00373322, 0x00363421, 0x00363327, 0x003d352d, 0x00413a2f, 0x00413c2b, 0x003f3b28, 0x003c3a27, 0x003a3826, 0x00373623, 0x00383928, 0x00404034, 0x0048483c,
- 0x00454840, 0x003c3f38, 0x007f807c, 0x00eaeae7, 0x00fafcfb, 0x00fcfefd, 0x00fffdfe, 0x00fffeff, 0x00d5d3d7, 0x008a898b, 0x006d6e71, 0x007e8286, 0x00969b9e, 0x00999ea3, 0x00989ca1, 0x008b9193,
- 0x00798081, 0x00717778, 0x00676e70, 0x00676c70, 0x0073777b, 0x00838a8b, 0x008b9293, 0x00898f91, 0x00898c91, 0x008b8c91, 0x00807e85, 0x0069656a, 0x00433d3b, 0x00322d25, 0x00252016, 0x00221c10,
- 0x00171f0e, 0x0016180a, 0x00191208, 0x001f110a, 0x001c0804, 0x001c0503, 0x001f0a08, 0x00281714, 0x00292116, 0x00262117, 0x00372b21, 0x00614534, 0x0082604f, 0x0086604c, 0x00835237, 0x00945735,
- 0x00a15529, 0x00a05325, 0x0099542a, 0x008d532f, 0x00764f35, 0x006a4a3b, 0x005f453b, 0x00563d34, 0x0044342d, 0x00362825, 0x00291e1d, 0x001e1818, 0x00191413, 0x00161313, 0x001e1a19, 0x00252320,
- 0x002d2b2a, 0x003d3a3b, 0x004c484e, 0x004f4c54, 0x00504d56, 0x004b4753, 0x00423e49, 0x00363339, 0x003c3c3f, 0x00777676, 0x00adaeb3, 0x00a4aab2, 0x00abb2ba, 0x00b1b8bf, 0x00a6acb5, 0x00a5aab2,
- 0x00a9b2b9, 0x00a6b0b6, 0x00a1a7b0, 0x009da2ac, 0x009aa2a9, 0x0098a0a8, 0x00999ea7, 0x00999fa6, 0x00959ca5, 0x00949ba4, 0x00949ba3, 0x00939ba2, 0x00969da4, 0x009aa2a9, 0x009fa6ae, 0x00a2aab2,
- 0x00adb1b9, 0x00b4babf, 0x00adb3ba, 0x00aab2b9, 0x00abb3b8, 0x00abb4b7, 0x00b2bbbf, 0x00bac2c8, 0x00c0c9cc, 0x00c1c9cd, 0x00c2cad0, 0x00c2ccd2, 0x00c5cfd6, 0x00c8d1d9, 0x00cbd3db, 0x00cad4da,
- 0x00cbd4d9, 0x00c3cbd1, 0x00bdc5cc, 0x00c5cfd4, 0x00d4dde4, 0x00dee5ee, 0x00dbe4ec, 0x00ccd7de, 0x00b8c7cb, 0x00bcccce, 0x00ccdbde, 0x00dde8eb, 0x00eef1f5, 0x00f5eff6, 0x00ecdfe7, 0x00dac8d1,
- 0x00817f7f, 0x005e5d5c, 0x00e1dddf, 0x00f8f8f8, 0x00fbfdfc, 0x00fafaf8, 0x00fdfefa, 0x00eeeeea, 0x008d8f88, 0x004a4d45, 0x003e4035, 0x00323324, 0x00232218, 0x0017160f, 0x000f0d0a, 0x000a0708,
- 0x00040205, 0x00050206, 0x00050308, 0x00050306, 0x00060304, 0x00060205, 0x00060007, 0x00060007, 0x00060008, 0x00060008, 0x00070008, 0x00060007, 0x00080209, 0x0009030a, 0x000b050b, 0x000b050b,
- 0x0026304f, 0x00555f8b, 0x00505795, 0x0049509e, 0x0039439c, 0x00364196, 0x00384193, 0x0039428f, 0x003a3c8c, 0x003b3d90, 0x00373f88, 0x002d4178, 0x002c3595, 0x00293286, 0x00283077, 0x0025326d,
- 0x0031397e, 0x00505173, 0x00887d76, 0x00b19963, 0x00ce9d69, 0x00cea473, 0x00d1ad7c, 0x00dbb886, 0x00e6c28f, 0x00ecc896, 0x00ebc695, 0x00e2be8e, 0x00dab688, 0x00d4b083, 0x00d4b083, 0x00d9b589,
- 0x00d7b580, 0x00cfae78, 0x00cba873, 0x00c4a26c, 0x00b1905b, 0x00a2834e, 0x00907241, 0x00876a3d, 0x0084643d, 0x007e613d, 0x007f663e, 0x00827242, 0x0084735c, 0x005f5250, 0x00150c1a, 0x000b061e,
- 0x00060620, 0x0005071f, 0x00050722, 0x00050824, 0x0009082b, 0x00080a2b, 0x00080c2b, 0x00090c2a, 0x000b0d2e, 0x000c0e2f, 0x000c0e32, 0x000c0e32, 0x000b0e31, 0x000c0f32, 0x000b0e34, 0x000a0d33,
- 0x000f0b35, 0x000e0a34, 0x000e0b33, 0x000e0b32, 0x000d0a2f, 0x000e0b2d, 0x000f0c2c, 0x000e0c2a, 0x000d0b26, 0x000f0d27, 0x000e0d28, 0x000b0b22, 0x000b0a22, 0x000d0b24, 0x000d0a28, 0x000d0827,
- 0x000b092b, 0x000b092e, 0x000d082f, 0x000c072f, 0x000b082f, 0x000b0831, 0x000d0830, 0x000e092f, 0x000b082a, 0x000b0828, 0x000c0928, 0x000d0a27, 0x000e0c24, 0x000d0c22, 0x000e0d23, 0x000f0f24,
- 0x00101122, 0x000f1122, 0x000b0f1f, 0x000a101e, 0x000a121e, 0x000a111a, 0x0000060d, 0x0040454b, 0x00dcdcdf, 0x00fcfcfe, 0x00faf8fa, 0x00fefdfd, 0x00fdfffe, 0x00e5e7e6, 0x005c5c5b, 0x000c0b0a,
- 0x00040606, 0x00060706, 0x00050503, 0x00070605, 0x00050504, 0x00040602, 0x00030600, 0x00080a06, 0x00080b06, 0x00080a06, 0x00040604, 0x00060809, 0x00050609, 0x0006070b, 0x000d0f13, 0x000b0c11,
- 0x00090508, 0x00201412, 0x00311c14, 0x00442b1e, 0x002e1b16, 0x00271e25, 0x0024273e, 0x001d2b52, 0x0018285e, 0x0016235f, 0x000d184e, 0x00020632, 0x0008072c, 0x00080427, 0x00020223, 0x0005082e,
- 0x00041640, 0x00253566, 0x00263464, 0x00111945, 0x0017153a, 0x00271a1a, 0x00382617, 0x00352117, 0x0039261d, 0x004a3428, 0x00472f21, 0x00422e1b, 0x00301e0c, 0x00312019, 0x00402d35, 0x00402e41,
- 0x0026170f, 0x0018171a, 0x0029374a, 0x002b425f, 0x001e3a64, 0x00223a6f, 0x00233c78, 0x0026407f, 0x002a4178, 0x00324673, 0x003a5278, 0x00456e8d, 0x006b8290, 0x00738082, 0x007d817a, 0x00848675,
- 0x00787e6f, 0x00787f72, 0x00808379, 0x007a796d, 0x00666150, 0x00585541, 0x00656351, 0x007f806f, 0x0083887f, 0x00c1c6c0, 0x00f1f6f4, 0x00faffff, 0x00fafcfc, 0x00fdfefd, 0x00fcfbfe, 0x00dddcdf,
- 0x00617b80, 0x003f5a5f, 0x003d5b61, 0x003e5f65, 0x003b6063, 0x003c6165, 0x003c6067, 0x003c5e66, 0x003c616a, 0x003e616d, 0x0041606d, 0x0041606b, 0x0040606a, 0x003f5d68, 0x003d5763, 0x003b5561,
- 0x00324955, 0x002e4350, 0x00243646, 0x001f2f3e, 0x001b2b37, 0x00192a36, 0x001e3040, 0x00213446, 0x00263c50, 0x002b475a, 0x002e4d60, 0x00325464, 0x00335662, 0x003d5e67, 0x0039575e, 0x00446267,
- 0x009ea5a7, 0x00e8efee, 0x00eaefed, 0x00e5e8e3, 0x00e2e5dd, 0x00e5e9e3, 0x00eff2ef, 0x00eeeef2, 0x00c3c6cc, 0x00a1a1ae, 0x0094919c, 0x00b4acb1, 0x00cfc6a0, 0x00d9c798, 0x00e4c89d, 0x00edc9a8,
- 0x00dab08c, 0x00bc9762, 0x00b29056, 0x009c7d48, 0x00684734, 0x00674d2c, 0x005e4e2a, 0x003c351e, 0x0032393c, 0x00596068, 0x006d717d, 0x00706c75, 0x007e7271, 0x00887c79, 0x00867a75, 0x0080766e,
- 0x006e6452, 0x00888074, 0x00a7a09e, 0x008f8b90, 0x009394a4, 0x00aaadc5, 0x009ca1bb, 0x008990ac, 0x008491a6, 0x008795ab, 0x008291a6, 0x007d8ba2, 0x0076829a, 0x007b839d, 0x008488a0, 0x008b8ca3,
- 0x008e8d9d, 0x007f7986, 0x00655962, 0x00534547, 0x00514540, 0x0055443c, 0x00554037, 0x00523d33, 0x004d3c2e, 0x004d3c2e, 0x004f3f2f, 0x004c3d2b, 0x00463923, 0x003f341f, 0x003a2f19, 0x00322812,
- 0x00332428, 0x002a202a, 0x004f4d5c, 0x00757b91, 0x006a7f9c, 0x00577290, 0x00446483, 0x00335772, 0x0023455b, 0x00204557, 0x00204754, 0x001e4750, 0x001f4751, 0x00204651, 0x00204750, 0x00214951,
- 0x0020444e, 0x0020444d, 0x0021434f, 0x0020424e, 0x0020424b, 0x001f434a, 0x001e414a, 0x001c4148, 0x001b3e47, 0x001b3e46, 0x001c3c46, 0x001c3b44, 0x001b3842, 0x00193640, 0x00193640, 0x001a3741,
- 0x00dad3cc, 0x00b5aaa2, 0x00fffdf8, 0x00fcfaf5, 0x00fcfffd, 0x00fbf9fc, 0x00f7f7f8, 0x009f9c9a, 0x00100a0a, 0x000d0a05, 0x0021170f, 0x002d1c11, 0x003a261a, 0x00452d21, 0x00513526, 0x00553924,
- 0x00593b28, 0x00583d28, 0x00583b2b, 0x0055392a, 0x00513729, 0x00513621, 0x00583b23, 0x005f442a, 0x006f5335, 0x00795f3c, 0x00826743, 0x00876c48, 0x008f7352, 0x00937656, 0x00937658, 0x00937859,
- 0x008d765d, 0x008c765d, 0x0089745f, 0x00846f5d, 0x007e6758, 0x007c6154, 0x007e5c52, 0x007f594e, 0x00825345, 0x007d4c3d, 0x00774436, 0x00714336, 0x00623b31, 0x005b3931, 0x004f332e, 0x00442e2c,
- 0x00352526, 0x00312324, 0x002b1f1f, 0x00271d1b, 0x00251d19, 0x00241a17, 0x00211512, 0x001d1210, 0x00160d09, 0x00130906, 0x00120a08, 0x00130d0d, 0x001a1415, 0x001b1618, 0x00201c1d, 0x00241f21,
- 0x00262323, 0x00242321, 0x00222221, 0x001f1f20, 0x001b1b1e, 0x001a191b, 0x00191515, 0x0017100e, 0x001a0d0a, 0x00231410, 0x003d1e15, 0x005b230e, 0x00732f10, 0x0085350e, 0x009a3f10, 0x00aa4510,
- 0x00b54611, 0x00b14512, 0x00a84014, 0x0097340d, 0x00862a09, 0x006f280f, 0x004f1c09, 0x00441e13, 0x001b1012, 0x001b1a1e, 0x006f7275, 0x00c4c8c8, 0x00fffefa, 0x00f5f1f1, 0x00f5f0f4, 0x00f1f0f7,
- 0x00f7f2fb, 0x00f4f1f7, 0x00f6f3f6, 0x00f3f2f3, 0x00f2f1f2, 0x00edebf0, 0x00e3e0eb, 0x00a8a4b4, 0x003f3b5a, 0x001b1a3c, 0x0027213b, 0x0052464a, 0x0092878c, 0x00aaa0a3, 0x00bcb2b7, 0x00dbd4d7,
- 0x00f7f2f4, 0x00fcfcfc, 0x00fefefc, 0x00fdfffd, 0x00fdffff, 0x00e5e9f0, 0x00707481, 0x00293042, 0x003e435b, 0x005b5a6b, 0x006f6872, 0x006e605f, 0x007a6f61, 0x007f7c6f, 0x00687062, 0x00617268,
- 0x00aba892, 0x00cac9ba, 0x00cecec9, 0x00d0d1d5, 0x00c7c7d9, 0x00cfcde4, 0x00cdc8e0, 0x009590a4, 0x006d6870, 0x00504749, 0x00898485, 0x00e3e1e0, 0x00edeeec, 0x00c3c0bf, 0x00a19e9a, 0x00939188,
- 0x007e736f, 0x00796f65, 0x00776a5f, 0x00a7998c, 0x00decdbf, 0x00d9ccd0, 0x00d0cbd4, 0x00d8e0df, 0x00adc7b6, 0x006c8266, 0x00586645, 0x007c7b5a, 0x00907666, 0x00895c63, 0x008d566f, 0x00884973,
- 0x00674c5e, 0x005f4a69, 0x00685c86, 0x0059588f, 0x00606d9a, 0x00576e86, 0x004b666a, 0x005b7669, 0x0063726c, 0x00515c5c, 0x005c5b61, 0x00614c56, 0x003a2f40, 0x005e566c, 0x009a96a9, 0x00918b9f,
- 0x00877585, 0x0093838d, 0x00c8b6c7, 0x00d8cbdc, 0x00cfc7e7, 0x00a9b3d5, 0x008b99bd, 0x00878eae, 0x009992b4, 0x009c99b6, 0x006d6f88, 0x002f374f, 0x0049596f, 0x00687890, 0x003c4964, 0x00192443,
- 0x0038415d, 0x004d586f, 0x00465164, 0x005b6271, 0x007a7b86, 0x006e6b73, 0x00716b71, 0x00989094, 0x00e6d9e0, 0x00e6d9e0, 0x00b0abb4, 0x00929ca7, 0x00666972, 0x0033373a, 0x0060605e, 0x00a2a29d,
- 0x00b7b2af, 0x00aaa9a2, 0x00a6a69e, 0x00b7bbb4, 0x00cfd2cc, 0x00cac1c8, 0x00ad9ba9, 0x007c6c79, 0x004a3948, 0x003a2836, 0x00382737, 0x0050414f, 0x00948a97, 0x00a5a1a9, 0x00a9a6af, 0x00a9aab2,
- 0x00c6c1c9, 0x00e9e5ec, 0x00d6d2d9, 0x00c1bdc4, 0x00b8b6bb, 0x00a8a5ab, 0x00a5a1a6, 0x00c1bcc2, 0x00dcd8e0, 0x00e2e0e6, 0x00d6d2dc, 0x00b3afbf, 0x0072717d, 0x00686772, 0x0078757e, 0x009b9aa1,
- 0x00c5c6ca, 0x00cfcfd2, 0x00cdcdcf, 0x00d5d5d6, 0x00fffefe, 0x00fcfffc, 0x00fdfdfb, 0x00fcfefc, 0x00fcfeff, 0x00c0c2c4, 0x0063646b, 0x008b8c96, 0x00c1c1cd, 0x00dbdcea, 0x00dfdff1, 0x00d3d3e5,
- 0x00d4c2cb, 0x00d0c0c8, 0x00e6d9e3, 0x00f0e9f4, 0x00f5f3fe, 0x00f0f1ff, 0x00eaecfb, 0x00e1e3f1, 0x00e6e8f4, 0x00edf0fb, 0x00eaf1f8, 0x00ddf6f3, 0x00f3e8fb, 0x00e2e3f4, 0x00dfe0ef, 0x00ede8f4,
- 0x00fbbecd, 0x00df9a9e, 0x00efb2ad, 0x00dfb4a6, 0x00be777a, 0x00cb9aa2, 0x00edd5e3, 0x00e1e3ef, 0x00d3e0fc, 0x00e2e3fd, 0x00d0ceef, 0x00b6b6d1, 0x00b4d2dd, 0x00cee7f3, 0x00dce3f9, 0x00cab8da,
- 0x006a6f69, 0x00454b41, 0x003b3e32, 0x00353628, 0x00383622, 0x00383520, 0x003c3823, 0x003d3a22, 0x003b3c24, 0x00383a23, 0x00373623, 0x00363320, 0x00353321, 0x00353420, 0x00353320, 0x00353320,
- 0x00363321, 0x00363521, 0x00373623, 0x00393624, 0x00393623, 0x003b362a, 0x003f3930, 0x00403d31, 0x00433d2d, 0x003f3b29, 0x003d3a28, 0x003c3b2a, 0x00373827, 0x003b3c2f, 0x0042433a, 0x00484940,
- 0x00484945, 0x00393a37, 0x007c7b7a, 0x00e9e8e7, 0x00fcfcfd, 0x00fefefe, 0x00fefdfd, 0x00fefeff, 0x00d4d4d6, 0x00828284, 0x00646568, 0x007b7f84, 0x00969b9d, 0x009ba0a4, 0x009a9ea2, 0x008f9397,
- 0x00828689, 0x0075797b, 0x00686d71, 0x00606569, 0x00787e81, 0x0091999a, 0x0097a1a1, 0x0092999c, 0x008c8f95, 0x00898a90, 0x0085848c, 0x007b797f, 0x00625e5f, 0x004b4642, 0x002d2923, 0x00241f17,
- 0x00161e12, 0x00191d12, 0x00242219, 0x0029211b, 0x002b1e1a, 0x0030201d, 0x002d1e1b, 0x003a2d29, 0x004c453e, 0x00433f36, 0x00483e32, 0x006a5440, 0x00806352, 0x007e5c49, 0x0081533a, 0x00925637,
- 0x00a6502b, 0x00a14f24, 0x009c5027, 0x0093522b, 0x00824e35, 0x006e4a3c, 0x005c423a, 0x00513a32, 0x0040302a, 0x00332725, 0x00271f20, 0x00211c1e, 0x00201918, 0x001f1918, 0x00231c19, 0x0027211d,
- 0x00312927, 0x003b3632, 0x00464240, 0x00494547, 0x004a464b, 0x0048424b, 0x00413c44, 0x00383438, 0x00515254, 0x008a8c8b, 0x00b4b7b9, 0x00b0b5bd, 0x00b2b7bf, 0x00acb2ba, 0x00a1a7b0, 0x00aab1b8,
- 0x00b0b8bf, 0x00a8b0b7, 0x009ea5ad, 0x009aa1aa, 0x00969ca4, 0x00989da5, 0x00999da5, 0x00989ea5, 0x00979ba3, 0x00949aa1, 0x009298a0, 0x009199a0, 0x00939aa2, 0x00979da4, 0x009ba1a9, 0x009ea6ac,
- 0x00acaeb5, 0x00b2b7bc, 0x00acb3b9, 0x00aab2b8, 0x00abb2b7, 0x00a9b0b4, 0x00adb3b9, 0x00b4bbc0, 0x00bdc3c7, 0x00bfc5ca, 0x00c1c7ce, 0x00bfc9cf, 0x00c3ccd4, 0x00c6cfd6, 0x00c9d2d8, 0x00c8d3d8,
- 0x00cfd7df, 0x00cfd8e0, 0x00cad2da, 0x00c6ced5, 0x00c7d0d8, 0x00cfd7e0, 0x00dbe3ec, 0x00e0ecf3, 0x00d1e1e7, 0x00c6d7da, 0x00c6d4d8, 0x00cbd5d9, 0x00e3e6ec, 0x00f5f0f8, 0x00faeff6, 0x00f6e7ee,
- 0x009c8c93, 0x005e5157, 0x00cfc3c9, 0x00f9f3f6, 0x00fefdfe, 0x00fefdfd, 0x00fefdfb, 0x00f6f7f3, 0x00a1a29c, 0x004e534c, 0x0041443a, 0x00343528, 0x0025251d, 0x001a1a15, 0x00100c0d, 0x00090408,
- 0x00060106, 0x00050206, 0x00050208, 0x00040306, 0x00050304, 0x00050205, 0x00060007, 0x00060007, 0x00060008, 0x00060108, 0x00060008, 0x00050006, 0x00080108, 0x00080209, 0x000a030a, 0x000b040b,
- 0x00283459, 0x00545f90, 0x00525b9b, 0x00464f9e, 0x0037429c, 0x00344097, 0x00374295, 0x00394491, 0x003f4393, 0x003d4093, 0x00373e89, 0x002e3e7a, 0x002e3395, 0x002a3184, 0x00272f74, 0x00223069,
- 0x00333883, 0x004b4b70, 0x007d726d, 0x00ae975f, 0x00d6a56b, 0x00d1a772, 0x00d4b17c, 0x00dab882, 0x00e6c08b, 0x00e7c38e, 0x00e4c18e, 0x00dcb887, 0x00d4ae80, 0x00d1aa7d, 0x00d0aa7d, 0x00cea97c,
- 0x00d0aa7d, 0x00c6a271, 0x00bd9b68, 0x00b4935f, 0x009f7e4b, 0x0091713f, 0x00866837, 0x00846738, 0x00886844, 0x00846642, 0x008a6f4d, 0x008d7b55, 0x0078675b, 0x0042343b, 0x000e031a, 0x000e0726,
- 0x000a0729, 0x00070724, 0x00070824, 0x00070925, 0x000c092c, 0x000a0a2a, 0x000a0c2b, 0x000a0d2b, 0x000f0e2f, 0x000e0f30, 0x000e0f31, 0x000d0e32, 0x000d0e31, 0x000d0e32, 0x000d0e34, 0x000b0e33,
- 0x00100b39, 0x000f0a38, 0x000f0a37, 0x000e0b35, 0x000e0a32, 0x000d0b30, 0x000e0b2e, 0x000d0b2d, 0x000e0c2b, 0x000e0c2b, 0x000f0d29, 0x000d0c23, 0x000b0a21, 0x000a0921, 0x000b0a24, 0x000b0a25,
- 0x000d0a29, 0x000b0a2a, 0x000b092b, 0x000b082b, 0x000b082c, 0x000e0a2e, 0x000e0a2e, 0x000c0a2c, 0x000c0928, 0x000c0b27, 0x000d0c28, 0x000e0d26, 0x000f0e24, 0x00100e23, 0x00100f24, 0x00101124,
- 0x00111323, 0x00101221, 0x000d111e, 0x000c121d, 0x000d161e, 0x000d151b, 0x00030a10, 0x0031363c, 0x00c7c8ca, 0x00f8fafb, 0x00fcfcfd, 0x00fffefe, 0x00fefefe, 0x00f7f7f6, 0x00787777, 0x000e0e0e,
- 0x00050607, 0x00050506, 0x00070707, 0x00060606, 0x00080707, 0x000b0904, 0x00070500, 0x00020100, 0x000b0a04, 0x000d0b08, 0x000c0c0b, 0x000c0a0b, 0x00040708, 0x00050509, 0x000f1116, 0x00101117,
- 0x001a0911, 0x00250e11, 0x00341713, 0x004d2d26, 0x004d3539, 0x00483b4d, 0x002b2a4b, 0x00161f4e, 0x00192562, 0x001e2965, 0x0019235d, 0x00030a3f, 0x0005062e, 0x000c072a, 0x00060120, 0x00060420,
- 0x000b1236, 0x002b385f, 0x003c4771, 0x00192148, 0x0017173b, 0x001e1b1b, 0x002a2213, 0x00251d10, 0x0033211b, 0x003a261f, 0x00352019, 0x002d1b15, 0x002d1f22, 0x003e3347, 0x004a4065, 0x00342b5e,
- 0x0030211d, 0x003f2525, 0x005a3d47, 0x00523b52, 0x002f3a6d, 0x00213974, 0x001d3a73, 0x00233e6e, 0x002b3c6f, 0x0030417a, 0x00334c84, 0x00375f8b, 0x00556c83, 0x005c6971, 0x005b605c, 0x005e5f50,
- 0x00555748, 0x00505546, 0x005c5f4f, 0x0060604d, 0x006d664e, 0x00716a55, 0x00686352, 0x006e6c5c, 0x0077776d, 0x00afb1aa, 0x00ebeeeb, 0x00fafdfe, 0x00fbfcfd, 0x00fefefe, 0x00fdfcff, 0x00edecee,
- 0x00859aa0, 0x004e646a, 0x00476268, 0x00466469, 0x0046686b, 0x0043666b, 0x0045666e, 0x0045656e, 0x00486770, 0x00496672, 0x004a6672, 0x004a6770, 0x00496871, 0x0047636d, 0x00445d67, 0x00405965,
- 0x003c4f5f, 0x00374a58, 0x002e404d, 0x00243642, 0x001d2d3a, 0x00182937, 0x001d2f3f, 0x00213545, 0x00293e52, 0x002b4657, 0x00314e5e, 0x00365462, 0x003a5763, 0x00435d66, 0x00385056, 0x00526b6e,
- 0x00cacecf, 0x00f3f8f5, 0x00f7fbf9, 0x00f1f5f1, 0x00e8ebe9, 0x00e4e6e7, 0x00ebebee, 0x00efecf4, 0x00d1ccd8, 0x00b0acb7, 0x00afa3a8, 0x00c6b2a5, 0x00dac596, 0x00e3cb96, 0x00ddbf92, 0x00cdac8d,
- 0x00b38b6e, 0x007e5f2f, 0x00755c26, 0x00604c1a, 0x003f291b, 0x00544227, 0x00463e1f, 0x0024240e, 0x001c2320, 0x002f3231, 0x003b3a3b, 0x00554843, 0x0066523d, 0x006a5339, 0x005d492a, 0x0053401f,
- 0x00715a48, 0x008c7865, 0x00837162, 0x00726457, 0x00998e8a, 0x00b0a7a9, 0x00a5a0a9, 0x009393a2, 0x009295ac, 0x008d93af, 0x00868eab, 0x00818aa4, 0x00888ea6, 0x009596b0, 0x009c9ab0, 0x009794a6,
- 0x00776e7e, 0x005f535b, 0x00524442, 0x0053433e, 0x00504033, 0x00543a3a, 0x00523538, 0x004f3332, 0x004a3427, 0x00493621, 0x00493a1d, 0x00463a1e, 0x003a3216, 0x0037311c, 0x00302c1a, 0x002c2917,
- 0x00201835, 0x00120f2f, 0x00414467, 0x006a749d, 0x006176a7, 0x005a74a4, 0x004b6896, 0x0039587f, 0x00274663, 0x00214357, 0x00224552, 0x001f464f, 0x00204550, 0x00224450, 0x0022444f, 0x0021454e,
- 0x0023424e, 0x0021414c, 0x00203f4c, 0x001e3f4b, 0x001e3e48, 0x001c3d46, 0x001b3d45, 0x001b3c44, 0x00193943, 0x001a3842, 0x001a3742, 0x001a3640, 0x0019333e, 0x0016313b, 0x0014303a, 0x0014303a,
- 0x00d6cfc4, 0x00ae9f97, 0x00fffdf5, 0x00fcf9f6, 0x00fafefd, 0x00fafbfb, 0x00f8fafa, 0x00a5a4a1, 0x0019120e, 0x00160e08, 0x0025190f, 0x00332013, 0x00412a1d, 0x004d3226, 0x0059392a, 0x005d3c28,
- 0x005d3c28, 0x005d3d29, 0x005c3c2c, 0x005a3c2c, 0x00583b2c, 0x00593c24, 0x00604226, 0x00684d2f, 0x00775c37, 0x0082683e, 0x008b7144, 0x0091764a, 0x009b7e55, 0x009d8158, 0x009c8059, 0x009e815b,
- 0x008e7a58, 0x008e7a5a, 0x008c785b, 0x0089745b, 0x00826a57, 0x00816355, 0x00805a4f, 0x0081544b, 0x00805042, 0x007e493c, 0x00764235, 0x006e4238, 0x00623a34, 0x005a3832, 0x0050332f, 0x00472e2e,
- 0x003b2828, 0x00382626, 0x00342322, 0x0030211e, 0x0030221d, 0x002f211c, 0x002b1d18, 0x00271914, 0x0020140d, 0x001d100c, 0x00190f0c, 0x00181210, 0x001c1415, 0x001d1818, 0x001f1b1b, 0x00241e1f,
- 0x00282423, 0x00252321, 0x00232222, 0x00202021, 0x001c1c1f, 0x001b1a1c, 0x001a1616, 0x0017100e, 0x00190e09, 0x00231610, 0x003b1e15, 0x005b2312, 0x00722d13, 0x00873413, 0x009c3d14, 0x00ad4313,
- 0x00b5440f, 0x00b14212, 0x00a63b0f, 0x009a330d, 0x00892909, 0x0072270e, 0x0057200c, 0x0043190e, 0x00221513, 0x00120f0f, 0x001a1c1d, 0x00656866, 0x00d8d6d2, 0x00f5f1f2, 0x00f5f0f7, 0x00f5f3fd,
- 0x00f9f5f8, 0x00f7f4f6, 0x00f5f2f3, 0x00f1f0f0, 0x00edeced, 0x00eae8ed, 0x00c6c3cf, 0x00696576, 0x001d1834, 0x00252143, 0x003a324c, 0x00716568, 0x00968b90, 0x00aa9fa3, 0x00cec5c8, 0x00e8e1e3,
- 0x00f8f4f4, 0x00fefefe, 0x00fdfefc, 0x00fdfefe, 0x00feffff, 0x00e7f1f6, 0x00707e8d, 0x001b2946, 0x00142250, 0x00424b6f, 0x00898ca0, 0x00b0afad, 0x00c2c2ad, 0x00bdc2b6, 0x00a8b3b3, 0x0098aab7,
- 0x00c2bcb2, 0x00dad5d0, 0x00dedadd, 0x00e1e0e8, 0x00deddef, 0x00deddf2, 0x00e0def2, 0x00c3c0d1, 0x00c3bec7, 0x00bab4b6, 0x00a09d99, 0x00c2c5b9, 0x00d1d4cc, 0x00d2cecc, 0x00b8b2b1, 0x00c8c0c2,
- 0x00bcadac, 0x007f6d66, 0x005f4a3e, 0x00705542, 0x00bc9d86, 0x00dfd1cc, 0x00d1d2d8, 0x00d0d9db, 0x00d4e8e5, 0x00adbdae, 0x006c7559, 0x007b7759, 0x007b6754, 0x005a3b42, 0x004f2b46, 0x00522a5b,
- 0x002e2755, 0x00262059, 0x00252365, 0x002c317c, 0x004c569a, 0x004c5a8e, 0x002b3960, 0x0028324b, 0x00555470, 0x006c6686, 0x005d5877, 0x002c2241, 0x00100e2f, 0x004d496a, 0x009590ae, 0x0090869f,
- 0x008a7482, 0x008e757d, 0x00b49ea4, 0x00c7b4bb, 0x00c5b5c8, 0x008897c2, 0x00556da3, 0x00475685, 0x004e4a72, 0x005f5878, 0x0047475d, 0x00212739, 0x003e4e5e, 0x0056697a, 0x0026384e, 0x000c1e39,
- 0x003e4362, 0x00767a95, 0x00595c74, 0x004a4b5f, 0x00666171, 0x0086808a, 0x00a39ea3, 0x00b0aaaa, 0x00dbd4d2, 0x00f4ecea, 0x00ceccd0, 0x00919ab4, 0x0054596c, 0x00373c4b, 0x0073747b, 0x00bfbdc3,
- 0x00cfccce, 0x00cdccca, 0x00bebeb8, 0x00c3c5bf, 0x00d6d8d2, 0x00ddd5d8, 0x00d2c2ca, 0x00ab9ca4, 0x005c4e58, 0x00433441, 0x00594956, 0x00675866, 0x008f858d, 0x00a49ea4, 0x00b4b0b2, 0x00bbb8ba,
- 0x00cbc7cf, 0x00d5d1d8, 0x00c6c2c9, 0x00bcb9bf, 0x00aeabb1, 0x009f9da2, 0x0088858a, 0x00908b90, 0x00a09ca2, 0x00b7b3b9, 0x00c5c1c9, 0x00c6c3d0, 0x00adacb6, 0x00acabb5, 0x00b6b5bc, 0x00c0bec5,
- 0x00c5c6ca, 0x00d4d4d7, 0x00d5d5d8, 0x00dddddf, 0x00fefefe, 0x00fcfffb, 0x00fdfdfb, 0x00fdfefc, 0x00fafcfe, 0x00bfc0c4, 0x00606268, 0x008d8e96, 0x00c3c4cf, 0x00dadae9, 0x00e2e2f3, 0x00dfdff2,
- 0x00d9cad1, 0x00d3c6cd, 0x00ece3eb, 0x00ebe6f1, 0x00f6f6fe, 0x00f1f4ff, 0x00e7eaf8, 0x00dee1f0, 0x00e5eaf6, 0x00eff1fe, 0x00e7f2fa, 0x00d6f8f4, 0x00efe7fa, 0x00ebe8f7, 0x00e9e0eb, 0x00ecd3db,
- 0x00e98a92, 0x00d06565, 0x00ef9181, 0x00e4947b, 0x00c35b4c, 0x00c47d7e, 0x00eac6ce, 0x00e5dee8, 0x00d6e2f8, 0x00e6e6ff, 0x00dedbf8, 0x00d7d2f0, 0x00c5dde9, 0x00d1e5f2, 0x00dbe2f6, 0x00c2b2d3,
- 0x00616760, 0x0042483f, 0x003b3d32, 0x00343526, 0x00393623, 0x003a3621, 0x003c3822, 0x003d3a22, 0x003a3b24, 0x00383923, 0x00373623, 0x00383421, 0x00373522, 0x00373621, 0x00383623, 0x00383622,
- 0x00373421, 0x00373522, 0x00373722, 0x00383722, 0x00393622, 0x003b3629, 0x003d392e, 0x00403c30, 0x00433f2e, 0x003f3d2b, 0x003c3c29, 0x003a3c2a, 0x00383b2c, 0x003e4135, 0x0044473f, 0x00474943,
- 0x00444442, 0x00343433, 0x00787776, 0x00e8e8e7, 0x00fdfdfd, 0x00fefffe, 0x00fdfdfd, 0x00fefdfe, 0x00cecfce, 0x00727373, 0x00505254, 0x006f7378, 0x0093999b, 0x00999da1, 0x00989ca0, 0x00919499,
- 0x0083868a, 0x00787c7f, 0x00686c70, 0x005b6065, 0x00797f82, 0x00969f9f, 0x00a2acad, 0x00a0a8aa, 0x00999fa3, 0x00979ba1, 0x0091949b, 0x0088898f, 0x0079777b, 0x00686666, 0x00474543, 0x0032302d,
- 0x001d2720, 0x00303730, 0x00474944, 0x0056544f, 0x006b6360, 0x00695f5b, 0x00615854, 0x007b736e, 0x00999a90, 0x007f7e75, 0x004f4a3e, 0x004e422f, 0x00574533, 0x00624634, 0x007a513b, 0x00885334,
- 0x009b4a23, 0x009c471e, 0x0097481d, 0x00934924, 0x0087492d, 0x006e4538, 0x00563d34, 0x004b362e, 0x003b2f29, 0x00332928, 0x002b2527, 0x00282628, 0x002a2423, 0x002b2321, 0x002c221e, 0x002f2520,
- 0x00392e22, 0x0041382c, 0x004a4239, 0x004a443f, 0x00464041, 0x00464146, 0x003f3c41, 0x003f3e41, 0x00747a77, 0x00a7acaa, 0x00b4babb, 0x00b7bcc4, 0x00aaafb8, 0x009fa3ae, 0x00a9afb7, 0x00b3b9c0,
- 0x00acb4bb, 0x00a4abb2, 0x0099a0a8, 0x00969ea6, 0x009399a2, 0x00969aa2, 0x00969ba2, 0x00979ca3, 0x0095999f, 0x0093989f, 0x0092979e, 0x0091989e, 0x0092979f, 0x0092979e, 0x0093989f, 0x00969ca1,
- 0x00a3a8ac, 0x00acb2b6, 0x00aab0b4, 0x00aab0b4, 0x00acb1b4, 0x00aaaeb2, 0x00aaafb2, 0x00adb2b6, 0x00b5bbbf, 0x00bbc1c5, 0x00c0c7cc, 0x00bfc9cf, 0x00c2cbd2, 0x00c4cdd4, 0x00c6ced6, 0x00c6cfd6,
- 0x00c8d2d9, 0x00ced8e0, 0x00d5dde6, 0x00d4dce3, 0x00ccd6dd, 0x00c6cfd8, 0x00c8d1da, 0x00d0dbe3, 0x00deecf3, 0x00dfedf3, 0x00d8e5ea, 0x00d1dadf, 0x00d5d8de, 0x00e1dfe5, 0x00f4eef5, 0x00fcf4fb,
- 0x00b6a2a9, 0x006a585f, 0x00b0a0a6, 0x00f6eff2, 0x00fcf8fa, 0x00fdfdfc, 0x00fdfafa, 0x00fdfefc, 0x00b6b9b2, 0x005b625a, 0x003f433a, 0x0036362a, 0x0025261e, 0x001c1b17, 0x00100b0d, 0x00080308,
- 0x00050105, 0x00050107, 0x00040107, 0x00040205, 0x00040105, 0x00050105, 0x00050007, 0x00060008, 0x00050006, 0x00060107, 0x00050007, 0x00060007, 0x00070008, 0x0009020a, 0x0009020a, 0x000a030b,
- 0x0028355c, 0x00525e8f, 0x004e5899, 0x003d4997, 0x002e3a93, 0x00303d92, 0x00374395, 0x003c4793, 0x003d4693, 0x00394091, 0x00343b87, 0x002c397d, 0x002d2f90, 0x00282d7d, 0x00232b6b, 0x001e2c63,
- 0x002f3482, 0x004a4974, 0x006c615e, 0x0097814a, 0x00cd9e5f, 0x00cea66d, 0x00cfac73, 0x00d6b47b, 0x00ddb880, 0x00debb84, 0x00dbb883, 0x00d3af7d, 0x00cda778, 0x00cba376, 0x00c7a173, 0x00be9a6c,
- 0x00bd976e, 0x00b99567, 0x00ad8b5a, 0x009e7e4b, 0x008f6f3d, 0x00876736, 0x00876938, 0x008b6d3e, 0x00856741, 0x00866744, 0x00917653, 0x00988667, 0x006d5b54, 0x00281929, 0x00110522, 0x000e052a,
- 0x000c082c, 0x00090828, 0x00080825, 0x000a0b27, 0x000d092b, 0x000c0b2b, 0x000b0c2a, 0x000d0e2c, 0x000f0f2d, 0x000f0f2f, 0x000f0f30, 0x000e0e30, 0x000d0d30, 0x000d0d31, 0x000e0e33, 0x000d0e34,
- 0x00110c3a, 0x00100b39, 0x000f0b38, 0x000f0b36, 0x000e0a33, 0x000d0a30, 0x000c0a2e, 0x000c0a2d, 0x000d0b2a, 0x000c0a2a, 0x000d0c26, 0x000d0d20, 0x000a0a1f, 0x0008081c, 0x0008091e, 0x00090a21,
- 0x00090922, 0x00080823, 0x00090925, 0x000a0a27, 0x000c0b29, 0x000e0d2b, 0x000e0d2a, 0x000d0c28, 0x000c0d23, 0x000e0f25, 0x000f1127, 0x00101125, 0x00101123, 0x00111222, 0x00121322, 0x00121422,
- 0x0010151f, 0x0010161f, 0x000e161d, 0x000d151b, 0x000e191c, 0x000e171a, 0x00081012, 0x00242a2c, 0x00a8abab, 0x00eff1f1, 0x00fdfdfd, 0x00fefefd, 0x00fcfbfb, 0x00fefdfd, 0x008e8e8f, 0x001d1c1d,
- 0x00030402, 0x00050506, 0x00050606, 0x00060707, 0x00080607, 0x00100c08, 0x000a0500, 0x00060201, 0x00110b05, 0x0017130f, 0x0014110f, 0x000e0b0a, 0x00070908, 0x00090909, 0x00141415, 0x00121317,
- 0x00240f0b, 0x0031160f, 0x003f2016, 0x00533227, 0x00725a5b, 0x007f7181, 0x003a3654, 0x000e123c, 0x00101d4f, 0x001d2758, 0x001b2558, 0x00061147, 0x00010425, 0x000e0926, 0x00070316, 0x00080514,
- 0x00070a20, 0x00262945, 0x003a3f5a, 0x00151330, 0x001a142d, 0x00191a1f, 0x0016171a, 0x00211e24, 0x00312330, 0x002a1923, 0x0023121a, 0x002f2228, 0x00494455, 0x004a486b, 0x0036396c, 0x00222668,
- 0x005d3037, 0x0095464b, 0x009a3f46, 0x00832c3f, 0x003c2d60, 0x001f386d, 0x0013406a, 0x0014445b, 0x0018435f, 0x0015467a, 0x001e4e89, 0x002f578b, 0x005f7a96, 0x008e9ba7, 0x00a2a6a4, 0x009d9c90,
- 0x008e8e7e, 0x00838372, 0x008e8f78, 0x0096947a, 0x00a89d7c, 0x00a89d83, 0x00726a54, 0x004f4732, 0x006d6b5c, 0x009f9e95, 0x00e0e1dd, 0x00f9fafa, 0x00f8f9fa, 0x00fefefd, 0x00fdfdfd, 0x00fbfafb,
- 0x00a9bbc1, 0x0061757b, 0x0051696e, 0x00526d71, 0x004f6f71, 0x004d6d70, 0x004f6f73, 0x00506e74, 0x00536e75, 0x00556e77, 0x00546d76, 0x00526e74, 0x00526e74, 0x004f6970, 0x004a616a, 0x00485d68,
- 0x00405362, 0x003d505d, 0x00344653, 0x002c3d4b, 0x0020303f, 0x001a2b3a, 0x001d2f3e, 0x00243746, 0x00253d4d, 0x002c4554, 0x00324c5a, 0x00405965, 0x003d525d, 0x0044575e, 0x003d4e52, 0x0078878a,
- 0x00ecefe8, 0x00fcfffc, 0x00f2f5f4, 0x00e5e7ea, 0x00d5d7dc, 0x00e4e4eb, 0x00e4e1ea, 0x00eee8f3, 0x00e0dae2, 0x00c5bac2, 0x00c4b1ab, 0x00dcba9f, 0x00e7cb90, 0x00eed296, 0x00bc9f6e, 0x00826549,
- 0x005c402b, 0x0059441f, 0x0086794c, 0x00675e37, 0x00271a14, 0x0022180a, 0x001e1c07, 0x00212519, 0x001a2222, 0x000f1110, 0x00120d09, 0x00322112, 0x00533717, 0x0061421c, 0x0060451b, 0x005d4319,
- 0x0062452d, 0x0065492e, 0x00654a2c, 0x00644b2c, 0x006b5739, 0x00786853, 0x007d7266, 0x00847e7f, 0x00918fa1, 0x009392af, 0x00878ba6, 0x008287a2, 0x007e8195, 0x00818095, 0x00757281, 0x00625c69,
- 0x004d4446, 0x00483a36, 0x004b3c30, 0x004c3b2d, 0x004a3823, 0x004e322c, 0x004d2e2b, 0x00482b20, 0x00412c15, 0x00433214, 0x00413512, 0x003a3316, 0x00363221, 0x00312f2b, 0x0027252b, 0x001d1c27,
- 0x00060834, 0x00030839, 0x001a2358, 0x002f3e76, 0x003a508c, 0x00506a9f, 0x004a6795, 0x003b5a7f, 0x00284a5d, 0x00234451, 0x0022444c, 0x001f434b, 0x001f434c, 0x0021424c, 0x0021414b, 0x0020424d,
- 0x0021404a, 0x00203d48, 0x001e3c48, 0x001d3b46, 0x001d3a45, 0x001b3842, 0x00193740, 0x00193640, 0x0017333c, 0x0017323c, 0x0018323c, 0x0017313a, 0x00162e39, 0x00132c36, 0x00112a34, 0x00112a33,
- 0x00d4cbbc, 0x00a59789, 0x00fff8f1, 0x00fcfaf8, 0x00fcfdfd, 0x00fafdfa, 0x00fafaf8, 0x00afaeac, 0x00281d17, 0x00160b03, 0x0029190f, 0x00352014, 0x00462e1f, 0x00523726, 0x005d3d2b, 0x005f3e2a,
- 0x00613c2a, 0x005d3c27, 0x005c3c29, 0x005c3d2b, 0x005c3d2d, 0x005f4028, 0x0068492b, 0x006e5331, 0x007d603a, 0x00866a40, 0x008f7246, 0x0094794b, 0x009d8253, 0x009f8556, 0x009f8457, 0x009e8358,
- 0x00927f58, 0x00917c58, 0x00907a5a, 0x008b7459, 0x00886e59, 0x00836553, 0x00815b4d, 0x007d5245, 0x007e4c44, 0x007c483d, 0x00724238, 0x00673f38, 0x005f3a36, 0x00583633, 0x00503231, 0x00472e2e,
- 0x00402a2b, 0x003c2828, 0x003a2624, 0x00382420, 0x0038241e, 0x0038251d, 0x00332319, 0x002c1e14, 0x00291914, 0x00261712, 0x00231713, 0x00201713, 0x00231b19, 0x00231c1c, 0x00262021, 0x00292123,
- 0x002a2423, 0x00272323, 0x00252224, 0x00212022, 0x001d1c1f, 0x001b1b1b, 0x00191716, 0x0016110f, 0x001c110f, 0x00241811, 0x003b1f16, 0x00572012, 0x00702b15, 0x00843214, 0x009b3c17, 0x00aa4013,
- 0x00b3420f, 0x00b14111, 0x00a7390f, 0x009d320f, 0x008d290b, 0x00722409, 0x005a220a, 0x00451b0c, 0x00281516, 0x001b1415, 0x0011100f, 0x0022221e, 0x008c8983, 0x00e8e6e5, 0x00fbf9fd, 0x00f5f5fd,
- 0x00f7f5f5, 0x00f3f1f2, 0x00f4f1f2, 0x00f0eded, 0x00eceaeb, 0x00eae7ec, 0x00aaa6b2, 0x00423e4f, 0x001e1430, 0x00271f3e, 0x005a4f67, 0x00908286, 0x00a5999e, 0x00b0a6a7, 0x00e1d9dd, 0x00ede8eb,
- 0x00faf4f6, 0x00fdfbfb, 0x00fdfbfc, 0x00fcfdff, 0x00fdfefc, 0x00e8f0ee, 0x008f9ba3, 0x00404c66, 0x00293261, 0x004e5577, 0x009da0b1, 0x00cac9c4, 0x00e0dec9, 0x00d7d9cf, 0x00cad2d4, 0x00bac7d9,
- 0x00c5bfc0, 0x00d4ced1, 0x00e3dde5, 0x00e1dee8, 0x00dbd9e9, 0x00dadae8, 0x00e5e5f1, 0x00cbcad4, 0x00c2bbc2, 0x00c2bcbc, 0x00a09c97, 0x009fa397, 0x00c2c2bb, 0x00cfcfcd, 0x00aaa5a5, 0x00bab3b6,
- 0x00b3a7a8, 0x00695954, 0x00523831, 0x0055392d, 0x009c7966, 0x00c9c3bc, 0x00cfd8de, 0x00d1dce5, 0x00e7eef7, 0x00dddedb, 0x00929185, 0x00938b6e, 0x00c6b7a5, 0x008c7e84, 0x00453c59, 0x00383366,
- 0x001c2850, 0x001b2657, 0x0017225b, 0x00172362, 0x00333f77, 0x003c4674, 0x002f3558, 0x0045425e, 0x0080738f, 0x0088758f, 0x00524161, 0x00181831, 0x00080928, 0x00363755, 0x0075708e, 0x00897f95,
- 0x00856c72, 0x007e615f, 0x009e807f, 0x00a69392, 0x00a99a9e, 0x007588b1, 0x005974ad, 0x00526498, 0x00585480, 0x00625a7b, 0x005a576b, 0x00313643, 0x0041515c, 0x00556772, 0x00546271, 0x00384557,
- 0x005a5876, 0x009d98b5, 0x0068627e, 0x002a243d, 0x002c2439, 0x00585362, 0x009f9da6, 0x00ababae, 0x00c9cccd, 0x00e6ece4, 0x00c6cdd2, 0x007e84a1, 0x004d516a, 0x00353348, 0x00655e6f, 0x00aba5af,
- 0x00c9bfc5, 0x00ccc5c6, 0x00c0b8b6, 0x00afa8a7, 0x00b4b1ad, 0x00cac1c1, 0x00cabcc0, 0x00afa3a7, 0x0062515c, 0x004a3e48, 0x00807481, 0x008c828b, 0x00989098, 0x00989093, 0x009b9395, 0x00a7a1a0,
- 0x00bdb9c0, 0x00b9b6bd, 0x00afabb2, 0x00a29ea5, 0x00908c93, 0x00827e84, 0x00737076, 0x00737176, 0x00858189, 0x00a09ea2, 0x00bbb9c1, 0x00b8b7bf, 0x00a9a7b0, 0x00aba9af, 0x00bebcc4, 0x00cbcacf,
- 0x00d2d1d5, 0x00dcd9dd, 0x00dedcdf, 0x00dfdfe1, 0x00fcfcfc, 0x00fafefa, 0x00fdfefb, 0x00fcfefb, 0x00fafbfe, 0x00bfbfc3, 0x00616268, 0x008c8d95, 0x00c4c5d2, 0x00d6d7e7, 0x00dddef0, 0x00dddef1,
- 0x00d7cacf, 0x00ded2d8, 0x00e8dee7, 0x00ebe6f2, 0x00f5f5fe, 0x00ecf0fb, 0x00dfe5f2, 0x00d9dfed, 0x00eaeaf9, 0x00f2f3fe, 0x00e6f2f8, 0x00d3f6f0, 0x00eee6f6, 0x00eee9f8, 0x00ebdfea, 0x00d3b6bb,
- 0x00c25b5e, 0x00c5554b, 0x00f08675, 0x00e48869, 0x00da5f4d, 0x00ca7974, 0x00dfb1b7, 0x00e8dee4, 0x00d9e5fd, 0x00e0e4fd, 0x00dddafa, 0x00dbd7f1, 0x00cddfec, 0x00d0e3ef, 0x00dbe2f7, 0x00bdb3cf,
- 0x00596259, 0x003e443a, 0x003a3b31, 0x00373628, 0x003b3724, 0x00393620, 0x003b3722, 0x003d3923, 0x003c3b26, 0x003a3b25, 0x003a3926, 0x003a3723, 0x00393623, 0x00383722, 0x00383723, 0x00383723,
- 0x00373523, 0x00373522, 0x00373622, 0x00373621, 0x0037351f, 0x00383425, 0x003b372b, 0x003e3b2d, 0x00424032, 0x003e3e2d, 0x003b3c2a, 0x00383b2a, 0x003c3f31, 0x0042453b, 0x00474942, 0x00474842,
- 0x00413f40, 0x002f2f2e, 0x00787877, 0x00e7e7e7, 0x00fefefd, 0x00fdfdfd, 0x00fbfbfb, 0x00fcfefe, 0x00cac9cc, 0x00666666, 0x00404142, 0x0062666b, 0x00919699, 0x00979c9f, 0x00989d9f, 0x0092989a,
- 0x00818589, 0x00797d81, 0x00686c70, 0x005c6065, 0x0083878a, 0x00a5adaf, 0x00b1bcbd, 0x00b0b9bd, 0x00a9aeb6, 0x00a6abb3, 0x00a1a5ad, 0x009699a1, 0x0083858a, 0x007b7d7f, 0x00656765, 0x004b4e4a,
- 0x003b4441, 0x00505754, 0x006f7370, 0x00797875, 0x008d8986, 0x008f8c88, 0x00918e89, 0x00aaa8a2, 0x00bebcb6, 0x008b8b82, 0x00443f34, 0x003b3222, 0x00433627, 0x0050372a, 0x006a4633, 0x007e4930,
- 0x0091431f, 0x0095431b, 0x0097421d, 0x0092431d, 0x00894228, 0x006b4230, 0x00533a30, 0x0048322a, 0x003b2f2e, 0x00342b2d, 0x002d292c, 0x002c2c2e, 0x002e2a29, 0x002f2926, 0x00322921, 0x00382c21,
- 0x00443624, 0x004b3d2d, 0x00504137, 0x004d423d, 0x0047403f, 0x00424041, 0x003b3b3f, 0x0055585d, 0x009fa3a4, 0x00bac0c1, 0x00b7bcc1, 0x00aeb3bc, 0x00a2aab0, 0x00a6aeb5, 0x00b6bcc3, 0x00b6bbc3,
- 0x00a2a8b2, 0x009ca2aa, 0x00969ca4, 0x00949aa3, 0x009399a1, 0x0094989e, 0x0096999e, 0x0095989e, 0x0091969f, 0x0090949c, 0x008f9299, 0x008e9196, 0x008d9096, 0x008e9398, 0x0091959a, 0x0093969b,
- 0x009ca3a5, 0x00a7adaf, 0x00acafb2, 0x00a9adb0, 0x00acb0b3, 0x00abb0b3, 0x00aaafb3, 0x00abb0b2, 0x00b1b5b9, 0x00b7bcbd, 0x00bec3c8, 0x00c0c8d0, 0x00c4cdd4, 0x00c7cfd6, 0x00c9d1d9, 0x00c9d1d9,
- 0x00ccd5dc, 0x00c9d2d9, 0x00ccd4db, 0x00d1dae0, 0x00d5dde4, 0x00d2dbe4, 0x00ccd7e1, 0x00c9d3dd, 0x00cedae2, 0x00dce8f0, 0x00e6f1f9, 0x00e5eef5, 0x00dce1e7, 0x00dadae1, 0x00e4e1e8, 0x00f2edf5,
- 0x00d5c4ca, 0x0094868b, 0x00a8999e, 0x00f1e9eb, 0x00fef8fa, 0x00fcfaf9, 0x00fbf8f7, 0x00fdfdfa, 0x00c7c8c4, 0x006c716b, 0x0042443c, 0x003b392e, 0x00292920, 0x001b1b16, 0x000e0c0c, 0x00040205,
- 0x00060108, 0x00060108, 0x00050008, 0x00050006, 0x00050006, 0x00050007, 0x00050007, 0x00050007, 0x00070008, 0x00060007, 0x00070108, 0x00070108, 0x00080209, 0x00070108, 0x00080209, 0x00070209,
- 0x00212c50, 0x004a5485, 0x00495394, 0x0037418f, 0x002a358c, 0x002f3b8d, 0x00374390, 0x003c4890, 0x00404491, 0x00363b88, 0x002f3380, 0x00293378, 0x00292988, 0x0022276e, 0x001f2660, 0x001d285a,
- 0x002c2f85, 0x00514d7f, 0x007c6e73, 0x00947d49, 0x00c09251, 0x00c39d5e, 0x00c9a76b, 0x00ceab6e, 0x00d8b17c, 0x00d9b27d, 0x00d6b07c, 0x00cea876, 0x00c8a272, 0x00c49f6f, 0x00bc9768, 0x00b38e60,
- 0x00ae8861, 0x00a98459, 0x009d794c, 0x008e6c3d, 0x00886837, 0x00876937, 0x008b6e3d, 0x00907144, 0x008a6946, 0x00896a45, 0x00967d5a, 0x00a69674, 0x00705f59, 0x0020111f, 0x00140826, 0x0010082f,
- 0x000e0b30, 0x000c092a, 0x000c0a29, 0x000c0a29, 0x000f0b2d, 0x000b0c28, 0x000c0e29, 0x000e0e2d, 0x000f0e2e, 0x000f0e2e, 0x00100e2f, 0x000e0e2f, 0x000c0c2f, 0x000b0c2f, 0x000c0d30, 0x000e0e32,
- 0x00140e3b, 0x00120d39, 0x00110c38, 0x00100c36, 0x000f0b32, 0x000c0a2e, 0x000b0a2c, 0x000b0a2b, 0x000f0a2a, 0x000c0928, 0x000b0b24, 0x000b0e1e, 0x00080b1e, 0x0006091c, 0x00070a1c, 0x00080a1f,
- 0x00080920, 0x00080820, 0x000a0a23, 0x000c0c26, 0x000c0d26, 0x000c0e24, 0x000d0f22, 0x000d0f21, 0x000e1024, 0x00111225, 0x00131426, 0x00121425, 0x00121423, 0x00121623, 0x00131722, 0x00141720,
- 0x0010181c, 0x000f161b, 0x000c161a, 0x000f1a1d, 0x000f1c1d, 0x00101c1b, 0x000b1615, 0x001a2320, 0x00909293, 0x00ececed, 0x00fdfcfd, 0x00fcfbfb, 0x00f9fafa, 0x00fcfdfc, 0x00a5a6a6, 0x00303030,
- 0x00030102, 0x00010001, 0x00090909, 0x00060707, 0x0009080a, 0x000e0906, 0x00100a03, 0x000e0804, 0x00180f0d, 0x001d1714, 0x00150f0a, 0x00110e08, 0x0012100e, 0x0011100e, 0x00161410, 0x00171613,
- 0x002e1909, 0x00442a19, 0x00593b29, 0x005d3d2b, 0x0089726c, 0x00aaa0a7, 0x0067687a, 0x00343c5a, 0x0040496e, 0x00323b5d, 0x001d244d, 0x00081642, 0x00000120, 0x0007061a, 0x00211928, 0x00312c36,
- 0x00262331, 0x00242233, 0x00352c42, 0x001f1226, 0x00371b30, 0x00272436, 0x0016192e, 0x0025233a, 0x00423956, 0x003d344b, 0x00332b3c, 0x005a5562, 0x00686b7f, 0x00343b5d, 0x00101c49, 0x00030d47,
- 0x00461622, 0x007e2c31, 0x008e2b32, 0x00761925, 0x00442c59, 0x00394d74, 0x002c5472, 0x00204d58, 0x001b4055, 0x00164274, 0x00204e86, 0x0028527e, 0x00577089, 0x00909ba6, 0x00b4b6b3, 0x00a6a395,
- 0x008c8978, 0x008c8977, 0x009a967f, 0x00a7a084, 0x00b1a27f, 0x00a39579, 0x005c5139, 0x00312811, 0x005b5648, 0x00939085, 0x00d2d1ca, 0x00f5f6f3, 0x00fbfcfa, 0x00fdfefd, 0x00fefeff, 0x00fffeff,
- 0x00c2d2d6, 0x00798a8d, 0x005c7073, 0x005c7376, 0x00587477, 0x00567377, 0x00577578, 0x00587578, 0x005e757c, 0x005e757c, 0x005c737b, 0x00587176, 0x00567073, 0x00556d72, 0x00526770, 0x004f646c,
- 0x00435864, 0x003e515e, 0x003a4b5a, 0x00334252, 0x00273747, 0x001d2d3c, 0x001c2d3c, 0x00233442, 0x00293c4d, 0x002c4051, 0x00334a59, 0x003b525d, 0x0042555c, 0x004d5c60, 0x00768284, 0x00afb8bb,
- 0x00f1f2ea, 0x00f3f5f0, 0x00eef0f2, 0x00dbdce3, 0x00c4c5cf, 0x00ccccd7, 0x00d8d5df, 0x00dcd6e0, 0x00e0d2d4, 0x00cfc1be, 0x00ceb3a4, 0x00e7c199, 0x00edcc88, 0x00e2c688, 0x009f8254, 0x004f3420,
- 0x00392515, 0x00726443, 0x00bbb38d, 0x007f7a56, 0x00221818, 0x00120c03, 0x00232119, 0x002d2e2c, 0x00141820, 0x000e0e0f, 0x00221a13, 0x00342311, 0x004d2c0d, 0x00553511, 0x005b3b17, 0x00593b16,
- 0x00583924, 0x00624429, 0x006b4c2f, 0x00614420, 0x00614823, 0x005f4c29, 0x0064553f, 0x006e625b, 0x00827b8c, 0x009491a7, 0x00777590, 0x00565b6f, 0x003e3f51, 0x002b2e3a, 0x003b3942, 0x004a4848,
- 0x00473c37, 0x0046392e, 0x004b3d2e, 0x004b3b27, 0x0046341e, 0x00472e1e, 0x0042281a, 0x003d2512, 0x003f2c13, 0x00403113, 0x003c3317, 0x0039371f, 0x00323131, 0x00292a37, 0x001a1a37, 0x00131138,
- 0x00010a35, 0x00010c3b, 0x000f1d54, 0x001b2c68, 0x00263e7a, 0x003d598d, 0x00496692, 0x003b5c7a, 0x002a4a57, 0x0028474c, 0x00234348, 0x001d4049, 0x001f4149, 0x001f4045, 0x001e3e45, 0x001d3f47,
- 0x001d3b46, 0x001d3944, 0x001c3843, 0x001b3742, 0x001c3541, 0x0019333e, 0x0016323b, 0x00163239, 0x00163139, 0x00142f37, 0x00142c35, 0x00132b34, 0x00122933, 0x00102731, 0x00102530, 0x000f2530,
- 0x00d1c6b3, 0x00a09080, 0x00fcf2e9, 0x00fdfcfa, 0x00fefdff, 0x00fbfffb, 0x00fbfdfb, 0x00bdbdbb, 0x00352b24, 0x001a0d05, 0x002d1b10, 0x00362012, 0x00482f1e, 0x00553925, 0x005e3f29, 0x00613f28,
- 0x00613d28, 0x005e3c26, 0x005d3c27, 0x005d3f29, 0x005f402e, 0x0065452c, 0x006e4f30, 0x00755938, 0x007f6138, 0x00896b3e, 0x00917445, 0x00967b49, 0x009f8551, 0x00a58b56, 0x00a68b59, 0x00a6895b,
- 0x00988459, 0x00958058, 0x00927c59, 0x008d7659, 0x00886e59, 0x00836554, 0x007d594b, 0x00775045, 0x00774841, 0x0076453c, 0x006d4038, 0x005e3934, 0x00573633, 0x00523331, 0x004b3130, 0x00432d2b,
- 0x003f2c29, 0x003e2a27, 0x003d2924, 0x003d2821, 0x003f281f, 0x00402a1f, 0x003d2a1d, 0x0039271a, 0x0035221a, 0x0032221a, 0x002e2019, 0x002a1f1a, 0x0029201e, 0x00292221, 0x00292122, 0x002a2324,
- 0x002b2422, 0x00282423, 0x00272425, 0x00232124, 0x001f1e21, 0x001d1d1e, 0x001b1919, 0x00191313, 0x001a130e, 0x00231a12, 0x00381f16, 0x00552013, 0x006c2914, 0x00823214, 0x00963a14, 0x00a53f10,
- 0x00b1410d, 0x00b03f10, 0x00a83a10, 0x009d330e, 0x008d280a, 0x0076260b, 0x005b2007, 0x00461a0a, 0x002d1817, 0x001e1716, 0x00161513, 0x00171611, 0x004d4943, 0x00b2afae, 0x00f9f6f9, 0x00f6f5fb,
- 0x00f6f8f1, 0x00f3f3f0, 0x00f0efee, 0x00eeecec, 0x00e7e3e5, 0x00e4dfe4, 0x008c8692, 0x00383241, 0x00261c31, 0x002e243b, 0x00857a8d, 0x009d8f92, 0x00aa9ea2, 0x00c6bbbc, 0x00ece4e8, 0x00f0ebee,
- 0x00f6f2f4, 0x00fbfbfb, 0x00fcfafb, 0x00fbfcfe, 0x00fefefe, 0x00f0f1ed, 0x00bcbcbe, 0x008d90a1, 0x00868eaf, 0x008b91a9, 0x00a5a9b3, 0x00c2c1bc, 0x00d6d4c4, 0x00c6c7bf, 0x00c0c5c9, 0x00c6d1e0,
- 0x00ccc9d1, 0x00d1ced7, 0x00dcd8e3, 0x00dedde7, 0x00dbdae8, 0x00d7d8e3, 0x00e7e6ef, 0x00d4d0d8, 0x00b8b0b3, 0x00b4adab, 0x00afa6a5, 0x00c8c9c3, 0x00dbd7d6, 0x00cfd0cf, 0x009e9b9d, 0x00908e91,
- 0x009f9497, 0x00796969, 0x00513939, 0x003c211c, 0x0067463e, 0x00787c78, 0x00a4b5be, 0x00cfddf0, 0x00f5f5fd, 0x00f2ebf1, 0x00beb0b0, 0x00a79683, 0x00e7ddcc, 0x00abb0b7, 0x003c4c6a, 0x00193769,
- 0x001b3a4f, 0x00233e5b, 0x00182e50, 0x0010234a, 0x001d2b4d, 0x00303753, 0x00535268, 0x00746a7a, 0x007b676f, 0x006b515a, 0x00321c2e, 0x000c0e29, 0x000f1330, 0x001f223b, 0x004d4b5e, 0x0067606b,
- 0x00634c44, 0x005c4036, 0x00795c52, 0x008b776e, 0x008f837f, 0x0063759a, 0x004c6599, 0x004b5c8c, 0x005c5b83, 0x00756e8d, 0x00888597, 0x00767c85, 0x00859397, 0x00a6b4b9, 0x00a0aab3, 0x0059606c,
- 0x00605976, 0x00a198b4, 0x00807593, 0x004f4461, 0x00483e57, 0x00615b6f, 0x009897a5, 0x00a4a7af, 0x00b9c6c7, 0x00c4d8d3, 0x00b5c3ca, 0x008b8cae, 0x00545371, 0x00504a63, 0x00786e84, 0x008d8692,
- 0x009f9397, 0x00a19697, 0x009d9190, 0x00908483, 0x00948a87, 0x00aaa09f, 0x00b2a6a7, 0x00a4989b, 0x00584b54, 0x004d444f, 0x00968d99, 0x00aca5b1, 0x00c3bec4, 0x00bfb7bd, 0x00b9b2b2, 0x00c9c3c1,
- 0x00d0cdd3, 0x00c1bec4, 0x00a9a6ac, 0x009f9ba2, 0x00958f96, 0x00979299, 0x00a09da3, 0x00b4b1b7, 0x00c4c0c5, 0x00ccc8cc, 0x00d5d3d9, 0x00c5c4c9, 0x00afadb5, 0x00aeadb2, 0x00b8b8bf, 0x00c3c3c9,
- 0x00cbc9cd, 0x00d8d6da, 0x00dbd9dd, 0x00dedee1, 0x00f9f9fa, 0x00fafefa, 0x00fdfdfa, 0x00fdfefb, 0x00fafcfd, 0x00bec0c3, 0x0063656a, 0x008d8e97, 0x00c1c1cf, 0x00d3d3e5, 0x00dcdbee, 0x00d4d3e8,
- 0x00d5cbcf, 0x00e4dce1, 0x00e5dfe8, 0x00edebf6, 0x00f1f3fd, 0x00e6ebf6, 0x00dadfec, 0x00d9deec, 0x00e8e9f4, 0x00eff0f9, 0x00e6f1f6, 0x00d7f7f3, 0x00f2e8f9, 0x00ece8f8, 0x00eee5f0, 0x00d9c0c6,
- 0x00cf6d6b, 0x00d36255, 0x00f78872, 0x00eb8668, 0x00f67261, 0x00dc827e, 0x00e0aaad, 0x00ecdce1, 0x00d2e2f5, 0x00dae1fc, 0x00dbd9f9, 0x00ded7f6, 0x00d5e4f1, 0x00cfe0ee, 0x00d6dff1, 0x00bdb8cf,
- 0x0059645a, 0x003d443a, 0x003a3a30, 0x00373527, 0x003a3624, 0x00393620, 0x003c3721, 0x003d3923, 0x003c3b26, 0x003a3c26, 0x003b3a27, 0x003b3925, 0x003a3825, 0x00393722, 0x00393723, 0x00383723,
- 0x00373621, 0x00383622, 0x00383621, 0x00373721, 0x00383621, 0x00393627, 0x003c392c, 0x00413d2f, 0x00403f30, 0x003c3d2c, 0x003b3d2b, 0x003a3e2d, 0x00414439, 0x00454740, 0x00474843, 0x00434441,
- 0x003a393a, 0x002d2c2c, 0x00787879, 0x00e7e9e8, 0x00fffffd, 0x00fdfefd, 0x00fafcfc, 0x00fdfefd, 0x00c9c9c9, 0x005f5f5d, 0x00343636, 0x00595d62, 0x008f9497, 0x00959a9d, 0x00979b9e, 0x00949a9c,
- 0x00878b8f, 0x007b7f83, 0x006d7175, 0x00686c71, 0x0093979a, 0x00b5bcbe, 0x00bac4c6, 0x00bcc5c9, 0x00bac2cb, 0x00b3bbc5, 0x00acb3bc, 0x00a9aeb7, 0x009da3aa, 0x00969b9e, 0x008b908f, 0x00767c7a,
- 0x0069706f, 0x00717876, 0x008b918f, 0x008f918f, 0x0091908f, 0x00979693, 0x009d9d99, 0x00b3b3ae, 0x00a1a29c, 0x005f6159, 0x00302f22, 0x00322d1e, 0x003b3128, 0x0046332b, 0x005b3b2e, 0x0073412d,
- 0x00853d1b, 0x00913f1c, 0x0096401c, 0x00913f1d, 0x00873d22, 0x00683f2e, 0x0051382d, 0x0046302a, 0x00382f2e, 0x00332d30, 0x002f2d31, 0x00303034, 0x00343130, 0x0037302b, 0x003d3027, 0x00443428,
- 0x004b3b26, 0x0051412f, 0x0058473a, 0x0053453e, 0x004a403f, 0x00413d3f, 0x0047484b, 0x007b7d83, 0x00b7bec1, 0x00bac3c7, 0x00b1b7be, 0x00abb1ba, 0x00abb2ba, 0x00b5bcc4, 0x00b8bdc5, 0x00a9aeb7,
- 0x009aa0a9, 0x00999ea6, 0x00979ca4, 0x00939ba3, 0x00949ba3, 0x0093979d, 0x0093979b, 0x0092949b, 0x008d9398, 0x008c8f95, 0x008b8d93, 0x008b8c92, 0x00898b91, 0x00888b90, 0x00888b90, 0x0087898f,
- 0x00929797, 0x00a0a4a6, 0x00a8abad, 0x00a7aaac, 0x00a9acb0, 0x00a8adb1, 0x00a9adb2, 0x00aaadb1, 0x00adb1b4, 0x00b3b8b8, 0x00bac0c3, 0x00bdc6ce, 0x00c6cfd6, 0x00ccd4dc, 0x00cfd5df, 0x00ced5de,
- 0x00c9d4d9, 0x00c8d1d7, 0x00c8d1d8, 0x00cbd5da, 0x00d0d9e0, 0x00d5dfe8, 0x00d8e2ee, 0x00d9e2ed, 0x00d8e0e9, 0x00d5dfe9, 0x00d8e2eb, 0x00e1ebf3, 0x00edf5fc, 0x00f0f4fa, 0x00e8eaf1, 0x00e6e6ed,
- 0x00f2e2e9, 0x00cebec5, 0x00c2b5ba, 0x00f1e7ea, 0x00fef9f9, 0x00fffdfb, 0x00fcf9f6, 0x00fcfdf8, 0x00d4d6d2, 0x007e837b, 0x0045463e, 0x003a382e, 0x0028261e, 0x00181713, 0x000c0a0b, 0x00030104,
- 0x00050108, 0x00050109, 0x00050109, 0x00050107, 0x00060007, 0x00060008, 0x00060007, 0x00060007, 0x00060006, 0x00060006, 0x00070007, 0x00080209, 0x00070109, 0x00080209, 0x0008020a, 0x0007020a,
- 0x00172244, 0x00404979, 0x003d4788, 0x002b3583, 0x00222b81, 0x00273281, 0x002f3a84, 0x00364185, 0x00393e86, 0x0031367e, 0x002a2e76, 0x00232a70, 0x0022207a, 0x001d2062, 0x001c2154, 0x001a2352,
- 0x00282b82, 0x005a568d, 0x009e909a, 0x00b39b6c, 0x00c79b57, 0x00bf995a, 0x00c09e60, 0x00c5a063, 0x00c9a56d, 0x00cca771, 0x00cea874, 0x00c6a06e, 0x00bd9869, 0x00b79265, 0x00ac865a, 0x00a17a50,
- 0x0097724c, 0x00946f47, 0x008c673e, 0x00886538, 0x008b6a3a, 0x00917341, 0x00937445, 0x00907145, 0x00886942, 0x008b6c48, 0x009b835f, 0x00b0a382, 0x007c6d66, 0x00241625, 0x00120622, 0x000f062d,
- 0x000d0b2f, 0x000c0a2b, 0x000c0929, 0x000e0b2b, 0x000f0a2d, 0x000e0d29, 0x000e0e29, 0x00100e2d, 0x000d0e2b, 0x000e0e2c, 0x00100e2d, 0x000f0e2d, 0x000e0d2f, 0x000d0c2f, 0x000f0d30, 0x00110e32,
- 0x00120e39, 0x00110d38, 0x00110d37, 0x00100d35, 0x00100d33, 0x000e0c2f, 0x000d0b2c, 0x000e0c2c, 0x000d0b28, 0x000c0b27, 0x000b0c23, 0x000a0e1d, 0x00090d1e, 0x00080c1d, 0x00080c1d, 0x00080b1d,
- 0x00090d1f, 0x000a0c20, 0x000c0e23, 0x000d1026, 0x000d1025, 0x000c1021, 0x000c111f, 0x000d111e, 0x000f1422, 0x00111523, 0x00131623, 0x00131721, 0x00121722, 0x00131823, 0x00151923, 0x00151923,
- 0x000e191a, 0x000f191a, 0x000d191a, 0x000d191a, 0x000d1c1b, 0x000e1b19, 0x000f1b17, 0x00111b17, 0x00737777, 0x00e7e8e8, 0x00fdfdfd, 0x00fcfcfc, 0x00fcfbfb, 0x00fcfdfd, 0x00c5c6c7, 0x004e4e4f,
- 0x00090706, 0x00080708, 0x000f0f0f, 0x000c0d0c, 0x000a0909, 0x000f0c09, 0x00140f09, 0x0017120e, 0x00201916, 0x00211c17, 0x00150e09, 0x00140f09, 0x0017100b, 0x00130f09, 0x0018110b, 0x001b150f,
- 0x0044331a, 0x006a543b, 0x0060432b, 0x0065472f, 0x00af9a8f, 0x00d7cecf, 0x00b7b9c5, 0x00acb4c9, 0x00bdc5dc, 0x009aa1b5, 0x006c718d, 0x00556186, 0x0042435b, 0x004f4f5f, 0x00908992, 0x00b2adb2,
- 0x009c9ba2, 0x00898490, 0x007b6b77, 0x0060454c, 0x006f424b, 0x00564a61, 0x0036365a, 0x00383660, 0x0052527d, 0x0067688c, 0x00797c98, 0x009096ab, 0x00616c83, 0x00182544, 0x00020c34, 0x00000537,
- 0x001e0409, 0x00480d0c, 0x0076282c, 0x009c4f54, 0x00937d9c, 0x0098a4bc, 0x0090abbf, 0x007e9a9e, 0x0052687b, 0x002a4873, 0x001f4073, 0x00284d74, 0x00506479, 0x00828b92, 0x00a7a49f, 0x008e8979,
- 0x0083816b, 0x00928e77, 0x009e977f, 0x00a99e82, 0x00a59370, 0x008c7b5c, 0x004f4225, 0x002d2105, 0x0047402e, 0x00827d71, 0x00bebbb3, 0x00edede8, 0x00fdfdfc, 0x00fdfdfc, 0x00ffffff, 0x00fefdfd,
- 0x00d8e6e7, 0x009ba9ac, 0x00647677, 0x00627678, 0x005f787b, 0x005e787a, 0x005e7a7a, 0x00607b7c, 0x005f757c, 0x0060747a, 0x005d7379, 0x00597174, 0x00587071, 0x00586e72, 0x00566b73, 0x00536770,
- 0x00465b64, 0x00405360, 0x003c4c5c, 0x00374758, 0x002a3a4b, 0x001f3040, 0x001b2c3b, 0x00213242, 0x00283949, 0x002a3e4e, 0x00344958, 0x003c4e59, 0x0057656c, 0x009ba5a8, 0x00dde3e5, 0x00edf3f5,
- 0x00f4f4ea, 0x00e8e9e5, 0x00d9dadd, 0x00d0d0db, 0x00c2c2d1, 0x00c7c6d3, 0x00d0cbd6, 0x00c4bdc3, 0x00c1b4a8, 0x00cbbbab, 0x00d9bfa6, 0x00edc397, 0x00e5c37e, 0x00cdaf74, 0x007e643c, 0x003e291a,
- 0x004a3b33, 0x007e735b, 0x00817b5b, 0x00484425, 0x00150b0c, 0x00170f0f, 0x00292524, 0x001a171e, 0x00282c34, 0x004c4c4e, 0x00493e3a, 0x004b3727, 0x00563118, 0x00553317, 0x00593619, 0x0054361b,
- 0x00553c26, 0x005d442a, 0x00614626, 0x005b3d19, 0x0061461c, 0x00756039, 0x005f4e2f, 0x00574738, 0x0069626a, 0x007a7586, 0x005e5b70, 0x00272b3f, 0x00070716, 0x0002040e, 0x0016141b, 0x003c3835,
- 0x00494037, 0x0045382b, 0x00443526, 0x00463520, 0x0043301a, 0x003e2910, 0x00412d16, 0x00423016, 0x00413214, 0x003e3417, 0x0039341e, 0x002a2c1d, 0x00262837, 0x001f2240, 0x00141646, 0x000d0e4a,
- 0x00000f37, 0x00000d3b, 0x000b1b53, 0x001a2b69, 0x00263b7a, 0x00344c83, 0x00486491, 0x003e5c7c, 0x0025474e, 0x00254644, 0x00234242, 0x001d3e44, 0x001d3d45, 0x001c3c42, 0x001c3a42, 0x001b3941,
- 0x001b3741, 0x001a353f, 0x001a343e, 0x0019333c, 0x0018313c, 0x00153039, 0x00122f36, 0x00112e35, 0x00102b31, 0x000e292f, 0x000d262e, 0x000e252d, 0x000d242d, 0x000d222c, 0x000e212c, 0x000d222c,
- 0x00cfc3b0, 0x00978575, 0x00f8ede3, 0x00fefefa, 0x00fbfcfe, 0x00fcfefc, 0x00fcfdfd, 0x00cbc9c8, 0x00473d36, 0x00221409, 0x00321e11, 0x003a2112, 0x004c301f, 0x00583925, 0x0063402a, 0x00664129,
- 0x00653f27, 0x00643e27, 0x00623f28, 0x00614129, 0x00634230, 0x00694831, 0x00725235, 0x00795a3a, 0x0083633d, 0x008a6b40, 0x00917444, 0x00967a48, 0x00a08350, 0x00a78957, 0x00a98c5a, 0x00a98b5b,
- 0x009a8258, 0x00957d56, 0x00907955, 0x008b7556, 0x00856d58, 0x007e6253, 0x0076574c, 0x00704e46, 0x006f4643, 0x006e423d, 0x00663d38, 0x00583733, 0x004f3330, 0x004b3131, 0x00452f2f, 0x00402c29,
- 0x003d2b27, 0x003e2a25, 0x00402b24, 0x00422d22, 0x00452e20, 0x00483021, 0x00493223, 0x00482f22, 0x00442e23, 0x003f2b22, 0x003a2822, 0x00342622, 0x00302524, 0x002d2524, 0x002c2526, 0x002c2626,
- 0x00302725, 0x002f2827, 0x002c2728, 0x00282427, 0x00232125, 0x001f1e21, 0x001d1a1b, 0x001b1616, 0x001b1412, 0x00211a12, 0x00351f17, 0x00522015, 0x00682a16, 0x007d3113, 0x00913812, 0x00a03d0d,
- 0x00ae3f0d, 0x00af3e10, 0x00a83b10, 0x009c340e, 0x008f2b0c, 0x0079260a, 0x00601f06, 0x004b1a0b, 0x00301a17, 0x00201613, 0x001b1714, 0x001f1c19, 0x00342e29, 0x00857f80, 0x00f2ecf1, 0x00faf7fd,
- 0x00f8f6f2, 0x00f3f1ef, 0x00efecec, 0x00eae7e6, 0x00e2ddde, 0x00d3ced2, 0x007a747b, 0x00403a41, 0x00362b37, 0x00433945, 0x009b9199, 0x009d9093, 0x00aea2a6, 0x00d5cace, 0x00efe7ea, 0x00ece5e8,
- 0x00f5f3f4, 0x00fefdfd, 0x00fefefd, 0x00feffff, 0x00fbfefe, 0x00f2ebe6, 0x00c0b5b1, 0x00ada7a8, 0x00c9cdd8, 0x00b5b7c0, 0x00a0a0a4, 0x00bfbaba, 0x00dad3d1, 0x00c4c2c1, 0x00b2b6bb, 0x00bec9d4,
- 0x00d6d3e4, 0x00d4d2e0, 0x00d6d7e3, 0x00d7dbe2, 0x00d9dbe3, 0x00d5d6da, 0x00e3e3e5, 0x00d6d3d5, 0x00baabad, 0x00aa9c9c, 0x00ad9fa0, 0x00cbc3cd, 0x00d7d1d7, 0x00cdccd1, 0x00939398, 0x0068696f,
- 0x0079757c, 0x00756d72, 0x00675a60, 0x00402a31, 0x00422630, 0x00474c58, 0x006a7d93, 0x009eabd0, 0x00c4c3e7, 0x00cbc4e1, 0x00cab8c9, 0x00beaba1, 0x00e5e2d5, 0x00a8b7c2, 0x002f4f70, 0x00083972,
- 0x00284e4c, 0x00325854, 0x0024443f, 0x001b3531, 0x003e4e48, 0x005f645e, 0x00716b64, 0x0075655a, 0x007c6350, 0x00796047, 0x003b2820, 0x000f1025, 0x00080b21, 0x001b1e30, 0x003b3843, 0x004b4144,
- 0x00593e34, 0x00492d1e, 0x00563d2e, 0x00726253, 0x006f6a67, 0x0047566f, 0x00465c82, 0x00647296, 0x00928ead, 0x00a8a2bb, 0x00bcbbca, 0x00b4babf, 0x00b8c2c2, 0x00d4dbda, 0x00b4b7b7, 0x00676263,
- 0x00645e77, 0x009f98b0, 0x00aaa1ba, 0x008e849f, 0x0079708b, 0x00645c76, 0x00737287, 0x00949aaa, 0x009fb4b9, 0x0085a0a1, 0x009db1bc, 0x00a3a5c8, 0x006b6887, 0x008e86a0, 0x00c0b4ca, 0x00b5a9b4,
- 0x00b5a4a8, 0x00af9fa1, 0x00ab9d9a, 0x00aa9e99, 0x00b3a6a1, 0x00b7aba9, 0x00b0a8a7, 0x009a9293, 0x00554e58, 0x00575460, 0x009e9ba9, 0x00aba8b5, 0x00d1cdd6, 0x00ded8de, 0x00d4cfcf, 0x00d9d5d2,
- 0x00d9d6dc, 0x00cfccd2, 0x00c4c1c7, 0x00b9b7bc, 0x00b3aeb5, 0x00a9a5ab, 0x00b2afb5, 0x00c7c3c9, 0x00d4d2d6, 0x00d3cfd3, 0x00d3d1d6, 0x00c0bfc2, 0x00a8a7ac, 0x00acabaf, 0x00b3b2b8, 0x00b7b4b9,
- 0x00c4c2c6, 0x00d4d2d5, 0x00d8d6da, 0x00dddde0, 0x00fbfbfc, 0x00fcfffc, 0x00fefefb, 0x00fdfdfa, 0x00f9fcfd, 0x00bdc0c3, 0x005f6166, 0x00878891, 0x00bdbdcd, 0x00d2d1e4, 0x00d8d7ea, 0x00d0cee3,
- 0x00d7cfd4, 0x00e6e0e5, 0x00efecf2, 0x00f2f3fa, 0x00edf0fc, 0x00e0e4f2, 0x00dbdfed, 0x00e0e3f1, 0x00eceffa, 0x00f3f2fc, 0x00e7f2fa, 0x00ddf6f7, 0x00f0e7f9, 0x00eaebf9, 0x00eae9f2, 0x00eee0e1,
- 0x00f19da0, 0x00da746a, 0x00f58b78, 0x00e78466, 0x00f06a5d, 0x00df7d77, 0x00e3a6a6, 0x00ebd9dd, 0x00cee4f2, 0x00d6e2fb, 0x00dbdbfd, 0x00e2d9fa, 0x00d7e2f3, 0x00d0dfed, 0x00d2deed, 0x00b7b9ca,
- 0x005a625b, 0x003d443b, 0x00393b2f, 0x00353526, 0x003a3624, 0x00393621, 0x003c3721, 0x003c3820, 0x003b3b27, 0x00393c26, 0x00393a27, 0x003b3925, 0x003b3825, 0x003b3823, 0x003a3724, 0x00393723,
- 0x00383620, 0x00383522, 0x00373621, 0x00373621, 0x00393623, 0x003b382b, 0x003e3c2f, 0x00413f31, 0x00404031, 0x003c3d2d, 0x003c3d2c, 0x003f4132, 0x0045473f, 0x00464844, 0x00424442, 0x003d3f3f,
- 0x0037343a, 0x002d2b2f, 0x007b7a7d, 0x00e9e9ea, 0x00fffeff, 0x00fffefe, 0x00fafbfa, 0x00fefefd, 0x00c7c8c4, 0x00585a55, 0x002a2c2b, 0x0052565b, 0x008b9093, 0x0095999c, 0x0096999d, 0x0095989e,
- 0x008f9297, 0x007c7f84, 0x0071767a, 0x00787c80, 0x00a5a9ad, 0x00bbc3c4, 0x00c0cacc, 0x00bbc4c9, 0x00aab3bd, 0x00a9b2bd, 0x00b7bfca, 0x00b4bdc6, 0x00b1b9c3, 0x00aeb6bc, 0x00adb5b8, 0x00a2aaac,
- 0x009c9fa5, 0x00909599, 0x008a9093, 0x008e9193, 0x008b8c8c, 0x00878886, 0x00989996, 0x00a7a7a3, 0x0072726c, 0x00383832, 0x002b271f, 0x002f2b23, 0x00322c2a, 0x003b2b29, 0x004b302a, 0x0064372a,
- 0x007d391d, 0x00893b1b, 0x008e3e1a, 0x008d3d1a, 0x00833d22, 0x006a3f2f, 0x00523a30, 0x0046312b, 0x00362d2e, 0x00322f33, 0x00313137, 0x00333539, 0x003b3736, 0x00413630, 0x0048372d, 0x004e3b2e,
- 0x0056402e, 0x005b4635, 0x005f4c3e, 0x005b4b43, 0x004f4444, 0x00453f42, 0x00646268, 0x009b9ca5, 0x00bec5cd, 0x00b2bcc3, 0x00a6afb7, 0x00acb1ba, 0x00b6bbc5, 0x00bac0c8, 0x00acb2ba, 0x00979ea6,
- 0x009499a3, 0x00979ba4, 0x00979da5, 0x00949ca4, 0x009499a2, 0x0094969c, 0x0093969a, 0x00909399, 0x008e9093, 0x00898c8f, 0x0088898e, 0x0086888d, 0x00818389, 0x007e8086, 0x007e8086, 0x007e7f85,
- 0x00898b8e, 0x0097999d, 0x00a4a7aa, 0x00a7aaab, 0x00a8abae, 0x00a7a9ad, 0x00a9aaad, 0x00abadae, 0x00adaeb3, 0x00b2b5b6, 0x00b8bdc1, 0x00bdc5cc, 0x00c5cfd6, 0x00cbd4da, 0x00cfd7df, 0x00d2d9e2,
- 0x00ccd6dc, 0x00cbd6dc, 0x00cdd6de, 0x00ccd4db, 0x00c9d2da, 0x00ccd7e2, 0x00d5e0ec, 0x00dfe7f5, 0x00e1e9f5, 0x00d9e3ee, 0x00d6e0ea, 0x00d9e3eb, 0x00e7eef6, 0x00f1f6fc, 0x00f3f6fd, 0x00edf0f6,
- 0x00f7eaf1, 0x00e5d9df, 0x00d2c7cb, 0x00e7dfe1, 0x00fdfaf9, 0x00fefdfa, 0x00fbf9f5, 0x00fbfdf8, 0x00e4e7e1, 0x0093958f, 0x0043443c, 0x0035352a, 0x0024231c, 0x00171512, 0x000a070a, 0x00040107,
- 0x00050109, 0x0005010a, 0x00050109, 0x00050107, 0x00060009, 0x00060009, 0x00070008, 0x00070007, 0x00060106, 0x00060006, 0x00060007, 0x00080208, 0x00080109, 0x00080209, 0x0008020a, 0x0009020b,
- 0x001a2246, 0x003d4374, 0x00363d7c, 0x00272f7b, 0x001d2377, 0x00222977, 0x00242e74, 0x00283170, 0x002b3072, 0x00272a6e, 0x0023246a, 0x001c1f65, 0x001b166c, 0x00181955, 0x00171c4a, 0x00151e49,
- 0x001f227c, 0x00514d8b, 0x009e90a3, 0x00bba37b, 0x00ca9e5d, 0x00bf985b, 0x00b79357, 0x00b58f54, 0x00b6945c, 0x00b99660, 0x00c09b69, 0x00b99365, 0x00ae875e, 0x00aa845c, 0x00a07852, 0x00916843,
- 0x00825e3b, 0x00835f3a, 0x0087633c, 0x008d6a40, 0x00967446, 0x009d7d4d, 0x009a7a4c, 0x00927348, 0x00866a3f, 0x008c6d49, 0x00a08863, 0x00beb38d, 0x00968a7f, 0x002f242e, 0x000f051d, 0x0010072c,
- 0x000e0a31, 0x000d0a2c, 0x000d092b, 0x000e092d, 0x00110830, 0x00110c2b, 0x00100e29, 0x00110e2a, 0x000d0d2a, 0x000d0c2a, 0x000e0d2a, 0x000f0d2c, 0x00100d2f, 0x00100c30, 0x00110d30, 0x00130e32,
- 0x000f0c35, 0x000e0b34, 0x000e0b33, 0x000f0c32, 0x00100d30, 0x000e0b2c, 0x000d0a29, 0x000e0c2a, 0x000c0c26, 0x000c0d26, 0x000c0e22, 0x000a0e1c, 0x000a0e1e, 0x00090e1d, 0x00090d1b, 0x00080d1b,
- 0x000d101f, 0x000e111f, 0x000d1221, 0x000e1322, 0x00101322, 0x0010141f, 0x000e151d, 0x000f161d, 0x00121820, 0x00131920, 0x00141a1f, 0x00141a1f, 0x00151a22, 0x00161b23, 0x00171c23, 0x00171c24,
- 0x00141f1f, 0x00131e1d, 0x00121e1c, 0x00111f1b, 0x0013231e, 0x00111f1a, 0x0014201c, 0x00111a16, 0x00606464, 0x00d7dada, 0x00fbfdfc, 0x00fcfdfd, 0x00fefcfd, 0x00fdfcfd, 0x00d8d9d9, 0x00666667,
- 0x000a0806, 0x00020102, 0x000a090b, 0x000e0e0e, 0x00171716, 0x00161514, 0x00191516, 0x00191315, 0x00201817, 0x00211916, 0x001e1410, 0x001b120a, 0x001c1107, 0x001e1308, 0x002c2115, 0x00372c1f,
- 0x005f5336, 0x006c5c3f, 0x004f391c, 0x00755c41, 0x00d3c2b5, 0x00f2ecea, 0x00d9dce1, 0x00d8e0eb, 0x00eaf2fa, 0x00e4e8eb, 0x00cfd2db, 0x00ccd0e5, 0x00c3c6d3, 0x00c8c9d2, 0x00e5e6ea, 0x00f1f2f2,
- 0x00f1ecf3, 0x00ebe2e8, 0x00d4b5b9, 0x00a57472, 0x00aa5f5a, 0x00866981, 0x005f5881, 0x004a497a, 0x0051548f, 0x006973a6, 0x008495c0, 0x008399b8, 0x00556b84, 0x00283b56, 0x00061334, 0x0000042d,
- 0x00242a2f, 0x005d4e4f, 0x00977d78, 0x00cfb0ad, 0x00e9dee3, 0x00e0dfe7, 0x00dddfe6, 0x00dad7dd, 0x00b7adc4, 0x008c85a6, 0x005e658c, 0x0041607e, 0x00485663, 0x00646666, 0x00827a6f, 0x007f7460,
- 0x008c8469, 0x009c957c, 0x00a59c84, 0x00a4967c, 0x00978063, 0x00826c4e, 0x00544126, 0x00322209, 0x003a2f1b, 0x006e6558, 0x00aea9a0, 0x00e0dfda, 0x00fffffe, 0x00fdfdfd, 0x00fefefe, 0x00fefefc,
- 0x00ebf5f5, 0x00b8c4c3, 0x006d7c7a, 0x00667876, 0x00687e7f, 0x00647a7d, 0x00667d7e, 0x00657b7d, 0x0065767c, 0x00637379, 0x00607276, 0x005c7273, 0x005c7070, 0x005b6f72, 0x00586c74, 0x00546871,
- 0x004f606a, 0x00455662, 0x003e4f5d, 0x00374857, 0x002b3c4e, 0x00213243, 0x001c2c3c, 0x00223243, 0x00263847, 0x00273a48, 0x00354653, 0x0037454f, 0x007b858b, 0x00dde1e4, 0x00fcfcfd, 0x00f9f8f9,
- 0x00f5f1ea, 0x00eae9e6, 0x00dfe0e2, 0x00d3d3df, 0x00c2c2d4, 0x00bab8c9, 0x00bfb9c2, 0x00bab0b0, 0x00bbad95, 0x00cebc9e, 0x00e6caa4, 0x00edc299, 0x00dfbe7c, 0x00ae955e, 0x0056411e, 0x0034251d,
- 0x005f5559, 0x00878171, 0x00545235, 0x00343012, 0x00221519, 0x0024191d, 0x002c282a, 0x00131118, 0x00454651, 0x0079757b, 0x005a4d4a, 0x004a3325, 0x004a2913, 0x00492913, 0x00472b18, 0x003e291c,
- 0x00352015, 0x00422f1c, 0x00654e33, 0x005a401e, 0x00593f19, 0x007d6643, 0x00665436, 0x00463925, 0x0059534e, 0x00696668, 0x00797b84, 0x003e4656, 0x00040511, 0x00121419, 0x00110f13, 0x0023201b,
- 0x00484131, 0x00453b29, 0x003f3221, 0x00412f1d, 0x0044311e, 0x00433319, 0x003d3114, 0x003e3115, 0x003d361f, 0x00322e1d, 0x001e1c17, 0x0012161c, 0x00191d3f, 0x00191f4f, 0x00111755, 0x000d1257,
- 0x0002123a, 0x00000f3c, 0x000c1951, 0x001d2a6b, 0x002a3a7f, 0x00334684, 0x00475d92, 0x003f587e, 0x0023444d, 0x001e3f3e, 0x001e3e3c, 0x001c3b3f, 0x001b3940, 0x001a3741, 0x001b3641, 0x0019333d,
- 0x001d353e, 0x001b333d, 0x001a313a, 0x00172f37, 0x00142c37, 0x00122b35, 0x00102a31, 0x000e292f, 0x000c242b, 0x000a222a, 0x000a2028, 0x000b2029, 0x000c212a, 0x000d202a, 0x000e1f29, 0x000d1f29,
- 0x00cebcad, 0x008b7468, 0x00f2e4db, 0x00fdfcf8, 0x00fafefe, 0x00fafdfd, 0x00f6fbfb, 0x00d6d5d3, 0x005b4e45, 0x002b190e, 0x00381f11, 0x00412515, 0x004f2f1f, 0x005a3926, 0x00633f29, 0x00664128,
- 0x006a4229, 0x006a412a, 0x0068412a, 0x0066432a, 0x00664230, 0x00694630, 0x00714f34, 0x00775638, 0x00835f3e, 0x0087653d, 0x008c6e3f, 0x00907542, 0x009a7b48, 0x00a0814d, 0x00a28651, 0x00a38652,
- 0x009c7c58, 0x00967956, 0x008d7452, 0x00877153, 0x007d6751, 0x00745e4e, 0x006a5145, 0x00644a42, 0x00664343, 0x00613e3c, 0x005a3938, 0x004f3534, 0x00452f2f, 0x00422d2f, 0x003c2a2d, 0x00372928,
- 0x003a2726, 0x003d2926, 0x00412e26, 0x00453224, 0x004a3322, 0x004e3422, 0x004e3523, 0x004e3323, 0x004c3429, 0x00453026, 0x003f2d25, 0x003a2b25, 0x00332825, 0x00302827, 0x002f292a, 0x002e2a2b,
- 0x00342729, 0x0033292a, 0x0031292b, 0x002b2629, 0x00262427, 0x00222124, 0x001f1e1d, 0x001d1a17, 0x00201615, 0x00241b14, 0x00341f18, 0x004f2116, 0x00632915, 0x00773012, 0x008b3711, 0x009c3b0c,
- 0x00ac3e0f, 0x00ad3e12, 0x00a83b11, 0x009c360e, 0x008f2d0b, 0x007b2609, 0x00662207, 0x00511c0b, 0x00331b17, 0x00241615, 0x001b1313, 0x00231f1e, 0x002d2623, 0x005b5354, 0x00d0cacd, 0x00f9f8fb,
- 0x00f5f3f2, 0x00eeecec, 0x00e8e5e5, 0x00e1dedc, 0x00d9d4d3, 0x00c7c1c0, 0x00968e8d, 0x006e6662, 0x00635658, 0x00736869, 0x009f9496, 0x00a09495, 0x00bab0b4, 0x00e2d8dd, 0x00ece4e8, 0x00ebe4e5,
- 0x00f7f3f6, 0x00fefcfe, 0x00fefdfe, 0x00fefefd, 0x00fafdfd, 0x00f9f0e9, 0x00b5a69a, 0x00948e7d, 0x00c8cdb7, 0x00b7baad, 0x00989896, 0x00bdb8c4, 0x00dad3ea, 0x00cacadc, 0x00a3adb7, 0x0098acb1,
- 0x00c3c3da, 0x00c1c3d5, 0x00c3cad5, 0x00cbd4d6, 0x00d6dada, 0x00d5d5d0, 0x00c6c2bc, 0x00b8b1aa, 0x00ab9795, 0x009b8683, 0x009b858d, 0x00a38fad, 0x00b5a8c0, 0x00d0ccd8, 0x00858a8f, 0x004a5356,
- 0x00444a54, 0x004c4d5a, 0x00787488, 0x005a516c, 0x0037284b, 0x003b4666, 0x003c537a, 0x00455e90, 0x005569a8, 0x006375a3, 0x00818da1, 0x00a1aaa4, 0x00d8e1d8, 0x009ea8be, 0x00273766, 0x001d3081,
- 0x003f515d, 0x00526569, 0x00495852, 0x004e584e, 0x007e8376, 0x00949389, 0x00989487, 0x009d9683, 0x00a3957b, 0x00928660, 0x004f4430, 0x002e283b, 0x00393748, 0x0054505f, 0x00443d47, 0x00473a3b,
- 0x004d312b, 0x00462a1f, 0x005e493f, 0x007e756e, 0x007d8084, 0x006e7a84, 0x008b99a6, 0x00b9c1d0, 0x00dedaee, 0x00e0e0f0, 0x00dbdfea, 0x00d7dfe3, 0x00e2e8e6, 0x00e8e6e0, 0x00b5aaa0, 0x00957b71,
- 0x00849696, 0x009bacaa, 0x0097a2a5, 0x0092959f, 0x00898696, 0x006c667a, 0x00615e72, 0x009196a5, 0x007e8a98, 0x004c5c66, 0x0097a6b2, 0x00b1bad4, 0x007d8296, 0x00aeb0bd, 0x00d8d6df, 0x00cdc9ca,
- 0x00cabcbf, 0x00c4b6b7, 0x00c1b6b0, 0x00cbc3ba, 0x00d7ccc4, 0x00c8bebb, 0x00b5b1af, 0x00979695, 0x00565560, 0x00676675, 0x00afb4c2, 0x00a7abb9, 0x00b3b2bc, 0x00d2ced6, 0x00ddd9da, 0x00e4dfdc,
- 0x00e9e2ea, 0x00ded7df, 0x00ccc8cf, 0x00bebcc2, 0x00adaab0, 0x00aeabb0, 0x00b3b2b7, 0x00bfbdc2, 0x00cdc7cf, 0x00cec8ce, 0x00cecbd0, 0x00b1b2b2, 0x00939295, 0x009d9e9e, 0x00a7aaa9, 0x00a7a9a8,
- 0x00bebbbf, 0x00d6d3d7, 0x00d7d4d8, 0x00dbdbde, 0x00fbfbfc, 0x00fcfffc, 0x00fefffb, 0x00fcfefa, 0x00fbfcfd, 0x00bfc0c4, 0x00626368, 0x00898a94, 0x00b2b2c2, 0x00b0b0c3, 0x00b5b5c7, 0x00bcbdd0,
- 0x00d4cbd3, 0x00e6e0e6, 0x00f5f2f8, 0x00f5f7fc, 0x00e4e9f7, 0x00d5dbea, 0x00d6dbe9, 0x00e0e4f2, 0x00f4f3ff, 0x00f6f2fd, 0x00ebf0f9, 0x00dfeff2, 0x00f5e8fb, 0x00e8eefc, 0x00ddecf4, 0x00e7f3f1,
- 0x00f0b0b4, 0x00bf6e67, 0x00df8779, 0x00db846e, 0x00d7544f, 0x00cc6661, 0x00dd9c97, 0x00e8dbd7, 0x00cae6f2, 0x00cfdff7, 0x00d4d7f6, 0x00dbd4f3, 0x00d0dae9, 0x00d1e1ed, 0x00d2e2ed, 0x00a9b1be,
- 0x00515551, 0x00373c35, 0x0034372b, 0x00333424, 0x003b3826, 0x003a3722, 0x003b371f, 0x003b391f, 0x003d3b27, 0x003a3b26, 0x003a3926, 0x003a3824, 0x003b3825, 0x003a3823, 0x00393724, 0x00373723,
- 0x003a3623, 0x003a3525, 0x00373623, 0x00363521, 0x00393624, 0x003c3a2b, 0x003e3e2e, 0x003f402e, 0x00404034, 0x003c3d30, 0x003c3e2f, 0x00434638, 0x00464942, 0x00434844, 0x003b413e, 0x00363b3a,
- 0x0038353d, 0x00302d34, 0x007d7c80, 0x00e8e8ea, 0x00fffcff, 0x00fffcfd, 0x00fafaf9, 0x00fefdfd, 0x00c8c8c6, 0x005a5a56, 0x00292b29, 0x00505559, 0x00878c90, 0x0092979b, 0x0092979a, 0x00919799,
- 0x00909197, 0x007f8186, 0x0073787c, 0x0083888c, 0x00b2b8bb, 0x00bfc8c9, 0x00c1cbcd, 0x00a3acb0, 0x005f6672, 0x00717885, 0x00b4bcc8, 0x00bcc7d1, 0x00bac3ce, 0x00b6c1c9, 0x00bac7ca, 0x00bcc8ca,
- 0x00c8c5d3, 0x00bebeca, 0x00a5a8b1, 0x00979a9f, 0x0086898b, 0x00838786, 0x00a1a4a1, 0x008c8e8a, 0x00423f39, 0x0028241f, 0x002a2322, 0x00292727, 0x0029282a, 0x00302728, 0x003b2928, 0x004f2e23,
- 0x0073321e, 0x007f341a, 0x00843916, 0x00863a18, 0x007e3c1f, 0x00663d2d, 0x00523a2e, 0x0048332c, 0x003d3037, 0x0038343b, 0x0038383f, 0x00393a3f, 0x00423e3d, 0x00493e38, 0x00514032, 0x00544330,
- 0x00614436, 0x0062483a, 0x00634e41, 0x005f4e47, 0x00574a4d, 0x00575057, 0x008c8c95, 0x00b4b7c4, 0x00b7b9cb, 0x00adb5c2, 0x00b0b8c3, 0x00bbc2c8, 0x00bac1c8, 0x00a7aeb5, 0x0090989f, 0x008a939a,
- 0x009396a4, 0x00989ba7, 0x00989ea7, 0x00949da5, 0x009398a1, 0x0094969a, 0x00939696, 0x008e9295, 0x008d8c92, 0x0087878c, 0x00818387, 0x007a7d81, 0x00737579, 0x0074757a, 0x00797a7f, 0x007a7c81,
- 0x00818082, 0x008d8e91, 0x009d9fa0, 0x00a3a5a5, 0x00a5a5a8, 0x00a3a3a7, 0x00a4a6a7, 0x00a8aaaa, 0x00aeabb1, 0x00b1b0b4, 0x00b6b9bd, 0x00bbc2ca, 0x00c1cbd3, 0x00c3ced3, 0x00c9d4d9, 0x00d2dde4,
- 0x00d7e0e8, 0x00d4dbe4, 0x00ced6de, 0x00cdd6dd, 0x00ced6df, 0x00c9d5e0, 0x00c8d7e2, 0x00ced8e6, 0x00dce2f0, 0x00e1e7f5, 0x00e2e9f3, 0x00dfe5ef, 0x00dfe5ee, 0x00e5ebf1, 0x00edf6fb, 0x00eefafb,
- 0x00fbf7fa, 0x00f0ecee, 0x00dcd7d9, 0x00e3e2e2, 0x00fffefd, 0x00fdfffc, 0x00fffdfb, 0x00fafcf8, 0x00f0efec, 0x00a8a6a4, 0x0043423c, 0x002f3024, 0x001d1d17, 0x0011100d, 0x00090708, 0x00030106,
- 0x0007000b, 0x0006000c, 0x0006000b, 0x00050109, 0x00050109, 0x00060108, 0x00060006, 0x00060005, 0x0009010a, 0x0009010a, 0x00070008, 0x00080109, 0x00070108, 0x00070208, 0x00060107, 0x00070308,
- 0x00202045, 0x003c3b6b, 0x00333471, 0x00262972, 0x001b1d6d, 0x001b206a, 0x00192161, 0x00171f57, 0x001d1a59, 0x00191758, 0x00171558, 0x00141557, 0x00150f5c, 0x00121444, 0x0013193c, 0x00141b40,
- 0x001e1c80, 0x00463e87, 0x0082728f, 0x00aa9172, 0x00d1a467, 0x00c39c62, 0x00af8c52, 0x00ac894f, 0x00ae8a58, 0x00ac8756, 0x00b08b5c, 0x00aa8459, 0x009f7951, 0x0099724d, 0x008e6644, 0x00845c3a,
- 0x007e5738, 0x00815b39, 0x008d6843, 0x0099754d, 0x00a58256, 0x00a58557, 0x009c7f51, 0x00917649, 0x00886840, 0x008a6946, 0x009c855c, 0x00cbc295, 0x00bcb29d, 0x004a4041, 0x00060010, 0x00110d2c,
- 0x00110933, 0x00100a2f, 0x000e092c, 0x000f092e, 0x00110730, 0x00110b2c, 0x000f0d27, 0x000f0e27, 0x00100b2c, 0x000e0a2b, 0x000d0a29, 0x000e0b2a, 0x00100b2e, 0x00100b2d, 0x000f0b2c, 0x000e0c2c,
- 0x000f0b30, 0x000e0a2f, 0x000d0a2d, 0x000d0b2c, 0x000d0b2a, 0x000a0926, 0x00080822, 0x00090a23, 0x000c0822, 0x000c0a21, 0x000b0c1f, 0x000a0f1b, 0x000a111d, 0x0009101b, 0x0009101a, 0x000b121b,
- 0x000d111e, 0x000e131e, 0x000d141e, 0x000c141e, 0x0011151e, 0x0012171c, 0x0011191b, 0x00111a1b, 0x00181b1f, 0x00171c20, 0x00161c1f, 0x00161d1f, 0x00171e23, 0x00181f23, 0x00182122, 0x00182223,
- 0x00192220, 0x0019221f, 0x0016221d, 0x0017241e, 0x0016261e, 0x0015241d, 0x001a2821, 0x0017231d, 0x004e5052, 0x00c1c2c4, 0x00fcfeff, 0x00fcfdfd, 0x00fffdfe, 0x00f9f8f8, 0x00e7eae8, 0x008a8d8b,
- 0x00252325, 0x00252426, 0x002b2b2d, 0x00272727, 0x001a1a1b, 0x00242528, 0x00312f34, 0x00342e34, 0x00241e20, 0x001d1411, 0x001b120b, 0x001b0e04, 0x0028180a, 0x00382615, 0x0051402c, 0x0068553d,
- 0x006f6350, 0x004f422e, 0x00665843, 0x00a79583, 0x00d4c7c3, 0x00d4d0d5, 0x00c1c6ce, 0x00ced9e3, 0x00e0e1ea, 0x00ede8ea, 0x00d9d5d4, 0x00e1dce3, 0x00f2f3f6, 0x00eef0f2, 0x00e1e9e6, 0x00dce6e4,
- 0x00e9e7f0, 0x00f5e4e5, 0x00d6a9a2, 0x00a7614e, 0x00b2462b, 0x00835058, 0x00584c66, 0x004c496d, 0x004b5591, 0x00556ca4, 0x006787be, 0x007297c6, 0x007a98be, 0x006d85a6, 0x00475577, 0x004c557a,
- 0x0099a1ab, 0x00a0b4be, 0x009eb9bb, 0x00c2dad6, 0x00e6e1d1, 0x00e3d4c7, 0x00e2cfc7, 0x00e8d8dc, 0x00f0e1f1, 0x00e2d5dd, 0x00c1c0cd, 0x009db2c1, 0x00878c8d, 0x00756d62, 0x00746650, 0x0088795b,
- 0x00a29078, 0x00b1a38c, 0x00a39781, 0x00908168, 0x00887055, 0x00806949, 0x00665233, 0x00513e22, 0x004e402c, 0x00675b4f, 0x00938c82, 0x00c8c5bf, 0x00fdfbfa, 0x00fefdfd, 0x00fdfefd, 0x00fcfdfb,
- 0x00f3fafd, 0x00cfd8da, 0x00788684, 0x00637471, 0x00667b7a, 0x00647979, 0x00677c7a, 0x00657878, 0x0067757c, 0x00636f78, 0x00606e73, 0x005d6f6f, 0x005d6e6e, 0x005c6e6f, 0x005a6e70, 0x00566a6f,
- 0x00556370, 0x00495967, 0x00405260, 0x003a4c5a, 0x002f4051, 0x00243545, 0x001b2c3a, 0x001d2f3e, 0x00273748, 0x002a3948, 0x002d3a46, 0x00343f47, 0x008f969a, 0x00edf0ef, 0x00fbf8f5, 0x00f7f0eb,
- 0x00ede4e0, 0x00f0eaea, 0x00f2eff4, 0x00e5e5f4, 0x00d0d0e5, 0x00c0bfd0, 0x00b8b3b7, 0x00b9b2a7, 0x00d1bf99, 0x00dfc798, 0x00e9cb98, 0x00edc39b, 0x00d2b57a, 0x00867442, 0x0034260c, 0x003b3036,
- 0x00817789, 0x009c9590, 0x005c5740, 0x004d4428, 0x00432f31, 0x003b2a29, 0x00352e28, 0x00302e29, 0x00343233, 0x00302a27, 0x0023180c, 0x00321e0c, 0x0039200d, 0x00483022, 0x0047362a, 0x003a312c,
- 0x00382f2b, 0x00524940, 0x00726756, 0x0061523d, 0x003a270f, 0x00533e27, 0x00705e43, 0x004a3f26, 0x00413c2e, 0x00656559, 0x00868e87, 0x0046535e, 0x000c1217, 0x003b4140, 0x00292e27, 0x0017190c,
- 0x003f3a2c, 0x00453c2d, 0x003d3221, 0x00413122, 0x0047382a, 0x00453a2c, 0x00444034, 0x003e3932, 0x0028242a, 0x0013111d, 0x0005061b, 0x00060a27, 0x00151b46, 0x00161f51, 0x00101c50, 0x000d1a4d,
- 0x00091544, 0x00071145, 0x000f1856, 0x00212972, 0x002a3684, 0x002b3984, 0x00394c8d, 0x003c5284, 0x0026405b, 0x001a3848, 0x00173540, 0x0017343e, 0x0018333c, 0x0017313c, 0x0015303b, 0x00143037,
- 0x001b2f3b, 0x00182e3a, 0x00172c36, 0x00142932, 0x00102731, 0x0010272f, 0x000f262a, 0x000d2528, 0x000d222b, 0x000c2029, 0x000a1e27, 0x000a1e27, 0x000d1e28, 0x000e1e28, 0x000e1f28, 0x000f1e27,
- 0x00c4b89f, 0x007c6b54, 0x00f0dfd5, 0x00fffdf8, 0x00f9fefc, 0x00fafdff, 0x00f8fbff, 0x00e4e1e0, 0x00655f4d, 0x002c200d, 0x003c2614, 0x00482b19, 0x00533120, 0x005b3725, 0x00653e2a, 0x006b402b,
- 0x00663f21, 0x00654123, 0x00684428, 0x0069442c, 0x0068442e, 0x0067432e, 0x006f4934, 0x00755137, 0x00745830, 0x007b5e32, 0x00866639, 0x008b693b, 0x0091703f, 0x00937542, 0x00987c49, 0x009a7f4c,
- 0x00927749, 0x008b7348, 0x00886e4c, 0x0083684e, 0x0075614b, 0x006c5547, 0x00634943, 0x005a423e, 0x00543b32, 0x004f3930, 0x004f3430, 0x00492e30, 0x003c2827, 0x00392627, 0x00382526, 0x00322223,
- 0x002b2118, 0x00312719, 0x00403021, 0x00473223, 0x004c3725, 0x00503524, 0x00563527, 0x00553728, 0x00473722, 0x00443320, 0x00423025, 0x003d2d27, 0x00362924, 0x00332927, 0x0032292c, 0x00352c30,
- 0x002f2a22, 0x002e2925, 0x0030282c, 0x002c252b, 0x00262427, 0x00242326, 0x00231f23, 0x001f1c1c, 0x0019160e, 0x001a180b, 0x002f1f14, 0x004b1f17, 0x00632917, 0x00762f12, 0x008a3711, 0x009c390e,
- 0x00a23d03, 0x00a43c09, 0x00a43b10, 0x009f3711, 0x008e2f0f, 0x007d2a0e, 0x006b220b, 0x00541e0e, 0x00301c10, 0x001e160e, 0x001b1513, 0x0025201d, 0x002e2625, 0x003b3538, 0x008e868f, 0x00dbd5e0,
- 0x00e6ebe3, 0x00e3e6dd, 0x00e1e0dc, 0x00dcd9d8, 0x00d3cfcc, 0x00c2bcba, 0x00afa6a7, 0x009a908d, 0x007d7a6d, 0x008c8578, 0x00a29692, 0x00aba1a4, 0x00d0c4c8, 0x00e8dee1, 0x00eee3ea, 0x00eee2e9,
- 0x00f1f3ef, 0x00f7faf5, 0x00fafbfc, 0x00fcfefe, 0x00fefefe, 0x00fff4f0, 0x00bdada3, 0x00918b73, 0x00a1b282, 0x0092a483, 0x00919990, 0x00babacd, 0x00c4c4e8, 0x00b9bfd9, 0x009ea8bd, 0x0092a9ad,
- 0x00a0adbb, 0x009caab2, 0x00a6b1ba, 0x00b8c2c5, 0x00cbd6cf, 0x00cfd1c8, 0x00b2ada3, 0x00a99c96, 0x00998a7f, 0x008d7a6f, 0x00998089, 0x009b82aa, 0x00a395b1, 0x00cdc7da, 0x009698a5, 0x00555e63,
- 0x003f5252, 0x0047545e, 0x006e758d, 0x00646186, 0x00413668, 0x0039406d, 0x002e4077, 0x00243f83, 0x001a4e87, 0x00265880, 0x00396176, 0x00698a81, 0x00cbdad1, 0x009b9db6, 0x00382c6f, 0x0036268b,
- 0x00464f69, 0x0071768d, 0x007d7c8f, 0x00868190, 0x00aba2ac, 0x00b9afb9, 0x00c3bac3, 0x00c7bfc5, 0x009d9d89, 0x007c7f62, 0x005f5c4f, 0x006f6678, 0x00928c9d, 0x00888194, 0x005e505f, 0x00604d54,
- 0x00624d3f, 0x00695446, 0x00958481, 0x00b0a7ad, 0x00aeb6c5, 0x00c3cad0, 0x00dde1e8, 0x00d5d7df, 0x00bcbfc4, 0x00bec4c9, 0x00b8bdc5, 0x00bcc4ca, 0x00d9dbd6, 0x00ddd3ca, 0x009e897e, 0x00987066,
- 0x0081b18e, 0x007ca58c, 0x005e7a6c, 0x00788783, 0x00a3a6ad, 0x00aaa6b5, 0x00afa9bc, 0x00c9c3d9, 0x00a3acb2, 0x007a848b, 0x00b2bcc7, 0x00a1b5c5, 0x007c8996, 0x00a9b3ba, 0x00d0d2d7, 0x00d1d0d2,
- 0x00c7c9bc, 0x00c6c6b7, 0x00c7c2b7, 0x00cecabf, 0x00d1cec4, 0x00bdb8b3, 0x00b3aeaf, 0x00919095, 0x00454e52, 0x00616b74, 0x00bcc2d3, 0x00b2b6c9, 0x00aaadb7, 0x00bbb9c1, 0x00ccc7cb, 0x00e4dddd,
- 0x00e1e1e3, 0x00d6d6d9, 0x00ccc9ce, 0x00c7c3c9, 0x00bfbcc3, 0x00b3afb6, 0x00b0a9b1, 0x00b5afb7, 0x00b5b5b6, 0x00babbbd, 0x00c9c5c9, 0x00aeabad, 0x00848484, 0x008e8f8d, 0x00a09d9f, 0x009e999f,
- 0x00aeb2ad, 0x00cacfcb, 0x00d2d2d4, 0x00dddae0, 0x00fcfbff, 0x00fefefd, 0x00fffdfc, 0x00ffffff, 0x00f2fcf4, 0x00b8c2bd, 0x0063656b, 0x0091909d, 0x00b0b0be, 0x00a5a5b5, 0x00b2aec3, 0x00c2c1d5,
- 0x00d4d6d4, 0x00dfe0e1, 0x00f1f1f7, 0x00f2f3fd, 0x00e1e8f3, 0x00d7ddea, 0x00dcdeed, 0x00e7e8f7, 0x00e9f1f6, 0x00edeff5, 0x00eaecf4, 0x00e6eef6, 0x00f4ebfc, 0x00e3ecfa, 0x00dcf1f8, 0x00e2f9f6,
- 0x00e5b9b1, 0x00b6786b, 0x00dc9082, 0x00e39180, 0x00ca494d, 0x00c45b5a, 0x00e29d9b, 0x00f0dcd9, 0x00bee6e6, 0x00c6dfee, 0x00d1d6f5, 0x00d8d3f2, 0x00cdd9e9, 0x00cee0ea, 0x00d5e5f1, 0x00acb4c2,
- 0x00425142, 0x00303b29, 0x00363a2c, 0x00343326, 0x003a3823, 0x00393520, 0x003c3725, 0x003f3925, 0x00373b1e, 0x00353b1f, 0x00393a24, 0x003c3927, 0x003a3826, 0x00393725, 0x003c3726, 0x003c3727,
- 0x0034361e, 0x0036371f, 0x00383622, 0x00393725, 0x00373724, 0x003b3b2c, 0x00403e33, 0x00403f31, 0x00393f29, 0x003b402c, 0x00404433, 0x00474a3c, 0x00434741, 0x00404443, 0x003e4044, 0x003a3b43,
- 0x0036383b, 0x002e3135, 0x007f7f84, 0x00eae8ea, 0x00fdfeff, 0x00fdfdfc, 0x00fefbfb, 0x00fffefd, 0x00c5cabe, 0x00585e53, 0x00313430, 0x0056595a, 0x00888d90, 0x008e9297, 0x0094949d, 0x0096969f,
- 0x00848e8c, 0x0077837d, 0x00737a7d, 0x008c8e92, 0x00b8bcc2, 0x00cbd2d6, 0x00afb5bd, 0x006e737e, 0x001c292e, 0x003a4750, 0x0099a3b1, 0x00bbc4d1, 0x00bcc8d4, 0x00b9c5ce, 0x00c1ccd5, 0x00c3d0d5,
- 0x00bfc5cb, 0x00c3c5cd, 0x00c1c0c9, 0x00abaab1, 0x00939197, 0x009d989e, 0x00a09b9e, 0x006f696a, 0x00232319, 0x001c1a10, 0x0025221f, 0x00252327, 0x00232229, 0x002b202a, 0x0039252a, 0x004c2926,
- 0x00602d11, 0x00703011, 0x007e3618, 0x00813a19, 0x007c3c1e, 0x00653e2d, 0x005a3d36, 0x00513a38, 0x003c3b36, 0x003d3e3f, 0x0042444d, 0x0045464e, 0x004f4a4a, 0x00584a44, 0x005e493f, 0x00624a3b,
- 0x005f4831, 0x00604b36, 0x00685044, 0x00685350, 0x0065585c, 0x00776f7a, 0x00b0abba, 0x00c1c2d1, 0x00adb9c2, 0x00adb9c3, 0x00b6bfc9, 0x00b7bfc6, 0x00a4abb1, 0x0091969f, 0x00898c98, 0x008f929f,
- 0x00909d9f, 0x00929da1, 0x00979ca6, 0x00959aa5, 0x009298a0, 0x0093949a, 0x00969399, 0x00908e93, 0x00828783, 0x007c807f, 0x007a7a7b, 0x00717374, 0x0068686c, 0x00707275, 0x007a7a7f, 0x0075747c,
- 0x006d726e, 0x007a7e7a, 0x008d908e, 0x00979a98, 0x009a9b9b, 0x009a9a9d, 0x00a1a0a4, 0x00a5a3a8, 0x009fa5a1, 0x00a4a9a4, 0x00b0b4b6, 0x00b7bec6, 0x00c0c9d0, 0x00c3cad2, 0x00c6ccd8, 0x00ced5e0,
- 0x00d0dfdf, 0x00cfdddf, 0x00d1d9df, 0x00d4dae1, 0x00d2dbe2, 0x00cdd9e4, 0x00ced7e7, 0x00cdd6e5, 0x00ccdbe1, 0x00d5e1ea, 0x00e0e8f3, 0x00e5ebf5, 0x00e9eff8, 0x00e8eff7, 0x00e8f1f9, 0x00ebf5fe,
- 0x00f3f9f5, 0x00f0f5f0, 0x00dfe2e2, 0x00e2e4e3, 0x00fbfdfb, 0x00fafaf7, 0x00fffeff, 0x00fffcfc, 0x00f0f3eb, 0x00b1b6ab, 0x00474741, 0x002d2c26, 0x00181915, 0x000c0c0a, 0x000b050b, 0x00050008,
- 0x00010107, 0x00020008, 0x00030009, 0x00040009, 0x00040008, 0x00050007, 0x00060007, 0x00070008, 0x00000000, 0x00020001, 0x00060106, 0x00070107, 0x0009030a, 0x00080209, 0x000a030b, 0x000a020c,
- 0x000f172e, 0x002e335b, 0x002f3068, 0x0026256b, 0x00191766, 0x001b1a62, 0x00191a5e, 0x00171855, 0x00101344, 0x000f1042, 0x00140e4c, 0x000f114f, 0x00100d55, 0x00141140, 0x0017183f, 0x00151c46,
- 0x00192179, 0x0039387e, 0x00827093, 0x00b89e83, 0x00dfb077, 0x00bc965c, 0x00a47f49, 0x00a7804a, 0x00a5864b, 0x00a07f49, 0x00a47e53, 0x00a07752, 0x00936b48, 0x00876140, 0x0080583a, 0x0082563d,
- 0x00765933, 0x007f5f38, 0x0095724e, 0x00a27e59, 0x00a7855a, 0x00a78659, 0x009e7d52, 0x0095734b, 0x007f6437, 0x00856b3f, 0x00a18e62, 0x00d5cf9a, 0x00dad5ba, 0x00776f6d, 0x00120819, 0x00120a28,
- 0x00090926, 0x00080826, 0x000e072c, 0x000f052f, 0x00150735, 0x00110b2d, 0x00120e29, 0x00100c28, 0x00090a20, 0x000a0b21, 0x000b0926, 0x000c082a, 0x000d0b2a, 0x000e0a2c, 0x000e072d, 0x000f082c,
- 0x00070724, 0x00060724, 0x000b0a27, 0x000d0b28, 0x000d0c28, 0x000a0822, 0x000b0821, 0x000b0922, 0x00070b1a, 0x00050a19, 0x00080e1c, 0x000a111d, 0x000b111d, 0x000b111d, 0x000c111e, 0x000f1220,
- 0x00071218, 0x00091418, 0x000e151b, 0x0011161f, 0x00121920, 0x00121a1d, 0x00171d1e, 0x00161d1e, 0x00131f1a, 0x00131f1c, 0x00162020, 0x00192023, 0x00191f22, 0x00192022, 0x001b2325, 0x001d2427,
- 0x00122315, 0x00122417, 0x0018261d, 0x001b2921, 0x001a2e25, 0x001f3129, 0x0027322e, 0x00293331, 0x00424d45, 0x00a2aaa4, 0x00fdfefb, 0x00faf9fa, 0x00ffffff, 0x00fcfcfe, 0x00f9f6f9, 0x00bdbbbc,
- 0x00616560, 0x00717671, 0x00929292, 0x008f8b8c, 0x006d6a6a, 0x00626168, 0x00575661, 0x0047474f, 0x0022231c, 0x00110f07, 0x00170e07, 0x00201206, 0x00352310, 0x004b371f, 0x006b533f, 0x00806653,
- 0x0060624b, 0x005c5844, 0x00a49488, 0x00cdbcb4, 0x00c3bbbe, 0x00bab8c4, 0x00afb1c5, 0x00c0c7db, 0x00c1c8c8, 0x00d7d7d3, 0x00d0c7c6, 0x00ddd8d6, 0x00e8e5e2, 0x00d6dad5, 0x00d1d8d6, 0x00d6e0e5,
- 0x00cfdad6, 0x00d9c5c1, 0x00ae7b73, 0x008f3925, 0x00a1250a, 0x005a241e, 0x00412d3b, 0x004a4160, 0x00455c89, 0x004d71a4, 0x005f88c0, 0x006e9acf, 0x0087a6d3, 0x0094a7d4, 0x009097c7, 0x00aca5d5,
- 0x00d5cbda, 0x00b0c1d2, 0x0096b4c5, 0x00abd4d4, 0x00cbc7a9, 0x00d1bea2, 0x00dcc3b6, 0x00ddd1d4, 0x00d2dfdd, 0x00d8e5d6, 0x00dce6de, 0x00d8e6f2, 0x00d0d3ca, 0x00b4a899, 0x0098836b, 0x00a28b6d,
- 0x00ab9e7c, 0x00a69d7f, 0x0094846d, 0x0084725f, 0x00866e57, 0x00836a4e, 0x007e6343, 0x007a6248, 0x006a6347, 0x006a6850, 0x007f7b6f, 0x00b6b1ab, 0x00f4f3f0, 0x00fffdfd, 0x00fffdff, 0x00fefdff,
- 0x00f1fcf6, 0x00dae6df, 0x008c9694, 0x00677374, 0x00637473, 0x00647677, 0x00667479, 0x00677478, 0x005d706e, 0x005d6b6d, 0x005d6a6d, 0x00596969, 0x00586869, 0x00596b6c, 0x005b6c70, 0x00596a70,
- 0x004e6366, 0x00425860, 0x003e5160, 0x003c4c5e, 0x00344657, 0x00273848, 0x001b2b3a, 0x001e3040, 0x001c373c, 0x0020343c, 0x002b3742, 0x00464e56, 0x00acafb1, 0x00f4f0f4, 0x00fffdfd, 0x00fff3f4,
- 0x00e9ebda, 0x00eae9e3, 0x00eae9ef, 0x00e2e4f5, 0x00d9dbf1, 0x00d1d0e0, 0x00c3bbc0, 0x00c5baad, 0x00d4c996, 0x00ddce8c, 0x00e6cc94, 0x00e7c0a1, 0x00b89c63, 0x0067542b, 0x003a291b, 0x00564755,
- 0x00797984, 0x00716b64, 0x00443d29, 0x003f331c, 0x004a3332, 0x0049382c, 0x003b2f21, 0x004d443b, 0x00343a2a, 0x00131508, 0x00241b0a, 0x003c2b13, 0x0057432e, 0x00614e40, 0x00594b46, 0x004f4749,
- 0x005d685c, 0x00868c7e, 0x00848074, 0x006e6457, 0x003d2c1a, 0x003e2e1b, 0x00776856, 0x00635641, 0x002a3114, 0x005a6446, 0x00828a7e, 0x00455057, 0x00202b2f, 0x005a625e, 0x00484b45, 0x001d1d14,
- 0x00272a13, 0x003f3c26, 0x00443b2b, 0x00493d31, 0x004f3f37, 0x0048403e, 0x005c585d, 0x005c575e, 0x00212835, 0x00040b1c, 0x00010426, 0x00070b35, 0x00152049, 0x0016224d, 0x00131d4c, 0x00121e4a,
- 0x0008173e, 0x00061345, 0x00161e60, 0x00222878, 0x002a2e89, 0x00262d84, 0x00323d8d, 0x003a498c, 0x00204160, 0x000f3347, 0x000e303e, 0x00153338, 0x00152e37, 0x00152d37, 0x00152b36, 0x00162a37,
- 0x0010292f, 0x000f2a2d, 0x00112831, 0x00132734, 0x00122730, 0x0010262f, 0x0010242b, 0x000f232c, 0x000a2226, 0x000a2025, 0x000b1f26, 0x000e2028, 0x0010212a, 0x0011202a, 0x0011212a, 0x0012222b,
- 0x00c5b7a0, 0x007c6552, 0x00ead8cd, 0x00fffaf4, 0x00f9fef9, 0x00f8fdfc, 0x00f8fdfd, 0x00e8e7e2, 0x00796b60, 0x00382517, 0x0043291a, 0x004c2e1c, 0x00533421, 0x00583824, 0x005e3c26, 0x00623e27,
- 0x00653f27, 0x00654029, 0x0065412a, 0x0064402b, 0x0063412e, 0x0063412c, 0x0068452f, 0x006d4c30, 0x00735531, 0x00765935, 0x007a5d33, 0x007a5e2f, 0x00806434, 0x00836836, 0x00856b37, 0x00866b38,
- 0x00886a45, 0x00836644, 0x007a5f43, 0x00725943, 0x00675341, 0x005d4a3e, 0x00514039, 0x004b3a36, 0x00473433, 0x0044312f, 0x00422d2c, 0x003e292c, 0x00352423, 0x002e201f, 0x002b1e1c, 0x002a1e1b,
- 0x002b1f1a, 0x0030241c, 0x003e2e22, 0x00463424, 0x004c3826, 0x00503624, 0x00553524, 0x00543727, 0x00513829, 0x00493324, 0x00453026, 0x003d2b23, 0x00352921, 0x00312823, 0x00332a29, 0x00332e2c,
- 0x00322929, 0x002f2726, 0x002e2528, 0x002c252a, 0x00262426, 0x00222122, 0x00222020, 0x001e1d1a, 0x001c1812, 0x001d1812, 0x002e1d14, 0x004b1e12, 0x005f2712, 0x00712e0e, 0x0086360d, 0x0096380b,
- 0x00a33e0a, 0x00a63d0b, 0x00a23c0f, 0x009f360e, 0x008f2f09, 0x007e2c0a, 0x00682509, 0x00551f0a, 0x00341812, 0x00261412, 0x00190e0f, 0x001a1212, 0x00282121, 0x00292427, 0x00443f45, 0x00838188,
- 0x00dbdbd8, 0x00e4e3df, 0x00dfddd9, 0x00d8d6d2, 0x00d5d0cd, 0x00d1ccc7, 0x00c5beb8, 0x00beb6ae, 0x00aca499, 0x00b5ada2, 0x00c3bbb5, 0x00d0caca, 0x00efe6e9, 0x00f7f1f2, 0x00f7f3f3, 0x00f6f4f3,
- 0x00f5f5f5, 0x00fbfbf9, 0x00faf9f8, 0x00fdfdfd, 0x00fdfdfe, 0x00faf3f1, 0x00ccc2b9, 0x00a9a78f, 0x0098a67f, 0x00818d76, 0x00858b89, 0x00a0a1bb, 0x009b98c7, 0x009195b9, 0x008b95ac, 0x0094a8ad,
- 0x00a9afc7, 0x00a0a7b8, 0x009aa0ac, 0x00a3aaac, 0x00b7c0b7, 0x00c0c3b7, 0x00a9a69b, 0x00ada59f, 0x00a2948e, 0x00847172, 0x008b7486, 0x009982ac, 0x009f90af, 0x00c7c0d0, 0x00b1b3b7, 0x006d7574,
- 0x00505e5d, 0x00606874, 0x0060647d, 0x0055547b, 0x00403b70, 0x00313d6f, 0x00243d71, 0x00153871, 0x000b3e7b, 0x0014457a, 0x00184767, 0x00486e75, 0x00b6c9c0, 0x008f93ae, 0x003f3878, 0x003e319b,
- 0x00605583, 0x009c90b6, 0x00bdb1ce, 0x00c5b8d0, 0x00d0c4d6, 0x00d3cadb, 0x00d4cfdd, 0x00dfdce8, 0x00bbbebd, 0x00858b87, 0x00747675, 0x00b5afbc, 0x00c1bac8, 0x0096909d, 0x00786f76, 0x0073676b,
- 0x009e8a85, 0x00ab9593, 0x00bbacac, 0x00bcb4bc, 0x00afb4c4, 0x00d7dde1, 0x00dae2de, 0x009a9ea2, 0x005e5f66, 0x005f616a, 0x00565661, 0x0063656b, 0x00999792, 0x00aea195, 0x00816b59, 0x008f6e5c,
- 0x0093ba9c, 0x0082a48f, 0x004c665a, 0x006f807c, 0x00abb2b7, 0x00c1c0cb, 0x00d7d2df, 0x00e3dceb, 0x00d8d6df, 0x00bebdc8, 0x00bbc0cd, 0x009aafbf, 0x007f8c94, 0x00aeb8be, 0x00bec4c4, 0x00c2c5c1,
- 0x00d3d3ca, 0x00d5d5cc, 0x00c8c6ba, 0x00c7c5b3, 0x00c0bca9, 0x00b0ad9f, 0x00ababa4, 0x00898c8f, 0x003e4852, 0x005f6a72, 0x00b5bfc7, 0x00b8c2ca, 0x00c7ccd6, 0x00c5c5ce, 0x00b7b5b7, 0x00d7d3cd,
- 0x00dddbe0, 0x00d9d7dc, 0x00d3cfd4, 0x00cbc7cb, 0x00bcbabd, 0x00b7b4b6, 0x00a9a5a6, 0x009e9a9a, 0x00a19b99, 0x00b8b1af, 0x00cbc3c4, 0x00a0a09f, 0x006e6e6c, 0x00777876, 0x008c8d8d, 0x008f8e92,
- 0x00aaa8a9, 0x00cbc9ca, 0x00ceccd0, 0x00d9d8dc, 0x00fdfcfe, 0x00fdfffc, 0x00fcfefa, 0x00fbfdfb, 0x00f7fdf8, 0x00bcc2c0, 0x0065656b, 0x009697a1, 0x00cdcdd7, 0x00dfe1eb, 0x00edecf8, 0x00f3f2fd,
- 0x00f1eff3, 0x00f0eff4, 0x00f5f3fa, 0x00f4f3fb, 0x00ebeff7, 0x00e8ecf6, 0x00edeff9, 0x00f1f3fd, 0x00f4f3f9, 0x00f3f3f9, 0x00edf0f5, 0x00f2f4f9, 0x00f6effa, 0x00e6edf7, 0x00e2f6fa, 0x00e6f8f7,
- 0x00e5c4c0, 0x00c4958e, 0x00dea89f, 0x00f2b8ac, 0x00d97e7f, 0x00c57375, 0x00dea6a7, 0x00eadbd8, 0x00c9e4e9, 0x00caddef, 0x00ced7ef, 0x00d4d6ee, 0x00cedcea, 0x00cce0eb, 0x00cde3ea, 0x00a5b2be,
- 0x004b4f43, 0x003b3c32, 0x0037352c, 0x00353226, 0x00393625, 0x00373520, 0x00383620, 0x003b3924, 0x003b3924, 0x003c3924, 0x003b3925, 0x00393924, 0x003a3723, 0x00393722, 0x00373822, 0x00393822,
- 0x0036351e, 0x003a3923, 0x00393823, 0x00383722, 0x003a3825, 0x003c3b2a, 0x003f3e2e, 0x00414030, 0x003e402d, 0x00404230, 0x00434637, 0x0044493c, 0x00424642, 0x003d4142, 0x00393c43, 0x00393b45,
- 0x003a3c4e, 0x00323344, 0x007d7b88, 0x00e7e6ea, 0x00fdfefe, 0x00fcfdfa, 0x00fbfbf9, 0x00fdfdfc, 0x00cbcbc7, 0x00656665, 0x003d3e3f, 0x005c5f60, 0x00878c8f, 0x008c9295, 0x008e9397, 0x008e939a,
- 0x00848b8f, 0x007e8588, 0x00777d82, 0x008e9398, 0x00bdc3c8, 0x00cbd6d9, 0x007c8890, 0x002c373d, 0x00061118, 0x001e2731, 0x00717885, 0x00aeb7c5, 0x00bfc9d7, 0x00bac6d2, 0x00bccbd2, 0x00becdd2,
- 0x00c6c5d0, 0x00bebec7, 0x00c2c1c9, 0x00b6b5bb, 0x00abacac, 0x00a8a8a6, 0x00716d6c, 0x003d3937, 0x00211d1a, 0x00241d1a, 0x00272224, 0x00212228, 0x00201f28, 0x00261e27, 0x00332327, 0x00482827,
- 0x005b2b19, 0x006b2d17, 0x0077351c, 0x007b3b1e, 0x00763920, 0x00663f31, 0x005d433b, 0x0058433e, 0x004e4547, 0x004f4b50, 0x0052525a, 0x00545559, 0x005c5855, 0x0063564e, 0x00685649, 0x006e5846,
- 0x00735847, 0x00705749, 0x00725b50, 0x0072605b, 0x00776b6e, 0x00928d94, 0x00b9b7c2, 0x00bebecc, 0x00b1bac7, 0x00b2bbc8, 0x00a3a9b6, 0x009399a3, 0x007f858d, 0x0080858e, 0x008b9099, 0x00949ba1,
- 0x009ba0a7, 0x00989fa6, 0x00969ca4, 0x009498a1, 0x0091969d, 0x008f9395, 0x008d8f8d, 0x00878986, 0x007f7f81, 0x0079777a, 0x00727174, 0x0067696a, 0x00636364, 0x00707172, 0x006c6d6f, 0x00646165,
- 0x00656466, 0x00706f70, 0x007d7c7d, 0x00858585, 0x008c8c8b, 0x008f8f8d, 0x00969693, 0x009a9b97, 0x009c9d9b, 0x009fa19d, 0x00a6a8aa, 0x00b1b4bd, 0x00c0c6cd, 0x00c2cacf, 0x00c1c9cf, 0x00c0c9cd,
- 0x00cad5dc, 0x00d0dbe3, 0x00d8dfe7, 0x00d5dde3, 0x00cfdae1, 0x00cedbe5, 0x00cedbe5, 0x00cedce4, 0x00d1dce8, 0x00d3dee8, 0x00d8e1ea, 0x00dee6ef, 0x00e4ecf5, 0x00e4edf5, 0x00e8f2f8, 0x00eef9fd,
- 0x00f1f6f9, 0x00f6fbfb, 0x00ebefef, 0x00e6eae9, 0x00f7f9f9, 0x00f9fbfa, 0x00fefefd, 0x00fcfcf6, 0x00faf9f4, 0x00cbcac2, 0x00504e48, 0x00272621, 0x00171413, 0x000d0b0c, 0x0008050b, 0x00040008,
- 0x00030109, 0x0003000a, 0x0004000a, 0x00040009, 0x00040008, 0x00040006, 0x00040005, 0x00050005, 0x00040007, 0x00060007, 0x00070007, 0x00070007, 0x00060106, 0x00070307, 0x00060206, 0x00050104,
- 0x00151228, 0x00313058, 0x00303066, 0x0022246b, 0x0014185d, 0x0015175a, 0x00151857, 0x00141654, 0x00131550, 0x0012124c, 0x0013104c, 0x000d114a, 0x000f0d4a, 0x0011113f, 0x00151940, 0x00141c48,
- 0x00161b72, 0x0035317d, 0x007f7197, 0x00c5aba0, 0x00d5a479, 0x009c7544, 0x00866334, 0x009b7548, 0x00a07a4a, 0x00997445, 0x00977046, 0x00916b43, 0x00855f39, 0x0079522f, 0x00744f2d, 0x00785434,
- 0x0083633f, 0x008f6c46, 0x009e7b53, 0x00a8865b, 0x00a9875a, 0x00a68656, 0x00997a4b, 0x00906e42, 0x0086643d, 0x0093744f, 0x00b69c71, 0x00e5d59f, 0x00f3eacd, 0x00ada6a3, 0x00282332, 0x00070524,
- 0x000c092b, 0x00100b2d, 0x000f082b, 0x0011092e, 0x000d062c, 0x00120d2a, 0x00110c25, 0x000e0a24, 0x000d0923, 0x000c0822, 0x000b0724, 0x000b0724, 0x000b0924, 0x000a0924, 0x00090824, 0x00080723,
- 0x000a0723, 0x00090723, 0x000a0823, 0x000c0823, 0x000b0a22, 0x000a081f, 0x000b081d, 0x000b091d, 0x000c0b1b, 0x000c0c1b, 0x000d0f1b, 0x000b101b, 0x000b111c, 0x000a121b, 0x000a121b, 0x000d141d,
- 0x000e161d, 0x000f191c, 0x00131a1f, 0x00121a20, 0x00131d20, 0x00141e1d, 0x00161e1a, 0x00151c19, 0x00151f1d, 0x0018211f, 0x001a2321, 0x001b2321, 0x001b2322, 0x001c2524, 0x001d2625, 0x001c2525,
- 0x001c271e, 0x001f2b21, 0x00242f26, 0x0028352b, 0x002a3a2f, 0x00304035, 0x00364138, 0x003f483f, 0x0049514b, 0x009a9f99, 0x00fbfdf9, 0x00f8f9f7, 0x00fdfffb, 0x00fafcfa, 0x00fcfbfc, 0x00d4d1d1,
- 0x0089888a, 0x00a3a2a5, 0x00d5d5d7, 0x00eaeaeb, 0x00e3e4e4, 0x00c8cbd3, 0x0091969d, 0x005e6462, 0x0034312d, 0x00302a2a, 0x00382d2b, 0x003a2925, 0x0047341c, 0x005d452b, 0x00745a3d, 0x00866a51,
- 0x006b685c, 0x008a8379, 0x00beb3ad, 0x00cbc1c0, 0x00c1bac2, 0x00a8a8b5, 0x009aa1af, 0x00b3bbc8, 0x00b4b6b8, 0x00cac6c4, 0x00bdb6b0, 0x00d9cecf, 0x00ccc8c3, 0x00bdbdb7, 0x00c5cac6, 0x00c6cbcc,
- 0x00a9a7a8, 0x00b09898, 0x00804d46, 0x00721e0e, 0x007a0805, 0x003e1114, 0x003b313d, 0x00505069, 0x00516b9a, 0x005b7fb9, 0x00709bda, 0x0076a5e3, 0x0088aee5, 0x0099b3e8, 0x0096a6d8, 0x009ba1d0,
- 0x00b3a4bc, 0x00b7c0dc, 0x00b5d2e7, 0x00b3d6d9, 0x00bbba9d, 0x00baa98a, 0x00cfbfa9, 0x00d7d4cf, 0x00c7dbd4, 0x00cee2d1, 0x00d8e8d7, 0x00d8e2e3, 0x00dddbd4, 0x00cfc5b8, 0x00b2a48d, 0x00af9b85,
- 0x00b3a287, 0x009c8e72, 0x00806e55, 0x007f6c54, 0x00866c53, 0x008d7251, 0x00866c46, 0x007f6a48, 0x007b6e53, 0x007b7461, 0x00817e73, 0x00a7a6a2, 0x00e9eae8, 0x00fcfcfd, 0x00fefdfe, 0x00fcfafc,
- 0x00f9fefc, 0x00eef4f1, 0x009fa8a7, 0x00687474, 0x005f6e6d, 0x005f6f70, 0x005e6f72, 0x005d6d71, 0x005d6b6f, 0x005c686e, 0x00576468, 0x00526464, 0x004f6061, 0x00536567, 0x00536568, 0x00516368,
- 0x004d6167, 0x00485864, 0x0041505e, 0x003e4d5b, 0x00354858, 0x002c3b4a, 0x001d2c3b, 0x001b2b3e, 0x001e3142, 0x00223241, 0x00384754, 0x008d969f, 0x00ebeeee, 0x00f6f6f5, 0x00f2f1ea, 0x00fbf8f0,
- 0x00f9f9f3, 0x00f9f6f6, 0x00e8eaee, 0x00dadee9, 0x00cfd1de, 0x00ccccd2, 0x00c5c1ba, 0x00d2c6af, 0x00e4cfa0, 0x00e7cc95, 0x00e6c88e, 0x00deba8c, 0x00937b49, 0x004d3c17, 0x004a3d29, 0x005f535f,
- 0x0063565f, 0x004c3a33, 0x003f2e16, 0x004b3415, 0x006b4d39, 0x006d5639, 0x00493b1a, 0x0052472e, 0x00403e2a, 0x002c2a1a, 0x00575142, 0x00887e6c, 0x008c8172, 0x0060554d, 0x00292120, 0x001b191b,
- 0x004f5455, 0x008c908c, 0x007d7d78, 0x006f6c65, 0x00453b2a, 0x002f2413, 0x00645940, 0x00665c40, 0x00272a0b, 0x004e543b, 0x007d8177, 0x00545a5e, 0x003d4442, 0x006a7069, 0x0060635c, 0x002d2e26,
- 0x0028281e, 0x004a473b, 0x00514a41, 0x00534b43, 0x005b524d, 0x005a595c, 0x005f6370, 0x00606374, 0x004a526a, 0x00242b48, 0x00030930, 0x0009103c, 0x0014204e, 0x0015234f, 0x000f1d4a, 0x000e1d4a,
- 0x000d1848, 0x000e1850, 0x00171f61, 0x00242a78, 0x00242a82, 0x00232b82, 0x00283486, 0x00324189, 0x00283f6d, 0x0019345a, 0x000d2a43, 0x00112b36, 0x00122b2e, 0x00112c2c, 0x000f2a2a, 0x0010272f,
- 0x000f242f, 0x000f252f, 0x00102630, 0x0011262e, 0x00112727, 0x000e2629, 0x000d2728, 0x000e2728, 0x00102629, 0x000f2529, 0x000f2429, 0x000f2328, 0x00102329, 0x00112329, 0x00122429, 0x00132429,
- 0x00c6b7a0, 0x007b604f, 0x00e6d2c5, 0x00fdf6ec, 0x00fafdfa, 0x00f7fbf9, 0x00fbfefa, 0x00ebe8e3, 0x0089786e, 0x003b2518, 0x00482c1b, 0x004d2d1a, 0x00553321, 0x00583623, 0x005b3a27, 0x005c3c28,
- 0x005d3c30, 0x005c3d31, 0x005d3e30, 0x005c3e31, 0x005d4133, 0x005e412f, 0x0063442f, 0x00674a30, 0x006c4f34, 0x006f5236, 0x00705436, 0x006e5331, 0x00735833, 0x00755a34, 0x00785c36, 0x00785d34,
- 0x00775c43, 0x00735a45, 0x006c5445, 0x00644f46, 0x00554942, 0x004b423d, 0x00403935, 0x003a3632, 0x00363131, 0x0035302e, 0x002f2a29, 0x002d282b, 0x002b2527, 0x00261e20, 0x00241918, 0x002a1d1b,
- 0x002d2018, 0x0031241b, 0x003d2d23, 0x00423226, 0x0049372a, 0x004e3626, 0x00533523, 0x00523624, 0x00513527, 0x004a3223, 0x00463023, 0x003d2a1f, 0x0036251b, 0x0033241c, 0x0031231e, 0x002c211c,
- 0x00302928, 0x002c2825, 0x002c2726, 0x002c2727, 0x00272221, 0x00231e1c, 0x00221c1b, 0x001d1918, 0x001e1815, 0x00211a1a, 0x00331c14, 0x004c1905, 0x00612207, 0x00742a0b, 0x0086340c, 0x00913407,
- 0x00a1390b, 0x00a13a0b, 0x00a3370d, 0x009a3207, 0x00912a05, 0x00702705, 0x005e1f06, 0x00501a06, 0x003b1811, 0x002f1715, 0x002a1e20, 0x00282327, 0x0039393d, 0x00494a4e, 0x005a595b, 0x00767674,
- 0x00c5c1be, 0x00ebe8e5, 0x00ede9e7, 0x00e5e2de, 0x00f0eae5, 0x00f1e9e4, 0x00e7dfda, 0x00e2d7d3, 0x00e4dad8, 0x00ede6e0, 0x00f6f4ed, 0x00f3f5ef, 0x00fafaf8, 0x00fdfdfb, 0x00fbfcfa, 0x00f7faf8,
- 0x00f9fbf8, 0x00f8fdfa, 0x00fcffff, 0x00fafcfc, 0x00fbffff, 0x00f3f8f7, 0x00d3d7d7, 0x00c9ccc8, 0x00a7aba3, 0x00787c82, 0x00727589, 0x007f80a6, 0x008782b8, 0x008b89b1, 0x009d9cb9, 0x00abadba,
- 0x00b3b1cd, 0x00b4b4ca, 0x00a3a2b2, 0x00a1a1a7, 0x00acb0ac, 0x00c2c4bd, 0x00b1b2ad, 0x009c9999, 0x007b7881, 0x005d5664, 0x00776c81, 0x009586a5, 0x00b9aabc, 0x00d3c4cf, 0x00b4a8a9, 0x007e7770,
- 0x005a5850, 0x00666568, 0x00837d8f, 0x006c6381, 0x0048416e, 0x002c3a74, 0x001c376d, 0x0018365b, 0x000c2e5f, 0x0010256c, 0x001f2f78, 0x00526291, 0x00a2bab4, 0x006b8a96, 0x0026487e, 0x00203eaf,
- 0x00776784, 0x00b1a3ba, 0x00d8cbdb, 0x00ded4de, 0x00dcd7d9, 0x00d4d3d4, 0x00d0d2d7, 0x00dce0e9, 0x00cfd1e7, 0x009093ac, 0x006b6d81, 0x00aeaeae, 0x00c4c0c5, 0x00a09a9d, 0x00918b91, 0x008e8a8d,
- 0x009c9696, 0x00b0aba7, 0x00b9b0b2, 0x00cabfbf, 0x00cac4c4, 0x00d4dbdb, 0x00c9d5db, 0x0091999c, 0x00626370, 0x004c4657, 0x00473e4d, 0x00685f6a, 0x00afa2a4, 0x00afa29c, 0x00756a5d, 0x00948979,
- 0x00bdbabf, 0x0094929b, 0x005e5f6b, 0x00878996, 0x00b6b9c9, 0x00c1c4d4, 0x00cbd0dc, 0x00dae0e8, 0x00d0d2d2, 0x00bbbdbb, 0x00bbc4c8, 0x009aafc3, 0x008e96a3, 0x00c8c7d0, 0x00cec5cb, 0x00cbbfc2,
- 0x00c8c8c6, 0x00c9cac7, 0x00c3c2ba, 0x00beb7a6, 0x00bcb196, 0x00aaa87d, 0x00a5aa89, 0x008c9191, 0x00485365, 0x00657673, 0x00a1b6a8, 0x00acc2af, 0x00cbd3de, 0x00c8c6d4, 0x00b7aebb, 0x00d9cbc7,
- 0x00d9dce2, 0x00ced0d5, 0x00c7c7ca, 0x00c1bfbf, 0x00c0bcb9, 0x00beb9b2, 0x00aaa198, 0x009c9388, 0x00a29286, 0x00b8a89b, 0x00cfc9bf, 0x009fa7a3, 0x00666d6a, 0x006d6e70, 0x00807e82, 0x008c868e,
- 0x00a9a3a6, 0x00c9c2c5, 0x00cfcbcd, 0x00d6d5d6, 0x00fcfbfc, 0x00fcfcfc, 0x00f9fbfa, 0x00fcfefe, 0x00fffdff, 0x00c1c0c1, 0x006b6b6b, 0x00969999, 0x00d7d8d8, 0x00eff1f1, 0x00fefeff, 0x00fefdfd,
- 0x00fef7fb, 0x00fef9fb, 0x00fffbfd, 0x00fffcfc, 0x00fefbfc, 0x00fdfafb, 0x00fcf9fa, 0x00fcfbfc, 0x00fefbfa, 0x00fcfbfa, 0x00fbfaf8, 0x00fcfaf6, 0x00fef7f7, 0x00fef6f8, 0x00fef6f6, 0x00fff6f4,
- 0x00ece3df, 0x00cfc3bc, 0x00dfd1c9, 0x00f6eae2, 0x00e3d2cd, 0x00beafb0, 0x00d3c4ca, 0x00e9dde6, 0x00e6e5ec, 0x00d8dce5, 0x00d0dce6, 0x00cbdce5, 0x00cedfef, 0x00cfe0ef, 0x00c4d2e3, 0x00828fa3,
- 0x0040372c, 0x00332a21, 0x002d251c, 0x0030281d, 0x00322a1d, 0x00322b1b, 0x00362f1d, 0x003a3423, 0x003a3524, 0x003e3724, 0x003d3822, 0x003a3920, 0x0039371f, 0x003b3820, 0x003b3820, 0x003d3a21,
- 0x0039331c, 0x003a361f, 0x003a371f, 0x0037341c, 0x00383620, 0x00393820, 0x003e3f26, 0x003f422b, 0x00404332, 0x00424636, 0x0044473c, 0x0041443e, 0x0044454a, 0x003f3f4b, 0x003a3a4c, 0x003b3c51,
- 0x00393e6a, 0x002f3357, 0x007b7d97, 0x00e6e9ef, 0x00feffff, 0x00fbfcfa, 0x00fcfcfa, 0x00fdfcff, 0x00d2cdd9, 0x00726f7f, 0x004f4e59, 0x00646467, 0x00888a8e, 0x0091949e, 0x008b919c, 0x0088919d,
- 0x00808b97, 0x007c8792, 0x007f8b95, 0x009da8b2, 0x00c4ced6, 0x00adbac3, 0x004f5b67, 0x00121b23, 0x00111a19, 0x00080f0f, 0x00454a53, 0x008c919f, 0x00c6cae0, 0x00c0c8d8, 0x00c3ceda, 0x00c0cbd3,
- 0x00c3c7ca, 0x00bfc3c6, 0x00bcbfc2, 0x00b3b4b6, 0x00aeacac, 0x00908d88, 0x004c4741, 0x002b201f, 0x002c2425, 0x002e2323, 0x002f282b, 0x0021282b, 0x00242228, 0x00281e23, 0x00352224, 0x00442725,
- 0x00522a21, 0x005f3024, 0x0069352a, 0x00733d2e, 0x007a4130, 0x00684739, 0x005d493d, 0x005a4840, 0x00574e4d, 0x005d5656, 0x00605c5e, 0x005f5c5b, 0x00635d58, 0x006b5f55, 0x00736153, 0x00786351,
- 0x007d6553, 0x007a6454, 0x007c6a5c, 0x0074685d, 0x008b8482, 0x00aaaaac, 0x00bec1c6, 0x00bdc0c9, 0x00abaeb9, 0x00989aa5, 0x00838892, 0x00777f87, 0x00848a93, 0x008c939c, 0x0099a0a8, 0x00a0a4ab,
- 0x009aa4a9, 0x00969ea3, 0x00969ba0, 0x0093999e, 0x008e9399, 0x008d8e90, 0x00898785, 0x00827f7c, 0x00797b79, 0x0073726f, 0x00696865, 0x005b5d58, 0x00676560, 0x00666762, 0x004e4d4c, 0x004b4849,
- 0x00534f54, 0x00625e63, 0x006c686c, 0x006e6b6d, 0x00747170, 0x007c7a77, 0x0087857f, 0x0093918a, 0x00999591, 0x009c9a92, 0x00a19e9b, 0x00aaa7aa, 0x00bdbac0, 0x00c6c5cd, 0x00c8c9d3, 0x00c6c9d2,
- 0x00bfc9d1, 0x00c5d2db, 0x00d4dfe9, 0x00d8e5ef, 0x00d2e1ed, 0x00cfdbe7, 0x00d1d9e4, 0x00d1dce4, 0x00d3dce6, 0x00d3dde6, 0x00d6e1e9, 0x00d9e4ec, 0x00dee8f1, 0x00e2ebf5, 0x00e8f2fb, 0x00ebf7ff,
- 0x00eef4f8, 0x00f1f9fb, 0x00eff5fa, 0x00e6ebee, 0x00f3f6f7, 0x00fcfdfb, 0x00fdfcfc, 0x00fdfdfb, 0x00fefbfa, 0x00e1ddd9, 0x005d5858, 0x00221d1f, 0x00191018, 0x000c050c, 0x0008040d, 0x00040109,
- 0x0005010a, 0x0006010a, 0x0006000b, 0x0006000b, 0x0006000c, 0x0006000a, 0x00060009, 0x00060007, 0x0006000a, 0x00060008, 0x00060006, 0x00070006, 0x00050005, 0x00080308, 0x00070205, 0x00040001,
- 0x00170d0e, 0x002f294b, 0x0033316e, 0x001e2271, 0x00141d5a, 0x00141a52, 0x00171859, 0x00181364, 0x00121665, 0x00101655, 0x000f1648, 0x000e143e, 0x000f103a, 0x0011133e, 0x00131948, 0x00121b56,
- 0x00151e62, 0x0031326d, 0x0070628d, 0x00a5859b, 0x009f675d, 0x00683d29, 0x00674327, 0x00946f51, 0x00a37a5a, 0x009c744e, 0x00956f43, 0x008a6838, 0x007b5b2c, 0x0076552b, 0x00795931, 0x007d5f38,
- 0x00836c3f, 0x008f7646, 0x009d8451, 0x00a28854, 0x00a98b59, 0x00a48553, 0x009f8050, 0x009e7c4e, 0x009c7454, 0x00a78063, 0x00cda680, 0x00f4d297, 0x00ffeccf, 0x00e2d6d4, 0x00575367, 0x000c0e33,
- 0x000b092f, 0x00120f2f, 0x000f0a25, 0x000f0d23, 0x000b0b21, 0x00100b22, 0x00130823, 0x00100724, 0x000e0620, 0x000e0620, 0x000c0720, 0x000b081e, 0x000b081e, 0x0009091d, 0x0006091c, 0x0006091d,
- 0x000c061d, 0x0009051a, 0x000a051b, 0x000a061a, 0x000b091b, 0x000a0819, 0x000b0918, 0x000a0918, 0x000e0b1a, 0x000e0c19, 0x000d0e17, 0x000b0f16, 0x000c1119, 0x000e141c, 0x000f161c, 0x0011191d,
- 0x00131c1c, 0x00121d1c, 0x00161f1e, 0x00141f1e, 0x0016211f, 0x0018221c, 0x00182019, 0x00171e18, 0x0019221d, 0x001d2520, 0x00202822, 0x001f2822, 0x00202a23, 0x00222b25, 0x00212b24, 0x001d2921,
- 0x00242a23, 0x00292f26, 0x0031372c, 0x00353b31, 0x003b4237, 0x003f453b, 0x00464b40, 0x00494d41, 0x0051594e, 0x008b9086, 0x00f7f9f2, 0x00fbfdfa, 0x00fcfdfa, 0x00f9fbfa, 0x00fafefc, 0x00dfe0df,
- 0x008d9090, 0x009b9c9d, 0x00cfd1d3, 0x00ebecef, 0x00f8fafe, 0x00eff5fb, 0x00dde9e2, 0x00adbda2, 0x00858671, 0x00868288, 0x0098879c, 0x00695665, 0x004b3110, 0x0060451a, 0x008a6645, 0x009a7269,
- 0x00897e76, 0x00888178, 0x00aaa5a3, 0x00c1c1c5, 0x00c1c8d4, 0x009eaab3, 0x00919ba1, 0x00a4abad, 0x00a2a39b, 0x00b6b5ac, 0x00b4acab, 0x00cbbbd0, 0x00b7a8b8, 0x00b4a8b1, 0x00d5cbcc, 0x00bdb1ad,
- 0x00a38d88, 0x00967674, 0x004f222a, 0x00400914, 0x00420313, 0x00221930, 0x00354567, 0x004c608a, 0x00506fa9, 0x005b82c4, 0x00719ce2, 0x0079abef, 0x0085b1ed, 0x0086ace3, 0x0089acdc, 0x0086a5cf,
- 0x008e9eba, 0x00afbdd4, 0x00dce3f8, 0x00d3dce0, 0x00bdbab8, 0x00bcb9ad, 0x00d3d0c4, 0x00d8d8cb, 0x00d8dad4, 0x00d5dcd9, 0x00d3dad3, 0x00dae4cc, 0x00d4d6cf, 0x00cccbca, 0x00c5c0c2, 0x00ada39e,
- 0x009b8b76, 0x00887956, 0x00836f49, 0x00816a42, 0x008d704d, 0x008b6b42, 0x008d6c43, 0x00876844, 0x007d7059, 0x00867f70, 0x008c8d84, 0x00999e9b, 0x00d9dddd, 0x00f6f9fb, 0x00fbfcfb, 0x00fdfcfd,
- 0x00fdfdfc, 0x00fafbfa, 0x00babdbe, 0x006e7778, 0x005e6a6b, 0x0057686a, 0x00596b70, 0x0059686f, 0x005b6671, 0x0057636e, 0x00546269, 0x004a5d60, 0x0047585d, 0x004b5c63, 0x004f5f66, 0x004d5d65,
- 0x004f5c66, 0x00485b62, 0x0041525c, 0x00384854, 0x00384854, 0x0030414d, 0x00202e3f, 0x001c2c3e, 0x001e2d46, 0x0026324a, 0x00727e94, 0x00ccdce8, 0x00f2fcfc, 0x00eaf6f4, 0x00e9f2eb, 0x00eff9ec,
- 0x00f5f4fc, 0x00f2f3fb, 0x00eceff6, 0x00dde2e3, 0x00cdd2c9, 0x00c7c9b6, 0x00cec8af, 0x00daccab, 0x00e9c8a5, 0x00ebc49c, 0x00efc591, 0x00d6af64, 0x00836b38, 0x004d3a20, 0x005c4b41, 0x00564646,
- 0x005c4133, 0x00684729, 0x00714a1e, 0x0083591f, 0x00af873e, 0x008c6e2d, 0x00594209, 0x00513c0d, 0x00382d11, 0x00454231, 0x00969991, 0x00a7acab, 0x0075747d, 0x002c2431, 0x000e010f, 0x00150816,
- 0x003d3741, 0x0065646c, 0x00858a8f, 0x007a8180, 0x004e503b, 0x00272209, 0x00514620, 0x006e5f38, 0x00453b20, 0x00473f31, 0x007d756f, 0x0076726d, 0x003b3631, 0x003c3834, 0x004c4948, 0x002e2c2b,
- 0x00323633, 0x00555955, 0x00545958, 0x004d5454, 0x005c6364, 0x005b6a70, 0x00586976, 0x00576776, 0x0058687c, 0x00495871, 0x00263354, 0x00111c45, 0x00131d55, 0x001a2163, 0x00191e69, 0x00161a6b,
- 0x000f2250, 0x000b1d4f, 0x0012225b, 0x00233274, 0x00232f7d, 0x00212f7e, 0x00273584, 0x00293981, 0x00313f82, 0x002c3c79, 0x001b2e5d, 0x0011263e, 0x000d242a, 0x000c251e, 0x000d271d, 0x000f2723,
- 0x000f2433, 0x000f2337, 0x000f2534, 0x00102826, 0x000f2a17, 0x000c2823, 0x000c292a, 0x000e2a2b, 0x00102a2c, 0x0010292c, 0x0010282b, 0x0010262a, 0x0012262a, 0x0013272b, 0x0015292c, 0x00162a2d,
- 0x00c6b79f, 0x00755844, 0x00d9c5b6, 0x00fcf6eb, 0x00fefefa, 0x00f6fcf9, 0x00fefefd, 0x00f4f1ed, 0x008f8174, 0x003b2618, 0x00462b1a, 0x004d2d1b, 0x00533121, 0x00573526, 0x00573628, 0x00563729,
- 0x0055382a, 0x0055392c, 0x00573b2d, 0x00573b2e, 0x00583c30, 0x00583a2a, 0x005c3c29, 0x005f412b, 0x0064452b, 0x0065472c, 0x0066482d, 0x0065482a, 0x00634726, 0x00644725, 0x00664925, 0x00684b24,
- 0x006b4d35, 0x00694e3a, 0x00644b3b, 0x005c4639, 0x004a3d34, 0x00443932, 0x003b322c, 0x00322b28, 0x00312925, 0x00312824, 0x002c2322, 0x002b2125, 0x002b2125, 0x00291f22, 0x00271c1b, 0x002a1d19,
- 0x002d1e19, 0x0033221c, 0x003a2821, 0x003e2e24, 0x00443227, 0x004e3628, 0x00523727, 0x00523927, 0x004e3729, 0x004a3629, 0x00463328, 0x00413026, 0x00382a22, 0x00342720, 0x00312520, 0x002e2420,
- 0x0026211f, 0x00262120, 0x00272221, 0x00252020, 0x00231d1c, 0x00201b19, 0x001e1918, 0x001b1517, 0x0016110e, 0x00171211, 0x0020140e, 0x00391b0e, 0x004e2a17, 0x0062311d, 0x00753b22, 0x00864226,
- 0x00954e2a, 0x00a15437, 0x00a65a3e, 0x00a55a40, 0x00a65f49, 0x009d644f, 0x009a6b57, 0x009b7261, 0x00957e79, 0x00968585, 0x00979094, 0x00a19fa5, 0x00adb0b6, 0x00c2c4ca, 0x00cbcecf, 0x00d9dad8,
- 0x00e3e2e6, 0x00f6f8fa, 0x00f8f9fa, 0x00f7f8f8, 0x00ffffff, 0x00fefbfb, 0x00fffafa, 0x00fdf9f8, 0x00fffbf9, 0x00fffbf9, 0x00fffcfa, 0x00fcfdfc, 0x00fdfcfe, 0x00fdffff, 0x00fbfdfc, 0x00f8fbfa,
- 0x00f6faf7, 0x00fcfffd, 0x00fafdfc, 0x00fafcfd, 0x00fbfdfd, 0x00f8fdfe, 0x00d9e1dd, 0x00d1d9cf, 0x00c5ccbd, 0x009a9ea0, 0x00767987, 0x008182a1, 0x009792b6, 0x00aaa8bf, 0x00acabb5, 0x00a3a3a1,
- 0x00b09aab, 0x00a797a5, 0x0071646e, 0x00837c80, 0x00b1b2b1, 0x00cfcfcd, 0x00c4c4c3, 0x00a4a1a2, 0x00786c71, 0x006f5f69, 0x00a79aa4, 0x00ccc2d3, 0x00cbc2cc, 0x00aba2aa, 0x006f6c6a, 0x0074726e,
- 0x00908d88, 0x009b9899, 0x0098929b, 0x007d798c, 0x004d4a5e, 0x00353d69, 0x00233568, 0x00192f5c, 0x000d2453, 0x00112152, 0x00293759, 0x00636c7e, 0x008f9a90, 0x0059687a, 0x00384f7a, 0x003850a6,
- 0x0082758a, 0x00cdc1d3, 0x00dfd5e0, 0x00e1dae0, 0x00cfcccb, 0x00c7c7c5, 0x00c8caca, 0x00dadce2, 0x00e7e9f4, 0x00a5a7bd, 0x005a5a6e, 0x00888889, 0x00b3b1b4, 0x00a9a7a7, 0x00aaa7a9, 0x00a4a1a4,
- 0x008c8888, 0x00958f90, 0x00b1aaab, 0x00cec4c7, 0x00cdc4c5, 0x00b5b8ba, 0x00c6d0d1, 0x00c3c8cd, 0x00b8b6c1, 0x00aba4b2, 0x00a69fad, 0x00b7aeb9, 0x00d2caca, 0x00c7c3ba, 0x00969081, 0x00b1ae9b,
- 0x00c9c4d2, 0x00918d9d, 0x00605f6f, 0x009a9aaa, 0x00c0c0d1, 0x00c0c0cf, 0x00c9cad3, 0x00d0d2d8, 0x00cacdc7, 0x00bdc0b9, 0x00b5bebd, 0x008ea5bc, 0x008a939f, 0x00d2d0d9, 0x00d8cfd0, 0x00d5c9c9,
- 0x00d5d3d3, 0x00d3d1cf, 0x00b9b9ad, 0x00afa798, 0x00afa185, 0x009b966f, 0x009d9f7f, 0x00a2a5a5, 0x007c8494, 0x00808f8d, 0x0096a99b, 0x00a3b7a4, 0x00c7ceda, 0x00cbc9d8, 0x00b1aab5, 0x00c4bab9,
- 0x00d4d6de, 0x00c8c9d0, 0x00bdbbc1, 0x00c3c0c2, 0x00c1bcbb, 0x00a8a29d, 0x008a827a, 0x0092887f, 0x00a5978a, 0x00b5a599, 0x00d2cac2, 0x00a8aeaf, 0x006a6d6e, 0x006c6a6e, 0x00787678, 0x00878385,
- 0x00aca6a9, 0x00c9c1c4, 0x00cfc8cb, 0x00dad8d8, 0x00fdfefd, 0x00fcfdfc, 0x00fdfdfe, 0x00fdfdfd, 0x00fdfbfb, 0x00bebdbd, 0x006a6a6b, 0x00939596, 0x00d1d2d4, 0x00ebedee, 0x00fafafb, 0x00fcfcfc,
- 0x00fefdff, 0x00fffeff, 0x00fefefe, 0x00fefdfd, 0x00fffdfe, 0x00fffdfe, 0x00fdfdfe, 0x00fcfefe, 0x00fbfffd, 0x00fbfeff, 0x00fafdfe, 0x00fffdfd, 0x00fcfcfd, 0x00fffbfe, 0x00fffbfb, 0x00fff8f9,
- 0x00fdfcfc, 0x00fdf6f7, 0x00fcf8f5, 0x00fef9f8, 0x00fff9f5, 0x00f9eaed, 0x00faeef0, 0x00fdf5f4, 0x00f8f3f4, 0x00f0eff1, 0x00ebefef, 0x00e7eff0, 0x00e6edf4, 0x00e5ecf4, 0x00dbe1e7, 0x00a8abb6,
- 0x00847d78, 0x0078736d, 0x006a6660, 0x00635f58, 0x005a564b, 0x00585347, 0x00534f42, 0x00504c3f, 0x004b493d, 0x00464335, 0x003e3b2b, 0x003b3a26, 0x00363622, 0x00353320, 0x00322e1d, 0x00322f1d,
- 0x00363121, 0x00353122, 0x00363322, 0x00383525, 0x003d3b2c, 0x00403f2e, 0x00424330, 0x00404232, 0x00414234, 0x0044463a, 0x00494a42, 0x00474844, 0x00434349, 0x003a3b47, 0x0036384a, 0x00363a4e,
- 0x00323962, 0x002d3254, 0x00787a93, 0x00e3e4eb, 0x00fffefe, 0x00fdfcf9, 0x00fcfcf8, 0x00fefdfd, 0x00d3d1da, 0x007d7b88, 0x00595963, 0x006b6c70, 0x0087888f, 0x0090929b, 0x008a9199, 0x0088919b,
- 0x0089919d, 0x00858d99, 0x00949ca4, 0x00b6bec4, 0x00c9d2d3, 0x00939da4, 0x00283138, 0x000d1517, 0x000b100e, 0x00080c09, 0x00151618, 0x004e4f58, 0x00a9acba, 0x00c0c7d3, 0x00c1ccd4, 0x00bdc8ce,
- 0x00bfc0cc, 0x00c3c5cd, 0x00b6b6bd, 0x00b0aeb1, 0x00969490, 0x00636058, 0x0039342d, 0x00312923, 0x0039302e, 0x003c302d, 0x00393331, 0x002f3432, 0x00353131, 0x003e3331, 0x003f2d29, 0x00432622,
- 0x00502b24, 0x005f3129, 0x00663a2c, 0x00744434, 0x007b4a38, 0x006f4c3e, 0x00634e41, 0x00635145, 0x005e534e, 0x005f5753, 0x00605a57, 0x00645e59, 0x00696058, 0x00706257, 0x00786858, 0x007c6a57,
- 0x007b6958, 0x007f6f60, 0x007c6e63, 0x00817972, 0x00a5a1a3, 0x00babcc1, 0x00b2b7bf, 0x00a1a6b1, 0x00868b96, 0x007e828e, 0x00898d98, 0x009297a1, 0x009ca0ab, 0x00a4a9b3, 0x00a2a8b0, 0x009ea5aa,
- 0x009ba1a5, 0x00999ca2, 0x00979b9e, 0x0092989a, 0x008a8f92, 0x00898b89, 0x0082827b, 0x00787973, 0x00707370, 0x006c6c6b, 0x00636363, 0x00615f60, 0x005c5c5b, 0x00424140, 0x00272726, 0x00262424,
- 0x00302c31, 0x003d3a3e, 0x00464246, 0x00403c3f, 0x003e3a3b, 0x00474443, 0x00595653, 0x006d6966, 0x0080807a, 0x008d8d86, 0x00989794, 0x009f9fa1, 0x00aeaeb2, 0x00bebcc2, 0x00cacbd1, 0x00cacfd3,
- 0x00c4cbd2, 0x00bcc7ce, 0x00c1ced6, 0x00cfdee6, 0x00d4e6ed, 0x00d4e1ea, 0x00d4dce6, 0x00cfdae5, 0x00cfd9e2, 0x00d2dde6, 0x00d3dfe8, 0x00d6e2ea, 0x00d7e3eb, 0x00dde8f0, 0x00e3eef6, 0x00e4f0f8,
- 0x00eaf3f7, 0x00edf6fb, 0x00ecf4f8, 0x00e6ecf0, 0x00eff2f4, 0x00fdfeff, 0x00fefcfc, 0x00fefcfc, 0x00fffdf9, 0x00ede8e5, 0x00706c6c, 0x00211b22, 0x00140b13, 0x000a020c, 0x00040007, 0x00040006,
- 0x00060009, 0x0006000a, 0x0007000b, 0x0006000d, 0x0006000e, 0x0006010d, 0x0007010b, 0x00070109, 0x00050008, 0x00050007, 0x00060006, 0x00060006, 0x00070107, 0x00080308, 0x00070106, 0x00060004,
- 0x00210f14, 0x003e3155, 0x0037336d, 0x001c206e, 0x00131c55, 0x00161b55, 0x001b1a5c, 0x001d1567, 0x00171665, 0x00151857, 0x0013194b, 0x00161546, 0x0015133d, 0x00131343, 0x00131549, 0x00101756,
- 0x0015206c, 0x002b2c70, 0x005e5385, 0x00735472, 0x00592622, 0x00451903, 0x00603a13, 0x00936a40, 0x00ae8359, 0x00af8456, 0x009e7143, 0x009b7042, 0x00916640, 0x008a6042, 0x008a6146, 0x008f664e,
- 0x0093724b, 0x009a784d, 0x00a38254, 0x00a98a56, 0x00b4945c, 0x00b4955a, 0x00b5965b, 0x00b8965d, 0x00b5925a, 0x00bc9866, 0x00d4b479, 0x00f4db98, 0x00f8f1c7, 0x00f8f5e7, 0x00a4a6af, 0x00363c55,
- 0x000b0727, 0x00110927, 0x000f0823, 0x000e0820, 0x00090d24, 0x000e0722, 0x000e0520, 0x000e051f, 0x000c051e, 0x000b051d, 0x000a061d, 0x0009071c, 0x00080519, 0x00070619, 0x0008091a, 0x0007091b,
- 0x000a0517, 0x000a0517, 0x00090516, 0x000b0718, 0x000c0918, 0x000e0b19, 0x000d0b18, 0x000d0c17, 0x000d0c18, 0x000d0d16, 0x000e1016, 0x00101418, 0x0012161b, 0x0014191d, 0x00161b1e, 0x00151b1c,
- 0x00141f1c, 0x0015201b, 0x0018231e, 0x0018231f, 0x001a2520, 0x001c261f, 0x001c251e, 0x001c231d, 0x001f2822, 0x00242c25, 0x00252d26, 0x00222b23, 0x00232d25, 0x00252f27, 0x00242f26, 0x00222e24,
- 0x00293327, 0x002f372b, 0x00373e32, 0x003b4236, 0x0043493d, 0x00464c40, 0x004d5447, 0x004b5245, 0x0051594c, 0x007f857a, 0x00e3e7df, 0x00fbfdfb, 0x00fbfdf9, 0x00fbfefb, 0x00fafefa, 0x00e7ebe6,
- 0x009ca0a1, 0x008e9193, 0x00c1c5c5, 0x00dde1e1, 0x00eff2f5, 0x00edf0fb, 0x00f5fbfb, 0x00f0fae4, 0x00e8ebd6, 0x00e4e2e7, 0x00ddd5e6, 0x00b5aabb, 0x0063583d, 0x00635638, 0x00907e67, 0x00ae9898,
- 0x00a89c99, 0x009c9492, 0x00928b8a, 0x00b0aab0, 0x00c8c5cd, 0x00a6a5b0, 0x00908f98, 0x009d9ea4, 0x00949393, 0x009d9b99, 0x009f9d94, 0x00a8a194, 0x00a6a18e, 0x00b6b09d, 0x00c0ba9e, 0x00b4ab89,
- 0x00b1a384, 0x00ab9375, 0x007f6045, 0x006b462f, 0x006b402c, 0x0062565b, 0x00616a7d, 0x0065728b, 0x0059729d, 0x005a78ae, 0x00678dca, 0x0079a3e3, 0x0083ade7, 0x007da1da, 0x007a9ed0, 0x007e9ecb,
- 0x007c94b7, 0x00899bb8, 0x00a1b0c5, 0x00a8b0b9, 0x00acaead, 0x00aca9a2, 0x00a8a69b, 0x00adaea2, 0x00b7b9ad, 0x00b6b9b4, 0x00b8bdb4, 0x00bfc6b1, 0x00c2c4bf, 0x00cbc9c8, 0x00cfccca, 0x00c0b7b2,
- 0x008b7b65, 0x007d6a48, 0x00806c44, 0x00876f47, 0x008e704f, 0x008c6f4a, 0x00856b47, 0x00836e4d, 0x00877e6b, 0x008f8c80, 0x0090938f, 0x008f9694, 0x00bfc5c6, 0x00f1f6f5, 0x00f9fcfc, 0x00fcfdfd,
- 0x00fffdfe, 0x00fefeff, 0x00cfd3d4, 0x007d8687, 0x00556062, 0x00566466, 0x00536367, 0x00506066, 0x004e5a65, 0x004f5b66, 0x004f5d65, 0x0044585b, 0x00425359, 0x0045565d, 0x004b5a63, 0x00495862,
- 0x004d5e69, 0x004d5c66, 0x00465360, 0x003a4b58, 0x003a4855, 0x00294853, 0x00133644, 0x00132e3c, 0x0026293d, 0x00584e61, 0x00d3c3d6, 0x00f9f3fe, 0x00fdf3f6, 0x00fdf8f7, 0x00f9faf1, 0x00f2fced,
- 0x00feecf5, 0x00fbe8ec, 0x00f5dfdd, 0x00e7d3c8, 0x00d8cab5, 0x00d3c9aa, 0x00dbcda7, 0x00e1d0a0, 0x00e3cc96, 0x00e3c68f, 0x00d9b886, 0x00a9844e, 0x00573f13, 0x0059451b, 0x0097875f, 0x00958458,
- 0x00b69a63, 0x00c7a369, 0x00bb955a, 0x00c29860, 0x00af895c, 0x00825e3b, 0x00503415, 0x003d2208, 0x002e200e, 0x0041382a, 0x0068645c, 0x006c6962, 0x00463f35, 0x0024180d, 0x00221405, 0x00281b08,
- 0x003d3638, 0x00666469, 0x00979b9e, 0x008b9291, 0x00585949, 0x00352f18, 0x00433514, 0x0063512e, 0x004f3d23, 0x00413423, 0x006b6358, 0x007b7976, 0x0035322c, 0x000b0808, 0x00211f20, 0x00322f30,
- 0x004b4e50, 0x005f6366, 0x005b6166, 0x00576166, 0x006b757c, 0x00677681, 0x005b6b7a, 0x005b6878, 0x005a677d, 0x005f6b87, 0x00657293, 0x0047527a, 0x00202961, 0x001a2261, 0x001f276c, 0x001c246f,
- 0x0014225f, 0x000e1b5b, 0x00112060, 0x00212f76, 0x00223079, 0x0023307e, 0x0023317d, 0x0024327c, 0x0034438c, 0x003e4f97, 0x00364983, 0x0021335f, 0x000e2333, 0x00071f22, 0x000a241d, 0x000d2521,
- 0x000f252f, 0x000f2535, 0x00112733, 0x00132931, 0x00132c24, 0x00102b29, 0x00102b2c, 0x00122c2f, 0x00112d2f, 0x00112c2e, 0x00122a2e, 0x0013292d, 0x0014282d, 0x0015292e, 0x00172b2f, 0x00192d31,
- 0x00c9b79f, 0x006d4f39, 0x00cab5a4, 0x00faf4e9, 0x00fcfdf9, 0x00f8fcfa, 0x00fdfffe, 0x00f9f9f5, 0x009c8e84, 0x003c271b, 0x0043281a, 0x0047291a, 0x004d3021, 0x004f3224, 0x00503225, 0x004e3124,
- 0x004f3227, 0x004e3227, 0x00503529, 0x0050372d, 0x0051382e, 0x00513527, 0x00553627, 0x00573a29, 0x005d3e29, 0x005c3e28, 0x005c3f26, 0x00583c20, 0x00573c1f, 0x00573b1b, 0x005e411f, 0x00634525,
- 0x0062452f, 0x00614532, 0x005d4634, 0x00544132, 0x0047392f, 0x003d312a, 0x00342a25, 0x002f2422, 0x002e2421, 0x002b221c, 0x002a1f1c, 0x00281c1e, 0x002b1e21, 0x002e2124, 0x00312323, 0x002f231f,
- 0x00352424, 0x00352421, 0x003a2823, 0x003b2a22, 0x00403024, 0x00453224, 0x00493426, 0x00473526, 0x00463529, 0x00433428, 0x00423128, 0x003b2c24, 0x002d241d, 0x00261f18, 0x00231d16, 0x00221f15,
- 0x00221b1c, 0x001f1819, 0x001c1615, 0x001b1514, 0x001b1716, 0x001d1919, 0x00221e1e, 0x00282422, 0x00342b2d, 0x003a3634, 0x004e4444, 0x00655554, 0x007e6a63, 0x008f7468, 0x00a68273, 0x00b38e7a,
- 0x00ce9b89, 0x00dca897, 0x00e4b4a4, 0x00e8b9ae, 0x00efc5be, 0x00f3cec6, 0x00f1d9cd, 0x00f3e0d8, 0x00f5e9ea, 0x00f3eced, 0x00f3f2f3, 0x00f0f1f3, 0x00f4f8fa, 0x00f8fafc, 0x00fcfefd, 0x00fcfdfa,
- 0x00fdfafd, 0x00feffff, 0x00feffff, 0x00fdfefe, 0x00fcfefe, 0x00fdfcfd, 0x00fefbfd, 0x00fdfcfd, 0x00fefcfa, 0x00fdfaf9, 0x00fcf9fa, 0x00f8fcfc, 0x00f9fefd, 0x00f7fefb, 0x00f9fefc, 0x00fafdfc,
- 0x00f8fbfa, 0x00fbfdfc, 0x00fbfdff, 0x00fafdfb, 0x00fcfdfd, 0x00f3f7f7, 0x00e0e8e8, 0x00c9d2cd, 0x00cfd4cd, 0x00c2c5c6, 0x009a98a8, 0x009390a8, 0x00ada6c1, 0x00c2bdca, 0x00b2afb1, 0x008d8d7f,
- 0x00a57f8d, 0x00a58993, 0x00614e58, 0x00655a65, 0x008c8c96, 0x009d9fa9, 0x00a5a6ad, 0x00a3a0a4, 0x009a8b90, 0x00988588, 0x00c6b5bd, 0x00d7d6de, 0x00c3c1c9, 0x008a898f, 0x004c494b, 0x00727272,
- 0x00aba5aa, 0x00b1aeb0, 0x009f9b9f, 0x00828084, 0x00524d55, 0x0036395e, 0x00363f76, 0x00353f7b, 0x0027396a, 0x0027364d, 0x00414c52, 0x00656b5c, 0x007f817c, 0x006a6e7f, 0x00434c74, 0x002c3975,
- 0x007c6f80, 0x00cfc3d1, 0x00dad0d8, 0x00d7d0d2, 0x00c1bdb9, 0x00cac8c8, 0x00d4d3d5, 0x00e1e0e5, 0x00f0effe, 0x00c3c3d5, 0x00797886, 0x00737272, 0x00989795, 0x00adaca9, 0x00979493, 0x00868281,
- 0x00746c71, 0x00655f63, 0x00696066, 0x007c7678, 0x00a59b9f, 0x00acb0af, 0x00c2cbcb, 0x00bac1c4, 0x00c0beca, 0x00cac7d3, 0x00e2dcea, 0x00e3dbe7, 0x00e5e2e1, 0x00d8d8cf, 0x00a1a190, 0x00b3b69e,
- 0x00c5c3d6, 0x008b8a9c, 0x0069687a, 0x00a7a7b7, 0x00bdbdcc, 0x00c9c9d6, 0x00d4d6dc, 0x00d5d9d7, 0x00d2d7cc, 0x00c4c9bb, 0x00acb7b5, 0x008299ac, 0x00828d98, 0x00d0d0d7, 0x00d4cdd0, 0x00d6cdcc,
- 0x00ddd7d6, 0x00d4d0cc, 0x00b4aea6, 0x00a69f8c, 0x00a8987d, 0x008c8a61, 0x00949879, 0x00babdba, 0x00afb3c6, 0x009aa7a5, 0x0096a596, 0x009fad9d, 0x00bdc2cd, 0x00c1bcce, 0x00a9a0ab, 0x00b8afaa,
- 0x00c9c8d0, 0x00bebec4, 0x00bebcc1, 0x00cbc7c9, 0x00beb7b7, 0x008f8683, 0x00736963, 0x00897f77, 0x00aa9b92, 0x00b6a89c, 0x00d1ccc1, 0x00a0a7a5, 0x00686b69, 0x006e6b6d, 0x00797575, 0x008a8485,
- 0x00afa6a9, 0x00cdc4c7, 0x00d4cccf, 0x00dddadb, 0x00fdfefe, 0x00fdfdfd, 0x00fffefe, 0x00fefdfc, 0x00f7f5f5, 0x00bbbbbb, 0x0069696a, 0x00949597, 0x00d5d5d7, 0x00f1f3f4, 0x00fdfeff, 0x00fafdfd,
- 0x00feffff, 0x00feffff, 0x00fcfdfe, 0x00fbfcfd, 0x00fbfcfd, 0x00f9fcfd, 0x00f9fdfd, 0x00f9fefe, 0x00fafefc, 0x00f9fefe, 0x00fafcfd, 0x00fdffff, 0x00fdfdff, 0x00fafcfe, 0x00fcfcfe, 0x00fbfdff,
- 0x00fcfafd, 0x00fefefd, 0x00fffdfd, 0x00fbfafb, 0x00fefbfa, 0x00fffafc, 0x00fcf9f7, 0x00fcfaf7, 0x00fffdfc, 0x00fcfefa, 0x00f9fcf8, 0x00f8fcfc, 0x00f9fcfd, 0x00f8fbfc, 0x00fbfbfd, 0x00f1f0f4,
- 0x00eeebeb, 0x00e9e7e5, 0x00dfdedb, 0x00d4d4d0, 0x00cac9c2, 0x00bcbbb5, 0x00acaca6, 0x00a0a29a, 0x0099988f, 0x008d8d84, 0x007f8075, 0x0079796d, 0x00717063, 0x0069695b, 0x00606052, 0x005c5d50,
- 0x00515247, 0x004d4d42, 0x00454438, 0x00414035, 0x00414036, 0x00424135, 0x003f3d31, 0x003c392f, 0x0039382f, 0x003a3a31, 0x003b3b35, 0x003c3d3a, 0x0037393f, 0x00363843, 0x0038394a, 0x003c3c4f,
- 0x00383c64, 0x002d3251, 0x007b7c93, 0x00e8e7ec, 0x00fffdfb, 0x00fffbf9, 0x00fefbf8, 0x00fefcfd, 0x00d5d3db, 0x0082818c, 0x0063636d, 0x006f7379, 0x00868991, 0x008c9199, 0x008c9098, 0x008c9099,
- 0x00888f95, 0x00889096, 0x00a6acb3, 0x00c7cdd3, 0x00c4cbce, 0x0080868d, 0x00171c21, 0x000c0f11, 0x00090a0a, 0x000e0e0c, 0x00070606, 0x001f1f22, 0x0060626b, 0x00898e98, 0x00b0b8c1, 0x00c0cad1,
- 0x00c8c7d7, 0x00c6c5d3, 0x00b5b2bc, 0x00a6a5a7, 0x006e6c69, 0x0045403b, 0x00372f2a, 0x0039312a, 0x00443632, 0x00453833, 0x00453e38, 0x0044403b, 0x00524b45, 0x005c4d46, 0x0053413a, 0x00492f29,
- 0x004f2b24, 0x005a3428, 0x00663e31, 0x006d4737, 0x00784d3e, 0x00715045, 0x006c5349, 0x0068564d, 0x00675550, 0x00655751, 0x00675c56, 0x006a605a, 0x006b6057, 0x00716357, 0x00776659, 0x00796759,
- 0x007c6e62, 0x007c7066, 0x00817871, 0x0094908d, 0x00aeafb2, 0x00adb2b9, 0x00949aa4, 0x00878d99, 0x00858c9a, 0x008d94a1, 0x00a4a8b6, 0x00aaadb9, 0x00adb1ba, 0x00a9adb4, 0x00a4a8af, 0x009fa4ab,
- 0x009d9ea6, 0x00999ca1, 0x00959a9c, 0x00909597, 0x00898c8f, 0x00848683, 0x007b7c74, 0x00737470, 0x00726f6d, 0x006e6e6b, 0x006e6d6d, 0x006a6b6c, 0x004a4a4b, 0x00252628, 0x00151318, 0x000f1014,
- 0x0017141b, 0x001b191e, 0x001f1d21, 0x00181618, 0x00121111, 0x00100f0e, 0x001f1e1c, 0x002f2e2c, 0x0043403d, 0x0064605d, 0x00868484, 0x00939597, 0x009fa2a4, 0x00b2b3b6, 0x00c4c6cc, 0x00cad0d5,
- 0x00cacfd7, 0x00c0c9cf, 0x00bac4cb, 0x00bfcad1, 0x00cddbe0, 0x00d9e5eb, 0x00d9e3ec, 0x00d1e0e8, 0x00cfdae5, 0x00cfdae5, 0x00d3dde8, 0x00d5dfe9, 0x00d7e2eb, 0x00dae5ed, 0x00e0ebf3, 0x00e1ecf3,
- 0x00e8eff9, 0x00ecf3fa, 0x00eef3fb, 0x00e7ecf0, 0x00ecf0f4, 0x00f8fafb, 0x00fefefe, 0x00fefdfa, 0x00fffcfb, 0x00f8f3f1, 0x00888386, 0x00201c20, 0x000d060d, 0x00080207, 0x00060008, 0x00060109,
- 0x0007000b, 0x0007000b, 0x0006000c, 0x0006000d, 0x0007000e, 0x0007000d, 0x0007000a, 0x00060108, 0x0008010b, 0x00060009, 0x0008020a, 0x00070107, 0x00090307, 0x00070104, 0x00080105, 0x00080106,
- 0x00321821, 0x004e3b62, 0x003d3374, 0x001f1f6c, 0x00151c58, 0x001b1e58, 0x001c1a61, 0x0020186a, 0x001d1669, 0x00161955, 0x00131a50, 0x0017174c, 0x00161544, 0x00141443, 0x0013144b, 0x00101555,
- 0x00131869, 0x002c2c74, 0x0053457f, 0x006c5371, 0x00603232, 0x004e250e, 0x00744a1f, 0x00a17747, 0x00b68b58, 0x00bb8f59, 0x00af804d, 0x00af7e4f, 0x00a5754f, 0x009c6e4f, 0x00996d51, 0x00976b52,
- 0x009f7351, 0x00a27a51, 0x00a98256, 0x00b18b5a, 0x00bc9960, 0x00c3a163, 0x00c4a264, 0x00c5a665, 0x00c4a568, 0x00c9aa6c, 0x00d6bb7e, 0x00e8d695, 0x00f5f1cb, 0x00f2f4e5, 0x00cad2d7, 0x00737c8e,
- 0x00171533, 0x000b061f, 0x00150d25, 0x000d081d, 0x00090a1f, 0x000b061e, 0x000f0520, 0x000e051c, 0x000b061f, 0x0009051c, 0x0008051c, 0x0008051b, 0x00070519, 0x00080619, 0x00090818, 0x00070816,
- 0x00080414, 0x00080414, 0x00090615, 0x00090613, 0x000c0915, 0x000d0b15, 0x00100e16, 0x00100e15, 0x00121018, 0x00101017, 0x00121318, 0x00131719, 0x00151a1b, 0x00171d1d, 0x00181f1e, 0x00191f1e,
- 0x001c2321, 0x001b2520, 0x001d2721, 0x001e2922, 0x00202a23, 0x001f2921, 0x00202a22, 0x00212b23, 0x00252d27, 0x0027302a, 0x00283129, 0x00262f26, 0x00262f25, 0x00262f26, 0x00262f27, 0x00272f29,
- 0x0034382e, 0x00373c31, 0x003c4238, 0x0041473c, 0x00474e41, 0x004b5144, 0x004f5649, 0x0051584c, 0x0053584e, 0x00747b6f, 0x00d3d9cf, 0x00f7fcf7, 0x00fafef9, 0x00fbfefa, 0x00fdfffd, 0x00f1f3f2,
- 0x00abacaf, 0x00848589, 0x00bbbcbf, 0x00dadbde, 0x00edeff2, 0x00f0f1fb, 0x00f2f4f5, 0x00edf2e1, 0x00edf0e5, 0x00ededf1, 0x00e9e7f3, 0x00e1dde7, 0x00b1b39d, 0x008b8a75, 0x00928f83, 0x00bdb5b9,
- 0x00bbb7b7, 0x00aca6a9, 0x00918c92, 0x00969295, 0x00bab3bb, 0x00afa7af, 0x00908a94, 0x00949197, 0x008d8c90, 0x0086888b, 0x0092918a, 0x0099977f, 0x00b1ab93, 0x00b7b192, 0x00baae8a, 0x00c3b790,
- 0x00c6b28f, 0x00c5b18b, 0x00cfb696, 0x00c8b08c, 0x00bca282, 0x00ada197, 0x00a2a2a5, 0x009498a2, 0x007583a3, 0x00627ba2, 0x005f7bae, 0x006488be, 0x00799dd6, 0x00799fd3, 0x007297cb, 0x007397c7,
- 0x007f99c5, 0x00758cb2, 0x007585a2, 0x00748190, 0x00797c7b, 0x006d6d66, 0x005b574c, 0x00605b50, 0x0069695d, 0x006e7064, 0x00848879, 0x00929a84, 0x00aaada5, 0x00c7c4c1, 0x00d5d0cd, 0x00c9bfb9,
- 0x00978771, 0x007d6a4a, 0x00836d46, 0x00886c47, 0x0090714f, 0x008a6d53, 0x00806a52, 0x0085745f, 0x00958b82, 0x0096938d, 0x00909393, 0x00858b8c, 0x00b0b5b7, 0x00ecf1f1, 0x00fafefd, 0x00f9fdf9,
- 0x00fffdfd, 0x00fbfcfc, 0x00e2e6e8, 0x00929a9c, 0x004e5a5c, 0x004d5a5d, 0x004c5b5f, 0x0045565b, 0x0046535d, 0x0048525f, 0x004a5661, 0x00425358, 0x003e4f55, 0x0044565c, 0x004b5c64, 0x004b5b66,
- 0x0052606f, 0x004f5f6d, 0x00475665, 0x00404f5d, 0x003a4a58, 0x00364458, 0x002b374e, 0x00152333, 0x00323c45, 0x008a8e90, 0x00f8f4f6, 0x00fcfaf2, 0x00fff6ef, 0x00fff4f0, 0x00fcebeb, 0x00f8e1dd,
- 0x00fcc5c5, 0x00e5aea9, 0x00cd9a91, 0x00caa28e, 0x00d6b99a, 0x00dec8a0, 0x00e3d09e, 0x00e1cc95, 0x00e1ca8d, 0x00dbc684, 0x00c5ab73, 0x00816343, 0x00402a04, 0x00756134, 0x00d3c086, 0x00cfb874,
- 0x00e7c578, 0x00e9c379, 0x00e0b675, 0x00b79361, 0x00715131, 0x004d2c18, 0x003a1a0e, 0x00391c12, 0x003c2820, 0x0036261b, 0x0035291f, 0x0033281a, 0x00372a12, 0x003f2f11, 0x004d3917, 0x004b370e,
- 0x00675d57, 0x0095908d, 0x009e9fa2, 0x00878c8c, 0x005b5752, 0x00403424, 0x003b2710, 0x0040280a, 0x00452c16, 0x0044331d, 0x00594e41, 0x006a6565, 0x00413c3f, 0x001f1b1d, 0x003d3d3f, 0x00525353,
- 0x005c5e65, 0x0061676d, 0x00636871, 0x006b717b, 0x00717883, 0x006b7786, 0x005e6b7f, 0x005b687e, 0x0057627b, 0x00606c89, 0x007f8bac, 0x007d89b0, 0x0041497e, 0x001d245f, 0x001e2765, 0x0020296a,
- 0x0019236c, 0x00101c62, 0x0016226a, 0x00202d72, 0x001f2d74, 0x00212f77, 0x0024327c, 0x00222f7c, 0x00303c90, 0x003b499a, 0x003c4a98, 0x00313f7e, 0x0017284b, 0x000a202f, 0x000a2426, 0x000f2a26,
- 0x0010282c, 0x00102930, 0x00142b34, 0x00172e34, 0x00183131, 0x00163034, 0x00162f35, 0x00163033, 0x00162e33, 0x00152d31, 0x00152c31, 0x00152c31, 0x00152b31, 0x00162b31, 0x00182d33, 0x001b2f36,
- 0x00c9b89e, 0x0063442f, 0x00b9a695, 0x00f9f3e8, 0x00fdfefb, 0x00fafdfc, 0x00fbfdfc, 0x00fefdfb, 0x00ac9f96, 0x00432e24, 0x003f2418, 0x00432719, 0x00462c1e, 0x00472d1f, 0x00452a1d, 0x0043291c,
- 0x00452b22, 0x00442a23, 0x00462d24, 0x00483028, 0x004a322a, 0x004c3023, 0x00503121, 0x00513423, 0x00533624, 0x00543723, 0x0051351f, 0x004e331c, 0x0050341c, 0x0054391d, 0x00573c1f, 0x005b4023,
- 0x005c3e28, 0x005b3e2c, 0x00563e2d, 0x004e3b2d, 0x00473a32, 0x00433731, 0x003f342f, 0x003c302e, 0x00382c28, 0x00312621, 0x002d211e, 0x00291c20, 0x002c1d21, 0x00312125, 0x00362627, 0x00362625,
- 0x00372625, 0x0035231f, 0x0034211e, 0x0034221e, 0x0036251c, 0x0037271c, 0x0037281c, 0x00382b1c, 0x00383124, 0x003c3228, 0x003b3229, 0x00362f28, 0x00362f2b, 0x0036332d, 0x003c3c35, 0x0044423b,
- 0x00494845, 0x00514d4c, 0x005b5756, 0x0066625f, 0x00746f6e, 0x00807c7c, 0x008b8887, 0x00989493, 0x00a9a3a3, 0x00b5b1ae, 0x00c7c3c3, 0x00d4d2d4, 0x00e1ddda, 0x00ebe1dc, 0x00f5e7e1, 0x00faede2,
- 0x00fbf0e5, 0x00fcf5ea, 0x00fcf8f0, 0x00fcf4f4, 0x00fcf8f9, 0x00fef9f6, 0x00fdfbf7, 0x00fdfaf7, 0x00fcfcfd, 0x00fbfdfe, 0x00f7fcfd, 0x00f6fdfe, 0x00f8fcfe, 0x00fafdff, 0x00fbfefd, 0x00fafcf8,
- 0x00fcfefe, 0x00f9fefe, 0x00f9fcfe, 0x00fafdff, 0x00f9fdfd, 0x00fbfefe, 0x00fefeff, 0x00fcfdff, 0x00fefeff, 0x00fefcfd, 0x00fefdff, 0x00fbfefe, 0x00fcfffe, 0x00fafffd, 0x00f9fefd, 0x00f7fdfd,
- 0x00f9fbfa, 0x00fcfefc, 0x00fcfefb, 0x00fcfdfc, 0x00fffdfe, 0x00eff2f8, 0x00c7ced2, 0x00adb4b2, 0x00babfc1, 0x00c9cdd3, 0x00bfbecb, 0x00afadbf, 0x00aca6b4, 0x00bcb7bc, 0x00b6b1ac, 0x009d9a88,
- 0x00bc929a, 0x00b3939d, 0x007d6772, 0x005e5364, 0x0054576c, 0x0052596d, 0x00515968, 0x00646770, 0x008e8186, 0x00998587, 0x00b0a1a4, 0x00c3c8c9, 0x00bec2c6, 0x008a8d93, 0x005a5b62, 0x0093939c,
- 0x00aea8b3, 0x00b6b2b9, 0x00aea9ad, 0x00999795, 0x00696660, 0x004d516c, 0x00444d83, 0x00444e94, 0x00455389, 0x00495a5d, 0x00546344, 0x00616a3b, 0x009d9a98, 0x00afacc7, 0x008385ac, 0x00586289,
- 0x00786d77, 0x00a59aa6, 0x00bab1b7, 0x00c1bcbb, 0x00b8b5af, 0x00bab8b5, 0x00b3b1b2, 0x00bbb8bf, 0x00dbdcea, 0x00e4e5f4, 0x00d0d0da, 0x00aeaeae, 0x00a9a8a5, 0x00aaa6a5, 0x00736e6f, 0x00504d4d,
- 0x00453c40, 0x002d282d, 0x002c2529, 0x005a5358, 0x00b8aeb4, 0x00dee0e1, 0x00e6e9e8, 0x00cdcfd3, 0x00bfbeca, 0x00c5c2cd, 0x00dedce7, 0x00dfdde5, 0x00dee0dc, 0x00cbd5c9, 0x00939d8b, 0x00a6b199,
- 0x00bbbbd5, 0x006b6c83, 0x00696980, 0x00aaa9be, 0x00c3c2d3, 0x00d9d9e4, 0x00e6e7ea, 0x00e0e4dd, 0x00dae1d1, 0x00c5cbb8, 0x009ca8a0, 0x00768ea1, 0x0085909a, 0x00d1d1d7, 0x00cec7c7, 0x00d4cbc9,
- 0x00d9d4d2, 0x00cdc6c4, 0x00a9a197, 0x00a79b8b, 0x00a59176, 0x00817f57, 0x00919575, 0x00b4b5b6, 0x009596a9, 0x00848c8e, 0x0097a195, 0x009ea79b, 0x00b2b3c1, 0x00aba5b9, 0x00988e9c, 0x00b1a8a8,
- 0x00c9c7d0, 0x00bbb9c0, 0x00b3b0b6, 0x00cbc6ca, 0x00b8b1b2, 0x00877e7c, 0x0079706a, 0x008e857e, 0x00a69a92, 0x00b5aaa0, 0x00cdc7bf, 0x009b9f9e, 0x00686969, 0x00747072, 0x00797575, 0x008f8a8a,
- 0x00b3a9ab, 0x00d2cbcc, 0x00d3cdcf, 0x00d8d4d6, 0x00fdfcfc, 0x00fefdfc, 0x00fefcfb, 0x00fdfcfb, 0x00faf9f8, 0x00bfbfbf, 0x006c6b6b, 0x00999a98, 0x00d8d8d7, 0x00f0f3f1, 0x00fdfffe, 0x00f9fdfd,
- 0x00fdfefc, 0x00fffffe, 0x00ffffff, 0x00fdfefe, 0x00fdfefe, 0x00fbfdfc, 0x00f8fdfb, 0x00fbfffc, 0x00f9fefc, 0x00f9fefd, 0x00fafefe, 0x00fafffd, 0x00fbfdfc, 0x00fafdfd, 0x00fafcfd, 0x00fbfcfe,
- 0x00fcfdff, 0x00fbfefe, 0x00ffffff, 0x00fffeff, 0x00fdfefe, 0x00fefcfb, 0x00fef9fa, 0x00fffbfa, 0x00fefcf9, 0x00fdfef7, 0x00fafbf9, 0x00fafdfa, 0x00fdfefc, 0x00fffefa, 0x00fdfafa, 0x00fcfcf9,
- 0x00fdfeff, 0x00fcfefe, 0x00fdfefe, 0x00fdfefc, 0x00fbfcf9, 0x00f9fbf7, 0x00f7faf5, 0x00f6faf5, 0x00f9faf5, 0x00f3f7f2, 0x00eff0ec, 0x00ecebe7, 0x00e3e3de, 0x00dcddd7, 0x00d4d5d0, 0x00cfd0cc,
- 0x00c3c7c0, 0x00bbbdb5, 0x00afb0aa, 0x00a9aaa4, 0x00a1a29b, 0x00999992, 0x008f8d88, 0x00898580, 0x007b7d76, 0x0071726c, 0x006a6967, 0x00676867, 0x005c5d65, 0x00555662, 0x00505061, 0x004a495d,
- 0x00393d5c, 0x0031354e, 0x007c7d91, 0x00e8e8ee, 0x00fdfcfd, 0x00fdfcfb, 0x00fcfcf9, 0x00fcfdfd, 0x00d6d6df, 0x00858590, 0x00646671, 0x0070757d, 0x00848990, 0x008e9399, 0x008f949a, 0x008f9297,
- 0x00898e91, 0x0090979b, 0x00b5bac2, 0x00c8cfd7, 0x00a6adb6, 0x00585e68, 0x000f1117, 0x0017181e, 0x00131014, 0x00161514, 0x000c0908, 0x000e0b08, 0x00111215, 0x002b2e32, 0x0051545e, 0x006c727b,
- 0x00818292, 0x00827e8f, 0x007f7b86, 0x00747275, 0x004e4a49, 0x003c3631, 0x00413b31, 0x004a4337, 0x00554940, 0x00594d42, 0x00574f43, 0x005b5146, 0x00645a4e, 0x00746156, 0x00715d53, 0x00674f46,
- 0x00684a40, 0x0065483d, 0x005c4033, 0x0065483a, 0x006c5041, 0x006b5043, 0x00634c40, 0x005f4b40, 0x00655145, 0x006e5b51, 0x0075625a, 0x0072615a, 0x0071625a, 0x00716257, 0x00726356, 0x00756559,
- 0x00726961, 0x00766f68, 0x00928f8a, 0x00a6a9a7, 0x00a9b0b4, 0x009ea7af, 0x00939ba7, 0x00969fac, 0x00a4adb8, 0x00a7afba, 0x00a7aeb8, 0x00adb1ba, 0x00a7a9b1, 0x00a3a5ac, 0x009ea0a7, 0x009fa1ab,
- 0x00989aa2, 0x0095979b, 0x00929495, 0x008a8e8f, 0x00818385, 0x007a7c79, 0x0073756f, 0x006f716d, 0x00757372, 0x00797a77, 0x00808082, 0x006f6c72, 0x002c2d30, 0x0017161b, 0x0015131c, 0x000f0f16,
- 0x0017141a, 0x00141217, 0x00121014, 0x000f0d0f, 0x000b090b, 0x00040203, 0x00060405, 0x00050405, 0x000d0909, 0x002c2929, 0x005f5d5e, 0x00828283, 0x00939595, 0x00a2a6a7, 0x00bac0c3, 0x00c8d0d5,
- 0x00cad1d8, 0x00c9d2d6, 0x00bec8cd, 0x00b6c2c6, 0x00becacf, 0x00ccd6dd, 0x00d4dee7, 0x00d7e3ea, 0x00d4e2e9, 0x00d1dde5, 0x00cfd9e2, 0x00d2dce6, 0x00d3dee7, 0x00d6e2ea, 0x00dbe6f0, 0x00dee8f3,
- 0x00e2ecf3, 0x00e8f0f9, 0x00edf3fb, 0x00e7edf4, 0x00e8edf0, 0x00f5f8fb, 0x00fcfcfc, 0x00fefcfd, 0x00fdfbfa, 0x00fefdfb, 0x00a39fa1, 0x002c262e, 0x00070106, 0x00070007, 0x00080209, 0x00040008,
- 0x0006000a, 0x0006000a, 0x0006000c, 0x0006000d, 0x0007000e, 0x0008000d, 0x0008010c, 0x0007020b, 0x0009020c, 0x0007020b, 0x0007010a, 0x00070207, 0x00090307, 0x00070003, 0x00080105, 0x000c0409,
- 0x0042242b, 0x00583f69, 0x003f2f74, 0x00231e70, 0x001a1d5d, 0x001b1b59, 0x001e1a60, 0x0023196d, 0x001d1766, 0x00171a53, 0x0015184d, 0x0016154e, 0x00161445, 0x00151344, 0x0015134b, 0x00121558,
- 0x00111568, 0x002c2c75, 0x00413873, 0x00735c80, 0x00966e72, 0x00885f43, 0x0090653c, 0x00ae8453, 0x00ba8d57, 0x00c1935a, 0x00c28f58, 0x00c38f5a, 0x00b58354, 0x00a87a53, 0x00a17551, 0x00a17555,
- 0x00a9784f, 0x00ad8052, 0x00b28756, 0x00b9905d, 0x00c39f67, 0x00caa86e, 0x00c9a96d, 0x00caae70, 0x00c9ad6e, 0x00c8ad70, 0x00cfbb83, 0x00dacfa1, 0x00e1e2cb, 0x00bec7c1, 0x00a3b0b8, 0x008e97a9,
- 0x00403f59, 0x000e091e, 0x00110b1d, 0x000f081a, 0x000c0d21, 0x000a041d, 0x000c0520, 0x000d051d, 0x000a061c, 0x00080619, 0x00070418, 0x00060316, 0x00050415, 0x00050414, 0x00060513, 0x00050612,
- 0x000a0a13, 0x000b0913, 0x000b0a13, 0x000d0d15, 0x000e0d14, 0x000f0e14, 0x00101013, 0x00131215, 0x0018171a, 0x0019191b, 0x00191b1c, 0x001a1d1c, 0x001c201e, 0x001c221e, 0x001e2521, 0x00202723,
- 0x00212922, 0x00212a21, 0x00212c22, 0x00222e23, 0x00242f25, 0x00222d23, 0x00242e25, 0x00262e27, 0x00273027, 0x00263128, 0x00263128, 0x00262f26, 0x00262e25, 0x00262f25, 0x00293229, 0x002c332d,
- 0x0034392c, 0x00373d30, 0x003e4438, 0x0041473b, 0x00474e41, 0x004a5044, 0x004f564a, 0x0051584d, 0x0052584b, 0x00656e5f, 0x00bcc3b8, 0x00f3f7f3, 0x00f9fcf9, 0x00fcfefc, 0x00fdfdfc, 0x00f8fafa,
- 0x00b7b9ba, 0x00878a8b, 0x00b1b2b5, 0x00d5d5da, 0x00edeef3, 0x00f2f1fd, 0x00f3f1f8, 0x00eaede5, 0x00e7ebe0, 0x00ebeceb, 0x00eaeef2, 0x00f1f4f7, 0x00e2eee1, 0x00ced7cc, 0x00bcc7c5, 0x00c7cdd8,
- 0x00c2caca, 0x00b6b7be, 0x0097959a, 0x008b888b, 0x00a6a1a2, 0x00a69fa5, 0x00918d94, 0x0088858d, 0x007c7f84, 0x00787a7f, 0x008a8b86, 0x00a99f86, 0x00afa58b, 0x00b19e84, 0x00c3ae92, 0x00d2b99c,
- 0x00b49c7e, 0x009f8a66, 0x00b19977, 0x00c3b28d, 0x00ccbe9a, 0x00ccc0ab, 0x00c0baae, 0x00b2b2ac, 0x009ca0b0, 0x00828fa9, 0x00657ca0, 0x0058739e, 0x006587b8, 0x007497c9, 0x007397cc, 0x007194ca,
- 0x007396c7, 0x007694bd, 0x007a92b2, 0x00687a8d, 0x00464c4c, 0x00393a32, 0x00332e21, 0x00383120, 0x00494235, 0x00595546, 0x00636553, 0x005a654c, 0x00656b61, 0x008e8f88, 0x00c3bfb9, 0x00d5c9c0,
- 0x00a89b7f, 0x00857150, 0x00826b45, 0x00876b48, 0x008d6d4f, 0x00856d5a, 0x00746353, 0x00807266, 0x00948f8b, 0x0090918f, 0x00878d8e, 0x007e8689, 0x0099a1a0, 0x00d5dbdb, 0x00f9fdfb, 0x00fafdf7,
- 0x00fdfcf9, 0x00fbfcfb, 0x00f0f2f4, 0x00b1b8ba, 0x004e5c5e, 0x00415154, 0x0046565a, 0x0044555b, 0x00414f5a, 0x00444f5d, 0x004b5563, 0x0044535c, 0x0044545b, 0x00495b61, 0x0052636b, 0x0054646e,
- 0x00526370, 0x00556572, 0x004e606d, 0x00495764, 0x003f4f5d, 0x0040405a, 0x0034304c, 0x0028293c, 0x00747f7c, 0x00c9d8cb, 0x00f9fdef, 0x00fcfce8, 0x00fdecde, 0x00f5cfcb, 0x00efafb8, 0x00da8e9c,
- 0x00bd746e, 0x00b67064, 0x00b77867, 0x00c69478, 0x00e6bf98, 0x00edce9f, 0x00e5cb92, 0x00ddc686, 0x00ddc781, 0x00cdb672, 0x009a814b, 0x00563d29, 0x003b2608, 0x007c6b3d, 0x00d9c688, 0x00e6cb7f,
- 0x00dab65e, 0x00c69c4e, 0x00ac8442, 0x00704e21, 0x0038210c, 0x00301308, 0x0030110d, 0x003d201a, 0x00463028, 0x00432e22, 0x003f2b1d, 0x00412e19, 0x004d3717, 0x005b421b, 0x00604318, 0x005f3f10,
- 0x005e5746, 0x00858277, 0x007e7e79, 0x007a7b7a, 0x00645b5d, 0x0046352c, 0x003f251a, 0x003e1e0c, 0x0043280e, 0x0046321a, 0x00483c2a, 0x004c4949, 0x004b4749, 0x004f4c51, 0x005f6064, 0x00626269,
- 0x0061646d, 0x00616771, 0x006e7582, 0x00777e8c, 0x006f7686, 0x00687486, 0x00647286, 0x00627085, 0x00647188, 0x00707c96, 0x008391ae, 0x008995b8, 0x006972a2, 0x00323a71, 0x001c2560, 0x001c2463,
- 0x001e2273, 0x00151b69, 0x00202872, 0x00232d74, 0x001e2a6d, 0x001d2a70, 0x00202f78, 0x0022307f, 0x00313e94, 0x003c49a1, 0x003b47a0, 0x00364396, 0x00223467, 0x00132845, 0x000a232d, 0x000c2925,
- 0x00132d28, 0x00132d31, 0x00162f37, 0x0019303b, 0x0019333c, 0x0018343a, 0x0018343a, 0x0017343a, 0x00163135, 0x00142f33, 0x00142e32, 0x00162f33, 0x00172f34, 0x00182f35, 0x001a3137, 0x001d333b,
- 0x00cab99d, 0x005f3f28, 0x00b39d8d, 0x00faf3eb, 0x00fcfefa, 0x00fcfefb, 0x00f8fbfa, 0x00fffefb, 0x00b4a9a1, 0x0048352c, 0x00392016, 0x003f2619, 0x0041291d, 0x0041291e, 0x003e271d, 0x003a261a,
- 0x003d2a20, 0x003e2a23, 0x00402d24, 0x00402e27, 0x0043302a, 0x00462f23, 0x004a2f21, 0x004a2f23, 0x004b3124, 0x004b3121, 0x004a2f20, 0x00492e1e, 0x004d321e, 0x004e341d, 0x004d341c, 0x004e361b,
- 0x00523422, 0x00523726, 0x00563e2e, 0x00584435, 0x005a4c43, 0x005c4f49, 0x005d514b, 0x00594c49, 0x0050443c, 0x0042362f, 0x00392b28, 0x00312025, 0x002e1a1f, 0x002f1c20, 0x00332324, 0x00322322,
- 0x00331f22, 0x0032201f, 0x00362523, 0x003c2b28, 0x0043332c, 0x00473c31, 0x004f463a, 0x00574f43, 0x00666055, 0x00706a60, 0x00787369, 0x007c7970, 0x0083807b, 0x008c8b85, 0x009c9d96, 0x00abaca5,
- 0x00bebcba, 0x00ccc9c8, 0x00d9d8d6, 0x00e2e1de, 0x00ece8e8, 0x00f1eeef, 0x00f2f2f1, 0x00f4f4f4, 0x00f7f6f4, 0x00faf9f5, 0x00fafcfb, 0x00f6fbfe, 0x00f9fcff, 0x00fdfefc, 0x00fffefb, 0x00fefefa,
- 0x00fefefb, 0x00fffefe, 0x00fffeff, 0x00fffeff, 0x00fbfdfd, 0x00fdfbfb, 0x00fdfbfd, 0x00fffdfe, 0x00fafeff, 0x00f7fdfc, 0x00f7fefd, 0x00f6fefb, 0x00fdffff, 0x00fcfefc, 0x00fbfffb, 0x00fafef8,
- 0x00f9fefd, 0x00f9fefd, 0x00fbfefe, 0x00fafdfd, 0x00fbfdff, 0x00fbfcff, 0x00fdfeff, 0x00fefefe, 0x00fefcff, 0x00fffdff, 0x00fdfdff, 0x00fafefd, 0x00fafcfc, 0x00fdfefe, 0x00fdfffd, 0x00fdfffd,
- 0x00f8fafb, 0x00fefefe, 0x00fefefb, 0x00fcfdf8, 0x00fefefd, 0x00ebeff8, 0x009da4b1, 0x008f95a1, 0x00abadbf, 0x00b1b2c5, 0x00cdc9e1, 0x00beb9cf, 0x00aca5b3, 0x00aba6aa, 0x00a49f9d, 0x008d8a7e,
- 0x009b707c, 0x00785868, 0x005d495d, 0x00453f5b, 0x00374163, 0x00435474, 0x0046556f, 0x00565e73, 0x008b828a, 0x00928282, 0x009f9594, 0x00bec7c8, 0x00c4cad4, 0x008e94a1, 0x006a6c7d, 0x00a5a5bd,
- 0x00bcb5ce, 0x00b0abbc, 0x00a6a4ac, 0x009f9c99, 0x00928d82, 0x00787c93, 0x004e5592, 0x00384299, 0x00435388, 0x004a6051, 0x004e632b, 0x00687833, 0x00b6b1b6, 0x00c0bddd, 0x00bdbee0, 0x00b4bfd1,
- 0x00948c92, 0x00847c82, 0x00928c8d, 0x00a09b99, 0x00979490, 0x0082807d, 0x006b6a69, 0x00858387, 0x00c9c9d3, 0x00e1e4ec, 0x00e1e2e7, 0x00d6d6d3, 0x00c3c0be, 0x00aba9a5, 0x008e8b8a, 0x00727071,
- 0x00625961, 0x005c535a, 0x00736971, 0x00a79fa5, 0x00ded6dd, 0x00faf7f8, 0x00f6f8f7, 0x00dfe1e1, 0x00d0ccd7, 0x00c7c6d0, 0x00d5d5de, 0x00d4d4db, 0x00cfd7d3, 0x00b5c2b6, 0x00798874, 0x008ba185,
- 0x009da1bb, 0x00454860, 0x0065667e, 0x00b3b1c6, 0x00c3c0ce, 0x00d8d4dc, 0x00eae9e9, 0x00e4e4db, 0x00dbdfce, 0x00bec5af, 0x0087958b, 0x00678090, 0x0089939d, 0x00d5d5d7, 0x00c9c4bf, 0x00cdc6c1,
- 0x00d8d0ce, 0x00c4bdb8, 0x00a1998f, 0x00a69887, 0x009d8869, 0x00737246, 0x00888b6c, 0x00989596, 0x00535165, 0x005b5d60, 0x00a0a099, 0x00a8a89f, 0x00bab4c4, 0x00aca3b6, 0x00968e98, 0x00b7b2aa,
- 0x00cbc7cd, 0x00c0bbc1, 0x00b5b2b6, 0x00cdc8ca, 0x00aaa1a4, 0x007b7272, 0x007c7471, 0x008e8581, 0x009d928b, 0x00b5a9a2, 0x00cec8c2, 0x00a0a39f, 0x0070706f, 0x00787373, 0x007a7674, 0x008e8786,
- 0x00b6acaf, 0x00d4cdcf, 0x00ccc6c8, 0x00cfcbcd, 0x00f9f7f6, 0x00fffffa, 0x00fdfdf8, 0x00fdfdfa, 0x00fcfafa, 0x00b4b3b3, 0x00535250, 0x007d7d7b, 0x00b6b1b2, 0x00d2cfcf, 0x00e8e6e4, 0x00eeedeb,
- 0x00faf9f7, 0x00fbfaf9, 0x00fefdfc, 0x00fefefd, 0x00fefdfd, 0x00fefefd, 0x00fcfefb, 0x00fcfefa, 0x00fafffd, 0x00fafffd, 0x00fdffff, 0x00fcffff, 0x00fefefe, 0x00fafffd, 0x00f9fefe, 0x00fbfdff,
- 0x00fcffff, 0x00fafeff, 0x00fbfeff, 0x00fdffff, 0x00fcfeff, 0x00fcfffd, 0x00fefffd, 0x00fdfcfb, 0x00fbfdfc, 0x00fafdf9, 0x00fbfffc, 0x00fcfcfc, 0x00fcfef7, 0x00fffef9, 0x00fbfcf6, 0x00fefaf5,
- 0x00fbfefe, 0x00fafdfe, 0x00fdffff, 0x00fdfffe, 0x00fafcfe, 0x00fafcfd, 0x00fcfdfd, 0x00fbfcfe, 0x00fbfffe, 0x00fafffd, 0x00fcfffd, 0x00fefffe, 0x00fcfffe, 0x00fbfefd, 0x00fbfbfc, 0x00f9f9fb,
- 0x00f9fafb, 0x00f7f9f9, 0x00f6f7f8, 0x00f4f5f5, 0x00f2f3f2, 0x00f2f2f1, 0x00f3f2f2, 0x00f0eeed, 0x00e9e9e6, 0x00e2e2e0, 0x00d7d6d6, 0x00c9c8ca, 0x00bebdc6, 0x00b2b2be, 0x00a5a5b6, 0x00999aac,
- 0x008b8fa6, 0x007f8296, 0x00abadbb, 0x00f0f0f4, 0x00fffcfe, 0x00fdfbf9, 0x00fdfdfb, 0x00ffffff, 0x00d7d9e3, 0x0081848f, 0x00606571, 0x006d737f, 0x00858993, 0x0091959b, 0x00929699, 0x008f9496,
- 0x00909098, 0x009c9da8, 0x00bdc1cf, 0x00c2c9d8, 0x008a93a5, 0x00424956, 0x0013171f, 0x00161624, 0x0009060e, 0x00060407, 0x000a0705, 0x00070503, 0x00040401, 0x00070a09, 0x000a0c10, 0x000f111c,
- 0x001d1a30, 0x00262535, 0x0036323e, 0x00352f34, 0x00383430, 0x00403b31, 0x004d453b, 0x00564f41, 0x00605346, 0x005d5445, 0x00574c3d, 0x004f4332, 0x00514232, 0x005e4c3e, 0x006d584c, 0x0070584c,
- 0x007c5f5c, 0x007a6059, 0x006f5549, 0x00655043, 0x005b483b, 0x00523d32, 0x004c3529, 0x00483427, 0x00584137, 0x006b5549, 0x007a6557, 0x00776457, 0x00746259, 0x00726359, 0x006f6558, 0x006c6458,
- 0x006d6b66, 0x007d7b78, 0x00afb1b0, 0x00b9c0c3, 0x00b2bbc3, 0x00b1bcc6, 0x00bcc7d3, 0x00bac3d1, 0x00bac2cf, 0x00b6bec8, 0x00acb0ba, 0x00a9aab4, 0x00a3a4ad, 0x009d9da4, 0x0096969e, 0x0092949c,
- 0x0090929a, 0x008f9094, 0x008b8e8f, 0x00838889, 0x007a7c7d, 0x0073736f, 0x006f716b, 0x006b706c, 0x00787975, 0x00818582, 0x0087888c, 0x0064626a, 0x001b1b24, 0x0012101b, 0x00110f1b, 0x0010121b,
- 0x00161419, 0x00141317, 0x00121015, 0x000e0c10, 0x0008060b, 0x00050307, 0x0008060a, 0x000b080d, 0x001b191b, 0x00363436, 0x00535154, 0x006c6b6e, 0x00838487, 0x00929598, 0x00abb1b2, 0x00c0c7c9,
- 0x00cbd2d5, 0x00ccd4d6, 0x00c7d2d2, 0x00c0cdcb, 0x00bbc6c6, 0x00bbc6cc, 0x00c7d2db, 0x00d4dee7, 0x00dde7f0, 0x00d8e2ec, 0x00d1dbe6, 0x00d0dae4, 0x00d0dbe4, 0x00d2dde5, 0x00d6e2eb, 0x00d8e4ee,
- 0x00dfeaf2, 0x00e5eff8, 0x00ecf5fc, 0x00e6eef4, 0x00e8edf3, 0x00f5f8fc, 0x00fcfdfe, 0x00fefeff, 0x00fcfdfb, 0x00fefefc, 0x00b1adae, 0x003a3439, 0x00070105, 0x00070106, 0x00090309, 0x00040005,
- 0x00060009, 0x0005000a, 0x0005000c, 0x0006000d, 0x0008010d, 0x0008010d, 0x0008020d, 0x0008020e, 0x0009020c, 0x0007020a, 0x00060209, 0x00060106, 0x000a0408, 0x00080004, 0x00090106, 0x000e060b,
- 0x0049252c, 0x00573963, 0x003b266a, 0x00261e6f, 0x001d1e61, 0x001b1c5a, 0x001e1a61, 0x0023176e, 0x00211667, 0x001b1852, 0x00171649, 0x0013134c, 0x00151144, 0x00141142, 0x0013134a, 0x00121554,
- 0x0016196c, 0x00262772, 0x003d3571, 0x006a567f, 0x00bd98a1, 0x00be9a82, 0x00a37a54, 0x00b3875d, 0x00c4945e, 0x00ca995d, 0x00cb9757, 0x00c99654, 0x00b8884a, 0x00ac7f48, 0x00a87d48, 0x00a67c49,
- 0x00b07d4b, 0x00b58653, 0x00ba8d59, 0x00bf9460, 0x00c7a16e, 0x00cfac79, 0x00d1b07f, 0x00d1b586, 0x00c9b185, 0x00c1ab7d, 0x00bbad8c, 0x00ada9a1, 0x009ca2a7, 0x00788495, 0x007e8ca5, 0x00aab5d3,
- 0x0074738d, 0x00191527, 0x000c0613, 0x00090611, 0x000c0d1b, 0x00040215, 0x0008041b, 0x00080419, 0x0007051a, 0x00060418, 0x00060415, 0x00060513, 0x00050513, 0x00040512, 0x00050611, 0x00050610,
- 0x0006060c, 0x0006050b, 0x0006060c, 0x000a0a0e, 0x000d0c10, 0x000f0f11, 0x00121314, 0x00161616, 0x001c1c1c, 0x001f201e, 0x0020221e, 0x0021241f, 0x00232621, 0x00242823, 0x00262a25, 0x00272c26,
- 0x00252d24, 0x00242d23, 0x00242f23, 0x00253124, 0x00283125, 0x00262e24, 0x00262f26, 0x00272e27, 0x00252d23, 0x00242d23, 0x00252e25, 0x00252f27, 0x00262f27, 0x00262f26, 0x00293228, 0x002c342a,
- 0x0031392a, 0x00363d2e, 0x003b4234, 0x003f4537, 0x00454b3d, 0x00484e41, 0x004d5547, 0x0051584a, 0x004d5345, 0x005b6354, 0x00aab1a7, 0x00f0f4f1, 0x00fbfcfb, 0x00fefefb, 0x00fbfdf9, 0x00f9fdf9,
- 0x00c5c5c7, 0x008e8f90, 0x00a4a5a7, 0x00caccd1, 0x00eff0f4, 0x00f2f0f9, 0x00f3eef6, 0x00ebe8e9, 0x00e6e9e3, 0x00edf2ee, 0x00eef6f3, 0x00e8f5ef, 0x00e3f4ed, 0x00e2f4f1, 0x00def0f6, 0x00d3e4f4,
- 0x00cee0e0, 0x00cadbdc, 0x00a3afb1, 0x00989ea0, 0x00919192, 0x00847f83, 0x008a8589, 0x007d7b7f, 0x0072757c, 0x0073797c, 0x009c9998, 0x00b8a397, 0x00a08779, 0x00a08172, 0x00d4b3a4, 0x00cca897,
- 0x00ab8577, 0x00957661, 0x009a816b, 0x00ad9e84, 0x00bbb095, 0x00c7b59b, 0x00c9b79b, 0x00c3b8a1, 0x00b5b4b0, 0x009ba0a9, 0x007d899e, 0x00657797, 0x005973a3, 0x006a89bc, 0x007295cc, 0x006f96cf,
- 0x00719ad2, 0x006d92c0, 0x007290b2, 0x006e859a, 0x00696e70, 0x006c6d67, 0x0070695d, 0x0073695a, 0x00908677, 0x00a09683, 0x008e8975, 0x00636951, 0x003c3b2e, 0x00545046, 0x0099928a, 0x00c6b8ac,
- 0x00ab9b80, 0x00846f4e, 0x00826d48, 0x00866d48, 0x008a6a51, 0x007f6a5c, 0x00655852, 0x006e6560, 0x008a888a, 0x008a8c8e, 0x00868d8f, 0x007e8789, 0x00899290, 0x00bec5c4, 0x00f4faf5, 0x00fbfef7,
- 0x00fdfcfa, 0x00fcfdfe, 0x00f7fbfc, 0x00c6cece, 0x00566364, 0x00404f50, 0x00455557, 0x0047585c, 0x0044535c, 0x0046535f, 0x004f5b67, 0x004e5f66, 0x004c5b64, 0x00506168, 0x00596971, 0x0057676f,
- 0x00596776, 0x00596974, 0x00546471, 0x004a5a6a, 0x00424f61, 0x0045445d, 0x00342c46, 0x004b4a58, 0x00c4cabb, 0x00f6f9e6, 0x00fcfae3, 0x00f6e8cb, 0x00e6c1af, 0x00cb8f8b, 0x00cc8087, 0x00ba606f,
- 0x00a05549, 0x00c4826d, 0x00e6ab90, 0x00e7b590, 0x00ecc797, 0x00edcd97, 0x00e7c78d, 0x00dec385, 0x00dfc27f, 0x00bea25d, 0x00775e2b, 0x003e2c1c, 0x003b2a10, 0x0067532e, 0x00aa9460, 0x00ceb06c,
- 0x00c69751, 0x00ac803b, 0x007d571e, 0x003d1f04, 0x00291505, 0x002b0f0a, 0x0031120f, 0x003c1e16, 0x003e251d, 0x003b2013, 0x00452a1a, 0x004b3019, 0x00573916, 0x005c3d12, 0x005a390b, 0x005a3704,
- 0x004d4329, 0x00544e3b, 0x0066655c, 0x007d7d7d, 0x006a6067, 0x00483535, 0x003c1e18, 0x00441f11, 0x00351b04, 0x00321c02, 0x00483928, 0x00433f43, 0x00545055, 0x00625e63, 0x00626369, 0x00676970,
- 0x00676877, 0x00686e7e, 0x00767c8e, 0x00777f90, 0x00727a8d, 0x006d7a8e, 0x006f7c92, 0x006a788f, 0x00728096, 0x00818ea7, 0x008491ad, 0x008390b0, 0x00818ab5, 0x005c6596, 0x001a2458, 0x00182058,
- 0x001e2177, 0x00161a6b, 0x00252a77, 0x00262e76, 0x001b2569, 0x001d296e, 0x00202c73, 0x00232f7c, 0x00323b99, 0x003c47a6, 0x003a45a9, 0x003641a3, 0x002f3d85, 0x001e305e, 0x0010253c, 0x00142c2d,
- 0x0017312c, 0x00173331, 0x00193336, 0x001a323c, 0x001a3244, 0x001a363f, 0x001a373c, 0x0019373c, 0x0018353a, 0x00163338, 0x00163136, 0x00183035, 0x001a3036, 0x001b3137, 0x001d333a, 0x001f353d,
- 0x00c8b596, 0x005c3924, 0x00b39989, 0x00f5eee3, 0x00fafbfa, 0x00f7fcf9, 0x00f8fdf8, 0x00fffefd, 0x00b9adab, 0x004a3934, 0x00321e15, 0x00342216, 0x00342319, 0x0037261d, 0x0037261e, 0x0034261d,
- 0x002e2019, 0x00332420, 0x00372922, 0x00362a24, 0x00392d28, 0x003e2d21, 0x00422d1e, 0x00422e21, 0x00452d24, 0x00452e25, 0x00442e24, 0x00422e1f, 0x003f2b1c, 0x00402b1d, 0x00452f21, 0x004a3326,
- 0x004e3524, 0x005e4538, 0x00695548, 0x006d5d53, 0x00786b67, 0x007b706c, 0x007a736b, 0x007b716c, 0x00766863, 0x006e5f5a, 0x00645855, 0x005b4f51, 0x005b4b4d, 0x005e5051, 0x00695e5d, 0x00736665,
- 0x007b6c6d, 0x00827575, 0x00918583, 0x009f9392, 0x00aaa09e, 0x00b3aea9, 0x00bebdb5, 0x00cac8c2, 0x00dbdad5, 0x00e4e1dd, 0x00e3e6de, 0x00e7ebe3, 0x00f2f2ee, 0x00f7f8f4, 0x00f7fcf6, 0x00fcfef9,
- 0x00fdfafb, 0x00fffcfb, 0x00fdfdf8, 0x00fdfef9, 0x00fffbfb, 0x00fdfaf8, 0x00fbfcf8, 0x00fcfefb, 0x00fffefc, 0x00fffdff, 0x00fdfefc, 0x00f8fef8, 0x00fcfefc, 0x00fcfefc, 0x00fbfef9, 0x00fcfffb,
- 0x00fcfdfb, 0x00fcfdff, 0x00fbfcfd, 0x00f8fefe, 0x00f6fdfd, 0x00f5fdf9, 0x00f5fcf9, 0x00f7fdfd, 0x00fcfdff, 0x00fcffff, 0x00f6fcfc, 0x00f3fcfa, 0x00fbfdfa, 0x00fdfffa, 0x00fefef8, 0x00fdfef6,
- 0x00fcfefe, 0x00fcf9fe, 0x00fcfbfd, 0x00fdfdfe, 0x00fdfbfd, 0x00f9f8f6, 0x00f3f4ee, 0x00f1eeea, 0x00ede5e6, 0x00e5ddde, 0x00e0dad5, 0x00d9d9ce, 0x00cecbc5, 0x00c5c3bc, 0x00b7b4ac, 0x00bfbbb6,
- 0x00e8e8e3, 0x00fdfdfa, 0x00fdfcf8, 0x00fefcf9, 0x00fcfcfc, 0x00e7edfa, 0x00979fb8, 0x007d809f, 0x007a79a7, 0x006f6d9a, 0x007b79a0, 0x00797999, 0x0086849c, 0x009b99ac, 0x007b7888, 0x00433f4c,
- 0x00362335, 0x002e223d, 0x00302c4e, 0x001c224e, 0x00152a5c, 0x002f4a79, 0x00556e97, 0x008294b6, 0x00afabc0, 0x00b4a9b4, 0x00b8b3b9, 0x00c7d2d8, 0x00d3d8ea, 0x009b9ebb, 0x00636383, 0x009691ba,
- 0x00b5b0d3, 0x00a7a2be, 0x009793a6, 0x009b949d, 0x00b0a9a9, 0x00a5adc2, 0x00646fa6, 0x003c46a0, 0x004c5e99, 0x0049654f, 0x00466624, 0x007c9a4c, 0x00b1b3ca, 0x00787aa7, 0x00999fc6, 0x00cedfe4,
- 0x00d1cccd, 0x00bdb8b9, 0x00a19d9c, 0x009d9b98, 0x00a9a8a5, 0x00a0a19c, 0x00969992, 0x00b7bab8, 0x00edecf3, 0x00ebeaf4, 0x00dfdde2, 0x00d2d2cb, 0x00bebdbc, 0x00b6b4b2, 0x00aeaba9, 0x00aaa9a6,
- 0x00a2999f, 0x00a39a9f, 0x00d0c9cd, 0x00e5dde1, 0x00e3dae0, 0x00e8e7e3, 0x00ebefe8, 0x00e0e0dd, 0x00bfb7c2, 0x00b7b2bc, 0x00c4c3c9, 0x00b7bcbd, 0x00c0cbc3, 0x00b5c3b4, 0x0083957f, 0x008ba188,
- 0x008994b2, 0x003a435d, 0x0063677f, 0x00acacbe, 0x00bebbc5, 0x00d6d3d6, 0x00e8e7e2, 0x00d0d2c4, 0x00cccbbd, 0x00b8baa8, 0x007d8b80, 0x00617b86, 0x008c9299, 0x00d2cfd0, 0x00c8c2bb, 0x00cdc3bd,
- 0x00d7d1ca, 0x00bcb5ae, 0x00999181, 0x00ac9e88, 0x009d8666, 0x00565a2c, 0x0078825d, 0x008c8d8c, 0x00443a55, 0x00554d55, 0x00a29c96, 0x00b0ada2, 0x00c5bccb, 0x00b2a9ba, 0x00a9a3ac, 0x00c7c2b9,
- 0x00cdc6cc, 0x00b8b1b7, 0x00bdb7bc, 0x00c8c3c6, 0x00948b8e, 0x006f6666, 0x007d7774, 0x00928b87, 0x009b8f8e, 0x00beb0af, 0x00cbc4c2, 0x00999e98, 0x0071726f, 0x007a7573, 0x00827c7b, 0x0093898b,
- 0x00baafb0, 0x00d2c7c7, 0x00bab2b2, 0x00c8c2c3, 0x00fdfbf9, 0x00fafef7, 0x00f7fcf7, 0x00fdfdfe, 0x00fef8fb, 0x00aca5a5, 0x0019130c, 0x002a251a, 0x004b3e36, 0x005f5349, 0x00786c60, 0x0086796d,
- 0x0090847b, 0x009b8f86, 0x00a79f95, 0x00ada69c, 0x00b4aba1, 0x00bbb4a9, 0x00c3bfb2, 0x00ccc9bb, 0x00dcd8cd, 0x00e2ded3, 0x00e3e2da, 0x00e4e5e0, 0x00edede8, 0x00f2eeec, 0x00f4f1f0, 0x00f8f7f5,
- 0x00fdfbf6, 0x00fffbfb, 0x00fcfdfc, 0x00fcfcfc, 0x00fefeff, 0x00f8fefb, 0x00f6fdfc, 0x00fbfcfd, 0x00fcfdff, 0x00fefefe, 0x00fbffff, 0x00fbfdfc, 0x00fefefb, 0x00fdfcf8, 0x00f8fbf8, 0x00fcfcf8,
- 0x00f7fbfa, 0x00f9fbfc, 0x00fafcfc, 0x00fcfffe, 0x00fafeff, 0x00f8fdfc, 0x00fafefb, 0x00fbfefb, 0x00fcfeff, 0x00fdfdff, 0x00fbfdfd, 0x00f9fefb, 0x00fefffe, 0x00ffffff, 0x00fefffe, 0x00fdfefd,
- 0x00fcfdff, 0x00fbfdff, 0x00fafcfe, 0x00f9fcfc, 0x00fdfefd, 0x00fbfbfb, 0x00fcfbfb, 0x00fcfcfa, 0x00fffeff, 0x00feffff, 0x00fcfefd, 0x00f8fbf7, 0x00fcfcfd, 0x00fbfbfc, 0x00f8f9fa, 0x00f7f9fa,
- 0x00f0f2f9, 0x00f0eff8, 0x00f0f0f7, 0x00f6f7f9, 0x00fefafd, 0x00fefcfc, 0x00fbfdfc, 0x00fdfffd, 0x00d5d8e2, 0x007f8490, 0x00545e67, 0x00616b70, 0x007b7f85, 0x008b8d92, 0x0094979a, 0x008f9293,
- 0x0091929e, 0x00a5a8bd, 0x00adb5d2, 0x00b1bfe4, 0x008693c2, 0x00354465, 0x000d1935, 0x00030a2a, 0x00010122, 0x00010116, 0x0003040e, 0x00000302, 0x00010300, 0x00020500, 0x0005060a, 0x00050311,
- 0x00070213, 0x000d0817, 0x001a1620, 0x00211e20, 0x003a3732, 0x004a4739, 0x004c4736, 0x00483f2f, 0x00443729, 0x003a2d1f, 0x002f2111, 0x002c220d, 0x00392917, 0x00433122, 0x00473426, 0x00463325,
- 0x00533f37, 0x0066564c, 0x0074675b, 0x00695d53, 0x0051463c, 0x00403228, 0x00352518, 0x003a2519, 0x004d312a, 0x0060453a, 0x00775f4d, 0x007c6855, 0x00706254, 0x00635a50, 0x00656059, 0x00605d5b,
- 0x006d7473, 0x00a4a9ac, 0x00c7cfd4, 0x00c9d5db, 0x00c6d0dd, 0x00c1ced9, 0x00c1d2d9, 0x00c2cfd8, 0x00c5cbd7, 0x00bdc1ca, 0x00a0a5ac, 0x0093979e, 0x0091929a, 0x00919297, 0x008e9094, 0x008f8f94,
- 0x008a8d8f, 0x00898b8a, 0x00808283, 0x0075787a, 0x00707171, 0x006c6e69, 0x006d736e, 0x00707475, 0x007c7b80, 0x007d7d86, 0x006e7178, 0x0043454a, 0x0011141e, 0x000e0f19, 0x000d0f19, 0x000d0f1e,
- 0x00100e15, 0x000f0d14, 0x0009080f, 0x0003030a, 0x0005050c, 0x00020409, 0x00090b0f, 0x001e2124, 0x00413e48, 0x005a5660, 0x00646269, 0x00555a5c, 0x005c6366, 0x0070777b, 0x008d9296, 0x00abb1b5,
- 0x00c9d2d1, 0x00ccd4d8, 0x00ccd6d9, 0x00c8d3d3, 0x00c4ced1, 0x00b9c5ca, 0x00b1bfc6, 0x00b9c4cd, 0x00d2d9e5, 0x00d9e3ec, 0x00d8e2ea, 0x00d1dce5, 0x00ccd6e0, 0x00cfdae5, 0x00d4e0ea, 0x00d3e0e7,
- 0x00dbe4f0, 0x00dfe8f5, 0x00e3edf5, 0x00e3ecf3, 0x00e5ebf0, 0x00edf1f5, 0x00f7fbf9, 0x00fbfefd, 0x00fffdff, 0x00fbf7f8, 0x00c8c5c4, 0x00545154, 0x00030103, 0x00030006, 0x0008030a, 0x0009020b,
- 0x0006000a, 0x0005000b, 0x0005000d, 0x0005000c, 0x0007000b, 0x0007000b, 0x0007000b, 0x0006000c, 0x000a000d, 0x0009010b, 0x00080209, 0x00050005, 0x000c060a, 0x00070004, 0x00080205, 0x000c0609,
- 0x004a1f24, 0x00522d57, 0x003e2569, 0x00251b71, 0x001d1f64, 0x001e215f, 0x001c1a5e, 0x001e1469, 0x00201266, 0x001d1554, 0x00171547, 0x000e144a, 0x00131141, 0x00151141, 0x00151247, 0x0016134f,
- 0x00141563, 0x00262168, 0x00382a65, 0x005b4269, 0x00d2acb4, 0x00eacbc0, 0x009c7f68, 0x00a58566, 0x00bc8e62, 0x00c89b62, 0x00c59853, 0x00c19747, 0x00b78e3f, 0x00b0893f, 0x00a8843c, 0x00aa8b44,
- 0x00b1894e, 0x00bb9360, 0x00bf9a6b, 0x00c19e75, 0x00cdad90, 0x00caae98, 0x00bfa899, 0x00b39d9b, 0x00a18a8e, 0x0087717b, 0x006b5c77, 0x00514e86, 0x00464c8c, 0x005c65a7, 0x007b86c1, 0x009fabe1,
- 0x00aaaecd, 0x006d6d81, 0x003e3e4b, 0x00171b23, 0x00151c26, 0x00141827, 0x00101126, 0x000c0f22, 0x0018182c, 0x00171429, 0x0012101e, 0x000f1019, 0x0014141e, 0x00181a20, 0x001d2022, 0x00222327,
- 0x0028282b, 0x002e2d30, 0x00313133, 0x00323434, 0x00323231, 0x0031312f, 0x002a2d28, 0x00272822, 0x002e2d2b, 0x002c2c27, 0x00282821, 0x0023241d, 0x0021231d, 0x00242721, 0x00292d26, 0x00292e25,
- 0x00283127, 0x00283025, 0x00293325, 0x00283223, 0x002a3223, 0x00283122, 0x00243021, 0x00232f20, 0x00252d23, 0x00232c21, 0x00242d22, 0x00242f23, 0x00242f24, 0x00262f24, 0x00283125, 0x00293225,
- 0x002f3528, 0x0035392b, 0x00373d2e, 0x00394332, 0x00404838, 0x00424b3a, 0x003f4a37, 0x0049503d, 0x004c5042, 0x004c5242, 0x00939a8d, 0x00e8eee9, 0x00fcfefb, 0x00fcfcfa, 0x00fbfdfb, 0x00fafcfc,
- 0x00d5d7da, 0x00949495, 0x009d9e9e, 0x00bfc2c5, 0x00e8eaed, 0x00f1f0f9, 0x00edecf6, 0x00e8e7ef, 0x00e3e5e0, 0x00e5ecdc, 0x00e9f6db, 0x00deeed2, 0x00d9e8dd, 0x00dae8e9, 0x00d2e0e8, 0x00cddbe6,
- 0x00bfe0d7, 0x00c4e2dc, 0x00c4dfda, 0x00c4d9d6, 0x00a9b6b2, 0x008d9691, 0x00747b73, 0x00696a63, 0x00736e69, 0x008a8784, 0x00b1a492, 0x00ad8c6f, 0x008e664a, 0x00a57b61, 0x00daae95, 0x00cd9e86,
- 0x00af8670, 0x00b28f75, 0x00a88b6a, 0x00a38d6b, 0x00b8a582, 0x00cab58e, 0x00cfba92, 0x00ccb897, 0x00c9b7a4, 0x00bcb0ab, 0x00959597, 0x00778390, 0x00587094, 0x005775a3, 0x00769acf, 0x006e98d5,
- 0x006c98ce, 0x006f94c3, 0x006c8cb2, 0x007f97ac, 0x00a5abaf, 0x00adaea4, 0x00aba492, 0x00b2a68f, 0x00bdb19c, 0x00c2b19f, 0x00b6aa96, 0x00939677, 0x00494330, 0x002d2514, 0x00756b5c, 0x00b7a896,
- 0x00a49578, 0x00826f4d, 0x007e6a4c, 0x00836e52, 0x007e6355, 0x006a6058, 0x004f4c4a, 0x00636461, 0x0087858c, 0x00838289, 0x007e8286, 0x007a8280, 0x007c8281, 0x009ea5a2, 0x00ecf5ef, 0x00f9fdf6,
- 0x00f8faf7, 0x00fafafa, 0x00f9fcfc, 0x00d9e2e0, 0x00768283, 0x00445556, 0x00445557, 0x004f5c63, 0x004e5a64, 0x0055606c, 0x00515d69, 0x0053646d, 0x0054636e, 0x00556570, 0x00576872, 0x00576972,
- 0x005c6b7a, 0x005b6b78, 0x00546572, 0x004d5d6d, 0x00445265, 0x002c525a, 0x00274d4c, 0x00738281, 0x00e9bdbf, 0x00ebaeac, 0x00e5928d, 0x00e1857a, 0x00d88c85, 0x00c5918b, 0x00b89993, 0x00837971,
- 0x009a765a, 0x00d3b190, 0x00e1be9d, 0x00e4c299, 0x00ebcc9a, 0x00e2c58d, 0x00dcbf84, 0x00e0c187, 0x00d6ae7e, 0x00a37b4b, 0x005d3f13, 0x00312807, 0x003a301b, 0x00413223, 0x004b3329, 0x00623f32,
- 0x006f4028, 0x0072482a, 0x005e3919, 0x003d2405, 0x00281c06, 0x002d1a04, 0x002d1700, 0x00301900, 0x003d2110, 0x00432716, 0x00482e19, 0x004b3017, 0x0054331a, 0x00573217, 0x00562f11, 0x00552a0f,
- 0x00392d09, 0x00372d16, 0x006c645b, 0x00807a7b, 0x005e5254, 0x0043312d, 0x00381e13, 0x00371809, 0x002c1103, 0x002b1404, 0x00392c1d, 0x003c3d3b, 0x00555656, 0x00636267, 0x00616368, 0x00696b72,
- 0x006d717e, 0x006e7686, 0x00787f93, 0x00727a90, 0x007a829a, 0x0077849d, 0x0074829c, 0x0076859f, 0x007f89a6, 0x008a93b0, 0x008c96b2, 0x00808ca6, 0x00828dae, 0x00828db2, 0x004f5c85, 0x00283261,
- 0x00212069, 0x0025266c, 0x003b3e82, 0x00272d70, 0x00182163, 0x001f2a71, 0x001d2c73, 0x00253482, 0x003742a1, 0x003642a3, 0x002e3ca0, 0x002b3aa1, 0x003b4ca2, 0x00374989, 0x0022365f, 0x001a3244,
- 0x0014312e, 0x00173531, 0x001a3836, 0x001a363f, 0x001b344d, 0x001b3845, 0x001a3a40, 0x001a393f, 0x001a373e, 0x0018353c, 0x00163238, 0x00153136, 0x00173137, 0x00193339, 0x001c353c, 0x001d363d,
- 0x00c5b693, 0x00553719, 0x00a78c78, 0x00f1eae0, 0x00fffffc, 0x00fcfefd, 0x00f9fcfd, 0x00fffdff, 0x00c3beb0, 0x0055473b, 0x002d1b12, 0x002c1c14, 0x002c1e15, 0x002c1f16, 0x002b1d16, 0x002d1e17,
- 0x00231c12, 0x00211b11, 0x00291f18, 0x002d2320, 0x00332a26, 0x00372922, 0x003a2620, 0x00372721, 0x00332619, 0x00322418, 0x0038271e, 0x003c2b22, 0x00392820, 0x0037261f, 0x0045332b, 0x00503d36,
- 0x005e4f3e, 0x006e6153, 0x0085796f, 0x00928680, 0x00a09692, 0x00aaa3a1, 0x00b0a8a9, 0x00b6a9ad, 0x00afaaa2, 0x00aea89f, 0x00b3a9a4, 0x00baaeb0, 0x00beb3b3, 0x00c8bdbe, 0x00d9cecf, 0x00e2d6d9,
- 0x00e5e5df, 0x00e9e7e1, 0x00f0ebea, 0x00f4efee, 0x00f9f5f0, 0x00f7f5f2, 0x00faf8f9, 0x00fefcfa, 0x00f9fdf6, 0x00f7fcf6, 0x00fbfbf9, 0x00fbfcfa, 0x00fcfdfb, 0x00fdfffc, 0x00fffefd, 0x00fffffe,
- 0x00f5fcf3, 0x00f7fcf6, 0x00fbfcf9, 0x00fcfdfb, 0x00fdfcfa, 0x00fefffc, 0x00ffffff, 0x00fffeff, 0x00f7fdf5, 0x00f8faf4, 0x00fbfcf8, 0x00fcfef8, 0x00fdfef6, 0x00fdfcf5, 0x00fdfbf6, 0x00fffdf8,
- 0x00f6fcf1, 0x00f6fbf2, 0x00fcfefc, 0x00feffff, 0x00fbfefb, 0x00fafdfc, 0x00fbfdff, 0x00fcfdff, 0x00f8fff8, 0x00f8fdf7, 0x00fbfcf9, 0x00fdfcf9, 0x00fdfbf7, 0x00fcf8f3, 0x00fcf5f0, 0x00faf2ee,
- 0x00e1e1d9, 0x00dddad5, 0x00d7d2cf, 0x00d3cbc9, 0x00cac0bd, 0x00bbb1ad, 0x00afa4a1, 0x00a49695, 0x00898375, 0x007d7568, 0x00776d64, 0x00736658, 0x0066564d, 0x00584d43, 0x00443c34, 0x005f544e,
- 0x00d5d5c8, 0x00f5f7ed, 0x00fdfdfc, 0x00fafbfc, 0x00fdfffd, 0x00eaf0fc, 0x009799ba, 0x005b5983, 0x00343968, 0x00303265, 0x00404274, 0x0041436e, 0x005e5f7f, 0x007c7e99, 0x00565775, 0x00151236,
- 0x000e162b, 0x0016223a, 0x00152149, 0x00030d3e, 0x000d2359, 0x00304477, 0x00586997, 0x008591b5, 0x00b5bac9, 0x00c9c7d0, 0x00cac6d0, 0x00d3d7e4, 0x00dedff1, 0x00a8a5bd, 0x00605a7c, 0x00857da5,
- 0x00adb0c7, 0x00a9abbf, 0x009f99af, 0x00a49bab, 0x00bebbc0, 0x00c0c2da, 0x007d80b6, 0x006063b8, 0x005c759a, 0x00486f4b, 0x00507435, 0x0091ae6a, 0x00b1b3d1, 0x00686c9d, 0x00989fca, 0x00cfe0e8,
- 0x00d9ded4, 0x00c3c7be, 0x00b4b1ae, 0x00b5b0b0, 0x00c6c6c2, 0x00d2d2d1, 0x00d5d1d7, 0x00e9e5ed, 0x00f3f7f4, 0x00e5e8ea, 0x00dcdde0, 0x00d7d6d7, 0x00cac7ca, 0x00c1bdc1, 0x00b5afb3, 0x00b2acb0,
- 0x00a6a39e, 0x00b1aeaa, 0x00ded7d8, 0x00e7dce1, 0x00e3dbdb, 0x00e7e4dd, 0x00edece6, 0x00dfdcdc, 0x00adaeae, 0x009f9ea0, 0x00a8a5ac, 0x00acacae, 0x00bfc5be, 0x00cad5c7, 0x009ba997, 0x009aa992,
- 0x00889aaf, 0x0039485d, 0x006a6f85, 0x00adacbc, 0x00c2bac4, 0x00dbd4d4, 0x00dfd9d3, 0x00c1beb4, 0x00bdc5ae, 0x00adb69d, 0x007d887d, 0x00708391, 0x0095979a, 0x00d2cdcc, 0x00c7bbba, 0x00d7c7c3,
- 0x00c4c7b8, 0x00a8a898, 0x009a9582, 0x00aea48b, 0x009e8c67, 0x005d5c32, 0x00757d5c, 0x008e8b8e, 0x00463f52, 0x00554d50, 0x00a29692, 0x00b1a59c, 0x00c7bccc, 0x00b3a8bb, 0x00b1a7b6, 0x00cdc9c4,
- 0x00c9c6c5, 0x00b0adae, 0x00c0b8be, 0x00c3bac1, 0x00888185, 0x00736c6d, 0x00867b7c, 0x00988c8d, 0x009b978f, 0x00b8b4ad, 0x00c4c0bc, 0x00949691, 0x00747470, 0x007f7b78, 0x00948a8a, 0x00a49598,
- 0x00b3aea8, 0x00bbb6b1, 0x00a79e9c, 0x00c0baba, 0x00faf8f6, 0x00fdfdfb, 0x00fefdff, 0x00fffeff, 0x00f8f7eb, 0x00a3a196, 0x00110601, 0x00170a03, 0x00291508, 0x002d1509, 0x0031190c, 0x0033180e,
- 0x00271608, 0x0026150b, 0x0029170f, 0x00342216, 0x00423021, 0x004d3b2a, 0x00594737, 0x00655244, 0x006d634c, 0x00756b53, 0x00817664, 0x008c8175, 0x00988e82, 0x00a69b8f, 0x00b4a9a1, 0x00beb4ad,
- 0x00c2bfb1, 0x00c6c3b5, 0x00d2cdc3, 0x00dbd3cb, 0x00dfd9d0, 0x00e3e4e0, 0x00ebeff0, 0x00f5f5f5, 0x00f5fdf5, 0x00fafef8, 0x00fdfdfd, 0x00fcfcfd, 0x00fcfefc, 0x00fcfefd, 0x00fdfdff, 0x00fffeff,
- 0x00f9fdf5, 0x00f9fcf5, 0x00fdfef8, 0x00fdfdf9, 0x00fefcfb, 0x00fefbfb, 0x00fffdfe, 0x00fffdfe, 0x00f7faf2, 0x00f5faf4, 0x00f8f9f8, 0x00fbfbfc, 0x00fdfdff, 0x00fffeff, 0x00fffeff, 0x00ffffff,
- 0x00fafef9, 0x00fafcf9, 0x00fafbfb, 0x00fafbfc, 0x00fbf9fc, 0x00fbf8fc, 0x00fdf9fe, 0x00fffbff, 0x00f7fbf8, 0x00f9fbf8, 0x00fefdfc, 0x00fcfbfd, 0x00fcfcff, 0x00fcfeff, 0x00fdffff, 0x00fdfeff,
- 0x00f4fcf7, 0x00f3fbf8, 0x00fafafb, 0x00fdf9fb, 0x00fffcfe, 0x00fdfcfc, 0x00fffffe, 0x00fffeff, 0x00cbd4d6, 0x00727f83, 0x0049545c, 0x00555c66, 0x0071737c, 0x0085878b, 0x008f9094, 0x008e8e97,
- 0x00919ca7, 0x009aa6bf, 0x00919cc9, 0x009aa9e3, 0x006377be, 0x00243a6f, 0x00172b60, 0x0017235f, 0x00040e42, 0x0000031f, 0x00000212, 0x00010301, 0x00000400, 0x00010300, 0x00070508, 0x000b081a,
- 0x0005050e, 0x0005050c, 0x001a141c, 0x002c2729, 0x0048423d, 0x00544c42, 0x003e3329, 0x00281a0f, 0x00160e00, 0x001d1403, 0x00281a0b, 0x00251a06, 0x002a1d0b, 0x00322113, 0x00321e14, 0x0029150d,
- 0x001f1002, 0x00312719, 0x004a4037, 0x004b423a, 0x00433e36, 0x00403630, 0x003c2825, 0x0038211d, 0x00392815, 0x00513e28, 0x00745d4c, 0x00766051, 0x0062544a, 0x0056514a, 0x00555353, 0x0056585c,
- 0x00788782, 0x00afbcb9, 0x00ccd8da, 0x00c9d5dc, 0x00c3d0da, 0x00becad6, 0x00c1cbd6, 0x00c2c9d4, 0x00b9c4c6, 0x00aab2b6, 0x00909199, 0x00898890, 0x00898a91, 0x008c8b92, 0x008c8a91, 0x0089888f,
- 0x007a817a, 0x00777a76, 0x006f7070, 0x006b6c6c, 0x006b6a6c, 0x00686a6e, 0x00696d73, 0x006a6b72, 0x006c7170, 0x0066706f, 0x0055595d, 0x002c2e36, 0x000e121c, 0x000c0e1a, 0x000c0b19, 0x000c0c1a,
- 0x00060907, 0x00030706, 0x0005050b, 0x00000007, 0x0001020a, 0x00070811, 0x0022212d, 0x003c3c47, 0x004e5357, 0x00575a60, 0x005c5f69, 0x00525962, 0x00535861, 0x00545963, 0x00676976, 0x008c8d99,
- 0x00bac4c2, 0x00cad4d5, 0x00ced6db, 0x00cfd6db, 0x00cdd4db, 0x00c8cfd8, 0x00c0c8d3, 0x00b7c0cc, 0x00afbec2, 0x00c1ced3, 0x00d7e3e9, 0x00dce7ee, 0x00d6e0e9, 0x00cfd9e4, 0x00d1dbe6, 0x00d5e0eb,
- 0x00d1e2e6, 0x00d6e5eb, 0x00dde8f1, 0x00dfe9f1, 0x00e2eaef, 0x00eef4f6, 0x00fbfdff, 0x00fefeff, 0x00f8fef9, 0x00f5f9f2, 0x00d8d4d4, 0x006e676b, 0x00060107, 0x00050009, 0x0008020a, 0x000a030c,
- 0x00010005, 0x00020006, 0x00050009, 0x0007000b, 0x0009000d, 0x0008000c, 0x0007010b, 0x0006010b, 0x00010002, 0x00010003, 0x00060308, 0x00060208, 0x000a050a, 0x00050003, 0x00050003, 0x00161014,
- 0x0048211c, 0x00442848, 0x003b2267, 0x00271d72, 0x00191f65, 0x001a2061, 0x001e1b65, 0x00211671, 0x0016145d, 0x00141447, 0x00141445, 0x000f124f, 0x00131343, 0x0015113f, 0x001a1046, 0x0019104b,
- 0x00131453, 0x00221f59, 0x003a245c, 0x00623e61, 0x00d8adae, 0x00f5dedb, 0x00bfa9a3, 0x00b29a8d, 0x00b0976a, 0x00b09159, 0x00bf985d, 0x00bf9856, 0x00b38f4d, 0x00af914d, 0x00b3965b, 0x00b2975f,
- 0x00af9766, 0x00b69c76, 0x00b99e81, 0x00b29885, 0x00a9918f, 0x009c8791, 0x00887388, 0x006f587a, 0x00453b5c, 0x0031254b, 0x00281c55, 0x002e2782, 0x00464ca4, 0x00646fc1, 0x007a81d3, 0x009299de,
- 0x00b6bee1, 0x00bbc0d5, 0x009598ac, 0x00454b5b, 0x00324152, 0x004e5569, 0x00696b7f, 0x005d6077, 0x005e6871, 0x005d646e, 0x005e616e, 0x00575962, 0x0067696e, 0x007a7c80, 0x0086868a, 0x008c8a92,
- 0x00868a8b, 0x00969999, 0x00a6a8a8, 0x00aaabaa, 0x009fa19f, 0x00979896, 0x008d8c8a, 0x0082817e, 0x00777c74, 0x0072766e, 0x00686a65, 0x00535450, 0x00393a36, 0x002a2b27, 0x00282a24, 0x002b2f28,
- 0x00242f1f, 0x00293223, 0x00242c20, 0x002e3629, 0x002c3528, 0x00273023, 0x00283027, 0x00293229, 0x001e2d1a, 0x001d2b1a, 0x00222e21, 0x00232e22, 0x00222c1e, 0x00212a1d, 0x00252d23, 0x00272f25,
- 0x002a321d, 0x002a351e, 0x00333b29, 0x00383f2e, 0x003a442f, 0x003e4834, 0x00404637, 0x00454b3a, 0x003f4a33, 0x0038432c, 0x007f8376, 0x00dadcd7, 0x00fcfefc, 0x00fafdfc, 0x00fffdff, 0x00fdfdfe,
- 0x00d7e2da, 0x009aa09c, 0x00919395, 0x00bdc0c4, 0x00e4e6eb, 0x00e9e9f4, 0x00e8e7f5, 0x00e1e0ee, 0x00d8e1d2, 0x00ddebc5, 0x00ecf4c8, 0x00e8efc1, 0x00e1e5d8, 0x00e0e3e1, 0x00dfdde1, 0x00dddde1,
- 0x00b0d5bf, 0x00a4c5b2, 0x00c1dbd3, 0x00e0f7f5, 0x00ddefef, 0x00c9d4d0, 0x008d8e8b, 0x00746c65, 0x00988e72, 0x00b4a487, 0x00be9f80, 0x009a6b43, 0x0081542c, 0x00b98f65, 0x00cd9f7d, 0x00b78c6a,
- 0x00b29566, 0x00b59e6a, 0x00ad9566, 0x00a48c5c, 0x00ad9964, 0x00bca47a, 0x00ccb292, 0x00d0b698, 0x00c7b99a, 0x00bcb49f, 0x00a5a09a, 0x008a8b93, 0x00596a88, 0x00546f98, 0x007190c8, 0x007294d7,
- 0x006596c5, 0x006791b8, 0x006a89aa, 0x008194a9, 0x00a2a9a7, 0x00aeab9f, 0x00aea193, 0x00b2a08c, 0x00b6a78b, 0x00b4a78c, 0x00aa9e84, 0x00978f6c, 0x00584b31, 0x00352612, 0x006a5947, 0x00a69582,
- 0x00958d62, 0x007a6c47, 0x007c6a4c, 0x007c6956, 0x006c574f, 0x005b5352, 0x004c4b50, 0x0066656a, 0x00787c7c, 0x00737777, 0x00787b7c, 0x00777a7a, 0x00737775, 0x00909391, 0x00e5e6e6, 0x00fdfdfe,
- 0x00f7fdf3, 0x00f5faf4, 0x00f9fbfc, 0x00e9f0f2, 0x0097a2a5, 0x00536266, 0x004a575f, 0x0056626c, 0x004c6263, 0x0055656b, 0x0056626d, 0x00566771, 0x00586671, 0x00596974, 0x005d6a79, 0x00606a7c,
- 0x00576b75, 0x00576a76, 0x00576775, 0x004f5e71, 0x00455463, 0x0033474d, 0x00505d60, 0x00989498, 0x00c49b95, 0x00b17370, 0x00ab5b59, 0x00b6625f, 0x00c4857e, 0x00a07b71, 0x00766158, 0x007b796e,
- 0x00bca981, 0x00d8c59b, 0x00dcc39d, 0x00dec69a, 0x00e3c896, 0x00dcbf8b, 0x00e3c490, 0x00e0b988, 0x00b38f5f, 0x00865e30, 0x004d2f0b, 0x00372f0f, 0x00473e30, 0x00433633, 0x003d2830, 0x003d1e2a,
- 0x0034160c, 0x0041210c, 0x004b2b18, 0x00452d13, 0x00342c0a, 0x0036250a, 0x003d240d, 0x00422810, 0x003c2d0c, 0x00422f13, 0x004b321c, 0x004c2e1d, 0x00492718, 0x00472215, 0x00482015, 0x004a2216,
- 0x00312400, 0x0033280b, 0x0053463b, 0x00574c48, 0x004d403c, 0x0047342b, 0x003a2217, 0x003b1f0d, 0x00271801, 0x00221701, 0x00352d20, 0x00403f3d, 0x00525354, 0x005d5f62, 0x005f6068, 0x0062646d,
- 0x006a767a, 0x0078838d, 0x00767f92, 0x006f798e, 0x007c889e, 0x007f8ba8, 0x007e89ab, 0x007d88a6, 0x00788b9f, 0x007f92a6, 0x008694ac, 0x008692ac, 0x008794b3, 0x008994b6, 0x008188b0, 0x00606992,
- 0x00414576, 0x00404479, 0x003c4178, 0x00252c67, 0x00192262, 0x00222b73, 0x00212b79, 0x00323c91, 0x0036499b, 0x00293c94, 0x00253395, 0x002c379c, 0x003b49a1, 0x003e4f96, 0x002e4276, 0x001c3354,
- 0x0013332d, 0x0015362e, 0x00193938, 0x001c3843, 0x001d3650, 0x001c3844, 0x001e3c44, 0x001f3b44, 0x00143839, 0x00143637, 0x00173239, 0x00183038, 0x00173137, 0x00193239, 0x001e333e, 0x00203640,
- 0x00cdba98, 0x005d391f, 0x009c836f, 0x00eee8da, 0x00fcfdf6, 0x00fbfffc, 0x00f5fdfc, 0x00fbfdfd, 0x00d2ccc5, 0x0063574f, 0x0024150f, 0x00261913, 0x00251a13, 0x00221710, 0x001b110b, 0x001c130d,
- 0x00170f0c, 0x00160e09, 0x001a110d, 0x00221b19, 0x002d2725, 0x00382e29, 0x0040342c, 0x00483f36, 0x00574943, 0x0060544d, 0x00675a54, 0x006f645d, 0x007d716b, 0x00857973, 0x00928680, 0x00a39791,
- 0x00bcada5, 0x00c7bab3, 0x00d4cac5, 0x00e0d8d5, 0x00ebe6e5, 0x00efecec, 0x00efedee, 0x00f1eff0, 0x00f8f0ef, 0x00faf3f2, 0x00faf5f4, 0x00fcf7f9, 0x00fcf9f9, 0x00fbf9f9, 0x00fdfbf9, 0x00fdfaf9,
- 0x00fcfcfa, 0x00fcfcfa, 0x00fcfbfa, 0x00fdfcfb, 0x00fdfdf9, 0x00fcfcf9, 0x00fbfcfa, 0x00fdfefd, 0x00fdffff, 0x00fcfefd, 0x00fefefc, 0x00fefefd, 0x00fbfdfb, 0x00fbfcfb, 0x00fefffd, 0x00fffffc,
- 0x00fbfffb, 0x00fbfefb, 0x00fefefd, 0x00fefefd, 0x00fcfefb, 0x00fdfffc, 0x00fbfdfb, 0x00fcfcfa, 0x00fcfcf7, 0x00fcfbf8, 0x00fffef8, 0x00fefef6, 0x00fefdf6, 0x00fdfdf6, 0x00fcfcf6, 0x00fcfaf7,
- 0x00fffaf5, 0x00fdf8f3, 0x00fbf6f2, 0x00f6f2ee, 0x00eeebe6, 0x00e7e5e0, 0x00e0dfdc, 0x00d9d9d4, 0x00d1cbc7, 0x00c6c1ba, 0x00bbb4ab, 0x00b1a9a0, 0x00a69d95, 0x009a8f88, 0x008f847b, 0x00887e72,
- 0x00756a64, 0x006d625c, 0x005d514a, 0x004f433b, 0x0042342b, 0x003d2e24, 0x003a2a20, 0x0034241a, 0x002e1a11, 0x0029180b, 0x00281407, 0x002a1301, 0x002a1301, 0x00261505, 0x001b0c03, 0x004d4133,
- 0x00d6cfc5, 0x00fdfaf5, 0x00fefdfa, 0x00fafbf8, 0x00fafdfb, 0x00e1e5f3, 0x00707291, 0x00292952, 0x00212160, 0x00272765, 0x002e3069, 0x00393e6c, 0x0050577a, 0x00636b8d, 0x0040486e, 0x00171e4a,
- 0x002d4465, 0x00344c70, 0x00152d57, 0x00011243, 0x001d3164, 0x003a4979, 0x0056608a, 0x00616486, 0x00868695, 0x00b4aeb8, 0x00c1bbc3, 0x00d0cedc, 0x00e9e6f2, 0x00adaabd, 0x004e4960, 0x006a657e,
- 0x00aca7c1, 0x00b8b1cb, 0x00b2acbf, 0x00b9b5c4, 0x00d8d7e1, 0x00bcb7cd, 0x00716e95, 0x006c6bac, 0x00566d89, 0x00416344, 0x00517039, 0x0092aa75, 0x00acb0d0, 0x00676c9d, 0x00a0abcf, 0x00d1e4e5,
- 0x00d2d3d0, 0x00d5d4d2, 0x00d9d5d7, 0x00dcd9db, 0x00dcdada, 0x00d7d6d7, 0x00d0ced2, 0x00dfdde2, 0x00f2f1f6, 0x00eeebf2, 0x00dcdae0, 0x00d1d0d5, 0x00cdc9cf, 0x00c8c4c9, 0x00b8b5b8, 0x00b7b3b5,
- 0x00ada7a6, 0x00c2bcbb, 0x00dcd5d5, 0x00d5cecd, 0x00d2ccc7, 0x00deddd2, 0x00eceee3, 0x00dad8d1, 0x00a3a2a1, 0x00969395, 0x009e99a0, 0x00a7a4a8, 0x00c2c2be, 0x00dbe2d6, 0x00a7b2a1, 0x0093a28b,
- 0x008b99b2, 0x00414c63, 0x00757b8e, 0x00b2b2c0, 0x00c4bdc0, 0x00ddd6d3, 0x00cbc5bc, 0x00a7a398, 0x00b8bba9, 0x00a7ac99, 0x00798178, 0x00798695, 0x0099989d, 0x00d6ccca, 0x00c4b6b0, 0x00d6c6bf,
- 0x00beb7ac, 0x009c988d, 0x009a9683, 0x00aea88b, 0x00948962, 0x00606638, 0x00757f5a, 0x008d898b, 0x004e4358, 0x0056494f, 0x009b8986, 0x00b7a69d, 0x00c5b6c7, 0x00ada2b4, 0x00a8a3ad, 0x00c3c4bc,
- 0x00cbc4c7, 0x00b4aeb2, 0x00c5bbc2, 0x00c2b8bf, 0x008a8387, 0x007b7576, 0x00847c7c, 0x0099908f, 0x00aca6a5, 0x00c5c1bf, 0x00b8b5b1, 0x0083867e, 0x0076756e, 0x0086827d, 0x009c9692, 0x00aca3a2,
- 0x00bbafb0, 0x00b6acab, 0x00a99e9d, 0x00c9c0bf, 0x00fbf9f7, 0x00fcfefc, 0x00fafefd, 0x00fffefc, 0x00fbf8f1, 0x00aca59a, 0x001c0b02, 0x00261103, 0x003c2008, 0x00412207, 0x00452308, 0x00472207,
- 0x003d2006, 0x003e2009, 0x003a1d07, 0x00361902, 0x00371a02, 0x00371b03, 0x00371b04, 0x00371b05, 0x00311800, 0x00311901, 0x002f1804, 0x002f1b09, 0x0033200e, 0x00372312, 0x003b2718, 0x003f2b1d,
- 0x00403021, 0x00453525, 0x00504030, 0x005b4c3d, 0x00685b4d, 0x00736d63, 0x007f7c74, 0x008a837b, 0x0099928c, 0x00a39a94, 0x00ada19f, 0x00b6a9a9, 0x00bfb5b2, 0x00c5bebb, 0x00cdc7c5, 0x00d6d0ce,
- 0x00dedcd2, 0x00e1ded4, 0x00e9e4dc, 0x00efeae2, 0x00f4efea, 0x00f9f4f0, 0x00fdf9f7, 0x00fefbf9, 0x00fdfcfa, 0x00fdfcfb, 0x00fefdfd, 0x00fefefc, 0x00fefefd, 0x00fefdfd, 0x00fdfcfb, 0x00fcfcf8,
- 0x00fcfffb, 0x00fefefb, 0x00fefefc, 0x00fdfefc, 0x00fffffd, 0x00fffdfd, 0x00fefbfc, 0x00fcfdfc, 0x00fcfdfb, 0x00fdfefb, 0x00fefefb, 0x00fcfffa, 0x00fbfefa, 0x00fbfffd, 0x00fbfefd, 0x00fcfefd,
- 0x00f9fefc, 0x00f9fdfc, 0x00fcfbfa, 0x00fdfbf8, 0x00fffdfa, 0x00fefcf9, 0x00fefefc, 0x00fcfdfe, 0x00ccd3d7, 0x006d757c, 0x00384149, 0x00444a50, 0x0061666a, 0x007d7e81, 0x0085878c, 0x00888a93,
- 0x0099a1b9, 0x008591bf, 0x004c5e9b, 0x00526bbb, 0x003250ac, 0x0028479a, 0x0033539d, 0x003752a1, 0x002c3e89, 0x00172354, 0x0000031c, 0x00010300, 0x00010600, 0x00000302, 0x00020406, 0x00090819,
- 0x000f0b13, 0x000e0b11, 0x002f282d, 0x00484344, 0x00433d37, 0x00332c23, 0x00241a11, 0x0021130a, 0x002b1f12, 0x00322319, 0x002b1c11, 0x00211508, 0x001b1002, 0x0023140a, 0x0023130b, 0x001c0b03,
- 0x00160801, 0x001b1008, 0x001f170f, 0x001f1811, 0x001a1a10, 0x002f2824, 0x00342826, 0x0032241f, 0x00362212, 0x00442d1b, 0x005a4131, 0x00624b3d, 0x005c5049, 0x00494846, 0x003f4548, 0x0058636b,
- 0x009caaa8, 0x00bfcdcc, 0x00c1ced1, 0x00bbc9cf, 0x00beced6, 0x00bfcdd5, 0x00bdc7cf, 0x00b5bbc3, 0x00969ea2, 0x00808488, 0x0077757b, 0x00848288, 0x0087868c, 0x0088878c, 0x00848186, 0x007e7c81,
- 0x00707171, 0x00666467, 0x00646263, 0x00696967, 0x00636462, 0x00565960, 0x00525861, 0x00565a63, 0x005d5f68, 0x00555961, 0x00363b43, 0x001c1e27, 0x0010141c, 0x000f141b, 0x000b0d14, 0x00080d12,
- 0x0003060a, 0x00040409, 0x00000007, 0x00000008, 0x00000109, 0x000a0c15, 0x00292c38, 0x00484855, 0x0054555f, 0x00535360, 0x00525263, 0x004b515f, 0x00464c58, 0x003b424e, 0x003d4350, 0x00555b66,
- 0x008a9298, 0x00bbc3ca, 0x00d1d8e0, 0x00d4dadf, 0x00d3dadf, 0x00cad4db, 0x00cad5de, 0x00c6d1dc, 0x00b6c2c9, 0x00b5c1c8, 0x00bdc8d0, 0x00c9d4dc, 0x00d8e3eb, 0x00dce8f0, 0x00d4e0e9, 0x00cedae3,
- 0x00d1e0e8, 0x00d6e4ec, 0x00dae6ef, 0x00dde7f0, 0x00dde5eb, 0x00ebf0f4, 0x00f9fcfe, 0x00fcfefe, 0x00fafcfb, 0x00fcfefa, 0x00ebe7e8, 0x00888185, 0x000b060b, 0x00070309, 0x00060208, 0x00070208,
- 0x0007000a, 0x0007000a, 0x0007000b, 0x0006000b, 0x0005000b, 0x0005000a, 0x00050009, 0x00050009, 0x00060108, 0x00050107, 0x00060208, 0x00060207, 0x00070207, 0x00040004, 0x00040002, 0x00272224,
- 0x007a4e50, 0x00573158, 0x00392062, 0x00251e73, 0x00191d64, 0x00191d62, 0x00191c63, 0x001b156c, 0x001a145e, 0x0017154b, 0x00131744, 0x000e154e, 0x0012113f, 0x00140f3c, 0x0017113d, 0x00171140,
- 0x001e1351, 0x002a1c54, 0x00391e49, 0x0068415a, 0x00dcb0a7, 0x00fbebed, 0x00eee7e7, 0x00ebddd8, 0x00e5cfb5, 0x00c5a984, 0x00b39064, 0x00be9a6b, 0x00b8996c, 0x00af986b, 0x00a6946c, 0x00988865,
- 0x008f7c69, 0x00826f66, 0x006f5c5c, 0x0061505a, 0x00503e5a, 0x00423159, 0x00322454, 0x00281b56, 0x001e1757, 0x00241c62, 0x002c2575, 0x003e37a2, 0x004f55b8, 0x006c76d3, 0x007481d4, 0x007a87cc,
- 0x009ba1ca, 0x00c1c5e7, 0x00c5cbe1, 0x00717c96, 0x003f5471, 0x006e7b94, 0x00c6cedf, 0x00d4dde9, 0x00d9dee9, 0x00d2d7e1, 0x00d6d8e4, 0x00d5d8de, 0x00e1e3e5, 0x00ecefee, 0x00f0f3f0, 0x00f4f6f5,
- 0x00f4f3f5, 0x00f8f7f9, 0x00f9f9fa, 0x00fafafa, 0x00fafafa, 0x00f9faf9, 0x00f3f4f2, 0x00eff0ee, 0x00edf0eb, 0x00eaece8, 0x00e4e5e2, 0x00d2d2d0, 0x00b0b0ae, 0x008c8d89, 0x00555852, 0x002a2f28,
- 0x00272d24, 0x002e352b, 0x002d332b, 0x00262e22, 0x00283124, 0x00293324, 0x00273124, 0x00273124, 0x00242d20, 0x00232d1f, 0x00222c20, 0x00202b1e, 0x00212c1b, 0x00212c1c, 0x00212c1e, 0x00212c1f,
- 0x00272e1c, 0x0029301e, 0x002e3323, 0x00313727, 0x00323c29, 0x00363f2d, 0x00383f2e, 0x00394130, 0x00353e2c, 0x002a3321, 0x005d6255, 0x00c0c2be, 0x00fbfef9, 0x00fbfdfb, 0x00fdfefd, 0x00fbfefc,
- 0x00edf1ee, 0x00b4b5b5, 0x00828385, 0x00b4b7b9, 0x00dcdfe1, 0x00e4e9ee, 0x00e2e7f1, 0x00dcdeef, 0x00dee2d7, 0x00eaf1c5, 0x00ecf1b3, 0x00e7eaab, 0x00efe5d2, 0x00f3ece5, 0x00f7ebe7, 0x00faf2e7,
- 0x00cee8d0, 0x00b4c9ba, 0x00b8d6ca, 0x00d0e7e7, 0x00d8f0ee, 0x00e6f1f1, 0x00cfd2ca, 0x00cec2b3, 0x00ebcfaa, 0x00f3c6a1, 0x00d39f74, 0x00a36d42, 0x009a6c3e, 0x00c39b6f, 0x00b7956a, 0x00b09469,
- 0x00bba474, 0x00b8a373, 0x00b5a070, 0x00b69d6c, 0x00af9661, 0x00a48c65, 0x00ae9577, 0x00bda586, 0x00c3ac91, 0x00beae99, 0x00b2a89d, 0x00908e91, 0x00495772, 0x004c678c, 0x00688bbd, 0x00658dcc,
- 0x006890c5, 0x006488b1, 0x006983a4, 0x007b8c9e, 0x00969996, 0x009d978a, 0x00a29484, 0x00af9d87, 0x00b8a68c, 0x00b2a288, 0x009b896c, 0x0086764d, 0x006a5738, 0x004f3d24, 0x00625039, 0x00817158,
- 0x00817350, 0x00786a4b, 0x0076684e, 0x006e6053, 0x0060504f, 0x00575053, 0x00595b5d, 0x00707274, 0x007b7a7c, 0x00727172, 0x00737272, 0x00727271, 0x006b6c6a, 0x007c7d7c, 0x00cecfce, 0x00f8f9f8,
- 0x00f9f9f8, 0x00fbfcfc, 0x00f6f9fb, 0x00f6feff, 0x00b5c1c1, 0x00677778, 0x004e5d61, 0x0056666c, 0x0058686d, 0x005e6b74, 0x005b6874, 0x005d6d7a, 0x005f6d7a, 0x00606e7c, 0x00606f7e, 0x00606f7f,
- 0x005c6e7a, 0x005d6c7e, 0x00576575, 0x004f5f72, 0x00485668, 0x004f4a53, 0x00685658, 0x00ad9499, 0x00f5c7c6, 0x00e9b4b4, 0x00c38d8b, 0x00a16d69, 0x00825952, 0x00574036, 0x0032271d, 0x006d6d61,
- 0x00d7c9a2, 0x00d8c89e, 0x00d5c196, 0x00dec997, 0x00e1c890, 0x00dcbf89, 0x00e0c18d, 0x00d0aa7a, 0x00a37a51, 0x007c522f, 0x00482809, 0x00372e11, 0x003c352a, 0x00312a2e, 0x00382d39, 0x00281626,
- 0x002b1216, 0x003b1b19, 0x00492c1e, 0x004b351d, 0x0042371d, 0x0046361b, 0x00473519, 0x00473419, 0x00422d14, 0x003f2912, 0x00371e0c, 0x00371b0d, 0x00311307, 0x0033130b, 0x0035150d, 0x0038180f,
- 0x003c230a, 0x002e1b05, 0x00302215, 0x002e251d, 0x00332a1d, 0x003a2a1c, 0x0034200c, 0x003c250c, 0x003c321a, 0x00433b29, 0x00555346, 0x005a5c57, 0x00545754, 0x005a5f5d, 0x006a6e71, 0x0074777d,
- 0x00788089, 0x00848c9b, 0x00737d8e, 0x00727c93, 0x00818da4, 0x00818eab, 0x007c89a7, 0x007b89a7, 0x00808fa7, 0x008796ac, 0x008996ac, 0x008996ac, 0x008694ae, 0x00808faa, 0x008d9ab9, 0x0093a1bf,
- 0x00a8abca, 0x009194bb, 0x00484d77, 0x001e235a, 0x001b2265, 0x00272f7b, 0x00293484, 0x00404b9f, 0x003c4da4, 0x00283c92, 0x002e409a, 0x003544a1, 0x0033429b, 0x00324492, 0x002d417f, 0x001d365e,
- 0x001a363e, 0x001b3a37, 0x001c3b36, 0x001f3b41, 0x001f3950, 0x001d3c47, 0x001d3e44, 0x001b3d41, 0x001a3a3e, 0x0018373c, 0x0018333b, 0x00173139, 0x00163237, 0x00163238, 0x0019333b, 0x001b353d,
- 0x00cdb595, 0x005d371d, 0x00907561, 0x00e8dbd0, 0x00fcfdf8, 0x00fbfefe, 0x00f9ffff, 0x00fdfefd, 0x00dad1cf, 0x006e625c, 0x00241610, 0x00251a13, 0x002c221c, 0x002e2420, 0x00302825, 0x00342d2b,
- 0x003c3635, 0x00413c3a, 0x00534e4d, 0x00625f5e, 0x00757270, 0x00837d79, 0x00918a85, 0x009e9993, 0x00b5aca7, 0x00c0b9b4, 0x00cac3c0, 0x00d3cdcb, 0x00e3dcdc, 0x00e8e2e1, 0x00ede8e6, 0x00f4f0ee,
- 0x00faf4f1, 0x00faf5f2, 0x00fcf9f6, 0x00fbfbfa, 0x00fefdff, 0x00fffcff, 0x00fffdff, 0x00fdfdfe, 0x00fffafe, 0x00fefcfa, 0x00fcfcfa, 0x00fcfcfa, 0x00fdfcfd, 0x00fefefb, 0x00fffffe, 0x00fefeff,
- 0x00fffdff, 0x00fdfdfd, 0x00fafdfc, 0x00f9fcfb, 0x00fbfdfd, 0x00fdfefd, 0x00fdfefe, 0x00fcfdff, 0x00fcfdff, 0x00fbfcfd, 0x00fbfcfc, 0x00fefcfc, 0x00fbfcfc, 0x00fdfbfd, 0x00fffdfe, 0x00fefcfd,
- 0x00fefdfd, 0x00fdfcfb, 0x00fbfdfa, 0x00fefefa, 0x00fbfffa, 0x00fffffc, 0x00fdfefa, 0x00fdfbf8, 0x00fefefd, 0x00fbfbf7, 0x00faf7f4, 0x00f9f1f1, 0x00f0e7e6, 0x00e7e0dc, 0x00dcd7d1, 0x00d6d0cb,
- 0x00cec6c3, 0x00c4bdb6, 0x00b7b1a9, 0x00ada69e, 0x00a09791, 0x008f8680, 0x00817772, 0x00756c65, 0x00675a52, 0x00584b40, 0x004b3d30, 0x00423125, 0x0037241b, 0x002c1912, 0x0026140d, 0x0021120a,
- 0x0028140e, 0x0027160c, 0x00261508, 0x00251305, 0x00241104, 0x00281206, 0x002c1507, 0x002b1606, 0x00311609, 0x002e1806, 0x00351a06, 0x003a1b00, 0x003e2008, 0x00391f08, 0x002f1707, 0x005c4c35,
- 0x00daccc3, 0x00fcf7f2, 0x00fffffd, 0x00f9fafa, 0x00fdffff, 0x00e4e9ef, 0x0065687b, 0x0026294d, 0x0041407b, 0x003b3d79, 0x002d3269, 0x001c2552, 0x002b385c, 0x0058668c, 0x00495886, 0x001a295f,
- 0x002c567a, 0x003c6388, 0x0031507a, 0x00223763, 0x001e2654, 0x0021244c, 0x003a3859, 0x004e475f, 0x00746875, 0x009d9096, 0x00afa2a8, 0x00b2a8b4, 0x00cec6cf, 0x00978f9a, 0x004d4450, 0x005a545d,
- 0x00958f9d, 0x00a9a3b3, 0x00b3afbb, 0x00bfbbc7, 0x00d3ccde, 0x00a091a1, 0x003f3247, 0x00433d64, 0x004c5864, 0x004c6144, 0x0054673b, 0x0093a17e, 0x00b6b3d5, 0x007879a5, 0x00a6adcb, 0x00cfdfdc,
- 0x00d7d4d5, 0x00d5d5d4, 0x00dddcde, 0x00e3e1e5, 0x00dfdce0, 0x00d7d2d8, 0x00d3cdd5, 0x00e0dde3, 0x00f1edf7, 0x00dfdae2, 0x00c4c2ca, 0x00c1bfca, 0x00c2bec9, 0x00bebac3, 0x00b3b0b6, 0x00b3adb3,
- 0x00b7b0b3, 0x00c9c1c1, 0x00d8d2cd, 0x00d0c9c2, 0x00cfc9c0, 0x00dcdcd2, 0x00eaede3, 0x00cbcbc4, 0x008f8a8a, 0x008a8488, 0x00999098, 0x00a49ca2, 0x00c2bcbb, 0x00d7d5ce, 0x00a9ac9e, 0x009ca390,
- 0x008293ae, 0x00445165, 0x00838a98, 0x00b0b1bb, 0x00c6bec0, 0x00d5caca, 0x00b4aca6, 0x00989286, 0x00b1b0a6, 0x009a9d8f, 0x00787c78, 0x00818694, 0x00938b94, 0x00ccbdbb, 0x00c9b8b3, 0x00cdbeb4,
- 0x00bab3a9, 0x00949482, 0x00a09e8a, 0x00a29f81, 0x00817850, 0x00555e2d, 0x006c7656, 0x00878687, 0x004a3951, 0x0047333e, 0x00927b7d, 0x00bca6a2, 0x00c4b2c5, 0x00a497a9, 0x009e98a4, 0x00b9b9b5,
- 0x00d3c8ce, 0x00c0b7bc, 0x00c3babf, 0x00b8b0b5, 0x00948b90, 0x00837b7f, 0x00878082, 0x009a9496, 0x00b0a9ac, 0x00beb9bb, 0x00a39f9d, 0x006f6e69, 0x0076706e, 0x00867f7e, 0x00a19996, 0x00b8acab,
- 0x00c0b0b3, 0x00b8acac, 0x00b8adab, 0x00dacfce, 0x00fdfaf7, 0x00fafcfa, 0x00f8fdfc, 0x00fefefc, 0x00fff9f5, 0x00b3a79b, 0x00260f03, 0x00341705, 0x00502b0e, 0x005a3010, 0x005f320f, 0x0063310b,
- 0x005d2f15, 0x005c2f12, 0x00582c0e, 0x0053290c, 0x0053290d, 0x0051290c, 0x004e2709, 0x004c2507, 0x00452103, 0x00452003, 0x00442005, 0x00412006, 0x003e1f05, 0x003c1d05, 0x00391c05, 0x00371b04,
- 0x00341c05, 0x00321902, 0x00311902, 0x00301904, 0x00301b07, 0x002e1d09, 0x002b1b0a, 0x002b1a0b, 0x0030170d, 0x00331a0f, 0x003c221a, 0x00482d28, 0x00533a36, 0x005c4643, 0x00665450, 0x006e5f59,
- 0x00786d61, 0x007f7567, 0x008c8275, 0x00988f82, 0x00a59c92, 0x00b2a7a0, 0x00bfb3ae, 0x00c6b9b5, 0x00cdc3c3, 0x00d4cac8, 0x00dad3d0, 0x00e1ded9, 0x00eae9e4, 0x00f2efec, 0x00f8f5f2, 0x00fdfbf6,
- 0x00fdf9f7, 0x00fdfaf7, 0x00fefbf9, 0x00fffcf9, 0x00fffdfa, 0x00fffdfd, 0x00fefcff, 0x00fffdfe, 0x00fefdfb, 0x00fefefb, 0x00fbfbf7, 0x00fbfcf7, 0x00fbfbf7, 0x00fcfdfa, 0x00fbfcfa, 0x00fcfffb,
- 0x00fdfff9, 0x00fbfdf8, 0x00fcfcf8, 0x00fdfffa, 0x00fffefc, 0x00fffcfd, 0x00fdfeff, 0x00fbfeff, 0x00ccd1d7, 0x00616c72, 0x002a3238, 0x00393a3f, 0x00585b5e, 0x00787b7d, 0x0084878d, 0x008a8f99,
- 0x008d94bc, 0x00616fab, 0x00283d91, 0x002543a7, 0x002448c3, 0x002751b8, 0x00335dc0, 0x003458c0, 0x003d57b8, 0x00273d7f, 0x00000b2d, 0x00000504, 0x00000600, 0x00000300, 0x00010507, 0x000b0818,
- 0x0016121a, 0x00110e11, 0x002c2528, 0x00453f3c, 0x00332b24, 0x001f150c, 0x001c1008, 0x0026180f, 0x0034241c, 0x0033211a, 0x0024160e, 0x00180e04, 0x00120900, 0x00170801, 0x00190c06, 0x001b0b05,
- 0x00150a06, 0x00150b04, 0x00110d07, 0x000f0d05, 0x0010150b, 0x001f1a18, 0x002b2125, 0x00362828, 0x003a2419, 0x00371f10, 0x00462c1d, 0x00533e2f, 0x004b403b, 0x00343637, 0x00465057, 0x007e8f9c,
- 0x00bcc8c8, 0x00c6d3d4, 0x00c0ced1, 0x00bfcfd3, 0x00c3d3d9, 0x00b9c7cd, 0x00a8b0b6, 0x008f9499, 0x00717374, 0x006d6d6d, 0x007f7c7d, 0x008a868c, 0x008a888f, 0x00848186, 0x007c787c, 0x00777377,
- 0x006a6769, 0x00615e60, 0x00666464, 0x00676567, 0x0052534e, 0x0040424d, 0x003b3f4f, 0x00424451, 0x00484a5a, 0x00414552, 0x00282d38, 0x00181b24, 0x00101319, 0x000b1014, 0x00080c0f, 0x00050b0d,
- 0x0005080d, 0x00010409, 0x00000008, 0x0002030c, 0x000d0e17, 0x00171823, 0x002e2e3c, 0x0041404f, 0x00474755, 0x00454455, 0x0047465a, 0x0043485b, 0x003d4153, 0x00383d4e, 0x00333748, 0x00363b49,
- 0x00595d6c, 0x00979daa, 0x00cfd4e0, 0x00d7dae3, 0x00d7dbe3, 0x00d5dde5, 0x00d4dee7, 0x00d1dae5, 0x00cdd6e1, 0x00c1cbd5, 0x00b6c1ca, 0x00b5c1c9, 0x00c2ced6, 0x00d2dee5, 0x00dde9f0, 0x00dae6ed,
- 0x00d7e4ef, 0x00d8e6ef, 0x00dae7f0, 0x00dbe6f0, 0x00dbe2ec, 0x00e5eaf2, 0x00f5f9fd, 0x00faffff, 0x00fafaff, 0x00fafdfd, 0x00f4f3f6, 0x009f999e, 0x00171016, 0x00060108, 0x000a040c, 0x000a030c,
- 0x000d0512, 0x000c0411, 0x000a0210, 0x0008010e, 0x0007000d, 0x0007000c, 0x0007010c, 0x0008010c, 0x0009010d, 0x00070009, 0x00070008, 0x00090208, 0x00080107, 0x00090207, 0x00060003, 0x003c3738,
- 0x009f6e71, 0x005a3259, 0x002e1659, 0x00221d72, 0x00182269, 0x00162066, 0x00181d65, 0x001d166f, 0x00191662, 0x0016184b, 0x00121845, 0x000a144f, 0x00121240, 0x00141037, 0x00191037, 0x0019103c,
- 0x0025134e, 0x002a1347, 0x003b1d41, 0x00734a59, 0x00e5b4a7, 0x00f8f1ee, 0x00f6f9fb, 0x00fdf9fa, 0x00fdf0e8, 0x00dcc9b8, 0x00ac927a, 0x009b806c, 0x00967d70, 0x00867270, 0x006f6065, 0x005d515e,
- 0x00483b55, 0x00372c4b, 0x00291f46, 0x00261d4e, 0x00271d5b, 0x00281f66, 0x0027206e, 0x00221e70, 0x00211f75, 0x00232076, 0x002a2983, 0x003b3499, 0x004349a9, 0x00444fa8, 0x005061ad, 0x007280c0,
- 0x00b4b7e6, 0x00d1d5f9, 0x00c9d1f3, 0x00a5b4dc, 0x00556d9d, 0x00475770, 0x00acb1c4, 0x00ebf1f9, 0x00f6fdff, 0x00f0f6fa, 0x00f4f8fe, 0x00f5f8fb, 0x00f9fbfb, 0x00fbfcfb, 0x00f8f9f6, 0x00f9faf7,
- 0x00fdf9fe, 0x00fdfbff, 0x00fdfcff, 0x00fffdff, 0x00fdfcfe, 0x00fdfbfc, 0x00fbfbfb, 0x00fbfcfb, 0x00fdfdfb, 0x00fdfdfc, 0x00fdfdfc, 0x00fcfafb, 0x00f7f5f6, 0x00f0f0f0, 0x00bbbcbb, 0x007f827f,
- 0x003f433d, 0x001d221b, 0x002b312a, 0x002d352b, 0x00283025, 0x00273122, 0x00283023, 0x00262f22, 0x00252c21, 0x00232c20, 0x00242d21, 0x00222c1f, 0x00202a1c, 0x00202a1b, 0x00212a1c, 0x00212a1a,
- 0x00242e1b, 0x00262e1d, 0x00282f1e, 0x002a3220, 0x002c3523, 0x00303825, 0x002e3523, 0x002c3522, 0x002e3622, 0x00202716, 0x00424a3c, 0x00a7a7a6, 0x00fcfffa, 0x00fffeff, 0x00f9fefa, 0x00f9fffb,
- 0x00f8fcfb, 0x00c2c6c6, 0x00808384, 0x00aaabaf, 0x00d4d5da, 0x00dbe2e6, 0x00e2eaf4, 0x00dcdcf3, 0x00dcdfd4, 0x00edf1ba, 0x00f1f0a5, 0x00ece794, 0x00fae0c7, 0x00fae4d6, 0x00fadcd2, 0x00f2d7b9,
- 0x00d2d9bd, 0x00ceddc8, 0x00dcede5, 0x00d9efee, 0x00dbecf4, 0x00eaf1f6, 0x00fbf5f1, 0x00ffe3d5, 0x00f7c097, 0x00efa570, 0x00e39966, 0x00be8368, 0x00946548, 0x009d7b5d, 0x00b39d7d, 0x00b1a280,
- 0x00afa484, 0x00a99e7c, 0x00b19e7b, 0x00b8a07b, 0x00b18e6b, 0x00987d62, 0x009a7f6a, 0x00a89078, 0x00b59d84, 0x00b4a18a, 0x00b0a291, 0x007d7873, 0x003a435a, 0x00475d81, 0x005c7bac, 0x005c7fbd,
- 0x006c8dbf, 0x006380a8, 0x006f84a1, 0x007d899a, 0x00908e8b, 0x00968d80, 0x00a49684, 0x00b2a288, 0x00b7a087, 0x00a48e76, 0x0091795a, 0x00856a3f, 0x007f6643, 0x00786042, 0x00776344, 0x00796948,
- 0x007b6c4f, 0x00766c4f, 0x006b624c, 0x005a5248, 0x00564c52, 0x00565555, 0x006c6d6d, 0x00838684, 0x00807d7d, 0x006e6d6a, 0x006e6c69, 0x006d6a68, 0x00686464, 0x00747272, 0x00c1c1c2, 0x00f3f6f5,
- 0x00fffefd, 0x00fefffe, 0x00fafdfd, 0x00f8ffff, 0x00cad7d8, 0x007c8b8e, 0x0054646a, 0x00596870, 0x005f6b74, 0x00636e79, 0x00626d7a, 0x0063727f, 0x00677382, 0x00647381, 0x00647381, 0x00627381,
- 0x00637180, 0x00606e7d, 0x0058667a, 0x00546071, 0x004c5970, 0x006a3d49, 0x00813842, 0x00a76871, 0x00bd9c9b, 0x00a4938e, 0x0086827a, 0x0076766d, 0x00716d66, 0x0080746f, 0x00816e6b, 0x00aa9391,
- 0x00ddc5a0, 0x00d5bf92, 0x00d9c191, 0x00dfc68d, 0x00dec185, 0x00e3c489, 0x00d8b982, 0x00bc9a68, 0x00946d47, 0x006b4520, 0x0043270b, 0x003d2f1f, 0x00231b18, 0x00151218, 0x002b2d34, 0x00262529,
- 0x001c0e0d, 0x00231008, 0x002e1809, 0x002c1b08, 0x00312212, 0x00342513, 0x00362612, 0x00352310, 0x00331c0d, 0x002a1403, 0x00291203, 0x00250d03, 0x00250b04, 0x00230a02, 0x00240c04, 0x00230d05,
- 0x00361505, 0x00301907, 0x00271807, 0x001b1106, 0x00322912, 0x004e4029, 0x00635537, 0x00625234, 0x00595140, 0x00606155, 0x00676962, 0x005f615c, 0x005a5c57, 0x006a706b, 0x00949797, 0x00a0a3a6,
- 0x00848b96, 0x007f8896, 0x00768091, 0x007b869c, 0x008591a6, 0x00828dae, 0x007d88ac, 0x007c89aa, 0x008694af, 0x008c9bb2, 0x008f9eb3, 0x008d9aad, 0x008691a9, 0x008390a8, 0x0093a0bb, 0x00aeb8d4,
- 0x00cccfd7, 0x00c7cbda, 0x00717492, 0x00242856, 0x001c1f68, 0x00272d7e, 0x00394198, 0x004752a9, 0x0038469b, 0x002b3d8e, 0x00374a99, 0x003a4b9d, 0x003c4ca1, 0x003d4da0, 0x003e5098, 0x002a4178,
- 0x001c394a, 0x001a3a3c, 0x001d3d39, 0x001d3b3e, 0x00203c4d, 0x00213f46, 0x00204047, 0x001e3d48, 0x001d3c44, 0x00193940, 0x0017353e, 0x0017323c, 0x0016323a, 0x0017323a, 0x0019323c, 0x001a343d,
- 0x00d9c1a4, 0x00866147, 0x00a68b74, 0x00e8d8ca, 0x00f9f9f4, 0x00f9fefd, 0x00f9fffd, 0x00fcfefd, 0x00eae4e1, 0x00a99e99, 0x007e726b, 0x00847b75, 0x00948d88, 0x009d9693, 0x00aaa3a2, 0x00b6afae,
- 0x00c5c5c1, 0x00d0cdcb, 0x00dddbda, 0x00e6e6e5, 0x00edebea, 0x00f4f1ee, 0x00f5f3ef, 0x00f8f5f3, 0x00fbf9f6, 0x00fdfcfa, 0x00fbfaf9, 0x00fcfaf9, 0x00fefbfb, 0x00fffefe, 0x00fefefd, 0x00fdfefc,
- 0x00fefcfa, 0x00fdfbf9, 0x00fcfbfa, 0x00fdfffe, 0x00fcfeff, 0x00fdfdff, 0x00fcfdfe, 0x00f9fefc, 0x00fefcfd, 0x00fdfcfe, 0x00fdfcfe, 0x00fdfdfb, 0x00fefdfe, 0x00fdfdfb, 0x00fdfdfa, 0x00fafcf8,
- 0x00fdfcfd, 0x00fcfefd, 0x00f9fdfc, 0x00f7fdfc, 0x00f8fefc, 0x00fafefd, 0x00fcfefd, 0x00fcfeff, 0x00fcfcfe, 0x00fefdff, 0x00fdfdfe, 0x00fefcfe, 0x00fefdfe, 0x00fffcfe, 0x00fdfafd, 0x00fcf8fb,
- 0x00f7f7f5, 0x00f4f4f2, 0x00e8eae8, 0x00e0e2e0, 0x00d8dcd9, 0x00d2d3cf, 0x00c6c7c2, 0x00bab9b5, 0x00b0b2b1, 0x00a6a8a3, 0x009a9895, 0x00928b8c, 0x00887f80, 0x007b7474, 0x006c6467, 0x0060585c,
- 0x004d4446, 0x00453c3a, 0x003d332c, 0x003a2e25, 0x003a2b22, 0x00382820, 0x0035261b, 0x00322317, 0x00392618, 0x003c2818, 0x003e2818, 0x00402718, 0x00452a1d, 0x00462c21, 0x00452d23, 0x00432e24,
- 0x004c3325, 0x004e3726, 0x00513a27, 0x00513926, 0x00573d2b, 0x005b402f, 0x005d412f, 0x005c412d, 0x0060412e, 0x0061432f, 0x00684427, 0x00714824, 0x00744d2c, 0x00735035, 0x006f5138, 0x00836e58,
- 0x00e2d5c9, 0x00fffaf0, 0x00fefff6, 0x00fbfbfa, 0x00f9fefe, 0x00e2e7e5, 0x005d6267, 0x0032374d, 0x0055568c, 0x00545b91, 0x00586392, 0x0037476b, 0x003f5471, 0x006c82a6, 0x00576e9e, 0x001f3972,
- 0x001b5173, 0x00416d91, 0x006e90b1, 0x007889ad, 0x00373453, 0x00110321, 0x001a081c, 0x00452c3b, 0x00877173, 0x00978180, 0x00846f6d, 0x0078686c, 0x00776a6a, 0x00776c68, 0x00796f66, 0x00706a61,
- 0x00817975, 0x008c8688, 0x009b9999, 0x00b0adb5, 0x00b0aebc, 0x006f5b62, 0x003c2227, 0x005c4a57, 0x005d5f56, 0x00646c4d, 0x006d7651, 0x00adaf9a, 0x00c5bddb, 0x008e87a8, 0x00abadc1, 0x00d3ddd8,
- 0x00d5d3d5, 0x00d0d0d2, 0x00d6d6da, 0x00e2e0e6, 0x00e1dce6, 0x00dad3de, 0x00dcd3df, 0x00e2dbe7, 0x00e7e0e9, 0x00dad4db, 0x00bfbbc7, 0x00b8b5c7, 0x00b5b0c2, 0x00aca7b4, 0x009c98a1, 0x009d979d,
- 0x00aca6a7, 0x00b8b1ad, 0x00c7c2b6, 0x00d0cbbc, 0x00d9d3c6, 0x00e2e3d4, 0x00e0e4d7, 0x00bbbab3, 0x008b8585, 0x008c8589, 0x00948b93, 0x009a9197, 0x00bbb4b5, 0x00bdb9b3, 0x009f9e91, 0x00acae9c,
- 0x007f93a8, 0x004e5d6f, 0x008d96a4, 0x00a4a7af, 0x00b8b1b3, 0x00bab2af, 0x0099948d, 0x0088857a, 0x00a8a79c, 0x0094958a, 0x00808480, 0x009194a5, 0x007b7179, 0x00ab9b9a, 0x00cab7b0, 0x00c9b8ac,
- 0x00b5ada3, 0x00939481, 0x00a2a58d, 0x00979779, 0x00676436, 0x00485323, 0x00647050, 0x00868486, 0x00402e49, 0x00361e2d, 0x00826869, 0x00b9a09e, 0x00bba6b8, 0x0096879c, 0x009a949c, 0x00b6b5af,
- 0x00cfc3cc, 0x00c9bec6, 0x00b3a9b0, 0x00ada4a9, 0x009c9398, 0x008b8387, 0x00847d81, 0x00908a8d, 0x009f9998, 0x00aea7a9, 0x00918d8b, 0x005e615a, 0x0074706e, 0x007e7876, 0x00978f8b, 0x00b5a9a6,
- 0x00c6b7b7, 0x00baadab, 0x00b5aca7, 0x00d8cecc, 0x00fdfcfb, 0x00fcfefd, 0x00f8fffd, 0x00fcfffc, 0x00fff8f3, 0x00b5a599, 0x00280e01, 0x003a1803, 0x005b2e0c, 0x0068370f, 0x006f3a0f, 0x00733909,
- 0x006b3315, 0x006b3413, 0x0069330f, 0x0067320f, 0x00683513, 0x00683612, 0x0064330e, 0x0061300a, 0x005c2f07, 0x005c2f08, 0x005c310b, 0x00582f09, 0x00542c07, 0x00542d08, 0x00542d0a, 0x00512a09,
- 0x00492a09, 0x004a290b, 0x004a280b, 0x0048290c, 0x0047280c, 0x00432508, 0x00402203, 0x00401f03, 0x00461b04, 0x00461c06, 0x00431906, 0x003f1706, 0x003d180a, 0x0036170a, 0x002f1507, 0x002d1608,
- 0x00291a09, 0x002b1b0b, 0x002d1d0d, 0x00302011, 0x00332216, 0x0038281d, 0x003c2c24, 0x003f3029, 0x00473733, 0x004e3d38, 0x00584b46, 0x00635c56, 0x00716a66, 0x007d7672, 0x0089827d, 0x00928c86,
- 0x009f9891, 0x00a5a099, 0x00b2aca5, 0x00beb7b0, 0x00c7c0ba, 0x00cac7c5, 0x00d0cdd0, 0x00d7d3d5, 0x00e1deda, 0x00e7e6df, 0x00ebebe3, 0x00f0f2ea, 0x00f6f8f1, 0x00fbfef8, 0x00fcfefa, 0x00f9fbf9,
- 0x00fdfff9, 0x00fffffc, 0x00fefcf7, 0x00fefef9, 0x00fefcf9, 0x00fffdfb, 0x00fafefe, 0x00f7feff, 0x00c8cfd5, 0x005a646a, 0x001a2326, 0x00252829, 0x004c504f, 0x00777778, 0x00898a91, 0x009597a6,
- 0x007c87b4, 0x003e5096, 0x00233e9d, 0x001e40ba, 0x001d45d6, 0x001e4fce, 0x003265dc, 0x00325fde, 0x003e60d5, 0x003550a4, 0x00031743, 0x00000a0d, 0x00000900, 0x00010400, 0x00020406, 0x00080312,
- 0x00161113, 0x001b1616, 0x00231d18, 0x002a2520, 0x0022190e, 0x001a1008, 0x001c1107, 0x0025180f, 0x002d1b16, 0x002b1614, 0x0020130e, 0x001b1612, 0x00201811, 0x001f110e, 0x00160c05, 0x00180b06,
- 0x00170e0d, 0x00190e0b, 0x000d0802, 0x000b0804, 0x000c0e06, 0x00131115, 0x00201d21, 0x00342c29, 0x003f271d, 0x003e2618, 0x00493123, 0x00473427, 0x002e2826, 0x00373e43, 0x007e8e98, 0x00b0c6d7,
- 0x00c8d3d5, 0x00c7d2d4, 0x00c3cfd2, 0x00c3d0d4, 0x00abb8bc, 0x008c979b, 0x00757c80, 0x006b6e72, 0x0070706f, 0x007c7a79, 0x008e8b8b, 0x0089878a, 0x00828186, 0x007a797c, 0x00716f71, 0x006b686b,
- 0x00646064, 0x006b6869, 0x00605d5d, 0x004b4949, 0x0032322f, 0x00262936, 0x00272b43, 0x002c3045, 0x00323346, 0x002f3141, 0x00212430, 0x00161b22, 0x000e1317, 0x00090f10, 0x00050e0c, 0x00010605,
- 0x0003050d, 0x0000030a, 0x0001030b, 0x000c0f16, 0x0023272f, 0x002c303a, 0x00313240, 0x00343545, 0x00353747, 0x00353648, 0x00313247, 0x002e3349, 0x002e3248, 0x002d3347, 0x002d3144, 0x002a2e40,
- 0x00333545, 0x00565a69, 0x00aeb2c0, 0x00d1d6e1, 0x00d5dbe4, 0x00d8e1ea, 0x00d6e1ea, 0x00d5e0e9, 0x00d6e0ea, 0x00d3dee8, 0x00cbd7e0, 0x00c3cfd7, 0x00bac6ce, 0x00bcc8d0, 0x00cad5de, 0x00d7e1ea,
- 0x00dbe9f3, 0x00dcebf3, 0x00dceaf2, 0x00dce8f0, 0x00dae2eb, 0x00e0e6ee, 0x00f4f8fb, 0x00f8fdfc, 0x00f7f9fc, 0x00fafcfc, 0x00fcfcfd, 0x00bcb8bd, 0x002e282e, 0x000c050c, 0x00120c16, 0x000d0710,
- 0x000e0913, 0x000d0713, 0x000c0512, 0x000a0411, 0x000a0310, 0x0009030f, 0x0009040f, 0x0009040e, 0x0009030c, 0x0009030a, 0x00080207, 0x000b0509, 0x00090407, 0x000c070b, 0x00090306, 0x004d484b,
- 0x00b28386, 0x005b355d, 0x00281454, 0x00231b6f, 0x00132167, 0x00132063, 0x00161e65, 0x001a166e, 0x0016165f, 0x0015184c, 0x000f1744, 0x000a154b, 0x000f123d, 0x00151134, 0x001a0f30, 0x001e0f35,
- 0x00210d3e, 0x00260b34, 0x00401c39, 0x0087585e, 0x00f2bba5, 0x00f5f3ed, 0x00e7f8fe, 0x00ecf8f8, 0x00f3efec, 0x00f8ecea, 0x00b19d9d, 0x00674f5c, 0x003f284a, 0x003e2c5f, 0x002a1e59, 0x00251e5f,
- 0x001b1760, 0x001c1965, 0x001f1c6c, 0x00232177, 0x00262481, 0x00242484, 0x00242486, 0x00252689, 0x001d2580, 0x001d237f, 0x00212579, 0x002f2e7b, 0x00343b88, 0x004a56a0, 0x007584c6, 0x009eabe4,
- 0x00b5bbea, 0x00a7abdc, 0x009da5d7, 0x00a9bbf2, 0x0094aef3, 0x00617395, 0x008991a4, 0x00e3ebf2, 0x00f5fefc, 0x00f7fefd, 0x00f8fbfe, 0x00fafcff, 0x00fafcfc, 0x00fbfdfb, 0x00fbfcf6, 0x00fefcf7,
- 0x00fbf8fc, 0x00fcfbfe, 0x00fffeff, 0x00fffeff, 0x00fcfafc, 0x00fcfbfc, 0x00fdfcfd, 0x00fdfdfd, 0x00fbfdfb, 0x00fcfdfb, 0x00fdfdfd, 0x00fcfbfb, 0x00f7f5f7, 0x00fbfafb, 0x00faf9fa, 0x00f0f0f0,
- 0x00a5a9a2, 0x00585c56, 0x00262b25, 0x00232922, 0x00252b24, 0x00272e23, 0x00242c1f, 0x00232c1f, 0x00232b1d, 0x00202a1c, 0x00202a1c, 0x001f2a1b, 0x001e281a, 0x001d2618, 0x001c2415, 0x001d2515,
- 0x001d2713, 0x001e2715, 0x00202615, 0x00212916, 0x00232a18, 0x00242b19, 0x00212815, 0x001e2614, 0x00222b16, 0x00171f0d, 0x002a3224, 0x00878b87, 0x00f7faf6, 0x00fcfcfc, 0x00fcfffd, 0x00fafefc,
- 0x00fcfefc, 0x00d1d4d3, 0x00858889, 0x00a2a4a7, 0x00c6c9ce, 0x00d6e1e4, 0x00e1eef7, 0x00dae1f5, 0x00d9d9ca, 0x00eeedb0, 0x00f9f69c, 0x00eddd83, 0x00c9a47f, 0x00cb9886, 0x00dda896, 0x00efb995,
- 0x00eaddbc, 0x00f5f3dc, 0x00f3f7ed, 0x00e7f0f3, 0x00e2ecf8, 0x00f5effa, 0x00f1dbd8, 0x00e0ad9e, 0x00df8353, 0x00e67638, 0x00cf6d40, 0x00a16476, 0x007f5362, 0x007b5f6e, 0x009e8f9d, 0x009fa0ab,
- 0x009a9ca9, 0x00a29eac, 0x00988c98, 0x008e7887, 0x008d6976, 0x00846865, 0x00786152, 0x00806854, 0x008f7760, 0x00947d6b, 0x008b7969, 0x00534a47, 0x00262d41, 0x0033486d, 0x003c5c8b, 0x00496da8,
- 0x005875a3, 0x00566f93, 0x006b7c95, 0x007b848f, 0x0087837c, 0x00978c7c, 0x00af9d89, 0x00b5a188, 0x00a38c72, 0x008d765e, 0x00856a49, 0x00886939, 0x00856840, 0x00846847, 0x00806a4a, 0x007d6b4c,
- 0x007c704d, 0x006e6549, 0x00595342, 0x00524b48, 0x004d4955, 0x00565659, 0x00777b77, 0x008d908c, 0x00787572, 0x00615e5b, 0x00645e5c, 0x00686060, 0x00625a5b, 0x006d6568, 0x00b3aeb2, 0x00e8e6e9,
- 0x00fcfdfa, 0x00fefdfc, 0x00f9fbfa, 0x00f8fdfd, 0x00deeaeb, 0x009aa9ab, 0x00617275, 0x005f6e73, 0x00616f78, 0x0067727d, 0x0066737e, 0x0066747f, 0x00677784, 0x00667584, 0x00647683, 0x00657584,
- 0x00667283, 0x00626f80, 0x0059687b, 0x00546077, 0x004d5c71, 0x006d3944, 0x00742227, 0x006e282e, 0x005d3038, 0x0050373c, 0x004f474b, 0x004d5052, 0x005e6766, 0x0069726c, 0x008b938a, 0x00adb4a8,
- 0x00e8be96, 0x00e4b98d, 0x00eac18d, 0x00e7bf86, 0x00e9c281, 0x00ebc88a, 0x00cbaa6c, 0x00af8f58, 0x007c6132, 0x004f340c, 0x0042260d, 0x00412a2b, 0x001d1615, 0x00080b0b, 0x00212f24, 0x00344732,
- 0x00373b1e, 0x002e290d, 0x00271803, 0x00271708, 0x00261210, 0x00200e0e, 0x001f0d0d, 0x001e0c0c, 0x001f0907, 0x00200c06, 0x001d0901, 0x001c0902, 0x001d0a01, 0x00241205, 0x00342514, 0x003e3120,
- 0x003c180d, 0x002f1408, 0x00372715, 0x003b3220, 0x00494222, 0x007a714e, 0x00b7af88, 0x00a49b79, 0x006d6d5e, 0x00676f69, 0x0058605b, 0x005d6058, 0x0073796f, 0x009ba09a, 0x00bac0bc, 0x00afb6b7,
- 0x008d959d, 0x00818997, 0x00818b9b, 0x008592a2, 0x008b99aa, 0x008a96b5, 0x00818db1, 0x00808dae, 0x008d9bb5, 0x0096a4bc, 0x0094a2b6, 0x0095a2b7, 0x008b98ac, 0x008d9bb1, 0x00adbbd0, 0x00b0bcd3,
- 0x00b2bba8, 0x00dfe6e4, 0x00a0a5b8, 0x00363b63, 0x0020246b, 0x0033398b, 0x004d57ae, 0x004f5ab2, 0x003a4b9a, 0x00364b94, 0x00364b8e, 0x00364990, 0x003b4c9d, 0x003e4ea4, 0x004456a4, 0x00374e8a,
- 0x001e3a50, 0x001d3b42, 0x001a3b36, 0x001b3b3c, 0x001e3c48, 0x0020404a, 0x001e3f47, 0x001f3f47, 0x001d3c44, 0x001b3a42, 0x00183740, 0x0017343e, 0x0017333c, 0x0018313c, 0x0019313c, 0x001a323e,
- 0x00ebe4d6, 0x00c8b9ac, 0x00d6cdc2, 0x00f1efe9, 0x00fdfbfb, 0x00f8fdfb, 0x00fafefa, 0x00fbfdf9, 0x00fdf9fa, 0x00eee9e6, 0x00e7e2de, 0x00ede9e7, 0x00f3f0ee, 0x00f4f1f0, 0x00f5f3f3, 0x00fcf8f7,
- 0x00faf9fb, 0x00fdfafb, 0x00fffffe, 0x00ffffff, 0x00ffffff, 0x00fcfcfc, 0x00fcfdfb, 0x00fdfdfb, 0x00fefefe, 0x00fdfdfc, 0x00fcfcfa, 0x00fafaf7, 0x00fdfefb, 0x00fffffe, 0x00fffdfe, 0x00fdf9fd,
- 0x00fcfffc, 0x00fbfdfb, 0x00fdfffe, 0x00fbfffd, 0x00fbfffd, 0x00fafefb, 0x00fcfefc, 0x00fcfefd, 0x00fdfdff, 0x00fcfcff, 0x00fbfbfc, 0x00fbfcf5, 0x00fcfef9, 0x00fefffb, 0x00fefefc, 0x00fffffc,
- 0x00fdfefa, 0x00fbfcf8, 0x00fdfef9, 0x00fbfdf8, 0x00fcfffb, 0x00f8fbfa, 0x00f7f8fa, 0x00f4f5f7, 0x00f3f1f3, 0x00eeeeef, 0x00e7e5e7, 0x00dcdcde, 0x00d8d5d8, 0x00d1d1d2, 0x00cbcacb, 0x00c5c5c5,
- 0x00b1b3aa, 0x00a7aca6, 0x00999e9d, 0x00909696, 0x0089898a, 0x007e7c79, 0x0076706a, 0x006d685f, 0x00625e58, 0x00575855, 0x004c4d4b, 0x0042443f, 0x00424540, 0x00474844, 0x004b4a46, 0x004a4b46,
- 0x004e4f47, 0x004f4e43, 0x00535045, 0x0059544a, 0x005d5850, 0x00615d55, 0x0064605b, 0x0065615f, 0x006e6766, 0x00726b69, 0x00766e6b, 0x0077706c, 0x007c7573, 0x00837d7c, 0x00888181, 0x008b8383,
- 0x0092877f, 0x00958880, 0x009c8f87, 0x00a1958c, 0x00a69990, 0x00a79c91, 0x00a69b90, 0x00ab9f93, 0x00afa295, 0x00b0a597, 0x00b5a79b, 0x00b8aa99, 0x00bcafa3, 0x00bcb1a3, 0x00beb3a7, 0x00c2b9af,
- 0x00edeae2, 0x00f9fcf7, 0x00fefffc, 0x00fbfcfb, 0x00fefefe, 0x00e3e3e5, 0x0066616b, 0x001a152a, 0x00333152, 0x005d6083, 0x009197b8, 0x00929bb7, 0x0093a1b6, 0x0098a5bc, 0x00627088, 0x00394b63,
- 0x0031547b, 0x00506e94, 0x008195ba, 0x0095a2c2, 0x004e4762, 0x0015081a, 0x0016010b, 0x00371b1d, 0x007d5954, 0x00866259, 0x0063403d, 0x0053383c, 0x004f3739, 0x006a554d, 0x0085746b, 0x00696057,
- 0x00615a5d, 0x00716b73, 0x00726e79, 0x00908e9a, 0x00a5aab6, 0x00736a77, 0x00756a6b, 0x0091907a, 0x007b8346, 0x007b8944, 0x00879259, 0x00b3bb9e, 0x00bfb8d3, 0x008f8ea9, 0x00aeafc8, 0x00dae2ea,
- 0x00d2cecf, 0x00d2cece, 0x00dfdddd, 0x00e3e2e3, 0x00e7e2e6, 0x00d9d3d8, 0x00cfcace, 0x00dad3d5, 0x00dfdadd, 0x00dbd7d9, 0x00cecbcf, 0x00c3c0c4, 0x00b8b3b5, 0x00aea7a9, 0x00a0969a, 0x009d9095,
- 0x00a59a9c, 0x00a29898, 0x00b3abaa, 0x00c7c0c0, 0x00d5cfcd, 0x00d9d9d0, 0x00d9dccf, 0x00b4b2a9, 0x00958e8d, 0x008f8789, 0x00958b92, 0x00989198, 0x00b7b4b8, 0x00b3b4b5, 0x00abb0ab, 0x00b7bdb4,
- 0x007992aa, 0x00546a72, 0x0095a6a3, 0x009ca49e, 0x00b1a4b5, 0x00ad99a8, 0x008b757c, 0x008f7b71, 0x009e9f80, 0x00849074, 0x00777e71, 0x008d8897, 0x00754d51, 0x00a57c72, 0x00d6b7a2, 0x00c4b69a,
- 0x00aba396, 0x009c8882, 0x00a68d83, 0x009e8b71, 0x005c662a, 0x00505b37, 0x007c806f, 0x00867d7c, 0x00422635, 0x0035171f, 0x007d6064, 0x00b39b98, 0x00b0a0a7, 0x008f8488, 0x009c9399, 0x00b6aeb0,
- 0x00c0b5b9, 0x00aca0a5, 0x00aca0a5, 0x00aa9fa1, 0x00aaa0a0, 0x00897f7f, 0x00867b7d, 0x0093888b, 0x009c9096, 0x00aca2aa, 0x00949293, 0x005b645d, 0x006a6f6a, 0x0074746f, 0x008b8985, 0x00b1adab,
- 0x00c1b9b9, 0x00b0a9a9, 0x00aea9a9, 0x00d5ced2, 0x00fefefd, 0x00fffdf9, 0x00fbfefa, 0x00fcfcfc, 0x00fefafc, 0x00b0a59e, 0x002a1308, 0x003d1c05, 0x0062330c, 0x006f390e, 0x00733c11, 0x0072380b,
- 0x006d350b, 0x006f380c, 0x0070390d, 0x006f390e, 0x006f390f, 0x00703b10, 0x006f3a0e, 0x006c370c, 0x006c380f, 0x006c380d, 0x0069370c, 0x0064360b, 0x0065370d, 0x00683a10, 0x00693c11, 0x00663a11,
- 0x0063340b, 0x0063350d, 0x0064370f, 0x0061350e, 0x005c300b, 0x00592c07, 0x00592b04, 0x005a2c04, 0x005c2a06, 0x00572704, 0x00542606, 0x00522709, 0x004e250a, 0x00482208, 0x00412007, 0x003d1e06,
- 0x00451d03, 0x00421a02, 0x00411803, 0x003f1702, 0x003f1904, 0x003b1903, 0x00381905, 0x00351704, 0x00381a08, 0x00381b09, 0x0032190b, 0x002c170c, 0x002c170e, 0x002b180e, 0x002a180e, 0x002c1911,
- 0x00342214, 0x003c2a1d, 0x00473529, 0x00514133, 0x005c4d3f, 0x0063564e, 0x006a5e5a, 0x0070655f, 0x00837673, 0x008d817c, 0x00978d87, 0x00a29b95, 0x00b0aaa6, 0x00b6b2ad, 0x00bfbbb7, 0x00c9c4c1,
- 0x00d5cbc2, 0x00dbd1c9, 0x00ece4dc, 0x00fcfaf3, 0x00fbf9f7, 0x00fbfcfb, 0x00f8fdfd, 0x00fafeff, 0x00c9ccd0, 0x005a5e60, 0x00121c1d, 0x000d201f, 0x00434649, 0x00777173, 0x00938b8f, 0x009c9da4,
- 0x00637fb6, 0x002245a3, 0x00193eb3, 0x001c42b9, 0x001f3da0, 0x00143680, 0x002c52a4, 0x00345ccb, 0x003662e1, 0x00355bb5, 0x00081f56, 0x00010614, 0x00070304, 0x00020105, 0x00020507, 0x00000808,
- 0x00120e06, 0x00202118, 0x00282925, 0x001b1d1a, 0x0018110d, 0x001a0c04, 0x00261205, 0x003e2412, 0x004a2b1f, 0x003e2316, 0x00342018, 0x0029231a, 0x0035261d, 0x002d1e13, 0x001e1007, 0x001b0e06,
- 0x00100e0c, 0x000b0b07, 0x00080404, 0x000c0702, 0x00180d04, 0x00160f07, 0x00211916, 0x0030261e, 0x00412e28, 0x0047342b, 0x004b392f, 0x003b2c23, 0x0032292d, 0x005e5e67, 0x00b5bac7, 0x00c3cde0,
- 0x00c5cbd3, 0x00c5ccd3, 0x00bdc5cb, 0x00aab3b8, 0x0080888d, 0x00696f72, 0x0065686b, 0x006e6f70, 0x00828082, 0x00898787, 0x00898887, 0x00838481, 0x00797c76, 0x00757671, 0x006d6e6a, 0x00636662,
- 0x00636763, 0x00656b6c, 0x0045484f, 0x00292b35, 0x001f2230, 0x001b2234, 0x001b2639, 0x001d2a3b, 0x0020293a, 0x00242938, 0x0023222e, 0x0019171e, 0x00131214, 0x00090f0b, 0x00020f07, 0x00000b02,
- 0x00030407, 0x00000207, 0x000b0e16, 0x00181e2a, 0x002d3444, 0x002d3447, 0x002b3247, 0x00292e44, 0x00292a44, 0x00282842, 0x0022233f, 0x00202542, 0x00242a47, 0x00212843, 0x00232a43, 0x00222940,
- 0x00232c3b, 0x002b3441, 0x007a8390, 0x00b9c3cf, 0x00d1d9e5, 0x00d6dde7, 0x00d6dce6, 0x00dae0e9, 0x00dce3ee, 0x00d9e0eb, 0x00d9e1ec, 0x00d1dbe5, 0x00c8d1dd, 0x00c0c9d5, 0x00bec7d4, 0x00c1cad7,
- 0x00cedde7, 0x00d5e3ed, 0x00e0ecf6, 0x00e0eaf3, 0x00dbe4ea, 0x00dce4e6, 0x00f3f8f8, 0x00fcfffc, 0x00fbfdf9, 0x00fcfef8, 0x00fcfdfb, 0x00cecdcf, 0x00423f44, 0x00100b12, 0x00141017, 0x00111016,
- 0x00110d11, 0x00100c10, 0x000f0a10, 0x000d0a10, 0x000d0a0f, 0x000c0a0d, 0x000b090b, 0x000a0909, 0x000a090a, 0x000a080a, 0x00090709, 0x00080708, 0x00070606, 0x000a090a, 0x00070608, 0x00525155,
- 0x00ae8e85, 0x00713650, 0x00410a41, 0x0023195e, 0x00112572, 0x0016216f, 0x00161b68, 0x00151c65, 0x001e1358, 0x0016154b, 0x000f1a46, 0x00011c43, 0x00130b49, 0x00130a44, 0x00130f41, 0x00081539,
- 0x001c0b20, 0x003a0313, 0x006b1528, 0x00b15964, 0x00e9d0c1, 0x00f6f2ed, 0x00eff7f7, 0x00f3f7f6, 0x00f4f2f3, 0x00f8f4f7, 0x00d2cbd2, 0x006c6471, 0x00190f33, 0x001c1044, 0x00231658, 0x00261961,
- 0x001b1b69, 0x001c1b68, 0x00232170, 0x00242374, 0x00242475, 0x001f2072, 0x00212272, 0x001f1f6c, 0x00201d6d, 0x00242471, 0x00323277, 0x00474c77, 0x006e75a8, 0x008a97ca, 0x00a0b1e5, 0x009fb4e5,
- 0x007d92c6, 0x007082bb, 0x008596d9, 0x009aaef4, 0x00a0b7fd, 0x008c95be, 0x00918fac, 0x00e1e2ee, 0x00f9faff, 0x00fbfcfe, 0x00f8faf9, 0x00fafcf7, 0x00fcfef8, 0x00fbfdf8, 0x00fbfdf9, 0x00fcfdfc,
- 0x00fdfcfe, 0x00fdfbfe, 0x00fdfbfd, 0x00fbfafc, 0x00fdfdfe, 0x00fcfefd, 0x00fefffe, 0x00fdfefd, 0x00fefefe, 0x00fcfbfc, 0x00fefdfe, 0x00fcfafc, 0x00fbfafb, 0x00fbfafb, 0x00fcfbfb, 0x00faf9f8,
- 0x00edeeed, 0x00babbb9, 0x004b4c4a, 0x001d1f1d, 0x00242725, 0x00282f25, 0x001e2819, 0x001d2817, 0x0021281b, 0x001d2716, 0x00202b18, 0x00192713, 0x00182613, 0x00172513, 0x00172412, 0x00182511,
- 0x00182112, 0x00172111, 0x00182212, 0x001a2313, 0x001b2415, 0x001b2515, 0x00162112, 0x00162211, 0x00192114, 0x00121c0c, 0x001c2317, 0x006a7268, 0x00eaede7, 0x00fafef8, 0x00fefdfc, 0x00fbfaf9,
- 0x00fbfcfb, 0x00dadddb, 0x00919594, 0x00949798, 0x00c2c7c9, 0x00d3dee1, 0x00e7f2f9, 0x00e8eef8, 0x00e7dedf, 0x00f0e2d1, 0x00f9e3c9, 0x00d8c29e, 0x00a88876, 0x00ac8a7c, 0x00d3b1a2, 0x00f1d3ba,
- 0x00e9f4ea, 0x00effbec, 0x00f0f9ed, 0x00e7f4ee, 0x00f8f2f9, 0x00f8e4da, 0x00f19f87, 0x00e97347, 0x00dc6b42, 0x00b76147, 0x00865858, 0x00626490, 0x007274a3, 0x006b75a0, 0x007583ae, 0x007c90b9,
- 0x00849cc5, 0x008698c0, 0x007c8cb2, 0x00707ba0, 0x0071759a, 0x006e7481, 0x00596162, 0x00505252, 0x00534e4c, 0x00595453, 0x004b4549, 0x0027232c, 0x001b1e3a, 0x00283357, 0x002c3e6c, 0x0041588b,
- 0x0043597e, 0x00475a78, 0x00637187, 0x00717b84, 0x007d7f74, 0x0097927e, 0x00aca088, 0x00a9987c, 0x00947c60, 0x00836b50, 0x00846844, 0x00896734, 0x0088693c, 0x00866841, 0x00846c4a, 0x00826f54,
- 0x006f654c, 0x00575443, 0x00514f48, 0x004c4d4e, 0x004a4b57, 0x00515658, 0x00757776, 0x00868c87, 0x006f716e, 0x005c5d5a, 0x005f5f5e, 0x00666564, 0x006d6d6c, 0x00838382, 0x00bbbabb, 0x00e0dee1,
- 0x00f4f8f7, 0x00f3f7f6, 0x00f5faf9, 0x00f7fbfa, 0x00e8efef, 0x00b3bbbc, 0x006c7779, 0x00677475, 0x0064717d, 0x00687984, 0x00677781, 0x00697983, 0x006a7886, 0x00687886, 0x00677586, 0x00647385,
- 0x00646f88, 0x005d6a83, 0x00596481, 0x00525f76, 0x004a566c, 0x0053465b, 0x004b3447, 0x003c2e3f, 0x00302a40, 0x00232438, 0x001b2234, 0x001e2c38, 0x002c363f, 0x0031343d, 0x00616169, 0x00a7a0aa,
- 0x00e7bb9c, 0x00e2b890, 0x00edc293, 0x00e9c189, 0x00eac588, 0x00e2bf82, 0x00bc9963, 0x00a58354, 0x006d4d2e, 0x003f1f07, 0x003f271c, 0x00312c30, 0x000f1019, 0x0000050d, 0x000b1218, 0x00262a2e,
- 0x004a4942, 0x00484439, 0x004c4334, 0x00605641, 0x00625745, 0x00504635, 0x00302514, 0x001b0f03, 0x001f0e05, 0x00190800, 0x001c0c02, 0x00281a09, 0x004a3f28, 0x00554c32, 0x007f785b, 0x00847d5c,
- 0x004e3424, 0x00412e19, 0x0085765f, 0x00837a60, 0x005a5431, 0x007e7955, 0x00d0cdad, 0x00bebba2, 0x00716f67, 0x00626562, 0x005f5f5e, 0x00767766, 0x00aaa69a, 0x00bfbeb5, 0x00c4c2c0, 0x00aaacb0,
- 0x008d929a, 0x00848998, 0x00878ca1, 0x008a92a5, 0x008f99af, 0x00939fab, 0x008a959e, 0x00919ba7, 0x00a0a7be, 0x009fa7be, 0x009ca3bd, 0x009aa3b9, 0x00939cb0, 0x009da6b5, 0x00bfc8d6, 0x00a6b0bc,
- 0x00acafb3, 0x00e0e5ec, 0x00adb1cc, 0x0041486c, 0x002b3370, 0x003b478b, 0x005868b4, 0x00596abb, 0x00495cac, 0x003b509e, 0x003b4c99, 0x003a4891, 0x003d4d8d, 0x00495a92, 0x005c6e9f, 0x00677ca3,
- 0x003c566f, 0x00223e4e, 0x00122f3d, 0x001d3d44, 0x00183740, 0x001d3c44, 0x00213e49, 0x00223e4a, 0x00233c47, 0x001f3b44, 0x001b3940, 0x0018353d, 0x0017323a, 0x00163039, 0x00173139, 0x00183339,
- 0x00fdfdfe, 0x00faf7fa, 0x00f4f3f3, 0x00f7f9f5, 0x00fffdfa, 0x00fcfdfa, 0x00fcfbf9, 0x00fbfbf9, 0x00fefdfc, 0x00fefefa, 0x00fdfefb, 0x00fdfefd, 0x00fffdfe, 0x00fefcfe, 0x00fdfdfd, 0x00fefefd,
- 0x00fafafb, 0x00fdfcfc, 0x00fcfbfb, 0x00fbfbfc, 0x00fefdff, 0x00fefdfe, 0x00fcfcfe, 0x00fcfafd, 0x00fafbfa, 0x00fcfcf9, 0x00fcfbf8, 0x00fdfcf7, 0x00fdfcf9, 0x00fffdfc, 0x00fdf9fc, 0x00fef8fe,
- 0x00fbfff9, 0x00fbfffa, 0x00fcfffc, 0x00fdfffd, 0x00fafdfa, 0x00fafefa, 0x00fafdfb, 0x00fdfdfd, 0x00fafdfd, 0x00fafcfc, 0x00fcfdfd, 0x00fbfdf8, 0x00f8fcf7, 0x00f4f9f4, 0x00ecf1ee, 0x00e5e9e5,
- 0x00dfdfde, 0x00dbd9d8, 0x00d4d0cd, 0x00cdc9c4, 0x00c3c0bb, 0x00bab8b6, 0x00abaaaa, 0x00a0a09f, 0x00989996, 0x00919291, 0x00888889, 0x00787b7b, 0x00727071, 0x00686969, 0x005e5e5f, 0x00555757,
- 0x005c5a50, 0x00585c56, 0x00555a5d, 0x00525a60, 0x0057585e, 0x005d5c5b, 0x00655c56, 0x00695f54, 0x0069665f, 0x006c6e6a, 0x006f7372, 0x00717573, 0x00757b78, 0x007b7e7b, 0x00848482, 0x00888986,
- 0x0090938f, 0x00959692, 0x009d9c97, 0x00a2a09b, 0x00a5a4a0, 0x00a9a9a7, 0x00aeaeaf, 0x00b2b1b8, 0x00babcbc, 0x00bcbebe, 0x00c3c4c5, 0x00c9cbcd, 0x00ced0d2, 0x00d2d5d8, 0x00d8d9dd, 0x00dbdadf,
- 0x00deded8, 0x00e1ded9, 0x00e7e3e0, 0x00ebe8e4, 0x00f0ece8, 0x00f0eee9, 0x00efeee8, 0x00f3f0ea, 0x00f5f3ea, 0x00f6f5ee, 0x00f8f6f1, 0x00f6f4f4, 0x00f9f8f6, 0x00f9faf5, 0x00fafaf7, 0x00fafaf7,
- 0x00f3f3ee, 0x00fafcf8, 0x00fcfefa, 0x00fefcfa, 0x00fdfdfb, 0x00e9e5ec, 0x00696370, 0x00272031, 0x00777285, 0x00a6a5bb, 0x00c3c5db, 0x00d4d9ed, 0x00e4ebf9, 0x00c0c7d2, 0x00666d74, 0x004e575b,
- 0x005e749e, 0x007b8eb5, 0x007987a8, 0x00646f8a, 0x00504b5d, 0x002d222e, 0x002b151a, 0x00321413, 0x00542c23, 0x0063382c, 0x00512823, 0x0043222d, 0x003b1f1d, 0x00533b35, 0x005f4e43, 0x003a3128,
- 0x002e2a31, 0x00282431, 0x00302e41, 0x00737683, 0x00c6ced6, 0x00cac9da, 0x00c9c7cb, 0x00aab089, 0x007d8b30, 0x008e9e42, 0x0095a15b, 0x00b3b999, 0x00babad0, 0x008d8da6, 0x00abadc5, 0x00d6dbe7,
- 0x00cdc8c7, 0x00c8c3c2, 0x00d4d0ce, 0x00dcd9d6, 0x00e2dede, 0x00c6c2c1, 0x00b1aeab, 0x00c8c3c0, 0x00e1dad9, 0x00e5dfdd, 0x00d4cfce, 0x00c6c1bf, 0x00b5aeab, 0x00b2a8a7, 0x00a5989a, 0x009d8e90,
- 0x00a5969b, 0x00a09398, 0x009c9296, 0x00aba2a7, 0x00cdc6ca, 0x00dadad4, 0x00daddd1, 0x00bab9b1, 0x00a09b98, 0x00968d90, 0x00968b93, 0x00a39aa2, 0x00c3bfc8, 0x00c3c7cd, 0x00c3cacd, 0x00b1bbbb,
- 0x00627794, 0x004d6267, 0x0092a397, 0x009fa99c, 0x00bdafc6, 0x00af96af, 0x00896b77, 0x00977c71, 0x00919568, 0x00687851, 0x00555e4c, 0x00675b70, 0x006e3839, 0x009a6757, 0x00d8b394, 0x00bfb490,
- 0x009a8f82, 0x00947472, 0x009c7773, 0x00947661, 0x00495e19, 0x005c654a, 0x008a8985, 0x0077696a, 0x003b1a20, 0x00432025, 0x008b6c70, 0x00b09b98, 0x00aca09d, 0x009b918e, 0x00a79d9e, 0x00b2a4a7,
- 0x009b9192, 0x008f8386, 0x00968a8d, 0x00aea3a5, 0x00aea2a3, 0x00998e8e, 0x00a69a9e, 0x00a3959c, 0x009b9094, 0x00b9aeb4, 0x009c9b9b, 0x005e6c62, 0x00626d64, 0x00696e68, 0x007f827e, 0x00a5a5a3,
- 0x00bdb7ba, 0x00ada8ab, 0x00b5b0b4, 0x00dddae0, 0x00fcfcff, 0x00fcfbf7, 0x00fcfdf9, 0x00fbfdfb, 0x00fbfeff, 0x00aea7a1, 0x00291609, 0x00401e06, 0x0066320a, 0x0071380d, 0x00753b12, 0x0072380f,
- 0x0071390b, 0x00753d0e, 0x00784012, 0x00773f12, 0x00753d10, 0x00743c0e, 0x00753c0f, 0x00753d10, 0x00763f12, 0x00774011, 0x00774011, 0x00733f11, 0x00703c11, 0x006f3d0e, 0x00703f0f, 0x00704012,
- 0x00713b0f, 0x00723d13, 0x00723e13, 0x00703d10, 0x006d3a0d, 0x006c380b, 0x006f390b, 0x006f390a, 0x006d370a, 0x0069360b, 0x0065350c, 0x0062360e, 0x00613813, 0x005e3613, 0x005a3512, 0x00593514,
- 0x00632e06, 0x00612d07, 0x005e2b06, 0x005d2c08, 0x005c2e09, 0x00592e08, 0x00532a05, 0x004f2804, 0x004c2704, 0x00492503, 0x00472607, 0x0046260d, 0x0043250e, 0x0040240b, 0x003f230b, 0x003d210c,
- 0x003c1e09, 0x003d210d, 0x00391e0a, 0x00341b05, 0x00331c08, 0x00311b0b, 0x002d190a, 0x002c180a, 0x002e1b0f, 0x00301d13, 0x00311c14, 0x00301c15, 0x0035231d, 0x0034231d, 0x00382820, 0x003f2f24,
- 0x00534132, 0x0056463c, 0x00998d83, 0x00ede9e3, 0x00fefefd, 0x00fbfdfb, 0x00f7fbfc, 0x00fbfefe, 0x00c7cbcd, 0x0058585b, 0x000f1a1a, 0x00011e1c, 0x003b393f, 0x0075666a, 0x00948386, 0x00999599,
- 0x004c70ae, 0x00133daa, 0x00123dbc, 0x001b41bb, 0x001b327a, 0x0001144a, 0x00173273, 0x00264cb4, 0x002559d9, 0x002a54b0, 0x00031e54, 0x00030814, 0x000d0204, 0x00060106, 0x00010204, 0x00000c06,
- 0x00130e04, 0x001f1e17, 0x0020241f, 0x00131918, 0x00120d07, 0x001b0b02, 0x00482e1c, 0x0075533c, 0x007a5843, 0x005d3f2c, 0x003d2719, 0x00282219, 0x00302216, 0x002b1d12, 0x001b0f04, 0x00190f07,
- 0x000a0c0d, 0x00070d0d, 0x00050505, 0x00130f0c, 0x00221207, 0x0022150c, 0x0023160f, 0x00281b13, 0x003d2e2a, 0x0050403a, 0x004e3f39, 0x003a2e2a, 0x00585055, 0x009a98a1, 0x00cdceda, 0x00c9cede,
- 0x00c5c9d2, 0x00bcc1c8, 0x009ea2a9, 0x007f8489, 0x006a6d73, 0x00727479, 0x0078797c, 0x007d7d7f, 0x00868688, 0x008a888a, 0x00888787, 0x0080837e, 0x00757871, 0x006b6e67, 0x00646961, 0x00626761,
- 0x005f6760, 0x00454d4d, 0x00222733, 0x00171b2c, 0x00181e35, 0x00171f34, 0x00162134, 0x00152435, 0x00192735, 0x001f2532, 0x001e1e2a, 0x0018131a, 0x00161113, 0x00090d08, 0x00020c03, 0x00010e03,
- 0x0004070a, 0x000a0e13, 0x00222830, 0x002b343f, 0x00283244, 0x00232d43, 0x00202941, 0x00202841, 0x0021233d, 0x001f213c, 0x001c1f3b, 0x00151c39, 0x001c2342, 0x001c2643, 0x001c263f, 0x001d2740,
- 0x001f293b, 0x001f2837, 0x00404a57, 0x008995a0, 0x00c6d0da, 0x00d6dce6, 0x00d5d8e3, 0x00d5d9e3, 0x00d8dbe8, 0x00d6dae7, 0x00d5dae7, 0x00d5dcea, 0x00d2d9e9, 0x00ced6e6, 0x00c7cfe0, 0x00c2cbdc,
- 0x00bacad2, 0x00c0ced7, 0x00ccd8e0, 0x00d3dde3, 0x00d8e2e4, 0x00dbe2e2, 0x00f1f6f4, 0x00fbfdfb, 0x00fcfff6, 0x00fefff8, 0x00fdfdfa, 0x00e1e2e5, 0x00615f66, 0x0018141a, 0x00120f15, 0x00131416,
- 0x00121312, 0x00121212, 0x00121011, 0x00121010, 0x0012100f, 0x0010100d, 0x000e0f09, 0x000c0e07, 0x000c0d08, 0x000c0d0a, 0x000b0c0a, 0x00090b0a, 0x000a0c0b, 0x000b0e0d, 0x0006090b, 0x00505356,
- 0x00af9584, 0x0085344e, 0x004f0536, 0x00251551, 0x000b236c, 0x00151e6c, 0x00161a68, 0x00101c60, 0x001c124e, 0x0015134a, 0x000c1744, 0x00001c3c, 0x00180649, 0x0014084c, 0x000d0d44, 0x00011333,
- 0x00130309, 0x004f0408, 0x00901c28, 0x00cb646f, 0x00ede2d6, 0x00f4f2f0, 0x00f4f3f4, 0x00f8f7f4, 0x00f4f7f4, 0x00f7f7f8, 0x00f1eff7, 0x00c0bdc9, 0x00655e83, 0x00483f71, 0x00382d6c, 0x00342a6d,
- 0x00242972, 0x00262a71, 0x002a2e74, 0x002d3177, 0x002b2e74, 0x002c2f74, 0x003a3b7f, 0x0048498a, 0x005a5997, 0x006c6eac, 0x008788c2, 0x009ca3c9, 0x00a3abd9, 0x008d9bc9, 0x006879ae, 0x004e629a,
- 0x004d66a2, 0x00677dc0, 0x00849ce0, 0x0093abf0, 0x009aaef6, 0x009296c3, 0x00aca6c7, 0x00eeebf8, 0x00fefaff, 0x00fefefc, 0x00f9fbf6, 0x00fafef4, 0x00fbfdf5, 0x00fcfdfa, 0x00fbfdfc, 0x00fafdfe,
- 0x00fbfcfd, 0x00fcfcfd, 0x00fdfdfd, 0x00fdfcfd, 0x00feffff, 0x00fcfdfd, 0x00fcfcfc, 0x00fdfdfc, 0x00fdfcfc, 0x00fdfcfc, 0x00fdfcfd, 0x00fafafa, 0x00fbfafa, 0x00fafafa, 0x00f9f9f9, 0x00fafaf9,
- 0x00f5f7f6, 0x00f7f8f7, 0x00bcbcbc, 0x00656564, 0x00232424, 0x00191d15, 0x00252e1e, 0x00242e1d, 0x001b2414, 0x001b2513, 0x00182410, 0x00172610, 0x0014240f, 0x0013240e, 0x0012230b, 0x0012240b,
- 0x00151d10, 0x00141e10, 0x00151f11, 0x00172013, 0x00192014, 0x00172014, 0x00141e11, 0x00161f11, 0x00131c10, 0x00111b0d, 0x00131b10, 0x00505b4f, 0x00d8dbd5, 0x00f9fdf5, 0x00fefdfa, 0x00fefbfa,
- 0x00fcfafa, 0x00e7e7e5, 0x009da09d, 0x008a908d, 0x00bcc4c2, 0x00d1dde0, 0x00e5eff6, 0x00f1f6fd, 0x00f8ebf2, 0x00fbe9ed, 0x00f5dee1, 0x00e0c5c5, 0x00d8bebb, 0x00ebd6cc, 0x00f9e8dc, 0x00faf4e4,
- 0x00e8f9fa, 0x00f1fdf7, 0x00e9f6ee, 0x00f0fcf3, 0x00fbe7e1, 0x00fcb19c, 0x00ee6e49, 0x00fb5c25, 0x00c75634, 0x00814847, 0x00605775, 0x004669a7, 0x00506fab, 0x004a6aa6, 0x004c6ca6, 0x005475aa,
- 0x00627fb6, 0x006a87bc, 0x00728ec4, 0x007591c1, 0x007c9aca, 0x00849ebc, 0x006f899d, 0x00596d7e, 0x00363e4c, 0x00242834, 0x0010101d, 0x00110f21, 0x0014172f, 0x00161d3a, 0x00172445, 0x00202f56,
- 0x002f3e5a, 0x003d495f, 0x005e6775, 0x00737a7b, 0x00929280, 0x00a49f85, 0x00a19478, 0x00917e61, 0x00816b4a, 0x0081694b, 0x00886b49, 0x0089693a, 0x00876a3e, 0x00826742, 0x007f694a, 0x0074634b,
- 0x004d4738, 0x003f3d37, 0x00444647, 0x00525559, 0x00626872, 0x00707577, 0x008b8d8c, 0x009c9d9b, 0x00999c9a, 0x009a9d9b, 0x00a8aaa9, 0x00b4b7b5, 0x00c6c9c7, 0x00d7dad9, 0x00ebeeee, 0x00f4f5f7,
- 0x00f5fafa, 0x00f9fcfc, 0x00fbfefc, 0x00f9fcf9, 0x00e1e6e2, 0x00b6bdbc, 0x00757f7f, 0x006b7779, 0x00657680, 0x006e7f8a, 0x00677982, 0x006c7b85, 0x00697986, 0x00697888, 0x00657486, 0x00637087,
- 0x005f6b86, 0x005b6983, 0x0057627e, 0x004d5a77, 0x0045506a, 0x003f4864, 0x00343d58, 0x002a3451, 0x001f304a, 0x00192c44, 0x0016283f, 0x001c2f43, 0x00283245, 0x00302f43, 0x0051495d, 0x009c8da2,
- 0x00e3bd9c, 0x00e4bd97, 0x00efc896, 0x00ecc58d, 0x00e2bf7e, 0x00d8b67a, 0x00b5915a, 0x00967448, 0x00593c21, 0x00391c0c, 0x0043322d, 0x001f2934, 0x000e1626, 0x000d1424, 0x000f0e21, 0x00151226,
- 0x002f2a35, 0x00434140, 0x008b867f, 0x00d4d0bb, 0x00dddabd, 0x00ccc7a9, 0x00948b70, 0x00675f47, 0x00463d29, 0x002b210f, 0x004f4431, 0x00958c74, 0x00c3bca0, 0x00cec8a9, 0x00e2ddbb, 0x00bdb894,
- 0x00635641, 0x008c8267, 0x00aba083, 0x00847a59, 0x007f7755, 0x00a19a79, 0x00d0ceb4, 0x00b5b4a2, 0x00696761, 0x00646261, 0x00817e7a, 0x00a9a48d, 0x00c1bdab, 0x00cdc6bd, 0x00c0bcba, 0x00a4a4a9,
- 0x008d909a, 0x00858896, 0x00818498, 0x0083889a, 0x00868da1, 0x008e989a, 0x00929b98, 0x00abb1b5, 0x00bac3d2, 0x00aab2c6, 0x009fa6bd, 0x00989fb8, 0x009da4b7, 0x00b3b9c7, 0x00bac0c7, 0x00a4acb0,
- 0x00b3b2c0, 0x00e2e4ef, 0x00acafce, 0x00414970, 0x00343e79, 0x00455692, 0x006b7ec2, 0x00677bc7, 0x005b71ba, 0x004358a5, 0x0030408c, 0x003c498d, 0x006e7bb1, 0x0094a4cc, 0x009caecf, 0x008c9fbc,
- 0x007b92af, 0x00526a85, 0x00132d45, 0x00193846, 0x001b3b40, 0x001f3d47, 0x00213d49, 0x00243f4b, 0x00253c49, 0x00223a46, 0x001e3842, 0x001a363d, 0x0018333b, 0x00173238, 0x00173337, 0x00193538,
- 0x00fcf9f8, 0x00fefdfe, 0x00fbfbfb, 0x00f6f5f3, 0x00fbfcfa, 0x00fcfcfb, 0x00fbfbf9, 0x00fdfdfc, 0x00fefcfa, 0x00fcfcf7, 0x00fbfefb, 0x00fbfdfc, 0x00fefdfd, 0x00fdfbfc, 0x00fdfcfe, 0x00fbfbfc,
- 0x00fcfcfc, 0x00fefefe, 0x00fcfcfd, 0x00fdfdfd, 0x00fefcfd, 0x00fdfcfd, 0x00fbfbfd, 0x00fefcff, 0x00fdfcfc, 0x00fcfbfa, 0x00fdfcfa, 0x00fdfbf9, 0x00fefbfa, 0x00fffdfc, 0x00fefcfd, 0x00fffeff,
- 0x00fefffb, 0x00fbfdf8, 0x00f9fbf6, 0x00f7f8f4, 0x00f4f5f1, 0x00f3f4f1, 0x00f0f0ee, 0x00eae9e7, 0x00e0e3e2, 0x00d7d9da, 0x00d2d2d2, 0x00c9c9c8, 0x00bebfbc, 0x00b8b8ba, 0x00adaeaf, 0x009fa1a1,
- 0x008c8b8f, 0x00868588, 0x007e7c7d, 0x00767574, 0x006e6d6d, 0x00696969, 0x00606160, 0x00575958, 0x00525451, 0x00545654, 0x00575959, 0x00585b5a, 0x005e5d5d, 0x00636262, 0x00656666, 0x00676769,
- 0x006c6c65, 0x006b716c, 0x006f7777, 0x00757d7f, 0x007f8084, 0x00888485, 0x008e8583, 0x00938a85, 0x00969491, 0x00969a97, 0x009c9ca2, 0x00a69fae, 0x00aca5b4, 0x00b1aab8, 0x00b8afbe, 0x00bbb5c1,
- 0x00c2bbc7, 0x00c4bdca, 0x00cbc2d0, 0x00d0c7d7, 0x00d4cbd9, 0x00d7ced4, 0x00dbd4d4, 0x00e1dada, 0x00e5e2de, 0x00e7e3e0, 0x00e9e5e2, 0x00ece7e4, 0x00f0ebe8, 0x00f2ede9, 0x00f3efec, 0x00f6f2ef,
- 0x00f4f5f0, 0x00f5f5f1, 0x00f9f8f5, 0x00fbfaf6, 0x00fffcf8, 0x00fdfbf6, 0x00fffcf7, 0x00fffefa, 0x00fffef9, 0x00fdfef8, 0x00fdfef8, 0x00fcfef9, 0x00fefffb, 0x00fffff9, 0x00fcfbf8, 0x00fbfaf7,
- 0x00f8f7f5, 0x00fdfdfb, 0x00fefefe, 0x00fcfcfb, 0x00fdfdfa, 0x00eeecf0, 0x0097929e, 0x006f6a79, 0x009c9aaa, 0x00a4a3b4, 0x00a7a7b8, 0x00a9aab9, 0x00b4b6c0, 0x009b9da4, 0x00686a6c, 0x00636565,
- 0x005d6e94, 0x007f8db1, 0x00919cbc, 0x00727891, 0x00585566, 0x004d414b, 0x003d292c, 0x00341b17, 0x00543027, 0x00664132, 0x0058342e, 0x00422730, 0x00422b27, 0x00534138, 0x006b5e53, 0x005a5147,
- 0x003f3840, 0x003a3540, 0x005f5d6d, 0x009c9fae, 0x00e2e8ed, 0x00e8e7f7, 0x00dedede, 0x00a8af8a, 0x007b892f, 0x0097a54d, 0x00919c56, 0x009da583, 0x00b7b9ca, 0x00888ba2, 0x00a8a9c1, 0x00d5d7e6,
- 0x00d3cccc, 0x00c8c3c3, 0x00dad5d3, 0x00e9e5e2, 0x00dfdada, 0x00bab5b5, 0x00a7a1a0, 0x00bfbab9, 0x00ddd8d7, 0x00e2dcdc, 0x00cbc6c4, 0x00bbb6b1, 0x00ada4a2, 0x00aca0a1, 0x00a29497, 0x0096868b,
- 0x009a898e, 0x00a8999e, 0x00a69a9e, 0x00a3989d, 0x00c3bbc0, 0x00dbdad6, 0x00d9dcd2, 0x00b4b4ae, 0x009c9598, 0x0090878e, 0x008f848e, 0x00a198a1, 0x00bfb9c3, 0x00c0bfc7, 0x00c8cdcf, 0x009ea6a6,
- 0x004a4c6a, 0x003c4246, 0x00879083, 0x00a6ad9f, 0x00baafc4, 0x00ab95ac, 0x007f666f, 0x008e7a6a, 0x0087875c, 0x0065714d, 0x00565b51, 0x004b3a52, 0x00733e46, 0x009c6a5d, 0x00d2ad96, 0x00c2b798,
- 0x00979087, 0x008e7274, 0x009f7c7b, 0x00846b52, 0x003a5211, 0x00586048, 0x00898483, 0x00655858, 0x00381b22, 0x00604045, 0x00ac8e93, 0x00b7a0a2, 0x00aea0a0, 0x00afa4a3, 0x00b1a6a9, 0x00a39497,
- 0x008d8384, 0x00857b7c, 0x00888080, 0x00bab2b2, 0x00b3a8a7, 0x00a49999, 0x00b2a9aa, 0x00a89ea1, 0x009f979a, 0x00c8bec3, 0x00b0adae, 0x00707c74, 0x00666f69, 0x006a6f6d, 0x007b7d7d, 0x00a29e9f,
- 0x00bbb6b9, 0x00b3b0b5, 0x00bfbcc2, 0x00e4e2e8, 0x00fdfcfe, 0x00fbfaf5, 0x00fcfdf9, 0x00fdfeff, 0x00faffff, 0x00ada8a2, 0x0029180c, 0x00422108, 0x0069340d, 0x00733a0e, 0x00773d12, 0x00733a11,
- 0x00773f12, 0x00794114, 0x007a4215, 0x00784112, 0x00753e10, 0x00743d0f, 0x00733d0d, 0x00723c0b, 0x00763e10, 0x00784112, 0x007a4415, 0x00784517, 0x00754117, 0x00733f14, 0x00723e11, 0x00713c11,
- 0x00763f12, 0x00733e11, 0x00713c0f, 0x00733d11, 0x00754013, 0x00764011, 0x00794011, 0x00794114, 0x00743f13, 0x006e3c10, 0x006b3b10, 0x006b3c12, 0x006b3d17, 0x006b3d18, 0x006c3e18, 0x006b3d18,
- 0x006c3d17, 0x006b3b15, 0x006a3914, 0x006a3a14, 0x006a3b17, 0x00683b17, 0x00623815, 0x005f3713, 0x005d3612, 0x005a3511, 0x005a3412, 0x005c3413, 0x005b3314, 0x00563113, 0x00543013, 0x00542e12,
- 0x00552f11, 0x00543014, 0x00512e12, 0x004e2d0f, 0x004e2d12, 0x004c2c11, 0x0048280c, 0x0046250b, 0x0041200a, 0x003c1d07, 0x003c1e08, 0x003b1d08, 0x00391a07, 0x00371807, 0x00381908, 0x00371906,
- 0x00301b0a, 0x00261305, 0x0079695c, 0x00e8e1d8, 0x00fdfbf8, 0x00fcfbfa, 0x00f9fbfd, 0x00faffff, 0x00c8cbcc, 0x00525557, 0x000c1518, 0x0001191c, 0x0036303d, 0x006d5f66, 0x00938387, 0x00949395,
- 0x004967a7, 0x001138a4, 0x00133dbd, 0x00183fbb, 0x00142d79, 0x00001353, 0x00183081, 0x002d4dbf, 0x002556d5, 0x00244ea3, 0x00051e4c, 0x00050911, 0x000f0001, 0x00090004, 0x00030103, 0x00010c06,
- 0x00170f08, 0x00211e1a, 0x001a1d1c, 0x00131718, 0x00160f09, 0x002a180c, 0x00715640, 0x0099765b, 0x0096715c, 0x007a5844, 0x00472f21, 0x00282019, 0x0023170f, 0x001d130a, 0x00100901, 0x000f0b05,
- 0x000b0b0e, 0x0005090a, 0x00050708, 0x00120f0c, 0x0022160d, 0x0020160d, 0x0020150e, 0x00190e07, 0x002d1d19, 0x00493a33, 0x00554844, 0x00524746, 0x00888287, 0x00bbbbc4, 0x00cbcdd9, 0x00c4c9d9,
- 0x00b3b6bf, 0x009ea2a9, 0x007e8288, 0x006b6f75, 0x00707378, 0x007a7b81, 0x007e7e83, 0x00828386, 0x008a898a, 0x008e8c8c, 0x008b8b8a, 0x00818381, 0x00737573, 0x00696b68, 0x00636863, 0x00636864,
- 0x004f5455, 0x00262c30, 0x00141824, 0x00141a2d, 0x00171e34, 0x001c2239, 0x001a2037, 0x00182539, 0x001f2a39, 0x001e2533, 0x00181b26, 0x0016141c, 0x00120d13, 0x000a0b0b, 0x00020805, 0x00010b05,
- 0x00090b0c, 0x00161b1e, 0x00353b42, 0x00343c49, 0x00212b3e, 0x001d273d, 0x001d233b, 0x001e243c, 0x001f213b, 0x00181933, 0x001a1c36, 0x00181f3a, 0x00171e3c, 0x0018203b, 0x00182038, 0x00192039,
- 0x001c2338, 0x001d2435, 0x00202836, 0x00505a66, 0x00adb5c1, 0x00d3d8e3, 0x00d3d6e1, 0x00d2d4e0, 0x00d3d7e6, 0x00d4d9e8, 0x00d2d7e7, 0x00d1d7e8, 0x00d3daeb, 0x00d0d9ea, 0x00cad4e6, 0x00c6d1e3,
- 0x00bdcad6, 0x00bbc7d3, 0x00bbc6d1, 0x00c1ccd4, 0x00cad3d8, 0x00d6dddf, 0x00eef2f4, 0x00fafefe, 0x00fcfffa, 0x00fefffa, 0x00fdfdfb, 0x00f2f3f5, 0x00817f83, 0x00201d1f, 0x00131214, 0x00161616,
- 0x00151718, 0x00151516, 0x00151414, 0x00151412, 0x00151411, 0x00141410, 0x0012140e, 0x0010130c, 0x000f110c, 0x000f110c, 0x000d0f0c, 0x000f110f, 0x00111312, 0x00101212, 0x00080b0c, 0x00505353,
- 0x00b99a88, 0x008d3b50, 0x0050042f, 0x00231048, 0x000a1f66, 0x00161b69, 0x00181865, 0x0010195b, 0x001c0e4e, 0x00131049, 0x00091242, 0x00001834, 0x001c053f, 0x00170740, 0x000d0737, 0x00000b23,
- 0x0019040b, 0x0063121b, 0x009f313b, 0x00da7175, 0x00efe4d4, 0x00f0eae8, 0x00f4f2f2, 0x00f6f8f6, 0x00f7f7f9, 0x00f8f8fa, 0x00fbfafd, 0x00efeef8, 0x00cbc6e3, 0x00afa7d1, 0x00938abf, 0x008179b3,
- 0x005c68a3, 0x0054619b, 0x0057659d, 0x006471a8, 0x00636da6, 0x006b73ac, 0x007c84bc, 0x008b93cb, 0x00989dd6, 0x009da3dc, 0x009ca0db, 0x00898ccc, 0x006369ac, 0x00424a90, 0x003c468f, 0x00425099,
- 0x006174bc, 0x008192d6, 0x008ba0e1, 0x0094aae8, 0x0093a5dc, 0x009094b7, 0x00bfbcd7, 0x00f4f2fa, 0x00fbf7ff, 0x00fcfbfc, 0x00fafdf8, 0x00fbfff6, 0x00fcfdf7, 0x00fefdfc, 0x00fdfdfd, 0x00fafcfd,
- 0x00fbfdfd, 0x00fbfcfc, 0x00fcfefe, 0x00fdfdfd, 0x00fefefe, 0x00fcfcfc, 0x00fdfcfc, 0x00fefdfc, 0x00fdfcfc, 0x00fdfcfc, 0x00fdfcfc, 0x00fbfbfb, 0x00fbfbfb, 0x00fbfbfb, 0x00f9fafb, 0x00f9f9fb,
- 0x00fafcfc, 0x00f7f8f7, 0x00f9f9f8, 0x00c3c3c2, 0x0057575a, 0x00232620, 0x001e2317, 0x00191f13, 0x00192112, 0x0020291a, 0x001a2413, 0x00172411, 0x00152310, 0x0013220d, 0x00112209, 0x00102107,
- 0x00121b0f, 0x00121d10, 0x00121e10, 0x00131f10, 0x00151d12, 0x00151d11, 0x00111b0d, 0x00131b0e, 0x00131a0e, 0x0010180c, 0x000d170b, 0x003a443a, 0x00c5cac3, 0x00f8faf4, 0x00fdfef9, 0x00fdfdfa,
- 0x00fffcfd, 0x00f0eeee, 0x00a8aaa8, 0x00848a86, 0x00b3bcbb, 0x00cddcdf, 0x00e2f1f6, 0x00edf8fd, 0x00faf7fb, 0x00fbf4f8, 0x00f9eef1, 0x00f8ebea, 0x00fbefea, 0x00fef8ef, 0x00fbf3ea, 0x00faf6e9,
- 0x00eef3f4, 0x00edfbf7, 0x00eef8f4, 0x00f1f9f3, 0x00ecbead, 0x00e3805f, 0x00ea6436, 0x00f15828, 0x00a2453b, 0x0067475a, 0x00555f89, 0x003d619a, 0x00375b95, 0x003b5a92, 0x003b5f94, 0x00406198,
- 0x004c679c, 0x005775a8, 0x006580b2, 0x006a87b6, 0x007892c0, 0x00829ecd, 0x00829bc4, 0x00788eb0, 0x005c6780, 0x003b3f52, 0x000b0b19, 0x000e0b19, 0x00101220, 0x000e1221, 0x000e1528, 0x00101a2e,
- 0x001c2435, 0x00393f4a, 0x00696c70, 0x008a8a84, 0x00a7a08a, 0x00ab9f83, 0x00948365, 0x00846f4e, 0x0084694a, 0x0084684a, 0x00816444, 0x007e653a, 0x007f6742, 0x00816a4a, 0x007d6950, 0x006c5d49,
- 0x00575243, 0x0064625e, 0x007f8081, 0x0091959b, 0x00a4aab4, 0x00b8bdc1, 0x00c9cdcb, 0x00d3d7d5, 0x00dee0df, 0x00e7e9e8, 0x00f0f0f0, 0x00f4f4f3, 0x00f6f6f5, 0x00fafcfb, 0x00fcfeff, 0x00fbfeff,
- 0x00f9fdff, 0x00fcffff, 0x00feffff, 0x00f8faf8, 0x00d4d7d4, 0x00b2b8b5, 0x00818888, 0x006e7679, 0x006d7c85, 0x0070828d, 0x006a7b85, 0x006a7883, 0x00677685, 0x00647385, 0x00627086, 0x00616e89,
- 0x005c6988, 0x00566581, 0x00525e7b, 0x004c5873, 0x00434f68, 0x003c4362, 0x00323b59, 0x00283353, 0x0022334d, 0x001a2d45, 0x00192b41, 0x001e2e42, 0x00293045, 0x00333147, 0x0041374f, 0x00857990,
- 0x00e1be95, 0x00e6c191, 0x00ecc58a, 0x00eabf7d, 0x00dab268, 0x00caa35d, 0x00a78246, 0x00856638, 0x004e3820, 0x003e281b, 0x00494040, 0x00313c4b, 0x002f344b, 0x00363b50, 0x00323750, 0x0033344e,
- 0x00343345, 0x0027272a, 0x0063615f, 0x00bcb7ac, 0x00f1efd9, 0x00f4ecd1, 0x00b8b096, 0x008d876f, 0x00605946, 0x0038321d, 0x0078715c, 0x00dad4be, 0x00f1ebd1, 0x00ebe5c7, 0x00eae5c3, 0x00b5b18d,
- 0x00796854, 0x0091836b, 0x00897d5f, 0x007e7551, 0x00afa782, 0x00c8c2a0, 0x00d7d4b8, 0x00b7b49e, 0x006a6860, 0x006c6b66, 0x00a39f97, 0x00c3bfa4, 0x00d0cdb8, 0x00d3cfc3, 0x00bab7b2, 0x009d9d9f,
- 0x009493a1, 0x008b8c9a, 0x00858899, 0x00858a9c, 0x008990a0, 0x008e989a, 0x009ea8a7, 0x00bac3c6, 0x00c7cbd9, 0x00b1b5c6, 0x00a1a6bb, 0x009ca1b8, 0x00b0b4c8, 0x00c3c7d5, 0x00aeb4bb, 0x00a2a8ac,
- 0x00b9b9c6, 0x00e4e8f0, 0x00a7adc7, 0x003f4770, 0x00424d87, 0x00525fa2, 0x007585ca, 0x007686d0, 0x006776bc, 0x004b5d9f, 0x00485794, 0x006b78af, 0x00a2b0de, 0x00bcccf1, 0x00a2b2d5, 0x00637597,
- 0x007389ae, 0x00687ea1, 0x00203957, 0x00112e3d, 0x001b3a3b, 0x001e3941, 0x00233c48, 0x00243c47, 0x00233a48, 0x00213946, 0x001e3842, 0x001b373e, 0x001c353e, 0x001a353b, 0x001a3639, 0x001b373a,
- 0x00fffcfb, 0x00fdfaf9, 0x00f9faf6, 0x00faf9f6, 0x00fcfdfd, 0x00fefdfb, 0x00fafdf7, 0x00fffef9, 0x00fffcfc, 0x00fefdfa, 0x00fbfcfb, 0x00fbfcfc, 0x00fdfdfd, 0x00fefefd, 0x00fdfefe, 0x00fefdfd,
- 0x00fffeff, 0x00fffdfe, 0x00fefdfd, 0x00fffefc, 0x00fefdfb, 0x00fcfcfb, 0x00f8faf9, 0x00f8f9f8, 0x00fbf9f9, 0x00f9f8f7, 0x00f5f6f3, 0x00eff1ed, 0x00e5e7e3, 0x00dbdcdb, 0x00cecfd0, 0x00c9cbcd,
- 0x00cac5c7, 0x00c4c0c0, 0x00b7b5b2, 0x00b0aeaa, 0x00a7a5a0, 0x009d9b95, 0x00919189, 0x0088897f, 0x00817b74, 0x0076726b, 0x006c6a67, 0x00605d62, 0x00575458, 0x0058545a, 0x0059555a, 0x00545155,
- 0x005c5963, 0x005b5a64, 0x005d5e65, 0x00606268, 0x0062636b, 0x0066676a, 0x006b6d6a, 0x006f716f, 0x00777679, 0x007e7b7d, 0x007f807f, 0x00858684, 0x008c8b8b, 0x00918f90, 0x00949594, 0x00999997,
- 0x009fa3a3, 0x00a2a7a5, 0x00a8adab, 0x00b3b3b3, 0x00bbb7b9, 0x00c1b9bd, 0x00c1bcbf, 0x00c5c1c4, 0x00cdc9d0, 0x00ced0d5, 0x00d6d1d8, 0x00e0d3dd, 0x00e4d6e1, 0x00e6dae3, 0x00eadfe7, 0x00eae2e9,
- 0x00f1e3f2, 0x00f2e6f4, 0x00f2e8f4, 0x00f4ebf7, 0x00f8eff9, 0x00faf2f3, 0x00fcf5f0, 0x00fcf6f1, 0x00fff7f8, 0x00fff8f5, 0x00fdf7f2, 0x00fcf7f2, 0x00fff9f6, 0x00fff9f6, 0x00fdf9f4, 0x00fefaf3,
- 0x00fefcff, 0x00fdfdff, 0x00fcfdff, 0x00fcfdfc, 0x00fcfdfb, 0x00fefefb, 0x00fffdfa, 0x00fdfdf9, 0x00fffcfe, 0x00fffefc, 0x00fbfbfa, 0x00fdfdfb, 0x00fefefb, 0x00fffefe, 0x00fbfcfa, 0x00f7fbf7,
- 0x00fffcfe, 0x00fffefd, 0x00fdfffa, 0x00fdfef9, 0x00fbfdf8, 0x00f3f2f6, 0x00dad9e1, 0x00c8c7cf, 0x00b2abb8, 0x00786f7b, 0x0061585f, 0x00584f55, 0x00584e50, 0x00534c49, 0x0058544a, 0x00696557,
- 0x0046506a, 0x006b758d, 0x00a2a9be, 0x009297a6, 0x007b7a82, 0x006b6166, 0x00564747, 0x00614f4a, 0x009b807c, 0x00a0857a, 0x007e6762, 0x0083747a, 0x0091847f, 0x00958c80, 0x00a29b8c, 0x009f9889,
- 0x008e838b, 0x009b94a3, 0x00c3bfcf, 0x00cfd0db, 0x00e3e5eb, 0x00e9e6f5, 0x00e0dedc, 0x00a6af8c, 0x00737f2d, 0x007e8a3a, 0x006c7833, 0x007a835d, 0x00a7acb1, 0x00888c9d, 0x00a4a8ba, 0x00d4d8e5,
- 0x00cac3c3, 0x00bab2b4, 0x00c2bdbb, 0x00d7d3d0, 0x00c7c0bf, 0x00a7a19f, 0x00a8a5a2, 0x00c3bfbe, 0x00d9d3d4, 0x00dbd4d5, 0x00c1bbb8, 0x00ada9a3, 0x00a9a19e, 0x00aaa19e, 0x0099908d, 0x008a7e7d,
- 0x008e7b82, 0x00a89aa1, 0x00bbb0b3, 0x00b2a9ab, 0x00bdb7ba, 0x00dbdad7, 0x00d2d1cb, 0x00a19d9a, 0x008a838a, 0x00837a85, 0x00837a86, 0x00948d99, 0x00b0abb8, 0x00acabb6, 0x00bfc1c9, 0x0091979c,
- 0x004d264a, 0x00462a34, 0x008e7f77, 0x00bab6ab, 0x00aea5b2, 0x00928593, 0x00726461, 0x00857e61, 0x0094916b, 0x00868b6e, 0x0074716b, 0x004d3750, 0x008c5e67, 0x00ae8680, 0x00c1a696, 0x00c8c3a9,
- 0x00978e8a, 0x00897875, 0x008b7a72, 0x00615a3e, 0x002a4305, 0x004d5a42, 0x007d7b7b, 0x0055484a, 0x00482c39, 0x008a6a75, 0x00c6abb5, 0x00b9a6ad, 0x00aca1a2, 0x00b7afae, 0x00aba1a3, 0x00918184,
- 0x0088807e, 0x00746c69, 0x00847f7b, 0x00c6c2be, 0x00b1a9a8, 0x00a19a9a, 0x009e9a9a, 0x00a09c9d, 0x00a19a9f, 0x00beb6ba, 0x00bfbdbd, 0x008e9890, 0x00767c76, 0x007d807e, 0x00919392, 0x00ada9a8,
- 0x00bdb5ba, 0x00c1bdc4, 0x00c9c5ca, 0x00dedce0, 0x00fffefe, 0x00fcfdf7, 0x00fbfff8, 0x00fafefb, 0x00ffffff, 0x00b1a7a3, 0x0029160a, 0x003f1e05, 0x0066310b, 0x0071380e, 0x00783e14, 0x00793e16,
- 0x007c4317, 0x00794014, 0x00753d10, 0x00743d0e, 0x00753e0f, 0x00754012, 0x00754011, 0x00733f0d, 0x00784213, 0x00784014, 0x00753d10, 0x00743d11, 0x00784017, 0x007a4118, 0x00763d11, 0x0072390d,
- 0x007c4118, 0x00763f13, 0x00733b0f, 0x00763d14, 0x00794117, 0x00763e10, 0x00763d0d, 0x00773f10, 0x007a4013, 0x00783f12, 0x00763f0f, 0x00733e0e, 0x00733d11, 0x00743e11, 0x00743e0e, 0x00733d0c,
- 0x0074411d, 0x0074421b, 0x00704017, 0x006d3e14, 0x006a3a14, 0x006a3a16, 0x006a3b17, 0x006e3e19, 0x006d3b1b, 0x00693a18, 0x006e3b16, 0x00733c12, 0x00723b0f, 0x006f3a10, 0x006d370d, 0x00683206,
- 0x006e3913, 0x006b3612, 0x006a350f, 0x0067360d, 0x0065330c, 0x00673209, 0x00683206, 0x00663106, 0x00663108, 0x00612e04, 0x005e2b03, 0x005b2803, 0x00582403, 0x00592504, 0x00552502, 0x00522602,
- 0x00472914, 0x00341a0a, 0x007f6c5b, 0x00e9e3d7, 0x00fcfef8, 0x00fffffc, 0x00fcfcfc, 0x00fafefc, 0x00c8cace, 0x0053555a, 0x00090f15, 0x00031016, 0x002f303b, 0x00685e68, 0x009a9199, 0x00a1a6ad,
- 0x00566eaf, 0x001637a3, 0x00193dbb, 0x001d3eba, 0x001e3788, 0x000c2679, 0x001e3da2, 0x002f53d0, 0x00294fca, 0x0020438c, 0x00071c37, 0x00091008, 0x00130501, 0x000b0203, 0x00030101, 0x00000707,
- 0x00170e13, 0x00221e24, 0x001e1f24, 0x00171a1d, 0x002b2218, 0x005b4634, 0x00a4876a, 0x00b99473, 0x00b0896d, 0x009c785e, 0x00563d2b, 0x00231b15, 0x00100b05, 0x000d0806, 0x00090807, 0x00070a0b,
- 0x000c0a14, 0x0009090f, 0x00060507, 0x000d090b, 0x00100a08, 0x00140e0d, 0x0018130e, 0x00161008, 0x0025191a, 0x004b413e, 0x0073696a, 0x009e9698, 0x00cbc8cd, 0x00c5c7cf, 0x00bdc1cc, 0x00a8afbc,
- 0x008f929c, 0x007c8088, 0x006e7379, 0x006f7479, 0x00787c81, 0x00787b7f, 0x00787a7e, 0x007e8082, 0x008a888e, 0x008e8b8d, 0x00898788, 0x007d7d7f, 0x006f6e72, 0x006c6d6f, 0x0066696a, 0x00575b5d,
- 0x00282c35, 0x00151926, 0x00161b29, 0x00161b30, 0x00171d34, 0x0020203c, 0x001f1e36, 0x001f233a, 0x00252b3f, 0x001d2737, 0x00101926, 0x00101620, 0x000c0d15, 0x000a080d, 0x00070509, 0x00080307,
- 0x00110f16, 0x0023222b, 0x00383c46, 0x00303743, 0x001d2437, 0x001c2438, 0x001c2336, 0x001e2238, 0x00323347, 0x00393a4e, 0x002e2f42, 0x001c2234, 0x0013192d, 0x00141c2c, 0x001d2331, 0x001e2433,
- 0x0020233a, 0x00212537, 0x00212735, 0x00212936, 0x00707885, 0x00bcc4d0, 0x00d2dae5, 0x00d0d7e3, 0x00cad2e2, 0x00ced6e6, 0x00ccd4e5, 0x00cbd4e5, 0x00cad3e5, 0x00c8d2e4, 0x00c7d3e5, 0x00c8d5e6,
- 0x00cad3e7, 0x00c4cfe0, 0x00c0cad9, 0x00bec7d2, 0x00bcc3cc, 0x00cdd3d9, 0x00ebeff3, 0x00f7fcfe, 0x00fcfbfd, 0x00fffdfd, 0x00fefdfa, 0x00fefdfc, 0x00999897, 0x002e2e2b, 0x00171917, 0x001a1b18,
- 0x001c1918, 0x001a1815, 0x00181812, 0x0016180f, 0x0016190f, 0x00161a10, 0x00151910, 0x00151910, 0x00151a15, 0x00141913, 0x00121612, 0x00121613, 0x00141717, 0x00131616, 0x000b0e0d, 0x00555756,
- 0x00c99e88, 0x009d3f4f, 0x00550222, 0x00240939, 0x000f1d5c, 0x00191963, 0x0017165d, 0x000d1754, 0x001c0d50, 0x00120e4d, 0x00090f40, 0x0008112e, 0x00210034, 0x001d0034, 0x000e0128, 0x00000317,
- 0x00240d18, 0x006d2832, 0x00a44c51, 0x00de8c8c, 0x00f5ead2, 0x00ece7e5, 0x00f0eff3, 0x00f5f6f9, 0x00fcf9fd, 0x00fcf9fd, 0x00f8f5f9, 0x00f7f4fa, 0x00faf7fe, 0x00f9f5fd, 0x00f4f0fe, 0x00e3e0f7,
- 0x00bfd4f3, 0x00a9bede, 0x0099aecc, 0x009eb3cf, 0x00a1b4d3, 0x00a6b7d8, 0x0094a3c6, 0x007a88ac, 0x005a648e, 0x003f4b74, 0x002c386c, 0x002c2e81, 0x002f328d, 0x003b3d9f, 0x004751b1, 0x005260bd,
- 0x007a88dc, 0x00939ce3, 0x00a1ade2, 0x00afbde2, 0x00a7b6cc, 0x00aaadc0, 0x00dddcea, 0x00fbf8fd, 0x00fcf8ff, 0x00fdfcfe, 0x00fbfbfa, 0x00fcfef9, 0x00fcfdfa, 0x00fcfcfd, 0x00fcfcfc, 0x00fcfbfc,
- 0x00fdfcfd, 0x00fdfcfd, 0x00fdfdfe, 0x00fcfdfd, 0x00fefefe, 0x00fcfbfc, 0x00fafbfb, 0x00fafbfa, 0x00fbfbfc, 0x00fbfcfc, 0x00fcfcfc, 0x00fcfdfc, 0x00fcfbfc, 0x00fbfbfb, 0x00fcfcfc, 0x00fbfafa,
- 0x00fefdfe, 0x00f7f6f7, 0x00f7f7f6, 0x00fdfdfb, 0x00d0d0d2, 0x00848781, 0x002a2f24, 0x000e140b, 0x001e2419, 0x001c2217, 0x001a2114, 0x00192211, 0x00172211, 0x0014210e, 0x0013210c, 0x000f1e0a,
- 0x00141b11, 0x00171d14, 0x00121c0f, 0x00101c0d, 0x00111a0f, 0x0012190d, 0x00111a0a, 0x0010190b, 0x0013190e, 0x0012180e, 0x00091507, 0x00262f26, 0x00acb1a8, 0x00f8f9f4, 0x00fafef7, 0x00fcfffb,
- 0x00fffdfe, 0x00f7f6f7, 0x00b9bcba, 0x00878b88, 0x00aab3b2, 0x00c8dada, 0x00daf0ee, 0x00e6f8f7, 0x00f5faff, 0x00f5f8fc, 0x00f0f2f4, 0x00f3f0f2, 0x00f0f3f2, 0x00eef7f2, 0x00eaf8f1, 0x00eefcf3,
- 0x00fcf4f6, 0x00efeff7, 0x00faf9f5, 0x00eddbcf, 0x00e38251, 0x00e25e28, 0x00e45c2b, 0x00b04026, 0x00583459, 0x004a528a, 0x0041619e, 0x003a5891, 0x002b4981, 0x002e4d83, 0x0038598a, 0x003d5c8e,
- 0x00496194, 0x004c6595, 0x00516d9a, 0x00607ea9, 0x006a82af, 0x006585c2, 0x006c8bca, 0x007c99d2, 0x008d9cc7, 0x00757e9e, 0x002a2f42, 0x00090b12, 0x00010400, 0x00040600, 0x00060d02, 0x000c1506,
- 0x00322929, 0x0059514b, 0x0090887a, 0x00a49e88, 0x009b9071, 0x00897c5b, 0x007a6a49, 0x00776544, 0x008b6f55, 0x00927760, 0x00967d69, 0x00988a6e, 0x00a49681, 0x00b2a691, 0x00bdb19f, 0x00b3ab9a,
- 0x00c3bdb7, 0x00d7d3d2, 0x00e9ece9, 0x00f0f2f4, 0x00f2f3f8, 0x00f8f6f8, 0x00f9fbf7, 0x00f8fcf9, 0x00fffeff, 0x00fcfdfe, 0x00fafbfa, 0x00fcfdfb, 0x00fbfcfb, 0x00fdfdfc, 0x00fcfdfc, 0x00fcfefb,
- 0x00fdfdff, 0x00fcfdfe, 0x00fbfbfd, 0x00f7faf9, 0x00c4c5c3, 0x009fa5a2, 0x00888f8f, 0x006a7477, 0x006c7781, 0x006d7d89, 0x00697b87, 0x00687583, 0x00657386, 0x00616e83, 0x005c6a83, 0x005b6a88,
- 0x005c668a, 0x00546083, 0x004d587a, 0x00465573, 0x003f4a6a, 0x003d4567, 0x00353e5c, 0x002b3656, 0x0023324e, 0x00202f49, 0x0017293f, 0x00192a3d, 0x00252e42, 0x00303248, 0x00323146, 0x00676075,
- 0x00daba8a, 0x00eac68f, 0x00e6bd78, 0x00deb063, 0x00cb9e4a, 0x00b0883d, 0x00856324, 0x005b4315, 0x003e3128, 0x00423c41, 0x004d5360, 0x0049546f, 0x004c5678, 0x004e5577, 0x004c5878, 0x00586080,
- 0x0061617f, 0x0034364a, 0x001b202b, 0x0054575b, 0x00cdd2cb, 0x00efedd6, 0x00b1ad8f, 0x008f8b6f, 0x00766d5a, 0x0049412c, 0x006e6752, 0x00cec8b2, 0x00ebe6ce, 0x00e9e4c9, 0x00edeaca, 0x00c8c6a3,
- 0x00877b60, 0x007c7256, 0x009f9575, 0x00b6ae8a, 0x00d1c9a3, 0x00d6d0ac, 0x00d1cfaf, 0x00a8a88c, 0x00716f62, 0x008d8980, 0x00c9c7ba, 0x00d3d1b4, 0x00d5d2bc, 0x00cac7b9, 0x00a1a297, 0x0094938d,
- 0x00a09da5, 0x0092929b, 0x008a8d94, 0x00898e96, 0x008f949d, 0x00949b9b, 0x00b8bfbb, 0x00d0d7da, 0x00bebfce, 0x00a6a6b8, 0x009ba0b2, 0x00acb0c4, 0x00c7c9da, 0x00bbbfcc, 0x00a7afb4, 0x00a0a5a9,
- 0x00b7bdc3, 0x00dee7ed, 0x00959db6, 0x003c456e, 0x0057609b, 0x006b73b7, 0x00747dc2, 0x006e78b7, 0x00686fa2, 0x006b76a1, 0x00a1aecf, 0x00bac5e3, 0x00c0cbe9, 0x00bdcbe8, 0x009eadcf, 0x00607297,
- 0x00435387, 0x005b6c9b, 0x003d5277, 0x001f394b, 0x00274645, 0x0028444b, 0x0026404b, 0x00223d47, 0x00203944, 0x00203843, 0x001e3840, 0x001d393f, 0x001e3840, 0x001c383e, 0x001b383a, 0x001b373a,
- 0x00f8fcf5, 0x00f6faf3, 0x00f8f8f4, 0x00faf9f6, 0x00fafdf9, 0x00fbfdfa, 0x00fefdfb, 0x00fffefb, 0x00f8fff5, 0x00f8fef7, 0x00fbfcfc, 0x00fdfcfe, 0x00fefefe, 0x00fffdfd, 0x00fffcfe, 0x00fffcfe,
- 0x00ebf1eb, 0x00eaeee9, 0x00eae8ea, 0x00e8e8e9, 0x00e0e0df, 0x00d7d9d8, 0x00d1d0d3, 0x00cdcccc, 0x00b8c0b5, 0x00b4bbaf, 0x00afb2ae, 0x00a1a5a1, 0x00979898, 0x00898c8c, 0x00807f87, 0x007d7c83,
- 0x00696b67, 0x00666867, 0x00656567, 0x00605f62, 0x005c5c5d, 0x005b5a59, 0x005b5958, 0x005c5a59, 0x00565b4d, 0x00575d4f, 0x00606059, 0x00686367, 0x00656465, 0x006f696d, 0x00777174, 0x00797677,
- 0x00747975, 0x007b7f7d, 0x00838688, 0x0084898c, 0x008c9198, 0x00949496, 0x009e999c, 0x00a4a0a3, 0x00a1a4a2, 0x00a6a9a7, 0x00afafaf, 0x00b6b5b6, 0x00bbbcbc, 0x00bfc0c0, 0x00c6c3c3, 0x00cdcaca,
- 0x00bfcdc2, 0x00c8cfc5, 0x00d3d5ce, 0x00dfd8d3, 0x00e3dada, 0x00e4dde2, 0x00e7e2ed, 0x00e7e5f5, 0x00dce8ec, 0x00dce9ec, 0x00eaebf1, 0x00f4efeb, 0x00f2efea, 0x00f1f1ec, 0x00f8f3f2, 0x00fcf5f5,
- 0x00f3f7f0, 0x00f2f6ee, 0x00fbf9f8, 0x00f7faf7, 0x00f9fafb, 0x00fafafa, 0x00fefbff, 0x00fffcff, 0x00f5fbf4, 0x00f6f9f5, 0x00fbfaf9, 0x00fffcfd, 0x00fefbfc, 0x00fefbfb, 0x00fffefe, 0x00fefcfc,
- 0x00f3fcf7, 0x00f4fef8, 0x00f8fefc, 0x00fafdfc, 0x00fbfdfc, 0x00fdfdfe, 0x00fffdff, 0x00fefdff, 0x00f9fbf6, 0x00f8fcf6, 0x00fdfdfa, 0x00fefbfb, 0x00fbfdfa, 0x00fcfdfa, 0x00fefcfc, 0x00fcfcfd,
- 0x00f7fcf5, 0x00f7fcf4, 0x00fdfdfb, 0x00fefffe, 0x00fcfffc, 0x00eff3f3, 0x00dad7de, 0x00d6d3d9, 0x00cfd0cc, 0x00999593, 0x007c7173, 0x00817473, 0x007a6f65, 0x00685d4e, 0x006b5d50, 0x00716255,
- 0x005d6a73, 0x0098a2aa, 0x00c6ccd6, 0x00a7a7b1, 0x00928c93, 0x008a8084, 0x008a7d7e, 0x00a0918f, 0x00b9ac9e, 0x00b6a69b, 0x00afa09c, 0x00c2bbbe, 0x00c2bbb1, 0x00b5b0a2, 0x00b2ac9e, 0x00a8a297,
- 0x00a19e9b, 0x00afaeb3, 0x00cbcad7, 0x00d1cfda, 0x00dfe1e8, 0x00ebe9f4, 0x00dcd9d8, 0x00a3a587, 0x00586a12, 0x005f721b, 0x005c6a26, 0x00636f44, 0x009ba0a1, 0x008b909d, 0x009c9db3, 0x00cecfe2,
- 0x00b8b9b1, 0x00a4a29d, 0x00aea8a8, 0x00cac3c5, 0x00c1bdbb, 0x009e9c99, 0x00a7a3a3, 0x00c3bcbd, 0x00cecfc7, 0x00d0cec8, 0x00b3afac, 0x00a7a29c, 0x00aea7a1, 0x00b0a6a2, 0x009a8b8e, 0x008b797e,
- 0x00857b78, 0x00a09691, 0x00bcb1b1, 0x00b3abae, 0x00bdb7bb, 0x00dbd7d4, 0x00ccc5c3, 0x00968f8e, 0x007e7a7c, 0x007e7a7e, 0x00867e8a, 0x00978f9d, 0x00aeaab7, 0x00aeacb9, 0x00bab7c4, 0x00817f89,
- 0x0046122e, 0x00452126, 0x008c716e, 0x00bcb0a9, 0x00a9a4b0, 0x008c868a, 0x00797069, 0x00918869, 0x00939b6d, 0x008c957b, 0x00777173, 0x00644964, 0x00a17d8b, 0x00b79594, 0x00c2a89d, 0x00ccc2b6,
- 0x00979b8d, 0x00848477, 0x00787463, 0x00505235, 0x00324b10, 0x0058634d, 0x00797173, 0x00463540, 0x00513f3e, 0x009d878b, 0x00c2abb5, 0x00b5a5ad, 0x00a59fa4, 0x00afa8a9, 0x00a0959a, 0x00907e85,
- 0x00787b6b, 0x005e5f52, 0x00929088, 0x00c0bdb9, 0x00a4a09d, 0x00a3a09f, 0x00a19b9f, 0x009d979c, 0x00979793, 0x00b4b2af, 0x00bcbcbd, 0x009da19f, 0x00828481, 0x00989695, 0x00b2aeaf, 0x00c0babf,
- 0x00bebdba, 0x00c5c1c0, 0x00c8c4c7, 0x00d8d8da, 0x00fefefd, 0x00fcfcf7, 0x00fefefc, 0x00fffcff, 0x00f5fef6, 0x00a9a89b, 0x002a1709, 0x00421f08, 0x00663009, 0x00723a0e, 0x007b3f18, 0x007e401b,
- 0x0073430e, 0x0072400e, 0x00743f0f, 0x00763f11, 0x00794316, 0x007a4417, 0x007a4417, 0x00794316, 0x00713f0b, 0x00723e0c, 0x00763d11, 0x00743a11, 0x00763c10, 0x00773c13, 0x00783a14, 0x00793910,
- 0x00703a0a, 0x006f3909, 0x0072360a, 0x0073370c, 0x00743a0f, 0x00763c10, 0x00783d10, 0x00774011, 0x0073400a, 0x00743f09, 0x00783f0f, 0x007c4113, 0x007d420f, 0x007b400d, 0x007d4010, 0x007e410f,
- 0x0073440e, 0x00734510, 0x00784417, 0x00764013, 0x00713c0f, 0x00713a0d, 0x00763c16, 0x00773d18, 0x006d390a, 0x006d390f, 0x00763c11, 0x00783b09, 0x00783b0c, 0x007a3d0d, 0x007a3b0e, 0x0075390e,
- 0x006d3a07, 0x006d3606, 0x00723a0c, 0x00743d10, 0x00733b0e, 0x00743b0c, 0x00763c0d, 0x00773b10, 0x006a3906, 0x00673504, 0x00683507, 0x006a370a, 0x006b370c, 0x00683409, 0x00673309, 0x006d370f,
- 0x00523819, 0x00422e10, 0x008b7762, 0x00ede3d5, 0x00fdfef8, 0x00fefdfc, 0x00fefbfe, 0x00fdfdff, 0x00c3ccc8, 0x004e5751, 0x000c1318, 0x00031318, 0x002a283a, 0x006b6572, 0x00b0a5b6, 0x00b6b5c0,
- 0x005874a7, 0x00163995, 0x001b3fb6, 0x00203fbc, 0x00254096, 0x001c3899, 0x002744b8, 0x003251d8, 0x00214cb9, 0x001b437a, 0x00081f33, 0x000d1406, 0x00140701, 0x000e0508, 0x00060006, 0x0003060a,
- 0x00090d09, 0x00151414, 0x001f1f24, 0x001a1b1f, 0x00483c33, 0x00866d59, 0x00bd987f, 0x00c79a7a, 0x00bf9e74, 0x00ae906b, 0x006a503a, 0x002e2219, 0x000f0b07, 0x000c0b0c, 0x00110f16, 0x000f1119,
- 0x000b110c, 0x000b0d09, 0x00070807, 0x00090908, 0x000a090b, 0x000a0706, 0x00130f10, 0x00150f13, 0x00302f29, 0x0065655f, 0x009e9a9b, 0x00c5c1c8, 0x00cdcfd4, 0x00b5b8c2, 0x00a1a2b1, 0x00888b98,
- 0x00707879, 0x006c7476, 0x0071767b, 0x00797c83, 0x0077797f, 0x00797a7e, 0x007e7d81, 0x00828285, 0x00818382, 0x007b7e7d, 0x0078787a, 0x00737376, 0x006c6d70, 0x006a6b70, 0x00575760, 0x003d3e48,
- 0x000f171d, 0x00111a22, 0x001a1e2e, 0x001e2338, 0x0020243c, 0x0025263d, 0x00292a43, 0x002a2d43, 0x001e2b33, 0x00102029, 0x000b1923, 0x000a1820, 0x00050e15, 0x00050810, 0x000a0310, 0x00120113,
- 0x000c1311, 0x00202828, 0x00353b43, 0x00292e3d, 0x00212a3a, 0x00242b3f, 0x002a2d43, 0x002a2c41, 0x005f636c, 0x0090949d, 0x00858895, 0x00676d79, 0x004e555d, 0x003c424b, 0x002e3140, 0x00202331,
- 0x00121d27, 0x00111b24, 0x001e2634, 0x001c2234, 0x004b5061, 0x00989dab, 0x00ccd1df, 0x00d6dbe9, 0x00c3d1da, 0x00c5d1dd, 0x00c7d2e1, 0x00c9d4e4, 0x00c6d1e2, 0x00c4d0e2, 0x00c6d1e4, 0x00c7d2e7,
- 0x00b9cbd8, 0x00b8cad7, 0x00bdc8d8, 0x00bcc4d2, 0x00b8c0cb, 0x00cbd0d9, 0x00eaebf4, 0x00f9faff, 0x00f6fbf6, 0x00f8fef6, 0x00fdfdf9, 0x00fefdfc, 0x00adada9, 0x0041433d, 0x001e1c1a, 0x00211d1d,
- 0x00191f10, 0x00181e0f, 0x00181d10, 0x00191d12, 0x00191d13, 0x001a1d15, 0x00191d18, 0x00191e17, 0x00131b0d, 0x00151a0f, 0x00161b15, 0x00151916, 0x00161815, 0x00151816, 0x00161a1a, 0x00636667,
- 0x00caa67d, 0x00a14649, 0x00580120, 0x0026052f, 0x00101553, 0x001a165d, 0x001b145b, 0x00121457, 0x00140d46, 0x00070e44, 0x00081042, 0x000d0d30, 0x001c002f, 0x001a0032, 0x000f022e, 0x00020625,
- 0x001f1823, 0x005a2a37, 0x00914d58, 0x00d89aa3, 0x00f5f0e2, 0x00eae8e5, 0x00f1eef7, 0x00f9f5fc, 0x00f1f8f3, 0x00f4f9f3, 0x00faf9fb, 0x00f9faff, 0x00f5f4fa, 0x00f8f7fa, 0x00fcf6ff, 0x00fbf3ff,
- 0x00def6f8, 0x00cde3ed, 0x00c0d3e2, 0x00bccfdf, 0x00bccde0, 0x00b4c3d8, 0x009ba8c0, 0x00818ba8, 0x00627187, 0x00506076, 0x004a5580, 0x00454a90, 0x003e4392, 0x004247a0, 0x005459b7, 0x006369ca,
- 0x006c76c3, 0x008998d2, 0x00c4cef9, 0x00e3eafb, 0x00d7deea, 0x00d7d9e5, 0x00f8f3fe, 0x00fffeff, 0x00f8fef6, 0x00f6fbf3, 0x00fcfcfa, 0x00fdfcfc, 0x00fdfefe, 0x00fcfcff, 0x00fffbff, 0x00fffbff,
- 0x00f8fcf8, 0x00f8fcf5, 0x00fbfefc, 0x00fdfeff, 0x00fefeff, 0x00fcfcfc, 0x00fdfbfe, 0x00fcfbfc, 0x00f4faf4, 0x00f8fcf7, 0x00fcfbfb, 0x00f9fbfa, 0x00fcfafc, 0x00fcfcfb, 0x00fffcff, 0x00fffdff,
- 0x00f3f8f2, 0x00f8fcf7, 0x00f5f6f5, 0x00fbfafc, 0x00fbfafb, 0x00e2e3e0, 0x0081847e, 0x003a3d37, 0x00121e11, 0x000b1608, 0x001a2216, 0x00192115, 0x00182312, 0x00162210, 0x00172313, 0x00182412,
- 0x000e1b0a, 0x000d1b0b, 0x00121c0f, 0x00121b0f, 0x000f190d, 0x00111a0e, 0x00151a0f, 0x0012180d, 0x000d1b06, 0x000b1a06, 0x000d180a, 0x00151d14, 0x0092988f, 0x00f1f3ed, 0x00fffdfb, 0x00fefcfc,
- 0x00f9fef4, 0x00f6fbf4, 0x00c6c9c6, 0x008a8e8e, 0x00a3a6a7, 0x00c5cfd0, 0x00e0eef0, 0x00ecfafd, 0x00ebf8f4, 0x00eef7f6, 0x00eef3f6, 0x00f1f6fb, 0x00eff5fa, 0x00ecf7f9, 0x00eaf8fa, 0x00e8f8fa,
- 0x00eff8f1, 0x00f3f2f1, 0x00fae3d9, 0x00e5aa8c, 0x00ea6620, 0x00e95e23, 0x00c44e30, 0x00813641, 0x003e467c, 0x00415d98, 0x003a5a98, 0x00335283, 0x00385687, 0x00476194, 0x005773a7, 0x005b77a6,
- 0x0048698c, 0x00456689, 0x004b658c, 0x006179a2, 0x006f86ae, 0x005e7fb8, 0x005d7fbf, 0x006a87c2, 0x007996b8, 0x007c8fa5, 0x00424a59, 0x000c0f16, 0x00020100, 0x00100f07, 0x001b180b, 0x002e291b,
- 0x0056523f, 0x007a7862, 0x00a09a86, 0x00a79f8a, 0x00999377, 0x00938a6f, 0x009c8d77, 0x00a2937d, 0x00ada089, 0x00bdaf9f, 0x00d1c3b4, 0x00d8d0be, 0x00e3d9cb, 0x00ebe6d9, 0x00f9f4eb, 0x00f9f2ef,
- 0x00f1f7eb, 0x00f7fdf4, 0x00f9fafb, 0x00fbfbfe, 0x00f9fcfb, 0x00fbfefb, 0x00ffffff, 0x00fffeff, 0x00f8fff9, 0x00f4fcf5, 0x00f5faf8, 0x00f9fcfc, 0x00fdfffd, 0x00fefefe, 0x00fefcff, 0x00fbfcfd,
- 0x00f7fdf8, 0x00f7fffa, 0x00fcfdfc, 0x00fcfcfc, 0x00bfc1c1, 0x00939798, 0x00929499, 0x0070757c, 0x00627577, 0x00607579, 0x00687883, 0x00667485, 0x00607083, 0x005c6982, 0x005c6788, 0x005a6587,
- 0x004d5f7e, 0x00485979, 0x00485578, 0x00475375, 0x00424d6d, 0x003e4668, 0x003a3f63, 0x0031395c, 0x0020354a, 0x00192e41, 0x0016293f, 0x001a2a41, 0x00222d42, 0x002f3349, 0x0036354e, 0x00534e69,
- 0x00b6a371, 0x00ddc289, 0x00dcb87b, 0x00cea560, 0x00bc8c47, 0x009a7032, 0x006a4719, 0x0041290f, 0x002f3432, 0x003f4a5a, 0x00485674, 0x00495579, 0x004a577c, 0x00465177, 0x00495079, 0x00525682,
- 0x005b6881, 0x004d5a6e, 0x00232c3e, 0x00272e3b, 0x00848c94, 0x00d2d4c3, 0x00c1bea5, 0x009f9c84, 0x00808366, 0x0055563e, 0x0055523c, 0x00969179, 0x00ddd7bf, 0x00f3eed5, 0x00f5efd4, 0x00ccc6ab,
- 0x00837e58, 0x00a09a76, 0x00dcd3b2, 0x00d8d0ac, 0x00d1cca5, 0x00d4ceab, 0x00c8c1a5, 0x009d9b7f, 0x007e816a, 0x00a4a792, 0x00d7d3c0, 0x00ccc9af, 0x00c8c9af, 0x00c4c3af, 0x00a09c93, 0x009d9792,
- 0x009da29a, 0x00939894, 0x008f9493, 0x00939899, 0x009b9e9e, 0x00a8aeab, 0x00ced4d3, 0x00d8dbe1, 0x00aab4b8, 0x00949ba4, 0x00a1a4b5, 0x00bec0d3, 0x00c5c8d6, 0x00b3b6c1, 0x00acaeb9, 0x00a5a7b1,
- 0x00afbeaf, 0x00cfdedc, 0x008c98ad, 0x004d587e, 0x00616aa3, 0x007981bd, 0x007e84c3, 0x007075ad, 0x007f8da5, 0x00a8b2c4, 0x00d7def1, 0x00c8d3e2, 0x00b8c3d3, 0x00b8c2db, 0x00b5c2e3, 0x0098a4d3,
- 0x004a5e91, 0x00485d8c, 0x00586d97, 0x0038536a, 0x002f4f50, 0x00344f58, 0x00334b5b, 0x002b4554, 0x001e3e44, 0x001a3a3e, 0x001e393f, 0x00223b41, 0x001e3a3e, 0x001e393e, 0x00223942, 0x00223941,
- 0x00fafaf8, 0x00fcfdfb, 0x00fcfbfa, 0x00f9f9f6, 0x00fcfefc, 0x00fbfdfa, 0x00fbfbf7, 0x00f8f8f5, 0x00eff2eb, 0x00e7ebe4, 0x00e0e0de, 0x00d8d7d7, 0x00cfcfcd, 0x00c4c4c3, 0x00b9b8b9, 0x00b0b1b0,
- 0x00a8a8a7, 0x009ea0a0, 0x00929292, 0x00898989, 0x007b7a79, 0x00767674, 0x006b6b67, 0x00636560, 0x00595a53, 0x0051554d, 0x004e524b, 0x0050544e, 0x00535656, 0x0052585b, 0x00585d63, 0x005f616b,
- 0x0063656a, 0x00686970, 0x006b6c76, 0x006f707a, 0x0076767f, 0x00797a80, 0x007c7d80, 0x00828385, 0x00878b85, 0x008c9388, 0x00949890, 0x009d9e9f, 0x00a4a5a4, 0x00aba8a6, 0x00b1aea8, 0x00b6b1ab,
- 0x00b6b5ae, 0x00bcbbb7, 0x00c1c3c1, 0x00c2c8c5, 0x00c6cfcf, 0x00ced0d1, 0x00d5d3d4, 0x00dad8d9, 0x00dddddc, 0x00e2e3e2, 0x00e9e8e9, 0x00ecebec, 0x00edeeee, 0x00eceeee, 0x00eeefee, 0x00f2f3f2,
- 0x00f0f9f5, 0x00f8f9f4, 0x00f7f7ef, 0x00fef7ef, 0x00fcf3f3, 0x00f9f7f8, 0x00f8fafc, 0x00f6fbfb, 0x00f0fdfc, 0x00f4fdfd, 0x00f4fffc, 0x00f9fefb, 0x00f9fef9, 0x00fdfcf9, 0x00f9fff9, 0x00f7fffa,
- 0x00f3fcf7, 0x00f6fffd, 0x00f5fcfa, 0x00f6fdfb, 0x00f3fdfa, 0x00f5fffc, 0x00f6fffe, 0x00f7fefd, 0x00f6fcfc, 0x00f7fdfd, 0x00f7fcfc, 0x00f7fcfd, 0x00f8fdff, 0x00f8fdff, 0x00f8ffff, 0x00f8ffff,
- 0x00f0fffd, 0x00f1feff, 0x00f2fdfd, 0x00f6fffc, 0x00f7fefc, 0x00faffff, 0x00fbfdfe, 0x00fdfdfd, 0x00fbfbfa, 0x00fcfdf9, 0x00fdfbf9, 0x00fcfafa, 0x00fbfdfa, 0x00fbfdf9, 0x00f9faf7, 0x00f8fbf8,
- 0x00f8f8f5, 0x00fbfdf7, 0x00fdfcf9, 0x00fefffb, 0x00fbfef9, 0x00f0f5f4, 0x00c0c0c3, 0x00abadad, 0x00b1abab, 0x008e8483, 0x00736562, 0x0081716a, 0x00796a5b, 0x00847461, 0x009f8f7c, 0x00988a75,
- 0x00b0b4bb, 0x00c6cace, 0x00bdbfc3, 0x009d9ea0, 0x00a09d9d, 0x00b5afae, 0x00c2b9b8, 0x00beb4b2, 0x00aea49c, 0x00b7a8a1, 0x00d6cdca, 0x00d8d6da, 0x00acaea3, 0x009d9d8d, 0x00a9aa96, 0x00aba898,
- 0x00a7a2a3, 0x00bab4bd, 0x00d3cfda, 0x00dbd7e3, 0x00dfe1e2, 0x00ecebf1, 0x00dcddd5, 0x009da383, 0x00505c0f, 0x00515e10, 0x0054611c, 0x005b6636, 0x0090958f, 0x0092969e, 0x008a8d9f, 0x00bec1d5,
- 0x00aeaaa8, 0x00a09c9a, 0x00b0acac, 0x00d2cdce, 0x00c5c1bf, 0x00a29e9d, 0x00a7a1a2, 0x00beb7b8, 0x00d1ccca, 0x00cac6c4, 0x00a19c9a, 0x00a49f98, 0x00b1aca5, 0x00afa7a0, 0x008e837f, 0x007c6e6b,
- 0x00807473, 0x009f9291, 0x00b8adad, 0x00aca5a4, 0x00b3aead, 0x00cdc9c4, 0x00b8b4ae, 0x008c8783, 0x00837d80, 0x00878187, 0x00918994, 0x00a199a6, 0x00a8a4ae, 0x00b3b0ba, 0x00a8a4ae, 0x0058555b,
- 0x00521027, 0x005d2d34, 0x0094756d, 0x00bfb1ab, 0x00b7b3bc, 0x00a09d9f, 0x00878675, 0x0085855e, 0x0082875d, 0x00868978, 0x006b636a, 0x00866881, 0x00bca1aa, 0x00bfa8ac, 0x00cabab7, 0x00cdc3ba,
- 0x00aba89f, 0x00918e85, 0x0060674d, 0x003c4a24, 0x00394f17, 0x005f6955, 0x0064645c, 0x002a1f21, 0x00644d56, 0x00b59fa8, 0x00c1aeb6, 0x00aba1a6, 0x009f9da0, 0x00a29e9f, 0x0092888b, 0x00908082,
- 0x006c6d5f, 0x00555649, 0x00939287, 0x00a19f98, 0x0083827e, 0x009a9998, 0x00acaaab, 0x00959492, 0x009e9a9a, 0x00c3c1be, 0x00b7b8b5, 0x009a9c99, 0x00898988, 0x00ababab, 0x00c5c4c4, 0x00cbc6c9,
- 0x00d1cacc, 0x00c9c4c5, 0x00c3bfc2, 0x00d8d8d9, 0x00fcfcfb, 0x00fbfcf5, 0x00fafdf8, 0x00fbfdfd, 0x00fafffd, 0x00aeaaa1, 0x002c190d, 0x0045210a, 0x0068320b, 0x00733a0e, 0x007a3f14, 0x007b4016,
- 0x00774211, 0x00794312, 0x007b4416, 0x007b4416, 0x007c4616, 0x00784212, 0x00743f10, 0x00723d0d, 0x006f3c0b, 0x00723c0d, 0x00743b0f, 0x00773c12, 0x0073390e, 0x0073390e, 0x00753b10, 0x00783f12,
- 0x00773c11, 0x00763a0f, 0x00773a10, 0x00773c11, 0x00763c11, 0x00753c0f, 0x00763e10, 0x00783f10, 0x00753d0c, 0x00753d0a, 0x00773d0b, 0x007c420e, 0x007e420e, 0x007e420d, 0x007e410c, 0x007c400a,
- 0x0075400b, 0x0079410d, 0x007a4210, 0x0077400e, 0x007a400e, 0x007b420f, 0x007c4213, 0x007d4011, 0x00773a0d, 0x00783a10, 0x007a390d, 0x007a3a07, 0x007f3f0e, 0x00824211, 0x00824312, 0x00804515,
- 0x007d4316, 0x00793e12, 0x00773c0f, 0x00763d0e, 0x00743b0e, 0x00733d0f, 0x00754213, 0x00764315, 0x00754113, 0x00734012, 0x006f3e12, 0x006e4014, 0x00714218, 0x006b3d14, 0x00673911, 0x006c3d15,
- 0x005d3f28, 0x00553b24, 0x009b8473, 0x00efe5d7, 0x00fdfdf5, 0x00fefef9, 0x00fcfcfb, 0x00fcfefd, 0x00c7cbcd, 0x00575b5f, 0x00121819, 0x00071519, 0x00252535, 0x006e6a7d, 0x00b9b6c2, 0x00b0b8bf,
- 0x005f72a6, 0x00203795, 0x001f3daf, 0x00243fb6, 0x00234096, 0x002240a7, 0x002145bb, 0x002748ce, 0x002144b0, 0x001d3970, 0x00071c26, 0x000e1704, 0x00140a01, 0x000e050a, 0x00020101, 0x00030504,
- 0x000a080c, 0x000e0d12, 0x001a1c22, 0x001c1c20, 0x00645549, 0x009f846b, 0x00a88363, 0x00ad825b, 0x00be976e, 0x00c19c78, 0x00886d51, 0x0046362c, 0x0018180e, 0x00111416, 0x000e1215, 0x0012141b,
- 0x0016150f, 0x001c1511, 0x00120b09, 0x00110c0a, 0x00090d10, 0x00101111, 0x0010110f, 0x002a2727, 0x006f726e, 0x00a8aaa9, 0x00c5c5c7, 0x00bebec4, 0x009799a0, 0x0081858d, 0x0070747e, 0x00666d78,
- 0x006f747b, 0x00787c82, 0x0081858b, 0x0083878c, 0x007f8186, 0x007d7e82, 0x00808184, 0x00848487, 0x00848385, 0x007c7b7d, 0x00706f73, 0x006d6d72, 0x006b6c70, 0x005a5c61, 0x0035383e, 0x001b1e27,
- 0x00161d28, 0x001e232f, 0x00212535, 0x002f3245, 0x0034394e, 0x00333d4a, 0x00394250, 0x003a3c4c, 0x00282e39, 0x0014222a, 0x00081a20, 0x00051a1d, 0x00000f13, 0x0001070d, 0x0005000a, 0x0010000e,
- 0x0015151e, 0x0030323a, 0x00363743, 0x002a2e3b, 0x0028323d, 0x002d3743, 0x00363d4c, 0x0039404e, 0x009c9da6, 0x00eff1f4, 0x00f5f7fa, 0x00eceff4, 0x00d0d4d7, 0x00b8bcc0, 0x009599a0, 0x007a8086,
- 0x0060636d, 0x00464955, 0x00353746, 0x00313444, 0x00323646, 0x00636a78, 0x00acb5c1, 0x00d0dae6, 0x00cad6e3, 0x00c8d3e0, 0x00c8d2e0, 0x00c4cedd, 0x00c1cdde, 0x00c0cdde, 0x00beccdc, 0x00bbc9d8,
- 0x00b4c0d4, 0x00b5c1d4, 0x00b6bed1, 0x00b7bdcd, 0x00b4bbc7, 0x00c9cfd7, 0x00e7ebf1, 0x00f5f9fd, 0x00fcfbfc, 0x00fbfcfa, 0x00fcfdfa, 0x00fbfefa, 0x00c2c6bf, 0x00545c52, 0x00171d14, 0x001c2017,
- 0x001c2217, 0x001d2315, 0x001d2214, 0x001c2112, 0x001c2111, 0x001b2012, 0x001a2014, 0x001a2115, 0x00161e16, 0x00192017, 0x00181f19, 0x001a211b, 0x00161c14, 0x00191e18, 0x001b201e, 0x006d716f,
- 0x00d6ae86, 0x00ae4d51, 0x005c031d, 0x001c0023, 0x000c0e44, 0x00180f53, 0x00181151, 0x000c1350, 0x00170a4b, 0x000b0b4c, 0x00080a42, 0x000e0a32, 0x00150030, 0x00120134, 0x0008022f, 0x00010a2f,
- 0x00292946, 0x004e2e4d, 0x00674056, 0x00be97a5, 0x00eef3ec, 0x00e9e7ee, 0x00ecedf5, 0x00f6f3f8, 0x00f2f3f5, 0x00f8faf8, 0x00fbfbfa, 0x00f8f8fb, 0x00f5f3fa, 0x00f9f8fe, 0x00f7f5fc, 0x00f9f7fa,
- 0x00f1fef9, 0x00f2fefb, 0x00f3fdfc, 0x00f5fefc, 0x00f6fefc, 0x00f5fdfb, 0x00f2f9fc, 0x00f0f6fe, 0x00eff5fb, 0x00e6e9f8, 0x00d0d6ef, 0x00b2bce7, 0x008a93cd, 0x007379bf, 0x005f65b3, 0x006269bd,
- 0x00676ab6, 0x008c90c8, 0x00dbddfd, 0x00f8f9fe, 0x00f5f4f7, 0x00f5f4f8, 0x00faf9fa, 0x00f7f9f8, 0x00fbfdf9, 0x00f9fbf7, 0x00fcfbfb, 0x00fdfcfb, 0x00fcfdfd, 0x00fbfcfe, 0x00fdfbfd, 0x00fdfcff,
- 0x00fcfcfb, 0x00fbfcfa, 0x00fdfdfd, 0x00fdfdff, 0x00fcfcfe, 0x00fafbfb, 0x00fafbfb, 0x00fafbfa, 0x00fafbfa, 0x00fbfbfb, 0x00fbfafc, 0x00fafbfa, 0x00fcfdfc, 0x00fcfefd, 0x00fcfcfe, 0x00fdfcfd,
- 0x00fcfdfb, 0x00fafbfa, 0x00fcfdfe, 0x00fafcfb, 0x00f9faf8, 0x00fbfdf9, 0x00e9ebe6, 0x00bcbeb9, 0x006d7368, 0x0033392e, 0x0010170d, 0x00151e12, 0x00192315, 0x00192414, 0x00172214, 0x00192415,
- 0x00141e12, 0x00131e11, 0x00111a0d, 0x00121b0c, 0x00101b0c, 0x00121d0e, 0x00111a0c, 0x0010190c, 0x000f1c0c, 0x000f1b0b, 0x000d170a, 0x00081007, 0x00787d76, 0x00e9ece6, 0x00fdfefc, 0x00fbfbfa,
- 0x00fcfbf9, 0x00fcfdfb, 0x00d0d2d0, 0x00909594, 0x00939998, 0x00bcc6c5, 0x00deeae9, 0x00ebf7f7, 0x00f1f6f8, 0x00f3f7fb, 0x00f0f3f8, 0x00eef1f7, 0x00ecf3f9, 0x00eaf5fa, 0x00eaf9fc, 0x00e7f7fa,
- 0x00eff2f9, 0x00fcf1ef, 0x00e5b09b, 0x00d87242, 0x00f45b0b, 0x00db5721, 0x008e3828, 0x00534165, 0x003c5fac, 0x003e5d9e, 0x003c598f, 0x004d6b95, 0x006d89b6, 0x007792be, 0x006883ac, 0x005b769f,
- 0x007189ac, 0x007087ac, 0x00596f91, 0x006a81a1, 0x007b92b1, 0x005f80ad, 0x005075a7, 0x005b7ba9, 0x007991b3, 0x008d9db4, 0x006c7482, 0x00363a3f, 0x0033322f, 0x005b5950, 0x006e6c5f, 0x00827d70,
- 0x00a09e88, 0x00bbb9a6, 0x00c8c5b1, 0x00cbc9b2, 0x00d0cfb8, 0x00dbd9c3, 0x00f0ebd8, 0x00faf5e8, 0x00fbf6ea, 0x00fbf7ee, 0x00fdfbf4, 0x00fcfdf5, 0x00fcfcf5, 0x00fbfcf5, 0x00fefef8, 0x00fffff8,
- 0x00fbfdfa, 0x00fcfefb, 0x00fbfbfb, 0x00fdfcfc, 0x00fbfdfb, 0x00f9fbf9, 0x00fbfcfc, 0x00fcfefd, 0x00fbfefd, 0x00fdfffe, 0x00fbfdfd, 0x00fcfefd, 0x00fdfffc, 0x00fafefb, 0x00f9fcfb, 0x00fcfdfd,
- 0x00fbfefc, 0x00fbfefd, 0x00fbfbfb, 0x00fffffe, 0x00c3c3c2, 0x008d9090, 0x00929699, 0x00777e84, 0x00667177, 0x0065737d, 0x00687383, 0x00657187, 0x005e6d84, 0x005b6784, 0x00576285, 0x00546081,
- 0x004e5980, 0x004a557c, 0x0048527a, 0x00465178, 0x00414d70, 0x003c466a, 0x00363f63, 0x002e3a5c, 0x0025354d, 0x00203046, 0x0019293f, 0x001b2a40, 0x001d293d, 0x00262d42, 0x002d3048, 0x003a3a54,
- 0x00917d5e, 0x00ccb18c, 0x00d3b186, 0x00bf9763, 0x00a37740, 0x007e5728, 0x00523215, 0x003f2b23, 0x00444a60, 0x0048567b, 0x003f517d, 0x0043527c, 0x00475480, 0x00475280, 0x0048527f, 0x00454d7b,
- 0x0050597e, 0x00676f91, 0x003f4765, 0x00202841, 0x00303a4e, 0x00959b93, 0x00c3c5af, 0x00adaf99, 0x00999b82, 0x0080806c, 0x004e4c39, 0x0053513a, 0x00b7b39c, 0x00f1edd3, 0x00f7f3d8, 0x00cecab1,
- 0x00a0997a, 0x00cac5a3, 0x00e5deba, 0x00d7d0aa, 0x00d5cfab, 0x00d5d0ad, 0x00cbc6a6, 0x00adaa8b, 0x00a9a68e, 0x00bab8a6, 0x00b7b39d, 0x00aba98b, 0x00c6c6ad, 0x00d3d2bf, 0x00adac9e, 0x00a1a099,
- 0x00a7a6a2, 0x00a0a19f, 0x00a4a5a1, 0x00aeb3ad, 0x00bfc3be, 0x00d1d9d5, 0x00dbe3e0, 0x00c3c9cc, 0x009ca2a6, 0x00a2a6ae, 0x00b8b9c8, 0x00c7c7d7, 0x00bbbcc8, 0x00b1b4bd, 0x00adafb8, 0x00a8aab3,
- 0x00bec8be, 0x00d4dfdf, 0x0099a5b4, 0x00737ea0, 0x006b75a8, 0x007d84ba, 0x008489bc, 0x008b8eb8, 0x00c6cedf, 0x00e8eef4, 0x00e2e8e9, 0x00ced9db, 0x00b9c5c9, 0x00bac4d4, 0x00bdc9e5, 0x00b5beee,
- 0x007d8bc4, 0x005d6ca2, 0x007c8ebb, 0x0069829c, 0x003f5d5e, 0x00435e65, 0x003f5864, 0x00334e5a, 0x0028414c, 0x00213c46, 0x00203a44, 0x00223c44, 0x001d3a40, 0x001d3a3e, 0x001f3a3e, 0x00203b3e,
- 0x00dedfdc, 0x00a4a5a2, 0x00a7a8a6, 0x00adaeaa, 0x00bfbfbc, 0x00acaca9, 0x00a3a2a0, 0x00989896, 0x008d8c89, 0x0080817d, 0x00727371, 0x00666766, 0x005c5c5c, 0x00545455, 0x004e4e4e, 0x00484a48,
- 0x00434243, 0x003c3e3c, 0x00373839, 0x00373635, 0x00363536, 0x003b3935, 0x00363531, 0x00393a36, 0x0041403d, 0x00393d36, 0x003d403c, 0x004e5450, 0x00676a6f, 0x006d767c, 0x00727a86, 0x00727986,
- 0x006c7280, 0x00727685, 0x00797d8f, 0x007c8195, 0x00898da2, 0x009297aa, 0x009ea4b2, 0x00a1a7b3, 0x0091999e, 0x007b8685, 0x00717777, 0x00737c77, 0x00838481, 0x0088897f, 0x008e8b82, 0x00959085,
- 0x00979885, 0x00969888, 0x00989b90, 0x00989d90, 0x00949f97, 0x00999c9a, 0x009e9c9e, 0x009f9e9e, 0x00a3a1a1, 0x00a3a3a3, 0x00a4a4a4, 0x00a4a4a4, 0x00a3a3a4, 0x00a3a4a4, 0x00a5a5a5, 0x00a5a7a6,
- 0x00a0aaa8, 0x00adaca3, 0x00cec3b8, 0x00ecddcf, 0x00ddcac8, 0x00c8c7ca, 0x00cad1de, 0x00b9cae1, 0x00bccfe4, 0x00bdcfe1, 0x00bcccdc, 0x00b9cdd2, 0x00b8cad1, 0x00b5c9ce, 0x00b6c8d2, 0x00b5c9ce,
- 0x00b2c9ce, 0x00b3c7d0, 0x00b2c7cf, 0x00b5c9d1, 0x00b5ccd5, 0x00b7c9d6, 0x00b1c7d8, 0x00b3c8d9, 0x00b5c7d9, 0x00b4c8d8, 0x00b4c8d9, 0x00b3c7d7, 0x00b5c7d9, 0x00b7c8db, 0x00b6c8db, 0x00b6c8da,
- 0x00b2c8d6, 0x00b5c7d6, 0x00b5c5d3, 0x00b9c8d1, 0x00c4cfd4, 0x00bec6cb, 0x00a8acb2, 0x00aaabae, 0x00a8a8a7, 0x00abaaa7, 0x00aba9a8, 0x00aaaaa9, 0x00abacaa, 0x00adadab, 0x00adadab, 0x00bbbebb,
- 0x00eae8e4, 0x00f9fbf6, 0x00fefefd, 0x00f9faf9, 0x00fefffb, 0x00e9eeeb, 0x00959696, 0x00606260, 0x005e5351, 0x004d3c37, 0x003a281f, 0x00423123, 0x005c4737, 0x00776351, 0x00ac9b88, 0x00bcaa95,
- 0x00c1c2c4, 0x00cdcdcd, 0x00b9b7b8, 0x009c9899, 0x00a39e9d, 0x00bbb6b4, 0x00c1bcba, 0x00b4b0ac, 0x00a7a19e, 0x00a9a39d, 0x00cbc7c3, 0x00c8cdcf, 0x0095968d, 0x00818374, 0x00989584, 0x00a39c8e,
- 0x00a09998, 0x00a9a0aa, 0x00c1bbc5, 0x00d0ced7, 0x00d8dbd6, 0x00e6e6e8, 0x00d9dcd2, 0x00929977, 0x0047510b, 0x0046530a, 0x004a5713, 0x004c5a24, 0x0083877d, 0x0095999d, 0x007e8090, 0x00b9bcd1,
- 0x00b2adac, 0x00a5a19e, 0x00bebab8, 0x00dad5d5, 0x00c7c1c2, 0x009f999a, 0x00aca6a7, 0x00c1bcbb, 0x00d1cacb, 0x00c1bbba, 0x00a49e9a, 0x00a09b92, 0x00bab3ac, 0x00b7aca7, 0x00897c7b, 0x00746764,
- 0x00837675, 0x009c8f8e, 0x00b4a9a9, 0x00a6a09d, 0x00b2aaaa, 0x00cac1be, 0x00bab1ae, 0x00978d8d, 0x008e868b, 0x00837d84, 0x00918c96, 0x009f9aa5, 0x0095919b, 0x00a9a3ae, 0x00a9a0ac, 0x005a525c,
- 0x00641e31, 0x00875356, 0x00bf9c98, 0x00d1c3bb, 0x00c1becb, 0x00a0a29e, 0x009c9f8a, 0x008d9165, 0x00606443, 0x00656863, 0x00615a6a, 0x00a58a9c, 0x00d9c6d0, 0x00ddcfd4, 0x00d7cbce, 0x00c6bab9,
- 0x00a3a299, 0x0088907d, 0x00556549, 0x0032471c, 0x003f4b1a, 0x00606851, 0x005f615a, 0x002f2825, 0x007a6370, 0x00bcaab5, 0x00cebec7, 0x00aba7aa, 0x00a5a3a5, 0x009f9d9a, 0x00938a8a, 0x008b7d7c,
- 0x005b5b44, 0x004d4d3a, 0x0089897b, 0x0086857f, 0x007f7d7c, 0x00979495, 0x00afacae, 0x00959293, 0x00adabaa, 0x00cac7c5, 0x00b8b7b7, 0x008d8f8e, 0x00959493, 0x00b7b1b3, 0x00c6bfc2, 0x00d0c9cc,
- 0x00d0c7c9, 0x00c6c1c1, 0x00cdc9cb, 0x00e0e0e0, 0x00fcfdfc, 0x00f9f8f3, 0x00fafcf7, 0x00fafefb, 0x00fbfdff, 0x00ada7a0, 0x002c190a, 0x00412106, 0x0067340b, 0x0070390e, 0x00793d14, 0x00793c14,
- 0x00753f10, 0x00753f11, 0x00763f11, 0x00774011, 0x00794113, 0x00763e0f, 0x00733c0d, 0x00743d10, 0x00743c11, 0x00763f12, 0x00763e11, 0x00773f12, 0x007b4116, 0x007b4016, 0x007c4117, 0x007d4319,
- 0x007d4218, 0x007b4117, 0x007f4319, 0x00824419, 0x007c4115, 0x00774013, 0x00774112, 0x00764012, 0x00783e12, 0x00743b0c, 0x00753c0b, 0x00783e0c, 0x007a3e0d, 0x00793d0b, 0x007a3e0b, 0x00773c08,
- 0x00753b03, 0x00773d05, 0x00773d06, 0x00773c07, 0x007c3e09, 0x007d3d0b, 0x007b3b0a, 0x007a3808, 0x007b3a0d, 0x007c3a0c, 0x007a3a09, 0x00783c0a, 0x007a3f0e, 0x00773c0d, 0x00773d0e, 0x007a4213,
- 0x00763f13, 0x00723d12, 0x00703a11, 0x006f3811, 0x00713b13, 0x006f4119, 0x006d441d, 0x00714620, 0x00764b28, 0x00774e2a, 0x0078512d, 0x007c5734, 0x00845e3d, 0x00876241, 0x008c6947, 0x0093714e,
- 0x008f765f, 0x008c7660, 0x00c2ae9f, 0x00f4ebdf, 0x00fffdf8, 0x00fbfbf7, 0x00fcfefc, 0x00fbfffe, 0x00c9cccf, 0x005e6165, 0x001c2124, 0x00151f1d, 0x002e2e41, 0x00707182, 0x00bebfcd, 0x00b3bcc2,
- 0x0063749f, 0x00283c91, 0x00283bad, 0x00243ab4, 0x00233b97, 0x001a3da7, 0x001e41bb, 0x002441c9, 0x002840a6, 0x001e3563, 0x000c1f23, 0x000d1900, 0x00130e08, 0x000d050c, 0x00070209, 0x00020303,
- 0x00060308, 0x00100f14, 0x001d1b22, 0x00221c20, 0x00655244, 0x008e6f53, 0x008c633f, 0x00a5764b, 0x00bf9368, 0x00c7a27e, 0x00ad8e72, 0x0067533d, 0x00261e1a, 0x00121616, 0x000a0f13, 0x00101419,
- 0x001a120c, 0x001a0e07, 0x00130601, 0x000f0905, 0x00070b0e, 0x000c120f, 0x00303432, 0x00747779, 0x00bec1c4, 0x00c5cacf, 0x00b6bdc0, 0x00afb5ba, 0x00a0a4ac, 0x008f929c, 0x00888a96, 0x00898c9b,
- 0x009ba0a8, 0x00a2a6ad, 0x00a7abb2, 0x00a0a5ac, 0x0094969d, 0x008d8e94, 0x008c8c90, 0x008c8a8c, 0x0088868b, 0x00817f83, 0x00777679, 0x00737478, 0x0067676c, 0x0047494e, 0x0023272f, 0x001b1e29,
- 0x001b202c, 0x00222633, 0x002c313f, 0x00363b4b, 0x00434858, 0x00434e54, 0x004e565d, 0x00484750, 0x002b2732, 0x00151a21, 0x000d191c, 0x00001513, 0x00010e0e, 0x0000070a, 0x0006010a, 0x000f000e,
- 0x001c1823, 0x0035333d, 0x0032323f, 0x002b2f3e, 0x00323a48, 0x00353d49, 0x00414652, 0x00535761, 0x00b6b7c0, 0x00f1f3f4, 0x00fdfffd, 0x00fafcfc, 0x00f8faf9, 0x00f4f5f6, 0x00eaecf0, 0x00dadfe1,
- 0x00c0c4c9, 0x00a9acb4, 0x008d8f9a, 0x00787b87, 0x00646675, 0x00696c7a, 0x009ea2ac, 0x00c9ced7, 0x00c8cedb, 0x00c4ccd8, 0x00c8d0dc, 0x00c2cdda, 0x00bfcbd9, 0x00becbd9, 0x00bac7d4, 0x00bbc7d3,
- 0x00b4bfd3, 0x00b7c3d5, 0x00bbc4d5, 0x00c0c9d7, 0x00c8d1dc, 0x00d7dee6, 0x00eaeef5, 0x00eff3f7, 0x00fefcff, 0x00f9faf9, 0x00fcfefa, 0x00f9fdf5, 0x00d8dcd3, 0x006c7268, 0x00191e14, 0x001e2417,
- 0x001e2417, 0x001e2516, 0x001e2415, 0x001d2413, 0x001d2313, 0x001b2213, 0x001a2215, 0x001a2216, 0x001c221b, 0x001a221a, 0x00192118, 0x00192219, 0x0018211a, 0x0019201a, 0x001f2420, 0x00727672,
- 0x00d5ae87, 0x00b05252, 0x00670824, 0x001a001a, 0x000a093f, 0x00110845, 0x00140a4a, 0x000b114a, 0x0014094d, 0x00060b4a, 0x00050a44, 0x0008083b, 0x00150540, 0x000a023a, 0x00000134, 0x00061544,
- 0x00293464, 0x003a345e, 0x0044355a, 0x00897d96, 0x00e3eaf5, 0x00eaedf6, 0x00edecf6, 0x00f1f2fc, 0x00f0edf5, 0x00f7faf9, 0x00f9fafc, 0x00f9faf7, 0x00faf7f9, 0x00f7f6fc, 0x00f9f7fc, 0x00fafafd,
- 0x00f5f9f5, 0x00f5faf5, 0x00f7fbfa, 0x00f9fcff, 0x00fdfdff, 0x00fefdff, 0x00fffcff, 0x00fefcff, 0x00fff9ff, 0x00fff9fe, 0x00f8f8ff, 0x00ebf5f7, 0x00dbe6f7, 0x00c6ccea, 0x009ea0da, 0x008183c4,
- 0x006b6daa, 0x008181b1, 0x00dcdaf9, 0x00fbf9ff, 0x00f9f4f8, 0x00f8f5f6, 0x00f7f8f5, 0x00f6f9f7, 0x00fbfcf9, 0x00f8faf8, 0x00fbfcfb, 0x00fbfcfa, 0x00fdfcfd, 0x00fcfbfd, 0x00fdfbfc, 0x00fcfbff,
- 0x00fbfbfd, 0x00fbfbfc, 0x00fcfcfb, 0x00fcfcfb, 0x00fcfbfb, 0x00fdfdfc, 0x00fefdfd, 0x00fcfbfd, 0x00fdfcfc, 0x00fefefc, 0x00fefdfd, 0x00fefdfc, 0x00fdfdfe, 0x00fcfdfa, 0x00fbfbfa, 0x00fafafb,
- 0x00fbfcff, 0x00fbfcfc, 0x00fbfcfa, 0x00f9faf9, 0x00fafaf9, 0x00fcfcfa, 0x00fcfbf9, 0x00f7f6f4, 0x00d5d5d1, 0x00989b96, 0x004d534c, 0x00192119, 0x0010190d, 0x00192215, 0x001e271a, 0x00192315,
- 0x00192117, 0x00151e12, 0x00141c10, 0x00131c0f, 0x00121c0f, 0x00111c0e, 0x00121c0d, 0x00121c0c, 0x00101b0f, 0x000f190c, 0x0010190d, 0x00030a02, 0x0060645d, 0x00dddfda, 0x00fefffc, 0x00fcfbf9,
- 0x00faf9fa, 0x00fbfcfb, 0x00dfe2e1, 0x00a0a6a3, 0x00878e8d, 0x00bcc0c1, 0x00e1e2e5, 0x00eff0f3, 0x00f3f0fa, 0x00f2eff9, 0x00f1eff8, 0x00eeeef6, 0x00edf0f9, 0x00eef2fd, 0x00edf3fe, 0x00eef6fe,
- 0x00e9f0fe, 0x00efd3cd, 0x00d78365, 0x00e95a17, 0x00fe5303, 0x00b24119, 0x006e3b41, 0x003c579a, 0x00346abf, 0x00425a9a, 0x00576696, 0x007288ae, 0x008197bc, 0x00788eb3, 0x00687da0, 0x007086a7,
- 0x008ea2bf, 0x008ca1bb, 0x006f819d, 0x00798ea6, 0x008b9cb5, 0x006684a1, 0x00517494, 0x006d8ea9, 0x009fb5cb, 0x00a3b4c4, 0x009fabb4, 0x00898e93, 0x00999699, 0x00bcb5b4, 0x00d0c7c7, 0x00d5cccc,
- 0x00e1e4d5, 0x00e8edde, 0x00f3f7e9, 0x00f5f9ea, 0x00f4f8ec, 0x00f5f9ef, 0x00f7faf5, 0x00fbfffe, 0x00feffff, 0x00fbffff, 0x00fafefd, 0x00f8fcfa, 0x00f9fdfb, 0x00fcfdfd, 0x00ffffff, 0x00fefffd,
- 0x00fefeff, 0x00fdfefc, 0x00fdfdfb, 0x00fefdfc, 0x00fdfcfd, 0x00fcfcfd, 0x00fbfcfc, 0x00fafefa, 0x00fdfefc, 0x00fdfefc, 0x00fbfefd, 0x00f9fcfc, 0x00fcfefd, 0x00f5f7f6, 0x00f2f6f5, 0x00f8fcfb,
- 0x00fcfffe, 0x00fcfdfd, 0x00fefdfd, 0x00fffefd, 0x00ccccca, 0x008e9191, 0x008e9296, 0x00858a91, 0x00646e79, 0x00687582, 0x00657081, 0x005e6b80, 0x005c6a84, 0x00586483, 0x00505b81, 0x004c577d,
- 0x00495480, 0x0048537d, 0x0047527c, 0x00445079, 0x00414d74, 0x003e486f, 0x00384068, 0x00313a5f, 0x00293652, 0x00233248, 0x001d2d3f, 0x00192839, 0x001e2c3d, 0x00242e43, 0x002e334e, 0x00333654,
- 0x00625044, 0x009c8774, 0x00d1b49e, 0x00af8d6f, 0x00764f31, 0x0054331e, 0x003d251f, 0x00483b48, 0x004b537c, 0x00415087, 0x0041538e, 0x00405181, 0x00445281, 0x00445282, 0x00455181, 0x00475181,
- 0x0045517b, 0x0058658b, 0x00515c81, 0x002e395b, 0x001c2847, 0x004b5254, 0x00aaaea1, 0x00b4b7a9, 0x009e9f8d, 0x00979986, 0x00646652, 0x00494a34, 0x0096947e, 0x00efead4, 0x00f6f0da, 0x00dcd6c3,
- 0x00beb696, 0x00cec9a8, 0x00cbc6a4, 0x00c7c19f, 0x00d6d1b0, 0x00e2dfbc, 0x00dcd8b7, 0x00c1bca0, 0x00b3ad94, 0x00aeab95, 0x00a5a28c, 0x00b9b89c, 0x00e2e1cc, 0x00d3cfbf, 0x009b988c, 0x009d9b93,
- 0x00a1a099, 0x00a5a49d, 0x00bab9b1, 0x00cbccc4, 0x00e4e3dc, 0x00edf1ec, 0x00d4dad5, 0x00acb2b0, 0x00a4aaac, 0x00b8bdc0, 0x00c6c9cf, 0x00c0c1ca, 0x00b3b5bd, 0x00b1b2bb, 0x00b3b4be, 0x00b0b0ba,
- 0x00c5cec3, 0x00d6dfdb, 0x00bcc4d1, 0x00a9b1cc, 0x00878cb8, 0x00868ab5, 0x00888bb1, 0x00b2b5cf, 0x00f0f1f9, 0x00f1f2ef, 0x00eaebe7, 0x00d9e0d9, 0x00c4cccb, 0x00b9c1cb, 0x00b9c2db, 0x00b9c0ec,
- 0x00a0a8e5, 0x007380b9, 0x006f81b0, 0x007c93b3, 0x00516d78, 0x004d6773, 0x0048616c, 0x003b5660, 0x002f4853, 0x00223d48, 0x001c373f, 0x001a343a, 0x001e393f, 0x00213b41, 0x00203a40, 0x001c383f,
- 0x00aaaaa9, 0x00080906, 0x00161714, 0x001f1f1d, 0x0033332f, 0x001a1916, 0x000d0c0b, 0x00070604, 0x00020301, 0x00020300, 0x00040403, 0x00040403, 0x00010001, 0x00010000, 0x00010101, 0x00000101,
- 0x00030400, 0x00030303, 0x00000101, 0x00000002, 0x00030404, 0x00050303, 0x000b0a05, 0x000f0c07, 0x000c0d09, 0x002c2d2b, 0x005b6060, 0x006e747b, 0x00808793, 0x007e8397, 0x00747b91, 0x00697188,
- 0x00667493, 0x00677496, 0x006a769d, 0x006c79a3, 0x00717caa, 0x007883b0, 0x00828fb7, 0x008693b8, 0x0072819d, 0x0056667e, 0x003b465a, 0x001b282e, 0x000c1214, 0x0010110d, 0x00231f18, 0x002a2418,
- 0x00342f19, 0x00322d1b, 0x00262412, 0x001e1e0f, 0x0011190b, 0x00121310, 0x000e0e0d, 0x000c0d0d, 0x000a0908, 0x000a0909, 0x00080808, 0x00080808, 0x00080807, 0x00080807, 0x000a0b0a, 0x000a0b0a,
- 0x00070904, 0x00201208, 0x008d7360, 0x00c09d85, 0x0080635a, 0x00645f69, 0x00667592, 0x004d6d9b, 0x004c709d, 0x0051709a, 0x005472a2, 0x004c6daf, 0x004568aa, 0x004262a3, 0x00405f9f, 0x0044629f,
- 0x00415e9d, 0x00455f9e, 0x00425f98, 0x00455e9c, 0x0046609d, 0x00446095, 0x003b5a8b, 0x00365684, 0x00325181, 0x00315180, 0x00335484, 0x00335584, 0x00345584, 0x00365685, 0x00355486, 0x00355487,
- 0x003a5482, 0x003c527c, 0x003a4e75, 0x00425476, 0x0058657f, 0x00454f61, 0x000d131e, 0x0005060b, 0x00040602, 0x00090603, 0x00040200, 0x00060705, 0x000a0b08, 0x000e0e0c, 0x000f0f0f, 0x003f413e,
- 0x00cfcdca, 0x00f8faf6, 0x00fdfdfc, 0x00f8f9f8, 0x00fdfdfd, 0x00e9ecec, 0x009ea1a0, 0x00555652, 0x00291d18, 0x0025140d, 0x00351e15, 0x00361e14, 0x003f271c, 0x006e5a4e, 0x00b9aa9c, 0x00cdc1b2,
- 0x00c2c1c2, 0x00d4d2d3, 0x00d4d2d3, 0x00b6b4b5, 0x00a6a4a4, 0x00b3afb0, 0x00cecac9, 0x00c0bbba, 0x00979694, 0x00969291, 0x00c2c2c0, 0x00c7c8ca, 0x00919187, 0x007b7569, 0x00847c6d, 0x008f8177,
- 0x008d8182, 0x0091848d, 0x00a69fa5, 0x00bdbcc0, 0x00ccd1cb, 0x00e0e2e0, 0x00d4d7cc, 0x0090977c, 0x00535b1b, 0x00545e18, 0x00525f18, 0x00556127, 0x008b947d, 0x00a1a5a3, 0x00707581, 0x00a6a9bf,
- 0x00b4b0b1, 0x00a9a4a3, 0x00bfb8b7, 0x00dbd6d3, 0x00c2bebb, 0x00a19d9a, 0x00aaa5a3, 0x00c0bdbb, 0x00c1bbbb, 0x00aeaaaa, 0x00a6a4a0, 0x00a19f96, 0x00b8b3ac, 0x00b5aca6, 0x00887c77, 0x00796b68,
- 0x00897c7a, 0x00a19393, 0x00aaa2a1, 0x00a7a09e, 0x00aaa5a4, 0x00c0b4af, 0x00c3b9b0, 0x00a79e97, 0x00918b89, 0x00868183, 0x008f8d93, 0x00a19fa6, 0x0095919a, 0x009c969f, 0x00908990, 0x0050494d,
- 0x007e474f, 0x00c69e9b, 0x00e5cbc4, 0x00e1d6d3, 0x00bcb7c5, 0x009b9a97, 0x00abad98, 0x00898d5f, 0x00474f34, 0x00545965, 0x006f6980, 0x00c8a6b6, 0x00d8d4dc, 0x00d9d5de, 0x00c9c4c9, 0x00bfafb5,
- 0x00a49c95, 0x007e8970, 0x003a512b, 0x00294213, 0x005e5b2d, 0x007f8369, 0x00757868, 0x005b574e, 0x009d8c91, 0x00beb0b7, 0x00c2b8be, 0x00a5a6aa, 0x00adb0ad, 0x00b3b4ad, 0x00a19a90, 0x008d8175,
- 0x004d4b31, 0x0056553e, 0x008b8a79, 0x00898780, 0x00857f83, 0x009f989d, 0x00a59ea3, 0x009c959b, 0x00bdb7b8, 0x00c6c1bd, 0x00afadac, 0x0099979d, 0x00b3adb2, 0x00bcb2b8, 0x00b6acb3, 0x00bbb3b5,
- 0x00bfb5b8, 0x00cec8c9, 0x00d0cccc, 0x00e4e4e1, 0x00f9fbf9, 0x00fbfbf5, 0x00fafbf6, 0x00fbfefd, 0x00f7fafb, 0x00aaa29d, 0x002a1609, 0x00431e05, 0x0065320a, 0x0070370c, 0x00763c10, 0x00743910,
- 0x0072390c, 0x00723a0c, 0x00743c0f, 0x00763f10, 0x007a4212, 0x00763f10, 0x00743e10, 0x00733f11, 0x00763f12, 0x00764111, 0x00753f10, 0x00763f12, 0x007a4218, 0x007a4015, 0x00773d11, 0x00763b10,
- 0x0071380e, 0x00713a0e, 0x00783e13, 0x007d4116, 0x00794115, 0x00764014, 0x00754115, 0x00744216, 0x00764215, 0x00774316, 0x00723f13, 0x006f3d11, 0x00713e14, 0x00734016, 0x00724115, 0x00714115,
- 0x0077400e, 0x00754011, 0x00713c0e, 0x006e3a0e, 0x00713d0f, 0x006e390e, 0x006a350b, 0x006a360f, 0x00733c17, 0x0076401b, 0x0074431e, 0x00704624, 0x006f4825, 0x006a4323, 0x006b4424, 0x006e4929,
- 0x00795234, 0x007a5739, 0x00836246, 0x008a674c, 0x00926f55, 0x00997e66, 0x009e8975, 0x00a6927f, 0x00b69e8e, 0x00bda997, 0x00c4b19f, 0x00cbb9a8, 0x00d4c2b4, 0x00dccbbd, 0x00e4d5c6, 0x00e9ddcd,
- 0x00f2e6d6, 0x00f1e5d6, 0x00f9eee5, 0x00fdf8f2, 0x00fcfcfb, 0x00fbfbfb, 0x00fafbfc, 0x00fcfefe, 0x00d1d3d6, 0x00737172, 0x00343435, 0x002d302d, 0x00383c4f, 0x00707584, 0x00b3bcc7, 0x00b2bec1,
- 0x007583a5, 0x00323e89, 0x002839a1, 0x002135aa, 0x001a3b92, 0x0013369c, 0x001437a7, 0x002139b3, 0x00263690, 0x001c2853, 0x000e1b22, 0x00131b0a, 0x000a0f11, 0x00060511, 0x0001030c, 0x00000305,
- 0x0006070a, 0x00101216, 0x0018191d, 0x00231e1d, 0x00665240, 0x008a6847, 0x0094663f, 0x00b17d51, 0x00c0936a, 0x00cca47f, 0x00cba988, 0x00a9866a, 0x0042392b, 0x00161213, 0x000f1116, 0x00111313,
- 0x00230f03, 0x001f0900, 0x00230c04, 0x001b0d04, 0x000f0f10, 0x002d3333, 0x00878c8b, 0x00c7cccd, 0x00d1d8de, 0x00c5ced7, 0x00b1bbc3, 0x00b1bdc5, 0x00c4cdd7, 0x00c9d0d9, 0x00c8ccd4, 0x00caccd6,
- 0x00c8ccd5, 0x00c9cdd5, 0x00c4c8ce, 0x00bec3c7, 0x00b6b8be, 0x00adadb2, 0x00a09fa3, 0x00959196, 0x00888789, 0x00838285, 0x007c7c7e, 0x006f7071, 0x00545558, 0x00393b41, 0x00262831, 0x00222430,
- 0x00222732, 0x002d303c, 0x00383f4a, 0x00484b55, 0x00545d62, 0x005d6561, 0x006b6665, 0x005e4a4e, 0x0038131c, 0x00280810, 0x001d0c0f, 0x00060907, 0x00020a08, 0x00020908, 0x00060406, 0x0017020a,
- 0x0027222e, 0x0034313f, 0x002a2b3a, 0x002b313f, 0x0038404e, 0x00424a55, 0x0052575f, 0x0073757c, 0x00d4d5d7, 0x00fbfcfb, 0x00fbfdf9, 0x00fdfffa, 0x00fbfcf7, 0x00fffffc, 0x00fcfbfc, 0x00fbfcfc,
- 0x00fdfdff, 0x00feffff, 0x00f9f9fa, 0x00efeff4, 0x00dadae2, 0x00c3c4cc, 0x00c2c4ca, 0x00caccd5, 0x00c8cdd3, 0x00c2c7ce, 0x00bfc4cc, 0x00c1c7d0, 0x00c2cad4, 0x00c1cbd5, 0x00c0cad4, 0x00c0cad5,
- 0x00c3cee0, 0x00cad5e5, 0x00d4deeb, 0x00d6e0eb, 0x00dee6f0, 0x00e6edf4, 0x00edf1f6, 0x00e9ecef, 0x00fcfcfc, 0x00fcfcfa, 0x00fcfdf8, 0x00fbfef7, 0x00edeee8, 0x008d928a, 0x00141c11, 0x00192115,
- 0x001d2417, 0x001c2316, 0x001d2416, 0x001e2516, 0x001e2517, 0x001d2617, 0x001c2617, 0x001b2516, 0x001b2318, 0x001a2418, 0x001a2117, 0x001b221a, 0x001a221a, 0x001a211a, 0x00202722, 0x00727a74,
- 0x00ddbd97, 0x00b8605f, 0x00630b26, 0x001d001d, 0x00020635, 0x000f033e, 0x00110848, 0x000b0d47, 0x00140546, 0x000a0948, 0x00030846, 0x00090647, 0x0009023c, 0x0004003a, 0x00040b44, 0x00152767,
- 0x00263a7e, 0x002d3c7c, 0x002a366e, 0x00424b72, 0x00b1bcd2, 0x00ecf0f9, 0x00f1eefa, 0x00f0edf8, 0x00f6f3f8, 0x00f5f4fa, 0x00f8fbfb, 0x00faf9fa, 0x00f8f8f6, 0x00faf8f9, 0x00f8f9fa, 0x00fafbfd,
- 0x00faf4f5, 0x00faf6f5, 0x00fbf8f8, 0x00fbf8fa, 0x00fcf8f9, 0x00fef9fb, 0x00fff8fd, 0x00fdf7fc, 0x00fdf7ff, 0x00fef5ff, 0x00fbf7f8, 0x00f8fdeb, 0x00f7fdf8, 0x00f9fefc, 0x00eaeff8, 0x00cbd1ec,
- 0x008e93b5, 0x008485a3, 0x00cbcadc, 0x00f8f6fc, 0x00fdf8fa, 0x00fbf7f9, 0x00f9faf7, 0x00f9f9f8, 0x00f9f9f7, 0x00fafaf9, 0x00fafaf9, 0x00fdfdfc, 0x00fdfcfd, 0x00fcfdfd, 0x00fbfbfd, 0x00fbfcfd,
- 0x00fafaf9, 0x00fafaf9, 0x00fafaf9, 0x00fbfbfa, 0x00fafafa, 0x00fdfdfd, 0x00fdfdfd, 0x00fcfcfc, 0x00fbfdfd, 0x00fefdff, 0x00fdfdfc, 0x00fbfcfc, 0x00fafefa, 0x00fdfdfd, 0x00fafcfc, 0x00fafafc,
- 0x00f9fafb, 0x00fcfcfc, 0x00fefcfc, 0x00f9f9f8, 0x00faf9fa, 0x00faf8fb, 0x00fdfdfe, 0x00fdfefd, 0x00fefdfd, 0x00f6f8f7, 0x00d1d5d2, 0x00848b86, 0x0030372f, 0x00121a0f, 0x00192015, 0x001b2217,
- 0x00151f12, 0x00131c0f, 0x00151e11, 0x00182114, 0x00141d11, 0x00111b0f, 0x00101a0e, 0x00101a0d, 0x0010190e, 0x000f180b, 0x000f170c, 0x00050c03, 0x00474b43, 0x00bec0b9, 0x00fffffc, 0x00fcf9f8,
- 0x00fdfdfd, 0x00fdfefd, 0x00f2f6f3, 0x00b1b5b3, 0x00818786, 0x00b3b2b5, 0x00ddd8de, 0x00eeeaef, 0x00efecf4, 0x00eeebf2, 0x00eeecf3, 0x00f0eff6, 0x00efeff7, 0x00f0f1fa, 0x00eff0fa, 0x00f2f3fc,
- 0x00f2e8f0, 0x00efae9c, 0x00cb5e2e, 0x00f8570d, 0x00d0430d, 0x0079332f, 0x004c4a6b, 0x002d69b2, 0x003064aa, 0x0054608d, 0x007e819f, 0x008e9fba, 0x008291ad, 0x0071809b, 0x0062748b, 0x006c7a8e,
- 0x008894a6, 0x00929dae, 0x008d9aa9, 0x00a4afbd, 0x00b2bdcb, 0x00a0b0b9, 0x00a3b8bc, 0x00becfd3, 0x00cedbe3, 0x00d3dce4, 0x00e5ecf0, 0x00f1f6fa, 0x00f9f8fd, 0x00fdf9fb, 0x00fbf7fb, 0x00fcf8fc,
- 0x00f9fefe, 0x00f9fefd, 0x00f9fdfd, 0x00f9fefc, 0x00fafefc, 0x00f8fefc, 0x00f6fefd, 0x00f4fffd, 0x00f7fdff, 0x00f8feff, 0x00f7fdfe, 0x00fdfffe, 0x00fafefd, 0x00fdfefe, 0x00fcfefe, 0x00f9fcfe,
- 0x00fbfbfd, 0x00fcfdfd, 0x00fdfdfc, 0x00fefefc, 0x00fdfcfc, 0x00fcfcfd, 0x00fafbfc, 0x00f7f9fa, 0x00f1f2f1, 0x00e6e7e6, 0x00d6d7d8, 0x00cccece, 0x00bec0c0, 0x00b1b4b3, 0x00c4c7c6, 0x00f1f3f2,
- 0x00fdfdfd, 0x00fefefe, 0x00fefcfd, 0x00fffdfd, 0x00d7d4d3, 0x009b9b9a, 0x00939597, 0x0095999e, 0x006c7681, 0x00636f7b, 0x00626e7c, 0x005b6880, 0x00586480, 0x00545f83, 0x004c5881, 0x0047537f,
- 0x00495381, 0x0048527f, 0x0048517f, 0x0045507c, 0x00434e79, 0x003e4875, 0x0037416d, 0x00313c63, 0x002d3a56, 0x0026334a, 0x001f2e3f, 0x00182737, 0x001b283b, 0x00212d44, 0x0029344f, 0x002f3958,
- 0x003e3645, 0x005a4d5c, 0x008f828e, 0x007c6b75, 0x0043323c, 0x00332333, 0x00403751, 0x004e4c70, 0x004c5088, 0x00484f8e, 0x00444e89, 0x00445080, 0x0045517e, 0x00455381, 0x0043517f, 0x00455080,
- 0x00434d7a, 0x00444d7b, 0x005d6793, 0x004a5480, 0x001b274e, 0x00151d2f, 0x00595f63, 0x009fa5a9, 0x00b0b4ac, 0x009da196, 0x008b8e7e, 0x00656653, 0x0073715d, 0x00bab6a0, 0x00ebe5d1, 0x00dfd9c9,
- 0x00d4cdac, 0x00d2cdad, 0x00c7c2a4, 0x00d2cdb0, 0x00ece6ca, 0x00efeace, 0x00d1cbb0, 0x00b1aa92, 0x00a7a289, 0x00b4ae98, 0x00c4c0aa, 0x00e5e3cf, 0x00f0f0dc, 0x00c7c6b9, 0x00959387, 0x00908f85,
- 0x009c9a93, 0x00b8b5ad, 0x00dad6cd, 0x00e9e6dd, 0x00f4f1e5, 0x00e5e7de, 0x00babfbb, 0x00a8aeac, 0x00bfc2c4, 0x00c8cacc, 0x00c5c7ca, 0x00babcc0, 0x00b1b3b7, 0x00b0b3b7, 0x00b1b4b9, 0x00b4b7bd,
- 0x00d0d1ca, 0x00e0e2e1, 0x00dbdee3, 0x00e7ecfa, 0x00c5cade, 0x00a0a6b9, 0x00b2b6c4, 0x00e3e7ed, 0x00fcfdfc, 0x00f6f4ec, 0x00efeee3, 0x00e7e8e5, 0x00d5d8d5, 0x00c5cacf, 0x00b7bfcf, 0x00b5bedd,
- 0x00b8c2f4, 0x0096a4d8, 0x006477a4, 0x00768db1, 0x00748fa3, 0x00597485, 0x0055707c, 0x004b6870, 0x003e5863, 0x00304954, 0x00264049, 0x00264048, 0x00223c43, 0x00223c42, 0x00203d40, 0x00234044,
- 0x00afadae, 0x000d0a0c, 0x00151212, 0x00161512, 0x000e0d0b, 0x000b0b08, 0x00050502, 0x00030301, 0x00050604, 0x00060705, 0x00090908, 0x00090908, 0x00050605, 0x00050505, 0x00070607, 0x00080608,
- 0x000d0b0e, 0x00090908, 0x00060706, 0x00070503, 0x0009080b, 0x0011100e, 0x00080707, 0x00110e0f, 0x00525254, 0x0087898d, 0x00a0a3a7, 0x00a0a8af, 0x009399aa, 0x00828aa2, 0x00818aa3, 0x00828eab,
- 0x00758ab4, 0x007187b2, 0x00697daf, 0x006477b0, 0x005f71b0, 0x005b6dad, 0x005f71ae, 0x006578b1, 0x006d80b4, 0x006d81ae, 0x00697ca0, 0x0055637a, 0x002a3546, 0x001e1f29, 0x00282629, 0x00362f29,
- 0x0042382e, 0x003b3528, 0x00312a20, 0x00262318, 0x001c1e16, 0x00151813, 0x00131312, 0x000d100c, 0x000d0c0c, 0x000c0b0b, 0x000c0b0b, 0x000c0b0b, 0x00090909, 0x00080908, 0x000b0b0b, 0x000a0b0b,
- 0x000a0701, 0x00362512, 0x00ae8f76, 0x00c19578, 0x006d5044, 0x00585162, 0x00617397, 0x00476ea4, 0x00416eaa, 0x00466ba2, 0x00476ca4, 0x004369b8, 0x004067b4, 0x003e63b0, 0x00395ea7, 0x003b5ba3,
- 0x00425aa3, 0x00425da2, 0x00415aa0, 0x003b5596, 0x0043589a, 0x00435f99, 0x003c5c96, 0x0031558b, 0x002d4f86, 0x002d4e86, 0x002f5088, 0x00305288, 0x0032558a, 0x0033558b, 0x0031538b, 0x0033538c,
- 0x0037518e, 0x003b558a, 0x00385084, 0x00405683, 0x00586987, 0x003f4a60, 0x00080d1f, 0x00070810, 0x000c0908, 0x000c0705, 0x000d0a07, 0x00080906, 0x000d0e0c, 0x0011100f, 0x00090b09, 0x00404440,
- 0x00cdcacb, 0x00f9f9f7, 0x00fffffd, 0x00faf9f8, 0x00ffffff, 0x00ecf1f1, 0x00d3d5d6, 0x00979794, 0x00382d2a, 0x00291914, 0x004b3530, 0x00472f28, 0x005c4940, 0x009a8b82, 0x00d9cdc3, 0x00d1c9be,
- 0x00c6c5c8, 0x00d0cfd1, 0x00d7d6d7, 0x00c0bfc0, 0x00a3a1a1, 0x00b0aeae, 0x00bcb9b9, 0x00c2bfbf, 0x00aaa5a7, 0x00949290, 0x00c0bdbf, 0x00c4c2c5, 0x0095908a, 0x007e7668, 0x007a6c5f, 0x0078695e,
- 0x00756265, 0x007d6e75, 0x008d858c, 0x009ea0a0, 0x00bac3bb, 0x00d7dad3, 0x00d3d2c8, 0x0097997d, 0x00616931, 0x0065712c, 0x00646f2c, 0x005d6b2b, 0x008e967a, 0x00a1aaa1, 0x00727680, 0x00989ab0,
- 0x00b2aeb0, 0x00a8a2a3, 0x00bdb6b7, 0x00d6d1d0, 0x00c2bdbb, 0x00a09b99, 0x00aba5a4, 0x00beb9b8, 0x00b5afaf, 0x00a4a09f, 0x00a6a39e, 0x00aaa79c, 0x00b9b3aa, 0x00aba199, 0x00a49893, 0x00968985,
- 0x00928182, 0x009f9492, 0x00a69c9a, 0x00a7a19d, 0x00a8a1a0, 0x00b8ada5, 0x00c9bbb2, 0x00ada39d, 0x0099928e, 0x00928e8d, 0x009d9c9e, 0x00a2a0a4, 0x00a6a0a5, 0x00b6aeb3, 0x00877f82, 0x004d4647,
- 0x00987173, 0x00d8c0b5, 0x00ded1c5, 0x00ddd9d6, 0x00bbb8c7, 0x00a3a09f, 0x009f9e89, 0x00767a4a, 0x004b5440, 0x00575f71, 0x008e89a5, 0x00e0bfc8, 0x00d2d3db, 0x00d1d5dc, 0x00c9c8d1, 0x00ccbcc1,
- 0x00c7bbb3, 0x008c977a, 0x003c5125, 0x00374f1d, 0x007a6e43, 0x009a9a81, 0x00949384, 0x00837e75, 0x00b0a4a5, 0x00beb4b6, 0x00ccc6ca, 0x00b2b4b4, 0x00b2b9b5, 0x00afb0a5, 0x00959284, 0x00796f5f,
- 0x004e482d, 0x00656049, 0x009f9a88, 0x009b958d, 0x00958c8f, 0x00a1979e, 0x00a0969e, 0x00a59ca2, 0x00d0c5c7, 0x00c2bab7, 0x00aea9a8, 0x00afa9af, 0x00bbb0b9, 0x00b6aab4, 0x00bbb0b7, 0x00c0b4b8,
- 0x00cbc0c2, 0x00d3cccb, 0x00c8c2c1, 0x00d7d6d3, 0x00fdfffd, 0x00fdfdf9, 0x00fefffb, 0x00fafcfa, 0x00f7f9f9, 0x00a8a19c, 0x00281409, 0x003f1e07, 0x0065300b, 0x006f360c, 0x00763b10, 0x0071380d,
- 0x0071390b, 0x00723b0d, 0x00743e10, 0x00743e10, 0x00773f10, 0x00773f11, 0x00773f13, 0x00763e13, 0x00733d10, 0x00733d0d, 0x00743c0e, 0x00733c10, 0x00753d13, 0x00743d11, 0x00703a0e, 0x006e380c,
- 0x006f370c, 0x0070360c, 0x0072390e, 0x00733d11, 0x00743e12, 0x00723d11, 0x006f3d11, 0x006e3d11, 0x006f3e15, 0x006f3e15, 0x006f3f17, 0x0070411a, 0x006d401a, 0x00693e18, 0x00673b17, 0x00643813,
- 0x00623717, 0x0064391b, 0x00643b1c, 0x00643c1f, 0x006a4222, 0x006a4325, 0x006d4a2a, 0x00755335, 0x00846145, 0x008e6b4f, 0x0092735a, 0x00937967, 0x0099836d, 0x009d8672, 0x00a28a78, 0x00a48e7b,
- 0x00b39b8c, 0x00bca695, 0x00ccb8a8, 0x00d5c2b2, 0x00dbcaba, 0x00e0d3c7, 0x00e3d8d0, 0x00eaddd5, 0x00f6e8e0, 0x00f9f0e7, 0x00faf2eb, 0x00faf2ec, 0x00fcf5f0, 0x00fdf4f1, 0x00fef5f3, 0x00fef8f7,
- 0x00fffdf8, 0x00fffef7, 0x00fefbf8, 0x00fbfaf8, 0x00fbfcfd, 0x00fdfefe, 0x00fafcfe, 0x00fafefe, 0x00d5d5db, 0x00777877, 0x00434340, 0x00454842, 0x00595d6f, 0x007c8594, 0x00aab6c0, 0x00b7c7c3,
- 0x00828fa9, 0x00394283, 0x002b3496, 0x002235a1, 0x0018388f, 0x000e3491, 0x00113099, 0x001f35a6, 0x00242d83, 0x00121a46, 0x000c121f, 0x000a140e, 0x00080d1c, 0x0003051a, 0x00000410, 0x00000303,
- 0x0007080c, 0x0017181b, 0x00121010, 0x00241c17, 0x00816a54, 0x00ad8766, 0x00a7754e, 0x00b48053, 0x00c99570, 0x00cea585, 0x00cea485, 0x00cfa07d, 0x0078634f, 0x0029231e, 0x00111110, 0x001b1a11,
- 0x00351905, 0x0046250d, 0x004f3217, 0x0048311f, 0x00454241, 0x007f7f81, 0x00bdc3c3, 0x00ced7db, 0x00c8d3dc, 0x00c5d3dd, 0x00b8c6d1, 0x00acb9c5, 0x00bcc6d0, 0x00c7cfd8, 0x00cdd3d9, 0x00cdd4da,
- 0x00d3d5de, 0x00d0d3dc, 0x00ccd0d7, 0x00c8ccd1, 0x00c8ccd0, 0x00c5c8ca, 0x00bdbdc1, 0x00b1b1b5, 0x009b9a9a, 0x00868688, 0x00787879, 0x00676866, 0x00515355, 0x003f4148, 0x0032343d, 0x002c2e36,
- 0x002c2e3b, 0x00343943, 0x00424850, 0x004f565c, 0x00616769, 0x00706f67, 0x007c665f, 0x00714645, 0x0058121f, 0x0044020c, 0x00320207, 0x001a0102, 0x00080300, 0x00080101, 0x000d0101, 0x001b0506,
- 0x00292332, 0x002d2a38, 0x002e2d3b, 0x00343644, 0x00464a57, 0x004f545e, 0x005d6267, 0x00858b8b, 0x00e8e8e5, 0x00fdfcf8, 0x00fffdfa, 0x00fdfcf8, 0x00fcfcf6, 0x00fdfcf8, 0x00fdfbfa, 0x00faf9f8,
- 0x00ffffff, 0x00fcfdfa, 0x00fcfcf9, 0x00fafbfa, 0x00f7f7f8, 0x00f5f5f5, 0x00f1f1f2, 0x00ecebed, 0x00e3e4e7, 0x00d9dcdf, 0x00cdd1d6, 0x00cacfd5, 0x00c9ced5, 0x00c9cfd7, 0x00cbd1da, 0x00cdd4dc,
- 0x00d5deef, 0x00dae4f2, 0x00e2edf8, 0x00d9e2ec, 0x00cfd8df, 0x00dbe2e7, 0x00eef4f5, 0x00ebf1f0, 0x00f9f9f9, 0x00f9f9f7, 0x00fdfefb, 0x00f9fdfa, 0x00f5f8f5, 0x00a3a9a2, 0x00192017, 0x00171e16,
- 0x001c231a, 0x001b2218, 0x001d2418, 0x001d2518, 0x001d2617, 0x001d2718, 0x001d2819, 0x001b2617, 0x001c2519, 0x00192316, 0x001b2319, 0x001c241b, 0x001a2319, 0x001b241c, 0x00202822, 0x006e7770,
- 0x00e9cbaa, 0x00be6d73, 0x005c0726, 0x001a0021, 0x00020635, 0x000c053e, 0x00110743, 0x000c0c47, 0x0019064a, 0x000b0b48, 0x00080a4b, 0x000e0949, 0x0008043c, 0x00000035, 0x0011154d, 0x0026306e,
- 0x00293883, 0x0026357d, 0x00233270, 0x00172354, 0x006b6f8b, 0x00c7c8d7, 0x00f2f0fa, 0x00f4f3fa, 0x00f8f5ff, 0x00f1f0f7, 0x00fcfafe, 0x00f8f9fb, 0x00f8f7fb, 0x00f6f7f5, 0x00f9f8f8, 0x00f8fbf5,
- 0x00faf7fb, 0x00fcf8fb, 0x00fdf7fb, 0x00fdf7fb, 0x00fef8fc, 0x00fff9ff, 0x00fff9ff, 0x00fef8fc, 0x00fff7fc, 0x00fef6fb, 0x00fcf8f5, 0x00f6f9eb, 0x00f2f7ee, 0x00f7fafa, 0x00f8fbfe, 0x00f1f5fb,
- 0x00d1d2e6, 0x00b3b3c3, 0x00d1cfde, 0x00f6f5f6, 0x00fffcfd, 0x00faf9f8, 0x00f8f9f9, 0x00fbfbfb, 0x00fbfbfc, 0x00fbfafa, 0x00fdfcfd, 0x00fdfdfc, 0x00fefefd, 0x00fcfdfc, 0x00fcfdfc, 0x00fcfdfb,
- 0x00fdfdfd, 0x00fcfcfb, 0x00fbfcfb, 0x00fdfdfd, 0x00fcfcfc, 0x00fdfdfd, 0x00fcfcfd, 0x00fcfcfc, 0x00fcfcfe, 0x00fefdfc, 0x00fdfdfc, 0x00fefcfb, 0x00fdfdff, 0x00fefcfe, 0x00fafcfd, 0x00f8fbfb,
- 0x00f9f9fa, 0x00fefdfd, 0x00fdfcfc, 0x00f9f9f8, 0x00f7f7f7, 0x00f8f5f9, 0x00fdfafd, 0x00fcfafc, 0x00fafbfc, 0x00fcfdfd, 0x00f8faf9, 0x00dfe3e0, 0x00989e9a, 0x00464d47, 0x00151c16, 0x00171c15,
- 0x001e2618, 0x001c2517, 0x001a2317, 0x00141e11, 0x00141d10, 0x00121c0f, 0x00111c0f, 0x000e190d, 0x0012190e, 0x00121a0d, 0x000f160d, 0x00070f06, 0x00343b31, 0x00a6aaa2, 0x00fbfcf9, 0x00fcfbfb,
- 0x00fefefe, 0x00fcfcfb, 0x00f6f9f8, 0x00bfc2c1, 0x007e8585, 0x00a8abae, 0x00d4d7da, 0x00e8ecee, 0x00ecedf1, 0x00edeff3, 0x00ebedf3, 0x00eff0f6, 0x00eff0f5, 0x00f2f3f6, 0x00f4f5f9, 0x00f4f5fa,
- 0x00f2cec1, 0x00d88463, 0x00d1592e, 0x00e75620, 0x00963420, 0x00563144, 0x0045537d, 0x0032639d, 0x0037578a, 0x005f678c, 0x009091ab, 0x009aa3ba, 0x00909baf, 0x008a95a8, 0x00828b9d, 0x00828d9a,
- 0x00adafc1, 0x00b7bfca, 0x00c6ccd5, 0x00d5dde4, 0x00e6eaf1, 0x00e2ebea, 0x00ebf2ef, 0x00f2faf8, 0x00f3f9fb, 0x00f1f7f9, 0x00fafefe, 0x00f9fcfe, 0x00fbfefe, 0x00fdfdfc, 0x00fffcfe, 0x00fffdff,
- 0x00fafefc, 0x00f9fefc, 0x00f9fefb, 0x00fafefc, 0x00fcfeff, 0x00fafdfe, 0x00f7fcfc, 0x00f7fdfd, 0x00f8fcff, 0x00f9fdff, 0x00fbfeff, 0x00fcfcfe, 0x00f8fcfd, 0x00fcfdfe, 0x00ffffff, 0x00fdfdfe,
- 0x00fffeff, 0x00fcfcfd, 0x00f7f7f7, 0x00eff0ef, 0x00e5e6e4, 0x00dddfdd, 0x00d2d4d3, 0x00c3c5c5, 0x00b1b2b3, 0x00a0a2a2, 0x00919392, 0x00838685, 0x00797d7c, 0x00707373, 0x00999b9c, 0x00e3e5e6,
- 0x00fffeff, 0x00fdfdfe, 0x00fefcff, 0x00fffcfe, 0x00e2dfdf, 0x00a6a5a5, 0x00909294, 0x009ba1a4, 0x00767c8b, 0x005c6773, 0x005f6a7d, 0x00586481, 0x00576185, 0x00515c81, 0x004b5781, 0x004b5683,
- 0x00495182, 0x00485282, 0x00485181, 0x00464f7c, 0x00434d7a, 0x00404a7b, 0x003a4573, 0x00323f66, 0x00303c59, 0x0029364d, 0x00202d40, 0x001b293c, 0x001a273e, 0x001d2b46, 0x00243350, 0x002a3a59,
- 0x00403d5c, 0x00403f5b, 0x004d4a66, 0x00505069, 0x004a4965, 0x00454465, 0x00525378, 0x004c4d7a, 0x00494a7d, 0x004d5085, 0x00484d82, 0x00474f80, 0x00485280, 0x0047517f, 0x00454f7d, 0x00444f7a,
- 0x00454e80, 0x00434d7a, 0x004f5a86, 0x00535f88, 0x00303a65, 0x001c233e, 0x00202439, 0x00626976, 0x00a9adb1, 0x00a1a4a0, 0x00999a8f, 0x00838274, 0x006d6b59, 0x00797762, 0x00bdbaa4, 0x00d2cfb7,
- 0x00ded6bb, 0x00dbd3b8, 0x00d9d3b8, 0x00ece7cb, 0x00eee9cf, 0x00dbd4be, 0x00b8b19d, 0x00ada692, 0x00b6ae99, 0x00c6bfa8, 0x00e2dbc6, 0x00f5f3de, 0x00deded0, 0x00b0afa1, 0x0098968b, 0x009c9892,
- 0x00c6bfbd, 0x00dbd5cf, 0x00ece6de, 0x00f0ece1, 0x00f1eddf, 0x00d4d4ce, 0x00b8b9b9, 0x00bfc1be, 0x00cccdce, 0x00c4c6c5, 0x00c0c2c0, 0x00b9bcba, 0x00b5b7b8, 0x00b4b5b9, 0x00b6b7bd, 0x00babbc3,
- 0x00e2dddc, 0x00e4e1e0, 0x00dcdcdd, 0x00f3f8f8, 0x00ebf1f7, 0x00cfd5d8, 0x00dbdee1, 0x00f5f7f4, 0x00fcfbf8, 0x00f2f3e9, 0x00f1f0ea, 0x00eae8ec, 0x00e2e3e8, 0x00cfd2d7, 0x00bcc3cb, 0x00b7c0d4,
- 0x00b7c0ec, 0x00aebce9, 0x00798bb8, 0x00697ea4, 0x00758ca9, 0x006a8194, 0x00627a87, 0x0058727e, 0x00465e6a, 0x00344e58, 0x0027414b, 0x00203b43, 0x00264248, 0x00213c42, 0x001b363c, 0x001a3539,
- 0x00b1b1b0, 0x00151413, 0x00181816, 0x00242522, 0x0010110e, 0x000a0c08, 0x00070906, 0x000a0b08, 0x0012130f, 0x00121211, 0x00111011, 0x000c0d0e, 0x0009090b, 0x000a0b0c, 0x000f1010, 0x00131012,
- 0x000e0e0e, 0x000b0e0d, 0x000a0c0c, 0x000e0e0a, 0x000f1011, 0x000e0b0b, 0x00383336, 0x00747476, 0x00b7b9ba, 0x00bec1c6, 0x00a9adb6, 0x00abafbb, 0x00abb2c8, 0x009fa7c0, 0x0095a0bf, 0x008f9abe,
- 0x007994c8, 0x007692c8, 0x00718bc7, 0x006f88cc, 0x00667ec9, 0x006178c6, 0x005d73bf, 0x005c74bd, 0x005e76b8, 0x005973b0, 0x005b72a6, 0x006a799e, 0x0068738f, 0x004f5167, 0x00393845, 0x00443c3f,
- 0x00443736, 0x003f352f, 0x00332a21, 0x0027211b, 0x001b1912, 0x00131411, 0x00110f0f, 0x000e0e0f, 0x000f1011, 0x000f0f10, 0x000f0e0f, 0x000d0d0d, 0x000b0b0b, 0x000a0a0a, 0x000b0b0c, 0x000c0b0c,
- 0x000c0600, 0x004e3823, 0x00b18e6f, 0x00a77353, 0x0068493e, 0x005d5669, 0x0062779e, 0x004874b1, 0x004474b4, 0x00406aa8, 0x003d64a7, 0x003864b2, 0x003c67b2, 0x003d67af, 0x003c60a6, 0x003a5ca0,
- 0x003d5a9c, 0x003e5897, 0x0049609a, 0x005167a2, 0x0052659d, 0x003e5b98, 0x00365694, 0x002f508e, 0x002a4d8b, 0x002a4b89, 0x002d4b89, 0x002f4c8a, 0x00304e8c, 0x0030508d, 0x0030508d, 0x0031528d,
- 0x00304b94, 0x00365193, 0x00385190, 0x00465d93, 0x00526388, 0x0036415e, 0x0004091e, 0x000a0c13, 0x000e0b0b, 0x000b0701, 0x000d0c04, 0x00080a07, 0x000d0d0c, 0x0012120f, 0x000c0e0b, 0x003c3e3b,
- 0x00d1d1d0, 0x00fafaf9, 0x00fefefc, 0x00fcfdfb, 0x00fefefc, 0x00f4f8f6, 0x00dddedd, 0x00a2a09e, 0x00544743, 0x00483633, 0x00624b47, 0x007f6962, 0x00b7a69f, 0x00dcd0ca, 0x00eae1dd, 0x00e7e0de,
- 0x00cbcdd2, 0x00c6c7cd, 0x00d5d5da, 0x00c3c1c6, 0x00a39fa4, 0x00aca8ab, 0x00a7a4a6, 0x00a5a2a4, 0x00a4a0a1, 0x00979594, 0x00bdb9bc, 0x00bbb4bc, 0x008f8584, 0x007f6f65, 0x00705b51, 0x00624b45,
- 0x00675255, 0x0075666b, 0x007f777c, 0x00878889, 0x00a3aca3, 0x00c3c8c1, 0x00c8cabe, 0x008d9276, 0x00535f27, 0x0055621e, 0x00586620, 0x00576425, 0x0075805f, 0x009ba198, 0x007e818b, 0x008a8aa3,
- 0x00aba7a4, 0x00a7a2a1, 0x00bdb8b7, 0x00d5cecd, 0x00b7b0af, 0x009d9695, 0x00aea8a6, 0x00beb9b8, 0x00b1adac, 0x00a5a2a0, 0x00a6a29d, 0x00afab9f, 0x00b8b1a7, 0x00a89f95, 0x00ccc0b9, 0x00c8bcb7,
- 0x00978685, 0x00968986, 0x00a19895, 0x00a8a09d, 0x00aba7a2, 0x00b9aba1, 0x00c2b2a6, 0x00aa9d93, 0x00a69e98, 0x00a59f9d, 0x00a5a4a3, 0x00a2a2a1, 0x00a9a5a7, 0x00cac3c6, 0x00a39b9d, 0x00706567,
- 0x00aa9890, 0x00c1b6a6, 0x00c1bbb1, 0x00dedada, 0x00bab4c8, 0x00a7a3a1, 0x009d9b8a, 0x00707245, 0x00495641, 0x005c6981, 0x00adaacb, 0x00e2c0c5, 0x00d0d7d9, 0x00d6e3e8, 0x00c9ccd5, 0x00cab8c1,
- 0x00d6c6bd, 0x0097a380, 0x00415727, 0x0041561f, 0x00796136, 0x00918f70, 0x0091937f, 0x008c877a, 0x00bbafac, 0x00c0b6b8, 0x00c9c5c6, 0x00c3c5c6, 0x00b2bcb4, 0x00989a8d, 0x00787764, 0x00675d49,
- 0x00565030, 0x0077715a, 0x00aca594, 0x00b1aaa0, 0x00b7adaf, 0x00b8acb5, 0x00a195a0, 0x00a498a1, 0x00dcd1d2, 0x00d7cbcb, 0x00beb5b5, 0x00bab2b9, 0x00c2b6c1, 0x00c8bac2, 0x00d7cad0, 0x00c1b5b9,
- 0x00b8aeb0, 0x00bdb8b7, 0x00c4c2bf, 0x00dbddd8, 0x00fdfffc, 0x00fcfcf6, 0x00fefff9, 0x00fcfffd, 0x00f7faf9, 0x00a9a29c, 0x00271609, 0x00411f07, 0x0065320c, 0x0071360d, 0x00763c11, 0x00723910,
- 0x00733b0c, 0x00713a0d, 0x00713c0d, 0x00713d0c, 0x00713c0d, 0x006f3a0a, 0x0070390a, 0x0070390c, 0x00703a0e, 0x00703a0c, 0x00733d10, 0x00723c11, 0x00703b10, 0x006f3b0f, 0x00703b0f, 0x00703b0f,
- 0x00703d11, 0x00713c11, 0x006e390d, 0x006a380b, 0x006d390d, 0x006f3b10, 0x006e3c11, 0x006d3d12, 0x006a3c17, 0x006b3e18, 0x006c411b, 0x006e4522, 0x00754f2d, 0x007a5637, 0x00815e40, 0x00856243,
- 0x00876753, 0x008d6f5c, 0x00957864, 0x009d806d, 0x00a78e7c, 0x00b09988, 0x00bda896, 0x00c9b7a4, 0x00d9c7b5, 0x00e5d3c2, 0x00eeded1, 0x00f3e6df, 0x00fcf1e8, 0x00fff4ec, 0x00fef3ec, 0x00fcf4ec,
- 0x00fef3ed, 0x00fdf6f0, 0x00fdfaf5, 0x00fafbf6, 0x00fbfbf6, 0x00fdfcf8, 0x00fdfdfa, 0x00fffdfa, 0x00fffdfa, 0x00fefffc, 0x00fdfefc, 0x00fdfdfb, 0x00fdfefc, 0x00fdfcfb, 0x00fefcfc, 0x00fefeff,
- 0x00fdfcf9, 0x00fafcf6, 0x00fdfcfa, 0x00fcfefd, 0x00fbfeff, 0x00fcffff, 0x00fbfdfe, 0x00fafefe, 0x00d8d9da, 0x00848382, 0x00565554, 0x00616258, 0x007e8395, 0x0088939f, 0x0092a0a7, 0x00a0afab,
- 0x008991a7, 0x004a508d, 0x00262f8a, 0x0020329b, 0x0018388f, 0x0012368a, 0x00112f8b, 0x001a2e99, 0x001e2074, 0x000d103a, 0x000d1023, 0x00161e1d, 0x001c263b, 0x0013192e, 0x00020919, 0x00010707,
- 0x000e1310, 0x00191b19, 0x00181611, 0x00433a31, 0x00a88e79, 0x00cfa685, 0x00bb8760, 0x00c0885d, 0x00d09d7c, 0x00d5ab8c, 0x00d1a386, 0x00e1ab83, 0x00a9927d, 0x00595247, 0x00201c1b, 0x001f170e,
- 0x005c391d, 0x00875a3c, 0x00976f51, 0x009c7e69, 0x00a7a49e, 0x00c6c6c7, 0x00c4ced0, 0x00bbc8ce, 0x00c2d2db, 0x00c8dae4, 0x00c2d6e2, 0x00c2d3e2, 0x00b7c3cf, 0x00bbc3ce, 0x00bdc3cc, 0x00b9bec4,
- 0x00afb2b7, 0x00a8adb2, 0x00a1a4ac, 0x009c9fa6, 0x009a9ea3, 0x009da0a4, 0x00a2a2a6, 0x009d9da1, 0x008e8b8e, 0x007d7c7f, 0x0071716f, 0x00676963, 0x005f6360, 0x0055585b, 0x0046484e, 0x003c3f47,
- 0x00383e49, 0x0041484f, 0x004f5659, 0x005a6163, 0x006a7270, 0x0085796d, 0x00896559, 0x007c3e3b, 0x007b1a23, 0x006d0e18, 0x0051040c, 0x00370305, 0x00190802, 0x00180300, 0x001d0504, 0x00331314,
- 0x002e2a37, 0x00272532, 0x002c2c39, 0x003c404c, 0x004f525f, 0x00585b63, 0x006c6f71, 0x00a2a3a2, 0x00f4f5ef, 0x00fffdf6, 0x00fefbf4, 0x00fffcf7, 0x00fefcf9, 0x00fffdf8, 0x00fefcf8, 0x00fffcfa,
- 0x00fcfafa, 0x00fdfcfa, 0x00fefdfc, 0x00fffefd, 0x00fffffd, 0x00fefcfb, 0x00fffdfc, 0x00fffdfa, 0x00fcfdfd, 0x00f8fafb, 0x00f4f6f9, 0x00ebedf1, 0x00e5e7ec, 0x00e1e3e8, 0x00dde0e6, 0x00dde1e7,
- 0x00d5e1ef, 0x00d1dde9, 0x00cedae4, 0x00b8c3ca, 0x00a8afb5, 0x00c8cdd0, 0x00eef2f2, 0x00ebeeec, 0x00f5f9f3, 0x00fafcf5, 0x00fcfef9, 0x00fafefb, 0x00fbfdfc, 0x00bdc1bc, 0x002a3029, 0x00181b17,
- 0x00192217, 0x00192117, 0x001b2218, 0x001b2317, 0x001a2216, 0x00192315, 0x001a2515, 0x00192414, 0x001b2514, 0x001a2517, 0x001b2518, 0x00192317, 0x0019241b, 0x001b251c, 0x00192219, 0x00606a64,
- 0x00e8d3b3, 0x00c87b83, 0x005a0928, 0x001b0126, 0x00030737, 0x000c033f, 0x00120744, 0x000c0b45, 0x00190749, 0x000a0948, 0x000c0c4a, 0x00130647, 0x00040337, 0x00050438, 0x00212357, 0x002c3571,
- 0x00253286, 0x001a2d7d, 0x0014276b, 0x0007164a, 0x00342f4c, 0x009292a2, 0x00f3f3f7, 0x00f4f4fa, 0x00f1f0fc, 0x00f0ecf8, 0x00fcfbff, 0x00f9f8fe, 0x00f7f9fd, 0x00f7f6fa, 0x00f8f9fa, 0x00f9faf9,
- 0x00fbfbfe, 0x00fbf9fe, 0x00fcf9fe, 0x00fcf9fd, 0x00fcfafd, 0x00fcfafe, 0x00fcf9fe, 0x00fcf8fa, 0x00fef7f8, 0x00fcf8fa, 0x00fbf7f5, 0x00faf7f1, 0x00fbfbf7, 0x00f7f7f7, 0x00f6f6f8, 0x00fafcfa,
- 0x00f9fbfe, 0x00eeeef3, 0x00f2f1f5, 0x00fcfbfc, 0x00fdfbfa, 0x00f9f8f9, 0x00faf9fb, 0x00fbfbfd, 0x00fcfefe, 0x00fefeff, 0x00fdfcfd, 0x00fdfefe, 0x00fdfdfc, 0x00fdfefa, 0x00fdfdfa, 0x00fefef8,
- 0x00fbfcfd, 0x00fbfcfd, 0x00fcfdfe, 0x00fcfdfd, 0x00fcfcfc, 0x00fdfdfe, 0x00fdfdfe, 0x00fcfcfc, 0x00fdfbfb, 0x00fbfdfd, 0x00fcfdfd, 0x00fefcff, 0x00fdfdfe, 0x00fcfcfe, 0x00fbfbfb, 0x00fafbfb,
- 0x00f8f8f8, 0x00fcfbfc, 0x00fdfcfd, 0x00f6f8f7, 0x00f9faf9, 0x00f9f7f9, 0x00fefbff, 0x00fcfafd, 0x00fbfbfd, 0x00fdfdff, 0x00fafafa, 0x00f9fcfa, 0x00f2f6f4, 0x00c2c8c4, 0x00686f69, 0x00222822,
- 0x00111a0b, 0x00141e10, 0x00172114, 0x00162013, 0x00151e10, 0x00141d0f, 0x00131e10, 0x00121c0f, 0x00131c0d, 0x00101a0b, 0x0010190e, 0x000c150b, 0x0021291f, 0x00858a81, 0x00f5f6f2, 0x00fdfdfc,
- 0x00fcfffc, 0x00fafdfa, 0x00fafdfb, 0x00cdd1d0, 0x00848a8b, 0x009aa0a3, 0x00c8ced2, 0x00e3ebef, 0x00e8f0f2, 0x00e9f1f2, 0x00eaf2f3, 0x00e9f0f2, 0x00ebf1f1, 0x00eef5f1, 0x00eff6f2, 0x00eff7f4,
- 0x00edac85, 0x00cf6737, 0x00d96336, 0x00c84c2b, 0x00662e3e, 0x00564c70, 0x005e749b, 0x006285aa, 0x007a89a4, 0x009ba1bb, 0x00c4c5dc, 0x00cdd4e4, 0x00ccd2e0, 0x00d6dae6, 0x00e0e5ef, 0x00e8edf4,
- 0x00f7f9fd, 0x00f7fafe, 0x00fafcfe, 0x00fdfdfd, 0x00fdfefe, 0x00fefdfc, 0x00fefefc, 0x00fcfcfb, 0x00fdfdfb, 0x00fefefd, 0x00fefefd, 0x00fcfffe, 0x00f7fcfb, 0x00fafefb, 0x00fcfefa, 0x00fbfefa,
- 0x00fffefd, 0x00fefefb, 0x00fcfdfc, 0x00fbfcfd, 0x00fbfbfc, 0x00fcfbfd, 0x00fefcfe, 0x00fefcfb, 0x00fcfcfc, 0x00fbfbf7, 0x00fdfbfa, 0x00fcf9fb, 0x00f2f2f4, 0x00eeedf0, 0x00e4e4e6, 0x00dededc,
- 0x00d2d1d0, 0x00cac8c8, 0x00bdbcbb, 0x00b0b0b0, 0x009fa0a1, 0x00919393, 0x00858886, 0x007a7c7a, 0x006f7271, 0x00696e6c, 0x00676a68, 0x00686a68, 0x00727474, 0x00717273, 0x008f9190, 0x00d0d6d4,
- 0x00fdfdfc, 0x00fcfcfd, 0x00fffdff, 0x00fffbfe, 0x00f0ecee, 0x00b1b0b2, 0x008b8b90, 0x00a5a8ae, 0x00858b98, 0x00596371, 0x00596577, 0x00556383, 0x00525e82, 0x004d577f, 0x0048537f, 0x00495283,
- 0x00455183, 0x00455083, 0x00465082, 0x00464f80, 0x00454d7e, 0x00424b7d, 0x003d4777, 0x0038436c, 0x00313d5a, 0x002a374f, 0x00212e40, 0x001c2a3b, 0x0019283c, 0x001b2b43, 0x0020314e, 0x00263858,
- 0x00303257, 0x003d4167, 0x003b4368, 0x00414b71, 0x0046537c, 0x00454f7b, 0x004a537f, 0x00494e7c, 0x004b4d77, 0x00504f79, 0x004a4a77, 0x00494e7e, 0x0048507e, 0x004a537e, 0x00474f7b, 0x00464e7b,
- 0x0048507d, 0x004b527f, 0x00404a75, 0x004c5783, 0x00505a87, 0x002f355b, 0x001c2340, 0x00141e30, 0x00595e6a, 0x009ea2a5, 0x00a7aaa3, 0x00969789, 0x007b7a68, 0x00706e5b, 0x0073715d, 0x00a39f8b,
- 0x00dad6ba, 0x00e9e3c7, 0x00e5e0c6, 0x00eae8cd, 0x00e7e3ca, 0x00cec9b4, 0x00b3ad9b, 0x00bcb6a3, 0x00c6bea9, 0x00ccc3ae, 0x00f3eed9, 0x00f7f3e5, 0x00c7c3b6, 0x00969288, 0x00a49f96, 0x00d1cdc7,
- 0x00e5dfdb, 0x00eee8e1, 0x00f0eae1, 0x00f7f3e6, 0x00f2edde, 0x00d3d1cd, 0x00c3c2c5, 0x00c2c3c0, 0x00bfc0bd, 0x00bfc0be, 0x00c2c4c2, 0x00bcbebe, 0x00babbbe, 0x00bbbcc1, 0x00bababf, 0x00c6c7cd,
- 0x00f1e8e9, 0x00eee6e7, 0x00edeae6, 0x00f5f6f0, 0x00f7fbf3, 0x00f5faf3, 0x00f8fbf6, 0x00fbfcf7, 0x00f9faf4, 0x00fafaf4, 0x00f6f5f4, 0x00f2edf7, 0x00ebeaed, 0x00daddde, 0x00bdc3c6, 0x00aab4c1,
- 0x00afb9db, 0x00b6c3ed, 0x00a1b2e0, 0x007489b4, 0x00657d9f, 0x00748d9f, 0x006b858f, 0x005b7580, 0x00455e6c, 0x00374f5b, 0x002c444e, 0x00253f46, 0x001f3a3e, 0x00253f43, 0x003d585d, 0x00587175,
- 0x00b3b3af, 0x00161610, 0x00222420, 0x00141513, 0x00161512, 0x000e0d0b, 0x000b0c0a, 0x000b0c09, 0x00161812, 0x00191915, 0x00171714, 0x00111210, 0x000f0d10, 0x00111012, 0x00151615, 0x00171717,
- 0x00131315, 0x00111211, 0x000e0f0f, 0x000e0e0f, 0x00131111, 0x002a272b, 0x007d787e, 0x00b3aeaf, 0x00b7b7bd, 0x00b3b3ba, 0x00b7b9c3, 0x00c4c8d7, 0x00b9c0d8, 0x00a3abca, 0x008e98ba, 0x008690b4,
- 0x007593cc, 0x007190cc, 0x007390d4, 0x00728ddb, 0x006c86dd, 0x006781dc, 0x00637cd7, 0x005b76cf, 0x005d79c3, 0x005c78c0, 0x005a73b2, 0x00596fa2, 0x0067749b, 0x00727597, 0x00646077, 0x004e4350,
- 0x0046333c, 0x003f2f33, 0x00352629, 0x00281f22, 0x00221a1c, 0x00181618, 0x00141113, 0x00121010, 0x00111212, 0x00101110, 0x00101210, 0x000e100e, 0x000f0d0c, 0x000e0d0c, 0x000d0c0c, 0x000d0c0c,
- 0x00150a03, 0x0050381d, 0x00a67e5a, 0x0098633d, 0x00714f42, 0x00645f76, 0x006278a7, 0x003f70b8, 0x003d73ba, 0x003a6cab, 0x003666a2, 0x003564a0, 0x003765a0, 0x0038659d, 0x003b6297, 0x00406193,
- 0x003f5d8a, 0x0047608b, 0x00778db5, 0x008fa1c4, 0x006c7da1, 0x0041598f, 0x00324f8e, 0x002f4d8e, 0x002d4c8b, 0x002c4b8a, 0x002d4a89, 0x002e4c8b, 0x00304d8d, 0x00304e8f, 0x0031508f, 0x002f4f8d,
- 0x003148a1, 0x00314998, 0x00344f94, 0x0048619a, 0x00556590, 0x00374061, 0x0002071d, 0x00090b13, 0x00100d0a, 0x000b0902, 0x000b0b04, 0x000f100c, 0x00141411, 0x000f0e0a, 0x000d0d0a, 0x003c3c3a,
- 0x00cececd, 0x00fbfcf9, 0x00fdfefa, 0x00fbfdfa, 0x00fefdff, 0x00f1f0f4, 0x00d6d5d7, 0x009e9c9b, 0x00685957, 0x00635150, 0x007e6765, 0x008f7975, 0x00beafad, 0x00d6ccca, 0x00dcd8d6, 0x00dedfde,
- 0x00cfcfd8, 0x00c4c4cd, 0x00d7d7df, 0x00c8c8ce, 0x00a1a0a5, 0x00aba9ac, 0x00aeabad, 0x00908c8f, 0x008a8588, 0x009f9b9c, 0x00c1bcbf, 0x00bdb1b6, 0x008a7d7b, 0x007e6b64, 0x006d584e, 0x005b453d,
- 0x00684f54, 0x00736169, 0x00847c81, 0x00919290, 0x00a3aca4, 0x00bdc2b9, 0x00c3c5b7, 0x008d8f74, 0x004d5621, 0x004b5715, 0x004d5b17, 0x00485615, 0x005e6946, 0x0082897f, 0x006e737d, 0x005e607b,
- 0x00948d90, 0x009a9495, 0x00beb9b8, 0x00d1cecb, 0x00afadac, 0x00959391, 0x00b4b2af, 0x00c0bcba, 0x00b6b0b1, 0x00b0aaaa, 0x00a9a39e, 0x00aba69b, 0x00b0a9a2, 0x00a69d96, 0x00c7bcb5, 0x00d0c3bd,
- 0x009f8f8d, 0x00928682, 0x00a69d9b, 0x00aea7a4, 0x00b6b2ae, 0x00bcafa6, 0x00bfada1, 0x00a99c8e, 0x00ada79d, 0x00aca8a3, 0x00a3a3a0, 0x00a1a3a0, 0x009d9a9a, 0x00bcb6b6, 0x00c7bebc, 0x00998c8b,
- 0x00bcb4a7, 0x00a6a492, 0x00a0a397, 0x00d6d7d9, 0x00bbb3ca, 0x00b4acad, 0x00aaa594, 0x0066673b, 0x00445243, 0x00586784, 0x009b9cbc, 0x00dbbcbe, 0x00c7d4d1, 0x00d7e7ec, 0x00cbd0da, 0x00d0bdc8,
- 0x00d5c3b8, 0x00a4af8b, 0x0048602d, 0x003f541a, 0x00654a20, 0x007d795a, 0x00848870, 0x008e8a77, 0x00d0c4bf, 0x00cdc6c4, 0x00bcb9b9, 0x00bac1be, 0x00c6cec5, 0x009c9f8e, 0x00696650, 0x00514a31,
- 0x005f5a37, 0x00837b63, 0x00aba191, 0x00aca19a, 0x00c4b7bc, 0x00c5b8c0, 0x009c8f98, 0x008b7d86, 0x00cfc3c6, 0x00e3d6d5, 0x00cfc3c6, 0x00cac0cb, 0x00dcd1db, 0x00e0d4da, 0x00d4c7ce, 0x00968a8e,
- 0x005c5355, 0x00797273, 0x00bebab8, 0x00e7e9e2, 0x00fcfdf9, 0x00fcfbf4, 0x00fefef8, 0x00fefdfd, 0x00f7fcfc, 0x00aca5a0, 0x00291609, 0x00422007, 0x0065320d, 0x00723810, 0x00763c11, 0x00743b12,
- 0x00723c0f, 0x00733c0e, 0x00733b0f, 0x0070390d, 0x006f390b, 0x006e3809, 0x006e380a, 0x006e3709, 0x006e3608, 0x006b3509, 0x006c390c, 0x006d3b0d, 0x00673507, 0x00693709, 0x006d3a0c, 0x00703e0f,
- 0x00764318, 0x0079461b, 0x007a471b, 0x007c481b, 0x00824e22, 0x0089572c, 0x008f5f36, 0x0092663d, 0x009c704c, 0x00a17654, 0x00a8805f, 0x00b38f6e, 0x00bb9b7d, 0x00c7a98b, 0x00d1b597, 0x00d6bb9d,
- 0x00ddc6bf, 0x00e0ccc4, 0x00e6d3cb, 0x00eadad1, 0x00eee4de, 0x00f1eae4, 0x00f5f0e9, 0x00f8f6ee, 0x00faf9f4, 0x00fdfbf5, 0x00fdfdf9, 0x00fbfcf9, 0x00fefefe, 0x00fffefe, 0x00fefdfe, 0x00fefdfc,
- 0x00fcfefd, 0x00fcfdfe, 0x00fbfdff, 0x00faffff, 0x00f9feff, 0x00fbfefe, 0x00feffff, 0x00fffcff, 0x00fffeff, 0x00fcfcfe, 0x00fdfdfe, 0x00fdfeff, 0x00fdfeff, 0x00fbfeff, 0x00fafdff, 0x00f9fcfe,
- 0x00fffdfe, 0x00fbfefd, 0x00f9fdfd, 0x00f6fdfd, 0x00f7feff, 0x00faffff, 0x00fafffd, 0x00fcfefc, 0x00dedce0, 0x008f8d8b, 0x0064625c, 0x006f7164, 0x008c92a0, 0x008e9aa5, 0x00808f93, 0x007e9188,
- 0x00858b9f, 0x005c5f98, 0x00252d86, 0x00192991, 0x001b3d90, 0x00113885, 0x000d2d80, 0x001b2c8e, 0x00201d6d, 0x000e113a, 0x00191a2e, 0x002d353c, 0x0036445e, 0x00243049, 0x00050d20, 0x00000a08,
- 0x00171b19, 0x00121310, 0x00292921, 0x00797265, 0x00cbaf98, 0x00d7ac8c, 0x00cb9670, 0x00d59b71, 0x00d19f7c, 0x00d1a88b, 0x00d7a888, 0x00dfa577, 0x00b89c85, 0x007f7267, 0x003c3430, 0x00271b12,
- 0x0070482b, 0x00a2734e, 0x00b48760, 0x00c8a78b, 0x00d7ccc5, 0x00d6d7d9, 0x00c2ccd0, 0x00bdc8cc, 0x00c1d0db, 0x00c1d2de, 0x00bed2df, 0x00b7cad9, 0x00aebbc7, 0x00a4acb6, 0x00989fa5, 0x0094989b,
- 0x008a8f97, 0x00878d95, 0x00868a92, 0x00888b92, 0x008b8e94, 0x008d8e93, 0x008c8d91, 0x00858689, 0x007a787b, 0x00757576, 0x00747571, 0x006f726c, 0x006c6f6e, 0x00626567, 0x004f5256, 0x00464850,
- 0x00434652, 0x004b5259, 0x005b6163, 0x00636e6a, 0x00757e77, 0x00927c71, 0x00915c52, 0x0084332f, 0x008c1121, 0x00810c1b, 0x006c0612, 0x00530a10, 0x0034100c, 0x002b0e0a, 0x00361412, 0x004f2727,
- 0x00403a4a, 0x002d2838, 0x002c2b38, 0x003c3f4a, 0x00555763, 0x005f626a, 0x00787c7e, 0x00b2b4b5, 0x00fcfcf9, 0x00faf9f2, 0x00fdfcf3, 0x00fefdf7, 0x00fffffc, 0x00fffefb, 0x00fefdf8, 0x00fcfbf6,
- 0x00fefcfa, 0x00fffdfb, 0x00fefdfb, 0x00fdfcfa, 0x00fffdfa, 0x00fefcf9, 0x00fffbfb, 0x00fef9f9, 0x00fffffe, 0x00fefffe, 0x00fdfcff, 0x00fcf9fc, 0x00fdfafd, 0x00faf8fb, 0x00f3f5f8, 0x00edf2f5,
- 0x00dfedf6, 0x00d4e0e9, 0x00ccd8e0, 0x00b7c2c7, 0x00acb2b5, 0x00cfd3d3, 0x00e8edea, 0x00e1e5e1, 0x00f5f5f2, 0x00fdfcf8, 0x00fcfff9, 0x00f8fff9, 0x00fcfffe, 0x00cbcfcd, 0x003a403a, 0x00141a15,
- 0x00161f16, 0x00161f17, 0x00171f17, 0x00171f15, 0x00171f15, 0x00172012, 0x00172110, 0x00172211, 0x00182515, 0x001b2616, 0x001c2618, 0x00192216, 0x001b231a, 0x001d271e, 0x00121e14, 0x00515e53,
- 0x00dfceb1, 0x00cf858d, 0x00601333, 0x0020062e, 0x00000738, 0x000c0341, 0x000f0242, 0x00070940, 0x00150547, 0x000a0846, 0x000c0747, 0x00150140, 0x00060232, 0x000e0b36, 0x002c2b5d, 0x00363675,
- 0x00272e82, 0x00182b7a, 0x000c1e64, 0x00121b4e, 0x00362848, 0x00878392, 0x00f6f3f9, 0x00eeeef6, 0x00f2f0fa, 0x00f4f1fd, 0x00fbf9fd, 0x00f8f7fc, 0x00f8f8fe, 0x00f7f7fb, 0x00f8f8fc, 0x00fafbf9,
- 0x00f6fcfe, 0x00f5fbfe, 0x00f5fcfe, 0x00f5fbfd, 0x00f5fbfd, 0x00f6fbfc, 0x00f9fcfc, 0x00f9fbfc, 0x00faf9f7, 0x00faf9f6, 0x00fcf8f8, 0x00fef5fd, 0x00fcf5fe, 0x00f6f3f7, 0x00f3f3f5, 0x00f6f8f8,
- 0x00f9f9f9, 0x00f9faf7, 0x00f6f7f3, 0x00fcfcfa, 0x00fefcfe, 0x00fdfcfc, 0x00fffdfe, 0x00fffcff, 0x00fffdfe, 0x00fffdff, 0x00fdfdfd, 0x00fcfdfd, 0x00fdfcfb, 0x00fcfdf7, 0x00fafef7, 0x00fafff4,
- 0x00fbfaf8, 0x00fbfbfb, 0x00fdfcfc, 0x00fcfcfa, 0x00fcfcfb, 0x00fdfcfd, 0x00fefefd, 0x00fcfcfc, 0x00fbfcfc, 0x00fefdfe, 0x00fdfdfc, 0x00fafcfb, 0x00fefcfc, 0x00fffcfe, 0x00fcfbfb, 0x00f9faf8,
- 0x00f6f7f4, 0x00fcfbfb, 0x00fbfbfc, 0x00f6f9f8, 0x00f5f7f8, 0x00f8f5fc, 0x00fffbff, 0x00fdfbfd, 0x00fdfbff, 0x00fcfbfe, 0x00f8f8f9, 0x00f6f6f5, 0x00f9fbfb, 0x00f5f8f6, 0x00cacec9, 0x00848983,
- 0x002d362c, 0x00162014, 0x000e190c, 0x00182315, 0x00192114, 0x00171f12, 0x00141d11, 0x00141d12, 0x00121d0f, 0x00121d0f, 0x00121a10, 0x00121811, 0x00141912, 0x006f716c, 0x00ecebe9, 0x00fffdfc,
- 0x00fcfbfa, 0x00fcfdfb, 0x00fcfdfd, 0x00d9dedd, 0x008b9292, 0x008e9b9a, 0x00bbcacb, 0x00d9e8eb, 0x00deefef, 0x00e2f4f2, 0x00e5f6f3, 0x00e5f5f1, 0x00e9f5f1, 0x00e9f3ee, 0x00e6efeb, 0x00e5eee9,
- 0x00f59e64, 0x00e67036, 0x00f17d54, 0x00d77266, 0x00907ea7, 0x0094a2d1, 0x00acc3e8, 0x00c6d2e3, 0x00e0dfe2, 0x00e0e8f1, 0x00ebeefd, 0x00f5f5fb, 0x00f6f7fb, 0x00f8f8fc, 0x00fafafe, 0x00fcfcfe,
- 0x00fefefe, 0x00fcfcfe, 0x00fdfcfc, 0x00fdfcfb, 0x00fcfcf8, 0x00fcfafb, 0x00fffafa, 0x00fefbfc, 0x00fffdfc, 0x00fffdfd, 0x00fefdfd, 0x00fbfdfb, 0x00f9fefb, 0x00fafff9, 0x00fafff5, 0x00f8fef4,
- 0x00fffdff, 0x00fdfbfb, 0x00fdfbfc, 0x00fefcff, 0x00fefafd, 0x00fcf8fb, 0x00fbf5f9, 0x00f9f1f1, 0x00f1e9e8, 0x00e6dfda, 0x00ded7d4, 0x00d3cecf, 0x00c9c4c5, 0x00bebbbd, 0x00b0afb1, 0x00a7a6a6,
- 0x00a09e9f, 0x009a9898, 0x00939390, 0x008e8f8b, 0x008a8989, 0x00868587, 0x007c7e7e, 0x00727576, 0x006e7271, 0x006d7070, 0x006f6f70, 0x006f6f70, 0x00737577, 0x00707474, 0x00868b89, 0x00c9cecc,
- 0x00fefbfb, 0x00fefcfd, 0x00fefcfd, 0x00fefcfb, 0x00f8f2f2, 0x00bcb8b9, 0x0089898c, 0x00a9adb2, 0x009095a2, 0x005e6675, 0x005a657a, 0x00515e7f, 0x004f597e, 0x004b537d, 0x0046507f, 0x00464e81,
- 0x00475084, 0x00475183, 0x00465184, 0x00464f82, 0x00454d80, 0x00414c7e, 0x003c4878, 0x00394370, 0x00353f5c, 0x002d3750, 0x00243143, 0x001e2c3c, 0x0019273b, 0x001a2a42, 0x0020314d, 0x00243656,
- 0x0034395f, 0x00333e66, 0x003a4874, 0x00344877, 0x003a5083, 0x003f5285, 0x00415381, 0x0046537e, 0x00514d74, 0x00514c6c, 0x00535074, 0x004b4e7a, 0x0049507f, 0x0047517a, 0x00465179, 0x0046507a,
- 0x0049507c, 0x0049507c, 0x00454f7b, 0x00485581, 0x00596594, 0x00515881, 0x00222a4e, 0x00091230, 0x00363d4b, 0x006c7379, 0x00909592, 0x009da093, 0x008a8b77, 0x00807f6b, 0x006c6857, 0x00716d5a,
- 0x00aea792, 0x00e0d9c1, 0x00ebe5cd, 0x00e6e1ca, 0x00ebe4d2, 0x00e7e0d1, 0x00bfb8a8, 0x00b9b19f, 0x00b4ad96, 0x00cac1ab, 0x00fdf9e7, 0x00e7e5d8, 0x00b0ac9f, 0x00a8a29b, 0x00cbc6c1, 0x00e6e5dd,
- 0x00f3ecea, 0x00f7f0eb, 0x00f4ede4, 0x00f9f3e8, 0x00e7e0d3, 0x00d1cfca, 0x00c5c5c6, 0x00b7b8b7, 0x00c1c1c0, 0x00c5c7c6, 0x00bec0bf, 0x00bcbfbd, 0x00bfc0c0, 0x00c1c0c3, 0x00c0bfc4, 0x00d1d0d8,
- 0x00f8eaee, 0x00ede2e4, 0x00f5eeea, 0x00f3f3e6, 0x00f6fbe9, 0x00f3f9e6, 0x00fafdf0, 0x00fefff4, 0x00fcfcf6, 0x00f9f9f6, 0x00faf7fa, 0x00f7efff, 0x00f2eef0, 0x00e4e5e6, 0x00c8cbcb, 0x00adb5bb,
- 0x00b5c0dc, 0x00b4c1e7, 0x00b0c1eb, 0x008fa6d1, 0x00617ca2, 0x007993a9, 0x00738c97, 0x005c7581, 0x00425b67, 0x00354e59, 0x00324c57, 0x003d5760, 0x00536b74, 0x006b848b, 0x0095b0b6, 0x00b5d1d5,
- 0x00b2aea8, 0x001b1712, 0x001f1e18, 0x001b1b15, 0x0015110e, 0x000d0a05, 0x000f0f08, 0x0015160f, 0x001f1b17, 0x001c1a14, 0x0012170b, 0x000a1306, 0x000e130c, 0x00161814, 0x001c1b19, 0x001f191a,
- 0x001a1514, 0x00100b0f, 0x00121010, 0x00101010, 0x002a2d2d, 0x004c5f84, 0x007593be, 0x0092acc6, 0x00b1babd, 0x00bec3c1, 0x00bec2bb, 0x00bbc0bc, 0x00a9b1c6, 0x00959fc1, 0x008496bf, 0x00758db8,
- 0x00728dcc, 0x00738dcf, 0x00728cd3, 0x006c87d3, 0x006a83d4, 0x006983d5, 0x006682d1, 0x006580ce, 0x00667ecd, 0x00627bc7, 0x005776bf, 0x004a74b9, 0x004c70ad, 0x005973ab, 0x006d81ac, 0x006a7a99,
- 0x00444c5a, 0x0030343b, 0x002c2829, 0x00282421, 0x00221912, 0x0015140f, 0x000f110c, 0x000a0e09, 0x00100f0e, 0x0011110e, 0x0011130f, 0x000d100b, 0x000d0c09, 0x000e0d0a, 0x000c0e0a, 0x000c0e0b,
- 0x00100909, 0x004d3522, 0x0090694a, 0x00946138, 0x007b583b, 0x005e5750, 0x00617181, 0x005478ac, 0x003c6fbe, 0x00376cc0, 0x003c66ae, 0x0047598f, 0x00355ba5, 0x002d5fad, 0x0029609e, 0x00386093,
- 0x0061676a, 0x0094897d, 0x00c5b8a4, 0x00a8a692, 0x00849490, 0x005a7493, 0x002b4b7a, 0x002e4e81, 0x00284889, 0x00294c8d, 0x00264b8e, 0x00264c90, 0x002b4f94, 0x002e4d94, 0x002e4b93, 0x002f4993,
- 0x00324a89, 0x00314a8a, 0x00325190, 0x0048689c, 0x00415779, 0x001c2a39, 0x00040c0c, 0x000d0d05, 0x00110d08, 0x00090704, 0x000e0d0c, 0x000b0c08, 0x000e0f07, 0x00101109, 0x00090a05, 0x003b3d38,
- 0x00d1cfcf, 0x00fcfafa, 0x00fcfcfa, 0x00fbfefa, 0x00fffdff, 0x00f2f1f5, 0x00c1c1c6, 0x00a0a1a5, 0x00857e88, 0x00786e79, 0x007d747b, 0x00736d72, 0x00908a92, 0x00bdbac1, 0x00d4d4d9, 0x00dadbe0,
- 0x00d2cfd5, 0x00c2c0c5, 0x00d2d1d1, 0x00c9c9c6, 0x00aaaaa7, 0x00adada9, 0x00b6b7b2, 0x0090918e, 0x00807d81, 0x009e9aa1, 0x00c8c3c9, 0x00b4adb0, 0x00827978, 0x007e7473, 0x007f7775, 0x00615b56,
- 0x00554b47, 0x005c5251, 0x007c7375, 0x009b9193, 0x00b5acb3, 0x00c2bdae, 0x00cdccae, 0x009e9e79, 0x00515023, 0x00565721, 0x0052571d, 0x00494d18, 0x0055553e, 0x00787373, 0x006b6673, 0x00413958,
- 0x00816771, 0x0098838f, 0x00b5a9b3, 0x00cccbd5, 0x00a6aeb9, 0x0093a0a6, 0x00b4c0c0, 0x00b1b8b6, 0x00b1a8a6, 0x00c0b4b0, 0x00b2a299, 0x00ab998c, 0x00ab9995, 0x009e8f91, 0x00b6a9b1, 0x00c7bcc9,
- 0x00a09eaa, 0x00848289, 0x00969a9a, 0x00a8ada5, 0x00b0b7aa, 0x00b7b2a5, 0x00b7aca3, 0x00b4aaa2, 0x00b6a8a8, 0x00b2a5a8, 0x00a8a2a1, 0x00a4a39d, 0x009c9b96, 0x00afb0ab, 0x00c5c9c3, 0x00bbbeba,
- 0x00c4cfa7, 0x009aa090, 0x009f9fa0, 0x00d9cfe3, 0x00c9bbc6, 0x00cac2b5, 0x00afb194, 0x00565f3d, 0x004d5d58, 0x0046576a, 0x00748292, 0x00c3c4bc, 0x00e1e1e2, 0x00e0dfe1, 0x00cdc9ce, 0x00d4ced0,
- 0x00e0ded5, 0x00babaa9, 0x005c5f40, 0x00424518, 0x00485017, 0x00595c55, 0x00545869, 0x00858a9c, 0x00d4d0e3, 0x00d7d6e4, 0x00b3b3b6, 0x00bbbfb9, 0x00dfe2d2, 0x00abae97, 0x0046492d, 0x00353919,
- 0x00635748, 0x00968887, 0x009e8d96, 0x009d8d98, 0x00b8abac, 0x00b7af99, 0x006e6a45, 0x006d6941, 0x00c5c1aa, 0x00cac2ba, 0x00beb5b2, 0x00cbc3be, 0x00d8cec8, 0x00d2c7be, 0x00a0938a, 0x005e5045,
- 0x00251a0f, 0x00342922, 0x006d6461, 0x00c0bdbc, 0x00fefcff, 0x00fcfaf9, 0x00fbfbf9, 0x00fcf7fc, 0x00fff9f7, 0x00b4a39d, 0x002a1607, 0x003b2007, 0x00583510, 0x00643a11, 0x006a3d0f, 0x006d3c0f,
- 0x00663a07, 0x00693b0a, 0x006c3c0f, 0x006c3d13, 0x006c4017, 0x00684018, 0x0068441c, 0x006c4922, 0x00755032, 0x00755337, 0x00765837, 0x00795e38, 0x00826645, 0x008a6f54, 0x00947a64, 0x00967e6f,
- 0x009f8d7e, 0x00a79686, 0x00b1a491, 0x00bbb09c, 0x00c5b8a7, 0x00c8c1b0, 0x00cdcbbd, 0x00d7d4c9, 0x00ebe2e1, 0x00f3ebef, 0x00f6f0f4, 0x00f5f2f3, 0x00f8f6f6, 0x00fafaf4, 0x00fcfdf3, 0x00fcfef5,
- 0x00fcfdfc, 0x00fefdfe, 0x00fdfefe, 0x00fafefb, 0x00fafefe, 0x00f7fefa, 0x00f7fffb, 0x00fafffe, 0x00fffcff, 0x00fefbfe, 0x00fdfefe, 0x00fafdfb, 0x00fefdfe, 0x00fffefe, 0x00fdfcfc, 0x00fcf7f6,
- 0x00fdfefb, 0x00fdfdfb, 0x00fcfcfc, 0x00fbfcfd, 0x00fdfdff, 0x00fcfefb, 0x00fafdf6, 0x00fbfbf6, 0x00fffefc, 0x00fffbf8, 0x00fdfcf8, 0x00fcfdf9, 0x00fffefd, 0x00feffff, 0x00fbfdfe, 0x00fcfbfd,
- 0x00fafafd, 0x00fafbfb, 0x00fcfcfd, 0x00fbfcfc, 0x00fffdff, 0x00fcfbfb, 0x00fdfffd, 0x00fdfdfb, 0x00e0dee0, 0x00969697, 0x006d6b6a, 0x00706e67, 0x008c8b89, 0x009c9a99, 0x009d9ca0, 0x00999ba3,
- 0x009a9db0, 0x008b8ead, 0x0041486f, 0x00212659, 0x00242a63, 0x00232c7f, 0x00122380, 0x0016277e, 0x00152179, 0x0011206a, 0x0021306d, 0x00223161, 0x001f2547, 0x0017142b, 0x00090513, 0x000e0710,
- 0x00141212, 0x00130a08, 0x003f3027, 0x00998374, 0x00c39e86, 0x00b78d6d, 0x00c49572, 0x00d9a380, 0x00dea583, 0x00dba282, 0x00d7a27f, 0x00caa175, 0x00c2916a, 0x00ad7f58, 0x00895b35, 0x00623510,
- 0x006b472d, 0x00967c68, 0x00bdaca4, 0x00d0cdc9, 0x00d5d7de, 0x00c9d5dd, 0x00c3cfd9, 0x00bdc8cf, 0x00bec6d5, 0x00bbc2d0, 0x00a7b1bb, 0x0097a1a9, 0x008c9499, 0x00899095, 0x008f949a, 0x0094969f,
- 0x009ba3b0, 0x00a5acb8, 0x00b1b8c2, 0x00b4bcc4, 0x00b3b9bf, 0x00a9b0b2, 0x009ea7a4, 0x008e968f, 0x00818280, 0x007d7e7b, 0x007b7d79, 0x00767978, 0x0077787d, 0x00727377, 0x00626466, 0x0058585f,
- 0x0055555b, 0x005a5864, 0x0063636d, 0x006f7176, 0x00808085, 0x00877d78, 0x007e4b45, 0x00981821, 0x0091110d, 0x0075160a, 0x005e0e06, 0x005d0006, 0x005c020d, 0x00560306, 0x006b0f07, 0x00a1261b,
- 0x005d3e50, 0x00331d2e, 0x002c2634, 0x00404653, 0x00525a69, 0x005e6471, 0x008d8c95, 0x00d4cdd4, 0x00fffbfd, 0x00fefbfb, 0x00fcfcf9, 0x00f8fbf7, 0x00f3f6f5, 0x00dcdede, 0x00c3c5c3, 0x00dde1dd,
- 0x00f1f3f0, 0x00f6f8f6, 0x00f9fbfa, 0x00fbfefe, 0x00fbfdfc, 0x00f8faf3, 0x00fafcf2, 0x00fcfdf5, 0x00fffaf9, 0x00fefaf8, 0x00fcfbf8, 0x00fcfcfa, 0x00fdfcfd, 0x00fefcff, 0x00fcf9fc, 0x00fefcfc,
- 0x00fdfcff, 0x00fdfbff, 0x00f5f4fb, 0x00edecf1, 0x00e8e5e9, 0x00e4e2e5, 0x00e2e3e4, 0x00e0e2e3, 0x00eae6ec, 0x00f0edf2, 0x00f0f5f3, 0x00ecf8f2, 0x00f8fffe, 0x00d9e0df, 0x0058615b, 0x000d160e,
- 0x00121c13, 0x00131c15, 0x00131b12, 0x00131b10, 0x00161e13, 0x00161e13, 0x00151e12, 0x00161f15, 0x00171e15, 0x00161d14, 0x00141e0f, 0x00142010, 0x00131d12, 0x001e281d, 0x000d180b, 0x00474f44,
- 0x00d8caba, 0x00ce98a5, 0x005d1833, 0x003a0020, 0x0015053c, 0x00050b40, 0x00000b43, 0x00000344, 0x00190048, 0x00220045, 0x001b0040, 0x0007013b, 0x0006013d, 0x00111453, 0x00343c7b, 0x00293672,
- 0x001f2d6c, 0x0015245e, 0x00061749, 0x000b1445, 0x0037406d, 0x00989eb5, 0x00e7ecf3, 0x00ecf3f5, 0x00f1f3f4, 0x00f5f7fc, 0x00f8fbfc, 0x00faf9fc, 0x00faf9fd, 0x00f8f6fb, 0x00f8f8f4, 0x00fdfcf1,
- 0x00fcf9f7, 0x00fefbfa, 0x00fbf9f8, 0x00f9f7f7, 0x00fcfafc, 0x00fbfbfb, 0x00f8f9f9, 0x00f6f8fd, 0x00fcf8ff, 0x00faf7fe, 0x00f7f7fc, 0x00f6f8f9, 0x00f9faff, 0x00f9fbff, 0x00f8fafa, 0x00fafafa,
- 0x00f7f9f9, 0x00f5f7f8, 0x00f2f5f5, 0x00f4f9fa, 0x00f9fcfb, 0x00f9fdf3, 0x00fafff1, 0x00fcfdf5, 0x00fefafe, 0x00fffcff, 0x00fbfbfd, 0x00fbfcfc, 0x00fcfbfa, 0x00fcfcf4, 0x00f9fef1, 0x00f9ffef,
- 0x00fbfcfb, 0x00f9fafa, 0x00fbfcf5, 0x00fbfdf0, 0x00fcfbf4, 0x00faf8f5, 0x00fcf8fa, 0x00fdf8ff, 0x00fefbfe, 0x00fffcf8, 0x00f1faf4, 0x00dbf4fa, 0x00dfedfe, 0x00eaf0ff, 0x00f2f4fb, 0x00f7f3fc,
- 0x00fbf4f1, 0x00fef9f0, 0x00fcfcf2, 0x00f7fdfa, 0x00f3f9fc, 0x00f2f5f6, 0x00f9f9f8, 0x00fbfcfb, 0x00fefcfe, 0x00fbfbfc, 0x00fafbfa, 0x00f7f8f7, 0x00fafafb, 0x00fefefe, 0x00fdfdfb, 0x00f6f7f5,
- 0x00a8b0a6, 0x005f675c, 0x001b251a, 0x00121d13, 0x00192118, 0x001a2219, 0x00111c11, 0x00131e11, 0x00141d15, 0x0011180f, 0x00121711, 0x00111413, 0x00111010, 0x00545353, 0x00dededf, 0x00f9f7f8,
- 0x00fbf8fc, 0x00fbfafc, 0x00fffeff, 0x00e5e7e7, 0x009d9d9d, 0x00878b8b, 0x00bcbfc2, 0x00dedee5, 0x00edecf6, 0x00f2f4fc, 0x00ebeff4, 0x00eaeff1, 0x00ebeff2, 0x00ebeef3, 0x00ebeef3, 0x00ebeef2,
- 0x00e2d7cb, 0x00e6d7ce, 0x00e8e1d8, 0x00efede5, 0x00fbf7f5, 0x00f8f8f4, 0x00fafaf6, 0x00fdfdf8, 0x00fffbfa, 0x00fffcf6, 0x00fafcfb, 0x00f5fdf8, 0x00f9f9fb, 0x00fdf8fa, 0x00fefbfb, 0x00fefefd,
- 0x00fbfdf5, 0x00fcfaf6, 0x00fcf9f2, 0x00fffcf6, 0x00fefcf5, 0x00fcf9f7, 0x00fdfcfa, 0x00fdfdfc, 0x00fffcff, 0x00fefdff, 0x00fdfcfd, 0x00fbfefa, 0x00f9fefb, 0x00fafdfb, 0x00f8faf4, 0x00f5faf4,
- 0x00f0f4ee, 0x00e8e9e4, 0x00dfe0d8, 0x00daddd5, 0x00d2d4d0, 0x00c8ccc7, 0x00c1c6be, 0x00b8bbb3, 0x00acaea8, 0x009fa39d, 0x00939894, 0x0089918f, 0x00878b8a, 0x00868a87, 0x00898b89, 0x008c8d8c,
- 0x008b8b87, 0x008d8c89, 0x008d8e89, 0x008b8b85, 0x008a8683, 0x0086837f, 0x00797a74, 0x0070736d, 0x006f7071, 0x006d6f71, 0x00686f6e, 0x00666f6e, 0x00687174, 0x006a7477, 0x00798485, 0x00b5bfc2,
- 0x00f8f8fa, 0x00fffeff, 0x00fcfcfc, 0x00fbfefa, 0x00faf9f4, 0x00c0c4be, 0x00858f89, 0x00a9b3b0, 0x009da8b9, 0x00626f86, 0x004e5c78, 0x0049577d, 0x004a547a, 0x004b537d, 0x0047527b, 0x0049527c,
- 0x0048507e, 0x0048527d, 0x0047527e, 0x0046517f, 0x0046507f, 0x00424e7a, 0x003c4974, 0x003b456f, 0x00364068, 0x002f3a5e, 0x0026324f, 0x001e2c44, 0x0019273e, 0x0017263a, 0x001e2d3f, 0x00243347,
- 0x00313953, 0x00353e5d, 0x003b4466, 0x0041496f, 0x00454d79, 0x00484d7d, 0x00474e7d, 0x00484d7a, 0x004e4b80, 0x004e4b80, 0x004b4d7e, 0x00454d79, 0x00464e7a, 0x00454f7a, 0x00455178, 0x00465276,
- 0x00445474, 0x00485779, 0x00465a76, 0x00495f78, 0x00546983, 0x005e6d85, 0x003c4962, 0x00192541, 0x0047496f, 0x00404265, 0x00464866, 0x00858699, 0x009e9da1, 0x008a887f, 0x00878673, 0x007a7a5e,
- 0x00747868, 0x00979a8a, 0x00d3d8c5, 0x00e0e5d1, 0x00e4e6d5, 0x00e5e9d6, 0x00c6cbb8, 0x00a5a698, 0x00b2afa7, 0x00dad3d1, 0x00ebe8e2, 0x00c6c6be, 0x00bbb8af, 0x00ddd8d1, 0x00eee9df, 0x00f2f0e6,
- 0x00f5f3e2, 0x00f3f1df, 0x00efecd9, 0x00e6e4d2, 0x00cec9b4, 0x00c5c5ae, 0x00c9c9b4, 0x00c2c1af, 0x00c7c0c3, 0x00c9c4cb, 0x00bdb9c2, 0x00bcbac2, 0x00c3c1c9, 0x00c6c7c7, 0x00c9ccc5, 0x00d9ded5,
- 0x00f1f3ec, 0x00dbdbd7, 0x00e9e8e4, 0x00f6f5f2, 0x00f6f6f2, 0x00f6f7f4, 0x00f5f6f3, 0x00fbfcf8, 0x00fffcfd, 0x00fffcff, 0x00fbf8f7, 0x00f9f6e6, 0x00f4f1ee, 0x00ebede6, 0x00dee0e0, 0x00d2d8dd,
- 0x00b6c4d5, 0x00b1c0d9, 0x00b7c9e4, 0x00aac0df, 0x00778dad, 0x00768699, 0x00838d98, 0x00717a86, 0x006f7580, 0x00828993, 0x00909aa0, 0x00acb5b7, 0x00dcdfe2, 0x00f4f6f7, 0x00fafefc, 0x00fbfffe,
- 0x00adafa5, 0x0016190f, 0x001b1d15, 0x00191912, 0x0011120d, 0x000d0d08, 0x00181411, 0x001e1a17, 0x00191f12, 0x0015190d, 0x0010140c, 0x000b140b, 0x0011140d, 0x00181812, 0x001e1a1a, 0x001f1b1c,
- 0x0010140c, 0x000b100d, 0x000e0e15, 0x0011141f, 0x003f4452, 0x00596b97, 0x006a7db2, 0x008f9bbf, 0x00a9b8b2, 0x00bec5b8, 0x00dbd8d2, 0x00d8d5d5, 0x00c5c6d8, 0x00b7bedc, 0x00a8b3db, 0x0093a0cd,
- 0x007391c6, 0x007490ca, 0x00718acb, 0x006c83c9, 0x00667ec8, 0x006b83d0, 0x006b83cf, 0x00667ec8, 0x005a78b6, 0x005572ae, 0x00506fb3, 0x00486dbb, 0x004667ad, 0x004b67a0, 0x006779af, 0x007786ad,
- 0x0063737f, 0x003e484c, 0x00232425, 0x0024231e, 0x00221911, 0x00171310, 0x00130f10, 0x00110e0d, 0x000a0d08, 0x000d0f09, 0x00121210, 0x00100f0e, 0x000e0d0b, 0x000e0d0c, 0x000f0f0f, 0x000f100d,
- 0x00090c01, 0x00392912, 0x00856043, 0x00936038, 0x00764d2e, 0x0046352f, 0x00575e73, 0x005f7cac, 0x004174b0, 0x00376aab, 0x003f64ab, 0x00465995, 0x00325ba9, 0x00295daa, 0x002a5ca4, 0x003f6198,
- 0x006d7575, 0x00a19487, 0x00bcaa90, 0x00a3977a, 0x00858c7a, 0x006b7d96, 0x004b6292, 0x00334e7e, 0x00264a7a, 0x0024477a, 0x002c4e87, 0x002e4f8c, 0x00304f8e, 0x00334d8d, 0x00354d8d, 0x00364c8c,
- 0x002b4a85, 0x002a4a81, 0x003c5792, 0x00496491, 0x0033425a, 0x00101820, 0x000e0b0e, 0x00170e09, 0x000a0b02, 0x00050903, 0x000a0d0a, 0x000a0c05, 0x000f1009, 0x000f110b, 0x000a0b07, 0x00403d3a,
- 0x00cbcec8, 0x00f8fbf6, 0x00fefefe, 0x00fdfdfd, 0x00ffffff, 0x00f0f1f6, 0x00c7c6d0, 0x00b1adb7, 0x00918d92, 0x0078747a, 0x00766d75, 0x00736872, 0x0089828a, 0x00afadb3, 0x00cccbd3, 0x00bfbfc7,
- 0x00b7b9b8, 0x00b8bab5, 0x00d0d0ce, 0x00cdcdca, 0x00b5b5ad, 0x00b7b6af, 0x00b6b3b1, 0x008f8b8a, 0x007b7e79, 0x00989c98, 0x00c3c0c1, 0x00bab1b6, 0x008d8586, 0x00827c7b, 0x00938b88, 0x007d736e,
- 0x00545045, 0x0056544b, 0x00797374, 0x00a2999c, 0x00ada5ac, 0x00ada8a7, 0x00c9c4bf, 0x00adaa97, 0x00535b2a, 0x0050591d, 0x0053591f, 0x004b501a, 0x00525436, 0x00797770, 0x0085808c, 0x00423951,
- 0x00694945, 0x009f8482, 0x00ceb8bc, 0x00cdbfc5, 0x00b2b2b6, 0x00b6b9b9, 0x00c3c3c0, 0x009f9d98, 0x009c9785, 0x00bcb19d, 0x00ac9689, 0x00a98b80, 0x009a7f7b, 0x00937f7e, 0x00beacb5, 0x00c8b8c5,
- 0x00a5a5a5, 0x008a8a85, 0x00888583, 0x009e9993, 0x00b8b1a6, 0x00bfb7ae, 0x00b8aba6, 0x00bbafac, 0x00b1aea5, 0x00aaa79f, 0x00b4adaa, 0x00b7b1ae, 0x00b4b3ae, 0x00bfc0bb, 0x00c8c7c4, 0x00cfcfcc,
- 0x00b5c599, 0x0087907b, 0x009a989b, 0x00d5cbdf, 0x00cabec7, 0x00d3cdc0, 0x00adae95, 0x00575c3f, 0x00485f53, 0x003d545c, 0x00677584, 0x00bcbbbc, 0x00d7d5d9, 0x00d9d7dc, 0x00e6e3eb, 0x00dbd5dd,
- 0x00d2d2c9, 0x00adb09d, 0x0055593f, 0x00424520, 0x00434b1d, 0x00393d37, 0x00464758, 0x00868999, 0x00c6cbd2, 0x00d1d5da, 0x00b7b9bc, 0x00bdbfbd, 0x00dfe0d3, 0x00acac98, 0x0046472c, 0x00353516,
- 0x00585847, 0x00787770, 0x009a9197, 0x00b5aab7, 0x00bcb7b3, 0x00a3a08b, 0x00676246, 0x00696646, 0x009c9e83, 0x0099988b, 0x00aba6a4, 0x00c4bebd, 0x00d4cdc7, 0x00b9b0aa, 0x005b5048, 0x0040362b,
- 0x002d2a16, 0x00222011, 0x00383531, 0x009b9a9b, 0x00fbfcfd, 0x00fcfdfb, 0x00fefcfd, 0x00fffdff, 0x00f5f8ea, 0x00a59e8d, 0x00241103, 0x003b200e, 0x0058381d, 0x00664324, 0x0072492b, 0x007c4e2b,
- 0x006c4e25, 0x0072532c, 0x0082623f, 0x008b6c4c, 0x00937457, 0x00997b5f, 0x00a2866c, 0x00ab8f78, 0x00ac9c7d, 0x00b3a58a, 0x00c1ae96, 0x00ccbba1, 0x00d7c3ad, 0x00dccdbb, 0x00ead8cc, 0x00edddd7,
- 0x00e9e4d6, 0x00ede9de, 0x00f5f0e7, 0x00f6f2e7, 0x00f9f6e8, 0x00f8f5e8, 0x00fcf8f0, 0x00fef9f4, 0x00f9fbf6, 0x00fbfdfa, 0x00fcfcfe, 0x00fdfcfe, 0x00fefcfd, 0x00fffefb, 0x00fffdf9, 0x00fffdf7,
- 0x00fafdf6, 0x00fafef6, 0x00fafbf8, 0x00f8fcfa, 0x00f8fcfa, 0x00f8fdfd, 0x00fbfcfe, 0x00fcfbfd, 0x00f5fcf6, 0x00f8fbf7, 0x00fefbfd, 0x00fdfdff, 0x00fdfdfc, 0x00fcfbfb, 0x00fefbfd, 0x00fffbfd,
- 0x00fafcf2, 0x00f9fef7, 0x00fdfdfd, 0x00fefcfd, 0x00fdfbfb, 0x00fdfdfa, 0x00fffdfb, 0x00fefcfb, 0x00f7fdf1, 0x00f8fdf5, 0x00fcfdfb, 0x00fefdfc, 0x00fefbfb, 0x00faf5f7, 0x00f5edf2, 0x00f2ebf1,
- 0x00e4e5e5, 0x00d3d3d3, 0x00dddedd, 0x00f9f9f9, 0x00fefefe, 0x00fdfcfc, 0x00fffefe, 0x00fffeff, 0x00dbdeda, 0x00949795, 0x00706f6d, 0x00726f6d, 0x007f7c7b, 0x00908d8f, 0x00a4a2a7, 0x00aeadb7,
- 0x00a3b0b9, 0x00a5aec4, 0x006f7598, 0x00333866, 0x00181d52, 0x00191f63, 0x001d2670, 0x001a256f, 0x00172a63, 0x00192b60, 0x000f1e4f, 0x00061037, 0x00080e24, 0x00060712, 0x0008030b, 0x00140d11,
- 0x000c110a, 0x00060400, 0x00392c24, 0x007f6a5c, 0x0096755e, 0x00a47d5e, 0x00c19272, 0x00d6a180, 0x00d4a279, 0x00cd9871, 0x00c8926f, 0x00c4936b, 0x00bf8d68, 0x00b4865f, 0x00a57753, 0x008d6444,
- 0x006e5738, 0x009c8b76, 0x00ccc0b9, 0x00d8d9d5, 0x00ced4d9, 0x00cad5de, 0x00ccd5e5, 0x00c0c8d9, 0x00b2bfc6, 0x00a7b3bb, 0x0099a4ae, 0x0099a2ac, 0x009ca4ac, 0x00a7adb4, 0x00b8bcc4, 0x00bec1c9,
- 0x00bbc4c7, 0x00bbc6cb, 0x00bfc8cf, 0x00b7bfc6, 0x00aab3b8, 0x009ea5a7, 0x00888d8d, 0x00757b7a, 0x00717974, 0x00757d76, 0x007a7f7d, 0x007d7f82, 0x007c7f82, 0x0078797c, 0x006d6c70, 0x00636165,
- 0x00565b5a, 0x00575b5f, 0x0066686f, 0x0071747b, 0x007e8184, 0x008d7a75, 0x00844647, 0x00961421, 0x00810d00, 0x00631000, 0x00570d02, 0x00590106, 0x005a0008, 0x00580501, 0x0078130e, 0x00a72a21,
- 0x00533a46, 0x00291c27, 0x002c2636, 0x003f4455, 0x00515968, 0x005f636f, 0x009f9aa6, 0x00e5dce7, 0x00f9fbf7, 0x00f7fcf3, 0x00fbfdf8, 0x00fbfefd, 0x00e2e2e3, 0x00898c8b, 0x004a4e4e, 0x006c7070,
- 0x00929c93, 0x00a9b2ab, 0x00cfd4d1, 0x00e1e5e5, 0x00f1f7f5, 0x00f9faf7, 0x00fffdfb, 0x00fffffd, 0x00f7f9f3, 0x00f7f8f6, 0x00f9fafb, 0x00fafbfc, 0x00faf9fc, 0x00fafafe, 0x00fcfbff, 0x00fdfcff,
- 0x00f9fbf8, 0x00fafcf9, 0x00fefdff, 0x00fdfbfe, 0x00fafbfa, 0x00f9f9f9, 0x00f7f4f7, 0x00f2f0f2, 0x00e4e8e2, 0x00e1e5e2, 0x00e6eaea, 0x00e9edee, 0x00ebf0ee, 0x00d9dfdb, 0x00787e7a, 0x00232826,
- 0x00061305, 0x00081507, 0x000f1810, 0x00131913, 0x0015190f, 0x00161c12, 0x00171c16, 0x00171b14, 0x00101a0d, 0x00101a0c, 0x00121b10, 0x00161e13, 0x00131a0f, 0x00192013, 0x000c1209, 0x003e4439,
- 0x00c1c5ae, 0x00caa7a6, 0x00582038, 0x00370123, 0x00140739, 0x0004093c, 0x00030b4a, 0x0002054a, 0x000f003f, 0x0012013d, 0x00140043, 0x0006003d, 0x000a0745, 0x001e2060, 0x00353a7c, 0x00293273,
- 0x0016285f, 0x000a1b4e, 0x00071445, 0x000c1747, 0x00424b77, 0x00a2a6be, 0x00ebedf9, 0x00ecf0f5, 0x00e8efe7, 0x00f1f9f4, 0x00f9fcfc, 0x00fbf9fd, 0x00f9f9fe, 0x00f7f7fa, 0x00f9f9f6, 0x00fbfcf3,
- 0x00f7f9f4, 0x00fafbf8, 0x00fcf8fb, 0x00fcf6fc, 0x00fbf9fe, 0x00fcfafd, 0x00fef9ff, 0x00fffaff, 0x00f4f7f8, 0x00f3f4f6, 0x00f8f5fb, 0x00fafafe, 0x00f9fafa, 0x00f7f9fa, 0x00fcfafb, 0x00fffbff,
- 0x00f4faf3, 0x00f4f8f4, 0x00f4f6f6, 0x00f5f8f9, 0x00f8fcfc, 0x00f9fbfa, 0x00fcfafb, 0x00fefbfe, 0x00f6f8f6, 0x00f8f7f9, 0x00fbf8fd, 0x00fefdfe, 0x00fcfbff, 0x00fbfbfa, 0x00fcfcfc, 0x00fffdfa,
- 0x00f6fef6, 0x00f3fcf4, 0x00fafaf9, 0x00fdfaf3, 0x00fbfcf7, 0x00fcf8f6, 0x00fff9ff, 0x00fef7ff, 0x00f4fbf5, 0x00effaf4, 0x00e1edf2, 0x00bad3f7, 0x00bbcaf4, 0x00c8cef7, 0x00dbdcfa, 0x00f0e9ff,
- 0x00f4f4ea, 0x00f7f9eb, 0x00fffdf4, 0x00fcfcf7, 0x00f4f9fd, 0x00f2f5f7, 0x00faf7fc, 0x00fdfbff, 0x00f9f9f9, 0x00f8f8f8, 0x00fcfcfc, 0x00f9f9f9, 0x00f9f9f9, 0x00fcfcfc, 0x00fdfdfd, 0x00f9f9f9,
- 0x00e9f4e7, 0x00c4ccc0, 0x00686f67, 0x00262e27, 0x00121a11, 0x00161f15, 0x00161e17, 0x00191f17, 0x00091609, 0x00061205, 0x000d130c, 0x000b0c0c, 0x00060506, 0x00403e3f, 0x00d0ccce, 0x00fdfbfc,
- 0x00fcfef9, 0x00f9fdf7, 0x00fefefd, 0x00edecec, 0x00aeb0ae, 0x009d9ea0, 0x00cbcad0, 0x00e5e6ec, 0x00eaf0ef, 0x00edf4f3, 0x00edf1f6, 0x00f2f4fb, 0x00f4f5fb, 0x00f4f4f9, 0x00f6f6fc, 0x00f5f7fb,
- 0x00f8f7e7, 0x00f7f8e9, 0x00fdf9f1, 0x00fdfaf6, 0x00fbfdfc, 0x00fcffff, 0x00fffefe, 0x00fffefc, 0x00f7fbf4, 0x00f7f9f1, 0x00fcfdfa, 0x00fbfcff, 0x00fdfefe, 0x00fafcfe, 0x00fcfdff, 0x00fbfafb,
- 0x00f3fcf6, 0x00f3fbf3, 0x00f9fcf9, 0x00fcfdfa, 0x00fbfbfb, 0x00fbfdfd, 0x00fcfeff, 0x00fcfeff, 0x00f3fdf7, 0x00f3fbf7, 0x00eff5f5, 0x00eef3f3, 0x00e8edea, 0x00dfe3e0, 0x00d6d7d6, 0x00d0cfcf,
- 0x00b7beb5, 0x00a8ada5, 0x009b9e98, 0x00969993, 0x00949691, 0x00939590, 0x0092958f, 0x0090958e, 0x008b8f87, 0x00858d84, 0x00868c87, 0x0086898a, 0x00828785, 0x00828785, 0x00888989, 0x008b8c8c,
- 0x00838781, 0x00868782, 0x008a8a86, 0x00898985, 0x00868480, 0x0082817c, 0x00797976, 0x00707071, 0x00646b63, 0x00606760, 0x00606762, 0x00606765, 0x00676f70, 0x00686f74, 0x00727a80, 0x00a5adb4,
- 0x00eef5f4, 0x00f7fefa, 0x00f9fbfb, 0x00fdfdfc, 0x00fcfcf6, 0x00d0d2cb, 0x008e9391, 0x00a6aab1, 0x009eb0b8, 0x00697e8a, 0x004a5872, 0x0049557d, 0x004a527d, 0x0047517b, 0x004b527f, 0x00495380,
- 0x00455079, 0x00465179, 0x0047517e, 0x00485180, 0x00475082, 0x00454e7c, 0x00414a76, 0x003d4670, 0x00313f61, 0x00293856, 0x00253150, 0x00212c4b, 0x0018263f, 0x0018263d, 0x00212c43, 0x00263247,
- 0x0029384c, 0x00303d56, 0x00394464, 0x003f476e, 0x00454a77, 0x00494d7d, 0x004c4e81, 0x004b4c80, 0x00454b76, 0x00464d79, 0x00484f7c, 0x00464f7b, 0x0048517c, 0x00474f79, 0x004b537c, 0x004b567d,
- 0x00455a75, 0x00475b75, 0x004b5f79, 0x004d627c, 0x00566983, 0x00606f89, 0x0058637f, 0x00353e5d, 0x00485372, 0x003d4665, 0x00181d3b, 0x00484b62, 0x009698a3, 0x00a4a5a6, 0x00999992, 0x00909081,
- 0x00777f6a, 0x006d745f, 0x009b9c89, 0x00d4d4c1, 0x00e6e8d3, 0x00e5e6d3, 0x00d8d5c7, 0x00bbb7aa, 0x00b2b4a5, 0x00d5d6ca, 0x00e7e4dc, 0x00c8c3b9, 0x00d6d3c8, 0x00f3efe5, 0x00faf3ea, 0x00fcf5ea,
- 0x00eaead5, 0x00e4e4d1, 0x00e6e5d2, 0x00d3d2bd, 0x00c0bdab, 0x00c8c5b1, 0x00d5d2bf, 0x00d0ccbf, 0x00c6c6c1, 0x00c3c3c2, 0x00bebbc1, 0x00c1bfc7, 0x00c5c6cb, 0x00c9c9c9, 0x00d7d5d2, 0x00edece6,
- 0x00e6eae0, 0x00cdd0c7, 0x00e3e4df, 0x00f8f8f4, 0x00f6f6f2, 0x00f6f6f3, 0x00fdfcfc, 0x00fcfcfc, 0x00f7fcf6, 0x00f8fcfa, 0x00fbfaf9, 0x00fcfaf0, 0x00f9f7f2, 0x00f1f0eb, 0x00e5e3e7, 0x00dcdee5,
- 0x00bbccd2, 0x00afbeca, 0x00b1c0d7, 0x00afc0da, 0x0093a3c1, 0x008f9caf, 0x00a4acbb, 0x00abb1bf, 0x00bac5c9, 0x00dae3e4, 0x00eef2f5, 0x00f2f6f5, 0x00f7fbfc, 0x00f9fdfc, 0x00fdfeff, 0x00fffdfe,
- 0x00afb1ac, 0x001a1c17, 0x001a1b16, 0x00131510, 0x000c110a, 0x000b1009, 0x00151711, 0x001d1f19, 0x001e2018, 0x00151810, 0x000e110d, 0x000c120f, 0x00141711, 0x001d1d15, 0x001f1f16, 0x001b1d14,
- 0x0010140f, 0x000c0f17, 0x000e1123, 0x00212842, 0x00525b7b, 0x005f6da4, 0x006272a8, 0x007983a8, 0x00a7acae, 0x00cfcfc9, 0x00eee7e3, 0x00e7e0e3, 0x00d6d2e6, 0x00d6d9f6, 0x00cdd6f7, 0x00aebbdc,
- 0x00849cd1, 0x007c94cd, 0x00748bc9, 0x006b82c3, 0x006077bc, 0x006079bf, 0x00627bc1, 0x00607bbf, 0x005f7aba, 0x005975b2, 0x004d6cb0, 0x004667ba, 0x004464ad, 0x003e5a99, 0x004c639a, 0x006579a2,
- 0x00818da5, 0x00787e8c, 0x003e3f44, 0x001f1e1a, 0x00201b10, 0x0016150f, 0x00100f0d, 0x0010100e, 0x000d0e0c, 0x0010110e, 0x00100f0e, 0x0010110f, 0x0010100e, 0x0010110e, 0x0012130f, 0x00131410,
- 0x000e0d0a, 0x003c2918, 0x00825e42, 0x0086552d, 0x00633c1c, 0x00332017, 0x00383e4b, 0x00486389, 0x004d77ad, 0x004870ab, 0x003e609f, 0x0047609c, 0x003563ad, 0x002b5fae, 0x00295aa6, 0x004164a2,
- 0x007a7687, 0x00887370, 0x00ae967f, 0x00ccb898, 0x00979278, 0x00738392, 0x00607aa1, 0x00344f77, 0x002d4d79, 0x00274776, 0x002b4b7e, 0x002d4c82, 0x00304c83, 0x00324b82, 0x0032497f, 0x0033497e,
- 0x002a4b8c, 0x002d4986, 0x003a5487, 0x0047587e, 0x00282e3c, 0x00121114, 0x0017100b, 0x00140a03, 0x00090901, 0x000b0f0b, 0x00090d0b, 0x00080a03, 0x000d0e07, 0x000f110a, 0x000a0b06, 0x003c3c37,
- 0x00cecfcc, 0x00fcfdfc, 0x00fdfdff, 0x00fcfcfc, 0x00ffffff, 0x00f5f6f9, 0x00cbcbd2, 0x00b5b4b9, 0x0098939c, 0x00736d75, 0x00625961, 0x0071676f, 0x00847f86, 0x009e9ca2, 0x00c1c1c5, 0x00b8babd,
- 0x00b9b5b5, 0x00b5b1af, 0x00c5c1bf, 0x00cecbc7, 0x00bcb9b0, 0x00b9b6ac, 0x00a9a79f, 0x0085827d, 0x00888482, 0x00a19f9e, 0x00c0babd, 0x00bab0b6, 0x009f9798, 0x00948e8c, 0x00a69f9b, 0x008a827c,
- 0x0057524b, 0x005c5752, 0x006a6363, 0x009b9396, 0x00b9b2b6, 0x00aaa2ac, 0x00bcb6be, 0x00afaca3, 0x005b6038, 0x004a5219, 0x004b5515, 0x004a5319, 0x0040471e, 0x00676b5d, 0x008b8c90, 0x003a394e,
- 0x005c2f2a, 0x00936b66, 0x00d5b5b4, 0x00cfb9b8, 0x00a19897, 0x00a49e9b, 0x00a09895, 0x009a918b, 0x00b6a89c, 0x00c1ad9d, 0x00a5877b, 0x009b6e67, 0x008c6a64, 0x00a28987, 0x00c0afb0, 0x00c9c0c3,
- 0x00b9b6b9, 0x00898383, 0x00807676, 0x0091817d, 0x00af9d95, 0x00c9bfb9, 0x00c9c4c1, 0x00b8b4b0, 0x00adaaa3, 0x00b6b2ac, 0x00bbb4b1, 0x00bbb5b2, 0x00bab8b3, 0x00c9c8c3, 0x00c6c3bf, 0x00dcd9d7,
- 0x00a5b08f, 0x006c7162, 0x009e9b9d, 0x00e0d7e6, 0x00c8bfc4, 0x00ccc8bb, 0x00b1b49c, 0x005d6447, 0x004b5c55, 0x00576974, 0x00757e90, 0x00b0aeb3, 0x00bfbcc3, 0x00d0cdd5, 0x00dfdde6, 0x00d5d1db,
- 0x00bcbbb9, 0x0086867d, 0x00414330, 0x003a3e1c, 0x00555a32, 0x006e716a, 0x00686a74, 0x0092949f, 0x00cfcfd8, 0x00cfcfd7, 0x00a7a6ac, 0x00a4a3a5, 0x00aeaea4, 0x00868776, 0x0040422b, 0x0036391f,
- 0x0046463b, 0x00696864, 0x009d999c, 0x00cfc9d1, 0x00d1d0cb, 0x00b8b8a4, 0x00747257, 0x004e4e2d, 0x0046422f, 0x00524c45, 0x009f9998, 0x00b8b3b1, 0x00c0bab2, 0x00bfb7ad, 0x006b6355, 0x00372f1f,
- 0x00312a1a, 0x002a2419, 0x0033312b, 0x00959694, 0x00fafbfc, 0x00fcfcfd, 0x00fcfcfb, 0x00fefdfe, 0x00fcfaf3, 0x00b2aba0, 0x003c2f24, 0x005a4839, 0x008c745f, 0x00aa8e77, 0x00bc9f87, 0x00c5a68b,
- 0x00c9b29e, 0x00d2bca9, 0x00ddc8b6, 0x00e6d4c0, 0x00edddca, 0x00f5e6d5, 0x00f9ecdd, 0x00fcf0e1, 0x00fdf7e5, 0x00fdfaeb, 0x00fdfaec, 0x00fdfded, 0x00fafcee, 0x00fcfdf1, 0x00fcfcf3, 0x00fbfaf6,
- 0x00fcfaf7, 0x00fdfbf8, 0x00fefdf9, 0x00fefffc, 0x00fcfdf7, 0x00fefef5, 0x00fefdf5, 0x00fefdf8, 0x00fdfdfc, 0x00fcfbfc, 0x00fcfbfd, 0x00fbfafc, 0x00fdfbfb, 0x00fdfcf9, 0x00fefdf9, 0x00fefcf9,
- 0x00fbfcf9, 0x00fcfefa, 0x00fbfdfb, 0x00fdfffe, 0x00f9fdfb, 0x00fafffc, 0x00f7fbf9, 0x00fafcfb, 0x00fdfdfb, 0x00fdfaf9, 0x00fcf8fa, 0x00fcfafb, 0x00fcfdfb, 0x00fdfefb, 0x00fafdfb, 0x00fafaf9,
- 0x00fbfaf7, 0x00f9f9f8, 0x00f7f6f7, 0x00f3f2f2, 0x00edeceb, 0x00e3e6e4, 0x00d8dbd9, 0x00ced2cf, 0x00c6c9c3, 0x00bfc0bc, 0x00b8b6b5, 0x00b0acac, 0x00a5a1a1, 0x00969391, 0x00868180, 0x007a7676,
- 0x00605f5f, 0x004c4c4c, 0x00858585, 0x00e6e6e6, 0x00fefefe, 0x00fcfcfc, 0x00fdfdfd, 0x00fcfdfd, 0x00dde0dd, 0x00979998, 0x00737172, 0x00757272, 0x00767474, 0x007f7e7e, 0x008b8b8d, 0x008f9196,
- 0x00939aa6, 0x009ba1b5, 0x009197b4, 0x0062698e, 0x002c335d, 0x001b2254, 0x00151d50, 0x001a2455, 0x001f2d56, 0x00152347, 0x00061233, 0x00030d26, 0x00020814, 0x000b0e11, 0x0010100e, 0x0014120c,
- 0x000c0f0f, 0x000e0c0a, 0x00493f3a, 0x007e6d60, 0x008f735d, 0x00a88568, 0x00ba8f71, 0x00c49476, 0x00c69572, 0x00c79270, 0x00c7916d, 0x00c6936b, 0x00c4936d, 0x00b98c68, 0x00ae8561, 0x00a68264,
- 0x00a48975, 0x00c5b4a7, 0x00d7cfcc, 0x00d2d5d5, 0x00c6d0d7, 0x00c6d2dd, 0x00c6d2df, 0x00bec8d5, 0x00b9c3ce, 0x00b9c4ce, 0x00b5bec7, 0x00bfc8cf, 0x00c7cfd6, 0x00cdd4db, 0x00c9d0d6, 0x00c6ccd3,
- 0x00bec7cd, 0x00b4bfc4, 0x00a5aeb4, 0x00a2aaaf, 0x009ea7ab, 0x009ea5a8, 0x008e9395, 0x00818787, 0x00808685, 0x00818484, 0x007c7e80, 0x00818384, 0x00818385, 0x007b7e7e, 0x006f7272, 0x00686a69,
- 0x00616564, 0x00646769, 0x006a6d70, 0x0075777a, 0x00818183, 0x00927771, 0x00874241, 0x0093121a, 0x00800903, 0x00630e00, 0x00510d01, 0x00550506, 0x005e0007, 0x00600805, 0x00801e17, 0x00a52c23,
- 0x004a2f42, 0x002a1a2b, 0x002d2737, 0x003b424e, 0x004f5863, 0x005f646e, 0x00afadb6, 0x00f0eaf2, 0x00fdfdfb, 0x00fdfffa, 0x00fafef9, 0x00fafefd, 0x00c6c8c8, 0x00515553, 0x00020503, 0x00030504,
- 0x000c110e, 0x00212724, 0x00414443, 0x00606262, 0x00888c8c, 0x00a5a8a9, 0x00c2c2c4, 0x00d9dadc, 0x00eaeded, 0x00f5f7f9, 0x00f9fbfd, 0x00fbffff, 0x00fbfefd, 0x00fcffff, 0x00fafefe, 0x00f8fcfa,
- 0x00fcfcfb, 0x00fcfcfa, 0x00fcfafb, 0x00fefcfd, 0x00fbfdfb, 0x00fcfefc, 0x00fefefe, 0x00fdfefe, 0x00fefcfa, 0x00fafaf9, 0x00f5f6f6, 0x00eff2f2, 0x00e9ecec, 0x00e5e8e6, 0x00bcbfbc, 0x00838582,
- 0x005e635d, 0x004a4f49, 0x002e322c, 0x0023261f, 0x00191d15, 0x00141a10, 0x000f170c, 0x0011190e, 0x00151a13, 0x00171e14, 0x00131b10, 0x00151d12, 0x00151e11, 0x00192016, 0x000d140a, 0x002d3328,
- 0x00b2bca4, 0x00e1c2c5, 0x00683249, 0x00370123, 0x00160536, 0x0006093d, 0x00030741, 0x00030244, 0x00100143, 0x000f0343, 0x000c0243, 0x0003013f, 0x00121253, 0x002d3071, 0x002a3171, 0x00202968,
- 0x0016235d, 0x000f194f, 0x000c1548, 0x00171f4e, 0x00595e8b, 0x00b6bad0, 0x00eff3fb, 0x00e9eff0, 0x00e8eee6, 0x00f4faf5, 0x00f9fafc, 0x00faf9fd, 0x00f8f8fe, 0x00f7f8fb, 0x00f6f7f3, 0x00f9fcef,
- 0x00f9f7fd, 0x00fcfbfe, 0x00fdf9fe, 0x00faf6fd, 0x00fbf9fd, 0x00fcfafc, 0x00fdf9fc, 0x00fdfafe, 0x00f9f8f8, 0x00f9f7f9, 0x00f8f4f9, 0x00faf9f9, 0x00f9f9f9, 0x00f8faf8, 0x00f8f9f5, 0x00f7f8f5,
- 0x00fdfffe, 0x00fcfdfc, 0x00fafafb, 0x00f9fafa, 0x00fafafa, 0x00faf8fb, 0x00faf5fc, 0x00fbf6fd, 0x00faf8fc, 0x00faf7fb, 0x00fbf5fb, 0x00fcf7fa, 0x00faf5fc, 0x00f9f6fb, 0x00faf8fb, 0x00fbf9fa,
- 0x00f7fef1, 0x00f8fdfa, 0x00f9fcf7, 0x00f9faf5, 0x00fbfdf7, 0x00fffefb, 0x00f9fcfa, 0x00f8fcf8, 0x00f9fcfb, 0x00ebf4fc, 0x00c2d1e9, 0x0097b3e2, 0x0098aade, 0x00a4b0df, 0x00bec4eb, 0x00eeebf9,
- 0x00f4f5f3, 0x00f9faf1, 0x00fffff5, 0x00fcfdf7, 0x00f6f9fb, 0x00f3f4f6, 0x00f8f6f6, 0x00f9f9f8, 0x00fafafa, 0x00fafafa, 0x00fcfcfc, 0x00f9f9f9, 0x00f7f7f7, 0x00fbfbfb, 0x00fefefe, 0x00fdfdfd,
- 0x00f6fcf3, 0x00fafff7, 0x00d9dfd8, 0x00959b95, 0x00343a32, 0x00121910, 0x00111811, 0x00192019, 0x001a211a, 0x00252c24, 0x003a3f3a, 0x004d4f4e, 0x00696b6a, 0x00919190, 0x00dddcdc, 0x00f9f9f7,
- 0x00f8f9f7, 0x00f9f7f6, 0x00fcfbfc, 0x00f9fafb, 0x00e4e4e4, 0x00dadcdc, 0x00ebeef1, 0x00f5f8fb, 0x00f6f9f9, 0x00f9fbfc, 0x00f7f9fc, 0x00fafcff, 0x00fafcfe, 0x00f9fbfc, 0x00fafdff, 0x00fafefe,
- 0x00fef8f3, 0x00fefbf6, 0x00fefbf8, 0x00fcfcf9, 0x00f8fcfa, 0x00f8fdfb, 0x00fbfefd, 0x00f7fcfa, 0x00f8faf8, 0x00fbfcf9, 0x00fafaf8, 0x00fbfcfc, 0x00fbfefb, 0x00fbfefe, 0x00fafefe, 0x00fcfeff,
- 0x00f7fefd, 0x00f4fcfc, 0x00f1fbfd, 0x00ecf6fa, 0x00e4f0f5, 0x00ddebf6, 0x00cddcea, 0x00c1cfdd, 0x00b8c6d0, 0x00b4c0c8, 0x00aeb7bd, 0x00adb4b7, 0x00aaaeac, 0x00a2a4a1, 0x00979693, 0x008f8c88,
- 0x007e837d, 0x00767b75, 0x00727570, 0x00787b76, 0x0081837f, 0x00888b87, 0x008b8d89, 0x008c908b, 0x008e918d, 0x008b918c, 0x00898e8c, 0x00838788, 0x007b8080, 0x00787d7c, 0x00777978, 0x00777977,
- 0x007e817d, 0x0081827f, 0x00838480, 0x0081817d, 0x007e7d79, 0x007b7b75, 0x0071726e, 0x00686968, 0x00626764, 0x005f6362, 0x005b605f, 0x005b6060, 0x00606567, 0x00606669, 0x00646a6d, 0x0092989c,
- 0x00f0f3f7, 0x00fcfffe, 0x00fbfbfa, 0x00fdfdf9, 0x00fcfdf6, 0x00d9dbd5, 0x008f9492, 0x00979ca2, 0x00b2bfcb, 0x008898a7, 0x0045526e, 0x00434f7a, 0x0046507c, 0x0045507c, 0x0048507e, 0x00495280,
- 0x00464f7e, 0x0046507e, 0x00465081, 0x00475182, 0x00475083, 0x00454e7d, 0x00404b76, 0x003c4770, 0x00344166, 0x002d3b5c, 0x00293555, 0x0024304f, 0x001a2841, 0x0018263b, 0x001d2a3e, 0x00212e41,
- 0x00293450, 0x00303b57, 0x00384162, 0x003c456a, 0x00444b76, 0x00474e7b, 0x00484e7c, 0x00474d7a, 0x00474f79, 0x00474f7a, 0x0046507b, 0x0045517b, 0x0046527b, 0x0047537b, 0x004c587f, 0x004c5b80,
- 0x004e627e, 0x00536682, 0x00536681, 0x00556a83, 0x005a7087, 0x0063778c, 0x0069798f, 0x004c5a74, 0x005d6987, 0x00606a89, 0x00192041, 0x00181d39, 0x00575b6e, 0x009c9eaa, 0x00b2b4ba, 0x00a8abab,
- 0x00989c8f, 0x008c9080, 0x007b7b6c, 0x00a1a18f, 0x00dddfc9, 0x00eaebd6, 0x00ebe8d6, 0x00d9d6c4, 0x00cccaba, 0x00e0dfd2, 0x00efebe0, 0x00dcd8ca, 0x00ebe8d9, 0x00f7f5e6, 0x00eae6d7, 0x00e1ded0,
- 0x00dad8c6, 0x00dedccc, 0x00e6e4d3, 0x00cbc9b6, 0x00b7b5a4, 0x00c6c4b0, 0x00d6d4c1, 0x00dddacc, 0x00d3d0ca, 0x00c8c5c5, 0x00c1bcc3, 0x00c9c5ce, 0x00cacacf, 0x00cdcecd, 0x00e1e2dc, 0x00f7f8f0,
- 0x00e8ebe2, 0x00cbcdc5, 0x00d8d8d4, 0x00f3f3f0, 0x00f4f4f0, 0x00f7f6f4, 0x00fffefe, 0x00fdfdfd, 0x00fafaf9, 0x00fcfcfe, 0x00fdfbfa, 0x00fdfcf2, 0x00fafbf3, 0x00f4f5ef, 0x00eaebea, 0x00e2e5e9,
- 0x00cdd3db, 0x00c3cad9, 0x00c5cee2, 0x00d0dcef, 0x00d3def1, 0x00d5ddeb, 0x00e9eff5, 0x00f6fdff, 0x00f9fefc, 0x00fafefd, 0x00f6f9fa, 0x00fafcfd, 0x00fbfdfd, 0x00fdfffd, 0x00f9fbf8, 0x00fbfdfa,
- 0x00b0b1ad, 0x00181a15, 0x001a1b16, 0x0012130e, 0x0010130e, 0x0011130e, 0x00191916, 0x001e1e1c, 0x001d1d19, 0x00141510, 0x0010100e, 0x00121114, 0x00181915, 0x001e1f16, 0x001d2011, 0x00171b0d,
- 0x0010110e, 0x00050b15, 0x00171f3a, 0x00313e65, 0x00546097, 0x005661a2, 0x006e77b1, 0x00848cb6, 0x00bcbac5, 0x00dedada, 0x00e2d8da, 0x00d1c7cc, 0x00c0b6cc, 0x00c6c2dd, 0x00c3c8e5, 0x00a2aeca,
- 0x008194d0, 0x00768bc8, 0x006c82c1, 0x00667dbd, 0x005b72b4, 0x00566eb1, 0x005872b4, 0x005e79ba, 0x00647ebb, 0x005c7bb7, 0x004e6fb3, 0x004161ba, 0x00445fb4, 0x003f59a5, 0x00455a99, 0x00596b9e,
- 0x007b87a7, 0x00959aaf, 0x006f7179, 0x002c2c28, 0x00171408, 0x0013120c, 0x00131312, 0x00131211, 0x00131211, 0x0011110f, 0x00131310, 0x00131411, 0x00141512, 0x00141512, 0x00161713, 0x00161714,
- 0x00121213, 0x003a2a1b, 0x007f5f44, 0x007a4d25, 0x00583010, 0x00392419, 0x0027262f, 0x001f324d, 0x00425d8c, 0x0054709e, 0x004e6a9f, 0x0042639d, 0x003865b0, 0x002f5faf, 0x002e56a6, 0x003f5da3,
- 0x0066617e, 0x00796469, 0x00917364, 0x00a58b6d, 0x0096866a, 0x00727b88, 0x00526889, 0x002c476d, 0x002b456f, 0x0025416d, 0x00284575, 0x002a4678, 0x002e4679, 0x00314679, 0x00314576, 0x002f4373,
- 0x0023458a, 0x002c477f, 0x00435881, 0x0049506f, 0x002b2528, 0x001a0e0b, 0x00190c01, 0x00180c00, 0x00110f0a, 0x00090e0c, 0x00070c0b, 0x00080a04, 0x000e0e08, 0x000f110a, 0x00080a04, 0x003d3f39,
- 0x00d1d0cd, 0x00fcfdfb, 0x00fdfdfe, 0x00fcfcfc, 0x00ffffff, 0x00f4f5f8, 0x00c6c7cc, 0x00adaeb2, 0x00938e95, 0x006b646b, 0x00584e57, 0x00665e65, 0x00847f85, 0x00929195, 0x00bebdc1, 0x00ccced1,
- 0x00ccc4c4, 0x00b7b2ae, 0x00bab5b1, 0x00cfc9c3, 0x00c3beb4, 0x00b8b3a8, 0x00a49e95, 0x00837f78, 0x00908987, 0x00a49e9d, 0x00beb7b9, 0x00b1a9ae, 0x00aaa2a3, 0x00aba3a3, 0x00b5adab, 0x00928b86,
- 0x0056504d, 0x00575050, 0x005b5453, 0x007e767a, 0x00aaa2a7, 0x00aca4b7, 0x00bcb6c7, 0x00aeacad, 0x005f663f, 0x00424d16, 0x00414e0f, 0x00404f0d, 0x00404b26, 0x00656d5c, 0x00797f81, 0x002c3145,
- 0x00642f2a, 0x00a0726b, 0x00d7b2ae, 0x00c1a5a3, 0x00928282, 0x00918584, 0x00837875, 0x009c928c, 0x00c6b2aa, 0x00b39f93, 0x00a18177, 0x00925b5c, 0x00996e6c, 0x00ba9fa0, 0x00b5a4a4, 0x00c6bebe,
- 0x00c6c2c5, 0x00898180, 0x007d6d6d, 0x00816b67, 0x009b7b78, 0x00b0a5a1, 0x00d1cfcc, 0x00c6c4c0, 0x00bfc0ba, 0x00c5c4bf, 0x00b1aca9, 0x00b4aeaa, 0x00b5b0ab, 0x00c5bfbb, 0x00cdc5c3, 0x00e5dcdb,
- 0x00a8af94, 0x00595c50, 0x009c9a9c, 0x00d6cfdb, 0x00afa8ac, 0x00b0ada1, 0x00bfc0ac, 0x007b7f67, 0x004e5a58, 0x00626f79, 0x007f8696, 0x00a6a3a7, 0x00c1bdc6, 0x00dddae2, 0x00cdcad5, 0x00c5c0cb,
- 0x00b9b6b7, 0x006a6863, 0x002b2c1c, 0x0026280d, 0x005a5d3b, 0x0073756b, 0x004e5052, 0x0065666c, 0x00a2a2a5, 0x00a0a0a4, 0x006c6b6f, 0x00565355, 0x0073716a, 0x00767469, 0x004d4c3d, 0x00393726,
- 0x003f4539, 0x00565d54, 0x007c827e, 0x00afb2b2, 0x00cfd1c7, 0x00adae99, 0x006c6a50, 0x003d3b1d, 0x00221c0f, 0x00281f19, 0x006c6362, 0x0088817f, 0x009e968e, 0x00aca297, 0x00897e6f, 0x005a4e3d,
- 0x0033291c, 0x00312a1f, 0x0048453c, 0x00a4a49e, 0x00fffdfd, 0x00fefcfc, 0x00fbfcf9, 0x00fcfcfa, 0x00fefbfb, 0x00bdb9b4, 0x00635d56, 0x0090857e, 0x00cebfb7, 0x00ecddd4, 0x00f5ebe1, 0x00f6efe2,
- 0x00faf8f6, 0x00f9f6f5, 0x00fcf8f7, 0x00fcf9f6, 0x00fcf9f6, 0x00fcfaf8, 0x00fefdf9, 0x00fdfef8, 0x00fafef9, 0x00f8fdf8, 0x00f8fcf8, 0x00f9fefb, 0x00f9fffd, 0x00f9fefd, 0x00fafcfd, 0x00fafeff,
- 0x00f9fdff, 0x00fafdfd, 0x00fafefe, 0x00f8fcfe, 0x00fbfeff, 0x00fcfdfc, 0x00fefdfb, 0x00fefdfc, 0x00fefefd, 0x00fdfefd, 0x00fefdfe, 0x00fdfdfe, 0x00fffeff, 0x00fffdfd, 0x00fffdfb, 0x00fffdfa,
- 0x00fffefb, 0x00fbfcf9, 0x00fefefc, 0x00f9fdfa, 0x00fcfefc, 0x00f9fcf9, 0x00fdfefa, 0x00fdfefa, 0x00fefbfb, 0x00fefdfc, 0x00fefbfa, 0x00fcfaf9, 0x00f9f7f4, 0x00eceae7, 0x00d4d3d2, 0x00cdcac9,
- 0x00c1bebd, 0x00b4b4b1, 0x00a7a5a2, 0x009a9a94, 0x008a8884, 0x00787a77, 0x00656867, 0x00585b59, 0x004c4d4c, 0x00434442, 0x003d3b3a, 0x00393534, 0x0036322f, 0x00322c27, 0x002a211c, 0x00231915,
- 0x00100f10, 0x00080808, 0x005d5c5c, 0x00e0e0e0, 0x00ffffff, 0x00fcfdfd, 0x00fdfdfd, 0x00fefffe, 0x00dddddd, 0x00939494, 0x006c6b6d, 0x006f6d6f, 0x00706f70, 0x006d6d6d, 0x005f6062, 0x0056595c,
- 0x00626570, 0x00656876, 0x007a7e93, 0x00737a92, 0x004b5170, 0x002f3250, 0x001d1e3b, 0x002c2e4a, 0x00323b50, 0x001f283a, 0x001a2333, 0x00121a25, 0x00141a1b, 0x001e221d, 0x001d1e17, 0x0018180d,
- 0x000d1013, 0x00272727, 0x0068625f, 0x00877a70, 0x008a7160, 0x009d7c66, 0x00b48a72, 0x00c4967c, 0x00cb9c7c, 0x00c89777, 0x00c6926d, 0x00c9926d, 0x00c99773, 0x00bc8f71, 0x00af8868, 0x00b19175,
- 0x00d1baab, 0x00dad1c6, 0x00d3d2d1, 0x00c2c7cc, 0x00c2ccda, 0x00c6d2e0, 0x00c3cedd, 0x00bcc5d3, 0x00bcc6d3, 0x00c1cbd5, 0x00c2ccd4, 0x00c5ced5, 0x00cdd4dc, 0x00c9d0d7, 0x00bec4ca, 0x00b4babf,
- 0x00a9b1ba, 0x00a7b1b7, 0x00aab3b9, 0x00abb3b8, 0x00acb4ba, 0x00adb3ba, 0x00acb0b8, 0x00a7abb2, 0x009da2a7, 0x0094969d, 0x008a8c91, 0x00858688, 0x00838485, 0x007c7e7f, 0x00737778, 0x00707372,
- 0x00696b6c, 0x006a6c6d, 0x006f7170, 0x00767777, 0x007f8081, 0x009a7472, 0x008e3d40, 0x00920f19, 0x00800906, 0x00601001, 0x00501003, 0x00520c07, 0x005e0308, 0x00680a08, 0x0089221d, 0x00a22c23,
- 0x00452a3e, 0x0029192b, 0x002e2a38, 0x0037414a, 0x004f5962, 0x00636973, 0x00bab9c1, 0x00f6f1f6, 0x00fefdfe, 0x00fdfffd, 0x00fafdfa, 0x00fafdfd, 0x00b5b5b6, 0x00363937, 0x00010301, 0x00050704,
- 0x00010202, 0x00000504, 0x00050706, 0x000b0c0b, 0x00131718, 0x0023272b, 0x0045474e, 0x00686b70, 0x00929599, 0x00adb1b3, 0x00cacece, 0x00dbe0df, 0x00f1f6f6, 0x00f9ffff, 0x00f9fffe, 0x00f7fdfb,
- 0x00fdfcfc, 0x00fcfdfb, 0x00fffffe, 0x00fefdfc, 0x00fefffb, 0x00f9fbf8, 0x00fbfcfb, 0x00fefffe, 0x00fefefd, 0x00fffffd, 0x00fdfefb, 0x00fbfdfb, 0x00f9f9fb, 0x00f9f9fc, 0x00f6f6f6, 0x00e8e8e6,
- 0x00d6d6d4, 0x00bfc1bd, 0x009a9b96, 0x007c7d76, 0x005b5c55, 0x0042463e, 0x00282d25, 0x00161b12, 0x000f140b, 0x000d120a, 0x000f150c, 0x000b100a, 0x00141a10, 0x00151b14, 0x0011180f, 0x0020281f,
- 0x0094aa92, 0x00e2cecd, 0x00794f60, 0x00380726, 0x0015012d, 0x000a0439, 0x00040440, 0x00090143, 0x000e0045, 0x00090544, 0x00040746, 0x00040647, 0x001d1f62, 0x002e3072, 0x00202869, 0x0018215d,
- 0x00111755, 0x000b1149, 0x0015194d, 0x00202253, 0x00646492, 0x00c1c2da, 0x00f2f6fc, 0x00e9edea, 0x00ebf1e8, 0x00f6fbf4, 0x00f9fbfa, 0x00f7f8fc, 0x00f9f9ff, 0x00f5f4fa, 0x00f7f6f4, 0x00f9f9ef,
- 0x00faf7ff, 0x00fbfbfe, 0x00fbf9fd, 0x00f9f6fd, 0x00fcf9fe, 0x00fffafe, 0x00fef9fc, 0x00fdf9fb, 0x00fff8fa, 0x00fbf7f7, 0x00faf7f7, 0x00f7fbf4, 0x00f9faf7, 0x00f7f9f5, 0x00f8f9f4, 0x00f7f9f7,
- 0x00fdfdfd, 0x00fdfbfb, 0x00fefafb, 0x00fefbfb, 0x00fcfafa, 0x00fcf8fd, 0x00fbf5fe, 0x00fcf4fc, 0x00fbf9ff, 0x00faf8fc, 0x00fbf6fa, 0x00fcf7f8, 0x00f9f3fd, 0x00f9f3fc, 0x00fbf4ff, 0x00fbf5ff,
- 0x00f6fdea, 0x00f9fef8, 0x00fcfcfe, 0x00fffcfe, 0x00fefefe, 0x00fefefb, 0x00f8fef5, 0x00f6fef4, 0x00effaff, 0x00cddbf5, 0x009fafde, 0x008ba8df, 0x009caceb, 0x009ca7df, 0x00bcc3ef, 0x00f2f3fc,
- 0x00f7f6fa, 0x00f9faf5, 0x00fefff7, 0x00fdfef8, 0x00f9f9fe, 0x00f4f4f6, 0x00f7f6f7, 0x00fbfbf9, 0x00f9f9f9, 0x00f9f9f9, 0x00fbfbfb, 0x00f9f9f9, 0x00f9f9f9, 0x00fafafa, 0x00fdfdfd, 0x00fefefe,
- 0x00fbfefa, 0x00f8fcf7, 0x00fafffa, 0x00e9eee9, 0x00949892, 0x004b4f49, 0x00414641, 0x00535a54, 0x00707671, 0x008b908a, 0x00afb1ad, 0x00c9c9c8, 0x00e2e2e1, 0x00eaeae9, 0x00f8f9f8, 0x00f6f9f8,
- 0x00fafafa, 0x00f8f7f8, 0x00fafafc, 0x00fafbfc, 0x00fbfbfc, 0x00f9fafa, 0x00fafdfe, 0x00fafdfd, 0x00fcfcfb, 0x00fdfdfc, 0x00fdfdfe, 0x00fdfeff, 0x00fcfefe, 0x00fafefd, 0x00fafdfd, 0x00fafcfd,
- 0x00fdfbf8, 0x00fdfcfa, 0x00fefefd, 0x00fcffff, 0x00f8fefd, 0x00f8fefe, 0x00fbffff, 0x00f9fdfe, 0x00fafdfe, 0x00fafdfc, 0x00fbfbfe, 0x00fbfbfb, 0x00fbffff, 0x00f6fefd, 0x00e5eff2, 0x00dae7e8,
- 0x00d0dee3, 0x00c1d3dc, 0x00adc5cf, 0x009fb9c8, 0x008fabbb, 0x00809bb4, 0x006f88a2, 0x00617892, 0x00607488, 0x00667786, 0x0073828c, 0x007f898f, 0x008a8e90, 0x008e8f8d, 0x008e8e88, 0x008d8b82,
- 0x00818483, 0x007a7d7b, 0x00747775, 0x00727673, 0x00747775, 0x007b7e7c, 0x00828482, 0x00858785, 0x00878989, 0x00868987, 0x00828685, 0x00797e81, 0x0072797b, 0x006e7376, 0x006b6e6f, 0x00696d6d,
- 0x00727474, 0x00747573, 0x00777875, 0x00777775, 0x00757573, 0x00717270, 0x00676a68, 0x00616362, 0x005e6361, 0x005b605f, 0x005a5e5e, 0x00585d5e, 0x005a5f62, 0x005b6064, 0x005b6064, 0x00868c90,
- 0x00eeedf5, 0x00fdfdfe, 0x00fffdfb, 0x00fcfcf6, 0x00fbfcf6, 0x00e0e2de, 0x00969b99, 0x0092969a, 0x00bbc6d1, 0x009da9b7, 0x004e5974, 0x00454f7b, 0x00454f7e, 0x0046517e, 0x00485282, 0x00475383,
- 0x00474f83, 0x00475083, 0x00485084, 0x00485184, 0x00475185, 0x0045507f, 0x00414d77, 0x003d4972, 0x00394469, 0x00313e5f, 0x002c3757, 0x00273351, 0x001c2a43, 0x0018263b, 0x001b283c, 0x001e2c3f,
- 0x00283350, 0x002f3a57, 0x00364060, 0x003a4468, 0x00414b73, 0x00444d77, 0x00444d78, 0x00444d77, 0x00454d78, 0x00444d77, 0x00434f77, 0x0044537a, 0x0044547a, 0x0047577c, 0x004b5c7f, 0x004c5f81,
- 0x00546685, 0x00566a86, 0x005a6f88, 0x005b7289, 0x0061788d, 0x00667d8d, 0x006e8291, 0x006a7a8e, 0x0074839e, 0x007482a0, 0x002e395c, 0x0010193b, 0x00282e4b, 0x0061667f, 0x009296ab, 0x00a6abbc,
- 0x00b8b8b1, 0x00a7aa9e, 0x007e7f72, 0x00929482, 0x00d5d7c1, 0x00e8e8d2, 0x00f0edda, 0x00ebe9d5, 0x00e8e3d4, 0x00f3eee0, 0x00faf6e5, 0x00eeebd7, 0x00e3e2cd, 0x00e2e1cd, 0x00d1d0bc, 0x00c7c6b4,
- 0x00d6d4c4, 0x00e3e1d2, 0x00eae8d8, 0x00cac8b6, 0x00aba999, 0x00bbb9a6, 0x00d8d5c4, 0x00e6e3d6, 0x00dfdad5, 0x00ccc9c8, 0x00c5c1c6, 0x00ccc7ce, 0x00cdccd0, 0x00d4d5d3, 0x00ecece6, 0x00fafaf2,
- 0x00e6e8e1, 0x00caccc5, 0x00d3d3cf, 0x00ecedea, 0x00f4f4f1, 0x00f0f0ee, 0x00fdfdfd, 0x00fcfcfd, 0x00fafbfa, 0x00fcfdfe, 0x00fcfbfa, 0x00fdfbf5, 0x00fbfaf6, 0x00f7f7f3, 0x00f0f1f0, 0x00eaedee,
- 0x00e6e7ef, 0x00e4e6f2, 0x00e8ebf7, 0x00eff6fb, 0x00f7fdff, 0x00f8fcfe, 0x00fcfdff, 0x00fbfbff, 0x00fffdfc, 0x00fdfdfd, 0x00fffffd, 0x00fefefd, 0x00fffff9, 0x00fefcf9, 0x00fffef9, 0x00fdfdf9,
- 0x00aeb1ac, 0x00191a15, 0x00191915, 0x0011130d, 0x0012150f, 0x00181a14, 0x001e1f1a, 0x001f211b, 0x001d1c1a, 0x00161512, 0x0013100f, 0x00191218, 0x001e1d17, 0x00222115, 0x001d1f0c, 0x00151906,
- 0x000a120f, 0x00081222, 0x001b2b4f, 0x003e4e8c, 0x005264b5, 0x005e69b9, 0x006c77b9, 0x009199cf, 0x00c6cae1, 0x00dcdeee, 0x00e1dfeb, 0x00d0cce0, 0x00b6b3cf, 0x00b6b7d7, 0x00b3bdda, 0x0096a6c0,
- 0x00778fd6, 0x006a83cb, 0x00627dc6, 0x00627ec8, 0x005a76c2, 0x00526fbd, 0x004f6ebb, 0x005071bd, 0x005275c1, 0x005578c5, 0x005074c5, 0x004a65c6, 0x00445eba, 0x00465db3, 0x00445aa6, 0x004e60a1,
- 0x006c7aa4, 0x008d94b2, 0x00a6a9b9, 0x006e6e70, 0x00232118, 0x0015150f, 0x00141512, 0x00141511, 0x00151412, 0x00151513, 0x00151512, 0x00151712, 0x00181916, 0x00191a17, 0x001b1b18, 0x001a1918,
- 0x0013181c, 0x002c1f13, 0x0070553c, 0x00744925, 0x00552d0d, 0x00361d0f, 0x00211a1d, 0x000d1726, 0x0022324b, 0x0048516a, 0x00556481, 0x004d688f, 0x004166a1, 0x003b61a9, 0x003358a4, 0x003856a1,
- 0x00505589, 0x00625d7b, 0x00736b76, 0x007a7571, 0x00707466, 0x00556982, 0x0025416d, 0x00264470, 0x00224274, 0x00224579, 0x0020437a, 0x0023457e, 0x0025437e, 0x0028447d, 0x0028427b, 0x00284179,
- 0x00244685, 0x00344674, 0x004e586f, 0x0062545f, 0x00644b3a, 0x004f3625, 0x00261404, 0x00170d02, 0x000d0e08, 0x00050b0a, 0x00090f0e, 0x00090b04, 0x000e0e09, 0x0010110b, 0x000a0b05, 0x003c3e39,
- 0x00d0d0cb, 0x00fcfcf9, 0x00fcfdfc, 0x00fcfcfb, 0x00fefeff, 0x00f1f2f5, 0x00c7c8cd, 0x00b0b0b5, 0x008d898d, 0x00635b61, 0x0051474e, 0x00625b61, 0x007a767a, 0x00888689, 0x00a8a7ab, 0x00c1c2c5,
- 0x00ccc3c0, 0x00b7adab, 0x00aaa29c, 0x00c3bcb4, 0x00c5bab2, 0x00b6aca2, 0x00a1998e, 0x00877d78, 0x00948c88, 0x00a49c9a, 0x00b9b2b3, 0x00a19b9f, 0x00a19c9c, 0x00b1abab, 0x00aea9a6, 0x00898580,
- 0x0055514b, 0x005f5955, 0x006e6866, 0x007d7679, 0x00928b8d, 0x00a09aaa, 0x00b8b6c3, 0x00b4b4af, 0x00586337, 0x0034420b, 0x00354606, 0x002e4006, 0x00414f2e, 0x005f6868, 0x004e556b, 0x001d234b,
- 0x00644345, 0x00aa8e90, 0x00d3bcc2, 0x00bbacb5, 0x00948f9d, 0x009293a2, 0x006f7282, 0x005d6170, 0x00646971, 0x006f6e75, 0x00837277, 0x009d6772, 0x00b08890, 0x00c2a9b2, 0x009e969a, 0x00abadb2,
- 0x00bbbfc6, 0x0097929a, 0x006e6068, 0x007f676e, 0x009b7780, 0x009b9496, 0x00afb9b7, 0x00c1c8c5, 0x00d3d6d2, 0x00bdbeb9, 0x008c8984, 0x00a9a49f, 0x00aaa29e, 0x00b5aba9, 0x00c7baba, 0x00e6d7d9,
- 0x00abb0a1, 0x0051534c, 0x0091908e, 0x00c5c0c5, 0x00b2acab, 0x00afaca0, 0x00b9b9a9, 0x008e917d, 0x00454f4b, 0x0057616a, 0x008d949c, 0x00a6a4a1, 0x00c8c5c2, 0x00dcd9d9, 0x00c1bfbe, 0x00c1bdbc,
- 0x00c7c5bd, 0x0099998d, 0x00474833, 0x0034361d, 0x003d4022, 0x00484a3c, 0x00292b25, 0x002b2c2b, 0x00484745, 0x00656465, 0x005c595c, 0x00252123, 0x002b2723, 0x004a4740, 0x00454339, 0x002f2c23,
- 0x00343627, 0x003a3b2b, 0x005a5d48, 0x00959682, 0x00b7b49e, 0x00948e75, 0x00544c31, 0x002a1e04, 0x00291806, 0x00281408, 0x00402e24, 0x005e4f43, 0x00645441, 0x006a5843, 0x006d5c42, 0x00766145,
- 0x006d593f, 0x006b5843, 0x007e725e, 0x00c4bcab, 0x00fefdf2, 0x00fefef5, 0x00f8fdf4, 0x00fafdfa, 0x00f9faf8, 0x00bebebc, 0x006c6c69, 0x00999896, 0x00d7d3d5, 0x00f6f2f4, 0x00fdfbfc, 0x00fdfbfb,
- 0x00fcfaff, 0x00fcfbfe, 0x00fcfdff, 0x00fafdff, 0x00f9fcff, 0x00f9fefe, 0x00f8fefc, 0x00fafffd, 0x00f9feff, 0x00f9fffe, 0x00f7fefc, 0x00f7fdfd, 0x00f6ffff, 0x00f8fdfe, 0x00f6fcfc, 0x00f6fcfe,
- 0x00f7fdff, 0x00f8fdfe, 0x00f8fcfd, 0x00f8fcfc, 0x00f9fcfc, 0x00fbfefe, 0x00fbfefe, 0x00fbfcfd, 0x00fbfefd, 0x00fbfdfc, 0x00fcfdfd, 0x00fcfdfd, 0x00fbfaf9, 0x00f8f7f5, 0x00f4f2ee, 0x00f2f0ea,
- 0x00f3f2ec, 0x00eeeee9, 0x00dfe1da, 0x00d8d9d1, 0x00c9ccc5, 0x00bfc0b9, 0x00d1d3ca, 0x00edede6, 0x00f7f1ea, 0x00faf1eb, 0x00faf4ed, 0x00fdf6ef, 0x00e0ded6, 0x009a9791, 0x004e4d49, 0x00434341,
- 0x0031322f, 0x00262623, 0x001d1c16, 0x0019170f, 0x00100905, 0x00070705, 0x00020604, 0x00020301, 0x00050708, 0x000a0909, 0x00130e0f, 0x00191313, 0x001e1615, 0x00211914, 0x00201710, 0x001e130c,
- 0x00090909, 0x00040304, 0x00585757, 0x00e4e4e4, 0x00fefefe, 0x00fcfdfd, 0x00feffff, 0x00feffff, 0x00dadbda, 0x00919291, 0x0068686a, 0x006c6b6d, 0x00656566, 0x004a4b4d, 0x0022242a, 0x0015171d,
- 0x0012181f, 0x001c232a, 0x00252a35, 0x00363e49, 0x00383f4d, 0x0031333b, 0x00302d32, 0x00353538, 0x003b3c41, 0x00333539, 0x002b2e33, 0x002c3033, 0x00262a2a, 0x00262a27, 0x00191d1a, 0x00191c19,
- 0x002e3735, 0x00525754, 0x00747370, 0x007f7971, 0x00817062, 0x008b725d, 0x009c7a63, 0x00b18a6f, 0x00c39878, 0x00c79979, 0x00c7966f, 0x00ca956c, 0x00c39771, 0x00b79174, 0x00b2957b, 0x00c1ad9b,
- 0x00d8d0cc, 0x00d1d2d3, 0x00cbd4d6, 0x00bfcad3, 0x00b9c8d4, 0x00bfccda, 0x00c4d2dc, 0x00c1ccda, 0x00bfc9d5, 0x00c1ccd6, 0x00c0cad3, 0x00c5ced5, 0x00c0c7cf, 0x00b5bcc3, 0x00adb2b9, 0x00abb0b6,
- 0x00afb9c1, 0x00b4bec4, 0x00b7c0c6, 0x00b7c0c6, 0x00b2b9c1, 0x00b5bbc4, 0x00b4b8c4, 0x00b3b7c2, 0x00b3b6c2, 0x00b4b5c4, 0x00b0b0bb, 0x00a4a5a8, 0x00929495, 0x00828486, 0x00747878, 0x00707371,
- 0x006e6f6d, 0x006d6e6d, 0x006e736e, 0x00777a76, 0x00808080, 0x009a6c6a, 0x008b3637, 0x00840d14, 0x00730605, 0x005b0e04, 0x00480f00, 0x00470f01, 0x005a0601, 0x006f0d0a, 0x00912b26, 0x009d322e,
- 0x00362336, 0x00241a2a, 0x002b2b38, 0x00364049, 0x004c565f, 0x00747880, 0x00cecbd2, 0x00faf5f9, 0x00fefdfe, 0x00fdfefd, 0x00f7fbf9, 0x00fbfcfc, 0x00939494, 0x00181918, 0x00030503, 0x00090908,
- 0x00040505, 0x00020404, 0x00020302, 0x00040303, 0x00000001, 0x00000002, 0x00020003, 0x00040003, 0x000e0a0d, 0x00282526, 0x004e4c49, 0x006e6c65, 0x00939389, 0x00ababa0, 0x00c8c8bc, 0x00dddecf,
- 0x00eeefeb, 0x00f4f5f1, 0x00fcfcf9, 0x00fefefa, 0x00fbfcf8, 0x00fdfefa, 0x00fdfdfb, 0x00fdfdfc, 0x00fcfdfb, 0x00fcfdfa, 0x00fdfdfb, 0x00fcfcfc, 0x00faf9fa, 0x00fdfbfd, 0x00fbf9fb, 0x00fdfcfd,
- 0x00fefbfb, 0x00fcfaf8, 0x00f8f6f6, 0x00efeeeb, 0x00d9dad3, 0x00c3c6bd, 0x00a6aaa2, 0x00888d85, 0x00686c63, 0x0050534c, 0x003a3d37, 0x00262925, 0x001f231c, 0x00141812, 0x000d130b, 0x00101610,
- 0x00708972, 0x00e3d6d2, 0x00a57c88, 0x004d1230, 0x00210126, 0x0018002f, 0x00150035, 0x00180039, 0x0012003f, 0x00080741, 0x00000a43, 0x00071152, 0x00262e6d, 0x00262c6d, 0x00141c5c, 0x00111853,
- 0x000e114c, 0x0011124a, 0x0019194e, 0x00181649, 0x004b4679, 0x00b6b6d0, 0x00ebf0f7, 0x00e3e8e9, 0x00eaf1e6, 0x00f9fdf5, 0x00f7faf6, 0x00f8fbfd, 0x00f6f7ff, 0x00f7f6fd, 0x00f8f5f6, 0x00faf8f1,
- 0x00fbf9fb, 0x00fdfcfd, 0x00fbfafc, 0x00f9f8f7, 0x00fbf9f7, 0x00fbf9f9, 0x00fbfaf8, 0x00fefdf5, 0x00fffcf8, 0x00fefaf7, 0x00fcfcf6, 0x00fbfdf7, 0x00f9fcf6, 0x00fefcfb, 0x00fcfbfc, 0x00fafafb,
- 0x00faf7fb, 0x00fbf8fc, 0x00fcf9fd, 0x00fefcfc, 0x00fdfaf9, 0x00fef8fc, 0x00fdf7fe, 0x00fcf8fc, 0x00fcfbf7, 0x00fbfaf7, 0x00faf9f3, 0x00fbfaf5, 0x00faf6f9, 0x00fbf4fe, 0x00fef6fe, 0x00fff6ff,
- 0x00f8fef0, 0x00f9fefb, 0x00f0f4fd, 0x00e5e4fd, 0x00d6d9f5, 0x00dae1e7, 0x00edf6f3, 0x00f3fef7, 0x00daecfc, 0x00b5c3ff, 0x008ea2e9, 0x009bb8f3, 0x00b3cafd, 0x009eace8, 0x00b4bff2, 0x00e7ecff,
- 0x00f3f5fd, 0x00f8f9f9, 0x00fefff7, 0x00fefef9, 0x00fdfbfc, 0x00f7f5f7, 0x00f7f7f6, 0x00faf9fb, 0x00f9f9f9, 0x00fafafa, 0x00fafafa, 0x00fbfbfb, 0x00fbfbfb, 0x00fbfbfb, 0x00fbfbfb, 0x00fbfbfb,
- 0x00fafcf9, 0x00f9fefa, 0x00f6faf6, 0x00fcfffa, 0x00e9ede8, 0x00c8cbc6, 0x00c4c7c3, 0x00d5dad6, 0x00e9ede8, 0x00f4f8f4, 0x00f9fcf9, 0x00fafcf9, 0x00fefefd, 0x00fafbfa, 0x00f9fafa, 0x00fafbfb,
- 0x00fdfdfc, 0x00fefffe, 0x00fcfbfd, 0x00fbfbfc, 0x00fcfdfe, 0x00fbfdfd, 0x00fcfefd, 0x00f9fcfb, 0x00fdfefc, 0x00fdfdfb, 0x00fcfcfa, 0x00fdfffc, 0x00fcfffc, 0x00fafefb, 0x00fafcfc, 0x00fdfdfe,
- 0x00fefeff, 0x00fefeff, 0x00f9fcfe, 0x00f6fefe, 0x00f4fdfe, 0x00f3fdff, 0x00ecf7fa, 0x00edf5fc, 0x00e7f0f4, 0x00dee5e9, 0x00d6d8da, 0x00ced0cc, 0x00b6bbbb, 0x009ba6a8, 0x0079888e, 0x00687c83,
- 0x004f6776, 0x00425f75, 0x0031556d, 0x002c5570, 0x002a5471, 0x002a5276, 0x0033587c, 0x00395b7d, 0x0046617b, 0x0053697f, 0x00647887, 0x00727f89, 0x0083868b, 0x008e8c8d, 0x00918e89, 0x00918c83,
- 0x007f8183, 0x00797b7c, 0x006d6f70, 0x00686b6a, 0x00676a69, 0x006f7171, 0x00727474, 0x00747677, 0x00767979, 0x00797a7a, 0x00737778, 0x006b7276, 0x00636b6e, 0x005d6368, 0x0054585c, 0x00505759,
- 0x00575a5a, 0x005d5f5f, 0x00646665, 0x00686a69, 0x006b6c6d, 0x00696c6d, 0x005f6465, 0x00565b5d, 0x0053575a, 0x00505557, 0x004d5154, 0x004d5355, 0x00575c5e, 0x005a6062, 0x00555a5c, 0x00777c7e,
- 0x00dddfe2, 0x00f8f9fa, 0x00fdfefb, 0x00fcfcf8, 0x00fcfbfa, 0x00eaebe9, 0x00a4a5a4, 0x008f9193, 0x00bcc5cc, 0x00b9c3ce, 0x00626c83, 0x0049517f, 0x0048527f, 0x0046507f, 0x00475281, 0x00455182,
- 0x00465081, 0x00465082, 0x00475083, 0x00475183, 0x00475086, 0x0045507f, 0x00424d77, 0x003f4a74, 0x00394569, 0x00333e60, 0x002d3958, 0x00283451, 0x001e2b45, 0x0018273c, 0x0019283b, 0x001d2b3f,
- 0x0026334e, 0x002c3953, 0x0033405c, 0x00374464, 0x003e496f, 0x00404b74, 0x00404b74, 0x003f4b71, 0x003e4c72, 0x003e4e72, 0x003e4f73, 0x003f5476, 0x00415678, 0x00445979, 0x00485e7d, 0x004a617f,
- 0x00546985, 0x00586f89, 0x005e768c, 0x00637a8e, 0x00698093, 0x006d8793, 0x006b848e, 0x007b90a0, 0x007a8ea5, 0x007d8fac, 0x00526285, 0x0028355c, 0x0018214b, 0x002e3561, 0x004f5583, 0x00616896,
- 0x00a5a6a9, 0x00b1b3b2, 0x009fa29e, 0x009d9f96, 0x00c7c8b8, 0x00e1dfcc, 0x00eae6d3, 0x00ece8d3, 0x00f4efda, 0x00f6f0dd, 0x00ebe6d0, 0x00dedcc1, 0x00d6d6bd, 0x00d2d3ba, 0x00cdcdb5, 0x00cccab5,
- 0x00dedbcb, 0x00f0eddf, 0x00eeebde, 0x00cfccbd, 0x00a7a497, 0x00b3b19f, 0x00d8d7c4, 0x00f2f0e0, 0x00e6e3dc, 0x00d1cfcb, 0x00cac7c7, 0x00c9c7c8, 0x00cdcccb, 0x00dfe0dd, 0x00fafbf6, 0x00fbfaf5,
- 0x00eaebe4, 0x00d4d5cf, 0x00d1d2cd, 0x00e1e1dd, 0x00dfdfdc, 0x00e5e5e2, 0x00fbfbfb, 0x00fefefe, 0x00fdfdfc, 0x00fefeff, 0x00fafbf9, 0x00fafbf9, 0x00fbfcf7, 0x00fafaf9, 0x00fafaf5, 0x00f9f9f6,
- 0x00fcf8fc, 0x00fefbfe, 0x00fefdfd, 0x00fcfcfc, 0x00fffdfc, 0x00fefbfd, 0x00fefdfd, 0x00fdfeff, 0x00fffefd, 0x00fdfcfb, 0x00fcfaf7, 0x00fefcfa, 0x00fbf9f5, 0x00fffcf8, 0x00fef9f3, 0x00faf4ed,
- 0x00afb0a9, 0x00181711, 0x001c1b15, 0x0015150f, 0x00181914, 0x001b1b15, 0x0020201a, 0x0024241e, 0x00252220, 0x00191814, 0x0012100e, 0x00171114, 0x001e1b15, 0x00221f13, 0x001d1d0a, 0x00141704,
- 0x0006100c, 0x000c1b27, 0x0033426a, 0x00455796, 0x005467bd, 0x005c6dbc, 0x006a79bb, 0x008797cb, 0x00b8bee0, 0x00d3d8ef, 0x00e7ebff, 0x00d1d7eb, 0x00b5bcdb, 0x00b8c2e2, 0x00b2c0df, 0x0091a2bd,
- 0x006e8ad3, 0x006581ca, 0x006782ce, 0x006886d4, 0x005f80d0, 0x005478ca, 0x004f75c8, 0x00486fc4, 0x00446cc5, 0x004670c7, 0x004f71cf, 0x004f69c7, 0x004a60be, 0x004660b7, 0x00485cb1, 0x004959a6,
- 0x006070a0, 0x007a82a6, 0x00b7bbd0, 0x00acabb1, 0x0049473f, 0x0013130c, 0x0011140f, 0x00161913, 0x00161614, 0x001a1b19, 0x0011110e, 0x00131510, 0x00171916, 0x001c1d1a, 0x001c1c19, 0x00191817,
- 0x000f161a, 0x0023180f, 0x005f432f, 0x00724727, 0x004d2609, 0x002e1708, 0x001c1411, 0x00151a24, 0x00232c38, 0x003b3f46, 0x004a505c, 0x00495f72, 0x00445d89, 0x00426297, 0x00415fa0, 0x003b559a,
- 0x003d4e86, 0x003e4c75, 0x005e6c89, 0x006a798a, 0x004b6369, 0x00344e76, 0x001f3f73, 0x0022437c, 0x00224683, 0x00244887, 0x00214586, 0x00204385, 0x00254688, 0x00254484, 0x00284483, 0x002c4686,
- 0x002a4679, 0x00394664, 0x005b5562, 0x00755c54, 0x009a725c, 0x007e6148, 0x00341f0b, 0x00140d01, 0x000a0d09, 0x00070e09, 0x00090f0b, 0x000c0d07, 0x0011110c, 0x0010100b, 0x000c0c08, 0x003f403c,
- 0x00d0d1d0, 0x00fbfbfa, 0x00fefefd, 0x00fcfbfb, 0x00ffffff, 0x00f3f5f7, 0x00cdcfd1, 0x00b1b0b2, 0x00878286, 0x005c565a, 0x004d4549, 0x005a5458, 0x00747074, 0x00807c80, 0x00979698, 0x00aeb0b1,
- 0x00b8adac, 0x00a89f9b, 0x00a79c96, 0x00c4b9b0, 0x00c9c1b7, 0x00b2aa9f, 0x00998e83, 0x00877e76, 0x00928a87, 0x00a69d9c, 0x00afa7a9, 0x00999497, 0x00a19e9c, 0x00bab5b2, 0x00a59f9a, 0x00817d75,
- 0x00636058, 0x006d6967, 0x00848080, 0x00989395, 0x00999398, 0x0098969a, 0x00b1b3af, 0x00b0b2a3, 0x005c673c, 0x00303e08, 0x00303f0b, 0x002b3e07, 0x003b4a3d, 0x004b5862, 0x00323b60, 0x002e346d,
- 0x0071676f, 0x00908894, 0x00aeaabe, 0x009294ac, 0x00687591, 0x006d7e99, 0x00485b76, 0x0030445d, 0x00303f54, 0x00354458, 0x00575465, 0x00906b77, 0x00bba0ad, 0x00b2a6b1, 0x00a6a3ae, 0x00a8b3bd,
- 0x00b1bec7, 0x00828791, 0x004c4856, 0x00615262, 0x007e6273, 0x00737078, 0x0095a1a4, 0x00b6bdbf, 0x00ced0ce, 0x00b1b2ad, 0x007b7a72, 0x009c9790, 0x00a79f9a, 0x00a29897, 0x00b2a5a7, 0x00e1d3d7,
- 0x00b6b8ab, 0x005e5f58, 0x00989696, 0x00d9d5d8, 0x00c9c5c0, 0x00c3c1b5, 0x00c6c7b7, 0x00a6a99a, 0x00515453, 0x004e5458, 0x00909295, 0x00afb0a1, 0x00d3d2c6, 0x00d8d9cd, 0x00cecdc3, 0x00c0c0b1,
- 0x00b5b5a4, 0x00a9ab94, 0x00898c72, 0x00696c4d, 0x00545837, 0x00545844, 0x00414438, 0x0036392f, 0x00363432, 0x00464444, 0x00565253, 0x002d292b, 0x00181311, 0x00211d19, 0x002c2922, 0x002a2720,
- 0x002e2b12, 0x00353016, 0x005f593e, 0x00948d6f, 0x00958968, 0x00807152, 0x00604f30, 0x00452f17, 0x00482e17, 0x00533822, 0x00604833, 0x0065503a, 0x00654e34, 0x0061482e, 0x005f4628, 0x00674d2a,
- 0x0078623e, 0x00766243, 0x00897359, 0x00cab8a2, 0x00fff7e8, 0x00fafbef, 0x00fbfcf5, 0x00fcfefd, 0x00f9fbf9, 0x00babdbb, 0x006a6d6d, 0x0094969a, 0x00d3d5dc, 0x00f0f1f8, 0x00f8f8fd, 0x00fcfcfe,
- 0x00fbfafe, 0x00fcfbfc, 0x00fffefe, 0x00fdfdfd, 0x00fcfdfe, 0x00fafbfc, 0x00fafdfd, 0x00f7fbfb, 0x00fafbff, 0x00f7fcfa, 0x00fcfefd, 0x00f7fbf9, 0x00fbfcfc, 0x00fbfefc, 0x00fdfcfa, 0x00fcfefa,
- 0x00fcfdf7, 0x00fcfef9, 0x00fefffc, 0x00fdfcfb, 0x00fefdfd, 0x00f9fcfb, 0x00f5fafa, 0x00f1f4f4, 0x00ecebec, 0x00e4e3e1, 0x00dcdbd7, 0x00d3d2ce, 0x00c6c3c0, 0x00bab7b5, 0x00b1adab, 0x00a9a6a3,
- 0x00a59a96, 0x00978e8b, 0x00867c78, 0x00736f68, 0x0068655e, 0x004d4e43, 0x0089897b, 0x00d8d7ca, 0x00f3ebe1, 0x00f2ebdf, 0x00f5eae0, 0x00f6eee3, 0x00d3cfc6, 0x0075716c, 0x00110c0b, 0x000c0b0a,
- 0x000c0b09, 0x00040300, 0x00070400, 0x00120c05, 0x00191009, 0x00121109, 0x00090d06, 0x00040500, 0x00080509, 0x000d0a0e, 0x00151114, 0x001a1516, 0x00201918, 0x00241a17, 0x0021140f, 0x001e1008,
- 0x00090909, 0x00050505, 0x00565656, 0x00e4e5e5, 0x00fdfdfd, 0x00fcfcfc, 0x00fdfcfd, 0x00fefefe, 0x00dadada, 0x008c8d8c, 0x00626364, 0x00606163, 0x00515355, 0x00323439, 0x00161820, 0x000e1019,
- 0x00080d13, 0x000a1017, 0x00090f18, 0x000c141b, 0x00121a21, 0x00191b1d, 0x00282428, 0x002d2a30, 0x00342e35, 0x00312d31, 0x002a282b, 0x00232328, 0x0024262a, 0x001b1e24, 0x0020242a, 0x00373b3f,
- 0x00545d5d, 0x00636866, 0x00737370, 0x007b7770, 0x0084776a, 0x00786552, 0x00684d35, 0x008b6b4d, 0x00c09477, 0x00c39574, 0x00c4926f, 0x00c5926a, 0x00bd9370, 0x00b28f74, 0x00bba292, 0x00d1c3ba,
- 0x00d3d3d1, 0x00cbd0d2, 0x00c7d0db, 0x00c1cdda, 0x00b6c6d3, 0x00bcc9d3, 0x00bfcdd7, 0x00c2cfd9, 0x00c0c9d5, 0x00bcc5d0, 0x00b7bfc8, 0x00b0b8bf, 0x00aeb5bb, 0x00a9afb5, 0x00b5bac2, 0x00b7bcc6,
- 0x00bcc5cc, 0x00b5bfc6, 0x00b5bec6, 0x00bbc3cc, 0x00c7ced7, 0x00c1c6d0, 0x00bfc3cf, 0x00bdc0ce, 0x00bbbbcb, 0x00bdbccf, 0x00c3c2d0, 0x00c5c7cc, 0x00b4b7b9, 0x00929598, 0x0076797a, 0x00737674,
- 0x006f7270, 0x006e726e, 0x006f716f, 0x007b7c7a, 0x00828481, 0x00946660, 0x007d2d27, 0x00720b0d, 0x006d0409, 0x00530602, 0x00420800, 0x003b0f00, 0x005e0603, 0x00750e0c, 0x00962e2b, 0x00933330,
- 0x002a1b31, 0x001d192a, 0x002a2c3a, 0x00364049, 0x004b5459, 0x007d7e83, 0x00e2dde2, 0x00fdf9fe, 0x00fff9fe, 0x00fcfffe, 0x00f9fcfb, 0x00f3f5f5, 0x0079797a, 0x000d0f0e, 0x00040203, 0x00030202,
- 0x00060402, 0x00060503, 0x00070606, 0x00050505, 0x00050303, 0x00070200, 0x000d0503, 0x000d0704, 0x000b0402, 0x000e0703, 0x00160e08, 0x00221b12, 0x00332c1f, 0x003f392a, 0x00575141, 0x00766f61,
- 0x00979891, 0x00a9aba4, 0x00cacbc6, 0x00e0e1dd, 0x00f9f9f7, 0x00fcfcfb, 0x00fbfbfa, 0x00fafbf9, 0x00fefafe, 0x00fefcfe, 0x00fefdfe, 0x00f9faf9, 0x00fbfcfc, 0x00fefeff, 0x00fcfbfb, 0x00fbf9f9,
- 0x00fffafc, 0x00fefbfa, 0x00fffdfe, 0x00fffefe, 0x00fdfdfa, 0x00f5f7f2, 0x00f0f3ee, 0x00eaefe8, 0x00dadbd9, 0x00c2c4be, 0x00a1a49f, 0x007e827a, 0x005e615c, 0x00454942, 0x002a2d27, 0x00191b15,
- 0x005b715d, 0x00e1d7d1, 0x00c599a6, 0x006b2e48, 0x002e052a, 0x001f0026, 0x001c012a, 0x001f002e, 0x00170035, 0x00060537, 0x00020d40, 0x000e1d55, 0x0027306d, 0x00182158, 0x00131851, 0x0012154e,
- 0x000f0e48, 0x0016144a, 0x001b194e, 0x00131045, 0x00302c5f, 0x008c8eaa, 0x00e7edf9, 0x00e1e9ec, 0x00eff2ec, 0x00f7f9f3, 0x00fafcf9, 0x00f6f9fb, 0x00fafaff, 0x00faf8ff, 0x00fbf8f9, 0x00f7f7f2,
- 0x00fbfcf6, 0x00fcfef5, 0x00fcfef6, 0x00fbfdf7, 0x00fafcf6, 0x00f8faf5, 0x00f8faf6, 0x00fbfcf6, 0x00fafafb, 0x00fafcfc, 0x00fafdfb, 0x00f7fdfa, 0x00f8fafa, 0x00fbfdff, 0x00fbfbfc, 0x00f9fafe,
- 0x00fbfafb, 0x00fbf8fa, 0x00faf5fb, 0x00f9f6fa, 0x00fcfaf9, 0x00faf6f4, 0x00fcf8f6, 0x00fbf7f2, 0x00f8f9f2, 0x00fcfef5, 0x00f9fdf7, 0x00f7fdf2, 0x00f8f8f5, 0x00fbf8fa, 0x00fefbff, 0x00fef8fe,
- 0x00f1faf9, 0x00eaf2f8, 0x00d3d5ff, 0x00c1befd, 0x00b5b6e3, 0x00b4bccc, 0x00d3e3e5, 0x00eaf8f8, 0x00cad6f7, 0x00a3aff6, 0x00a2adf6, 0x00bbd4f6, 0x00cbddff, 0x00a6b5ea, 0x00b5bfee, 0x00ebedff,
- 0x00f5f8fe, 0x00f7f9f6, 0x00fdfdf7, 0x00fffff8, 0x00fefbff, 0x00f5f5f4, 0x00f4f5f4, 0x00faf8f8, 0x00fafafa, 0x00f8f8f8, 0x00f8f8f8, 0x00f8f8f8, 0x00fafafa, 0x00f8f8f8, 0x00f8f8f8, 0x00f8f8f8,
- 0x00f6faf7, 0x00f8fcf8, 0x00f9fcf8, 0x00f8faf6, 0x00f5f9f5, 0x00f3f7f4, 0x00f6f7f5, 0x00fbfdfa, 0x00fefffc, 0x00fcfdfb, 0x00fcfcfb, 0x00fbfbfb, 0x00fbfcfc, 0x00fcfdfd, 0x00fbfcfc, 0x00fcfdfb,
- 0x00fdfcfc, 0x00fffefe, 0x00fdfcfc, 0x00fbfbfb, 0x00fefefe, 0x00fbfdfc, 0x00f7fcf9, 0x00f8fdf9, 0x00feffff, 0x00fcfefc, 0x00fcfefb, 0x00fafef9, 0x00f9fdf8, 0x00fbfffb, 0x00fcfefb, 0x00fefffc,
- 0x00fbfcfa, 0x00f9fafb, 0x00f4f9fd, 0x00e5eef4, 0x00d2dce3, 0x00c3cfd7, 0x00b2c1c9, 0x00a8b8c1, 0x009da5af, 0x009199a1, 0x0083898d, 0x006c726f, 0x00535b5c, 0x00384347, 0x0027353f, 0x001b2e3a,
- 0x00143041, 0x00113145, 0x00183c56, 0x001b455c, 0x00234e6b, 0x00275273, 0x0033597f, 0x003c5f81, 0x00435d7c, 0x004b617b, 0x00576a7c, 0x00616e78, 0x00787b7e, 0x00868483, 0x008b8984, 0x008a857f,
- 0x007a7c80, 0x00737579, 0x00696b6e, 0x00616364, 0x005c5e60, 0x005c5e5f, 0x005d6062, 0x00616466, 0x00666769, 0x0069696c, 0x0066696d, 0x005a6168, 0x0050595d, 0x00464d52, 0x003d4347, 0x00373f43,
- 0x00414346, 0x00484a4b, 0x0056595b, 0x00626366, 0x006c6d6d, 0x00666a6c, 0x005a6064, 0x0052565a, 0x004a4f53, 0x00474b4f, 0x00464a4e, 0x0043484b, 0x0053575b, 0x005b5f62, 0x00565a5d, 0x006e7275,
- 0x00ccd0cf, 0x00f3f6f5, 0x00fefefd, 0x00faf9f8, 0x00fefcfd, 0x00f4f2f3, 0x00b0b0b0, 0x00858688, 0x00babec7, 0x00c8cfd6, 0x00778095, 0x0046507b, 0x00424e7b, 0x0046517c, 0x0047507f, 0x00485380,
- 0x0046507f, 0x00455081, 0x00455082, 0x00455082, 0x00464f86, 0x00464f7f, 0x00434d78, 0x003f4b75, 0x003b446b, 0x00343f61, 0x002e3a5a, 0x00293652, 0x001f2c45, 0x0018273c, 0x00172639, 0x0018293b,
- 0x00232f46, 0x0027334e, 0x002e3a59, 0x00334062, 0x003a486b, 0x003c4c6f, 0x003d4d71, 0x003b4c70, 0x003c4d71, 0x003c4e6d, 0x003b506f, 0x003a5171, 0x003e5674, 0x003f5673, 0x00465c79, 0x004a627c,
- 0x00546983, 0x00597086, 0x005f778a, 0x00637a8c, 0x006b8394, 0x00718b96, 0x00718c95, 0x0079949f, 0x007c90a7, 0x007f91ab, 0x0071819f, 0x00485778, 0x0019274e, 0x001d2a58, 0x00303c6f, 0x00364176,
- 0x00696c7b, 0x008f949f, 0x00b3b7bf, 0x00afb2b3, 0x00bfc0b9, 0x00d7d6c9, 0x00e3e1d0, 0x00e5e5d0, 0x00f1ead7, 0x00efead4, 0x00e0dec4, 0x00dcdbc0, 0x00dbdac1, 0x00dedcc4, 0x00dadac3, 0x00d7d8c3,
- 0x00e0dfd1, 0x00f0efe0, 0x00f0eee1, 0x00d1cfc2, 0x00b0ada1, 0x00b9b6a5, 0x00dedac8, 0x00f7f3e1, 0x00eae7df, 0x00d9d7d0, 0x00cfcdc8, 0x00c7c7c4, 0x00d8d8d6, 0x00ecece9, 0x00fefffb, 0x00fcfefa,
- 0x00eaeae5, 0x00d7d7d1, 0x00d6d6d0, 0x00d7d8d2, 0x00c8c9c5, 0x00d3d4d1, 0x00f5f6f5, 0x00fffffe, 0x00fcfafc, 0x00fffefe, 0x00fbfcfa, 0x00fbfdf9, 0x00fcfdfb, 0x00fdfefc, 0x00fefdfd, 0x00fdfdfc,
- 0x00fbfbf8, 0x00fefdf8, 0x00fffafb, 0x00fdf9f9, 0x00fefcfb, 0x00fafbf4, 0x00fcfcf9, 0x00fefcfa, 0x00f9fbfa, 0x00fefefc, 0x00fefbf9, 0x00fcfaf5, 0x00fefcf8, 0x00f3f0ea, 0x00d1cbc6, 0x00b7ada7,
- 0x00b5b5ac, 0x00231f18, 0x002a251f, 0x00221f19, 0x0025221c, 0x002a261f, 0x00343129, 0x003d3a32, 0x003d3a33, 0x002e2d24, 0x00201d17, 0x001c1816, 0x00211e15, 0x00221f11, 0x00191907, 0x00111302,
- 0x00060f0e, 0x00202c3d, 0x0046547e, 0x00495897, 0x004d61b3, 0x005d70ba, 0x006a7ebc, 0x007f94c1, 0x00a6b4ce, 0x00bdc8df, 0x00c6cfe3, 0x00aeb6d2, 0x00949fc0, 0x008e9bbc, 0x00909fbd, 0x008a9ab4,
- 0x006f89d0, 0x00647ec4, 0x00627cc4, 0x00647fc9, 0x005d7cc9, 0x005375c5, 0x004c71c4, 0x00466bc2, 0x003e66c3, 0x003f66c5, 0x004666c7, 0x004f65c1, 0x004960bd, 0x00465eb7, 0x00435ab1, 0x004558a7,
- 0x0050639f, 0x006c77a4, 0x00a5aac6, 0x00d3d3de, 0x008c8985, 0x002b2b27, 0x000e100d, 0x00161914, 0x001a1b18, 0x001d1f1b, 0x00151713, 0x00141512, 0x00191a17, 0x001e1e1b, 0x001c1c1a, 0x00171615,
- 0x00081215, 0x001c130e, 0x00513726, 0x006a4224, 0x00441e06, 0x00230f00, 0x00161008, 0x0014191d, 0x00272d30, 0x0042423e, 0x00525152, 0x004d5863, 0x004a5572, 0x003d5176, 0x003f5484, 0x0042558d,
- 0x00365085, 0x00314d79, 0x00325077, 0x00324f6f, 0x00274c60, 0x00274575, 0x00244380, 0x00254584, 0x00224687, 0x00234789, 0x0025478d, 0x0025478d, 0x00294b8f, 0x002b4a8e, 0x002b478a, 0x002b4588,
- 0x00344265, 0x004b4a58, 0x006b5957, 0x008d6851, 0x00ae8466, 0x00795c3f, 0x002a1704, 0x00120d03, 0x00080f0a, 0x000b100a, 0x000a0d08, 0x000c0c07, 0x0011100c, 0x0011120c, 0x000d0e0b, 0x0040413d,
- 0x00d0d1d0, 0x00fafbfa, 0x00fefdfd, 0x00fcfcfb, 0x00fdfeff, 0x00eff2f2, 0x00cccdcc, 0x00abaaaa, 0x007e7b7c, 0x00585354, 0x00484143, 0x005a5456, 0x006e686b, 0x00787477, 0x0089898a, 0x00a0a1a2,
- 0x00c3bdba, 0x00bab2ae, 0x00aba39c, 0x00c4bdb4, 0x00cfc8be, 0x00b7b1a5, 0x00928d81, 0x00807870, 0x008b817f, 0x00a49999, 0x00ada3a5, 0x009c9699, 0x00a3a09e, 0x00c4c2be, 0x00acaba5, 0x00808077,
- 0x00827f77, 0x0083827c, 0x00827f7d, 0x00a09c9b, 0x00a5a0a3, 0x00908f8b, 0x009fa097, 0x00aaaa99, 0x0069744a, 0x00374410, 0x00384617, 0x00364621, 0x003c4945, 0x003b485b, 0x002c355f, 0x00343a76,
- 0x005d6375, 0x00666e84, 0x0055607d, 0x00324463, 0x002d486a, 0x00335172, 0x0029476a, 0x00324e70, 0x002a475f, 0x00133048, 0x002d364d, 0x00917385, 0x00bfafc1, 0x00aca8b6, 0x00adb4c1, 0x00c7d9e5,
- 0x00b2c2cd, 0x005e6978, 0x00181b2d, 0x00272236, 0x002e1d33, 0x0031333d, 0x007e878e, 0x009ca2a7, 0x00b8bdbb, 0x00afb1ab, 0x00616258, 0x00848278, 0x009a938d, 0x00958b8a, 0x009b9093, 0x00beb1b6,
- 0x00acada5, 0x00767770, 0x00a8a8a3, 0x00e0dedb, 0x00bdbab4, 0x00acaaa2, 0x00c1c0b6, 0x00cbccc2, 0x009b9c98, 0x007a7d7d, 0x008d8f89, 0x00b3b6a2, 0x00cfcebb, 0x00c7c8b7, 0x00a8a896, 0x0082826d,
- 0x00606049, 0x006d7157, 0x00919378, 0x00929574, 0x008d9170, 0x00777b67, 0x00494b41, 0x0037392d, 0x002a2b25, 0x001f1e1c, 0x0022201e, 0x00221e1d, 0x00221c1a, 0x0028211e, 0x002c2520, 0x0028211b,
- 0x00342914, 0x0044371d, 0x006b5e3c, 0x0090835c, 0x0081714b, 0x00715e3e, 0x00735e41, 0x007a614a, 0x00856751, 0x008b6c54, 0x008f735a, 0x008f745d, 0x0083684c, 0x007a5d40, 0x00705431, 0x00694d25,
- 0x00583a16, 0x00553918, 0x00664d30, 0x00bca58e, 0x00fffbea, 0x00fafcf2, 0x00fbfef9, 0x00fcfdfd, 0x00f7f9f7, 0x00babdbd, 0x00696c6e, 0x0092949a, 0x00cfd2da, 0x00edf0f8, 0x00f8fcff, 0x00f8fefe,
- 0x00fffbfe, 0x00fffcfe, 0x00fcfbfc, 0x00fcfcfb, 0x00fdfdfc, 0x00fbfbfb, 0x00fcfcfb, 0x00fcfbf9, 0x00fefcfe, 0x00f4f4f3, 0x00fcf9f8, 0x00f8f2f3, 0x00f8f3f2, 0x00f3efec, 0x00e8e4df, 0x00e5e3db,
- 0x00d8d2cd, 0x00d1cbc7, 0x00c3bcb8, 0x00b9b0aa, 0x00b1a7a4, 0x00a4a1a2, 0x0094989b, 0x008e8f93, 0x007c7b7c, 0x006a6866, 0x0053514c, 0x0043403a, 0x003d3834, 0x0039332f, 0x00362f2b, 0x00332b26,
- 0x003a2524, 0x003a2424, 0x003a2825, 0x003d2f29, 0x003a342a, 0x00383427, 0x00848173, 0x00dbd6c9, 0x00ece8d7, 0x00f0e8d8, 0x00f2ead9, 0x00f8edde, 0x00d8d5c8, 0x007c7870, 0x000e0b06, 0x000b0b09,
- 0x000a0a06, 0x00080903, 0x00110e07, 0x0020180f, 0x002d2217, 0x00252415, 0x00171a0d, 0x000e0e03, 0x000a0607, 0x000f090c, 0x00140e12, 0x00181113, 0x001d1414, 0x001e1511, 0x0019110a, 0x00170e03,
- 0x00040505, 0x00030404, 0x005e5e5e, 0x00e6e6e6, 0x00fdfdfd, 0x00fefdfd, 0x00ffffff, 0x00fffeff, 0x00dadbda, 0x008c8d8c, 0x005c5e5f, 0x00545759, 0x003a3d41, 0x0021242a, 0x0012151e, 0x000b0d16,
- 0x00090d15, 0x00070c13, 0x00090e17, 0x00081014, 0x000a1015, 0x00131317, 0x001c171f, 0x0026212b, 0x00201a22, 0x000e090f, 0x000b060b, 0x000b080d, 0x000c0b12, 0x000e0f18, 0x0023252f, 0x00474a54,
- 0x00606868, 0x00666a68, 0x0073736f, 0x007c7972, 0x00807569, 0x00675645, 0x004f3620, 0x007a5a40, 0x00ba8f6e, 0x00bc8e69, 0x00bc8c69, 0x00b78a64, 0x00b28d6f, 0x00b49a82, 0x00c3b3a7, 0x00d4d0cb,
- 0x00cad1d5, 0x00c8d2d9, 0x00c7d3df, 0x00c4d2e0, 0x00bacad3, 0x00b6c3ce, 0x00b6c3cf, 0x00bbc6d4, 0x00b7c1cb, 0x00b2bbc5, 0x00acb5be, 0x00adb6bd, 0x00b1b8bf, 0x00b2b8bf, 0x00bcc1c9, 0x00bdc1cb,
- 0x00b2bcc2, 0x00afb8c0, 0x00b9c1cb, 0x00c6ced8, 0x00cfd6e1, 0x00cbd0dc, 0x00c6cad7, 0x00c3c5d4, 0x00bfc0ce, 0x00c0c2d0, 0x00c4c4d1, 0x00c0c1c9, 0x00bfc3c8, 0x00b8bbc1, 0x0098999e, 0x0076787b,
- 0x006d6e6d, 0x006b6e6d, 0x006c706f, 0x00747875, 0x00828280, 0x0092645d, 0x00742a22, 0x00610b0e, 0x005e0209, 0x004c0303, 0x00400601, 0x00390c00, 0x005f0501, 0x007f1315, 0x00973132, 0x00802f2f,
- 0x0022172c, 0x001c1c2b, 0x00292d3a, 0x00354048, 0x004c5459, 0x008c8d90, 0x00f2edf0, 0x00fefcff, 0x00fff9fd, 0x00f9fbfb, 0x00f7fcfa, 0x00e2e0e0, 0x00555556, 0x00090708, 0x00050304, 0x00050304,
- 0x00030202, 0x00050404, 0x00050506, 0x00040406, 0x00070505, 0x000e0603, 0x00140a05, 0x001b100b, 0x001e140e, 0x001f150e, 0x00231910, 0x00271d12, 0x00281e10, 0x0023190a, 0x001c1203, 0x00180d01,
- 0x00161810, 0x00242620, 0x0040423c, 0x005c5d5b, 0x007e7d7f, 0x009d9c9f, 0x00bbbabd, 0x00d5d4d7, 0x00edeaf2, 0x00f6f5fa, 0x00fbfafe, 0x00fdfdff, 0x00fbfbfd, 0x00f9fafb, 0x00fafafc, 0x00fdfcfe,
- 0x00fcfcfd, 0x00fcfcfd, 0x00fefefd, 0x00fcfdfa, 0x00fafafa, 0x00fbfbf9, 0x00fdfef8, 0x00fbfdf6, 0x00fdfefb, 0x00fcfefa, 0x00f9faf7, 0x00ecefe8, 0x00dddedb, 0x00cdcec9, 0x00a9aaa6, 0x008e8f8b,
- 0x0094a395, 0x00e1cfcd, 0x00e1b6c0, 0x009b6177, 0x00502641, 0x0035112d, 0x00300e2d, 0x003b0934, 0x00260837, 0x00100c36, 0x00141b49, 0x00172458, 0x00181f54, 0x000e1749, 0x00121548, 0x000e1144,
- 0x000d0c40, 0x00151446, 0x00121045, 0x0008073d, 0x001c1b51, 0x0055577c, 0x00aeb2c9, 0x00d2d8e4, 0x00f5f8f5, 0x00f9fcf8, 0x00f4f7f5, 0x00f8fbfc, 0x00f9f8ff, 0x00fbf9ff, 0x00faf9fa, 0x00f8f6f3,
- 0x00f9fcee, 0x00fbfcf0, 0x00fdfef4, 0x00fcfef7, 0x00fafcf8, 0x00f7fbf9, 0x00f7fcfc, 0x00f8fdff, 0x00f0f7fc, 0x00e8effa, 0x00dfe8f2, 0x00dee6ed, 0x00ecf5fd, 0x00f5faff, 0x00f5f9fd, 0x00f9fcff,
- 0x00ece9f8, 0x00dfddea, 0x00e6e4ee, 0x00f5f4f9, 0x00fcfaf9, 0x00f8f4ee, 0x00fbf9f0, 0x00f9f9f1, 0x00f6fbf3, 0x00f9fef9, 0x00f3fdf6, 0x00f2fdf8, 0x00fbfefb, 0x00fcfcfa, 0x00f9f8fa, 0x00fefafa,
- 0x00e7f3ff, 0x00c6cdf5, 0x00a7abe3, 0x00c8c9fa, 0x00c7cbf6, 0x00a8b1c9, 0x00cad5e2, 0x00e6f1fb, 0x00b4c2f0, 0x009ca7f1, 0x00b9c6ff, 0x00d9ecfe, 0x00c2d1f6, 0x0095a0d4, 0x00b6bee8, 0x00ebeffd,
- 0x00eaedf8, 0x00f2f3f5, 0x00fbfbf4, 0x00fdfcf7, 0x00fcf9fb, 0x00f3f3f4, 0x00f3f5f1, 0x00f9f8f6, 0x00f8f8f8, 0x00f8f8f8, 0x00f7f7f7, 0x00fafafa, 0x00fafafa, 0x00f9f9f9, 0x00f9f9f9, 0x00f9f9f9,
- 0x00fafdfb, 0x00fafdfb, 0x00fdfefb, 0x00fdfefb, 0x00fbfefc, 0x00fbfdfc, 0x00fcfdfb, 0x00fdfdfd, 0x00fcfefb, 0x00fdfefd, 0x00fdfdfd, 0x00fbfbfb, 0x00fefcfe, 0x00fdfcfd, 0x00fdfefe, 0x00fcfdfd,
- 0x00fcfbfd, 0x00fdfdfe, 0x00fdfcfd, 0x00f9f8f8, 0x00fafbfb, 0x00f9fbfa, 0x00fafdfa, 0x00f9fdf9, 0x00fcfefd, 0x00fbfefd, 0x00fafdfa, 0x00f6faf6, 0x00f1f5f2, 0x00ecf0ed, 0x00e0e3e0, 0x00d6d9d6,
- 0x00c5cacb, 0x00b4b8bc, 0x00999fa5, 0x00818b92, 0x0066707a, 0x004d5a64, 0x003b4a54, 0x003b4a55, 0x00455058, 0x00485258, 0x00525a5f, 0x00555c5c, 0x00485054, 0x003b464c, 0x002f3d48, 0x0020313e,
- 0x000f2b3a, 0x000d2c3f, 0x00193952, 0x001c4057, 0x00274b6b, 0x002c5071, 0x00345479, 0x003a577b, 0x003f5771, 0x0043576d, 0x004a5c6d, 0x00525f68, 0x00666c6e, 0x00737472, 0x007c7b76, 0x007f7b75,
- 0x0075767c, 0x006e7075, 0x00616267, 0x00535559, 0x00444549, 0x00424448, 0x0046484d, 0x004c4f53, 0x0056585a, 0x005e5e62, 0x005e6268, 0x00555d66, 0x00454e54, 0x00363e44, 0x00252d33, 0x001d252c,
- 0x002a2e33, 0x0035393c, 0x00484c51, 0x0057595d, 0x00626566, 0x00606668, 0x00575f63, 0x004f5559, 0x0042474d, 0x003b4046, 0x00383c42, 0x00383c41, 0x004c5054, 0x00575b5e, 0x0055595b, 0x00636668,
- 0x00bbc0bd, 0x00f5f7f7, 0x00fcfdfc, 0x00fdfafb, 0x00fefbfc, 0x00fcfbfa, 0x00bdbcbe, 0x00838486, 0x00b0b4b8, 0x00d1d6da, 0x00939bac, 0x004f5a84, 0x00454f7a, 0x0048527e, 0x0049537e, 0x0046507d,
- 0x00465180, 0x00465180, 0x00465081, 0x00465081, 0x00475084, 0x0047507f, 0x00454f79, 0x00424c76, 0x003b456b, 0x00354063, 0x002f3b5a, 0x00293652, 0x00202d46, 0x0019273c, 0x00172639, 0x0018273c,
- 0x00202e44, 0x00243249, 0x002a3954, 0x002f3f5e, 0x00354567, 0x0037496b, 0x00394c6d, 0x00384c6c, 0x00364e6b, 0x00364f67, 0x00355069, 0x0033506b, 0x0039556f, 0x0039546e, 0x00415b74, 0x00476378,
- 0x00516a7f, 0x00567082, 0x005e7787, 0x00647c8c, 0x006c8492, 0x00738c98, 0x0077919c, 0x007a939e, 0x007e94a4, 0x008094a7, 0x007e90a8, 0x00697a97, 0x003e4e75, 0x00293969, 0x0026346a, 0x00303c75,
- 0x004d5270, 0x00626781, 0x008e93a8, 0x00b3b8c5, 0x00bbbdc0, 0x00bbbdb5, 0x00d4d6c8, 0x00e3e5d2, 0x00eee7d5, 0x00f1ebd6, 0x00f0edd7, 0x00eae8d2, 0x00e5e3ce, 0x00e2e0cc, 0x00ddddca, 0x00d8d8c6,
- 0x00e6e4d4, 0x00f7f6e6, 0x00e5e3d7, 0x00c6c3b8, 0x00b8b5ab, 0x00c5c2b3, 0x00e5e2d2, 0x00f9f6e4, 0x00ececdf, 0x00dcdacf, 0x00cfcfc7, 0x00cfd1cb, 0x00ecede9, 0x00f9f9f6, 0x00fbfcf8, 0x00f5f7f3,
- 0x00eeeee9, 0x00d5d5d0, 0x00d4d5ce, 0x00d4d5ce, 0x00b4b5b1, 0x00d1d2cf, 0x00f8f9f6, 0x00fefefd, 0x00f8f9f9, 0x00fefeff, 0x00fefefd, 0x00fdfdfd, 0x00fefdfa, 0x00fdfdfc, 0x00fbfcf8, 0x00fafaf7,
- 0x00fefaf8, 0x00fffcf6, 0x00fffbf6, 0x00fffbf7, 0x00fffbf7, 0x00fbf9f5, 0x00fffffb, 0x00fefdf9, 0x00fbfaf8, 0x00f2f0ed, 0x00dfdbd9, 0x00c8c4bd, 0x009d9894, 0x007e7871, 0x00514847, 0x002e2423,
- 0x00bfbcaf, 0x003c3429, 0x003f372d, 0x003b352a, 0x003a342a, 0x003c352b, 0x00474237, 0x00544f45, 0x00585247, 0x00484136, 0x00332c24, 0x0027241c, 0x00282519, 0x00232112, 0x00171607, 0x000f0f01,
- 0x0013171a, 0x002c3448, 0x004e597f, 0x004e5d99, 0x005e6eb8, 0x007081c3, 0x006d7fb2, 0x00687ba0, 0x006e7e95, 0x00717e94, 0x00697389, 0x00535b77, 0x00414a6a, 0x0038435f, 0x00404c67, 0x004e5d73,
- 0x004e629d, 0x00475c95, 0x004a6099, 0x00536ba6, 0x005570b0, 0x004e6cb1, 0x004868b4, 0x004565b8, 0x004368c6, 0x00456ac8, 0x004865c3, 0x004a5fb6, 0x00465ab5, 0x00435ab4, 0x00465db4, 0x004960b2,
- 0x00495e9f, 0x00616fa0, 0x008e94b4, 0x00d3d6e2, 0x00bfbcba, 0x00565654, 0x00121312, 0x00171817, 0x001f211c, 0x001d1e1a, 0x001b1b18, 0x00161614, 0x001a1a18, 0x001d1d1c, 0x001a1b19, 0x00151513,
- 0x00081316, 0x00150f09, 0x003e2a17, 0x00644023, 0x0046220e, 0x001f0a00, 0x0017100b, 0x00181b1d, 0x0030302b, 0x004a4538, 0x005e564c, 0x005f5c60, 0x00565762, 0x003d4555, 0x002f3e56, 0x00314565,
- 0x002a4570, 0x00224471, 0x00224770, 0x00184266, 0x001c4567, 0x00254276, 0x002c437f, 0x002a4482, 0x00274685, 0x00254485, 0x0028498b, 0x002c4c8e, 0x00325091, 0x00375392, 0x00344e8c, 0x002d4583,
- 0x003c3c52, 0x00615152, 0x00825f50, 0x00a2714e, 0x00b18360, 0x0064472e, 0x001e1103, 0x000b0f09, 0x00060e0b, 0x000c0e06, 0x000e0c05, 0x000e0f09, 0x0012120d, 0x0011120c, 0x000d0f0b, 0x0041423d,
- 0x00d2d2d1, 0x00fcfcfb, 0x00fdfdfb, 0x00fdfcfb, 0x00ffffff, 0x00f3f5f5, 0x00cacdcb, 0x009e9f9d, 0x00736f6e, 0x005c5657, 0x00514b4d, 0x00534d4f, 0x00645d5f, 0x006b6868, 0x007e8080, 0x00919394,
- 0x00cac3c3, 0x00c6c1be, 0x00aaa5a0, 0x00bfb9b2, 0x00cac5bd, 0x00aea9a1, 0x008f8880, 0x0079746e, 0x00877f7d, 0x009f9796, 0x00a8a2a4, 0x00999699, 0x00aaa6a6, 0x00c8c5c3, 0x00abaaa5, 0x0073746c,
- 0x00929188, 0x008e8b88, 0x007a7675, 0x00929090, 0x009b989c, 0x00918e88, 0x00969383, 0x009d9d87, 0x00626845, 0x00303912, 0x002f3a18, 0x00313f26, 0x0038444a, 0x002e3853, 0x001f2852, 0x00171d5a,
- 0x002a3c52, 0x003d5069, 0x00233b5a, 0x000b274b, 0x001a3a63, 0x0023436b, 0x001c3d63, 0x001f3e62, 0x00173756, 0x000c2e48, 0x00364860, 0x00978b9f, 0x00bbb7c8, 0x00acb1be, 0x00b6c0cc, 0x00d8e7f3,
- 0x00bdccde, 0x005d687c, 0x00171e32, 0x002f2f45, 0x00353146, 0x003b3e4e, 0x008f94a1, 0x00a5abb3, 0x00b4b9b9, 0x00a2a5a0, 0x00494c40, 0x00636357, 0x008e8982, 0x00908888, 0x009c9497, 0x00aaa0a5,
- 0x00afadad, 0x00908f8d, 0x00969693, 0x00aaaaa5, 0x008f8e85, 0x0084827a, 0x009a9890, 0x00bcbbb4, 0x00c0bcbd, 0x00a4a3a1, 0x009b9a92, 0x00acad9b, 0x00b9b7a6, 0x00a2a28f, 0x0075735f, 0x004e4e36,
- 0x00383721, 0x0041422b, 0x0062634b, 0x0065664b, 0x00595c3f, 0x00494b38, 0x00303125, 0x002a2b1e, 0x002c2b26, 0x001e1b19, 0x00130f0c, 0x00140e0d, 0x00282020, 0x00322a29, 0x00342c27, 0x00302822,
- 0x003b2a1a, 0x0052422a, 0x007d6f4b, 0x009c8d63, 0x009d8a63, 0x008f785b, 0x00897258, 0x00856c5a, 0x00806752, 0x007e6447, 0x00795e42, 0x006b503c, 0x0061462f, 0x00604328, 0x005d4020, 0x005d3e1b,
- 0x005c3f1e, 0x0052391a, 0x00695137, 0x00b9a490, 0x00fef8ec, 0x00fcfdf7, 0x00fefffd, 0x00fdfefb, 0x00f8f7f7, 0x00bdc0bf, 0x006c6f71, 0x009d9fa2, 0x00d6d9dd, 0x00f3f6f8, 0x00fbfdfe, 0x00f8fdfb,
- 0x00fffcf6, 0x00fdfaf6, 0x00faf7f3, 0x00f7f5f0, 0x00edeae5, 0x00e9e6e0, 0x00dddad4, 0x00d3d0c8, 0x00d8d1cf, 0x00d1cec9, 0x00e5deda, 0x00ddd0cd, 0x00c0b3ac, 0x00b1a69f, 0x009f938b, 0x0094867b,
- 0x007d7166, 0x006d6158, 0x00564b43, 0x004a3d37, 0x00433635, 0x00423d40, 0x003f4144, 0x00414242, 0x003b3936, 0x002b2822, 0x001b180e, 0x00130e04, 0x00130b04, 0x00140905, 0x00190d08, 0x001e110a,
- 0x003b1719, 0x00401f20, 0x004e3231, 0x0056413c, 0x005a4c42, 0x00574d40, 0x009b9584, 0x00e4dfcc, 0x00f1ebd7, 0x00f2edd9, 0x00f3ecd7, 0x00f9ebda, 0x00dcd4c8, 0x00817c73, 0x000b0a03, 0x00060803,
- 0x00070805, 0x000b0a04, 0x0019140b, 0x00292115, 0x00392c1e, 0x00342c19, 0x00282211, 0x001d1508, 0x00130a08, 0x00100709, 0x000f090c, 0x00100b0e, 0x00150e0f, 0x00160e0b, 0x00100a04, 0x000e0800,
- 0x00010202, 0x00030303, 0x006d6d6d, 0x00e7e7e7, 0x00ffffff, 0x00fcfcfc, 0x00fefefe, 0x00fdfdfd, 0x00dbdbdc, 0x008c8c8d, 0x00595b5c, 0x00494d4e, 0x00262a2f, 0x0012161d, 0x000d121a, 0x00090c17,
- 0x000b0d18, 0x000a0b19, 0x000a0d17, 0x000a0e15, 0x000d1014, 0x0012111c, 0x00211e2b, 0x003e3947, 0x00322b35, 0x000c060e, 0x00050006, 0x00030006, 0x0006040d, 0x00080814, 0x00232634, 0x00474c5a,
- 0x00646a69, 0x00696d69, 0x00747570, 0x007a7971, 0x0082786e, 0x00796859, 0x007a604c, 0x009b7b61, 0x00bf9474, 0x00bd8e68, 0x00bc8d68, 0x00a98160, 0x00aa8b72, 0x00bea999, 0x00cbc0bb, 0x00d3d5d7,
- 0x00c6d3dd, 0x00c4d3dd, 0x00c4d4e0, 0x00c5d4df, 0x00c4cdd7, 0x00b8c0cc, 0x00b1bdca, 0x00b3beca, 0x00b4bdc7, 0x00b3bcc6, 0x00b3bbc5, 0x00b2bac3, 0x00b9bfc8, 0x00bdc2ca, 0x00bbc0c7, 0x00b0b4bb,
- 0x00a5adbc, 0x00b1b9c8, 0x00c9d0e0, 0x00d1d9e7, 0x00d0d5e4, 0x00cbcfde, 0x00c2c6d5, 0x00bbbdcd, 0x00b4b7c5, 0x00aeb1be, 0x00a9a9b8, 0x00a5a5b3, 0x00a7a8b4, 0x00bcbdc6, 0x00b7b8c0, 0x0098989f,
- 0x00727376, 0x00676a6b, 0x006f7170, 0x00717571, 0x007c7f7c, 0x008f6a60, 0x006c3227, 0x00531416, 0x005b0312, 0x004d0208, 0x00430305, 0x00380b00, 0x00620805, 0x00881b1f, 0x009c343b, 0x006c2c2c,
- 0x0020172d, 0x001b1d2d, 0x0029313c, 0x00324045, 0x004f585c, 0x009f9fa2, 0x00faf5f8, 0x00fffcfe, 0x00fef9fe, 0x00fafdff, 0x00fafdfd, 0x00ccc8c9, 0x00363335, 0x00050204, 0x00040203, 0x00050505,
- 0x00070508, 0x00050507, 0x00050606, 0x00080707, 0x000e0907, 0x00140b07, 0x00170c06, 0x001d100a, 0x00251813, 0x002a1d16, 0x002a1e16, 0x00291d15, 0x00281c13, 0x0025190f, 0x001e1208, 0x00130700,
- 0x00050602, 0x00030401, 0x00030502, 0x00070908, 0x00121015, 0x00211e25, 0x003e3c43, 0x005f5d64, 0x00878690, 0x00a7a5b0, 0x00c5c3ce, 0x00dfdee5, 0x00f7f6f9, 0x00fdfdfe, 0x00fafafe, 0x00faf9ff,
- 0x00feffff, 0x00feffff, 0x00fcfdfb, 0x00fbfdfa, 0x00fdfeff, 0x00fdfcfd, 0x00fcfbf9, 0x00fcfdfb, 0x00fdfef9, 0x00fcfdfa, 0x00fbfaf9, 0x00fdfcfa, 0x00fffdfd, 0x00fcfbf9, 0x00f4f4f1, 0x00eeeeed,
- 0x00e0eae4, 0x00f0e3e2, 0x00f9d6dd, 0x00d9a4b4, 0x00916e7b, 0x007d5669, 0x006c425d, 0x00682e54, 0x00401942, 0x00211837, 0x001c2347, 0x00131e4a, 0x000e1542, 0x00131944, 0x0010123e, 0x000a0c37,
- 0x00111040, 0x00151444, 0x00101042, 0x00060a3d, 0x001c1f55, 0x003c3d6b, 0x009191b3, 0x00e0e4f2, 0x00fafdfd, 0x00f7fbf9, 0x00f5f9f9, 0x00f7f9fd, 0x00fbf8ff, 0x00fbf8fc, 0x00f9f7f7, 0x00f9f6f4,
- 0x00fefef4, 0x00fdfdf4, 0x00fbfdf4, 0x00f8fcf7, 0x00f9fdfc, 0x00f7fffe, 0x00edf8fd, 0x00e0ebfb, 0x00cad7ee, 0x00b6c6e5, 0x00acbdd7, 0x00b6c4d6, 0x00dfe7f9, 0x00f2faff, 0x00f1f8fe, 0x00e1e5f9,
- 0x00babad6, 0x00b5b5ca, 0x00dcdde9, 0x00f4f5fb, 0x00fafafa, 0x00fbfcf2, 0x00fcfdf0, 0x00f8f9f3, 0x00f7fcfd, 0x00f6fefe, 0x00eefbfb, 0x00e3f0f6, 0x00edf2f8, 0x00fcfdfd, 0x00faf9fb, 0x00fefaf8,
- 0x00cddaf9, 0x009fa9e1, 0x00a7ace5, 0x00e0e2ff, 0x00cbd1f5, 0x00abb4d4, 0x00d7e0f1, 0x00e5f0ff, 0x00b0b8e8, 0x00a8afee, 0x00dae2ff, 0x00dae7fe, 0x00aeb8e4, 0x00868db8, 0x00a8acd3, 0x00d1d5f3,
- 0x00cfd0da, 0x00e6e8e9, 0x00fbfcf9, 0x00fefcfc, 0x00fbf7fe, 0x00f5f4f7, 0x00f6f7f5, 0x00f9f9f7, 0x00f9f9f9, 0x00f9f9f9, 0x00f9f9f9, 0x00fcfcfc, 0x00fdfdfd, 0x00fcfcfc, 0x00fcfcfc, 0x00fcfcfc,
- 0x00fefeff, 0x00fefdff, 0x00ffffff, 0x00fefefe, 0x00fefdff, 0x00fffeff, 0x00fefffe, 0x00fffefd, 0x00fdfdfb, 0x00fbfafb, 0x00fbfcfc, 0x00fafcfa, 0x00fdfdfe, 0x00fdfdfe, 0x00fdfdfe, 0x00fdfbfd,
- 0x00fbfcfe, 0x00fafdfe, 0x00fdfdfd, 0x00fdfdfc, 0x00fcfeff, 0x00feffff, 0x00fcfcfb, 0x00f4f7f6, 0x00e9eced, 0x00e2e5e6, 0x00d9dcdb, 0x00d1d4d2, 0x00c6c8c9, 0x00b6b9ba, 0x00a1a4a4, 0x008f9393,
- 0x007b8081, 0x00686b6e, 0x0051555c, 0x00464e58, 0x0037434f, 0x002b3a46, 0x0024333f, 0x002c3845, 0x003f4a52, 0x004c565d, 0x00586165, 0x00565e63, 0x00535a60, 0x004a525c, 0x003c4853, 0x002b3948,
- 0x00152b3a, 0x0012293c, 0x001b334a, 0x001f3950, 0x002c4662, 0x002f4a67, 0x00344d6b, 0x00374f6d, 0x003c4e65, 0x003a495d, 0x003a4657, 0x00404955, 0x0050545a, 0x005f6061, 0x006e6d6c, 0x00777471,
- 0x0077767e, 0x00717178, 0x005f6068, 0x00484a52, 0x0033353d, 0x0030323a, 0x00373940, 0x0041434a, 0x00505156, 0x00595a5f, 0x005c6068, 0x00535c66, 0x00434c55, 0x00303842, 0x001b232c, 0x00111922,
- 0x001f232c, 0x002a2f35, 0x0040454b, 0x0052545b, 0x005d5f63, 0x00585e64, 0x004f5760, 0x00494f54, 0x003b4046, 0x002f343a, 0x002b3035, 0x00303439, 0x0045484d, 0x00525459, 0x0054565a, 0x005a5c60,
- 0x00adafaf, 0x00f4f5f6, 0x00fbfbfb, 0x00fdfbfc, 0x00fffbfc, 0x00fdfafb, 0x00c8c4c8, 0x00868486, 0x00a8abaa, 0x00d7dbd9, 0x00b0b6c3, 0x005e698f, 0x00464f78, 0x0047527a, 0x0048527b, 0x0045517a,
- 0x0047517f, 0x0047517d, 0x0047507e, 0x0047507e, 0x00475180, 0x0047527d, 0x00455079, 0x00444d76, 0x003c466c, 0x00374265, 0x00303d5c, 0x00293752, 0x00222e47, 0x001c293e, 0x0018273a, 0x0018273c,
- 0x001e2c42, 0x00223148, 0x00283752, 0x002c3d5a, 0x00304261, 0x00314664, 0x00334967, 0x00344b68, 0x00324d65, 0x00324e60, 0x00304e62, 0x002f4f68, 0x0034536b, 0x0036546a, 0x003d5a70, 0x00436173,
- 0x004d697a, 0x00516d7b, 0x005c7986, 0x00617d8a, 0x006b8590, 0x00748a98, 0x00798d9c, 0x007d939e, 0x007f95a0, 0x007e94a2, 0x008296a6, 0x007c8fa6, 0x0065759a, 0x00465485, 0x00313f75, 0x0033417a,
- 0x00464d78, 0x004e547b, 0x00555d7d, 0x007a8299, 0x00b5b9c4, 0x00bec1c2, 0x00bec0ba, 0x00cacabf, 0x00e8e5d6, 0x00f2efdc, 0x00eae8d6, 0x00eae8d9, 0x00e9e5d6, 0x00e7e4d5, 0x00e6e5d5, 0x00e7e5d5,
- 0x00f4f3e6, 0x00fffef0, 0x00d7d5c9, 0x00c3c0b6, 0x00ccc8bf, 0x00cfccbe, 0x00e3dfd2, 0x00f5f2e2, 0x00f0eee2, 0x00e1dfd4, 0x00d2d2c8, 0x00d8d9d1, 0x00f5f4ef, 0x00fffffb, 0x00f7f8f4, 0x00f0f1ed,
- 0x00e9e8e5, 0x00dbdbd7, 0x00e4e4de, 0x00e5e7e0, 0x00d2d4d0, 0x00e3e4e2, 0x00fcfcfa, 0x00fefefd, 0x00f9f9f9, 0x00fdfdfc, 0x00fdfefe, 0x00fcfffe, 0x00fefefe, 0x00fffffd, 0x00fffefc, 0x00fffffd,
- 0x00fffffb, 0x00fefffa, 0x00fdfdfa, 0x00fdfdf9, 0x00fffff9, 0x00fcfdf9, 0x00f7f7f5, 0x00e9e7e3, 0x00cdcbc7, 0x00aba9a5, 0x00878281, 0x00615b5a, 0x00342d2c, 0x00241d1b, 0x00302827, 0x00322a28,
- 0x00cbc6ba, 0x005e5348, 0x005c5044, 0x005d5345, 0x005d5243, 0x005d5041, 0x00625547, 0x00706455, 0x0073685a, 0x00655a4b, 0x004f4638, 0x003e3b2c, 0x003c3628, 0x00322d20, 0x00252119, 0x001d1c16,
- 0x0025232e, 0x00414357, 0x00646b85, 0x00637097, 0x00596696, 0x00525d82, 0x003e4a61, 0x00273443, 0x001c2027, 0x0014171d, 0x000d0e15, 0x000c0b1c, 0x000b0b20, 0x00090a1c, 0x000b0f1a, 0x0010171c,
- 0x00131224, 0x00111323, 0x00191f2d, 0x00263041, 0x00303b55, 0x00344365, 0x00394a77, 0x003b4d82, 0x004b58a1, 0x004f62ad, 0x005267b2, 0x005265b1, 0x00485fb2, 0x003e58b0, 0x003d59ad, 0x00425bad,
- 0x004b5da7, 0x0057639c, 0x007d82a8, 0x00b5b9c9, 0x00dddbdb, 0x00929593, 0x00272927, 0x00161914, 0x00222220, 0x001d1d1a, 0x001a1918, 0x00161515, 0x001b1b18, 0x001e1f1c, 0x001a1c18, 0x00161812,
- 0x000e1920, 0x0015100a, 0x00332110, 0x0078563d, 0x0074523e, 0x0028150b, 0x0016110c, 0x00202520, 0x003c3a32, 0x004c4834, 0x00534c39, 0x00514c49, 0x004f4b41, 0x00434136, 0x0036372b, 0x00282e28,
- 0x001c2b38, 0x00102639, 0x00182d42, 0x001c2f48, 0x0022314a, 0x00243050, 0x002c3559, 0x00303d5f, 0x002f3d67, 0x0032426c, 0x00354772, 0x003b4d76, 0x00394870, 0x00364368, 0x00293558, 0x001f2b4d,
- 0x004d3134, 0x00865c4e, 0x0096603f, 0x00a36434, 0x0090623a, 0x004a311c, 0x00171509, 0x00071619, 0x0008110f, 0x00100f07, 0x00100c05, 0x0010100b, 0x00151611, 0x0013150e, 0x0010140f, 0x0043453e,
- 0x00d2d0cf, 0x00fefdfd, 0x00fdfdfb, 0x00fdfcfb, 0x00fdfdff, 0x00f9fbfb, 0x00e2e6e2, 0x00c5c8c5, 0x00b3aeb1, 0x00b2acae, 0x00ada7a8, 0x00a9a2a3, 0x00aea5a7, 0x00aeacac, 0x00b6bab7, 0x00bdc1bd,
- 0x00e0d8df, 0x00e5dee2, 0x00cfcbcb, 0x00dbd8d4, 0x00dfdcd7, 0x00ceccc5, 0x00bcbcb4, 0x00b3b4ac, 0x00c0bbbb, 0x00c9c4c5, 0x00cbc9cc, 0x00c8c7cb, 0x00d7d3d4, 0x00e2dfdd, 0x00cdcec8, 0x00b1b3aa,
- 0x00c8c6c4, 0x00cac7c6, 0x00b7b2af, 0x00c0bfbe, 0x00c4c3c5, 0x00c9c3c2, 0x00cac2be, 0x00c9c6be, 0x00ada9a4, 0x008d8d84, 0x008e938a, 0x00919a96, 0x00919ca1, 0x008a96a6, 0x008392a1, 0x0077869d,
- 0x008591a1, 0x0095a3b3, 0x008293a7, 0x007c8fa5, 0x008195af, 0x00889bb4, 0x007f93a9, 0x007b8d9f, 0x007a8896, 0x00839099, 0x00a3afb6, 0x00ced1d8, 0x00d4dce0, 0x00d9dce4, 0x00dee2e7, 0x00eaedf2,
- 0x00e2e1ed, 0x00b2b4c2, 0x008e949e, 0x00a3abb4, 0x00a7b0bc, 0x00a9b1bf, 0x00cdcfde, 0x00d3d6e0, 0x00d6d8da, 0x00c2c4c0, 0x00979a8f, 0x00a7a99c, 0x00c3c0b8, 0x00c8c4c2, 0x00d3cfd0, 0x00d6d0d3,
- 0x00e4dde7, 0x00dbd7da, 0x00b6b6ae, 0x00abad9f, 0x00a4a698, 0x00a5a69e, 0x00b2b1ae, 0x00c6c4c5, 0x00d8cfd3, 0x00d3cdcd, 0x00ccc8c2, 0x00cac9be, 0x00cbc8c0, 0x00b9b9ad, 0x00a6a696, 0x00989989,
- 0x00918e83, 0x00918f83, 0x00979688, 0x00979688, 0x008d8b7d, 0x008b8b7e, 0x008a8b7f, 0x008c8b80, 0x008d8a86, 0x008a8683, 0x0085807b, 0x00867f7c, 0x008e8583, 0x00958c88, 0x00979086, 0x009c958a,
- 0x00ac999d, 0x00b5a79d, 0x00c1b89c, 0x00cdc59f, 0x00d2c6a7, 0x00c4b5a5, 0x00b6a89c, 0x00aa9c98, 0x00a5948d, 0x00a79885, 0x00a99a88, 0x00a79790, 0x00aa9990, 0x00a99788, 0x00ab9985, 0x00af9f88,
- 0x00aa9586, 0x00a69587, 0x00b5a99d, 0x00dfd3cd, 0x00fefcf9, 0x00fdfdff, 0x00fbfdfe, 0x00fcfbfa, 0x00fdf9fc, 0x00bebcbc, 0x005c585a, 0x00817d7e, 0x00abaaa7, 0x00bcbdb8, 0x00b8bab5, 0x00b1b6af,
- 0x00b1ae9f, 0x00a19f90, 0x008b897c, 0x007f7d72, 0x00727166, 0x006a685e, 0x005c5952, 0x0065615d, 0x00887f82, 0x009a9291, 0x00c6bbba, 0x00b49e9c, 0x006b5951, 0x005a4b41, 0x0053483d, 0x0044392b,
- 0x003c3029, 0x00362b24, 0x00342c28, 0x003f393a, 0x00524a52, 0x005a555d, 0x00585659, 0x00565151, 0x004a4340, 0x00352e26, 0x00272013, 0x00251c0e, 0x001e1207, 0x00190b02, 0x001c0d05, 0x0023130a,
- 0x004f1a24, 0x0059282e, 0x00643c3e, 0x006c4b49, 0x00705a4f, 0x00796959, 0x00b4aa97, 0x00eae2cb, 0x00f0e7ce, 0x00f5eed6, 0x00f3edd4, 0x00fae9d6, 0x00ddd2c4, 0x00837e73, 0x000a0a01, 0x00000400,
- 0x000a0908, 0x000d0903, 0x001d160a, 0x002e2515, 0x0040321e, 0x003f3419, 0x00372c12, 0x002a1e09, 0x001b0c0b, 0x00130506, 0x000c0308, 0x000b040c, 0x000e060c, 0x000b0707, 0x00050501, 0x00020400,
- 0x00020101, 0x000d0d0d, 0x00848484, 0x00ededed, 0x00fefefe, 0x00fcfdfd, 0x00fdfefe, 0x00fcfdfd, 0x00dfdddf, 0x008e8c8f, 0x00555757, 0x003e4342, 0x00181c20, 0x000d1219, 0x000b101a, 0x00080c1a,
- 0x000b0d1c, 0x000c0c1d, 0x000a0b1a, 0x000c0e18, 0x000d0f17, 0x000a0c1c, 0x002b2f40, 0x00626675, 0x004b4854, 0x000f0c13, 0x00030001, 0x00060303, 0x00070408, 0x0009090e, 0x002c2f33, 0x004d5356,
- 0x006c6b6a, 0x00706f6b, 0x00777672, 0x007d7b74, 0x0082766d, 0x00816f60, 0x00987e67, 0x00b09173, 0x00be8f6f, 0x00bb8963, 0x00ba8b68, 0x00aa876f, 0x00b39a88, 0x00c1b5ae, 0x00cccbcb, 0x00cad9dd,
- 0x00c7d8ec, 0x00c0d3e3, 0x00bed0dd, 0x00c1d1da, 0x00c9cfd3, 0x00c1c9d3, 0x00b6c3d0, 0x00b1bec9, 0x00b4bac8, 0x00b7bec9, 0x00bac1cb, 0x00b8c0c8, 0x00b7bec6, 0x00b6bdc5, 0x00a5acb1, 0x00949b9f,
- 0x00a6adc9, 0x00c3c9e3, 0x00d6ddf3, 0x00cfd7ea, 0x00c6cbdd, 0x00c3c8d8, 0x00b9becb, 0x00b1b3c0, 0x00a9abb9, 0x009b9ba8, 0x008e8d9c, 0x008a899c, 0x009493a4, 0x00b2b3c0, 0x00cccfdc, 0x00cfd1dd,
- 0x00abacb6, 0x008f9299, 0x008e8f92, 0x008e9190, 0x00818585, 0x00876f64, 0x00583324, 0x00371612, 0x00540321, 0x00510214, 0x00480308, 0x003b0a00, 0x006d0b04, 0x00952429, 0x00983c44, 0x00522c2d,
- 0x001f1934, 0x001b1d31, 0x0027313c, 0x002f4041, 0x005f6867, 0x00b6b6b7, 0x00fef8fa, 0x00fef9f9, 0x00fffaff, 0x00f9fbff, 0x00f7fafa, 0x00ada9aa, 0x001b181b, 0x00030002, 0x00050203, 0x00040203,
- 0x000e050b, 0x00090307, 0x00060406, 0x00070506, 0x000c090b, 0x000f0d11, 0x00100f13, 0x00161417, 0x00221c24, 0x00272228, 0x002b272b, 0x002d282f, 0x00211c25, 0x00110d15, 0x000e0a13, 0x000a060f,
- 0x000b0909, 0x00080606, 0x00020202, 0x00030404, 0x00030107, 0x00030109, 0x0004040c, 0x0005050f, 0x00110d20, 0x0021202f, 0x003a3b45, 0x0054565d, 0x007a7e83, 0x00999da1, 0x00bbbfc1, 0x00d1d5d7,
- 0x00e8e9ed, 0x00f4f4f8, 0x00fafbfc, 0x00fbfdfc, 0x00fbfdfb, 0x00fbfbf9, 0x00fdfdfa, 0x00fdfefb, 0x00fefdfd, 0x00fffeff, 0x00fefefc, 0x00fffffd, 0x00fffefd, 0x00fdfcfc, 0x00fdfcfa, 0x00fdfbfb,
- 0x00f8fdfe, 0x00fbf5fa, 0x00fdefee, 0x00fee9ea, 0x00e7e1d8, 0x00dfd1cf, 0x00cdb3b4, 0x00c194a2, 0x0095758a, 0x005f5c6a, 0x00384657, 0x00222b47, 0x00141837, 0x00151436, 0x00070724, 0x000a0828,
- 0x00110d37, 0x000f0e3a, 0x0008093b, 0x000e1447, 0x00232966, 0x00313271, 0x0068649b, 0x00bbbcda, 0x00f8f8fe, 0x00f9fafe, 0x00f5f8fc, 0x00f8f9ff, 0x00fbf7fe, 0x00fcfafc, 0x00f9f9f5, 0x00f7f6f0,
- 0x00fffafc, 0x00fdf8fd, 0x00fafbfe, 0x00f7fcff, 0x00ecf2fe, 0x00d6e1f8, 0x00b6c9ed, 0x009db1e6, 0x008ea4eb, 0x008da5ee, 0x008ea5e3, 0x00b5c4e9, 0x00ecfaff, 0x00e9f3ff, 0x00c2ccf0, 0x00abb5df,
- 0x00a8a9d4, 0x00b9bcda, 0x00eaeefc, 0x00f5fafe, 0x00f8fbfa, 0x00fbfdf2, 0x00f9fdf0, 0x00f7fbf8, 0x00f6fcff, 0x00eaf4ff, 0x00cddbfd, 0x00b3c1ec, 0x00bcc6e5, 0x00e4eafa, 0x00f7fbfb, 0x00eeefed,
- 0x00b2bdfb, 0x00919ddd, 0x00bbcaf7, 0x00dbe3fc, 0x00c1c7df, 0x00c5cbe3, 0x00ebf1fc, 0x00e5eafc, 0x00b2b4da, 0x00b8bce5, 0x00edeefe, 0x00dedfe7, 0x00c6c6dd, 0x00c1c3db, 0x00c0c2dd, 0x00d6dbec,
- 0x00dedde6, 0x00eef0f2, 0x00fbfdfb, 0x00fbf9fb, 0x00fdf8fe, 0x00fcfafc, 0x00fcfdfb, 0x00fafbfa, 0x00fdfdfd, 0x00fdfdfd, 0x00fcfcfc, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00fefefe,
- 0x00fffdff, 0x00fffdff, 0x00fcfbfd, 0x00fdfcfe, 0x00fefaff, 0x00fefcfe, 0x00fcfdfb, 0x00fdfdfb, 0x00fffdff, 0x00fffbff, 0x00fefcfe, 0x00fefffd, 0x00ffffff, 0x00fdfdfd, 0x00f9fbf9, 0x00f7f8f7,
- 0x00f5f6f7, 0x00eeedef, 0x00e2e2e1, 0x00dbdcdb, 0x00d5d4d6, 0x00ceced1, 0x00c2c5c6, 0x00babbbe, 0x00aeb0b6, 0x00a4a7ad, 0x00979a9d, 0x008d8f91, 0x0084848a, 0x007f7f84, 0x007c7d80, 0x00787b7d,
- 0x00747578, 0x0065676a, 0x0054595d, 0x00495358, 0x003b4750, 0x0032404a, 0x0026343e, 0x0029353f, 0x003d444e, 0x004c535c, 0x00565e67, 0x005b636f, 0x00595f6a, 0x00505662, 0x00424b55, 0x00333c48,
- 0x00222735, 0x001a2231, 0x001e2835, 0x0028313f, 0x00394251, 0x0040495b, 0x00424c5c, 0x00444e60, 0x0043475a, 0x00373b4a, 0x002c2e3c, 0x002c2e38, 0x00373b40, 0x004b4d52, 0x00636369, 0x00707074,
- 0x0076747c, 0x006d6d75, 0x005a5b64, 0x0042454e, 0x00282b34, 0x00242730, 0x002d2e38, 0x00383841, 0x00494a54, 0x0054545e, 0x00555a63, 0x004c5560, 0x003e4752, 0x00313944, 0x001d262f, 0x00141c23,
- 0x001a1e29, 0x0022282f, 0x00363c43, 0x00484b53, 0x0053565e, 0x00525763, 0x004c5360, 0x00444a53, 0x00373a45, 0x00292c35, 0x0023252e, 0x00292c32, 0x003e3f44, 0x00505155, 0x0059595c, 0x005c5d5e,
- 0x009fa1a2, 0x00f2f2f4, 0x00fbfcfc, 0x00fefbfd, 0x00fefbfc, 0x00fefbfb, 0x00d5ced2, 0x00928d8e, 0x00a1a19f, 0x00d2d5d1, 0x00c3c9d2, 0x007481a5, 0x00424d72, 0x00414e71, 0x00455074, 0x00455276,
- 0x0047507b, 0x00465078, 0x00465079, 0x00455079, 0x0046507b, 0x0046517a, 0x00444f78, 0x00424d76, 0x003c466e, 0x00394369, 0x00323f5f, 0x002b3a55, 0x00243049, 0x001d2a3e, 0x00182738, 0x00172639,
- 0x001e2846, 0x00222e49, 0x0025344f, 0x00273854, 0x002b3f5c, 0x002b435f, 0x002c465f, 0x002c485e, 0x002f4c60, 0x002d4c5b, 0x002a4b5d, 0x002a4d64, 0x002d5066, 0x00315267, 0x0037576b, 0x003d5e6d,
- 0x00486273, 0x004f6a77, 0x00577481, 0x005c7985, 0x0066818a, 0x00718694, 0x00768999, 0x007a8f99, 0x0080939c, 0x007c9199, 0x007c9196, 0x007e929b, 0x007b8da4, 0x006e7fa2, 0x00566892, 0x00495c8a,
- 0x00475393, 0x00404c87, 0x00334072, 0x00344168, 0x0079839b, 0x00a8b0bc, 0x00b4b9be, 0x00babbbb, 0x00d0cfc8, 0x00e3e2d6, 0x00ebeae1, 0x00f0ede8, 0x00f4ede8, 0x00f5eee9, 0x00f6f2ec, 0x00f8f4eb,
- 0x00fffcf6, 0x00f4f0e7, 0x00cdc9c1, 0x00d3d0c6, 0x00dedbd0, 0x00d3d1c1, 0x00dddbca, 0x00ecead7, 0x00f6efe6, 0x00ede9df, 0x00e3e2d7, 0x00e5e5db, 0x00f1efe8, 0x00f9faf4, 0x00f7fbf6, 0x00f2f4f0,
- 0x00efedeb, 0x00f3f3f0, 0x00f7f8f2, 0x00fcfef7, 0x00f9fbf8, 0x00fcfdfb, 0x00fdfdfb, 0x00fdfdfd, 0x00fcfbfe, 0x00fefcfe, 0x00fefdff, 0x00fefffe, 0x00fefefc, 0x00fbfcf8, 0x00f8faf7, 0x00fcfdfa,
- 0x00fffbff, 0x00fefdfe, 0x00f9fcf7, 0x00edf0ee, 0x00d9dcd5, 0x00c2c6c3, 0x00a1a5a0, 0x00828581, 0x00666666, 0x00545252, 0x004a4746, 0x00524e4f, 0x005d5959, 0x00686465, 0x00767271, 0x007d7877,
- 0x00cbc8b0, 0x006e624e, 0x00716251, 0x00766757, 0x00706352, 0x00736555, 0x0077695b, 0x007d6f62, 0x007b705b, 0x00716853, 0x00635c4a, 0x00595540, 0x00524e3e, 0x004c473b, 0x00443e3a, 0x0041383d,
- 0x003e3f43, 0x004a4e5a, 0x0052576f, 0x003f4666, 0x001b2444, 0x000d1024, 0x000c0a15, 0x000a0a0e, 0x00020900, 0x00080b02, 0x00130f0d, 0x00160e13, 0x00150f19, 0x0018121b, 0x001b1318, 0x001a1211,
- 0x00151406, 0x00121004, 0x00100e08, 0x000f0f0d, 0x000c0f11, 0x000b0f1b, 0x00181a36, 0x0023254a, 0x00283563, 0x0039477a, 0x004f599a, 0x004c60a9, 0x004b61af, 0x00455eb0, 0x003e56ad, 0x003d56ad,
- 0x003f5999, 0x00465a8d, 0x00687397, 0x009ea2b4, 0x00e0dde2, 0x00b8b5b6, 0x003f3d3e, 0x001a1617, 0x00181e16, 0x00171d15, 0x00161815, 0x001b1a18, 0x001f1f1c, 0x00252321, 0x00272422, 0x00212020,
- 0x000f201f, 0x0014130b, 0x00382616, 0x00907056, 0x009a7866, 0x00332319, 0x001c1310, 0x00242425, 0x00393e2f, 0x004a472e, 0x0048412b, 0x003c3433, 0x0043392c, 0x00423924, 0x00433e27, 0x003d3a26,
- 0x001d2d1b, 0x000a1c15, 0x0010171c, 0x001a1c23, 0x00271f2e, 0x00252637, 0x002d2e43, 0x002f3148, 0x00202d3e, 0x001d2b3e, 0x00263047, 0x00283146, 0x00262b40, 0x001e2336, 0x001a1a2e, 0x00171528,
- 0x0060432f, 0x00946949, 0x009c6037, 0x00a35e2e, 0x0074451e, 0x003d2914, 0x001a1a18, 0x000b1e2a, 0x0002140b, 0x00121204, 0x00150f03, 0x0014140e, 0x00191912, 0x001a1a14, 0x00161614, 0x004a4847,
- 0x00cbd1ca, 0x00f7fcf5, 0x00fefdfa, 0x00fffcfe, 0x00fdfdff, 0x00f8f9fb, 0x00fdfcfe, 0x00faf9f9, 0x00f4f4ef, 0x00f4f4ef, 0x00f5f0f2, 0x00f8f2f6, 0x00f7f4f3, 0x00f6f5f4, 0x00f6f6f8, 0x00f5f7f7,
- 0x00f4f8f2, 0x00f6f9f4, 0x00f7f8f4, 0x00f8f9f5, 0x00fafaf8, 0x00f9f9f7, 0x00f9f8f7, 0x00fbf8f8, 0x00f2f6ef, 0x00f4f7f3, 0x00f8f8f9, 0x00faf9fa, 0x00faf9f9, 0x00f9f9f8, 0x00f9f9f6, 0x00f8f7f3,
- 0x00f2f6eb, 0x00f6f8ee, 0x00f4f3ef, 0x00f7f6f7, 0x00f8f4f8, 0x00faf1f9, 0x00fbf0fa, 0x00fef4fd, 0x00eff1eb, 0x00ecefea, 0x00f0f3f0, 0x00eef4f3, 0x00ebf2f4, 0x00eaf2f7, 0x00eaf3fa, 0x00e8f2f9,
- 0x00e8f3f1, 0x00e9f4f2, 0x00eaf0f7, 0x00eef2fd, 0x00ecf3fb, 0x00edf3fd, 0x00eef1fe, 0x00eef1fc, 0x00e8f1e9, 0x00eaf4e8, 0x00f2f7f1, 0x00f4f9fb, 0x00f5f8f6, 0x00f6faf8, 0x00fdfbfd, 0x00fef8f9,
- 0x00f4f6f3, 0x00f0f5f2, 0x00f0f0f2, 0x00f1f6f9, 0x00ebf7fa, 0x00f1f7fc, 0x00fbfbff, 0x00fbfaff, 0x00f4f9f5, 0x00f3f8ef, 0x00f1f5eb, 0x00f3f6ec, 0x00f8f9ef, 0x00faf9f5, 0x00fcf8fd, 0x00fdf8ff,
- 0x00f1f0f2, 0x00f9f8f3, 0x00f3f3eb, 0x00f3f3e8, 0x00f5f5e7, 0x00f2f1e9, 0x00f8f5f5, 0x00fcfafb, 0x00f6f5f2, 0x00f6f7eb, 0x00f7f7f0, 0x00f9f7f8, 0x00faf8f3, 0x00f7f6ef, 0x00f5f3f1, 0x00f5f4f0,
- 0x00edf1e7, 0x00eff2e8, 0x00f2f2ee, 0x00f3f1f1, 0x00f2efec, 0x00f1eee9, 0x00f3f0ea, 0x00f5f3eb, 0x00edf0e9, 0x00f0f2eb, 0x00f3f2ef, 0x00f2f0ef, 0x00f1efeb, 0x00f3f0ea, 0x00f6f2e9, 0x00f8f3e7,
- 0x00f1efed, 0x00f4f4e8, 0x00fcf9e6, 0x00fefbdf, 0x00fcfae1, 0x00fbf6ed, 0x00fcf3f5, 0x00f9f1f4, 0x00f3f1eb, 0x00f3f3e1, 0x00f6f3e6, 0x00f9f4f2, 0x00f8f4f0, 0x00f8f2ea, 0x00faf0e9, 0x00fbf2e9,
- 0x00f2f1de, 0x00f2f1e4, 0x00f5f4ef, 0x00faf8f9, 0x00fdfbfe, 0x00fcfafe, 0x00fffcff, 0x00fffeff, 0x00f8f9f7, 0x00aaaaa8, 0x00312b2b, 0x00433a39, 0x00504a44, 0x00514d45, 0x004b463f, 0x0047433b,
- 0x002b3418, 0x001f2611, 0x0016170c, 0x0010130b, 0x0010140c, 0x0012100b, 0x00161111, 0x00403c40, 0x0072746f, 0x00898a89, 0x00c5bcbf, 0x00b2a09d, 0x005a4942, 0x0045372c, 0x00483a31, 0x0040352b,
- 0x002e2b1d, 0x0032332a, 0x00454444, 0x0059545e, 0x006b6674, 0x00736e76, 0x0071686f, 0x00655c62, 0x004c4d3d, 0x003b3a27, 0x00372f1e, 0x00382c19, 0x00322213, 0x002c1a0b, 0x002c170e, 0x002e1a13,
- 0x00511a1e, 0x005a282a, 0x006d3d3d, 0x00744a4a, 0x00765c53, 0x00857164, 0x00c3b1a1, 0x00ede1cb, 0x00e1e3c2, 0x00ebedca, 0x00f0e8cc, 0x00f9e5d3, 0x00dbcfbf, 0x00838075, 0x000c0b05, 0x00040605,
- 0x00000800, 0x00070c00, 0x001e180d, 0x00342818, 0x0044321c, 0x00443319, 0x003e2d12, 0x0032210b, 0x00170e00, 0x000f0601, 0x000e0307, 0x000c030e, 0x0007050e, 0x00040607, 0x00040505, 0x00040505,
- 0x00000200, 0x000f130e, 0x00969697, 0x00f1f0f1, 0x00fdfdfd, 0x00fcfbfc, 0x00fffdff, 0x00fffeff, 0x00d9ded7, 0x008a8e89, 0x00515553, 0x00323735, 0x0012171a, 0x000d111a, 0x000a0d1d, 0x000a0b20,
- 0x00030a16, 0x00070b18, 0x000b0c1d, 0x000d0e1c, 0x000d0f19, 0x00090d20, 0x003a3f57, 0x006d7082, 0x003d4143, 0x00070908, 0x00040000, 0x00070000, 0x00050201, 0x00080809, 0x0037383b, 0x00565b5f,
- 0x00676f62, 0x006b7064, 0x00797870, 0x00807b73, 0x0080786b, 0x007d6d5c, 0x00987b67, 0x00b08b70, 0x00b89064, 0x00b98c5b, 0x00b48763, 0x00b3917f, 0x00bdac9a, 0x00c0b9b3, 0x00ccd1d7, 0x00cfd8e9,
- 0x00bdd8e4, 0x00b8d2dd, 0x00bdcedb, 0x00c2cdd4, 0x00c5c7cb, 0x00bec7d1, 0x00bac2d4, 0x00b4bbc8, 0x00a6b6ba, 0x00a9b7be, 0x00b2bbc5, 0x00b5bbc6, 0x00acb3bb, 0x00a1a7af, 0x00959aa2, 0x009da3ad,
- 0x00b4bfd3, 0x00c1cce2, 0x00ccd1ec, 0x00c5c9e3, 0x00b8bed3, 0x00b5b9cd, 0x00b0b3c6, 0x00a5a9b7, 0x00949da1, 0x00929a9f, 0x009898a8, 0x009c9cb2, 0x00b0aec6, 0x00c3c3d4, 0x00dcdaed, 0x00e4e3f2,
- 0x00dadfe6, 0x00ced2d6, 0x00cdd0d5, 0x00cecfd5, 0x00b3b7ba, 0x00a28e84, 0x005c3f32, 0x002a110f, 0x003f010d, 0x0047010d, 0x0046030a, 0x00400b03, 0x00720c09, 0x0095252b, 0x00943845, 0x004c282f,
- 0x00131b2a, 0x00121c27, 0x00242f39, 0x00313e42, 0x00717b79, 0x00c7c8c8, 0x00fffaff, 0x00fff8fe, 0x00f9fbfa, 0x00f7fcfb, 0x00eceff1, 0x008e8c8e, 0x00121110, 0x00070102, 0x000d060a, 0x000c0609,
- 0x00040804, 0x00050502, 0x000c0708, 0x000b0909, 0x000b070b, 0x0006090f, 0x00161824, 0x002b2938, 0x002b3339, 0x00363c45, 0x00494d59, 0x005c5f6d, 0x004c4f61, 0x0033344a, 0x0021223a, 0x000d0c25,
- 0x00010600, 0x00000200, 0x00020307, 0x0008070c, 0x0008080f, 0x00070510, 0x000b0515, 0x000c0619, 0x00030510, 0x00010311, 0x00080716, 0x00090e12, 0x000f1316, 0x001e2427, 0x0042474c, 0x005b6265,
- 0x007f8b84, 0x0099a4a1, 0x00c2c8c7, 0x00d6dada, 0x00eaeeed, 0x00f8f8f7, 0x00fffdfd, 0x00fffcfe, 0x00f7fcf3, 0x00fafef8, 0x00fafcfa, 0x00f9fafa, 0x00fdfcfc, 0x00fffefd, 0x00fefdfd, 0x00fdfcfd,
- 0x00ecfff8, 0x00f6fdf7, 0x00fef8f5, 0x00fef7f4, 0x00fafdef, 0x00fbfbf0, 0x00fff2ed, 0x00ffe7ed, 0x00e6d6d7, 0x00b8c3bd, 0x0099a9af, 0x00868ba2, 0x00626480, 0x004b4d68, 0x00332e4c, 0x0027213f,
- 0x000f102e, 0x00020529, 0x00050737, 0x00161e51, 0x0026316c, 0x00242569, 0x00332b6e, 0x006c699a, 0x00dee3ec, 0x00f4f9f7, 0x00f1f5fc, 0x00f7f9ff, 0x00faf9ff, 0x00fcf9fc, 0x00fbf8f8, 0x00fbf7f3,
- 0x00f7f3f5, 0x00f2f1f5, 0x00f6f6fe, 0x00e8eaff, 0x00bbc2ea, 0x008d98d1, 0x007988cd, 0x00788adf, 0x007898ec, 0x00809ff1, 0x008ea8f2, 0x00becef4, 0x00dfeefe, 0x00b7c3f3, 0x009ca4db, 0x00acb5ea,
- 0x00cedaef, 0x00d9e5f0, 0x00f0f5fe, 0x00f3fbff, 0x00f8fcfa, 0x00fbfcf3, 0x00f9fcf6, 0x00f5f8ff, 0x00e3f3f9, 0x00c9def5, 0x00aab9f4, 0x0095a4e2, 0x009dabda, 0x00c8d1ef, 0x00f6f7ff, 0x00e8e6ef,
- 0x0098b0f2, 0x00889fd4, 0x00b6c4f1, 0x00c2cfe6, 0x00c5cfdb, 0x00dde4f2, 0x00f8f8ff, 0x00ebe9ff, 0x00c4c8d9, 0x00cbd2dd, 0x00eceef5, 0x00f4f0f1, 0x00eee8f5, 0x00f7f5ff, 0x00f2effd, 0x00fbf7ff,
- 0x00f2f8f4, 0x00f5fcf6, 0x00f9fbfa, 0x00fcf9fc, 0x00fffcff, 0x00fefcfe, 0x00fffeff, 0x00fffeff, 0x00f7fef5, 0x00f8fdf7, 0x00fcfdfd, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00fffeff,
- 0x00f8fcfb, 0x00f9fcfb, 0x00fefcfe, 0x00fffcff, 0x00fdfbff, 0x00fffefe, 0x00fffeff, 0x00fdfcfe, 0x00f6fcf5, 0x00f7f8f4, 0x00f8f7f6, 0x00f1f2f0, 0x00ebeceb, 0x00e4e5e5, 0x00d9d9da, 0x00d5d4d8,
- 0x00c1c7c3, 0x00b5b8b4, 0x00a7a6a7, 0x009f9d9f, 0x00999899, 0x00919296, 0x008f8b95, 0x008e8a94, 0x00818889, 0x007c8282, 0x007b7e84, 0x007c7c84, 0x00737277, 0x00706f77, 0x0072717c, 0x0076737b,
- 0x00676e67, 0x00606763, 0x005d6265, 0x00505a5d, 0x00414a53, 0x00344048, 0x0029323c, 0x002b323d, 0x00333f40, 0x00444f50, 0x00576069, 0x005e6875, 0x005b636f, 0x00575b68, 0x004d4d5d, 0x003e3e4c,
- 0x001c2328, 0x00171c20, 0x0025252d, 0x002f2f3b, 0x0044444e, 0x004f505c, 0x00545361, 0x0053525d, 0x0043484d, 0x002f353a, 0x0022242d, 0x0022232b, 0x002e3034, 0x00414248, 0x005d5c67, 0x006b6c74,
- 0x0064696d, 0x005e6469, 0x0052565e, 0x0040414a, 0x00292a33, 0x0023242e, 0x002c2a36, 0x00373441, 0x003f4648, 0x004b5056, 0x00525761, 0x004a5561, 0x003f4855, 0x00323b47, 0x00222835, 0x00181e2d,
- 0x00101b1d, 0x001a2327, 0x0032383f, 0x00454a53, 0x00565861, 0x00585d6a, 0x00525766, 0x00464b57, 0x002c363b, 0x001e262d, 0x001c2028, 0x0025262d, 0x0038373c, 0x004c4b4f, 0x00605f64, 0x00646369,
- 0x00909b92, 0x00dde6e0, 0x00f9fefb, 0x00fdfcfb, 0x00fcf9fb, 0x00fffaff, 0x00e1d8de, 0x009f989c, 0x00989b94, 0x00cacfc2, 0x00d1d9db, 0x008d9cb9, 0x00424f6f, 0x00404d6d, 0x00475076, 0x00475177,
- 0x003e4b6d, 0x003e4d6e, 0x00444e73, 0x00464d78, 0x00424e77, 0x00414f79, 0x00444f79, 0x00444d78, 0x00354465, 0x00334261, 0x00323e5d, 0x002b3753, 0x0025334c, 0x001f2b42, 0x001b273c, 0x001a283c,
- 0x00162839, 0x001a2a3f, 0x00203149, 0x00263753, 0x00283c59, 0x00283f5b, 0x0029435c, 0x002b475f, 0x00264953, 0x00234954, 0x00224858, 0x0026495f, 0x00294c63, 0x002c4e63, 0x00345566, 0x003b5c6c,
- 0x003a5e65, 0x0041636c, 0x004f6c77, 0x0057727c, 0x00607b85, 0x006b7e90, 0x00768299, 0x0079869b, 0x00768e8d, 0x0077908d, 0x00778f8f, 0x00799194, 0x00788d9d, 0x007587a2, 0x00707fa6, 0x0064719d,
- 0x00455c9b, 0x00374c88, 0x0034447c, 0x00384473, 0x00495673, 0x006a7486, 0x00a9adbb, 0x00c5c9cd, 0x00b9c1b5, 0x00c6cdbe, 0x00ebe9e3, 0x00f9f3f4, 0x00fdfbf9, 0x00fefdfb, 0x00fffafa, 0x00fffbfc,
- 0x00f2f4ea, 0x00e0e1d5, 0x00d3d0c5, 0x00e5e0d6, 0x00e5e1d4, 0x00d9d5c6, 0x00e3decf, 0x00eee8da, 0x00edf0db, 0x00eff0dd, 0x00f4f2e4, 0x00f2f1e6, 0x00f3f5ed, 0x00f9faf5, 0x00fdfbfb, 0x00fbfbfd,
- 0x00f4faef, 0x00fafdf5, 0x00fafbf7, 0x00fbfdf7, 0x00fbfbf8, 0x00fffefc, 0x00fdfdf9, 0x00fefefe, 0x00f8fdf9, 0x00f7fcf7, 0x00fcfcf9, 0x00fefcfb, 0x00fefffd, 0x00fefeff, 0x00fffdff, 0x00fffdfe,
- 0x00ecf2ed, 0x00dce3dc, 0x00c0c7c3, 0x00a4a9a9, 0x007f8684, 0x00626765, 0x004e5151, 0x004d4f4f, 0x004c544b, 0x005a5f5a, 0x006b6b6c, 0x00777579, 0x0089878c, 0x0099969a, 0x00b1aaaf, 0x00c4bcc1,
- 0x00cdc8b6, 0x00746858, 0x00736756, 0x007a6e5b, 0x00776c58, 0x00796d59, 0x007c6f5a, 0x007e735d, 0x007e725b, 0x007a6f5b, 0x00726953, 0x00706a4e, 0x006a6650, 0x00636054, 0x005d5a57, 0x00514e53,
- 0x00393845, 0x002b293c, 0x00111226, 0x00060c21, 0x00060a1e, 0x000a0b12, 0x00110f0d, 0x00121008, 0x000d0c00, 0x000e0c01, 0x00150e07, 0x00180f0c, 0x001a1211, 0x0018110f, 0x00190f0c, 0x001a110b,
- 0x00140d01, 0x00161003, 0x00140d00, 0x00140f00, 0x00141005, 0x000f0d08, 0x00110f15, 0x0011101d, 0x000d0f27, 0x00161735, 0x00232b52, 0x002d4371, 0x00445792, 0x005264a7, 0x004b61aa, 0x004158a6,
- 0x00385396, 0x0040558f, 0x00505f89, 0x008087a2, 0x00c8c5d6, 0x00c3c4ca, 0x004b4f50, 0x00161717, 0x001b1e1c, 0x001c1f1c, 0x00171b16, 0x001b1e18, 0x00232521, 0x002a2b2a, 0x002c2c2b, 0x0029282c,
- 0x001a2827, 0x00201e14, 0x003e2e17, 0x00997959, 0x00a07d62, 0x003b2b17, 0x001a130b, 0x001d2019, 0x003e4031, 0x0056503a, 0x004a422f, 0x003f3836, 0x003e3728, 0x003d3622, 0x003f3b25, 0x0046432c,
- 0x00313428, 0x00252820, 0x00222221, 0x00241f22, 0x002a1e22, 0x002c2727, 0x002f2e2e, 0x002e302f, 0x001a2124, 0x000a1519, 0x00030d13, 0x00040d12, 0x000c0f12, 0x00111011, 0x001f1816, 0x002e2520,
- 0x007c4c33, 0x00956142, 0x008d552f, 0x00875028, 0x004d2c0d, 0x00302513, 0x001c1f18, 0x00112226, 0x000d1614, 0x0019170f, 0x00181309, 0x0017170e, 0x001b1a13, 0x00191812, 0x00191a13, 0x004b4b44,
- 0x00ced1cb, 0x00f9fbf8, 0x00fbfbf9, 0x00fdfdfc, 0x00fbfdfd, 0x00f9fbfb, 0x00fdfdfc, 0x00fffefe, 0x00fbfbf7, 0x00fffefc, 0x00fefbfb, 0x00fdfbfa, 0x00fefcf9, 0x00fdfdfa, 0x00fdfdfc, 0x00fbfbfb,
- 0x00fcfefb, 0x00fcfffb, 0x00fcfefb, 0x00fbfefa, 0x00fcfefb, 0x00fbfefa, 0x00fbfdfa, 0x00fbfefb, 0x00fdfefe, 0x00fbfdfd, 0x00fcfeff, 0x00fcfffe, 0x00fbfdfc, 0x00fbfdfc, 0x00fbfefb, 0x00fafdf8,
- 0x00f9fcf3, 0x00fbfdf6, 0x00fcfdfa, 0x00fbfefc, 0x00f9fafb, 0x00fbfafc, 0x00fdfafc, 0x00fdfafc, 0x00fafafb, 0x00fcfdfd, 0x00fbfefd, 0x00f9fdfb, 0x00f6fdfa, 0x00f7fffb, 0x00f5fffa, 0x00f4fff9,
- 0x00f8fdfa, 0x00f8fdfb, 0x00fcffff, 0x00fafcfd, 0x00fafefd, 0x00fcfffd, 0x00fefdfd, 0x00fefcfd, 0x00fcfff7, 0x00fdfff6, 0x00fdfff8, 0x00fbfffe, 0x00fafcf8, 0x00fbfbf7, 0x00fefdf7, 0x00fffbf6,
- 0x00fdfbfb, 0x00fdfcfc, 0x00fbf8fa, 0x00f9fdfc, 0x00f5fefb, 0x00f8fbfa, 0x00fdfcfb, 0x00fbfdfa, 0x00fcfcfa, 0x00fdfcf9, 0x00fbfbf7, 0x00fcfcf7, 0x00fefef8, 0x00fdfdf9, 0x00fdfcfb, 0x00fcfcfb,
- 0x00fefbfb, 0x00fefcf8, 0x00fefcf7, 0x00fffff7, 0x00fefef4, 0x00fdfdf6, 0x00fefdfc, 0x00fcfcfa, 0x00fffcfa, 0x00fffdf6, 0x00fefdf9, 0x00fefdfd, 0x00fefefc, 0x00fdfffb, 0x00fdfefb, 0x00fdfffc,
- 0x00fefdfc, 0x00fdfcfb, 0x00fcfafd, 0x00fdfbfe, 0x00fefdfc, 0x00fefef9, 0x00fdfef8, 0x00fcfdf5, 0x00fefffa, 0x00fdfefa, 0x00fcfcf9, 0x00fbfbf8, 0x00fcfbf8, 0x00fefcf7, 0x00fefdf4, 0x00fdfcf2,
- 0x00fefbfc, 0x00fefcf7, 0x00fffef4, 0x00fffeee, 0x00fefff0, 0x00fdfefa, 0x00fffeff, 0x00fcfcfd, 0x00fafcfc, 0x00fcfdf8, 0x00fdfdf7, 0x00fbfbfa, 0x00fbfbfc, 0x00fdfdfb, 0x00fefff9, 0x00fdfef6,
- 0x00fcfbf4, 0x00fffffb, 0x00fcfcfd, 0x00fafbfe, 0x00fafcfe, 0x00fafbfc, 0x00fbfbfc, 0x00fdfcfe, 0x00fafaf9, 0x009d9f9e, 0x00070505, 0x00070300, 0x000a0600, 0x00100b01, 0x001e170a, 0x00271f12,
- 0x0025210d, 0x0022200d, 0x001d1b0b, 0x00121406, 0x00060b02, 0x00060704, 0x000c0d0c, 0x00363638, 0x006e6c6c, 0x00828083, 0x00c1b6bc, 0x00c8b7bb, 0x006b5b55, 0x003c3025, 0x00352a1c, 0x002f2819,
- 0x002c271e, 0x003f3c3a, 0x005e5c60, 0x0073717d, 0x00817f8e, 0x0082808c, 0x0075727a, 0x00666064, 0x00524c42, 0x004a3e31, 0x0048392a, 0x004d3c2b, 0x0056392e, 0x0055332a, 0x00502a25, 0x00522726,
- 0x00652025, 0x0068282e, 0x006c2e35, 0x006a343b, 0x0069433f, 0x007a5f51, 0x00b29b86, 0x00d1c1a3, 0x00cfc3a0, 0x00d7cdaa, 0x00ded0ad, 0x00e5d0b0, 0x00c6b89e, 0x00756f5e, 0x000d0b00, 0x00050702,
- 0x00020502, 0x000b0a04, 0x001e170e, 0x002f2414, 0x003e2c19, 0x00403218, 0x00382c10, 0x002e220c, 0x001a1007, 0x00100707, 0x000a0407, 0x000a060d, 0x0005050e, 0x00040609, 0x00040404, 0x00050403,
- 0x00020100, 0x001e1d1b, 0x00a6a5a6, 0x00f3f3f4, 0x00fdfdfd, 0x00fbfcfb, 0x00fbfcfd, 0x00fcfefd, 0x00dcdede, 0x008e9092, 0x0045484b, 0x00202428, 0x000c1116, 0x000d1219, 0x00080d15, 0x00080c18,
- 0x00070b18, 0x000a0c1b, 0x000b0d1c, 0x000b0e1a, 0x000b0f19, 0x00070d1b, 0x00313747, 0x004e535f, 0x0024242b, 0x00050407, 0x00040000, 0x00080203, 0x00020101, 0x00090b0b, 0x003a3d3e, 0x005b6163,
- 0x006d6e65, 0x0074736c, 0x00797570, 0x007e7a73, 0x00827c6e, 0x008a7f6c, 0x0099856e, 0x00a98f73, 0x00b6916e, 0x00b48661, 0x00a37f62, 0x00ad9d95, 0x00bcb8b1, 0x00bebfc0, 0x00c7d3db, 0x00c7d7e5,
- 0x00c0d0e0, 0x00c0cfdf, 0x00bfccd9, 0x00bec9d0, 0x00bac2c6, 0x00b2bac2, 0x00afb6c2, 0x00afb4be, 0x00abb3b9, 0x00acb6bb, 0x00aab2b7, 0x00a8afb3, 0x00989fa3, 0x008a9096, 0x009599a1, 0x00bbbfc9,
- 0x00ccd2e4, 0x00c1c8dc, 0x00bbbfd2, 0x00bbbdcd, 0x00b3b4c3, 0x00b1b2c2, 0x00b0b1c0, 0x00a6aab8, 0x009da5af, 0x00aaaeba, 0x00b5bfcd, 0x00bac5da, 0x00d6ccdd, 0x00ced9e9, 0x00cbe1ef, 0x00dbe3f5,
- 0x00e9e2e8, 0x00eff0f9, 0x00f2f3fc, 0x00fcf4fd, 0x00e5d1c5, 0x00cbb1a2, 0x0073584e, 0x003c1e1f, 0x00360714, 0x00320610, 0x002c0608, 0x00340c05, 0x00741010, 0x008f262f, 0x00853a42, 0x00342927,
- 0x00171e33, 0x00141c2e, 0x001f2b38, 0x00324044, 0x00858c8c, 0x00d9dbd8, 0x00fdfdfc, 0x00fbfbfb, 0x00fcfcf9, 0x00fdfcfe, 0x00dcdcdc, 0x00726f6d, 0x000b0c09, 0x00070503, 0x00110e09, 0x00140f08,
- 0x00150e07, 0x00180e0b, 0x00180f12, 0x00131016, 0x00161626, 0x00262f46, 0x004a5873, 0x00687792, 0x006e7d99, 0x007284a1, 0x008195b1, 0x008b9eba, 0x008898b6, 0x008391b1, 0x007584a3, 0x00586986,
- 0x00262d2f, 0x00080d12, 0x00020508, 0x00050609, 0x0007050c, 0x000a0712, 0x000b0a16, 0x00101021, 0x00111227, 0x000f1029, 0x000d0e23, 0x000e101a, 0x000a0d16, 0x00090e17, 0x000c101b, 0x000a101d,
- 0x00131c23, 0x00222a31, 0x003a4148, 0x00545c60, 0x007a8286, 0x00999ba0, 0x00bab7bd, 0x00d4d3d8, 0x00e9e9eb, 0x00f4f4f6, 0x00f9f9fb, 0x00fcfdfd, 0x00fbfcfc, 0x00fbfcfb, 0x00fcfcfb, 0x00fbfbfa,
- 0x00f4fcf9, 0x00f9fdfa, 0x00fcf9f7, 0x00fdfcf9, 0x00f8fef1, 0x00f7fdf1, 0x00fcfcef, 0x00fcf8f4, 0x00fafbf4, 0x00f4fdf8, 0x00f2fbfa, 0x00f0f4f7, 0x00e2e3ec, 0x00d2d3dd, 0x00b5b4c1, 0x00999aa9,
- 0x00747388, 0x00555573, 0x003a3b62, 0x00393f6a, 0x0031376c, 0x001b1b59, 0x00211d58, 0x00403e6d, 0x00bcbbd1, 0x00f1f1fa, 0x00fafcfe, 0x00f8fafd, 0x00fafafc, 0x00f9f8fc, 0x00f9faf9, 0x00f3f2f3,
- 0x00d7d9ee, 0x00d9d9f7, 0x00d3d4f6, 0x00a6aae0, 0x00636bb7, 0x00545eaf, 0x006372c4, 0x007e95d9, 0x0097b4f1, 0x0096b0fc, 0x0095abf4, 0x00bbcefb, 0x00adbeee, 0x0098a7d3, 0x00b6c3eb, 0x00dbe8fe,
- 0x00e2f3fb, 0x00cce0fe, 0x00c0cff8, 0x00c4d5f4, 0x00dce7f2, 0x00f1f8f5, 0x00dee8ef, 0x00c5d1eb, 0x00b5c3fb, 0x00a7b5fa, 0x0093a2ee, 0x0090a1ed, 0x00a0aee1, 0x00c9d1f2, 0x00f2f5fc, 0x00ebeceb,
- 0x00afbff1, 0x00b5c5ec, 0x00c9d5ef, 0x00d8e3ee, 0x00e7f0f2, 0x00f1f6f8, 0x00f8f7f8, 0x00f7f4fc, 0x00f1f1fc, 0x00f5f5fc, 0x00f8f8f9, 0x00fdfcf6, 0x00fcf8fa, 0x00fcf8fc, 0x00fcfbfe, 0x00faf9fb,
- 0x00f6f9fa, 0x00fbfdfc, 0x00fbfefd, 0x00fdfefe, 0x00fbfcfa, 0x00fafdfb, 0x00f9fefc, 0x00f9fcfa, 0x00fafafc, 0x00fbfcfb, 0x00fcfdfd, 0x00fcfdfc, 0x00fdfdfc, 0x00fefefd, 0x00fffeff, 0x00fefdfe,
- 0x00f7fdf9, 0x00fafffc, 0x00fbffff, 0x00f9feff, 0x00f2f4f9, 0x00efeef1, 0x00e5e2e6, 0x00dcd8d9, 0x00d2ccca, 0x00cdc5c6, 0x00c3c0c1, 0x00b5b8ba, 0x00abadac, 0x009fa0a2, 0x00919496, 0x00878a8f,
- 0x00808a8b, 0x00768082, 0x006b7479, 0x006f767a, 0x0074787a, 0x007c7f83, 0x007a7a83, 0x00797b83, 0x00767b81, 0x0071757d, 0x00696e78, 0x005d636c, 0x00565862, 0x00575b64, 0x005a6068, 0x0062666d,
- 0x00686b69, 0x00686a6b, 0x0062666b, 0x00555e65, 0x00434c5a, 0x00313c49, 0x00242e39, 0x00282d38, 0x00373d42, 0x00494e52, 0x005d6169, 0x00666c77, 0x00666c79, 0x005d6471, 0x00494e5e, 0x00333a48,
- 0x001e222f, 0x001a1d28, 0x002a2830, 0x0039363c, 0x004e4a4c, 0x0058565b, 0x0059575f, 0x0055565f, 0x00474952, 0x00323541, 0x001d1f2d, 0x001c1e29, 0x00272931, 0x003a3c40, 0x00515455, 0x005e6262,
- 0x0063646b, 0x005f6168, 0x0052545c, 0x0041444d, 0x002c2f39, 0x00222630, 0x00262933, 0x0033343e, 0x0048494f, 0x0057565f, 0x005c5e68, 0x00555e69, 0x0048515d, 0x0035404b, 0x001f2933, 0x00151f2c,
- 0x00131b24, 0x001d252c, 0x00343940, 0x004b4e54, 0x00606165, 0x00636770, 0x005a606c, 0x00464c57, 0x002a333c, 0x001b222b, 0x00171c25, 0x001e2129, 0x00303138, 0x0049494d, 0x00615f63, 0x00656366,
- 0x008b8e8c, 0x00d8d9d9, 0x00f8f9f9, 0x00fcfcfb, 0x00fcfafa, 0x00fcfbfc, 0x00e7e5e6, 0x00a7a6a6, 0x00949591, 0x00c6c7c0, 0x00e2e6e8, 0x00afb7cf, 0x004b5772, 0x003f4b68, 0x003e4d6e, 0x003f4f73,
- 0x003c4b73, 0x003c4d72, 0x003e4e73, 0x00404d73, 0x003f4d70, 0x003d4e71, 0x003c4d70, 0x003b4b6e, 0x00354967, 0x00334561, 0x0030415b, 0x00283a51, 0x00223248, 0x001e2d41, 0x0019283a, 0x00142436,
- 0x0016273b, 0x0018293e, 0x001c2e44, 0x0020344a, 0x0022394e, 0x00223d51, 0x00244253, 0x00254555, 0x00244752, 0x00224752, 0x00214553, 0x00224556, 0x00244759, 0x00264a59, 0x002b505b, 0x002e545f,
- 0x00385864, 0x003e5e6a, 0x00496674, 0x004f6d79, 0x0054757f, 0x00607b88, 0x006a808f, 0x006c8491, 0x0072898e, 0x00738b8d, 0x0072898c, 0x00738a8f, 0x006f8491, 0x006a7f93, 0x00697e98, 0x00637894,
- 0x00566aa2, 0x004d5f96, 0x0036457b, 0x00465486, 0x0047537d, 0x003f4a69, 0x007d869b, 0x00b5bdc7, 0x00c6ccc3, 0x00bfc5b9, 0x00d0d0c9, 0x00f0eaeb, 0x00fdfaf7, 0x00fefbf9, 0x00faf7f1, 0x00f9f6ef,
- 0x00e6e5dc, 0x00e1e0d6, 0x00e7e5d8, 0x00f2f2e3, 0x00e3e5d8, 0x00daddcf, 0x00e8e7db, 0x00f1eee4, 0x00f3f4e7, 0x00f9faed, 0x00fdfcf0, 0x00fbfcf1, 0x00fcfff7, 0x00fdfef8, 0x00fbfbf5, 0x00fbfcf6,
- 0x00fafff5, 0x00fbfcf5, 0x00faf9f5, 0x00fefffa, 0x00fdfdfa, 0x00fdfcfa, 0x00fafaf7, 0x00f9fbfb, 0x00fcfdfe, 0x00fbfdfd, 0x00fbfcfc, 0x00fdfefd, 0x00f7f9f8, 0x00eaedec, 0x00cdd0cf, 0x00b9bbba,
- 0x00969999, 0x007a7e7b, 0x005a5e5c, 0x00515453, 0x004f5552, 0x00585c5b, 0x00626465, 0x00717374, 0x007c8180, 0x008c8e8d, 0x009d9f9f, 0x00abaeae, 0x00bebfc0, 0x00cbcbcd, 0x00d7d6da, 0x00e2dce3,
- 0x00cbc7b7, 0x00695e4e, 0x00695f4d, 0x006c624e, 0x006e634f, 0x0070634f, 0x00736851, 0x00736b51, 0x00786d56, 0x00756b54, 0x00736a4e, 0x006f6a44, 0x006d6a4f, 0x0069665b, 0x00575658, 0x003d3c48,
- 0x00141727, 0x000c0b1d, 0x00060213, 0x00090510, 0x000d060d, 0x000f0d07, 0x000e1005, 0x000d1002, 0x000f0c02, 0x000e0d03, 0x00121007, 0x00130f07, 0x001a130c, 0x001e140d, 0x001b100b, 0x001b110c,
- 0x00101001, 0x00131206, 0x00171409, 0x00171207, 0x001b130a, 0x00191108, 0x00160f05, 0x00120d05, 0x00130c09, 0x00120d0c, 0x000c1012, 0x00071b23, 0x00253048, 0x0040476e, 0x00505a8e, 0x004f5d9a,
- 0x003e5b96, 0x00415c95, 0x00445a8e, 0x00525f8b, 0x009c9ec1, 0x00bbc2d4, 0x005f6971, 0x001f252e, 0x001b2120, 0x001b201b, 0x001d2118, 0x001f231a, 0x002c2a29, 0x00302c32, 0x00312c35, 0x002f2735,
- 0x00182c27, 0x001d210e, 0x00473817, 0x009f7e53, 0x00a47f55, 0x00453313, 0x00160e00, 0x00222319, 0x0047463a, 0x005d5746, 0x00534d40, 0x0045433e, 0x0045423d, 0x003f3b38, 0x003b3834, 0x00433f3c,
- 0x00363233, 0x00262223, 0x00282123, 0x00262123, 0x00261f1e, 0x00242416, 0x00292c16, 0x002e341e, 0x00252c23, 0x000d1a10, 0x00011108, 0x00071509, 0x00111308, 0x00191303, 0x002d1e09, 0x00402e14,
- 0x007f421f, 0x00855231, 0x007e5338, 0x00614228, 0x00382a19, 0x00292315, 0x0026241a, 0x001d1e1a, 0x00191917, 0x00171414, 0x00171512, 0x001a180e, 0x00201d11, 0x001d1b11, 0x001d1d14, 0x004c4c44,
- 0x00cfd2cc, 0x00f6fbf6, 0x00fafefc, 0x00f7fcfa, 0x00f9fefb, 0x00f8fcf9, 0x00fdfefd, 0x00fefefd, 0x00fdfdf8, 0x00fefdf8, 0x00fcfcf6, 0x00fafcf5, 0x00fafbf6, 0x00fbfcfa, 0x00fafafb, 0x00fbf9fd,
- 0x00fdfff9, 0x00fcfff9, 0x00fcfffa, 0x00fcfffb, 0x00fdfffd, 0x00fdfefd, 0x00fdfefe, 0x00fdffff, 0x00fdfeff, 0x00fbfdfd, 0x00f8fdfc, 0x00f6fdfd, 0x00f7fefd, 0x00f8fefb, 0x00f9fef7, 0x00f8fff5,
- 0x00fcfefa, 0x00fafcfa, 0x00fdfefd, 0x00fefdfd, 0x00fefcfe, 0x00fdfdfd, 0x00fbfdfa, 0x00fbfcfb, 0x00fdfefb, 0x00fffffc, 0x00fefffb, 0x00fdfefb, 0x00fdfdfa, 0x00fdfefb, 0x00fdfefb, 0x00fdfefb,
- 0x00f8feff, 0x00f8fefe, 0x00fbfeff, 0x00fbfefe, 0x00fbfffd, 0x00f9fdfb, 0x00fbfdfd, 0x00fbfefd, 0x00fbfdfe, 0x00fafcfd, 0x00fcfdfc, 0x00fcfefb, 0x00fffef8, 0x00fefefc, 0x00fefefb, 0x00fffffa,
- 0x00fffdf9, 0x00fdfffa, 0x00fefef8, 0x00fefff9, 0x00fdfdf8, 0x00fefcf7, 0x00fefbf7, 0x00fdfdf9, 0x00fffcfa, 0x00fffdfc, 0x00fffdfc, 0x00fefdfd, 0x00fffeff, 0x00fefdfe, 0x00fdfdfe, 0x00fcfcfe,
- 0x00fffefb, 0x00fdfdf8, 0x00fffef9, 0x00fefef8, 0x00fffef8, 0x00fffffa, 0x00fffefb, 0x00fffefb, 0x00fffcf9, 0x00fffef9, 0x00fffdfa, 0x00fffdfb, 0x00fffefd, 0x00fffefb, 0x00fefdfb, 0x00fefdfb,
- 0x00fdfcf9, 0x00fdfdf9, 0x00fefdfc, 0x00fefcfc, 0x00fefcfb, 0x00fdfdf9, 0x00fefef9, 0x00fdfef9, 0x00fefef8, 0x00fdfef9, 0x00fdfefa, 0x00fdfdfa, 0x00fefdfd, 0x00fffefd, 0x00fefdfc, 0x00fcfdfc,
- 0x00fcfbfc, 0x00fcfcfa, 0x00fefcfd, 0x00fffdfc, 0x00fefefd, 0x00fefdff, 0x00fffdff, 0x00fdfcfc, 0x00fdfdff, 0x00fefeff, 0x00fcfffd, 0x00f8fefc, 0x00f9fdfc, 0x00fafdfc, 0x00fcfffb, 0x00fdfffd,
- 0x00fcfef7, 0x00fdfef9, 0x00fffdfc, 0x00fefbfb, 0x00fffcfb, 0x00fbfaf8, 0x00fcfdfb, 0x00fcfefc, 0x00f9fdfd, 0x009a9fa0, 0x00000404, 0x00010200, 0x00090701, 0x00160f04, 0x002a1c0e, 0x00362416,
- 0x003c2b13, 0x0031260f, 0x00261d0d, 0x0019160b, 0x000f110b, 0x00070b09, 0x00171c1b, 0x003c403f, 0x006a6a6b, 0x007e7f7f, 0x00beb8be, 0x00d3c5ce, 0x007e706d, 0x00392d20, 0x00302513, 0x002c2511,
- 0x002e2924, 0x00484147, 0x006a6372, 0x00827c8e, 0x0090899c, 0x008a8696, 0x00747381, 0x00636168, 0x00514843, 0x004a3b2e, 0x00533d2c, 0x0060412f, 0x006c3b35, 0x00723637, 0x006f2934, 0x006c1f30,
- 0x006d1a13, 0x006b1c1e, 0x00681a27, 0x0061192e, 0x005f2731, 0x0072443e, 0x00a57d68, 0x00b79774, 0x00c2a57b, 0x00c1a87b, 0x00c8ae7c, 0x00c3a46b, 0x009e855a, 0x005d4d2f, 0x001b1204, 0x00110f0c,
- 0x00070b0b, 0x00090807, 0x001a130f, 0x00251a0c, 0x0035240e, 0x00362b10, 0x002d270d, 0x00221d0a, 0x00131005, 0x00090a05, 0x00060908, 0x0006090c, 0x000b0b11, 0x000e090e, 0x000f060b, 0x000c0308,
- 0x00050300, 0x002e2b28, 0x00bbb9b8, 0x00f6f6f5, 0x00fffefe, 0x00fcfcfb, 0x00fafbfc, 0x00fefefe, 0x00dcdee1, 0x008e9093, 0x003a3d45, 0x00151925, 0x000b0e1a, 0x000e121a, 0x00090d12, 0x000a0e14,
- 0x00080e12, 0x00080d13, 0x00080c14, 0x00090c17, 0x000c0d1c, 0x000a0e1b, 0x001d242c, 0x00262b32, 0x00111117, 0x00010003, 0x00040003, 0x00030003, 0x00010206, 0x00090b12, 0x00363842, 0x005b5e6a,
- 0x0070706a, 0x0075736e, 0x00797573, 0x0075746f, 0x008a8980, 0x009e9b8e, 0x00998f80, 0x009b8977, 0x00967860, 0x00886b4f, 0x00937f70, 0x009da9b3, 0x00b1bac7, 0x00bdc9d6, 0x00c8d1de, 0x00c7d4df,
- 0x00c2cbd5, 0x00bfc9d3, 0x00bcc6d0, 0x00b7c2cd, 0x00b6c0cc, 0x00b4bac5, 0x00b5b7c1, 0x00adb0b8, 0x00abaeaf, 0x00afb5b2, 0x00a8afaa, 0x00989e9a, 0x00878d8e, 0x0093969d, 0x00b6b9c4, 0x00cbd0dc,
- 0x00cfd3dc, 0x00c4c8d1, 0x00b8b8bf, 0x00b5b0b5, 0x00afa8ae, 0x00b0a9b1, 0x00b4b1bb, 0x00b8bac5, 0x00b8c0d4, 0x00bdc7de, 0x00c7d7f0, 0x00c5e2f4, 0x00f4d4db, 0x00c2e4e9, 0x00b4e9f6, 0x00c8e5ff,
- 0x00ead2d7, 0x00dfe3e7, 0x00e9e8f5, 0x00ecc9e1, 0x00d19873, 0x00af8373, 0x008e6266, 0x007f4051, 0x00583b4e, 0x00323d3c, 0x0021332f, 0x00332a21, 0x008e2638, 0x00963d4a, 0x00704145, 0x001c3223,
- 0x000d1530, 0x000f162e, 0x00262e40, 0x003a434b, 0x00959b9d, 0x00e4e7e5, 0x00fefefc, 0x00fefefc, 0x00fbfbf6, 0x00fcfcfa, 0x00cdc9c6, 0x00555548, 0x0011110b, 0x000d1107, 0x001c190d, 0x001e1807,
- 0x00271805, 0x0028190d, 0x00291c1d, 0x0022212f, 0x003e4568, 0x005b6c9e, 0x007288c3, 0x00748dc8, 0x006b88c1, 0x007090c7, 0x0082a6d8, 0x008aaedb, 0x008fb1db, 0x0093b3db, 0x009dbbe2, 0x009cbade,
- 0x007e939b, 0x00405058, 0x000b151a, 0x00020508, 0x00100a0f, 0x000c060a, 0x000d0c12, 0x00121220, 0x00101830, 0x000c1534, 0x000f1531, 0x00111021, 0x00120f24, 0x000f0d27, 0x00141332, 0x00141435,
- 0x000f132e, 0x000e142b, 0x000d1427, 0x000b1525, 0x00161e2d, 0x0027283a, 0x00444254, 0x005f5f6f, 0x00878792, 0x00a3a4ab, 0x00bfc1c5, 0x00d4d7d7, 0x00eceeef, 0x00f8fafb, 0x00fafbfd, 0x00fcfcfd,
- 0x00fbfafb, 0x00fcfffd, 0x00f8f9fa, 0x00fdfbfb, 0x00fefefb, 0x00fafdf5, 0x00fcfff4, 0x00fefff6, 0x00fbfdf3, 0x00fcfdf7, 0x00fdfff5, 0x00f9fcec, 0x00fbfef1, 0x00f7faf1, 0x00f3f8f1, 0x00eff6f0,
- 0x00e1e1e9, 0x00c7c8d6, 0x00acadc7, 0x009a9bb8, 0x007c7b9e, 0x005b5b85, 0x004b4c7b, 0x004a4b73, 0x008e8fa8, 0x00dadbe9, 0x00f7f9fe, 0x00f5f7fd, 0x00fafafc, 0x00faf8fe, 0x00faf8fb, 0x00dfd9e9,
- 0x0095a6d5, 0x009caedb, 0x0091a0dd, 0x005560b7, 0x003e44c5, 0x004d57c8, 0x007c8de0, 0x00b0c9ec, 0x00bcd3f0, 0x009db2eb, 0x0096a8ed, 0x00a1b0f8, 0x009fabe4, 0x00b4bfdf, 0x00e0edf8, 0x00ecfdff,
- 0x00c0ddfa, 0x008eb0ed, 0x0085a4ee, 0x0089a4e9, 0x00b7cbf8, 0x00e3f4fe, 0x00c8d5fc, 0x00a2b0e8, 0x0096a6f6, 0x009aacfc, 0x0099acfd, 0x0092a4f3, 0x00afbde9, 0x00dee8fc, 0x00f4f9f9, 0x00f6f6ea,
- 0x00e8e8f1, 0x00eceef3, 0x00f5f5f7, 0x00fafbfa, 0x00fdfcf8, 0x00fbfbf5, 0x00fefcf6, 0x00fdfcfc, 0x00fefbfd, 0x00fffafe, 0x00fefafc, 0x00fafaf0, 0x00fdfbf6, 0x00fbf9f9, 0x00fcfbfd, 0x00fbfafd,
- 0x00f9fdfe, 0x00fafdfd, 0x00fcffff, 0x00faffff, 0x00fbfeff, 0x00f6fcfc, 0x00f4fcfd, 0x00f6fefe, 0x00fdfcfe, 0x00fdfdfd, 0x00fefefd, 0x00fcfdfb, 0x00fbfaf9, 0x00fdfbfa, 0x00f8f6f5, 0x00eeedeb,
- 0x00d4dfd8, 0x00d0dad5, 0x00cdd6d5, 0x00c8d1d0, 0x00bdc3c7, 0x00afb3b7, 0x00a2a1a4, 0x009a9393, 0x0090857f, 0x008b7d77, 0x0088827f, 0x007d868e, 0x00828189, 0x007f8185, 0x00787c7f, 0x00707580,
- 0x005e7481, 0x00526a77, 0x004b636e, 0x00516369, 0x00676f72, 0x006c7174, 0x006f7178, 0x0071757b, 0x006b727e, 0x005e6876, 0x0050606e, 0x0042525f, 0x00394451, 0x003b434f, 0x004a505a, 0x00595b65,
- 0x00636667, 0x00696a6f, 0x00676873, 0x005c6272, 0x00484a65, 0x0030374e, 0x0021283a, 0x00242936, 0x00373941, 0x00494a4e, 0x005d5e60, 0x00616468, 0x00626771, 0x005a5f6f, 0x00454b5f, 0x002f364c,
- 0x001c2134, 0x001a1f2f, 0x002a2c35, 0x003c3c40, 0x00504c4c, 0x00575757, 0x00545659, 0x004f555b, 0x00444959, 0x00313848, 0x001f2639, 0x00181d2d, 0x00272934, 0x003b3a40, 0x00565355, 0x00605f5b,
- 0x0060636b, 0x005d6168, 0x0050565e, 0x00404751, 0x002a303d, 0x001e2532, 0x00212831, 0x0031353b, 0x00524e56, 0x00615d65, 0x0066656d, 0x005c636e, 0x004e5662, 0x0037414e, 0x001e2734, 0x00131e2c,
- 0x00141c27, 0x001f262e, 0x00373d41, 0x004c4f51, 0x0061605f, 0x00626269, 0x00595b68, 0x00464a57, 0x0029303f, 0x001b222f, 0x00151c28, 0x001b212a, 0x002c2f37, 0x0044454a, 0x005a585a, 0x00605c5d,
- 0x00807f82, 0x00cfcdd0, 0x00fcfcfd, 0x00fdfdfc, 0x00fcfcfb, 0x00fbfcfa, 0x00edefed, 0x00b2b3b2, 0x008d8c8d, 0x00bcbbb8, 0x00eaeae9, 0x00c9cbd8, 0x005c6576, 0x003d495f, 0x003a4d69, 0x00385072,
- 0x00354f74, 0x00364f73, 0x00394e71, 0x003b4d6f, 0x003c4d6c, 0x00384f6c, 0x00334f6b, 0x00314e69, 0x002f4c64, 0x002d465d, 0x002b4358, 0x00243b4c, 0x00213545, 0x001f303f, 0x001b2b39, 0x00142432,
- 0x00152537, 0x00162739, 0x00192b3c, 0x001c3140, 0x001e3745, 0x001f3c48, 0x0020414b, 0x0020434d, 0x00204750, 0x001f4850, 0x001e4550, 0x00204350, 0x00224453, 0x00244653, 0x00254854, 0x00254854,
- 0x002e4f5d, 0x00315661, 0x003e606d, 0x00476977, 0x004d717d, 0x00547880, 0x005c7d84, 0x00608089, 0x00678590, 0x0068868f, 0x006a8590, 0x006a848e, 0x006a818e, 0x00667d89, 0x00617786, 0x005e7382,
- 0x00546f86, 0x004d6482, 0x0040527a, 0x005a689b, 0x005b649b, 0x0041497a, 0x00606a8f, 0x008993aa, 0x00c1c8c2, 0x00bfc8b7, 0x00c2c8b7, 0x00dbd9d0, 0x00f5f2ea, 0x00f9f2ec, 0x00f4efe7, 0x00eeeae5,
- 0x00e5e7dd, 0x00eceee2, 0x00f5f6e8, 0x00f2f4e6, 0x00e3e6da, 0x00e3e6de, 0x00edf0eb, 0x00f5f8f4, 0x00f8fcf6, 0x00fbfef7, 0x00fdfdf8, 0x00fbfbf5, 0x00fdfdf6, 0x00fdfcf4, 0x00fffcf5, 0x00fffdf5,
- 0x00f9fcf4, 0x00fcfdf8, 0x00fdfdfd, 0x00fcfbfc, 0x00f8f7fa, 0x00f8f8fa, 0x00fbfdfb, 0x00fafcfc, 0x00fbfcfe, 0x00f9fcfb, 0x00e7eaee, 0x00d2d5d6, 0x00b8b8bf, 0x009b9b9d, 0x0075767a, 0x00616465,
- 0x00514d4f, 0x00535050, 0x00595757, 0x00615e5e, 0x00737171, 0x00807b7f, 0x00918c93, 0x00a29ea4, 0x00abb0b4, 0x00b9bebf, 0x00c9d0cf, 0x00d2d9d7, 0x00dce2e3, 0x00e8eaee, 0x00f3f2f8, 0x00f7f3fa,
- 0x00c7c4b2, 0x005a503f, 0x00564c3a, 0x00584d3b, 0x00574d3a, 0x005a4f3b, 0x005d533e, 0x005f5841, 0x00635b41, 0x00615843, 0x00625a3f, 0x00625d3c, 0x00656149, 0x0056544c, 0x002e2f2e, 0x00181a23,
- 0x00050616, 0x00070516, 0x00080710, 0x000a080e, 0x000b0707, 0x000c0a05, 0x000b0b02, 0x000d0c03, 0x000e0a02, 0x00110e06, 0x0014110a, 0x00151009, 0x001c140d, 0x001e130d, 0x001b0e0a, 0x001a0d0b,
- 0x001c1509, 0x00221a10, 0x00271e15, 0x00271d13, 0x00271c10, 0x00291e12, 0x00241b10, 0x00221a11, 0x001b140a, 0x001b0f08, 0x00110e09, 0x000a1011, 0x000a0c1b, 0x000f0d2a, 0x001f234e, 0x00313970,
- 0x00445b97, 0x0047609a, 0x00455c90, 0x00435383, 0x0071769d, 0x00a1a7bb, 0x00787f88, 0x003f4248, 0x00262824, 0x002b2a21, 0x002e2a1b, 0x00342d1c, 0x003c2d24, 0x003f2e29, 0x003d2b26, 0x003b2627,
- 0x00252b2c, 0x00281f15, 0x004b3822, 0x00a48061, 0x00a37f60, 0x004a351f, 0x00150e05, 0x002c2f29, 0x00525450, 0x00605c55, 0x005a5849, 0x0051563d, 0x004a5135, 0x00373c26, 0x002b3118, 0x0031341d,
- 0x00262c16, 0x001c210e, 0x00242916, 0x002c311f, 0x002b3121, 0x002d2d1d, 0x00292c1c, 0x002b3025, 0x00232726, 0x000e1615, 0x00070f10, 0x000e1313, 0x00160f0f, 0x001e130e, 0x002f1f15, 0x00402e1f,
- 0x0068381b, 0x00734a32, 0x00634227, 0x00492f1b, 0x00302314, 0x002c271b, 0x0023241c, 0x001c1f1a, 0x001a1713, 0x00161413, 0x00181612, 0x0017160b, 0x001d1b10, 0x00242118, 0x001f1f15, 0x004d4f46,
- 0x00ced2cb, 0x00fafef8, 0x00f9fefa, 0x00f7fcf9, 0x00fbfefa, 0x00fcfefd, 0x00fcfbfd, 0x00fcfafa, 0x00fefdfc, 0x00fcfcfa, 0x00fcfdf8, 0x00fcfff9, 0x00fcfdfb, 0x00fcfdfd, 0x00fbfafd, 0x00fbf9fe,
- 0x00fffefc, 0x00fefefb, 0x00fefefc, 0x00fffffe, 0x00fffffe, 0x00fffefe, 0x00fefefe, 0x00fefefe, 0x00fefeff, 0x00fdfefe, 0x00fbfefe, 0x00f8fefc, 0x00f9fefc, 0x00fafefb, 0x00fbfff9, 0x00fafff7,
- 0x00fefffa, 0x00fdfefa, 0x00fdfefb, 0x00fefefc, 0x00fdfcfc, 0x00fcfdfc, 0x00fcfdfb, 0x00fdfffc, 0x00fcfefd, 0x00fcfffe, 0x00fcfefd, 0x00fcfefd, 0x00fcfefd, 0x00fbfdfb, 0x00fdfffd, 0x00fcfffc,
- 0x00ffffff, 0x00fffffd, 0x00fffffd, 0x00fffffe, 0x00fefffb, 0x00fdfdfb, 0x00fdfbfd, 0x00fefbfd, 0x00fcfaf9, 0x00fefafb, 0x00fdfcfa, 0x00fffefc, 0x00fffdf9, 0x00fffefd, 0x00fcfefb, 0x00fefdfb,
- 0x00fefdfb, 0x00fffdfb, 0x00fffdfa, 0x00fffffb, 0x00fffdfa, 0x00fffefb, 0x00fefefb, 0x00fcfffc, 0x00fffefc, 0x00fffffd, 0x00fffefd, 0x00fefdfd, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fdfdfd,
- 0x00fdfdfa, 0x00fefefc, 0x00fffefc, 0x00fefefc, 0x00fffdfd, 0x00fffdfc, 0x00fffefb, 0x00fffffd, 0x00fffef9, 0x00fefefa, 0x00fefdfa, 0x00fefdfb, 0x00fffdfd, 0x00fffcfc, 0x00fffcfb, 0x00fffdfc,
- 0x00fcfefa, 0x00fdfefb, 0x00fdfefb, 0x00fdfdfb, 0x00fefdfb, 0x00fffefa, 0x00fffefa, 0x00fefdfa, 0x00fffffb, 0x00fdfefb, 0x00fcfdfa, 0x00fcfdfa, 0x00fdfdfc, 0x00fefefd, 0x00fefefc, 0x00fcfdfc,
- 0x00fefcfd, 0x00fefbfe, 0x00fffcfe, 0x00fdfafc, 0x00fdfbfd, 0x00fcfcfc, 0x00fefdff, 0x00fefdfe, 0x00fffdfe, 0x00fffdff, 0x00fdfdff, 0x00fbfefc, 0x00fcfdfd, 0x00fdfdfd, 0x00fcfefe, 0x00fdfeff,
- 0x00fcfefb, 0x00fefefc, 0x00fefcfd, 0x00fefbfc, 0x00fffefd, 0x00fdfcfa, 0x00fcfdfb, 0x00f9fcfb, 0x00f8fdfd, 0x009da1a2, 0x00000203, 0x00020301, 0x000a0903, 0x001c150b, 0x00312417, 0x003d2c1e,
- 0x0046351d, 0x003e301a, 0x002f2312, 0x00221b0f, 0x000e0b05, 0x00030300, 0x00181a17, 0x00444542, 0x00716f6f, 0x00838180, 0x00c2bbbc, 0x00d7c9d3, 0x00837570, 0x003b2f24, 0x00291f0d, 0x002a2212,
- 0x00352e2b, 0x0051484f, 0x00736b78, 0x00898394, 0x00938c99, 0x008c8596, 0x0077727e, 0x00666065, 0x00534943, 0x00463b2e, 0x004e3b28, 0x005a3e2e, 0x00653b32, 0x006a3737, 0x0065282e, 0x005e1c26,
- 0x005b170f, 0x00581514, 0x00521119, 0x00460a18, 0x00451317, 0x0062392d, 0x009e7a5e, 0x00b29269, 0x00b99b6e, 0x00b99c6e, 0x00ba9b68, 0x00ab894d, 0x007d6033, 0x00584424, 0x003c3220, 0x0033332a,
- 0x00252624, 0x001a1816, 0x00140e0a, 0x00180f03, 0x00251702, 0x00281e07, 0x00211a09, 0x00191403, 0x000c0a02, 0x00070704, 0x00070908, 0x000c0e0f, 0x00131113, 0x00171212, 0x00140e0e, 0x00120c0a,
- 0x000e0b06, 0x0044413d, 0x00d0cecd, 0x00fafaf8, 0x00fefdfd, 0x00fcfcfb, 0x00fbfbfb, 0x00fefefe, 0x00dddfe3, 0x00898c90, 0x002c3035, 0x00101321, 0x00080b15, 0x000d1019, 0x00080c11, 0x00090d14,
- 0x00080c0f, 0x00080d12, 0x00070d13, 0x00090f18, 0x000c0f1d, 0x00101520, 0x0010151c, 0x000a0d14, 0x00010007, 0x00020005, 0x00050206, 0x00030206, 0x00000006, 0x00080b12, 0x002e313a, 0x00575a65,
- 0x006e6f6c, 0x0070706f, 0x00757674, 0x00717471, 0x00a0a29e, 0x00bbbbb5, 0x00958e86, 0x00796f64, 0x00604f3f, 0x0063503d, 0x0092877c, 0x00a8b4be, 0x00bac3ce, 0x00c5cedd, 0x00c8d2dd, 0x00c4ceda,
- 0x00bec8d1, 0x00bbc4ce, 0x00b5c0c9, 0x00b5bdc9, 0x00abb7c4, 0x00b7bcc8, 0x00b7bcc2, 0x00acb2b9, 0x00a9adb0, 0x00a1a7a7, 0x008e9493, 0x00838a8a, 0x0092979d, 0x00b2b7c2, 0x00cbd1df, 0x00c4cbd9,
- 0x00c0c7d4, 0x00b9becb, 0x00abadb8, 0x00a5a5ac, 0x00a9a6ae, 0x00b2afb8, 0x00bebec9, 0x00cbcdda, 0x00d6ddef, 0x00dce2fb, 0x00d9e8fd, 0x00e0edfe, 0x00f9d7e2, 0x00d6dfe5, 0x00ceeaf5, 0x00cad8f7,
- 0x00c0a8ba, 0x00c7adb6, 0x00e4bdc0, 0x00d38890, 0x008a5746, 0x00514455, 0x0058577b, 0x00624878, 0x006d5c81, 0x00747a8c, 0x00687276, 0x00827777, 0x00bd7c8a, 0x00b9889a, 0x005e4d5c, 0x000f2e38,
- 0x00191b36, 0x001b1f36, 0x00272b3d, 0x00444852, 0x00b1b5b6, 0x00f1f2f0, 0x00fefdfc, 0x00fcfefc, 0x00f9fbf9, 0x00fdfcfb, 0x00b4b1ae, 0x00383429, 0x00161511, 0x00171911, 0x00232318, 0x00292215,
- 0x002f2414, 0x00342823, 0x00373035, 0x00515368, 0x007483ab, 0x007a8ec0, 0x00657eb5, 0x005772a8, 0x005675ad, 0x005c7cb7, 0x006284c2, 0x007193d2, 0x007d9cde, 0x0084a0e2, 0x0096aef0, 0x00a1b8f8,
- 0x00bfd6ed, 0x00b1c4da, 0x00596675, 0x001d2431, 0x0005040e, 0x000a0812, 0x00101118, 0x00131320, 0x0014162a, 0x000f142f, 0x0010162c, 0x00141527, 0x00151629, 0x00161530, 0x001a1b37, 0x001d1e40,
- 0x00242849, 0x00212341, 0x00171c37, 0x00121b32, 0x000f162b, 0x000e1027, 0x000e0f27, 0x000c0f25, 0x00141628, 0x00232633, 0x00383c46, 0x0052575e, 0x00787d83, 0x00969ba2, 0x00b6bac1, 0x00caced4,
- 0x00eae9e8, 0x00f5f5f3, 0x00fcfcf9, 0x00fffffb, 0x00fffefe, 0x00fdfefc, 0x00fdfdfe, 0x00fdfcff, 0x00fefcfc, 0x00fffcfd, 0x00fefdff, 0x00fcfeff, 0x00fdffff, 0x00fcfefd, 0x00fbfefd, 0x00fbfefd,
- 0x00fcfcfd, 0x00fcfdfe, 0x00fafdff, 0x00f7f9ff, 0x00eaeaf1, 0x00d9d9f0, 0x00c1c2e2, 0x00a7a8c5, 0x00a6a7b8, 0x00cbccd5, 0x00eef0f2, 0x00f2f3f5, 0x00f4f3f8, 0x00f7f5fa, 0x00f6f4fb, 0x00c4becf,
- 0x006469d1, 0x00656cc2, 0x005a62ae, 0x003e4a8e, 0x005b6b9e, 0x008897be, 0x00c7d9f0, 0x00ddf5fb, 0x00a2b1f0, 0x007880ed, 0x007d88f2, 0x0096a3e2, 0x00c3ceee, 0x00e6eefc, 0x00f4fefd, 0x00e6f5ff,
- 0x009eb3ed, 0x00718bd6, 0x007b94e6, 0x008197e7, 0x00acbcf6, 0x00d9e9fd, 0x00c5d3ec, 0x0098a7ca, 0x0097abdd, 0x00b7ccfc, 0x00bbd1f8, 0x00aebff2, 0x00cbd5f1, 0x00eff6fe, 0x00fbfdf5, 0x00fefaeb,
- 0x00fcfefe, 0x00fdfdff, 0x00fdfefc, 0x00fefcfe, 0x00fbfbfa, 0x00fdfbf7, 0x00fdfcf8, 0x00fdfcfb, 0x00fbfafd, 0x00fdfaff, 0x00fffcfb, 0x00fffff9, 0x00fdfef8, 0x00fefdfe, 0x00fcfcfb, 0x00fbfafd,
- 0x00f9fcfd, 0x00fcfdfe, 0x00fbfffe, 0x00fcfefc, 0x00f8fdfa, 0x00fcfdfe, 0x00f9fefe, 0x00f8fcfd, 0x00f7f5f6, 0x00e7e6e7, 0x00cfced0, 0x00bebcbe, 0x00a7a6a7, 0x00939292, 0x007a7b7a, 0x00676a69,
- 0x005c584c, 0x00545348, 0x005e6059, 0x006f726f, 0x007b7f84, 0x006d757c, 0x0059626b, 0x00555b63, 0x00545861, 0x005b5c65, 0x0067676d, 0x006e6e75, 0x00777275, 0x00777377, 0x006b6a6d, 0x005f5e64,
- 0x004b535e, 0x00434b56, 0x00393f48, 0x00424344, 0x005a5350, 0x00655e5b, 0x00706b6b, 0x006f6b6e, 0x00686a73, 0x005e6470, 0x00404b5a, 0x002e3a49, 0x00242e3b, 0x0029313d, 0x003b424c, 0x004d515a,
- 0x005f6164, 0x0067676c, 0x0061646d, 0x005a5f6d, 0x00444a62, 0x0031364e, 0x00202639, 0x00212434, 0x0032353d, 0x0045474c, 0x00585a5b, 0x00585c5d, 0x00575b64, 0x00515664, 0x0043485a, 0x0030364c,
- 0x001e2638, 0x001b2130, 0x00292c36, 0x003c3d41, 0x00524e4e, 0x005b5b5a, 0x00575c5d, 0x004e565a, 0x00404556, 0x00313749, 0x0021283d, 0x001b2133, 0x002a2e39, 0x00424348, 0x005e5d5e, 0x00686762,
- 0x00656a73, 0x00626970, 0x00525961, 0x003b434d, 0x00212835, 0x001b2230, 0x00242935, 0x00363741, 0x0054525a, 0x0066636a, 0x006a6970, 0x00626872, 0x00505762, 0x003a4350, 0x00202835, 0x00131d2a,
- 0x0017212b, 0x00212b31, 0x00363c3f, 0x004b4e4e, 0x005c5a59, 0x005d5c63, 0x004f505d, 0x00414451, 0x002c3442, 0x001d2533, 0x00141c29, 0x00181f2a, 0x00262a32, 0x003d3e42, 0x00555354, 0x005f5b59,
- 0x00747477, 0x00bcbbbe, 0x00f8f9fb, 0x00fcfdfc, 0x00fcfcfb, 0x00fefffd, 0x00f6f6f4, 0x00bab9b7, 0x008a8b86, 0x00b3b4b1, 0x00e6e6e6, 0x00e0e1ed, 0x00788192, 0x003e4c61, 0x00364a61, 0x002f4b63,
- 0x002e4e6d, 0x00314e6d, 0x00324d6b, 0x00344b69, 0x00364c66, 0x00324d68, 0x002d4d67, 0x002f4c66, 0x002d4960, 0x002d465c, 0x002a4256, 0x00263c4d, 0x00213544, 0x00213140, 0x001b2b39, 0x00162634,
- 0x00152436, 0x00162737, 0x00192b3b, 0x001b303e, 0x001d3542, 0x001e3b46, 0x001e3f4a, 0x001e424c, 0x001f464f, 0x001e474f, 0x001c444d, 0x001c414d, 0x001e414f, 0x001f434f, 0x00214451, 0x00204351,
- 0x00244654, 0x00264a57, 0x00305460, 0x003b5e6b, 0x00486b79, 0x004d707a, 0x0053747b, 0x00597782, 0x005d7b84, 0x005e7b86, 0x005d7b86, 0x005c7987, 0x005a7883, 0x00577481, 0x0054707d, 0x00506b7a,
- 0x00466a72, 0x00426173, 0x004b6682, 0x005d729c, 0x005e6ba2, 0x005d669f, 0x0051598d, 0x00474f7c, 0x009297b2, 0x00bdc2d3, 0x00c8cad0, 0x00d9d3cf, 0x00ded9d3, 0x00ebe4df, 0x00f5f4ea, 0x00edeee4,
- 0x00f4f3e8, 0x00f5f6eb, 0x00f8faf0, 0x00f9fbf1, 0x00f3f3ea, 0x00f7f6f2, 0x00fdfcfd, 0x00fdfdfe, 0x00fdfdff, 0x00fffdff, 0x00fdf9fc, 0x00fcf9fb, 0x00fcf9f8, 0x00fdfaf8, 0x00fefbf9, 0x00fffcfa,
- 0x00fefdf9, 0x00fffffe, 0x00fbf9fa, 0x00fcf8fa, 0x00fffbff, 0x00ffffff, 0x00f5f4f5, 0x00e2e2e3, 0x00c3c6c6, 0x00a9adaa, 0x00858b8b, 0x006e7375, 0x005a5b5e, 0x00535355, 0x0057585a, 0x005e5f5d,
- 0x006c6b66, 0x00797975, 0x008c8c88, 0x009a9893, 0x00a8a7a3, 0x00b7b1b1, 0x00c7bfc1, 0x00d3cdce, 0x00dedad8, 0x00e7e6e1, 0x00f2f1eb, 0x00f6f6f0, 0x00f5f6f2, 0x00f9f7f6, 0x00fdf8fa, 0x00fef9fb,
- 0x00c6c2b0, 0x00504436, 0x004c4132, 0x004a402f, 0x004b4430, 0x004b432e, 0x004f4631, 0x00524833, 0x00544a34, 0x00544a34, 0x00544b36, 0x00575138, 0x00555040, 0x00424037, 0x00151616, 0x000c0e16,
- 0x0009091b, 0x00080813, 0x0009080f, 0x000a0a08, 0x000a0906, 0x00090702, 0x000d0c07, 0x00100d07, 0x00130e08, 0x0015110a, 0x001c150f, 0x001e150e, 0x00231610, 0x0023140e, 0x0021110a, 0x0024140c,
- 0x00291b14, 0x0030211b, 0x0035251f, 0x00302219, 0x002d1f13, 0x002b1e0f, 0x002a1d0d, 0x00261908, 0x00221706, 0x00211504, 0x00211406, 0x0018100a, 0x00190c12, 0x000b0211, 0x00060320, 0x00070d37,
- 0x00354784, 0x00465e99, 0x00445c94, 0x0055689c, 0x007b84ae, 0x009fa4bc, 0x007a7c87, 0x004d4f56, 0x003f3c35, 0x003d3628, 0x00453926, 0x004a3721, 0x004d3320, 0x004d2d1d, 0x004b291a, 0x004c271b,
- 0x00352726, 0x00341e14, 0x00553523, 0x00a27d62, 0x00a07963, 0x00493021, 0x001d110c, 0x00252526, 0x004b4b4c, 0x005d5d56, 0x004e4e44, 0x004c523b, 0x004a523b, 0x00353c27, 0x00232917, 0x00232915,
- 0x001b1f10, 0x001b2111, 0x002b2f22, 0x002f3628, 0x00313729, 0x002d2f23, 0x002b2821, 0x00292b27, 0x001e2122, 0x000b0f13, 0x00080b12, 0x000f0f14, 0x00180d11, 0x00211010, 0x00361f1b, 0x00462b24,
- 0x00663c2b, 0x00644531, 0x004c311f, 0x0032200f, 0x002a2519, 0x0028251c, 0x001f211d, 0x001b1c17, 0x001b1613, 0x001a1713, 0x001a1710, 0x0019170c, 0x001d1c13, 0x00211f18, 0x001c1d14, 0x004f5549,
- 0x00d8d6d1, 0x00fbfbf8, 0x00fdfffa, 0x00f6faf4, 0x00fbfdfa, 0x00fcfcfc, 0x00fefdfd, 0x00fcfcfc, 0x00fffefe, 0x00fdfefa, 0x00fcfef9, 0x00fefffb, 0x00fcfdfc, 0x00fefdff, 0x00fefdff, 0x00fbfafd,
- 0x00fcfdfd, 0x00fcfcfd, 0x00fdfdfd, 0x00fefefe, 0x00fdfefe, 0x00fcfefd, 0x00fdfefd, 0x00fefefd, 0x00fcfdff, 0x00fbfdff, 0x00fcfdff, 0x00fcfdfd, 0x00fbfdfa, 0x00fafdf8, 0x00fcfef8, 0x00fdfdf7,
- 0x00fefdfa, 0x00fffefb, 0x00fffdfd, 0x00fcfcfd, 0x00fdfdff, 0x00fcfdff, 0x00fbfeff, 0x00fbffff, 0x00fbfcfd, 0x00fbfdfd, 0x00fbfcfd, 0x00fafdfd, 0x00fcfefe, 0x00fafdfc, 0x00fbfefd, 0x00fafdfc,
- 0x00fefdfe, 0x00fdfdfe, 0x00fdfdfc, 0x00fcfdfb, 0x00fdfdfe, 0x00fefdfe, 0x00fffefe, 0x00fefdff, 0x00fffcfd, 0x00fdfaf9, 0x00fffcfc, 0x00fefefc, 0x00fffefe, 0x00fdfffc, 0x00fefefe, 0x00fefefd,
- 0x00fffefe, 0x00fefdfc, 0x00fffefd, 0x00fdfdfd, 0x00fefefe, 0x00fffdfd, 0x00fefdfc, 0x00fdfdfd, 0x00fffefd, 0x00fefdfd, 0x00fdfcfd, 0x00fdfcfd, 0x00fdfcfd, 0x00fdfdfe, 0x00fefeff, 0x00fcfcfc,
- 0x00fefefd, 0x00fefdfd, 0x00fefefd, 0x00fefffe, 0x00fdfefe, 0x00fdfefd, 0x00fefffd, 0x00fcfefd, 0x00fffefd, 0x00fffefd, 0x00fefdfd, 0x00fdfdfd, 0x00fefdfe, 0x00fdfcfe, 0x00fdfcfe, 0x00fefeff,
- 0x00fefcfe, 0x00fffefe, 0x00fffefe, 0x00fefdfe, 0x00fdfcfd, 0x00fdfdfd, 0x00fdfdfc, 0x00fdfdfc, 0x00fdfefd, 0x00fdfdfd, 0x00fefdfe, 0x00fefdfe, 0x00fdfefd, 0x00fdfefd, 0x00fdfdfc, 0x00fefdfc,
- 0x00fffcff, 0x00fefcfc, 0x00fefcfd, 0x00fdfcfd, 0x00fefefe, 0x00fdfdfd, 0x00fefefd, 0x00fdfeff, 0x00fffcfd, 0x00fefbfd, 0x00fdfdfd, 0x00fbfefe, 0x00fcfdff, 0x00fcfcfd, 0x00fbfdfb, 0x00fbfdfc,
- 0x00fffefe, 0x00fdfcfc, 0x00fcfcfc, 0x00fbfbfb, 0x00fcfcfb, 0x00fdfdfc, 0x00fcfcfb, 0x00fafafa, 0x00fafeff, 0x00a0a4a4, 0x00020505, 0x00010100, 0x000f0b05, 0x001d140b, 0x00302419, 0x003b2e22,
- 0x00422d17, 0x0044321d, 0x00372716, 0x00241a0c, 0x00282218, 0x003b3731, 0x00302f2a, 0x00302d2a, 0x005e5856, 0x0089837c, 0x00cec1c4, 0x00d0becd, 0x00716463, 0x00342a1e, 0x0028200f, 0x00251e0e,
- 0x00362c2e, 0x0051464f, 0x00756a78, 0x008a818f, 0x00908792, 0x0089808a, 0x00766d76, 0x00655c5e, 0x004e443f, 0x0043382c, 0x00463829, 0x004c3726, 0x0057362c, 0x00553027, 0x004d201e, 0x00491416,
- 0x004c140c, 0x0048130f, 0x00431113, 0x00390b12, 0x0039110f, 0x005d3828, 0x009e7c5c, 0x00b19265, 0x00bb9b69, 0x00ba9966, 0x00b99561, 0x00a8824a, 0x007c5d32, 0x00685231, 0x005e503c, 0x005b5649,
- 0x00494646, 0x0032302b, 0x001e1914, 0x00130c03, 0x001c1002, 0x001c1305, 0x00160f05, 0x00100b01, 0x00080403, 0x00070502, 0x000b0a09, 0x0012100f, 0x00171311, 0x001a1311, 0x00170f0a, 0x00140c05,
- 0x000d0906, 0x0054514e, 0x00e2dedd, 0x00fefbfa, 0x00fffefe, 0x00fdfdfc, 0x00fdfdfc, 0x00fdfffc, 0x00dddde5, 0x00818385, 0x0024272d, 0x000b0e1b, 0x00070a16, 0x000a0e14, 0x00080d12, 0x00080e12,
- 0x000c0d13, 0x00090b13, 0x00080c14, 0x00080d17, 0x000d101e, 0x00131724, 0x000d131b, 0x0005080e, 0x00010007, 0x00020004, 0x00030004, 0x00050207, 0x00010006, 0x0005070e, 0x00222830, 0x004c535e,
- 0x006e6e71, 0x006d6f71, 0x006f7273, 0x00858a8c, 0x00b7bcbf, 0x00c1c3c8, 0x009b9a9c, 0x007b7977, 0x00645b57, 0x00787067, 0x00afacab, 0x00afbac5, 0x00bbc7d0, 0x00c2cdda, 0x00c1ccd9, 0x00bfc9d5,
- 0x00bcc5d4, 0x00b8c2cf, 0x00b5bec9, 0x00b0bac4, 0x00aeb9c3, 0x00abb4bc, 0x00adb5bb, 0x00abb5bb, 0x00a3a9ad, 0x00909699, 0x00808689, 0x00868c90, 0x00acb3ba, 0x00c2c8d5, 0x00cacfe1, 0x00c2c6db,
- 0x00b9c0d2, 0x00adb4c2, 0x009da2af, 0x009597a3, 0x00a8a8b2, 0x00b8b7c1, 0x00c5c5d1, 0x00d4d6e3, 0x00e0e3f6, 0x00e7e9fc, 0x00e5ebff, 0x00e1e7fd, 0x00f7d6ea, 0x00e6e5e9, 0x00e1e8f3, 0x00c1c0da,
- 0x008b7191, 0x00a17274, 0x00d88e84, 0x00c65b53, 0x006b404a, 0x0026305e, 0x00324b8c, 0x00464c94, 0x00585294, 0x006e759d, 0x008f94b0, 0x00acabb7, 0x00d5bfcf, 0x00cec1d1, 0x007b7c8f, 0x0020384a,
- 0x001e1931, 0x001b192b, 0x00282936, 0x004e4f56, 0x00c4c4c6, 0x00f4f5f4, 0x00fbfdfc, 0x00fdfefb, 0x00fdfefd, 0x00f9fbf9, 0x009b9a95, 0x00281f17, 0x00191710, 0x0017170f, 0x001f2115, 0x00282418,
- 0x00372b21, 0x00352d2a, 0x00484652, 0x006a758e, 0x007b90be, 0x006780af, 0x005a73a8, 0x005672a8, 0x005976b6, 0x005775b8, 0x005170b8, 0x005574bf, 0x005e7ac9, 0x00637bcd, 0x007087d8, 0x00859bea,
- 0x00a4bee4, 0x00b9cff1, 0x00abbbd9, 0x0060697f, 0x000d0e1f, 0x000e0c1b, 0x00100d1b, 0x0015141e, 0x00171626, 0x00131525, 0x00101425, 0x00131426, 0x0012142b, 0x00191832, 0x001f1e3d, 0x00232345,
- 0x0025264c, 0x00232447, 0x001f2143, 0x00191f3e, 0x00151d38, 0x00121834, 0x00121734, 0x000f142f, 0x000c0f29, 0x000f122a, 0x0012152a, 0x00131729, 0x001c2232, 0x00282f3c, 0x00474f5c, 0x00646c78,
- 0x008c8c8d, 0x00a3a39e, 0x00c5c4be, 0x00d7d8cf, 0x00eceee6, 0x00f9faf5, 0x00fefefc, 0x00fbfdfd, 0x00fffeff, 0x00fdfcfe, 0x00f9f9fd, 0x00fbfdff, 0x00fbfdff, 0x00fafcfe, 0x00f9fcfc, 0x00fafefa,
- 0x00fcfdfe, 0x00fcfffb, 0x00f9fcf7, 0x00f8fcf2, 0x00fcfdf9, 0x00f6f7fa, 0x00f2f4fe, 0x00f0f2fb, 0x00e8e9f4, 0x00e2e3e6, 0x00eceded, 0x00eef0ea, 0x00f1f0f3, 0x00efedf1, 0x00f5f3fa, 0x00c7c3cf,
- 0x006163c6, 0x004b4fab, 0x004c51a1, 0x00626ca7, 0x00a6b9c8, 0x00d2e5f0, 0x00e1f3fa, 0x00c7d8f3, 0x007b84df, 0x00656bdf, 0x00868def, 0x00b6c3e9, 0x00edf4fe, 0x00eff7fc, 0x00f6f9fd, 0x00d6dcf3,
- 0x008492d3, 0x007286d2, 0x008b9bf3, 0x00808fdf, 0x009ba4e2, 0x00d3dbf2, 0x00d7e0ef, 0x00b8c6d4, 0x00bdcee6, 0x00dceefc, 0x00dff0fe, 0x00d5e5fc, 0x00e3edf4, 0x00f7fcf8, 0x00fefef9, 0x00fefcef,
- 0x00fefcff, 0x00fdfcff, 0x00fefcfe, 0x00fcfefe, 0x00fbfcfb, 0x00fbfdfc, 0x00fefefc, 0x00fdfdfd, 0x00fffeff, 0x00fbfaff, 0x00f9f9fa, 0x00f8f7f3, 0x00fcfaf8, 0x00fffefb, 0x00fdfdfc, 0x00fbfcfd,
- 0x00fefdff, 0x00fafcfd, 0x00f7f8fb, 0x00ebeff1, 0x00e3e8e9, 0x00dee0e0, 0x00dedbdb, 0x00cececc, 0x00aaa8ab, 0x00848384, 0x005f5e5f, 0x00454545, 0x002a2b2c, 0x00161819, 0x000d0f10, 0x000d0e0f,
- 0x001b1308, 0x00191508, 0x0027251c, 0x00373934, 0x00595f63, 0x005b656e, 0x00485562, 0x003d4b5a, 0x003b465c, 0x00404e5d, 0x00585d66, 0x00696163, 0x0071686c, 0x00736b6e, 0x00756e71, 0x00767074,
- 0x00766f76, 0x006b6368, 0x005a4f50, 0x00534341, 0x005f4843, 0x006e5b52, 0x0080716a, 0x00746965, 0x00656468, 0x005b6068, 0x003f4653, 0x002b3443, 0x001d2734, 0x00242c38, 0x00363b46, 0x004a4f57,
- 0x005e5b62, 0x00606168, 0x005d5e69, 0x00545967, 0x0041475b, 0x002f374a, 0x00222738, 0x00202735, 0x0034363d, 0x0045454c, 0x0056565c, 0x00575a61, 0x00555a66, 0x004d5261, 0x00414658, 0x0030374c,
- 0x0021253a, 0x00202535, 0x00343541, 0x0045444b, 0x005a5758, 0x005f6163, 0x005f6369, 0x005a5f69, 0x00464c59, 0x00303748, 0x00212839, 0x00212836, 0x00313642, 0x004b4c53, 0x00646262, 0x006f6b68,
- 0x006a6c77, 0x00646972, 0x004f555f, 0x00353d48, 0x001b2431, 0x001a232f, 0x00262b37, 0x00363844, 0x00534f59, 0x00635f63, 0x0067666b, 0x005d626d, 0x004d5560, 0x00353f4c, 0x001c2733, 0x00131e2a,
- 0x00171e2a, 0x001f272f, 0x00353b3f, 0x0047494a, 0x005a5857, 0x005a5a61, 0x004b4f5b, 0x003c414d, 0x002a3240, 0x001b2432, 0x00121a28, 0x00141b26, 0x00262b32, 0x003d3f41, 0x00595757, 0x0064615f,
- 0x00706e73, 0x00acadb0, 0x00fefdff, 0x00fbfbfd, 0x00fcfdfe, 0x00fdfdfb, 0x00f8f9f6, 0x00c5c5c2, 0x008e8d8c, 0x00abaca8, 0x00e2e5e5, 0x00eaf1f3, 0x00919fa9, 0x00435564, 0x0030485c, 0x002f4a62,
- 0x002b4c69, 0x002d4d68, 0x002d4d65, 0x002e4b63, 0x00314a60, 0x002d4a62, 0x002a4a62, 0x002c4b63, 0x002c475e, 0x002b445a, 0x002b4257, 0x00263b4e, 0x00223647, 0x001f3040, 0x001c2c3b, 0x00172836,
- 0x00162637, 0x00172838, 0x00192a3b, 0x001a2e3d, 0x001b3341, 0x001c3845, 0x001d3d48, 0x001e404a, 0x0020444f, 0x001f454f, 0x001e434e, 0x001e414e, 0x001e4250, 0x001e424f, 0x00204450, 0x00204451,
- 0x00224553, 0x00224453, 0x00294a59, 0x00315562, 0x003f6270, 0x00476673, 0x004d6975, 0x004f6f7b, 0x00557182, 0x00547280, 0x00567482, 0x0055747f, 0x0052727e, 0x004f6f7a, 0x004b6a76, 0x00486772,
- 0x003c6061, 0x00355862, 0x003a5a6e, 0x00425d80, 0x00596ca0, 0x006d79b4, 0x00545b96, 0x00494f85, 0x00787ca9, 0x009fa1c7, 0x00cacae1, 0x00d6d1cc, 0x00d0cbc6, 0x00dfd8d1, 0x00f7f4ed, 0x00f7f6ed,
- 0x00fbf7f0, 0x00f8f7f2, 0x00fafdf6, 0x00fcfff7, 0x00fdfdf8, 0x00fefbfa, 0x00fffcfd, 0x00fffcff, 0x00fefbff, 0x00fefbfd, 0x00fefbfd, 0x00fefdfe, 0x00fefcfe, 0x00fefbfd, 0x00fffcfd, 0x00fbf9f9,
- 0x00fcfcff, 0x00fdfdfe, 0x00fefdfe, 0x00f8f6f8, 0x00e1dee4, 0x00cccad0, 0x00ababac, 0x008a8a89, 0x006a6d67, 0x00595c52, 0x004d514b, 0x004f5353, 0x00585a58, 0x00626463, 0x00757877, 0x0080817f,
- 0x0093908e, 0x009e9c99, 0x00afaea9, 0x00bfbcb6, 0x00cdcac4, 0x00dcd3d0, 0x00e6dbd8, 0x00eee5de, 0x00f7eee5, 0x00f9f1e6, 0x00fdf6ea, 0x00fcf8eb, 0x00fdf7ed, 0x00faf6ee, 0x00fbf7f1, 0x00fcf7f3,
- 0x00c5c2b1, 0x004c4133, 0x004c4133, 0x00493f2f, 0x0048422e, 0x0047402b, 0x0049412c, 0x00483f2b, 0x00483f2c, 0x0049402d, 0x004c4331, 0x004e4636, 0x00423b2e, 0x0028241f, 0x000f0e0f, 0x000b0a14,
- 0x00070713, 0x00080810, 0x00070609, 0x00070603, 0x000b0b02, 0x000c0905, 0x00100b07, 0x00130f0d, 0x0017110d, 0x001d1510, 0x00251a14, 0x00291b15, 0x002e1c17, 0x002e1b15, 0x002f1c13, 0x00332014,
- 0x0037231a, 0x003d291e, 0x003d2a1f, 0x00372619, 0x002f2011, 0x0030200f, 0x0032210f, 0x0035230d, 0x0033250d, 0x0035260c, 0x0033230b, 0x002f1a0a, 0x002a130b, 0x001a0607, 0x00100416, 0x000e0c2e,
- 0x00283972, 0x004c63a1, 0x003d5494, 0x00475996, 0x008993c2, 0x00b6bcd3, 0x00868692, 0x005e6064, 0x0058514a, 0x00564a3b, 0x005c4832, 0x00614327, 0x00633b1e, 0x00623318, 0x005f2c13, 0x00622d16,
- 0x00502e1f, 0x00512816, 0x00643a25, 0x00a47a5f, 0x009e7d67, 0x0050382a, 0x0023140b, 0x001d1715, 0x0032312e, 0x00414036, 0x00323228, 0x003c4032, 0x003f4338, 0x00303428, 0x002d3127, 0x00292d23,
- 0x0021241b, 0x0022251d, 0x002b2c27, 0x00272824, 0x001d221c, 0x0022221a, 0x001f1e17, 0x00201f1c, 0x00151716, 0x000b0d10, 0x00090b11, 0x000b090e, 0x0014080b, 0x001d0c0b, 0x00341c18, 0x00452721,
- 0x005d4236, 0x00503b2e, 0x00352215, 0x00281a13, 0x00231f17, 0x00211f1b, 0x00171a17, 0x00161714, 0x0015140d, 0x001c1a14, 0x001f1b15, 0x001e1d14, 0x001f1f14, 0x001e1c14, 0x001f1f16, 0x0044483c,
- 0x00b2b0ab, 0x00c9c9c4, 0x00cbcec7, 0x00c5cbc2, 0x00cbcec8, 0x00c9cbc9, 0x00d0d1d0, 0x00d6d7d4, 0x00d4d3cf, 0x00d0d2cc, 0x00d3d4cf, 0x00d2d2d0, 0x00cacacc, 0x00c6c5cc, 0x00c6c4cd, 0x00c8c7d1,
- 0x00c4c9ca, 0x00c5c9ca, 0x00c6c8cb, 0x00c6c8cc, 0x00c6c9ce, 0x00c7cacf, 0x00c9cad1, 0x00cacad2, 0x00c8cbd3, 0x00c9cbd3, 0x00c9cacf, 0x00cacaca, 0x00cbcbc8, 0x00c9cbc6, 0x00c8cac6, 0x00cccbc8,
- 0x00c3c7c7, 0x00cacdcd, 0x00d1d3d8, 0x00ced0d8, 0x00cdcfd8, 0x00d1d4dd, 0x00cfd4dd, 0x00c8d0d6, 0x00c5cdd4, 0x00c4ccd3, 0x00c5ccd3, 0x00c8ced5, 0x00c8cdd5, 0x00c8cdd5, 0x00c9ced6, 0x00c9cdd5,
- 0x00cdcfd4, 0x00cdced3, 0x00cacbd0, 0x00cacacf, 0x00cac9d0, 0x00cbcbd2, 0x00caccd2, 0x00c9ccd2, 0x00caced2, 0x00c8cacf, 0x00c6c7cc, 0x00cccdcc, 0x00c9cccc, 0x00cbcbcd, 0x00cacace, 0x00cbccce,
- 0x00cccbd0, 0x00cccbcf, 0x00cbcccf, 0x00cacacf, 0x00ccccd0, 0x00c9cbcb, 0x00c8c9c7, 0x00c8c9c8, 0x00c8cac9, 0x00c8c9c9, 0x00c7c8cb, 0x00c8c8cd, 0x00c8c8ce, 0x00c9c8cf, 0x00cac9d0, 0x00c8c7ce,
- 0x00cbccce, 0x00cbcbcf, 0x00cbcbce, 0x00cacbcd, 0x00cacbce, 0x00cacbce, 0x00cacbcd, 0x00cacbce, 0x00cbcace, 0x00cccbcf, 0x00cbcad0, 0x00c9c9cf, 0x00c9c9cf, 0x00c9cad0, 0x00c9cad1, 0x00c9cbcf,
- 0x00c7c5ce, 0x00c7c6cd, 0x00c6c6cc, 0x00c5c6cc, 0x00c6c6cc, 0x00c6c7ca, 0x00c6c7c8, 0x00c6c6c8, 0x00c5c7c8, 0x00c6c7c7, 0x00c7c6c9, 0x00c6c6c9, 0x00c5c6c8, 0x00c4c5c7, 0x00c5c4c8, 0x00c6c5c7,
- 0x00c4c5c7, 0x00c5c6c9, 0x00c6c8ca, 0x00c7c8cd, 0x00cacacf, 0x00cac9cd, 0x00cac9cc, 0x00cbc9cd, 0x00cac9ca, 0x00c9c9cb, 0x00c7c9ce, 0x00c5cbd0, 0x00c6cad1, 0x00c7c9cf, 0x00cacad0, 0x00ccccd1,
- 0x00d3d1da, 0x00d5d3da, 0x00d6d3d9, 0x00d8d5d8, 0x00d2cfd0, 0x00d4d2d2, 0x00d1d2d0, 0x00d6d7d5, 0x00cacecd, 0x00777978, 0x00040504, 0x00060502, 0x000e0902, 0x001b140b, 0x00292117, 0x00342c20,
- 0x00412d16, 0x003e2b17, 0x00382617, 0x002c2012, 0x00675e53, 0x00c2b9b0, 0x009b958d, 0x003c342d, 0x00322b26, 0x00847c75, 0x00dacfce, 0x00c8b9c6, 0x005c504d, 0x00291f15, 0x00271e0e, 0x0021190b,
- 0x00312726, 0x004a4046, 0x006c606a, 0x00807480, 0x00857c80, 0x007d7277, 0x00675c60, 0x00544a4c, 0x003f352d, 0x00342c20, 0x00392d1d, 0x003c2a1c, 0x0042281a, 0x00402318, 0x003d1a12, 0x003b120e,
- 0x003a140a, 0x003a150e, 0x00371412, 0x002c0b0c, 0x002f0f08, 0x00533420, 0x009d7e5b, 0x00b19261, 0x00ba9764, 0x00bd9662, 0x00b38b58, 0x009c733f, 0x007b5a32, 0x00786041, 0x007c6d59, 0x00797265,
- 0x0061605e, 0x00464641, 0x0027241d, 0x00120b06, 0x000e0300, 0x000e0700, 0x000b0500, 0x00080400, 0x00050300, 0x000a0802, 0x0013110d, 0x00181711, 0x001f1a14, 0x001d1710, 0x00160e08, 0x00100602,
- 0x000e0c09, 0x0062615d, 0x00f1eeed, 0x00fdfaf7, 0x00fdfcfd, 0x00fdfcfc, 0x00fdfcfc, 0x00fcfefc, 0x00dcdde1, 0x007a7d7f, 0x00181c21, 0x000b0e1e, 0x000a0d19, 0x00080c15, 0x00070d0f, 0x00080e0f,
- 0x000b0f11, 0x00070b0f, 0x00070b12, 0x000a0e18, 0x000e101e, 0x00141826, 0x000b101b, 0x0003060e, 0x00010007, 0x00040106, 0x00050206, 0x00040106, 0x0005030a, 0x0006080f, 0x00151a23, 0x003b414c,
- 0x00626669, 0x00606669, 0x007b8084, 0x00b1b7bb, 0x00c4cdd4, 0x00b5bdc6, 0x00999fa6, 0x007d8285, 0x0074787a, 0x00979a9a, 0x00bdc2c9, 0x00b4bcc9, 0x00b7c4cf, 0x00bcc5d2, 0x00bcc7d2, 0x00bac5d0,
- 0x00bac4d1, 0x00b7c2cd, 0x00b4c0cb, 0x00b3bcc9, 0x00afbac6, 0x00b2bac4, 0x00aab3ba, 0x009ea6ad, 0x00818b8f, 0x00737a80, 0x0080868f, 0x00a2a8b3, 0x00c0c6d3, 0x00c0c6d6, 0x00c7ccdf, 0x00c7cbe1,
- 0x00b3bdcd, 0x00a5afbc, 0x008f98a5, 0x00808693, 0x009c9da8, 0x00b6b5c0, 0x00c1c1cf, 0x00c9c9d8, 0x00d1d2e2, 0x00e1e0f2, 0x00ebeefc, 0x00e6e9fd, 0x00eedaef, 0x00ede1e6, 0x00d8cfd5, 0x00b1a8bf,
- 0x0091799d, 0x00af6d6a, 0x00d16c58, 0x00bd3d26, 0x00422a4b, 0x00142d6c, 0x00254d9f, 0x00445fb5, 0x00535eb5, 0x006c75b9, 0x0098a5d5, 0x00b4c6e2, 0x00d3e0ec, 0x00dfe6f1, 0x00c1c7d5, 0x007c8395,
- 0x00352e40, 0x001c1723, 0x00231e2a, 0x005d5b62, 0x00e0e1e2, 0x00f8fcfb, 0x00fafefd, 0x00fafcfa, 0x00fdffff, 0x00e8ecea, 0x0073766f, 0x001a0d0b, 0x0015130a, 0x0016120c, 0x001a1c10, 0x00252317,
- 0x002d271c, 0x00343131, 0x005c616f, 0x007e8dab, 0x006987ba, 0x005f78ab, 0x005c74ab, 0x005b74ae, 0x005773b8, 0x005672ba, 0x005873c0, 0x005872c2, 0x005870c2, 0x005369bd, 0x005568bb, 0x006778ca,
- 0x008da9db, 0x00a3bbeb, 0x00a9bbe5, 0x00a2acd1, 0x0042445b, 0x000e0b20, 0x00100d1d, 0x0012121d, 0x00141320, 0x0013131f, 0x000e121e, 0x000f1426, 0x000f1428, 0x00171832, 0x0020213d, 0x00232544,
- 0x00262a4e, 0x00222548, 0x001e2143, 0x001c2343, 0x00171e3e, 0x00171d3e, 0x00161d3c, 0x00121835, 0x00111734, 0x00151a37, 0x00171c39, 0x00161b36, 0x001c223a, 0x001f273c, 0x001f283b, 0x001e283a,
- 0x002b2b2b, 0x002d2d29, 0x003c3d36, 0x00585a50, 0x008f9084, 0x00b8b9ab, 0x00d4d5cb, 0x00e7e8dc, 0x00f5f6ef, 0x00fafaf2, 0x00fefdf6, 0x00fdfef8, 0x00fcfffa, 0x00fefffc, 0x00fcfdfb, 0x00f9fdfb,
- 0x00f7fbf8, 0x00f9fcf8, 0x00fcfff8, 0x00fcfdf6, 0x00fdfef5, 0x00fcfdfa, 0x00fbfefc, 0x00f9fefa, 0x00f9fdfc, 0x00f8fcf8, 0x00f8fbf7, 0x00f6f9f3, 0x00f9f8f8, 0x00f0eef0, 0x00f0ecf4, 0x00dfd9e4,
- 0x00969ad8, 0x00737ac0, 0x007f85cd, 0x00aab3e5, 0x00def2f4, 0x00dcf2f3, 0x00b6c9d8, 0x008d9cc9, 0x007078cf, 0x00878fe6, 0x00bec4fe, 0x00e6f3fc, 0x00f3f6f9, 0x00f4f7fd, 0x00f4f6ff, 0x00c7c6e2,
- 0x007b87c3, 0x008b98dd, 0x00afbbff, 0x00a5b0ef, 0x00b8bceb, 0x00e0e6f4, 0x00eef5f7, 0x00e7f2f5, 0x00ebf5fa, 0x00f0fefa, 0x00f3fefc, 0x00f4fefb, 0x00f7fcfb, 0x00f9fcf4, 0x00fffcf7, 0x00fdfbf1,
- 0x00fdfffd, 0x00ffffff, 0x00fefffe, 0x00fdfefc, 0x00fdfffd, 0x00fcfdfd, 0x00fbfefc, 0x00fcfdfe, 0x00fdfdff, 0x00fbfeff, 0x00fdfefa, 0x00faf8f6, 0x00f6f4f5, 0x00eff0f2, 0x00e3e4e8, 0x00d7d9df,
- 0x00c5c9d1, 0x00b9bec5, 0x00a4aaaf, 0x00969a9e, 0x008a9393, 0x008a8988, 0x0086817e, 0x006c6865, 0x002f312d, 0x00101210, 0x00040404, 0x00000202, 0x00000103, 0x00010304, 0x00060607, 0x0009070a,
- 0x000b0501, 0x00100a03, 0x0017130e, 0x00151916, 0x00343f42, 0x0046525a, 0x0034414f, 0x00243444, 0x00212f44, 0x002a374d, 0x00474c5b, 0x00675b5d, 0x00786e73, 0x0081757b, 0x009b9197, 0x00b9afb1,
- 0x00c4b0af, 0x00b49c99, 0x009c817a, 0x0093746c, 0x008e6861, 0x00917267, 0x009d8478, 0x00958279, 0x006f6869, 0x0054555a, 0x003d424f, 0x002c3343, 0x001e2837, 0x00282f3c, 0x003a3d49, 0x004c4e58,
- 0x005b5a5e, 0x005d5e64, 0x00585a65, 0x00525463, 0x003f4658, 0x00303647, 0x00252b3a, 0x002a323e, 0x00404147, 0x004e4e56, 0x005c5d65, 0x005e626b, 0x005a606d, 0x004f5563, 0x00404655, 0x002d3346,
- 0x00242a3b, 0x002a2e3b, 0x0043444d, 0x00535359, 0x00646262, 0x00636668, 0x0063686e, 0x005e626a, 0x00434a55, 0x002d3342, 0x001f2635, 0x00242c38, 0x00363b45, 0x004d4f56, 0x00626162, 0x006d6867,
- 0x00686973, 0x005f656e, 0x00474c59, 0x002c3341, 0x0018212f, 0x0018222e, 0x00242a36, 0x00353a44, 0x00524f55, 0x00615e60, 0x00626064, 0x00585e68, 0x00464d59, 0x00303947, 0x00192331, 0x00121e2b,
- 0x00141c28, 0x0020282f, 0x00373d40, 0x004a4e4d, 0x005d5c5a, 0x00616369, 0x00545765, 0x003f4452, 0x00252d39, 0x0018202e, 0x00111826, 0x00141a25, 0x002b2f35, 0x00434547, 0x005f5e5d, 0x006a6766,
- 0x00676769, 0x00989a9b, 0x00fefcff, 0x00fdfcff, 0x00fefeff, 0x00fcfcfb, 0x00fefefc, 0x00d3d3d1, 0x008f8f8d, 0x00a0a19d, 0x00d6dad8, 0x00f0f6f5, 0x00b1c0c5, 0x00556973, 0x002c4756, 0x002a495b,
- 0x00254a62, 0x00274a60, 0x00284a5e, 0x00294a5a, 0x002b4857, 0x0028485b, 0x0026495e, 0x002a495e, 0x00284659, 0x00264356, 0x00274053, 0x00263d4f, 0x00203747, 0x001f3343, 0x001c2e3c, 0x00172b38,
- 0x00142533, 0x00152734, 0x00172938, 0x00182d3b, 0x0019313f, 0x001a3643, 0x001b3b47, 0x001d3f49, 0x001d424b, 0x001e454d, 0x001f454e, 0x00214451, 0x00224452, 0x00204350, 0x00214351, 0x00204452,
- 0x00204551, 0x00214452, 0x00254855, 0x002a4f5b, 0x00335763, 0x003c5b6a, 0x00436070, 0x00476776, 0x00496876, 0x004a6978, 0x004a6a77, 0x00476877, 0x00466875, 0x00436673, 0x003b606a, 0x00385e67,
- 0x00315b56, 0x002b5356, 0x00274c57, 0x00284761, 0x00425a86, 0x0054649a, 0x005e67a0, 0x006870a6, 0x006c6fa0, 0x006d6e98, 0x00a7a7c1, 0x00d3d1ca, 0x00d8d5d0, 0x00e5e1d9, 0x00f8f5ef, 0x00fffdf7,
- 0x00fffffb, 0x00fdfff9, 0x00fbfef7, 0x00f8fdf6, 0x00fafdf9, 0x00fdfdfc, 0x00fffcfe, 0x00fef8fb, 0x00fffbfd, 0x00fffafc, 0x00fffbfd, 0x00fcfafc, 0x00fcf9fd, 0x00fdfafe, 0x00fefdff, 0x00fafafd,
- 0x00e8edf0, 0x00d2d5dc, 0x00acb0b8, 0x008d929c, 0x00626671, 0x0043464d, 0x00272a2e, 0x001f2424, 0x0022281c, 0x00262b1e, 0x002f3328, 0x00353838, 0x003d413b, 0x00454846, 0x00545752, 0x0061635d,
- 0x0073726e, 0x007a7974, 0x0084847c, 0x00908f85, 0x009b998f, 0x00a59c93, 0x00aa9e93, 0x00b1a597, 0x00b6a997, 0x00b7a996, 0x00b7a795, 0x00b8a796, 0x00b5a495, 0x00b1a194, 0x00aa9b90, 0x00a79990,
- 0x00c3c1b2, 0x00494032, 0x004d4335, 0x004b4232, 0x0048402f, 0x0049422f, 0x0047402d, 0x0046402b, 0x00454029, 0x00453f27, 0x00473f2d, 0x00473f34, 0x0039312b, 0x001c1716, 0x00100d0f, 0x0008070d,
- 0x00070810, 0x000a0a0c, 0x000b0908, 0x00080702, 0x00080700, 0x000a0505, 0x00110a0b, 0x00120e0d, 0x001a0f0f, 0x00211512, 0x00291b15, 0x00302018, 0x0037241c, 0x00372219, 0x00392519, 0x003d291b,
- 0x004a2e23, 0x004c3125, 0x004b3225, 0x00442e21, 0x00402b1d, 0x00473221, 0x0055402a, 0x00604b30, 0x00674e30, 0x00614927, 0x005f4424, 0x005e3d24, 0x00492711, 0x002e1202, 0x0019070a, 0x000f091e,
- 0x002f3c77, 0x00405499, 0x00445aa2, 0x00394c91, 0x006975aa, 0x00abb3ce, 0x009b9ca8, 0x006a696e, 0x00685c56, 0x0073614f, 0x006f5339, 0x00724b29, 0x0075401a, 0x00743913, 0x0073340f, 0x0076330f,
- 0x00703419, 0x006f3619, 0x00784126, 0x00ac7b5e, 0x00a7816a, 0x005f4531, 0x00261403, 0x0021180d, 0x00282117, 0x00231e12, 0x001b1710, 0x00232023, 0x00252425, 0x001d1b1d, 0x002a262c, 0x002b292d,
- 0x0026252a, 0x00201f26, 0x00211e27, 0x001b1922, 0x0018131d, 0x00181615, 0x0015150c, 0x0015180f, 0x0012140f, 0x000d0e0c, 0x000f0d0e, 0x0010090a, 0x001b090a, 0x002b1614, 0x0048302a, 0x00563b32,
- 0x00513e3b, 0x003d3129, 0x002b231a, 0x0026211b, 0x001d1e1a, 0x00171817, 0x00131514, 0x0010120d, 0x00151510, 0x001b1a12, 0x00212117, 0x00222319, 0x00202016, 0x00201e14, 0x0026241a, 0x00302f27,
- 0x0055544b, 0x005f5e56, 0x00585850, 0x004e5046, 0x00515248, 0x00585853, 0x006e6f6d, 0x007b7c78, 0x007e7c77, 0x007c7d77, 0x0082837f, 0x007c7c7a, 0x00605f62, 0x004d4b53, 0x004c4a55, 0x00504f5c,
- 0x00515258, 0x00535459, 0x0052535a, 0x00505259, 0x0052545c, 0x0053565e, 0x0053565f, 0x00545760, 0x00585a64, 0x00585965, 0x00575861, 0x0057575a, 0x00575858, 0x00575859, 0x00555757, 0x00535652,
- 0x0054585c, 0x00646a70, 0x00707782, 0x006c7383, 0x00616879, 0x00687183, 0x006b7486, 0x00636a7c, 0x005e6777, 0x005a6373, 0x005b6475, 0x005e6678, 0x005d6577, 0x005d6578, 0x005e6679, 0x005e6679,
- 0x005d6678, 0x005c6576, 0x00596574, 0x00556272, 0x00556071, 0x00586375, 0x00566274, 0x00576373, 0x005b6375, 0x00546070, 0x004f5765, 0x00555960, 0x00575961, 0x0057585f, 0x00595860, 0x0057585f,
- 0x00555860, 0x0057585f, 0x0056585f, 0x00565761, 0x00585962, 0x0053565a, 0x00525558, 0x00505659, 0x0052565a, 0x0051555a, 0x0051545b, 0x0052555c, 0x0052535d, 0x0051535d, 0x0053545e, 0x0052535e,
- 0x00575860, 0x00565860, 0x00575961, 0x00575861, 0x00575760, 0x00575760, 0x00585860, 0x00575761, 0x0056585f, 0x0056585e, 0x0054565e, 0x0051535c, 0x0050525b, 0x0051535c, 0x0050535c, 0x0050525b,
- 0x00484a55, 0x00474a53, 0x00474a52, 0x00474a54, 0x00484956, 0x00484954, 0x00494951, 0x00494851, 0x00474851, 0x0046474e, 0x0047484e, 0x0048494e, 0x00494a4e, 0x00494a4d, 0x0048494d, 0x0048494c,
- 0x004c4c53, 0x004d4d56, 0x004f5156, 0x00515458, 0x0056565d, 0x0055555b, 0x0055555c, 0x0056555d, 0x0053585b, 0x0054555c, 0x0051535c, 0x004c5159, 0x004e505b, 0x0051525e, 0x00545461, 0x00565462,
- 0x00615e6b, 0x0067666f, 0x0077767b, 0x007e7d7d, 0x007e7e7d, 0x00838381, 0x007f807f, 0x007d7e7d, 0x00656a67, 0x00343532, 0x00020200, 0x00030300, 0x00090500, 0x00140d06, 0x00211a12, 0x00272017,
- 0x003b2614, 0x0034210d, 0x003d2b18, 0x00302110, 0x00726559, 0x00e4d8d0, 0x00e6ddd4, 0x0084786e, 0x00524540, 0x009b8e88, 0x00e9dcde, 0x00d0c3cd, 0x005b504f, 0x00261c12, 0x0022190b, 0x001f1608,
- 0x00281c1c, 0x003f333a, 0x005d5257, 0x006d6468, 0x00736c6b, 0x006c6162, 0x00584a4a, 0x00443634, 0x002d241a, 0x00271f12, 0x002e2315, 0x00312417, 0x00332315, 0x00332111, 0x0037200f, 0x0037200e,
- 0x00382313, 0x00382217, 0x00331e18, 0x00240e0c, 0x00260e03, 0x004a3017, 0x00977c54, 0x00ab8e5a, 0x00b9945d, 0x00ba915d, 0x00b08655, 0x00986f42, 0x0075552f, 0x007c6346, 0x008a7b62, 0x00847c6a,
- 0x00716e6b, 0x00565350, 0x002f2d25, 0x0014110b, 0x00080001, 0x00090304, 0x00090203, 0x00080101, 0x00080301, 0x000e0a05, 0x0017150e, 0x001f1e13, 0x00241e12, 0x00211a0b, 0x00160e01, 0x000e0301,
- 0x0014130e, 0x00706f6b, 0x00f9f8f5, 0x00faf9f5, 0x00fcfbfd, 0x00fcfbfc, 0x00fffefe, 0x00fdfdfd, 0x00d8dbe0, 0x0075797a, 0x00161a1e, 0x000b0e1b, 0x000a0e18, 0x00080c15, 0x00090d13, 0x00090c10,
- 0x000b0f14, 0x00080b12, 0x00070b14, 0x00090d17, 0x00101420, 0x001e222e, 0x00171b26, 0x00080713, 0x00000005, 0x00020104, 0x00060507, 0x00020104, 0x00050309, 0x0005060c, 0x000d1119, 0x0030353e,
- 0x00575c5f, 0x00575e64, 0x00949ba4, 0x00c9d0db, 0x00c6cddd, 0x00b0b6c8, 0x009097a8, 0x00707a89, 0x00838a97, 0x00a6b0ba, 0x00b9c2cf, 0x00b5bfcd, 0x00b7c1ce, 0x00bac3cf, 0x00b9c5ce, 0x00bac6cf,
- 0x00b6c1cf, 0x00b6c0cd, 0x00b6c1cd, 0x00b1bdc9, 0x00b2bbc6, 0x00acb4bb, 0x009ca3a9, 0x00868c93, 0x006a757a, 0x00757f86, 0x00a0a9b4, 0x00bfc8d6, 0x00bdc4d5, 0x00bac1d4, 0x00c5cde1, 0x00bfc5db,
- 0x00b4bacb, 0x00a8afbe, 0x008e97a5, 0x00737b89, 0x008a8e9b, 0x00acadb9, 0x00bab9c7, 0x00bbb7c7, 0x00b4b6c4, 0x00c5c4d2, 0x00e3def1, 0x00e4e5fe, 0x00e9dff6, 0x00ebdce0, 0x00dccace, 0x00c8c0d4,
- 0x00cfb8db, 0x00dc8a7f, 0x00d15634, 0x00b1280b, 0x0027225b, 0x00193a83, 0x002959ae, 0x003259b9, 0x00384eb7, 0x004b60bf, 0x006d85cf, 0x0086a7da, 0x009fc7d5, 0x00bcd2d7, 0x00d3d3d8, 0x00c6afb5,
- 0x007b6e7b, 0x005f5860, 0x00686269, 0x009b969c, 0x00f5f5f6, 0x00f9fcfc, 0x00f9fdfc, 0x00f7fdfa, 0x00fafefc, 0x00d5ddd8, 0x00585953, 0x00180a04, 0x00181009, 0x00141009, 0x0018160d, 0x001a180c,
- 0x002b271f, 0x00373539, 0x006a7083, 0x007789ad, 0x005b7db6, 0x005472a9, 0x005871ad, 0x005974b3, 0x005b77be, 0x005974bf, 0x005974c1, 0x00546fbd, 0x005169b7, 0x004e63ae, 0x0045589e, 0x004b5c9f,
- 0x006d8bca, 0x009ab5ef, 0x00a2b9eb, 0x00a2b4df, 0x00606988, 0x00151731, 0x000d0d1e, 0x0013111b, 0x0012131c, 0x00111014, 0x00101118, 0x000f1425, 0x0013152b, 0x00191b33, 0x001e233c, 0x00222744,
- 0x00252949, 0x001f2243, 0x001c2041, 0x001b1f40, 0x00171b3e, 0x00151b3e, 0x00151e40, 0x00141b3f, 0x00151e40, 0x00121b3d, 0x00151c40, 0x001c2446, 0x001e2544, 0x00242d48, 0x002d364e, 0x002c354c,
- 0x00272930, 0x001b1d1f, 0x00171c15, 0x0020251b, 0x004d5139, 0x00797b63, 0x00a0a389, 0x00bdc3a5, 0x00d2d4bc, 0x00dddfc7, 0x00eaebd5, 0x00edeede, 0x00f3f4e9, 0x00fcfbf3, 0x00fdfbf5, 0x00fbfaf6,
- 0x00fcfcfd, 0x00fcfcf9, 0x00fcfdf7, 0x00fafbf5, 0x00fafbf7, 0x00f9fcfa, 0x00fafefb, 0x00fafdf9, 0x00fbfff6, 0x00fbfef6, 0x00fbfef6, 0x00fafcf5, 0x00fffefa, 0x00fbfafb, 0x00f9f7f9, 0x00f6f3f6,
- 0x00e2e9ec, 0x00c8ceeb, 0x00cacef6, 0x00d6dcfd, 0x00dee9fa, 0x00c7d4e6, 0x00a4afcf, 0x00848cc7, 0x00848bce, 0x00b2bde9, 0x00e9f7fa, 0x00f2fdff, 0x00fafafc, 0x00fcfbfe, 0x00f4f1ff, 0x00d9d6f2,
- 0x00b4bbed, 0x00c6cff6, 0x00e2ecff, 0x00e3ebfd, 0x00eff1f9, 0x00f8fbff, 0x00f9fdfd, 0x00fbfdfe, 0x00f7fdf9, 0x00f3fcf4, 0x00f8fff9, 0x00f9fef8, 0x00fbfdf4, 0x00f9faf4, 0x00fffcf9, 0x00fdfaf7,
- 0x00fffefe, 0x00fefcfd, 0x00fefdfe, 0x00fefdfe, 0x00fdfbfc, 0x00fafafc, 0x00f2f6f7, 0x00e8ecf4, 0x00dee2e4, 0x00d5d8de, 0x00cfd0d4, 0x00c6c6c4, 0x00b7b7b9, 0x00adafb3, 0x009d9fa7, 0x008e8e9a,
- 0x007b8189, 0x00676d73, 0x004e5459, 0x00484d53, 0x004d5458, 0x00635f5f, 0x005f5652, 0x003d3633, 0x000a0a07, 0x00010100, 0x00020302, 0x00000202, 0x00040507, 0x00040406, 0x00030204, 0x00060306,
- 0x00080301, 0x00060501, 0x000c0e0d, 0x00060e0d, 0x001a272b, 0x00334047, 0x00283541, 0x00192836, 0x001f263c, 0x002a354a, 0x004e4e5d, 0x006e6265, 0x0073696f, 0x0069636a, 0x00776b75, 0x0098898f,
- 0x00bea19e, 0x00b58d85, 0x00b08274, 0x00b9897b, 0x00c18f83, 0x00a67d6c, 0x00a88875, 0x00b29888, 0x00817573, 0x00545257, 0x003e424e, 0x00313746, 0x00293140, 0x00313644, 0x00464753, 0x0054565f,
- 0x005f5b64, 0x005d5e67, 0x00595c67, 0x00525763, 0x0041495a, 0x0032384a, 0x002c3042, 0x00353a4b, 0x004d4d55, 0x00595960, 0x0064656c, 0x00656972, 0x005e6470, 0x00535866, 0x003d4353, 0x00282d41,
- 0x00282d3d, 0x00313441, 0x004a4b55, 0x00595760, 0x00645f64, 0x00626469, 0x005e636a, 0x00565861, 0x003a404d, 0x00282e3b, 0x001d2533, 0x00242c37, 0x00363a44, 0x004c4d55, 0x005e5b61, 0x00656062,
- 0x00636370, 0x005a5d6a, 0x00404452, 0x00272d3a, 0x0019212d, 0x0019222d, 0x00242a34, 0x00363a44, 0x00535257, 0x00605e5f, 0x00636267, 0x005c616d, 0x00484e5a, 0x002f3743, 0x0019222e, 0x00101b27,
- 0x0017202b, 0x00232b31, 0x003c4244, 0x00515554, 0x00656663, 0x00696b71, 0x005b5e6c, 0x00454857, 0x00242a38, 0x00151c2a, 0x00131a28, 0x00171d28, 0x002c3137, 0x0045474a, 0x00605e5e, 0x00696564,
- 0x005c5d60, 0x00898c8c, 0x00faf9fb, 0x00fcfbfd, 0x00ffffff, 0x00fdfbfb, 0x00fefefe, 0x00dbdadb, 0x00919191, 0x00999996, 0x00d0d1d1, 0x00f1f5f3, 0x00ced7dc, 0x006d8089, 0x0028454f, 0x00234452,
- 0x0026495c, 0x0025485a, 0x00244957, 0x00254954, 0x00264852, 0x00244756, 0x00244759, 0x00284659, 0x00274457, 0x00264154, 0x00263f52, 0x00243d4d, 0x00203848, 0x001e3443, 0x001a2f3e, 0x00162c3b,
- 0x00162534, 0x00152534, 0x00162637, 0x00172b3b, 0x00193040, 0x001a3544, 0x001c3a47, 0x001d3e4a, 0x0020424c, 0x0020444d, 0x0020444e, 0x0021434f, 0x00214350, 0x00204250, 0x00204351, 0x00204453,
- 0x00244653, 0x00214551, 0x00224653, 0x00264956, 0x002e4e5c, 0x00355363, 0x003b5769, 0x00415d6f, 0x00426170, 0x00436271, 0x0041606f, 0x003e5f6e, 0x003b5d6b, 0x00365966, 0x00315761, 0x002d545d,
- 0x00295751, 0x00244f51, 0x00244953, 0x00224257, 0x00203a5b, 0x002a3e66, 0x004f5d88, 0x0066719c, 0x007e84aa, 0x008e92b5, 0x00c2c2d6, 0x00e2dfdd, 0x00f7f1ed, 0x00faf5f2, 0x00fdfbf7, 0x00fffdf8,
- 0x00fffdfb, 0x00fdfef9, 0x00fafdf9, 0x00f6fcf9, 0x00f8fdfa, 0x00fcfdfc, 0x00fffbfb, 0x00fff9f9, 0x00fefdfa, 0x00fffcfb, 0x00fcfafb, 0x00fcfcfd, 0x00f9f7fb, 0x00edecf0, 0x00cecfd5, 0x00b5b8be,
- 0x00888d9c, 0x006e7583, 0x004b545f, 0x0037414f, 0x00283143, 0x001c2534, 0x00071018, 0x00010a0b, 0x00040d03, 0x00081003, 0x000e130a, 0x000f120e, 0x00171a17, 0x001b1e19, 0x0021231d, 0x00262823,
- 0x0035352f, 0x003d3c36, 0x0046463d, 0x004c4c41, 0x00535147, 0x00605549, 0x006a5a49, 0x0071604d, 0x007d644d, 0x007a6248, 0x007b5d44, 0x007c5d45, 0x00745a45, 0x006a5141, 0x005b4436, 0x00513d30,
- 0x00c2bdb4, 0x004a4037, 0x004a4337, 0x00484334, 0x00484333, 0x0046402f, 0x00463f2c, 0x0045402a, 0x0047422f, 0x0047422d, 0x0047402f, 0x00463e34, 0x002d281f, 0x00110f0c, 0x000d0e0c, 0x00080c0a,
- 0x00080909, 0x00080804, 0x00070602, 0x00070700, 0x000b0c01, 0x000c0705, 0x000f0806, 0x00120c09, 0x00221214, 0x002a1917, 0x00301f17, 0x00392519, 0x00462c1e, 0x004b2f20, 0x00513524, 0x00573928,
- 0x00633d2b, 0x0064412f, 0x0061412f, 0x005e422e, 0x005d422e, 0x006d533b, 0x00846d4e, 0x00907958, 0x009b7856, 0x0099744b, 0x00916940, 0x0093663f, 0x00845830, 0x00613c1b, 0x002d1307, 0x001e1119,
- 0x002d376f, 0x0042529e, 0x004258ab, 0x00475aa9, 0x00535f9c, 0x008d97b3, 0x00b2b6bf, 0x007f7d81, 0x007a6861, 0x00846a56, 0x00815f40, 0x0081532c, 0x00844417, 0x00853c0e, 0x00893a0c, 0x008f380a,
- 0x008f3e07, 0x008d4312, 0x008e4d25, 0x00b98262, 0x00b69378, 0x007a6146, 0x00402b10, 0x002d1c02, 0x00271906, 0x001b1102, 0x001a1303, 0x00161107, 0x00211c16, 0x001d1710, 0x001b150e, 0x0018120c,
- 0x00191210, 0x00211816, 0x001e1514, 0x00171010, 0x00150d0e, 0x000a0c06, 0x00060f04, 0x000a1206, 0x00111108, 0x000f0e05, 0x000e0c02, 0x00120e00, 0x00231304, 0x00453320, 0x00735e47, 0x006a5036,
- 0x002b2622, 0x00262320, 0x0023231f, 0x00252424, 0x001b1d1d, 0x00101212, 0x000e110c, 0x000f120c, 0x001a1812, 0x00201e18, 0x0023231a, 0x00212317, 0x00212116, 0x00232218, 0x00242319, 0x0025231b,
- 0x00211f11, 0x00201c12, 0x001a160c, 0x00141105, 0x00110d04, 0x001a1914, 0x004a4c48, 0x005e605d, 0x00686563, 0x00656263, 0x00686867, 0x00606261, 0x00302f35, 0x0007050f, 0x00080813, 0x00110f20,
- 0x00111321, 0x00131624, 0x00131625, 0x00121624, 0x00151927, 0x00171b2a, 0x00171c2a, 0x00171c2b, 0x001a1a32, 0x001c1c34, 0x001a1b2d, 0x00161a23, 0x00191c24, 0x001b1d2b, 0x00171b29, 0x00111922,
- 0x001c2838, 0x00324054, 0x003c4b64, 0x00364463, 0x002a395d, 0x00273b5e, 0x002a3f61, 0x002b3d61, 0x0027385f, 0x0024365d, 0x0024365c, 0x00213459, 0x0021355a, 0x00213659, 0x00203559, 0x001f3558,
- 0x00173661, 0x00163460, 0x0014355d, 0x0013355b, 0x0015335e, 0x00103059, 0x0010335a, 0x0011335b, 0x001d3663, 0x0015325e, 0x000c2243, 0x00161c2d, 0x00181b2c, 0x001a1e2e, 0x001b2130, 0x00191f2e,
- 0x00191b2f, 0x00171b2c, 0x00171d2c, 0x00191c2d, 0x00191b2b, 0x00131923, 0x00151922, 0x00121923, 0x00151723, 0x00141624, 0x00141723, 0x00141923, 0x00121726, 0x00111725, 0x00141a27, 0x00141a2a,
- 0x0015192a, 0x0015192a, 0x00161a2b, 0x00171b2d, 0x00181c2d, 0x00191d2e, 0x001a1f2f, 0x001a1f2f, 0x001d2031, 0x001c1f30, 0x00191c2e, 0x0014182b, 0x00111529, 0x000e1224, 0x000a0f21, 0x00090d21,
- 0x0005081b, 0x00030619, 0x00010516, 0x00010517, 0x00020419, 0x00010315, 0x00010111, 0x00010011, 0x00030116, 0x00010014, 0x00000110, 0x0000010c, 0x0000000b, 0x00000009, 0x0002030b, 0x0003050e,
- 0x00070716, 0x0007081a, 0x00090c19, 0x000d111d, 0x00151625, 0x00161725, 0x00151826, 0x00161825, 0x00171929, 0x00181628, 0x00131623, 0x000d151d, 0x000b0f1d, 0x00090c1e, 0x00080b1d, 0x000b091e,
- 0x000e0c1f, 0x00171624, 0x0047464d, 0x00666666, 0x00656562, 0x00636560, 0x00646762, 0x00616460, 0x0034322e, 0x000e0b0a, 0x00010000, 0x00010100, 0x00060200, 0x000d0704, 0x0014110b, 0x00191711,
- 0x002f2010, 0x002d1e0e, 0x003f2e1f, 0x003b2a1a, 0x00614f40, 0x00b5a798, 0x00ede2d3, 0x00bcaca0, 0x0091807f, 0x00d1c3c1, 0x00faeff0, 0x00dbd1d8, 0x005d5551, 0x001c140b, 0x00221b10, 0x001c140b,
- 0x001e1411, 0x002c2026, 0x00463b3d, 0x00564c4a, 0x005c5349, 0x00574b41, 0x0048392e, 0x0034261b, 0x00221911, 0x001f1309, 0x001b1304, 0x001c1909, 0x002e2614, 0x00332715, 0x00362912, 0x00403019,
- 0x003c3221, 0x003d3125, 0x0031251d, 0x002c1f19, 0x00332111, 0x004f3c1d, 0x00887447, 0x009f8952, 0x00b28b5d, 0x00b58b62, 0x00a27a54, 0x008e6a47, 0x00826649, 0x008a735e, 0x00897a65, 0x00877e6d,
- 0x00737166, 0x00615d59, 0x00383430, 0x001a1712, 0x00090301, 0x00020001, 0x00000004, 0x00030204, 0x000e0306, 0x001a0f0d, 0x00282118, 0x00322c1d, 0x00382e1f, 0x002f2613, 0x001c1502, 0x000e0400,
- 0x00201c1a, 0x008d8987, 0x00f7f6f4, 0x00fcfdf9, 0x00fcfcfe, 0x00f7f8f8, 0x00fdfffd, 0x00fdfefc, 0x00d4d6dc, 0x00696b6f, 0x0012141a, 0x000b0c1b, 0x000a0f18, 0x00090e17, 0x00080d11, 0x00070c0e,
- 0x00050a0d, 0x00090b12, 0x00080913, 0x000b0d18, 0x001e212d, 0x002d333c, 0x002b3237, 0x0013171d, 0x00030108, 0x00060307, 0x00040205, 0x00040207, 0x00020006, 0x0008090f, 0x00090e14, 0x0021262f,
- 0x00434a50, 0x00717682, 0x00c2c8d7, 0x00d7deef, 0x00c0c7db, 0x00abb4c8, 0x008e9bad, 0x00828fa2, 0x00a7b0c5, 0x00b9c7d9, 0x00aebeca, 0x00adb9c4, 0x00bac2d0, 0x00bbc4cd, 0x00b5c0cb, 0x00b5beca,
- 0x00b4bfcb, 0x00b9c1ce, 0x00b2bcc9, 0x00a9b5c3, 0x009fa9b6, 0x00909a9f, 0x00808a8c, 0x00788085, 0x00868b99, 0x00abb0bf, 0x00ced6e4, 0x00d3dcea, 0x00ccd2e2, 0x00c7ccdd, 0x00c1c6d7, 0x00c0c2d5,
- 0x00b6b9c2, 0x00aaabb6, 0x009fa1ac, 0x00878b97, 0x007e818f, 0x009196a0, 0x00acb0b9, 0x00b5b5c3, 0x00a7a1b5, 0x00b8b0c2, 0x00dad7e8, 0x00e1e5f9, 0x00d6e7ff, 0x00ddd7e3, 0x00e1d5d7, 0x00e9e4f1,
- 0x00e4c7d4, 0x00e8826b, 0x00ca4a20, 0x00992a09, 0x00112977, 0x00284284, 0x0038589d, 0x003657b2, 0x002e49ca, 0x002d4fcb, 0x002f5bc4, 0x003469b4, 0x005e849b, 0x00979d99, 0x00c8ac97, 0x00d49374,
- 0x00a69fa1, 0x00c6bfc1, 0x00d6d0d2, 0x00ebe6e8, 0x00fcf8f9, 0x00fafbf9, 0x00f7faf6, 0x00fcfdfa, 0x00fafafa, 0x00c0c7c1, 0x003c3a34, 0x00231509, 0x001a130b, 0x00141108, 0x0013110b, 0x0018180d,
- 0x00201d16, 0x003b3a42, 0x006c758a, 0x007184ac, 0x005579b8, 0x005673b2, 0x00546fb1, 0x00506fb2, 0x00596dbb, 0x00566eb9, 0x005570b4, 0x005672ac, 0x005770a1, 0x005e759e, 0x007086a7, 0x005b728d,
- 0x004f71b6, 0x007e99db, 0x00a4bdf7, 0x00aabff3, 0x006b789e, 0x00161f3a, 0x00070e1d, 0x000d0d19, 0x00191219, 0x0010090e, 0x00110e15, 0x00070d1a, 0x000f1224, 0x0013182c, 0x00191e30, 0x001c1f32,
- 0x00202138, 0x001f1f3a, 0x00181835, 0x00151431, 0x00171636, 0x00141b39, 0x00101d3b, 0x00132043, 0x0018204c, 0x0019214c, 0x0018214b, 0x001a244c, 0x00252f53, 0x002f3a59, 0x00323d58, 0x002f3b53,
- 0x002b2d42, 0x001e222f, 0x00181f1e, 0x00282e22, 0x0050552f, 0x006e7542, 0x008a9357, 0x00a0a962, 0x00aeb272, 0x00b4bb75, 0x00b3bb7a, 0x00b1b886, 0x00b3b793, 0x00b5b99a, 0x00bdc2ab, 0x00cacdc2,
- 0x00e2e2e4, 0x00f2eff5, 0x00fefbff, 0x00fffcff, 0x00fefcfd, 0x00f9fdf9, 0x00f8fff3, 0x00f8fff2, 0x00fefffa, 0x00fefffb, 0x00fcfdf6, 0x00f9fbf4, 0x00fcfcf8, 0x00fdfdfb, 0x00fcfcfa, 0x00fbfafa,
- 0x00f7fdd4, 0x00f6fbf0, 0x00f5f9fc, 0x00f2f4fb, 0x00ebeeff, 0x00dbe2f4, 0x00cdd5f3, 0x00b7baec, 0x00c0c7e3, 0x00dfebdf, 0x00eafadf, 0x00eaf6ed, 0x00f8f6f7, 0x00fcf7fc, 0x00fff6fd, 0x00fdf7fe,
- 0x00f3f7fe, 0x00f6fbff, 0x00f8fffc, 0x00fafff9, 0x00feffe9, 0x00fafcf5, 0x00f7fbfa, 0x00fafbf5, 0x00fefefa, 0x00fefff7, 0x00fcfdf1, 0x00fafcf1, 0x00f8f7f2, 0x00f6f3f3, 0x00fffbfd, 0x00fdfbfd,
- 0x00fffbfa, 0x00fffafb, 0x00faf9fa, 0x00efeef5, 0x00cbcad2, 0x00b7b7be, 0x00a1a8ab, 0x00899196, 0x0070767d, 0x00666b74, 0x0061676c, 0x00616663, 0x00696b6b, 0x00676a6f, 0x00676b73, 0x00626472,
- 0x004f5362, 0x0040434f, 0x002b323a, 0x002b333a, 0x00364044, 0x004d4b4a, 0x003c3530, 0x00191210, 0x00030002, 0x00020202, 0x00020701, 0x00030902, 0x00080b09, 0x00050405, 0x00060101, 0x000b0303,
- 0x0006060c, 0x00010309, 0x00040910, 0x0001070b, 0x000c1217, 0x0020282b, 0x002c3236, 0x0026262a, 0x00332937, 0x00443a48, 0x00625963, 0x0058535c, 0x003e3e50, 0x00353950, 0x00302d42, 0x00453a4a,
- 0x0099766b, 0x00c28f7e, 0x00c3876f, 0x00c58972, 0x00d89c8a, 0x00cd9e88, 0x00c29d87, 0x00cbac9b, 0x00847172, 0x005b535b, 0x00434754, 0x00323e4b, 0x00303a4a, 0x00404654, 0x00585a64, 0x005e5d68,
- 0x0067636d, 0x0066646d, 0x005d5f69, 0x0051545e, 0x003c4352, 0x00313746, 0x00323a46, 0x003e4651, 0x00575565, 0x0063606e, 0x00656370, 0x005f616e, 0x005c606d, 0x004a505d, 0x002d3441, 0x001d2533,
- 0x00262c3a, 0x00363a46, 0x004b4c55, 0x0056555d, 0x00645e66, 0x0061636a, 0x00555c63, 0x004c505a, 0x00363946, 0x00242837, 0x001c252e, 0x00232c31, 0x003d4048, 0x00515259, 0x00626267, 0x0067646a,
- 0x005f606d, 0x00515361, 0x00353a48, 0x00212837, 0x001a2130, 0x0017212c, 0x00222c32, 0x003b4346, 0x00616063, 0x006c6969, 0x0068666a, 0x005f636f, 0x004a4f5b, 0x002c3440, 0x00141d2a, 0x00121c29,
- 0x00191f2b, 0x00272c34, 0x0042464a, 0x00565a5a, 0x0061625f, 0x005e6266, 0x004c515b, 0x003d414c, 0x0025293a, 0x00141929, 0x00141b28, 0x00161d27, 0x002a3036, 0x00424448, 0x005b595a, 0x00656261,
- 0x00505056, 0x0076777a, 0x00e9e6e9, 0x00fdfcfe, 0x00fffdfe, 0x00fcfaf9, 0x00fcfffc, 0x00e6e7e6, 0x00a2a1a2, 0x008f8f8d, 0x00cacac8, 0x00e2eae2, 0x00ebf3f4, 0x008ca0a4, 0x002b454d, 0x00254350,
- 0x00264a59, 0x00214856, 0x001f4854, 0x00214851, 0x0023464d, 0x00214550, 0x001f4551, 0x001f454f, 0x00224353, 0x00254252, 0x0024404f, 0x00223d4a, 0x00203846, 0x001f3542, 0x00192f3d, 0x00182e3c,
- 0x001a263a, 0x00182538, 0x00172537, 0x0018293a, 0x001a2f3e, 0x001b3441, 0x001d3a45, 0x001f3e48, 0x00234151, 0x00224451, 0x00214450, 0x00204350, 0x00204450, 0x00204350, 0x00214450, 0x00214351,
- 0x00214253, 0x00214251, 0x00224554, 0x00234756, 0x002b4c5a, 0x002c4b5a, 0x002f4d5e, 0x00365463, 0x003c556c, 0x003a5567, 0x0033515c, 0x002f4e58, 0x002e4f57, 0x00284a54, 0x0025484f, 0x00264a50,
- 0x001f4747, 0x0022454d, 0x001d3d48, 0x001f3c4a, 0x00364f5d, 0x004d636f, 0x00778893, 0x00a4b0ba, 0x00d7d7e0, 0x00eceef3, 0x00f7faf8, 0x00f8fbf3, 0x00fdfef7, 0x00fbfcf9, 0x00fbfcf8, 0x00fefefc,
- 0x00fbfaf9, 0x00fcfdfd, 0x00fbfdfe, 0x00fbfeff, 0x00fcfeff, 0x00fbfdf8, 0x00fbfef4, 0x00fafdf3, 0x00fdfffc, 0x00f5f8f5, 0x00dde3e1, 0x00c0cbca, 0x0098a3a6, 0x00778488, 0x0048595e, 0x002c3e43,
- 0x00203049, 0x00203550, 0x00273e59, 0x00314767, 0x00405577, 0x00435c76, 0x00274152, 0x000b212c, 0x00060d13, 0x00070f10, 0x000f1511, 0x00131712, 0x001a1f1a, 0x001e221a, 0x0024271f, 0x00242823,
- 0x0032342c, 0x0036362e, 0x003b3b32, 0x00413f36, 0x004d4a3f, 0x00594c3c, 0x00655139, 0x0070593f, 0x00845c42, 0x00865b3d, 0x00855836, 0x00845836, 0x007b5236, 0x00704c37, 0x005f3f2e, 0x00553527,
- 0x00bebeae, 0x00464233, 0x004a4436, 0x00474234, 0x00474133, 0x00453f2f, 0x00484130, 0x004a4131, 0x003f4025, 0x00404126, 0x00484131, 0x004a3e37, 0x002e2821, 0x0016130c, 0x00110f0f, 0x000a090a,
- 0x00010801, 0x00020901, 0x00040600, 0x00090b00, 0x000e0f04, 0x00110a05, 0x0017080d, 0x001b0d0f, 0x001e150a, 0x00261b0d, 0x00362618, 0x00463020, 0x004f3320, 0x00583923, 0x00725039, 0x00805d44,
- 0x00845e3c, 0x00795536, 0x006e4a30, 0x0062402a, 0x00573a25, 0x005a3e26, 0x006e4e33, 0x007b5b3c, 0x0089673a, 0x009c7949, 0x00ae8158, 0x00b4805d, 0x00a17341, 0x00825a2f, 0x004c2e15, 0x0037292a,
- 0x0039427b, 0x003d519d, 0x003f54ae, 0x004656ad, 0x004d5a9a, 0x007782a2, 0x00bdc1d1, 0x00949097, 0x006d6556, 0x00816f54, 0x00846140, 0x0084542a, 0x00874314, 0x008d3e0d, 0x00963c0d, 0x009b3b0f,
- 0x00924000, 0x008a440d, 0x00995d36, 0x00b38b6f, 0x00ae9686, 0x00857263, 0x004e3d31, 0x00312013, 0x001a1902, 0x00121001, 0x00161406, 0x0020200e, 0x002b2b18, 0x00252515, 0x00221f12, 0x00201a11,
- 0x000e1501, 0x00161806, 0x001b170c, 0x00121308, 0x000f0d02, 0x00080f0b, 0x00091010, 0x00090c0e, 0x00000900, 0x00060b00, 0x00120f02, 0x001a1202, 0x0032240e, 0x005f4f38, 0x007d694e, 0x005a4228,
- 0x0011170b, 0x00151a10, 0x00222320, 0x00222123, 0x00151517, 0x000f0f10, 0x00111111, 0x00131213, 0x0012180b, 0x00191f11, 0x00202218, 0x00222218, 0x00212216, 0x00232217, 0x0027221c, 0x002a251e,
- 0x00222112, 0x001f210f, 0x00211d11, 0x0020190f, 0x001d170a, 0x00292722, 0x00706e6e, 0x0090908e, 0x008b928a, 0x00888e87, 0x00939493, 0x008c8a8e, 0x0045444c, 0x000d0a19, 0x00150f25, 0x00211c34,
- 0x0019222f, 0x001b2435, 0x0023283d, 0x0024273d, 0x00252941, 0x00292c45, 0x002b2c48, 0x002a2c49, 0x0021293f, 0x0020263d, 0x00232640, 0x00222941, 0x001f293f, 0x001d2740, 0x00212a47, 0x001f2d48,
- 0x002d485e, 0x004c6886, 0x00516a93, 0x00415b88, 0x003b548a, 0x0037528a, 0x003a548f, 0x0039538d, 0x002c4e81, 0x002d4e81, 0x00325189, 0x0034518a, 0x00335085, 0x00324e84, 0x00324c86, 0x00324c87,
- 0x001e5084, 0x001d4e81, 0x00214f87, 0x00234e87, 0x001f4a87, 0x001d4884, 0x00234b89, 0x001e4986, 0x0019497c, 0x001b4a7f, 0x001f3e6d, 0x002a2c48, 0x00292c47, 0x002c2f4b, 0x002d2e49, 0x002b2e49,
- 0x00232b40, 0x0023293e, 0x00262a43, 0x00272b46, 0x00252944, 0x00222739, 0x00232638, 0x0024263c, 0x001b2630, 0x001c2633, 0x0021273a, 0x0023283d, 0x0022263c, 0x0022263d, 0x00242940, 0x00262b43,
- 0x001e2639, 0x001f263b, 0x00252b44, 0x00262c46, 0x00292d49, 0x002a2e49, 0x002c2f4a, 0x002c2f4b, 0x00262e41, 0x00252d42, 0x00262b45, 0x00252845, 0x00202441, 0x001c1f3d, 0x00191c3a, 0x00161a37,
- 0x00090f28, 0x000a0f29, 0x000a0d29, 0x00080c28, 0x00070c28, 0x00070825, 0x00080625, 0x00080524, 0x0000041b, 0x00000214, 0x00020318, 0x0003031a, 0x00020315, 0x00030415, 0x0008091c, 0x000b0c1d,
- 0x00070c1b, 0x000b1020, 0x00121429, 0x00181930, 0x001f1e35, 0x00222139, 0x0024233c, 0x0026253e, 0x001e2432, 0x001d2232, 0x001d1f32, 0x00191d2e, 0x0015182e, 0x0011142b, 0x000f112b, 0x0010112c,
- 0x000c0d20, 0x001d222e, 0x006a6c76, 0x00909194, 0x008f938c, 0x008f918e, 0x00959593, 0x008f8e8c, 0x0040453c, 0x00070902, 0x00030000, 0x00060002, 0x00070201, 0x00090503, 0x0012100e, 0x00171615,
- 0x00261d0b, 0x002f2716, 0x00413226, 0x00422f25, 0x00524034, 0x00837165, 0x00af9a93, 0x00ac9693, 0x00b7aea3, 0x00e9e4db, 0x00fbf4f7, 0x00cec7d0, 0x004c4645, 0x00181008, 0x001a1008, 0x00170e06,
- 0x00100e05, 0x0018130e, 0x002e2423, 0x003f342c, 0x00493d30, 0x004f3f31, 0x0048362a, 0x0037271d, 0x001a1603, 0x00130f00, 0x00140e01, 0x001c160a, 0x002c2612, 0x00342b15, 0x003d301a, 0x0047391d,
- 0x003c361f, 0x003c3420, 0x003e302a, 0x0041312b, 0x004f3e30, 0x00615033, 0x008c7650, 0x00a2885b, 0x00a58a58, 0x00a9885d, 0x00a88668, 0x00ac917c, 0x00c1ab99, 0x00b6a494, 0x00918276, 0x0083796f,
- 0x006b6e5e, 0x00595b50, 0x00353532, 0x001c1a17, 0x00090604, 0x00020002, 0x00030106, 0x00090208, 0x00060500, 0x00151104, 0x002d2316, 0x003c3020, 0x00423925, 0x0039301d, 0x002a1e10, 0x00170a03,
- 0x00292a23, 0x009a9b95, 0x00fbfaf6, 0x00fffdfb, 0x00fdfefd, 0x00fbfbfb, 0x00fffeff, 0x00fffeff, 0x00ccd2d2, 0x005e6763, 0x000e1317, 0x000c0d1c, 0x000d0f19, 0x000a0e18, 0x00090c16, 0x000a0d14,
- 0x00020a08, 0x00050e0e, 0x00080e13, 0x000f111b, 0x001f202d, 0x0030323e, 0x00353641, 0x0024252f, 0x00040803, 0x00000100, 0x00020104, 0x0008050b, 0x00020309, 0x00040710, 0x000f131d, 0x00131823,
- 0x00465656, 0x0099a5ab, 0x00dce3f0, 0x00e1e7f8, 0x00c2c4db, 0x00b2b7ce, 0x00a9abc4, 0x00a4a9c3, 0x00b0c0cb, 0x00b9c9d3, 0x00afbdca, 0x00afbac8, 0x00b8c2ce, 0x00bcc5d2, 0x00bbc4d1, 0x00b4bcc8,
- 0x00abb9bf, 0x00aab8be, 0x00a4b1bb, 0x009da6b4, 0x00949fa9, 0x0090979e, 0x00979ba3, 0x00a0a4ae, 0x00acb3ba, 0x00bcc3ca, 0x00cdd3df, 0x00d4d9e6, 0x00d3d8e4, 0x00cdd1dd, 0x00c1c4d1, 0x00b6b9c5,
- 0x00b3b1ac, 0x00b1adad, 0x00afacb1, 0x00a3a2ab, 0x008c8b99, 0x008d8d9b, 0x00b1b1c0, 0x00c4c0d1, 0x00a9acb4, 0x00b3b3bc, 0x00dad5e6, 0x00e0e3fb, 0x00d1effb, 0x00d7dfe9, 0x00dfd6e3, 0x00e9e3ee,
- 0x00e3b8a8, 0x00da6f4a, 0x00bf461f, 0x00782815, 0x000d2e81, 0x002d4789, 0x0044589e, 0x003e53af, 0x001c46bc, 0x001b4cc0, 0x002254bf, 0x002351a8, 0x004e5473, 0x00806567, 0x00ae7a64, 0x00c67d58,
- 0x00b9bcab, 0x00d6d8cb, 0x00e4e3dd, 0x00efeceb, 0x00fdf8f8, 0x00fdfafb, 0x00fefbff, 0x00fffdff, 0x00eef5eb, 0x00abb2a8, 0x002e2a22, 0x0029190f, 0x00201912, 0x001a130d, 0x0018100c, 0x0018130c,
- 0x0016160b, 0x00343637, 0x008d8fa5, 0x008d9ec3, 0x005c79b7, 0x005370b1, 0x00546cb2, 0x00546cb6, 0x00496bae, 0x00496aaa, 0x00536fb0, 0x005875ab, 0x00627aa3, 0x00849db6, 0x00b4c6db, 0x00a0b2bf,
- 0x005f84c3, 0x007093ce, 0x009fb9f4, 0x00b8d0fc, 0x007d89b2, 0x00212845, 0x00050d22, 0x000b0c1c, 0x000a0e0f, 0x00040704, 0x000b0a0f, 0x0008091b, 0x000d0f20, 0x00121421, 0x00191727, 0x001b1b28,
- 0x00191d23, 0x001b1b24, 0x001a1529, 0x00181329, 0x001b1329, 0x00161a33, 0x00161d3e, 0x00182045, 0x0013213f, 0x00152043, 0x0019224d, 0x00202755, 0x00283059, 0x00323b5d, 0x00363d5e, 0x00333957,
- 0x00252c42, 0x00161d2a, 0x00171e1f, 0x00272e1f, 0x004b5429, 0x006b743a, 0x008d9551, 0x009da65b, 0x009dac50, 0x00a0ac4f, 0x009ca557, 0x008a935b, 0x00727648, 0x00656644, 0x005d5b4a, 0x00625f58,
- 0x00747876, 0x008f8f93, 0x00b9b3c4, 0x00cfcbd9, 0x00eae4f3, 0x00f3f6f6, 0x00f8fbf8, 0x00fbfdf8, 0x00f5fdf2, 0x00f5fdf4, 0x00f7faf4, 0x00f8f9f5, 0x00fcfefb, 0x00fcfcfb, 0x00fefbfd, 0x00fefafe,
- 0x00f5ffe0, 0x00f4fcea, 0x00fafaf8, 0x00fdfbf8, 0x00fafdf8, 0x00f3f6fa, 0x00f7f6ff, 0x00f2efff, 0x00e7f3f6, 0x00ebfce5, 0x00eaf7e2, 0x00eef3f3, 0x00f3f0f4, 0x00f6eef7, 0x00fcf2ff, 0x00fdf4ff,
- 0x00f1fdf4, 0x00f1feef, 0x00f8fef1, 0x00fcfee9, 0x00feffe1, 0x00fcfbf4, 0x00fffbff, 0x00fffeff, 0x00f9fcf2, 0x00f7f9f0, 0x00fafaf3, 0x00fffefa, 0x00fbf7f7, 0x00f7f3f6, 0x00fffbff, 0x00fffcff,
- 0x00f6faf0, 0x00f4f8f0, 0x00faf9fb, 0x00dedce2, 0x0091949b, 0x00686c76, 0x00545761, 0x003d404c, 0x00213034, 0x0026373a, 0x003b4448, 0x00515355, 0x005e5f65, 0x0062646c, 0x00656674, 0x005e6070,
- 0x003f4951, 0x002f3940, 0x00212734, 0x00212932, 0x002f3840, 0x003e3c3f, 0x002d2228, 0x00110b0d, 0x00000200, 0x00010800, 0x00090c05, 0x000a0d0a, 0x000e0c0c, 0x000f0604, 0x00110103, 0x00120102,
- 0x0003080a, 0x00000200, 0x00020302, 0x00020103, 0x00050a07, 0x001c1f1a, 0x003d393c, 0x00383137, 0x003e3838, 0x004b4246, 0x00534857, 0x00353650, 0x002a375b, 0x003a4b70, 0x00313c60, 0x004d4a61,
- 0x00977869, 0x00a17257, 0x00985a41, 0x00be8364, 0x00e7b196, 0x00f4c1a8, 0x00e8bdaa, 0x00bf9a91, 0x00685e59, 0x0055565a, 0x003b3f4e, 0x00384256, 0x003d4656, 0x004b4e5b, 0x005c5a67, 0x0066606c,
- 0x005b6063, 0x005a5f65, 0x00535861, 0x00424753, 0x002e3541, 0x002c3440, 0x00383f4b, 0x00464c59, 0x0050575d, 0x005a5d64, 0x00605f6d, 0x005d5e6f, 0x004f5263, 0x003e4251, 0x002b303f, 0x00232a36,
- 0x00212d32, 0x0033393f, 0x004d4d55, 0x00595761, 0x00645f69, 0x0063626e, 0x00565964, 0x004b4e59, 0x00293339, 0x001a252a, 0x0020292f, 0x002d323a, 0x00464750, 0x00595962, 0x006a676f, 0x006d676f,
- 0x00596068, 0x004a525a, 0x002f3541, 0x001d2331, 0x00161e2c, 0x001d2531, 0x00323540, 0x00494c54, 0x005c635a, 0x00666860, 0x00656566, 0x00565d66, 0x00444a57, 0x002b3341, 0x00171d2e, 0x00141e2c,
- 0x00112122, 0x00212c2c, 0x00404549, 0x00545557, 0x005f5e5c, 0x005d5d66, 0x00515061, 0x003e4252, 0x001e282f, 0x00101a23, 0x00111925, 0x00161c27, 0x002a2d35, 0x003f3e43, 0x00565356, 0x00666365,
- 0x00575957, 0x00757775, 0x00dddddf, 0x00fcfcfc, 0x00fffeff, 0x00fefdfb, 0x00ffffff, 0x00f2f2f1, 0x00a2a8a0, 0x00838981, 0x00c5c5c3, 0x00e2e4dd, 0x00f5fafa, 0x00aabbbc, 0x003b515b, 0x00264151,
- 0x001d4850, 0x0019474f, 0x001f4953, 0x0022464f, 0x0022464d, 0x00214550, 0x00214552, 0x0021444e, 0x001e434a, 0x001e434b, 0x0020404c, 0x00213d4a, 0x00203947, 0x001e3443, 0x001d3041, 0x001b2e3f,
- 0x0013252f, 0x00132431, 0x00152535, 0x00172939, 0x00192e3d, 0x001b3341, 0x001e3846, 0x00223c4c, 0x001b4147, 0x001e444b, 0x0020454f, 0x001f4351, 0x00214353, 0x00224353, 0x00244453, 0x00234352,
- 0x00184248, 0x00184148, 0x00204550, 0x00254753, 0x00294957, 0x00274655, 0x002b4959, 0x002f4b5c, 0x00264c52, 0x00274a51, 0x00284651, 0x002a4551, 0x002d4750, 0x0028424a, 0x00243d46, 0x00243d45,
- 0x00254647, 0x00314f50, 0x0050676d, 0x006e8088, 0x0097a7ad, 0x00b5c4c6, 0x00d8e1e2, 0x00f0f3f1, 0x00f1faeb, 0x00f7fde9, 0x00fbfdf0, 0x00fcfcf8, 0x00fefefa, 0x00fcfcf8, 0x00fefcfe, 0x00fffdff,
- 0x00f0f8f2, 0x00f3fbf9, 0x00faffff, 0x00fafdff, 0x00f8fcff, 0x00f7fcfb, 0x00f1f4f1, 0x00e4e7e5, 0x00b8c9c1, 0x0095a7a3, 0x00728488, 0x004d6068, 0x002f4550, 0x001b333f, 0x00183040, 0x00193443,
- 0x00163851, 0x001d405f, 0x002b4a74, 0x00345882, 0x00436794, 0x005579a1, 0x005e7ba2, 0x00465e81, 0x000a2530, 0x00001419, 0x000d191b, 0x00141914, 0x00161918, 0x001d201c, 0x00272725, 0x00262624,
- 0x00252b1e, 0x002b3025, 0x0034322a, 0x003a362e, 0x00444238, 0x00544634, 0x00674c37, 0x0076553d, 0x00835934, 0x008a5830, 0x008e5630, 0x008d512e, 0x00804a2d, 0x0075462e, 0x00673a27, 0x00573120,
- 0x00c3c0b3, 0x00484436, 0x004a4637, 0x00474435, 0x00454031, 0x00453f2e, 0x0047412f, 0x0046402f, 0x0044422d, 0x0042412b, 0x0045402f, 0x00494135, 0x00373126, 0x001b1911, 0x000a0b05, 0x00040701,
- 0x00040802, 0x00070902, 0x00060701, 0x000b0d07, 0x0014140a, 0x001b1510, 0x001e1410, 0x00241818, 0x00302117, 0x003b291c, 0x00422c1c, 0x004b311d, 0x0051341a, 0x0067472a, 0x009c7b5c, 0x00b89676,
- 0x00b3855f, 0x009a6e4c, 0x00764d2e, 0x005c391c, 0x0043250a, 0x0042240a, 0x00603d21, 0x006f4b29, 0x00784f24, 0x00906536, 0x00ac7a4e, 0x00bb8460, 0x00b2814a, 0x0099723f, 0x00644925, 0x00483934,
- 0x00474d89, 0x004655ab, 0x003a4eaf, 0x004355af, 0x00465799, 0x00646d90, 0x00a7acbd, 0x00a6a5ad, 0x007c7067, 0x00826b55, 0x00845d3f, 0x0086532a, 0x00894414, 0x008e400c, 0x00943d0a, 0x00973c0a,
- 0x00903d03, 0x008b4a21, 0x009f6f55, 0x00a48780, 0x008f868c, 0x00877f83, 0x00726b6f, 0x00423a3d, 0x002f2f2d, 0x003c3d43, 0x001d2224, 0x00171d15, 0x00171d12, 0x00151c15, 0x00161e17, 0x0010150e,
- 0x00020b0d, 0x00060c10, 0x00090f0f, 0x00090e11, 0x00060a0b, 0x00000710, 0x00000b13, 0x00051015, 0x000e1113, 0x000e0f0b, 0x00120e07, 0x001c1606, 0x00483b23, 0x00706245, 0x00625332, 0x00301f07,
- 0x0013120a, 0x00161511, 0x001d1c1a, 0x001b1b19, 0x00121313, 0x000d0f0e, 0x000e100c, 0x0010120d, 0x0014190e, 0x00192012, 0x001f2317, 0x00212118, 0x00222218, 0x00232319, 0x0026251c, 0x0029281f,
- 0x002c271b, 0x002d2a19, 0x002d281a, 0x002b2618, 0x00272111, 0x003a3a32, 0x009a9c99, 0x00cccdc9, 0x00cececa, 0x00c8c9c6, 0x00cecdce, 0x00c3c1c6, 0x00606068, 0x00151422, 0x001c182c, 0x002c283f,
- 0x002f334b, 0x00323752, 0x00363957, 0x00373957, 0x003a3e5b, 0x003d405f, 0x003d3f5f, 0x003a3d5d, 0x0034385b, 0x00333558, 0x002e3356, 0x00273357, 0x00293658, 0x00334267, 0x00485b80, 0x00586e94,
- 0x007591bd, 0x00829fd2, 0x006d8ec6, 0x00587cb6, 0x004e76b7, 0x004c73b7, 0x004b72b7, 0x004970b6, 0x00466db4, 0x00486fb5, 0x004b71ba, 0x004a70b9, 0x00476eb4, 0x00456cb3, 0x00436ab3, 0x004269b2,
- 0x00386bb1, 0x003b6bb5, 0x003667aa, 0x003366ae, 0x003668b3, 0x003766b0, 0x003868b1, 0x003665af, 0x002e64aa, 0x003566ac, 0x00375992, 0x003f4564, 0x003e4264, 0x003e4567, 0x003f4564, 0x003e4263,
- 0x003a3f5d, 0x00363b5a, 0x0035395b, 0x0034395c, 0x00323758, 0x002f374e, 0x0030374c, 0x0030384f, 0x00313950, 0x00313851, 0x00333953, 0x00353954, 0x00343854, 0x00343955, 0x00363c59, 0x00383e5c,
- 0x00383d5c, 0x00383d5d, 0x003c4062, 0x003e4365, 0x003f4465, 0x003e4363, 0x003d4362, 0x003e4464, 0x003e4264, 0x003d4163, 0x003b4062, 0x00383e5f, 0x0034395b, 0x002d3356, 0x00282e51, 0x0024294d,
- 0x001f2349, 0x001c2046, 0x00181c41, 0x00161a3f, 0x0013173c, 0x00101036, 0x000e0c32, 0x000b0b30, 0x00080628, 0x00050523, 0x00050523, 0x00050622, 0x0004071e, 0x0005091c, 0x000b0f21, 0x000e1323,
- 0x0011152d, 0x00151832, 0x001c1d3a, 0x00232440, 0x002a2a46, 0x002f2f4a, 0x0032324e, 0x00343551, 0x0031324a, 0x002c2f48, 0x00282c44, 0x0024283d, 0x001d2138, 0x00181b34, 0x00151732, 0x00131530,
- 0x001b1a32, 0x00404052, 0x00a8a9b4, 0x00caccce, 0x00cacdc7, 0x00c8ccc8, 0x00cbceca, 0x00c0bfbe, 0x005b5751, 0x00130e0b, 0x000d0600, 0x000d0700, 0x00070300, 0x00030302, 0x000a0e0b, 0x00131a16,
- 0x00292118, 0x003d3329, 0x0042352b, 0x004c3c31, 0x004a382c, 0x004b392d, 0x008e7c72, 0x00cfbfb8, 0x00f4ece5, 0x00fef7f3, 0x00f1eaee, 0x00aca4b0, 0x002a2523, 0x00100a03, 0x00110b01, 0x00171109,
- 0x00140a09, 0x00170c0b, 0x001f1210, 0x002b1f16, 0x003a2e1c, 0x00443620, 0x0043321e, 0x00392b1b, 0x0024190c, 0x00191005, 0x00160d02, 0x001d150a, 0x002e2613, 0x00382f17, 0x003f3519, 0x00443a19,
- 0x00413222, 0x00473829, 0x00514239, 0x005d4e47, 0x00695c4b, 0x0074684d, 0x008e7d5a, 0x009e8a60, 0x009f855f, 0x00b49375, 0x00d3b7a3, 0x00eddcd2, 0x00fef6e8, 0x00e8dbd2, 0x009f958a, 0x00787467,
- 0x0069695f, 0x0054534b, 0x00312f2b, 0x001c1815, 0x000a0704, 0x00030203, 0x00030307, 0x00040204, 0x00090400, 0x00171006, 0x002b1e12, 0x003f2f20, 0x00473927, 0x00413522, 0x002d2111, 0x00180d03,
- 0x003f3c3a, 0x00b7b5b2, 0x00fffcf9, 0x00fffdfa, 0x00fefffc, 0x00fcfdfc, 0x00fefefe, 0x00ffffff, 0x00ced0d1, 0x005c6261, 0x000c1116, 0x000b0d1a, 0x000a0e18, 0x00080d15, 0x00080b12, 0x00080c10,
- 0x00070d11, 0x000b1217, 0x000c111a, 0x00131520, 0x001e202c, 0x00242731, 0x002c3038, 0x00272b32, 0x00101115, 0x00050509, 0x00040005, 0x0008040a, 0x0005050c, 0x00060911, 0x00070a14, 0x001a1e29,
- 0x00747e88, 0x00d2d8e5, 0x00e6ebf8, 0x00e1e4f4, 0x00ced0e7, 0x00cacbe3, 0x00b7b9cd, 0x00b4b7cb, 0x00bec6d6, 0x00c1ccd8, 0x00b7c3ce, 0x00b5c1cc, 0x00b7c2cb, 0x00bdc7d1, 0x00becad5, 0x00b7c4ce,
- 0x00b5c2cc, 0x00b1bcc5, 0x00a8b4be, 0x00a9b3c0, 0x00aeb9c4, 0x00b6bbc5, 0x00b7b9c4, 0x00b4b6c2, 0x00b8b9c7, 0x00bbbccb, 0x00b7b8c8, 0x00b6b7c7, 0x00c4c6d1, 0x00ced1d7, 0x00c1c5c8, 0x00adb1b0,
- 0x00b0a19c, 0x00b0a3a1, 0x00b7adad, 0x00bfbbbe, 0x00b2b0b8, 0x0094949e, 0x009a99a5, 0x00b3b0be, 0x00b7b4c4, 0x00bdb9c5, 0x00d2cddf, 0x00e5dff5, 0x00d2f4fc, 0x00d6e2f2, 0x00dbdeee, 0x00e4e4eb,
- 0x00e8a786, 0x00da5e3a, 0x00b44126, 0x005b282a, 0x00153a93, 0x00355499, 0x00445da1, 0x004050ae, 0x002142b8, 0x001b47ba, 0x001c4db1, 0x00314ca0, 0x005f3d64, 0x00703c46, 0x00a9705d, 0x00edba95,
- 0x00edf1de, 0x00dcdbcc, 0x00d8d6cd, 0x00f0eeea, 0x00fffcfb, 0x00fefcfc, 0x00fcfcfc, 0x00fcfdfd, 0x00edeae9, 0x00959491, 0x00221914, 0x002b1910, 0x00211811, 0x001a130e, 0x00130d07, 0x00130d05,
- 0x000d0700, 0x00393337, 0x00abacbf, 0x00a8b7db, 0x005e7ab4, 0x00516dab, 0x004e6caa, 0x00506aac, 0x004b67b0, 0x004d68ad, 0x004f67ab, 0x00536aa5, 0x006177a1, 0x00889db9, 0x00c3d5e8, 0x00ccdee8,
- 0x0088a6e6, 0x007b97d4, 0x0093ace5, 0x00b3cbf9, 0x0092a3c8, 0x0033405d, 0x00010a1e, 0x00050c1b, 0x00060b10, 0x00050909, 0x0007060c, 0x00060617, 0x00070716, 0x000a0b14, 0x00121018, 0x00161418,
- 0x001c181b, 0x001e191d, 0x001c151e, 0x0019131c, 0x001b131d, 0x0015182a, 0x00141b35, 0x00171f3d, 0x00182143, 0x001a2148, 0x001e234e, 0x00222753, 0x00293155, 0x002f3956, 0x002f3854, 0x002c354d,
- 0x00222540, 0x00141929, 0x00121818, 0x00222917, 0x00485223, 0x00687133, 0x00848d44, 0x00939c4c, 0x00939946, 0x008f9441, 0x00828740, 0x006d753f, 0x0053582c, 0x00414423, 0x00232210, 0x00100f07,
- 0x000d0b10, 0x0018141f, 0x0026202e, 0x00433d4c, 0x00716c7a, 0x00919496, 0x00a9b0aa, 0x00c6ccc9, 0x00e1e7e2, 0x00f1f7f3, 0x00f9fbfa, 0x00fcfcfc, 0x00fbfdfb, 0x00fdfefc, 0x00fcfcfb, 0x00fefefd,
- 0x00fcfaf1, 0x00fffcf6, 0x00feffef, 0x00fefeef, 0x00fafeed, 0x00fafdf8, 0x00fbfffc, 0x00f9fafc, 0x00f5fcfa, 0x00f9fff8, 0x00f5fdf0, 0x00f5fefb, 0x00f6f6f8, 0x00f9eff9, 0x00f7ecf8, 0x00f5eef5,
- 0x00f0f3ef, 0x00eff9eb, 0x00f3fce8, 0x00fafde6, 0x00fefce4, 0x00fdfaf2, 0x00fffdfb, 0x00fdfdfc, 0x00fcfcfb, 0x00fefdfc, 0x00fefcfc, 0x00fefbfc, 0x00f6f2f5, 0x00eeebed, 0x00f9f7f6, 0x00f9f9f5,
- 0x00fcfbf4, 0x00fafaf7, 0x00fefcfd, 0x00e2e2e7, 0x007c7f88, 0x004f545e, 0x003c404b, 0x00282e38, 0x0016242b, 0x00213137, 0x00374047, 0x004e5155, 0x005e6168, 0x0063676f, 0x005d606c, 0x00505561,
- 0x003e4452, 0x00303643, 0x001b2431, 0x001f2833, 0x002f373f, 0x0038353a, 0x00211b1e, 0x00110d0f, 0x00090f0c, 0x0009100a, 0x00090f08, 0x000c1209, 0x00120c02, 0x00180c03, 0x0022130c, 0x002b1610,
- 0x001d0d0b, 0x00140604, 0x00110801, 0x00130b03, 0x00060800, 0x001e1b16, 0x004c4845, 0x004b4443, 0x004c454c, 0x004c424d, 0x0039334a, 0x00303964, 0x00355083, 0x0037598e, 0x00213968, 0x00333d5a,
- 0x00a07e79, 0x00935f4a, 0x00662a0b, 0x00ae704e, 0x00f6c5a8, 0x00facbb3, 0x00cba893, 0x008d7060, 0x00574e4c, 0x00484852, 0x00353a4b, 0x00333d53, 0x00444c60, 0x00505462, 0x005c5962, 0x00635d64,
- 0x005a5b67, 0x00575965, 0x00474a56, 0x00343945, 0x00222933, 0x00262f37, 0x00394048, 0x00484e57, 0x00545861, 0x005a5b65, 0x005e5e6c, 0x005a5c6d, 0x00484c5b, 0x00363a48, 0x00272d39, 0x00232d35,
- 0x00353e45, 0x00474c54, 0x005b5c63, 0x0063626a, 0x006a646e, 0x0064636f, 0x00505360, 0x003f434f, 0x00252d38, 0x001e2730, 0x00283037, 0x00383e44, 0x004f5158, 0x00606168, 0x0068666d, 0x0066636a,
- 0x00595c69, 0x00494c5a, 0x002c303f, 0x001a202f, 0x00181f2e, 0x00232a36, 0x00373c45, 0x004c5156, 0x005d615d, 0x00666761, 0x00626363, 0x00515863, 0x003d4551, 0x00282f3d, 0x00141c28, 0x00101a25,
- 0x00142127, 0x00232c31, 0x003f4348, 0x00545656, 0x00646360, 0x0064666d, 0x005c5d6a, 0x00484e59, 0x0029313e, 0x0019212e, 0x00101825, 0x00151c26, 0x00262a32, 0x0037383d, 0x00504f51, 0x00656464,
- 0x006b696d, 0x007b7a7d, 0x00cdcdcf, 0x00f8f9f9, 0x00ffffff, 0x00fdfdfc, 0x00fdfdfc, 0x00fdfdfb, 0x00b1b5b1, 0x0080837e, 0x00bdbcb9, 0x00e2e0dd, 0x00f9fbfe, 0x00cbd8df, 0x004f656f, 0x0025404d,
- 0x001f4553, 0x001f4754, 0x00214754, 0x0022454f, 0x0022464c, 0x0022454e, 0x00224550, 0x0021444e, 0x0020434c, 0x0020434c, 0x0022414b, 0x00223e49, 0x00203a47, 0x001d3543, 0x001b3141, 0x00182f3f,
- 0x001b2537, 0x00192537, 0x00172537, 0x00172839, 0x00192d3c, 0x0019313e, 0x001b3641, 0x001d3a45, 0x001d404a, 0x0020434d, 0x0020434f, 0x001f434f, 0x001f4250, 0x001f434f, 0x0020444e, 0x0020434d,
- 0x001f4450, 0x001f434f, 0x0020444f, 0x00224651, 0x00214652, 0x00224552, 0x00254654, 0x00244452, 0x0028454f, 0x0029454e, 0x0027404b, 0x00243c45, 0x0021373d, 0x00273c40, 0x0044575c, 0x00617578,
- 0x007f8f9a, 0x00a4b4bb, 0x00d1dfe5, 0x00e8f4f6, 0x00f5fdfb, 0x00f9fef9, 0x00fbfef7, 0x00fafff4, 0x00f6fcea, 0x00f8fdea, 0x00fdfff2, 0x00fefefa, 0x00fcfcfa, 0x00fbfdfa, 0x00fdfefd, 0x00fcfdfd,
- 0x00fcfefc, 0x00fbfdfd, 0x00f8fdfd, 0x00eff3fa, 0x00cfd3dd, 0x00b1b9c1, 0x00839094, 0x00606e75, 0x0032424b, 0x00152a35, 0x00112939, 0x00153144, 0x001b3c52, 0x001f4159, 0x00254966, 0x002c5270,
- 0x00325b84, 0x003a6391, 0x003c6a9c, 0x00416fa6, 0x004777b0, 0x005281b9, 0x006d97cc, 0x0078a2cc, 0x00577794, 0x00224057, 0x0004121f, 0x00131716, 0x00161a19, 0x001d1f1e, 0x001d201e, 0x0020211f,
- 0x00252723, 0x00292a25, 0x002c2b24, 0x00312e28, 0x0039382f, 0x004f3c2c, 0x0062452d, 0x00735034, 0x00885331, 0x0091532e, 0x0094522c, 0x00914c27, 0x00854828, 0x00774326, 0x0066361e, 0x00562d17,
- 0x00c5c0b8, 0x00484238, 0x00484437, 0x00454335, 0x00423f30, 0x0044402f, 0x00464331, 0x00454130, 0x0044412e, 0x0045412d, 0x00463f2f, 0x004a4132, 0x00433d2f, 0x00272519, 0x000a0b03, 0x00060802,
- 0x00050804, 0x00030601, 0x00090907, 0x00100e0d, 0x001d1916, 0x00251c1a, 0x00261a17, 0x00231910, 0x002f1c13, 0x00382316, 0x00422a18, 0x004a2d15, 0x00513012, 0x00664220, 0x00ae8965, 0x00cfa882,
- 0x00cb9468, 0x00a47249, 0x00744721, 0x005f3916, 0x005b3a1b, 0x006a492e, 0x008d684b, 0x00997250, 0x00976840, 0x009f6d40, 0x00b17c52, 0x00bf8862, 0x00b8864d, 0x00a47d44, 0x006a5027, 0x0047392e,
- 0x00454b89, 0x004352ac, 0x003c4fb3, 0x004153b2, 0x00455498, 0x004c5278, 0x005e6173, 0x007e7c86, 0x0080736e, 0x00826a56, 0x008a6246, 0x0086532c, 0x008b4415, 0x008c3d0b, 0x00943d0c, 0x00993c0b,
- 0x0093431a, 0x00804730, 0x0083635e, 0x00776b7b, 0x00666f8f, 0x00868ba8, 0x00979cb5, 0x00646780, 0x00585d79, 0x00697692, 0x00495773, 0x003a4759, 0x00313d53, 0x00334156, 0x003a4760, 0x00313f54,
- 0x0033425b, 0x00334057, 0x00303f59, 0x002e3a52, 0x0023334c, 0x001e2a42, 0x0013203d, 0x000b172c, 0x000c121d, 0x000c0f12, 0x001a1716, 0x00383127, 0x00675948, 0x0074654e, 0x00493a1d, 0x00251401,
- 0x001a190f, 0x0017160f, 0x00161510, 0x0014120f, 0x00110f0f, 0x000f0f10, 0x000f1110, 0x000f130e, 0x00151710, 0x00171e11, 0x001c2215, 0x00202119, 0x0023221a, 0x0026251b, 0x002a281d, 0x002d2a1f,
- 0x00322e22, 0x00383324, 0x003c3528, 0x00383124, 0x0032281b, 0x0046433d, 0x00b4b4b2, 0x00eaeae6, 0x00ecede9, 0x00e6e7e5, 0x00eeedee, 0x00e2e0e7, 0x006e6c79, 0x00181527, 0x00211c32, 0x00312c44,
- 0x00393b5e, 0x00393d61, 0x003c3f64, 0x003c3f64, 0x0042446a, 0x0046476e, 0x0046466e, 0x0042446b, 0x0042426c, 0x0041446e, 0x00424974, 0x00495889, 0x006477a3, 0x00778dbc, 0x0087a0d0, 0x008dabde,
- 0x0094b7f3, 0x008bb2f1, 0x0077a0e5, 0x006995df, 0x00608fde, 0x005987dc, 0x005583db, 0x00507ed7, 0x005280d9, 0x00517fd7, 0x00507fd7, 0x004f7dd6, 0x004f7ed5, 0x004d7bd3, 0x004978d0, 0x004978cf,
- 0x00487bce, 0x004073c7, 0x004073c4, 0x003f75c4, 0x004074c6, 0x003b6fc1, 0x003b70c5, 0x003a6cc0, 0x003c6dbf, 0x004073c3, 0x004266aa, 0x004c517c, 0x00494f76, 0x004a5179, 0x004b4f79, 0x00494c76,
- 0x00454b74, 0x003e456d, 0x00393f69, 0x00363c66, 0x00363a63, 0x00353b5a, 0x00363d58, 0x00363e5a, 0x003a415b, 0x003a415d, 0x003d4361, 0x003e4464, 0x003e4365, 0x003f4467, 0x0041466a, 0x0043476c,
- 0x00444871, 0x00434770, 0x00454972, 0x00444a72, 0x00474c74, 0x00464c73, 0x00464c74, 0x00464d75, 0x00494d78, 0x00484c76, 0x00474b75, 0x00454b75, 0x00424772, 0x003c416c, 0x00343a65, 0x002f335f,
- 0x002a2b5a, 0x00252854, 0x001f234e, 0x001a1f49, 0x00171a46, 0x00141442, 0x0012103f, 0x000e0e3b, 0x000e0c35, 0x000a0a2f, 0x0009082d, 0x0008072b, 0x00090728, 0x00090826, 0x000d0e29, 0x0010142d,
- 0x00171839, 0x001a1a3c, 0x00202042, 0x00272748, 0x002e2d4f, 0x00333354, 0x00383759, 0x003a395c, 0x00373556, 0x002f3050, 0x00292c49, 0x00242a40, 0x001f243e, 0x001b1e3b, 0x0018193a, 0x00151638,
- 0x00141330, 0x004c4b61, 0x00cdcfdb, 0x00e8ebed, 0x00eaedea, 0x00e8eae9, 0x00eeefeb, 0x00d1cecb, 0x005a5551, 0x00160f0a, 0x00171006, 0x00130d03, 0x000b0702, 0x00020300, 0x00060b0a, 0x00121919,
- 0x00342d2a, 0x00443b36, 0x00463b34, 0x004d4037, 0x0047362d, 0x00554237, 0x00ae9f95, 0x00f3e7de, 0x00fcf1f0, 0x00f3eaeb, 0x00eae3e7, 0x009a93a0, 0x00211c1a, 0x000c0702, 0x00100c02, 0x00120d06,
- 0x0018090d, 0x00140806, 0x00160905, 0x00201207, 0x0032240f, 0x003c2e12, 0x0042331a, 0x003a2d17, 0x00291b0f, 0x001a0e05, 0x00180e05, 0x001f140b, 0x00302514, 0x003d2f19, 0x00443619, 0x00423511,
- 0x00442d1f, 0x004a3528, 0x005c4940, 0x006b5754, 0x00746354, 0x007b6b54, 0x00908160, 0x009b8b63, 0x00aa9478, 0x00d3b9a4, 0x00f8e2d6, 0x00fcf3f4, 0x00fef9f5, 0x00eceae7, 0x00abaaa1, 0x006f6e64,
- 0x00585854, 0x0041413b, 0x00252320, 0x00191514, 0x000a0707, 0x00040406, 0x00040508, 0x00030301, 0x000a0101, 0x00110800, 0x0027190a, 0x00392717, 0x00453324, 0x00403020, 0x002e2010, 0x00180c00,
- 0x00504c49, 0x00c8c4c1, 0x00fffcfa, 0x00fffdfb, 0x00fdfefc, 0x00fcfffe, 0x00fcfefd, 0x00fcffff, 0x00ccced0, 0x00575b5d, 0x000c0f16, 0x000b0c1a, 0x000c0f1a, 0x000a0e16, 0x00080c10, 0x00060b0e,
- 0x00090e12, 0x000c1117, 0x0011151e, 0x00131621, 0x00161926, 0x00171b26, 0x001a1f28, 0x001e232b, 0x0016131c, 0x000a070c, 0x000b060a, 0x00050206, 0x0004040a, 0x0004070e, 0x00090c16, 0x00434754,
- 0x00b7c2cb, 0x00e8eefa, 0x00e2e8f8, 0x00e3e0f6, 0x00d5d2e9, 0x00cec7de, 0x00b3b0c5, 0x00afafc1, 0x00c0c4d1, 0x00c2c8d1, 0x00bfc7cf, 0x00bdc7d2, 0x00bbc5d1, 0x00bfc9d5, 0x00c0cbd8, 0x00c0cbd8,
- 0x00bec8d5, 0x00bfc9d5, 0x00bfcbd6, 0x00bbc6d2, 0x00b5bfcb, 0x00b6b8c4, 0x00b5b2bf, 0x00b5b2c1, 0x00b4b1c2, 0x00aeabbc, 0x00aca9ba, 0x00a6a3b2, 0x00a8a6ae, 0x00b8b7b9, 0x00bebebb, 0x00b5b6ae,
- 0x00a18a7e, 0x00968279, 0x009d8c87, 0x00b2a6a5, 0x00c5bfc5, 0x00b9b7c0, 0x009a98a3, 0x009695a1, 0x00a19cac, 0x00adadb8, 0x00d4c8db, 0x00e8d7ed, 0x00d2f0fb, 0x00d3e6fd, 0x00e1e5fa, 0x00e2e4e9,
- 0x00f29765, 0x00de562b, 0x00ab3d30, 0x003d2b40, 0x002341a0, 0x003158a4, 0x003b5dad, 0x003b4bae, 0x00263fb0, 0x001c47aa, 0x002749a1, 0x00393f85, 0x00772c60, 0x009c4e65, 0x00e5aaac, 0x00faeed3,
- 0x00e6e5d3, 0x00bbbead, 0x00cdcec0, 0x00f1f2eb, 0x00fefefe, 0x00fef9fe, 0x00fffbff, 0x00fdfcfe, 0x00e1d9db, 0x00736d6a, 0x00211813, 0x0025140c, 0x001d1310, 0x00150e09, 0x00100b03, 0x00120c00,
- 0x00180b02, 0x003a2f32, 0x00a5a2b3, 0x00a1a8c7, 0x006077b0, 0x00566fa7, 0x00546fab, 0x005770ae, 0x00536fb8, 0x00516cb5, 0x005169b0, 0x00576eaf, 0x006477a7, 0x007284a9, 0x009eadc7, 0x00becde1,
- 0x008ca7e3, 0x007b96d0, 0x0089a4d9, 0x00a5bef1, 0x0098aed5, 0x00415173, 0x0001081e, 0x00030a1e, 0x00040911, 0x00080c0f, 0x0005050b, 0x00060414, 0x00060310, 0x0009070d, 0x00130f11, 0x001a1511,
- 0x00241c17, 0x00251e18, 0x00221917, 0x001d1511, 0x001d1014, 0x00121322, 0x000f152d, 0x00121b32, 0x00151b3f, 0x00171b43, 0x001c1f4b, 0x00222552, 0x00272c52, 0x002b314f, 0x0029304a, 0x00222a40,
- 0x00191d35, 0x000d1420, 0x000f1714, 0x001d2713, 0x00414c1f, 0x005e672f, 0x0079803f, 0x00838942, 0x0080833f, 0x00777936, 0x00696b31, 0x00565b2e, 0x0040421e, 0x0034341c, 0x00201d13, 0x00141010,
- 0x000e0b15, 0x000c0a13, 0x000b060d, 0x00100a14, 0x001c1519, 0x0028292d, 0x003b4041, 0x00525959, 0x007e8484, 0x00a0a5a6, 0x00c0c2c5, 0x00d0cfd3, 0x00e8e7ea, 0x00f5f4f5, 0x00fdfbfc, 0x00fdfcfd,
- 0x00fcf5ff, 0x00fef9f6, 0x00fdfcea, 0x00fffedb, 0x00fcfef0, 0x00fdfdf9, 0x00fafcfc, 0x00fbfcf8, 0x00fcfff9, 0x00fafdfb, 0x00fbfefe, 0x00f7ffff, 0x00fffbff, 0x00fef8fc, 0x00fcf3fe, 0x00fcf6fc,
- 0x00f3f8ee, 0x00f0fbea, 0x00f3fcee, 0x00f7f6ec, 0x00f9eff0, 0x00f3eeea, 0x00f4f2ee, 0x00f7f4f1, 0x00efebed, 0x00dcd8da, 0x00c9c4c8, 0x00b3aeb1, 0x008d8a8b, 0x009e9d9c, 0x00ececea, 0x00fbfdf9,
- 0x00fdfaf5, 0x00fdfbf8, 0x00fffefc, 0x00eaeaee, 0x00868793, 0x00444755, 0x00353b49, 0x00252e3a, 0x001b272f, 0x00233038, 0x0039424a, 0x004c4f54, 0x00595d65, 0x005d626c, 0x005b606d, 0x004f5564,
- 0x003f4456, 0x00313849, 0x00222d3c, 0x0029313d, 0x00333e46, 0x0035343d, 0x0017141b, 0x000b0c10, 0x000f1514, 0x00060f0b, 0x00070d07, 0x00080b02, 0x000d0501, 0x00120400, 0x002d1a10, 0x00472c22,
- 0x004b2514, 0x004a2716, 0x00583b27, 0x0057402b, 0x0023180a, 0x00281e18, 0x0059524f, 0x005a5657, 0x004e4a59, 0x003b394a, 0x002d3051, 0x0035497c, 0x001a3e81, 0x00062968, 0x00081f59, 0x0023385f,
- 0x00a68887, 0x00be9076, 0x00ab6e4e, 0x00d39b73, 0x00fac9af, 0x00ebc5ac, 0x00a98674, 0x006d5446, 0x004e444c, 0x00303140, 0x002f354a, 0x00323c54, 0x00464c60, 0x00515160, 0x005e5760, 0x00665b5f,
- 0x00595867, 0x00535361, 0x0040424e, 0x00323640, 0x00293138, 0x00333b42, 0x00444b54, 0x00525862, 0x005c5e6b, 0x005e5e6a, 0x00605f6f, 0x0056596a, 0x00464a5a, 0x00363946, 0x002c313d, 0x002c353d,
- 0x00424a50, 0x0050565d, 0x0061636b, 0x0065636d, 0x0067606d, 0x00605d6d, 0x00484b5b, 0x00343846, 0x00222934, 0x00202932, 0x00303940, 0x003d444a, 0x0053575e, 0x0061626a, 0x0066656c, 0x00635f66,
- 0x00525265, 0x00414255, 0x0025293c, 0x00171d2f, 0x00181e2e, 0x00252a37, 0x00373c44, 0x00484d51, 0x005e5d5b, 0x00676661, 0x00656764, 0x00555c67, 0x00404754, 0x002d3443, 0x001a222e, 0x00111c28,
- 0x00171f29, 0x00232a31, 0x003b3f44, 0x00505353, 0x00686a67, 0x006e7278, 0x006b6e79, 0x00565b66, 0x00373e4d, 0x00262e3b, 0x00171f2a, 0x00161c25, 0x0023262d, 0x00323237, 0x004d4b4d, 0x00646162,
- 0x006d6e71, 0x00757677, 0x00bcbcbd, 0x00f5f5f5, 0x00fdfcfe, 0x00fdfcfd, 0x00fcfbfd, 0x00fffeff, 0x00c2c1bf, 0x00858783, 0x00b6b4af, 0x00e0dadb, 0x00f8f9fa, 0x00e1eaf2, 0x0070828f, 0x002e4656,
- 0x00244457, 0x00214354, 0x00214353, 0x00224350, 0x0024454f, 0x0021454c, 0x001f454c, 0x001f454c, 0x0021434d, 0x0021434c, 0x0023424c, 0x00233f4b, 0x00213b49, 0x001e3646, 0x001b3242, 0x0018303e,
- 0x0020283d, 0x001b2639, 0x00172536, 0x00162737, 0x00182c3c, 0x001a313f, 0x001b3543, 0x001d3a46, 0x0020404b, 0x0020404c, 0x0020414d, 0x00214350, 0x001f4350, 0x001f434f, 0x0020444f, 0x0020444f,
- 0x001f4250, 0x00214350, 0x00224451, 0x00204450, 0x001c404e, 0x00214552, 0x001f414c, 0x001c3e47, 0x00203b45, 0x00243f48, 0x002e474f, 0x0040565c, 0x00617277, 0x007f8d90, 0x00a8b4b8, 0x00c6d2d4,
- 0x00e8eaee, 0x00f2f4f6, 0x00fcfeff, 0x00fcfffe, 0x00fafcf8, 0x00fcfcf7, 0x00fefdf7, 0x00fcfef5, 0x00fefff6, 0x00fcfef3, 0x00fcfff4, 0x00fcfdf6, 0x00fcfcf9, 0x00fcfdfc, 0x00fcfdfd, 0x00fbfbfc,
- 0x00eaedf3, 0x00ced5db, 0x00b3b7bd, 0x00959aa5, 0x00646774, 0x003e495c, 0x00253248, 0x0017283f, 0x00122640, 0x00152e4a, 0x001f3c5e, 0x00224468, 0x00284d76, 0x002d557e, 0x0036608c, 0x003d6c98,
- 0x00416fa4, 0x004474ac, 0x004a80bc, 0x004a83c0, 0x004d8acf, 0x005088ca, 0x005e93d2, 0x0071a2d9, 0x0086a8d7, 0x005e82a8, 0x001d354d, 0x00171a1b, 0x00141619, 0x001b1c1e, 0x001a1b1c, 0x00232323,
- 0x00272322, 0x00272422, 0x00262524, 0x002a2726, 0x0031312c, 0x00473323, 0x005d3d25, 0x0071492b, 0x008a4e2d, 0x00944f2a, 0x00994e29, 0x00974824, 0x008d4627, 0x007f4227, 0x006c341e, 0x005b2b17,
- 0x00c5c3b8, 0x004a453a, 0x00494437, 0x00454234, 0x00423f30, 0x0043412f, 0x0043412e, 0x0044402f, 0x0042422d, 0x0044412d, 0x0048422d, 0x00484232, 0x00454231, 0x003c392d, 0x00212114, 0x000e0e05,
- 0x00040703, 0x00030603, 0x00080905, 0x0012110d, 0x00211d1b, 0x00271f19, 0x00271a14, 0x0027190e, 0x00362415, 0x0046331f, 0x00574028, 0x00614629, 0x005a3b17, 0x0064421a, 0x00a88359, 0x00c59f73,
- 0x00cf9665, 0x00b88254, 0x008e5e33, 0x00794f28, 0x0076502e, 0x007b5737, 0x00896342, 0x00986f4b, 0x00b37f56, 0x00c08761, 0x00c28861, 0x00c38a68, 0x00bb8a4d, 0x00a98046, 0x006a4f23, 0x003e3222,
- 0x00393d7d, 0x004651af, 0x003f51b9, 0x004253b8, 0x0046549a, 0x00374068, 0x00060a1e, 0x00272734, 0x00645b55, 0x00856d5b, 0x00886348, 0x008a5834, 0x008b481d, 0x008d3f11, 0x0092400e, 0x00963d0c,
- 0x0087432f, 0x00805356, 0x007d7085, 0x00737cad, 0x005f7cbb, 0x006a83c1, 0x007c90c7, 0x007c8cc4, 0x007789c4, 0x00728bcb, 0x006e87d0, 0x00758bdb, 0x007388dc, 0x007185da, 0x00778add, 0x007488db,
- 0x00798be3, 0x007485dd, 0x007286e0, 0x007083de, 0x00657cd3, 0x006374b3, 0x00586793, 0x0048547b, 0x00383f5d, 0x0034374c, 0x003c3944, 0x00524b4b, 0x0075685e, 0x006e604f, 0x00382912, 0x002b1a05,
- 0x00252116, 0x00232015, 0x001f1b14, 0x00191611, 0x0016120f, 0x0013110f, 0x00121310, 0x0010150d, 0x0010150e, 0x00141b10, 0x001a1f14, 0x001e2017, 0x0023211a, 0x0026251b, 0x002a291d, 0x002e2c20,
- 0x003f392c, 0x004b4334, 0x00514739, 0x004b4333, 0x00403626, 0x00534f48, 0x00c3c4c1, 0x00fbfbf9, 0x00fdfffc, 0x00fbfdfb, 0x00fefefe, 0x00f0f0f4, 0x00797783, 0x001a1728, 0x00241f36, 0x00322c47,
- 0x00383c63, 0x003c3f68, 0x003f416b, 0x0042436e, 0x00474673, 0x00484877, 0x00484778, 0x004d4d7d, 0x00636492, 0x007578a7, 0x00868dc1, 0x009aabe7, 0x00a6bef7, 0x00a7c1fd, 0x009ab5f2, 0x008fb3f1,
- 0x0083adf6, 0x007faef9, 0x0073a5f6, 0x0070a5fe, 0x006a9efb, 0x00639afe, 0x00598ff5, 0x00568bee, 0x00548bf0, 0x00548bf0, 0x005087ed, 0x005088ed, 0x004f86ec, 0x005086ed, 0x004e84e9, 0x004e83e8,
- 0x005082d8, 0x004a7cd3, 0x006699eb, 0x0083b4fb, 0x0073a2f1, 0x005789df, 0x00497cd2, 0x003e70c6, 0x003b71c6, 0x004475cb, 0x004768b4, 0x00515686, 0x004e5482, 0x00505584, 0x00515483, 0x004e5281,
- 0x004b4e7e, 0x00444877, 0x003c4171, 0x00393d6d, 0x00383c6b, 0x00383d63, 0x00393f61, 0x003a4163, 0x003e4465, 0x003f4668, 0x0041486c, 0x0042496f, 0x00444a71, 0x00454b73, 0x00484e75, 0x004b5077,
- 0x00494d7c, 0x004a4e7d, 0x00484c7b, 0x00484d7c, 0x00494e7d, 0x004c517f, 0x004c5180, 0x004c5181, 0x004d5383, 0x004d5282, 0x004c5282, 0x004b5182, 0x004a4f81, 0x00464b7c, 0x003e4374, 0x00393d6e,
- 0x00333569, 0x002e3264, 0x0025295a, 0x001f2455, 0x00191c50, 0x0019184e, 0x0017154a, 0x00151446, 0x00131241, 0x0010113e, 0x000d0e37, 0x00090a31, 0x000b0a30, 0x000c0b2d, 0x0010102e, 0x00141334,
- 0x0016173c, 0x00181940, 0x001e1f46, 0x0025254b, 0x002a2a52, 0x00303056, 0x00353559, 0x0036365b, 0x00333159, 0x002c2c53, 0x00232748, 0x001f263d, 0x001c223b, 0x00181b39, 0x00171739, 0x00151537,
- 0x00171737, 0x005e5e77, 0x00eef0f8, 0x00fafcfe, 0x00fdfff9, 0x00f8f8f8, 0x00fcfcfa, 0x00ccc8c7, 0x0047423b, 0x00171108, 0x001e160d, 0x001b130b, 0x000d0804, 0x00030301, 0x00070c0b, 0x00151b1f,
- 0x003b3737, 0x00494340, 0x004c443e, 0x004a3f36, 0x00402e25, 0x004d3a31, 0x009b8b84, 0x00d5c7c2, 0x00e8dddd, 0x00efe4e9, 0x00ded6dc, 0x009b949f, 0x00272122, 0x00120d07, 0x00161306, 0x0018130b,
- 0x001b0c10, 0x001a0b0d, 0x00130400, 0x00160900, 0x00241800, 0x00362608, 0x003a2b0b, 0x0033290f, 0x00231507, 0x00180c04, 0x00140903, 0x001c1009, 0x00302314, 0x0041311a, 0x00463616, 0x0042340d,
- 0x004c2c21, 0x004e3228, 0x005c443e, 0x006d5854, 0x00766657, 0x00847660, 0x0097896c, 0x009d8d6e, 0x00c7b09b, 0x00f6e2d3, 0x00fbf4ec, 0x00f7f4fd, 0x00f3f8f9, 0x00f9f5fb, 0x00c4c5c0, 0x0072736a,
- 0x00373931, 0x00252720, 0x0012120f, 0x000f0d0d, 0x00080608, 0x00050609, 0x00040607, 0x00040400, 0x000a0300, 0x00150b00, 0x0026180a, 0x00332313, 0x00412f21, 0x003e2f21, 0x00312415, 0x001f1508,
- 0x0064625e, 0x00d8d5d2, 0x00fcf9f8, 0x00fefdfc, 0x00fafbfa, 0x00fdfffe, 0x00fcfefe, 0x00fcfefe, 0x00c7cccd, 0x00525758, 0x000b0f15, 0x000b0d1a, 0x000c0e1a, 0x000a0e16, 0x00070c11, 0x00060b0f,
- 0x00060d0f, 0x000a1014, 0x0010151c, 0x0010151e, 0x000d111c, 0x000d111c, 0x000c101b, 0x00131721, 0x0015131b, 0x000d0a10, 0x000b060b, 0x0009060b, 0x0004030a, 0x00060910, 0x00363a43, 0x0091959f,
- 0x00d3dce9, 0x00d8dde9, 0x00dcdfec, 0x00e6e2f4, 0x00cbc4d9, 0x00a89eb4, 0x00a59cae, 0x00b8b4bf, 0x00c8c8d0, 0x00c1c3c7, 0x00bbc1c6, 0x00bec7d1, 0x00c0cbd7, 0x00bfcbd7, 0x00bfcad7, 0x00becad6,
- 0x00c0c9d8, 0x00bec7d3, 0x00b2bec8, 0x00aab5c1, 0x00a2abb9, 0x00a1a2af, 0x00aaa7b3, 0x00afa8b7, 0x00a9a3b6, 0x00a69fb1, 0x00a49dae, 0x00a29ca8, 0x009b9699, 0x00999690, 0x0098978c, 0x009c9c8c,
- 0x00a3816e, 0x008c6f5f, 0x00836a5f, 0x0083726d, 0x00999193, 0x00b2afb6, 0x00a3a1ab, 0x008d8d99, 0x00797485, 0x008d8a99, 0x00ccc0cf, 0x00eccee1, 0x00cbe6ed, 0x00d3e0f4, 0x00e5ebfe, 0x00e4e0e8,
- 0x00f58143, 0x00e94e27, 0x009d3030, 0x0021295a, 0x002a3b9c, 0x001b54b2, 0x001f5abd, 0x002d43b5, 0x002539a0, 0x00234395, 0x00304183, 0x00543a70, 0x009e255f, 0x00c9648d, 0x00f6d4e9, 0x00e9fdfa,
- 0x00e2e8d0, 0x00caccb8, 0x00e2e5d4, 0x00fafbf0, 0x00fcfaf9, 0x00fcfbfc, 0x00fffbfc, 0x00fffbfc, 0x00c3b9bc, 0x00463b3b, 0x00180e08, 0x001a0c05, 0x00130a05, 0x000f0603, 0x000f0900, 0x00170d00,
- 0x00201005, 0x00433539, 0x00918d9a, 0x00878ba7, 0x00536697, 0x004c6694, 0x004b679a, 0x004e69a2, 0x004c68ab, 0x004a64ad, 0x00465fac, 0x004f62b1, 0x005768ab, 0x005b66a0, 0x006a75a4, 0x007c87b1,
- 0x00738ac1, 0x007b92c8, 0x0093adde, 0x00a3beec, 0x0093abce, 0x00475977, 0x0000061a, 0x00010a1b, 0x00000812, 0x00090e16, 0x0006050f, 0x00050112, 0x0008010d, 0x000c0609, 0x0018120e, 0x00201a0f,
- 0x002f2517, 0x002f2517, 0x00292011, 0x0024160c, 0x001c1009, 0x00100e19, 0x00091022, 0x000c1328, 0x00111737, 0x0014183e, 0x00181b44, 0x001c1f48, 0x00212548, 0x00232843, 0x0020243b, 0x00191d31,
- 0x000e1622, 0x00091115, 0x000c150c, 0x001b250f, 0x0038421a, 0x00555b2f, 0x006a6e3e, 0x006c6e3d, 0x00605f39, 0x00565430, 0x00484727, 0x00393b22, 0x00292917, 0x00242218, 0x001e1b18, 0x001f1c21,
- 0x0016121a, 0x00100b10, 0x000d0b08, 0x00141009, 0x00101000, 0x000d0d0e, 0x00090d16, 0x000c1117, 0x00171c26, 0x002d303b, 0x004a4a56, 0x005f5e68, 0x0079787f, 0x008f8d90, 0x00aba9aa, 0x00bdbaba,
- 0x00e3d3f4, 0x00f0ebe6, 0x00fbfee4, 0x00feffdf, 0x00fefdfd, 0x00fcf7fd, 0x00fbf7fe, 0x00fefdf9, 0x00fcfeec, 0x00fbfaf4, 0x00f7fdfa, 0x00f6fff9, 0x00fffeff, 0x00fffafe, 0x00fef9fe, 0x00fff9fd,
- 0x00fafdfa, 0x00fafffe, 0x00fafdfe, 0x00fbf6fe, 0x00faeafa, 0x00f1eaeb, 0x00ebebe0, 0x00edebe2, 0x00d9d6d3, 0x00b2afaf, 0x007c787b, 0x004e4a4d, 0x001a1915, 0x003e4034, 0x00c5c9b8, 0x00f6fbe7,
- 0x00fcfcf5, 0x00fffefa, 0x00fbfbf8, 0x00f8f9fb, 0x0090919d, 0x00404453, 0x00323a47, 0x00293341, 0x00202c36, 0x002c3941, 0x003e474f, 0x004b5054, 0x0051565e, 0x00545964, 0x00565a6a, 0x00525668,
- 0x0041475a, 0x003c4055, 0x00333c4b, 0x0035404d, 0x00404c55, 0x00434250, 0x00181520, 0x0003030e, 0x00030a0a, 0x00000906, 0x00020701, 0x00040601, 0x000d0300, 0x001a0803, 0x004a3022, 0x007d5b4d,
- 0x00a05d37, 0x00a56944, 0x00c28f69, 0x00bc9570, 0x005c452a, 0x00382a1b, 0x005b5751, 0x005f626c, 0x0049526e, 0x002e385a, 0x00203363, 0x00102c72, 0x0000226e, 0x00073482, 0x00144385, 0x003d5d8a,
- 0x00af9a9a, 0x00efc5ab, 0x00f6c399, 0x00fcc89e, 0x00eec9a7, 0x00dbb6a1, 0x00977565, 0x00543a34, 0x00443b47, 0x002d2d3f, 0x00353e56, 0x003b4762, 0x004b5367, 0x00565965, 0x00615a61, 0x0063585a,
- 0x00585666, 0x00535261, 0x003e414d, 0x00333a42, 0x00384146, 0x00475056, 0x00555c64, 0x005e626d, 0x005d5f6c, 0x005f5d6c, 0x005f5d6c, 0x004e5064, 0x00363c4a, 0x00292f3d, 0x002e353f, 0x0039424b,
- 0x004c535b, 0x005a5f68, 0x00656771, 0x0065656f, 0x005f5965, 0x00555564, 0x003b404e, 0x00262c38, 0x0018212b, 0x00202a31, 0x00333b41, 0x003f464c, 0x0053575d, 0x0062636a, 0x0069666d, 0x0068636a,
- 0x00535568, 0x00434558, 0x00282d40, 0x00182031, 0x00161d2d, 0x00202834, 0x00313940, 0x0044494d, 0x005c5b56, 0x006d6a64, 0x00717370, 0x00666b75, 0x004d5561, 0x00383f4e, 0x00222d38, 0x0014212c,
- 0x00162129, 0x0020272f, 0x0033383d, 0x00484b4b, 0x00666665, 0x00707279, 0x006e727c, 0x005c616c, 0x003f4555, 0x002f3745, 0x00212835, 0x001a202a, 0x001b1f26, 0x002a2a2f, 0x00434143, 0x00555252,
- 0x005e5f63, 0x0066676a, 0x00a9a9aa, 0x00f5f4f6, 0x00fdfcfb, 0x00fefcfe, 0x00fcfcfb, 0x00fefefc, 0x00ccccca, 0x008c8e8c, 0x00a8a5a2, 0x00ddd3d5, 0x00f4f4f6, 0x00f2f6fe, 0x009ba7b7, 0x00384f61,
- 0x00233f54, 0x00234153, 0x00214452, 0x00234651, 0x00264750, 0x0022474c, 0x001e484d, 0x0020474e, 0x001e444b, 0x001f444b, 0x0021434c, 0x0022414c, 0x00213c4a, 0x001f3847, 0x001c3442, 0x001a313f,
- 0x001f273d, 0x001b263a, 0x00172437, 0x00162737, 0x00182b3a, 0x00192f3d, 0x001a3441, 0x001c3845, 0x001d3d48, 0x001f404b, 0x0020414d, 0x0020434f, 0x001f434f, 0x001f434f, 0x001f4350, 0x001f434f,
- 0x00214450, 0x00214550, 0x00214550, 0x001f424e, 0x001a3d4b, 0x001c404c, 0x001e424b, 0x002b4e54, 0x004c6970, 0x006b868c, 0x008ba1a6, 0x00b0c1c4, 0x00dee9ea, 0x00f4fbfb, 0x00f8fefd, 0x00fbffff,
- 0x00fefcfe, 0x00fffbfc, 0x00fffafa, 0x00fefaf9, 0x00fdfcfa, 0x00fefdfc, 0x00fffdfd, 0x00fdfafb, 0x00fff9ff, 0x00fffbff, 0x00fcfaf9, 0x00fefcf9, 0x00f6f6f5, 0x00e6e8e9, 0x00bec2c1, 0x009da1a0,
- 0x0070737c, 0x00525760, 0x0030363e, 0x00212634, 0x00181f2c, 0x0016203d, 0x00192b52, 0x00193057, 0x00243d68, 0x002f4e7c, 0x0033568a, 0x003b639a, 0x00406daa, 0x004677b4, 0x00487bbb, 0x00487fc1,
- 0x004c87c1, 0x00528ecc, 0x005493d4, 0x005092db, 0x004e91e1, 0x005592e2, 0x005491dd, 0x005790d5, 0x0079a6df, 0x0084ace2, 0x00607d9d, 0x00373940, 0x0016171b, 0x001a1e22, 0x001b1d1f, 0x001e1d1f,
- 0x00211d1f, 0x00231e20, 0x00211f1c, 0x00262124, 0x002d2726, 0x00422b1f, 0x0056351b, 0x006e4126, 0x008b4827, 0x00974b26, 0x009d4a24, 0x009c4521, 0x00914425, 0x00834027, 0x006d321e, 0x005a2817,
- 0x00c1c0b0, 0x004b4536, 0x00473f30, 0x00474132, 0x00474131, 0x00443f2b, 0x0045412c, 0x0046402c, 0x004a412d, 0x0046422c, 0x00474230, 0x0043412f, 0x00463e2c, 0x00443c26, 0x00392f1d, 0x002c261a,
- 0x000f120a, 0x00060704, 0x00070706, 0x001a1813, 0x00241b13, 0x00221509, 0x002f1d07, 0x00442c15, 0x005b422b, 0x00694f35, 0x00725438, 0x00745231, 0x0067411a, 0x0071471b, 0x00ad8152, 0x00c89a69,
- 0x00c7935d, 0x00bc8b55, 0x00b07f4d, 0x00a27344, 0x009e6f42, 0x009f7043, 0x00a17044, 0x00a6754a, 0x00be8b61, 0x00cc966d, 0x00c9916e, 0x00c48b6a, 0x00c29055, 0x00b18849, 0x006a5020, 0x00352b18,
- 0x002e3971, 0x004150a7, 0x004456b9, 0x004252b1, 0x00484f94, 0x002b3b62, 0x00010c21, 0x00070d19, 0x004d493b, 0x007a6c51, 0x007d663d, 0x007c612f, 0x007e5527, 0x007c532a, 0x00734926, 0x007d4f34,
- 0x00616584, 0x007683a6, 0x00899ac8, 0x00829cd2, 0x007b98d9, 0x007792d4, 0x007691d5, 0x00758ed8, 0x00758cd9, 0x00738bdb, 0x00708ce2, 0x006d8be8, 0x006f8be2, 0x006e89db, 0x006c88d7, 0x007088da,
- 0x007086db, 0x006e84db, 0x006f84e0, 0x007086dd, 0x006d87d7, 0x006c82d2, 0x00697dcb, 0x00637bbf, 0x006173ab, 0x005c6da2, 0x00576396, 0x00555c8c, 0x00656483, 0x005b585f, 0x003c3927, 0x003d3a14,
- 0x00372f1a, 0x00342d1a, 0x00312b1a, 0x002d2818, 0x00272115, 0x00211c0f, 0x001d190c, 0x001c190f, 0x001e1c14, 0x00201f15, 0x00212218, 0x00202418, 0x00202418, 0x0027261a, 0x00302b1f, 0x00352e22,
- 0x004a4131, 0x00554b38, 0x005d5440, 0x00544e36, 0x00453d24, 0x00545041, 0x00c6c4c0, 0x00fbf7f9, 0x00fffbff, 0x00fdfcfe, 0x00fefffd, 0x00f0f3f0, 0x00787a7d, 0x00141420, 0x00222035, 0x00312d49,
- 0x00363b60, 0x003a4067, 0x003c436c, 0x003a436b, 0x00424b70, 0x00444766, 0x004d495f, 0x00665c6b, 0x00826e6f, 0x00907773, 0x00a28d90, 0x00a7a4b6, 0x00a6afd5, 0x0090a7db, 0x007fa7e9, 0x0073a9f5,
- 0x0068a7f7, 0x0068a6fb, 0x006ea3fe, 0x006f9efb, 0x00769af5, 0x006a99f8, 0x005f93fa, 0x00588efa, 0x005789fb, 0x005588f6, 0x005186ef, 0x004f85e8, 0x005389e9, 0x00568aee, 0x005688f4, 0x005687f9,
- 0x003f7adc, 0x00457bd0, 0x0097b7fb, 0x00d0dafc, 0x00d9cde0, 0x00b5bdde, 0x00809fd0, 0x004c8ad3, 0x003074c4, 0x004173b9, 0x004a6aa7, 0x004e5785, 0x004e5587, 0x004e5485, 0x004f5684, 0x004c5380,
- 0x00494f79, 0x00444972, 0x003e426c, 0x003a3e68, 0x00383d67, 0x00383d60, 0x003a3e5e, 0x003b405f, 0x00414663, 0x00414763, 0x00424a66, 0x00444c6b, 0x00464f73, 0x00485079, 0x0049517d, 0x004a517e,
- 0x00464e7c, 0x00424a77, 0x00414977, 0x00424b79, 0x00454e7c, 0x00454e7c, 0x0047517e, 0x0049537e, 0x004b537d, 0x004b547b, 0x004c547b, 0x004b527d, 0x004a517f, 0x00474e7c, 0x00424978, 0x003d4575,
- 0x00363c70, 0x00303769, 0x002c3163, 0x00272c5e, 0x0020265a, 0x001c1f52, 0x001b1b4d, 0x00181848, 0x00161745, 0x00161741, 0x0013153c, 0x000f1237, 0x000f1239, 0x000f1239, 0x0011133a, 0x0012133c,
- 0x00151a3e, 0x00161a41, 0x001a1e46, 0x001f234c, 0x00252754, 0x002a2b58, 0x002d2e59, 0x002d2e59, 0x002b2b55, 0x0023244c, 0x001f2142, 0x001c2037, 0x00171c34, 0x00161835, 0x00171737, 0x00151334,
- 0x001f1c3b, 0x00767488, 0x00f8f7ff, 0x00fafafa, 0x00fefefa, 0x00f9faf8, 0x00fbfdfa, 0x00c2c2bc, 0x002e281c, 0x001c140a, 0x001f1607, 0x001c1403, 0x00100b03, 0x00030301, 0x00090e09, 0x0019201e,
- 0x003d393e, 0x00454040, 0x0048413c, 0x0041382c, 0x00342718, 0x00372c1e, 0x007b726a, 0x00bab1af, 0x00d8d1e0, 0x00dfd8ee, 0x00d0cbdb, 0x0096928f, 0x003a322b, 0x001b1009, 0x00251810, 0x002d1c11,
- 0x0026170a, 0x001e1003, 0x00170a01, 0x00120800, 0x00201706, 0x002b2001, 0x003e3312, 0x003e381c, 0x00352e24, 0x00282220, 0x00181415, 0x00161011, 0x002d241d, 0x00463828, 0x004f3d27, 0x004e3c21,
- 0x0053302b, 0x004c2d2c, 0x005e4549, 0x00604e51, 0x0074676a, 0x009b928b, 0x00b2a99f, 0x009f9289, 0x00d4c0b4, 0x00f9e9dc, 0x00fcf0ea, 0x00f7f5f2, 0x00fbf4f0, 0x00fdfcf5, 0x00cac7c0, 0x006e6b61,
- 0x00252319, 0x0017150e, 0x000c0a05, 0x000a0705, 0x000a0709, 0x00060708, 0x00030503, 0x00050301, 0x00100903, 0x001c1208, 0x00291b10, 0x002d1f10, 0x003b2f1e, 0x00362c1c, 0x002e2716, 0x00221c0c,
- 0x00757374, 0x00e2e1e1, 0x00fcfcfb, 0x00fefdfc, 0x00fefdfc, 0x00fdfdfc, 0x00fdfdfd, 0x00fdfffe, 0x00c7cacb, 0x00515555, 0x000a0e13, 0x00060a16, 0x000a101a, 0x000a0f18, 0x00090d15, 0x000a0e15,
- 0x000b1117, 0x000e141b, 0x000f141d, 0x000e131c, 0x000a0d17, 0x000a0d17, 0x000c0d17, 0x000c0d16, 0x00191622, 0x001c1824, 0x00110914, 0x000c0309, 0x00100607, 0x002e2320, 0x008b807a, 0x00cec3bb,
- 0x00cddcb4, 0x00d1d9bd, 0x00dedccd, 0x00ddd6d2, 0x00b2a5ae, 0x00958b95, 0x00afa7b0, 0x00c0bec9, 0x00c0c7cc, 0x00bcc7c7, 0x00b4c2c2, 0x00b9c5ca, 0x00c1ccd3, 0x00c3cbd3, 0x00c0c7cf, 0x00c0c6ce,
- 0x00b3b7bc, 0x00a1a6ac, 0x0094939c, 0x00a29fa9, 0x00b1acb3, 0x00a7a7a8, 0x00b0aeaf, 0x00a7a6aa, 0x009f98a5, 0x009e96a2, 0x009c929c, 0x009a8f93, 0x009c908a, 0x00938678, 0x00837660, 0x007d7156,
- 0x0084674d, 0x008b7059, 0x00927764, 0x007a6455, 0x0076665c, 0x008f857e, 0x00a19997, 0x009a9596, 0x00757576, 0x00818085, 0x00c9c7d1, 0x00d8d9ea, 0x00dde0f5, 0x00cfe1eb, 0x00e5f0ec, 0x00e9d8c7,
- 0x00f46b47, 0x00dc4a32, 0x008e2625, 0x002d1f32, 0x00233b7c, 0x00285290, 0x0024539d, 0x0028439c, 0x002339a1, 0x002c389f, 0x00373396, 0x005a3d90, 0x00a74d85, 0x00c05d78, 0x00ea8c91, 0x00f3ab98,
- 0x00f1ded5, 0x00f4eae1, 0x00f8eee8, 0x00fcf7f4, 0x00fcfdfe, 0x00f7f8f9, 0x00fbfcfc, 0x00fbfdfe, 0x00aba2a7, 0x00282020, 0x000b0504, 0x00070600, 0x00060500, 0x00080800, 0x00110d06, 0x00171205,
- 0x00251b0d, 0x00332820, 0x00605353, 0x006a6066, 0x004a4351, 0x0031364f, 0x00293455, 0x002c3758, 0x00303658, 0x002d3553, 0x002c3352, 0x002b3551, 0x00363d5b, 0x00353e5d, 0x00373f65, 0x00394469,
- 0x00424e72, 0x005d6787, 0x007c85a4, 0x00a1abc6, 0x0097a0b7, 0x00474e62, 0x00020616, 0x00030b19, 0x00030418, 0x000b0b1d, 0x00050517, 0x00010416, 0x0004030b, 0x000e0806, 0x0022160e, 0x002e2112,
- 0x003e2a15, 0x003b2914, 0x00342214, 0x0028180d, 0x001d0c09, 0x000c0b12, 0x00090c1d, 0x000b0d21, 0x000f132f, 0x00121735, 0x00121835, 0x00131a35, 0x001b2136, 0x001f2432, 0x001c1f2a, 0x00181c22,
- 0x000b101a, 0x00070c0f, 0x000d120c, 0x001d2211, 0x003f451f, 0x00555a2e, 0x00606436, 0x005c5f30, 0x0052512f, 0x00454423, 0x0036381b, 0x00262d18, 0x001f2315, 0x001d1e16, 0x001a1713, 0x001c1719,
- 0x00171214, 0x00131110, 0x00191614, 0x001a1c16, 0x001a1d14, 0x0015170d, 0x0014120b, 0x00110f0c, 0x001a141b, 0x00241f27, 0x002b2730, 0x002b262f, 0x002e2930, 0x00312c30, 0x003d383a, 0x00474243,
- 0x00646977, 0x00898c98, 0x00cbc5dc, 0x00e1d7ee, 0x00eddbf5, 0x00f9f0f6, 0x00fbf6f9, 0x00fefef5, 0x00fffef3, 0x00fafbfa, 0x00f9fefd, 0x00f2fff8, 0x00fbfcf4, 0x00fcfef5, 0x00fdfcf3, 0x00fdfaf7,
- 0x00fafafe, 0x00fafafb, 0x00fefbfe, 0x00fdf9fa, 0x00fff7ff, 0x00fafaf8, 0x00f7f8f5, 0x00f7f4f3, 0x00ebe9e6, 0x00d6d5d0, 0x00c0bfba, 0x00a0a099, 0x007a7b73, 0x007a7c74, 0x00c4c7c0, 0x00f4f7f1,
- 0x00fbfcf5, 0x00fafcf8, 0x00fcfefb, 0x00fafefe, 0x00a2a6ae, 0x00444a55, 0x00373e49, 0x00363d4b, 0x0030394a, 0x003a4453, 0x00474e5b, 0x0051565e, 0x0050545e, 0x00545864, 0x005a5c6c, 0x00555869,
- 0x00474a5c, 0x00464a58, 0x00474b5b, 0x004a4f5d, 0x00535665, 0x00465859, 0x001c302c, 0x00020e08, 0x00040505, 0x00090200, 0x001d0c04, 0x002b1200, 0x00532610, 0x00683314, 0x00935b3a, 0x00bc7f61,
- 0x00c19461, 0x00c29b69, 0x00c89e70, 0x00b48c5f, 0x008d623e, 0x00674023, 0x00694737, 0x00745c5d, 0x00524f71, 0x00262f5e, 0x00102359, 0x00021d57, 0x000f3577, 0x00204e8e, 0x002c568d, 0x0047668b,
- 0x00aba4a7, 0x00e9d3c2, 0x00f1c7aa, 0x00f8c49a, 0x00f5c098, 0x00e4c6b2, 0x00a7948f, 0x0060555b, 0x003a3b50, 0x00353b53, 0x0040465f, 0x004b5163, 0x00545661, 0x005a5c64, 0x005a5e64, 0x00545b63,
- 0x004f535b, 0x00464850, 0x003e3e46, 0x003c3d42, 0x00494c51, 0x0054595d, 0x005b6167, 0x005f656d, 0x005e6270, 0x00575c69, 0x004f5364, 0x003a3f52, 0x00282d3f, 0x00252b39, 0x00303743, 0x00414751,
- 0x004f545b, 0x005c5f67, 0x0065666d, 0x0066656e, 0x005c5a64, 0x00495060, 0x00374254, 0x00222b3d, 0x00141c2b, 0x001c2430, 0x00313940, 0x003d4448, 0x0054595b, 0x00646568, 0x00717073, 0x00747073,
- 0x005b6473, 0x004b5362, 0x00323b4b, 0x00212c3c, 0x00192332, 0x001e2633, 0x002f353f, 0x0044454d, 0x005d5a5e, 0x006d6968, 0x00787475, 0x006c706f, 0x00545a5e, 0x003b464c, 0x002c3746, 0x001f2b3b,
- 0x0015222f, 0x0018222e, 0x00292e38, 0x00423f46, 0x0060585c, 0x0066656b, 0x00656870, 0x00585e68, 0x0045495c, 0x00373d50, 0x00262d3f, 0x00161d2c, 0x00191f28, 0x00222629, 0x003a3c3c, 0x004f504e,
- 0x005f5d62, 0x00646267, 0x009f9ea4, 0x00efeff2, 0x00fefeff, 0x00fcfdfc, 0x00fdfdfd, 0x00fdfefc, 0x00d3d4d5, 0x00989593, 0x009d9d98, 0x00cbccc6, 0x00f1f0f1, 0x00fbfcfd, 0x00b4c0cc, 0x00506271,
- 0x001e4553, 0x0018444f, 0x001d4753, 0x001e4452, 0x002a4554, 0x0023464d, 0x0020474a, 0x0021464a, 0x0022434b, 0x0022434b, 0x0024414b, 0x00253f4a, 0x00253c47, 0x00223844, 0x001f3341, 0x001c2f3f,
- 0x001d2839, 0x001b2638, 0x00182537, 0x00162737, 0x00152b39, 0x00132f3b, 0x0013323f, 0x00153544, 0x001a3d4b, 0x001e4250, 0x001e4351, 0x001b414e, 0x001e4450, 0x001c414d, 0x001c414c, 0x001f424d,
- 0x00204147, 0x00214045, 0x001f3d3f, 0x00234143, 0x00355154, 0x004c6267, 0x006c7d81, 0x0090a0a2, 0x00b8c4c8, 0x00d5dfe1, 0x00ecf4f5, 0x00f1f7f7, 0x00f9fefd, 0x00f9fdfc, 0x00fbfefd, 0x00fcfffd,
- 0x00fafafc, 0x00fdfcfd, 0x00fffefe, 0x00fdfcfa, 0x00fafbf8, 0x00f9fcf8, 0x00fafcf9, 0x00fcfcfa, 0x00fcf9fd, 0x00f7f2f7, 0x00ded9dc, 0x00c2c1c0, 0x00989a9b, 0x00747779, 0x00444849, 0x00222625,
- 0x00161618, 0x001b232b, 0x00222c3f, 0x001a324e, 0x00143464, 0x00103865, 0x0015406c, 0x001d4778, 0x002d568e, 0x0037669e, 0x003d71ad, 0x003f79b6, 0x003d7dc0, 0x004084c9, 0x00468ad2, 0x00488dd7,
- 0x00518ecc, 0x00689fda, 0x0089b7eb, 0x008db1e3, 0x0092add8, 0x008ba7cf, 0x0084a1cb, 0x007398c6, 0x006592c9, 0x006da2dd, 0x0076a5db, 0x004e6e85, 0x00192734, 0x00191c1f, 0x001f1b19, 0x001d1b16,
- 0x00171e1f, 0x00141e21, 0x00171d21, 0x001d1e19, 0x002e1f15, 0x003d2210, 0x00552e1a, 0x006d3a22, 0x008c4223, 0x0099451f, 0x00a0451d, 0x00a0421a, 0x0095401f, 0x00863d21, 0x00703019, 0x005c2610,
- 0x00bfbcac, 0x00484232, 0x00443c2c, 0x00473f2f, 0x004a4031, 0x00463c2a, 0x00463e29, 0x00453e29, 0x00483e2a, 0x00454029, 0x0044402b, 0x00404030, 0x00453b28, 0x00463923, 0x0041331c, 0x0038301d,
- 0x001e251d, 0x00121612, 0x000a0a06, 0x001b140e, 0x0026170a, 0x003a260a, 0x00513815, 0x005f4124, 0x006a4a2d, 0x00755536, 0x007b5838, 0x007b5532, 0x006d441b, 0x007c5123, 0x00b38655, 0x00c89a65,
- 0x00c89761, 0x00c6935d, 0x00c5925d, 0x00bc8956, 0x00b27f4d, 0x00ae7c49, 0x00a97747, 0x00b27f53, 0x00c99669, 0x00d39f74, 0x00cd9770, 0x00c88d73, 0x00c39059, 0x00b58d50, 0x00715827, 0x00342915,
- 0x00283265, 0x003e50a2, 0x003d52b2, 0x003b50ab, 0x00404e94, 0x00263b68, 0x00041130, 0x00020b1c, 0x00464739, 0x00756c52, 0x007e6e46, 0x007c6738, 0x007e643c, 0x007d6343, 0x00745e44, 0x00826b5b,
- 0x00829bc7, 0x00859fcb, 0x00829ac8, 0x007e98cb, 0x008198ce, 0x007a93cd, 0x00778eca, 0x00748bce, 0x007388d2, 0x007488d6, 0x007189d5, 0x006d88d8, 0x006f8bcc, 0x00738ccb, 0x007892c8, 0x007a91ca,
- 0x007a8fd0, 0x00798fd3, 0x007c8fd3, 0x007b92d0, 0x007a93ca, 0x00748bd6, 0x006e82cc, 0x00657bbc, 0x005f76ac, 0x00667bb4, 0x007080bb, 0x007580bf, 0x00777da8, 0x00696e79, 0x00525446, 0x00535530,
- 0x005a503c, 0x00554c38, 0x00504734, 0x004b4232, 0x00443c2b, 0x003b3422, 0x00373120, 0x00373123, 0x00353223, 0x00373126, 0x00363326, 0x00303223, 0x002e2f21, 0x00332f21, 0x003b3324, 0x00413527,
- 0x00524632, 0x005b513a, 0x00665c45, 0x005c5539, 0x004a4427, 0x005a5746, 0x00cbc8c1, 0x00fbf9f9, 0x00fdfafe, 0x00fdfbfe, 0x00fefffd, 0x00eff2ed, 0x00787a7b, 0x000f111a, 0x001e2033, 0x002c2b49,
- 0x002f3657, 0x00343a5e, 0x00363f65, 0x00364167, 0x003c4668, 0x00474c66, 0x00504c5b, 0x005f555b, 0x006a5144, 0x005f422b, 0x00604536, 0x006e646a, 0x00878baa, 0x00869ac9, 0x007a9ee3, 0x00689df1,
- 0x00619ffe, 0x0060a0fe, 0x00669cfd, 0x006699f7, 0x006c91ed, 0x006b9bf1, 0x006899f3, 0x006397f4, 0x005a90f8, 0x005289ef, 0x004e87e7, 0x004c87e0, 0x004782da, 0x00508ae6, 0x00558df2, 0x004d83f1,
- 0x004382d7, 0x005e8ed7, 0x00bfd7fa, 0x00d2c8dc, 0x00cd9f92, 0x00ccb6bc, 0x00c5cceb, 0x006ea0e1, 0x003277d1, 0x003b6cbe, 0x004161a4, 0x00485383, 0x004a5384, 0x00485181, 0x0049537f, 0x004b517e,
- 0x00494f77, 0x00464b71, 0x0041456b, 0x003d4266, 0x003b4066, 0x00393f60, 0x003a3f5d, 0x003b405e, 0x00404560, 0x00424861, 0x00444c64, 0x0046506a, 0x00495375, 0x004b547d, 0x004b5382, 0x004b5384,
- 0x0048507c, 0x00424a78, 0x003e4675, 0x00404879, 0x00404779, 0x0041487a, 0x00454c7b, 0x00484f7d, 0x00475279, 0x00485579, 0x004b557b, 0x004b547d, 0x004a527e, 0x0047507c, 0x00444c78, 0x00404a75,
- 0x003c4676, 0x00374170, 0x00303769, 0x002c3366, 0x00232b5f, 0x0021265a, 0x00202153, 0x001d1f4e, 0x001a1d48, 0x001b1e46, 0x001b1d42, 0x00181b3f, 0x00181c42, 0x00171c42, 0x00171b43, 0x00161a45,
- 0x00161d42, 0x00161d43, 0x00181e47, 0x001c214c, 0x00212552, 0x00252854, 0x00272953, 0x00262850, 0x00222449, 0x001d1f42, 0x00191b38, 0x00171b30, 0x00141730, 0x00121331, 0x00141336, 0x00120f33,
- 0x00282441, 0x008c899d, 0x00fbf9fd, 0x00fdfbfb, 0x00fefef6, 0x00fcfdfb, 0x00f8fbf9, 0x00b4b6b0, 0x001c160c, 0x001b1408, 0x00261c0a, 0x001f1605, 0x00170f06, 0x000d0b05, 0x00121410, 0x001e2320,
- 0x003a3438, 0x00413c3b, 0x00423b35, 0x00362d21, 0x00291f10, 0x00231c0d, 0x00615b54, 0x00a09a9a, 0x00ccc5d9, 0x00d9d3ed, 0x00d6d1e4, 0x00b5afaf, 0x00574d4a, 0x00281b14, 0x002f2016, 0x003a281b,
- 0x0030200f, 0x00271a0a, 0x001d1205, 0x000e0702, 0x00262116, 0x00554d41, 0x0081776d, 0x00978e8d, 0x0097929a, 0x008a8794, 0x00757382, 0x006a6774, 0x00625b5c, 0x00685d54, 0x00685847, 0x006c5a42,
- 0x00644842, 0x00573f38, 0x00584443, 0x00534543, 0x00706767, 0x00b2aea8, 0x00d5cfcd, 0x00bfb6b3, 0x00ddd0c7, 0x00f4ebe3, 0x00fdf6f2, 0x00fef7f2, 0x00faf8f0, 0x00e7e2d7, 0x009d988d, 0x0051503f,
- 0x00211d0f, 0x0018150c, 0x00120e08, 0x000e0a07, 0x000c080a, 0x00070506, 0x00030300, 0x000a0604, 0x0018110a, 0x0022180f, 0x00281b12, 0x00291e0e, 0x00322817, 0x002c2514, 0x00292411, 0x0027220e,
- 0x008b8b8b, 0x00eaeaea, 0x00fbfcfb, 0x00fafbfa, 0x00fffefe, 0x00ffffff, 0x00fdfcfc, 0x00fffeff, 0x00c9cacb, 0x00575958, 0x000e1113, 0x00050a13, 0x00090f16, 0x00080e15, 0x00070d14, 0x00080e15,
- 0x000b1119, 0x000a1017, 0x00090e16, 0x00070d14, 0x00090c15, 0x000a0c15, 0x00101019, 0x000d0d16, 0x00201e28, 0x002b2733, 0x001c1521, 0x0010070c, 0x00302423, 0x006e6059, 0x00bbaea0, 0x00d5c6b4,
- 0x00d6deb3, 0x00d8dabb, 0x00d9d3bf, 0x00c2bbb2, 0x00a3959b, 0x00aaa0aa, 0x00c7bec9, 0x00c6c2d0, 0x00bac5ca, 0x00bac9c9, 0x00b6c6c6, 0x00b8c6ca, 0x00b7c2c8, 0x00b7c1c5, 0x00b4bbbf, 0x00afb5b8,
- 0x009a9a9d, 0x007e7f82, 0x00918e92, 0x00aca8ac, 0x00b6afb4, 0x00b4b3b1, 0x00b4b4af, 0x009e9d9b, 0x00908c92, 0x00918c91, 0x008d848a, 0x008d8183, 0x008e8079, 0x0088796a, 0x007a6b54, 0x00736447,
- 0x0072593e, 0x00775e47, 0x0068503c, 0x004d3926, 0x00675749, 0x00887c70, 0x009b9188, 0x008a827d, 0x00676463, 0x00747273, 0x00b8b9c0, 0x00cbd4e6, 0x00d3cbe5, 0x00c0d0d6, 0x00dde8dd, 0x00dac7aa,
- 0x00e15642, 0x00c23f2f, 0x0070150b, 0x00190a10, 0x000a2151, 0x001c396d, 0x001d3d75, 0x001a397e, 0x001a318c, 0x00282f90, 0x003a308f, 0x0064479c, 0x00a15d8b, 0x00a14658, 0x00aa3932, 0x00c74930,
- 0x00c09f9d, 0x00e9d1cf, 0x00fdf4f2, 0x00fdfcfa, 0x00fdfdfe, 0x00fafdfd, 0x00fbfefe, 0x00eff2f2, 0x00858182, 0x00171112, 0x00050101, 0x00000100, 0x00040500, 0x00090701, 0x00141006, 0x001f190b,
- 0x0030241b, 0x00382a23, 0x00382720, 0x00594a40, 0x0047362e, 0x000c0810, 0x0000000f, 0x0000000e, 0x0002010a, 0x00030208, 0x0002010a, 0x0007050b, 0x00080914, 0x00040814, 0x00030c1d, 0x000c1829,
- 0x00151932, 0x002b2e43, 0x004c4d63, 0x00696f7e, 0x006f7182, 0x003d3f4c, 0x00080a17, 0x00080a18, 0x0008081d, 0x000c0b21, 0x00030419, 0x00010718, 0x0008080e, 0x00130d09, 0x00271b10, 0x00352514,
- 0x00432e17, 0x00412b17, 0x00392515, 0x002e1911, 0x001e0e09, 0x00100a15, 0x000a0a1e, 0x000d0a24, 0x000c102a, 0x000d1330, 0x000c132e, 0x000d152c, 0x00141b2d, 0x001a1e29, 0x00191a20, 0x0017171a,
- 0x000c101a, 0x00090d11, 0x000e110b, 0x00202412, 0x00404520, 0x0053582d, 0x005d6134, 0x005b5e32, 0x0055572c, 0x004b4c26, 0x003d4021, 0x002d351f, 0x00282d1e, 0x0024251c, 0x001b1812, 0x00181411,
- 0x00191712, 0x00181513, 0x001b1b1a, 0x001e211b, 0x001b211b, 0x001e1e13, 0x0018140b, 0x00151009, 0x001a1216, 0x0020191f, 0x00231e27, 0x0025212a, 0x00201c24, 0x0018151a, 0x00100d10, 0x000b080a,
- 0x00020615, 0x00181b33, 0x00706b8d, 0x007f769b, 0x00a691ad, 0x00d2c4cb, 0x00ede2de, 0x00f5efe3, 0x00edeaf1, 0x00edeef8, 0x00f5fbfc, 0x00f5fbff, 0x00fcfdf8, 0x00fffff8, 0x00fdfbf2, 0x00fcf7f3,
- 0x00fff8fe, 0x00fcfafd, 0x00fefbfd, 0x00fefdfb, 0x00fbfcf5, 0x00fcfdfa, 0x00fffdfd, 0x00fefefe, 0x00fcfdfa, 0x00fdfef8, 0x00fefff8, 0x00f9fbf2, 0x00edefe7, 0x00e5e6e1, 0x00edeeed, 0x00f8f9fa,
- 0x00fbfff8, 0x00f9fcf6, 0x00fafcfa, 0x00fbfffe, 0x00b4b8bd, 0x00545a63, 0x00424953, 0x004b505e, 0x00454d60, 0x004e5568, 0x004e5366, 0x00525664, 0x00515464, 0x00505261, 0x00505261, 0x004e505f,
- 0x004f5061, 0x00525462, 0x00595969, 0x00565969, 0x00585a69, 0x00495c66, 0x00364951, 0x00101a21, 0x00040204, 0x000c0101, 0x002d1706, 0x0068492c, 0x00a77752, 0x00c48b63, 0x00d99e6f, 0x00d99d6a,
- 0x00ca9861, 0x00c29665, 0x009b6f47, 0x007f5934, 0x008e6749, 0x00916f57, 0x007d5c4f, 0x00786161, 0x00484760, 0x0011193f, 0x00000d3b, 0x00092155, 0x00274a7f, 0x00396093, 0x004b719d, 0x00537292,
- 0x00999ba1, 0x00cfc2b8, 0x00e1c6b0, 0x00eac4a8, 0x00f3caa9, 0x00ebd3c7, 0x00cbc2c1, 0x00928d98, 0x004c556b, 0x00454e67, 0x00515971, 0x00575a6c, 0x005f5d67, 0x005a5c64, 0x004f565e, 0x0044505c,
- 0x00373e46, 0x0030353d, 0x00393a42, 0x0044444a, 0x0055555a, 0x005e5f64, 0x0063656b, 0x0065686f, 0x005c616e, 0x004d5562, 0x00434c5b, 0x00333a4f, 0x00222839, 0x00222838, 0x00303740, 0x003e454d,
- 0x004f5358, 0x005c5e65, 0x0067686f, 0x006e6f77, 0x0065656f, 0x00535b6c, 0x003f4c5e, 0x002c3749, 0x001f2737, 0x00212836, 0x002c323c, 0x00373d42, 0x004f5357, 0x00636567, 0x00767676, 0x007d7d7b,
- 0x00636d79, 0x00545e6b, 0x003d4756, 0x002c3847, 0x001e2a39, 0x001b2633, 0x00282f39, 0x003a3e46, 0x00515056, 0x00656063, 0x006f6b6f, 0x00676866, 0x0053595c, 0x00414a50, 0x0033404e, 0x00263444,
- 0x00122031, 0x00151e2d, 0x00252936, 0x003b3741, 0x00594f54, 0x00605c63, 0x005f626b, 0x00595f69, 0x00474e5e, 0x00353e4f, 0x00232d40, 0x00161f30, 0x0018202a, 0x00252a2f, 0x003d4140, 0x00545754,
- 0x0065636a, 0x006d6b74, 0x009c9ba2, 0x00e9e8f0, 0x00fcfcfe, 0x00fdfeff, 0x00fffffe, 0x00fefefd, 0x00dddbde, 0x00a09e9d, 0x00989a97, 0x00c4c8c0, 0x00edf0f0, 0x00fcfdfd, 0x00d4d9e5, 0x006f7e8d,
- 0x00214755, 0x001a4652, 0x001e4a56, 0x001b434f, 0x00284452, 0x0024474f, 0x0022474b, 0x0024454c, 0x0023454b, 0x0024434b, 0x0025424b, 0x0025404a, 0x00253c47, 0x00233844, 0x001f3341, 0x001d303f,
- 0x001d2a39, 0x001b2737, 0x00182437, 0x00152636, 0x00142a38, 0x00132e3b, 0x00143240, 0x00163646, 0x00193d49, 0x001c404c, 0x001a404c, 0x0019404a, 0x001c424c, 0x001e434b, 0x0020424a, 0x001f4148,
- 0x00274648, 0x00395455, 0x00586f70, 0x00768e8d, 0x009fb3b3, 0x00c8d4d6, 0x00e5ecee, 0x00f0f8f8, 0x00f9feff, 0x00f9fdff, 0x00fbfefe, 0x00fafcfb, 0x00fbfdfc, 0x00fdfefd, 0x00fefefb, 0x00fcfaf7,
- 0x00fafafc, 0x00f8fafa, 0x00fbfcfa, 0x00fefef9, 0x00fcfdf8, 0x00f8fbf5, 0x00edefea, 0x00dad9d7, 0x00b3b3b3, 0x008f8c90, 0x00605c5f, 0x003b3a3a, 0x00101113, 0x00040305, 0x00090706, 0x00171411,
- 0x00372f2e, 0x00393f45, 0x0035445a, 0x00294972, 0x001c4f8a, 0x001e5085, 0x0025558a, 0x00306197, 0x003b6faa, 0x00437bb8, 0x004984c4, 0x00498aca, 0x00478dd4, 0x004991d9, 0x004992dc, 0x004792de,
- 0x005f97db, 0x008ec0f7, 0x00c1e7ff, 0x00c3ddfc, 0x00bac7e4, 0x00c4d3eb, 0x00b8ccea, 0x0095b2dc, 0x006d9ed4, 0x0065a0dd, 0x006ca7e0, 0x006696ba, 0x00374a60, 0x0020222a, 0x00241d1b, 0x00251e16,
- 0x00162021, 0x00141f22, 0x00151b1d, 0x001c1b16, 0x002c1a0a, 0x003c1f0e, 0x00532a18, 0x006b371e, 0x008f3f1f, 0x009b411a, 0x00a24319, 0x00a34016, 0x00963e1a, 0x00863c1c, 0x00703014, 0x005c260c,
- 0x00bebaad, 0x00423b2e, 0x003e3628, 0x00413a2b, 0x00463c2d, 0x00433928, 0x00433b28, 0x00423a27, 0x00463c27, 0x00453d27, 0x00423c2a, 0x003f3d30, 0x00443928, 0x00433620, 0x003e301a, 0x00372f1c,
- 0x0029271f, 0x00181912, 0x000c0a03, 0x00201509, 0x003d2815, 0x005e4321, 0x007c5c3a, 0x00856442, 0x00866342, 0x008b6745, 0x008e6947, 0x00835b38, 0x00724820, 0x00875c30, 0x00bb8e60, 0x00c89b69,
- 0x00cc9b67, 0x00c89762, 0x00c99863, 0x00bf8e5b, 0x00b58251, 0x00b38151, 0x00b17f52, 0x00ba875d, 0x00d19c73, 0x00d39f75, 0x00cc9a74, 0x00c7947b, 0x00c09361, 0x00b79258, 0x007c6532, 0x00392e16,
- 0x001d2758, 0x003d4f9e, 0x003750b0, 0x00344eaf, 0x00354e9d, 0x00283871, 0x00101a42, 0x000d122d, 0x00444143, 0x006d6356, 0x007e6e53, 0x007d6b49, 0x007a6247, 0x00755e4c, 0x00847065, 0x00a79390,
- 0x00a6b3d6, 0x00a4b3d4, 0x00a2b0d4, 0x00a5b3d9, 0x00a4b3dc, 0x00a3b0de, 0x00a0addc, 0x009fabdd, 0x009faae5, 0x009dabe2, 0x00a0aee2, 0x00a2b2de, 0x00a4b7d5, 0x00a7b9d2, 0x00afbfd6, 0x00b1c2d7,
- 0x00b5c2e4, 0x00b7c5e7, 0x00bac6ea, 0x00b8c7e8, 0x00b4c6da, 0x00acbfe5, 0x00a5b5e3, 0x009cafd5, 0x008da2c3, 0x008597bf, 0x00818dbd, 0x007e86bb, 0x007f81a8, 0x00767686, 0x00666360, 0x006c6951,
- 0x006b6452, 0x006a624e, 0x00665c4a, 0x00605545, 0x005c513f, 0x00584d3c, 0x00564c3c, 0x00544b39, 0x00514b39, 0x00504a38, 0x004e4b37, 0x00494936, 0x00474334, 0x00484032, 0x004c4130, 0x004f4131,
- 0x005a4f3a, 0x00635943, 0x006a604a, 0x005f593e, 0x004b452a, 0x005c5848, 0x00c9c6bf, 0x00faf7f5, 0x00fcfbfc, 0x00fcfafd, 0x00fefefd, 0x00eff1ed, 0x0079787b, 0x000f0e18, 0x001c1d30, 0x00242543,
- 0x002d3051, 0x00303457, 0x00323a60, 0x00313c63, 0x00394269, 0x00424769, 0x0049475e, 0x00574e5d, 0x00614947, 0x0051392d, 0x004a332c, 0x004d434e, 0x00686b87, 0x007081ac, 0x007694d1, 0x00719feb,
- 0x00689efa, 0x00659dfa, 0x00659dfb, 0x00669af9, 0x006b99f6, 0x006c9ae9, 0x006a9ce4, 0x00689cec, 0x006297f2, 0x005b92ec, 0x00538de3, 0x004887d5, 0x003c7eca, 0x004184d3, 0x00498be2, 0x004486e5,
- 0x00488ac2, 0x007bacd7, 0x00d4e7f3, 0x00cfbdb7, 0x00b9785a, 0x00c59994, 0x00cdc0dc, 0x006989d4, 0x00396fe3, 0x003b66d5, 0x00425db6, 0x00484f84, 0x00464e82, 0x00464e81, 0x004a507f, 0x004b4f7e,
- 0x004b507d, 0x00484d77, 0x00434870, 0x0040456a, 0x0040436b, 0x003f4266, 0x003e4162, 0x003e4161, 0x00424764, 0x00444a65, 0x00454d67, 0x0047506d, 0x004b5377, 0x004d5580, 0x004e5684, 0x004e5785,
- 0x0049527f, 0x00424b78, 0x003d4474, 0x003c4375, 0x003b4075, 0x003d4277, 0x0043487b, 0x00464b7c, 0x00444e77, 0x00485378, 0x004b557a, 0x004c557f, 0x004d5582, 0x004c5480, 0x004a517d, 0x00484f7c,
- 0x00434b79, 0x003d4674, 0x00363d6e, 0x00303869, 0x00282f62, 0x00272b5f, 0x0027295c, 0x00232658, 0x00262654, 0x0024264f, 0x00212549, 0x001f2447, 0x0020254b, 0x0021244c, 0x0023254d, 0x0024244f,
- 0x001d224a, 0x001b2048, 0x001a1f49, 0x001b204b, 0x00202350, 0x00222451, 0x0021234e, 0x0020224a, 0x001b1b40, 0x0017183a, 0x00131431, 0x0011142a, 0x000f112b, 0x000e0f2c, 0x000f0d2e, 0x000b0829,
- 0x0033314a, 0x00a3a1b2, 0x00fdfdff, 0x00fffffe, 0x00fffef8, 0x00fdfefc, 0x00f4f5f2, 0x009c9b95, 0x00150c04, 0x001a1003, 0x00291e0d, 0x00231809, 0x001f170b, 0x0017140a, 0x001b1e1a, 0x00252b27,
- 0x00363437, 0x00363433, 0x00332e28, 0x002a2318, 0x0022190c, 0x001b1206, 0x004d443e, 0x00918888, 0x00cdc4d8, 0x00ddd7ef, 0x00e4dcf0, 0x00d8ced4, 0x007c7071, 0x00322620, 0x00322519, 0x003b2c1b,
- 0x00352315, 0x002e2114, 0x001a1109, 0x00292221, 0x007b787a, 0x00a49fb4, 0x00ada5c6, 0x00aea6c9, 0x00b3add3, 0x00b6b0d7, 0x00bbb4d7, 0x00b8b0cc, 0x00ada4b1, 0x00a79d9e, 0x00988c84, 0x00867968,
- 0x00706356, 0x005d5441, 0x00544c3b, 0x004d4535, 0x006f6857, 0x00a59e8f, 0x00d0c8c0, 0x00ded4ce, 0x00f1e8e7, 0x00f6ecf0, 0x00f5e8ed, 0x00f5ede8, 0x00f4eee5, 0x00d3cec2, 0x00888074, 0x004d4838,
- 0x00272013, 0x00211c10, 0x001e180f, 0x0019120d, 0x0011090a, 0x00090503, 0x00080600, 0x00120d08, 0x00201710, 0x00261c11, 0x002a2013, 0x002a1f0f, 0x002d2212, 0x00261c0d, 0x00211b0a, 0x002e2716,
- 0x00a2a2a1, 0x00f0f0ef, 0x00fafbfb, 0x00fafbfc, 0x00fefcfe, 0x00fdfcfd, 0x00fefeff, 0x00fdfefe, 0x00c9c9ca, 0x00585757, 0x000c0d0e, 0x00080c12, 0x000c1016, 0x000c1015, 0x00091013, 0x000a1116,
- 0x000f141a, 0x000a0e14, 0x00090c12, 0x00070c11, 0x000a0e13, 0x000a0c12, 0x00121319, 0x00191a21, 0x002f2d37, 0x003e3943, 0x00312c33, 0x00352e31, 0x00645957, 0x0080746b, 0x00b1a697, 0x00cbbfac,
- 0x00b8bda3, 0x00bebea9, 0x00c7c2b8, 0x00b7adaf, 0x00b8a9b5, 0x00c8bacb, 0x00cac0d2, 0x00c2bfcd, 0x00bac4cb, 0x00bdcacf, 0x00b8c6cb, 0x00b4bfc5, 0x00abb5b9, 0x00a8b3b6, 0x00a6afb1, 0x00a2a6a8,
- 0x00929295, 0x0097969b, 0x00b0adb0, 0x00b3afb1, 0x00ada5a8, 0x00afaeaa, 0x00a6a7a0, 0x00949392, 0x008a8a8c, 0x008b898c, 0x00847f83, 0x00837a7c, 0x00847873, 0x00807365, 0x007a6d58, 0x00786b51,
- 0x007d6a55, 0x006c5745, 0x00402c1d, 0x00261508, 0x0042342a, 0x00675d56, 0x0067615a, 0x00514b47, 0x00625e5d, 0x00747370, 0x00848789, 0x0086949e, 0x0083788d, 0x006a727b, 0x009fa49f, 0x00ac9b85,
- 0x00be4837, 0x00a83c2c, 0x005d170d, 0x00100906, 0x00030b38, 0x000b1b42, 0x000b2249, 0x000d2358, 0x000e2264, 0x001e296f, 0x00343076, 0x005a4484, 0x00915b7b, 0x0090444e, 0x008d3225, 0x00a33b1e,
- 0x00856463, 0x00b9a09f, 0x00faebec, 0x00fff9fa, 0x00fdfdfe, 0x00fafcfd, 0x00fcffff, 0x00e1e4e5, 0x00636263, 0x000e0b0a, 0x00040101, 0x00010000, 0x00080502, 0x000f0a04, 0x0019110b, 0x00261d13,
- 0x0041332c, 0x003a2e22, 0x0025160c, 0x0058463a, 0x005a483e, 0x000c0905, 0x00000101, 0x00000303, 0x00050300, 0x00070400, 0x00090600, 0x000b0700, 0x00060600, 0x00020501, 0x000a110e, 0x0018201f,
- 0x00171628, 0x0020202f, 0x00434152, 0x003f424b, 0x0050505b, 0x00575763, 0x002a2b36, 0x000e0e19, 0x0008081a, 0x000a0a1d, 0x0005091a, 0x00020917, 0x0009090f, 0x00140f0c, 0x00291e13, 0x00392917,
- 0x00442f1b, 0x00412b1a, 0x00382517, 0x002e1b12, 0x0022110d, 0x00150d1a, 0x000e0b21, 0x000d0a22, 0x000b0d2a, 0x00090d2c, 0x00090f2c, 0x000b122c, 0x0010152c, 0x00151726, 0x0016161e, 0x00131317,
- 0x000c0f18, 0x000b0e13, 0x00121611, 0x00242819, 0x00414625, 0x0052562e, 0x005f6334, 0x00626535, 0x00616135, 0x005b5a31, 0x004d4f2b, 0x0040462d, 0x00353927, 0x002d2e22, 0x001a1910, 0x0014120d,
- 0x0015110f, 0x00171612, 0x0021221f, 0x00252722, 0x0023251e, 0x00242219, 0x001c1712, 0x0014100d, 0x00130d11, 0x00161016, 0x0016121b, 0x0018151f, 0x001c1720, 0x001a161c, 0x00151215, 0x00120f11,
- 0x000f132f, 0x00282b48, 0x005a5477, 0x00756a87, 0x00a4959b, 0x00bfb5b0, 0x00cac1ba, 0x00c7c1bc, 0x00b4b4cf, 0x00c0c1e9, 0x00d7dcf9, 0x00dee2f4, 0x00e7eef8, 0x00f2f5fc, 0x00fafcfe, 0x00fafcfc,
- 0x00fdfcff, 0x00fdfefe, 0x00fefaf9, 0x00fefbf3, 0x00fcffe7, 0x00fcfdf6, 0x00fffdff, 0x00fdfdfd, 0x00fdfef9, 0x00fcfdf8, 0x00fcfdf8, 0x00fbfcf7, 0x00fefefa, 0x00fafbf8, 0x00f7f7f7, 0x00fbfafd,
- 0x00fcfef8, 0x00fafbf6, 0x00fafcfa, 0x00f9fcfc, 0x00c5c6cb, 0x0062656e, 0x00474e57, 0x00525a66, 0x00545a6b, 0x0054596c, 0x00505467, 0x004f5463, 0x004a4d5e, 0x00414453, 0x00414453, 0x00444755,
- 0x004e515e, 0x00535864, 0x005e5f6f, 0x005d5e6e, 0x00595b6e, 0x004e5874, 0x00404768, 0x001e213b, 0x000d040f, 0x000c0004, 0x00341c13, 0x007e5d45, 0x00bf976d, 0x00c09565, 0x00ba8d58, 0x00b08549,
- 0x00c27e46, 0x00a06438, 0x00663916, 0x006a4933, 0x00867569, 0x00a99a94, 0x00867b79, 0x00746f71, 0x00494a56, 0x000b1121, 0x00070d27, 0x00263661, 0x0043608c, 0x004c6e98, 0x005e7fa3, 0x0065849c,
- 0x00888f98, 0x00b0aead, 0x00cdc1bc, 0x00c9beb4, 0x00d0c2bb, 0x00dcd5cc, 0x00c6c3c4, 0x009b9eaa, 0x006a778c, 0x0057657a, 0x004c5971, 0x00586074, 0x00605f6c, 0x00575965, 0x00464c56, 0x003d4752,
- 0x0029343f, 0x00222a34, 0x00333740, 0x0045454c, 0x00545358, 0x005d5c61, 0x0065656b, 0x006c6c74, 0x00666973, 0x00595f6a, 0x004a5261, 0x00383f54, 0x00272c3e, 0x00272b3b, 0x002f343e, 0x003c4249,
- 0x004e5254, 0x00595d62, 0x006a6c73, 0x0075767e, 0x0072707b, 0x005e6678, 0x00475468, 0x00374154, 0x002e3645, 0x00292f3d, 0x00272c38, 0x00333840, 0x00494c53, 0x005b5c60, 0x006d6d6e, 0x00727472,
- 0x00626a77, 0x0057606e, 0x0046505f, 0x00384353, 0x00273342, 0x001d2734, 0x00222833, 0x0030333c, 0x004b474f, 0x005e585d, 0x00656165, 0x00606062, 0x00555861, 0x00464d58, 0x00354251, 0x00263445,
- 0x00192236, 0x001c2330, 0x00292c36, 0x003e3c42, 0x005b5254, 0x00656368, 0x00656770, 0x00616570, 0x004e5665, 0x00384252, 0x00222d3f, 0x00152030, 0x001c2431, 0x002a3037, 0x00434648, 0x005a5d5b,
- 0x006d6c73, 0x006d6c73, 0x00929097, 0x00dddbe1, 0x00fefcff, 0x00fcfbfe, 0x00fefeff, 0x00fcfdfe, 0x00e7e5e5, 0x00aaaba9, 0x00949591, 0x00c0c2bb, 0x00ebeaeb, 0x00faf9fa, 0x00e9eef4, 0x008c9eab,
- 0x00234653, 0x0018434f, 0x00204c58, 0x001b4350, 0x00264354, 0x00244752, 0x0022484e, 0x0022464e, 0x0023464d, 0x0024454d, 0x0024434d, 0x0023414d, 0x00243e4b, 0x00213a48, 0x001d3643, 0x001b3240,
- 0x001d2d3b, 0x00192937, 0x00142435, 0x00122434, 0x00142837, 0x00152c3a, 0x0017303e, 0x001a3443, 0x00193642, 0x001a3945, 0x001f3e4b, 0x001f404b, 0x001c3c47, 0x0022414a, 0x003d5b62, 0x00557278,
- 0x00799092, 0x0097acad, 0x00c1d2d4, 0x00dceaeb, 0x00ebf5f7, 0x00f2fafc, 0x00f8fdff, 0x00fcffff, 0x00fbfeff, 0x00f9fcfd, 0x00f9fcfb, 0x00fbfefc, 0x00fbfcfd, 0x00fcfcfc, 0x00fdfcfa, 0x00fefdfb,
- 0x00fdfcfd, 0x00fbf9fb, 0x00fdfafa, 0x00f1efec, 0x00cfcecb, 0x00b3b4ae, 0x00929189, 0x006a6861, 0x003f3c3d, 0x00252224, 0x000e0c0d, 0x00090906, 0x0010100b, 0x00191610, 0x00272218, 0x0041392d,
- 0x005c5449, 0x005e5e60, 0x004a596d, 0x00395b85, 0x002762a0, 0x00285e98, 0x003066a0, 0x003e71af, 0x00497fbc, 0x004c85c4, 0x004d88ca, 0x004e8ccf, 0x004d8ed8, 0x004c90d9, 0x004c93db, 0x004892db,
- 0x006498d7, 0x0084b2e9, 0x00a8c8f4, 0x00afc6ea, 0x00bbc9e6, 0x00cbd7f4, 0x00c1d6f6, 0x009fbce5, 0x0079ace2, 0x006ea9e8, 0x005f9fd9, 0x006b9ece, 0x004c637b, 0x00262c33, 0x002e2724, 0x0030231b,
- 0x0023231f, 0x001a2121, 0x00171a1e, 0x001b1916, 0x00291a0a, 0x003b1f0c, 0x00552816, 0x006c341c, 0x008b3c1b, 0x00963e16, 0x009e4015, 0x00a03e14, 0x00933b18, 0x0083391b, 0x006e2e14, 0x005a250c,
- 0x00bab8ad, 0x00373125, 0x00383023, 0x00383223, 0x003b3624, 0x003c3723, 0x003c3722, 0x003d3723, 0x00433927, 0x00423926, 0x003f3929, 0x003a3c30, 0x003e3726, 0x003c3221, 0x00372d19, 0x00312c17,
- 0x00322922, 0x0022190e, 0x001b1000, 0x0038230d, 0x00613e1d, 0x00805731, 0x009c7349, 0x00a97e55, 0x00ab7e5c, 0x00a47855, 0x00946846, 0x00794d2b, 0x00754a24, 0x00986d44, 0x00c3986d, 0x00cda274,
- 0x00d2a070, 0x00cc9969, 0x00c69566, 0x00bb8b5d, 0x00b38156, 0x00b6845a, 0x00b6865b, 0x00c18f65, 0x00d3a17b, 0x00d59f7b, 0x00cc9d78, 0x00c89d84, 0x00c19865, 0x00bf955e, 0x00967743, 0x004d391b,
- 0x001f1e48, 0x0036448b, 0x00334da9, 0x002d4eb2, 0x00284ca5, 0x00313f82, 0x002d3365, 0x002f3056, 0x00494057, 0x0065595f, 0x00776a62, 0x007d7062, 0x00887b70, 0x00908581, 0x00afa6a8, 0x00d4ccd3,
- 0x00e1dcf1, 0x00dedbf0, 0x00dedeed, 0x00e8e5f6, 0x00e6e8f8, 0x00e4e2f5, 0x00e3e3f5, 0x00e2e3f5, 0x00e8dfff, 0x00e6e1fb, 0x00e8e5fa, 0x00eae7f7, 0x00eaeaee, 0x00ecedec, 0x00eff1ed, 0x00f0f3ed,
- 0x00efedfa, 0x00eeeffd, 0x00eef2fc, 0x00ebeff3, 0x00e6ece5, 0x00e5ede8, 0x00e5efef, 0x00e3efea, 0x00dce4ea, 0x00cdd6e7, 0x00bfc7e3, 0x00b3b9db, 0x00a8a6c3, 0x009792a4, 0x007a7377, 0x00746f61,
- 0x00796d61, 0x00796c60, 0x0076695a, 0x00766a57, 0x00766c58, 0x00726853, 0x006d644d, 0x006b6148, 0x006c624a, 0x006b6147, 0x006b6146, 0x00685e46, 0x00655746, 0x00635441, 0x0061553d, 0x0061543d,
- 0x006a5948, 0x006f604c, 0x006d614b, 0x005d593d, 0x0049462b, 0x00585747, 0x00c4c3bb, 0x00f7f6f4, 0x00fffdff, 0x00fffbff, 0x00fdfcfd, 0x00f0f2ef, 0x0078777a, 0x000c0c15, 0x00151628, 0x001c1c3a,
- 0x002c2b4a, 0x002e2e50, 0x002d3257, 0x002e375f, 0x00343c67, 0x003b416b, 0x003e4164, 0x00494764, 0x005d4f65, 0x005d4e5d, 0x00584b57, 0x00545066, 0x00595874, 0x005c6288, 0x006474a0, 0x006f87ba,
- 0x007697e3, 0x00709aea, 0x006194ea, 0x005b92f0, 0x005c97f8, 0x006197e4, 0x006399db, 0x00649ce9, 0x00689cff, 0x00649afd, 0x005d97f4, 0x005695eb, 0x00488ada, 0x003e83d0, 0x003c82cf, 0x003e84d6,
- 0x005c83ce, 0x007a9ee2, 0x00aac3ef, 0x00c6c4e5, 0x00d2b2b5, 0x00d7c5da, 0x00a6aedc, 0x004775bf, 0x003a71d1, 0x003c62b4, 0x0041589e, 0x00464b80, 0x00454c81, 0x00474d81, 0x004a4f83, 0x004b4f81,
- 0x00505083, 0x004d4e7d, 0x00474974, 0x0044476e, 0x0044466f, 0x0042456b, 0x00404466, 0x00404565, 0x0045486a, 0x00464b6a, 0x00474d6b, 0x00485070, 0x004c547a, 0x004e5781, 0x004d5782, 0x004c5782,
- 0x004c5184, 0x00454a7d, 0x003e4478, 0x003c4278, 0x00383d75, 0x003b4076, 0x0040467a, 0x00414879, 0x00474b7b, 0x004b507a, 0x004d537a, 0x004c547c, 0x004e557f, 0x004e557f, 0x004d557f, 0x004d5480,
- 0x00494f7d, 0x00424978, 0x003a4171, 0x00353c6c, 0x002d3363, 0x002d3060, 0x002e2f60, 0x002d3060, 0x002e2f5e, 0x002b2e57, 0x002a2f54, 0x002a2f54, 0x002c3056, 0x002c2f55, 0x002c2f55, 0x002c2f56,
- 0x00292c5a, 0x00252955, 0x00202452, 0x001d2250, 0x001f2451, 0x001e224f, 0x001b1f4a, 0x00191c44, 0x0017153d, 0x00131336, 0x000f112e, 0x000e1129, 0x000c0d28, 0x000c0b28, 0x000c0b2a, 0x00050422,
- 0x00403f56, 0x00bebacd, 0x00fcfcfd, 0x00fffffe, 0x00fffef8, 0x00fefefc, 0x00e3e6e1, 0x00807c78, 0x00150b03, 0x001a0e03, 0x002a1d0f, 0x00281c0c, 0x0022190c, 0x001e1a13, 0x0022241e, 0x00262b27,
- 0x00342e37, 0x002c2729, 0x00201915, 0x001d140a, 0x0021180b, 0x0022170b, 0x00433630, 0x008b817f, 0x00dbd1e0, 0x00ebe4f5, 0x00f3e9fb, 0x00f1e3f2, 0x00a5979c, 0x004d423f, 0x0032281a, 0x00382f1a,
- 0x0036291e, 0x002c2421, 0x00352f34, 0x00777281, 0x00a7a7c4, 0x008989d1, 0x007270cf, 0x006d6cc7, 0x007e74c8, 0x00877dc9, 0x009389c9, 0x009288bb, 0x00a7a2c0, 0x00bebccf, 0x00bcbec8, 0x009ea3a3,
- 0x00737e72, 0x00616a5a, 0x00585c40, 0x005b5734, 0x007a7049, 0x00928663, 0x009d9274, 0x00aea190, 0x00d7cbd1, 0x00f5eef8, 0x00f0e6ee, 0x00ecdedc, 0x00dad0c7, 0x00cac1b4, 0x008c8374, 0x00504b39,
- 0x0034281c, 0x002f2417, 0x002c2114, 0x00261a10, 0x00190e07, 0x000d0700, 0x000d0a00, 0x00171208, 0x002d2117, 0x00312415, 0x002f2313, 0x00291d0c, 0x0026170a, 0x001f1308, 0x00171003, 0x00352f24,
- 0x00b5b3b6, 0x00f5f3f5, 0x00fbfbfc, 0x00fdfefd, 0x00fefdfe, 0x00fcfcfc, 0x00fcfefd, 0x00f9fbfa, 0x00e3e2e3, 0x009e9c9f, 0x00707171, 0x006f7476, 0x0072777a, 0x00727577, 0x00707474, 0x00737579,
- 0x0075787c, 0x00727477, 0x006f7274, 0x006e7374, 0x00717678, 0x00717476, 0x0077797c, 0x00828588, 0x0099949c, 0x009c969b, 0x00928c8e, 0x00a8a2a1, 0x00bbb2ae, 0x00b9b1a6, 0x00e1daca, 0x00eae2d0,
- 0x00d1d1ce, 0x00cfcccd, 0x00d7d4d9, 0x00d5cbd8, 0x00dfd3e7, 0x00e5d7f0, 0x00e1d8ee, 0x00dbd8ec, 0x00dae0ed, 0x00d7e3eb, 0x00d2dfe4, 0x00ced7da, 0x00c6cdcd, 0x00c4cbcc, 0x00c4cbcd, 0x00c1c4c6,
- 0x00c6c5c8, 0x00dad8da, 0x00d8d5d3, 0x00d2d0cc, 0x00d0cbca, 0x00c7c8c0, 0x00bdc2b6, 0x00b6bab3, 0x00bab9bc, 0x00bab8bb, 0x00b6b1b5, 0x00b7b1b3, 0x00b5ada9, 0x00b3aca1, 0x00b4ae9d, 0x00b4af9a,
- 0x00beb3af, 0x00a39792, 0x00887d76, 0x00807970, 0x00847d77, 0x00908c86, 0x00918f8a, 0x00898682, 0x00aaa5a7, 0x00b1abad, 0x009b9d9b, 0x00889795, 0x00877d89, 0x0071707b, 0x00999a9d, 0x00b3a89e,
- 0x00c8877e, 0x00c48d7d, 0x009c7a6e, 0x00706f6c, 0x00696c88, 0x00666c7f, 0x0066737c, 0x00677584, 0x006a7491, 0x00717a97, 0x008583a1, 0x009b93aa, 0x00b998a3, 0x00bd8d8c, 0x00c1887d, 0x00c78973,
- 0x00b39698, 0x00cab1b3, 0x00f8ebed, 0x00fefcfe, 0x00fcfdff, 0x00f8fbfd, 0x00f8fcfe, 0x00ccd1d0, 0x00413e3e, 0x00080504, 0x00040102, 0x00040204, 0x00090607, 0x000e0908, 0x0019120e, 0x002f271f,
- 0x0047342e, 0x002d180f, 0x001e0b01, 0x00513b2a, 0x005a452e, 0x00130c03, 0x00010300, 0x00000000, 0x00080002, 0x000c0202, 0x000d0500, 0x000f0601, 0x00090300, 0x00070100, 0x00110d07, 0x00211e17,
- 0x002a1f27, 0x00281f26, 0x00393035, 0x00262222, 0x003a3737, 0x005a595d, 0x003b3b40, 0x000f1016, 0x00090b19, 0x00080919, 0x00070c19, 0x00000612, 0x000a090e, 0x0015110e, 0x00271f12, 0x00342612,
- 0x00442b1d, 0x003f271c, 0x00332216, 0x002a1b12, 0x00221510, 0x00181021, 0x000f0c27, 0x000d0a27, 0x000e0b2e, 0x000b0a2f, 0x00090c2c, 0x000c0f2c, 0x0010132c, 0x00131526, 0x00131520, 0x0012141b,
- 0x000e0b17, 0x000f0e14, 0x00141510, 0x00252818, 0x00414525, 0x0051552d, 0x005f6232, 0x00636633, 0x006a6a39, 0x00696a38, 0x005e6233, 0x00515a35, 0x003f4526, 0x0032341b, 0x001c1806, 0x00161004,
- 0x00170c09, 0x001a1411, 0x00252320, 0x002a2a25, 0x00262922, 0x00252521, 0x001c1c1a, 0x00131514, 0x00100c12, 0x000e0a12, 0x000e0b16, 0x0013101b, 0x0016101b, 0x00151117, 0x00151316, 0x00161515,
- 0x00171d33, 0x00474a65, 0x0081849d, 0x009290b2, 0x00928ca7, 0x00908da7, 0x008487a3, 0x007b7ea1, 0x00767cbb, 0x007f8ad4, 0x0097a0e8, 0x00a7a9e1, 0x00a8b2e2, 0x00abbbe3, 0x00b8cbea, 0x00c4d7ed,
- 0x00d5e4fa, 0x00ebf5ff, 0x00f5f8f8, 0x00fbfbed, 0x00feffdb, 0x00fcfcf2, 0x00fdfdff, 0x00fdfdfb, 0x00fefeff, 0x00fcfcfc, 0x00fafaf7, 0x00fefffb, 0x00fdfdfc, 0x00f8f8f8, 0x00f5f5f4, 0x00fcfbfa,
- 0x00fffdfc, 0x00fffcfc, 0x00fcfefc, 0x00f8fcfc, 0x00cdced3, 0x006f7278, 0x004b525b, 0x00545c65, 0x005b6070, 0x00585c6d, 0x004f5364, 0x004a4f5c, 0x003e4251, 0x00343846, 0x00383c4a, 0x00454956,
- 0x00525464, 0x00595b6a, 0x005e626f, 0x005e6270, 0x005a5d6a, 0x00555372, 0x00423b5e, 0x00473c59, 0x00372337, 0x0016030a, 0x003a2119, 0x0081634d, 0x0092704b, 0x00826038, 0x007a5b2b, 0x00775927,
- 0x00ae6740, 0x00a15f3e, 0x0077421f, 0x0083593f, 0x009e8979, 0x00b9a99f, 0x0088847b, 0x006b7069, 0x004a5154, 0x001b272a, 0x00162026, 0x003f455a, 0x004b5a72, 0x002f455c, 0x0032495d, 0x00465e6b,
- 0x0069737e, 0x007b838e, 0x008e9ca5, 0x007f8fa1, 0x0068859e, 0x00929ba1, 0x00a4ada9, 0x00a0afb2, 0x008da2b8, 0x007588a0, 0x00586a7f, 0x00596474, 0x0060616e, 0x00575c69, 0x0048515b, 0x003c4a58,
- 0x002e374d, 0x00252e41, 0x00323948, 0x00404650, 0x004b5056, 0x005a5c60, 0x006b696f, 0x0078747b, 0x0078777e, 0x006e6d77, 0x005e5f6e, 0x004a4d64, 0x00383c4f, 0x00303546, 0x002c313c, 0x00333940,
- 0x00494a51, 0x0055575f, 0x0064676d, 0x00717278, 0x00717079, 0x00606777, 0x004c596b, 0x003e4b5c, 0x00374251, 0x002b3341, 0x00202532, 0x002a2e37, 0x003c3e46, 0x004e4e53, 0x005e5d60, 0x00646565,
- 0x00606373, 0x00575e6d, 0x00485161, 0x003c4657, 0x002b3646, 0x00202937, 0x00232934, 0x002e343c, 0x004d4950, 0x005f595e, 0x00636164, 0x0065636b, 0x0060626f, 0x004d5261, 0x00364250, 0x00263443,
- 0x001e2439, 0x00222732, 0x00303339, 0x00484547, 0x00655d5a, 0x006c6a6c, 0x00676b72, 0x005f656d, 0x004f5367, 0x00363c50, 0x001e263a, 0x00172033, 0x001f2635, 0x002e343c, 0x0044484a, 0x005c5f5d,
- 0x00706c78, 0x0065626c, 0x007e7d82, 0x00cbcacf, 0x00feffff, 0x00fcfcfe, 0x00fdfefd, 0x00fcfefc, 0x00f3edf2, 0x00b5b5b5, 0x008b8c88, 0x00b9bdb8, 0x00e3e3e6, 0x00f6f5fa, 0x00f4f9fb, 0x00afc0c9,
- 0x0034505e, 0x001a3e4c, 0x001f4754, 0x001b4450, 0x00254455, 0x00214552, 0x00204550, 0x00214653, 0x00214652, 0x00224550, 0x0020444f, 0x001f434e, 0x001f404e, 0x001b3d4c, 0x00163a48, 0x00153745,
- 0x001f2c42, 0x0019283d, 0x00132437, 0x00122435, 0x00142735, 0x00162935, 0x00162c35, 0x00172f35, 0x00213039, 0x00283942, 0x0033454f, 0x00455962, 0x006d8189, 0x00889ca1, 0x00acbfc1, 0x00cddee0,
- 0x00ecf6f8, 0x00f6fcfe, 0x00f9fefe, 0x00f5fdfb, 0x00f4fcf9, 0x00f8fbfb, 0x00fcfdff, 0x00f9fdff, 0x00fbfcfe, 0x00fbfcfe, 0x00fafbfb, 0x00fefefe, 0x00fefbfd, 0x00fdfbfb, 0x00fbfaf6, 0x00f7f6f2,
- 0x00ece6e9, 0x00d2cbcd, 0x00aba5a2, 0x008a867d, 0x005b574e, 0x003c372d, 0x00231e14, 0x0017130b, 0x001b1212, 0x001b1515, 0x001d1916, 0x00241f16, 0x00322a1b, 0x003b301c, 0x0056462c, 0x00705b3c,
- 0x006d5440, 0x00615954, 0x00435163, 0x003a638d, 0x002e77bc, 0x002e6daf, 0x003470b2, 0x003e7aba, 0x004d84ca, 0x004e89d0, 0x004b88cd, 0x004c8bcd, 0x004d8cd3, 0x005090d5, 0x005091d4, 0x004d91d5,
- 0x00638ecd, 0x006085bc, 0x008cacda, 0x00c1d9f5, 0x00c4d4f5, 0x00afbedf, 0x0099b3d7, 0x0085a9d2, 0x006c9fd7, 0x005b97d9, 0x005090cf, 0x005e9ad3, 0x00577390, 0x0035383e, 0x003d3029, 0x003d2617,
- 0x00342423, 0x00262222, 0x001a1b1b, 0x001c1918, 0x00261b10, 0x003f1f0d, 0x00592911, 0x006f331d, 0x008c3a1b, 0x00973c17, 0x009d3e15, 0x009d3c13, 0x008f3a17, 0x007d3718, 0x00662c11, 0x0053250a,
- 0x00b4b5a6, 0x002c291a, 0x002e2719, 0x00312b1c, 0x00332d1d, 0x00342e1e, 0x00352f1e, 0x0037301f, 0x00303217, 0x00333318, 0x00383423, 0x0035362a, 0x00363121, 0x00362d1b, 0x00392b1b, 0x00382b1d,
- 0x00262514, 0x00201705, 0x0032200c, 0x00593b1f, 0x00714721, 0x0086572c, 0x00a26e43, 0x00b37e56, 0x00ae8256, 0x00a2764a, 0x008c5d37, 0x00754624, 0x00865b36, 0x00b98f68, 0x00d7a984, 0x00d5a782,
- 0x00c49a69, 0x00c09564, 0x00bf8f62, 0x00b07f54, 0x00a27247, 0x00ab7950, 0x00bb8660, 0x00c5936b, 0x00c69a6e, 0x00ca9c72, 0x00cd9f7a, 0x00c89f82, 0x00c69b64, 0x00c3975b, 0x00ad834f, 0x006e4a28,
- 0x001a1527, 0x00283163, 0x00384995, 0x002e4aa4, 0x00214396, 0x002b3674, 0x003a3767, 0x004a476e, 0x00676973, 0x00848185, 0x009e9392, 0x00b4a9a5, 0x00c8c0bc, 0x00d3cecd, 0x00e3dde6, 0x00eeeafb,
- 0x00ebf0f3, 0x00ebebee, 0x00ece8ef, 0x00f0ecf4, 0x00f2eef5, 0x00f0ebf4, 0x00efeaf5, 0x00ede9f2, 0x00e7e7e8, 0x00e8e9eb, 0x00f0e9f5, 0x00f4e6fa, 0x00f2e5f3, 0x00eee6ed, 0x00efe6f1, 0x00efe6f6,
- 0x00e6e6f6, 0x00e4e6f6, 0x00e9e7f7, 0x00e8e4f1, 0x00e7e3e3, 0x00e8e6e0, 0x00e9e8de, 0x00e8e9e2, 0x00e0e6e2, 0x00dee5e9, 0x00dfe4f7, 0x00e1e2fc, 0x00dbd8ee, 0x00cbc5d2, 0x00a59ca2, 0x00948986,
- 0x008a8371, 0x00877f6e, 0x007f7567, 0x00786d5f, 0x00756b58, 0x00776c56, 0x007b6e56, 0x007b6c52, 0x00756e45, 0x00756f47, 0x00796f4f, 0x00766a50, 0x0077684e, 0x0074644a, 0x0075614a, 0x0076614c,
- 0x006d6246, 0x006e664e, 0x00706851, 0x00656046, 0x00535138, 0x00646354, 0x00ccc8c4, 0x00fbf7f8, 0x00f9fcf8, 0x00f8fcfb, 0x00fcfffe, 0x00eff1ef, 0x00747778, 0x000d0e18, 0x00161429, 0x001c1938,
- 0x001a2435, 0x001e283d, 0x00262e4c, 0x00293057, 0x002d3561, 0x00363b69, 0x0041416e, 0x00464570, 0x004a4a62, 0x00504e64, 0x005a536e, 0x00585672, 0x005c5874, 0x005f5d79, 0x005e5f7f, 0x0063678d,
- 0x006983ad, 0x006b90c6, 0x006f96e1, 0x006494eb, 0x005896f5, 0x005c9af0, 0x005f99f5, 0x006295fd, 0x005b91f7, 0x005e8ff7, 0x006490fb, 0x006792f8, 0x006593e9, 0x006694e5, 0x00638fe2, 0x005d8bdd,
- 0x00526ba7, 0x004f72b6, 0x006c90d9, 0x0086a9f0, 0x00a8c1f1, 0x009fc7f8, 0x006395e2, 0x002a73d2, 0x003073c2, 0x003f629d, 0x00434f84, 0x00414680, 0x00434a7c, 0x00454c7f, 0x00494d83, 0x004d4e82,
- 0x00464e75, 0x00454b73, 0x00484b75, 0x00464973, 0x00494672, 0x0046476b, 0x00454669, 0x0047456b, 0x003d4965, 0x003f4b69, 0x00444e6f, 0x00484f73, 0x004d537a, 0x0050557f, 0x00505683, 0x004e5684,
- 0x00465281, 0x00414b7c, 0x0041487d, 0x0041467e, 0x003d427a, 0x003e4279, 0x0043477d, 0x0046497f, 0x00404d72, 0x00455075, 0x004a527a, 0x004b527a, 0x004e547d, 0x00515681, 0x00545784, 0x00545684,
- 0x00444e72, 0x003f496e, 0x003d446f, 0x003a3f6f, 0x0035386a, 0x00343667, 0x0036386a, 0x00383a6b, 0x002e375d, 0x002c3457, 0x0033365c, 0x00383a60, 0x00363b5e, 0x0035395f, 0x00383964, 0x00383a64,
- 0x0029365a, 0x00273055, 0x00252c56, 0x00232857, 0x00242658, 0x00202252, 0x001e204d, 0x001d1b49, 0x00101332, 0x000a102c, 0x000c102d, 0x000c0e28, 0x000a0d27, 0x000a0a28, 0x000e0a2a, 0x0006051e,
- 0x004b515d, 0x00ced1da, 0x00fbfbfe, 0x00fdfeff, 0x00fdfbf8, 0x00fcfdfb, 0x00d8d7d8, 0x00686664, 0x000d0e00, 0x001a1502, 0x00302315, 0x002f2114, 0x00221a10, 0x001c1712, 0x001f1c1d, 0x00212123,
- 0x001f2520, 0x001c1e17, 0x0018150d, 0x001a1209, 0x00211709, 0x00281c10, 0x003e312b, 0x008d7f7e, 0x00ddd9d7, 0x00eae8ee, 0x00f4eaf8, 0x00f9e8f9, 0x00c1b6bc, 0x006a5f5e, 0x00362921, 0x003c3326,
- 0x002e2d1b, 0x0021241d, 0x00635f6d, 0x00a5a0bc, 0x008180a9, 0x005054a6, 0x00494db8, 0x005c59c3, 0x006b69c0, 0x00706cbd, 0x007b70bb, 0x007d70b5, 0x006e6b9c, 0x0072749e, 0x009da0c8, 0x00b0b9da,
- 0x00789392, 0x0063756b, 0x00626554, 0x006f6547, 0x008f784a, 0x009d8359, 0x00886c49, 0x00775c41, 0x00948b80, 0x00e1dbdd, 0x00f1e9ee, 0x00e8dcd7, 0x00d1c7bf, 0x00c4b9ad, 0x0087796e, 0x004f4335,
- 0x00322c16, 0x00332a19, 0x00342719, 0x002d2015, 0x001f1108, 0x00110902, 0x00140e05, 0x00211c11, 0x00302b15, 0x0038321a, 0x003f331f, 0x00372719, 0x00291b0f, 0x0024160f, 0x001d0f0a, 0x004a3f3c,
- 0x00c2c7bf, 0x00f2f9f3, 0x00fafcfb, 0x00fdfbfb, 0x00fdfdfc, 0x00fcfcfb, 0x00fffdfd, 0x00fbfcfd, 0x00f4f9f3, 0x00e6ebe5, 0x00e5e8e7, 0x00e5e8e9, 0x00e9eeed, 0x00e8eced, 0x00eaebef, 0x00ebecef,
- 0x00e5ece3, 0x00e4ece6, 0x00e5ebe9, 0x00ebebeb, 0x00e7eeed, 0x00eaeaec, 0x00edebee, 0x00f0eef0, 0x00ebf2eb, 0x00eef0ea, 0x00efeeed, 0x00f6f4f2, 0x00f3f0e6, 0x00f4f1e5, 0x00fffbf2, 0x00faf2e8,
- 0x00edf4ef, 0x00edf1ee, 0x00f9f3f7, 0x00faf2f9, 0x00fbf3fa, 0x00fbf6fd, 0x00fcf6ff, 0x00fbf8ff, 0x00ecfaf3, 0x00eefbf7, 0x00f2f9fb, 0x00f4f8fa, 0x00f1f7f7, 0x00f0f7f7, 0x00f2f6fa, 0x00f5f6fa,
- 0x00f0f6ed, 0x00f4f7ef, 0x00f7f5f2, 0x00f9f7f5, 0x00f9f7f4, 0x00f2f7eb, 0x00f1f5ec, 0x00f3f3ef, 0x00eaf2e7, 0x00edf2eb, 0x00f2f2f3, 0x00f6f3f4, 0x00f5f1f0, 0x00f5f2ed, 0x00f6f3ed, 0x00f6f5eb,
- 0x00eff2ea, 0x00e7eae2, 0x00eae9e4, 0x00eeede9, 0x00ecebe9, 0x00ece9e9, 0x00f3edef, 0x00f2ecef, 0x00ebf1ea, 0x00ecede6, 0x00eeefea, 0x00dfecde, 0x00ede6ec, 0x00e4e1e8, 0x00f0e9f4, 0x00f7eff2,
- 0x00f5e6d0, 0x00f6ecd5, 0x00f2e9db, 0x00e7e9e5, 0x00eae3f0, 0x00e6e6ec, 0x00eaeaec, 0x00e6eaed, 0x00d9e9e5, 0x00dbe9e7, 0x00e3ecf0, 0x00ebebef, 0x00f7eaea, 0x00f8e4e2, 0x00ffe8e5, 0x00ffe5e3,
- 0x00f0e6de, 0x00f1e9e6, 0x00fff9fa, 0x00fffcfd, 0x00fcfdff, 0x00fbfdfe, 0x00fafbfe, 0x00bcbdc3, 0x001e271d, 0x00020600, 0x00080604, 0x000c0509, 0x000c070a, 0x00120b0b, 0x00170d0c, 0x00322723,
- 0x003b3224, 0x00201303, 0x00230f03, 0x00503722, 0x0052361a, 0x001a0d09, 0x0008050c, 0x00060009, 0x00020000, 0x00020100, 0x000b010b, 0x000e020d, 0x000c0307, 0x000c0106, 0x00170a14, 0x00231520,
- 0x00221a10, 0x00221c13, 0x002f221f, 0x002d201c, 0x003b3332, 0x003e3a39, 0x00312e31, 0x00110d15, 0x00091213, 0x0000090e, 0x00050a15, 0x00010710, 0x00090a0d, 0x0015100f, 0x00291d18, 0x00362119,
- 0x00372812, 0x00352512, 0x002d1d11, 0x0027180f, 0x001f1312, 0x00170e1e, 0x00120c2b, 0x00110d2d, 0x00070b27, 0x00070a29, 0x000b0d2d, 0x000c0e2f, 0x000f122a, 0x00131326, 0x00161121, 0x0014111c,
- 0x000c0e0c, 0x000d0e09, 0x0016170f, 0x00252514, 0x003b3c20, 0x00494a26, 0x0055572d, 0x005b5e2c, 0x00616a2f, 0x006b7236, 0x006a6f3b, 0x00606439, 0x00494c27, 0x003a381a, 0x00241d0a, 0x0021190c,
- 0x00141305, 0x001a180f, 0x0027231d, 0x002b2923, 0x00292a26, 0x00242522, 0x001d1d1d, 0x00161319, 0x00080f0d, 0x00050c0a, 0x000a090f, 0x000f0a13, 0x000f0c12, 0x00141118, 0x001e181f, 0x00201e23,
- 0x00193328, 0x00495e64, 0x007e87a9, 0x006b6ea6, 0x00444394, 0x0043449b, 0x004b52a8, 0x005b66ba, 0x00637dc4, 0x006d8cd0, 0x007c94df, 0x008690dd, 0x00798cd2, 0x007188cd, 0x00708cd1, 0x007390d3,
- 0x007c9cdb, 0x0097b1e5, 0x00bac9eb, 0x00e2e5f2, 0x00fefdf2, 0x00fefbfa, 0x00fffbff, 0x00fffbff, 0x00f8fbf5, 0x00f8faf7, 0x00fdfdfe, 0x00ffffff, 0x00fdfeff, 0x00fcfcfc, 0x00faf8fc, 0x00fffbff,
- 0x00f9fcf3, 0x00f7fbf4, 0x00fcfcfc, 0x00fdfcfd, 0x00d9ddde, 0x00818587, 0x00555660, 0x005b5d6a, 0x00556067, 0x00545d69, 0x004f5361, 0x004a4c59, 0x003b404d, 0x003b3f4d, 0x00494958, 0x00535363,
- 0x00555d63, 0x005c6368, 0x00626571, 0x005f6371, 0x00575d66, 0x0053545a, 0x00494149, 0x005f5558, 0x00574c3c, 0x00271804, 0x00482e18, 0x008e6953, 0x0082563b, 0x00744627, 0x00714127, 0x007e4e37,
- 0x00b1845b, 0x00c49064, 0x00b2794e, 0x00b97647, 0x00d09369, 0x00cb9b79, 0x00997b62, 0x006d5f52, 0x003d5048, 0x00294444, 0x002d3c44, 0x00383d43, 0x00242d38, 0x000b1421, 0x0009101d, 0x00152025,
- 0x00354039, 0x003e4a46, 0x005b676c, 0x005b707d, 0x00486985, 0x0068797f, 0x0097a2a6, 0x00a7b8bd, 0x0089acb6, 0x007d9caa, 0x00788d9f, 0x006e7888, 0x00686976, 0x00636573, 0x005a5e6e, 0x004b5366,
- 0x00304554, 0x002b3b49, 0x00344150, 0x003c4352, 0x004b4c58, 0x005d5961, 0x006a676c, 0x0076727b, 0x006f7572, 0x006a6e6e, 0x00636571, 0x00545970, 0x0043485c, 0x003c4251, 0x00323643, 0x00303340,
- 0x003a3f40, 0x00454c4d, 0x00595c61, 0x0066676e, 0x00676671, 0x005e6474, 0x00525b6e, 0x00485163, 0x0035434b, 0x0029353e, 0x00242934, 0x00292b36, 0x00393c44, 0x004b4d53, 0x00605e66, 0x0069666e,
- 0x0059676e, 0x00526066, 0x00485360, 0x003d4656, 0x002e3745, 0x0028303d, 0x002d3240, 0x003a3d48, 0x00505352, 0x00605f5d, 0x0067656a, 0x00696a76, 0x00646674, 0x00515463, 0x003b4052, 0x002b3244,
- 0x001a272c, 0x00273130, 0x00464547, 0x00595655, 0x006b625e, 0x006b6d6b, 0x0065676e, 0x0061606d, 0x00434f59, 0x002c3746, 0x00192136, 0x00192133, 0x00222936, 0x002f353c, 0x0044464c, 0x0059595d,
- 0x0066666b, 0x00626467, 0x0076767b, 0x00bcbbc0, 0x00fdfdfe, 0x00fcfbfc, 0x00fffdff, 0x00fffdff, 0x00f0f6ed, 0x00b9bdb6, 0x00878986, 0x00afb5af, 0x00e2dfe0, 0x00f5f4f7, 0x00fafdfe, 0x00d0d9e2,
- 0x00466d70, 0x00194548, 0x001e4551, 0x001e4253, 0x00244253, 0x001f4352, 0x00214354, 0x00234554, 0x00174348, 0x0019424a, 0x001f4550, 0x001e444f, 0x001b434f, 0x001a424d, 0x00183e49, 0x00163a48,
- 0x00142c39, 0x00132a37, 0x00122437, 0x00132336, 0x00162532, 0x0012212b, 0x001f2d37, 0x00323f46, 0x0047595a, 0x00617472, 0x00889598, 0x00b0bbc1, 0x00d6dfe4, 0x00eaf1f5, 0x00f5f8fc, 0x00f8ffff,
- 0x00f1fcf7, 0x00f0f9f5, 0x00f7fcfa, 0x00f9fbfa, 0x00fbfcfa, 0x00fbfdfe, 0x00fcffff, 0x00fdffff, 0x00f4fcf8, 0x00f5fcf8, 0x00fbfcfa, 0x00fcfbf8, 0x00f3f4f0, 0x00e7e7e3, 0x00cbc7c5, 0x00b6b2b0,
- 0x00858379, 0x00625e54, 0x00413631, 0x0031261f, 0x00271d12, 0x00291f15, 0x002c1c19, 0x00312220, 0x002b271c, 0x0026231b, 0x002f2a24, 0x00403a2f, 0x004a412f, 0x00554126, 0x007e6041, 0x0088643f,
- 0x0060461f, 0x00443b28, 0x0022303b, 0x002d547c, 0x00307ac1, 0x003172b8, 0x003675be, 0x00407ec3, 0x004085c5, 0x004488ca, 0x004d8ad1, 0x00528cd4, 0x00518fd4, 0x005391d5, 0x005690d7, 0x005590d8,
- 0x005387b8, 0x006893c4, 0x00a6c3f1, 0x00d2eaff, 0x00c6dbf8, 0x0099afd3, 0x00708cb6, 0x006185b5, 0x004d8bc1, 0x004b89c5, 0x004e8ccd, 0x005895d4, 0x00577291, 0x003b3d45, 0x00473431, 0x004b2c1b,
- 0x00332715, 0x0029241a, 0x00221d1d, 0x00211c1c, 0x002a1e19, 0x00472110, 0x00622b18, 0x0075351f, 0x00873810, 0x00933a0e, 0x009e3c12, 0x009d3a14, 0x00893716, 0x00773418, 0x00632a14, 0x00522211,
- 0x00b3b5a8, 0x00292419, 0x00282015, 0x00292516, 0x002b2717, 0x002d2816, 0x002c2915, 0x002d2915, 0x002d2b17, 0x002f2b17, 0x002f2d1b, 0x002a2e20, 0x002e2b1b, 0x00322a1a, 0x00352b1a, 0x00352c19,
- 0x002c2717, 0x002d210e, 0x00553f28, 0x008c6a48, 0x009b6637, 0x009a6837, 0x00a27041, 0x00aa784a, 0x00ab7a53, 0x00a1704a, 0x008c5a37, 0x0081512f, 0x00a47855, 0x00d2a882, 0x00dbb18a, 0x00d0a781,
- 0x00cd9b74, 0x00cb9b73, 0x00c5936c, 0x00b18059, 0x0094653e, 0x0096663f, 0x00a97851, 0x00b98660, 0x00bd9168, 0x00c6956f, 0x00cb9d74, 0x00c7a177, 0x00c6995f, 0x00c89659, 0x00b98852, 0x00825834,
- 0x0023141b, 0x00221e47, 0x0037427f, 0x0030448f, 0x00243e85, 0x0040477b, 0x0069688d, 0x009290ae, 0x00c7c3d0, 0x00e7e1e7, 0x00f5ecec, 0x00f9f1ef, 0x00faf6f4, 0x00f4f3f3, 0x00eff1f5, 0x00e7edf6,
- 0x00e9eaee, 0x00eeedf0, 0x00efebf1, 0x00eeebf1, 0x00efedf0, 0x00eeecee, 0x00eeeced, 0x00eeedeb, 0x00eceaea, 0x00edeceb, 0x00f2eaf2, 0x00f4e6fa, 0x00f0e5f1, 0x00ece4ef, 0x00ebe3f0, 0x00e9e3f5,
- 0x00e6e5fa, 0x00e1e0f9, 0x00e2dff3, 0x00e4e0e9, 0x00e3e1da, 0x00e9e3db, 0x00e8e2d7, 0x00eae5e0, 0x00e8e5ea, 0x00e4e1ee, 0x00dfddef, 0x00e1e0f2, 0x00f0eef8, 0x00f4eef1, 0x00e0d8d8, 0x00d3cac5,
- 0x00cfc6bc, 0x00ccc4b8, 0x00b7ada3, 0x00a2988b, 0x00847b67, 0x00786e56, 0x007a7055, 0x007d7254, 0x007e714f, 0x007e724f, 0x00837455, 0x00817256, 0x00827155, 0x007e6d51, 0x007b684f, 0x007c6950,
- 0x0078674e, 0x00786d55, 0x00756c54, 0x006f6951, 0x00626049, 0x00747464, 0x00d2d1c9, 0x00f9f8f8, 0x00fcfafd, 0x00fdfbff, 0x00fdfefe, 0x00f0f2ee, 0x00737675, 0x000d0f17, 0x000e1124, 0x00161834,
- 0x00161a2f, 0x001a2038, 0x00212545, 0x0022274e, 0x00272e5a, 0x00303764, 0x003c406d, 0x00444872, 0x004a4d71, 0x0053557a, 0x0059597b, 0x00595e7d, 0x00605e78, 0x00635c73, 0x006c6479, 0x006f677e,
- 0x004c516c, 0x00566590, 0x006c88c2, 0x006c95dd, 0x005e96ec, 0x005a97ef, 0x005797f3, 0x005b90f5, 0x005f8bf4, 0x006b8efa, 0x007190f2, 0x007591e7, 0x00738dd2, 0x00748dca, 0x005d74b0, 0x00425793,
- 0x00353958, 0x00213969, 0x0028528a, 0x003061a1, 0x004673b0, 0x005286ce, 0x003a79cd, 0x002675da, 0x003c71c9, 0x004c5fa5, 0x003e437a, 0x003e4379, 0x00404677, 0x00464c7d, 0x00444979, 0x00494b7d,
- 0x00484b76, 0x004e4e7a, 0x00494b75, 0x00494875, 0x00474a71, 0x00484a6e, 0x00434968, 0x0046496a, 0x00434b68, 0x00454b6c, 0x00444b70, 0x00434c71, 0x00485078, 0x004a537e, 0x004b5582, 0x004c5583,
- 0x004d5385, 0x00494f82, 0x00464b81, 0x0044487f, 0x0041447c, 0x00404379, 0x0041467a, 0x00434a7b, 0x00454d78, 0x00474f78, 0x004a5278, 0x004b5377, 0x004e5579, 0x004f567b, 0x0050577e, 0x0050567e,
- 0x004a5077, 0x00464b75, 0x00424772, 0x003d436c, 0x003a3e6b, 0x00393d6d, 0x003b3e6f, 0x003b3f6e, 0x003b4168, 0x00383e64, 0x003a3d62, 0x003d4164, 0x003c4165, 0x003d4268, 0x003e426a, 0x003e426c,
- 0x00353d69, 0x00323763, 0x002c315e, 0x00282d5c, 0x00262959, 0x00222652, 0x001d2149, 0x00191b41, 0x00121435, 0x00101231, 0x000c0e2a, 0x00090d21, 0x000d0f26, 0x00080922, 0x000c0c25, 0x0005041b,
- 0x00646472, 0x00e4e2ec, 0x00fefbfe, 0x00fcfbfe, 0x00fcfcf9, 0x00fcfffb, 0x00c7c7c5, 0x0054514c, 0x001b1307, 0x002c2113, 0x003d2d20, 0x00372919, 0x00231b0f, 0x0016120a, 0x00151210, 0x00181719,
- 0x0016191a, 0x00171816, 0x0017140d, 0x00181309, 0x001f1909, 0x00211a0b, 0x00362d21, 0x00857a72, 0x00e5dbda, 0x00ece5e7, 0x00f1e7ef, 0x00f7e8f6, 0x00c6bac0, 0x0069605e, 0x00292318, 0x002a271a,
- 0x001e1c14, 0x001e1c1e, 0x005d5966, 0x008781a0, 0x0075739a, 0x006267b4, 0x00535bb8, 0x005a5ab8, 0x006c68c3, 0x007973c7, 0x007f75c4, 0x00756db8, 0x005e5e9f, 0x00414885, 0x0048538d, 0x00606ea6,
- 0x007b8ab0, 0x00727a91, 0x006a676c, 0x007c6c58, 0x009e8252, 0x00a78654, 0x00967343, 0x00795630, 0x00897367, 0x00d9c9c9, 0x00ebdfe1, 0x00e6dbd6, 0x00d5ccc3, 0x00beb6a8, 0x007a7061, 0x004b402e,
- 0x003a301d, 0x00382c1b, 0x00352717, 0x002e1f11, 0x00211006, 0x00140b02, 0x00151305, 0x00252111, 0x00403624, 0x00514731, 0x00594b37, 0x00564734, 0x00443729, 0x00372b22, 0x001f140d, 0x00554c49,
- 0x00e0dfde, 0x00fdfdfc, 0x00faf9fa, 0x00faf9f9, 0x00fefefd, 0x00fbfbf9, 0x00fcfcfc, 0x00fdfdfe, 0x00fefffe, 0x00fbfdfc, 0x00fcfefc, 0x00fafcfa, 0x00fefffd, 0x00fdfffd, 0x00fcfefc, 0x00fcfefd,
- 0x00fdfefc, 0x00fcfefc, 0x00fafffc, 0x00fdfffb, 0x00fafffb, 0x00fbfdfb, 0x00fbfdfd, 0x00fcfcfc, 0x00fffffc, 0x00fffffa, 0x00fcfcf8, 0x00fcfcf8, 0x00fffef8, 0x00fffcf7, 0x00fdfbf7, 0x00fefcf7,
- 0x00f9fffc, 0x00fbfffd, 0x00fdfcfb, 0x00fdfafb, 0x00fdfafd, 0x00fcfafd, 0x00fefbfd, 0x00fcfbfb, 0x00f7fff9, 0x00f5fefc, 0x00f8fef9, 0x00fbfdfe, 0x00fbfefe, 0x00f8fdfe, 0x00f9fefa, 0x00fafffd,
- 0x00fcfef6, 0x00fcfcf8, 0x00fdfdf9, 0x00fafaf5, 0x00fafaf3, 0x00f9fff3, 0x00f6feef, 0x00f9fef3, 0x00fafef6, 0x00fbfefa, 0x00fdfefe, 0x00fefffe, 0x00fefdfe, 0x00fdfefc, 0x00fdfefa, 0x00fcfef7,
- 0x00f9fcfa, 0x00fcfefd, 0x00fdfefd, 0x00fbfdfc, 0x00fdfdfd, 0x00fcfdfc, 0x00fdfcfb, 0x00fcf8f8, 0x00fdfdfb, 0x00fefcfa, 0x00fbfefa, 0x00f7fef3, 0x00fffcfc, 0x00fffafb, 0x00fefbfe, 0x00fefbfd,
- 0x00f4fef4, 0x00f9fdf5, 0x00fbfdf5, 0x00fdfefa, 0x00fdfcfe, 0x00fdfbfa, 0x00fefef9, 0x00fdfdfa, 0x00fbfffb, 0x00fbfffc, 0x00f7fef8, 0x00fafffa, 0x00fdfbfa, 0x00fffcfa, 0x00fcf7f6, 0x00fff7f6,
- 0x00fbfbf6, 0x00fefaf9, 0x00fdf7f7, 0x00fcf8f7, 0x00fcfdfd, 0x00fbfcfc, 0x00f5f7f7, 0x00abb0b1, 0x00242a24, 0x001a1e17, 0x001f1e1c, 0x00201c1f, 0x00181618, 0x00151110, 0x00100b08, 0x001f1a14,
- 0x002e1f15, 0x00211007, 0x00281605, 0x00553e1e, 0x004a2d0f, 0x001e110a, 0x000e090c, 0x00090309, 0x00060008, 0x000c010f, 0x000d0311, 0x000e0312, 0x00110310, 0x00150713, 0x00160a11, 0x0021141c,
- 0x002b1b14, 0x002e1e19, 0x00271913, 0x002e231a, 0x003b322b, 0x003d3831, 0x002e2d29, 0x000f1010, 0x000b0e10, 0x00050911, 0x00040812, 0x0001080d, 0x000c0c0f, 0x00181211, 0x00291e17, 0x0031221a,
- 0x00362614, 0x00312315, 0x00271911, 0x001e120c, 0x00170e0f, 0x00140c1c, 0x00120a26, 0x000f0a27, 0x000a0e2d, 0x000a0e2f, 0x000c0e2f, 0x000b0e2e, 0x000d1128, 0x000e0f20, 0x00100e1b, 0x00121019,
- 0x0016150f, 0x0014130c, 0x001a180e, 0x00232211, 0x00302f17, 0x00393919, 0x0044461f, 0x00505326, 0x0060652e, 0x006f7338, 0x0070743e, 0x0064683a, 0x004d4e27, 0x003e3b19, 0x002b240d, 0x00292111,
- 0x002a2116, 0x002a211b, 0x002d2620, 0x002c2921, 0x0024241d, 0x001d201c, 0x00181c1a, 0x00141316, 0x000d0f11, 0x000b0d0f, 0x000c0a0f, 0x000c0a0e, 0x000e0d10, 0x00131014, 0x00191518, 0x001a181b,
- 0x00223d37, 0x00445a6a, 0x00394b72, 0x00354286, 0x00333ba5, 0x003c46b9, 0x004b5aca, 0x00596bd9, 0x006482dc, 0x007191e5, 0x007794e2, 0x008392e8, 0x007690e0, 0x006585d5, 0x00557acb, 0x004973c9,
- 0x004063bc, 0x004d67b9, 0x006b7cc1, 0x00b3bbe6, 0x00f4f7fc, 0x00e5e3f1, 0x00c0bccb, 0x00b8b5c2, 0x00ceced4, 0x00e7e7ea, 0x00f6f6f6, 0x00f6f8f4, 0x00fdfefc, 0x00fafbf8, 0x00f4f5f6, 0x00f6f7fa,
- 0x00fbfbf8, 0x00fcfcf9, 0x00fcfafa, 0x00fdfdfd, 0x00e6e8ea, 0x0093979a, 0x00505359, 0x0055585f, 0x00575c66, 0x00575b68, 0x004f515e, 0x00474952, 0x00424750, 0x00484d57, 0x00555964, 0x005c606d,
- 0x005f646d, 0x0060646e, 0x005e616c, 0x00565b64, 0x004c525b, 0x00484e4a, 0x00434638, 0x004e4d3e, 0x00685a3e, 0x005e4629, 0x00654724, 0x00a8805c, 0x00b58361, 0x009b6343, 0x00885133, 0x00aa6e55,
- 0x00cea579, 0x00dfab7b, 0x00d69862, 0x00dc8e54, 0x00db925e, 0x00c88d64, 0x009c7659, 0x006b5848, 0x004c4e4b, 0x004e575e, 0x00464f55, 0x002a2829, 0x0003070d, 0x00000208, 0x00000205, 0x00010404,
- 0x00060702, 0x0012110d, 0x002b2d2a, 0x003e474e, 0x0042576b, 0x005f6f70, 0x00788784, 0x007d9295, 0x0072909e, 0x007a96a4, 0x007f96a3, 0x00828f98, 0x00787d83, 0x006e737d, 0x005e6472, 0x004d5869,
- 0x0044566c, 0x003e4a5e, 0x00394256, 0x003a3f50, 0x00444350, 0x00504d55, 0x005b5a5e, 0x0067656d, 0x006d6c70, 0x006d6a6e, 0x00646470, 0x00565c71, 0x004a4e61, 0x00424755, 0x00323943, 0x002c303b,
- 0x0030363d, 0x0041444b, 0x0053545b, 0x005c5e63, 0x00616169, 0x005e6371, 0x00545e6e, 0x004a5665, 0x00404652, 0x00333a45, 0x002c2f3b, 0x0030333c, 0x0041454b, 0x00515459, 0x00626267, 0x0068686d,
- 0x00686e79, 0x005f6772, 0x004b5462, 0x00384352, 0x002a3544, 0x00283240, 0x00333a46, 0x00434651, 0x005d5b5f, 0x00696668, 0x0069666d, 0x00636471, 0x005b5d6a, 0x004c4f5c, 0x00363b49, 0x0029303c,
- 0x003e454c, 0x005c5f64, 0x00787979, 0x00878783, 0x0086837a, 0x00777876, 0x00666b6e, 0x005f5f69, 0x004d5562, 0x00363e4f, 0x0020293b, 0x001c2436, 0x00202735, 0x002d323a, 0x003f4347, 0x004e5350,
- 0x00605e67, 0x006f6d74, 0x0078777d, 0x00b0b1b5, 0x00fcfcfd, 0x00fbfdfc, 0x00fcfefc, 0x00fefffd, 0x00f8fbfa, 0x00c8cbca, 0x00828584, 0x00a2a8a3, 0x00dedbdc, 0x00f5f2f4, 0x00fbfcfc, 0x00e7edf3,
- 0x006b8b90, 0x00274c53, 0x001e4650, 0x001f4553, 0x00224051, 0x001d404f, 0x001d4351, 0x001f4351, 0x001d444f, 0x001c424d, 0x00193f4a, 0x001d434c, 0x001d414c, 0x001d414b, 0x00173b42, 0x00153a40,
- 0x00162b3d, 0x00172b3c, 0x00142536, 0x00192938, 0x00293742, 0x00434f57, 0x006e777d, 0x00959d9f, 0x00bdc3c4, 0x00dce4e2, 0x00f3f9f9, 0x00f8fcfd, 0x00f9fffe, 0x00fbfefc, 0x00fdfffd, 0x00fafefb,
- 0x00fcfefb, 0x00fdfefc, 0x00fefcfb, 0x00fdfdfa, 0x00fbfbf9, 0x00fafbfa, 0x00f8fbfb, 0x00f8fefb, 0x00f9f9fa, 0x00eff1ef, 0x00dcdcd9, 0x00c4c4c0, 0x009c9d98, 0x007c7d78, 0x0056544f, 0x00403e38,
- 0x002e2620, 0x002b221b, 0x002e201a, 0x0036271e, 0x003b2c1f, 0x003f3223, 0x003f3024, 0x0045372c, 0x00473d35, 0x00473d3a, 0x004a433d, 0x00585345, 0x004f402d, 0x00594224, 0x0094754d, 0x00986e40,
- 0x0079532c, 0x00483521, 0x00181f26, 0x0020466a, 0x003981c4, 0x00377dc0, 0x003579c1, 0x003a7dc3, 0x003f80c6, 0x004384cb, 0x004988d0, 0x00508ed5, 0x00528fd4, 0x00528ed2, 0x004f89ce, 0x004d88ce,
- 0x00729cd4, 0x009fc8f8, 0x00a5c8f6, 0x009cbae4, 0x00b3cff6, 0x00afcef2, 0x007ca0ca, 0x005b87ba, 0x004e89c0, 0x004e8ac8, 0x004e8ecb, 0x004f8cc8, 0x004b6281, 0x003d393f, 0x004a332b, 0x0051301e,
- 0x003e271b, 0x0031231e, 0x00241d1b, 0x00231d1a, 0x00312118, 0x004d2311, 0x00672c13, 0x0079361c, 0x00903712, 0x00993912, 0x00a03a13, 0x009c3811, 0x00883516, 0x00723015, 0x005c2710, 0x004e2311,
- 0x00b2b3a7, 0x00251f14, 0x00241d12, 0x00272416, 0x00282516, 0x00272313, 0x00262312, 0x00262412, 0x002a2514, 0x00292612, 0x00272716, 0x0022291b, 0x00292618, 0x002d2717, 0x002f2717, 0x002d2615,
- 0x002c2314, 0x002a1d0b, 0x00654d34, 0x00aa8461, 0x00c58b5b, 0x00bd8756, 0x00b98554, 0x00b17c50, 0x00aa7350, 0x00a06c4a, 0x008f5e3c, 0x008c5d3c, 0x00a47757, 0x00b78b6a, 0x00c59a77, 0x00b38968,
- 0x00946641, 0x009a6d49, 0x00b0805c, 0x00b88662, 0x00a87653, 0x0092613d, 0x0093623e, 0x00a87552, 0x00b88a65, 0x00c1916d, 0x00c2956e, 0x00bf9765, 0x00c39158, 0x00cb9358, 0x00be8650, 0x00935f38,
- 0x002d1411, 0x00170c20, 0x00373561, 0x004f588c, 0x006d7cb5, 0x00999dc1, 0x00d2cee6, 0x00eae6f6, 0x00f0ecf5, 0x00f4f1f3, 0x00f2efea, 0x00f3f3eb, 0x00f1f4ed, 0x00eef2ee, 0x00ebeff0, 0x00e8edf1,
- 0x00e9ebed, 0x00edeef0, 0x00edecf0, 0x00ececef, 0x00edeef0, 0x00ecedee, 0x00eaecec, 0x00eaecea, 0x00ecebea, 0x00ebece8, 0x00edebeb, 0x00f1e7f6, 0x00eee9f2, 0x00ede9f1, 0x00e9e8f0, 0x00e6e6f5,
- 0x00e3e4f9, 0x00e3e3f4, 0x00e3e0ed, 0x00ebe6e5, 0x00efead9, 0x00f0e7de, 0x00eae1dd, 0x00e8e0e6, 0x00ebe4f6, 0x00e7e0f5, 0x00e5e0f3, 0x00e8e5f4, 0x00f2eef2, 0x00f2ebed, 0x00efe5e6, 0x00ece3e1,
- 0x00f1e8e6, 0x00f5ede9, 0x00eae1dd, 0x00dcd3cb, 0x00ada395, 0x00877c68, 0x00766a53, 0x00796e53, 0x00807457, 0x007e7353, 0x00827555, 0x007f7254, 0x00837358, 0x00817057, 0x007d6a52, 0x007a684f,
- 0x007b6c54, 0x00796e57, 0x007c745e, 0x00767159, 0x00706e5a, 0x007b7a6b, 0x00d4d2cc, 0x00fcf9f9, 0x00fdfcff, 0x00fbf9fc, 0x00fefffe, 0x00f2f4f0, 0x00717273, 0x000f1019, 0x000b0b1e, 0x0013112c,
- 0x0012142a, 0x00191c34, 0x001c1f3e, 0x001d2146, 0x00272e58, 0x00303765, 0x00383e6d, 0x00404776, 0x0050517f, 0x00555985, 0x00595e86, 0x00565f80, 0x00625f78, 0x00655b6b, 0x007f717a, 0x00827278,
- 0x003d3340, 0x002b2b46, 0x0046547e, 0x005173a9, 0x00608cd3, 0x005891de, 0x005d9aee, 0x006797f3, 0x006b8bee, 0x007188df, 0x00717cc8, 0x006f77b1, 0x007a7798, 0x0076758f, 0x004f4962, 0x00241d3b,
- 0x001a1508, 0x00112027, 0x0007223c, 0x00113659, 0x003a5986, 0x0042679f, 0x003a68b1, 0x00316ccb, 0x004669cb, 0x004d53a5, 0x00443f81, 0x003b3d70, 0x00404476, 0x00484b7d, 0x00474c79, 0x004c517e,
- 0x004b4d78, 0x004e5178, 0x004d4c76, 0x00484a70, 0x004c4a72, 0x004a4c6b, 0x004a4a6b, 0x0047496c, 0x00434a6d, 0x0042476f, 0x00404771, 0x00404971, 0x00464d77, 0x0048517e, 0x004a5481, 0x004b547f,
- 0x004e5284, 0x004d5183, 0x004a4e82, 0x00474a80, 0x0044467e, 0x0042447a, 0x00414477, 0x00424776, 0x00494c7a, 0x00494e78, 0x004b5277, 0x004b5375, 0x004d5477, 0x004e5479, 0x004f557a, 0x004e5679,
- 0x004d507b, 0x00494d74, 0x00444870, 0x003f446e, 0x003c416c, 0x003d406f, 0x003e4071, 0x003e4070, 0x0042436d, 0x003f436b, 0x00414568, 0x00404566, 0x0041456a, 0x0040446a, 0x0042456c, 0x0041456e,
- 0x003a406f, 0x00353a69, 0x002f3463, 0x002a2f5f, 0x00282c5b, 0x00242754, 0x001d2049, 0x0016173e, 0x00121334, 0x0010102f, 0x000e102a, 0x0003071c, 0x00101129, 0x0004051b, 0x000a0b20, 0x000d0c21,
- 0x00767582, 0x00e8e7ee, 0x00fffdfe, 0x00fafcfc, 0x00fcfefb, 0x00fbfffd, 0x00b8b8b6, 0x0046443f, 0x0021180a, 0x0035291b, 0x00433326, 0x003a2c1d, 0x0023180f, 0x00140d07, 0x00110d0a, 0x00121212,
- 0x000e1412, 0x00111411, 0x0015130f, 0x0017110a, 0x001d1608, 0x001b1205, 0x0032281d, 0x007f756c, 0x00eaddda, 0x00efe5e2, 0x00f8edf0, 0x00f5e7f3, 0x00a1949a, 0x003b3231, 0x001e1911, 0x00161509,
- 0x000c0c01, 0x00090709, 0x001e1727, 0x003b354b, 0x00585176, 0x005c5e8f, 0x006c74b0, 0x007579b9, 0x007b78c2, 0x008683ce, 0x008f8ade, 0x007977c7, 0x005a5bae, 0x003a4193, 0x00242e84, 0x002a368b,
- 0x00484f99, 0x005a5b94, 0x0069607f, 0x00816a6b, 0x00a47e58, 0x00ad8352, 0x00a97e48, 0x00906738, 0x00876c52, 0x00b39c8d, 0x00e1d0cb, 0x00e1dad5, 0x00dcd1cd, 0x00bbb1a5, 0x006e6155, 0x00443a29,
- 0x003a311f, 0x00362b1a, 0x00322513, 0x002c1c0e, 0x00230f05, 0x00160d04, 0x0019170a, 0x002b2517, 0x004b402e, 0x005f543b, 0x006c5e46, 0x00695b40, 0x00584a3c, 0x0046392d, 0x00281c17, 0x00665b59,
- 0x00eeefee, 0x00fbfbfb, 0x00fdfdfe, 0x00f9fbfb, 0x00fdfefe, 0x00fcfbfb, 0x00fcfbfa, 0x00fcfcfb, 0x00ffffff, 0x00fefeff, 0x00fbfbfb, 0x00f8faf4, 0x00fcfdf9, 0x00fcfcfb, 0x00fcfdfc, 0x00fbfdfb,
- 0x00fdfef9, 0x00fcfef9, 0x00fdfefa, 0x00fafff9, 0x00fdfefa, 0x00fbfefa, 0x00fcfcfa, 0x00fcfefa, 0x00fefefd, 0x00fbfdf9, 0x00fbfdf6, 0x00fcfdf5, 0x00fdfdf7, 0x00fefcf9, 0x00fefaf9, 0x00fffbf9,
- 0x00fafcfc, 0x00f9fdfe, 0x00f9fcfd, 0x00f8f9f9, 0x00fafbfc, 0x00fcfcfb, 0x00fdfcfb, 0x00fbfcfb, 0x00f7fff3, 0x00f5fff2, 0x00f7fdf8, 0x00fafdfb, 0x00fafdfe, 0x00f9fdfb, 0x00f9fdfd, 0x00f9fffc,
- 0x00fcfef8, 0x00f9fbf7, 0x00fdfdfa, 0x00f9fcf5, 0x00fefefa, 0x00f9fff2, 0x00f9fff2, 0x00f8fef7, 0x00fbfcf8, 0x00fafcf9, 0x00fcfdfc, 0x00f9fcf9, 0x00fbfcfd, 0x00fbfbfb, 0x00fdfdfc, 0x00fdfcfa,
- 0x00f8fefd, 0x00f9fdfe, 0x00fafeff, 0x00fafeff, 0x00fdffff, 0x00fbfcfd, 0x00fcfcfb, 0x00fcfaf9, 0x00fffbfb, 0x00fefcfa, 0x00fdfef6, 0x00fdfef1, 0x00fdfdf8, 0x00fcfafb, 0x00fdfafe, 0x00fffcff,
- 0x00ebfefb, 0x00effef8, 0x00f6fff9, 0x00fefdfa, 0x00fffbfc, 0x00fffaf8, 0x00fffcf8, 0x00fffcf7, 0x00fefef7, 0x00fcfef6, 0x00f8fef2, 0x00f6fef5, 0x00f9fcfc, 0x00fafcff, 0x00fbf9fe, 0x00fffafe,
- 0x00fbfbf7, 0x00faf4f4, 0x00fffdfe, 0x00fcfbfc, 0x00fcfdfd, 0x00fcfcfb, 0x00edf3f0, 0x00a1a6a5, 0x00474b43, 0x003f433a, 0x0041433d, 0x003d3b3a, 0x00343333, 0x002a2726, 0x001f1d18, 0x0018180f,
- 0x00231c0c, 0x00251a04, 0x003e2d11, 0x00573e1c, 0x004a2c09, 0x00231504, 0x00110b07, 0x00060401, 0x00080005, 0x000a020a, 0x000e0613, 0x00100611, 0x00120411, 0x00180d15, 0x00170f12, 0x001a1010,
- 0x0030211a, 0x0033241d, 0x002f2019, 0x0032261a, 0x00332d23, 0x0046433a, 0x002d2a26, 0x000e0c0c, 0x0006060b, 0x00040710, 0x0001030b, 0x00000506, 0x000d0c0d, 0x001d1615, 0x00312320, 0x003e2d2a,
- 0x003f2d22, 0x0033241b, 0x0024160f, 0x00191009, 0x00120e0a, 0x000f0a18, 0x000e0822, 0x000d0925, 0x000d0c2c, 0x000c0d2e, 0x000e0e2e, 0x000e0e2d, 0x000f1026, 0x000e0c1c, 0x000f0b18, 0x0015111a,
- 0x001b1712, 0x001b1710, 0x00201c11, 0x0023200f, 0x0025220e, 0x0028270c, 0x00323311, 0x0042431c, 0x00565927, 0x0061662e, 0x00656a33, 0x00585b2b, 0x004a4a21, 0x003e3816, 0x00352b13, 0x00332717,
- 0x00362b21, 0x00332921, 0x00302a21, 0x00302b23, 0x00241f17, 0x00191a19, 0x00131819, 0x00111315, 0x000f0c0d, 0x000e0d0c, 0x000f0d0c, 0x000d0b09, 0x00141010, 0x00161012, 0x001c1515, 0x001e1719,
- 0x001e3c4a, 0x00405977, 0x00374d7f, 0x00384a93, 0x00404eba, 0x004658cf, 0x005367df, 0x00566de7, 0x00607fe6, 0x006a8ee7, 0x007392e7, 0x008a9aea, 0x008fa8f9, 0x008baff7, 0x007195f2, 0x004971d9,
- 0x003d64cf, 0x00435fc9, 0x005567c8, 0x008d96e3, 0x00e2e6fa, 0x00dad8ea, 0x00767382, 0x00403e4d, 0x005c5a62, 0x0079797d, 0x009e9f9f, 0x00b4b6b2, 0x00d8d9d7, 0x00eaeae8, 0x00f6f6f5, 0x00fafbf9,
- 0x00fcfdfb, 0x00fefefc, 0x00fdfcfd, 0x00fffffe, 0x00ebebee, 0x00a4a5a8, 0x00494b51, 0x004d4f55, 0x0050535a, 0x004e525b, 0x00484b55, 0x00434650, 0x004a4d58, 0x0052555f, 0x005d5f69, 0x0061646e,
- 0x0062666e, 0x005c6169, 0x00555966, 0x00474a52, 0x0040424e, 0x003b403c, 0x0044493e, 0x004f5143, 0x00776b4f, 0x008f7954, 0x00917045, 0x00ac8453, 0x00d69d6e, 0x00d09366, 0x00ca8a5f, 0x00d08b64,
- 0x00c49b65, 0x00dfaa72, 0x00df9d62, 0x00d1874b, 0x00c47f50, 0x00ac7857, 0x00977060, 0x00876d6a, 0x008c7b7c, 0x0093827f, 0x00756765, 0x00241f1f, 0x00020203, 0x00000102, 0x00040304, 0x00030100,
- 0x000b0101, 0x00140a00, 0x00211506, 0x0020190f, 0x0027282a, 0x00363e3c, 0x00424e4d, 0x004e6065, 0x00547179, 0x00617c86, 0x006d828b, 0x007b878b, 0x00898c90, 0x00777a84, 0x005d6170, 0x004c5569,
- 0x004a5b74, 0x00435166, 0x003e455a, 0x003b4352, 0x003c3b46, 0x00444349, 0x00535155, 0x005e5d63, 0x00686169, 0x00666469, 0x0062646f, 0x005a6074, 0x00505468, 0x00484c5c, 0x003c3e4a, 0x00353842,
- 0x003a3e46, 0x004b4e55, 0x005a5c63, 0x005e6067, 0x0067666f, 0x00606773, 0x0055616f, 0x004d5865, 0x00404755, 0x00363e4a, 0x00323843, 0x00393e47, 0x004e5159, 0x005d5d65, 0x0064626a, 0x0066646b,
- 0x00636976, 0x005b6370, 0x00464e5d, 0x00313b4b, 0x00252f41, 0x00283242, 0x00373e4b, 0x00484c57, 0x00605e62, 0x006b6669, 0x006d6970, 0x0062626f, 0x00585968, 0x004d4f5d, 0x003d3f4c, 0x003f434c,
- 0x0065676d, 0x00898c91, 0x00a8a9a9, 0x00b7b1b1, 0x00aca7a0, 0x00939292, 0x007a7e7f, 0x006a6d73, 0x00595f6e, 0x00434b5d, 0x002f3949, 0x00212b3b, 0x00212837, 0x002c303a, 0x003d4049, 0x004a4e51,
- 0x005d5b63, 0x006c6a71, 0x00737178, 0x00a7a6ab, 0x00fcfbfd, 0x00fcfcfc, 0x00fafcfb, 0x00fefefd, 0x00fdfcff, 0x00d4d4d5, 0x00828582, 0x00949c96, 0x00dbd9d9, 0x00f4f1f3, 0x00fefdfe, 0x00f4f8fb,
- 0x008ca9ab, 0x002d5255, 0x001f464e, 0x001e4552, 0x00264357, 0x00204254, 0x001f4353, 0x001e4252, 0x001f4352, 0x00214452, 0x00204350, 0x0021454f, 0x0022434b, 0x001c3d44, 0x0013343c, 0x00113139,
- 0x00192939, 0x00303e4d, 0x004c5967, 0x00697480, 0x0097a1a8, 0x00bbc3c6, 0x00e1e6e8, 0x00f0f2f3, 0x00f6f7fa, 0x00fcfbfc, 0x00fdfdfd, 0x00fafbfb, 0x00fcfdfc, 0x00faf9f9, 0x00f8f8f9, 0x00fbfafc,
- 0x00fffcfb, 0x00fdfcfa, 0x00fefdfc, 0x00fefffd, 0x00fbfcfa, 0x00fafafa, 0x00eff0f1, 0x00d8dcdb, 0x00bcb9b8, 0x00999996, 0x00747370, 0x0053524d, 0x00383631, 0x00312e29, 0x00322f29, 0x002d2b25,
- 0x003b2f29, 0x003c3228, 0x0044352c, 0x0049372c, 0x00553e32, 0x00563f33, 0x005a4439, 0x005d4b3f, 0x005d4e47, 0x005a4e49, 0x005e5349, 0x005d5b49, 0x00453620, 0x00624b2a, 0x00a8835b, 0x00a5774a,
- 0x00885f33, 0x00503720, 0x00212222, 0x001f3e59, 0x004181bd, 0x004387cd, 0x003c81cb, 0x003d7ecb, 0x003e7eca, 0x003f7fc9, 0x004382ca, 0x004b89cf, 0x00518dd2, 0x00528dd3, 0x00528cd4, 0x00558ed8,
- 0x007ba7e0, 0x0090bbee, 0x007fa5dc, 0x006a8dbd, 0x0081a4d5, 0x00a2c9f4, 0x0094bfef, 0x00709ed4, 0x005187c4, 0x004d8ac7, 0x00508cc7, 0x004b83b6, 0x00495673, 0x00423a40, 0x0050352e, 0x00573121,
- 0x00442e21, 0x00372923, 0x002b201d, 0x002c1f1b, 0x003a241b, 0x00552514, 0x006c2c12, 0x007e3316, 0x00953612, 0x009b3812, 0x00a13a14, 0x009c3912, 0x00863415, 0x006f2d15, 0x00592613, 0x00492314,
- 0x00b2b3a7, 0x00221e13, 0x00211b11, 0x00242114, 0x00232012, 0x00221f10, 0x00232010, 0x00232110, 0x00252310, 0x0026220f, 0x00212211, 0x001e2215, 0x00222113, 0x00272012, 0x00262112, 0x00271f14,
- 0x00252416, 0x00271e10, 0x0067503a, 0x00af8765, 0x00c8925e, 0x00c89265, 0x00bf8b61, 0x00b07f58, 0x00a87353, 0x009f6b4d, 0x00885639, 0x00805033, 0x007e5032, 0x007f5333, 0x009f7554, 0x009a7050,
- 0x0087583b, 0x008c5c40, 0x00ad7d5f, 0x00c59475, 0x00cb9a7b, 0x00ac7d5b, 0x008e5f3d, 0x00926240, 0x00af815d, 0x00ba8b67, 0x00ba8c63, 0x00bd9261, 0x00bf8c54, 0x00c18c5a, 0x00b98759, 0x0095694b,
- 0x0058413a, 0x00574a52, 0x008b8697, 0x00b7b4ce, 0x00dbd7f4, 0x00ede9f6, 0x00f7f5fb, 0x00f5f2f5, 0x00f1eeef, 0x00f5f2ef, 0x00eeeee7, 0x00edeee7, 0x00eef0ea, 0x00eff0ec, 0x00ecedeb, 0x00eceded,
- 0x00e7ebf1, 0x00edeff6, 0x00eef0f7, 0x00ecf0f6, 0x00ebf0f4, 0x00e9eef1, 0x00e8edef, 0x00e8edee, 0x00e9eced, 0x00eaecee, 0x00ebede8, 0x00f0ece0, 0x00eef0e1, 0x00ecf0e3, 0x00e6f1e4, 0x00e5f0e8,
- 0x00e4edea, 0x00e6eae3, 0x00e2e5d5, 0x00f1edca, 0x00e3e1a7, 0x00d7d1b7, 0x00d8d2ce, 0x00dbd5dd, 0x00e1dbf5, 0x00e5e1f9, 0x00e5e3f4, 0x00ececf3, 0x00eeefeb, 0x00eeebec, 0x00eee8e9, 0x00eee7ed,
- 0x00eae6e7, 0x00edeaea, 0x00ece9e8, 0x00eee9e5, 0x00dfd8d1, 0x00bdb4a9, 0x008e8476, 0x00736a5a, 0x00746854, 0x00766a54, 0x007c7057, 0x00797156, 0x00796d57, 0x007d705b, 0x007f705b, 0x007f6f5a,
- 0x007d7157, 0x007e745d, 0x007a715a, 0x00746e54, 0x006b694f, 0x007f7f6f, 0x00d3d2cb, 0x00fbf8f5, 0x00fdfdfe, 0x00fcfbfd, 0x00fdfefd, 0x00f4f6f2, 0x006f7172, 0x000e0e18, 0x0006061a, 0x000d0b27,
- 0x000d1029, 0x0013152f, 0x00161736, 0x001b1c40, 0x002b2d56, 0x00373965, 0x003e426e, 0x00474a77, 0x0052567f, 0x00575d87, 0x005b628a, 0x005a618c, 0x0068627e, 0x006e606e, 0x00857270, 0x00836b61,
- 0x004e352e, 0x001c0a0b, 0x00160e1c, 0x00171e37, 0x002c3963, 0x00345071, 0x003f5e7c, 0x00445b7b, 0x004d5369, 0x0056515a, 0x005e4d42, 0x007b6045, 0x009f7c4f, 0x00a37f51, 0x007b5529, 0x003e1504,
- 0x00190301, 0x00140806, 0x00211711, 0x00483327, 0x00915736, 0x00935f42, 0x007a4f42, 0x00564857, 0x004a4f78, 0x004e4d75, 0x0045476f, 0x00434774, 0x00414472, 0x00484b79, 0x004b4f79, 0x004f517b,
- 0x004f4f76, 0x00505178, 0x004d4f73, 0x004f5070, 0x00565474, 0x0050516f, 0x00494e6c, 0x00484d6c, 0x0042476d, 0x0040436d, 0x003f4270, 0x003f4572, 0x00434a77, 0x00464f7c, 0x0048527e, 0x0049517c,
- 0x004c507f, 0x004e5180, 0x004e4f80, 0x004c4d80, 0x004a4b80, 0x0047497d, 0x00454677, 0x00454673, 0x00454871, 0x00474c71, 0x004a5072, 0x00494f70, 0x004b5071, 0x004c5073, 0x004e5275, 0x004d5274,
- 0x00494e77, 0x00484e73, 0x00444a70, 0x0040466e, 0x003f446e, 0x003e4271, 0x003f4173, 0x00414372, 0x0044486f, 0x00474b71, 0x00484d6f, 0x00484d6e, 0x00494c73, 0x00484b73, 0x00464970, 0x00464971,
- 0x003f4675, 0x003a406f, 0x00313666, 0x002d3262, 0x00272a59, 0x00242753, 0x001b1e47, 0x0016173e, 0x00131532, 0x0012132e, 0x000d0f29, 0x00060922, 0x000c0c27, 0x0007081e, 0x0007081b, 0x00171627,
- 0x0090939b, 0x00f1f1f5, 0x00fffffe, 0x00faf9fa, 0x00fdfffc, 0x00fdfefd, 0x00a4a3a2, 0x00352f2a, 0x00251a0f, 0x003f3124, 0x0047362a, 0x00413224, 0x00261a0f, 0x00130c05, 0x00080702, 0x00060906,
- 0x000a0d0c, 0x0010110f, 0x0013100b, 0x00150f08, 0x001a1107, 0x00160c03, 0x002c2216, 0x007b7362, 0x00e5dcd0, 0x00f1e8de, 0x00fcf2ed, 0x00f1e8e6, 0x00837a76, 0x001d1714, 0x00110d08, 0x00120f08,
- 0x00060502, 0x00080103, 0x00110b0b, 0x001f1516, 0x00271c21, 0x002f272a, 0x0047434c, 0x005c5769, 0x006f719b, 0x008e8fcb, 0x00999ce8, 0x00787dd9, 0x004e53b9, 0x003339a5, 0x001d248e, 0x00151c88,
- 0x00261e8e, 0x00352b85, 0x0050407e, 0x00735875, 0x0099745d, 0x00a67d57, 0x00a67d4e, 0x00a0794c, 0x007b5d3f, 0x00836452, 0x00b7a49b, 0x00c4c1c0, 0x00ccc5c3, 0x00a8a197, 0x004d4536, 0x00393121,
- 0x00352918, 0x00332517, 0x00312113, 0x002c1b0d, 0x00241005, 0x00190f07, 0x001d1910, 0x002e281d, 0x004d432e, 0x0061563a, 0x006e6045, 0x00706245, 0x00615340, 0x004a3d2f, 0x00352721, 0x007a6c6a,
- 0x00f4f5f4, 0x00fcfdfc, 0x00fcfdfd, 0x00fbfdfd, 0x00fcfdfe, 0x00fcfcfd, 0x00fdfefe, 0x00fcfdfd, 0x00fefcfd, 0x00fffffe, 0x00fcfefc, 0x00fefffe, 0x00fdfefe, 0x00fefefe, 0x00fefefc, 0x00fdfefb,
- 0x00fffffe, 0x00fffffe, 0x00fefefd, 0x00fefffe, 0x00ffffff, 0x00fdfdfe, 0x00fefefe, 0x00fefffc, 0x00fffffb, 0x00fdfffa, 0x00fffffa, 0x00fefefb, 0x00fdfdfe, 0x00fffeff, 0x00fffefe, 0x00fefdfd,
- 0x00fafefe, 0x00fcffff, 0x00fafefd, 0x00fafdfb, 0x00fafefb, 0x00fdfffb, 0x00fbfef8, 0x00fbfef8, 0x00fafff5, 0x00fafff5, 0x00fcfff8, 0x00feffff, 0x00fcffff, 0x00fafeff, 0x00fafeff, 0x00faffff,
- 0x00fdfeff, 0x00fefeff, 0x00fcfffc, 0x00fefffe, 0x00fcfffb, 0x00fdfefb, 0x00fcfff6, 0x00fefff8, 0x00fffef8, 0x00fefefa, 0x00fefffd, 0x00fbfdfa, 0x00fbfdfc, 0x00fcfdfb, 0x00fefeff, 0x00fefeff,
- 0x00fbfeff, 0x00fcfeff, 0x00fcfdfd, 0x00fdfefd, 0x00fdfdfc, 0x00ffffff, 0x00ffffff, 0x00fefcff, 0x00fffcfd, 0x00fffdff, 0x00fefdfa, 0x00fff9f9, 0x00f6fff9, 0x00fcfdfd, 0x00fdfcfb, 0x00fdfcfd,
- 0x00ecfefd, 0x00f2fdfd, 0x00f7fcfc, 0x00fff8fe, 0x00fdfdfc, 0x00fffcfc, 0x00fdfcfc, 0x00fffcff, 0x00fcfefd, 0x00fefffd, 0x00fdfefd, 0x00fcfffd, 0x00fafdfe, 0x00f5f9fc, 0x00f9fdfe, 0x00fafdfe,
- 0x00fcfaf7, 0x00fbf9f6, 0x00fbfefb, 0x00fffeff, 0x00f9fbff, 0x00fffdff, 0x00dfe2e0, 0x00969a99, 0x00626760, 0x00686d63, 0x0065695e, 0x0063655b, 0x005c6058, 0x00535750, 0x00464b42, 0x0040463a,
- 0x003b3c2a, 0x00484129, 0x005c4b2c, 0x0069502e, 0x005e4016, 0x003c3107, 0x00171700, 0x000e0c00, 0x00080703, 0x00050800, 0x00151712, 0x001e211e, 0x00222623, 0x001e2117, 0x00222518, 0x00242815,
- 0x00392b27, 0x003b2f2d, 0x003e332f, 0x00382c28, 0x00362f26, 0x0047453c, 0x002b2721, 0x000c0908, 0x0006040c, 0x0005040f, 0x0002010b, 0x00000405, 0x000f100f, 0x00272120, 0x00443735, 0x00554541,
- 0x00503d35, 0x003d2e29, 0x00251814, 0x00130c09, 0x000a0a04, 0x000b0813, 0x000e071c, 0x000d0a1e, 0x000c0b25, 0x000e0c29, 0x000e0e2a, 0x000f102b, 0x00111124, 0x000f0c1a, 0x00130f19, 0x001d181f,
- 0x002c2516, 0x002e271b, 0x002d2519, 0x00251e12, 0x00181208, 0x00181405, 0x001f1e07, 0x002e2e11, 0x00424419, 0x004f5122, 0x00535525, 0x004b4b1e, 0x00433f19, 0x003b3315, 0x003b3019, 0x003d3120,
- 0x00433429, 0x003c2f26, 0x00342a20, 0x00342b22, 0x002c251a, 0x001f1d1d, 0x00161a1b, 0x00101312, 0x00100e0a, 0x0014110a, 0x0019160e, 0x001c180f, 0x00261d17, 0x00241a17, 0x00201714, 0x001e1312,
- 0x00262f74, 0x00404a88, 0x002b3a69, 0x001d3154, 0x001e3360, 0x002f457b, 0x00455aa1, 0x004e61b7, 0x004f62bf, 0x005469ca, 0x006374c5, 0x007a80b5, 0x008a96ce, 0x00a0b3ea, 0x008fa4e6, 0x00596ebc,
- 0x004558b6, 0x004954b4, 0x005158b8, 0x006f72c4, 0x00c1c0f4, 0x00d4d4eb, 0x00676676, 0x000f0f1d, 0x00010104, 0x000b0d0d, 0x001f211e, 0x00363730, 0x0060615a, 0x00808078, 0x00a3a39d, 0x00d4d5cf,
- 0x00fdfefe, 0x00fdfefd, 0x00fcfcfa, 0x00fefefe, 0x00f4f5f6, 0x00aaacb0, 0x003e4043, 0x0037393c, 0x003c3d42, 0x003e4148, 0x003d4047, 0x0042464d, 0x004e525a, 0x00565a63, 0x005d616a, 0x0061646e,
- 0x005d606b, 0x00585b64, 0x00474a53, 0x00333540, 0x00333541, 0x00363b52, 0x00434961, 0x004d4f5e, 0x006a605a, 0x008d7b64, 0x009b825c, 0x00a2804c, 0x00c5985a, 0x00d4a462, 0x00d5a361, 0x00d09657,
- 0x00af8245, 0x00b18050, 0x00a47a52, 0x009a7864, 0x008c7f8e, 0x007f83a4, 0x008084ac, 0x009391b1, 0x00d6aca8, 0x00eda890, 0x00b67d63, 0x00422e2c, 0x00010000, 0x00020406, 0x00000000, 0x00000100,
- 0x00120401, 0x002f1703, 0x00472d0f, 0x003e200b, 0x002d1603, 0x00221a11, 0x001a1b1a, 0x0019242a, 0x00293b43, 0x00374a52, 0x003f4e54, 0x004e5656, 0x0071726f, 0x00737578, 0x0061656e, 0x00565f6c,
- 0x0055637a, 0x004f5c6f, 0x00474e60, 0x003f4553, 0x003a3a45, 0x00424049, 0x00524f57, 0x005d5c67, 0x0063626d, 0x00686974, 0x00666979, 0x0064667d, 0x00565c6f, 0x004d5060, 0x00424850, 0x0040484c,
- 0x00505257, 0x005d5f64, 0x0066686f, 0x0065676e, 0x00686771, 0x005f6873, 0x0051616c, 0x0047535d, 0x003c4351, 0x00353d48, 0x00393f49, 0x00444851, 0x00565862, 0x0062626c, 0x0065636d, 0x00626068,
- 0x005a626f, 0x00525c69, 0x00424d5a, 0x00313b49, 0x00273141, 0x002e3845, 0x003b424c, 0x00484d54, 0x005f5d60, 0x006b6769, 0x00706d72, 0x006c6e77, 0x00666974, 0x005c5e68, 0x0051535b, 0x00585a5f,
- 0x007a787c, 0x0098989d, 0x00b0adaf, 0x00bbb6b7, 0x00b5b2b0, 0x009e9f9e, 0x00868988, 0x0072777a, 0x005e6673, 0x004c5566, 0x003a4355, 0x0030394b, 0x00272d3d, 0x00262a36, 0x002f323d, 0x0041444a,
- 0x0056565a, 0x00605f65, 0x00626267, 0x00959599, 0x00f3f3f5, 0x00fefeff, 0x00fbfbfc, 0x00fcfcfe, 0x00fefdfe, 0x00dededf, 0x00898b87, 0x0089918c, 0x00d2d2d2, 0x00edebe9, 0x00fdfafb, 0x00fafdfd,
- 0x00b2cbcc, 0x0049686d, 0x00193f47, 0x001e4450, 0x00244659, 0x00234557, 0x001f4250, 0x00214250, 0x00214050, 0x0022424e, 0x00203c48, 0x00223c46, 0x00274148, 0x002c4349, 0x0043565d, 0x005b6d72,
- 0x00838d95, 0x00a0a9b2, 0x00c7ced6, 0x00e1e8ed, 0x00f5fafc, 0x00f9fdfd, 0x00fdfffe, 0x00fcfcfc, 0x00fcfbfb, 0x00fafaf9, 0x00f7f6f5, 0x00f9faf8, 0x00fffffe, 0x00ffffff, 0x00fefcfd, 0x00fcfbfd,
- 0x00fffbfc, 0x00fefbfc, 0x00f8f6f8, 0x00ede9eb, 0x00cecbcc, 0x00acacac, 0x00888a89, 0x00656964, 0x00484544, 0x00363432, 0x002a2826, 0x00302f2a, 0x0033322b, 0x003c3931, 0x00443f38, 0x00464039,
- 0x0052433a, 0x0057483e, 0x005e493e, 0x0062493d, 0x006e4f44, 0x00705246, 0x00765b4f, 0x00755e51, 0x00705e52, 0x006d6054, 0x006e6055, 0x00594f44, 0x003a2a16, 0x0069543a, 0x00b59474, 0x00b78e66,
- 0x00976c43, 0x00593a20, 0x002d211b, 0x00333f4f, 0x00517ba6, 0x004c87c9, 0x004688d7, 0x004283d1, 0x003e80cb, 0x003f7fca, 0x004080ca, 0x004383cc, 0x004787d0, 0x004988d1, 0x004e8cd5, 0x005692db,
- 0x006195d4, 0x005e90cf, 0x005787c5, 0x005685c2, 0x005f8dc5, 0x0074a2dd, 0x0082b4ea, 0x0073a9e1, 0x00548bc6, 0x004c85c4, 0x005081b8, 0x004e6c97, 0x00484556, 0x004e3a3a, 0x005b3b31, 0x00593827,
- 0x0048322b, 0x003f2c2c, 0x0034251f, 0x0038221c, 0x00492615, 0x00612613, 0x00752d11, 0x00853418, 0x00983410, 0x009d360f, 0x00a23a12, 0x009b3912, 0x00833314, 0x006b2d16, 0x00542614, 0x00432315,
- 0x00b4b2a9, 0x001d1c12, 0x001d1a0f, 0x00211d12, 0x001f1d10, 0x00221f10, 0x00242011, 0x00232011, 0x00242012, 0x0022200e, 0x00211f0f, 0x001e2013, 0x00221e10, 0x00211e0d, 0x00211d0e, 0x001f1d11,
- 0x001f1c16, 0x00281e14, 0x00654f3b, 0x00a88262, 0x00ba8655, 0x00b8845b, 0x00b17e5a, 0x00a97957, 0x00a57357, 0x0097664b, 0x007a4a32, 0x005f3119, 0x005a2d13, 0x00613518, 0x0084573a, 0x00a57959,
- 0x00bb8873, 0x00c18f78, 0x00c8977f, 0x00cd9e83, 0x00d0a184, 0x00c8997b, 0x00a07152, 0x00916443, 0x00a57456, 0x00ad7e5b, 0x00b38662, 0x00b38e64, 0x00b78d66, 0x00b48966, 0x00b99476, 0x00b99e8d,
- 0x00b2a8a6, 0x00c1c0c1, 0x00efecf3, 0x00f4f3fc, 0x00f8eefa, 0x00f4eef7, 0x00f3eef2, 0x00eeebed, 0x00f1ebee, 0x00f0eeed, 0x00edece9, 0x00f0eeec, 0x00f0edec, 0x00f3f0ef, 0x00f2eff0, 0x00eeedef,
- 0x00e9eaef, 0x00ebedf1, 0x00f1f2f7, 0x00f2f2f6, 0x00eeeef2, 0x00ededf1, 0x00ececf0, 0x00ebeaef, 0x00eeebf0, 0x00ececf1, 0x00ebedeb, 0x00f0ede0, 0x00ecf1e3, 0x00ebf2e4, 0x00e7f2e9, 0x00e8f2ec,
- 0x00eaedec, 0x00e8e9dd, 0x00ebe6cc, 0x00f1e8bc, 0x00dacf86, 0x00b9b98e, 0x00c0c6ad, 0x00bec3b9, 0x00b6b9c4, 0x00ccd0db, 0x00e2e7ef, 0x00e8eded, 0x00eef0ea, 0x00eeeaee, 0x00e8e0ea, 0x00e7dbef,
- 0x00e3e2e9, 0x00e4e4e9, 0x00e3e2e5, 0x00eae8e9, 0x00eae5e4, 0x00ece4e1, 0x00c6bdb8, 0x009f968f, 0x00867971, 0x0081756b, 0x00857c70, 0x007c7867, 0x00716b59, 0x006c6552, 0x00726654, 0x00746754,
- 0x007a6e59, 0x00776c56, 0x00736a4e, 0x006b644a, 0x00676446, 0x00767566, 0x00cfcec8, 0x00f8f6f7, 0x00ffffff, 0x00fdfbfe, 0x00ffffff, 0x00f4f4f2, 0x006e7271, 0x000c0e15, 0x00020314, 0x00070721,
- 0x000a0e2a, 0x000d112d, 0x00111332, 0x00191a3b, 0x002b2a4f, 0x0038355c, 0x00413f66, 0x004b4a71, 0x0058587d, 0x005b5f7e, 0x005d6187, 0x005b628c, 0x0065617f, 0x006e636d, 0x00836f6b, 0x00886e5d,
- 0x00593726, 0x00220601, 0x00180204, 0x00130207, 0x0013091a, 0x00181016, 0x00231915, 0x002e1b14, 0x004a2a1b, 0x00674118, 0x0080551c, 0x009f6f25, 0x00be8d3e, 0x00c5944b, 0x009c6c2f, 0x00521e05,
- 0x001d0303, 0x00170203, 0x00391914, 0x0074462e, 0x00c0631e, 0x00be611a, 0x009b4f13, 0x006f421c, 0x00433d37, 0x0047443b, 0x004e4d56, 0x00464b73, 0x0043466e, 0x00464971, 0x004d5077, 0x004d5276,
- 0x005a597b, 0x00595779, 0x00585675, 0x00565570, 0x0052516f, 0x0050536e, 0x004c516e, 0x00494c6c, 0x0040446e, 0x003b3f6b, 0x003a3f6e, 0x003d4373, 0x00434978, 0x00474e7b, 0x004a527d, 0x004a527c,
- 0x004f507d, 0x0050517d, 0x0050507e, 0x004f4f7f, 0x004e5081, 0x004c4e7e, 0x00484a77, 0x00464771, 0x0043486e, 0x0045496e, 0x00484b6e, 0x00474b6c, 0x00484d6d, 0x004a4e6e, 0x004c5071, 0x004d4f72,
- 0x00494d71, 0x00494c71, 0x00484b70, 0x00474a6e, 0x00454770, 0x00434573, 0x00424575, 0x00454874, 0x00494e76, 0x004b5176, 0x004d5274, 0x004e5274, 0x004e5277, 0x004d5179, 0x004b4f78, 0x004a4d77,
- 0x0044497a, 0x003c4273, 0x00363a6b, 0x00313465, 0x00292b5a, 0x00232552, 0x001e1f48, 0x00171b40, 0x00181a37, 0x0012132d, 0x000f112b, 0x00090b26, 0x000c0d28, 0x0007071c, 0x00040516, 0x00222230,
- 0x00a5a4af, 0x00f2f3f4, 0x00fffeff, 0x00fcfcfa, 0x00fffffd, 0x00fcfdfb, 0x00938e8d, 0x0025211a, 0x002e1f17, 0x00423125, 0x004a362c, 0x00433124, 0x00291d13, 0x00130c06, 0x00070302, 0x00030304,
- 0x00050809, 0x00080c09, 0x000b0c05, 0x00110d05, 0x001a1106, 0x001b0e05, 0x00302417, 0x007d735f, 0x00e8dcce, 0x00f2e8d7, 0x00fcf3e5, 0x00f7efe2, 0x00a29c94, 0x00322d28, 0x00070302, 0x000a0803,
- 0x000a0000, 0x00100902, 0x003c3023, 0x00433523, 0x003c2811, 0x003e2913, 0x003c2818, 0x00362722, 0x00504b71, 0x006f73ad, 0x006f77c6, 0x005763c3, 0x00414ab9, 0x00353bac, 0x00202596, 0x001a1c8c,
- 0x0020188d, 0x002a2181, 0x0034276b, 0x00463557, 0x006d564a, 0x008a7056, 0x00a28462, 0x00a18264, 0x00836758, 0x008b7167, 0x00b5a2a2, 0x00bfbdbf, 0x00c2bdbf, 0x008d8c83, 0x00302c23, 0x00292315,
- 0x002d2415, 0x002c2014, 0x002b1c11, 0x0027180c, 0x00200f05, 0x00180c0b, 0x001d1413, 0x002b221a, 0x00473927, 0x00574930, 0x00645537, 0x00645537, 0x00584930, 0x00413222, 0x003e3025, 0x008e807a,
- 0x00fafaf9, 0x00fdfefd, 0x00fafbfb, 0x00fdfefe, 0x00fdfdfe, 0x00fbfcfc, 0x00fcfcfc, 0x00fdfcfc, 0x00fdfdfd, 0x00fdfdfb, 0x00fffefd, 0x00fefcfe, 0x00fdfcfe, 0x00fcfbfc, 0x00fcfbfb, 0x00fcfafa,
- 0x00fffdff, 0x00fefdfe, 0x00fdfffe, 0x00fffffd, 0x00ffffff, 0x00fefdff, 0x00fcfdff, 0x00fcfdfe, 0x00fefdfa, 0x00fcfdfa, 0x00fdfefa, 0x00fcfcf9, 0x00fdfcfe, 0x00fffcff, 0x00fcfafc, 0x00f9fbfd,
- 0x00f7fdff, 0x00f6fbfd, 0x00f5fcfe, 0x00f7fcfd, 0x00f6fffd, 0x00f7fdfc, 0x00f8fefd, 0x00f8fdfc, 0x00fafdfd, 0x00fafdfa, 0x00fdfdfb, 0x00fcfbfe, 0x00fbfbff, 0x00f9fafd, 0x00fafbfc, 0x00fafdfe,
- 0x00fdfeff, 0x00fafffe, 0x00fbfffc, 0x00f9fdfb, 0x00fcfdfd, 0x00fcfcfc, 0x00fefcfa, 0x00fafaf8, 0x00fdfbfa, 0x00fefcfa, 0x00fefdfc, 0x00fefefc, 0x00fcfcfb, 0x00fcfcfa, 0x00fcfcfb, 0x00fdfdfc,
- 0x00fefcfd, 0x00fcfcfb, 0x00fdfefc, 0x00fbfdfa, 0x00fcfefc, 0x00fcfdfc, 0x00fdfdfc, 0x00fdfdfd, 0x00fefcfe, 0x00fcfcfd, 0x00fdfafe, 0x00fbf4fa, 0x00effef7, 0x00f3fdf5, 0x00fbfcf9, 0x00fcfcfa,
- 0x00f2ffff, 0x00f8fcfc, 0x00fdf9fe, 0x00fcf4fb, 0x00f2fcfd, 0x00f9fefc, 0x00fbfbfc, 0x00fdfcfb, 0x00fdfdff, 0x00fcfbfd, 0x00fdfafe, 0x00fefdff, 0x00fafcfb, 0x00f9fcfc, 0x00fafdfd, 0x00f6fafb,
- 0x00fdfbfc, 0x00fafcfa, 0x00fcfefd, 0x00fbfcfd, 0x00fdfeff, 0x00f9fafd, 0x00cdcfcf, 0x00878c87, 0x00686f66, 0x006d7568, 0x006d7464, 0x00737868, 0x006e7868, 0x006f796c, 0x006c786a, 0x006c7768,
- 0x0069695a, 0x006a634c, 0x00716144, 0x0076603c, 0x0072562e, 0x00473918, 0x00171305, 0x000c0902, 0x00080a0f, 0x00090f1b, 0x00212737, 0x00363e53, 0x003b4357, 0x00262f3a, 0x001f2b32, 0x002b3337,
- 0x003d363c, 0x00393235, 0x00423d3f, 0x00413a39, 0x00463d3d, 0x00474340, 0x00242020, 0x000b0607, 0x0008030a, 0x00040109, 0x00040109, 0x00010306, 0x00161716, 0x00322e2d, 0x00514644, 0x005b4d47,
- 0x00554541, 0x003f332f, 0x00231814, 0x000f0807, 0x00070501, 0x0009040f, 0x000d0418, 0x000c061b, 0x000c0921, 0x000b0b24, 0x000e0f27, 0x00111029, 0x00131222, 0x00110e18, 0x00181519, 0x00252221,
- 0x003d311d, 0x00403524, 0x003b3022, 0x002c2217, 0x00180e0a, 0x00110a04, 0x00171305, 0x0022200c, 0x00323616, 0x003f421d, 0x00494a22, 0x00494622, 0x00463f20, 0x00423920, 0x00443623, 0x00483828,
- 0x0049362e, 0x00413127, 0x003d3024, 0x003b3124, 0x00322d1d, 0x0024201d, 0x001b1b1a, 0x0013140f, 0x00120e07, 0x001b160b, 0x00262015, 0x002f281b, 0x00382b21, 0x00372822, 0x002c1c17, 0x00251410,
- 0x00312b6e, 0x003c3a67, 0x00181b33, 0x00050c11, 0x0000080f, 0x000b1221, 0x00191f39, 0x00252850, 0x002d2f62, 0x002f3363, 0x003d3b61, 0x004b4457, 0x00575260, 0x00666470, 0x00686476, 0x00525267,
- 0x003d3863, 0x00393360, 0x00454069, 0x004c476f, 0x0076748a, 0x00858599, 0x00474557, 0x00110f1c, 0x00020105, 0x00020202, 0x00080805, 0x0011130a, 0x0022241a, 0x002a2d21, 0x00484a40, 0x009c9e94,
- 0x00fffcff, 0x00fffcfd, 0x00fdfafd, 0x00fffefe, 0x00faf9fb, 0x00b7b8b9, 0x00383a3d, 0x00272a2c, 0x002c2d34, 0x00313338, 0x003b3d44, 0x0041454d, 0x004f535c, 0x00575c64, 0x005d616a, 0x005e626a,
- 0x00585b65, 0x004e525c, 0x003a3f46, 0x002a2e37, 0x002c3239, 0x00333852, 0x003f425e, 0x004c4b5c, 0x005f575c, 0x0071675b, 0x007f715d, 0x008f7b62, 0x00a99274, 0x00b19b7f, 0x00af9b82, 0x00a8927d,
- 0x008e8079, 0x00726666, 0x00676371, 0x00747895, 0x006f8ecc, 0x006490da, 0x005884cd, 0x006885bf, 0x00b9989b, 0x00d19171, 0x00b06c49, 0x00512f27, 0x00130302, 0x0009070d, 0x00010207, 0x00000107,
- 0x00090401, 0x002b1b08, 0x005f462e, 0x0060472a, 0x0045280b, 0x002a1a0d, 0x00130b0a, 0x00020505, 0x00070e17, 0x000c161b, 0x00131c1e, 0x00212423, 0x0045403e, 0x00595558, 0x005b5b63, 0x005a616e,
- 0x005c6379, 0x00575d6f, 0x004f5463, 0x004a4b58, 0x00464852, 0x004d4a56, 0x00595763, 0x0060606e, 0x00656778, 0x00666a7b, 0x0065697d, 0x005c6277, 0x00545869, 0x00464c5b, 0x00454954, 0x004a4e55,
- 0x005b5e64, 0x0063646a, 0x00686a70, 0x00686971, 0x0065636d, 0x005b646e, 0x004c5b65, 0x003f4b56, 0x00343c4a, 0x00333a46, 0x003a3f4a, 0x00444852, 0x00565862, 0x0061626c, 0x0066656f, 0x0067666f,
- 0x005d6673, 0x0056616c, 0x00485260, 0x00384352, 0x002f3949, 0x00333c4b, 0x003c424e, 0x00474a52, 0x005b5b60, 0x0068676a, 0x006f6f74, 0x0075787d, 0x0084858a, 0x007f7d83, 0x006f6e74, 0x0066676c,
- 0x00706b72, 0x00797679, 0x00827d82, 0x00878385, 0x0089848a, 0x007c7e7d, 0x006d7170, 0x0066696b, 0x005f6472, 0x004f5767, 0x003f495b, 0x00374153, 0x00283041, 0x00222735, 0x00272a35, 0x003b3c43,
- 0x0055545c, 0x005b5b61, 0x005a5960, 0x00838387, 0x00e6e6e9, 0x00fcfdfe, 0x00fcfcfd, 0x00fafbfb, 0x00fefdfd, 0x00e8e7e7, 0x00989998, 0x00848c8a, 0x00c9c8c8, 0x00ede7e7, 0x00fbf6f7, 0x00fafefd,
- 0x00cde2e1, 0x00648486, 0x001e4148, 0x001d434e, 0x001f4154, 0x001d4152, 0x00224250, 0x001f414e, 0x00223b4b, 0x00263d49, 0x0030444e, 0x0043545d, 0x0068757c, 0x00848f96, 0x00acb6bb, 0x00ced6d7,
- 0x00ecf0f5, 0x00f1f4f8, 0x00fafbfe, 0x00fcfdfe, 0x00fbfcfd, 0x00fafbfb, 0x00fefefe, 0x00fdfefc, 0x00fefafc, 0x00fefbfd, 0x00fefcfd, 0x00fdfefe, 0x00fcfdfc, 0x00f9faf9, 0x00fcfafa, 0x00fafaf9,
- 0x00ebe9ed, 0x00d0d1d1, 0x00a6a7a9, 0x00838587, 0x00545756, 0x00353936, 0x00272826, 0x0022211e, 0x002a2828, 0x00312f2d, 0x003a3632, 0x003f3a35, 0x004c4641, 0x004f4a44, 0x0056514a, 0x0059554c,
- 0x00625347, 0x00665548, 0x006a5146, 0x006f5144, 0x00785547, 0x007a5749, 0x00816053, 0x00806356, 0x007a6559, 0x007a685d, 0x006c5e51, 0x00483d30, 0x00392918, 0x00735b4a, 0x00b89c82, 0x00b5926f,
- 0x008d613d, 0x00553217, 0x00402920, 0x004a484e, 0x00667594, 0x005586c4, 0x00488ad5, 0x004486cf, 0x004383cf, 0x004082ce, 0x004082ce, 0x003f81ce, 0x004484d2, 0x004282d1, 0x004787d5, 0x004c8dda,
- 0x005793dd, 0x00528fd2, 0x005490d5, 0x00548fcf, 0x005189c6, 0x005286c5, 0x005e93d0, 0x005a93cd, 0x005188c7, 0x004883be, 0x004b74a6, 0x004d5570, 0x004c3d46, 0x00573a36, 0x005d3c30, 0x005d392f,
- 0x00483334, 0x003d2f2f, 0x00372522, 0x003d2318, 0x00522610, 0x0068280e, 0x007c2e13, 0x008b3618, 0x009b3614, 0x009f3710, 0x00a13811, 0x00993711, 0x00803314, 0x00672d14, 0x00502513, 0x00422315,
- 0x00b2afa5, 0x001b1b10, 0x001c1a0f, 0x00211d12, 0x001f1d10, 0x00222012, 0x00252113, 0x00242112, 0x00222010, 0x00211f0f, 0x001f1f10, 0x001f1e13, 0x00211d10, 0x00201b0b, 0x001c1a0b, 0x001a1b10,
- 0x00171812, 0x00201b10, 0x00594734, 0x009b7959, 0x00b17c50, 0x00ac7b56, 0x00a57759, 0x00a07357, 0x00a07256, 0x00926349, 0x00784832, 0x006c3e28, 0x0073462d, 0x007d5135, 0x008a5e41, 0x00a27556,
- 0x00b3846f, 0x00c6957e, 0x00d2a28a, 0x00d0a289, 0x00d3a488, 0x00cf9e82, 0x00b48568, 0x009f7152, 0x009e6f4e, 0x00a77a55, 0x00b28865, 0x00b2926a, 0x00c6a286, 0x00d0b09b, 0x00e5cbbd, 0x00f3e2dd,
- 0x00f1f4f3, 0x00edf7fa, 0x00f2f4f7, 0x00ecebef, 0x00fbf0f1, 0x00f6f0f8, 0x00f4ebf1, 0x00f3eef0, 0x00f7f2f5, 0x00f5f0f3, 0x00f0ecf0, 0x00f1edf2, 0x00f3edf3, 0x00f3edf4, 0x00f3ecf4, 0x00f4eaf4,
- 0x00ece9ea, 0x00e9e9e9, 0x00eeeded, 0x00f2f0ef, 0x00f3edef, 0x00f1ebef, 0x00f0ebef, 0x00ede9ef, 0x00f0e9f0, 0x00edebf0, 0x00efebf1, 0x00f2ebef, 0x00edeeef, 0x00eceeef, 0x00eaedf2, 0x00e9ecf3,
- 0x00e9e5ef, 0x00ede6e2, 0x00eee2ce, 0x00e4d0ad, 0x00dbc384, 0x00cdcf96, 0x00cedeac, 0x00afbca0, 0x008c9795, 0x00acb8b8, 0x00dde7e9, 0x00e8efea, 0x00ecefe8, 0x00e9e7ee, 0x00e2dbec, 0x00e0d4f3,
- 0x00e0e3ee, 0x00e3e7f0, 0x00e4e7ed, 0x00e3e4e8, 0x00e7e5e9, 0x00ede9ea, 0x00ece6e5, 0x00e4dddc, 0x00d4c9c7, 0x00c7bcbb, 0x00c4bdb9, 0x00babaaf, 0x00a8a599, 0x00948f80, 0x00898070, 0x008f8373,
- 0x00908471, 0x00857b67, 0x00746c51, 0x00645c42, 0x004a4325, 0x005e5a4a, 0x00c4c3bb, 0x00f9f8f5, 0x00fefefe, 0x00fafafc, 0x00fdfefe, 0x00f4f5f2, 0x006d716f, 0x000b0d14, 0x00040417, 0x00060622,
- 0x00050925, 0x000d0f2c, 0x00131432, 0x00191939, 0x00292749, 0x00353355, 0x003e3e5f, 0x00494a6a, 0x00565678, 0x00595b7a, 0x005b5e81, 0x00565d8c, 0x0065617f, 0x006e636f, 0x008b7672, 0x00a38674,
- 0x00805a3b, 0x00522c16, 0x00300d01, 0x00270300, 0x00270b09, 0x00391106, 0x005c2f19, 0x0078482b, 0x009f6439, 0x00b57637, 0x00bd7f31, 0x00c17e25, 0x00c88c35, 0x00ca8b44, 0x009d632a, 0x0062260a,
- 0x003e1201, 0x004a2915, 0x005d3925, 0x00693c16, 0x00b65b0c, 0x00c86b15, 0x00ad5e14, 0x007b4a1b, 0x00443726, 0x003c3124, 0x0042393f, 0x0053587c, 0x00616187, 0x00575c7f, 0x0055577a, 0x00575779,
- 0x005a5a78, 0x00555672, 0x0054536e, 0x00555670, 0x0058556f, 0x004f536f, 0x0049506c, 0x00444c69, 0x003f426c, 0x003a3d6a, 0x003a3e6e, 0x003e4275, 0x0045497b, 0x00484e7d, 0x004a537e, 0x0048547c,
- 0x0053547a, 0x0053557c, 0x0053557e, 0x0051547f, 0x00515180, 0x004f507e, 0x004c4d79, 0x00494b74, 0x0044496b, 0x00434668, 0x00434567, 0x00434566, 0x00454868, 0x00454969, 0x00474a6c, 0x00484a6d,
- 0x00494c70, 0x00494c6e, 0x004a4b71, 0x004a4b72, 0x004a4b72, 0x00474777, 0x0046467b, 0x00484a78, 0x004a4e78, 0x004d5177, 0x00505377, 0x004f5376, 0x0052567a, 0x0052567d, 0x0051557f, 0x0050537d,
- 0x00464b7d, 0x00404678, 0x003b3f72, 0x00383a6d, 0x002e2f61, 0x00292958, 0x0022234d, 0x001c2044, 0x001a1b38, 0x00151730, 0x0010112c, 0x000e0f2b, 0x00090b25, 0x00080a1d, 0x00000110, 0x002d3039,
- 0x00bebdc6, 0x00f9f8f9, 0x00fefefe, 0x00fdfcfa, 0x00fdfffd, 0x00f6f4f3, 0x007d7878, 0x001a130f, 0x002d2016, 0x003e2c1f, 0x00422e23, 0x003b2b1d, 0x0024170c, 0x00110902, 0x00070300, 0x00070403,
- 0x00030607, 0x00020604, 0x00070904, 0x00110f07, 0x00221b0f, 0x00271c10, 0x003e3223, 0x00867b69, 0x00e7dbca, 0x00f3e8d4, 0x00f9f1dd, 0x00fdf8e3, 0x00d5d0c4, 0x007d7872, 0x00181615, 0x00080605,
- 0x00070000, 0x00201409, 0x00584b33, 0x005f4d2c, 0x005a4317, 0x00704d28, 0x00805d42, 0x00735a4f, 0x00615976, 0x006365a1, 0x00515cae, 0x003a4aaf, 0x003543b5, 0x003138ac, 0x001f2398, 0x001d1b8e,
- 0x00181484, 0x00241f7d, 0x00272165, 0x001c1439, 0x00251916, 0x003c2e1e, 0x005e4c34, 0x00715c46, 0x008b7770, 0x00b49fa2, 0x00ccbdc4, 0x00c0c0c6, 0x009c9b9b, 0x005b5c5a, 0x001e1c17, 0x00211d11,
- 0x002a2315, 0x002a2014, 0x002b1f13, 0x00291d11, 0x0025170f, 0x001d1216, 0x001d1418, 0x00251e18, 0x003a2b1a, 0x004c3c23, 0x00574627, 0x00503f21, 0x004b3b1e, 0x00372715, 0x004b3d30, 0x00a89992,
- 0x00fafbfc, 0x00fcffff, 0x00f8f9fa, 0x00f6f5f6, 0x00ebeaea, 0x00dfdfdf, 0x00d5d5d6, 0x00d0d0d1, 0x00d4d3d4, 0x00d8d7d7, 0x00d7d4d7, 0x00d6d4d6, 0x00d4d2d4, 0x00d4d1d6, 0x00d8d4da, 0x00dcd7db,
- 0x00d8d7d7, 0x00d7d5d7, 0x00d6d6d7, 0x00d6d5d6, 0x00d5d7d8, 0x00d8d5d9, 0x00d4d3d7, 0x00d2d2d4, 0x00d4d2d2, 0x00d3d3d2, 0x00d7d7d6, 0x00dbdadb, 0x00dadae2, 0x00d9d9e6, 0x00d8d9e8, 0x00d5d8e8,
- 0x00d5d9e6, 0x00d3d7e2, 0x00d3d9e3, 0x00d6dde5, 0x00d4dce0, 0x00d4dbde, 0x00d4dade, 0x00d6d9dc, 0x00d8d8e0, 0x00d7d9df, 0x00d6d7e0, 0x00d5d4dc, 0x00d4d3dd, 0x00d5d4dd, 0x00d6d6df, 0x00d5d8dd,
- 0x00d7d9dc, 0x00d4d8da, 0x00d4dbda, 0x00d3d7d7, 0x00d2d4d5, 0x00d6d2d8, 0x00d8d3d8, 0x00d5d1d3, 0x00d3d1d2, 0x00d6d5d1, 0x00d7d6d3, 0x00d8d8d4, 0x00d5d4d2, 0x00d4d3d1, 0x00d4d3d3, 0x00d8d7d5,
- 0x00dbd6d5, 0x00d9d7d5, 0x00d8d6d4, 0x00d5d4d2, 0x00d2d2d0, 0x00d4d2d2, 0x00d4d1d2, 0x00d5d3d4, 0x00d2d3d3, 0x00d1d3d4, 0x00d6cdd3, 0x00e3c4d3, 0x00bcdaca, 0x00c2d7c9, 0x00cbd3c7, 0x00d7cdc8,
- 0x00c8d3d3, 0x00d4cad6, 0x00e1c6db, 0x00e5c3d9, 0x00bed8d1, 0x00c8d3d0, 0x00cbcfd0, 0x00cdd1d2, 0x00d1cdd3, 0x00d2cdd3, 0x00d3ccd2, 0x00cfc9cd, 0x00cdccca, 0x00d1d2cb, 0x00cfd1ca, 0x00d5dbd0,
- 0x00eaf1ec, 0x00f8fcfc, 0x00fcfdff, 0x00f9fdfe, 0x00fcffff, 0x00fafcfe, 0x00b2b4b4, 0x006a706a, 0x00596257, 0x00646f60, 0x0068735e, 0x006f7862, 0x006d7b67, 0x006d7d6c, 0x00748675, 0x007a8b7c,
- 0x007e8772, 0x007f7c68, 0x007f7456, 0x00836f4a, 0x00907449, 0x00827161, 0x006b615e, 0x00655e63, 0x0061607b, 0x005b6186, 0x005e6792, 0x00606c9e, 0x00606e9b, 0x004b5784, 0x003b476e, 0x00414b6d,
- 0x00443f4d, 0x003d3842, 0x00454448, 0x00504f53, 0x00585556, 0x003d393d, 0x00151114, 0x00070204, 0x00090209, 0x00050007, 0x00060207, 0x00000403, 0x00171615, 0x00322d2b, 0x004b413f, 0x004f423f,
- 0x00493b3a, 0x00362b28, 0x001c1310, 0x000b0505, 0x00040300, 0x0007020a, 0x000b0213, 0x000b0416, 0x000c091f, 0x000b0a22, 0x000d0d25, 0x000f0f27, 0x00131020, 0x0015121a, 0x00232022, 0x00342f2d,
- 0x004a4127, 0x004c432d, 0x00453b2c, 0x00352b23, 0x001d1211, 0x00100706, 0x00100a03, 0x001a1608, 0x00292b10, 0x00373818, 0x0043421f, 0x00484425, 0x004c432b, 0x004c412c, 0x004a3b2a, 0x0049362b,
- 0x00443229, 0x00403025, 0x00453628, 0x00443928, 0x003d3623, 0x002e2922, 0x00231f1e, 0x00191712, 0x00181208, 0x00231d0e, 0x00322a1b, 0x003c3222, 0x00413224, 0x003f2c24, 0x00321e18, 0x002a1511,
- 0x00281843, 0x0032283b, 0x002e2827, 0x00252312, 0x000d0a01, 0x000a0502, 0x000b0408, 0x00150b17, 0x0023191d, 0x00312828, 0x004f423a, 0x00655346, 0x00705c47, 0x006d5941, 0x00634c35, 0x0053392d,
- 0x004f3936, 0x004f3b3b, 0x004d3c3e, 0x003e302a, 0x00443d2e, 0x003e3d41, 0x001f1d2b, 0x00070510, 0x00050608, 0x00080907, 0x000c0d08, 0x001a1c11, 0x00262a1e, 0x002d3224, 0x00363a2d, 0x00888b7d,
- 0x00fdf9f9, 0x00fdfafc, 0x00fefbfe, 0x00fdfafe, 0x00fffefd, 0x00cecdcd, 0x00434345, 0x00232428, 0x00222529, 0x00282b2e, 0x00393b40, 0x003e4249, 0x004c5057, 0x00555a62, 0x005b5f69, 0x005c5f68,
- 0x0052555b, 0x0041444d, 0x002f3239, 0x0023272f, 0x00262a30, 0x00303343, 0x003b3d4b, 0x00454350, 0x00514b4e, 0x0054504c, 0x005d5751, 0x00706c69, 0x0096919a, 0x009a97aa, 0x009693ae, 0x008d8eb1,
- 0x007996c7, 0x006c84b5, 0x006c88bf, 0x006988c7, 0x004b80db, 0x003978d7, 0x002d6bc5, 0x003260a6, 0x00685a63, 0x007e4d32, 0x00723516, 0x00501f14, 0x001f0806, 0x00110b13, 0x00080e1b, 0x0004111b,
- 0x00030809, 0x00140e02, 0x0041311b, 0x004c371e, 0x00391c05, 0x00240f07, 0x00120301, 0x00030000, 0x00010209, 0x00030506, 0x00040503, 0x00070601, 0x00150f0b, 0x001e1c1e, 0x0027272e, 0x00363a49,
- 0x00585e71, 0x00565a6b, 0x00535765, 0x0053525e, 0x00545660, 0x005a5765, 0x0060606d, 0x00626474, 0x00616476, 0x005f6377, 0x00595f75, 0x0050546a, 0x0042495b, 0x003e4252, 0x00444955, 0x004c5059,
- 0x005e6167, 0x0064686c, 0x006c6d74, 0x006e6e76, 0x00696671, 0x005f6772, 0x004e5d68, 0x00404d57, 0x00344148, 0x00353f47, 0x003e444d, 0x00474954, 0x00555460, 0x0062606c, 0x006d6b77, 0x00726f7b,
- 0x0064707b, 0x00606d77, 0x00515d6a, 0x00444f5e, 0x003b4454, 0x0038414e, 0x003a404b, 0x0040444b, 0x004f5254, 0x00616063, 0x006e6d71, 0x007d7f82, 0x009b9da0, 0x009f9fa2, 0x00848286, 0x00636065,
- 0x004d484d, 0x00474144, 0x003d373d, 0x00383338, 0x0039353f, 0x003d3e3e, 0x003e4444, 0x004a4f50, 0x00555c68, 0x00535c6b, 0x00465063, 0x003a4456, 0x00292f40, 0x00292c3c, 0x002f313d, 0x003c3f48,
- 0x0059585f, 0x00616169, 0x005e5c63, 0x007d7b80, 0x00d7d6da, 0x00fcfbfd, 0x00fffdfe, 0x00fbfbfb, 0x00fdfdfa, 0x00f2f2f1, 0x00a6a9a7, 0x007d8483, 0x00bfbbbe, 0x00ebe1e2, 0x00fcf5f7, 0x00fcfefd,
- 0x00e0f3f1, 0x008aa8aa, 0x00264b52, 0x001b404d, 0x001d4153, 0x00204050, 0x0025444f, 0x0031525a, 0x004f6973, 0x0070858d, 0x0095a5ab, 0x00b4c1c4, 0x00dae3e4, 0x00ecf2f4, 0x00f9fbff, 0x00fdfbff,
- 0x00fdfdfe, 0x00fdfcfd, 0x00fefcfc, 0x00fffeff, 0x00fefcff, 0x00faf9fc, 0x00fefeff, 0x00fbfbfd, 0x00fafbfa, 0x00fcfbfc, 0x00fbfbfb, 0x00fcfdfc, 0x00f1f2f2, 0x00e4e4e4, 0x00bebfbd, 0x009c9d9c,
- 0x006d6f71, 0x004e4f50, 0x002a2b2d, 0x001c2022, 0x00161b1a, 0x001d201e, 0x00292a28, 0x00333330, 0x003e3e3a, 0x004b4945, 0x0053504b, 0x005c5953, 0x00615d57, 0x00656059, 0x0066605a, 0x0068615a,
- 0x006e5d50, 0x00715c50, 0x0073574b, 0x00755547, 0x007c5648, 0x007d5949, 0x00826050, 0x00846456, 0x00866f62, 0x00806e61, 0x00625346, 0x003c2f24, 0x00322719, 0x00645341, 0x00ab957f, 0x00a7876e,
- 0x00785430, 0x005b351c, 0x00604435, 0x00665957, 0x0072748a, 0x005880bc, 0x004a88d2, 0x004687d0, 0x004686d3, 0x004384d1, 0x004484d3, 0x004183d2, 0x004387d6, 0x004084d3, 0x004386d6, 0x004589d8,
- 0x004889d8, 0x004d8eda, 0x004f91da, 0x004a8dd3, 0x004b8bce, 0x004d88c8, 0x004e87c8, 0x004e86c2, 0x004e86c3, 0x00477ebd, 0x00426490, 0x00514956, 0x00523a39, 0x005f3935, 0x00613b31, 0x005d3d35,
- 0x0048363a, 0x00403137, 0x003b2726, 0x00422218, 0x0059260c, 0x006e2b11, 0x00823217, 0x008d3817, 0x009e3815, 0x00a1380f, 0x00a23811, 0x00983613, 0x007e3315, 0x00652e15, 0x004f2614, 0x00412216,
- 0x00b3b0a7, 0x001b1b11, 0x001b1a0f, 0x00201d12, 0x001e1d10, 0x00212011, 0x00222011, 0x00212111, 0x001f1e0e, 0x001e1e0f, 0x001d1c0f, 0x001d1b0f, 0x001e1b0d, 0x001b190c, 0x0018160b, 0x0014160e,
- 0x00191e18, 0x001b180d, 0x004a3a28, 0x00886a4b, 0x00a6764c, 0x00a27451, 0x009b6f52, 0x00966c4e, 0x00996d54, 0x008f624b, 0x0081543e, 0x00966851, 0x00ae7e64, 0x00bd8e72, 0x00ba906f, 0x00aa805d,
- 0x00ab7c65, 0x00bc8d76, 0x00cfa189, 0x00d0a389, 0x00ca9b7f, 0x00c99a7d, 0x00c19476, 0x00b58769, 0x00a27554, 0x00a67a58, 0x00bc9877, 0x00c9b095, 0x00e8cdbc, 0x00f6e5dd, 0x00f8f0ef, 0x00f2eef4,
- 0x00e9f2fc, 0x00e8f6fa, 0x00ebf6f8, 0x00f0eeeb, 0x00f6e9e8, 0x00f9eef2, 0x00f3eef2, 0x00f6f1f4, 0x00f5f3f9, 0x00f0eff5, 0x00eeecf5, 0x00eeeaf5, 0x00f2e9f7, 0x00f4eaf8, 0x00f2e7f4, 0x00f5e6f3,
- 0x00efebe9, 0x00eae7e6, 0x00edeae8, 0x00f2edeb, 0x00f2edee, 0x00f0ecee, 0x00f0ebee, 0x00f2ebf1, 0x00f1eaf2, 0x00f3e9f0, 0x00f5e8f4, 0x00f5e9fb, 0x00f1eaff, 0x00edeafc, 0x00e9e8fb, 0x00e6e6fb,
- 0x00f0e3fd, 0x00f6e3f3, 0x00e5cccb, 0x00be9f89, 0x00caa275, 0x00d4d493, 0x00daeeac, 0x00bdcd9e, 0x009ca99e, 0x00b6c2bd, 0x00dae6e0, 0x00e7f0e8, 0x00e8ece9, 0x00e4e2ec, 0x00e0d9f1, 0x00e3d9fa,
- 0x00e0e5f4, 0x00e6eaf7, 0x00ebeef8, 0x00e5e7ee, 0x00e3e2eb, 0x00e8e5ed, 0x00ede7ee, 0x00f4ecf3, 0x00f5ecef, 0x00eee4e8, 0x00ede9e8, 0x00eaefe6, 0x00e5e7dc, 0x00d5d4c7, 0x00cbc7b8, 0x00d0c9ba,
- 0x00d4c7b7, 0x00c4b9a6, 0x00afa78f, 0x00938c71, 0x005e5741, 0x005b5848, 0x00bdbeb7, 0x00f7f7f7, 0x00fefcff, 0x00f9f8fb, 0x00fdfefd, 0x00f5f5f0, 0x006e716e, 0x000d0d15, 0x00050419, 0x00080624,
- 0x00060924, 0x000d0f2a, 0x00131532, 0x00181837, 0x00252243, 0x00322e4f, 0x003e3d5b, 0x00494864, 0x00545570, 0x00595972, 0x005a5d7e, 0x00535c8a, 0x005f5e7d, 0x006a5f6b, 0x0088736e, 0x00aa8d76,
- 0x00b98f70, 0x009f7252, 0x0065381c, 0x00481a07, 0x004e1f11, 0x006c2d17, 0x009a5033, 0x00ba6c48, 0x00d3834e, 0x00da893f, 0x00d28130, 0x00cb7f25, 0x00cc8430, 0x00c17f3d, 0x0098582b, 0x007a3c1e,
- 0x008b561e, 0x0095703f, 0x0089673a, 0x006f4915, 0x009c510b, 0x00be712a, 0x0098571e, 0x00613618, 0x003d292b, 0x003c2929, 0x00352935, 0x00454669, 0x00767ca7, 0x00767ba5, 0x00747ba1, 0x00888bad,
- 0x008d8aa6, 0x0077758c, 0x00675f75, 0x005a566a, 0x0054536b, 0x004a4f69, 0x00494c6a, 0x00424967, 0x003d3f6a, 0x00383b6a, 0x00363c6e, 0x003b4175, 0x0044497c, 0x00484e7e, 0x004a537e, 0x004b567d,
- 0x0054547a, 0x0054567d, 0x0054567f, 0x0052557f, 0x0051537f, 0x004f517c, 0x004c4f77, 0x004a4c73, 0x0045496a, 0x00414564, 0x003f405f, 0x003e3f5d, 0x00404160, 0x00414362, 0x00424665, 0x00434766,
- 0x00484b6e, 0x00484b6d, 0x00494b71, 0x00494c72, 0x004a4d72, 0x00494b78, 0x00494a7c, 0x004a4c79, 0x004b4f7a, 0x004c5178, 0x004a5177, 0x004c5479, 0x0052567c, 0x00565a81, 0x00535881, 0x0052567f,
- 0x004d5181, 0x00454b7d, 0x0041467a, 0x003d3f73, 0x00333467, 0x002d2d5c, 0x00272650, 0x001f2245, 0x001b1d3b, 0x00141731, 0x000f122d, 0x000b0d27, 0x00060922, 0x00080a1e, 0x00000011, 0x00383a45,
- 0x00d7d3db, 0x00fdfdfc, 0x00fdfcfe, 0x00fefdfb, 0x00fdfdfb, 0x00ebe8e8, 0x006a6566, 0x00110d0a, 0x002a1d15, 0x0038271c, 0x003a291e, 0x002f2114, 0x001e1107, 0x000e0500, 0x00050100, 0x00040202,
- 0x00030806, 0x00040704, 0x00090904, 0x0017130d, 0x002b2418, 0x00352c1c, 0x00493d2a, 0x008f826e, 0x00e9dfc8, 0x00efe3cf, 0x00f8f0d9, 0x00f5f2d6, 0x00f7f3e1, 0x00d2cec5, 0x005c5958, 0x00181316,
- 0x000f0504, 0x003b2c1c, 0x007b694a, 0x00766031, 0x00785d23, 0x0099703f, 0x00b18564, 0x00a48076, 0x0084789a, 0x00696bab, 0x004552a9, 0x00394cb6, 0x00313fae, 0x003337a8, 0x00262694, 0x00221989,
- 0x001d1a8a, 0x00211f78, 0x001f1e62, 0x000c0c33, 0x00040303, 0x000a0803, 0x00140d07, 0x00231c0f, 0x00513e44, 0x00705d69, 0x007a707d, 0x006b6b74, 0x003c3f42, 0x00131314, 0x00171512, 0x002a281d,
- 0x002f291f, 0x002f271c, 0x0031261c, 0x0031241d, 0x002e1e1b, 0x0022181d, 0x001b1418, 0x001d1612, 0x00302310, 0x00403117, 0x004d3c20, 0x00473616, 0x0049361b, 0x0035240e, 0x005c4c3e, 0x00bdaca3,
- 0x00fefdfc, 0x00fdfcfc, 0x00f3f3f4, 0x00e0e0e0, 0x00babab9, 0x00878786, 0x00636363, 0x00595859, 0x005c5b5a, 0x005d5c5d, 0x005a575a, 0x00585658, 0x005a585b, 0x0059565b, 0x005d5a60, 0x00605d62,
- 0x00666264, 0x00676467, 0x00686468, 0x00676668, 0x0068656a, 0x0062636b, 0x0060606b, 0x005c5c68, 0x005c6164, 0x005e6165, 0x00626469, 0x0065686e, 0x00656773, 0x00646677, 0x0064667b, 0x0064637e,
- 0x0061667a, 0x005d6374, 0x005f6775, 0x00616a77, 0x00606674, 0x005e6371, 0x005c626f, 0x005c626d, 0x00606071, 0x00606271, 0x00636274, 0x00666475, 0x00656472, 0x00636571, 0x00646673, 0x00676875,
- 0x006f7177, 0x006e7275, 0x006d7172, 0x006a6f70, 0x00656a6d, 0x0067656d, 0x0068616a, 0x00665e65, 0x00635f63, 0x00666360, 0x00686660, 0x0066655e, 0x0064635f, 0x0062615d, 0x00646361, 0x00676664,
- 0x00706867, 0x006c6664, 0x006a6562, 0x0066635e, 0x0062605d, 0x0061605e, 0x005e5f5e, 0x005c5f5f, 0x005e605f, 0x005d5f5e, 0x0062565f, 0x0070485f, 0x00426054, 0x00485f4d, 0x00505b4a, 0x005e534c,
- 0x0056575a, 0x005f4f5d, 0x0068495f, 0x0070455d, 0x00416059, 0x004b5a59, 0x00505758, 0x00535857, 0x0057555d, 0x0057535c, 0x00595159, 0x00554c51, 0x0056514f, 0x0058554b, 0x00515143, 0x00727763,
- 0x00d8dddd, 0x00f4f9f7, 0x00fefdff, 0x00fbfefe, 0x00fafefd, 0x00f0f5f4, 0x00919390, 0x0042493f, 0x003e473d, 0x004a5649, 0x00515e4a, 0x0057624a, 0x005e6b55, 0x00677763, 0x007a8b7a, 0x00859686,
- 0x009b9f91, 0x00a5a48f, 0x00b1a88d, 0x00b7a586, 0x00d2bb94, 0x00e0cfcf, 0x00e0d3eb, 0x00d9d1ec, 0x00cfcbf4, 0x00bdb9ec, 0x00a19ee3, 0x009091dd, 0x008990df, 0x008991da, 0x00757dc5, 0x006b7abb,
- 0x0076788f, 0x006c7081, 0x006c707d, 0x007d808a, 0x007b7d83, 0x003e3c42, 0x000c0a0e, 0x00040203, 0x0009050d, 0x00070005, 0x00090207, 0x00010507, 0x00100f0f, 0x00292021, 0x003f3233, 0x00443434,
- 0x003f3133, 0x002f2223, 0x00170f0d, 0x00070704, 0x00030403, 0x00060208, 0x0009020f, 0x000b0316, 0x000a081c, 0x000a0a1f, 0x000b0e22, 0x000f0f23, 0x0014111c, 0x00191519, 0x002a2625, 0x003c3732,
- 0x00564d2d, 0x00574d33, 0x004d4231, 0x00392d26, 0x001f1313, 0x000f0406, 0x000c0302, 0x00171008, 0x0024230f, 0x002f3017, 0x003b3b1f, 0x00423f24, 0x004a432d, 0x004c422f, 0x00493a2c, 0x00453229,
- 0x003e2f25, 0x003e2f25, 0x0045372b, 0x00473c2d, 0x00413a2a, 0x00332f29, 0x0023201f, 0x001a1614, 0x001a1607, 0x0027200f, 0x003c3021, 0x00483928, 0x004d3b2b, 0x00453226, 0x0037241b, 0x00301b16,
- 0x00341e28, 0x0039271e, 0x004b3b25, 0x004f4320, 0x002e2007, 0x00210f01, 0x001e0b01, 0x0025110a, 0x00422e0b, 0x006e5c27, 0x00a4905a, 0x00b1966e, 0x00b39363, 0x00b18f59, 0x0098733b, 0x00754c18,
- 0x00643f15, 0x0078592f, 0x006e5630, 0x005e4c22, 0x00776d3a, 0x0069645a, 0x002e2a35, 0x000a050e, 0x00050405, 0x000b0a08, 0x0011100c, 0x001c1c12, 0x00292a1e, 0x003d4030, 0x003e4231, 0x007d826f,
- 0x00f8f6f8, 0x00fcfafb, 0x00fdfcfd, 0x00fcfbfc, 0x00fffcfd, 0x00e0dedf, 0x00515253, 0x00242527, 0x00212227, 0x00252628, 0x0032343a, 0x00373943, 0x0042434d, 0x004e4f58, 0x0051555b, 0x00515659,
- 0x0042464d, 0x002e3236, 0x00252930, 0x0020252d, 0x0021232c, 0x002b2b2a, 0x0031312d, 0x00343833, 0x003e413d, 0x00484c52, 0x005c6471, 0x006f7895, 0x007f8dbf, 0x007e8ccf, 0x007788d8, 0x007086dd,
- 0x004a8ff4, 0x004583e4, 0x004578d6, 0x003a69c6, 0x00275fc5, 0x001e61c9, 0x000f4fad, 0x000c3c87, 0x002b2f42, 0x00472f1f, 0x00562810, 0x004e190a, 0x002d120d, 0x00150f13, 0x00192330, 0x00192a3a,
- 0x0008141c, 0x00040709, 0x00151109, 0x00211205, 0x001d0700, 0x00170200, 0x00100000, 0x00070100, 0x00030306, 0x00010302, 0x00010100, 0x00030000, 0x000c0403, 0x00060303, 0x0007070a, 0x00222733,
- 0x00575d71, 0x00545868, 0x004f515f, 0x0051525c, 0x005e5b65, 0x0064616e, 0x00656673, 0x00656777, 0x005d6277, 0x00545f71, 0x00525b6e, 0x00484b63, 0x00393e52, 0x00393c4d, 0x00464a54, 0x004a5259,
- 0x00616269, 0x0066686d, 0x00717277, 0x0072737a, 0x006e6e76, 0x00666f77, 0x005a6971, 0x004b5860, 0x00414c55, 0x00414a54, 0x00414955, 0x00444955, 0x004f4f5c, 0x005a5965, 0x00676772, 0x006d6c77,
- 0x006a737f, 0x00656f7c, 0x00566070, 0x004a5464, 0x0041495a, 0x003b4350, 0x00383d47, 0x003a3c45, 0x0048454b, 0x00585359, 0x00636265, 0x00747879, 0x00979a9b, 0x00a09fa2, 0x007e7b7e, 0x00504b4e,
- 0x00332e33, 0x002d292d, 0x00252026, 0x001f1b22, 0x001f1b26, 0x00222123, 0x00232726, 0x002e3533, 0x00474f5a, 0x00515a69, 0x004b5468, 0x003a4357, 0x002d3345, 0x002e3241, 0x00393b46, 0x0042454b,
- 0x0059595f, 0x0062626a, 0x005c5c63, 0x0077767b, 0x00cac9cd, 0x00f9f8fa, 0x00fefdfd, 0x00fbfafd, 0x00fdfcfd, 0x00f6f7f5, 0x00acafad, 0x00777f7d, 0x00b6b4b6, 0x00e5e0e1, 0x00fcf8f8, 0x00fbfefa,
- 0x00ecfaf9, 0x00aac3c6, 0x0035545c, 0x001e414c, 0x002b4d5c, 0x00496875, 0x006d8892, 0x008ca8b2, 0x00b8cbd6, 0x00d4e5eb, 0x00eef5f7, 0x00f7f8f7, 0x00fafafc, 0x00fcfafd, 0x00fef9fd, 0x00fdfafd,
- 0x00fffefc, 0x00fdfcfc, 0x00fefcfc, 0x00fffefe, 0x00fefdff, 0x00fcfbfd, 0x00fdfcfe, 0x00faf9fc, 0x00fcfcfb, 0x00f6f5f7, 0x00e0dfe1, 0x00c3c3c3, 0x00939696, 0x006e6f71, 0x00414342, 0x00181c1b,
- 0x000f1213, 0x000c1012, 0x00101417, 0x00191f22, 0x00272b2f, 0x00323333, 0x00403f3c, 0x004d4a48, 0x005a5955, 0x00605e5b, 0x00676662, 0x006d6b65, 0x006d6861, 0x00706a62, 0x006d6961, 0x0066615a,
- 0x006e5c4e, 0x00705a4d, 0x00715546, 0x00704f3f, 0x00774f41, 0x00785142, 0x00805c4b, 0x00836151, 0x008a7264, 0x007d6e5d, 0x00544638, 0x0034281e, 0x00291c12, 0x00483a2f, 0x00958174, 0x00977e67,
- 0x00774f32, 0x00694429, 0x007b5b48, 0x007c655e, 0x007e6f7a, 0x005d7fb9, 0x004b85d2, 0x004887d0, 0x004586d3, 0x004484d2, 0x004383d3, 0x004687d6, 0x004889d8, 0x004689d8, 0x004588d9, 0x004689dc,
- 0x004187d9, 0x00468dd7, 0x00478ed6, 0x00488bd7, 0x004d8ed5, 0x004b8cd1, 0x004989cd, 0x004a85c4, 0x004c80be, 0x003e76ad, 0x003e587f, 0x00554149, 0x005d3b37, 0x00633b35, 0x0060382f, 0x005e3e39,
- 0x00493742, 0x0041333a, 0x003d2927, 0x00462416, 0x005f270c, 0x00732d10, 0x00863317, 0x008f3815, 0x00a23915, 0x00a23710, 0x00a23712, 0x00983613, 0x007b3115, 0x00622c16, 0x004d2516, 0x003e2216,
- 0x00b3b2a5, 0x001c1b0e, 0x001b1a0d, 0x001f1f12, 0x001f2013, 0x00222215, 0x00212114, 0x001f2113, 0x00221f15, 0x001f1d13, 0x001b190a, 0x00181604, 0x00161805, 0x0016180c, 0x00161811, 0x00141914,
- 0x00181811, 0x001b1509, 0x00382b19, 0x00735e45, 0x009c7b5c, 0x00957248, 0x00997343, 0x009a724a, 0x00946d4b, 0x008c6545, 0x00906c4b, 0x00ab8661, 0x00bf936f, 0x00bc8b67, 0x00ae7b55, 0x00a7714b,
- 0x00886642, 0x00896544, 0x009c7654, 0x009f7655, 0x00a87b5e, 0x00b38a6b, 0x00be9a79, 0x00bb9878, 0x00ad9172, 0x00c2a789, 0x00d9cbb9, 0x00dee0e4, 0x00f3eff7, 0x00f5f3f9, 0x00eeedf1, 0x00f1eef5,
- 0x00f2eff7, 0x00f2f0f6, 0x00efeef5, 0x00f1eff3, 0x00f2f0f5, 0x00f5edf5, 0x00f3eff3, 0x00edf1f3, 0x00e2f2f2, 0x00e2f2ee, 0x00e5f3ea, 0x00edf1e8, 0x00f6ece9, 0x00f6e9e8, 0x00f5eae9, 0x00f6ecea,
- 0x00e0f1f7, 0x00e1ebf4, 0x00e7e8f2, 0x00ede8f0, 0x00efebf3, 0x00ecedf1, 0x00eaedee, 0x00eeeef1, 0x00f9e7f7, 0x00fce3f6, 0x00f9e5f6, 0x00f2ebef, 0x00f0eaf5, 0x00ecebf6, 0x00e8eaf7, 0x00e8e8f2,
- 0x00f0e1f1, 0x00f9dae7, 0x00f5c4ce, 0x00d09096, 0x00cd797d, 0x00c8a486, 0x00cac294, 0x00b5b088, 0x00b5b19b, 0x00dfdcd2, 0x00ebebe7, 0x00e7eaeb, 0x00e4e4ee, 0x00e2deea, 0x00e5dcec, 0x00ebe1eb,
- 0x00ede6f8, 0x00eee8fa, 0x00ede9f7, 0x00e8e7f2, 0x00e1e4f0, 0x00e1e6f1, 0x00e4e8f2, 0x00e7ebf6, 0x00eaebf9, 0x00eae9f8, 0x00e5eaf2, 0x00e2efee, 0x00e7efec, 0x00e9eee8, 0x00eaece4, 0x00e9e8e0,
- 0x00f2eeea, 0x00efe9e8, 0x00ebe4ec, 0x00ddd6e3, 0x00b9b2c4, 0x00a7a7ab, 0x00d2d5d2, 0x00f9faf8, 0x00fcfdf8, 0x00fcfbf9, 0x00fdfefc, 0x00f2f3f1, 0x00707172, 0x000e0d14, 0x0002020d, 0x000b0919,
- 0x000c0a20, 0x00100d25, 0x0012122c, 0x00161734, 0x00222143, 0x002a2c4d, 0x00333a58, 0x00404764, 0x004f5578, 0x0052587a, 0x004f5b7d, 0x00475b86, 0x00545b76, 0x00635b68, 0x0077625f, 0x00927260,
- 0x00b78661, 0x00c18b64, 0x00a76c42, 0x0082481d, 0x00894b28, 0x00966022, 0x00a67024, 0x00b47e31, 0x00c7883c, 0x00c78336, 0x00c17e2b, 0x00c28128, 0x00cc8936, 0x00c4842e, 0x00a96916, 0x00b27020,
- 0x00c9913c, 0x00cf8937, 0x00c47426, 0x00b9641b, 0x00b26b33, 0x009d6f42, 0x00503818, 0x001f1603, 0x00292219, 0x003a2c27, 0x002b231b, 0x001f2d18, 0x00425fd6, 0x005781f9, 0x006692eb, 0x008faed3,
- 0x00c8aab5, 0x00c79a8e, 0x00a47c61, 0x0077654b, 0x0046557b, 0x003e4d6d, 0x003d4c6a, 0x003a4a6a, 0x00334574, 0x002e4174, 0x00294074, 0x002d4474, 0x003e4979, 0x00484b79, 0x00504e76, 0x00575175,
- 0x0056547f, 0x00565581, 0x00545481, 0x00525480, 0x00525780, 0x0050567b, 0x004c5274, 0x00494f6f, 0x00484663, 0x0044425b, 0x00403e52, 0x003e394c, 0x00403a4d, 0x00423d51, 0x00444256, 0x00444457,
- 0x00454860, 0x00454865, 0x00464a6a, 0x00464b71, 0x00474c76, 0x00474f70, 0x0048526a, 0x0049526d, 0x00495279, 0x00495279, 0x0046537a, 0x0046537a, 0x004d557c, 0x0051577d, 0x0052597d, 0x0052587c,
- 0x004e5078, 0x00484d77, 0x00454977, 0x00414474, 0x00373b6b, 0x00313362, 0x00292b55, 0x001f2348, 0x001c2040, 0x00151a36, 0x000f132d, 0x000e1227, 0x000a0c24, 0x000c0d23, 0x00020216, 0x004d4c5f,
- 0x00eae6f0, 0x00fffeff, 0x00f8f8fa, 0x00fffefd, 0x00fbfffb, 0x00d8dad7, 0x00434543, 0x00111610, 0x001c1d1d, 0x00282726, 0x00262726, 0x00181c17, 0x000e0f0f, 0x00080a0a, 0x00060907, 0x00070b09,
- 0x00070d12, 0x0009070e, 0x0011050e, 0x00211013, 0x00302212, 0x00393212, 0x0046461b, 0x00888b5e, 0x00eee1cb, 0x00f6e0d6, 0x00f4e3d7, 0x00efe7cb, 0x00eee7c9, 0x00efebcb, 0x00bab997, 0x00595332,
- 0x003e341a, 0x0082714a, 0x00a0885f, 0x00947043, 0x009e774a, 0x00b69352, 0x00c4a770, 0x00b2978e, 0x008272bb, 0x006664bd, 0x004c5aab, 0x00273d81, 0x00182658, 0x002d2d68, 0x002f286f, 0x00311a76,
- 0x00191897, 0x00201f85, 0x001b1a61, 0x000d0d2f, 0x00090709, 0x00010200, 0x00020300, 0x00030500, 0x000a060f, 0x000c0a17, 0x00100f1a, 0x000d0916, 0x00070109, 0x00080006, 0x00181012, 0x00271e1d,
- 0x002b211f, 0x00302420, 0x00372926, 0x003a2c2b, 0x00362725, 0x00231f1f, 0x00101411, 0x000d0f06, 0x0023150c, 0x00332214, 0x00402c1d, 0x00412d18, 0x00452f21, 0x003b281a, 0x006c5c52, 0x00cdbbb7,
- 0x00fdfce9, 0x00fcfaee, 0x00f6f8f5, 0x00dde3e3, 0x00a6a8a9, 0x00494744, 0x000e0902, 0x00110700, 0x0014090d, 0x000b060c, 0x00050808, 0x00020c00, 0x00030c00, 0x00010401, 0x00050004, 0x000f060b,
- 0x00211712, 0x002c2320, 0x002d2224, 0x002d222c, 0x00281d35, 0x000b163a, 0x00001448, 0x00001352, 0x00070f5c, 0x00080f59, 0x00030d4e, 0x00000f44, 0x00021140, 0x0001103f, 0x00000f45, 0x00000c49,
- 0x00041426, 0x00031328, 0x00021229, 0x0006162f, 0x00070f2f, 0x00020b2e, 0x00020d32, 0x00000c35, 0x00050e45, 0x00040e44, 0x00060d4b, 0x00060a59, 0x00041344, 0x00041945, 0x000c2249, 0x00142852,
- 0x00212c3f, 0x00343c37, 0x00363c29, 0x003d4230, 0x002c3248, 0x001d2525, 0x001d2417, 0x001d2316, 0x00211c12, 0x00221e12, 0x00241f13, 0x00231e13, 0x00271f1b, 0x00271e1e, 0x00291d24, 0x00291b29,
- 0x00251f1a, 0x00251e1b, 0x00241d1c, 0x00251d1d, 0x00251c1d, 0x00231e1c, 0x001a1b14, 0x00161a11, 0x00141a0f, 0x0011170c, 0x000c1309, 0x000b0c0b, 0x000b0908, 0x00080807, 0x00050805, 0x00070608,
- 0x000b060a, 0x000b080b, 0x00090808, 0x00070808, 0x00090808, 0x00050509, 0x00010307, 0x00020609, 0x0004050b, 0x0003050b, 0x0003040b, 0x00020308, 0x0002050b, 0x00020309, 0x00050408, 0x004d4e53,
- 0x00ded9e3, 0x00fffbff, 0x00fff9fd, 0x00fdfeff, 0x00fcfdf9, 0x00dbe5da, 0x005b695c, 0x00162518, 0x00222d24, 0x001f2c25, 0x00303b34, 0x00444742, 0x00767875, 0x00a8a8a6, 0x00c3c4bf, 0x00cfd0ca,
- 0x00dcdbd9, 0x00e4e3e2, 0x00efece9, 0x00f3f7f1, 0x00fafafa, 0x00fafceb, 0x00f3fbec, 0x00e9fdfc, 0x00feecf5, 0x00fbc29b, 0x00d39257, 0x00bc8c61, 0x00b68c9a, 0x00b393b2, 0x00a1a0d4, 0x0080b0f8,
- 0x0085b3fd, 0x0084b2f6, 0x008bbaf2, 0x0095c6ee, 0x008ebbcd, 0x005d8188, 0x00162e2c, 0x00000704, 0x00100004, 0x00170002, 0x0015010a, 0x0003030b, 0x0006080d, 0x0016141a, 0x00232127, 0x00262325,
- 0x00241f22, 0x00181016, 0x00090107, 0x00050006, 0x00050009, 0x00050005, 0x00070205, 0x000a060f, 0x000e091d, 0x000f0c20, 0x000f0f1f, 0x00100f1d, 0x00161015, 0x001c1612, 0x002e281f, 0x0041392c,
- 0x00564429, 0x0059492e, 0x0050402a, 0x003a2b1a, 0x00211409, 0x00120701, 0x000b0300, 0x00150e07, 0x00211c14, 0x0028271b, 0x00313421, 0x00363a22, 0x003e402a, 0x003f3f2c, 0x003a3727, 0x00342e22,
- 0x002c291d, 0x002f2b20, 0x0038352b, 0x003e3d30, 0x003f3e32, 0x00353730, 0x00222321, 0x001d1815, 0x00281617, 0x0035221b, 0x004c3825, 0x00564426, 0x00564728, 0x00443a21, 0x00322b1d, 0x002c2624,
- 0x001d1722, 0x002b1e0f, 0x005c4421, 0x0075531b, 0x006d440f, 0x00552d0a, 0x00391301, 0x002d0c00, 0x006c441f, 0x00ae854e, 0x00c7a466, 0x00bc9b63, 0x00af8b54, 0x00a58547, 0x00815f25, 0x00664607,
- 0x007f5f25, 0x00a07f4f, 0x00775b32, 0x005f4322, 0x009d826d, 0x00938169, 0x0042371e, 0x00170901, 0x000f0206, 0x00160d12, 0x00100d13, 0x00111314, 0x00232621, 0x00393d2e, 0x00454834, 0x00777a62,
- 0x00e2e2df, 0x00fcfaf9, 0x00fcfdfc, 0x00f8fafa, 0x00fffdfd, 0x00e9e9eb, 0x006e7374, 0x001d2025, 0x00282b36, 0x002a2d34, 0x002c3037, 0x002d3037, 0x00333138, 0x003c3b3f, 0x003e4042, 0x003b3e3c,
- 0x002e2f2f, 0x00212328, 0x00191e23, 0x00141c25, 0x00151b2a, 0x00181b1b, 0x001a1f1b, 0x00242e3a, 0x00395483, 0x004f75b4, 0x00598cd7, 0x004f8be0, 0x004483df, 0x00407ed9, 0x003f78d1, 0x003e75ca,
- 0x003366d1, 0x002b5fc0, 0x002252aa, 0x00224a9d, 0x00274290, 0x0021377f, 0x00192965, 0x00313b6c, 0x006c7088, 0x008c8992, 0x00908d85, 0x007c745f, 0x003d3c2d, 0x001f2117, 0x002c3229, 0x002e3835,
- 0x001b2728, 0x00111e1e, 0x000b1813, 0x000a130c, 0x00050807, 0x00040301, 0x00020000, 0x00010004, 0x0003080b, 0x00000503, 0x00040401, 0x000a0000, 0x00130100, 0x000a0106, 0x00030919, 0x00253758,
- 0x004f71ae, 0x0044608c, 0x003e5467, 0x00485b57, 0x005a5f56, 0x00606161, 0x00686674, 0x006d6782, 0x0068627b, 0x005d5e72, 0x00535a69, 0x0045495e, 0x00393e53, 0x003c3e50, 0x00484c58, 0x00515562,
- 0x005a5f69, 0x0060646a, 0x006b7072, 0x006f7776, 0x00707676, 0x006a7073, 0x0063696f, 0x00596067, 0x004b5468, 0x00424e61, 0x003b4b5d, 0x00374859, 0x003e4a59, 0x004a525f, 0x005b606b, 0x005f626c,
- 0x005e6564, 0x0061666b, 0x0060636b, 0x00595b66, 0x004c4e5d, 0x00414551, 0x00363b44, 0x00343742, 0x00464853, 0x0056585f, 0x005c6062, 0x00686a6a, 0x00867f85, 0x00877b86, 0x00574d5b, 0x002a2432,
- 0x001c2129, 0x00182026, 0x00191b20, 0x001c161e, 0x0025131d, 0x00181514, 0x00151714, 0x0022211d, 0x00403f3d, 0x004b4f52, 0x003f4b51, 0x00293b46, 0x0020333f, 0x002a373e, 0x00414347, 0x00534f49,
- 0x005d5e64, 0x005e5e65, 0x0057595f, 0x00636669, 0x00b1b3b7, 0x00f2f6f7, 0x00f6fbfa, 0x00f8fcfc, 0x00fefdff, 0x00fbfcfb, 0x00b8bbb9, 0x007b8281, 0x00a6a7aa, 0x00d8dbde, 0x00f5f6f9, 0x00f7f9fa,
- 0x00fdfafa, 0x00d8d8da, 0x008d9093, 0x0085888a, 0x00aeb1b2, 0x00c8caca, 0x00e8eae9, 0x00f8f9fa, 0x00fffcfb, 0x00fffefb, 0x00fbfbf4, 0x00f8faf0, 0x00fdfdf6, 0x00fdfdf7, 0x00fbfdf6, 0x00fcfdf7,
- 0x00f9f9fa, 0x00fefdfe, 0x00fefdfc, 0x00fcfcfb, 0x00fcfbfd, 0x00f8f7f8, 0x00e9e7e5, 0x00d5d2d0, 0x00b5aead, 0x0090888a, 0x00646260, 0x003e453d, 0x0020231e, 0x000e140d, 0x000c1209, 0x000c0e07,
- 0x0012110b, 0x00191919, 0x00262627, 0x00322f35, 0x00443e49, 0x004c494c, 0x0056554f, 0x0062625d, 0x00716a68, 0x00736e6a, 0x0073726b, 0x0071716a, 0x006e6a64, 0x006b6861, 0x0066645d, 0x00626059,
- 0x00675641, 0x00624f3a, 0x00614933, 0x00654933, 0x006f4b3b, 0x006e4c3c, 0x00795b4a, 0x007f6453, 0x00846f60, 0x00746356, 0x00433b23, 0x00292f0c, 0x00281c0e, 0x003f2523, 0x0081605a, 0x00997966,
- 0x0076612a, 0x00816d31, 0x0090753c, 0x00916f41, 0x009a6354, 0x005d7aa5, 0x003e88d4, 0x003e8adb, 0x00408ae8, 0x004286e1, 0x004483d7, 0x004f86d3, 0x005584ce, 0x005487d0, 0x004e89d5, 0x004d8cdc,
- 0x004393de, 0x004990d8, 0x004f8bd0, 0x00538aca, 0x00528cd5, 0x00448ad5, 0x00438dd9, 0x004186d3, 0x004c77ad, 0x004f658c, 0x004f5163, 0x005a4740, 0x005e4237, 0x00613f35, 0x005f3c30, 0x005c3a32,
- 0x00533638, 0x004b2f2f, 0x00472722, 0x0050261f, 0x00622b18, 0x00713111, 0x00853811, 0x00933c13, 0x00a63a18, 0x00a33613, 0x009f3512, 0x00913411, 0x00733014, 0x00562a12, 0x003f2410, 0x00332514,
- 0x00afb2a1, 0x001b1c0b, 0x001b1b0e, 0x00201f15, 0x00212115, 0x00212115, 0x00232117, 0x00221f16, 0x00171e0c, 0x00151b0a, 0x00171707, 0x00181502, 0x00181709, 0x0017190f, 0x001a1b15, 0x001a1c17,
- 0x00151d0d, 0x00191c07, 0x002c230f, 0x0065533c, 0x00957b5e, 0x00997250, 0x009f7151, 0x00a07457, 0x00926f4b, 0x00876843, 0x00916c54, 0x00a58069, 0x009e745e, 0x0091634f, 0x00895842, 0x008b5b45,
- 0x007f694e, 0x0091785c, 0x009a7a64, 0x00a98572, 0x0093735d, 0x00856853, 0x00937566, 0x00b59b89, 0x00cac1a8, 0x00dfd7bc, 0x00f7f1e3, 0x00f1eef5, 0x00f1f0f5, 0x00f0edf6, 0x00f0ecf5, 0x00efeef5,
- 0x00e7ebec, 0x00e9ecee, 0x00efeef3, 0x00f0eff5, 0x00f1f1f5, 0x00f1ecf1, 0x00f5eef4, 0x00f1f3f6, 0x00dff0e5, 0x00dfefe5, 0x00eaf1ed, 0x00f1f0f0, 0x00f3eaee, 0x00f3ebef, 0x00f4ecf2, 0x00f4eff4,
- 0x00e8eced, 0x00ede6eb, 0x00f5e5ef, 0x00f4e4ee, 0x00f1ebef, 0x00eaefef, 0x00e9eff1, 0x00eaf0f2, 0x00e6ebe9, 0x00eaebec, 0x00f1e8f0, 0x00eeeaec, 0x00eaedf0, 0x00e4ecef, 0x00e4ebf5, 0x00e0ebf5,
- 0x00d8e4e0, 0x00dfdcd8, 0x00f1dfde, 0x00ebcdc5, 0x00d1a59b, 0x00bca78b, 0x00b8ad8c, 0x00a69c80, 0x00aeaf97, 0x00d7daca, 0x00e9eae5, 0x00ececef, 0x00e4e4ed, 0x00e3dfec, 0x00e8e0ee, 0x00ece4f1,
- 0x00ebe9ee, 0x00ebe8ef, 0x00ede9f1, 0x00ebe8ef, 0x00e4e3ea, 0x00e3e3e9, 0x00e7e6ee, 0x00ebeaf2, 0x00e6eaeb, 0x00e9e9ed, 0x00efebf1, 0x00f3edf3, 0x00f0ebf0, 0x00efebee, 0x00f2e9eb, 0x00ede7ea,
- 0x00e6e7e3, 0x00e1e5e3, 0x00e4e2e9, 0x00e3e3ec, 0x00e7e6f0, 0x00ecebed, 0x00f7f8f7, 0x00fffbfa, 0x00f6f9f0, 0x00f7f9f2, 0x00fdfefa, 0x00f4f4f3, 0x00737076, 0x000e0c14, 0x0004020f, 0x000c0a1b,
- 0x00060b1b, 0x000b0e1e, 0x0012122b, 0x00181735, 0x001f2041, 0x00282a4e, 0x0034365f, 0x003f4169, 0x00414b6a, 0x0045516f, 0x004b507b, 0x00495389, 0x00504d74, 0x00584c60, 0x006e545a, 0x008c685a,
- 0x00885e32, 0x008f612b, 0x009f6733, 0x00935926, 0x009f652e, 0x00ac732f, 0x00b47830, 0x00ba7e36, 0x00b47923, 0x00b2751f, 0x00bb7722, 0x00c47e28, 0x00cd8a35, 0x00cc8936, 0x00bf7a29, 0x00c58331,
- 0x00c6923a, 0x00c68835, 0x00d6873f, 0x00e59351, 0x00c78a59, 0x00855b39, 0x00301807, 0x00120604, 0x00131409, 0x001d140e, 0x00241d20, 0x0018242b, 0x003a5bcf, 0x004c82f5, 0x00528eed, 0x005f95cf,
- 0x008b96c4, 0x00a595af, 0x00b59399, 0x00a68770, 0x00836d63, 0x006f5e61, 0x00584958, 0x00493f51, 0x00353c54, 0x002e3959, 0x00333f69, 0x00374172, 0x003e467a, 0x0046497d, 0x00544f84, 0x005a5189,
- 0x0055597c, 0x0055587d, 0x00575883, 0x00555783, 0x00555882, 0x0053577d, 0x004f5375, 0x004c4e6d, 0x00424658, 0x003f4051, 0x003f3d4c, 0x00413646, 0x00413748, 0x0042394c, 0x00473f52, 0x00474156,
- 0x00404452, 0x00414659, 0x00454966, 0x00484d6f, 0x004b4e77, 0x004c5175, 0x004c5174, 0x004a5074, 0x00404f72, 0x00404f74, 0x00445179, 0x0047527d, 0x004b547e, 0x004e557f, 0x0053577f, 0x0054567e,
- 0x004b5175, 0x00474c74, 0x00464a76, 0x00444777, 0x003c3d6e, 0x00343664, 0x002d2e59, 0x0025274e, 0x00172139, 0x00141d33, 0x0010172f, 0x0010152e, 0x000b0e27, 0x000b0c23, 0x000a0a1f, 0x00605e72,
- 0x00f1f6f5, 0x00fafefc, 0x00fdfcff, 0x00ffffff, 0x00fafbf7, 0x00c5c6c4, 0x00373837, 0x00141614, 0x00171c17, 0x001d231e, 0x001a1d1a, 0x00131412, 0x000b0e0c, 0x00090b0a, 0x00100e0f, 0x00141213,
- 0x0006170e, 0x0009110d, 0x00150d13, 0x00201115, 0x002c1d14, 0x00352c15, 0x00474123, 0x00888360, 0x00ded6b2, 0x00dfcfb5, 0x00e2cdb6, 0x00dcc8a3, 0x00d5c2a1, 0x00d7c5a5, 0x00cfb89c, 0x009c8669,
- 0x0076653a, 0x00a0875c, 0x00b5936b, 0x00a77c55, 0x00b2855b, 0x00c5a35f, 0x00cdb07f, 0x00a98a94, 0x00615bb4, 0x00555abf, 0x00424fae, 0x00132771, 0x0002063b, 0x000f1259, 0x00291e83, 0x002f1b9e,
- 0x00131885, 0x0012166d, 0x00272563, 0x00151130, 0x00050400, 0x00060401, 0x000b0603, 0x00090502, 0x00000401, 0x00000202, 0x00010007, 0x0003000c, 0x00030005, 0x00060305, 0x00120f0e, 0x001b1614,
- 0x00171909, 0x001e1f11, 0x002d2922, 0x00332e2b, 0x00312b29, 0x001e1f1d, 0x000e110f, 0x000a0a06, 0x00110e00, 0x00211804, 0x00342712, 0x003c2c17, 0x00422f20, 0x0038241a, 0x00796861, 0x00dfcec9,
- 0x00f8fbe4, 0x00f6f9ed, 0x00f9fafa, 0x00e8ecf0, 0x00b2b2b3, 0x0055504a, 0x0021140d, 0x0027130b, 0x001a1408, 0x0018130c, 0x00151211, 0x000f1208, 0x0012110f, 0x000f0a0c, 0x0010050a, 0x00170a0f,
- 0x002c2518, 0x004a4539, 0x004e4543, 0x004b404b, 0x0040374c, 0x0019244e, 0x000c2059, 0x000e1b5d, 0x0004185f, 0x00071863, 0x00091762, 0x000a195f, 0x00091a5b, 0x00081b5f, 0x00081964, 0x0009196a,
- 0x00031856, 0x00071a59, 0x0006165b, 0x00041359, 0x00091961, 0x000a1962, 0x000a1968, 0x000c206c, 0x0005206b, 0x0005216d, 0x00102373, 0x0014206f, 0x0009265f, 0x00072762, 0x000f2972, 0x00152a81,
- 0x0021346c, 0x0032425a, 0x00495260, 0x00656d76, 0x00535d81, 0x00394663, 0x0037425d, 0x00323d55, 0x00293a3b, 0x00293436, 0x002d3235, 0x00313332, 0x0032302c, 0x0034322f, 0x00353332, 0x00332f30,
- 0x002c3327, 0x002d322a, 0x00343232, 0x00363131, 0x00363233, 0x00323030, 0x00302f30, 0x00282b27, 0x001a271a, 0x00152516, 0x00172018, 0x00161618, 0x00161615, 0x00101112, 0x00141114, 0x00151214,
- 0x000f100e, 0x0010110e, 0x00111211, 0x00101011, 0x00101011, 0x000d0e11, 0x000b0d13, 0x000a0b10, 0x00040809, 0x00040909, 0x000a0b0f, 0x000d0b11, 0x000c0c10, 0x0006070b, 0x0016181f, 0x006c7076,
- 0x00ebeeee, 0x00f9fafb, 0x00fbfafb, 0x00fffeff, 0x00fbfdf8, 0x00c9cfc6, 0x0040483d, 0x00091208, 0x000a1c0c, 0x00041708, 0x001e2722, 0x00676666, 0x00c6c7c4, 0x00eff0ed, 0x00f9f8f8, 0x00faf8f9,
- 0x00f4fcf3, 0x00f6fbf3, 0x00fbfcfa, 0x00fdfefa, 0x00fefbf8, 0x00fcfbf1, 0x00fbfaf3, 0x00f7faff, 0x00f3cdb2, 0x00f39a50, 0x00f08231, 0x00e6853e, 0x00df7b5f, 0x00dc7e63, 0x00db8c7f, 0x00c79f9a,
- 0x00a9a6cb, 0x00adafd3, 0x00b2b8e1, 0x00bec8f1, 0x00bccff1, 0x00afc5e0, 0x0071859a, 0x00324352, 0x0005180d, 0x00000e01, 0x000b1009, 0x0008090e, 0x00040508, 0x0008070a, 0x00151213, 0x00191615,
- 0x000c0d07, 0x00040502, 0x00000002, 0x00030004, 0x0004000a, 0x00070008, 0x0009020c, 0x000c0714, 0x00090916, 0x000a0b1b, 0x00111222, 0x00151321, 0x00171219, 0x001b1412, 0x002b2119, 0x00392d22,
- 0x00463c1d, 0x004b4125, 0x00483b27, 0x00392a1d, 0x0022160e, 0x00160a06, 0x00130805, 0x0017100d, 0x001a1b0d, 0x001f2213, 0x002d2d1e, 0x0036341e, 0x003b3826, 0x003d3928, 0x003a3125, 0x00362d20,
- 0x00282312, 0x00292517, 0x00342d22, 0x00383329, 0x00373627, 0x0032322b, 0x0023221f, 0x00201918, 0x002c1d18, 0x003a291f, 0x00503c28, 0x00574528, 0x0057482b, 0x00473c26, 0x003a3124, 0x00302826,
- 0x00120e11, 0x001b0f00, 0x00674f2f, 0x008f6d3a, 0x00986f3c, 0x0088613d, 0x0049230b, 0x003e1909, 0x00896739, 0x00be9d5d, 0x00dab374, 0x00ccaa76, 0x00b49059, 0x00977439, 0x006d480e, 0x00825d21,
- 0x00bb9e5c, 0x00ceaf79, 0x0097784c, 0x00725433, 0x00967c61, 0x008c785e, 0x00473720, 0x00211106, 0x00030000, 0x000a0704, 0x000f0c0f, 0x00121016, 0x00212220, 0x003a3b30, 0x00484937, 0x0073735d,
- 0x00cfd3c6, 0x00f5f8ef, 0x00fefefd, 0x00fcfafc, 0x00fffffe, 0x00f4f6f7, 0x0083858c, 0x00272732, 0x00202a2b, 0x00222e2f, 0x00282d36, 0x002a2a36, 0x0028292e, 0x002c2c2e, 0x002e2a2f, 0x00262527,
- 0x00171c18, 0x00101817, 0x0014171b, 0x000e111c, 0x00121a23, 0x00222b38, 0x0036405a, 0x004e6185, 0x005f88bc, 0x005f93d5, 0x004f8add, 0x003c7ad7, 0x002e6fcf, 0x002c69c8, 0x002e65c2, 0x00295fbb,
- 0x001f55ac, 0x001a4c9d, 0x00194394, 0x00163c8a, 0x00112c76, 0x00152b72, 0x00384687, 0x007982ba, 0x00c7d4e0, 0x00e2edea, 0x00efeeee, 0x00dbd1cf, 0x009b9798, 0x00767779, 0x004b4f56, 0x002b343d,
- 0x00152322, 0x00132020, 0x00161b21, 0x0014171c, 0x000f1211, 0x00110e11, 0x000a060b, 0x0002030b, 0x00000a05, 0x00000803, 0x00030402, 0x00070100, 0x000d0301, 0x00070516, 0x00051232, 0x00273b6b,
- 0x004970b5, 0x004a6f9d, 0x004a6485, 0x004a5f6b, 0x0059615f, 0x005e6167, 0x006c687e, 0x00706986, 0x005f6474, 0x00585e67, 0x00515663, 0x004b4d5f, 0x003e4155, 0x003b414f, 0x00434857, 0x004b4f5e,
- 0x004a5355, 0x00505a5b, 0x00616769, 0x00696e70, 0x00686c6f, 0x00666b70, 0x00676973, 0x00616573, 0x004b5c67, 0x0040525f, 0x00394a5a, 0x00364656, 0x00384353, 0x00464d5a, 0x005a5b67, 0x005e5d68,
- 0x00575f5e, 0x005b6364, 0x0060656b, 0x005a5d68, 0x004e5060, 0x00464758, 0x00424251, 0x00424350, 0x004a5052, 0x00555c5b, 0x00606666, 0x00686d6f, 0x006f686e, 0x005d535b, 0x00352b37, 0x001a1420,
- 0x000c1518, 0x000c1816, 0x0012161b, 0x00141118, 0x001f0c15, 0x00130f11, 0x00111213, 0x00201e1d, 0x0031332e, 0x00373c3b, 0x00333942, 0x00253040, 0x00203041, 0x00313844, 0x0047444c, 0x005a5052,
- 0x00595e5f, 0x00585e60, 0x0057595d, 0x005c5e60, 0x00a2a5aa, 0x00eeeff2, 0x00fffcff, 0x00fffcff, 0x00f6fbf6, 0x00f7fbf7, 0x00c3c5c7, 0x0087888c, 0x009c9f9f, 0x00cfd2d3, 0x00f5f6fa, 0x00ffffff,
- 0x00f5fdf9, 0x00ecf3f1, 0x00dee1e2, 0x00eaeaea, 0x00f6f7f6, 0x00f8f8f9, 0x00fffcfe, 0x00fefcfd, 0x00f5fbf3, 0x00f8fef6, 0x00fbfcf7, 0x00fdfefa, 0x00fefffc, 0x00fefefc, 0x00fffefd, 0x00ffffff,
- 0x00fafef9, 0x00f7faf4, 0x00f8faf8, 0x00f0f0f2, 0x00cecccf, 0x00afacb2, 0x008a8790, 0x00626068, 0x00313132, 0x0018191a, 0x000d0d10, 0x000c1113, 0x000f1214, 0x00121415, 0x00191a19, 0x00191b18,
- 0x00181f15, 0x00242721, 0x00353434, 0x00434044, 0x00534f55, 0x005f5b5d, 0x006a6764, 0x0074706e, 0x0074766e, 0x0076776e, 0x00777670, 0x00726f69, 0x006b665f, 0x0067625b, 0x00625c58, 0x005e5854,
- 0x00524f35, 0x00504732, 0x00534434, 0x00584235, 0x00614637, 0x00634739, 0x0072554b, 0x007a6056, 0x00726850, 0x00615a41, 0x003e3920, 0x00353819, 0x00392b1e, 0x0051382f, 0x00886b5f, 0x00a17f69,
- 0x00897538, 0x008d7d3b, 0x00987c41, 0x00977142, 0x009a6550, 0x00697692, 0x005583c2, 0x005486cb, 0x003d84cf, 0x003b84d0, 0x004587d8, 0x004c87d7, 0x004f88d6, 0x004b8adc, 0x004c91e5, 0x004890ea,
- 0x004098e1, 0x004696dd, 0x005393de, 0x005a93d9, 0x005794e0, 0x004e92e2, 0x00488ddb, 0x004680c9, 0x004f708f, 0x0058636f, 0x005d5157, 0x00614845, 0x005e4035, 0x005f3d2e, 0x00613b33, 0x005e3a31,
- 0x004e362a, 0x004b3228, 0x004e2f26, 0x00582e21, 0x00692e19, 0x00783213, 0x00893814, 0x00953c17, 0x009b3b0c, 0x009e370b, 0x009c340f, 0x00913110, 0x00712e12, 0x00552812, 0x003e2212, 0x00322516,
- 0x00b4b4a6, 0x00201f11, 0x001e1d12, 0x00222117, 0x00212115, 0x00212113, 0x00212115, 0x001f1f14, 0x001a1c0d, 0x0018190b, 0x00181607, 0x00171301, 0x00151607, 0x0014190e, 0x00161b13, 0x00161c14,
- 0x001a1e10, 0x00222010, 0x00261b0a, 0x0056432d, 0x008f775d, 0x009f775a, 0x00a37356, 0x00a37559, 0x009e7358, 0x00946c56, 0x00916957, 0x00926c5d, 0x007d584a, 0x00846154, 0x009a776a, 0x00a58577,
- 0x00a58e82, 0x00b79f92, 0x00a2897f, 0x008e746b, 0x0061483d, 0x00503b30, 0x008b7a71, 0x00cdc0b6, 0x00f2efe2, 0x00f8f7ea, 0x00f5f4ed, 0x00f0eef4, 0x00eaeaee, 0x00eeeef4, 0x00efeff3, 0x00edeef2,
- 0x00ebecef, 0x00ededf1, 0x00f0eef4, 0x00efeff4, 0x00eff0f3, 0x00f1eef2, 0x00f3f1f5, 0x00f0f3f5, 0x00e9f1ef, 0x00ebf0f0, 0x00f0f0f2, 0x00f1edf0, 0x00f0edf0, 0x00eceeef, 0x00ebeef0, 0x00ebf0f3,
- 0x00f4ebee, 0x00f9ebf0, 0x00f1e0e7, 0x00f3e2e9, 0x00ece7e9, 0x00e9efed, 0x00e5f1ed, 0x00e2f1ec, 0x00e8eceb, 0x00ecebeb, 0x00f1e8eb, 0x00f0e9e8, 0x00e9eaeb, 0x00e3ebec, 0x00dfebef, 0x00dceeef,
- 0x00dce9e7, 0x00e0e5e1, 0x00e1dfd8, 0x00eee1d6, 0x00ecd7c7, 0x00ddd1bb, 0x00c8bfa8, 0x00b5af9b, 0x00c7c8b9, 0x00e5e7de, 0x00e8e9e8, 0x00e6e8ea, 0x00e1e2e8, 0x00e0e0e8, 0x00e6e2ec, 0x00e7e3ec,
- 0x00ece9eb, 0x00ede9ec, 0x00ebeaed, 0x00eae6e9, 0x00e2e3e4, 0x00e6e3e5, 0x00e6e5e7, 0x00e9e6e9, 0x00edeaeb, 0x00efeced, 0x00f3ecf0, 0x00f8e9f2, 0x00f4e9f1, 0x00f4ecf2, 0x00f0e9f0, 0x00ebeaf0,
- 0x00e5e7ee, 0x00e3e6eb, 0x00dfe3e8, 0x00e1e5e8, 0x00dde4e4, 0x00e7e7e6, 0x00f1f3f0, 0x00fcfaf7, 0x00fdfbf7, 0x00fefef9, 0x00fcfcfa, 0x00f8f9f9, 0x00737379, 0x000d0d14, 0x00050410, 0x000e0b1c,
- 0x000c0d22, 0x00121228, 0x0013122d, 0x00181837, 0x001e1f43, 0x0025284d, 0x002c2f58, 0x00363a61, 0x003f4468, 0x00454a6e, 0x00484b77, 0x00494b85, 0x004e4770, 0x004e4055, 0x00705458, 0x009d7869,
- 0x0097693d, 0x0087551e, 0x009c672b, 0x009f6828, 0x009b641e, 0x00ae752c, 0x00b67c30, 0x00b5782b, 0x00b47222, 0x00b67120, 0x00bb7422, 0x00c27b27, 0x00c98431, 0x00c98634, 0x00c17e2d, 0x00c68131,
- 0x00c58b3a, 0x00dd9c51, 0x00e8a05d, 0x00e69b63, 0x009e6b40, 0x00502c13, 0x00160400, 0x00050000, 0x0010090c, 0x00180911, 0x00160f22, 0x001c284c, 0x003d62d1, 0x00528df5, 0x0056a2f6, 0x005aa8e9,
- 0x006f94e1, 0x008c91d6, 0x00a797bb, 0x00c19b8e, 0x00cb9d68, 0x00bd967f, 0x00a88984, 0x00997e7e, 0x00645667, 0x00423d56, 0x003e3e63, 0x00414471, 0x003d4375, 0x00464a7e, 0x00515086, 0x0056558d,
- 0x005e5c87, 0x005e5e86, 0x005a5c85, 0x00585c85, 0x00565a80, 0x0054577b, 0x00515372, 0x004b4d66, 0x00474656, 0x00454150, 0x00423b48, 0x0041323f, 0x00413441, 0x00433846, 0x00463d4a, 0x00453f4d,
- 0x00474654, 0x0047475d, 0x00494b67, 0x004c4e6e, 0x004f5077, 0x00505276, 0x004e5375, 0x004a5177, 0x00444e76, 0x00404c76, 0x00414d78, 0x00424e7b, 0x0046507c, 0x004a517d, 0x004e537d, 0x0050537d,
- 0x004f547b, 0x004c5079, 0x004a4d79, 0x00474a78, 0x00404271, 0x00393b67, 0x002f325a, 0x00272a50, 0x00202643, 0x001c223c, 0x00151a33, 0x00141831, 0x0010132a, 0x000a0c21, 0x0016172a, 0x00767788,
- 0x00fbfefe, 0x00fdfffe, 0x00fffdff, 0x00fffffe, 0x00fafaf7, 0x00b4b5b4, 0x002a2b2b, 0x00171817, 0x001c201f, 0x001e2221, 0x00161818, 0x000e100f, 0x000c0f0e, 0x000e1110, 0x00141414, 0x001b1c1b,
- 0x0015241d, 0x00171d1c, 0x00171218, 0x001e1018, 0x001f1312, 0x00271f13, 0x0037331d, 0x00706b4d, 0x00c2b490, 0x00c6af91, 0x00c7a98b, 0x00c8a880, 0x00c3a57f, 0x00bda07c, 0x00bfa27e, 0x00b39774,
- 0x0090734d, 0x009e7853, 0x00a97f57, 0x00ab7c56, 0x00bc8c60, 0x00c19c61, 0x00bba174, 0x00897276, 0x004a3b94, 0x004644aa, 0x003943a5, 0x00223687, 0x000f2060, 0x0018237a, 0x00262696, 0x00231aa8,
- 0x001a167c, 0x00252372, 0x00454376, 0x00232238, 0x00040400, 0x00050300, 0x00090700, 0x000c0a02, 0x000a0906, 0x00080807, 0x00040305, 0x00010106, 0x00000100, 0x00020402, 0x00080a03, 0x000a0e03,
- 0x000a0d02, 0x000e1207, 0x00191b13, 0x0022231c, 0x001f201b, 0x00131814, 0x00080c08, 0x00030500, 0x00100e00, 0x00211907, 0x002d210c, 0x00352913, 0x00382918, 0x00332316, 0x0084776f, 0x00e9dcd7,
- 0x00fdfbf0, 0x00fcfaf7, 0x00fcfafd, 0x00f4f7fa, 0x00bfbcbb, 0x00625851, 0x0039281d, 0x003f291b, 0x003a261c, 0x00362622, 0x002c2121, 0x00261f20, 0x001f171b, 0x001d1418, 0x001b1011, 0x00170c07,
- 0x002d2518, 0x00534c43, 0x005d5755, 0x006b6672, 0x00635e7a, 0x00273564, 0x00122966, 0x0012256c, 0x000d2275, 0x0011247c, 0x0013257d, 0x0016297f, 0x00152b7c, 0x0012297e, 0x00112883, 0x00142a8b,
- 0x0015298a, 0x00132788, 0x0015288a, 0x00192f91, 0x0020389a, 0x00203a9d, 0x001c379b, 0x001d3d9f, 0x001b3f9e, 0x001a3ea2, 0x001c3b98, 0x001e378c, 0x00143a7f, 0x0011388a, 0x00143698, 0x001932ac,
- 0x00223196, 0x00374385, 0x006a79a1, 0x008296b0, 0x007189b9, 0x00667fb7, 0x005975ad, 0x005772a3, 0x00577194, 0x00516982, 0x00485b6e, 0x003f4f59, 0x00414e4d, 0x00424d47, 0x00414a44, 0x00474e45,
- 0x00454b48, 0x00464c4a, 0x00474a4a, 0x00494a48, 0x00494948, 0x00464746, 0x00404442, 0x003a423d, 0x00313a33, 0x002c3830, 0x0029312b, 0x00292a28, 0x0021211f, 0x001c1d1e, 0x001b1b1d, 0x001d1c1f,
- 0x001f1e1e, 0x001e1e1d, 0x001d1c1d, 0x001b1b1c, 0x00191a1a, 0x00181a1c, 0x0014171b, 0x00111517, 0x000e1115, 0x00101316, 0x00111117, 0x00121118, 0x000e0f13, 0x000b0c0f, 0x002b2c31, 0x008f9396,
- 0x00fbfafe, 0x00fdfdff, 0x00fcfcfc, 0x00fefffd, 0x00fbfff8, 0x00b3bab1, 0x001e281c, 0x00091409, 0x0007140c, 0x0008170e, 0x005f6864, 0x00c5c5c4, 0x00f9faf6, 0x00fcfcf8, 0x00fafbf8, 0x00f8faf7,
- 0x00fbfefa, 0x00fafcf7, 0x00f8f9f5, 0x00f8fbf8, 0x00fbfdfb, 0x00fdfef6, 0x00fcf9f3, 0x00f4e8f0, 0x00f29e74, 0x00f37f28, 0x00f88c25, 0x00f98731, 0x00f47e47, 0x00f47b45, 0x00eb7f45, 0x00d78b51,
- 0x00bd96a1, 0x00be9eb0, 0x00b69fb5, 0x00baadcc, 0x00bfc2ea, 0x00c4cef6, 0x00bccde7, 0x009bb3c4, 0x00506d66, 0x00294436, 0x00223524, 0x00232622, 0x001b1d19, 0x00181713, 0x0014150d, 0x0015160f,
- 0x000f110a, 0x00080906, 0x00030304, 0x00050408, 0x0005040b, 0x00060208, 0x00070209, 0x00090711, 0x000d0b1a, 0x0010101f, 0x00151525, 0x00181622, 0x00171419, 0x00171210, 0x001f1811, 0x002b2219,
- 0x003b2e17, 0x0040331e, 0x003d2f1e, 0x00312317, 0x0022170f, 0x001b110c, 0x00160d0a, 0x0019130f, 0x0018190f, 0x001c1e14, 0x00252417, 0x002d2915, 0x00302b19, 0x0037301e, 0x00352a1c, 0x00322718,
- 0x00291e11, 0x0030251b, 0x0033281e, 0x00312b21, 0x002a2819, 0x002a2b20, 0x0022241b, 0x0027231d, 0x003a2e28, 0x0049392f, 0x0054412e, 0x005a482b, 0x0056472a, 0x00463b24, 0x00393223, 0x002e2723,
- 0x0019131c, 0x00190908, 0x005f462a, 0x00b39062, 0x00c29a65, 0x00a9835d, 0x005a3715, 0x00512f0f, 0x009e7948, 0x00c6a261, 0x00ddb676, 0x00e1be8a, 0x00d2ae76, 0x00bc985c, 0x00a68142, 0x00c39d5d,
- 0x00e3c086, 0x00f5d29f, 0x00d3b586, 0x00c5a982, 0x00c5ad8b, 0x008b785c, 0x00352913, 0x00180b02, 0x00070100, 0x00090403, 0x00060206, 0x000b090d, 0x001c1d19, 0x00393b2e, 0x004b4c38, 0x00686950,
- 0x00c6c6c0, 0x00f8f9f4, 0x00fefdfd, 0x00fcfafb, 0x00fefefc, 0x00fafefd, 0x00969a9e, 0x0033373d, 0x00282d35, 0x0030343a, 0x002c2f39, 0x002b2b37, 0x0026252d, 0x00202126, 0x001d1f22, 0x00151716,
- 0x00101612, 0x0015171c, 0x00060a0f, 0x0021242e, 0x00616573, 0x00808fad, 0x00809bc6, 0x007997cd, 0x005e8dd6, 0x00467dd0, 0x002c6ac6, 0x002867c9, 0x00215fc4, 0x00245ebd, 0x002156af, 0x001e51aa,
- 0x001c4195, 0x00143884, 0x000a2c73, 0x00072667, 0x00041d5d, 0x00132768, 0x004f5e9b, 0x009ba7de, 0x00d6e3f9, 0x00e1eef7, 0x00e5eaf2, 0x00ebe7f0, 0x00eaecf3, 0x00e4e7f3, 0x00a4a9b6, 0x005a6170,
- 0x00212c36, 0x002a323b, 0x002f323c, 0x002d2d34, 0x00211f22, 0x00222026, 0x00171b22, 0x000c171f, 0x00021216, 0x00020e0f, 0x00050909, 0x000b0809, 0x00110f14, 0x00070d26, 0x000b1f48, 0x00223f79,
- 0x003359af, 0x004669ab, 0x004f6d99, 0x004c647a, 0x00556169, 0x00595f6a, 0x005d5e71, 0x00626179, 0x005b5e6e, 0x00575b64, 0x00535662, 0x004f5163, 0x00474a5b, 0x00414653, 0x00414652, 0x00444753,
- 0x004b5055, 0x0051575b, 0x005d6064, 0x00616566, 0x005f6366, 0x0060656a, 0x00646871, 0x00616874, 0x0053606d, 0x00475463, 0x003d495a, 0x003a4657, 0x00404a59, 0x004b535f, 0x00585e67, 0x005d6169,
- 0x005c6068, 0x0060646d, 0x0060636f, 0x00585c69, 0x004d4f5f, 0x00424454, 0x0040424f, 0x00484a55, 0x00585c60, 0x0064696a, 0x00686e6e, 0x006d7374, 0x006b666a, 0x00544b50, 0x0031282e, 0x001f1a1f,
- 0x000d1212, 0x000e1316, 0x000f1517, 0x00121113, 0x00160b11, 0x00100c12, 0x000d1013, 0x001e1b1d, 0x00383434, 0x003f3f43, 0x00373a47, 0x002b3448, 0x00253349, 0x00313848, 0x0044424e, 0x00575056,
- 0x005d5e64, 0x00626369, 0x005e5e64, 0x005c5d61, 0x00999b9f, 0x00eaeded, 0x00fbfdfc, 0x00fcfefc, 0x00f9fbf9, 0x00fcfefd, 0x00d1d3d4, 0x008e9193, 0x00909393, 0x00c6c9c9, 0x00f0f2f5, 0x00f9fbfd,
- 0x00fafcfc, 0x00fdffff, 0x00fafafb, 0x00fcfdfe, 0x00f9fbfb, 0x00f8faf7, 0x00fefefb, 0x00fcfcfb, 0x00fcfef7, 0x00fffffb, 0x00fbf9f9, 0x00fcfbfb, 0x00fbfdfc, 0x00feffff, 0x00fbfbfc, 0x00f7f7f9,
- 0x00dee0e2, 0x00c2c4c7, 0x00989a9f, 0x00787980, 0x004c4c56, 0x002d2d39, 0x001c1b29, 0x00100f1d, 0x000c0b1d, 0x00121122, 0x00151525, 0x00141825, 0x00181c27, 0x00181a22, 0x001d1e20, 0x00252824,
- 0x002c2f2b, 0x00373937, 0x00474647, 0x00535154, 0x00615e61, 0x006a6967, 0x0071706a, 0x00777671, 0x00797772, 0x00787771, 0x0076726e, 0x006f6a65, 0x00666159, 0x00615b53, 0x0058524b, 0x00514b44,
- 0x00494435, 0x00494032, 0x00483c2f, 0x004d3b30, 0x00533c2f, 0x00583f32, 0x00644b3f, 0x006d584b, 0x00726552, 0x006a604d, 0x00514e35, 0x00454929, 0x004f4330, 0x00715649, 0x009c7f6a, 0x00a48266,
- 0x009b824b, 0x009f8648, 0x009e8045, 0x009b7547, 0x009e6b4f, 0x00767078, 0x00607698, 0x005c7ca9, 0x005284c8, 0x004e88d1, 0x004984d3, 0x004984d5, 0x004b88d7, 0x00478bdc, 0x004890e3, 0x004793e8,
- 0x004a99e9, 0x00539ce8, 0x005d9be7, 0x00649de5, 0x0062a1f0, 0x005fa2f3, 0x005495e0, 0x00487ebe, 0x005a6981, 0x00695f63, 0x0068514c, 0x00624843, 0x005c3f32, 0x005d392a, 0x005d382a, 0x005b3529,
- 0x0050332c, 0x0050322c, 0x00563229, 0x00603323, 0x0070331a, 0x007e3715, 0x008c3c16, 0x00953e19, 0x009f3d14, 0x009f3a12, 0x009b3512, 0x008e300f, 0x006e2d10, 0x0053270f, 0x003c220f, 0x00302315,
- 0x00b7b5aa, 0x00222214, 0x00202014, 0x00232318, 0x00212014, 0x00212013, 0x00212114, 0x00202113, 0x001c1d10, 0x001a1a0c, 0x00191609, 0x00171503, 0x00161709, 0x0015190c, 0x00161b12, 0x00171d13,
- 0x001b1c15, 0x00221f12, 0x002b200f, 0x0046321d, 0x00816b54, 0x009f785e, 0x00a7775e, 0x00a67860, 0x00a77a65, 0x009c7362, 0x00926a5b, 0x007b584e, 0x00583734, 0x005d423f, 0x00725758, 0x00776062,
- 0x00766261, 0x006d5958, 0x004c3a39, 0x00372626, 0x00413030, 0x00736767, 0x00cbc4c5, 0x00efeeed, 0x00eff1f1, 0x00eff6f4, 0x00ecf1f2, 0x00f1f0f4, 0x00f3f0f6, 0x00f2f2f8, 0x00f2f0f7, 0x00ebe9f0,
- 0x00efecf3, 0x00edecf2, 0x00ededf2, 0x00ededf2, 0x00eeeef1, 0x00f0f0f1, 0x00f4f3f5, 0x00f2f1f4, 0x00f3edf0, 0x00f2eaf0, 0x00f4ecf3, 0x00f2edf4, 0x00eceff3, 0x00e9eff2, 0x00eaf0f3, 0x00e9f1f4,
- 0x00f6eef0, 0x00fcf4f6, 0x00f7ebed, 0x00f3e6ea, 0x00eee6ea, 0x00e7ebeb, 0x00e7f0ed, 0x00e5f2ec, 0x00ececec, 0x00f0ebeb, 0x00f2e7ea, 0x00f6e7e8, 0x00ebe6e9, 0x00e9e7ea, 0x00e5ebf1, 0x00e3f0f4,
- 0x00dde6e9, 0x00e4ebe9, 0x00dfe3dc, 0x00e2ded7, 0x00ece3d6, 0x00e7e1d8, 0x00d7d1c5, 0x00cdcabc, 0x00dcdcd8, 0x00eaebe9, 0x00e9eaec, 0x00e3e5e9, 0x00dfdfe4, 0x00dfdee3, 0x00e4e2e6, 0x00e7e4e7,
- 0x00e9eaec, 0x00eaebec, 0x00e9edec, 0x00e8e7e7, 0x00e5e5e5, 0x00e9e2e4, 0x00e8e3e4, 0x00eae5e5, 0x00edeae9, 0x00f2eceb, 0x00f6ebf1, 0x00f8e5f2, 0x00f6e9f7, 0x00f7ebf9, 0x00f3ebfa, 0x00eeeffa,
- 0x00eaeffc, 0x00e3eaf1, 0x00e2e9eb, 0x00e6eeec, 0x00e3eae5, 0x00eaeceb, 0x00f7f6f6, 0x00fcfdfb, 0x00fefefc, 0x00fcfcfa, 0x00fdfefd, 0x00f8f9fa, 0x007a7981, 0x000e0c15, 0x00090613, 0x00110d1e,
- 0x000f0f27, 0x0011112a, 0x00161632, 0x00161737, 0x001c1c46, 0x00232451, 0x00282956, 0x0031315d, 0x003a3c68, 0x003e426a, 0x00454572, 0x004b457d, 0x00493a66, 0x0047344a, 0x00745659, 0x00a07b6a,
- 0x00a67447, 0x00a9773f, 0x00ba8742, 0x00ab762c, 0x009e6a18, 0x00b4792e, 0x00be7f32, 0x00bb7b2e, 0x00b67021, 0x00b56e1e, 0x00be7322, 0x00c37725, 0x00c77f2e, 0x00c98333, 0x00c88235, 0x00c68235,
- 0x00d29047, 0x00f0ab65, 0x00eaa46a, 0x00b87a48, 0x005d2e17, 0x00240b00, 0x000b0001, 0x00050100, 0x00150b1a, 0x001e1021, 0x00211a3d, 0x00303f7f, 0x00496bdb, 0x004b87ed, 0x004c9ef7, 0x0049a7f6,
- 0x00589afd, 0x006e8ff1, 0x008b89ce, 0x00b38e8c, 0x00e59c51, 0x00eab083, 0x00e4b49d, 0x00dbb2a1, 0x00b8999c, 0x0075636d, 0x00453952, 0x00403a5f, 0x00454675, 0x0046467c, 0x004f4d87, 0x00555692,
- 0x00605a86, 0x005f5b84, 0x005f5f88, 0x005d5f85, 0x005a5d7f, 0x00575977, 0x00565770, 0x00515065, 0x004d4a53, 0x0049444c, 0x00453c42, 0x00433338, 0x0045363c, 0x00463940, 0x004a3e45, 0x004a4149,
- 0x00504958, 0x004f4b5d, 0x00504e67, 0x0051516d, 0x00535275, 0x00535379, 0x004e527c, 0x0048507a, 0x00424d79, 0x003c4977, 0x003b4878, 0x003d4a7b, 0x00444d7d, 0x00494e7e, 0x004d4f7d, 0x004d4f7c,
- 0x0050537e, 0x004d507b, 0x004c4e7b, 0x004a4d79, 0x00434671, 0x003d4069, 0x0034385e, 0x002b3054, 0x00272c48, 0x0020253f, 0x001c203c, 0x00151733, 0x001a1b35, 0x000e0e24, 0x0029293c, 0x009392a2,
- 0x00fdfdff, 0x00fcfcfc, 0x00fefefe, 0x00fefefc, 0x00f5f6f4, 0x00a4a5a6, 0x00222424, 0x00171817, 0x00202322, 0x001d201f, 0x00191b1b, 0x00111312, 0x00121515, 0x00131717, 0x001a1d1d, 0x001e2121,
- 0x001b2b27, 0x001d2323, 0x001a1a1c, 0x001d131b, 0x001b1419, 0x00201818, 0x002a261c, 0x00574f39, 0x00a59470, 0x00b39971, 0x00be9c71, 0x00cda175, 0x00d0a57b, 0x00c89f79, 0x00c59d79, 0x00bd9572,
- 0x00aa7f5c, 0x00a47758, 0x00b98763, 0x00b78761, 0x00ba865b, 0x00b89164, 0x00b59774, 0x00877372, 0x004b3e7f, 0x003d398c, 0x00383e99, 0x00303d98, 0x003242a0, 0x003540a9, 0x002c30a9, 0x001c1ca4,
- 0x001a116b, 0x00474185, 0x006c6995, 0x002f2e3e, 0x00020000, 0x00070400, 0x00070700, 0x00080901, 0x00090a03, 0x00050901, 0x00050902, 0x00070707, 0x00000000, 0x00000300, 0x00060901, 0x000c1103,
- 0x000a0e02, 0x00050d01, 0x00060f06, 0x000b120c, 0x000b130d, 0x00060b07, 0x00020501, 0x00060700, 0x00141204, 0x00231d09, 0x002e260f, 0x002e2710, 0x002e2414, 0x002d2316, 0x00918780, 0x00eee6e3,
- 0x00fffdfa, 0x00fcfaf9, 0x00fffeff, 0x00fdfdfe, 0x00c8bebd, 0x006e5952, 0x0052362b, 0x005b3c2c, 0x00543729, 0x004d382e, 0x0042322f, 0x003a2c34, 0x002e1e26, 0x00291b1f, 0x002e201e, 0x0033271b,
- 0x002b2311, 0x00363225, 0x003f3c3c, 0x005a5a6b, 0x00585681, 0x00212f69, 0x00132a73, 0x00152a7c, 0x0013298e, 0x00132891, 0x00172c96, 0x00182e95, 0x00162e92, 0x00122b92, 0x00122b98, 0x00162fa2,
- 0x00152ba3, 0x00162ea5, 0x003a55c9, 0x004664db, 0x003e62d5, 0x002f55cb, 0x002952c4, 0x002652c3, 0x002453c3, 0x001e4ebe, 0x001e4ab6, 0x001e45a5, 0x0017489d, 0x001443a8, 0x001942bb, 0x001d3cd0,
- 0x002a39bd, 0x004352b0, 0x00758ac8, 0x006f8bba, 0x006081c4, 0x005f86dc, 0x00638de8, 0x006991e5, 0x00759bdf, 0x007598cb, 0x007292b8, 0x0069859e, 0x00677e88, 0x005f7475, 0x00485c58, 0x00475951,
- 0x00515b5b, 0x00515c5a, 0x00535a5a, 0x00545956, 0x00565959, 0x00555654, 0x00525351, 0x004c4f4a, 0x00424a47, 0x003c4644, 0x003a403e, 0x00363436, 0x002e2b2c, 0x00282728, 0x00252625, 0x00262728,
- 0x00272727, 0x00272827, 0x00262626, 0x00232424, 0x00222222, 0x00212224, 0x001d1e23, 0x00181b1e, 0x0016171c, 0x0014161a, 0x0016181d, 0x00121419, 0x00101317, 0x000e1013, 0x003d3e43, 0x00b1b2b6,
- 0x00fefbff, 0x00fdfdfd, 0x00fdfffb, 0x00fafdf9, 0x00f5faf2, 0x009ca29a, 0x0010180f, 0x000b150d, 0x000c1812, 0x00323f37, 0x00b2bab5, 0x00f4f4f2, 0x00fbfcf9, 0x00f9f9f6, 0x00fafaf9, 0x00fdfffc,
- 0x00fdfdf9, 0x00fafcf7, 0x00fcfaf7, 0x00fbfbf9, 0x00fcfdfc, 0x00fcfdf6, 0x00fef8f0, 0x00f8d7d4, 0x00f7804a, 0x00f36e15, 0x00fe8926, 0x00fb8b37, 0x00fc864e, 0x00fd8a46, 0x00fc974a, 0x00f9a74e,
- 0x00e9b79e, 0x00e7b9ac, 0x00deb5bc, 0x00d6b8cd, 0x00d6cbf4, 0x00d2d1fb, 0x00ced5fa, 0x00c4d5ee, 0x00aec2c2, 0x00809989, 0x00596b5a, 0x004f5247, 0x0048483e, 0x00404436, 0x00363c2f, 0x002d3227,
- 0x0020251a, 0x00181d15, 0x00101312, 0x000b0c0d, 0x0005050b, 0x00060308, 0x0008030b, 0x0009050f, 0x000c0a18, 0x0010101e, 0x00151625, 0x00181623, 0x0019151d, 0x00151011, 0x0018120e, 0x001f1711,
- 0x002c1f10, 0x00302515, 0x00302417, 0x00281d14, 0x00201613, 0x001e1515, 0x00191111, 0x001b1513, 0x00181713, 0x00191912, 0x00201e14, 0x00231f0b, 0x002b2311, 0x00312613, 0x00362819, 0x0038291a,
- 0x00352619, 0x0035281a, 0x0034281b, 0x002d251b, 0x002a2618, 0x002e2e21, 0x0038372d, 0x003f3834, 0x004c413c, 0x0054473c, 0x00544331, 0x00554529, 0x004d4022, 0x00423820, 0x003b3323, 0x00322b24,
- 0x00211c26, 0x0019090b, 0x004b321b, 0x00b89569, 0x00dbb380, 0x00ab845e, 0x00704c27, 0x00704e28, 0x00a8844e, 0x00c29d59, 0x00dbb271, 0x00e0ba88, 0x00dfb67e, 0x00d2aa70, 0x00c49b5e, 0x00c69d60,
- 0x00e4bd83, 0x00f3d29a, 0x00f6d7a5, 0x00f7e0b5, 0x00e5cba8, 0x00817054, 0x00281a07, 0x00160a00, 0x000f0803, 0x00080300, 0x00050103, 0x000b0a0b, 0x001f1f19, 0x0039382c, 0x00484635, 0x005f5c47,
- 0x00b7b6b1, 0x00f4f4ef, 0x00fefffc, 0x00fafaf9, 0x00fefefd, 0x00fdfeff, 0x00aaadb2, 0x004a4f55, 0x00363b45, 0x00393e46, 0x00323540, 0x002a2b38, 0x0021222c, 0x001e2027, 0x00191c21, 0x00131617,
- 0x000d0e12, 0x0009090f, 0x00302f35, 0x0084848c, 0x00bbb9c7, 0x009db4e3, 0x007fa5ea, 0x00668fd7, 0x003e70cd, 0x002c64c2, 0x002560c6, 0x00205bc5, 0x001f57bd, 0x002153b1, 0x00204da6, 0x00184398,
- 0x00192f77, 0x00132b6a, 0x0009225a, 0x0002184c, 0x0004174e, 0x000f1d59, 0x004a5891, 0x008d9dd2, 0x00bdccea, 0x00c7d8ea, 0x00dce8f9, 0x00e6e9fb, 0x00e5e9fc, 0x00dee1f8, 0x00d8dcf4, 0x00b3b7cf,
- 0x008d93a7, 0x00979ba9, 0x009a9ca6, 0x007f7f86, 0x004c4b4e, 0x00373940, 0x002b323a, 0x001c2831, 0x000e1d27, 0x000c1b1e, 0x0013191d, 0x001a1d22, 0x00192132, 0x0008183b, 0x000f275a, 0x00193e7c,
- 0x00224aae, 0x00375eae, 0x004e6fad, 0x004c6a91, 0x004d5b72, 0x00485264, 0x00494d62, 0x004e5062, 0x004f535e, 0x004e5357, 0x004e5159, 0x004f5161, 0x004d4f5e, 0x00474a56, 0x00434450, 0x0044444f,
- 0x00494c53, 0x0051555b, 0x005f6165, 0x00636668, 0x00646769, 0x0065696e, 0x00666973, 0x00616672, 0x00565e6c, 0x00495160, 0x003f4757, 0x003b4353, 0x00484f5d, 0x00525964, 0x005b616a, 0x005e636b,
- 0x005d626e, 0x005b5f6b, 0x00545765, 0x004c4e5d, 0x00414252, 0x003c3e4d, 0x003f434f, 0x004c4e59, 0x005f6265, 0x00686c6b, 0x006b7170, 0x006c7574, 0x006c696c, 0x005a5154, 0x00372c2f, 0x00251d1d,
- 0x00101311, 0x00101615, 0x00111516, 0x00131415, 0x00160b11, 0x000d0c14, 0x000a0c14, 0x001a1a1d, 0x003e363b, 0x004b4850, 0x004a4b5b, 0x003b4359, 0x00313c57, 0x0034374e, 0x003f3c4e, 0x00504955,
- 0x0057585f, 0x005b5c62, 0x00606166, 0x00585a5f, 0x00949497, 0x00e5e6e7, 0x00fbfdfd, 0x00fbfefc, 0x00fcfcfc, 0x00fbfdfb, 0x00dadddc, 0x00979b9a, 0x00878b8b, 0x00bec0c3, 0x00ebedf0, 0x00f6f8fa,
- 0x00fefdff, 0x00fefeff, 0x00ffffff, 0x00fcfcff, 0x00fbfcfd, 0x00fcfefa, 0x00fefefa, 0x00fdfcfa, 0x00fdfdfc, 0x00fefefc, 0x00fefdfd, 0x00faf8fa, 0x00f5f6fa, 0x00e3e4ea, 0x00bebdc6, 0x009f9ea8,
- 0x006f7177, 0x004e5258, 0x00252832, 0x00111521, 0x000b0d1e, 0x000d0e22, 0x00111128, 0x0013132b, 0x00151937, 0x00151837, 0x00181937, 0x001a1e37, 0x00222337, 0x00232534, 0x00262830, 0x00282b2d,
- 0x0037393a, 0x00414344, 0x004f5050, 0x00595a59, 0x00666565, 0x00706e6c, 0x00767570, 0x007a7974, 0x007a7873, 0x0078756f, 0x00746f6a, 0x006c665f, 0x00645d54, 0x005e564d, 0x00544b43, 0x004c423a,
- 0x00443f37, 0x00433c32, 0x0042392f, 0x0046372d, 0x004e392e, 0x00543d31, 0x005c4638, 0x00655542, 0x00736851, 0x00757256, 0x00757257, 0x00666c4e, 0x00796955, 0x008c735f, 0x00a08168, 0x009a7b55,
- 0x009d7f48, 0x009e8444, 0x009e8045, 0x009c7748, 0x009e6d4e, 0x00876d60, 0x006b646a, 0x00616a7e, 0x005b7fb5, 0x005a89c8, 0x005187cd, 0x004982ce, 0x004d89d5, 0x00498bdb, 0x004b91e3, 0x004893e5,
- 0x005497e5, 0x005b9ae6, 0x00659fe9, 0x006ca3ec, 0x0066a7f7, 0x006aacfb, 0x0064a2e8, 0x005687c0, 0x006a697c, 0x00775f59, 0x00765443, 0x00674b44, 0x00603e31, 0x005e392b, 0x005f3627, 0x005b342a,
- 0x0058342e, 0x0057332c, 0x005c3228, 0x00663422, 0x0077371c, 0x00863d1a, 0x0091401a, 0x0097401a, 0x00a23d16, 0x009f3b14, 0x009a3815, 0x008d3213, 0x006c2d13, 0x00522713, 0x003c2212, 0x00302215,
- 0x00b7b6aa, 0x00252418, 0x00222216, 0x00242419, 0x00212014, 0x00212012, 0x00212012, 0x001f2013, 0x001d1f11, 0x001c1c10, 0x001c1b0c, 0x001b1b0b, 0x001c1d0e, 0x001a1d12, 0x001b1f14, 0x001b1f15,
- 0x001b1b12, 0x001f1b0f, 0x00282111, 0x002f210e, 0x0062543f, 0x009d7960, 0x00a77b5d, 0x00a87c5e, 0x00ac7e66, 0x00a37760, 0x008f6955, 0x006f4c3d, 0x002f1810, 0x001f0f0c, 0x00180c10, 0x001f181d,
- 0x002d1a1e, 0x002b1a20, 0x002d1c21, 0x00504146, 0x009d9399, 0x00dad5da, 0x00f4f0f6, 0x00f1f2f8, 0x00eaf2f5, 0x00eaf6f9, 0x00eaf2f6, 0x00f1f2f6, 0x00f0eff4, 0x00f0f0f5, 0x00ededf2, 0x00ebeaef,
- 0x00efecf2, 0x00eeebf1, 0x00edecf1, 0x00eeeef3, 0x00eeeef2, 0x00eef2f0, 0x00f0f4f0, 0x00f1eef0, 0x00f7e7ee, 0x00f5e5ee, 0x00f3e6f2, 0x00f1eaf6, 0x00eaeef6, 0x00e9f0f6, 0x00e9f1f5, 0x00e7f1f4,
- 0x00ecfaf3, 0x00ebf1ee, 0x00cdd3d1, 0x00d4d5d7, 0x00e5e8ed, 0x00e7edf1, 0x00e6eff0, 0x00eceff2, 0x00f8e9f0, 0x00fee7f1, 0x00fde7ef, 0x00fae7ee, 0x00f2e5ec, 0x00f1e4ef, 0x00f0e7f4, 0x00f2ecf9,
- 0x00ece4f7, 0x00efe3f4, 0x00ede4ec, 0x00ebdbe3, 0x00ead8dc, 0x00e8e0e2, 0x00dfdfdd, 0x00e4e3e0, 0x00e7ebea, 0x00e6e8ea, 0x00e3e7e9, 0x00e2e6e8, 0x00dfe0e3, 0x00e0e1e2, 0x00e4e7e6, 0x00e7e8e7,
- 0x00e4f1f0, 0x00e7f2f1, 0x00e8f2f0, 0x00e9eced, 0x00e6e8ea, 0x00e8e5e9, 0x00e7e6e9, 0x00e7e7e8, 0x00e6e8eb, 0x00ecedef, 0x00efeff3, 0x00f2eff5, 0x00eeeff7, 0x00edf0fb, 0x00eceffd, 0x00e8edfa,
- 0x00eaedfb, 0x00eef0fa, 0x00edf2f4, 0x00ecf1ee, 0x00eaefe7, 0x00ecebea, 0x00f4f3f3, 0x00fafaf9, 0x00fcfcfb, 0x00fdfdfc, 0x00fafafa, 0x00fcfbfd, 0x007e7c84, 0x00100e18, 0x000b0917, 0x00131022,
- 0x000f1227, 0x00141730, 0x00151734, 0x00181a3b, 0x001b1b49, 0x00242454, 0x00282757, 0x002a2959, 0x002e305c, 0x0031335e, 0x0039385e, 0x00493d61, 0x00695872, 0x00876d79, 0x00a0817b, 0x009f7963,
- 0x008b5c34, 0x00996935, 0x00ac793b, 0x00b17834, 0x00a67124, 0x00b7782f, 0x00c48137, 0x00c58235, 0x00bd7728, 0x00ba7422, 0x00be7321, 0x00c07523, 0x00c17a28, 0x00c37d2f, 0x00c47f33, 0x00bf7b31,
- 0x00cc823b, 0x00cd8648, 0x00b47743, 0x00804724, 0x00310f00, 0x001e0602, 0x00090000, 0x000b0608, 0x00130a20, 0x001a0d2d, 0x002d3064, 0x00405eaf, 0x004b6ddb, 0x00517feb, 0x005194f8, 0x003e96f6,
- 0x003d99ff, 0x004f8efe, 0x006b8be0, 0x009f90b7, 0x00edb67c, 0x00f5cda6, 0x00f3d5b4, 0x00f0cdb1, 0x00e6c9bd, 0x00c4b1ac, 0x008b7f86, 0x00857e91, 0x007e7b98, 0x00676589, 0x00504c74, 0x0052507a,
- 0x005c5980, 0x00605e81, 0x00626183, 0x00616283, 0x005e607e, 0x005b5d75, 0x0059596b, 0x0055535e, 0x00524c4e, 0x00504747, 0x004c3e3e, 0x004d3637, 0x004c3538, 0x004f3b3e, 0x00524043, 0x00524448,
- 0x00574e58, 0x00554f5d, 0x00555165, 0x0055536d, 0x00555571, 0x0055557c, 0x00505480, 0x0049527d, 0x00414a79, 0x003a4677, 0x00384577, 0x003b477c, 0x00424b7e, 0x00474b7f, 0x004b4e7f, 0x004c4e7f,
- 0x004d507b, 0x004c4f7a, 0x004d4f7a, 0x004b4e78, 0x00454870, 0x003f4469, 0x00383c5f, 0x002f3455, 0x002a2f4a, 0x00242943, 0x00202440, 0x00191b3b, 0x001f213b, 0x0013142c, 0x00404151, 0x00aeafbc,
- 0x00fafdfd, 0x00fdfefe, 0x00fbfcfb, 0x00fbfbfb, 0x00ebebed, 0x008c8e8f, 0x0015191a, 0x00141717, 0x00202423, 0x001d201f, 0x00171a19, 0x00161a1a, 0x00161a1a, 0x00171d1d, 0x00212626, 0x00272c2c,
- 0x001a2f25, 0x001e2926, 0x001e2322, 0x00211d26, 0x00221b2b, 0x00211827, 0x00201a1f, 0x0040352c, 0x00927e5b, 0x00b19265, 0x00c49f69, 0x00d1a36f, 0x00d1a472, 0x00d2a477, 0x00cba074, 0x00c4976f,
- 0x009b6d48, 0x00845734, 0x009b7048, 0x00ae835b, 0x00b98d63, 0x00c2967f, 0x00c29986, 0x00aa8c6f, 0x00645540, 0x00453748, 0x00403971, 0x004139a1, 0x003935bd, 0x003d3ab5, 0x002f3398, 0x00171f6d,
- 0x00413977, 0x00958fbe, 0x00aaa8c3, 0x0046464f, 0x00020100, 0x00050502, 0x00040804, 0x00020604, 0x00030503, 0x00040802, 0x00070b03, 0x00100807, 0x000b0402, 0x000d0803, 0x001a180c, 0x00232112,
- 0x00181607, 0x000f0f04, 0x00040600, 0x00060501, 0x00040602, 0x00090905, 0x000c0c06, 0x0013120b, 0x00212210, 0x002c2812, 0x002e2a12, 0x00292710, 0x00252111, 0x002e281b, 0x009e9991, 0x00f2eee9,
- 0x00fcfefe, 0x00f9f9fc, 0x00fefeff, 0x00fffefe, 0x00c9b9b3, 0x00765a4e, 0x0066422d, 0x0071472f, 0x00693d2a, 0x00654130, 0x0056392f, 0x004e3631, 0x003e2822, 0x002f1d14, 0x00473827, 0x0074674e,
- 0x00605742, 0x00453e38, 0x002a2632, 0x00323256, 0x00302d74, 0x00142176, 0x0011268a, 0x00162a9a, 0x00132ca9, 0x00122dac, 0x001431ad, 0x001031a8, 0x001135a4, 0x000f33a4, 0x001134a9, 0x001a3db6,
- 0x002c52b6, 0x003157bf, 0x00547ee6, 0x005182ee, 0x003268d7, 0x00245ed0, 0x00215fce, 0x00205fd0, 0x001d5cd0, 0x001b59ce, 0x001a54d1, 0x002051d8, 0x001a51c0, 0x001a4fc3, 0x001a4ac7, 0x001d43ce,
- 0x002a41b9, 0x00354ba5, 0x002c4a89, 0x00335b94, 0x004370c5, 0x004178e0, 0x004686f2, 0x005695fb, 0x00639ff6, 0x006ba4ef, 0x0076a9eb, 0x007daadf, 0x0081a9cc, 0x008aaec8, 0x006c8da0, 0x0055747f,
- 0x00546562, 0x00576564, 0x005a635f, 0x005d625d, 0x005f605b, 0x00615f5c, 0x005f5b55, 0x005d5753, 0x0056564f, 0x0053524d, 0x004b4c47, 0x003f4040, 0x00373636, 0x00313031, 0x002d2e2d, 0x002f2f2f,
- 0x002f3130, 0x002f302f, 0x002c2d2d, 0x002a2a2a, 0x00282828, 0x0027282a, 0x00202127, 0x001a1b1f, 0x0016171b, 0x0017181c, 0x0016191d, 0x00171a1e, 0x000f1216, 0x000f1216, 0x00525358, 0x00d6d7dd,
- 0x00fdfcff, 0x00fcfdfe, 0x00fafcf9, 0x00fbfffa, 0x00dee3db, 0x007a8077, 0x00091107, 0x00081108, 0x002a3530, 0x008c9591, 0x00edf2ef, 0x00fefefc, 0x00f8f9f7, 0x00fcfdfb, 0x00f7f8f7, 0x00f9f9f9,
- 0x00fdfcf9, 0x00fcfcfc, 0x00fdfbfb, 0x00fcfcfc, 0x00f9f9f9, 0x00fafcf2, 0x00fcf1df, 0x00f6bda2, 0x00f17035, 0x00ee7a31, 0x00faa465, 0x00f2ba97, 0x00ecc0bd, 0x00eecdbe, 0x00f5dec2, 0x00f8eebb,
- 0x00faf3cb, 0x00fdf8d8, 0x00f8f3df, 0x00f6f1e9, 0x00f8f5fd, 0x00f6edfe, 0x00e9ddf1, 0x00dfd4e6, 0x00e3d3db, 0x00d6c4c6, 0x00afa59e, 0x00868978, 0x006f7561, 0x006f755e, 0x00676f5a, 0x005a634e,
- 0x004d5442, 0x0042493c, 0x00333a31, 0x00272c29, 0x001b2120, 0x0019191c, 0x00151519, 0x0013131a, 0x0011131b, 0x00131720, 0x00141823, 0x00161721, 0x0016141a, 0x00151012, 0x00140d0b, 0x0019100c,
- 0x001d1507, 0x00221a0d, 0x00231b12, 0x001f1813, 0x001c1515, 0x001c1618, 0x00181414, 0x00191514, 0x00171713, 0x001a1915, 0x001f1c11, 0x001f1a08, 0x00291f0c, 0x00322413, 0x003e2c1c, 0x00432f20,
- 0x00422f1e, 0x003b281a, 0x00322315, 0x002f251b, 0x00393327, 0x00424234, 0x00555748, 0x005f5952, 0x0059504a, 0x00584d43, 0x00504231, 0x004c4025, 0x0043381d, 0x003e361f, 0x0041392a, 0x003e3630,
- 0x002a252d, 0x0020120e, 0x002e1406, 0x00805b3a, 0x00b9905f, 0x00a37d51, 0x008c693c, 0x00957441, 0x00af8c51, 0x00bd9653, 0x00c9a05e, 0x00d2a774, 0x00cda369, 0x00c69a62, 0x00a97e45, 0x00b78c54,
- 0x00e0b982, 0x00eeca95, 0x00e4c792, 0x00e6ce9d, 0x00cbb589, 0x006f5e3d, 0x00271c05, 0x00231808, 0x00171108, 0x000a0501, 0x00070403, 0x0012100d, 0x0026241e, 0x0039362a, 0x003d3726, 0x00504935,
- 0x009e9d99, 0x00edeeea, 0x00fdfefc, 0x00fcfdfb, 0x00fdfdfc, 0x00fbfcfd, 0x00c2c4c7, 0x00666a6f, 0x00454950, 0x0042484f, 0x00363a44, 0x002d2e3b, 0x0020232e, 0x001c2129, 0x00181d24, 0x000f161d,
- 0x00060910, 0x00211f2b, 0x009a989e, 0x00ddd6e0, 0x00b8afba, 0x00778bca, 0x005679d6, 0x004970ce, 0x003765c7, 0x002c5cbc, 0x002152b5, 0x001f4eaf, 0x0020489f, 0x00204290, 0x0017357f, 0x00102a6f,
- 0x002d3567, 0x003c4975, 0x003b4b70, 0x0029395b, 0x0022335c, 0x00354272, 0x005c6b9b, 0x008798c7, 0x00abbede, 0x00bcd0e7, 0x00d0e3f6, 0x00dee8ff, 0x00e0e9fd, 0x00dce2fb, 0x00d4dcf2, 0x00d1d7eb,
- 0x00e1e6f3, 0x00ebecf7, 0x00f3f3f8, 0x00e3e2e6, 0x00aeaeaf, 0x0086888d, 0x00555960, 0x0035373e, 0x0027292d, 0x0025272b, 0x00212126, 0x002d2c38, 0x002a3551, 0x00162652, 0x00122b62, 0x00103172,
- 0x00113ea9, 0x00254eaa, 0x004068b2, 0x004c6ca8, 0x00415579, 0x00384560, 0x00323c4f, 0x00373c46, 0x003f464a, 0x0044494b, 0x0046484d, 0x00494a57, 0x004d4d5a, 0x00494956, 0x0042424c, 0x0042424c,
- 0x00494d52, 0x00575a5f, 0x00616267, 0x0065686a, 0x0067686b, 0x00676b71, 0x0061656f, 0x00585c68, 0x004b525c, 0x00424a55, 0x003e4451, 0x003f4552, 0x00525864, 0x005c626d, 0x005d636e, 0x005b616c,
- 0x005d5f6c, 0x00575966, 0x00494c5a, 0x003f4351, 0x00383b49, 0x003a3e4b, 0x00434650, 0x004f525a, 0x005c6161, 0x00676c6a, 0x0069726f, 0x00636e6c, 0x005e5a5d, 0x00514647, 0x003a2a29, 0x002b1d17,
- 0x0018170d, 0x0012140f, 0x000c110a, 0x000c0f10, 0x00120d12, 0x00090c13, 0x0000060b, 0x000c0d0e, 0x002f2c2c, 0x00434348, 0x00494f5a, 0x00414f61, 0x0035465f, 0x00343f54, 0x00323849, 0x003e3f4c,
- 0x0045494d, 0x004e5155, 0x00585b5f, 0x004d4f55, 0x00858486, 0x00dcdbde, 0x00fcfdfe, 0x00fcfefd, 0x00f9f9f8, 0x00fafdfb, 0x00e4e7e6, 0x00a3a7a7, 0x007e8182, 0x00b3b5b7, 0x00e5e7ea, 0x00f5f7fa,
- 0x00fefeff, 0x00fdfdfd, 0x00fcfcfe, 0x00fcfcfe, 0x00fcfdfd, 0x00fcfefa, 0x00fcfdf9, 0x00fcfdfa, 0x00f9fcfc, 0x00eff0f4, 0x00d3d2dc, 0x00b7b6c3, 0x008a8998, 0x00646474, 0x003a3949, 0x00222031,
- 0x000f141b, 0x000c111b, 0x000d121e, 0x00111626, 0x0013172e, 0x00121531, 0x00141735, 0x00191c3e, 0x00192247, 0x001c224b, 0x00232850, 0x0027294c, 0x00262846, 0x00282841, 0x002b2e40, 0x002d313c,
- 0x003d3f42, 0x0047494b, 0x00535756, 0x005c5f5b, 0x00676865, 0x0070706c, 0x00767571, 0x007a7a76, 0x007a7973, 0x0078756f, 0x00736f68, 0x006c655d, 0x00635a50, 0x005d5348, 0x0053483d, 0x004c3f35,
- 0x00443d32, 0x00453a2f, 0x0045372b, 0x004c382c, 0x0050372a, 0x00563d2d, 0x005b4630, 0x0063553a, 0x00706749, 0x007c7555, 0x00828363, 0x00868b74, 0x00a0947a, 0x00a28970, 0x00967853, 0x00967647,
- 0x009b7b41, 0x009f8146, 0x009e8145, 0x009d7745, 0x009d6e45, 0x009d714e, 0x007f5d45, 0x005f4c44, 0x0047546e, 0x004c658c, 0x005173a3, 0x005278ad, 0x00577db0, 0x005a81b5, 0x005d86bb, 0x005c89bd,
- 0x006b8fc6, 0x007292ca, 0x00789bd0, 0x00789ed9, 0x006ba3ec, 0x006ba8f4, 0x006ea8ee, 0x006c99d2, 0x00737583, 0x007f685f, 0x007e5d49, 0x006d5249, 0x00664335, 0x00633d2c, 0x00633a25, 0x00613a28,
- 0x005f3c30, 0x005e382d, 0x00613528, 0x006b3721, 0x007d3b1d, 0x008c401c, 0x0096421c, 0x0099401a, 0x00a13c13, 0x009f3c14, 0x00993a16, 0x008a3414, 0x006a2f17, 0x00512816, 0x003c2315, 0x0031231a,
- 0x00b3b1a7, 0x00211f13, 0x00222014, 0x00211f13, 0x00212215, 0x00202214, 0x00212215, 0x00222316, 0x00212014, 0x00202013, 0x00202012, 0x001e200e, 0x001f2114, 0x001f2215, 0x001f2217, 0x001d2116,
- 0x001d1d10, 0x001f1c0e, 0x002b2516, 0x002b1d0f, 0x004f4232, 0x0081634b, 0x00a37c5c, 0x00a17a5a, 0x00ae8062, 0x00a67c59, 0x00916949, 0x006f5030, 0x003a2412, 0x00160d00, 0x00140e0d, 0x00181816,
- 0x0030171e, 0x00321b22, 0x00675257, 0x00ac9b9e, 0x00ede5e8, 0x00f4f0f3, 0x00f4f0f2, 0x00f1f0f3, 0x00f0eff3, 0x00edf1f2, 0x00f0f1f7, 0x00f0eff2, 0x00f2f0f8, 0x00eeedf1, 0x00ecebf1, 0x00ececf0,
- 0x00ece9f0, 0x00eae7eb, 0x00eae9ed, 0x00eeedf4, 0x00ededf2, 0x00eaf2ec, 0x00edf2eb, 0x00f1eaeb, 0x00f7e2ee, 0x00f3e2ee, 0x00f3e6f2, 0x00eeebf4, 0x00ecf3f7, 0x00ecedf1, 0x00f4f1f6, 0x00f2e9f0,
- 0x00dfd0cf, 0x00b29ca1, 0x00816971, 0x0095838d, 0x00e7dfea, 0x00e7ecf3, 0x00e5eff4, 0x00e9f5fa, 0x00f3f1fa, 0x00f2e8ef, 0x00f3e9ef, 0x00e9ecea, 0x00eaeaf0, 0x00eaeaf0, 0x00ebeaf4, 0x00ededf7,
- 0x00e7e5f5, 0x00e5e0f0, 0x00ede2f5, 0x00e9dfef, 0x00ebdbee, 0x00e2e0e9, 0x00dce0e4, 0x00e3e6e8, 0x00e9eaf1, 0x00e9e9ee, 0x00e9ebec, 0x00e8ebea, 0x00ebeceb, 0x00e4e7e4, 0x00e4e9e5, 0x00eaeeec,
- 0x00ddecf1, 0x00e3f1f5, 0x00eef6fc, 0x00e8eef5, 0x00e6e7f1, 0x00e3e6f0, 0x00e5e7f1, 0x00e3e8f0, 0x00e6eaf3, 0x00e8eff7, 0x00e7f2f4, 0x00e0f8f0, 0x00e5f4f1, 0x00e7eff2, 0x00f5f2fa, 0x00f5f0f8,
- 0x00eae4ec, 0x00e0dae1, 0x00dfd7db, 0x00dedbdc, 0x00f2eeeb, 0x00f2f2f2, 0x00faf7f9, 0x00fefdfd, 0x00fefeff, 0x00fcfcfb, 0x00fdfdfc, 0x00f8f8f8, 0x0082818a, 0x000f0d19, 0x00110e1d, 0x00161325,
- 0x000f152a, 0x00111631, 0x001b1c3e, 0x001b1d42, 0x001e1f4e, 0x001e1e50, 0x00272858, 0x00282857, 0x00282551, 0x00292b50, 0x003a3751, 0x00787175, 0x00b5a6a9, 0x00cdb9b4, 0x00dabdb3, 0x00bb947f,
- 0x0083552f, 0x00885428, 0x009f6836, 0x00b1763d, 0x00b77d42, 0x00b77732, 0x00be7d30, 0x00c98239, 0x00ca8036, 0x00c4792d, 0x00bf7527, 0x00bb7525, 0x00be7729, 0x00be7a2f, 0x00be7d34, 0x00ba7831,
- 0x00b8722d, 0x00ad682b, 0x00a46138, 0x007d4b22, 0x00411503, 0x00200700, 0x00110000, 0x00130506, 0x00160c27, 0x0018113c, 0x00293471, 0x003865b2, 0x005570d9, 0x005b78ed, 0x005f86f8, 0x004f8cf2,
- 0x003a96f1, 0x004b99fc, 0x00598def, 0x008d9fe6, 0x00f1d9dc, 0x00fbf4dd, 0x00fdfadc, 0x00fef8dc, 0x00faefe2, 0x00f2eae1, 0x00e2dcda, 0x00d9d4d9, 0x00d7d3df, 0x00b7b2c2, 0x00867e90, 0x006f6379,
- 0x00666683, 0x00646381, 0x00626081, 0x0061607f, 0x00616279, 0x005d5e6e, 0x005d5b66, 0x0059565c, 0x005b5252, 0x00564a48, 0x00513f3c, 0x004f3431, 0x00513736, 0x00533c3c, 0x00574543, 0x00594b4b,
- 0x00594f56, 0x0058505d, 0x00595367, 0x0059566b, 0x00585875, 0x0056587b, 0x0050557e, 0x0049507a, 0x00404a7a, 0x003b4679, 0x00394579, 0x0039437a, 0x0040467c, 0x00464a80, 0x004a4d81, 0x00494d80,
- 0x004b4e79, 0x004c4f7a, 0x004c507a, 0x004c4f78, 0x00484c72, 0x0044486b, 0x003c4161, 0x00353a58, 0x002f3252, 0x00272a48, 0x00232545, 0x00191b3b, 0x001f213c, 0x00181a2e, 0x00555866, 0x00c4c7d0,
- 0x00fafbfc, 0x00fbfcfc, 0x00fdfdff, 0x00fdfbfe, 0x00e2e0e4, 0x00737577, 0x000a1110, 0x00121819, 0x001e2125, 0x00212528, 0x00171c1f, 0x00171b1e, 0x00191e20, 0x001e2224, 0x0024292a, 0x0023292a,
- 0x001a2e27, 0x00202c28, 0x00272b2a, 0x0028282d, 0x00282132, 0x001f1a2e, 0x001b1622, 0x00393131, 0x00867352, 0x00af925f, 0x00c3a365, 0x00cda86b, 0x00cfab71, 0x00cda471, 0x00caa272, 0x00c29b6e,
- 0x00866037, 0x00623f16, 0x007e5b31, 0x009e7c4d, 0x00b7976a, 0x00c89b79, 0x00cc9c78, 0x00bf9664, 0x008d6e37, 0x005f452f, 0x00432c3e, 0x003b2769, 0x00392893, 0x00332880, 0x002c256e, 0x00333662,
- 0x008883ad, 0x00d4d1ec, 0x00d0cfe3, 0x007e8086, 0x0017161f, 0x0002020c, 0x00030413, 0x00030211, 0x00070a18, 0x0005090d, 0x0009090a, 0x000c0200, 0x00221314, 0x0042362e, 0x0061514b, 0x00473930,
- 0x00261c11, 0x001a0e07, 0x000c0200, 0x00100301, 0x000f0502, 0x00160d09, 0x001b160f, 0x00231d14, 0x002d2b17, 0x00323119, 0x00313017, 0x0028280f, 0x001a1a08, 0x00373328, 0x00b0aba6, 0x00f4f2ef,
- 0x00fcfcfa, 0x00fbfbfa, 0x00fffdff, 0x00fef9fa, 0x00beaba5, 0x00715241, 0x00704831, 0x007a4a2f, 0x00754734, 0x006c4432, 0x005d3b2a, 0x0051391e, 0x00462e17, 0x00341e06, 0x00523c26, 0x00907e64,
- 0x008d826b, 0x00605956, 0x00352f46, 0x00252156, 0x001b186f, 0x000b187c, 0x00132599, 0x00182aa8, 0x00122ab8, 0x000e2bb8, 0x000c31b6, 0x000833ad, 0x000f3cab, 0x00123dab, 0x00204ab9, 0x00436bde,
- 0x005486e2, 0x003c70d0, 0x00366cd4, 0x00336dda, 0x002664da, 0x001f60d9, 0x001b5ddb, 0x001a5bdc, 0x001c57dd, 0x001954d9, 0x001e52e2, 0x002149eb, 0x002655ce, 0x001f4eb6, 0x00244eaf, 0x001e3fa2,
- 0x00163075, 0x000a1c49, 0x0002113a, 0x00173b69, 0x004672cf, 0x00316ed3, 0x003172db, 0x00387ce3, 0x004587e6, 0x004b8ce5, 0x005493e0, 0x005d98db, 0x006c9edc, 0x0096c2f2, 0x0099c0ec, 0x0082a3d9,
- 0x0076898d, 0x00607172, 0x00596466, 0x005f6563, 0x0062635f, 0x00615f55, 0x00615c53, 0x00635b52, 0x00615954, 0x005a524c, 0x00524d4a, 0x00444542, 0x00393a3b, 0x00353735, 0x00333434, 0x00333334,
- 0x00333234, 0x00343334, 0x00343334, 0x002f2f2f, 0x002d2e2d, 0x00292a2c, 0x00222528, 0x001a1e20, 0x00191a20, 0x00181a1e, 0x0015171b, 0x0014161a, 0x000d1014, 0x000a0c10, 0x00707276, 0x00e6e8ec,
- 0x00fafaf9, 0x00fbfbf9, 0x00fdfcfa, 0x00fbfdfa, 0x00cacfc8, 0x00535b52, 0x000e180f, 0x0007110a, 0x00666b68, 0x00d0d6d3, 0x00fafcfc, 0x00fbf9fb, 0x00f8faf9, 0x00f9faf9, 0x00f9fafa, 0x00fafbfb,
- 0x00fafafb, 0x00f9fafb, 0x00fcfbfd, 0x00fcf9fc, 0x00fefbfe, 0x00fcfdf7, 0x00f8e8d3, 0x00f5a987, 0x00ea7649, 0x00ef9b6f, 0x00fddaba, 0x00faefe3, 0x00f5f3f6, 0x00f0f8f6, 0x00ebfcf6, 0x00eafef2,
- 0x00f0ffee, 0x00f4fff2, 0x00f6feef, 0x00f8fded, 0x00f6fde9, 0x00f1f3e0, 0x00f4efe1, 0x00f9ece8, 0x00f8e4ea, 0x00f7dde5, 0x00e4d2d2, 0x00b0b69e, 0x008a8d7b, 0x007f846e, 0x007e846d, 0x00798268,
- 0x00727d66, 0x0066725c, 0x005a6657, 0x00525b50, 0x00434c45, 0x003b3d39, 0x00323232, 0x002a2b29, 0x0023282c, 0x0020262a, 0x001f2427, 0x001d2022, 0x001e1d1e, 0x001c1818, 0x001c1514, 0x001c1312,
- 0x00140e04, 0x00140e06, 0x0018110d, 0x001a1413, 0x00191516, 0x001b1818, 0x00151413, 0x00131412, 0x00171615, 0x00171712, 0x001a170f, 0x001b1704, 0x00271d0c, 0x00362712, 0x00432e1c, 0x004a3221,
- 0x004c3121, 0x00402b1a, 0x00301e11, 0x002e2118, 0x00433c35, 0x00535443, 0x00656857, 0x006d6b61, 0x00665b59, 0x00564c43, 0x00473d2f, 0x003f3620, 0x003e361c, 0x00413925, 0x00463c32, 0x00423835,
- 0x002d2824, 0x001d0e0a, 0x00280c02, 0x004c260e, 0x00875d34, 0x00916d3d, 0x00a08049, 0x00aa8a54, 0x00b0884e, 0x00b78f4d, 0x00c29758, 0x00bc955d, 0x00b68b53, 0x00a87e45, 0x00a67a43, 0x00ad824d,
- 0x00b28f57, 0x00b79963, 0x00c1a373, 0x00bba576, 0x00a99267, 0x005a4a2c, 0x00352611, 0x002b1f09, 0x001f1509, 0x00140d05, 0x00130f0b, 0x001a1712, 0x002c2821, 0x00332d23, 0x003a3225, 0x003f3626,
- 0x0084837d, 0x00e8e7e3, 0x00fefefd, 0x00fcfcfc, 0x00fdfffe, 0x00fafcfc, 0x00cfd2d5, 0x007d8287, 0x004b4f56, 0x00474c52, 0x003b3e47, 0x002c2d3b, 0x001f212f, 0x001f232f, 0x00171c28, 0x000b111b,
- 0x00080d13, 0x00524f58, 0x00e6dfe8, 0x00e6dde5, 0x00998594, 0x005f6cab, 0x003b58b2, 0x003756af, 0x003455b0, 0x002748a0, 0x001f4194, 0x001d3d88, 0x001d3678, 0x00192c68, 0x0016255d, 0x003c487c,
- 0x008e8fb1, 0x00a6a9c7, 0x00a3a8c2, 0x008c91a8, 0x0078839e, 0x007d88ac, 0x008f9dc4, 0x00a6b5e0, 0x00bfcded, 0x00c7dbee, 0x00d1e4f8, 0x00d1e2f3, 0x00dee8fc, 0x00dde7f9, 0x00d8dff0, 0x00d2d8e5,
- 0x00dee2eb, 0x00e7ebef, 0x00f2f3f8, 0x00f2f0f4, 0x00eceded, 0x00c9cdd4, 0x009a9da5, 0x006a676b, 0x00493c3e, 0x00413433, 0x003e3037, 0x003c3841, 0x00323656, 0x001b2951, 0x000f2155, 0x00112863,
- 0x00083293, 0x00163c97, 0x003555a9, 0x004969a8, 0x0040557e, 0x0024384d, 0x00202d37, 0x00252d31, 0x0032383a, 0x003b3f41, 0x00424347, 0x0044434e, 0x0047464f, 0x0043434d, 0x003c3e45, 0x00404349,
- 0x004d4e54, 0x005a5d60, 0x0065666b, 0x0065666a, 0x0065666b, 0x0061666e, 0x00565b67, 0x00464c56, 0x003a3d49, 0x00393d47, 0x003d414b, 0x00434851, 0x00565b65, 0x005e646f, 0x005f6570, 0x005e646f,
- 0x005a5f69, 0x00535964, 0x004b4f5c, 0x00454756, 0x00454755, 0x00474955, 0x004b4d55, 0x004d5156, 0x00595c60, 0x005e6362, 0x005f6766, 0x0056615f, 0x00534f4f, 0x00493a38, 0x00412b25, 0x00372216,
- 0x001d1406, 0x000d0d03, 0x000d0b06, 0x000c0c08, 0x00110610, 0x0003060b, 0x00010203, 0x00060503, 0x00231c1b, 0x003e3a3c, 0x00555960, 0x00495764, 0x003b5166, 0x00304456, 0x002a3a49, 0x00303a45,
- 0x00383a41, 0x00424349, 0x004e5055, 0x00494a51, 0x007b7a7c, 0x00c7c7c9, 0x00fcfefd, 0x00fafdfa, 0x00fafefc, 0x00f9fcfb, 0x00eef0f2, 0x00b2b4b6, 0x007a7d7e, 0x00a8abac, 0x00e4e6e7, 0x00f8fafa,
- 0x00fbfcfd, 0x00fbfcfc, 0x00fcfefe, 0x00fbfdfd, 0x00fafcfb, 0x00f6f9f5, 0x00edf1ee, 0x00d6dbd9, 0x00acaeb6, 0x00888994, 0x00636373, 0x003f3f51, 0x001e1f32, 0x000d0e20, 0x000a0a1c, 0x000e0e21,
- 0x00121520, 0x00121522, 0x00191d2c, 0x001a1f31, 0x001c213a, 0x00191f3d, 0x00182040, 0x001a2247, 0x001e2353, 0x00202656, 0x00232755, 0x00232850, 0x0027294d, 0x00272b4a, 0x002c2f47, 0x00303544,
- 0x0042414a, 0x00494b4e, 0x00565958, 0x005f635e, 0x00686b66, 0x006f716c, 0x00747572, 0x00767873, 0x007b7775, 0x0078736f, 0x00736d66, 0x006c645b, 0x0063594e, 0x005c5043, 0x00534738, 0x004d4130,
- 0x004b3f2a, 0x00483825, 0x004d3928, 0x004d3525, 0x004f3523, 0x00543c28, 0x0058442d, 0x0067593f, 0x006d684d, 0x00747354, 0x00898970, 0x008e9882, 0x00b2a58f, 0x00a68f6d, 0x00937246, 0x00977241,
- 0x009c7c41, 0x009c8045, 0x00a27e4b, 0x009e7845, 0x009c6d43, 0x00a07044, 0x008f633f, 0x00654a35, 0x00352e39, 0x002f3349, 0x00404a65, 0x0049556f, 0x00565e71, 0x005d6475, 0x00646a7e, 0x00677082,
- 0x006f7a97, 0x007d86a2, 0x008790ae, 0x008391b9, 0x00779ed6, 0x006ca0df, 0x0076adec, 0x006e9fd6, 0x00737c92, 0x007b6f6e, 0x007b6258, 0x006e584d, 0x00684737, 0x0065402d, 0x00663d2c, 0x00663e2e,
- 0x00603d32, 0x00603b2d, 0x00663a28, 0x00703c22, 0x00813d1b, 0x008e401a, 0x0098411c, 0x009c4219, 0x00a23d19, 0x009f3c17, 0x00973b17, 0x00863613, 0x00642d14, 0x004e2615, 0x003d2417, 0x0031251c,
- 0x00b2b1a6, 0x001e1d10, 0x00201f12, 0x001f1e11, 0x00212115, 0x00202114, 0x00212214, 0x00222216, 0x00212114, 0x00232115, 0x00212213, 0x001d2011, 0x001f2213, 0x00212419, 0x00212518, 0x001f2216,
- 0x00252418, 0x00282617, 0x002c291b, 0x002b2518, 0x00332c1c, 0x00624b33, 0x009a795b, 0x00a27c5e, 0x00b18763, 0x00ab8056, 0x00926b43, 0x007e5b34, 0x00574027, 0x002b200c, 0x000a0501, 0x0011130d,
- 0x00381f24, 0x006e575c, 0x00c6b5b7, 0x00f4e7e7, 0x00faf1f3, 0x00f4eff0, 0x00f3eff0, 0x00f2eff0, 0x00f3eff2, 0x00f3eff0, 0x00f1eef4, 0x00f0eff4, 0x00efeef5, 0x00ededf0, 0x00eae9ef, 0x00ecedf0,
- 0x00ecebef, 0x00e9e8eb, 0x00e9eaed, 0x00edecf3, 0x00ececf3, 0x00e7efea, 0x00ecf1e8, 0x00f4e9eb, 0x00f6e3ee, 0x00f4e6f1, 0x00f2eaf5, 0x00eef1f7, 0x00eff6f8, 0x00eeeaec, 0x00fae6ea, 0x00e5c2ca,
- 0x00a26168, 0x006e2d37, 0x004f1321, 0x006f3c4c, 0x00ceb4c1, 0x00f0e7f0, 0x00e6eaef, 0x00e1eef1, 0x00e7f1f1, 0x00ebeceb, 0x00f0f1ee, 0x00e7f4ed, 0x00ebf5f0, 0x00ebf4f2, 0x00ebf0f3, 0x00e8eef2,
- 0x00e6e8f3, 0x00e8e6f4, 0x00e7e4f5, 0x00e3e1f0, 0x00e5e1f6, 0x00e0e2ee, 0x00e2e5f1, 0x00e8eaf5, 0x00ebe9f1, 0x00eceaee, 0x00edebec, 0x00edebe9, 0x00f0efeb, 0x00ecece7, 0x00ebede7, 0x00eff1ec,
- 0x00e9f2f9, 0x00e9f1f8, 0x00ececf6, 0x00ebebf5, 0x00ece6f3, 0x00e1e0ec, 0x00e7e4f1, 0x00e6e7f2, 0x00e3eaf2, 0x00e6f2f9, 0x00e5f5f6, 0x00def8f0, 0x00ecf6f1, 0x00f5f5f3, 0x00eadcdb, 0x00cab2b2,
- 0x00997e7f, 0x00897274, 0x00988588, 0x00b2a8aa, 0x00e0ddde, 0x00ededef, 0x00f8f9fb, 0x00fdfeff, 0x00fdfdfd, 0x00fcfcfa, 0x00fffefd, 0x00f7f6f7, 0x0084828b, 0x00110f1c, 0x00111020, 0x00171529,
- 0x00111a2e, 0x00161d39, 0x001c2043, 0x0020234b, 0x00222354, 0x00242456, 0x00222251, 0x00292855, 0x00232243, 0x00393956, 0x008d899b, 0x00d2cdc5, 0x00f5eee6, 0x00fceee2, 0x00fbe8d8, 0x00d4b59c,
- 0x007b502f, 0x007b4a1f, 0x009c6539, 0x00a56a37, 0x00b77b44, 0x00be7e3d, 0x00c4813c, 0x00ce8642, 0x00d08840, 0x00c88037, 0x00be772c, 0x00b87327, 0x00b8742b, 0x00b87630, 0x00b77834, 0x00b27431,
- 0x00ba702c, 0x00b06d33, 0x00ab7141, 0x0095613a, 0x0069401a, 0x004e2907, 0x00311200, 0x0032180e, 0x00332a46, 0x002b285b, 0x0027357a, 0x003663b0, 0x00556fd4, 0x005f75ec, 0x006680f8, 0x005785f1,
- 0x003b90d9, 0x004593ea, 0x005192f0, 0x00789ef9, 0x00d4dcf4, 0x00f4f8ef, 0x00faffec, 0x00fafdeb, 0x00fafcf1, 0x00fbfcf3, 0x00f7f7f0, 0x00f9f8f3, 0x00f9f6f6, 0x00f4eff1, 0x00ded8da, 0x00ccc1c5,
- 0x00b3b1c7, 0x00aaaabe, 0x0084869a, 0x0065677a, 0x00616273, 0x00686673, 0x0064606a, 0x005e585e, 0x00594d4d, 0x005a4b48, 0x0058433f, 0x00583a35, 0x00573a36, 0x00593f3d, 0x005b4643, 0x005c4b4b,
- 0x005e5358, 0x005d5460, 0x005d5769, 0x005c5970, 0x005b5a76, 0x0058597e, 0x0052557e, 0x004b4f7a, 0x00404979, 0x003b4577, 0x00394377, 0x00394279, 0x003e457b, 0x0043487d, 0x00474c7f, 0x00484d80,
- 0x004c507b, 0x004d517c, 0x004e527b, 0x004e5278, 0x004b4f73, 0x00484c6c, 0x003f4461, 0x00373c57, 0x00303553, 0x002b2f4e, 0x00232645, 0x001d1f42, 0x00242642, 0x00212339, 0x00696c77, 0x00d6dadf,
- 0x00fdfefd, 0x00fcfbfd, 0x00fffeff, 0x00fefbff, 0x00d4d0d7, 0x00616366, 0x00080f10, 0x00111919, 0x00191e22, 0x0021262a, 0x00161c1f, 0x00171e20, 0x001b1f22, 0x00212628, 0x00242a2c, 0x0023292b,
- 0x001b2d2b, 0x00222e2b, 0x002b2f2b, 0x002b2d2a, 0x002b2731, 0x00211f31, 0x00201c2a, 0x003d373e, 0x007e6b52, 0x00a6895c, 0x00be9f64, 0x00c8aa6b, 0x00cbac71, 0x00cba772, 0x00c8a272, 0x00c29c6f,
- 0x0099774b, 0x00856337, 0x00a18156, 0x00af9162, 0x00b39b69, 0x00bf9461, 0x00c2915e, 0x00b88a4f, 0x009f743e, 0x007d5838, 0x005e3c37, 0x0041223a, 0x00251046, 0x001f1046, 0x00342959, 0x007c7c9a,
- 0x00d0c9e8, 0x00dfdaf1, 0x00dedbef, 0x00c8c9d7, 0x005f6177, 0x00161934, 0x000a0e32, 0x00000328, 0x00010623, 0x00000318, 0x00090715, 0x00100005, 0x003a262c, 0x008c7877, 0x00bdaba8, 0x006d5a54,
- 0x002c1d14, 0x00291711, 0x001f0c07, 0x001a0502, 0x001d0909, 0x00241412, 0x002a1f18, 0x0032281d, 0x00373222, 0x0033311c, 0x00302f17, 0x0027290e, 0x001a1b07, 0x00434134, 0x00c6c2bc, 0x00f9f6f3,
- 0x00fcfefb, 0x00fbfcfc, 0x00fdfcfc, 0x00f7f1f4, 0x00b59f95, 0x00765541, 0x007a5034, 0x00834f30, 0x007b4d34, 0x00734933, 0x00603c27, 0x00543a16, 0x0052391b, 0x004f371a, 0x00553d22, 0x00715c40,
- 0x007d725e, 0x00534c4b, 0x0029233c, 0x00201c50, 0x00242076, 0x0019238b, 0x0016269f, 0x001828ae, 0x00102fbe, 0x000b30be, 0x000a36bd, 0x000b3cb9, 0x001b4ec0, 0x002656c6, 0x00305fcf, 0x004a78ea,
- 0x004a7fea, 0x00356bda, 0x002760d7, 0x002460db, 0x00215ee2, 0x001f5de4, 0x001d58e7, 0x002057e9, 0x002256e7, 0x002254e5, 0x00254fe5, 0x002e49ec, 0x002c4fba, 0x00244699, 0x00264587, 0x0019306a,
- 0x00010c2b, 0x00000718, 0x0001091d, 0x000e3052, 0x003762c1, 0x002e6ccc, 0x002e6dcf, 0x003275d6, 0x00377bd8, 0x00377ad5, 0x003b7dd7, 0x004483da, 0x004981d0, 0x0073a4ee, 0x008bb7ff, 0x0089b0f9,
- 0x009cb6ca, 0x0095acbb, 0x0072868f, 0x005e6b70, 0x005f6561, 0x00656560, 0x0064625c, 0x00625d58, 0x005e5854, 0x005d5551, 0x00575150, 0x004c4b49, 0x00434445, 0x00414140, 0x003e3f3f, 0x003a3a3b,
- 0x003d3d3e, 0x003c3c3c, 0x00353536, 0x00323231, 0x002d2d2c, 0x002c2d2f, 0x0024262a, 0x001d2023, 0x001b1d21, 0x00191a1f, 0x00131519, 0x00131519, 0x00080a0f, 0x001c1d23, 0x00909397, 0x00eceef2,
- 0x00fbfdfc, 0x00fcfdfc, 0x00fdfdfb, 0x00fbfdfa, 0x00acb1a9, 0x00384036, 0x000c150a, 0x002e362f, 0x00b1b5b3, 0x00f2f6f6, 0x00f7fbfc, 0x00fbfbfd, 0x00fafafb, 0x00fcfafb, 0x00fafafb, 0x00fafafc,
- 0x00f9faf9, 0x00f9fcfc, 0x00fbfcfc, 0x00fbfafa, 0x00fffcfe, 0x00fdfaf6, 0x00f2d2c2, 0x00f09470, 0x00ee8961, 0x00f8c4a7, 0x00fef5e5, 0x00fbfaf8, 0x00f6faff, 0x00f2fcfe, 0x00eefdfd, 0x00e9fff7,
- 0x00f5fbfd, 0x00f6fbfb, 0x00f6fff5, 0x00f6fef0, 0x00f1fbdb, 0x00e9f0d1, 0x00ebf1d4, 0x00f5f4e3, 0x00fbf4f4, 0x00faf4f8, 0x00f9f2f3, 0x00e4e8d3, 0x00c0bfae, 0x00989d86, 0x007e816b, 0x0080856b,
- 0x007b836a, 0x0078826b, 0x00727d69, 0x006e796a, 0x00677365, 0x00616760, 0x00545853, 0x004c504b, 0x00474d4a, 0x00434b47, 0x003f4643, 0x003b403d, 0x00353633, 0x002f2d2a, 0x00272220, 0x00211a18,
- 0x00151409, 0x00120f06, 0x00110d08, 0x00120f0c, 0x00120f0e, 0x0012100f, 0x000d0d0d, 0x000a0b0a, 0x000f100a, 0x0013130c, 0x0018180c, 0x001e1c0b, 0x002d2512, 0x00392a16, 0x00432e19, 0x00492f1b,
- 0x004a301c, 0x003f2c18, 0x00302012, 0x002f241a, 0x004b453f, 0x00616153, 0x006e6f5f, 0x0076726a, 0x00685e5e, 0x00514943, 0x003f382d, 0x0037311f, 0x003c3721, 0x00403828, 0x00423830, 0x00413434,
- 0x002a261e, 0x0025170b, 0x00210500, 0x0047210d, 0x0082592e, 0x008e6938, 0x00a2804a, 0x00ac8d52, 0x00b59052, 0x00be9556, 0x00be9558, 0x00b99055, 0x00ab8249, 0x00ac834a, 0x00ba915b, 0x00b9915d,
- 0x00906c3b, 0x0097784a, 0x00bba075, 0x00b39d72, 0x0086754b, 0x00514326, 0x00372c17, 0x002c230e, 0x00281e12, 0x00201810, 0x00241f18, 0x0028231c, 0x00302a21, 0x00322a1e, 0x00322819, 0x00271d0d,
- 0x0066665f, 0x00dadad6, 0x00fdfcfc, 0x00fdfefe, 0x00fbfdfd, 0x00fcfefe, 0x00dee0e2, 0x00919499, 0x0052555c, 0x004d5359, 0x00434650, 0x00363745, 0x002a2e3c, 0x00292f3c, 0x001f2633, 0x00111a27,
- 0x001d202b, 0x007d7a87, 0x00faeef9, 0x00d8cad5, 0x00816a73, 0x004d538d, 0x00263a8b, 0x00182f80, 0x0017307d, 0x00162d75, 0x00162d70, 0x00142965, 0x00142257, 0x002f3768, 0x007479a5, 0x00b1b4d8,
- 0x00eceafd, 0x00ececfd, 0x00e0e2f0, 0x00d7dbe7, 0x00cdd5e7, 0x00bec7e2, 0x00bcc5e5, 0x00c8d1f5, 0x00d3e0f9, 0x00cedded, 0x00becfdd, 0x00b8c9d8, 0x00c0cad9, 0x00ccd5e3, 0x00d2dae6, 0x00d6dbe3,
- 0x00dee4e9, 0x00ebf2f7, 0x00e8eef3, 0x00edf1f7, 0x00e5e8ee, 0x00d9e0ec, 0x00cdd0e0, 0x00bbb5bd, 0x008d7878, 0x005b4444, 0x003a272e, 0x00352937, 0x0027284b, 0x00151c44, 0x000b1748, 0x00111e53,
- 0x00042879, 0x00133282, 0x0028448d, 0x003b5392, 0x0031476b, 0x001c2e42, 0x0017242b, 0x001e2725, 0x00292e2e, 0x00313338, 0x0037363d, 0x0039383e, 0x003a3940, 0x0036363d, 0x00323238, 0x00383940,
- 0x004a4b50, 0x005b5d60, 0x0064656a, 0x0065666c, 0x00626268, 0x005a5e68, 0x004a4f5c, 0x003a3f49, 0x0030343f, 0x00343741, 0x003c3f47, 0x0043474e, 0x00565a61, 0x005f636c, 0x00616771, 0x00606671,
- 0x005f6269, 0x00585c64, 0x00545762, 0x00525663, 0x00515563, 0x004f5360, 0x0052535e, 0x0050535b, 0x0051555b, 0x0054585b, 0x00575f60, 0x00545f5f, 0x00585252, 0x0052403c, 0x004f362c, 0x00492e1e,
- 0x00261406, 0x000e0700, 0x000a0401, 0x00070502, 0x000a020b, 0x00040306, 0x00090104, 0x000e0200, 0x0025150d, 0x00463936, 0x006a6566, 0x00636a72, 0x00485a6a, 0x00354655, 0x00273541, 0x002a333d,
- 0x0035363e, 0x003c3d44, 0x004a4b52, 0x004c4d53, 0x00727375, 0x00b9baba, 0x00fcfffd, 0x00f9fcf8, 0x00f9fefb, 0x00fafdfd, 0x00f9fbfd, 0x00c3c5c7, 0x006e7073, 0x00909394, 0x00dcdede, 0x00f6f7f8,
- 0x00fbfdff, 0x00fbfdfd, 0x00f6f9f8, 0x00e9ebec, 0x00cbcdcd, 0x00aaadab, 0x007e8382, 0x0052575a, 0x00292b38, 0x00141525, 0x0007081e, 0x0004051f, 0x000a0a25, 0x0010112a, 0x00181a2e, 0x001c1f2f,
- 0x001e1f2b, 0x00212330, 0x00262838, 0x0025283c, 0x00252942, 0x00252b49, 0x00242c4e, 0x00212a4f, 0x001f2655, 0x001f2554, 0x001f2553, 0x00222550, 0x00252a4f, 0x00282b4b, 0x002b3148, 0x00313646,
- 0x00404248, 0x00474b4d, 0x00555a57, 0x005f645e, 0x00696d67, 0x0070736f, 0x00747675, 0x00767875, 0x007a7772, 0x0076716c, 0x00726b63, 0x006d6459, 0x00655a4d, 0x005f5243, 0x00584a38, 0x00544533,
- 0x004c3d24, 0x0054412c, 0x00553f2d, 0x005c4433, 0x00503828, 0x0055402f, 0x005d4a3a, 0x00665849, 0x006d715b, 0x007a7e69, 0x0089917f, 0x009ca294, 0x00a99c84, 0x00a18761, 0x00997543, 0x00a07741,
- 0x00a8844c, 0x00a18049, 0x009f7a4a, 0x009c7948, 0x00a1754a, 0x009d6e3f, 0x008a5e37, 0x0068492c, 0x00382a23, 0x00292021, 0x002c2529, 0x00352b2c, 0x003d2f2a, 0x003a2d26, 0x003d302d, 0x00443c39,
- 0x004b444c, 0x005a4f59, 0x00736a78, 0x00807e93, 0x007a92ba, 0x00749ecf, 0x007eabe3, 0x00749ed5, 0x00718398, 0x0079797c, 0x00796865, 0x006f5b52, 0x0069493c, 0x0063402e, 0x00663d2d, 0x00663f2d,
- 0x00624133, 0x00654030, 0x006c402e, 0x00754227, 0x0084411e, 0x0090411c, 0x009a421d, 0x009e4319, 0x00a23f19, 0x009e3c18, 0x00943a16, 0x00823512, 0x00602c14, 0x004c2616, 0x003c2418, 0x0032271f,
- 0x00b1b1a7, 0x0017170b, 0x001a1a0c, 0x0019190b, 0x001b1a0f, 0x001a190d, 0x001b190c, 0x001d1b0f, 0x001f1e13, 0x00201f13, 0x001e2012, 0x001a1f10, 0x001e2114, 0x00222417, 0x00232517, 0x00222316,
- 0x00242318, 0x00252217, 0x00232116, 0x00282519, 0x00282317, 0x00493928, 0x008a7259, 0x009a7d5e, 0x00a8815d, 0x00a98055, 0x00a77f4f, 0x00977245, 0x00866d49, 0x00594c33, 0x00282011, 0x00343426,
- 0x00816d6f, 0x00cebcbd, 0x00f9edec, 0x00f6edeb, 0x00f6efef, 0x00f4eff0, 0x00f7f0f2, 0x00f5eff1, 0x00f5eff3, 0x00f7edf1, 0x00f7eff4, 0x00f0eef4, 0x00f0eef4, 0x00ebe9ef, 0x00ebe9ef, 0x00eeeaf1,
- 0x00ebe7ed, 0x00e8e5eb, 0x00e9e9ee, 0x00edecf2, 0x00edecf3, 0x00e7eeeb, 0x00ecf1eb, 0x00f3ecee, 0x00f8e5f2, 0x00f2e5f1, 0x00efebf6, 0x00e8f1f5, 0x00edf0f1, 0x00faecec, 0x00e7c3c4, 0x00ae7178,
- 0x00911827, 0x008d1b29, 0x008e2537, 0x0082293d, 0x00b98693, 0x00f4dce4, 0x00eee9eb, 0x00e5efea, 0x00e7f3e7, 0x00e3eade, 0x00dbe0d3, 0x00cfd9ca, 0x00c9d1c2, 0x00cbcfc2, 0x00d6d6d1, 0x00dbdbda,
- 0x00e3e1e7, 0x00e5e6ef, 0x00e6e9f4, 0x00e2e9f5, 0x00dfe6f6, 0x00dee5f3, 0x00e3e8f6, 0x00e2e6f2, 0x00eae7ed, 0x00edeaeb, 0x00e9e5e3, 0x00e6e1de, 0x00e7e3df, 0x00e8e6e0, 0x00e8e8e1, 0x00eeefe9,
- 0x00f1eff7, 0x00f5f3fb, 0x00f7eef9, 0x00f9edf9, 0x00f9e7f5, 0x00f4e6f2, 0x00eee4ef, 0x00e7e2ec, 0x00ecedf6, 0x00edf4f9, 0x00e7f3f3, 0x00e8f8f1, 0x00ebe8e0, 0x00d8c4ba, 0x00a37d74, 0x007c4741,
- 0x00531c1a, 0x004c1f1e, 0x00775757, 0x00a99698, 0x00dbd9df, 0x00ede9f1, 0x00f8f7fb, 0x00fdfeff, 0x00fafcfe, 0x00fafcfb, 0x00fefefe, 0x00f7f6f8, 0x0087838f, 0x00130f1e, 0x00151225, 0x001a162c,
- 0x00161e38, 0x001b2141, 0x0023274e, 0x00272a54, 0x0029295d, 0x002b2a5e, 0x002d2c59, 0x002c2950, 0x00534e6d, 0x009b99ad, 0x00e1dde4, 0x00fbfaf1, 0x00fff9ee, 0x00fff8ec, 0x00fff3e2, 0x00dbc4ab,
- 0x008a6245, 0x00794a25, 0x009c663a, 0x00aa6f3c, 0x00af7038, 0x00b77638, 0x00be7c39, 0x00c6823e, 0x00c9843f, 0x00c27e37, 0x00b7732c, 0x00b36f29, 0x00b06f2c, 0x00af7130, 0x00ac7133, 0x00a87033,
- 0x00b76d2f, 0x00b7723b, 0x00b87948, 0x00aa7446, 0x009d6533, 0x00895725, 0x006f421c, 0x006a4431, 0x0057496b, 0x00373472, 0x00253683, 0x003960af, 0x00536dce, 0x005f71ea, 0x00667df9, 0x005984ef,
- 0x00458fcb, 0x00418ad9, 0x004a8dee, 0x006a98fb, 0x00bcd9fe, 0x00edfbfa, 0x00f5fdf8, 0x00f8fdf9, 0x00fcfffa, 0x00fafef8, 0x00fbfdf6, 0x00fbfcf4, 0x00fefcf8, 0x00fffcf8, 0x00fef9f4, 0x00f8f1ec,
- 0x00f5f3f8, 0x00efeff5, 0x00cbcbd8, 0x009a9bab, 0x0071717f, 0x00696672, 0x00645d65, 0x00655d60, 0x00635355, 0x005b4947, 0x0059433e, 0x005e4038, 0x005c4039, 0x005c433f, 0x005f4946, 0x00604d4d,
- 0x0060545a, 0x005f5763, 0x005f5a6c, 0x005d5c73, 0x005c5d7a, 0x00595b80, 0x00535680, 0x004b507c, 0x00404b79, 0x003b4677, 0x00384375, 0x00374276, 0x003c4477, 0x0041477a, 0x00474a7b, 0x00484a7b,
- 0x004f507f, 0x0050527f, 0x0051547d, 0x00515579, 0x004e5273, 0x004b516d, 0x00434963, 0x00394059, 0x00323754, 0x002c314f, 0x0026294a, 0x0024254b, 0x002d2d4c, 0x002c2c43, 0x0080808c, 0x00e6e7eb,
- 0x00fffdff, 0x00fdfbfd, 0x00fcfcfc, 0x00fffdff, 0x00c3bec7, 0x004b4d52, 0x00091213, 0x00121a1c, 0x001c2124, 0x001f2527, 0x001a2224, 0x001b2224, 0x001e2326, 0x0021272a, 0x00252c2e, 0x0022292c,
- 0x001e2930, 0x00252c2c, 0x002f322b, 0x002e2f26, 0x002b2b30, 0x00242537, 0x002c2d3e, 0x00494656, 0x007a6656, 0x009a7d59, 0x00b59864, 0x00c1a568, 0x00c6a76f, 0x00c7a671, 0x00c5a273, 0x00bf9c6f,
- 0x00af885f, 0x00a48256, 0x00bc9b6e, 0x00b89e6e, 0x00b59b6a, 0x00b48f4b, 0x00af803c, 0x00a7743c, 0x00976441, 0x00845539, 0x00734632, 0x005b3524, 0x003f2721, 0x004c3b48, 0x0090869e, 0x00cfcaea,
- 0x00e8e1f6, 0x00dfdbee, 0x00e0def0, 0x00dddff4, 0x009399bb, 0x003f4677, 0x00272f68, 0x00151e5a, 0x001c2456, 0x001a244d, 0x002d2c4b, 0x0052414f, 0x0085707d, 0x00c8b4ba, 0x00ebdadd, 0x008e7775,
- 0x00341c18, 0x0029100c, 0x00290e0a, 0x00210602, 0x002b0f10, 0x00311819, 0x0035221d, 0x003c2d23, 0x003b3022, 0x00322e19, 0x0028270f, 0x0025250d, 0x001a1a09, 0x004c4b40, 0x00dad6d3, 0x00fefafb,
- 0x00fcfcfe, 0x00fdfdfc, 0x00fefefd, 0x00f0ebea, 0x00ac9485, 0x00825c43, 0x00865939, 0x008c5735, 0x0082533a, 0x00774f38, 0x00644327, 0x00563e14, 0x00634726, 0x0073583c, 0x00674c34, 0x005a432b,
- 0x004d3c2c, 0x00302524, 0x00140b1f, 0x000e0935, 0x001c185f, 0x00222b8a, 0x002637a5, 0x002238b2, 0x001b3ac6, 0x00183dcb, 0x001c4ad2, 0x002055d5, 0x00295fd5, 0x002e63d7, 0x00285dd1, 0x002c61d7,
- 0x00265bdd, 0x00245ade, 0x002660ea, 0x002260ee, 0x00205def, 0x00235ff3, 0x002158ee, 0x002151e8, 0x002951e7, 0x002a4ee1, 0x003049dc, 0x002e3bc5, 0x00213687, 0x001a3161, 0x00354768, 0x003e4a5d,
- 0x000f1116, 0x00000302, 0x0000060c, 0x00071d37, 0x002248a2, 0x002154b2, 0x002861be, 0x00326ece, 0x003375d5, 0x002f72d0, 0x002c70d0, 0x002f71d1, 0x003570d0, 0x00578cea, 0x006595f3, 0x00608ce8,
- 0x0094b8e1, 0x00adcff0, 0x0095b3cf, 0x007b92a8, 0x00687681, 0x0061686d, 0x005f6164, 0x005f5e5e, 0x00625e62, 0x005e5a5f, 0x00575458, 0x004d4d4b, 0x00474647, 0x00424242, 0x00424244, 0x003f3e3e,
- 0x00424342, 0x003f413f, 0x00393a38, 0x00353534, 0x00313130, 0x002f2f33, 0x0027282f, 0x00202228, 0x001c1e22, 0x0016171c, 0x0014161a, 0x000f1215, 0x0006080d, 0x002e2f35, 0x00b1b4b8, 0x00f2f3f8,
- 0x00fbfefc, 0x00fafefa, 0x00f8fcf6, 0x00f8fdf7, 0x008e948c, 0x0021281f, 0x00111810, 0x00636965, 0x00e0e3e8, 0x00f8fbff, 0x00f7fafc, 0x00f9fafb, 0x00fbfbfc, 0x00fcf9fa, 0x00fbf9f9, 0x00fbf9fa,
- 0x00fbfbfb, 0x00f9fafc, 0x00fafafd, 0x00fbfafd, 0x00fdfdff, 0x00fff8f5, 0x00edbdab, 0x00e68056, 0x00ed9b7e, 0x00fbe2d3, 0x00f9fcf6, 0x00fbfff9, 0x00fef6fb, 0x00fdf9fd, 0x00fbfbfd, 0x00f7fdf0,
- 0x00fdfaff, 0x00fcfafc, 0x00fcfcfb, 0x00fcfef1, 0x00f4fcdc, 0x00edf7d1, 0x00ecf8d9, 0x00f3fde3, 0x00f7fff8, 0x00f6fffb, 0x00fcfffc, 0x00fefaf0, 0x00f2efdf, 0x00d2cfbe, 0x009a9a87, 0x0081856d,
- 0x00797e66, 0x00737a61, 0x00737d66, 0x0076806d, 0x00707b69, 0x0070766b, 0x006e726a, 0x00686d63, 0x00676e63, 0x00656e63, 0x00656e63, 0x0063695f, 0x005c5f57, 0x0055554e, 0x004b4842, 0x00423c36,
- 0x00303226, 0x0028281d, 0x001d1e15, 0x00191a14, 0x00151411, 0x00131211, 0x0010100e, 0x000e0d0b, 0x0012150a, 0x0018190f, 0x001d1e11, 0x0020210f, 0x002d2716, 0x003a2c17, 0x00432e17, 0x00472d16,
- 0x00432814, 0x0036220f, 0x002c1d0e, 0x00312a1d, 0x004f4e47, 0x00676859, 0x00747364, 0x0074716b, 0x005e5559, 0x00443d3c, 0x00302a25, 0x002c271a, 0x00352f1e, 0x00393125, 0x003b2f2c, 0x00392c2f,
- 0x002f2c1f, 0x00261a07, 0x00260b01, 0x00563118, 0x00946b41, 0x00906b39, 0x0095733b, 0x00a08042, 0x00b18f51, 0x00ba935a, 0x00b79056, 0x00b58f50, 0x00b68d54, 0x00ba925a, 0x00c69e69, 0x00c19c6b,
- 0x00af8c5e, 0x00b69b70, 0x00d5c298, 0x00bcaa82, 0x007f734c, 0x0055472d, 0x003b2f1c, 0x00302614, 0x002d2315, 0x002b2418, 0x002d281d, 0x002d271c, 0x002f261c, 0x0032261b, 0x002c1e13, 0x00180a01,
- 0x00494841, 0x00c6c6c1, 0x00fdfefa, 0x00fcfffc, 0x00fcfdfe, 0x00fdfdff, 0x00ebecf1, 0x00a1a5ac, 0x00575c64, 0x00515a61, 0x004d525d, 0x00484a59, 0x00404555, 0x003c4352, 0x00303645, 0x001d2636,
- 0x002d2d3b, 0x00928e9a, 0x00fff2fe, 0x00d0bbc8, 0x00674d56, 0x003b3a6e, 0x0016266b, 0x00081859, 0x00051957, 0x000a1c52, 0x000c1c4f, 0x00162453, 0x00515980, 0x009294b7, 0x00d1d0ee, 0x00eae9fd,
- 0x00edebfc, 0x00ebeaf7, 0x00eae9f2, 0x00ebedf2, 0x00e6e9f4, 0x00d7dcf0, 0x00ced4ec, 0x00d1d8f3, 0x00d4dcf0, 0x00c4cdd8, 0x00aab5bf, 0x009cabb7, 0x00a4aebb, 0x00b5bec9, 0x00bdc4cd, 0x00c5cbd1,
- 0x00dee0e8, 0x00e5eaf3, 0x00e1e9f2, 0x00dde5f0, 0x00cad2e1, 0x00cedaf4, 0x00d4daf5, 0x00ded8e7, 0x00b09598, 0x00634649, 0x00351d25, 0x0024172b, 0x00171a3e, 0x000d153e, 0x000b1640, 0x00131d49,
- 0x00092162, 0x0011296b, 0x001b2e70, 0x0022336f, 0x00203152, 0x00172635, 0x00172227, 0x0017211c, 0x00212423, 0x0026262e, 0x002a2831, 0x002b2a2e, 0x002b2a2f, 0x0028272c, 0x0028262c, 0x00343239,
- 0x0047454d, 0x0057575c, 0x00646369, 0x0068686d, 0x00646268, 0x00535760, 0x003f4451, 0x0030343e, 0x002a2b36, 0x0031323a, 0x0038383e, 0x00414247, 0x00515158, 0x005a5d66, 0x005e626d, 0x005d636f,
- 0x005c6265, 0x00565b60, 0x005c6068, 0x00626570, 0x005d606d, 0x00545764, 0x00545762, 0x0050535d, 0x00444850, 0x0044474d, 0x004a5156, 0x004d5759, 0x005b5151, 0x005f4741, 0x00603f33, 0x00593725,
- 0x00321808, 0x00170800, 0x000b0100, 0x00090202, 0x00080109, 0x000f0204, 0x00190002, 0x00200400, 0x0037150b, 0x005b3f39, 0x00877572, 0x007b777b, 0x00545c6a, 0x003a4451, 0x002f3742, 0x00313841,
- 0x0037383e, 0x00393b40, 0x0046474d, 0x004c4d51, 0x00636568, 0x00a5a7a8, 0x00fcfdfd, 0x00fbfcfb, 0x00fcfefd, 0x00fbfdfd, 0x00fcfffe, 0x00cdd0d0, 0x006a6c6f, 0x00838588, 0x00d6d8d9, 0x00edeff0,
- 0x00e1e3e6, 0x00cbcecf, 0x00aaaeaf, 0x00878b8c, 0x0057595b, 0x0035373a, 0x001b1e24, 0x000d101a, 0x000e1023, 0x000e0f26, 0x000e0f2b, 0x0011122e, 0x00171731, 0x001b1c31, 0x00222537, 0x00242637,
- 0x002e2b3a, 0x00312f3e, 0x00323143, 0x00333449, 0x002f314b, 0x002e3150, 0x002b3053, 0x00282e53, 0x00242c55, 0x00202953, 0x00202653, 0x00212450, 0x0023264c, 0x00242947, 0x002a3146, 0x00313847,
- 0x003e4548, 0x00464d4c, 0x00545a57, 0x005e635e, 0x00686d67, 0x00707371, 0x00757677, 0x00777675, 0x007a7771, 0x0075716a, 0x00736b61, 0x00706559, 0x006a5b4f, 0x00645345, 0x005f4d3b, 0x005e4b39,
- 0x00594630, 0x005b4532, 0x00543e2c, 0x00574131, 0x005d483b, 0x00726258, 0x00968b84, 0x008b8683, 0x0067736c, 0x007e8f86, 0x00a2b3ae, 0x00a3a8a0, 0x00998b73, 0x00967a51, 0x009b7444, 0x00a47841,
- 0x00ad8753, 0x00a78353, 0x009e794c, 0x00936d41, 0x008f6335, 0x00845629, 0x00774e26, 0x006d4b2c, 0x005d4535, 0x004e392c, 0x0042281d, 0x003f2214, 0x003f1f0b, 0x00381b08, 0x00301503, 0x00291404,
- 0x002d1d18, 0x0034211a, 0x004b3730, 0x00615252, 0x006c7289, 0x007089ae, 0x0080a1cf, 0x0079a0ce, 0x0073849c, 0x00777780, 0x00756a6a, 0x006f5d57, 0x00664b3f, 0x00634131, 0x0064402f, 0x00664133,
- 0x00674639, 0x006b4636, 0x00734735, 0x007c482e, 0x008b4725, 0x00974623, 0x00a04522, 0x00a2441b, 0x00a24019, 0x009c3c17, 0x00923a16, 0x00813514, 0x00602d19, 0x004b281b, 0x003d261d, 0x00342824,
- 0x00afaea4, 0x00101004, 0x00131406, 0x00121304, 0x00151409, 0x00131205, 0x00141305, 0x00151509, 0x001b190f, 0x001b180e, 0x00191a0d, 0x00171c0e, 0x001b1f11, 0x001f2114, 0x00202313, 0x00212314,
- 0x0028211b, 0x0028221a, 0x00222017, 0x001f1f15, 0x0017160f, 0x002c241e, 0x006f6056, 0x00897463, 0x00a1765b, 0x00ab7b59, 0x00bc8e64, 0x00b6885e, 0x00a4835e, 0x008e785f, 0x0085775f, 0x00a59e8c,
- 0x00e6dce1, 0x00faf4f6, 0x00f1efef, 0x00ececec, 0x00f0f3f3, 0x00eef1f3, 0x00f2f0f4, 0x00eff0f2, 0x00f7eff9, 0x00faecf8, 0x00f7ecf6, 0x00f0eef4, 0x00ebebef, 0x00e8e8eb, 0x00e8e9ec, 0x00edecf0,
- 0x00e7e3e9, 0x00e6e4ec, 0x00eaebf1, 0x00efeff4, 0x00f1f0f6, 0x00ebf0ef, 0x00edf1ed, 0x00f2ecee, 0x00f8e5f4, 0x00ece5ef, 0x00e7eef2, 0x00e5f6f1, 0x00f9f9f2, 0x00f2d2cd, 0x00bd7878, 0x00a13941,
- 0x00b32122, 0x00aa1d1c, 0x00a82527, 0x00941f25, 0x00a95658, 0x00e7adab, 0x00e6bbb4, 0x00d4b2a4, 0x00d1a598, 0x00cd9c8d, 0x00c38b7c, 0x00b87c6e, 0x00a76d5d, 0x00a16558, 0x009c655a, 0x0096645c,
- 0x00a87b7d, 0x00b38e92, 0x00cdb8b8, 0x00e1d3d8, 0x00e9e6ea, 0x00e6e6f0, 0x00e4e9f5, 0x00e2e5ee, 0x00f1e9ee, 0x00f4eded, 0x00e9e0dd, 0x00e3d9d4, 0x00e1d9d4, 0x00e0dbd5, 0x00e7e3de, 0x00ecebe6,
- 0x00fce4e9, 0x00ecd3d9, 0x00d9bac3, 0x00d7b3bd, 0x00d7b0ba, 0x00e0bdc5, 0x00f3dadf, 0x00fbe8ec, 0x00f7eaef, 0x00f7f2f1, 0x00fbf1f1, 0x00e5cdce, 0x00b98482, 0x00a4594f, 0x008c3022, 0x007e1506,
- 0x0079110d, 0x00732421, 0x009e6e6f, 0x00bcaab1, 0x00ced9e7, 0x00e3e3f0, 0x00f6f5fa, 0x00fffdfd, 0x00fffdff, 0x00fefcfe, 0x00ffffff, 0x00f6f7fa, 0x00858490, 0x00131120, 0x00161327, 0x001e1a30,
- 0x001e2244, 0x0022254c, 0x00282a56, 0x002b2d5b, 0x002e2f63, 0x00303062, 0x002f2e57, 0x00595977, 0x00c0bacd, 0x00f2f0f7, 0x00fbfefe, 0x00f9fdfe, 0x00f8f5f4, 0x00fcf7f6, 0x00f7ece3, 0x00d0bfac,
- 0x00b28b71, 0x00ab7a53, 0x00a9733d, 0x00af7632, 0x00b9792e, 0x00b3722f, 0x00b07334, 0x00b47635, 0x00ba7536, 0x00b67030, 0x00aa6827, 0x00a86a29, 0x00a76a2b, 0x00a2692d, 0x009f6b2f, 0x00a06c31,
- 0x00bc7038, 0x00bd7743, 0x00bd7c48, 0x00bd7b45, 0x00bc7730, 0x00b26a23, 0x009f6023, 0x0093603b, 0x00685478, 0x0038397f, 0x0025378d, 0x00445db7, 0x00516eca, 0x005074e7, 0x005685fc, 0x00528cfa,
- 0x005094d6, 0x004a84db, 0x004c7fe5, 0x007091f9, 0x00c0dff9, 0x00f4fefd, 0x00fbfffc, 0x00f7fefa, 0x00fffefd, 0x00fbfcfa, 0x00fafbf6, 0x00fefef8, 0x00fffefa, 0x00fcfbf7, 0x00f9f8f2, 0x00fcfbf5,
- 0x00fffdff, 0x00fdfbfc, 0x00fbfbfd, 0x00e6e6eb, 0x00b7b8be, 0x0085848a, 0x005e585e, 0x00595053, 0x006a545c, 0x00665053, 0x00634b48, 0x0065483f, 0x0062483f, 0x00624b43, 0x00614e47, 0x0061514d,
- 0x0062555e, 0x00605868, 0x005e5c6e, 0x005c5e74, 0x005b5e7b, 0x005a5d82, 0x00555b80, 0x004e5680, 0x00464f7e, 0x003e4878, 0x00394375, 0x00364175, 0x00394375, 0x003d4576, 0x00434877, 0x00464978,
- 0x00505082, 0x00545583, 0x00555780, 0x0053577a, 0x00505673, 0x004d546d, 0x00444c63, 0x003c445b, 0x00383b5b, 0x00313355, 0x002b2c4f, 0x002a2950, 0x002f2f4c, 0x00393a50, 0x009698a1, 0x00eceef1,
- 0x00fefdff, 0x00fbfafc, 0x00fbfcfa, 0x00fdfdff, 0x00afacb5, 0x00303439, 0x000b1517, 0x00141c1e, 0x0021272d, 0x0022272d, 0x001f262b, 0x001e262a, 0x0020252a, 0x0023292d, 0x00232b2d, 0x0021292b,
- 0x0023243d, 0x002b2b33, 0x00303127, 0x0032331f, 0x00292f25, 0x00282d36, 0x00363c49, 0x00505266, 0x0074615f, 0x008a6e58, 0x00a78861, 0x00b79863, 0x00cda977, 0x00d3af7c, 0x00c0996a, 0x00b2885c,
- 0x00b0805e, 0x00a57b53, 0x00b28b5d, 0x00aa8858, 0x00a1804d, 0x00967431, 0x00886428, 0x007e552a, 0x007c4635, 0x0078432b, 0x0076472a, 0x00724a1f, 0x007e683f, 0x00bcaf99, 0x00f0ede9, 0x00f5f1fd,
- 0x00e9ddf2, 0x00dfd9ef, 0x00e1e1f5, 0x00d2d9f5, 0x008893c7, 0x004f5ba4, 0x003c479a, 0x002d3a90, 0x00414b9d, 0x00444f96, 0x005b5e92, 0x00aba3b7, 0x00e2d8e6, 0x00ede1ea, 0x00f7eef4, 0x00c8b9b6,
- 0x004b3233, 0x00200908, 0x00250a06, 0x00220700, 0x002c0e0b, 0x002f1311, 0x00341a16, 0x0039251e, 0x0037291b, 0x002e2812, 0x0026230c, 0x0024210d, 0x001d1c0e, 0x005a584f, 0x00e5e1df, 0x00fdf8fb,
- 0x00fefdff, 0x00fffdfe, 0x00fffffb, 0x00eae6e0, 0x00a68f7b, 0x008b6348, 0x008e603d, 0x00905c37, 0x0085573e, 0x0078533f, 0x00674830, 0x005a3f26, 0x00644534, 0x0073554a, 0x005e4137, 0x00442b1e,
- 0x00311f10, 0x00271a0e, 0x00120a05, 0x0005050a, 0x0004041e, 0x000b144c, 0x001f327d, 0x002e49a1, 0x003151c9, 0x002951cd, 0x002558d6, 0x00235cda, 0x00245ddb, 0x002a5fe2, 0x00295be3, 0x002a5ae7,
- 0x00275cf0, 0x00245bee, 0x00235ef1, 0x001f5bee, 0x00205be6, 0x002359df, 0x002957d5, 0x003357d0, 0x003c50bc, 0x003140ac, 0x00262b86, 0x001d1859, 0x0015172e, 0x001f2022, 0x004f4a43, 0x00716363,
- 0x003e2124, 0x00150305, 0x0006050a, 0x0004122a, 0x000d2a7f, 0x00102e8e, 0x001a3e9e, 0x002955b5, 0x003668d1, 0x00356bd2, 0x002866c9, 0x001859bc, 0x001d5bc1, 0x003b76da, 0x004b82e2, 0x00477ad9,
- 0x006ba3eb, 0x0087bcf9, 0x0092c3f8, 0x0097c3f2, 0x008baecd, 0x006e8ba3, 0x005f7688, 0x005b6c79, 0x005e687e, 0x005a6379, 0x00545a69, 0x00565859, 0x004d4c4e, 0x00484848, 0x00464847, 0x00444645,
- 0x00434343, 0x0040403f, 0x003b3a3a, 0x00383837, 0x00363736, 0x00343638, 0x002b2d33, 0x0023262b, 0x001f2027, 0x00181820, 0x00121418, 0x000d1114, 0x00080a0f, 0x00404246, 0x00cacdce, 0x00f5f6f8,
- 0x00ffffff, 0x00fbfefb, 0x00f5faf3, 0x00ecf3eb, 0x0070766d, 0x0011170f, 0x00424841, 0x00acb3ae, 0x00f8faff, 0x00fafbff, 0x00fbfcfd, 0x00fbfbfa, 0x00fafbfd, 0x00faf9fb, 0x00faf9fa, 0x00fcfafd,
- 0x00fef9ff, 0x00fbfbff, 0x00faf9ff, 0x00f9faff, 0x00fefdff, 0x00fdeae1, 0x00ea9e82, 0x00eb6c36, 0x00f1b29d, 0x00f0f0ea, 0x00ebfef8, 0x00f8feee, 0x00fdf1e3, 0x00fff2f0, 0x00fef5f3, 0x00fbfbf2,
- 0x00fff6ff, 0x00fff8ff, 0x00fdfafd, 0x00fdfcfa, 0x00fcfff6, 0x00fafcf1, 0x00f9fff3, 0x00f5fff2, 0x00f6ffff, 0x00f3fefe, 0x00f5fdfd, 0x00fef7f7, 0x00fdfaf5, 0x00faf5ea, 0x00d8d7c6, 0x00adad97,
- 0x007d7e66, 0x00676a52, 0x00616950, 0x006d7760, 0x00707c63, 0x00727a68, 0x00747a6a, 0x00747c69, 0x00737c6a, 0x0074806d, 0x0078836f, 0x007c8471, 0x007c8070, 0x007c7d6f, 0x0077756a, 0x00726d63,
- 0x005f6257, 0x0055574c, 0x0044473e, 0x003a3f37, 0x00313430, 0x00292c28, 0x0021241e, 0x001c1e15, 0x00202318, 0x0026271c, 0x0025281b, 0x00282b1a, 0x00312d1a, 0x003c2f18, 0x00422e12, 0x00472d12,
- 0x003f240d, 0x00331f0a, 0x002a1b09, 0x00302d1d, 0x004d5148, 0x0067675b, 0x00706c63, 0x00676362, 0x004f4752, 0x00352f34, 0x00241e20, 0x00241f19, 0x00272015, 0x002a211a, 0x00423637, 0x00594c53,
- 0x00514e39, 0x00332613, 0x003c220e, 0x00623d26, 0x0091693f, 0x008f6b38, 0x00836324, 0x00896b26, 0x00a8834c, 0x00b58b5a, 0x00b48d57, 0x00b89453, 0x00b89358, 0x00a47f45, 0x008f6a36, 0x00805e2d,
- 0x0075512e, 0x00745b39, 0x00a49574, 0x00b4a487, 0x00817a5a, 0x005d5038, 0x003d311e, 0x002d2412, 0x002e2415, 0x002e2618, 0x00302a1c, 0x00312a1d, 0x0032291d, 0x002f2317, 0x0024170c, 0x00120500,
- 0x00363130, 0x00aeabaa, 0x00fcfcf9, 0x00fcfffb, 0x00fcfdfd, 0x00f9fafc, 0x00f2f5f7, 0x00aeb7b9, 0x005e606b, 0x00545761, 0x00565963, 0x00565967, 0x0054566a, 0x004f5569, 0x003c4657, 0x002d3747,
- 0x0039384a, 0x008a8294, 0x00fae9f7, 0x00ccb6c1, 0x004f3138, 0x00221e48, 0x000c1c4d, 0x00081543, 0x00081741, 0x000a183d, 0x00041132, 0x0022304e, 0x00929cb9, 0x00d4d9f5, 0x00dbdef7, 0x00dee1f9,
- 0x00e4e3f8, 0x00eaeaf6, 0x00eae9ec, 0x00eaede8, 0x00eeeded, 0x00ececf5, 0x00e8e7f6, 0x00e2e0f3, 0x00ddd6e6, 0x00ccc7d0, 0x00b6b7bd, 0x00a7b1be, 0x00a8afbb, 0x00b1b8c6, 0x00c6cbd8, 0x00d0d2de,
- 0x00cfd1e7, 0x00dbddf7, 0x00cfd6f1, 0x00919cbb, 0x00647195, 0x007d91c1, 0x0097a7d7, 0x00afafd0, 0x008c7286, 0x004d3244, 0x002a1629, 0x0019102d, 0x000d163e, 0x0009143f, 0x0007123b, 0x000d163d,
- 0x0009153e, 0x000c1847, 0x000f1948, 0x00151d4b, 0x001b263f, 0x001d2730, 0x001d2520, 0x001b2415, 0x001e1b1f, 0x001d1827, 0x001e1927, 0x001e1d1f, 0x001d1e21, 0x001b1b1d, 0x001d1b1e, 0x002a282c,
- 0x00423c46, 0x00514d54, 0x005e5b63, 0x0068666b, 0x00605e63, 0x004a4f58, 0x00343b47, 0x00262c34, 0x00292631, 0x002c2930, 0x002e2a2f, 0x00363338, 0x0044434a, 0x004a4d56, 0x004b525e, 0x004b5561,
- 0x00565a58, 0x00555958, 0x005f6366, 0x00666a72, 0x00656874, 0x005b5f6d, 0x00535866, 0x00474a58, 0x00373a48, 0x00363642, 0x003b3e49, 0x00474d51, 0x005c4d4e, 0x006c4e46, 0x00744c3d, 0x006a402b,
- 0x0044200c, 0x00250d02, 0x00100300, 0x000c0200, 0x00090008, 0x00220102, 0x003a0304, 0x004b0b08, 0x00641c13, 0x007f423b, 0x00a2726d, 0x00927374, 0x00645661, 0x004c424c, 0x00433c43, 0x00433e43,
- 0x00434248, 0x003f4046, 0x00424148, 0x00444548, 0x00494c50, 0x008a8e8e, 0x00f2f4f4, 0x00f9fbfa, 0x00fdfcff, 0x00fdffff, 0x00fafefc, 0x00d6dad8, 0x0075787a, 0x00717376, 0x00a0a2a2, 0x00a3a6a6,
- 0x00828284, 0x005a5a5d, 0x002d3032, 0x00202525, 0x001d1f22, 0x001b1e26, 0x001b1f2c, 0x00181b2a, 0x00161635, 0x00151334, 0x00171639, 0x001c1d3d, 0x0022213e, 0x0027283e, 0x002e3240, 0x0032353f,
- 0x003c3345, 0x003e3748, 0x003f3b4d, 0x003d3c50, 0x00393b51, 0x00373a54, 0x00343957, 0x002e3452, 0x00292e53, 0x0023294f, 0x001f274e, 0x0021254d, 0x0021274a, 0x00202741, 0x00252e3d, 0x002d363d,
- 0x003e4449, 0x00484e4e, 0x00565b59, 0x005e635e, 0x00666b65, 0x006d716f, 0x00727474, 0x00737570, 0x007a7470, 0x00766f6a, 0x00746b61, 0x00726659, 0x006c5d50, 0x00665545, 0x0063513d, 0x0064513d,
- 0x00605143, 0x0054453a, 0x0053463b, 0x00483d35, 0x007a7172, 0x00c2c1c8, 0x00c7cfdd, 0x0092a4b6, 0x00597992, 0x007aa0b7, 0x00adcbdd, 0x00a1a6a9, 0x008b7c67, 0x00907449, 0x0099743d, 0x00a47a3e,
- 0x00b08154, 0x00a67b53, 0x00916b44, 0x00855f35, 0x007d5424, 0x007a5025, 0x007b5932, 0x0083633e, 0x0083634c, 0x007b5b41, 0x00704a2f, 0x0060381a, 0x00482204, 0x00371b05, 0x002b1a09, 0x00221a0f,
- 0x00231b13, 0x00271a0b, 0x002d1805, 0x00432c19, 0x00645b5a, 0x0069707f, 0x007f8fa7, 0x00859eba, 0x007b8297, 0x00767077, 0x00746966, 0x006d5f5a, 0x00624c42, 0x00614537, 0x00644533, 0x00684639,
- 0x006d4d45, 0x00724f43, 0x007b5140, 0x00845236, 0x00924f2b, 0x009f4d28, 0x00a64926, 0x00a6451e, 0x00a4421d, 0x009c3d19, 0x00913a16, 0x00813514, 0x00602e1a, 0x004a291d, 0x003c2720, 0x00352828,
- 0x00a9ae9d, 0x00090e00, 0x000e0e01, 0x00121003, 0x00141307, 0x00121105, 0x00151106, 0x00171409, 0x00111402, 0x000e1200, 0x00101508, 0x0012170b, 0x00171b0e, 0x001d1f12, 0x00222016, 0x00242015,
- 0x00181c08, 0x00181a09, 0x001a1b12, 0x00171710, 0x0028271f, 0x004b464a, 0x0076696c, 0x00816c69, 0x008d6d53, 0x009b7552, 0x00bf8c69, 0x00c38e6b, 0x00b28a69, 0x00b99a83, 0x00ddc6b7, 0x00f3e3da,
- 0x00eaf2f1, 0x00e2eaea, 0x00e4eaed, 0x00e8eff4, 0x00e4eff5, 0x00e5eff6, 0x00ecf0fa, 0x00eef0fb, 0x00ececf5, 0x00f1ebf5, 0x00f2ecf8, 0x00eeecf7, 0x00eae9ef, 0x00e7e5ea, 0x00e8e5ed, 0x00eeeaf2,
- 0x00e1e5e4, 0x00dee5e4, 0x00ece9f0, 0x00efedf4, 0x00edeff4, 0x00e9f1ee, 0x00eef1f0, 0x00f6ebf2, 0x00ebe4e9, 0x00e3e7e9, 0x00e5f0f2, 0x00e4f8f4, 0x00d6d3c9, 0x00ad7f79, 0x00a75153, 0x00c54750,
- 0x00a2340d, 0x00932103, 0x00a12f1b, 0x00a93b2f, 0x00a14139, 0x00ba615a, 0x00c06860, 0x00b35651, 0x00ae4535, 0x00be4b3c, 0x00ce4c43, 0x00ce433c, 0x00c03934, 0x00b73431, 0x00a8292c, 0x00962121,
- 0x00741d16, 0x0078312c, 0x008d4e4f, 0x00a37274, 0x00c6a3a8, 0x00cbc2cb, 0x00e0e3ed, 0x00e7e8f0, 0x00e6e3e0, 0x00e9e1db, 0x00e3d7d1, 0x00e1d5cc, 0x00e4d8d2, 0x00e5dcd5, 0x00ece4e2, 0x00efe4e6,
- 0x00d7ada9, 0x009f7470, 0x00925d60, 0x00955c61, 0x0092595f, 0x009a6668, 0x00c19699, 0x00e3bfc2, 0x00e5d6c9, 0x00dcd3c2, 0x00cdb2ae, 0x00ad6c7a, 0x00862c30, 0x00a22e2b, 0x00bc3830, 0x00bd2d1d,
- 0x00a02714, 0x00994130, 0x00bf8482, 0x00c7b6bf, 0x00c9dcef, 0x00dee4ed, 0x00faf4fd, 0x00fffcff, 0x00f7fbf8, 0x00f8fcf9, 0x00fefdff, 0x00f8f7fc, 0x00858591, 0x00130e20, 0x001c142c, 0x00231d35,
- 0x00192742, 0x00202b49, 0x002c315a, 0x00323465, 0x00353766, 0x00383866, 0x005f5d87, 0x00b3b0cc, 0x00f0f6f4, 0x00f4fbf4, 0x00f6fafa, 0x00f1f6f9, 0x00f1f4fe, 0x00f9f5fb, 0x00e6d9dc, 0x00c5aca7,
- 0x008b704a, 0x009a753d, 0x00bf8d4b, 0x00c68c3c, 0x00c58528, 0x00b0722b, 0x00a5682e, 0x00a36429, 0x009f611e, 0x009c5f1b, 0x009c5e1e, 0x009f6123, 0x009d6128, 0x0099602b, 0x0099632e, 0x009d6937,
- 0x00ad6b2d, 0x00b37437, 0x00bc7842, 0x00c58142, 0x00c77a28, 0x00bc6c1a, 0x00b26420, 0x00a7673c, 0x00655871, 0x00353f82, 0x002e409f, 0x004d58c0, 0x00456abe, 0x003e75df, 0x004b8bff, 0x004c94ff,
- 0x004798dd, 0x004e87e4, 0x005978e8, 0x008392f5, 0x00d7e8e6, 0x00f8fef9, 0x00fefdff, 0x00fffbfb, 0x00f9faf4, 0x00f8f8f3, 0x00faf9f6, 0x00fcfbfa, 0x00fcfafc, 0x00fafafd, 0x00f9faff, 0x00f7faff,
- 0x00f7fdf3, 0x00f3f9f0, 0x00fcfcfa, 0x00fdfbfe, 0x00f1eff3, 0x00cbc5cb, 0x0090838c, 0x0075656e, 0x006d5857, 0x00635051, 0x00694e4d, 0x006d4e47, 0x00694d47, 0x00654f49, 0x00665251, 0x0067565a,
- 0x005d595a, 0x005b5a62, 0x005e5f73, 0x005f627d, 0x005c6281, 0x005b5f84, 0x005b5e88, 0x00575a85, 0x00445176, 0x003d4a74, 0x00394474, 0x00364272, 0x00374371, 0x003d4372, 0x00464677, 0x004a4a7b,
- 0x00485179, 0x004c537b, 0x0052567d, 0x00535778, 0x00505771, 0x004d546b, 0x00484b66, 0x00404260, 0x002f3a4f, 0x002b354f, 0x002b2f50, 0x002d2c55, 0x00313152, 0x0046465b, 0x00b1afbb, 0x00f4f3f8,
- 0x00f7faf5, 0x00f7fbf4, 0x00fbfcfa, 0x00fffeff, 0x009e9ba5, 0x001b1d23, 0x0010151c, 0x00151c21, 0x001b2623, 0x001c2825, 0x00232a2e, 0x0022282c, 0x00212a2f, 0x00242c32, 0x00262c31, 0x0023292f,
- 0x00222437, 0x00282c2b, 0x00313026, 0x0034341a, 0x00292f21, 0x002b3236, 0x00383c4d, 0x00464963, 0x005b524d, 0x00725e47, 0x00987b58, 0x00b49360, 0x00cfaa7c, 0x00cba276, 0x00bf8b67, 0x00c99471,
- 0x00b3865b, 0x0097693e, 0x008d5d32, 0x00895a2f, 0x00865d2e, 0x0075542e, 0x00715034, 0x00704930, 0x00664019, 0x006b441d, 0x007c5130, 0x008c6749, 0x00bfa591, 0x00f3e6d9, 0x00fdf7f7, 0x00f6f7fb,
- 0x00e5e4ea, 0x00d7dbe3, 0x00e2e7f6, 0x00cad1f0, 0x006d79b8, 0x004c57af, 0x003f4cb2, 0x00313ca9, 0x003547a2, 0x004050a6, 0x006b74b5, 0x00c6c7de, 0x00ecebfc, 0x00efecf6, 0x00faf1fb, 0x00d6ccd1,
- 0x004a4036, 0x00120800, 0x001c0a03, 0x001e0503, 0x00220904, 0x002b0c0a, 0x00361515, 0x00391f1a, 0x00312710, 0x002d290f, 0x002e2912, 0x00282711, 0x002e2d1e, 0x0076716a, 0x00f0eceb, 0x00fff8fc,
- 0x00f5faee, 0x00f9fcf2, 0x00fcfef7, 0x00e4dfd7, 0x009f846e, 0x008c6648, 0x00946643, 0x0090603a, 0x007a5735, 0x00705439, 0x0066493b, 0x005c3d34, 0x005b3938, 0x00583a3a, 0x00432426, 0x003a1d1c,
- 0x00372913, 0x002c260b, 0x00211b05, 0x00121104, 0x00030503, 0x0001051f, 0x00071344, 0x00142d6f, 0x001c45a0, 0x002151ba, 0x00285bd5, 0x002762e0, 0x00225de4, 0x002057e7, 0x002959f6, 0x002e5bff,
- 0x001e62e5, 0x001a5bda, 0x002263e7, 0x002464e5, 0x002863d4, 0x002d60c4, 0x00365fb8, 0x0035539d, 0x001e3761, 0x000d1c41, 0x000e0d2a, 0x00160911, 0x001f1809, 0x002b1c0a, 0x0050392b, 0x00745159,
- 0x004b2930, 0x0027100f, 0x0031242e, 0x00282d4b, 0x0011287b, 0x000b1e7c, 0x0010258e, 0x001c36a1, 0x001b4dab, 0x00235abb, 0x00245ec6, 0x001859be, 0x001958bb, 0x002563c0, 0x003067c5, 0x003a70ce,
- 0x004493e8, 0x00529ced, 0x0066a7f3, 0x007ab2f5, 0x0090c2ef, 0x0091bbe0, 0x007a9dbe, 0x006886a6, 0x005d7c92, 0x005b7991, 0x005d6b81, 0x005a5a5b, 0x00565555, 0x00505251, 0x004a494c, 0x00434245,
- 0x00394039, 0x00393d37, 0x00383939, 0x00383637, 0x0039393a, 0x003a3a3b, 0x00343339, 0x002b2d32, 0x001d2122, 0x00141b1d, 0x000f1317, 0x000a0d14, 0x000f1116, 0x00575a5f, 0x00e8e7ee, 0x00fefcfe,
- 0x00f3fef2, 0x00f3fcf0, 0x00fafcf7, 0x00dbdfd7, 0x00525a52, 0x001e241c, 0x00888c8a, 0x00e4e7e6, 0x00f7fdfc, 0x00f5f8fa, 0x00faf9fe, 0x00fcf9fe, 0x00fcfafe, 0x00fbfafe, 0x00fcfbfe, 0x00fcfafe,
- 0x00f7faf9, 0x00f7f7f9, 0x00fafbfe, 0x00fbf9fd, 0x00fbfdfe, 0x00fcd4bf, 0x00e88158, 0x00fa6b30, 0x00f5c7ac, 0x00def4e9, 0x00dcfffb, 0x00f0fef6, 0x00fff4e4, 0x00fff4f4, 0x00fbfaff, 0x00effefe,
- 0x00f0fbe2, 0x00f3fbe8, 0x00f9fcf5, 0x00fefafc, 0x00fff7fc, 0x00fdf4f8, 0x00fff5fe, 0x00fef6ff, 0x00f7f9f9, 0x00f6f8f2, 0x00fbf9f8, 0x00fffafd, 0x00fcf6f5, 0x00fdfbf6, 0x00fcf7ee, 0x00e7e2d4,
- 0x009aa181, 0x006f7a5b, 0x004e5137, 0x004d563a, 0x00636e52, 0x00737a65, 0x00767d6c, 0x00777d6b, 0x006b775a, 0x006a7a5d, 0x00727e67, 0x0079816c, 0x007c8270, 0x00858875, 0x0088857a, 0x00848176,
- 0x00707d67, 0x006d7865, 0x006b7367, 0x00676c66, 0x0060625e, 0x00555652, 0x004d4e49, 0x00474840, 0x003f462e, 0x003a432e, 0x003c412f, 0x003a3f2d, 0x003d3825, 0x003f341f, 0x00472f18, 0x004b2f15,
- 0x003d2b08, 0x00322506, 0x00302410, 0x00393428, 0x004d504b, 0x00616156, 0x00686158, 0x00585354, 0x0035363a, 0x001f2024, 0x001a1418, 0x001a1412, 0x001d1610, 0x00241c19, 0x00514248, 0x00766672,
- 0x00565b34, 0x004a4622, 0x005a422a, 0x007c543e, 0x00a27752, 0x0097723d, 0x007d5920, 0x00795b19, 0x008a6e2d, 0x009c7743, 0x00ad834f, 0x00b28e47, 0x00ad8a4b, 0x009a763d, 0x00845f2f, 0x00755028,
- 0x00654e26, 0x0071603d, 0x009d8b70, 0x00a99f84, 0x007d765d, 0x0063563f, 0x00453524, 0x00322316, 0x00232208, 0x0025220c, 0x002d2618, 0x00352d21, 0x00392e22, 0x00322419, 0x002c1911, 0x00220b06,
- 0x0022261c, 0x008c8f87, 0x00fafbf7, 0x00fcfdfb, 0x00fdfdfe, 0x00f9fafb, 0x00f8f9fd, 0x00bebfc8, 0x00586062, 0x004e565a, 0x005c606c, 0x00656574, 0x00606577, 0x005b6376, 0x004e556d, 0x00424861,
- 0x00323747, 0x006e6a78, 0x00f4e4f2, 0x00ceb5c1, 0x0044212a, 0x00130e2e, 0x000c1848, 0x000d1743, 0x00011832, 0x0000142b, 0x00010e29, 0x002d4058, 0x009aaac3, 0x00c1ceed, 0x00c6cdf1, 0x00d3d9fe,
- 0x00dae7f1, 0x00e2ecf1, 0x00e2eaea, 0x00eceee9, 0x00f0f0ed, 0x00f3f2f8, 0x00f6eefa, 0x00f3e8f9, 0x00dfdddf, 0x00d4d4cc, 0x00cccace, 0x00c5cfe2, 0x00bdc4d4, 0x00c2c6d8, 0x00d2d0e7, 0x00aeacc5,
- 0x00888da4, 0x00aab5d2, 0x009098c1, 0x00384472, 0x001b2a5d, 0x00213d7f, 0x00375191, 0x004e5384, 0x0044354b, 0x002a1c2c, 0x001e0d2b, 0x00110b31, 0x0002113d, 0x0002113f, 0x00030f3e, 0x0007123a,
- 0x00061424, 0x000d1931, 0x001a1f47, 0x0021224d, 0x0021263b, 0x0021262a, 0x00252825, 0x0024291a, 0x001a1b17, 0x001a1825, 0x001e182b, 0x001a181c, 0x001c1b1f, 0x001b191c, 0x001a181e, 0x0027232b,
- 0x00343538, 0x003d3f41, 0x004d4b50, 0x00575259, 0x004d4d52, 0x003a3e48, 0x002b2e3d, 0x00212331, 0x001d2122, 0x001e2121, 0x00222122, 0x00292628, 0x00353339, 0x003b3c46, 0x003b404d, 0x003a4252,
- 0x00424f42, 0x004a544b, 0x005b625f, 0x0063696c, 0x00676c75, 0x00626573, 0x00545567, 0x00414055, 0x00262e39, 0x00262c39, 0x002e3440, 0x003d4146, 0x00574644, 0x006f4f48, 0x007f5146, 0x0076422f,
- 0x004a2a09, 0x002f1700, 0x001e0c01, 0x00160903, 0x000f020f, 0x00360006, 0x00590308, 0x00721618, 0x007d2819, 0x008a3d32, 0x009e5c55, 0x00926062, 0x006c4e57, 0x005c4550, 0x00533f49, 0x004f3b43,
- 0x003f4243, 0x003d4344, 0x003f4246, 0x003f4045, 0x00383c3f, 0x00737477, 0x00ece9ed, 0x00fdfdff, 0x00f5fcf3, 0x00f4fcf3, 0x00fcfffc, 0x00e4e6e5, 0x00828588, 0x005b5c5e, 0x0066676b, 0x005b6063,
- 0x002e3732, 0x0026302b, 0x00292d2d, 0x002c3030, 0x002d3032, 0x002c2e39, 0x002f2e44, 0x00282a42, 0x00181e37, 0x00171e39, 0x00212347, 0x00222448, 0x00262945, 0x002f3043, 0x00333646, 0x00383944,
- 0x00393843, 0x003d3a47, 0x00464253, 0x00474457, 0x00444357, 0x00414259, 0x003d3f5c, 0x00383a58, 0x00253248, 0x00202c45, 0x00222b4a, 0x0022284d, 0x00202743, 0x001f253e, 0x00252b3d, 0x002d3440,
- 0x00343e3b, 0x003d4844, 0x00505653, 0x00595d58, 0x00616862, 0x00686d67, 0x006e6d6c, 0x00717171, 0x006e6f64, 0x006e6d5f, 0x0071695f, 0x0072665c, 0x006f6050, 0x006e5b4b, 0x00725b4d, 0x00775f4f,
- 0x00616450, 0x005c5d4d, 0x006c6765, 0x00676369, 0x00a0a2b4, 0x00d2dff2, 0x00a1b5d7, 0x007290b6, 0x00659dbc, 0x0082bfdf, 0x009ac4e1, 0x008d929a, 0x00867763, 0x0090734a, 0x0098703c, 0x00ab7a40,
- 0x00a37d46, 0x00977345, 0x0089613e, 0x00825a36, 0x007f5628, 0x00825b2f, 0x008d6a45, 0x00916e4c, 0x007d613e, 0x00775835, 0x00845c3d, 0x008e6445, 0x0065462e, 0x003b2b1b, 0x00211e1b, 0x001b2228,
- 0x00142315, 0x001e230b, 0x00362a14, 0x00533c28, 0x00715f55, 0x006b6469, 0x0078788b, 0x00838ba2, 0x007b7b81, 0x00766b67, 0x0076655f, 0x00665b58, 0x005f4943, 0x00624639, 0x0069493c, 0x006e4d42,
- 0x006d5541, 0x00735443, 0x007e5646, 0x0089583f, 0x00955633, 0x00a54f2d, 0x00ac4b2b, 0x00aa4926, 0x009d4212, 0x00953d12, 0x008e3914, 0x007d3615, 0x00602f1d, 0x004a281d, 0x003e2826, 0x00382a30,
- 0x00acaea3, 0x000e0f04, 0x000f0f03, 0x00111104, 0x00121406, 0x00111305, 0x00101103, 0x00121306, 0x00111202, 0x000e1103, 0x000e1205, 0x00111506, 0x0013160b, 0x001c1c13, 0x00201f15, 0x00222016,
- 0x00161b0e, 0x000f1711, 0x00162422, 0x0025343d, 0x0057687b, 0x0079849f, 0x007e8094, 0x00776d74, 0x00806248, 0x00977251, 0x00b08361, 0x00bf9377, 0x00c5a694, 0x00dac4b7, 0x00f8ebdd, 0x00f4efdf,
- 0x00ecedf3, 0x00eaedf2, 0x00eaedf4, 0x00e8edf3, 0x00e5edf3, 0x00e7eef4, 0x00ebeef5, 0x00ebecf3, 0x00eceaf5, 0x00efe8f3, 0x00efeaf6, 0x00ededf6, 0x00eaeaf0, 0x00e6e5ea, 0x00e5e4eb, 0x00eae9ef,
- 0x00e4e8ec, 0x00e9e8ee, 0x00eae9f1, 0x00efedf5, 0x00eceaf2, 0x00efe4eb, 0x00f0e6ea, 0x00f3e2ea, 0x00e7e3e9, 0x00ebedee, 0x00eaedec, 0x00cfc8c1, 0x00946a5f, 0x0075291d, 0x00ab4239, 0x00ce4942,
- 0x00a12d05, 0x009b2201, 0x00a5290f, 0x00b23724, 0x00b53e30, 0x00af392d, 0x00af3a2c, 0x00b3382b, 0x00c13831, 0x00d7423e, 0x00e14b45, 0x00e14941, 0x00d4423c, 0x00ce403c, 0x00c43f3d, 0x00bb3d3c,
- 0x00a43837, 0x009b3a3b, 0x007e2b2c, 0x00722b2c, 0x00884d4f, 0x009a8487, 0x00ccc6cb, 0x00ddd5da, 0x00bfb6b9, 0x00b5a8aa, 0x00bdaeae, 0x00d1c5bf, 0x00e1d5cd, 0x00e9dfd5, 0x00eae2d7, 0x00e8ded2,
- 0x00bf978d, 0x0083524a, 0x00794039, 0x008b4941, 0x008d3e34, 0x00823121, 0x00903c2d, 0x00b65f50, 0x00da8574, 0x00c87766, 0x009f443b, 0x00912024, 0x00941c16, 0x00b93429, 0x00d34938, 0x00cc4029,
- 0x00aa321e, 0x00a34336, 0x00c4847e, 0x00cab1b2, 0x00d9e7ee, 0x00e5e9f0, 0x00f4f2fa, 0x00fdfcfe, 0x00fcfcf9, 0x00fbfcf9, 0x00fffcfb, 0x00f7f7f7, 0x0084868e, 0x00111221, 0x001a1a30, 0x0022223c,
- 0x00222a49, 0x00313557, 0x0035355c, 0x003b3962, 0x003a3a5e, 0x004f4f6f, 0x00b2b2cb, 0x00f0f1fa, 0x00f9fafc, 0x00fafaf8, 0x00f9f7f7, 0x00f9f5fa, 0x00efedf9, 0x00e9e5ef, 0x00d3ccd1, 0x00c2b5b6,
- 0x0094826c, 0x007a5d3c, 0x00926a3c, 0x00a7783b, 0x00aa742b, 0x009a652c, 0x00895722, 0x0086511a, 0x008c5115, 0x008e5114, 0x00905114, 0x0095581b, 0x00985d23, 0x00945b26, 0x00925c27, 0x00936130,
- 0x00a0622d, 0x00a96a36, 0x00b47338, 0x00bf7d3e, 0x00bd7920, 0x00ba771d, 0x00aa7024, 0x009e6f43, 0x006b6187, 0x00464999, 0x003b45a9, 0x004753b5, 0x004364b8, 0x003e72d2, 0x004584f0, 0x004891fc,
- 0x004b91eb, 0x005b8df8, 0x00587ce6, 0x00879ded, 0x00dbf1e5, 0x00f9fbfa, 0x00fefdfc, 0x00fdfafa, 0x00fdfbfa, 0x00fdfcfb, 0x00fefcfc, 0x00fdfcfc, 0x00fbfbfc, 0x00fcfdfd, 0x00fbfdfe, 0x00f8fbfc,
- 0x00f8fef6, 0x00fafff9, 0x00fafcf8, 0x00fbfcf9, 0x00fdfefd, 0x00fcf9fa, 0x00ded5d6, 0x00c7bbbf, 0x00a08c8c, 0x00756365, 0x006c5353, 0x006f5049, 0x006a4d49, 0x0069504e, 0x00675253, 0x00665558,
- 0x00615c63, 0x0062606c, 0x00626175, 0x0061637b, 0x00616581, 0x005e6183, 0x005c5f85, 0x00585d83, 0x004a537d, 0x00424c79, 0x003c4576, 0x00374273, 0x00364172, 0x003b4074, 0x00434479, 0x0046487c,
- 0x004c4f79, 0x004f537c, 0x0053567d, 0x00535678, 0x004e546f, 0x004a5069, 0x00444962, 0x003d415c, 0x00373a57, 0x00303553, 0x002a2e52, 0x00282b57, 0x002c2f50, 0x004e5066, 0x00c2c2ce, 0x00f6f7f8,
- 0x00fbfcf7, 0x00fbfdf7, 0x00fafaf7, 0x00fdfdfb, 0x0086878c, 0x00111417, 0x000c1215, 0x00121a1b, 0x00192220, 0x001c2724, 0x001e2828, 0x001f282a, 0x00212a2d, 0x00232931, 0x00262a31, 0x00252932,
- 0x00272936, 0x002e2f33, 0x0033332d, 0x00313424, 0x002a2f24, 0x002d3432, 0x00353a3e, 0x003c3c44, 0x004c3c36, 0x005e483c, 0x00927555, 0x00bd905b, 0x00c09368, 0x00af8462, 0x00c79f81, 0x00efcbb6,
- 0x00eccdb9, 0x00c4a18d, 0x00805e45, 0x0064442a, 0x00644521, 0x00664526, 0x00705031, 0x006e4f30, 0x006a4a27, 0x00755637, 0x0087664e, 0x00b39787, 0x00ecdad4, 0x00f3eae9, 0x00f7f6f6, 0x00f4f9f9,
- 0x00ebe5e9, 0x00e5e4ed, 0x00e0e4f8, 0x00adb7dc, 0x005664b4, 0x004858b9, 0x004152b7, 0x003140a9, 0x00263890, 0x0038439a, 0x007078b6, 0x00bdbed2, 0x00c9c6d6, 0x00cdcad8, 0x00ccc8d2, 0x00968e91,
- 0x00302621, 0x00120703, 0x00170703, 0x00170403, 0x001d0905, 0x00250e0b, 0x002f1716, 0x0033211d, 0x00363023, 0x00353424, 0x00323322, 0x002d331f, 0x003d4334, 0x008c8f84, 0x00f0f3ee, 0x00fcfdfc,
- 0x00f7fdf4, 0x00fdfff9, 0x00fcf9f3, 0x00dfd5c9, 0x00997c64, 0x008f694b, 0x00916443, 0x008d603d, 0x00815b3a, 0x0075543a, 0x00674938, 0x005c4136, 0x00563a38, 0x00492f30, 0x00361b1d, 0x00331b1b,
- 0x00342418, 0x00271b0d, 0x001c1705, 0x00171806, 0x000a1102, 0x00030a11, 0x0000031b, 0x00000428, 0x000e195d, 0x00213488, 0x002b46a9, 0x002951bc, 0x002854cd, 0x002b53d6, 0x003556e4, 0x003956ec,
- 0x00335ad0, 0x00385bcc, 0x003a5fc4, 0x003359b0, 0x00224484, 0x00264370, 0x00263b60, 0x0025314c, 0x00151725, 0x000d0817, 0x00180f16, 0x0022150b, 0x00271b01, 0x002d1a00, 0x00432a14, 0x0064423a,
- 0x00543534, 0x004c3539, 0x00665d67, 0x004f5371, 0x00203376, 0x000d2179, 0x00061d7e, 0x00082184, 0x000c318e, 0x001b45a3, 0x001f4daf, 0x00184cae, 0x001f55b8, 0x00225abb, 0x001e56ba, 0x002f69cc,
- 0x003378da, 0x003a80db, 0x004387db, 0x004c8cd9, 0x006ba6e7, 0x008fc5f9, 0x008ebfe5, 0x0075a1d0, 0x005a83b4, 0x005e84ba, 0x007292b7, 0x00728996, 0x00818f9b, 0x008a919e, 0x0082858d, 0x00706f7b,
- 0x00484f56, 0x003f4650, 0x00323c47, 0x00343c45, 0x00323b3b, 0x00333e49, 0x002c3840, 0x00293037, 0x00252322, 0x00201d19, 0x0013110f, 0x000c0d0d, 0x0018161b, 0x0075747a, 0x00f9f7fe, 0x00fdf9fd,
- 0x00f1fbf5, 0x00f5fdf9, 0x00f9fcf8, 0x00c8ccc4, 0x003c4239, 0x0050564c, 0x00cfd2ca, 0x00f7f8f5, 0x00fbfafc, 0x00fcfbfe, 0x00faf8fd, 0x00fcfaff, 0x00fafafe, 0x00fbfbfe, 0x00fbfafe, 0x00fbf9fe,
- 0x00f8f8fa, 0x00fdfaff, 0x00f9f9fc, 0x00fcf9fd, 0x00fafcfc, 0x00fac5a4, 0x00e16a38, 0x00ed7749, 0x00f7d9cc, 0x00e9f6f4, 0x00e6fcf9, 0x00f1faed, 0x00fef4df, 0x00fff5e9, 0x00faf8f4, 0x00f3f8f5,
- 0x00ebfdeb, 0x00eff6e8, 0x00f6f5e7, 0x00fbf1e4, 0x00faedea, 0x00f8f4f5, 0x00f8f9fd, 0x00f4f7fc, 0x00fbf7fe, 0x00fef2ef, 0x00f9f4ed, 0x00fcf9f3, 0x00fdfdf7, 0x00fcfbf8, 0x00fbfcf6, 0x00fbf6ed,
- 0x00e4e4d8, 0x00bbbaaa, 0x006f705b, 0x00444f32, 0x005c6d48, 0x00727f57, 0x00758259, 0x00707b57, 0x0060714e, 0x005a6d52, 0x005a6d59, 0x00617162, 0x006a786a, 0x0076806d, 0x007b806a, 0x007d7f67,
- 0x0079866c, 0x007c886f, 0x007c8772, 0x007d8774, 0x007a8370, 0x00767e6d, 0x0071796a, 0x006d7565, 0x00676f5e, 0x00646c5f, 0x005f6656, 0x005c624d, 0x00555642, 0x00514d3d, 0x004d4532, 0x004e432e,
- 0x00443b1d, 0x003d3518, 0x00393317, 0x00413d29, 0x00545346, 0x005b5a50, 0x0057544d, 0x00494445, 0x002b2629, 0x001b1519, 0x000f090a, 0x00211b16, 0x004c463d, 0x00534d45, 0x0057514d, 0x006d6564,
- 0x0072765c, 0x00827a5e, 0x00785e42, 0x00966b4b, 0x00ad7c4d, 0x009d743b, 0x007a551c, 0x006a4b10, 0x00765622, 0x00896438, 0x009b7643, 0x00a1813e, 0x00a7853e, 0x00ad8844, 0x00ae8645, 0x00a0763c,
- 0x008b6b3e, 0x00b39877, 0x00bfab91, 0x00a09684, 0x00757663, 0x00645c45, 0x00463d25, 0x002f2711, 0x00231e0d, 0x00211d0f, 0x0027221a, 0x002e2821, 0x003a3328, 0x003a3022, 0x00362a1b, 0x002d2010,
- 0x0021221b, 0x00797b75, 0x00fafaf5, 0x00fcfcfa, 0x00fefdfd, 0x00f7f8f8, 0x00f9fafa, 0x00c8c9cd, 0x005f6268, 0x0052555e, 0x0062636f, 0x006d6977, 0x006a6d7b, 0x00656c78, 0x0055606d, 0x004b5664,
- 0x00343946, 0x0065636f, 0x00efe2f2, 0x00cbb4c5, 0x00472534, 0x000f0b2f, 0x00071544, 0x0007143d, 0x00061434, 0x0003102b, 0x0009112b, 0x00455166, 0x00a7b2c6, 0x00b2bed4, 0x00c0cce4, 0x00c6d1ec,
- 0x00d5dde3, 0x00dae5ed, 0x00e2f2f4, 0x00e7f5f5, 0x00e6eef1, 0x00e9ebec, 0x00f5edf3, 0x00f8ecf2, 0x00f0e7f2, 0x00eae5ec, 0x00dcdde7, 0x00d5dff2, 0x00bfcce8, 0x00bdcbe9, 0x00a6b3d5, 0x00556083,
- 0x00515672, 0x00737599, 0x003c4068, 0x000d1c4a, 0x0017326a, 0x001b3577, 0x00122e6e, 0x000a1f5f, 0x0010184a, 0x0010143d, 0x00070a2d, 0x00050522, 0x000b0b23, 0x000d0e2b, 0x000f1537, 0x00121f41,
- 0x00202934, 0x00273040, 0x002e334a, 0x002a2e48, 0x00202736, 0x0021282c, 0x00232728, 0x00242921, 0x00202122, 0x001d1e29, 0x001f1e2a, 0x001b1c1f, 0x001d1e23, 0x001d1e23, 0x001b1d23, 0x0023232c,
- 0x002f303a, 0x00393942, 0x00414048, 0x00444249, 0x003a3b40, 0x002b3034, 0x001f262a, 0x001b1f25, 0x001d1f20, 0x001d1f20, 0x001b1d1f, 0x001c1e20, 0x0025282c, 0x002a3035, 0x002b3339, 0x00293339,
- 0x0041453d, 0x004e504a, 0x005a5b59, 0x00616163, 0x00696a71, 0x0063656f, 0x004b4e59, 0x00313441, 0x00212531, 0x00212431, 0x00212630, 0x00293032, 0x00433c39, 0x00594740, 0x00664b3f, 0x0060422e,
- 0x004d311a, 0x00402313, 0x0030190c, 0x0027130b, 0x0020090d, 0x00490308, 0x006a0a0e, 0x007c1c22, 0x00812d2c, 0x00853a3d, 0x00824047, 0x0079434e, 0x006c4551, 0x00694852, 0x005c4349, 0x00513d40,
- 0x003d4441, 0x003f4644, 0x003c4242, 0x00383c3e, 0x002d3133, 0x00616466, 0x00dbdcdf, 0x00f9f9fc, 0x00fafdfa, 0x00fbfefd, 0x00fbfdfd, 0x00eeefef, 0x00919296, 0x004e5257, 0x0050555b, 0x004b5459,
- 0x00424e4d, 0x00424849, 0x003f4547, 0x00424949, 0x00464949, 0x0042484b, 0x003b454f, 0x00353d4f, 0x00242d4f, 0x00202549, 0x001f2349, 0x00262649, 0x00272941, 0x002e3242, 0x00373c4c, 0x003a414f,
- 0x003d3f46, 0x0046464e, 0x00484952, 0x00464a54, 0x00474c58, 0x00404554, 0x003e4255, 0x003a3b51, 0x00383a4d, 0x0047465d, 0x00474a5f, 0x00363e51, 0x00282d3f, 0x00212536, 0x00262b35, 0x0033363f,
- 0x003a4040, 0x00434848, 0x004f5252, 0x00585b5a, 0x00616664, 0x006e7372, 0x00828585, 0x0087898a, 0x0083817d, 0x0085827d, 0x008d8985, 0x00938e88, 0x008d867d, 0x008d857a, 0x009b9187, 0x009e9389,
- 0x007b94a4, 0x007b93a7, 0x007c93ac, 0x00829bb5, 0x00b3c9e7, 0x00c0daf8, 0x007d9bc1, 0x006686b8, 0x006da3db, 0x0079b4f2, 0x006f9cd7, 0x006b739b, 0x00776f66, 0x00866f45, 0x00906b2d, 0x00a77730,
- 0x00a2733c, 0x009a6d45, 0x00926848, 0x00855f3d, 0x006c521e, 0x0074532a, 0x00876541, 0x008b6945, 0x00785734, 0x00724e2d, 0x007a5334, 0x00856143, 0x0072563e, 0x0053402e, 0x0031271d, 0x0027241f,
- 0x00202513, 0x00312f19, 0x004d422b, 0x00675440, 0x0075665a, 0x006c6562, 0x006c686e, 0x0072747d, 0x007b7575, 0x00766b67, 0x006d6058, 0x00635950, 0x005c4d44, 0x005b483f, 0x00644e44, 0x0069544a,
- 0x00705a4b, 0x00785b4c, 0x00825d4a, 0x008a5c42, 0x00935b39, 0x00a15635, 0x00a6502e, 0x00a44c24, 0x00a14417, 0x00963d15, 0x008b3917, 0x00783618, 0x00592e1f, 0x00472a1f, 0x003d2c23, 0x00372c29,
- 0x00adaea3, 0x000d0f03, 0x000e0f04, 0x000f1005, 0x0013160b, 0x000f1206, 0x00101206, 0x0014160a, 0x00141507, 0x000e1203, 0x000d1204, 0x000d1202, 0x0014140a, 0x00201c18, 0x001d1717, 0x00211b19,
- 0x002d322c, 0x003c4b4b, 0x00445d6c, 0x00486786, 0x005e82b9, 0x00637fb5, 0x006c7ea9, 0x00888b9a, 0x00826b49, 0x00886c44, 0x009f7e5d, 0x00c3a794, 0x00e7d6da, 0x00eee5e6, 0x00f3f1eb, 0x00ebf2e0,
- 0x00efebf4, 0x00edebf4, 0x00edebf4, 0x00eeebf4, 0x00eeeaf4, 0x00eeeaf2, 0x00eeeaf2, 0x00edebf2, 0x00edebf4, 0x00edeaf2, 0x00eceaf2, 0x00ebecf3, 0x00ebeaf2, 0x00e8e5ee, 0x00e6e4ed, 0x00e8e8ef,
- 0x00eae8f0, 0x00e6e7ed, 0x00ece9f3, 0x00eeebf5, 0x00e9eaf4, 0x00f1dbea, 0x00f9d6e9, 0x00efd7e6, 0x00e7e9ec, 0x00dedbd9, 0x00b8a2a0, 0x009a6763, 0x008e2a26, 0x00952014, 0x00c94837, 0x00d24b36,
- 0x00ad2b0c, 0x00a61f02, 0x00b83117, 0x00c73f27, 0x00cb442e, 0x00ca402e, 0x00c13729, 0x00b82a21, 0x00b92a23, 0x00c4342e, 0x00cc413c, 0x00cc5247, 0x00d05350, 0x00cc5a54, 0x00cf5e5b, 0x00cd6561,
- 0x00d27171, 0x00d57b7c, 0x00d68283, 0x00d07f82, 0x00d88d91, 0x00c9a7a7, 0x00d6cbca, 0x00ddd0d3, 0x00beaeb6, 0x00a4959d, 0x00a89ba0, 0x00c2b7b6, 0x00d4c9c2, 0x00d7cdc1, 0x00e7decc, 0x00f0e7d0,
- 0x00f4d0c6, 0x00dfb5a9, 0x00c6897d, 0x00af6654, 0x00af4a33, 0x00b14025, 0x00bd3b20, 0x00c93b1f, 0x00db3d29, 0x00d63722, 0x00ce2f20, 0x00ca3221, 0x00c2331f, 0x00cd422b, 0x00da503a, 0x00c9442e,
- 0x00a63222, 0x00933328, 0x00954d46, 0x009e756f, 0x00dcd3d1, 0x00e8e6e9, 0x00f8f5fd, 0x00fdfafe, 0x00fefdfb, 0x00fdfdf8, 0x00fefdfa, 0x00f6f9f4, 0x0084888e, 0x00131524, 0x001d1f33, 0x00252843,
- 0x002f2f54, 0x003a385c, 0x00413c60, 0x003a3456, 0x0054506b, 0x009290a3, 0x00e4e3ee, 0x00fefefe, 0x00fdf8ff, 0x00fdfafa, 0x00fbf6f9, 0x00fbf1f7, 0x00f2ebf6, 0x00e2dde6, 0x00ccc8d2, 0x00c5c2c8,
- 0x00b8b1ae, 0x00a09387, 0x008f7967, 0x0084674c, 0x00805a34, 0x007b5530, 0x00744d24, 0x0073461d, 0x00834a1b, 0x008f501d, 0x0096531e, 0x0099571f, 0x009e5d27, 0x009f602b, 0x00995f2c, 0x00966031,
- 0x009d6539, 0x00a16a35, 0x00b37439, 0x00b7792b, 0x00b57e23, 0x00ab7d29, 0x00a37e42, 0x008b7058, 0x00706999, 0x006e6dbc, 0x006268c5, 0x005562b6, 0x004764b1, 0x004970c5, 0x00517fe4, 0x004f88f9,
- 0x005187fd, 0x005e8efa, 0x005783ea, 0x0086abe2, 0x00defcf8, 0x00f6fefc, 0x00fefffd, 0x00fefdfc, 0x00fffefe, 0x00fffefe, 0x00fffeff, 0x00fefefe, 0x00fdfefd, 0x00fdfefe, 0x00fefffe, 0x00fefefe,
- 0x00f9fdfa, 0x00f8fef9, 0x00fafffa, 0x00fdfffb, 0x00fdfffa, 0x00fffdfa, 0x00fbf6f4, 0x00faf4f3, 0x00d3c6c6, 0x0086797a, 0x00584644, 0x00674c43, 0x006e524c, 0x006b5050, 0x00675057, 0x0067545e,
- 0x00635c6a, 0x00656071, 0x00646275, 0x00616177, 0x0062647d, 0x00606380, 0x005d6180, 0x00585e7e, 0x004f5581, 0x00464e7b, 0x003e4677, 0x00384074, 0x00363d74, 0x003a3d77, 0x0043427b, 0x0047467d,
- 0x004d4c75, 0x004f5077, 0x00535579, 0x00535576, 0x004f5270, 0x004a4e69, 0x00444862, 0x003c425b, 0x003e3c5e, 0x00353755, 0x002e3158, 0x002a2d5d, 0x002a2e53, 0x0054566f, 0x00d1d3e1, 0x00f5f9f8,
- 0x00fdfef7, 0x00fdfef7, 0x00fcfdf6, 0x00f1f4f0, 0x00707375, 0x000d1112, 0x000b0f11, 0x0011161a, 0x00181e1c, 0x001a241f, 0x00192522, 0x001d2826, 0x00232a2d, 0x0024262f, 0x0024232e, 0x0021212d,
- 0x00282a2b, 0x002c2e2f, 0x00323436, 0x002f3232, 0x002d2e2f, 0x0030312d, 0x003a3932, 0x003f382d, 0x003c2e22, 0x00403422, 0x00896a4b, 0x00c0834c, 0x00ae7953, 0x00b68c71, 0x00eccbc0, 0x00fde8e8,
- 0x00f3e8ed, 0x00f0e5e7, 0x00c4b9ba, 0x00998e86, 0x00736054, 0x006a4c2f, 0x00684526, 0x006b4b2e, 0x007a604a, 0x00927e6c, 0x00b3a497, 0x00d5ccc7, 0x00f2eef1, 0x00f1eff8, 0x00f4f5ff, 0x00eef2fd,
- 0x00ede7e5, 0x00e9eaf1, 0x00d7ddf6, 0x00929fcf, 0x004d5ebf, 0x004659c0, 0x003f53b9, 0x003447a3, 0x00283586, 0x002d3486, 0x00787ab8, 0x00bdb8cd, 0x00b5abbd, 0x00aaa2b1, 0x00928a94, 0x00504547,
- 0x001a0f0e, 0x001b100d, 0x0020130f, 0x00231716, 0x00241815, 0x00291a19, 0x00312223, 0x00372d2c, 0x00383730, 0x00363c32, 0x00353f33, 0x002b3b2b, 0x00485549, 0x009ba199, 0x00f5f9f5, 0x00fcfefc,
- 0x00f1fcf8, 0x00f8fcfa, 0x00fef8f1, 0x00d9c8b9, 0x0099775c, 0x008f6749, 0x008e6343, 0x008b6141, 0x00845b40, 0x00775239, 0x00674732, 0x00563e2d, 0x0050372f, 0x00432b28, 0x00331c1b, 0x00301d1f,
- 0x002a1c1c, 0x00160e0d, 0x000f0708, 0x000d0e07, 0x00040901, 0x00000906, 0x0000060b, 0x0001020f, 0x00110028, 0x00190c3e, 0x00201b5a, 0x001d2b72, 0x001d378f, 0x00263da1, 0x002b39a7, 0x002f32ab,
- 0x00262a89, 0x0026287a, 0x00262967, 0x0023254d, 0x00181720, 0x0019160e, 0x00170f05, 0x00312414, 0x003d2826, 0x00291416, 0x00271213, 0x0020150c, 0x002a1607, 0x002e1803, 0x00472b12, 0x00684e34,
- 0x00574535, 0x00463b3c, 0x00636073, 0x0053587c, 0x002b3a72, 0x00102873, 0x000b257d, 0x0009247e, 0x000e2781, 0x0015338a, 0x001f4099, 0x001a439d, 0x001e4bae, 0x002054be, 0x001b50c2, 0x00275dd2,
- 0x002967c6, 0x002b69c4, 0x003674ce, 0x003b79d4, 0x005292e7, 0x006aa9f8, 0x0082c0ff, 0x007eb7fb, 0x00558bd9, 0x003c70bc, 0x006797d5, 0x0096c3e1, 0x00c6dff3, 0x00d8e3f1, 0x00d6d6ec, 0x00cecce1,
- 0x00a0a4c5, 0x007e8bac, 0x0060728d, 0x0051677b, 0x004a5c6a, 0x00425b73, 0x00354862, 0x00242f3c, 0x002c2321, 0x002b2117, 0x001c1109, 0x00120c06, 0x0027242c, 0x0096939a, 0x00fef8ff, 0x00fff9ff,
- 0x00f8fcfd, 0x00f4fbf8, 0x00f9fcfa, 0x00b2b5ad, 0x00484b43, 0x008d9085, 0x00f3f6ef, 0x00f9f8f4, 0x00fefbfd, 0x00fbf8fa, 0x00fefbff, 0x00fcfafe, 0x00fdfafe, 0x00fdfafe, 0x00fefbff, 0x00fcf9fe,
- 0x00f9f8f9, 0x00fcfbfc, 0x00fbf7fa, 0x00fcf9fa, 0x00faf8fc, 0x00f7b68f, 0x00d95e2d, 0x00dd8869, 0x00f7e5e6, 0x00f6f8fa, 0x00fbfbf7, 0x00fbf5e6, 0x00fef3d7, 0x00f6e1ca, 0x00f9dbcf, 0x00fce7e3,
- 0x00effdff, 0x00f1f1e9, 0x00fae5cf, 0x00f8d9b6, 0x00fae0ca, 0x00f5f4ed, 0x00f2fdfe, 0x00e9fbfe, 0x00fbedf3, 0x00f8dcd0, 0x00fee8d4, 0x00f9f9e6, 0x00fffbf1, 0x00f7f9f8, 0x00fafbfe, 0x00fdfdfe,
- 0x00faf1fb, 0x00f4ebed, 0x00c7c6b9, 0x00839072, 0x006a8554, 0x00829058, 0x00828c53, 0x006d7b45, 0x004a6036, 0x00374f31, 0x00334b3c, 0x003b524c, 0x00485a57, 0x00546452, 0x005f6d4f, 0x006e7a52,
- 0x007d8a68, 0x0084926f, 0x00849170, 0x00839070, 0x00808d6d, 0x007e8a6d, 0x007b866e, 0x007d8771, 0x007d877b, 0x007f887d, 0x007b8576, 0x00777f68, 0x00707669, 0x006c6d66, 0x00666760, 0x00646459,
- 0x005a5b3f, 0x00535434, 0x00504f2e, 0x00555036, 0x00615a4c, 0x005d5b52, 0x0051514b, 0x0043423f, 0x002a2523, 0x00221a18, 0x003a3530, 0x006b655d, 0x00a3a094, 0x00928e82, 0x00716f61, 0x00666152,
- 0x00869083, 0x00aaa58c, 0x00a28b68, 0x00a27747, 0x00b77e45, 0x00af7c42, 0x008b5d2a, 0x006e481a, 0x00614418, 0x006d5026, 0x00876b3c, 0x00957840, 0x00a7843e, 0x00b28539, 0x00b17e30, 0x009b681b,
- 0x00875a28, 0x00a37f5a, 0x00aa947d, 0x008b8370, 0x00697063, 0x005e5a3b, 0x00464221, 0x00352f15, 0x00241e11, 0x001c180e, 0x00201e1a, 0x002c2926, 0x003f3931, 0x00433b2e, 0x003f3626, 0x00332b16,
- 0x0023221c, 0x00706f68, 0x00f4f3ec, 0x00fdfcf8, 0x00fefcfd, 0x00f9f8f9, 0x00fdfdfd, 0x00d4d5d6, 0x006d7076, 0x0055585e, 0x006a6771, 0x00756873, 0x0077727d, 0x00717279, 0x0060696e, 0x00525e63,
- 0x00434c52, 0x006f6e79, 0x00ecddef, 0x00c7afc5, 0x004f2d45, 0x0010103b, 0x00021044, 0x00020739, 0x0003082e, 0x00000724, 0x00191c36, 0x005d6377, 0x00b3b5c8, 0x00afb5c6, 0x00bbc1d2, 0x00c9d0e3,
- 0x00d5d7df, 0x00cfdeed, 0x00c4ddf0, 0x00c1ddf6, 0x00d4e5f5, 0x00d1d1d8, 0x00dfd5db, 0x00f2e3e7, 0x00ede5fc, 0x00dbe0fa, 0x00d2dffb, 0x00cad5f5, 0x0097aedf, 0x007d9acf, 0x006e89c2, 0x004b6295,
- 0x0062678a, 0x00565677, 0x00141439, 0x0006123a, 0x0011326d, 0x001b2d69, 0x0014296c, 0x00032572, 0x00012b7a, 0x0001215f, 0x0012244c, 0x00252737, 0x00281012, 0x00210f1a, 0x0031273c, 0x00353a5c,
- 0x00333d45, 0x00323c43, 0x00303840, 0x0029313a, 0x00222a33, 0x00232a31, 0x0021252c, 0x00212529, 0x0022252a, 0x001e2325, 0x00222729, 0x00212726, 0x00242830, 0x00262932, 0x00242836, 0x00282d3b,
- 0x002f3041, 0x00363745, 0x003b3d47, 0x00393c43, 0x00323439, 0x00282c2d, 0x001f2524, 0x001e2323, 0x001f2325, 0x001f2325, 0x001c2023, 0x001a1e21, 0x00202529, 0x00262c2f, 0x00272f31, 0x00262e30,
- 0x003b3934, 0x00474642, 0x004e4b49, 0x00535151, 0x005d5b5d, 0x0056565a, 0x003d4044, 0x0025292f, 0x001b2127, 0x00191f26, 0x00192127, 0x00172423, 0x002c2f2b, 0x003a3932, 0x00433a31, 0x00413629,
- 0x00442f21, 0x003f261c, 0x003e2018, 0x00331410, 0x00330d11, 0x005b070b, 0x007d1418, 0x00791c22, 0x0069232f, 0x00662b3a, 0x00602b3d, 0x005f2b3e, 0x00592d3d, 0x005d373f, 0x00503737, 0x004b3a35,
- 0x0049524d, 0x004e5652, 0x00434b48, 0x00313937, 0x00252b2b, 0x004f5456, 0x00cacdcf, 0x00f6f8fa, 0x00fefefe, 0x00fbfbfd, 0x00fcfbfd, 0x00f7f4f7, 0x009d9ca1, 0x004c5058, 0x00535c62, 0x00556264,
- 0x00536268, 0x00525f63, 0x00596064, 0x005b6263, 0x005d5e5e, 0x00545c59, 0x00475658, 0x00394a57, 0x0029375b, 0x00232c50, 0x001f2449, 0x00272345, 0x002c273e, 0x00313142, 0x00333748, 0x00313d4c,
- 0x003d4544, 0x003f4747, 0x00464e50, 0x00454e51, 0x00495057, 0x00474c54, 0x004e5059, 0x005f5e68, 0x008f8895, 0x00ada6b1, 0x00b4afb9, 0x00a0a2a6, 0x0082858a, 0x00727378, 0x007c7e82, 0x008a8f8f,
- 0x00919297, 0x0095969a, 0x00999b9e, 0x009d9fa1, 0x00a7a9ac, 0x00b5b7ba, 0x00c8cacd, 0x00cfd1d3, 0x00c7c8ca, 0x00c4c6c8, 0x00d0d3d5, 0x00d7dbdc, 0x00d1d3d4, 0x00d1d2d3, 0x00dedfe0, 0x00d5d6d8,
- 0x0083b3ee, 0x00679bd5, 0x005b8fca, 0x006093cb, 0x008fb9e8, 0x00a2c5ef, 0x007d9ccc, 0x005d7cb7, 0x00507fcc, 0x005189de, 0x003d6bbf, 0x004a58a1, 0x00676672, 0x007b6c4a, 0x00886928, 0x00a27425,
- 0x00ac6d39, 0x009f6844, 0x009f7254, 0x008d6d4a, 0x00766a34, 0x007b623b, 0x00826142, 0x00836043, 0x007a553b, 0x006c472d, 0x00623e24, 0x005e3f23, 0x00583b24, 0x00513620, 0x00462d1a, 0x00412918,
- 0x003d3116, 0x00453c20, 0x00564b34, 0x00625446, 0x006c5e56, 0x006e615f, 0x006b6060, 0x00706664, 0x00756d6c, 0x006b6562, 0x00635954, 0x0060574a, 0x005a4d48, 0x00574d46, 0x005f544f, 0x00645b54,
- 0x00705e53, 0x00796150, 0x0083614d, 0x008b6046, 0x00936041, 0x009e5b40, 0x00a25337, 0x00a24d29, 0x00a4451c, 0x00953e17, 0x00853816, 0x006f3619, 0x00502e21, 0x00412c21, 0x00392d21, 0x00352d21,
- 0x00aeb0a3, 0x000e1004, 0x000f1005, 0x000c0f04, 0x0012150b, 0x0012150b, 0x0015170d, 0x00111208, 0x000f1103, 0x00101308, 0x000c1003, 0x00131605, 0x0017160e, 0x001c1813, 0x00191411, 0x003b3636,
- 0x00838986, 0x008b989e, 0x00738a9a, 0x006c88a8, 0x004f71aa, 0x004c69a5, 0x005e76ad, 0x00919ab4, 0x00847263, 0x007a624c, 0x00b09480, 0x00dfc7c0, 0x00faecf9, 0x00f3edf6, 0x00ededf2, 0x00e7eee8,
- 0x00eceaf2, 0x00ebebf2, 0x00ebebf3, 0x00ececf4, 0x00efecf4, 0x00eeebf4, 0x00edebf3, 0x00edebf3, 0x00ecebf3, 0x00eeebf3, 0x00ebeaf2, 0x00e9e9f0, 0x00e9e9f1, 0x00e8e6ee, 0x00e7e4ed, 0x00e8e7ee,
- 0x00ebe8f0, 0x00e7e6ef, 0x00e8e8ef, 0x00eceaf3, 0x00e8e7ed, 0x00e1e9ee, 0x00dce4e7, 0x00e1e5e7, 0x00eed7d6, 0x00d2999c, 0x009a4548, 0x00a62f33, 0x00b62326, 0x00b52c23, 0x00d1513f, 0x00be4a31,
- 0x00a32c23, 0x00962015, 0x00a63228, 0x00bc4b43, 0x00b75046, 0x00b24c45, 0x00ac4945, 0x00a64741, 0x00a84e49, 0x00c16462, 0x00cc897f, 0x00c7a995, 0x00cfb09e, 0x00d1b7a7, 0x00d5c0af, 0x00d8c9b8,
- 0x00dfd7c8, 0x00d3d0c2, 0x00b5b6a9, 0x00abafa1, 0x00b8c3b1, 0x00d6d2ca, 0x00e9e0de, 0x00f1e8e7, 0x00e9dfe4, 0x00dfd3da, 0x00daced3, 0x00d1c7c9, 0x00c4bab6, 0x00c6beb5, 0x00dcd6c4, 0x00e3ddc8,
- 0x00f0e1e1, 0x00fbebe9, 0x00dbbcb6, 0x00b88c81, 0x00c58473, 0x00d38373, 0x00c26657, 0x00af473a, 0x00ab3b30, 0x00b44236, 0x00c7483d, 0x00db4637, 0x00db4737, 0x00e4513f, 0x00e44f3d, 0x00ce382a,
- 0x00bc261e, 0x00b02526, 0x00891013, 0x00943039, 0x00dc99a0, 0x00f2dce3, 0x00f7f6fb, 0x00fdfefe, 0x00fdfffa, 0x00fcfef7, 0x00fdfefb, 0x00f5faf5, 0x00868a8e, 0x00161826, 0x00222536, 0x002c2e47,
- 0x003f3e60, 0x00424061, 0x00494664, 0x00423f5b, 0x0088869b, 0x00dedee7, 0x00fbfbff, 0x00fbfbfe, 0x00fbf8fb, 0x00faf6f5, 0x00faf3f5, 0x00fbedf5, 0x00ece4ea, 0x00dcd7de, 0x00cbc7d1, 0x00c2c2ca,
- 0x00c3c0bc, 0x00c8bfb8, 0x00b5a394, 0x00927963, 0x007b5b3c, 0x00785539, 0x00764e31, 0x0075482b, 0x00814824, 0x008f4e26, 0x009a5322, 0x00a15924, 0x00a75f1f, 0x00a6621d, 0x00a06016, 0x009d6015,
- 0x00ad5b3d, 0x00b06823, 0x00b97611, 0x00be7f03, 0x00b48228, 0x00ad795f, 0x00a2778a, 0x007a5a93, 0x007876a4, 0x009ba5b9, 0x0096a5ba, 0x008e99c4, 0x008199c1, 0x0080a0cf, 0x00729cd7, 0x005787d9,
- 0x005381f7, 0x005e84f4, 0x00698ae3, 0x00a0bbf0, 0x00e9fcfc, 0x00f9feff, 0x00fdfefb, 0x00fdfefb, 0x00feffff, 0x00fdfefe, 0x00fefefe, 0x00feffff, 0x00feffff, 0x00fdfdfd, 0x00fefdfe, 0x00ffffff,
- 0x00f8fffc, 0x00f9fffb, 0x00fafefa, 0x00fefffb, 0x00fefef9, 0x00fdfbf8, 0x00fcfaf8, 0x00fffdfb, 0x00efe9e6, 0x00a79d9d, 0x00544544, 0x00604742, 0x00644b49, 0x005f4649, 0x00615057, 0x005e505b,
- 0x00655d6e, 0x00656175, 0x00656379, 0x00636379, 0x0063657f, 0x00616581, 0x005e6281, 0x00585e7f, 0x004e567f, 0x00474f7a, 0x003f4777, 0x00384073, 0x00363c74, 0x003a3c76, 0x0042417b, 0x0047457c,
- 0x004d4d75, 0x00505076, 0x00515376, 0x00505372, 0x004e506d, 0x004a4d68, 0x00454863, 0x0040445f, 0x003e3f5e, 0x00383a5a, 0x002f3359, 0x002d3164, 0x002c2f55, 0x005f607c, 0x00e6e7f5, 0x00fbfcfd,
- 0x00fdfef7, 0x00fefff9, 0x00fcfef7, 0x00dee3de, 0x00525758, 0x00080a0d, 0x00080b0d, 0x000c1016, 0x00121719, 0x00151d20, 0x00182222, 0x001e2529, 0x001f2222, 0x00221f20, 0x00221d1d, 0x00201b1a,
- 0x002c2a1c, 0x00302d25, 0x00333328, 0x0031312b, 0x00312f27, 0x0034322b, 0x00403e34, 0x003f392e, 0x002e271a, 0x00302115, 0x00745841, 0x00ae6d48, 0x00a36e53, 0x00d5aa9c, 0x00fce3de, 0x00f7e2e9,
- 0x00ede4f1, 0x00f6edf7, 0x00f3ebf2, 0x00e1d8db, 0x00b4a6a4, 0x008f7771, 0x00684b45, 0x006e534e, 0x009b8281, 0x00c0abaa, 0x00efe1e1, 0x00fcf3f7, 0x00f7f2f6, 0x00f1eff7, 0x00f5f8ff, 0x00ecf1f9,
- 0x00efebed, 0x00edeffb, 0x00c4cae7, 0x007884ba, 0x00485ab3, 0x00485bbf, 0x004256bc, 0x00394cab, 0x00283884, 0x002b3684, 0x007d81bb, 0x00d0c7e1, 0x00c8c1d3, 0x00b6aebd, 0x006d666d, 0x002c2528,
- 0x001e1916, 0x0026201c, 0x002f2923, 0x002e2b27, 0x002c2823, 0x002c2524, 0x00332c2d, 0x00363433, 0x00383c34, 0x00363d34, 0x00343e35, 0x002b372c, 0x004e5851, 0x00adb2ad, 0x00fafcfa, 0x00fbfdfb,
- 0x00f7fefd, 0x00fcfdfb, 0x00f9f1e8, 0x00cdbbaa, 0x008e6a4d, 0x008d6243, 0x008e6041, 0x00895b3e, 0x0081563b, 0x00744c34, 0x0063442c, 0x004f3a27, 0x00442e21, 0x003b241d, 0x00341f19, 0x00372523,
- 0x002b2323, 0x00160e11, 0x00010100, 0x00020501, 0x00000600, 0x00010900, 0x00010700, 0x00040300, 0x00130003, 0x0017040d, 0x00120811, 0x000a0f1b, 0x000a1c2b, 0x00111f35, 0x00101731, 0x000f0b2f,
- 0x00070a37, 0x0005062c, 0x00070a20, 0x000b0e19, 0x00100e05, 0x00140e02, 0x00170c02, 0x00322218, 0x005b4544, 0x004b3339, 0x00260f12, 0x00211112, 0x002a1210, 0x002c140b, 0x004e3127, 0x00785d50,
- 0x00635050, 0x00312536, 0x00373554, 0x00333d70, 0x00213275, 0x0012287c, 0x000c277d, 0x00092379, 0x00082378, 0x000c277d, 0x00123288, 0x00143991, 0x001744a7, 0x001a4cb4, 0x00154ab9, 0x002155c8,
- 0x001c58ba, 0x002863c7, 0x002e6bc7, 0x002f6ccc, 0x003f7ed6, 0x00518fe5, 0x00609df1, 0x0074b1fc, 0x006597e9, 0x003d71c6, 0x006993d3, 0x00c5def3, 0x00edf4fb, 0x00eee7ef, 0x00d7c7cf, 0x00ddcdd9,
- 0x00eeecfe, 0x00dee8ff, 0x00abc4e9, 0x007fa0cc, 0x00668bb6, 0x00658bc0, 0x006887b7, 0x0048597d, 0x00232631, 0x001e1e20, 0x00171619, 0x00080a0c, 0x003a4547, 0x00b8c2c0, 0x00f8fdfa, 0x00fbfcf8,
- 0x00f9fdfc, 0x00f6f9f8, 0x00edf0ed, 0x00959693, 0x0075776e, 0x00d3d6ce, 0x00fbfdf6, 0x00f7f8f2, 0x00fefcfd, 0x00fbf8fa, 0x00fefafe, 0x00fefaff, 0x00fefafe, 0x00fdfafe, 0x00fefaff, 0x00fdfaff,
- 0x00fbf7fa, 0x00fcfcff, 0x00faf8fb, 0x00fdfafc, 0x00f9f4f8, 0x00f7b390, 0x00d16436, 0x00e59a81, 0x00faeef1, 0x00f6f6fc, 0x00fdfbf5, 0x00efe8d8, 0x00e7c8af, 0x00ddbaa5, 0x00edc7b7, 0x00fbe4dc,
- 0x00f5fdfe, 0x00fdf6ec, 0x00f6d7bd, 0x00f2c09a, 0x00fde1c4, 0x00fff6ee, 0x00f9fcfd, 0x00f2f6fc, 0x00f7e2dd, 0x00f5c1ae, 0x00fcd0b6, 0x00f6dfca, 0x00f1e5d8, 0x00f9f2ed, 0x00fcfcfc, 0x00f8fafa,
- 0x00fffafc, 0x00fff9fa, 0x00f9faf0, 0x00d7d9c3, 0x0096aa81, 0x0096a270, 0x00929a62, 0x00738048, 0x003c5024, 0x001e3416, 0x00122916, 0x00172c27, 0x0021322a, 0x002c3d28, 0x00455331, 0x00657245,
- 0x00838f63, 0x008e9a70, 0x00929e76, 0x0093a077, 0x008f9b74, 0x008a9571, 0x00899373, 0x008b9377, 0x008b957b, 0x008e977e, 0x008a947a, 0x00899574, 0x00858d79, 0x0083887b, 0x0081857a, 0x00818575,
- 0x007e8265, 0x007a7d5c, 0x00757757, 0x0078775d, 0x00757061, 0x006d6d5b, 0x005c5e4b, 0x00565544, 0x00403c33, 0x003c352f, 0x00574f4c, 0x00776e6c, 0x00b6b0af, 0x00ada6a7, 0x00888383, 0x007e7876,
- 0x0072796a, 0x00a59f85, 0x00b9a87f, 0x00a5824c, 0x00b0803e, 0x00b48548, 0x009d6f36, 0x007a5222, 0x00573311, 0x00563316, 0x006b4a29, 0x007f5d3d, 0x009b7745, 0x00a88148, 0x00a98043, 0x00a17a3c,
- 0x00a98757, 0x00b0936d, 0x008d7d59, 0x00756d47, 0x0063673f, 0x005d5531, 0x004c4122, 0x003d3216, 0x00241d0d, 0x0019150a, 0x001d1a14, 0x00312d28, 0x00453e37, 0x004b4236, 0x00483d30, 0x0039301e,
- 0x0025231c, 0x0063615a, 0x00e3e1d9, 0x00faf9f4, 0x00fffeff, 0x00fcfcfd, 0x00ffffff, 0x00e2e3e4, 0x00838489, 0x005f6168, 0x006c6d73, 0x00756b77, 0x0075747c, 0x0072747c, 0x00636d71, 0x00576268,
- 0x00545d64, 0x007c7985, 0x00e7daea, 0x00cdb4c9, 0x00513046, 0x00170e35, 0x00020934, 0x00000028, 0x00080a2d, 0x000c0e2d, 0x0024243f, 0x006e6d87, 0x00b7b7d0, 0x00b4b5cc, 0x00b1b5cb, 0x00c4c9e0,
- 0x00ccc4f8, 0x009d9edd, 0x007d89c9, 0x008ea4e2, 0x00a4b9e6, 0x00a2afcf, 0x00bbc5d5, 0x00dce2ed, 0x00d0e7f7, 0x00a9c9e7, 0x0099badc, 0x00a5b2db, 0x006880b5, 0x00506ca5, 0x005672a9, 0x007088b6,
- 0x0066688b, 0x00535371, 0x00121333, 0x00030a31, 0x00092659, 0x00132153, 0x00121f58, 0x000c2668, 0x00072c71, 0x00192e68, 0x0060628b, 0x00786679, 0x00482126, 0x002e131f, 0x004b3c4f, 0x0049496a,
- 0x00394650, 0x0037424d, 0x00323b44, 0x002d353f, 0x00262c36, 0x00242a31, 0x001e2328, 0x00212628, 0x0025272f, 0x00282b2f, 0x00313737, 0x00383d3e, 0x003d4046, 0x003c3e49, 0x00383b48, 0x00393c4b,
- 0x00323545, 0x00353844, 0x00373b44, 0x0034393f, 0x002e3134, 0x00282b2c, 0x00222526, 0x001f2324, 0x001f2325, 0x00202527, 0x001f2326, 0x001d2124, 0x00212528, 0x0025292d, 0x00292e31, 0x00282d30,
- 0x00303030, 0x003b3c3c, 0x003b3c3c, 0x003f4040, 0x00424143, 0x003b3b3f, 0x0028292e, 0x00191b21, 0x0015191f, 0x00181922, 0x00151920, 0x0013191a, 0x00181b18, 0x00201e19, 0x0028231a, 0x00292217,
- 0x0038291f, 0x003d2a25, 0x003e2a23, 0x00351c1d, 0x00321818, 0x00631418, 0x007e2222, 0x006b1e21, 0x0049161c, 0x00411b25, 0x00361825, 0x00361a29, 0x002e1825, 0x00311e26, 0x002f2425, 0x00403b36,
- 0x006c7579, 0x007f888b, 0x00666e71, 0x003f474b, 0x001f252a, 0x003c4145, 0x00b5b9bd, 0x00f3f6f8, 0x00fefcfd, 0x00fdfdfe, 0x00fcfdfc, 0x00f9fcf8, 0x00a6aba3, 0x00555b57, 0x00585f5b, 0x00686d67,
- 0x00757774, 0x00767476, 0x00777477, 0x00797178, 0x00756d77, 0x006b656d, 0x00585a66, 0x00474b62, 0x00303954, 0x00292a46, 0x00232038, 0x002f2036, 0x00392734, 0x003b2d38, 0x003e353f, 0x0043414c,
- 0x00504739, 0x0050493c, 0x00554e43, 0x00524e46, 0x004f4e4d, 0x00505052, 0x007f7f84, 0x00b5b6bd, 0x00e5e4f1, 0x00f2f2fe, 0x00f6f4ff, 0x00f6f5fa, 0x00e6e8ed, 0x00e4e4e8, 0x00e8e8ec, 0x00edf3f2,
- 0x00f1f2f5, 0x00f3f4f7, 0x00f3f4f7, 0x00f1f3f6, 0x00f5f6fa, 0x00f8fafd, 0x00f9fcfd, 0x00fcffff, 0x00fdfeff, 0x00fbfdff, 0x00f8fafc, 0x00f8fbfc, 0x00f9fbfd, 0x00f7f8f9, 0x00fafcfd, 0x00f0f2f5,
- 0x0092c6eb, 0x006095cb, 0x004f83c7, 0x004d7dd0, 0x005f89c5, 0x00799eca, 0x007ea0c0, 0x00557999, 0x003b6cb0, 0x002a60bf, 0x001c4db0, 0x002d47a0, 0x0048537b, 0x00635d60, 0x007d654c, 0x00977041,
- 0x00a77045, 0x00a87251, 0x00a77857, 0x009e7755, 0x00987d52, 0x00967959, 0x00846749, 0x00775d3f, 0x0076583f, 0x006b4d37, 0x00553822, 0x00402815, 0x0035200e, 0x003b2a1a, 0x00493b2b, 0x004e4233,
- 0x0052452a, 0x00554a30, 0x00584b34, 0x005a4d40, 0x00605348, 0x00645652, 0x00605655, 0x00655a58, 0x00675e5d, 0x00625857, 0x0059514c, 0x005e5145, 0x00584d48, 0x005c504b, 0x00615a54, 0x006a615b,
- 0x00736259, 0x007f6557, 0x00886552, 0x008e634b, 0x00966446, 0x00a05e42, 0x00a25537, 0x00a44e2a, 0x00a4461c, 0x00964118, 0x00843a16, 0x006d3618, 0x004f2f20, 0x00432d20, 0x003b2d1e, 0x00392d1e,
- 0x00b1afa7, 0x000e0e04, 0x000e1005, 0x000d1004, 0x0013150a, 0x00111409, 0x0013150b, 0x000f1208, 0x0013150d, 0x0014160a, 0x000b0c02, 0x000d0d02, 0x00100f07, 0x00120f0b, 0x003a3536, 0x008c8686,
- 0x00dcdddd, 0x00c2ced6, 0x008b9db1, 0x00758eb3, 0x0045629d, 0x004d6db1, 0x005b76b3, 0x007d89af, 0x00897d7d, 0x0093837b, 0x00dbc6c1, 0x00eedce1, 0x00f2e9fd, 0x00eae8f6, 0x00e9eaf7, 0x00e9edf1,
- 0x00efeaf4, 0x00eeeaf4, 0x00edebf3, 0x00edeaf3, 0x00edebf3, 0x00eeebf3, 0x00edebf3, 0x00ecebf2, 0x00efebf4, 0x00edeaf3, 0x00ebe8f1, 0x00e9e7f0, 0x00e8e8ef, 0x00e6e5ec, 0x00e4e3eb, 0x00e5e4ec,
- 0x00eae8f4, 0x00e7e7ee, 0x00e8e6ef, 0x00e7e7ed, 0x00e7e5f0, 0x00d3e8ed, 0x00d0e2e6, 0x00e3e7e6, 0x00dfb1b0, 0x00bc615f, 0x00b33333, 0x00cc2c2c, 0x00ce2220, 0x00cc3028, 0x00dc5142, 0x00c44937,
- 0x0091313b, 0x00993e43, 0x00c16c72, 0x00e0959b, 0x00e29da3, 0x00d09598, 0x00cf9ea0, 0x00d2a7a8, 0x00d3afb2, 0x00d9bbbb, 0x00e6d0d1, 0x00ede1de, 0x00f1e5e3, 0x00eae3de, 0x00e8e2de, 0x00e4e6dd,
- 0x00d2d7d0, 0x00bdc6bf, 0x009aa49e, 0x007d8d87, 0x00647369, 0x006a6c68, 0x007e7878, 0x008f898a, 0x00a39ca2, 0x00bab3b7, 0x00e0d8da, 0x00ebe3e4, 0x00cdc8c3, 0x00bab5ad, 0x00c2bdb0, 0x00d0cabd,
- 0x00d2d5d5, 0x00c2c3c2, 0x00b6aeac, 0x00cdb8b6, 0x00eed2ca, 0x00f9d4cf, 0x00e9bab6, 0x00cf9993, 0x00b27572, 0x00a46560, 0x00ab5d56, 0x00c5584b, 0x00cb5f4d, 0x00d36050, 0x00d05747, 0x00bf3e2e,
- 0x00bd2b2a, 0x00a92021, 0x009c1b22, 0x0098262e, 0x00cd727b, 0x00f1d4d9, 0x00f7f6fb, 0x00fcfdfe, 0x00fffffc, 0x00fdfff8, 0x00fdfefd, 0x00f5f9f6, 0x0086898e, 0x00181927, 0x00262939, 0x0033364b,
- 0x00494865, 0x004f4f69, 0x004c4c62, 0x00636277, 0x00c5c3d2, 0x00f8f6fc, 0x00fbf8fc, 0x00faf6fb, 0x00faf6f6, 0x00f6f0ee, 0x00f8f0f1, 0x00f9ecef, 0x00e9e1ea, 0x00d8d4da, 0x00c8c5cd, 0x00c1c3c8,
- 0x00c3bfc1, 0x00c4c0bc, 0x00b1a5a2, 0x00948676, 0x00796652, 0x00775c46, 0x007c5742, 0x00744e36, 0x00783f2b, 0x00814225, 0x00914c2c, 0x009a5227, 0x00a55d20, 0x00a55f13, 0x00a35f0b, 0x00a56205,
- 0x00b4562e, 0x00b46214, 0x00bb7411, 0x00ba8311, 0x00b0804c, 0x00a47888, 0x0084609f, 0x00775db7, 0x00908eb1, 0x009ead9b, 0x009eaf98, 0x00b8bcc9, 0x00d2e2e5, 0x00d1eaf3, 0x00b1d4e7, 0x008ab2db,
- 0x007294e1, 0x006584d0, 0x007a90d7, 0x00b8caed, 0x00f6fcff, 0x00f9fbfc, 0x00fffefe, 0x00fffffc, 0x00ffffff, 0x00fffeff, 0x00fffeff, 0x00fefefe, 0x00fefefe, 0x00fefefe, 0x00fdfefd, 0x00fcfdfc,
- 0x00f9fefb, 0x00f9fffc, 0x00fbfffc, 0x00fdfffb, 0x00fffefd, 0x00fffbfa, 0x00fffbfa, 0x00fcfafa, 0x00fdf9fc, 0x00dcd5d5, 0x00948787, 0x00675050, 0x00523e41, 0x005f4c51, 0x005c4f56, 0x00564d54,
- 0x00625b6e, 0x00625e74, 0x0062617a, 0x0061627d, 0x00616581, 0x00606581, 0x005e6382, 0x005a6083, 0x00525882, 0x0049527e, 0x00414b7a, 0x003a4375, 0x00383e72, 0x003a3d74, 0x00414179, 0x0045457d,
- 0x004d4e77, 0x004d4e76, 0x004e4f74, 0x004e506f, 0x004b4f69, 0x00484c64, 0x00454861, 0x00424560, 0x003f4260, 0x00393b5a, 0x0031355e, 0x002c3261, 0x002c3157, 0x006e7188, 0x00f3f3fd, 0x00fefbfe,
- 0x00fcfcf9, 0x00fefdfa, 0x00fdfdf8, 0x00ccd0ce, 0x003b4042, 0x00040708, 0x00060a0a, 0x00090f13, 0x0010141f, 0x00151a24, 0x00191c2a, 0x001b1c24, 0x001b1815, 0x00211a0e, 0x002d2311, 0x00362c14,
- 0x00433722, 0x00413822, 0x003a341f, 0x00322e1c, 0x00302c1f, 0x00363327, 0x00424237, 0x003d3b31, 0x002d241a, 0x0022180f, 0x005e4135, 0x009d5d43, 0x00aa766c, 0x00e2b8b5, 0x00f5d8de, 0x00e8d8e5,
- 0x00e7def3, 0x00dcd5ea, 0x00d6cedd, 0x00d5cbd7, 0x00d4c9ce, 0x00c2b1bf, 0x00907d8d, 0x007f6e7e, 0x00a999a8, 0x00d9ccd6, 0x00f7ecf4, 0x00f8eff8, 0x00f4eff3, 0x00f2f0f4, 0x00f5f5f7, 0x00f2f6f3,
- 0x00f2edf2, 0x00edeefc, 0x00b2b5e1, 0x006a74b2, 0x004759ae, 0x00495dbd, 0x004559bd, 0x004254b7, 0x00323c91, 0x00303c85, 0x008a8ac2, 0x00cec2d9, 0x00d2c8db, 0x00ada6b0, 0x004f474f, 0x00282727,
- 0x00272825, 0x002a2c27, 0x002a2c27, 0x00292e27, 0x00252b23, 0x00292c2b, 0x002a2c2c, 0x002a312d, 0x002a342e, 0x0027332a, 0x00273228, 0x001e291e, 0x004e564f, 0x00b9bdba, 0x00f9fbfb, 0x00fefcfe,
- 0x00fdfbfe, 0x00fefefa, 0x00f7ebe1, 0x00c1ac9c, 0x00866246, 0x008c6041, 0x008b5d3d, 0x00885a3b, 0x007e5338, 0x00714830, 0x00613e28, 0x004f3524, 0x0043291c, 0x003d261c, 0x00301d14, 0x002d1e1b,
- 0x00291e20, 0x00161111, 0x00050404, 0x00000400, 0x00020402, 0x00000500, 0x00040200, 0x00090001, 0x00190300, 0x00220b02, 0x00241106, 0x001a1204, 0x0017180c, 0x001c170c, 0x001e120b, 0x00210d08,
- 0x001b1510, 0x00171209, 0x00191508, 0x001b160a, 0x001d1304, 0x00180a02, 0x00201005, 0x0027150c, 0x00614c49, 0x006b5353, 0x00281012, 0x00250c14, 0x002c1012, 0x00341714, 0x00583c36, 0x00846a64,
- 0x00654f5e, 0x00261a37, 0x001d1b4a, 0x00152260, 0x00112471, 0x00102579, 0x000e257e, 0x000c237c, 0x00082174, 0x00072476, 0x000c2b7f, 0x000a2f85, 0x00133a9b, 0x001444a9, 0x001849b4, 0x001d4ebc,
- 0x001b54bb, 0x002c67cb, 0x003370d4, 0x002a6ac8, 0x002e6fcb, 0x003979d4, 0x00427fd8, 0x004b85dd, 0x00497fd8, 0x00447ad2, 0x008fb6f6, 0x00dde7f8, 0x00e8e0ee, 0x00e6d2da, 0x00c9b2b5, 0x00bfa7a9,
- 0x00d7d4e7, 0x00e5f5fb, 0x00b7d7fd, 0x0074a2e2, 0x005086d7, 0x005e8cd5, 0x007ea5e6, 0x0089a3d8, 0x0057607e, 0x002b3243, 0x00212a2f, 0x00081316, 0x0052605f, 0x00cfdad8, 0x00f5fcf6, 0x00fbfcf0,
- 0x00f9fbfd, 0x00fdffff, 0x00d7d9d8, 0x008b8f88, 0x00aeb0ab, 0x00f2f2eb, 0x00f9faf4, 0x00f6f8f2, 0x00fefcfd, 0x00faf7f9, 0x00fffbff, 0x00fdf9fe, 0x00fdfbff, 0x00fcfafd, 0x00fefbff, 0x00fefaff,
- 0x00fef8fa, 0x00fdfafe, 0x00faf6fb, 0x00fbf8fa, 0x00f3f1f5, 0x00f2af95, 0x00cd7452, 0x00ecb29e, 0x00fef5f6, 0x00f1f3f5, 0x00fafbf8, 0x00ebdfd2, 0x00e0c1ac, 0x00dfbba6, 0x00f4cebd, 0x00feeae0,
- 0x00fcf9fe, 0x00fdf9eb, 0x00f7d1b7, 0x00eabb90, 0x00fdddbc, 0x00fef5e5, 0x00fcf7f3, 0x00fbf9fb, 0x00fde3d7, 0x00edb496, 0x00eaa888, 0x00ebbda6, 0x00f7e0cc, 0x00fbf0e1, 0x00fcf3ee, 0x00f7f4f4,
- 0x00fffbfd, 0x00fef6f5, 0x00fcf9f3, 0x00f3f2e1, 0x00c5d0b5, 0x00b5b88d, 0x009aa06e, 0x007a8554, 0x0043532a, 0x001d320f, 0x000c240e, 0x00091f12, 0x00132616, 0x00233416, 0x0047562f, 0x00718049,
- 0x00909862, 0x009da671, 0x00a4ad79, 0x00a4ae7a, 0x00a1ab79, 0x009fa879, 0x009ea77a, 0x009ea67a, 0x009fa682, 0x009ca47e, 0x0099a17c, 0x008e9d74, 0x008a9477, 0x00828c74, 0x00808775, 0x007f8771,
- 0x00848c6e, 0x00838a68, 0x00858c6d, 0x00888e74, 0x0085867a, 0x0080836b, 0x00767960, 0x006f715b, 0x00838178, 0x0096948e, 0x00847f7e, 0x004d4749, 0x0072686f, 0x00988e97, 0x00837983, 0x00938b94,
- 0x0080847b, 0x007a7962, 0x00a59976, 0x00ac935c, 0x00a67e3b, 0x00b0843f, 0x00a67939, 0x00896029, 0x006a411e, 0x00563215, 0x00532e1b, 0x00603a2a, 0x006f4c30, 0x00795a34, 0x007e613a, 0x0080683b,
- 0x00927a57, 0x008c7c58, 0x006f6139, 0x006b622f, 0x006e672a, 0x0065552c, 0x00574426, 0x0047351a, 0x002a1d0d, 0x001b1003, 0x001d150c, 0x002e271f, 0x00403930, 0x00473e33, 0x00443a2c, 0x00362c1b,
- 0x00201c16, 0x00504d47, 0x00d3d1cc, 0x00fbfaf6, 0x00fcfcfc, 0x00fbfcfb, 0x00fcfefd, 0x00eceef0, 0x009898a2, 0x0061666b, 0x00676972, 0x006c6873, 0x00686972, 0x0061686e, 0x00586369, 0x00505e5f,
- 0x0062666c, 0x007e7b81, 0x00dcced8, 0x00d4bec8, 0x00572f40, 0x001b0823, 0x00150e2e, 0x0017102e, 0x002a2547, 0x001f1d3b, 0x00161230, 0x00595b77, 0x00babbd6, 0x00c2c6df, 0x00b5bad1, 0x00aaafc6,
- 0x008476c5, 0x005e5ca9, 0x005862b0, 0x007085d2, 0x0092aae6, 0x0090a4d8, 0x008da3d0, 0x00b1c8ed, 0x00a1c9f1, 0x006b96cc, 0x00719bcf, 0x008596ce, 0x005e76b2, 0x006882bc, 0x005f79af, 0x007689b8,
- 0x007c7ea1, 0x0063637d, 0x002b2b43, 0x00111c38, 0x00152b4e, 0x001e2950, 0x001e2854, 0x001a2b5f, 0x00152561, 0x002d2d5d, 0x00816b93, 0x00996f85, 0x00451620, 0x00371622, 0x0059475a, 0x004d4a69,
- 0x00474f5c, 0x00454d58, 0x00414853, 0x00393f49, 0x0031363f, 0x00272c36, 0x0021252e, 0x00232830, 0x002d3039, 0x0033373b, 0x0044464c, 0x004d5054, 0x0053565d, 0x0051535a, 0x00484a57, 0x00464753,
- 0x00414152, 0x003a3d49, 0x00383c45, 0x00353a3f, 0x002f3335, 0x00292c2f, 0x00212429, 0x001b2023, 0x001f2127, 0x00202228, 0x00202328, 0x001f2326, 0x0022272a, 0x00292e30, 0x002f3336, 0x002e3236,
- 0x0033333a, 0x0036383e, 0x00303338, 0x002d3034, 0x002c2f33, 0x0027292d, 0x001b1d21, 0x00121419, 0x00151318, 0x00141518, 0x00161418, 0x00121617, 0x00101111, 0x0010120f, 0x0015140e, 0x0019180f,
- 0x002c231f, 0x00332c27, 0x00362c2a, 0x00291f1e, 0x002c1d1f, 0x00632122, 0x00822d2f, 0x00622625, 0x00341715, 0x00251a1a, 0x001c181c, 0x0018161f, 0x0017131f, 0x0016151e, 0x0019181e, 0x003a3a3d,
- 0x008a90a3, 0x00afb5c6, 0x00999fad, 0x00666c77, 0x00282e37, 0x0031353b, 0x00a2a5a8, 0x00f0f4f4, 0x00fefefd, 0x00fafbfa, 0x00fdfffe, 0x00f6fdfb, 0x00afb8ae, 0x005b6055, 0x0058584c, 0x00726e60,
- 0x00837a75, 0x00877d7c, 0x00857a7e, 0x0081777f, 0x007b6b7b, 0x00726576, 0x00645d6d, 0x00514e63, 0x003c3c54, 0x002f2d3b, 0x002b242a, 0x002e201e, 0x0038211a, 0x003a2724, 0x00443131, 0x00463c3e,
- 0x00574736, 0x005e5240, 0x006f6453, 0x0071685b, 0x0077726b, 0x008e8c8a, 0x00cecdcd, 0x00f1f3f6, 0x00eef1fb, 0x00eaedf8, 0x00eeeff9, 0x00eff1f5, 0x00f2f4fb, 0x00f4f6f8, 0x00f6f8fa, 0x00f5f8fb,
- 0x00fefdff, 0x00fbfdff, 0x00fafdff, 0x00f7fafd, 0x00fafcfe, 0x00f8fafb, 0x00f7fafa, 0x00f5fbfa, 0x00f9fbfd, 0x00f9fafc, 0x00f6f6f9, 0x00f6f7f9, 0x00f3f6f8, 0x00f3f7f9, 0x00f7fbfd, 0x00f3f7f8,
- 0x00b0dfed, 0x00739ecc, 0x005783c9, 0x00517bd2, 0x00597bbf, 0x006b8caf, 0x007c9fae, 0x007598a2, 0x005e85c0, 0x002f5fbd, 0x002856c0, 0x001e49a4, 0x0030468e, 0x00454c7e, 0x00655970, 0x00846862,
- 0x00a47556, 0x00a4754d, 0x00a6744d, 0x00a1734f, 0x009b6e55, 0x00956f54, 0x0087674c, 0x007a5b41, 0x006c5139, 0x00614934, 0x00533e2d, 0x00483624, 0x003b2d1f, 0x00423828, 0x0052493b, 0x005a5247,
- 0x005b4932, 0x00584836, 0x00554432, 0x00524238, 0x00584943, 0x005c4c4a, 0x005c4e4c, 0x005d4e4d, 0x00605152, 0x005b4f4d, 0x00584a47, 0x00574a40, 0x00554b46, 0x0058514a, 0x00645a55, 0x006e625d,
- 0x00796562, 0x0083685e, 0x008b6859, 0x00916752, 0x009a684c, 0x00a36346, 0x00a5593b, 0x00a4522d, 0x00a44720, 0x0097421b, 0x00843a19, 0x006d361b, 0x00502f1f, 0x00452d1f, 0x003e2d1e, 0x003d2e1d,
- 0x00afafa7, 0x000f1007, 0x00101108, 0x000d1005, 0x0014150b, 0x0013140a, 0x0012140a, 0x0016170d, 0x000f1008, 0x000d0e03, 0x002a2a1d, 0x004d4d40, 0x005d5b57, 0x00656362, 0x009a9897, 0x00e0dddc,
- 0x00f5f7f9, 0x00edf5fd, 0x00bdc9de, 0x007b8eb6, 0x00425992, 0x00496aab, 0x005b7db7, 0x006b7fa2, 0x009f98a0, 0x00c1b7b5, 0x00f0e3e3, 0x00f0e5ec, 0x00edeafc, 0x00f0f1ff, 0x00edf0fd, 0x00e7e8ef,
- 0x00edecf5, 0x00edeaf3, 0x00edeaf3, 0x00eeebf3, 0x00eeeaf2, 0x00eceaf2, 0x00ecebf3, 0x00edecf3, 0x00eeebf1, 0x00eeebf3, 0x00ece8f1, 0x00e9e7ef, 0x00e9e8f0, 0x00e6e5ed, 0x00e2e0e9, 0x00e1dfe9,
- 0x00e9e7f1, 0x00e6e5ee, 0x00e4e0e8, 0x00e6e4eb, 0x00e2dfe7, 0x00d9e5ee, 0x00dae1e6, 0x00e8dbdc, 0x00d99a92, 0x00bc5449, 0x00bb3729, 0x00d63125, 0x00d42920, 0x00da3b34, 0x00d94941, 0x00ca4942,
- 0x00b3707c, 0x00d493a0, 0x00fac5d2, 0x00fddce7, 0x00f9dce6, 0x00f3d8e1, 0x00f7e4eb, 0x00f1eaef, 0x00e8e7ed, 0x00dfe0e5, 0x00dcdde2, 0x00e8d8e5, 0x00ecdee8, 0x00ecdde9, 0x00e9dce7, 0x00e9dde7,
- 0x00ded8dc, 0x00c4c1c4, 0x00afaeb1, 0x00adacae, 0x00858482, 0x004a4949, 0x001c171a, 0x00120e10, 0x002b282c, 0x004c484a, 0x00807b7c, 0x00b8b4b5, 0x00e7e5e1, 0x00dfded6, 0x00cfccc2, 0x00d1ccc2,
- 0x00aab5af, 0x009ba39f, 0x00c3c8c3, 0x00ede9e6, 0x00f7f2ed, 0x00fcf1ed, 0x00fef3ed, 0x00ffebe7, 0x00eed2cf, 0x00d5b5b1, 0x00cba19b, 0x00da9a8c, 0x00dc9d8c, 0x00e09b8a, 0x00db8f7f, 0x00d17468,
- 0x00b34841, 0x00922828, 0x00952f32, 0x00953b3f, 0x00b86d71, 0x00e6cdd2, 0x00f4f2f4, 0x00fcfefc, 0x00fefefc, 0x00fdfef9, 0x00fdfefc, 0x00f5f9f6, 0x0086898d, 0x00191a26, 0x00282b3a, 0x0035394b,
- 0x0048495f, 0x00515367, 0x00575a69, 0x009496a3, 0x00eaeaf5, 0x00fcfaff, 0x00fbf8fb, 0x00faf6f7, 0x00f8f5f2, 0x00f5f1ed, 0x00f6eeee, 0x00f7eaf0, 0x00e9e1e8, 0x00d8d5dc, 0x00c6c6cd, 0x00bfc2c8,
- 0x00c1c3ca, 0x00bcbec0, 0x00a6a0a2, 0x00948b86, 0x007e7168, 0x0072614c, 0x0078604a, 0x0069503b, 0x00572d1f, 0x00643122, 0x00814632, 0x008d4b31, 0x009c5725, 0x009f5d1b, 0x00a26313, 0x00a6670c,
- 0x00af5e28, 0x00ac621b, 0x00ad6d25, 0x00ad7b37, 0x009f7a6e, 0x008a6889, 0x006f5594, 0x007e6fb8, 0x009596ad, 0x00929b89, 0x00abb499, 0x00d5d7d5, 0x00f5fbf1, 0x00f3fff8, 0x00e9fbf9, 0x00d9f3ff,
- 0x00bcd6fc, 0x00a1b7e9, 0x00a2b1e0, 0x00cfd7f5, 0x00fbfdfc, 0x00fbfcfe, 0x00feffff, 0x00fdfefc, 0x00fdfefd, 0x00fefefd, 0x00fefefd, 0x00fdfdfd, 0x00fefefe, 0x00fffeff, 0x00fdfdfe, 0x00fcfdfd,
- 0x00fcfffd, 0x00fafdfb, 0x00fcfffe, 0x00fdfffd, 0x00fffefd, 0x00fffdfc, 0x00fefbfa, 0x00fbf7f6, 0x00fdf9fc, 0x00fdf6f8, 0x00e6dadc, 0x00a49395, 0x0056464b, 0x00483a3f, 0x00493f47, 0x005b535d,
- 0x00565162, 0x005a586e, 0x005c5c76, 0x005c5e7a, 0x005d617f, 0x005e6380, 0x005f6482, 0x005a6083, 0x00535b83, 0x004c5581, 0x00444f7f, 0x003d4779, 0x003b4174, 0x003c3f74, 0x00424379, 0x0046467b,
- 0x004b4c75, 0x004c4c74, 0x004c4c71, 0x004b4d6c, 0x00494d67, 0x00464a62, 0x00424760, 0x00414460, 0x00404460, 0x003a3c5c, 0x0033365c, 0x002a2e5d, 0x0033395b, 0x0082859d, 0x00f8f8ff, 0x00fcfafe,
- 0x00fbfcf7, 0x00fdfcf9, 0x00fbfbf7, 0x00b9bebb, 0x00282c30, 0x00050809, 0x000c1010, 0x0013181e, 0x00191d29, 0x001d1e2f, 0x00212031, 0x00282331, 0x002e2620, 0x003a2f1a, 0x004e4221, 0x005d4e27,
- 0x00635333, 0x005c5030, 0x00494122, 0x0039321c, 0x00322d1b, 0x00373327, 0x00433f35, 0x003a372f, 0x002b251d, 0x001b130d, 0x003b2519, 0x007a412c, 0x00a8786f, 0x00e2bbbd, 0x00f0d6e0, 0x00ead8ea,
- 0x00d5cee5, 0x00cbc6dd, 0x00c9c5d6, 0x00c4c0cb, 0x00c9c3c9, 0x00c9c0ce, 0x0093879a, 0x0081768b, 0x00beb6c5, 0x00ede5f1, 0x00fbf4ff, 0x00f5effa, 0x00f8f3fa, 0x00f5f2f8, 0x00f3f3f5, 0x00f5f5f3,
- 0x00f6f3f8, 0x00e4e6fb, 0x00999ed0, 0x005c68ab, 0x00495eb1, 0x00475eba, 0x00445bbb, 0x004759be, 0x00384599, 0x00404b90, 0x00a1a4d3, 0x00e1d5eb, 0x00c7c0cd, 0x008b848e, 0x002d2b31, 0x00282c2b,
- 0x00232a24, 0x00212923, 0x00212b25, 0x00202b23, 0x00202d25, 0x001b2627, 0x001a2424, 0x00162421, 0x0019241e, 0x0017241a, 0x00152116, 0x00101b0f, 0x00585f5a, 0x00ccd1d0, 0x00fcfcfe, 0x00fffbfe,
- 0x00fcfcfc, 0x00fdfdf7, 0x00eee1d6, 0x00b49c8c, 0x00845d42, 0x008e6042, 0x00895c3b, 0x00855939, 0x007d4f36, 0x006e452e, 0x005c3923, 0x004b311e, 0x00412818, 0x003c271a, 0x002d1b13, 0x00271a17,
- 0x00211918, 0x00151013, 0x00070609, 0x00010101, 0x00000201, 0x00030203, 0x00030106, 0x000c0007, 0x00190105, 0x00200905, 0x00271207, 0x00261508, 0x00221200, 0x00271100, 0x002d1500, 0x00341700,
- 0x00261d05, 0x00251b03, 0x00261a05, 0x00231503, 0x001f0f00, 0x001d0b01, 0x0029180c, 0x001c0c02, 0x00533b32, 0x006d554d, 0x002f1611, 0x002a0c10, 0x00301113, 0x0042221e, 0x00634743, 0x00856d6a,
- 0x005d4b5c, 0x001d1735, 0x00111345, 0x000a1959, 0x000c2173, 0x000d2478, 0x000e257c, 0x000d2279, 0x000a2173, 0x00082173, 0x00052273, 0x00052376, 0x00092d8a, 0x000e389b, 0x001746af, 0x001b4ab8,
- 0x001f56bd, 0x00336bd3, 0x002f6ad1, 0x002665c9, 0x002265c5, 0x00286cc8, 0x003170ce, 0x003572ce, 0x003a73cf, 0x005286e2, 0x00a2cafe, 0x00dbe9fc, 0x00ded9f2, 0x00efdde8, 0x00e7d4d9, 0x00cebbc1,
- 0x00c8cbe0, 0x00d1e5f9, 0x008bb1ee, 0x00487acf, 0x002f6ed3, 0x004170c3, 0x00769cdc, 0x00bad6fb, 0x00c4cfe6, 0x00929cae, 0x0075808a, 0x00525f65, 0x008a9897, 0x00e0e9e6, 0x00fbfff9, 0x00fffef5,
- 0x00f8fcfd, 0x00fdfeff, 0x00c7cbc8, 0x00a0a39f, 0x00dfe1da, 0x00fafaf5, 0x00fefcf6, 0x00fefdf9, 0x00fafaf9, 0x00fbf9fa, 0x00fdf8fc, 0x00fdf9fd, 0x00fcfafd, 0x00fdfbff, 0x00fefbff, 0x00fefaff,
- 0x00fffafd, 0x00fdfafe, 0x00f9f6fb, 0x00fdf8fb, 0x00f1eef1, 0x00dba28c, 0x00cd896f, 0x00f0cdbd, 0x00fefdfe, 0x00f4f8f9, 0x00fbfcfb, 0x00f8f4e9, 0x00ffeadc, 0x00f3cfbd, 0x00ebc0b3, 0x00ffe8e2,
- 0x00fcfcfe, 0x00fef8e9, 0x00f7d7bc, 0x00f2bf9a, 0x00f2cdad, 0x00f6dfcf, 0x00fff6ef, 0x00fdf8f6, 0x00fde0ce, 0x00ebad8e, 0x00d39171, 0x00ecb19e, 0x00fef1da, 0x00faebd9, 0x00e9dcce, 0x00f9f2e7,
- 0x00fdf6f3, 0x00fef8f5, 0x00fefbf7, 0x00fdf6ef, 0x00e8e9dc, 0x00d2d4b1, 0x009ea273, 0x00727b4c, 0x003a4a21, 0x00172a08, 0x000b2106, 0x000a1d0e, 0x0014250e, 0x002d3d1a, 0x005d6b3f, 0x0088975b,
- 0x00a7b070, 0x00b4bd7e, 0x00b8c082, 0x00b9c185, 0x00b4bc83, 0x00b0b781, 0x00adb47f, 0x00adb380, 0x00b0b884, 0x00afb782, 0x00abb383, 0x009aac7b, 0x008f9a77, 0x007f8d6e, 0x00747f67, 0x006f7b61,
- 0x00727f60, 0x00768361, 0x007a856a, 0x007f8773, 0x00878a87, 0x008c9081, 0x00a3a696, 0x00babeb0, 0x00e4e5df, 0x00f8fbf9, 0x00ddd9df, 0x00847f88, 0x00473c48, 0x00574d58, 0x0061535d, 0x006e636a,
- 0x00606467, 0x0042433b, 0x0067624c, 0x009f9068, 0x00ab8e4f, 0x00ae8845, 0x00ab803c, 0x00996f32, 0x007e552b, 0x00654020, 0x004c2713, 0x00462113, 0x0052331c, 0x0071583c, 0x00887557, 0x00908263,
- 0x00877b64, 0x006f664a, 0x00574f2b, 0x005f5829, 0x006e6327, 0x006a5a2f, 0x005e4a2a, 0x004b361e, 0x00291a06, 0x001a0c01, 0x001d1106, 0x00271f14, 0x003b332a, 0x0042392d, 0x003e3426, 0x00322716,
- 0x0016140d, 0x003a3832, 0x00c0bfba, 0x00fbfbf8, 0x00fdfdfc, 0x00fdfefd, 0x00fcfefe, 0x00f5f7fa, 0x00a7a8b0, 0x00656a6e, 0x0060636a, 0x005d5f6a, 0x00575b61, 0x00515a60, 0x00545d62, 0x00586161,
- 0x006f7577, 0x00847f81, 0x00cabbc0, 0x00d9c1c6, 0x006f4a54, 0x00543a4b, 0x006e5d73, 0x006d5e76, 0x00584f6f, 0x002f294b, 0x000e0a2b, 0x003d3e60, 0x00a7abcc, 0x00c8cbea, 0x008e92ae, 0x00575a75,
- 0x0054508d, 0x006f73b4, 0x006a76ba, 0x006d83c8, 0x0099b6f3, 0x00839fda, 0x00425d97, 0x006a84bf, 0x007ba0e2, 0x00517cc4, 0x00749ade, 0x007a8fca, 0x004d65a3, 0x005c75ad, 0x007e94c9, 0x0095a5d2,
- 0x008f95b1, 0x0074798e, 0x00494b5f, 0x00343c53, 0x0037445f, 0x0044526d, 0x00555f7e, 0x00525f82, 0x00494e7c, 0x0042385d, 0x00674b6d, 0x00714255, 0x003e101d, 0x00482935, 0x00655265, 0x0055576f,
- 0x00525a66, 0x00525a63, 0x004b535e, 0x00414a54, 0x00363c46, 0x002a303a, 0x0022272f, 0x00262b31, 0x0030363a, 0x003e4247, 0x004f5359, 0x00585c62, 0x005f6369, 0x005d6169, 0x00555763, 0x0050515f,
- 0x00494958, 0x003d414c, 0x00383c46, 0x00383c43, 0x0034383b, 0x002e3237, 0x0024282f, 0x001c2226, 0x001d2125, 0x001e2327, 0x00212529, 0x0024292c, 0x002f3336, 0x003b3f42, 0x0045494c, 0x0044474a,
- 0x003e414d, 0x00383d47, 0x00262c34, 0x0020272d, 0x001e2328, 0x001c1f23, 0x0015171a, 0x000f1013, 0x00121012, 0x00100d11, 0x000d0b0e, 0x000e0d0e, 0x0009090b, 0x00070807, 0x00090c08, 0x000e120c,
- 0x0021221f, 0x002c2a29, 0x002d2a2a, 0x001f1a1b, 0x00221d1f, 0x00622326, 0x00833335, 0x00612927, 0x00241611, 0x00131614, 0x000d1619, 0x000d181e, 0x000c131e, 0x000b101b, 0x0012141f, 0x00454851,
- 0x00a7abc4, 0x00cdd2e9, 0x00bdc1d6, 0x00999eaf, 0x004d515e, 0x0033363e, 0x00909396, 0x00ecefef, 0x00fcfffe, 0x00fbfcf9, 0x00f9fdfa, 0x00f7fdfb, 0x00bfc4bd, 0x0062645a, 0x00534e43, 0x0070685d,
- 0x00867d74, 0x008c8280, 0x008a8285, 0x00847c87, 0x00787084, 0x00786b82, 0x00655c70, 0x004e4b5f, 0x003b3f4a, 0x00383b3a, 0x00454135, 0x00534933, 0x00614d36, 0x00715e4f, 0x0089786f, 0x008f8381,
- 0x009c9a8d, 0x009a9b8d, 0x00afafa3, 0x00b7b6ac, 0x00c7c7c1, 0x00e3e2df, 0x00f6f4f4, 0x00f8f9f9, 0x00f5f8fc, 0x00f4f9fd, 0x00f4f7fd, 0x00f5f7fb, 0x00eef1f7, 0x00eef0f4, 0x00f1f0f7, 0x00f2f3fb,
- 0x00f4f6f7, 0x00f6f9fb, 0x00f5f9fc, 0x00f4f7fb, 0x00f5f7f9, 0x00f6f8f9, 0x00f5f8f9, 0x00f5f9fa, 0x00f4f8f9, 0x00f8fafa, 0x00f7f8f9, 0x00f7f7fa, 0x00f3f5f7, 0x00f0f3f6, 0x00f0f3f6, 0x00f1f4f6,
- 0x00c9eef6, 0x0095b7dc, 0x006689c4, 0x006587d1, 0x007d99ce, 0x0089a3bd, 0x008fa8b2, 0x00b3cbd1, 0x00a8c8f1, 0x006388d4, 0x002f5bb7, 0x001d54aa, 0x002447a0, 0x002f3f8d, 0x004a4781, 0x006c5b75,
- 0x0098755b, 0x00a37b4e, 0x00a77848, 0x00a7714a, 0x0096604e, 0x008c6345, 0x00826241, 0x00785a3b, 0x0062462b, 0x004f3821, 0x00463320, 0x004a3a2c, 0x00483c2e, 0x004d4438, 0x00544b3f, 0x00564c43,
- 0x0050412d, 0x00503f2e, 0x004f3c2f, 0x004c3b32, 0x004e3c39, 0x00504040, 0x004f4242, 0x00504244, 0x004f4141, 0x004e4140, 0x004e403e, 0x00504239, 0x004d4641, 0x00544b47, 0x00625756, 0x00685f5a,
- 0x00796961, 0x00846c60, 0x008b6c5b, 0x00906b54, 0x009b6b52, 0x00a6664d, 0x00a65d3f, 0x00a35532, 0x00a24b22, 0x0094441d, 0x00833c1e, 0x006e3821, 0x00513023, 0x00462e20, 0x00433020, 0x0041311f,
- 0x00adafa6, 0x000f1008, 0x000e1008, 0x000e1008, 0x0013120c, 0x0014130c, 0x00111209, 0x0014150d, 0x000e0f0d, 0x002f312a, 0x008d8f84, 0x00c5c5ba, 0x00dbd7d5, 0x00dedadc, 0x00ebe7e9, 0x00f2f0ef,
- 0x00f3f4f9, 0x00f1f5fc, 0x00e3ecfc, 0x009facd0, 0x0054639a, 0x0042649e, 0x006d90c5, 0x008599bf, 0x00c4c5d3, 0x00e0dce1, 0x00f3ecef, 0x00efecf2, 0x00e9ebf8, 0x00e9edfc, 0x00eaeefa, 0x00eaedf6,
- 0x00edebf3, 0x00eceaf2, 0x00ebebf2, 0x00eaebf1, 0x00ecebf2, 0x00edebf3, 0x00eeebf5, 0x00eeeaf5, 0x00eeeaf5, 0x00ebebf4, 0x00e9e9f0, 0x00e9e8ef, 0x00eae9f2, 0x00e7e5ed, 0x00e0dde4, 0x00dcdbe2,
- 0x00e8e5ed, 0x00e3e2e9, 0x00e1e0e8, 0x00e0dde5, 0x00dbd9e3, 0x00d7cfe2, 0x00f0def0, 0x00e4bfc9, 0x00b8675c, 0x00b84935, 0x00c53e25, 0x00d53a20, 0x00d23221, 0x00d44138, 0x00d34542, 0x00da585b,
- 0x00ddb4c6, 0x00efcfdc, 0x00f7dae6, 0x00f4dfeb, 0x00ebdbe9, 0x00e4dbe6, 0x00e5e1eb, 0x00dfe5ef, 0x00d8e8ef, 0x00d1e4eb, 0x00d7dbe8, 0x00e8d0e9, 0x00eed6ed, 0x00edd6eb, 0x00ecd5e7, 0x00ecd7e6,
- 0x00ead8e6, 0x00e5d0de, 0x00c2adb9, 0x00b4a0a9, 0x00ae999e, 0x00928b8e, 0x005c5b5d, 0x00333334, 0x00131315, 0x000b0b0c, 0x00201d1f, 0x00423d3f, 0x008b8887, 0x00c4c2be, 0x00e5e4de, 0x00dcdfd6,
- 0x00bec5c1, 0x00bdc6c1, 0x00e5ece3, 0x00eef5e9, 0x00f5f4ec, 0x00f8f3eb, 0x00f6f4ea, 0x00f6f0ea, 0x00f5ebe6, 0x00f2ece5, 0x00efe6dc, 0x00f4e3db, 0x00f1e1d2, 0x00f4e0d1, 0x00f3d7c8, 0x00ebc5b7,
- 0x00d79b94, 0x00b47270, 0x00b67a78, 0x00c38e8c, 0x00d7b1ae, 0x00e4d5d7, 0x00f3f0f3, 0x00fafbfc, 0x00fefefd, 0x00fdfdfb, 0x00fdfefc, 0x00f5faf6, 0x00878a8c, 0x001a1c22, 0x00272c37, 0x00343946,
- 0x004b4959, 0x004a4b58, 0x00686b75, 0x00b8bac2, 0x00f8f6fd, 0x00fdf9fd, 0x00fbf7fa, 0x00f3f1ef, 0x00f4f0ef, 0x00f7f5f1, 0x00f2eeef, 0x00f3ebf1, 0x00ebe4ea, 0x00ddd8de, 0x00c5c5ce, 0x00bcbec5,
- 0x00c4c5cc, 0x00bec0c6, 0x00a7a5ac, 0x00939091, 0x00777172, 0x00676250, 0x00776f57, 0x00716652, 0x004f332a, 0x0048211f, 0x0062332f, 0x00764036, 0x008a4e2f, 0x00915527, 0x00985f24, 0x009b631d,
- 0x00a16023, 0x00a06838, 0x00a87a5b, 0x009b7972, 0x007d6783, 0x006c5e83, 0x007a6f9a, 0x009392b2, 0x009998a3, 0x00a9a8a5, 0x00d8d5c9, 0x00f6f2ea, 0x00fbfdef, 0x00f5fced, 0x00f6fef6, 0x00f0fefd,
- 0x00eef9fe, 0x00e6f0fa, 0x00e2e7fb, 0x00eff0fb, 0x00fef9fd, 0x00fdfbfc, 0x00fdfdfe, 0x00fefefd, 0x00fefefd, 0x00fdfdfc, 0x00fbfcfc, 0x00fcfdfc, 0x00fefeff, 0x00ffffff, 0x00fffeff, 0x00fffdff,
- 0x00fdfefe, 0x00fcfdfc, 0x00fdfffe, 0x00fdffff, 0x00fcfcfa, 0x00fefcfc, 0x00fcfafa, 0x00fcf8f8, 0x00fff7fa, 0x00fef6f8, 0x00fff6fb, 0x00e6dce1, 0x00a9a0a6, 0x00766e74, 0x004a454d, 0x00413d46,
- 0x004d4a5a, 0x00535267, 0x005a5a73, 0x005a5c79, 0x005c5e80, 0x005e6282, 0x005e6282, 0x005a6084, 0x00555b85, 0x004e5783, 0x00465182, 0x00404a7b, 0x003e4376, 0x003e4274, 0x00444678, 0x00494879,
- 0x004d4c77, 0x004d4c74, 0x004a4c6f, 0x00484b6a, 0x00484966, 0x00434661, 0x0040445f, 0x0041455f, 0x003f4160, 0x003b3d5c, 0x0034375b, 0x002b2f5a, 0x003a4062, 0x009496ad, 0x00f8f9fe, 0x00fcfdff,
- 0x00fdfef8, 0x00fafbf6, 0x00fafbf7, 0x00aaaeac, 0x001a1e23, 0x000c0f11, 0x00232626, 0x0033353d, 0x003f4054, 0x00454258, 0x00474256, 0x004a4250, 0x00554a40, 0x0063563a, 0x0074653b, 0x007e6d3a,
- 0x00816e43, 0x0073653a, 0x00554926, 0x003f361c, 0x00352f1d, 0x003a372a, 0x00403f35, 0x00383932, 0x002e2d26, 0x00191812, 0x002a1711, 0x0059281b, 0x008f665d, 0x00d2b2b4, 0x00edd6df, 0x00ddd2df,
- 0x00d2cae0, 0x00c4c0d3, 0x00c7c6d3, 0x00c8c7cf, 0x00cfcdcd, 0x00b5b3bd, 0x0072707f, 0x008e8b98, 0x00e8e7ef, 0x00f5f3fb, 0x00f7f5fd, 0x00f5f2f9, 0x00f5f0f7, 0x00f8f3f9, 0x00f9f4fa, 0x00f7f2f8,
- 0x00f8f7fd, 0x00d9dbfc, 0x007f85c1, 0x00525eaf, 0x004a61b1, 0x00475eb6, 0x00455aba, 0x004b5ac5, 0x00414da6, 0x004c5999, 0x00b3b7e0, 0x00e8dcf1, 0x00c9c0cf, 0x00817c84, 0x00222428, 0x0019211f,
- 0x00152119, 0x00132218, 0x0014241c, 0x00112119, 0x000d1e18, 0x000e1f21, 0x000c1d1d, 0x000a1d1a, 0x000b1d12, 0x000b1d0e, 0x000e1d0d, 0x000d180c, 0x006a6f6c, 0x00e1e2e4, 0x00fdfcff, 0x00fdfbfd,
- 0x00fbf9fa, 0x00fdfcf7, 0x00e8d9ce, 0x00a78e7d, 0x00825b41, 0x008d5f43, 0x008d5e3f, 0x0088573a, 0x007a4f37, 0x006a432c, 0x00593823, 0x00472d1a, 0x003d2517, 0x00362417, 0x002b1d12, 0x00231c14,
- 0x00262320, 0x001b171a, 0x000b0a0a, 0x00020004, 0x00020003, 0x0003010d, 0x0006000f, 0x000b020f, 0x0017040e, 0x001f0910, 0x002d1317, 0x00351b19, 0x0032160c, 0x00321304, 0x00341202, 0x003a1303,
- 0x002e1c01, 0x002c1a00, 0x00291502, 0x00251000, 0x00261102, 0x00220c02, 0x00271106, 0x00220d02, 0x00543a2c, 0x006b5442, 0x00493122, 0x002d0f0e, 0x00331412, 0x00482723, 0x006a4d49, 0x00866c6c,
- 0x00564356, 0x00140d2b, 0x00070c3f, 0x000a1957, 0x00072070, 0x000b2375, 0x000d267b, 0x000f2375, 0x000a1f6f, 0x00051d6b, 0x00031d6a, 0x00001b6b, 0x0003227d, 0x00062d8d, 0x001541a5, 0x001c48af,
- 0x00245cc6, 0x00326cd5, 0x002b67d1, 0x00215fc6, 0x002969cc, 0x002768c7, 0x002d6cce, 0x002968c9, 0x00336dce, 0x00427bdb, 0x007ba7f8, 0x0095afee, 0x00aeb8e3, 0x00cbc9e2, 0x00e6dcf1, 0x00ddd6e0,
- 0x00ced8f6, 0x00afc9f9, 0x00537bc9, 0x001e55b4, 0x002761d6, 0x004273bc, 0x008fb3e6, 0x00cfeafb, 0x00f1fafe, 0x00eaf4f4, 0x00dee6eb, 0x00bdc7cc, 0x00cad5d9, 0x00ecf3f2, 0x00fcfbfa, 0x00faf8ef,
- 0x00fcfefe, 0x00fcfcfb, 0x00cccecb, 0x00babbb9, 0x00f6f5f1, 0x00fdfcfa, 0x00fcf9f8, 0x00fffbf9, 0x00faf9f8, 0x00fffcfd, 0x00faf6f9, 0x00fdf9fd, 0x00fdf9fd, 0x00fcf9fd, 0x00fcf8fd, 0x00fdf8fe,
- 0x00fef9fe, 0x00fbf9fc, 0x00fcf8fd, 0x00faf9fc, 0x00eeebee, 0x00cea698, 0x00d7a594, 0x00f8e2d9, 0x00fefdfe, 0x00f5f7fa, 0x00f8fafa, 0x00fff5ed, 0x00fef4e7, 0x00fadacd, 0x00e5baae, 0x00fadbd2,
- 0x00fffbfd, 0x00fef7ed, 0x00f9dfca, 0x00f7d3b5, 0x00eeceb3, 0x00e0cbb8, 0x00faeee4, 0x00fff6ef, 0x00ffdfcd, 0x00f6bca0, 0x00eca689, 0x00f7b8a4, 0x00ffe0cb, 0x00fee9d3, 0x00edd9c4, 0x00e9dfcb,
- 0x00f6e8e2, 0x00fef7f3, 0x00fff7f7, 0x00fdefee, 0x00f6edea, 0x00e6e5cb, 0x009ea279, 0x00626a3e, 0x002f4017, 0x00142804, 0x000d2407, 0x000c200d, 0x001b2b11, 0x003e4d25, 0x00748350, 0x009bac66,
- 0x00bcc67a, 0x00c6cf85, 0x00c8cf88, 0x00c7cf8a, 0x00c4ca8c, 0x00c2c78b, 0x00c1c78a, 0x00bec487, 0x00c3ca8a, 0x00c2c988, 0x00b8c383, 0x00a3b77d, 0x008e9d71, 0x00788765, 0x00606f52, 0x0059674c,
- 0x005d694a, 0x00657155, 0x006a765e, 0x006f7b6c, 0x00858c8a, 0x009fa3a3, 0x00abaeab, 0x00aaacac, 0x00a7a7b0, 0x00b2b3be, 0x00c8c6d5, 0x00bebac9, 0x006e6774, 0x003a313a, 0x005b5053, 0x00665b5a,
- 0x001f1f38, 0x00161624, 0x00322d2c, 0x00726953, 0x00a99260, 0x00ad8c4b, 0x00ad8741, 0x00a17732, 0x00875e2d, 0x006b4a22, 0x0057371d, 0x004e2d1c, 0x0069503d, 0x00998973, 0x00beb6a0, 0x00c5c3b2,
- 0x00b2b1aa, 0x00807e70, 0x005f5945, 0x005f5738, 0x006b592a, 0x006c5634, 0x005e482b, 0x0049341b, 0x00261504, 0x00180801, 0x001a0f03, 0x00251d10, 0x003a3228, 0x0042392c, 0x003e3324, 0x00332716,
- 0x0015130b, 0x00292721, 0x00aeaca7, 0x00f6f6f3, 0x00fcfdfc, 0x00fefffe, 0x00fcfdfe, 0x00fafafe, 0x00acb1b8, 0x00676a70, 0x005f606a, 0x00585c69, 0x00535760, 0x004e575f, 0x00596368, 0x00646f6e,
- 0x007e7d7d, 0x008d8482, 0x00c4b2b1, 0x00e3cac8, 0x00a77f82, 0x009e7e86, 0x00bfa7b4, 0x00ab98aa, 0x0061556f, 0x00231d3e, 0x00060429, 0x001b1c43, 0x007c7da5, 0x00babde2, 0x007b80a2, 0x00525675,
- 0x00808ab8, 0x007986b5, 0x006c7fb3, 0x009fb7e3, 0x00afcaf8, 0x0086a1e2, 0x004a65a9, 0x00405ca5, 0x00718fe2, 0x007494ea, 0x006985d6, 0x00768fd5, 0x007b91d1, 0x007c90c8, 0x0096a7d5, 0x008390b4,
- 0x0072778e, 0x00626779, 0x00535566, 0x00495061, 0x00494f63, 0x00536072, 0x00667287, 0x006a758f, 0x00747292, 0x006a5875, 0x006a4a63, 0x00653948, 0x00562c38, 0x00604752, 0x005f5463, 0x00545e6e,
- 0x005a6373, 0x00565f6b, 0x004d5763, 0x00444f57, 0x003d434c, 0x00313640, 0x0021272e, 0x00242830, 0x0032363e, 0x0041444b, 0x0053565e, 0x005c5f67, 0x00646670, 0x00646871, 0x005e606b, 0x00585a66,
- 0x0052545f, 0x00454a52, 0x003e434c, 0x0041454e, 0x003e4249, 0x00363c43, 0x002b313a, 0x0021282f, 0x0021272d, 0x0021272d, 0x0024292f, 0x002d3136, 0x003e4045, 0x004f5156, 0x005a5c60, 0x00585a5d,
- 0x004d5463, 0x00404756, 0x002c323f, 0x00222934, 0x001c212a, 0x00171b22, 0x00121419, 0x000e0f14, 0x00110e13, 0x000c0a0f, 0x000a070b, 0x000a070a, 0x000b0a0d, 0x00040707, 0x00070b0a, 0x000c1312,
- 0x00232626, 0x002e2e2f, 0x002a292b, 0x0018181a, 0x001d1b1e, 0x00541c20, 0x00722a2f, 0x00562423, 0x001c130f, 0x0009110f, 0x00021211, 0x00001315, 0x0004101a, 0x00080f1d, 0x00262839, 0x006b6e7d,
- 0x00bfc2e0, 0x00dbdefb, 0x00ccd0eb, 0x00b8bcd3, 0x00787a8c, 0x003e414c, 0x0082858a, 0x00e8eaed, 0x00fdfcfc, 0x00fdfdfa, 0x00fbfffb, 0x00fafefe, 0x00c9cacb, 0x006a6965, 0x004c483f, 0x006a6358,
- 0x00827a73, 0x00868280, 0x00868589, 0x007a7e88, 0x006e7586, 0x006e6b7e, 0x00696172, 0x005f606c, 0x00707979, 0x008e9689, 0x00a8a790, 0x00a8a47f, 0x00b1a280, 0x00c7b89f, 0x00e3d4c3, 0x00e2d8cf,
- 0x00c2d2d5, 0x00aababc, 0x00b9c7c8, 0x00cdd7d6, 0x00e0e6e4, 0x00f2f4f3, 0x00f9fafa, 0x00f7f8f8, 0x00f3f6f7, 0x00f1f5f3, 0x00f1f4f4, 0x00f3f5fa, 0x00f4f8fa, 0x00f4f5f9, 0x00f4f3f8, 0x00f0f1f6,
- 0x00f2f6f9, 0x00f5f9fc, 0x00f6f9fd, 0x00f3f6fa, 0x00f5f6fa, 0x00f5f5f9, 0x00f3f4f7, 0x00f4f4f7, 0x00f9fcff, 0x00f8fbfe, 0x00f7fafb, 0x00f4f7f8, 0x00f8f9fd, 0x00f6f8fb, 0x00f4f6f7, 0x00f4f6f7,
- 0x00def1fe, 0x00c7dcf6, 0x00a4bce4, 0x00a4bde8, 0x00c1d3f2, 0x00c7d5e6, 0x00b8c2cd, 0x00c3ced3, 0x00cee2fc, 0x00abc3f5, 0x004a70b7, 0x00215eaf, 0x00234aaf, 0x00253ba0, 0x00313889, 0x00514b7b,
- 0x008a7260, 0x00a18353, 0x00a97f47, 0x00a36e41, 0x0095574b, 0x00805237, 0x00775334, 0x00745433, 0x0061482e, 0x0049331c, 0x003d2b17, 0x00453726, 0x00514436, 0x00514739, 0x004e4637, 0x00484032,
- 0x004d3a2c, 0x004f3a2d, 0x004b382e, 0x0046362f, 0x00483635, 0x00483838, 0x00473638, 0x00443535, 0x00423534, 0x00413433, 0x00473733, 0x004b3c34, 0x004d413b, 0x00524645, 0x00605352, 0x00645b59,
- 0x00796765, 0x00836b65, 0x008b6d60, 0x00916b59, 0x009a6a57, 0x00a2664f, 0x00a35f41, 0x00a35736, 0x009e4e27, 0x00904720, 0x00814022, 0x006d3c25, 0x00533527, 0x00493123, 0x00473222, 0x0046321e,
- 0x00aaaaa4, 0x00101009, 0x000e0f08, 0x000e1008, 0x0015140d, 0x00101009, 0x000d1009, 0x000e120b, 0x002b2a24, 0x0081807c, 0x00ecece3, 0x00f8f8eb, 0x00fbf8f7, 0x00faf6fa, 0x00f5f3f6, 0x00f1f2f5,
- 0x00eff4f3, 0x00edeff8, 0x00eef2fb, 0x00c9d0e9, 0x007075a8, 0x003e5d84, 0x00799eb8, 0x00bdd6ea, 0x00e5e7f2, 0x00efeef0, 0x00f0f1ec, 0x00eaf3eb, 0x00e6f3f1, 0x00e6eff1, 0x00e9eded, 0x00ececee,
- 0x00eeecf4, 0x00edeaf2, 0x00eaeaf1, 0x00eaebf1, 0x00eeecf3, 0x00eeecf4, 0x00ebebf4, 0x00ebeaf4, 0x00efeaf5, 0x00e9e9f1, 0x00e6e7ec, 0x00e8e8ee, 0x00eaeaf3, 0x00e4e3ec, 0x00dcdbe2, 0x00d8dae0,
- 0x00e0dde6, 0x00e4e0e8, 0x00dedde3, 0x00d9d9e0, 0x00dad6df, 0x00dfcae2, 0x00f3d1e5, 0x00d8a1ab, 0x00a63634, 0x00c03e2e, 0x00c93d21, 0x00c63918, 0x00c5422a, 0x00c75a4d, 0x00d77773, 0x00eda0a3,
- 0x00cfcfd8, 0x00d3d2da, 0x00e3e2ea, 0x00e2e5ed, 0x00dadce5, 0x00d7e0e4, 0x00d9e3e5, 0x00dbe4ea, 0x00dae4ed, 0x00d9e3ed, 0x00d2dbe4, 0x00d1d6e1, 0x00d9dde6, 0x00d9dde6, 0x00dbdde4, 0x00dedfe7,
- 0x00dde1e2, 0x00dcdedf, 0x00dbdad9, 0x00cbccc8, 0x00a7aaa4, 0x009a9b9b, 0x008e9092, 0x00737677, 0x00444146, 0x001f2023, 0x00090a0c, 0x00070905, 0x001a1d1a, 0x00454644, 0x008f8f90, 0x00c6c9c8,
- 0x00e8e6d7, 0x00ebe9db, 0x00eceadc, 0x00eff0e1, 0x00f4f2eb, 0x00f0f2e4, 0x00f6f9e9, 0x00eff2e5, 0x00f0eae4, 0x00edebe5, 0x00e0e4e1, 0x00dbe8ed, 0x00deecee, 0x00e1efed, 0x00e0ebe7, 0x00e4e8e2,
- 0x00e5dbda, 0x00e6d7d7, 0x00dbd3d0, 0x00e5e0de, 0x00e3eae4, 0x00dfe3e1, 0x00eff1ef, 0x00f6f7f6, 0x00ffffff, 0x00fefdfe, 0x00fdfefc, 0x00f3f9f4, 0x0086898c, 0x00181c1f, 0x00252d31, 0x00323a41,
- 0x0045454d, 0x004c4e53, 0x0084878b, 0x00dfe0e5, 0x00fdfcff, 0x00fbf9f9, 0x00f5f4f4, 0x00f2f3f0, 0x00f5eef2, 0x00f2efef, 0x00f0eeec, 0x00f0ebed, 0x00ebe7eb, 0x00e3dee5, 0x00d2d5da, 0x00cbced4,
- 0x00cecfd9, 0x00c9ccd5, 0x00b3b6be, 0x00a3a6ac, 0x0083838b, 0x0069745d, 0x006b7a56, 0x00788067, 0x00645b5b, 0x003d2b38, 0x00371e2c, 0x00523440, 0x0070494a, 0x007c514a, 0x00875b4b, 0x0090644e,
- 0x00826d50, 0x00816c6f, 0x007b6b84, 0x00635a8a, 0x00555782, 0x00616c7d, 0x008b9895, 0x00a1ad9c, 0x00c1babd, 0x00ead9f0, 0x00fef3fc, 0x00fdf7fb, 0x00fbfcfc, 0x00fefefb, 0x00fefdf9, 0x00fffefd,
- 0x00fafcfe, 0x00fcfdff, 0x00fffeff, 0x00fdfcfd, 0x00fef9fa, 0x00fcfcfc, 0x00fdfdfd, 0x00fdfefb, 0x00fffdff, 0x00fefcff, 0x00fbfbfd, 0x00fafcfb, 0x00fcfefd, 0x00fdfffd, 0x00fdfefb, 0x00fefefb,
- 0x00fbfdfd, 0x00fcfbfc, 0x00fdfdfd, 0x00fcfdfc, 0x00fffeff, 0x00fefdfd, 0x00fcfbfc, 0x00fcf9fc, 0x00fff7ff, 0x00fcf6fb, 0x00faf6f9, 0x00f9f7f8, 0x00f9f4f8, 0x00d6d1d7, 0x008e8992, 0x005a575f,
- 0x0043424f, 0x00474859, 0x0056566c, 0x00595a75, 0x005b5c7e, 0x005c5f80, 0x00595d7d, 0x00595f82, 0x00585b87, 0x00515785, 0x00495282, 0x00414b7a, 0x003f4474, 0x003e4373, 0x00434876, 0x00484a77,
- 0x00494774, 0x00494871, 0x00474a6d, 0x00464969, 0x00464665, 0x0042435f, 0x003f425b, 0x003f445a, 0x00424064, 0x003b3c5e, 0x0034385b, 0x00272e58, 0x00474f6e, 0x00aaadc2, 0x00f8f7fb, 0x00fbfcfc,
- 0x00fbf9f6, 0x00fdfcfa, 0x00eff0ef, 0x00969b9a, 0x00161921, 0x00191e1e, 0x003d4141, 0x005b5f65, 0x00696780, 0x006b6680, 0x006e697d, 0x006f6774, 0x00766a5e, 0x007e7051, 0x00897b4c, 0x0093834a,
- 0x00907b53, 0x007b6a44, 0x00594b29, 0x0043371e, 0x00352e1b, 0x00343322, 0x0034362b, 0x0031352d, 0x002d2a29, 0x00201b1c, 0x001b0f0b, 0x00331305, 0x006b4d41, 0x00b9a29d, 0x00e5d6d6, 0x00ded5dd,
- 0x00cbc9d0, 0x00c4c4cb, 0x00c8c9d0, 0x00cdcbce, 0x00dad9d6, 0x00b3bab2, 0x008e9691, 0x00c4c8c6, 0x00fffcff, 0x00f5f3f7, 0x00f4f5f8, 0x00eef1f3, 0x00f4f2fd, 0x00f7f2fe, 0x00f8f2fe, 0x00f9f0fe,
- 0x00f6f8fe, 0x00c7cbf7, 0x00646ab4, 0x004c59b7, 0x004a64ae, 0x004561b3, 0x00425bb7, 0x004a5cce, 0x00454cb1, 0x00636dad, 0x00bec1e2, 0x00e1d3e5, 0x00c8c1cc, 0x008b888c, 0x001c2320, 0x000d1b13,
- 0x000a1e14, 0x000b1f13, 0x00081f14, 0x00081e15, 0x000a1e17, 0x00091f1e, 0x00051c18, 0x00091e19, 0x00101b14, 0x000f1b0e, 0x00182514, 0x00202c1b, 0x00858b84, 0x00ebecec, 0x00fefcff, 0x00fafafb,
- 0x00fbfcfc, 0x00fdfdfa, 0x00dfcfc4, 0x009a806d, 0x00835c42, 0x00855a3f, 0x00835738, 0x007e5135, 0x00744938, 0x00633e2b, 0x00543421, 0x00432d17, 0x00382515, 0x00352417, 0x0034261d, 0x002f2921,
- 0x002b2321, 0x00221b1b, 0x0017100e, 0x000e0407, 0x00080101, 0x00050006, 0x0002010b, 0x00080812, 0x00150c1b, 0x00140816, 0x002b1821, 0x00371f27, 0x003d1b24, 0x0039151d, 0x00361216, 0x003a1418,
- 0x00361905, 0x00381a09, 0x0036160b, 0x002f0f09, 0x00270909, 0x00210603, 0x00260d03, 0x00321b0d, 0x00563927, 0x00765a42, 0x007e634b, 0x00533727, 0x003c2010, 0x003e2412, 0x00665040, 0x00857267,
- 0x00463d44, 0x000c071c, 0x00030c30, 0x00051449, 0x00071e63, 0x000b226e, 0x000b2271, 0x000a1e6d, 0x000c1b6c, 0x00091d6a, 0x00051d66, 0x00001660, 0x00011b70, 0x0005237d, 0x00123894, 0x001e45a5,
- 0x00235cc4, 0x002a64cf, 0x002661cb, 0x002663cf, 0x002c6cd6, 0x00276acb, 0x002767cb, 0x002a69ce, 0x00316dd4, 0x00326bd4, 0x00336fd2, 0x00316fd3, 0x004c73c4, 0x006682bf, 0x008a9fd0, 0x00b5c6e4,
- 0x00b5d3f8, 0x00779ede, 0x00325cb0, 0x001f4dad, 0x00335fcc, 0x006a90c0, 0x00c3deed, 0x00ecfbfb, 0x00fefdff, 0x00f0eeee, 0x00babbbc, 0x00acb5b2, 0x00dfe2e8, 0x00faf8fe, 0x00fef7fe, 0x00fcf6fc,
- 0x00fbfbf9, 0x00fdfbfa, 0x00e6e7e4, 0x00e2e1e0, 0x00f8f5f5, 0x00f9f9f8, 0x00f9f7f4, 0x00fcf7f5, 0x00fff8f9, 0x00fef8f9, 0x00faf6f9, 0x00fcfafd, 0x00fbf9fd, 0x00fbf9fc, 0x00fbf8fc, 0x00fcf8fe,
- 0x00fdf7fc, 0x00fdf9fb, 0x00fbf8fb, 0x00fdfbfd, 0x00eeeaf0, 0x00d9c6bf, 0x00ead3c7, 0x00f8f0eb, 0x00fdfbff, 0x00f8f8fe, 0x00f4f7f8, 0x00faf7f2, 0x00fff7ef, 0x00fce5dd, 0x00d8b1a5, 0x00ecbfba,
- 0x00f9fbfe, 0x00fcfaf9, 0x00f6e8e2, 0x00f9e5d7, 0x00f6e5d8, 0x00e4dcd1, 0x00efebe6, 0x00fdf9f7, 0x00f7e0d8, 0x00efc4b5, 0x00fccbb6, 0x00f6bfad, 0x00f8d0bd, 0x00fbe1c9, 0x00e9d4b9, 0x00eedac2,
- 0x00f3daca, 0x00ffebe3, 0x00fef0ef, 0x00fdf2f3, 0x00f6eaf1, 0x00f3eee1, 0x00b1b194, 0x00616443, 0x00222e0c, 0x00132204, 0x000d2302, 0x00091f04, 0x0022320e, 0x004d5c2b, 0x00839256, 0x00a7b46c,
- 0x00bfc676, 0x00c3c97c, 0x00c2c87c, 0x00c5ca83, 0x00c9ce8d, 0x00c5cb8a, 0x00c6ce89, 0x00c7d089, 0x00ced18c, 0x00cfd28e, 0x00c1cd82, 0x00aabe77, 0x008b9f67, 0x006e7f55, 0x00445533, 0x00334226,
- 0x00354325, 0x00394631, 0x00455344, 0x0055625e, 0x00757e87, 0x00787d96, 0x005e6380, 0x00464a6b, 0x00383b62, 0x003c3f63, 0x00545a77, 0x0074788b, 0x0085858e, 0x004d4848, 0x00676256, 0x00837c6a,
- 0x002e285b, 0x0015113c, 0x0011112f, 0x002b2f38, 0x0083795f, 0x00a68f5f, 0x009f8140, 0x00a17a32, 0x00815d2d, 0x0062471d, 0x0058401d, 0x00574024, 0x00938366, 0x00a7a18a, 0x008f927e, 0x008d9691,
- 0x0099a1ab, 0x00858695, 0x007d7c88, 0x00757074, 0x006c5c51, 0x005c4937, 0x004d3c25, 0x003a2a15, 0x00251107, 0x00160404, 0x00170b01, 0x00271e0f, 0x003b3226, 0x00453b2c, 0x00433826, 0x00382b1b,
- 0x001a1713, 0x00191713, 0x00969490, 0x00f0f0ed, 0x00fdfefc, 0x00fdfdfb, 0x00fdfefb, 0x00fcfcfd, 0x00bdc0c8, 0x006d6f77, 0x005e606a, 0x00555d69, 0x00575c66, 0x00565d65, 0x0066696e, 0x0079797a,
- 0x008a817e, 0x00978781, 0x00bfa79f, 0x00d3b3aa, 0x00c0958e, 0x00b38f8a, 0x00ab8d8e, 0x00836b75, 0x003b2a48, 0x00150f37, 0x00090d39, 0x0008103e, 0x003a4270, 0x00868cb5, 0x00b0b6d9, 0x009fa0bf,
- 0x006881ab, 0x002e4471, 0x00647ba6, 0x00aac1e7, 0x00a8c1f0, 0x009ebbed, 0x00819ad2, 0x004d639f, 0x00828bcb, 0x00a6a7e8, 0x008a92d6, 0x0085a4e6, 0x00b0c3fd, 0x00a9b8e6, 0x00818eaf, 0x00636b87,
- 0x00676f83, 0x0050576a, 0x00383f52, 0x00525666, 0x00545163, 0x004a5d65, 0x004d696f, 0x005d6e77, 0x00757185, 0x007b6b7e, 0x00705765, 0x00654d52, 0x00634f54, 0x0058535c, 0x00505862, 0x004b5f68,
- 0x005e6775, 0x005e6674, 0x00586070, 0x00515966, 0x00484b58, 0x003b3e4b, 0x00272c35, 0x002a2e38, 0x003e404d, 0x00494b56, 0x00565b62, 0x005f626c, 0x00686b76, 0x006c707a, 0x006a6d75, 0x00646973,
- 0x005a5d62, 0x004e5258, 0x004b5057, 0x0051555f, 0x004d505c, 0x00424a54, 0x00343f48, 0x0027303a, 0x00242633, 0x00222531, 0x00262a33, 0x0033383e, 0x00474b50, 0x005b5e62, 0x00696b6e, 0x0069696c,
- 0x00535c6a, 0x00434b59, 0x00353b49, 0x00272d3a, 0x001b212c, 0x00181e26, 0x0012171e, 0x0014181e, 0x00131018, 0x0009060d, 0x000c090d, 0x00070406, 0x000b090e, 0x00090b0f, 0x00080e0e, 0x00131c1d,
- 0x00272f30, 0x0037393c, 0x002a2b2d, 0x001f1b1e, 0x001d181b, 0x00430d15, 0x0054131a, 0x0046171a, 0x00180e0f, 0x00050b0a, 0x00010d0b, 0x00000d0d, 0x00040b16, 0x000c0e1f, 0x004e4b5f, 0x009d9cab,
- 0x00c6caeb, 0x00d6d7f9, 0x00cfd2f2, 0x00c4c8e2, 0x008d8ea2, 0x0042454f, 0x0063686b, 0x00dee0e1, 0x00fffdfe, 0x00fffffe, 0x00fdfdfc, 0x00fbfafb, 0x00dbd4df, 0x007c767d, 0x003f3f3e, 0x005d5c5a,
- 0x00747a79, 0x007a7f7f, 0x007a8584, 0x00728383, 0x006b7c7f, 0x006e7179, 0x00888890, 0x009fa3ab, 0x00cbdeda, 0x00dff3e1, 0x00dfeed1, 0x00bac798, 0x00c4c89c, 0x00dfe3be, 0x00e4e5cc, 0x00d5d8ca,
- 0x0076acc8, 0x005f8ea8, 0x0084adc4, 0x00aecdde, 0x00d4e5ee, 0x00ebf5f6, 0x00f2f8f4, 0x00f4f5ee, 0x00f9f3f0, 0x00faf1ee, 0x00f4f1ee, 0x00f0f2f5, 0x00f3f4f8, 0x00f6f7fb, 0x00f2f6f7, 0x00f2f4f8,
- 0x00f1f3f9, 0x00f4f4f9, 0x00f1f3f7, 0x00f2f6f9, 0x00f7f7fc, 0x00f6f7fc, 0x00f5f8fb, 0x00f7f7fa, 0x00f9f9fb, 0x00f9fbfe, 0x00f8fcfc, 0x00f2f6f5, 0x00f5f6fb, 0x00f4f4f9, 0x00f2f3f5, 0x00f0f1f5,
- 0x00ece8fd, 0x00ececf9, 0x00e6f0f4, 0x00e5f6ed, 0x00f1f7f3, 0x00ededf2, 0x00d8d6e3, 0x00afa9c1, 0x00cfcce1, 0x00e3e8f7, 0x008ba7bf, 0x00326da1, 0x001d48a1, 0x002440a9, 0x00233795, 0x0035407f,
- 0x00696358, 0x0087794f, 0x00a38750, 0x00a07849, 0x00945849, 0x007c5033, 0x00704d2b, 0x006f502f, 0x00624833, 0x00563d2b, 0x0052422d, 0x00554b38, 0x00574a38, 0x004f3f31, 0x004e3d2c, 0x004e392b,
- 0x0049392a, 0x004c382c, 0x0047362d, 0x0043342b, 0x00423133, 0x00392a2c, 0x00352727, 0x00342829, 0x0036292a, 0x0039292a, 0x003c2f29, 0x0040352c, 0x004a3e39, 0x004f4342, 0x005b5150, 0x00635a5c,
- 0x00736161, 0x007d6664, 0x00856a61, 0x008d6a5b, 0x00936856, 0x0099654a, 0x009b613e, 0x009e5b37, 0x009b5132, 0x008d4b2b, 0x007f452b, 0x006c422d, 0x00563c30, 0x004c3629, 0x004a3525, 0x004b3521,
- 0x00a6aea2, 0x00090d02, 0x000e0e06, 0x000c0e06, 0x0014140b, 0x000e0f08, 0x0014130f, 0x00312f2c, 0x00818778, 0x00cbd1c3, 0x00f6f6ed, 0x00f5f3ea, 0x00f3f2f3, 0x00f3eff4, 0x00f7f1fb, 0x00f4f3f9,
- 0x00ebf4ea, 0x00e7f0e9, 0x00eff2f6, 0x00e7e9f8, 0x009d9fc0, 0x006f859b, 0x00a2b9c7, 0x00d1dde9, 0x00dde1de, 0x00e6e8e3, 0x00f1f2eb, 0x00e8f2e8, 0x00e5f4ea, 0x00e6efeb, 0x00eaeced, 0x00f0ebf0,
- 0x00e5e7ed, 0x00e7e7ed, 0x00eceaf1, 0x00edebf2, 0x00edebf3, 0x00eceaf2, 0x00eeebf4, 0x00edeaf3, 0x00e7e9ed, 0x00e5e7ea, 0x00e8e7ee, 0x00ebe9f2, 0x00e8e7ef, 0x00e2e1ea, 0x00dcd9e4, 0x00dedae3,
- 0x00d2d9d9, 0x00d7dcdd, 0x00dddde2, 0x00e1dce4, 0x00e1dde8, 0x00e4dcea, 0x00ecd1e0, 0x00c68999, 0x00a8332f, 0x00ca4137, 0x00cd3a2d, 0x00c43523, 0x00b35541, 0x00d19585, 0x00edcbc5, 0x00eadedb,
- 0x00c7d7d3, 0x00c9d4d1, 0x00d7e0e2, 0x00dce3e9, 0x00dbdfe5, 0x00dcdfe2, 0x00e2e2e8, 0x00e6e3ed, 0x00dce1de, 0x00dadedf, 0x00dddfe8, 0x00d5dfe4, 0x00d1d9e1, 0x00d5dee3, 0x00dce0e8, 0x00dbe2e5,
- 0x00d2ded5, 0x00d0ddd7, 0x00dee4e1, 0x00dde3e0, 0x00ced3ce, 0x00bdbcc0, 0x00aca7b0, 0x0099949d, 0x00727774, 0x004c504b, 0x00272928, 0x000f0e10, 0x00090709, 0x00100d13, 0x0025222d, 0x005e5b64,
- 0x00b4af9e, 0x00dad4c9, 0x00f7f1ed, 0x00f7f3f2, 0x00f1eeef, 0x00eeeaed, 0x00e8e2e5, 0x00efe8ea, 0x00e7e8e2, 0x00d1d1c7, 0x00c4bec3, 0x00d5c8e0, 0x00dbdaee, 0x00cfd2e1, 0x00c0c4cf, 0x00acacb9,
- 0x00aeabb0, 0x00b4afb1, 0x00bcb4b7, 0x00c3c0c4, 0x00d0dadb, 0x00dce3e2, 0x00f8f7f9, 0x00faf8fb, 0x00fafdfb, 0x00f7fbf8, 0x00fcfffb, 0x00f6f9f6, 0x00838986, 0x00141a19, 0x00272b2d, 0x00353a3d,
- 0x0038413d, 0x0047504d, 0x00a4a8ab, 0x00f0f0f2, 0x00f9faf9, 0x00f8f8f9, 0x00f9f6fa, 0x00f7f4f8, 0x00eef2ec, 0x00edefec, 0x00eeedee, 0x00f0edef, 0x00eeebf0, 0x00e9e7ec, 0x00e1dfe8, 0x00dedde9,
- 0x00d4dad9, 0x00d6dadc, 0x00cfcfd8, 0x00c0c3ca, 0x00a4a9b1, 0x0093a18f, 0x008e9b84, 0x008f998b, 0x00879088, 0x006e7172, 0x00484250, 0x00443549, 0x00523b4e, 0x005c4253, 0x00674b5b, 0x00705460,
- 0x00555a6f, 0x004f546f, 0x004f5379, 0x0051597e, 0x0066768b, 0x0088979f, 0x00b6bdc0, 0x00d4d7d3, 0x00ebeae8, 0x00f7f4f5, 0x00fef6fe, 0x00fff6ff, 0x00fdf7fd, 0x00fef7fd, 0x00fff9ff, 0x00fffbff,
- 0x00f7fcf4, 0x00f9faf3, 0x00fbfaf4, 0x00fbfaf5, 0x00fcfbf2, 0x00fcfcf9, 0x00fdfdfe, 0x00fefefe, 0x00f8fdf7, 0x00f8fdf7, 0x00fafdfc, 0x00fbfcfd, 0x00fcfcf9, 0x00fefcfb, 0x00fffdff, 0x00fffeff,
- 0x00f7faf9, 0x00f9fbf9, 0x00fdfdfe, 0x00fffdff, 0x00fffcfe, 0x00fefafd, 0x00fef9ff, 0x00fcf8fc, 0x00f5f5f1, 0x00f6f4f2, 0x00fbf6fb, 0x00f9f3fd, 0x00fcfafc, 0x00fbf9fa, 0x00d9d7db, 0x00a3a1a7,
- 0x00707572, 0x00494e51, 0x0049485b, 0x00524d69, 0x00575174, 0x00595b7d, 0x005e5d81, 0x005d5e84, 0x00505d7f, 0x004c5a7d, 0x004b5583, 0x0044507d, 0x00434977, 0x00424872, 0x00474576, 0x004b4677,
- 0x0041456b, 0x0041476a, 0x0046486b, 0x00464665, 0x00434561, 0x00424460, 0x00444462, 0x00404563, 0x00374059, 0x00343c54, 0x0033375b, 0x002a305b, 0x0058607a, 0x00bdbed5, 0x00fdfeff, 0x00fcfafd,
- 0x00f8fdf6, 0x00f8fef7, 0x00e7eaea, 0x00828388, 0x0013171f, 0x00292b2f, 0x00514f54, 0x006d6975, 0x0071757d, 0x00737580, 0x00787582, 0x007b747c, 0x007d7368, 0x0081755d, 0x008a7b5a, 0x00908256,
- 0x0081774f, 0x006e6742, 0x00534b30, 0x00413a25, 0x002e2c1e, 0x002d2e24, 0x002d2d2a, 0x00292a28, 0x00192118, 0x00131813, 0x0017120b, 0x00241100, 0x00413027, 0x00968682, 0x00dfd4d8, 0x00dbd3de,
- 0x00c2c9ca, 0x00bfc5c5, 0x00cecdd3, 0x00d6d3d3, 0x00e4dedd, 0x00d8dcdb, 0x00d4dad7, 0x00ecf3f0, 0x00f1f8f4, 0x00ecf1ec, 0x00f5f4f8, 0x00f4f1fa, 0x00f7f2ff, 0x00f9f2ff, 0x00faf1ff, 0x00fbf2ff,
- 0x00e4f1ef, 0x00aab4e3, 0x00535baf, 0x004955be, 0x004c65b4, 0x004b65b4, 0x004b60bf, 0x00525dd7, 0x004451b0, 0x006677aa, 0x00c4c7e1, 0x00dbc9d8, 0x00c2b8c1, 0x008e8c93, 0x00262c2b, 0x000d1d19,
- 0x00041f0f, 0x00041f10, 0x00091e15, 0x00091c17, 0x000c1c1b, 0x00091e1f, 0x000c1e1d, 0x000d1f18, 0x00071904, 0x00122008, 0x002e3521, 0x004c5140, 0x00a9aaa0, 0x00eff2ed, 0x00fffdff, 0x00fffbff,
- 0x00f6fbf6, 0x00f9fdf3, 0x00d1c4ba, 0x008c7163, 0x0079533f, 0x007d563f, 0x007e523a, 0x00774b38, 0x0060442d, 0x00543826, 0x00492d22, 0x00412a1b, 0x0039261c, 0x0037281f, 0x00372a26, 0x00352a26,
- 0x002a2521, 0x002d261f, 0x00321e1f, 0x002e1519, 0x0021070a, 0x00120405, 0x00100206, 0x00110e05, 0x00020c00, 0x00060c00, 0x00221c13, 0x00332019, 0x00442524, 0x00402120, 0x003a1d1c, 0x003c1f23,
- 0x00381f16, 0x003b1f1b, 0x003e1f22, 0x00391719, 0x002f0c0f, 0x00270505, 0x00381614, 0x004c2821, 0x00563e21, 0x00775e3c, 0x009a7d65, 0x00856758, 0x00513823, 0x003f2813, 0x00614d3d, 0x0077685b,
- 0x00313329, 0x0002080d, 0x00000926, 0x00010f39, 0x00031854, 0x00081b64, 0x000d1e71, 0x000e1c6d, 0x0005195a, 0x0002195a, 0x00081c62, 0x00031860, 0x00001464, 0x00011e74, 0x0013328f, 0x001f3f9f,
- 0x001652b6, 0x002260c3, 0x002864cc, 0x002766ce, 0x002c6dd3, 0x002769cf, 0x002b6dd5, 0x00306ed6, 0x002369c8, 0x002465c7, 0x002869d5, 0x002369dd, 0x00225cbe, 0x0016479d, 0x00244f9c, 0x00587bc8,
- 0x00689be2, 0x004378c1, 0x002652a4, 0x00244b9e, 0x005773ca, 0x00a5bbd8, 0x00eaf6f9, 0x00fcfcfc, 0x00f3f8e2, 0x00bcbeac, 0x00504f47, 0x006f6f6e, 0x00dfdfe8, 0x00faf7fc, 0x00fff7ff, 0x00fff7ff,
- 0x00f4faec, 0x00f8fcf1, 0x00f6f5f2, 0x00f8f4f6, 0x00fffbfd, 0x00faf6f9, 0x00e5dce0, 0x00ded4d5, 0x00e2dfd8, 0x00ece9e1, 0x00fcf8f5, 0x00fbf8fd, 0x00fcfafd, 0x00fcf8fd, 0x00fef9ff, 0x00fff8ff,
- 0x00f8f8f4, 0x00f6f9f7, 0x00fbf9fa, 0x00fefcff, 0x00f5f1f5, 0x00f3e8e6, 0x00ffeff1, 0x00fff9fa, 0x00f5f6f3, 0x00f2f5f1, 0x00f9fafc, 0x00fdfbfa, 0x00fdf6f5, 0x00fcefea, 0x00e2c4c0, 0x00e3c2bd,
- 0x00f2faf7, 0x00f8fbf7, 0x00fbf4f5, 0x00fdf8f2, 0x00fdfaf5, 0x00f9faf5, 0x00fbf8fa, 0x00fffcff, 0x00f4ebe2, 0x00eedccf, 0x00fde5da, 0x00f8d3cc, 0x00eecdbd, 0x00f1d8c2, 0x00eed0bf, 0x00f3d5c2,
- 0x00f3d8bf, 0x00f4d8ca, 0x00f5d9d3, 0x00fdefee, 0x00f5edf1, 0x00f4eee7, 0x00dad5c8, 0x007d7c6a, 0x001b2c0a, 0x00132706, 0x000c1f03, 0x000c2105, 0x00253611, 0x00566533, 0x008d985c, 0x00a4ae66,
- 0x00afbd66, 0x00afbc69, 0x00aeb76d, 0x00acb36e, 0x00b0b577, 0x00b3b87a, 0x00b9be7f, 0x00bbc17f, 0x00bdc97a, 0x00c3d17e, 0x00c3d082, 0x00b4c57d, 0x008d9e64, 0x00647549, 0x00364223, 0x00262f19,
- 0x00112605, 0x000f2209, 0x0036433b, 0x004f5960, 0x004c5367, 0x00343867, 0x002c2e6b, 0x002c2f6d, 0x001d2c60, 0x00172656, 0x001e2956, 0x00293254, 0x00464c5b, 0x00444345, 0x0047413c, 0x007e7469,
- 0x00554f7b, 0x000f1241, 0x00050b3d, 0x00061136, 0x0045464b, 0x0090816d, 0x00967856, 0x008e653a, 0x006e5823, 0x00574d24, 0x00514228, 0x0067543c, 0x0092876d, 0x00999782, 0x005d6058, 0x0051555b,
- 0x006c7f90, 0x005f6b86, 0x008082a6, 0x009a9bbd, 0x0076708a, 0x0057494b, 0x00412d25, 0x0036231d, 0x00130c00, 0x00070000, 0x00150e02, 0x00292013, 0x00413628, 0x004b3e2f, 0x004d3c30, 0x00422e23,
- 0x0017190a, 0x000b0b02, 0x00797874, 0x00eeedea, 0x00fdfcfc, 0x00fefdfe, 0x00ffffff, 0x00fffeff, 0x00c1cccc, 0x00747a7e, 0x00595d69, 0x00595d6f, 0x005f6271, 0x0063656f, 0x006e6d74, 0x007e797a,
- 0x008b8277, 0x00978376, 0x00b29288, 0x00c1978c, 0x00bc8c80, 0x00b28b84, 0x00896c6b, 0x004f353f, 0x00100f23, 0x00080d2f, 0x0005113f, 0x000d1c52, 0x0019285d, 0x0047527e, 0x00c0c7f0, 0x00bcbee3,
- 0x003c5b9d, 0x0015326f, 0x00475c96, 0x006172a7, 0x006c84b4, 0x00708bb7, 0x00879ecc, 0x008ea3d0, 0x00a1aec6, 0x00c8cadb, 0x00bfc4e5, 0x0093aeef, 0x007987bb, 0x00636b8f, 0x007a799a, 0x009b98b0,
- 0x006d808a, 0x00334756, 0x002f394e, 0x0053566d, 0x00645f72, 0x00576672, 0x005b6f7b, 0x00606f79, 0x00636b70, 0x0068656e, 0x00635b65, 0x005c525c, 0x00515058, 0x0049555a, 0x00515f67, 0x00556770,
- 0x0057656e, 0x005a6872, 0x005e6774, 0x00595f6d, 0x00505763, 0x00474c58, 0x00414351, 0x00444755, 0x004b545a, 0x00545c5f, 0x005f636c, 0x00666a76, 0x0070757e, 0x0072767e, 0x006f6f79, 0x00696b72,
- 0x00566160, 0x00525a5d, 0x00585d65, 0x005b5f6a, 0x00515563, 0x00474e5d, 0x003e4654, 0x00323746, 0x001a262c, 0x001a242a, 0x00282e35, 0x003a3d43, 0x00525158, 0x00615e63, 0x00726f73, 0x00747174,
- 0x0054636c, 0x0046525d, 0x0039404e, 0x002c3140, 0x00212736, 0x00252a38, 0x00272835, 0x00282734, 0x00151d20, 0x000b1116, 0x000a0b12, 0x0008080d, 0x00070a10, 0x00080d12, 0x0010151b, 0x0020272d,
- 0x00363c38, 0x00424240, 0x00383232, 0x002c1d1e, 0x00271211, 0x00360509, 0x003d040e, 0x002f070e, 0x000c0a02, 0x00020700, 0x0005090c, 0x0008080f, 0x0005030c, 0x0018131d, 0x00675f70, 0x00b3aebf,
- 0x00c8d3e9, 0x00c8d1e9, 0x00c8cce7, 0x00bcbed8, 0x00707487, 0x002a2c37, 0x004f4e56, 0x00c8cad0, 0x00f7fdf4, 0x00f9fdf4, 0x00fefdfb, 0x00fef8fe, 0x00ede2ee, 0x00918d97, 0x0036373f, 0x0053565c,
- 0x0066746a, 0x00768375, 0x00808275, 0x007c7b6d, 0x00857f6d, 0x009d9793, 0x00d1ced3, 0x00eaeaef, 0x00dff7ed, 0x00ccebd3, 0x00c7e0c5, 0x00b9cda8, 0x00c1cda8, 0x00c7d1b5, 0x00c0cbb8, 0x00abb4ab,
- 0x004488ac, 0x005792b4, 0x0090c0e1, 0x00afd6ef, 0x00d4e8f2, 0x00ebf7fa, 0x00f5f6fa, 0x00fdf4f6, 0x00f2f4e7, 0x00f7f4e6, 0x00f6f4f0, 0x00eef1f7, 0x00ecf1f4, 0x00eff0f4, 0x00f3f1fa, 0x00f3f1fa,
- 0x00eff2f3, 0x00eef3f4, 0x00f1f3f7, 0x00f4f5fa, 0x00f5f7fb, 0x00f6f7fb, 0x00f7f7fa, 0x00f7f8fa, 0x00eff5f3, 0x00eff5f3, 0x00f3f4f7, 0x00f5f5f9, 0x00f4f7f8, 0x00f4f6f8, 0x00f4f3f8, 0x00f3f1f5,
- 0x00efe6f7, 0x00ebe9e9, 0x00eaefe1, 0x00eef6d9, 0x00f4f7e1, 0x00f8f1f5, 0x00f1e3f7, 0x00d2bfe0, 0x00b8b5ba, 0x00c9d2c4, 0x00c5d8d8, 0x00749bba, 0x0025448b, 0x00203a91, 0x00283a93, 0x002d3d86,
- 0x003c484a, 0x00616447, 0x008b7b57, 0x00957655, 0x00906254, 0x007c5c44, 0x006d4d38, 0x00654b3b, 0x004d432d, 0x004d4332, 0x006c615a, 0x007f7771, 0x006b635d, 0x004f453c, 0x00504139, 0x00524135,
- 0x00453d2a, 0x00423828, 0x0045362e, 0x00453532, 0x00382d2c, 0x0034292a, 0x00332427, 0x00302123, 0x00262118, 0x0028231a, 0x00312620, 0x003d2f27, 0x00483836, 0x00504341, 0x005a4d52, 0x0063585e,
- 0x00665d59, 0x0071625c, 0x007f6560, 0x0086645b, 0x008b6554, 0x00936350, 0x0099604b, 0x00995c40, 0x00905430, 0x00844f30, 0x00794934, 0x006a4436, 0x00554037, 0x004f3930, 0x004d382d, 0x0051382c,
- 0x00adafa9, 0x00101009, 0x0012110c, 0x0011110e, 0x0012120e, 0x00272821, 0x00676a63, 0x00a4a6a0, 0x00e2e4dc, 0x00f6f9f1, 0x00edede7, 0x00f4f2eb, 0x00f1eef0, 0x00f0eef3, 0x00f2f0f7, 0x00f2f3f8,
- 0x00f0f2eb, 0x00f2f4ee, 0x00eeefec, 0x00f7f7fb, 0x00d2d2e5, 0x00b5c4ce, 0x00ccdddf, 0x00e2e8ef, 0x00e8e7e9, 0x00edeceb, 0x00eff0ea, 0x00e9f3e6, 0x00e4f3e6, 0x00e6efe9, 0x00e8ebef, 0x00eae8f3,
- 0x00e9e6ed, 0x00e8e6ed, 0x00e9e7ef, 0x00eae9f0, 0x00eae9f1, 0x00ecebf3, 0x00edecf5, 0x00ededf5, 0x00ecebf2, 0x00ebebf1, 0x00eceaf2, 0x00ebeaf2, 0x00e5e4ec, 0x00e0dee6, 0x00dbdae2, 0x00dad8e0,
- 0x00dadce2, 0x00dfdfe5, 0x00dedde4, 0x00dedce4, 0x00dddee6, 0x00e2e3ec, 0x00dccdd4, 0x00ab7b82, 0x00ab3c3e, 0x00c44542, 0x00b6352d, 0x00bb4839, 0x00cb8e7d, 0x00edd0c3, 0x00efeae4, 0x00d7e3e3,
- 0x00cdd7db, 0x00cfd6da, 0x00dbe0e4, 0x00dde3e7, 0x00dde1e6, 0x00dfe2e6, 0x00e0e1e6, 0x00e2e2e6, 0x00e5e2e7, 0x00e5e3e7, 0x00e3e2e8, 0x00dddfe8, 0x00dbdbe3, 0x00dcdce4, 0x00dddde4, 0x00dddbe4,
- 0x00d8d9d9, 0x00e1dfe2, 0x00e0dee0, 0x00e1dfe1, 0x00d5d5d8, 0x00d6d3dc, 0x00d0cbd5, 0x00c3c1c8, 0x009f9d9f, 0x007c7a79, 0x005e5b5b, 0x00363334, 0x00141113, 0x00120e15, 0x00110d18, 0x00100d17,
- 0x00453a42, 0x007c737d, 0x00aba5b2, 0x00adacba, 0x00a0a2b1, 0x008c8d9f, 0x0089899a, 0x00a9a6b6, 0x00dfdce6, 0x00d2ced6, 0x00978b9c, 0x0087738e, 0x008b839a, 0x00848296, 0x007d808e, 0x008b8c9a,
- 0x009c91a0, 0x007c717d, 0x005a5059, 0x00656067, 0x0093989a, 0x00c2c4c4, 0x00f6f6f5, 0x00fbfdfb, 0x00fdfefd, 0x00fcfefd, 0x00fdfefd, 0x00f6f8f6, 0x00838986, 0x00141a17, 0x00232824, 0x002f3531,
- 0x00363a37, 0x00545759, 0x00c4c5c5, 0x00f7f8f9, 0x00f6f7f7, 0x00f5f6f8, 0x00f6f6f8, 0x00f6f6fa, 0x00f4f2f5, 0x00f5f1f3, 0x00f0eef1, 0x00edecf0, 0x00ebebee, 0x00ebeaef, 0x00e5e5ea, 0x00e5e3ea,
- 0x00e6e4e9, 0x00e8e6ed, 0x00e4e3e9, 0x00dadadf, 0x00c4c6cc, 0x00bbc5bc, 0x00b4beaf, 0x00abb1aa, 0x00bcc1c1, 0x00bbbec3, 0x00908d9c, 0x0070697c, 0x00554a5d, 0x0056485c, 0x0058485e, 0x0059485d,
- 0x00484d73, 0x00555b7e, 0x006c7492, 0x008a95aa, 0x00b1bfca, 0x00cbd7db, 0x00e4eaeb, 0x00f5f7f6, 0x00fffafe, 0x00fef9fd, 0x00fdf6fb, 0x00fff9fc, 0x00fef8fb, 0x00fff7fe, 0x00fff6fe, 0x00fef6fe,
- 0x00fefbfb, 0x00fcf8f6, 0x00f9f7f0, 0x00f6f7f0, 0x00f7f9f1, 0x00fbf9f8, 0x00fcfbfb, 0x00fcfcfa, 0x00fcfdfc, 0x00fcfdfb, 0x00fcfdfd, 0x00fbfcfc, 0x00fafcf9, 0x00fafbf8, 0x00fafbfa, 0x00fbfbfa,
- 0x00faf8fa, 0x00fdfbfd, 0x00fdfbfd, 0x00fdfbfe, 0x00fdfbfe, 0x00fefbfe, 0x00fcf8fd, 0x00fcf8fc, 0x00f7f6fa, 0x00f8f5f9, 0x00f5f3f9, 0x00f7f5fc, 0x00fdfcfc, 0x00f8f7f6, 0x00e5e5e3, 0x00d5d3d3,
- 0x00cdcbcb, 0x00aaa4b1, 0x00625d6e, 0x00544861, 0x00554d6d, 0x00575476, 0x00565a7a, 0x00585d81, 0x00566085, 0x00505b83, 0x004e5783, 0x004a547f, 0x0049517a, 0x00464c76, 0x00444772, 0x00464770,
- 0x0045486f, 0x0044486d, 0x0045476a, 0x00454666, 0x00434662, 0x00424560, 0x00434560, 0x00404460, 0x003b3f5d, 0x00373b5c, 0x0033375a, 0x002b3258, 0x006b738b, 0x00ced0e4, 0x00fdfffd, 0x00fbfefb,
- 0x00fafcf8, 0x00fbfcf9, 0x00dddfdf, 0x006e7176, 0x0011151f, 0x00313137, 0x004e4c52, 0x0065636c, 0x006f6e77, 0x006f6e78, 0x006e6e74, 0x006b696a, 0x00686356, 0x0069614c, 0x006f644a, 0x00746948,
- 0x0070664d, 0x00655e47, 0x004f4837, 0x003a362a, 0x0023241c, 0x001d221b, 0x001a1f1c, 0x00161a18, 0x000f1510, 0x00101311, 0x0013110d, 0x001b1005, 0x00221b14, 0x005e5558, 0x00b2afb5, 0x00d1cfda,
- 0x00cbcad8, 0x00cbc9d2, 0x00d4d1da, 0x00dfdae1, 0x00e7e2e1, 0x00e9eaef, 0x00f4f9f9, 0x00e7ecf6, 0x00cdd0dd, 0x00dadae5, 0x00f2eff9, 0x00f4f0fc, 0x00f7f3fe, 0x00faf5ff, 0x00f9f3fd, 0x00faf5fc,
- 0x00dfe7ec, 0x00959cd8, 0x004b54af, 0x004a56c9, 0x004764aa, 0x004662b0, 0x00455db9, 0x004b5ad3, 0x004b54b6, 0x00707eae, 0x00b8bcd2, 0x00c6b6c6, 0x00c0b5c0, 0x0096969b, 0x0026302c, 0x00102018,
- 0x00081d11, 0x00081d13, 0x000a1c17, 0x000a1b17, 0x000d1a19, 0x000c1e1f, 0x000d1e1d, 0x00102018, 0x00131e0c, 0x00252c16, 0x00484d35, 0x00767763, 0x00c8c9bb, 0x00f4f6f0, 0x00fdfefb, 0x00fbfdfd,
- 0x00fafafd, 0x00fcfcf9, 0x00bfb3ac, 0x007c6457, 0x0073513d, 0x0076523b, 0x00724e36, 0x00684631, 0x00583a29, 0x004c3024, 0x0041271d, 0x003a2519, 0x0033221a, 0x002f221b, 0x002f211e, 0x002f201f,
- 0x003b302e, 0x004e393a, 0x00583b3c, 0x005d393d, 0x00592f31, 0x003f211a, 0x00200e02, 0x00130c00, 0x000a1400, 0x000e1200, 0x00191202, 0x00301a11, 0x00472b23, 0x00492b26, 0x0040261e, 0x003a271d,
- 0x00472b31, 0x00482a30, 0x00482a2c, 0x00412423, 0x00381916, 0x0034140f, 0x00402116, 0x00543224, 0x0054351e, 0x0061422a, 0x007b5c4a, 0x00816657, 0x006d5542, 0x00543f2d, 0x005d4c3a, 0x005d5241,
- 0x0025231f, 0x00060815, 0x00010825, 0x00000930, 0x00021448, 0x0004165e, 0x00091b6b, 0x000a1d69, 0x0008185d, 0x00071a5d, 0x000a1c60, 0x0006185f, 0x0000135f, 0x00001c6d, 0x00103086, 0x001a3b94,
- 0x00144cb4, 0x00235ec4, 0x002a66cc, 0x002b6bd1, 0x002d70d3, 0x00286dd0, 0x00296fd3, 0x002a6ed1, 0x002469cd, 0x00296ace, 0x002e6fd7, 0x002266d4, 0x000642a9, 0x00053a9b, 0x001146a0, 0x002e64be,
- 0x00366fc9, 0x003067bd, 0x002352a2, 0x003a5ca6, 0x008aa0d7, 0x00d5e6f6, 0x00f3fefd, 0x00fdfff6, 0x00dad5c6, 0x00737164, 0x000b0b07, 0x0057585a, 0x00ebeef3, 0x00fcfdfd, 0x00fffbfd, 0x00fdf6fc,
- 0x00f5faf1, 0x00fffbf9, 0x00fafbf6, 0x00fefdfc, 0x00f9f9f9, 0x00f6edf3, 0x00aea4a8, 0x009b9194, 0x00d4cdc9, 0x00f5ebe9, 0x00faf6f4, 0x00fcf9fe, 0x00fcf9f9, 0x00fcf9ff, 0x00fbfafe, 0x00fbfafd,
- 0x00fbfaf9, 0x00fef9fd, 0x00f8f6f9, 0x00fdfaff, 0x00f9f8fb, 0x00f9f1f7, 0x00faf7fa, 0x00fdf7f9, 0x00f8f2f4, 0x00faf6f6, 0x00fbfafc, 0x00fbfafa, 0x00f9f7f8, 0x00fef9f8, 0x00f8e7e3, 0x00fbe6e0,
- 0x00f9f7fd, 0x00fcfafe, 0x00faf7f7, 0x00fffcfc, 0x00fbfdfa, 0x00fafcfc, 0x00f7fafd, 0x00f8fbff, 0x00faf8f7, 0x00fdf6f4, 0x00fdfaf6, 0x00faece8, 0x00f6e2d5, 0x00f3dfce, 0x00efd5bd, 0x00f3d6ba,
- 0x00fbd4bd, 0x00eec6b8, 0x00e5c0b9, 0x00fbe8e7, 0x00f3efee, 0x00f7efee, 0x00f5f6ed, 0x00b5b8a9, 0x00404d30, 0x00203013, 0x0017280d, 0x00102208, 0x002f3f1a, 0x0062713e, 0x008f9b5c, 0x009fab5f,
- 0x00abb566, 0x00a7b064, 0x009ba35e, 0x00909858, 0x008b9259, 0x008c9459, 0x0098a062, 0x00a0a867, 0x00afb96f, 0x00bbc779, 0x00bcc779, 0x00adbb71, 0x008b995d, 0x00616f41, 0x002a3614, 0x00162108,
- 0x000f1d09, 0x00222f24, 0x00566063, 0x00495263, 0x00363c5d, 0x00333a70, 0x002f3778, 0x002d387d, 0x00293a7c, 0x00293c7a, 0x002a3b74, 0x002a3967, 0x0029334f, 0x002d303e, 0x00221f25, 0x005b5553,
- 0x006e6088, 0x002a2956, 0x00111d50, 0x00061b4d, 0x00202a46, 0x006a5f65, 0x008c7569, 0x00846448, 0x00634c34, 0x00635c4a, 0x007c746a, 0x008e8276, 0x00837b6c, 0x00838475, 0x00555a55, 0x00424a54,
- 0x005a6686, 0x00626c96, 0x00545d8f, 0x008b93c6, 0x008891bb, 0x00696573, 0x00362d2a, 0x00221a13, 0x00130d05, 0x000c0602, 0x00181305, 0x002a2314, 0x003f3525, 0x00483d2a, 0x00463826, 0x003a2918,
- 0x0017160e, 0x00090702, 0x006d6c67, 0x00ecece8, 0x00fefdfc, 0x00fefefe, 0x00fdfdfe, 0x00fdfdfe, 0x00d6dae0, 0x0084878d, 0x00535761, 0x005b5e72, 0x00676777, 0x006d6a78, 0x00736d74, 0x007d7573,
- 0x00907e76, 0x009e8075, 0x00a78275, 0x00b28774, 0x00c79782, 0x00caa395, 0x009f867f, 0x0058454a, 0x000f122d, 0x0008123d, 0x0005194e, 0x000b2360, 0x00142862, 0x001f2d5c, 0x00828db4, 0x00c0c7e8,
- 0x006c83cd, 0x005b6eb3, 0x007f8fca, 0x00707caf, 0x006e85b9, 0x006787bd, 0x007a99cd, 0x0097b7e4, 0x00a4b1d4, 0x00b5b7d1, 0x009096b8, 0x00506aa9, 0x004c5883, 0x00707290, 0x00adabc0, 0x00c1c2cf,
- 0x00707b8d, 0x0027364d, 0x002e3a55, 0x00515771, 0x00646175, 0x005b6777, 0x005d6d7c, 0x005d6871, 0x00606266, 0x00626268, 0x00595860, 0x004d5159, 0x004b565d, 0x004c5d63, 0x0056676d, 0x005d6d73,
- 0x00626b7b, 0x00656e7d, 0x00646b7c, 0x005f6676, 0x00575e6d, 0x00505664, 0x00525662, 0x00585b66, 0x0060646f, 0x00636870, 0x00656974, 0x00686d7a, 0x006c717b, 0x006a6d75, 0x0063656c, 0x00606266,
- 0x005a6062, 0x005c6165, 0x00656971, 0x00646974, 0x00585c6a, 0x004b5362, 0x00414b59, 0x00363e4d, 0x00222c37, 0x00242b36, 0x00323640, 0x0044464e, 0x0059585f, 0x00646266, 0x00706d71, 0x00757174,
- 0x005f6775, 0x00545868, 0x00464a59, 0x003d4150, 0x003c3f4d, 0x003f4451, 0x003c434f, 0x00373c48, 0x002a2e3c, 0x001b202d, 0x0010121e, 0x000e1017, 0x000a0f15, 0x000f1519, 0x001c2026, 0x00292f35,
- 0x004d4b4e, 0x00594e53, 0x004b3a39, 0x003f2421, 0x0035160f, 0x002e0907, 0x00220002, 0x00150000, 0x000b0603, 0x00070804, 0x00060504, 0x000b0508, 0x00080003, 0x00120c12, 0x0058565f, 0x00a3a8b1,
- 0x00bbc2da, 0x00bec4dd, 0x00afb2cc, 0x008f92a6, 0x003d4250, 0x000d121a, 0x0034373c, 0x00a9aeb0, 0x00f9fcf9, 0x00fefffd, 0x00fdfbfa, 0x00fefafc, 0x00f8f4f9, 0x00a1a3ac, 0x00262e36, 0x00464f56,
- 0x006a6f67, 0x00807b6e, 0x0094846c, 0x00a88a6b, 0x00c59773, 0x00dbbfb1, 0x00f7f1ec, 0x00f1f4ec, 0x00d3e9e2, 0x00c7ded7, 0x00c6dfcf, 0x00cadec7, 0x00cedbc4, 0x00c6d2c3, 0x00bed0bf, 0x00aabeb6,
- 0x007bb2db, 0x0089b8df, 0x00acd3f5, 0x00bfdef7, 0x00dbeaf4, 0x00ebf3f5, 0x00f1f3f1, 0x00f6f2ee, 0x00f3f4ed, 0x00f4f3ed, 0x00f4f5f3, 0x00f2f5f8, 0x00eef1f5, 0x00edeff3, 0x00eef0f5, 0x00eff0f5,
- 0x00eff1f4, 0x00eff1f5, 0x00f1f2f7, 0x00f3f5fa, 0x00f4f6fb, 0x00f4f6f9, 0x00f4f5f7, 0x00f2f5f6, 0x00eff2f3, 0x00eef2f3, 0x00f0f2f5, 0x00f2f3f6, 0x00f2f5f6, 0x00f3f5f5, 0x00f3f3f6, 0x00f1f2f5,
- 0x00f7e6fe, 0x00f2ebf1, 0x00eaefe3, 0x00eaf6db, 0x00eff6e2, 0x00f5f2f2, 0x00f9eef9, 0x00f6e7f9, 0x00c8c3c8, 0x00acb0a6, 0x00bdcac3, 0x00b3c9df, 0x00596ea6, 0x00283e89, 0x00253b87, 0x00233980,
- 0x00253552, 0x00393e42, 0x005f584d, 0x00786755, 0x00826359, 0x006d594d, 0x005e4e44, 0x00544943, 0x00413e3e, 0x00515153, 0x007a7b82, 0x00868a8f, 0x0098999b, 0x00818080, 0x00595150, 0x004b423c,
- 0x004b4135, 0x00483e34, 0x00423630, 0x003e322f, 0x00352b2a, 0x00302627, 0x002a1f21, 0x00281d20, 0x00211d14, 0x00231f17, 0x002a221a, 0x00372720, 0x0041332f, 0x004a3d3c, 0x00544b4c, 0x005d5457,
- 0x00655a5b, 0x006e5d5d, 0x00785f5c, 0x007d5f55, 0x00856153, 0x008b614f, 0x008f5f48, 0x00925c40, 0x0090553a, 0x0085523b, 0x00794e3e, 0x006a493f, 0x0055433e, 0x004f3d36, 0x004c3d2f, 0x004f3d2c,
- 0x00ababa8, 0x000e0f09, 0x000e0f0a, 0x0016150e, 0x00535652, 0x0092948d, 0x00d7d8d4, 0x00f5f4f0, 0x00f3f2f0, 0x00f5f6f1, 0x00f3f3ed, 0x00f3f1ea, 0x00f3eff5, 0x00f1eef6, 0x00f3f2f9, 0x00f2f3f3,
- 0x00f2f2e6, 0x00f5f7ea, 0x00efefe5, 0x00f3f1ef, 0x00ede8f6, 0x00e6eaed, 0x00ecf1ef, 0x00eeecf0, 0x00f5ecf4, 0x00f5eef2, 0x00eeecea, 0x00e9f0e8, 0x00e5f0e8, 0x00e8eeee, 0x00e9e8f4, 0x00ebe5f9,
- 0x00e9e6ee, 0x00e8e6ee, 0x00e7e7ee, 0x00eaeaf1, 0x00eae9f2, 0x00edebf4, 0x00eceaf3, 0x00ebeaf3, 0x00ebe9f1, 0x00eaeaf1, 0x00ededf4, 0x00ecebf3, 0x00e3e2ea, 0x00dfdde6, 0x00dddbe3, 0x00d9d8e1,
- 0x00dedbe2, 0x00dfe0e5, 0x00dedfe6, 0x00dddae4, 0x00dddce4, 0x00e3e3e9, 0x00cbbbc0, 0x009c7177, 0x00bc6164, 0x00d27270, 0x00d67973, 0x00df9689, 0x00edd2c9, 0x00f1ece8, 0x00e1ebef, 0x00d1e4ed,
- 0x00d5d3df, 0x00d6d4df, 0x00e0dde8, 0x00dfdde5, 0x00dedde5, 0x00e0dfe6, 0x00e1dfe6, 0x00e1e1e7, 0x00e7e5ec, 0x00e6e5eb, 0x00eae7ef, 0x00eee3f3, 0x00eae2ef, 0x00e7ddeb, 0x00e3d9e5, 0x00e2d5e3,
- 0x00e0d5df, 0x00ecdfeb, 0x00eae0ea, 0x00e7dbe6, 0x00dad2dd, 0x00d3cad8, 0x00dcd5e1, 0x00e1dde8, 0x00b6b2b8, 0x00868285, 0x00757273, 0x006d6a6b, 0x00353136, 0x00120c16, 0x00100918, 0x00120b1b,
- 0x001c1332, 0x00342e4d, 0x004d4b6a, 0x00585a7b, 0x00595f82, 0x0051577c, 0x004f5478, 0x00636687, 0x00b2b2d0, 0x00d2ceeb, 0x00a69ab7, 0x00614d65, 0x0041394f, 0x00686879, 0x00a1a4b2, 0x00cbc9d8,
- 0x00dcd1df, 0x00c0b2be, 0x0071616a, 0x003a2c33, 0x00403a3c, 0x00827e7f, 0x00e3e0e0, 0x00fbfafb, 0x00fdfefe, 0x00fbfdfd, 0x00fcfefe, 0x00f6f8f7, 0x00838886, 0x00111813, 0x001f261f, 0x002a322a,
- 0x00343836, 0x00606161, 0x00d5d8d5, 0x00f0f4f3, 0x00f4f4f6, 0x00f1eff5, 0x00f2f0f8, 0x00f4f2f9, 0x00f8f3fc, 0x00f5f1f6, 0x00f4eff7, 0x00ecedf4, 0x00edebf3, 0x00e8eaef, 0x00e9e8ec, 0x00e8e7e7,
- 0x00ede8ec, 0x00ebe8eb, 0x00eeeaee, 0x00e2dfe8, 0x00d8d4da, 0x00d2ced4, 0x00cdc9ce, 0x00bfbfc4, 0x00ceccd3, 0x00dad8de, 0x00cfcdd5, 0x00bbb9c5, 0x00b0adbd, 0x009a95a9, 0x007d758f, 0x007a718c,
- 0x008a8dac, 0x009fa3bb, 0x00bcc0cf, 0x00d3d6df, 0x00eceef5, 0x00f4f3fa, 0x00fbf9fe, 0x00faf9fb, 0x00fbf5fd, 0x00faf8f7, 0x00fbfaf8, 0x00faf9ed, 0x00fbf6fa, 0x00faf5f8, 0x00fef5ff, 0x00fdf4fd,
- 0x00fef9ff, 0x00fcfaf9, 0x00f9fcf5, 0x00f6fdf4, 0x00f7fdf9, 0x00fbfdfb, 0x00fffdfd, 0x00fffffc, 0x00fefdfe, 0x00fdfdfc, 0x00fcfcfc, 0x00fcfcfc, 0x00fdfdfc, 0x00fcfcfc, 0x00fafbfb, 0x00f9faf9,
- 0x00fdf5fb, 0x00fcf6fc, 0x00fbf6fc, 0x00fbf9fd, 0x00fbf9fd, 0x00fcf9fd, 0x00fbf7fb, 0x00faf6fb, 0x00f8f4f9, 0x00f5f5f7, 0x00f6f5f8, 0x00f4f5fa, 0x00f4f0f4, 0x00f8f7f8, 0x00f7f6f3, 0x00edeeea,
- 0x00f6efef, 0x00e1dce2, 0x00b4abbb, 0x0072697e, 0x00514466, 0x004f4e6e, 0x00545379, 0x00575a7f, 0x00575d87, 0x00515b83, 0x004f5983, 0x004c5684, 0x004d5480, 0x004c517c, 0x004a4c74, 0x00484b71,
- 0x00474970, 0x0044476d, 0x00434569, 0x00414363, 0x00424561, 0x00424661, 0x00434661, 0x0040445f, 0x003f3f60, 0x00393d5c, 0x00383c60, 0x0031385f, 0x0079809c, 0x00dcdfed, 0x00fbfefe, 0x00fcfefd,
- 0x00fffcfc, 0x00fafbf9, 0x00ced0d0, 0x00595c61, 0x00131824, 0x002b2835, 0x00443d49, 0x004d4c54, 0x00565259, 0x00555456, 0x00535551, 0x004d4e4a, 0x0048453c, 0x00484136, 0x004d4537, 0x00524937,
- 0x0050493d, 0x004b473a, 0x003b3a31, 0x00292b24, 0x00141918, 0x000c1311, 0x000b1010, 0x00080e0c, 0x00070c08, 0x000a0e09, 0x000c0c0a, 0x000d0c0c, 0x00101014, 0x002a2a35, 0x006b6a79, 0x00acabbd,
- 0x00d3cfe3, 0x00d0c9dd, 0x00dcd7e5, 0x00e9def0, 0x00ede3ec, 0x00f0e9f9, 0x00e6e4fc, 0x00bab8da, 0x00a6a3c2, 0x00cfcae4, 0x00f1ebfc, 0x00f3eefd, 0x00f8f4fd, 0x00f7f3ff, 0x00f7f3fc, 0x00faf7fd,
- 0x00d5dce7, 0x00878fcd, 0x004d57bd, 0x004d5cd2, 0x00415fa8, 0x00425fa8, 0x00465ebd, 0x004b59d8, 0x004f54bd, 0x006e7ba9, 0x00b2b6c8, 0x00bdadbd, 0x00c4bcc6, 0x009ea0a2, 0x0027312d, 0x000e1d16,
- 0x000a1d15, 0x00081c14, 0x000d1b18, 0x0010191a, 0x0014171a, 0x00111b1d, 0x000c1817, 0x000d1a13, 0x00202314, 0x003c3c27, 0x0064654a, 0x008f8a75, 0x00dbdac9, 0x00f8f7f0, 0x00fcfffa, 0x00f9fefc,
- 0x00fefffe, 0x00f7f5f3, 0x00b2a4a1, 0x00725c52, 0x00735341, 0x0074523f, 0x00714b39, 0x00664334, 0x0054362e, 0x00452d25, 0x003a2320, 0x00341f19, 0x002c1a18, 0x00261a14, 0x00291b1a, 0x002d1f1f,
- 0x00473535, 0x005c4144, 0x006e4b4c, 0x007d5052, 0x00834e51, 0x006b3e3b, 0x003c1e17, 0x00150603, 0x00060800, 0x00111100, 0x001a1402, 0x002c1509, 0x00442317, 0x004a2b22, 0x00442e20, 0x003a2f1c,
- 0x0045262d, 0x0047292e, 0x004b2d2d, 0x004d302d, 0x004a2f23, 0x00492a1e, 0x00411e0f, 0x003e1d0e, 0x003f1c0e, 0x00472518, 0x0060423a, 0x00745d54, 0x00776456, 0x005f4c40, 0x0054463a, 0x003c332a,
- 0x00140f15, 0x00090b1b, 0x00050c29, 0x0000052e, 0x00010c42, 0x00011056, 0x00081a68, 0x000b1c67, 0x000d1b62, 0x000a1a5d, 0x000b1a5c, 0x0006185d, 0x0002155f, 0x00011a69, 0x000f2a7c, 0x0017358b,
- 0x001247af, 0x00225bc0, 0x002a65c9, 0x002c6bcf, 0x002c6ed1, 0x002b6fd4, 0x00286fd3, 0x00266ccf, 0x002b6dd1, 0x002e70d0, 0x00306fd2, 0x00134fb2, 0x00033499, 0x00134aaf, 0x002d66d1, 0x002e6bd4,
- 0x00316fdf, 0x002862c1, 0x002250a2, 0x005a79b7, 0x00c6d0ec, 0x00eef9fc, 0x00f6fbfe, 0x00f9fbf9, 0x00a19a92, 0x002d2b23, 0x00090c0c, 0x00717879, 0x00f2fafb, 0x00fafffa, 0x00fffdfd, 0x00fffafc,
- 0x00fffdf7, 0x00fcfbf8, 0x00fef8f9, 0x00fdf8f9, 0x00faf4fb, 0x00ede7eb, 0x00c5bdc2, 0x00bcb7b7, 0x00eae1df, 0x00fbf4ee, 0x00fefbf9, 0x00fcf8ff, 0x00fdf9fc, 0x00fbf9fd, 0x00fcf9fe, 0x00fdf9fe,
- 0x00faf8f9, 0x00fcfafe, 0x00fcf7fa, 0x00fcf9fc, 0x00fef8fc, 0x00f7f3fd, 0x00fcf6fe, 0x00fef7fc, 0x00fdf4f7, 0x00fcf5f5, 0x00fef8fb, 0x00fbfdfd, 0x00f8faff, 0x00f9f9fc, 0x00fef6f7, 0x00fdf5f1,
- 0x00fff9fe, 0x00fdfafe, 0x00fffbfe, 0x00fdfafc, 0x00fbfafd, 0x00f8fbfc, 0x00f8f9fd, 0x00f7f9fc, 0x00fffaff, 0x00fbfafc, 0x00fffbfd, 0x00f6fafa, 0x00fffcf7, 0x00fcf2e5, 0x00fbe4ce, 0x00fcd9c0,
- 0x00feccb7, 0x00ecbdad, 0x00f2c6be, 0x00fceeea, 0x00faf3f1, 0x00f8f2f7, 0x00fefafb, 0x00e9e6e1, 0x007e8771, 0x0035442a, 0x001c2c13, 0x0015290d, 0x003d4e28, 0x006c7b47, 0x00949f60, 0x00a5af63,
- 0x00adb76e, 0x00a6b069, 0x00939d5b, 0x007f884b, 0x006e7642, 0x006c743f, 0x007d844c, 0x008e9659, 0x00a6af67, 0x00b1bd6f, 0x00b2be70, 0x00a7b565, 0x00879056, 0x005a6337, 0x00242b0e, 0x00101803,
- 0x00232a1f, 0x00707772, 0x008d949e, 0x00444c62, 0x00333762, 0x00363f78, 0x00324184, 0x002c3f85, 0x002c3f8b, 0x002a4088, 0x00283f83, 0x002f437e, 0x002d3965, 0x002f3152, 0x00232037, 0x003a3242,
- 0x00776a7e, 0x00555a79, 0x00253a69, 0x001b3a77, 0x001c2b60, 0x0040395d, 0x00836d81, 0x00a6878b, 0x007b6a6e, 0x0068656d, 0x007b7a84, 0x00978f93, 0x009b9996, 0x00807f7e, 0x00616468, 0x005d626f,
- 0x00484b75, 0x005f689b, 0x003a4983, 0x004c5b97, 0x005d74a7, 0x00686a83, 0x004c484c, 0x002c2828, 0x001f1c1a, 0x00191611, 0x001b180a, 0x00292213, 0x003a301e, 0x00413421, 0x0040301d, 0x00372311,
- 0x00110d0a, 0x00120f0b, 0x0083807c, 0x00f0eeeb, 0x00fbfafa, 0x00fdfdfd, 0x00fcfdfc, 0x00fdfefe, 0x00e7e8ee, 0x0095969c, 0x0051535d, 0x005d5f75, 0x006b6b7b, 0x00726e7c, 0x00786d75, 0x00837274,
- 0x00967873, 0x009f7b6f, 0x00a77a6b, 0x00b1806b, 0x00ce947f, 0x00d0ad9c, 0x00c5b5ab, 0x00857d7f, 0x001a2644, 0x00011442, 0x00001853, 0x00032265, 0x00112765, 0x00112255, 0x00646d98, 0x00a3a8ca,
- 0x00677abc, 0x008493c9, 0x00c6d1fa, 0x00c0c9f2, 0x00a2b8ee, 0x008cafed, 0x006e95da, 0x005985cb, 0x00586daa, 0x00525a8e, 0x003b4279, 0x00425893, 0x00979ec3, 0x00cdc8dd, 0x00d6cedb, 0x00c4c2ca,
- 0x00828ea3, 0x002f425b, 0x00283855, 0x00525a79, 0x006e6882, 0x00666a83, 0x00666c83, 0x00676878, 0x00656068, 0x00626269, 0x00595c65, 0x004e5964, 0x00536370, 0x005a6875, 0x005f6f78, 0x00646f75,
- 0x00656f7f, 0x00626b7b, 0x00606778, 0x005a6171, 0x00565b6c, 0x00525666, 0x005c5e6c, 0x00626370, 0x00676773, 0x00676972, 0x00626571, 0x00646775, 0x00646570, 0x005d6067, 0x00595d62, 0x005d6264,
- 0x00606568, 0x0062676b, 0x00686c74, 0x00696c78, 0x00616474, 0x00575d6e, 0x004c5666, 0x00424d5e, 0x003a424f, 0x003c434f, 0x00494c57, 0x00585961, 0x0065636a, 0x006b676d, 0x00736e73, 0x00736e72,
- 0x00646673, 0x00565966, 0x004a4d5c, 0x00444756, 0x004d4f5f, 0x00545767, 0x00505565, 0x00444c5b, 0x00384053, 0x00283043, 0x00181e2e, 0x00141820, 0x0012161f, 0x00191f26, 0x00252a32, 0x0034383e,
- 0x005a5158, 0x00685355, 0x00624342, 0x005a332f, 0x0053241c, 0x003a1d1c, 0x001c0a10, 0x00090100, 0x00060404, 0x00040503, 0x00080501, 0x000f0506, 0x000c0201, 0x00090105, 0x002e2e2f, 0x00646d6c,
- 0x00979ab1, 0x00a2a7bd, 0x008b8ea2, 0x005a5e6d, 0x00191e28, 0x00050a12, 0x00282c31, 0x00939699, 0x00fdffff, 0x00fdfdfd, 0x00fdfdf9, 0x00fefdf4, 0x00f7faf8, 0x00abb4b6, 0x00243336, 0x00404d4d,
- 0x006e6964, 0x008e7764, 0x00c09271, 0x00dc986b, 0x00e89255, 0x00dfb393, 0x00faebdd, 0x00f4f0e7, 0x00e2f2f1, 0x00d5e8e7, 0x00cbdfdf, 0x00c7d9d2, 0x00cdd8ce, 0x00cfded6, 0x00d4e6df, 0x00cfe5e0,
- 0x00b6d9f9, 0x00acceea, 0x00bed7ee, 0x00d2e5f5, 0x00edf0f6, 0x00f2f2f3, 0x00f3efee, 0x00f3efec, 0x00f0eff2, 0x00edeff4, 0x00eff2f6, 0x00f2f4f7, 0x00f0f1f5, 0x00efeff3, 0x00eeeef2, 0x00edeef1,
- 0x00eff1f6, 0x00eef1f6, 0x00f0f2f8, 0x00f3f5fa, 0x00f4f6fb, 0x00f4f6f9, 0x00f3f4f7, 0x00f2f4f5, 0x00f0f2f4, 0x00eff1f2, 0x00f0f2f4, 0x00f2f3f5, 0x00f2f5f5, 0x00f2f5f6, 0x00f1f3f7, 0x00f0f3f6,
- 0x00f9ecfe, 0x00efecf4, 0x00e7efee, 0x00e4f1e6, 0x00eaf3ec, 0x00f2f3f6, 0x00f6f1f8, 0x00fbf3fe, 0x00e2e0e4, 0x00b4bcb8, 0x00a9b0ae, 0x00c1c1d1, 0x008e93bd, 0x00475592, 0x00293c84, 0x001f3684,
- 0x0020346a, 0x001c2a48, 0x002c313f, 0x00474043, 0x005a4545, 0x004d4748, 0x004e4f55, 0x00484c57, 0x00454e5e, 0x00627083, 0x007f8fa4, 0x0076869c, 0x0098a1af, 0x00b2b5c1, 0x0099969d, 0x006a6569,
- 0x004c4137, 0x00473e36, 0x00463d38, 0x003f3634, 0x00352d2d, 0x002e2728, 0x002a2324, 0x00221d1e, 0x001f1c16, 0x001f1e18, 0x00242017, 0x00321f1c, 0x003c2f2c, 0x0044383b, 0x004f4649, 0x00574c52,
- 0x00605358, 0x00675556, 0x006f5754, 0x00775750, 0x00805b4f, 0x00825b4b, 0x00855a46, 0x00895a41, 0x008c573f, 0x00825440, 0x00775144, 0x00684d45, 0x00554845, 0x004f403c, 0x004d4035, 0x00514031,
- 0x00aeaea9, 0x00141612, 0x004a4d4a, 0x0082827b, 0x00cacbc9, 0x00efefed, 0x00f5f6f5, 0x00f4f5f0, 0x00f1f2f0, 0x00f2f2f0, 0x00eeeeea, 0x00f3f2ef, 0x00f5f0f6, 0x00f3f0fa, 0x00efeef3, 0x00edeced,
- 0x00eef0e3, 0x00f3f2e5, 0x00f2f4e2, 0x00f0ebe2, 0x00efeae9, 0x00eee7e6, 0x00eeece8, 0x00eee5ec, 0x00f3e2f4, 0x00f3e6f3, 0x00ede8ec, 0x00e9f0eb, 0x00e6f1ed, 0x00e9eff4, 0x00e8e7f9, 0x00e9e1fc,
- 0x00e7e5ed, 0x00e7e6ee, 0x00e6e6ee, 0x00e9e8f0, 0x00eae8f1, 0x00ebe9f2, 0x00e8e6ef, 0x00e7e6ee, 0x00e7e5ee, 0x00e8e7f0, 0x00ececf4, 0x00ebebf1, 0x00e2e0e9, 0x00dddbe4, 0x00dbd9e1, 0x00dad9e2,
- 0x00dedbe5, 0x00dfdee7, 0x00dddde4, 0x00d9d9df, 0x00d9d8de, 0x00e6dbe1, 0x00c0a7ab, 0x00a17b7e, 0x00e0b0a9, 0x00f0c5bb, 0x00f2d7c7, 0x00eee4d3, 0x00eaf6eb, 0x00e9ecf4, 0x00e4ddf1, 0x00e1d1f2,
- 0x00e4cfe4, 0x00e0cee1, 0x00e1d0e1, 0x00ded2e1, 0x00dfd9e7, 0x00e0dde9, 0x00e2e3ec, 0x00e2e7ef, 0x00dee9ed, 0x00d7e3ea, 0x00d2d8e2, 0x00cfcddf, 0x00cac8d7, 0x00d1d1e1, 0x00dcdfea, 0x00dbdeed,
- 0x00dfdced, 0x00ceccdd, 0x00b7bac8, 0x00cbcedd, 0x00d8dbea, 0x00d9d6e5, 0x00d9d3dd, 0x00dfd8e1, 0x00c7bec3, 0x00968d92, 0x007e7779, 0x00837e80, 0x006b656d, 0x003d3744, 0x001c1525, 0x00261d33,
- 0x0032356e, 0x00444a82, 0x00545d95, 0x005b69a2, 0x006171ac, 0x006978b5, 0x006370ab, 0x005a649c, 0x006f75a7, 0x009fa1d4, 0x00c4c4e7, 0x00a6a4af, 0x00889399, 0x00a4b6ba, 0x00cce1e2, 0x00d5e4e8,
- 0x00e4e5ea, 0x00eee5ec, 0x00c8bbbd, 0x007a6e6c, 0x002f2a27, 0x004a4846, 0x00cacbc9, 0x00f7f8f9, 0x00fafcfd, 0x00feffff, 0x00fcfdfe, 0x00f5f8f7, 0x00838885, 0x00101611, 0x001d231b, 0x00292f26,
- 0x002f3333, 0x00717272, 0x00e0e2e3, 0x00f0f2f3, 0x00edeeef, 0x00edebf1, 0x00edebf3, 0x00f0ecf3, 0x00f3eff9, 0x00f9f1fd, 0x00f5f1fb, 0x00eef1fb, 0x00ecf0f2, 0x00eeeef2, 0x00efedef, 0x00f1ecf0,
- 0x00f1ecef, 0x00f1eaee, 0x00f1ecef, 0x00eae5ea, 0x00e6e1e6, 0x00eedef2, 0x00ecdbf2, 0x00dfd1e3, 0x00e0d8de, 0x00ece6e7, 0x00ebe8e6, 0x00e0dfdd, 0x00e1e0e3, 0x00e4e3ea, 0x00ccc9d6, 0x00c4c0d0,
- 0x00d1cac0, 0x00e4dad7, 0x00eadce4, 0x00efdcee, 0x00edd9f0, 0x00ecdcef, 0x00e6dce6, 0x00e5dfe3, 0x00e0e1e3, 0x00dce1e0, 0x00dde5d6, 0x00e1ebc5, 0x00e4e9d4, 0x00e9eae6, 0x00f1eef5, 0x00f3eff6,
- 0x00f7f1f9, 0x00f6f5f7, 0x00f6faf8, 0x00f4fcf8, 0x00f2fbfc, 0x00f4f9f9, 0x00f7f8f7, 0x00f7f8f7, 0x00f5f5f4, 0x00f3f3f4, 0x00f1f0f0, 0x00f0efef, 0x00f2f1f3, 0x00f4f3f5, 0x00f5f6f5, 0x00f7f7f8,
- 0x00f9f3f8, 0x00f7f1f7, 0x00f8f3f8, 0x00f9f4f9, 0x00f9f5fa, 0x00f6f3f8, 0x00f6f3f7, 0x00f5f2f7, 0x00f4f0f5, 0x00f3f1f6, 0x00f3f1f6, 0x00f4f2f9, 0x00f0f1f4, 0x00f6f6f5, 0x00f8f7f1, 0x00f7f4ee,
- 0x00f5edec, 0x00f2eaef, 0x00eee1ee, 0x00c8b9d0, 0x007d6c8d, 0x00545073, 0x004f5175, 0x00555980, 0x00575d86, 0x00515982, 0x004c5781, 0x004e5682, 0x00505782, 0x0053557d, 0x004e5276, 0x004b4f73,
- 0x0045476f, 0x0044456d, 0x003f4267, 0x003d4162, 0x003f415f, 0x00424560, 0x0041445f, 0x0041425d, 0x003e4260, 0x003d4060, 0x003b4061, 0x00393e65, 0x008b90ab, 0x00e8ecf6, 0x00fafcfb, 0x00f9fcfb,
- 0x00fefdfb, 0x00feffff, 0x00b2b5b6, 0x003e4246, 0x00121723, 0x00262130, 0x002f2633, 0x002f2b31, 0x00313332, 0x0032352f, 0x0031362a, 0x002c3128, 0x0026281f, 0x0025231f, 0x002a2626, 0x00312b2b,
- 0x0034302f, 0x00302e2e, 0x00242424, 0x00171a1d, 0x00090f11, 0x0002090d, 0x00000708, 0x00000606, 0x00020904, 0x00060a02, 0x00060a09, 0x00030b11, 0x0004091a, 0x0013192b, 0x00363a4e, 0x007d7d97,
- 0x00d4cfec, 0x00d4cae7, 0x00e4daf6, 0x00f2e4fd, 0x00f7e7fb, 0x00efe4fd, 0x00c9bff7, 0x00a195d5, 0x00a7a0d6, 0x00ccc4f1, 0x00e1d8f8, 0x00f3ebff, 0x00f9f4fd, 0x00f7f2f9, 0x00f5f2f4, 0x00f9f8f5,
- 0x00cad5dc, 0x007e87cc, 0x004d57c1, 0x004d5dd7, 0x004161a6, 0x004260a8, 0x00465fb9, 0x004b59db, 0x00555ac2, 0x007f8cb8, 0x00c2c6d3, 0x00cabac8, 0x00c4bbc5, 0x00a3a5a5, 0x0028322d, 0x00091b13,
- 0x000c1d18, 0x000c1c16, 0x000e1c18, 0x0012181a, 0x0015171a, 0x00161c1e, 0x000e1915, 0x00111910, 0x002e331e, 0x00525339, 0x007c7c5d, 0x00a4a085, 0x00e8e6d4, 0x00fdfdf5, 0x00fafef9, 0x00f9ffff,
- 0x00fefdff, 0x00f3eff2, 0x00a39997, 0x006c5951, 0x006c5140, 0x00745241, 0x006d4b3c, 0x005f4032, 0x00503533, 0x00442c2b, 0x00382122, 0x00301d1d, 0x00291916, 0x00251819, 0x002b1d1f, 0x00352826,
- 0x00503737, 0x0069484c, 0x00784e4e, 0x008c565a, 0x008e4f4d, 0x00753949, 0x00643044, 0x003d1e2a, 0x000c0506, 0x000e0605, 0x001f100d, 0x002b0c0f, 0x003e151b, 0x00472421, 0x00492f2a, 0x003a3123,
- 0x00412925, 0x00412b23, 0x00462d1e, 0x004c321d, 0x004c3518, 0x004d3118, 0x0043200e, 0x003d1a0d, 0x003a1211, 0x0041191a, 0x00604041, 0x00755f5f, 0x00806e69, 0x006e5c58, 0x00534642, 0x001f1517,
- 0x000b0612, 0x0017162f, 0x00101336, 0x00070936, 0x00060e45, 0x00010d56, 0x00041661, 0x00081963, 0x000a195c, 0x000b1859, 0x0009195a, 0x000b1b60, 0x00061a63, 0x00041867, 0x00031c6d, 0x00112c7f,
- 0x001142a8, 0x001f55b9, 0x00265fc2, 0x002867c9, 0x002a6ed0, 0x002a70d2, 0x00246ccd, 0x00246acb, 0x002e70d1, 0x002e71d7, 0x002760bd, 0x001c4393, 0x001d479d, 0x002f5fc2, 0x003268d7, 0x002e72e4,
- 0x002a6de5, 0x00265fc6, 0x003465b2, 0x0095b2e1, 0x00e9eff9, 0x00f6f9ff, 0x00f4f5fe, 0x00cfcede, 0x004c484b, 0x00070607, 0x00212628, 0x0094a1a4, 0x00eefdff, 0x00f4fefe, 0x00f8fbf6, 0x00fefdf1,
- 0x00fefdf5, 0x00fefefa, 0x00fbfbf6, 0x00fffbfc, 0x00f8f3f8, 0x00f9f2f7, 0x00faf1f8, 0x00f7eff1, 0x00faf5f3, 0x00fef9f4, 0x00fcf7f5, 0x00fcf9fc, 0x00fcf9fd, 0x00fdf8fc, 0x00fcf9fc, 0x00fcf9ff,
- 0x00f9f6f9, 0x00fefbff, 0x00fbf8fc, 0x00fdf8fc, 0x00f8f8f9, 0x00fcf6fb, 0x00fbf8fd, 0x00faf5fa, 0x00fdf3f0, 0x00fff5f6, 0x00faf7f9, 0x00f8fbff, 0x00f2f8fc, 0x00f6f8fc, 0x00fcfbfa, 0x00f9f4f0,
- 0x00f8e7e8, 0x00f8e9ed, 0x00f9f3f3, 0x00f9f6f5, 0x00fbf8f9, 0x00fefbfe, 0x00fffcfe, 0x00fcfdfd, 0x00fefbfe, 0x00fcf8fe, 0x00f3f8f9, 0x00ebfdfe, 0x00f6fefe, 0x00fbf8ee, 0x00fcf6e2, 0x00fee5ce,
- 0x00fed1bf, 0x00f9c4b6, 0x00fddcd0, 0x00fef6ec, 0x00f6f3ed, 0x00faf3f8, 0x00fcf9fd, 0x00fdfbfb, 0x00bbc3b2, 0x005e6956, 0x00192a12, 0x001e2f17, 0x00455730, 0x0073804f, 0x0096a262, 0x00aab568,
- 0x00b2be79, 0x00aab573, 0x00949f62, 0x0078834b, 0x005e6738, 0x005b6334, 0x00717a46, 0x00879059, 0x00a2af6b, 0x00b0bc75, 0x00aeba6f, 0x009eac5b, 0x007b8349, 0x004e562a, 0x001c2306, 0x00101805,
- 0x00646a60, 0x00cfd4d2, 0x009da2b2, 0x00353b5b, 0x002f3265, 0x00313c76, 0x00314381, 0x002d4383, 0x002a428c, 0x002d4891, 0x002a428e, 0x002f438b, 0x002e3a79, 0x0034376d, 0x00201d49, 0x001f183e,
- 0x005e554b, 0x006c737f, 0x00476286, 0x003b5d9f, 0x0020367b, 0x0034306c, 0x00665482, 0x00a98baa, 0x00ad9cbf, 0x008785ad, 0x007e81a7, 0x00a59fba, 0x00b3afbf, 0x0083808c, 0x0084828e, 0x0088869a,
- 0x002c325a, 0x00495287, 0x005267a0, 0x00425d99, 0x003d6096, 0x005c6583, 0x006a6775, 0x0057575d, 0x00474a48, 0x00444643, 0x0039392d, 0x00433e2f, 0x004a3f2e, 0x00493a2a, 0x00412d1b, 0x003a2410,
- 0x00151410, 0x002a2924, 0x00aaaaa4, 0x00f4f4ef, 0x00fafaf8, 0x00fdfefd, 0x00fcfdfd, 0x00fbfcff, 0x00eff2f1, 0x00a6a8af, 0x00565866, 0x005e5f75, 0x006e6b7d, 0x00746c7a, 0x007c6e74, 0x00836f71,
- 0x0094746d, 0x009c7365, 0x00a67765, 0x00b68069, 0x00ca8f79, 0x00d2af9e, 0x00dfd6cb, 0x00a5a4a5, 0x0022304f, 0x00021448, 0x00011d5a, 0x0002246b, 0x00112e6d, 0x00102357, 0x0047567f, 0x008991b0,
- 0x007787a0, 0x0099a4bc, 0x00c0c9dd, 0x00b0bad6, 0x00758dc6, 0x00527acc, 0x00396cd2, 0x001d55c9, 0x002447c0, 0x00293cb0, 0x00505fbb, 0x0098abdd, 0x00d8daf5, 0x00e3d9e9, 0x00d6ccd5, 0x00cecacc,
- 0x00929cb2, 0x003b4c69, 0x00233857, 0x005e678a, 0x006f698a, 0x006d6587, 0x006d6986, 0x0068647b, 0x00645c64, 0x005d5c63, 0x00565b64, 0x00556570, 0x00586a79, 0x00606d7c, 0x00626a76, 0x0064646d,
- 0x0060687a, 0x005b6272, 0x00535a6a, 0x004f5866, 0x00525867, 0x00525866, 0x005e6370, 0x00666874, 0x00676976, 0x00696a76, 0x00616371, 0x005f6371, 0x005e606b, 0x00585b61, 0x005a5f62, 0x00656b6b,
- 0x00717576, 0x006f7376, 0x006c6f77, 0x00676b78, 0x00636778, 0x005c6375, 0x00525c6e, 0x00495466, 0x004c535f, 0x00545964, 0x005b5e68, 0x0064666d, 0x0066666b, 0x006a686c, 0x006c696c, 0x00636062,
- 0x00595663, 0x004d4e5a, 0x00474855, 0x00464956, 0x00545967, 0x005e6474, 0x00585f71, 0x00485264, 0x003d4a5e, 0x00334054, 0x00222b3b, 0x001b2229, 0x001f252c, 0x002a3239, 0x00393e46, 0x0047484f,
- 0x005f5157, 0x00715557, 0x00744e49, 0x0077433f, 0x0076382b, 0x00493430, 0x001a1d1e, 0x00040a05, 0x00000501, 0x00040601, 0x000b0501, 0x00110504, 0x000c0201, 0x00040100, 0x00040c05, 0x0018281f,
- 0x00464a5c, 0x00595f6f, 0x00484d5c, 0x00262b37, 0x000a0f18, 0x00040910, 0x001e2025, 0x00808082, 0x00f8fbfc, 0x00feffff, 0x00fcfef6, 0x00feffe8, 0x00f4fdf0, 0x00b4c5bd, 0x002e4340, 0x00384747,
- 0x00706056, 0x009b6c55, 0x00cc8154, 0x00f28348, 0x00fa7426, 0x00de9770, 0x00f8dccc, 0x00fcede5, 0x00f0f4fe, 0x00e5eef9, 0x00d9e8f1, 0x00d0d7e5, 0x00cfd9d9, 0x00d9e4e7, 0x00d4e6e4, 0x00d7e9ec,
- 0x00dde6f9, 0x00d4dbeb, 0x00dcdfe8, 0x00efecf0, 0x00faf1f0, 0x00fbf0ef, 0x00f6f0ed, 0x00f2f0f0, 0x00eaf1f9, 0x00e5f1fa, 0x00e5eff7, 0x00e8edf2, 0x00edeff4, 0x00edf0f3, 0x00edeff1, 0x00edeef1,
- 0x00eef1f4, 0x00eef1f5, 0x00f0f2f6, 0x00f2f4f8, 0x00f4f5f9, 0x00f3f4f8, 0x00f2f3f6, 0x00f1f3f4, 0x00f2f4f5, 0x00f2f3f4, 0x00f1f2f4, 0x00f1f2f4, 0x00f1f4f5, 0x00f1f5f6, 0x00f1f4f6, 0x00f0f3f6,
- 0x00f3f2f5, 0x00eaf1fa, 0x00dfeffb, 0x00dcf1fd, 0x00e0f2fc, 0x00e6f3f7, 0x00eef5f3, 0x00f1f5ed, 0x00e9f3f7, 0x00d2e1ec, 0x00b2b7c4, 0x00bcaabd, 0x00a09bb9, 0x007f84b8, 0x00485599, 0x002d4591,
- 0x00294490, 0x001f3273, 0x00111d48, 0x001c1a36, 0x002e252f, 0x00282b3f, 0x00314059, 0x002d405b, 0x00476485, 0x007292b6, 0x007b9bc0, 0x008ba9cc, 0x0090a6c3, 0x00a5b5cc, 0x00d0dbea, 0x00b4bdc9,
- 0x008a837a, 0x00625a53, 0x00443c38, 0x00433c3a, 0x00363030, 0x002d2a29, 0x00252422, 0x001f1e1c, 0x00191a13, 0x001c1d16, 0x00211c15, 0x00311d1a, 0x003c2c2b, 0x00433538, 0x004b4246, 0x0051484e,
- 0x005a4c53, 0x00604e51, 0x00664f4f, 0x006b4e49, 0x00745349, 0x007b5749, 0x007f5847, 0x00825842, 0x00845741, 0x007d5544, 0x00725248, 0x00664e4a, 0x00554949, 0x004d413e, 0x004c4035, 0x00514132,
- 0x00b1c8be, 0x00596966, 0x00c2c3c8, 0x00ebe6ea, 0x00f9f2fc, 0x00f5f4f7, 0x00f4f3f1, 0x00f0f1e8, 0x00f2f2f3, 0x00f1edf2, 0x00f0ebf2, 0x00efeded, 0x00f2f1f4, 0x00f0f0f2, 0x00f0eef4, 0x00f0ecf2,
- 0x00e8ebed, 0x00e9edec, 0x00ebecee, 0x00ededf0, 0x00ebeaf3, 0x00e9e9ed, 0x00eae9ee, 0x00eae8ef, 0x00ece6f2, 0x00ebe9f1, 0x00e9e7ee, 0x00e8e8ed, 0x00eaebf1, 0x00eceaf3, 0x00eae9f2, 0x00e7e5ef,
- 0x00e6e5ee, 0x00e5e4ed, 0x00e7e4ee, 0x00e6e4ee, 0x00e7e6ef, 0x00e6e5ee, 0x00e6e4ee, 0x00e4e3ec, 0x00e3e0ec, 0x00e9e5f2, 0x00eeebf6, 0x00e7e5ee, 0x00dedee7, 0x00dedee6, 0x00dbdbe2, 0x00d9d9e2,
- 0x00dfdce6, 0x00dddee6, 0x00e1e0e9, 0x00dcd8e2, 0x00d9d8de, 0x00e1dbe2, 0x00c5bbc8, 0x00bfb3c5, 0x00eadaef, 0x00f0e6f2, 0x00ede3eb, 0x00e8e8e3, 0x00e7edeb, 0x00e9ebed, 0x00dfddea, 0x00dcd9ec,
- 0x00dbcee2, 0x00daccdf, 0x00dbcadb, 0x00dccbd8, 0x00e1d5dd, 0x00e1dbe2, 0x00e0e3f0, 0x00d4dff5, 0x00b8cdf7, 0x00a4bfef, 0x0089add9, 0x007ba5c4, 0x008da4c3, 0x00b4c3dd, 0x00dee2fa, 0x00e7e3fb,
- 0x00bfc5e1, 0x00848ea9, 0x00858da9, 0x00c3cae2, 0x00e1e5f1, 0x00d6d9de, 0x00d8dadb, 0x00d5d7da, 0x00c2c6d9, 0x009ea3be, 0x00737a9e, 0x0065709b, 0x005e6b9d, 0x004d5b91, 0x00324278, 0x003a4982,
- 0x005261ab, 0x005765b3, 0x005d69bc, 0x00616cc2, 0x006972ca, 0x006d74ca, 0x00676dbe, 0x006267b2, 0x005c5ca5, 0x006f70b4, 0x00a9a8da, 0x00d3d4e1, 0x00e1e1ec, 0x00dddfe4, 0x00e3e2e7, 0x00e4e3e4,
- 0x00e8e3e0, 0x00e8e0e0, 0x00e9e1e1, 0x00beb7b8, 0x00504d4f, 0x00404041, 0x00c0c2c2, 0x00f5f7f6, 0x00fefefe, 0x00fbfbfb, 0x00fdfefe, 0x00f4f5f5, 0x007b7b7b, 0x00121312, 0x00191b19, 0x00222422,
- 0x00352e32, 0x0076736d, 0x00ebece4, 0x00edf2e6, 0x00e8ebf2, 0x00e4e5f4, 0x00ece8fc, 0x00f1e7fb, 0x00f7e3f9, 0x00f9eaef, 0x00faf0f2, 0x00f0f4f8, 0x00f1f4fb, 0x00ecf0f5, 0x00f0eef8, 0x00f3f3fa,
- 0x00eceff2, 0x00eaf0f1, 0x00eef0f3, 0x00eaedf0, 0x00e9eaef, 0x00ecebec, 0x00eee7ec, 0x00eae6ee, 0x00e8e2ec, 0x00ece8ed, 0x00f6f4f7, 0x00e9e7ec, 0x00e5e3ea, 0x00ebe8ef, 0x00f3eff6, 0x00ece7ec,
- 0x00e0e0de, 0x00e3e2e1, 0x00dfdbdf, 0x00ded8df, 0x00e2dde3, 0x00dbd8dc, 0x00d8d7d9, 0x00d8d9d9, 0x00dcdcdf, 0x00d7d9db, 0x00d7dad8, 0x00d9dcd1, 0x00e0dfdc, 0x00e5e3e5, 0x00e9e5e9, 0x00eae4ea,
- 0x00eae3e9, 0x00eae4e9, 0x00ede4ec, 0x00eee3eb, 0x00ebe2ed, 0x00e9e3e8, 0x00e8e3e7, 0x00e7e3e7, 0x00ece3e7, 0x00ece4e9, 0x00eae3e8, 0x00e8e2e5, 0x00e6e1e5, 0x00e9e4e7, 0x00f1ecee, 0x00faf4f8,
- 0x00f5f3f6, 0x00f5f2f6, 0x00f5f2f5, 0x00f5f1f4, 0x00f6f1f6, 0x00f2eef3, 0x00f1eff2, 0x00f2f0f4, 0x00f6f2f6, 0x00f4f0f6, 0x00f4eef4, 0x00f6eef5, 0x00edf8f5, 0x00eef7f2, 0x00f3f3ef, 0x00fdf0f2,
- 0x00f6eded, 0x00f4f4f3, 0x00f9f9f0, 0x00f5efe3, 0x00e0aa9e, 0x009d6156, 0x00764d4f, 0x005d5171, 0x004a5f97, 0x00505e90, 0x00575887, 0x0059567d, 0x00535987, 0x004c5c82, 0x00485a78, 0x00455768,
- 0x00474c77, 0x0040466f, 0x003b4267, 0x00384161, 0x003c435f, 0x003c425b, 0x003c425a, 0x003d4159, 0x0041415e, 0x00414060, 0x00444363, 0x004a4a66, 0x00a4a3bd, 0x00f1f2f9, 0x00fcfbfe, 0x00fefcfd,
- 0x00fcfbf7, 0x00fefefa, 0x00a3a8a7, 0x0021292c, 0x00121b24, 0x00151d29, 0x00161c27, 0x00181b20, 0x001d1a1b, 0x001c1f1d, 0x00192120, 0x000e1e1d, 0x000a1918, 0x00101811, 0x00171a10, 0x001e180a,
- 0x00161c19, 0x00101713, 0x000a1010, 0x00040c0a, 0x00040909, 0x00020605, 0x00030605, 0x00030605, 0x00070808, 0x00070806, 0x00080a08, 0x00041106, 0x00010910, 0x000f1a2b, 0x00272d48, 0x00616683,
- 0x00c0cad8, 0x00cfd4df, 0x00e1dfe7, 0x00f8f1f7, 0x00f8eef5, 0x00d7d9f8, 0x00b3b8ea, 0x00a1a6d6, 0x00aaa7d3, 0x00bbb6db, 0x00d0c9e7, 0x00eee8f9, 0x00f9f4ff, 0x00faf5fe, 0x00f7f2fc, 0x00f9f6fc,
- 0x00b4c1ed, 0x006e7cc3, 0x005161ba, 0x004c60bd, 0x004662bf, 0x00465fc0, 0x00495dbc, 0x004b59b9, 0x006565aa, 0x009d9ec4, 0x00e2def5, 0x00d2c5d5, 0x00ccc4ce, 0x00a2a1a6, 0x00313734, 0x000b180f,
- 0x000e2012, 0x000b1f10, 0x000b1f11, 0x000b2115, 0x000e1d18, 0x000a1e1b, 0x000b1a13, 0x00182212, 0x00414620, 0x00686a3c, 0x00908c60, 0x00b1ad85, 0x00ece6d5, 0x00fdfcf5, 0x00fcfbfd, 0x00fafbff,
- 0x00fbfbf9, 0x00eae7e6, 0x00948889, 0x00655a58, 0x00685755, 0x00695858, 0x00644f4f, 0x00594645, 0x004b363c, 0x003a2c2d, 0x00312227, 0x002b1b2a, 0x002f1514, 0x002f160d, 0x00321e13, 0x00362f27,
- 0x003f474c, 0x0058555d, 0x00785e62, 0x00925c50, 0x00a7412a, 0x009e2f1a, 0x00a13e35, 0x0089454d, 0x002d203a, 0x000a0b18, 0x000d1614, 0x00121c00, 0x002b1b04, 0x003a2418, 0x00422a2c, 0x003e2844,
- 0x003d2e24, 0x00422b21, 0x00492d22, 0x004c2d1c, 0x004a2b1d, 0x00452c1f, 0x00422c23, 0x00442d24, 0x00472b22, 0x004b2b1e, 0x0056372c, 0x00604641, 0x007f6863, 0x0096837e, 0x00524841, 0x00120c0b,
- 0x000e131e, 0x00293148, 0x001e234d, 0x00040a42, 0x00090f57, 0x00011156, 0x00031459, 0x0005155d, 0x00071961, 0x00091a62, 0x000c1b63, 0x0005185e, 0x0005175e, 0x0003175f, 0x0002165f, 0x000c236b,
- 0x0013389f, 0x001e4bb0, 0x00285cbf, 0x002564c3, 0x00246eca, 0x00226cc9, 0x002065c5, 0x002666c9, 0x003b6dda, 0x003a63d2, 0x00274cbb, 0x001a3ba8, 0x00255fc3, 0x002772d0, 0x00247ad3, 0x00277cd4,
- 0x002e66bf, 0x003756a8, 0x007f8cd2, 0x00d8d7f6, 0x00fef7ff, 0x00fafaf1, 0x00e0e6d9, 0x00888987, 0x00131119, 0x00000004, 0x00404043, 0x00bcbfb9, 0x00f9fdf8, 0x00f8fcf7, 0x00fafcfc, 0x00fcfffa,
- 0x00edffe6, 0x00f7f8ed, 0x00ffeef4, 0x00fdecfa, 0x00fef5fd, 0x00eefafa, 0x00ecfbf9, 0x00f5fafd, 0x00fff7fb, 0x00fdfaf5, 0x00fcf8f1, 0x00fbfaf1, 0x00fdf2fc, 0x00fef4fd, 0x00fcf7fc, 0x00f7fbf5,
- 0x00ecfde5, 0x00ebffe8, 0x00f1fbf1, 0x00f9f9fb, 0x00fdedfd, 0x00f5f6f9, 0x00f3f7fc, 0x00f9f6fb, 0x00fff4f5, 0x00fdf9f8, 0x00fbf9fd, 0x00f1f7f9, 0x00f8fbfd, 0x00f8f9f9, 0x00fffafc, 0x00f4e3e6,
- 0x00f4af94, 0x00f3a582, 0x00fcb08d, 0x00fdc29e, 0x00f8d8af, 0x00f9dfb4, 0x00fae4d2, 0x00f9e9f7, 0x00effdfb, 0x00f5fdee, 0x00f7feea, 0x00f8ffef, 0x00fdf1fc, 0x00f1f4f7, 0x00edfdfb, 0x00e7fbf3,
- 0x00efe5e1, 0x00ece0d6, 0x00f0efe3, 0x00f4fced, 0x00fcefef, 0x00f8f6f5, 0x00f7fafa, 0x00fcfffd, 0x00e7e9e7, 0x00949b8f, 0x00212915, 0x001f2b0e, 0x004f5a31, 0x00707d49, 0x00919d62, 0x00a5b36d,
- 0x00b7c177, 0x00b0b972, 0x009fa765, 0x00828a4b, 0x00656c33, 0x00656d32, 0x007d8547, 0x00929b5b, 0x00abb270, 0x00b8c17a, 0x00afbd72, 0x0096ac5a, 0x00697b41, 0x00435028, 0x00171d06, 0x0036392c,
- 0x00b6bbb4, 0x00f0f4f1, 0x009c9eaf, 0x002f3255, 0x00323369, 0x002d3776, 0x002a3b81, 0x002a3b82, 0x002d3e89, 0x002b3f85, 0x002a3e83, 0x00273c7d, 0x002e417c, 0x00313e76, 0x00212b60, 0x000a1043,
- 0x00333116, 0x00626464, 0x006e6d95, 0x00565fa9, 0x00253688, 0x001a326c, 0x004a6185, 0x008fa1ac, 0x00bbb7be, 0x00bbaab5, 0x00aa9da6, 0x00b2b6b7, 0x0099979c, 0x00757078, 0x00a59da8, 0x00ac9cb0,
- 0x00302a49, 0x0032345c, 0x00656c9c, 0x00616ea6, 0x00768ac5, 0x008893b6, 0x008d93a1, 0x0084898f, 0x0071776c, 0x00676f5b, 0x00666d58, 0x0060654f, 0x005f6154, 0x0055554b, 0x004d4b3e, 0x00403c2f,
- 0x002b2d22, 0x004d4f45, 0x00cccec7, 0x00f5f6f3, 0x00fbfcfb, 0x00fafcfa, 0x00fafcfb, 0x00fafcfe, 0x00f7f8fb, 0x00bec1c8, 0x00595d65, 0x005d676a, 0x005e676f, 0x00696a6e, 0x007a6e70, 0x008c6e6c,
- 0x009b6650, 0x00ad6b4e, 0x00c37454, 0x00cd7f59, 0x00dc8a69, 0x00d8a38a, 0x00edd4c3, 0x00a5a199, 0x00162a46, 0x000c1e55, 0x00051b66, 0x0006257e, 0x0007307b, 0x00112364, 0x0041396e, 0x00ab82b0,
- 0x00bebbc0, 0x00c0c0cc, 0x00c1c1d5, 0x00b7bcd7, 0x0094a1cb, 0x007687b8, 0x00546a9e, 0x005b70a8, 0x00828ec5, 0x009498ce, 0x00b5b4df, 0x00d5dce2, 0x00e4e7ee, 0x00dadee4, 0x00d0d2db, 0x00cfced8,
- 0x00a9a3b8, 0x0056556d, 0x002f2f4a, 0x005e647d, 0x00646e86, 0x005b6f7b, 0x00576772, 0x00556168, 0x005c5763, 0x005d5662, 0x00605662, 0x00645e6a, 0x00696875, 0x00636a76, 0x005a6773, 0x00586873,
- 0x00576175, 0x00545c70, 0x004e5566, 0x004d5460, 0x00595e67, 0x005e656a, 0x00636b6e, 0x00646a6e, 0x00676b74, 0x00656871, 0x005d616d, 0x00555c6a, 0x00545a68, 0x00565b67, 0x00636773, 0x006e707b,
- 0x0072757e, 0x006d727c, 0x00686d79, 0x00626776, 0x005d6473, 0x00595f6e, 0x00535765, 0x004c515d, 0x00575a67, 0x0060636f, 0x00646673, 0x00626470, 0x0060616c, 0x005e5f6a, 0x00595b64, 0x004c4e57,
- 0x0048414e, 0x0046404e, 0x004d4a5a, 0x004b4d5d, 0x00565a6a, 0x005c6472, 0x005c6672, 0x00525b67, 0x004d515d, 0x00474856, 0x003a3641, 0x00343033, 0x0037373c, 0x003d4349, 0x004b535a, 0x0053595e,
- 0x005c5651, 0x00715b50, 0x0085594d, 0x008d4d3c, 0x00963f2f, 0x00624036, 0x002d2522, 0x000f0a07, 0x00020101, 0x00010300, 0x00030402, 0x00030400, 0x00040403, 0x00040101, 0x00040000, 0x00080404,
- 0x000a1214, 0x000c1717, 0x000b1618, 0x00080f14, 0x00060a12, 0x0003060c, 0x0019191d, 0x00757374, 0x00f6f0f4, 0x00fdfbf9, 0x00fcfef3, 0x00fbfde5, 0x00f1fdfb, 0x00c3d3d1, 0x00465350, 0x00393b34,
- 0x005b5c58, 0x007b6f6c, 0x009e7c6e, 0x00ce815c, 0x00fc701f, 0x00e38744, 0x00facaa0, 0x00fbeeeb, 0x00f7f3ff, 0x00f5f3f8, 0x00f3f5f5, 0x00e9f1db, 0x00d9f7f1, 0x00ddf8f7, 0x00e6f1fa, 0x00f6ebf3,
- 0x00ebedf2, 0x00ebf0f3, 0x00f2f3f6, 0x00f1f3f7, 0x00f4f2f5, 0x00f2f2f5, 0x00f7f4f6, 0x00f3f3f4, 0x00f0f3f5, 0x00eff3f6, 0x00eef1f3, 0x00eaedee, 0x00e9ecf0, 0x00eaecf1, 0x00edeef2, 0x00ecf0f2,
- 0x00f0f1f3, 0x00f0f1f4, 0x00f1f2f5, 0x00f1f3f6, 0x00f1f3f6, 0x00eff2f4, 0x00eff2f4, 0x00f0f3f4, 0x00f5f6f9, 0x00f3f5f7, 0x00f0f2f4, 0x00edf0f2, 0x00eef0f2, 0x00f1f2f4, 0x00f1f4f5, 0x00f0f4f3,
- 0x00eff0f3, 0x00ebeef2, 0x00eaeff4, 0x00e7edf1, 0x00e9eff1, 0x00e8eeef, 0x00ebf0f0, 0x00eef3f2, 0x00f1f2f6, 0x00ebecf2, 0x00d6d8df, 0x00bbbdbd, 0x00b4b5ba, 0x00b1b7ba, 0x00838a96, 0x00647082,
- 0x005d698b, 0x00404c6f, 0x002d395f, 0x00182846, 0x000f1b2f, 0x001e2745, 0x002e3455, 0x00444c68, 0x007b859a, 0x008794a0, 0x0094a2a8, 0x00b6c5c6, 0x00bac5c8, 0x00b5bfc1, 0x00dce4ea, 0x00e7eff4,
- 0x00d7d7d4, 0x00a7a6a3, 0x00666360, 0x00403c39, 0x003a3332, 0x002e2727, 0x00292323, 0x00201c1c, 0x001c141b, 0x001b171c, 0x001f171c, 0x002a1e1d, 0x00362b2b, 0x003f3633, 0x00483c3d, 0x004e4345,
- 0x00534844, 0x00564946, 0x005b4d48, 0x005d5049, 0x0063524c, 0x006a524c, 0x0073564e, 0x00785a54, 0x00775b58, 0x00705b56, 0x006a5655, 0x0060514f, 0x00584a48, 0x0054433f, 0x00533f3c, 0x00533e38,
- 0x00deece4, 0x00d2ddd8, 0x00f4f3fa, 0x00f7f0fa, 0x00f5e7f6, 0x00f4eef0, 0x00f1efea, 0x00eff3e6, 0x00efefec, 0x00f3edf2, 0x00f1eaf1, 0x00efedf0, 0x00f0f0f1, 0x00f0f0f2, 0x00eeeef1, 0x00eceaef,
- 0x00ebeff5, 0x00ecedf4, 0x00eaeef3, 0x00eaecf4, 0x00eaeff6, 0x00eaeaf3, 0x00ecebf3, 0x00edeaf3, 0x00eceaf5, 0x00ebeaf3, 0x00ece9f2, 0x00e8e7f0, 0x00eceaf3, 0x00edebf4, 0x00ebe9f1, 0x00e7e6ec,
- 0x00e4e5ee, 0x00e4e4ed, 0x00e6e3ee, 0x00e5e2ec, 0x00e7e5ef, 0x00e5e4ed, 0x00e6e4ed, 0x00e5e3ec, 0x00e2e0ec, 0x00e9e6f1, 0x00edeaf5, 0x00e6e4ed, 0x00dfdee7, 0x00dedee6, 0x00d9d8e1, 0x00dad9e2,
- 0x00dfdeea, 0x00dedce7, 0x00e0dee7, 0x00dbdbe2, 0x00dadae2, 0x00e2dde6, 0x00dbd5e2, 0x00e1daee, 0x00ece9fe, 0x00e6e5f5, 0x00e5e1ec, 0x00e9ebec, 0x00e9edea, 0x00e8e8ec, 0x00dbdee9, 0x00d8d9ed,
- 0x00d0cfd4, 0x00dcd9e0, 0x00dbd6de, 0x00ddd6e3, 0x00d7d0e6, 0x00c3c0db, 0x00a4a9cd, 0x0095a0cf, 0x007d9ad8, 0x006c8ed1, 0x00628cc8, 0x005787b6, 0x00839ec6, 0x00b8c9ea, 0x00c6cce9, 0x00acadca,
- 0x0073799e, 0x00697396, 0x00a4acce, 0x00cbd5f2, 0x00d4d6ed, 0x00cccee7, 0x00c0c2e0, 0x00afb1d4, 0x009b9fd0, 0x00888dc6, 0x00646bad, 0x0048539b, 0x004955a4, 0x004958a9, 0x004050a2, 0x004a5aaf,
- 0x005a69b3, 0x005a67b5, 0x005864b7, 0x005d67bd, 0x00666ec6, 0x00656bc3, 0x005f62b8, 0x006364b7, 0x005f5fac, 0x005b5ba5, 0x00706fa8, 0x00a3a6b9, 0x00e0deef, 0x00e2dee8, 0x00ece6ec, 0x00e8e2e3,
- 0x00e7dedf, 0x00e9e0e2, 0x00e9e4e4, 0x00d6d4d4, 0x00838486, 0x00555657, 0x00c0c2c1, 0x00f7f8f8, 0x00fdfdfe, 0x00fdfdfe, 0x00fdfefe, 0x00f3f4f3, 0x00747373, 0x00111010, 0x00161717, 0x001c1c1d,
- 0x002a2734, 0x00737373, 0x00eeeeea, 0x00eeeede, 0x00e6e3de, 0x00e8e4e6, 0x00ece5ef, 0x00f3e7f4, 0x00f6e9ee, 0x00f7efe2, 0x00f7f2e8, 0x00f5f4fc, 0x00f1f3f8, 0x00f1f1f7, 0x00f4f3f9, 0x00f5f5fa,
- 0x00eff1f8, 0x00eef1f5, 0x00edf1f6, 0x00ebf0f0, 0x00e4ebef, 0x00ebeaec, 0x00eee9ee, 0x00ece8ed, 0x00e5e1ec, 0x00e9e5ee, 0x00f6f3fb, 0x00f6f3fb, 0x00eeebf3, 0x00eeeaf1, 0x00f3f0f3, 0x00ede9ec,
- 0x00ededef, 0x00f2f0f3, 0x00edebef, 0x00eae9ed, 0x00e7e7e9, 0x00e8e9ea, 0x00e8e8ea, 0x00eae9ea, 0x00e7e7e9, 0x00e5e5e6, 0x00e2e3e5, 0x00dedee0, 0x00e1dfdd, 0x00dedcde, 0x00dddadc, 0x00ddd8dc,
- 0x00d7cfd2, 0x00d5cdd3, 0x00d6cad4, 0x00d6c7d1, 0x00d4c7d2, 0x00d1c8ce, 0x00d1c8ce, 0x00d1c8d0, 0x00d4cdd0, 0x00d7d1d6, 0x00dcd5da, 0x00e0dade, 0x00e4dee2, 0x00e4dee2, 0x00e5dfe3, 0x00e8e2e7,
- 0x00efedf0, 0x00efeef0, 0x00efedef, 0x00efecef, 0x00eeeaee, 0x00eeebee, 0x00efebef, 0x00f0ecf0, 0x00f1eff2, 0x00f1edf0, 0x00f4eef4, 0x00f9eef7, 0x00ebfbf6, 0x00eefbf5, 0x00f6f9f7, 0x00fff2f7,
- 0x00fcf0f9, 0x00f8faf9, 0x00f9fdf1, 0x00fdfde9, 0x00f1c2ac, 0x00d28066, 0x009b5848, 0x00625061, 0x00435b8e, 0x004e5d8b, 0x00585984, 0x005e577a, 0x00555b89, 0x004e5d85, 0x00475a7a, 0x0046576a,
- 0x00484f79, 0x00424871, 0x00394065, 0x00373f5f, 0x003a405c, 0x003c425b, 0x003b4059, 0x003d405a, 0x003f435f, 0x00414260, 0x00464564, 0x00585772, 0x00b8b7cc, 0x00f6f7fa, 0x00fefcff, 0x00fefcfd,
- 0x00fdfdf9, 0x00fbfdf9, 0x00909696, 0x00171e20, 0x000a131b, 0x00151e28, 0x00131a24, 0x0016171b, 0x00101211, 0x000c1110, 0x00081011, 0x00011010, 0x00000d0e, 0x00050d07, 0x000c1006, 0x00161002,
- 0x000e150d, 0x000b100b, 0x00070c07, 0x00040805, 0x00060803, 0x00060705, 0x00050705, 0x00040505, 0x00070908, 0x00070a0a, 0x00050909, 0x00051309, 0x00010c17, 0x000a172d, 0x001a2544, 0x00455070,
- 0x00acb5c9, 0x00d2d8e3, 0x00e9e8f2, 0x00f5f1f9, 0x00ede3f3, 0x00c3c9ec, 0x00abb3e3, 0x00b6bdea, 0x00b8badb, 0x00b3b2cd, 0x00d6d1e9, 0x00f0ecfa, 0x00f7f3fe, 0x00f9f4fd, 0x00f9f4ff, 0x00f6f3fc,
- 0x00a7b2f3, 0x006270be, 0x005061b1, 0x004c62b8, 0x004862c2, 0x00495fc9, 0x004a5dbb, 0x004d5ab2, 0x006c70a8, 0x00abaccf, 0x00e9e3fa, 0x00dccdde, 0x00d0c7d4, 0x00a3a0a5, 0x00303532, 0x000d1b10,
- 0x000d2111, 0x000b2012, 0x000a2114, 0x000a2214, 0x00091f17, 0x00081b1b, 0x0011211a, 0x002b341f, 0x00575b2d, 0x007d7f4b, 0x009f996c, 0x00bbb78e, 0x00f1eadc, 0x00fcfdf6, 0x00fefdff, 0x00fcfdff,
- 0x00fdf9fa, 0x00e6dfe2, 0x00837a7a, 0x00615758, 0x0065595a, 0x006b5d5f, 0x0064565a, 0x005c4f52, 0x004f3d43, 0x00403134, 0x0033252c, 0x00271e2e, 0x002b1613, 0x002e160b, 0x00362112, 0x003f332c,
- 0x00494b57, 0x00655e69, 0x00846368, 0x009d5c4f, 0x00bd4523, 0x00cc4422, 0x00cb4e35, 0x00b46357, 0x00685260, 0x00302d3b, 0x0018141b, 0x001e140d, 0x00311409, 0x0031180e, 0x0036231d, 0x00342c2d,
- 0x00362a25, 0x00433029, 0x004c322a, 0x00482a1b, 0x0043231a, 0x003c2119, 0x0037211e, 0x00361f19, 0x00371c12, 0x003b1e10, 0x0044261a, 0x00493129, 0x006c5853, 0x007f706a, 0x003c352e, 0x000b0808,
- 0x00151c27, 0x00383f58, 0x00252a55, 0x00070d46, 0x000b1257, 0x0006155c, 0x0003145b, 0x0005155d, 0x0007195f, 0x00081960, 0x00091b62, 0x0006195e, 0x0004185c, 0x0005175e, 0x0000145a, 0x00071c60,
- 0x00123196, 0x001d44a8, 0x002856b9, 0x00215cba, 0x001f66c2, 0x001d65c3, 0x002163c6, 0x002a65ce, 0x003465d1, 0x003158c9, 0x002449b8, 0x002b4eba, 0x002a6dd2, 0x002674d7, 0x002177d4, 0x002273cd,
- 0x002b5aa6, 0x00586cb0, 0x00c3c9fa, 0x00faf5fd, 0x00fcfaf7, 0x00f9faf9, 0x009da2a2, 0x003b3b45, 0x0002010f, 0x00040511, 0x0055585c, 0x00d5d7d2, 0x00fefdf5, 0x00fefdfa, 0x00fbfbfc, 0x00fefeff,
- 0x00f2f2cc, 0x00f3cdb6, 0x00f5bcb0, 0x00fdccca, 0x00ffeadd, 0x00f6f0e7, 0x00f6f7ec, 0x00f9f8f5, 0x00fdf2f8, 0x00f9f4f6, 0x00f8fbfb, 0x00f3fdf4, 0x00f9f7fe, 0x00faf7fb, 0x00fef9fc, 0x00f9f8f5,
- 0x00f2fce8, 0x00f0fde6, 0x00f3f9ed, 0x00f9fafa, 0x00f9eeff, 0x00f8f9fc, 0x00f3f9fe, 0x00f8f7fb, 0x00fff7f3, 0x00fef8f6, 0x00f7f6f7, 0x00f2f3fb, 0x00f9f9fe, 0x00f7f3f8, 0x00fdf7fb, 0x00f0dee0,
- 0x00e49256, 0x00ee8344, 0x00f8894d, 0x00f7935b, 0x00e7a55f, 0x00f4aa63, 0x00eea77d, 0x00eeb7ba, 0x00f0eefb, 0x00f9fbf2, 0x00fbf6e3, 0x00fbeed0, 0x00fee4e0, 0x00f8f1ec, 0x00f4fcf5, 0x00edfdf6,
- 0x00f6f2f1, 0x00f3f1e9, 0x00f1faed, 0x00f1fef0, 0x00fef2f6, 0x00fcf6f7, 0x00fafdfc, 0x00fbfefb, 0x00f9fcf9, 0x00c8ccc3, 0x004c5441, 0x00262d16, 0x004a552c, 0x00677140, 0x00849257, 0x009aa965,
- 0x00abb76b, 0x00a9b46b, 0x009da661, 0x00838b49, 0x006e7538, 0x00727a3b, 0x00899251, 0x00a0a967, 0x00b4be78, 0x00bac47a, 0x00acbb6e, 0x00889f4f, 0x0064753f, 0x0038451f, 0x00282f19, 0x00818377,
- 0x00eaebea, 0x00fbfcfc, 0x00a7a8b8, 0x003c3e5c, 0x002a2d5b, 0x002e3875, 0x002b3a85, 0x002a3a85, 0x00293c83, 0x002a3f83, 0x00283c7e, 0x00273c7a, 0x002d407b, 0x00304079, 0x0027346b, 0x00111c52,
- 0x001b1c04, 0x004e4e4e, 0x00767295, 0x00404384, 0x00314390, 0x0027437f, 0x00486991, 0x00819db1, 0x00bec5c4, 0x00d4c5c8, 0x00c5b6b6, 0x00b7b9b0, 0x0096958c, 0x008e8883, 0x00c8bebd, 0x00c7bec3,
- 0x007b7786, 0x007f7f9b, 0x0062668c, 0x004d5d8d, 0x006073ac, 0x00a3afd4, 0x00b8bcd2, 0x00949ca3, 0x00778272, 0x00808c74, 0x0077836a, 0x007b846f, 0x00797f74, 0x0073796c, 0x00717666, 0x0065685b,
- 0x00575c4f, 0x0082877c, 0x00e6eae2, 0x00f3f7f1, 0x00fcfefc, 0x00fafdfb, 0x00fafcfc, 0x00fafcff, 0x00fbfbfc, 0x00cbcdd3, 0x0063666e, 0x005a6366, 0x00565d67, 0x0058565d, 0x006a5c5d, 0x0080635b,
- 0x00a3644b, 0x00bb6e4d, 0x00d57c57, 0x00db8158, 0x00df8760, 0x00dc947b, 0x00f1c5b3, 0x00b4a197, 0x00242e47, 0x001d2860, 0x00223883, 0x001b3c97, 0x000a3d8c, 0x00122d6f, 0x0036356c, 0x00a57faf,
- 0x00e6dcdd, 0x00d7d2d6, 0x00d3d1df, 0x00dde3f3, 0x00d9e5fb, 0x00c8d4f3, 0x00a4b1d4, 0x00adb8da, 0x00dae1f9, 0x00e4e6fb, 0x00e2e3f5, 0x00e1dee1, 0x00d9dae0, 0x00d3dadf, 0x00d2d8e1, 0x00d4d6e3,
- 0x00bbb1c5, 0x006a6179, 0x00332e48, 0x005a5c74, 0x005c6a82, 0x00596b76, 0x004f6168, 0x0049585f, 0x00555561, 0x005e5966, 0x00675e6c, 0x006b6270, 0x006a6774, 0x00656b77, 0x005e6b76, 0x00576873,
- 0x005d6071, 0x005a5c6c, 0x00545663, 0x00555a62, 0x0063696f, 0x00666e72, 0x00686f74, 0x006a7178, 0x00656e78, 0x00606670, 0x005a5e6c, 0x00505665, 0x004e5463, 0x00555968, 0x00646675, 0x00686978,
- 0x00686a77, 0x00656876, 0x00616473, 0x00585e6c, 0x004f5664, 0x004a505c, 0x004c505b, 0x0050545e, 0x005a5d69, 0x00626470, 0x00676976, 0x00646773, 0x005d5f6c, 0x005a5c68, 0x004f525d, 0x0042464f,
- 0x00473f50, 0x004b4455, 0x00585465, 0x00575867, 0x005a5f6d, 0x005a616e, 0x00626874, 0x005b5f6c, 0x0052545e, 0x004a4955, 0x00423f4a, 0x0047464c, 0x004f5159, 0x004d565e, 0x004f5a61, 0x00545b60,
- 0x005e5756, 0x006c564f, 0x00855b50, 0x00925749, 0x00974835, 0x00664439, 0x00362d28, 0x00160f0c, 0x00050200, 0x00040200, 0x00020101, 0x00030300, 0x00030003, 0x00050000, 0x00040000, 0x00060102,
- 0x00010202, 0x00020404, 0x00020608, 0x0003050d, 0x0006050f, 0x0005040c, 0x000d0c10, 0x005c585c, 0x00e9e2e4, 0x00fefaf9, 0x00fefdf8, 0x00fbfded, 0x00f4fcff, 0x00d4e1e0, 0x005b6665, 0x00404442,
- 0x005f6b78, 0x00747e8f, 0x008a7883, 0x00b57a67, 0x00fc7126, 0x00e67d37, 0x00f9b387, 0x00f9e6e2, 0x00f3f8fc, 0x00f7f5fa, 0x00f9f8f2, 0x00f6f8e6, 0x00e1fffa, 0x00e6fefe, 0x00eef9fb, 0x00fef1f9,
- 0x00eff3f3, 0x00f3f6f7, 0x00f6f8f9, 0x00f6f6f9, 0x00f4f5f7, 0x00f5f6f8, 0x00f4f7f7, 0x00f3f7f6, 0x00f4f5f7, 0x00f2f5f6, 0x00f2f3f5, 0x00f1f1f3, 0x00eef0f2, 0x00edf0f2, 0x00eef0f2, 0x00eff0f2,
- 0x00eff1f3, 0x00f0f1f3, 0x00f1f2f4, 0x00f0f3f4, 0x00f0f2f4, 0x00f0f2f4, 0x00f0f3f5, 0x00f2f5f6, 0x00f5f7f9, 0x00f4f5f8, 0x00f0f3f5, 0x00eef1f3, 0x00eff0f4, 0x00f1f2f5, 0x00f1f4f4, 0x00f0f3f3,
- 0x00edf0f1, 0x00eef0f1, 0x00eceeee, 0x00edeeef, 0x00eaecec, 0x00eaeced, 0x00eceef0, 0x00eff2f3, 0x00f3f4f8, 0x00eef2f7, 0x00e9ecef, 0x00dcdde2, 0x00c9cdcd, 0x00ccd0d1, 0x00aab0b2, 0x007f8892,
- 0x007e87a2, 0x00727b9d, 0x00657097, 0x005a6790, 0x003d4d6c, 0x0041486a, 0x00616586, 0x00757a97, 0x00858d98, 0x00919a9d, 0x00b6bebc, 0x00c9d3ca, 0x00ced6d3, 0x00cdd6d4, 0x00dbe3e6, 0x00e3ecf1,
- 0x00eef0ed, 0x00ecedeb, 0x00b4b5b2, 0x00777573, 0x00433d3d, 0x002d2727, 0x00242221, 0x001d1c1b, 0x00191518, 0x00191519, 0x001f151c, 0x00281e1d, 0x0035282b, 0x003d3431, 0x0044393b, 0x004b4242,
- 0x00504744, 0x00514744, 0x00534946, 0x00534c46, 0x00584e49, 0x00614f49, 0x006c544f, 0x00715a56, 0x00705f5d, 0x006e5f5d, 0x006a5a5c, 0x00625454, 0x005e4f4d, 0x005a4b45, 0x0056463f, 0x0052433a,
- 0x00f6fbf0, 0x00f5f6ef, 0x00f2efef, 0x00fbf5fb, 0x00f5edf2, 0x00f0ecea, 0x00edefe5, 0x00ebf1e2, 0x00eff0ea, 0x00f0edee, 0x00f1ebf0, 0x00f0ebee, 0x00f3f0f3, 0x00f2f0f3, 0x00efeef1, 0x00ebe9ec,
- 0x00eeeef4, 0x00edeef3, 0x00eceef4, 0x00ebeef4, 0x00eceff6, 0x00ececf5, 0x00eceaf3, 0x00efecf4, 0x00edeaf4, 0x00edeaf3, 0x00efe9f2, 0x00ece8f0, 0x00eeecf3, 0x00eeecf4, 0x00e9e9f2, 0x00e7e6ef,
- 0x00e5e4ef, 0x00e4e3ee, 0x00e4e2ed, 0x00e5e3ed, 0x00e8e6f0, 0x00e8e5ef, 0x00e6e3ed, 0x00e4e2eb, 0x00e3e2eb, 0x00e8e7f0, 0x00ebe9f3, 0x00e4e2ed, 0x00e0dee9, 0x00dfdde8, 0x00d9d7e2, 0x00dbd9e3,
- 0x00e2dee8, 0x00dddae4, 0x00dddce6, 0x00dddbe7, 0x00dfdbe7, 0x00e0dae5, 0x00dddae6, 0x00e3ddf1, 0x00eae4f9, 0x00e8e4f6, 0x00eeeaf7, 0x00ebedee, 0x00e6e8e9, 0x00dfe1e8, 0x00dcddec, 0x00d6d8ee,
- 0x00c6d7ce, 0x00bdcbc8, 0x00d2dde2, 0x00cdd4e7, 0x009fa1c5, 0x007a7daf, 0x005d67a3, 0x005363a9, 0x00536fbf, 0x004f71c0, 0x004d72bc, 0x004e75b2, 0x0092abdc, 0x00a9b7de, 0x007d81a4, 0x005f6082,
- 0x006e7298, 0x008d95bd, 0x00c2cbf5, 0x00c2c9f2, 0x00acacd4, 0x009a96ce, 0x008682c9, 0x007973bf, 0x006a6cbf, 0x006365be, 0x005458b6, 0x004449ac, 0x003b41a8, 0x003b43a9, 0x003640a5, 0x003a43aa,
- 0x00414e90, 0x00475298, 0x004f56a3, 0x00565bac, 0x006065b9, 0x00666ac0, 0x005c5eb4, 0x005a5caf, 0x005c5dab, 0x005d5da8, 0x005f5f99, 0x00747590, 0x00bcb9ce, 0x00ded9ea, 0x00ebe3ef, 0x00e5dde4,
- 0x00e6ddde, 0x00e8e0e3, 0x00e2ddde, 0x00e0dce0, 0x00a7a5ac, 0x00717174, 0x00c0c1c0, 0x00f7f7f9, 0x00fdfdfd, 0x00fcfcfc, 0x00feffff, 0x00f2f4f3, 0x00737273, 0x00101011, 0x00141617, 0x0017191a,
- 0x00141f34, 0x00666f76, 0x00ecf1ec, 0x00eeeedd, 0x00e7decb, 0x00eadcd5, 0x00efe2dd, 0x00f6e7e8, 0x00f0eee3, 0x00ecf0d9, 0x00eef2e2, 0x00fbf5fb, 0x00f7f5fa, 0x00f9f6fc, 0x00f9f8fd, 0x00f8f8fb,
- 0x00f3f4fa, 0x00f1f4f7, 0x00eeeff7, 0x00e9edf3, 0x00e6ebf0, 0x00eaeaeb, 0x00eee9ed, 0x00ebeaeb, 0x00e3e0e7, 0x00e2dee8, 0x00f4effa, 0x00f8f4fc, 0x00f3eef7, 0x00f5f1f7, 0x00fcf9fb, 0x00f7f4f5,
- 0x00f7f7f9, 0x00f9f8fa, 0x00f8f8f9, 0x00f4f5f6, 0x00f2f1f5, 0x00eeeef2, 0x00eeedf0, 0x00eeebef, 0x00eaeaec, 0x00e8e6e9, 0x00e4e2e6, 0x00e2e1e3, 0x00dfdedd, 0x00dedbdd, 0x00d7d4d5, 0x00d5d0d1,
- 0x00dbd2d4, 0x00dad1d6, 0x00dacfd3, 0x00d9cdd2, 0x00d7cccf, 0x00d3ccd1, 0x00d0ccd0, 0x00d0cbd2, 0x00d1cdd1, 0x00d3cfd3, 0x00d8d2d6, 0x00ded7db, 0x00e4dce3, 0x00e3dde3, 0x00e2dce0, 0x00e2dde1,
- 0x00e7e4e8, 0x00e7e4e8, 0x00e7e5e8, 0x00e7e6e9, 0x00e7e5e8, 0x00eae8ea, 0x00ebe9eb, 0x00ebe8ea, 0x00eceaec, 0x00eeeef0, 0x00f6f0f7, 0x00fcf0fa, 0x00f1fbf8, 0x00f1fdf8, 0x00f8fcfa, 0x00fff9fb,
- 0x00fff7ff, 0x00f8fbfb, 0x00f9fef9, 0x00fbfeec, 0x00f6cab7, 0x00e68e65, 0x00b16242, 0x00705253, 0x00435881, 0x004b5b82, 0x00565c81, 0x005e587a, 0x00555a8b, 0x00515c8b, 0x004d5881, 0x004f5474,
- 0x00484f75, 0x0042486d, 0x00393f61, 0x00343c59, 0x00373d58, 0x003a4059, 0x003b405b, 0x003d415d, 0x00414462, 0x00454765, 0x00484968, 0x00656482, 0x00ceccde, 0x00faf9fd, 0x00fefaff, 0x00fffaff,
- 0x00fefdfb, 0x00f1f5f1, 0x00797e7e, 0x00121619, 0x0009131a, 0x00141f29, 0x00151c27, 0x00131519, 0x000c0d0c, 0x00070b0c, 0x00040a0d, 0x00000d0e, 0x00010b0e, 0x00080c06, 0x00101104, 0x001d1500,
- 0x001d1e13, 0x001d1c12, 0x0017180d, 0x00101309, 0x000b0c03, 0x000a0a04, 0x00060904, 0x00050905, 0x00050808, 0x0007090b, 0x00050a0c, 0x0005100e, 0x00020b1c, 0x0009122f, 0x00131d40, 0x00313a60,
- 0x008f97b4, 0x00d4d8ed, 0x00f3f3ff, 0x00eae3f5, 0x00d8ccea, 0x00babde3, 0x00b7bfea, 0x00c9cff8, 0x00c4c4e4, 0x00c7c5de, 0x00ebe6fa, 0x00f5f0fd, 0x00f9f4ff, 0x00f5f0f9, 0x00fbf7ff, 0x00f1eff6,
- 0x00959eeb, 0x005665b1, 0x004d60b3, 0x004d64b8, 0x004962c7, 0x00495ec3, 0x004e5ebf, 0x00505ab1, 0x007c7db2, 0x00b9badb, 0x00ebe4fb, 0x00e3d3e3, 0x00d6ced9, 0x00a19ca3, 0x002f3131, 0x000d1812,
- 0x000a2013, 0x000b2015, 0x000b1f16, 0x000c2118, 0x000c1e1a, 0x000a191a, 0x001c2821, 0x003d4831, 0x00737444, 0x0093915f, 0x00a9a478, 0x00c6bf9b, 0x00f7f0e4, 0x00fffdf9, 0x00fefefe, 0x00fbfdff,
- 0x00fefbfc, 0x00d8d2d6, 0x00776f72, 0x005e575c, 0x00675e61, 0x006d6366, 0x00685d61, 0x0062555a, 0x0051444b, 0x0044363d, 0x00332b34, 0x0022242c, 0x00261814, 0x002b170c, 0x00372119, 0x00443434,
- 0x0055495d, 0x00705869, 0x00905d67, 0x00ab574d, 0x00d24e2f, 0x00e65428, 0x00d94f23, 0x00bd5938, 0x008d5e57, 0x00614449, 0x003c2031, 0x002f0820, 0x00340915, 0x00341310, 0x002b200f, 0x00212408,
- 0x002d1f23, 0x00372727, 0x00432b27, 0x0045281e, 0x00432419, 0x003c1f17, 0x00351814, 0x002b110f, 0x00280f05, 0x002f150b, 0x003a1f15, 0x00452d23, 0x005c4840, 0x00534441, 0x001b1313, 0x00030109,
- 0x0013182c, 0x002e3651, 0x001c234b, 0x00040a3c, 0x000b104c, 0x0009185b, 0x00071a60, 0x0008185f, 0x00061861, 0x0006175f, 0x0006185f, 0x0005185d, 0x0005185e, 0x0006175e, 0x0003155b, 0x00021459,
- 0x0007237e, 0x00143994, 0x00254fad, 0x002257b6, 0x001c5dbe, 0x001d60c4, 0x002464cb, 0x002a67d1, 0x00305dcb, 0x00234fb8, 0x00244db5, 0x003360bf, 0x003071d5, 0x002875db, 0x002875de, 0x002066c6,
- 0x004569b4, 0x0098acdb, 0x00ecf3fe, 0x00fafcfa, 0x00f7fced, 0x00cdd7dc, 0x004d5267, 0x000a0b24, 0x0001001c, 0x000a0b24, 0x00787a8a, 0x00eaeaec, 0x00fffdf8, 0x00fefef6, 0x00fbfdf9, 0x00fdfdfd,
- 0x00f3d5ae, 0x00d28d6a, 0x00d87b5f, 0x00e38669, 0x00e7aa83, 0x00e8ba97, 0x00f5cfb9, 0x00fee2da, 0x00feeef5, 0x00f7f6fa, 0x00f2fdfb, 0x00ecfcf6, 0x00f2f8fc, 0x00f5f7fd, 0x00fdf7fe, 0x00fefbfe,
- 0x00fdfaf4, 0x00f7faec, 0x00fafaef, 0x00f8fbf6, 0x00f4f6ff, 0x00f3f8fd, 0x00f6f5fe, 0x00fbf6fb, 0x00fef9f6, 0x00faf6f3, 0x00f5f1f2, 0x00f2f5fb, 0x00f9f9ff, 0x00fcf2fa, 0x00fdf4f9, 0x00edd9da,
- 0x00f2a043, 0x00f38a33, 0x00f7873c, 0x00ed884b, 0x00e58d3c, 0x00f68e34, 0x00ed7f3a, 0x00ee957d, 0x00fae0f4, 0x00fff0f0, 0x00f3d2bf, 0x00efb989, 0x00eeb497, 0x00f4cbb8, 0x00fdeedd, 0x00fcfcf0,
- 0x00fef7f3, 0x00f7faf5, 0x00f6fdf6, 0x00f3fbf8, 0x00fdf5fc, 0x00f9f8fa, 0x00f8fcfd, 0x00f5f9f6, 0x00fcfdfc, 0x00eef1ea, 0x008c9282, 0x00394129, 0x00465127, 0x00687440, 0x00839154, 0x0096a65f,
- 0x009ea85f, 0x009ea860, 0x00919a55, 0x007c8441, 0x00757c3f, 0x007f8749, 0x00969e5f, 0x00adb575, 0x00bbc47e, 0x00b7c078, 0x009fb064, 0x007e954d, 0x00566635, 0x002b3516, 0x00565c47, 0x00c6c8be,
- 0x00fefdfc, 0x00fcfdfe, 0x00bec0cc, 0x00565873, 0x00282b52, 0x002c3573, 0x002d3a84, 0x00293880, 0x00283982, 0x00283b82, 0x002b3e83, 0x00283c7d, 0x002d3e7e, 0x00313f7c, 0x002b3873, 0x001b2660,
- 0x0018160c, 0x0037373d, 0x007b7793, 0x00464a7c, 0x003b4e91, 0x00526eac, 0x00446496, 0x00597597, 0x009fa6b2, 0x00c9c6c9, 0x00eeece4, 0x00e5e7d6, 0x00c9c8b5, 0x00cac4b4, 0x00eae2d4, 0x00ece3d8,
- 0x00e1dfe0, 0x00d0d4e4, 0x007a849f, 0x005b6b94, 0x0035487e, 0x005f6c94, 0x00a9b1cb, 0x009ca6b0, 0x006c776a, 0x0075826c, 0x0079856e, 0x007e8776, 0x0081877d, 0x007f8777, 0x00808778, 0x00777d6e,
- 0x007d8276, 0x00b1b5ac, 0x00f4f7f1, 0x00f3f7f2, 0x00f9fbfa, 0x00fafbfc, 0x00fcfefe, 0x00fdffff, 0x00fefdff, 0x00d2d5d9, 0x006a6d74, 0x00535c60, 0x00485059, 0x0047454c, 0x005a4a4d, 0x007c5953,
- 0x00ac674c, 0x00c77350, 0x00e2845c, 0x00e8865a, 0x00e6865d, 0x00e38870, 0x00f4b2a2, 0x00d4b1a6, 0x005a576c, 0x00383b70, 0x003b4893, 0x002d4ea7, 0x00114b9c, 0x001b4688, 0x00303e75, 0x00967eb0,
- 0x00f8ebe7, 0x00ece5e1, 0x00e4e1e6, 0x00e7ebf8, 0x00dce6f8, 0x00e0e9fb, 0x00dbe6f7, 0x00e4ebfb, 0x00e8effc, 0x00e9ebf8, 0x00efeffa, 0x00f1eaf1, 0x00e0e3e4, 0x00d6dde3, 0x00d7dbe6, 0x00dad8e8,
- 0x00d0c7db, 0x007e7289, 0x003a3149, 0x00585972, 0x005c6a81, 0x005e6c78, 0x0059626b, 0x00555d67, 0x005f606d, 0x00666673, 0x006e6e7b, 0x006f6e7b, 0x006d6c7a, 0x00696b79, 0x00666978, 0x00606675,
- 0x00676271, 0x00676371, 0x00676470, 0x00686971, 0x00696d74, 0x00687076, 0x00656f77, 0x00636e77, 0x005a6272, 0x004f5967, 0x004b5262, 0x004b4e5f, 0x004a4c5d, 0x00545865, 0x00616571, 0x00636672,
- 0x005f6070, 0x005d616f, 0x005b5f6d, 0x00535865, 0x00484d59, 0x00454854, 0x004f515c, 0x00595e67, 0x0060636f, 0x00626571, 0x006a6d79, 0x00676b77, 0x005d606d, 0x00555865, 0x004a4d5a, 0x00404350,
- 0x00504758, 0x00575162, 0x00625e6f, 0x00616171, 0x005c6371, 0x0059616e, 0x005a606d, 0x00545a66, 0x004d515b, 0x00484a56, 0x004a4a56, 0x0052545d, 0x005c5f6c, 0x00585e6c, 0x00535b67, 0x00575e68,
- 0x0061575f, 0x0064514f, 0x00785754, 0x00895953, 0x0084483d, 0x005a413b, 0x00312d29, 0x00150f0d, 0x00060000, 0x00070000, 0x00090101, 0x000a0100, 0x000b0001, 0x000c0000, 0x000b0000, 0x000b0000,
- 0x00010200, 0x00030302, 0x00010204, 0x00000105, 0x00030109, 0x00040009, 0x0006030a, 0x00403c42, 0x00d6d1d5, 0x00fdfcfb, 0x00fefef8, 0x00fcfef8, 0x00f8fdfd, 0x00e2e7e9, 0x007a7e83, 0x004f535d,
- 0x005f7798, 0x005f7aa3, 0x006e718f, 0x009d6d6d, 0x00f86e2a, 0x00ec742f, 0x00f49f6d, 0x00f8d8c9, 0x00f9fcfe, 0x00f7fafc, 0x00f5f5f5, 0x00f4f8eb, 0x00e8fdfd, 0x00e8fbfb, 0x00f1f7fc, 0x00fcf2f4,
- 0x00f5f7f8, 0x00f5f7f7, 0x00f7f9f9, 0x00f7fafc, 0x00f7f9fb, 0x00f5f7fb, 0x00f5f8fa, 0x00f4f8f9, 0x00f5f6f9, 0x00f4f5f8, 0x00f3f4f6, 0x00f1f4f4, 0x00eff2f4, 0x00eff3f4, 0x00f0f4f5, 0x00f2f5f6,
- 0x00eff1f4, 0x00eff1f4, 0x00f0f2f4, 0x00f0f3f5, 0x00f2f3f5, 0x00f2f4f6, 0x00f2f5f7, 0x00f5f6f8, 0x00f6f8fa, 0x00f5f7f9, 0x00f3f6f6, 0x00f2f5f5, 0x00f3f4f7, 0x00f1f3f6, 0x00eff2f3, 0x00eff1f2,
- 0x00eff0f1, 0x00ecefef, 0x00eceff1, 0x00ecf0f1, 0x00eaeded, 0x00ebedee, 0x00eceeee, 0x00eff0f3, 0x00f5f6fa, 0x00f2f5f8, 0x00f0f2f8, 0x00e8eaf6, 0x00d6dbe2, 0x00d0d5da, 0x00bcc3cc, 0x009197a9,
- 0x005f668b, 0x00505985, 0x005e6999, 0x007481ad, 0x0066759c, 0x00757b9d, 0x008285a0, 0x0081869c, 0x009a9faa, 0x00aab1b6, 0x00c8cfce, 0x00c6cfca, 0x00cfd7d5, 0x00dae2e2, 0x00e0e6ea, 0x00e8eef6,
- 0x00edefec, 0x00f5f7f5, 0x00eceeec, 0x00d1d2d0, 0x007f7d7d, 0x003a3737, 0x001b1a1a, 0x00171716, 0x00191718, 0x001a1518, 0x001f191d, 0x00281f20, 0x00362b2f, 0x003f3537, 0x00463d3f, 0x004e4445,
- 0x00514846, 0x00514844, 0x00544b47, 0x00564e4a, 0x005a4f4b, 0x005e4d49, 0x0066524f, 0x006b5a58, 0x006d6060, 0x006b605e, 0x00675d5e, 0x00625958, 0x00605654, 0x005d524d, 0x00594b47, 0x0055473f,
- 0x00fff6eb, 0x00f9ece5, 0x00f7eeed, 0x00f6f2f2, 0x00ecefea, 0x00eaf1e7, 0x00e7f2e3, 0x00e8f3e0, 0x00edf0eb, 0x00efeef0, 0x00f0ecf1, 0x00f2ecf0, 0x00f3edf0, 0x00f2eff2, 0x00edecef, 0x00ebe9ee,
- 0x00f1eef6, 0x00eeecf5, 0x00edecf2, 0x00ecedf4, 0x00edeff8, 0x00edeef6, 0x00eeeff3, 0x00eceef3, 0x00f0edf6, 0x00efedf7, 0x00efedf7, 0x00edecf5, 0x00eeedf5, 0x00edecf3, 0x00e9e8f0, 0x00e8e5ef,
- 0x00e7e2ee, 0x00e5e2ed, 0x00e2e0eb, 0x00e3e3ed, 0x00e6e4ef, 0x00e7e6ef, 0x00e3e2ec, 0x00e1e1ea, 0x00e8e5f0, 0x00eae8f1, 0x00e8e7f2, 0x00e3e1ed, 0x00e0dde8, 0x00dcdae5, 0x00d7d5e0, 0x00d9d9e1,
- 0x00e5dcee, 0x00dcd7e5, 0x00dcdae5, 0x00dcdbe6, 0x00dcdae5, 0x00ddd7df, 0x00d7d5da, 0x00dbdce4, 0x00ebe3f7, 0x00e9e3f5, 0x00e7e5ee, 0x00dfe2e3, 0x00dadbe0, 0x00dadbea, 0x00dcdbf3, 0x00cbc9ec,
- 0x0095b7c4, 0x008cabc0, 0x009fbbd7, 0x007d94bd, 0x00495896, 0x003c4a93, 0x004357a2, 0x004961af, 0x005773c0, 0x005877c2, 0x00496db7, 0x006280ce, 0x008193ce, 0x005e6594, 0x003d4261, 0x00616380,
- 0x009b9ec5, 0x00b9bce9, 0x00adb6e7, 0x009da1d6, 0x007f7eb7, 0x006e6aba, 0x00615ebc, 0x005b5ab5, 0x005752b7, 0x004c48af, 0x004240a9, 0x003839a1, 0x002d3098, 0x002e3398, 0x002b3195, 0x00272e90,
- 0x002c316f, 0x002c3070, 0x00303477, 0x003f4489, 0x00565ba5, 0x006167b4, 0x005d63b1, 0x005b60ae, 0x005b5cad, 0x005b5eac, 0x006063a5, 0x005b5c87, 0x00847fa4, 0x00c8c2dd, 0x00e3dded, 0x00e4dde6,
- 0x00e4d9e1, 0x00e6dee6, 0x00e0dae0, 0x00e5dee7, 0x00b8b6c0, 0x0087868a, 0x00bebfbc, 0x00f6f6f5, 0x00fefdfe, 0x00fffdfe, 0x00ffffff, 0x00f3f5f4, 0x00797879, 0x00141313, 0x00131514, 0x00171918,
- 0x000d233b, 0x005b6979, 0x00e6f0ee, 0x00f1f2e4, 0x00e8dac9, 0x00ead6d0, 0x00edded9, 0x00f2e3e6, 0x00f0eff4, 0x00ebf1f2, 0x00ebf1ee, 0x00fdf4fa, 0x00fcf7fa, 0x00fef8fe, 0x00f9f7f9, 0x00f8f4f8,
- 0x00f9f3fe, 0x00f3f3f8, 0x00edeff4, 0x00eaebf1, 0x00e7ecf2, 0x00eaeaec, 0x00edeaeb, 0x00eceaec, 0x00e5dee8, 0x00e4dcea, 0x00eee7f6, 0x00f6f2fc, 0x00f5f1f9, 0x00f8f6fa, 0x00fffffe, 0x00fdfdfb,
- 0x00fffcff, 0x00fffbff, 0x00fdfdfe, 0x00fbfdfc, 0x00f9f9fe, 0x00f8f9fd, 0x00f5f7f9, 0x00f6f6fa, 0x00f6f5fb, 0x00f5f1f8, 0x00f3f1f5, 0x00f3f4f5, 0x00f5f4f5, 0x00f4f2f3, 0x00efede9, 0x00efeae9,
- 0x00f2eaed, 0x00f2eaed, 0x00f2ecea, 0x00f3ede9, 0x00f4ece9, 0x00f1ebed, 0x00edeaed, 0x00ebe9ed, 0x00eee6f0, 0x00ebe4eb, 0x00e6e0e5, 0x00e2dee2, 0x00e1dde2, 0x00ded9de, 0x00dcd8db, 0x00dedbdb,
- 0x00e5dfe6, 0x00e5e1e5, 0x00e6e2e7, 0x00e7e3e8, 0x00e9e7e9, 0x00e9e7e9, 0x00e9e7ea, 0x00e8e7e8, 0x00eee8f1, 0x00eeebf0, 0x00f5eef5, 0x00fcf0f9, 0x00f2faf6, 0x00f2fdf7, 0x00f7fcfa, 0x00fdf7f9,
- 0x00fff4ff, 0x00f6fbff, 0x00f1fdf8, 0x00fdfdf1, 0x00f8d0c5, 0x00f58a51, 0x00cd672e, 0x008d5e4d, 0x004e5a7a, 0x00465377, 0x004c5777, 0x00585876, 0x00515984, 0x0051578b, 0x00505182, 0x00554d78,
- 0x00474d73, 0x0041476b, 0x00373e5e, 0x00333a56, 0x00333a53, 0x00373d56, 0x00393f59, 0x003d425e, 0x0047456a, 0x004a496d, 0x004c4d6c, 0x00707087, 0x00e1e0ed, 0x00fdfdff, 0x00fcf9fc, 0x00fffdfc,
- 0x00fffcff, 0x00e7e7e6, 0x005f6363, 0x000c1113, 0x0009131a, 0x00131f28, 0x00121d25, 0x00101717, 0x00141112, 0x000c0d0f, 0x00050b0e, 0x00000d0c, 0x00010b0d, 0x000b0e08, 0x00191b0b, 0x002c240c,
- 0x003e2e1e, 0x003c2c1d, 0x00332715, 0x00251e0e, 0x00171104, 0x00100c05, 0x000a0a04, 0x00080a06, 0x0009090f, 0x0006090d, 0x00060b0f, 0x00070f13, 0x00030b1e, 0x00040c2a, 0x000f183c, 0x00232c56,
- 0x0075769e, 0x00ceccee, 0x00e3e1fc, 0x00c6bde4, 0x00b4a8d9, 0x00c2c1ea, 0x00d4dcfc, 0x00cdd2f2, 0x00c8c5e1, 0x00e0dcf0, 0x00f8f2ff, 0x00f9f2fd, 0x00fcf6fc, 0x00f5f0f6, 0x00fdf9fd, 0x00e8e7e9,
- 0x00878cde, 0x004f5cac, 0x004d5fb3, 0x004d63bd, 0x004b65c3, 0x004b60c4, 0x004f5fbd, 0x00505bad, 0x008887b9, 0x00c8c5e6, 0x00e7e0f5, 0x00e5d7e6, 0x00dcd2dd, 0x00a19ea3, 0x002e3232, 0x000d1611,
- 0x000f1b19, 0x000f1e1a, 0x000c1e1a, 0x000a1d1a, 0x000c1e1c, 0x00111e1c, 0x002c3529, 0x00525b41, 0x00858758, 0x009b996a, 0x00a6a478, 0x00cac4a5, 0x00f9f4ea, 0x00fdfbfa, 0x00fcfefd, 0x00f8fcfd,
- 0x00fffaff, 0x00cbc5cd, 0x00676467, 0x005c585f, 0x00686268, 0x006c6569, 0x00676167, 0x00625a62, 0x00544953, 0x00463a44, 0x00333237, 0x001f2d2a, 0x00221d19, 0x00271814, 0x00341e1f, 0x00432c36,
- 0x0060415d, 0x00774661, 0x00985362, 0x00bf5d56, 0x00e35638, 0x00f75729, 0x00ea410a, 0x00cc2f00, 0x00a72508, 0x00882c1e, 0x00673231, 0x002f1e2e, 0x0011182f, 0x001d1521, 0x002f1214, 0x00360b03,
- 0x00221721, 0x0024161e, 0x00331e20, 0x00412824, 0x00482b21, 0x004a2a1f, 0x00432419, 0x00391e14, 0x00341917, 0x00371c1e, 0x00422823, 0x004f392c, 0x0048372e, 0x00271a1c, 0x00060206, 0x0000010d,
- 0x000d0e2e, 0x001d2348, 0x000d1539, 0x0002082f, 0x000d133d, 0x000b1c58, 0x00061c61, 0x00061a5e, 0x00091765, 0x000a1963, 0x0005175e, 0x0006175f, 0x0004175f, 0x0004165e, 0x0004185e, 0x00001258,
- 0x00061a65, 0x000c2978, 0x001a3d93, 0x00204dab, 0x001d56bd, 0x00215dc8, 0x002864d1, 0x002862d1, 0x002456c2, 0x001e4fb6, 0x00235ab5, 0x002b6db5, 0x002a6dcf, 0x002d6ddc, 0x002763d3, 0x002c5cc2,
- 0x008a9dd8, 0x00d3e1f7, 0x00f6fdfa, 0x00fafdee, 0x00d0dec0, 0x006d7992, 0x00151d52, 0x00050a45, 0x00080b45, 0x001f2150, 0x009da1ba, 0x00eff3f8, 0x00fcfdf7, 0x00fdfdf4, 0x00fcfdf4, 0x00fcfaf6,
- 0x00e2b49b, 0x00b26246, 0x00cc6541, 0x00d96032, 0x00db6628, 0x00e87036, 0x00ed7949, 0x00fa9379, 0x00fdc9bf, 0x00f4e9e0, 0x00f6fdf7, 0x00f4fffc, 0x00f3fcfe, 0x00effaff, 0x00f4f5fb, 0x00fcf8fb,
- 0x00fff0fd, 0x00fff3f7, 0x00fbf5f2, 0x00f6faf3, 0x00e7fffb, 0x00f0f9fd, 0x00f4f7fd, 0x00faf8fc, 0x00fff8f8, 0x00fbf5f5, 0x00f4f2f4, 0x00f4faff, 0x00f7fafc, 0x00fcf5f8, 0x00fcf4f4, 0x00ecd5d2,
- 0x00f7972c, 0x00f1852f, 0x00f39151, 0x00eea080, 0x00eba36d, 0x00f69f52, 0x00f19241, 0x00f6a773, 0x00ffe0e0, 0x00fdd3ca, 0x00eca17f, 0x00f68d4d, 0x00e39357, 0x00e79b6e, 0x00f8c2a0, 0x00ffe6d4,
- 0x00fbf9ef, 0x00f7fdfa, 0x00f4fbf9, 0x00fbf6fe, 0x00f5f8fb, 0x00fafcfe, 0x00f5fcfd, 0x00f5f7f7, 0x00faf8fc, 0x00fffefe, 0x00c4c7bb, 0x00666a56, 0x004b542a, 0x00758049, 0x008e9e59, 0x0098aa5c,
- 0x00a5aa67, 0x00a3a965, 0x00969d59, 0x00868e4a, 0x00868e50, 0x008f985a, 0x00a2ab6a, 0x00afb976, 0x00bcc180, 0x00afb571, 0x00929f5a, 0x00748849, 0x00445028, 0x00343b23, 0x009da193, 0x00ecefe9,
- 0x00fffafe, 0x00f9fbfd, 0x00d8dce4, 0x00767a8a, 0x00242944, 0x00293267, 0x002c387c, 0x002a397d, 0x00293782, 0x00283a83, 0x002a3d85, 0x002c4086, 0x002d3e84, 0x00303d80, 0x002d3b79, 0x0023306d,
- 0x0021172d, 0x00231e30, 0x006b6676, 0x006f738a, 0x003c517e, 0x006d86c5, 0x005170b4, 0x003d5e9e, 0x00636f96, 0x007f8493, 0x00d4d6d1, 0x00f7f6e2, 0x00f9f7d9, 0x00f5f3cf, 0x00faf8d3, 0x00fcfcd9,
- 0x00fcfbea, 0x00dce3e2, 0x00808f9d, 0x00697a9e, 0x00495f95, 0x002d3b69, 0x00636e90, 0x00778492, 0x005a6862, 0x00586958, 0x00667662, 0x006b7968, 0x00707c6f, 0x0072806e, 0x00778572, 0x00727f67,
- 0x00898d85, 0x00c8cbc5, 0x00f6f9f4, 0x00f7faf5, 0x00f8faf9, 0x00f9fbfb, 0x00fcfefe, 0x00fbfdfb, 0x00fffbff, 0x00d9dbe0, 0x0073777d, 0x0049535a, 0x003d424b, 0x003e3640, 0x00553e42, 0x007f554e,
- 0x00ba664c, 0x00d4704d, 0x00eb7e52, 0x00f28551, 0x00f18653, 0x00f27e62, 0x00fa9987, 0x00f9bcad, 0x00ab95a6, 0x00675d8f, 0x003f468d, 0x003052a6, 0x001a5dad, 0x002763a5, 0x00335692, 0x008082ba,
- 0x00f6e5dd, 0x00fcece8, 0x00f2e9e8, 0x00f3f3f0, 0x00eaf1f6, 0x00e4edf3, 0x00e1eaee, 0x00e8edef, 0x00eff2ee, 0x00f2f0ec, 0x00f4f2f1, 0x00fbf1f9, 0x00f7f6fb, 0x00eaeaf2, 0x00dddee7, 0x00e0e1ec,
- 0x00e4d3ed, 0x00907f9b, 0x003b314c, 0x005a5a75, 0x00646f87, 0x00666978, 0x00656570, 0x00656671, 0x0069707a, 0x00666f79, 0x0067717a, 0x0069717c, 0x00626773, 0x00626271, 0x00646171, 0x00686373,
- 0x00826973, 0x00847078, 0x0087777e, 0x007f777d, 0x006c6d74, 0x00616871, 0x005f6873, 0x0055616c, 0x004b5166, 0x003f4a5c, 0x0041495a, 0x004d4e61, 0x00525265, 0x005a5d6d, 0x00616572, 0x00626574,
- 0x00646173, 0x005f6070, 0x005b5e6b, 0x00525863, 0x004c525c, 0x00525560, 0x005d5f6b, 0x00626973, 0x00686977, 0x00676876, 0x00676a76, 0x00636671, 0x00575b65, 0x004e525c, 0x00484c56, 0x00454953,
- 0x005e576a, 0x00645e70, 0x00626071, 0x005e6170, 0x005a606e, 0x00515a67, 0x00424c59, 0x003c4451, 0x003e4255, 0x00424657, 0x00494f5c, 0x00505860, 0x00626573, 0x00686979, 0x006f6f80, 0x00767385,
- 0x007e6d81, 0x006f5d67, 0x006b5558, 0x006b534e, 0x005b3d33, 0x00382f27, 0x001b1b12, 0x000e0803, 0x000f0003, 0x00150003, 0x001d0100, 0x00210301, 0x00200301, 0x001b0101, 0x00140100, 0x00100100,
- 0x000b0003, 0x000f0308, 0x000a0207, 0x00020003, 0x00040005, 0x00030007, 0x00010107, 0x0025262b, 0x00bdbac0, 0x00faf9fa, 0x00fafaf8, 0x00fbfdff, 0x00fbfdfe, 0x00f0eff4, 0x009c9ba5, 0x00646a7c,
- 0x004b75b9, 0x004376c3, 0x005877b6, 0x00907994, 0x00ee7241, 0x00f76e32, 0x00f3864f, 0x00f4c3a6, 0x00f6fdff, 0x00f1fbff, 0x00edf6f9, 0x00f5f4f2, 0x00f4f3fd, 0x00f1f2fc, 0x00f3f5f7, 0x00f4f5ec,
- 0x00f8f7fe, 0x00f5f6fa, 0x00f2f5f6, 0x00f2f6f7, 0x00f5f8f8, 0x00f6f8fb, 0x00f5f8fb, 0x00f2f5f7, 0x00f6f6fc, 0x00f5f6fb, 0x00f2f5f6, 0x00f0f3f2, 0x00f2f4f6, 0x00f0f3f7, 0x00f0f4f5, 0x00f3f4f6,
- 0x00f0f1f6, 0x00f0f0f5, 0x00f0f1f5, 0x00f0f3f5, 0x00f1f3f5, 0x00f1f4f5, 0x00f1f5f6, 0x00f3f6f7, 0x00f9f9fe, 0x00f7f7fc, 0x00f4f7f8, 0x00f4f8f7, 0x00f5f5f8, 0x00f1f3f5, 0x00edf1f1, 0x00ecf0f0,
- 0x00f1eff3, 0x00f1f1f3, 0x00eeeff2, 0x00eceff0, 0x00edefef, 0x00eceeef, 0x00ecefef, 0x00ecf0f2, 0x00f2f4f7, 0x00f4f6f8, 0x00efeff6, 0x00f2f4ff, 0x00ebf0f8, 0x00dee5eb, 0x00ccd9e2, 0x00b3bdd1,
- 0x007276a6, 0x00373c72, 0x00313a72, 0x00434e84, 0x004e5c8c, 0x00787e9a, 0x008a8f9c, 0x00929ba3, 0x00b8bbc2, 0x00bcc2c3, 0x00cad2cc, 0x00c9d2cc, 0x00ccd2d0, 0x00dce1e3, 0x00dfe3e6, 0x00e8eaf3,
- 0x00edf0f3, 0x00f0f1f3, 0x00f0f2f2, 0x00f3f6f5, 0x00c6c8c7, 0x00717271, 0x0028292a, 0x00161316, 0x001c1819, 0x001d1519, 0x00221d1e, 0x002a2223, 0x00362e30, 0x0041373a, 0x0045403f, 0x004e4644,
- 0x0055494c, 0x00574b4d, 0x00584f4c, 0x0058524c, 0x005e5251, 0x005f514e, 0x00625550, 0x00675a59, 0x006d5f65, 0x00695f61, 0x00625e60, 0x005e5e5d, 0x005f5c5a, 0x005b5652, 0x00554d49, 0x00514940,
- 0x00f4ede1, 0x00f0e9e5, 0x00f8f6f6, 0x00e9eef1, 0x00edf5f0, 0x00e7f5e9, 0x00ecf4e9, 0x00eff3e8, 0x00e5efe5, 0x00e3f0eb, 0x00ebedf3, 0x00eeeaed, 0x00eae6ea, 0x00ede7e9, 0x00f1eaef, 0x00f2eef6,
- 0x00e5eeeb, 0x00e9ebec, 0x00ececf4, 0x00ebeef6, 0x00ececf4, 0x00ececf3, 0x00eeecf6, 0x00f1ecf5, 0x00e9ecef, 0x00e9ecef, 0x00edecf3, 0x00efedf5, 0x00edeef4, 0x00ececf3, 0x00ebe9f3, 0x00e7e6f0,
- 0x00dee1e6, 0x00dfe1e7, 0x00e3e2eb, 0x00e4e2ed, 0x00e8e3f0, 0x00e8e4f1, 0x00e4e0ee, 0x00e4e1ed, 0x00e2e4ec, 0x00e4e8ed, 0x00e5e6ee, 0x00e2deec, 0x00e1dee9, 0x00dfdce8, 0x00d9d5e2, 0x00e0dde9,
- 0x00dadbe3, 0x00d3d6de, 0x00dadae5, 0x00dbd9e4, 0x00d6d4e1, 0x00d3d0d6, 0x00d9d3d9, 0x00e4deea, 0x00dbdde5, 0x00d3d4d9, 0x00d5d5db, 0x00d7d9dd, 0x00d7d9e1, 0x00deddf3, 0x00d8d5f6, 0x00aea9d7,
- 0x00527dc0, 0x00658acc, 0x00627fc5, 0x003d549a, 0x00344784, 0x0043568d, 0x0051659c, 0x007689bf, 0x008fb3d6, 0x007296bb, 0x004a669b, 0x005c75c0, 0x004d5a91, 0x002b335c, 0x00474964, 0x0077758c,
- 0x00808da2, 0x007e8dab, 0x007980b1, 0x00797bb2, 0x006e68a6, 0x005d5e9b, 0x004e5090, 0x0043478a, 0x002f3a72, 0x00252e69, 0x0024296b, 0x00222768, 0x001a225c, 0x00131e54, 0x00121a53, 0x000e134e,
- 0x000a1541, 0x000b1644, 0x00191f55, 0x002f336d, 0x00515696, 0x006063aa, 0x006565b5, 0x006163b2, 0x005359a4, 0x005258a4, 0x00595aa4, 0x00555790, 0x005c5b8b, 0x009690b7, 0x00d6ceec, 0x00e2dbed,
- 0x00dcd7dc, 0x00dad5d8, 0x00e2dce3, 0x00e1dbe8, 0x00c2bccd, 0x0099959d, 0x00c0bdbf, 0x00f9f6f9, 0x00f6fbf4, 0x00f8fcf7, 0x00fdfdfc, 0x00f8f7f8, 0x00818183, 0x00151417, 0x00151215, 0x001f1b1e,
- 0x00122725, 0x005c6c69, 0x00e9f1f2, 0x00f0f5f7, 0x00e9deef, 0x00e7d9f4, 0x00e6d5f5, 0x00dfcef5, 0x00cec9e0, 0x00d7d0e9, 0x00e5def1, 0x00eee4ed, 0x00fdf7fb, 0x00fff7fb, 0x00faf2f7, 0x00faf2fb,
- 0x00eef1f0, 0x00eaefee, 0x00ebebf1, 0x00e9ebf0, 0x00e9eef2, 0x00ebe9ed, 0x00f1ebf1, 0x00f3eef3, 0x00dfe2e4, 0x00dcdcdf, 0x00eae7f1, 0x00f0ecf7, 0x00f3f0f6, 0x00f8f5fa, 0x00fffcff, 0x00fffcff,
- 0x00f9fcf8, 0x00f5faf5, 0x00f9fdfc, 0x00feffff, 0x00fefdfd, 0x00fcfbfc, 0x00fcfaff, 0x00fefaff, 0x00fafdf8, 0x00fafbf9, 0x00fcf9fe, 0x00fcfafd, 0x00fdfcfd, 0x00fdfafc, 0x00fdf9fa, 0x00fbf8fa,
- 0x00f7f9f1, 0x00f4f8ed, 0x00fcf9f4, 0x00fdfbf3, 0x00fff7f4, 0x00fcf7f8, 0x00fef4fd, 0x00fbf2fb, 0x00efefee, 0x00ebeae8, 0x00eae6e8, 0x00e6e0e7, 0x00e6dfe5, 0x00e2dbde, 0x00e4dde1, 0x00e8e1e6,
- 0x00e3e7e5, 0x00e4e7e6, 0x00eae6ea, 0x00eae7ea, 0x00eae6e8, 0x00e8e7e9, 0x00ebe7ed, 0x00ece7ee, 0x00e7e9e7, 0x00e8eae7, 0x00f0e9ef, 0x00fae8f4, 0x00e9f6ee, 0x00eaf7ee, 0x00f2f4f2, 0x00fbf0f9,
- 0x00f1f1fa, 0x00ebfafa, 0x00effdfb, 0x00fefcf7, 0x00f8d6d0, 0x00f58a4e, 0x00e56a2d, 0x00ad6a5f, 0x005b6a88, 0x00475d7e, 0x0048587a, 0x004d5771, 0x004c5778, 0x0050537f, 0x00534e7b, 0x005c4772,
- 0x003a4b63, 0x0036445e, 0x00333d5a, 0x00323955, 0x00353c53, 0x00373b53, 0x003c3e5b, 0x00414261, 0x0040465f, 0x00484b69, 0x00535371, 0x00838196, 0x00edebf4, 0x00fffcfe, 0x00fffcff, 0x00fefbfe,
- 0x00fafdf6, 0x00d2d7d3, 0x004a4c4f, 0x00080f11, 0x00071314, 0x00131c22, 0x00141b23, 0x0013161b, 0x00081007, 0x00030c07, 0x0004090c, 0x00010a0e, 0x00010e0b, 0x000c110a, 0x00282219, 0x003f3120,
- 0x004b3b16, 0x004a3c19, 0x0049361c, 0x00392814, 0x00211505, 0x00140d03, 0x00110a07, 0x000d0b0c, 0x00010b05, 0x00000a0b, 0x00050c10, 0x00040e0b, 0x00020d1d, 0x00030b25, 0x00111539, 0x00181b43,
- 0x00565f79, 0x00b1b5d2, 0x00bebce1, 0x009d98c6, 0x00aca1db, 0x00cccdf6, 0x00cacfed, 0x00c3c6e1, 0x00d4d8e5, 0x00eaebf3, 0x00f7f3fd, 0x00f7f1fa, 0x00fcf7fb, 0x00f4f0f4, 0x00fefbff, 0x00e1dce2,
- 0x006e7ccb, 0x00465ba9, 0x005263b8, 0x004d63b9, 0x004c63c6, 0x004b61c1, 0x005662c1, 0x00555caf, 0x008d91b8, 0x00d1d1e9, 0x00e9e1ef, 0x00e6d8e3, 0x00e0d8de, 0x00a6a4a9, 0x00393a41, 0x0010171b,
- 0x00091a15, 0x00071b13, 0x000a1c1a, 0x000d1b1f, 0x000b1a1e, 0x00161f19, 0x00393f2b, 0x00616748, 0x00848d56, 0x00969b67, 0x00a6a47b, 0x00cec9ad, 0x00fcf6f1, 0x00fdfafb, 0x00fffeff, 0x00fdfdff,
- 0x00f1f7f5, 0x00b6babc, 0x005d5c64, 0x005c5a64, 0x0067636d, 0x006a646d, 0x006c656f, 0x00685f6b, 0x00504e51, 0x00413f45, 0x0032343a, 0x00222f2d, 0x00252220, 0x00271919, 0x00321822, 0x003f2335,
- 0x00473144, 0x005a3848, 0x00985e6c, 0x00cc7b75, 0x00d86e55, 0x00e05f44, 0x00d9472b, 0x00d13315, 0x00b71f00, 0x009c2300, 0x00892f18, 0x005c2f22, 0x00342e32, 0x00271b27, 0x00270822, 0x00340325,
- 0x0019130d, 0x001a130c, 0x00251716, 0x0032221e, 0x003e271b, 0x004a2e1d, 0x00512f20, 0x004b291c, 0x00362417, 0x0031221e, 0x00352522, 0x003e301e, 0x00271d16, 0x000b060a, 0x00050011, 0x0004001c,
- 0x000b112f, 0x00222d4a, 0x00121639, 0x00020323, 0x00080f2b, 0x000b1b52, 0x000a1b65, 0x00091b63, 0x0002195c, 0x0002185c, 0x0004165d, 0x00081860, 0x0004175d, 0x0005165e, 0x000d1c66, 0x00071761,
- 0x0000194a, 0x00001c5b, 0x000d2a7b, 0x00183b99, 0x00224cba, 0x002455c5, 0x002b5ed4, 0x002559cd, 0x00104eae, 0x001753ae, 0x002766bf, 0x001f6db8, 0x002369c9, 0x002c61ca, 0x002e56ba, 0x005c77c8,
- 0x00c7d6ec, 0x00ebf6f2, 0x00f6fdf6, 0x00e9f3ed, 0x0085929e, 0x0028346f, 0x00151c6f, 0x00182175, 0x00141b5f, 0x003b4677, 0x00c5c9ed, 0x00f7f9ff, 0x00fcfcf8, 0x00fdfdf4, 0x00fffef6, 0x00faf6f0,
- 0x00bb7f86, 0x0075312d, 0x00b36657, 0x00c37451, 0x00b76c2f, 0x00c15c1e, 0x00d2501b, 0x00f2592e, 0x00f37d4d, 0x00eca16b, 0x00f8cca4, 0x00fee3d3, 0x00fff4e9, 0x00fcfbf6, 0x00fff7fe, 0x00fcf4ff,
- 0x00f9f0f7, 0x00f9f1f4, 0x00fdf2fa, 0x00f8f8f6, 0x00e7fef4, 0x00edf8f8, 0x00f7f9ff, 0x00fdf9ff, 0x00f2f1ea, 0x00eff1ec, 0x00f7f7f7, 0x00f7f8ff, 0x00faf7fd, 0x00fcf2f8, 0x00fff4f5, 0x00efd1ce,
- 0x00f18c32, 0x00e37e40, 0x00fba48e, 0x00fbd1db, 0x00f6e0e2, 0x00f6dabf, 0x00f1d0af, 0x00efdfc1, 0x00f2eace, 0x00f3c38d, 0x00ef9153, 0x00fc9456, 0x00f4ad69, 0x00ed9766, 0x00faa688, 0x00ffd2c3,
- 0x00f1fce7, 0x00e9fbf1, 0x00eff6fc, 0x00fff2ff, 0x00effaff, 0x00f7fbfd, 0x00f9f6ff, 0x00fefbff, 0x00f2faf6, 0x00f7fbf7, 0x00eaebe4, 0x00a1a393, 0x00686e48, 0x0088925b, 0x00a0ac6a, 0x00a9b46b,
- 0x00a5b565, 0x009fac63, 0x009da462, 0x00959e5c, 0x0098a260, 0x00a6ae6c, 0x00b1ba78, 0x00b9c080, 0x00b5c379, 0x00a7b669, 0x008c9959, 0x006c7e49, 0x003c4826, 0x00606450, 0x00d8d8d5, 0x00fcfafc,
- 0x00f4faf3, 0x00f4faf4, 0x00f0f3f6, 0x00a2a7b2, 0x002f3144, 0x00252d5b, 0x002f3676, 0x00333c7e, 0x00223a76, 0x0022377b, 0x00273a84, 0x002b3e89, 0x002b3d84, 0x002a3a7e, 0x00303b82, 0x002d367c,
- 0x001f2040, 0x00101322, 0x00494952, 0x007e827f, 0x004a5775, 0x00556aa9, 0x006980d3, 0x00455fba, 0x003d5682, 0x00445b6c, 0x0090999b, 0x00dcd8cd, 0x00fdfee7, 0x00fcfddc, 0x00fffcdd, 0x00fcfbdc,
- 0x00f4fce3, 0x00c9d7cf, 0x005d6c7e, 0x004b5e88, 0x005569ab, 0x0048598a, 0x005f6d94, 0x005c6c83, 0x00334b40, 0x00314734, 0x003d4e3c, 0x004a5747, 0x004c5c4c, 0x00536351, 0x005f6d5c, 0x005d6c57,
- 0x00858c82, 0x00cfd7cb, 0x00f7fbf4, 0x00f8fcf9, 0x00f8faf8, 0x00fbfdfc, 0x00ffffff, 0x00fbfdfd, 0x00f3faf4, 0x00dde4e1, 0x0081838b, 0x00444a57, 0x0031323e, 0x00372e39, 0x0051323b, 0x007b4a48,
- 0x00ac5e3a, 0x00cc6a3a, 0x00ed7a47, 0x00f97f4a, 0x00fa824b, 0x00f17854, 0x00f5876e, 0x00fdbca8, 0x00d6bbbe, 0x009082a6, 0x00474b8b, 0x003a57ac, 0x001f64b3, 0x002f6bb4, 0x003f61ab, 0x00787cc2,
- 0x00e6d8ce, 0x00f8efe9, 0x00f5eae8, 0x00f4eeee, 0x00f2f5f5, 0x00f3f7f4, 0x00eceeef, 0x00e7eae6, 0x00e7eedf, 0x00edf0e1, 0x00f3ebe7, 0x00faedf5, 0x00f9f6fb, 0x00f3f1f9, 0x00ede8f6, 0x00ebe4f6,
- 0x00ded1e4, 0x00928799, 0x0043364f, 0x005c5873, 0x005e677e, 0x00656172, 0x006b6070, 0x006c6875, 0x00637074, 0x005d6f72, 0x005a6971, 0x005c6973, 0x005d606b, 0x005c5563, 0x006e5d6f, 0x00856b80,
- 0x00957868, 0x00967d75, 0x009e8885, 0x00938585, 0x0075737d, 0x00626874, 0x005f6476, 0x00555d71, 0x00414e5c, 0x003c4a58, 0x00505263, 0x00655b6a, 0x006d6575, 0x006b6676, 0x00696676, 0x006a6778,
- 0x005a626b, 0x00545d65, 0x00535863, 0x00555764, 0x00595c66, 0x00636670, 0x00646673, 0x00656676, 0x005f656b, 0x005d646c, 0x00595e69, 0x00525662, 0x004a4e59, 0x00464954, 0x004b4c58, 0x004f515e,
- 0x00575d69, 0x00616570, 0x005f616e, 0x005d616d, 0x00555d67, 0x004c5561, 0x003b4051, 0x003b3d4e, 0x00384652, 0x00414b58, 0x004b5460, 0x00555b5f, 0x006e6e75, 0x00847c87, 0x0096869a, 0x00a1889d,
- 0x00907f85, 0x00806d72, 0x00685355, 0x00544240, 0x00443629, 0x00312d22, 0x00241e18, 0x001e0e0c, 0x00180300, 0x00270302, 0x00350808, 0x003c0b0c, 0x00330a0a, 0x002a0905, 0x001f0402, 0x001a0205,
- 0x00100404, 0x00130808, 0x000f0508, 0x00060004, 0x00040002, 0x00060005, 0x000b050f, 0x002a252f, 0x00a8aea9, 0x00eef5f0, 0x00fbfcfd, 0x00fdfbff, 0x00fdffff, 0x00fef9f9, 0x00b7b2bc, 0x00707a8d,
- 0x00468acf, 0x004194e5, 0x005f98e1, 0x008a8dbb, 0x00d57052, 0x00f16a31, 0x00f27236, 0x00f4ab81, 0x00eff3e2, 0x00e8faf1, 0x00ebf5fb, 0x00f4f4fd, 0x00feeefc, 0x00faf2f9, 0x00f8f5f8, 0x00f3fbf3,
- 0x00ecf4ef, 0x00ecf1ee, 0x00f0f2f4, 0x00f3f5f9, 0x00f2f6f8, 0x00f1f6f8, 0x00f5f8fb, 0x00f6f6fa, 0x00eff6f0, 0x00eff5f1, 0x00f0f4f5, 0x00f2f5f5, 0x00eef0f6, 0x00edf0f3, 0x00f0f2f7, 0x00f3f4f7,
- 0x00eaf0ec, 0x00ebf1ee, 0x00f0f2f2, 0x00f2f1f5, 0x00f2f3f7, 0x00f0f2f5, 0x00f1f3f6, 0x00f5f6fc, 0x00f1f7f3, 0x00eff7f6, 0x00f4f6fa, 0x00f5f6f8, 0x00f2f5f4, 0x00f3f3f4, 0x00f3f3f6, 0x00f1f3f5,
- 0x00e9eee9, 0x00eaf0ec, 0x00edf0f0, 0x00eef0f2, 0x00edf0f4, 0x00edeff3, 0x00f0eef2, 0x00f0edf2, 0x00eaf3ed, 0x00ebf1ef, 0x00eef1f5, 0x00eef4fd, 0x00f0f6fb, 0x00eaf3f6, 0x00e1e8f2, 0x00d8dff2,
- 0x00a2afce, 0x00616b98, 0x002d376a, 0x00363f72, 0x0068769e, 0x009096a5, 0x00abafb5, 0x00babfc3, 0x00bec8be, 0x00b7c3b9, 0x00ced4cf, 0x00d6dcd7, 0x00dae1de, 0x00e0e5e8, 0x00e6e6ee, 0x00e6e8f3,
- 0x00e3eee6, 0x00e8f4ee, 0x00ebf4f0, 0x00eff4f6, 0x00f3f8f7, 0x00c0c4c6, 0x00535256, 0x001d1a1f, 0x0013190e, 0x0015170e, 0x002a2121, 0x0034282b, 0x003e3336, 0x00483f41, 0x00524747, 0x005a4d4e,
- 0x00555247, 0x00574f49, 0x005c514f, 0x005f5551, 0x005f544f, 0x0061554f, 0x00685b58, 0x006d6261, 0x0069675e, 0x00666661, 0x00666564, 0x00646563, 0x005d5d59, 0x00595652, 0x0055504b, 0x00534c46,
- 0x00f8f5f3, 0x00efeaee, 0x00f5f2f7, 0x00e6f1f7, 0x00ecf4f2, 0x00eaf5e7, 0x00f0f3e6, 0x00f6f1e4, 0x00eeedeb, 0x00eaedf2, 0x00ebedf2, 0x00ede4ea, 0x00e8e3e5, 0x00eae4e7, 0x00ece6ec, 0x00efedf5,
- 0x00ebedf0, 0x00ececf0, 0x00ececf5, 0x00ebebf3, 0x00eae9f1, 0x00eae9f0, 0x00ebebf3, 0x00edebf1, 0x00eeebf2, 0x00eeedf4, 0x00efecf4, 0x00efedf3, 0x00eeeef6, 0x00ececf3, 0x00e8e7ee, 0x00e6e5ed,
- 0x00e1dfe9, 0x00e1dfea, 0x00e3e1ec, 0x00e3e2ed, 0x00e5e3ef, 0x00e5e3ee, 0x00e1dfe9, 0x00e1dfe9, 0x00e8e6f1, 0x00eae8f2, 0x00e2e1eb, 0x00dcdce8, 0x00dfdde9, 0x00dbdae7, 0x00d8d6e4, 0x00dfdcec,
- 0x00d7d7e3, 0x00d7d6e2, 0x00dcd9e6, 0x00dddae7, 0x00d9d3e1, 0x00d5d0d6, 0x00ddd9dd, 0x00e4dee9, 0x00ddd9e7, 0x00dbd8e1, 0x00dbdadf, 0x00dcdee0, 0x00dddee5, 0x00e4e3f6, 0x00c8c6eb, 0x008381b4,
- 0x003b57ba, 0x004d67c3, 0x003951a2, 0x002d4484, 0x00455a84, 0x00687e9e, 0x0093a9c6, 0x00b9ceec, 0x009cb6d7, 0x00697faa, 0x00576a9c, 0x005164a6, 0x004f5981, 0x00595c79, 0x006c6d7c, 0x006e6d75,
- 0x004b5665, 0x0034405e, 0x00454f78, 0x00535988, 0x0057558b, 0x00515485, 0x003d4571, 0x00303866, 0x00272e58, 0x00232d53, 0x001a254b, 0x00162145, 0x00131e3e, 0x00131e3d, 0x000c1637, 0x00060f31,
- 0x00000839, 0x000c1447, 0x00282d66, 0x0040467e, 0x00565d99, 0x006066a8, 0x005f62a9, 0x005a5da9, 0x00585baa, 0x00585bac, 0x005556a3, 0x00585c9d, 0x00504f86, 0x00696691, 0x00b9b5d3, 0x00d6d1e4,
- 0x00ded8e1, 0x00dad4da, 0x00ded6df, 0x00ded7e4, 0x00beb8c8, 0x009a979d, 0x00bcbbbb, 0x00f5f4f4, 0x00f8faf9, 0x00fcfcfc, 0x00fcfcfd, 0x00f7f8f8, 0x00848585, 0x00141616, 0x00161817, 0x00201f1f,
- 0x0025291e, 0x00717171, 0x00ecf0f3, 0x00f0f4fa, 0x00e6ecfc, 0x00d8d9f5, 0x00b6b3ce, 0x00a99fb6, 0x00b4a2ac, 0x00c3a9b0, 0x00c7b6bc, 0x00dcd5dc, 0x00fbf8fc, 0x00fdf7fd, 0x00f0ebf3, 0x00f4eff3,
- 0x00efeef1, 0x00edeff2, 0x00ebebf1, 0x00eaeaef, 0x00ecedf0, 0x00eaeaec, 0x00ebe9ec, 0x00edeaee, 0x00e4e2e9, 0x00e3dee9, 0x00e6e1ee, 0x00e8e4ef, 0x00f0ecf5, 0x00faf7fb, 0x00fbfaf9, 0x00fffefe,
- 0x00f9f9fc, 0x00f6f7f8, 0x00f5f5f7, 0x00fdfbfe, 0x00fefdfd, 0x00f9f9fa, 0x00f6f7f9, 0x00f8f7f8, 0x00f8fbf9, 0x00fdfdfe, 0x00fdfdff, 0x00fdfdff, 0x00fdfbfd, 0x00fffcfe, 0x00fcfbfb, 0x00fbfaf7,
- 0x00fcfdf5, 0x00fcfdf7, 0x00fafaf5, 0x00fbf9f3, 0x00f9f6f2, 0x00f6f4f6, 0x00f4f2f5, 0x00f3eff4, 0x00efedf1, 0x00ecebec, 0x00e9e7e9, 0x00e8e6e8, 0x00edeaec, 0x00efeced, 0x00f1eff2, 0x00f2f0f3,
- 0x00eceded, 0x00ebebed, 0x00ece9ed, 0x00ebe9ed, 0x00ebe8ec, 0x00eae8eb, 0x00ece8ec, 0x00ece8ed, 0x00ebeaed, 0x00ebe8ea, 0x00ede5ec, 0x00f3e4ed, 0x00e3f0e8, 0x00e4f2ea, 0x00e9f0ed, 0x00f5ebf1,
- 0x00f4f1fb, 0x00edf9fc, 0x00e9f9f8, 0x00fbfcf8, 0x00f4d1cc, 0x00f3874e, 0x00e2672a, 0x00b36c60, 0x006e75ab, 0x006173a4, 0x005b6c96, 0x004d5b74, 0x0045556f, 0x004a5173, 0x004e4b6f, 0x00534064,
- 0x003b4663, 0x0036405d, 0x002f3855, 0x00333b55, 0x00343c51, 0x00373e53, 0x003c415a, 0x003f435d, 0x00464965, 0x004e4f72, 0x005a5975, 0x0092929e, 0x00f3f2f7, 0x00fefdfe, 0x00fefcff, 0x00fdfbfd,
- 0x00fbfdfa, 0x00c7cbc9, 0x0036393a, 0x00080e0f, 0x00091315, 0x00111c22, 0x000e181e, 0x000c1514, 0x000b0e08, 0x00060b07, 0x00040809, 0x0001090a, 0x00040d0c, 0x0011140d, 0x002f291b, 0x004a3c25,
- 0x005f461f, 0x005f4823, 0x00594022, 0x0048331a, 0x002c1e0a, 0x00191203, 0x00100b04, 0x000b0b07, 0x00060b09, 0x00040d10, 0x00040f0d, 0x00021005, 0x00040f13, 0x00060e1c, 0x000d1228, 0x00090f28,
- 0x00454b5d, 0x009d9fb8, 0x00aeaece, 0x009592be, 0x00b6afe5, 0x00c1c2e6, 0x00afb5cb, 0x00c6c7df, 0x00ecebf8, 0x00f2f0f7, 0x00f6f2f9, 0x00f6f1f7, 0x00f9f5f8, 0x00f5f3f5, 0x00fbfafc, 0x00d6d6d8,
- 0x006571c5, 0x004b59ae, 0x005363ba, 0x004a62bb, 0x004c64c5, 0x004c5fc1, 0x005461bc, 0x00555cad, 0x009a98c0, 0x00e2daf5, 0x00ede3f1, 0x00e5dbe2, 0x00e3dbdf, 0x00b3afb3, 0x003f4045, 0x0010161b,
- 0x000f1b1b, 0x000d1a1a, 0x000d1b1a, 0x000f1c1b, 0x000e1a19, 0x001c2519, 0x003e452a, 0x00656a45, 0x008c9360, 0x0097996a, 0x00a6a47d, 0x00d1cdb3, 0x00fef9f5, 0x00fefcfd, 0x00fcfdfe, 0x00fcfefe,
- 0x00f0f3f8, 0x00adafb6, 0x00555760, 0x00595b64, 0x0063646c, 0x0067676f, 0x006a6871, 0x0064616c, 0x0056515a, 0x0049434e, 0x0039373f, 0x002b302f, 0x00292422, 0x00291c1c, 0x002e1921, 0x0037202f,
- 0x00412d3f, 0x00583d4e, 0x00a27e87, 0x00e0b1af, 0x00d59b85, 0x00bc716c, 0x00b35a5c, 0x00b45659, 0x00b54e45, 0x00ab3f35, 0x0098322b, 0x008f2f26, 0x00813a37, 0x00622a2f, 0x00340b11, 0x001e0111,
- 0x00200a07, 0x0025100d, 0x00281712, 0x00241912, 0x002c1f12, 0x00392514, 0x00412a18, 0x00432a16, 0x00301f13, 0x00291b19, 0x00211816, 0x001b1509, 0x000c0705, 0x00020009, 0x00040316, 0x00040522,
- 0x002e3859, 0x0051587d, 0x001b2345, 0x00030824, 0x00040a24, 0x000c1951, 0x000c1b64, 0x00081a61, 0x0003195d, 0x00051b60, 0x00071860, 0x00091961, 0x0006185f, 0x0005175d, 0x0008195f, 0x0006175d,
- 0x00031848, 0x00001754, 0x00041d68, 0x000e2c85, 0x00173ea6, 0x001e4bb7, 0x002a58c9, 0x001d4ebd, 0x000f4aab, 0x00235bbe, 0x002568c0, 0x001868ba, 0x002362c3, 0x002b56b5, 0x004868b4, 0x009fb0e3,
- 0x00ecf7f5, 0x00f5fcfa, 0x00eaf2f7, 0x00adb7ce, 0x0044498a, 0x001d2678, 0x001e2681, 0x001f2882, 0x001b216d, 0x005e659e, 0x00e1e6fe, 0x00f7fbfc, 0x00f9fbf4, 0x00fefef4, 0x00fefef4, 0x00f1ede6,
- 0x00af4f66, 0x005e0915, 0x008a4744, 0x009f765e, 0x0087753b, 0x00835316, 0x00943e06, 0x00c83f12, 0x00e45122, 0x00e4652f, 0x00ea8853, 0x00f7a585, 0x00fcd1b0, 0x00fdefd5, 0x00fbfaea, 0x00fbf8f3,
- 0x00fcf6f8, 0x00fdf1fa, 0x00f7eff8, 0x00f7f6f9, 0x00ecfcf5, 0x00f1f6fa, 0x00f9f9fd, 0x00f9f6f8, 0x00efeae9, 0x00f2eff0, 0x00f5f8f8, 0x00f4f7fb, 0x00f4f6f9, 0x00faf2f4, 0x00fdf2ec, 0x00e9c9c0,
- 0x00f1813a, 0x00ea7a4c, 0x00feaa91, 0x00ffe0e6, 0x00fcf5fb, 0x00fcf9ef, 0x00f7faeb, 0x00eafdee, 0x00e8f4e2, 0x00f2c089, 0x00e58f4d, 0x00f8a174, 0x00fcd399, 0x00fbaf87, 0x00f09e7e, 0x00fdc7b9,
- 0x00f3fef0, 0x00effdfb, 0x00effafc, 0x00ffeffd, 0x00edf7fb, 0x00f5f4f8, 0x00f5f4fa, 0x00fdfaff, 0x00f6f7f9, 0x00f8f9fa, 0x00fafbf8, 0x00d2d5c8, 0x008b926c, 0x0096a068, 0x00adb876, 0x00b9c67b,
- 0x00b7c07a, 0x00afb871, 0x00acb370, 0x00a8b06e, 0x00aeb872, 0x00b8c27a, 0x00bec884, 0x00c1c987, 0x00bec884, 0x00b2ba79, 0x00929b5f, 0x00647541, 0x00444f2f, 0x008b8f81, 0x00f0f1ee, 0x00fbfbfc,
- 0x00f6f9f7, 0x00f7f7f4, 0x00f9fcfb, 0x00c4cbce, 0x004a4d57, 0x0020294d, 0x002f3a6f, 0x002e3872, 0x002b3d7c, 0x0023367b, 0x00243982, 0x00263b87, 0x00283c86, 0x00273980, 0x002b3b80, 0x002d3d7d,
- 0x00262457, 0x0014142e, 0x002f2d31, 0x007a7c6c, 0x00636d7a, 0x0035497d, 0x005970c2, 0x003855b6, 0x003b5393, 0x00566e91, 0x00707c8b, 0x00959596, 0x00e1e2d7, 0x00f9fceb, 0x00f7f9e6, 0x00f9fde8,
- 0x00e6f1e2, 0x00a4b3b6, 0x0032415c, 0x002a3b6e, 0x003a4b92, 0x005b6ba0, 0x0092a1c8, 0x0076899c, 0x00223431, 0x00152b1c, 0x00192d1a, 0x001e321f, 0x00253829, 0x002b3d2b, 0x003a4a37, 0x003a4c34,
- 0x00848782, 0x00e1e5de, 0x00f7fbf6, 0x00f4f9f6, 0x00f6f9f7, 0x00f9fdfa, 0x00fbfefd, 0x00f9fbfa, 0x00fbfdfd, 0x00eceeef, 0x00888b92, 0x003b414d, 0x002b2a38, 0x00302531, 0x00482b32, 0x006f3d37,
- 0x00ad5431, 0x00d3653b, 0x00ef7846, 0x00fa7b46, 0x00f67843, 0x00e86e43, 0x00e37d56, 0x00efb18f, 0x00ecd1cd, 0x00b6a4c5, 0x00575991, 0x00435caa, 0x002365b7, 0x003069b8, 0x003f64b0, 0x007072c0,
- 0x00d6c2c7, 0x00fbedf1, 0x00f7ecec, 0x00f1e8ee, 0x00f1f1f1, 0x00f1f5f6, 0x00f4f6f6, 0x00ecf1f1, 0x00e9eae2, 0x00f1eee7, 0x00f8eded, 0x00faedf5, 0x00f7f1f9, 0x00f2f0f8, 0x00e9e6f0, 0x00e0dae7,
- 0x00decde3, 0x009f8ea4, 0x00493c54, 0x005a5570, 0x00535b71, 0x005e5c6b, 0x00655f6c, 0x00686672, 0x00656f78, 0x0063717a, 0x005c6b75, 0x005b6771, 0x00626168, 0x00695b64, 0x00806773, 0x009b7887,
- 0x00b28173, 0x00b0867d, 0x00ad8c86, 0x00a48d8c, 0x00857d87, 0x00686976, 0x005e6071, 0x0054596a, 0x004f5160, 0x00585968, 0x006b6370, 0x00816e76, 0x00887782, 0x007e727f, 0x006d6773, 0x00666271,
- 0x00565a65, 0x00505561, 0x004e525f, 0x00535760, 0x005e6168, 0x00696e77, 0x00646974, 0x005d616b, 0x005d626b, 0x005c5f6a, 0x004d515c, 0x00464a55, 0x00424550, 0x00444752, 0x004c505b, 0x004e515c,
- 0x005a5e6b, 0x00666875, 0x00616270, 0x005c5f6a, 0x00575c63, 0x0051575f, 0x00434853, 0x00454954, 0x004a5464, 0x0051576b, 0x005a5d6c, 0x00656363, 0x00817779, 0x0097878d, 0x009f8993, 0x009e808b,
- 0x008e7279, 0x00806368, 0x005f4445, 0x0049332e, 0x004b3b2e, 0x00524c40, 0x004e463d, 0x004b3732, 0x004e2e2b, 0x0054272a, 0x00522123, 0x00511e1f, 0x00401312, 0x002e0b06, 0x001e0601, 0x00190801,
- 0x00231412, 0x00271818, 0x00190a0e, 0x000c0107, 0x00080004, 0x000c050b, 0x001e1820, 0x0036333a, 0x00a9acad, 0x00f6f5f7, 0x00f8fbfa, 0x00f9fbf9, 0x00fbfff8, 0x00fcfcf7, 0x00bec0bf, 0x006e7a86,
- 0x003b7fc1, 0x004496ee, 0x0057a1ed, 0x007a92cc, 0x00c17864, 0x00e9683a, 0x00f2662c, 0x00f49667, 0x00f0e5ce, 0x00eff9f2, 0x00eaf5f9, 0x00f4f1fc, 0x00fdeafb, 0x00fceef8, 0x00f4f3f2, 0x00ecf9ef,
- 0x00f0f3f4, 0x00eff1f4, 0x00f0f1f4, 0x00f1f2f4, 0x00f2f3f5, 0x00f0f2f3, 0x00f0f4f4, 0x00eef3f4, 0x00eff4f4, 0x00f2f4f5, 0x00f0f2f4, 0x00eef2f1, 0x00eef0f1, 0x00edf0ef, 0x00eef0f2, 0x00eff1f3,
- 0x00ecf0f0, 0x00eef1f2, 0x00f0f1f4, 0x00eeeff3, 0x00eff1f3, 0x00eff2f1, 0x00eff2f3, 0x00f0f3f6, 0x00f4f6f6, 0x00f4f7f9, 0x00f5f7fa, 0x00f2f6f6, 0x00f1f5f5, 0x00f1f4f5, 0x00eff4f5, 0x00eff3f4,
- 0x00eef1f3, 0x00eef1f3, 0x00eff0f3, 0x00eef0f2, 0x00ecf0f1, 0x00ecefef, 0x00ededef, 0x00ededee, 0x00ebefef, 0x00f0f1f3, 0x00eef1f4, 0x00ebf3f4, 0x00eff7f1, 0x00edf8f1, 0x00e8f4f3, 0x00e7f1f7,
- 0x00dbe6f8, 0x00b7c0e3, 0x006c759d, 0x00777fa6, 0x00b3bfdb, 0x00c4cbd4, 0x00c7cecb, 0x00ccd2d1, 0x00c9cfca, 0x00c8cec8, 0x00d4dad4, 0x00dde0db, 0x00e3e8e6, 0x00eaeef0, 0x00eaeff3, 0x00e9eff5,
- 0x00f3fcf6, 0x00eff8f6, 0x00ebf6f7, 0x00ebf4f7, 0x00f4fbfc, 0x00e9efee, 0x00848888, 0x00282829, 0x001a1812, 0x00211a14, 0x00352a26, 0x003f312d, 0x004e403b, 0x00584945, 0x0060534b, 0x00655850,
- 0x00685c55, 0x00685b54, 0x00695a54, 0x00675951, 0x0064574b, 0x0065584c, 0x006b5f55, 0x0070655d, 0x00746b66, 0x00716d67, 0x006f6c68, 0x006d6c65, 0x0067655c, 0x00625d53, 0x005b564a, 0x00585245,
- 0x00fcf7fc, 0x00f1eff6, 0x00eef4f9, 0x00e7f3f9, 0x00ecf2f1, 0x00f6f3ed, 0x00f2e2dc, 0x00f7ded7, 0x00f8e8ed, 0x00eeeaf1, 0x00ede9f2, 0x00efe7eb, 0x00f0e8ee, 0x00ede9eb, 0x00efe6ed, 0x00eeebef,
- 0x00eeebf2, 0x00edebf0, 0x00ece9f1, 0x00eae7f0, 0x00e8e7f0, 0x00e8e9f1, 0x00ebeaf3, 0x00ebebf2, 0x00f0edf6, 0x00f0eef6, 0x00efedf4, 0x00eeecf3, 0x00ededf4, 0x00e9e9f1, 0x00e5e3eb, 0x00e3e1e8,
- 0x00e1e0e9, 0x00e1dfe9, 0x00e4e2ec, 0x00e4e2ed, 0x00e5e2ed, 0x00e2e0ec, 0x00dfdee9, 0x00e0e0ea, 0x00e7e6f2, 0x00e8e6f1, 0x00e0dde8, 0x00d9d6e4, 0x00dfdbe9, 0x00d9d7e5, 0x00d7d6e4, 0x00dedced,
- 0x00d5d5e2, 0x00d7d8e4, 0x00dad9e6, 0x00e0ddeb, 0x00dbd9e7, 0x00d9d6dd, 0x00dfdae1, 0x00e1dce9, 0x00e2ddee, 0x00e1dde7, 0x00e6e3ea, 0x00e8e8ea, 0x00e7e7f1, 0x00edecfd, 0x00bab6de, 0x00656197,
- 0x0023369b, 0x00253890, 0x00293b83, 0x00405383, 0x008498ab, 0x00b2c5d1, 0x00c4d7e2, 0x00becfe3, 0x007f8cb6, 0x0058639a, 0x00636da6, 0x006a7aaa, 0x009297b8, 0x00a4a5b4, 0x00888890, 0x006c6e71,
- 0x00354250, 0x000d1c31, 0x00202d4b, 0x002f3762, 0x004d4a7a, 0x0055587f, 0x00474e6d, 0x003b4261, 0x005a607c, 0x005f697f, 0x00465266, 0x00586479, 0x00606c80, 0x003e4b5e, 0x00243044, 0x001a243a,
- 0x00111c52, 0x001e295e, 0x00363f78, 0x0048508b, 0x00545c9a, 0x005c62a4, 0x005f63a4, 0x005e61a8, 0x005b5baa, 0x005456a6, 0x005254a3, 0x005256a2, 0x00504f91, 0x00555285, 0x009793b8, 0x00c9c3db,
- 0x00d9d3dd, 0x00d8d2d9, 0x00dad3dc, 0x00ddd6e4, 0x00b6b0c1, 0x008c8990, 0x00bcbbbc, 0x00f7f5f7, 0x00fcfbfc, 0x00fefcfe, 0x00fefdfe, 0x00f7f7f7, 0x00888787, 0x00191919, 0x00212121, 0x00292627,
- 0x003c2f1d, 0x00807874, 0x00f4f3f5, 0x00f4faff, 0x00e0ecf9, 0x00bac6d9, 0x00a0a4ae, 0x00b0ada6, 0x00cdb596, 0x00cbaa7f, 0x00ccb299, 0x00cccbd9, 0x00eae5f1, 0x00f4f3fa, 0x00f8f6fb, 0x00f1f0f9,
- 0x00f0ecf3, 0x00edeef3, 0x00ecebef, 0x00eae9ed, 0x00eceaee, 0x00ebe8ed, 0x00eae7eb, 0x00efeaee, 0x00eeeaf0, 0x00e3dee9, 0x00ddd9e2, 0x00ddd9e1, 0x00ebe5ef, 0x00f8f4fa, 0x00fcfcfc, 0x00fbfdfd,
- 0x00fdfdfe, 0x00fbfbfd, 0x00f6f4f8, 0x00f4f3f7, 0x00fafbfb, 0x00f7f9f9, 0x00f5f7f8, 0x00f2f3f4, 0x00f0f1f3, 0x00f4f2f5, 0x00f9f9f8, 0x00f9f8f7, 0x00fdf8fb, 0x00fefafd, 0x00fdfbff, 0x00fffafc,
- 0x00faf9f8, 0x00fcfcfa, 0x00fafcf9, 0x00fbfbfb, 0x00f9f9f7, 0x00f8f8fc, 0x00f9f8f9, 0x00fbf7fb, 0x00f9f7fa, 0x00f9f7f9, 0x00faf9fa, 0x00fafafb, 0x00fbfafc, 0x00f8f7fa, 0x00f6f4f8, 0x00f5f4f6,
- 0x00f1eef1, 0x00eeebef, 0x00eeedf0, 0x00f1eff2, 0x00f1eef4, 0x00f0ecf2, 0x00eeebee, 0x00eeeaee, 0x00eeecf2, 0x00efebed, 0x00f1ebf0, 0x00f8eaf2, 0x00e9f5ef, 0x00ebf7f0, 0x00f0f6f2, 0x00fbf1f5,
- 0x00f4f5fd, 0x00eef9fd, 0x00eaf7f8, 0x00fafdf5, 0x00f4cec6, 0x00f2834a, 0x00e2612e, 0x00ad6066, 0x00676bb4, 0x006273b5, 0x006a7fb6, 0x00627799, 0x004b647c, 0x0042506b, 0x00444562, 0x004e3c5b,
- 0x00374061, 0x00323b5a, 0x00333b59, 0x00353c56, 0x00373e54, 0x00353b50, 0x003e445b, 0x003e445b, 0x004d4f6b, 0x00515171, 0x00626379, 0x00a0a2a8, 0x00f5f6f9, 0x00fefdff, 0x00fcfafd, 0x00fdfcfc,
- 0x00fbf9fa, 0x00b9baba, 0x00242a2a, 0x00050d0c, 0x000d1718, 0x00121e23, 0x00111b1f, 0x000e1714, 0x00100f09, 0x000b0d0a, 0x00060b09, 0x00000909, 0x00050d0d, 0x00161610, 0x00352c1e, 0x004e3e27,
- 0x006b4c23, 0x006b4e27, 0x00614523, 0x0051391c, 0x0032240d, 0x001f1707, 0x00120f04, 0x000a0c04, 0x00090d0d, 0x00050f10, 0x00010f0b, 0x00011200, 0x0005110c, 0x00091014, 0x000e121e, 0x00070c1a,
- 0x00363a44, 0x009295a4, 0x00b3b5ce, 0x009c9cc3, 0x00aaa6db, 0x00a9aac8, 0x00bec1d3, 0x00d9dced, 0x00efebf8, 0x00efebf2, 0x00f9f3f9, 0x00f7f1f6, 0x00f8f2f6, 0x00f6f3f8, 0x00fbfaff, 0x00d2d4d9,
- 0x00606bc0, 0x004a58ad, 0x005364bc, 0x004c61be, 0x004e62c5, 0x004d5ebe, 0x005460b9, 0x00585cac, 0x00a19cc5, 0x00e7ddf3, 0x00f1e7f0, 0x00e6dce4, 0x00ebe3ea, 0x00bab7bb, 0x00404145, 0x0011171a,
- 0x000e1919, 0x000f1a1a, 0x000d1a17, 0x00101c16, 0x0018221c, 0x00282e1a, 0x004a4f2c, 0x006b6d44, 0x008e925e, 0x008f9161, 0x00a4a67f, 0x00d3d6ba, 0x00fdfdf7, 0x00fbfdfa, 0x00fdfffd, 0x00fffefd,
- 0x00e8e9f3, 0x009c9ea8, 0x0053555f, 0x005c5e67, 0x0065646f, 0x006a6873, 0x006a6673, 0x0064606d, 0x00595160, 0x004e4956, 0x00413c44, 0x00353133, 0x002f2325, 0x002b1d21, 0x00311e25, 0x0036252b,
- 0x003d303e, 0x00594f59, 0x00b6acb5, 0x00ede1e1, 0x00c7b9b7, 0x0095819a, 0x0087709b, 0x0084739d, 0x008c6b94, 0x00995978, 0x00a6455d, 0x00b93742, 0x00bf3733, 0x009f352a, 0x006a2411, 0x003b1707,
- 0x002e0000, 0x00220400, 0x0025100a, 0x001a1713, 0x00191813, 0x0021180b, 0x002c1c0b, 0x002d1808, 0x0025130d, 0x00140b0b, 0x00080409, 0x00030103, 0x00020008, 0x00020111, 0x0004041e, 0x000d1031,
- 0x00424a6f, 0x004d5478, 0x00101636, 0x00010721, 0x0005071d, 0x0008174c, 0x000c1d64, 0x00081c5f, 0x00051960, 0x00071b61, 0x00071960, 0x00091b61, 0x00081a61, 0x00071960, 0x00071860, 0x0006185f,
- 0x0007184b, 0x00011450, 0x00031861, 0x000b2379, 0x00143298, 0x001b3fa9, 0x002149b8, 0x001643af, 0x00194cb1, 0x00265dbd, 0x001f5fbe, 0x001561c5, 0x002155b1, 0x003657a1, 0x008b9fd1, 0x00d9e4f1,
- 0x00f4fdf4, 0x00f4fdf9, 0x00c5cce6, 0x006a70a9, 0x0021238f, 0x00161e80, 0x00131a75, 0x00121c77, 0x00242975, 0x00757ab0, 0x00ecf2ff, 0x00f8fdfd, 0x00fcfef5, 0x00fffef7, 0x00fefdf4, 0x00dcd7d4,
- 0x00ad4054, 0x006e1321, 0x00602123, 0x006b5544, 0x00607850, 0x00585626, 0x0066380f, 0x00922908, 0x00b82706, 0x00c13e08, 0x00d85a22, 0x00e36b3e, 0x00e48c5e, 0x00eebd90, 0x00ffe6be, 0x00fff8e0,
- 0x00fcfbf5, 0x00fdf8fd, 0x00f4edf6, 0x00f9f3fa, 0x00f5f3f2, 0x00f8f8fd, 0x00f4f3f6, 0x00f3eef2, 0x00f4efef, 0x00f5f3f4, 0x00f4f7fa, 0x00f3f9fa, 0x00f6f4fb, 0x00faf1f1, 0x00fee8e5, 0x00e7c0b7,
- 0x00f37941, 0x00ed7c42, 0x00f99a6e, 0x00f8b9aa, 0x00ebc6c6, 0x00edd6d0, 0x00f1efeb, 0x00e3fcfd, 0x00ddf6f3, 0x00ecc49b, 0x00e99b6a, 0x00edb194, 0x00ffe9c0, 0x00fbc19e, 0x00e59781, 0x00f8c0b5,
- 0x00f3fef6, 0x00ecfdfa, 0x00f6f5ff, 0x00fae9fc, 0x00f6f1f3, 0x00f5f8f5, 0x00faf8fa, 0x00faf9fc, 0x00fdf7fe, 0x00fdfafc, 0x00fbfbfb, 0x00eef1e5, 0x00b1b694, 0x009aa16b, 0x00bcc485, 0x00c3ce82,
- 0x00bbc380, 0x00b2bc7a, 0x00b3bb78, 0x00b5bd78, 0x00bcc57f, 0x00c3cd87, 0x00c7d28b, 0x00c9d18d, 0x00c4cd89, 0x00b3bd7b, 0x00949e62, 0x00627141, 0x00535b42, 0x00a5a79e, 0x00f9faf9, 0x00fbf8fd,
- 0x00fbfbfa, 0x00f9f7f4, 0x00f9fcf8, 0x00e6eae9, 0x0075797c, 0x00202845, 0x002d3867, 0x00293368, 0x002b3b78, 0x00243579, 0x00253781, 0x00253985, 0x002c408a, 0x002b3f85, 0x00293c80, 0x002d3e7f,
- 0x00292764, 0x00191a34, 0x001a1a1b, 0x0066694f, 0x007e8587, 0x00465480, 0x004859a7, 0x003950b4, 0x00354e97, 0x005e79a7, 0x007385a1, 0x005c5f75, 0x00868891, 0x00c0c3c9, 0x00dbe3e1, 0x00e7f1eb,
- 0x00b6c6c9, 0x0058687b, 0x00404d75, 0x003a4983, 0x0024347e, 0x004d5d92, 0x009fafd3, 0x007e91a5, 0x001b2e2b, 0x00081e10, 0x000e240f, 0x000d220e, 0x00162a19, 0x00132513, 0x001c2d19, 0x0021341a,
- 0x00888b8a, 0x00ebedea, 0x00fbfdfb, 0x00f3f6f5, 0x00fafafa, 0x00f9fcfa, 0x00f9fcfc, 0x00f8fafb, 0x00fdfefe, 0x00f1f4f3, 0x008e9296, 0x00343a46, 0x002e2a3b, 0x002b1f2d, 0x0042232a, 0x006c3830,
- 0x00ab4e2e, 0x00cf6138, 0x00ef7542, 0x00f97841, 0x00f2713a, 0x00dc6634, 0x00d47142, 0x00e7a87b, 0x00f6d8d0, 0x00d5c2dc, 0x00777baa, 0x004b64ad, 0x002665b8, 0x003468bc, 0x003e5fb4, 0x006666be,
- 0x00caafc0, 0x00f6e5f0, 0x00f9e9f7, 0x00efe7ef, 0x00f0ecf6, 0x00f0f2f5, 0x00f2f3f7, 0x00f5f2f7, 0x00f5f2f3, 0x00f6ecee, 0x00f6e9ec, 0x00f6ebf2, 0x00f6f0f8, 0x00f1edf7, 0x00e6e3ee, 0x00e2dceb,
- 0x00e5d3ea, 0x00ae9bb4, 0x0051445f, 0x0057506d, 0x00565c75, 0x00605b6b, 0x0067626f, 0x006b6775, 0x0069727c, 0x00657179, 0x00646e77, 0x00666a73, 0x00766a71, 0x00856b71, 0x009c787f, 0x00b1848b,
- 0x00c58777, 0x00be887d, 0x00b38b84, 0x00aa8e8e, 0x00897f8a, 0x006b6876, 0x005b5968, 0x0055515f, 0x00605561, 0x00756972, 0x008e797e, 0x009b7c7c, 0x009d8186, 0x00917b85, 0x007c6d77, 0x00675e69,
- 0x004d4e5a, 0x00484a57, 0x004f525e, 0x00545660, 0x0063636d, 0x006b6d79, 0x006b6f7a, 0x00626770, 0x005e626f, 0x005a5d69, 0x004b4e59, 0x00434751, 0x00464955, 0x004e525e, 0x00545864, 0x00545762,
- 0x00595a66, 0x0060626b, 0x0062656c, 0x005e6167, 0x005a5b5f, 0x0057585d, 0x0050535a, 0x00565b64, 0x00585e70, 0x00575c71, 0x00616270, 0x006e6662, 0x008b7a7a, 0x009b8385, 0x00907277, 0x007d5a5e,
- 0x006c4549, 0x00613c3b, 0x004f2b27, 0x00472922, 0x0061483b, 0x0076655a, 0x00816e66, 0x008d726c, 0x00976f6d, 0x00905e60, 0x00804c4e, 0x00723f40, 0x00502423, 0x002d0d09, 0x001a0600, 0x001d0d02,
- 0x00271516, 0x002a181a, 0x00211015, 0x000f020a, 0x000f050e, 0x0019121c, 0x00333038, 0x00424247, 0x00a4a4ae, 0x00f0f3f5, 0x00fafefc, 0x00fafef4, 0x00fdfef6, 0x00fdfdf5, 0x00cac9c5, 0x00727d83,
- 0x003879b4, 0x00378ee0, 0x004d9cef, 0x006e98d9, 0x00ad7e83, 0x00dd6643, 0x00f0632f, 0x00ec804c, 0x00efcdb0, 0x00f3f1e8, 0x00eaeff7, 0x00eaedfe, 0x00ffedfa, 0x00fdeff5, 0x00f6f2f2, 0x00e6f7f3,
- 0x00f0f1f2, 0x00f0f1f3, 0x00f0f1f2, 0x00eff0f2, 0x00eff0f4, 0x00eceef1, 0x00edf0f1, 0x00edf1f2, 0x00f0f1f3, 0x00f1f1f2, 0x00eff1f3, 0x00edf1f2, 0x00f0f3f6, 0x00edf1f2, 0x00edeff1, 0x00eeedef,
- 0x00eceff1, 0x00eceef0, 0x00edf0f2, 0x00e9ecee, 0x00ecedf0, 0x00f0f1f3, 0x00eff2f4, 0x00f1f4f7, 0x00f5f4f8, 0x00f5f7fa, 0x00f6f7f9, 0x00f4f6f7, 0x00f4f7f8, 0x00f4f6f9, 0x00f2f4f7, 0x00f0f3f4,
- 0x00f1f3f5, 0x00f0f2f5, 0x00f0f1f5, 0x00eff0f4, 0x00eef1f3, 0x00edf0f2, 0x00eeeff0, 0x00eeefef, 0x00eeeff3, 0x00f1f2f5, 0x00f1f4f5, 0x00edf6f2, 0x00f0f7ec, 0x00edf8eb, 0x00ebf6ed, 0x00ebf5f0,
- 0x00e8f0fc, 0x00e4eef8, 0x00c1c9e5, 0x00c6d0e4, 0x00e1e9fb, 0x00dee6e7, 0x00e2e6e1, 0x00e1e4e3, 0x00dde2e0, 0x00dce0db, 0x00dfe3df, 0x00e0e3e0, 0x00e5e9e8, 0x00ebedf1, 0x00eff2f6, 0x00f1f3f8,
- 0x00f4f7f5, 0x00f4f9f8, 0x00f3f8fd, 0x00f1f8fb, 0x00f1fafe, 0x00eff8f7, 0x00b0b2b4, 0x00474446, 0x00281e1c, 0x002d201b, 0x00402f29, 0x004c3931, 0x00604841, 0x0069524c, 0x00745f53, 0x00786355,
- 0x007a655c, 0x00786559, 0x00776457, 0x00756252, 0x00725e4e, 0x00715e4f, 0x00746455, 0x0078695b, 0x007e7067, 0x007d726a, 0x007d736b, 0x007c756b, 0x00797065, 0x00746a5e, 0x006d6253, 0x006a5e4c,
- 0x00faf6fc, 0x00eff2f8, 0x00e8ebf4, 0x00e9eff4, 0x00fdebec, 0x00fbdbd9, 0x00e8afac, 0x00e1a09b, 0x00ebbebf, 0x00fcdae2, 0x00f8e7f0, 0x00f4ebef, 0x00f1e9ed, 0x00f0e8ef, 0x00eeebef, 0x00ece9ee,
- 0x00eee9f2, 0x00eee9f0, 0x00eae8f0, 0x00ebe5ee, 0x00e7e7f0, 0x00ebe7f0, 0x00e9eaf2, 0x00ebebf3, 0x00edecf4, 0x00ededf3, 0x00ebeaf1, 0x00e9e9f0, 0x00e9e9f0, 0x00e5e5ed, 0x00e1e0e9, 0x00e0dee6,
- 0x00e0e0ea, 0x00e1e1eb, 0x00e4e2ec, 0x00e4e2ed, 0x00e4e0ec, 0x00e1dee9, 0x00e0dee9, 0x00e2e1eb, 0x00e6e4f0, 0x00e4e2ed, 0x00dddbe8, 0x00d8d6e6, 0x00d9d6e6, 0x00d6d3e3, 0x00d6d4e3, 0x00dbd8e8,
- 0x00d8d3e2, 0x00dcd9e7, 0x00dedae9, 0x00e0ddeb, 0x00d6d6e5, 0x00d3d1db, 0x00d7d2de, 0x00dad8e7, 0x00e5e3f3, 0x00e8e6ee, 0x00e4e2e7, 0x00e0e0e1, 0x00dedfe8, 0x00e7e5f9, 0x00a09bc4, 0x00433c74,
- 0x001a2660, 0x00222f5d, 0x004d5a76, 0x008f9eac, 0x00c7d6d7, 0x00c4d2da, 0x00a8b6c8, 0x00818caf, 0x0053579e, 0x005a59b0, 0x008286cd, 0x00a8b2ce, 0x00d0d5e3, 0x00d7d5de, 0x00b8b7bc, 0x00848689,
- 0x00243140, 0x000b192d, 0x001a2740, 0x00161d3c, 0x002e2e4d, 0x004c4b6e, 0x004a4d6f, 0x00414263, 0x008082a5, 0x0074799a, 0x005d6383, 0x00939bbe, 0x008f99be, 0x00465279, 0x002c3761, 0x00323b69,
- 0x0025377c, 0x002f3f82, 0x003b498b, 0x00445193, 0x00485395, 0x00535ca1, 0x005a61a5, 0x005a5fa7, 0x005959a4, 0x005755a5, 0x005454a4, 0x004f53aa, 0x00525298, 0x004d4b85, 0x00716f98, 0x00b7b3ce,
- 0x00d7d0d9, 0x00e0d9df, 0x00ddd5dd, 0x00dbd4df, 0x009a95a3, 0x00706e73, 0x00bbbaba, 0x00f6f5f5, 0x00fdfefd, 0x00fefefe, 0x00fcfbfc, 0x00f9f8f9, 0x0089898a, 0x001d1d1f, 0x002b2b2c, 0x00353436,
- 0x00553d30, 0x00978284, 0x00fef6fc, 0x00fdf8fd, 0x00dde7ec, 0x00b3baa8, 0x00c5c999, 0x00e5de8c, 0x00dfc854, 0x00d2b333, 0x00d2c16a, 0x00bec5d9, 0x00c0c5dc, 0x00d2d6e9, 0x00f2f5ff, 0x00edf3fb,
- 0x00edecf4, 0x00ece9f3, 0x00eceaf0, 0x00eeeaef, 0x00efe9eb, 0x00eae8e9, 0x00ecebec, 0x00edebf0, 0x00f2edf5, 0x00e9e3ef, 0x00d9d5de, 0x00dcd8e2, 0x00e1dbe7, 0x00f0ecf2, 0x00fdfefe, 0x00f8faf9,
- 0x00fcfdfe, 0x00fdfeff, 0x00f6f5f8, 0x00f2f1f5, 0x00f3f3f8, 0x00f7f8fc, 0x00fafafc, 0x00f7f7f8, 0x00eaebf1, 0x00e9e7ee, 0x00ebeaed, 0x00f0efee, 0x00f8f3f4, 0x00faf9fa, 0x00fbfcfc, 0x00fefbfd,
- 0x00f9faff, 0x00faf8fe, 0x00fafcfe, 0x00f9faff, 0x00f9fbfc, 0x00fcfbfd, 0x00fcfdfc, 0x00fcfcfe, 0x00fcfafc, 0x00fbf9fb, 0x00f7f6f9, 0x00f2f3f5, 0x00efeff3, 0x00eeeef3, 0x00eeedf1, 0x00f0eff1,
- 0x00f7f1f7, 0x00f4eff4, 0x00f4f2f5, 0x00f8f5f8, 0x00f7f5f9, 0x00f6f2f6, 0x00f3f1f4, 0x00f2f0f4, 0x00f4f1f4, 0x00f6f0f4, 0x00f8f0f6, 0x00fcedf9, 0x00ebf7f4, 0x00ecf9f1, 0x00f2f8f4, 0x00fef4f9,
- 0x00f8f3fe, 0x00f2f8ff, 0x00f0faf8, 0x00fefcf4, 0x00f3c6bb, 0x00f17b44, 0x00dd5c2d, 0x009d5865, 0x00575fbd, 0x005467c1, 0x005b74bf, 0x00647baf, 0x00607d9f, 0x00556b8e, 0x00444d6f, 0x00413a5e,
- 0x00333a60, 0x002e3659, 0x002d3556, 0x00333a56, 0x00343a4f, 0x00363b4e, 0x003e4357, 0x00404559, 0x004f5269, 0x0054566d, 0x006d707e, 0x00b2b6b7, 0x00f9fbfb, 0x00fefefe, 0x00fefbff, 0x00fefbff,
- 0x00f8f7f7, 0x00a8a7a8, 0x000f1515, 0x00050f0d, 0x000d1818, 0x00131f23, 0x00131c20, 0x00121918, 0x0012110a, 0x000b0c08, 0x00060b08, 0x00020c0a, 0x00090e0c, 0x0018150e, 0x00382c1d, 0x00553f2a,
- 0x006e4e23, 0x0073532b, 0x00664a25, 0x00563d1f, 0x00362810, 0x00251c0b, 0x00161508, 0x000c0e05, 0x00070d0b, 0x00050d10, 0x00000e07, 0x00031400, 0x00071307, 0x0008100d, 0x000b1011, 0x0006090b,
- 0x00272b2b, 0x0094979c, 0x00c6cddb, 0x00bdbee0, 0x00b0b4e5, 0x00b5b4d1, 0x00d8d9ea, 0x00e9e9f6, 0x00ebe4f2, 0x00f3ecf4, 0x00f7f0f7, 0x00f9f2f7, 0x00f7f1f8, 0x00f5f2fa, 0x00f7f8fe, 0x00cfd1d9,
- 0x005d69c3, 0x004956b0, 0x005264bb, 0x004e63be, 0x004b62c1, 0x004d5ec0, 0x005460b7, 0x005b5da9, 0x00a7a0c5, 0x00ebe0f0, 0x00f2e5eb, 0x00e9dee5, 0x00efe8ef, 0x00bdbbc0, 0x003d3d43, 0x0012171b,
- 0x000e1915, 0x00121c17, 0x000e1812, 0x00151e13, 0x002d3525, 0x00414528, 0x005c5f35, 0x00747749, 0x008a8f59, 0x008b8e60, 0x00a6a885, 0x00dbddc9, 0x00fcfdf7, 0x00fbfbfb, 0x00fcfdfb, 0x00fefefd,
- 0x00dcdfe9, 0x008d8f99, 0x0052525c, 0x005d5c67, 0x0068646f, 0x006b6671, 0x006c6771, 0x0066616a, 0x005b5361, 0x00534b57, 0x00453d45, 0x00443539, 0x00342527, 0x00301d21, 0x00312222, 0x00372825,
- 0x003a3335, 0x00686a74, 0x00cbd9e1, 0x00d6f2fc, 0x008bb1c9, 0x005e86cc, 0x004e7cda, 0x00427de5, 0x003b74e6, 0x004c6cd1, 0x006460ad, 0x00885483, 0x00b5443b, 0x00c94020, 0x00c63407, 0x00c02700,
- 0x006b1b0b, 0x0048120b, 0x00280b0f, 0x0011101d, 0x00071624, 0x000c1116, 0x00100f0c, 0x001a110b, 0x001c1517, 0x000e0f16, 0x00050811, 0x00070719, 0x00151629, 0x0021243f, 0x00262a47, 0x002d3553,
- 0x002c3558, 0x001c2545, 0x00020524, 0x00010423, 0x00040520, 0x0007154d, 0x000b1d65, 0x000b1d64, 0x00071a61, 0x00081a61, 0x0006185e, 0x00091b62, 0x00081a63, 0x00071a63, 0x00061861, 0x0005175f,
- 0x00031752, 0x00021657, 0x0002155b, 0x00051868, 0x000d247c, 0x00163392, 0x000c2e92, 0x0010389c, 0x002153b4, 0x00265abe, 0x001f5bbf, 0x001859cb, 0x00224e9e, 0x005f79ad, 0x00ced9ed, 0x00f6faf6,
- 0x00f6fdfb, 0x00e5f0fa, 0x008089bd, 0x0030378d, 0x00151497, 0x000d136d, 0x000b105a, 0x000c1259, 0x00363774, 0x009395c1, 0x00f5f9fe, 0x00fcffff, 0x00fdfff5, 0x00fffef8, 0x00fbf8f4, 0x00bdb8b9,
- 0x006e3015, 0x006a2410, 0x00571406, 0x005c261c, 0x00706550, 0x00877361, 0x00986f5b, 0x00995240, 0x00732809, 0x005b2301, 0x00793208, 0x00c44011, 0x00d35f29, 0x00de7e45, 0x00ebab78, 0x00f7e1b8,
- 0x00fefced, 0x00f6fbf7, 0x00eaedf2, 0x00f4eff9, 0x00feecf7, 0x00f8f2fb, 0x00ededf1, 0x00f1e9eb, 0x00f8f3f2, 0x00fbf8fb, 0x00f0f4fa, 0x00f1f6fc, 0x00f9f5fd, 0x00fcf3f1, 0x00f8e0d7, 0x00dab3a2,
- 0x00f5732c, 0x00f57921, 0x00ec7e1d, 0x00e6832b, 0x00ed7f40, 0x00ee8b5e, 0x00f4baa7, 0x00f3f0f9, 0x00e4faff, 0x00f2dbda, 0x00efc9bc, 0x00f0d9d0, 0x00fbeed4, 0x00f6bda8, 0x00d79582, 0x00f4c9be,
- 0x00f6f8f9, 0x00f1fafc, 0x00eff4fd, 0x00f6ebfa, 0x00fdf0ea, 0x00fdf6ee, 0x00fafaf5, 0x00fbf9f8, 0x00fcf8ff, 0x00fdfbff, 0x00fafafb, 0x00fafaf5, 0x00d2d3b8, 0x009fa276, 0x00b2b87f, 0x00b7c17b,
- 0x00b4ba7c, 0x00aeb476, 0x00acb473, 0x00b1ba74, 0x00bcc77e, 0x00c5d28a, 0x00cad68f, 0x00cad48d, 0x00c3cc8a, 0x00b1ba7c, 0x00929a61, 0x00647044, 0x005c6348, 0x00b0b2aa, 0x00fefdfd, 0x00fbf7fc,
- 0x00fcf7fc, 0x00fffbfc, 0x00f7f8f4, 0x00fafdf8, 0x00aab1ac, 0x003c4658, 0x00222e4f, 0x002d3963, 0x00223269, 0x00283979, 0x0023357b, 0x00283c85, 0x00283e87, 0x00294084, 0x00273e7f, 0x00273d7b,
- 0x002f346e, 0x001f233e, 0x000d0d0b, 0x004a4a2e, 0x008e8f85, 0x00707694, 0x004c5996, 0x005265bc, 0x002f4792, 0x004b649e, 0x00768bbc, 0x004f5c8b, 0x00404b72, 0x00627091, 0x008495b1, 0x009fb1cb,
- 0x007d8fac, 0x00394972, 0x005c6a9b, 0x006976b6, 0x00212e76, 0x002b3b6c, 0x007f8fac, 0x00708294, 0x00162a1f, 0x00081c0a, 0x000e210b, 0x000c1e09, 0x00102112, 0x0010200f, 0x000d1d0b, 0x00202f1b,
- 0x009a9e9e, 0x00f1f3f2, 0x00fafefc, 0x00f2f4f3, 0x00f5f7f7, 0x00fcfdfc, 0x00f9fcfb, 0x00fafcfd, 0x00fcfdfd, 0x00f6f9f7, 0x009da2a5, 0x003b3e4a, 0x00252634, 0x00271b29, 0x00391c23, 0x005e2d27,
- 0x00a54a2b, 0x00cc6137, 0x00e8723d, 0x00f77643, 0x00ee6e3a, 0x00dc6733, 0x00c2612c, 0x00d59563, 0x00f3d8c3, 0x00ebdbe8, 0x00a0a1c9, 0x00556db1, 0x002664b4, 0x00346ac0, 0x003d5eb9, 0x005859b8,
- 0x00b598ae, 0x00f0d8ec, 0x00f5e1f3, 0x00f7ecf9, 0x00efecf8, 0x00ececf6, 0x00efeef5, 0x00f5f5f8, 0x00fbf3fb, 0x00faeff9, 0x00f8edf5, 0x00f5ebf4, 0x00f0eef5, 0x00eceef6, 0x00e6e8f1, 0x00e6e2f1,
- 0x00ebdcf0, 0x00b8a7c2, 0x00534965, 0x0057546f, 0x005a657c, 0x00666676, 0x00676875, 0x006b6b79, 0x00686e7c, 0x006e707c, 0x00716f7a, 0x00786f76, 0x00907579, 0x00a27a79, 0x00b98481, 0x00c98b85,
- 0x00d08c79, 0x00c98c80, 0x00b98a83, 0x00a58283, 0x007b6a74, 0x00645764, 0x005a4d59, 0x005e4d57, 0x007d6161, 0x009b7877, 0x00b38780, 0x00bd887c, 0x00b2837e, 0x00a38081, 0x008a7376, 0x006b5e64,
- 0x00524d5b, 0x004e4e5c, 0x00535761, 0x00585d64, 0x005e616c, 0x00676976, 0x006d707b, 0x00686a78, 0x005e6170, 0x00585b67, 0x004f535d, 0x004d515b, 0x00545662, 0x00575a67, 0x00595c68, 0x005c5e6a,
- 0x0054555e, 0x0053555b, 0x0058595b, 0x005e5e5d, 0x005b5856, 0x005a5858, 0x005e5e61, 0x0065696e, 0x00646978, 0x00595e73, 0x00595965, 0x006c6160, 0x00877674, 0x00907879, 0x006f5351, 0x004a2927,
- 0x0039130e, 0x003a100c, 0x003c140c, 0x00492219, 0x0069453a, 0x00815e55, 0x009c7a71, 0x00ba938c, 0x00c19793, 0x00b28483, 0x009b706f, 0x008b6465, 0x005c3d3c, 0x002d1714, 0x000f0000, 0x00110701,
- 0x001e0f0a, 0x0021120f, 0x00180a0a, 0x000e0307, 0x00140c14, 0x0026202a, 0x0047444d, 0x00494850, 0x0091929a, 0x00e9ecf1, 0x00f9fbf6, 0x00fdfcef, 0x00fbfff7, 0x00fbfcf8, 0x00cfd4d1, 0x00798487,
- 0x00406f99, 0x003b83c8, 0x004590de, 0x005c91de, 0x008482a5, 0x00c96a57, 0x00ec693c, 0x00e8703c, 0x00eaad8a, 0x00f9e1d8, 0x00ede9f2, 0x00e3e7fd, 0x00f5e7ed, 0x00f8eded, 0x00f5eff3, 0x00e7eff7,
- 0x00edf0f1, 0x00edeff0, 0x00edeeef, 0x00eceeef, 0x00eceef1, 0x00eaecef, 0x00ebedef, 0x00ebecee, 0x00eeeef1, 0x00efeef3, 0x00eff1f4, 0x00eef1f2, 0x00eff1f3, 0x00ebf0f2, 0x00ecf1f1, 0x00ecedee,
- 0x00ebecef, 0x00ebeced, 0x00eceef0, 0x00e8ebec, 0x00ecedef, 0x00f2f2f5, 0x00f2f3f5, 0x00f3f5f6, 0x00f2f3f8, 0x00f2f5f8, 0x00f3f5f7, 0x00f3f5f5, 0x00f3f7f8, 0x00f4f8f9, 0x00f5f6f9, 0x00f3f6f8,
- 0x00f0f4f7, 0x00f0f3f6, 0x00f0f2f4, 0x00eff2f3, 0x00eff2f3, 0x00eef2f3, 0x00eef1f3, 0x00edf0f2, 0x00edeff2, 0x00eff0f2, 0x00f0f5f3, 0x00f2f7f1, 0x00f2f9e8, 0x00f3f8e5, 0x00f1f9e8, 0x00f1f7ec,
- 0x00eff3f8, 0x00f4f7fc, 0x00f3f4ff, 0x00f4f8ff, 0x00f1f5f3, 0x00f1f4f3, 0x00f4f7f3, 0x00f3f7f5, 0x00ebf0ef, 0x00e8eaea, 0x00e6e6e6, 0x00e5e7e7, 0x00e4e7e8, 0x00e9eeef, 0x00eff1f4, 0x00f4f5f8,
- 0x00f7f7f6, 0x00f4f7f7, 0x00f1f8fa, 0x00f3f9fb, 0x00eef8fe, 0x00f3f8fd, 0x00d4d5d9, 0x00757174, 0x0030221c, 0x003d2922, 0x004f392e, 0x00624135, 0x00725244, 0x007b5b4e, 0x00836552, 0x008b6a57,
- 0x008c6d59, 0x00896b56, 0x00886a54, 0x00866851, 0x0085654f, 0x0084644f, 0x00866854, 0x008a6e5b, 0x008a7363, 0x008b7666, 0x008c786a, 0x008d7b6b, 0x008b7968, 0x00897562, 0x00836f58, 0x00826b52,
- 0x00faf7fc, 0x00f1f2f4, 0x00f1edf1, 0x00f9eff0, 0x00f7cac6, 0x00f49f9a, 0x00e2766e, 0x00d8625c, 0x00dd807c, 0x00f2ada7, 0x00fadddd, 0x00f7eef1, 0x00f5eaf1, 0x00ede5e9, 0x00f0e8ef, 0x00efe8ee,
- 0x00efe8f3, 0x00ebe6ef, 0x00e9e4ee, 0x00e8e3ee, 0x00e9e5ef, 0x00eae8ee, 0x00ebe9f0, 0x00eceaf2, 0x00ecebf1, 0x00eae8f1, 0x00e8e6ef, 0x00e7e5ed, 0x00e6e3ed, 0x00e3e1e9, 0x00e0dee6, 0x00dedee7,
- 0x00e4e0ec, 0x00e2dfea, 0x00e3e1ec, 0x00e1e1eb, 0x00dfdee8, 0x00dfdde8, 0x00e0dee9, 0x00e3e1ec, 0x00e4e2ef, 0x00dedee9, 0x00d9d7e5, 0x00d7d2e5, 0x00d2cede, 0x00d1cfe0, 0x00d4d3e3, 0x00d6d5e4,
- 0x00d8d6e7, 0x00dedaec, 0x00dddaec, 0x00dbdae9, 0x00d2cfe0, 0x00c1bccc, 0x00c3bcce, 0x00d3cdde, 0x00e2ddf0, 0x00d9d5e0, 0x00c4c3c7, 0x00b7b8b9, 0x00c2c3ca, 0x00cecce5, 0x007e7aa2, 0x00242155,
- 0x00303545, 0x005d6573, 0x00aab2c5, 0x00cdd7eb, 0x00a8b4ce, 0x007480a3, 0x0047537c, 0x002a3867, 0x00485392, 0x00828ecd, 0x00b6baec, 0x00d0d5e8, 0x00dbd8e5, 0x00dbd7e2, 0x00dad4de, 0x00a6a2b2,
- 0x00363f5a, 0x00374464, 0x00384362, 0x00111933, 0x001b1830, 0x003e3c5a, 0x003c3859, 0x00424061, 0x006e6d8f, 0x00414465, 0x004e5479, 0x00838bb8, 0x00626aa0, 0x003a4380, 0x00242d70, 0x002b337a,
- 0x003047a0, 0x0031499c, 0x00364d9a, 0x00364a96, 0x0037468d, 0x003c478d, 0x00464e93, 0x004c5399, 0x0052539f, 0x0054529d, 0x005755a8, 0x004f54b1, 0x004b4f9c, 0x00484982, 0x005d5b85, 0x00a09cb1,
- 0x00d0c9d2, 0x00dfd8de, 0x00dfd7de, 0x00cfc8d0, 0x0076707b, 0x00545256, 0x00b9baba, 0x00f6f7f7, 0x00ffffff, 0x00fbfcfd, 0x00fdfcfe, 0x00f9f8f9, 0x008c8a8c, 0x00222121, 0x00363635, 0x00414341,
- 0x00554d49, 0x00948c8f, 0x00faedf7, 0x00fdf7fa, 0x00eed7cf, 0x00d3b990, 0x00f0d893, 0x00efdb7d, 0x00ccb64a, 0x00b49e32, 0x00999254, 0x008ea0bf, 0x0099aac7, 0x00afb8d5, 0x00d3dcf4, 0x00eaf2fc,
- 0x00f3efff, 0x00ece8f4, 0x00ede7ed, 0x00f2e9ed, 0x00f1e7e6, 0x00ece7e7, 0x00eeedee, 0x00efecf0, 0x00efeaf5, 0x00e8e2ee, 0x00d9d5e1, 0x00d3d0db, 0x00dbd7e1, 0x00ebe7ee, 0x00fffdfe, 0x00fefbfc,
- 0x00fdfdfe, 0x00fdfefe, 0x00f9fbfc, 0x00f1f3f4, 0x00edeef0, 0x00f0eff2, 0x00f8f6f9, 0x00fcfbfc, 0x00f6f2f6, 0x00eceaed, 0x00e8e7e7, 0x00e8e5e3, 0x00ebe7e7, 0x00eeeaed, 0x00efeef0, 0x00efeff3,
- 0x00eeebf6, 0x00edeef8, 0x00eeeffd, 0x00edf2ff, 0x00eff0fe, 0x00f1f3f8, 0x00f0eff4, 0x00f0f0f3, 0x00efedf0, 0x00edecef, 0x00edecf1, 0x00ededf2, 0x00edeef1, 0x00f0f1f2, 0x00f4f4f5, 0x00f7f6f8,
- 0x00fbf8fc, 0x00f7f3f7, 0x00f7f4f8, 0x00fcf8fb, 0x00fdfbfc, 0x00fcf9fb, 0x00faf8fa, 0x00faf7fa, 0x00fbf7fc, 0x00faf6f8, 0x00fcf4f9, 0x00fdf2fb, 0x00effbf7, 0x00eefdf5, 0x00f5fbf6, 0x00fdf6f8,
- 0x00fef4ff, 0x00f7fafc, 0x00f8fcf7, 0x00fffeed, 0x00edbaaa, 0x00e07731, 0x00d06127, 0x00925d65, 0x00505dca, 0x004b61cc, 0x004b62c2, 0x005066ad, 0x005e7ab5, 0x00667dbc, 0x005f6fb0, 0x00585c9b,
- 0x00424674, 0x00333963, 0x00293056, 0x002a3250, 0x00333a4f, 0x00353b4a, 0x00393f4e, 0x003d4351, 0x004d5161, 0x00515663, 0x00787b85, 0x00c1c5c6, 0x00fbfcfd, 0x00fcfcfc, 0x00fffefd, 0x00fefcfc,
- 0x00f2f2f4, 0x00919092, 0x00060a0b, 0x00080f0d, 0x00101918, 0x00122022, 0x00141f21, 0x00121917, 0x0012120b, 0x000c0e09, 0x00070b09, 0x00040b0c, 0x000b0e0e, 0x001b160f, 0x00392c1c, 0x00533c25,
- 0x006d4f27, 0x006f542d, 0x00634b27, 0x00543f20, 0x00362a12, 0x00271e0e, 0x0019160a, 0x000e0f07, 0x00060e0a, 0x00040d0d, 0x00020d0c, 0x00051206, 0x0005100c, 0x00060d0c, 0x000a0d0f, 0x00030504,
- 0x002e2d2f, 0x00989a9d, 0x00e9edfc, 0x00c8cce8, 0x00b3b6ed, 0x00c4c4e0, 0x00e7e4f4, 0x00e9e6f2, 0x00efe7f5, 0x00f8eff8, 0x00f3eaf2, 0x00f7f0f6, 0x00f6f2f9, 0x00f5f3fc, 0x00f6f5fe, 0x00cdcbd6,
- 0x005e67c4, 0x004755af, 0x005165bf, 0x004d63bc, 0x004c63c2, 0x004c5ebc, 0x005560b8, 0x005e5ea6, 0x00afa4c6, 0x00f1e2f2, 0x00f4e6ec, 0x00ece1ea, 0x00f2ebf2, 0x00b5b2b8, 0x0037363e, 0x0011151a,
- 0x00131916, 0x00111910, 0x00111b0b, 0x001f2711, 0x00464e31, 0x005e6039, 0x00727243, 0x007c7d4a, 0x00838451, 0x00828559, 0x00a9aa8c, 0x00e6e6d5, 0x00fdfcfd, 0x00fdfdfd, 0x00fdfdfc, 0x00fcfefb,
- 0x00d3d2db, 0x007b7981, 0x00535057, 0x005b575f, 0x0066606a, 0x0066606a, 0x0069646b, 0x00676166, 0x005e555e, 0x00544d57, 0x004d3f4a, 0x0046343a, 0x003b292a, 0x00372724, 0x003d2a25, 0x00402d24,
- 0x00504441, 0x008f929b, 0x00dfedfe, 0x00c0ddfa, 0x006898df, 0x00427fdf, 0x003d7cef, 0x003e7af1, 0x003671ee, 0x002a6bdd, 0x002769cf, 0x002e6cb9, 0x00675e81, 0x009f525b, 0x00d2453e, 0x00f6331e,
- 0x00bc4831, 0x008e3d3b, 0x00512237, 0x0019163d, 0x00031341, 0x00010d32, 0x00070c28, 0x00171527, 0x001c192e, 0x00151b33, 0x001c2145, 0x00201f49, 0x0037395e, 0x00575d7e, 0x00555e7b, 0x0046526e,
- 0x00252f4f, 0x0008102e, 0x00000122, 0x00000526, 0x0003052b, 0x0005134d, 0x000a1b62, 0x000b1e64, 0x00081962, 0x00081a61, 0x0005175f, 0x00081b63, 0x00081a63, 0x00071962, 0x0006185f, 0x0004185d,
- 0x0007195f, 0x0004185c, 0x0003145d, 0x00011359, 0x00051866, 0x00071e6e, 0x00011d74, 0x00113390, 0x002650b5, 0x002354b7, 0x002559c2, 0x001347b5, 0x004161a1, 0x00a0b1d2, 0x00e9eefa, 0x00f6f7f4,
- 0x00edf5fe, 0x00abb9e1, 0x0037487f, 0x000d1b64, 0x000e115e, 0x00090d47, 0x000e1240, 0x000c0c3e, 0x00424068, 0x00a9aac3, 0x00fcfcfe, 0x00fefefc, 0x00fcfdf4, 0x00fefef8, 0x00f2f1f5, 0x009e9ba3,
- 0x001e2400, 0x00391b00, 0x00571a08, 0x00661300, 0x00924e37, 0x00bc7e63, 0x00ce9477, 0x00c48b69, 0x00845e35, 0x0045400f, 0x003b2602, 0x006a1e00, 0x009f380e, 0x00bb5025, 0x00d47149, 0x00efaa88,
- 0x00fdf1e2, 0x00eff6ee, 0x00d8e4e5, 0x00eaedf2, 0x00fceaf1, 0x00f4ebf6, 0x00edecf3, 0x00f3eef1, 0x00faf3f6, 0x00f5f6f8, 0x00f5f9fc, 0x00f1fafe, 0x00f6f0f7, 0x00fbf2f3, 0x00f9d8cf, 0x00c89b8b,
- 0x00fa5720, 0x00e66b19, 0x00d97a1f, 0x00c88529, 0x00f5782e, 0x00f76b2d, 0x00f8845c, 0x00f5c6c1, 0x00f5fdff, 0x00f9f6f6, 0x00fef0f0, 0x00fbf9f1, 0x00fddbcb, 0x00e5ab93, 0x00da9e83, 0x00f5d8c5,
- 0x00fdf1fa, 0x00f1fafd, 0x00e8f5fa, 0x00e5f1f3, 0x00ffeee8, 0x00fdf7f0, 0x00fcf9ee, 0x00fbf9f4, 0x00fcf9fd, 0x00fbf9fd, 0x00fdfcfd, 0x00fefcfc, 0x00e9ecd2, 0x00babd98, 0x00a1a673, 0x00acb374,
- 0x00a0a96b, 0x009ba462, 0x009da561, 0x009fa963, 0x00b1ba71, 0x00bec67d, 0x00c4cc84, 0x00c0c983, 0x00b6be7d, 0x00a3ac6b, 0x00838b52, 0x00556231, 0x004f573d, 0x00aaaba2, 0x00fcf9fb, 0x00fbf8fb,
- 0x00fcf6fd, 0x00faf7f7, 0x00f8f9f7, 0x00fcfdf7, 0x00d8ddda, 0x00747d86, 0x00101c33, 0x00243450, 0x002c3c6e, 0x002c3e79, 0x00283c7f, 0x00273d84, 0x00253a82, 0x00293d81, 0x00293e7d, 0x0029407b,
- 0x002c336a, 0x001c2139, 0x00100f12, 0x0039351b, 0x00858270, 0x006e7179, 0x003b4569, 0x005668a4, 0x00344891, 0x0034498a, 0x00566bad, 0x00394e89, 0x0040568f, 0x00556ba0, 0x00576fa5, 0x006d84b9,
- 0x006879b0, 0x0038497f, 0x00505d96, 0x00717fb9, 0x00344280, 0x0017264e, 0x005c6a81, 0x00586970, 0x00122013, 0x00071804, 0x0011220c, 0x000f200c, 0x00111f11, 0x00121f10, 0x00091706, 0x00303e2a,
- 0x00bdbdc1, 0x00f6f8f9, 0x00fdfefe, 0x00f1f4f4, 0x00f5f7f6, 0x00fafefa, 0x00fcfdfb, 0x00fbfdfb, 0x00fefdff, 0x00fdfefd, 0x00b7b7ba, 0x00494f58, 0x0020222e, 0x001d1620, 0x0031151c, 0x00542721,
- 0x009a452b, 0x00c05933, 0x00e1703f, 0x00eb7541, 0x00e57340, 0x00de6533, 0x00bc501f, 0x00c27846, 0x00efceb6, 0x00f8e7eb, 0x00bbbbdd, 0x005a76b0, 0x00206ab6, 0x002a70c0, 0x00386cbf, 0x00435cb3,
- 0x00a6879a, 0x00e9cfe0, 0x00f0e1ec, 0x00f2e5ef, 0x00f0f1f5, 0x00eff2f8, 0x00f0f1f8, 0x00f0f0f8, 0x00f9f1fc, 0x00faf1fc, 0x00fcf3fd, 0x00f8f0fa, 0x00efeff4, 0x00e8edf4, 0x00e5e9f2, 0x00e8e7f2,
- 0x00efdff6, 0x00b4a8c0, 0x00575067, 0x005b5c73, 0x005e6b81, 0x00636d7b, 0x00626a75, 0x00606773, 0x00626073, 0x006d6475, 0x007f6c7a, 0x008e7279, 0x00a97c7a, 0x00ba8378, 0x00c78977, 0x00d08c75,
- 0x00d98c7c, 0x00cb8a7d, 0x00b6847c, 0x00926f6e, 0x0067555a, 0x005e4b52, 0x00665358, 0x007b6060, 0x00a2746b, 0x00b88376, 0x00cd8b7b, 0x00d68e79, 0x00c68878, 0x00b4847a, 0x009a7775, 0x0080676a,
- 0x00615a67, 0x005b5b67, 0x005b6069, 0x005e646d, 0x005f626e, 0x00626570, 0x00676974, 0x00666874, 0x00585b69, 0x00515461, 0x00555864, 0x005a5c68, 0x00626470, 0x005e606c, 0x00575865, 0x00565764,
- 0x00514d56, 0x00444144, 0x00474442, 0x00544f4a, 0x005f5853, 0x00625c58, 0x006b6868, 0x006f6e73, 0x00696a79, 0x005b5f72, 0x00555365, 0x00635860, 0x006f646d, 0x0075686c, 0x005c4b4c, 0x003c2926,
- 0x00331613, 0x00300e0a, 0x00401615, 0x004f231f, 0x006d3a38, 0x007f4945, 0x00a26c69, 0x00c2928d, 0x00c49897, 0x00ab8783, 0x00997a77, 0x00876e6c, 0x00544542, 0x00241917, 0x00040001, 0x00010101,
- 0x000d0402, 0x000d0703, 0x00080300, 0x00050103, 0x00120f16, 0x001f1e27, 0x004a4a53, 0x00494a51, 0x0080828a, 0x00d9dde1, 0x00fafbf7, 0x00fdf9e9, 0x00f8fffd, 0x00f5fdfc, 0x00d6e4e7, 0x008f9499,
- 0x00536784, 0x004d7db7, 0x004481cd, 0x00427ed5, 0x006182c8, 0x00a97071, 0x00d86943, 0x00dd5e31, 0x00e8835f, 0x00f6c2b7, 0x00f3e4eb, 0x00d7e5f1, 0x00dad8d7, 0x00e4dfdd, 0x00f0ebf1, 0x00ebedfe,
- 0x00eaecee, 0x00e8ebec, 0x00e8ecec, 0x00eaedee, 0x00ecedf0, 0x00ebebee, 0x00ebebee, 0x00e9eaeb, 0x00e9ebee, 0x00e9ebee, 0x00eaecee, 0x00ebedee, 0x00e8e9ec, 0x00e9ebee, 0x00ebeeef, 0x00ebeeee,
- 0x00eae9ec, 0x00e5e7e8, 0x00eaeced, 0x00e9ebec, 0x00ecedef, 0x00f0f2f4, 0x00eff1f3, 0x00f0f3f4, 0x00f1f4f8, 0x00f1f3f6, 0x00f1f2f5, 0x00f1f3f5, 0x00f5f4f7, 0x00f6f6f8, 0x00f4f7f8, 0x00f5f6f8,
- 0x00f4f4fa, 0x00f3f4f8, 0x00f1f3f6, 0x00f0f2f4, 0x00f0f2f3, 0x00eff1f2, 0x00eef1f2, 0x00edf0f1, 0x00f0f1f1, 0x00edf2f1, 0x00f0f2f4, 0x00f2f3f7, 0x00f5f6f0, 0x00f5f8eb, 0x00f7f9eb, 0x00f7fbf0,
- 0x00faf9fc, 0x00f4f2fb, 0x00f6f4f9, 0x00f3f2f6, 0x00f2f2ed, 0x00f4f6f5, 0x00f7f9fd, 0x00f8fafe, 0x00f4f6f9, 0x00eef1f4, 0x00edeef2, 0x00eaedef, 0x00ebecee, 0x00eceef0, 0x00f2f4f6, 0x00f5f7fa,
- 0x00fbf6f9, 0x00f7f6f8, 0x00f6f8fc, 0x00f3f9fe, 0x00f3f7ff, 0x00f6f8ff, 0x00f0edef, 0x00a09599, 0x003e2826, 0x00422a21, 0x005d3b2f, 0x0070472f, 0x00825640, 0x00886147, 0x0090684f, 0x00956d53,
- 0x009c7356, 0x00996f53, 0x00966d50, 0x00956d4f, 0x00956b4d, 0x0096694d, 0x00976c51, 0x00976f56, 0x0099765d, 0x00967660, 0x00977964, 0x00977b63, 0x00997c62, 0x0098795c, 0x00957657, 0x00927252,
- 0x00fef8f3, 0x00eeebe4, 0x00f7ebe8, 0x00edd6ce, 0x00dd8d86, 0x00df6a62, 0x00e95e52, 0x00ec584e, 0x00db6359, 0x00dc7f70, 0x00eab2ac, 0x00efe5e8, 0x00faeff5, 0x00efe7eb, 0x00efe7f0, 0x00f0e7f0,
- 0x00eee7f0, 0x00e9e4ec, 0x00e4e1eb, 0x00e5e1eb, 0x00e9e4ef, 0x00e9e8ee, 0x00eaeaef, 0x00eceaf2, 0x00e9e9f0, 0x00e7e6ee, 0x00e6e5ee, 0x00e5e4ec, 0x00e4e0e9, 0x00e1dfe6, 0x00e0dfe6, 0x00dfdee7,
- 0x00dfdde8, 0x00dfdee8, 0x00e0dfe9, 0x00dfdee8, 0x00dddbe6, 0x00dcdbe5, 0x00e1deea, 0x00e5e2ee, 0x00e0dfeb, 0x00d9dbe5, 0x00d5d4e1, 0x00d2cee0, 0x00c9c6d5, 0x00ceccdc, 0x00d6d3e4, 0x00d7d4e4,
- 0x00dbd9ea, 0x00dcd9ec, 0x00d8d4e9, 0x00d5d2e3, 0x00cbc8db, 0x00bab5ca, 0x00bdb6cd, 0x00c8c3d7, 0x00ccc7db, 0x00bfbcc6, 0x00abaaad, 0x00abadac, 0x00c1c2c8, 0x00c5c3de, 0x0078759d, 0x00444175,
- 0x0086898c, 0x00b1b7c5, 0x00d3dbf5, 0x00acb5da, 0x00596298, 0x00313b79, 0x001c2a65, 0x001d3064, 0x007187ad, 0x00b8d1e8, 0x00d2e3ef, 0x00dadae9, 0x00d9d3df, 0x00ded7e4, 0x00dad3e5, 0x00a1a0b8,
- 0x00596287, 0x007785aa, 0x00556488, 0x00141c3a, 0x001a1a30, 0x002f2940, 0x002d283e, 0x0048465b, 0x004b4f65, 0x001f243d, 0x00313756, 0x003f466f, 0x00373f76, 0x00495495, 0x003b458e, 0x00353f8d,
- 0x002d48ab, 0x002c47a5, 0x0029449b, 0x00263e90, 0x0020327d, 0x001c2970, 0x002b347a, 0x003d4389, 0x0048468e, 0x0049478f, 0x004b4b9d, 0x00484ead, 0x00454c98, 0x00474a85, 0x0053527a, 0x0086839a,
- 0x00d1ced1, 0x00d6d2d4, 0x00bfb8bc, 0x008b838a, 0x0038313c, 0x0039363a, 0x00bebdbe, 0x00f9f9f9, 0x00fffefe, 0x00fbfbfa, 0x00fefefd, 0x00f8f8f7, 0x008c8d8d, 0x00262626, 0x003d3d3d, 0x00494b4b,
- 0x004f5f58, 0x00939393, 0x00f5edf4, 0x00fdf1f5, 0x00f4c8bd, 0x00ca8e66, 0x00d4a26a, 0x00e8be7b, 0x00e7cd96, 0x00d4c095, 0x00989889, 0x0061799b, 0x006b83a5, 0x0093a3c0, 0x00aeb9d7, 0x00c6cce4,
- 0x00e9eafa, 0x00e8e7f1, 0x00e9e5eb, 0x00eee4e8, 0x00f3e9e8, 0x00f2eeed, 0x00f3f2f4, 0x00f0edf0, 0x00f4f1f9, 0x00eeeaf3, 0x00d8d4e0, 0x00cdcad4, 0x00cbc7d0, 0x00ebe7ee, 0x00fefcfd, 0x00fffcfd,
- 0x00fdfdfc, 0x00fafafc, 0x00fdfdff, 0x00fafafb, 0x00f0eff1, 0x00eceaeb, 0x00f0eef0, 0x00f5f5f8, 0x00fbf9fc, 0x00f7f8f9, 0x00efeeed, 0x00eae7e1, 0x00e8e5e3, 0x00eae6e8, 0x00e9e7e9, 0x00eaeaf0,
- 0x00e8e5f2, 0x00e5e7f5, 0x00e5e8fc, 0x00e8ebfc, 0x00ebeffd, 0x00e8ebf0, 0x00e9eaec, 0x00ebecee, 0x00edeff0, 0x00eff1f3, 0x00f3f4f8, 0x00f8f9fc, 0x00fbfbfe, 0x00fafafb, 0x00fdfbfc, 0x00fefcfe,
- 0x00fcfafd, 0x00f8f5f8, 0x00f8f4f9, 0x00fdf8fd, 0x00fefcfe, 0x00fefcfd, 0x00fefbfd, 0x00fefbfb, 0x00fafafc, 0x00fcfafd, 0x00fdfafb, 0x00fef8fc, 0x00f5fffc, 0x00f4fffb, 0x00f7fdfb, 0x00fff9fb,
- 0x00fef8fe, 0x00fafcfd, 0x00f9fef5, 0x00fffce9, 0x00edb49c, 0x00dd7829, 0x00c96b25, 0x008b6265, 0x004a5fc8, 0x004d65d6, 0x004f66d0, 0x005669be, 0x004e6bb5, 0x00526ec1, 0x00657acf, 0x007881d9,
- 0x00737aa9, 0x00666d98, 0x004e567d, 0x00404767, 0x002f364d, 0x00323949, 0x00363c4b, 0x003a414d, 0x004d525d, 0x0051555f, 0x00808489, 0x00cfd3cf, 0x00fcfdfd, 0x00fcfcfe, 0x00ffffff, 0x00fffeff,
- 0x00e9e4eb, 0x0079797d, 0x00030707, 0x000a0f0d, 0x000e1917, 0x00132324, 0x000f1c1c, 0x000f1512, 0x000f0f09, 0x000b0e08, 0x000b100b, 0x000c1210, 0x00141615, 0x00221c15, 0x003a2b1d, 0x004e3521,
- 0x0061471f, 0x00634b26, 0x0059441f, 0x004f3e1c, 0x003b2f16, 0x002b2411, 0x001b190b, 0x000e0f07, 0x00040d0b, 0x00030b0e, 0x00010c0c, 0x00030e08, 0x00050c0c, 0x00060a0e, 0x000a0d11, 0x0006060a,
- 0x002f2e2f, 0x0093949c, 0x00ced3e7, 0x00a4a9c9, 0x00a1a6e4, 0x00cecfed, 0x00e9e6f8, 0x00eae4f2, 0x00f0e8f4, 0x00f9f0f9, 0x00f4e9f3, 0x00f7edf7, 0x00f5effa, 0x00f3f0fd, 0x00f3f2fe, 0x00cac8d7,
- 0x005965c2, 0x004554ae, 0x005364bf, 0x004f63c0, 0x004b61c1, 0x004d5fbd, 0x00565fb6, 0x00615fa7, 0x00b0a8c9, 0x00f3e5f0, 0x00f4e5e8, 0x00eee3eb, 0x00ece6ee, 0x00a8a5ab, 0x002e2e34, 0x0013181b,
- 0x00111812, 0x000d170a, 0x0016210c, 0x00303a1c, 0x005f6843, 0x0078794f, 0x00868354, 0x007e7e47, 0x00777943, 0x00787d50, 0x00a8ad8d, 0x00edf0e1, 0x00fcfefd, 0x00fcfcff, 0x00fefefd, 0x00fbfdfa,
- 0x00c3c1c7, 0x00656367, 0x004d494e, 0x00565257, 0x00615d64, 0x005f5a62, 0x00645e66, 0x00625a62, 0x005a535b, 0x00544c55, 0x00493c46, 0x00413036, 0x00392c2c, 0x0040302b, 0x0049362d, 0x004a3528,
- 0x00735f5c, 0x00bfb8ca, 0x00dfe8fd, 0x00a2bbf6, 0x005987e6, 0x003f80ec, 0x003a80ed, 0x00407ee3, 0x004378d6, 0x003571d5, 0x002868d3, 0x00226ad5, 0x004763bc, 0x00745999, 0x009f527b, 0x00c34f5d,
- 0x00d74f3f, 0x00b6555f, 0x007b4667, 0x003b3874, 0x00062369, 0x00021652, 0x00010c3f, 0x000a1033, 0x00141336, 0x00121940, 0x002c325f, 0x0037366b, 0x00424370, 0x0052597e, 0x00343e5d, 0x001e2a44,
- 0x000e192f, 0x00010720, 0x00010425, 0x00000429, 0x000a0736, 0x00061150, 0x000c1c65, 0x000a1e65, 0x00051760, 0x00081a62, 0x0005185f, 0x00081b61, 0x00091b61, 0x00061960, 0x0005185f, 0x0005185e,
- 0x00041964, 0x00031861, 0x0003145b, 0x00051559, 0x0005165a, 0x0000145d, 0x00001968, 0x00102e85, 0x00204bab, 0x00204fb7, 0x001a4ab4, 0x001843ab, 0x00768cc5, 0x00d3def7, 0x00f3f4fb, 0x00f3f1f5,
- 0x00c4ceed, 0x006374ab, 0x00152763, 0x00081750, 0x00040d31, 0x00070929, 0x00121030, 0x000a0928, 0x0055546d, 0x00c3c6d1, 0x00fdfcfd, 0x00fffef7, 0x00fbfcf0, 0x00fefef6, 0x00e2e1e8, 0x007d7b8b,
- 0x00091e0d, 0x00240c04, 0x004b1306, 0x006b1b02, 0x009a6331, 0x00bf9556, 0x00d0a563, 0x00cb985c, 0x00b07e48, 0x008a6b2e, 0x006b4f21, 0x00513319, 0x00621101, 0x008e1e07, 0x00c04528, 0x00e67c63,
- 0x00fadac6, 0x00e7e9de, 0x00d2e0dd, 0x00e3edec, 0x00f9eae9, 0x00f0e6ec, 0x00f3eff7, 0x00faf4f6, 0x00f7f4f7, 0x00f5f7f8, 0x00f9f9fd, 0x00f0f7fd, 0x00f5eef3, 0x00fcf6f4, 0x00f3d2c5, 0x00bc8d7b,
- 0x00f64422, 0x00e26731, 0x00e59e61, 0x00d2b87a, 0x00ef8c59, 0x00f56f37, 0x00f67347, 0x00f5a997, 0x00f2f7f3, 0x00fcfaec, 0x00fef8eb, 0x00f9fbef, 0x00f2b8a5, 0x00d58b71, 0x00e8ad8e, 0x00f9e0c6,
- 0x00fdecf6, 0x00f0f6fb, 0x00ddf3fa, 0x00d7f3f1, 0x00fbece7, 0x00fdf8ed, 0x00fcfaec, 0x00fdfaf2, 0x00fdf9fc, 0x00fef9ff, 0x00fff9ff, 0x00fcf6fa, 0x00f7f6e2, 0x00d7d9b7, 0x009ea372, 0x009da368,
- 0x0098a162, 0x00939b5b, 0x00929b57, 0x00949d55, 0x00abb168, 0x00b4ba70, 0x00b6bc73, 0x00abb56e, 0x009ea463, 0x00838c4d, 0x00636c32, 0x003b4616, 0x00464a31, 0x00a9aaa3, 0x00fbf8fa, 0x00fff9fe,
- 0x00fdf7fc, 0x00fcf8f9, 0x00fdfcfc, 0x00fafbf7, 0x00f6f7f7, 0x00aeb7bd, 0x001f2c3c, 0x0015253c, 0x00273a64, 0x002d4077, 0x002c4180, 0x00293f84, 0x00293e85, 0x00294081, 0x00273f7c, 0x00243e78,
- 0x00212f5c, 0x00353d53, 0x00333335, 0x00302915, 0x006c634e, 0x006b6867, 0x0034394e, 0x00404d7a, 0x002f4285, 0x001e3076, 0x00344992, 0x00233e7c, 0x002f4d8c, 0x005c78b8, 0x00647fc2, 0x00617bbb,
- 0x005065a4, 0x0012245f, 0x00293a71, 0x004e5e93, 0x00495788, 0x00485479, 0x00626e82, 0x00435254, 0x00091a07, 0x00081800, 0x00112107, 0x0014230e, 0x000f1b0e, 0x00131f10, 0x00051200, 0x0044503c,
- 0x00dddedf, 0x00fafcfd, 0x00fbfefd, 0x00f4f4f4, 0x00f4f8f7, 0x00fbfdfb, 0x00fcfefb, 0x00fdfefd, 0x00f9fdfd, 0x00fdfefc, 0x00cbcfd0, 0x00606771, 0x00202431, 0x001d1420, 0x002b1217, 0x004d1f19,
- 0x008d3e24, 0x00b4542d, 0x00d86d41, 0x00ea7442, 0x00e17345, 0x00e56435, 0x00c24c1e, 0x00ae5c2d, 0x00d5ae94, 0x00fde7e7, 0x00c7c8e7, 0x005b7ab2, 0x00186eb5, 0x002175c0, 0x003277c6, 0x003f68bb,
- 0x00947b85, 0x00d8c4cc, 0x00f3e4e8, 0x00ede1e7, 0x00e8ebec, 0x00f2f5f7, 0x00eff2f4, 0x00f1f1f6, 0x00f6eff9, 0x00f8effa, 0x00faf2fa, 0x00f9f4f9, 0x00f0f3f5, 0x00eaeff5, 0x00e5eaf3, 0x00e6e8f3,
- 0x00eee3f8, 0x00b8adc3, 0x005b546d, 0x005d627b, 0x005b6c82, 0x005d6c79, 0x005a6771, 0x0055606c, 0x005c5869, 0x006e5f70, 0x008a7180, 0x00a07b83, 0x00b98380, 0x00c58878, 0x00ce8b72, 0x00d08a6a,
- 0x00cf8573, 0x00bf7e70, 0x00a6726b, 0x00835e5f, 0x0069535b, 0x006e585f, 0x00846a6c, 0x009e7974, 0x00b98373, 0x00c98a74, 0x00d99076, 0x00e09074, 0x00d08c74, 0x00bb8675, 0x00a27a74, 0x008b7071,
- 0x006d626d, 0x0065626c, 0x005f626c, 0x00656973, 0x005f646e, 0x00585c67, 0x00545662, 0x00555862, 0x00525460, 0x004e525d, 0x005a5d69, 0x0060626e, 0x00656974, 0x005f636e, 0x00535562, 0x004a4e5b,
- 0x00434144, 0x00363332, 0x0038342d, 0x004c453c, 0x00635951, 0x006c635c, 0x0078716d, 0x007c777a, 0x00706e7c, 0x00636576, 0x00535364, 0x00524d5c, 0x004f4d59, 0x005c5963, 0x005a545a, 0x004c4548,
- 0x0043322f, 0x00432728, 0x00532f32, 0x0067393a, 0x00794247, 0x00884749, 0x009e605e, 0x00b17875, 0x00aa7f7c, 0x0093726d, 0x007e6662, 0x006b5c5b, 0x003d3937, 0x001c1a19, 0x00040408, 0x00000005,
- 0x00030001, 0x00020000, 0x00020100, 0x00020203, 0x000d0c12, 0x00191922, 0x00474750, 0x0054545d, 0x00777e85, 0x00caced3, 0x00fafdf9, 0x00fff8eb, 0x00f3fefe, 0x00f0fefc, 0x00e1edf5, 0x00a9a6b1,
- 0x005b627a, 0x005d7ab1, 0x004877c7, 0x00316fcd, 0x003d74d5, 0x008a6572, 0x00c56341, 0x00df5f33, 0x00df6844, 0x00e39d94, 0x00f3dade, 0x00d3e4ed, 0x00cad1cb, 0x00d3d0cf, 0x00e7deea, 0x00e9e7fd,
- 0x00e5e9ea, 0x00e5e8e8, 0x00e6e9ea, 0x00e7e9ec, 0x00e8ebec, 0x00e7eaec, 0x00e8eaed, 0x00e6e9ea, 0x00e3e7eb, 0x00e1e5e5, 0x00e3e4e4, 0x00e1e4e4, 0x00d6dbdb, 0x00dde0e1, 0x00e9eaed, 0x00eaecee,
- 0x00e6e8e7, 0x00dfe3e3, 0x00e6e9ea, 0x00e9eaec, 0x00ebedef, 0x00edf0f2, 0x00edeff1, 0x00eef0f2, 0x00f3f4f6, 0x00f3f3f6, 0x00f1f3f6, 0x00f2f4f8, 0x00f4f6f8, 0x00f3f6f7, 0x00f3f5f6, 0x00f3f5f7,
- 0x00f3f7f7, 0x00f3f5f6, 0x00f2f4f7, 0x00f1f3f6, 0x00f2f2f7, 0x00f2f3f6, 0x00f1f3f6, 0x00f1f4f5, 0x00eff2f3, 0x00eef2f2, 0x00f0f2f6, 0x00f4f0f9, 0x00f4f4f4, 0x00f9f7f1, 0x00fcfaf3, 0x00fbfaf7,
- 0x00fefafe, 0x00f8f5fc, 0x00f9f5fb, 0x00f5f1f7, 0x00f4f3ed, 0x00f7f6f6, 0x00faf8fc, 0x00fbfaff, 0x00f6f6fd, 0x00f4f5fc, 0x00f3f5fa, 0x00f3f4f8, 0x00f1f3f5, 0x00f4f5f4, 0x00f3f4f5, 0x00f5f6f7,
- 0x00fcf6f7, 0x00f9f4f8, 0x00f8f8fc, 0x00f6f6fe, 0x00f3f8ff, 0x00f5f5ff, 0x00fbf6f7, 0x00c9babf, 0x00563e3a, 0x0050342b, 0x00624030, 0x007c4a2f, 0x008b593e, 0x00946446, 0x009a6b4d, 0x009c6e51,
- 0x00a37552, 0x00a27351, 0x00a0714f, 0x009d714c, 0x009f714c, 0x00a1714e, 0x00a17152, 0x00a07355, 0x00a07859, 0x009e795c, 0x00a07b61, 0x009f7c60, 0x00a17d5e, 0x00a17a5a, 0x009e7756, 0x009c7251,
- 0x00f7fbf1, 0x00ecebe6, 0x00f1eae5, 0x00dfc6c1, 0x00ca7270, 0x00e15d59, 0x00f75c54, 0x00fe5b4d, 0x00f26453, 0x00e06a5a, 0x00d38377, 0x00d7b7b9, 0x00f3e2e6, 0x00f2e4ed, 0x00efe9ef, 0x00eeecf2,
- 0x00eee6ee, 0x00ebe3e9, 0x00e7dfe7, 0x00e5e0e9, 0x00e7e5f1, 0x00eae8f0, 0x00eae9ef, 0x00e7e9f0, 0x00e9e7f0, 0x00e6e4ec, 0x00e5e4ed, 0x00e5e3ed, 0x00e3dfe8, 0x00e1dde6, 0x00e1dee8, 0x00e2dee7,
- 0x00dedce8, 0x00dedce7, 0x00dfdde8, 0x00dddce6, 0x00dbd9e3, 0x00dcdae4, 0x00e0dee8, 0x00e2e1eb, 0x00dddfea, 0x00d6d7e2, 0x00d2d2e1, 0x00c9c9dd, 0x00c4c3d5, 0x00cecbde, 0x00dad5e7, 0x00d7d4e4,
- 0x00ded9eb, 0x00dddaea, 0x00d5d2e4, 0x00d0cfde, 0x00c6c7d8, 0x00bbb7cb, 0x00bdb4cc, 0x00c0bacf, 0x00bcb9cd, 0x00b6b3bd, 0x00b8b6bb, 0x00c6c7c7, 0x00d3d4dc, 0x00c6c5d9, 0x009c97b9, 0x00a29cc7,
- 0x00c5c4c5, 0x00d0d3e2, 0x00bdc2e2, 0x007d84b9, 0x004c57a5, 0x004d5eac, 0x004e63a9, 0x004f6ba0, 0x0084a0bb, 0x00a6c8d3, 0x00b8cfd6, 0x00d1d6e3, 0x00d9d4e7, 0x00dcd8ec, 0x00d1cde4, 0x009696b5,
- 0x006c75a0, 0x00b1bce4, 0x008d97bc, 0x00313653, 0x00131023, 0x001a1521, 0x0036303a, 0x00615d69, 0x00494c5f, 0x001b203b, 0x0011183c, 0x001e2653, 0x00343e76, 0x004d589a, 0x00414c94, 0x0039428e,
- 0x002440a4, 0x00233e9a, 0x001d378a, 0x00142b75, 0x000e1d66, 0x00101964, 0x00262d76, 0x003b3f88, 0x0046438c, 0x00404286, 0x00404190, 0x0040449c, 0x00484a94, 0x0046467d, 0x00545276, 0x007a7889,
- 0x00bcb8ba, 0x00bab6b6, 0x00898384, 0x00403a3d, 0x00100b12, 0x00322f32, 0x00c2c0c0, 0x00f9f8f8, 0x00fffdff, 0x00fafbfc, 0x00fcfdfe, 0x00f7f8f8, 0x008e8d8d, 0x002c2828, 0x00433d3d, 0x00534d4c,
- 0x0055685c, 0x00959c98, 0x00f5eff1, 0x00faf2f7, 0x00f1bfb2, 0x00bc6c54, 0x00ad5d3d, 0x00de9d7b, 0x00ffeade, 0x00f1e8ec, 0x00d3d9ea, 0x0086a3c1, 0x005a7698, 0x00839cc0, 0x0099afd0, 0x00a1b3cd,
- 0x00d8e0ec, 0x00e3e4e9, 0x00e5e1e4, 0x00eae4e5, 0x00f2eced, 0x00ece8ef, 0x00cfc9da, 0x00bab5c6, 0x00ddd9e9, 0x00eae9f5, 0x00bbbcce, 0x00828492, 0x00908f97, 0x00d5d2da, 0x00fbf9fa, 0x00fefbfd,
- 0x00f9fcfb, 0x00f6f7f8, 0x00fdfdfe, 0x00ffffff, 0x00f6f4f7, 0x00efedef, 0x00ebeaeb, 0x00eceeef, 0x00f7f6fb, 0x00f6f7fd, 0x00f4f2f7, 0x00f2f0ef, 0x00f1f1ef, 0x00f1f0f1, 0x00f5f4f7, 0x00f4f7fe,
- 0x00d6dbf2, 0x00b6bddf, 0x00a1a8cf, 0x00a8afda, 0x00c4cdef, 0x00e5e8f3, 0x00f9f7f9, 0x00f7f8fb, 0x00f8fafb, 0x00f8f9fb, 0x00fcfdfd, 0x00fcfdfb, 0x00fefdfd, 0x00fefdfe, 0x00fdfcfd, 0x00faf9fc,
- 0x00fdfafd, 0x00f7f6f7, 0x00f6f5f7, 0x00f8f8fa, 0x00fbf8fd, 0x00fcf9fe, 0x00fefaff, 0x00fffcff, 0x00fefcff, 0x00fdfeff, 0x00fbfbfb, 0x00fdf8fd, 0x00f8fffd, 0x00f8fff9, 0x00f8fcf7, 0x00fcf8f9,
- 0x00fcf8fd, 0x00fafcfc, 0x00f8fef4, 0x00fdfbe4, 0x00f0af96, 0x00e07b28, 0x00c87027, 0x00825e61, 0x004860cb, 0x004e68db, 0x00526ad8, 0x005c70ca, 0x005672cc, 0x004a68c6, 0x004f67c6, 0x00606dce,
- 0x00777dbe, 0x007b82bb, 0x007e86b9, 0x00757ea9, 0x005e6789, 0x0046506b, 0x003e475c, 0x00414a59, 0x00545a67, 0x00585f65, 0x008f9395, 0x00e0e4e0, 0x00fefeff, 0x00fcfcff, 0x00fdfdfd, 0x00fdfcfc,
- 0x00dad6db, 0x00616366, 0x00030809, 0x0006100d, 0x000d1c17, 0x00142423, 0x00101b1c, 0x000a110e, 0x000d0b05, 0x000d0f0a, 0x00101411, 0x00151a1a, 0x00202121, 0x0028231b, 0x00362a1b, 0x0042311d,
- 0x00553b17, 0x00573f20, 0x00503c1e, 0x004c3d21, 0x00443723, 0x00352f1e, 0x00201f13, 0x0010120c, 0x00070d0a, 0x00030909, 0x0001090b, 0x00020b0b, 0x00050b12, 0x00050912, 0x00090c14, 0x0004050c,
- 0x00302f36, 0x007c7e8d, 0x008c92a9, 0x008388ac, 0x00bbbdf2, 0x00e0def8, 0x00ede7f7, 0x00eee5f5, 0x00f3e9f6, 0x00f6ecf8, 0x00f7ecf9, 0x00f7eefa, 0x00f7f0fe, 0x00f4effe, 0x00f5f1fe, 0x00cac6d7,
- 0x005d61bd, 0x004855b1, 0x005165c1, 0x004d63bd, 0x004f61bf, 0x004d5ebe, 0x00545eb5, 0x006261a4, 0x00baabc6, 0x00f4e6f0, 0x00f0e6e8, 0x00eee6ec, 0x00e9e3ec, 0x009c9ca2, 0x0023262a, 0x00101718,
- 0x00121a10, 0x00111b08, 0x00212b10, 0x00454c29, 0x00747950, 0x008f8c5a, 0x0095915a, 0x0086854c, 0x007a7a46, 0x007b7d55, 0x00b1b49a, 0x00f0f2e6, 0x00fdfefe, 0x00fafcfb, 0x00fcfffc, 0x00f8fffd,
- 0x00b3b2b8, 0x00535156, 0x00454248, 0x004e4b52, 0x005d5860, 0x005c545e, 0x00615861, 0x005f555d, 0x005a5057, 0x00514850, 0x00473a42, 0x003d2f32, 0x00412e2b, 0x004c372d, 0x00523b2b, 0x00513d2a,
- 0x009a8385, 0x00e2d8e3, 0x00d0d8fd, 0x00859feb, 0x004f7bed, 0x004184f2, 0x003980e9, 0x003d7acf, 0x004a78c2, 0x003f72c7, 0x00356ad0, 0x002b63e0, 0x003563e5, 0x00485dca, 0x005958ad, 0x00726199,
- 0x00c74954, 0x00a6516f, 0x007a4d82, 0x004f519f, 0x00274ba3, 0x00163789, 0x00071b62, 0x00061348, 0x000f154a, 0x00111750, 0x00222866, 0x00242867, 0x0023275f, 0x00232c58, 0x00091439, 0x00020e2c,
- 0x00010e2e, 0x00050d2e, 0x00030c33, 0x00010633, 0x00090a3f, 0x00051250, 0x000b1e62, 0x00071a5f, 0x00051661, 0x00081a64, 0x00071a64, 0x00061a63, 0x00081a62, 0x00071960, 0x0005185f, 0x00061860,
- 0x0003186b, 0x00001562, 0x00051760, 0x0009185c, 0x0007175a, 0x0003165c, 0x00041b66, 0x000e287c, 0x002143a5, 0x002046ad, 0x001a40aa, 0x00415ec0, 0x00abbee2, 0x00e3edf6, 0x00eff3f6, 0x00e1e0f0,
- 0x007f8ac8, 0x00263b7d, 0x00081c56, 0x0004143a, 0x00040d12, 0x000a0c22, 0x0013162f, 0x000d0f27, 0x0076748a, 0x00e2e3e9, 0x00fffdfb, 0x00fbfcf2, 0x00f9fcf0, 0x00fffffa, 0x00cdced4, 0x0062626f,
- 0x00041a15, 0x0022130e, 0x00491d0e, 0x007c411e, 0x00aa8a3e, 0x00b8a449, 0x00c5aa4b, 0x00c29a43, 0x00c78342, 0x00bd7c42, 0x00a47547, 0x00686a46, 0x005d1e09, 0x00650600, 0x008a150c, 0x00c75747,
- 0x00efc3b9, 0x00e5e1d7, 0x00d7e2db, 0x00e4f1ea, 0x00f2e7e5, 0x00ede8ec, 0x00f5eff8, 0x00faf6f9, 0x00fbfaf9, 0x00f4f9f5, 0x00f0f6f8, 0x00ecf3f8, 0x00f6eff9, 0x00fef5f4, 0x00eecfc4, 0x00bc9283,
- 0x00f44639, 0x00e17a60, 0x00f7ceb2, 0x00eaebd4, 0x00e39e75, 0x00e7703e, 0x00f36b3d, 0x00f79c80, 0x00f9f0eb, 0x00fafbe2, 0x00fafadd, 0x00ededd5, 0x00e99b87, 0x00cc8164, 0x00fabfa1, 0x00fce6ce,
- 0x00fbe8f3, 0x00eff1fb, 0x00d8ebf6, 0x00ccece8, 0x00fdeae8, 0x00fdf7ea, 0x00fffbee, 0x00fdf8ef, 0x00fbf9f9, 0x00faf8fb, 0x00fcfafd, 0x00fafaf9, 0x00f9fbf0, 0x00eaeed3, 0x00b0b48c, 0x00979c69,
- 0x00979d5e, 0x0094995a, 0x00909657, 0x00939a56, 0x00a2ac62, 0x00a8b469, 0x00a2ad65, 0x0095a259, 0x007f8747, 0x0062682b, 0x00414a14, 0x00222e06, 0x00424631, 0x00b5b6ac, 0x00fcfcfa, 0x00fff8ff,
- 0x00fdf7fe, 0x00fbf8fa, 0x00fbf9fa, 0x00fafaf8, 0x00fcfbfc, 0x00d7dee3, 0x005b6472, 0x0018253a, 0x00192b4f, 0x00293c6f, 0x00243977, 0x00243b7f, 0x00273e82, 0x00283e7b, 0x001f356c, 0x0014295d,
- 0x00364566, 0x00737a8a, 0x00626162, 0x002d2518, 0x00554c3c, 0x006d6a65, 0x003b3f4f, 0x00273356, 0x00303e80, 0x0021327a, 0x003c529d, 0x00324f91, 0x00254789, 0x004c6cb0, 0x005d7bc0, 0x00637fc6,
- 0x003e559c, 0x001a2d6f, 0x000f225b, 0x00213062, 0x00505e84, 0x008995ad, 0x007a8791, 0x0030403f, 0x00071b06, 0x000c1e06, 0x0010230a, 0x000e1f09, 0x000c180a, 0x00131f10, 0x000c1807, 0x005a6554,
- 0x00f0f2f1, 0x00fbfefc, 0x00fdfefd, 0x00f7f7f8, 0x00f5f6f7, 0x00fcfcfd, 0x00fcfdfc, 0x00f9fbfc, 0x00f8fdfa, 0x00fbfefa, 0x00d8dcdf, 0x00727884, 0x00232633, 0x0018141d, 0x00221012, 0x00452018,
- 0x00853b21, 0x00ad532a, 0x00d36c3d, 0x00e17744, 0x00e3763e, 0x00e66537, 0x00ca4d21, 0x00a44417, 0x00b58169, 0x00ebcdcc, 0x00cac8e3, 0x005e7eb3, 0x001a72b7, 0x001c74bf, 0x00307dcc, 0x003a71c3,
- 0x00877585, 0x00c9b0bb, 0x00f8e6ec, 0x00e9e5e4, 0x00e5e1e3, 0x00efeaed, 0x00f3eff2, 0x00edf3f4, 0x00f3f1f4, 0x00f1ebf5, 0x00f2ecf6, 0x00f6f3f9, 0x00f2f5f7, 0x00ebf0f6, 0x00e7ecf6, 0x00e7e8f7,
- 0x00f1e9fd, 0x00c6bed4, 0x0069627a, 0x005c6277, 0x005d6e81, 0x005c6f7b, 0x005a6873, 0x00586069, 0x00665c6b, 0x00806977, 0x009f7c87, 0x00b4878b, 0x00c78b87, 0x00cf8e7d, 0x00d08a6e, 0x00d48965,
- 0x00c47e70, 0x00aa6f63, 0x0093635e, 0x007d5c5d, 0x007c656b, 0x008d7176, 0x00a47f80, 0x00ba8882, 0x00cb8474, 0x00d5886c, 0x00e18e6e, 0x00e0896b, 0x00cf856d, 0x00b47a69, 0x009b706a, 0x00856b6a,
- 0x00796d78, 0x006b6771, 0x005f626c, 0x005e646f, 0x00565c67, 0x00494f59, 0x00424651, 0x00464957, 0x004f525d, 0x00525661, 0x005e606d, 0x00646672, 0x00666974, 0x00636670, 0x0053555f, 0x00484a55,
- 0x003a3334, 0x00322b28, 0x00383129, 0x004d433a, 0x006b5d55, 0x00786b62, 0x00877d76, 0x008a8282, 0x007f7c87, 0x006d6e7e, 0x00535468, 0x00464459, 0x003f4053, 0x004b4c5b, 0x00565760, 0x0052555a,
- 0x00574f51, 0x00514043, 0x0062454a, 0x00764e52, 0x007f4c55, 0x00884b4f, 0x00905250, 0x00975d5a, 0x008b5f5c, 0x00775753, 0x00624d47, 0x004a3e3a, 0x00242423, 0x00121414, 0x00030708, 0x00000305,
- 0x00020101, 0x00010201, 0x00020301, 0x00020303, 0x000b0b10, 0x0013151b, 0x00414349, 0x00595a61, 0x0075797f, 0x00b9bdc2, 0x00fefafa, 0x00fdf7f1, 0x00f6fdfe, 0x00f1fdfd, 0x00ebf1f8, 0x00b7b5c2,
- 0x006b6981, 0x00697bac, 0x005079c4, 0x002e68c7, 0x001756c1, 0x0058475e, 0x009c5037, 0x00cf5931, 0x00d14e2d, 0x00c77264, 0x00e2bab9, 0x00d2d6db, 0x00c4d3cd, 0x00bfc2c2, 0x00ccc6d7, 0x00dbd3f2,
- 0x00e1e1e2, 0x00e4e5e6, 0x00e6e7eb, 0x00e4e7eb, 0x00e5e9eb, 0x00e5e7e9, 0x00e5e7e8, 0x00e4e5e5, 0x00dedfe4, 0x00d7dcdf, 0x00d8dbdd, 0x00d6d7d6, 0x00cbcdd1, 0x00ced1d5, 0x00e0dfe5, 0x00e8e7ea,
- 0x00e2e3e5, 0x00dce0e1, 0x00e5e7e9, 0x00eaebee, 0x00eaebf1, 0x00e7edf3, 0x00e7eef1, 0x00eaf0ef, 0x00f0f3f5, 0x00f1f4f4, 0x00f2f4f4, 0x00f3f3f6, 0x00f5f5f9, 0x00f4f6f8, 0x00f3f5f6, 0x00f1f5f6,
- 0x00f5f4f8, 0x00f5f4f7, 0x00f4f5f8, 0x00f4f5f7, 0x00f5f4f7, 0x00f4f5f6, 0x00f3f7f7, 0x00f4f7f7, 0x00f4f5f5, 0x00f1f4f3, 0x00f3f3f6, 0x00f6f2fc, 0x00f7f5fb, 0x00faf8f9, 0x00fdf9f9, 0x00fdf9fa,
- 0x00fbf4ff, 0x00fbf2fc, 0x00f7f0fb, 0x00f6f0f5, 0x00f7f9f3, 0x00fbf8fa, 0x00faf8fc, 0x00f6f9f9, 0x00f4f5fa, 0x00f5f4fa, 0x00f7f6fc, 0x00f8f5fc, 0x00faf8fc, 0x00f9f8f9, 0x00f4f6f5, 0x00f2f5f1,
- 0x00fdf5f7, 0x00faf5f6, 0x00f8f5f9, 0x00f9f7fa, 0x00f5f8ff, 0x00f5f4fd, 0x00fef9fc, 0x00e1d8dd, 0x00775d59, 0x005e3c33, 0x006c4431, 0x00834f2f, 0x00955e40, 0x009e6848, 0x00a46e4d, 0x00a67250,
- 0x00ab7752, 0x00aa7550, 0x00a7724c, 0x00a4724a, 0x00a6734c, 0x00a8734f, 0x00a97451, 0x00a97653, 0x00a97957, 0x00a87b5a, 0x00aa7d5e, 0x00a97e5d, 0x00aa805d, 0x00a97d59, 0x00a77a55, 0x00a67750,
- 0x00d9f4ed, 0x00b6d5dc, 0x00adc3db, 0x009fa6ce, 0x008f5a84, 0x00aa4b5f, 0x00e16062, 0x00fc6153, 0x00fc5a47, 0x00f45c4d, 0x00ea5c53, 0x00ec6767, 0x00f3b5b5, 0x00f3e4e4, 0x00e5efef, 0x00d9eff4,
- 0x00e8e6ed, 0x00f1dee9, 0x00f1dae6, 0x00ecdde9, 0x00e2eaf3, 0x00eaecf3, 0x00eceaef, 0x00ebe8ed, 0x00ece5ed, 0x00eae3ec, 0x00e8e4eb, 0x00e6e3eb, 0x00e4dee9, 0x00e1dbe7, 0x00e0dde8, 0x00e2dde9,
- 0x00e4dee8, 0x00e1dde6, 0x00dedbe4, 0x00dbdbe3, 0x00dadae4, 0x00dbdbe6, 0x00dddce9, 0x00dcdbe9, 0x00dbd6e5, 0x00d6cfe2, 0x00cacade, 0x00b9c1d8, 0x00c1c7de, 0x00d1d0e8, 0x00d7d1e6, 0x00d9d1e6,
- 0x00dad3e5, 0x00d9d4e4, 0x00d2d2e1, 0x00c7cdd8, 0x00b9c0cc, 0x00b2b4c2, 0x00bab8c8, 0x00bcbac9, 0x00b2adc3, 0x00b2aebf, 0x00c8c4d5, 0x00d7d5e2, 0x00d6d3e3, 0x00c4c2cb, 0x00b8b6c2, 0x00c0c0cb,
- 0x00cdc9bd, 0x00c8c7cc, 0x00b6b9d2, 0x007481ae, 0x003b5598, 0x004266a7, 0x00597fc3, 0x005c84c6, 0x005f82cd, 0x005273c3, 0x006985ca, 0x007d92b9, 0x0098acd3, 0x00a2bbdd, 0x00b6d2e7, 0x008dabbc,
- 0x007992a1, 0x00bfcee0, 0x00afb4c5, 0x005d5668, 0x00413045, 0x00423538, 0x00524c4b, 0x006b636e, 0x004f4e7b, 0x00262a67, 0x001f2873, 0x002f3a8b, 0x004850a4, 0x004e53a5, 0x00494a96, 0x0043428a,
- 0x002f3388, 0x002e3374, 0x00252c58, 0x0019213c, 0x00151740, 0x001d1d5b, 0x00303080, 0x0044439f, 0x00444895, 0x0036417c, 0x00343e71, 0x00383e71, 0x004b4a74, 0x00645f7f, 0x008f8798, 0x00a9a0a5,
- 0x00c3bab3, 0x00b3aca0, 0x00615c4e, 0x00212011, 0x000b0c02, 0x002e3126, 0x00babcb5, 0x00f8f8f4, 0x00fbfeff, 0x00fbfeff, 0x00fbfdfe, 0x00f7f5f5, 0x00948988, 0x00382622, 0x00513a32, 0x0063483f,
- 0x007b5c46, 0x00a49b8b, 0x00edf4eb, 0x00f0fcfb, 0x00f4e3e0, 0x00c78f84, 0x00994533, 0x00da7666, 0x00ffe1cb, 0x00f4e9d2, 0x00e8f4d2, 0x00aad5af, 0x006a969c, 0x0077a5ce, 0x0089b7e7, 0x008eb9e3,
- 0x00c1dbda, 0x00ddebdf, 0x00dde4d9, 0x00e6ecec, 0x00cecee8, 0x00a198cf, 0x005e4e9c, 0x005a519d, 0x00c5c7fd, 0x00c7cff8, 0x00727eaa, 0x004e5c7b, 0x00868f9c, 0x00d3d4dc, 0x00fcf8f7, 0x00fff8f2,
- 0x00ecfce8, 0x00f1fbef, 0x00f7fcf7, 0x00eff4f1, 0x00f6faf9, 0x00eef3f1, 0x00ecf3f0, 0x00ecf5f4, 0x00d2d5e9, 0x00aeb3ce, 0x00a7acc4, 0x00b7bed0, 0x00e2ecf6, 0x00eef9fd, 0x00eaf9fb, 0x00c5dcdf,
- 0x00718bc7, 0x003c51c0, 0x00304ad0, 0x004865ed, 0x008bafff, 0x00cadce8, 0x00fcfff7, 0x00fafbfb, 0x00fffaff, 0x00fbf6fc, 0x00fffcfb, 0x00fbfaf1, 0x00fcfbf4, 0x00fdfefb, 0x00fafcfc, 0x00f9fcfd,
- 0x00f9fcfc, 0x00f4faf8, 0x00f4f9f6, 0x00f4f8f6, 0x00f7f2f9, 0x00f7f0f9, 0x00fbf1fb, 0x00fdf3fd, 0x00fbfcff, 0x00f7fdfb, 0x00f4f8f5, 0x00faf4fa, 0x00f9fefa, 0x00fefff0, 0x00fdfaeb, 0x00fcf7f0,
- 0x00f9f7fe, 0x00effeff, 0x00eafff8, 0x00fafce7, 0x00f2a38d, 0x00ec722b, 0x00d26633, 0x00875072, 0x00465ecb, 0x004364ba, 0x004668ae, 0x00546ea9, 0x00556dd5, 0x004a66d0, 0x004565b8, 0x0050729e,
- 0x005d64db, 0x005864d0, 0x006b7cdc, 0x007e96ea, 0x007e99e1, 0x006f89c7, 0x005c74a7, 0x00516691, 0x005f677d, 0x00636c72, 0x009fa5a5, 0x00ebefec, 0x00fcfcfd, 0x00fcfbfc, 0x00faf9f8, 0x00fefdfc,
- 0x00c3c5c6, 0x00414546, 0x00060a0c, 0x0006130f, 0x0010211a, 0x00121d1d, 0x0010191c, 0x00071211, 0x000e0f12, 0x000e1316, 0x00131815, 0x00181e1a, 0x00202523, 0x001f221c, 0x0022241e, 0x00272a27,
- 0x003d3013, 0x00483c25, 0x004c402f, 0x004f4739, 0x00504640, 0x003f3a36, 0x00262322, 0x00121216, 0x000c0b10, 0x0008080c, 0x00070b09, 0x00030d04, 0x00040d09, 0x00020c0c, 0x00060f13, 0x00020910,
- 0x00272d42, 0x00565a74, 0x00737491, 0x00aea9cd, 0x00e3daff, 0x00eae1eb, 0x00ebe4e8, 0x00ede8ec, 0x00f5eefc, 0x00f2edfa, 0x00f1edf9, 0x00f3f0fb, 0x00f7f2fe, 0x00f5edf9, 0x00fbeef9, 0x00d0c1d0,
- 0x006d5fa1, 0x004d5bb1, 0x004966c4, 0x004b62bb, 0x005662b8, 0x004a60bd, 0x004b5fb1, 0x0065639d, 0x00cdafb9, 0x00f4e8f0, 0x00e7e7ef, 0x00eae8f2, 0x00e3e3ee, 0x00899096, 0x00172120, 0x00091910,
- 0x000b1905, 0x00162104, 0x00373f19, 0x005e6135, 0x008b8855, 0x00a39b57, 0x009f964f, 0x00948d4e, 0x008b7f5b, 0x00867c66, 0x00bebab0, 0x00f3f3f3, 0x00fcfcff, 0x00fafefe, 0x00f5fcfb, 0x00f2fafd,
- 0x0099a2a1, 0x003a4343, 0x003a4045, 0x003e424a, 0x004c4d57, 0x004e4d57, 0x004e4d56, 0x0052525a, 0x0057505a, 0x004e4850, 0x00443a3b, 0x00413326, 0x0050341e, 0x005f3a23, 0x005b3627, 0x006c4e46,
- 0x00a8a7b9, 0x00e1edf8, 0x00a1c4f8, 0x005f93d9, 0x004a83db, 0x004487e7, 0x003983e4, 0x00337cdd, 0x003373da, 0x003576dc, 0x003172d4, 0x002465c8, 0x002a69ce, 0x002f70d9, 0x002263c8, 0x002766c9,
- 0x004163c1, 0x003a62be, 0x00365fbe, 0x00315cc0, 0x002d5dc5, 0x002856bb, 0x0013419d, 0x00072784, 0x00041c72, 0x000a1c6f, 0x000d1d68, 0x000a1c63, 0x000e1e65, 0x00091c61, 0x00051a5f, 0x0007195a,
- 0x0004195d, 0x00051859, 0x00021454, 0x00011452, 0x00021454, 0x00001551, 0x00011954, 0x00061a5b, 0x00051661, 0x00061765, 0x00061869, 0x00041868, 0x00081967, 0x00091a63, 0x00081a5f, 0x00091b5d,
- 0x00021666, 0x00031665, 0x00071767, 0x00071565, 0x00071666, 0x00192879, 0x00233383, 0x0017287e, 0x001c2c8d, 0x001c2d93, 0x002e3b96, 0x00777cc5, 0x00dae3e6, 0x00e3eee4, 0x00e7f3ec, 0x00b2bce5,
- 0x003746a5, 0x000d1f6d, 0x0007174c, 0x00020a2a, 0x000f0c2e, 0x00061349, 0x00001c57, 0x00081d4d, 0x008c92ae, 0x00eeeffb, 0x00fefcfc, 0x00fcfcf9, 0x00fbfcfc, 0x00fafffb, 0x00b4c3b5, 0x00445a44,
- 0x00093a0d, 0x00112c03, 0x003b3f0d, 0x00866f3c, 0x00c29451, 0x00c8984d, 0x00cc974b, 0x00c49248, 0x00c08c48, 0x00c28b4f, 0x00bd8b4b, 0x00a2762d, 0x0072431a, 0x00441500, 0x003b100b, 0x0071494a,
- 0x00d1b7b7, 0x00f1dddc, 0x00e9dfdc, 0x00ebe4e2, 0x00eceaf0, 0x00f6e8f6, 0x00f9effa, 0x00f6f8f6, 0x00ebfef3, 0x00e6fcec, 0x00e0f2e6, 0x00eceeed, 0x00feeeff, 0x00fff2ff, 0x00efe7ee, 0x00d1cfd5,
- 0x00dfac8f, 0x00e2b5c0, 0x00ffe3fb, 0x00fce7ec, 0x00dfac4e, 0x00cd801b, 0x00de7b35, 0x00f59894, 0x00ffdaff, 0x00fcf7fe, 0x00f8f2dd, 0x00f9c28c, 0x00d3825e, 0x00cf8b72, 0x00fdcfc3, 0x00fbe8e3,
- 0x00eeedec, 0x00eaf1f5, 0x00d3dee0, 0x00d6dedc, 0x00f9f2f6, 0x00f9f8f3, 0x00fbfaf2, 0x00fdf9ee, 0x00fffaf2, 0x00f9fcf4, 0x00effcf5, 0x00eafef7, 0x00ebfefc, 0x00f3fef4, 0x00c8c7b8, 0x00a8a088,
- 0x009da555, 0x009b9d57, 0x00949155, 0x0098945e, 0x00a0a56c, 0x009cb06c, 0x0087a258, 0x00759347, 0x005b6f37, 0x003e4716, 0x00212c0b, 0x0006190e, 0x00434c45, 0x00bec0b9, 0x00f9fdf4, 0x00fcfcfa,
- 0x00f2faff, 0x00f3fbff, 0x00faf8ff, 0x00fdf6fc, 0x00fff4fb, 0x00f5f4f5, 0x00b9bbbd, 0x005a6668, 0x00142437, 0x00112647, 0x0017315e, 0x00173267, 0x001c316a, 0x001c2b5a, 0x00121a3b, 0x00232941,
- 0x00848884, 0x00bebeb6, 0x0078766f, 0x00312e2b, 0x003a3837, 0x006b6c75, 0x00585e71, 0x00313a5b, 0x002e4176, 0x001c2f6c, 0x00495c9c, 0x00465896, 0x00273e7a, 0x004b64a0, 0x006884c0, 0x005b77bb,
- 0x00364e9c, 0x004256a0, 0x0030447e, 0x000d1e4b, 0x0042506a, 0x0089989a, 0x006f7f72, 0x00122519, 0x000d2019, 0x00061c10, 0x000a2414, 0x00021d09, 0x000b200f, 0x00061802, 0x0014280e, 0x00758870,
- 0x00fefdfd, 0x00fdfafc, 0x00fcfdfe, 0x00f7f8f9, 0x00f3f5f7, 0x00f5f6f7, 0x00fbfffd, 0x00f7f9f9, 0x00fdfbfd, 0x00fffeff, 0x00e2e3ea, 0x008b8c99, 0x0020252d, 0x00141718, 0x00130e0a, 0x00321e12,
- 0x00753922, 0x00a2502c, 0x00ca6738, 0x00e07539, 0x00e7772a, 0x00d46b34, 0x00ba5525, 0x00ad4518, 0x00b25438, 0x00cd8f8a, 0x00d0b9cc, 0x006d79aa, 0x002f68bb, 0x002e6fcb, 0x002c73cc, 0x003171ce,
- 0x00616ea5, 0x00bc8cb7, 0x00f9dcee, 0x00e9f0e5, 0x00fadef5, 0x00f7ceec, 0x00f1dfed, 0x00dbfbe6, 0x00eafbea, 0x00eceff2, 0x00e7e7f3, 0x00e8ebf5, 0x00eff2fa, 0x00f1eefa, 0x00ede9f9, 0x00ece4fd,
- 0x00efe6ff, 0x00dad5ea, 0x008e8b9a, 0x006d6f79, 0x006e7383, 0x00637080, 0x00686f7d, 0x00766d75, 0x008d6c66, 0x00a3766c, 0x00b68777, 0x00be8d7c, 0x00c88d7f, 0x00cc8c7f, 0x00cc8274, 0x00cf7d6b,
- 0x00a26e6b, 0x0083625c, 0x0075655d, 0x00747267, 0x008d827b, 0x00a6857e, 0x00bf8781, 0x00d3867d, 0x00e0836f, 0x00df8365, 0x00da8366, 0x00d3816a, 0x00bd7c6b, 0x00a37466, 0x008a6b61, 0x007f7369,
- 0x006e7678, 0x00666e77, 0x00616775, 0x005e6175, 0x0054536c, 0x00494b58, 0x0040464a, 0x00454a54, 0x005b5c6d, 0x00636374, 0x00616171, 0x00646472, 0x00686672, 0x0067656e, 0x0056555b, 0x00464349,
- 0x00372723, 0x0030211b, 0x0043352c, 0x0055453d, 0x0072605b, 0x00897871, 0x00928681, 0x00928989, 0x008b8189, 0x0079707d, 0x005e5460, 0x0051444e, 0x004b404c, 0x00504856, 0x00585763, 0x005a5f6a,
- 0x005d5e6a, 0x004f515b, 0x0053585d, 0x00555b5a, 0x00545657, 0x005b504b, 0x005e4a40, 0x0061483d, 0x006d403f, 0x00653838, 0x00582a28, 0x00411b17, 0x00240f0c, 0x00160e0a, 0x00020600, 0x00020500,
- 0x00010003, 0x00040307, 0x00060507, 0x00040304, 0x000b090c, 0x00101113, 0x003a3d3d, 0x00585a5b, 0x00727075, 0x00a5a4a8, 0x00fcfafa, 0x00fbfcfa, 0x00fefaff, 0x00fff9ff, 0x00f5f8fc, 0x00c2c7d1,
- 0x00617c91, 0x006a8db3, 0x00618abc, 0x003d66aa, 0x00173b96, 0x00203b55, 0x00524b46, 0x008c5441, 0x00bf3e1f, 0x00be4526, 0x00ce7154, 0x00d9aa9b, 0x00bccbd7, 0x00abb8c8, 0x00a3a7c0, 0x00b2a2bb,
- 0x00c2bbb1, 0x00cecbc8, 0x00d7d8de, 0x00dbdde9, 0x00e1dfee, 0x00e2dee7, 0x00e2dedf, 0x00e1ddda, 0x00d3d8da, 0x00c7d5db, 0x00b9c4c4, 0x00b6b5ad, 0x00bbb3bb, 0x00b9b2bf, 0x00c4becb, 0x00d8d2e0,
- 0x00d8dada, 0x00d6dbd8, 0x00e1e7e4, 0x00e8edee, 0x00e5ecf4, 0x00deedf6, 0x00dcf0f3, 0x00e1f2ef, 0x00edf2ed, 0x00f7f0f0, 0x00faecf2, 0x00fce8f6, 0x00feecfc, 0x00f5f3fa, 0x00eaf9f4, 0x00e5fff2,
- 0x00ffeefd, 0x00ffeefd, 0x00fef0fd, 0x00fcf1fa, 0x00fbf1f6, 0x00f7f2f1, 0x00f4f4ed, 0x00f3f5eb, 0x00f2f7e9, 0x00f2f8ea, 0x00f1f7ec, 0x00f5f8f5, 0x00f8fefd, 0x00f7fcff, 0x00f5f9fc, 0x00f8fafe,
- 0x00f9f4f4, 0x00f7f0f2, 0x00f7f7f9, 0x00f3fdfe, 0x00ecfdff, 0x00f6f7f9, 0x00f7f3f8, 0x00f3f5f2, 0x00f0faef, 0x00f3f7f2, 0x00f6f6f6, 0x00f9f3fb, 0x00fff1ff, 0x00fbf2fc, 0x00f6f6fb, 0x00f2f7f6,
- 0x00f5f4f7, 0x00f7f4f4, 0x00f5f4f4, 0x00f4f3f0, 0x00f6fafe, 0x00f1f5fc, 0x00f6fcfc, 0x00e7e7eb, 0x00a18384, 0x00683c38, 0x00724230, 0x0088502c, 0x0098603d, 0x00a16845, 0x00a86f4b, 0x00ac734f,
- 0x00ae7650, 0x00ac744d, 0x00aa724a, 0x00a97148, 0x00aa7249, 0x00a97147, 0x00a97045, 0x00ab7245, 0x00b0734c, 0x00b0784f, 0x00b07b51, 0x00ad7d50, 0x00b18155, 0x00b18056, 0x00af8056, 0x00ae7f55,
- 0x00ccdbdd, 0x00788ea8, 0x006b7ea7, 0x00515f90, 0x00493967, 0x0065314e, 0x009f4658, 0x00d55c5a, 0x00ea5f43, 0x00ea5435, 0x00ec543e, 0x00ea5950, 0x00dd817e, 0x00eab7b6, 0x00fce7eb, 0x00f1ecf3,
- 0x00e2e5e7, 0x00e3dde4, 0x00e4dae4, 0x00e7ddeb, 0x00e6e8f3, 0x00eaeaf0, 0x00ede9ef, 0x00ede8ef, 0x00e3e2e6, 0x00e4e2e7, 0x00e5e1eb, 0x00e5e1ec, 0x00e2dee7, 0x00e0dce7, 0x00e0dae9, 0x00e1d9ea,
- 0x00dadbe2, 0x00dbdbe1, 0x00dbd9e5, 0x00dbd9e4, 0x00dad9e1, 0x00dcdae6, 0x00ddd9e8, 0x00dcd7e8, 0x00ced3db, 0x00c6cad5, 0x00c2c2d5, 0x00bdc1d7, 0x00c9c9de, 0x00d5d2e7, 0x00d9d0e7, 0x00ddd3e7,
- 0x00d2d1db, 0x00c8c8d1, 0x00cacad7, 0x00cbccdc, 0x00bcbfcf, 0x00bebcd0, 0x00c5bfd7, 0x00bab6cc, 0x009c9daa, 0x00aaabb7, 0x00d7d3e5, 0x00e0dcec, 0x00d2d1df, 0x00c7c5d2, 0x00bfbacb, 0x00bdb7c7,
- 0x00c2c1b5, 0x00b6b7bb, 0x00c5c8e1, 0x0098a2ce, 0x00384e8b, 0x001f3c78, 0x0034518d, 0x004665a2, 0x0033558b, 0x002f4c8b, 0x0032478a, 0x003d508c, 0x004d61a0, 0x00536aa7, 0x00738bc7, 0x007893cc,
- 0x006b88b6, 0x0092a9d5, 0x00858ebe, 0x00636291, 0x008179a8, 0x007f7987, 0x006c626b, 0x00645e72, 0x004f597c, 0x00404b80, 0x00424f93, 0x004a55a5, 0x004d55a8, 0x004b519e, 0x00454690, 0x00434187,
- 0x00383e7a, 0x00414d76, 0x00454f70, 0x002a3850, 0x00182148, 0x00212967, 0x00363b8b, 0x0042449e, 0x003c4881, 0x0039486d, 0x00454e70, 0x005b5b77, 0x0078768b, 0x009891a1, 0x00aea4ac, 0x00b0a4a7,
- 0x00929182, 0x00686759, 0x002b2720, 0x00100d0b, 0x000a0c0c, 0x00322e2a, 0x00bdbbb7, 0x00f9f9fa, 0x00f7fbf7, 0x00f6fdfb, 0x00fcfdff, 0x00f7f5f8, 0x00968d8b, 0x003b2923, 0x00583e37, 0x006c4f44,
- 0x008a573e, 0x00b59b88, 0x00f9f0e9, 0x00fdffff, 0x00fff1f5, 0x00f7c4c8, 0x00b86869, 0x00b95e5d, 0x00dfb6a7, 0x00e6decc, 0x00e6edd9, 0x00b7cbb4, 0x008ea6b6, 0x00a2b8e2, 0x00a8b3ee, 0x00bac0f9,
- 0x00d6d3e3, 0x00eee8f1, 0x00ddcedf, 0x00b6a3c9, 0x006a5a9f, 0x0034246e, 0x001b115d, 0x0058529a, 0x00adb3e8, 0x008089b5, 0x00757aa7, 0x009ba3c2, 0x009ba1b6, 0x00c2c1d5, 0x00fefbff, 0x00fdf9fe,
- 0x00dffbdd, 0x00e2f5f0, 0x00bdc3f6, 0x00a19df0, 0x00c4c9e6, 0x00eff3fc, 0x00e6eafb, 0x00b2afe9, 0x006d6dcb, 0x007379cb, 0x008684d9, 0x007b73d1, 0x00bfc6e3, 0x00e7f2fe, 0x00b6beeb, 0x006975c1,
- 0x002e40a7, 0x00435ab0, 0x00405caa, 0x0033558d, 0x008bb0d9, 0x00deedf5, 0x00fffcff, 0x00fcf8fe, 0x00f6faf9, 0x00f8f7f6, 0x00fdfafa, 0x00fdfdf8, 0x00fdfdf5, 0x00fffefc, 0x00fefdfe, 0x00f8f7ff,
- 0x00f7fbf5, 0x00f4fcf3, 0x00f9fef9, 0x00f8fef7, 0x00f9f7fa, 0x00f5eef8, 0x00f8edfc, 0x00fbeeff, 0x00f1f6f4, 0x00f1fcf2, 0x00fafcfa, 0x00fdf8fe, 0x00f7fffb, 0x00f9fff2, 0x00fefdf1, 0x00fff8f6,
- 0x00f5fbf7, 0x00ebfdf9, 0x00effcf1, 0x00fef4da, 0x00f49d79, 0x00ee7331, 0x00d1653b, 0x00814c73, 0x003956b3, 0x00385ca7, 0x004a68ac, 0x005167a6, 0x004d61cc, 0x004460ca, 0x004561bb, 0x004b659f,
- 0x004a5ebc, 0x004f65bd, 0x005c75c8, 0x006680cc, 0x006b88d2, 0x00718dd5, 0x00758dd3, 0x00778ac8, 0x006e81a5, 0x006c7c94, 0x00b1b7c8, 0x00f7f8f8, 0x00fcfafc, 0x00fdfbfd, 0x00fdf9fe, 0x00fcf9fd,
- 0x00afb3ae, 0x00272f2a, 0x00020b09, 0x0006110f, 0x000c1f19, 0x00121e1b, 0x0012171a, 0x000d1317, 0x00050f0b, 0x0009120d, 0x00111815, 0x001b201e, 0x001b1e1b, 0x00161815, 0x00161614, 0x001c1b17,
- 0x0033290f, 0x00483d2a, 0x005a4e42, 0x00665a54, 0x00605553, 0x004e4446, 0x0030272d, 0x001b1319, 0x00060c05, 0x00040905, 0x000a0e0a, 0x00080f07, 0x00040d09, 0x00030c0e, 0x00060e13, 0x00040915,
- 0x0017242d, 0x004e5665, 0x009898b3, 0x00d8d2ed, 0x00ece2fe, 0x00eee2f0, 0x00efe3ed, 0x00f2eaf2, 0x00efedf4, 0x00eef0f6, 0x00f0edfa, 0x00f4effd, 0x00f6eefc, 0x00f8edf8, 0x00feeefc, 0x00cfc1ce,
- 0x00695d9a, 0x004a5eae, 0x004966c3, 0x004c63c0, 0x005764b6, 0x004c60be, 0x00505fb7, 0x006865a4, 0x00c5aeb0, 0x00f0e9ea, 0x00eae7ef, 0x00ede9f2, 0x00dfdce5, 0x00848289, 0x001f1b1e, 0x001a1813,
- 0x00171a00, 0x0027290a, 0x004f4e28, 0x00767349, 0x009a9867, 0x00ada766, 0x00ada761, 0x00a49b62, 0x00868957, 0x00878766, 0x00c8c6b5, 0x00f7f7f2, 0x00fbfefd, 0x00fafffc, 0x00fbfeff, 0x00f0f2f6,
- 0x00888c88, 0x002f3230, 0x00333335, 0x003a383d, 0x0045404a, 0x00463f4b, 0x004b444f, 0x00504a54, 0x004e494a, 0x00494341, 0x00483c39, 0x004c392b, 0x00593924, 0x0065402c, 0x00674235, 0x007f6462,
- 0x00bcc5d4, 0x00cbe6f8, 0x0080a6e7, 0x005589d7, 0x004884e0, 0x004185e5, 0x003c7fe7, 0x00387ce1, 0x002e75d5, 0x003176d7, 0x003476db, 0x002c6cd2, 0x002463c7, 0x002c6bd0, 0x00306ed6, 0x002764cc,
- 0x002d5cb2, 0x002d5cb7, 0x002c5bbd, 0x002d5ec6, 0x002f63cb, 0x002f61c7, 0x002a57ba, 0x001d45a5, 0x00072a7d, 0x00011f6c, 0x00051c6b, 0x00071c6a, 0x000a1e6b, 0x000c1f69, 0x000f206b, 0x000c1f65,
- 0x00001c56, 0x00051e5a, 0x000a1c5e, 0x0009195b, 0x00031454, 0x0001114e, 0x00071555, 0x000a195c, 0x00021958, 0x0002165a, 0x00071965, 0x00081968, 0x00081966, 0x00081964, 0x00091a65, 0x00091962,
- 0x00001a5d, 0x0001185b, 0x00071960, 0x0006165d, 0x00182568, 0x00414b92, 0x00646fb9, 0x003b4998, 0x00041d67, 0x00051f70, 0x00354794, 0x009ca1de, 0x00dee5ec, 0x00e8ebf4, 0x00cfd2eb, 0x007e82c3,
- 0x000d237a, 0x00011a60, 0x00001450, 0x00030c3f, 0x00171653, 0x000b1a64, 0x00051966, 0x0021356e, 0x00a5b6c8, 0x00eef7fa, 0x00fefcff, 0x00fffcff, 0x00fdfdf9, 0x00f7fff5, 0x00a6b2a3, 0x00435740,
- 0x001e4f14, 0x00274308, 0x005b5923, 0x00a08649, 0x00cb9b55, 0x00c9974c, 0x00ce9951, 0x00ce9a52, 0x00be954a, 0x00bd8f49, 0x00c08f4e, 0x00ad7e39, 0x00825527, 0x00542a0e, 0x00340a08, 0x0062383e,
- 0x00c4b1ab, 0x00e9dcd5, 0x00e5dcd9, 0x00e3dddf, 0x00edecf3, 0x00f9f0fc, 0x00fef5ff, 0x00fcfafe, 0x00e5f9e5, 0x00e1f4e5, 0x00e2f0e9, 0x00ecf4f6, 0x00fff4ff, 0x00fdf1f7, 0x00f9e8ee, 0x00f9e8ea,
- 0x00f6e7d3, 0x00eceee9, 0x00f2f5fe, 0x00ece5e9, 0x00e99251, 0x00db681d, 0x00ed7542, 0x00f7a39b, 0x00f5e7ee, 0x00f8f6ee, 0x00eed3bb, 0x00e0976b, 0x00c47d5e, 0x00e1ab94, 0x00ffe2da, 0x00ffecef,
- 0x00e5edef, 0x00c5d2d3, 0x00c0cbd4, 0x00e7ecf4, 0x00f7eef8, 0x00f8f4fa, 0x00faf7fb, 0x00fff7ff, 0x00f7faef, 0x00f8f9f3, 0x00f9fafa, 0x00f5fcfb, 0x00f6fbf7, 0x00f8fdf2, 0x00e2dac8, 0x00c0ad93,
- 0x0093a55b, 0x008d9a56, 0x008c8d55, 0x00959160, 0x009fa469, 0x0097a662, 0x00849650, 0x0070853f, 0x00445a1f, 0x00233305, 0x00111d02, 0x00051906, 0x004c5851, 0x00c3c7c7, 0x00fcfcfd, 0x00f9f9fe,
- 0x00f1faf3, 0x00eff6ea, 0x00f1f4ed, 0x00fbf6f6, 0x00fef5fe, 0x00fff9fc, 0x00f3f2f4, 0x00ced0d2, 0x00607072, 0x001e2d3b, 0x0013203d, 0x00111943, 0x00191d4c, 0x00202447, 0x003a3b56, 0x007b7b8a,
- 0x00c6cbcd, 0x00cdd0cc, 0x00939490, 0x0045413d, 0x00332f2c, 0x0078777d, 0x006e7081, 0x00434869, 0x00354b7b, 0x001b3470, 0x002c4382, 0x003a4987, 0x00182a64, 0x003e5390, 0x00758dd0, 0x004a62a8,
- 0x00183478, 0x00435c9d, 0x005467a0, 0x00202e57, 0x00455065, 0x00778284, 0x003d4a42, 0x000f1d14, 0x00041c0b, 0x00011a08, 0x00082212, 0x00061e0f, 0x00091f0e, 0x00031604, 0x002c3d2a, 0x009aa993,
- 0x00f7fdf6, 0x00f3faf4, 0x00fcfbfb, 0x00fcfdfe, 0x00f4f8f6, 0x00f3f5f6, 0x00fffcff, 0x00fefeff, 0x00f9fcf6, 0x00f6fcf6, 0x00f0f0f3, 0x009d9ea9, 0x00282e36, 0x00191e20, 0x001d1313, 0x00331a12,
- 0x00663016, 0x00974820, 0x00c46133, 0x00df6f34, 0x00e7762d, 0x00d9692d, 0x00c75625, 0x00b94714, 0x009f4215, 0x00af6f57, 0x00c9a4af, 0x0077779e, 0x00406ab6, 0x00376ec1, 0x00306bc9, 0x00326fc8,
- 0x00506798, 0x009c7597, 0x00f2c7d6, 0x00f1f9e3, 0x00eff6f6, 0x00f0e2f0, 0x00e8e4ef, 0x00d7f2e7, 0x00e2ede0, 0x00eceaef, 0x00f2e9fb, 0x00e9e6f4, 0x00e8e5ed, 0x00edecf2, 0x00f9eefe, 0x00f8e9ff,
- 0x00ebe9f5, 0x00e4e4ed, 0x00b0adb9, 0x007a7983, 0x00737380, 0x00787680, 0x00877a80, 0x00957c7b, 0x00a67862, 0x00b37c64, 0x00c48471, 0x00c38474, 0x00c7897c, 0x00c38477, 0x00b47163, 0x00ab6451,
- 0x0080584b, 0x0075564a, 0x007b675e, 0x00827b6f, 0x00a08d80, 0x00b69087, 0x00c88c86, 0x00d98b86, 0x00d78c74, 0x00cc8467, 0x00c37c61, 0x00b77763, 0x009d6a59, 0x00906959, 0x008d7164, 0x00887870,
- 0x00757f74, 0x006c7974, 0x00677074, 0x005e6770, 0x004f5868, 0x00474d58, 0x004f525b, 0x00585a67, 0x005d626a, 0x00616673, 0x00666776, 0x00666372, 0x0063606c, 0x005a5761, 0x0048464d, 0x0035333a,
- 0x00281e15, 0x002c1f18, 0x004b3a35, 0x00604c47, 0x007f6963, 0x0095807b, 0x00a08d8a, 0x00a18f8e, 0x008e8785, 0x00797574, 0x00635d5f, 0x005d5257, 0x00564c55, 0x0057515b, 0x005f5c67, 0x00666470,
- 0x005b656b, 0x00535c5d, 0x0050565b, 0x00464b4f, 0x003a3b3f, 0x003e3630, 0x0044302a, 0x00432b25, 0x003d2015, 0x0038150c, 0x00370d0b, 0x00320a09, 0x00210b09, 0x00120907, 0x00040003, 0x00020305,
- 0x00000200, 0x00020503, 0x00070609, 0x000b080d, 0x001b1b1d, 0x002f2e32, 0x00535056, 0x005d5a60, 0x00575958, 0x008b8d8e, 0x00f5f5f6, 0x00fefcfe, 0x00fff9ff, 0x00fef9fd, 0x00fcfafe, 0x00cbced5,
- 0x00678990, 0x007199b0, 0x0084a9d4, 0x006185c2, 0x0025448e, 0x001b306d, 0x003b3765, 0x00693d57, 0x008d2d24, 0x00882a17, 0x00923f31, 0x00a06f65, 0x00a7a4a1, 0x00a2a49e, 0x0096928c, 0x0094877e,
- 0x008f9089, 0x00919795, 0x00a7abb3, 0x00b5bcc8, 0x00caccd4, 0x00ccc9cc, 0x00c8c0c1, 0x00c1babc, 0x00afb9ba, 0x00a6b6bd, 0x0096a2ad, 0x008a9191, 0x0091919f, 0x008c8ca0, 0x00948ea8, 0x00b9b3c7,
- 0x00cbd1d0, 0x00cfd9d4, 0x00dbdcdc, 0x00dfe3e3, 0x00e4e8f2, 0x00f1e4e9, 0x00f5e4e8, 0x00ece9e6, 0x00d9f0e0, 0x00d8efe7, 0x00e4f1f4, 0x00ebf1fe, 0x00f6effa, 0x00f5f0f4, 0x00fef3f2, 0x00fcf7ed,
- 0x00f2f8f8, 0x00f3f9f7, 0x00f7f7fd, 0x00f7f7fc, 0x00f5f7fa, 0x00f1f3f6, 0x00f6f3fd, 0x00f6f8ff, 0x00eaf6ef, 0x00eaf4f2, 0x00f3f6fa, 0x00f5f9f6, 0x00fafefe, 0x00f9fbff, 0x00fafaff, 0x00fefaff,
- 0x00f3f3ed, 0x00f5f2ed, 0x00faf6f6, 0x00f6fcfd, 0x00effefe, 0x00f4f4fe, 0x00f8f4fe, 0x00f6f6fa, 0x00e7fbee, 0x00ebfaf1, 0x00f2f8fa, 0x00f6f4fd, 0x00faf1fd, 0x00f8f3ff, 0x00f4f4fe, 0x00f0f8fa,
- 0x00eff5ed, 0x00f1f4ed, 0x00f8f4ee, 0x00f9f5ef, 0x00f6f8fb, 0x00f1f6fa, 0x00f8faff, 0x00f1f0f8, 0x00af9c97, 0x0067493e, 0x00714331, 0x00844d2c, 0x00985f40, 0x009f6848, 0x00a96f51, 0x00ae7656,
- 0x00aa764e, 0x00a9764b, 0x00a9744c, 0x00a76f4a, 0x00a56e47, 0x00a76e46, 0x00ac6e48, 0x00ad6f49, 0x00a47143, 0x00a47245, 0x00aa764c, 0x00ae7a51, 0x00af7e57, 0x00b07f58, 0x00b3805a, 0x00b18059,
- 0x00c2c5dd, 0x005a6198, 0x00415188, 0x0032467f, 0x00323c71, 0x00372d54, 0x0059354f, 0x0096515a, 0x00dd6151, 0x00ee5c42, 0x00f1573b, 0x00f45b49, 0x00da6659, 0x00db8480, 0x00f7c1c2, 0x00f7e3e8,
- 0x00ede7ef, 0x00e4e3ec, 0x00dadde4, 0x00dfdee8, 0x00e9e5ef, 0x00ebe7ed, 0x00e9e5ea, 0x00e9e5ea, 0x00e6e2e7, 0x00e6e1e8, 0x00e4dfe9, 0x00e3dee9, 0x00e0dce5, 0x00dedbe5, 0x00dedae7, 0x00dedae8,
- 0x00dddbe5, 0x00dcdae2, 0x00dad8e3, 0x00d9d7e2, 0x00d8d7e1, 0x00dbd9e7, 0x00d9d7e6, 0x00d5d2e2, 0x00cccad6, 0x00c5c5d3, 0x00bfbfd0, 0x00c3c6d8, 0x00cacbdc, 0x00d0cde0, 0x00d7cfe3, 0x00dad2e6,
- 0x00d1cadc, 0x00c7c0d3, 0x00c9c3d6, 0x00cac8db, 0x00c7c7d9, 0x00c9c7da, 0x00bfbbcf, 0x00a4a3b6, 0x009d99ad, 0x00bcbacb, 0x00e2def1, 0x00dfdcec, 0x00ccccd8, 0x00c9c9d3, 0x00c7c4d1, 0x00bbb8c4,
- 0x00c1bcb8, 0x00c9c7d0, 0x00cecde7, 0x00bec4ee, 0x006677ab, 0x00364d7f, 0x004c6291, 0x006178a7, 0x00445a87, 0x003f5288, 0x00283770, 0x00273773, 0x00314683, 0x0031488b, 0x003a5294, 0x00415b9f,
- 0x00445b9c, 0x004c5e9b, 0x0057649b, 0x008187bb, 0x00b5b6e4, 0x00bcb8ce, 0x00918a98, 0x00736f88, 0x00626b95, 0x005f6aa0, 0x005b68aa, 0x00535fa8, 0x00424c94, 0x003b4385, 0x00424686, 0x004d4f89,
- 0x00555782, 0x004a5273, 0x003f4b66, 0x00304157, 0x00223760, 0x00273876, 0x0036448e, 0x00434a9e, 0x00555e90, 0x006a7392, 0x007b7f93, 0x00898894, 0x00949196, 0x00928d8e, 0x00726b67, 0x00514742,
- 0x002d251d, 0x001e1613, 0x00110c0d, 0x00100e14, 0x000a0b14, 0x00322e2e, 0x00bdbab4, 0x00faf8f8, 0x00fbfffc, 0x00fbfffe, 0x00fbfdfe, 0x00f6f6f9, 0x00978d8b, 0x003d2c26, 0x00594339, 0x006e5246,
- 0x008f5f4f, 0x00c0a69e, 0x00faf5ef, 0x00f8ffff, 0x00fbfaff, 0x00feeef5, 0x00ecb2b8, 0x00c98484, 0x00a07e72, 0x00958d7e, 0x008e9a84, 0x0087a082, 0x00a7bfc3, 0x00b9cbe8, 0x00b8c2ec, 0x00cccef6,
- 0x00e4d8eb, 0x00e8d9eb, 0x0092829b, 0x003c305d, 0x00160c5e, 0x001f1965, 0x00343377, 0x007673b4, 0x007e7eb3, 0x005c5b8d, 0x00b4b5dd, 0x00acafd3, 0x00555b79, 0x009da0bd, 0x00f6fafe, 0x00e5e8fe,
- 0x00bedbeb, 0x00a8bafa, 0x006871e1, 0x004547c6, 0x008792c2, 0x00dee7fc, 0x00abb1e0, 0x004d4da2, 0x00605ec5, 0x00a5aaf5, 0x009297d6, 0x007d7ccb, 0x00c0c6eb, 0x00bac3ec, 0x00505996, 0x00373d97,
- 0x007882e4, 0x009aa7fc, 0x00586bbb, 0x003d588c, 0x00a3c3da, 0x00ebf5ff, 0x00eceaf1, 0x00dddce5, 0x00e5dfe7, 0x00f4eff3, 0x00fdf8f8, 0x00fbf8f3, 0x00faf9f0, 0x00f9f7f2, 0x00f8f5f4, 0x00f8f8f8,
- 0x00f9f3f7, 0x00fcf9f8, 0x00fbfbf5, 0x00fcfff4, 0x00fbfdf7, 0x00f9f7fb, 0x00faf3fe, 0x00faf1ff, 0x00f7f5f8, 0x00fbfbf6, 0x00fbf9f8, 0x00fcfafc, 0x00f2fef7, 0x00f5fff2, 0x00f6fdf0, 0x00fcfaf7,
- 0x00f9fbfb, 0x00f7fcfc, 0x00f7fbee, 0x00fee6c7, 0x00f69165, 0x00e87032, 0x00bd5f39, 0x00724768, 0x00374fac, 0x003a56a3, 0x004862a5, 0x004a5b99, 0x003e53b9, 0x003b54bc, 0x003d58b3, 0x0043599a,
- 0x00475cb0, 0x00566ebc, 0x005976c0, 0x005170b7, 0x004f71bc, 0x005574c4, 0x00607ccc, 0x006b83ce, 0x007887c3, 0x00848fc2, 0x00c7cbea, 0x00faf9fa, 0x00fcfbfc, 0x00fefdfe, 0x00fdfbfe, 0x00f9f8f9,
- 0x009f9fa0, 0x001b1f1e, 0x00050c0a, 0x0006130f, 0x000a1e17, 0x00111f1b, 0x000f1717, 0x000a1313, 0x000a1110, 0x000e1414, 0x000f1513, 0x00151a17, 0x00121512, 0x000a0e09, 0x000c0f09, 0x0012150f,
- 0x003a2b23, 0x00594c46, 0x00736664, 0x007b7070, 0x006d6266, 0x00544c52, 0x0030292e, 0x00181215, 0x000a0a07, 0x00090a07, 0x000a0c0b, 0x00090e0b, 0x00050c0a, 0x00020b0b, 0x00060f10, 0x00010a0e,
- 0x00222b32, 0x00717684, 0x00c8c8db, 0x00ece8fb, 0x00e6dff4, 0x00ede3ee, 0x00f0e6eb, 0x00efe8f1, 0x00f2eef6, 0x00f3f0fa, 0x00efedfa, 0x00f3effc, 0x00f4eef9, 0x00f9edf7, 0x00fdedfa, 0x00cdbcc8,
- 0x006c60a1, 0x004e5fb3, 0x004a67c5, 0x004c65c1, 0x005662b5, 0x004b60bc, 0x004e5eb4, 0x006762a1, 0x00ccafb5, 0x00f7ebf0, 0x00eae6ee, 0x00eeeaf3, 0x00e0d7de, 0x0085797e, 0x002f1d1f, 0x0037201f,
- 0x003e2d1b, 0x004d3f26, 0x006d5f3e, 0x00877d56, 0x009c986a, 0x00a4a265, 0x00a5a563, 0x00a1a167, 0x008c8d62, 0x00919374, 0x00d3d4bf, 0x00f9fbf0, 0x00fcfefb, 0x00f9fcf8, 0x00fbfffb, 0x00e2e8e3,
- 0x00787574, 0x002f2b2b, 0x00332e30, 0x003c353a, 0x00463c45, 0x00463b44, 0x004b3f47, 0x0052454c, 0x00584c4b, 0x00574a48, 0x0052433d, 0x005a4534, 0x0061432d, 0x00694734, 0x006d4e43, 0x00927c7e,
- 0x00ced8f4, 0x00b6d0f9, 0x006691d7, 0x004f89dc, 0x004988e3, 0x003f85e3, 0x003a80e3, 0x00377cdd, 0x003377da, 0x003377d9, 0x003375da, 0x003072d7, 0x002667ca, 0x002463c8, 0x002e6cd3, 0x002b69d0,
- 0x002f5fbb, 0x002c5dbc, 0x00295dc1, 0x002b63ca, 0x002a65ce, 0x002963c9, 0x002a5fc2, 0x002a5abb, 0x002049a0, 0x000f3284, 0x00042073, 0x00041d6e, 0x00051c6c, 0x00051c6a, 0x00071e6b, 0x00051d67,
- 0x0004175e, 0x00091a60, 0x000c1a60, 0x000b195a, 0x00061452, 0x00011047, 0x00021249, 0x00061750, 0x00091a5c, 0x000a1b60, 0x000a1964, 0x00091966, 0x00091966, 0x000a1a65, 0x000a1963, 0x00091760,
- 0x00061b5d, 0x00091d5d, 0x00081a59, 0x00061755, 0x00283870, 0x005d6aa5, 0x006f7bb8, 0x00515ea0, 0x0013256d, 0x00021464, 0x00415195, 0x00b1b9e2, 0x00d2d9e9, 0x00dfe5f6, 0x00a3a9d3, 0x003c438f,
- 0x000a1c76, 0x00071d6b, 0x00001557, 0x00081556, 0x00181c6f, 0x000f1e77, 0x0006196a, 0x00394b88, 0x00cad3e4, 0x00f6f9fc, 0x00fffdfb, 0x00fffefb, 0x00fbfff4, 0x00eef8e9, 0x0093a58f, 0x00466042,
- 0x003e612a, 0x00485b20, 0x00787237, 0x00af9251, 0x00cc9a52, 0x00cf9b4f, 0x00d29f54, 0x00d0a157, 0x00c69a52, 0x00be8f4f, 0x00b68646, 0x00a77c37, 0x00906538, 0x005b3318, 0x00280300, 0x005b3a3d,
- 0x00ceb8b8, 0x00e4d5d4, 0x00e1d7d9, 0x00e8e0e5, 0x00f2f0f8, 0x00fbf8ff, 0x00f9f7fb, 0x00f6f3f4, 0x00ecece8, 0x00e8eeef, 0x00ecf4f7, 0x00f0f9fe, 0x00fbf6fe, 0x00fce2e5, 0x00deada8, 0x00d9988f,
- 0x00e1b8b1, 0x00e2e7ed, 0x00e8fafd, 0x00e2e2e1, 0x00ed7643, 0x00ea5820, 0x00ec6e44, 0x00edae99, 0x00faf8f3, 0x00fce6dc, 0x00c8a189, 0x00bd7956, 0x00d0997e, 0x00f8d1bf, 0x00fbebe3, 0x00f6ebee,
- 0x00dee7ef, 0x009aa4b0, 0x0088909e, 0x00dfe1ee, 0x00f9f3fb, 0x00f4f7fc, 0x00f5fbfe, 0x00faf9fe, 0x00fcf9fa, 0x00fdfafa, 0x00fcf7fb, 0x00fbf8fd, 0x00f8faf9, 0x00fefdf4, 0x00f3ead7, 0x00cbb89e,
- 0x0086995f, 0x007e8d55, 0x007b8450, 0x008c8f5c, 0x009a9e60, 0x00949e58, 0x00818f49, 0x006e7b39, 0x003e4e1f, 0x001e2a0d, 0x000d1e04, 0x000c2005, 0x004d594f, 0x00c1c7cb, 0x00fffffe, 0x00faf9ff,
- 0x00f3f8e6, 0x00eaefd7, 0x00e6ebd2, 0x00eff1e6, 0x00f9f5fd, 0x00fbf9ff, 0x00fbfcfe, 0x00fafbfb, 0x00d5d8d6, 0x009a9ba0, 0x0062616f, 0x00595872, 0x00494867, 0x00525267, 0x009c9dac, 0x00d5d8df,
- 0x00dcdcef, 0x00d8d7e3, 0x00a9a7aa, 0x0047433c, 0x00373327, 0x00757471, 0x005e6169, 0x00373e58, 0x00425188, 0x00324589, 0x0014266a, 0x00293572, 0x0013255d, 0x002a4179, 0x00637fbb, 0x00365292,
- 0x000b246b, 0x00334a8b, 0x00485a90, 0x00435175, 0x00798694, 0x00697573, 0x00112015, 0x000d1c12, 0x00091e0e, 0x0009200f, 0x000a2112, 0x000a1f11, 0x00071b0a, 0x00051705, 0x00475746, 0x00bac8b5,
- 0x00fdfdfb, 0x00fdfefc, 0x00fbf9fa, 0x00fdfdfe, 0x00f7f8f7, 0x00f4f6f5, 0x00fbfafc, 0x00fcffff, 0x00fdfefd, 0x00fbfdfd, 0x00f5f4fa, 0x00aeafb9, 0x002e3639, 0x001d2320, 0x00201914, 0x002c160d,
- 0x00652a13, 0x00964324, 0x00c25e34, 0x00db6d35, 0x00e67433, 0x00de6b2f, 0x00cc571d, 0x00be4811, 0x00a54114, 0x00b26850, 0x00cc9ea2, 0x00857c9c, 0x004263a5, 0x00396bb7, 0x00346ec3, 0x002f6cc1,
- 0x004b6da7, 0x008c6892, 0x00e0b4bf, 0x00f4f7de, 0x00e2fdec, 0x00e7f3f4, 0x00e6f0ef, 0x00ddf0e5, 0x00ede2e4, 0x00f0e2f7, 0x00f1e7fe, 0x00f4f1fa, 0x00eee9f0, 0x00e9e4ed, 0x00ebe7ef, 0x00f1ecf3,
- 0x00f3f0f4, 0x00f9f4fb, 0x00d0ccd2, 0x008b8891, 0x006e6a73, 0x007f7377, 0x00947d7b, 0x00a88478, 0x00c0856b, 0x00ca856c, 0x00cc816d, 0x00c57e6e, 0x00bb7e72, 0x00af7667, 0x00935e4a, 0x00804e33,
- 0x006f4440, 0x00745049, 0x0082695e, 0x00958371, 0x00b09580, 0x00c29884, 0x00ce9485, 0x00d79284, 0x00cf917d, 0x00be856d, 0x00a5715a, 0x00946752, 0x00835d4a, 0x00856553, 0x008a7262, 0x00867467,
- 0x00807d76, 0x00767775, 0x00666c6d, 0x00586466, 0x0047585d, 0x004a5359, 0x00585c62, 0x00626670, 0x00636573, 0x00636371, 0x00646473, 0x005d5e6a, 0x004e4e57, 0x00424047, 0x00353339, 0x002d2c30,
- 0x00332422, 0x00392b28, 0x00503f3b, 0x0067534e, 0x00867169, 0x0099847c, 0x00a39089, 0x00a4948e, 0x009a8f8c, 0x008c8280, 0x00746a6a, 0x00655a5c, 0x0061585c, 0x005a565c, 0x005c5c62, 0x0061636a,
- 0x005d646b, 0x00575e62, 0x004a4e55, 0x003b3f44, 0x0026282d, 0x001c1814, 0x001b0d08, 0x001b0a06, 0x00220301, 0x00250201, 0x00250000, 0x002b0705, 0x00250e0b, 0x00130805, 0x00020000, 0x00000301,
- 0x00020103, 0x00050506, 0x000a080b, 0x001c1b1f, 0x00494a4b, 0x006d6e70, 0x0079787d, 0x00656468, 0x004a4a4c, 0x00808083, 0x00f4f2f5, 0x00fffdff, 0x00fef9fe, 0x00fffbfd, 0x00fbfafc, 0x00d4d8dc,
- 0x006c8691, 0x00708fa4, 0x00a3c6e5, 0x0098bce6, 0x005a76af, 0x002d3e81, 0x00282864, 0x0041274c, 0x006c2929, 0x006f261e, 0x006b251a, 0x006f3a36, 0x0082726d, 0x00938b84, 0x00999686, 0x009d9a82,
- 0x00909099, 0x00818790, 0x00777e8a, 0x007f8994, 0x00a2a6ab, 0x00b8b7b6, 0x00bcb8b5, 0x00b9b5b5, 0x00a3acb6, 0x008794a9, 0x00606f84, 0x00515b69, 0x00494f66, 0x00474a69, 0x00505372, 0x008b8ca7,
- 0x00c1c4cf, 0x00dadbe0, 0x00dcdcdc, 0x00dfdedf, 0x00e0e4eb, 0x00f3dbe7, 0x00f7dde3, 0x00eae1e0, 0x00dcede1, 0x00dbf1e9, 0x00ddf3ed, 0x00e4f1f9, 0x00f1eff8, 0x00f3f0f9, 0x00f6f2f6, 0x00faf6f4,
- 0x00e8fdfe, 0x00eafdff, 0x00e7fafe, 0x00e5f9fb, 0x00e9f6fb, 0x00edf7fa, 0x00f1f6fc, 0x00eff6fb, 0x00ecf4f8, 0x00f0f5fd, 0x00f3f8fa, 0x00f4f9f7, 0x00f9fcfd, 0x00fafdfe, 0x00faf8fd, 0x00fcf8fb,
- 0x00f6f3f2, 0x00fbf6f3, 0x00fef9f8, 0x00fafbfd, 0x00f2fcf7, 0x00f5f5f9, 0x00f6f6fd, 0x00f4f9fb, 0x00edfcf9, 0x00f0fcfc, 0x00f3f9ff, 0x00f4f5fb, 0x00f7f2fa, 0x00f3f3fa, 0x00f0f5fa, 0x00ebf8f5,
- 0x00f3f5f5, 0x00faf8f7, 0x00f9f6f0, 0x00fbf8ee, 0x00f2f5f0, 0x00ebf3f5, 0x00f0f2f9, 0x00f8f8ff, 0x00ccbbba, 0x007c605a, 0x006f4536, 0x00834e32, 0x00935e41, 0x009d694d, 0x00a67054, 0x00ac7858,
- 0x00ad7957, 0x00ac7855, 0x00a87452, 0x00a26f4e, 0x00a06b49, 0x00a06845, 0x00a06743, 0x00a16742, 0x00a56c47, 0x00a9714b, 0x00ae7650, 0x00ae7751, 0x00ae7b53, 0x00b07e56, 0x00b38059, 0x00b28059,
- 0x00bfbadf, 0x00504f96, 0x003c4887, 0x00394c8b, 0x0020427d, 0x00344b84, 0x004c4f7c, 0x00634867, 0x00ac4c49, 0x00db5c43, 0x00f55e40, 0x00f55e40, 0x00ec6051, 0x00d7635a, 0x00e48789, 0x00f3c1c7,
- 0x00efe6f0, 0x00dfe3ed, 0x00d8dfe8, 0x00dce0e8, 0x00eedfed, 0x00e8e4ea, 0x00e9e6ec, 0x00e5e3e7, 0x00e5e1e9, 0x00e4e0e7, 0x00e2dee7, 0x00e1dde7, 0x00e0dbe5, 0x00dfdbe6, 0x00ddd9e5, 0x00dcd8e4,
- 0x00dcd9e6, 0x00dad9e3, 0x00d9d7e3, 0x00d8d6e3, 0x00d7d5e2, 0x00d8d5e4, 0x00d4d2e2, 0x00ceccdc, 0x00c8c4d4, 0x00c3bfd0, 0x00c5c3d4, 0x00c7c9d3, 0x00cecada, 0x00d0cbdb, 0x00d8d0e4, 0x00d4cce0,
- 0x00c0b8cf, 0x00bdb5cc, 0x00cdc6dd, 0x00cfcbdf, 0x00cbc9dc, 0x00c5c2d5, 0x00aba7ba, 0x009896a8, 0x00b2afc2, 0x00d3d1e1, 0x00e1def1, 0x00d9d6e5, 0x00cdcad9, 0x00cfccd8, 0x00cecbd8, 0x00c3c3cd,
- 0x00cbc2c9, 0x00cec8d7, 0x00c8c3e2, 0x00898ab3, 0x00434d7b, 0x005c6991, 0x0099a3ca, 0x00acb8da, 0x00959ebf, 0x00848bb5, 0x006a709b, 0x005d6794, 0x00505f92, 0x00445591, 0x003b4f8d, 0x002d4486,
- 0x0022387e, 0x001e306c, 0x0052649a, 0x00a4aede, 0x00c4ccf3, 0x00cacae7, 0x00b1b1c7, 0x00898ca9, 0x00686f9e, 0x005b649b, 0x00505c9b, 0x00445093, 0x00414c8c, 0x00434c86, 0x00434980, 0x00424678,
- 0x00343251, 0x00222741, 0x0024334a, 0x002b3e57, 0x00274674, 0x002b4184, 0x00374a95, 0x00414b9b, 0x00606595, 0x007c7d96, 0x00807d88, 0x00726b69, 0x00615a53, 0x0050473e, 0x00332b21, 0x001c140a,
- 0x00120a03, 0x000e0805, 0x00130f12, 0x00100c16, 0x00070414, 0x00322b30, 0x00beb9b7, 0x00f7f4f6, 0x00fcfefe, 0x00fcfeff, 0x00fdfefe, 0x00f6f7f8, 0x00998f8c, 0x00403028, 0x005c493d, 0x00735949,
- 0x00906f67, 0x00c1b5b0, 0x00fafbfc, 0x00edfefc, 0x00f9fdfd, 0x00f8f1f5, 0x00fce9ed, 0x00edccca, 0x00907f6d, 0x0050513a, 0x00475a3d, 0x006a8867, 0x00a1bbb7, 0x00abbdce, 0x00bfcce6, 0x00d7d9f0,
- 0x00ede0e7, 0x00d6c8d3, 0x006e607a, 0x002c2652, 0x005d5fb3, 0x006a6fb6, 0x003d4384, 0x00363973, 0x00625f94, 0x00a09ac5, 0x00cbc5ec, 0x00747095, 0x002c2c50, 0x009ea2c9, 0x00dae2f9, 0x00949ecd,
- 0x005369cc, 0x005264df, 0x00434fde, 0x004955d6, 0x00a3b0e7, 0x00c9d6fb, 0x00545aa0, 0x00313393, 0x008589df, 0x0095a0cf, 0x008c97bb, 0x00bcc3ea, 0x00c4c9f1, 0x00686daa, 0x005d61ad, 0x009699e7,
- 0x00b4b5fc, 0x008082e8, 0x003e45ae, 0x00717dc6, 0x00c3d9ea, 0x00bac1d2, 0x00b3b1c3, 0x00c3c0cd, 0x00c5bcc5, 0x00cdc7cb, 0x00d5cfcc, 0x00d9d1cd, 0x00dcd5d4, 0x00bab4b5, 0x00918d8b, 0x008a8888,
- 0x00bcb0bd, 0x00e1d9dd, 0x00fbf4f2, 0x00fdfcf0, 0x00fbfdf4, 0x00f7fcf7, 0x00fdfbfd, 0x00fdfbfe, 0x00fffbfe, 0x00fcf6f3, 0x00fdf7f6, 0x00fafcfb, 0x00f3fdf8, 0x00f4fef6, 0x00f7fdf6, 0x00fefcfc,
- 0x00fdfcff, 0x00fcfbfa, 0x00fff4ea, 0x00ffcfb1, 0x00f57c4b, 0x00dd6b34, 0x00a45134, 0x005e3857, 0x002f449a, 0x002c428c, 0x00384b8f, 0x003d4887, 0x003144a5, 0x003147ab, 0x003a4fab, 0x0044519a,
- 0x00485eb0, 0x004c67b1, 0x004a6bb0, 0x00466aad, 0x004e74c0, 0x005576ce, 0x005876d2, 0x005a73cc, 0x006675c8, 0x007b89cf, 0x00c7cef7, 0x00fafaf9, 0x00fbfcfb, 0x00fefdff, 0x00fefdfe, 0x00f4f3f7,
- 0x00898a8c, 0x00121614, 0x0008110c, 0x0006140e, 0x000c1f19, 0x00101c1a, 0x0011181a, 0x000b1313, 0x000b1111, 0x000c1212, 0x000e1412, 0x000e130f, 0x000b0f0b, 0x00040703, 0x00090c06, 0x00131511,
- 0x0046373c, 0x006c5e62, 0x008b7f83, 0x008c8287, 0x00716870, 0x00504852, 0x00282129, 0x00110a0f, 0x000b0807, 0x00090904, 0x00090a08, 0x00070a09, 0x00050a08, 0x00020808, 0x00050c0d, 0x00000808,
- 0x00292f35, 0x00969aa2, 0x00e6e7f2, 0x00ebe9f6, 0x00e6e1f0, 0x00eee6ef, 0x00efe6ed, 0x00f2eaf2, 0x00f4eff9, 0x00f5f1fb, 0x00f2edfc, 0x00f5edfa, 0x00f5edf8, 0x00fcedf6, 0x00fceef8, 0x00cdbac2,
- 0x006d5ea2, 0x004d5db3, 0x004865c3, 0x004c64bf, 0x005462b3, 0x004c61bd, 0x00505eb5, 0x006862a1, 0x00cfaeb3, 0x00faebee, 0x00eee9f1, 0x00f0ebf5, 0x00e1d2db, 0x00886f74, 0x00432123, 0x00552d2a,
- 0x00653a30, 0x006b4935, 0x007d6547, 0x008a7c58, 0x00918f65, 0x00919461, 0x0090965e, 0x008b8e5b, 0x00777c57, 0x00898f6f, 0x00dde2cc, 0x00fafdf1, 0x00fdfef7, 0x00fafaf4, 0x00fcfef8, 0x00d8ddd3,
- 0x006a5d5a, 0x00332624, 0x003f3132, 0x0044363a, 0x004e3d45, 0x00513e47, 0x00544048, 0x005a464d, 0x00604d4e, 0x005f4d4b, 0x005e4841, 0x00664c39, 0x00704e39, 0x006f4f3d, 0x007a5f57, 0x00a99ba2,
- 0x00c4d2f9, 0x008fb2ea, 0x00598dd8, 0x004f8de3, 0x004486e3, 0x003f84e4, 0x003c80e4, 0x00367cdf, 0x003578dd, 0x003275d9, 0x003174d7, 0x002f70d5, 0x002b6acf, 0x002564c9, 0x002463c9, 0x002a6bce,
- 0x003067c8, 0x002961c3, 0x002863c7, 0x002a68cf, 0x002968d1, 0x002461c9, 0x00235dc2, 0x00275ec0, 0x002e5eb7, 0x001f4ca2, 0x0010348d, 0x00092780, 0x00011b73, 0x00011c6f, 0x00051e6e, 0x00081f6c,
- 0x000b1b68, 0x000b1b63, 0x000d1c5f, 0x000d1a5a, 0x000b1757, 0x0005144c, 0x00001248, 0x0003144e, 0x00091758, 0x000d1b5e, 0x000b1960, 0x000c1963, 0x000b1765, 0x000c1866, 0x000b1864, 0x000a1864,
- 0x00081c60, 0x00081b5a, 0x00081a55, 0x0007174f, 0x003f4d7f, 0x006d78ad, 0x004f5990, 0x00535e9a, 0x00364285, 0x00031057, 0x003c4b88, 0x00a5b2cc, 0x00cdd4ee, 0x00d0d4fb, 0x006f73ac, 0x001e2479,
- 0x000c1e76, 0x00051d6a, 0x00081f6a, 0x000e1f73, 0x001c1f8f, 0x00111d84, 0x00121e76, 0x005663a3, 0x00e1e4f8, 0x00f8f9fb, 0x00fffefa, 0x00fffdf1, 0x00f9fff0, 0x00e2efd8, 0x00859a7f, 0x00536c4b,
- 0x00556d31, 0x005b6627, 0x00877c3e, 0x00b0904f, 0x00cc9752, 0x00d6a159, 0x00d9a65e, 0x00d7ab61, 0x00d2a563, 0x00c6985a, 0x00b78b4c, 0x00a57d37, 0x0093693e, 0x005b331a, 0x0036130d, 0x00795b5b,
- 0x00d7c2c6, 0x00decfd1, 0x00e4dbdf, 0x00f1ecf2, 0x00f5f4fe, 0x00f5f6fb, 0x00f3f2f5, 0x00f4e9ee, 0x00f5e6ef, 0x00efeef6, 0x00f3f8fe, 0x00ecf9fd, 0x00f9f7f6, 0x00fed8d5, 0x00b57366, 0x009b3928,
- 0x00ab6a6d, 0x00c5c6c9, 0x00ebfbf9, 0x00dad9d1, 0x00f25c39, 0x00f8542b, 0x00ee7149, 0x00ecbda1, 0x00f9f5e8, 0x00debfa9, 0x00ad775d, 0x00b67f62, 0x00eabea9, 0x00fce1d4, 0x00f8e8e7, 0x00f2f0f6,
- 0x00cdd6e6, 0x006d7689, 0x0040455c, 0x00a7a5bf, 0x00f3eefe, 0x00f2fbff, 0x00effcfc, 0x00f8fafe, 0x00fff7ff, 0x00fef6fc, 0x00fff7fe, 0x00fff6fe, 0x00fefafc, 0x00fdf8f3, 0x00f9f6e4, 0x00d3c7ae,
- 0x0072865b, 0x005e7144, 0x005d6c3d, 0x00757f4a, 0x008e9252, 0x0091954f, 0x00858c48, 0x006e7438, 0x003a4421, 0x0019250b, 0x000f210a, 0x000f2600, 0x0057635c, 0x00c4c9d0, 0x00fcfbfd, 0x00f3eff5,
- 0x00e2dfc0, 0x00e3e7bd, 0x00ebeec8, 0x00e7ebd7, 0x00e4e3f2, 0x00e9ebf6, 0x00f3f9ff, 0x00f6f7f6, 0x00f9f9f2, 0x00f2eee8, 0x00dbd2d1, 0x00cbc1ca, 0x00a59bac, 0x009c97a3, 0x00e1e1ea, 0x00ebeff1,
- 0x00eae5ff, 0x00e5e0f6, 0x00afabb4, 0x00423d37, 0x00373222, 0x006b6a61, 0x00585b5e, 0x00323a51, 0x0044508a, 0x003f4e98, 0x000c1b64, 0x00253069, 0x00273670, 0x0020356b, 0x0039528e, 0x002d4788,
- 0x00192f77, 0x001c3171, 0x003a4a7e, 0x00637090, 0x0088929d, 0x0049544d, 0x00091507, 0x000f1c0e, 0x000d1c0d, 0x000c1f0d, 0x000b200f, 0x000a1f0f, 0x000a1d0d, 0x000a1a0c, 0x00657166, 0x00d6dfd5,
- 0x00fdfcfc, 0x00fcfefc, 0x00fafbfa, 0x00fdfefd, 0x00e9e7e6, 0x00dfdbdc, 0x00f7f2f5, 0x00fefdfd, 0x00fbfbf9, 0x00fbfdfd, 0x00f8f8fd, 0x00b7bac2, 0x00373e41, 0x00202522, 0x00211a15, 0x002c160d,
- 0x00662718, 0x00943f25, 0x00be5833, 0x00d86637, 0x00e67136, 0x00e56d32, 0x00ce561b, 0x00bc4911, 0x00a73f15, 0x00b2644c, 0x00deaaaa, 0x00a290a9, 0x005066a2, 0x00406ab2, 0x003c70c3, 0x00346fc6,
- 0x004372b7, 0x007a6692, 0x00cba1af, 0x00f4ebd4, 0x00e4feed, 0x00e4fdf6, 0x00ebfdf8, 0x00eef8f0, 0x00fce5f2, 0x00f2e3f8, 0x00efe3f9, 0x00f4ecef, 0x00faf3fe, 0x00f5f0f5, 0x00f3ecee, 0x00f1f1e8,
- 0x00efeae5, 0x00faf5f6, 0x00ece6ec, 0x00b1acb4, 0x007c7075, 0x0087726c, 0x009f7c71, 0x00b88772, 0x00d3876d, 0x00d4846c, 0x00d0806e, 0x00c47b6f, 0x00a76e67, 0x008d5c52, 0x006f4635, 0x005d3a23,
- 0x006b3f3f, 0x0076534c, 0x0089685b, 0x009d7d6b, 0x00b78d77, 0x00c8957e, 0x00ce9581, 0x00cd9480, 0x00b98775, 0x00a27865, 0x00896854, 0x00785e47, 0x00755b46, 0x007f6553, 0x00886e5f, 0x00866c60,
- 0x0082726e, 0x00756c68, 0x00606160, 0x00515b57, 0x00425855, 0x004c5659, 0x005a5f68, 0x00636872, 0x00636573, 0x0061616c, 0x0060606d, 0x005a5a68, 0x004a4853, 0x00414047, 0x00414144, 0x00444545,
- 0x00534046, 0x00564245, 0x005f4948, 0x006f5853, 0x00897269, 0x00988277, 0x00a38d83, 0x00a9948a, 0x00a4968d, 0x009b8e84, 0x00847971, 0x00716762, 0x00675f5e, 0x00605c5c, 0x005d5d5f, 0x005b5d61,
- 0x00555964, 0x004c525a, 0x0040444d, 0x00383b42, 0x0020222a, 0x000d0c0a, 0x000a0300, 0x000d0100, 0x00170001, 0x001d0100, 0x00270505, 0x00320f0f, 0x00271011, 0x00120503, 0x00040000, 0x00000200,
- 0x00030206, 0x00060609, 0x001a191c, 0x003f3f41, 0x00818283, 0x00a5a5a6, 0x00a1a0a3, 0x007f7f82, 0x00565659, 0x0076777a, 0x00eaeaec, 0x00fdfdff, 0x00fefafe, 0x00fefafc, 0x00fcfafb, 0x00dfe1e4,
- 0x00768c93, 0x00546e79, 0x008ba8b7, 0x00a3bed6, 0x009bacd2, 0x006e74ad, 0x0049477a, 0x00473958, 0x006d403b, 0x00774437, 0x00743a33, 0x00622c2b, 0x005f3b45, 0x00705c5f, 0x007c7572, 0x007b8170,
- 0x0076728b, 0x005e6378, 0x00464e5f, 0x003a4751, 0x005f6366, 0x008f8e8a, 0x00aca7a3, 0x00ada8a8, 0x008e93a7, 0x006a7695, 0x00445677, 0x00293d57, 0x0018284c, 0x00121a46, 0x00232f57, 0x00586184,
- 0x00b2b7cd, 0x00dbdee6, 0x00dadcde, 0x00dad9d9, 0x00e0dde5, 0x00edd7e3, 0x00f3dae8, 0x00efe5e8, 0x00e4f1e7, 0x00dff6ea, 0x00e2f5ed, 0x00e6f4ed, 0x00f2f7ff, 0x00eef3fc, 0x00e8ecfd, 0x00e5ebfe,
- 0x00c2f1fa, 0x00b8e4ec, 0x00b0d6de, 0x00badae0, 0x00dbf0f9, 0x00ecfbff, 0x00f0fafc, 0x00eefafd, 0x00e6f0fe, 0x00dde6fa, 0x00dfeafa, 0x00eaf4f4, 0x00f9fefc, 0x00fafbfb, 0x00faf7f9, 0x00f8f5f7,
- 0x00f8f2f2, 0x00fdfaf9, 0x00fefcfb, 0x00fbfbf8, 0x00f6f9f4, 0x00f7f3f7, 0x00f5f4fc, 0x00f4f9ff, 0x00edfbff, 0x00effbfe, 0x00f2f7fd, 0x00f3f2f9, 0x00f6f1f7, 0x00f4f4f7, 0x00f0f6f8, 0x00ebfaf9,
- 0x00f4f8fb, 0x00f7f7f5, 0x00f9f6f1, 0x00f7f2ea, 0x00edeee9, 0x00e6eeeb, 0x00ebf0f3, 0x00f3f8fb, 0x00dcd1d2, 0x008b7772, 0x00664238, 0x007d4a34, 0x008e5b45, 0x0098664f, 0x00a16e58, 0x00a57359,
- 0x00a7755b, 0x00a67559, 0x00a27256, 0x009d6c50, 0x009a674a, 0x009a6244, 0x009b5f40, 0x00995e3e, 0x009d6544, 0x00a46c4b, 0x00a97150, 0x00a97250, 0x00ac7855, 0x00af7b57, 0x00b17d58, 0x00b27f59,
- 0x00b2bedd, 0x00414891, 0x00475495, 0x00465594, 0x001a4185, 0x002c59a8, 0x00496bb8, 0x00455595, 0x00743f53, 0x00b45954, 0x00dd634a, 0x00f05c3b, 0x00f5543e, 0x00e95449, 0x00d75250, 0x00e2858a,
- 0x00ebd6dd, 0x00dadde6, 0x00d0e0e4, 0x00d7e2e7, 0x00f2dee7, 0x00ede3ea, 0x00e6e3e7, 0x00e3e2e7, 0x00e4dfe7, 0x00e2dfe7, 0x00e0dde5, 0x00e0dce5, 0x00e0dbe6, 0x00dfdae6, 0x00dcd7e4, 0x00dbd7e3,
- 0x00dcd9e5, 0x00dad8e5, 0x00d8d6e3, 0x00d7d5e3, 0x00d7d4e2, 0x00d7d4e2, 0x00cfccdc, 0x00c5c3d4, 0x00c2bfd1, 0x00c5c2d5, 0x00c6c4d4, 0x00c9c6cd, 0x00cecbd8, 0x00d6cede, 0x00d6cde2, 0x00c7bfd6,
- 0x009b96af, 0x00a29db7, 0x00cac4dd, 0x00cec9e0, 0x00b8b2ca, 0x00ada9bd, 0x009c99ab, 0x009a97a9, 0x00c6c4d3, 0x00e0deee, 0x00d8d6e6, 0x00d5d3e4, 0x00d3d1df, 0x00d0cddc, 0x00cdcbd7, 0x00cdcad7,
- 0x00cfc8d4, 0x00cec8dc, 0x009c96b4, 0x003f3d64, 0x001b1e41, 0x00656b87, 0x00b8bcd2, 0x00b9bdcf, 0x00b8b9cc, 0x00bab6d4, 0x00b8b6ca, 0x00adb4b7, 0x0098a3b2, 0x008391aa, 0x007687a7, 0x005b6f96,
- 0x00455381, 0x00334066, 0x004e5e78, 0x009eabbc, 0x00bcc9ce, 0x00c2c7df, 0x00b4b8d8, 0x008e94bb, 0x00575e8e, 0x00424b81, 0x003c467f, 0x0037427a, 0x00374174, 0x00343d68, 0x00282e55, 0x00191f43,
- 0x00191627, 0x00212539, 0x003a4864, 0x003c5077, 0x00234682, 0x0027438f, 0x00354c9a, 0x003a4893, 0x004b4973, 0x00574f66, 0x004d4347, 0x004c403d, 0x00443931, 0x003a2f27, 0x002a2216, 0x00241d12,
- 0x00181208, 0x00100805, 0x000e0a06, 0x000d090b, 0x00080409, 0x003d3738, 0x00c8c3be, 0x00fbf7f8, 0x00fafdfc, 0x00fbfdfd, 0x00fbfdfc, 0x00f5f6f6, 0x0099908c, 0x003f3128, 0x005e4c3f, 0x00745c4b,
- 0x0088827c, 0x00b9c4bc, 0x00effefe, 0x00e7fdfd, 0x00eafefe, 0x00ecf9f8, 0x00f1f7f1, 0x00eeebdb, 0x00a9af8f, 0x0070815c, 0x006e8762, 0x0089a082, 0x009fb4a8, 0x00b9c7c8, 0x00ced5d8, 0x00dad5d6,
- 0x00dcc8bd, 0x00dac8c2, 0x00a99d9d, 0x0074738a, 0x007481b8, 0x006371ac, 0x001d2661, 0x003a3e72, 0x009a95c1, 0x00e3dbf9, 0x00b9add3, 0x004f476d, 0x004f4d7c, 0x00b4bae6, 0x00a1ace1, 0x003d4e8b,
- 0x00263ee7, 0x004762e0, 0x003f5cb3, 0x007090c1, 0x00cfe8fc, 0x00a4b2f2, 0x00232b85, 0x002b3090, 0x008394bc, 0x009bb1b7, 0x00cde0d8, 0x00dbe8f2, 0x008188b9, 0x00434684, 0x00a3a6e3, 0x00c9d0fa,
- 0x009392e8, 0x006a64d2, 0x003f3bac, 0x00605dbc, 0x00979ebe, 0x008785a5, 0x009493ab, 0x00c2c0d1, 0x00bcb5bb, 0x00bbb5b6, 0x00b9b2b1, 0x00c9c1c6, 0x00b4aab3, 0x00665d67, 0x00171218, 0x00110e0f,
- 0x004f4351, 0x009b8d95, 0x00d1c6c3, 0x00e7ded4, 0x00eef0e1, 0x00f0f4ee, 0x00f3f5f4, 0x00f4f6f9, 0x00f8f1f6, 0x00fae9ec, 0x00f4e7e7, 0x00eeeee8, 0x00ebefe9, 0x00eef2ee, 0x00f0f4f2, 0x00f3f3f8,
- 0x00f3e9f4, 0x00f8dfe4, 0x00f6cec0, 0x00ee9b7b, 0x00e05925, 0x00bd4e24, 0x00773121, 0x00371b37, 0x001d3076, 0x00202d70, 0x00273170, 0x00313270, 0x0025368d, 0x00293a98, 0x0034449d, 0x00454b98,
- 0x00445dab, 0x004260a9, 0x004266ac, 0x00456ab2, 0x00466dc1, 0x004c6fcf, 0x005373d7, 0x005671d3, 0x00596cc1, 0x007688d4, 0x00cedafb, 0x00fbfbfc, 0x00f9fcf7, 0x00fefefd, 0x00fbfbfa, 0x00ecebed,
- 0x006e7272, 0x00101511, 0x00050f0a, 0x00071710, 0x000e1f1a, 0x00101b1a, 0x0010181a, 0x000f1415, 0x000b1312, 0x000c1312, 0x000d1311, 0x000d120e, 0x00090c09, 0x00010400, 0x00090a06, 0x00131410,
- 0x004c3f4f, 0x00796d7b, 0x009a8f9c, 0x009a909e, 0x00736b79, 0x0049414e, 0x001d161e, 0x000a0407, 0x00080504, 0x00080802, 0x00050602, 0x00050806, 0x00030705, 0x00010604, 0x00030809, 0x00000504,
- 0x002c3233, 0x00a2a7a9, 0x00e9ecec, 0x00f1f0f5, 0x00e7e3e5, 0x00eee6ec, 0x00f0e7ed, 0x00f1e8f3, 0x00f4f0f9, 0x00f7f0fc, 0x00f4edfa, 0x00f5edfa, 0x00f7ebf3, 0x00ffeff8, 0x00fdeef4, 0x00ceb9bf,
- 0x006b5ca0, 0x004b5db3, 0x004864c2, 0x004b63bd, 0x005561b3, 0x004c60bb, 0x00515eb3, 0x006963a0, 0x00d2aeb2, 0x00fcebed, 0x00eeebec, 0x00f0eef6, 0x00dcc9d0, 0x00856168, 0x004a171b, 0x00672828,
- 0x00793930, 0x00764432, 0x0076543a, 0x00786647, 0x0073724f, 0x006e754e, 0x0067724b, 0x005c6541, 0x00535c43, 0x007b836f, 0x00e6eade, 0x00fdfffa, 0x00fefefa, 0x00f7f7f2, 0x00fefefa, 0x00d2d2cc,
- 0x0064514c, 0x00402c28, 0x00513d3b, 0x00513c3d, 0x005e484c, 0x005f484d, 0x00644c51, 0x00674f52, 0x00695452, 0x006a5351, 0x00644c42, 0x0071523d, 0x00755541, 0x0077584b, 0x0084726e, 0x00bab4c5,
- 0x00a9c5f3, 0x006a99de, 0x004d8ad8, 0x004a8ce9, 0x004286e3, 0x004287e8, 0x003d80e4, 0x00377ddf, 0x003376da, 0x002f72d6, 0x003072d6, 0x002c6dd1, 0x002d6bd1, 0x002e6dd2, 0x001e5dc2, 0x002061c5,
- 0x002d6bcc, 0x002565c7, 0x002265c8, 0x00266cd1, 0x002168cf, 0x002165cc, 0x002364c9, 0x002160c2, 0x00255eba, 0x00275cb8, 0x002554b2, 0x001a419f, 0x00042684, 0x00001f78, 0x00031f73, 0x00031b6d,
- 0x00081c6d, 0x000a1b67, 0x000c1b62, 0x000d1a5d, 0x000e185a, 0x0008164d, 0x00001144, 0x00001047, 0x00071754, 0x000b1b5b, 0x000c1b5e, 0x000c1a61, 0x000b1764, 0x000c1766, 0x000a1765, 0x00091766,
- 0x00061b62, 0x00091c5d, 0x000a1b58, 0x000a1850, 0x00505c8d, 0x007f87ba, 0x004a5387, 0x00565f98, 0x00495796, 0x000b1359, 0x001e3065, 0x00788998, 0x00bbc2e6, 0x00b0aeed, 0x00383883, 0x0012156d,
- 0x00071a6d, 0x00061d6e, 0x000e2b7c, 0x000f2489, 0x00121b9d, 0x00101888, 0x00232a85, 0x00757bbc, 0x00eef3fd, 0x00fafbfc, 0x00fcfef4, 0x00fffef0, 0x00f5fde6, 0x00d7e6c8, 0x00778c69, 0x0059704a,
- 0x00617531, 0x006d702c, 0x0090803e, 0x00b18c49, 0x00ce9a55, 0x00dba660, 0x00ddaf67, 0x00e0b46e, 0x00e3b676, 0x00ddaf73, 0x00cda265, 0x00bc9752, 0x009c7748, 0x0066422b, 0x005e4036, 0x00a48c8d,
- 0x00d3c3c4, 0x00e0d4d6, 0x00ece7eb, 0x00fbf6fe, 0x00f2f0fd, 0x00ebf0f6, 0x00e7ebec, 0x00f3e4ed, 0x00fee8f8, 0x00fcf4ff, 0x00f6f9ff, 0x00e6f5fc, 0x00f4f7f2, 0x00fcd4ca, 0x00b65d4c, 0x00a1220e,
- 0x00b74739, 0x00dfac9e, 0x00fdebd8, 0x00dcb89f, 0x00ef4d27, 0x00fc5a33, 0x00f48156, 0x00f9cfad, 0x00ead1b5, 0x00ca8268, 0x00b96b50, 0x00d4a492, 0x00f8e0ce, 0x00f0e3dd, 0x00e7e8e5, 0x00ecf5fc,
- 0x00afbcd2, 0x00515777, 0x00252849, 0x0058547d, 0x00bfc1df, 0x00e6f2fc, 0x00e9f9fc, 0x00f2f5fd, 0x00fff5f7, 0x00fef4f8, 0x00fef6fe, 0x00fdf5fd, 0x00fafcff, 0x00f1f6f5, 0x00f9fcf5, 0x00d5dacb,
- 0x006f8260, 0x004d603c, 0x0043552b, 0x00616e3b, 0x00888e4e, 0x0093944d, 0x008a8946, 0x00747238, 0x00364122, 0x00142216, 0x000a210f, 0x00183202, 0x0077877f, 0x00dadee7, 0x00f6f4fa, 0x00ece4ee,
- 0x00e3dcaf, 0x00ece6ae, 0x00e8eab1, 0x00d9e0c1, 0x00d0dfee, 0x00d2e0f5, 0x00dbe7f8, 0x00eff7fb, 0x00fdfef3, 0x00fcf8ee, 0x00fdf1e9, 0x00f4e3e3, 0x00d5c7d1, 0x00cac6ce, 0x00edf0f7, 0x00ebf3f2,
- 0x00d1c9f3, 0x00ada6c7, 0x006f6977, 0x0037312c, 0x0047432d, 0x00656554, 0x0062665f, 0x003c4453, 0x0035437a, 0x0042529d, 0x00112067, 0x002e386d, 0x00414e86, 0x002a3d73, 0x00243a75, 0x003c5396,
- 0x00314589, 0x00142563, 0x003e4d7a, 0x0076809c, 0x00737c7e, 0x002e372b, 0x0018230d, 0x0017220d, 0x000b1b03, 0x000c1f07, 0x000b1e07, 0x000d200c, 0x000b1a0b, 0x00172319, 0x007e8781, 0x00e8efeb,
- 0x00fbfcfb, 0x00fffdfc, 0x00fbfcfa, 0x00fefefb, 0x00cbc5c3, 0x00b1adaa, 0x00eee9e8, 0x00fffdfd, 0x00f5f8f4, 0x00fefffd, 0x00f8fafb, 0x00c3c5ca, 0x003f4649, 0x00252727, 0x00201a16, 0x002c150e,
- 0x00602316, 0x00903b27, 0x00b75333, 0x00cf5f36, 0x00e16c37, 0x00e16b33, 0x00ca5820, 0x00ba4d17, 0x009c3b15, 0x00b46652, 0x00f3beba, 0x00c5adc0, 0x006575a8, 0x00446bb0, 0x00366bbd, 0x003474d0,
- 0x00367dd3, 0x006c67a2, 0x00b387a3, 0x00f8cfc7, 0x00ecfae8, 0x00eefef7, 0x00f0fafa, 0x00fff3f4, 0x00feedf5, 0x00f3f0f9, 0x00f2f2fb, 0x00f8eff1, 0x00f5edfd, 0x00f7f1fc, 0x00faf9f7, 0x00f9fde9,
- 0x00f4f6e2, 0x00f4efed, 0x00eae3ec, 0x00d3c8d7, 0x00a39690, 0x009d8378, 0x00ab8773, 0x00c28d75, 0x00da8870, 0x00d78471, 0x00cc7a6f, 0x00b86f6b, 0x0089595b, 0x00694945, 0x004f3d2f, 0x00473b2a,
- 0x0068413e, 0x007b524a, 0x008c6454, 0x00a3745f, 0x00b68469, 0x00c18d71, 0x00c19379, 0x00b99179, 0x009a7c6b, 0x00816c5e, 0x006f6152, 0x006a5e49, 0x00705c49, 0x007c6051, 0x00886559, 0x008e665c,
- 0x0089655f, 0x00795e5b, 0x005e534e, 0x004d524b, 0x0045594e, 0x004f5858, 0x005a5e64, 0x0060646c, 0x00646771, 0x00626570, 0x005e5f6b, 0x005a5a65, 0x004f4d57, 0x004e4e52, 0x00575756, 0x005f5d5c,
- 0x00715b63, 0x00746064, 0x00725d5c, 0x0078605b, 0x00876d64, 0x00987e73, 0x00a68d80, 0x00ab9486, 0x00a89988, 0x00a29282, 0x008e8274, 0x007d746a, 0x006c645f, 0x00666160, 0x005f5e60, 0x0057585c,
- 0x004d525a, 0x003f454e, 0x00383d45, 0x00373a43, 0x0020222a, 0x0007090b, 0x00030300, 0x00060000, 0x00110000, 0x001f0604, 0x002e0f0d, 0x00371616, 0x00200a0d, 0x000b0000, 0x00060101, 0x00000001,
- 0x00050408, 0x00151418, 0x003c3b3f, 0x006c6d6f, 0x00a8aaab, 0x00bebebf, 0x00b7b6b8, 0x00a19ea2, 0x00707072, 0x007c7c7f, 0x00dddedf, 0x00fbfefe, 0x00fefafd, 0x00fefafd, 0x00fefbfe, 0x00e8e8eb,
- 0x007f928f, 0x004c6061, 0x00728989, 0x009fadb2, 0x00d0d2dd, 0x00c5c1c9, 0x009c9792, 0x00878570, 0x009e926b, 0x00b19577, 0x00b48a7a, 0x00955f62, 0x0055263f, 0x00422946, 0x003e3b55, 0x0037495b,
- 0x0043405e, 0x00383b53, 0x00333e4d, 0x0027363a, 0x0037413a, 0x0056574d, 0x006a6a62, 0x00625f5f, 0x003c425a, 0x002e3862, 0x00253a66, 0x00193962, 0x00122f60, 0x00192d67, 0x0031487d, 0x00556797,
- 0x00acb7d0, 0x00dfe2f5, 0x00d4d8dc, 0x00d7d4d6, 0x00e4dcdf, 0x00e4e1f3, 0x00e6e6fd, 0x00e8efff, 0x00eef4fa, 0x00ecf4f1, 0x00ebede6, 0x00eeeae7, 0x00e4eef9, 0x00cde3f9, 0x00a9d2f7, 0x0095cbf6,
- 0x0087cdeb, 0x0086c7e5, 0x0089c4d9, 0x00a1d0e0, 0x00d0eef8, 0x00e4fbff, 0x00def0fa, 0x00cde0f1, 0x00bdcfe8, 0x00c0ceef, 0x00cddcf3, 0x00e8f5f7, 0x00f4faf5, 0x00fbfafa, 0x00f7f6f2, 0x00f3f3f0,
- 0x00f1f3f9, 0x00fafdfe, 0x00fcfffe, 0x00fcfcfb, 0x00faf8ec, 0x00fbf5f5, 0x00f7f4fc, 0x00f0f4fa, 0x00ebf5fd, 0x00edf6f9, 0x00eff2f4, 0x00f6f3f3, 0x00f9f1ee, 0x00f7f5f0, 0x00f2f5f4, 0x00ecf8f6,
- 0x00ebf7fc, 0x00f0f6f7, 0x00f0f1ea, 0x00f0eee5, 0x00e3e5d9, 0x00e6eee8, 0x00eef5f5, 0x00edf3f9, 0x00dddad9, 0x00938784, 0x005a4037, 0x00724636, 0x00825643, 0x008e6152, 0x00966957, 0x009a6d59,
- 0x009b6d57, 0x009a6e58, 0x00996d56, 0x00946951, 0x008f644b, 0x00905d44, 0x0090583e, 0x008c573c, 0x00905d3e, 0x00936041, 0x009b6749, 0x009f6b4d, 0x00a27051, 0x00a67454, 0x00ab7857, 0x00ab7856,
- 0x009cc6d5, 0x00365584, 0x0048598f, 0x00424a88, 0x002d4093, 0x003a5bb9, 0x004468c8, 0x004460ba, 0x00594e80, 0x00754f67, 0x00a35b5b, 0x00d25b43, 0x00ee5345, 0x00ed493f, 0x00db403c, 0x00cc4d4d,
- 0x00d2a4a2, 0x00eadedf, 0x00dfe1e8, 0x00e1e4e9, 0x00f6e0ec, 0x00e7dde2, 0x00dfdde2, 0x00e3dfe4, 0x00e5e0e8, 0x00e2dee5, 0x00dedbe1, 0x00dddae2, 0x00ded9e5, 0x00ded9e6, 0x00dcd8e5, 0x00dbd7e3,
- 0x00d9d5e3, 0x00d9d6e3, 0x00d3d0de, 0x00d1cfdc, 0x00d6d4e2, 0x00d4d2e1, 0x00c6c4d4, 0x00bcbccc, 0x00c1bcd2, 0x00c5c0d6, 0x00c5c0d2, 0x00c5c4cc, 0x00d3cede, 0x00d1cee0, 0x00d5cee7, 0x00a39ab6,
- 0x005f5877, 0x00736e8e, 0x00a7a1bf, 0x00b2aac6, 0x009f97b3, 0x00928fa6, 0x009896a8, 0x00b0adbf, 0x00d7d3e6, 0x00e1deef, 0x00d4d0e1, 0x00d2d0dd, 0x00d7d5e3, 0x00d3d1de, 0x00ceccd9, 0x00cccad6,
- 0x00cfc9d8, 0x00bebacc, 0x0056516e, 0x001c1838, 0x001a1935, 0x00626373, 0x00bbbbc8, 0x00bdbfc3, 0x00cbc5d2, 0x00c4bcce, 0x00c9c3ce, 0x00c1c3b8, 0x00c5c8cc, 0x00c2c4d2, 0x00bdbeda, 0x00b0b4d5,
- 0x009da2c2, 0x009198af, 0x009296ac, 0x00a0a5b0, 0x00aeb3b6, 0x00a2abc2, 0x008e95bb, 0x006a729a, 0x003d4573, 0x002e3864, 0x002d3862, 0x00263257, 0x001c2547, 0x001b223f, 0x00151b33, 0x0010142d,
- 0x00241f32, 0x0040425d, 0x00555d85, 0x0043558b, 0x00284590, 0x002c479b, 0x00354899, 0x0036438a, 0x00403a63, 0x0043374b, 0x00433440, 0x0047393f, 0x004d3f43, 0x00483939, 0x00453936, 0x004b3f39,
- 0x004b4234, 0x00443d2d, 0x00403627, 0x003c3723, 0x004a4335, 0x00736e62, 0x00d6d0c9, 0x00fcf8f3, 0x00fdfefe, 0x00fafcfc, 0x00fcfefc, 0x00f3f4f2, 0x0099928c, 0x0042352b, 0x00625042, 0x00786250,
- 0x00a3714c, 0x00d0a57f, 0x00f7dcbd, 0x00f9f0cc, 0x00fbf4e2, 0x00f9faeb, 0x00f7f6f0, 0x00e7e8e7, 0x00c0cec5, 0x00a8bcad, 0x00a7b2ad, 0x00b9b4bb, 0x00c6bdd4, 0x00ddd0e7, 0x00eddaf2, 0x00ecd0e2,
- 0x00dec0be, 0x00ceb1b0, 0x00cfb5c1, 0x00a798b0, 0x00424271, 0x00161f4b, 0x002a3463, 0x00989cc7, 0x00d4ccf2, 0x00e3d9f9, 0x00aea1c6, 0x00514a6e, 0x009695c5, 0x00cdd7f8, 0x0094a1df, 0x0048599d,
- 0x006f93ec, 0x006488c7, 0x004c6f91, 0x00a6cad1, 0x00bfd7f2, 0x007282c3, 0x00131b7c, 0x0026259c, 0x00a4a9f1, 0x00c9d7f2, 0x00bdc6ef, 0x00a6a8f0, 0x008991ba, 0x00757a9e, 0x007575a3, 0x008583c2,
- 0x009f9ed9, 0x00a4a7d4, 0x0052537e, 0x005c5b7f, 0x009b94cd, 0x008786ac, 0x008c8aa7, 0x00d5d0e0, 0x00d9d5d6, 0x00d0c9ca, 0x00dfd8dc, 0x00c9c5ce, 0x00706a83, 0x00231f35, 0x00020110, 0x0001010d,
- 0x00180e29, 0x004b3b4d, 0x009f8a94, 0x00c4afaa, 0x00d1c3b7, 0x00c5c5b9, 0x00b5b3b1, 0x00a6acab, 0x00bfb1b5, 0x00c7b2b5, 0x00c2aaac, 0x00bab4ae, 0x00c5b8b8, 0x00bfb5ba, 0x00aea6af, 0x009e99a7,
- 0x0092828b, 0x00a6787f, 0x00b46766, 0x00b64d3b, 0x00b4310b, 0x0083290e, 0x004f1911, 0x00200f27, 0x0009164c, 0x00141a4d, 0x001f1c52, 0x00262054, 0x00212c74, 0x001e317b, 0x002e3b8a, 0x0042448e,
- 0x00394f9f, 0x003a53a1, 0x003e5aa9, 0x003f5fb0, 0x004367bf, 0x00496dca, 0x004668c7, 0x00526fca, 0x005b6fb7, 0x007f93ce, 0x00dce9fe, 0x00fbfbfa, 0x00fbfdfd, 0x00fefefd, 0x00fcfbfc, 0x00e4e2e5,
- 0x005a5c5b, 0x000c100d, 0x0008120e, 0x00081713, 0x000d1e19, 0x00151f1e, 0x00121a1b, 0x000e1615, 0x000e1414, 0x000e1413, 0x000e1313, 0x000b100f, 0x000c100d, 0x00040704, 0x00040703, 0x00171914,
- 0x0053495f, 0x0081778b, 0x009f95aa, 0x009990a4, 0x006d6476, 0x0039323e, 0x00120d13, 0x00050204, 0x00080605, 0x00060401, 0x00060502, 0x00030403, 0x00020604, 0x00000603, 0x00020805, 0x00000501,
- 0x00292d28, 0x009a9d9b, 0x00f1f2f2, 0x00edeaeb, 0x00ebe5e9, 0x00efe8eb, 0x00ede6ec, 0x00f0e8f4, 0x00f9f0fc, 0x00f2eef7, 0x00f4ebf9, 0x00f1ecf4, 0x00f7e9f3, 0x00fdeff5, 0x00fbebf0, 0x00cbb4b7,
- 0x00685ba0, 0x004b5bb3, 0x004a65c4, 0x004a61bc, 0x005962b4, 0x004d5fb8, 0x005260b0, 0x006d669d, 0x00d7adb4, 0x00fbeae8, 0x00f1ecef, 0x00ecedf4, 0x00dcc7d0, 0x00865e62, 0x00491012, 0x00631c1a,
- 0x00722921, 0x006a2f1f, 0x005f3523, 0x00523a26, 0x0048432d, 0x003e442e, 0x0036412f, 0x002b3626, 0x00323830, 0x0080837f, 0x00efefed, 0x00fdfdfb, 0x00fbfafd, 0x00faf9fc, 0x00fdfcfb, 0x00cdcacd,
- 0x00644c45, 0x00503732, 0x005f4542, 0x00674d4c, 0x006d5254, 0x00705658, 0x006f5556, 0x00705757, 0x00745a58, 0x006f5954, 0x00745a4e, 0x00745641, 0x007b5c4d, 0x006e5852, 0x008e838b, 0x00bcc1dd,
- 0x0087aeeb, 0x00568dda, 0x004a8ce5, 0x00478dec, 0x004385e7, 0x003c82e2, 0x00377de0, 0x003579dd, 0x003477da, 0x003275d9, 0x002f71d5, 0x002b6dd1, 0x002667cb, 0x002968cd, 0x002562c8, 0x00235ec5,
- 0x002063c3, 0x002267c8, 0x002368cc, 0x00246ad0, 0x00276bd2, 0x002569cf, 0x002468cc, 0x002166c8, 0x00235fc3, 0x002260c1, 0x00265ec1, 0x002455b6, 0x001a44a5, 0x000c3491, 0x00042883, 0x00022279,
- 0x00031d70, 0x00071b6c, 0x000c1c69, 0x000e1b65, 0x000f1a63, 0x000b1957, 0x0003144c, 0x00000f4c, 0x00031251, 0x0009195a, 0x000d1d60, 0x0009195e, 0x00091761, 0x000b1865, 0x000c1967, 0x000a1769,
- 0x00071669, 0x00051562, 0x0006145c, 0x000d1858, 0x00555e93, 0x008c95c7, 0x00616a9e, 0x0059619a, 0x005d64a9, 0x00131961, 0x00132056, 0x00324851, 0x008c92c1, 0x008483c7, 0x00222071, 0x00101360,
- 0x0005175b, 0x00061e69, 0x00162c84, 0x0012268c, 0x00141997, 0x00121675, 0x00353880, 0x009297ca, 0x00f9fafe, 0x00f8fbf5, 0x00fcfff6, 0x00fafdeb, 0x00f7fbe6, 0x00c1d2ac, 0x00667c4f, 0x005c7944,
- 0x0064772e, 0x0070702a, 0x00937f40, 0x00b28f4f, 0x00cf9c5b, 0x00d6a964, 0x00dab26b, 0x00dfb872, 0x00e1b77a, 0x00dfb478, 0x00dab178, 0x00cbaa68, 0x00a4855c, 0x007b5f48, 0x00907972, 0x00c0adb2,
- 0x00d7ced0, 0x00e9e4e5, 0x00f6f2f6, 0x00efeaf3, 0x00eee8f8, 0x00e1e7ed, 0x00e7eded, 0x00fbeef5, 0x00fdedfd, 0x00faeffe, 0x00f5f3fc, 0x00e2f7fb, 0x00f1f4f0, 0x00fcd8cf, 0x00cc7a66, 0x00ac2f18,
- 0x00ce3712, 0x00e56948, 0x00f18a65, 0x00dc794f, 0x00eb6733, 0x00f07940, 0x00fc9e6d, 0x00fdcda8, 0x00df937c, 0x00cc5d43, 0x00f2907a, 0x00f6d2c1, 0x00fbe3d7, 0x00e9e5dd, 0x00e8eeee, 0x00e3f4fc,
- 0x00919eb8, 0x00383d61, 0x002b2b57, 0x00393b69, 0x005e6593, 0x0096a7b8, 0x00d9e7e9, 0x00f6fcf8, 0x00fbf4f0, 0x00fdf6f6, 0x00fbf7fc, 0x00f3f9fc, 0x00effdfd, 0x00ebfcfc, 0x00f2feff, 0x00e6f3ee,
- 0x009c9a7c, 0x00565d3a, 0x00515d32, 0x006b7a45, 0x008d9754, 0x0096974f, 0x00878743, 0x00726f34, 0x00353c25, 0x0013261d, 0x0004180e, 0x002e4517, 0x00afbbb5, 0x00eff2f3, 0x00f4eef6, 0x00f7e6ee,
- 0x00f7eab6, 0x00f6e9a9, 0x00f2eaaf, 0x00dce2bc, 0x00c2dae0, 0x00bfd7ec, 0x00c3dcf2, 0x00d5e7f5, 0x00f7faf7, 0x00fcfbf4, 0x00f4eee7, 0x00eee4e2, 0x00eae2ea, 0x00d9d9e3, 0x00eef5fb, 0x00dfeaeb,
- 0x008781ab, 0x00413a58, 0x0028212c, 0x0038312b, 0x00605c45, 0x005b5b4a, 0x00646760, 0x00434957, 0x002d3970, 0x0036448c, 0x00233076, 0x004a5383, 0x006975a7, 0x00516296, 0x004a5f96, 0x005a6fb0,
- 0x0048589c, 0x001c2b63, 0x004e5b83, 0x008d97a9, 0x007a847e, 0x00303b23, 0x002c371b, 0x002d3a1b, 0x00253313, 0x001b2e0b, 0x00132807, 0x000c2005, 0x000d1d0a, 0x001f2a1f, 0x00a6aba8, 0x00f1f2f2,
- 0x00f9fcfc, 0x00fdfefe, 0x00fdfdfc, 0x00fffef9, 0x00aaa49d, 0x00777168, 0x00eee8e2, 0x00fef9f6, 0x00fcfbfb, 0x00fbfcfb, 0x00fcfdfc, 0x00ced2d2, 0x00555a59, 0x001d221f, 0x00221d1a, 0x002a1710,
- 0x00592313, 0x00883b26, 0x00ae5336, 0x00c45e38, 0x00d76d3e, 0x00d36a3a, 0x00be5a2a, 0x00ad4d22, 0x00953f25, 0x00a86452, 0x00fac9c8, 0x00ddc5cd, 0x00727fac, 0x00436aa9, 0x003770c2, 0x00327bda,
- 0x00257fe5, 0x005d70b4, 0x00a1789e, 0x00efa2ac, 0x00fdeff3, 0x00f6f9f6, 0x00f4f9f9, 0x00fceef7, 0x00fff7f2, 0x00eafbee, 0x00f1fdf6, 0x00f7fcf5, 0x00f6f1fe, 0x00f8f8fd, 0x00f3f8f7, 0x00eff6e7,
- 0x00ebf6e1, 0x00eff4f4, 0x00e2dcf1, 0x00e8dbf2, 0x00d4c3bd, 0x00b09689, 0x00b78e7f, 0x00c58e7d, 0x00d38879, 0x00c88074, 0x00b3726c, 0x00925d5e, 0x00674950, 0x00544346, 0x004c423e, 0x00473f39,
- 0x00654037, 0x0072483c, 0x00895647, 0x009c6651, 0x00b1795e, 0x00b18163, 0x00ab866c, 0x009e836d, 0x00827369, 0x006e655f, 0x00656059, 0x006b6254, 0x00776253, 0x00805c52, 0x008f5e58, 0x00966059,
- 0x008b5953, 0x0078544b, 0x00694f4a, 0x005d544b, 0x00585e57, 0x0053595b, 0x00595b67, 0x0060666f, 0x00696b78, 0x00636674, 0x005b5d6b, 0x0053545d, 0x0056575b, 0x00616261, 0x006c6b67, 0x0076736f,
- 0x00817178, 0x00847377, 0x00806b6c, 0x007d6662, 0x00826a61, 0x008c7467, 0x009b8474, 0x00a28c7b, 0x00a39080, 0x00a08d7d, 0x0097887a, 0x0090867d, 0x008a827e, 0x00827d7c, 0x00767577, 0x00696a70,
- 0x00575962, 0x00464b54, 0x00404550, 0x003e4148, 0x00242631, 0x00080d0e, 0x00020502, 0x00060503, 0x00140506, 0x001f0c0e, 0x00331d1c, 0x002e1611, 0x00190706, 0x00100304, 0x00180f13, 0x00201c1e,
- 0x00303033, 0x004d4e50, 0x007b7a7d, 0x00979598, 0x00bbb9bc, 0x00c4c3c6, 0x00c1c1c3, 0x00b0b3b3, 0x00959296, 0x008f8e90, 0x00d0d0d2, 0x00f3f6f7, 0x00fdfcfd, 0x00fdfbfd, 0x00fcfafe, 0x00f5f6f7,
- 0x0094a097, 0x00505e53, 0x00879085, 0x00bab9ad, 0x00e6d8ce, 0x00e6ceb1, 0x00d3ba91, 0x00c0ae7d, 0x00c3b67b, 0x00d0bb87, 0x00e2be9d, 0x00d0a591, 0x007e5461, 0x003f3040, 0x0030344b, 0x00274154,
- 0x00413b4d, 0x00414150, 0x00414650, 0x003c4a4b, 0x00434b41, 0x00474d3e, 0x00505148, 0x004b4949, 0x00212445, 0x00101d47, 0x001d3469, 0x001e497b, 0x00315797, 0x0036599b, 0x004767a8, 0x00516ca7,
- 0x008ea4c1, 0x00c6d7e4, 0x00d3d9e2, 0x00d8d8d6, 0x00efe2e9, 0x00e2ebea, 0x00dbebf0, 0x00e1f3fe, 0x00dae8ff, 0x00c0cef4, 0x00b6c3ee, 0x00b5c5e7, 0x00a1b9de, 0x008ab3dd, 0x0079b3df, 0x0073bbec,
- 0x0074c5f6, 0x007ec4f3, 0x008fcaf5, 0x00b1e0f8, 0x00cce9fd, 0x00c6e2ee, 0x00bbd6e1, 0x00bcd5e3, 0x00bbd7e9, 0x00c0dff1, 0x00d8f4fc, 0x00e4f7f5, 0x00f5fdfc, 0x00f8f9f5, 0x00f6f5f5, 0x00f5f5fb,
- 0x00e4f3fa, 0x00eafbfd, 0x00f2fdff, 0x00f5fbfd, 0x00fbf5f2, 0x00faf4ed, 0x00f4f1f0, 0x00eff4f7, 0x00eff4ff, 0x00eef2fc, 0x00f0f1f4, 0x00f3f1e9, 0x00fbf3e8, 0x00f8f4ef, 0x00f2f2f6, 0x00eff7fe,
- 0x00dff5fb, 0x00e1f0f6, 0x00e8edf1, 0x00e2e1dc, 0x00ebeae3, 0x00edf2ec, 0x00eaf2f2, 0x00ebf5f7, 0x00dad8dd, 0x008f8788, 0x00513e3c, 0x00644035, 0x00735045, 0x007f5a4f, 0x00856155, 0x00896656,
- 0x00886655, 0x00896555, 0x00886453, 0x00846450, 0x0083614e, 0x00845d49, 0x00835844, 0x00805441, 0x00825541, 0x00835741, 0x00875b44, 0x008c6047, 0x0094684e, 0x00986b51, 0x009b6f55, 0x009e7258,
- 0x009ecad3, 0x0035597f, 0x0045598a, 0x003f4984, 0x003f499f, 0x00475dc0, 0x004b63cb, 0x004b64c2, 0x00515b9a, 0x004b4874, 0x00603c54, 0x00ac5250, 0x00da564e, 0x00db4137, 0x00d13429, 0x00bc2f24,
- 0x00b56965, 0x00dfbcbd, 0x00f3e8ec, 0x00e6e3e9, 0x00ebdbe1, 0x00e4dde4, 0x00dfdce2, 0x00e0dae3, 0x00e1dde4, 0x00dfdce3, 0x00dad7de, 0x00d9d6dd, 0x00dad5e1, 0x00dbd6e3, 0x00d9d3e0, 0x00d9d4e0,
- 0x00d8d5e3, 0x00d5d2e0, 0x00d2d0dc, 0x00d2d0dd, 0x00cfccdc, 0x00c7c4d5, 0x00bdbacc, 0x00b7b5c6, 0x00c0bdd3, 0x00c3c0d5, 0x00c5c1d4, 0x00cec9d6, 0x00c9c7dc, 0x00d5d2e9, 0x00b9b5d3, 0x00625e7e,
- 0x001c173a, 0x002f2c4e, 0x00615d7d, 0x00928baa, 0x00968eaa, 0x0086839a, 0x00a5a4b7, 0x00c9c5d8, 0x00d6d5e7, 0x00d7d4e7, 0x00d1cedd, 0x00cecada, 0x00d5d2e0, 0x00d2cfde, 0x00cdccd6, 0x00cbc9d4,
- 0x00ccc9d9, 0x008e8ba0, 0x0028243f, 0x00171232, 0x003d3a51, 0x00807e8c, 0x00c4c3ca, 0x00c4c5c7, 0x00d8d2dd, 0x00d6cedd, 0x00dfd6ea, 0x00dad6e1, 0x00d7d2e7, 0x00d0cae4, 0x00c7c1e5, 0x00bdb9de,
- 0x00a5a2cb, 0x009898ba, 0x00817f9f, 0x006f6e88, 0x005e5d6e, 0x004f5774, 0x0040476d, 0x002f375e, 0x001e2750, 0x00182245, 0x00141e3f, 0x00131d38, 0x00131a2f, 0x00131729, 0x00161827, 0x00343645,
- 0x005b566d, 0x00646687, 0x005a608e, 0x003d4c88, 0x002c4091, 0x00324597, 0x003b4792, 0x003c4482, 0x00443d5d, 0x00473b4c, 0x004d3d49, 0x00534052, 0x0052434f, 0x004d3f47, 0x00453b3c, 0x004f4841,
- 0x006f6859, 0x00796f5e, 0x0080745e, 0x0080755b, 0x0086795e, 0x009c9383, 0x00e5ddd6, 0x00fffaf5, 0x00fcfcfb, 0x00f7fbf9, 0x00fcfdfb, 0x00f2f3f0, 0x0097928a, 0x00413529, 0x00635242, 0x00796551,
- 0x00cc652c, 0x00db763a, 0x00ed8f59, 0x00f6a76d, 0x00fccba5, 0x00fde3c8, 0x00fbefe4, 0x00f1e5e7, 0x00d7d2db, 0x00ccced6, 0x00ccc9da, 0x00d1c6e4, 0x00d1caec, 0x00d9d4f6, 0x00e4dcfa, 0x00e7dbf2,
- 0x00d9c7d4, 0x00cbb9c2, 0x00b5a6b5, 0x009f9db1, 0x003d456a, 0x000d1438, 0x0041456d, 0x00a2a2c8, 0x00ded7f5, 0x00d8cef3, 0x009d92b9, 0x0068638b, 0x00adadd9, 0x00cdd4f9, 0x009aa6d9, 0x008a96cd,
- 0x00b1d3f0, 0x005571ac, 0x0049619e, 0x0099afe6, 0x0098a9c9, 0x007e8bbf, 0x00363b8b, 0x00272596, 0x006765cc, 0x007e85c9, 0x007d84be, 0x00a0a3e6, 0x00dde6f9, 0x00bbc3d9, 0x00797f99, 0x009b9cc5,
- 0x00e1e0fd, 0x00dfddf7, 0x009f9bbe, 0x008785ad, 0x007e76b8, 0x00756f9e, 0x00b0aac7, 0x00e5ddeb, 0x00e7e7df, 0x00e7e5df, 0x00f0ecf1, 0x00c0bed1, 0x003a3b5f, 0x00050729, 0x00040928, 0x00071128,
- 0x000b0c2c, 0x002c1d38, 0x00755d6e, 0x00a8848b, 0x00c4a8a1, 0x00c5b6af, 0x008c8681, 0x00626661, 0x00635a59, 0x006d595c, 0x00796466, 0x00736a67, 0x00786066, 0x006a545f, 0x004b3a46, 0x00302b38,
- 0x00301c25, 0x004f1f25, 0x006e2322, 0x007e1f15, 0x007c1803, 0x00551109, 0x00370f12, 0x00201727, 0x00111f41, 0x001a1a41, 0x001c123e, 0x001f133e, 0x00121e52, 0x0013245d, 0x00243070, 0x003b387c,
- 0x002e3f92, 0x00344799, 0x003a51a3, 0x003e58aa, 0x00405fb8, 0x004666c2, 0x004766c0, 0x00526cc4, 0x00586caa, 0x008599c7, 0x00e1eefe, 0x00fafbf9, 0x00fdfefc, 0x00fdfcfe, 0x00fbfaf9, 0x00d5d4d4,
- 0x00494b48, 0x00080b08, 0x000b1511, 0x000b1a17, 0x000e1f1a, 0x0015201f, 0x00141d1d, 0x000f1718, 0x000e1513, 0x000c1311, 0x000d1312, 0x000c1010, 0x000b0e0c, 0x00030503, 0x00060805, 0x00181915,
- 0x00564d60, 0x00867d91, 0x009f96ac, 0x00968ea4, 0x00615a6d, 0x002c2734, 0x000b080f, 0x00040307, 0x00060600, 0x00050400, 0x00050300, 0x00030402, 0x00010404, 0x00010704, 0x00020703, 0x00010501,
- 0x00262b28, 0x00989a9a, 0x00f2f2f2, 0x00ede9ec, 0x00ede5e6, 0x00f0e8ee, 0x00ede6ee, 0x00f2ebf9, 0x00f7f0fa, 0x00f2edf7, 0x00f5ecf7, 0x00f4edf6, 0x00f9e8ee, 0x00fef0f5, 0x00fbe7eb, 0x00cab1b2,
- 0x00675ba0, 0x004b5cb4, 0x004b66c4, 0x004b60bb, 0x005a62b4, 0x004d5db6, 0x00525eac, 0x006d6599, 0x00d5aeac, 0x00feede9, 0x00f5eff1, 0x00eae9f7, 0x00e7d2dc, 0x009b7579, 0x00440d0d, 0x0054100a,
- 0x005c1609, 0x004f1606, 0x003b1103, 0x002a1205, 0x001c160a, 0x0017190e, 0x00141b13, 0x00111712, 0x00282a29, 0x0088898b, 0x00f8f8fa, 0x00fdfdfc, 0x00fefcff, 0x00fbf9fd, 0x00fefaff, 0x00c5bfcb,
- 0x00654c45, 0x005d433d, 0x006a504c, 0x00705554, 0x00765b5c, 0x007a6061, 0x007a6261, 0x00796260, 0x0078625c, 0x00756159, 0x00755e51, 0x007b5c4a, 0x00795e52, 0x006f5c5d, 0x009492a1, 0x00b0bfe3,
- 0x006d9ee2, 0x004f8cdd, 0x004a8feb, 0x00478dee, 0x004689e8, 0x003b81e2, 0x00367cdf, 0x00367add, 0x003377d9, 0x003275d9, 0x002f71d5, 0x002d6ed2, 0x002868cd, 0x002564c9, 0x002764c9, 0x002862ca,
- 0x001e5fc1, 0x002365c8, 0x00276acf, 0x00296dd3, 0x002467ce, 0x002466cd, 0x002466cb, 0x002366ca, 0x002565ca, 0x002363c8, 0x002560c5, 0x002459bb, 0x002555b7, 0x001c4aa9, 0x00103a96, 0x00062d88,
- 0x0003237a, 0x00062075, 0x00091e72, 0x000a1d6e, 0x000c1e6c, 0x000c1f63, 0x00071a5a, 0x00031557, 0x00031455, 0x00021456, 0x0006175b, 0x0008195e, 0x000d1d65, 0x00091863, 0x00061463, 0x00081668,
- 0x000b1b72, 0x00031365, 0x00091560, 0x000e1758, 0x0050578b, 0x008f96c7, 0x007e85b7, 0x006c73aa, 0x00585da0, 0x00252973, 0x0037427b, 0x00385363, 0x0061689d, 0x0058579b, 0x0015145b, 0x00111453,
- 0x0004134e, 0x00031760, 0x000f247b, 0x00142585, 0x00161e7e, 0x0014155b, 0x00414277, 0x00b0b0d6, 0x00fcfdff, 0x00fbfef9, 0x00fbfdf3, 0x00fafff1, 0x00f0f6df, 0x00b2c59d, 0x005f7742, 0x005a7938,
- 0x0062772f, 0x00767834, 0x00948646, 0x00b19150, 0x00cc9f5d, 0x00d9ad6a, 0x00d9b470, 0x00dbb677, 0x00dfb577, 0x00dfb37a, 0x00dbb179, 0x00caaa71, 0x00a88d69, 0x00967f6c, 0x00b9a7a2, 0x00d8ccd0,
- 0x00e9e6e7, 0x00eaeae9, 0x00e8e6e8, 0x00e3e2e7, 0x00e7e1ee, 0x00eaebf2, 0x00f1f3f5, 0x00fcf4f8, 0x00fff0fc, 0x00fbf1fd, 0x00f7f5fe, 0x00e9f8fd, 0x00f4f4f3, 0x00fee7e0, 0x00e3a294, 0x00b5523d,
- 0x00cc340c, 0x00c63510, 0x00ca421e, 0x00d1562c, 0x00e28147, 0x00eb9b66, 0x00fcc59c, 0x00f4b899, 0x00c45e4c, 0x00d4563e, 0x00f88f77, 0x00fac4b6, 0x00f8dfd1, 0x00edeae1, 0x00e7f2f1, 0x00cde2eb,
- 0x006c7594, 0x0023244d, 0x00272757, 0x002d3165, 0x00213065, 0x003c4b65, 0x00acb7c1, 0x00f0f4f5, 0x00fffaf9, 0x00f8f9f7, 0x00f8f8fb, 0x00f2fbfd, 0x00f4ffff, 0x00f1fcfb, 0x00f9fcfc, 0x00f6f9f6,
- 0x00d0b994, 0x007d744b, 0x006d7341, 0x007d9053, 0x009aa863, 0x009da25c, 0x00878a48, 0x006b6932, 0x0032391e, 0x000e2414, 0x00071c0f, 0x00505d39, 0x00d6dfda, 0x00fafbfa, 0x00f2e9f3, 0x00e4c9cc,
- 0x00f0cea7, 0x00fbe9b0, 0x00f8f4bd, 0x00eaf0c8, 0x00b6d8d2, 0x00a4c1d2, 0x00b4cde6, 0x00cbe0ee, 0x00f0faf7, 0x00f7fdf6, 0x00f0f0ea, 0x00ede9ea, 0x00e9e4ee, 0x00e6e3ed, 0x00f0f1f9, 0x00cdd2d7,
- 0x00534e6c, 0x000d071b, 0x002e272d, 0x00554e46, 0x00726d56, 0x005d5d4b, 0x00656862, 0x00464b5a, 0x0019255a, 0x00202f73, 0x00374486, 0x007b82b0, 0x00848fbf, 0x007180b2, 0x007e91c8, 0x008ca0e0,
- 0x005d6cae, 0x0029386e, 0x005f6c8f, 0x00a7b1c1, 0x007e887a, 0x003e482a, 0x0047522b, 0x00536037, 0x004b5b32, 0x0044562d, 0x00364923, 0x00253515, 0x0014200b, 0x00353c31, 0x00c7cac6, 0x00f8f8f9,
- 0x00fbfefe, 0x00fffeff, 0x00fffefc, 0x00fbf7f1, 0x008e857b, 0x005f584c, 0x00e4dcd3, 0x00fffbf5, 0x00fdfdfc, 0x00fbfdfd, 0x00fbfdfc, 0x00dddddc, 0x00606562, 0x001a1c17, 0x001e1b16, 0x002c1b15,
- 0x005c2c1f, 0x0085402f, 0x00a6543a, 0x00ba5c3b, 0x00cb6b3f, 0x00c6683c, 0x00b65c36, 0x00a6512d, 0x008e462d, 0x00a56755, 0x00f6c7c2, 0x00ebcdd3, 0x00868ab0, 0x004d6eaa, 0x00376fbe, 0x00317bda,
- 0x002e83ef, 0x005572b5, 0x00886b93, 0x00e18091, 0x00fad3e2, 0x00f4edf8, 0x00e7e5fb, 0x00f6e5f9, 0x00faf7f1, 0x00e4fbe9, 0x00ebfbee, 0x00f4f6ee, 0x00e4e2fd, 0x00dce0ff, 0x00b3c3d5, 0x008ca49a,
- 0x0095aba2, 0x00b1bcce, 0x00b8b7db, 0x00d1c4e7, 0x00d3c7b9, 0x00bb9e95, 0x00bf958b, 0x00ca9487, 0x00c98a7c, 0x00b4786e, 0x0099635f, 0x00785051, 0x0057414a, 0x0053444a, 0x00514646, 0x004f4543,
- 0x00664130, 0x00754335, 0x00895042, 0x00975949, 0x009d6753, 0x00956c55, 0x008e755f, 0x00877867, 0x00737067, 0x00686663, 0x0065625e, 0x006b6057, 0x00776057, 0x00805a54, 0x008c5a56, 0x00925a57,
- 0x00854d4b, 0x0079504c, 0x0072534f, 0x00645753, 0x0063625d, 0x005a5e63, 0x00565865, 0x00545864, 0x00595c68, 0x00575966, 0x00525361, 0x00505159, 0x00626465, 0x00797976, 0x0082817b, 0x0084857b,
- 0x008d7f86, 0x008b7c81, 0x007f6f70, 0x0076625f, 0x00755d55, 0x007d6559, 0x00887263, 0x00927e6d, 0x00978576, 0x009b8a7a, 0x009d8f83, 0x00a49a94, 0x00aea6a6, 0x00a9a3a6, 0x0097959b, 0x0082838c,
- 0x00676973, 0x005a5f6a, 0x00565b65, 0x004d515a, 0x002d2f38, 0x0012161b, 0x00090d0d, 0x000f0e0e, 0x001d0e10, 0x00251415, 0x002f1e1d, 0x002d1b17, 0x00281a19, 0x002b2122, 0x00413c3f, 0x00535253,
- 0x00757577, 0x008e8e91, 0x00a9a9ab, 0x00b3b3b5, 0x00c1bfc4, 0x00c7c5c9, 0x00c7c7c9, 0x00c0c0c1, 0x00acaaaf, 0x00a09ea2, 0x00cecfd1, 0x00f6f9f9, 0x00fffcfd, 0x00fefbfd, 0x00fdfcfe, 0x00fcfcfc,
- 0x00a8b2a8, 0x00636a59, 0x00999986, 0x00bdb39e, 0x00cfb8a2, 0x00d3af89, 0x00d6ad85, 0x00d0af80, 0x00c2ad76, 0x00c2a674, 0x00d4ae85, 0x00dfb593, 0x00c19b91, 0x0083776f, 0x004e554f, 0x00375249,
- 0x004e4348, 0x00494348, 0x00454548, 0x003d4342, 0x004b5146, 0x00515146, 0x00585650, 0x00595558, 0x003a425f, 0x002d3f66, 0x00365184, 0x0034659e, 0x003b67ad, 0x003963ab, 0x00375aa3, 0x00325392,
- 0x00607c9f, 0x00aabed4, 0x00dae3ee, 0x00e0e1e5, 0x00ede2e3, 0x00edefdf, 0x00e7efe2, 0x00d7e9f6, 0x009ebdf3, 0x006e93d9, 0x00618ad7, 0x00698ed7, 0x006791c3, 0x0073a3d0, 0x008cc3e6, 0x009ad6fb,
- 0x0094dbfd, 0x008ac9fb, 0x0095ccfa, 0x00acd8fb, 0x00b4d1e7, 0x00b3cedc, 0x00c3dfe7, 0x00d1eef7, 0x00ccf2fd, 0x00c9f5fd, 0x00d2f9fc, 0x00e1fcfd, 0x00ebf8f9, 0x00f6f9f9, 0x00f5faf9, 0x00eff8fe,
- 0x00e1f8fe, 0x00e0f9ff, 0x00dbf1fc, 0x00ddecfc, 0x00f2f1f3, 0x00f6f6f3, 0x00f2f4f3, 0x00f0f8fc, 0x00e3f0fd, 0x00dee9fa, 0x00e8f0fb, 0x00eef1f0, 0x00f4f1ed, 0x00f5f6f3, 0x00f2f8fc, 0x00e7f6fe,
- 0x00d4f0fe, 0x00daeffd, 0x00dfeaf0, 0x00dde0df, 0x00eeefe8, 0x00f3f7f2, 0x00e1e8e6, 0x00dfe4e9, 0x00d0ced3, 0x008b8487, 0x004b3c3a, 0x00583e38, 0x00684c45, 0x00715550, 0x00785c54, 0x007c6157,
- 0x007e6357, 0x007d6256, 0x007c5f53, 0x00775e4e, 0x00745b4c, 0x00745649, 0x00725044, 0x006e4c40, 0x006f4d3d, 0x00714e3d, 0x00755240, 0x007b5844, 0x0085604d, 0x008b6551, 0x00906a56, 0x00946d59,
- 0x00a7c9d1, 0x0038587b, 0x003d5482, 0x0040508e, 0x004754a6, 0x005260be, 0x00495abb, 0x00475cb9, 0x00475da4, 0x003a508c, 0x003c3865, 0x00753d54, 0x00b1494a, 0x00c2382c, 0x00cb3420, 0x00c7311c,
- 0x00b64f4b, 0x00c58488, 0x00f2d0d8, 0x00eddee6, 0x00e0dbdf, 0x00e1dbe1, 0x00dddade, 0x00dddadd, 0x00dedce3, 0x00dedbe3, 0x00dad7de, 0x00d9d5de, 0x00dad5e1, 0x00d9d5e1, 0x00d7d1dd, 0x00d7d0dd,
- 0x00d3d2e0, 0x00d1d0de, 0x00d1cfdc, 0x00d0cedc, 0x00c6c3d6, 0x00bbb7cb, 0x00b8b3c8, 0x00bcb7cb, 0x00c0bdd4, 0x00c0bdd4, 0x00bebbd0, 0x00cbc7dd, 0x00ccc8e5, 0x00cfceef, 0x009093b5, 0x00383a60,
- 0x000c0d34, 0x00121236, 0x00333253, 0x00605d7b, 0x007a758f, 0x008b879d, 0x00bab7cb, 0x00d6d1e4, 0x00d5d1e3, 0x00d0cddf, 0x00cbcad9, 0x00c8c8d7, 0x00d2cfdf, 0x00d2cfde, 0x00ceccd7, 0x00cfcdd7,
- 0x00adabbd, 0x0057556b, 0x0018172f, 0x0034334d, 0x00888698, 0x00b3b2bb, 0x00cccdd1, 0x00c3c6c6, 0x00c6c1d0, 0x00b6b0c5, 0x00a8a1c0, 0x009c95bc, 0x008b83aa, 0x007d749e, 0x0069628e, 0x005d5683,
- 0x00433d6e, 0x0035305d, 0x002a2651, 0x0026204b, 0x00251f48, 0x00191e43, 0x00141d43, 0x00101a3f, 0x00111838, 0x000d142d, 0x000f152c, 0x000b1123, 0x00171a28, 0x002f2e3a, 0x0045434d, 0x0067666f,
- 0x008d8ca2, 0x007f81a4, 0x00585c8d, 0x003b4284, 0x00374093, 0x003c4591, 0x003e4585, 0x003d4270, 0x00423e51, 0x00484046, 0x00544750, 0x0059485c, 0x00625464, 0x00594c56, 0x00433a3f, 0x004c4642,
- 0x0061584a, 0x00776c58, 0x008d7e67, 0x008f8063, 0x00927e63, 0x009f9181, 0x00e8dcd6, 0x00fff8f3, 0x00fefdfd, 0x00fafcfc, 0x00fdfdfd, 0x00f3f3f1, 0x00938f85, 0x00403627, 0x005f503f, 0x00786651,
- 0x00e9611c, 0x00ef6317, 0x00f16315, 0x00f3691b, 0x00f48043, 0x00f49a72, 0x00fabca6, 0x00fac9c4, 0x00e8c4d6, 0x00e0bdd2, 0x00dbbcd8, 0x00decbeb, 0x00d9d1f2, 0x00cdcdeb, 0x00ced0eb, 0x00d7dbf1,
- 0x00e3e0ee, 0x00e1dce9, 0x00c8c3d5, 0x00a6acbd, 0x003d4c60, 0x00232641, 0x00565171, 0x005b567a, 0x00776d93, 0x00726a90, 0x00534c74, 0x003d3a61, 0x006b6996, 0x00898db6, 0x00949bc6, 0x00c4cbec,
- 0x00a7c2db, 0x0032458e, 0x001e2a92, 0x005659c5, 0x00a5aed6, 0x00dae3f5, 0x009699ce, 0x004f49a5, 0x00473fa9, 0x007372bf, 0x00b3b8e8, 0x00dce2f6, 0x00f3f9ff, 0x00ebf2fa, 0x00dfe6f2, 0x00e8eef8,
- 0x00e4e5f6, 0x00b9b6d9, 0x007f78a9, 0x006a619e, 0x007f73be, 0x00a198c8, 0x00dfd8f1, 0x00e8e0ea, 0x00e0e0d2, 0x00cfcec8, 0x00dad8e0, 0x00b2b1ce, 0x0043457d, 0x001a2157, 0x000d1a48, 0x0001153c,
- 0x000a0f40, 0x0021113a, 0x00503450, 0x00825563, 0x00c09494, 0x00dec3bf, 0x00cfc1bd, 0x0082827b, 0x00493e3d, 0x00534040, 0x004f3e3c, 0x0047423c, 0x0053353e, 0x004a2e3e, 0x003a2635, 0x0025212d,
- 0x00362329, 0x00491b22, 0x0059161a, 0x005e0e10, 0x00490c07, 0x0038070e, 0x00280b15, 0x0014131c, 0x00111d2f, 0x00211d38, 0x002b1c3d, 0x00261636, 0x000d1a3b, 0x000c1c43, 0x001a2454, 0x002a225c,
- 0x00212b7c, 0x002a3786, 0x00334692, 0x00364d98, 0x003753a6, 0x003955ac, 0x00405ab1, 0x00495fb3, 0x00576aa2, 0x0090a2ca, 0x00ebf7ff, 0x00f9fcf9, 0x00fdfdfd, 0x00fdfdfc, 0x00fbfafc, 0x00c3c3c2,
- 0x00303230, 0x00050a06, 0x000d1714, 0x000c1b16, 0x000f1f1a, 0x00141f1d, 0x00161d1f, 0x0011191b, 0x000e1514, 0x000b1210, 0x000c1211, 0x000b100f, 0x00080b09, 0x00030603, 0x00040604, 0x00171916,
- 0x00564e64, 0x00847d91, 0x009b94a9, 0x008d879d, 0x00554f63, 0x00201d2a, 0x0006040c, 0x00030207, 0x00070600, 0x00040200, 0x00040200, 0x00010200, 0x00000302, 0x00020603, 0x00020503, 0x00000300,
- 0x00272928, 0x00979896, 0x00f4f3f5, 0x00ede8ed, 0x00f0e7eb, 0x00efe7ed, 0x00ede7f0, 0x00f4eef5, 0x00f5effa, 0x00f2ebf7, 0x00f7eef9, 0x00f8edf6, 0x00fbe7ee, 0x00feeff2, 0x00fae4e6, 0x00c6acaa,
- 0x006759a1, 0x00495bb4, 0x004965c3, 0x004b60bb, 0x005962b4, 0x004e5db6, 0x00545cab, 0x006e6399, 0x00d5abaa, 0x00feebe6, 0x00f7eef1, 0x00e7e7f5, 0x00f5e2ed, 0x00bd999c, 0x004e1a19, 0x004a0a04,
- 0x004a0a01, 0x00400b02, 0x002c0600, 0x00160200, 0x00080403, 0x00090807, 0x000b0d0a, 0x00090a08, 0x00383538, 0x009f9d9f, 0x00fbf9fe, 0x00fdfcfe, 0x00fefbfc, 0x00fffbfe, 0x00f8f4f9, 0x00bab6c0,
- 0x006a514e, 0x006a514e, 0x00765e5c, 0x00786160, 0x007e6768, 0x00836e6e, 0x00826e6b, 0x00826f6a, 0x007e6e68, 0x00796b62, 0x007a655a, 0x007e6153, 0x007b625c, 0x006f626a, 0x009aa0b6, 0x009bb5df,
- 0x00578fdc, 0x00498ce3, 0x004790f0, 0x00468bea, 0x004584e0, 0x003c80e0, 0x00377ddf, 0x00367cdd, 0x003577dc, 0x003376db, 0x003172d6, 0x002f6fd3, 0x002d6bd2, 0x002663ca, 0x002461c6, 0x002a66cb,
- 0x002163c8, 0x002162c7, 0x002565ca, 0x002b6bd0, 0x002665cb, 0x002262c8, 0x002666cb, 0x002665ca, 0x002666c9, 0x002666cb, 0x002462c6, 0x00235cbd, 0x002b5fc1, 0x002a5cbb, 0x001f4fac, 0x0017439f,
- 0x000f348d, 0x000d2e85, 0x0009257b, 0x00062375, 0x00082275, 0x000b1f6e, 0x000a1c67, 0x00051962, 0x0002165d, 0x00001458, 0x00021559, 0x00081b5f, 0x000c1f66, 0x00081b65, 0x00041764, 0x00071a68,
- 0x00081671, 0x001b2b7d, 0x0039458e, 0x002b3270, 0x004d5182, 0x008d91bf, 0x009ea2d0, 0x00888bbe, 0x00555697, 0x003a3f80, 0x00626da5, 0x006d8ca5, 0x00747eba, 0x004d4f8f, 0x0015144e, 0x00050935,
- 0x00010e40, 0x00011259, 0x0018287c, 0x0017247d, 0x000f1652, 0x00060630, 0x0055556f, 0x00d5d7e2, 0x00fbfafb, 0x00fbfcfb, 0x00f7faf4, 0x00f9fef7, 0x00e4eed8, 0x009aae86, 0x005c763b, 0x00597a30,
- 0x00647834, 0x00717735, 0x00928849, 0x00af9456, 0x00cba164, 0x00dcb274, 0x00ddb776, 0x00d8b474, 0x00dcb277, 0x00daae76, 0x00d6ad76, 0x00c4a574, 0x00b29880, 0x00bfaa9c, 0x00dfcfcf, 0x00e7dee0,
- 0x00e7e3e4, 0x00dddfdc, 0x00dddedb, 0x00e3e3e3, 0x00f4edf6, 0x00f5f2fa, 0x00f8f6fc, 0x00fdf5fa, 0x00fbf2f9, 0x00f9f3f9, 0x00f4f2fd, 0x00edf2fe, 0x00f7f1f5, 0x00ffefec, 0x00fbd6cb, 0x00e1a38e,
- 0x00d95f34, 0x00d74e2a, 0x00e15934, 0x00f0744b, 0x00e8aa7a, 0x00f5cfa4, 0x00f5d1af, 0x00cb8c7a, 0x00ba4b3a, 0x00d5553d, 0x00d5634e, 0x00cc8476, 0x00debeaf, 0x00ece7da, 0x00ecf7f3, 0x00c2d7dd,
- 0x00484a6e, 0x00100c3a, 0x0016134b, 0x00242a64, 0x001a306a, 0x0024375c, 0x006a778e, 0x00c4ccd8, 0x00f7f9fb, 0x00f2f7f4, 0x00f3faf6, 0x00f2fdf8, 0x00f5fcfa, 0x00f9faf7, 0x00fdf4ee, 0x00fae5dc,
- 0x00e6b287, 0x00a88a5b, 0x0097925a, 0x0099ac6c, 0x00a4ba74, 0x009da965, 0x00818749, 0x0061602e, 0x002e361a, 0x00071e0d, 0x00213327, 0x008a9078, 0x00f3f9f6, 0x00fcfcfd, 0x00eadfe6, 0x00be9f9b,
- 0x00ba8a68, 0x00eac498, 0x00fefacc, 0x00f5f8d3, 0x00afd7c1, 0x00a5c1cb, 0x00bbcfe7, 0x00d3e2f4, 0x00effbf8, 0x00f6fffa, 0x00f0f2f2, 0x00e9e7ee, 0x00ece6f3, 0x00e8dfeb, 0x00d8cfd6, 0x00a7a0a3,
- 0x00403a4b, 0x002d262f, 0x005b5554, 0x00736b5e, 0x00716b54, 0x00656352, 0x006d6f6b, 0x004f5465, 0x00121d4d, 0x001b2a67, 0x0055619c, 0x00a2a7d4, 0x00bac3ee, 0x00a4b0e2, 0x00a0b0e5, 0x0093a4e3,
- 0x006775b6, 0x002f3d70, 0x006e7a9a, 0x00b8c2cc, 0x007a826e, 0x0048502b, 0x00646c3e, 0x00747e4a, 0x00768352, 0x006b7b4b, 0x0058693c, 0x00394823, 0x001e2811, 0x0051574c, 0x00e7e8e4, 0x00fcfafb,
- 0x00fbffff, 0x00fcfdfe, 0x00fffffc, 0x00ebe6de, 0x006f6159, 0x0052453b, 0x00d6cac2, 0x00fffbf5, 0x00fffefd, 0x00fafdfd, 0x00fcfefd, 0x00ebe9e8, 0x00717370, 0x00111510, 0x00191812, 0x002f2119,
- 0x005f312a, 0x00834435, 0x009f553d, 0x00b25d3f, 0x00bf693d, 0x00be653c, 0x00b45b3c, 0x00a25437, 0x008c4b37, 0x009c604f, 0x00eab8b2, 0x00f6cece, 0x009991af, 0x00576fa4, 0x004578c1, 0x003883dd,
- 0x003b82ea, 0x004e78b1, 0x006b5e79, 0x00af5062, 0x00cf9ab6, 0x00c3bfdd, 0x00abb1d3, 0x00ae9dbd, 0x00b1b6b5, 0x00c5ddcf, 0x00d1e9dd, 0x00cdd4ca, 0x008c8ec3, 0x00606fa6, 0x00415781, 0x002a4d4e,
- 0x00385257, 0x004a5a80, 0x0055598c, 0x0077719e, 0x00aba58e, 0x00b4968f, 0x00bf938e, 0x00c8978f, 0x00c28b7f, 0x00a7746c, 0x00865c59, 0x00694a4c, 0x005c464f, 0x00614d53, 0x00614c4d, 0x00614a49,
- 0x00764b35, 0x00804c3b, 0x008e5043, 0x00925345, 0x008c594b, 0x007f5d50, 0x0078675b, 0x00747065, 0x0070736d, 0x00706e6f, 0x00726b6b, 0x0070635d, 0x00755d57, 0x007c5952, 0x007f534b, 0x0083514b,
- 0x0081504c, 0x007d5652, 0x00795d5b, 0x006f5f5f, 0x00676264, 0x0060616a, 0x004f5460, 0x00474b57, 0x00494d57, 0x004c4e59, 0x004c4b58, 0x0054525c, 0x006e6d70, 0x0083837f, 0x008d8d85, 0x00898d80,
- 0x0092858c, 0x008a7d83, 0x007d6d70, 0x0073615f, 0x006a564f, 0x0069554b, 0x00735e53, 0x00806b60, 0x008c7b71, 0x0097887d, 0x00a59690, 0x00b4a8a9, 0x00c5bcc3, 0x00c5bec7, 0x00b4b0bc, 0x009d9cab,
- 0x007b7e8c, 0x006f7382, 0x00686e7b, 0x005e636c, 0x0040424b, 0x002b2d34, 0x0023252a, 0x00222126, 0x0022181a, 0x00291c1c, 0x003a2d2e, 0x00443536, 0x0055494b, 0x00615b5b, 0x007a797a, 0x008d9090,
- 0x009c9c9f, 0x00aaaaad, 0x00b3b3b5, 0x00b8b8b9, 0x00c0bdc2, 0x00c5c3c7, 0x00c7c7c9, 0x00c5c5c7, 0x00bebdc1, 0x00abaaac, 0x00cbcdce, 0x00f3f7f6, 0x00fffeff, 0x00fefafd, 0x00fffdff, 0x00fffffe,
- 0x00c3c6bf, 0x00767865, 0x00948e76, 0x00b09c7f, 0x00bb9678, 0x00cb9a7a, 0x00dbaa89, 0x00daae89, 0x00c39d72, 0x00bc9569, 0x00cba475, 0x00d4ab7e, 0x00ceb08a, 0x00bfaf8c, 0x00959371, 0x00707a57,
- 0x00645047, 0x0050443b, 0x004c463d, 0x0044453c, 0x0047473c, 0x004f4d43, 0x0053514c, 0x0058565a, 0x004e5a73, 0x0044597a, 0x00416392, 0x003a6daa, 0x00406fbb, 0x003a68b5, 0x003961b0, 0x003961a5,
- 0x005b7aa3, 0x00a0b7ce, 0x00dae8f6, 0x00e7ecf1, 0x00edeae9, 0x00f4edd0, 0x00f0efd8, 0x00d4e2ee, 0x007da3f0, 0x00487bdc, 0x00437de5, 0x004b84de, 0x0075aae5, 0x009bccf2, 0x00beebfc, 0x00bde9fb,
- 0x007ec0f3, 0x006da6e0, 0x0083b1e3, 0x00a3c5ea, 0x00c0d7ec, 0x00d3e8f5, 0x00e0f8fe, 0x00d1f0fd, 0x00b0dff4, 0x009fd7ef, 0x00a0d1e9, 0x00beddea, 0x00e4f1f4, 0x00f4f8fa, 0x00eaf1f5, 0x00cedceb,
- 0x00b4d6f8, 0x00aed6fc, 0x009ec4ea, 0x00a6c2e1, 0x00d5dae8, 0x00edf5f5, 0x00eaf3f6, 0x00d4e1f1, 0x00b9cfed, 0x00bacfea, 0x00c0d0e5, 0x00ced9e2, 0x00ecf1f3, 0x00ecf4fc, 0x00d6e3fb, 0x00bbcff5,
- 0x009fc4e6, 0x00aecbe4, 0x00d2e3f1, 0x00e1e6e9, 0x00f5f4ef, 0x00ebece8, 0x00d4d8d9, 0x00d5d9df, 0x00cfccd0, 0x008a8284, 0x00443838, 0x004c3b37, 0x005c4746, 0x00634f4d, 0x006b5854, 0x00705d59,
- 0x00705e57, 0x006d5d55, 0x006c5a51, 0x006a574c, 0x0067564a, 0x00675149, 0x00664a46, 0x00614741, 0x005b4336, 0x005e4537, 0x0061493a, 0x00695040, 0x00785c4c, 0x007f6250, 0x00846754, 0x008b6d5a,
- 0x00bfc5d7, 0x00495484, 0x003c548a, 0x0039559a, 0x00415ba6, 0x004a5da6, 0x00495ba0, 0x004c5b9c, 0x00465ba5, 0x0034529a, 0x00314688, 0x004d3f72, 0x007d3d4b, 0x00a53c30, 0x00c13b1d, 0x00de4321,
- 0x00cc413d, 0x00ba5257, 0x00e4a3aa, 0x00f1d5dc, 0x00dde0de, 0x00dcd9de, 0x00dbd5db, 0x00dbd8dd, 0x00dedae2, 0x00ded9e3, 0x00dbd5df, 0x00d9d4dd, 0x00d8d4df, 0x00d6d4de, 0x00d2d0d9, 0x00d2ceda,
- 0x00d0cfdc, 0x00ceccdc, 0x00ccc9d7, 0x00c8c5d5, 0x00bdbace, 0x00b4b2c5, 0x00b6b2c7, 0x00beb9d0, 0x00c8bfda, 0x00c6bfdb, 0x00c0bcd7, 0x00ccc7e6, 0x00cac9ed, 0x00b3b5dd, 0x00676f96, 0x00313964,
- 0x002c305f, 0x001a1b45, 0x001c1d42, 0x00353654, 0x00727087, 0x00a3a0b4, 0x00c6c3d6, 0x00d5d2e2, 0x00d6cfe4, 0x00d1cbe0, 0x00c8c6d5, 0x00c7c6d4, 0x00d1cddb, 0x00d1cedd, 0x00cccdd6, 0x00caccd6,
- 0x00868596, 0x002c2d41, 0x00424358, 0x0084869d, 0x00c3c5d4, 0x00d4d6df, 0x00c7cacf, 0x00a7aaaf, 0x0088889e, 0x00717090, 0x00535481, 0x0041437b, 0x002a2c60, 0x001f2251, 0x00191d46, 0x0013143d,
- 0x00110e39, 0x00120f3c, 0x00111341, 0x00151546, 0x00100f45, 0x000b0f3a, 0x000c1538, 0x000b1434, 0x00090c27, 0x000c0f24, 0x001a1d2b, 0x00282b31, 0x00424245, 0x00545051, 0x00676361, 0x00878384,
- 0x009598b0, 0x007c7fa0, 0x00515280, 0x0043417f, 0x0049468d, 0x0054508c, 0x004b4a78, 0x0044425b, 0x004e464c, 0x00564f49, 0x005d5452, 0x006a5e6c, 0x007f777f, 0x006f656c, 0x00473f43, 0x00514d48,
- 0x00544943, 0x0066564c, 0x00826d5f, 0x008e7464, 0x00967866, 0x009c887d, 0x00e5d8d3, 0x00fcf9f2, 0x00fffeff, 0x00fbfbfd, 0x00fcfbfb, 0x00f1f2ef, 0x00908c81, 0x00403726, 0x005d513d, 0x00786851,
- 0x00cd6630, 0x00de6324, 0x00ee6312, 0x00fb6003, 0x00fc630b, 0x00ee6c21, 0x00f08246, 0x00eb8d67, 0x00ea8a7d, 0x00ec887e, 0x00e28c84, 0x00e4ada7, 0x00eccac4, 0x00e7d5d0, 0x00dfd5d2, 0x00dbd6d5,
- 0x00eddde1, 0x00f5e1e3, 0x00f3dcdf, 0x00baa8a9, 0x00463a38, 0x00503f4d, 0x00827187, 0x00574663, 0x00423a63, 0x00413b65, 0x0035345d, 0x0020204b, 0x00414066, 0x008588a5, 0x00c0c2d8, 0x00f0f0f7,
- 0x00a2accc, 0x003b3b94, 0x003f36b4, 0x00897bef, 0x00d9d8f4, 0x00f6f7f8, 0x00e1e4ea, 0x00c2c1e0, 0x00bab2e3, 0x00d3d1ee, 0x00f0f5f7, 0x00f3fcec, 0x00f2f6fe, 0x00e4e6fd, 0x00d2d4ee, 0x00b0b5c5,
- 0x008282a2, 0x00645c9c, 0x007267b9, 0x00938ad9, 0x00c7c0f4, 0x00e0d7fe, 0x00ede5f5, 0x00ebe6e4, 0x00e3e2d0, 0x00d0d1c7, 0x00d2d6e0, 0x00a2a8d0, 0x003d448c, 0x0017276f, 0x00021b5c, 0x00021f56,
- 0x00011150, 0x00190d44, 0x003e1e45, 0x00602640, 0x00a96b73, 0x00d4a9ab, 0x00ebd5d1, 0x00c3c0b7, 0x00736c68, 0x00574947, 0x004f4743, 0x00484b45, 0x00563c48, 0x00503748, 0x0041333d, 0x00303438,
- 0x003b3034, 0x00421f26, 0x0043181f, 0x0040151f, 0x001e1d1f, 0x00240f20, 0x001d0e1e, 0x000c1718, 0x00151c22, 0x00271b2a, 0x00332133, 0x00362131, 0x00182833, 0x00122133, 0x00121b3a, 0x00201442,
- 0x001d1d5a, 0x00222763, 0x0027346f, 0x002b3d7b, 0x00324894, 0x00364da0, 0x004056a8, 0x004355a4, 0x005a66a1, 0x009eaad3, 0x00f2faff, 0x00f7f8f7, 0x00fefefd, 0x00fdfefd, 0x00fcfcfc, 0x00b1b2b2,
- 0x0017181a, 0x00040907, 0x000d1714, 0x000b1a15, 0x0011221b, 0x0016201d, 0x00171e1f, 0x00151e1e, 0x0015191b, 0x00111518, 0x000e1213, 0x000d120f, 0x000a0e0c, 0x00040804, 0x00040903, 0x00131712,
- 0x00504b5e, 0x007b7788, 0x008f8b9c, 0x00807c8e, 0x00474353, 0x0018151f, 0x00040207, 0x00050206, 0x000a0402, 0x00060102, 0x00040101, 0x00020200, 0x00000200, 0x00020601, 0x00010602, 0x00000400,
- 0x0027262a, 0x0099979c, 0x00f4f1f6, 0x00ede7ee, 0x00efe7ef, 0x00efe8f1, 0x00eae7ef, 0x00f2eef5, 0x00f6eefa, 0x00f5ebf9, 0x00f6eef9, 0x00faeef7, 0x00fae8ec, 0x00fdedf0, 0x00f9e0e0, 0x00c2a5a1,
- 0x00685ba6, 0x004b5cb8, 0x004966c5, 0x004b63bc, 0x005961b3, 0x004f5db5, 0x00535ca9, 0x006e6096, 0x00d6a9aa, 0x00ffeae7, 0x00f8ecf0, 0x00e5e3f6, 0x00faebf8, 0x00d2b7b9, 0x005c362e, 0x00401100,
- 0x00431005, 0x00390e05, 0x00250502, 0x00110001, 0x00040003, 0x00060202, 0x000c0a05, 0x0015120b, 0x005b5351, 0x00bcb7b4, 0x00fef9f9, 0x00fefcfa, 0x00fdfcfc, 0x00fcfbfd, 0x00efefef, 0x00afaeb1,
- 0x00715a55, 0x0076605b, 0x007f6b68, 0x00806d6c, 0x00867374, 0x00877677, 0x00887777, 0x00887776, 0x00857872, 0x007f736c, 0x007d6e65, 0x00836b61, 0x007b6a68, 0x00736d7b, 0x0097a6c3, 0x0084a7d8,
- 0x004b8adb, 0x00488dea, 0x00438dee, 0x004287e6, 0x00437cd8, 0x003b7ade, 0x00367de1, 0x00367dde, 0x003a79e1, 0x003676dd, 0x003274d8, 0x003274d7, 0x003070d6, 0x002967cd, 0x002361c4, 0x002461c4,
- 0x002c65cf, 0x002761c8, 0x00205bbf, 0x002865c8, 0x002766c9, 0x002160c4, 0x002462c6, 0x002663c6, 0x002b66ce, 0x002a67cf, 0x002765c9, 0x002663c1, 0x002761c0, 0x00265ebc, 0x00255ab8, 0x002254b3,
- 0x001d47a7, 0x0019419c, 0x000f348e, 0x00082d84, 0x00072982, 0x0009227a, 0x000a1e74, 0x00061e6e, 0x00091d6a, 0x00071c64, 0x0004195f, 0x00061d61, 0x00082065, 0x00092269, 0x00081f69, 0x00061d66,
- 0x000e1873, 0x00293585, 0x00727ec1, 0x007881b7, 0x00575f86, 0x007b82a5, 0x00aaafd2, 0x00a1a4cc, 0x007978ae, 0x007276b1, 0x00757eb7, 0x006686ae, 0x008997d1, 0x006f75a7, 0x00404267, 0x001f2736,
- 0x00040832, 0x00050c53, 0x0018216d, 0x000e175a, 0x00000916, 0x000d0d0f, 0x007c7d76, 0x00edede6, 0x00fefaf7, 0x00fefcfc, 0x00f9fdfb, 0x00faffff, 0x00d3e0cb, 0x00869a6f, 0x005b7835, 0x005a7e29,
- 0x0060753a, 0x00778146, 0x00a7a269, 0x00c7b279, 0x00dbbb83, 0x00e0bd83, 0x00d6b676, 0x00d0b272, 0x00deb17a, 0x00deb17a, 0x00d4ab77, 0x00c1a379, 0x00c6af9d, 0x00dfcdc6, 0x00eae1e0, 0x00e2e1e1,
- 0x00dcdfe0, 0x00d8ded9, 0x00e0e3de, 0x00edeeea, 0x00fbf3f9, 0x00fdf4fd, 0x00fdf3fc, 0x00faf2f6, 0x00f6f3f2, 0x00f3f3f0, 0x00f3f2f4, 0x00f2f2fa, 0x00f6edf8, 0x00f7ebef, 0x00fbf3ee, 0x00f5ecdd,
- 0x00edc8b3, 0x00ecad99, 0x00eaa28d, 0x00f3ab99, 0x00f4dfc9, 0x00faf7e9, 0x00dbd7ca, 0x00b6998d, 0x00c26d5e, 0x00d06b51, 0x00c96249, 0x00c26a5a, 0x00dfb8a3, 0x00f6ead7, 0x00ecfbee, 0x00b4c8c6,
- 0x003a3659, 0x00130c3b, 0x000e0c46, 0x00161e5d, 0x001a3977, 0x00304985, 0x00394d7f, 0x007e90b3, 0x00e0e6f3, 0x00eff3f8, 0x00f5faf6, 0x00faf8f0, 0x00fdf6eb, 0x00ffe8dc, 0x00f8c7b5, 0x00e59b82,
- 0x00dc8651, 0x00c38c53, 0x00b8a364, 0x00acbc76, 0x00a4c57a, 0x0099b16a, 0x007f8b4d, 0x00575a29, 0x00282e16, 0x00061803, 0x0047544a, 0x00c3bebf, 0x00fcfdfc, 0x00fdfaf3, 0x00f7e8e0, 0x00cfac9e,
- 0x00b47063, 0x00d0957d, 0x00f6dbc0, 0x00eae9c4, 0x00bdeec7, 0x00c7dfdc, 0x00dbe2f1, 0x00e6eef4, 0x00f5fcf8, 0x00f8fefc, 0x00f3f5fa, 0x00eeeaf3, 0x00efe4f1, 0x00d8c8d0, 0x009b8787, 0x00654e48,
- 0x00413b3b, 0x00655f5a, 0x007b756a, 0x007b7361, 0x006f6657, 0x006d6861, 0x006d6e6f, 0x00494f5e, 0x00131e49, 0x00212f65, 0x00566196, 0x00989cc5, 0x00b5bde2, 0x009da9d6, 0x007e8ebf, 0x006b7cb5,
- 0x006974b5, 0x00424d7f, 0x007f88a4, 0x00c2cace, 0x0070785a, 0x0052592c, 0x00777f48, 0x008a9358, 0x008c9a5f, 0x00829259, 0x00657541, 0x00445026, 0x002c3419, 0x00717567, 0x00f5f6ef, 0x00fbf9f9,
- 0x00fdfcff, 0x00fefbff, 0x00fefbfa, 0x00d6cec7, 0x0054443c, 0x0046382d, 0x00c4b9af, 0x00fbfbf1, 0x00fffafd, 0x00fefeff, 0x00fdfefc, 0x00fbf6f2, 0x00828680, 0x00111710, 0x00171912, 0x0031271e,
- 0x00603730, 0x007c473c, 0x0094563f, 0x00a55f40, 0x00af683e, 0x00b5643a, 0x00ae5a37, 0x009b5435, 0x008c4b3a, 0x008f4f3e, 0x00d39a8a, 0x00fcc7bd, 0x00a8919c, 0x00636d93, 0x00547bb6, 0x004080cf,
- 0x00476dc6, 0x003a6a8a, 0x005e6968, 0x00af6968, 0x00a785a2, 0x006880ad, 0x004270a5, 0x00415c8f, 0x005a778b, 0x00b3c4d0, 0x00cddcdd, 0x00beccc1, 0x00555ea2, 0x00162a78, 0x00113271, 0x00214c64,
- 0x0033536e, 0x00253a7a, 0x001f296e, 0x004a4a82, 0x0097977c, 0x00b8978d, 0x00c4938f, 0x00ca978e, 0x00c18c80, 0x00a4786d, 0x0084635c, 0x00745a57, 0x0071555a, 0x00795858, 0x007c514c, 0x00824e48,
- 0x00885437, 0x008c503c, 0x008d4b3f, 0x00894742, 0x00774a48, 0x00684e4e, 0x00625a58, 0x00606964, 0x00767978, 0x00817b81, 0x00837a7d, 0x007c726d, 0x007a6862, 0x00786056, 0x0074584b, 0x00745147,
- 0x00795652, 0x007c5f5e, 0x007d6c6b, 0x00786f73, 0x006d6e73, 0x00696b76, 0x00505661, 0x0041444f, 0x003d404f, 0x00444653, 0x004a4b55, 0x005a5a61, 0x00757476, 0x0083847f, 0x008f9285, 0x00919285,
- 0x008f848a, 0x0081767b, 0x006f6365, 0x00655755, 0x005d4d46, 0x005d4c43, 0x0067554e, 0x0073615c, 0x00857170, 0x00988786, 0x00b1a0a4, 0x00c4b6c1, 0x00d6ccdb, 0x00d7d0df, 0x00cac7d6, 0x00b5b7c8,
- 0x009090a3, 0x00808193, 0x00737786, 0x006b707a, 0x00595c64, 0x00494c55, 0x0042444d, 0x003b3b43, 0x00342930, 0x00413437, 0x005c5154, 0x006c6162, 0x00857f7e, 0x0091908d, 0x009b9f9f, 0x00a3aaa8,
- 0x00afabb0, 0x00b1adb2, 0x00adadaf, 0x00b2b4b3, 0x00bebec1, 0x00c5c5c8, 0x00c8caca, 0x00c4c5c7, 0x00c2c0c3, 0x00b5b3b4, 0x00cccdce, 0x00f0f4f3, 0x00fffeff, 0x00fefbff, 0x00fcfbff, 0x00fbfbfc,
- 0x00d6d0cd, 0x007d7866, 0x007b6d52, 0x00a48664, 0x00c39570, 0x00ca9a78, 0x00cea37f, 0x00d9ab88, 0x00d59b81, 0x00be8a69, 0x00be9264, 0x00cda470, 0x00ceaf73, 0x00cdaf7b, 0x00c3a676, 0x00baa074,
- 0x00a18664, 0x00756244, 0x00524731, 0x004b453a, 0x004a473f, 0x004f4945, 0x00514f4d, 0x00505253, 0x0058657a, 0x00576e8a, 0x004a7199, 0x003f72b3, 0x004377c2, 0x003d71c1, 0x00386aba, 0x004075b9,
- 0x00597aa8, 0x008da8c1, 0x00d0e3f0, 0x00e3eef0, 0x00e6e8e6, 0x00f0e7d2, 0x00f1eadd, 0x00cedaec, 0x006f94e4, 0x004b7ad5, 0x005e95ed, 0x007eb8f3, 0x00b1e0fa, 0x00c6eeff, 0x00bee6fb, 0x00a4cbef,
- 0x0071a1d8, 0x00769dcc, 0x009dbee0, 0x00c3dbf0, 0x00e5f1fc, 0x00eefbfe, 0x00d7eef9, 0x00add0e6, 0x0088beea, 0x0082c2f3, 0x0084bfe7, 0x00b2d4ec, 0x00e6f5fa, 0x00f3faff, 0x00d8e1f1, 0x00aec4dc,
- 0x0086b3ed, 0x007eb2f1, 0x006ca0db, 0x0086addf, 0x00c4d5ed, 0x00d5eff7, 0x00c8e7f4, 0x00a1c5e4, 0x009dbff7, 0x00add0ff, 0x00a2c3eb, 0x00acc9e3, 0x00d6effe, 0x00c8e3fe, 0x009ab7ef, 0x00779be1,
- 0x006795c8, 0x0081a2cc, 0x00c4daf2, 0x00e8eef8, 0x00edece8, 0x00d6d6d5, 0x00cbcccf, 0x00dadddf, 0x00d3cfd6, 0x00877e84, 0x003d3536, 0x00453b3a, 0x00534646, 0x00584e4d, 0x005e5551, 0x00635b58,
- 0x00675c5a, 0x00635a55, 0x005f5752, 0x005d554d, 0x005d534b, 0x005b4f4a, 0x00564848, 0x00504341, 0x004d3c3c, 0x004d3c39, 0x0050413b, 0x00594b40, 0x0068574a, 0x00705f50, 0x00776857, 0x007e6d5d,
- 0x00c6bace, 0x004f4e88, 0x00405299, 0x00355baa, 0x00315fa3, 0x003e6093, 0x004a5c8c, 0x00515c85, 0x0041598a, 0x0030508f, 0x002e4994, 0x003c4a93, 0x005e3e54, 0x00944236, 0x00ce4e34, 0x00e74726,
- 0x00d63b2c, 0x00b83f3f, 0x00c6707d, 0x00deb5c3, 0x00d7e3e1, 0x00d5d8d9, 0x00d8d1d9, 0x00d8d2d9, 0x00d5d5d5, 0x00d5d4d8, 0x00d4d2d9, 0x00d6d3dc, 0x00d5d0db, 0x00d4d1dc, 0x00d4cddb, 0x00d3cadb,
- 0x00c7c8d3, 0x00c7c8d4, 0x00c5c4d5, 0x00bebbcd, 0x00b7b4c8, 0x00b8b5c9, 0x00bebad1, 0x00c2bfd6, 0x00b9becd, 0x00b8bacb, 0x00b8b4d1, 0x00aaa9cb, 0x009c99c3, 0x00787dab, 0x004c5385, 0x003b3f78,
- 0x002b3a63, 0x00131f44, 0x00242c4d, 0x005c5e7c, 0x009c9ab2, 0x00bcb8cd, 0x00d0cadf, 0x00d6cfe6, 0x00cdcdda, 0x00cbcad8, 0x00cac7d5, 0x00cdcad8, 0x00ceccda, 0x00ccc9d7, 0x00c5c2d0, 0x00c2becd,
- 0x00768186, 0x00434a57, 0x009597ac, 0x00bfc0d5, 0x00ccccdc, 0x00cfced9, 0x00c0c1cc, 0x00afb2be, 0x00939eb0, 0x008993b0, 0x00777fac, 0x005a6998, 0x0027385e, 0x000d213c, 0x000b1b30, 0x000b1827,
- 0x00071720, 0x0001111f, 0x0004102a, 0x00081233, 0x000d153f, 0x000a1437, 0x000b1334, 0x000e1434, 0x00121f27, 0x002a2f37, 0x0045424b, 0x005a565a, 0x00676260, 0x00635f5b, 0x007b7776, 0x00999092,
- 0x0076888f, 0x00586579, 0x00434772, 0x004e4b85, 0x00665c94, 0x00786a98, 0x006e607c, 0x00645963, 0x00646650, 0x0066694e, 0x006b6858, 0x00847b79, 0x009d9795, 0x007d7975, 0x004a4444, 0x00675d5e,
- 0x00666155, 0x00665750, 0x007c6160, 0x008f6c6c, 0x00986f6f, 0x009e8783, 0x00e5d9d4, 0x00fff9f4, 0x00f9fcf7, 0x00f7f9f4, 0x00fcfefb, 0x00eff1ed, 0x008b897e, 0x003e3728, 0x005e5240, 0x007a6854,
- 0x00747d65, 0x0093764a, 0x00b57232, 0x00d86811, 0x00f16a01, 0x00f37107, 0x00f87712, 0x00f27116, 0x00ee6a11, 0x00f2630f, 0x00f75616, 0x00f45b28, 0x00f27544, 0x00f28c63, 0x00f5997b, 0x00f49e87,
- 0x00ef937c, 0x00ed8e7e, 0x00ed8177, 0x00c85449, 0x0089180c, 0x00753e41, 0x009a7c93, 0x00836a87, 0x006d6987, 0x007f82a4, 0x007f82ae, 0x00636492, 0x00747892, 0x00cac9db, 0x00f6f0fc, 0x00fef4f9,
- 0x00ccd4de, 0x009a9eb5, 0x00bfbada, 0x00ebe3fb, 0x00ebe1f1, 0x00d3cddc, 0x00c8bfcf, 0x00c9bdd5, 0x00cccfe2, 0x00d1d3e8, 0x00c2c2e6, 0x00abaed6, 0x00878ab8, 0x007471b6, 0x00645db6, 0x00574eb2,
- 0x006261a8, 0x008488b0, 0x00bdc2d7, 0x00dbe0e7, 0x00dfe2ee, 0x00e7def7, 0x00e9dbf3, 0x00f3ebeb, 0x00e8efce, 0x00e5eedd, 0x00dee1ed, 0x00979eca, 0x001c297d, 0x0005196e, 0x0004196b, 0x00042469,
- 0x00001955, 0x00120f48, 0x003f194c, 0x00571136, 0x00863c48, 0x00bb8488, 0x00e4c3c5, 0x00ede5e0, 0x00a5ae9e, 0x00656556, 0x00474740, 0x003f4f48, 0x0054404d, 0x004f3947, 0x00433743, 0x00303a3b,
- 0x00243223, 0x002d211e, 0x002d1925, 0x002b1c2c, 0x00052835, 0x0016112b, 0x001b1026, 0x00111b1d, 0x000d1d13, 0x00201a1a, 0x00351f29, 0x003e2632, 0x00293735, 0x00263439, 0x00262a3d, 0x0035254d,
- 0x001e2645, 0x001c2746, 0x001b264e, 0x001a285c, 0x00233378, 0x002d3b8a, 0x003b459b, 0x003b469a, 0x0054649b, 0x00a6b2de, 0x00f5fbfd, 0x00f6f5f3, 0x00fffdfd, 0x00fcf9fc, 0x00fef9fe, 0x00a29fa2,
- 0x00020801, 0x00000801, 0x000b1510, 0x00081814, 0x000f221d, 0x00131f1f, 0x001a2022, 0x001b2022, 0x00111e18, 0x00111b15, 0x00111815, 0x00101412, 0x000e120e, 0x000b0d0a, 0x000a0a08, 0x00151311,
- 0x0043444c, 0x00706f78, 0x0085828f, 0x00777382, 0x003f3c49, 0x0016121f, 0x0008020e, 0x00070009, 0x00010100, 0x00000000, 0x00020200, 0x00020300, 0x00000100, 0x00010300, 0x00030404, 0x00010303,
- 0x001c251f, 0x008e9393, 0x00f3f1f7, 0x00f2e9f4, 0x00f1e6f5, 0x00ede5f2, 0x00efe9f4, 0x00f7eefb, 0x00eeedf2, 0x00edecf2, 0x00f8eff8, 0x00fceef7, 0x00fce9f0, 0x00fdecef, 0x00fadfe0, 0x00c5a2a2,
- 0x00615b9b, 0x00475cb0, 0x004864c2, 0x004b61b9, 0x005a62b3, 0x00535eb8, 0x00585daf, 0x00715c96, 0x00d3aa9f, 0x00f9e8dc, 0x00f6ecee, 0x00e6e4fb, 0x00f4e8f7, 0x00d8c1c4, 0x006a4b45, 0x003c140a,
- 0x00321300, 0x00240a00, 0x00170203, 0x00110305, 0x00130b18, 0x002f2420, 0x00594d41, 0x006a6254, 0x0094937e, 0x00dad7c7, 0x00fffcef, 0x00fffcf2, 0x00fafbf4, 0x00fbfaf6, 0x00ebeae7, 0x00ada9ab,
- 0x0076695a, 0x007a6c61, 0x0081726d, 0x00897a79, 0x008a7a7e, 0x008b7b7f, 0x008c7d80, 0x00908183, 0x00827f71, 0x00817c6d, 0x0083766e, 0x0088706a, 0x007b6e71, 0x007a798b, 0x0091a1c6, 0x00759bd5,
- 0x00418adb, 0x003c8ae4, 0x003e86e9, 0x003f82e1, 0x004478d3, 0x003b7ada, 0x003b7bdf, 0x003c7de2, 0x00347bda, 0x003177d7, 0x003475da, 0x003371d9, 0x002f6dd3, 0x002e6bd1, 0x002a65cd, 0x00225fc5,
- 0x002565c4, 0x002563c1, 0x00225bbc, 0x00265dc0, 0x002a60c4, 0x00255bc1, 0x00275dc5, 0x002b62ca, 0x002365c6, 0x002467c8, 0x002766c9, 0x002864c3, 0x002662c1, 0x00235fbd, 0x00275dbe, 0x002a5ec0,
- 0x001f57ae, 0x001f52ac, 0x001b47a4, 0x00173f9a, 0x00113a95, 0x00132f8d, 0x00162888, 0x00132783, 0x0008266f, 0x00042468, 0x00092167, 0x00031c61, 0x00051f66, 0x000b2770, 0x000e2972, 0x000b2270,
- 0x00071d63, 0x001f326c, 0x00808dc8, 0x00aebbe3, 0x0079819a, 0x00696f86, 0x009d9eba, 0x00adb0cd, 0x00a1aacc, 0x00a7b1da, 0x007a86bb, 0x003c5b92, 0x00707db9, 0x009da2cc, 0x0077798f, 0x00565959,
- 0x0027324b, 0x00111a58, 0x000e0f5c, 0x00020337, 0x000a1203, 0x0041452a, 0x00b9b99d, 0x00f8f8e7, 0x00f7fbe9, 0x00f8fcf3, 0x00fbfdff, 0x00f9fdff, 0x00bfd0bd, 0x00738960, 0x005e7b36, 0x00607e2a,
- 0x005d833e, 0x0099ad6f, 0x00e0e1a8, 0x00f2e4af, 0x00f9e2ad, 0x00f6dda5, 0x00edcc95, 0x00e4c086, 0x00dbba78, 0x00dbb371, 0x00d3a877, 0x00c6a589, 0x00dbc2b0, 0x00ecd9d6, 0x00e9dce8, 0x00e0dde9,
- 0x00dce6e0, 0x00e4eee4, 0x00f1f7ec, 0x00f5f7ef, 0x00faf5f1, 0x00fef1fc, 0x00fef2ff, 0x00fbf6fb, 0x00e7fae6, 0x00e8f5e4, 0x00f2f2ed, 0x00fcf0f8, 0x00fbecff, 0x00f7f1fc, 0x00eef6f8, 0x00eefdfa,
- 0x00dbfaf0, 0x00ecf6ec, 0x00fef2f0, 0x00feecf0, 0x00fef4f9, 0x00e3ebf7, 0x00d0dbe7, 0x00d4d5d5, 0x00e6c2a0, 0x00dba177, 0x00d57f5d, 0x00d87262, 0x00eec2ae, 0x00f7efda, 0x00f1f5e8, 0x00b0bcbe,
- 0x002b2e45, 0x001a1542, 0x00201c58, 0x00273073, 0x00264a8c, 0x00334fa0, 0x00324798, 0x003e5193, 0x008ba1b5, 0x00d9e7ed, 0x00f9faf5, 0x00fcf7e9, 0x00f7d1ba, 0x00f3a58b, 0x00e67356, 0x00de5232,
- 0x00d06c24, 0x00c28239, 0x00bea45d, 0x00b3c07a, 0x00a5ca81, 0x0092ac69, 0x0079834d, 0x004c4f1e, 0x00172904, 0x00032101, 0x0076877b, 0x00e9ddf0, 0x00fdfdfb, 0x00fefbef, 0x00fff6e7, 0x00fadcca,
- 0x00e9a999, 0x00dea693, 0x00e5bcaa, 0x00d9d3b4, 0x00c0f7c0, 0x00dbe8da, 0x00f4eef3, 0x00f8f8f5, 0x00f0fce9, 0x00f3fff3, 0x00f8f8fa, 0x00e8e2ed, 0x00c7b2be, 0x00a4868c, 0x007e5959, 0x006c3f39,
- 0x005d5f48, 0x0072725c, 0x00827d6a, 0x007b7462, 0x0071695b, 0x007d7875, 0x00726d77, 0x003c3c53, 0x00041636, 0x000e214d, 0x00262f60, 0x003f456b, 0x004f557d, 0x004c5785, 0x00515b93, 0x00606ba8,
- 0x006274aa, 0x0053628e, 0x009198b4, 0x00c2c7c9, 0x00616648, 0x005b602e, 0x00898f55, 0x0099a467, 0x0093a860, 0x008b9f5b, 0x006f7e45, 0x00435321, 0x003e482a, 0x00919686, 0x00fcfaf9, 0x00fffcff,
- 0x00f7fffb, 0x00f8fdf7, 0x00fbf9f7, 0x00bfb6ae, 0x003f2e23, 0x0037261b, 0x00b3a198, 0x00fbf7f2, 0x00f7f8f1, 0x00f5fcf7, 0x00fbfefc, 0x00fffdf8, 0x009b9b92, 0x00171e16, 0x0021201d, 0x003a302b,
- 0x00583e2a, 0x00714932, 0x008d533d, 0x009b5c3f, 0x00a0653a, 0x00ac5d32, 0x00ad5232, 0x009e4d31, 0x00884a2b, 0x00804122, 0x00b16c5a, 0x00eba692, 0x00b38b8a, 0x006b627d, 0x00556da3, 0x004576c0,
- 0x006878b3, 0x00649d99, 0x009abea3, 0x00efcbb9, 0x00c6c4da, 0x005390bf, 0x000d629d, 0x001c5ca1, 0x00477c9d, 0x00bacbe8, 0x00ededf7, 0x00cddfd4, 0x005867b7, 0x001c3091, 0x00183b8f, 0x0023517d,
- 0x002a5e7e, 0x001e3f84, 0x003a4a9d, 0x007070b2, 0x00a2a389, 0x00bf968d, 0x00d0928f, 0x00d0968c, 0x00bd9375, 0x00a7846d, 0x00977667, 0x00866e62, 0x008a665f, 0x0094635c, 0x009a564f, 0x00a25146,
- 0x0088582e, 0x0088512f, 0x00864636, 0x00803e3d, 0x00683f48, 0x0054444b, 0x00534f59, 0x0059636b, 0x00747c79, 0x008c8689, 0x00988b8f, 0x00968f8b, 0x008e827a, 0x0087786e, 0x007f7064, 0x007e6b5e,
- 0x00786d5c, 0x007d7768, 0x008c8685, 0x008a8c92, 0x00828a95, 0x007b838d, 0x006c6c7b, 0x00525361, 0x003a404a, 0x0041484e, 0x0052555c, 0x00616367, 0x00757776, 0x007e7e77, 0x008c8980, 0x008c897e,
- 0x00767772, 0x00656460, 0x00574e4e, 0x00544845, 0x00534442, 0x005a4a45, 0x006a5554, 0x00725e5e, 0x007c6c68, 0x00908782, 0x00b4a5ac, 0x00cdbdce, 0x00dbd1e4, 0x00ded4e9, 0x00d5cee5, 0x00c3bfd6,
- 0x00959fac, 0x0088909b, 0x007f828e, 0x00797c84, 0x006a6d73, 0x0061616d, 0x00595765, 0x005a5362, 0x00555654, 0x00696564, 0x00877d7e, 0x008e8686, 0x009b9897, 0x00a1a4a3, 0x00a7acad, 0x00a8acaf,
- 0x00a4a8a6, 0x00a4a8a7, 0x00a8a7aa, 0x00afaeb1, 0x00b9babc, 0x00c3c4c6, 0x00cfccd0, 0x00c9c5c9, 0x00babfb9, 0x00b1b3b1, 0x00cacdcc, 0x00eaf1e9, 0x00fdfdfc, 0x00fefdfe, 0x00fffbff, 0x00fffbff,
- 0x00d6d9cd, 0x00848169, 0x006d583d, 0x00a07b5c, 0x00cf946e, 0x00c19d6a, 0x00b89a65, 0x00cc9f77, 0x00d6a079, 0x00c28a63, 0x00b27d56, 0x00bc9165, 0x00cda877, 0x00c99c73, 0x00bc7d68, 0x00cb7e75,
- 0x00b9a266, 0x00947e4e, 0x00594629, 0x004f4133, 0x00514942, 0x004e4742, 0x00514b4b, 0x00514b53, 0x00506a71, 0x005f8190, 0x005b83a6, 0x004076b6, 0x004073bf, 0x003e74c4, 0x003565b8, 0x003160aa,
- 0x002e5b80, 0x0052788d, 0x00a9c1ce, 0x00cfdbde, 0x00d1d7d4, 0x00d8dfe3, 0x00dee4f9, 0x00c5cef7, 0x007792bf, 0x00708db8, 0x00a9c1e6, 0x00c9e3f4, 0x00c3e0ed, 0x00a6cbef, 0x0098c0fb, 0x0087b8ff,
- 0x0097c4dc, 0x00b1d7e6, 0x00d2ecfb, 0x00e8f6fe, 0x00f2f9fd, 0x00ecf6fa, 0x00bfd2ee, 0x00a0bde7, 0x0081c3f3, 0x0070bbf7, 0x0079baf2, 0x00b6daf5, 0x00f0feff, 0x00f2f6ff, 0x00d5ddf3, 0x00a9bee3,
- 0x0085c3f4, 0x007ec2f7, 0x0073b2f7, 0x0092c4f6, 0x00d1e5fb, 0x00c5ecf7, 0x009ac7e3, 0x0088b6e5, 0x0093cff5, 0x009bd5f9, 0x009ac9fa, 0x00a4d2f8, 0x00aad3f5, 0x008cb8ed, 0x007ea6f2, 0x00709ef9,
- 0x005e97d0, 0x007eabd4, 0x00c9e5fa, 0x00e6effc, 0x00dddbde, 0x00c9c5c8, 0x00d5d4d8, 0x00eae9f1, 0x00c8cacc, 0x00777775, 0x003b3637, 0x00403a3d, 0x00474345, 0x004f4b4a, 0x00585354, 0x005c5959,
- 0x00555950, 0x00575950, 0x00585852, 0x00595751, 0x005a5650, 0x00555252, 0x004d4b4f, 0x00474449, 0x003a3d35, 0x003a3a35, 0x00433a38, 0x004f453f, 0x005d554a, 0x00685f52, 0x0073675d, 0x007a6c63,
- 0x00bebccf, 0x0051528c, 0x00455397, 0x003b57a4, 0x003757a0, 0x003f5b96, 0x0042588e, 0x00445385, 0x003f528d, 0x003a5195, 0x00354c93, 0x003b4e96, 0x004c3d65, 0x00773f4c, 0x00ba5951, 0x00d24d36,
- 0x00d83c27, 0x00cb3e38, 0x00b04445, 0x00c7868f, 0x00e2d2db, 0x00dbd4e1, 0x00cfd0dc, 0x00ccccd6, 0x00cfd2d7, 0x00d5d3da, 0x00d5cfd6, 0x00dad1d8, 0x00d9cad6, 0x00d5ccd8, 0x00d1cad7, 0x00ccc5d6,
- 0x00c7c3cf, 0x00c7c4d3, 0x00b5b1c5, 0x00b2afc5, 0x00b3b2cf, 0x00b7b9d7, 0x00aeb1d2, 0x00a3a9cd, 0x008d93b7, 0x007d83a5, 0x00767ba9, 0x005e62a1, 0x0051568e, 0x00465082, 0x0035406e, 0x00323b69,
- 0x001f2550, 0x00141842, 0x0045456c, 0x00827fa2, 0x00b1adc8, 0x00c3bfd4, 0x00cfccdc, 0x00d1cfe0, 0x00d1ccdc, 0x00ccc9d8, 0x00c9c6d4, 0x00cdcbd9, 0x00cbcad7, 0x00c7c5d2, 0x00bbbac5, 0x00b5b4c0,
- 0x009497a1, 0x009494a3, 0x00c0becf, 0x00c5c3d3, 0x00c6c4cf, 0x00c9c8d0, 0x00c6c6ce, 0x00cdced8, 0x00cfd0e3, 0x00d1d1e8, 0x00bfbfdc, 0x00a4a9c3, 0x00666e81, 0x00323b4b, 0x00091120, 0x000d1421,
- 0x0007131d, 0x00081221, 0x000c142b, 0x000e1832, 0x00091130, 0x000e152e, 0x001b2034, 0x002e3444, 0x00494c58, 0x0062616b, 0x00726d77, 0x00706b70, 0x00696363, 0x00766f6d, 0x00978e8e, 0x009f9293,
- 0x00656977, 0x0048485c, 0x004d4765, 0x006c6286, 0x008b7c9e, 0x009786a1, 0x00908191, 0x008c7f86, 0x008d827f, 0x0088817a, 0x00827b77, 0x00938b8a, 0x00a7a3a2, 0x0083807d, 0x004c4746, 0x00655e5f,
- 0x008d8684, 0x00877b7b, 0x007b6b6c, 0x00836f71, 0x008c7275, 0x00998b8a, 0x00e0d9d7, 0x00fbf8f5, 0x00fdfbfc, 0x00fdfbfb, 0x00fefefd, 0x00f0f1ed, 0x008b8980, 0x003b372b, 0x00595346, 0x00716759,
- 0x00728068, 0x00847e5e, 0x0094784e, 0x00a5713e, 0x00b66e31, 0x00bc6d29, 0x00c76e27, 0x00d16c26, 0x00e47124, 0x00ef6f26, 0x00f26619, 0x00f05b07, 0x00e24c07, 0x00df480f, 0x00e44b19, 0x00e95126,
- 0x00e95628, 0x00e3502e, 0x00ce4525, 0x00b23119, 0x00891507, 0x006d3b3a, 0x00867a80, 0x00807183, 0x00675781, 0x006b5e97, 0x005b5293, 0x00524e91, 0x007678ac, 0x00d2d4f0, 0x00f5f7fb, 0x00f2f2ef,
- 0x00e9f3f7, 0x00e2e9fa, 0x00dfe3fd, 0x00bdc1ec, 0x00878ac2, 0x005d5f98, 0x0043447d, 0x0043447e, 0x005d5b98, 0x00625e9e, 0x00524e8d, 0x00484881, 0x004c4d83, 0x0055538d, 0x006863a3, 0x008e89cb,
- 0x00c3bee9, 0x00e5e0fc, 0x00f1f0fc, 0x00eaecef, 0x00e8e4ed, 0x00e4e5fa, 0x00eae8f5, 0x00fdece4, 0x00eff7ed, 0x00f7f4ef, 0x00ccc5c9, 0x00776580, 0x0000107a, 0x00071c85, 0x0009267e, 0x00062263,
- 0x0000195f, 0x000d1357, 0x00281f5b, 0x00351444, 0x00562538, 0x00946064, 0x00e8bcb8, 0x00f8e0d2, 0x00ded2cd, 0x009d9a9f, 0x004f5056, 0x00484b4a, 0x00524550, 0x00473a4a, 0x003a3444, 0x00303643,
- 0x00273036, 0x002d2631, 0x002b212e, 0x0029212e, 0x0013242b, 0x00191726, 0x00181420, 0x0014151b, 0x001a1b18, 0x00281e21, 0x0032232a, 0x003e2b36, 0x00383c42, 0x003a3c47, 0x003e3f4f, 0x004a425f,
- 0x0042465b, 0x0041445a, 0x00313550, 0x002a3151, 0x00232a53, 0x00232856, 0x00252a5a, 0x00252b59, 0x00595f84, 0x00bbbee2, 0x00f7fafc, 0x00f7f7f6, 0x00fdfefc, 0x00f9fbfa, 0x00f4f4f5, 0x008d8f8d,
- 0x00000400, 0x00000b06, 0x000a1511, 0x000a1815, 0x000f201c, 0x0015201f, 0x00181e1f, 0x001a1e1f, 0x001a1c1c, 0x001b1d1b, 0x00191919, 0x00131312, 0x0010100b, 0x000d0e08, 0x00090b04, 0x000e1108,
- 0x003d3f46, 0x00676970, 0x007a7c85, 0x006d6d78, 0x0036353e, 0x00100e16, 0x00040208, 0x00040305, 0x00020200, 0x00000000, 0x00010101, 0x00010301, 0x00010200, 0x00030402, 0x00030502, 0x00000100,
- 0x00242823, 0x00979698, 0x00f2edf3, 0x00f2e9f2, 0x00f2e8f3, 0x00eae7f0, 0x00eaebf1, 0x00f0ecf3, 0x00f2ecf5, 0x00f3edf8, 0x00f3ebf9, 0x00f7edfa, 0x00fbebf6, 0x00fbedf0, 0x00f6ddd8, 0x00c29c93,
- 0x006d5989, 0x00595da9, 0x004d62b8, 0x004565b8, 0x004c60b2, 0x00535abc, 0x005d56ae, 0x00765994, 0x00cea99d, 0x00fce8dd, 0x00f7f0e3, 0x00ebe9e3, 0x00f3e8ea, 0x00dac4c9, 0x006c4e4f, 0x003a0e11,
- 0x003d0d01, 0x003e1002, 0x00492111, 0x005b412f, 0x00726a56, 0x009e7a58, 0x00bd906d, 0x00b18e6e, 0x00c5af94, 0x00f4e9d3, 0x00fcfbec, 0x00f9fcf2, 0x00f8fdf7, 0x00fefdfa, 0x00e3e1e0, 0x00a8a1a5,
- 0x0080726d, 0x00847672, 0x00887a78, 0x008d807f, 0x008e8282, 0x008f8484, 0x008e8484, 0x00908686, 0x008c847d, 0x008a817a, 0x00857b75, 0x00867671, 0x007f7270, 0x007d7d92, 0x00859cc6, 0x006395dd,
- 0x00418ae8, 0x004488e5, 0x004285de, 0x00447fd9, 0x00387dda, 0x003a7cdf, 0x00387edd, 0x00367ede, 0x00367cd9, 0x003479d7, 0x003374d7, 0x002f6ed2, 0x002e6bce, 0x002f6cce, 0x002b67cb, 0x002560c3,
- 0x002863c5, 0x002a65c8, 0x00245cbf, 0x002359bc, 0x00295dc2, 0x002459be, 0x002159bb, 0x00215bbe, 0x002063c3, 0x002468cb, 0x002567c9, 0x002667c4, 0x002465c3, 0x002264c1, 0x002362bf, 0x002361bf,
- 0x00235dba, 0x00235cba, 0x002155b6, 0x001d4dae, 0x001849a8, 0x0019409b, 0x00173993, 0x000e328d, 0x000c3188, 0x00092b7f, 0x000b2778, 0x000a2471, 0x00041a69, 0x000a2678, 0x000d2c83, 0x000a2886,
- 0x00142f76, 0x003b528f, 0x008ea0cc, 0x00bec9e8, 0x00a8acc1, 0x007d7e96, 0x0081809f, 0x009da0cb, 0x00adb6ec, 0x00adbaf8, 0x006477bb, 0x0018387b, 0x003d5194, 0x0094a1d5, 0x00949fbf, 0x00737c83,
- 0x00626a71, 0x003d4358, 0x000a0e2a, 0x00050619, 0x00232922, 0x00676a53, 0x00d6d7bd, 0x00fdfced, 0x00fdf9f6, 0x00fcfbfa, 0x00fafcfa, 0x00f2fdf2, 0x00a9c29d, 0x0066844e, 0x005c7b35, 0x005b782a,
- 0x0078924e, 0x00c6d99e, 0x00f7fecd, 0x00fcfbd1, 0x00fcf6d2, 0x00fef7d2, 0x00faeabf, 0x00f4deac, 0x00e1ca8b, 0x00d4b879, 0x00c3a876, 0x00c4b09e, 0x00dcc8c0, 0x00e7d6d0, 0x00e1d5d6, 0x00e5e0e2,
- 0x00ebf3e8, 0x00f1f6f3, 0x00f7fdf8, 0x00f6fdf7, 0x00f7f6f9, 0x00f9f3f5, 0x00f9f5f0, 0x00f8f6f4, 0x00f0f7ed, 0x00f0f3ed, 0x00f0eff0, 0x00f3eff5, 0x00f6f1fc, 0x00f8f7fe, 0x00f3f8fa, 0x00f3fcfb,
- 0x00e5f7f6, 0x00f4faf9, 0x00fefbfc, 0x00fef6fa, 0x00f0eaf1, 0x00d4d8e2, 0x00c5cfd4, 0x00d5d9d5, 0x00f4e7d8, 0x00f9dfcf, 0x00ebc4b4, 0x00e9b1a8, 0x00f3ded2, 0x00f1efe1, 0x00ebf2e4, 0x009eada6,
- 0x002f383e, 0x002b3047, 0x00262c53, 0x00273068, 0x00253a7c, 0x002d3f8c, 0x002d3a8a, 0x001b276f, 0x005c618d, 0x00cfbdd3, 0x00fadbd4, 0x00f4b799, 0x00e68452, 0x00cd622a, 0x00c7531f, 0x00d35f2e,
- 0x00c0854e, 0x00b58c53, 0x00b0995d, 0x00b7b777, 0x00a8c17a, 0x008ca761, 0x0060773c, 0x00354a16, 0x00141f06, 0x00293223, 0x00a4b1a9, 0x00eaf3f9, 0x00f3fefb, 0x00f2fbf8, 0x00f7f9ef, 0x00fcf6eb,
- 0x00fae8da, 0x00fae0d3, 0x00e6d7c9, 0x00d7e2ce, 0x00bff3d8, 0x00d7e3dd, 0x00f0ecf0, 0x00f4f2f1, 0x00e7ebe2, 0x00eef2ec, 0x00e6e5e6, 0x00aaa3aa, 0x00765c66, 0x007e5a5e, 0x00946c66, 0x00a67566,
- 0x00717565, 0x006c6a5c, 0x007f7765, 0x00867964, 0x007f7760, 0x00898686, 0x006e718d, 0x002f3970, 0x00162968, 0x00192f65, 0x00162a5a, 0x001c2661, 0x001c2051, 0x0022254e, 0x0040405f, 0x006c6780,
- 0x00938b96, 0x00988c8f, 0x00c6b5af, 0x00d9c9b5, 0x00897a59, 0x00827545, 0x009f9a61, 0x00a7a86c, 0x0098a767, 0x0092a167, 0x006d7d48, 0x00425123, 0x0050593e, 0x00a8af9f, 0x00fcfef8, 0x00fafdfc,
- 0x00f7fef9, 0x00fcfff8, 0x00f4efec, 0x00a69b92, 0x00321f0f, 0x002e1c0b, 0x00a19183, 0x00f6f2e8, 0x00fbfbf9, 0x00fcfefd, 0x00f9f8fa, 0x00fdf9fa, 0x00adaba7, 0x00292c22, 0x00231d10, 0x00443121,
- 0x006a3f2d, 0x00804a36, 0x008f523e, 0x00945b43, 0x008e623d, 0x009a5936, 0x009c5230, 0x008f512c, 0x007c4e33, 0x00714235, 0x007b4b44, 0x00a06f67, 0x00b19583, 0x009d9090, 0x00989faf, 0x009aaed3,
- 0x00c3c1d8, 0x00d6eae4, 0x00e6f7e2, 0x00fff6e8, 0x00e1e7f5, 0x0081b0d3, 0x00276491, 0x002e5f91, 0x006384a0, 0x00c0cbde, 0x00f7f7f9, 0x00dfe6e4, 0x008993bc, 0x006776a8, 0x00657daa, 0x0051728f,
- 0x0037566d, 0x004f5d89, 0x009298c4, 0x00b1accc, 0x00b3aa9b, 0x00c89489, 0x00d39182, 0x00cb9483, 0x00c19a85, 0x00b99384, 0x00a88074, 0x00a1756a, 0x00a36a5f, 0x00a76857, 0x00a4604b, 0x009f593e,
- 0x00895436, 0x00894f37, 0x00834237, 0x007c3a3a, 0x0065373e, 0x00513a3f, 0x0052494f, 0x005f6368, 0x007d8187, 0x0097919b, 0x00a59ca6, 0x00a3a4a6, 0x009c9c9a, 0x0095928f, 0x008c8884, 0x0089837d,
- 0x008c8983, 0x0096928f, 0x00a19fa3, 0x00a0a3a8, 0x009d9ea6, 0x009299a2, 0x007f8794, 0x00696e7b, 0x004e505b, 0x004e4f57, 0x0057565d, 0x00636165, 0x0076706e, 0x007d766f, 0x007f786f, 0x007e756a,
- 0x006f5c5a, 0x005e4a48, 0x00553b3a, 0x00583c37, 0x0062453e, 0x00694c44, 0x0072544e, 0x00775956, 0x007d645e, 0x00947e7b, 0x00b7a1a6, 0x00d1bac8, 0x00e2d1e2, 0x00e5d7e9, 0x00d9d0e3, 0x00c8c4d7,
- 0x00a0a9b5, 0x00989dab, 0x00858b98, 0x00808590, 0x006e747b, 0x005f687b, 0x00565f75, 0x005e6378, 0x007b7d86, 0x00919095, 0x00999596, 0x0097938f, 0x009b9b94, 0x00a1a59e, 0x00a4a9a5, 0x00a6aaa8,
- 0x00a5a6a8, 0x00a4a7a7, 0x00a9aaab, 0x00afafb0, 0x00b7b9b9, 0x00bfc1c0, 0x00c6c6c6, 0x00c3c4c3, 0x00b7babb, 0x00afb0b2, 0x00c0c1c1, 0x00eae9e3, 0x00fefdfb, 0x00fdfdfe, 0x00f9fbfe, 0x00fbfafb,
- 0x00e1e2da, 0x009c9182, 0x006a513a, 0x00936f4f, 0x00be8960, 0x00c59f6e, 0x00b49560, 0x00b78f62, 0x00d1a278, 0x00ce9e75, 0x00b28459, 0x00aa8154, 0x00c0996c, 0x00c89c74, 0x00a77251, 0x009e6348,
- 0x009c7c4f, 0x008a6c45, 0x0063492d, 0x00574332, 0x0051463c, 0x004e4640, 0x004f4a48, 0x00504f51, 0x005e696b, 0x00829199, 0x007994ad, 0x004b79b2, 0x003e78c0, 0x00427dcd, 0x003f74c1, 0x003c68ac,
- 0x002c5a8d, 0x0035618f, 0x007699bf, 0x00b4c7df, 0x00d5cecd, 0x00c9cfd4, 0x00cad5e4, 0x00c8ceea, 0x00b3b6cd, 0x00bec8d4, 0x00d8e7f1, 0x00c2dcee, 0x008bb2e9, 0x00679ce6, 0x006cacf4, 0x0078c5fc,
- 0x00ccebf4, 0x00dff5fb, 0x00eaf7fc, 0x00f4f6fe, 0x00f3f0fc, 0x00dddef2, 0x00a9b9da, 0x00a6c2eb, 0x009ed8fb, 0x0080c4fa, 0x0075baee, 0x00a2d1f4, 0x00e7fafd, 0x00ecf7fa, 0x00ccd8eb, 0x00aec1de,
- 0x00a7ddf9, 0x0095d0fb, 0x0088c2f1, 0x00add8f5, 0x00e2f2ff, 0x00b7e4f8, 0x007db4e5, 0x0081b6f1, 0x009accf6, 0x009cc8f5, 0x00aad1fa, 0x00a8cef1, 0x0092b4e2, 0x0084a9e0, 0x0094b8f9, 0x008cb0fd,
- 0x0086a4cd, 0x00abc3e2, 0x00dcedff, 0x00e0e9f6, 0x00d1d4d5, 0x00c9cbcb, 0x00dfe2e1, 0x00eff1f3, 0x00ccc8ca, 0x00767372, 0x003b3736, 0x003e3938, 0x00464141, 0x00504845, 0x00594e4d, 0x005d5353,
- 0x005d554f, 0x0061564f, 0x00645750, 0x0065574e, 0x0064554a, 0x00605048, 0x00594a45, 0x00534540, 0x00493f39, 0x00453f3a, 0x00443d39, 0x0048423b, 0x00564f44, 0x0065594d, 0x00726154, 0x00796759,
- 0x00b9c2d2, 0x00465086, 0x00455091, 0x003f4c9b, 0x003d50a0, 0x00395299, 0x003b5598, 0x003d5492, 0x003c5391, 0x003a5191, 0x003b4e93, 0x00374a90, 0x00403c72, 0x00553153, 0x00883e50, 0x00b64841,
- 0x00cc351f, 0x00c4341f, 0x00ad3028, 0x00b45b5c, 0x00deb3c8, 0x00ddcce0, 0x00d1cfe3, 0x00cdd0dd, 0x00d0d5dc, 0x00d5d5db, 0x00d7d1d6, 0x00dbcdd4, 0x00e1cad9, 0x00d9c9d9, 0x00cfc6d5, 0x00c8c3d2,
- 0x00c1b7cb, 0x00bcb4cb, 0x00a8a1bb, 0x009792b0, 0x008786af, 0x007a7eaa, 0x00676f9e, 0x005b6698, 0x00424f85, 0x00324273, 0x00364482, 0x00323d92, 0x003b4487, 0x003b467e, 0x002e3766, 0x00273059,
- 0x00151543, 0x001c1a48, 0x005c5883, 0x007a749b, 0x00a9a3c0, 0x00c7c3d7, 0x00d2d0de, 0x00d0cfdc, 0x00cfccda, 0x00c7c5d2, 0x00c9c6d4, 0x00cbc9d6, 0x00d0cdda, 0x00cfccd9, 0x00c9c7d4, 0x00c2c3ce,
- 0x00bebbc7, 0x00c3bfcb, 0x00c9c4d0, 0x00c6c2cd, 0x00c7c3ce, 0x00c8c3ce, 0x00c8c4d0, 0x00cac7d3, 0x00d0cdd8, 0x00d4cfda, 0x00d1c8d4, 0x00bdb4be, 0x00988d98, 0x0068626f, 0x002b2637, 0x00100e1e,
- 0x00101123, 0x00131629, 0x0010172e, 0x000d172c, 0x00242d45, 0x00404454, 0x005e5f6a, 0x0078787f, 0x00898390, 0x008a848e, 0x00857e86, 0x007a7378, 0x007f7478, 0x0093888c, 0x00a89ba0, 0x00a6999c,
- 0x00787082, 0x00665b6c, 0x007c6d7f, 0x00958396, 0x00a893a6, 0x00a993a3, 0x00a38f9c, 0x00a2909d, 0x009f8e98, 0x00958a91, 0x00938b90, 0x00a29b9e, 0x00b0aaae, 0x008d868a, 0x00534d50, 0x00605b5e,
- 0x009d959b, 0x00a9a3a7, 0x00777274, 0x00625d61, 0x00746970, 0x0089868a, 0x00dcdadc, 0x00fafbfb, 0x00fefbfb, 0x00fefcfa, 0x00fefdfb, 0x00f0f0ed, 0x008a8783, 0x00393430, 0x0056524e, 0x006a6460,
- 0x0078795f, 0x007b7d63, 0x00817d66, 0x00817861, 0x0088755a, 0x00947251, 0x0091623d, 0x008a4924, 0x00983e0e, 0x00ac4a17, 0x00c8581d, 0x00d25b0a, 0x00dd520e, 0x00e4480f, 0x00e83e10, 0x00e9370c,
- 0x00eb3b12, 0x00db411b, 0x00ca4528, 0x00a43925, 0x00691216, 0x00371d1d, 0x00575657, 0x00776c7b, 0x007b618e, 0x00654e8a, 0x003f2e78, 0x00201868, 0x00575aa1, 0x00a8adda, 0x00bfc5dd, 0x00bac1c4,
- 0x00a1a8d4, 0x008c97c8, 0x006873ad, 0x003b468e, 0x001e267a, 0x001b247e, 0x00333891, 0x0040439e, 0x003e3a92, 0x00464293, 0x00615ca4, 0x007f7ab4, 0x00a8a3d5, 0x00c1bce3, 0x00d5cff2, 0x00e0daf3,
- 0x00eee6f3, 0x00f1e8f8, 0x00f2e9f6, 0x00f0eaf6, 0x00f8eaf9, 0x00e9f4ff, 0x00eef4f1, 0x00fbe4d6, 0x00e5f1fa, 0x00d7d2d6, 0x009f8a8d, 0x0060363e, 0x000e1f95, 0x00172da2, 0x00102988, 0x000a245c,
- 0x00051766, 0x00051a66, 0x001a266f, 0x00141953, 0x003a1f3a, 0x00754c52, 0x00e0aaa5, 0x00f4c3b7, 0x00ebd1d5, 0x00bdbac9, 0x00676778, 0x004c434c, 0x00534958, 0x00413c4f, 0x003f3950, 0x0037364f,
- 0x00312d47, 0x002f2b3f, 0x002e2633, 0x0029222f, 0x00261b21, 0x00201c23, 0x001d1a1f, 0x001b1a20, 0x00231a22, 0x00292126, 0x0032252e, 0x003c3139, 0x00453c4d, 0x00484254, 0x00544e61, 0x005c586e,
- 0x0062636d, 0x00676673, 0x0062626f, 0x00595a68, 0x004f4e5d, 0x00403f4f, 0x002e2d3d, 0x00171727, 0x00545467, 0x00cdcddf, 0x00fdfcff, 0x00fbf9f8, 0x00fffefe, 0x00f9fafa, 0x00e4e7e6, 0x00737876,
- 0x00000603, 0x00020f0a, 0x000c1915, 0x000e1d19, 0x00101f1b, 0x00141e1c, 0x00171c1b, 0x00181b1c, 0x001a171b, 0x00191517, 0x00171213, 0x00130f0e, 0x00110f0a, 0x000d0f07, 0x00090b02, 0x000e1206,
- 0x00373a41, 0x005f6268, 0x0075777e, 0x0064666c, 0x002e2f34, 0x00090a0c, 0x00030405, 0x00040504, 0x00030303, 0x00000100, 0x00000101, 0x00010303, 0x00020303, 0x00040506, 0x00040404, 0x00010001,
- 0x00292924, 0x009a9897, 0x00f3edf1, 0x00f3eaf1, 0x00f1e7f1, 0x00eae8ef, 0x00eaeaef, 0x00f1eaf0, 0x00f9ecf6, 0x00f6ecf9, 0x00f3ebfc, 0x00f6eeff, 0x00fceefd, 0x00fbeef2, 0x00f3d7cf, 0x00c09481,
- 0x00725781, 0x005e5ba2, 0x005163b7, 0x00406cb9, 0x004767b7, 0x005054bb, 0x006653b2, 0x007c5596, 0x00cca89a, 0x00faead8, 0x00f9f1df, 0x00ecefde, 0x00faf0ee, 0x00dbc9cd, 0x0074555d, 0x00512027,
- 0x0078352b, 0x0094533a, 0x00b37855, 0x00b78b5d, 0x00b59c68, 0x00c68752, 0x00bf7140, 0x00a26032, 0x00bf9b7a, 0x00f6e6cc, 0x00fcfbea, 0x00fafdf5, 0x00f9fffc, 0x00fdfdff, 0x00dcd7dd, 0x00a196a0,
- 0x00867c7c, 0x0089807e, 0x008e8482, 0x008f8582, 0x00928885, 0x00928885, 0x00938986, 0x00948987, 0x00908684, 0x008b837f, 0x00867f7b, 0x00827b77, 0x00827471, 0x007f7f93, 0x007e97c7, 0x005791e2,
- 0x003d89f2, 0x004686e2, 0x004982d9, 0x00497fd3, 0x003182e4, 0x003682e0, 0x003780dd, 0x00367eda, 0x00377bd9, 0x003779d8, 0x003575d6, 0x00306fd0, 0x002f6bcc, 0x002e68c9, 0x002761c3, 0x002058bb,
- 0x00235abe, 0x00265dc1, 0x00235abe, 0x002257bc, 0x002558bd, 0x00265bbf, 0x002058bb, 0x001c58b9, 0x001f60c1, 0x002265c7, 0x002266c7, 0x002366c2, 0x002366c5, 0x002568c5, 0x002367c4, 0x002266c5,
- 0x002461c3, 0x00225fbf, 0x00215cbe, 0x001e54b8, 0x002054b8, 0x001e4ba7, 0x001b47a3, 0x00113f9e, 0x001240a4, 0x000a3492, 0x0013348e, 0x00163185, 0x000e2277, 0x000e2882, 0x000c2b8c, 0x00082d93,
- 0x00254292, 0x006580bb, 0x00b9ccf6, 0x00c1cee6, 0x00b1b2c4, 0x009c9ab5, 0x008684af, 0x008285be, 0x008590d8, 0x007084cd, 0x00374f9d, 0x000f2c7c, 0x00213987, 0x006478b7, 0x00a0b0e0, 0x008b99b2,
- 0x00707973, 0x004f5646, 0x000b1003, 0x000c0c05, 0x002a2b2e, 0x005f6154, 0x00d4d6c8, 0x00fbf9f6, 0x00fff7ff, 0x00fcf9fc, 0x00fafcf8, 0x00e9f8e3, 0x0095b581, 0x00618443, 0x005d7e36, 0x005b7b2e,
- 0x008fa15f, 0x00dbebb2, 0x00f8ffd5, 0x00f9fbd6, 0x00fcf7e2, 0x00fcf6dc, 0x00fff8dc, 0x00fdf7d1, 0x00f0e3ab, 0x00cfc081, 0x00b5a879, 0x00bfb5af, 0x00d8cbca, 0x00e1d4ce, 0x00eadfda, 0x00f1ebe4,
- 0x00f4efec, 0x00f4f3f1, 0x00f6f8fa, 0x00f4f9fc, 0x00f2f7ff, 0x00f6f8f1, 0x00f8f6eb, 0x00f5f5ee, 0x00f3f5f1, 0x00f1f3f2, 0x00f2f4f6, 0x00f5f7fc, 0x00f6f6fb, 0x00faf6fe, 0x00f9f4fd, 0x00faf7fe,
- 0x00f9f5fa, 0x00fcfafc, 0x00f7f7f8, 0x00f1f0f1, 0x00ddd9db, 0x00d1cecf, 0x00dbd9da, 0x00e8e5e5, 0x00eeebec, 0x00edeaea, 0x00eee9e9, 0x00f1eae8, 0x00f7f0ed, 0x00efefeb, 0x00eaeee5, 0x0096a093,
- 0x002d3c2b, 0x004e5b57, 0x00485262, 0x00232850, 0x00201e62, 0x001c226a, 0x00191f6c, 0x0019226e, 0x004f4683, 0x0098708e, 0x00c9807d, 0x00d2643b, 0x00da520b, 0x00d0590e, 0x00d26924, 0x00d47b41,
- 0x00bcab80, 0x00ac9e6f, 0x00988857, 0x00a8a168, 0x009eab6a, 0x00829b5b, 0x004f6a32, 0x002a4416, 0x00161908, 0x00534d47, 0x00d6d3d1, 0x00e9faf4, 0x00f2fefd, 0x00effafb, 0x00f6fcfb, 0x00f9fbfd,
- 0x00fcfaf4, 0x00faf8ee, 0x00f0f2e9, 0x00e1f2ea, 0x00cceeeb, 0x00e0e3e9, 0x00f3e5ed, 0x00ecdfe1, 0x00ddd7d2, 0x00e5e4df, 0x00c1bcbd, 0x005e555a, 0x0048353a, 0x00846866, 0x0096756a, 0x00a17c66,
- 0x0083877c, 0x0077736c, 0x0081746b, 0x00887a64, 0x008a8267, 0x00898b8d, 0x00545c88, 0x0027348b, 0x00354a9e, 0x00405b92, 0x003f5a89, 0x00404e8e, 0x004d4f7e, 0x00554f68, 0x00766767, 0x00a38a7a,
- 0x00caa982, 0x00d0ac80, 0x00e4be92, 0x00e5c195, 0x00dab68d, 0x00d3b184, 0x00ccb384, 0x00c8bb87, 0x00a1ae73, 0x00899a63, 0x00627544, 0x00324217, 0x005e624d, 0x00c6c7bb, 0x00fdfcf8, 0x00f9fcfc,
- 0x00f9fefe, 0x00fafdf8, 0x00ebe4e1, 0x00897c72, 0x002e1707, 0x002f1806, 0x009b8878, 0x00f0e7db, 0x00fefcfa, 0x00fdfcfc, 0x00f9f8fd, 0x00fbf6fd, 0x00c1bcbe, 0x0047443c, 0x00251a09, 0x00482d18,
- 0x00773f2d, 0x00874934, 0x008c4f3b, 0x00895740, 0x007f5f42, 0x008b573f, 0x008e5238, 0x0084542d, 0x006f513a, 0x00624547, 0x00573b44, 0x0061464d, 0x00beac90, 0x00eadfc8, 0x00efe7da, 0x00f1eef5,
- 0x00faeced, 0x00fbf4f1, 0x00fcf3ef, 0x00faf6ec, 0x00e6f1fc, 0x00b9d1e7, 0x008ea7c8, 0x0091accd, 0x00b1c2d4, 0x00d6e2e4, 0x00eff5ef, 0x00ebedec, 0x00dadde3, 0x00d4dce2, 0x00d4ddea, 0x00b8c4d1,
- 0x009da6b6, 0x00b4b6c1, 0x00e5e0e7, 0x00e2d7d7, 0x00c7b3ab, 0x00d19384, 0x00db8f7c, 0x00cf947e, 0x00c7a08d, 0x00c29b8b, 0x00b68578, 0x00b87a6e, 0x00bd6e61, 0x00ba6c57, 0x00ae6548, 0x00a05e39,
- 0x008a4e38, 0x00864734, 0x00813f35, 0x00793531, 0x00662f35, 0x00543133, 0x005e494e, 0x006e686d, 0x00878792, 0x009d9aa6, 0x00aca9b4, 0x00adb1b8, 0x00acb1b7, 0x00a5a8af, 0x00a0a3a8, 0x009c9fa3,
- 0x00a1a1a4, 0x00a7a7ab, 0x00b0b1b5, 0x00b4b5b7, 0x00b1afb3, 0x00a4aab2, 0x00919ca7, 0x00808994, 0x006b6d79, 0x005e5f67, 0x0059575d, 0x00615a5e, 0x00756967, 0x007e6f69, 0x007f6e66, 0x007b6b61,
- 0x006f4b45, 0x00603c34, 0x005f3731, 0x00663b32, 0x0070463b, 0x00774c3f, 0x0081584c, 0x007f594d, 0x007d554f, 0x008e6d68, 0x00b79194, 0x00d0a8b2, 0x00e5c2d1, 0x00e3ccda, 0x00d8c8d7, 0x00c5c1d0,
- 0x00aeb4c0, 0x009ea5b4, 0x008e94a3, 0x00838b98, 0x0071737f, 0x00505c78, 0x004f5a7d, 0x005c6787, 0x00858996, 0x009b9da3, 0x009f9e9c, 0x0095928b, 0x009c9a91, 0x00a6a6a0, 0x00a6a7a4, 0x00a4a6a6,
- 0x00a3a4a8, 0x00a2a4a6, 0x00a8a9aa, 0x00adaeae, 0x00b3b5b5, 0x00b8babb, 0x00bbbcbd, 0x00bebfc0, 0x00b5b6b8, 0x00a8a9aa, 0x00b4b4b2, 0x00e6dfda, 0x00fffdfb, 0x00fcfdfd, 0x00f7fcfe, 0x00f8fcfc,
- 0x00ebebe6, 0x00aaa092, 0x00684f3b, 0x00846144, 0x00ac7c55, 0x00c59b71, 0x00c19a6e, 0x00b38960, 0x00be956b, 0x00caa276, 0x00bc966a, 0x00a58054, 0x00b28c5f, 0x00c39a70, 0x00a27950, 0x00835b31,
- 0x007a5334, 0x00734f30, 0x0068492e, 0x00604733, 0x0056463a, 0x00524740, 0x004e4944, 0x004e4d4b, 0x00656465, 0x00919393, 0x008c9cad, 0x00557daf, 0x003e7cc5, 0x003d7dca, 0x004179c4, 0x004a75b4,
- 0x004471b1, 0x00386fb1, 0x005c8ac9, 0x00a7c5ed, 0x00ecd9da, 0x00d2d7d6, 0x00cdd5dc, 0x00d3d4e4, 0x00e3d6d8, 0x00e8e7d9, 0x00e3f0ec, 0x00afcce6, 0x005789ed, 0x004382ea, 0x0059a6f6, 0x0069c4f1,
- 0x00b8d2e6, 0x00c9deef, 0x00e3edfe, 0x00ecf2fc, 0x00f2edfe, 0x00d2d4ee, 0x00b2bde2, 0x00c4dbf9, 0x00bcecfe, 0x008fcaf3, 0x007bb6e7, 0x0095cdf8, 0x00cbe6fc, 0x00bfcee2, 0x00b7c2d7, 0x00c4d7ec,
- 0x00b1e1fd, 0x008dc5f4, 0x009bcffb, 0x00c6f0fa, 0x00d3e0ec, 0x009dcdf1, 0x007bb5f4, 0x0082b8f4, 0x00add8fb, 0x00bae1f9, 0x00b5d6f0, 0x0097b7d1, 0x009bb7e3, 0x00a6c8fa, 0x009abcf9, 0x0086a7f1,
- 0x00a8b1ca, 0x00cad3e7, 0x00e3edfb, 0x00dde5f2, 0x00d7dcdf, 0x00dbdfe0, 0x00ebefec, 0x00f0f3f2, 0x00c8c7c8, 0x006e6d6d, 0x00393333, 0x00403734, 0x004c403f, 0x00524642, 0x005c4b47, 0x00614f4d,
- 0x0068534d, 0x006c564c, 0x0071594e, 0x0071584c, 0x00705546, 0x006e5141, 0x00694d3f, 0x0061493c, 0x0056443d, 0x004f433c, 0x004c423d, 0x004c463d, 0x00564d42, 0x00635446, 0x00715e4b, 0x0077624b,
- 0x00b5c1d0, 0x003d4b7f, 0x003e4b8a, 0x003c4a95, 0x00374c9a, 0x00354f94, 0x00375392, 0x0039548e, 0x0038528e, 0x003a4f8f, 0x00364b8e, 0x0033458a, 0x003a3d70, 0x0041274c, 0x00561c33, 0x00923333,
- 0x00bc3020, 0x00b42919, 0x00aa2c20, 0x009f3836, 0x00c78b95, 0x00e2c4d3, 0x00d8cddd, 0x00d5d2db, 0x00cdd1d5, 0x00cdcdd1, 0x00d4ced3, 0x00d8cad3, 0x00dac3d5, 0x00d3c2d6, 0x00c8bfd3, 0x00c4c1d5,
- 0x00b5afca, 0x009a95b3, 0x007c7799, 0x005c5a80, 0x00444575, 0x003e4377, 0x00353d73, 0x00343e77, 0x002a3672, 0x00283470, 0x00303e7f, 0x003a4394, 0x003a4684, 0x002a3567, 0x0019254d, 0x000b1538,
- 0x000d0e39, 0x0031305c, 0x00737098, 0x008883a5, 0x00b9b4cd, 0x00d0ccde, 0x00d8d5e1, 0x00d3d1de, 0x00c8c4d1, 0x00c3c1ce, 0x00c6c6d2, 0x00c7c6d2, 0x00ceccd8, 0x00d2cfdc, 0x00d8d6e2, 0x00d9d7e3,
- 0x00d8d4e0, 0x00d6d1dd, 0x00d0ccd7, 0x00c8c4cf, 0x00c4bfcb, 0x00c0bbc7, 0x00beb8c4, 0x00beb9c4, 0x00b8b6c2, 0x00c2beca, 0x00cac4ce, 0x00c2b9c2, 0x00a39ba4, 0x0088808b, 0x00635e6b, 0x0034313d,
- 0x00171627, 0x001d1d30, 0x0035394d, 0x004c5167, 0x006e7388, 0x00888898, 0x0094939d, 0x009d9ba3, 0x00a099a5, 0x00a099a3, 0x0099929b, 0x00968e95, 0x00a3989e, 0x00b3a7ac, 0x00baaeb2, 0x00b5a9ac,
- 0x00a197a5, 0x009d919f, 0x00aa9baa, 0x00ac9baa, 0x00ad99a9, 0x00ae99a6, 0x00a8949f, 0x00a4949e, 0x00a5989f, 0x00a69ca3, 0x00aaa3aa, 0x00b6b1b8, 0x00bdb6bf, 0x00989098, 0x005d565e, 0x00605b63,
- 0x00989097, 0x00c6bec5, 0x008e8b90, 0x004e4a50, 0x00373039, 0x005d595f, 0x00cac9ca, 0x00f9f8f8, 0x00fdfefd, 0x00fefdfc, 0x00fdfdfb, 0x00f1f0ed, 0x00898582, 0x0035302c, 0x00504d49, 0x00625e5a,
- 0x0077715a, 0x007b765f, 0x007d795f, 0x007b775e, 0x007c745d, 0x0084755b, 0x007d6449, 0x00634027, 0x00420f00, 0x00470e05, 0x005c1e13, 0x00582715, 0x00703129, 0x007f3436, 0x008b353c, 0x00953442,
- 0x00953e4a, 0x008e4557, 0x00814964, 0x00623c65, 0x002e1951, 0x0015102e, 0x00353240, 0x00645d69, 0x008e798b, 0x008d7a96, 0x007c6e94, 0x005e598b, 0x0050528e, 0x00575892, 0x004c4c84, 0x004d4b7a,
- 0x00353293, 0x00262786, 0x00141974, 0x0024267f, 0x005d62ae, 0x008b92cd, 0x00abb3e1, 0x00b5bae3, 0x00a4a6c3, 0x009e9eb6, 0x00a7a6be, 0x00b4b3d2, 0x00c9c7e5, 0x00d3d0e5, 0x00dad6e6, 0x00dfdbe4,
- 0x00eae3e9, 0x00eee6ed, 0x00f2edee, 0x00f2eaee, 0x00f2e9ec, 0x00e8e8ed, 0x00e5dbda, 0x00eec6bb, 0x00cfccdd, 0x00c9bfc3, 0x00a78c88, 0x00784241, 0x003d2e86, 0x002b359f, 0x00142d8d, 0x00122f70,
- 0x00081a6c, 0x000b2074, 0x00182877, 0x00111a61, 0x00271943, 0x00573a52, 0x00b89098, 0x00d3ada7, 0x00d5c0c2, 0x00cbc6d1, 0x007a7b88, 0x004b4152, 0x00484555, 0x00423d56, 0x003e3b55, 0x00373654,
- 0x00302f4d, 0x00312f4a, 0x00302c40, 0x002e273c, 0x002a232f, 0x0024232e, 0x00202029, 0x00221d28, 0x00251d27, 0x002b2229, 0x00352a31, 0x0040373d, 0x004e4453, 0x00565060, 0x00625d6e, 0x006b6679,
- 0x006c6f79, 0x00747681, 0x00737680, 0x00737581, 0x006d6e78, 0x00686874, 0x00585964, 0x00383b46, 0x0070727e, 0x00e0e1ea, 0x00fdfdfd, 0x00fdfcfd, 0x00fefdfd, 0x00fdfdfb, 0x00d6d8d6, 0x005d605d,
- 0x00030b06, 0x0007130e, 0x000a1913, 0x000e1c18, 0x000a1a16, 0x00111613, 0x00131511, 0x00151513, 0x00151110, 0x00130d0c, 0x00100808, 0x000d0705, 0x000c0a06, 0x00090b04, 0x00030700, 0x00090e04,
- 0x0035363d, 0x005b5c63, 0x006c6d74, 0x005b5d62, 0x0027272c, 0x0008080c, 0x00030406, 0x00030405, 0x00040404, 0x00020300, 0x00000001, 0x00000104, 0x00000102, 0x00030403, 0x00070705, 0x00070704,
- 0x0031302e, 0x009d9a9b, 0x00f2edf2, 0x00eee7f0, 0x00efe5ef, 0x00efe6ed, 0x00f2e8eb, 0x00f7eaec, 0x00f9ecf2, 0x00f6eef8, 0x00f1edfa, 0x00f4f0fd, 0x00faeefa, 0x00fdeff1, 0x00f3d1c8, 0x00bd8977,
- 0x0062599e, 0x00545dbf, 0x004564ca, 0x00396cc7, 0x003d68b8, 0x005158c2, 0x006656b7, 0x00755195, 0x00c4a59c, 0x00fcece4, 0x00f6f0eb, 0x00e7f2ff, 0x00e4e4f1, 0x00ccbcc3, 0x008c6d67, 0x008e5a40,
- 0x00c06b3c, 0x00d77e45, 0x00de8644, 0x00cb7637, 0x00ad6528, 0x009a5326, 0x00783b12, 0x006b3613, 0x00ae957b, 0x00f5ebd8, 0x00fbfcf2, 0x00f9fef9, 0x00f7fdfc, 0x00fdfdff, 0x00d3d0d3, 0x009b9397,
- 0x008b8581, 0x008e8885, 0x00918b87, 0x00908a86, 0x00928b87, 0x00908985, 0x00908984, 0x00918a85, 0x008c8782, 0x008b8480, 0x0085807b, 0x00827c7b, 0x0082746f, 0x007e7c93, 0x007691c1, 0x00538de0,
- 0x003a87ee, 0x004684e2, 0x004882d9, 0x004880d3, 0x003283e6, 0x003681df, 0x00357fd9, 0x00367dd9, 0x003579d8, 0x003679d8, 0x003778d8, 0x003473d3, 0x00316dcd, 0x002d67c8, 0x00245dbf, 0x001d54b8,
- 0x001b4fb4, 0x001f54b7, 0x001f52b7, 0x001c4eb5, 0x001e4fb4, 0x002558bc, 0x002258bc, 0x001d57b7, 0x001d5ab9, 0x00205fc1, 0x002464c3, 0x002464c4, 0x002767c6, 0x002869ca, 0x002568c7, 0x002469c9,
- 0x002565c2, 0x002561c3, 0x00215cbd, 0x00255abe, 0x00285bbf, 0x002858ba, 0x002154b1, 0x00194cad, 0x001d4baa, 0x0016419c, 0x003053a8, 0x00435dad, 0x00243a8a, 0x001c3587, 0x000d2881, 0x00062a82,
- 0x00203b9b, 0x00586fbe, 0x00b3c8f9, 0x00c9d4f6, 0x009095b1, 0x008687ab, 0x00a0a4cc, 0x009299ce, 0x006577b5, 0x00354c8d, 0x001f387b, 0x001b2e79, 0x00324992, 0x005264a5, 0x0092a6d9, 0x00a5bad8,
- 0x006d8385, 0x00424d46, 0x00020600, 0x00070400, 0x001e1816, 0x00676857, 0x00e1e5d3, 0x00fcfdfa, 0x00fef8fe, 0x00fdfbfd, 0x00f7faf5, 0x00dfefd8, 0x0084a66e, 0x00628542, 0x005f7f38, 0x00648138,
- 0x00a8b77e, 0x00edf6c8, 0x00f8fdd0, 0x00fafed6, 0x00fcf8dc, 0x00fcf8d9, 0x00fef8d9, 0x00fcf8cf, 0x00fbf1bf, 0x00e6d7a0, 0x00c4b790, 0x00d2cac7, 0x00dad1ce, 0x00e4dbd7, 0x00ede7e0, 0x00f2ede3,
- 0x00f9f1f0, 0x00f8f5f1, 0x00f9f7f8, 0x00f8f8fa, 0x00f5f8fc, 0x00faf7fc, 0x00f9f1fa, 0x00f3eef8, 0x00f5eefa, 0x00f7f1fc, 0x00f6f2fc, 0x00f9f8ff, 0x00f9f9fc, 0x00faf8fd, 0x00f7f5fa, 0x00f6f6f9,
- 0x00f2f1f3, 0x00f3f2f4, 0x00f1f0f0, 0x00e1dfdf, 0x00d6d1d3, 0x00dbd7d8, 0x00eae9e9, 0x00f0f1f2, 0x00e9e7e9, 0x00ebe8eb, 0x00f2f0f2, 0x00f7f6f6, 0x00efefed, 0x00ebefea, 0x00dfe3db, 0x00959a8c,
- 0x00363725, 0x0055524b, 0x00544d56, 0x003b2948, 0x00341853, 0x00212363, 0x00142369, 0x00202e75, 0x003d3d74, 0x0062445f, 0x00905654, 0x00b75834, 0x00de6d2c, 0x00eb8743, 0x00e89757, 0x00dd9e65,
- 0x00cebb8e, 0x00bba77a, 0x00807343, 0x008b8551, 0x007e8e54, 0x006b834b, 0x003f5a26, 0x001f320b, 0x00302814, 0x008c766e, 0x00ffe3db, 0x00feebd9, 0x00ffefeb, 0x00f9f6f9, 0x00fafaff, 0x00f7fcff,
- 0x00fcfbfc, 0x00fef4f6, 0x00f7eae9, 0x00f5e6e0, 0x00f0e1d6, 0x00facccd, 0x00fab9bd, 0x00e6aba9, 0x00dbb3a9, 0x00dfc6bd, 0x009f8f8b, 0x003a3233, 0x00404442, 0x00767c73, 0x007c8271, 0x00828b70,
- 0x008a8c7a, 0x0086817a, 0x007d756c, 0x00857871, 0x00898a78, 0x007a808e, 0x002b3866, 0x001b297e, 0x002c3f8f, 0x00435483, 0x00485971, 0x00666677, 0x00847c7a, 0x009d8e7b, 0x00af9c74, 0x00caaf7a,
- 0x00d5b26b, 0x00ddb86e, 0x00d9b369, 0x00c4a25b, 0x00c2a05c, 0x00c29d66, 0x00cbad7c, 0x00d7c793, 0x00bac487, 0x0093a26b, 0x00536432, 0x002e3c14, 0x00737660, 0x00e5e4db, 0x00fcfdf8, 0x00f8fefd,
- 0x00f8fdfe, 0x00fbfcfd, 0x00d8d0c9, 0x006a5c50, 0x002c1202, 0x00391e0d, 0x008e7965, 0x00ebdccf, 0x00fffcf8, 0x00fcfcfc, 0x00f9fafd, 0x00fdf8fd, 0x00d3cfd0, 0x0069655f, 0x00281f13, 0x004a3425,
- 0x00714231, 0x007e4739, 0x007c4838, 0x00784c3c, 0x0071583f, 0x007b4f42, 0x007e4f3c, 0x00775130, 0x0068503d, 0x005c4247, 0x00523843, 0x0069505b, 0x00d4c6b1, 0x00fffaec, 0x00f1f3ed, 0x00e9f2fe,
- 0x00f3f4fc, 0x00f2f2f7, 0x00f4f1f2, 0x00fdf7f4, 0x00f0f7fa, 0x00ebf7ff, 0x00dceef8, 0x00e5f8fe, 0x00ebf6fd, 0x00f6f9fb, 0x00f4f6f4, 0x00f5f7f6, 0x00fafdfc, 0x00f4fbfa, 0x00f2f9fe, 0x00eaf2f9,
- 0x00e8eff8, 0x00f2f2f7, 0x00f5f2f3, 0x00f1e3e1, 0x00ccbab4, 0x00d1917e, 0x00dd8d7a, 0x00d99682, 0x00ce9f85, 0x00cb9884, 0x00c48a79, 0x00cc8174, 0x00cf7869, 0x00c9735d, 0x00b36448, 0x00a05735,
- 0x00894230, 0x00883d30, 0x0084372e, 0x007e302f, 0x0068292c, 0x00582c31, 0x0060454a, 0x006f656c, 0x008c8a95, 0x00a2a1ad, 0x00b1b0bc, 0x00b4b9c2, 0x00b8bcc5, 0x00b6b9c2, 0x00b2b6be, 0x00b2b5bc,
- 0x00b3b5ba, 0x00b6b7be, 0x00c0bfc5, 0x00c3c3c8, 0x00c0bfc3, 0x00b5bac4, 0x00a4acb8, 0x0098a1ac, 0x008a8c96, 0x0072747a, 0x005f5d60, 0x00645d5d, 0x006e645f, 0x00766a60, 0x00756759, 0x006f6253,
- 0x006d4e3f, 0x00644334, 0x00674432, 0x006e4533, 0x00754b33, 0x007c4f3a, 0x00875d47, 0x00855c48, 0x007c533e, 0x008b6351, 0x00b07f73, 0x00d88f91, 0x00ecaeb4, 0x00ebbbc4, 0x00e2beca, 0x00cdb9c5,
- 0x00b9b3c7, 0x00a4a4bd, 0x008c92ab, 0x007f86a0, 0x005f667d, 0x00454d6b, 0x004e5470, 0x0062657c, 0x00888791, 0x00a19ea3, 0x00a7a2a0, 0x009d9790, 0x00a09c94, 0x00a6a59f, 0x00a3a6a1, 0x00a0a5a1,
- 0x00a0a2a4, 0x00a2a3a4, 0x00a5a5a5, 0x00aaaaab, 0x00afb0b1, 0x00b1b3b5, 0x00b4b5b7, 0x00b9b9bb, 0x00abaeac, 0x009c9e9c, 0x00a19f9d, 0x00d9d4cd, 0x00fdfdfb, 0x00fcfdfd, 0x00fbfdff, 0x00fafefd,
- 0x00f2f1ed, 0x00b7a9a0, 0x0069513d, 0x00825d43, 0x009f744d, 0x00bb8c62, 0x00cea376, 0x00bc9062, 0x00aa7e53, 0x00bb8f63, 0x00c69b71, 0x00b2895f, 0x00a98054, 0x00be9469, 0x00b1875e, 0x008a6237,
- 0x00744d2c, 0x00714b2d, 0x006e4d33, 0x00674b37, 0x00594639, 0x0053463d, 0x00504842, 0x004f4c49, 0x005f5f5d, 0x008e8c8c, 0x008794a4, 0x005a7bae, 0x004481ca, 0x00437fcd, 0x003e77c3, 0x004975b8,
- 0x004f7dbf, 0x004880c7, 0x005185c4, 0x009abce7, 0x00f5e7e9, 0x00eaede7, 0x00dee4e3, 0x00dddde6, 0x00e6dfdc, 0x00e6e8df, 0x00ddece9, 0x00c0dcf1, 0x006c9bf1, 0x005088e3, 0x0062a2e8, 0x006db7d5,
- 0x0074abf7, 0x007aacef, 0x0095c4ee, 0x00b4dcf3, 0x00d5f2fb, 0x00c6dce4, 0x00bfd7dd, 0x00dcf3fb, 0x00cde8fb, 0x00a4bcee, 0x0088afe6, 0x0086c1f6, 0x00a5ccf0, 0x00adc2df, 0x00bfd2eb, 0x00d1edfd,
- 0x00a2d9fa, 0x007eb9f2, 0x008bc7f6, 0x00a8d8f6, 0x00b5cde7, 0x0090c9e9, 0x0073bbdf, 0x0080c2e5, 0x00b0e8fa, 0x00b7e9f8, 0x00a3d3e5, 0x0096c0d2, 0x0096c3de, 0x00a4d3f1, 0x0079add5, 0x006ca1d1,
- 0x00b8c1d3, 0x00dbe3f5, 0x00dbe4f1, 0x00cdd5e1, 0x00dadee2, 0x00ebeeef, 0x00edefec, 0x00ededed, 0x00c0bfc1, 0x00656365, 0x0034302f, 0x00433732, 0x004a413a, 0x0054463e, 0x005b4a42, 0x00634e47,
- 0x00695347, 0x006e5749, 0x00755a4b, 0x00765a49, 0x00755745, 0x00775544, 0x00745443, 0x006b5041, 0x00604c42, 0x0058473e, 0x0054453c, 0x0054473a, 0x005a4b3a, 0x0065513e, 0x00745c46, 0x007d624a,
- 0x00b6c1cf, 0x00364174, 0x00374583, 0x00374890, 0x00374b96, 0x00385095, 0x0035528f, 0x0035508a, 0x00354d8a, 0x00304989, 0x002f4688, 0x00294182, 0x002f3b71, 0x0037305c, 0x00381633, 0x00601b2b,
- 0x00ac322f, 0x00af2e23, 0x00b22e25, 0x009e2920, 0x00bf625f, 0x00e3b2bc, 0x00dfc9d5, 0x00d7c9d2, 0x00c4bdc5, 0x00beb9c1, 0x00cbc3cc, 0x00d0c2d0, 0x00cebcd1, 0x00cabdd5, 0x00bcb5d0, 0x00a4a7c2,
- 0x007f7ea9, 0x005a5b86, 0x003e3f6e, 0x00313466, 0x00323771, 0x003a427f, 0x00363d7f, 0x00313b7d, 0x002b3a7d, 0x002b3c7e, 0x00344084, 0x00384388, 0x002e376e, 0x000f1b43, 0x000c1338, 0x00040b2a,
- 0x000a0a32, 0x0035345b, 0x00817ea1, 0x009d98b6, 0x00c7c3d7, 0x00d3cfde, 0x00d1cfdc, 0x00cdcbd9, 0x00c3c1cf, 0x00c4c2cf, 0x00cbc8d5, 0x00c9c6d3, 0x00c6c4d0, 0x00c8c7d2, 0x00d2d1dc, 0x00dbd9e4,
- 0x00e0dbe6, 0x00ddd9e4, 0x00d9d5e1, 0x00cfcbd7, 0x00c2becb, 0x00bdb9c5, 0x00bab6c2, 0x00b5b1bd, 0x00b0a9b7, 0x00afabb6, 0x00bcb3bd, 0x00cbbfc7, 0x00bfb1b9, 0x00a59ba4, 0x00988f9a, 0x007d7983,
- 0x00534e5d, 0x005b5565, 0x00838395, 0x009da1b0, 0x00a2a5b8, 0x00a6a2b0, 0x00a8a2af, 0x00a7a1ac, 0x00b0a8b4, 0x00b6afb9, 0x00b9b1bb, 0x00b7aeb6, 0x00c0b8be, 0x00c4babf, 0x00c1b5ba, 0x00bdb0b6,
- 0x00baaebb, 0x00b8abb8, 0x00b5a7b3, 0x00ac9ea7, 0x00a898a1, 0x00aa99a3, 0x00a5949f, 0x00a2949d, 0x00afa2a8, 0x00bbb2b6, 0x00c8c2c8, 0x00cbc5cf, 0x00c6bfcb, 0x00aca5b0, 0x0077717c, 0x0069646f,
- 0x00918996, 0x00c6bfcc, 0x00ccc3d0, 0x00736b78, 0x00170d1a, 0x0039363b, 0x00bfbbbc, 0x00f8f6f7, 0x00feffff, 0x00fffefe, 0x00fffcfb, 0x00f3f0ec, 0x00888580, 0x002f2d28, 0x004a4942, 0x005b5952,
- 0x00766559, 0x00776d5c, 0x00757159, 0x00707257, 0x006f755c, 0x006f7560, 0x00737568, 0x0062605a, 0x00271b28, 0x000e0213, 0x00170c2e, 0x00121b4f, 0x002a2e66, 0x003b377d, 0x0049438b, 0x00534b92,
- 0x0058549b, 0x004e5298, 0x00434d9e, 0x002b3f9b, 0x000c248f, 0x001a245f, 0x00403e60, 0x006b6275, 0x00867a7a, 0x008c837d, 0x009b9698, 0x009a9ba5, 0x0060648e, 0x001d1d58, 0x000d094e, 0x00150a5a,
- 0x00190c75, 0x0029207e, 0x0050489b, 0x008684c4, 0x00d2d3f5, 0x00eef2ff, 0x00f2f6fc, 0x00e4eaed, 0x00d3d7d2, 0x00cecdc6, 0x00cbc8c3, 0x00c7c4ce, 0x00bcbac0, 0x00b9b4b7, 0x00bfbab7, 0x00c5c4bc,
- 0x00cfcbc4, 0x00d2cec6, 0x00d7d2c9, 0x00d5cbc6, 0x00cac2be, 0x00c4baab, 0x00c3b4a6, 0x00c3aba7, 0x00c9b4b9, 0x00d9c7c6, 0x00e3c3c0, 0x00c18277, 0x0074315f, 0x003d2f89, 0x001d359c, 0x000e3387,
- 0x0012227d, 0x00142a83, 0x001b318b, 0x000b2576, 0x00141f5c, 0x0036305d, 0x008e829e, 0x00bfb0bb, 0x00c7bac0, 0x00cdc9cb, 0x00908c99, 0x0047445c, 0x0042405b, 0x003d3d5c, 0x003b3b61, 0x0031355c,
- 0x0031325a, 0x002e3154, 0x002e2d4e, 0x002b2946, 0x002d2640, 0x00272339, 0x00282336, 0x0026202f, 0x00291e2d, 0x0030252e, 0x003b2f37, 0x00463a43, 0x00594f57, 0x00625b68, 0x006c6976, 0x00737381,
- 0x007d7a84, 0x007f7f88, 0x007e7f86, 0x007f7f88, 0x007a7c83, 0x00777881, 0x00777a81, 0x006a6e76, 0x00a3a4ae, 0x00f0f1f4, 0x00fdfcff, 0x00fefdfd, 0x00fefeff, 0x00fdfefc, 0x00c8cac9, 0x004f504e,
- 0x00080b0c, 0x000a120e, 0x00101816, 0x000d1a15, 0x000c1714, 0x00101209, 0x0019130a, 0x001d1810, 0x001e130f, 0x00190e09, 0x00120804, 0x000b0300, 0x00080301, 0x00040401, 0x00000400, 0x00050d04,
- 0x0039353d, 0x005a595f, 0x0064646a, 0x004e4f53, 0x00212023, 0x00060406, 0x00020203, 0x00010302, 0x00040300, 0x00010100, 0x00010002, 0x00000004, 0x00060508, 0x0011110f, 0x00211f1f, 0x00272523,
- 0x004d484d, 0x00a5a0a3, 0x00f5eef6, 0x00ede7f3, 0x00efe6f3, 0x00f5e4ee, 0x00f9e5eb, 0x00f9e9ea, 0x00faeef0, 0x00f2f0f6, 0x00f1f2fd, 0x00eff4fe, 0x00f9f0fb, 0x00fceef0, 0x00f1c8c1, 0x00b97e6c,
- 0x005458ba, 0x00455bcc, 0x004061d4, 0x00376ac2, 0x00456cb1, 0x005159ae, 0x006a5aa8, 0x00856192, 0x00d8afa7, 0x00f9e1d9, 0x00e3c7c8, 0x00c0acba, 0x00a68c8c, 0x008b685b, 0x00865130, 0x00a5632c,
- 0x00d07127, 0x00c7661a, 0x00b75311, 0x009f410d, 0x0083320e, 0x005c240a, 0x00330d00, 0x003b1c0b, 0x00a99a90, 0x00f1efe7, 0x00fbfefd, 0x00f6fefd, 0x00fafdfd, 0x00fdfafc, 0x00d2cacb, 0x009e9491,
- 0x008d8a85, 0x008f8c88, 0x008f8d89, 0x008c8b87, 0x008e8c88, 0x008b8a86, 0x00898984, 0x00898883, 0x008a8684, 0x0087837f, 0x00857f7f, 0x00807c79, 0x00867776, 0x007a7c92, 0x006e87bc, 0x004e88de,
- 0x003e88ef, 0x004582e1, 0x004880da, 0x00457ed4, 0x003482e7, 0x00337edd, 0x00347dd8, 0x00337bd8, 0x003577d8, 0x003477d6, 0x003576d5, 0x003372d1, 0x002f6ccd, 0x002d67c9, 0x00275fc3, 0x002158bc,
- 0x001c4db1, 0x001949af, 0x001542a9, 0x001540a8, 0x001b46ae, 0x00214eb3, 0x002453b6, 0x002254b6, 0x001f53b8, 0x002057b8, 0x002560c2, 0x002460c1, 0x002865c7, 0x002866c5, 0x002667c8, 0x002368c5,
- 0x002565c5, 0x002160c1, 0x00225ec1, 0x00245cbc, 0x002c5ec3, 0x00255dc0, 0x00225dbe, 0x001f59b7, 0x002352ae, 0x00244ca2, 0x00597ccb, 0x007995e0, 0x00384c97, 0x00263a87, 0x00253785, 0x001f337f,
- 0x000e2495, 0x00253a99, 0x007e8fda, 0x00c4d5fb, 0x0098a0cc, 0x0061699a, 0x008892c7, 0x00a4b4ec, 0x007d94d3, 0x00274681, 0x00152c6a, 0x0033407a, 0x006d81c4, 0x00667fc1, 0x006380bd, 0x009bc0ec,
- 0x0089a8bd, 0x00384d51, 0x00040709, 0x00050200, 0x0030211b, 0x00939185, 0x00f5f6ea, 0x00fdfdfc, 0x00fdf7fd, 0x00fdfcfd, 0x00f8fcf5, 0x00d1e2c9, 0x0075985e, 0x00648744, 0x0064823e, 0x0077904c,
- 0x00c7cea2, 0x00f6f8d3, 0x00f9fcd1, 0x00f8fdd1, 0x00fbfcd2, 0x00fcfcd3, 0x00fef8d0, 0x00fcf6ce, 0x00fdf5d1, 0x00eddfbb, 0x00d8cab4, 0x00e2dcd8, 0x00e8e1df, 0x00ebe6e4, 0x00f2eeeb, 0x00f4edeb,
- 0x00fbf5f2, 0x00fbf5f2, 0x00fcf6f3, 0x00fef7f4, 0x00fef5f2, 0x00fff3fc, 0x00fbeefd, 0x00f8ecf9, 0x00f9eefd, 0x00f9f2fd, 0x00fbf6fe, 0x00faf6fe, 0x00faf8fb, 0x00f8f7f9, 0x00f1f2f2, 0x00eaeceb,
- 0x00ebe8e9, 0x00efedef, 0x00e9e7e9, 0x00d5d3d5, 0x00dbdadc, 0x00ebe8ea, 0x00efeaec, 0x00ece8e9, 0x00eae6e8, 0x00ebebec, 0x00f2f3f5, 0x00f1f7f6, 0x00e2e8e8, 0x00eceeeb, 0x00dadcce, 0x0095957f,
- 0x004d4527, 0x00493b23, 0x00432b20, 0x00401f26, 0x00451837, 0x00252751, 0x00102756, 0x00223869, 0x003c446d, 0x005c4859, 0x0092665f, 0x00c4805c, 0x00f19e62, 0x00f4b273, 0x00e6af77, 0x00cca773,
- 0x00d4ba8c, 0x00bfaa7b, 0x0073673b, 0x00636438, 0x00586b3e, 0x004c673c, 0x0030431c, 0x00151e01, 0x00472915, 0x009e6d5d, 0x00eca591, 0x00fa9a67, 0x00f9a880, 0x00f8b69b, 0x00f7c2ae, 0x00f6cab8,
- 0x00f9c3b1, 0x00f4b29e, 0x00e59583, 0x00e1937b, 0x00e18e80, 0x00df8883, 0x00d67f7d, 0x00d38a7b, 0x00d6a593, 0x00d8b7a7, 0x00a9958b, 0x00716a68, 0x00686c6d, 0x00717c78, 0x00798c7e, 0x00789279,
- 0x009c988d, 0x00999293, 0x00827a84, 0x00847e8b, 0x007d838d, 0x00505f81, 0x001f2f69, 0x002f3d97, 0x00424993, 0x00555a7e, 0x0070696e, 0x00847051, 0x00a38761, 0x00b99966, 0x00c9a663, 0x00d5ae62,
- 0x00dcb15e, 0x00dab25d, 0x00e2b969, 0x00d8b369, 0x00c4a159, 0x00c49c5f, 0x00c29e68, 0x00b29f65, 0x00abad74, 0x009ea872, 0x00556135, 0x00353f1a, 0x00949585, 0x00f0f1e8, 0x00f7fbf9, 0x00f7ffff,
- 0x00fcfdff, 0x00fdfcfb, 0x00c1b8b1, 0x00463624, 0x00341806, 0x00432813, 0x00826b55, 0x00ddccbd, 0x00fffaf7, 0x00fdfdfc, 0x00fafbff, 0x00fefafe, 0x00e4e2e3, 0x00868782, 0x002b291f, 0x00483e31,
- 0x0065433d, 0x006b473e, 0x0069433c, 0x0065473b, 0x00614f40, 0x00634743, 0x00644542, 0x00624d39, 0x005b4c3d, 0x00514044, 0x004a3544, 0x00826e7d, 0x00eee8de, 0x00f6fdf9, 0x00dcecf9, 0x00bdd7f8,
- 0x00acc7f4, 0x00b6cae5, 0x00e2ebf9, 0x00fafcf9, 0x00fefcfa, 0x00fcfdfb, 0x00f4fafe, 0x00f6fefd, 0x00f4faff, 0x00fafdfd, 0x00fdfffc, 0x00fcfcf9, 0x00f9fcfb, 0x00eff7fa, 0x00f3fafd, 0x00f5fdfe,
- 0x00f5f9ff, 0x00f8fafd, 0x00f7f2f3, 0x00f4ebe7, 0x00d4c3c0, 0x00d18e7e, 0x00df896f, 0x00dc9173, 0x00dc967b, 0x00d99175, 0x00db8b74, 0x00dd836d, 0x00e07b66, 0x00d4755b, 0x00ba5f40, 0x00a14b2a,
- 0x008b3227, 0x008b2e26, 0x008d2d2b, 0x00882628, 0x0076262e, 0x0061272c, 0x005f383f, 0x0066555c, 0x0089828b, 0x00a0a1aa, 0x00b2b5c1, 0x00bcc0cd, 0x00c0c4d1, 0x00c0c4d0, 0x00bfc1ce, 0x00c0c1d1,
- 0x00c2c2cd, 0x00c5c2cd, 0x00cac8d0, 0x00cbcbd3, 0x00c9c7cf, 0x00c0c5d0, 0x00b1b9c2, 0x00a8acb4, 0x009a9fa4, 0x00828485, 0x00696865, 0x00615c56, 0x00625a51, 0x00665d4f, 0x006a604f, 0x00655946,
- 0x006d5344, 0x00674b36, 0x006b4c36, 0x00704a30, 0x00764c30, 0x007d4f30, 0x0087593c, 0x008d6040, 0x00906243, 0x008f6646, 0x00a86953, 0x00d26d69, 0x00e89192, 0x00eba5a9, 0x00e9b4bc, 0x00d8b4bf,
- 0x00c2b1c6, 0x00aaa3b9, 0x008a8ba8, 0x00767b98, 0x004f5675, 0x003f3f58, 0x004c4659, 0x00605967, 0x008e8588, 0x00ada4a3, 0x00b6ada8, 0x00aaa39c, 0x00a09d97, 0x00a1a19d, 0x009c9d9b, 0x00979997,
- 0x00a09c9c, 0x00a19f9f, 0x00a1a0a1, 0x00a6a5a6, 0x00aaa9a9, 0x00ababaa, 0x00adaead, 0x00afb1b0, 0x00a1a1a1, 0x008e8f8e, 0x00918f8e, 0x00c7c1bc, 0x00fcfdfa, 0x00fdfffc, 0x00fcfdfe, 0x00fbfdfe,
- 0x00f9f7f6, 0x00bbb3a8, 0x00654f40, 0x007b5e45, 0x00966f4e, 0x00a47649, 0x00ca9868, 0x00c89966, 0x00a17144, 0x00a57649, 0x00bd9062, 0x00bd9365, 0x00a87f55, 0x00aa8057, 0x00ac835a, 0x00976f47,
- 0x00845735, 0x00795131, 0x00724f34, 0x00684a36, 0x005b473a, 0x0052443a, 0x00514941, 0x00524c47, 0x00595556, 0x007e7b7a, 0x007a8195, 0x00536fa2, 0x004b81ce, 0x004883d0, 0x00457ccc, 0x00497ac0,
- 0x004779c3, 0x004380c8, 0x00447dc0, 0x0081a9d6, 0x00eae4e7, 0x00f4f3ea, 0x00f0efe8, 0x00ece9eb, 0x00e7e3e1, 0x00dbe7e0, 0x00daeeee, 0x00bddff3, 0x0081acee, 0x0078a5e1, 0x008db9e2, 0x0090becc,
- 0x0062affd, 0x004d9beb, 0x00519ce4, 0x006eb9f5, 0x0093d5fb, 0x0094d2f4, 0x00a3d7f5, 0x00b3e6fb, 0x00a1c9f6, 0x008db5ec, 0x00a3c6f7, 0x00b0d7f5, 0x00ccdbef, 0x00dce5ef, 0x00edf5ff, 0x00e6f4fc,
- 0x00aacdf1, 0x0083b0dc, 0x0087b1db, 0x009cbfe4, 0x00cbdbed, 0x00b6e1fc, 0x0084b5e9, 0x0083b1e2, 0x009cbff4, 0x009fbef3, 0x00b4d2f9, 0x00bedcfb, 0x009ebbf0, 0x0098baf1, 0x007ba0db, 0x006e96d2,
- 0x00bac5d4, 0x00dde6f2, 0x00c9d2dc, 0x00afb8be, 0x00ced4d8, 0x00e9eeef, 0x00e8eaec, 0x00ebe9ee, 0x00b7b3ba, 0x0057565b, 0x00363032, 0x0042362f, 0x004d3e36, 0x00534339, 0x005c493f, 0x00634e41,
- 0x006b4f42, 0x00705344, 0x00785948, 0x007c5a47, 0x007c5944, 0x007f5944, 0x007e5945, 0x00765743, 0x006b5140, 0x00614c3e, 0x005c483c, 0x005d4b3b, 0x00664f3a, 0x0070523a, 0x007d5c40, 0x00876345,
- 0x00b1bfca, 0x002a3765, 0x002e3c75, 0x00314184, 0x0033478b, 0x00354c8a, 0x00324e87, 0x00304e83, 0x002f4883, 0x002d4382, 0x0029407e, 0x00253a77, 0x00283c70, 0x00323967, 0x002e1e42, 0x0042132d,
- 0x008f2c30, 0x00ad362f, 0x00b33425, 0x00ae3022, 0x00b44435, 0x00cd9096, 0x00dcbfcb, 0x00d4c0c8, 0x00bab0b8, 0x00b8b1bb, 0x00b9b1c0, 0x00bdb0c5, 0x00b9abc6, 0x00b0a7c4, 0x008986a4, 0x005c6382,
- 0x003c3e72, 0x0034386c, 0x002e336c, 0x00313773, 0x00394283, 0x00384185, 0x00343d85, 0x002c367d, 0x0026347b, 0x002a397d, 0x00354386, 0x003b447f, 0x001e2957, 0x00020b2c, 0x00000726, 0x00040824,
- 0x00141436, 0x003b3b5b, 0x008d8ba9, 0x00b2aec7, 0x00cdcad8, 0x00d1ceda, 0x00cecbd8, 0x00cac6d4, 0x00c5c3d1, 0x00cccad7, 0x00d2d0dd, 0x00cccad7, 0x00c5c4d1, 0x00c4c3cf, 0x00cfccd8, 0x00d8d3e0,
- 0x00ded9e5, 0x00dedbe6, 0x00dedae6, 0x00dad6e1, 0x00d1cdd8, 0x00c7c3ce, 0x00c5c0cb, 0x00c5c0cb, 0x00beb7c5, 0x00b4aebb, 0x00b4acb6, 0x00c8b9c0, 0x00d6c9d0, 0x00cbbdc7, 0x00c1b5c0, 0x00b5abb7,
- 0x00a29ba6, 0x00aba3b0, 0x00b7b1be, 0x00b1adbb, 0x00aaa6b4, 0x00ada5b2, 0x00b2a9b4, 0x00bab2bd, 0x00c6bec6, 0x00c7bfc8, 0x00c9bec8, 0x00c9bec6, 0x00c5bbc2, 0x00c1b7be, 0x00baaeb6, 0x00b5a9b2,
- 0x00afa5ad, 0x00b0a5ae, 0x00ada0aa, 0x00aa9ca4, 0x00ab9da4, 0x00aa99a0, 0x00a7989d, 0x00ac9fa0, 0x00bfb7b9, 0x00d0c9c9, 0x00dad4db, 0x00d6cfde, 0x00cec6d7, 0x00c3bcca, 0x009993a2, 0x007b7583,
- 0x008c8894, 0x00b3adbb, 0x00d8d3e0, 0x00aaa3b0, 0x00322c38, 0x00373439, 0x00c1bebe, 0x00fcf9fa, 0x00fdfffd, 0x00fffffe, 0x00fffefb, 0x00f0efeb, 0x0084827f, 0x00282924, 0x003f403a, 0x00504f4a,
- 0x00635b53, 0x00676557, 0x00676855, 0x00626b50, 0x00606f53, 0x0062725c, 0x00637365, 0x00616e6d, 0x0035394c, 0x00171737, 0x00191e4c, 0x0022327a, 0x003a4899, 0x004750ac, 0x004958ae, 0x00485bb1,
- 0x004b60b2, 0x004058a8, 0x00304aa1, 0x00223c9e, 0x000d269c, 0x001f2a71, 0x00525580, 0x00817c98, 0x00978c8c, 0x009a9286, 0x009d9891, 0x00a0a0a1, 0x008383a5, 0x00555185, 0x00484182, 0x00574895,
- 0x007165a8, 0x00958bc4, 0x00c3bded, 0x00e6e2fb, 0x00f9fcfd, 0x00f7f9f7, 0x00f8faf7, 0x00f3f1f2, 0x00e9e3e4, 0x00ebe4e6, 0x00f4eeec, 0x00efebe9, 0x00e5e2db, 0x00dfdcd8, 0x00dad7cc, 0x00d5d0c6,
- 0x00cbc4bc, 0x00c1b9b0, 0x00b6afa6, 0x00b4aca2, 0x00b4ada5, 0x00beac93, 0x00c5b4a3, 0x00c2b8c0, 0x00d5babb, 0x00dbcdcf, 0x00efd7d4, 0x00dca093, 0x0091384c, 0x00472d7b, 0x0020369d, 0x00063196,
- 0x001b2f8d, 0x001c3595, 0x001e3a9c, 0x00123091, 0x00142d7f, 0x00212c6b, 0x00656997, 0x00b7b2d0, 0x00c8c0c6, 0x00d4cfcd, 0x00a4a0a7, 0x00565573, 0x00424364, 0x0042456b, 0x003e406b, 0x00353967,
- 0x00303665, 0x00303560, 0x00303059, 0x002d2b4d, 0x002c294a, 0x0028243e, 0x002a233a, 0x00292132, 0x00291e2f, 0x00332835, 0x00423641, 0x004f424f, 0x0061565c, 0x006a626c, 0x0074717a, 0x007b7b86,
- 0x0088868e, 0x00888a90, 0x0085878c, 0x0086888d, 0x0083868b, 0x007f8288, 0x00797b80, 0x007c8083, 0x00b8bdbe, 0x00f6f8f7, 0x00fdfcfe, 0x00fefdfc, 0x00fffefe, 0x00fefffe, 0x00babbbd, 0x00494948,
- 0x00080b0b, 0x000c110d, 0x000f1714, 0x000f1914, 0x000a1612, 0x00161207, 0x0023190b, 0x002c2114, 0x00302217, 0x002a1c13, 0x0022150b, 0x00150b03, 0x000b0500, 0x00050500, 0x00040800, 0x000d130b,
- 0x003b373c, 0x005d5a5f, 0x00615f63, 0x004a484b, 0x001d1b1e, 0x00050405, 0x00010200, 0x00040504, 0x00030302, 0x00020102, 0x00030205, 0x000a070d, 0x00201d1f, 0x00373432, 0x004d4949, 0x00514e4c,
- 0x006c666a, 0x00aea8ab, 0x00f2ebf4, 0x00ede7f6, 0x00f1e8f8, 0x00f6e3f2, 0x00fce5f1, 0x00f9eaef, 0x00f5eef0, 0x00ecf2f5, 0x00e9f4fb, 0x00e8f7fd, 0x00f3f2fa, 0x00fbeff1, 0x00edc1bf, 0x00b3756c,
- 0x00565cb3, 0x004b5cc0, 0x004761bf, 0x004a6db0, 0x005c749a, 0x00827ab2, 0x00a689b9, 0x00be8da4, 0x00d2a184, 0x00c69483, 0x009a6555, 0x00874e39, 0x00814528, 0x00793918, 0x00894513, 0x00a4571c,
- 0x00a9510b, 0x00934002, 0x00792903, 0x005d1a05, 0x00390902, 0x00230502, 0x00100000, 0x002d1d17, 0x00adaaa4, 0x00f0f4f0, 0x00f4fbfc, 0x00f4ffff, 0x00fafefd, 0x00fbf7f7, 0x00cac2c2, 0x009b9290,
- 0x00888a85, 0x008b8c87, 0x008b8c87, 0x00878882, 0x00878883, 0x00878882, 0x00878782, 0x0084857f, 0x0084827d, 0x0080817c, 0x0082807e, 0x007f817d, 0x00867878, 0x00777d94, 0x00657fb4, 0x004985dc,
- 0x003a86ef, 0x004581e0, 0x004980d8, 0x00467ed4, 0x003481e7, 0x00337cdc, 0x00337ad7, 0x00337ad9, 0x003478d7, 0x003377d5, 0x003475d4, 0x003270cf, 0x002f6ccd, 0x002f69cb, 0x002a61c4, 0x00235abe,
- 0x002051b4, 0x001947ab, 0x00123ca2, 0x0010389f, 0x00143ca3, 0x00163ea5, 0x00214cb1, 0x002550b5, 0x001e4eb3, 0x001f52b4, 0x00245bbc, 0x00225dc0, 0x002560c0, 0x002764c5, 0x002766c7, 0x002567c5,
- 0x002365c4, 0x002262c3, 0x002260c0, 0x00245ec1, 0x00275bc0, 0x00205bc2, 0x002162c3, 0x00215fbc, 0x002251a8, 0x003159aa, 0x007b9be2, 0x0092adf2, 0x003d5299, 0x003c5093, 0x006a79bb, 0x005d6aaa,
- 0x000f268f, 0x00172d87, 0x003e549e, 0x007889c6, 0x00a0afe1, 0x007c87c2, 0x005564a2, 0x007d91d4, 0x00819ee2, 0x00305190, 0x00162f69, 0x00626594, 0x0093a2e0, 0x006c88cc, 0x003b60a6, 0x0079a6e3,
- 0x009cc5e7, 0x00556f80, 0x00030b17, 0x00040100, 0x00543d33, 0x00beb9ab, 0x00fcfaf1, 0x00fdfaf9, 0x00fdf8fe, 0x00fefcfd, 0x00f7fcf0, 0x00c2d6b6, 0x0067894d, 0x00668644, 0x006b8745, 0x008ea564,
- 0x00e1e5be, 0x00f8f9d5, 0x00fbfcd2, 0x00fdfed1, 0x00fcfdc8, 0x00fdfcd0, 0x00fcf6cb, 0x00fdfbd8, 0x00f5ebd0, 0x00c8baa3, 0x00b7aca0, 0x00dfddd9, 0x00e9e7e6, 0x00f2f1f1, 0x00f4f3f4, 0x00f3f1f3,
- 0x00faf6f7, 0x00f9f3f5, 0x00faf2f2, 0x00fbf3f2, 0x00fcf4ee, 0x00fdf2f8, 0x00fbf1fa, 0x00fdf2fc, 0x00fef5fc, 0x00fcf6f9, 0x00fffafb, 0x00faf5f8, 0x00f2eef1, 0x00e9e9ec, 0x00e1e5e6, 0x00dee3e3,
- 0x00efeeed, 0x00eae9e9, 0x00dddadd, 0x00d5d3d4, 0x00e3e2e1, 0x00ebe9e8, 0x00e9e6e7, 0x00e7e4e4, 0x00e9e8e9, 0x00f0eff1, 0x00f4f6f6, 0x00f4faf9, 0x00e0e6e5, 0x00eff4ef, 0x00d3d8c9, 0x00909376,
- 0x00605c31, 0x00635931, 0x00523f1f, 0x00412917, 0x003f1d20, 0x00202638, 0x000e283f, 0x001f3851, 0x00434a5b, 0x00675759, 0x009e7b6b, 0x00d09671, 0x00f0af76, 0x00edb87b, 0x00dfb77e, 0x00c8ae78,
- 0x00c7ad79, 0x00bda777, 0x007b6f44, 0x0045441e, 0x00374d29, 0x002a4220, 0x001d2e0f, 0x00131400, 0x00562e18, 0x009d5f4c, 0x00c36952, 0x00df6534, 0x00de6f47, 0x00dc734e, 0x00e07c58, 0x00de7e59,
- 0x00da7553, 0x00cb674b, 0x00ae4d3b, 0x00a14742, 0x0094444c, 0x007c3b3e, 0x00905853, 0x00cf9c92, 0x00f6d4be, 0x00fae3d2, 0x00eadcd2, 0x00d5cdcc, 0x00c7c5c9, 0x00babbbb, 0x00c3c5bf, 0x00c2c8bb,
- 0x00d2d1c5, 0x00c9c4cf, 0x008d89a2, 0x007e7ba2, 0x006a7999, 0x003f5489, 0x00334a8f, 0x004253b2, 0x0056569f, 0x006e678c, 0x00a28f8f, 0x00b99069, 0x00bf9663, 0x00cc9f66, 0x00d2a262, 0x00d7a55c,
- 0x00d29f55, 0x00bd8e44, 0x00be904c, 0x00c69c5e, 0x00c79f68, 0x00ca9f67, 0x00c59e66, 0x00b49d64, 0x009e9e65, 0x00868f5a, 0x00465024, 0x0041492a, 0x00afb1a1, 0x00f6f7f3, 0x00f8fcfc, 0x00f8feff,
- 0x00fafcfd, 0x00fcfbf9, 0x00a69c93, 0x00362314, 0x003e1f05, 0x004a2b12, 0x00765b44, 0x00d1bdac, 0x00fdfaf7, 0x00fcfefc, 0x00fcfefd, 0x00fffcfd, 0x00eeeeee, 0x00999c99, 0x00373833, 0x0044403b,
- 0x00594641, 0x00604944, 0x005b433c, 0x0059413b, 0x00534238, 0x00523a41, 0x00553f42, 0x0058493b, 0x00554a3c, 0x004c3e43, 0x00493747, 0x00968794, 0x00f8f9f1, 0x00edfcfe, 0x00b5cced, 0x007b9cdb,
- 0x005c8ccc, 0x00779cc7, 0x00cadff6, 0x00f4fbfc, 0x00f9f5ef, 0x00fef7f5, 0x00f5f3f3, 0x00f9f7fd, 0x00f3f6fb, 0x00f8fcfa, 0x00f6f6f3, 0x00f5f4ef, 0x00f1f4f3, 0x00f0f6f7, 0x00eff5f7, 0x00eef5f7,
- 0x00f5fafa, 0x00f7f9f9, 0x00f6f6f5, 0x00f7f2ec, 0x00d9cdc8, 0x00d99681, 0x00dc8267, 0x00dc8769, 0x00e08d6c, 0x00e18a68, 0x00e48769, 0x00e78064, 0x00e2765c, 0x00d56e52, 0x00b75737, 0x00a04122,
- 0x008c2b21, 0x008d2723, 0x00912423, 0x00902025, 0x007c2027, 0x00662027, 0x0058282d, 0x00573e46, 0x00786f79, 0x009797a1, 0x00b1b4c2, 0x00c0c4d4, 0x00c8cada, 0x00cbcedc, 0x00cbcddb, 0x00cecfde,
- 0x00cecddb, 0x00ccccd7, 0x00cfcdd6, 0x00d0ced7, 0x00ceccd5, 0x00c5cbd3, 0x00bbc0c8, 0x00b0b2b8, 0x00a2a4a4, 0x008d8e8b, 0x0074726a, 0x00625f53, 0x005b5549, 0x00605a4a, 0x006a624f, 0x006d6351,
- 0x00705c4f, 0x00674f40, 0x00654937, 0x0065422f, 0x0070472d, 0x0077482e, 0x00865638, 0x00946242, 0x009a694a, 0x00956747, 0x00a1614a, 0x00c9615f, 0x00dd8788, 0x00e59da1, 0x00e8b0ba, 0x00dbb3c0,
- 0x00c7b4c8, 0x00b4aabe, 0x008e8ba2, 0x0074738c, 0x004b4f6b, 0x00453b4a, 0x004b3e47, 0x0060535a, 0x00968a89, 0x00b8ada9, 0x00baafa9, 0x00a29b94, 0x00918c86, 0x0094938e, 0x0092928f, 0x0090918e,
- 0x00969390, 0x00989594, 0x009b9999, 0x009e9c9d, 0x00a19f9f, 0x00a1a09f, 0x00a2a1a1, 0x00a2a2a1, 0x00928f90, 0x007c7c7b, 0x007e7d7b, 0x00bab4af, 0x00fafbf8, 0x00fdfffd, 0x00fbffff, 0x00fbfdff,
- 0x00f9f9f6, 0x00cac0b8, 0x005b483b, 0x00654c39, 0x0084654a, 0x0093663d, 0x00aa784a, 0x00bf9061, 0x00ad7d4d, 0x00956639, 0x00a4764b, 0x00b68c61, 0x00a57b53, 0x00916741, 0x009d744e, 0x00946d49,
- 0x00855736, 0x007a5031, 0x00704d30, 0x00694b35, 0x005d493a, 0x00534439, 0x00534940, 0x00504a43, 0x0055514f, 0x007d7876, 0x007a7f90, 0x0050689a, 0x00497bc9, 0x004a83d2, 0x004b85d5, 0x004d81c9,
- 0x00437ac3, 0x003b7cc7, 0x003b7abd, 0x006998c9, 0x00d7d6d9, 0x00f1f1ea, 0x00f1efe8, 0x00edebea, 0x00eaeaee, 0x00deedef, 0x00d0e4f3, 0x0091b0cd, 0x006482bc, 0x0099b9e8, 0x00d0effb, 0x00cbe6ee,
- 0x00a1d3ec, 0x008fc3ec, 0x0084baec, 0x0086c0f6, 0x0080bef5, 0x007fbbf6, 0x007ab2ea, 0x0084b8eb, 0x0093c1ed, 0x00a6d0f7, 0x00cbe8fc, 0x00e5f6f8, 0x00f4fbfa, 0x00f8f5f0, 0x00f8f6f2, 0x00f5f9f7,
- 0x00cbddf3, 0x00aac6df, 0x00b5ceea, 0x00cde0f5, 0x00eaedf9, 0x00dcf4f9, 0x00b0cde5, 0x00a3bdd6, 0x00a7bbda, 0x00b4c2e7, 0x00d3e1fb, 0x00e0ebfe, 0x00bfcff2, 0x00baceef, 0x009fb6d4, 0x008faac6,
- 0x00c2cdd9, 0x00d6dfe9, 0x00b8c0c7, 0x00aab2b5, 0x00d0d6d9, 0x00e7eced, 0x00e4e7e9, 0x00e9e9ed, 0x00afacb5, 0x004f4b54, 0x00393236, 0x0042332c, 0x004c3d32, 0x00554237, 0x005c473b, 0x00644b3c,
- 0x006e503e, 0x00745542, 0x007e5c46, 0x00845f47, 0x00855e45, 0x00865d43, 0x00845d43, 0x007e5c43, 0x00725641, 0x00694f3c, 0x00634a39, 0x00654c37, 0x00715339, 0x007d593b, 0x008b6242, 0x00956746,
- 0x00b0b9c6, 0x00222f59, 0x00283568, 0x002b3a76, 0x002d427e, 0x002f477e, 0x002f487b, 0x002d4778, 0x002e447e, 0x002b407d, 0x00263c7a, 0x00233a70, 0x00244074, 0x00263b6b, 0x00282954, 0x00331839,
- 0x00742230, 0x00a23634, 0x00b03128, 0x00b73022, 0x00b1311d, 0x00b26d6e, 0x00d4b3bc, 0x00d1bcc1, 0x00bab1bb, 0x00bab5c3, 0x00ada8bc, 0x00a79eba, 0x009287aa, 0x00726d91, 0x00434267, 0x00232b4f,
- 0x00313674, 0x00353b7a, 0x0032387c, 0x0032397e, 0x002f3881, 0x002c367e, 0x002d3680, 0x0028337d, 0x0026337a, 0x002a397e, 0x00344180, 0x00303a69, 0x00131d41, 0x00000924, 0x00020922, 0x000c132c,
- 0x001c1d3d, 0x00454563, 0x009f9db9, 0x00c5c2d8, 0x00d4d1db, 0x00d1ced8, 0x00ccc8d6, 0x00c8c4d2, 0x00ccccd9, 0x00d5d5e1, 0x00d7d5e2, 0x00d2cfdd, 0x00cdcbd8, 0x00cdcad8, 0x00d2cfdd, 0x00d5d2e0,
- 0x00dcd9e4, 0x00d9d7e0, 0x00d9d6e0, 0x00dad5e0, 0x00d8d1de, 0x00d1ccd9, 0x00d2cdda, 0x00d8d1de, 0x00d4d0dc, 0x00c5c3cd, 0x00bab1ba, 0x00c2b1b8, 0x00d7c7ce, 0x00ded0d8, 0x00dfd2da, 0x00d4cad2,
- 0x00d0c4d0, 0x00c4bac5, 0x00beb5c1, 0x00b9b1bc, 0x00b6adba, 0x00bcb4bd, 0x00c3b9c1, 0x00cbbec8, 0x00d1c6d2, 0x00cfc5d0, 0x00cec1cb, 0x00cfc1c9, 0x00c7bac4, 0x00c1b5be, 0x00b9adb5, 0x00aea4ac,
- 0x00a9a0a3, 0x00aba0a5, 0x00ab9ea3, 0x00ad9fa5, 0x00b0a0a7, 0x00ae9ea4, 0x00b1a2a7, 0x00beb2b6, 0x00cfcbcd, 0x00dad7d7, 0x00e0dce4, 0x00dbd4e6, 0x00d3c9dd, 0x00d4cdde, 0x00b4b0c0, 0x008b8696,
- 0x008f8999, 0x00aea8b8, 0x00d0cbda, 0x00cdc8d7, 0x005e5867, 0x0038353b, 0x00c1bcbe, 0x00faf7fb, 0x00fdfdfd, 0x00fdfcfc, 0x00fcfdfa, 0x00edefeb, 0x007d7e7b, 0x001f211d, 0x00343831, 0x0042463e,
- 0x00545151, 0x00565850, 0x00585f51, 0x0054634b, 0x0054694e, 0x00586d57, 0x00566b5c, 0x005d6d6b, 0x004a566c, 0x00262d4d, 0x00121c4e, 0x00212b77, 0x00313d93, 0x0037449f, 0x00384ba7, 0x003853aa,
- 0x003652a4, 0x00334d9d, 0x002c4198, 0x00213592, 0x00192393, 0x001a2472, 0x004a4f84, 0x006e6d93, 0x007f757c, 0x00847b78, 0x00848079, 0x00858588, 0x009697b0, 0x00a19bc0, 0x00a9a0cc, 0x00bdaee4,
- 0x00cbbcd9, 0x00dfd5ea, 0x00f1ebf4, 0x00f9f5f5, 0x00f9f9ef, 0x00f8faf0, 0x00fbfaf6, 0x00fff9f7, 0x00fff5fb, 0x00fbf2fa, 0x00fcf3f6, 0x00f9f2e8, 0x00faf3ea, 0x00f7f2e9, 0x00ede8dc, 0x00e1d9d0,
- 0x00cfc3bf, 0x00c3bab4, 0x00beb5ae, 0x00c0bbb2, 0x00c6bdba, 0x00d2c5a7, 0x00d2c7b2, 0x00c3c7db, 0x00e6cacd, 0x00ddd6d7, 0x00ebdcdb, 0x00dfaea0, 0x00ad3f3e, 0x004e2669, 0x001e2c95, 0x000639a8,
- 0x001d3597, 0x001f3d9f, 0x002041a7, 0x00183aa3, 0x0014379a, 0x00163587, 0x00445d9b, 0x00a9b4dc, 0x00d7d4df, 0x00dedad7, 0x00b9b2b7, 0x00666887, 0x00494a70, 0x00494e79, 0x00474b79, 0x00404777,
- 0x003b3f74, 0x00373d6e, 0x00313663, 0x002d3158, 0x002c2c51, 0x00292643, 0x00282338, 0x00272034, 0x002a1f32, 0x00332934, 0x00473a46, 0x00554a53, 0x00685c63, 0x006f686f, 0x007b767e, 0x00828087,
- 0x008c8b93, 0x008f9096, 0x008f9096, 0x00909095, 0x008f9095, 0x008e9294, 0x00808285, 0x008e8f91, 0x00c8cbca, 0x00f8f9f9, 0x00fbfafb, 0x00fcfafb, 0x00fffdfc, 0x00fefcfc, 0x00aeafaf, 0x00434542,
- 0x00090c0b, 0x000b100c, 0x00151a18, 0x0018201c, 0x00131b18, 0x001d190b, 0x002e2211, 0x003a2c1c, 0x00423222, 0x003e2e1e, 0x00352514, 0x00241809, 0x00160e04, 0x000e0a02, 0x000e0c04, 0x001d1b14,
- 0x00423e41, 0x00615c60, 0x00635d62, 0x004d494c, 0x001d1a1e, 0x00050506, 0x00020101, 0x00040303, 0x00040402, 0x00010101, 0x00090607, 0x001b1717, 0x003f3b3b, 0x005b5656, 0x006e6a69, 0x006d6969,
- 0x00827a80, 0x00afaaaf, 0x00ece6f0, 0x00ede6f4, 0x00efe6f6, 0x00f2e3f6, 0x00f6e5f5, 0x00f5ebf3, 0x00f3f0f5, 0x00eaf4f7, 0x00e6f6fa, 0x00e2f8fb, 0x00f3f5fd, 0x00fcf0f4, 0x00e6bbba, 0x00ad7269,
- 0x005c579b, 0x006261af, 0x00767cc1, 0x008c96bb, 0x00b1afb1, 0x00bfa8b6, 0x00bb909b, 0x00ad736a, 0x008d4f23, 0x007d3b1b, 0x007d3213, 0x00923605, 0x00a04b17, 0x009a4914, 0x00934410, 0x008b3e0d,
- 0x00742b07, 0x005f2002, 0x00420c04, 0x00220400, 0x000d0105, 0x000c0003, 0x00090102, 0x00322f2d, 0x00bac0c0, 0x00f2f8f8, 0x00f5fafd, 0x00f4fdfd, 0x00fdfffd, 0x00f9f5f4, 0x00bfb8b7, 0x00938886,
- 0x00898987, 0x00898a87, 0x00868784, 0x00838580, 0x0081837f, 0x00838681, 0x0082847f, 0x0080837d, 0x007f817b, 0x007c817c, 0x007e8380, 0x007e8380, 0x00867b7d, 0x00767c91, 0x00617eb0, 0x004785db,
- 0x003884f0, 0x004381e0, 0x004880d9, 0x00467ed4, 0x003581e9, 0x00347bdc, 0x003479d7, 0x00317ad8, 0x003277d6, 0x003276d5, 0x003474d3, 0x003270cf, 0x00316cce, 0x002e67ca, 0x00285fc1, 0x00225abc,
- 0x002250b3, 0x001c49ab, 0x001741a6, 0x0011389e, 0x000e3398, 0x000e349a, 0x001b42aa, 0x00254eb3, 0x00204cb1, 0x001f4eae, 0x002154b5, 0x00215abc, 0x00245dbf, 0x002660c2, 0x002966c7, 0x002867c6,
- 0x002866c6, 0x002864c5, 0x002863c4, 0x002761c4, 0x00265bc0, 0x001e5dc3, 0x002063c4, 0x002864be, 0x002d56a7, 0x00385da8, 0x008fabed, 0x009ab5f5, 0x00465da1, 0x006275b2, 0x00b3bdf3, 0x009ca2d7,
- 0x00394fad, 0x00213687, 0x00192f77, 0x002a3e7b, 0x008193cf, 0x0093a4ea, 0x00364a94, 0x00445cad, 0x004e6fbf, 0x00244792, 0x0038508d, 0x009d9fc1, 0x009baae2, 0x005b7abf, 0x002b569e, 0x00558ad1,
- 0x00a0d1fe, 0x007fa2ba, 0x000f212c, 0x00040502, 0x006f574b, 0x00dbd3c9, 0x00fefdf4, 0x00fdf9f9, 0x00fefafe, 0x00fdfbf8, 0x00f0f9e6, 0x00b1c9a1, 0x00618445, 0x00678644, 0x00728d4c, 0x00a5b87b,
- 0x00f6f6d8, 0x00fafad5, 0x00fefdd4, 0x00fdfecd, 0x00f8fac6, 0x00fdffd0, 0x00f9f6cb, 0x00fdfbd9, 0x00dacfba, 0x00948878, 0x007e746e, 0x00a8a8a3, 0x00c7c6c7, 0x00d6d6da, 0x00e7e7ee, 0x00f1f2fc,
- 0x00f7f3fc, 0x00f8f3f9, 0x00fbf4fa, 0x00fcf5f5, 0x00fdf7f3, 0x00fcf6f5, 0x00fbf5fa, 0x00fef8fb, 0x00fffafa, 0x00fcf7f7, 0x00faf5f4, 0x00efe9e8, 0x00dfdade, 0x00d7d6db, 0x00dbdfe3, 0x00e5ebee,
- 0x00eeebee, 0x00dfdcdc, 0x00d3d0d0, 0x00e0dcdc, 0x00ede9e9, 0x00e8e4e6, 0x00eae7ea, 0x00ebe8e9, 0x00f3eeee, 0x00f3f3f1, 0x00f4f6f6, 0x00f2f4f7, 0x00e0e2e1, 0x00f0f4ef, 0x00d0d3c3, 0x0088926d,
- 0x00666a37, 0x00686c30, 0x006a6733, 0x0062592f, 0x0057492f, 0x0039463a, 0x002d4847, 0x00324949, 0x004d514f, 0x00786d61, 0x00ad8d74, 0x00c99970, 0x00dfab72, 0x00deb377, 0x00d7b87b, 0x00c9b87d,
- 0x00bea168, 0x00b7a370, 0x008a7f52, 0x00343512, 0x0022391a, 0x00122e0f, 0x00172a0f, 0x00131300, 0x004e200a, 0x00823c28, 0x00903321, 0x00a44024, 0x00ab4a2c, 0x00983816, 0x00983616, 0x00932f10,
- 0x00912810, 0x00892819, 0x007d2623, 0x006f2739, 0x0057224b, 0x004a2838, 0x00857070, 0x00e1d4cb, 0x00fdfaeb, 0x00fdfbf1, 0x00faf6f1, 0x00f7f2f4, 0x00fbf2fa, 0x00fbf5f8, 0x00fbf2f2, 0x00fdf5f0,
- 0x00faf9f7, 0x00e0dcf5, 0x007977a4, 0x005a5a98, 0x00485a95, 0x00375097, 0x003c53a9, 0x003445ab, 0x00504793, 0x00716086, 0x00bc9c9b, 0x00d09a68, 0x00d09a60, 0x00d49c60, 0x00d29a5b, 0x00d39d59,
- 0x00cb9555, 0x00b78548, 0x00ae7c47, 0x00a97a4d, 0x00a87d55, 0x00aa7f4c, 0x00a57e45, 0x00ae985d, 0x00999760, 0x00727948, 0x00464f26, 0x00575f41, 0x00d2d3c6, 0x00fafbf6, 0x00fafefd, 0x00f4fafb,
- 0x00f9fdfd, 0x00f4f2ee, 0x008c8177, 0x00341c0c, 0x00462206, 0x004a280a, 0x00705138, 0x00c5ae9a, 0x00fefbf3, 0x00fbfefa, 0x00f8fcfa, 0x00fafcfa, 0x00f3f3f4, 0x00a5a8a9, 0x00464749, 0x00444245,
- 0x00524b4c, 0x00584c4b, 0x00524241, 0x004c3b3a, 0x00493535, 0x00483340, 0x004e3e47, 0x0053483d, 0x00534b40, 0x00493b43, 0x00514252, 0x00a798a8, 0x00f4f8f6, 0x00eafcff, 0x0097b9de, 0x005481c7,
- 0x003174c5, 0x005386bd, 0x00bbdcf8, 0x00ecfafc, 0x00faf1e4, 0x00faedea, 0x00f4eaea, 0x00f1ebf3, 0x00ebe9ef, 0x00edf1ed, 0x00e8eae6, 0x00ecece5, 0x00eeefec, 0x00edf1ef, 0x00eaeff0, 0x00eef2f5,
- 0x00f2f3f8, 0x00f1f2f3, 0x00f6f4f3, 0x00fbf6f3, 0x00e5dcd8, 0x00e2a48d, 0x00d77b5d, 0x00d97a58, 0x00e78460, 0x00e68057, 0x00eb7e57, 0x00e97a54, 0x00e27150, 0x00d36648, 0x00b64f30, 0x00a13a20,
- 0x00962e27, 0x00972827, 0x00982324, 0x00951b20, 0x0080171f, 0x0068171d, 0x004e151b, 0x0045262e, 0x00645761, 0x0089858e, 0x00acabb9, 0x00bbbed0, 0x00c9c9de, 0x00cdcee0, 0x00cfd0e1, 0x00d1d0e1,
- 0x00d0cdde, 0x00cbcbd6, 0x00cdcbd5, 0x00cecbd4, 0x00cccad4, 0x00c6c7d0, 0x00c0c0c9, 0x00b6b8bc, 0x00aaaaac, 0x00939591, 0x007e7d73, 0x006b695a, 0x00636052, 0x006b6656, 0x007d7666, 0x00857f6f,
- 0x00847371, 0x0076615a, 0x00654a42, 0x005b3c2f, 0x00633c28, 0x0070452f, 0x0084553e, 0x00946247, 0x00946549, 0x00936447, 0x00a56454, 0x00c77072, 0x00df9298, 0x00e7a9ae, 0x00e8b8bf, 0x00dbbbc5,
- 0x00c6b3c4, 0x00b4aaba, 0x008d8698, 0x006b6a7c, 0x004d4c5f, 0x004c4047, 0x00584345, 0x006d5b5a, 0x00a2908c, 0x00b9aaa5, 0x00ab9f98, 0x008f867f, 0x00827b77, 0x00878381, 0x008c8c8b, 0x008b8d8e,
- 0x008f8d8b, 0x00908e8c, 0x00939190, 0x00969493, 0x00989595, 0x00979394, 0x00969394, 0x00938f90, 0x00827e7e, 0x00716f6e, 0x00767472, 0x00b2aea8, 0x00f9faf8, 0x00fbfdfc, 0x00fcffff, 0x00fafdff,
- 0x00fcfdfa, 0x00d7d0cb, 0x0056483e, 0x00433021, 0x006d513d, 0x00895e39, 0x008d5b30, 0x00aa7a50, 0x00b78a5f, 0x00986c43, 0x008d633c, 0x00a07953, 0x009a7450, 0x0087623e, 0x00967250, 0x0091704e,
- 0x00835737, 0x007c5535, 0x00735234, 0x006d5038, 0x005e493a, 0x0055463c, 0x00534a41, 0x004f4840, 0x00595452, 0x00898683, 0x008c919d, 0x00566c9b, 0x004274bd, 0x004882d2, 0x004b86d6, 0x004d82cb,
- 0x00437fcb, 0x003279c7, 0x003277bb, 0x005386b9, 0x00c6c5cd, 0x00efecee, 0x00f0ebec, 0x00e9e6e4, 0x00eaeaf4, 0x00dce9fa, 0x00a8bdda, 0x004b6994, 0x004f6b9a, 0x00a9bee0, 0x00e2f2fc, 0x00e8effa,
- 0x00e5f6ea, 0x00dcf0ee, 0x00d1eaf7, 0x00c3e1fb, 0x00a9d4ff, 0x0095c3f9, 0x00729edc, 0x0077a1d7, 0x00b4d7f0, 0x00d5f4fd, 0x00e1f9f7, 0x00f3f6f2, 0x00f8f5ee, 0x00fbf8ef, 0x00fbfbf1, 0x00fcf7f2,
- 0x00f2f9fe, 0x00e6f4f9, 0x00e5f2fb, 0x00ebf2fd, 0x00f2f0f8, 0x00ecf6f8, 0x00e1f2f2, 0x00dce8ee, 0x00d9e0f2, 0x00d6daef, 0x00dee0f8, 0x00edeeff, 0x00e3e8f8, 0x00dde6f7, 0x00b7c3ca, 0x00b1c2c1,
- 0x00d5e1e9, 0x00d0d9e1, 0x00b0b9be, 0x00b8c1c2, 0x00dfe5e7, 0x00e8ecee, 0x00e6e8eb, 0x00edecf2, 0x00aca8b3, 0x004a4350, 0x003c3138, 0x0042312a, 0x004d3c30, 0x00554235, 0x005c4739, 0x00644c39,
- 0x0074543f, 0x007c5943, 0x00866047, 0x008b6248, 0x008d6248, 0x008c6245, 0x00896143, 0x00855e45, 0x00785840, 0x0070503b, 0x006b4a38, 0x006e4d37, 0x007b5439, 0x00895c3c, 0x00986741, 0x00a26c43,
- 0x00acb4bc, 0x001d2648, 0x00212b55, 0x00222f63, 0x00293b6f, 0x00283e6c, 0x0029426c, 0x002a3f68, 0x002b3e74, 0x00283978, 0x00283976, 0x00283c6c, 0x001e3d73, 0x001e3d70, 0x00213562, 0x001f1d41,
- 0x00581a2b, 0x008d2e31, 0x00ae3933, 0x00af2b1b, 0x00b12b14, 0x00a25855, 0x00c8a6ae, 0x00d0b7c2, 0x00bcb3c3, 0x00b5b0c3, 0x009a97af, 0x00837e9d, 0x005b537b, 0x00393862, 0x002b2f5b, 0x00333d6a,
- 0x00343e81, 0x002c377e, 0x002c367f, 0x00303982, 0x00293380, 0x0028337c, 0x0028337b, 0x0026337c, 0x002c357a, 0x002f3a80, 0x00313c76, 0x00262e51, 0x00060f27, 0x0003081e, 0x00060d1f, 0x000b1428,
- 0x001e1e40, 0x004e4e6c, 0x00b0aec9, 0x00cac8db, 0x00cbcacf, 0x00c4c3ca, 0x00c6c4d1, 0x00cac9d5, 0x00d7d3e3, 0x00ddd9e8, 0x00d6d4e2, 0x00d5d3e1, 0x00d5d2e0, 0x00d7d5e2, 0x00d4d3e0, 0x00d3d3df,
- 0x00cfcad8, 0x00cdc9d6, 0x00ccc7d4, 0x00ccc6d3, 0x00cfc9d7, 0x00d0cdd9, 0x00d2cfda, 0x00d7d4dd, 0x00dfd6e7, 0x00d6d0de, 0x00c9c1ca, 0x00c5b6bd, 0x00cfc3ca, 0x00dbced4, 0x00e2d4da, 0x00e0d3d8,
- 0x00d5cad4, 0x00cdc2cd, 0x00c5b9c3, 0x00c5bcc6, 0x00c6bcc6, 0x00c9c0c7, 0x00cec3c8, 0x00d2c6cc, 0x00d2c4d0, 0x00cec2cd, 0x00cfc3ca, 0x00cdc1c8, 0x00c4b9c3, 0x00beb3bd, 0x00b7abb4, 0x00afa5ae,
- 0x00aba0a2, 0x00ac9fa3, 0x00b2a3a7, 0x00b5a6ab, 0x00b4a4ac, 0x00b4a5aa, 0x00bbb0b1, 0x00cac3c5, 0x00dbd5dc, 0x00dfdde1, 0x00d9d9e1, 0x00d4d2e0, 0x00d2cbdc, 0x00d7d3e2, 0x00c3c0d0, 0x00a39eaf,
- 0x009993a6, 0x00aca6ba, 0x00bdbacb, 0x00ccc8d8, 0x00928e9d, 0x00524e55, 0x00bab7b8, 0x00f5f5f7, 0x00ffffff, 0x00fdfcfe, 0x00fbfefa, 0x00edf2ea, 0x00787c75, 0x00161b13, 0x002b3228, 0x00353d34,
- 0x003c464d, 0x00404a4c, 0x0044504a, 0x00445441, 0x00485c3e, 0x004a5f3f, 0x004a5e44, 0x00526252, 0x0057575f, 0x003e3d51, 0x00252044, 0x002a2566, 0x00302f7c, 0x0033398c, 0x00354392, 0x00334594,
- 0x00324992, 0x0038488e, 0x0037408e, 0x00303487, 0x002e2384, 0x001d2471, 0x003b4884, 0x00555a8a, 0x005f5173, 0x006b5c76, 0x007f7688, 0x008e8e98, 0x00a6a7b4, 0x00b3acba, 0x00beb6bd, 0x00c9bec0,
- 0x00c6b8b3, 0x00cfc2bc, 0x00d6cdbd, 0x00d8d2bb, 0x00dad9bd, 0x00dddac3, 0x00e4decf, 0x00ece0dc, 0x00f2ddef, 0x00eed6ee, 0x00e7d3e0, 0x00dfd5c9, 0x00d9d2c8, 0x00d2c8c0, 0x00c6bbb6, 0x00bfb6b0,
- 0x00cabbbc, 0x00cbbdbe, 0x00cfc2c4, 0x00d2c5c8, 0x00d2c5c8, 0x00d5c9b2, 0x00cecebd, 0x00c7d6f3, 0x00f4d5e5, 0x00e3d9e7, 0x00ddd6dd, 0x00d8b8b0, 0x00c15446, 0x00643166, 0x00272a8b, 0x000b3eb5,
- 0x00223ea2, 0x002243ab, 0x001e43af, 0x00143fab, 0x001241ad, 0x00093796, 0x002f58a5, 0x0087a6d9, 0x00e4e6f7, 0x00eae4e2, 0x00d0c9c9, 0x00787c98, 0x00464c6f, 0x004f5681, 0x004a547f, 0x00485686,
- 0x00434d81, 0x003c4477, 0x00333968, 0x00313560, 0x002f325a, 0x002d2e4a, 0x00292738, 0x00282436, 0x00312339, 0x00372d39, 0x00493c47, 0x00574e54, 0x006d646c, 0x00747077, 0x007e7983, 0x0084848d,
- 0x00918f98, 0x0096949b, 0x009898a0, 0x0096979b, 0x0097999c, 0x00919794, 0x00878f8b, 0x00999e99, 0x00dbd9da, 0x00fcfafa, 0x00fcfdfa, 0x00f9f9f9, 0x00fffeff, 0x00f4f3f4, 0x00a3a4a4, 0x00414343,
- 0x00151819, 0x001f2221, 0x00303334, 0x00383b3b, 0x002b302f, 0x002d2617, 0x00382b15, 0x00483723, 0x00553f2d, 0x00503b28, 0x0044321c, 0x00382814, 0x002c1f11, 0x001e140a, 0x001c150d, 0x00322b25,
- 0x00554f4b, 0x00706968, 0x00706a69, 0x00595453, 0x00221e1f, 0x00080606, 0x00050301, 0x00050302, 0x00020205, 0x00040305, 0x00120f11, 0x00292521, 0x004d4844, 0x00635e5b, 0x0074706b, 0x00736f6b,
- 0x00807779, 0x00aaa4a7, 0x00eae3eb, 0x00f1e8f5, 0x00eee5f6, 0x00ece3f9, 0x00eee7fb, 0x00f2edfb, 0x00f4f3ff, 0x00e9f3fb, 0x00e4f6fa, 0x00e0f8f9, 0x00f2f5fa, 0x00fbf0f1, 0x00e6bfbb, 0x00bd867b,
- 0x00a8889a, 0x00b997b7, 0x00c3a5ba, 0x00c4a69a, 0x00c49d6d, 0x00b17d59, 0x008a4a26, 0x00823506, 0x008a3a01, 0x008f3a09, 0x009c430f, 0x00a14100, 0x009a410a, 0x00903e14, 0x00974e2f, 0x00833e27,
- 0x004e150c, 0x00350a06, 0x001c0705, 0x00040107, 0x00000710, 0x0001050a, 0x00000204, 0x003d4248, 0x00d0d7df, 0x00f3fbfe, 0x00f6fefe, 0x00f2fdfa, 0x00fcfefb, 0x00f2f0ee, 0x00b1adab, 0x00908784,
- 0x00888988, 0x00848685, 0x007f8280, 0x007e817f, 0x007e817f, 0x00808581, 0x007e847f, 0x007c827d, 0x007e8080, 0x007f8181, 0x007d837f, 0x007b8380, 0x00867f80, 0x00777d93, 0x006182b0, 0x004989de,
- 0x003a87f1, 0x004582e4, 0x00487edc, 0x00467cd2, 0x003480e9, 0x00327cdc, 0x00317ad6, 0x003078d6, 0x003277d8, 0x003375d7, 0x003474d4, 0x003370d1, 0x00336cd0, 0x002e66ca, 0x002760c1, 0x00265dbf,
- 0x002450b5, 0x001e4aaf, 0x001b44a9, 0x00173da2, 0x0011349a, 0x000e3196, 0x000e3398, 0x001b43a8, 0x00274cb4, 0x002248ae, 0x001f4daf, 0x001d53b6, 0x002058ba, 0x002059bb, 0x002865c3, 0x002866c4,
- 0x002666c3, 0x002a65c6, 0x002962c5, 0x002760c4, 0x00295ebf, 0x001e5ec0, 0x001f5fbc, 0x004175c8, 0x00647fc7, 0x005069ae, 0x008aa1dd, 0x00819eda, 0x004d67a7, 0x0091a4d8, 0x00c8d2fc, 0x00bfbde6,
- 0x007f93d6, 0x005969ac, 0x0041568f, 0x004d6397, 0x007d96d2, 0x008da5f1, 0x003f59b0, 0x002843a5, 0x00304dbb, 0x001a369c, 0x005165ae, 0x00bbbed6, 0x00aabcea, 0x005173b9, 0x002b59ab, 0x004781d5,
- 0x0089c4fa, 0x0081aad0, 0x001e3749, 0x00040707, 0x007b625a, 0x00ece4dc, 0x00f8faf1, 0x00fdfafd, 0x00fffafc, 0x00fefdf6, 0x00e2f1d6, 0x0097b887, 0x00638a47, 0x00668442, 0x0082995b, 0x00c3d097,
- 0x00fff9da, 0x00fbf9d3, 0x00f9f8d0, 0x00fbfacd, 0x00fefbca, 0x00f9f9cb, 0x00f6f6cd, 0x00f8f3d5, 0x00ddd2cb, 0x00b5a8ab, 0x00a49b9c, 0x00a9aca6, 0x00acb0b6, 0x00878d97, 0x00848a9b, 0x00a6aec4,
- 0x00c7d1e3, 0x00d8dcea, 0x00e8eaf7, 0x00f1f2fb, 0x00fbf8fe, 0x00f9fcf2, 0x00f5feec, 0x00f8fdee, 0x00fdfaeb, 0x00f5f1e6, 0x00e9e5dd, 0x00dddbd1, 0x00d5d3d2, 0x00d9d8dd, 0x00e6e8f1, 0x00e8eff7,
- 0x00e0dadc, 0x00dbd6d9, 0x00dedbde, 0x00e6e4e6, 0x00eceaeb, 0x00edeceb, 0x00edebea, 0x00f1eced, 0x00faf7f8, 0x00fbf7fa, 0x00f7f2f4, 0x00edeaec, 0x00e9e4e5, 0x00f1f6ec, 0x00c6d1ba, 0x007d8e66,
- 0x00607a34, 0x00617e2e, 0x00637e31, 0x00607c31, 0x005f7639, 0x00547040, 0x004f6842, 0x00566842, 0x00635c42, 0x00796444, 0x00a1855c, 0x00b7935e, 0x00cfa567, 0x00d4ae6f, 0x00d1b873, 0x00c9b672,
- 0x00c3a063, 0x00b79f6a, 0x009e8f60, 0x004e4926, 0x00203415, 0x00122d0c, 0x00112a08, 0x00181e02, 0x00421803, 0x00581505, 0x00450606, 0x00431d24, 0x00512d34, 0x0033131c, 0x002d0d16, 0x0036151d,
- 0x003b1a28, 0x003a1b3c, 0x003c2555, 0x00352d6f, 0x00282f8a, 0x00313b69, 0x0096a0b6, 0x00e7f2f5, 0x00f4fcff, 0x00f8fcff, 0x00ebeeef, 0x00dee0e3, 0x00f6eaf5, 0x00fdf6fa, 0x00fcf7f2, 0x00fff8ed,
- 0x00fdf9ff, 0x00ccc5f0, 0x004f4b91, 0x003b3b96, 0x002b3e93, 0x0029429c, 0x00253b9e, 0x002836a5, 0x00433589, 0x00644b7c, 0x00b7958e, 0x00d39b53, 0x00d49c58, 0x00d59c59, 0x00d09a50, 0x00cc9952,
- 0x00cb9657, 0x00c7945a, 0x00c89764, 0x00c7996f, 0x00c39a6f, 0x00c49b6b, 0x00ad8b55, 0x00998450, 0x007c7b4c, 0x0061673f, 0x003b4623, 0x00697158, 0x00e8e8df, 0x00f9fbf8, 0x00fbfdfb, 0x00fafeff,
- 0x00f9fdfa, 0x00e5e0db, 0x006a5d4d, 0x00341905, 0x004c2405, 0x004b2806, 0x006d4f30, 0x00b09b81, 0x00fff9f0, 0x00fefdfc, 0x00f9fefe, 0x00f3f9f6, 0x00f9f9f9, 0x00b5b9bd, 0x004d5058, 0x00464752,
- 0x004a5056, 0x004f4c53, 0x004d4348, 0x004a3b3f, 0x004d3335, 0x004d313e, 0x00563e45, 0x00594639, 0x0050473d, 0x0044343e, 0x00534958, 0x00a79fac, 0x00f0f8f8, 0x00e6fdff, 0x009cc1eb, 0x00608eda,
- 0x003381e1, 0x004e8ad1, 0x00a8cef4, 0x00e9f9f9, 0x00fcf2e4, 0x00fbf5e7, 0x00fbf5ec, 0x00f8f1f1, 0x00f5f1f6, 0x00f1efee, 0x00efeeec, 0x00eef1e7, 0x00f1f2ed, 0x00f1f3f0, 0x00f0f6f4, 0x00f6f9f8,
- 0x00f7f8f9, 0x00fbfbfc, 0x00f9f8f7, 0x00f9f5f4, 0x00e9e5e4, 0x00e8b39a, 0x00cf7b56, 0x00d4734d, 0x00ec7856, 0x00e87248, 0x00e96f44, 0x00e26d40, 0x00dc6c43, 0x00cf6040, 0x00b64b30, 0x00a53624,
- 0x0099322a, 0x009d2e2d, 0x009d2625, 0x00971b1c, 0x0085151a, 0x006f1517, 0x004e0d0e, 0x00421a1f, 0x005d4a56, 0x00867b86, 0x00aaa7b6, 0x00b8bed1, 0x00c7cbe1, 0x00cccee2, 0x00cecee0, 0x00cccbdc,
- 0x00c8c7d7, 0x00c5c3ce, 0x00c9c6d0, 0x00c6c7cc, 0x00c7c3cc, 0x00c5c2c8, 0x00c1bfc4, 0x00bcbcba, 0x00b5b1b1, 0x00a6a39e, 0x00919284, 0x007f8170, 0x00807f72, 0x0088877c, 0x0097988e, 0x009e9e99,
- 0x009b8f9b, 0x008c7c84, 0x00715b61, 0x00583e40, 0x0056342d, 0x00684237, 0x007c5242, 0x008e604c, 0x00916455, 0x00936354, 0x00a5716d, 0x00be8791, 0x00d5a5b2, 0x00dfb8c3, 0x00dec0cc, 0x00d1beca,
- 0x00bbb3bb, 0x00a7a2ab, 0x00838085, 0x00656369, 0x00514b4f, 0x0050403f, 0x005f4541, 0x00745e58, 0x00a68f8d, 0x00ad9b98, 0x00948883, 0x007b746e, 0x007c7570, 0x008b8582, 0x008c8887, 0x00888787,
- 0x008b8788, 0x00898584, 0x00898885, 0x008a8a86, 0x008d8987, 0x00898583, 0x00868582, 0x007e7e79, 0x00787375, 0x00767372, 0x00858180, 0x00afb0a9, 0x00f3f3f2, 0x00fdfffc, 0x00fdfdfc, 0x00fafffa,
- 0x00fdfdfc, 0x00dfdada, 0x005e564f, 0x00271b0e, 0x004c3827, 0x00735331, 0x007d562d, 0x00865d37, 0x00a87e5b, 0x00a67c5b, 0x007e5633, 0x007f5c37, 0x008c6a4a, 0x00876747, 0x008a6a49, 0x00876849,
- 0x00815736, 0x007b5636, 0x00725234, 0x006c5038, 0x005f4d3c, 0x00564a3e, 0x00514a41, 0x004d4941, 0x00605b5a, 0x009d9897, 0x00a3a8b3, 0x005e709d, 0x003a6ab1, 0x00487fcf, 0x004a85d6, 0x004d83ce,
- 0x004180cd, 0x00357dcf, 0x003077bd, 0x004c7eb2, 0x00b9b9c4, 0x00e3dde6, 0x00f0ebf2, 0x00ebe7eb, 0x00edeafe, 0x00d1d7f8, 0x007888b5, 0x00395683, 0x00718baf, 0x00c7d3eb, 0x00f0f2fc, 0x00f8eefb,
- 0x00fdf1c2, 0x00fff5d7, 0x00fef6e9, 0x00f8f2fa, 0x00e2effd, 0x00d2e1fa, 0x00bfcde8, 0x00b6c1dd, 0x00dedce4, 0x00f9f3f0, 0x00f2f4ee, 0x00e8f7f9, 0x00eaf1f6, 0x00edf3f9, 0x00ebf0f5, 0x00ebf6f9,
- 0x00e2f4fe, 0x00e4f8fe, 0x00e1f6fe, 0x00dceffc, 0x00e2edfd, 0x00ddedf8, 0x00d6e9f5, 0x00ddebfb, 0x00c3c9ed, 0x00a9aed4, 0x00adb4db, 0x00b6bfe1, 0x00b9c1df, 0x00a8b5ca, 0x00a0afbc, 0x00b6c8d1,
- 0x00dae2ed, 0x00cad3de, 0x00abb7be, 0x00becacb, 0x00e5eced, 0x00e5e9ea, 0x00e5e7e8, 0x00edecf1, 0x00a5a0ab, 0x00413b4a, 0x00362f34, 0x003f3227, 0x004b3d30, 0x00564134, 0x00604938, 0x006b503d,
- 0x0076553e, 0x00805c42, 0x00886144, 0x008c6244, 0x00906446, 0x00916843, 0x008d6741, 0x00886041, 0x0081583e, 0x007a533a, 0x00734e35, 0x00755033, 0x00855837, 0x00935d38, 0x00a0673c, 0x00ac6e40,
- 0x00a8b0af, 0x00131e31, 0x00182040, 0x0019214c, 0x001d2d55, 0x001e3053, 0x00243357, 0x0025375c, 0x00213660, 0x00223569, 0x002a3671, 0x002f3a69, 0x001f3a6e, 0x001b3c6b, 0x00223767, 0x0020264e,
- 0x00330b15, 0x006b2022, 0x009f3530, 0x00a52b1e, 0x00a42514, 0x00924c52, 0x00c4a1b4, 0x00d8bfd5, 0x00b3b5c5, 0x00989cb3, 0x006f7196, 0x00494774, 0x00231e51, 0x00222155, 0x0031386a, 0x00364175,
- 0x001f3673, 0x00253977, 0x002a387c, 0x002a357d, 0x0026327b, 0x002b367d, 0x002b3278, 0x002b3177, 0x0027336d, 0x0027336a, 0x00202a59, 0x00161e3b, 0x00060c22, 0x00040a1d, 0x000c1124, 0x00080c22,
- 0x00191d36, 0x00676882, 0x00bebcd8, 0x00c3c1d5, 0x00b8b8be, 0x00b3b3bd, 0x00c8c5d4, 0x00d2cedc, 0x00d3d5dd, 0x00d8d9e2, 0x00d9d6e2, 0x00dbd7e5, 0x00d8d7e5, 0x00d5d4e2, 0x00d3cede, 0x00cec9d8,
- 0x00bdbec4, 0x00bcbbc2, 0x00c0bdc6, 0x00c4c1cb, 0x00cdc8d4, 0x00d1ccd9, 0x00d5cedb, 0x00dcd3e1, 0x00d6d5da, 0x00d4d6db, 0x00d7d1da, 0x00d6c8d4, 0x00d0c4cd, 0x00d6cad4, 0x00dfd1dc, 0x00d7cdd7,
- 0x00cbc8c9, 0x00cac5c8, 0x00d0c5cd, 0x00d1c6d2, 0x00d3c7d3, 0x00d4c6ce, 0x00d7c4cc, 0x00d2c2cb, 0x00cac0c2, 0x00cac1c5, 0x00ccc1c7, 0x00cabec6, 0x00c6bac6, 0x00c3b6c3, 0x00bbacba, 0x00b0a2b2,
- 0x00aba5a0, 0x00b0a7a5, 0x00b8abae, 0x00bdadb4, 0x00bcadb6, 0x00bfb2bb, 0x00ccc1ca, 0x00dad0d8, 0x00d8dddb, 0x00d8dddd, 0x00d7d8e0, 0x00d4d1e0, 0x00d1cedf, 0x00d8d4e4, 0x00d4cede, 0x00c4c0d0,
- 0x00b0b1b9, 0x00aeb1b8, 0x00b8b6c4, 0x00c7c3d4, 0x00bdb9c8, 0x00888289, 0x00bdb5ba, 0x00f7f5f7, 0x00f7faf6, 0x00f7fbf5, 0x00fdfefb, 0x00f0f2ef, 0x00787f78, 0x00131912, 0x00232b25, 0x002a342d,
- 0x00253f3c, 0x0029413a, 0x002e4439, 0x00334536, 0x003a4934, 0x00414c33, 0x00464c36, 0x004e503f, 0x004e503f, 0x00424537, 0x00333143, 0x002e2a66, 0x002d3179, 0x002c3689, 0x0033409b, 0x0032479f,
- 0x002b4c97, 0x00344d98, 0x003b4b9d, 0x0039429a, 0x00373494, 0x00242e82, 0x003e4992, 0x007374b3, 0x008c86af, 0x008f87aa, 0x00a297b7, 0x00aba2c0, 0x00afabb5, 0x00aea8a4, 0x00b6a798, 0x00b9a68e,
- 0x00b3a8a7, 0x00b6adaa, 0x00bcaea9, 0x00b9ada2, 0x00b5ac9c, 0x00baaf9d, 0x00beb1a1, 0x00bfb1a2, 0x00bead9b, 0x00bca99a, 0x00bca9a1, 0x00baaaa4, 0x00b2a39e, 0x00af9ea0, 0x00b8a6ae, 0x00c3b0ba,
- 0x00cbc2c3, 0x00d2cccc, 0x00daced5, 0x00d7c7d1, 0x00d4c6ce, 0x00cfcfc0, 0x00d8dcdb, 0x00dde1ff, 0x00e7d3dd, 0x00d7d4de, 0x00dcd7e2, 0x00d8cdd1, 0x00d5766d, 0x007d3a54, 0x00482a71, 0x00243faf,
- 0x001a47a5, 0x001a44a8, 0x002045ae, 0x001d46b4, 0x001845b5, 0x001040a8, 0x0017449e, 0x005174b9, 0x00beccdb, 0x00eceae4, 0x00ded6d6, 0x008e96a7, 0x004c5771, 0x004f5a7c, 0x00535c83, 0x004f5984,
- 0x0044547a, 0x003e4e71, 0x003b456d, 0x003b4068, 0x00353a5c, 0x0036364f, 0x00362f46, 0x00362d41, 0x00312a31, 0x00373037, 0x004e434b, 0x005e525a, 0x00706871, 0x0079737e, 0x0085808c, 0x008e8b99,
- 0x008f9398, 0x0096999e, 0x009ea0a8, 0x009d9fa5, 0x009fa0a7, 0x009b9c9f, 0x00949597, 0x00a9acac, 0x00e1e6df, 0x00f5faf2, 0x00fbfdfa, 0x00fbfbfc, 0x00fffefe, 0x00eeeded, 0x009c9b9e, 0x0049494c,
- 0x00262d25, 0x00313731, 0x004b4c4d, 0x00505150, 0x00414041, 0x003b3226, 0x00463424, 0x00523e2e, 0x0058482b, 0x00544425, 0x00513b1f, 0x00493219, 0x003b2815, 0x00311e10, 0x00321f15, 0x0048362d,
- 0x0065615a, 0x007f7870, 0x00817875, 0x00686060, 0x002f2929, 0x000f0a0a, 0x00070205, 0x00080508, 0x00000500, 0x00000803, 0x00161513, 0x00342921, 0x00534a43, 0x00625a50, 0x006a615a, 0x00675e55,
- 0x00616156, 0x009c9994, 0x00e9e4e5, 0x00efe7f2, 0x00ece7f6, 0x00eeeafa, 0x00f2edfe, 0x00f4ecff, 0x00eef0ef, 0x00edf0ed, 0x00f2f3f4, 0x00f3f3f5, 0x00fdf3ef, 0x00fdefe1, 0x00fed8c6, 0x00f4b8a0,
- 0x00e8b389, 0x00de9f84, 0x00ce866e, 0x00c17946, 0x00b66d1d, 0x00a8581e, 0x008e3a0b, 0x008f3b06, 0x009a5300, 0x0090480d, 0x00814016, 0x0071441a, 0x00734934, 0x00956c66, 0x00cba1aa, 0x009e7182,
- 0x00300c0f, 0x00220300, 0x001f0504, 0x00120700, 0x00010703, 0x00000406, 0x0007040b, 0x0052545e, 0x00e1e7e7, 0x00f5fcf9, 0x00f8fdfc, 0x00f9fdfd, 0x00fdfdfb, 0x00eeeceb, 0x00aba6a7, 0x008b8583,
- 0x007b807d, 0x007b7f7c, 0x007c807e, 0x007e817f, 0x007f817f, 0x00808280, 0x00818381, 0x00808280, 0x00788178, 0x00798078, 0x007e8380, 0x00818885, 0x00888383, 0x00778197, 0x006181b7, 0x004885e0,
- 0x003186e9, 0x003d82de, 0x00457cd9, 0x004479d5, 0x00307de5, 0x00327bdb, 0x003379d8, 0x003379d9, 0x002e76cf, 0x002e74cf, 0x003173d2, 0x003272d2, 0x00326ece, 0x00306acb, 0x002d64c8, 0x00295ec5,
- 0x002155b1, 0x001748a6, 0x001845a5, 0x001e47aa, 0x001d41a7, 0x0015379f, 0x000d2e97, 0x001737a0, 0x001a47a3, 0x001848a4, 0x001a46a8, 0x001d4eb3, 0x002456b9, 0x001f57ba, 0x00295fc5, 0x002c63ca,
- 0x001e61bc, 0x002263be, 0x002863c6, 0x002860c4, 0x00295fc5, 0x00255dbe, 0x003163be, 0x007193e1, 0x00a2b7e5, 0x007488b8, 0x007584be, 0x00738dca, 0x005270b0, 0x009db1e8, 0x00d2d8ff, 0x00d2caf4,
- 0x00bbd1f2, 0x0097abd4, 0x00899ec9, 0x0093aad9, 0x007390d0, 0x005f7bcc, 0x003751b4, 0x002c42b2, 0x00234cb1, 0x00143ca0, 0x005166b2, 0x00c3c4dd, 0x00b8ccf1, 0x005d80c7, 0x002c58ae, 0x00477eda,
- 0x0074b5ef, 0x0070a3c8, 0x00263e5c, 0x00090e18, 0x008a7a7b, 0x00f2ebe9, 0x00fffafc, 0x00fffbfe, 0x00f6f9f2, 0x00f4fde9, 0x00d0e3c1, 0x008baa75, 0x00698d47, 0x006c8745, 0x0097a76e, 0x00e1e5b5,
- 0x00f7fbd1, 0x00f8f9ca, 0x00fffbd1, 0x00fdf9d0, 0x00fcf8ce, 0x00fcf8d4, 0x00f7f2d5, 0x00f4ebda, 0x00e5e4d9, 0x00dfdfdc, 0x00e5dee2, 0x00dedddb, 0x00cdcfd7, 0x0073798e, 0x001e2849, 0x00313f6a,
- 0x004e6b90, 0x006881a7, 0x008c9fc7, 0x009eafd1, 0x00b5c1de, 0x00c2d6d7, 0x00d3e6dd, 0x00ddeae3, 0x00dde9d6, 0x00e0e6d3, 0x00e6e5d7, 0x00e8e2dc, 0x00e9e5e5, 0x00edeef2, 0x00eeeefc, 0x00dfe1f2,
- 0x00d6d5d1, 0x00ddddd8, 0x00eae6e7, 0x00eee9eb, 0x00edecec, 0x00f3f1f1, 0x00f7f2f5, 0x00fbf6fa, 0x00f5f8f2, 0x00f6f6f2, 0x00f2ecef, 0x00ebe2e7, 0x00ebe5e2, 0x00f2f4eb, 0x00bcc7b2, 0x00778e63,
- 0x0055852d, 0x00548729, 0x00568b2e, 0x00558a31, 0x00538539, 0x005d823c, 0x00607c3d, 0x0066783c, 0x00636629, 0x00716228, 0x00957a46, 0x00b18c57, 0x00c49e63, 0x00cca568, 0x00d4b06e, 0x00d2af6d,
- 0x00c1a35d, 0x00b59c5d, 0x00b39e6c, 0x00736d41, 0x002e3f17, 0x001e370e, 0x00233a15, 0x0029320f, 0x00302400, 0x003b1700, 0x003a0801, 0x002c0303, 0x00200f19, 0x00111031, 0x00101952, 0x0017286b,
- 0x001d3573, 0x00223274, 0x002f337a, 0x0030337c, 0x002b3179, 0x00484a84, 0x00bab4e2, 0x00f6f5ff, 0x00f4fcf6, 0x00f2fbf7, 0x00e9f1f5, 0x00dee5eb, 0x00ecf3f5, 0x00f4fbf9, 0x00f6fcf7, 0x00f8fef1,
- 0x00f0f8f8, 0x00b8bbe4, 0x00413d8f, 0x00323096, 0x00263393, 0x00223896, 0x00273a9e, 0x002935a0, 0x0032347c, 0x00544a74, 0x00b1958c, 0x00d1a74a, 0x00d0a547, 0x00cfa548, 0x00cea24d, 0x00d0a250,
- 0x00c2a048, 0x00b89643, 0x00b08942, 0x00aa843f, 0x00aa8644, 0x00b3935e, 0x00b99a70, 0x009a875b, 0x00505e2e, 0x003b4c25, 0x003b4a2e, 0x007f8877, 0x00f5f3ef, 0x00fdfdfc, 0x00fdfeff, 0x00fcfdff,
- 0x00f2fcf3, 0x00cbcdbd, 0x004f4032, 0x00311600, 0x00522603, 0x005e360f, 0x006c4526, 0x00a98b73, 0x00f9f5e4, 0x00f8fdf4, 0x00fafdff, 0x00f7fdfa, 0x00fcfcfd, 0x00cec8d4, 0x005d5c6c, 0x0046455a,
- 0x00414d53, 0x00454e51, 0x004c474c, 0x00563f42, 0x00633b3d, 0x0069373b, 0x00703c3d, 0x00663e2f, 0x00493d26, 0x00382e2d, 0x005a4d5e, 0x00b7afc0, 0x00f2fbf9, 0x00e8fcfd, 0x00aecef2, 0x007193d7,
- 0x00368de8, 0x004d8dd1, 0x00a1caf6, 0x00e8f6fc, 0x00fffbf0, 0x00fefaf3, 0x00fffbfa, 0x00fffcff, 0x00f7fbf7, 0x00f5faf3, 0x00fafbf5, 0x00fafbf6, 0x00f8fbf9, 0x00fbfcf9, 0x00fffefe, 0x00fefcff,
- 0x00f8fef7, 0x00f7fbf6, 0x00f7f7f9, 0x00f6f4f8, 0x00e9e7e7, 0x00e7b7a4, 0x00ce7b5f, 0x00d06d50, 0x00e87548, 0x00e66d3a, 0x00eb6a3a, 0x00e46738, 0x00d66941, 0x00c95f41, 0x00b6483a, 0x00ab3936,
- 0x00923e2c, 0x009e3b2e, 0x00a3312d, 0x009c2023, 0x008a1416, 0x00701013, 0x00550810, 0x004b161e, 0x005a4a4c, 0x00837781, 0x00ada3b6, 0x00babbd2, 0x00c6c9dd, 0x00cbcddf, 0x00cdcbdd, 0x00c9c7d6,
- 0x00b7bcbf, 0x00b1b6b7, 0x00b8b7bc, 0x00b9b7bb, 0x00b9b9bb, 0x00bebdbd, 0x00c2bcbf, 0x00c0bbbb, 0x00b6b7a9, 0x00adae9f, 0x00a6a497, 0x009fa095, 0x00a0a19a, 0x00aba9aa, 0x00b5b3ba, 0x00b9b7c0,
- 0x00afadbd, 0x009f9ca9, 0x008b808e, 0x00715e6a, 0x0055393f, 0x005c3c3e, 0x00775152, 0x008a6260, 0x00836057, 0x0084615a, 0x009b7b80, 0x00b091aa, 0x00c4b0c3, 0x00cdbace, 0x00ccc1d4, 0x00bfbbcd,
- 0x009fa3ab, 0x008c9697, 0x0072757a, 0x00605d61, 0x004c4a4b, 0x00533e3b, 0x00624340, 0x007a5e5a, 0x009a8d81, 0x00a59b90, 0x00928982, 0x00827974, 0x00827b78, 0x008d8786, 0x008b8486, 0x008b8285,
- 0x0082817a, 0x007d7e76, 0x0082807c, 0x0084817e, 0x00807d79, 0x007d7976, 0x007a7474, 0x00736e6d, 0x006a6c63, 0x00797a72, 0x00918d89, 0x00b1aeab, 0x00eeede9, 0x00fdfdfb, 0x00fcfcfe, 0x00fcffff,
- 0x00f9fdf7, 0x00ebede4, 0x00766f6c, 0x00170f0b, 0x0033231b, 0x00543b27, 0x00684a32, 0x006e4f37, 0x007b6344, 0x00887253, 0x007f634a, 0x006f513b, 0x00795e46, 0x0080644c, 0x007f6049, 0x007e6149,
- 0x007e5b37, 0x00775835, 0x0073543b, 0x006d5440, 0x00605144, 0x00544b43, 0x00554c4b, 0x00534e4e, 0x005f655d, 0x009fa59e, 0x00b9bdc9, 0x007686ac, 0x003668a7, 0x003c78c2, 0x004f87d8, 0x005388d7,
- 0x003e86cc, 0x003481cc, 0x003372bf, 0x004a77b0, 0x00b3afbb, 0x00d7d3e3, 0x00dedbee, 0x00ede7f2, 0x00e3e4f2, 0x00abaed3, 0x00656da1, 0x007385b5, 0x00bfd1e1, 0x00e5f0fb, 0x00edecfa, 0x00efe2fc,
- 0x00cce6f0, 0x00c4e4f0, 0x00c2e6f9, 0x00c0ebfc, 0x00b7eaf9, 0x00b4e5f8, 0x00b7e0f8, 0x00b4d6f8, 0x00b9cce9, 0x00c5d1f2, 0x00c5d6f6, 0x00abdcfb, 0x009dd0f6, 0x00a2d2f8, 0x00a1d1fd, 0x00a1d1fc,
- 0x009ad2f5, 0x009ed3f6, 0x009dcefa, 0x0097caf8, 0x0096c5f4, 0x0096bef7, 0x008daef6, 0x0093b4f9, 0x007195e0, 0x005072bb, 0x00607bcd, 0x006884d1, 0x00718dd1, 0x007593d5, 0x0098b3ed, 0x00c0dffc,
- 0x00c7d9dc, 0x00a6b4b8, 0x00b0b9c2, 0x00d1d7de, 0x00e8eded, 0x00e1e5e6, 0x00ececf2, 0x00f1eef5, 0x00959797, 0x00333238, 0x00322b2e, 0x003e3228, 0x00483b2d, 0x00524132, 0x00624b3d, 0x006a5141,
- 0x006e5337, 0x0078593b, 0x00876041, 0x008c6243, 0x00916443, 0x00926843, 0x00926745, 0x008d6244, 0x007b5a37, 0x00765231, 0x00775032, 0x007d5234, 0x008c5835, 0x00975d36, 0x00a8673b, 0x00b56d3e,
- 0x00acafb2, 0x00131529, 0x00141732, 0x0011163a, 0x00131f40, 0x0014233f, 0x00192943, 0x001d2d4a, 0x00243058, 0x00283265, 0x002a3167, 0x002f3362, 0x001e3766, 0x00193968, 0x001c3861, 0x001d284b,
- 0x002d0716, 0x005c151c, 0x008d302e, 0x00972c23, 0x0099291c, 0x0082444e, 0x00b290a7, 0x00c1abc5, 0x008a8da4, 0x005e6784, 0x00343d65, 0x00202456, 0x001c1c53, 0x002b2e64, 0x002d366d, 0x0028356b,
- 0x00253675, 0x002f3d7e, 0x00303e80, 0x002c397c, 0x002f397d, 0x00303a7b, 0x0028326f, 0x0029306b, 0x002b3265, 0x00252d5c, 0x00151b44, 0x000c122a, 0x00080d1f, 0x00070d1a, 0x000b1020, 0x0003061b,
- 0x00323252, 0x00908fad, 0x00c9c7e4, 0x00c4c3d6, 0x00b4b4bb, 0x00b4b2be, 0x00c6c3d2, 0x00d2d0db, 0x00d7d6e2, 0x00dcdbe7, 0x00dddae8, 0x00dddae7, 0x00d7d6e2, 0x00d2d1dd, 0x00c9c6d2, 0x00c3c0cc,
- 0x00c5c0cb, 0x00c6c1cc, 0x00cbc6d1, 0x00cfcad4, 0x00d2ced8, 0x00d4d0da, 0x00d6d1dc, 0x00d8d3de, 0x00dbd7e1, 0x00dddae4, 0x00e1dae6, 0x00e1d8e4, 0x00dfd6e0, 0x00d8cfd8, 0x00cfc7d0, 0x00cbc3ce,
- 0x00cfc7d0, 0x00d5ccd6, 0x00d8ced8, 0x00d2c9d4, 0x00cac1cb, 0x00cabcc3, 0x00cebcc1, 0x00cebdc6, 0x00cebfc7, 0x00ccbec7, 0x00cabcc4, 0x00c9bbc4, 0x00cabdc8, 0x00c4b8c4, 0x00b9acba, 0x00afa3b2,
- 0x00b3a9ac, 0x00b9adb2, 0x00beb0b6, 0x00c0b1ba, 0x00c6b7c1, 0x00cdc1cc, 0x00d7cfd9, 0x00e1dbe5, 0x00e0e2e8, 0x00dadee5, 0x00d5d8e0, 0x00d3d2dc, 0x00d0ceda, 0x00d6d4e1, 0x00d9d6e3, 0x00d7d4e0,
- 0x00cbcad7, 0x00c6c5d1, 0x00c4c0d0, 0x00c8c6d4, 0x00d1d0db, 0x00b8b3b8, 0x00cac4c8, 0x00f6f5f6, 0x00f9f9f7, 0x00fbfdfa, 0x00fdfdfc, 0x00eff2ef, 0x00717b72, 0x000c150c, 0x0019251c, 0x001e2c22,
- 0x001e342e, 0x0021372f, 0x0024382c, 0x00273929, 0x002c3b28, 0x00313d28, 0x00343e2a, 0x0039412e, 0x003f4833, 0x003e4433, 0x00373941, 0x002d2f62, 0x00283272, 0x00293587, 0x002f3f97, 0x002c47a0,
- 0x003250a6, 0x003954a7, 0x003d54aa, 0x003f50aa, 0x003b44aa, 0x002d3d98, 0x00344692, 0x006a6fb2, 0x009994c3, 0x009d96bb, 0x00a099b1, 0x009c96ab, 0x009f99a1, 0x00a99f9d, 0x00ae9e93, 0x00ad9b84,
- 0x00b2a1a8, 0x00b6a6aa, 0x00baa6a9, 0x00b7a6a4, 0x00b3a69f, 0x00b4a79c, 0x00b1a495, 0x00ad9e8d, 0x00ad9a84, 0x00ad9881, 0x00aa9684, 0x00a8988e, 0x00ab9b98, 0x00b0a0a1, 0x00bfaeb3, 0x00ccbac1,
- 0x00cec1c9, 0x00d7c8d0, 0x00d6c8cd, 0x00d1c4c9, 0x00d5c8cb, 0x00d6dad0, 0x00dbe2dd, 0x00e4ddee, 0x00eacfe2, 0x00ded2e0, 0x00d9d8e0, 0x00dadbe4, 0x00e3958e, 0x009e464f, 0x00693056, 0x003b449d,
- 0x001d4bb2, 0x001e48ae, 0x001e45a9, 0x002245ae, 0x000e3ba8, 0x001443ac, 0x000e3b97, 0x002a529a, 0x00a5b1ca, 0x00e7e5e8, 0x00e4dfdc, 0x009ea5b0, 0x00535a6e, 0x00515a74, 0x00576280, 0x00525d81,
- 0x004f5b80, 0x004a5679, 0x00474f74, 0x00474b6f, 0x00424564, 0x00414156, 0x003d3948, 0x003b3543, 0x003a323a, 0x003f373f, 0x0050464e, 0x0060555f, 0x00716974, 0x00797380, 0x00878091, 0x008f8b9d,
- 0x009495a2, 0x009d9eaa, 0x00a4a5af, 0x00a5a7ae, 0x00a5a7ab, 0x00a0a4a5, 0x00979c9b, 0x00afb5b2, 0x00ebeee9, 0x00fbfef9, 0x00fdfefc, 0x00fbfbfd, 0x00fdfefc, 0x00e4e4e4, 0x008b8c8b, 0x004f5051,
- 0x00333430, 0x00383a37, 0x00504f50, 0x00535352, 0x00403f3f, 0x00383026, 0x00413122, 0x004b3c2c, 0x0059462b, 0x00584426, 0x00543b1d, 0x004f3517, 0x00452c14, 0x003c2310, 0x0042271a, 0x005a4034,
- 0x00726663, 0x008a7e79, 0x008a7e7b, 0x00706765, 0x00383330, 0x00151111, 0x00050203, 0x00040201, 0x00050508, 0x00060a0b, 0x00161412, 0x002f2419, 0x00494134, 0x00534c3d, 0x00524b3d, 0x00484230,
- 0x0058544b, 0x00a39b9a, 0x00e9e2e2, 0x00ebe3ec, 0x00e9e5ec, 0x00e6e5f5, 0x00e9e9f6, 0x00f1ebf5, 0x00f8edeb, 0x00f8ebe6, 0x00faf2ea, 0x00fcf3e7, 0x00fae1cf, 0x00f1c9ac, 0x00e3aa84, 0x00d89466,
- 0x00d48a46, 0x00cd7950, 0x00c36c41, 0x00c56a2c, 0x00bd6616, 0x00b15924, 0x009d4c1f, 0x008f4817, 0x00783e00, 0x00793918, 0x00754835, 0x006d5b5c, 0x007f727a, 0x00a899a7, 0x00d6c3d7, 0x009a8091,
- 0x00341517, 0x00280609, 0x001a0200, 0x00110304, 0x00050300, 0x00020003, 0x000f1111, 0x006a6b69, 0x00f1f3f3, 0x00fcfefd, 0x00f9f9f8, 0x00fcfdfa, 0x00fcfbf9, 0x00e3e4e2, 0x009d9d9c, 0x00838382,
- 0x007e7e7f, 0x007e7e7f, 0x007e7e7e, 0x007e7f7f, 0x00818181, 0x00818182, 0x00808081, 0x007f7f80, 0x007d7f7f, 0x007e7f7e, 0x00818382, 0x00818a8a, 0x008b8887, 0x0078869d, 0x005f82b5, 0x004484db,
- 0x003586f0, 0x004181e4, 0x00457cd9, 0x004279d2, 0x00307be5, 0x00337adb, 0x00327ad5, 0x003278d5, 0x003175d3, 0x002f72d0, 0x002f70cf, 0x00306fcf, 0x00306cce, 0x002d68ca, 0x002963c5, 0x00255fc0,
- 0x002557b8, 0x002050b1, 0x001945a7, 0x001a43a5, 0x001f45a8, 0x001e43a7, 0x00103498, 0x000a2e93, 0x00173ea1, 0x001c46a7, 0x001742a6, 0x001f4cb3, 0x002657ba, 0x002358bb, 0x001f57bb, 0x00225ebf,
- 0x002262c2, 0x002864c5, 0x002763c2, 0x002763c4, 0x00265fc1, 0x00295cb9, 0x00456ebe, 0x0095abea, 0x00cdd1f6, 0x009da3d2, 0x007783b6, 0x007d95d8, 0x004a6dae, 0x007c92cf, 0x00c2ccfa, 0x00c6c3e6,
- 0x00bbc3ed, 0x00c7d0fc, 0x00bdcef5, 0x00aac0f0, 0x005975b5, 0x00274598, 0x00153596, 0x001d3ca5, 0x002d50b2, 0x002549aa, 0x00556fb3, 0x00bcc6e0, 0x00b1c9f1, 0x006187cb, 0x00295aac, 0x003c74cf,
- 0x0070a7ec, 0x0079a2d7, 0x0027425f, 0x00131e2c, 0x009d969c, 0x00f7f1f3, 0x00fbfafa, 0x00fefcff, 0x00fbfcf8, 0x00f6ffed, 0x00c5d9b3, 0x007e9f63, 0x0064873f, 0x006f8946, 0x00adbd82, 0x00eef2c4,
- 0x00fefdcf, 0x00fefbcf, 0x00fffccf, 0x00fffcd6, 0x00fbf8d3, 0x00faf4db, 0x00f4f0d7, 0x00ede9db, 0x00e6dfdc, 0x00ebe3e6, 0x00f1ecee, 0x00eeebe8, 0x00e9e9f3, 0x009aa5bd, 0x00223859, 0x001d3769,
- 0x00244481, 0x0031518d, 0x003c5b94, 0x0046669a, 0x005d7ca9, 0x00708da8, 0x0089a2b4, 0x009eb3c4, 0x00bdc5cc, 0x00ced2d5, 0x00d4d3d1, 0x00e1dcda, 0x00efebea, 0x00f1f1f0, 0x00e5e7ea, 0x00d9dfe6,
- 0x00e6e5e3, 0x00efeeed, 0x00f4f1f1, 0x00f5f2f1, 0x00f5f3f5, 0x00f9f7f8, 0x00faf6f8, 0x00fcf9fa, 0x00f8f9f5, 0x00f5f3f4, 0x00eae5e4, 0x00e9e1dc, 0x00ebe8e2, 0x00edf4e7, 0x00aebea1, 0x006d8759,
- 0x005b8436, 0x005c872f, 0x00588a2f, 0x00568b33, 0x0057893a, 0x00598537, 0x005b8334, 0x00658134, 0x006e702d, 0x0076672c, 0x008c733f, 0x00a78555, 0x00b89661, 0x00c29e63, 0x00cfac6b, 0x00d0ae66,
- 0x00c6a261, 0x00bd9e61, 0x00baa069, 0x008e834f, 0x0044531f, 0x00344f1b, 0x002d4b1b, 0x0030481a, 0x00393a0e, 0x003f2f0b, 0x004a2b0d, 0x00421405, 0x0019030b, 0x00242045, 0x002f4079, 0x00263e8a,
- 0x002b418e, 0x00303a84, 0x00323477, 0x0034316f, 0x00302b5e, 0x00564d80, 0x00c8c2e6, 0x00f8f3ff, 0x00fbfdfb, 0x00f8fbfb, 0x00f6fafe, 0x00f1f7fa, 0x00f1fafd, 0x00f4fffc, 0x00f0fef6, 0x00f1fff3,
- 0x00f1faf8, 0x00b5b9e2, 0x003a3783, 0x00343094, 0x002b338b, 0x0024358c, 0x00293b8e, 0x002d3a95, 0x00343878, 0x00524c74, 0x00a49185, 0x00caab53, 0x00caaa53, 0x00c9aa57, 0x00c6a857, 0x00c6a85b,
- 0x00bc9c50, 0x00b2914a, 0x00a88642, 0x00a5833e, 0x009c7b37, 0x008b6f3d, 0x008c784f, 0x00645f33, 0x00374620, 0x002b3e1f, 0x003e4f3a, 0x009aa398, 0x00fbfaf8, 0x00fcfcfc, 0x00fafdfc, 0x00fbfdff,
- 0x00f3f7f5, 0x00b6b2a9, 0x00362516, 0x00351700, 0x00592e04, 0x00653a0f, 0x00623b17, 0x009a7b5d, 0x00f6f4e3, 0x00fbfff9, 0x00f9fffd, 0x00f7fefc, 0x00fdfefc, 0x00dad5e2, 0x00666474, 0x0046465b,
- 0x004b5666, 0x00535660, 0x00564d53, 0x00604549, 0x00784242, 0x00813b3a, 0x00833c31, 0x00743d23, 0x00553b26, 0x003a272a, 0x00514451, 0x00bcb2c3, 0x00f6fef8, 0x00eefffe, 0x00bbd6ec, 0x006f91c6,
- 0x00307cdb, 0x004b84cd, 0x009fc8f4, 0x00e7f8fe, 0x00fdfff5, 0x00fcfdf6, 0x00fcfdf7, 0x00fcfeff, 0x00fcfefd, 0x00fbfdf9, 0x00fefef9, 0x00fefefc, 0x00fcfdfb, 0x00fbfcf9, 0x00fbfcfa, 0x00fbfbfc,
- 0x00f9fafb, 0x00f8f7fb, 0x00eff0f6, 0x00eff1f7, 0x00e5e6ea, 0x00e8bfb0, 0x00ca8265, 0x00c86c51, 0x00e56d45, 0x00e96a3b, 0x00e66434, 0x00e16735, 0x00d06940, 0x00c35f42, 0x00b44d40, 0x00af4544,
- 0x00994f3d, 0x00a44a3c, 0x00a73d32, 0x009f2724, 0x008a1512, 0x006e0e0c, 0x00550709, 0x004e191c, 0x00674d56, 0x00917c89, 0x00b3a7b9, 0x00bbbfd4, 0x00c4c9dc, 0x00c5c9da, 0x00c2c4d3, 0x00bdbeca,
- 0x00b0b5b8, 0x00a7aaae, 0x00abaaad, 0x00adacab, 0x00b2afb0, 0x00bdb6b6, 0x00bdb5b3, 0x00b8b2ae, 0x00b6b4a9, 0x00b6b4a8, 0x00b4b2a6, 0x00b1b2a8, 0x00b5b6b3, 0x00bbbcc1, 0x00c0c3cd, 0x00c4c3d3,
- 0x00bec0d3, 0x00b3b5c5, 0x00a4a0b0, 0x00928794, 0x00725f67, 0x00654f53, 0x00695053, 0x00785d5e, 0x007b6360, 0x00806463, 0x008d737a, 0x00a38fa3, 0x00bcaebe, 0x00c2b7c9, 0x00bab7c7, 0x00aaafc0,
- 0x009098a9, 0x00828899, 0x00686c7c, 0x00575b66, 0x004a4955, 0x004c3a3b, 0x005d4640, 0x007c6762, 0x00a99c95, 0x00b3aba4, 0x009a948f, 0x0085807c, 0x007e7876, 0x0087817f, 0x00827978, 0x00867978,
- 0x00817d7a, 0x007f7c78, 0x007d7978, 0x007a7674, 0x0075726d, 0x00706c67, 0x006b6764, 0x006b6764, 0x0072706b, 0x0086837d, 0x00999491, 0x00afaba9, 0x00e8e7e4, 0x00fcfcfb, 0x00fbfbfc, 0x00fafdfc,
- 0x00fafcf9, 0x00f9faf6, 0x008f8a89, 0x0016110f, 0x00271e19, 0x003f3124, 0x00534333, 0x005b4b3a, 0x00685845, 0x007c6b58, 0x0085705f, 0x0077614e, 0x00725d47, 0x007d6750, 0x00775e49, 0x0079604a,
- 0x00825d40, 0x007b5b40, 0x00765943, 0x006f5846, 0x00605449, 0x0057524b, 0x00545050, 0x004e4f50, 0x0067696a, 0x00aeaeb1, 0x00c8d0db, 0x008e9fbd, 0x003b6ca5, 0x00376eb7, 0x004784cf, 0x005189cf,
- 0x004987d5, 0x003d83d4, 0x003c7ac3, 0x00547bb2, 0x00bcb1b9, 0x00d7d5e4, 0x00cad1dc, 0x00d9dbd9, 0x00d4d3dd, 0x00a8a4c6, 0x009093bc, 0x00bec9ec, 0x00e4f7f3, 0x00e3f2ee, 0x00dce1e8, 0x00d6cdef,
- 0x009ac9fd, 0x0091c5fb, 0x0086c4f9, 0x0081c7f8, 0x0078c4f4, 0x0070bbef, 0x006db4ed, 0x006aabe9, 0x0074a2e8, 0x007ba4ef, 0x007dabec, 0x006faeec, 0x0068abeb, 0x0075b6f5, 0x0076b7f5, 0x0072b1f0,
- 0x0075b0eb, 0x0078b0e9, 0x0072aae4, 0x006ea6e0, 0x0063a1dc, 0x006b98d5, 0x00678fc9, 0x00668fc8, 0x006e93c9, 0x007ba0d5, 0x0089acd9, 0x0082a5d1, 0x0083a4ca, 0x0096b5dd, 0x00bcd9f1, 0x00cdebf7,
- 0x00b0bec9, 0x008e99a6, 0x00b7c1cb, 0x00dae2eb, 0x00e2e7e9, 0x00dbe0e2, 0x00ecf0ef, 0x00eff0f1, 0x00908f90, 0x002f2d31, 0x002c2728, 0x00362f25, 0x0043382d, 0x004e3f33, 0x005a4739, 0x00634d3a,
- 0x0070523a, 0x007a583d, 0x00855e40, 0x00895f40, 0x008e6241, 0x008f6641, 0x008e6641, 0x008a6440, 0x0080593b, 0x007c5436, 0x007b5233, 0x00805433, 0x00905933, 0x009c5e33, 0x00ab6636, 0x00b76b3a,
- 0x00aeadb1, 0x000d0b1a, 0x000f0f22, 0x00080b26, 0x000b112d, 0x000b142b, 0x00121d32, 0x0018223a, 0x001f2650, 0x0022275a, 0x0025285c, 0x00292855, 0x001d315f, 0x00183261, 0x0019335b, 0x00182647,
- 0x002d0b1c, 0x004d0e16, 0x00842f32, 0x008f2e2f, 0x008c2824, 0x006a3345, 0x00785b76, 0x0071607e, 0x00424667, 0x002c365c, 0x001d2755, 0x001a1e55, 0x00232460, 0x002b316a, 0x0029336e, 0x0027336d,
- 0x003a4786, 0x00374584, 0x00333f7f, 0x002b3775, 0x002d3675, 0x002e3472, 0x002b3069, 0x00252a5d, 0x00232554, 0x00191d46, 0x000f1336, 0x000a0d24, 0x000b0e1f, 0x000c0f1c, 0x000a0c1d, 0x0013132b,
- 0x00646087, 0x00b0aed0, 0x00c9c8e6, 0x00c9c7dc, 0x00bdbcc4, 0x00b8b5c0, 0x00c7c5d1, 0x00d1d0dc, 0x00dbd8e6, 0x00dbd9e6, 0x00d3d2de, 0x00d1cfdb, 0x00cbc9d5, 0x00c9c7d3, 0x00c4c1ce, 0x00c1c0cc,
- 0x00cdc7d4, 0x00d1ccd8, 0x00d7d3de, 0x00d6d3dc, 0x00d4d0da, 0x00d4d0db, 0x00d9d5e0, 0x00dbd8e3, 0x00dbd7e2, 0x00ded9e5, 0x00e0dbe8, 0x00e1dce9, 0x00e3dce9, 0x00d8d1dd, 0x00c9c2ce, 0x00cac4cf,
- 0x00d5c9d5, 0x00d6cbd8, 0x00cdc6d1, 0x00c5bdc8, 0x00bcb4be, 0x00c4b2bb, 0x00c7b4b9, 0x00cbb6be, 0x00c8b7c0, 0x00c2b2bc, 0x00c1b2bc, 0x00c7b9c4, 0x00cbbcca, 0x00c3b7c5, 0x00b8acba, 0x00b2a6b5,
- 0x00baacb5, 0x00bfb2ba, 0x00c3b5be, 0x00c7b9c2, 0x00d1c3ce, 0x00daceda, 0x00e0d7e4, 0x00e4dfec, 0x00e1e0ef, 0x00d7dbe7, 0x00d2d5e0, 0x00d1cfda, 0x00d2ceda, 0x00d4d2df, 0x00d8d8e4, 0x00d9dae3,
- 0x00d3d2df, 0x00cecdd9, 0x00cdcad8, 0x00d1d1dc, 0x00d7d7e0, 0x00d6d1d8, 0x00e8e1e6, 0x00fbf9fb, 0x00fcfaf9, 0x00fbfcf9, 0x00fefffd, 0x00ecf1ed, 0x006f7a72, 0x000b140c, 0x00121f16, 0x0018261c,
- 0x001d2f1f, 0x001e3222, 0x00203224, 0x001f3022, 0x00233127, 0x00243028, 0x0027342a, 0x00283628, 0x00283728, 0x00283b28, 0x002b3b3b, 0x002b3358, 0x0028326c, 0x0026357f, 0x002a3a91, 0x002d41a0,
- 0x003048a4, 0x00354ea5, 0x003752ad, 0x003b4eae, 0x003448ad, 0x002a3f9d, 0x0023388a, 0x00434b8f, 0x0079729a, 0x00807992, 0x00888091, 0x008c8691, 0x00918893, 0x00a799a1, 0x00baa4aa, 0x00b89e9d,
- 0x00b8a6a8, 0x00b8a8a8, 0x00baa8a9, 0x00b5a4a6, 0x00b5a7a9, 0x00b3a4a5, 0x00af9f9b, 0x00a8978e, 0x00a8927f, 0x00aa937a, 0x00ad9680, 0x00ab958b, 0x00b59f9e, 0x00baa6a6, 0x00bdaaae, 0x00c1adb4,
- 0x00cbbac1, 0x00cebdc4, 0x00d1c1c3, 0x00d4c5c6, 0x00dcd3ce, 0x00d7e0dd, 0x00d9dddc, 0x00e9cdd8, 0x00edcee3, 0x00e5d1da, 0x00dad7dc, 0x00d5e1ea, 0x00eeb2b0, 0x00d2695e, 0x00983f4b, 0x005b4d91,
- 0x001c51b7, 0x00204eb1, 0x00274aae, 0x002743a8, 0x00183ca9, 0x001743a7, 0x001a44a0, 0x004369b2, 0x00b5c1e2, 0x00ebe7ec, 0x00ece2e3, 0x00acb3b7, 0x005e6472, 0x00555e6f, 0x005b657d, 0x005a6683,
- 0x005c6486, 0x00586181, 0x00575d7d, 0x00585c7a, 0x00565773, 0x00565466, 0x004f4a56, 0x00494350, 0x00473e46, 0x00494048, 0x00594e57, 0x00635964, 0x00726a77, 0x007a7383, 0x00867f92, 0x00908a9f,
- 0x009798a9, 0x009fa0b0, 0x00a8a9b5, 0x00aaabb7, 0x00a7a9b0, 0x00a5a7ae, 0x009da1a2, 0x00b9bebd, 0x00f0f3ef, 0x00fbfefb, 0x00fcfefb, 0x00f9fafc, 0x00fdfdfb, 0x00d9d9da, 0x00797978, 0x00575758,
- 0x003c393a, 0x00343232, 0x00423f41, 0x003f3e3d, 0x00312d30, 0x002e251e, 0x0035261a, 0x00413323, 0x00533f24, 0x00553f21, 0x00563a1a, 0x00543513, 0x00492a0e, 0x003e1f08, 0x00472717, 0x005f4032,
- 0x00796966, 0x008f807d, 0x008c7f7c, 0x00736965, 0x003e3633, 0x001b1415, 0x00070204, 0x00020000, 0x00040407, 0x0006090b, 0x00171411, 0x00302313, 0x00453b29, 0x004a422f, 0x00463f30, 0x003c3625,
- 0x005a5548, 0x00a9a69e, 0x00eee6e5, 0x00e3dee1, 0x00e5e0ea, 0x00e1e4ef, 0x00ede9f5, 0x00faebf0, 0x00ffe7e0, 0x00fbded2, 0x00f0d0bf, 0x00e0baa4, 0x00ca9879, 0x00bd8255, 0x00b8723c, 0x00ba6d32,
- 0x00c77220, 0x00c86930, 0x00c8602e, 0x00bb5213, 0x00a34203, 0x008e3911, 0x0081341a, 0x007a3d1d, 0x008b6038, 0x00af8474, 0x00c0a4b2, 0x008b84ad, 0x0054557c, 0x006b6d8c, 0x009691ac, 0x006e6470,
- 0x00381e16, 0x002c1109, 0x00250c0a, 0x00180a07, 0x00160d12, 0x00181612, 0x00434040, 0x00999692, 0x00fffcf9, 0x00fefbfa, 0x00fffaf9, 0x00fefbf9, 0x00fdfafb, 0x00dbdcdb, 0x00919492, 0x007d8281,
- 0x00827d7f, 0x00807c7e, 0x00807d7f, 0x007f7d80, 0x007f7d80, 0x00807e80, 0x00807e7f, 0x007f7d7e, 0x00837f81, 0x00817f7f, 0x00808385, 0x00808b8a, 0x008d8c8e, 0x007d8ba0, 0x006286ba, 0x004487de,
- 0x003785f4, 0x004180e3, 0x00467cda, 0x00457ad2, 0x00327dea, 0x00347cdd, 0x003379d7, 0x003276d4, 0x003274d5, 0x003071d2, 0x002f6ecf, 0x002f6ccd, 0x002f6acb, 0x002d67c8, 0x002a63c4, 0x002760c2,
- 0x002559b7, 0x002456b5, 0x001d4bac, 0x00153fa1, 0x001e44a8, 0x002247ab, 0x001d42a5, 0x00123699, 0x0012389d, 0x001640a0, 0x001741a6, 0x001944ae, 0x001e52b5, 0x002358bb, 0x001d54b7, 0x001c59b7,
- 0x002561c4, 0x002463c2, 0x002664c3, 0x002862c5, 0x002a62c4, 0x00305db6, 0x006684cf, 0x00b3c1f3, 0x00d5cbf6, 0x00bdb8e5, 0x00989fd4, 0x00899fde, 0x004368b0, 0x00526ba6, 0x00a4afe4, 0x00b0abd2,
- 0x009395c5, 0x00abb3e1, 0x00c4d2fd, 0x009bb0e1, 0x004060a2, 0x00294b9c, 0x00183a95, 0x00072a8d, 0x00143492, 0x00284c9a, 0x007a95d0, 0x00c3d6e7, 0x00acc6f4, 0x006389cc, 0x00325db1, 0x004071cd,
- 0x006c9fe9, 0x007299d0, 0x00203e61, 0x00293a4f, 0x00bfbdc8, 0x00f9f6f7, 0x00fcfcf9, 0x00fcfbfb, 0x00fdfdf9, 0x00f2fbe6, 0x00b3ca9f, 0x0076985a, 0x0063873d, 0x007d9755, 0x00c1cf98, 0x00f2f4c7,
- 0x00faf2c2, 0x00f9f1c0, 0x00faf2c9, 0x00fbf7d1, 0x00fdf8df, 0x00f8f1df, 0x00faf2e8, 0x00f0ebe2, 0x00e9e3e5, 0x00ece8e8, 0x00ebe9ea, 0x00eee8e6, 0x00f2f6fd, 0x00a7b1d2, 0x002b4270, 0x0020407b,
- 0x00284e97, 0x0028529d, 0x0028579d, 0x002a559a, 0x002a5793, 0x0030558d, 0x003d5b8d, 0x005b729f, 0x00a8b3cf, 0x00d0d4e3, 0x00d6d4dd, 0x00dedadd, 0x00f1edec, 0x00f0eeee, 0x00e9eae7, 0x00e9eeeb,
- 0x00f5f1f5, 0x00f8f6f7, 0x00fbf8fb, 0x00f9f6f9, 0x00fcf9fb, 0x00fcf9fa, 0x00fcf9fc, 0x00fbfaf9, 0x00f8f7fb, 0x00efedee, 0x00e7e4e2, 0x00e8e4da, 0x00eeeee8, 0x00e7f1e1, 0x00a0b097, 0x00698154,
- 0x0060853c, 0x005d8632, 0x005e8832, 0x005a8734, 0x005c863b, 0x00558834, 0x00598935, 0x00638534, 0x00757732, 0x00756a2e, 0x007d6a37, 0x00997d53, 0x00af8f64, 0x00be9967, 0x00cca56a, 0x00d0a761,
- 0x00c9a366, 0x00b79659, 0x00b79b60, 0x009e8d52, 0x00646d32, 0x00546b30, 0x00415f2a, 0x003c5f2b, 0x003f5227, 0x00485129, 0x00867555, 0x0097725d, 0x00503744, 0x00363258, 0x003d4482, 0x00334190,
- 0x0032398f, 0x0032357f, 0x00333071, 0x00303063, 0x002c2a59, 0x00555376, 0x00d5cee6, 0x00faf6fd, 0x00fcfbfb, 0x00f5f5f2, 0x00fbfcfc, 0x00f6f8fc, 0x00f6faff, 0x00f5fcfd, 0x00f2fbfb, 0x00f2fcf8,
- 0x00effdf7, 0x00acb7d4, 0x0034347a, 0x002f2884, 0x002d2f7e, 0x00222f74, 0x0024357b, 0x0023327e, 0x002c316e, 0x0039385b, 0x00766c63, 0x009c8841, 0x00a18b4a, 0x00a69150, 0x00a79355, 0x00a69256,
- 0x00977e45, 0x0090753e, 0x00a0824a, 0x00b4935b, 0x00ba995f, 0x00b89d75, 0x0092815f, 0x0043401e, 0x0018280a, 0x000f230b, 0x00465849, 0x00b8c3bc, 0x00fbf9fb, 0x00fbfbfc, 0x00fdfffe, 0x00fcfffe,
- 0x00edf1f2, 0x009a948c, 0x002c1a0d, 0x003c1d00, 0x00582c02, 0x00623508, 0x00603914, 0x008b6e4c, 0x00ede6d7, 0x00fafcf7, 0x00f8fefc, 0x00f8fffd, 0x00fdfcfe, 0x00e9e2f2, 0x00787189, 0x00494863,
- 0x00596274, 0x0062636f, 0x006b5d66, 0x00745357, 0x008b4d4c, 0x00963d35, 0x009a3e2c, 0x00884221, 0x00653b26, 0x00381c1c, 0x003c2c3d, 0x009892a0, 0x00f8f9f4, 0x00f2fdfc, 0x00d3e5f9, 0x00889dcc,
- 0x002365c9, 0x00396cb2, 0x008db1dc, 0x00e1f2f8, 0x00fafef7, 0x00f9fdfb, 0x00fcffff, 0x00fbffff, 0x00fcfeff, 0x00fbfdf7, 0x00fbfbf8, 0x00fbfafc, 0x00faf7fc, 0x00f7f6f8, 0x00f6f4f7, 0x00f5f4f5,
- 0x00eaeaee, 0x00e9eaf0, 0x00ebe9f3, 0x00eeedf8, 0x00e7e7f2, 0x00edcac0, 0x00cf8e77, 0x00c46d54, 0x00e76b45, 0x00eb683a, 0x00e3622f, 0x00dd6733, 0x00cb6a42, 0x00be5f46, 0x00b6544c, 0x00b95458,
- 0x00a05f4b, 0x00a75847, 0x00a54538, 0x009d2e27, 0x008a1812, 0x0073100e, 0x005e0d0f, 0x005d2328, 0x00795764, 0x009b8092, 0x00b6a7bc, 0x00bbbed3, 0x00c3c5d8, 0x00c0c1d1, 0x00b7b8c6, 0x00aeafba,
- 0x00a3a6aa, 0x009b9d9f, 0x009f9f9f, 0x00a3a49f, 0x00aaa8a6, 0x00b7afad, 0x00b4aaa8, 0x00aea7a1, 0x00b5b0a2, 0x00bab8aa, 0x00bebdb2, 0x00c0c1bb, 0x00c2c4c8, 0x00c4c6d3, 0x00c9cadf, 0x00cfcce8,
- 0x00c8cde0, 0x00c0c6d5, 0x00b2b3c1, 0x00aaa6af, 0x0094888d, 0x00807274, 0x00746466, 0x00736364, 0x00716261, 0x006f5e5e, 0x007b666d, 0x00977f8d, 0x00b09daf, 0x00b1a5b7, 0x00a29fb4, 0x008f93aa,
- 0x00767d97, 0x00676e8a, 0x00565d78, 0x004c546c, 0x003f435d, 0x0041333a, 0x005d4941, 0x00877671, 0x00b4aca6, 0x00b6afa9, 0x00928d8a, 0x00757271, 0x00777272, 0x00817978, 0x00817575, 0x00867778,
- 0x007e7975, 0x007a7671, 0x0076716e, 0x00716c69, 0x0069645f, 0x00635e59, 0x00605b57, 0x00645e5a, 0x0078716e, 0x008b847f, 0x009d9693, 0x00afaaa9, 0x00dfdedd, 0x00faf9fa, 0x00fefeff, 0x00fbfffe,
- 0x00fefbfd, 0x00fcfcfb, 0x009f9c9e, 0x001a1a18, 0x001d1a18, 0x002d2924, 0x00433e39, 0x00514a43, 0x00584e46, 0x0063584d, 0x00736559, 0x006f5f51, 0x006d5c49, 0x0074604d, 0x00786351, 0x007a6452,
- 0x00835f44, 0x007a5b43, 0x00745845, 0x006e5a4a, 0x0061554e, 0x005b5652, 0x00535352, 0x004c5052, 0x00666a6d, 0x00aeb3b8, 0x00d5ddeb, 0x00abb9d1, 0x005785bb, 0x00386fb1, 0x003f7ac2, 0x004f86cc,
- 0x004e89da, 0x004387d9, 0x004580cb, 0x006285bd, 0x00ceb9c5, 0x00dee0ef, 0x00ccd9df, 0x00ced4cc, 0x00cac4ca, 0x00c0b6d5, 0x00cfceed, 0x00e6ecfc, 0x00dff2e2, 0x00dcecdc, 0x00e0e9e8, 0x00dfdaf7,
- 0x00a8ddf6, 0x0097d0f8, 0x007cbaf4, 0x006bb0ef, 0x0060b0f3, 0x005bb0f4, 0x0052a5f4, 0x0052a2f7, 0x0055a1ff, 0x00549dfc, 0x005c9ef2, 0x005a9be1, 0x005ba1ec, 0x0068b0fa, 0x006cb3f8, 0x006daef4,
- 0x006ea6df, 0x0074a7dd, 0x007cafe5, 0x007db4ea, 0x0081b9f2, 0x008bb3e5, 0x0099b9e1, 0x0093b5da, 0x00aacae6, 0x00c6e8f5, 0x00c9e9f2, 0x00b8d7db, 0x00a2babf, 0x00b5c9cb, 0x00d6e6ed, 0x00d1e0e3,
- 0x009ea9bd, 0x00929bb0, 0x00c8d1e0, 0x00e1eaf5, 0x00dde2e5, 0x00dcdfe3, 0x00f0f2f1, 0x00ecebeb, 0x008c8a8b, 0x002f2d2d, 0x002b2827, 0x00342d26, 0x0041362f, 0x004a3d32, 0x00534334, 0x005a4835,
- 0x006c4f38, 0x0075563a, 0x00805a3c, 0x00855c3b, 0x008d5f3d, 0x008e623f, 0x008d613f, 0x0088603c, 0x007f593c, 0x007b5436, 0x007b5234, 0x00805333, 0x00915833, 0x009b5b31, 0x00a96433, 0x00b46a36,
- 0x00acabab, 0x000a0712, 0x000e0d1b, 0x00080a20, 0x00090c23, 0x00070e22, 0x000a1327, 0x0011182f, 0x00161c40, 0x001d1c4e, 0x00201c4e, 0x00261e4c, 0x001d2957, 0x00192f5c, 0x00142d4f, 0x0013213f,
- 0x00280718, 0x00460b17, 0x007c3033, 0x00862e32, 0x00762022, 0x00511f37, 0x00422a49, 0x003a2d4c, 0x002d3459, 0x0027345d, 0x00182557, 0x001b245d, 0x00232866, 0x002d326f, 0x0028326e, 0x00293670,
- 0x00384582, 0x00313f7c, 0x002a3572, 0x0029326f, 0x0029326d, 0x00262c64, 0x0023275a, 0x001c204e, 0x0012143a, 0x000b0d2e, 0x000a0c29, 0x00070a1d, 0x000e1020, 0x000f111f, 0x00070a1a, 0x0025273c,
- 0x008885a9, 0x00c3c2e5, 0x00c5c5e5, 0x00cecee2, 0x00bbbac2, 0x00b5b3bf, 0x00c3c1cf, 0x00d0d0db, 0x00dddae7, 0x00d6d4e0, 0x00c6c4cf, 0x00c2c1cb, 0x00bebcc8, 0x00bfbdc9, 0x00c5c3d0, 0x00c9c7d4,
- 0x00d4ceda, 0x00d6d1dc, 0x00d8d4de, 0x00d9d5df, 0x00d9d4df, 0x00d7d2dd, 0x00dbd7e2, 0x00dddae6, 0x00dad8e3, 0x00d9d5e3, 0x00ddd8e6, 0x00dbd5e3, 0x00d5cedd, 0x00d1cbd8, 0x00cdc8d3, 0x00cec8d5,
- 0x00cdc5d3, 0x00c5bccb, 0x00b4aebb, 0x00aea7b3, 0x00b5acb6, 0x00c2b1b9, 0x00c3b0b5, 0x00c3aeb3, 0x00c1b0b8, 0x00c0aeb9, 0x00c1b2bc, 0x00c7b9c4, 0x00cabcca, 0x00c1b5c2, 0x00b7adb9, 0x00b5aab8,
- 0x00bfafbb, 0x00c5b7c2, 0x00cabbc6, 0x00cebfca, 0x00d9cbd8, 0x00e2d6e4, 0x00e3dae9, 0x00e2dbeb, 0x00dbdcec, 0x00d5d8e7, 0x00d0d3e0, 0x00cdcdda, 0x00d1cfdb, 0x00d7d5e0, 0x00dbdbe3, 0x00d9d9e0,
- 0x00d7d7e0, 0x00d3d2dc, 0x00c8c7d1, 0x00d3d3dc, 0x00d3d2db, 0x00dad6da, 0x00faf5f7, 0x00fbf9fa, 0x00fffdfc, 0x00fdfbfa, 0x00fefffd, 0x00ecf2ec, 0x006f7971, 0x0009130a, 0x000d1b10, 0x00122116,
- 0x001d2b10, 0x001e2c16, 0x001d2c1b, 0x001a2a1e, 0x001b2b27, 0x00182a2b, 0x001a2f2e, 0x0019312c, 0x00123026, 0x00143522, 0x00213732, 0x002d314b, 0x002f3161, 0x002c3373, 0x002d3786, 0x002d3b93,
- 0x0034409a, 0x0038479f, 0x00384da6, 0x00394ba3, 0x003247a5, 0x002b3e9f, 0x0025398e, 0x00384284, 0x006e6e83, 0x0085828a, 0x00888284, 0x00898384, 0x008b7f8c, 0x00a390a8, 0x00c0a5c3, 0x00c2a0c1,
- 0x00baac94, 0x00bcad99, 0x00b8a99d, 0x00b1a3a2, 0x00b1a3ab, 0x00b0a1ab, 0x00aa98a1, 0x00a69298, 0x00ab928f, 0x00ae948c, 0x00b49b8f, 0x00b39d92, 0x00b9a39c, 0x00bda9a4, 0x00c1aead, 0x00c6b3b5,
- 0x00c9bac0, 0x00cdbdc0, 0x00d6c9c6, 0x00dfd3cb, 0x00e3dbcc, 0x00cfddd7, 0x00d4d7d6, 0x00f7cdcb, 0x00f3cce4, 0x00efd4d3, 0x00e2d9d2, 0x00d4e1ef, 0x00f9c9c8, 0x00f98f72, 0x00c34f44, 0x00734f7f,
- 0x001e57ba, 0x002854b9, 0x00274eae, 0x00334aac, 0x003153b7, 0x003459c2, 0x002955b2, 0x005980cf, 0x00c6d2f3, 0x00ede7ee, 0x00f1e9eb, 0x00b9bebd, 0x006a7376, 0x005c656f, 0x00606c7d, 0x00606a83,
- 0x00646b88, 0x00646b86, 0x00646b84, 0x00676c83, 0x0065687d, 0x00656571, 0x005d5b63, 0x0057535c, 0x00544b54, 0x00564c55, 0x00615660, 0x006a5f6a, 0x00746b79, 0x007b7486, 0x00847e93, 0x008e889f,
- 0x009899aa, 0x00a2a2b2, 0x00a9a9b6, 0x00acabb8, 0x00a7a8b0, 0x00a6a7af, 0x00a2a4a7, 0x00c3c5c6, 0x00f9fdf9, 0x00fcfffd, 0x00f9fbf8, 0x00fafbfb, 0x00fdfefb, 0x00d1d1d1, 0x006e6e6c, 0x00595959,
- 0x00383536, 0x00282428, 0x002a272a, 0x00201d1f, 0x00140f10, 0x001b120e, 0x0025190d, 0x00332718, 0x004c371b, 0x00513819, 0x00513312, 0x004f2e0b, 0x004a2609, 0x00442108, 0x00522e1c, 0x006e493a,
- 0x00837671, 0x00978a86, 0x00928682, 0x00786e69, 0x00443b37, 0x001f1716, 0x00070304, 0x00010001, 0x00020203, 0x00050809, 0x0016120d, 0x002e2112, 0x00423821, 0x00453e29, 0x00413c26, 0x0039351f,
- 0x005b5647, 0x00b0aba1, 0x00eae6e1, 0x00dddcd9, 0x00dfdce1, 0x00e6e3e8, 0x00eee6e8, 0x00f3ddda, 0x00e9beae, 0x00d69f88, 0x00be8169, 0x00b36e52, 0x00ad693b, 0x00b3682c, 0x00b76620, 0x00bd6414,
- 0x00b25a04, 0x00ae4b10, 0x009f3606, 0x009b2901, 0x00933200, 0x00933d28, 0x00a76762, 0x00c1958e, 0x00dbc7b9, 0x00f1dee8, 0x00efe3fb, 0x00a79dda, 0x004b477c, 0x00595d81, 0x007c7b88, 0x00777368,
- 0x00726449, 0x0078644f, 0x007b6b5b, 0x007b6e6d, 0x007b798e, 0x0090898e, 0x00b7b2aa, 0x00dbd4cc, 0x00fcf8f0, 0x00fef8f3, 0x00fefaf5, 0x00fffbf9, 0x00fbfafb, 0x00d5d6d7, 0x00898e8d, 0x007a8182,
- 0x00827b7f, 0x00807a7e, 0x007e797c, 0x007c787a, 0x007d797b, 0x00807c7e, 0x00807c7f, 0x007e7b7e, 0x00827c7f, 0x00817e84, 0x00828285, 0x007e8b8b, 0x008e8e8b, 0x007c8da5, 0x006286ba, 0x004588e1,
- 0x003585f2, 0x00407fe5, 0x00477ddb, 0x00487dd6, 0x003481e9, 0x00357edf, 0x00337bd9, 0x003278d5, 0x002f73d2, 0x002e71d0, 0x002e70cf, 0x002e6ece, 0x002f6ccd, 0x002f69cb, 0x002d66c7, 0x002b62c4,
- 0x00245ab9, 0x002558b7, 0x002151b1, 0x001c47a9, 0x001b42a5, 0x001a40a4, 0x002449ae, 0x001d42a7, 0x0011399a, 0x00113a9a, 0x00133ca0, 0x000f3aa3, 0x001546aa, 0x002254b8, 0x001d54b6, 0x001b56b6,
- 0x002261c3, 0x002861c5, 0x002662c3, 0x002764c4, 0x002a63c3, 0x003b62b8, 0x008197df, 0x00c9ccfc, 0x00d1bde2, 0x00cabde7, 0x00aeb1e5, 0x0097abec, 0x004267af, 0x00334f90, 0x007b8bbb, 0x00a5a8cd,
- 0x007871b1, 0x006669a3, 0x00a1abe4, 0x0094a6e1, 0x003d5aa1, 0x003455a6, 0x002c4ea3, 0x001e459c, 0x00193c84, 0x00385b9b, 0x009cbdea, 0x00cfe5f8, 0x00aacaf1, 0x006086cb, 0x00315cac, 0x004072cb,
- 0x006998e3, 0x006285be, 0x00102f54, 0x00445771, 0x00d8dde8, 0x00fbfafd, 0x00fdfdfb, 0x00fefcfd, 0x00fdfef7, 0x00ebf7de, 0x00a4be8f, 0x006f9352, 0x006c9044, 0x00859d5a, 0x00b6c38c, 0x00d7d7ab,
- 0x00ddd39a, 0x00ddd09f, 0x00dbd4a7, 0x00e4d9b9, 0x00e7e1ca, 0x00dbd2c9, 0x00cdc5c2, 0x00c8c4c3, 0x00dedcd9, 0x00efeeee, 0x00efe9ea, 0x00f3e8e8, 0x00f5f5fd, 0x00c0cbee, 0x005b74a6, 0x0037599b,
- 0x002652ac, 0x001b4ca4, 0x00164da2, 0x001751a2, 0x0018529d, 0x001f4b9e, 0x00214097, 0x003b549f, 0x00a7b4e1, 0x00ebf1ff, 0x00efeef9, 0x00f3eff8, 0x00fbf8f4, 0x00f8f8ef, 0x00f2f4ea, 0x00f2f8e8,
- 0x00f3f0f3, 0x00f6f4f4, 0x00faf7fb, 0x00fbf9fb, 0x00faf8f8, 0x00fdfafb, 0x00fdfafe, 0x00fcf9f9, 0x00f7f6f8, 0x00f0eef0, 0x00e8e7e2, 0x00e8eade, 0x00ecf2e9, 0x00e3efe0, 0x0098a88d, 0x00667c52,
- 0x006a8742, 0x00668738, 0x00668534, 0x00668037, 0x00647f3a, 0x00548739, 0x00538d36, 0x005b8a33, 0x00737c33, 0x00757033, 0x00776839, 0x008c7650, 0x00a48b67, 0x00b7986d, 0x00c7a16b, 0x00cb9f61,
- 0x00c69e5f, 0x00c49f62, 0x00d2b476, 0x00c8b276, 0x00757b38, 0x005d7835, 0x004f7335, 0x0049763b, 0x003f6531, 0x005c774e, 0x00aebba6, 0x00d5d4e1, 0x00999fc1, 0x005a5f95, 0x003c3e84, 0x00393889,
- 0x00372f86, 0x00342b7e, 0x00272f76, 0x001c3076, 0x000e3675, 0x00445873, 0x00cfdcdb, 0x00effbf3, 0x00fbffee, 0x00f5f6e7, 0x00fefaf5, 0x00fdf4f9, 0x00fcf1fd, 0x00fdf3ff, 0x00fbf2fe, 0x00fcf5fc,
- 0x00edfdef, 0x00b1bbd1, 0x0032326a, 0x00282374, 0x00252767, 0x001b2761, 0x0018285e, 0x0013225f, 0x00111f4b, 0x00141c33, 0x00383832, 0x00574a2a, 0x00675838, 0x00736249, 0x0079684e, 0x0079664f,
- 0x00765c48, 0x00674a32, 0x005c4024, 0x0068462c, 0x00735134, 0x0081664d, 0x00635a3c, 0x00282b0e, 0x000b200a, 0x00021706, 0x0052675c, 0x00d5dfda, 0x00f9fcfc, 0x00fcfbfb, 0x00fcfdfb, 0x00fdfdfc,
- 0x00dee2e0, 0x007d786f, 0x00241402, 0x00402205, 0x00572a00, 0x0067370b, 0x00693f18, 0x00836342, 0x00ded4c1, 0x00fcf9f5, 0x00f6fdfa, 0x00f8fffb, 0x00fbf9ff, 0x00f9f3ff, 0x008f85a0, 0x0046455f,
- 0x00585e72, 0x00626372, 0x006d6066, 0x007a5756, 0x00944c4b, 0x00a83e31, 0x00ad3e22, 0x00974017, 0x006a3921, 0x00381a19, 0x00291825, 0x00706978, 0x00ebefdf, 0x00f3fdf5, 0x00eaf5fc, 0x00b1bfdf,
- 0x00437bd9, 0x00406bb3, 0x007497c1, 0x00cee0ed, 0x00f2fcf5, 0x00f4fdfd, 0x00f5fdfb, 0x00f5fcfd, 0x00f9fbfc, 0x00f5f9f3, 0x00f4f5f0, 0x00f5f3f9, 0x00f2f0f4, 0x00efedf3, 0x00ebeaed, 0x00e7e7e8,
- 0x00e9e6ec, 0x00e8e6f0, 0x00e6e7f2, 0x00e9ebfa, 0x00dfe1ed, 0x00eed2cc, 0x00d39a82, 0x00c47054, 0x00e46c44, 0x00ed683b, 0x00e0602c, 0x00dd6631, 0x00c66b43, 0x00be604b, 0x00b65953, 0x00bb5962,
- 0x00a26d54, 0x00a6604d, 0x00a04737, 0x009b2f25, 0x008b1613, 0x00791110, 0x006a1515, 0x006e3033, 0x00855f6c, 0x00a18495, 0x00b4a5b6, 0x00b9bcce, 0x00bec0d1, 0x00b7bac7, 0x00a9adb6, 0x009ea3a8,
- 0x00939295, 0x008f8e8d, 0x00939490, 0x009a9c94, 0x00a1a099, 0x00aaa59e, 0x00aba29c, 0x00afa49d, 0x00b9b2a5, 0x00bcbaae, 0x00c1beb5, 0x00c4c3c0, 0x00c3c5ce, 0x00c1c3d7, 0x00c7c8e4, 0x00cecdf1,
- 0x00c7d0df, 0x00c5cfdb, 0x00b9bec8, 0x00b5b6bb, 0x00a5a0a2, 0x009a9292, 0x008a8180, 0x00797170, 0x00655d5b, 0x005b5655, 0x006a585b, 0x0087636d, 0x00977a88, 0x00938290, 0x007e7789, 0x0063647e,
- 0x00535d81, 0x00465379, 0x00404c74, 0x00394673, 0x002a3761, 0x00352d3b, 0x005b4945, 0x00887a75, 0x00b4abaa, 0x00a8a3a1, 0x007c7878, 0x00696565, 0x00746d6d, 0x00837a79, 0x007d6f6d, 0x007f6c6b,
- 0x0077716c, 0x00736c68, 0x006d6763, 0x0066615c, 0x005d5651, 0x0056504b, 0x00534e4a, 0x0059524f, 0x006f6a65, 0x0088827c, 0x009b9491, 0x00aba5a5, 0x00d9d5d6, 0x00f8f7f7, 0x00fcfefe, 0x00fbfffd,
- 0x00fefcfd, 0x00fdfcfe, 0x00a9a9aa, 0x002d2d2e, 0x001d1c1b, 0x002a2c2e, 0x00393a3b, 0x00444444, 0x004a4846, 0x00524c49, 0x005c534f, 0x00645750, 0x006c5b4f, 0x006d5b4c, 0x00776454, 0x00756050,
- 0x007f5f45, 0x00785b45, 0x00715a47, 0x006b5b4a, 0x00615851, 0x005a5855, 0x00535656, 0x004b5256, 0x00666e73, 0x00b2bbc1, 0x00dae6f0, 0x00c1cde3, 0x006c9cce, 0x003f78b9, 0x003a73ba, 0x004d84c8,
- 0x00528cda, 0x004a89dd, 0x004c83cd, 0x006b88c1, 0x00d3bcc5, 0x00e4e6f4, 0x00d6e6e4, 0x00d4ddcb, 0x00d5cec8, 0x00d5cadd, 0x00e1daf2, 0x00dfe1ef, 0x00d8ebc5, 0x00daedcf, 0x00e1eee3, 0x00ebeefd,
- 0x00f2f2e4, 0x00e7eeef, 0x00c4d3e5, 0x009db4de, 0x00789fe9, 0x006a9ff6, 0x005d9efe, 0x005ba5ff, 0x004ba5fd, 0x004ba3fb, 0x005ba7f5, 0x0073a1e1, 0x0075a8eb, 0x007eb5f6, 0x0089bffb, 0x0095c7f9,
- 0x00a9cbf0, 0x00aec9ee, 0x00b6d3f1, 0x00bfdaf6, 0x00b8e0f8, 0x00d1defc, 0x00d6dbfc, 0x00cfd7f7, 0x00dde1f3, 0x00e5ebec, 0x00e1e3de, 0x00cac9c0, 0x00b6afa6, 0x00ccc1b8, 0x00f0e0dc, 0x00e3d0cc,
- 0x00a1aac2, 0x00acb3cb, 0x00d6dfef, 0x00dee7f2, 0x00dee4e7, 0x00dee2e4, 0x00eff4f0, 0x00e6e7e3, 0x00888684, 0x0031302d, 0x002c2926, 0x00342f2a, 0x00413733, 0x004a3e35, 0x004f4032, 0x00574333,
- 0x00674b35, 0x00715238, 0x007c593b, 0x00845b39, 0x00895f3c, 0x008b603e, 0x0087603d, 0x00835c3a, 0x007c593b, 0x00795436, 0x00795132, 0x00825334, 0x00925630, 0x009d5a2f, 0x00a8612f, 0x00b36832,
- 0x00aeaab3, 0x00110c1a, 0x000c071c, 0x00080519, 0x00130e27, 0x000c081f, 0x00110d27, 0x00130f29, 0x00160e30, 0x00191134, 0x0019112d, 0x0016131b, 0x001d1c29, 0x00201f2b, 0x001f1a2e, 0x00171225,
- 0x0010081a, 0x001d1224, 0x0042304a, 0x00473750, 0x0039243e, 0x001e1c47, 0x001f2459, 0x00292d65, 0x002b316a, 0x00212860, 0x00161f58, 0x001c265e, 0x002b356e, 0x0028316c, 0x0028306b, 0x002a316d,
- 0x00372c5b, 0x00332755, 0x00312753, 0x002f2952, 0x00272346, 0x001c1d38, 0x0012172b, 0x000a0f20, 0x000f1722, 0x00171f26, 0x00181e27, 0x001b1f27, 0x000f111e, 0x00141429, 0x000b0a26, 0x003e3d5c,
- 0x00a7a7c8, 0x00c2c3de, 0x00c9cae1, 0x00cdcedf, 0x00c0c2ca, 0x00b0b0b9, 0x00bebdc6, 0x00d5d4dc, 0x00d7d6e2, 0x00c8c6d2, 0x00bcbac5, 0x00bab8c2, 0x00bcbbc5, 0x00c0bfc9, 0x00c8c6d1, 0x00cbc8d4,
- 0x00d1cdd8, 0x00d4d1dc, 0x00d9d7e2, 0x00dcdae5, 0x00dbd9e4, 0x00d7d5e0, 0x00d9d8e2, 0x00dbdce4, 0x00dad9e5, 0x00d6d5e0, 0x00d6d0da, 0x00d4c8d1, 0x00cfc1ca, 0x00c9bbc4, 0x00c2b5be, 0x00c0b2bc,
- 0x00b6a7b1, 0x00aea0a7, 0x00a999a1, 0x00a89ca4, 0x00b5a8b0, 0x00baaeb6, 0x00bdaeb8, 0x00bcadb6, 0x00bdafba, 0x00c2b3be, 0x00c3b6c0, 0x00c6b9c2, 0x00c8b9c4, 0x00bdb0bb, 0x00b8acb6, 0x00c0b2be,
- 0x00c5b9c3, 0x00c8bbc5, 0x00cdbec9, 0x00d5c7d1, 0x00e0d3de, 0x00e7dae5, 0x00e8dbe6, 0x00e6dae5, 0x00e1d6e1, 0x00dbd1dd, 0x00d6cedc, 0x00cdc9d8, 0x00d0cede, 0x00d7d4e5, 0x00dedbed, 0x00dad7eb,
- 0x00d6d2e3, 0x00d0cfdd, 0x00cecbdb, 0x00d6d2e3, 0x00d3cfe0, 0x00d9d6dd, 0x00f3f2f2, 0x00fcfdfb, 0x00ffffff, 0x00fdfefd, 0x00fcfffd, 0x00eef3f1, 0x00717876, 0x000d1110, 0x00101715, 0x00141d19,
- 0x00152513, 0x00182616, 0x001b281b, 0x001b291c, 0x001c2a1e, 0x0017261b, 0x0018281c, 0x0017281a, 0x0019281c, 0x0017291b, 0x001e2c1e, 0x00283123, 0x002b3151, 0x0028316d, 0x002b3786, 0x002e3f99,
- 0x002f4798, 0x00324c9a, 0x003f57a8, 0x004459b0, 0x003c4fb1, 0x00364aaa, 0x003547a5, 0x0035439f, 0x005d60a8, 0x007c7fab, 0x0087899b, 0x0087897e, 0x00888375, 0x00978a8b, 0x00b5a2b6, 0x00c5aed4,
- 0x00b7adad, 0x00b2a6a6, 0x00b0a2a3, 0x00b3a2a5, 0x00baa8ad, 0x00b5a2a7, 0x00ae9ca0, 0x00ac9a9c, 0x00b6a0a0, 0x00baa3a3, 0x00b6a3a1, 0x00b4a6a3, 0x00b6aaa9, 0x00baafaf, 0x00c1b5b8, 0x00c4b7bb,
- 0x00ccbdc4, 0x00cec0c8, 0x00dccfd8, 0x00e3d6e0, 0x00decfda, 0x00d3cfd5, 0x00d8d2d5, 0x00e6d0d6, 0x00edd4df, 0x00e5d6df, 0x00d9d9df, 0x00d0dede, 0x00f6e3e2, 0x00fbc0b3, 0x00d37060, 0x00c6473f,
- 0x00614d74, 0x0043508e, 0x00375cb3, 0x001a52b9, 0x002e57c3, 0x002d5fc9, 0x002f63cd, 0x003c7be2, 0x009dc3f3, 0x00e4ecef, 0x00f7eee6, 0x00cdd0c9, 0x00818383, 0x00696b6f, 0x006e6f78, 0x0070707f,
- 0x00707082, 0x0070707e, 0x0073737e, 0x0073737b, 0x00727378, 0x0070716d, 0x006b6b62, 0x0067655b, 0x0069625c, 0x0068605b, 0x006e6362, 0x00706668, 0x007a7078, 0x007d7684, 0x00878194, 0x008a859b,
- 0x009795a8, 0x00a2a0b1, 0x00a7a5b4, 0x00a5a4ac, 0x00a5a4aa, 0x00a1a1a2, 0x00a3a4a5, 0x00d1d2d3, 0x00fbfafd, 0x00fefefe, 0x00fafafb, 0x00f8f9f6, 0x00fafbfa, 0x00c2c3c0, 0x00646563, 0x00656662,
- 0x00373835, 0x00131511, 0x00141313, 0x000a0c07, 0x00030603, 0x00090903, 0x0015100b, 0x00241d16, 0x00372a17, 0x003d2f16, 0x00412e13, 0x0040280a, 0x00462810, 0x004e2b18, 0x006c4439, 0x008e645c,
- 0x009b8b7a, 0x00a79383, 0x00a78d81, 0x008f6f68, 0x00613f3b, 0x003b1b19, 0x001a0202, 0x000f0000, 0x00080001, 0x00080403, 0x00190e0a, 0x00321e0e, 0x00463220, 0x004b3822, 0x0049351e, 0x00402e12,
- 0x00554a31, 0x00a59b8a, 0x00ebe0d6, 0x00e3d1cf, 0x00e0d0d9, 0x00eac7a5, 0x00eba971, 0x00dc925a, 0x00ce783b, 0x00be6729, 0x00b45f1c, 0x00b15d19, 0x00b36224, 0x00ab5f26, 0x009f5620, 0x00934e1c,
- 0x00824822, 0x007d492a, 0x007e4a34, 0x00875f4b, 0x00a88882, 0x00bcaca2, 0x00e3d3d3, 0x00faf0f3, 0x00fcf6f9, 0x00fef5fa, 0x00f8f5fc, 0x00dfe1ee, 0x00b7b6cb, 0x00b9bac8, 0x00ccc9d5, 0x00d0ced7,
- 0x00d9d2d7, 0x00dcd6db, 0x00e7dfe5, 0x00eae5ea, 0x00f4ecf8, 0x00f2f3f4, 0x00f3f4f5, 0x00f6f4f4, 0x00fefdfc, 0x00fefdfc, 0x00fefbfa, 0x00fcfcf9, 0x00f9f7f6, 0x00c9cbc8, 0x00898b89, 0x007c7f7e,
- 0x007a7a78, 0x007d7c7b, 0x00797877, 0x00747373, 0x00767574, 0x00777675, 0x00777776, 0x007a7b78, 0x007b7a7c, 0x007f8080, 0x008a857a, 0x009c8b67, 0x008d9498, 0x00798fb5, 0x005e86cb, 0x004b86e0,
- 0x004186e0, 0x003e82da, 0x003b83da, 0x003a85df, 0x003183eb, 0x00327ee5, 0x00317ce0, 0x002f7cdd, 0x002e79d4, 0x002b76cd, 0x002873c5, 0x002570c0, 0x00266dc1, 0x00296dc6, 0x002b6bc9, 0x002967c7,
- 0x002c5fc3, 0x002556ba, 0x002251b4, 0x00214eb0, 0x001c45a8, 0x001840a3, 0x00183fa1, 0x001a41a3, 0x00173da0, 0x00113a9c, 0x000e399c, 0x00003091, 0x000f3594, 0x00284da7, 0x002c4ea7, 0x002b4eab,
- 0x002359ba, 0x001f59be, 0x002660cb, 0x00225ac3, 0x002a5dc3, 0x004a5ea8, 0x00a0a0da, 0x00d1d0ff, 0x00b2b2e5, 0x008e99b7, 0x00b6c6e6, 0x009bb8db, 0x004665bf, 0x002a4dac, 0x004066c1, 0x00749ee2,
- 0x00758cd4, 0x003c5591, 0x006d8dc6, 0x0089b0e6, 0x003b66b1, 0x00204aa6, 0x00294eb7, 0x004261cb, 0x006077be, 0x006074a0, 0x00a2a9d4, 0x00e7d9f6, 0x00b4c3f0, 0x005c82b6, 0x003268a4, 0x003b80c0,
- 0x005e97de, 0x004870b5, 0x00122666, 0x006f75a4, 0x00f2ebfe, 0x00fafaec, 0x00fdfeed, 0x00f8fdee, 0x00f4fef6, 0x00d9f2d7, 0x008cae7d, 0x006e954e, 0x007b9341, 0x00929c4b, 0x00b1ad5f, 0x00c9bb73,
- 0x00d0c17d, 0x00cbb874, 0x00c9ac76, 0x00d2b78e, 0x00c9b6c0, 0x008786a2, 0x00595f92, 0x006977ab, 0x00c2c6de, 0x00f4f5f4, 0x00f9f1ed, 0x00f5edf6, 0x00f9f2fd, 0x00eeecf8, 0x00cecfde, 0x00b4bad0,
- 0x008f9fbb, 0x007688af, 0x005b6c9d, 0x004c5f94, 0x00394d8c, 0x002c4b81, 0x00234271, 0x00577199, 0x00cbd6ee, 0x00f2f7fd, 0x00fbfcfd, 0x00fcfafa, 0x00fffbf9, 0x00faf8f8, 0x00f6f8f7, 0x00f2f8f8,
- 0x00ebe8ef, 0x00e9e5e9, 0x00e6e2e5, 0x00e6e4e5, 0x00e4e3e9, 0x00ecebf3, 0x00eeebf4, 0x00f4f0f6, 0x00f6f0eb, 0x00fbf4e4, 0x00f0e9df, 0x00e8e3e7, 0x00f1f4ec, 0x00dde6cd, 0x008d9b74, 0x00698046,
- 0x00668739, 0x00658736, 0x00658437, 0x00648538, 0x0066833e, 0x0063873b, 0x005e8539, 0x005e8537, 0x00688539, 0x00697c32, 0x006b712c, 0x007d7736, 0x00a18e52, 0x00b19d63, 0x00c2ad73, 0x00c9b77d,
- 0x00cfc685, 0x00dbd098, 0x00f3e7bb, 0x00d7cda5, 0x00818a57, 0x005d7932, 0x005b8232, 0x0057822d, 0x00576e37, 0x0083926c, 0x00d0dfcc, 0x00d5f4f2, 0x00f5d5e7, 0x00a78eae, 0x003a3868, 0x00193d82,
- 0x002a3480, 0x002e2e6a, 0x00292d5c, 0x001a3059, 0x00231b7b, 0x0041406d, 0x00bcb9cf, 0x00f5f4fb, 0x00f9f6fc, 0x00f7f6f7, 0x00f5f5f0, 0x00f3f5ec, 0x00f7f7f6, 0x00f8f5fa, 0x00f6f2fa, 0x00f5eff9,
- 0x00ebf1ea, 0x00c4cacf, 0x0045485e, 0x00141739, 0x001c2158, 0x001b235a, 0x001a2364, 0x00142065, 0x000e1859, 0x00071450, 0x00091647, 0x00132033, 0x001a224a, 0x00232c54, 0x002b325c, 0x003d466a,
- 0x00485861, 0x002d3e33, 0x000b1c06, 0x00112205, 0x00121e04, 0x00122306, 0x000f2004, 0x000f2107, 0x000a1705, 0x000a1706, 0x00727c6f, 0x00e6ece3, 0x00fdfbf7, 0x00fbfbfa, 0x00fcfbfe, 0x00fdfaff,
- 0x00cfc7bd, 0x005c503f, 0x00301809, 0x00452408, 0x006b360f, 0x006f3805, 0x00713a0c, 0x00825429, 0x00d1beae, 0x00fdf7f1, 0x00f7fafb, 0x00f9fef6, 0x00fdfbfe, 0x00fff8fd, 0x00a498af, 0x00444258,
- 0x004d5b66, 0x00605f67, 0x00735d62, 0x00855751, 0x009c4644, 0x00ad3d27, 0x00b03a1d, 0x00a13c1f, 0x00743026, 0x00481c19, 0x00281116, 0x00413d3f, 0x00c5c8ca, 0x00f1f9f7, 0x00f5fbf7, 0x00d5d9d5,
- 0x00539ede, 0x004b88d0, 0x006690d4, 0x00b5cfef, 0x00f6fbfd, 0x00f8faec, 0x00fcf7eb, 0x00fdf5fa, 0x00f8f6fd, 0x00f2f7ef, 0x00f2f6ee, 0x00f5f4f5, 0x00f0eff0, 0x00edeeed, 0x00eeeef0, 0x00eff2ef,
- 0x00f0edf2, 0x00f5f5f5, 0x00f4f4f6, 0x00eaeaeb, 0x00dddce0, 0x00dfddcd, 0x00c7af97, 0x00bd7a64, 0x00e36347, 0x00ea6644, 0x00db653b, 0x00c76b3d, 0x00af714d, 0x00a4644b, 0x00a65c4c, 0x00b15c55,
- 0x00b16247, 0x00a95643, 0x009d4235, 0x00923026, 0x008c1f14, 0x0088190d, 0x00851e12, 0x0090332c, 0x00a05f67, 0x00b27f8e, 0x00b99bad, 0x00b1acbd, 0x00b3b3bf, 0x00abb0b9, 0x0096a0a8, 0x00818c95,
- 0x006e7d7b, 0x00737e7d, 0x00888b8d, 0x009a9699, 0x009f979c, 0x009c958f, 0x00a0978a, 0x00a99e92, 0x00b9aaa6, 0x00c2b8b6, 0x00c4c5c0, 0x00bcc8c4, 0x00b9c4c9, 0x00bcbfcb, 0x00c3bdce, 0x00cbbcd3,
- 0x00c5c6cd, 0x00c9c8cf, 0x00c5bfc6, 0x00bdb5ba, 0x00b0a4a8, 0x00a69a9e, 0x00998b91, 0x00867980, 0x006a616b, 0x005b515d, 0x00524a51, 0x004c4546, 0x005a5055, 0x00554e55, 0x004b4657, 0x00473f5d,
- 0x003d3c72, 0x00393c77, 0x00323b79, 0x0021316a, 0x00162c60, 0x001d2649, 0x00494b60, 0x0080818e, 0x00acaaa5, 0x009f9b91, 0x007f796e, 0x006c645e, 0x00786d6d, 0x00807374, 0x007d706e, 0x00776c66,
- 0x006f6560, 0x006a605a, 0x00615852, 0x0059534c, 0x004f4841, 0x00464039, 0x00444038, 0x004e4941, 0x006a635f, 0x00837e78, 0x00969390, 0x009c9c9b, 0x00cacbc8, 0x00f5f6f1, 0x00fffefb, 0x00fefefb,
- 0x00fefdfc, 0x00fbfdfb, 0x00c0bfc1, 0x0049474a, 0x001b1922, 0x00242a33, 0x00333d49, 0x003c4551, 0x0044495d, 0x00474c5e, 0x004c5362, 0x00515761, 0x005b5b5e, 0x00625d5a, 0x006b625b, 0x006e6157,
- 0x006b6252, 0x00686054, 0x00675d56, 0x00615b55, 0x005a5859, 0x00565757, 0x00555656, 0x004c4e50, 0x00726e77, 0x00bab7bc, 0x00ebe6ed, 0x00dfd3d9, 0x0094b2c6, 0x005185b9, 0x004177bb, 0x005274b3,
- 0x00408dce, 0x004a8aea, 0x00667ed9, 0x00a681b1, 0x00d7d7be, 0x00e9ebe6, 0x00e3e7e8, 0x00dbdee0, 0x00d7d9dc, 0x00d4d7dc, 0x00dad9e2, 0x00d6dada, 0x00dbdfe2, 0x00e0e6e5, 0x00e9ebee, 0x00f0f1f7,
- 0x00edf7e5, 0x00ecf7f3, 0x00e2f1fb, 0x00c6defb, 0x008fb2ec, 0x006b98d8, 0x006b9de1, 0x0072a3e7, 0x0072a4d9, 0x007eaee1, 0x009fbfe3, 0x00bfc8d3, 0x00d1d9e9, 0x00d3daeb, 0x00d8deea, 0x00e0e9f6,
- 0x00e8f0f2, 0x00ebf2f5, 0x00ecf0f2, 0x00e9eff1, 0x00edf0f2, 0x00e9f1e7, 0x00e0e3e5, 0x00d5d3ed, 0x00dcd9ed, 0x00e2e4dd, 0x00d1d4c0, 0x00b7bba2, 0x00b6b4b8, 0x00d7d5d7, 0x00e6e3dc, 0x00dadabd,
- 0x00c3b8ba, 0x00d2c9c4, 0x00e8e3d9, 0x00e7e8d9, 0x00e1e6de, 0x00e3eae7, 0x00ecf3f6, 0x00e1e7ea, 0x00848487, 0x00373532, 0x0036302f, 0x003c3236, 0x00463842, 0x004a3d44, 0x004f4247, 0x00554447,
- 0x00604b3e, 0x00684f3f, 0x00755541, 0x007c593e, 0x00855e3e, 0x00865f3f, 0x00855c3e, 0x0080573a, 0x007f513a, 0x007d4d34, 0x007f4d31, 0x00864e2e, 0x0099522c, 0x00a5572b, 0x00b35f2e, 0x00bc6330,
- 0x00aea9b1, 0x000d0a14, 0x00100b1a, 0x000e0a16, 0x000b0615, 0x000b0716, 0x000b061a, 0x000b061a, 0x00120d21, 0x00171127, 0x00120a1e, 0x000b060e, 0x000e0a12, 0x000f0e15, 0x000f0b17, 0x000f0a18,
- 0x000d0819, 0x00161125, 0x002d253f, 0x002e2843, 0x00201a37, 0x00181c49, 0x001f275b, 0x00293163, 0x00252a5f, 0x001c2155, 0x00171e53, 0x00222a5e, 0x002d356a, 0x00272d64, 0x0020255b, 0x00262d63,
- 0x00422e54, 0x004c3a5d, 0x00453455, 0x00352745, 0x002d223a, 0x00332e3d, 0x0044434d, 0x00575861, 0x0074797a, 0x00878c8b, 0x008f9396, 0x0071767a, 0x00222632, 0x00111328, 0x00161631, 0x005c5d78,
- 0x00b5b6d1, 0x00c5c6df, 0x00cbcbe1, 0x00d2d3e1, 0x00c9cbd2, 0x00b6b6c1, 0x00b2b1bc, 0x00c0bfc8, 0x00c8c8d2, 0x00c5c3cd, 0x00c1bfc9, 0x00bdbbc5, 0x00c1bfc9, 0x00c4c3cd, 0x00cac8d3, 0x00cecbd6,
- 0x00d2cfd8, 0x00d5d3dc, 0x00dbd9e3, 0x00dddbe6, 0x00dddae5, 0x00dbd9e3, 0x00dedbe5, 0x00dcdbe4, 0x00d7d7e1, 0x00d0d1db, 0x00cdc7cf, 0x00c9bcc3, 0x00beb0b9, 0x00b4a7af, 0x00aea1a8, 0x00ada1a9,
- 0x00a79da4, 0x00a59a9f, 0x00aa9ba2, 0x00ada2aa, 0x00bbacb5, 0x00baafb8, 0x00bdafbb, 0x00bdb0ba, 0x00c2b4be, 0x00c4b7c1, 0x00cbbec8, 0x00cdc0c9, 0x00c2b5bf, 0x00b9adb7, 0x00bdb0b9, 0x00c4b7c1,
- 0x00c5bbc4, 0x00c9bec7, 0x00d2c5d0, 0x00dbcfd9, 0x00e3d7e2, 0x00e7dde7, 0x00e7dce6, 0x00e5d9e3, 0x00ddd5dd, 0x00d9cfd9, 0x00d4cdda, 0x00cac9d8, 0x00d0cfdf, 0x00dad7e5, 0x00e2deec, 0x00dddae9,
- 0x00d5d2e2, 0x00cfcedc, 0x00d0cede, 0x00d5d1e3, 0x00d4cfe1, 0x00d5d4d9, 0x00eff0ed, 0x00fcfdfa, 0x00fefdfe, 0x00fefdfe, 0x00fdfffd, 0x00eff3f0, 0x00717573, 0x000d0f0d, 0x000d1410, 0x00121a15,
- 0x00162516, 0x00172516, 0x001a281a, 0x0018281b, 0x0018291b, 0x00132616, 0x00142717, 0x00142718, 0x0017261a, 0x0018281a, 0x001a2718, 0x00202b18, 0x00263047, 0x002a3469, 0x00313b88, 0x0034449b,
- 0x00314a9c, 0x0036509f, 0x00455eae, 0x004c68bd, 0x004d62c7, 0x00475cbd, 0x004a5bbb, 0x004c5aba, 0x00565faf, 0x006c73a8, 0x008589a8, 0x008a8d8d, 0x008e8a82, 0x00958a8c, 0x00ad9dae, 0x00c3afce,
- 0x00bbb1b6, 0x00b1a5aa, 0x00a99ea3, 0x00ada1a7, 0x00b7a8ae, 0x00b9abaf, 0x00b9aaad, 0x00b9a9ab, 0x00bdacad, 0x00beacac, 0x00bbaba9, 0x00b6aaa7, 0x00b1a7a7, 0x00b9aeb0, 0x00c6bbbe, 0x00cbbec5,
- 0x00ccc1c9, 0x00d6cad0, 0x00daced8, 0x00d6ccd5, 0x00daced9, 0x00d9d4da, 0x00ddd6de, 0x00e8d5dd, 0x00ecd6e1, 0x00e3d7e0, 0x00dfdce6, 0x00dce5ea, 0x00f5e7e7, 0x00fbdccf, 0x00ec9a8c, 0x00c84f3b,
- 0x007a556b, 0x007d7db0, 0x006b8bd5, 0x002d5ebc, 0x00214bab, 0x00234cb6, 0x002757bf, 0x002461c9, 0x007b9ed2, 0x00d6dce2, 0x00fbf4eb, 0x00dadad1, 0x008d8f8b, 0x00747377, 0x00787880, 0x00797882,
- 0x007b7a88, 0x007c7984, 0x007d7b83, 0x007a7a7f, 0x0078797b, 0x00767871, 0x00747569, 0x00737064, 0x00716c64, 0x00726a64, 0x00756b67, 0x00776d6c, 0x007d7378, 0x00817a83, 0x00888491, 0x008b8898,
- 0x009391a3, 0x009b99a8, 0x00a2a0ae, 0x00a6a4ab, 0x00a4a2a7, 0x009d9c9b, 0x00a8a7a8, 0x00d7d7d7, 0x00fafafc, 0x00fdfdfe, 0x00fdfdff, 0x00fdfffa, 0x00f5f6f6, 0x00b4b5b1, 0x00656664, 0x006f706c,
- 0x003e403d, 0x00121312, 0x0010100f, 0x00070806, 0x00030500, 0x00040401, 0x000e0b07, 0x0019140e, 0x00281f0f, 0x00302510, 0x0034260c, 0x00362307, 0x00422711, 0x00573727, 0x00856058, 0x00a57d78,
- 0x00ae9d8f, 0x00b8a495, 0x00b59d90, 0x009e8279, 0x00725250, 0x004d2e2d, 0x00290f0f, 0x00160202, 0x000a0101, 0x00060202, 0x00120906, 0x0029150d, 0x003c2a1b, 0x0041301f, 0x0041311b, 0x003a2b11,
- 0x003d341d, 0x008b7f6d, 0x00d9d0c7, 0x00d9d0cc, 0x00d4c8d1, 0x00d2a78c, 0x00bd8051, 0x00b06d3f, 0x00bd763e, 0x00c77a41, 0x00c97c42, 0x00c67a43, 0x00c2814c, 0x00bd8356, 0x00bb8660, 0x00ba8662,
- 0x00bc8a74, 0x00c49987, 0x00ccab9a, 0x00dcc3b8, 0x00efe5de, 0x00f9f3f2, 0x00fefbfb, 0x00fefafc, 0x00fef8fc, 0x00fef5fd, 0x00fdfafc, 0x00f6f8fb, 0x00f8f7fd, 0x00f9f9fe, 0x00fbfcff, 0x00fcfafd,
- 0x00fdfdfe, 0x00fffbfe, 0x00fefefd, 0x00fefdfd, 0x00fbfcfb, 0x00fefcfd, 0x00f7faf7, 0x00f7f5f9, 0x00fbfbfb, 0x00fdfdfc, 0x00fbfcfb, 0x00fdfdfc, 0x00f1f3f0, 0x00c0c0be, 0x00858785, 0x007b7c7a,
- 0x00777878, 0x00787877, 0x00737372, 0x006f6e6d, 0x00706f6e, 0x0071706f, 0x00727171, 0x00747474, 0x00757672, 0x007b7d7c, 0x008a8577, 0x00998e6f, 0x008d979c, 0x007591bf, 0x005b85cf, 0x004a84e2,
- 0x004186de, 0x003e81da, 0x003a82d9, 0x003884df, 0x003084e4, 0x00337fe2, 0x00357ede, 0x00357edd, 0x00307ad0, 0x002d77cb, 0x002b74c6, 0x002770c2, 0x00256bc0, 0x002769c2, 0x002968c4, 0x002865c3,
- 0x002a5ec0, 0x00285bbd, 0x002a5cbe, 0x002857b8, 0x001d4aaa, 0x001944a2, 0x001a44a0, 0x00153e99, 0x000e3692, 0x00133b9a, 0x001941a1, 0x00043191, 0x00062887, 0x001e429b, 0x002a4da5, 0x00274ca9,
- 0x001c4fb3, 0x001d53b9, 0x002458c5, 0x002155ba, 0x002550b4, 0x005265a9, 0x00aeb1e7, 0x00cbcdfe, 0x009097cd, 0x00606f93, 0x00adc1de, 0x009dbae0, 0x00435fb9, 0x002b4fb0, 0x002c55af, 0x004373b8,
- 0x00808fd4, 0x007386c1, 0x007c98d2, 0x007fa3d6, 0x004166b0, 0x0023449b, 0x00304caa, 0x006c83df, 0x009aa8e7, 0x007f8cb7, 0x007c82aa, 0x00d2c3f1, 0x00b6c9f2, 0x005f87c3, 0x00346cae, 0x003c7eca,
- 0x00558adf, 0x003e64b0, 0x00253977, 0x008f97c1, 0x00f9f9ff, 0x00fdfdf6, 0x00fefef3, 0x00f9fbf1, 0x00f1fcf2, 0x00cde6c7, 0x0083a36e, 0x0075964d, 0x0090a04a, 0x00a7a854, 0x00c0b364, 0x00ceb96f,
- 0x00d8c27a, 0x00cdb16a, 0x00b19252, 0x00d7b485, 0x00cbb6b4, 0x007a758e, 0x00353a67, 0x005b679c, 0x00c6cbe1, 0x00f2f3f1, 0x00f7ede6, 0x00f4ecf0, 0x00fcf3fb, 0x00fdfbfc, 0x00f9f9f9, 0x00f3f4fc,
- 0x00e5edf9, 0x00d7e0f3, 0x00c0c6e7, 0x00a0acd1, 0x007e89bc, 0x00566e98, 0x00556b93, 0x008da1c1, 0x00e4ecfc, 0x00f6f9fd, 0x00f8f6f9, 0x00fdfafb, 0x00fdfaf7, 0x00fbfbf9, 0x00f7f9f9, 0x00f3f8f9,
- 0x00f2eff6, 0x00efedf3, 0x00e7e4e8, 0x00dfdfe1, 0x00caccd5, 0x00c2c5d3, 0x00c3c3d4, 0x00d5d4e4, 0x00e0dcd5, 0x00ebe6da, 0x00ece6dc, 0x00ece5eb, 0x00f7f9ef, 0x00d8e2c9, 0x00819264, 0x00678345,
- 0x0068893b, 0x00678a3a, 0x00668838, 0x0066883b, 0x0066853d, 0x00668740, 0x0064853b, 0x005f8636, 0x005e8433, 0x00698235, 0x007d843e, 0x009d9754, 0x00c7b57a, 0x00d2c189, 0x00e3d39c, 0x00ece0ab,
- 0x00f6f0b1, 0x00f8f0bd, 0x00fcf4cc, 0x00ddd5b3, 0x00869360, 0x005f7f38, 0x005b8431, 0x005e8833, 0x00657e44, 0x00959f7e, 0x00e0ebda, 0x00dff5ee, 0x00fcdbed, 0x00b69eba, 0x00343761, 0x000d316a,
- 0x00252e70, 0x0025295c, 0x00202950, 0x0017294c, 0x00241564, 0x002d254f, 0x009996ac, 0x00e6e2ee, 0x00ebeced, 0x00e5e6e4, 0x00ecede7, 0x00ebede2, 0x00eaeae7, 0x00e7e7e9, 0x00e1e0e6, 0x00d7d6dc,
- 0x00d3d8d0, 0x00c6cbcd, 0x007d828d, 0x002d344d, 0x000e143f, 0x001c2255, 0x00242b63, 0x0025306d, 0x00253670, 0x00273971, 0x002d3e72, 0x0034436b, 0x003a447b, 0x003a467f, 0x00424d85, 0x00576696,
- 0x005f7384, 0x00354846, 0x00051d0d, 0x000c2006, 0x00071905, 0x000b1d05, 0x00071b05, 0x000b1f0a, 0x00061404, 0x00182415, 0x008d968a, 0x00f2f5ee, 0x00fcfdf8, 0x00fefcfc, 0x00fcfbff, 0x00fef9ff,
- 0x00b9aca4, 0x00493a2c, 0x00371d0c, 0x004b2b0f, 0x006f3910, 0x00763d0b, 0x00773b0c, 0x007b4821, 0x00c2ad9c, 0x00faf3ed, 0x00f9fcfa, 0x00f9fff5, 0x00fdfdfd, 0x00fffbfc, 0x00b2a8b9, 0x004b495b,
- 0x004d515e, 0x00686266, 0x007a6260, 0x008a584e, 0x009e4644, 0x00ad4029, 0x00a9391d, 0x0099371f, 0x00702c21, 0x0049201b, 0x00341d1f, 0x00383338, 0x00a0a5a5, 0x00e6ecec, 0x00f6fbf5, 0x00dce1d8,
- 0x0062a8e5, 0x00548fd4, 0x00739ee4, 0x00b4d1f3, 0x00f7ffff, 0x00fafdf1, 0x00fffaee, 0x00fef4fb, 0x00faf7fd, 0x00f6fbf3, 0x00f6fbf1, 0x00f9fafb, 0x00f9faf8, 0x00f8f9f9, 0x00f9f9f9, 0x00fafcfb,
- 0x00fcfafa, 0x00fbfcfa, 0x00edeeed, 0x00dadadc, 0x00d6d4d5, 0x00dedcd1, 0x00ccb8a3, 0x00bf826c, 0x00df674d, 0x00e8694a, 0x00d66743, 0x00c16a43, 0x00a56d4f, 0x009c614c, 0x009b5749, 0x00a95750,
- 0x00a8543d, 0x009e4937, 0x00923a2b, 0x008d3123, 0x00922a1a, 0x00972b1a, 0x00993021, 0x00a03d33, 0x00a86067, 0x00b37987, 0x00b390a0, 0x00a8a0af, 0x00a19fac, 0x00949aa2, 0x007a868b, 0x00637378,
- 0x005a676a, 0x00646e70, 0x00818388, 0x00959095, 0x00968c91, 0x008e8680, 0x00968d80, 0x00a3958a, 0x00b2a3a0, 0x00bdb3af, 0x00c3c1bc, 0x00bac2bc, 0x00b1bbbb, 0x00b0b2b8, 0x00b2acb7, 0x00b5a9b9,
- 0x00b6b6b7, 0x00bebcbe, 0x00bfb8ba, 0x00bab3b3, 0x00ada3a4, 0x009f9697, 0x00958b8e, 0x00877f84, 0x006a6772, 0x0054515d, 0x00403d46, 0x00332d30, 0x00302b2c, 0x00312c2e, 0x00322f3a, 0x00342e47,
- 0x00343565, 0x002f326b, 0x00262e6c, 0x0014215f, 0x000b1d54, 0x00182147, 0x0050536d, 0x008c8d9a, 0x00b2aeaa, 0x00a29e94, 0x00807a6e, 0x00726761, 0x00786b6c, 0x007e7173, 0x00786d6b, 0x00736963,
- 0x006b5f5b, 0x00645955, 0x005a504b, 0x00524a44, 0x0047403b, 0x003d3732, 0x003d3832, 0x004b4640, 0x0063615a, 0x0079766f, 0x008c8a87, 0x00969695, 0x00bfbebc, 0x00efefea, 0x00fffffb, 0x00fefffb,
- 0x00fffefe, 0x00ffffff, 0x00d0d0d1, 0x005e5c63, 0x0019161f, 0x001f2836, 0x002d3a4b, 0x0039465a, 0x003e4961, 0x00434c64, 0x004a536a, 0x004e5568, 0x00585864, 0x005f5c60, 0x0066605d, 0x006a615a,
- 0x00656055, 0x00666058, 0x0066605a, 0x00615d58, 0x005d5c5d, 0x0058595a, 0x0057575b, 0x004f4f55, 0x00706e76, 0x00b9b4bb, 0x00f0e8f1, 0x00efdce4, 0x00aebfc9, 0x006c94c3, 0x004d7cbd, 0x005074b0,
- 0x003a88c9, 0x004d87e2, 0x007681d7, 0x00c18eb5, 0x00e6e8ca, 0x00edf2eb, 0x00e7e9f0, 0x00e3e3e8, 0x00dfe0e5, 0x00dde0e8, 0x00e5e4e9, 0x00e5e8eb, 0x00e6e8e9, 0x00e6eaee, 0x00ebecf0, 0x00ebedf5,
- 0x00f1f4e5, 0x00f0f6f3, 0x00ecf8fb, 0x00ddeffe, 0x00b4cef8, 0x008eafe0, 0x0090b6e9, 0x009ec5f5, 0x00b0d2fa, 0x00bddef8, 0x00d4eafc, 0x00efeef6, 0x00f8f9fe, 0x00f1f3fc, 0x00edeff7, 0x00f0f2f6,
- 0x00ecedf0, 0x00eeeff1, 0x00edeff0, 0x00eceeec, 0x00eaefed, 0x00ebeee4, 0x00d9dad5, 0x00c9c6d3, 0x00cfcdd6, 0x00d3d4ca, 0x00c6c5b0, 0x00b4b59a, 0x00c2beb2, 0x00dedacd, 0x00e1ddc3, 0x00d3d2a0,
- 0x00cfbda5, 0x00decfb7, 0x00eadec8, 0x00ddd7c1, 0x00dddcda, 0x00e7ebee, 0x00eff3fb, 0x00e1e5f0, 0x00848687, 0x003d3d37, 0x003b3731, 0x00423b39, 0x00493f43, 0x004e4446, 0x0052464a, 0x0056474b,
- 0x00594844, 0x00614c45, 0x006e5347, 0x00795845, 0x00805f45, 0x00856043, 0x00845c41, 0x007f553c, 0x007c4f38, 0x007d4d34, 0x00814b30, 0x00884c2c, 0x00984d27, 0x00a75428, 0x00b35a29, 0x00ba5c28,
- 0x00b1aeb0, 0x00110e0e, 0x000e0c0e, 0x00121010, 0x00221d22, 0x00332e35, 0x0036303a, 0x00343039, 0x0037343f, 0x002f2c36, 0x00181520, 0x000a0a0e, 0x0006050c, 0x0009060c, 0x000d0a14, 0x00120f1a,
- 0x00191427, 0x001a182a, 0x00261f36, 0x001f1931, 0x0019142c, 0x0017163d, 0x001f234f, 0x00272b56, 0x00222754, 0x001d224d, 0x00222651, 0x00282d57, 0x002d325d, 0x00212753, 0x00232953, 0x00333a63,
- 0x00644e64, 0x00725f72, 0x00756373, 0x00776774, 0x008e838e, 0x00a9a2a8, 0x00c3bdc0, 0x00d3cfd0, 0x00e6e5e2, 0x00eeeee7, 0x00dbdbda, 0x00999c9f, 0x002f313c, 0x00111223, 0x00201e35, 0x00727189,
- 0x00c3c2db, 0x00c8c8dc, 0x00cbcadb, 0x00d0d0dc, 0x00d3d5da, 0x00c4c5cc, 0x00b4b3bb, 0x00b8b6c0, 0x00c3c1c9, 0x00c4c2ca, 0x00c4c3cc, 0x00c1c1c9, 0x00c5c2cc, 0x00c9c7d1, 0x00ccccd5, 0x00ceced6,
- 0x00d0d0d8, 0x00d4d3db, 0x00dad8e1, 0x00dddce4, 0x00dedde6, 0x00dcdae3, 0x00dbd9e2, 0x00d9d7e0, 0x00d1d1d9, 0x00c8c9d1, 0x00c3c0c6, 0x00c0b7bc, 0x00b8aeb6, 0x00b1a7af, 0x00b1a6ab, 0x00b1a7ad,
- 0x00b9afb7, 0x00b9afb4, 0x00b9afb5, 0x00bab1b7, 0x00beb3b9, 0x00bcb2ba, 0x00bdb3bb, 0x00c1b6bc, 0x00c7bdc4, 0x00ccc2ca, 0x00cfc5cd, 0x00c6bcc5, 0x00bab0ba, 0x00b7adb6, 0x00beb4bc, 0x00c1b7c0,
- 0x00c5bec5, 0x00cac4ca, 0x00d4cdd5, 0x00ddd6de, 0x00e1dae2, 0x00e2dae3, 0x00e1d9e1, 0x00dfd6de, 0x00dbd3d9, 0x00d6cdd6, 0x00cfc9d4, 0x00cac8d5, 0x00d2cfde, 0x00dcd9e7, 0x00e0deea, 0x00dcdae6,
- 0x00d4d2df, 0x00cecdd9, 0x00cfceda, 0x00d1d0dc, 0x00d3cfde, 0x00d5d3d9, 0x00f1f1ef, 0x00fefefc, 0x00fdfcfd, 0x00fcfbfc, 0x00fdfffd, 0x00f0f4f1, 0x00747676, 0x000f0f0f, 0x000e1411, 0x00131b17,
- 0x00152518, 0x00152618, 0x0016271a, 0x0016271a, 0x00132517, 0x00132415, 0x00122414, 0x00132416, 0x00142518, 0x0015261a, 0x00162417, 0x001c2717, 0x00222e40, 0x00273666, 0x00324287, 0x00364a9f,
- 0x003951a4, 0x003953a3, 0x004964b8, 0x005671ce, 0x006075de, 0x005f76d7, 0x005d71cf, 0x005e70d1, 0x005866ba, 0x005e68a9, 0x00787fa9, 0x00818797, 0x008c8b88, 0x008e868b, 0x009e92a1, 0x00baa8c3,
- 0x00c3bac3, 0x00b6abb5, 0x00ada4ac, 0x00b0a6ae, 0x00b3a6ae, 0x00b9acb3, 0x00bfb0b7, 0x00c1b1b7, 0x00c0b3b8, 0x00bfafb5, 0x00bcadb0, 0x00baaeae, 0x00c4b8ba, 0x00c9bdc0, 0x00c8bcc0, 0x00c9bcc1,
- 0x00d4cbcf, 0x00d9cfd4, 0x00d9ccd6, 0x00d4c9d2, 0x00dcd2db, 0x00dbd9dd, 0x00e1dae0, 0x00e7d8df, 0x00edd8e1, 0x00e8dbe4, 0x00e5e2ed, 0x00e4ebf3, 0x00efeaeb, 0x00f9e9dd, 0x00fac1b4, 0x00d5725f,
- 0x00ab818c, 0x00cac3dc, 0x00bdd0f9, 0x00628dd6, 0x002e54af, 0x002f56b5, 0x00335ec2, 0x002b60c3, 0x007694c4, 0x00d0d1d8, 0x00f7ede2, 0x00deded9, 0x00989894, 0x007b797d, 0x007e7e83, 0x00807f85,
- 0x0084828c, 0x00838188, 0x00848287, 0x00818183, 0x00807f81, 0x007f8078, 0x007e7e70, 0x007e7b6e, 0x007e776e, 0x007d746c, 0x00817671, 0x007f7672, 0x0082797a, 0x00837d83, 0x0089858f, 0x008d8996,
- 0x0092929e, 0x009c9ba6, 0x009d9ba4, 0x009f9ea3, 0x00a3a1a4, 0x009a9999, 0x00adabac, 0x00e4e3e2, 0x00fefdfe, 0x00ffffff, 0x00fcfdfd, 0x00fcfef9, 0x00ebebeb, 0x00a3a3a2, 0x006c6b6a, 0x00807e7c,
- 0x004c4d4b, 0x00141614, 0x000a0b0a, 0x00050603, 0x00040403, 0x00020203, 0x000a0707, 0x00120e09, 0x001d1809, 0x00251c09, 0x002b1f09, 0x00312007, 0x00412817, 0x00614437, 0x0094756d, 0x00ae8d88,
- 0x00b5a89a, 0x00bbaa9f, 0x00b29d94, 0x00a18983, 0x00806465, 0x005f4346, 0x003a2224, 0x001e0b0d, 0x000a0504, 0x00060604, 0x00150f0d, 0x002d1c17, 0x00433428, 0x004d3f2f, 0x00564b37, 0x00554b36,
- 0x00605747, 0x00938b7d, 0x00dacfcc, 0x00e1dbdd, 0x00e3d9e3, 0x00e4c5b7, 0x00ddb498, 0x00e4b799, 0x00f3c4a1, 0x00f8c49f, 0x00f9c59d, 0x00facaa3, 0x00f7cfac, 0x00f7d7ba, 0x00fadfc9, 0x00f8e6d1,
- 0x00f9e7d5, 0x00fbeedf, 0x00fef3ea, 0x00fcf7eb, 0x00fffafa, 0x00f9faf8, 0x00faf9fa, 0x00fbfbfc, 0x00fffcff, 0x00fefcfd, 0x00fefbff, 0x00fbfefa, 0x00fbfdfc, 0x00fafafc, 0x00fcfbfc, 0x00fffefe,
- 0x00fbfafb, 0x00fbfcfa, 0x00fefefc, 0x00fdfef9, 0x00fefdf9, 0x00fdfdff, 0x00f5f5f8, 0x00f2f2f4, 0x00fbfdfc, 0x00fcfefd, 0x00fcfdfe, 0x00fdfeff, 0x00e9e9e9, 0x00b4b3b3, 0x00818080, 0x00787876,
- 0x00737472, 0x006f706f, 0x006b6b6b, 0x00686868, 0x00676767, 0x00686767, 0x006b6b6a, 0x006f6f6e, 0x00747371, 0x007a7a78, 0x0085837d, 0x00948c76, 0x008693a7, 0x006f8dc1, 0x005684d1, 0x004884e2,
- 0x004185e1, 0x003d82d9, 0x003a82d9, 0x003a83dc, 0x003184e4, 0x003881de, 0x003b7fdb, 0x003a7cda, 0x00367bd2, 0x003378d1, 0x003174cf, 0x002d6eca, 0x002968c3, 0x002764c0, 0x002764c1, 0x002763c1,
- 0x00265cbc, 0x00265cbb, 0x00295ebb, 0x00295db7, 0x002354ae, 0x001e4ca5, 0x001b46a0, 0x00163f9a, 0x000f3991, 0x000f3890, 0x00153c96, 0x0009328f, 0x00082986, 0x00183993, 0x00254aa4, 0x00224aaa,
- 0x001d4cb4, 0x001d53b8, 0x002356bc, 0x00254fb2, 0x002f4fa5, 0x00586ba8, 0x00b0baeb, 0x00b9c1fa, 0x006e79b8, 0x00455681, 0x00a7bce3, 0x0093acd9, 0x003753b0, 0x002f52ad, 0x002f58ad, 0x003363a2,
- 0x007a81ba, 0x0099a5dc, 0x009babe7, 0x009aaef0, 0x00627fc4, 0x003d55a0, 0x005163af, 0x008fa0e4, 0x00afb9ed, 0x00a5acd4, 0x007a7ea7, 0x008f92c1, 0x00a6c2f5, 0x0074a1e5, 0x003c70c1, 0x003f76d3,
- 0x004d7ada, 0x00385aa5, 0x005d6faa, 0x00bcc8e4, 0x00f8fffa, 0x00f9faf7, 0x00fffcfb, 0x00fafbf7, 0x00f1fcf2, 0x00c5ddb8, 0x00829b62, 0x0081984d, 0x00a5aa52, 0x00c0b765, 0x00d0b76f, 0x00ddb972,
- 0x00d4b871, 0x00ac8c3f, 0x009e7b34, 0x00dab678, 0x00bea994, 0x00847f84, 0x00535472, 0x00868eb6, 0x00e2e5f8, 0x00f3f1f0, 0x00f6ede9, 0x00f4f1ed, 0x00f7f5f3, 0x00f9f5f5, 0x00fcfaf9, 0x00f7f9f8,
- 0x00f8fdfc, 0x00f4fcfd, 0x00f6fdff, 0x00f0f5fc, 0x00dbe3f8, 0x00c1d1eb, 0x00bccde9, 0x00d3e1f8, 0x00f0f6fd, 0x00f7f7fe, 0x00fbf6fb, 0x00fdf7f7, 0x00fcfaf8, 0x00f9fbfb, 0x00f9fbfd, 0x00f5fafa,
- 0x00fcf8fe, 0x00fbfafe, 0x00f9f9fc, 0x00f4f7f8, 0x00d3d9e3, 0x009196a9, 0x007c7f98, 0x00a7acc4, 0x00d0d1da, 0x00dddfdc, 0x00e9e8e5, 0x00f3efef, 0x00f6f8ea, 0x00cedaba, 0x00768a5b, 0x00698745,
- 0x00698b3c, 0x00688b3a, 0x00678c3b, 0x00678a3d, 0x00658940, 0x00668840, 0x0067883f, 0x0061873b, 0x005f8435, 0x00698437, 0x008b9850, 0x00c7c583, 0x00f9e8b2, 0x00faecba, 0x00fef4c3, 0x00fdf7c7,
- 0x00fdf4b9, 0x00f9f1bf, 0x00f8f0c9, 0x00dcd7b4, 0x00899965, 0x00618138, 0x005a822e, 0x005d8832, 0x00697d49, 0x009ba584, 0x00edf3df, 0x00eef8ee, 0x00efd0e2, 0x009687a5, 0x00283158, 0x0005244f,
- 0x001a1f57, 0x00152049, 0x00122144, 0x00082644, 0x0022104a, 0x001b1531, 0x00666071, 0x00b6b5c1, 0x00d9d8db, 0x00cecfcc, 0x00d0d1ca, 0x00cdcfc5, 0x00c8c9c3, 0x00c3c4c2, 0x00b7b7ba, 0x00a6a6ab,
- 0x0090958f, 0x00848b88, 0x0061666e, 0x00242b3a, 0x00090f32, 0x000c133b, 0x00151d4f, 0x001b2a5b, 0x002d3d6e, 0x003a4c77, 0x00495b8c, 0x0058699a, 0x006572b4, 0x007382c2, 0x008490d2, 0x0099a7de,
- 0x00a1afca, 0x006b7a83, 0x000d1e19, 0x000c1c0b, 0x000a1b0a, 0x00091e0a, 0x00091d0b, 0x000c1d0e, 0x00071306, 0x002e382b, 0x00b3bab2, 0x00f8fbf8, 0x00fbfaf9, 0x00fdfafc, 0x00fefcff, 0x00f9f5f8,
- 0x009e8f86, 0x00372417, 0x003a200d, 0x004b290f, 0x006d380e, 0x0075390c, 0x00773b0d, 0x00714018, 0x00b59a8a, 0x00f5ece6, 0x00fcfdf9, 0x00fafcf5, 0x00fefcfc, 0x00fef9fd, 0x00c2b7c3, 0x00595361,
- 0x004d4e53, 0x006b5f5e, 0x00806058, 0x008e544b, 0x00a0493e, 0x00a9412c, 0x00a23920, 0x00933522, 0x006b3126, 0x004f2922, 0x00412e2e, 0x00403d3f, 0x00868d8e, 0x00dde2de, 0x00f7fcfa, 0x00e9ece3,
- 0x0078b7ed, 0x004f86c9, 0x006892d6, 0x00a6c3f0, 0x00f2fdfc, 0x00f9fdf1, 0x00fefaf0, 0x00fef5fa, 0x00fdf9fe, 0x00f9fef5, 0x00f8fef4, 0x00fafbfd, 0x00fdfcfd, 0x00fdfdfd, 0x00fcfbfb, 0x00fbfbfb,
- 0x00faf8f9, 0x00eceeec, 0x00dad8d8, 0x00cfcfd0, 0x00cdcdcd, 0x00dadacf, 0x00d7c0b1, 0x00ca8e7c, 0x00d86951, 0x00de6a4d, 0x00d16b4b, 0x00bb6d4b, 0x009b664d, 0x008d5644, 0x008b4a3e, 0x00984942,
- 0x009c4731, 0x00964231, 0x00923d30, 0x00964032, 0x00a44431, 0x00ae4733, 0x00ac4937, 0x00ad4d41, 0x00a85b5f, 0x00aa6976, 0x00a47b8b, 0x00928997, 0x0085838f, 0x0073767d, 0x00545e62, 0x003f4d51,
- 0x00394348, 0x00474f51, 0x006c6e72, 0x00878288, 0x008e8489, 0x0089807c, 0x0091877e, 0x009e8f86, 0x00ae9b99, 0x00b9b0ac, 0x00c4c1bc, 0x00b9bfba, 0x00a9b2b0, 0x00a1a3a6, 0x009d969d, 0x009d909a,
- 0x009f9c97, 0x00aba7a2, 0x00aea7a1, 0x00ada89f, 0x00a79f99, 0x0097908c, 0x008c8786, 0x007f7d7f, 0x0061636b, 0x00484b55, 0x00363740, 0x002c232e, 0x00251f20, 0x00282223, 0x00302c30, 0x00352f3c,
- 0x002c2c50, 0x00212554, 0x00181f57, 0x000b174f, 0x0004154a, 0x00161f43, 0x005c6177, 0x009b9fa8, 0x00b8b6b2, 0x00a49f95, 0x007d746a, 0x006f6460, 0x00786c6e, 0x007d7071, 0x00726965, 0x006c665f,
- 0x00645955, 0x005d524e, 0x00544a45, 0x004c433d, 0x00413935, 0x0037302c, 0x0038322c, 0x00433f39, 0x005d5853, 0x0075716a, 0x00878581, 0x00909090, 0x00b5b5b4, 0x00e5e5e2, 0x00fefffa, 0x00fafcf7,
- 0x00fcfbf9, 0x00fffdfe, 0x00dcdcde, 0x00757579, 0x00191822, 0x001c2536, 0x002c3951, 0x00384361, 0x003d4968, 0x00414c6a, 0x0045516e, 0x004a526c, 0x00515467, 0x005a5864, 0x00615c62, 0x00645c5e,
- 0x00636058, 0x0065615a, 0x0065615d, 0x0063615d, 0x00625f61, 0x005f5d5f, 0x005c5a5f, 0x0057545b, 0x006e6d78, 0x00b0b0ba, 0x00f2eef6, 0x00eedfe9, 0x00c1bdc0, 0x007a90bc, 0x005579b7, 0x004e75b5,
- 0x003380c5, 0x004c7bd0, 0x008287ce, 0x00dba1b9, 0x00f2f5df, 0x00f6f7f3, 0x00f0f2f8, 0x00ebedf3, 0x00ebecf0, 0x00ebeef2, 0x00edeef4, 0x00eceef1, 0x00e8ebee, 0x00eaecef, 0x00ecebf0, 0x00ededf3,
- 0x00f4ede4, 0x00f3f0f2, 0x00f5f7f9, 0x00eff8fc, 0x00d8edfc, 0x00c5ddf7, 0x00c9e0fa, 0x00d3eafe, 0x00e2f8fd, 0x00e6fbff, 0x00e9f7fd, 0x00f2f6fd, 0x00fafbfc, 0x00f5f6fb, 0x00edeef5, 0x00edeff5,
- 0x00e9e8ef, 0x00e7e8ea, 0x00ebecef, 0x00e7edee, 0x00eeeeef, 0x00e7ebe3, 0x00cfd2c7, 0x00bfc0ba, 0x00c7c6c3, 0x00c0c1b3, 0x00afae98, 0x00adab8b, 0x00c2b998, 0x00d2c69e, 0x00c6b787, 0x00b4a76a,
- 0x00bba276, 0x00d1bc94, 0x00ddcca6, 0x00d3c7a8, 0x00ded8d2, 0x00f0eef4, 0x00f4f3ff, 0x00e4e5f6, 0x00838889, 0x003f443b, 0x00404036, 0x0046413a, 0x004b4440, 0x004e4945, 0x00504a4c, 0x00524b4f,
- 0x00544748, 0x005a4a47, 0x00655048, 0x00705549, 0x007a5c4b, 0x00805e47, 0x007e5a41, 0x0079533b, 0x007a5037, 0x007d4d33, 0x00834c30, 0x008b4c2c, 0x009c4e27, 0x00a85326, 0x00b35725, 0x00b95923,
- 0x00cdcac6, 0x00615e56, 0x00585850, 0x0061615a, 0x0073706e, 0x009a9895, 0x00a9a9a6, 0x00a7a7a2, 0x009f989c, 0x00888386, 0x00636264, 0x0057565b, 0x00505155, 0x00505157, 0x0055595f, 0x005b5d66,
- 0x00646171, 0x00616071, 0x00636275, 0x005d5c70, 0x005d5c6d, 0x0060607a, 0x00686984, 0x00686e86, 0x00696889, 0x00656786, 0x00676b86, 0x006d718d, 0x006d708d, 0x00676a86, 0x00727592, 0x008488a3,
- 0x00af959d, 0x00bda2a8, 0x00ceb5b8, 0x00dac9c6, 0x00f0e4e1, 0x00faf4ef, 0x00fbf6f0, 0x00faf3ea, 0x00fbf2ec, 0x00f1ebe0, 0x00cecac6, 0x009a9c9b, 0x0066696d, 0x00575861, 0x006c6b79, 0x00a9a8b8,
- 0x00dbd8ee, 0x00dbd9ea, 0x00dadae4, 0x00dcdde2, 0x00e0e2e3, 0x00dfdfe5, 0x00d6d5db, 0x00d6d4db, 0x00dbd6e1, 0x00d6d2dd, 0x00d5d5de, 0x00d7d7e0, 0x00d9d6df, 0x00dcdae2, 0x00dbdce2, 0x00dbdde1,
- 0x00e0dde9, 0x00e4e0eb, 0x00e7e3ed, 0x00e7e4ed, 0x00e9e8ef, 0x00e7e7ed, 0x00e4e4ea, 0x00e3e2e9, 0x00dfdce6, 0x00dad7e1, 0x00d5d1d8, 0x00d1cccf, 0x00cdc8cd, 0x00cec8cc, 0x00d1cacc, 0x00d4ced1,
- 0x00dcd2db, 0x00dad1d8, 0x00d3cfd3, 0x00d2ced0, 0x00d1ccd0, 0x00d2ccd2, 0x00d0cdd4, 0x00d5d0d7, 0x00ddd3dd, 0x00e0d8e2, 0x00e1d8e1, 0x00d7cfd6, 0x00cdc7ce, 0x00d0cbd1, 0x00d4ced4, 0x00d0ccd2,
- 0x00d7d0da, 0x00dcd6df, 0x00e3dee7, 0x00e7e3eb, 0x00e9e5ed, 0x00eae5ec, 0x00e7e4ea, 0x00e4e1e7, 0x00e8dee8, 0x00e2dbe4, 0x00dbd9e1, 0x00dadbe1, 0x00e3e1ea, 0x00e9e6f1, 0x00e8e7f1, 0x00e5e4ec,
- 0x00e3e0ea, 0x00dfdce7, 0x00dddce4, 0x00dddee3, 0x00dfdee7, 0x00e0dfe3, 0x00f4f5f3, 0x00fdfffd, 0x00fefcff, 0x00fefcff, 0x00fcfcfc, 0x00f4f7f5, 0x00757777, 0x000e100f, 0x000b140e, 0x00101b14,
- 0x0017231b, 0x0016251a, 0x0016271a, 0x00132518, 0x00112315, 0x00122416, 0x00112317, 0x00112418, 0x0016251a, 0x0016261c, 0x00172618, 0x00192515, 0x001a2935, 0x0021345b, 0x0030437b, 0x00354992,
- 0x004055a9, 0x00445bb0, 0x004b67bb, 0x005a76d0, 0x00637be6, 0x006684e3, 0x005e7fd4, 0x005f7dd7, 0x006173d2, 0x005d6aba, 0x006872ae, 0x00747ba1, 0x00838193, 0x00857d8b, 0x008d8595, 0x00aca2b1,
- 0x00c4bbce, 0x00bbb0c2, 0x00b6afbe, 0x00b9b2bf, 0x00b3aab6, 0x00b7afb9, 0x00bfb6be, 0x00c1b8bf, 0x00c5b9c1, 0x00c4b5c1, 0x00c5b8c0, 0x00c8bec0, 0x00cdc2c6, 0x00c6bcc1, 0x00c6bcc0, 0x00cdc2c8,
- 0x00d8cbd5, 0x00d4c7d1, 0x00d3c6d0, 0x00d7ccd5, 0x00dcd0db, 0x00d6d6dc, 0x00d9dadc, 0x00e3d7da, 0x00f6dce6, 0x00f4e1eb, 0x00f0e9f4, 0x00edeffd, 0x00ededf3, 0x00f8ebe6, 0x00f6d5ca, 0x00e2ad9a,
- 0x00e7bcb8, 0x00faebf0, 0x00e5f0ff, 0x008fb2e6, 0x003d60b1, 0x003759b5, 0x002f5ab5, 0x003d6ac3, 0x009aadd9, 0x00ded9e2, 0x00f2eadd, 0x00e0e1da, 0x009fa09a, 0x007e7d7a, 0x00808382, 0x00838483,
- 0x0089858d, 0x0087838b, 0x00878689, 0x00848685, 0x00858485, 0x0084857b, 0x00818571, 0x00818270, 0x00878172, 0x00877d70, 0x00857d70, 0x00827b71, 0x00837c76, 0x00827d7c, 0x00888688, 0x008c888d,
- 0x0093919b, 0x009c9aa2, 0x009a999a, 0x00a09f9f, 0x00adaea9, 0x00a5a6a3, 0x00b5b7b2, 0x00e6e8e4, 0x00fffdff, 0x00fefcff, 0x00faf9f9, 0x00fcfdf9, 0x00e2e3e1, 0x00949594, 0x006f706c, 0x00898986,
- 0x005f5d5e, 0x001c1a1b, 0x00070705, 0x00050602, 0x00050503, 0x0007070b, 0x000a0a0d, 0x000d0c0a, 0x0016120a, 0x001a1307, 0x001b1204, 0x00211404, 0x003d291e, 0x00665046, 0x0099827b, 0x00b09791,
- 0x00afa59b, 0x00b1a49f, 0x00aa9896, 0x00a38f8d, 0x008f7b7b, 0x007b6869, 0x00615252, 0x004e4344, 0x004a4349, 0x004e4f52, 0x00666564, 0x007f7472, 0x00938b85, 0x009f9990, 0x00b0aa9e, 0x00b3aea1,
- 0x00c6beb9, 0x00d4cdc8, 0x00edeceb, 0x00f4f2f8, 0x00f8f3fc, 0x00f9f3f3, 0x00f9f2eb, 0x00fdf7ec, 0x00fff6ec, 0x00fcf3e4, 0x00fef7e5, 0x00fdf8e8, 0x00fcf8ee, 0x00fefdf4, 0x00fdfaf5, 0x00fcf9f9,
- 0x00fff4f3, 0x00fff8f5, 0x00fcfbf9, 0x00fdfdf9, 0x00fcfeff, 0x00f9ffff, 0x00f7fdfb, 0x00f6fcfa, 0x00fefcff, 0x00fefcff, 0x00fdfafc, 0x00f8fcfb, 0x00f5f9f6, 0x00f5f9f6, 0x00fafefa, 0x00fafcf7,
- 0x00fffcfa, 0x00fcfcf7, 0x00f9fdf5, 0x00fbfaf2, 0x00fafaf1, 0x00fdfcf9, 0x00f6f7f6, 0x00f5f6f3, 0x00fdfdfe, 0x00fefdfd, 0x00fbfbfc, 0x00fefdfd, 0x00e0e1e1, 0x00a7a6a8, 0x007a7c7d, 0x00737476,
- 0x006f6f71, 0x00686869, 0x00616162, 0x005d5e5f, 0x005c5d5e, 0x005c5c5d, 0x005f5f60, 0x00656466, 0x006e6d71, 0x00767476, 0x007f7f7b, 0x0088897f, 0x007a8fad, 0x00638bc9, 0x004d85d7, 0x004487e8,
- 0x004486e8, 0x004182de, 0x003d83d9, 0x003b82da, 0x003682e3, 0x003c81db, 0x003d81d6, 0x003b7dd4, 0x003b7adb, 0x003977d9, 0x003672d8, 0x00326dd4, 0x002d68ce, 0x002763c7, 0x002361c3, 0x002362c2,
- 0x00255bba, 0x002258b6, 0x001f56b3, 0x002359b4, 0x00265ab4, 0x002354ad, 0x001b49a1, 0x0017439a, 0x001a3f9a, 0x0011368d, 0x00082d83, 0x000e318a, 0x00103088, 0x00193893, 0x001c42a0, 0x001b4aae,
- 0x00174ab8, 0x001e4fb8, 0x002350b0, 0x003859b0, 0x00606eb8, 0x007988b9, 0x00aabfe7, 0x00a4b1f2, 0x005660a8, 0x004e5c96, 0x00a8bdee, 0x008ea4d9, 0x003550a3, 0x003a58ab, 0x005277bd, 0x00648fbe,
- 0x00a0a0cf, 0x00b2b4ed, 0x00a9afed, 0x00a7aefa, 0x00727ec6, 0x00535f9e, 0x007f8abd, 0x00a6b1d8, 0x00aeaed6, 0x00b6b2de, 0x008789b7, 0x00435a87, 0x005e83c1, 0x0079a6f0, 0x005a8ae4, 0x004472d9,
- 0x004e6bcd, 0x005a6eb9, 0x00b0c0e9, 0x00e5f2f7, 0x00eefeeb, 0x00f9fbf6, 0x00fbf9fb, 0x00fafefb, 0x00f7f9ed, 0x00c6d2aa, 0x008f9c5c, 0x00909a45, 0x00b6ac4f, 0x00ceb561, 0x00dcb36c, 0x00ebb774,
- 0x00d5b164, 0x009f7729, 0x00ae8836, 0x00e3bc70, 0x00bba376, 0x008d816e, 0x00726f6e, 0x00adb2c5, 0x00ededff, 0x00f4ebf3, 0x00eee9ea, 0x00f1f1e4, 0x00f6f5e9, 0x00fbf8ee, 0x00f9faec, 0x00fbfcf0,
- 0x00fefcf8, 0x00fbfbfc, 0x00fafcfc, 0x00fbfbfd, 0x00f6fcff, 0x00f3fbff, 0x00f2fcff, 0x00f2fbfe, 0x00faf7ff, 0x00faf7fd, 0x00fcf7f8, 0x00fef7f5, 0x00fdfbf9, 0x00f9fbfb, 0x00f7fafe, 0x00f3fbfe,
- 0x00fdf7ff, 0x00f8f7ff, 0x00f6f7fb, 0x00f6fbfd, 0x00d2dbec, 0x00737b96, 0x0039405f, 0x005d6787, 0x00a1a4be, 0x00c4cad8, 0x00ebf1f1, 0x00f7f8f0, 0x00f3f9e3, 0x00c3d4ac, 0x0079925a, 0x006a8a45,
- 0x006e8e45, 0x006d8f40, 0x00688f3c, 0x006b8c3f, 0x006a8c42, 0x0065883e, 0x00668c3d, 0x00638d3b, 0x00618a3b, 0x0065853a, 0x007c9148, 0x00c0c586, 0x00fcf1c1, 0x00fef2c6, 0x00fff5cb, 0x00fbf7cb,
- 0x00fff4be, 0x00fdf2c4, 0x00fcf3cc, 0x00e2ddba, 0x008b9c66, 0x00648139, 0x00628836, 0x005b8631, 0x00738250, 0x00afb296, 0x00faf7e3, 0x00f8f2de, 0x00c3b0c8, 0x0059587a, 0x001b2b4f, 0x000a203c,
- 0x00181139, 0x000b133a, 0x00021b37, 0x00001f37, 0x00210f2a, 0x00170f1c, 0x00333437, 0x00737677, 0x00aaa9a5, 0x00a7a7a0, 0x009d9e93, 0x0095988a, 0x00858681, 0x007f807c, 0x00666765, 0x004b4b4e,
- 0x002e2f29, 0x00242526, 0x00101216, 0x00060b17, 0x00040c25, 0x00061030, 0x000c183b, 0x00112144, 0x00202e55, 0x002d3f60, 0x003b517a, 0x004f62a4, 0x006272bb, 0x007888d2, 0x008997dc, 0x009aaae3,
- 0x00c5cdf0, 0x008c95a8, 0x000a1719, 0x000b1610, 0x000d1a11, 0x000b1c10, 0x000b1e0e, 0x0007190c, 0x000b140f, 0x00444b46, 0x00d0d7d5, 0x00fafcfd, 0x00f9f8f9, 0x00fefbfc, 0x00fffefd, 0x00edece9,
- 0x0088746a, 0x00321b0f, 0x003a200c, 0x0049270b, 0x006a370b, 0x00723508, 0x00733908, 0x006b3b0e, 0x00a88b7a, 0x00efe5df, 0x00fdfdf9, 0x00fcfcf7, 0x00fffcfd, 0x00fdf6fa, 0x00d1c5cb, 0x006b6367,
- 0x0055474a, 0x00705552, 0x007f5647, 0x00894d3b, 0x009c4630, 0x009e402a, 0x00913c22, 0x00833b21, 0x0068352e, 0x00512e2b, 0x00473932, 0x004e4b4b, 0x007a8383, 0x00cbd3d2, 0x00f9fdfa, 0x00f6fbf3,
- 0x009dd0f2, 0x005786c6, 0x005682c4, 0x008aace7, 0x00e3f6fa, 0x00f1fbf1, 0x00f7f7ef, 0x00fef8fc, 0x00fffaff, 0x00fafbf6, 0x00f8fdf3, 0x00fafcfc, 0x00fefdfb, 0x00fbfbf9, 0x00f7f8f5, 0x00f3f3f3,
- 0x00eae8ea, 0x00dbdadb, 0x00d0cdce, 0x00cdcecd, 0x00cccbcc, 0x00d6d5cf, 0x00dac8bd, 0x00c9968b, 0x00cb6957, 0x00ce6750, 0x00c2674f, 0x00ae6850, 0x00855745, 0x00754539, 0x00743c34, 0x007f3b36,
- 0x00953c2d, 0x00934031, 0x00964639, 0x009d5242, 0x00ae5943, 0x00b95b43, 0x00b75942, 0x00b65743, 0x00ab5457, 0x00a55663, 0x0092616e, 0x00776b76, 0x00615b66, 0x004b484f, 0x002e3334, 0x0021292a,
- 0x0025282c, 0x00303135, 0x00555556, 0x00767473, 0x00898084, 0x008b807d, 0x0093877d, 0x009f8f86, 0x00ae989a, 0x00bbaeab, 0x00c7c2bc, 0x00bdc2b9, 0x00acb3ab, 0x00999d98, 0x00878483, 0x00837779,
- 0x008f8478, 0x009a8f83, 0x009b9081, 0x0098907e, 0x00988f81, 0x008e887c, 0x007f7d74, 0x006d706b, 0x00565c61, 0x00414b51, 0x00373a45, 0x00332a3a, 0x0030292c, 0x00312e2a, 0x00343129, 0x0034312b,
- 0x002b273b, 0x001c1b3e, 0x00111743, 0x00091347, 0x0006154b, 0x001d2445, 0x00696e7f, 0x00a1a5ad, 0x00b2aeab, 0x009a958c, 0x00726b62, 0x006c6360, 0x00766b6e, 0x007c7172, 0x00706763, 0x006e675e,
- 0x006c5e5f, 0x00645859, 0x005b4f4d, 0x004e4441, 0x00403937, 0x00342e2a, 0x00322d26, 0x0037342d, 0x0058504e, 0x0076706a, 0x008e8b88, 0x009c9d9e, 0x00bebebf, 0x00e8e8e5, 0x00fdfff9, 0x00fafcf5,
- 0x00fbfaf6, 0x00fffcfe, 0x00e2e2e4, 0x0088888c, 0x00202029, 0x001c263b, 0x00293856, 0x00354468, 0x003f4a75, 0x003f4c74, 0x00455177, 0x004a5374, 0x004f546c, 0x00565567, 0x005a5763, 0x00605b62,
- 0x00635e5e, 0x00666160, 0x00656260, 0x0063625e, 0x00626160, 0x00626263, 0x005d5d62, 0x0059595f, 0x006d6c77, 0x00acacb5, 0x00f3eff8, 0x00f5e5f0, 0x00ceacaa, 0x00817ea0, 0x005b76af, 0x005182c3,
- 0x00357bc2, 0x004e6fba, 0x008b83b4, 0x00ebacb1, 0x00f2fae9, 0x00f4f7f6, 0x00f0f3f6, 0x00eaeef3, 0x00ebecf3, 0x00ebecf2, 0x00ebebee, 0x00eae8ef, 0x00e5e8ed, 0x00e7e9ed, 0x00e9ebeb, 0x00eceef2,
- 0x00fbeaec, 0x00faeef2, 0x00f3f0f1, 0x00f2f5f7, 0x00ebf4f8, 0x00e8f3f9, 0x00eaf4fb, 0x00edf4fb, 0x00f3f5ff, 0x00f5f4ff, 0x00f4f3ff, 0x00f4f8fd, 0x00f6f8fe, 0x00f2f5fb, 0x00ebecf2, 0x00eae9ee,
- 0x00e6e5ec, 0x00e5e5ea, 0x00e7e8ec, 0x00e8eaee, 0x00ebebf0, 0x00e4e5e2, 0x00cccfc4, 0x00c2c8b3, 0x00cac7b7, 0x00b9b7aa, 0x00a29f8c, 0x00a0997d, 0x00b9ad6e, 0x00c1af65, 0x00a18839, 0x00856a1f,
- 0x00926b30, 0x00ac8c52, 0x00c9ae77, 0x00d3bd94, 0x00ede0d0, 0x00f8eff2, 0x00f7f1fb, 0x00e6e6f1, 0x008a8d93, 0x00454a43, 0x0044473b, 0x0048473c, 0x00494841, 0x004d4c48, 0x004c4a4d, 0x004b4a4f,
- 0x00524953, 0x00574b50, 0x005d4e4f, 0x00675150, 0x00725953, 0x00795b4d, 0x00775845, 0x0074523e, 0x007a4f38, 0x007d4c34, 0x00834b2e, 0x008e4e2b, 0x009f5125, 0x00aa5321, 0x00b4551e, 0x00bd581f,
- 0x00ebf2e4, 0x00d5dace, 0x00dadad2, 0x00dbd9d1, 0x00dedfd8, 0x00f0f0eb, 0x00fdfaf7, 0x00f9f6f2, 0x00ebece5, 0x00dee0d9, 0x00d7d9d7, 0x00d6d8db, 0x00d4d6da, 0x00d5d6db, 0x00d9dadf, 0x00dcdde1,
- 0x00d3d9db, 0x00d0d7da, 0x00d5d9df, 0x00d6d7e2, 0x00d6d8e1, 0x00d8dae4, 0x00dddde8, 0x00dcddeb, 0x00d6d9e0, 0x00d5d8df, 0x00dadce4, 0x00dedfe8, 0x00dadce6, 0x00d9dbe5, 0x00e1e2ed, 0x00eaeaf5,
- 0x00f0ecdd, 0x00f4f2e2, 0x00fbf8eb, 0x00fffaf0, 0x00fff7ee, 0x00fff7f0, 0x00fff8f3, 0x00fff8f3, 0x00fafaed, 0x00f7f9e8, 0x00eff0e7, 0x00e4e4e3, 0x00dadadc, 0x00d5d3d9, 0x00e1dde5, 0x00ece8f5,
- 0x00f0f5f5, 0x00f0f4f5, 0x00f6f5f9, 0x00f6f5f7, 0x00f6f8f5, 0x00f8f9f9, 0x00f8f6fb, 0x00faf7fc, 0x00f4f5f6, 0x00f0f1f2, 0x00f3f3f7, 0x00f6f6fa, 0x00f6f5f8, 0x00f5f4f8, 0x00f5f4f9, 0x00f6f5fa,
- 0x00f1f3f4, 0x00f3f4f6, 0x00f8f6f9, 0x00faf7fb, 0x00f9f9fd, 0x00f8f8fd, 0x00f9f6fc, 0x00f9f5fb, 0x00f0f4f2, 0x00f1f2f2, 0x00f2f1f2, 0x00f4f1f2, 0x00f5f2f5, 0x00f7f5f7, 0x00f9f6fa, 0x00faf7fb,
- 0x00f3f4f3, 0x00f3f4f3, 0x00f6f3f4, 0x00f6f3f6, 0x00f5f4f7, 0x00f4f4f7, 0x00f6f2f7, 0x00f7f3f7, 0x00f3f2f3, 0x00f2f3f4, 0x00f4f3f6, 0x00f4f2f5, 0x00f0eff2, 0x00f1eff2, 0x00f5f1f6, 0x00f6f4f9,
- 0x00ecf2ef, 0x00eef3f1, 0x00f4f5f7, 0x00f7f7fa, 0x00f6f7fb, 0x00f7f8fc, 0x00fbf8fd, 0x00fbf8fc, 0x00f0f4f2, 0x00f1f4f3, 0x00f3f4f6, 0x00f5f5f8, 0x00f8f7fa, 0x00faf8fc, 0x00faf8fd, 0x00faf8fe,
- 0x00eff5f2, 0x00f1f4f3, 0x00f4f5f7, 0x00f5f4f7, 0x00f6f5f9, 0x00f7f6f9, 0x00fdfbfd, 0x00ffffff, 0x00f8fef8, 0x00f8fdfa, 0x00f9fcfb, 0x00f3f5f4, 0x00747675, 0x000d0f0f, 0x000f1213, 0x0016191c,
- 0x000a2112, 0x000e2012, 0x00132417, 0x00132618, 0x00132418, 0x00122317, 0x00132519, 0x00142418, 0x000f2615, 0x000e2615, 0x0017281b, 0x00172717, 0x0013232a, 0x00202e48, 0x00344170, 0x00384b8a,
- 0x00405ea3, 0x004562ad, 0x00506ac3, 0x005973d1, 0x005e7ae1, 0x005e82d9, 0x006589de, 0x006586de, 0x005b7dd9, 0x005d78cc, 0x006173c6, 0x006b75ba, 0x007579a3, 0x007b7895, 0x00847c8e, 0x00a098a1,
- 0x00b7b9c6, 0x00b0b1be, 0x00b8b3c5, 0x00c1bacd, 0x00bcb6c6, 0x00bbb5c5, 0x00c1b7ca, 0x00c3b9cb, 0x00beb8c1, 0x00c1bbc2, 0x00cbc2c9, 0x00cabfc7, 0x00c2bac1, 0x00c5bbc4, 0x00cfc3ce, 0x00d7cbd4,
- 0x00cbc5c6, 0x00c9c2c5, 0x00cec5ce, 0x00d7cdd5, 0x00dcd1dc, 0x00d8dadf, 0x00dddfe4, 0x00e6dfe6, 0x00f0e1df, 0x00f7e9ed, 0x00fbf1fc, 0x00f4f2ff, 0x00eaf0fc, 0x00e7e7e9, 0x00e2d5d7, 0x00ebd9d2,
- 0x00f8e0cd, 0x00f3f0ec, 0x00e7effc, 0x00a6c2e8, 0x00406dbf, 0x003a6ac4, 0x003864c3, 0x00678ce2, 0x00c1d8f2, 0x00e3edec, 0x00f1f0e8, 0x00e2e2d4, 0x00a5a79d, 0x0081837a, 0x00888782, 0x008a8682,
- 0x0082857a, 0x0082877d, 0x00868a84, 0x008a8b86, 0x00898a85, 0x00888c7c, 0x008c8e79, 0x00908e7b, 0x0087896f, 0x0086866f, 0x008c8774, 0x008a8576, 0x00858277, 0x0085837d, 0x008a8786, 0x00908d8e,
- 0x008b8d88, 0x008c908b, 0x00a2a4a0, 0x00c4c5c0, 0x00dfe1db, 0x00d2d2ce, 0x00d2d1cd, 0x00efefed, 0x00fafef6, 0x00f9fbf5, 0x00fafbf9, 0x00fdfdfc, 0x00d5d5d1, 0x00868684, 0x00747474, 0x00989896,
- 0x006b6e67, 0x001d2119, 0x00070906, 0x00070807, 0x000c0e0b, 0x000b0d0d, 0x00101115, 0x00161918, 0x001d2518, 0x002a2d21, 0x00363228, 0x00473f35, 0x006a5f56, 0x0091837d, 0x00bbaaa9, 0x00cababb,
- 0x00c2c2b7, 0x00c6c3ba, 0x00ccc2bf, 0x00d4c6c6, 0x00d0c4c6, 0x00cdc0c5, 0x00cbc0c5, 0x00cbc4c8, 0x00c6cbc7, 0x00cad1ce, 0x00dbdede, 0x00e7e6e8, 0x00efeeef, 0x00f3f3f1, 0x00fbf9f7, 0x00fbfaf7,
- 0x00f3f9f0, 0x00f7faf4, 0x00fcfdfd, 0x00fcfcff, 0x00fdfefe, 0x00f8fefb, 0x00f6fcfe, 0x00f8faff, 0x00f4faf5, 0x00f7fbf8, 0x00fafdfc, 0x00fafcfb, 0x00fafbfc, 0x00fafcfe, 0x00f9fdff, 0x00f8fdff,
- 0x00f9fcf7, 0x00f5fbf8, 0x00f7fdfe, 0x00f5fdfe, 0x00f4fffd, 0x00f4fefb, 0x00f7fdfe, 0x00f7fdff, 0x00f4f8f7, 0x00f9fdfb, 0x00fafdfd, 0x00fbfdfd, 0x00fbfdfd, 0x00fdfefe, 0x00fffefe, 0x00fffeff,
- 0x00f8fdf4, 0x00f7fdf3, 0x00fdfdf7, 0x00fefaf8, 0x00fcfbf5, 0x00f9f6f4, 0x00f5f1f2, 0x00f9f7f7, 0x00f8fef6, 0x00f9fdf9, 0x00fbfcfb, 0x00ffffff, 0x00d8d6d9, 0x009c9b9e, 0x0079767b, 0x00736f76,
- 0x00626362, 0x00585b58, 0x00535253, 0x00535153, 0x004e5150, 0x004d4f4f, 0x00555357, 0x005a5a5d, 0x005d635d, 0x00666a68, 0x0075787b, 0x00768186, 0x006c8bb4, 0x005a89cd, 0x004e86e4, 0x004788f4,
- 0x003888e0, 0x003783d8, 0x003e83dc, 0x003e82de, 0x003881e1, 0x003880db, 0x003c7fd8, 0x003b7bdb, 0x003279da, 0x003275dc, 0x003372e1, 0x00336ee0, 0x00306dde, 0x002767d2, 0x002060c7, 0x002061c5,
- 0x001e5cb3, 0x001a58b1, 0x001b54b4, 0x001f53b5, 0x002157b8, 0x002759b9, 0x002451b3, 0x001c47a9, 0x000f3d96, 0x000a378d, 0x000c2e89, 0x000b257d, 0x00072278, 0x000e318d, 0x001f46a8, 0x001b4ab3,
- 0x000b48b0, 0x001348a8, 0x001f47a3, 0x004f64b4, 0x00a09bdb, 0x00a2aed1, 0x00abbbde, 0x0096a0e2, 0x003f4d94, 0x006573ab, 0x00b0b9eb, 0x00a2acdb, 0x00747fc7, 0x008293d5, 0x0094a7e1, 0x00a3bde0,
- 0x00a8b6d7, 0x00abb5ea, 0x00999de8, 0x007b7cd5, 0x004d529e, 0x006770a0, 0x00a8afd1, 0x00a9b1c6, 0x00a5b3ca, 0x00a1a7d0, 0x00666fa9, 0x001d3977, 0x001b4186, 0x004168b6, 0x006e91e5, 0x00708bdf,
- 0x007f96cb, 0x00afbcdb, 0x00ecf1fe, 0x00f8fdfb, 0x00f3fff1, 0x00fcfdf8, 0x00fef9ff, 0x00fefdff, 0x00e7f2d1, 0x00c0c98f, 0x009ea055, 0x00a09c3e, 0x00c3ac44, 0x00dab45a, 0x00e6b066, 0x00f3b275,
- 0x00d8b563, 0x00c6a449, 0x00d9b257, 0x00eeca70, 0x00e2c77c, 0x00b4a16f, 0x00a19179, 0x00d4c9c6, 0x00f1f0f7, 0x00ededf3, 0x00edebed, 0x00f1f1e9, 0x00f5f1ea, 0x00f1f0e5, 0x00f6f3ea, 0x00fbf8f0,
- 0x00f6f8ec, 0x00f9f7ed, 0x00fef9f5, 0x00fffaf9, 0x00fcf9f8, 0x00f9f9fc, 0x00fafaff, 0x00fcf9ff, 0x00f6faf4, 0x00f8f8f3, 0x00fbf6f5, 0x00fef9f7, 0x00fefaf9, 0x00fbf9fb, 0x00f9faff, 0x00f5faff,
- 0x00f6f7f6, 0x00f3f6f5, 0x00f4f9fd, 0x00f3fafc, 0x00c0d0e0, 0x005e6c8b, 0x0019264d, 0x00303967, 0x003c5067, 0x00485f6f, 0x0087959b, 0x00c2c8b0, 0x00d5e3c1, 0x00a8bc8d, 0x00789059, 0x00738e4c,
- 0x0068913c, 0x0068913c, 0x006a9041, 0x006c8e43, 0x006b8c46, 0x006a8d40, 0x00668c3d, 0x00638e3e, 0x005b9037, 0x005d8938, 0x00718f49, 0x00afbb80, 0x00f4eec3, 0x00fbf3cd, 0x00fdf8d7, 0x00fdf7da,
- 0x00f8f6b8, 0x00f6eebe, 0x00f7edc9, 0x00dfdfb9, 0x008ca069, 0x00608036, 0x00608633, 0x005d8433, 0x00879a63, 0x00ced4b4, 0x00fbf0e5, 0x00dcbfbb, 0x0066688e, 0x00253363, 0x00102155, 0x00171940,
- 0x00130e2a, 0x00021434, 0x0000143a, 0x00011434, 0x001e060e, 0x001f1615, 0x00363531, 0x0043443e, 0x00404632, 0x00404533, 0x003e4233, 0x0036392b, 0x002c2e27, 0x002f302e, 0x00212020, 0x000b080d,
- 0x00000400, 0x00000200, 0x0000050c, 0x00000616, 0x00010822, 0x00020b2a, 0x00060f34, 0x000b153c, 0x000b2441, 0x001a344c, 0x002b4471, 0x003e599e, 0x00596fb7, 0x006e7dc7, 0x008892d7, 0x00aab2ea,
- 0x00bfd0e4, 0x00728185, 0x000b1512, 0x000b180b, 0x000d170b, 0x000d1e13, 0x000b1c10, 0x000a180e, 0x000b1d0f, 0x0053605a, 0x00e7edec, 0x00fcfeff, 0x00fefbfe, 0x00fefbfb, 0x00fff8fd, 0x00e0d6db,
- 0x0061503a, 0x002b1702, 0x0041240e, 0x00512c10, 0x006f390e, 0x0072370a, 0x00793e11, 0x0069320a, 0x0092795a, 0x00e1dac5, 0x00fffbf9, 0x00fdf9f7, 0x00fdfcfb, 0x00fcf9fb, 0x00e5d8db, 0x0089767b,
- 0x00534331, 0x006f503e, 0x00875743, 0x0094523b, 0x0098492c, 0x008d442e, 0x007e3b2b, 0x00703326, 0x0050301b, 0x00422f1f, 0x00483f36, 0x00585651, 0x00656c69, 0x00a8b0ad, 0x00f1f4f2, 0x00fcfcfc,
- 0x00b6e1ed, 0x00719fcf, 0x005880c2, 0x006e96d9, 0x00bfe2ee, 0x00eefcf8, 0x00fbf9fa, 0x00fff6ff, 0x00f9f6f8, 0x00f3fcf1, 0x00f7fcf5, 0x00fbfafb, 0x00f7f7f8, 0x00f6f7f6, 0x00f2f3f3, 0x00f2eff2,
- 0x00e3e9e2, 0x00e1e6e0, 0x00d9d8d9, 0x00cfd0d1, 0x00cbcccb, 0x00d3d0cf, 0x00dacbc9, 0x00c49d98, 0x00ab6450, 0x00a9644f, 0x00a56051, 0x00925a4e, 0x00663f3a, 0x00572d29, 0x00632e2f, 0x006e3534,
- 0x00853c28, 0x008b4733, 0x00a25b4b, 0x00aa6855, 0x00b96c51, 0x00bc674a, 0x00c2644a, 0x00bf5c44, 0x00a24f46, 0x0099494b, 0x00894c58, 0x005f5159, 0x0043383e, 0x00292426, 0x00161315, 0x00131415,
- 0x000f1610, 0x001d211b, 0x00474544, 0x006a6468, 0x007f787b, 0x00837a78, 0x0091817e, 0x00a08a89, 0x00a6938c, 0x00b8a79f, 0x00cabfb9, 0x00c1beb8, 0x00acb0a5, 0x0098968e, 0x007d7471, 0x0070605e,
- 0x00816d50, 0x00887457, 0x00877158, 0x0087705d, 0x00897566, 0x0085766a, 0x007a6c68, 0x006c6261, 0x00505353, 0x00454d51, 0x00474856, 0x004b415a, 0x00484045, 0x00433c32, 0x003d3728, 0x003a3929,
- 0x00272922, 0x00131923, 0x000c1131, 0x00080f3c, 0x00061241, 0x00232846, 0x0076768a, 0x00a5a6b1, 0x009ea295, 0x00828378, 0x00635c56, 0x00635758, 0x006c6168, 0x0070686a, 0x006b6463, 0x006a665f,
- 0x005b574b, 0x005a544e, 0x00615855, 0x00615956, 0x00585451, 0x0057534f, 0x0067605d, 0x007c7575, 0x00999d93, 0x00b5b9af, 0x00d0d1cc, 0x00dad9d9, 0x00e8e7e7, 0x00f6f5f4, 0x00fffefc, 0x00fefefa,
- 0x00f5faf0, 0x00f6fbf4, 0x00f1f2f2, 0x00a4a1a7, 0x00282931, 0x001d2743, 0x002a3a60, 0x00394571, 0x00374c71, 0x003d4d75, 0x0047517c, 0x004a537b, 0x004e5272, 0x0054556f, 0x005b5a6e, 0x00635b6e,
- 0x005c5e54, 0x005f6057, 0x0064625e, 0x0065615d, 0x00655f5e, 0x00635e5c, 0x00615a5e, 0x005d565e, 0x00616664, 0x009fa3a2, 0x00f1f1f5, 0x00f4e8f0, 0x00d7978b, 0x00806585, 0x005c6aa6, 0x004f83cf,
- 0x003680c3, 0x004b6da4, 0x009280a3, 0x00edb2aa, 0x00eefbf3, 0x00f0f6f8, 0x00eff2f8, 0x00edecf2, 0x00e2e7e8, 0x00e2e7e7, 0x00e3e6ea, 0x00e2e3e8, 0x00e3e3e7, 0x00e5e5ea, 0x00e9e8f0, 0x00ebebf2,
- 0x00efecf1, 0x00f2f1f4, 0x00f1eff2, 0x00f3f4f1, 0x00f3f8ed, 0x00eff4e8, 0x00f5f7ef, 0x00f8f8f2, 0x00f6f5ee, 0x00f6f3f1, 0x00f8f5f9, 0x00f6f9ff, 0x00f5f7fd, 0x00ebeff3, 0x00e1e2e8, 0x00dbd9e4,
- 0x00d9e0de, 0x00d8dcdd, 0x00e2e3e8, 0x00e6e8e9, 0x00e5e7e9, 0x00dedfe7, 0x00cacbcf, 0x00c7cdb4, 0x00bec9ab, 0x00b3b8ae, 0x00aba5a6, 0x00a1948b, 0x009f8b45, 0x009c8029, 0x00815d0a, 0x00714004,
- 0x00684100, 0x00825f14, 0x00b89549, 0x00d3b568, 0x00edd999, 0x00f6e8bf, 0x00fcf0d9, 0x00efe8e1, 0x00898e8c, 0x00464d4d, 0x00474b4d, 0x004c4b50, 0x004a4b57, 0x004c4c5d, 0x004f4d62, 0x004f4d68,
- 0x00494c5c, 0x004d4b55, 0x00544e58, 0x005f5655, 0x00695b56, 0x006f5a4e, 0x00725648, 0x00745242, 0x006f4e34, 0x00794d2e, 0x00874d2f, 0x00934d2a, 0x009e4e21, 0x00a94f1e, 0x00b55321, 0x00bc561e,
- 0x00fafbf8, 0x00fbfdf9, 0x00fefdfb, 0x00fefdfa, 0x00fbfcfb, 0x00fcfdfa, 0x00fefefb, 0x00fdfefa, 0x00fffefb, 0x00fefefc, 0x00fcfefc, 0x00f9fefb, 0x00f9fefc, 0x00fbffff, 0x00fdffff, 0x00fcfefd,
- 0x00fafefc, 0x00f9fdff, 0x00fcffff, 0x00fcfffd, 0x00fbfffd, 0x00fbfefd, 0x00fdfefe, 0x00fcfeff, 0x00fefffe, 0x00fefffe, 0x00fefffe, 0x00fdfefd, 0x00fcfdfd, 0x00fdfefd, 0x00fefffe, 0x00fdfefd,
- 0x00fcfcf1, 0x00fcfdf2, 0x00fdfef4, 0x00fefef5, 0x00fcfcf4, 0x00fafdf5, 0x00fbfef6, 0x00fbfff8, 0x00fcfdf7, 0x00fcfdf6, 0x00fafcf7, 0x00fafdf9, 0x00fbfcfb, 0x00fcfdfd, 0x00feffff, 0x00fdfcff,
- 0x00fdfefa, 0x00fcfdfb, 0x00fffdfd, 0x00fffdfc, 0x00fdfffa, 0x00fefffd, 0x00fefefe, 0x00fefffe, 0x00fffefe, 0x00fdfdfc, 0x00fefefe, 0x00fefffe, 0x00fffffd, 0x00fefffc, 0x00fcfefd, 0x00fdfffe,
- 0x00fdfefe, 0x00fdfefe, 0x00fffdfe, 0x00fffdfe, 0x00fdfefe, 0x00fdfefd, 0x00fefdfd, 0x00fefdfd, 0x00fefeff, 0x00fdfefe, 0x00fefefe, 0x00fefefd, 0x00fefefd, 0x00fefefd, 0x00fefefd, 0x00fdfefc,
- 0x00fdfdfe, 0x00fcfdfd, 0x00fdfcfd, 0x00fdfdfd, 0x00fcfefe, 0x00fcfefe, 0x00fdfeff, 0x00feffff, 0x00fdfdfe, 0x00fcfefe, 0x00fefeff, 0x00fdfdfe, 0x00fbfcfc, 0x00fcfcfb, 0x00fffdfd, 0x00fffffe,
- 0x00fafcfc, 0x00f9fcfc, 0x00fdfdfe, 0x00fdfdff, 0x00fbfdff, 0x00fcfeff, 0x00fefeff, 0x00fefeff, 0x00fcfdff, 0x00fdfefe, 0x00fcfdfd, 0x00fcfdfb, 0x00fefefd, 0x00fefefc, 0x00fcfefc, 0x00fcfefd,
- 0x00fafcfb, 0x00fbfdfb, 0x00fdfefd, 0x00fefefd, 0x00fdfdfd, 0x00fcfcfc, 0x00fdfdfc, 0x00fefffe, 0x00fbfdf9, 0x00fcfefe, 0x00fafcfb, 0x00f1f5f3, 0x00737776, 0x000d1311, 0x000d1411, 0x00101717,
- 0x00091b0e, 0x00111f13, 0x00122015, 0x00142519, 0x00142419, 0x00122217, 0x00132318, 0x00152419, 0x0016281c, 0x0016291f, 0x0015271b, 0x00142715, 0x00102220, 0x001b2b3a, 0x00324260, 0x003b4d7e,
- 0x00465e9e, 0x005067b6, 0x00536dc4, 0x005471ca, 0x005a77d6, 0x005a7ed2, 0x005f87d4, 0x006388dc, 0x006484e3, 0x006884e3, 0x00697fde, 0x006878cd, 0x007179b4, 0x00787ca2, 0x007a7b8f, 0x0096919b,
- 0x00b5b3c7, 0x00b1b0c3, 0x00b1acc2, 0x00bab5cb, 0x00bfbbcd, 0x00bcb6c8, 0x00bab3c6, 0x00bbb5c7, 0x00beb7c8, 0x00c3bccb, 0x00c5bcc8, 0x00bfb6c0, 0x00c3bcc4, 0x00cec7ce, 0x00d5ccd3, 0x00d2c9d0,
- 0x00cac4c7, 0x00cec6ce, 0x00d3cad2, 0x00d9d0d9, 0x00e0d7e1, 0x00dce0e4, 0x00dee6e8, 0x00ebe9eb, 0x00f9ecee, 0x00fcf1f7, 0x00f9f2fb, 0x00f1f0fc, 0x00e4ebf8, 0x00dde4e8, 0x00dce0df, 0x00e7eae1,
- 0x00f7e9dc, 0x00f2ecee, 0x00dfe8f7, 0x009db8e2, 0x004179cb, 0x00427cdb, 0x00477ed8, 0x007ca4ef, 0x00d3e9fc, 0x00eefbf9, 0x00f5f7ee, 0x00dfe0d1, 0x009fa293, 0x007e8375, 0x00808476, 0x00828678,
- 0x00828576, 0x0084877c, 0x00888a82, 0x008b8c84, 0x008c8d86, 0x008b8f7c, 0x008c9177, 0x0090937b, 0x008f8e76, 0x008f8d74, 0x008f8a74, 0x008b8775, 0x00858576, 0x00838479, 0x008b8d85, 0x008b8c86,
- 0x008c8c88, 0x008f8f8b, 0x00bcbdb8, 0x00e8eae3, 0x00fdfef6, 0x00f1f4eb, 0x00ebefe6, 0x00f6f9f1, 0x00fbfcf8, 0x00fefffc, 0x00fdfefe, 0x00fcfefc, 0x00c5c7c3, 0x007b7c79, 0x00797977, 0x00a3a2a0,
- 0x00828380, 0x0041403d, 0x002b2c2a, 0x00333533, 0x003f3f3d, 0x004c4f4f, 0x005c6162, 0x006e7371, 0x00818580, 0x0090928c, 0x009c9e95, 0x00aaaaa1, 0x00c4bfb8, 0x00dbd2cf, 0x00eee5e5, 0x00f5ebee,
- 0x00edeee7, 0x00eff0ea, 0x00f6f4f1, 0x00fdfaf9, 0x00fefcfb, 0x00fcfafa, 0x00fcfafa, 0x00fcfcfc, 0x00fbfdfc, 0x00f8fdfb, 0x00f8fcfb, 0x00fbfdfd, 0x00fcffff, 0x00fafefc, 0x00fdfffd, 0x00fcfefb,
- 0x00f8fcf7, 0x00fcfdfc, 0x00f9fafe, 0x00f8fbfe, 0x00fafefe, 0x00f6fdfc, 0x00f4fdfd, 0x00f7fefd, 0x00fcffff, 0x00fcfffd, 0x00fbfefd, 0x00fafffe, 0x00f9fcfd, 0x00f9fdff, 0x00f8fdff, 0x00f9fdfe,
- 0x00f9fffa, 0x00f8fffc, 0x00f6fefd, 0x00f4fdfd, 0x00f5fdfd, 0x00f5fdfc, 0x00f8fefc, 0x00f9fffc, 0x00fcfdfb, 0x00fcfdff, 0x00fbfdfe, 0x00fcfdfd, 0x00fcfcff, 0x00fdfcfd, 0x00fcfcfa, 0x00fcfdfb,
- 0x00f9fcf6, 0x00f2f0ed, 0x00e6dfdb, 0x00dbd3cd, 0x00d0c5c0, 0x00c3c0bb, 0x00d9dcd6, 0x00f2f5ef, 0x00fafbf8, 0x00fefffd, 0x00fcfdfb, 0x00fefefd, 0x00d4d3d6, 0x00919095, 0x00717175, 0x006a6a6f,
- 0x00585a5a, 0x004f5051, 0x0047464a, 0x00444347, 0x00404243, 0x003e4041, 0x00454549, 0x004d4c50, 0x00575958, 0x00646266, 0x006d6f75, 0x006a7b88, 0x006287b8, 0x005689d7, 0x004a87e7, 0x004087f0,
- 0x003a86e3, 0x003e85dd, 0x003e82da, 0x003e82db, 0x00367fdd, 0x003582dd, 0x003281db, 0x00347ede, 0x00377ae0, 0x003979e6, 0x003573e1, 0x003470de, 0x00326fd9, 0x002c6cd6, 0x002363cb, 0x001d60c5,
- 0x00275cb9, 0x00275ab8, 0x001c51b4, 0x001b51b4, 0x001b51b7, 0x002358bf, 0x002457bf, 0x00224eb9, 0x00153fa6, 0x00153aa2, 0x0018389a, 0x000e2a7e, 0x00011c6f, 0x00072984, 0x001a43a3, 0x001d4db2,
- 0x00114bb3, 0x001547a9, 0x0021469e, 0x005b6cb7, 0x00b7afe9, 0x00afb8d3, 0x00a7b6d0, 0x00858ec9, 0x00474996, 0x008286c0, 0x00b2b5e2, 0x00abb0d5, 0x00afb4ed, 0x00b6bef5, 0x00b2bbec, 0x00b5c2e2,
- 0x00a3b4e2, 0x008492d1, 0x00575eab, 0x003a3c98, 0x005258a2, 0x008791be, 0x00aab6d3, 0x009fafbe, 0x00a8b2d6, 0x00969ad5, 0x00424e94, 0x001d3381, 0x0011307c, 0x000c2b74, 0x004563a2, 0x008497cc,
- 0x00c7cee1, 0x00f0eef4, 0x00f8f6f3, 0x00fbfef9, 0x00f5faf5, 0x00fbfcf9, 0x00f9fefb, 0x00fefefd, 0x00dfe6c4, 0x00b9bc84, 0x00a9a657, 0x00afa743, 0x00ceb44e, 0x00ddb65d, 0x00e5b163, 0x00f0b072,
- 0x00e7bf73, 0x00eac272, 0x00ecc56c, 0x00e4c462, 0x00e4c770, 0x00d3bb78, 0x00bca87c, 0x00d3c2b3, 0x00f2e8e9, 0x00f3eef5, 0x00f0eef1, 0x00f0efe9, 0x00f1efeb, 0x00efefeb, 0x00f4f4f0, 0x00f9f8f5,
- 0x00f6f5ee, 0x00f9f5f1, 0x00fdf7f7, 0x00fef7f8, 0x00fdf6f7, 0x00fcf7fa, 0x00fbfafd, 0x00fbf9fc, 0x00fffafc, 0x00fdf9f9, 0x00fcf7f6, 0x00fcf9f6, 0x00fbfaf8, 0x00f9faf9, 0x00f7fafc, 0x00f6fafc,
- 0x00f8f8f8, 0x00fafafd, 0x00f4f8fb, 0x00f6fcff, 0x00b4c4d5, 0x004b5b7b, 0x0017284e, 0x002f3e66, 0x002b3d5b, 0x001e3148, 0x004b5c5b, 0x0091a079, 0x00a5ba8b, 0x00859e66, 0x00739052, 0x006f904b,
- 0x006a9340, 0x006a9340, 0x006c9244, 0x006c9145, 0x006b8f47, 0x006b8f41, 0x00668d3d, 0x00608f3d, 0x005e9240, 0x00639041, 0x006c8d45, 0x009fb274, 0x00eae9bd, 0x00f6f1cd, 0x00f8f4d3, 0x00f7f4d5,
- 0x00faf3bd, 0x00f7eec4, 0x00f1e7c6, 0x00dbdab7, 0x008aa066, 0x00608638, 0x00608a32, 0x00658d37, 0x00b2c090, 0x00f4f5e2, 0x00e4cfcc, 0x00a17a84, 0x002b396e, 0x00132b6e, 0x000a1b5b, 0x001c1c51,
- 0x001a1438, 0x000c113e, 0x00060e3c, 0x0002072c, 0x0020090c, 0x0039302a, 0x0054564a, 0x003b3f33, 0x000e1203, 0x00040700, 0x00101402, 0x000f1204, 0x0012130b, 0x001e2016, 0x001d1d1d, 0x00070608,
- 0x0002020e, 0x00040512, 0x0007091d, 0x00030720, 0x00050b2a, 0x00050e2e, 0x00041035, 0x00031037, 0x00000d34, 0x0005173c, 0x00091f4c, 0x00102c6a, 0x002a4283, 0x0037498a, 0x005c6b9f, 0x00a8b4db,
- 0x00c2d2d7, 0x00626e65, 0x000d1708, 0x000f1d07, 0x000d1a06, 0x000e210d, 0x00041806, 0x00061708, 0x0015221a, 0x00737d7b, 0x00f4f9f9, 0x00fdffff, 0x00fbf9fa, 0x00fdfcfb, 0x00fff9fa, 0x00cac5c5,
- 0x0049321a, 0x00311703, 0x0042240a, 0x00552e10, 0x006d390d, 0x00763c09, 0x00773d0c, 0x00673105, 0x00896c4f, 0x00dccebc, 0x00fcf9f5, 0x00fcfafa, 0x00fcfbfc, 0x00fbfaf8, 0x00ebe4df, 0x00978a83,
- 0x005e4533, 0x007d5542, 0x00905f4a, 0x00995a42, 0x00995134, 0x007f4531, 0x00643425, 0x0056281d, 0x00442819, 0x00433126, 0x004b4339, 0x005e5e54, 0x005c615b, 0x00899089, 0x00dfe4dc, 0x00f7f8f6,
- 0x00cce8ef, 0x008eb2df, 0x005984c1, 0x005987cd, 0x00a3cddd, 0x00e3f9fa, 0x00f9fcfb, 0x00fcf5fd, 0x00fdf9fe, 0x00f8fdf8, 0x00f9fcf8, 0x00f7f7f6, 0x00f1f1f1, 0x00f4f4f3, 0x00f6f6f4, 0x00f5f4f3,
- 0x00f3f4f4, 0x00eeefee, 0x00dbd9da, 0x00c8c8c7, 0x00c9cac7, 0x00d2d0d0, 0x00d9cecd, 0x00c1a39e, 0x00986155, 0x00965f54, 0x008b574e, 0x00704940, 0x004a2e2a, 0x00432220, 0x0053292a, 0x006a3836,
- 0x00894636, 0x00995b4c, 0x00a96b5e, 0x00b07261, 0x00be7459, 0x00c36e4f, 0x00c16547, 0x00b8583f, 0x00a74842, 0x009f4649, 0x0086474e, 0x00564648, 0x003a2e2e, 0x00231a18, 0x00110a09, 0x00110e0c,
- 0x0011100c, 0x001e1e1a, 0x0043403e, 0x00665f61, 0x00796f70, 0x007e726e, 0x00867671, 0x00927e7b, 0x00a68c8b, 0x00b7a19e, 0x00c6b8b2, 0x00b8b4aa, 0x00a0a298, 0x008b8880, 0x0069645d, 0x005a524d,
- 0x007a5a41, 0x0085654b, 0x0085644d, 0x00815f4c, 0x00806252, 0x007e655a, 0x0079625e, 0x00715e5e, 0x0061585f, 0x005e5861, 0x005e5867, 0x0061586e, 0x005d5659, 0x00514a3e, 0x0046402e, 0x00413e28,
- 0x0028281f, 0x0014161e, 0x000c1126, 0x00080e30, 0x00071135, 0x00272c44, 0x00787c8a, 0x00a1a4ac, 0x0096958e, 0x007c7671, 0x00584f4a, 0x00574d4d, 0x00635a61, 0x00656062, 0x0065645e, 0x006e6c63,
- 0x00807874, 0x008e8784, 0x00a29997, 0x00ada7a3, 0x00b4b1ae, 0x00bcbbb6, 0x00c9c7c2, 0x00d9d8d5, 0x00ebefe9, 0x00f7faf3, 0x00fcfdf9, 0x00fefefd, 0x00fffefd, 0x00fdfdf9, 0x00fcfdf9, 0x00fbfcf6,
- 0x00f7faf3, 0x00fefffe, 0x00fafafb, 0x00b6b4ba, 0x002f303a, 0x00202845, 0x002c3a5f, 0x003a456d, 0x003e4d75, 0x00454e7a, 0x0049537d, 0x004d567b, 0x00545574, 0x0057576d, 0x005c5b6a, 0x00645c6b,
- 0x00625d56, 0x00645d56, 0x00685f59, 0x006a5d58, 0x00695b55, 0x0063574f, 0x0060544e, 0x005a514d, 0x0065615d, 0x009b959a, 0x00f1f0f1, 0x00eee4e4, 0x00dc897f, 0x00815d80, 0x00495a94, 0x003c77c3,
- 0x003b81c6, 0x005772aa, 0x009182a2, 0x00ecb6af, 0x00e7f6f9, 0x00f1f7fc, 0x00f4f5fa, 0x00f1f0f5, 0x00eaeaef, 0x00e6e8eb, 0x00e4e5eb, 0x00e1e2e8, 0x00e2e4e7, 0x00e4e7e9, 0x00e7eaee, 0x00e8eaee,
- 0x00ebedf9, 0x00eff1fb, 0x00eff1f8, 0x00f0f5f3, 0x00f0f9ed, 0x00edf6e7, 0x00f2f9ea, 0x00f7f9ed, 0x00faf9f6, 0x00fbf7f7, 0x00fbf7fb, 0x00f6f7fb, 0x00f1f3f7, 0x00eaedf0, 0x00e0e3e7, 0x00dcdce2,
- 0x00d9dadf, 0x00d7d9dc, 0x00dadcdd, 0x00e2e4e8, 0x00e0e2e9, 0x00d8d8e5, 0x00c6c7cc, 0x00c2c7b6, 0x00c2ccbf, 0x00b8bccb, 0x00a5a3b5, 0x008d8490, 0x00816e36, 0x007e6118, 0x006f4900, 0x00733f09,
- 0x0076410e, 0x00875815, 0x00b98f38, 0x00cfaf43, 0x00e0cb5e, 0x00eadc82, 0x00f4e9a5, 0x00f1e8c0, 0x0096948b, 0x00545057, 0x004f4b5a, 0x004f4c5e, 0x00514f66, 0x00504c6a, 0x004f4c6c, 0x004f4e6d,
- 0x004b4d66, 0x004e4d5f, 0x0052505b, 0x00585455, 0x00615850, 0x0067584d, 0x006a5547, 0x006c5242, 0x00734e3a, 0x007b4d35, 0x00854d2f, 0x008e4b26, 0x009a4d20, 0x00a54e1d, 0x00ae501d, 0x00b3511c,
- 0x00fcf9fc, 0x00fefefe, 0x00fbfbfc, 0x00f8f8fa, 0x00faf9fd, 0x00fefdfe, 0x00fefdfe, 0x00fdfdff, 0x00fdfcfc, 0x00fcfcfd, 0x00fcfdfd, 0x00fbfefb, 0x00fbfefd, 0x00f9fdfd, 0x00fafdfd, 0x00fcfeff,
- 0x00fbfdfb, 0x00fbfdfe, 0x00fcfdff, 0x00fbfdfb, 0x00fcfeff, 0x00fbfdfa, 0x00fefdfb, 0x00fdfdfb, 0x00fefcfc, 0x00fdfcfc, 0x00fdfcfb, 0x00fdfdfc, 0x00fefefc, 0x00fefdfb, 0x00fdfdfb, 0x00fcfefa,
- 0x00fdfffa, 0x00fbfef9, 0x00fbfef8, 0x00fbfef9, 0x00fafefa, 0x00f8fff9, 0x00f8fff9, 0x00f8fffa, 0x00f7fdfc, 0x00f9fffe, 0x00fafdfc, 0x00fdfffb, 0x00fcfdf9, 0x00fdfdfc, 0x00fefefc, 0x00fefefe,
- 0x00fffefe, 0x00fefefc, 0x00fefefc, 0x00fefdfb, 0x00fefdfc, 0x00fffdfd, 0x00fefdfe, 0x00fdfefd, 0x00fdfdfc, 0x00fdfdfc, 0x00fefdfe, 0x00fdfdfe, 0x00fffefe, 0x00ffffff, 0x00fefdff, 0x00fffeff,
- 0x00feffff, 0x00feffff, 0x00fefeff, 0x00fefdfe, 0x00fdfdfe, 0x00fdfdfe, 0x00fefdfe, 0x00fefdfe, 0x00fdfdfc, 0x00fcfdfc, 0x00fdfefc, 0x00fdfffd, 0x00fffffd, 0x00fffffd, 0x00fefffc, 0x00fdfffc,
- 0x00fefdfb, 0x00fcfdfa, 0x00fcfdfa, 0x00fdfdfb, 0x00fcfdfc, 0x00fcfcfc, 0x00fbfcfd, 0x00fbfcfe, 0x00fcfcff, 0x00fafbfd, 0x00fbfbfc, 0x00fbfbfc, 0x00fbfbfd, 0x00fcfbfd, 0x00fdfbfd, 0x00fcfbfc,
- 0x00fbfdfe, 0x00fafdfd, 0x00fbfefe, 0x00fcfffe, 0x00fdffff, 0x00feffff, 0x00feffff, 0x00fcffff, 0x00feffff, 0x00feffff, 0x00fdfefd, 0x00fcfdfc, 0x00fefefd, 0x00fefefd, 0x00fdfefc, 0x00fefffb,
- 0x00fffffe, 0x00fdfffd, 0x00fcfefb, 0x00fdfefb, 0x00fdfdfb, 0x00fefdfd, 0x00fefdff, 0x00feffff, 0x00fdfcfc, 0x00fcfcfe, 0x00fdfefe, 0x00f1f6f4, 0x008a8f8e, 0x003a403d, 0x00494f4b, 0x00515756,
- 0x00435148, 0x003b483f, 0x0029362d, 0x00223127, 0x0017251c, 0x00111e15, 0x00101c14, 0x00131d16, 0x0016231c, 0x0015231b, 0x00142119, 0x00142416, 0x00142420, 0x00132229, 0x0028364a, 0x003b4a6f,
- 0x00465996, 0x004f64ac, 0x005971c6, 0x005972cc, 0x00617dd2, 0x005f80cf, 0x005c80cd, 0x005e82d1, 0x006586e2, 0x006c8aeb, 0x00728bef, 0x007183e4, 0x00727dc7, 0x00767eaf, 0x0080869f, 0x008d8e99,
- 0x00b0aec7, 0x00bcbad2, 0x00b7b3cc, 0x00b2adc6, 0x00b4afc5, 0x00b8b3c7, 0x00bab2c7, 0x00bab2c6, 0x00c0b5ca, 0x00c1b8cb, 0x00c3b9c8, 0x00c7bec9, 0x00d0c9d4, 0x00d3cdd6, 0x00d2cbd3, 0x00d1cad3,
- 0x00d9d1d7, 0x00dad3db, 0x00ded6e1, 0x00dfd7dd, 0x00e9dfe8, 0x00e4e4ec, 0x00eaeef4, 0x00f5f5f5, 0x00fdf8f7, 0x00faf3f3, 0x00f4edf4, 0x00ebe8f4, 0x00eaf0fe, 0x00eaf3f7, 0x00eef8fb, 0x00f0fdf7,
- 0x00fdf6f3, 0x00f8f8f7, 0x00d9e5fb, 0x007c9ec4, 0x002665bd, 0x00296dcf, 0x003c79d8, 0x005e88d4, 0x00bbcae6, 0x00e6f3fb, 0x00eaf1ee, 0x00d3d7c6, 0x00969a87, 0x007d806e, 0x007f8171, 0x007f816f,
- 0x00828570, 0x00858676, 0x0088897d, 0x008a8c81, 0x008c8e87, 0x008b907f, 0x008b917a, 0x008d937c, 0x0090907c, 0x008f8e77, 0x008d8a74, 0x00888672, 0x00838474, 0x00838578, 0x00878a7e, 0x00898c81,
- 0x009f9f9c, 0x00bbbab7, 0x00e8e9e3, 0x00f8faf2, 0x00fbfdf3, 0x00f9fbf0, 0x00f8fbf2, 0x00fbfdf5, 0x00fdfffe, 0x00fcfdfd, 0x00fdfdfd, 0x00fcfdfc, 0x00b8b8b5, 0x006e6f6c, 0x00828281, 0x00aeafac,
- 0x00c1c0be, 0x00b3b3b0, 0x00b8b7b5, 0x00bfbfbd, 0x00c8c8c7, 0x00d1d3d3, 0x00dcdee0, 0x00e4e6e8, 0x00eceded, 0x00eff2ef, 0x00f5f8f5, 0x00f7f9f5, 0x00fcfbfa, 0x00fefcfd, 0x00fffdfe, 0x00fffcfe,
- 0x00fdfdfc, 0x00fcfffd, 0x00fdfefd, 0x00fffdfd, 0x00fefbfc, 0x00fdfcfb, 0x00fdfefc, 0x00fdfffd, 0x00feffff, 0x00fbfeff, 0x00f9fcfd, 0x00f9fbfb, 0x00f9fcfc, 0x00fafdfd, 0x00ffffff, 0x00fdfffc,
- 0x00fefefc, 0x00fefefc, 0x00fefdfe, 0x00fdfcff, 0x00fdfcff, 0x00fafcff, 0x00f6fdfe, 0x00f5fdfb, 0x00f9ffff, 0x00f9fefd, 0x00f9fefd, 0x00f7fcfb, 0x00f9fcfc, 0x00f9fdfd, 0x00fafefd, 0x00fafefb,
- 0x00f7fcfe, 0x00f8fcfc, 0x00f5faf9, 0x00f4f8f7, 0x00f3f5f4, 0x00eff0ee, 0x00e9e9e5, 0x00e3e1db, 0x00dbd8d3, 0x00d5d1d0, 0x00d0cbc9, 0x00cbc5c5, 0x00c0b9bc, 0x00b1abab, 0x00a39b9b, 0x009b9394,
- 0x00837877, 0x00756968, 0x00685a57, 0x005f504e, 0x00544442, 0x00605c58, 0x00bbbdb7, 0x00f6f7f0, 0x00fefcfb, 0x00fcfcfb, 0x00f9faf8, 0x00fafbfa, 0x00c8c8cb, 0x00858489, 0x006a696f, 0x00606067,
- 0x004f5054, 0x00454549, 0x003b3a3f, 0x0036353a, 0x00313135, 0x002e2f32, 0x00353539, 0x003e3d41, 0x004c4c50, 0x005a585d, 0x0061656f, 0x00627187, 0x005c7eb6, 0x005184d5, 0x004786e6, 0x003f86f0,
- 0x004187e7, 0x004184de, 0x004082da, 0x003e7fd8, 0x003a7ddf, 0x00337ee2, 0x003282e4, 0x003780e5, 0x003779dd, 0x003877db, 0x003a77dc, 0x003873d6, 0x00326cd2, 0x002f6ccf, 0x002a67cb, 0x002263c5,
- 0x002b56b2, 0x002a57b6, 0x002c5abf, 0x002555bd, 0x001d50ba, 0x001b4eb9, 0x002252bf, 0x002753c3, 0x00294dbf, 0x002245b0, 0x00203ea5, 0x001b398d, 0x000e2a82, 0x0004257c, 0x00113794, 0x001c4cac,
- 0x001a4db6, 0x001643a3, 0x002e4ea7, 0x007281ca, 0x00c1b8f4, 0x00b0b7ce, 0x00a7b1c9, 0x006f72af, 0x00524ca1, 0x009694cf, 0x00adacd8, 0x00adaecc, 0x00b7b6e8, 0x00b5b5ea, 0x00a2a4d2, 0x00858cac,
- 0x004b609c, 0x0032458c, 0x00253381, 0x003c449b, 0x007982c5, 0x0097a0d1, 0x009daaca, 0x009bacc4, 0x009fadd8, 0x007482bf, 0x002d3887, 0x00202e86, 0x0015297c, 0x0000165f, 0x000f1e56, 0x005f6b8a,
- 0x00e0e0e0, 0x00fbf7ef, 0x00faf2e6, 0x00fdfdf6, 0x00fbfbfb, 0x00fcfdfb, 0x00f9fef9, 0x00fcfff9, 0x00dcdabe, 0x00b0af79, 0x00aba55d, 0x00bcb24f, 0x00d9bb5a, 0x00deb65e, 0x00e6b369, 0x00f4bc7c,
- 0x00ebc17d, 0x00e7c175, 0x00e4c26d, 0x00dbbf5f, 0x00e1c269, 0x00dbbc72, 0x009f824b, 0x00987e5d, 0x00d9cbc4, 0x00f1efef, 0x00eeeef2, 0x00ebebea, 0x00f1edf1, 0x00f3f1f5, 0x00f8f2f7, 0x00fcf5fa,
- 0x00fbf5f8, 0x00fbf3f8, 0x00fcf3f8, 0x00fdf3f6, 0x00fdf3f4, 0x00fbf4f5, 0x00faf7f6, 0x00fcf9f8, 0x00fdf7f8, 0x00fcfaf8, 0x00fbf9f7, 0x00fcf9f8, 0x00fcf9fa, 0x00fafafb, 0x00f9fbfc, 0x00f8fbfb,
- 0x00faf7fc, 0x00fcfbfd, 0x00f5f9fc, 0x00f6fbfc, 0x00cdd9e8, 0x00838faa, 0x004e5c80, 0x00404c74, 0x00384662, 0x00465669, 0x007b8c86, 0x008c9f6e, 0x00829a64, 0x00738f50, 0x00759651, 0x0072984d,
- 0x006b9644, 0x006a9643, 0x006d9447, 0x006f9447, 0x006f934b, 0x00719345, 0x006e9042, 0x00679241, 0x00639645, 0x00659143, 0x006b8e46, 0x0090a667, 0x00dfe1b4, 0x00f4f0cb, 0x00f8f5d5, 0x00f4f3d6,
- 0x00fdf2c5, 0x00f7eec8, 0x00eee8c7, 0x00d3d4b2, 0x00829b60, 0x00658d40, 0x005d8831, 0x006c943e, 0x00cad5a8, 0x00f3eddd, 0x00ad9097, 0x006d405d, 0x00233375, 0x001c3887, 0x001d307e, 0x00302e6f,
- 0x002e2b5a, 0x0016174b, 0x000e0b3c, 0x0013092f, 0x00432b2f, 0x005a544d, 0x005e5f53, 0x0046483c, 0x00282b1e, 0x00080b01, 0x00161a0a, 0x0015170a, 0x0017180f, 0x0017180d, 0x0021221d, 0x0010130d,
- 0x00020218, 0x0006061e, 0x00090a27, 0x000d1031, 0x0013193f, 0x00131b43, 0x0019234f, 0x001a2655, 0x001f2d5f, 0x00243764, 0x002a4074, 0x0022427d, 0x0034508a, 0x00415489, 0x007384af, 0x00c9d6eb,
- 0x00bbc8c1, 0x00525f46, 0x00192605, 0x001a2c05, 0x00172807, 0x0013280a, 0x000c2107, 0x00081b08, 0x002e392f, 0x009aa29d, 0x00f7fcfc, 0x00fafcfd, 0x00faf7fb, 0x00fefbfe, 0x00fbf6f5, 0x00aeaaa8,
- 0x00351907, 0x00341802, 0x00492a0e, 0x00593414, 0x006e390e, 0x00753a0b, 0x00733807, 0x00693205, 0x00856149, 0x00ceb9a7, 0x00fefdf4, 0x00fdfdfc, 0x00fdfcfe, 0x00fcfcf7, 0x00f1ece3, 0x00ac9e91,
- 0x00684939, 0x007e5542, 0x00925f4b, 0x008d543d, 0x0087462c, 0x00603524, 0x00431f16, 0x0038160d, 0x00341e14, 0x003e2c24, 0x0051483c, 0x00615f52, 0x0061625a, 0x00747670, 0x00c4c6c0, 0x00f3f3f2,
- 0x00eaf6f7, 0x00a8c4ea, 0x006088c6, 0x00497fc7, 0x0087b8d4, 0x00d6f0fa, 0x00f5fdfe, 0x00fcf4fc, 0x00fffbff, 0x00f8fbf7, 0x00fbfdfa, 0x00faf9f9, 0x00f7f7f6, 0x00f7f6f7, 0x00fafafa, 0x00fafbfb,
- 0x00efeff0, 0x00d0d1d1, 0x00c2c0c1, 0x00c2c2c1, 0x00cbc9c9, 0x00d3d0d3, 0x00dcd5d6, 0x00bfaaa7, 0x007d564c, 0x00724b43, 0x0065423e, 0x004d332e, 0x00341f21, 0x00361c20, 0x004a2a30, 0x00673f40,
- 0x008a5448, 0x009c675e, 0x00a47067, 0x00aa7264, 0x00bb745d, 0x00c26b4f, 0x00ba5a3f, 0x00b34b36, 0x00a84641, 0x00a04647, 0x0088494c, 0x00584945, 0x00463634, 0x00332423, 0x001d1110, 0x001b120e,
- 0x001f1615, 0x0028221f, 0x0046403e, 0x00665e5d, 0x00746c69, 0x00716660, 0x0073645d, 0x00806d68, 0x00987a7d, 0x00a88e8d, 0x00b8a6a2, 0x00a8a09a, 0x008a8981, 0x00706c67, 0x00504a47, 0x004c403d,
- 0x00724431, 0x007e503c, 0x00835743, 0x00845847, 0x00855e51, 0x00836259, 0x007d5e5c, 0x00795f62, 0x0072616d, 0x006f606d, 0x006e6374, 0x00736b7f, 0x006e6767, 0x005e5649, 0x004a4430, 0x003c381f,
- 0x00231f15, 0x00110f16, 0x000a0b1b, 0x0003061c, 0x00070d27, 0x002f3347, 0x007a7f89, 0x00a0a3a5, 0x00979690, 0x00848078, 0x007a7470, 0x00878083, 0x00a29ba3, 0x00b0adad, 0x00bfc0bc, 0x00cccec2,
- 0x00dbd2d1, 0x00e2dddb, 0x00ede9e7, 0x00f3eeed, 0x00f8f4f4, 0x00fcfbfa, 0x00fcfcf9, 0x00fdfdfa, 0x00fdfefc, 0x00fefefa, 0x00fdfdfb, 0x00fcfdfc, 0x00fffefc, 0x00fefefb, 0x00fdfefa, 0x00fefefa,
- 0x00fefcf9, 0x00fefcfc, 0x00fefbff, 0x00c6c3ca, 0x0042414b, 0x00282c46, 0x00363e5e, 0x0040486d, 0x00465077, 0x004b537c, 0x004c567c, 0x00505578, 0x00575571, 0x005d576b, 0x00655c67, 0x00685e67,
- 0x006b5f59, 0x006e6057, 0x00716158, 0x00746054, 0x00735c51, 0x006e594b, 0x006a574c, 0x00625247, 0x00625954, 0x00908985, 0x00f4ebe7, 0x00ead9cf, 0x00dd817e, 0x0088678b, 0x00495b9b, 0x002f6ebb,
- 0x00407ec9, 0x005e7db7, 0x00928eaf, 0x00debaaf, 0x00e2effc, 0x00edf4f7, 0x00f3f5fb, 0x00eff2f8, 0x00f0f0f6, 0x00eaebf0, 0x00e6e7ed, 0x00e2e4ea, 0x00e3e5e9, 0x00e5e6eb, 0x00e9eaf0, 0x00eaeaf0,
- 0x00e7eefe, 0x00eaf0fd, 0x00edf5fc, 0x00edf7f6, 0x00eff8f2, 0x00f0f8ee, 0x00f3f9f0, 0x00f8f9f3, 0x00faf9fc, 0x00fbf8fc, 0x00f9f6fa, 0x00f3f5f7, 0x00edeff1, 0x00e7ebed, 0x00e0e2e5, 0x00dcdde1,
- 0x00dadade, 0x00d7d9dd, 0x00d7d8db, 0x00dfdfe7, 0x00dfe0e7, 0x00d3d2e3, 0x00c3c1d0, 0x00c4c8c5, 0x00b6c2c7, 0x008c94b5, 0x00666a90, 0x00585572, 0x006d5e3e, 0x00785e24, 0x00745014, 0x00784815,
- 0x00834a21, 0x009c6a23, 0x00c39735, 0x00d2b02e, 0x00dcc42f, 0x00e1ce49, 0x00e6d76a, 0x00e9da90, 0x00b3a38d, 0x0073645d, 0x00584c58, 0x0052495e, 0x00534a6b, 0x00544d6e, 0x00524c74, 0x004e4a72,
- 0x004b4b6b, 0x004d4b62, 0x00504e58, 0x00545151, 0x005b5446, 0x0060534a, 0x00645145, 0x00674d41, 0x006e4b39, 0x00764a32, 0x007f482a, 0x00874521, 0x0095471e, 0x00a04a1f, 0x00a74c22, 0x00aa4e20,
- 0x00fdfafe, 0x00fefbfe, 0x00fcfafe, 0x00fcfbff, 0x00faf8fd, 0x00fffdff, 0x00fdfbfd, 0x00fefbfd, 0x00fdfcff, 0x00fdfdff, 0x00fdfcfd, 0x00fbfcfa, 0x00fcfcfb, 0x00fbfdfb, 0x00fbfdfa, 0x00fbfdfc,
- 0x00fbfcfb, 0x00fcfefd, 0x00fbfcfc, 0x00fdfefb, 0x00fcfcfc, 0x00fdfdf9, 0x00fefdf9, 0x00fefdfb, 0x00fffdf9, 0x00fdfdf9, 0x00fdfdf8, 0x00fdfdf8, 0x00fefdf8, 0x00fdfdf7, 0x00fcfcf6, 0x00fcfdf6,
- 0x00f6fffc, 0x00f6fefc, 0x00f7fefc, 0x00f7fefc, 0x00f6fffd, 0x00f5fffd, 0x00f6fffd, 0x00f7fffe, 0x00f5fdff, 0x00f7ffff, 0x00f8fcfb, 0x00fdfefb, 0x00fefffb, 0x00fefdfa, 0x00fdfcfa, 0x00fcfdfb,
- 0x00fcfef9, 0x00fdfefa, 0x00fdfdf9, 0x00fefdf9, 0x00fffdfa, 0x00fefcfb, 0x00fffefc, 0x00fefdfb, 0x00fefffa, 0x00fffffc, 0x00fdfdfc, 0x00fcfcfb, 0x00fefdfc, 0x00fdfcfb, 0x00fdfcfa, 0x00fdfbfa,
- 0x00fcfefb, 0x00fcfefb, 0x00fcfefb, 0x00fdfefb, 0x00fdfdfb, 0x00fdfdfb, 0x00fdfdfb, 0x00fdfdfb, 0x00fefdfb, 0x00fdfdfb, 0x00fcfdfb, 0x00fcfdfb, 0x00fdfdfb, 0x00fdfdfb, 0x00fcfdfb, 0x00fbfdfb,
- 0x00fefdfc, 0x00fdfdfb, 0x00fdfdfb, 0x00fdfdfa, 0x00fdfdfb, 0x00fcfbfb, 0x00fbfafc, 0x00fbfafd, 0x00fbfcfc, 0x00fbfbfb, 0x00fbfbfb, 0x00fbfbfb, 0x00fcfcfd, 0x00fcfcfd, 0x00fcfbfc, 0x00fbfbfb,
- 0x00fdfefe, 0x00fdfefe, 0x00fefffe, 0x00fefffe, 0x00fefefe, 0x00fdfdfd, 0x00fcfbfc, 0x00fbfafb, 0x00fcfcfc, 0x00fcfcfc, 0x00fcfcfc, 0x00fcfbfc, 0x00fcfcfe, 0x00fcfcfd, 0x00fbfcfc, 0x00fcfdfc,
- 0x00fdfffe, 0x00fdfffd, 0x00fcfefc, 0x00fdfffc, 0x00fefdfc, 0x00fffefe, 0x00fefdff, 0x00fefdff, 0x00fffefe, 0x00fefeff, 0x00f9fcfc, 0x00f4f8f6, 0x009ea3a1, 0x00666b69, 0x00919692, 0x00adb1af,
- 0x00b5bfb8, 0x00acb4ae, 0x00979e98, 0x00848d87, 0x0069726c, 0x00545b56, 0x003d443f, 0x002e332f, 0x001e2720, 0x001a221c, 0x00152017, 0x0014211c, 0x00162219, 0x000e1a16, 0x001b292c, 0x00354154,
- 0x00465389, 0x004f5ea4, 0x00576ab8, 0x005972c1, 0x005775c0, 0x005e7cc9, 0x005e7cc7, 0x005f7fcc, 0x006489db, 0x006e8dec, 0x007590f4, 0x00758cf4, 0x007282da, 0x007581bf, 0x008690b6, 0x008d96a7,
- 0x00b0abc4, 0x00c9c3dd, 0x00c8c1db, 0x00bbb5ce, 0x00b8b2c9, 0x00b7b2c7, 0x00bbb4c8, 0x00c1b8cd, 0x00cbbfd6, 0x00cec3d8, 0x00cfc4d6, 0x00d6cedc, 0x00d7d0de, 0x00d4ceda, 0x00d3ced8, 0x00d6d1db,
- 0x00e3dde4, 0x00e3dee6, 0x00e3dee6, 0x00e8dfe6, 0x00ede6eb, 0x00f5effa, 0x00f7f6fc, 0x00f8f9fc, 0x00f7f7ee, 0x00f1eeec, 0x00ebe9e8, 0x00ede9f2, 0x00f6f5ff, 0x00f7f9fe, 0x00f6fefe, 0x00f3fefd,
- 0x00fbfbfe, 0x00fbffff, 0x00d5e1f6, 0x007a9ac1, 0x001a64c1, 0x00256fd4, 0x003776d3, 0x005c80c6, 0x00b3bed7, 0x00dfecf7, 0x00e0eae4, 0x00ccd1be, 0x008f937c, 0x007b7e69, 0x007e816a, 0x007a7e67,
- 0x007c8168, 0x007d806d, 0x00828374, 0x0086887a, 0x00898b81, 0x008a8f7d, 0x008b927b, 0x008b927c, 0x008b8e78, 0x008c8c76, 0x00898972, 0x0083836d, 0x00878775, 0x00888b7c, 0x0084887b, 0x0094988a,
- 0x00cacbc8, 0x00edeeea, 0x00fcfdf8, 0x00fcfef6, 0x00fbfcf4, 0x00fcfef6, 0x00fcfef8, 0x00fffffc, 0x00ffffff, 0x00ffffff, 0x00fdfefd, 0x00fffffd, 0x00adadaa, 0x00646462, 0x00888887, 0x00babbba,
- 0x00e9e9e6, 0x00f8f9f7, 0x00fefefc, 0x00fffefc, 0x00fdfefe, 0x00fefeff, 0x00fffeff, 0x00fcfdff, 0x00fafbfb, 0x00f9fdfb, 0x00fbfdfd, 0x00fcfdfe, 0x00f9fbfc, 0x00fcfeff, 0x00fdfdfd, 0x00fcfcfb,
- 0x00fffdfd, 0x00fefefe, 0x00fdfdfd, 0x00ffffff, 0x00fffefe, 0x00fdfefc, 0x00fbfefb, 0x00fcfffc, 0x00fefdff, 0x00fefeff, 0x00fcfdfc, 0x00fefffe, 0x00fbfcfb, 0x00fefefd, 0x00fffefd, 0x00fffdfb,
- 0x00fdfbfc, 0x00fdfcfb, 0x00fdfcfb, 0x00fffdfe, 0x00fcf9fb, 0x00fefefe, 0x00fcfdfb, 0x00fdfdfc, 0x00fffcfc, 0x00fffcfb, 0x00faf8f6, 0x00fbf9f7, 0x00fdf8f7, 0x00fdf7f6, 0x00f3edea, 0x00eee5e1,
- 0x00dedee1, 0x00d5d3d4, 0x00c6c3c1, 0x00b9b5ae, 0x00a9a39a, 0x009a9388, 0x008a8276, 0x007d7568, 0x00716760, 0x00685d56, 0x0061544f, 0x005b4d4a, 0x00514340, 0x00463732, 0x003a2a24, 0x0034221d,
- 0x00281410, 0x00250d09, 0x00220b03, 0x00250d05, 0x001f0a01, 0x003e372e, 0x00b8bab2, 0x00f7faf2, 0x00fdfcf8, 0x00fefefb, 0x00fbfcfa, 0x00f8faf9, 0x00babbbd, 0x0079787c, 0x00605f65, 0x0055545d,
- 0x0046464b, 0x003b3a3f, 0x002e2d32, 0x0027262b, 0x00212126, 0x001d1e21, 0x00242328, 0x002e2d32, 0x003b3e42, 0x004c4b52, 0x00575a65, 0x005a6682, 0x005a7ab6, 0x005381d8, 0x004782e4, 0x003f85f0,
- 0x004287e5, 0x004384df, 0x003f82d8, 0x003d7fd8, 0x00377be1, 0x00347de8, 0x003381ea, 0x00357ee1, 0x003673d0, 0x00457dce, 0x005d91df, 0x006293df, 0x004472c1, 0x003969b8, 0x003f70c5, 0x003c6fc5,
- 0x003b5bae, 0x002f55ab, 0x00264fa9, 0x002651b0, 0x001f53b9, 0x001b4eb9, 0x001a48b9, 0x001e4cbe, 0x002c55c6, 0x002a50c1, 0x001f43aa, 0x001d3f96, 0x0015348a, 0x0008267e, 0x00102e8a, 0x001f47a4,
- 0x001d4aad, 0x0019419f, 0x00294aa1, 0x006b7dca, 0x00b0b1f2, 0x00b4bfdd, 0x0095a0c3, 0x004b4d93, 0x00534ca8, 0x00a09ddd, 0x00aaa9d0, 0x00abacc5, 0x00a0a0c8, 0x008383b9, 0x00595c90, 0x00373b6b,
- 0x000c266c, 0x000f2671, 0x0030428e, 0x006b78c3, 0x0097a1dc, 0x0098a3d5, 0x0096a2cc, 0x009fabd5, 0x008fa4d7, 0x005669a8, 0x001f2c7b, 0x001c227f, 0x000d1970, 0x00031560, 0x0001073f, 0x003c4663,
- 0x00dddccd, 0x00fcfbe7, 0x00fff7e8, 0x00fff8f7, 0x00fcf7fe, 0x00f8fbfa, 0x00f8fef7, 0x00fbfff8, 0x00e3e4cb, 0x00c6c298, 0x00bcb478, 0x00cdbd71, 0x00d9c06f, 0x00d6b76e, 0x00d7b575, 0x00e9c38a,
- 0x00e8c28a, 0x00d6b676, 0x00c1a558, 0x00cdb460, 0x00dcbe65, 0x00c19e51, 0x00704b0d, 0x005f3d12, 0x00c1b39e, 0x00f8f5eb, 0x00eceeec, 0x00ebe9ee, 0x00efeef4, 0x00f5f1fb, 0x00f9f3fc, 0x00fdf5ff,
- 0x00fdf8ff, 0x00fef8ff, 0x00fdf6fd, 0x00fcf5f8, 0x00fcf5f5, 0x00f9f6f4, 0x00f8f6f4, 0x00f9f7f4, 0x00f9f6f4, 0x00fcfbf9, 0x00fdfcfa, 0x00fdfafa, 0x00fcf9fb, 0x00fafafa, 0x00f8fbfa, 0x00f7fbf8,
- 0x00f9f6f9, 0x00fbfafa, 0x00f8fdf9, 0x00f6fafd, 0x00ecf7fa, 0x00dee8f4, 0x00b7c3db, 0x00959eb8, 0x00767d8f, 0x007d858f, 0x0093a48f, 0x007f985d, 0x0072914f, 0x00759851, 0x00729b4c, 0x00719949,
- 0x006f9946, 0x006d9947, 0x00709748, 0x0071964b, 0x0071964c, 0x0075964a, 0x00739344, 0x006c9544, 0x00679a47, 0x00689747, 0x006a8f46, 0x00869e5e, 0x00d4d9a9, 0x00f5f3cb, 0x00f8f7d5, 0x00f6f5d7,
- 0x00fef1c5, 0x00f6ecc7, 0x00eee8c6, 0x00cfd4b0, 0x007f9c5b, 0x00628b3b, 0x005e8a31, 0x0068913c, 0x00c0ca9f, 0x00dbcfc3, 0x007f6373, 0x005d3268, 0x00294386, 0x00274295, 0x0030479f, 0x00424599,
- 0x00303875, 0x00291f59, 0x00230a3a, 0x00391339, 0x0068515a, 0x007c7670, 0x0078796c, 0x006a6d61, 0x00494b41, 0x001b1d12, 0x000c0e04, 0x001a1c11, 0x001e2014, 0x00181a0d, 0x00262a1b, 0x00202415,
- 0x00050424, 0x00050525, 0x0008092d, 0x000a0d33, 0x000e1340, 0x00131b49, 0x001c2758, 0x00283469, 0x0031417d, 0x0041528a, 0x004e649b, 0x005776ac, 0x006d82ba, 0x008292be, 0x00b0bede, 0x00eaf4f9,
- 0x00b4c3ab, 0x004c5d36, 0x00283e0c, 0x002a3f0c, 0x001d3809, 0x001c340b, 0x001a330f, 0x000b2103, 0x00475445, 0x00c3cbc3, 0x00f6fbfc, 0x00fafcfe, 0x00fbf8fd, 0x00fefbfd, 0x00f1ece8, 0x00938e89,
- 0x002d0c00, 0x003b1b04, 0x00533215, 0x00643b1c, 0x00713c11, 0x007c3f12, 0x007d4211, 0x00753c0f, 0x007c553a, 0x00bfa696, 0x00fbfbf1, 0x00fdfdfe, 0x00fafdff, 0x00fafff9, 0x00f7f6ed, 0x00bcb2a2,
- 0x006f5040, 0x007d5242, 0x008b5c4a, 0x00804d3a, 0x00673b24, 0x00412319, 0x0027140e, 0x001f0e07, 0x0023160c, 0x00392b22, 0x0053493d, 0x00645f52, 0x0067635c, 0x00696560, 0x009a9693, 0x00e7e4e5,
- 0x00faf9f0, 0x00ccdef8, 0x00759ad4, 0x004781cc, 0x0068a2c4, 0x00badcea, 0x00effbfc, 0x00fdf7fc, 0x00fcfbfd, 0x00fafcf8, 0x00fbfdfc, 0x00faf9fb, 0x00faf9f9, 0x00f9fafa, 0x00fbfcfc, 0x00fbfdfc,
- 0x00e5e8e4, 0x00bec0c0, 0x00b1b3b4, 0x00c4c5c4, 0x00d1cece, 0x00d5d2d5, 0x00dad5d8, 0x00b4a8a7, 0x005a4a3f, 0x00483530, 0x003a2827, 0x002c1e23, 0x0022141c, 0x002e1a22, 0x00442e2e, 0x005f423c,
- 0x00825f56, 0x00956f68, 0x009c716a, 0x00a56d65, 0x00b56655, 0x00ba5a45, 0x00ae452e, 0x00a93d29, 0x00a9473d, 0x00a74b4a, 0x00905150, 0x0067544d, 0x0055453f, 0x0044322e, 0x002a1b17, 0x00251712,
- 0x002c1e1c, 0x00372b28, 0x004e4341, 0x0069615f, 0x00756e69, 0x006c635c, 0x0064564f, 0x006b5652, 0x00806062, 0x00927475, 0x00a38a8c, 0x00938585, 0x006f6a69, 0x00544e4e, 0x003c3336, 0x00403234,
- 0x006e3a2d, 0x007b4639, 0x007e4b3f, 0x007f4d44, 0x00865651, 0x00875d5b, 0x00835d60, 0x00836067, 0x00836b78, 0x00836b7d, 0x007b697d, 0x007c7184, 0x00746b6a, 0x0060574b, 0x004b4331, 0x003b3420,
- 0x001c1510, 0x00130f18, 0x0016161f, 0x001f1f30, 0x00383d49, 0x006e707e, 0x00acb0b5, 0x00cbcbcd, 0x00c9c8c2, 0x00c8c6bf, 0x00d1ccca, 0x00dfd9e0, 0x00f0edf0, 0x00f6f5f6, 0x00fbfaf7, 0x00fcfef3,
- 0x00fffdfc, 0x00fffcfb, 0x00fefcfb, 0x00fefcfb, 0x00fffcfd, 0x00fefdfc, 0x00fefefb, 0x00fffefb, 0x00fcfcfa, 0x00fdfcf9, 0x00fefdfc, 0x00fefefe, 0x00fefdfc, 0x00fefefb, 0x00fcfdfa, 0x00fdfefa,
- 0x00fefffa, 0x00fcfdfc, 0x00fcfdfd, 0x00d6d7dd, 0x00505158, 0x002a2b3d, 0x003a3d54, 0x00484a66, 0x00515272, 0x00555777, 0x00545573, 0x0055536c, 0x005c5466, 0x00635861, 0x006c5e60, 0x006f6160,
- 0x00766258, 0x007b6458, 0x007e6654, 0x00826452, 0x0082614b, 0x007e5e49, 0x007a5e48, 0x00705845, 0x00645446, 0x008e7e75, 0x00ebe0d1, 0x00e1ccb6, 0x00d1787b, 0x009071a4, 0x004f67b1, 0x00266bb4,
- 0x003e72bc, 0x005c7fc2, 0x008799c4, 0x00c8bdc4, 0x00d8e6fc, 0x00e9eef8, 0x00f3f6fb, 0x00f4f5fa, 0x00eff2f6, 0x00eaedf2, 0x00e7eaef, 0x00e4e7eb, 0x00e4e6eb, 0x00e6e7ec, 0x00eaeaef, 0x00ebeaf1,
- 0x00e1eefc, 0x00e5f0fd, 0x00ebf5fd, 0x00ecf7f9, 0x00edf7f7, 0x00eff8f6, 0x00f2faf7, 0x00f4f9f9, 0x00f5f9fd, 0x00f7f7fe, 0x00f5f6fb, 0x00f3f4f6, 0x00eaeeee, 0x00e6e8e9, 0x00dcdfe3, 0x00dadbe0,
- 0x00d6dbde, 0x00d6dadf, 0x00d8d8dd, 0x00e0dfe7, 0x00dddee4, 0x00d0cddb, 0x00c3c0d4, 0x00c1c4d6, 0x008c9ab8, 0x004d598d, 0x002b386f, 0x00343e6b, 0x00534c4f, 0x0066543f, 0x006f5434, 0x006f4726,
- 0x008a4f2b, 0x00b17b35, 0x00c89a2f, 0x00d1ad1a, 0x00dfc10f, 0x00e3ca23, 0x00e0c93a, 0x00e3cb5b, 0x00d6bd86, 0x00b09775, 0x007a685b, 0x005d4e5a, 0x0053455a, 0x00544965, 0x00555072, 0x00534d70,
- 0x00504f6b, 0x00514e65, 0x00535059, 0x00565353, 0x005a5549, 0x005c524a, 0x005e4d47, 0x00614a42, 0x00684635, 0x006f462d, 0x00774427, 0x007e4321, 0x008a451f, 0x00944721, 0x009c4b25, 0x009f4c23,
- 0x00fffbfe, 0x00fffdff, 0x00faf7fa, 0x00fefdfd, 0x00f9f8f9, 0x00fbfaf9, 0x00fffdfc, 0x00fffdfb, 0x00fffcfc, 0x00fffdf9, 0x00fefcf9, 0x00fdfdfb, 0x00fefefb, 0x00fefdf9, 0x00fefcf9, 0x00fffcfb,
- 0x00fefefd, 0x00fdfdfa, 0x00fdfcf7, 0x00fcfaf9, 0x00fdfcf8, 0x00fcfbf9, 0x00fefefc, 0x00fdfdfb, 0x00fefefc, 0x00fdfdfb, 0x00fdfcfa, 0x00fdfcfa, 0x00fdfdfa, 0x00fdfdfb, 0x00fefdfb, 0x00fefcfa,
- 0x00fbfefd, 0x00fbfefd, 0x00fcfefd, 0x00fbfefc, 0x00fafefb, 0x00fbfffc, 0x00fcfffd, 0x00fdfffc, 0x00fefefd, 0x00fefdfb, 0x00fdfefc, 0x00fbfcf9, 0x00fdfdfa, 0x00fdfdfb, 0x00fefefc, 0x00fdfcfb,
- 0x00fdfcf9, 0x00fefcfa, 0x00fefbfb, 0x00fffcfc, 0x00fefcfc, 0x00fdfcfb, 0x00fdfdfb, 0x00fcfdfb, 0x00fefdfe, 0x00fefdfc, 0x00fefefc, 0x00fdfefb, 0x00fefffc, 0x00fefffc, 0x00fcfefb, 0x00fdfefb,
- 0x00fffcfd, 0x00fefdfd, 0x00fdfdfc, 0x00fdfdfb, 0x00fdfdfb, 0x00fefdfa, 0x00fdfefb, 0x00fcfffa, 0x00fefffc, 0x00fefefb, 0x00fffcfb, 0x00fffcfa, 0x00fffcfb, 0x00fefdfb, 0x00fefdfb, 0x00fefdfa,
- 0x00fffefd, 0x00fffdfc, 0x00fffdfb, 0x00fefdfa, 0x00fefdfb, 0x00fdfcfc, 0x00fefcfd, 0x00fffcff, 0x00fefcfd, 0x00fdfcfd, 0x00fefcfe, 0x00fefcfe, 0x00fefcfd, 0x00fdfcfc, 0x00fefcfd, 0x00fdfcfd,
- 0x00fffefd, 0x00fefefd, 0x00fefdfd, 0x00fdfdfd, 0x00fdfdfd, 0x00fcfdfd, 0x00fdfdfe, 0x00fdfefe, 0x00fefdfe, 0x00fdfdfd, 0x00fefdfe, 0x00fdfdfd, 0x00fcfcfb, 0x00fdfdfc, 0x00fdfdfe, 0x00fdfcfe,
- 0x00fbfbfc, 0x00fcfbfc, 0x00fcfbfb, 0x00fdfcfb, 0x00fbfcfa, 0x00fdfdfb, 0x00fdfdfb, 0x00fefdfb, 0x00fcfbfd, 0x00fcfcfc, 0x00fbfdfc, 0x00f4f7f6, 0x009ea3a1, 0x006b716f, 0x00a3aaa8, 0x00d3dbd7,
- 0x00f7f8f7, 0x00f7faf8, 0x00f4f6f4, 0x00eeefed, 0x00dcdedc, 0x00d0d3d0, 0x00c1c4c1, 0x00adb2ae, 0x00999a9a, 0x00878884, 0x00717676, 0x005a6462, 0x00475145, 0x00364030, 0x00303a32, 0x00343a42,
- 0x0043497a, 0x004a5493, 0x005864ae, 0x005a6fb2, 0x005e7bb7, 0x005f75bd, 0x005f72c1, 0x005d79c1, 0x006888d2, 0x006f90e1, 0x007191ef, 0x006e8bf0, 0x00748ced, 0x007d8ed9, 0x00818dc4, 0x009ca9ca,
- 0x00b9b1ce, 0x00c8c1dc, 0x00cfc8e3, 0x00d3cbe6, 0x00d5cbe5, 0x00ccc0da, 0x00ccbfd8, 0x00d2c6dd, 0x00ddcfe4, 0x00dfd4e7, 0x00dcd3e4, 0x00d8d1e1, 0x00d3ccdb, 0x00d9d3e1, 0x00e0dbe8, 0x00e1dde8,
- 0x00e9e0ec, 0x00e7e4ea, 0x00eee8ed, 0x00f1edf0, 0x00faf3fb, 0x00fbf4fd, 0x00f7f0fd, 0x00eaeff0, 0x00e7eee7, 0x00ebf3e8, 0x00f2f6f3, 0x00f9f6f8, 0x00fcf7fd, 0x00fdf9fb, 0x00fbfafe, 0x00f9f9fc,
- 0x00f9fbff, 0x00fcfdfd, 0x00e4e8f8, 0x0091a7cd, 0x002c74d0, 0x00276cd1, 0x004277ce, 0x0089a0d5, 0x00dcd6e0, 0x00e5e8e4, 0x00e5eadf, 0x00c3c8b1, 0x00818570, 0x00767a60, 0x007a7f61, 0x007a815e,
- 0x00797d63, 0x00777c61, 0x00797c66, 0x007d7f6e, 0x00818375, 0x00828977, 0x00848b79, 0x00858b78, 0x00888b76, 0x00868673, 0x00868572, 0x0083836e, 0x0082826f, 0x007c7f6f, 0x008f9688, 0x00bdc4b7,
- 0x00f5f5f3, 0x00fefefc, 0x00f9f9f6, 0x00f9f9f4, 0x00fdfef8, 0x00fdfef8, 0x00fffffc, 0x00ffffff, 0x00fefdfe, 0x00fefdfd, 0x00fefefd, 0x00f6f8f4, 0x00a0a19d, 0x00646563, 0x00929291, 0x00c2c1bf,
- 0x00eae8e7, 0x00fdfafa, 0x00fbfaf9, 0x00fbfbfa, 0x00fefdfd, 0x00fefdfc, 0x00fbfcf9, 0x00fcfcfb, 0x00fefbfd, 0x00fdfbfd, 0x00fcfdff, 0x00fcfefe, 0x00fdfefe, 0x00f9fcfb, 0x00f9fcfc, 0x00fcfdfe,
- 0x00fdfffe, 0x00fdfefd, 0x00fbfcfa, 0x00f9fbf8, 0x00f8fbf8, 0x00f9faf7, 0x00fcfbf9, 0x00fcfcfa, 0x00fefdf8, 0x00fdfcf8, 0x00fffcf8, 0x00fffcf7, 0x00fefbf5, 0x00fbf8f3, 0x00f7f5f1, 0x00f6f4f2,
- 0x00f8f4f2, 0x00f3efeb, 0x00efe8e3, 0x00ede2de, 0x00e3d8d3, 0x00dad0c8, 0x00d2c8c0, 0x00ccc1ba, 0x00c4b8b5, 0x00bcaea8, 0x00ad9e96, 0x009d8d84, 0x0098847d, 0x0088756c, 0x0079685a, 0x00705e4d,
- 0x0063534d, 0x00594942, 0x00503e35, 0x004a3729, 0x00402d1b, 0x003a2611, 0x0033200a, 0x002f1b07, 0x002e170b, 0x00291207, 0x00260f04, 0x002a1205, 0x002e1405, 0x00321806, 0x00351b06, 0x00361c05,
- 0x003a1e0a, 0x00361b05, 0x003b1c07, 0x003e1e08, 0x003e2009, 0x005f5646, 0x00d5d5cf, 0x00fcfcf7, 0x00fefdf9, 0x00fcfbf9, 0x00fffeff, 0x00f2f2f3, 0x00a7a8ac, 0x006b6c71, 0x0058575f, 0x004b4a54,
- 0x003f3d44, 0x00302f35, 0x00202025, 0x001a191f, 0x0016151c, 0x00121018, 0x0015131b, 0x001c1b21, 0x002d2a31, 0x003a3a3f, 0x00454857, 0x00505876, 0x00637dbd, 0x005988d9, 0x004683e1, 0x003c81e5,
- 0x004185e5, 0x004181db, 0x003e80d7, 0x003c7ed7, 0x00397ae0, 0x003d7ceb, 0x003c7be5, 0x003d77d7, 0x005887cc, 0x0083abdd, 0x00aecff3, 0x00b5d1f2, 0x009ab2d9, 0x0090a8d6, 0x009db6e6, 0x009ab3ea,
- 0x008ea4de, 0x007691d0, 0x004d6eb1, 0x003056a4, 0x002656af, 0x002053b2, 0x00194ab1, 0x001545ab, 0x001a45ad, 0x002148af, 0x00254cb1, 0x001e45a3, 0x0017378f, 0x000b287e, 0x000b277b, 0x0014348c,
- 0x001a3e9f, 0x00193f9d, 0x00163791, 0x003a55a5, 0x008e9be6, 0x00adc1f0, 0x006d7fb1, 0x00252e84, 0x003e41a8, 0x007980c5, 0x0099a3d2, 0x0099a6bf, 0x006370a0, 0x00283377, 0x000f1a67, 0x00091564,
- 0x0014287e, 0x002d4085, 0x007685bf, 0x009da6d1, 0x00a6aace, 0x00a1a2cb, 0x00a3a4d4, 0x00a7a9e4, 0x00747cbb, 0x002f417a, 0x00142160, 0x00101858, 0x00021061, 0x00051770, 0x0015297b, 0x002f4382,
- 0x00959db3, 0x00d3d6d7, 0x00fdfaf4, 0x00fefdfa, 0x00fcfaff, 0x00f5fbfb, 0x00f4fdf5, 0x00f9fdfb, 0x00f7f5f4, 0x00efece0, 0x00efe6ce, 0x00ede5bf, 0x00efe1b2, 0x00dfd1a6, 0x00dbc79d, 0x00e8d2b0,
- 0x00e2c194, 0x00bea471, 0x00a89159, 0x00c2ad6b, 0x00d2b26d, 0x00bc904d, 0x00855417, 0x006c400d, 0x00a48f73, 0x00dfdbc4, 0x00f5f5ee, 0x00efeeed, 0x00f3eef2, 0x00f5f3f7, 0x00f9f5fd, 0x00faf6fd,
- 0x00fbf5ff, 0x00f9f7ff, 0x00f8f8ff, 0x00f9f8fc, 0x00fbf9f9, 0x00faf9f8, 0x00f7f7f7, 0x00f4f7f4, 0x00f6f8f8, 0x00fafbfc, 0x00fafbfc, 0x00f8fbfa, 0x00f8faf9, 0x00f9f9f8, 0x00fbf9f9, 0x00fcf9fb,
- 0x00fcf8fb, 0x00fafaf8, 0x00fafcfa, 0x00f6faf4, 0x00f9fbff, 0x00f7fbfd, 0x00f6f8fc, 0x00f2f3fc, 0x00dfe0df, 0x00bfc1b3, 0x00939f7b, 0x00739249, 0x0075984f, 0x0079a252, 0x0070994a, 0x00719b4a,
- 0x00709a47, 0x006e9a47, 0x0070984b, 0x0071984b, 0x0073964f, 0x0079954a, 0x00789247, 0x00709546, 0x006b9b4a, 0x006c9a4b, 0x006d944a, 0x00819a58, 0x00c8ce9b, 0x00f5f6c9, 0x00f9fad2, 0x00f6f6d0,
- 0x00fff1c9, 0x00f8ecca, 0x00efe8c8, 0x00d2d7b3, 0x007d9d5b, 0x00679242, 0x0066923d, 0x00648c3c, 0x00959870, 0x00a9988f, 0x006e516e, 0x005b3980, 0x0039548f, 0x0039549d, 0x00405cb0, 0x004157b6,
- 0x0034438b, 0x00422f62, 0x00512043, 0x00873f56, 0x00afa2a7, 0x00beb7b7, 0x00bbbcb7, 0x00b1b0ab, 0x00969592, 0x0066665f, 0x0016160f, 0x00181910, 0x002f3222, 0x00292d1c, 0x002f3222, 0x00313421,
- 0x00181734, 0x000b0b27, 0x000b0d2a, 0x000d1130, 0x000c1239, 0x000e1742, 0x00162051, 0x001f2a5f, 0x00283871, 0x0035457f, 0x00475996, 0x00516da7, 0x007286bf, 0x008e9bc6, 0x00c7d4f2, 0x00f1fafd,
- 0x00b9c4a4, 0x00526433, 0x0040561f, 0x0037531b, 0x002f4f1a, 0x002d4916, 0x002e4515, 0x00183107, 0x006a7862, 0x00e0e8db, 0x00f8fcfa, 0x00fbfdfd, 0x00fefbfe, 0x00fcfbfc, 0x00ded8d6, 0x00716a69,
- 0x00391301, 0x00442008, 0x005c3618, 0x006b4320, 0x0077411b, 0x00783f0e, 0x007c4010, 0x00723a0c, 0x006a4326, 0x00a9917d, 0x00fefbf3, 0x00fcfbfe, 0x00f7fdff, 0x00f3fef8, 0x00f6faf3, 0x00ccc6b7,
- 0x007c5b51, 0x00795045, 0x00845950, 0x00724d3f, 0x004d3c2b, 0x002d201b, 0x00160d0e, 0x00120a05, 0x0021140e, 0x00362920, 0x0053453a, 0x00665a4f, 0x006c6159, 0x00635753, 0x006b6061, 0x00b6adaf,
- 0x00fcf2dd, 0x00dfeff5, 0x0087aae7, 0x004184d0, 0x004c91ba, 0x009cc3d6, 0x00e7f7fd, 0x00fef8fd, 0x00fffaff, 0x00f7fbf6, 0x00f5faf6, 0x00f1f4f4, 0x00f3f4f4, 0x00f8f8f8, 0x00fbfbfb, 0x00faf9fa,
- 0x00eae9ea, 0x00cdd0d0, 0x00bcbdbf, 0x00c6c7c6, 0x00d2d1cf, 0x00d3d2d3, 0x00d8d9d9, 0x00a4a39f, 0x0038352c, 0x0023201a, 0x001e1c1c, 0x00151318, 0x0018121e, 0x00281c21, 0x003b2d2d, 0x004f3d36,
- 0x006a5954, 0x007e6863, 0x008e6766, 0x00945c5b, 0x00a34943, 0x00a53a2e, 0x00a22e1e, 0x00a22e1d, 0x00a9483e, 0x00aa5451, 0x009a5b59, 0x007b665d, 0x006c554d, 0x0057433b, 0x003c2822, 0x0033221b,
- 0x003f2e2a, 0x00493b36, 0x005f5551, 0x00746d69, 0x00807a75, 0x00746c64, 0x0062534b, 0x0058433d, 0x00623e42, 0x006c4b51, 0x00795d63, 0x006c585e, 0x004c4147, 0x00372e34, 0x00292027, 0x00332430,
- 0x00572c26, 0x005e342d, 0x00613832, 0x00653c37, 0x00744b4a, 0x00785354, 0x0079575c, 0x00795b64, 0x007a6275, 0x00766174, 0x00726277, 0x00776e79, 0x007b7373, 0x00766e64, 0x00776f61, 0x00786f64,
- 0x007e7177, 0x0087818b, 0x009d98a3, 0x00a9aaad, 0x00c2c6c3, 0x00d6d9dd, 0x00ebebf1, 0x00f6f5f6, 0x00fafbf7, 0x00fcfcfa, 0x00fdfafb, 0x00fefafc, 0x00fdfcff, 0x00fafcfb, 0x00f8fdf8, 0x00f5fff1,
- 0x00fffcfe, 0x00fffafa, 0x00fef9fa, 0x00fdfbfa, 0x00fefdfa, 0x00fefefb, 0x00fcfbfa, 0x00fbfcfb, 0x00fefdfd, 0x00fcfdfb, 0x00fefdfd, 0x00fbfafc, 0x00fbfcfb, 0x00fcfdfa, 0x00fffffb, 0x00fafbf5,
- 0x00fbf9f8, 0x00f5f5f1, 0x00f6f4f5, 0x00d7d5db, 0x00696671, 0x0034303c, 0x00433e4a, 0x00524e5a, 0x005a576a, 0x005e5969, 0x005d5665, 0x005f5661, 0x0067585a, 0x006d5a57, 0x00756057, 0x007b6355,
- 0x00836455, 0x00876654, 0x008b6752, 0x0091674c, 0x00926547, 0x008f6441, 0x008b6344, 0x00805c40, 0x0071553d, 0x008e7660, 0x00e7d1b6, 0x00d5c399, 0x00be7085, 0x008275ba, 0x005174c9, 0x00256cb0,
- 0x00426cb5, 0x004477c4, 0x006993d2, 0x009fb8d6, 0x00cdd4f7, 0x00e0e3f2, 0x00f0eff4, 0x00f2f5fa, 0x00f1f3f8, 0x00edf0f4, 0x00ecedf2, 0x00e9ebef, 0x00e8eaef, 0x00e8eaef, 0x00e9ecf0, 0x00e9ecef,
- 0x00e6f0f3, 0x00e7f1f3, 0x00edf5f7, 0x00eff5fa, 0x00eff4fd, 0x00f1f5fc, 0x00f3f7fe, 0x00f2f6ff, 0x00f3f5fc, 0x00f1f4fa, 0x00f2f2f7, 0x00f0f3f3, 0x00e9eceb, 0x00e2e5e7, 0x00dddde2, 0x00dbdfe2,
- 0x00d9dce1, 0x00d5d8dc, 0x00d7d9e0, 0x00dbdee5, 0x00d8dae3, 0x00cdcacd, 0x00c3c1cb, 0x00a6abc9, 0x0053639c, 0x00233b73, 0x0026437a, 0x002b4679, 0x002d3461, 0x003b364d, 0x00594d4f, 0x005d4c34,
- 0x00916022, 0x00b0832a, 0x00c29924, 0x00d0ab14, 0x00e6c111, 0x00ebc51e, 0x00e5c223, 0x00e1bd32, 0x00e8c558, 0x00e4c560, 0x00c2a95a, 0x00998a62, 0x0073634a, 0x00605447, 0x005b5053, 0x005b525d,
- 0x005f546b, 0x005b5363, 0x0058525e, 0x00595356, 0x005c524f, 0x005b4f4c, 0x00594b48, 0x005a483f, 0x00614233, 0x00673f2d, 0x00713e26, 0x00783e22, 0x00814123, 0x00874426, 0x008b4827, 0x008d4827,
- 0x00f7f8f4, 0x00efeeeb, 0x00f5f3f2, 0x00f0f0eb, 0x00f9f8f4, 0x00f5f4ef, 0x00f8f6f1, 0x00f8f5ee, 0x00faf7ef, 0x00f9f7ec, 0x00f9f6ef, 0x00f8f5f4, 0x00f9f5f3, 0x00f9f5f1, 0x00faf5f0, 0x00faf5f1,
- 0x00f8f5ef, 0x00f9f5ee, 0x00f8f5ec, 0x00f8f6f0, 0x00f7f6ed, 0x00f7f6f4, 0x00f5f6f5, 0x00f5f6f4, 0x00f3f6f4, 0x00f4f6f4, 0x00f5f6f5, 0x00f6f6f5, 0x00f5f6f5, 0x00f4f6f5, 0x00f6f6f6, 0x00f7f6f7,
- 0x00f4f5f5, 0x00f6f6f5, 0x00f7f6f5, 0x00f6f6f4, 0x00f8f7f3, 0x00f9f7f3, 0x00faf6f3, 0x00f9f5f1, 0x00fcf5f0, 0x00fbf5ef, 0x00fbf5f2, 0x00f6f2f3, 0x00f7f3f4, 0x00f7f4f2, 0x00f9f6f4, 0x00f6f4f0,
- 0x00f8f5f0, 0x00f9f5f2, 0x00f9f4f4, 0x00f8f5f5, 0x00f8f5f6, 0x00f6f5f2, 0x00f5f7f1, 0x00f5f5f0, 0x00f5f5f1, 0x00f4f5f1, 0x00f5f6f1, 0x00f7f9f2, 0x00f8f9f4, 0x00f7f8f3, 0x00f7f8f2, 0x00f6f7f1,
- 0x00f5f4f1, 0x00f5f4f1, 0x00f3f5f0, 0x00f3f5f0, 0x00f5f5f1, 0x00f5f5f1, 0x00f5f7f2, 0x00f5f8f2, 0x00f5f7f2, 0x00f6f6f1, 0x00f8f5f2, 0x00f9f5f2, 0x00fbf6f4, 0x00fbf6f4, 0x00fcf7f5, 0x00fcf6f5,
- 0x00f8f5f5, 0x00f9f4f4, 0x00f9f4f3, 0x00f8f4f3, 0x00f9f4f3, 0x00f8f3f3, 0x00f8f3f4, 0x00f9f3f5, 0x00f7f2f1, 0x00f9f3f3, 0x00f8f3f4, 0x00f8f3f4, 0x00f8f3f3, 0x00f7f2f3, 0x00f7f2f4, 0x00f8f3f5,
- 0x00f8f6f6, 0x00f9f5f6, 0x00f8f4f5, 0x00f6f3f4, 0x00f6f3f4, 0x00f5f3f3, 0x00f6f4f3, 0x00f8f4f4, 0x00f4f5f3, 0x00f3f4f3, 0x00f5f5f5, 0x00f5f6f6, 0x00f4f4f4, 0x00f5f4f5, 0x00f7f5f7, 0x00f6f3f7,
- 0x00f3f4f5, 0x00f5f5f6, 0x00f6f5f7, 0x00f5f5f6, 0x00f4f5f5, 0x00f5f5f5, 0x00f6f5f4, 0x00f7f5f4, 0x00f4f5f6, 0x00f4f5f3, 0x00f2f4f3, 0x00eaedec, 0x009da2a0, 0x006f7573, 0x009fa7a6, 0x00cbd4cf,
- 0x00f4f4f4, 0x00fafcfb, 0x00fafbfa, 0x00fdfcfb, 0x00fffffe, 0x00fcfdfb, 0x00fcfefc, 0x00fcfffd, 0x00f9f8f7, 0x00edebea, 0x00dbdcdd, 0x00ced2d4, 0x00b6bcaf, 0x00a5aa99, 0x0090958b, 0x0083878a,
- 0x007579a2, 0x007279b3, 0x006f7abc, 0x00687cbb, 0x005f7aad, 0x006576bf, 0x006572c1, 0x00637bc1, 0x006d8ace, 0x006a8cd9, 0x006889e4, 0x006b88ef, 0x007891f6, 0x008195e5, 0x008896d4, 0x00a3b1d9,
- 0x00c1b8d3, 0x00c7bed8, 0x00cbc2dc, 0x00d5cce4, 0x00dacee7, 0x00d8cce4, 0x00d7cbe0, 0x00dbcee3, 0x00e0d2e5, 0x00e2d6e7, 0x00ded4e5, 0x00d7d0e1, 0x00d8d0e0, 0x00e0d9e8, 0x00ece6f4, 0x00f1ebf6,
- 0x00f0e9f4, 0x00f3eff6, 0x00f8f4f7, 0x00fbf4fa, 0x00faf6fc, 0x00f9ebfe, 0x00f2e6f9, 0x00ebeaf2, 0x00e8f6eb, 0x00f2fbf1, 0x00fafff7, 0x00fffdfd, 0x00fdf8fd, 0x00fef7fe, 0x00fdf8fc, 0x00fffaff,
- 0x00f8fafe, 0x00fdfafb, 0x00dcd9e9, 0x008c99be, 0x00236ac6, 0x002564c8, 0x005885d7, 0x00bcc5ee, 0x00faf4f2, 0x00f1f0e6, 0x00e2e4d1, 0x00aeb199, 0x0071755a, 0x00717559, 0x00757a5b, 0x00727958,
- 0x00717457, 0x006f7456, 0x006f735b, 0x00727561, 0x00767968, 0x00757d6b, 0x00757d6c, 0x00787d6b, 0x007e806c, 0x007e7d69, 0x007d7e69, 0x007f816d, 0x007b7c6b, 0x007f8373, 0x00b5bcaf, 0x00e6ede3,
- 0x00fdfdfd, 0x00fdfefd, 0x00fdfdfb, 0x00fcfcf9, 0x00fcfdf8, 0x00fffffa, 0x00fffffd, 0x00fefefd, 0x00fefdfe, 0x00fefdff, 0x00fffefe, 0x00ededea, 0x0091918e, 0x006b6b69, 0x009b9c98, 0x00c8c9c4,
- 0x00f0f0ed, 0x00fbfbf9, 0x00fffffd, 0x00fefffd, 0x00fbfafa, 0x00fdfcfb, 0x00fefdfa, 0x00fdfaf9, 0x00fffcfd, 0x00fffdff, 0x00fdfbfe, 0x00fcfbfe, 0x00fafcfc, 0x00fafefd, 0x00fafffe, 0x00fbfffe,
- 0x00fefffd, 0x00fefefb, 0x00fffefc, 0x00fdfffb, 0x00fefffb, 0x00f8f9f5, 0x00f6f6f2, 0x00f3f2ef, 0x00f0eee8, 0x00eeebe5, 0x00eae6e1, 0x00e3e0d8, 0x00d8d4cb, 0x00ccc7bd, 0x00bab5ac, 0x00b1aba4,
- 0x00a99b96, 0x009b8e89, 0x008e7f7a, 0x0086776e, 0x0077695e, 0x006d6055, 0x0064564d, 0x005e4f47, 0x0052443d, 0x004b3b32, 0x00423328, 0x003a291f, 0x002e180f, 0x00250e05, 0x00240c01, 0x00270d01,
- 0x002a1308, 0x00291205, 0x002b1202, 0x002e1300, 0x00321600, 0x00361902, 0x00371903, 0x00381c06, 0x003c210f, 0x003d2112, 0x003e220f, 0x00422808, 0x00452808, 0x00472a0b, 0x004a2c0a, 0x004a2d09,
- 0x004c2d07, 0x004b2c08, 0x004c2b09, 0x004e2b07, 0x004f2a08, 0x00736b55, 0x00e7e7e0, 0x00fbfbf3, 0x00fffffb, 0x00fcfdfa, 0x00fffffe, 0x00ececee, 0x0097979e, 0x0061616a, 0x00504e59, 0x0045424e,
- 0x0036343b, 0x0027262d, 0x0017161c, 0x00111016, 0x00100f17, 0x000d0b13, 0x000d0b12, 0x00100f16, 0x001b1920, 0x0028292f, 0x00353546, 0x00434768, 0x005f77b5, 0x005c84d6, 0x004a7fde, 0x004281e7,
- 0x003b80db, 0x003d7ed7, 0x003e7fd5, 0x003d7fd9, 0x003c7de3, 0x003f79e6, 0x004176de, 0x005688de, 0x008fb6e9, 0x00bdd9f9, 0x00d3e9f3, 0x00d4e2ea, 0x00d0d9e9, 0x00cbd4ee, 0x00d3dbf7, 0x00c9d0f8,
- 0x00c5d4fd, 0x00b2c8f8, 0x008aa7de, 0x006285c8, 0x002c5cac, 0x002155aa, 0x001f53af, 0x00174ba8, 0x0012419f, 0x001643a1, 0x001f4ba9, 0x002049ad, 0x00163790, 0x0009257b, 0x00011a6c, 0x00051f74,
- 0x0014358e, 0x001b3f9b, 0x000c318c, 0x00203e93, 0x00586ebf, 0x007992c9, 0x003d5594, 0x000f1f82, 0x00222e9f, 0x003a4994, 0x007285b4, 0x008aa2bc, 0x0044598f, 0x000c216f, 0x00081f7a, 0x000d2282,
- 0x0033459d, 0x006274b4, 0x009daad9, 0x00aeb3ce, 0x00ada9c5, 0x00a69ec7, 0x00aba5db, 0x009f9bdd, 0x004e5493, 0x00162159, 0x000a194c, 0x00080d3c, 0x00041666, 0x00092081, 0x002c49af, 0x002a45a5,
- 0x00485788, 0x009ba4ba, 0x00f6f8f9, 0x00fafbfa, 0x00fdfcfe, 0x00f7fffb, 0x00f5fefb, 0x00fafeff, 0x00fffbfe, 0x00fffbfc, 0x00fefcf5, 0x00fffcef, 0x00fefcde, 0x00f9f3db, 0x00f3ebd1, 0x00f9eddb,
- 0x00f2dbb2, 0x00d6c094, 0x00beae7a, 0x00b9ac73, 0x00b69758, 0x00b6864a, 0x00a57137, 0x0092622d, 0x008e7655, 0x00bdb69b, 0x00f6f7e7, 0x00f7f1ed, 0x00f8f3ee, 0x00f8f4f6, 0x00faf8fe, 0x00faf7fc,
- 0x00f6f2fc, 0x00f4f5f9, 0x00f3f6f9, 0x00f4f7f6, 0x00f6f9f4, 0x00f5f8f6, 0x00f4f6f9, 0x00f5f8f9, 0x00f6fbfb, 0x00f7fafb, 0x00f7f9fb, 0x00f7fbfc, 0x00f8fcfc, 0x00fafafa, 0x00fdfafb, 0x00fefafd,
- 0x00fdf7fd, 0x00fcf9f9, 0x00fcfdf7, 0x00f7faf5, 0x00fbfcfc, 0x00f4f6fa, 0x00f9fbfd, 0x00fcfcf9, 0x00fcfbf1, 0x00dfdcc7, 0x009ba277, 0x007b9a4f, 0x00759a4a, 0x00749c4a, 0x00729c49, 0x0074a34d,
- 0x00709c4a, 0x00709b4b, 0x00719b4c, 0x00719c4f, 0x0073994f, 0x007c954e, 0x00799349, 0x006f9649, 0x006b9d4a, 0x006b9b4a, 0x006f954b, 0x007d9552, 0x00bdc28c, 0x00f3f4c3, 0x00fbfccf, 0x00faf9d0,
- 0x00fdf2cb, 0x00faf0ce, 0x00f2eecc, 0x00d5dcb4, 0x0083a460, 0x00669542, 0x0063933a, 0x00678f3e, 0x00878b64, 0x00a49389, 0x0088708c, 0x00634997, 0x00375988, 0x003e5a9c, 0x003f5dac, 0x003952b6,
- 0x00324d91, 0x00523b67, 0x007e3f58, 0x00ce7785, 0x00e7dde2, 0x00e8e2e4, 0x00d8d6d7, 0x00cccbcb, 0x00cac8c8, 0x00b3b2ae, 0x00474640, 0x001d1f16, 0x002b2f1f, 0x00353a27, 0x00313422, 0x00373a24,
- 0x00232439, 0x000a0c21, 0x00060a20, 0x00070d24, 0x000b1233, 0x00101a3e, 0x0019254e, 0x00222f5e, 0x002a3b72, 0x0037487f, 0x00465997, 0x005770ae, 0x006f81bd, 0x00929ece, 0x00d4ddf8, 0x00f1f8fe,
- 0x00afbc9c, 0x005a6c3b, 0x00506b2f, 0x0043652b, 0x003f6631, 0x00425e28, 0x003d531e, 0x003a5222, 0x008f9f84, 0x00eaf3e4, 0x00f7fcf8, 0x00fbfefe, 0x00fcf9fc, 0x00fefdfe, 0x00c3bdbc, 0x00564d4d,
- 0x00401c01, 0x004d280b, 0x005c3719, 0x006d4322, 0x0076431b, 0x007a3f0e, 0x00793c0d, 0x007c3e12, 0x0069411f, 0x00a28670, 0x00fff8f0, 0x00fefcfd, 0x00f5fdfd, 0x00f1fef8, 0x00f7fef9, 0x00d7d5c8,
- 0x0084695f, 0x0078544b, 0x00835e59, 0x00775750, 0x0050493e, 0x00322b2a, 0x00130f11, 0x000a0704, 0x00201510, 0x00392c22, 0x00524338, 0x00625347, 0x006c5d54, 0x00645653, 0x00514246, 0x00796d71,
- 0x00e7d4bb, 0x00e9f1ee, 0x0099bcf6, 0x00498edc, 0x004086b2, 0x0080aac3, 0x00ddecf6, 0x00fff8ff, 0x00fffaff, 0x00f5f7f2, 0x00eff7f1, 0x00f1f4f2, 0x00f6f5f5, 0x00faf9fa, 0x00fbfbfc, 0x00f7f8f8,
- 0x00edecec, 0x00e1e1e2, 0x00c9caca, 0x00c5c5c5, 0x00cececf, 0x00d1d2d4, 0x00dadddc, 0x00a0a59f, 0x00282f24, 0x0010170f, 0x00101614, 0x000c0f17, 0x00100f19, 0x0020181d, 0x002e2421, 0x003f3129,
- 0x0048433f, 0x005d4e4b, 0x00704d4e, 0x007e4647, 0x0092322e, 0x0096271d, 0x009e2318, 0x00a4291b, 0x00a64539, 0x00a95752, 0x009d625f, 0x00856c63, 0x00765f56, 0x00664d45, 0x004b342b, 0x00453028,
- 0x0052403b, 0x005d4e49, 0x006f6360, 0x00827a75, 0x0089837c, 0x00827b72, 0x006b5c53, 0x00554039, 0x004d282b, 0x0047242b, 0x00482933, 0x003d2630, 0x00291c27, 0x00221823, 0x00221623, 0x00301d2f,
- 0x0046231f, 0x004c2824, 0x004b2a25, 0x004e2c29, 0x005e3b3b, 0x00664749, 0x0071555c, 0x007a616b, 0x00867486, 0x00908194, 0x00a194a5, 0x00b1a7ac, 0x00bdb3b2, 0x00c3b9b3, 0x00d5cbc3, 0x00ded1d1,
- 0x00e7dae4, 0x00f2ebf3, 0x00fef8fd, 0x00fbfcfb, 0x00fafef3, 0x00f9fef9, 0x00fdfefe, 0x00fefeff, 0x00fdfdf7, 0x00fefcfb, 0x00fefcfb, 0x00fefdfe, 0x00fcfbfc, 0x00fafcfd, 0x00f9fef8, 0x00f8fff0,
- 0x00fffefd, 0x00fffbfa, 0x00fffbfb, 0x00fffdfc, 0x00fdfdfa, 0x00fcfcfa, 0x00fcfcfc, 0x00fcfdfd, 0x00fefefd, 0x00fbfdfa, 0x00fcfcfc, 0x00fcfdfe, 0x00f5f7f5, 0x00f1f2ef, 0x00e9e9e5, 0x00e1e2dc,
- 0x00c2c2bf, 0x00aeaeae, 0x009f9d9f, 0x0084828a, 0x004c4955, 0x00383338, 0x004d4648, 0x005a5354, 0x00605862, 0x00665d63, 0x006a5c63, 0x006c5d62, 0x00725f59, 0x00776155, 0x007d6554, 0x00836851,
- 0x00876653, 0x008f6a55, 0x00976d53, 0x009d6c50, 0x00a16d48, 0x009c6b45, 0x00966743, 0x008b6140, 0x007d5a3e, 0x008f755a, 0x00ddc3a2, 0x00d0b88a, 0x00b46987, 0x007573c1, 0x004d79d4, 0x003278bc,
- 0x00456bb6, 0x003670c6, 0x004980cd, 0x0074a0c7, 0x00b7bbe6, 0x00ced1e2, 0x00dfe0e5, 0x00ebeeef, 0x00f0f1f6, 0x00f0f1f6, 0x00f0f1f5, 0x00edeef2, 0x00ebecf2, 0x00e9ebf0, 0x00e9ecf0, 0x00e8edf1,
- 0x00e8f0e2, 0x00e9f2e6, 0x00eff3ef, 0x00f2f3f8, 0x00f3f3fd, 0x00f3f2fe, 0x00f5f3ff, 0x00f2f1fe, 0x00f1f1f8, 0x00efeef3, 0x00eceded, 0x00ebebea, 0x00e1e5e4, 0x00dddde0, 0x00d9dadd, 0x00dbdedf,
- 0x00d8dadc, 0x00d7d9de, 0x00d7d8e1, 0x00dadce5, 0x00d5d5e1, 0x00ccc9c2, 0x00c2c3c3, 0x009098bc, 0x00394b8d, 0x001f3d77, 0x00284f81, 0x001f4476, 0x001a2b67, 0x002a2d55, 0x00494453, 0x00605843,
- 0x0096701a, 0x00a68018, 0x00c19b20, 0x00d4ad1c, 0x00e8bc1b, 0x00ebbf22, 0x00e5bc1f, 0x00e3bb24, 0x00e3c031, 0x00e7c638, 0x00e4cc50, 0x00cfc374, 0x00ada163, 0x0091855e, 0x00756854, 0x00665a57,
- 0x00625764, 0x005f5562, 0x005b515f, 0x00594f58, 0x005a4e55, 0x005a4f4f, 0x00594d4b, 0x00594a41, 0x00604333, 0x00643e2b, 0x006c3a24, 0x00713a20, 0x00793c22, 0x007d3e24, 0x00804128, 0x00804028,
- 0x00cfcecb, 0x00696764, 0x006f6e6b, 0x00696863, 0x006f6a66, 0x006a665f, 0x006d6a62, 0x006d6a60, 0x006c695e, 0x006c695d, 0x006d6961, 0x006d6766, 0x006e6767, 0x006d6864, 0x006d6864, 0x006d6965,
- 0x00706a68, 0x006f6964, 0x006e6962, 0x006c6961, 0x006c6962, 0x006c6a67, 0x006a686a, 0x006a6968, 0x006a696a, 0x006a6a6a, 0x006a696a, 0x006a696a, 0x006b696b, 0x006a696b, 0x006a696a, 0x006a696a,
- 0x006f6969, 0x006f6867, 0x006d6766, 0x006c6765, 0x006f6865, 0x00706764, 0x00706663, 0x006f6762, 0x006d6860, 0x006c6860, 0x006d6762, 0x006d6666, 0x006c6768, 0x006d6766, 0x006d6767, 0x006c6867,
- 0x006e6867, 0x006e6867, 0x006d6965, 0x006d6967, 0x006e6869, 0x006c6866, 0x006a6a63, 0x006a6964, 0x00696862, 0x00696862, 0x00696962, 0x006b6a64, 0x006c6a67, 0x006b6965, 0x006c6a64, 0x006b6962,
- 0x00696963, 0x00696863, 0x00696963, 0x00696964, 0x006b6965, 0x006b6966, 0x006b6b67, 0x006c6b67, 0x006c6b66, 0x006c6a66, 0x006c6966, 0x006d6866, 0x006e6866, 0x006e6867, 0x006e6867, 0x006e6767,
- 0x006e6965, 0x006e6865, 0x006d6866, 0x006d6867, 0x006f6767, 0x006e6567, 0x006c6567, 0x006d6568, 0x006d6666, 0x006f6667, 0x006e6667, 0x006d6667, 0x006e6668, 0x006d6668, 0x006c6668, 0x006d6669,
- 0x006b6767, 0x006b6767, 0x00686665, 0x00676563, 0x00686464, 0x00676363, 0x00646262, 0x00636162, 0x00666362, 0x00636161, 0x00626162, 0x00616163, 0x00616163, 0x00656567, 0x0069696b, 0x006b6b6d,
- 0x00757475, 0x00787879, 0x007f7e80, 0x00848485, 0x0089888a, 0x008c8b8c, 0x008e8c8d, 0x008e8b8c, 0x008b8d8e, 0x00898c8a, 0x00898b8a, 0x008c8e8e, 0x00767877, 0x00707373, 0x00abafaf, 0x00d2d7d3,
- 0x00faf6f7, 0x00fdfefe, 0x00fdfcfd, 0x00fdfafb, 0x00fcfafa, 0x00fefcfb, 0x00fffcfc, 0x00fcfbfa, 0x00fcfcfd, 0x00fefcfc, 0x00fefdff, 0x00fbfcfd, 0x00fafbf3, 0x00f9faee, 0x00f4f7ef, 0x00eef2ef,
- 0x00e0ddf7, 0x00d5d8fa, 0x00c6cef8, 0x00b9c9f7, 0x00acc1e5, 0x00a5b2ea, 0x00a0a7ea, 0x0095a3df, 0x008ca3dc, 0x007f9bdc, 0x00718cd8, 0x00748ce1, 0x007d93ea, 0x008295dd, 0x0093a3dd, 0x009aabd7,
- 0x00c5bed3, 0x00cac2d7, 0x00c7bed2, 0x00c6bed1, 0x00cabed4, 0x00cec2d7, 0x00cfc4d6, 0x00d4c7d9, 0x00dcd0e4, 0x00dfd5e6, 0x00ddd5e5, 0x00dbd6e4, 0x00e2dce9, 0x00e7e1ed, 0x00f0ebf5, 0x00f7f2fa,
- 0x00f6f1fa, 0x00f9f6fb, 0x00f8f4fa, 0x00f4f0f4, 0x00f0ecf1, 0x00f3e9fa, 0x00f7ecfc, 0x00f8f5fc, 0x00f6fcf7, 0x00f6fdf5, 0x00f8fefa, 0x00fefdfd, 0x00fffafe, 0x00fff9ff, 0x00fbf7fc, 0x00fcf6fa,
- 0x00f7f6fe, 0x00eae6ec, 0x00aca8b9, 0x00607094, 0x00316ab8, 0x002f69b8, 0x007096d7, 0x00c9cfee, 0x00fbf2ed, 0x00f5ece3, 0x00d1ccbf, 0x008f937d, 0x0063684f, 0x006a6f52, 0x006f7456, 0x006a714f,
- 0x0065694e, 0x0062684d, 0x00616650, 0x00626654, 0x0065695b, 0x00676d5f, 0x006a6f63, 0x006e7263, 0x00747565, 0x00757562, 0x00737561, 0x00757966, 0x0088897a, 0x00acaea1, 0x00e5eae0, 0x00fafef6,
- 0x00feffff, 0x00fdfefe, 0x00fefefe, 0x00fcfcfb, 0x00fcfcfa, 0x00fefefb, 0x00fffefc, 0x00fffdfc, 0x00ffffff, 0x00fefdff, 0x00fefcfd, 0x00e2e1df, 0x00848283, 0x006f6f6f, 0x00a2a3a0, 0x00d1d3ce,
- 0x00f8f7f6, 0x00f9faf7, 0x00fefefc, 0x00fefefd, 0x00fdfefe, 0x00fdfcfb, 0x00fefbfb, 0x00fdfbfc, 0x00ffffff, 0x00fdfdfd, 0x00fcf8fb, 0x00f9f7fa, 0x00f7f9fb, 0x00f2f5f6, 0x00ecefef, 0x00e4e9e7,
- 0x00dadada, 0x00d2d2d0, 0x00c5c7c4, 0x00b7bbb5, 0x00afb1ac, 0x00a3a49e, 0x00999893, 0x008f8c87, 0x007d7a75, 0x00726d68, 0x0069625d, 0x005f5a53, 0x00585048, 0x004d443b, 0x003f362d, 0x00372e25,
- 0x003a2c27, 0x002e221d, 0x002c1e16, 0x002d1c11, 0x0029170c, 0x0028170c, 0x0026160b, 0x00231509, 0x0026180f, 0x0027180e, 0x0029190f, 0x002a190c, 0x00311d0e, 0x00341f0f, 0x00382211, 0x003a2211,
- 0x003b2217, 0x003f2518, 0x00422617, 0x00442713, 0x00492c15, 0x004b2d15, 0x004a2b14, 0x00492c16, 0x004a2f1d, 0x004d311f, 0x004f321a, 0x00513513, 0x00513512, 0x00533614, 0x00553613, 0x00563714,
- 0x00593914, 0x00593914, 0x005b3a15, 0x005c3b13, 0x005c3915, 0x0089806a, 0x00f1efe8, 0x00fcfbf3, 0x00fdfefb, 0x00f9fbf8, 0x00fcfcfb, 0x00e2e2e3, 0x008a888e, 0x0058565e, 0x00494750, 0x003d3c45,
- 0x002e2c33, 0x00222027, 0x00121216, 0x000b0b0f, 0x000c0a11, 0x000a070e, 0x0008070c, 0x0009080d, 0x00110d15, 0x0018191e, 0x00232532, 0x00353953, 0x0053699d, 0x00557cc2, 0x004a7ccf, 0x00457ed7,
- 0x00407acc, 0x004379c7, 0x00477dc8, 0x00457dcc, 0x00467eda, 0x004879da, 0x005781d9, 0x007fa7ea, 0x00c3dbf9, 0x00d6e4f1, 0x00dfe8e7, 0x00e8efdf, 0x00dfe1e1, 0x00cecfe1, 0x00cdcfeb, 0x00c8cbea,
- 0x00bec8e9, 0x00b6c6e8, 0x00b0c5ea, 0x00a2bde9, 0x006c93cf, 0x003a65ab, 0x002b57a2, 0x002754a2, 0x00234fa0, 0x001a4590, 0x00174091, 0x001d4199, 0x001a3789, 0x00092369, 0x0001145a, 0x00071b62,
- 0x001b3582, 0x001e3a8c, 0x00112e7f, 0x00153282, 0x00203a83, 0x0027427d, 0x00152e6d, 0x00061871, 0x00142284, 0x001c2d71, 0x00506594, 0x0086a0bb, 0x005f75a9, 0x001e347c, 0x000d247d, 0x00223999,
- 0x007179c5, 0x009da5de, 0x009aa2c7, 0x008d92a5, 0x008a889b, 0x008782a7, 0x008f8bbb, 0x007773ae, 0x002b2d66, 0x00030c37, 0x00071134, 0x00030c27, 0x00112467, 0x0019328c, 0x00334fb5, 0x002d48ac,
- 0x00425491, 0x0098a4c2, 0x00f7fdfd, 0x00f9fbf9, 0x00fafdff, 0x00fbfcfc, 0x00f9fdfe, 0x00fafdfe, 0x00fffcff, 0x00fffbff, 0x00fff9ff, 0x00fffaf9, 0x00fefdf0, 0x00fdfdf1, 0x00fefdf2, 0x00fcfbf2,
- 0x00fef4d7, 0x00f9eecf, 0x00f4eac9, 0x00e1d6b3, 0x00d5bc8f, 0x00d0aa7a, 0x00c79d6e, 0x00c39a6c, 0x00a18b69, 0x00aca284, 0x00e9e6d5, 0x00f9f5ee, 0x00faf7f0, 0x00f8f7f5, 0x00f7f8fb, 0x00f8f8fa,
- 0x00fbf7ff, 0x00f9f9fd, 0x00f7f8fa, 0x00f6f7f4, 0x00f4f8f2, 0x00f5f9f6, 0x00f7f8fb, 0x00f8f9fc, 0x00f6fbfd, 0x00f5fafc, 0x00f6f9fb, 0x00f9fbfc, 0x00fafbfc, 0x00fbfafa, 0x00fcf9f9, 0x00fcf9f7,
- 0x00fcf7fd, 0x00fefbfb, 0x00fcfbf9, 0x00f8f9f3, 0x00fdfcfd, 0x00f8f9fd, 0x00f9faf9, 0x00fbf8f7, 0x00fdf9ef, 0x00ece9d3, 0x00aab189, 0x00819f59, 0x007c9d54, 0x00799d52, 0x007b9f58, 0x00759c54,
- 0x00779d57, 0x00789c58, 0x00799c58, 0x00789d57, 0x00799a57, 0x007f9655, 0x007c9352, 0x00769552, 0x00719b52, 0x00729a52, 0x00729451, 0x00778f50, 0x00afb683, 0x00ebeec0, 0x00fcfdd5, 0x00fffcd9,
- 0x00f9f3d3, 0x00f7f0d3, 0x00f2f1d2, 0x00d8e0bb, 0x0090aa71, 0x0070944e, 0x00699043, 0x0086a761, 0x00c3c5a8, 0x00e3d8ce, 0x00e1cde5, 0x00b1a0dc, 0x005c7197, 0x00455e90, 0x003c579a, 0x003752af,
- 0x003c5290, 0x00634666, 0x00a96874, 0x00f1acad, 0x00eae8ee, 0x00e0e1e1, 0x00d7d7d5, 0x00d7d6d7, 0x00d4d2d5, 0x00d5d4d2, 0x00959493, 0x002d2d28, 0x001e2014, 0x00333526, 0x002f321f, 0x00363923,
- 0x0034343f, 0x00171726, 0x000b0c1f, 0x00070b1f, 0x000a102b, 0x0009132c, 0x00091532, 0x000d1a3d, 0x0014234e, 0x00202b5e, 0x002c3a72, 0x00384985, 0x006672a7, 0x00a2abd4, 0x00e6ecfc, 0x00ebf0f5,
- 0x0098a488, 0x005c6f43, 0x005a733d, 0x0054733c, 0x00527240, 0x00506935, 0x004b5e2c, 0x005d7245, 0x00b2bfa7, 0x00eff5e9, 0x00fafff9, 0x00f8fbfb, 0x00fdfafe, 0x00fbf8fa, 0x00a6a1a2, 0x003f3737,
- 0x003b1c06, 0x004e2e12, 0x005d3921, 0x00653f20, 0x006e411a, 0x00714015, 0x00733f15, 0x0078451c, 0x00613e22, 0x00937865, 0x00f9ece6, 0x00fdfbfd, 0x00f6fefe, 0x00f4fef9, 0x00f8fdfa, 0x00dfe0d5,
- 0x00957a75, 0x007f635e, 0x00896e6b, 0x0083726c, 0x0068615e, 0x004b4a4b, 0x00242325, 0x000e0a0a, 0x00201511, 0x003c2e27, 0x0056463e, 0x0066574e, 0x0073645d, 0x006f6160, 0x004f4346, 0x004e4348,
- 0x00af9886, 0x00e3e6e0, 0x00bfdefc, 0x006ba6df, 0x00437fb0, 0x00678ea7, 0x00c6d6e4, 0x00faf5fb, 0x00fdfafb, 0x00f8f7f6, 0x00f7f9f8, 0x00fdfcfc, 0x00fffcfd, 0x00fffefe, 0x00fbfbf8, 0x00f5f6f5,
- 0x00f1f0ef, 0x00e6e6e6, 0x00d0d0cf, 0x00cccccd, 0x00d0d0d2, 0x00d3d3d5, 0x00dddede, 0x00a9aca9, 0x00272f25, 0x0007100a, 0x0007100f, 0x00040a10, 0x00090913, 0x00140f13, 0x00201a17, 0x002e251b,
- 0x002e3230, 0x00403635, 0x00533738, 0x006a3537, 0x00852c2c, 0x008c2521, 0x0094271f, 0x009a2c23, 0x009c4540, 0x009d5756, 0x00996562, 0x00816b62, 0x00776158, 0x0069544c, 0x00564038, 0x00543f36,
- 0x0060514c, 0x006b5d58, 0x007b6f6b, 0x00877f7a, 0x008e8882, 0x008a847d, 0x00776b65, 0x00614e4a, 0x00482a2d, 0x0032161b, 0x00250b14, 0x001e0b15, 0x00160c16, 0x00160e19, 0x001f1722, 0x0030212e,
- 0x004c3232, 0x005c4141, 0x006b5352, 0x007b6464, 0x009a8183, 0x00b09b9d, 0x00c1afb4, 0x00ccbec5, 0x00d6cdd8, 0x00e4dde9, 0x00f0eaf6, 0x00f7f2f3, 0x00fbf6f4, 0x00fbf8f3, 0x00fefbf7, 0x00fdf9fa,
- 0x00fff8fe, 0x00fffbfe, 0x00fffafe, 0x00fbfcfa, 0x00fdfff6, 0x00fafcf9, 0x00fdfdfd, 0x00fefffc, 0x00fcfef9, 0x00fbfcf9, 0x00fefefb, 0x00fdfefe, 0x00fefeff, 0x00fdfefe, 0x00fafdfa, 0x00fbfff5,
- 0x00fffcff, 0x00fefbfc, 0x00fefdfe, 0x00fefefe, 0x00fcfafa, 0x00faf8f8, 0x00f5f5f3, 0x00eeefea, 0x00dddcdd, 0x00cfd0ce, 0x00c5c5c4, 0x00b6b6b6, 0x009f9f9d, 0x008b8b87, 0x0073716d, 0x0062605b,
- 0x0053534e, 0x003d3c3b, 0x00343132, 0x002f2c30, 0x0039373e, 0x00423d3f, 0x00564e4d, 0x00605756, 0x00685d63, 0x006c6364, 0x00736264, 0x00766262, 0x00786459, 0x007d6556, 0x00816652, 0x0083694e,
- 0x00906c58, 0x00966f5a, 0x009d7159, 0x00a17156, 0x00a47353, 0x00a0714d, 0x009a6c49, 0x00926747, 0x00836147, 0x008e7158, 0x00d1b696, 0x00d2b28a, 0x00a66e87, 0x006f71b4, 0x004f7bc7, 0x00427fb9,
- 0x004e70b3, 0x003c6fbe, 0x003c73ba, 0x005683af, 0x009da8d2, 0x00bfc2d3, 0x00d2d3d8, 0x00e0e2e5, 0x00ececf1, 0x00f0f0f4, 0x00f1f1f4, 0x00ecedf0, 0x00ebebf0, 0x00eaeaef, 0x00eaebef, 0x00ebedf0,
- 0x00eceee2, 0x00edefe3, 0x00f0f1ec, 0x00f3f1f5, 0x00f5f2fa, 0x00f5f1fb, 0x00f6f1fc, 0x00f4eefc, 0x00f0eef5, 0x00ececee, 0x00e8e9e7, 0x00e2e4e2, 0x00dcdfdf, 0x00dadbdd, 0x00d8d9db, 0x00d7dbda,
- 0x00d9dae1, 0x00d6d8de, 0x00d6d7dd, 0x00d8d9e1, 0x00d5d3dc, 0x00c9c7c2, 0x00babcbc, 0x00878dae, 0x00374985, 0x00274578, 0x00234975, 0x00183e6c, 0x00203670, 0x002f3863, 0x00464759, 0x00666556,
- 0x00957524, 0x009c7c1b, 0x00be9d2f, 0x00d1ae30, 0x00deb72d, 0x00e5bd35, 0x00e2bc35, 0x00e4bf36, 0x00e4be32, 0x00ddbb28, 0x00dfc442, 0x00d8c969, 0x00d7c981, 0x00c9c087, 0x00a79d79, 0x00877e6b,
- 0x00685c63, 0x00655a64, 0x00615661, 0x005e525b, 0x005d5056, 0x005b514f, 0x005a4f4a, 0x005a4c44, 0x005f4538, 0x00624031, 0x00653b2c, 0x00663826, 0x006a3925, 0x006c3a26, 0x006d3c28, 0x006b3b27,
- 0x00d8d2d2, 0x00948e8c, 0x00999594, 0x00999493, 0x00988f91, 0x009b9391, 0x00999491, 0x00989492, 0x009b9495, 0x009b9595, 0x009b9593, 0x009a9592, 0x009b9694, 0x009a9592, 0x00999491, 0x00999494,
- 0x009c9699, 0x009d9696, 0x009a9595, 0x00989593, 0x009a9596, 0x009b9694, 0x00979391, 0x009a9591, 0x009b9593, 0x009b9694, 0x00999593, 0x00999492, 0x009b9694, 0x009a9593, 0x00999492, 0x009a9694,
- 0x009d9595, 0x009c9595, 0x009a9593, 0x00999592, 0x009a9694, 0x009a9592, 0x009a9591, 0x00999693, 0x009a9595, 0x009b9596, 0x009a9693, 0x009a9694, 0x00999494, 0x009a9691, 0x00999491, 0x009b9493,
- 0x009d9498, 0x009c9495, 0x009b9592, 0x009a9591, 0x009c9494, 0x009b9493, 0x00989691, 0x00989793, 0x009b9495, 0x009b9595, 0x009a9492, 0x009a9591, 0x009a9593, 0x009a9593, 0x009b9692, 0x009a9592,
- 0x009c9694, 0x009c9593, 0x009a9593, 0x00999592, 0x00999492, 0x00999593, 0x00989693, 0x009a9694, 0x009e9597, 0x009c9595, 0x009a9494, 0x00999493, 0x00999493, 0x00999492, 0x00989592, 0x00989592,
- 0x009d9593, 0x009c9492, 0x009a9593, 0x009a9593, 0x009c9494, 0x009b9493, 0x009a9594, 0x009a9694, 0x009b9595, 0x009c9595, 0x009a9593, 0x00999592, 0x009b9594, 0x009a9593, 0x00999592, 0x009b9692,
- 0x009b9393, 0x009a9492, 0x00979491, 0x00969591, 0x009a9593, 0x00989594, 0x00949393, 0x00929394, 0x00989499, 0x00969497, 0x00959495, 0x00949494, 0x00939393, 0x00949494, 0x00969695, 0x00979796,
- 0x009f9b9d, 0x00a19e9f, 0x00a5a4a5, 0x00a7a8a7, 0x00adadac, 0x00afaeae, 0x00b0b0af, 0x00aeafae, 0x00afafb1, 0x00afafaf, 0x00aeafae, 0x00afb0af, 0x00b6b6b6, 0x00c4c5c5, 0x00dddddd, 0x00e9eae8,
- 0x00fffcff, 0x00ffffff, 0x00fefefe, 0x00fffeff, 0x00fefefe, 0x00fffffe, 0x00fdfdfc, 0x00fefffd, 0x00fffeff, 0x00fffdff, 0x00fefdff, 0x00fdfefe, 0x00ffffff, 0x00fffefe, 0x00fefefc, 0x00fdfffc,
- 0x00fdfafc, 0x00fffdff, 0x00fffeff, 0x00fcfefe, 0x00f2f6f4, 0x00ecf0f1, 0x00e6ebed, 0x00dee4eb, 0x00d6dcec, 0x00cdd6e9, 0x00c4d2e2, 0x00c0d0de, 0x00c3d2e5, 0x00c7d3e3, 0x00cad5e6, 0x00cbd9ea,
- 0x00eae0e7, 0x00efe5ed, 0x00eae3e9, 0x00e3dde3, 0x00e5dce6, 0x00e2dce4, 0x00e3e1e6, 0x00e5e4e9, 0x00efe9f2, 0x00f3eff7, 0x00f1f0f5, 0x00eef0f2, 0x00f3f2f6, 0x00f5f4f7, 0x00f6f6f7, 0x00f7f7f8,
- 0x00fbfaff, 0x00fcfafc, 0x00f8f7f8, 0x00f8f6fb, 0x00f2f4f2, 0x00fafaf9, 0x00fcfcfd, 0x00fdfdfb, 0x00ffffff, 0x00fffdff, 0x00fefdff, 0x00fffefe, 0x00fffffe, 0x00fdfefd, 0x00fbfefc, 0x00fefefd,
- 0x00fffbfa, 0x00e9eef4, 0x00c1cdd8, 0x00a7bace, 0x00a8c1d6, 0x00a7c4d3, 0x00b3d1d9, 0x00d2e8ea, 0x00fffbff, 0x00fcf3f8, 0x00e4dddc, 0x00c6c7bc, 0x00bbbeab, 0x00bec0ad, 0x00bfc1b0, 0x00bdc0ae,
- 0x00b9beb1, 0x00b8bcb1, 0x00b8bbb3, 0x00b8bcb3, 0x00b7bbb6, 0x00b9bcb5, 0x00bcbeb5, 0x00bec0b4, 0x00c3c3ba, 0x00c5c3b9, 0x00c1c3b6, 0x00bcc1b3, 0x00cfd0c6, 0x00e8e9e5, 0x00fbfefb, 0x00fafaf9,
- 0x00fffeff, 0x00ffffff, 0x00fffeff, 0x00ffffff, 0x00fffefd, 0x00fffffe, 0x00fefffe, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00fcfbfb, 0x00ececeb, 0x00c9c9cb, 0x00c2c2c4, 0x00dadad9, 0x00eaeae8,
- 0x00fffdff, 0x00fffdfe, 0x00fefdfd, 0x00fcfdfc, 0x00fefefe, 0x00fffffd, 0x00fdfefc, 0x00fdfdfd, 0x00fffeff, 0x00ffffff, 0x00fcfdfd, 0x00f8fbfa, 0x00fbfcfd, 0x00f9f8fa, 0x00efeff1, 0x00e7e9e9,
- 0x00e2e0e2, 0x00dedddd, 0x00d5d5d3, 0x00ccccc8, 0x00c8c4c0, 0x00bfbeb7, 0x00b7b8b0, 0x00b1b0a8, 0x00aaa6a1, 0x00a59f99, 0x009d9892, 0x00999790, 0x009c9893, 0x009d9792, 0x009b9590, 0x009c9590,
- 0x00a59896, 0x00a29995, 0x00a19891, 0x00a39890, 0x00a2978f, 0x00a3998e, 0x00a39b8e, 0x00a29d91, 0x00a99e95, 0x00a99e93, 0x00a9a193, 0x00a9a393, 0x00a9a291, 0x00a9a290, 0x00aaa290, 0x00aba290,
- 0x00aea593, 0x00b1a696, 0x00b1a697, 0x00b2a896, 0x00b5aa97, 0x00b1a893, 0x00afa894, 0x00afa794, 0x00b6a996, 0x00b5a997, 0x00b5aa94, 0x00b5a994, 0x00b6aa94, 0x00b7ab94, 0x00b4a893, 0x00b4a993,
- 0x00baab98, 0x00baab97, 0x00b8ab95, 0x00b7ab93, 0x00b7ab95, 0x00c6c6bb, 0x00f7f6f3, 0x00fdfdf9, 0x00fbfafb, 0x00fefdff, 0x00f9f8fa, 0x00ededed, 0x00c9c8c8, 0x00b5b5b5, 0x00afb0b0, 0x00a8abad,
- 0x00a5a4a9, 0x00a29fa4, 0x0097989a, 0x00949596, 0x0099959a, 0x00989599, 0x00959696, 0x00969596, 0x009b999d, 0x009f9ca0, 0x009d9c9f, 0x009fa2a5, 0x00adbbc3, 0x00b0c6d5, 0x00acc8d9, 0x00a7c7dc,
- 0x00a6c3d9, 0x00abc2d9, 0x00abc3d8, 0x00a9c8da, 0x00a5c8dd, 0x00a5c6db, 0x00adcadb, 0x00cbe5e6, 0x00ecf0fa, 0x00ede7f2, 0x00f7f0ef, 0x00f7f8d4, 0x00f4f2e5, 0x00e9eaf0, 0x00e2e7f3, 0x00e1ecef,
- 0x00dde4f1, 0x00e1e3ee, 0x00d9dae5, 0x00e3e5ed, 0x00d4d9ea, 0x00acbacf, 0x009cb6c6, 0x009eb8ce, 0x00a2b7d1, 0x00a0b1cc, 0x0095a8c2, 0x0094a9be, 0x009dacbd, 0x0094a3b3, 0x008b98ac, 0x00919eae,
- 0x009fa7be, 0x00a1aac4, 0x0096a3bb, 0x0096a5bb, 0x0091a6b8, 0x00889dad, 0x008c9fb0, 0x00939fb2, 0x00999eb8, 0x00a1a7bb, 0x00b2bccb, 0x00c6d3d9, 0x00becad4, 0x00a1adbd, 0x0095a4b7, 0x00a4b3ca,
- 0x00d0d3df, 0x00d7dae7, 0x00c7cdd9, 0x00b9c2d2, 0x00b8c0cd, 0x00b7c0cf, 0x00bdc6d2, 0x00b4bcc7, 0x00a09fae, 0x009595a4, 0x009496a2, 0x008d98a0, 0x0092a2b4, 0x009bb0c5, 0x009fb9cd, 0x009eb5cb,
- 0x00b0bbcb, 0x00dae0e8, 0x00fdfbff, 0x00fafaf9, 0x00f8fcfb, 0x00fefcfe, 0x00fbfdfb, 0x00fdfffe, 0x00fffdff, 0x00fefdff, 0x00fcfdfd, 0x00fdfdfb, 0x00ffffff, 0x00fefdff, 0x00fdfdfc, 0x00fcfdfe,
- 0x00fcfef8, 0x00fdfefc, 0x00fffefc, 0x00fbfafc, 0x00f8f3ef, 0x00ece9d9, 0x00e2e0c2, 0x00e3e1c0, 0x00e3d4bc, 0x00e0d1c0, 0x00f3ece4, 0x00fcf9fc, 0x00f7faf9, 0x00fbfbfb, 0x00f9fafa, 0x00f9fafb,
- 0x00fffafe, 0x00fcfbfe, 0x00fcfbfd, 0x00fdfbfa, 0x00fbfbf9, 0x00fbfbf9, 0x00fcfbfb, 0x00fcfcfc, 0x00fffbfe, 0x00fcfcfc, 0x00fbfcfb, 0x00fcfdfb, 0x00fcfdfc, 0x00fbfefd, 0x00fbfefd, 0x00f8fcfa,
- 0x00fefcfd, 0x00fdfbfc, 0x00fcfafb, 0x00fcfdf9, 0x00fcfcf9, 0x00fafdfa, 0x00f8fcf3, 0x00fbfbf8, 0x00fefefe, 0x00f6f6f1, 0x00d9decd, 0x00c5d4af, 0x00c5d3ad, 0x00c3d3ad, 0x00c3d3ad, 0x00c3d4ac,
- 0x00c6d2b1, 0x00c6d2b1, 0x00c7d3b0, 0x00c6d4ae, 0x00c3d3ad, 0x00c4d2ad, 0x00c3d0ab, 0x00c2d0ad, 0x00c7d1b0, 0x00c6d2ae, 0x00c0cfa9, 0x00bccda6, 0x00d5dcc1, 0x00f2f5df, 0x00fdfeec, 0x00fbf8e9,
- 0x00fafbe8, 0x00faf7e8, 0x00f8f9ea, 0x00ecf2e1, 0x00d2dbc4, 0x00c1ccad, 0x00c0cdab, 0x00d2dbbf, 0x00f5f5ef, 0x00fefdfd, 0x00f9f9fb, 0x00e9f0f1, 0x00ccc5cd, 0x00b5b5c6, 0x00a8b4c3, 0x009fb6cc,
- 0x00b7b0c2, 0x00c0a9aa, 0x00ddc2bb, 0x00f4e1d3, 0x00f5f7fb, 0x00eef1f0, 0x00ebeee8, 0x00eceeec, 0x00efeef0, 0x00eeedf0, 0x00dfdedf, 0x00aeaeac, 0x00969492, 0x00a7a69f, 0x00a5a79c, 0x00a9aca0,
- 0x00a9a9a7, 0x00a3a2a8, 0x009a9aa5, 0x009496a1, 0x009699a4, 0x00939a9c, 0x008d9797, 0x008d979a, 0x00989ba5, 0x009e9fa9, 0x009ea3ac, 0x009ea6b2, 0x00b9bec6, 0x00d8dfe1, 0x00f4f6f7, 0x00f1f5f1,
- 0x00cdcebf, 0x00b9bfaa, 0x00b9c4a9, 0x00b5c2a3, 0x00b4c0a2, 0x00b4c29f, 0x00afbd9d, 0x00bdc8ad, 0x00e3e9de, 0x00fafcf9, 0x00fbfefb, 0x00f7faf9, 0x00fcfafb, 0x00f9f9f6, 0x00d1cfcc, 0x00a4a19b,
- 0x00a8a093, 0x00afa396, 0x00b5a897, 0x00b9ab96, 0x00bbab94, 0x00b8a88e, 0x00baae96, 0x00bbb199, 0x00b8a89d, 0x00d0c0b7, 0x00fbf1ee, 0x00fbfdfb, 0x00fafdfa, 0x00fefffb, 0x00fcfbfc, 0x00f4f1f0,
- 0x00d1cacc, 0x00c4bdbf, 0x00ccc4c6, 0x00ccc5c3, 0x00c7b9bc, 0x00b9b5b7, 0x00a3a6a2, 0x009c9a95, 0x00a09d99, 0x00afa6a4, 0x00b9b0ab, 0x00beb7b1, 0x00c6beb9, 0x00c3bfbb, 0x00b3b3b0, 0x00aaa8a8,
- 0x00cac1c7, 0x00eff1ef, 0x00eaf8f6, 0x00c3dedd, 0x00afc5dc, 0x00b1c5d7, 0x00d7e6ea, 0x00f4fdf5, 0x00fffef4, 0x00fffaf9, 0x00fefbfe, 0x00fffeff, 0x00fefcff, 0x00fcfdfd, 0x00fcfcf9, 0x00fdfcfe,
- 0x00fcfafd, 0x00f6f3f6, 0x00eeecee, 0x00eae9ea, 0x00ebebec, 0x00ebeceb, 0x00efefee, 0x00d8dad9, 0x00a4a1a9, 0x0094939a, 0x009a9b9d, 0x00949696, 0x00959595, 0x00999798, 0x009c9d9d, 0x00a1a09e,
- 0x009fa7a5, 0x00aaa5a5, 0x00b1a5a3, 0x00b7a4a1, 0x00c3a39f, 0x00bf9f98, 0x00be9e94, 0x00c2a198, 0x00caacaa, 0x00cdb8b8, 0x00cebeba, 0x00c3c1b5, 0x00c2bdb1, 0x00beb6ae, 0x00b8afa8, 0x00b4ada6,
- 0x00bfb6b0, 0x00c2bdb7, 0x00c9c6c1, 0x00cccbc5, 0x00d0cfc8, 0x00cccac4, 0x00c6c2be, 0x00beb7b5, 0x00b1a9ad, 0x00a59fa4, 0x009e979a, 0x009c9497, 0x0099949a, 0x009a979b, 0x009fa1a1, 0x00a4a4a7,
- 0x00b1adb0, 0x00bfb9bc, 0x00cbc8cb, 0x00d4d0d2, 0x00e7e0e3, 0x00f2eeee, 0x00f7f5f5, 0x00fcfefe, 0x00fffeff, 0x00fffeff, 0x00fdfdff, 0x00fefffe, 0x00fefdfd, 0x00fffeff, 0x00fefffd, 0x00fffffd,
- 0x00ffffff, 0x00fffeff, 0x00fffdff, 0x00ffffff, 0x00fffffe, 0x00fffeff, 0x00feffff, 0x00ffffff, 0x00fffeff, 0x00ffffff, 0x00fffffe, 0x00fefefd, 0x00ffffff, 0x00ffffff, 0x00fffffe, 0x00fffeff,
- 0x00fffdff, 0x00fffeff, 0x00fcfffd, 0x00fdfffd, 0x00fffdfc, 0x00fbfafa, 0x00f5f6f6, 0x00f3f3f0, 0x00e9e6eb, 0x00dcdadc, 0x00d4d3d4, 0x00cccbcb, 0x00bcb9b6, 0x00adaaa5, 0x00a5a29c, 0x00a29d97,
- 0x00a7a29c, 0x00a5a09f, 0x00a4a09c, 0x00a4a29f, 0x00a9abad, 0x00abaead, 0x00b4b5b2, 0x00b9bbb7, 0x00c2bebf, 0x00c3bdbb, 0x00c3bdb7, 0x00c5bdb5, 0x00c7beb1, 0x00c6beb0, 0x00c5bcae, 0x00c5bdae,
- 0x00cebfae, 0x00d0bfad, 0x00d2c0ad, 0x00d4c1ae, 0x00d6c5ae, 0x00d2c3ad, 0x00cfc0aa, 0x00cdc0ac, 0x00ccb9ab, 0x00d2c2b8, 0x00e5d7ca, 0x00e8d6c2, 0x00d0c4c9, 0x00bdc5d0, 0x00b0c8d5, 0x00a8c8da,
- 0x00a7c5d8, 0x00aec4d8, 0x00a7c1cf, 0x00abc2d2, 0x00c3d8eb, 0x00dde4eb, 0x00e7ebea, 0x00edefed, 0x00f5f3f7, 0x00f9f8fb, 0x00f9f9f9, 0x00f4f5f4, 0x00f4f5f6, 0x00f4f5f5, 0x00f5f6f4, 0x00f7f7f5,
- 0x00f8f6fb, 0x00f7f6f7, 0x00f6f7f9, 0x00f5f8fb, 0x00f7fafb, 0x00f7fbfa, 0x00f7fbfb, 0x00f7fafc, 0x00f8f8fd, 0x00f5f6f8, 0x00f1f4f4, 0x00edeff0, 0x00ebf0f1, 0x00eff0f2, 0x00eff0f1, 0x00eceff0,
- 0x00eeeff4, 0x00eeeff2, 0x00eceef0, 0x00eaedef, 0x00edeef0, 0x00e6e7e8, 0x00dcdedd, 0x00c6c8d1, 0x00a9afc1, 0x00a4afc0, 0x00a4afbe, 0x009ba7b6, 0x009da6b3, 0x00a0a6b2, 0x00b1b4b9, 0x00c1c0c2,
- 0x00cebe98, 0x00d5c797, 0x00dfd597, 0x00e4dd91, 0x00e7df8e, 0x00eae290, 0x00ebe292, 0x00ebe393, 0x00f0e097, 0x00eee391, 0x00ede393, 0x00e8e498, 0x00eee6a8, 0x00f1edbd, 0x00e8e1c1, 0x00d5ccb5,
- 0x00c4b9b6, 0x00c1b8b9, 0x00bfb8b7, 0x00beb6b4, 0x00bfb5b0, 0x00bbb6a9, 0x00b9b5a6, 0x00b9b3a5, 0x00bbada5, 0x00bdaca5, 0x00baaba2, 0x00b6a99d, 0x00b7aa9f, 0x00b7aa9e, 0x00b6aa9d, 0x00b5a89d,
-
-};
-
diff --git a/drivers/video/samsung_duallcd/mdnie.c b/drivers/video/samsung_duallcd/mdnie.c
deleted file mode 100644
index 6ef64e8..0000000
--- a/drivers/video/samsung_duallcd/mdnie.c
+++ /dev/null
@@ -1,916 +0,0 @@
-/* linux/drivers/video/samsung/mdnie.c
- *
- * Register interface file for Samsung mDNIe driver
- *
- * Copyright (c) 2009 Samsung Electronics
- * http://www.samsungsemi.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/mm.h>
-#include <linux/device.h>
-#include <linux/backlight.h>
-#include <linux/platform_device.h>
-#include <linux/mdnie.h>
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-#include <mach/gpio.h>
-#include <linux/delay.h>
-#include <linux/lcd.h>
-
-#include "s3cfb.h"
-#include "s3cfb_mdnie.h"
-
-#if defined(CONFIG_CPU_EXYNOS4210)
-#if defined(CONFIG_FB_S5P_LD9040) || defined(CONFIG_FB_S5P_NT35560)
-#include "mdnie_table_u1.h"
-#elif defined(CONFIG_FB_S5P_S6E8AA0)
-#include "mdnie_table_q1.h"
-#elif defined(CONFIG_FB_S5P_S6E8AB0)
-#include "mdnie_table_p8.h"
-#elif defined(CONFIG_FB_S5P_S6F1202A)
-#include "mdnie_table.h"
-#include "mdnie_table_p2_boe.h"
-#include "mdnie_table_p2_hydis.h"
-#include "mdnie_table_p2_sec.h"
-#elif defined(CONFIG_FB_S5P_S6C1372)
-#include "mdnie_table_p4.h"
-#endif
-#include "mdnie_color_tone_4210.h"
-#else /* CONFIG_CPU_EXYNOS4210 */
-#if defined(CONFIG_FB_S5P_S6E8AA0)
-#include "mdnie_table_c1m0.h"
-#elif defined(CONFIG_FB_S5P_S6E63M0)
-#include "mdnie_table_c1m0.h"
-#elif defined(CONFIG_FB_S5P_S6C1372)
-#include "mdnie_table_p4note.h"
-#elif defined(CONFIG_FB_S5P_S6D6AA1)
-#include "mdnie_table_gc1.h"
-#else
-#include "mdnie_table_4412.h"
-#endif
-#include "mdnie_color_tone.h" /* sholud be added for 4212, 4412 */
-#endif
-
-#if defined(CONFIG_TDMB) || defined(CONFIG_TARGET_LOCALE_NTT)
-#include "mdnie_dmb.h"
-#endif
-
-#if defined(CONFIG_FB_MDNIE_PWM)
-#define MIN_BRIGHTNESS 0
-#define DEFAULT_BRIGHTNESS 150
-#if defined(CONFIG_FB_S5P_S6F1202A)
-#define MAX_BACKLIGHT_VALUE 1424 /* 1504(94%) -> 1424(89%) */
-#define MID_BACKLIGHT_VALUE 544 /* 784(49%) -> 544(34%) */
-#define LOW_BACKLIGHT_VALUE 16
-#define DIM_BACKLIGHT_VALUE 16
-#define CABC_CUTOFF_BACKLIGHT_VALUE 40 /* 2.5% */
-#elif defined(CONFIG_FB_S5P_S6C1372)
-#define MAX_BACKLIGHT_VALUE 1441 //90%
-#define MID_BACKLIGHT_VALUE 784
-#define LOW_BACKLIGHT_VALUE 16
-#define DIM_BACKLIGHT_VALUE 16
-#define CABC_CUTOFF_BACKLIGHT_VALUE 40 /* 2.5% */
-#endif
-#define MAX_BRIGHTNESS_LEVEL 255
-#define MID_BRIGHTNESS_LEVEL 150
-#define LOW_BRIGHTNESS_LEVEL 30
-#define DIM_BRIGHTNESS_LEVEL 20
-#endif
-
-#define SCENARIO_IS_COLOR(scenario) \
- ((scenario >= COLOR_TONE_1) && (scenario < COLOR_TONE_MAX))
-
-#if defined(CONFIG_TDMB) || defined(CONFIG_TARGET_LOCALE_NTT)
-#define SCENARIO_IS_DMB(scenario) \
- ((scenario >= DMB_NORMAL_MODE) && (scenario < DMB_MODE_MAX))
-#define SCENARIO_IS_VALID(scenario) \
- ((SCENARIO_IS_COLOR(scenario)) || SCENARIO_IS_DMB(scenario) || \
- (scenario < SCENARIO_MAX))
-#else
-#define SCENARIO_IS_VALID(scenario) \
- ((SCENARIO_IS_COLOR(scenario)) || (scenario < SCENARIO_MAX))
-#endif
-
-static char tuning_file_name[50];
-
-struct class *mdnie_class;
-
-struct mdnie_info *g_mdnie;
-
-#ifdef CONFIG_MACH_P4NOTE
-static struct mdnie_backlight_value b_value;
-#endif
-
-int mdnie_send_sequence(struct mdnie_info *mdnie, const unsigned short *seq)
-{
- int ret = 0, i = 0;
- const unsigned short *wbuf;
-
- if (IS_ERR_OR_NULL(seq)) {
- dev_err(mdnie->dev, "mdnie sequence is null\n");
- return -EPERM;
- }
-
- mutex_lock(&mdnie->dev_lock);
-
- wbuf = seq;
-
- s3c_mdnie_mask();
-
- while (wbuf[i] != END_SEQ) {
- mdnie_write(wbuf[i], wbuf[i+1]);
- i += 2;
- }
-
- s3c_mdnie_unmask();
-
- mutex_unlock(&mdnie->dev_lock);
-
- return ret;
-}
-
-void set_mdnie_value(struct mdnie_info *mdnie, u8 force)
-{
- u8 idx;
-
- if ((!mdnie->enable) && (!force)) {
- dev_err(mdnie->dev, "mdnie states is off\n");
- return;
- }
-
- if (mdnie->scenario == VIDEO_WARM_MODE)
- mdnie->tone = TONE_WARM;
- else if (mdnie->scenario == VIDEO_COLD_MODE)
- mdnie->tone = TONE_COLD;
- else
- mdnie->tone = TONE_NORMAL;
-
- if (mdnie->tunning) {
- dev_info(mdnie->dev, "mdnie tunning mode is enabled\n");
- return;
- }
-
- mutex_lock(&mdnie->lock);
-
- if (mdnie->negative == NEGATIVE_ON) {
- dev_info(mdnie->dev, "NEGATIVE_ON\n");
- mdnie_send_sequence(mdnie, tune_negative[mdnie->cabc].seq);
- goto exit;
- }
-
-#if defined(CONFIG_TDMB) || defined(CONFIG_TARGET_LOCALE_NTT)
- if (SCENARIO_IS_DMB(mdnie->scenario)) {
- idx = mdnie->scenario - DMB_NORMAL_MODE;
- mdnie_send_sequence(mdnie, tune_dmb[mdnie->mode].seq);
- dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n",
- mdnie->mode, mdnie->scenario, mdnie->outdoor,
- mdnie->cabc, tune_dmb[mdnie->mode].name);
- goto etc;
- }
-#endif
-
- if (SCENARIO_IS_COLOR(mdnie->scenario)) {
- idx = mdnie->scenario - COLOR_TONE_1;
- mdnie_send_sequence(mdnie, tune_color_tone[idx].seq);
- dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n",
- mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc,
- tune_color_tone[idx].name);
-
- goto exit;
- } else if ((mdnie->scenario == CAMERA_MODE) && (mdnie->outdoor == OUTDOOR_OFF)) {
- mdnie_send_sequence(mdnie, tune_camera);
- dev_info(mdnie->dev, "%s\n", "CAMERA");
-
- goto exit;
- } else if ((mdnie->scenario == CAMERA_MODE) && (mdnie->outdoor == OUTDOOR_ON)) {
- mdnie_send_sequence(mdnie, tune_camera_outdoor);
- dev_info(mdnie->dev, "%s\n", "CAMERA_OUTDOOR");
-
- goto exit;
- } else {
- mdnie_send_sequence(mdnie, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].seq);
- dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n",
- mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc,
- tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].name);
- }
-
-#if defined(CONFIG_TDMB) || defined(CONFIG_TARGET_LOCALE_NTT)
-etc:
-#endif
- if (!IS_ERR_OR_NULL(etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].seq)) {
- mdnie_send_sequence(mdnie, etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].seq);
- dev_info(mdnie->dev, "%s\n", etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].name);
- }
-
-exit:
- mutex_unlock(&mdnie->lock);
-
- return;
-}
-
-#if defined(CONFIG_FB_MDNIE_PWM)
-#ifdef CONFIG_MACH_P4NOTE
-static int get_backlight_level_from_brightness(unsigned int brightness)
-{
- unsigned int value;
-
- /* brightness tuning*/
- if (brightness >= MID_BRIGHTNESS_LEVEL)
- value = (brightness - MID_BRIGHTNESS_LEVEL) * (b_value.max-b_value.mid) / (MAX_BRIGHTNESS_LEVEL-MID_BRIGHTNESS_LEVEL) + b_value.mid;
- else if (brightness >= LOW_BRIGHTNESS_LEVEL)
- value = (brightness - LOW_BRIGHTNESS_LEVEL) * (b_value.mid-b_value.low) / (MID_BRIGHTNESS_LEVEL-LOW_BRIGHTNESS_LEVEL) + b_value.low;
- else if (brightness >= DIM_BRIGHTNESS_LEVEL)
- value = (brightness - DIM_BRIGHTNESS_LEVEL) * (b_value.low-b_value.dim) / (LOW_BRIGHTNESS_LEVEL-DIM_BRIGHTNESS_LEVEL) + b_value.dim;
- else if (brightness > 0)
- value = b_value.dim;
- else
- return 0;
-
- if (value > 1600)
- value = 1600;
-
- if (value < 16)
- value = 1;
- else
- value = value >> 4;
-
- return value;
-}
-#else
-static int get_backlight_level_from_brightness(unsigned int brightness)
-{
- unsigned int value;
-
- /* brightness tuning*/
- if (brightness >= MID_BRIGHTNESS_LEVEL)
- value = (brightness - MID_BRIGHTNESS_LEVEL) * (MAX_BACKLIGHT_VALUE-MID_BACKLIGHT_VALUE) / (MAX_BRIGHTNESS_LEVEL-MID_BRIGHTNESS_LEVEL) + MID_BACKLIGHT_VALUE;
- else if (brightness >= LOW_BRIGHTNESS_LEVEL)
- value = (brightness - LOW_BRIGHTNESS_LEVEL) * (MID_BACKLIGHT_VALUE-LOW_BACKLIGHT_VALUE) / (MID_BRIGHTNESS_LEVEL-LOW_BRIGHTNESS_LEVEL) + LOW_BACKLIGHT_VALUE;
- else if (brightness >= DIM_BRIGHTNESS_LEVEL)
- value = (brightness - DIM_BRIGHTNESS_LEVEL) * (LOW_BACKLIGHT_VALUE-DIM_BACKLIGHT_VALUE) / (LOW_BRIGHTNESS_LEVEL-DIM_BRIGHTNESS_LEVEL) + DIM_BACKLIGHT_VALUE;
- else if (brightness > 0)
- value = DIM_BACKLIGHT_VALUE;
- else
- return 0;
-
- if (value > 1600)
- value = 1600;
-
- if (value < 16)
- value = 1;
- else
- value = value >> 4;
-
- return value;
-}
-#endif
-
-#if defined(CONFIG_CPU_EXYNOS4210)
-static void mdnie_pwm_control(struct mdnie_info *mdnie, int value)
-{
- mutex_lock(&mdnie->dev_lock);
- mdnie_write(0x00, 0x0000);
- mdnie_write(0xB4, 0xC000 | value);
- mdnie_write(0x28, 0x0000);
- mutex_unlock(&mdnie->dev_lock);
-}
-
-static void mdnie_pwm_control_cabc(struct mdnie_info *mdnie, int value)
-{
- int reg;
- const unsigned char *p_plut;
- u16 min_duty;
- unsigned idx;
-
- mutex_lock(&mdnie->dev_lock);
-
- idx = tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].idx_lut;
- p_plut = power_lut[idx];
- min_duty = p_plut[7] * value / 100;
-
- mdnie_write(0x00, 0x0000);
-
- if (min_duty < 4)
- reg = 0xC000 | (max(1, (value * p_plut[3] / 100)));
- else {
- /*PowerLUT*/
- mdnie_write(0x76, (p_plut[0] * value / 100) << 8 | (p_plut[1] * value / 100));
- mdnie_write(0x77, (p_plut[2] * value / 100) << 8 | (p_plut[3] * value / 100));
- mdnie_write(0x78, (p_plut[4] * value / 100) << 8 | (p_plut[5] * value / 100));
- mdnie_write(0x79, (p_plut[6] * value / 100) << 8 | (p_plut[7] * value / 100));
- mdnie_write(0x7a, (p_plut[8] * value / 100) << 8);
-
- reg = 0x5000 | (value << 4);
- }
-
- mdnie_write(0xB4, reg);
- mdnie_write(0x28, 0x0000);
-
- mutex_unlock(&mdnie->dev_lock);
-}
-#elif defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)
-static void mdnie_pwm_control(struct mdnie_info *mdnie, int value)
-{
- mutex_lock(&mdnie->dev_lock);
- mdnie_write(0x00, 0x0001);
- mdnie_write(0xB6, 0xC000 | value);
- mdnie_write(0xff, 0x0000);
- mutex_unlock(&mdnie->dev_lock);
-}
-
-static void mdnie_pwm_control_cabc(struct mdnie_info *mdnie, int value)
-{
- int reg;
- const unsigned char *p_plut;
- u16 min_duty;
- unsigned idx;
-
- mutex_lock(&mdnie->dev_lock);
-
- idx = tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].idx_lut;
- p_plut = power_lut[idx];
- min_duty = p_plut[7] * value / 100;
-
- mdnie_write(0x00, 0x0001);
-
- if (min_duty < 4)
- reg = 0xC000 | (max(1, (value * p_plut[3] / 100)));
- else {
- /*PowerLUT*/
- mdnie_write(0x79, (p_plut[0] * value / 100) << 8 | (p_plut[1] * value / 100));
- mdnie_write(0x7a, (p_plut[2] * value / 100) << 8 | (p_plut[3] * value / 100));
- mdnie_write(0x7b, (p_plut[4] * value / 100) << 8 | (p_plut[5] * value / 100));
- mdnie_write(0x7c, (p_plut[6] * value / 100) << 8 | (p_plut[7] * value / 100));
- mdnie_write(0x7d, (p_plut[8] * value / 100) << 8);
-
- reg = 0x5000 | (value << 4);
- }
-
- mdnie_write(0xB6, reg);
- mdnie_write(0xff, 0x0000);
-
- mutex_unlock(&mdnie->dev_lock);
-}
-#endif
-
-void set_mdnie_pwm_value(struct mdnie_info *mdnie, int value)
-{
- mdnie_pwm_control(mdnie, value);
-}
-
-static int update_brightness(struct mdnie_info *mdnie)
-{
- unsigned int value;
- unsigned int brightness = mdnie->bd->props.brightness;
-
- value = get_backlight_level_from_brightness(brightness);
-
- if (!mdnie->enable) {
- dev_err(mdnie->dev, "WTH! do not configure mDNIe after LCD/mDNIe power off\n");
- return 0;
- }
- if (brightness <= CABC_CUTOFF_BACKLIGHT_VALUE) {
- mdnie_pwm_control(mdnie, value);
- } else {
- if ((mdnie->cabc) && (mdnie->scenario != CAMERA_MODE) && !(mdnie->tunning))
- mdnie_pwm_control_cabc(mdnie, value);
- else
- mdnie_pwm_control(mdnie, value);
- }
- return 0;
-}
-
-static int mdnie_set_brightness(struct backlight_device *bd)
-{
- struct mdnie_info *mdnie = bl_get_data(bd);
- int ret = 0;
- unsigned int brightness = bd->props.brightness;
-
- if (brightness < MIN_BRIGHTNESS ||
- brightness > bd->props.max_brightness) {
- dev_err(&bd->dev, "lcd brightness should be %d to %d. now %d\n",
- MIN_BRIGHTNESS, bd->props.max_brightness, brightness);
- brightness = bd->props.max_brightness;
- }
-
- if ((mdnie->enable) && (mdnie->bd_enable)) {
- ret = update_brightness(mdnie);
- dev_info(&bd->dev, "brightness=%d\n", bd->props.brightness);
- if (ret < 0)
- return -EINVAL;
- }
-
- return ret;
-}
-
-static int mdnie_get_brightness(struct backlight_device *bd)
-{
- return bd->props.brightness;
-}
-
-static const struct backlight_ops mdnie_backlight_ops = {
- .get_brightness = mdnie_get_brightness,
- .update_status = mdnie_set_brightness,
-};
-#endif
-
-static ssize_t mode_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct mdnie_info *mdnie = dev_get_drvdata(dev);
-
- return sprintf(buf, "%d\n", mdnie->mode);
-}
-
-static ssize_t mode_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- struct mdnie_info *mdnie = dev_get_drvdata(dev);
- unsigned int value;
- int ret;
-
- ret = strict_strtoul(buf, 0, (unsigned long *)&value);
-
- dev_info(dev, "%s :: value=%d\n", __func__, value);
-
- if (value >= MODE_MAX) {
- value = STANDARD;
- return -EINVAL;
- }
-
- mutex_lock(&mdnie->lock);
- mdnie->mode = value;
- mutex_unlock(&mdnie->lock);
-
- set_mdnie_value(mdnie, 0);
-#if defined(CONFIG_FB_MDNIE_PWM)
- if ((mdnie->enable) && (mdnie->bd_enable))
- update_brightness(mdnie);
-#endif
-
- return count;
-}
-
-
-static ssize_t scenario_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct mdnie_info *mdnie = dev_get_drvdata(dev);
-
- return sprintf(buf, "%d\n", mdnie->scenario);
-}
-
-static ssize_t scenario_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- struct mdnie_info *mdnie = dev_get_drvdata(dev);
- unsigned int value;
- int ret;
-
- ret = strict_strtoul(buf, 0, (unsigned long *)&value);
-
- dev_info(dev, "%s :: value=%d\n", __func__, value);
-
- if (!SCENARIO_IS_VALID(value))
- value = UI_MODE;
-
-#if defined(CONFIG_FB_MDNIE_PWM)
- if (value >= SCENARIO_MAX)
- value = UI_MODE;
-#endif
-
- mutex_lock(&mdnie->lock);
- mdnie->scenario = value;
- mutex_unlock(&mdnie->lock);
-
- set_mdnie_value(mdnie, 0);
-#if defined(CONFIG_FB_MDNIE_PWM)
- if ((mdnie->enable) && (mdnie->bd_enable))
- update_brightness(mdnie);
-#endif
-
- return count;
-}
-
-
-static ssize_t outdoor_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct mdnie_info *mdnie = dev_get_drvdata(dev);
-
- return sprintf(buf, "%d\n", mdnie->outdoor);
-}
-
-static ssize_t outdoor_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- struct mdnie_info *mdnie = dev_get_drvdata(dev);
- unsigned int value;
- int ret;
-
- ret = strict_strtoul(buf, 0, (unsigned long *)&value);
-
- dev_info(dev, "%s :: value=%d\n", __func__, value);
-
- if (value >= OUTDOOR_MAX)
- value = OUTDOOR_OFF;
-
- value = (value) ? OUTDOOR_ON : OUTDOOR_OFF;
-
- mutex_lock(&mdnie->lock);
- mdnie->outdoor = value;
- mutex_unlock(&mdnie->lock);
-
- set_mdnie_value(mdnie, 0);
-
- return count;
-}
-
-
-#if defined(CONFIG_FB_MDNIE_PWM)
-static ssize_t cabc_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct mdnie_info *mdnie = dev_get_drvdata(dev);
-
- return sprintf(buf, "%d\n", mdnie->cabc);
-}
-
-static ssize_t cabc_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- struct mdnie_info *mdnie = dev_get_drvdata(dev);
- unsigned int value;
- int ret;
-
- ret = strict_strtoul(buf, 0, (unsigned long *)&value);
-
- dev_info(dev, "%s :: value=%d\n", __func__, value);
-
- if (value >= CABC_MAX)
- value = CABC_OFF;
-
- value = (value) ? CABC_ON : CABC_OFF;
-
- mutex_lock(&mdnie->lock);
- mdnie->cabc = value;
- mutex_unlock(&mdnie->lock);
-
- set_mdnie_value(mdnie, 0);
- if ((mdnie->enable) && (mdnie->bd_enable))
- update_brightness(mdnie);
-
- return count;
-}
-#endif
-
-static ssize_t tunning_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- char temp[128];
-
- sprintf(temp, "%s\n", tuning_file_name);
- strcat(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t tunning_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- struct mdnie_info *mdnie = dev_get_drvdata(dev);
-
- if (!strncmp(buf, "0", 1)) {
- mdnie->tunning = FALSE;
- dev_info(dev, "%s :: tunning is disabled.\n", __func__);
- } else if (!strncmp(buf, "1", 1)) {
- mdnie->tunning = TRUE;
- dev_info(dev, "%s :: tunning is enabled.\n", __func__);
- } else {
- if (!mdnie->tunning)
- return count;
- memset(tuning_file_name, 0, sizeof(tuning_file_name));
- strcpy(tuning_file_name, "/sdcard/mdnie/");
- strncat(tuning_file_name, buf, count-1);
-
- mdnie_txtbuf_to_parsing(tuning_file_name);
-
- dev_info(dev, "%s :: %s\n", __func__, tuning_file_name);
- }
-
- return count;
-}
-
-static ssize_t negative_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct mdnie_info *mdnie = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", mdnie->negative);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t negative_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t count)
-{
- struct mdnie_info *mdnie = dev_get_drvdata(dev);
- unsigned int value;
- int ret;
-
- ret = strict_strtoul(buf, 0, (unsigned long *)&value);
- dev_info(dev, "%s :: value=%d\n", __func__, value);
-
- if (ret < 0)
- return ret;
- else {
- if (mdnie->negative == value)
- return count;
-
- if (value >= NEGATIVE_MAX)
- value = NEGATIVE_OFF;
-
- value = (value) ? NEGATIVE_ON : NEGATIVE_OFF;
-
- mutex_lock(&mdnie->lock);
- mdnie->negative = value;
- mutex_unlock(&mdnie->lock);
-
- set_mdnie_value(mdnie, 0);
- }
- return count;
-}
-
-static struct device_attribute mdnie_attributes[] = {
- __ATTR(mode, 0664, mode_show, mode_store),
- __ATTR(scenario, 0664, scenario_show, scenario_store),
- __ATTR(outdoor, 0664, outdoor_show, outdoor_store),
-#if defined(CONFIG_FB_MDNIE_PWM)
- __ATTR(cabc, 0664, cabc_show, cabc_store),
-#endif
- __ATTR(tunning, 0664, tunning_show, tunning_store),
- __ATTR(negative, 0664, negative_show, negative_store),
- __ATTR_NULL,
-};
-
-#ifdef CONFIG_PM
-#if defined(CONFIG_HAS_EARLYSUSPEND) && defined(CONFIG_FB_MDNIE_PWM)
-void mdnie_early_suspend(struct early_suspend *h)
-{
- struct mdnie_info *mdnie = container_of(h, struct mdnie_info, early_suspend);
- struct lcd_platform_data *pd = NULL;
- pd = mdnie->lcd_pd;
-
- dev_info(mdnie->dev, "+%s\n", __func__);
-
- mdnie->bd_enable = FALSE;
-
- if (mdnie->enable)
- mdnie_pwm_control(mdnie, 0);
-
- if (!pd)
- dev_info(&mdnie->bd->dev, "platform data is NULL.\n");
-
- if (!pd->power_on)
- dev_info(&mdnie->bd->dev, "power_on is NULL.\n");
- else
- pd->power_on(NULL, 0);
-
- dev_info(mdnie->dev, "-%s\n", __func__);
-
- return ;
-}
-
-void mdnie_late_resume(struct early_suspend *h)
-{
- struct mdnie_info *mdnie = container_of(h, struct mdnie_info, early_suspend);
- struct lcd_platform_data *pd = NULL;
-
- dev_info(mdnie->dev, "+%s\n", __func__);
- pd = mdnie->lcd_pd;
-
- if (mdnie->enable)
- mdnie_pwm_control(mdnie, 0);
-
- if (!pd)
- dev_info(&mdnie->bd->dev, "platform data is NULL.\n");
-
- if (!pd->power_on)
- dev_info(&mdnie->bd->dev, "power_on is NULL.\n");
- else
- pd->power_on(NULL, 1);
-
- if (mdnie->enable) {
- dev_info(&mdnie->bd->dev, "brightness=%d\n", mdnie->bd->props.brightness);
- update_brightness(mdnie);
- }
-
- mdnie->bd_enable = TRUE;
- dev_info(mdnie->dev, "-%s\n", __func__);
-
- return ;
-}
-#endif
-#endif
-
-static int mdnie_probe(struct platform_device *pdev)
-{
-#if defined(CONFIG_FB_MDNIE_PWM)
- struct platform_mdnie_data *pdata = pdev->dev.platform_data;
-#endif
- struct mdnie_info *mdnie;
- int ret = 0;
-
- mdnie_class = class_create(THIS_MODULE, dev_name(&pdev->dev));
- if (IS_ERR_OR_NULL(mdnie_class)) {
- pr_err("failed to create mdnie class\n");
- ret = -EINVAL;
- goto error0;
- }
-
- mdnie_class->dev_attrs = mdnie_attributes;
-
- mdnie = kzalloc(sizeof(struct mdnie_info), GFP_KERNEL);
- if (!mdnie) {
- pr_err("failed to allocate mdnie\n");
- ret = -ENOMEM;
- goto error1;
- }
-
- mdnie->dev = device_create(mdnie_class, &pdev->dev, 0, &mdnie, "mdnie");
- if (IS_ERR_OR_NULL(mdnie->dev)) {
- pr_err("failed to create mdnie device\n");
- ret = -EINVAL;
- goto error2;
- }
-
-#if defined(CONFIG_FB_MDNIE_PWM)
- mdnie->bd = backlight_device_register("panel", mdnie->dev,
- mdnie, &mdnie_backlight_ops, NULL);
- mdnie->bd->props.max_brightness = MAX_BRIGHTNESS_LEVEL;
- mdnie->bd->props.brightness = DEFAULT_BRIGHTNESS;
- mdnie->bd_enable = TRUE;
- mdnie->lcd_pd = pdata->lcd_pd;
-#endif
-
- mdnie->scenario = UI_MODE;
- mdnie->mode = STANDARD;
- mdnie->tone = TONE_NORMAL;
- mdnie->outdoor = OUTDOOR_OFF;
-#if defined(CONFIG_FB_MDNIE_PWM)
- mdnie->cabc = CABC_ON;
-#else
- mdnie->cabc = CABC_OFF;
-#endif
- mdnie->enable = TRUE;
- mdnie->tunning = FALSE;
- mdnie->negative = NEGATIVE_OFF;
-
- mutex_init(&mdnie->lock);
- mutex_init(&mdnie->dev_lock);
-
- platform_set_drvdata(pdev, mdnie);
- dev_set_drvdata(mdnie->dev, mdnie);
-
-#ifdef CONFIG_HAS_WAKELOCK
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#if defined(CONFIG_FB_MDNIE_PWM)
- mdnie->early_suspend.suspend = mdnie_early_suspend;
- mdnie->early_suspend.resume = mdnie_late_resume;
- mdnie->early_suspend.level = EARLY_SUSPEND_LEVEL_DISABLE_FB - 1;
- register_early_suspend(&mdnie->early_suspend);
-#endif
-#endif
-#endif
-
-#if defined(CONFIG_FB_S5P_S6C1372)
- check_lcd_type();
- dev_info(mdnie->dev, "lcdtype = %d\n", pdata->display_type);
- if (pdata->display_type == 1) {
- b_value.max = 1441;
- b_value.mid = 784;
- b_value.low = 16;
- b_value.dim = 16;
- } else {
- b_value.max = 1216; /* 76% */
- b_value.mid = 679; /* 39% */
- b_value.low = 16; /* 1% */
- b_value.dim = 16; /* 1% */
- }
-#endif
-
-#if defined(CONFIG_FB_S5P_S6F1202A)
- if (pdata->display_type == 0) {
- memcpy(tunning_table, tunning_table_hy, sizeof(tunning_table));
- memcpy(etc_table, etc_table_hy, sizeof(etc_table));
- tune_camera = tune_camera_hy;
- tune_camera_outdoor = tune_camera_outdoor_hy;
- } else if (pdata->display_type == 1) {
- memcpy(tunning_table, tunning_table_sec, sizeof(tunning_table));
- memcpy(etc_table, etc_table_sec, sizeof(etc_table));
- tune_camera = tune_camera_sec;
- tune_camera_outdoor = tune_camera_outdoor_sec;
- } else if (pdata->display_type == 2) {
- memcpy(tunning_table, tunning_table_bo, sizeof(tunning_table));
- memcpy(etc_table, etc_table_bo, sizeof(etc_table));
- tune_camera = tune_camera_bo;
- tune_camera_outdoor = tune_camera_outdoor_bo;
- }
-#endif
-
- g_mdnie = mdnie;
-
- set_mdnie_value(mdnie, 0);
-
- dev_info(mdnie->dev, "registered successfully\n");
-
- return 0;
-
-error2:
- kfree(mdnie);
-error1:
- class_destroy(mdnie_class);
-error0:
- return ret;
-}
-
-static int mdnie_remove(struct platform_device *pdev)
-{
- struct mdnie_info *mdnie = dev_get_drvdata(&pdev->dev);
-
-#if defined(CONFIG_FB_MDNIE_PWM)
- backlight_device_unregister(mdnie->bd);
-#endif
- class_destroy(mdnie_class);
- kfree(mdnie);
-
- return 0;
-}
-
-static void mdnie_shutdown(struct platform_device *pdev)
-{
-#if defined(CONFIG_FB_MDNIE_PWM)
- struct mdnie_info *mdnie = dev_get_drvdata(&pdev->dev);
- struct lcd_platform_data *pd = NULL;
- pd = mdnie->lcd_pd;
-
- dev_info(mdnie->dev, "+%s\n", __func__);
-
- mdnie->bd_enable = FALSE;
-
- if (mdnie->enable)
- mdnie_pwm_control(mdnie, 0);
-
- if (!pd)
- dev_info(&mdnie->bd->dev, "platform data is NULL.\n");
-
- if (!pd->power_on)
- dev_info(&mdnie->bd->dev, "power_on is NULL.\n");
- else
- pd->power_on(NULL, 0);
-
- dev_info(mdnie->dev, "-%s\n", __func__);
-#endif
-}
-
-
-static struct platform_driver mdnie_driver = {
- .driver = {
- .name = "mdnie",
- .owner = THIS_MODULE,
- },
- .probe = mdnie_probe,
- .remove = mdnie_remove,
-#ifndef CONFIG_HAS_EARLYSUSPEND
- .suspend = mdnie_suspend,
- .resume = mdnie_resume,
-#endif
- .shutdown = mdnie_shutdown,
-};
-
-static int __init mdnie_init(void)
-{
- return platform_driver_register(&mdnie_driver);
-}
-module_init(mdnie_init);
-
-static void __exit mdnie_exit(void)
-{
- platform_driver_unregister(&mdnie_driver);
-}
-module_exit(mdnie_exit);
-
-MODULE_DESCRIPTION("mDNIe Driver");
-MODULE_LICENSE("GPL");
-
diff --git a/drivers/video/samsung_duallcd/mdnie.h b/drivers/video/samsung_duallcd/mdnie.h
deleted file mode 100644
index 4c37418..0000000
--- a/drivers/video/samsung_duallcd/mdnie.h
+++ /dev/null
@@ -1,128 +0,0 @@
-#ifndef __MDNIE_H__
-#define __MDNIE_H__
-
-#define END_SEQ 0xffff
-
-enum MODE {
- DYNAMIC,
- STANDARD,
-#if !defined(CONFIG_FB_MDNIE_PWM)
- NATURAL,
-#endif
- MOVIE,
- MODE_MAX,
-};
-
-enum SCENARIO {
- UI_MODE,
- VIDEO_MODE,
- VIDEO_WARM_MODE,
- VIDEO_COLD_MODE,
- CAMERA_MODE,
- NAVI_MODE,
- GALLERY_MODE,
- VT_MODE,
- SCENARIO_MAX,
-};
-
-#if defined(CONFIG_TARGET_LOCALE_KOR) || defined(CONFIG_TARGET_LOCALE_NTT)
-enum SCENARIO_DMB {
- DMB_NORMAL_MODE = 20,
- DMB_WARM_MODE,
- DMB_COLD_MODE,
- DMB_MODE_MAX,
-};
-#endif
-
-enum SCENARIO_COLOR_TONE {
- COLOR_TONE_1 = 40,
- COLOR_TONE_2,
- COLOR_TONE_3,
- COLOR_TONE_MAX,
-};
-
-enum OUTDOOR {
- OUTDOOR_OFF,
- OUTDOOR_ON,
- OUTDOOR_MAX,
-};
-
-enum TONE {
- TONE_NORMAL,
- TONE_WARM,
- TONE_COLD,
- TONE_MAX,
-};
-
-enum CABC {
- CABC_OFF,
-#if defined(CONFIG_FB_MDNIE_PWM)
- CABC_ON,
-#endif
- CABC_MAX,
-};
-
-enum POWER_LUT {
- LUT_DEFAULT,
- LUT_VIDEO,
- LUT_MAX,
-};
-
-enum NEGATIVE {
- NEGATIVE_OFF,
- NEGATIVE_ON,
- NEGATIVE_MAX,
-};
-
-struct mdnie_tunning_info {
- char *name;
- const unsigned short *seq;
-};
-
-struct mdnie_tunning_info_cabc {
- char *name;
- const unsigned short *seq;
- unsigned int idx_lut;
-};
-
-struct mdnie_info {
- struct device *dev;
-#if defined(CONFIG_FB_MDNIE_PWM)
- struct lcd_platform_data *lcd_pd;
- struct backlight_device *bd;
- unsigned int bd_enable;
-#endif
- struct mutex lock;
- struct mutex dev_lock;
-
- unsigned int enable;
- enum SCENARIO scenario;
- enum MODE mode;
- enum TONE tone;
- enum OUTDOOR outdoor;
- enum CABC cabc;
- unsigned int tunning;
- unsigned int negative;
-#ifdef CONFIG_HAS_EARLYSUSPEND
- struct early_suspend early_suspend;
-#endif
-};
-
-extern struct mdnie_info *g_mdnie;
-
-int mdnie_send_sequence(struct mdnie_info *mdnie, const unsigned short *seq);
-extern void set_mdnie_value(struct mdnie_info *mdnie, u8 force);
-#if defined(CONFIG_FB_MDNIE_PWM)
-extern void set_mdnie_pwm_value(struct mdnie_info *mdnie, int value);
-#endif
-extern int mdnie_txtbuf_to_parsing(char const *pFilepath);
-
-extern void check_lcd_type(void);
-struct mdnie_backlight_value {
- unsigned int max;
- unsigned int mid;
- unsigned char low;
- unsigned char dim;
-};
-
-#endif /* __MDNIE_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_color_tone.h b/drivers/video/samsung_duallcd/mdnie_color_tone.h
deleted file mode 100644
index b54716c..0000000
--- a/drivers/video/samsung_duallcd/mdnie_color_tone.h
+++ /dev/null
@@ -1,148 +0,0 @@
-#ifndef __MDNIE_COLOR_TONE_H__
-#define __MDNIE_COLOR_TONE_H__
-
-#include "mdnie.h"
-
-static const unsigned short tune_color_tone_1[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xaf00, /*SCR RrCr*/
- 0x00e2, 0x00b7, /*SCR RgCg*/
- 0x00e3, 0x00bc, /*SCR RbCb*/
- 0x00e4, 0x00af, /*SCR GrMr*/
- 0x00e5, 0xb700, /*SCR GgMg*/
- 0x00e6, 0x00bc, /*SCR GbMb*/
- 0x00e7, 0x00af, /*SCR BrYr*/
- 0x00e8, 0x00b7, /*SCR BgYg*/
- 0x00e9, 0xbc00, /*SCR BbYb*/
- 0x00ea, 0x00af, /*SCR KrWr*/
- 0x00eb, 0x00b7, /*SCR KgWg*/
- 0x00ec, 0x00bc, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-
-};
-
-static const unsigned short tune_color_tone_2[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xa000, /*SCR RrCr*/
- 0x00e2, 0x00a8, /*SCR RgCg*/
- 0x00e3, 0x00b2, /*SCR RbCb*/
- 0x00e4, 0x00a0, /*SCR GrMr*/
- 0x00e5, 0xa800, /*SCR GgMg*/
- 0x00e6, 0x00b2, /*SCR GbMb*/
- 0x00e7, 0x00a0, /*SCR BrYr*/
- 0x00e8, 0x00a8, /*SCR BgYg*/
- 0x00e9, 0xb200, /*SCR BbYb*/
- 0x00ea, 0x00a0, /*SCR KrWr*/
- 0x00eb, 0x00a8, /*SCR KgWg*/
- 0x00ec, 0x00b2, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_color_tone_3[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0x9100, /*SCR RrCr*/
- 0x00e2, 0x0099, /*SCR RgCg*/
- 0x00e3, 0x00a3, /*SCR RbCb*/
- 0x00e4, 0x0091, /*SCR GrMr*/
- 0x00e5, 0x9900, /*SCR GgMg*/
- 0x00e6, 0x00a3, /*SCR GbMb*/
- 0x00e7, 0x0091, /*SCR BrYr*/
- 0x00e8, 0x0099, /*SCR BgYg*/
- 0x00e9, 0xa300, /*SCR BbYb*/
- 0x00ea, 0x0091, /*SCR KrWr*/
- 0x00eb, 0x0099, /*SCR KgWg*/
- 0x00ec, 0x00a3, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_negative_amoled[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*SCR*/
- 0x00e1, 0x00ff, /*SCR RrCr*/
- 0x00e2, 0xff00, /*SCR RgCg*/
- 0x00e3, 0xff00, /*SCR RbCb*/
- 0x00e4, 0xff00, /*SCR GrMr*/
- 0x00e5, 0x00ff, /*SCR GgMg*/
- 0x00e6, 0xff00, /*SCR GbMb*/
- 0x00e7, 0xff00, /*SCR BrYr*/
- 0x00e8, 0xff00, /*SCR BgYg*/
- 0x00e9, 0x00ff, /*SCR BbYb*/
- 0x00ea, 0xff00, /*SCR KrWr*/
- 0x00eb, 0xff00, /*SCR KgWg*/
- 0x00ec, 0xff00, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_negative_cabcoff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0x00ff, /*SCR RrCr*/
- 0x00e2, 0xff00, /*SCR RgCg*/
- 0x00e3, 0xff00, /*SCR RbCb*/
- 0x00e4, 0xff00, /*SCR GrMr*/
- 0x00e5, 0x00ff, /*SCR GgMg*/
- 0x00e6, 0xff00, /*SCR GbMb*/
- 0x00e7, 0xff00, /*SCR BrYr*/
- 0x00e8, 0xff00, /*SCR BgYg*/
- 0x00e9, 0x00ff, /*SCR BbYb*/
- 0x00ea, 0xff00, /*SCR KrWr*/
- 0x00eb, 0xff00, /*SCR KgWg*/
- 0x00ec, 0xff00, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_negative_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0220, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0x00ff, /*SCR RrCr*/
- 0x00e2, 0xff00, /*SCR RgCg*/
- 0x00e3, 0xff00, /*SCR RbCb*/
- 0x00e4, 0xff00, /*SCR GrMr*/
- 0x00e5, 0x00ff, /*SCR GgMg*/
- 0x00e6, 0xff00, /*SCR GbMb*/
- 0x00e7, 0xff00, /*SCR BrYr*/
- 0x00e8, 0xff00, /*SCR BgYg*/
- 0x00e9, 0x00ff, /*SCR BbYb*/
- 0x00ea, 0xff00, /*SCR KrWrv*/
- 0x00eb, 0xff00, /*SCR KgWg*/
- 0x00ec, 0xff00, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-struct mdnie_tunning_info tune_negative[CABC_MAX] = {
-#if defined(CONFIG_FB_MDNIE_PWM)
- {"NEGATIVE_CABC_OFF", tune_negative_cabcoff},
- {"NEGATIVE_CABC_ON", tune_negative_cabcOn},
-#else
- {"NEGATIVE_ON", tune_negative_amoled},
-#endif
-};
-
-struct mdnie_tunning_info tune_color_tone[COLOR_TONE_MAX - COLOR_TONE_1] = {
- {"COLOR_TONE_1", tune_color_tone_1},
- {"COLOR_TONE_2", tune_color_tone_2},
- {"COLOR_TONE_3", tune_color_tone_3},
-};
-
-
-#endif /* __MDNIE_COLOR_TONE_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_color_tone_4210.h b/drivers/video/samsung_duallcd/mdnie_color_tone_4210.h
deleted file mode 100644
index d755a4f..0000000
--- a/drivers/video/samsung_duallcd/mdnie_color_tone_4210.h
+++ /dev/null
@@ -1,264 +0,0 @@
-#ifndef __MDNIE_COLOR_TONE_H__
-#define __MDNIE_COLOR_TONE_H__
-
-#include "mdnie.h"
-
-static const unsigned short tune_color_tone_1[] = {
- /*start */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x0009, /*HDTR CS */
- 0x003f, 0x0000, /*CS GAIN */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xafaf, /*rm R */
- 0x00cb, 0xafaf, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xb7b7, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xb7b7, /*yw G */
- 0x00d0, 0x00bc, /*kb B */
- 0x00d1, 0x00bc, /*gc B */
- 0x00d2, 0x00bc, /*rm B */
- 0x00d3, 0x00bc, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_color_tone_2[] = {
- /*start */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x0009, /*HDTR CS */
- 0x003f, 0x0000, /*CS GAIN */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xa0a0, /*rm R */
- 0x00cb, 0xa0a0, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xa8a8, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xa8a8, /*yw G */
- 0x00d0, 0x00b2, /*kb B */
- 0x00d1, 0x00b2, /*gc B */
- 0x00d2, 0x00b2, /*rm B */
- 0x00d3, 0x00b2, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_color_tone_3[] = {
- /*start */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x0009, /*HDTR CS */
- 0x003f, 0x0000, /*CS GAIN */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0x9191, /*rm R */
- 0x00cb, 0x9191, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0x9999, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0x9999, /*yw G */
- 0x00d0, 0x00a3, /*kb B */
- 0x00d1, 0x00a3, /*gc B */
- 0x00d2, 0x00a3, /*rm B */
- 0x00d3, 0x00a3, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_negative_lcd_cabc_on[] = {
- /*start p4 note negative cabcon*/
- 0x0001, 0x0070, /*SCR LABC CABC HDTR*/
- 0x002c, 0x0fff, /*DNR bypass*/
- 0x002d, 0x1900, /*DNR bypass*/
- 0x002e, 0x0000, /*DNR bypass*/
- 0x002f, 0x0fff, /*DNR bypass*/
- 0x003a, 0x0009, /*HDTR CS*/
- 0x003f, 0x0000, /*CS GAIN*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007c, 0x0002, /*Dynamic LCD*/
- /*0x00b4,0x5640, CABC PWM*/
- 0x00c8, 0xffff, /*kb R SCR*/
- 0x00c9, 0xffff, /*gc R*/
- 0x00ca, 0x0000, /*rm R*/
- 0x00cb, 0x0000, /*yw R*/
- 0x00cc, 0xffff, /*kb G*/
- 0x00cd, 0x0000, /*gc G*/
- 0x00ce, 0xffff, /*rm G*/
- 0x00cf, 0x0000, /*yw G*/
- 0x00d0, 0xff00, /*kb B*/
- 0x00d1, 0xff00, /*gc B*/
- 0x00d2, 0xff00, /*rm B*/
- 0x00d3, 0xff00, /*yw B*/
- 0x00d5, 0x0000, /*GAMMA off*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-
-};
-
-static const unsigned short tune_negative_lcd_cabc_off[] = {
- /*start p4 note negative cabcoff*/
- 0x0001, 0x0060, /*SCR LABC HDTR*/
- 0x002c, 0x0fff, /*DNR bypass*/
- 0x002d, 0x1900, /*DNR bypass*/
- 0x002e, 0x0000, /*DNR bypass*/
- 0x002f, 0x0fff, /*DNR bypass*/
- 0x003a, 0x0009, /*HDTR CS*/
- 0x003f, 0x0000, /*CS GAIN*/
- /*0x00b4,0x4640, Count PWM*/
- 0x00c8, 0xffff, /*kb R SCR*/
- 0x00c9, 0xffff, /*gc R*/
- 0x00ca, 0x0000, /*rm R*/
- 0x00cb, 0x0000, /*yw R*/
- 0x00cc, 0xffff, /*kb G*/
- 0x00cd, 0x0000, /*gc G*/
- 0x00ce, 0xffff, /*rm G*/
- 0x00cf, 0x0000, /*yw G*/
- 0x00d0, 0xff00, /*kb B*/
- 0x00d1, 0xff00, /*gc B*/
- 0x00d2, 0xff00, /*rm B*/
- 0x00d3, 0xff00, /*yw B*/
- 0x00d5, 0x0000, /*GAMMA off*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_negative_amoled[] = {
- /*start Q1 negative*/
- 0x0001, 0x0040, /*SCR HDTR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003a, 0x0009, /*HDTR CS*/
- 0x003f, 0x0000, /*CS GAIN*/
- 0x00c8, 0xffff, /*kb R SCR*/
- 0x00c9, 0xffff, /*gc R*/
- 0x00ca, 0x0000, /*rm R*/
- 0x00cb, 0x0000, /*yw R*/
- 0x00cc, 0xffff, /*kb G*/
- 0x00cd, 0x0000, /*gc G*/
- 0x00ce, 0xffff, /*rm G*/
- 0x00cf, 0x0000, /*yw G*/
- 0x00d0, 0xff00, /*kb B*/
- 0x00d1, 0xff00, /*gc B*/
- 0x00d2, 0xff00, /*rm B*/
- 0x00d3, 0xff00, /*yw B*/
- 0x00d5, 0x0000, /*GAMMA off*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-struct mdnie_tunning_info tune_negative[CABC_MAX] = {
-#if defined(CONFIG_FB_MDNIE_PWM)
- {"NEGATIVE_CABC_OFF", tune_negative_lcd_cabc_off},
- {"NEGATIVE_CABC_ON", tune_negative_lcd_cabc_on},
-#else
- {"NEGATIVE_ON", tune_negative_amoled},
-#endif
-};
-
-struct mdnie_tunning_info tune_color_tone[COLOR_TONE_MAX - COLOR_TONE_1] = {
- {"COLOR_TONE_1", tune_color_tone_1},
- {"COLOR_TONE_2", tune_color_tone_2},
- {"COLOR_TONE_3", tune_color_tone_3},
-};
-
-
-#endif /* __MDNIE_COLOR_TONE_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_dmb.h b/drivers/video/samsung_duallcd/mdnie_dmb.h
deleted file mode 100644
index a7b8bbb..0000000
--- a/drivers/video/samsung_duallcd/mdnie_dmb.h
+++ /dev/null
@@ -1,382 +0,0 @@
-#ifndef __MDNIE_DMB_H__
-#define __MDNIE_DMB_H__
-
-#include "mdnie.h"
-
-#if defined(CONFIG_CPU_EXYNOS4210)
-static const unsigned short tune_dynamic_dmb[] = {
- /* start U1 dynamic dmb */
- 0x0001, 0x0041, /* PCC 40 */
- 0x002c, 0x003C, /* DNR bypass 0x003C */
- 0x002d, 0x1508, /* DNR bypass 0x0a08 */
- 0x002e, 0x1005, /* DNR bypass 0x1010 */
- 0x002f, 0x0400, /* DNR bypass 0x0400 */
- 0x003A, 0x000D, /* HDTR DE CS de on = d , de off = 9 */
- 0x003B, 0x03ff, /* DE SHARPNESS */
- 0x003C, 0x0000, /* NOISE LEVEL */
- 0x003F, 0x012c, /* CS GAIN */
- 0x0042, 0x0020, /* DE TH (MAX DIFF) */
- 0x0049, 0x0400, /* pcc skin */
- 0x004a, 0x7a00, /* 7300 */
- 0x004b, 0x008F, /* 008f */
- 0x004d, 0x0100, /* pcc strength */
- 0x00c8, 0x0000, /* kb R SCR */
- 0x00c9, 0x0000, /* gc R */
- 0x00ca, 0xffff, /* rm R */
- 0x00cb, 0xffff, /* yw R */
- 0x00cc, 0x0000, /* kb G */
- 0x00cd, 0xffff, /* gc G */
- 0x00ce, 0x0000, /* rm G */
- 0x00cf, 0xffff, /* yw G */
- 0x00d0, 0x00ff, /* kb B */
- 0x00d1, 0x00ff, /* gc B */
- 0x00d2, 0x00ff, /* rm B */
- 0x00d3, 0x00ff, /* yw B */
- 0x00D6, 0x1d00, /* GAMMA start : address change for C210 */
- 0x00D7, 0x1d00,
- 0x00D8, 0x1d00,
- 0x00D9, 0x1d00,
- 0x00DA, 0x1d00,
- 0x00DB, 0x1d00,
- 0x00DC, 0x1d00,
- 0x00DD, 0x1d00,
- 0x00DE, 0x1d00,
- 0x00DF, 0x1d00,
- 0x00E0, 0x1d00,
- 0x00E1, 0x1d00,
- 0x00E2, 0x1d00,
- 0x00E3, 0x1d00,
- 0x00E4, 0x1d00,
- 0x00E5, 0xa40e,
- 0x00E6, 0xa40e,
- 0x00E7, 0xa40e,
- 0x00E8, 0xa819,
- 0x00E9, 0xa40a,
- 0x00EA, 0x2200,
- 0x00EB, 0x1c25,
- 0x00EC, 0x1842,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /* GAMMA end */
- 0x0028, 0x0000, /* Register Mask */
- /* end */
-};
-
-static const unsigned short tune_standard_dmb[] = {
- /* start U1 standard dmb */
- 0x0001, 0x0041, /* PCC 40 */
- 0x002c, 0x003C, /* DNR bypass 0x003C */
- 0x002d, 0x1508, /* DNR bypass 0x0a08 */
- 0x002e, 0x1005, /* DNR bypass 0x1010 */
- 0x002f, 0x0400, /* DNR bypass 0x0400 */
- 0x003A, 0x000D, /* HDTR DE CS de on = d , de off = 9 */
- 0x003B, 0x03ff, /* DE SHARPNESS */
- 0x003C, 0x0000, /* NOISE LEVEL */
- 0x003F, 0x0032, /* CS GAIN */
- 0x0042, 0x0020, /* DE TH (MAX DIFF) */
- 0x0049, 0x0400, /* pcc skin */
- 0x004a, 0x7a00, /* 7300 */
- 0x004b, 0x008F, /* 008f */
- 0x004d, 0x0100, /* pcc strength */
- 0x00c8, 0x0000, /* kb R SCR */
- 0x00c9, 0x0000, /* gc R */
- 0x00ca, 0xffff, /* rm R */
- 0x00cb, 0xffff, /* yw R */
- 0x00cc, 0x0000, /* kb G */
- 0x00cd, 0xffff, /* gc G */
- 0x00ce, 0x0000, /* rm G */
- 0x00cf, 0xffff, /* yw G */
- 0x00d0, 0x00ff, /* kb B */
- 0x00d1, 0x00ff, /* gc B */
- 0x00d2, 0x00ff, /* rm B */
- 0x00d3, 0x00ff, /* yw B */
- 0x00D6, 0x2000, /* GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /* GAMMA end */
- 0x0028, 0x0000, /* Register Mask */
- /* end */
-};
-
-static const unsigned short tune_movie_dmb[] = {
- /* start U1 movie dmb */
- 0x0001, 0x0041, /* PCC 40 */
- 0x002c, 0x003C, /* DNR bypass 0x003C */
- 0x002d, 0x1508, /* DNR bypass 0x0a08 */
- 0x002e, 0x1005, /* DNR bypass 0x1010 */
- 0x002f, 0x0400, /* DNR bypass 0x0400 */
- 0x003A, 0x000D, /* HDTR DE CS de on = d , de off = 9 */
- 0x003B, 0x0001, /* DE SHARPNESS */
- 0x003C, 0x0000, /* NOISE LEVEL */
- 0x003F, 0x0032, /* CS GAIN 300 */
- 0x0042, 0x003f, /* DE TH (MAX DIFF) */
- 0x0049, 0x0400, /* pcc skin */
- 0x004a, 0x7a00, /* 7300 */
- 0x004b, 0x008F, /* 008f */
- 0x004d, 0x0000, /* pcc strength */
- 0x00c8, 0x0000, /* kb R SCR */
- 0x00c9, 0xb6bc, /* gc R */
- 0x00ca, 0xd4ff, /* rm R */
- 0x00cb, 0xffff, /* yw R */
- 0x00cc, 0x0000, /* kb G */
- 0x00cd, 0xffff, /* gc G */
- 0x00ce, 0x2148, /* rm G */
- 0x00cf, 0xe8f1, /* yw G */
- 0x00d0, 0x00ff, /* kb B */
- 0x00d1, 0x53ee, /* gc B */
- 0x00d2, 0x28f6, /* rm B */
- 0x00d3, 0x56e7, /* yw B */
- 0x00D6, 0x2000, /* GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /* GAMMA end */
- 0x0028, 0x0000, /* Register Mask */
- /* end */
-};
-
-static const unsigned short tune_natural_dmb[] = {
- /* start U1 natural dmb */
- 0x0001, 0x0041, /* PCC 40 */
- 0x002c, 0x003C, /* DNR bypass 0x003C */
- 0x002d, 0x1508, /* DNR bypass 0x0a08 */
- 0x002e, 0x1005, /* DNR bypass 0x1010 */
- 0x002f, 0x0400, /* DNR bypass 0x0400 */
- 0x003A, 0x000D, /* HDTR DE CS de on = d , de off = 9 */
- 0x003B, 0x03ff, /* DE SHARPNESS */
- 0x003C, 0x0000, /* NOISE LEVEL */
- 0x003F, 0x0180, /* CS GAIN */
- 0x0042, 0x0020, /* DE TH (MAX DIFF) */
- 0x0049, 0x0400, /* pcc skin */
- 0x004a, 0x7a00, /* 7300 */
- 0x004b, 0x008F, /* 008f */
- 0x004d, 0x0100, /* pcc strength */
- 0x00c8, 0x0000, /* kb R SCR */
- 0x00c9, 0xb6bc, /* gc R */
- 0x00ca, 0xd4ff, /* rm R */
- 0x00cb, 0xffff, /* yw R */
- 0x00cc, 0x0000, /* kb G */
- 0x00cd, 0xffff, /* gc G */
- 0x00ce, 0x2148, /* rm G */
- 0x00cf, 0xe8f1, /* yw G */
- 0x00d0, 0x00ff, /* kb B */
- 0x00d1, 0x53ee, /* gc B */
- 0x00d2, 0x28f6, /* rm B */
- 0x00d3, 0x56ec, /* yw B */
- 0x00D6, 0x2000, /* GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /* GAMMA end */
- 0x0028, 0x0000, /* Register Mask */
- /* end */
-
-};
-#else
-static const unsigned short tune_dynamic_dmb[] = {
- /* start M0 dynamic dmb */
- 0x0000, 0x0000,
- 0x0008, 0x008e,
- 0x0030, 0x0005,
- 0x0039, 0x0040,
- 0x0080, 0x0fff,
- 0x0081, 0x1908,
- 0x0082, 0x0809,
- 0x0083, 0x0000,
- 0x0092, 0x00e0,
- 0x0093, 0x00e0,
- 0x0094, 0x00e0,
- 0x0095, 0x00e0,
- 0x0096, 0x00e0,
- 0x0097, 0x00e0,
- 0x0098, 0x1000,
- 0x0099, 0x0010,
- 0x00b0, 0x0808,
- 0x00b1, 0x1010,
- 0x00b2, 0x1010,
- 0x00b3, 0x2804,
- 0x0000, 0x0001,
- 0x001f, 0x0080,
- 0x0020, 0x0000,
- 0x0021, 0x0d93,
- 0x0022, 0x1aa5,
- 0x0023, 0x29b7,
- 0x0024, 0x39c8,
- 0x0025, 0x4bd8,
- 0x0026, 0x5de6,
- 0x0027, 0x6ff4,
- 0x0028, 0x81ff,
- 0x00ff, 0x0000,
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_dmb[] = {
- /* start M0 standard dmb */
- 0x0000, 0x0000,
- 0x0008, 0x000e,
- 0x0030, 0x0005,
- 0x0039, 0x0040,
- 0x0080, 0x0fff,
- 0x0081, 0x1908,
- 0x0082, 0x0809,
- 0x0083, 0x0000,
- 0x0092, 0x00c0,
- 0x0093, 0x00c0,
- 0x0094, 0x00c0,
- 0x0095, 0x00c0,
- 0x0096, 0x00c0,
- 0x0097, 0x00c0,
- 0x0098, 0x1000,
- 0x0099, 0x0010,
- 0x00b0, 0x0a0a,
- 0x00b1, 0x1010,
- 0x00b2, 0x1010,
- 0x00b3, 0x2004,
- 0x00ff, 0x0000,
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_dmb[] = {
- /* start M0 movie dmb */
- 0x0000, 0x0000,
- 0x0008, 0x002e,
- 0x0030, 0x0005,
- 0x0039, 0x0040,
- 0x0080, 0x0fff,
- 0x0081, 0x1908,
- 0x0082, 0x0809,
- 0x0083, 0x0000,
- 0x0092, 0x0040,
- 0x0093, 0x0040,
- 0x0094, 0x0040,
- 0x0095, 0x0040,
- 0x0096, 0x0040,
- 0x0097, 0x0040,
- 0x0098, 0x1000,
- 0x0099, 0x0010,
- 0x00b0, 0x1010,
- 0x00b1, 0x1010,
- 0x00b2, 0x1010,
- 0x00b3, 0x1204,
- 0x00e1, 0xd6ac,
- 0x00e2, 0x32ff,
- 0x00e3, 0x2ef0,
- 0x00e4, 0xa5fa,
- 0x00e5, 0xff4d,
- 0x00e6, 0x59ff,
- 0x00e7, 0x00ff,
- 0x00e8, 0x00fb,
- 0x00e9, 0xff61,
- 0x00ea, 0x00ff,
- 0x00eb, 0x00f8,
- 0x00ec, 0x00f1,
- 0x00ff, 0x0000,
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_dmb[] = {
- /* start M0 natural dmb */
- 0x0000, 0x0000,
- 0x0008, 0x002e,
- 0x0030, 0x0005,
- 0x0039, 0x0040,
- 0x0080, 0x0fff,
- 0x0081, 0x1908,
- 0x0082, 0x0809,
- 0x0083, 0x0000,
- 0x0092, 0x00c0,
- 0x0093, 0x00c0,
- 0x0094, 0x00c0,
- 0x0095, 0x00c0,
- 0x0096, 0x00c0,
- 0x0097, 0x00c0,
- 0x0098, 0x1000,
- 0x0099, 0x0010,
- 0x00b0, 0x1010,
- 0x00b1, 0x1010,
- 0x00b2, 0x1010,
- 0x00b3, 0x1804,
- 0x00e1, 0xd6ac,
- 0x00e2, 0x32ff,
- 0x00e3, 0x2ef0,
- 0x00e4, 0xa5fa,
- 0x00e5, 0xff4d,
- 0x00e6, 0x59ff,
- 0x00e7, 0x00ff,
- 0x00e8, 0x00fb,
- 0x00e9, 0xff61,
- 0x00ea, 0x00ff,
- 0x00eb, 0x00fa,
- 0x00ec, 0x00f8,
- 0x00ff, 0x0000,
- END_SEQ, 0x0000,
-};
-#endif
-
-struct mdnie_tunning_info tune_dmb[MODE_MAX] = {
- {"DYNAMIC_DMB", tune_dynamic_dmb },
- {"STANDARD_DMB", tune_standard_dmb},
- {"MOVIE_DMB", tune_movie_dmb },
- {"NATURAL_DMB", tune_natural_dmb },
-};
-#endif /* __MDNIE_DMB_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_table.h b/drivers/video/samsung_duallcd/mdnie_table.h
deleted file mode 100644
index f52b662..0000000
--- a/drivers/video/samsung_duallcd/mdnie_table.h
+++ /dev/null
@@ -1,217 +0,0 @@
-#ifndef __MDNIE_TABLE_H__
-#define __MDNIE_TABLE_H__
-
-#include "mdnie.h"
-
-
-static const unsigned short tune_dynamic_gallery[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_ui[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_video[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_vtcall[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_gallery[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_ui[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_video[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_vtcall[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_gallery[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_ui[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_video[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_vtcall[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_gallery[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_ui[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_video[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_vtcall[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short *tune_camera;
-
-static const unsigned short *tune_camera_outdoor;
-
-static const unsigned short tune_cold[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm[] = {
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor[] = {
- END_SEQ, 0x0000,
-};
-
-struct mdnie_tunning_info etc_table[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm},
- {"COLD", tune_cold},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor},
- {"WARM_OUTDOOR", tune_warm_outdoor},
- {"COLD_OUTDOOR", tune_cold_outdoor},
- },
- }
-};
-
-#if defined(CONFIG_FB_MDNIE_PWM)
-struct mdnie_tunning_info_cabc tunning_table[CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
- {
- {
- {"DYNAMIC_UI", tune_dynamic_ui, 0},
- {"DYNAMIC_VIDEO_NORMAL", tune_dynamic_video, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM", tune_dynamic_video, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video, LUT_VIDEO},
- {"CAMERA", NULL/*tune_camera*/, 0},
- {"DYNAMIC_UI", tune_dynamic_ui, 0},
- {"DYNAMIC_GALLERY", tune_dynamic_gallery, 0},
- {"DYNAMIC_VT", tune_dynamic_vtcall, 0},
- }, {
- {"STANDARD_UI", tune_standard_ui, 0},
- {"STANDARD_VIDEO_NORMAL", tune_standard_video, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM", tune_standard_video, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD", tune_standard_video, LUT_VIDEO},
- {"CAMERA", NULL/*tune_camera*/, 0},
- {"STANDARD_UI", tune_standard_ui, 0},
- {"STANDARD_GALLERY", tune_standard_gallery, 0},
- {"STANDARD_VT", tune_standard_vtcall, 0},
- }, {
- {"MOVIE_UI", tune_movie_ui, 0},
- {"MOVIE_VIDEO_NORMAL", tune_movie_video, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM", tune_movie_video, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD", tune_movie_video, LUT_VIDEO},
- {"CAMERA", NULL/*tune_camera*/, 0},
- {"MOVIE_UI", tune_movie_ui, 0},
- {"MOVIE_GALLERY", tune_movie_gallery, 0},
- {"MOVIE_VT", tune_movie_vtcall, 0},
- },
- },
- {
- {
- {"DYNAMIC_UI_CABC", tune_dynamic_ui, 0},
- {"DYNAMIC_VIDEO_NORMAL_CABC", tune_dynamic_video, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM_CABC", tune_dynamic_video, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video, LUT_VIDEO},
- {"CAMERA", NULL/*tune_camera*/, 0},
- {"DYNAMIC_UI_CABC", tune_dynamic_ui, 0},
- {"DYNAMIC_GALLERY_CABC", tune_dynamic_gallery, 0},
- {"DYNAMIC_VT_CABC", tune_dynamic_vtcall, 0},
- }, {
- {"STANDARD_UI_CABC", tune_standard_ui, 0},
- {"STANDARD_VIDEO_NORMAL_CABC", tune_standard_video, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM_CABC", tune_standard_video, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD_CABC", tune_standard_video, LUT_VIDEO},
- {"CAMERA", NULL/*tune_camera*/, 0},
- {"STANDARD_UI_CABC", tune_standard_ui, 0},
- {"STANDARD_GALLERY_CABC", tune_standard_gallery, 0},
- {"STANDARD_VT_CABC", tune_standard_vtcall, 0},
- }, {
- {"MOVIE_UI_CABC", tune_movie_ui, 0},
- {"MOVIE_VIDEO_NORMAL_CABC", tune_movie_video, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM_CABC", tune_movie_video, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD_CABC", tune_movie_video, LUT_VIDEO},
- {"CAMERA", NULL/*tune_camera*/, 0},
- {"MOVIE_UI_CABC", tune_movie_ui, 0},
- {"MOVIE_GALLERY_CABC", tune_movie_gallery, 0},
- {"MOVIE_VT_CABC", tune_movie_vtcall, 0},
- },
- },
-};
-#else
-struct mdnie_tunning_info tunning_table[CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
- {
- {
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_VIDEO_NORMAL", tune_dynamic_video},
- {"DYNAMIC_VIDEO_WARM", tune_dynamic_video},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video},
- {"CAMERA", NULL/*tune_camera*/},
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_GALLERY", tune_dynamic_gallery},
- {"DYNAMIC_VT", tune_dynamic_vtcall},
- }, {
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_VIDEO_NORMAL", tune_standard_video},
- {"STANDARD_VIDEO_WARM", tune_standard_video},
- {"STANDARD_VIDEO_COLD", tune_standard_video},
- {"CAMERA", NULL/*tune_camera*/},
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_GALLERY", tune_standard_gallery},
- {"STANDARD_VT", tune_standard_vtcall},
- }, {
- {"NATURAL_UI", tune_natural_ui},
- {"NATURAL_VIDEO_NORMAL", tune_natural_video},
- {"NATURAL_VIDEO_WARM", tune_natural_video},
- {"NATURAL_VIDEO_COLD", tune_natural_video},
- {"CAMERA", NULL/*tune_camera*/},
- {"NATURAL_UI", tune_natural_ui},
- {"NATURAL_GALLERY", tune_natural_gallery},
- {"NATURAL_VT", tune_natural_vtcall},
- }, {
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_VIDEO_NORMAL", tune_movie_video},
- {"MOVIE_VIDEO_WARM", tune_movie_video},
- {"MOVIE_VIDEO_COLD", tune_movie_video},
- {"CAMERA", NULL/*tune_camera*/},
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_GALLERY", tune_movie_gallery},
- {"MOVIE_VT", tune_movie_vtcall},
- },
- }
-};
-#endif
-
-#endif /* __MDNIE_TABLE_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_table_4412.h b/drivers/video/samsung_duallcd/mdnie_table_4412.h
deleted file mode 100644
index 5fbed85..0000000
--- a/drivers/video/samsung_duallcd/mdnie_table_4412.h
+++ /dev/null
@@ -1,307 +0,0 @@
-#ifndef __MDNIE_TABLE_H__
-#define __MDNIE_TABLE_H__
-
-#include "mdnie.h"
-
-
-static const unsigned short tune_dynamic_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short *tune_camera;
-
-static const unsigned short *tune_camera_outdoor;
-
-static const unsigned short tune_cold[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-#if defined(CONFIG_FB_MDNIE_PWM)
-struct mdnie_tunning_info etc_table[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm},
- {"COLD", tune_cold},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor},
- {"WARM_OUTDOOR", tune_warm_outdoor},
- {"COLD_OUTDOOR", tune_cold_outdoor},
- },
- },
- {
- {
- {"NORMAL_CABC", NULL},
- {"WARM_CABC", tune_warm},
- {"COLD_CABC", tune_cold},
- },
- {
- {"NORMAL_OUTDOOR_CABC", tune_outdoor},
- {"WARM_OUTDOOR_CABC", tune_warm_outdoor},
- {"COLD_OUTDOOR_CABC", tune_cold_outdoor},
- },
- },
-};
-
-struct mdnie_tunning_info_cabc tunning_table[CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
- {
- {
- {"DYNAMIC_UI", tune_dynamic_ui, 0},
- {"DYNAMIC_VIDEO_NORMAL", tune_dynamic_video, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM", tune_dynamic_video, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video, LUT_VIDEO},
- {"CAMERA", NULL/*tune_camera*/, 0},
- {"DYNAMIC_UI", tune_dynamic_ui, 0},
- {"DYNAMIC_GALLERY", tune_dynamic_gallery, 0},
- {"DYNAMIC_VT", tune_dynamic_vtcall, 0},
- }, {
- {"STANDARD_UI", tune_standard_ui, 0},
- {"STANDARD_VIDEO_NORMAL", tune_standard_video, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM", tune_standard_video, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD", tune_standard_video, LUT_VIDEO},
- {"CAMERA", NULL/*tune_camera*/, 0},
- {"STANDARD_UI", tune_standard_ui, 0},
- {"STANDARD_GALLERY", tune_standard_gallery, 0},
- {"STANDARD_VT", tune_standard_vtcall, 0},
- }, {
- {"MOVIE_UI", tune_movie_ui, 0},
- {"MOVIE_VIDEO_NORMAL", tune_movie_video, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM", tune_movie_video, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD", tune_movie_video, LUT_VIDEO},
- {"CAMERA", NULL/*tune_camera*/, 0},
- {"MOVIE_UI", tune_movie_ui, 0},
- {"MOVIE_GALLERY", tune_movie_gallery, 0},
- {"MOVIE_VT", tune_movie_vtcall, 0},
- },
- },
- {
- {
- {"DYNAMIC_UI_CABC", tune_dynamic_ui, 0},
- {"DYNAMIC_VIDEO_NORMAL_CABC", tune_dynamic_video, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM_CABC", tune_dynamic_video, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video, LUT_VIDEO},
- {"CAMERA", NULL/*tune_camera*/, 0},
- {"DYNAMIC_UI_CABC", tune_dynamic_ui, 0},
- {"DYNAMIC_GALLERY_CABC", tune_dynamic_gallery, 0},
- {"DYNAMIC_VT_CABC", tune_dynamic_vtcall, 0},
- }, {
- {"STANDARD_UI_CABC", tune_standard_ui, 0},
- {"STANDARD_VIDEO_NORMAL_CABC", tune_standard_video, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM_CABC", tune_standard_video, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD_CABC", tune_standard_video, LUT_VIDEO},
- {"CAMERA", NULL/*tune_camera*/, 0},
- {"STANDARD_UI_CABC", tune_standard_ui, 0},
- {"STANDARD_GALLERY_CABC", tune_standard_gallery, 0},
- {"STANDARD_VT_CABC", tune_standard_vtcall, 0},
- }, {
- {"MOVIE_UI_CABC", tune_movie_ui, 0},
- {"MOVIE_VIDEO_NORMAL_CABC", tune_movie_video, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM_CABC", tune_movie_video, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD_CABC", tune_movie_video, LUT_VIDEO},
- {"CAMERA", NULL/*tune_camera*/, 0},
- {"MOVIE_UI_CABC", tune_movie_ui, 0},
- {"MOVIE_GALLERY_CABC", tune_movie_gallery, 0},
- {"MOVIE_VT_CABC", tune_movie_vtcall, 0},
- },
- },
-};
-#else
-struct mdnie_tunning_info etc_table[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm},
- {"COLD", tune_cold},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor},
- {"WARM_OUTDOOR", tune_warm_outdoor},
- {"COLD_OUTDOOR", tune_cold_outdoor},
- },
- }
-};
-
-struct mdnie_tunning_info tunning_table[CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
- {
- {
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_VIDEO_NORMAL", tune_dynamic_video},
- {"DYNAMIC_VIDEO_WARM", tune_dynamic_video},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video},
- {"CAMERA", NULL/*tune_camera*/},
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_GALLERY", tune_dynamic_gallery},
- {"DYNAMIC_VT", tune_dynamic_vtcall},
- }, {
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_VIDEO_NORMAL", tune_standard_video},
- {"STANDARD_VIDEO_WARM", tune_standard_video},
- {"STANDARD_VIDEO_COLD", tune_standard_video},
- {"CAMERA", NULL/*tune_camera*/},
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_GALLERY", tune_standard_gallery},
- {"STANDARD_VT", tune_standard_vtcall},
- }, {
- {"NATURAL_UI", tune_natural_ui},
- {"NATURAL_VIDEO_NORMAL", tune_natural_video},
- {"NATURAL_VIDEO_WARM", tune_natural_video},
- {"NATURAL_VIDEO_COLD", tune_natural_video},
- {"CAMERA", NULL/*tune_camera*/},
- {"NATURAL_UI", tune_natural_ui},
- {"NATURAL_GALLERY", tune_natural_gallery},
- {"NATURAL_VT", tune_natural_vtcall},
- }, {
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_VIDEO_NORMAL", tune_movie_video},
- {"MOVIE_VIDEO_WARM", tune_movie_video},
- {"MOVIE_VIDEO_COLD", tune_movie_video},
- {"CAMERA", NULL/*tune_camera*/},
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_GALLERY", tune_movie_gallery},
- {"MOVIE_VT", tune_movie_vtcall},
- },
- }
-};
-#endif
-
-#endif /* __MDNIE_TABLE_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_table_c1m0.h b/drivers/video/samsung_duallcd/mdnie_table_c1m0.h
deleted file mode 100644
index f9bc360..0000000
--- a/drivers/video/samsung_duallcd/mdnie_table_c1m0.h
+++ /dev/null
@@ -1,775 +0,0 @@
-#ifndef __MDNIE_TABLE_H__
-#define __MDNIE_TABLE_H__
-
-#include "mdnie.h"
-
-
-static const unsigned short tune_dynamic_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0080, /*DE pe*/
- 0x0093, 0x0080, /*DE pf*/
- 0x0094, 0x0080, /*DE pb*/
- 0x0095, 0x0080, /*DE ne*/
- 0x0096, 0x0080, /*DE nf*/
- 0x0097, 0x0080, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1404, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0293, /*CC lut r 16 144*/
- 0x0022, 0x1aa5, /*CC lut r 32 160*/
- 0x0023, 0x29b7, /*CC lut r 48 176*/
- 0x0024, 0x39c8, /*CC lut r 64 192*/
- 0x0025, 0x4bd8, /*CC lut r 80 208*/
- 0x0026, 0x5de6, /*CC lut r 96 224*/
- 0x0027, 0x6ff4, /*CC lut r 112 240*/
- 0x0028, 0x81ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0040, /*DE pe*/
- 0x0093, 0x0040, /*DE pf*/
- 0x0094, 0x0040, /*DE pb*/
- 0x0095, 0x0040, /*DE ne*/
- 0x0096, 0x0040, /*DE nf*/
- 0x0097, 0x0040, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0293, /*CC lut r 16 144*/
- 0x0022, 0x1aa5, /*CC lut r 32 160*/
- 0x0023, 0x29b7, /*CC lut r 48 176*/
- 0x0024, 0x39c8, /*CC lut r 64 192*/
- 0x0025, 0x4bd8, /*CC lut r 80 208*/
- 0x0026, 0x5de6, /*CC lut r 96 224*/
- 0x0027, 0x6ff4, /*CC lut r 112 240*/
- 0x0028, 0x81ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0080, /*DE pe*/
- 0x0093, 0x0080, /*DE pf*/
- 0x0094, 0x0080, /*DE pb*/
- 0x0095, 0x0080, /*DE ne*/
- 0x0096, 0x0080, /*DE nf*/
- 0x0097, 0x0080, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1404, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0293, /*CC lut r 16 144*/
- 0x0022, 0x1aa5, /*CC lut r 32 160*/
- 0x0023, 0x29b7, /*CC lut r 48 176*/
- 0x0024, 0x39c8, /*CC lut r 64 192*/
- 0x0025, 0x4bd8, /*CC lut r 80 208*/
- 0x0026, 0x5de6, /*CC lut r 96 224*/
- 0x0027, 0x6ff4, /*CC lut r 112 240*/
- 0x0028, 0x81ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008e, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0005, /*FA cs1 | de8 dnr4 hdr2 fa1*/
- 0x0039, 0x0080, /*FA dnrWeight*/
- 0x0080, 0x0fff, /*DNR dirTh*/
- 0x0081, 0x19ff, /*DNR dirnumTh decon7Th*/
- 0x0082, 0xff16, /*DNR decon5Th maskTh*/
- 0x0083, 0x0000, /*DNR blTh*/
- 0x0092, 0x00e0, /*DE pe*/
- 0x0093, 0x00e0, /*DE pf*/
- 0x0094, 0x00e0, /*DE pb*/
- 0x0095, 0x00e0, /*DE ne*/
- 0x0096, 0x00e0, /*DE nf*/
- 0x0097, 0x00e0, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0010, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1a04, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0293, /*CC lut r 16 144*/
- 0x0022, 0x1aa5, /*CC lut r 32 160*/
- 0x0023, 0x29b7, /*CC lut r 48 176*/
- 0x0024, 0x39c8, /*CC lut r 64 192*/
- 0x0025, 0x4bd8, /*CC lut r 80 208*/
- 0x0026, 0x5de6, /*CC lut r 96 224*/
- 0x0027, 0x6ff4, /*CC lut r 112 240*/
- 0x0028, 0x81ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00a0, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00f8, /*SCR KgWg*/
- 0x00ec, 0x00f1, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0290, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00a0, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00f8, /*SCR KgWg*/
- 0x00ec, 0x00f1, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0290, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00a0, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0000, /*DE pe*/
- 0x0093, 0x0000, /*DE pf*/
- 0x0094, 0x0000, /*DE pb*/
- 0x0095, 0x0000, /*DE ne*/
- 0x0096, 0x0000, /*DE nf*/
- 0x0097, 0x0000, /*DE nb*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1004, /*CS weight grayTH*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00f8, /*SCR KgWg*/
- 0x00ec, 0x00f1, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0290, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ae, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0005, /*FA cs1 | de8 dnr4 hdr2 fa1*/
- 0x0039, 0x0080, /*FA dnrWeight*/
- 0x0080, 0x0fff, /*DNR dirTh*/
- 0x0081, 0x19ff, /*DNR dirnumTh decon7Th*/
- 0x0082, 0xff16, /*DNR decon5Th maskTh*/
- 0x0083, 0x0000, /*DNR blTh*/
- 0x0092, 0x0040, /*DE pe*/
- 0x0093, 0x0040, /*DE pf*/
- 0x0094, 0x0040, /*DE pb*/
- 0x0095, 0x0040, /*DE ne*/
- 0x0096, 0x0040, /*DE nf*/
- 0x0097, 0x0040, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0010, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1204, /*CS weight grayTH*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00f8, /*SCR KgWg*/
- 0x00ec, 0x00f1, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0290, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1204, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0290, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0020, /*DE pe*/
- 0x0093, 0x0020, /*DE pf*/
- 0x0094, 0x0020, /*DE pb*/
- 0x0095, 0x0020, /*DE ne*/
- 0x0096, 0x0020, /*DE nf*/
- 0x0097, 0x0020, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1604, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0290, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1204, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0290, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x008e, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0005, /*FA cs1 | de8 dnr4 hdr2 fa1*/
- 0x0039, 0x0080, /*FA dnrWeight*/
- 0x0080, 0x0fff, /*DNR dirTh*/
- 0x0081, 0x19ff, /*DNR dirnumTh decon7Th*/
- 0x0082, 0xff16, /*DNR decon5Th maskTh*/
- 0x0083, 0x0000, /*DNR blTh*/
- 0x0092, 0x00c0, /*DE pe*/
- 0x0093, 0x00c0, /*DE pf*/
- 0x0094, 0x00c0, /*DE pb*/
- 0x0095, 0x00c0, /*DE ne*/
- 0x0096, 0x00c0, /*DE nf*/
- 0x0097, 0x00c0, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0010, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0290, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fa, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0290, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0020, /*DE pe*/
- 0x0093, 0x0020, /*DE pf*/
- 0x0094, 0x0020, /*DE pb*/
- 0x0095, 0x0020, /*DE ne*/
- 0x0096, 0x0020, /*DE nf*/
- 0x0097, 0x0020, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fa, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0290, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fa, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0290, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ae, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0005, /*FA cs1 | de8 dnr4 hdr2 fa1*/
- 0x0039, 0x0080, /*FA dnrWeight*/
- 0x0080, 0x0fff, /*DNR dirTh*/
- 0x0081, 0x19ff, /*DNR dirnumTh decon7Th*/
- 0x0082, 0xff16, /*DNR decon5Th maskTh*/
- 0x0083, 0x0000, /*DNR blTh*/
- 0x0092, 0x00c0, /*DE pe*/
- 0x0093, 0x00c0, /*DE pf*/
- 0x0094, 0x00c0, /*DE pb*/
- 0x0095, 0x00c0, /*DE ne*/
- 0x0096, 0x00c0, /*DE nf*/
- 0x0097, 0x00c0, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0010, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xd6ac, /*SCR RrCr*/
- 0x00e2, 0x32ff, /*SCR RgCg*/
- 0x00e3, 0x2ef0, /*SCR RbCb*/
- 0x00e4, 0xa5fa, /*SCR GrMr*/
- 0x00e5, 0xff4d, /*SCR GgMg*/
- 0x00e6, 0x59ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00fb, /*SCR BgYg*/
- 0x00e9, 0xff61, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fa, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0290, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x000c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1204, /*CS weight grayTH*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x040c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg RY*/
- 0x00b1, 0x1010, /*CS hg GC*/
- 0x00b2, 0x1010, /*CS hg BM*/
- 0x00b3, 0x1204, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0064, /*MCM 10000K*/
- 0x0009, 0xa08b, /*MCM 5cb 1cr W*/
- 0x000b, 0x7a7a, /*MCM 4cr 5cr W*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x04ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0064, /*MCM 10000K*/
- 0x0009, 0xa08b, /*MCM 5cb 1cr W*/
- 0x000b, 0x7a7a, /*MCM 4cr 5cr W*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x04ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0028, /*MCM 4000K*/
- 0x0007, 0x7878, /*MCM 1cb 2cb W*/
- 0x0009, 0xa08b, /*MCM 5cb 1cr W*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x04ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0028, /*MCM 4000K*/
- 0x0007, 0x7878, /*MCM 1cb 2cb W*/
- 0x0009, 0xa08b, /*MCM 5cb 1cr W*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-struct mdnie_tunning_info etc_table[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm},
- {"COLD", tune_cold},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor},
- {"WARM_OUTDOOR", tune_warm_outdoor},
- {"COLD_OUTDOOR", tune_cold_outdoor},
- },
- }
-};
-
-struct mdnie_tunning_info tunning_table[CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
- {
- {
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_VIDEO_NORMAL", tune_dynamic_video},
- {"DYNAMIC_VIDEO_WARM", tune_dynamic_video},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video},
- {"CAMERA", tune_camera},
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_GALLERY", tune_dynamic_gallery},
- {"DYNAMIC_VT", tune_dynamic_vtcall},
- }, {
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_VIDEO_NORMAL", tune_standard_video},
- {"STANDARD_VIDEO_WARM", tune_standard_video},
- {"STANDARD_VIDEO_COLD", tune_standard_video},
- {"CAMERA", tune_camera},
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_GALLERY", tune_standard_gallery},
- {"STANDARD_VT", tune_standard_vtcall},
- }, {
- {"NATURAL_UI", tune_natural_ui},
- {"NATURAL_VIDEO_NORMAL", tune_natural_video},
- {"NATURAL_VIDEO_WARM", tune_natural_video},
- {"NATURAL_VIDEO_COLD", tune_natural_video},
- {"CAMERA", tune_camera},
- {"NATURAL_UI", tune_natural_ui},
- {"NATURAL_GALLERY", tune_natural_gallery},
- {"NATURAL_VT", tune_natural_vtcall},
- }, {
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_VIDEO_NORMAL", tune_movie_video},
- {"MOVIE_VIDEO_WARM", tune_movie_video},
- {"MOVIE_VIDEO_COLD", tune_movie_video},
- {"CAMERA", tune_camera},
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_GALLERY", tune_movie_gallery},
- {"MOVIE_VT", tune_movie_vtcall},
- },
- }
-};
-
-#endif/* __MDNIE_TABLE_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_table_gc1.h b/drivers/video/samsung_duallcd/mdnie_table_gc1.h
deleted file mode 100644
index f79e7d3..0000000
--- a/drivers/video/samsung_duallcd/mdnie_table_gc1.h
+++ /dev/null
@@ -1,611 +0,0 @@
-#ifndef __MDNIE_TABLE_H__
-#define __MDNIE_TABLE_H__
-
-#include "mdnie.h"
-
-
-static const unsigned short tune_dynamic_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0080, /*DE pe*/
- 0x0093, 0x0080, /*DE pf*/
- 0x0094, 0x0080, /*DE pb*/
- 0x0095, 0x0080, /*DE ne*/
- 0x0096, 0x0080, /*DE nf*/
- 0x0097, 0x0080, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x2204, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0a94, /*CC lut r 16 144*/
- 0x0022, 0x18a6, /*CC lut r 32 160*/
- 0x0023, 0x28b8, /*CC lut r 48 176*/
- 0x0024, 0x3ac9, /*CC lut r 64 192*/
- 0x0025, 0x4cd9, /*CC lut r 80 208*/
- 0x0026, 0x5ee7, /*CC lut r 96 224*/
- 0x0027, 0x70f4, /*CC lut r 112 240*/
- 0x0028, 0x82ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0040, /*DE pe*/
- 0x0093, 0x0040, /*DE pf*/
- 0x0094, 0x0040, /*DE pb*/
- 0x0095, 0x0040, /*DE ne*/
- 0x0096, 0x0040, /*DE nf*/
- 0x0097, 0x0040, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x2204, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0a94, /*CC lut r 16 144*/
- 0x0022, 0x18a6, /*CC lut r 32 160*/
- 0x0023, 0x28b8, /*CC lut r 48 176*/
- 0x0024, 0x3ac9, /*CC lut r 64 192*/
- 0x0025, 0x4cd9, /*CC lut r 80 208*/
- 0x0026, 0x5ee7, /*CC lut r 96 224*/
- 0x0027, 0x70f4, /*CC lut r 112 240*/
- 0x0028, 0x82ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0080, /*DE pe*/
- 0x0093, 0x0080, /*DE pf*/
- 0x0094, 0x0080, /*DE pb*/
- 0x0095, 0x0080, /*DE ne*/
- 0x0096, 0x0080, /*DE nf*/
- 0x0097, 0x0080, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x2204, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0a94, /*CC lut r 16 144*/
- 0x0022, 0x18a6, /*CC lut r 32 160*/
- 0x0023, 0x28b8, /*CC lut r 48 176*/
- 0x0024, 0x3ac9, /*CC lut r 64 192*/
- 0x0025, 0x4cd9, /*CC lut r 80 208*/
- 0x0026, 0x5ee7, /*CC lut r 96 224*/
- 0x0027, 0x70f4, /*CC lut r 112 240*/
- 0x0028, 0x82ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-
-};
-
-static const unsigned short tune_dynamic_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ae, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0005, /*FA cs1 | de8 dnr4 hdr2 fa1*/
- 0x0039, 0x0080, /*FA dnrWeight*/
- 0x0080, 0x0fff, /*DNR dirTh*/
- 0x0081, 0x19ff, /*DNR dirnumTh decon7Th*/
- 0x0082, 0xff16, /*DNR decon5Th maskTh*/
- 0x0083, 0x0000, /*DNR blTh*/
- 0x0092, 0x00e0, /*DE pe*/
- 0x0093, 0x00e0, /*DE pf*/
- 0x0094, 0x00e0, /*DE pb*/
- 0x0095, 0x00e0, /*DE ne*/
- 0x0096, 0x00e0, /*DE nf*/
- 0x0097, 0x00e0, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0010, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x2204, /*CS weight g*rayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0a94, /*CC lut r 16 144*/
- 0x0022, 0x18a6, /*CC lut r 32 160*/
- 0x0023, 0x28b8, /*CC lut r 48 176*/
- 0x0024, 0x3ac9, /*CC lut r 64 192*/
- 0x0025, 0x4cd9, /*CC lut r 80 208*/
- 0x0026, 0x5ee7, /*CC lut r 96 224*/
- 0x0027, 0x70f4, /*CC lut r 112 240*/
- 0x0028, 0x82ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00f0, /*SCR KgWg*/
- 0x00ec, 0x00e6, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00f0, /*SCR KgWg*/
- 0x00ec, 0x00e6, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
- };
-
-static const unsigned short tune_movie_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0020, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0000, /*DE pe*/
- 0x0093, 0x0000, /*DE pf*/
- 0x0094, 0x0000, /*DE pb*/
- 0x0095, 0x0000, /*DE ne*/
- 0x0096, 0x0000, /*DE nf*/
- 0x0097, 0x0000, /*DE nb*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1004, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00f0, /*SCR KgWg*/
- 0x00ec, 0x00e6, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0000, /*CC chsel strength*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x002e, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0005, /*FA cs1 | de8 dnr4 hdr2 fa1*/
- 0x0039, 0x0080, /*FA dnrWeight*/
- 0x0080, 0x0fff, /*DNR dirTh*/
- 0x0081, 0x19ff, /*DNR dirnumTh decon7Th*/
- 0x0082, 0xff16, /*DNR decon5Th maskTh*/
- 0x0083, 0x0000, /*DNR blTh*/
- 0x0092, 0x0040, /*DE pe*/
- 0x0093, 0x0040, /*DE pf*/
- 0x0094, 0x0040, /*DE pb*/
- 0x0095, 0x0040, /*DE ne*/
- 0x0096, 0x0040, /*DE nf*/
- 0x0097, 0x0040, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0010, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1204, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00f0, /*SCR KgWg*/
- 0x00ec, 0x00e6, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_gallery[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x002c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x2004, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_ui[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x002c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0020, /*DE pe*/
- 0x0093, 0x0020, /*DE pf*/
- 0x0094, 0x0020, /*DE pb*/
- 0x0095, 0x0020, /*DE ne*/
- 0x0096, 0x0020, /*DE nf*/
- 0x0097, 0x0020, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x2004, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_video[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x002c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x2004, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0000, /*CC chsel strength*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_vtcall[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x002e, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0005, /*FA cs1 | de8 dnr4 hdr2 fa1*/
- 0x0039, 0x0080, /*FA dnrWeight*/
- 0x0080, 0x0fff, /*DNR dirTh*/
- 0x0081, 0x19ff, /*DNR dirnumTh decon7Th*/
- 0x0082, 0xff16, /*DNR decon5Th maskTh*/
- 0x0083, 0x0000, /*DNR blTh*/
- 0x0092, 0x00c0, /*DE pe*/
- 0x0093, 0x00c0, /*DE pf*/
- 0x0094, 0x00c0, /*DE pb*/
- 0x0095, 0x00c0, /*DE ne*/
- 0x0096, 0x00c0, /*DE nf*/
- 0x0097, 0x00c0, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0010, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x2004, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*CR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x002c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x2004, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x042c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0060, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0060, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg RY*/
- 0x00b1, 0x1010, /*CS hg GC*/
- 0x00b2, 0x1010, /*CS hg BM*/
- 0x00b3, 0x2004, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00cc, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00ff, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0064, /*MCM 10000K*/
- 0x0009, 0xa08e, /*MCM 5cb 1cr W*/
- 0x000b, 0x7979, /*MCM 4cr 5cr W*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x04ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0064, /*MCM 10000K*/
- 0x0009, 0xa08e, /*MCM 5cb 1cr W*/
- 0x000b, 0x7979, /*MCM 4cr 5cr W*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x04ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0028, /*MCM 4000K*/
- 0x0007, 0x7575, /*MCM 1cb 2cb W*/
- 0x0009, 0xa08e, /*MCM 5cb 1cr W*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x04ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0028, /*MCM 4000K*/
- 0x0007, 0x7575, /*MCM 1cb 2cb W*/
- 0x0009, 0xa08e, /*MCM 5cb 1cr W*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-struct mdnie_tunning_info etc_table[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm},
- {"COLD", tune_cold},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor},
- {"WARM_OUTDOOR", tune_warm_outdoor},
- {"COLD_OUTDOOR", tune_cold_outdoor},
- },
- }
-};
-
-struct mdnie_tunning_info tunning_table[CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
- {
- {
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_VIDEO_NORMAL", tune_dynamic_video},
- {"DYNAMIC_VIDEO_WARM", tune_dynamic_video},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video},
- {"CAMERA", tune_camera},
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_GALLERY", tune_dynamic_gallery},
- {"DYNAMIC_VT", tune_dynamic_vtcall},
- }, {
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_VIDEO_NORMAL", tune_standard_video},
- {"STANDARD_VIDEO_WARM", tune_standard_video},
- {"STANDARD_VIDEO_COLD", tune_standard_video},
- {"CAMERA", tune_camera},
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_GALLERY", tune_standard_gallery},
- {"STANDARD_VT", tune_standard_vtcall},
- }, {
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_VIDEO_NORMAL", tune_movie_video},
- {"MOVIE_VIDEO_WARM", tune_movie_video},
- {"MOVIE_VIDEO_COLD", tune_movie_video},
- {"CAMERA", tune_camera},
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_GALLERY", tune_movie_gallery},
- {"MOVIE_VT", tune_movie_vtcall},
- }, {
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_VIDEO_NORMAL", tune_movie_video},
- {"MOVIE_VIDEO_WARM", tune_movie_video},
- {"MOVIE_VIDEO_COLD", tune_movie_video},
- {"CAMERA", tune_camera},
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_GALLERY", tune_movie_gallery},
- {"MOVIE_VT", tune_movie_vtcall},
- },
- }
-};
-
-#endif /* __MDNIE_TABLE_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_table_p2_boe.h b/drivers/video/samsung_duallcd/mdnie_table_p2_boe.h
deleted file mode 100644
index d95a802..0000000
--- a/drivers/video/samsung_duallcd/mdnie_table_p2_boe.h
+++ /dev/null
@@ -1,1694 +0,0 @@
-#ifndef __MDNIE_TABLE_P2_BOE_H__
-#define __MDNIE_TABLE_P2_BOE_H__
-
-#include "mdnie.h"
-
-
-static const unsigned char power_lut[2][9] = {
- {0x42, 0x47, 0x3E, 0x52, 0x42, 0x3F, 0x3A, 0x37, 0x3F},
- {0x38, 0x3d, 0x34, 0x48, 0x38, 0x35, 0x30, 0x2d, 0x35},
-};
-
-static const unsigned short tune_dyn_gallery_cabcOff_bo[] = {
- /*start P2 dynamic, gallery, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0xa40c,
- 0x00e1, 0xa40c,
- 0x00e2, 0xa40c,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40e,
- 0x00e6, 0xa40e,
- 0x00e7, 0xa40e,
- 0x00e8, 0xa40e,
- 0x00e9, 0xa30a,
- 0x00ea, 0xa30a,
- 0x00eb, 0x1c22,
- 0x00ec, 0x1a31,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_ui_cabcOff_bo[] = {
- /*start P2 dynamic, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0xa40c,
- 0x00e1, 0xa40c,
- 0x00e2, 0xa40c,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40e,
- 0x00e6, 0xa40e,
- 0x00e7, 0xa40e,
- 0x00e8, 0xa40e,
- 0x00e9, 0xa30a,
- 0x00ea, 0xa30a,
- 0x00eb, 0x1c22,
- 0x00ec, 0x1a31,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vid_cabcOff_bo[] = {
- /*start P2 dynamic, video, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0xa40c,
- 0x00e1, 0xa40c,
- 0x00e2, 0xa40c,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40e,
- 0x00e6, 0xa40e,
- 0x00e7, 0xa40e,
- 0x00e8, 0xa40e,
- 0x00e9, 0xa30a,
- 0x00ea, 0xa30a,
- 0x00eb, 0x1c22,
- 0x00ec, 0x1a31,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vtcall_cabcOff_bo[] = {
- /*start P2 dynamic, vtcall, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0xa40c,
- 0x00e1, 0xa40c,
- 0x00e2, 0xa40c,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40e,
- 0x00e6, 0xa40e,
- 0x00e7, 0xa40e,
- 0x00e8, 0xa40e,
- 0x00e9, 0xa30a,
- 0x00ea, 0xa30a,
- 0x00eb, 0x1c22,
- 0x00ec, 0x1a31,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_gallery_cabcOff_bo[] = {
- /*start P2 movie, gallery, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfcf3, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ea, /*yw B*/
- 0x00d6, 0x0b00, /*GAMMA p1 boe*/
- 0x00d7, 0x0b00,
- 0x00d8, 0x0b00,
- 0x00d9, 0x0b00,
- 0x00da, 0x0b00,
- 0x00db, 0x0b00,
- 0x00dc, 0x0b00,
- 0x00dd, 0xa315,
- 0x00de, 0xa315,
- 0x00df, 0xa315,
- 0x00e0, 0xa315,
- 0x00e1, 0xa315,
- 0x00e2, 0xa315,
- 0x00e3, 0xa315,
- 0x00e4, 0xa315,
- 0x00e5, 0xa315,
- 0x00e6, 0xa315,
- 0x00e7, 0xa315,
- 0x00e8, 0xa315,
- 0x00e9, 0xa315,
- 0x00ea, 0xa315,
- 0x00eb, 0xa315,
- 0x00ec, 0xa315,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_ui_cabcOff_bo[] = {
- /*start P2 movie, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfcf3, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ea, /*yw B*/
- 0x00d6, 0x0b00, /*GAMMA p1 boe*/
- 0x00d7, 0x0b00,
- 0x00d8, 0x0b00,
- 0x00d9, 0x0b00,
- 0x00da, 0x0b00,
- 0x00db, 0x0b00,
- 0x00dc, 0x0b00,
- 0x00dd, 0xa315,
- 0x00de, 0xa315,
- 0x00df, 0xa315,
- 0x00e0, 0xa315,
- 0x00e1, 0xa315,
- 0x00e2, 0xa315,
- 0x00e3, 0xa315,
- 0x00e4, 0xa315,
- 0x00e5, 0xa315,
- 0x00e6, 0xa315,
- 0x00e7, 0xa315,
- 0x00e8, 0xa315,
- 0x00e9, 0xa315,
- 0x00ea, 0xa315,
- 0x00eb, 0xa315,
- 0x00ec, 0xa315,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vid_cabcOff_bo[] = {
- /*start P2 movie, video, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfcf3, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ea, /*yw B*/
- 0x00d6, 0x0b00, /*GAMMA p1 boe*/
- 0x00d7, 0x0b00,
- 0x00d8, 0x0b00,
- 0x00d9, 0x0b00,
- 0x00da, 0x0b00,
- 0x00db, 0x0b00,
- 0x00dc, 0x0b00,
- 0x00dd, 0xa315,
- 0x00de, 0xa315,
- 0x00df, 0xa315,
- 0x00e0, 0xa315,
- 0x00e1, 0xa315,
- 0x00e2, 0xa315,
- 0x00e3, 0xa315,
- 0x00e4, 0xa315,
- 0x00e5, 0xa315,
- 0x00e6, 0xa315,
- 0x00e7, 0xa315,
- 0x00e8, 0xa315,
- 0x00e9, 0xa315,
- 0x00ea, 0xa315,
- 0x00eb, 0xa315,
- 0x00ec, 0xa315,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vtcall_cabcOff_bo[] = {
- /*start P2 movie, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfcf3, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ea, /*yw B*/
- 0x00d6, 0x0b00, /*GAMMA p1 boe*/
- 0x00d7, 0x0b00,
- 0x00d8, 0x0b00,
- 0x00d9, 0x0b00,
- 0x00da, 0x0b00,
- 0x00db, 0x0b00,
- 0x00dc, 0x0b00,
- 0x00dd, 0xa315,
- 0x00de, 0xa315,
- 0x00df, 0xa315,
- 0x00e0, 0xa315,
- 0x00e1, 0xa315,
- 0x00e2, 0xa315,
- 0x00e3, 0xa315,
- 0x00e4, 0xa315,
- 0x00e5, 0xa315,
- 0x00e6, 0xa315,
- 0x00e7, 0xa315,
- 0x00e8, 0xa315,
- 0x00e9, 0xa315,
- 0x00ea, 0xa315,
- 0x00eb, 0xa315,
- 0x00ec, 0xa315,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_gallery_cabcOff_bo[] = {
- /*start P2 standard, gallery, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0020, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0x1a00,
- 0x00e1, 0x1a00,
- 0x00e2, 0x1a00,
- 0x00e3, 0x1a00,
- 0x00e4, 0x1a00,
- 0x00e5, 0x1a00,
- 0x00e6, 0xa414,
- 0x00e7, 0xa414,
- 0x00e8, 0xa414,
- 0x00e9, 0xa414,
- 0x00ea, 0xa414,
- 0x00eb, 0x2005,
- 0x00ec, 0x1d1b,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_ui_cabcOff_bo[] = {
- /*start P2 standard, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640,count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0x1a00,
- 0x00e1, 0x1a00,
- 0x00e2, 0x1a00,
- 0x00e3, 0x1a00,
- 0x00e4, 0x1a00,
- 0x00e5, 0x1a00,
- 0x00e6, 0xa414,
- 0x00e7, 0xa414,
- 0x00e8, 0xa414,
- 0x00e9, 0xa414,
- 0x00ea, 0xa414,
- 0x00eb, 0x2005,
- 0x00ec, 0x1d1b,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vid_cabcOff_bo[] = {
- /*start P2 standard, video, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0020, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640,count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0x1a00,
- 0x00e1, 0x1a00,
- 0x00e2, 0x1a00,
- 0x00e3, 0x1a00,
- 0x00e4, 0x1a00,
- 0x00e5, 0x1a00,
- 0x00e6, 0xa414,
- 0x00e7, 0xa414,
- 0x00e8, 0xa414,
- 0x00e9, 0xa414,
- 0x00ea, 0xa414,
- 0x00eb, 0x2005,
- 0x00ec, 0x1d1b,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vtcall_cabcOff_bo[] = {
- /*start P2 standard, vtcall, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0x1a00,
- 0x00e1, 0x1a00,
- 0x00e2, 0x1a00,
- 0x00e3, 0x1a00,
- 0x00e4, 0x1a00,
- 0x00e5, 0x1a00,
- 0x00e6, 0xa414,
- 0x00e7, 0xa414,
- 0x00e8, 0xa414,
- 0x00e9, 0xa414,
- 0x00ea, 0xa414,
- 0x00eb, 0x2005,
- 0x00ec, 0x1d1b,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_gallery_cabcOn_bo[] = {
- /*start P2 dynamic, gallery, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640,count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0xa407,
- 0x00dc, 0xa407,
- 0x00dd, 0xa407,
- 0x00de, 0xa407,
- 0x00df, 0xa407,
- 0x00e0, 0xa407,
- 0x00e1, 0xa407,
- 0x00e2, 0xa407,
- 0x00e3, 0xa407,
- 0x00e4, 0xa407,
- 0x00e5, 0xa407,
- 0x00e6, 0xa407,
- 0x00e7, 0xa407,
- 0x00e8, 0xa407,
- 0x00e9, 0xa407,
- 0x00ea, 0xa407,
- 0x00eb, 0x1844,
- 0x00ec, 0x1461,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_ui_cabcOn_bo[] = {
- /*start P2 dynamic, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0xa407,
- 0x00dc, 0xa407,
- 0x00dd, 0xa407,
- 0x00de, 0xa407,
- 0x00df, 0xa407,
- 0x00e0, 0xa407,
- 0x00e1, 0xa407,
- 0x00e2, 0xa407,
- 0x00e3, 0xa407,
- 0x00e4, 0xa407,
- 0x00e5, 0xa407,
- 0x00e6, 0xa407,
- 0x00e7, 0xa407,
- 0x00e8, 0xa407,
- 0x00e9, 0xa407,
- 0x00ea, 0xa407,
- 0x00eb, 0x1844,
- 0x00ec, 0x1461,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vid_cabcOn_bo[] = {
- /*start P2 dynamic, video, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x2600, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x2600,
- 0x00d8, 0x2600,
- 0x00d9, 0x2600,
- 0x00da, 0x2501,
- 0x00db, 0x2501,
- 0x00dc, 0x2501,
- 0x00dd, 0x2501,
- 0x00de, 0x2501,
- 0x00df, 0x2501,
- 0x00e0, 0x2501,
- 0x00e1, 0x2501,
- 0x00e2, 0x2501,
- 0x00e3, 0x2501,
- 0x00e4, 0x2501,
- 0x00e5, 0x2501,
- 0x00e6, 0x2501,
- 0x00e7, 0x2501,
- 0x00e8, 0x2501,
- 0x00e9, 0x2501,
- 0x00ea, 0x1f20,
- 0x00eb, 0x136b,
- 0x00ec, 0x1081,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vtcall_cabcOn_bo[] = {
- /*start P2 dynamic, vtcall, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640,CABC PWM*/
- /*0x00b4, 0x4640,count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0xa407,
- 0x00dc, 0xa407,
- 0x00dd, 0xa407,
- 0x00de, 0xa407,
- 0x00df, 0xa407,
- 0x00e0, 0xa407,
- 0x00e1, 0xa407,
- 0x00e2, 0xa407,
- 0x00e3, 0xa407,
- 0x00e4, 0xa407,
- 0x00e5, 0xa407,
- 0x00e6, 0xa407,
- 0x00e7, 0xa407,
- 0x00e8, 0xa407,
- 0x00e9, 0xa407,
- 0x00ea, 0xa407,
- 0x00eb, 0x1844,
- 0x00ec, 0x1461,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_gallery_cabcOn_bo[] = {
- /*start P2 movie, gallery, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640,CABC PWM*/
- /*0x00b4, 0x4640,count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfcf3, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ea, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p1 boe*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_ui_cabcOn_bo[] = {
- /*start P2 movie, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfcf3, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ea, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p1 boe*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vid_cabcOn_bo[] = {
- /*start P2 movie, video, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfcf3, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ea, /*yw B*/
- 0x00d6, 0x6800, /*GAMMA p1 boe*/
- 0x00d7, 0x2007,
- 0x00d8, 0x2007,
- 0x00d9, 0x2007,
- 0x00da, 0x2007,
- 0x00db, 0x2007,
- 0x00dc, 0x2007,
- 0x00dd, 0x2007,
- 0x00de, 0x2007,
- 0x00df, 0x2007,
- 0x00e0, 0x2007,
- 0x00e1, 0x2007,
- 0x00e2, 0x2007,
- 0x00e3, 0x2007,
- 0x00e4, 0x2007,
- 0x00e5, 0x2007,
- 0x00e6, 0x2007,
- 0x00e7, 0x2007,
- 0x00e8, 0x2007,
- 0x00e9, 0x2007,
- 0x00ea, 0x2007,
- 0x00eb, 0x2007,
- 0x00ec, 0x1a33,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vtcall_cabcOn_bo[] = {
- /*start P2 movie, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfcf3, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ea, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p1 boe*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_gallery_cabcOn_bo[] = {
- /*start P2 standard, gallery, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0020, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2100,
- 0x00e9, 0xa40c,
- 0x00ea, 0xa40c,
- 0x00eb, 0x1c26,
- 0x00ec, 0x1652,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_ui_cabcOn_bo[] = {
- /*start P2 standard, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2100,
- 0x00e9, 0xa40c,
- 0x00ea, 0xa40c,
- 0x00eb, 0x1c26,
- 0x00ec, 0x1652,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vid_cabcOn_bo[] = {
- /*start P2 standard, video, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0020, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x2600, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x2600,
- 0x00d8, 0x2600,
- 0x00d9, 0x2401,
- 0x00da, 0x2401,
- 0x00db, 0x2401,
- 0x00dc, 0x2401,
- 0x00dd, 0x2401,
- 0x00de, 0x2401,
- 0x00df, 0x2401,
- 0x00e0, 0x2401,
- 0x00e1, 0x2401,
- 0x00e2, 0x2401,
- 0x00e3, 0x2401,
- 0x00e4, 0x2401,
- 0x00e5, 0x2401,
- 0x00e6, 0x2401,
- 0x00e7, 0x2401,
- 0x00e8, 0x2401,
- 0x00e9, 0x2401,
- 0x00ea, 0x2016,
- 0x00eb, 0x1654,
- 0x00ec, 0x1179,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vtcall_cabcOn_bo[] = {
- /*start P2 standard, vtcall, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xfffa, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfffa, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2100,
- 0x00e9, 0xa40c,
- 0x00ea, 0xa40c,
- 0x00eb, 0x1c26,
- 0x00ec, 0x1652,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_bo[] = {
- /*start P2 camera, bypass*/
- 0x0001, 0x0020,
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00d6, 0x2000, /*gamma ori*/
- 0x00d7, 0x2000,
- 0x00d8, 0x2000,
- 0x00d9, 0x2000,
- 0x00da, 0x2000,
- 0x00db, 0x2000,
- 0x00dc, 0x2000,
- 0x00dd, 0x2000,
- 0x00de, 0x2000,
- 0x00df, 0x2000,
- 0x00e0, 0x2000,
- 0x00e1, 0x2000,
- 0x00e2, 0x2000,
- 0x00e3, 0x2000,
- 0x00e4, 0x2000,
- 0x00e5, 0x2000,
- 0x00e6, 0x2000,
- 0x00e7, 0x2000,
- 0x00e8, 0x2000,
- 0x00e9, 0x2000,
- 0x00ea, 0x2000,
- 0x00eb, 0x2000,
- 0x00ec, 0x2000,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_outdoor_bo[] = {
- /*start P2 camera, ove*/
- 0x0001, 0x0022, /*LABC OVE*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00d6, 0x2000, /*gamma ori*/
- 0x00d7, 0x2000,
- 0x00d8, 0x2000,
- 0x00d9, 0x2000,
- 0x00da, 0x2000,
- 0x00db, 0x2000,
- 0x00dc, 0x2000,
- 0x00dd, 0x2000,
- 0x00de, 0x2000,
- 0x00df, 0x2000,
- 0x00e0, 0x2000,
- 0x00e1, 0x2000,
- 0x00e2, 0x2000,
- 0x00e3, 0x2000,
- 0x00e4, 0x2000,
- 0x00e5, 0x2000,
- 0x00e6, 0x2000,
- 0x00e7, 0x2000,
- 0x00e8, 0x2000,
- 0x00e9, 0x2000,
- 0x00ea, 0x2000,
- 0x00eb, 0x2000,
- 0x00ec, 0x2000,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_cabcOff_bo[] = {
- /*start P2 cold, cabcOff*/
- 0x0001, 0x0064, /*SCR LABC MCM*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor_cabcOff_bo[] = {
- /*start P2 cold, ove, cabcOff*/
- 0x0001, 0x0066, /*SCR LABC MCM OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor_cabcOff_bo[] = {
- /*start P2 ove, cabcOff*/
- 0x0001, 0x0062, /*SCR LABC OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_cabcOff_bo[] = {
- /*start P2 warm, cabcOff*/
- 0x0001, 0x0064, /*SCR LABC MCM*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor_cabcOff_bo[] = {
- /*start P2 warm, ove, cabcOff*/
- 0x0001, 0x0066, /*SCR LABC MCM OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_cabcOn_bo[] = {
- /*start P2 cold, cabcOn*/
- 0x0001, 0x0074, /*SCR LABC MCM CABC*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor_cabcOn_bo[] = {
- /*start P2 cold, ove, cabcOn*/
- 0x0001, 0x0076, /*SCR LABC MCM OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor_cabcOn_bo[] = {
- /*start P2 ove, cabcOn*/
- 0x0001, 0x0072, /*SCR LABC OVE CABC*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_cabcOn_bo[] = {
- /*start P2 warm, cabcOn*/
- 0x0001, 0x0074, /*SCR LABC MCM CABC*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor_cabcOn_bo[] = {
- /*start P2 warm, ove, cabcOn*/
- 0x0001, 0x0076, /*SCR LABC MCM OVE CABC*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-
-struct mdnie_tunning_info etc_table_bo[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm_cabcOff_bo},
- {"COLD", tune_cold_cabcOff_bo},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor_cabcOff_bo},
- {"WARM_OUTDOOR", tune_warm_outdoor_cabcOff_bo},
- {"COLD_OUTDOOR", tune_cold_outdoor_cabcOff_bo},
- },
- },
- {
- {
- {"NORMAL_CABC", NULL},
- {"WARM_CABC", tune_warm_cabcOn_bo},
- {"COLD_CABC", tune_cold_cabcOn_bo},
- },
- {
- {"NORMAL_OUTDOOR_CABC", tune_outdoor_cabcOn_bo},
- {"WARM_OUTDOOR_CABC", tune_warm_outdoor_cabcOn_bo},
- {"COLD_OUTDOOR_CABC", tune_cold_outdoor_cabcOn_bo},
- },
- },
-};
-
-struct mdnie_tunning_info_cabc tunning_table_bo
- [CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
-{
- {
- {"DYNAMIC_UI", tune_dyn_ui_cabcOff_bo, 0},
- {"DYNAMIC_VIDEO_NOR", tune_dyn_vid_cabcOff_bo, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM", tune_dyn_vid_cabcOff_bo, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dyn_vid_cabcOff_bo, LUT_VIDEO},
- {"CAMERA", tune_camera_bo, 0},
- {"DYNAMIC_UI", tune_dyn_ui_cabcOff_bo, 0},
- {"DYNAMIC_GALLERY", tune_dyn_gallery_cabcOff_bo, 0},
- {"DYNAMIC_VT", tune_dyn_vtcall_cabcOff_bo, 0},
- }, {
- {"STANDARD_UI", tune_std_ui_cabcOff_bo, 0},
- {"STANDARD_VIDEO_NOR", tune_std_vid_cabcOff_bo, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM", tune_std_vid_cabcOff_bo, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD", tune_std_vid_cabcOff_bo, LUT_VIDEO},
- {"CAMERA", tune_camera_bo, 0},
- {"STANDARD_UI", tune_std_ui_cabcOff_bo, 0},
- {"STANDARD_GALLERY", tune_std_gallery_cabcOff_bo, 0},
- {"STANDARD_VT", tune_std_vtcall_cabcOff_bo, 0},
- }, {
- {"MOVIE_UI", tune_mov_ui_cabcOff_bo, 0},
- {"MOVIE_VIDEO_NOR", tune_mov_vid_cabcOff_bo, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM", tune_mov_vid_cabcOff_bo, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD", tune_mov_vid_cabcOff_bo, LUT_VIDEO},
- {"CAMERA", tune_camera_bo, 0},
- {"MOVIE_UI", tune_mov_ui_cabcOff_bo, 0},
- {"MOVIE_GALLERY", tune_mov_gallery_cabcOff_bo, 0},
- {"MOVIE_VT", tune_mov_vtcall_cabcOff_bo, 0},
- },
-},
-{
- {
- {"DYNAMIC_UI_CABC", tune_dyn_ui_cabcOn_bo, 0},
- {"DYNAMIC_VIDEO_NOR_CABC", tune_dyn_vid_cabcOn_bo, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM_CABC", tune_dyn_vid_cabcOn_bo, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dyn_vid_cabcOn_bo, LUT_VIDEO},
- {"CAMERA", tune_camera_bo, 0},
- {"DYNAMIC_UI_CABC", tune_dyn_ui_cabcOn_bo, 0},
- {"DYNAMIC_GALLERY_CABC", tune_dyn_gallery_cabcOn_bo, 0},
- {"DYNAMIC_VT_CABC", tune_dyn_vtcall_cabcOn_bo, 0},
- }, {
- {"STANDARD_UI_CABC", tune_std_ui_cabcOn_bo, 0},
- {"STANDARD_VIDEO_NOR_CABC", tune_std_vid_cabcOn_bo, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM_CABC", tune_std_vid_cabcOn_bo, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD_CABC", tune_std_vid_cabcOn_bo, LUT_VIDEO},
- {"CAMERA", tune_camera_bo, 0},
- {"STANDARD_UI_CABC", tune_std_ui_cabcOn_bo, 0},
- {"STANDARD_GALLERY_CABC", tune_std_gallery_cabcOn_bo, 0},
- {"STANDARD_VT_CABC", tune_std_vtcall_cabcOn_bo, 0},
- }, {
- {"MOVIE_UI_CABC", tune_mov_ui_cabcOn_bo, 0},
- {"MOVIE_VIDEO_NOR_CABC", tune_mov_vid_cabcOn_bo, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM_CABC", tune_mov_vid_cabcOn_bo, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD_CABC", tune_mov_vid_cabcOn_bo, LUT_VIDEO},
- {"CAMERA", tune_camera_bo, 0},
- {"MOVIE_UI_CABC", tune_mov_ui_cabcOn_bo, 0},
- {"MOVIE_GALLERY_CABC", tune_mov_gallery_cabcOn_bo, 0},
- {"MOVIE_VT_CABC", tune_mov_vtcall_cabcOn_bo, 0},
- },
-},
-};
-
-#endif /* __MDNIE_TABLE_P2_BOE_H__ */
-
diff --git a/drivers/video/samsung_duallcd/mdnie_table_p2_hydis.h b/drivers/video/samsung_duallcd/mdnie_table_p2_hydis.h
deleted file mode 100644
index 7901ab4..0000000
--- a/drivers/video/samsung_duallcd/mdnie_table_p2_hydis.h
+++ /dev/null
@@ -1,1689 +0,0 @@
-#ifndef __MDNIE_TABLE_P2_hy_H__
-#define __MDNIE_TABLE_P2_hy_H__
-
-#include "mdnie.h"
-
-
-static const unsigned short tune_dyn_gallery_cabcOff_hy[] = {
- /*start P2 dynamic, gallery, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0xa40c,
- 0x00e1, 0xa40c,
- 0x00e2, 0xa40c,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40e,
- 0x00e6, 0xa40e,
- 0x00e7, 0xa40e,
- 0x00e8, 0xa40e,
- 0x00e9, 0xa30a,
- 0x00ea, 0xa30a,
- 0x00eb, 0x1c22,
- 0x00ec, 0x1a31,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_ui_cabcOff_hy[] = {
- /*start P2 dynamic, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0xa40c,
- 0x00e1, 0xa40c,
- 0x00e2, 0xa40c,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40e,
- 0x00e6, 0xa40e,
- 0x00e7, 0xa40e,
- 0x00e8, 0xa40e,
- 0x00e9, 0xa30a,
- 0x00ea, 0xa30a,
- 0x00eb, 0x1c22,
- 0x00ec, 0x1a31,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vid_cabcOff_hy[] = {
- /*start P2 dynamic, video, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0xa40c,
- 0x00e1, 0xa40c,
- 0x00e2, 0xa40c,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40e,
- 0x00e6, 0xa40e,
- 0x00e7, 0xa40e,
- 0x00e8, 0xa40e,
- 0x00e9, 0xa30a,
- 0x00ea, 0xa30a,
- 0x00eb, 0x1c22,
- 0x00ec, 0x1a31,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vtcall_cabcOff_hy[] = {
- /*start P2 dynamic, vtcall, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0xa40c,
- 0x00e1, 0xa40c,
- 0x00e2, 0xa40c,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40e,
- 0x00e6, 0xa40e,
- 0x00e7, 0xa40e,
- 0x00e8, 0xa40e,
- 0x00e9, 0xa30a,
- 0x00ea, 0xa30a,
- 0x00eb, 0x1c22,
- 0x00ec, 0x1a31,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_gallery_cabcOff_hy[] = {
- /*start P2 movie, gallery, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS onlyV 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x0b00, /*GAMMA p1 boe*/
- 0x00d7, 0x0b00,
- 0x00d8, 0x0b00,
- 0x00d9, 0x0b00,
- 0x00da, 0x0b00,
- 0x00db, 0x0b00,
- 0x00dc, 0x0b00,
- 0x00dd, 0xa315,
- 0x00de, 0xa315,
- 0x00df, 0xa315,
- 0x00e0, 0xa315,
- 0x00e1, 0xa315,
- 0x00e2, 0xa315,
- 0x00e3, 0xa315,
- 0x00e4, 0xa315,
- 0x00e5, 0xa315,
- 0x00e6, 0xa315,
- 0x00e7, 0xa315,
- 0x00e8, 0xa315,
- 0x00e9, 0xa315,
- 0x00ea, 0xa315,
- 0x00eb, 0xa315,
- 0x00ec, 0xa315,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_ui_cabcOff_hy[] = {
- /*start P2 movie, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x0b00, /*GAMMA p1 boe*/
- 0x00d7, 0x0b00,
- 0x00d8, 0x0b00,
- 0x00d9, 0x0b00,
- 0x00da, 0x0b00,
- 0x00db, 0x0b00,
- 0x00dc, 0x0b00,
- 0x00dd, 0xa315,
- 0x00de, 0xa315,
- 0x00df, 0xa315,
- 0x00e0, 0xa315,
- 0x00e1, 0xa315,
- 0x00e2, 0xa315,
- 0x00e3, 0xa315,
- 0x00e4, 0xa315,
- 0x00e5, 0xa315,
- 0x00e6, 0xa315,
- 0x00e7, 0xa315,
- 0x00e8, 0xa315,
- 0x00e9, 0xa315,
- 0x00ea, 0xa315,
- 0x00eb, 0xa315,
- 0x00ec, 0xa315,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vid_cabcOff_hy[] = {
- /*start P2 movie, video, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x0b00, /*GAMMA p1 boe*/
- 0x00d7, 0x0b00,
- 0x00d8, 0x0b00,
- 0x00d9, 0x0b00,
- 0x00da, 0x0b00,
- 0x00db, 0x0b00,
- 0x00dc, 0x0b00,
- 0x00dd, 0xa315,
- 0x00de, 0xa315,
- 0x00df, 0xa315,
- 0x00e0, 0xa315,
- 0x00e1, 0xa315,
- 0x00e2, 0xa315,
- 0x00e3, 0xa315,
- 0x00e4, 0xa315,
- 0x00e5, 0xa315,
- 0x00e6, 0xa315,
- 0x00e7, 0xa315,
- 0x00e8, 0xa315,
- 0x00e9, 0xa315,
- 0x00ea, 0xa315,
- 0x00eb, 0xa315,
- 0x00ec, 0xa315,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vtcall_cabcOff_hy[] = {
- /*start P2 movie, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x0b00, /*GAMMA p1 boe*/
- 0x00d7, 0x0b00,
- 0x00d8, 0x0b00,
- 0x00d9, 0x0b00,
- 0x00da, 0x0b00,
- 0x00db, 0x0b00,
- 0x00dc, 0x0b00,
- 0x00dd, 0xa315,
- 0x00de, 0xa315,
- 0x00df, 0xa315,
- 0x00e0, 0xa315,
- 0x00e1, 0xa315,
- 0x00e2, 0xa315,
- 0x00e3, 0xa315,
- 0x00e4, 0xa315,
- 0x00e5, 0xa315,
- 0x00e6, 0xa315,
- 0x00e7, 0xa315,
- 0x00e8, 0xa315,
- 0x00e9, 0xa315,
- 0x00ea, 0xa315,
- 0x00eb, 0xa315,
- 0x00ec, 0xa315,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_gallery_cabcOff_hy[] = {
- /*start P2 standard, gallery, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0020, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0x1a00,
- 0x00e1, 0x1a00,
- 0x00e2, 0x1a00,
- 0x00e3, 0x1a00,
- 0x00e4, 0x1a00,
- 0x00e5, 0x1a00,
- 0x00e6, 0xa414,
- 0x00e7, 0xa414,
- 0x00e8, 0xa414,
- 0x00e9, 0xa414,
- 0x00ea, 0xa414,
- 0x00eb, 0x2005,
- 0x00ec, 0x1d1b,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_ui_cabcOff_hy[] = {
- /*start P2 standard, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA Xp5 2.5/2.0*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0x1a00,
- 0x00e1, 0x1a00,
- 0x00e2, 0x1a00,
- 0x00e3, 0x1a00,
- 0x00e4, 0x1a00,
- 0x00e5, 0x1a00,
- 0x00e6, 0xa414,
- 0x00e7, 0xa414,
- 0x00e8, 0xa414,
- 0x00e9, 0xa414,
- 0x00ea, 0xa414,
- 0x00eb, 0x2005,
- 0x00ec, 0x1d1b,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vid_cabcOff_hy[] = {
- /*start P2 standard, video, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0020, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0x1a00,
- 0x00e1, 0x1a00,
- 0x00e2, 0x1a00,
- 0x00e3, 0x1a00,
- 0x00e4, 0x1a00,
- 0x00e5, 0x1a00,
- 0x00e6, 0xa414,
- 0x00e7, 0xa414,
- 0x00e8, 0xa414,
- 0x00e9, 0xa414,
- 0x00ea, 0xa414,
- 0x00eb, 0x2005,
- 0x00ec, 0x1d1b,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vtcall_cabcOff_hy[] = {
- /*start P2 standard, vtcall, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0x1a00,
- 0x00e1, 0x1a00,
- 0x00e2, 0x1a00,
- 0x00e3, 0x1a00,
- 0x00e4, 0x1a00,
- 0x00e5, 0x1a00,
- 0x00e6, 0xa414,
- 0x00e7, 0xa414,
- 0x00e8, 0xa414,
- 0x00e9, 0xa414,
- 0x00ea, 0xa414,
- 0x00eb, 0x2005,
- 0x00ec, 0x1d1b,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_gallery_cabcOn_hy[] = {
- /*start P2 dynamic, gallery, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0xa407,
- 0x00dc, 0xa407,
- 0x00dd, 0xa407,
- 0x00de, 0xa407,
- 0x00df, 0xa407,
- 0x00e0, 0xa407,
- 0x00e1, 0xa407,
- 0x00e2, 0xa407,
- 0x00e3, 0xa407,
- 0x00e4, 0xa407,
- 0x00e5, 0xa407,
- 0x00e6, 0xa407,
- 0x00e7, 0xa407,
- 0x00e8, 0xa407,
- 0x00e9, 0xa407,
- 0x00ea, 0xa407,
- 0x00eb, 0x1844,
- 0x00ec, 0x1461,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_ui_cabcOn_hy[] = {
- /*start P2 dynamic, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0xa407,
- 0x00dc, 0xa407,
- 0x00dd, 0xa407,
- 0x00de, 0xa407,
- 0x00df, 0xa407,
- 0x00e0, 0xa407,
- 0x00e1, 0xa407,
- 0x00e2, 0xa407,
- 0x00e3, 0xa407,
- 0x00e4, 0xa407,
- 0x00e5, 0xa407,
- 0x00e6, 0xa407,
- 0x00e7, 0xa407,
- 0x00e8, 0xa407,
- 0x00e9, 0xa407,
- 0x00ea, 0xa407,
- 0x00eb, 0x1844,
- 0x00ec, 0x1461,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vid_cabcOn_hy[] = {
- /*start P2 dynamic, video, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x2600, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x2600,
- 0x00d8, 0x2600,
- 0x00d9, 0x2600,
- 0x00da, 0x2501,
- 0x00db, 0x2501,
- 0x00dc, 0x2501,
- 0x00dd, 0x2501,
- 0x00de, 0x2501,
- 0x00df, 0x2501,
- 0x00e0, 0x2501,
- 0x00e1, 0x2501,
- 0x00e2, 0x2501,
- 0x00e3, 0x2501,
- 0x00e4, 0x2501,
- 0x00e5, 0x2501,
- 0x00e6, 0x2501,
- 0x00e7, 0x2501,
- 0x00e8, 0x2501,
- 0x00e9, 0x2501,
- 0x00ea, 0x1f20,
- 0x00eb, 0x136b,
- 0x00ec, 0x1081,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vtcall_cabcOn_hy[] = {
- /*start P2 dynamic, vtcall, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0xa407,
- 0x00dc, 0xa407,
- 0x00dd, 0xa407,
- 0x00de, 0xa407,
- 0x00df, 0xa407,
- 0x00e0, 0xa407,
- 0x00e1, 0xa407,
- 0x00e2, 0xa407,
- 0x00e3, 0xa407,
- 0x00e4, 0xa407,
- 0x00e5, 0xa407,
- 0x00e6, 0xa407,
- 0x00e7, 0xa407,
- 0x00e8, 0xa407,
- 0x00e9, 0xa407,
- 0x00ea, 0xa407,
- 0x00eb, 0x1844,
- 0x00ec, 0x1461,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_gallery_cabcOn_hy[] = {
- /*start P2 movie, gallery, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAVX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p1 boe*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_ui_cabcOn_hy[] = {
- /*start P2 movie, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p1 boe*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vid_cabcOn_hy[] = {
- /*start P2 movie, video, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x6800, /*GAMMA p1 boe*/
- 0x00d7, 0x2007,
- 0x00d8, 0x2007,
- 0x00d9, 0x2007,
- 0x00da, 0x2007,
- 0x00db, 0x2007,
- 0x00dc, 0x2007,
- 0x00dd, 0x2007,
- 0x00de, 0x2007,
- 0x00df, 0x2007,
- 0x00e0, 0x2007,
- 0x00e1, 0x2007,
- 0x00e2, 0x2007,
- 0x00e3, 0x2007,
- 0x00e4, 0x2007,
- 0x00e5, 0x2007,
- 0x00e6, 0x2007,
- 0x00e7, 0x2007,
- 0x00e8, 0x2007,
- 0x00e9, 0x2007,
- 0x00ea, 0x2007,
- 0x00eb, 0x2007,
- 0x00ec, 0x1a33,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vtcall_cabcOn_hy[] = {
- /*start P2 movie, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p1 boe*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_gallery_cabcOn_hy[] = {
- /*start P2 standard, gallery, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0020, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2100,
- 0x00e9, 0xa40c,
- 0x00ea, 0xa40c,
- 0x00eb, 0x1c26,
- 0x00ec, 0x1652,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_ui_cabcOn_hy[] = {
- /*start P2 standard, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2100,
- 0x00e9, 0xa40c,
- 0x00ea, 0xa40c,
- 0x00eb, 0x1c26,
- 0x00ec, 0x1652,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vid_cabcOn_hy[] = {
- /*start P2 standard, video, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0020, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x2600, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x2600,
- 0x00d8, 0x2600,
- 0x00d9, 0x2401,
- 0x00da, 0x2401,
- 0x00db, 0x2401,
- 0x00dc, 0x2401,
- 0x00dd, 0x2401,
- 0x00de, 0x2401,
- 0x00df, 0x2401,
- 0x00e0, 0x2401,
- 0x00e1, 0x2401,
- 0x00e2, 0x2401,
- 0x00e3, 0x2401,
- 0x00e4, 0x2401,
- 0x00e5, 0x2401,
- 0x00e6, 0x2401,
- 0x00e7, 0x2401,
- 0x00e8, 0x2401,
- 0x00e9, 0x2401,
- 0x00ea, 0x2016,
- 0x00eb, 0x1654,
- 0x00ec, 0x1179,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vtcall_cabcOn_hy[] = {
- /*start P2 standard, vtcall, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff0, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2100,
- 0x00e9, 0xa40c,
- 0x00ea, 0xa40c,
- 0x00eb, 0x1c26,
- 0x00ec, 0x1652,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_hy[] = {
- /*start P2 camera, bypass*/
- 0x0001, 0x0020,
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00d6, 0x2000, /*gamma ori*/
- 0x00d7, 0x2000,
- 0x00d8, 0x2000,
- 0x00d9, 0x2000,
- 0x00da, 0x2000,
- 0x00db, 0x2000,
- 0x00dc, 0x2000,
- 0x00dd, 0x2000,
- 0x00de, 0x2000,
- 0x00df, 0x2000,
- 0x00e0, 0x2000,
- 0x00e1, 0x2000,
- 0x00e2, 0x2000,
- 0x00e3, 0x2000,
- 0x00e4, 0x2000,
- 0x00e5, 0x2000,
- 0x00e6, 0x2000,
- 0x00e7, 0x2000,
- 0x00e8, 0x2000,
- 0x00e9, 0x2000,
- 0x00ea, 0x2000,
- 0x00eb, 0x2000,
- 0x00ec, 0x2000,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_outdoor_hy[] = {
- /*start P2 camera, ove*/
- 0x0001, 0x0022, /*LABC OVE*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00d6, 0x2000, /*gamma ori*/
- 0x00d7, 0x2000,
- 0x00d8, 0x2000,
- 0x00d9, 0x2000,
- 0x00da, 0x2000,
- 0x00db, 0x2000,
- 0x00dc, 0x2000,
- 0x00dd, 0x2000,
- 0x00de, 0x2000,
- 0x00df, 0x2000,
- 0x00e0, 0x2000,
- 0x00e1, 0x2000,
- 0x00e2, 0x2000,
- 0x00e3, 0x2000,
- 0x00e4, 0x2000,
- 0x00e5, 0x2000,
- 0x00e6, 0x2000,
- 0x00e7, 0x2000,
- 0x00e8, 0x2000,
- 0x00e9, 0x2000,
- 0x00ea, 0x2000,
- 0x00eb, 0x2000,
- 0x00ec, 0x2000,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_cabcOff_hy[] = {
- /*start P2 cold, cabcOff*/
- 0x0001, 0x0064, /*SCR LABC MCM*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor_cabcOff_hy[] = {
- /*start P2 cold, ove, cabcOff*/
- 0x0001, 0x0066, /*SCR LABC MCM OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor_cabcOff_hy[] = {
- /*start P2 ove, cabcOff*/
- 0x0001, 0x0062, /*SCR LABC OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_cabcOff_hy[] = {
- /*start P2 warm, cabcOff*/
- 0x0001, 0x0064, /*SCR LABC MCM*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor_cabcOff_hy[] = {
- /*start P2 warm, ove, cabcOff*/
- 0x0001, 0x0066, /*SCR LABC MCM OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_cabcOn_hy[] = {
- /*start P2 cold, cabcOn*/
- 0x0001, 0x0074, /*SCR LABC MCM CABC*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor_cabcOn_hy[] = {
- /*start P2 cold, ove, cabcOn*/
- 0x0001, 0x0076, /*SCR LABC MCM OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor_cabcOn_hy[] = {
- /*start P2 ove, cabcOn*/
- 0x0001, 0x0072, /*SCR LABC OVE CABC*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_cabcOn_hy[] = {
- /*start P2 warm, cabcOn*/
- 0x0001, 0x0074, /*SCR LABC MCM CABC*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor_cabcOn_hy[] = {
- /*start P2 warm, ove, cabcOn*/
- 0x0001, 0x0076, /*SCR LABC MCM OVE CABC*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-
-struct mdnie_tunning_info etc_table_hy[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm_cabcOff_hy},
- {"COLD", tune_cold_cabcOff_hy},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor_cabcOff_hy},
- {"WARM_OUTDOOR", tune_warm_outdoor_cabcOff_hy},
- {"COLD_OUTDOOR", tune_cold_outdoor_cabcOff_hy},
- },
- },
- {
- {
- {"NORMAL_CABC", NULL},
- {"WARM_CABC", tune_warm_cabcOn_hy},
- {"COLD_CABC", tune_cold_cabcOn_hy},
- },
- {
- {"NORMAL_OUTDOOR_CABC", tune_outdoor_cabcOn_hy},
- {"WARM_OUTDOOR_CABC", tune_warm_outdoor_cabcOn_hy},
- {"COLD_OUTDOOR_CABC", tune_cold_outdoor_cabcOn_hy},
- },
- },
-};
-
-struct mdnie_tunning_info_cabc tunning_table_hy
- [CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
-{
- {
- {"DYNAMIC_UI", tune_dyn_ui_cabcOff_hy, 0},
- {"DYNAMIC_VIDEO_NOR", tune_dyn_vid_cabcOff_hy, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM", tune_dyn_vid_cabcOff_hy, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dyn_vid_cabcOff_hy, LUT_VIDEO},
- {"CAMERA", tune_camera_hy, 0},
- {"DYNAMIC_UI", tune_dyn_ui_cabcOff_hy, 0},
- {"DYNAMIC_GALLERY", tune_dyn_gallery_cabcOff_hy, 0},
- {"DYNAMIC_VT", tune_dyn_vtcall_cabcOff_hy, 0},
- }, {
- {"STANDARD_UI", tune_std_ui_cabcOff_hy, 0},
- {"STANDARD_VIDEO_NOR", tune_std_vid_cabcOff_hy, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM", tune_std_vid_cabcOff_hy, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD", tune_std_vid_cabcOff_hy, LUT_VIDEO},
- {"CAMERA", tune_camera_hy, 0},
- {"STANDARD_UI", tune_std_ui_cabcOff_hy, 0},
- {"STANDARD_GALLERY", tune_std_gallery_cabcOff_hy, 0},
- {"STANDARD_VT", tune_std_vtcall_cabcOff_hy, 0},
- }, {
- {"MOVIE_UI", tune_mov_ui_cabcOff_hy, 0},
- {"MOVIE_VIDEO_NOR", tune_mov_vid_cabcOff_hy, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM", tune_mov_vid_cabcOff_hy, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD", tune_mov_vid_cabcOff_hy, LUT_VIDEO},
- {"CAMERA", tune_camera_hy, 0},
- {"MOVIE_UI", tune_mov_ui_cabcOff_hy, 0},
- {"MOVIE_GALLERY", tune_mov_gallery_cabcOff_hy, 0},
- {"MOVIE_VT", tune_mov_vtcall_cabcOff_hy, 0},
- },
-},
-{
- {
- {"DYNAMIC_UI_CABC", tune_dyn_ui_cabcOn_hy, 0},
- {"DYNAMIC_VIDEO_NOR_CABC", tune_dyn_vid_cabcOn_hy, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM_CABC", tune_dyn_vid_cabcOn_hy, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dyn_vid_cabcOn_hy, LUT_VIDEO},
- {"CAMERA", tune_camera_hy, 0},
- {"DYNAMIC_UI_CABC", tune_dyn_ui_cabcOn_hy, 0},
- {"DYNAMIC_GALLERY_CABC", tune_dyn_gallery_cabcOn_hy, 0},
- {"DYNAMIC_VT_CABC", tune_dyn_vtcall_cabcOn_hy, 0},
- }, {
- {"STANDARD_UI_CABC", tune_std_ui_cabcOn_hy, 0},
- {"STANDARD_VIDEO_NOR_CABC", tune_std_vid_cabcOn_hy, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM_CABC", tune_std_vid_cabcOn_hy, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD_CABC", tune_std_vid_cabcOn_hy, LUT_VIDEO},
- {"CAMERA", tune_camera_hy, 0},
- {"STANDARD_UI_CABC", tune_std_ui_cabcOn_hy, 0},
- {"STANDARD_GALLERY_CABC", tune_std_gallery_cabcOn_hy, 0},
- {"STANDARD_VT_CABC", tune_std_vtcall_cabcOn_hy, 0},
- }, {
- {"MOVIE_UI_CABC", tune_mov_ui_cabcOn_hy, 0},
- {"MOVIE_VIDEO_NOR_CABC", tune_mov_vid_cabcOn_hy, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM_CABC", tune_mov_vid_cabcOn_hy, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD_CABC", tune_mov_vid_cabcOn_hy, LUT_VIDEO},
- {"CAMERA", tune_camera_hy, 0},
- {"MOVIE_UI_CABC", tune_mov_ui_cabcOn_hy, 0},
- {"MOVIE_GALLERY_CABC", tune_mov_gallery_cabcOn_hy, 0},
- {"MOVIE_VT_CABC", tune_mov_vtcall_cabcOn_hy, 0},
- },
-},
-};
-
-#endif /* __MDNIE_TABLE_P2_hy_H__ */
-
diff --git a/drivers/video/samsung_duallcd/mdnie_table_p2_sec.h b/drivers/video/samsung_duallcd/mdnie_table_p2_sec.h
deleted file mode 100644
index 741cab7..0000000
--- a/drivers/video/samsung_duallcd/mdnie_table_p2_sec.h
+++ /dev/null
@@ -1,1689 +0,0 @@
-#ifndef __MDNIE_TABLE_P2_SEC_H__
-#define __MDNIE_TABLE_P2_SEC_H__
-
-#include "mdnie.h"
-
-
-static const unsigned short tune_dyn_gallery_cabcOff_sec[] = {
- /*start P2 dynamic, gallery, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0xa40c,
- 0x00e1, 0xa40c,
- 0x00e2, 0xa40c,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40e,
- 0x00e6, 0xa40e,
- 0x00e7, 0xa40e,
- 0x00e8, 0xa40e,
- 0x00e9, 0xa30a,
- 0x00ea, 0xa30a,
- 0x00eb, 0x1c22,
- 0x00ec, 0x1a31,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_ui_cabcOff_sec[] = {
- /*start P2 dynamic, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0xa40c,
- 0x00e1, 0xa40c,
- 0x00e2, 0xa40c,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40e,
- 0x00e6, 0xa40e,
- 0x00e7, 0xa40e,
- 0x00e8, 0xa40e,
- 0x00e9, 0xa30a,
- 0x00ea, 0xa30a,
- 0x00eb, 0x1c22,
- 0x00ec, 0x1a31,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vid_cabcOff_sec[] = {
- /*start P2 dynamic, video, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0xa40c,
- 0x00e1, 0xa40c,
- 0x00e2, 0xa40c,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40e,
- 0x00e6, 0xa40e,
- 0x00e7, 0xa40e,
- 0x00e8, 0xa40e,
- 0x00e9, 0xa30a,
- 0x00ea, 0xa30a,
- 0x00eb, 0x1c22,
- 0x00ec, 0x1a31,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vtcall_cabcOff_sec[] = {
- /*start P2 dynamic, vtcall, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0xa40c,
- 0x00e1, 0xa40c,
- 0x00e2, 0xa40c,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40e,
- 0x00e6, 0xa40e,
- 0x00e7, 0xa40e,
- 0x00e8, 0xa40e,
- 0x00e9, 0xa30a,
- 0x00ea, 0xa30a,
- 0x00eb, 0x1c22,
- 0x00ec, 0x1a31,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_gallery_cabcOff_sec[] = {
- /*start P2 movie, gallery, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce4, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x0b00, /*GAMMA p1 boe*/
- 0x00d7, 0x0b00,
- 0x00d8, 0x0b00,
- 0x00d9, 0x0b00,
- 0x00da, 0x0b00,
- 0x00db, 0x0b00,
- 0x00dc, 0x0b00,
- 0x00dd, 0xa315,
- 0x00de, 0xa315,
- 0x00df, 0xa315,
- 0x00e0, 0xa315,
- 0x00e1, 0xa315,
- 0x00e2, 0xa315,
- 0x00e3, 0xa315,
- 0x00e4, 0xa315,
- 0x00e5, 0xa315,
- 0x00e6, 0xa315,
- 0x00e7, 0xa315,
- 0x00e8, 0xa315,
- 0x00e9, 0xa315,
- 0x00ea, 0xa315,
- 0x00eb, 0xa315,
- 0x00ec, 0xa315,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_ui_cabcOff_sec[] = {
- /*start P2 movie, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce4, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x0b00, /*GAMMA p1 boe*/
- 0x00d7, 0x0b00,
- 0x00d8, 0x0b00,
- 0x00d9, 0x0b00,
- 0x00da, 0x0b00,
- 0x00db, 0x0b00,
- 0x00dc, 0x0b00,
- 0x00dd, 0xa315,
- 0x00de, 0xa315,
- 0x00df, 0xa315,
- 0x00e0, 0xa315,
- 0x00e1, 0xa315,
- 0x00e2, 0xa315,
- 0x00e3, 0xa315,
- 0x00e4, 0xa315,
- 0x00e5, 0xa315,
- 0x00e6, 0xa315,
- 0x00e7, 0xa315,
- 0x00e8, 0xa315,
- 0x00e9, 0xa315,
- 0x00ea, 0xa315,
- 0x00eb, 0xa315,
- 0x00ec, 0xa315,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vid_cabcOff_sec[] = {
- /*start P2 movie, video, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce4, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x0b00, /*GAMMA p1 boe*/
- 0x00d7, 0x0b00,
- 0x00d8, 0x0b00,
- 0x00d9, 0x0b00,
- 0x00da, 0x0b00,
- 0x00db, 0x0b00,
- 0x00dc, 0x0b00,
- 0x00dd, 0xa315,
- 0x00de, 0xa315,
- 0x00df, 0xa315,
- 0x00e0, 0xa315,
- 0x00e1, 0xa315,
- 0x00e2, 0xa315,
- 0x00e3, 0xa315,
- 0x00e4, 0xa315,
- 0x00e5, 0xa315,
- 0x00e6, 0xa315,
- 0x00e7, 0xa315,
- 0x00e8, 0xa315,
- 0x00e9, 0xa315,
- 0x00ea, 0xa315,
- 0x00eb, 0xa315,
- 0x00ec, 0xa315,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vtcall_cabcOff_sec[] = {
- /*start P2 movie, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce4, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x0b00, /*GAMMA p1 boe*/
- 0x00d7, 0x0b00,
- 0x00d8, 0x0b00,
- 0x00d9, 0x0b00,
- 0x00da, 0x0b00,
- 0x00db, 0x0b00,
- 0x00dc, 0x0b00,
- 0x00dd, 0xa315,
- 0x00de, 0xa315,
- 0x00df, 0xa315,
- 0x00e0, 0xa315,
- 0x00e1, 0xa315,
- 0x00e2, 0xa315,
- 0x00e3, 0xa315,
- 0x00e4, 0xa315,
- 0x00e5, 0xa315,
- 0x00e6, 0xa315,
- 0x00e7, 0xa315,
- 0x00e8, 0xa315,
- 0x00e9, 0xa315,
- 0x00ea, 0xa315,
- 0x00eb, 0xa315,
- 0x00ec, 0xa315,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_gallery_cabcOff_sec[] = {
- /*start P2 standard, gallery, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0020, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0x1a00,
- 0x00e1, 0x1a00,
- 0x00e2, 0x1a00,
- 0x00e3, 0x1a00,
- 0x00e4, 0x1a00,
- 0x00e5, 0x1a00,
- 0x00e6, 0xa414,
- 0x00e7, 0xa414,
- 0x00e8, 0xa414,
- 0x00e9, 0xa414,
- 0x00ea, 0xa414,
- 0x00eb, 0x2005,
- 0x00ec, 0x1d1b,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_ui_cabcOff_sec[] = {
- /*start P2 standard, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC 0060*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0x1a00,
- 0x00e1, 0x1a00,
- 0x00e2, 0x1a00,
- 0x00e3, 0x1a00,
- 0x00e4, 0x1a00,
- 0x00e5, 0x1a00,
- 0x00e6, 0xa414,
- 0x00e7, 0xa414,
- 0x00e8, 0xa414,
- 0x00e9, 0xa414,
- 0x00ea, 0xa414,
- 0x00eb, 0x2005,
- 0x00ec, 0x1d1b,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vid_cabcOff_sec[] = {
- /*start P2 standard, video, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVELv*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0020, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0x1a00,
- 0x00e1, 0x1a00,
- 0x00e2, 0x1a00,
- 0x00e3, 0x1a00,
- 0x00e4, 0x1a00,
- 0x00e5, 0x1a00,
- 0x00e6, 0xa414,
- 0x00e7, 0xa414,
- 0x00e8, 0xa414,
- 0x00e9, 0xa414,
- 0x00ea, 0xa414,
- 0x00eb, 0x2005,
- 0x00ec, 0x1d1b,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vtcall_cabcOff_sec[] = {
- /*start P2 standard, vtcall, cabcOff*/
- 0x0001, 0x0060, /* LABC 0060 LABC SCR*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0x1a00,
- 0x00dc, 0x1a00,
- 0x00dd, 0x1a00,
- 0x00de, 0x1a00,
- 0x00df, 0x1a00,
- 0x00e0, 0x1a00,
- 0x00e1, 0x1a00,
- 0x00e2, 0x1a00,
- 0x00e3, 0x1a00,
- 0x00e4, 0x1a00,
- 0x00e5, 0x1a00,
- 0x00e6, 0xa414,
- 0x00e7, 0xa414,
- 0x00e8, 0xa414,
- 0x00e9, 0xa414,
- 0x00ea, 0xa414,
- 0x00eb, 0x2005,
- 0x00ec, 0x1d1b,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_gallery_cabcOn_sec[] = {
- /*start P2 dynamic, gallery, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0xa407,
- 0x00dc, 0xa407,
- 0x00dd, 0xa407,
- 0x00de, 0xa407,
- 0x00df, 0xa407,
- 0x00e0, 0xa407,
- 0x00e1, 0xa407,
- 0x00e2, 0xa407,
- 0x00e3, 0xa407,
- 0x00e4, 0xa407,
- 0x00e5, 0xa407,
- 0x00e6, 0xa407,
- 0x00e7, 0xa407,
- 0x00e8, 0xa407,
- 0x00e9, 0xa407,
- 0x00ea, 0xa407,
- 0x00eb, 0x1844,
- 0x00ec, 0x1461,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_ui_cabcOn_sec[] = {
- /*start P2 dynamic, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0xa407,
- 0x00dc, 0xa407,
- 0x00dd, 0xa407,
- 0x00de, 0xa407,
- 0x00df, 0xa407,
- 0x00e0, 0xa407,
- 0x00e1, 0xa407,
- 0x00e2, 0xa407,
- 0x00e3, 0xa407,
- 0x00e4, 0xa407,
- 0x00e5, 0xa407,
- 0x00e6, 0xa407,
- 0x00e7, 0xa407,
- 0x00e8, 0xa407,
- 0x00e9, 0xa407,
- 0x00ea, 0xa407,
- 0x00eb, 0x1844,
- 0x00ec, 0x1461,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vid_cabcOn_sec[] = {
- /*start P2 dynamic, video, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x2600, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x2600,
- 0x00d8, 0x2600,
- 0x00d9, 0x2600,
- 0x00da, 0x2501,
- 0x00db, 0x2501,
- 0x00dc, 0x2501,
- 0x00dd, 0x2501,
- 0x00de, 0x2501,
- 0x00df, 0x2501,
- 0x00e0, 0x2501,
- 0x00e1, 0x2501,
- 0x00e2, 0x2501,
- 0x00e3, 0x2501,
- 0x00e4, 0x2501,
- 0x00e5, 0x2501,
- 0x00e6, 0x2501,
- 0x00e7, 0x2501,
- 0x00e8, 0x2501,
- 0x00e9, 0x2501,
- 0x00ea, 0x1f20,
- 0x00eb, 0x136b,
- 0x00ec, 0x1081,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vtcall_cabcOn_sec[] = {
- /*start P2 dynamic, vtcall, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x1a00, /*GAMMA p5 2.5/1.8*/
- 0x00d7, 0x1a00,
- 0x00d8, 0x1a00,
- 0x00d9, 0x1a00,
- 0x00da, 0x1a00,
- 0x00db, 0xa407,
- 0x00dc, 0xa407,
- 0x00dd, 0xa407,
- 0x00de, 0xa407,
- 0x00df, 0xa407,
- 0x00e0, 0xa407,
- 0x00e1, 0xa407,
- 0x00e2, 0xa407,
- 0x00e3, 0xa407,
- 0x00e4, 0xa407,
- 0x00e5, 0xa407,
- 0x00e6, 0xa407,
- 0x00e7, 0xa407,
- 0x00e8, 0xa407,
- 0x00e9, 0xa407,
- 0x00ea, 0xa407,
- 0x00eb, 0x1844,
- 0x00ec, 0x1461,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_gallery_cabcOn_sec[] = {
- /*start P2 movie, gallery, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce4, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p1 boe*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_ui_cabcOn_sec[] = {
- /*start P2 movie, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce4, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p1 boe*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vid_cabcOn_sec[] = {
- /*start P2 movie, video, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce4, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x6800, /*GAMMA p1 boe*/
- 0x00d7, 0x2007,
- 0x00d8, 0x2007,
- 0x00d9, 0x2007,
- 0x00da, 0x2007,
- 0x00db, 0x2007,
- 0x00dc, 0x2007,
- 0x00dd, 0x2007,
- 0x00de, 0x2007,
- 0x00df, 0x2007,
- 0x00e0, 0x2007,
- 0x00e1, 0x2007,
- 0x00e2, 0x2007,
- 0x00e3, 0x2007,
- 0x00e4, 0x2007,
- 0x00e5, 0x2007,
- 0x00e6, 0x2007,
- 0x00e7, 0x2007,
- 0x00e8, 0x2007,
- 0x00e9, 0x2007,
- 0x00ea, 0x2007,
- 0x00eb, 0x2007,
- 0x00ec, 0x1a33,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vtcall_cabcOn_sec[] = {
- /*start P2 movie, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfce4, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00d4, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p1 boe*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_gallery_cabcOn_sec[] = {
- /*start P2 standard, gallery, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0020, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2100,
- 0x00e9, 0xa40c,
- 0x00ea, 0xa40c,
- 0x00eb, 0x1c26,
- 0x00ec, 0x1652,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_ui_cabcOn_sec[] = {
- /*start P2 standard, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2100,
- 0x00e9, 0xa40c,
- 0x00ea, 0xa40c,
- 0x00eb, 0x1c26,
- 0x00ec, 0x1652,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vid_cabcOn_sec[] = {
- /*start P2 standard, video, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0020, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x2600, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x2600,
- 0x00d8, 0x2600,
- 0x00d9, 0x2401,
- 0x00da, 0x2401,
- 0x00db, 0x2401,
- 0x00dc, 0x2401,
- 0x00dd, 0x2401,
- 0x00de, 0x2401,
- 0x00df, 0x2401,
- 0x00e0, 0x2401,
- 0x00e1, 0x2401,
- 0x00e2, 0x2401,
- 0x00e3, 0x2401,
- 0x00e4, 0x2401,
- 0x00e5, 0x2401,
- 0x00e6, 0x2401,
- 0x00e7, 0x2401,
- 0x00e8, 0x2401,
- 0x00e9, 0x2401,
- 0x00ea, 0x2016,
- 0x00eb, 0x1654,
- 0x00ec, 0x1179,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vtcall_cabcOn_sec[] = {
- /*start P2 standard, vtcall, cabcOn*/
- 0x0001, 0x0070, /* LABC SCR CABC*/
- 0x002c, 0x0fff, /*DNR VTcall,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002f, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x00a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffe8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00f0, /*yw B*/
- 0x00d6, 0x3f00, /*GAMMA p5 2.5/2.0*/
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2100,
- 0x00e9, 0xa40c,
- 0x00ea, 0xa40c,
- 0x00eb, 0x1c26,
- 0x00ec, 0x1652,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_sec[] = {
- /*start P2 camera, bypass*/
- 0x0001, 0x0020,
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00d6, 0x2000, /*gamma ori*/
- 0x00d7, 0x2000,
- 0x00d8, 0x2000,
- 0x00d9, 0x2000,
- 0x00da, 0x2000,
- 0x00db, 0x2000,
- 0x00dc, 0x2000,
- 0x00dd, 0x2000,
- 0x00de, 0x2000,
- 0x00df, 0x2000,
- 0x00e0, 0x2000,
- 0x00e1, 0x2000,
- 0x00e2, 0x2000,
- 0x00e3, 0x2000,
- 0x00e4, 0x2000,
- 0x00e5, 0x2000,
- 0x00e6, 0x2000,
- 0x00e7, 0x2000,
- 0x00e8, 0x2000,
- 0x00e9, 0x2000,
- 0x00ea, 0x2000,
- 0x00eb, 0x2000,
- 0x00ec, 0x2000,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_outdoor_sec[] = {
- /*start P2 camera, ove*/
- 0x0001, 0x0022, /*LABC OVE*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9)*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0000, /*CS GAIN*/
- 0x0042, 0x003f, /*DE TH (MAX DIFF)*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- /*0x00b4, 0x4640, count PWM*/
- 0x00d6, 0x2000, /*gamma ori*/
- 0x00d7, 0x2000,
- 0x00d8, 0x2000,
- 0x00d9, 0x2000,
- 0x00da, 0x2000,
- 0x00db, 0x2000,
- 0x00dc, 0x2000,
- 0x00dd, 0x2000,
- 0x00de, 0x2000,
- 0x00df, 0x2000,
- 0x00e0, 0x2000,
- 0x00e1, 0x2000,
- 0x00e2, 0x2000,
- 0x00e3, 0x2000,
- 0x00e4, 0x2000,
- 0x00e5, 0x2000,
- 0x00e6, 0x2000,
- 0x00e7, 0x2000,
- 0x00e8, 0x2000,
- 0x00e9, 0x2000,
- 0x00ea, 0x2000,
- 0x00eb, 0x2000,
- 0x00ec, 0x2000,
- 0x00ed, 0xFF00,
- 0x00d5, 0x0001, /*gamma apply*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_cabcOff_sec[] = {
- /*start P2 cold, cabcOff*/
- 0x0001, 0x0064, /*SCR LABC MCM*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor_cabcOff_sec[] = {
- /*start P2 cold, ove, cabcOff*/
- 0x0001, 0x0066, /*SCR LABC MCM OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor_cabcOff_sec[] = {
- /*start P2 ove, cabcOff*/
- 0x0001, 0x0062, /*SCR LABC OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_cabcOff_sec[] = {
- /*start P2 warm, cabcOff*/
- 0x0001, 0x0064, /*SCR LABC MCM*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor_cabcOff_sec[] = {
- /*start P2 warm, ove, cabcOff*/
- 0x0001, 0x0066, /*SCR LABC MCM OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_cabcOn_sec[] = {
- /*start P2 cold, cabcOn*/
- 0x0001, 0x0074, /*SCR LABC MCM CABC*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor_cabcOn_sec[] = {
- /*start P2 cold, ove, cabcOn*/
- 0x0001, 0x0076, /*SCR LABC MCM OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor_cabcOn_sec[] = {
- /*start P2 ove, cabcOn*/
- 0x0001, 0x0072, /*SCR LABC OVE CABC*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_cabcOn_sec[] = {
- /*start P2 warm, cabcOn*/
- 0x0001, 0x0074, /*SCR LABC MCM CABC*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor_cabcOn_sec[] = {
- /*start P2 warm, ove, cabcOn*/
- 0x0001, 0x0076, /*SCR LABC MCM OVE CABC*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-
-struct mdnie_tunning_info etc_table_sec[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm_cabcOff_sec},
- {"COLD", tune_cold_cabcOff_sec},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor_cabcOff_sec},
- {"WARM_OUTDOOR", tune_warm_outdoor_cabcOff_sec},
- {"COLD_OUTDOOR", tune_cold_outdoor_cabcOff_sec},
- },
- },
- {
- {
- {"NORMAL_CABC", NULL},
- {"WARM_CABC", tune_warm_cabcOn_sec},
- {"COLD_CABC", tune_cold_cabcOn_sec},
- },
- {
- {"NORMAL_OUTDOOR_CABC", tune_outdoor_cabcOn_sec},
- {"WARM_OUTDOOR_CABC", tune_warm_outdoor_cabcOn_sec},
- {"COLD_OUTDOOR_CABC", tune_cold_outdoor_cabcOn_sec},
- },
- },
-};
-
-struct mdnie_tunning_info_cabc tunning_table_sec
- [CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
-{
- {
- {"DYNAMIC_UI", tune_dyn_ui_cabcOff_sec, 0},
- {"DYNAMIC_VIDEO_NOR", tune_dyn_vid_cabcOff_sec, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM", tune_dyn_vid_cabcOff_sec, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dyn_vid_cabcOff_sec, LUT_VIDEO},
- {"CAMERA", tune_camera_sec, 0},
- {"DYNAMIC_UI", tune_dyn_ui_cabcOff_sec, 0},
- {"DYNAMIC_GALLERY", tune_dyn_gallery_cabcOff_sec, 0},
- {"DYNAMIC_VT", tune_dyn_vtcall_cabcOff_sec, 0},
- }, {
- {"STANDARD_UI", tune_std_ui_cabcOff_sec, 0},
- {"STANDARD_VIDEO_NOR", tune_std_vid_cabcOff_sec, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM", tune_std_vid_cabcOff_sec, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD", tune_std_vid_cabcOff_sec, LUT_VIDEO},
- {"CAMERA", tune_camera_sec, 0},
- {"STANDARD_UI", tune_std_ui_cabcOff_sec, 0},
- {"STANDARD_GALLERY", tune_std_gallery_cabcOff_sec, 0},
- {"STANDARD_VT", tune_std_vtcall_cabcOff_sec, 0},
- }, {
- {"MOVIE_UI", tune_mov_ui_cabcOff_sec, 0},
- {"MOVIE_VIDEO_NOR", tune_mov_vid_cabcOff_sec, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM", tune_mov_vid_cabcOff_sec, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD", tune_mov_vid_cabcOff_sec, LUT_VIDEO},
- {"CAMERA", tune_camera_sec, 0},
- {"MOVIE_UI", tune_mov_ui_cabcOff_sec, 0},
- {"MOVIE_GALLERY", tune_mov_gallery_cabcOff_sec, 0},
- {"MOVIE_VT", tune_mov_vtcall_cabcOff_sec, 0},
- },
-},
-{
- {
- {"DYNAMIC_UI_CABC", tune_dyn_ui_cabcOn_sec, 0},
- {"DYNAMIC_VIDEO_NOR_CABC", tune_dyn_vid_cabcOn_sec, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WAR_CABC", tune_dyn_vid_cabcOn_sec, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dyn_vid_cabcOn_sec, LUT_VIDEO},
- {"CAMERA", tune_camera_sec, 0},
- {"DYNAMIC_UI_CABC", tune_dyn_ui_cabcOn_sec, 0},
- {"DYNAMIC_GALLERY_CABC", tune_dyn_gallery_cabcOn_sec, 0},
- {"DYNAMIC_VT_CABC", tune_dyn_vtcall_cabcOn_sec, 0},
- }, {
- {"STANDARD_UI_CABC", tune_std_ui_cabcOn_sec, 0},
- {"STANDARD_VIDEO_NOR_CABC", tune_std_vid_cabcOn_sec, LUT_VIDEO},
- {"STANDARD_VIDEO_WAR_CABC", tune_std_vid_cabcOn_sec, LUT_VIDEO},
- {"STANDARD_VIDEO_COL_CABC", tune_std_vid_cabcOn_sec, LUT_VIDEO},
- {"CAMERA", tune_camera_sec, 0},
- {"STANDARD_UI_CABC", tune_std_ui_cabcOn_sec, 0},
- {"STANDARD_GALLERY_CABC", tune_std_gallery_cabcOn_sec, 0},
- {"STANDARD_VT_CABC", tune_std_vtcall_cabcOn_sec, 0},
- }, {
- {"MOVIE_UI_CABC", tune_mov_ui_cabcOn_sec, 0},
- {"MOVIE_VIDEO_NOR_CABC", tune_mov_vid_cabcOn_sec, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM_CABC", tune_mov_vid_cabcOn_sec, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD_CABC", tune_mov_vid_cabcOn_sec, LUT_VIDEO},
- {"CAMERA", tune_camera_sec, 0},
- {"MOVIE_UI_CABC", tune_mov_ui_cabcOn_sec, 0},
- {"MOVIE_GALLERY_CABC", tune_mov_gallery_cabcOn_sec, 0},
- {"MOVIE_VT_CABC", tune_mov_vtcall_cabcOn_sec, 0},
- },
-},
-};
-
-#endif /* __MDNIE_TABLE_P2_SEC_H__ */
-
diff --git a/drivers/video/samsung_duallcd/mdnie_table_p4.h b/drivers/video/samsung_duallcd/mdnie_table_p4.h
deleted file mode 100644
index 1265de4..0000000
--- a/drivers/video/samsung_duallcd/mdnie_table_p4.h
+++ /dev/null
@@ -1,1765 +0,0 @@
-#ifndef __MDNIE_TABLE_P4_WACOM_H__
-#define __MDNIE_TABLE_P4_WACOM_H__
-
-#include "mdnie.h"
-
-
-static const unsigned char power_lut[2][9] = {
- {0x42, 0x47, 0x3E, 0x52, 0x42, 0x3F, 0x3A, 0x37, 0x3F},
- {0x38, 0x3d, 0x34, 0x48, 0x38, 0x35, 0x30, 0x2d, 0x35},
-};
-
-static const unsigned short tune_dyn_gallery_cabcOff[] = {
- /*start P4 dynamic, gallery, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000D, /*HDTR DE CS*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, Count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xFFf8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00D6, 0x1a00, /*GAMMA n1d 2517*/
- 0x00D7, 0x1a00,
- 0x00D8, 0x1a00,
- 0x00D9, 0x1a00,
- 0x00DA, 0x1a00,
- 0x00DB, 0x1a00,
- 0x00DC, 0x1a00,
- 0x00DD, 0x1a00,
- 0x00DE, 0x1a00,
- 0x00DF, 0x1a00,
- 0x00E0, 0xa40c,
- 0x00E1, 0xa40c,
- 0x00E2, 0xa40c,
- 0x00E3, 0xa40c,
- 0x00E4, 0xa40c,
- 0x00E5, 0xa40c,
- 0x00E6, 0xa40c,
- 0x00E7, 0xa40c,
- 0x00E8, 0xa40c,
- 0x00E9, 0xa40c,
- 0x00EA, 0xa40c,
- 0x00EB, 0x1c26,
- 0x00EC, 0x1652,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_ui_cabcOff[] = {
- /*start P4 dynamic, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR CS*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, Count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xFFf8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00D6, 0x1a00, /*GAMMA n1d 2517*/
- 0x00D7, 0x1a00,
- 0x00D8, 0x1a00,
- 0x00D9, 0x1a00,
- 0x00DA, 0x1a00,
- 0x00DB, 0x1a00,
- 0x00DC, 0x1a00,
- 0x00DD, 0x1a00,
- 0x00DE, 0x1a00,
- 0x00DF, 0x1a00,
- 0x00E0, 0xa40c,
- 0x00E1, 0xa40c,
- 0x00E2, 0xa40c,
- 0x00E3, 0xa40c,
- 0x00E4, 0xa40c,
- 0x00E5, 0xa40c,
- 0x00E6, 0xa40c,
- 0x00E7, 0xa40c,
- 0x00E8, 0xa40c,
- 0x00E9, 0xa40c,
- 0x00EA, 0xa40c,
- 0x00EB, 0x1c26,
- 0x00EC, 0x1652,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_video_cabcOff[] = {
- /*start P4 dynamic, video, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC*/
- 0x002c, 0x0FFF, /*DNR*/
- 0x002d, 0x1905, /*dirnum,decon7*/
- 0x002e, 0x0507, /*decon5,maskth*/
- 0x002f, 0x0000,
- 0x003A, 0x000D, /*HDTR DE CS*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4,0x4640, Count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00D6, 0x1a00, /*GAMMA n1d 2517*/
- 0x00D7, 0x1a00,
- 0x00D8, 0x1a00,
- 0x00D9, 0x1a00,
- 0x00DA, 0x1a00,
- 0x00DB, 0x1a00,
- 0x00DC, 0x1a00,
- 0x00DD, 0x1a00,
- 0x00DE, 0x1a00,
- 0x00DF, 0x1a00,
- 0x00E0, 0xa40c,
- 0x00E1, 0xa40c,
- 0x00E2, 0xa40c,
- 0x00E3, 0xa40c,
- 0x00E4, 0xa40c,
- 0x00E5, 0xa40c,
- 0x00E6, 0xa40c,
- 0x00E7, 0xa40c,
- 0x00E8, 0xa40c,
- 0x00E9, 0xa40c,
- 0x00EA, 0xa40c,
- 0x00EB, 0x1c26,
- 0x00EC, 0x1652,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vtcall_cabcOff[] = {
- /*start P4 standard, vtcall, cabcOff*/
- 0x0001, 0x0060, /*LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002F, 0x0000, /*DNR block_th 0x0400*/
- 0x003a, 0x000D, /*HDTR DE CS*/
- 0x003B, 0x0300, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0100, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4,0x4640, CABC PWM set*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00D6, 0x1500, /*GAMMA p1va-0.5*/
- 0x00D7, 0x1500,
- 0x00D8, 0x1500,
- 0x00D9, 0x1500,
- 0x00DA, 0x1500,
- 0x00DB, 0x1500,
- 0x00DC, 0x1500,
- 0x00DD, 0x1500,
- 0x00DE, 0x1500,
- 0x00DF, 0x1500,
- 0x00E0, 0x1500,
- 0x00E1, 0x1500,
- 0x00E2, 0xa315,
- 0x00E3, 0xa315,
- 0x00E4, 0xa315,
- 0x00E5, 0xa315,
- 0x00E6, 0xa315,
- 0x00E7, 0xa315,
- 0x00E8, 0xa315,
- 0x00E9, 0xa315,
- 0x00EA, 0xa315,
- 0x00EB, 0xa315,
- 0x00EC, 0xa315,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000,
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_gallery_cabcOff[] = {
- /*start P4 movie, gallery, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR CS*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0080, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, Count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffee, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00e9, /*yw B*/
- 0x00D6, 0x1500, /*GAMMA p1va-0.5*/
- 0x00D7, 0x1500,
- 0x00D8, 0x1500,
- 0x00D9, 0x1500,
- 0x00DA, 0x1500,
- 0x00DB, 0x1500,
- 0x00DC, 0x1500,
- 0x00DD, 0x1500,
- 0x00DE, 0x1500,
- 0x00DF, 0x1500,
- 0x00E0, 0x1500,
- 0x00E1, 0x1500,
- 0x00E2, 0xa315,
- 0x00E3, 0xa315,
- 0x00E4, 0xa315,
- 0x00E5, 0xa315,
- 0x00E6, 0xa315,
- 0x00E7, 0xa315,
- 0x00E8, 0xa315,
- 0x00E9, 0xa315,
- 0x00EA, 0xa315,
- 0x00EB, 0xa315,
- 0x00EC, 0xa315,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_ui_cabcOff[] = {
- /*start P4 movie, ui, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR CS*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0080, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4,0x4640, Count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffee, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00e9, /*yw B*/
- 0x00D6, 0x1500, /*GAMMA p1va-0.5*/
- 0x00D7, 0x1500,
- 0x00D8, 0x1500,
- 0x00D9, 0x1500,
- 0x00DA, 0x1500,
- 0x00DB, 0x1500,
- 0x00DC, 0x1500,
- 0x00DD, 0x1500,
- 0x00DE, 0x1500,
- 0x00DF, 0x1500,
- 0x00E0, 0x1500,
- 0x00E1, 0x1500,
- 0x00E2, 0xa315,
- 0x00E3, 0xa315,
- 0x00E4, 0xa315,
- 0x00E5, 0xa315,
- 0x00E6, 0xa315,
- 0x00E7, 0xa315,
- 0x00E8, 0xa315,
- 0x00E9, 0xa315,
- 0x00EA, 0xa315,
- 0x00EB, 0xa315,
- 0x00EC, 0xa315,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_video_cabcOff[] = {
- /*start P4 movie, video, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC*/
- 0x002c, 0x0FFF, /*DNR*/
- 0x002d, 0x1905, /*dirnum,decon7*/
- 0x002e, 0x0507, /*decon5,maskth*/
- 0x002f, 0x0000,
- 0x003A, 0x0009, /*HDTR CS*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0080, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, Count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffee, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00e9, /*yw B*/
- 0x00D6, 0x2000, /*Gamma p1va+2*/
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x1c06,
- 0x00E3, 0x1c06,
- 0x00E4, 0x1c06,
- 0x00E5, 0x1c06,
- 0x00E6, 0x1c06,
- 0x00E7, 0x1c06,
- 0x00E8, 0x1c06,
- 0x00E9, 0xa315,
- 0x00EA, 0xa315,
- 0x00EB, 0xa315,
- 0x00EC, 0xa315,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vtcall_cabcOff[] = {
- /*start P4 movie, vtcall, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC*/
- 0x002c, 0x0fff, /*DNR bypass,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002F, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR DE CS*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0080, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4,0x4640, Count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffee, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00e9, /*yw B*/
- 0x00D6, 0x1500, /*GAMMA p1va-0.5*/
- 0x00D7, 0x1500,
- 0x00D8, 0x1500,
- 0x00D9, 0x1500,
- 0x00DA, 0x1500,
- 0x00DB, 0x1500,
- 0x00DC, 0x1500,
- 0x00DD, 0x1500,
- 0x00DE, 0x1500,
- 0x00DF, 0x1500,
- 0x00E0, 0x1500,
- 0x00E1, 0x1500,
- 0x00E2, 0xa315,
- 0x00E3, 0xa315,
- 0x00E4, 0xa315,
- 0x00E5, 0xa315,
- 0x00E6, 0xa315,
- 0x00E7, 0xa315,
- 0x00E8, 0xa315,
- 0x00E9, 0xa315,
- 0x00EA, 0xa315,
- 0x00EB, 0xa315,
- 0x00EC, 0xa315,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_gallery_cabcOff[] = {
- /* start P4 standard, gallery, cabcOff */
- 0x0001, 0x0060, /* LABC CABC */
- 0x002c, 0x0fff, /* DNR bypass */
- 0x002d, 0x1900, /* DNR bypass */
- 0x002e, 0x0000, /* DNR bypass */
- 0x002f, 0x0FFF, /* DNR bypass */
- 0x003a, 0x000D, /* HDTR DE CS */
- 0x003B, 0x03ff, /* DE SHARPNESS */
- 0x003C, 0x0000, /* NOISE LEVEL */
- 0x003F, 0x0100, /* CS GAIN */
- 0x0042, 0x0000, /* DE TH (MAX DIFF) */
- /* 0x00b4,0x4640, CABC PWM set */
- 0x00c8, 0x0000, /* kb R SCR */
- 0x00c9, 0x0000, /* gc R */
- 0x00ca, 0xffff, /* rm R */
- 0x00cb, 0xffff, /* yw R */
- 0x00cc, 0x0000, /* kb G */
- 0x00cd, 0xffff, /* gc G */
- 0x00ce, 0x0000, /* rm G */
- 0x00cf, 0xfff8, /* yw G */
- 0x00d0, 0x00ff, /* kb B */
- 0x00d1, 0x00ff, /* gc B */
- 0x00d2, 0x00ff, /* rm B */
- 0x00d3, 0x00ff, /* yw B */
- 0x00D6, 0x1500, /* GAMMA p1va-0.5 */
- 0x00D7, 0x1500,
- 0x00D8, 0x1500,
- 0x00D9, 0x1500,
- 0x00DA, 0x1500,
- 0x00DB, 0x1500,
- 0x00DC, 0x1500,
- 0x00DD, 0x1500,
- 0x00DE, 0x1500,
- 0x00DF, 0x1500,
- 0x00E0, 0x1500,
- 0x00E1, 0x1500,
- 0x00E2, 0xa315,
- 0x00E3, 0xa315,
- 0x00E4, 0xa315,
- 0x00E5, 0xa315,
- 0x00E6, 0xa315,
- 0x00E7, 0xa315,
- 0x00E8, 0xa315,
- 0x00E9, 0xa315,
- 0x00EA, 0xa315,
- 0x00EB, 0xa315,
- 0x00EC, 0xa315,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000,
- /* end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_ui_cabcOff[] = {
- /*start P4 standard, ui, cabcOff */
- 0x0001, 0x0020, /*SCR LABC */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003A, 0x0009, /*HDTR CS */
- 0x003B, 0x0030, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0000, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- /*0x00b4,0x4640, Count PWM */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xfff8, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00D6, 0x1800, /*GAMMA 2.6 */
- 0x00D7, 0x1800,
- 0x00D8, 0x1800,
- 0x00D9, 0x1800,
- 0x00DA, 0x1800,
- 0x00DB, 0x1800,
- 0x00DC, 0x1800,
- 0x00DD, 0x1800,
- 0x00DE, 0x1800,
- 0x00DF, 0x1800,
- 0x00E0, 0x1800,
- 0x00E1, 0x1800,
- 0x00E2, 0x1800,
- 0x00E3, 0x1800,
- 0x00E4, 0x1800,
- 0x00E5, 0x1800,
- 0x00E6, 0x1800,
- 0x00E7, 0x9f10,
- 0x00E8, 0xa41d,
- 0x00E9, 0xa41d,
- 0x00EA, 0xa41d,
- 0x00EB, 0xa41d,
- 0x00EC, 0xa41d,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Register Mask */
- /* end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vid_cabcOff[] = {
- /*start P4 standard, video, cabcOff*/
- 0x0001, 0x0060, /*SCR LABC*/
- 0x002c, 0x0FFF, /*DNR*/
- 0x002d, 0x1905, /* dirnum,decon7 */
- 0x002e, 0x0507, /* decon5,maskth */
- 0x002f, 0x0000, /* */
- 0x003A, 0x000D, /* HDTR DE CS */
- 0x003B, 0x03ff, /* DE SHARPNESS */
- 0x003C, 0x0000, /* NOISE LEVEL */
- 0x003F, 0x0110, /* CS GAIN */
- 0x0042, 0x0000, /* DE TH (MAX DIFF) */
- /* 0x00b4,0x4640, Count PWM */
- 0x00c8, 0x0000, /* kb R SCR */
- 0x00c9, 0x0000, /* gc R */
- 0x00ca, 0xffff, /* rm R */
- 0x00cb, 0xffff, /* yw R */
- 0x00cc, 0x0000, /* kb G */
- 0x00cd, 0xffff, /* gc G */
- 0x00ce, 0x0000, /* rm G */
- 0x00cf, 0xfff8, /* yw G */
- 0x00d0, 0x00ff, /* kb B */
- 0x00d1, 0x00ff, /* gc B */
- 0x00d2, 0x00ff, /* rm B */
- 0x00d3, 0x00ff, /* yw B */
- 0x00D6, 0x2000, /* Gamma p1va+2 */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x1c06,
- 0x00E3, 0x1c06,
- 0x00E4, 0x1c06,
- 0x00E5, 0x1c06,
- 0x00E6, 0x1c06,
- 0x00E7, 0x1c06,
- 0x00E8, 0x1c06,
- 0x00E9, 0xa315,
- 0x00EA, 0xa315,
- 0x00EB, 0xa315,
- 0x00EC, 0xa315,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Register Mask */
- /* end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vtcall_cabcOff[] = {
- /*start P4 standard, vtcall, cabcOff*/
- 0x0001, 0x0060, /*LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002F, 0x0000, /*DNR block_th 0x0400*/
- 0x003a, 0x000D, /*HDTR DE CS*/
- 0x003B, 0x0300, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0100, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4,0x4640, CABC PWM set*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00D6, 0x1500, /*GAMMA p1va-0.5*/
- 0x00D7, 0x1500,
- 0x00D8, 0x1500,
- 0x00D9, 0x1500,
- 0x00DA, 0x1500,
- 0x00DB, 0x1500,
- 0x00DC, 0x1500,
- 0x00DD, 0x1500,
- 0x00DE, 0x1500,
- 0x00DF, 0x1500,
- 0x00E0, 0x1500,
- 0x00E1, 0x1500,
- 0x00E2, 0xa315,
- 0x00E3, 0xa315,
- 0x00E4, 0xa315,
- 0x00E5, 0xa315,
- 0x00E6, 0xa315,
- 0x00E7, 0xa315,
- 0x00E8, 0xa315,
- 0x00E9, 0xa315,
- 0x00EA, 0xa315,
- 0x00EB, 0xa315,
- 0x00EC, 0xa315,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000,
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_gallery_cabcOn[] = {
- /*start P4 dynamic, gallery, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x000D, /*HDTR DE CS*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- /*0x0076, 0x383d, PowerLUT 3C50*/
- /*0x0077, 0x3442, PowerLUT 2D64*/
- /*0x0078, 0x3835, PowerLUT 3C32*/
- /*0x0079, 0x302d, PowerLUT 1E00*/
- /*0x007a, 0x3500, PowerLUT 3200*/
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff5, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00D6, 0x1a00, /*GAMMA n1dc, 2215*/
- 0x00D7, 0x1a00,
- 0x00D8, 0x1a00,
- 0x00D9, 0x1a00,
- 0x00DA, 0x1a00,
- 0x00DB, 0xa407,
- 0x00DC, 0xa407,
- 0x00DD, 0xa407,
- 0x00DE, 0xa407,
- 0x00DF, 0xa407,
- 0x00E0, 0xa407,
- 0x00E1, 0xa407,
- 0x00E2, 0xa407,
- 0x00E3, 0xa407,
- 0x00E4, 0xa407,
- 0x00E5, 0xa407,
- 0x00E6, 0xa407,
- 0x00E7, 0xa407,
- 0x00E8, 0xa407,
- 0x00E9, 0xa407,
- 0x00EA, 0xa407,
- 0x00EB, 0x1844,
- 0x00EC, 0x1461,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_ui_cabcOn[] = {
- /*start P4 dynamic, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR CS*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- /*0x0076, 0x383d, PowerLUT 3C50*/
- /*0x0077, 0x3442, PowerLUT 2D64*/
- /*0x0078, 0x3835, PowerLUT 3C32*/
- /*0x0079, 0x302d, PowerLUT 1E00*/
- /*0x007a, 0x3500, PowerLUT 3200*/
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff5, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00D6, 0x1a00, /*GAMMA n1dc, 2215*/
- 0x00D7, 0x1a00,
- 0x00D8, 0x1a00,
- 0x00D9, 0x1a00,
- 0x00DA, 0x1a00,
- 0x00DB, 0xa407,
- 0x00DC, 0xa407,
- 0x00DD, 0xa407,
- 0x00DE, 0xa407,
- 0x00DF, 0xa407,
- 0x00E0, 0xa407,
- 0x00E1, 0xa407,
- 0x00E2, 0xa407,
- 0x00E3, 0xa407,
- 0x00E4, 0xa407,
- 0x00E5, 0xa407,
- 0x00E6, 0xa407,
- 0x00E7, 0xa407,
- 0x00E8, 0xa407,
- 0x00E9, 0xa407,
- 0x00EA, 0xa407,
- 0x00EB, 0x1844,
- 0x00EC, 0x1461,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vid_cabcOn[] = {
- /*start P4 dynamic, video, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0FFF, /*DNR*/
- 0x002d, 0x1905, /*dirnum,decon7*/
- 0x002e, 0x0507, /*decon5,maskth*/
- 0x002f, 0x0000,
- 0x003A, 0x000D, /*HDTR DE CS*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- /*0x0076, 0x383d, PowerLUT 3C50*/
- /*0x0077, 0x3442, PowerLUT 2D64*/
- /*0x0078, 0x3835, PowerLUT 3C32*/
- /*0x0079, 0x302d, PowerLUT 1E00*/
- /*0x007a, 0x3500, PowerLUT 3200*/
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff5, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00D6, 0x2600, /*GAMMA p5_dvc 2011*/
- 0x00D7, 0x2600,
- 0x00D8, 0x2600,
- 0x00D9, 0x2600,
- 0x00DA, 0x2501,
- 0x00DB, 0x2501,
- 0x00DC, 0x2501,
- 0x00DD, 0x2501,
- 0x00DE, 0x2501,
- 0x00DF, 0x2501,
- 0x00E0, 0x2501,
- 0x00E1, 0x2501,
- 0x00E2, 0x2501,
- 0x00E3, 0x2501,
- 0x00E4, 0x2501,
- 0x00E5, 0x2501,
- 0x00E6, 0x2501,
- 0x00E7, 0x2501,
- 0x00E8, 0x2501,
- 0x00E9, 0x2501,
- 0x00EA, 0x1f20,
- 0x00EB, 0x136b,
- 0x00EC, 0x1081,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dyn_vtcall_cabcOn[] = {
- /*start P4 dynamic, vtcall, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002F, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000D, /*HDTR DE CS*/
- 0x003B, 0x03ff, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x01a0, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- /*0x0076,0x383d, PowerLUT 3C50*/
- /*0x0077,0x3442, PowerLUT 2D64*/
- /*0x0078,0x3835, PowerLUT 3C32*/
- /*0x0079,0x302d, PowerLUT 1E00*/
- /*0x007a,0x3500, PowerLUT 3200*/
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4,0x5640, CABC PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff5, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00D6, 0x1a00, /*GAMMA n1dc, 2215*/
- 0x00D7, 0x1a00,
- 0x00D8, 0x1a00,
- 0x00D9, 0x1a00,
- 0x00DA, 0x1a00,
- 0x00DB, 0xa407,
- 0x00DC, 0xa407,
- 0x00DD, 0xa407,
- 0x00DE, 0xa407,
- 0x00DF, 0xa407,
- 0x00E0, 0xa407,
- 0x00E1, 0xa407,
- 0x00E2, 0xa407,
- 0x00E3, 0xa407,
- 0x00E4, 0xa407,
- 0x00E5, 0xa407,
- 0x00E6, 0xa407,
- 0x00E7, 0xa407,
- 0x00E8, 0xa407,
- 0x00E9, 0xa407,
- 0x00EA, 0xa407,
- 0x00EB, 0x1844,
- 0x00EC, 0x1461,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_gallery_cabcOn[] = {
- /*start P4 movie, gallery, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR CS*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0080, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- /*0x0076, 0x383d, PowerLUT 3C50*/
- /*0x0077, 0x3442, PowerLUT 2D64*/
- /*0x0078, 0x3835, PowerLUT 3C32*/
- /*0x0079, 0x302d, PowerLUT 1E00*/
- /*0x007a, 0x3500, PowerLUT 3200*/
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffee, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00e9, /*yw B*/
- 0x00D6, 0x3f00, /*GAMMA p5_mc 22*/
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_ui_cabcOn[] = {
- /*start P4 movie, ui, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR CS*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0080, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- /*0x0076, 0x383d, PowerLUT 3C50*/
- /*0x0077, 0x3442, PowerLUT 2D64*/
- /*0x0078, 0x3835, PowerLUT 3C32*/
- /*0x0079, 0x302d, PowerLUT 1E00*/
- /*0x007a, 0x3500, PowerLUT 3200*/
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffee, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00e9, /*yw B*/
- 0x00D6, 0x3f00, /*GAMMA p5_mc 22*/
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vid_cabcOn[] = {
- /*start P4 movie, video, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0FFF, /*DNR*/
- 0x002d, 0x1905, /*dirnum,decon7*/
- 0x002e, 0x0507, /*decon5,maskth*/
- 0x002f, 0x0000,
- 0x003A, 0x0009, /*HDTR CS*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0080, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- /*0x0076, 0x383d, PowerLUT 3C50*/
- /*0x0077, 0x3442, PowerLUT 2D64*/
- /*0x0078, 0x3835, PowerLUT 3C32*/
- /*0x0079, 0x302d, PowerLUT 1E00*/
- /*0x007a, 0x3500, PowerLUT 3200*/
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4, 0x5640, CABC PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffee, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00e9, /*yw B*/
- 0x00D6, 0x6800, /*GAMMA p5_mvc 20*/
- 0x00D7, 0x2007,
- 0x00D8, 0x2007,
- 0x00D9, 0x2007,
- 0x00DA, 0x2007,
- 0x00DB, 0x2007,
- 0x00DC, 0x2007,
- 0x00DD, 0x2007,
- 0x00DE, 0x2007,
- 0x00DF, 0x2007,
- 0x00E0, 0x2007,
- 0x00E1, 0x2007,
- 0x00E2, 0x2007,
- 0x00E3, 0x2007,
- 0x00E4, 0x2007,
- 0x00E5, 0x2007,
- 0x00E6, 0x2007,
- 0x00E7, 0x2007,
- 0x00E8, 0x2007,
- 0x00E9, 0x2007,
- 0x00EA, 0x2007,
- 0x00EB, 0x2007,
- 0x00EC, 0x1a33,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_mov_vtcall_cabcOn[] = {
- /*start P4 movie, vtcall, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002F, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000d, /*HDTR DE CS*/
- 0x003B, 0x0030, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0080, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- /*0x0076,0x383d, PowerLUT 3C50*/
- /*0x0077,0x3442, PowerLUT 2D64*/
- /*0x0078,0x3835, PowerLUT 3C32*/
- /*0x0079,0x302d, PowerLUT 1E00*/
- /*0x007a,0x3500, PowerLUT 3200*/
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4,0x5640, CABC PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xffee, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00e9, /*yw B*/
- 0x00D6, 0x3f00, /*GAMMA p5_mc 22*/
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_gallery_cabcOn[] = {
- /* start P4 standard, gallery, cabcOn */
- 0x0001, 0x0070, /* SCR LABC CABC */
- 0x002c, 0x0fff, /* DNR bypass 0x003C */
- 0x002d, 0x1900, /* DNR bypass 0x0a08 */
- 0x002e, 0x0000, /* DNR bypass 0x1010 */
- 0x002f, 0x0fff, /* DNR bypass 0x0400 */
- 0x003A, 0x000D, /* HDTR DE CS */
- 0x003B, 0x03ff, /* DE SHARPNESS */
- 0x003C, 0x0000, /* NOISE LEVEL */
- 0x003F, 0x0100, /* CS GAIN */
- 0x0042, 0x0000, /* DE TH (MAX DIFF) */
- 0x0072, 0x0000, /* CABC Dgain */
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- /* 0x0076, 0x383d, PowerLUT 3C50 */
- /* 0x0077, 0x3442, PowerLUT 2D64 */
- /* 0x0078, 0x3835, PowerLUT 3C32 */
- /* 0x0079, 0x302d, PowerLUT 1E00 */
- /* 0x007a, 0x3500, PowerLUT 3200 */
- 0x007C, 0x0002, /* Dynamic LCD */
- /* 0x00b4, 0x5640, CABC PWM */
- 0x00c8, 0x0000, /* kb R SCR */
- 0x00c9, 0x0000, /* gc R */
- 0x00ca, 0xffff, /* rm R */
- 0x00cb, 0xffff, /* yw R */
- 0x00cc, 0x0000, /* kb G */
- 0x00cd, 0xffff, /* gc G */
- 0x00ce, 0x0000, /* rm G */
- 0x00cf, 0xfff5, /* yw G */
- 0x00d0, 0x00ff, /* kb B */
- 0x00d1, 0x00ff, /* gc B */
- 0x00d2, 0x00ff, /* rm B */
- 0x00d3, 0x00ff, /* yw B */
- 0x00D6, 0x3f00, /* GAMMA n1sc, 2217 */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2100,
- 0x00E9, 0xa40c,
- 0x00EA, 0xa40c,
- 0x00EB, 0x1c26,
- 0x00EC, 0x1652,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Register Mask */
- /* end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_ui_cabcOn[] = {
- /*start P4 standard, ui, cabcOn */
- 0x0001, 0x0030, /*SCR LABC CABC */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003A, 0x0009, /*HDTR CS */
- 0x003B, 0x0030, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0000, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x0072, 0x0000, /*CABC Dgain */
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- /*0x0076, 0x383d, PowerLUT 3C50 */
- /*0x0077, 0x3442, PowerLUT 2D64 */
- /*0x0078, 0x3835, PowerLUT 3C32 */
- /*0x0079, 0x302d, PowerLUT 1E00 */
- /*0x007a, 0x3500, PowerLUT 3200 */
- 0x007C, 0x0002, /*Dynamic LCD */
- /*0x00b4, 0x5640, CABC PWM */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xfff5, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00D6, 0x1800, /*GAMMA 2.6c */
- 0x00D7, 0x1800,
- 0x00D8, 0x1800,
- 0x00D9, 0x1800,
- 0x00DA, 0x1800,
- 0x00DB, 0x1800,
- 0x00DC, 0x1800,
- 0x00DD, 0x1800,
- 0x00DE, 0x1800,
- 0x00DF, 0x1800,
- 0x00E0, 0x1800,
- 0x00E1, 0x1800,
- 0x00E2, 0x1800,
- 0x00E3, 0x1800,
- 0x00E4, 0x1800,
- 0x00E5, 0x1800,
- 0x00E6, 0x1800,
- 0x00E7, 0xa825,
- 0x00E8, 0xa825,
- 0x00E9, 0xa825,
- 0x00EA, 0xa825,
- 0x00EB, 0x1c26,
- 0x00EC, 0x1652,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Register Mask */
- /* end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vid_cabcOn[] = {
- /* start P4 standard, video, cabcOn */
- 0x0001, 0x0070, /* SCR LABC CABC */
- 0x002c, 0x0FFF, /* DNR */
- 0x002d, 0x1905, /* dirnum,decon7 */
- 0x002e, 0x0507, /* decon5,maskth */
- 0x002f, 0x0000,
- 0x003A, 0x000D, /* HDTR DE CS */
- 0x003B, 0x03ff, /* DE SHARPNESS */
- 0x003C, 0x0000, /* NOISE LEVEL */
- 0x003F, 0x0110, /* CS GAIN */
- 0x0042, 0x0000, /* DE TH (MAX DIFF) */
- 0x0072, 0x0000, /* CABC Dgain */
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- /* 0x0076, 0x383d, PowerLUT 3C50 */
- /* 0x0077, 0x3442, PowerLUT 2D64 */
- /* 0x0078, 0x3835, PowerLUT 3C32 */
- /* 0x0079, 0x302d, PowerLUT 1E00 */
- /* 0x007a, 0x3500, PowerLUT 3200 */
- 0x007C, 0x0002, /* Dynamic LCD */
- /* 0x00b4, 0x5640, CABC PWM */
- 0x00c8, 0x0000, /* kb R SCR */
- 0x00c9, 0x0000, /* gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /* yw R */
- 0x00cc, 0x0000, /* kb G */
- 0x00cd, 0xffff, /* gc G */
- 0x00ce, 0x0000, /* rm G */
- 0x00cf, 0xfff5, /* yw G */
- 0x00d0, 0x00ff, /* kb B */
- 0x00d1, 0x00ff, /* gc B */
- 0x00d2, 0x00ff, /* rm B */
- 0x00d3, 0x00ff, /* yw B */
- 0x00D6, 0x2600, /* GAMMA p5_svc 2013 */
- 0x00D7, 0x2600,
- 0x00D8, 0x2600,
- 0x00D9, 0x2401,
- 0x00DA, 0x2401,
- 0x00DB, 0x2401,
- 0x00DC, 0x2401,
- 0x00DD, 0x2401,
- 0x00DE, 0x2401,
- 0x00DF, 0x2401,
- 0x00E0, 0x2401,
- 0x00E1, 0x2401,
- 0x00E2, 0x2401,
- 0x00E3, 0x2401,
- 0x00E4, 0x2401,
- 0x00E5, 0x2401,
- 0x00E6, 0x2401,
- 0x00E7, 0x2401,
- 0x00E8, 0x2401,
- 0x00E9, 0x2401,
- 0x00EA, 0x2016,
- 0x00EB, 0x1654,
- 0x00EC, 0x1179,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Register Mask */
- /* end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_std_vtcall_cabcOn[] = {
- /*start P4 standard, vtcall, cabcOn*/
- 0x0001, 0x0070, /*SCR LABC CABC*/
- 0x002c, 0x0fff, /*DNR bypass,dir_th 0x003c*/
- 0x002d, 0x19ff, /*DNR dir_num,decont7 0x0a08*/
- 0x002e, 0xff16, /*DNR decont5,mask_th 0x1010*/
- 0x002F, 0x0000, /*DNR block_th 0x0400*/
- 0x003A, 0x000D, /*HDTR DE CS*/
- 0x003B, 0x0300, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0100, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0072, 0x0000, /*CABC Dgain*/
- 0x0073, 0x0000,
- 0x0074, 0x0000,
- 0x0075, 0x0000,
- /*0x0076,0x383d, PowerLUT 3C50*/
- /*0x0077,0x3442, PowerLUT 2D64*/
- /*0x0078,0x3835, PowerLUT 3C32*/
- /*0x0079,0x302d, PowerLUT 1E00*/
- /*0x007a,0x3500, PowerLUT 3200*/
- 0x007C, 0x0002, /*Dynamic LCD*/
- /*0x00b4,0x5640, CABC PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xfff5, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00D6, 0x3f00, /*GAMMA n1sc, 2217*/
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2100,
- 0x00E9, 0xa40c,
- 0x00EA, 0xa40c,
- 0x00EB, 0x1c26,
- 0x00EC, 0x1652,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera[] = {
- /*start P4 camera*/
- 0x0001, 0x0060, /*SCR LABC*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR DE CS*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0080, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- /*0x00b4, 0x4640, Count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xFFf8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00D6, 0x2000, /*GAMMA 2.2*/
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0x2000,
- 0x00EB, 0x2000,
- 0x00EC, 0x2000,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_outdoor[] = {
- /*start P4 camera, ove*/
- 0x0001, 0x0062, /*SCR LABC OVE*/
- 0x002c, 0x0fff, /*DNR bypass 0x003C*/
- 0x002d, 0x1900, /*DNR bypass 0x0a08*/
- 0x002e, 0x0000, /*DNR bypass 0x1010*/
- 0x002f, 0x0fff, /*DNR bypass 0x0400*/
- 0x003A, 0x0009, /*HDTR DE CS*/
- 0x003B, 0x0000, /*DE SHARPNESS*/
- 0x003C, 0x0000, /*NOISE LEVEL*/
- 0x003F, 0x0080, /*CS GAIN*/
- 0x0042, 0x0000, /*DE TH (MAX DIFF)*/
- 0x0054, 0x6050, /*OVE*/
- /*0x00b4, 0x4640, Count PWM*/
- 0x00c8, 0x0000, /*kb R SCR*/
- 0x00c9, 0x0000, /*gc R*/
- 0x00ca, 0xffff, /*rm R*/
- 0x00cb, 0xffff, /*yw R*/
- 0x00cc, 0x0000, /*kb G*/
- 0x00cd, 0xffff, /*gc G*/
- 0x00ce, 0x0000, /*rm G*/
- 0x00cf, 0xFFf8, /*yw G*/
- 0x00d0, 0x00ff, /*kb B*/
- 0x00d1, 0x00ff, /*gc B*/
- 0x00d2, 0x00ff, /*rm B*/
- 0x00d3, 0x00ff, /*yw B*/
- 0x00D6, 0x2000, /*GAMMA 2.2*/
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0x2000,
- 0x00EB, 0x2000,
- 0x00EC, 0x2000,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_cabcOff[] = {
- /*start P4 cold, cabcOff*/
- 0x0001, 0x0064, /*SCR LABC MCM*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor_cabcOff[] = {
- /*start P4 cold, ove, cabcOff*/
- 0x0001, 0x0066, /*SCR LABC MCM OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor_cabcOff[] = {
- /*start P4 ove, cabcOff*/
- 0x0001, 0x0062, /*SCR LABC OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_cabcOff[] = {
- /*start P4 warm, cabcOff*/
- 0x0001, 0x0064, /*SCR LABC MCM*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor_cabcOff[] = {
- /*start P4 warm, ove, cabcOff*/
- 0x0001, 0x0066, /*SCR LABC MCM OVE*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_cabcOn[] = {
- /*start P4 cold, cabcOn*/
- 0x0001, 0x0074, /*SCR LABC MCM CABC*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor_cabcOn[] = {
- /*start P4 cold, ove, cabcOn*/
- 0x0001, 0x0076, /*SCR LABC MCM OVE CABC*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0064, /*MCM 10000K*/
- 0x0063, 0x8a00, /*cb*/
- 0x0065, 0x0073, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor_cabcOn[] = {
- /*start P4 ove, cabcOn*/
- 0x0001, 0x0072, /*SCR LABC OVE CABC*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_cabcOn[] = {
- /*start P4 warm, cabcOn*/
- 0x0001, 0x0074, /*SCR LABC MCM CABC*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor_cabcOn[] = {
- /*start P4 warm, ove, cabcOn*/
- 0x0001, 0x0076, /*SCR LABC MCM OVE CABC*/
- 0x0054, 0x6050, /*OVE Lightness Chroma*/
- 0x005b, 0x0028, /*MCM 4000K*/
- 0x0061, 0x7600, /*cb*/
- 0x0063, 0x008d, /*cr*/
- 0x0028, 0x0000, /*Register Mask*/
- /*end*/
- END_SEQ, 0x0000,
-};
-
-
-struct mdnie_tunning_info etc_table[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm_cabcOff},
- {"COLD", tune_cold_cabcOff},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor_cabcOff},
- {"WARM_OUTDOOR", tune_warm_outdoor_cabcOff},
- {"COLD_OUTDOOR", tune_cold_outdoor_cabcOff},
- },
- },
- {
- {
- {"NORMAL_CABC", NULL},
- {"WARM_CABC", tune_warm_cabcOn},
- {"COLD_CABC", tune_cold_cabcOn},
- },
- {
- {"NORMAL_OUTDOOR_CABC", tune_outdoor_cabcOn},
- {"WARM_OUTDOOR_CABC", tune_warm_outdoor_cabcOn},
- {"COLD_OUTDOOR_CABC", tune_cold_outdoor_cabcOn},
- },
- },
-};
-
-struct mdnie_tunning_info_cabc tunning_table
- [CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
-{
- {
- {"DYNAMIC_UI", tune_dyn_ui_cabcOff, 0},
- {"DYNAMIC_VIDEO_NOR", tune_dyn_video_cabcOff, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM", tune_dyn_video_cabcOff, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dyn_video_cabcOff, LUT_VIDEO},
- {"CAMERA", tune_camera, 0},
- {"DYNAMIC_UI", tune_dyn_ui_cabcOff, 0},
- {"DYNAMIC_GALLERY", tune_dyn_gallery_cabcOff, 0},
- {"DYNAMIC_VT", tune_dyn_vtcall_cabcOff, 0},
- }, {
- {"STANDARD_UI", tune_std_ui_cabcOff, 0},
- {"STANDARD_VIDEO_NOR", tune_std_vid_cabcOff, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM", tune_std_vid_cabcOff, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD", tune_std_vid_cabcOff, LUT_VIDEO},
- {"CAMERA", tune_camera, 0},
- {"STANDARD_UI", tune_std_ui_cabcOff, 0},
- {"STANDARD_GALLERY", tune_std_gallery_cabcOff, 0},
- {"STANDARD_VT", tune_std_vtcall_cabcOff, 0},
- }, {
- {"MOVIE_UI", tune_mov_ui_cabcOff, 0},
- {"MOVIE_VIDEO_NOR", tune_mov_video_cabcOff, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM", tune_mov_video_cabcOff, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD", tune_mov_video_cabcOff, LUT_VIDEO},
- {"CAMERA", tune_camera, 0},
- {"MOVIE_UI", tune_mov_ui_cabcOff, 0},
- {"MOVIE_GALLERY", tune_mov_gallery_cabcOff, 0},
- {"MOVIE_VT", tune_mov_vtcall_cabcOff, 0},
- },
-},
-{
- {
- {"DYNAMIC_UI_CABC", tune_dyn_ui_cabcOn, 0},
- {"DYNAMIC_VIDEO_NOR_CABC", tune_dyn_vid_cabcOn, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM_CABC", tune_dyn_vid_cabcOn, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dyn_vid_cabcOn, LUT_VIDEO},
- {"CAMERA", tune_camera, 0},
- {"DYNAMIC_UI_CABC", tune_dyn_ui_cabcOn, 0},
- {"DYNAMIC_GALLERY_CABC", tune_dyn_gallery_cabcOn, 0},
- {"DYNAMIC_VT_CABC", tune_dyn_vtcall_cabcOn, 0},
- }, {
- {"STANDARD_UI_CABC", tune_std_ui_cabcOn, 0},
- {"STANDARD_VIDEO_NOR_CABC", tune_std_vid_cabcOn, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM_CABC", tune_std_vid_cabcOn, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD_CABC", tune_std_vid_cabcOn, LUT_VIDEO},
- {"CAMERA", tune_camera, 0},
- {"STANDARD_UI_CABC", tune_std_ui_cabcOn, 0},
- {"STANDARD_GALLERY_CABC", tune_std_gallery_cabcOn, 0},
- {"STANDARD_VT_CABC", tune_std_vtcall_cabcOn, 0},
- }, {
- {"MOVIE_UI_CABC", tune_mov_ui_cabcOn, 0},
- {"MOVIE_VIDEO_NOR_CABC", tune_mov_vid_cabcOn, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM_CABC", tune_mov_vid_cabcOn, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD_CABC", tune_mov_vid_cabcOn, LUT_VIDEO},
- {"CAMERA", tune_camera, 0},
- {"MOVIE_UI_CABC", tune_mov_ui_cabcOn, 0},
- {"MOVIE_GALLERY_CABC", tune_mov_gallery_cabcOn, 0},
- {"MOVIE_VT_CABC", tune_mov_vtcall_cabcOn, 0},
- },
-},
-};
-
-#endif /* __MDNIE_TABLE_P4_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_table_p4note.h b/drivers/video/samsung_duallcd/mdnie_table_p4note.h
deleted file mode 100644
index 10a23d7..0000000
--- a/drivers/video/samsung_duallcd/mdnie_table_p4note.h
+++ /dev/null
@@ -1,1238 +0,0 @@
-#ifndef __MDNIE_TABLE_H__
-#define __MDNIE_TABLE_H__
-
-#include "mdnie.h"
-
-
-static const unsigned char power_lut[2][9] = {
- {0x42, 0x47, 0x3E, 0x52, 0x42, 0x3F, 0x3A, 0x37, 0x3F},
- {0x38, 0x3d, 0x34, 0x48, 0x38, 0x35, 0x30, 0x2d, 0x35},
-};
-
-static const unsigned short tune_std_ui_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0000, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 | de8 hdr2 fa1*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0030, /*DE pf*/
- 0x0094, 0x0030, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0030, /*DE nf*/
- 0x0097, 0x0030, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0890, /*CC lut r 16 144*/
- 0x0022, 0x18a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_outdoor[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x04ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0030, /*DE pf*/
- 0x0094, 0x0030, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0030, /*DE nf*/
- 0x0097, 0x0030, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0890, /*CC lut r 16 144*/
- 0x0022, 0x18a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00d0, 0x01a0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_ui_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00a8, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1a04, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0894, /*CC lut r 16 144*/
- 0x0022, 0x18a6, /*CC lut r 32 160*/
- 0x0023, 0x28b8, /*CC lut r 48 176*/
- 0x0024, 0x3ac9, /*CC lut r 64 192*/
- 0x0025, 0x4cd9, /*CC lut r 80 208*/
- 0x0026, 0x5ee7, /*CC lut r 96 224*/
- 0x0027, 0x70f4, /*CC lut r 112 240*/
- 0x0028, 0x82ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_video_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0090, 0x0080, /*DE egth*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0080, /*DE pf*/
- 0x0094, 0x0080, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0080, /*DE nf*/
- 0x0097, 0x0080, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1a04, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0894, /*CC lut r 16 144*/
- 0x0022, 0x18a6, /*CC lut r 32 160*/
- 0x0023, 0x28b8, /*CC lut r 48 176*/
- 0x0024, 0x3ac9, /*CC lut r 64 192*/
- 0x0025, 0x4cd9, /*CC lut r 80 208*/
- 0x0026, 0x5ee7, /*CC lut r 96 224*/
- 0x0027, 0x70f4, /*CC lut r 112 240*/
- 0x0028, 0x82ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_gallery_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0090, 0x0080, /*DE egth*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0050, /*DE pf*/
- 0x0094, 0x0050, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0050, /*DE nf*/
- 0x0097, 0x0050, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1a04, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0894, /*CC lut r 16 144*/
- 0x0022, 0x18a6, /*CC lut r 32 160*/
- 0x0023, 0x28b8, /*CC lut r 48 176*/
- 0x0024, 0x3ac9, /*CC lut r 64 192*/
- 0x0025, 0x4cd9, /*CC lut r 80 208*/
- 0x0026, 0x5ee7, /*CC lut r 96 224*/
- 0x0027, 0x70f4, /*CC lut r 112 240*/
- 0x0028, 0x82ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_vt_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0088, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1c04, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0a88, /*CC lut r 16 144*/
- 0x0022, 0x1499, /*CC lut r 32 160*/
- 0x0023, 0x1eaa, /*CC lut r 48 176*/
- 0x0024, 0x30bb, /*CC lut r 64 192*/
- 0x0025, 0x42cc, /*CC lut r 80 208*/
- 0x0026, 0x54dd, /*CC lut r 96 224*/
- 0x0027, 0x66ee, /*CC lut r 112 240*/
- 0x0028, 0x77ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_ui_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00a8, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0890, /*CC lut r 16 144*/
- 0x0022, 0x18a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_video_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0090, 0x0080, /*DE egth*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0890, /*CC lut r 16 144*/
- 0x0022, 0x18a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_gallery_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0090, 0x0080, /*DE egth*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0030, /*DE pf*/
- 0x0094, 0x0030, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0030, /*DE nf*/
- 0x0097, 0x0030, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0890, /*CC lut r 16 144*/
- 0x0022, 0x18a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_vt_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0088, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1c04, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0a88, /*CC lut r 16 144*/
- 0x0022, 0x1499, /*CC lut r 32 160*/
- 0x0023, 0x1eaa, /*CC lut r 48 176*/
- 0x0024, 0x30bb, /*CC lut r 64 192*/
- 0x0025, 0x42cc, /*CC lut r 80 208*/
- 0x0026, 0x54dd, /*CC lut r 96 224*/
- 0x0027, 0x66ee, /*CC lut r 112 240*/
- 0x0028, 0x77ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_ui_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00a0, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fb, /*SCR KgWg*/
- 0x00ec, 0x00ec, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0890, /*CC lut r 16 144*/
- 0x0022, 0x18a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_video_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00a0, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0000, /*DE pe*/
- 0x0093, 0x0000, /*DE pf*/
- 0x0094, 0x0000, /*DE pb*/
- 0x0095, 0x0000, /*DE ne*/
- 0x0096, 0x0000, /*DE nf*/
- 0x0097, 0x0000, /*DE nb*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1004, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fb, /*SCR KgWg*/
- 0x00ec, 0x00ec, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0890, /*CC lut r 16 144*/
- 0x0022, 0x18a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_gallery_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00a0, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fb, /*SCR KgWg*/
- 0x00ec, 0x00ec, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0890, /*CC lut r 16 144*/
- 0x0022, 0x18a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_vt_cabcOff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0088, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1c04, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0a88, /*CC lut r 16 144*/
- 0x0022, 0x1499, /*CC lut r 32 160*/
- 0x0023, 0x1eaa, /*CC lut r 48 176*/
- 0x0024, 0x30bb, /*CC lut r 64 192*/
- 0x0025, 0x42cc, /*CC lut r 80 208*/
- 0x0026, 0x54dd, /*CC lut r 96 224*/
- 0x0027, 0x66ee, /*CC lut r 112 240*/
- 0x0028, 0x77ff, /*CC lut r 128 255*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_ui_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x02a8, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1a04, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0c98, /*CC lut r 16 144*/
- 0x0022, 0x1caa, /*CC lut r 32 160*/
- 0x0023, 0x2cbc, /*CC lut r 48 176*/
- 0x0024, 0x3ecd, /*CC lut r 64 192*/
- 0x0025, 0x50dc, /*CC lut r 80 208*/
- 0x0026, 0x62e9, /*CC lut r 96 224*/
- 0x0027, 0x74f5, /*CC lut r 112 240*/
- 0x0028, 0x86ff, /*CC lut r 128 255*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_video_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x02ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0090, 0x0080, /*DE egth*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0080, /*DE pf*/
- 0x0094, 0x0080, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0080, /*DE nf*/
- 0x0097, 0x0080, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1a04, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0c98, /*CC lut r 16 144*/
- 0x0022, 0x1caa, /*CC lut r 32 160*/
- 0x0023, 0x2cbc, /*CC lut r 48 176*/
- 0x0024, 0x3ecd, /*CC lut r 64 192*/
- 0x0025, 0x50dc, /*CC lut r 80 208*/
- 0x0026, 0x62e9, /*CC lut r 96 224*/
- 0x0027, 0x74f5, /*CC lut r 112 240*/
- 0x0028, 0x86ff, /*CC lut r 128 255*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_gallery_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x028c, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0090, 0x0080, /*DE egth*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0050, /*DE pf*/
- 0x0094, 0x0050, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0050, /*DE nf*/
- 0x0097, 0x0050, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1a04, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0c98, /*CC lut r 16 144*/
- 0x0022, 0x1caa, /*CC lut r 32 160*/
- 0x0023, 0x2cbc, /*CC lut r 48 176*/
- 0x0024, 0x3ecd, /*CC lut r 64 192*/
- 0x0025, 0x50dc, /*CC lut r 80 208*/
- 0x0026, 0x62e9, /*CC lut r 96 224*/
- 0x0027, 0x74f5, /*CC lut r 112 240*/
- 0x0028, 0x86ff, /*CC lut r 128 255*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_vt_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0288, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0090, 0x0080, /*DE egth*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0080, /*DE pf*/
- 0x0094, 0x0080, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0080, /*DE nf*/
- 0x0097, 0x0080, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1c04, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x1090, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_ui_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x02a8, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0c96, /*CC lut r 16 144*/
- 0x0022, 0x1ca7, /*CC lut r 32 160*/
- 0x0023, 0x34b8, /*CC lut r 48 176*/
- 0x0024, 0x44c9, /*CC lut r 64 192*/
- 0x0025, 0x54d9, /*CC lut r 80 208*/
- 0x0026, 0x64e7, /*CC lut r 96 224*/
- 0x0027, 0x74f4, /*CC lut r 112 240*/
- 0x0028, 0x85ff, /*CC lut r 128 255*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_video_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x02ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0090, 0x0080, /*DE egth*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0060, /*DE pf*/
- 0x0094, 0x0060, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0060, /*DE nf*/
- 0x0097, 0x0060, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0c96, /*CC lut r 16 144*/
- 0x0022, 0x1ca7, /*CC lut r 32 160*/
- 0x0023, 0x34b8, /*CC lut r 48 176*/
- 0x0024, 0x44c9, /*CC lut r 64 192*/
- 0x0025, 0x54d9, /*CC lut r 80 208*/
- 0x0026, 0x64e7, /*CC lut r 96 224*/
- 0x0027, 0x74f4, /*CC lut r 112 240*/
- 0x0028, 0x85ff, /*CC lut r 128 255*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_gallery_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x02ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0090, 0x0080, /*DE egth*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0030, /*DE pf*/
- 0x0094, 0x0030, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0030, /*DE nf*/
- 0x0097, 0x0030, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1804, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00ff, /*SCR KgWg*/
- 0x00ec, 0x00f8, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0c96, /*CC lut r 16 144*/
- 0x0022, 0x1ca7, /*CC lut r 32 160*/
- 0x0023, 0x34b8, /*CC lut r 48 176*/
- 0x0024, 0x44c9, /*CC lut r 64 192*/
- 0x0025, 0x54d9, /*CC lut r 80 208*/
- 0x0026, 0x64e7, /*CC lut r 96 224*/
- 0x0027, 0x74f4, /*CC lut r 112 240*/
- 0x0028, 0x85ff, /*CC lut r 128 255*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_vt_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0288, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0090, 0x0080, /*DE egth*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0080, /*DE pf*/
- 0x0094, 0x0080, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0080, /*DE nf*/
- 0x0097, 0x0080, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1c04, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x1090, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_ui_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x02a0, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fb, /*SCR KgWg*/
- 0x00ec, 0x00ec, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0c96, /*CC lut r 16 144*/
- 0x0022, 0x1ca7, /*CC lut r 32 160*/
- 0x0023, 0x34b8, /*CC lut r 48 176*/
- 0x0024, 0x44c9, /*CC lut r 64 192*/
- 0x0025, 0x54d9, /*CC lut r 80 208*/
- 0x0026, 0x64e7, /*CC lut r 96 224*/
- 0x0027, 0x74f4, /*CC lut r 112 240*/
- 0x0028, 0x85ff, /*CC lut r 128 255*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_video_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x02a0, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0092, 0x0000, /*DE pe*/
- 0x0093, 0x0000, /*DE pf*/
- 0x0094, 0x0000, /*DE pb*/
- 0x0095, 0x0000, /*DE ne*/
- 0x0096, 0x0000, /*DE nf*/
- 0x0097, 0x0000, /*DE nb*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1004, /*CS weight grayTH*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fb, /*SCR KgWg*/
- 0x00ec, 0x00ec, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0c96, /*CC lut r 16 144*/
- 0x0022, 0x1ca7, /*CC lut r 32 160*/
- 0x0023, 0x34b8, /*CC lut r 48 176*/
- 0x0024, 0x44c9, /*CC lut r 64 192*/
- 0x0025, 0x54d9, /*CC lut r 80 208*/
- 0x0026, 0x64e7, /*CC lut r 96 224*/
- 0x0027, 0x74f4, /*CC lut r 112 240*/
- 0x0028, 0x85ff, /*CC lut r 128 255*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_gallery_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x02a0, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x00e1, 0xff00, /*SCR RrCr*/
- 0x00e2, 0x00ff, /*SCR RgCg*/
- 0x00e3, 0x00ff, /*SCR RbCb*/
- 0x00e4, 0x00ff, /*SCR GrMr*/
- 0x00e5, 0xff00, /*SCR GgMg*/
- 0x00e6, 0x00ff, /*SCR GbMb*/
- 0x00e7, 0x00ff, /*SCR BrYr*/
- 0x00e8, 0x00ff, /*SCR BgYg*/
- 0x00e9, 0xff00, /*SCR BbYb*/
- 0x00ea, 0x00ff, /*SCR KrWr*/
- 0x00eb, 0x00fb, /*SCR KgWg*/
- 0x00ec, 0x00ec, /*SCR KbWb*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x0c96, /*CC lut r 16 144*/
- 0x0022, 0x1ca7, /*CC lut r 32 160*/
- 0x0023, 0x34b8, /*CC lut r 48 176*/
- 0x0024, 0x44c9, /*CC lut r 64 192*/
- 0x0025, 0x54d9, /*CC lut r 80 208*/
- 0x0026, 0x64e7, /*CC lut r 96 224*/
- 0x0027, 0x74f4, /*CC lut r 112 240*/
- 0x0028, 0x85ff, /*CC lut r 128 255*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_vt_cabcOn[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x0288, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0030, 0x0000, /*FA cs1 de8 hdr2 fa1*/
- 0x0090, 0x0080, /*DE egth*/
- 0x0092, 0x0030, /*DE pe*/
- 0x0093, 0x0080, /*DE pf*/
- 0x0094, 0x0080, /*DE pb*/
- 0x0095, 0x0030, /*DE ne*/
- 0x0096, 0x0080, /*DE nf*/
- 0x0097, 0x0080, /*DE nb*/
- 0x0098, 0x1000, /*DE max ratio*/
- 0x0099, 0x0100, /*DE min ratio*/
- 0x00b0, 0x1010, /*CS hg ry*/
- 0x00b1, 0x1010, /*CS hg gc*/
- 0x00b2, 0x1010, /*CS hg bm*/
- 0x00b3, 0x1c04, /*CS weight grayTH*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x001f, 0x0080, /*CC chsel strength*/
- 0x0020, 0x0000, /*CC lut r 0*/
- 0x0021, 0x1090, /*CC lut r 16 144*/
- 0x0022, 0x20a0, /*CC lut r 32 160*/
- 0x0023, 0x30b0, /*CC lut r 48 176*/
- 0x0024, 0x40c0, /*CC lut r 64 192*/
- 0x0025, 0x50d0, /*CC lut r 80 208*/
- 0x0026, 0x60e0, /*CC lut r 96 224*/
- 0x0027, 0x70f0, /*CC lut r 112 240*/
- 0x0028, 0x80ff, /*CC lut r 128 255*/
- 0x0075, 0x0000, /*CABC dgain*/
- 0x0076, 0x0000,
- 0x0077, 0x0000,
- 0x0078, 0x0000,
- 0x007f, 0x0002, /*dynamic lcd*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_cabcoff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0028, /*MCM 4000K*/
- 0x0007, 0x7575, /*MCM 1cb 2cb W*/
- 0x0009, 0xa08e, /*MCM 5cb 1cr W*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_cabcoff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0064, /*MCM 10000K*/
- 0x0009, 0xa08e, /*MCM 5cb 1cr W*/
- 0x000b, 0x7979, /*MCM 4cr 5cr W*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor_cabcoff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x04ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x00d0, 0x01a0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor_cabcoff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x04ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0028, /*MCM 4000K*/
- 0x0007, 0x7575, /*MCM 1cb 2cb W*/
- 0x0009, 0xa08e, /*MCM 5cb 1cr W*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor_cabcoff[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x00ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0064, /*MCM 10000K*/
- 0x0009, 0xa08e, /*MCM 5cb 1cr W*/
- 0x000b, 0x7979, /*MCM 4cr 5cr W*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-
-static const unsigned short tune_warm_cabcon[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x02ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0028, /*MCM 4000K*/
- 0x0007, 0x7575, /*MCM 1cb 2cb W*/
- 0x0009, 0xa08e, /*MCM 5cb 1cr W*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_cabcon[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x02ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0064, /*MCM 10000K*/
- 0x0009, 0xa08e, /*MCM 5cb 1cr W*/
- 0x000b, 0x7979, /*MCM 4cr 5cr W*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor_cabcon[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x06ac, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x00d0, 0x01a0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor_cabcon[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x06ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0028, /*MCM 4000K*/
- 0x0007, 0x7575, /*MCM 1cb 2cb W*/
- 0x0009, 0xa08e, /*MCM 5cb 1cr W*/
- 0x00d0, 0x01c0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor_cabcon[] = {
- 0x0000, 0x0000, /*BANK 0*/
- 0x0008, 0x06ec, /*Dither8 UC4 ABC2 CP1 | CC8 MCM4 SCR2 SCC1 | CS8 DE4 DNR2 HDR1*/
- 0x0000, 0x0001, /*BANK 1*/
- 0x0001, 0x0064, /*MCM 10000K*/
- 0x0009, 0xa08e, /*MCM 5cb 1cr W*/
- 0x000b, 0x7979, /*MCM 4cr 5cr W*/
- 0x00d0, 0x01a0, /*UC y*/
- 0x00d1, 0x01ff, /*UC cs*/
- 0x00ff, 0x0000, /*Mask Release*/
- END_SEQ, 0x0000,
-};
-
-
-struct mdnie_tunning_info etc_table[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm_cabcoff},
- {"COLD", tune_cold_cabcoff},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor_cabcoff},
- {"WARM_OUTDOOR", tune_warm_outdoor_cabcoff},
- {"COLD_OUTDOOR", tune_cold_outdoor_cabcoff},
- },
- },
- {
- {
- {"NORMAL_CABC", NULL},
- {"WARM_CABC", tune_warm_cabcon},
- {"COLD_CABC", tune_cold_cabcon},
- },
- {
- {"NORMAL_OUTDOOR_CABC", tune_outdoor_cabcon},
- {"WARM_OUTDOOR_CABC", tune_warm_outdoor_cabcon},
- {"COLD_OUTDOOR_CABC", tune_cold_outdoor_cabcon},
- },
- },
-};
-
-
-struct mdnie_tunning_info_cabc tunning_table[CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
-{
- {
- {"DYNAMIC_UI", tune_dynamic_ui_cabcOff, 0},
- {"DYNAMIC_VIDEO_NOR", tune_dynamic_video_cabcOff, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM", tune_dynamic_video_cabcOff, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video_cabcOff, LUT_VIDEO},
- {"CAMERA", tune_camera, 0},
- {"DYNAMIC_UI", tune_dynamic_ui_cabcOff, 0},
- {"DYNAMIC_GALLERY", tune_dynamic_gallery_cabcOff, 0},
- {"DYNAMIC_VT", tune_dynamic_vt_cabcOff, 0},
- }, {
- {"STANDARD_UI", tune_standard_ui_cabcOff, 0},
- {"STANDARD_VIDEO_NOR", tune_standard_video_cabcOff, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM", tune_standard_video_cabcOff, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD", tune_standard_video_cabcOff, LUT_VIDEO},
- {"CAMERA", tune_camera, 0},
- {"STANDARD_UI", tune_standard_ui_cabcOff, 0},
- {"STANDARD_GALLERY", tune_standard_gallery_cabcOff, 0},
- {"STANDARD_VT", tune_standard_vt_cabcOff, 0},
- }, {
- {"MOVIE_UI", tune_movie_ui_cabcOff, 0},
- {"MOVIE_VIDEO_NOR", tune_movie_video_cabcOff, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM", tune_movie_video_cabcOff, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD", tune_movie_video_cabcOff, LUT_VIDEO},
- {"CAMERA", tune_camera, 0},
- {"MOVIE_UI", tune_movie_ui_cabcOff, 0},
- {"MOVIE_GALLERY", tune_movie_gallery_cabcOff, 0},
- {"MOVIE_VT", tune_movie_vt_cabcOff, 0},
- },
-},
-{
- {
- {"DYNAMIC_UI_CABC", tune_dynamic_ui_cabcOn, 0},
- {"DYNAMIC_VIDEO_NOR_CABC", tune_dynamic_video_cabcOn, LUT_VIDEO},
- {"DYNAMIC_VIDEO_WARM_CABC", tune_dynamic_video_cabcOn, LUT_VIDEO},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video_cabcOn, LUT_VIDEO},
- {"CAMERA", tune_camera, 0},
- {"DYNAMIC_UI_CABC", tune_dynamic_ui_cabcOn, 0},
- {"DYNAMIC_GALLERY_CABC", tune_dynamic_gallery_cabcOn, 0},
- {"DYNAMIC_VT_CABC", tune_dynamic_vt_cabcOn, 0},
- }, {
- {"STANDARD_UI_CABC", tune_standard_ui_cabcOn, 0},
- {"STANDARD_VIDEO_NOR_CABC", tune_standard_video_cabcOn, LUT_VIDEO},
- {"STANDARD_VIDEO_WARM_CABC", tune_standard_video_cabcOn, LUT_VIDEO},
- {"STANDARD_VIDEO_COLD_CABC", tune_standard_video_cabcOn, LUT_VIDEO},
- {"CAMERA", tune_camera, 0},
- {"STANDARD_UI_CABC", tune_standard_ui_cabcOn, 0},
- {"STANDARD_GALLERY_CABC", tune_standard_gallery_cabcOn, 0},
- {"STANDARD_VT_CABC", tune_standard_vt_cabcOn, 0},
- }, {
- {"MOVIE_UI_CABC", tune_movie_ui_cabcOn, 0},
- {"MOVIE_VIDEO_NOR_CABC", tune_movie_video_cabcOn, LUT_VIDEO},
- {"MOVIE_VIDEO_WARM_CABC", tune_movie_video_cabcOn, LUT_VIDEO},
- {"MOVIE_VIDEO_COLD_CABC", tune_movie_video_cabcOn, LUT_VIDEO},
- {"CAMERA", tune_camera, 0},
- {"MOVIE_UI_CABC", tune_movie_ui_cabcOn, 0},
- {"MOVIE_GALLERY_CABC", tune_movie_gallery_cabcOn, 0},
- {"MOVIE_VT_CABC", tune_movie_vt_cabcOn, 0},
- },
-},
-};
-
-#endif /* __MDNIE_TABLE_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_table_p8.h b/drivers/video/samsung_duallcd/mdnie_table_p8.h
deleted file mode 100644
index e368c77..0000000
--- a/drivers/video/samsung_duallcd/mdnie_table_p8.h
+++ /dev/null
@@ -1,1092 +0,0 @@
-#ifndef __MDNIE_TABLE_H__
-#define __MDNIE_TABLE_H__
-
-#include "mdnie.h"
-
-
-static const unsigned short tune_dynamic_gallery[] = {
- /*start P8, dynamic, gallery */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x03FF, /*DE SHARPNESS ## */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x00a0, /*CS GAIN ## */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0x0000, /*gc R */
- 0x00CA, 0xFFFF, /*rm R */
- 0x00CB, 0xFFFF, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xFFFF, /*gc G */
- 0x00CE, 0x0000, /*rm G */
- 0x00CF, 0xFFFF, /*yw G */
- 0x00D0, 0x00FF, /*kb B */
- 0x00D1, 0x00FF, /*gc B */
- 0x00D2, 0x00FF, /*rm B */
- 0x00D3, 0x00FF, /*yw B */
- 0x00D6, 0x1d00, /*GAMMA ## */
- 0x00D7, 0x1d00,
- 0x00D8, 0x1d00,
- 0x00D9, 0x1d00,
- 0x00DA, 0x1d00,
- 0x00DB, 0x1d00,
- 0x00DC, 0x1d00,
- 0x00DD, 0x1d00,
- 0x00DE, 0x1d00,
- 0x00DF, 0x1d00,
- 0x00E0, 0x1d00,
- 0x00E1, 0x1d00,
- 0x00E2, 0x1d00,
- 0x00E3, 0x1d00,
- 0x00E4, 0x1d00,
- 0x00E5, 0xa40e,
- 0x00E6, 0xa40e,
- 0x00E7, 0xa40e,
- 0x00E8, 0xa819,
- 0x00E9, 0xa40a,
- 0x00EA, 0x2200,
- 0x00EB, 0x1c25,
- 0x00EC, 0x1842,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_ui[] = {
- /*start P8, dynamic, ui */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x0000, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x00a0, /*CS GAIN ## */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0x0000, /*gc R */
- 0x00CA, 0xFFFF, /*rm R */
- 0x00CB, 0xFFFF, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xFFFF, /*gc G */
- 0x00CE, 0x0000, /*rm G */
- 0x00CF, 0xFFFF, /*yw G */
- 0x00D0, 0x00FF, /*kb B */
- 0x00D1, 0x00FF, /*gc B */
- 0x00D2, 0x00FF, /*rm B */
- 0x00D3, 0x00FF, /*yw B */
- 0x00D6, 0x1d00, /*GAMMA ## */
- 0x00D7, 0x1d00,
- 0x00D8, 0x1d00,
- 0x00D9, 0x1d00,
- 0x00DA, 0x1d00,
- 0x00DB, 0x1d00,
- 0x00DC, 0x1d00,
- 0x00DD, 0x1d00,
- 0x00DE, 0x1d00,
- 0x00DF, 0x1d00,
- 0x00E0, 0x1d00,
- 0x00E1, 0x1d00,
- 0x00E2, 0x1d00,
- 0x00E3, 0x1d00,
- 0x00E4, 0x1d00,
- 0x00E5, 0xa40e,
- 0x00E6, 0xa40e,
- 0x00E7, 0xa40e,
- 0x00E8, 0xa819,
- 0x00E9, 0xa40a,
- 0x00EA, 0x2200,
- 0x00EB, 0x1c25,
- 0x00EC, 0x1842,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_video[] = {
- /*start P8, dynamic, video */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x03FF, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x00a0, /*CS GAIN ## */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0x0000, /*gc R */
- 0x00CA, 0xFFFF, /*rm R */
- 0x00CB, 0xFFFF, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xFFFF, /*gc G */
- 0x00CE, 0x0000, /*rm G */
- 0x00CF, 0xFFFF, /*yw G */
- 0x00D0, 0x00FF, /*kb B */
- 0x00D1, 0x00FF, /*gc B */
- 0x00D2, 0x00FF, /*rm B */
- 0x00D3, 0x00FF, /*yw B */
- 0x00D6, 0x1d00, /*GAMMA ## */
- 0x00D7, 0x1d00,
- 0x00D8, 0x1d00,
- 0x00D9, 0x1d00,
- 0x00DA, 0x1d00,
- 0x00DB, 0x1d00,
- 0x00DC, 0x1d00,
- 0x00DD, 0x1d00,
- 0x00DE, 0x1d00,
- 0x00DF, 0x1d00,
- 0x00E0, 0x1d00,
- 0x00E1, 0x1d00,
- 0x00E2, 0x1d00,
- 0x00E3, 0x1d00,
- 0x00E4, 0x1d00,
- 0x00E5, 0xa40e,
- 0x00E6, 0xa40e,
- 0x00E7, 0xa40e,
- 0x00E8, 0xa819,
- 0x00E9, 0xa40a,
- 0x00EA, 0x2200,
- 0x00EB, 0x1c25,
- 0x00EC, 0x1842,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_vtcall[] = {
- /*start P8, dynamic, vtcall */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass, dir_th 0x003c */
- 0x002d, 0x19ff, /*DNR dir_num, decont7 0x0a08 */
- 0x002e, 0xff16, /*DNR decont5, mask_th 0x1010 */
- 0x002F, 0x0000, /*DNR block_th 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x03FF, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x00a0, /*CS GAIN ## */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0x0000, /*gc R */
- 0x00CA, 0xFFFF, /*rm R */
- 0x00CB, 0xFFFF, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xFFFF, /*gc G */
- 0x00CE, 0x0000, /*rm G */
- 0x00CF, 0xFFFF, /*yw G */
- 0x00D0, 0x00FF, /*kb B */
- 0x00D1, 0x00FF, /*gc B */
- 0x00D2, 0x00FF, /*rm B */
- 0x00D3, 0x00FF, /*yw B */
- 0x00D6, 0x1d00, /*GAMMA ## */
- 0x00D7, 0x1d00,
- 0x00D8, 0x1d00,
- 0x00D9, 0x1d00,
- 0x00DA, 0x1d00,
- 0x00DB, 0x1d00,
- 0x00DC, 0x1d00,
- 0x00DD, 0x1d00,
- 0x00DE, 0x1d00,
- 0x00DF, 0x1d00,
- 0x00E0, 0x1d00,
- 0x00E1, 0x1d00,
- 0x00E2, 0x1d00,
- 0x00E3, 0x1d00,
- 0x00E4, 0x1d00,
- 0x00E5, 0xa40e,
- 0x00E6, 0xa40e,
- 0x00E7, 0xa40e,
- 0x00E8, 0xa819,
- 0x00E9, 0xa40a,
- 0x00EA, 0x2200,
- 0x00EB, 0x1c25,
- 0x00EC, 0x1842,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_gallery[] = {
- /*start P8, movie, gallery */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x0009, /*HDTR CS ## */
- 0x003B, 0x0300, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0038, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0xa5af, /*gc R */
- 0x00CA, 0xd5fe, /*rm R */
- 0x00CB, 0xffff, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xffff, /*gc G */
- 0x00CE, 0x374d, /*rm G */
- 0x00CF, 0xf7f8, /*yw G */
- 0x00D0, 0x00ff, /*kb B */
- 0x00D1, 0x63fb, /*gc B */
- 0x00D2, 0x30ff, /*rm B */
- 0x00D3, 0x69f0, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_ui[] = {
- /*start P8, movie, ui */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x0009, /*HDTR CS ## */
- 0x003B, 0x0000, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0038, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0xa5af, /*gc R */
- 0x00CA, 0xd5fe, /*rm R */
- 0x00CB, 0xffff, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xffff, /*gc G */
- 0x00CE, 0x374d, /*rm G */
- 0x00CF, 0xf7f8, /*yw G */
- 0x00D0, 0x00ff, /*kb B */
- 0x00D1, 0x63fb, /*gc B */
- 0x00D2, 0x30ff, /*rm B */
- 0x00D3, 0x69f0, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_video[] = {
- /*start P8, movie, video */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x0009, /*HDTR CS ## */
- 0x003B, 0x03FF, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0038, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0xa5af, /*gc R */
- 0x00CA, 0xd5fe, /*rm R */
- 0x00CB, 0xffff, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xffff, /*gc G */
- 0x00CE, 0x374d, /*rm G */
- 0x00CF, 0xf7f8, /*yw G */
- 0x00D0, 0x00ff, /*kb B */
- 0x00D1, 0x63fb, /*gc B */
- 0x00D2, 0x30ff, /*rm B */
- 0x00D3, 0x69f0, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_vtcall[] = {
- /*start P8, movie, vtcall */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass, dir_th 0x003c */
- 0x002d, 0x19ff, /*DNR dir_num, decont7 0x0a08 */
- 0x002e, 0xff16, /*DNR decont5, mask_th 0x1010 */
- 0x002F, 0x0000, /*DNR block_th 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x0030, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0038, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0xa5af, /*gc R */
- 0x00CA, 0xd5fe, /*rm R */
- 0x00CB, 0xffff, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xffff, /*gc G */
- 0x00CE, 0x374d, /*rm G */
- 0x00CF, 0xf7f8, /*yw G */
- 0x00D0, 0x00ff, /*kb B */
- 0x00D1, 0x63fb, /*gc B */
- 0x00D2, 0x30ff, /*rm B */
- 0x00D3, 0x69f0, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_gallery[] = {
- /*start P8, standard, gallery */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x0300, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0038, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0x0000, /*gc R */
- 0x00CA, 0xFFFF, /*rm R */
- 0x00CB, 0xFFFF, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xFFFF, /*gc G */
- 0x00CE, 0x0000, /*rm G */
- 0x00CF, 0xFFFF, /*yw G */
- 0x00D0, 0x00FF, /*kb B */
- 0x00D1, 0x00FF, /*gc B */
- 0x00D2, 0x00FF, /*rm B */
- 0x00D3, 0x00FF, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_ui[] = {
- /*start P8, standard, ui */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x0000, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0038, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0x0000, /*gc R */
- 0x00CA, 0xFFFF, /*rm R */
- 0x00CB, 0xFFFF, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xFFFF, /*gc G */
- 0x00CE, 0x0000, /*rm G */
- 0x00CF, 0xFFFF, /*yw G */
- 0x00D0, 0x00FF, /*kb B */
- 0x00D1, 0x00FF, /*gc B */
- 0x00D2, 0x00FF, /*rm B */
- 0x00D3, 0x00FF, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_video[] = {
- /*start P8, standard, video */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x03FF, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0038, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0x0000, /*gc R */
- 0x00CA, 0xFFFF, /*rm R */
- 0x00CB, 0xFFFF, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xFFFF, /*gc G */
- 0x00CE, 0x0000, /*rm G */
- 0x00CF, 0xFFFF, /*yw G */
- 0x00D0, 0x00FF, /*kb B */
- 0x00D1, 0x00FF, /*gc B */
- 0x00D2, 0x00FF, /*rm B */
- 0x00D3, 0x00FF, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_vtcall[] = {
- /*start P8, standard, vtcall */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass, dir_th 0x003c */
- 0x002d, 0x19ff, /*DNR dir_num, decont7 0x0a08 */
- 0x002e, 0xff16, /*DNR decont5, mask_th 0x1010 */
- 0x002F, 0x0000, /*DNR block_th 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x03FF, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0038, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0x0000, /*gc R */
- 0x00CA, 0xFFFF, /*rm R */
- 0x00CB, 0xFFFF, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xFFFF, /*gc G */
- 0x00CE, 0x0000, /*rm G */
- 0x00CF, 0xFFFF, /*yw G */
- 0x00D0, 0x00FF, /*kb B */
- 0x00D1, 0x00FF, /*gc B */
- 0x00D2, 0x00FF, /*rm B */
- 0x00D3, 0x00FF, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_gallery[] = {
- /*start P8, natural, gallery */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x0300, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0180, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0xa5af, /*gc R */
- 0x00CA, 0xd5fe, /*rm R */
- 0x00CB, 0xffff, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xffff, /*gc G */
- 0x00CE, 0x374d, /*rm G */
- 0x00CF, 0xf7fa, /*yw G */
- 0x00D0, 0x00ff, /*kb B */
- 0x00D1, 0x63fb, /*gc B */
- 0x00D2, 0x30ff, /*rm B */
- 0x00D3, 0x69f8, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_ui[] = {
- /*start P8, natural, ui */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x0000, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0180, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0xa5af, /*gc R */
- 0x00CA, 0xd5fe, /*rm R */
- 0x00CB, 0xffff, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xffff, /*gc G */
- 0x00CE, 0x374d, /*rm G */
- 0x00CF, 0xf7fa, /*yw G */
- 0x00D0, 0x00ff, /*kb B */
- 0x00D1, 0x63fb, /*gc B */
- 0x00D2, 0x30ff, /*rm B */
- 0x00D3, 0x69f8, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_video[] = {
- /*start P8, natural, video */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x03FF, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0180, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0xa5af, /*gc R */
- 0x00CA, 0xd5fe, /*rm R */
- 0x00CB, 0xffff, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xffff, /*gc G */
- 0x00CE, 0x374d, /*rm G */
- 0x00CF, 0xf7fa, /*yw G */
- 0x00D0, 0x00ff, /*kb B */
- 0x00D1, 0x63fb, /*gc B */
- 0x00D2, 0x30ff, /*rm B */
- 0x00D3, 0x69f8, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_vtcall[] = {
- /*start P8, natural, vtcall */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass, dir_th 0x003c */
- 0x002d, 0x19ff, /*DNR dir_num, decont7 0x0a08 */
- 0x002e, 0xff16, /*DNR decont5, mask_th 0x1010 */
- 0x002F, 0x0000, /*DNR block_th 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x03FF, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0180, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0xa5af, /*gc R */
- 0x00CA, 0xd5fe, /*rm R */
- 0x00CB, 0xffff, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xffff, /*gc G */
- 0x00CE, 0x374d, /*rm G */
- 0x00CF, 0xf7fa, /*yw G */
- 0x00D0, 0x00ff, /*kb B */
- 0x00D1, 0x63fb, /*gc B */
- 0x00D2, 0x30ff, /*rm B */
- 0x00D3, 0x69f8, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera[] = {
- /*start P8, camera */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x0000, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0028, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0x0000, /*gc R */
- 0x00CA, 0xFFFF, /*rm R */
- 0x00CB, 0xFFFF, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xFFFF, /*gc G */
- 0x00CE, 0x0000, /*rm G */
- 0x00CF, 0xFFFF, /*yw G */
- 0x00D0, 0x00FF, /*kb B */
- 0x00D1, 0x00FF, /*gc B */
- 0x00D2, 0x00FF, /*rm B */
- 0x00D3, 0x00FF, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_outdoor[] = {
- /*start P8, camera, outdoor */
- 0x0001, 0x0042, /*SCR HDTR OVE */
- 0x002C, 0x0FFF, /*DNR bypass 0x003C */
- 0x002D, 0x1900, /*DNR bypass 0x0a08 */
- 0x002E, 0x0000, /*DNR bypass 0x1010 */
- 0x002F, 0x0FFF, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x0000, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0028, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x0054, 0x6050, /*OVE Lightness Chroma */
- 0x00C8, 0x0000, /*kb R SCR */
- 0x00C9, 0x0000, /*gc R */
- 0x00CA, 0xFFFF, /*rm R */
- 0x00CB, 0xFFFF, /*yw R */
- 0x00CC, 0x0000, /*kb G */
- 0x00CD, 0xFFFF, /*gc G */
- 0x00CE, 0x0000, /*rm G */
- 0x00CF, 0xFFFF, /*yw G */
- 0x00D0, 0x00FF, /*kb B */
- 0x00D1, 0x00FF, /*gc B */
- 0x00D2, 0x00FF, /*rm B */
- 0x00D3, 0x00FF, /*yw B */
- 0x00D6, 0x3F00, /*GAMMA */
- 0x00D7, 0x2003,
- 0x00D8, 0x2003,
- 0x00D9, 0x2003,
- 0x00DA, 0x2003,
- 0x00DB, 0x2003,
- 0x00DC, 0x2003,
- 0x00DD, 0x2003,
- 0x00DE, 0x2003,
- 0x00DF, 0x2003,
- 0x00E0, 0x2003,
- 0x00E1, 0x2003,
- 0x00E2, 0x2003,
- 0x00E3, 0x2003,
- 0x00E4, 0x2003,
- 0x00E5, 0x2003,
- 0x00E6, 0x2003,
- 0x00E7, 0x2003,
- 0x00E8, 0x2003,
- 0x00E9, 0x2003,
- 0x00EA, 0x2003,
- 0x00EB, 0x2003,
- 0x00EC, 0x2003,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001,
- 0x0028, 0x0000, /* Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold[] = {
- /*start P8 cold */
- 0x0001, 0x0044, /*SCR MCM */
- 0x005b, 0x0064, /*MCM 10000K */
- 0x0063, 0x8a00, /*cb */
- 0x0065, 0x0073, /*cr */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor[] = {
- /*start P8 cold, outdoor */
- 0x0001, 0x0046, /*SCR MCM OVE */
- 0x0054, 0x6050, /*OVE Lightness Chroma */
- 0x005b, 0x0064, /*MCM 10000K */
- 0x0063, 0x8a00, /*cb */
- 0x0065, 0x0073, /*cr */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor[] = {
- /*start P8 outdoor */
- 0x0001, 0x0042, /*SCR OVE */
- 0x0054, 0x6050, /*OVE Lightness Chroma */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm[] = {
- /*start P8 warm */
- 0x0001, 0x0044, /*SCR MCM */
- 0x005b, 0x0028, /*MCM 4000K */
- 0x0061, 0x7600, /*cb */
- 0x0063, 0x008d, /*cr */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor[] = {
- /*start P8 warm, outdoor */
- 0x0001, 0x0046, /*SCR MCM OVE */
- 0x0054, 0x6050, /*OVE Lightness Chroma */
- 0x005b, 0x0028, /*MCM 4000K */
- 0x0061, 0x7600, /*cb */
- 0x0063, 0x008d, /*cr */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-struct mdnie_tunning_info etc_table[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm},
- {"COLD", tune_cold},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor},
- {"WARM_OUTDOOR", tune_warm_outdoor},
- {"COLD_OUTDOOR", tune_cold_outdoor},
- },
- }
-};
-
-struct mdnie_tunning_info tunning_table[CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
- {
- {
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_VIDEO_NORMAL", tune_dynamic_video},
- {"DYNAMIC_VIDEO_WARM", tune_dynamic_video},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video},
- {"CAMERA", tune_camera},
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_GALLERY", tune_dynamic_gallery},
- {"DYNAMIC_VT", tune_dynamic_vtcall},
- }, {
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_VIDEO_NORMAL", tune_standard_video},
- {"STANDARD_VIDEO_WARM", tune_standard_video},
- {"STANDARD_VIDEO_COLD", tune_standard_video},
- {"CAMERA", tune_camera},
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_GALLERY", tune_standard_gallery},
- {"STANDARD_VT", tune_standard_vtcall},
- }, {
- {"NATURAL_UI", tune_natural_ui},
- {"NATURAL_VIDEO_NORMAL", tune_natural_video},
- {"NATURAL_VIDEO_WARM", tune_natural_video},
- {"NATURAL_VIDEO_COLD", tune_natural_video},
- {"CAMERA", tune_camera},
- {"NATURAL_UI", tune_natural_ui},
- {"NATURAL_GALLERY", tune_natural_gallery},
- {"NATURAL_VT", tune_natural_vtcall},
- }, {
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_VIDEO_NORMAL", tune_movie_video},
- {"MOVIE_VIDEO_WARM", tune_movie_video},
- {"MOVIE_VIDEO_COLD", tune_movie_video},
- {"CAMERA", tune_camera},
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_GALLERY", tune_movie_gallery},
- {"MOVIE_VT", tune_movie_vtcall},
- },
- }
-};
-
-#endif /* __MDNIE_TABLE_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_table_q1.h b/drivers/video/samsung_duallcd/mdnie_table_q1.h
deleted file mode 100644
index 9933a6a..0000000
--- a/drivers/video/samsung_duallcd/mdnie_table_q1.h
+++ /dev/null
@@ -1,1082 +0,0 @@
-#ifndef __MDNIE_TABLE_H__
-#define __MDNIE_TABLE_H__
-
-#include "mdnie.h"
-
-
-static const unsigned short tune_dynamic_gallery[] = {
- /*start Q1 dynamic gallery */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x03ff, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x00a0, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00d6, 0x1c00, /*GAMMA Q1d */
- 0x00d7, 0x1c00,
- 0x00d8, 0x1c00,
- 0x00d9, 0x1c00,
- 0x00da, 0x1c00,
- 0x00db, 0x1c00,
- 0x00dc, 0x1c00,
- 0x00dd, 0x1c00,
- 0x00de, 0x1c00,
- 0x00df, 0x1c00,
- 0x00e0, 0x1c00,
- 0x00e1, 0x1c00,
- 0x00e2, 0x1c00,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40d,
- 0x00e6, 0xa40d,
- 0x00e7, 0xa40d,
- 0x00e8, 0xa40d,
- 0x00e9, 0xa40d,
- 0x00ea, 0xa40d,
- 0x00eb, 0x1c25,
- 0x00ec, 0x174a,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_ui[] = {
- /*start Q1 dynamic ui */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x0030, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x00a0, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00d6, 0x1c00, /*GAMMA Q1d */
- 0x00d7, 0x1c00,
- 0x00d8, 0x1c00,
- 0x00d9, 0x1c00,
- 0x00da, 0x1c00,
- 0x00db, 0x1c00,
- 0x00dc, 0x1c00,
- 0x00dd, 0x1c00,
- 0x00de, 0x1c00,
- 0x00df, 0x1c00,
- 0x00e0, 0x1c00,
- 0x00e1, 0x1c00,
- 0x00e2, 0x1c00,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40d,
- 0x00e6, 0xa40d,
- 0x00e7, 0xa40d,
- 0x00e8, 0xa40d,
- 0x00e9, 0xa40d,
- 0x00ea, 0xa40d,
- 0x00eb, 0x1c25,
- 0x00ec, 0x174a,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_video[] = {
- /*start Q1 dynamic video */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x03ff, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x00a0, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00d6, 0x1c00, /*GAMMA Q1d */
- 0x00d7, 0x1c00,
- 0x00d8, 0x1c00,
- 0x00d9, 0x1c00,
- 0x00da, 0x1c00,
- 0x00db, 0x1c00,
- 0x00dc, 0x1c00,
- 0x00dd, 0x1c00,
- 0x00de, 0x1c00,
- 0x00df, 0x1c00,
- 0x00e0, 0x1c00,
- 0x00e1, 0x1c00,
- 0x00e2, 0x1c00,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40d,
- 0x00e6, 0xa40d,
- 0x00e7, 0xa40d,
- 0x00e8, 0xa40d,
- 0x00e9, 0xa40d,
- 0x00ea, 0xa40d,
- 0x00eb, 0x1c25,
- 0x00ec, 0x174a,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_vtcall[] = {
- /*start Q1 dynamic vtcall */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR dirTh */
- 0x002d, 0x19ff, /*DNR dirnumTh decon7Th */
- 0x002e, 0xff16, /*DNR decon5Th maskTh */
- 0x002f, 0x0000, /*DNR blTh */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x03ff, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0100, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00d6, 0x1c00, /*GAMMA Q1d */
- 0x00d7, 0x1c00,
- 0x00d8, 0x1c00,
- 0x00d9, 0x1c00,
- 0x00da, 0x1c00,
- 0x00db, 0x1c00,
- 0x00dc, 0x1c00,
- 0x00dd, 0x1c00,
- 0x00de, 0x1c00,
- 0x00df, 0x1c00,
- 0x00e0, 0x1c00,
- 0x00e1, 0x1c00,
- 0x00e2, 0x1c00,
- 0x00e3, 0xa40d,
- 0x00e4, 0xa40d,
- 0x00e5, 0xa40d,
- 0x00e6, 0xa40d,
- 0x00e7, 0xa40d,
- 0x00e8, 0xa40d,
- 0x00e9, 0xa40d,
- 0x00ea, 0xa40d,
- 0x00eb, 0x1c25,
- 0x00ec, 0x174a,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_gallery[] = {
- /*start Q1 movie gallery */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x0009, /*HDTR CS */
- 0x003f, 0x0000, /*CS GAIN */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xa4aa, /*gc R */
- 0x00ca, 0xd5fe, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xfffd, /*gc G */
- 0x00ce, 0x2c4a, /*rm G */
- 0x00cf, 0xf5f5, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x5cf0, /*gc B */
- 0x00d2, 0x2aff, /*rm B */
- 0x00d3, 0x63ee, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_ui[] = {
- /*start Q1 movie ui */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x0009, /*HDTR CS */
- 0x003f, 0x0000, /*CS GAIN */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xa4aa, /*gc R */
- 0x00ca, 0xd5fe, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xfffd, /*gc G */
- 0x00ce, 0x2c4a, /*rm G */
- 0x00cf, 0xf5f5, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x5cf0, /*gc B */
- 0x00d2, 0x2aff, /*rm B */
- 0x00d3, 0x63ee, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_video[] = {
- /*start Q1 movie video */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x0009, /*HDTR CS */
- 0x003f, 0x0000, /*CS GAIN */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xa4aa, /*gc R */
- 0x00ca, 0xd5fe, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xfffd, /*gc G */
- 0x00ce, 0x2c4a, /*rm G */
- 0x00cf, 0xf5f5, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x5cf0, /*gc B */
- 0x00d2, 0x2aff, /*rm B */
- 0x00d3, 0x63ee, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_vtcall[] = {
- /*start Q1 movie vtcall */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR dirTh */
- 0x002d, 0x19ff, /*DNR dirnumTh decon7Th */
- 0x002e, 0xff16, /*DNR decon5Th maskTh */
- 0x002f, 0x0000, /*DNR blTh */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x0000, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0030, /*CS GAIN */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xa4aa, /*gc R */
- 0x00ca, 0xd5fe, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xfffd, /*gc G */
- 0x00ce, 0x2c4a, /*rm G */
- 0x00cf, 0xf5f5, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x5cf0, /*gc B */
- 0x00d2, 0x2aff, /*rm B */
- 0x00d3, 0x63ee, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_gallery[] = {
- /*start Q1 standard gallery */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x0300, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0030, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_ui[] = {
- /*start Q1 standard ui */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x0000, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0030, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_video[] = {
- /*start Q1 standard video */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x0300, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0030, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_vtcall[] = {
- /*start Q1 standard vtcall */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR dirTh */
- 0x002d, 0x19ff, /*DNR dirnumTh decon7Th */
- 0x002e, 0xff16, /*DNR decon5Th maskTh */
- 0x002f, 0x0000, /*DNR blTh */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x03f8, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x00a0, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_gallery[] = {
- /*start Q1 natural gallery */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x0300, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0180, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xa4aa, /*gc R */
- 0x00ca, 0xd5fe, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xfffd, /*gc G */
- 0x00ce, 0x2c4a, /*rm G */
- 0x00cf, 0xf5f9, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x5cf0, /*gc B */
- 0x00d2, 0x2aff, /*rm B */
- 0x00d3, 0x63f8, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_ui[] = {
- /*start Q1 natural video */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x0000, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0180, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xa4aa, /*gc R */
- 0x00ca, 0xd5fe, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xfffd, /*gc G */
- 0x00ce, 0x2c4a, /*rm G */
- 0x00cf, 0xf5f9, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x5cf0, /*gc B */
- 0x00d2, 0x2aff, /*rm B */
- 0x00d3, 0x63f8, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_video[] = {
- /*start Q1 natural video */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x0300, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0180, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xa4aa, /*gc R */
- 0x00ca, 0xd5fe, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xfffd, /*gc G */
- 0x00ce, 0x2c4a, /*rm G */
- 0x00cf, 0xf5f9, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x5cf0, /*gc B */
- 0x00d2, 0x2aff, /*rm B */
- 0x00d3, 0x63f8, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_vtcall[] = {
- /*start Q1 natural vtcall */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR dirTh */
- 0x002d, 0x19ff, /*DNR dirnumTh decon7Th */
- 0x002e, 0xff16, /*DNR decon5Th maskTh */
- 0x002f, 0x0000, /*DNR blTh */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x03f8, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0180, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xa4aa, /*gc R */
- 0x00ca, 0xd5fe, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xfffd, /*gc G */
- 0x00ce, 0x2c4a, /*rm G */
- 0x00cf, 0xf5f9, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x5cf0, /*gc B */
- 0x00d2, 0x2aff, /*rm B */
- 0x00d3, 0x63f8, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera[] = {
- /*start */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x0030, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0030, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_outdoor[] = {
- /*start */
- 0x0001, 0x0042, /*SCR HDTR OVE */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x0030, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0030, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x0054, 0x6050, /*OVE LIGHTNESS CHROMA */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00d6, 0x3f00, /*GAMMA bp2 */
- 0x00d7, 0x2003,
- 0x00d8, 0x2003,
- 0x00d9, 0x2003,
- 0x00da, 0x2003,
- 0x00db, 0x2003,
- 0x00dc, 0x2003,
- 0x00dd, 0x2003,
- 0x00de, 0x2003,
- 0x00df, 0x2003,
- 0x00e0, 0x2003,
- 0x00e1, 0x2003,
- 0x00e2, 0x2003,
- 0x00e3, 0x2003,
- 0x00e4, 0x2003,
- 0x00e5, 0x2003,
- 0x00e6, 0x2003,
- 0x00e7, 0x2003,
- 0x00e8, 0x2003,
- 0x00e9, 0x2003,
- 0x00ea, 0x2003,
- 0x00eb, 0x2003,
- 0x00ec, 0x2003,
- 0x00ed, 0xff00,
- 0x00d5, 0x0001,
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold[] = {
- /*start Q1 cold */
- 0x0001, 0x0044, /*SCR MCM HDTR */
- 0x005b, 0x0064, /*MCM 10000K */
- 0x0063, 0x8a00, /*CB */
- 0x0065, 0x0073, /*CR */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor[] = {
- /*start Q1 cold outdoor */
- 0x0001, 0x0046, /*SCR MCM HDTR OVE */
- 0x0054, 0x6050, /*OVE LIGHTNESS CHROMA */
- 0x005b, 0x0064, /*MCM 10000K */
- 0x0063, 0x8a00, /*CB */
- 0x0065, 0x0073, /*CR */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor[] = {
- /*start Q1 outdoor */
- 0x0001, 0x0042, /*SCR HDTR OVE */
- 0x0054, 0x6050, /*OVE LIGHTNESS CHROMA */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm[] = {
- /*start Q1 warm */
- 0x0001, 0x0044, /*SCR MCM HDTR */
- 0x005b, 0x0028, /*MCM 4000K */
- 0x0061, 0x7600, /*CB */
- 0x0063, 0x008d, /*CR */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor[] = {
- /*start Q1 warm outdoor */
- 0x0001, 0x0046, /*SCR MCM HDTR OVE */
- 0x0054, 0x6050, /*OVE LIGHTNESS CHROMA */
- 0x005b, 0x0028, /*MCM 4000K */
- 0x0061, 0x7600, /*CB */
- 0x0063, 0x008d, /*CR */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-struct mdnie_tunning_info etc_table[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm},
- {"COLD", tune_cold},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor},
- {"WARM_OUTDOOR", tune_warm_outdoor},
- {"COLD_OUTDOOR", tune_cold_outdoor},
- },
- }
-};
-
-struct mdnie_tunning_info tunning_table[CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
- {
- {
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_VIDEO_NORMAL", tune_dynamic_video},
- {"DYNAMIC_VIDEO_WARM", tune_dynamic_video},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video},
- {"CAMERA", tune_camera},
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_GALLERY", tune_dynamic_gallery},
- {"DYNAMIC_VT", tune_dynamic_vtcall},
- }, {
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_VIDEO_NORMAL", tune_standard_video},
- {"STANDARD_VIDEO_WARM", tune_standard_video},
- {"STANDARD_VIDEO_COLD", tune_standard_video},
- {"CAMERA", tune_camera},
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_GALLERY", tune_standard_gallery},
- {"STANDARD_VT", tune_standard_vtcall},
- }, {
- {"NATURAL_UI", tune_natural_ui},
- {"NATURAL_VIDEO_NORMAL", tune_natural_video},
- {"NATURAL_VIDEO_WARM", tune_natural_video},
- {"NATURAL_VIDEO_COLD", tune_natural_video},
- {"CAMERA", tune_camera},
- {"NATURAL_UI", tune_natural_ui},
- {"NATURAL_GALLERY", tune_natural_gallery},
- {"NATURAL_VT", tune_natural_vtcall},
- }, {
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_VIDEO_NORMAL", tune_movie_video},
- {"MOVIE_VIDEO_WARM", tune_movie_video},
- {"MOVIE_VIDEO_COLD", tune_movie_video},
- {"CAMERA", tune_camera},
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_GALLERY", tune_movie_gallery},
- {"MOVIE_VT", tune_movie_vtcall},
- },
- }
-};
-
-#endif /* __MDNIE_TABLE_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_table_u1.h b/drivers/video/samsung_duallcd/mdnie_table_u1.h
deleted file mode 100644
index 0756012..0000000
--- a/drivers/video/samsung_duallcd/mdnie_table_u1.h
+++ /dev/null
@@ -1,1055 +0,0 @@
-#ifndef __MDNIE_TABLE_H__
-#define __MDNIE_TABLE_H__
-
-#include "mdnie.h"
-
-
-static const unsigned short tune_dynamic_gallery[] = {
- /*start U1 dynamic gallery */
- 0x0001, 0x0041, /*SCR + PCC */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x03ff, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x012c, /*CS GAIN */
- 0x0042, 0x0020, /*DE TH (MAX DIFF) */
- 0x0049, 0x0400, /*pcc skin */
- 0x004a, 0x7a00,
- 0x004b, 0x008f,
- 0x004d, 0x0100, /*pcc strength */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00D6, 0x1d00, /*GAMMA start C210 */
- 0x00D7, 0x1d00,
- 0x00D8, 0x1d00,
- 0x00D9, 0x1d00,
- 0x00DA, 0x1d00,
- 0x00DB, 0x1d00,
- 0x00DC, 0x1d00,
- 0x00DD, 0x1d00,
- 0x00DE, 0x1d00,
- 0x00DF, 0x1d00,
- 0x00E0, 0x1d00,
- 0x00E1, 0x1d00,
- 0x00E2, 0x1d00,
- 0x00E3, 0x1d00,
- 0x00E4, 0x1d00,
- 0x00E5, 0xa40e,
- 0x00E6, 0xa40e,
- 0x00E7, 0xa40e,
- 0x00E8, 0xa819,
- 0x00E9, 0xa40a,
- 0x00EA, 0x2200,
- 0x00EB, 0x1c25,
- 0x00EC, 0x1842,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_ui[] = {
- /*start U1 dynamic ui */
- 0x0001, 0x0000,
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003A, 0x000d, /*HDTR DE_off CS : de on = d , de off = 9 */
- 0x003B, 0x0001, /*DE SHARPNESS(0~1023) off */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x012c, /*CS GAIN 300 */
- 0x003B, 0x0001, /*DE SHARPNESS(0~1023) off */
- 0x0042, 0x0030, /*DE TH (MAX DIFF) */
- 0x004d, 0x0100, /*pcc strength */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00D6, 0x1d00, /*GAMMA start */
- 0x00D7, 0x1d00,
- 0x00D8, 0x1d00,
- 0x00D9, 0x1d00,
- 0x00DA, 0x1d00,
- 0x00DB, 0x1d00,
- 0x00DC, 0x1d00,
- 0x00DD, 0x1d00,
- 0x00DE, 0x1d00,
- 0x00DF, 0x1d00,
- 0x00E0, 0x1d00,
- 0x00E1, 0x1d00,
- 0x00E2, 0x1d00,
- 0x00E3, 0x1d00,
- 0x00E4, 0x1d00,
- 0x00E5, 0xa40e,
- 0x00E6, 0xa40e,
- 0x00E7, 0xa40e,
- 0x00E8, 0xa819,
- 0x00E9, 0xa40a,
- 0x00EA, 0x2200,
- 0x00EB, 0x1c25,
- 0x00EC, 0x1842,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_video[] = {
- /*start U1 dynamic video */
- 0x0001, 0x0041, /*PCC 40 */
- 0x002c, 0x003C, /*DNR bypass 0x003C */
- 0x002d, 0x1908, /*DNR bypass 0x0a08 */
- 0x002e, 0x1005, /*DNR bypass 0x1010 */
- 0x002f, 0x0400, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS de on = d , de off = 9 */
- 0x003B, 0x03ff, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x012c, /*CS GAIN */
- 0x0042, 0x0020, /*DE TH (MAX DIFF) */
- 0x0049, 0x0400, /*pcc skin */
- 0x004a, 0x7a00, /*7300 */
- 0x004b, 0x008F, /*008f */
- 0x004d, 0x0100, /*pcc strength */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00D6, 0x1d00, /*GAMMA start C210 */
- 0x00D7, 0x1d00,
- 0x00D8, 0x1d00,
- 0x00D9, 0x1d00,
- 0x00DA, 0x1d00,
- 0x00DB, 0x1d00,
- 0x00DC, 0x1d00,
- 0x00DD, 0x1d00,
- 0x00DE, 0x1d00,
- 0x00DF, 0x1d00,
- 0x00E0, 0x1d00,
- 0x00E1, 0x1d00,
- 0x00E2, 0x1d00,
- 0x00E3, 0x1d00,
- 0x00E4, 0x1d00,
- 0x00E5, 0xa40e,
- 0x00E6, 0xa40e,
- 0x00E7, 0xa40e,
- 0x00E8, 0xa819,
- 0x00E9, 0xa40a,
- 0x00EA, 0x2200,
- 0x00EB, 0x1c25,
- 0x00EC, 0x1842,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_dynamic_vtcall[] = {
- /*start U1 dynamic vtcall */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR dirTh */
- 0x002d, 0x19ff, /*DNR dirnumTh decon7Th */
- 0x002e, 0xff16, /*DNR decon5Th maskTh */
- 0x002f, 0x0000, /*DNR blTh */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x03ff, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0100, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00D6, 0x1d00, /*GAMMA start C210 */
- 0x00D7, 0x1d00,
- 0x00D8, 0x1d00,
- 0x00D9, 0x1d00,
- 0x00DA, 0x1d00,
- 0x00DB, 0x1d00,
- 0x00DC, 0x1d00,
- 0x00DD, 0x1d00,
- 0x00DE, 0x1d00,
- 0x00DF, 0x1d00,
- 0x00E0, 0x1d00,
- 0x00E1, 0x1d00,
- 0x00E2, 0x1d00,
- 0x00E3, 0x1d00,
- 0x00E4, 0x1d00,
- 0x00E5, 0xa40e,
- 0x00E6, 0xa40e,
- 0x00E7, 0xa40e,
- 0x00E8, 0xa819,
- 0x00E9, 0xa40a,
- 0x00EA, 0x2200,
- 0x00EB, 0x1c25,
- 0x00EC, 0x1842,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_gallery[] = {
- /*start U1 movie gallery */
- 0x0001, 0x0041, /*SCR + PCC */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x0001, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0032, /*CS GAIN 300 */
- 0x0042, 0x003f, /*DE TH (MAX DIFF) */
- 0x0049, 0x0400, /*pcc skin */
- 0x004a, 0x7a00,
- 0x004b, 0x008f,
- 0x004d, 0x0000, /*pcc strength */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xb6bc, /*gc R */
- 0x00ca, 0xd4ff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x2148, /*rm G */
- 0x00cf, 0xe8f1, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x53ee, /*gc B */
- 0x00d2, 0x28f6, /*rm B */
- 0x00d3, 0x56e7, /*yw B */
- 0x00D6, 0x2000, /*GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_ui[] = {
- /*start U1 movie ui */
- 0x0001, 0x0040, /*scr */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003A, 0x000d, /*HDTR DE_off CS : de on = d , de off = 9 */
- 0x003B, 0x0001, /*DE SHARPNESS(0~1023) off */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0032, /*CS GAIN 50 */
- 0x0042, 0x0030, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xb6bc, /*gc R */
- 0x00ca, 0xd4ff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x2148, /*rm G */
- 0x00cf, 0xe8f1, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x53ee, /*gc B */
- 0x00d2, 0x28f6, /*rm B */
- 0x00d3, 0x56e7, /*yw B */
- 0x00D6, 0x2000, /*GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_video[] = {
- /*start U1 movie video */
- 0x0001, 0x0041, /*PCC 40 */
- 0x002c, 0x003C, /*DNR bypass 0x003C */
- 0x002d, 0x1908, /*DNR bypass 0x0a08 */
- 0x002e, 0x1005, /*DNR bypass 0x1010 */
- 0x002f, 0x0400, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS de on = d , de off = 9 */
- 0x003B, 0x0001, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0032, /*CS GAIN 300 */
- 0x0042, 0x003f, /*DE TH (MAX DIFF) */
- 0x0049, 0x0400, /*pcc skin */
- 0x004a, 0x7a00, /*7300 */
- 0x004b, 0x008F, /*008f */
- 0x004d, 0x0000, /*pcc strength */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xb6bc, /*gc R */
- 0x00ca, 0xd4ff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x2148, /*rm G */
- 0x00cf, 0xe8f1, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x53ee, /*gc B */
- 0x00d2, 0x28f6, /*rm B */
- 0x00d3, 0x56e7, /*yw B */
- 0x00D6, 0x2000, /*GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_movie_vtcall[] = {
- /*start U1 movie vtcall */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR dirTh */
- 0x002d, 0x19ff, /*DNR dirnumTh decon7Th */
- 0x002e, 0xff16, /*DNR decon5Th maskTh */
- 0x002f, 0x0000, /*DNR blTh */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x0000, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0030, /*CS GAIN */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xb6bc, /*gc R */
- 0x00ca, 0xd4ff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x2148, /*rm G */
- 0x00cf, 0xe8f1, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x53ee, /*gc B */
- 0x00d2, 0x28f6, /*rm B */
- 0x00d3, 0x56e7, /*yw B */
- 0x00D6, 0x2000, /*GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-
-static const unsigned short tune_standard_gallery[] = {
- /*start U1 standard gallery */
- 0x0001, 0x0041, /*SCR + PCC */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x03ff, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0032, /*CS GAIN */
- 0x0042, 0x0020, /*DE TH (MAX DIFF) */
- 0x0049, 0x0400, /*pcc skin */
- 0x004a, 0x7a00,
- 0x004b, 0x008f,
- 0x004d, 0x0100, /*pcc strength */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00D6, 0x2000, /*GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_ui[] = {
- /*start U1 standard ui */
- 0x0001, 0x0040, /* */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003A, 0x000d, /*HDTR DE_off CS : de on = d , de off = 9 */
- 0x003B, 0x0001, /*DE SHARPNESS(0~1023) off */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x001e, /*CS GAIN 30 */
- 0x0042, 0x0030, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00D6, 0x2000, /*GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_video[] = {
- /*start U1 standard video */
- 0x0001, 0x0041, /*PCC 40 */
- 0x002c, 0x003C, /*DNR bypass 0x003C */
- 0x002d, 0x1908, /*DNR bypass 0x0a08 */
- 0x002e, 0x1005, /*DNR bypass 0x1010 */
- 0x002f, 0x0400, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS de on = d , de off = 9 */
- 0x003B, 0x03ff, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0032, /*CS GAIN */
- 0x0042, 0x0020, /*DE TH (MAX DIFF) */
- 0x0049, 0x0400, /*pcc skin */
- 0x004a, 0x7a00, /*7300 */
- 0x004b, 0x008F, /*008f */
- 0x004d, 0x0100, /*pcc strength */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00D6, 0x2000, /*GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_standard_vtcall[] = {
- /*start U1 standard vtcall */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR dirTh */
- 0x002d, 0x19ff, /*DNR dirnumTh decon7Th */
- 0x002e, 0xff16, /*DNR decon5Th maskTh */
- 0x002f, 0x0000, /*DNR blTh */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x03f8, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x00a0, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0x0000, /*gc R */
- 0x00ca, 0xffff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x0000, /*rm G */
- 0x00cf, 0xffff, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x00ff, /*gc B */
- 0x00d2, 0x00ff, /*rm B */
- 0x00d3, 0x00ff, /*yw B */
- 0x00D6, 0x2000, /*GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_gallery[] = {
- /*start U1 natural gallery */
- 0x0001, 0x0041, /*SCR + PCC */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x03ff, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0180, /*CS GAIN */
- 0x0042, 0x0020, /*DE TH (MAX DIFF) */
- 0x0049, 0x0400, /*pcc skin */
- 0x004a, 0x7a00,
- 0x004b, 0x008f,
- 0x004d, 0x0100, /*pcc strength */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xb6bc, /*gc R */
- 0x00ca, 0xd4ff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x2148, /*rm G */
- 0x00cf, 0xe8f1, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x53ee, /*gc B */
- 0x00d2, 0x28f6, /*rm B */
- 0x00d3, 0x56ec, /*yw B */
- 0x00D6, 0x2000, /*GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_ui[] = {
- /*start U1 natural ui */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003A, 0x000d, /*HDTR DE_off CS : de on = d , de off = 9 */
- 0x003B, 0x0001, /*DE SHARPNESS(0~1023) off */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0180, /*CS GAIN 30 */
- 0x0042, 0x0030, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xb6bc, /*gc R */
- 0x00ca, 0xd4ff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x2148, /*rm G */
- 0x00cf, 0xe8f1, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x53ee, /*gc B */
- 0x00d2, 0x28f6, /*rm B */
- 0x00d3, 0x56ec, /*yw B */
- 0x00D6, 0x2000, /*GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_video[] = {
- /*start U1 natural video */
- 0x0001, 0x0041, /*PCC 40 */
- 0x002c, 0x003C, /*DNR bypass 0x003C */
- 0x002d, 0x1908, /*DNR bypass 0x0a08 */
- 0x002e, 0x1005, /*DNR bypass 0x1010 */
- 0x002f, 0x0400, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS de on = d , de off = 9 */
- 0x003B, 0x03ff, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0180, /*CS GAIN */
- 0x0042, 0x0020, /*DE TH (MAX DIFF) */
- 0x0049, 0x0400, /*pcc skin */
- 0x004a, 0x7a00, /*7300 */
- 0x004b, 0x008F, /*008f */
- 0x004d, 0x0100, /*pcc strength */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xb6bc, /*gc R */
- 0x00ca, 0xd4ff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x2148, /*rm G */
- 0x00cf, 0xe8f1, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x53ee, /*gc B */
- 0x00d2, 0x28f6, /*rm B */
- 0x00d3, 0x56ec, /*yw B */
- 0x00D6, 0x2000, /*GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_natural_vtcall[] = {
- /*start U1 natural vtcall */
- 0x0001, 0x0040, /*SCR HDTR */
- 0x002c, 0x0fff, /*DNR dirTh */
- 0x002d, 0x19ff, /*DNR dirnumTh decon7Th */
- 0x002e, 0xff16, /*DNR decon5Th maskTh */
- 0x002f, 0x0000, /*DNR blTh */
- 0x003a, 0x000d, /*HDTR DE CS */
- 0x003b, 0x03f8, /*DE SHARPNESS */
- 0x003c, 0x0000, /*NOISE LEVEL */
- 0x003f, 0x0180, /*CS GAIN */
- 0x0042, 0x0000, /*DE TH (MAX DIFF) */
- 0x00c8, 0x0000, /*kb R SCR */
- 0x00c9, 0xb6bc, /*gc R */
- 0x00ca, 0xd4ff, /*rm R */
- 0x00cb, 0xffff, /*yw R */
- 0x00cc, 0x0000, /*kb G */
- 0x00cd, 0xffff, /*gc G */
- 0x00ce, 0x2148, /*rm G */
- 0x00cf, 0xe8f1, /*yw G */
- 0x00d0, 0x00ff, /*kb B */
- 0x00d1, 0x53ee, /*gc B */
- 0x00d2, 0x28f6, /*rm B */
- 0x00d3, 0x56ec, /*yw B */
- 0x00D6, 0x2000, /*GAMMA start */
- 0x00D7, 0x2000,
- 0x00D8, 0x2000,
- 0x00D9, 0x2000,
- 0x00DA, 0x2000,
- 0x00DB, 0x2000,
- 0x00DC, 0x2000,
- 0x00DD, 0x2000,
- 0x00DE, 0x2000,
- 0x00DF, 0x2000,
- 0x00E0, 0x2000,
- 0x00E1, 0x2000,
- 0x00E2, 0x2000,
- 0x00E3, 0x2000,
- 0x00E4, 0x2000,
- 0x00E5, 0x2000,
- 0x00E6, 0x2000,
- 0x00E7, 0x2000,
- 0x00E8, 0x2000,
- 0x00E9, 0x2000,
- 0x00EA, 0xa105,
- 0x00EB, 0xa105,
- 0x00EC, 0xa105,
- 0x00ED, 0xFF00,
- 0x00D5, 0x0001, /*GAMMA end */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera[] = {
- /*start */
- 0x0001, 0x0000, /* */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003A, 0x0009, /*HDTR (DE off)(CS only 9) */
- 0x003B, 0x0000, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0000, /*CS GAIN */
- 0x0042, 0x003f, /*DE TH (MAX DIFF) */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_camera_outdoor[] = {
- /*start */
- 0x0001, 0x0002, /*OVE */
- 0x002c, 0x0fff, /*DNR bypass 0x003C */
- 0x002d, 0x1900, /*DNR bypass 0x0a08 */
- 0x002e, 0x0000, /*DNR bypass 0x1010 */
- 0x002f, 0x0fff, /*DNR bypass 0x0400 */
- 0x003A, 0x000D, /*HDTR DE CS */
- 0x003B, 0x03ff, /*DE SHARPNESS */
- 0x003C, 0x0000, /*NOISE LEVEL */
- 0x003F, 0x0100, /*CS GAIN */
- 0x0042, 0x003f, /*DE TH (MAX DIFF) */
- 0x0049, 0x0400, /*pcc skin */
- 0x004a, 0x7300,
- 0x004b, 0x008f,
- 0x0054, 0x5a50, /*ove */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold[] = {
- /*start U1 cold */
- 0x0001, 0x0044, /*SCR MCM HDTR */
- 0x005b, 0x0064, /*MCM */
- 0x0063, 0x9000, /*cb */
- 0x0065, 0x0070, /*cr */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_cold_outdoor[] = {
- /*start U1 cold outdoor */
- 0x0001, 0x0046, /*SCR MCM HDTR OVE */
- 0x0054, 0x5a50, /*OVE */
- 0x005b, 0x0064, /*MCM */
- 0x0063, 0x9000, /*cb */
- 0x0065, 0x0070, /*cr */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_outdoor[] = {
- /*start U1 outdoor */
- 0x0001, 0x0042, /*OVE */
- 0x0054, 0x5a50, /*ove */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm[] = {
- /*start U1 warm */
- 0x0001, 0x0044, /*SCR MCM HDTR */
- 0x005b, 0x0064, /*MCM */
- 0x0063, 0x7000, /*cb */
- 0x0065, 0x0090, /*cr */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-static const unsigned short tune_warm_outdoor[] = {
- /*start U1 warm outdoor */
- 0x0001, 0x0046, /*SCR MCM PCC OVE */
- 0x0054, 0x5a50, /*OVE */
- 0x005b, 0x0064, /*MCM */
- 0x0063, 0x7000, /*cb */
- 0x0065, 0x0090, /*cr */
- 0x0028, 0x0000, /*Register Mask */
- /*end */
- END_SEQ, 0x0000,
-};
-
-struct mdnie_tunning_info etc_table[CABC_MAX][OUTDOOR_MAX][TONE_MAX] = {
- {
- {
- {"NORMAL", NULL},
- {"WARM", tune_warm},
- {"COLD", tune_cold},
- },
- {
- {"NORMAL_OUTDOOR", tune_outdoor},
- {"WARM_OUTDOOR", tune_warm_outdoor},
- {"COLD_OUTDOOR", tune_cold_outdoor},
- },
- }
-};
-
-struct mdnie_tunning_info tunning_table[CABC_MAX][MODE_MAX][SCENARIO_MAX] = {
- {
- {
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_VIDEO_NORMAL", tune_dynamic_video},
- {"DYNAMIC_VIDEO_WARM", tune_dynamic_video},
- {"DYNAMIC_VIDEO_COLD", tune_dynamic_video},
- {"CAMERA", tune_camera},
- {"DYNAMIC_UI", tune_dynamic_ui},
- {"DYNAMIC_GALLERY", tune_dynamic_gallery},
- {"DYNAMIC_VT", tune_dynamic_vtcall},
- }, {
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_VIDEO_NORMAL", tune_standard_video},
- {"STANDARD_VIDEO_WARM", tune_standard_video},
- {"STANDARD_VIDEO_COLD", tune_standard_video},
- {"CAMERA", tune_camera},
- {"STANDARD_UI", tune_standard_ui},
- {"STANDARD_GALLERY", tune_standard_gallery},
- {"STANDARD_VT", tune_standard_vtcall},
- }, {
- {"NATURAL_UI", tune_natural_ui},
- {"NATURAL_VIDEO_NORMAL", tune_natural_video},
- {"NATURAL_VIDEO_WARM", tune_natural_video},
- {"NATURAL_VIDEO_COLD", tune_natural_video},
- {"CAMERA", tune_camera},
- {"NATURAL_UI", tune_natural_ui},
- {"NATURAL_GALLERY", tune_natural_gallery},
- {"NATURAL_VT", tune_natural_vtcall},
- }, {
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_VIDEO_NORMAL", tune_movie_video},
- {"MOVIE_VIDEO_WARM", tune_movie_video},
- {"MOVIE_VIDEO_COLD", tune_movie_video},
- {"CAMERA", tune_camera},
- {"MOVIE_UI", tune_movie_ui},
- {"MOVIE_GALLERY", tune_movie_gallery},
- {"MOVIE_VT", tune_movie_vtcall},
- },
- }
-};
-
-#endif /* __MDNIE_TABLE_H__ */
diff --git a/drivers/video/samsung_duallcd/mdnie_tunning.c b/drivers/video/samsung_duallcd/mdnie_tunning.c
deleted file mode 100644
index a72d220..0000000
--- a/drivers/video/samsung_duallcd/mdnie_tunning.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* linux/drivers/video/samsung/mdnie_tunning.c
- *
- * Register interface file for Samsung mDNIe driver
- *
- * Copyright (c) 2011 Samsung Electronics
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/ctype.h>
-#include <linux/uaccess.h>
-
-#include "s3cfb.h"
-#include "mdnie.h"
-
-static unsigned short mdnie_data[100];
-
-static int parse_text(char *src, int len)
-{
- int i, count, ret;
- int index = 0;
- char *str_line[100];
- char *sstart;
- char *c;
- unsigned int data1, data2;
-
- c = src;
- count = 0;
- sstart = c;
-
- for (i = 0; i < len; i++, c++) {
- char a = *c;
- if (a == '\r' || a == '\n') {
- if (c > sstart) {
- str_line[count] = sstart;
- count++;
- }
- *c = '\0';
- sstart = c+1;
- }
- }
-
- if (c > sstart) {
- str_line[count] = sstart;
- count++;
- }
-
- /* printk(KERN_INFO "----------------------------- Total number of lines:%d\n", count); */
-
- for (i = 0; i < count; i++) {
- /* printk(KERN_INFO "line:%d, [start]%s[end]\n", i, str_line[i]); */
- ret = sscanf(str_line[i], "0x%x,0x%x\n", &data1, &data2);
- /* printk(KERN_INFO "Result => [0x%2x 0x%4x] %s\n", data1, data2, (ret == 2) ? "Ok" : "Not available"); */
- if (ret == 2) {
- mdnie_data[index++] = (unsigned short)data1;
- mdnie_data[index++] = (unsigned short)data2;
- }
- }
- return index;
-}
-
-int mdnie_txtbuf_to_parsing(char const *pFilepath)
-{
- struct file *filp;
- char *dp;
- long l;
- loff_t pos;
- int ret, num;
- mm_segment_t fs;
-
- fs = get_fs();
- set_fs(get_ds());
-
- printk(KERN_INFO "%s:", pFilepath);
-
- if (!pFilepath) {
- printk(KERN_ERR "Error : mdnie_txtbuf_to_parsing has invalid filepath.\n");
- goto parse_err;
- }
-
- filp = filp_open(pFilepath, O_RDONLY, 0);
-
- if (IS_ERR(filp)) {
- printk(KERN_ERR "file open error:%d\n", (s32)filp);
- goto parse_err;
- }
-
- l = filp->f_path.dentry->d_inode->i_size;
- dp = kmalloc(l+10, GFP_KERNEL); /* add cushion : origianl code is 'dp = kmalloc(l, GFP_KERNEL);' */
- if (dp == NULL) {
- printk(KERN_INFO "Out of Memory!\n");
- filp_close(filp, current->files);
- goto parse_err;
- }
- pos = 0;
- memset(dp, 0, l);
- ret = vfs_read(filp, (char __user *)dp, l, &pos);
-
- if (ret != l) {
- printk(KERN_INFO "<CMC623> Failed to read file (ret = %d)\n", ret);
- kfree(dp);
- filp_close(filp, current->files);
- goto parse_err;
- }
-
- filp_close(filp, current->files);
- set_fs(fs);
- num = parse_text(dp, l);
- if (!num) {
- printk(KERN_ERR "Nothing to parse!\n");
- kfree(dp);
- goto parse_err;
- }
-
- mdnie_data[num] = END_SEQ;
-
- mdnie_send_sequence(g_mdnie, mdnie_data);
-
- kfree(dp);
-
- num = num / 2;
- return num;
-
-parse_err:
- return -EPERM;
-}
-
diff --git a/drivers/video/samsung_duallcd/nt35560.c b/drivers/video/samsung_duallcd/nt35560.c
deleted file mode 100644
index 97e2f7c..0000000
--- a/drivers/video/samsung_duallcd/nt35560.c
+++ /dev/null
@@ -1,628 +0,0 @@
-/*
- * LD9040 AMOLED LCD panel driver.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <linux/wait.h>
-#include <linux/fb.h>
-#include <linux/delay.h>
-#include <linux/gpio.h>
-#include <linux/spi/spi.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/kernel.h>
-#include <linux/lcd.h>
-#include <linux/backlight.h>
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#include "nt35560.h"
-
-#define BOOT_GAMMA_LEVEL 10
-#define MAX_GAMMA_LEVEL 25
-
-#define SLEEPMSEC 0x1000
-#define ENDDEF 0x2000
-#define DEFMASK 0xFF00
-#define COMMAND_ONLY 0xFE
-#define DATA_ONLY 0xFF
-
-#define BOOT_BRIGHTNESS 122
-#define MIN_BRIGHTNESS 0
-#define MAX_BRIGHTNESS 255
-#define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL)
-
-struct lcd_info {
- struct device *dev;
- struct spi_device *spi;
- unsigned int power;
- unsigned int current_bl;
- unsigned int bl;
- unsigned int ldi_enable;
- struct mutex lock;
- struct mutex bl_lock;
- struct lcd_device *ld;
- struct backlight_device *bd;
- struct lcd_platform_data *lcd_pd;
- struct early_suspend early_suspend;
-};
-
-static int nt35560_spi_write_byte(struct lcd_info *lcd, int addr, int data)
-{
- u16 buf[1];
- struct spi_message msg;
-
- struct spi_transfer xfer = {
- .len = 2,
- .tx_buf = buf,
- };
-
- buf[0] = (addr << 8) | data;
-
- spi_message_init(&msg);
- spi_message_add_tail(&xfer, &msg);
-
- return spi_sync(lcd->spi, &msg);
-}
-
-static int nt35560_spi_write(struct lcd_info *lcd,
- unsigned char address, unsigned char command)
-{
- int ret = 0;
-
- if (address != DATA_ONLY)
- ret = nt35560_spi_write_byte(lcd, 0x0, address);
- if (command != COMMAND_ONLY)
- ret = nt35560_spi_write_byte(lcd, 0x1, command);
-
- return ret;
-}
-
-static int nt35560_panel_send_sequence(struct lcd_info *lcd,
- const unsigned short *seq)
-{
- int ret = 0, i = 0;
- const unsigned short *wbuf;
-
- mutex_lock(&lcd->lock);
-
- wbuf = seq;
-
- while ((wbuf[i] & DEFMASK) != ENDDEF) {
- if ((wbuf[i] & DEFMASK) != SLEEPMSEC) {
- ret = nt35560_spi_write(lcd, wbuf[i], wbuf[i+1]);
- if (ret)
- break;
- } else if ((wbuf[i] & DEFMASK) == SLEEPMSEC)
- msleep(wbuf[i+1]);
- i += 2;
- }
-
- mutex_unlock(&lcd->lock);
-
- return ret;
-}
-
-static int get_backlight_level_from_brightness(unsigned int brightness)
-{
- int backlightlevel;
-
- /* brightness setting from platform is from 0 to 255
- * But in this driver, brightness is only supported from 0 to 24 */
-
- switch (brightness) {
- case 0:
- backlightlevel = 0;
- break;
- case 1 ... 29:
- backlightlevel = 0;
- break;
- case 30 ... 34:
- backlightlevel = 1;
- break;
- case 35 ... 44:
- backlightlevel = 2;
- break;
- case 45 ... 54:
- backlightlevel = 3;
- break;
- case 55 ... 64:
- backlightlevel = 4;
- break;
- case 65 ... 74:
- backlightlevel = 5;
- break;
- case 75 ... 83:
- backlightlevel = 6;
- break;
- case 84 ... 93:
- backlightlevel = 7;
- break;
- case 94 ... 103:
- backlightlevel = 8;
- break;
- case 104 ... 113:
- backlightlevel = 9;
- break;
- case 114 ... 122:
- backlightlevel = 10;
- break;
- case 123 ... 132:
- backlightlevel = 11;
- break;
- case 133 ... 142:
- backlightlevel = 12;
- break;
- case 143 ... 152:
- backlightlevel = 13;
- break;
- case 153 ... 162:
- backlightlevel = 14;
- break;
- case 163 ... 171:
- backlightlevel = 15;
- break;
- case 172 ... 181:
- backlightlevel = 16;
- break;
- case 182 ... 191:
- backlightlevel = 17;
- break;
- case 192 ... 201:
- backlightlevel = 18;
- break;
- case 202 ... 210:
- backlightlevel = 19;
- break;
- case 211 ... 220:
- backlightlevel = 20;
- break;
- case 221 ... 230:
- backlightlevel = 21;
- break;
- case 231 ... 240:
- backlightlevel = 22;
- break;
- case 241 ... 250:
- backlightlevel = 23;
- break;
- case 251 ... 255:
- backlightlevel = 24;
- break;
- default:
- backlightlevel = 24;
- break;
- }
- return backlightlevel;
-}
-
-static int nt35560_ldi_init(struct lcd_info *lcd)
-{
- int ret, i;
- const unsigned short *init_seq[] = {
- SEQ_SET_PIXEL_FORMAT,
- SEQ_RGBCTRL,
- SEQ_SET_HORIZONTAL_ADDRESS,
- SEQ_SET_VERTICAL_ADDRESS,
- SEQ_SET_ADDRESS_MODE,
- SEQ_SLPOUT,
- SEQ_WRDISBV,
- SEQ_WRCTRLD_1,
- SEQ_WRCABCMB,
- SEQ_WRCTRLD_2,
- };
-
- for (i = 0; i < ARRAY_SIZE(init_seq); i++) {
- ret = nt35560_panel_send_sequence(lcd, init_seq[i]);
- if (ret)
- break;
- }
-
- return ret;
-}
-
-static int nt35560_ldi_enable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- ret = nt35560_panel_send_sequence(lcd, SEQ_DISPLAY_ON);
-
- return ret;
-}
-
-static int nt35560_ldi_disable(struct lcd_info *lcd)
-{
- int ret, i;
- const unsigned short *off_seq[] = {
- SEQ_SET_DISPLAY_OFF,
- SEQ_SLPIN
- };
-
- lcd->ldi_enable = 0;
-
- for (i = 0; i < ARRAY_SIZE(off_seq); i++) {
- ret = nt35560_panel_send_sequence(lcd, off_seq[i]);
- if (ret)
- break;
- }
-
- return ret;
-}
-
-static int update_brightness(struct lcd_info *lcd, u8 force)
-{
- int ret = 0, brightness;
-
- mutex_lock(&lcd->bl_lock);
-
- brightness = lcd->bd->props.brightness;
- lcd->bl = get_backlight_level_from_brightness(brightness);
-
- if ((lcd->current_bl == lcd->bl) && (!force)) {
- mutex_unlock(&lcd->bl_lock);
- return ret;
- }
-
- dev_info(&lcd->ld->dev, "brightness=%d, bl=%d\n", brightness, lcd->bl);
-
- mutex_unlock(&lcd->bl_lock);
-
- return ret;
-}
-
-
-static int nt35560_power_on(struct lcd_info *lcd)
-{
- int ret = 0;
- struct lcd_platform_data *pd = NULL;
- pd = lcd->lcd_pd;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- if (!pd) {
- dev_err(&lcd->ld->dev, "platform data is NULL.\n");
- return -EFAULT;
- }
-
- if (!pd->power_on) {
- dev_err(&lcd->ld->dev, "power_on is NULL.\n");
- return -EFAULT;
- } else {
- pd->power_on(lcd->ld, 1);
- msleep(pd->power_on_delay);
- }
-
- if (!pd->reset) {
- dev_err(&lcd->ld->dev, "reset is NULL.\n");
- return -EFAULT;
- } else {
- pd->reset(lcd->ld);
- msleep(pd->reset_delay);
- }
-
- ret = nt35560_ldi_init(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to initialize ldi.\n");
- goto err;
- }
-
- ret = nt35560_ldi_enable(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to enable ldi.\n");
- goto err;
- }
-
- lcd->ldi_enable = 1;
-
- update_brightness(lcd, 1);
-
-err:
- return ret;
-}
-
-static int nt35560_power_off(struct lcd_info *lcd)
-{
- int ret = 0;
- struct lcd_platform_data *pd = NULL;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- pd = lcd->lcd_pd;
- if (!pd) {
- dev_err(&lcd->ld->dev, "platform data is NULL.\n");
- return -EFAULT;
- }
-
- ret = nt35560_ldi_disable(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "lcd setting failed.\n");
- ret = -EIO;
- goto err;
- }
-
- if (!pd->gpio_cfg_earlysuspend) {
- dev_err(&lcd->ld->dev, "gpio_cfg_earlysuspend is NULL.\n");
- ret = -EFAULT;
- goto err;
- } else
- pd->gpio_cfg_earlysuspend(lcd->ld);
-
- if (!pd->power_on) {
- dev_err(&lcd->ld->dev, "power_on is NULL.\n");
- ret = -EFAULT;
- goto err;
- } else {
- msleep(pd->power_off_delay);
- pd->power_on(lcd->ld, 0);
- }
-
-err:
- return ret;
-}
-
-static int nt35560_power(struct lcd_info *lcd, int power)
-{
- int ret = 0;
-
- if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
- ret = nt35560_power_on(lcd);
- else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
- ret = nt35560_power_off(lcd);
-
- if (!ret)
- lcd->power = power;
-
- return ret;
-}
-
-static int nt35560_set_power(struct lcd_device *ld, int power)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
- power != FB_BLANK_NORMAL) {
- dev_err(&lcd->ld->dev, "power value should be 0, 1 or 4.\n");
- return -EINVAL;
- }
-
- return nt35560_power(lcd, power);
-}
-
-static int nt35560_get_power(struct lcd_device *ld)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- return lcd->power;
-}
-
-static int nt35560_get_brightness(struct backlight_device *bd)
-{
- return bd->props.brightness;
-}
-
-static int nt35560_set_brightness(struct backlight_device *bd)
-{
- int ret = 0, brightness = bd->props.brightness;
- struct lcd_info *lcd = bl_get_data(bd);
-
- if (brightness < MIN_BRIGHTNESS ||
- brightness > bd->props.max_brightness) {
- dev_err(&bd->dev, "lcd brightness should be %d to %d. now %d\n",
- MIN_BRIGHTNESS, MAX_BRIGHTNESS, brightness);
- return -EINVAL;
- }
-
- if (lcd->ldi_enable) {
- ret = update_brightness(lcd, 0);
- if (ret < 0)
- return -EINVAL;
- }
-
- return ret;
-}
-
-static struct lcd_ops nt35560_lcd_ops = {
- .set_power = nt35560_set_power,
- .get_power = nt35560_get_power,
-};
-
-static const struct backlight_ops nt35560_backlight_ops = {
- .get_brightness = nt35560_get_brightness,
- .update_status = nt35560_set_brightness,
-};
-
-
-static ssize_t lcdtype_show(struct device *dev, struct
-device_attribute *attr, char *buf)
-{
-
- char temp[15];
- sprintf(temp, "SMD_AMS427G03\n");
- strcat(buf, temp);
- return strlen(buf);
-}
-
-static DEVICE_ATTR(lcd_type, 0664, lcdtype_show, NULL);
-
-#if defined(CONFIG_PM)
-#ifdef CONFIG_HAS_EARLYSUSPEND
-void nt35560_early_suspend(struct early_suspend *h)
-{
- struct lcd_info *lcd = container_of(h, struct lcd_info ,
- early_suspend);
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- nt35560_power(lcd, FB_BLANK_POWERDOWN);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-
-void nt35560_late_resume(struct early_suspend *h)
-{
- struct lcd_info *lcd = container_of(h, struct lcd_info ,
- early_suspend);
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- nt35560_power(lcd, FB_BLANK_UNBLANK);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-#endif
-#endif
-
-static int nt35560_probe(struct spi_device *spi)
-{
- int ret = 0;
- struct lcd_info *lcd;
-
- lcd = kzalloc(sizeof(struct lcd_info), GFP_KERNEL);
- if (!lcd) {
- pr_err("failed to allocate for lcd\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- /* nt35560 lcd panel uses 3-wire 9bits SPI Mode. */
- spi->bits_per_word = 9;
-
- ret = spi_setup(spi);
- if (ret < 0) {
- dev_err(&spi->dev, "spi setup failed.\n");
- goto out_free_lcd;
- }
-
- lcd->spi = spi;
- lcd->dev = &spi->dev;
-
- lcd->lcd_pd = (struct lcd_platform_data *)spi->dev.platform_data;
- if (!lcd->lcd_pd) {
- dev_err(&spi->dev, "platform data is NULL.\n");
- goto out_free_lcd;
- }
-
- lcd->ld = lcd_device_register("panel", &spi->dev,
- lcd, &nt35560_lcd_ops);
- if (IS_ERR(lcd->ld)) {
- ret = PTR_ERR(lcd->ld);
- goto out_free_lcd;
- }
-
- lcd->bd = backlight_device_register("panel", &spi->dev,
- lcd, &nt35560_backlight_ops, NULL);
- if (IS_ERR(lcd->bd)) {
- ret = PTR_ERR(lcd->bd);
- goto out_free_backlight;
- }
-
- lcd->bd->props.max_brightness = MAX_BRIGHTNESS;
- lcd->bd->props.brightness = BOOT_BRIGHTNESS;
- lcd->bl = BOOT_GAMMA_LEVEL;
- lcd->current_bl = lcd->bl;
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_lcd_type);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries\n");
-
- mutex_init(&lcd->lock);
- mutex_init(&lcd->bl_lock);
-
- /*
- * if lcd panel was on from bootloader like u-boot then
- * do not lcd on.
- */
- if (!lcd->lcd_pd->lcd_enabled) {
- /*
- * if lcd panel was off from bootloader then
- * current lcd status is powerdown and then
- * it enables lcd panel.
- */
- lcd->power = FB_BLANK_POWERDOWN;
-
- nt35560_power(lcd, FB_BLANK_UNBLANK);
- } else {
- lcd->power = FB_BLANK_UNBLANK;
- lcd->ldi_enable = 1;
-
- if (!lcd->lcd_pd->power_on) {
- dev_err(lcd->dev, "power_on is NULL.\n");
- goto out_free_backlight;
- } else
- lcd->lcd_pd->power_on(lcd->ld, 1);
- }
-
- dev_set_drvdata(&spi->dev, lcd);
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
- lcd->early_suspend.suspend = nt35560_early_suspend;
- lcd->early_suspend.resume = nt35560_late_resume;
- lcd->early_suspend.level = EARLY_SUSPEND_LEVEL_DISABLE_FB - 1;
- register_early_suspend(&lcd->early_suspend);
-#endif
-
- dev_info(&lcd->ld->dev, "nt35560 panel driver has been probed.\n");
-
- return 0;
-
-out_free_backlight:
- lcd_device_unregister(lcd->ld);
- kfree(lcd);
- return ret;
-out_free_lcd:
- kfree(lcd);
- return ret;
-err_alloc:
- return ret;
-}
-
-static int __devexit nt35560_remove(struct spi_device *spi)
-{
- struct lcd_info *lcd = dev_get_drvdata(&spi->dev);
-
- nt35560_power(lcd, FB_BLANK_POWERDOWN);
- lcd_device_unregister(lcd->ld);
- backlight_device_unregister(lcd->bd);
- kfree(lcd);
-
- return 0;
-}
-
-static struct spi_driver nt35560_driver = {
- .driver = {
- .name = "nt35560",
- .bus = &spi_bus_type,
- .owner = THIS_MODULE,
- },
- .probe = nt35560_probe,
- .remove = __devexit_p(nt35560_remove),
-};
-
-static int __init nt35560_init(void)
-{
- return spi_register_driver(&nt35560_driver);
-}
-
-static void __exit nt35560_exit(void)
-{
- spi_unregister_driver(&nt35560_driver);
-}
-
-module_init(nt35560_init);
-module_exit(nt35560_exit);
-
-MODULE_DESCRIPTION("NT35560 TFT Panel Driver");
-MODULE_LICENSE("GPL");
-
diff --git a/drivers/video/samsung_duallcd/nt35560.h b/drivers/video/samsung_duallcd/nt35560.h
deleted file mode 100644
index 19e2446..0000000
--- a/drivers/video/samsung_duallcd/nt35560.h
+++ /dev/null
@@ -1,104 +0,0 @@
-#ifndef __NT35560_H__
-#define __NT35560_H__
-
-#define SLEEPMSEC 0x1000
-#define ENDDEF 0x2000
-#define DEFMASK 0xFF00
-#define COMMAND_ONLY 0xFE
-#define DATA_ONLY 0xFF
-
-
-const unsigned short SEQ_SET_PIXEL_FORMAT[] = {
- 0x3A, 0x77,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_RGBCTRL[] = {
- 0x3B, 0x07,
- DATA_ONLY, 0x0A,
- DATA_ONLY, 0x0E,
- DATA_ONLY, 0x0A,
- DATA_ONLY, 0x0A,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_SET_HORIZONTAL_ADDRESS[] = {
- 0x2A, 0x00,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x01,
- DATA_ONLY, 0xDF,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_SET_VERTICAL_ADDRESS[] = {
- 0x2B, 0x00,
- DATA_ONLY, 0x00,
- DATA_ONLY, 0x03,
- DATA_ONLY, 0x1F,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_SET_ADDRESS_MODE[] = {
- 0x36, 0xD4,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_SLPOUT[] = {
- SLEEPMSEC, 25,
-
- 0x11, COMMAND_ONLY,
-
- SLEEPMSEC, 200,
-
- ENDDEF, 0x00
-};
-
-const unsigned short SEQ_WRDISBV[] = {
- 0x51, 0x6C,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_WRCTRLD_1[] = {
- 0x55, 0x01,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_WRCABCMB[] = {
- 0x5E, 0x00,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_WRCTRLD_2[] = {
- 0x53, 0x2C,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_DISPLAY_ON[] = {
- 0x29, COMMAND_ONLY,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_SET_DISPLAY_OFF[] = {
- 0x28, COMMAND_ONLY,
- SLEEPMSEC, 25,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_SLPIN[] = {
- 0x10, COMMAND_ONLY,
-
- ENDDEF, 0x0000
-};
-
-#endif /* __NT35560_H__ */
diff --git a/drivers/video/samsung_duallcd/s3cfb.h b/drivers/video/samsung_duallcd/s3cfb.h
deleted file mode 100644
index ca60173..0000000
--- a/drivers/video/samsung_duallcd/s3cfb.h
+++ /dev/null
@@ -1,397 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb.h
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com/
- *
- * Header file for Samsung Display Driver (FIMD) driver
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _S3CFB_H
-#define _S3CFB_H __FILE__
-
-#ifdef __KERNEL__
-#include <linux/mutex.h>
-#include <linux/fb.h>
-#ifdef CONFIG_HAS_WAKELOCK
-#include <linux/wakelock.h>
-#include <linux/earlysuspend.h>
-#endif
-#include <plat/fb-s5p.h>
-#endif
-#include <mach/cpufreq.h>
-
-#define S3CFB_NAME "s3cfb"
-#define S3CFB_AVALUE(r, g, b) (((r & 0xf) << 8) | \
- ((g & 0xf) << 4) | \
- ((b & 0xf) << 0))
-#define S3CFB_CHROMA(r, g, b) (((r & 0xff) << 16) | \
- ((g & 0xff) << 8) | \
- ((b & 0xff) << 0))
-
-#if defined(CONFIG_FB_S5P_DUAL_LCD)
-#define FIMD_MAX 2
-#else
-#define FIMD_MAX 1
-#endif
-#define MAX_BUFFER_NUM 3
-
-#define POWER_ON 1
-#define POWER_OFF 0
-
-#if defined(CONFIG_MACH_PX) || defined(CONFIG_MACH_Q1_BD)
-#define FEATURE_BUSFREQ_LOCK /* Now, this feature only avaliable in 4210 */
-#endif
-
-enum s3cfb_data_path_t {
- DATA_PATH_FIFO = 0,
- DATA_PATH_DMA = 1,
- DATA_PATH_IPC = 2,
-};
-
-enum s3cfb_alpha_t {
- PLANE_BLENDING,
- PIXEL_BLENDING,
-};
-
-enum s3cfb_chroma_dir_t {
- CHROMA_FG,
- CHROMA_BG,
-};
-
-enum s3cfb_output_t {
- OUTPUT_RGB,
- OUTPUT_ITU,
- OUTPUT_I80LDI0,
- OUTPUT_I80LDI1,
- OUTPUT_WB_RGB,
- OUTPUT_WB_I80LDI0,
- OUTPUT_WB_I80LDI1,
-};
-
-enum s3cfb_rgb_mode_t {
- MODE_RGB_P = 0,
- MODE_BGR_P = 1,
- MODE_RGB_S = 2,
- MODE_BGR_S = 3,
-};
-
-enum s3cfb_mem_owner_t {
- DMA_MEM_NONE = 0,
- DMA_MEM_FIMD = 1,
- DMA_MEM_OTHER = 2,
-};
-
-struct s3cfb_alpha {
- enum s3cfb_alpha_t mode;
- int channel;
- unsigned int value;
-};
-
-struct s3cfb_chroma {
- int enabled;
- int blended;
- unsigned int key;
- unsigned int comp_key;
- unsigned int alpha;
- enum s3cfb_chroma_dir_t dir;
-};
-
-struct s3cfb_lcd_timing {
- int h_fp;
- int h_bp;
- int h_sw;
- int v_fp;
- int v_fpe;
- int v_bp;
- int v_bpe;
- int v_sw;
-#if defined(CONFIG_FB_S5P_MIPI_DSIM) || defined(CONFIG_S5P_MIPI_DSI2)
- int cmd_allow_len;
- int stable_vfp;
- void (*cfg_gpio)(struct platform_device *dev);
- int (*backlight_on)(struct platform_device *dev);
- int (*reset_lcd)(struct platform_device *dev);
-#endif
-};
-
-struct s3cfb_lcd_polarity {
- int rise_vclk;
- int inv_hsync;
- int inv_vsync;
- int inv_vden;
-};
-
-#ifdef CONFIG_FB_S5P_MIPI_DSIM
-/* for CPU Interface */
-struct s3cfb_cpu_timing {
- unsigned int cs_setup;
- unsigned int wr_setup;
- unsigned int wr_act;
- unsigned int wr_hold;
-};
-#endif
-
-struct s3cfb_lcd {
-#ifdef CONFIG_FB_S5P_MIPI_DSIM
- char *name;
-#endif
- int width;
- int height;
- int p_width;
- int p_height;
- int bpp;
- int freq;
- int vclk;
- struct s3cfb_lcd_timing timing;
- struct s3cfb_lcd_polarity polarity;
-#ifdef CONFIG_FB_S5P_MIPI_DSIM
- struct s3cfb_cpu_timing cpu_timing;
-#endif
- void (*init_ldi)(void);
- void (*deinit_ldi)(void);
-};
-
-struct s3cfb_fimd_desc {
- int state;
- int dual;
- struct s3cfb_global *fbdev[FIMD_MAX];
-};
-
-struct s3cfb_global {
- void __iomem *regs;
- void __iomem *regs_org;
- void __iomem *ielcd_regs;
- void *data;
- struct mutex lock;
- spinlock_t slock;
- struct device *dev;
-#ifdef CONFIG_BUSFREQ_OPP
- struct device *bus_dev;
-#endif
- struct clk *clock;
- int irq;
- wait_queue_head_t wq;
- unsigned int wq_count;
- struct fb_info **fb;
-
- atomic_t enabled_win;
- enum s3cfb_output_t output;
- enum s3cfb_rgb_mode_t rgb_mode;
- struct s3cfb_lcd *lcd;
- int system_state;
-#ifdef CONFIG_HAS_WAKELOCK
- struct early_suspend early_suspend;
- struct wake_lock idle_lock;
-#endif
-#ifdef FEATURE_BUSFREQ_LOCK
- atomic_t busfreq_lock_cnt; /* Bus frequency Lock count */
- int busfreq_flag; /* context bus frequency flag*/
-#endif
-};
-
-struct s3cfb_window {
- int id;
- int enabled;
- atomic_t in_use;
- int x;
- int y;
- enum s3cfb_data_path_t path;
- enum s3cfb_mem_owner_t owner;
- int local_channel;
- int dma_burst;
- unsigned int pseudo_pal[16];
- struct s3cfb_alpha alpha;
- struct s3cfb_chroma chroma;
- int power_state;
-};
-
-struct s3cfb_user_window {
- int x;
- int y;
-};
-
-struct s3cfb_user_plane_alpha {
- int channel;
- unsigned char red;
- unsigned char green;
- unsigned char blue;
-};
-
-struct s3cfb_user_chroma {
- int enabled;
- unsigned char red;
- unsigned char green;
- unsigned char blue;
-};
-
-#define BLENDING_NONE 0x0100
-#define BLENDING_PREMULT 0x0105
-#define BLENDING_COVERAGE 0x0405
-
-/* IOCTL commands */
-#define S3CFB_WIN_POSITION _IOW('F', 203, \
- struct s3cfb_user_window)
-#define S3CFB_WIN_SET_PLANE_ALPHA _IOW('F', 204, \
- struct s3cfb_user_plane_alpha)
-#define S3CFB_WIN_SET_CHROMA _IOW('F', 205, \
- struct s3cfb_user_chroma)
-#define S3CFB_SET_VSYNC_INT _IOW('F', 206, u32)
-#define S3CFB_GET_VSYNC_INT_STATUS _IOR('F', 207, u32)
-#define S3CFB_GET_LCD_WIDTH _IOR('F', 302, int)
-#define S3CFB_GET_LCD_HEIGHT _IOR('F', 303, int)
-#define S3CFB_SET_WRITEBACK _IOW('F', 304, u32)
-#define S3CFB_SET_WIN_ON _IOW('F', 305, u32)
-#define S3CFB_SET_WIN_OFF _IOW('F', 306, u32)
-#define S3CFB_SET_WIN_PATH _IOW('F', 307, \
- enum s3cfb_data_path_t)
-#define S3CFB_SET_WIN_ADDR _IOW('F', 308, unsigned long)
-#define S3CFB_SET_WIN_MEM _IOW('F', 309, \
- enum s3cfb_mem_owner_t)
-#define S3CFB_GET_FB_PHY_ADDR _IOR('F', 310, unsigned int)
-#define S3CFB_GET_CUR_WIN_BUF_ADDR _IOR('F', 311, unsigned int)
-#if defined(CONFIG_CPU_EXYNOS4210)
-#define S3CFB_SET_WIN_MEM_START _IOW('F', 312, u32)
-#endif
-#define S3CFB_SET_ALPHA_MODE _IOW('F', 313, unsigned int)
-
-extern struct fb_ops s3cfb_ops;
-extern inline struct s3cfb_global *get_fimd_global(int id);
-
-/* S3CFB */
-extern struct s3c_platform_fb *to_fb_plat(struct device *dev);
-extern int s3cfb_draw_logo(struct fb_info *fb);
-extern int s3cfb_enable_window(struct s3cfb_global *fbdev, int id);
-extern int s3cfb_disable_window(struct s3cfb_global *fbdev, int id);
-extern int s3cfb_update_power_state(struct s3cfb_global *fbdev, int id,
- int state);
-extern int s3cfb_init_global(struct s3cfb_global *fbdev);
-extern int s3cfb_map_video_memory(struct s3cfb_global *fbdev,
- struct fb_info *fb);
-extern int s3cfb_unmap_video_memory(struct s3cfb_global *fbdev,
- struct fb_info *fb);
-extern int s3cfb_map_default_video_memory(struct s3cfb_global *fbdev,
- struct fb_info *fb, int fimd_id);
-extern int s3cfb_unmap_default_video_memory(struct s3cfb_global *fbdev,
- struct fb_info *fb);
-extern int s3cfb_set_bitfield(struct fb_var_screeninfo *var);
-extern int s3cfb_set_alpha_info(struct fb_var_screeninfo *var,
- struct s3cfb_window *win);
-extern int s3cfb_check_var(struct fb_var_screeninfo *var, struct fb_info *fb);
-extern int s3cfb_check_var_window(struct s3cfb_global *fbdev,
- struct fb_var_screeninfo *var, struct fb_info *fb);
-extern void s3cfb_set_win_params(struct s3cfb_global *fbdev, int id);
-extern int s3cfb_set_par_window(struct s3cfb_global *fbdev, struct fb_info *fb);
-extern int s3cfb_set_par(struct fb_info *fb);
-extern int s3cfb_init_fbinfo(struct s3cfb_global *fbdev, int id);
-extern int s3cfb_alloc_framebuffer(struct s3cfb_global *fbdev, int fimd_id);
-extern int s3cfb_open(struct fb_info *fb, int user);
-extern int s3cfb_release_window(struct fb_info *fb);
-extern int s3cfb_release(struct fb_info *fb, int user);
-extern int s3cfb_pan_display(struct fb_var_screeninfo *var,
- struct fb_info *fb);
-extern int s3cfb_blank(int blank_mode, struct fb_info *fb);
-extern inline unsigned int __chan_to_field(unsigned int chan,
- struct fb_bitfield bf);
-extern int s3cfb_setcolreg(unsigned int regno, unsigned int red,
- unsigned int green, unsigned int blue,
- unsigned int transp, struct fb_info *fb);
-extern int s3cfb_cursor(struct fb_info *fb, struct fb_cursor *cursor);
-extern int s3cfb_ioctl(struct fb_info *fb, unsigned int cmd, unsigned long arg);
-extern int s3cfb_enable_localpath(struct s3cfb_global *fbdev, int id);
-extern int s3cfb_disable_localpath(struct s3cfb_global *fbdev, int id);
-
-/* FIMD */
-extern int s3cfb_clear_interrupt(struct s3cfb_global *ctrl);
-extern int s3cfb_display_on(struct s3cfb_global *ctrl);
-extern int s3cfb_set_output(struct s3cfb_global *ctrl);
-extern int s3cfb_set_display_mode(struct s3cfb_global *ctrl);
-extern int s3cfb_display_on(struct s3cfb_global *ctrl);
-extern int s3cfb_display_off(struct s3cfb_global *ctrl);
-extern int s3cfb_set_clock(struct s3cfb_global *ctrl);
-extern int s3cfb_set_polarity(struct s3cfb_global *ctrl);
-extern int s3cfb_set_polarity_only(struct s3cfb_global *ctrl);
-extern int s3cfb_set_timing(struct s3cfb_global *ctrl);
-extern int s3cfb_set_lcd_size(struct s3cfb_global *ctrl);
-extern int s3cfb_set_global_interrupt(struct s3cfb_global *ctrl, int enable);
-extern int s3cfb_set_vsync_interrupt(struct s3cfb_global *ctrl, int enable);
-extern int s3cfb_get_vsync_interrupt(struct s3cfb_global *ctrl);
-extern int s3cfb_set_fifo_interrupt(struct s3cfb_global *ctrl, int enable);
-extern int s3cfb_window_on(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_window_off(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_win_map_on(struct s3cfb_global *ctrl, int id, int color);
-extern int s3cfb_win_map_off(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_window_control(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_alpha_mode(struct s3cfb_global *ctrl, int id, unsigned int mode);
-extern int s3cfb_set_alpha_value_width(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_alpha_blending(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_oneshot(struct s3cfb_global *ctrl, int value);
-extern int s3cfb_set_alpha_value(struct s3cfb_global *ctrl, int value);
-extern int s3cfb_set_window_position(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_window_size(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_buffer_address(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_get_win_cur_buf_addr(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_buffer_size(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_chroma_key(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_channel_localpath_on(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_channel_localpath_off(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_check_vsync_status(struct s3cfb_global *ctrl);
-extern int s3cfb_set_dualrgb(struct s3cfb_global *ctrl, int mode);
-#ifdef CONFIG_FB_S5P_MIPI_DSIM
-extern int s3cfb_vsync_status_check(void);
-#endif
-
-#ifdef CONFIG_HAS_WAKELOCK
-#ifdef CONFIG_HAS_EARLYSUSPEND
-extern void s3cfb_early_suspend(struct early_suspend *h);
-extern void s3cfb_late_resume(struct early_suspend *h);
-#endif
-#endif
-
-/* LCD */
-extern void s3cfb_set_lcd_info(struct s3cfb_global *ctrl);
-
-#ifdef CONFIG_FB_S5P_MIPI_DSIM
-extern void s5p_dsim_early_suspend(void);
-extern void s5p_dsim_late_resume(void);
-#ifdef CONFIG_FB_S5P_S6E63M0
-extern int s6e63m0_sleep_in(void);
-extern void s6e63m0_early_suspend(void);
-extern void s6e63m0_late_resume(void);
-#else
-extern void s6e8ax0_early_suspend(void);
-extern void s6e8ax0_late_resume(void);
-#endif
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
-extern int s5p_dsim_get_panel_sel_value(void);
-extern int s5p_dsim_get_lcd_sel_value(void);
-extern int s5p_dsim_toggle_lcd(void);
-extern int s5p_dsim_select_lcd(unsigned int lcd_sel);
-#endif /* CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD */
-extern int s5p_dsim_fifo_clear(void);
-extern void set_dsim_hs_clk_toggle_count(u8 count);
-extern void set_dsim_lcd_enabled(u8 enable);
-extern u32 read_dsim_register(u32 num);
-#endif
-
-
-#ifdef CONFIG_FB_S5P_AMS369FG06
-extern void ams369fg06_ldi_init(void);
-extern void ams369fg06_ldi_enable(void);
-extern void ams369fg06_ldi_disable(void);
-extern void ams369fg06_gpio_cfg(void);
-#elif defined(CONFIG_FB_S5P_LMS501KF03)
-extern void lms501kf03_ldi_disable(void);
-#endif
-
-#if defined(CONFIG_FB_S5P_S6C1372) || defined(CONFIG_FB_S5P_S6F1202A)
-extern void s5c1372_ldi_enable(void);
-extern void s5c1372_ldi_disable(void);
-#endif
-
-extern int lcdfreq_init(struct fb_info *fb);
-
-#endif /* _S3CFB_H */
diff --git a/drivers/video/samsung_duallcd/s3cfb2.c b/drivers/video/samsung_duallcd/s3cfb2.c
deleted file mode 100644
index 507acef..0000000
--- a/drivers/video/samsung_duallcd/s3cfb2.c
+++ /dev/null
@@ -1,1232 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb2.c
- *
- * Core file for Samsung Display Controller (FIMD) driver
- *
- * Jinsung Yang, Copyright (c) 2009 Samsung Electronics
- * http://www.samsungsemi.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/clk.h>
-#include <linux/mutex.h>
-#include <linux/poll.h>
-#include <linux/wait.h>
-#include <linux/fs.h>
-#include <linux/irq.h>
-#include <linux/mm.h>
-#include <linux/fb.h>
-#include <linux/ctype.h>
-#include <linux/dma-mapping.h>
-#include <linux/interrupt.h>
-#include <linux/platform_device.h>
-
-#include <linux/io.h>
-#include <linux/memory.h>
-#include <plat/clock.h>
-
-#include "logo_rgb24.h"
-#include "s3cfb2.h"
-
-static struct s3cfb_global *ctrl;
-
-struct s3c_platform_fb *to_fb_plat(struct device *dev)
-{
- struct platform_device *pdev = to_platform_device(dev);
-
- return (struct s3c_platform_fb *) pdev->dev.platform_data;
-}
-
-#ifndef CONFIG_FRAMEBUFFER_CONSOLE
-static int s3cfb_draw_logo(struct fb_info *fb)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct fb_var_screeninfo *var = &fb->var;
-
- memcpy(ctrl->fb[pdata->default_win]->screen_base,
- LOGO_RGB24, fix->line_length * var->yres);
-
- return 0;
-}
-#else
-int fb_is_primary_device(struct fb_info *fb)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct s3cfb_window *win = fb->par;
-
- dev_dbg(ctrl->dev, "[fb%d] checking for primary device\n", win->id);
-
- if (win->id == pdata->default_win)
- return 1;
- else
- return 0;
-}
-#endif
-
-static irqreturn_t s3cfb_irq_frame(int irq, void *dev_id)
-{
- s3cfb_clear_interrupt(ctrl);
-
- ctrl->wq_count++;
- wake_up_interruptible(&ctrl->wq);
-
- return IRQ_HANDLED;
-}
-
-#ifdef CONFIG_FB_S3C_V2_TRACE_UNDERRUN
-static irqreturn_t s3cfb_irq_fifo(int irq, void *dev_id)
-{
- s3cfb_clear_interrupt(ctrl);
-
- return IRQ_HANDLED;
-}
-#endif
-
-static int s3cfb_enable_window(int id)
-{
- struct s3cfb_window *win = ctrl->fb[id]->par;
-
- if (s3cfb_window_on(ctrl, id)) {
- win->enabled = 0;
- return -EFAULT;
- } else {
- win->enabled = 1;
- return 0;
- }
-}
-
-static int s3cfb_disable_window(int id)
-{
- struct s3cfb_window *win = ctrl->fb[id]->par;
-
- if (s3cfb_window_off(ctrl, id)) {
- win->enabled = 1;
- return -EFAULT;
- } else {
- win->enabled = 0;
- return 0;
- }
-}
-
-static int s3cfb_init_global(void)
-{
- ctrl->output = OUTPUT_RGB;
- ctrl->rgb_mode = MODE_RGB_P;
-
- ctrl->wq_count = 0;
- init_waitqueue_head(&ctrl->wq);
- mutex_init(&ctrl->lock);
-
- s3cfb_set_output(ctrl);
- s3cfb_set_display_mode(ctrl);
- s3cfb_set_polarity(ctrl);
- s3cfb_set_timing(ctrl);
- s3cfb_set_lcd_size(ctrl);
-
- return 0;
-}
-
-static int s3cfb_map_video_memory(struct fb_info *fb)
-{
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct s3cfb_window *win = fb->par;
-
- if (win->path == DATA_PATH_FIFO)
- return 0;
-
- fb->screen_base = dma_alloc_writecombine(ctrl->dev,
- PAGE_ALIGN(fix->smem_len),
- (unsigned int *) &fix->smem_start, GFP_KERNEL);
- if (!fb->screen_base)
- return -ENOMEM;
- else
- dev_info(ctrl->dev, "[fb%d] dma: 0x%08x, cpu: 0x%08x, size: 0x%08x\n",
- win->id, (unsigned int) fix->smem_start,
- (unsigned int) fb->screen_base, fix->smem_len);
-
- memset(fb->screen_base, 0, fix->smem_len);
-
- return 0;
-}
-
-static int s3cfb_unmap_video_memory(struct fb_info *fb)
-{
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct s3cfb_window *win = fb->par;
-
- if (fix->smem_start) {
- dma_free_writecombine(ctrl->dev, fix->smem_len,
- fb->screen_base, fix->smem_start);
- fix->smem_start = 0;
- fix->smem_len = 0;
- dev_info(ctrl->dev, "[fb%d] video memory released\n", win->id);
- }
-
- return 0;
-}
-
-static int s3cfb_set_bitfield(struct fb_var_screeninfo *var)
-{
- switch (var->bits_per_pixel) {
- case 16:
- if (var->transp.length == 1) {
- var->red.offset = 10;
- var->red.length = 5;
- var->green.offset = 5;
- var->green.length = 5;
- var->blue.offset = 0;
- var->blue.length = 5;
- var->transp.offset = 15;
- } else if (var->transp.length == 4) {
- var->red.offset = 8;
- var->red.length = 4;
- var->green.offset = 4;
- var->green.length = 4;
- var->blue.offset = 0;
- var->blue.length = 4;
- var->transp.offset = 12;
- } else {
- var->red.offset = 11;
- var->red.length = 5;
- var->green.offset = 5;
- var->green.length = 6;
- var->blue.offset = 0;
- var->blue.length = 5;
- var->transp.offset = 0;
- }
- break;
-
- case 24:
- var->red.offset = 16;
- var->red.length = 8;
- var->green.offset = 8;
- var->green.length = 8;
- var->blue.offset = 0;
- var->blue.length = 8;
- var->transp.offset = 0;
- var->transp.length = 0;
- break;
-
- case 32:
- var->red.offset = 16;
- var->red.length = 8;
- var->green.offset = 8;
- var->green.length = 8;
- var->blue.offset = 0;
- var->blue.length = 8;
- var->transp.offset = 24;
- break;
- }
-
- return 0;
-}
-
-static int s3cfb_set_alpha_info(struct fb_var_screeninfo *var,
- struct s3cfb_window *win)
-{
- if (var->transp.length > 0)
- win->alpha.mode = PIXEL_BLENDING;
- else {
- win->alpha.mode = PLANE_BLENDING;
- win->alpha.channel = 0;
- win->alpha.value = S3CFB_AVALUE(0xf, 0xf, 0xf);
- }
-
- return 0;
-}
-
-static int s3cfb_check_var(struct fb_var_screeninfo *var,
- struct fb_info *fb)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct s3cfb_window *win = fb->par;
- struct s3cfb_lcd *lcd = ctrl->lcd;
-
- dev_dbg(ctrl->dev, "[fb%d] check_var\n", win->id);
-
- if (var->bits_per_pixel != 16 && var->bits_per_pixel != 24 &&
- var->bits_per_pixel != 32) {
- dev_err(ctrl->dev, "invalid bits per pixel\n");
- return -EINVAL;
- }
-
- if (var->xres > lcd->width)
- var->xres = lcd->width;
-
- if (var->yres > lcd->height)
- var->yres = lcd->height;
-
- if (var->xres_virtual != var->xres)
- var->xres_virtual = var->xres;
-
- if (var->yres_virtual > var->yres * (fb->fix.ypanstep + 1))
- var->yres_virtual = var->yres * (fb->fix.ypanstep + 1);
-
- if (var->xoffset != 0)
- var->xoffset = 0;
-
- if (var->yoffset + var->yres > var->yres_virtual)
- var->yoffset = var->yres_virtual - var->yres;
-
- if (win->x + var->xres > lcd->width)
- win->x = lcd->width - var->xres;
-
- if (win->y + var->yres > lcd->height)
- win->y = lcd->height - var->yres;
-
- /* modify the fix info */
- if (win->id != pdata->default_win) {
- fix->line_length = var->xres_virtual * var->bits_per_pixel / 8;
- fix->smem_len = fix->line_length * var->yres_virtual;
- }
-
- s3cfb_set_bitfield(var);
- s3cfb_set_alpha_info(var, win);
-
- return 0;
-}
-
-static int s3cfb_set_par(struct fb_info *fb)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct s3cfb_window *win = fb->par;
-
- dev_dbg(ctrl->dev, "[fb%d] set_par\n", win->id);
-
- if ((win->id != pdata->default_win) && !fb->fix.smem_start)
- s3cfb_map_video_memory(fb);
-
- s3cfb_set_window_control(ctrl, win->id);
- s3cfb_set_window_position(ctrl, win->id);
- s3cfb_set_window_size(ctrl, win->id);
- s3cfb_set_buffer_address(ctrl, win->id);
- s3cfb_set_buffer_size(ctrl, win->id);
-
- if (win->id > 0)
- s3cfb_set_alpha_blending(ctrl, win->id);
-
- return 0;
-}
-
-static int s3cfb_blank(int blank_mode, struct fb_info *fb)
-{
- struct s3cfb_window *win = fb->par;
-
- dev_dbg(ctrl->dev, "change blank mode\n");
-
- switch (blank_mode) {
- case FB_BLANK_UNBLANK:
- if (fb->fix.smem_start)
- s3cfb_enable_window(win->id);
- else
- dev_info(ctrl->dev, "[fb%d] no allocated memory for unblank\n",
- win->id);
- break;
-
- case FB_BLANK_POWERDOWN:
- s3cfb_disable_window(win->id);
- break;
-
- default:
- dev_dbg(ctrl->dev, "unsupported blank mode\n");
- return -EINVAL;
- }
-
- return 0;
-}
-
-static int s3cfb_pan_display(struct fb_var_screeninfo *var,
- struct fb_info *fb)
-{
- struct s3cfb_window *win = fb->par;
-
- if (var->yoffset + var->yres > var->yres_virtual) {
- dev_err(ctrl->dev, "invalid yoffset value\n");
- return -EINVAL;
- }
-
- fb->var.yoffset = var->yoffset;
-
- dev_dbg(ctrl->dev, "[fb%d] yoffset for pan display: %d\n", win->id,
- var->yoffset);
-
- s3cfb_set_buffer_address(ctrl, win->id);
-
- return 0;
-}
-
-static inline unsigned int __chan_to_field(unsigned int chan,
- struct fb_bitfield bf)
-{
- chan &= 0xffff;
- chan >>= 16 - bf.length;
-
- return chan << bf.offset;
-}
-
-static int s3cfb_setcolreg(unsigned int regno, unsigned int red,
- unsigned int green, unsigned int blue,
- unsigned int transp, struct fb_info *fb)
-{
- unsigned int *pal = (unsigned int *) fb->pseudo_palette;
- unsigned int val = 0;
-
- if (regno < 16) {
- /* fake palette of 16 colors */
- val |= __chan_to_field(red, fb->var.red);
- val |= __chan_to_field(green, fb->var.green);
- val |= __chan_to_field(blue, fb->var.blue);
- val |= __chan_to_field(transp, fb->var.transp);
-
- pal[regno] = val;
- }
-
- return 0;
-}
-
-static int s3cfb_open(struct fb_info *fb, int user)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct s3cfb_window *win = fb->par;
- int ret = 0;
-
- mutex_lock(&ctrl->lock);
-
- if (atomic_read(&win->in_use)) {
- if (win->id == pdata->default_win) {
- dev_dbg(ctrl->dev,
- "multiple open for default window\n");
- ret = 0;
- } else {
- dev_dbg(ctrl->dev,
- "do not allow multiple open "
- "for non-default window\n");
- ret = -EBUSY;
- }
- } else
- atomic_inc(&win->in_use);
-
- mutex_unlock(&ctrl->lock);
-
- return ret;
-}
-
-static int s3cfb_release_window(struct fb_info *fb)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct s3cfb_window *win = fb->par;
-
- if (win->id != pdata->default_win) {
- s3cfb_disable_window(win->id);
- s3cfb_unmap_video_memory(fb);
- s3cfb_set_buffer_address(ctrl, win->id);
- }
-
- win->x = 0;
- win->y = 0;
-
- return 0;
-}
-
-static int s3cfb_release(struct fb_info *fb, int user)
-{
- struct s3cfb_window *win = fb->par;
-
- s3cfb_release_window(fb);
-
- mutex_lock(&ctrl->lock);
- atomic_dec(&win->in_use);
- mutex_unlock(&ctrl->lock);
-
- return 0;
-}
-
-static int s3cfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
-{
- /* nothing to do for removing cursor */
- return 0;
-}
-
-static int s3cfb_wait_for_vsync(void)
-{
- int count = ctrl->wq_count;
-
- dev_dbg(ctrl->dev, "waiting for VSYNC interrupt\n");
-
- wait_event_interruptible_timeout(ctrl->wq,
- count != ctrl->wq_count, HZ / 10);
-
- dev_dbg(ctrl->dev, "got a VSYNC interrupt\n");
-
- return 0;
-}
-
-static int s3cfb_ioctl(struct fb_info *fb, unsigned int cmd,
- unsigned long arg)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct fb_var_screeninfo *var = &fb->var;
- struct s3cfb_window *win = fb->par, *win_temp;
- struct s3cfb_lcd *lcd = ctrl->lcd;
- int ret = 0, i;
-
- union {
- struct s3cfb_user_window user_window;
- struct s3cfb_user_plane_alpha user_alpha;
- struct s3cfb_user_chroma user_chroma;
- int vsync;
- } p;
-
- switch (cmd) {
- case FBIO_WAITFORVSYNC:
- s3cfb_wait_for_vsync();
- break;
-
- case S3CFB_WIN_ON:
- s3cfb_enable_window(win->id);
- break;
-
- case S3CFB_WIN_OFF:
- s3cfb_disable_window(win->id);
- break;
-
- case S3CFB_WIN_OFF_ALL:
- for (i = 0; i < pdata->nr_wins; i++) {
- win_temp = ctrl->fb[i]->par;
- s3cfb_disable_window(win_temp->id);
- }
- break;
-
- case S3CFB_WIN_POSITION:
- if (copy_from_user(&p.user_window,
- (struct s3cfb_user_window __user *) arg,
- sizeof(p.user_window)))
- ret = -EFAULT;
- else {
- if (p.user_window.x < 0)
- p.user_window.x = 0;
-
- if (p.user_window.y < 0)
- p.user_window.y = 0;
-
- if (p.user_window.x + var->xres > lcd->width)
- win->x = lcd->width - var->xres;
- else
- win->x = p.user_window.x;
-
- if (p.user_window.y + var->yres > lcd->height)
- win->y = lcd->height - var->yres;
- else
- win->y = p.user_window.y;
-
- s3cfb_set_window_position(ctrl, win->id);
- }
- break;
-
- case S3CFB_WIN_SET_PLANE_ALPHA:
- if (copy_from_user(&p.user_alpha,
- (struct s3cfb_user_plane_alpha __user *) arg,
- sizeof(p.user_alpha)))
- ret = -EFAULT;
- else {
- win->alpha.mode = PLANE_BLENDING;
- win->alpha.channel = p.user_alpha.channel;
- win->alpha.value =
- S3CFB_AVALUE(p.user_alpha.red,
- p.user_alpha.green,
- p.user_alpha.blue);
-
- s3cfb_set_alpha_blending(ctrl, win->id);
- }
- break;
-
- case S3CFB_WIN_SET_CHROMA:
- if (copy_from_user(&p.user_chroma,
- (struct s3cfb_user_chroma __user *) arg,
- sizeof(p.user_chroma)))
- ret = -EFAULT;
- else {
- win->chroma.enabled = p.user_chroma.enabled;
- win->chroma.key = S3CFB_CHROMA(p.user_chroma.red,
- p.user_chroma.green,
- p.user_chroma.blue);
-
- s3cfb_set_chroma_key(ctrl, win->id);
- }
- break;
-
- case S3CFB_SET_VSYNC_INT:
- if (get_user(p.vsync, (int __user *) arg))
- ret = -EFAULT;
- else {
- if (p.vsync)
- s3cfb_set_global_interrupt(ctrl, 1);
-
- s3cfb_set_vsync_interrupt(ctrl, p.vsync);
- }
- break;
- }
-
- return ret;
-}
-
-struct fb_ops s3cfb_ops = {
- .owner = THIS_MODULE,
- .fb_fillrect = cfb_fillrect,
- .fb_copyarea = cfb_copyarea,
- .fb_imageblit = cfb_imageblit,
- .fb_check_var = s3cfb_check_var,
- .fb_set_par = s3cfb_set_par,
- .fb_blank = s3cfb_blank,
- .fb_pan_display = s3cfb_pan_display,
- .fb_setcolreg = s3cfb_setcolreg,
- .fb_cursor = s3cfb_cursor,
- .fb_ioctl = s3cfb_ioctl,
- .fb_open = s3cfb_open,
- .fb_release = s3cfb_release,
-};
-
-/* new function to open fifo */
-int s3cfb_open_fifo(int id, int ch, int (*do_priv)(void *), void *param)
-{
- struct s3cfb_window *win = ctrl->fb[id]->par;
-
- dev_dbg(ctrl->dev, "[fb%d] open fifo\n", win->id);
-
- win->path = DATA_PATH_FIFO;
- win->local_channel = ch;
-
- s3cfb_set_vsync_interrupt(ctrl, 1);
- s3cfb_wait_for_vsync();
- s3cfb_set_vsync_interrupt(ctrl, 0);
-
- if (do_priv) {
- if (do_priv(param)) {
- dev_err(ctrl->dev, "failed to run for private fifo open\n");
- s3cfb_enable_window(id);
- return -EFAULT;
- }
- }
-
- s3cfb_set_window_control(ctrl, id);
- s3cfb_enable_window(id);
-
- return 0;
-}
-
-/* new function to close fifo */
-int s3cfb_close_fifo(int id, int (*do_priv)(void *), void *param, int sleep)
-{
- struct s3cfb_window *win = ctrl->fb[id]->par;
-
- dev_dbg(ctrl->dev, "[fb%d] close fifo\n", win->id);
-
- if (sleep)
- win->path = DATA_PATH_FIFO;
- else
- win->path = DATA_PATH_DMA;
-
- s3cfb_set_vsync_interrupt(ctrl, 1);
- s3cfb_wait_for_vsync();
- s3cfb_set_vsync_interrupt(ctrl, 0);
-
- s3cfb_display_off(ctrl);
- s3cfb_check_line_count(ctrl);
- s3cfb_disable_window(id);
-
- if (do_priv) {
- if (do_priv(param)) {
- dev_err(ctrl->dev, "failed to run for private fifo close\n");
- s3cfb_enable_window(id);
- s3cfb_display_on(ctrl);
- return -EFAULT;
- }
- }
-
- s3cfb_display_on(ctrl);
-
- return 0;
-}
-
-/* for backward compatibilities */
-void s3cfb_enable_local(int id, int in_yuv, int ch)
-{
- struct s3cfb_window *win = ctrl->fb[id]->par;
-
- win->path = DATA_PATH_FIFO;
- win->local_channel = ch;
-
- s3cfb_set_vsync_interrupt(ctrl, 1);
- s3cfb_wait_for_vsync();
- s3cfb_set_vsync_interrupt(ctrl, 0);
-
- s3cfb_set_window_control(ctrl, id);
- s3cfb_enable_window(id);
-}
-
-/* for backward compatibilities */
-void s3cfb_enable_dma(int id)
-{
- struct s3cfb_window *win = ctrl->fb[id]->par;
-
- win->path = DATA_PATH_DMA;
-
- s3cfb_set_vsync_interrupt(ctrl, 1);
- s3cfb_wait_for_vsync();
- s3cfb_set_vsync_interrupt(ctrl, 0);
-
- s3cfb_disable_window(id);
- s3cfb_display_off(ctrl);
- s3cfb_set_window_control(ctrl, id);
- s3cfb_display_on(ctrl);
-}
-
-int s3cfb_direct_ioctl(int id, unsigned int cmd, unsigned long arg)
-{
- struct fb_info *fb = ctrl->fb[id];
- struct fb_var_screeninfo *var = &fb->var;
- struct s3cfb_window *win = fb->par;
- struct s3cfb_lcd *lcd = ctrl->lcd;
- struct s3cfb_user_window user_win;
- void *argp = (void *) arg;
- int ret = 0;
-
- switch (cmd) {
- case FBIO_ALLOC:
- win->path = (enum s3cfb_data_path_t) argp;
- break;
-
- case FBIOGET_FSCREENINFO:
- ret = memcpy(argp, &fb->fix, sizeof(fb->fix)) ? 0 : -EFAULT;
- break;
-
- case FBIOGET_VSCREENINFO:
- ret = memcpy(argp, &fb->var, sizeof(fb->var)) ? 0 : -EFAULT;
- break;
-
- case FBIOPUT_VSCREENINFO:
- ret = s3cfb_check_var((struct fb_var_screeninfo *) argp, fb);
- if (ret) {
- dev_err(ctrl->dev, "invalid vscreeninfo\n");
- break;
- }
-
- ret = memcpy(&fb->var, (struct fb_var_screeninfo *) argp,
- sizeof(fb->var)) ? 0 : -EFAULT;
- if (ret) {
- dev_err(ctrl->dev, "failed to put new vscreeninfo\n");
- break;
- }
-
- ret = s3cfb_set_par(fb);
- break;
-
- case S3CFB_WIN_POSITION:
- ret = memcpy(&user_win, (struct s3cfb_user_window __user *) arg,
- sizeof(user_win)) ? 0 : -EFAULT;
- if (ret) {
- dev_err(ctrl->dev, "failed to S3CFB_WIN_POSITION.\n");
- break;
- }
-
- if (user_win.x < 0)
- user_win.x = 0;
-
- if (user_win.y < 0)
- user_win.y = 0;
-
- if (user_win.x + var->xres > lcd->width)
- win->x = lcd->width - var->xres;
- else
- win->x = user_win.x;
-
- if (user_win.y + var->yres > lcd->height)
- win->y = lcd->height - var->yres;
- else
- win->y = user_win.y;
-
- s3cfb_set_window_position(ctrl, win->id);
- break;
-
- case S3CFB_SET_SUSPEND_FIFO:
- win->suspend_fifo = argp;
- break;
-
- case S3CFB_SET_RESUME_FIFO:
- win->resume_fifo = argp;
- break;
-
- /*
- * for FBIO_WAITFORVSYNC
- */
- default:
- ret = s3cfb_ioctl(fb, cmd, arg);
- break;
- }
-
- return ret;
-}
-
-EXPORT_SYMBOL(s3cfb_direct_ioctl);
-
-static int s3cfb_init_fbinfo(int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct fb_info *fb = ctrl->fb[id];
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct fb_var_screeninfo *var = &fb->var;
- struct s3cfb_window *win = fb->par;
- struct s3cfb_alpha *alpha = &win->alpha;
- struct s3cfb_lcd *lcd = ctrl->lcd;
- struct s3cfb_lcd_timing *timing = &lcd->timing;
-
- memset(win, 0, sizeof(struct s3cfb_window));
- platform_set_drvdata(to_platform_device(ctrl->dev), fb);
- strcpy(fix->id, S3CFB_NAME);
-
- /* fimd specific */
- win->id = id;
- win->path = DATA_PATH_DMA;
- win->dma_burst = 16;
- alpha->mode = PLANE_BLENDING;
-
- /* fbinfo */
- fb->fbops = &s3cfb_ops;
- fb->flags = FBINFO_FLAG_DEFAULT;
- fb->pseudo_palette = &win->pseudo_pal;
- fix->xpanstep = 0;
- fix->ypanstep = pdata->nr_buffers[id] - 1;
- fix->type = FB_TYPE_PACKED_PIXELS;
- fix->accel = FB_ACCEL_NONE;
- fix->visual = FB_VISUAL_TRUECOLOR;
- var->xres = lcd->width;
- var->yres = lcd->height;
- var->xres_virtual = var->xres;
- var->yres_virtual = var->yres + (var->yres * fix->ypanstep);
- var->bits_per_pixel = 32;
- var->xoffset = 0;
- var->yoffset = 0;
- var->width = 0;
- var->height = 0;
- var->transp.length = 0;
-
- fix->line_length = var->xres_virtual * var->bits_per_pixel / 8;
- fix->smem_len = fix->line_length * var->yres_virtual;
-
- var->nonstd = 0;
- var->activate = FB_ACTIVATE_NOW;
- var->vmode = FB_VMODE_NONINTERLACED;
- var->hsync_len = timing->h_sw;
- var->vsync_len = timing->v_sw;
- var->left_margin = timing->h_bp;
- var->right_margin = timing->h_fp;
- var->upper_margin = timing->v_bp;
- var->lower_margin = timing->v_fp;
-
- var->pixclock = lcd->freq * (var->left_margin + var->right_margin +
- var->hsync_len + var->xres) *
- (var->upper_margin + var->lower_margin +
- var->vsync_len + var->yres);
-
- dev_dbg(ctrl->dev, "pixclock: %d\n", var->pixclock);
-
- s3cfb_set_bitfield(var);
- s3cfb_set_alpha_info(var, win);
-
- return 0;
-}
-
-static int s3cfb_alloc_framebuffer(void)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- int ret, i;
-
- /* alloc for framebuffers */
- ctrl->fb = (struct fb_info **) kmalloc(pdata->nr_wins *
- sizeof(struct fb_info *), GFP_KERNEL);
- if (!ctrl->fb) {
- dev_err(ctrl->dev, "not enough memory\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- /* alloc for each framebuffer */
- for (i = 0; i < pdata->nr_wins; i++) {
- ctrl->fb[i] = framebuffer_alloc(sizeof(struct s3cfb_window),
- ctrl->dev);
- if (!ctrl->fb[i]) {
- dev_err(ctrl->dev, "not enough memory\n");
- ret = -ENOMEM;
- goto err_alloc_fb;
- }
-
- ret = s3cfb_init_fbinfo(i);
- if (ret) {
- dev_err(ctrl->dev, "failed to allocate memory for fb%d\n", i);
- ret = -ENOMEM;
- goto err_alloc_fb;
- }
-
- if (i == pdata->default_win) {
- if (s3cfb_map_video_memory(ctrl->fb[i])) {
- dev_err(ctrl->dev, "failed to map video memory "
- "for default window (%d)\n", i);
- ret = -ENOMEM;
- goto err_alloc_fb;
- }
- }
- }
-
- return 0;
-
-err_alloc_fb:
- for (i = 0; i < pdata->nr_wins; i++) {
- if (ctrl->fb[i])
- framebuffer_release(ctrl->fb[i]);
- }
-
- kfree(ctrl->fb);
-
-err_alloc:
- return ret;
-}
-
-int s3cfb_register_framebuffer(void)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- int ret, i;
-
- for (i = 0; i < pdata->nr_wins; i++) {
- ret = register_framebuffer(ctrl->fb[i]);
- if (ret) {
- dev_err(ctrl->dev, "failed to register framebuffer device\n");
- return -EINVAL;
- }
-
-#ifndef CONFIG_FRAMEBUFFER_CONSOLE
- if (i == pdata->default_win) {
- s3cfb_check_var(&ctrl->fb[i]->var, ctrl->fb[i]);
- s3cfb_set_par(ctrl->fb[i]);
- s3cfb_draw_logo(ctrl->fb[i]);
- }
-#endif
- }
-
- return 0;
-}
-
-static int s3cfb_sysfs_show_win_power(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(dev);
- struct s3cfb_window *win;
- char temp[16];
- int i;
-
- for (i = 0; i < pdata->nr_wins; i++) {
- win = ctrl->fb[i]->par;
- sprintf(temp, "[fb%d] %s\n", i, win->enabled ? "on" : "off");
- strcat(buf, temp);
- }
-
- return strlen(buf);
-}
-
-static int s3cfb_sysfs_store_win_power(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t len)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(dev);
- char temp[4] = {0, };
- const char *p = buf;
- int id, to;
-
- while (*p != '\0') {
- if (!isspace(*p))
- strncat(temp, p, 1);
- p++;
- }
-
- if (strlen(temp) != 2)
- return -EINVAL;
-
- id = simple_strtoul(temp, NULL, 10) / 10;
- to = simple_strtoul(temp, NULL, 10) % 10;
-
- if (id < 0 || id > pdata->nr_wins)
- return -EINVAL;
-
- if (to != 0 && to != 1)
- return -EINVAL;
-
- if (to == 0)
- s3cfb_disable_window(id);
- else
- s3cfb_enable_window(id);
-
- return len;
-}
-
-static DEVICE_ATTR(win_power, 0644,
- s3cfb_sysfs_show_win_power,
- s3cfb_sysfs_store_win_power);
-
-static int s3cfb_probe(struct platform_device *pdev)
-{
- struct s3c_platform_fb *pdata;
- struct resource *res;
- int ret = 0;
-
- /* initialzing global structure */
- ctrl = kzalloc(sizeof(struct s3cfb_global), GFP_KERNEL);
- if (!ctrl) {
- dev_err(ctrl->dev, "failed to allocate for global fb structure\n");
- goto err_global;
- }
-
- ctrl->dev = &pdev->dev;
- s3cfb_set_lcd_info(ctrl);
-
- /* gpio */
- pdata = to_fb_plat(&pdev->dev);
- if (pdata->cfg_gpio)
- pdata->cfg_gpio(pdev);
-
- /* clock */
- ctrl->clock = clk_get(&pdev->dev, pdata->clk_name);
- if (IS_ERR(ctrl->clock)) {
- dev_err(ctrl->dev, "failed to get fimd clock source\n");
- ret = -EINVAL;
- goto err_clk;
- }
-
- clk_enable(ctrl->clock);
-
- /* io memory */
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res) {
- dev_err(ctrl->dev, "failed to get io memory region\n");
- ret = -EINVAL;
- goto err_io;
- }
-
- /* request mem region */
- res = request_mem_region(res->start,
- res->end - res->start + 1, pdev->name);
- if (!res) {
- dev_err(ctrl->dev, "failed to request io memory region\n");
- ret = -EINVAL;
- goto err_io;
- }
-
- /* ioremap for register block */
- ctrl->regs = ioremap(res->start, res->end - res->start + 1);
- if (!ctrl->regs) {
- dev_err(ctrl->dev, "failed to remap io region\n");
- ret = -EINVAL;
- goto err_io;
- }
-
- /* irq */
- ctrl->irq = platform_get_irq(pdev, 0);
- if (request_irq(ctrl->irq, s3cfb_irq_frame, IRQF_DISABLED,
- pdev->name, ctrl)) {
- dev_err(ctrl->dev, "request_irq failed\n");
- ret = -EINVAL;
- goto err_irq;
- }
-
-#ifdef CONFIG_FB_S3C_V2_TRACE_UNDERRUN
- if (request_irq(platform_get_irq(pdev, 1), s3cfb_irq_fifo,
- IRQF_DISABLED, pdev->name, ctrl)) {
- dev_err(ctrl->dev, "request_irq failed\n");
- ret = -EINVAL;
- goto err_irq;
- }
-
- s3cfb_set_fifo_interrupt(ctrl, 1);
- dev_info(ctrl->dev, "fifo underrun trace\n");
-#endif
-
- /* init global */
- s3cfb_init_global();
- s3cfb_display_on(ctrl);
-
- /* panel control */
- if (pdata->backlight_on)
- pdata->backlight_on(pdev);
-
- if (pdata->lcd_on)
- pdata->lcd_on(pdev);
-
- if (ctrl->lcd->init_ldi)
- ctrl->lcd->init_ldi();
-
- /* prepare memory */
- if (s3cfb_alloc_framebuffer())
- goto err_alloc;
-
- if (s3cfb_register_framebuffer())
- goto err_alloc;
-
- s3cfb_set_clock(ctrl);
- s3cfb_enable_window(pdata->default_win);
-
- ret = device_create_file(&(pdev->dev), &dev_attr_win_power);
- if (ret < 0)
- dev_err(ctrl->dev, "failed to add sysfs entries\n");
-
- dev_info(ctrl->dev, "registered successfully\n");
-
- return 0;
-
-err_alloc:
- free_irq(ctrl->irq, ctrl);
-
-err_irq:
- iounmap(ctrl->regs);
-
-err_io:
- clk_disable(ctrl->clock);
-
-err_clk:
- clk_put(ctrl->clock);
-
-err_global:
- return ret;
-}
-
-static int s3cfb_remove(struct platform_device *pdev)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(&pdev->dev);
- struct fb_info *fb;
- int i;
-
- free_irq(ctrl->irq, ctrl);
- iounmap(ctrl->regs);
- clk_disable(ctrl->clock);
- clk_put(ctrl->clock);
-
- for (i = 0; i < pdata->nr_wins; i++) {
- fb = ctrl->fb[i];
-
- /* free if exists */
- if (fb) {
- s3cfb_unmap_video_memory(fb);
- s3cfb_set_buffer_address(ctrl, i);
- framebuffer_release(fb);
- }
- }
-
- kfree(ctrl->fb);
- kfree(ctrl);
-
- return 0;
-}
-
-#ifdef CONFIG_PM
-int s3cfb_suspend(struct platform_device *pdev, pm_message_t state)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(&pdev->dev);
- struct s3cfb_window *win;
- int i;
-
- for (i = 0; i < pdata->nr_wins; i++) {
- win = ctrl->fb[i]->par;
- if (win->path == DATA_PATH_FIFO && win->suspend_fifo) {
- if (win->suspend_fifo())
- dev_info(ctrl->dev, "failed to run the suspend for fifo\n");
- }
- }
-
- s3cfb_display_off(ctrl);
- clk_disable(ctrl->clock);
-
- return 0;
-}
-
-int s3cfb_resume(struct platform_device *pdev)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(&pdev->dev);
- struct fb_info *fb;
- struct s3cfb_window *win;
- int i;
-
- dev_dbg(ctrl->dev, "wake up from suspend\n");
-
- if (pdata->cfg_gpio)
- pdata->cfg_gpio(pdev);
-
- if (pdata->backlight_on)
- pdata->backlight_on(pdev);
-
- if (pdata->lcd_on)
- pdata->lcd_on(pdev);
-
- if (ctrl->lcd->init_ldi)
- ctrl->lcd->init_ldi();
-
- clk_enable(ctrl->clock);
- s3cfb_init_global();
- s3cfb_set_clock(ctrl);
- s3cfb_display_on(ctrl);
-
- for (i = 0; i < pdata->nr_wins; i++) {
- fb = ctrl->fb[i];
- win = fb->par;
-
- if (win->path == DATA_PATH_FIFO && win->resume_fifo) {
- if (win->resume_fifo())
- dev_info(ctrl->dev, "failed to run the resume for fifo\n");
- } else {
- if (win->enabled) {
- s3cfb_check_var(&fb->var, fb);
- s3cfb_set_par(fb);
- s3cfb_enable_window(win->id);
- }
- }
- }
-
- return 0;
-}
-#else
-#define s3cfb_suspend NULL
-#define s3cfb_resume NULL
-#endif
-
-static struct platform_driver s3cfb_driver = {
- .probe = s3cfb_probe,
- .remove = s3cfb_remove,
- .suspend = s3cfb_suspend,
- .resume = s3cfb_resume,
- .driver = {
- .name = S3CFB_NAME,
- .owner = THIS_MODULE,
- },
-};
-
-static int s3cfb_register(void)
-{
- platform_driver_register(&s3cfb_driver);
-
- return 0;
-}
-
-static void s3cfb_unregister(void)
-{
- platform_driver_unregister(&s3cfb_driver);
-}
-
-module_init(s3cfb_register);
-module_exit(s3cfb_unregister);
-
-MODULE_AUTHOR("Jinsung, Yang <jsgood.yang@samsung.com>");
-MODULE_DESCRIPTION("Samsung Display Controller (FIMD) driver");
-MODULE_LICENSE("GPL");
-
diff --git a/drivers/video/samsung_duallcd/s3cfb2.h b/drivers/video/samsung_duallcd/s3cfb2.h
deleted file mode 100644
index a009fe5..0000000
--- a/drivers/video/samsung_duallcd/s3cfb2.h
+++ /dev/null
@@ -1,299 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb2.h
- *
- * Header file for Samsung Display Driver (FIMD) driver
- *
- * Jinsung Yang, Copyright (c) 2009 Samsung Electronics
- * http://www.samsungsemi.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _S3CFB_H
-#define _S3CFB_H
-
-#ifdef __KERNEL__
-#include <linux/wait.h>
-#include <linux/mutex.h>
-#include <linux/fb.h>
-#include <plat/fb.h>
-#endif
-
-/*
- * C O M M O N D E F I N I T I O N S
- *
-*/
-#define S3CFB_NAME "s3cfb"
-
-#define info(args...) do { printk(KERN_INFO S3CFB_NAME ": " args); } while (0)
-#define err(args...) do { printk(KERN_ERR S3CFB_NAME ": " args); } while (0)
-
-#define S3CFB_AVALUE(r, g, b) (((r & 0xf) << 8) | ((g & 0xf) << 4) | ((b & 0xf) << 0))
-#define S3CFB_CHROMA(r, g, b) (((r & 0xff) << 16) | ((g & 0xff) << 8) | ((b & 0xff) << 0))
-
-
-/*
- * E N U M E R A T I O N S
- *
-*/
-enum s3cfb_data_path_t {
- DATA_PATH_FIFO = 0,
- DATA_PATH_DMA = 1,
-};
-
-enum s3cfb_alpha_t {
- PLANE_BLENDING,
- PIXEL_BLENDING,
-};
-
-enum s3cfb_chroma_dir_t {
- CHROMA_FG,
- CHROMA_BG,
-};
-
-enum s3cfb_output_t {
- OUTPUT_RGB,
- OUTPUT_ITU,
- OUTPUT_I80LDI0,
- OUTPUT_I80LDI1,
- OUTPUT_TV,
- OUTPUT_TV_RGB,
- OUTPUT_TV_I80LDI0,
- OUTPUT_TV_I80LDI1,
-};
-
-enum s3cfb_rgb_mode_t {
- MODE_RGB_P = 0,
- MODE_BGR_P = 1,
- MODE_RGB_S = 2,
- MODE_BGR_S = 3,
-};
-
-
-/*
- * F I M D S T R U C T U R E S
- *
-*/
-
-/*
- * struct s3cfb_alpha
- * @mode: blending method (plane/pixel)
- * @channel: alpha channel (0/1)
- * @value: alpha value (for plane blending)
-*/
-struct s3cfb_alpha {
- enum s3cfb_alpha_t mode;
- int channel;
- unsigned int value;
-};
-
-/*
- * struct s3cfb_chroma
- * @enabled: if chroma key function enabled
- * @blended: if chroma key alpha blending enabled (unused)
- * @key: chroma value to be applied
- * @comp_key: compare key (unused)
- * @alpha: alpha value for chroma (unused)
- * @dir: chroma key direction (fg/bg, fixed to fg)
- *
-*/
-struct s3cfb_chroma {
- int enabled;
- int blended;
- unsigned int key;
- unsigned int comp_key;
- unsigned int alpha;
- enum s3cfb_chroma_dir_t dir;
-};
-
-/*
- * struct s3cfb_lcd_polarity
- * @rise_vclk: if 1, video data is fetched at rising edge
- * @inv_hsync: if HSYNC polarity is inversed
- * @inv_vsync: if VSYNC polarity is inversed
- * @inv_vden: if VDEN polarity is inversed
-*/
-struct s3cfb_lcd_polarity {
- int rise_vclk;
- int inv_hsync;
- int inv_vsync;
- int inv_vden;
-};
-
-/*
- * struct s3cfb_lcd_timing
- * @h_fp: horizontal front porch
- * @h_bp: horizontal back porch
- * @h_sw: horizontal sync width
- * @v_fp: vertical front porch
- * @v_fpe: vertical front porch for even field
- * @v_bp: vertical back porch
- * @v_bpe: vertical back porch for even field
-*/
-struct s3cfb_lcd_timing {
- int h_fp;
- int h_bp;
- int h_sw;
- int v_fp;
- int v_fpe;
- int v_bp;
- int v_bpe;
- int v_sw;
-};
-
-/*
- * struct s3cfb_lcd
- * @width: horizontal resolution
- * @height: vertical resolution
- * @bpp: bits per pixel
- * @freq: vframe frequency
- * @timing: timing values
- * @polarity: polarity settings
- * @init_ldi: pointer to LDI init function
- *
-*/
-struct s3cfb_lcd {
- int width;
- int height;
- int bpp;
- int freq;
- struct s3cfb_lcd_timing timing;
- struct s3cfb_lcd_polarity polarity;
-
- void (*init_ldi)(void);
-};
-
-/*
- * struct s3cfb_window
- * @id: window id
- * @enabled: if enabled
- * @x: left x of start offset
- * @y: top y of start offset
- * @path: data path (dma/fifo)
- * @local_channel: local channel for fifo path (0/1)
- * @dma_burst: dma burst length (4/8/16)
- * @unpacked: if unpacked format is
- * @pseudo_pal: pseudo palette for fb layer
- * @alpha: alpha blending structure
- * @chroma: chroma key structure
-*/
-struct s3cfb_window {
- int id;
- int enabled;
- atomic_t in_use;
- int x;
- int y;
- enum s3cfb_data_path_t path;
- int local_channel;
- int dma_burst;
- unsigned int pseudo_pal[16];
- struct s3cfb_alpha alpha;
- struct s3cfb_chroma chroma;
- int (*suspend_fifo)(void);
- int (*resume_fifo)(void);
-};
-
-/*
- * struct s3cfb_global
- *
- * @fb: pointer to fb_info
- * @enabled: if signal output enabled
- * @dsi: if mipi-dsim enabled
- * @interlace: if interlace format is used
- * @output: output path (RGB/I80/Etc)
- * @rgb_mode: RGB mode
- * @lcd: pointer to lcd structure
-*/
-struct s3cfb_global {
- /* general */
- void __iomem *regs;
- struct mutex lock;
- struct device *dev;
- struct clk *clock;
- int irq;
- wait_queue_head_t wq;
- unsigned int wq_count;
- struct fb_info **fb;
-
- /* fimd */
- int enabled;
- int dsi;
- int interlace;
- enum s3cfb_output_t output;
- enum s3cfb_rgb_mode_t rgb_mode;
- struct s3cfb_lcd *lcd;
-};
-
-
-/*
- * S T R U C T U R E S F O R C U S T O M I O C T L S
- *
-*/
-struct s3cfb_user_window {
- int x;
- int y;
-};
-
-struct s3cfb_user_plane_alpha {
- int channel;
- unsigned char red;
- unsigned char green;
- unsigned char blue;
-};
-
-struct s3cfb_user_chroma {
- int enabled;
- unsigned char red;
- unsigned char green;
- unsigned char blue;
-};
-
-
-/*
- * C U S T O M I O C T L S
- *
-*/
-#define S3CFB_WIN_ON _IO ('F', 200)
-#define S3CFB_WIN_OFF _IO ('F', 201)
-#define S3CFB_WIN_OFF_ALL _IO ('F', 202)
-#define S3CFB_WIN_POSITION _IOW ('F', 203, struct s3cfb_user_window)
-#define S3CFB_WIN_SET_PLANE_ALPHA _IOW ('F', 204, struct s3cfb_user_plane_alpha)
-#define S3CFB_WIN_SET_CHROMA _IOW ('F', 205, struct s3cfb_user_chroma)
-#define S3CFB_SET_VSYNC_INT _IOW ('F', 206, unsigned int)
-#define S3CFB_SET_SUSPEND_FIFO _IOW ('F', 300, unsigned long)
-#define S3CFB_SET_RESUME_FIFO _IOW ('F', 301, unsigned long)
-
-
-/*
- * E X T E R N S
- *
-*/
-extern int soft_cursor(struct fb_info *info, struct fb_cursor *cursor);
-extern void s3cfb_set_lcd_info(struct s3cfb_global *ctrl);
-extern struct s3c_platform_fb *to_fb_plat(struct device *dev);
-extern void s3cfb_check_line_count(struct s3cfb_global *ctrl);
-extern int s3cfb_set_output(struct s3cfb_global *ctrl);
-extern int s3cfb_set_display_mode(struct s3cfb_global *ctrl);
-extern int s3cfb_display_on(struct s3cfb_global *ctrl);
-extern int s3cfb_display_off(struct s3cfb_global *ctrl);
-extern int s3cfb_frame_off(struct s3cfb_global *ctrl);
-extern int s3cfb_set_clock(struct s3cfb_global *ctrl);
-extern int s3cfb_set_polarity(struct s3cfb_global *ctrl);
-extern int s3cfb_set_timing(struct s3cfb_global *ctrl);
-extern int s3cfb_set_lcd_size(struct s3cfb_global *ctrl);
-extern int s3cfb_set_global_interrupt(struct s3cfb_global *ctrl, int enable);
-extern int s3cfb_set_vsync_interrupt(struct s3cfb_global *ctrl, int enable);
-extern int s3cfb_set_fifo_interrupt(struct s3cfb_global *ctrl, int enable);
-extern int s3cfb_clear_interrupt(struct s3cfb_global *ctrl);
-extern int s3cfb_window_on(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_window_off(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_window_control(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_alpha_blending(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_window_position(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_window_size(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_buffer_address(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_buffer_size(struct s3cfb_global *ctrl, int id);
-extern int s3cfb_set_chroma_key(struct s3cfb_global *ctrl, int id);
-
-#endif /* _S3CFB_H */
diff --git a/drivers/video/samsung_duallcd/s3cfb2_fimd4x.c b/drivers/video/samsung_duallcd/s3cfb2_fimd4x.c
deleted file mode 100644
index 2adcee2..0000000
--- a/drivers/video/samsung_duallcd/s3cfb2_fimd4x.c
+++ /dev/null
@@ -1,558 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb2_fimd4x.c
- *
- * Register interface file for Samsung Display Controller (FIMD) driver
- *
- * Jinsung Yang, Copyright (c) 2009 Samsung Electronics
- * http://www.samsungsemi.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/delay.h>
-#include <linux/device.h>
-#include <linux/fb.h>
-#include <linux/io.h>
-#include <mach/map.h>
-#include <plat/clock.h>
-#include <plat/fb.h>
-#include <plat/regs-fb.h>
-
-#include "s3cfb2.h"
-
-void s3cfb_check_line_count(struct s3cfb_global *ctrl)
-{
- int timeout = 30 * 5300;
- int i = 0;
-
- do {
- if (!(readl(ctrl->regs + S3C_VIDCON1) & 0x7ff0000))
- break;
- i++;
- } while (i < timeout);
-
- if (i == timeout) {
- dev_err(ctrl->dev, "line count mismatch\n");
- s3cfb_display_on(ctrl);
- }
-}
-
-int s3cfb_set_output(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_VIDOUT_MASK;
-
- if (ctrl->output == OUTPUT_RGB)
- cfg |= S3C_VIDCON0_VIDOUT_RGB;
- else if (ctrl->output == OUTPUT_ITU)
- cfg |= S3C_VIDCON0_VIDOUT_ITU;
- else if (ctrl->output == OUTPUT_I80LDI0)
- cfg |= S3C_VIDCON0_VIDOUT_I80LDI0;
- else if (ctrl->output == OUTPUT_I80LDI1)
- cfg |= S3C_VIDCON0_VIDOUT_I80LDI1;
- else {
- dev_err(ctrl->dev, "invalid output type: %d\n", ctrl->output);
- return -EINVAL;
- }
-
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- return 0;
-}
-
-int s3cfb_set_display_mode(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_PNRMODE_MASK;
- cfg |= (ctrl->rgb_mode << S3C_VIDCON0_PNRMODE_SHIFT);
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- return 0;
-}
-
-int s3cfb_display_on(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg |= (S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE);
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "global display is on\n");
-
- return 0;
-}
-
-int s3cfb_display_off(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_ENVID_ENABLE;
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- cfg &= ~S3C_VIDCON0_ENVID_F_ENABLE;
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "global display is off\n");
-
- return 0;
-}
-
-int s3cfb_frame_off(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_ENVID_F_ENABLE;
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "current frame display is off\n");
-
- return 0;
-}
-
-int s3cfb_set_clock(struct s3cfb_global *ctrl)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- unsigned int cfg, maxclk, src_clk, vclk, div;
-
- maxclk = 66 * 1000000;
-
- /* fixed clock source: hclk */
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~(S3C_VIDCON0_CLKSEL_MASK | S3C_VIDCON0_CLKVALUP_MASK |
- S3C_VIDCON0_VCLKEN_MASK | S3C_VIDCON0_CLKDIR_MASK);
- cfg |= (S3C_VIDCON0_CLKSEL_HCLK | S3C_VIDCON0_CLKVALUP_ALWAYS |
- S3C_VIDCON0_VCLKEN_NORMAL | S3C_VIDCON0_CLKDIR_DIVIDED);
-
- src_clk = ctrl->clock->parent->rate;
- vclk = ctrl->fb[pdata->default_win]->var.pixclock;
-
- if (vclk > maxclk)
- vclk = maxclk;
-
- div = src_clk / vclk;
- if (src_clk % vclk)
- div++;
-
- cfg |= S3C_VIDCON0_CLKVAL_F(div - 1);
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "parent clock: %d, vclk: %d, vclk div: %d\n",
- src_clk, vclk, div);
-
- return 0;
-}
-
-int s3cfb_set_polarity(struct s3cfb_global *ctrl)
-{
- struct s3cfb_lcd_polarity *pol;
- unsigned int cfg;
-
- pol = &ctrl->lcd->polarity;
- cfg = 0;
-
- if (pol->rise_vclk)
- cfg |= S3C_VIDCON1_IVCLK_RISING_EDGE;
-
- if (pol->inv_hsync)
- cfg |= S3C_VIDCON1_IHSYNC_INVERT;
-
- if (pol->inv_vsync)
- cfg |= S3C_VIDCON1_IVSYNC_INVERT;
-
- if (pol->inv_vden)
- cfg |= S3C_VIDCON1_IVDEN_INVERT;
-
- writel(cfg, ctrl->regs + S3C_VIDCON1);
-
- return 0;
-}
-
-int s3cfb_set_timing(struct s3cfb_global *ctrl)
-{
- struct s3cfb_lcd_timing *time;
- unsigned int cfg;
-
- time = &ctrl->lcd->timing;
- cfg = 0;
-
- cfg |= S3C_VIDTCON0_VBPDE(time->v_bpe - 1);
- cfg |= S3C_VIDTCON0_VBPD(time->v_bp - 1);
- cfg |= S3C_VIDTCON0_VFPD(time->v_fp - 1);
- cfg |= S3C_VIDTCON0_VSPW(time->v_sw - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDTCON0);
-
- cfg = 0;
-
- cfg |= S3C_VIDTCON1_VFPDE(time->v_fpe - 1);
- cfg |= S3C_VIDTCON1_HBPD(time->h_bp - 1);
- cfg |= S3C_VIDTCON1_HFPD(time->h_fp - 1);
- cfg |= S3C_VIDTCON1_HSPW(time->h_sw - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDTCON1);
-
- return 0;
-}
-
-int s3cfb_set_lcd_size(struct s3cfb_global *ctrl)
-{
- unsigned int cfg = 0;
-
- cfg |= S3C_VIDTCON2_HOZVAL(ctrl->lcd->width - 1);
- cfg |= S3C_VIDTCON2_LINEVAL(ctrl->lcd->height - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDTCON2);
-
- return 0;
-}
-
-int s3cfb_set_global_interrupt(struct s3cfb_global *ctrl, int enable)
-{
- unsigned int cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
- cfg &= ~(S3C_VIDINTCON0_INTFRMEN_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
-
- if (enable) {
- dev_dbg(ctrl->dev, "video interrupt is on\n");
- cfg |= (S3C_VIDINTCON0_INTFRMEN_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
- } else {
- dev_dbg(ctrl->dev, "video interrupt is off\n");
- cfg |= (S3C_VIDINTCON0_INTFRMEN_DISABLE |
- S3C_VIDINTCON0_INT_DISABLE);
- }
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON0);
-
- return 0;
-}
-
-int s3cfb_set_vsync_interrupt(struct s3cfb_global *ctrl, int enable)
-{
- unsigned int cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
- cfg &= ~S3C_VIDINTCON0_FRAMESEL0_MASK;
-
- if (enable) {
- dev_dbg(ctrl->dev, "vsync interrupt is on\n");
- cfg |= S3C_VIDINTCON0_FRAMESEL0_VSYNC;
- } else {
- dev_dbg(ctrl->dev, "vsync interrupt is off\n");
- cfg &= ~S3C_VIDINTCON0_FRAMESEL0_VSYNC;
- }
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON0);
-
- return 0;
-}
-
-#ifdef CONFIG_FB_S3C_V2_TRACE_UNDERRUN
-int s3cfb_set_fifo_interrupt(struct s3cfb_global *ctrl, int enable)
-{
- unsigned int cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
-
- cfg &= ~(S3C_VIDINTCON0_FIFOSEL_MASK | S3C_VIDINTCON0_FIFOLEVEL_MASK);
- cfg |= (S3C_VIDINTCON0_FIFOSEL_ALL | S3C_VIDINTCON0_FIFOLEVEL_EMPTY);
-
- if (enable) {
- dev_dbg(ctrl->dev, "fifo interrupt is on\n");
- cfg |= (S3C_VIDINTCON0_INTFIFO_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
- } else {
- dev_dbg(ctrl->dev, "fifo interrupt is off\n");
- cfg &= ~(S3C_VIDINTCON0_INTFIFO_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
- }
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON0);
-
- return 0;
-}
-#endif
-
-int s3cfb_clear_interrupt(struct s3cfb_global *ctrl)
-{
- unsigned int cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON1);
-
- if (cfg & S3C_VIDINTCON1_INTFIFOPEND)
- info("fifo underrun occur\n");
-
- cfg |= (S3C_VIDINTCON1_INTVPPEND | S3C_VIDINTCON1_INTI80PEND |
- S3C_VIDINTCON1_INTFRMPEND | S3C_VIDINTCON1_INTFIFOPEND);
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON1);
-
- return 0;
-}
-
-int s3cfb_window_on(struct s3cfb_global *ctrl, int id)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
- cfg |= S3C_WINCON_ENWIN_ENABLE;
- writel(cfg, ctrl->regs + S3C_WINCON(id));
-
- dev_dbg(ctrl->dev, "[fb%d] turn on\n", id);
-
- return 0;
-}
-
-int s3cfb_window_off(struct s3cfb_global *ctrl, int id)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
- cfg &= ~S3C_WINCON_ENWIN_ENABLE;
- writel(cfg, ctrl->regs + S3C_WINCON(id));
-
- dev_dbg(ctrl->dev, "[fb%d] turn off\n", id);
-
- return 0;
-}
-
-int s3cfb_set_window_control(struct s3cfb_global *ctrl, int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct fb_info *fb = ctrl->fb[id];
- struct fb_var_screeninfo *var = &fb->var;
- struct s3cfb_window *win = fb->par;
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
-
- cfg &= ~(S3C_WINCON_BITSWP_ENABLE | S3C_WINCON_BYTESWP_ENABLE |
- S3C_WINCON_HAWSWP_ENABLE | S3C_WINCON_WSWP_ENABLE |
- S3C_WINCON_BURSTLEN_MASK | S3C_WINCON_BPPMODE_MASK |
- S3C_WINCON_INRGB_MASK | S3C_WINCON_DATAPATH_MASK);
-
- if (win->path == DATA_PATH_FIFO) {
- dev_dbg(ctrl->dev, "[fb%d] data path: fifo\n", id);
-
- cfg |= S3C_WINCON_DATAPATH_LOCAL;
- cfg |= S3C_WINCON_INRGB_RGB;
- cfg |= S3C_WINCON_BPPMODE_24BPP_888;
-
- if (id == 1) {
- cfg &= ~S3C_WINCON1_LOCALSEL_MASK;
-
- if (win->local_channel == 0)
- cfg |= S3C_WINCON1_LOCALSEL_TV;
- else
- cfg |= S3C_WINCON1_LOCALSEL_FIMC1;
- }
- } else {
- dev_dbg(ctrl->dev, "[fb%d] data path: dma\n", id);
-
- cfg |= S3C_WINCON_DATAPATH_DMA;
-
- if (fb->var.bits_per_pixel == 16 && pdata->swap & FB_SWAP_HWORD)
- cfg |= S3C_WINCON_HAWSWP_ENABLE;
-
- if (fb->var.bits_per_pixel == 32 && pdata->swap & FB_SWAP_WORD)
- cfg |= S3C_WINCON_WSWP_ENABLE;
-
- /* dma burst */
- if (win->dma_burst == 4)
- cfg |= S3C_WINCON_BURSTLEN_4WORD;
- else if (win->dma_burst == 8)
- cfg |= S3C_WINCON_BURSTLEN_8WORD;
- else
- cfg |= S3C_WINCON_BURSTLEN_16WORD;
-
- /* bpp mode set */
- switch (fb->var.bits_per_pixel) {
- case 16:
- if (var->transp.length == 1) {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: A1-R5-G5-B5\n", id);
- cfg |= S3C_WINCON_BPPMODE_16BPP_A555;
- } else if (var->transp.length == 4) {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: A4-R4-G4-B4\n", id);
- cfg |= S3C_WINCON_BPPMODE_16BPP_A444;
- } else {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: R5-G6-B5\n", id);
- cfg |= S3C_WINCON_BPPMODE_16BPP_565;
- }
- break;
-
- case 24: /* packed 24 bpp: nothing to do for 4.x fimd */
- break;
-
- case 32:
- if (var->transp.length == 0) {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: R8-G8-B8\n", id);
- cfg |= S3C_WINCON_BPPMODE_24BPP_888;
- } else {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: A4-R8-G8-B8\n", id);
- cfg |= S3C_WINCON_BPPMODE_28BPP_A888;
- }
- break;
- }
- }
-
- writel(cfg, ctrl->regs + S3C_WINCON(id));
-
- return 0;
-}
-
-int s3cfb_set_buffer_address(struct s3cfb_global *ctrl, int id)
-{
- struct fb_fix_screeninfo *fix = &ctrl->fb[id]->fix;
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- dma_addr_t start_addr = 0, end_addr = 0;
-
- if (fix->smem_start) {
- start_addr = fix->smem_start + (var->xres_virtual *
- (var->bits_per_pixel / 8) * var->yoffset);
-
- end_addr = start_addr + (var->xres_virtual *
- (var->bits_per_pixel / 8) * var->yres);
- }
-
- writel(start_addr, ctrl->regs + S3C_VIDADDR_START0(id));
- writel(end_addr, ctrl->regs + S3C_VIDADDR_END0(id));
-
- dev_dbg(ctrl->dev, "[fb%d] start_addr: 0x%08x, end_addr: 0x%08x\n",
- id, start_addr, end_addr);
-
- return 0;
-}
-
-int s3cfb_set_alpha_blending(struct s3cfb_global *ctrl, int id)
-{
- struct s3cfb_window *win = ctrl->fb[id]->par;
- struct s3cfb_alpha *alpha = &win->alpha;
- unsigned int avalue = 0, cfg;
-
- if (id == 0) {
- dev_err(ctrl->dev, "[fb%d] does not support alpha blending\n", id);
- return -EINVAL;
- }
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
- cfg &= ~(S3C_WINCON_BLD_MASK | S3C_WINCON_ALPHA_SEL_MASK);
-
- if (alpha->mode == PIXEL_BLENDING) {
- dev_dbg(ctrl->dev, "[fb%d] alpha mode: pixel blending\n", id);
-
- /* fixing to DATA[31:24] for alpha value */
- cfg |= (S3C_WINCON_BLD_PIXEL | S3C_WINCON_ALPHA1_SEL);
- } else {
- dev_dbg(ctrl->dev, "[fb%d] alpha mode: plane %d blending\n",
- id, alpha->channel);
-
- cfg |= S3C_WINCON_BLD_PLANE;
-
- if (alpha->channel == 0) {
- cfg |= S3C_WINCON_ALPHA0_SEL;
- avalue = (alpha->value << S3C_VIDOSD_ALPHA0_SHIFT);
- } else {
- cfg |= S3C_WINCON_ALPHA1_SEL;
- avalue = (alpha->value << S3C_VIDOSD_ALPHA1_SHIFT);
- }
- }
-
- writel(cfg, ctrl->regs + S3C_WINCON(id));
- writel(avalue, ctrl->regs + S3C_VIDOSD_C(id));
-
- return 0;
-}
-
-int s3cfb_set_window_position(struct s3cfb_global *ctrl, int id)
-{
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- struct s3cfb_window *win = ctrl->fb[id]->par;
- unsigned int cfg;
-
- cfg = S3C_VIDOSD_LEFT_X(win->x) | S3C_VIDOSD_TOP_Y(win->y);
- writel(cfg, ctrl->regs + S3C_VIDOSD_A(id));
-
- cfg = S3C_VIDOSD_RIGHT_X(win->x + var->xres - 1) |
- S3C_VIDOSD_BOTTOM_Y(win->y + var->yres - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDOSD_B(id));
-
- dev_dbg(ctrl->dev, "[fb%d] offset: (%d, %d, %d, %d)\n", id,
- win->x, win->y, win->x + var->xres - 1, win->y + var->yres - 1);
-
- return 0;
-}
-
-int s3cfb_set_window_size(struct s3cfb_global *ctrl, int id)
-{
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- unsigned int cfg;
-
- if (id > 2)
- return 0;
-
- cfg = S3C_VIDOSD_SIZE(var->xres * var->yres);
-
- if (id == 0)
- writel(cfg, ctrl->regs + S3C_VIDOSD_C(id));
- else
- writel(cfg, ctrl->regs + S3C_VIDOSD_D(id));
-
- dev_dbg(ctrl->dev, "[fb%d] resolution: %d x %d\n", id,
- var->xres, var->yres);
-
- return 0;
-}
-
-int s3cfb_set_buffer_size(struct s3cfb_global *ctrl, int id)
-{
- struct fb_fix_screeninfo *fix = &ctrl->fb[id]->fix;
- unsigned int cfg = 0;
-
- cfg = S3C_VIDADDR_PAGEWIDTH(fix->line_length);
- writel(cfg, ctrl->regs + S3C_VIDADDR_SIZE(id));
-
- return 0;
-}
-
-int s3cfb_set_chroma_key(struct s3cfb_global *ctrl, int id)
-{
- struct s3cfb_window *win = ctrl->fb[id]->par;
- struct s3cfb_chroma *chroma = &win->chroma;
- unsigned int cfg = 0;
-
- if (id == 0) {
- dev_err(ctrl->dev, "[fb%d] does not support chroma key\n", id);
- return -EINVAL;
- }
-
- cfg = (S3C_KEYCON0_KEYBLEN_DISABLE | S3C_KEYCON0_DIRCON_MATCH_FG);
-
- if (chroma->enabled)
- cfg |= S3C_KEYCON0_KEY_ENABLE;
-
- writel(cfg, ctrl->regs + S3C_KEYCON(id));
-
- cfg = S3C_KEYCON1_COLVAL(chroma->key);
- writel(cfg, ctrl->regs + S3C_KEYVAL(id));
-
- dev_dbg(ctrl->dev, "[fb%d] chroma key: 0x%08x, %s\n", id, cfg,
- chroma->enabled ? "enabled" : "disabled");
-
- return 0;
-}
diff --git a/drivers/video/samsung_duallcd/s3cfb2_fimd5x.c b/drivers/video/samsung_duallcd/s3cfb2_fimd5x.c
deleted file mode 100644
index 20e8675..0000000
--- a/drivers/video/samsung_duallcd/s3cfb2_fimd5x.c
+++ /dev/null
@@ -1,562 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb2_fimd5x.c
- *
- * Register interface file for Samsung Display Controller (FIMD) driver
- *
- * Jinsung Yang, Copyright (c) 2009 Samsung Electronics
- * http://www.samsungsemi.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/delay.h>
-#include <linux/device.h>
-#include <linux/fb.h>
-#include <linux/io.h>
-#include <mach/map.h>
-#include <plat/clock.h>
-#include <plat/fb.h>
-#include <plat/regs-fb.h>
-
-#include "s3cfb2.h"
-
-void s3cfb_check_line_count(struct s3cfb_global *ctrl)
-{
- int timeout = 30 * 5300;
- int i = 0;
-
- do {
- if (!(readl(ctrl->regs + S3C_VIDCON1) & 0x7ff0000))
- break;
- i++;
- } while (i < timeout);
-
- if (i == timeout) {
- dev_err(ctrl->dev, "line count mismatch\n");
- s3cfb_display_on(ctrl);
- }
-}
-
-int s3cfb_set_output(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_VIDOUT_MASK;
-
- if (ctrl->output == OUTPUT_RGB)
- cfg |= S3C_VIDCON0_VIDOUT_RGB;
- else if (ctrl->output == OUTPUT_ITU)
- cfg |= S3C_VIDCON0_VIDOUT_ITU;
- else if (ctrl->output == OUTPUT_I80LDI0)
- cfg |= S3C_VIDCON0_VIDOUT_I80LDI0;
- else if (ctrl->output == OUTPUT_I80LDI1)
- cfg |= S3C_VIDCON0_VIDOUT_I80LDI1;
- else {
- dev_err(ctrl->dev, "invalid output type: %d\n", ctrl->output);
- return -EINVAL;
- }
-
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- return 0;
-}
-
-int s3cfb_set_display_mode(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_PNRMODE_MASK;
- cfg |= (ctrl->rgb_mode << S3C_VIDCON0_PNRMODE_SHIFT);
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- return 0;
-}
-
-int s3cfb_display_on(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg |= (S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE);
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "global display is on\n");
-
- return 0;
-}
-
-int s3cfb_display_off(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_ENVID_ENABLE;
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- cfg &= ~S3C_VIDCON0_ENVID_F_ENABLE;
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "global display is off\n");
-
- return 0;
-}
-
-int s3cfb_frame_off(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_ENVID_F_ENABLE;
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "current frame display is off\n");
-
- return 0;
-}
-
-int s3cfb_set_clock(struct s3cfb_global *ctrl)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- unsigned int cfg, maxclk, src_clk, vclk, div;
-
- maxclk = 66 * 1000000;
-
- /* fixed clock source: hclk */
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~(S3C_VIDCON0_CLKSEL_MASK | S3C_VIDCON0_CLKVALUP_MASK |
- S3C_VIDCON0_VCLKEN_MASK | S3C_VIDCON0_CLKDIR_MASK);
- cfg |= (S3C_VIDCON0_CLKSEL_HCLK | S3C_VIDCON0_CLKVALUP_ALWAYS |
- S3C_VIDCON0_VCLKEN_NORMAL | S3C_VIDCON0_CLKDIR_DIVIDED);
-
- src_clk = ctrl->clock->parent->rate;
- vclk = ctrl->fb[pdata->default_win]->var.pixclock;
-
- if (vclk > maxclk)
- vclk = maxclk;
-
- div = src_clk / vclk;
- if (src_clk % vclk)
- div++;
-
- cfg |= S3C_VIDCON0_CLKVAL_F(div - 1);
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "parent clock: %d, vclk: %d, vclk div: %d\n",
- src_clk, vclk, div);
-
- return 0;
-}
-
-int s3cfb_set_polarity(struct s3cfb_global *ctrl)
-{
- struct s3cfb_lcd_polarity *pol;
- unsigned int cfg;
-
- pol = &ctrl->lcd->polarity;
- cfg = 0;
-
- if (pol->rise_vclk)
- cfg |= S3C_VIDCON1_IVCLK_RISING_EDGE;
-
- if (pol->inv_hsync)
- cfg |= S3C_VIDCON1_IHSYNC_INVERT;
-
- if (pol->inv_vsync)
- cfg |= S3C_VIDCON1_IVSYNC_INVERT;
-
- if (pol->inv_vden)
- cfg |= S3C_VIDCON1_IVDEN_INVERT;
-
- writel(cfg, ctrl->regs + S3C_VIDCON1);
-
- return 0;
-}
-
-int s3cfb_set_timing(struct s3cfb_global *ctrl)
-{
- struct s3cfb_lcd_timing *time;
- unsigned int cfg;
-
- time = &ctrl->lcd->timing;
- cfg = 0;
-
- cfg |= S3C_VIDTCON0_VBPDE(time->v_bpe - 1);
- cfg |= S3C_VIDTCON0_VBPD(time->v_bp - 1);
- cfg |= S3C_VIDTCON0_VFPD(time->v_fp - 1);
- cfg |= S3C_VIDTCON0_VSPW(time->v_sw - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDTCON0);
-
- cfg = 0;
-
- cfg |= S3C_VIDTCON1_VFPDE(time->v_fpe - 1);
- cfg |= S3C_VIDTCON1_HBPD(time->h_bp - 1);
- cfg |= S3C_VIDTCON1_HFPD(time->h_fp - 1);
- cfg |= S3C_VIDTCON1_HSPW(time->h_sw - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDTCON1);
-
- return 0;
-}
-
-int s3cfb_set_lcd_size(struct s3cfb_global *ctrl)
-{
- unsigned int cfg = 0;
-
- cfg |= S3C_VIDTCON2_HOZVAL(ctrl->lcd->width - 1);
- cfg |= S3C_VIDTCON2_LINEVAL(ctrl->lcd->height - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDTCON2);
-
- return 0;
-}
-
-int s3cfb_set_global_interrupt(struct s3cfb_global *ctrl, int enable)
-{
- unsigned int cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
- cfg &= ~(S3C_VIDINTCON0_INTFRMEN_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
-
- if (enable) {
- dev_dbg(ctrl->dev, "video interrupt is on\n");
- cfg |= (S3C_VIDINTCON0_INTFRMEN_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
- } else {
- dev_dbg(ctrl->dev, "video interrupt is off\n");
- cfg |= (S3C_VIDINTCON0_INTFRMEN_DISABLE |
- S3C_VIDINTCON0_INT_DISABLE);
- }
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON0);
-
- return 0;
-}
-
-int s3cfb_set_vsync_interrupt(struct s3cfb_global *ctrl, int enable)
-{
- unsigned int cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
- cfg &= ~S3C_VIDINTCON0_FRAMESEL0_MASK;
-
- if (enable) {
- dev_dbg(ctrl->dev, "vsync interrupt is on\n");
- cfg |= S3C_VIDINTCON0_FRAMESEL0_VSYNC;
- } else {
- dev_dbg(ctrl->dev, "vsync interrupt is off\n");
- cfg &= ~S3C_VIDINTCON0_FRAMESEL0_VSYNC;
- }
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON0);
-
- return 0;
-}
-
-#ifdef CONFIG_FB_S3C_V2_TRACE_UNDERRUN
-int s3cfb_set_fifo_interrupt(struct s3cfb_global *ctrl, int enable)
-{
- unsigned int cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
-
- cfg &= ~(S3C_VIDINTCON0_FIFOSEL_MASK | S3C_VIDINTCON0_FIFOLEVEL_MASK);
- cfg |= (S3C_VIDINTCON0_FIFOSEL_ALL | S3C_VIDINTCON0_FIFOLEVEL_EMPTY);
-
- if (enable) {
- dev_dbg(ctrl->dev, "fifo interrupt is on\n");
- cfg |= (S3C_VIDINTCON0_INTFIFO_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
- } else {
- dev_dbg(ctrl->dev, "fifo interrupt is off\n");
- cfg &= ~(S3C_VIDINTCON0_INTFIFO_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
- }
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON0);
-
- return 0;
-}
-#endif
-
-int s3cfb_clear_interrupt(struct s3cfb_global *ctrl)
-{
- unsigned int cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON1);
-
- if (cfg & S3C_VIDINTCON1_INTFIFOPEND)
- info("fifo underrun occur\n");
-
- cfg |= (S3C_VIDINTCON1_INTVPPEND | S3C_VIDINTCON1_INTI80PEND |
- S3C_VIDINTCON1_INTFRMPEND | S3C_VIDINTCON1_INTFIFOPEND);
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON1);
-
- return 0;
-}
-
-int s3cfb_window_on(struct s3cfb_global *ctrl, int id)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
- cfg |= S3C_WINCON_ENWIN_ENABLE;
- writel(cfg, ctrl->regs + S3C_WINCON(id));
-
- dev_dbg(ctrl->dev, "[fb%d] turn on\n", id);
-
- return 0;
-}
-
-int s3cfb_window_off(struct s3cfb_global *ctrl, int id)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
- cfg &= ~S3C_WINCON_ENWIN_ENABLE;
- writel(cfg, ctrl->regs + S3C_WINCON(id));
-
- dev_dbg(ctrl->dev, "[fb%d] turn off\n", id);
-
- return 0;
-}
-
-int s3cfb_set_window_control(struct s3cfb_global *ctrl, int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct fb_info *fb = ctrl->fb[id];
- struct fb_var_screeninfo *var = &fb->var;
- struct s3cfb_window *win = fb->par;
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
-
- cfg &= ~(S3C_WINCON_BITSWP_ENABLE | S3C_WINCON_BYTESWP_ENABLE |
- S3C_WINCON_HAWSWP_ENABLE | S3C_WINCON_WSWP_ENABLE |
- S3C_WINCON_BURSTLEN_MASK | S3C_WINCON_BPPMODE_MASK |
- S3C_WINCON_INRGB_MASK | S3C_WINCON_DATAPATH_MASK);
-
- if (win->path == DATA_PATH_FIFO) {
- dev_dbg(ctrl->dev, "[fb%d] data path: fifo\n", id);
-
- cfg |= S3C_WINCON_DATAPATH_LOCAL;
- cfg |= S3C_WINCON_INRGB_RGB;
- cfg |= S3C_WINCON_BPPMODE_24BPP_888;
-
- if (id == 1) {
- cfg &= ~(S3C_WINCON1_LOCALSEL_MASK |
- S3C_WINCON1_VP_ENABLE);
-
- if (win->local_channel == 0) {
- cfg |= S3C_WINCON1_LOCALSEL_FIMC1;
- } else {
- cfg |= (S3C_WINCON1_LOCALSEL_VP |
- S3C_WINCON1_VP_ENABLE);
- }
- }
- } else {
- dev_dbg(ctrl->dev, "[fb%d] data path: dma\n", id);
-
- cfg |= S3C_WINCON_DATAPATH_DMA;
-
- if (fb->var.bits_per_pixel == 16 && pdata->swap & FB_SWAP_HWORD)
- cfg |= S3C_WINCON_HAWSWP_ENABLE;
-
- if (fb->var.bits_per_pixel == 32 && pdata->swap & FB_SWAP_WORD)
- cfg |= S3C_WINCON_WSWP_ENABLE;
-
- /* dma burst */
- if (win->dma_burst == 4)
- cfg |= S3C_WINCON_BURSTLEN_4WORD;
- else if (win->dma_burst == 8)
- cfg |= S3C_WINCON_BURSTLEN_8WORD;
- else
- cfg |= S3C_WINCON_BURSTLEN_16WORD;
-
- /* bpp mode set */
- switch (fb->var.bits_per_pixel) {
- case 16:
- if (var->transp.length == 1) {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: A1-R5-G5-B5\n", id);
- cfg |= S3C_WINCON_BPPMODE_16BPP_A555;
- } else if (var->transp.length == 4) {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: A4-R4-G4-B4\n", id);
- cfg |= S3C_WINCON_BPPMODE_16BPP_A444;
- } else {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: R5-G6-B5\n", id);
- cfg |= S3C_WINCON_BPPMODE_16BPP_565;
- }
- break;
-
- case 24: /* packed 24 bpp: nothing to do for 5.x fimd */
- break;
-
- case 32:
- if (var->transp.length == 0) {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: R8-G8-B8\n", id);
- cfg |= S3C_WINCON_BPPMODE_24BPP_888;
- } else {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: A8-R8-G8-B8\n", id);
- cfg |= S3C_WINCON_BPPMODE_32BPP;
- }
- break;
- }
- }
-
- writel(cfg, ctrl->regs + S3C_WINCON(id));
-
- return 0;
-}
-
-int s3cfb_set_buffer_address(struct s3cfb_global *ctrl, int id)
-{
- struct fb_fix_screeninfo *fix = &ctrl->fb[id]->fix;
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- dma_addr_t start_addr = 0, end_addr = 0;
-
- if (fix->smem_start) {
- start_addr = fix->smem_start + (var->xres_virtual *
- (var->bits_per_pixel / 8) * var->yoffset);
-
- end_addr = start_addr + (var->xres_virtual *
- (var->bits_per_pixel / 8) * var->yres);
- }
-
- writel(start_addr, ctrl->regs + S3C_VIDADDR_START0(id));
- writel(end_addr, ctrl->regs + S3C_VIDADDR_END0(id));
-
- dev_dbg(ctrl->dev, "[fb%d] start_addr: 0x%08x, end_addr: 0x%08x\n",
- id, start_addr, end_addr);
-
- return 0;
-}
-
-int s3cfb_set_alpha_blending(struct s3cfb_global *ctrl, int id)
-{
- struct s3cfb_window *win = ctrl->fb[id]->par;
- struct s3cfb_alpha *alpha = &win->alpha;
- unsigned int avalue = 0, cfg;
-
- if (id == 0) {
- dev_err(ctrl->dev, "[fb%d] does not support alpha blending\n", id);
- return -EINVAL;
- }
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
- cfg &= ~(S3C_WINCON_BLD_MASK | S3C_WINCON_ALPHA_SEL_MASK);
-
- if (alpha->mode == PIXEL_BLENDING) {
- dev_dbg(ctrl->dev, "[fb%d] alpha mode: pixel blending\n", id);
-
- /* fixing to DATA[31:24] for alpha value */
- cfg |= (S3C_WINCON_BLD_PIXEL | S3C_WINCON_ALPHA1_SEL);
- } else {
- dev_dbg(ctrl->dev, "[fb%d] alpha mode: plane %d blending\n",
- id, alpha->channel);
-
- cfg |= S3C_WINCON_BLD_PLANE;
-
- if (alpha->channel == 0) {
- cfg |= S3C_WINCON_ALPHA0_SEL;
- avalue = (alpha->value << S3C_VIDOSD_ALPHA0_SHIFT);
- } else {
- cfg |= S3C_WINCON_ALPHA1_SEL;
- avalue = (alpha->value << S3C_VIDOSD_ALPHA1_SHIFT);
- }
- }
-
- writel(cfg, ctrl->regs + S3C_WINCON(id));
- writel(avalue, ctrl->regs + S3C_VIDOSD_C(id));
-
- return 0;
-}
-
-int s3cfb_set_window_position(struct s3cfb_global *ctrl, int id)
-{
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- struct s3cfb_window *win = ctrl->fb[id]->par;
- unsigned int cfg;
-
- cfg = S3C_VIDOSD_LEFT_X(win->x) | S3C_VIDOSD_TOP_Y(win->y);
- writel(cfg, ctrl->regs + S3C_VIDOSD_A(id));
-
- cfg = S3C_VIDOSD_RIGHT_X(win->x + var->xres - 1) |
- S3C_VIDOSD_BOTTOM_Y(win->y + var->yres - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDOSD_B(id));
-
- dev_dbg(ctrl->dev, "[fb%d] offset: (%d, %d, %d, %d)\n", id,
- win->x, win->y, win->x + var->xres - 1, win->y + var->yres - 1);
-
- return 0;
-}
-
-int s3cfb_set_window_size(struct s3cfb_global *ctrl, int id)
-{
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- unsigned int cfg;
-
- if (id > 2)
- return 0;
-
- cfg = S3C_VIDOSD_SIZE(var->xres * var->yres);
-
- if (id == 0)
- writel(cfg, ctrl->regs + S3C_VIDOSD_C(id));
- else
- writel(cfg, ctrl->regs + S3C_VIDOSD_D(id));
-
- dev_dbg(ctrl->dev, "[fb%d] resolution: %d x %d\n", id,
- var->xres, var->yres);
-
- return 0;
-}
-
-int s3cfb_set_buffer_size(struct s3cfb_global *ctrl, int id)
-{
- struct fb_fix_screeninfo *fix = &ctrl->fb[id]->fix;
- unsigned int cfg = 0;
-
- cfg = S3C_VIDADDR_PAGEWIDTH(fix->line_length);
- writel(cfg, ctrl->regs + S3C_VIDADDR_SIZE(id));
-
- return 0;
-}
-
-int s3cfb_set_chroma_key(struct s3cfb_global *ctrl, int id)
-{
- struct s3cfb_window *win = ctrl->fb[id]->par;
- struct s3cfb_chroma *chroma = &win->chroma;
- unsigned int cfg = 0;
-
- if (id == 0) {
- dev_err(ctrl->dev, "[fb%d] does not support chroma key\n", id);
- return -EINVAL;
- }
-
- cfg = (S3C_KEYCON0_KEYBLEN_DISABLE | S3C_KEYCON0_DIRCON_MATCH_FG);
-
- if (chroma->enabled)
- cfg |= S3C_KEYCON0_KEY_ENABLE;
-
- writel(cfg, ctrl->regs + S3C_KEYCON(id));
-
- cfg = S3C_KEYCON1_COLVAL(chroma->key);
- writel(cfg, ctrl->regs + S3C_KEYVAL(id));
-
- dev_dbg(ctrl->dev, "[fb%d] chroma key: 0x%08x, %s\n", id, cfg,
- chroma->enabled ? "enabled" : "disabled");
-
- return 0;
-}
-
diff --git a/drivers/video/samsung_duallcd/s3cfb2_fimd6x.c b/drivers/video/samsung_duallcd/s3cfb2_fimd6x.c
deleted file mode 100644
index 8d73a9e..0000000
--- a/drivers/video/samsung_duallcd/s3cfb2_fimd6x.c
+++ /dev/null
@@ -1,562 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb2_fimd6x.c
- *
- * Register interface file for Samsung Display Controller (FIMD) driver
- *
- * Jinsung Yang, Copyright (c) 2009 Samsung Electronics
- * http://www.samsungsemi.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/delay.h>
-#include <linux/device.h>
-#include <linux/fb.h>
-#include <linux/io.h>
-#include <mach/map.h>
-#include <plat/clock.h>
-#include <plat/fb.h>
-#include <plat/regs-fb.h>
-
-#include "s3cfb2.h"
-
-void s3cfb_check_line_count(struct s3cfb_global *ctrl)
-{
- int timeout = 30 * 5300;
- int i = 0;
-
- do {
- if (!(readl(ctrl->regs + S3C_VIDCON1) & 0x7ff0000))
- break;
- i++;
- } while (i < timeout);
-
- if (i == timeout) {
- dev_err(ctrl->dev, "line count mismatch\n");
- s3cfb_display_on(ctrl);
- }
-}
-
-int s3cfb_set_output(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_VIDOUT_MASK;
-
- if (ctrl->output == OUTPUT_RGB)
- cfg |= S3C_VIDCON0_VIDOUT_RGB;
- else if (ctrl->output == OUTPUT_ITU)
- cfg |= S3C_VIDCON0_VIDOUT_ITU;
- else if (ctrl->output == OUTPUT_I80LDI0)
- cfg |= S3C_VIDCON0_VIDOUT_I80LDI0;
- else if (ctrl->output == OUTPUT_I80LDI1)
- cfg |= S3C_VIDCON0_VIDOUT_I80LDI1;
- else {
- dev_err(ctrl->dev, "invalid output type: %d\n", ctrl->output);
- return -EINVAL;
- }
-
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- return 0;
-}
-
-int s3cfb_set_display_mode(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_PNRMODE_MASK;
- cfg |= (ctrl->rgb_mode << S3C_VIDCON0_PNRMODE_SHIFT);
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- return 0;
-}
-
-int s3cfb_display_on(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg |= (S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE);
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "global display is on\n");
-
- return 0;
-}
-
-int s3cfb_display_off(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_ENVID_ENABLE;
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- cfg &= ~S3C_VIDCON0_ENVID_F_ENABLE;
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "global display is off\n");
-
- return 0;
-}
-
-int s3cfb_frame_off(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_ENVID_F_ENABLE;
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "current frame display is off\n");
-
- return 0;
-}
-
-int s3cfb_set_clock(struct s3cfb_global *ctrl)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- unsigned int cfg, maxclk, src_clk, vclk, div;
-
- maxclk = 66 * 1000000;
-
- /* fixed clock source: hclk */
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~(S3C_VIDCON0_CLKSEL_MASK | S3C_VIDCON0_CLKVALUP_MASK |
- S3C_VIDCON0_VCLKEN_MASK | S3C_VIDCON0_CLKDIR_MASK);
- cfg |= (S3C_VIDCON0_CLKSEL_HCLK | S3C_VIDCON0_CLKVALUP_ALWAYS |
- S3C_VIDCON0_VCLKEN_NORMAL | S3C_VIDCON0_CLKDIR_DIVIDED);
-
- src_clk = ctrl->clock->parent->rate;
- vclk = ctrl->fb[pdata->default_win]->var.pixclock;
-
- if (vclk > maxclk)
- vclk = maxclk;
-
- div = src_clk / vclk;
- if (src_clk % vclk)
- div++;
-
- cfg |= S3C_VIDCON0_CLKVAL_F(div - 1);
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "parent clock: %d, vclk: %d, vclk div: %d\n",
- src_clk, vclk, div);
-
- return 0;
-}
-
-int s3cfb_set_polarity(struct s3cfb_global *ctrl)
-{
- struct s3cfb_lcd_polarity *pol;
- unsigned int cfg;
-
- pol = &ctrl->lcd->polarity;
- cfg = 0;
-
- if (pol->rise_vclk)
- cfg |= S3C_VIDCON1_IVCLK_RISING_EDGE;
-
- if (pol->inv_hsync)
- cfg |= S3C_VIDCON1_IHSYNC_INVERT;
-
- if (pol->inv_vsync)
- cfg |= S3C_VIDCON1_IVSYNC_INVERT;
-
- if (pol->inv_vden)
- cfg |= S3C_VIDCON1_IVDEN_INVERT;
-
- writel(cfg, ctrl->regs + S3C_VIDCON1);
-
- return 0;
-}
-
-int s3cfb_set_timing(struct s3cfb_global *ctrl)
-{
- struct s3cfb_lcd_timing *time;
- unsigned int cfg;
-
- time = &ctrl->lcd->timing;
- cfg = 0;
-
- cfg |= S3C_VIDTCON0_VBPDE(time->v_bpe - 1);
- cfg |= S3C_VIDTCON0_VBPD(time->v_bp - 1);
- cfg |= S3C_VIDTCON0_VFPD(time->v_fp - 1);
- cfg |= S3C_VIDTCON0_VSPW(time->v_sw - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDTCON0);
-
- cfg = 0;
-
- cfg |= S3C_VIDTCON1_VFPDE(time->v_fpe - 1);
- cfg |= S3C_VIDTCON1_HBPD(time->h_bp - 1);
- cfg |= S3C_VIDTCON1_HFPD(time->h_fp - 1);
- cfg |= S3C_VIDTCON1_HSPW(time->h_sw - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDTCON1);
-
- return 0;
-}
-
-int s3cfb_set_lcd_size(struct s3cfb_global *ctrl)
-{
- unsigned int cfg = 0;
-
- cfg |= S3C_VIDTCON2_HOZVAL(ctrl->lcd->width - 1);
- cfg |= S3C_VIDTCON2_LINEVAL(ctrl->lcd->height - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDTCON2);
-
- return 0;
-}
-
-int s3cfb_set_global_interrupt(struct s3cfb_global *ctrl, int enable)
-{
- unsigned int cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
- cfg &= ~(S3C_VIDINTCON0_INTFRMEN_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
-
- if (enable) {
- dev_dbg(ctrl->dev, "video interrupt is on\n");
- cfg |= (S3C_VIDINTCON0_INTFRMEN_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
- } else {
- dev_dbg(ctrl->dev, "video interrupt is off\n");
- cfg |= (S3C_VIDINTCON0_INTFRMEN_DISABLE |
- S3C_VIDINTCON0_INT_DISABLE);
- }
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON0);
-
- return 0;
-}
-
-int s3cfb_set_vsync_interrupt(struct s3cfb_global *ctrl, int enable)
-{
- unsigned int cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
- cfg &= ~S3C_VIDINTCON0_FRAMESEL0_MASK;
-
- if (enable) {
- dev_dbg(ctrl->dev, "vsync interrupt is on\n");
- cfg |= S3C_VIDINTCON0_FRAMESEL0_VSYNC;
- } else {
- dev_dbg(ctrl->dev, "vsync interrupt is off\n");
- cfg &= ~S3C_VIDINTCON0_FRAMESEL0_VSYNC;
- }
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON0);
-
- return 0;
-}
-
-#ifdef CONFIG_FB_S3C_V2_TRACE_UNDERRUN
-int s3cfb_set_fifo_interrupt(struct s3cfb_global *ctrl, int enable)
-{
- unsigned int cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
-
- cfg &= ~(S3C_VIDINTCON0_FIFOSEL_MASK | S3C_VIDINTCON0_FIFOLEVEL_MASK);
- cfg |= (S3C_VIDINTCON0_FIFOSEL_ALL | S3C_VIDINTCON0_FIFOLEVEL_EMPTY);
-
- if (enable) {
- dev_dbg(ctrl->dev, "fifo interrupt is on\n");
- cfg |= (S3C_VIDINTCON0_INTFIFO_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
- } else {
- dev_dbg(ctrl->dev, "fifo interrupt is off\n");
- cfg &= ~(S3C_VIDINTCON0_INTFIFO_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
- }
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON0);
-
- return 0;
-}
-#endif
-
-int s3cfb_clear_interrupt(struct s3cfb_global *ctrl)
-{
- unsigned int cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON1);
-
- if (cfg & S3C_VIDINTCON1_INTFIFOPEND)
- info("fifo underrun occur\n");
-
- cfg |= (S3C_VIDINTCON1_INTVPPEND | S3C_VIDINTCON1_INTI80PEND |
- S3C_VIDINTCON1_INTFRMPEND | S3C_VIDINTCON1_INTFIFOPEND);
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON1);
-
- return 0;
-}
-
-int s3cfb_window_on(struct s3cfb_global *ctrl, int id)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
- cfg |= S3C_WINCON_ENWIN_ENABLE;
- writel(cfg, ctrl->regs + S3C_WINCON(id));
-
- dev_dbg(ctrl->dev, "[fb%d] turn on\n", id);
-
- return 0;
-}
-
-int s3cfb_window_off(struct s3cfb_global *ctrl, int id)
-{
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
- cfg &= ~S3C_WINCON_ENWIN_ENABLE;
- writel(cfg, ctrl->regs + S3C_WINCON(id));
-
- dev_dbg(ctrl->dev, "[fb%d] turn off\n", id);
-
- return 0;
-}
-
-int s3cfb_set_window_control(struct s3cfb_global *ctrl, int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct fb_info *fb = ctrl->fb[id];
- struct fb_var_screeninfo *var = &fb->var;
- struct s3cfb_window *win = fb->par;
- unsigned int cfg;
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
-
- cfg &= ~(S3C_WINCON_BITSWP_ENABLE | S3C_WINCON_BYTESWP_ENABLE |
- S3C_WINCON_HAWSWP_ENABLE | S3C_WINCON_WSWP_ENABLE |
- S3C_WINCON_BURSTLEN_MASK | S3C_WINCON_BPPMODE_MASK |
- S3C_WINCON_INRGB_MASK | S3C_WINCON_DATAPATH_MASK);
-
- if (win->path == DATA_PATH_FIFO) {
- dev_dbg(ctrl->dev, "[fb%d] data path: fifo\n", id);
-
- cfg |= S3C_WINCON_DATAPATH_LOCAL;
- cfg |= S3C_WINCON_INRGB_RGB;
- cfg |= S3C_WINCON_BPPMODE_24BPP_888;
-
- if (id == 1) {
- cfg &= ~(S3C_WINCON1_LOCALSEL_MASK |
- S3C_WINCON1_VP_ENABLE);
-
- if (win->local_channel == 0) {
- cfg |= S3C_WINCON1_LOCALSEL_FIMC1;
- } else {
- cfg |= (S3C_WINCON1_LOCALSEL_VP |
- S3C_WINCON1_VP_ENABLE);
- }
- }
- } else {
- dev_dbg(ctrl->dev, "[fb%d] data path: dma\n", id);
-
- cfg |= S3C_WINCON_DATAPATH_DMA;
-
- if (fb->var.bits_per_pixel == 16 && pdata->swap & FB_SWAP_HWORD)
- cfg |= S3C_WINCON_HAWSWP_ENABLE;
-
- if (fb->var.bits_per_pixel == 32 && pdata->swap & FB_SWAP_WORD)
- cfg |= S3C_WINCON_WSWP_ENABLE;
-
- /* dma burst */
- if (win->dma_burst == 4)
- cfg |= S3C_WINCON_BURSTLEN_4WORD;
- else if (win->dma_burst == 8)
- cfg |= S3C_WINCON_BURSTLEN_8WORD;
- else
- cfg |= S3C_WINCON_BURSTLEN_16WORD;
-
- /* bpp mode set */
- switch (fb->var.bits_per_pixel) {
- case 16:
- if (var->transp.length == 1) {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: A1-R5-G5-B5\n", id);
- cfg |= S3C_WINCON_BPPMODE_16BPP_A555;
- } else if (var->transp.length == 4) {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: A4-R4-G4-B4\n", id);
- cfg |= S3C_WINCON_BPPMODE_16BPP_A444;
- } else {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: R5-G6-B5\n", id);
- cfg |= S3C_WINCON_BPPMODE_16BPP_565;
- }
- break;
-
- case 24: /* packed 24 bpp: nothing to do for 5.x fimd */
- break;
-
- case 32:
- if (var->transp.length == 0) {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: R8-G8-B8\n", id);
- cfg |= S3C_WINCON_BPPMODE_24BPP_888;
- } else {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: A8-R8-G8-B8\n", id);
- cfg |= S3C_WINCON_BPPMODE_32BPP;
- }
- break;
- }
- }
-
- writel(cfg, ctrl->regs + S3C_WINCON(id));
-
- return 0;
-}
-
-int s3cfb_set_buffer_address(struct s3cfb_global *ctrl, int id)
-{
- struct fb_fix_screeninfo *fix = &ctrl->fb[id]->fix;
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- dma_addr_t start_addr = 0, end_addr = 0;
-
- if (fix->smem_start) {
- start_addr = fix->smem_start + (var->xres_virtual *
- (var->bits_per_pixel / 8) * var->yoffset);
-
- end_addr = start_addr + (var->xres_virtual *
- (var->bits_per_pixel / 8) * var->yres);
- }
-
- writel(start_addr, ctrl->regs + S3C_VIDADDR_START0(id));
- writel(end_addr, ctrl->regs + S3C_VIDADDR_END0(id));
-
- dev_dbg(ctrl->dev, "[fb%d] start_addr: 0x%08x, end_addr: 0x%08x\n",
- id, start_addr, end_addr);
-
- return 0;
-}
-
-int s3cfb_set_alpha_blending(struct s3cfb_global *ctrl, int id)
-{
- struct s3cfb_window *win = ctrl->fb[id]->par;
- struct s3cfb_alpha *alpha = &win->alpha;
- unsigned int avalue = 0, cfg;
-
- if (id == 0) {
- dev_err(ctrl->dev, "[fb%d] does not support alpha blending\n", id);
- return -EINVAL;
- }
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
- cfg &= ~(S3C_WINCON_BLD_MASK | S3C_WINCON_ALPHA_SEL_MASK);
-
- if (alpha->mode == PIXEL_BLENDING) {
- dev_dbg(ctrl->dev, "[fb%d] alpha mode: pixel blending\n", id);
-
- /* fixing to DATA[31:24] for alpha value */
- cfg |= (S3C_WINCON_BLD_PIXEL | S3C_WINCON_ALPHA1_SEL);
- } else {
- dev_dbg(ctrl->dev, "[fb%d] alpha mode: plane %d blending\n",
- id, alpha->channel);
-
- cfg |= S3C_WINCON_BLD_PLANE;
-
- if (alpha->channel == 0) {
- cfg |= S3C_WINCON_ALPHA0_SEL;
- avalue = (alpha->value << S3C_VIDOSD_ALPHA0_SHIFT);
- } else {
- cfg |= S3C_WINCON_ALPHA1_SEL;
- avalue = (alpha->value << S3C_VIDOSD_ALPHA1_SHIFT);
- }
- }
-
- writel(cfg, ctrl->regs + S3C_WINCON(id));
- writel(avalue, ctrl->regs + S3C_VIDOSD_C(id));
-
- return 0;
-}
-
-int s3cfb_set_window_position(struct s3cfb_global *ctrl, int id)
-{
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- struct s3cfb_window *win = ctrl->fb[id]->par;
- unsigned int cfg;
-
- cfg = S3C_VIDOSD_LEFT_X(win->x) | S3C_VIDOSD_TOP_Y(win->y);
- writel(cfg, ctrl->regs + S3C_VIDOSD_A(id));
-
- cfg = S3C_VIDOSD_RIGHT_X(win->x + var->xres - 1) |
- S3C_VIDOSD_BOTTOM_Y(win->y + var->yres - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDOSD_B(id));
-
- dev_dbg(ctrl->dev, "[fb%d] offset: (%d, %d, %d, %d)\n", id,
- win->x, win->y, win->x + var->xres - 1, win->y + var->yres - 1);
-
- return 0;
-}
-
-int s3cfb_set_window_size(struct s3cfb_global *ctrl, int id)
-{
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- unsigned int cfg;
-
- if (id > 2)
- return 0;
-
- cfg = S3C_VIDOSD_SIZE(var->xres * var->yres);
-
- if (id == 0)
- writel(cfg, ctrl->regs + S3C_VIDOSD_C(id));
- else
- writel(cfg, ctrl->regs + S3C_VIDOSD_D(id));
-
- dev_dbg(ctrl->dev, "[fb%d] resolution: %d x %d\n", id,
- var->xres, var->yres);
-
- return 0;
-}
-
-int s3cfb_set_buffer_size(struct s3cfb_global *ctrl, int id)
-{
- struct fb_fix_screeninfo *fix = &ctrl->fb[id]->fix;
- unsigned int cfg = 0;
-
- cfg = S3C_VIDADDR_PAGEWIDTH(fix->line_length);
- writel(cfg, ctrl->regs + S3C_VIDADDR_SIZE(id));
-
- return 0;
-}
-
-int s3cfb_set_chroma_key(struct s3cfb_global *ctrl, int id)
-{
- struct s3cfb_window *win = ctrl->fb[id]->par;
- struct s3cfb_chroma *chroma = &win->chroma;
- unsigned int cfg = 0;
-
- if (id == 0) {
- dev_err(ctrl->dev, "[fb%d] does not support chroma key\n", id);
- return -EINVAL;
- }
-
- cfg = (S3C_KEYCON0_KEYBLEN_DISABLE | S3C_KEYCON0_DIRCON_MATCH_FG);
-
- if (chroma->enabled)
- cfg |= S3C_KEYCON0_KEY_ENABLE;
-
- writel(cfg, ctrl->regs + S3C_KEYCON(id));
-
- cfg = S3C_KEYCON1_COLVAL(chroma->key);
- writel(cfg, ctrl->regs + S3C_KEYVAL(id));
-
- dev_dbg(ctrl->dev, "[fb%d] chroma key: 0x%08x, %s\n", id, cfg,
- chroma->enabled ? "enabled" : "disabled");
-
- return 0;
-}
-
diff --git a/drivers/video/samsung_duallcd/s3cfb2_lte480wv.c b/drivers/video/samsung_duallcd/s3cfb2_lte480wv.c
deleted file mode 100644
index 08db9bd..0000000
--- a/drivers/video/samsung_duallcd/s3cfb2_lte480wv.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb2_lte480wv.c
- *
- * Samsung LTE480 4.8" WVGA Display Panel Support
- *
- * Jinsung Yang, Copyright (c) 2009 Samsung Electronics
- * http://www.samsungsemi.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include "s3cfb2.h"
-
-static struct s3cfb_lcd lte480wv = {
- .width = 800,
- .height = 480,
- .bpp = 24,
- .freq = 60,
-
- .timing = {
- .h_fp = 8,
- .h_bp = 13,
- .h_sw = 3,
- .v_fp = 5,
- .v_fpe = 1,
- .v_bp = 7,
- .v_bpe = 1,
- .v_sw = 1,
- },
-
- .polarity = {
- .rise_vclk = 0,
- .inv_hsync = 1,
- .inv_vsync = 1,
- .inv_vden = 0,
- },
-};
-
-/* name should be fixed as 's3cfb_set_lcd_info' */
-void s3cfb_set_lcd_info(struct s3cfb_global *ctrl)
-{
- lte480wv.init_ldi = NULL;
- ctrl->lcd = &lte480wv;
-}
-
diff --git a/drivers/video/samsung_duallcd/s3cfb2_tl2796.c b/drivers/video/samsung_duallcd/s3cfb2_tl2796.c
deleted file mode 100644
index ed3679e..0000000
--- a/drivers/video/samsung_duallcd/s3cfb2_tl2796.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb2_tl2796.c
- *
- * Samsung tl2796" WVGA Display Panel Support
- *
- * Jinsung Yang, Copyright (c) 2009 Samsung Electronics
- * http://www.samsungsemi.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include "s3cfb2.h"
-
-static struct s3cfb_lcd tl2796 = {
- .width = 480,
- .height = 800,
- .bpp = 24,
- .freq = 60,
-
- .timing = {
- .h_fp = 66,
- .h_bp = 2,
- .h_sw = 4,
- .v_fp = 15,
- .v_fpe = 1,
- .v_bp = 3,
- .v_bpe = 1,
- .v_sw = 5,
- },
-
- .polarity = {
- .rise_vclk = 1,
- .inv_hsync = 1,
- .inv_vsync = 1,
- .inv_vden = 1,
- },
-};
-
-/* name should be fixed as 's3cfb_set_lcd_info' */
-void s3cfb_set_lcd_info(struct s3cfb_global *ctrl)
-{
- tl2796.init_ldi = NULL;
- ctrl->lcd = &tl2796;
-}
-
diff --git a/drivers/video/samsung_duallcd/s3cfb_ams369fg06.c b/drivers/video/samsung_duallcd/s3cfb_ams369fg06.c
deleted file mode 100644
index c588b7e..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_ams369fg06.c
+++ /dev/null
@@ -1,536 +0,0 @@
-/*
- * AMS369FG06 AMOLED Panel Driver
- *
- * Copyright (c) 2008 Samsung Electronics
- * Author: InKi Dae <inki.dae@samsung.com>
- *
- * Derived from drivers/video/omap/lcd-apollon.c
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <linux/wait.h>
-#include <linux/fb.h>
-#include <linux/delay.h>
-#include <linux/gpio.h>
-#include <linux/spi/spi.h>
-
-#include <plat/gpio-cfg.h>
-
-#include "s3cfb.h"
-
-#define SLEEPMSEC 0x1000
-#define ENDDEF 0x2000
-#define DEFMASK 0xFF00
-#define COMMAND_ONLY 0xFE
-#define DATA_ONLY 0xFF
-
-#ifdef CONFIG_BACKLIGHT_AMS369FG06_AMOLED
-
-#define dbg(fmt...)
-
-static int locked;
-struct s5p_lcd{
- struct spi_device *g_spi;
- struct lcd_device *lcd_dev;
- struct backlight_device *bl_dev;
-};
-static struct s5p_lcd lcd;
-#else
-static struct spi_device *g_spi;
-#endif
-
-const unsigned short SEQ_DISPLAY_ON[] = {
- 0x14, 0x03,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_DISPLAY_OFF[] = {
- 0x14, 0x00,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_STANDBY_ON[] = {
- 0x1D, 0xA1,
- SLEEPMSEC, 200,
-
- ENDDEF, 0x0000
-};
-
-const unsigned short SEQ_STANDBY_OFF[] = {
- 0x1D, 0xA0,
- SLEEPMSEC, 250,
-
- ENDDEF, 0x0000
-};
-
-#ifndef CONFIG_UNIVERSAL_S5PC110_VER2 /* smdkc110, Universal 1'st version */
-const unsigned short SEQ_SETTING[] = {
- 0x31, 0x08, /* panel setting */
- 0x32, 0x14,
- 0x30, 0x02,
- 0x27, 0x01, /* 0x27, 0x01 */
- 0x12, 0x08,
- 0x13, 0x08,
- 0x15, 0x00, /* 0x15, 0x00 */
- 0x16, 0x00, /* 24bit line and 16M color */
-
- 0xef, 0xd0, /* pentile key setting */
- DATA_ONLY, 0xe8,
-
- 0x39, 0x44,
- 0x40, 0x00,
- 0x41, 0x3f,
- 0x42, 0x2a,
- 0x43, 0x27,
- 0x44, 0x22,
- 0x45, 0x1f,
- 0x46, 0x44,
- 0x50, 0x00,
- 0x51, 0x00,
- 0x52, 0x17,
- 0x53, 0x24,
- 0x54, 0x26,
- 0x55, 0x1f,
- 0x56, 0x43,
- 0x60, 0x00,
- 0x61, 0x3f,
- 0x62, 0x2a,
- 0x63, 0x25,
- 0x64, 0x24,
- 0x65, 0x1b,
- 0x66, 0x5c,
-
- 0x17, 0x22, /* Boosting Freq */
- 0x18, 0x33, /* Power AMP Medium */
- 0x19, 0x03, /* Gamma Amp Medium */
- 0x1a, 0x01, /* Power Boosting */
- 0x22, 0xa4, /* Vinternal = 0.65*VCI */
- 0x23, 0x00, /* VLOUT1 Setting = 0.98*VCI */
- 0x26, 0xa0, /* Display Condition LTPS signal generation: DOTCLK */
-
- 0x1d, 0xa0,
-// SLEEPMSEC, 10,
-
- 0x14, 0x03,
-
- ENDDEF, 0x0000
-};
-#else /* universal */
-const unsigned short SEQ_SETTING[] = {
- 0x31, 0x08, /* panel setting */
- 0x32, 0x14,
- 0x30, 0x02,
- 0x27, 0x01,
- 0x12, 0x08,
- 0x13, 0x08,
- 0x15, 0x00,
- 0x16, 0x00, /* 24bit line and 16M color */
-
- 0xEF, 0xD0, /* pentile key setting */
- DATA_ONLY, 0xE8,
-
- 0x39, 0x44, /* gamma setting */
- 0x40, 0x00,
- 0x41, 0x00,
- 0x42, 0x00,
- 0x43, 0x19,
- 0x44, 0x19,
- 0x45, 0x16,
- 0x46, 0x34,
-
- 0x50, 0x00,
- 0x51, 0x00,
- 0x52, 0x00,
- 0x53, 0x16,
- 0x54, 0x19,
- 0x55, 0x16,
- 0x56, 0x39,
-
- 0x60, 0x00,
- 0x61, 0x00,
- 0x62, 0x00,
- 0x63, 0x17,
- 0x64, 0x18,
- 0x65, 0x14,
- 0x66, 0x4a,
-
- 0x17, 0x22, /* power setting */
- 0x18, 0x33,
- 0x19, 0x03,
- 0x1A, 0x01,
- 0x22, 0xA4,
- 0x23, 0x00,
- 0x26, 0xA0,
-
- ENDDEF, 0x0000
-};
-#endif
-
-/* FIXME: will be moved to platform data */
-static struct s3cfb_lcd ams369fg06 = {
- .width = 480,
- .height = 800,
- .bpp = 24,
-
-#if 1
- /* smdkc110, For Android */
- .freq = 60,
- .timing = {
- .h_fp = 9,
- .h_bp = 9,
- .h_sw = 2,
- .v_fp = 5,
- .v_fpe = 1,
- .v_bp = 5,
- .v_bpe = 1,
- .v_sw = 2,
- },
-#else
- /* universal */
- .freq = 60,
- .timing = {
- .h_fp = 66,
- .h_bp = 2,
- .h_sw = 4,
- .v_fp = 15,
- .v_fpe = 1,
- .v_bp = 3,
- .v_bpe = 1,
- .v_sw = 5,
- },
-#endif
- .polarity = {
- .rise_vclk = 1,
- .inv_hsync = 1,
- .inv_vsync = 1,
- .inv_vden = 1,
- },
-};
-
-static int ams369fg06_spi_write_driver(int addr, int data)
-{
- u16 buf[1];
- struct spi_message msg;
-
- struct spi_transfer xfer = {
- .len = 2,
- .tx_buf = buf,
- };
-
- buf[0] = (addr << 8) | data;
-
- spi_message_init(&msg);
- spi_message_add_tail(&xfer, &msg);
-
-#ifdef CONFIG_BACKLIGHT_AMS369FG06_AMOLED
- int ret;
- locked = 1;
- ret = spi_sync(lcd.g_spi, &msg);
- locked = 0;
- return ret ;
-#else
- return spi_sync(g_spi, &msg);
-#endif
-}
-
-static void ams369fg06_spi_write(unsigned char address, unsigned char command)
-{
- if (address != DATA_ONLY)
- ams369fg06_spi_write_driver(0x70, address);
-
- ams369fg06_spi_write_driver(0x72, command);
-}
-
-static void ams369fg06_panel_send_sequence(const unsigned short *wbuf)
-{
- int i = 0;
-
- while ((wbuf[i] & DEFMASK) != ENDDEF) {
- if ((wbuf[i] & DEFMASK) != SLEEPMSEC)
- ams369fg06_spi_write(wbuf[i], wbuf[i+1]);
- else
- mdelay(wbuf[i+1]);
- /* msleep(wbuf[i+1]); */
- i += 2;
- }
-}
-
-void ams369fg06_ldi_init(void)
-{
- ams369fg06_panel_send_sequence(SEQ_SETTING);
- ams369fg06_panel_send_sequence(SEQ_STANDBY_OFF);
-}
-
-void ams369fg06_ldi_enable(void)
-{
- ams369fg06_panel_send_sequence(SEQ_DISPLAY_ON);
- //ams369fg06_panel_send_sequence(SEQ_STANDBY_OFF);
-}
-
-void ams369fg06_ldi_disable(void)
-{
-
- ams369fg06_panel_send_sequence(SEQ_DISPLAY_OFF);
- /* For fixing LCD suspend problem */
- ams369fg06_panel_send_sequence(SEQ_STANDBY_ON);
-}
-void ams369fg06_init_ldi(void)
-{
- ams369fg06_ldi_init();
- ams369fg06_ldi_enable();
-}
-
-void s3cfb_set_lcd_info(struct s3cfb_global *ctrl)
-{
- ams369fg06.init_ldi = ams369fg06_ldi_init;
- ctrl->lcd = &ams369fg06;
-}
-
-void ams369fg06_gpio_cfg(void)
-{
- /* LCD _CS */
- s3c_gpio_cfgpin(EXYNOS4_GPB(5), S3C_GPIO_OUTPUT);
- s3c_gpio_setpull(EXYNOS4_GPB(5), S3C_GPIO_PULL_NONE);
-
-
- /* LCD_SCLK */
- s3c_gpio_cfgpin(EXYNOS4_GPB(4), S3C_GPIO_OUTPUT);
- s3c_gpio_setpull(EXYNOS4_GPB(4), S3C_GPIO_PULL_NONE);
-
- /* LCD_SDI */
- s3c_gpio_cfgpin(EXYNOS4_GPB(7), S3C_GPIO_OUTPUT);
- s3c_gpio_setpull(EXYNOS4_GPB(7), S3C_GPIO_PULL_NONE);
-
-}
-
-
-/* backlight operations and functions */
-#ifdef CONFIG_BACKLIGHT_AMS369FG06_AMOLED
-static int s5p_bl_update_status(struct backlight_device *bd)
-{
- int bl = bd->props.brightness;
- dbg("\nUpdate brightness=%d\n", bd->props.brightness);
- int level = 0;
-
- if (!locked) {
-#if 0
- if ((bl >= 0) && (bl <= 80))
- level = 1;
- else if ((bl > 80) && (bl <= 100))
- level = 2;
- else if ((bl > 100) && (bl <= 150))
- level = 3;
- else if ((bl > 150) && (bl <= 180))
- level = 4;
- else if ((bl > 180) && (bl <= 200))
- level = 5;
- else if ((bl > 200) && (bl <= 255)){
- level = 5;
- bl = 200;
- }
- if (level) {
- ams369fg06_spi_write(0x39, ((bl/64 + 1)<<4)&(bl/64+1));
-
- switch (level) {
- /* If bl is not halved, variation in brightness is
- * observed as a curve with the middle region being
- * brightest and the sides being darker. It is
- * required that brightness increases gradually
- * from left to right.*/
- case 1:
- ams369fg06_spi_write(0x46, (bl/2)+6);
- ams369fg06_spi_write(0x56, (bl/2)+4);
- ams369fg06_spi_write(0x66, (bl/2)+30);
- break;
- case 2:
- ams369fg06_spi_write(0x46, (bl/2)+4);
- ams369fg06_spi_write(0x56, (bl/2)+2);
- ams369fg06_spi_write(0x66, (bl/2)+28);
- break;
- case 3:
- ams369fg06_spi_write(0x46, (bl/2)+6);
- ams369fg06_spi_write(0x56, (bl/2)+1);
- ams369fg06_spi_write(0x66, (bl/2)+32);
- break;
- case 4:
- ams369fg06_spi_write(0x46, (bl/2)+6);
- ams369fg06_spi_write(0x56, (bl/2)+1);
- ams369fg06_spi_write(0x66, (bl/2)+38);
- break;
- case 5:
- ams369fg06_spi_write(0x46, (bl/2)+7);
- ams369fg06_spi_write(0x56, (bl/2));
- ams369fg06_spi_write(0x66, (bl/2)+40);
- break;
- case 6:
- ams369fg06_spi_write(0x46, (bl/2)+10);
- ams369fg06_spi_write(0x56, (bl/2));
- ams369fg06_spi_write(0x66, (bl/2)+48);
- break;
- default:
- break;
- }
- } /* level check over */
-#else
- if ((bl >= 0) && (bl <= 50))
- level = 1;
- else if ((bl > 50) && (bl <= 100))
- level = 2;
- else if ((bl > 100) && (bl <= 150))
- level = 3;
- else if ((bl > 150) && (bl <= 200))
- level = 4;
- else if ((bl > 200) && (bl <= 255))
- level = 5;
-
- if (level) {
- //ams369fg06_spi_write(0x39, ((bl/64 + 1)<<4)&(bl/64+1));
-
- switch (level) {
- /* If bl is not halved, variation in brightness is
- * observed as a curve with the middle region being
- * brightest and the sides being darker. It is
- * required that brightness increases gradually
- * from left to right.*/
- case 1:
- ams369fg06_spi_write(0x46, 0x2F);
- ams369fg06_spi_write(0x56, 0x2E);
- ams369fg06_spi_write(0x66, 0x3F);
-
- break;
- case 2:
- ams369fg06_spi_write(0x46, 0x37);
- ams369fg06_spi_write(0x56, 0x36);
- ams369fg06_spi_write(0x66, 0x4A);
-
- break;
- case 3:
- ams369fg06_spi_write(0x46, 0x3E);
- ams369fg06_spi_write(0x56, 0x3D);
- ams369fg06_spi_write(0x66, 0x53);
-
- break;
- case 4:
- ams369fg06_spi_write(0x46, 0x44);
- ams369fg06_spi_write(0x56, 0x43);
- ams369fg06_spi_write(0x66, 0x5C);
-
- break;
- case 5:
- ams369fg06_spi_write(0x46, 0x47);
- ams369fg06_spi_write(0x56, 0x45);
- ams369fg06_spi_write(0x66, 0x5F);
- break;
- default:
- break;
- }
-} /* level check over */
-
-
-#endif
- } else {
- dbg("\nLOCKED!!!Brightness cannot be changed now!locked=%d",
- locked);
- }
- return 0;
-}
-
-static int s5p_bl_get_brightness(struct backlilght_device *bd)
-{
- dbg("\n reading brightness\n");
- return 0;
-}
-
-static const struct backlight_ops s5p_bl_ops = {
- .update_status = s5p_bl_update_status,
- .get_brightness = s5p_bl_get_brightness,
-};
-#endif
-
-static int __devinit ams369fg06_probe(struct spi_device *spi)
-{
- int ret;
-#ifdef CONFIG_BACKLIGHT_AMS369FG06_AMOLED
- struct backlight_properties props;
-#endif
- spi->bits_per_word = 16;
- ret = spi_setup(spi);
-#ifdef CONFIG_BACKLIGHT_AMS369FG06_AMOLED
- lcd.g_spi = spi;
-
- /* The node is named as pwm-backlight even though PWM
- * control is not being done since Eclair interface is
- * looking for "pwm-backlight" for backlight brightness
- * control*/
- memset(&props, 0, sizeof(struct backlight_properties));
- props.max_brightness = 255;
- lcd.bl_dev = backlight_device_register("pwm-backlight",
- &spi->dev, &lcd, &s5p_bl_ops, &props);
-
- dev_set_drvdata(&spi->dev, &lcd);
-#else
- g_spi = spi;
-#endif
-
- ams369fg06_ldi_init();
- ams369fg06_ldi_enable();
-
- if (ret < 0)
- return 0;
-
- return ret;
-}
-#ifdef CONFIG_PM
-int ams369fg06_suspend(struct platform_device *pdev, pm_message_t state)
-{
- ams369fg06_ldi_disable();
- return 0;
-}
-
-int ams369fg06_resume(struct platform_device *pdev, pm_message_t state)
-{
- ams369fg06_ldi_init();
- ams369fg06_ldi_enable();
-
- return 0;
-}
-#endif
-
-static struct spi_driver ams369fg06_driver = {
- .driver = {
- .name = "ams369fg06",
- .owner = THIS_MODULE,
- },
- .probe = ams369fg06_probe,
- .remove = __exit_p(ams369fg06_remove),
- .suspend = NULL,
- .resume = NULL,
-};
-
-static int __init ams369fg06_init(void)
-{
- return spi_register_driver(&ams369fg06_driver);
-}
-
-static void __exit ams369fg06_exit(void)
-{
- spi_unregister_driver(&ams369fg06_driver);
-}
-
-module_init(ams369fg06_init);
-module_exit(ams369fg06_exit);
diff --git a/drivers/video/samsung_duallcd/s3cfb_dummymipilcd.c b/drivers/video/samsung_duallcd/s3cfb_dummymipilcd.c
deleted file mode 100644
index 320ed73..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_dummymipilcd.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_dummymipilcd.c
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Modified by Samsung Electronics (UK) on May 2010
- *
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/workqueue.h>
-#include <linux/backlight.h>
-#include <linux/lcd.h>
-
-#include <plat/gpio-cfg.h>
-#include <plat/regs-dsim.h>
-
-#include <mach/dsim.h>
-#include <mach/mipi_ddi.h>
-
-#include "s5p-dsim.h"
-#include "s3cfb.h"
-
-static struct mipi_ddi_platform_data *ddi_pd;
-
-void s6d6aa0_write_0(unsigned char dcs_cmd)
-{
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_WR_NO_PARA, dcs_cmd, 0);
-}
-
-static void s6d6aa0_write_1(unsigned char dcs_cmd, unsigned char param1)
-{
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_WR_1_PARA, dcs_cmd, param1);
-}
-
-static void s6d6aa0_write_3(unsigned char dcs_cmd, unsigned char param1, unsigned char param2, unsigned char param3)
-{
- unsigned char buf[4];
- buf[0] = dcs_cmd;
- buf[1] = param1;
- buf[2] = param2;
- buf[3] = param3;
-
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_LONG_WR, (unsigned int) buf, 4);
-}
-
-static void s6d6aa0_write(void)
-{
- unsigned char buf[15] = {0xf8, 0x01, 0x27, 0x27, 0x07, 0x07, 0x54,
- 0x9f, 0x63, 0x86, 0x1a,
- 0x33, 0x0d, 0x00, 0x00};
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_LONG_WR, (unsigned int) buf, sizeof(buf));
-}
-
-static void s6d6aa0_display_off(struct device *dev)
-{
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_WR_1_PARA, 0x28, 0x00);
-}
-
-void s6d6aa0_sleep_in(struct device *dev)
-{
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_WR_NO_PARA, 0x10, 0);
-}
-
-void s6d6aa0_sleep_out(struct device *dev)
-{
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_WR_NO_PARA, 0x11, 0);
-}
-
-static void s6d6aa0_display_on(struct device *dev)
-{
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_WR_NO_PARA, 0x29, 0);
-}
-
-void lcd_pannel_on(void)
-{
- /* password */
- s6d6aa0_write_1(0xb0, 0x09);
- s6d6aa0_write_1(0xb0, 0x09);
- s6d6aa0_write_1(0xd5, 0x64);
- s6d6aa0_write_1(0xb0, 0x09);
-
- s6d6aa0_write_1(0xd5, 0x84);
- s6d6aa0_write_3(0xf2, 0x02, 0x03, 0x1b);
- s6d6aa0_write();
- s6d6aa0_write_3(0xf6, 0x00, 0x8c, 0x07);
-
- /* reset */
- s6d6aa0_write_1(0xfa, 0x01);
-
- /* Exit sleep */
- s6d6aa0_write_0(0x11);
- mdelay(100);
-
- /* Set Display ON */
- s6d6aa0_write_0(0x29);
-}
-
-void lcd_panel_init(void)
-{
- lcd_pannel_on();
-}
-
-static int dummy_panel_init(void)
-{
- mdelay(600);
- lcd_panel_init();
-
- return 0;
-}
-
-static int s6d6aa0_set_link(void *pd, unsigned int dsim_base,
- unsigned char (*cmd_write) (unsigned int dsim_base, unsigned int data0,
- unsigned int data1, unsigned int data2),
- unsigned char (*cmd_read) (unsigned int dsim_base, unsigned int data0,
- unsigned int data1, unsigned int data2))
-{
- struct mipi_ddi_platform_data *temp_pd = NULL;
-
- temp_pd = (struct mipi_ddi_platform_data *) pd;
- if (temp_pd == NULL) {
- printk(KERN_ERR "mipi_ddi_platform_data is null.\n");
- return -1;
- }
-
- ddi_pd = temp_pd;
-
- ddi_pd->dsim_base = dsim_base;
-
- if (cmd_write)
- ddi_pd->cmd_write = cmd_write;
- else
- printk(KERN_WARNING "cmd_write function is null.\n");
-
- if (cmd_read)
- ddi_pd->cmd_read = cmd_read;
- else
- printk(KERN_WARNING "cmd_read function is null.\n");
-
- return 0;
-}
-
-static int s6d6aa0_probe(struct device *dev)
-{
- return 0;
-}
-
-#ifdef CONFIG_PM
-static int s6d6aa0_suspend(void)
-{
- s6d6aa0_write_0(0x28);
- mdelay(20);
- s6d6aa0_write_0(0x10);
- mdelay(20);
-
- return 0;
-}
-
-static int s6d6aa0_resume(struct device *dev)
-{
- return 0;
-}
-#else
-#define s6d6aa0_suspend NULL
-#define s6d6aa0_resume NULL
-#endif
-
-static struct mipi_lcd_driver s6d6aa0_mipi_driver = {
- .name = "dummy_mipi_lcd",
- .init = dummy_panel_init,
- .display_on = s6d6aa0_display_on,
- .set_link = s6d6aa0_set_link,
- .probe = s6d6aa0_probe,
- .suspend = s6d6aa0_suspend,
- .resume = s6d6aa0_resume,
- .display_off = s6d6aa0_display_off,
-};
-
-static int s6d6aa0_init(void)
-{
- s5p_dsim_register_lcd_driver(&s6d6aa0_mipi_driver);
- return 0;
-}
-
-static void s6d6aa0_exit(void)
-{
- return;
-}
-
-static struct s3cfb_lcd dummy_mipi_lcd = {
- .width = 480,
- .height = 800,
- .bpp = 24,
- .freq = 60,
-
- .timing = {
- .h_fp = 0x16,
- .h_bp = 0x16,
- .h_sw = 0x2,
- .v_fp = 0x28,
- .v_fpe = 2,
- .v_bp = 0x1,
- .v_bpe = 1,
- .v_sw = 3,
- .cmd_allow_len = 4,
- },
-
- .polarity = {
- .rise_vclk = 0,
- .inv_hsync = 0,
- .inv_vsync = 0,
- .inv_vden = 0,
- },
-};
-
-/* name should be fixed as 's3cfb_set_lcd_info' */
-void s3cfb_set_lcd_info(struct s3cfb_global *ctrl)
-{
- dummy_mipi_lcd.init_ldi = NULL;
- ctrl->lcd = &dummy_mipi_lcd;
-}
-
-module_init(s6d6aa0_init);
-module_exit(s6d6aa0_exit);
-
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/s3cfb_ea8061.c b/drivers/video/samsung_duallcd/s3cfb_ea8061.c
deleted file mode 100644
index 9b8345f..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_ea8061.c
+++ /dev/null
@@ -1,1497 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_s6e8aa0.c
- *
- * MIPI-DSI based AMS529HA01 AMOLED lcd panel driver.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/workqueue.h>
-#include <linux/backlight.h>
-#include <linux/lcd.h>
-#include <plat/gpio-cfg.h>
-#include <plat/regs-dsim.h>
-#include <mach/dsim.h>
-#include <mach/mipi_ddi.h>
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#include "s5p-dsim.h"
-#include "s3cfb.h"
-#include "ea8061_gamma_l.h"
-
-/*#define SAMRT_DIMMING */
-
-#ifdef SMART_DIMMING
-/*#include "smart_dimming_ea8061.h"*/
-#ifdef CONFIG_AID_DIMMING
-#include "aid_s6e8aa0.h"
-#endif
-#endif
-
-#define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL)
-
-#define MIN_BRIGHTNESS 0
-#define MAX_BRIGHTNESS 255
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
-#define MAX_GAMMA 290
-#define DEFAULT_BRIGHTNESS 150
-#define DEFAULT_GAMMA_LEVEL GAMMA_150CD
-#else
-#define MAX_GAMMA 300
-#define DEFAULT_BRIGHTNESS 160
-#define DEFAULT_GAMMA_LEVEL GAMMA_160CD
-#endif
-
-#define LDI_ID_REG 0xD1
-#define LDI_ID_LEN 3
-
-#ifdef SMART_DIMMING
-#define PANEL_A1_M3 0xA1
-
-#define LDI_MTP_LENGTH 24
-#define LDI_MTP_ADDR 0xD3
-
-#define DYNAMIC_ELVSS_MIN_VALUE 0x81
-#define DYNAMIC_ELVSS_MAX_VALUE 0x9F
-
-#define ELVSS_MODE0_MIN_VOLTAGE 62
-#define ELVSS_MODE1_MIN_VOLTAGE 52
-
-struct str_elvss {
- u8 reference;
- u8 limit;
-};
-#endif
-
-struct lcd_info {
- unsigned int bl;
- unsigned int auto_brightness;
- unsigned int acl_enable;
- unsigned int cur_acl;
- unsigned int current_bl;
- unsigned int current_elvss;
-
- unsigned int ldi_enable;
- unsigned int power;
- struct mutex lock;
- struct mutex bl_lock;
-
- struct device *dev;
- struct lcd_device *ld;
- struct backlight_device *bd;
- struct lcd_platform_data *lcd_pd;
- struct early_suspend early_suspend;
-
- unsigned char id[LDI_ID_LEN];
-
- unsigned char **gamma_table;
- unsigned char **elvss_table;
-
-#ifdef SMART_DIMMING
- unsigned int support_elvss;
-
- struct str_smart_dim smart;
- struct str_elvss elvss;
-#endif
-#ifdef CONFIG_AID_DIMMING
- unsigned int support_aid;
- unsigned char f8[GAMMA_MAX][ARRAY_SIZE(SEQ_PANEL_CONDITION_SET_500MBPS)];
-#endif
- unsigned int irq;
- unsigned int connected;
-
-#if defined(GPIO_OLED_DET)
- struct delayed_work oled_detection;
- unsigned int oled_detection_count;
-#endif
-
- struct dsim_global *dsim;
-};
-
-#ifdef CONFIG_AID_DIMMING
-static const unsigned int candela_table[GAMMA_MAX] = {
- 20, 30, 40, 50, 60, 70, 80, 90, 100,
- 110, 120, 130, 140, 150, 160, 170, 180,
- 182, 184, 186, 188,
- 190, 200, 210, 220, 230, 240, 250, MAX_GAMMA-1
-};
-
-static unsigned int aid_candela_table[GAMMA_MAX] = {
- base_20to100, base_20to100, base_20to100, base_20to100, base_20to100, base_20to100, base_20to100, base_20to100, base_20to100,
- AOR40_BASE_110, AOR40_BASE_120, AOR40_BASE_130, AOR40_BASE_140, AOR40_BASE_150,
- AOR40_BASE_160, AOR40_BASE_170, AOR40_BASE_180, AOR40_BASE_182, AOR40_BASE_184,
- AOR40_BASE_186, AOR40_BASE_188,
- 190, 200, 210, 220, 230, 240, 250, MAX_GAMMA-1
-};
-
-static unsigned int elvss_offset_table[ELVSS_STATUS_MAX] = {
- ELVSS_OFFSET_110,
- ELVSS_OFFSET_120,
- ELVSS_OFFSET_130,
- ELVSS_OFFSET_140,
- ELVSS_OFFSET_150,
- ELVSS_OFFSET_160,
- ELVSS_OFFSET_170,
- ELVSS_OFFSET_180,
- ELVSS_OFFSET_190,
- ELVSS_OFFSET_200,
- ELVSS_OFFSET_210,
- ELVSS_OFFSET_220,
- ELVSS_OFFSET_230,
- ELVSS_OFFSET_240,
- ELVSS_OFFSET_250,
- ELVSS_OFFSET_260,
- ELVSS_OFFSET_270,
- ELVSS_OFFSET_280,
- ELVSS_OFFSET_290,
- ELVSS_OFFSET_300
-};
-#else
-static const unsigned int candela_table[GAMMA_MAX] = {
- 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,
- 130, 140, 150, 160, 170, 180, 190, 200, 210, 220,
- 230, 240, 250, MAX_GAMMA
-};
-
-static unsigned int elvss_offset_table[ELVSS_STATUS_MAX] = {
- ELVSS_OFFSET_MIN,
- ELVSS_OFFSET_1,
- ELVSS_OFFSET_2,
- ELVSS_OFFSET_MAX
-};
-#endif
-
-#if defined(GPIO_OLED_DET)
-static void oled_detection_work(struct work_struct *work)
-{
- struct lcd_info *lcd =
- container_of(work, struct lcd_info, oled_detection.work);
-
- int oled_det_level = gpio_get_value(GPIO_OLED_DET);
-
- dev_info(&lcd->ld->dev, "%s, %d, %d\n", __func__, lcd->oled_detection_count, oled_det_level);
-
- if (!oled_det_level) {
- if (lcd->oled_detection_count < 10) {
- schedule_delayed_work(&lcd->oled_detection, HZ/8);
- lcd->oled_detection_count++;
- set_dsim_hs_clk_toggle_count(15);
- } else
- set_dsim_hs_clk_toggle_count(0);
- } else
- set_dsim_hs_clk_toggle_count(0);
-
-}
-
-static irqreturn_t oled_detection_int(int irq, void *_lcd)
-{
- struct lcd_info *lcd = _lcd;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- lcd->oled_detection_count = 0;
- schedule_delayed_work(&lcd->oled_detection, HZ/16);
-
- return IRQ_HANDLED;
-}
-#endif
-
-static int s6e8ax0_write(struct lcd_info *lcd, const unsigned char *seq, int len)
-{
- int size;
- const unsigned char *wbuf;
-
- if (!lcd->connected)
- return 0;
-
- mutex_lock(&lcd->lock);
-
- size = len;
- wbuf = seq;
-
- if (size == 1)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_NO_PARA, wbuf[0], 0);
- else if (size == 2)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_1_PARA, wbuf[0], wbuf[1]);
- else
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_LONG_WR, (unsigned int)wbuf, size);
-
- mutex_unlock(&lcd->lock);
-
- return 0;
-}
-
-static int _s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf)
-{
- int ret = 0;
-
- if (!lcd->connected)
- return ret;
-
- mutex_lock(&lcd->lock);
-
- if (lcd->dsim->ops->cmd_read)
- ret = lcd->dsim->ops->cmd_read(lcd->dsim, addr, count, buf);
-
- mutex_unlock(&lcd->lock);
-
- return ret;
-}
-
-static int s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf, u8 retry_cnt)
-{
- int ret = 0;
-
-read_retry:
- ret = _s6e8ax0_read(lcd, addr, count, buf);
- if (!ret) {
- if (retry_cnt) {
- printk(KERN_WARNING "[WARN:LCD] %s : retry cnt : %d\n", __func__, retry_cnt);
- retry_cnt--;
- goto read_retry;
- } else
- printk(KERN_ERR "[ERROR:LCD] %s : 0x%02x read failed\n", __func__, addr);
- }
-
- return ret;
-}
-
-#ifdef CONFIG_AID_DIMMING
-static int get_backlight_level_from_brightness(int brightness)
-{
- int backlightlevel;
-
- /* brightness setting from platform is from 0 to 255
- * But in this driver, brightness is only supported from 0 to 24 */
-
- switch (brightness) {
- case 0 ... 29:
- backlightlevel = GAMMA_20CD;
- break;
- case 30 ... 39:
- backlightlevel = GAMMA_30CD;
- break;
- case 40 ... 49:
- backlightlevel = GAMMA_40CD;
- break;
- case 50 ... 59:
- backlightlevel = GAMMA_50CD;
- break;
- case 60 ... 69:
- backlightlevel = GAMMA_60CD;
- break;
- case 70 ... 79:
- backlightlevel = GAMMA_70CD;
- break;
- case 80 ... 89:
- backlightlevel = GAMMA_80CD;
- break;
- case 90 ... 99:
- backlightlevel = GAMMA_90CD;
- break;
- case 100 ... 109:
- backlightlevel = GAMMA_100CD;
- break;
- case 110 ... 119:
- backlightlevel = GAMMA_110CD;
- break;
- case 120 ... 129:
- backlightlevel = GAMMA_120CD;
- break;
- case 130 ... 139:
- backlightlevel = GAMMA_130CD;
- break;
- case 140 ... 149:
- backlightlevel = GAMMA_140CD;
- break;
- case 150 ... 159:
- backlightlevel = GAMMA_150CD;
- break;
- case 160 ... 169:
- backlightlevel = GAMMA_160CD;
- break;
- case 170 ... 179:
- backlightlevel = GAMMA_170CD;
- break;
- case 180 ... 181:
- backlightlevel = GAMMA_180CD;
- break;
- case 182 ... 183:
- backlightlevel = GAMMA_182CD;
- break;
- case 184 ... 185:
- backlightlevel = GAMMA_184CD;
- break;
- case 186 ... 187:
- backlightlevel = GAMMA_186CD;
- break;
- case 188 ... 189:
- backlightlevel = GAMMA_188CD;
- break;
- case 190 ... 199:
- backlightlevel = GAMMA_190CD;
- break;
- case 200 ... 209:
- backlightlevel = GAMMA_200CD;
- break;
- case 210 ... 219:
- backlightlevel = GAMMA_210CD;
- break;
- case 220 ... 229:
- backlightlevel = GAMMA_220CD;
- break;
- case 230 ... 239:
- backlightlevel = GAMMA_230CD;
- break;
- case 240 ... 249:
- backlightlevel = GAMMA_240CD;
- break;
- case 250 ... 254:
- backlightlevel = GAMMA_250CD;
- break;
- case 255:
- backlightlevel = GAMMA_300CD;
- break;
- default:
- backlightlevel = DEFAULT_GAMMA_LEVEL;
- break;
- }
- return backlightlevel;
-}
-
-static int s6e8ax0_aid_parameter_ctl(struct lcd_info *lcd , u8 force)
-{
- if (likely(lcd->support_aid)) {
- if ((lcd->f8[lcd->bl][0x12] != lcd->f8[lcd->current_bl][0x12]) ||
- (lcd->f8[lcd->bl][0x01] != lcd->f8[lcd->current_bl][0x01]) || (force))
- s6e8ax0_write(lcd, lcd->f8[lcd->bl], AID_PARAM_SIZE);
- }
-
- return 0;
-}
-#else
-static int get_backlight_level_from_brightness(int brightness)
-{
- int backlightlevel;
-
- /* brightness setting from platform is from 0 to 255
- * But in this driver, brightness is only supported from 0 to 24 */
-
- switch (brightness) {
- case 0 ... 29:
- backlightlevel = GAMMA_30CD;
- break;
- case 30 ... 254:
- backlightlevel = (brightness - candela_table[0]) / 10;
- break;
- case 255:
- backlightlevel = ARRAY_SIZE(candela_table) - 1;
- break;
- default:
- backlightlevel = DEFAULT_GAMMA_LEVEL;
- break;
- }
- return backlightlevel;
-}
-#endif
-
-static int s6e8ax0_gamma_ctl(struct lcd_info *lcd)
-{
- s6e8ax0_write(lcd, lcd->gamma_table[lcd->bl], GAMMA_PARAM_SIZE);
-
- /* Gamma Set Update */
- s6e8ax0_write(lcd, SEQ_GAMMA_UPDATE, ARRAY_SIZE(SEQ_GAMMA_UPDATE));
-
- return 0;
-}
-
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
-static int s6e8ax0_set_acl(struct lcd_info *lcd)
-{
- int ret = 0;
-
- if (lcd->acl_enable) {
- if (lcd->cur_acl == 0) {
- if (lcd->bl == 0 || lcd->bl == 1) {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n", __func__, lcd->cur_acl);
- } else {
- s6e8ax0_write(lcd, SEQ_ACL_ON, ARRAY_SIZE(SEQ_ACL_ON));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_on\n", __func__, lcd->cur_acl);
- }
- }
- switch (lcd->bl) {
- case GAMMA_30CD... GAMMA_40CD:
- if (lcd->cur_acl != 0) {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_50CD:
- if (lcd->cur_acl != 200) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_20P], ACL_PARAM_SIZE);
- lcd->cur_acl = 200;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_60CD:
- if (lcd->cur_acl != 330) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_33P], ACL_PARAM_SIZE);
- lcd->cur_acl = 330;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_70CD:
- if (lcd->cur_acl != 430) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_43P], ACL_PARAM_SIZE);
- lcd->cur_acl = 430;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_80CD:
- if (lcd->cur_acl != 450) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_45P_80CD], ACL_PARAM_SIZE);
- lcd->cur_acl = 450;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_90CD ... GAMMA_150CD:
- if (lcd->cur_acl != 451) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_45P], ACL_PARAM_SIZE);
- lcd->cur_acl = 451;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_160CD: /* 160cd */
- if (lcd->cur_acl != 460) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_46P_160CD], ACL_PARAM_SIZE);
- lcd->cur_acl = 460;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_170CD ... GAMMA_250CD:
- if (lcd->cur_acl != 461) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_46P], ACL_PARAM_SIZE);
- lcd->cur_acl = 461;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- default:
- if (lcd->cur_acl != 550) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_50P], ACL_PARAM_SIZE);
- lcd->cur_acl = 550;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- }
- } else {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n", __func__, lcd->cur_acl);
- }
-
- if (ret) {
- ret = -EPERM;
- goto acl_err;
- }
-
-acl_err:
- return ret;
-}
-#else
-static int s6e8ax0_set_acl(struct lcd_info *lcd)
-{
- if (lcd->acl_enable) {
- if (lcd->cur_acl == 0) {
- if (lcd->bl == 0) {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n", __func__, lcd->cur_acl);
- } else {
- s6e8ax0_write(lcd, SEQ_ACL_ON, ARRAY_SIZE(SEQ_ACL_ON));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_on\n", __func__, lcd->cur_acl);
- }
- }
- switch (lcd->bl) {
- case 0:
- if (lcd->cur_acl != 0) {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case 1:
- if (lcd->cur_acl != 33) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_33P], ACL_PARAM_SIZE);
- lcd->cur_acl = 33;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case 2 ... GAMMA_250CD:
- if (lcd->cur_acl != 40) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_40P], ACL_PARAM_SIZE);
- lcd->cur_acl = 40;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- default:
- if (lcd->cur_acl != 50) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_50P], ACL_PARAM_SIZE);
- lcd->cur_acl = 50;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- }
- } else {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n", __func__, lcd->cur_acl);
- }
-
- return 0;
-}
-#endif
-
-#ifdef SMART_DIMMING
-#ifdef CONFIG_AID_DIMMING
-static int s6e8ax0_set_elvss(struct lcd_info *lcd, u8 force)
-{
- int ret = 0, elvss_level = 0;
- u32 candela = candela_table[lcd->bl];
-
- switch (candela) {
- case 0 ... 110:
- elvss_level = ELVSS_110;
- break;
- case 111 ... 120:
- elvss_level = ELVSS_120;
- break;
- case 121 ... 130:
- elvss_level = ELVSS_130;
- break;
- case 131 ... 140:
- elvss_level = ELVSS_140;
- break;
- case 141 ... 150:
- elvss_level = ELVSS_150;
- break;
- case 151 ... 160:
- elvss_level = ELVSS_160;
- break;
- case 161 ... 170:
- elvss_level = ELVSS_170;
- break;
- case 171 ... 180:
- elvss_level = ELVSS_180;
- break;
- case 181 ... 190:
- elvss_level = ELVSS_190;
- break;
- case 191 ... 200:
- elvss_level = ELVSS_200;
- break;
- case 201 ... 210:
- elvss_level = ELVSS_210;
- break;
- case 211 ... 220:
- elvss_level = ELVSS_220;
- break;
- case 221 ... 230:
- elvss_level = ELVSS_230;
- break;
- case 231 ... 240:
- elvss_level = ELVSS_240;
- break;
- case 241 ... 250:
- elvss_level = ELVSS_250;
- break;
- case 251 ... 260:
- elvss_level = ELVSS_260;
- break;
- case 261 ... 270:
- elvss_level = ELVSS_270;
- break;
- case 271 ... 280:
- elvss_level = ELVSS_280;
- break;
- case 281 ... 290:
- elvss_level = ELVSS_290;
- break;
- case 291 ... 300:
- elvss_level = ELVSS_300;
- break;
- }
-
- if ((lcd->current_elvss != lcd->elvss_table[elvss_level][2]) || force) {
- ret = s6e8ax0_write(lcd, lcd->elvss_table[elvss_level], ELVSS_PARAM_SIZE);
- lcd->current_elvss = lcd->elvss_table[elvss_level][2];
- }
-
- dev_dbg(&lcd->ld->dev, "elvss = %x\n", lcd->elvss_table[elvss_level][2]);
-
- if (ret) {
- ret = -EPERM;
- goto elvss_err;
- }
-
-elvss_err:
- return ret;
-}
-#else
-static int s6e8ax0_set_elvss(struct lcd_info *lcd, u8 force)
-{
- int ret = 0, elvss_level = 0;
- u32 candela = candela_table[lcd->bl];
-
- switch (candela) {
- case 0 ... 100:
- elvss_level = ELVSS_MIN;
- break;
- case 101 ... 160:
- elvss_level = ELVSS_1;
- break;
- case 161 ... 200:
- elvss_level = ELVSS_2;
- break;
- case 201 ... 300:
- elvss_level = ELVSS_MAX;
- break;
- default:
- break;
- }
-
- if ((lcd->current_elvss != lcd->elvss_table[elvss_level][2]) || force) {
- ret = s6e8ax0_write(lcd, lcd->elvss_table[elvss_level], ELVSS_PARAM_SIZE);
- lcd->current_elvss = lcd->elvss_table[elvss_level][2];
- }
-
- dev_dbg(&lcd->ld->dev, "elvss = %x\n", lcd->elvss_table[elvss_level][2]);
-
- if (ret) {
- ret = -EPERM;
- goto elvss_err;
- }
-
-elvss_err:
- return ret;
-}
-#endif
-static u8 get_elvss_value(struct lcd_info *lcd, u8 elvss_level)
-{
- u8 ref = 0;
- u8 offset;
-
- if (lcd->elvss.limit == 0x00)
- ref = (lcd->elvss.reference | 0x80);
- else if (lcd->elvss.limit == 0x01)
- ref = (lcd->elvss.reference + 0x40);
- else {
- printk(KERN_ERR "[ERROR:ELVSS]:%s undefined elvss limit value :%x\n", __func__, lcd->elvss.limit);
- return 0;
- }
-
- offset = elvss_offset_table[elvss_level];
- ref += offset;
-
- if (ref < DYNAMIC_ELVSS_MIN_VALUE)
- ref = DYNAMIC_ELVSS_MIN_VALUE;
- else if (ref > DYNAMIC_ELVSS_MAX_VALUE)
- ref = DYNAMIC_ELVSS_MAX_VALUE;
-
- return ref;
-}
-
-static int init_elvss_table(struct lcd_info *lcd)
-{
- int i, ret = 0;
-#ifdef SMART_DIMMING_DEBUG
- int j;
-#endif
-
- lcd->elvss_table = kzalloc(ELVSS_STATUS_MAX * sizeof(u8 *), GFP_KERNEL);
-
- if (IS_ERR_OR_NULL(lcd->elvss_table)) {
- pr_err("failed to allocate elvss table\n");
- ret = -ENOMEM;
- goto err_alloc_elvss_table;
- }
-
- for (i = 0; i < ELVSS_STATUS_MAX; i++) {
- lcd->elvss_table[i] = kzalloc(ELVSS_PARAM_SIZE * sizeof(u8), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->elvss_table[i])) {
- pr_err("failed to allocate elvss\n");
- ret = -ENOMEM;
- goto err_alloc_elvss;
- }
- lcd->elvss_table[i][0] = 0xB1;
- lcd->elvss_table[i][1] = 0x04;
- lcd->elvss_table[i][2] = get_elvss_value(lcd, i);
- }
-
-#ifdef SMART_DIMMING_DEBUG
- for (i = 0; i < ELVSS_STATUS_MAX; i++) {
- for (j = 0; j < ELVSS_PARAM_SIZE; j++)
- printk("0x%02x, ", lcd->elvss_table[i][j]);
- printk("\n");
- }
-#endif
-
- return 0;
-
-err_alloc_elvss:
- while (i > 0) {
- kfree(lcd->elvss_table[i-1]);
- i--;
- }
- kfree(lcd->elvss_table);
-err_alloc_elvss_table:
- return ret;
-}
-
-#ifdef CONFIG_AID_DIMMING
-static int init_gamma_table(struct lcd_info *lcd)
-{
- int i, ret = 0;
-
- lcd->gamma_table = kzalloc(GAMMA_MAX * sizeof(u8 *), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->gamma_table)) {
- pr_err("failed to allocate gamma table\n");
- ret = -ENOMEM;
- goto err_alloc_gamma_table;
- }
-
- for (i = 0; i < GAMMA_MAX; i++) {
- lcd->gamma_table[i] = kzalloc(GAMMA_PARAM_SIZE * sizeof(u8), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->gamma_table[i])) {
- pr_err("failed to allocate gamma\n");
- ret = -ENOMEM;
- goto err_alloc_gamma;
- }
- lcd->gamma_table[i][0] = 0xFA;
- lcd->gamma_table[i][1] = 0x01;
- }
-
- for (i = 0; i < GAMMA_MAX; i++) {
- if (candela_table[i] <= 180)
- calc_gamma_table(&lcd->smart, aid_candela_table[i], &lcd->gamma_table[i][2], G_21);
- else if (candela_table[i] > 250)
- calc_gamma_table(&lcd->smart, aid_candela_table[i], &lcd->gamma_table[i][2], G_22);
- else if (candela_table[i] == 190)
- calc_gamma_table_215_190(&lcd->smart, aid_candela_table[i], &lcd->gamma_table[i][2]);
- else
- calc_gamma_table(&lcd->smart, aid_candela_table[i], &lcd->gamma_table[i][2], G_215);
- }
-
-#ifdef SMART_DIMMING_DEBUG
- for (i = 0; i < GAMMA_MAX; i++) {
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- printk("%d, ", lcd->gamma_table[i][j]);
- printk("\n");
- }
-#endif
- return 0;
-
-err_alloc_gamma:
- while (i > 0) {
- kfree(lcd->gamma_table[i-1]);
- i--;
- }
- kfree(lcd->gamma_table);
-err_alloc_gamma_table:
- return ret;
-}
-
-static int init_aid_dimming_table(struct lcd_info *lcd)
-{
- unsigned int i, j;
-
- for (i = 0; i < ARRAY_SIZE(aid_rgb_fix_table); i++) {
- j = (aid_rgb_fix_table[i].gray * 3 + aid_rgb_fix_table[i].rgb) + 2;
- lcd->gamma_table[aid_rgb_fix_table[i].candela_idx][j] += aid_rgb_fix_table[i].offset;
- }
-
- for (i = 0; i < GAMMA_MAX; i++) {
- memcpy(lcd->f8[i], SEQ_PANEL_CONDITION_SET_500MBPS, AID_PARAM_SIZE);
- lcd->f8[i][0x12] = aid_command_table[i][0];
- lcd->f8[i][0x01] = aid_command_table[i][1];
- }
-
-
-#ifdef SMART_DIMMING_DEBUG
- for (i = 0; i < GAMMA_MAX; i++) {
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- printk("%d, ", lcd->gamma_table[i][j]);
- printk("\n");
- }
-#endif
- return 0;
-}
-#else
-static int init_gamma_table(struct lcd_info *lcd)
-{
- int i, ret = 0;
-
- lcd->gamma_table = kzalloc(GAMMA_MAX * sizeof(u8 *), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->gamma_table)) {
- pr_err("failed to allocate gamma table\n");
- ret = -ENOMEM;
- goto err_alloc_gamma_table;
- }
-
- for (i = 0; i < GAMMA_MAX; i++) {
- lcd->gamma_table[i] = kzalloc(GAMMA_PARAM_SIZE * sizeof(u8), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->gamma_table[i])) {
- pr_err("failed to allocate gamma\n");
- ret = -ENOMEM;
- goto err_alloc_gamma;
- }
- lcd->gamma_table[i][0] = 0xFA;
- lcd->gamma_table[i][1] = 0x01;
- calc_gamma_table(&lcd->smart, candela_table[i]-1, lcd->gamma_table[i]+2);
- }
-
-#ifdef SMART_DIMMING_DEBUG
- for (i = 0; i < GAMMA_MAX; i++) {
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- printk("0x%02x, ", lcd->gamma_table[i][j]);
- printk("\n");
- }
-#endif
- return 0;
-
-err_alloc_gamma:
- while (i > 0) {
- kfree(lcd->gamma_table[i-1]);
- i--;
- }
- kfree(lcd->gamma_table);
-err_alloc_gamma_table:
- return ret;
-}
-#endif
-#endif
-
-static int update_brightness(struct lcd_info *lcd, u8 force)
-{
- u32 brightness;
-
- return 0;
-
- mutex_lock(&lcd->bl_lock);
-
- brightness = lcd->bd->props.brightness;
-
- if (unlikely(!lcd->auto_brightness && brightness > 250))
- brightness = 250;
-
- lcd->bl = get_backlight_level_from_brightness(brightness);
-
- if ((force) || ((lcd->ldi_enable) && (lcd->current_bl != lcd->bl))) {
-
-#ifdef CONFIG_AID_DIMMING
- if ((force) || unlikely(aid_candela_table[lcd->bl] != aid_candela_table[lcd->current_bl]))
-#endif
- s6e8ax0_gamma_ctl(lcd);
-
-#ifdef CONFIG_AID_DIMMING
- s6e8ax0_aid_parameter_ctl(lcd , force);
-#endif
- s6e8ax0_set_acl(lcd);
-
- /* s6e8ax0_set_elvss(lcd, force);*/
-
- lcd->current_bl = lcd->bl;
-
- dev_info(&lcd->ld->dev, "brightness=%d, bl=%d, candela=%d\n", brightness, lcd->bl, candela_table[lcd->bl]);
- }
-
- mutex_unlock(&lcd->bl_lock);
-
- return 0;
-}
-
-static int s6e8ax0_ldi_init(struct lcd_info *lcd)
-{
- int ret = 0;
-
-
- s6e8ax0_write(lcd, SEQ_APPLY_LEVEL_2_KEY, ARRAY_SIZE(SEQ_APPLY_LEVEL_2_KEY));
- s6e8ax0_write(lcd, SEQ_APPLY_LEVEL_2_KEY2, ARRAY_SIZE(SEQ_APPLY_LEVEL_2_KEY2));
- /*s6e8ax0_read_id();*/
- /*s6e8ax0_write(lcd, SEQ_SLEEP_OUT, ARRAY_SIZE(SEQ_SLEEP_OUT));*/
- s6e8ax0_write(lcd, SEQ_PANEL_CONDITION_SET, ARRAY_SIZE(SEQ_PANEL_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_DISPLAY_CONDITION_SET, ARRAY_SIZE(SEQ_DISPLAY_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_GAMMA_UPDATE, ARRAY_SIZE(SEQ_GAMMA_UPDATE));
- s6e8ax0_write(lcd, SEQ_GAMMA_CONDITION_SET, ARRAY_SIZE(SEQ_GAMMA_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_LTPS_AID, ARRAY_SIZE(SEQ_LTPS_AID));
- s6e8ax0_write(lcd, SEQ_GAMMA_UPDATE2, ARRAY_SIZE(SEQ_GAMMA_UPDATE2));
- /*s6e8ax0_write(SEQ_ELVSS_CONTROL, ARRAY_SIZE(SEQ_ELVSS_CONTROL));*/
- s6e8ax0_write(lcd, SEQ_ETC_WCABC_CONTROL, ARRAY_SIZE(SEQ_ETC_WCABC_CONTROL));
- s6e8ax0_write(lcd, SEQ_ETC_SLEW_CONTROL, ARRAY_SIZE(SEQ_ETC_SLEW_CONTROL));
- s6e8ax0_write(lcd, SEQ_SLEEP_OUT, ARRAY_SIZE(SEQ_SLEEP_OUT));
- mdelay(120); /* 135.16 ms */
- s6e8ax0_write(lcd, SEQ_DISPLAY_ON, ARRAY_SIZE(SEQ_DISPLAY_ON));
-
-
- return ret;
-}
-
-static int s6e8ax0_ldi_enable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPLAY_ON, ARRAY_SIZE(SEQ_DISPLAY_ON));
-
- return ret;
-}
-
-static int s6e8ax0_ldi_disable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPLAY_OFF, ARRAY_SIZE(SEQ_DISPLAY_OFF));
- /*s6e8ax0_write(lcd, SEQ_STANDBY_ON, ARRAY_SIZE(SEQ_STANDBY_ON));*/
-
- return ret;
-}
-
-static int s6e8ax0_power_on(struct lcd_info *lcd)
-{
- int ret = 0;
- struct lcd_platform_data *pd = NULL;
- pd = lcd->lcd_pd;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- ret = s6e8ax0_ldi_init(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to initialize ldi.\n");
- goto err;
- }
-
- msleep(120);
-
- ret = s6e8ax0_ldi_enable(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to enable ldi.\n");
- goto err;
- }
-
- lcd->ldi_enable = 1;
-
- update_brightness(lcd, 1);
-err:
- return ret;
-}
-
-static int s6e8ax0_power_off(struct lcd_info *lcd)
-{
- int ret = 0;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- lcd->ldi_enable = 0;
-
- ret = s6e8ax0_ldi_disable(lcd);
-
- msleep(135);
-
- return ret;
-}
-
-static int s6e8ax0_power(struct lcd_info *lcd, int power)
-{
- int ret = 0;
- printk("%s\n", __func__);
-
- if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_on(lcd);
- else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_off(lcd);
-
- if (!ret)
- lcd->power = power;
-
- return ret;
-}
-
-static int s6e8ax0_set_power(struct lcd_device *ld, int power)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
- power != FB_BLANK_NORMAL) {
- dev_err(&lcd->ld->dev, "power value should be 0, 1 or 4.\n");
- return -EINVAL;
- }
-
- return s6e8ax0_power(lcd, power);
-}
-
-static int s6e8ax0_get_power(struct lcd_device *ld)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- return lcd->power;
-}
-
-
-static int s6e8ax0_set_brightness(struct backlight_device *bd)
-{
- int ret = 0;
- int brightness = bd->props.brightness;
- struct lcd_info *lcd = bl_get_data(bd);
-
- /* dev_info(&lcd->ld->dev, "%s: brightness=%d\n", __func__, brightness); */
-
- if (brightness < MIN_BRIGHTNESS ||
- brightness > bd->props.max_brightness) {
- dev_err(&bd->dev, "lcd brightness should be %d to %d. now %d\n",
- MIN_BRIGHTNESS, MAX_BRIGHTNESS, brightness);
- return -EINVAL;
- }
-
- if (lcd->ldi_enable) {
- ret = update_brightness(lcd, 0);
- if (ret < 0) {
- dev_err(lcd->dev, "err in %s\n", __func__);
- return -EINVAL;
- }
- }
-
- return ret;
-}
-
-static int s6e8ax0_get_brightness(struct backlight_device *bd)
-{
- struct lcd_info *lcd = bl_get_data(bd);
-
- return candela_table[lcd->bl];
-}
-
-static struct lcd_ops s6e8ax0_lcd_ops = {
- .set_power = s6e8ax0_set_power,
- .get_power = s6e8ax0_get_power,
-
-};
-
-static const struct backlight_ops s6e8ax0_backlight_ops = {
- .get_brightness = s6e8ax0_get_brightness,
- .update_status = s6e8ax0_set_brightness,
-};
-
-static ssize_t power_reduce_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->acl_enable);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t power_reduce_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->acl_enable != value) {
- dev_info(dev, "%s - %d, %d\n", __func__, lcd->acl_enable, value);
- mutex_lock(&lcd->bl_lock);
- lcd->acl_enable = value;
- if (lcd->ldi_enable)
- s6e8ax0_set_acl(lcd);
- mutex_unlock(&lcd->bl_lock);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(power_reduce, 0664, power_reduce_show, power_reduce_store);
-
-static ssize_t lcd_type_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- char temp[15];
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
- sprintf(temp, "SMD_AMS529HA01\n");
-#else
- sprintf(temp, "SMD_AMS480GYXX\n");
-#endif
- strcat(buf, temp);
- return strlen(buf);
-}
-
-static DEVICE_ATTR(lcd_type, 0444, lcd_type_show, NULL);
-
-static ssize_t gamma_table_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int i, j;
-
- for (i = 0; i < GAMMA_MAX; i++) {
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- printk("0x%02x, ", lcd->gamma_table[i][j]);
- printk("\n");
- }
-
- for (i = 0; i < ELVSS_STATUS_MAX; i++) {
- for (j = 0; j < ELVSS_PARAM_SIZE; j++)
- printk("0x%02x, ", lcd->elvss_table[i][j]);
- printk("\n");
- }
-
- return strlen(buf);
-}
-static DEVICE_ATTR(gamma_table, 0444, gamma_table_show, NULL);
-
-static ssize_t auto_brightness_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->auto_brightness);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t auto_brightness_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->auto_brightness != value) {
- dev_info(dev, "%s - %d, %d\n", __func__, lcd->auto_brightness, value);
- mutex_lock(&lcd->bl_lock);
- lcd->auto_brightness = value;
- mutex_unlock(&lcd->bl_lock);
- if (lcd->ldi_enable)
- update_brightness(lcd, 0);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(auto_brightness, 0644, auto_brightness_show, auto_brightness_store);
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-struct lcd_info *g_lcd;
-
-void s6e8ax0_early_suspend(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- set_dsim_lcd_enabled(0);
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
-
-#if defined(GPIO_OLED_DET)
- disable_irq(lcd->irq);
- gpio_request(GPIO_OLED_DET, "OLED_DET");
- s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_OUTPUT);
- s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
- gpio_direction_output(GPIO_OLED_DET, GPIO_LEVEL_LOW);
- gpio_free(GPIO_OLED_DET);
-#endif
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-
-void s6e8ax0_late_resume(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- s6e8ax0_power(lcd, FB_BLANK_UNBLANK);
-
-#if defined(GPIO_OLED_DET)
- s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_SFN(0xf));
- s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
- enable_irq(lcd->irq);
-#endif
-
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- set_dsim_lcd_enabled(1);
-
- return ;
-}
-#endif
-
-static void s6e8ax0_read_id(struct lcd_info *lcd, u8 *buf)
-{
- int ret = 0;
-
- ret = s6e8ax0_read(lcd, LDI_ID_REG, LDI_ID_LEN, buf, 3);
- if (!ret) {
- lcd->connected = 0;
- dev_info(&lcd->ld->dev, "panel is not connected well\n");
- }
-}
-
-#ifdef SMART_DIMMING
-static int s6e8ax0_read_mtp(struct lcd_info *lcd, u8 *mtp_data)
-{
- int ret;
-
- ret = s6e8ax0_read(lcd, LDI_MTP_ADDR, LDI_MTP_LENGTH, mtp_data, 0);
-
- return ret;
-}
-
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
-static void s6e8aa0_check_id(struct lcd_info *lcd, u8 *idbuf)
-{
- u32 i;
-
- for (i = 0; i < LDI_ID_LEN; i++)
- lcd->smart.panelid[i] = idbuf[i];
-
- if (idbuf[2] == 0x33)
- lcd->support_elvss = 0;
- else {
- lcd->support_elvss = 1;
- lcd->elvss.limit = (idbuf[2] & 0xc0) >> 6;
- lcd->elvss.reference = idbuf[2] & 0x3f;
- printk(KERN_DEBUG "Dynamic ELVSS Information, 0x%x\n", lcd->elvss.reference);
- }
-}
-#else
-static void s6e8aa0_check_id(struct lcd_info *lcd, u8 *idbuf)
-{
- int i;
-
- for (i = 0; i < LDI_ID_LEN; i++)
- lcd->smart.panelid[i] = idbuf[i];
-
- if (idbuf[0] == PANEL_A1_M3)
- lcd->support_elvss = 0;
- else {
- lcd->support_elvss = 1;
- lcd->elvss.reference = idbuf[2] & (BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4));
- printk(KERN_DEBUG "Dynamic ELVSS Information, 0x%x\n", lcd->elvss.reference);
- }
-}
-#endif
-#endif
-
-static int s6e8ax0_probe(struct device *dev)
-{
- int ret = 0;
- struct lcd_info *lcd;
-#ifdef SMART_DIMMING
- u8 mtp_data[LDI_MTP_LENGTH] = {0,};
-#endif
-
-
- lcd = kzalloc(sizeof(struct lcd_info), GFP_KERNEL);
- if (!lcd) {
- pr_err("failed to allocate for lcd\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- g_lcd = lcd;
-
- lcd->ld = lcd_device_register("panel", dev, lcd, &s6e8ax0_lcd_ops);
- if (IS_ERR(lcd->ld)) {
- pr_err("failed to register lcd device\n");
- ret = PTR_ERR(lcd->ld);
- goto out_free_lcd;
- }
-
- lcd->bd = backlight_device_register("panel", dev, lcd, &s6e8ax0_backlight_ops, NULL);
- if (IS_ERR(lcd->bd)) {
- pr_err("failed to register backlight device\n");
- ret = PTR_ERR(lcd->bd);
- goto out_free_backlight;
- }
-
- lcd->dev = dev;
- lcd->dsim = (struct dsim_global *)dev_get_drvdata(dev->parent);
- lcd->bd->props.max_brightness = MAX_BRIGHTNESS;
- lcd->bd->props.brightness = DEFAULT_BRIGHTNESS;
- lcd->bl = DEFAULT_GAMMA_LEVEL;
- lcd->current_bl = lcd->bl;
-
- lcd->acl_enable = 0;
- lcd->cur_acl = 0;
-
- lcd->power = FB_BLANK_UNBLANK;
- lcd->ldi_enable = 1;
- lcd->connected = 1;
- lcd->auto_brightness = 0;
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_power_reduce);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_lcd_type);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_gamma_table);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->bd->dev, &dev_attr_auto_brightness);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- dev_set_drvdata(dev, lcd);
-
- mutex_init(&lcd->lock);
- mutex_init(&lcd->bl_lock);
-
- /*s6e8ax0_read_id(lcd, lcd->id);*/
-
- dev_info(&lcd->ld->dev, "ID: %x, %x, %x\n", lcd->id[0], lcd->id[1], lcd->id[2]);
-
- dev_info(&lcd->ld->dev, "s6e8aa0 lcd panel driver has been probed.\n");
-
-#ifdef SMART_DIMMING
- s6e8aa0_check_id(lcd, lcd->id);
-
- init_table_info(&lcd->smart);
-
- ret = s6e8ax0_read_mtp(lcd, mtp_data);
- if (!ret) {
- printk(KERN_ERR "[LCD:ERROR] : %s read mtp failed\n", __func__);
- /*return -EPERM;*/
- }
-
- calc_voltage_table(&lcd->smart, mtp_data);
-
- if (lcd->support_elvss)
- ret = init_elvss_table(lcd);
- else {
- lcd->elvss_table = (unsigned char **)ELVSS_TABLE;
- ret = 0;
- }
-
- ret += init_gamma_table(lcd);
-
-#ifdef CONFIG_AID_DIMMING
- if (lcd->id[1] == 0x20 || lcd->id[1] == 0x40 || lcd->id[1] == 0x60) {
- printk(KERN_INFO "AID Dimming is started. %d\n", lcd->id[1]);
- lcd->support_aid = 1;
- ret += init_aid_dimming_table(lcd);
- }
-#endif
-
- if (ret) {
- printk(KERN_ERR "gamma table generation is failed\n");
- lcd->gamma_table = (unsigned char **)gamma22_table;
- lcd->elvss_table = (unsigned char **)ELVSS_TABLE;
- }
-
- update_brightness(lcd, 1);
-#endif
-
-#if defined(GPIO_OLED_DET)
- if (lcd->connected) {
- INIT_DELAYED_WORK(&lcd->oled_detection, oled_detection_work);
-
- lcd->irq = gpio_to_irq(GPIO_OLED_DET);
-
- s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_SFN(0xf));
- s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
- if (request_irq(lcd->irq, oled_detection_int,
- IRQF_TRIGGER_FALLING, "oled_detection", lcd))
- pr_err("failed to reqeust irq. %d\n", lcd->irq);
- }
-#endif
- return 0;
-
-out_free_backlight:
- lcd_device_unregister(lcd->ld);
- kfree(lcd);
- return ret;
-
-out_free_lcd:
- kfree(lcd);
- return ret;
-
-err_alloc:
- return ret;
-}
-
-static int __devexit s6e8ax0_remove(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- lcd_device_unregister(lcd->ld);
- backlight_device_unregister(lcd->bd);
- kfree(lcd);
-
- return 0;
-}
-
-/* Power down all displays on reboot, poweroff or halt. */
-static void s6e8ax0_shutdown(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
-}
-
-static struct mipi_lcd_driver s6e8ax0_mipi_driver = {
- .name = "ea8061",
- .probe = s6e8ax0_probe,
- .remove = __devexit_p(s6e8ax0_remove),
- .shutdown = s6e8ax0_shutdown,
-};
-
-static int s6e8ax0_init(void)
-{
- return s5p_dsim_register_lcd_driver(&s6e8ax0_mipi_driver);
-}
-
-static void s6e8ax0_exit(void)
-{
- return;
-}
-
-module_init(s6e8ax0_init);
-module_exit(s6e8ax0_exit);
-
-MODULE_DESCRIPTION("MIPI-DSI EA8061:AMS555HBXX (720x1280) Panel Driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/s3cfb_fimd6x.c b/drivers/video/samsung_duallcd/s3cfb_fimd6x.c
deleted file mode 100644
index 71a24ae..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_fimd6x.c
+++ /dev/null
@@ -1,998 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_fimd6x.c
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com/
- *
- * Register interface file for Samsung Display Controller (FIMD) driver
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/delay.h>
-#include <linux/device.h>
-#include <linux/fb.h>
-#include <linux/io.h>
-#include <linux/clk.h>
-#include <mach/map.h>
-#include <plat/clock.h>
-#include <plat/fb-s5p.h>
-#include <plat/regs-fb-s5p.h>
-
-#include "s3cfb.h"
-
-void s3cfb_check_line_count(struct s3cfb_global *ctrl)
-{
- int timeout = 30 * 5300;
- int i = 0;
-
- do {
- if (!(readl(ctrl->regs + S3C_VIDCON1) & 0x7ff0000))
- break;
- i++;
- } while (i < timeout);
-
- if (i == timeout) {
- dev_err(ctrl->dev, "line count mismatch\n");
- s3cfb_display_on(ctrl);
- }
-}
-
-int s3cfb_check_vsync_status(struct s3cfb_global *ctrl)
-{
- u32 cfg;
-
- if (unlikely(!ctrl->regs)) {
- dev_err(ctrl->dev, "reg is zero\n");
- return 0;
- }
-
- cfg = (readl(ctrl->regs + S3C_VIDCON1) & S3C_VIDCON1_VSTATUS_MASK);
-
- if (cfg != S3C_VIDCON1_VSTATUS_ACTIVE && cfg != S3C_VIDCON1_VSTATUS_BACK)
- return 1;
- else
- return 0;
-}
-
-int s3cfb_set_output(struct s3cfb_global *ctrl)
-{
- u32 cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_VIDOUT_MASK;
-
- if (ctrl->output == OUTPUT_RGB)
- cfg |= S3C_VIDCON0_VIDOUT_RGB;
- else if (ctrl->output == OUTPUT_ITU)
- cfg |= S3C_VIDCON0_VIDOUT_ITU;
- else if (ctrl->output == OUTPUT_I80LDI0) {
- cfg |= S3C_VIDCON0_VIDOUT_I80LDI0;
- cfg |= S3C_VIDCON0_DSI_ENABLE;
- } else if (ctrl->output == OUTPUT_I80LDI1)
- cfg |= S3C_VIDCON0_VIDOUT_I80LDI1;
- else if (ctrl->output == OUTPUT_WB_RGB)
- cfg |= S3C_VIDCON0_VIDOUT_WB_RGB;
- else if (ctrl->output == OUTPUT_WB_I80LDI0)
- cfg |= S3C_VIDCON0_VIDOUT_WB_I80LDI0;
- else if (ctrl->output == OUTPUT_WB_I80LDI1)
- cfg |= S3C_VIDCON0_VIDOUT_WB_I80LDI1;
- else {
- dev_err(ctrl->dev, "invalid output type: %d\n", ctrl->output);
- return -EINVAL;
- }
-
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- cfg = readl(ctrl->regs + S3C_VIDCON2);
- cfg &= ~(S3C_VIDCON2_WB_MASK | S3C_VIDCON2_TVFORMATSEL_MASK | \
- S3C_VIDCON2_TVFORMATSEL_YUV_MASK);
-
- if (ctrl->output == OUTPUT_RGB)
- cfg |= S3C_VIDCON2_WB_DISABLE;
- else if (ctrl->output == OUTPUT_ITU)
- cfg |= S3C_VIDCON2_WB_DISABLE;
- else if (ctrl->output == OUTPUT_I80LDI0)
- cfg |= S3C_VIDCON2_WB_DISABLE;
- else if (ctrl->output == OUTPUT_I80LDI1)
- cfg |= S3C_VIDCON2_WB_DISABLE;
- else if (ctrl->output == OUTPUT_WB_RGB)
- cfg |= (S3C_VIDCON2_WB_ENABLE | S3C_VIDCON2_TVFORMATSEL_SW | \
- S3C_VIDCON2_TVFORMATSEL_YUV444);
- else if (ctrl->output == OUTPUT_WB_I80LDI0)
- cfg |= (S3C_VIDCON2_WB_ENABLE | S3C_VIDCON2_TVFORMATSEL_SW | \
- S3C_VIDCON2_TVFORMATSEL_YUV444);
- else if (ctrl->output == OUTPUT_WB_I80LDI1)
- cfg |= (S3C_VIDCON2_WB_ENABLE | S3C_VIDCON2_TVFORMATSEL_SW | \
- S3C_VIDCON2_TVFORMATSEL_YUV444);
- else {
- dev_err(ctrl->dev, "invalid output type: %d\n", ctrl->output);
- return -EINVAL;
- }
-
- writel(cfg, ctrl->regs + S3C_VIDCON2);
-
- if (ctrl->output == OUTPUT_I80LDI0) {
- cfg = readl(ctrl->regs + S3C_I80IFCONA0);
- cfg |= ((1<<0)|(1<<8));
- writel(cfg, ctrl->regs + S3C_I80IFCONA0);
- }
-
- return 0;
-}
-
-#ifdef CONFIG_FB_S5P_MIPI_DSIM
-void s3cfb_set_trigger(struct s3cfb_global *ctrl)
-{
- u32 reg = 0;
-
- reg = readl(ctrl->regs + S3C_TRIGCON);
-
- reg |= 1 << 0 | 1 << 1;
-
- writel(reg, ctrl->regs + S3C_TRIGCON);
-}
-#endif
-
-int s3cfb_set_display_mode(struct s3cfb_global *ctrl)
-{
- u32 cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_PNRMODE_MASK;
- cfg |= (ctrl->rgb_mode << S3C_VIDCON0_PNRMODE_SHIFT);
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- return 0;
-}
-
-int s3cfb_display_on(struct s3cfb_global *ctrl)
-{
- u32 cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg |= (S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE);
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "global display is on\n");
-
- return 0;
-}
-
-int s3cfb_display_off(struct s3cfb_global *ctrl)
-{
- u32 cfg, fimd_count = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg |= S3C_VIDCON0_ENVID_ENABLE;
- cfg &= ~S3C_VIDCON0_ENVID_F_ENABLE;
-
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- do {
- if (++fimd_count > 2000000) {
- dev_err(ctrl->dev, "FIMD off fail\n");
- return 1;
- }
- if (!(readl(ctrl->regs + S3C_VIDCON0) & 0x1))
- return 0;
- } while (1);
-}
-
-int s3cfb_frame_off(struct s3cfb_global *ctrl)
-{
- u32 cfg;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~S3C_VIDCON0_ENVID_F_ENABLE;
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_dbg(ctrl->dev, "current frame display is off\n");
-
- return 0;
-}
-
-int s3cfb_set_clock(struct s3cfb_global *ctrl)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- u32 cfg, maxclk, src_clk, vclk, div;
-
- /* spec is under 100MHz */
- maxclk = 100 * 1000000;
-
- cfg = readl(ctrl->regs + S3C_VIDCON0);
-
- if (pdata->hw_ver == 0x70) {
- cfg &= ~(S3C_VIDCON0_CLKVALUP_MASK |
- S3C_VIDCON0_VCLKEN_MASK);
- cfg |= (S3C_VIDCON0_CLKVALUP_ALWAYS |
- S3C_VIDCON0_VCLKEN_FREERUN);
-
- src_clk = clk_get_rate(ctrl->clock);
- printk(KERN_DEBUG "FIMD src sclk = %d\n", src_clk);
- } else {
- cfg &= ~(S3C_VIDCON0_CLKSEL_MASK |
- S3C_VIDCON0_CLKVALUP_MASK |
- S3C_VIDCON0_VCLKEN_MASK |
- S3C_VIDCON0_CLKDIR_MASK);
- cfg |= (S3C_VIDCON0_CLKVALUP_ALWAYS |
- S3C_VIDCON0_VCLKEN_NORMAL |
- S3C_VIDCON0_CLKDIR_DIVIDED);
-
- if (strcmp(pdata->clk_name, "sclk_fimd") == 0) {
- cfg |= S3C_VIDCON0_CLKSEL_SCLK;
- src_clk = clk_get_rate(ctrl->clock);
- printk(KERN_DEBUG "FIMD src sclk = %d\n", src_clk);
-
- } else {
- cfg |= S3C_VIDCON0_CLKSEL_HCLK;
- src_clk = ctrl->clock->parent->rate;
- printk(KERN_DEBUG "FIMD src hclk = %d\n", src_clk);
- }
- }
-
- vclk = PICOS2KHZ(ctrl->fb[pdata->default_win]->var.pixclock) * 1000;
-
- if (vclk > maxclk) {
- dev_info(ctrl->dev, "vclk(%d) should be smaller than %d\n",
- vclk, maxclk);
- /* vclk = maxclk; */
- }
-
- div = DIV_ROUND_CLOSEST(src_clk, vclk);
-
- if (div == 0) {
- dev_err(ctrl->dev, "div(%d) should be non-zero\n", div);
- div = 1;
- }
-
- if ((src_clk/div) > maxclk)
- dev_info(ctrl->dev, "vclk(%d) should be smaller than %d Hz\n",
- src_clk/div, maxclk);
-
- cfg &= ~S3C_VIDCON0_CLKVAL_F(0xff);
- cfg |= S3C_VIDCON0_CLKVAL_F(div - 1);
- writel(cfg, ctrl->regs + S3C_VIDCON0);
-
- dev_info(ctrl->dev, "parent clock: %d, vclk: %d, vclk div: %d\n",
- src_clk, vclk, div);
-
- return 0;
-}
-
-int s3cfb_set_polarity(struct s3cfb_global *ctrl)
-{
- struct s3cfb_lcd_polarity *pol;
- u32 cfg;
-
- pol = &ctrl->lcd->polarity;
- cfg = 0;
-
- /* Set VCLK hold scheme */
- cfg &= S3C_VIDCON1_FIXVCLK_MASK;
- cfg |= S3C_VIDCON1_FIXVCLK_VCLK_RUN_VDEN_DIS;
-
- if (pol->rise_vclk)
- cfg |= S3C_VIDCON1_IVCLK_RISING_EDGE;
-
- if (pol->inv_hsync)
- cfg |= S3C_VIDCON1_IHSYNC_INVERT;
-
- if (pol->inv_vsync)
- cfg |= S3C_VIDCON1_IVSYNC_INVERT;
-
- if (pol->inv_vden)
- cfg |= S3C_VIDCON1_IVDEN_INVERT;
-
- writel(cfg, ctrl->regs + S3C_VIDCON1);
-
- return 0;
-}
-
-int s3cfb_set_polarity_only(struct s3cfb_global *ctrl)
-{
- struct s3cfb_lcd_polarity *pol;
- u32 cfg = 0;
-
- pol = &ctrl->lcd->polarity;
-
- if (pol->rise_vclk)
- cfg |= S3C_VIDCON1_IVCLK_RISING_EDGE;
-
- if (pol->inv_hsync)
- cfg |= S3C_VIDCON1_IHSYNC_INVERT;
-
- if (pol->inv_vsync)
- cfg |= S3C_VIDCON1_IVSYNC_INVERT;
-
- if (pol->inv_vden)
- cfg |= S3C_VIDCON1_IVDEN_INVERT;
-
- writel(cfg, ctrl->regs + S3C_VIDCON1);
-
- return 0;
-}
-
-int s3cfb_set_timing(struct s3cfb_global *ctrl)
-{
- struct s3cfb_lcd_timing *time;
- u32 cfg;
-
- time = &ctrl->lcd->timing;
- cfg = 0;
-
- cfg |= S3C_VIDTCON0_VBPDE(time->v_bpe - 1);
- cfg |= S3C_VIDTCON0_VBPD(time->v_bp - 1);
- cfg |= S3C_VIDTCON0_VFPD(time->v_fp - 1);
- cfg |= S3C_VIDTCON0_VSPW(time->v_sw - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDTCON0);
-
- cfg = 0;
-
- cfg |= S3C_VIDTCON1_VFPDE(time->v_fpe - 1);
- cfg |= S3C_VIDTCON1_HBPD(time->h_bp - 1);
- cfg |= S3C_VIDTCON1_HFPD(time->h_fp - 1);
- cfg |= S3C_VIDTCON1_HSPW(time->h_sw - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDTCON1);
-
- return 0;
-}
-
-int s3cfb_set_lcd_size(struct s3cfb_global *ctrl)
-{
- u32 cfg = 0;
-
-#ifdef CONFIG_FB_S5P_WA101S
- cfg |= S3C_VIDTCON2_HOZVAL(ctrl->lcd->width - 1 + 6);
-#else
- cfg |= S3C_VIDTCON2_HOZVAL(ctrl->lcd->width - 1);
-#endif
-
- cfg |= S3C_VIDTCON2_LINEVAL(ctrl->lcd->height - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDTCON2);
-
- return 0;
-}
-
-int s3cfb_set_global_interrupt(struct s3cfb_global *ctrl, int enable)
-{
- u32 cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
- cfg &= ~(S3C_VIDINTCON0_INTFRMEN_ENABLE | S3C_VIDINTCON0_INT_ENABLE);
-
- if (enable) {
- dev_dbg(ctrl->dev, "video interrupt is on\n");
- cfg |= (S3C_VIDINTCON0_INTFRMEN_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
- } else {
- dev_dbg(ctrl->dev, "video interrupt is off\n");
- cfg |= (S3C_VIDINTCON0_INTFRMEN_DISABLE |
- S3C_VIDINTCON0_INT_DISABLE);
- }
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON0);
-
- return 0;
-}
-
-int s3cfb_set_vsync_interrupt(struct s3cfb_global *ctrl, int enable)
-{
- u32 cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
- cfg &= ~S3C_VIDINTCON0_FRAMESEL0_MASK;
-
- if (enable) {
- dev_dbg(ctrl->dev, "vsync interrupt is on\n");
- cfg |= S3C_VIDINTCON0_FRAMESEL0_VSYNC;
- } else {
- dev_dbg(ctrl->dev, "vsync interrupt is off\n");
- cfg &= ~S3C_VIDINTCON0_FRAMESEL0_VSYNC;
- }
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON0);
-
- return 0;
-}
-
-int s3cfb_get_vsync_interrupt(struct s3cfb_global *ctrl)
-{
- u32 cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
- cfg &= S3C_VIDINTCON0_FRAMESEL0_VSYNC;
-
- if (cfg & S3C_VIDINTCON0_FRAMESEL0_VSYNC) {
- dev_dbg(ctrl->dev, "vsync interrupt is on\n");
- return 1;
- } else {
- dev_dbg(ctrl->dev, "vsync interrupt is off\n");
- return 0;
- }
-}
-
-
-#ifdef CONFIG_FB_S5P_TRACE_UNDERRUN
-int s3cfb_set_fifo_interrupt(struct s3cfb_global *ctrl, int enable)
-{
- u32 cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON0);
-
- cfg &= ~(S3C_VIDINTCON0_FIFOSEL_MASK | S3C_VIDINTCON0_FIFOLEVEL_MASK);
- cfg |= (S3C_VIDINTCON0_FIFOSEL_ALL | S3C_VIDINTCON0_FIFOLEVEL_EMPTY);
-
- if (enable) {
- dev_dbg(ctrl->dev, "fifo interrupt is on\n");
- cfg |= (S3C_VIDINTCON0_INTFIFO_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
- } else {
- dev_dbg(ctrl->dev, "fifo interrupt is off\n");
- cfg &= ~(S3C_VIDINTCON0_INTFIFO_ENABLE |
- S3C_VIDINTCON0_INT_ENABLE);
- }
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON0);
-
- return 0;
-}
-#endif
-
-int s3cfb_clear_interrupt(struct s3cfb_global *ctrl)
-{
- u32 cfg = 0;
-
- cfg = readl(ctrl->regs + S3C_VIDINTCON1);
-
- if (cfg & S3C_VIDINTCON1_INTFIFOPEND)
- dev_info(ctrl->dev, "fifo underrun occur\n");
-
- cfg |= (S3C_VIDINTCON1_INTVPPEND | S3C_VIDINTCON1_INTI80PEND |
- S3C_VIDINTCON1_INTFRMPEND | S3C_VIDINTCON1_INTFIFOPEND);
-
- writel(cfg, ctrl->regs + S3C_VIDINTCON1);
-
- return 0;
-}
-
-int s3cfb_channel_localpath_on(struct s3cfb_global *ctrl, int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- u32 cfg;
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- cfg = readl(ctrl->regs + S3C_WINSHMAP);
- cfg |= S3C_WINSHMAP_LOCAL_ENABLE(id);
- writel(cfg, ctrl->regs + S3C_WINSHMAP);
- }
-
- dev_dbg(ctrl->dev, "[fb%d] local path enabled\n", id);
-
- return 0;
-}
-
-int s3cfb_channel_localpath_off(struct s3cfb_global *ctrl, int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- u32 cfg;
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- cfg = readl(ctrl->regs + S3C_WINSHMAP);
- cfg &= ~S3C_WINSHMAP_LOCAL_DISABLE(id);
- writel(cfg, ctrl->regs + S3C_WINSHMAP);
- }
-
- dev_dbg(ctrl->dev, "[fb%d] local path disabled\n", id);
-
- return 0;
-}
-
-int s3cfb_window_on(struct s3cfb_global *ctrl, int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- u32 cfg;
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- cfg = readl(ctrl->regs + S3C_WINSHMAP);
- cfg |= S3C_WINSHMAP_CH_ENABLE(id);
- writel(cfg, ctrl->regs + S3C_WINSHMAP);
- }
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
- cfg |= S3C_WINCON_ENWIN_ENABLE;
- writel(cfg, ctrl->regs + S3C_WINCON(id));
-
- dev_dbg(ctrl->dev, "[fb%d] turn on\n", id);
-
- return 0;
-}
-
-int s3cfb_window_off(struct s3cfb_global *ctrl, int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- u32 cfg;
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
- cfg &= ~(S3C_WINCON_ENWIN_ENABLE | S3C_WINCON_DATAPATH_MASK);
- cfg |= S3C_WINCON_DATAPATH_DMA;
- writel(cfg, ctrl->regs + S3C_WINCON(id));
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- cfg = readl(ctrl->regs + S3C_WINSHMAP);
- cfg &= ~S3C_WINSHMAP_CH_DISABLE(id);
- writel(cfg, ctrl->regs + S3C_WINSHMAP);
- }
-
- dev_dbg(ctrl->dev, "[fb%d] turn off\n", id);
-
- return 0;
-}
-
-int s3cfb_win_map_on(struct s3cfb_global *ctrl, int id, int color)
-{
- u32 cfg = 0;
-
- cfg |= S3C_WINMAP_ENABLE;
- cfg |= S3C_WINMAP_COLOR(color);
- writel(cfg, ctrl->regs + S3C_WINMAP(id));
-
- dev_dbg(ctrl->dev, "[fb%d] win map on : 0x%08x\n", id, color);
-
- return 0;
-}
-
-int s3cfb_win_map_off(struct s3cfb_global *ctrl, int id)
-{
- writel(0, ctrl->regs + S3C_WINMAP(id));
-
- dev_dbg(ctrl->dev, "[fb%d] win map off\n", id);
-
- return 0;
-}
-
-int s3cfb_set_window_control(struct s3cfb_global *ctrl, int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct fb_info *fb = ctrl->fb[id];
- struct fb_var_screeninfo *var = &fb->var;
- struct s3cfb_window *win = fb->par;
- u32 cfg;
- u32 shw;
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw |= S3C_WINSHMAP_PROTECT(id);
- writel(shw, ctrl->regs + S3C_WINSHMAP);
- }
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
-
- cfg &= ~(S3C_WINCON_BITSWP_ENABLE | S3C_WINCON_BYTESWP_ENABLE |
- S3C_WINCON_HAWSWP_ENABLE | S3C_WINCON_WSWP_ENABLE |
- S3C_WINCON_BURSTLEN_MASK | S3C_WINCON_BPPMODE_MASK |
- S3C_WINCON_INRGB_MASK | S3C_WINCON_DATAPATH_MASK);
-
- if (win->path != DATA_PATH_DMA) {
- dev_dbg(ctrl->dev, "[fb%d] data path: fifo\n", id);
-
- cfg |= S3C_WINCON_DATAPATH_LOCAL;
-
- if (win->path == DATA_PATH_FIFO) {
- cfg |= S3C_WINCON_INRGB_RGB;
- cfg |= S3C_WINCON_BPPMODE_24BPP_888;
- } else if (win->path == DATA_PATH_IPC) {
- cfg |= S3C_WINCON_INRGB_YUV;
- cfg |= S3C_WINCON_BPPMODE_24BPP_888;
- }
-
- if (id == 1) {
- cfg &= ~(S3C_WINCON1_LOCALSEL_MASK |
- S3C_WINCON1_VP_ENABLE);
-
- if (win->local_channel == 0) {
- cfg |= S3C_WINCON1_LOCALSEL_FIMC1;
- } else {
- cfg |= (S3C_WINCON1_LOCALSEL_VP |
- S3C_WINCON1_VP_ENABLE);
- }
- }
- } else {
- dev_dbg(ctrl->dev, "[fb%d] data path: dma\n", id);
-
- cfg |= S3C_WINCON_DATAPATH_DMA;
-
- if (fb->var.bits_per_pixel == 16 && pdata->swap & FB_SWAP_HWORD)
- cfg |= S3C_WINCON_HAWSWP_ENABLE;
-
- if (fb->var.bits_per_pixel == 32 && pdata->swap & FB_SWAP_WORD)
- cfg |= S3C_WINCON_WSWP_ENABLE;
-
- /* dma burst */
- if (win->dma_burst == 4)
- cfg |= S3C_WINCON_BURSTLEN_4WORD;
- else if (win->dma_burst == 8)
- cfg |= S3C_WINCON_BURSTLEN_8WORD;
- else
- cfg |= S3C_WINCON_BURSTLEN_16WORD;
-
- /* bpp mode set */
- switch (fb->var.bits_per_pixel) {
- case 16:
- if (var->transp.length == 1) {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: A1-R5-G5-B5\n", id);
- cfg |= S3C_WINCON_BPPMODE_16BPP_A555;
- } else if (var->transp.length == 4) {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: A4-R4-G4-B4\n", id);
- cfg |= S3C_WINCON_BPPMODE_16BPP_A444;
- } else {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: R5-G6-B5\n", id);
- cfg |= S3C_WINCON_BPPMODE_16BPP_565;
- }
- break;
-
- case 24: /* packed 24 bpp: nothing to do for 6.x fimd */
- break;
-
- case 32:
- if (var->transp.length == 0) {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: R8-G8-B8\n", id);
- cfg |= S3C_WINCON_BPPMODE_24BPP_888;
- } else {
- dev_dbg(ctrl->dev,
- "[fb%d] bpp mode: A8-R8-G8-B8\n", id);
- cfg |= S3C_WINCON_BPPMODE_32BPP;
- }
- break;
- }
- }
-
- writel(cfg, ctrl->regs + S3C_WINCON(id));
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw &= ~(S3C_WINSHMAP_PROTECT(id));
- writel(shw, ctrl->regs + S3C_WINSHMAP);
- }
-
- return 0;
-}
-
-int s3cfb_get_win_cur_buf_addr(struct s3cfb_global *ctrl, int id)
-{
- dma_addr_t start_addr = 0;
-
- start_addr = readl(ctrl->regs + S3C_VIDADDR_START0(id) + S3C_SHD_WIN_BASE);
-
- dev_dbg(ctrl->dev, "[fb%d] start_addr: 0x%08x\n", id, start_addr);
-
- return start_addr;
-}
-
-int s3cfb_set_buffer_address(struct s3cfb_global *ctrl, int id)
-{
- struct fb_fix_screeninfo *fix = &ctrl->fb[id]->fix;
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- dma_addr_t start_addr = 0, end_addr = 0;
- u32 shw;
-
- if (fix->smem_start) {
- start_addr = fix->smem_start + ((var->xres_virtual *
- var->yoffset + var->xoffset) *
- (var->bits_per_pixel / 8));
-
- end_addr = start_addr + fix->line_length * var->yres;
- }
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw |= S3C_WINSHMAP_PROTECT(id);
- writel(shw, ctrl->regs + S3C_WINSHMAP);
- }
-
- writel(start_addr, ctrl->regs + S3C_VIDADDR_START0(id));
- writel(end_addr, ctrl->regs + S3C_VIDADDR_END0(id));
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw &= ~(S3C_WINSHMAP_PROTECT(id));
- writel(shw, ctrl->regs + S3C_WINSHMAP);
- }
-
- dev_dbg(ctrl->dev, "[fb%d] start_addr: 0x%08x, end_addr: 0x%08x\n",
- id, start_addr, end_addr);
-
- return 0;
-}
-
-int s3cfb_set_alpha_value(struct s3cfb_global *ctrl, int value)
-{
- writel(value, ctrl->regs + S3C_BLENDCON);
-
- return 0;
-}
-
-int s3cfb_set_alpha_mode(struct s3cfb_global *ctrl, int id, unsigned int mode)
-{
- if (id <= 0 || id > 5)
- return 0;
-
- if (mode == BLENDING_PREMULT)
- writel(0xc1, ctrl->regs + S3C_BLENDEQ1 + 4 * (id - 1));
- else
- writel(0xc2, ctrl->regs + S3C_BLENDEQ1 + 4 * (id - 1));
-
- return 0;
-}
-
-int s3cfb_set_alpha_value_width(struct s3cfb_global *ctrl, int id)
-{
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
-
- if (var->bits_per_pixel == 32 && var->transp.length > 4)
- writel(1, ctrl->regs + S3C_BLENDCON);
- else
- writel(0, ctrl->regs + S3C_BLENDCON);
-
- return 0;
-}
-
-int s3cfb_set_alpha_blending(struct s3cfb_global *ctrl, int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct s3cfb_window *win = ctrl->fb[id]->par;
- struct s3cfb_alpha *alpha = &win->alpha;
- u32 avalue = 0, cfg;
- u32 shw;
-
- if (id == 0) {
- dev_err(ctrl->dev, "[fb%d] does not support alpha blending\n",
- id);
- return -EINVAL;
- }
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw |= S3C_WINSHMAP_PROTECT(id);
- writel(shw, ctrl->regs + S3C_WINSHMAP);
- }
-
- cfg = readl(ctrl->regs + S3C_WINCON(id));
- cfg &= ~(S3C_WINCON_BLD_MASK | S3C_WINCON_ALPHA_SEL_MASK);
-
- if (alpha->mode == PIXEL_BLENDING) {
- dev_dbg(ctrl->dev, "[fb%d] alpha mode: pixel blending\n", id);
-
- /* fixing to DATA[31:24] for alpha value */
- cfg |= (S3C_WINCON_BLD_PIXEL | S3C_WINCON_ALPHA1_SEL);
- } else {
- dev_dbg(ctrl->dev, "[fb%d] alpha mode: plane %d blending\n",
- id, alpha->channel);
-
- cfg |= S3C_WINCON_BLD_PLANE;
-
- if (alpha->channel == 0) {
- cfg |= S3C_WINCON_ALPHA0_SEL;
- avalue = (alpha->value << S3C_VIDOSD_ALPHA0_SHIFT);
- } else {
- cfg |= S3C_WINCON_ALPHA1_SEL;
- avalue = (alpha->value << S3C_VIDOSD_ALPHA1_SHIFT);
- }
- }
-
- writel(cfg, ctrl->regs + S3C_WINCON(id));
- writel(avalue, ctrl->regs + S3C_VIDOSD_C(id));
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw &= ~(S3C_WINSHMAP_PROTECT(id));
- writel(shw, ctrl->regs + S3C_WINSHMAP);
- }
-
- return 0;
-}
-
-int s3cfb_set_oneshot(struct s3cfb_global *ctrl, int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- struct fb_fix_screeninfo *fix = &ctrl->fb[id]->fix;
- struct s3cfb_window *win = ctrl->fb[id]->par;
- u32 cfg, shw;
- u32 offset = (var->xres_virtual - var->xres) * var->bits_per_pixel / 8;
- dma_addr_t start_addr = 0, end_addr = 0;
-
- /* Shadow Register Protection */
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw |= S3C_WINSHMAP_PROTECT(id);
- writel(shw, ctrl->regs + S3C_WINSHMAP);
- }
-
- /* s3cfb_set_window_position */
- cfg = S3C_VIDOSD_LEFT_X(win->x) | S3C_VIDOSD_TOP_Y(win->y);
- writel(cfg, ctrl->regs + S3C_VIDOSD_A(id));
-
- cfg = S3C_VIDOSD_RIGHT_X(win->x + var->xres - 1) |
- S3C_VIDOSD_BOTTOM_Y(win->y + var->yres - 1);
- writel(cfg, ctrl->regs + S3C_VIDOSD_B(id));
-
- dev_dbg(ctrl->dev, "[fb%d] offset: (%d, %d, %d, %d)\n", id,
- win->x, win->y, win->x + var->xres - 1, win->y + var->yres - 1);
-
- /* s3cfb_set_buffer_address */
- if (fix->smem_start) {
- start_addr = fix->smem_start + ((var->xres_virtual *
- var->yoffset + var->xoffset) *
- (var->bits_per_pixel / 8));
-
- end_addr = start_addr + fix->line_length * var->yres;
- }
-
- writel(start_addr, ctrl->regs + S3C_VIDADDR_START0(id));
- writel(end_addr, ctrl->regs + S3C_VIDADDR_END0(id));
-
- dev_dbg(ctrl->dev, "[fb%d] start_addr: 0x%08x, end_addr: 0x%08x\n",
- id, start_addr, end_addr);
-
- /* s3cfb_set_window_size */
- if (id <= 2) {
- cfg = S3C_VIDOSD_SIZE(var->xres * var->yres);
- if (id == 0)
- writel(cfg, ctrl->regs + S3C_VIDOSD_C(id));
- else
- writel(cfg, ctrl->regs + S3C_VIDOSD_D(id));
-
- dev_dbg(ctrl->dev, "[fb%d] resolution: %d x %d\n", id,
- var->xres, var->yres);
- }
-
- /* s3cfb_set_buffer_size */
- cfg = S3C_VIDADDR_PAGEWIDTH(var->xres * var->bits_per_pixel / 8);
- cfg |= S3C_VIDADDR_OFFSIZE(offset);
- writel(cfg, ctrl->regs + S3C_VIDADDR_SIZE(id));
-
- /* Shadow Register Un-Protection */
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw &= ~(S3C_WINSHMAP_PROTECT(id));
- writel(shw, ctrl->regs + S3C_WINSHMAP);
- }
-
- return 0;
-}
-
-int s3cfb_set_window_position(struct s3cfb_global *ctrl, int id)
-{
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- struct s3cfb_window *win = ctrl->fb[id]->par;
- u32 cfg, shw;
-
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw |= S3C_WINSHMAP_PROTECT(id);
- writel(shw, ctrl->regs + S3C_WINSHMAP);
-
- cfg = S3C_VIDOSD_LEFT_X(win->x) | S3C_VIDOSD_TOP_Y(win->y);
- writel(cfg, ctrl->regs + S3C_VIDOSD_A(id));
-
- cfg = S3C_VIDOSD_RIGHT_X(win->x + var->xres - 1) |
- S3C_VIDOSD_BOTTOM_Y(win->y + var->yres - 1);
-
- writel(cfg, ctrl->regs + S3C_VIDOSD_B(id));
-
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw &= ~(S3C_WINSHMAP_PROTECT(id));
- writel(shw, ctrl->regs + S3C_WINSHMAP);
-
- dev_dbg(ctrl->dev, "[fb%d] offset: (%d, %d, %d, %d)\n", id,
- win->x, win->y, win->x + var->xres - 1, win->y + var->yres - 1);
-
- return 0;
-}
-
-int s3cfb_set_window_size(struct s3cfb_global *ctrl, int id)
-{
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- u32 cfg;
-
- if (id > 2)
- return 0;
-
- cfg = S3C_VIDOSD_SIZE(var->xres * var->yres);
-
- if (id == 0)
- writel(cfg, ctrl->regs + S3C_VIDOSD_C(id));
- else
- writel(cfg, ctrl->regs + S3C_VIDOSD_D(id));
-
- dev_dbg(ctrl->dev, "[fb%d] resolution: %d x %d\n", id,
- var->xres, var->yres);
-
- return 0;
-}
-
-int s3cfb_set_buffer_size(struct s3cfb_global *ctrl, int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct fb_var_screeninfo *var = &ctrl->fb[id]->var;
- u32 offset = (var->xres_virtual - var->xres) * var->bits_per_pixel / 8;
- u32 cfg = 0;
- u32 shw;
-
- cfg = S3C_VIDADDR_PAGEWIDTH(var->xres * var->bits_per_pixel / 8);
- cfg |= S3C_VIDADDR_OFFSIZE(offset);
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw |= S3C_WINSHMAP_PROTECT(id);
- writel(shw, ctrl->regs + S3C_WINSHMAP);
- }
-
- writel(cfg, ctrl->regs + S3C_VIDADDR_SIZE(id));
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw &= ~(S3C_WINSHMAP_PROTECT(id));
- writel(shw, ctrl->regs + S3C_WINSHMAP);
- }
-
- return 0;
-}
-
-int s3cfb_set_chroma_key(struct s3cfb_global *ctrl, int id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
- struct s3cfb_window *win = ctrl->fb[id]->par;
- struct s3cfb_chroma *chroma = &win->chroma;
- u32 cfg = 0;
- u32 shw;
-
- if (id == 0) {
- dev_err(ctrl->dev, "[fb%d] does not support chroma key\n", id);
- return -EINVAL;
- }
-
- cfg = (S3C_KEYCON0_KEYBLEN_DISABLE | S3C_KEYCON0_DIRCON_MATCH_FG);
-
- if (chroma->enabled)
- cfg |= S3C_KEYCON0_KEY_ENABLE;
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw |= S3C_WINSHMAP_PROTECT(id);
- writel(shw, ctrl->regs + S3C_WINSHMAP);
- }
-
- writel(cfg, ctrl->regs + S3C_KEYCON(id));
-
- cfg = S3C_KEYCON1_COLVAL(chroma->key);
- writel(cfg, ctrl->regs + S3C_KEYVAL(id));
-
- if ((pdata->hw_ver == 0x62) || (pdata->hw_ver == 0x70)) {
- shw = readl(ctrl->regs + S3C_WINSHMAP);
- shw &= ~(S3C_WINSHMAP_PROTECT(id));
- writel(shw, ctrl->regs + S3C_WINSHMAP);
- }
-
- dev_dbg(ctrl->dev, "[fb%d] chroma key: 0x%08x, %s\n", id, cfg,
- chroma->enabled ? "enabled" : "disabled");
-
- return 0;
-}
-
-int s3cfb_set_dualrgb(struct s3cfb_global *ctrl, int mode)
-{
- writel(mode, ctrl->regs + S3C_DUALRGB);
-
- return 0;
-}
-
diff --git a/drivers/video/samsung_duallcd/s3cfb_ht101hd1.c b/drivers/video/samsung_duallcd/s3cfb_ht101hd1.c
deleted file mode 100644
index b8dabdb..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_ht101hd1.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_ht101hd1.c
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com/
- *
- * HT101HD1-100 XWVGA Landscape LCD module driver for the SMDK
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include "s3cfb.h"
-
-static struct s3cfb_lcd ht101hd1 = {
- .width = 1366,
- .height = 768,
- .bpp = 24,
- .freq = 60,
-
- .timing = {
- .h_fp = 49,
- .h_bp = 17,
- .h_sw = 33,
- .v_fp = 4,
- .v_fpe = 1,
- .v_bp = 15,
- .v_bpe = 1,
- .v_sw = 6,
- },
-
- .polarity = {
- .rise_vclk = 0,
- .inv_hsync = 1,
- .inv_vsync = 1,
- .inv_vden = 0,
- },
-};
-
-/* name should be fixed as 's3cfb_set_lcd_info' */
-void s3cfb_set_lcd_info(struct s3cfb_global *ctrl)
-{
- ht101hd1.init_ldi = NULL;
- ctrl->lcd = &ht101hd1;
-}
diff --git a/drivers/video/samsung_duallcd/s3cfb_ielcd.c b/drivers/video/samsung_duallcd/s3cfb_ielcd.c
deleted file mode 100644
index b86d6f5..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_ielcd.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_mdnie.c
- *
- * Register interface file for Samsung IELCD driver
- *
- * Copyright (c) 2009 Samsung Electronics
- * http://www.samsungsemi.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/clk.h>
-#include <linux/mutex.h>
-#include <linux/poll.h>
-#include <linux/wait.h>
-#include <linux/fs.h>
-#include <linux/irq.h>
-#include <linux/mm.h>
-#include <linux/fb.h>
-#include <linux/ctype.h>
-#include <linux/miscdevice.h>
-#include <linux/dma-mapping.h>
-#include <linux/delay.h>
-#include <linux/device.h>
-
-#include <linux/io.h>
-#include <mach/map.h>
-#include <plat/clock.h>
-#include <plat/regs-fb-s5p.h>
-
-#include "s3cfb.h"
-#include "s3cfb_mdnie.h"
-#include "s3cfb_ielcd.h"
-
-static struct resource *s3c_ielcd_mem;
-static void __iomem *s3c_ielcd_base;
-
-#define s3c_ielcd_readl(addr) __raw_readl((s3c_ielcd_base + addr))
-#define s3c_ielcd_writel(val, addr) writel(val, (s3c_ielcd_base + addr))
-
-static struct s3cfb_global ielcd_fb;
-static struct s3cfb_global *ielcd_fbdev;
-
-int s3c_ielcd_hw_init(void)
-{
- s3c_ielcd_mem = request_mem_region(S3C_IELCD_PHY_BASE, S3C_IELCD_MAP_SIZE, "ielcd");
- if (s3c_ielcd_mem == NULL) {
- printk(KERN_ERR "IELCD: failed to reserved memory region\n");
- return -ENOENT;
- }
-
- s3c_ielcd_base = ioremap(S3C_IELCD_PHY_BASE, S3C_IELCD_MAP_SIZE);
- if (s3c_ielcd_base == NULL) {
- printk(KERN_ERR "IELCD failed ioremap\n");
- return -ENOENT;
- }
-
- printk(KERN_INFO "%s : 0x%p\n", __func__, s3c_ielcd_base);
-
- ielcd_fbdev = &ielcd_fb;
-
- return 0;
-}
-
-int s3c_ielcd_logic_start(void)
-{
- s3c_ielcd_writel(S3C_IELCD_MAGIC_KEY, S3C_IELCD_GPOUTCON0);
- return 0;
-}
-
-int s3c_ielcd_logic_stop(void)
-{
- s3c_ielcd_writel(0, S3C_IELCD_GPOUTCON0);
- return 0;
-}
-
-int s3c_ielcd_display_on(void)
-{
- unsigned int cfg;
-
- cfg = s3c_ielcd_readl(S3C_VIDCON0);
- cfg |= (S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE);
- s3c_ielcd_writel(cfg, S3C_VIDCON0);
-
- return 0;
-}
-
-#if 0
-int s3c_ielcd_display_off(void)
-{
- unsigned int cfg;
-
- cfg = s3c_ielcd_readl(S3C_IELCD_VIDCON0);
- /*cfg &= ~(S3C_VIDCON0_ENVID_ENABLE| S3C_VIDCON0_ENVID_F_ENABLE);*/
- cfg &= ~(S3C_VIDCON0_ENVID_F_ENABLE);
- s3c_ielcd_writel(cfg, S3C_IELCD_VIDCON0);
-
- return 0;
-}
-#else
-int s3c_ielcd_display_off(void)
-{
- unsigned int cfg, ielcd_count = 0;
-
- cfg = s3c_ielcd_readl(S3C_VIDCON0);
- cfg |= S3C_VIDCON0_ENVID_ENABLE;
- cfg &= ~(S3C_VIDCON0_ENVID_F_ENABLE);
-
- s3c_ielcd_writel(cfg, S3C_VIDCON0);
-
- do {
- if (++ielcd_count > 2000000) {
- printk(KERN_ERR "ielcd off fail\n");
- return 1;
- }
-
- if (!(s3c_ielcd_readl(S3C_VIDCON1) & 0xffff0000))
- return 0;
- } while (1);
-}
-#endif
-
-int s3c_ielcd_init_global(struct s3cfb_global *ctrl)
-{
- unsigned int cfg;
-
- *ielcd_fbdev = *ctrl;
- ctrl->ielcd_regs = ielcd_fbdev->regs = s3c_ielcd_base;
-
- s3cfb_set_polarity_only(ielcd_fbdev);
- s3cfb_set_timing(ielcd_fbdev);
- s3cfb_set_lcd_size(ielcd_fbdev);
-
- /* vclock divider setting , same as FIMD */
- cfg = readl(ctrl->regs + S3C_VIDCON0);
- cfg &= ~(S3C_VIDCON0_VIDOUT_MASK | S3C_VIDCON0_VCLKEN_MASK);
- cfg |= S3C_VIDCON0_VIDOUT_RGB;
- cfg |= S3C_VIDCON0_VCLKEN_NORMAL;
- s3c_ielcd_writel(cfg, S3C_VIDCON0);
-
- /* window0 position setting , fixed */
- s3c_ielcd_writel(0, S3C_VIDOSD0A);
-
- /* window0 position setting */
- cfg = S3C_VIDOSD_RIGHT_X(ctrl->lcd->width - 1);
- cfg |= S3C_VIDOSD_BOTTOM_Y(ctrl->lcd->height - 1);
- s3c_ielcd_writel(cfg, S3C_VIDOSD0B);
-
- /* window0 osd size setting */
- s3c_ielcd_writel((ctrl->lcd->width * ctrl->lcd->height), S3C_VIDOSD0C);
-
- /* window0 setting , fixed */
- cfg = S3C_WINCON_DATAPATH_LOCAL | S3C_WINCON_BPPMODE_32BPP | S3C_WINCON_INRGB_RGB;
- s3c_ielcd_writel(cfg, S3C_WINCON0);
-
- s3cfb_window_on(ielcd_fbdev, 0);
-
- return 0;
-}
-
diff --git a/drivers/video/samsung_duallcd/s3cfb_ielcd.h b/drivers/video/samsung_duallcd/s3cfb_ielcd.h
deleted file mode 100644
index e5b637b..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_ielcd.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_ielcd.h
- *
- * Header file for Samsung (IELCD) driver
- *
- * Copyright (c) 2009 Samsung Electronics
- * http://www.samsungsemi.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _S3CFB_IELCD_H
-#define _S3CFB_IELCD_H
-
-#define S3C_IELCD_MAGIC_KEY 0x2ff47
-
-#define S3C_IELCD_PHY_BASE 0x11C40000
-#define S3C_IELCD_MAP_SIZE 0x00008000
-
-#define S3C_IELCD_GPOUTCON0 (0x0278)
-
-int s3c_ielcd_hw_init(void);
-int s3c_ielcd_logic_start(void);
-int s3c_ielcd_logic_stop(void);
-int s3c_ielcd_display_on(void);
-int s3c_ielcd_display_off(void);
-
-
-int s3c_ielcd_init_global(struct s3cfb_global *ctrl);
-
-#endif
diff --git a/drivers/video/samsung_duallcd/s3cfb_lms501kf03.c b/drivers/video/samsung_duallcd/s3cfb_lms501kf03.c
deleted file mode 100644
index 078cb85..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_lms501kf03.c
+++ /dev/null
@@ -1,415 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_lms501kf03.c
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com/
- *
- * LMS501KF03 5.0" WVGA Landscape LCD module driver for the SMDK
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-#include <linux/wait.h>
-#include <linux/fb.h>
-#include <linux/delay.h>
-#include <linux/gpio.h>
-#include <linux/spi/spi.h>
-
-#include <plat/gpio-cfg.h>
-
-#include "s3cfb.h"
-
-#define ENDDEF 0xFF00
-#define COMMAND_ONLY 0x00
-#define DATA_ONLY 0x01
-
-#ifdef CONFIG_BACKLIGHT_LMS501KF03_TFT
-
-#define dbg(fmt...)
-
-static int locked;
-struct s5p_lcd {
- struct spi_device *g_spi;
- struct lcd_device *lcd_dev;
- struct backlight_device *bl_dev;
-};
-static struct s5p_lcd lcd;
-#else
-static struct spi_device *g_spi;
-#endif
-
-const unsigned short SEQ_SET_PASSWORD[] = {
- 0xb9, 0xff, 0x83, 0x69,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_POWER[] = {
- 0xb1, 0x01, 0x00, 0x34, 0x06, 0x00, 0x14, 0x14, 0x20, 0x28,
- 0x12, 0x12, 0x17, 0x0a, 0x01, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_DISPLAY[] = {
- 0xb2, 0x00, 0x2b, 0x03, 0x03, 0x70, 0x00, 0xff, 0x00, 0x00,
- 0x00, 0x00, 0x03, 0x03, 0x00, 0x01,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_RGB_IF[] = {
- 0xb3, 0x09,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_DISPLAY_INV[] = {
- 0xb4, 0x01, 0x08, 0x77, 0x0e, 0x06,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_VCOM[] = {
- 0xb6, 0x4c, 0x2e,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_GATE[] = {
- 0xd5, 0x00, 0x05, 0x03, 0x29, 0x01, 0x07, 0x17, 0x68, 0x13,
- 0x37, 0x20, 0x31, 0x8a, 0x46, 0x9b, 0x57, 0x13, 0x02, 0x75,
- 0xb9, 0x64, 0xa8, 0x07, 0x0f, 0x04, 0x07,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_PANEL[] = {
- 0xcc, 0x02,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_COL_MOD[] = {
- 0x3a, 0x77,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_W_GAMMA[] = {
- 0xe0, 0x00, 0x04, 0x09, 0x0f, 0x1f, 0x3f, 0x1f, 0x2f, 0x0a,
- 0x0f, 0x10, 0x16, 0x18, 0x16, 0x17, 0x0d, 0x15, 0x00, 0x04,
- 0x09, 0x0f, 0x38, 0x3f, 0x20, 0x39, 0x0a, 0x0f, 0x10, 0x16,
- 0x18, 0x16, 0x17, 0x0d, 0x15,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_RGB_GAMMA[] = {
- 0xc1, 0x01, 0x03, 0x07, 0x0f, 0x1a, 0x22, 0x2c, 0x33, 0x3c,
- 0x46, 0x4f, 0x58, 0x60, 0x69, 0x71, 0x79, 0x82, 0x89, 0x92,
- 0x9a, 0xa1, 0xa9, 0xb1, 0xb9, 0xc1, 0xc9, 0xcf, 0xd6, 0xde,
- 0xe5, 0xec, 0xf3, 0xf9, 0xff, 0xdd, 0x39, 0x07, 0x1c, 0xcb,
- 0xab, 0x5f, 0x49, 0x80, 0x03, 0x07, 0x0f, 0x19, 0x20, 0x2a,
- 0x31, 0x39, 0x42, 0x4b, 0x53, 0x5b, 0x63, 0x6b, 0x73, 0x7b,
- 0x83, 0x8a, 0x92, 0x9b, 0xa2, 0xaa, 0xb2, 0xba, 0xc2, 0xca,
- 0xd0, 0xd8, 0xe1, 0xe8, 0xf0, 0xf8, 0xff, 0xf7, 0xd8, 0xbe,
- 0xa7, 0x39, 0x40, 0x85, 0x8c, 0xc0, 0x04, 0x07, 0x0c, 0x17,
- 0x1c, 0x23, 0x2b, 0x34, 0x3b, 0x43, 0x4c, 0x54, 0x5b, 0x63,
- 0x6a, 0x73, 0x7a, 0x82, 0x8a, 0x91, 0x98, 0xa1, 0xa8, 0xb0,
- 0xb7, 0xc1, 0xc9, 0xcf, 0xd9, 0xe3, 0xea, 0xf4, 0xff, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_UP_DN[] = {
- 0x36, 0x10,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_SLEEP_IN[] = {
- 0x10,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_SLEEP_OUT[] = {
- 0x11,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_DISPLAY_ON[] = {
- 0x29,
- ENDDEF
-};
-
-const unsigned short SEQ_SET_DISPLAY_OFF[] = {
- 0x10,
- ENDDEF
-};
-
-static struct s3cfb_lcd lms501kf03 = {
- .width = 480,
- .height = 800,
- .bpp = 24,
-
- .freq = 60,
- .timing = {
- .h_fp = 8,
- .h_bp = 8,
- .h_sw = 6,
- .v_fp = 6,
- .v_fpe = 1,
- .v_bp = 6,
- .v_bpe = 1,
- .v_sw = 4,
- },
- .polarity = {
- .rise_vclk = 0,
- .inv_hsync = 1,
- .inv_vsync = 1,
- .inv_vden = 0,
- },
-};
-
-static int lms501kf03_spi_write_driver(int addr, int data)
-{
- u16 buf[1];
- struct spi_message msg;
-
- struct spi_transfer xfer = {
- .len = 2,
- .tx_buf = buf,
- };
-
- buf[0] = (addr << 8) | data;
-
- spi_message_init(&msg);
- spi_message_add_tail(&xfer, &msg);
-
-#ifdef CONFIG_BACKLIGHT_LMS501KF03_TFT
- int ret;
- locked = 1;
- ret = spi_sync(lcd.g_spi, &msg);
- locked = 0;
- return ret ;
-#else
- return spi_sync(g_spi, &msg);
-#endif
-}
-
-static void lms501kf03_spi_write(unsigned char address, unsigned char command)
-{
- lms501kf03_spi_write_driver(address, command);
-}
-
-static void lms501kf03_panel_send_sequence(const unsigned short *wbuf)
-{
- int i = 0;
-
- while (wbuf[i] != ENDDEF) {
- if (i == 0)
- lms501kf03_spi_write(COMMAND_ONLY, wbuf[i]);
- else
- lms501kf03_spi_write(DATA_ONLY, wbuf[i]);
-
- udelay(100);
- i += 1;
- }
-}
-
-void lms501kf03_ldi_init(void)
-{
- lms501kf03_panel_send_sequence(SEQ_SET_PASSWORD);
- lms501kf03_panel_send_sequence(SEQ_SET_POWER);
- lms501kf03_panel_send_sequence(SEQ_SET_DISPLAY);
- lms501kf03_panel_send_sequence(SEQ_SET_RGB_IF);
- lms501kf03_panel_send_sequence(SEQ_SET_DISPLAY_INV);
- lms501kf03_panel_send_sequence(SEQ_SET_VCOM);
- lms501kf03_panel_send_sequence(SEQ_SET_GATE);
- lms501kf03_panel_send_sequence(SEQ_SET_PANEL);
- lms501kf03_panel_send_sequence(SEQ_SET_COL_MOD);
- lms501kf03_panel_send_sequence(SEQ_SET_W_GAMMA);
- lms501kf03_panel_send_sequence(SEQ_SET_RGB_GAMMA);
- lms501kf03_panel_send_sequence(SEQ_SET_SLEEP_OUT);
- mdelay(120);
- lms501kf03_panel_send_sequence(SEQ_SET_DISPLAY_ON);
-}
-
-void lms501kf03_ldi_enable(void)
-{
- lms501kf03_panel_send_sequence(SEQ_SET_DISPLAY_ON);
-}
-
-void lms501kf03_ldi_disable(void)
-{
- lms501kf03_panel_send_sequence(SEQ_SET_DISPLAY_OFF);
- mdelay(120);
-}
-
-void lms501kf03_init_ldi(void)
-{
- lms501kf03_ldi_init();
-}
-
-void s3cfb_set_lcd_info(struct s3cfb_global *ctrl)
-{
- lms501kf03.init_ldi = lms501kf03_ldi_init;
- ctrl->lcd = &lms501kf03;
-}
-
-void lms501kf03_gpio_cfg(void)
-{
- /* LCD _SPI CS */
- s3c_gpio_cfgpin(EXYNOS4_GPB(5), S3C_GPIO_OUTPUT);
- s3c_gpio_setpull(EXYNOS4_GPB(5), S3C_GPIO_PULL_NONE);
-
- /* LCD_SPI SCLK */
- s3c_gpio_cfgpin(EXYNOS4_GPB(4), S3C_GPIO_OUTPUT);
- s3c_gpio_setpull(EXYNOS4_GPB(4), S3C_GPIO_PULL_NONE);
-
- /* LCD_SPI MOSI */
- s3c_gpio_cfgpin(EXYNOS4_GPB(7), S3C_GPIO_OUTPUT);
- s3c_gpio_setpull(EXYNOS4_GPB(7), S3C_GPIO_PULL_NONE);
-}
-
-/* backlight operations and functions */
-#ifdef CONFIG_BACKLIGHT_LMS501KF03_TFT
-static int s5p_bl_update_status(struct backlight_device *bd)
-{
- int bl = bd->props.brightness;
- dbg("\nUpdate brightness=%d\n", bd->props.brightness);
- int level = 0;
-
- if (!locked) {
- if ((bl >= 0) && (bl <= 50))
- level = 1;
- else if ((bl > 50) && (bl <= 100))
- level = 2;
- else if ((bl > 100) && (bl <= 150))
- level = 3;
- else if ((bl > 150) && (bl <= 200))
- level = 4;
- else if ((bl > 200) && (bl <= 255))
- level = 5;
-
- if (level) {
-
- switch (level) {
- /* If bl is not halved, variation in brightness is
- * observed as a curve with the middle region being
- * brightest and the sides being darker. It is
- * required that brightness increases gradually
- * from left to right.*/
- case 1:
- lms501kf03_spi_write(0x46, 0x2F);
- lms501kf03_spi_write(0x56, 0x2E);
- lms501kf03_spi_write(0x66, 0x3F);
-
- break;
- case 2:
- lms501kf03_spi_write(0x46, 0x37);
- lms501kf03_spi_write(0x56, 0x36);
- lms501kf03_spi_write(0x66, 0x4A);
-
- break;
- case 3:
- lms501kf03_spi_write(0x46, 0x3E);
- lms501kf03_spi_write(0x56, 0x3D);
- lms501kf03_spi_write(0x66, 0x53);
-
- break;
- case 4:
- lms501kf03_spi_write(0x46, 0x44);
- lms501kf03_spi_write(0x56, 0x43);
- lms501kf03_spi_write(0x66, 0x5C);
-
- break;
- case 5:
- lms501kf03_spi_write(0x46, 0x47);
- lms501kf03_spi_write(0x56, 0x45);
- lms501kf03_spi_write(0x66, 0x5F);
- break;
- default:
- break;
- }
- } /* level check over */
- } else {
- dbg("\nLOCKED!!!Brightness cannot be changed now!locked=%d",
- locked);
- }
- return 0;
-}
-
-static int s5p_bl_get_brightness(struct backlilght_device *bd)
-{
- dbg("\n reading brightness\n");
- return 0;
-}
-
-static const struct backlight_ops s5p_bl_ops = {
- .update_status = s5p_bl_update_status,
- .get_brightness = s5p_bl_get_brightness,
-};
-#endif
-
-static int __devinit lms501kf03_probe(struct spi_device *spi)
-{
- int ret;
-#ifdef CONFIG_BACKLIGHT_LMS501KF03_TFT
- struct backlight_properties props;
-#endif
- spi->bits_per_word = 9;
- ret = spi_setup(spi);
-
-#ifdef CONFIG_BACKLIGHT_LMS501KF03_TFT
- lcd.g_spi = spi;
-
- /* The node is named as pwm-backlight even though PWM
- * control is not being done since Eclair interface is
- * looking for "pwm-backlight" for backlight brightness
- * control*/
- memset(&props, 0, sizeof(struct backlight_properties));
- props.max_brightness = 255;
- lcd.bl_dev = backlight_device_register("pwm-backlight",
- &spi->dev, &lcd, &s5p_bl_ops, &props);
-
- dev_set_drvdata(&spi->dev, &lcd);
-#else
- g_spi = spi;
-#endif
-
- lms501kf03_gpio_cfg();
- lms501kf03_ldi_init();
-
- if (ret < 0)
- return 0;
-
- return ret;
-}
-#ifdef CONFIG_PM
-int lms501kf03_suspend(struct platform_device *pdev, pm_message_t state)
-{
- lms501kf03_ldi_disable();
- return 0;
-}
-
-int lms501kf03_resume(struct platform_device *pdev, pm_message_t state)
-{
- lms501kf03_ldi_init();
- return 0;
-}
-#endif
-
-static struct spi_driver lms501kf03_driver = {
- .driver = {
- .name = "lms501kf03",
- .owner = THIS_MODULE,
- },
- .probe = lms501kf03_probe,
- .remove = __exit_p(lms501kf03_remove),
- .suspend = NULL,
- .resume = NULL,
-};
-
-static int __init lms501kf03_init(void)
-{
- return spi_register_driver(&lms501kf03_driver);
-}
-
-static void __exit lms501kf03_exit(void)
-{
- spi_unregister_driver(&lms501kf03_driver);
-}
-
-module_init(lms501kf03_init);
-module_exit(lms501kf03_exit);
diff --git a/drivers/video/samsung_duallcd/s3cfb_lte480wv.c b/drivers/video/samsung_duallcd/s3cfb_lte480wv.c
deleted file mode 100644
index 21f76a3..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_lte480wv.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_lte480wv.c
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com/
- *
- * LTE480 4.8" WVGA Landscape LCD module driver for the SMDK
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include "s3cfb.h"
-
-static struct s3cfb_lcd lte480wv = {
- .width = 800,
- .height = 480,
- .bpp = 24,
- .freq = 60,
-
- .timing = {
- .h_fp = 8,
- .h_bp = 13,
- .h_sw = 3,
- .v_fp = 5,
- .v_fpe = 1,
- .v_bp = 7,
- .v_bpe = 1,
- .v_sw = 1,
- },
-
- .polarity = {
- .rise_vclk = 0,
- .inv_hsync = 1,
- .inv_vsync = 1,
- .inv_vden = 0,
- },
-};
-
-/* name should be fixed as 's3cfb_set_lcd_info' */
-void s3cfb_set_lcd_info(struct s3cfb_global *ctrl)
-{
- lte480wv.init_ldi = NULL;
- ctrl->lcd = &lte480wv;
-}
diff --git a/drivers/video/samsung_duallcd/s3cfb_main.c b/drivers/video/samsung_duallcd/s3cfb_main.c
deleted file mode 100644
index ae9b80a..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_main.c
+++ /dev/null
@@ -1,1099 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb-main.c
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
- *
- * Core file for Samsung Display Controller (FIMD) driver
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/clk.h>
-#include <linux/mutex.h>
-#include <linux/poll.h>
-#include <linux/wait.h>
-#include <linux/fs.h>
-#include <linux/irq.h>
-#include <linux/mm.h>
-#include <linux/fb.h>
-#include <linux/ctype.h>
-#include <linux/dma-mapping.h>
-#include <linux/interrupt.h>
-#include <linux/platform_device.h>
-#include <linux/io.h>
-#include <linux/memory.h>
-#include <linux/pm_runtime.h>
-#include <linux/delay.h>
-#include <plat/clock.h>
-#include <plat/media.h>
-#include <mach/media.h>
-#include <mach/map.h>
-#include "s3cfb.h"
-
-#ifdef CONFIG_BUSFREQ_OPP
-#include <mach/dev.h>
-#endif
-
-#ifdef CONFIG_FB_S5P_MDNIE
-#include "s3cfb_mdnie.h"
-#include "mdnie.h"
-#endif
-#ifdef CONFIG_HAS_WAKELOCK
-#include <linux/wakelock.h>
-#include <linux/earlysuspend.h>
-#include <linux/suspend.h>
-#endif
-
-#if defined(CONFIG_MACH_U1_BD) && defined(CONFIG_TARGET_LOCALE_KOR)
-#include <mach/regs-clock.h>
-#include "boot_progressbar.h"
-#define DISPLAY_BOOT_PROGRESS
-#endif
-#include <mach/regs-pmu.h>
-#include <plat/regs-fb-s5p.h>
-
-struct mutex s3cfb_lock;
-struct s3cfb_fimd_desc *fbfimd;
-
-inline struct s3cfb_global *get_fimd_global(int id)
-{
- struct s3cfb_global *fbdev;
-
- if (id < 5)
- fbdev = fbfimd->fbdev[0];
- else
- fbdev = fbfimd->fbdev[1];
-
- return fbdev;
-}
-
-int s3cfb_vsync_status_check(void)
-{
- struct s3cfb_global *fbdev[2];
- fbdev[0] = fbfimd->fbdev[0];
-
- if (fbdev[0]->regs != 0 && fbdev[0]->system_state == POWER_ON)
- return s3cfb_check_vsync_status(fbdev[0]);
- else
- return 0;
-}
-
-static irqreturn_t s3cfb_irq_frame(int irq, void *dev_id)
-{
- struct s3cfb_global *fbdev[2];
- fbdev[0] = fbfimd->fbdev[0];
-
- if (fbdev[0]->regs != 0)
- s3cfb_clear_interrupt(fbdev[0]);
-
- fbdev[0]->wq_count++;
- wake_up(&fbdev[0]->wq);
-
- return IRQ_HANDLED;
-}
-
-#ifdef CONFIG_FB_S5P_TRACE_UNDERRUN
-static irqreturn_t s3cfb_irq_fifo(int irq, void *dev_id)
-{
- struct s3cfb_global *fbdev[2];
- fbdev[0] = fbfimd->fbdev[0];
-
- if (fbdev[0]->regs != 0)
- s3cfb_clear_interrupt(fbdev[0]);
-
- return IRQ_HANDLED;
-}
-#endif
-
-int s3cfb_register_framebuffer(struct s3cfb_global *fbdev)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
- int ret, i, j;
-
- /* on registering framebuffer, framebuffer of default window is registered at first. */
- for (i = pdata->default_win; i < pdata->nr_wins + pdata->default_win; i++) {
- j = i % pdata->nr_wins;
- ret = register_framebuffer(fbdev->fb[j]);
- if (ret) {
- dev_err(fbdev->dev, "failed to register \
- framebuffer device\n");
- goto err;
- }
-#ifndef CONFIG_FRAMEBUFFER_CONSOLE
- if (j == pdata->default_win) {
- s3cfb_check_var_window(fbdev, &fbdev->fb[j]->var,
- fbdev->fb[j]);
- ret = s3cfb_set_par_window(fbdev, fbdev->fb[j]);
- if (ret != 0)
- BUG();
- s3cfb_draw_logo(fbdev->fb[j]);
- }
-#endif
- }
- return 0;
-
-err:
- while (--i >= pdata->default_win) {
- j = i % pdata->nr_wins;
- unregister_framebuffer(fbdev->fb[j]);
- }
- return -EINVAL;
-}
-
-void read_lcd_register(void)
-{
- struct s3cfb_global *fbdev[1];
- u32 reg_val[156] = {0,};
- u32 reg;
- u32 i;
-
- fbdev[0] = fbfimd->fbdev[0];
-
- /*11C00000 ~ 11C00260*/
- reg = readl(fbdev[0]->regs_org + S3C_VIDCON1);
- dev_info(fbdev[0]->dev, "11C000%02X| %08X", S3C_VIDCON1, reg);
- for (i = 0; i < 156; i++)
- reg_val[i] = readl(fbdev[0]->regs_org + (i*4));
-
- for (i = 0; i < 39; i++)
- dev_info(fbdev[0]->dev, "11C0%04X| %08X %08X %08X %08X",
- (i*16), reg_val[i*4], reg_val[i*4+1], reg_val[i*4+2], reg_val[i*4+3]);
-
- /*11C040A0 ~ 11C04110*/
- for (i = 0; i < 32; i++)
- reg_val[i] = readl(fbdev[0]->regs_org + (0x40A0)+(i*4));
-
- for (i = 0; i < 8; i++)
- dev_info(fbdev[0]->dev, "11C0%04X| %08X %08X %08X %08X",
- (0x40A0)+(i*16), reg_val[i*4], reg_val[i*4+1], reg_val[i*4+2], reg_val[i*4+3]);
-#ifdef CONFIG_FB_S5P_MDNIE
- reg = readl(fbdev[0]->ielcd_regs + S3C_VIDCON1);
- dev_info(fbdev[0]->dev, "11C400%02X| %08X", S3C_VIDCON1, reg);
-
- for (i = 0; i < 4; i++)
- reg_val[i] = readl(fbdev[0]->ielcd_regs + (i*4));
-
- for (i = 0; i < 1; i++)
- dev_info(fbdev[0]->dev, "11C400%02X| %08X %08X %08X %08X",
- (i*16), reg_val[i*4], reg_val[i*4+1], reg_val[i*4+2], reg_val[i*4+3]);
-#endif
-#ifdef CONFIG_FB_S5P_MIPI_DSIM
- reg = read_dsim_register(0);
- dev_info(fbdev[0]->dev, "11C80000| %08X", reg);
- for (i = 0; i < 4; i++)
- reg_val[i] = read_dsim_register(i);
-
- for (i = 0; i < 1; i++)
- dev_info(fbdev[0]->dev, "11C800%02X| %08X %08X %08X %08X",
- (i*16), reg_val[i*4], reg_val[i*4+1], reg_val[i*4+2], reg_val[i*4+3]);
-#endif
-}
-
-static int s3cfb_sysfs_show_win_power(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(dev);
- struct s3cfb_window *win;
- char temp[16];
- int i;
- struct s3cfb_global *fbdev[1];
- fbdev[0] = fbfimd->fbdev[0];
-
- for (i = 0; i < pdata->nr_wins; i++) {
- win = fbdev[0]->fb[i]->par;
- sprintf(temp, "[fb%d] %s\n", i, win->enabled ? "on" : "off");
- strcat(buf, temp);
- }
-
- return strlen(buf);
-}
-
-static int s3cfb_sysfs_store_win_power(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t len)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(dev);
- char temp[4] = { 0, };
- const char *p = buf;
- int id, to;
- struct s3cfb_global *fbdev[1];
- fbdev[0] = fbfimd->fbdev[0];
-
- while (*p != '\0') {
- if (!isspace(*p))
- strncat(temp, p, 1);
- p++;
- }
-
- if (strlen(temp) != 2)
- return -EINVAL;
-
- id = simple_strtoul(temp, NULL, 10) / 10;
- to = simple_strtoul(temp, NULL, 10) % 10;
-
- if (id < 0 || id > pdata->nr_wins)
- return -EINVAL;
-
- if (to != 0 && to != 1)
- return -EINVAL;
-
- if (to == 0)
- s3cfb_disable_window(fbdev[0], id);
- else
- s3cfb_enable_window(fbdev[0], id);
-
- return len;
-}
-
-static DEVICE_ATTR(win_power, 0644,
- s3cfb_sysfs_show_win_power, s3cfb_sysfs_store_win_power);
-
-static ssize_t ielcd_dump_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int reg_val, i;
- char temp[50];
- struct s3cfb_global *fbdev[1];
-
- fbdev[0] = fbfimd->fbdev[0];
-
- for (i = 0; i < 25; i++) {
- reg_val = readl(fbdev[0]->ielcd_regs + i*4);
- sprintf(temp, "[IELCD]0x11C4_00%02X = 0x%08X\n", (i*4), reg_val);
- strcat(buf, temp);
- }
-
- return strlen(buf);
-}
-static DEVICE_ATTR(ielcd_dump, 0444, ielcd_dump_show, NULL);
-
-static ssize_t fimd_dump_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int reg_val, i;
- char temp[50];
- struct s3cfb_global *fbdev[1];
-
- fbdev[0] = fbfimd->fbdev[0];
-
- for (i = 0; i < 25; i++) {
- reg_val = readl(fbdev[0]->regs_org + i*4);
- sprintf(temp, "[FIMD]0x11C0_00%02X = 0x%08X\n", (i*4), reg_val);
- strcat(buf, temp);
- }
-
- return strlen(buf);
-}
-static DEVICE_ATTR(fimd_dump, 0444, fimd_dump_show, NULL);
-
-#if 0 /* def CONFIG_FB_S5P_MIPI_DSIM */
-void s3cfb_display_on_remote(void)
-{
- struct s3cfb_global *fbdev = fbfimd->fbdev[0];
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
-
- if (pdata == NULL) {
- dev_err(fbdev->dev, "failed to get defualt window number.\n");
- return;
- }
- s3cfb_display_on(fbdev);
-}
-EXPORT_SYMBOL(s3cfb_display_on_remote);
-
-void s3cfb_trigger(void)
-{
- struct s3cfb_global *fbdev = fbfimd->fbdev[0];
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
-
- if (pdata == NULL) {
- dev_err(fbdev->dev, "failed to get defualt window number.\n");
- return;
- }
- s3cfb_set_trigger(fbdev);
-}
-EXPORT_SYMBOL(s3cfb_trigger);
-#endif
-
-static int s3cfb_probe(struct platform_device *pdev)
-{
- struct s3c_platform_fb *pdata = NULL;
- struct resource *res = NULL;
- struct s3cfb_global *fbdev[2];
- int ret = 0;
- int i = 0;
-
-#ifdef CONFIG_EXYNOS_DEV_PD
- /* to use the runtime PM helper functions */
- pm_runtime_enable(&pdev->dev);
- /* enable the power domain */
- pm_runtime_get_sync(&pdev->dev);
-#endif
- fbfimd = kzalloc(sizeof(struct s3cfb_fimd_desc), GFP_KERNEL);
-
- if (FIMD_MAX == 2)
- fbfimd->dual = 1;
- else
- fbfimd->dual = 0;
-
- for (i = 0; i < FIMD_MAX; i++) {
- /* global structure */
- fbfimd->fbdev[i] = kzalloc(sizeof(struct s3cfb_global), GFP_KERNEL);
- fbdev[i] = fbfimd->fbdev[i];
- if (!fbdev[i]) {
- dev_err(fbdev[i]->dev, "failed to allocate for \
- global fb structure fimd[%d]!\n", i);
- ret = -ENOMEM;
- goto err0;
- }
-
- fbdev[i]->dev = &pdev->dev;
-
-#if defined(CONFIG_MACH_SMDK4X12) || defined(CONFIG_FB_S5P_AMS369FG06)
- s3cfb_set_lcd_info(fbdev[i]);
-#endif
- /* platform_data*/
- pdata = to_fb_plat(&pdev->dev);
-
- if (pdata->lcd)
- fbdev[i]->lcd = (struct s3cfb_lcd *)pdata->lcd;
-
- if (pdata->cfg_gpio)
- pdata->cfg_gpio(pdev);
-
- if (pdata->clk_on)
- pdata->clk_on(pdev, &fbdev[i]->clock);
-
- /* io memory */
- res = platform_get_resource(pdev, IORESOURCE_MEM, i);
- if (!res) {
- dev_err(fbdev[i]->dev,
- "failed to get io memory region\n");
- ret = -EINVAL;
- goto err1;
- }
- res = request_mem_region(res->start,
- res->end - res->start + 1, pdev->name);
- if (!res) {
- dev_err(fbdev[i]->dev,
- "failed to request io memory region\n");
- ret = -EINVAL;
- goto err1;
- }
- fbdev[i]->regs = ioremap(res->start, res->end - res->start + 1);
- fbdev[i]->regs_org = fbdev[i]->regs;
- if (!fbdev[i]->regs) {
- dev_err(fbdev[i]->dev, "failed to remap io region\n");
- ret = -EINVAL;
- goto err1;
- }
-
- /* irq */
- fbdev[i]->irq = platform_get_irq(pdev, 0);
- if (request_irq(fbdev[i]->irq, s3cfb_irq_frame, IRQF_SHARED,
- pdev->name, fbdev[i])) {
- dev_err(fbdev[i]->dev, "request_irq failed\n");
- ret = -EINVAL;
- goto err2;
- }
-
-#ifdef CONFIG_FB_S5P_TRACE_UNDERRUN
- if (request_irq(platform_get_irq(pdev, 1), s3cfb_irq_fifo,
- IRQF_DISABLED, pdev->name, fbdev[i])) {
- dev_err(fbdev[i]->dev, "request_irq failed\n");
- ret = -EINVAL;
- goto err2;
- }
-
- s3cfb_set_fifo_interrupt(fbdev[i], 1);
- dev_info(fbdev[i]->dev, "fifo underrun trace\n");
-#endif
-#ifdef CONFIG_FB_S5P_MDNIE
- /* only FIMD0 is supported */
- if (i == 0)
- s3c_mdnie_setup();
-#endif
- /* hw setting */
- s3cfb_init_global(fbdev[i]);
-
- fbdev[i]->system_state = POWER_ON;
-
- spin_lock_init(&fbdev[i]->slock);
-
- /* alloc fb_info */
- if (s3cfb_alloc_framebuffer(fbdev[i], i)) {
- dev_err(fbdev[i]->dev, "alloc error fimd[%d]\n", i);
- ret = -ENOMEM;
- goto err3;
- }
-
- /* register fb_info */
- if (s3cfb_register_framebuffer(fbdev[i])) {
- dev_err(fbdev[i]->dev, "register error fimd[%d]\n", i);
- return -EINVAL;
- goto err3;
- }
-
- /* enable display */
- s3cfb_set_clock(fbdev[i]);
-#ifdef CONFIG_FB_S5P_MDNIE
- /* only FIMD0 is supported */
- if (i == 0) {
- if (pdata->set_display_path)
- pdata->set_display_path();
-
- s3cfb_set_dualrgb(fbdev[i], S3C_DUALRGB_MDNIE);
- s3c_mdnie_init_global(fbdev[i]);
- s3c_mdnie_display_on(fbdev[i]);
- }
-#endif
- s3cfb_enable_window(fbdev[0], pdata->default_win);
-
- s3cfb_update_power_state(fbdev[i], pdata->default_win,
- FB_BLANK_UNBLANK);
-
- /* Set alpha value width to 8-bit */
- s3cfb_set_alpha_value_width(fbdev[i], i);
-
- s3cfb_display_on(fbdev[i]);
-
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)
-#ifdef CONFIG_BUSFREQ_OPP
- /* To lock bus frequency in OPP mode */
- fbdev[i]->bus_dev = dev_get("exynos-busfreq");
-#endif
-#endif
-
-#ifdef CONFIG_HAS_WAKELOCK
-#ifdef CONFIG_HAS_EARLYSUSPEND
- fbdev[i]->early_suspend.suspend = s3cfb_early_suspend;
- fbdev[i]->early_suspend.resume = s3cfb_late_resume;
- fbdev[i]->early_suspend.level = EARLY_SUSPEND_LEVEL_DISABLE_FB;
-
- register_early_suspend(&fbdev[i]->early_suspend);
-#endif
-#endif
- ret = device_create_file(fbdev[i]->dev, &dev_attr_fimd_dump);
- if (ret < 0)
- dev_err(fbdev[0]->dev, "failed to add sysfs entries\n");
-
- ret = device_create_file(fbdev[i]->dev, &dev_attr_ielcd_dump);
- if (ret < 0)
- dev_err(fbdev[0]->dev, "failed to add sysfs entries\n");
- }
-
-#ifdef CONFIG_FB_S5P_LCD_INIT
- /* panel control */
- if (pdata->backlight_on)
- pdata->backlight_on(pdev);
-
- if (pdata->lcd_on)
- pdata->lcd_on(pdev);
-#endif
-
- mutex_init(&s3cfb_lock);
-
- ret = device_create_file(&(pdev->dev), &dev_attr_win_power);
- if (ret < 0)
- dev_err(fbdev[0]->dev, "failed to add sysfs entries\n");
-
-#ifdef DISPLAY_BOOT_PROGRESS
- if (!(readl(S5P_INFORM2)))
- s3cfb_start_progress(fbdev[0]->fb[pdata->default_win]);
-#endif
-
-#ifdef FEATURE_BUSFREQ_LOCK
- atomic_set(&fbdev[0]->busfreq_lock_cnt, 0);
-#endif
-
-#if defined(CONFIG_LCD_FREQ_SWITCH)
- lcdfreq_init(fbdev[0]->fb[pdata->default_win]);
-#endif
-
- dev_info(fbdev[0]->dev, "registered successfully\n");
-
- return 0;
-
-err3:
- for (i = 0; i < FIMD_MAX; i++)
- free_irq(fbdev[i]->irq, fbdev[i]);
-err2:
- for (i = 0; i < FIMD_MAX; i++)
- iounmap(fbdev[i]->regs);
-err1:
- for (i = 0; i < FIMD_MAX; i++)
- pdata->clk_off(pdev, &fbdev[i]->clock);
-err0:
- return ret;
-}
-
-static int s3cfb_remove(struct platform_device *pdev)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(&pdev->dev);
- struct s3cfb_window *win;
- struct fb_info *fb;
- struct s3cfb_global *fbdev[2];
- int i;
- int j;
-
- for (i = 0; i < FIMD_MAX; i++) {
- fbdev[i] = fbfimd->fbdev[i];
-
-#ifdef CONFIG_HAS_WAKELOCK
-#ifdef CONFIG_HAS_EARLYSUSPEND
- unregister_early_suspend(&fbdev[i]->early_suspend);
-#endif
-#endif
- free_irq(fbdev[i]->irq, fbdev[i]);
- iounmap(fbdev[i]->regs);
- pdata->clk_off(pdev, &fbdev[i]->clock);
-
- for (j = 0; j < pdata->nr_wins; j++) {
- fb = fbdev[i]->fb[j];
-
- /* free if exists */
- if (fb) {
- win = fb->par;
- if (win->id == pdata->default_win)
- s3cfb_unmap_default_video_memory(fbdev[i], fb);
- else
- s3cfb_unmap_video_memory(fbdev[i], fb);
-
- s3cfb_set_buffer_address(fbdev[i], j);
- framebuffer_release(fb);
- }
- }
-
- kfree(fbdev[i]->fb);
- kfree(fbdev[i]);
- }
-#ifdef CONFIG_EXYNOS_DEV_PD
- /* disable the power domain */
- pm_runtime_put(&pdev->dev);
- pm_runtime_disable(&pdev->dev);
-#endif
- return 0;
-}
-
-void s3cfb_lcd0_power_domain_start(void)
-{
- int timeout;
- writel(S5P_INT_LOCAL_PWR_EN, S5P_PMU_LCD0_CONF);
-
- /* Wait max 1ms */
- timeout = 1000;
- while ((readl(S5P_PMU_LCD0_CONF + 0x4) & S5P_INT_LOCAL_PWR_EN)\
- != S5P_INT_LOCAL_PWR_EN) {
- if (timeout == 0) {
- printk(KERN_ERR "Power domain lcd0 enable failed.\n");
- break;
- }
- timeout--;
- udelay(1);
- }
-
- if (timeout == 0) {
- timeout = 1000;
- writel(0x1, S5P_PMU_LCD0_CONF + 0x8);
- writel(S5P_INT_LOCAL_PWR_EN, S5P_PMU_LCD0_CONF);
- while ((readl(S5P_PMU_LCD0_CONF + 0x4) & S5P_INT_LOCAL_PWR_EN)\
- != S5P_INT_LOCAL_PWR_EN) {
-
- if (timeout == 0) {
- printk(KERN_ERR "Power domain lcd0 enable failed 2nd.\n");
- break;
- }
-
- timeout--;
- udelay(1);
- }
- writel(0x2, S5P_PMU_LCD0_CONF + 0x8);
- }
-}
-
-void s3cfb_lcd0_power_domain_stop(void)
-{
- int timeout;
-
- writel(0, S5P_PMU_LCD0_CONF);
-
- /* Wait max 1ms */
- timeout = 1000;
- while (readl(S5P_PMU_LCD0_CONF + 0x4) & S5P_INT_LOCAL_PWR_EN) {
- if (timeout == 0) {
- printk(KERN_ERR "Power domain lcd0 disable failed.\n");
- break;
- }
- timeout--;
- udelay(1);
- }
-
- if (timeout == 0) {
- timeout = 1000;
- writel(0x1, S5P_PMU_LCD0_CONF + 0x8);
- writel(0, S5P_PMU_LCD0_CONF);
- while (readl(S5P_PMU_LCD0_CONF + 0x4) & S5P_INT_LOCAL_PWR_EN) {
- if (timeout == 0) {
- printk(KERN_ERR "Power domain lcd0 disable failed 2nd.\n");
- break;
- }
- timeout--;
- udelay(1);
- }
- writel(0x2, S5P_PMU_LCD0_CONF + 0x8);
- }
-}
-
-void s3cfb_lcd0_pmu_off(void)
-{
- s3cfb_lcd0_power_domain_stop();
- usleep_range(5000, 5000);
- s3cfb_lcd0_power_domain_start();
- printk(KERN_WARNING "lcd0 pmu re_start!!!\n");
-}
-
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
-void s3cfb_switch_dual_lcd(int lcd_sel)
-{
- struct s3cfb_global *fbdev = fbfimd->fbdev[0];
- int prev_lcd_sel = s5p_dsim_get_lcd_sel_value();
-
- printk(KERN_DEBUG "%s, switching lcd_sel from:%s to:%s\n",
- __func__, prev_lcd_sel ? "SUB-LCD" : "MAIN-LCD",
- lcd_sel ? "SUB-LCD" : "MAIN-LCD");
- if (prev_lcd_sel == lcd_sel) {
- printk(KERN_DEBUG "%s, ignore switching lcd_sel\n",
- __func__);
- return;
- }
-
- mutex_lock(&s3cfb_lock);
- if (fbdev->system_state == POWER_OFF) {
- s5p_dsim_select_lcd(lcd_sel);
- mutex_unlock(&s3cfb_lock);
- return;
- }
-
- s6e63m0_early_suspend();
- s3cfb_display_off(fbdev);
- s5p_dsim_select_lcd(lcd_sel);
- s3cfb_display_on(fbdev);
- s6e63m0_late_resume();
- mutex_unlock(&s3cfb_lock);
- return;
-}
-EXPORT_SYMBOL(s3cfb_switch_dual_lcd);
-#endif /* CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD */
-
-#ifdef CONFIG_PM
-#ifdef CONFIG_HAS_EARLYSUSPEND
-void s3cfb_early_suspend(struct early_suspend *h)
-{
- struct s3cfb_global *info = container_of(h, struct s3cfb_global, early_suspend);
- struct s3c_platform_fb *pdata = to_fb_plat(info->dev);
- struct platform_device *pdev = to_platform_device(info->dev);
- struct s3cfb_global *fbdev[2];
- int i, ret;
-
- printk(KERN_INFO "+%s\n", __func__);
-
- mutex_lock(&s3cfb_lock);
-#ifdef CONFIG_FB_S5P_MIPI_DSIM
-#if defined(CONFIG_FB_S5P_S6E63M0)
- s6e63m0_early_suspend();
-#else
- s6e8ax0_early_suspend();
-#endif
-#endif
-
- for (i = 0; i < FIMD_MAX; i++) {
- fbdev[i] = fbfimd->fbdev[i];
-
- if (pdata->backlight_off)
- pdata->backlight_off(pdev);
-
- if (pdata->lcd_off)
- pdata->lcd_off(pdev);
-
- /* Disable Vsync */
- s3cfb_set_global_interrupt(fbdev[i], 0);
- s3cfb_set_vsync_interrupt(fbdev[i], 0);
-
-#ifdef CONFIG_FB_S5P_AMS369FG06
- ams369fg06_ldi_disable();
-#elif defined(CONFIG_FB_S5P_LMS501KF03)
- lms501kf03_ldi_disable();
-#endif
- ret = s3cfb_display_off(fbdev[i]);
-
-#ifdef CONFIG_FB_S5P_MDNIE
- ret += s3c_mdnie_display_off();
-#endif
-
- if (ret > 0)
- s3cfb_lcd0_pmu_off();
-
- info->system_state = POWER_OFF;
-
- if (fbdev[i]->regs) {
- fbdev[i]->regs_org = fbdev[i]->regs;
- spin_lock(&fbdev[i]->slock);
- fbdev[i]->regs = 0;
- spin_unlock(&fbdev[i]->slock);
- }
-
- if (pdata->clk_off)
- pdata->clk_off(pdev, &fbdev[i]->clock);
- }
-
-#if defined(CONFIG_FB_S5P_S6C1372) || defined(CONFIG_FB_S5P_S6F1202A)
- s5c1372_ldi_disable();
-#endif
-
-#ifdef CONFIG_FB_S5P_MIPI_DSIM
- s5p_dsim_early_suspend();
-#endif
-#ifdef CONFIG_EXYNOS_DEV_PD
- /* disable the power domain */
- printk(KERN_DEBUG "s3cfb - disable power domain\n");
- pm_runtime_put_sync(&pdev->dev);
-#endif
- mutex_unlock(&s3cfb_lock);
-
- printk(KERN_INFO "-%s\n", __func__);
-
- return ;
-}
-
-void s3cfb_late_resume(struct early_suspend *h)
-{
- struct s3cfb_global *info = container_of(h, struct s3cfb_global, early_suspend);
- struct s3c_platform_fb *pdata = to_fb_plat(info->dev);
- struct fb_info *fb;
- struct s3cfb_window *win;
- struct s3cfb_global *fbdev[2];
- int i, j;
- struct platform_device *pdev = to_platform_device(info->dev);
-
- printk(KERN_INFO "+%s\n", __func__);
-
- dev_dbg(info->dev, "wake up from suspend\n");
- mutex_lock(&s3cfb_lock);
-
-#ifdef CONFIG_EXYNOS_DEV_PD
- /* enable the power domain */
- printk(KERN_DEBUG "s3cfb - enable power domain\n");
- pm_runtime_get_sync(&pdev->dev);
-#endif
-
-#ifdef CONFIG_FB_S5P_MIPI_DSIM
-#if defined(CONFIG_FB_S5P_S6E63M0)
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
- s5p_dsim_toggle_lcd();
-#endif /* CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD */
-#endif
- s5p_dsim_late_resume();
-
- if (s5p_dsim_fifo_clear() == 0) {
- s5p_dsim_early_suspend();
- usleep_range(10000, 10000);
- s5p_dsim_late_resume();
- if (s5p_dsim_fifo_clear() == 0)
- pr_info("dsim resume fail!!!\n");
- }
-
- usleep_range(10000, 10000);
-#endif
-
-#if defined(CONFIG_FB_S5P_DUMMYLCD)
- max8698_ldo_enable_direct(MAX8698_LDO4);
-#endif
- for (i = 0; i < FIMD_MAX; i++) {
- fbdev[i] = fbfimd->fbdev[i];
-
- if (pdata->clk_on)
- pdata->clk_on(pdev, &fbdev[i]->clock);
-
- if (fbdev[i]->regs_org)
- fbdev[i]->regs = fbdev[i]->regs_org;
- else
- /* fbdev[i]->regs_org should be non-zero value */
- BUG();
-
-#if defined(CONFIG_FB_MDNIE_PWM)
- set_mdnie_pwm_value(g_mdnie, 0);
-#endif
-
- if (pdata->set_display_path)
- pdata->set_display_path();
-
-#ifdef CONFIG_FB_S5P_MDNIE
- s3cfb_set_dualrgb(fbdev[i], S3C_DUALRGB_MDNIE);
-#endif
-
- info->system_state = POWER_ON;
-
- s3cfb_init_global(fbdev[i]);
- s3cfb_set_clock(fbdev[i]);
- /* Set Alpha value width to 8-bit alpha value
- * 1 : 8bit mode
- * 2 : 4bit mode
- */
- s3cfb_set_alpha_value(fbdev[i], 1);
-#ifdef CONFIG_FB_S5P_MDNIE
-#if defined(CONFIG_FB_S5P_S6C1372) || defined(CONFIG_FB_S5P_S6F1202A)
- s5c1372_ldi_enable();
-#endif
- s3c_mdnie_init_global(fbdev[i]);
- set_mdnie_value(g_mdnie, 1);
- s3c_mdnie_display_on(fbdev[i]);
-#endif
- s3cfb_display_on(fbdev[i]);
-
- /* Set alpha value width to 8-bit */
- s3cfb_set_alpha_value_width(fbdev[i], i);
-
- for (j = 0; j < pdata->nr_wins; j++) {
- fb = fbdev[i]->fb[j];
- win = fb->par;
- if ((win->path == DATA_PATH_DMA) && (win->enabled)) {
- s3cfb_set_par(fb);
- s3cfb_set_buffer_address(fbdev[i], win->id);
- s3cfb_enable_window(fbdev[i], win->id);
- }
- }
-
- if (pdata->cfg_gpio)
- pdata->cfg_gpio(pdev);
-
- if (pdata->lcd_on)
- pdata->lcd_on(pdev);
-
- if (info->lcd->init_ldi)
- fbdev[i]->lcd->init_ldi();
-
- if (pdata->backlight_on)
- pdata->backlight_on(pdev);
- }
-
-#ifdef CONFIG_FB_S5P_MIPI_DSIM
-#if defined(CONFIG_FB_S5P_S6E63M0)
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
- s6e63m0_sleep_in();
- s5p_dsim_toggle_lcd();
-#endif /* CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD */
- s6e63m0_late_resume();
-#else
- s6e8ax0_late_resume();
-#endif
-#endif
- mutex_unlock(&s3cfb_lock);
-
- printk(KERN_INFO "-%s\n", __func__);
-
- return;
-}
-#else /* else !CONFIG_HAS_EARLYSUSPEND */
-
-int s3cfb_suspend(struct platform_device *pdev, pm_message_t state)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(&pdev->dev);
- struct s3cfb_global *fbdev[2];
- int i;
- u32 reg;
-
- for (i = 0; i < FIMD_MAX; i++) {
- fbdev[i] = fbfimd->fbdev[i];
-
-#ifdef CONFIG_FB_S5P_MDNIE
- writel(0, fbdev[i]->regs + 0x27c);
- msleep(20);
- reg = readl(S3C_VA_SYS + 0x0210);
- reg |= (1<<1);
- writel(reg, S3C_VA_SYS + 0x0210);
- s3c_mdnie_display_off();
-#endif
- if (atomic_read(&fbdev[i]->enabled_win) > 0) {
- /* lcd_off and backlight_off isn't needed. */
- if (fbdev[i]->lcd->deinit_ldi)
- fbdev[i]->lcd->deinit_ldi();
-
- s3cfb_display_off(fbdev[i]);
- if (fbdev[i]->regs) {
- fbdev[i]->regs_org = fbdev[i]->regs;
- fbdev[i]->regs = 0;
- } else
- /* fbdev[i]->regs should be non-zero value */
- BUG();
- pdata->clk_off(pdev, &fbdev[i]->clock);
- }
-#ifdef CONFIG_FB_S5P_MDNIE
- s3c_mdnie_off();
-#endif
- }
-
- return 0;
-}
-
-int s3cfb_resume(struct platform_device *pdev)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(&pdev->dev);
- struct fb_info *fb;
- struct s3cfb_window *win;
- struct s3cfb_global *fbdev[2];
- int i, j;
- u32 reg;
-
- for (i = 0; i < FIMD_MAX; i++) {
- fbdev[i] = fbfimd->fbdev[i];
- dev_dbg(fbdev[i]->dev, "wake up from suspend fimd[%d]\n", i);
-
- if (pdata->cfg_gpio)
- pdata->cfg_gpio(pdev);
-
- if (pdata->backlight_on)
- pdata->backlight_on(pdev);
- if (pdata->lcd_on)
- pdata->lcd_on(pdev);
- if (fbdev[i]->lcd->init_ldi)
- fbdev[i]->lcd->init_ldi();
-
- if (pdata->backlight_off)
- pdata->backlight_off(pdev);
- if (pdata->lcd_off)
- pdata->lcd_off(pdev);
- if (fbdev[i]->lcd->deinit_ldi)
- fbdev[i]->lcd->deinit_ldi();
-
- if (atomic_read(&fbdev[i]->enabled_win) > 0) {
-#ifdef CONFIG_FB_S5P_MDNIE
- reg = readl(S3C_VA_SYS + 0x0210);
- reg &= ~(1<<13);
- reg &= ~(1<<12);
- reg &= ~(3<<10);
- reg |= (1<<0);
- reg &= ~(1<<1);
- writel(reg, S3C_VA_SYS + 0x0210);
- writel(3, fbdev[i]->regs + 0x27c);
-#endif
- pdata->clk_on(pdev, &fbdev[i]->clock);
- if (fbdev[i]->regs_org)
- fbdev[i]->regs = fbdev[i]->regs_org;
- else
- /* fbdev[i]->regs should be non-zero value */
- BUG();
-
- s3cfb_init_global(fbdev[i]);
- s3cfb_set_clock(fbdev[i]);
-#ifdef CONFIG_FB_S5P_MDNIE
- s3c_mdnie_init_global(fbdev[i]);
- s3c_mdnie_display_on(fbdev[i]);
-#endif
- for (j = 0; j < pdata->nr_wins; j++) {
- fb = fbdev[i]->fb[j];
- win = fb->par;
- if (win->owner == DMA_MEM_FIMD) {
- s3cfb_set_win_params(fbdev[i], win->id);
- if (win->enabled) {
- if (win->power_state == FB_BLANK_NORMAL)
- s3cfb_win_map_on(fbdev[i], win->id, 0x0);
-
- s3cfb_enable_window(fbdev[i], win->id);
- }
- }
- }
-
- s3cfb_set_alpha_value_width(fbdev[i], i);
-
- s3cfb_display_on(fbdev[i]);
-
- if (pdata->backlight_on)
- pdata->backlight_on(pdev);
-
- if (pdata->lcd_on)
- pdata->lcd_on(pdev);
-
- if (fbdev[i]->lcd->init_ldi)
- fbdev[i]->lcd->init_ldi();
- }
- }
-
- return 0;
-}
-#endif
-#else
-#define s3cfb_suspend NULL
-#define s3cfb_resume NULL
-#endif
-
-#ifdef CONFIG_EXYNOS_DEV_PD
-static int s3cfb_runtime_suspend(struct device *dev)
-{
- return 0;
-}
-
-static int s3cfb_runtime_resume(struct device *dev)
-{
- return 0;
-}
-
-static const struct dev_pm_ops s3cfb_pm_ops = {
- .runtime_suspend = s3cfb_runtime_suspend,
- .runtime_resume = s3cfb_runtime_resume,
-};
-#endif
-
-static struct platform_driver s3cfb_driver = {
- .probe = s3cfb_probe,
- .remove = s3cfb_remove,
-#ifndef CONFIG_HAS_EARLYSUSPEND
- .suspend = s3cfb_suspend,
- .resume = s3cfb_resume,
-#endif
- .driver = {
- .name = S3CFB_NAME,
- .owner = THIS_MODULE,
-#ifdef CONFIG_EXYNOS_DEV_PD
- .pm = &s3cfb_pm_ops,
-#endif
- },
-};
-
-struct fb_ops s3cfb_ops = {
- .owner = THIS_MODULE,
- .fb_open = s3cfb_open,
- .fb_release = s3cfb_release,
- .fb_check_var = s3cfb_check_var,
- .fb_set_par = s3cfb_set_par,
- .fb_setcolreg = s3cfb_setcolreg,
- .fb_blank = s3cfb_blank,
- .fb_pan_display = s3cfb_pan_display,
- .fb_fillrect = cfb_fillrect,
- .fb_copyarea = cfb_copyarea,
- .fb_imageblit = cfb_imageblit,
- .fb_cursor = s3cfb_cursor,
- .fb_ioctl = s3cfb_ioctl,
-};
-
-static int s3cfb_register(void)
-{
- return platform_driver_register(&s3cfb_driver);
-}
-
-static void s3cfb_unregister(void)
-{
- platform_driver_unregister(&s3cfb_driver);
-}
-
-module_init(s3cfb_register);
-module_exit(s3cfb_unregister);
-
-MODULE_AUTHOR("Jingoo Han <jg1.han@samsung.com>");
-MODULE_AUTHOR("Jonghun, Han <jonghun.han@samsung.com>");
-MODULE_AUTHOR("Jinsung, Yang <jsgood.yang@samsung.com>");
-MODULE_DESCRIPTION("Samsung Display Controller (FIMD) driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/s3cfb_mdnie.c b/drivers/video/samsung_duallcd/s3cfb_mdnie.c
deleted file mode 100644
index 0fa2f60..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_mdnie.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_mdnie.c
- *
- * Register interface file for Samsung mDNIe driver
- *
- * Copyright (c) 2009 Samsung Electronics
- * http://www.samsungsemi.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-
-#include "s3cfb.h"
-#include "s3cfb_ielcd.h"
-#include "s3cfb_mdnie.h"
-#include "mdnie.h"
-
-
-#define s3c_mdnie_readl(addr) __raw_readl((s3c_mdnie_base + addr))
-#define s3c_mdnie_writel(addr, val) __raw_writel(val, (s3c_mdnie_base + addr))
-#define s3c_mdnie_write(addr, val) __raw_writel(val, (s3c_mdnie_base + addr*4))
-
-
-static struct resource *s3c_mdnie_mem;
-static void __iomem *s3c_mdnie_base;
-
-
-int mdnie_write(unsigned int addr, unsigned int val)
-{
- s3c_mdnie_write(addr, val);
-
- return 0;
-}
-
-/* should be fixed with arch */
-#if defined(CONFIG_CPU_EXYNOS4210)
-int s3c_mdnie_mask(void)
-{
- s3c_mdnie_writel(S3C_MDNIE_rR40, 0x27);
-
- return 0;
-}
-
-int s3c_mdnie_unmask(void)
-{
- s3c_mdnie_writel(S3C_MDNIE_rR40, 0x0);
-
- return 0;
-}
-
-int s3c_mdnie_set_size(unsigned int hsize, unsigned int vsize)
-{
- unsigned int size;
-
- size = s3c_mdnie_readl(S3C_MDNIE_rR34);
- size &= ~S3C_MDNIE_SIZE_MASK;
- size |= hsize;
- s3c_mdnie_writel(S3C_MDNIE_rR34, size);
-
- size = s3c_mdnie_readl(S3C_MDNIE_rR35);
- size &= ~S3C_MDNIE_SIZE_MASK;
- size |= vsize;
- s3c_mdnie_writel(S3C_MDNIE_rR35, size);
-
- s3c_mdnie_unmask();
-
- return 0;
-}
-#else
-int s3c_mdnie_mask(void)
-{
-#if 0
- unsigned int mask;
- mask = s3c_mdnie_readl(S3C_MDNIE_rR1);
- mask |= S3C_MDNIE_REG_MASK;
- s3c_mdnie_writel(S3C_MDNIE_rR1, mask);
-#endif
- return 0;
-}
-
-int s3c_mdnie_unmask(void)
-{
-#if 0
- unsigned int mask;
- mask = s3c_mdnie_readl(S3C_MDNIE_rR1);
- mask &= ~S3C_MDNIE_REG_MASK;
- s3c_mdnie_writel(S3C_MDNIE_rR1, mask);
-#endif
- return 0;
-}
-
-int s3c_mdnie_set_size(unsigned int hsize, unsigned int vsize)
-{
- unsigned int size;
-
- /* Bank0 Select */
- s3c_mdnie_writel(S3C_MDNIE_rR0, 0x0);
-
- /* Input Data Unmask */
- s3c_mdnie_writel(S3C_MDNIE_rR1, 0x077);
-
- /* LCD width */
- size = s3c_mdnie_readl(S3C_MDNIE_rR3);
- size &= ~S3C_MDNIE_SIZE_MASK;
- size |= hsize;
- s3c_mdnie_writel(S3C_MDNIE_rR3, size);
-
- /* LCD height */
- size = s3c_mdnie_readl(S3C_MDNIE_rR4);
- size &= ~S3C_MDNIE_SIZE_MASK;
- size |= vsize;
- s3c_mdnie_writel(S3C_MDNIE_rR4, size);
-
- /* unmask all */
- s3c_mdnie_writel(S3C_MDNIE_rR28, 0);
-
- return 0;
-}
-#endif
-
-int s3c_mdnie_select_mode(int algo, int mcm, int lpa)
-{
- s3c_mdnie_writel(S3C_MDNIE_rR1, 0x0000);
- s3c_mdnie_writel(S3C_MDNIE_rR36, 0x0000);
- s3c_mdnie_writel(S3C_MDNIE_rR37, 0x0FFF);
- s3c_mdnie_writel(S3C_MDNIE_rR38, 0x005c);
-
- s3c_mdnie_writel(S3C_MDNIE_rR39, 0x0ff0);
- s3c_mdnie_writel(S3C_MDNIE_rR43, 0x0064);
- s3c_mdnie_writel(S3C_MDNIE_rR45, 0x0364);
-
- return 0;
-}
-
-int s3c_mdnie_init_global(struct s3cfb_global *s3cfb_ctrl)
-{
- s3c_mdnie_set_size(s3cfb_ctrl->lcd->width, s3cfb_ctrl->lcd->height);
-
- /* mDNIe_Set_Mode(current_mDNIe_UI, current_mDNIe_OutDoor_OnOff); */
- /* set_mdnie_value(g_mdnie); */
-
- s3c_ielcd_logic_start();
- s3c_ielcd_init_global(s3cfb_ctrl);
-
- return 0;
-}
-
-int s3c_mdnie_display_on(struct s3cfb_global *ctrl)
-{
- s3c_ielcd_display_on();
-
- if (!IS_ERR_OR_NULL(g_mdnie))
- g_mdnie->enable = TRUE;
-
- return 0;
-}
-
-int s3c_mdnie_display_off(void)
-{
- if (!IS_ERR_OR_NULL(g_mdnie))
- g_mdnie->enable = FALSE;
-
- return s3c_ielcd_display_off();
-}
-
-int s3c_mdnie_off(void)
-{
- if (!IS_ERR_OR_NULL(g_mdnie))
- g_mdnie->enable = FALSE;
-
- s3c_ielcd_logic_stop();
-
- return 0;
-}
-
-int s3c_mdnie_hw_init(void)
-{
- s3c_mdnie_mem = request_mem_region(S3C_MDNIE_PHY_BASE, S3C_MDNIE_MAP_SIZE, "mdnie");
- if (s3c_mdnie_mem == NULL) {
- printk(KERN_ERR "mDNIe failed to reserved memory region\n");
- return -ENOENT;
- }
-
- s3c_mdnie_base = ioremap(S3C_MDNIE_PHY_BASE, S3C_MDNIE_MAP_SIZE);
- if (s3c_mdnie_base == NULL) {
- printk(KERN_ERR "mDNIe failed ioremap\n");
- return -ENOENT;
- }
-
- printk(KERN_INFO "%s : 0x%p\n", __func__, s3c_mdnie_base);
-
- return 0;
-}
-
-int s3c_mdnie_setup(void)
-{
- s3c_mdnie_hw_init();
- s3c_ielcd_hw_init();
-
- return 0;
-}
-
-MODULE_DESCRIPTION("EXYNOS mDNIe Device Driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/s3cfb_mdnie.h b/drivers/video/samsung_duallcd/s3cfb_mdnie.h
deleted file mode 100644
index 329a40a..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_mdnie.h
+++ /dev/null
@@ -1,337 +0,0 @@
-
-/* linux/drivers/video/samsung/s3cfb_mdnie.h
- *
- * Header file for Samsung (MDNIE) driver
- *
- * Copyright (c) 2009 Samsung Electronics
- * http://www.samsungsemi.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _S3CFB_MDNIE_H
-#define _S3CFB_MDNIE_H
-
-#define S3C_MDNIE_PHY_BASE 0x11CA0000
-#define S3C_MDNIE_MAP_SIZE 0x00001000
-
-#define S3C_MDNIE_rR34 0x0088
-#define S3C_MDNIE_rR35 0x008C
-
-#define S3C_MDNIE_rR0 0x0000
-#define S3C_MDNIE_rR1 0x0004
-#define S3C_MDNIE_rR3 0x000C
-#define S3C_MDNIE_rR4 0x0010
-#define S3C_MDNIE_rR5 0x0014
-#define S3C_MDNIE_rR6 0x0018
-#define S3C_MDNIE_rR8 0x0020
-#define S3C_MDNIE_rR9 0x0024
-#define S3C_MDNIE_rR28 0x00A0
-
-#define S3C_MDNIE_rR36 0x0090
-#define S3C_MDNIE_rR37 0x0094
-#define S3C_MDNIE_rR38 0x0098
-#define S3C_MDNIE_rR39 0x009C
-#define S3C_MDNIE_rR40 0x00A0
-#define S3C_MDNIE_rR41 0x00A4
-#define S3C_MDNIE_rR42 0x00A8
-#define S3C_MDNIE_rR43 0x00AC
-#define S3C_MDNIE_rR44 0x00B0
-#define S3C_MDNIE_rR45 0x00B4
-#define S3C_MDNIE_rR46 0x00B8
-
-#define S3C_MDNIE_rR48 0x00C0
-
-#define S3C_MDNIE_rR49 0x00C4
-#define S3C_MDNIE_rR50 0x00C8
-#define S3C_MDNIE_rR51 0x00CC
-#define S3C_MDNIE_rR52 0x00D0
-#define S3C_MDNIE_rR53 0x00D4
-#define S3C_MDNIE_rR54 0x00D8
-#define S3C_MDNIE_rR55 0x00DC
-#define S3C_MDNIE_rR56 0x00E0
-
-
-#define S3C_MDNIE_rR64 0x0100
-#define S3C_MDNIE_rR65 0x0104
-#define S3C_MDNIE_rR66 0x0108
-#define S3C_MDNIE_rR67 0x010C
-#define S3C_MDNIE_rR68 0x0110
-#define S3C_MDNIE_rR69 0x0114
-
-
-#define S3C_MDNIE_rR72 0x0120
-#define S3C_MDNIE_rR73 0x0124
-#define S3C_MDNIE_rR74 0x0128
-#define S3C_MDNIE_rR75 0x012C
-#define S3C_MDNIE_rR76 0x0130
-#define S3C_MDNIE_rR77 0x0134
-#define S3C_MDNIE_rR78 0x0138
-#define S3C_MDNIE_rR79 0x013C
-#define S3C_MDNIE_rR80 0x0140
-#define S3C_MDNIE_rR81 0x0144
-#define S3C_MDNIE_rR82 0x0148
-#define S3C_MDNIE_rR83 0x014C
-#define S3C_MDNIE_rR84 0x0150
-#define S3C_MDNIE_rR85 0x0154
-#define S3C_MDNIE_rR86 0x0158
-#define S3C_MDNIE_rR87 0x015C
-
-
-#define S3C_MDNIE_rR88 0x0160
-#define S3C_MDNIE_rR89 0x0164
-#define S3C_MDNIE_rR90 0x0168
-#define S3C_MDNIE_rR91 0x016C
-#define S3C_MDNIE_rR92 0x0170
-#define S3C_MDNIE_rR93 0x0174
-#define S3C_MDNIE_rR94 0x0178
-#define S3C_MDNIE_rR95 0x017C
-#define S3C_MDNIE_rR96 0x0180
-#define S3C_MDNIE_rR97 0x0184
-#define S3C_MDNIE_rR98 0x0188
-#define S3C_MDNIE_rR99 0x018C
-#define S3C_MDNIE_rR100 0x0190
-#define S3C_MDNIE_rR101 0x0194
-
-#define S3C_MDNIE_rR102 0x0198
-
-#define S3C_MDNIE_rR103 0x019C
-
-/*R1*/
-#define S3C_MDNIE_HDTR (0<<6)
-#define S3C_MDNIE_HDTR_CP (1<<6) /* Color Preference */
-#define S3C_MDNIE_HDTR_VE (2<<6) /* Visibility Enhancement */
-#define S3C_MDNIE_MCM_OFF (0<<5)
-#define S3C_MDNIE_MCM_ON (1<<5)
-#define S3C_MDNIE_LPA_OFF (0<<4)
-#define S3C_MDNIE_LPA_ON (1<<4)
-#define S3C_MDNIE_ALGORITHM_MASK (0xF<<4)
-#define S3C_MDNIE_REG_UNMASK (0<<0)
-#define S3C_MDNIE_REG_MASK (1<<0)
-/*R3*/
-#define S3C_MDNIE_HSIZE(n) (((n)&0x7FF)<<0)
-/*R4*/
-#define S3C_MDNIE_VSIZE(n) (((n)&0x7FF)<<0)
-#define S3C_MDNIE_SIZE_MASK (0x7FF<<0)
-
-/*R36*/
-#define S3C_MDNIE_DECONT_TH(n) (((n)&0xFFF)<<0)
-/*R37*/
-#define S3C_MDNIE_DIRECT_TH(n) (((n)&0xFFF)<<0)
-/*R38*/
-#define S3C_MDNIE_SIMPLE_TH(n) (((n)&0x7F)<<0)
-/*R39*/
-#define S3C_MDNIE_DE_CONT(n) (((n)&0x7F)<<5)
-#define S3C_MDNIE_CE_ON (0<<4)
-#define S3C_MDNIE_CE_OFF (1<<4)
-#define S3C_MDNIE_CE_CURVE(n) (((n)&0x7)<<1)
-#define S3C_MDNIE_AMOLED_NOTSELECT (0<<0)
-#define S3C_MDNIE_AMOLED_SELECT (1<<0)
-/*R40*/
-#define S3C_MDNIE_IPF_ALPHA(n) (((n)&0xFF)<<7)
-#define S3C_MDNIE_IPF_BETA(n) (((n)&0xFF)<<0)
-/*R41*/
-#define S3C_MDNIE_IPF_THETA(n) (((n)&0xFF)<<0)
-/*R42*/
-#define S3C_MDNIE_IPF_CNTRST(n) (((n)&0x3)<<12)
-#define S3C_MDNIE_IPF_G(n) (((n)&0xF)<<8)
-#define S3C_MDNIE_IPF_T(n) (((n)&0xFF)<<0)
-
-/*R43*/
-#define S3C_MDNIE_CS_SKIN_OFF (0<<10)
-#define S3C_MDNIE_CS_SKIN_ON (1<<10)
-#define S3C_MDNIE_CS_CONT(n) (((n)&0x3FF)<<0)
-
-/*R45*/
-#define S3C_MDNIE_DE_TH(n) (((n)&0x3FF)<<0)
-
-/*R48*/
-#define S3C_MDNIE_SN_LVL_0 (0<<10)
-#define S3C_MDNIE_SN_LVL_1 (1<<10)
-#define S3C_MDNIE_SN_LVL_2 (2<<10)
-#define S3C_MDNIE_SN_LVL_3 (3<<10)
-#define S3C_MDNIE_SY_LVL_0 (0<<8)
-#define S3C_MDNIE_SY_LVL_1 (1<<8)
-#define S3C_MDNIE_SY_LVL_2 (2<<8)
-#define S3C_MDNIE_SY_LVL_3 (3<<8)
-#define S3C_MDNIE_GR_LVL_0 (0<<6)
-#define S3C_MDNIE_GR_LVL_1 (1<<6)
-#define S3C_MDNIE_GR_LVL_2 (2<<6)
-#define S3C_MDNIE_GR_LVL_3 (3<<6)
-#define S3C_MDNIE_RD_LVL_0 (0<<4)
-#define S3C_MDNIE_RD_LVL_1 (1<<4)
-#define S3C_MDNIE_RD_LVL_2 (2<<4)
-#define S3C_MDNIE_RD_LVL_3 (3<<4)
-#define S3C_MDNIE_YE_LVL_0 (0<<2)
-#define S3C_MDNIE_YE_LVL_1 (1<<2)
-#define S3C_MDNIE_YE_LVL_2 (2<<2)
-#define S3C_MDNIE_YE_LVL_3 (3<<2)
-#define S3C_MDNIE_PU_LVL_0 (0<<0)
-#define S3C_MDNIE_PU_LVL_1 (1<<0)
-#define S3C_MDNIE_PU_LVL_2 (2<<0)
-#define S3C_MDNIE_PU_LVL_3 (3<<0)
-
-/*R49*/
-#define S3C_MDNIE_SN_L1_TCB(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_SN_L2_TCB(n) (((n)&0xFF)<<0)
-/*R50*/
-#define S3C_MDNIE_SN_L3_TCB(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_SN_L1_TCR(n) (((n)&0xFF)<<0)
-/*R51*/
-#define S3C_MDNIE_SN_L2_TCR(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_SN_L3_TCR(n) (((n)&0xFF)<<0)
-/*R52*/
-#define S3C_MDNIE_SN_L1_S(n) (((n)&0x7)<<6)
-#define S3C_MDNIE_SN_L2_S(n) (((n)&0x7)<<3)
-#define S3C_MDNIE_SN_L3_S(n) (((n)&0x7)<<0)
-/*R53*/
-#define S3C_MDNIE_RD_L1_TCB(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_RD_L2_TCB(n) (((n)&0xFF)<<0)
-/*R54*/
-#define S3C_MDNIE_RD_L3_TCB(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_RD_L1_TCR(n) (((n)&0xFF)<<0)
-/*R55*/
-#define S3C_MDNIE_RD_L2_TCR(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_RD_L3_TCR(n) (((n)&0xFF)<<0)
-/*R56*/
-#define S3C_MDNIE_RD_L1_S(n) (((n)&0x7)<<6)
-#define S3C_MDNIE_RD_L2_S(n) (((n)&0x7)<<3)
-#define S3C_MDNIE_RD_L3_S(n) (((n)&0x7)<<0)
-
-/*R64*/
-#define S3C_MDNIE_LIGHT_P(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_CHROMA_P(n) (((n)&0xFF)<<0)
-/*R65*/
-#define S3C_MDNIE_TRANSFUNL_1(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_TRANSFUNL_2(n) (((n)&0x7F)<<0)
-/*R66*/
-#define S3C_MDNIE_TRANSFUNL_3(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_TRANSFUNL_4(n) (((n)&0x7F)<<0)
-/*R67*/
-#define S3C_MDNIE_TRANSFUNL_5(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_TRANSFUNL_6(n) (((n)&0x7F)<<0)
-/*R68*/
-#define S3C_MDNIE_TRANSFUNL_7(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_TRANSFUNL_8(n) (((n)&0x7F)<<0)
-/*R69*/
-#define S3C_MDNIE_TRANSFUNL_9(n) (((n)&0x7F)<<8)
-
-/*R72*/
-#define S3C_MDNIE_QUADRANT_OFF (0<<8)
-#define S3C_MDNIE_QUADRAND_ON (1<<8)
-#define S3C_MDNIE_COLOR_TEMP_DEST(n) ((((n)&0xFF)<<0)
-/*R73*/
-#define S3C_MDNIE_COLOR_TEMP1(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_COLOR_TEMP2(n) (((n)&0xFF)<<0)
-/*R74*/
-#define S3C_MDNIE_COLOR_TEMP3(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_COLOR_TEMP4(n) (((n)&0xFF)<<0)
-/*R75*/
-#define S3C_MDNIE_COLOR_TEMP5(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_LSF1(n) (((n)&0xFF)<<0)
-/*R76*/
-#define S3C_MDNIE_LSF2(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_LSF3(n) (((n)&0xFF)<<0)
-/*R76*/
-#define S3C_MDNIE_LSF4(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_LSF5(n) (((n)&0xFF)<<0)
-/*R78*/
-#define S3C_MDNIE_CT1_HIGH_CB(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_CT2_HIGH_CB(n) (((n)&0xFF)<<0)
-/*R79*/
-#define S3C_MDNIE_CT3_HIGH_CB(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_CT4_HIGH_CB(n) (((n)&0xFF)<<0)
-/*R80*/
-#define S3C_MDNIE_CT5_HIGH_CB(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_CT1_HIGH_CR(n) (((n)&0xFF)<<0)
-/*R81*/
-#define S3C_MDNIE_CT2_HIGH_CR(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_CT3_HIGH_CR(n) (((n)&0xFF)<<0)
-/*R82*/
-#define S3C_MDNIE_CT4_HIGH_CR(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_CT5_HIGH_CR(n) (((n)&0xFF)<<0)
-/*R83*/
-#define S3C_MDNIE_GRAY_AXIS_LONG(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_GRAY_AXIS_SHORT(n) (((n)&0xFF)<<0)
-/*R84*/
-#define S3C_MDNIE_GRAY_ANGLE_COS(n) (((n)&0x3ff)<<0)
-/*R85*/
-#define S3C_MDNIE_GRAY_ANGLE_SIN(n) (((n)&0x3ff)<<0)
-/*R86*/
-#define S3C_MDNIE_QUADRANT_TMP1(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_QUADRANT_TMP2(n) (((n)&0xFF)<<0)
-/*R87*/
-#define S3C_MDNIE_QUADRANT_TMP3(n) (((n)&0xFF)<<8)
-#define S3C_MDNIE_QUADRANT_TMP4(n) (((n)&0xFF)<<0)
-
-/*R88*/
-#define S3C_MDNIE_FGain_LUT0(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_FGain_LUT1(n) (((n)&0x7F)<<0)
-/*R89*/
-#define S3C_MDNIE_FGain_LUT2(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_FGain_LUT3(n) (((n)&0x7F)<<0)
-/*R90*/
-#define S3C_MDNIE_FGain_LUT4(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_FGain_LUT5(n) (((n)&0x7F)<<0)
-/*R91*/
-#define S3C_MDNIE_FGain_LUT6(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_FGain_LUT7(n) (((n)&0x7F)<<0)
-/*R92*/
-#define S3C_MDNIE_DGain_LUT0(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_DGain_LUT1(n) (((n)&0x7F)<<0)
-/*R93*/
-#define S3C_MDNIE_DGain_LUT2(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_DGain_LUT3(n) (((n)&0x7F)<<0)
-/*R94*/
-#define S3C_MDNIE_DGain_LUT4(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_DGain_LUT5(n) (((n)&0x7F)<<0)
-/*R95*/
-#define S3C_MDNIE_DGain_LUT6(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_DGain_LUT7(n) (((n)&0x7F)<<0)
-/*R96*/
-#define S3C_MDNIE_Power_LUT0(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_Power_LUT1(n) (((n)&0x7F)<<0)
-/*R97*/
-#define S3C_MDNIE_Power_LUT2(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_Power_LUT3(n) (((n)&0x7F)<<0)
-/*R98*/
-#define S3C_MDNIE_Power_LUT4(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_Power_LUT5(n) (((n)&0x7F)<<0)
-/*R99*/
-#define S3C_MDNIE_Power_LUT6(n) (((n)&0x7F)<<8)
-#define S3C_MDNIE_Power_LUT7(n) (((n)&0x7F)<<0)
-/*R100*/
-#define S3C_MDNIE_Power_LUT8(n) (((n)&0x7F)<<8)
-
-/*R101*/
-#define S3C_MDNIE_ZONAL_PARA0(n) (((n)&0x3)<<4)
-#define S3C_MDNIE_ZONAL_PARA1(n) (((n)&0x3)<<0)
-/*R102*/
-#define S3C_MDNIE_BLU_DISABLE (0<<1)
-#define S3C_MDNIE_BLU_ENABLE (1<<1)
-#define S3C_MDNIE_DISPLAY_LCD (0<<0)
-#define S3C_MDNIE_DISPLAY_OLED (1<<0)
-
-/*R103*/
-#define S3C_MDNIE_PWM_PHIGH (1<<15)
-#define S3C_MDNIE_PWM_PLOW (0<<15)
-#define S3C_MDNIE_PWM_CT_LPA (0<<14) /* using LPA counter */
-#define S3C_MDNIE_PWM_CT_PWM (1<<14) /* using PWM counter */
-#define S3C_MDNIE_PWM_CT(n) (((n)&0x3F)<<0)
-
-#define TRUE 1
-#define FALSE 0
-
-int s3c_mdnie_setup(void);
-int s3c_mdnie_init_global(struct s3cfb_global *s3cfb_ctrl);
-int s3c_mdnie_display_on(struct s3cfb_global *ctrl);
-int s3c_mdnie_display_off(void);
-int s3c_mdnie_off(void);
-
-int mdnie_write(unsigned int addr, unsigned int val);
-int s3c_mdnie_mask(void);
-int s3c_mdnie_unmask(void);
-
-#endif
diff --git a/drivers/video/samsung_duallcd/s3cfb_ops.c b/drivers/video/samsung_duallcd/s3cfb_ops.c
deleted file mode 100644
index 3ff2f05..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_ops.c
+++ /dev/null
@@ -1,1551 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb-ops.c
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
- *
- * Middle layer file for Samsung Display Controller (FIMD) driver
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/poll.h>
-#include <linux/dma-mapping.h>
-#include <linux/platform_device.h>
-#include <linux/pm_runtime.h>
-
-#if defined(CONFIG_CMA)
-#include <linux/cma.h>
-#elif defined(CONFIG_S5P_MEM_BOOTMEM)
-#include <plat/media.h>
-#include <mach/media.h>
-#endif
-
-#ifdef CONFIG_HAS_WAKELOCK
-#include <linux/wakelock.h>
-#include <linux/earlysuspend.h>
-#include <linux/suspend.h>
-#endif
-
-#include <mach/sec_debug.h>
-#include <linux/bootmem.h>
-#include "s3cfb.h"
-#define NOT_DEFAULT_WINDOW 99
-#define CMA_REGION_FIMD "fimd"
-#ifdef CONFIG_EXYNOS_CONTENT_PATH_PROTECTION
-#define CMA_REGION_VIDEO "video"
-#else
-#define CMA_REGION_VIDEO "fimd"
-#endif
-
-#ifdef CONFIG_BUSFREQ_OPP
-#include <mach/dev.h>
-#endif
-
-struct s3c_platform_fb *to_fb_plat(struct device *dev)
-{
- struct platform_device *pdev = to_platform_device(dev);
-
- return (struct s3c_platform_fb *)pdev->dev.platform_data;
-}
-
-#ifndef CONFIG_FRAMEBUFFER_CONSOLE
-#define LPDDR1_BASE_ADDR 0x50000000
-#define BOOT_FB_BASE_ADDR (LPDDR1_BASE_ADDR + 0x0EC00000) /* 0x5EC00000 from Bootloader */
-
-static unsigned int bootloaderfb;
-module_param_named(bootloaderfb, bootloaderfb, uint, 0444);
-MODULE_PARM_DESC(bootloaderfb, "Address of booting logo image in Bootloader");
-
-int s3cfb_draw_logo(struct fb_info *fb)
-{
-#ifdef CONFIG_FB_S5P_SPLASH_SCREEN
-#ifdef RGB_BOOTSCREEN
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct fb_var_screeninfo *var = &fb->var;
-#endif
-#if 0
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
- memcpy(fbdev->fb[pdata->default_win]->screen_base,
- LOGO_RGB24, fix->line_length * var->yres);
-#else
-#ifdef RGB_BOOTSCREEN
- u32 height = var->yres / 3;
- u32 line = fix->line_length;
- u32 i, j;
-
- for (i = 0; i < height; i++) {
- for (j = 0; j < var->xres; j++) {
- memset(fb->screen_base + i * line + j * 4 + 0, 0x00, 1);
- memset(fb->screen_base + i * line + j * 4 + 1, 0x00, 1);
- memset(fb->screen_base + i * line + j * 4 + 2, 0xff, 1);
- memset(fb->screen_base + i * line + j * 4 + 3, 0x00, 1);
- }
- }
-
- for (i = height; i < height * 2; i++) {
- for (j = 0; j < var->xres; j++) {
- memset(fb->screen_base + i * line + j * 4 + 0, 0x00, 1);
- memset(fb->screen_base + i * line + j * 4 + 1, 0xff, 1);
- memset(fb->screen_base + i * line + j * 4 + 2, 0x00, 1);
- memset(fb->screen_base + i * line + j * 4 + 3, 0x00, 1);
- }
- }
-
- for (i = height * 2; i < height * 3; i++) {
- for (j = 0; j < var->xres; j++) {
- memset(fb->screen_base + i * line + j * 4 + 0, 0xff, 1);
- memset(fb->screen_base + i * line + j * 4 + 1, 0x00, 1);
- memset(fb->screen_base + i * line + j * 4 + 2, 0x00, 1);
- memset(fb->screen_base + i * line + j * 4 + 3, 0x00, 1);
- }
- }
-#else /* #ifdef RGB_BOOTSCREEN */
- u8 *logo_virt_buf;
-
- if (bootloaderfb) {
- logo_virt_buf = phys_to_virt(bootloaderfb);
- memcpy(fb->screen_base, logo_virt_buf, fb->var.yres * fb->fix.line_length);
- printk(KERN_INFO "Bootloader sent 'bootloaderfb' : %08X\n", bootloaderfb);
- }
-
-#endif /* #ifdef RGB_BOOTSCREEN */
-#endif
-#endif
-
- return 0;
-}
-#else
-int fb_is_primary_device(struct fb_info *fb)
-{
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
-
- dev_dbg(fbdev->dev, "[fb%d] checking for primary device\n", win->id);
-
- if (win->id == pdata->default_win)
- return 1;
- else
- return 0;
-}
-#endif
-
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)\
- || defined(CONFIG_CPU_EXYNOS4210)
-int window_on_off_status(struct s3cfb_global *fbdev)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
- struct s3cfb_window *win;
- int i;
- int ret = 0;
-
- for (i = 0; i < pdata->nr_wins; i++) {
- win = fbdev->fb[i]->par;
- if (win->enabled)
- ret |= (1 << i);
- }
-
- return ret;
-}
-#endif
-
-#ifdef FEATURE_BUSFREQ_LOCK
-void s3cfb_busfreq_lock(struct s3cfb_global *fbdev, unsigned int lock)
-{
- if (lock) {
- if (atomic_read(&fbdev->busfreq_lock_cnt) == 0) {
- exynos4_busfreq_lock(DVFS_LOCK_ID_LCD, BUS_L1);
- dev_info(fbdev->dev, "[%s] Bus Freq Locked L1\n", __func__);
- }
- atomic_inc(&fbdev->busfreq_lock_cnt);
- fbdev->busfreq_flag = true;
- } else {
- if (fbdev->busfreq_flag == true) {
- atomic_dec(&fbdev->busfreq_lock_cnt);
- fbdev->busfreq_flag = false;
- if (atomic_read(&fbdev->busfreq_lock_cnt) == 0) {
- /* release Freq lock back to normal */
- exynos4_busfreq_lock_free(DVFS_LOCK_ID_LCD);
- dev_info(fbdev->dev, "[%s] Bus Freq lock Released Normal !!\n", __func__);
- }
- }
- }
-}
-#endif
-
-int s3cfb_enable_window(struct s3cfb_global *fbdev, int id)
-{
- struct s3cfb_window *win = fbdev->fb[id]->par;
-#ifdef FEATURE_BUSFREQ_LOCK
- int enabled_win = 0;
-#endif
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)
-#ifdef CONFIG_BUSFREQ_OPP
- if (id != CONFIG_FB_S5P_DEFAULT_WINDOW)
- dev_lock(fbdev->bus_dev, fbdev->dev, 133133);
-#endif
-#endif
-
- if (!win->enabled)
- atomic_inc(&fbdev->enabled_win);
-
-#ifdef FEATURE_BUSFREQ_LOCK
- enabled_win = atomic_read(&fbdev->enabled_win);
- if (enabled_win >= 2)
- s3cfb_busfreq_lock(fbdev, 1);
-#endif
-
- if (s3cfb_window_on(fbdev, id)) {
- win->enabled = 0;
- return -EFAULT;
- } else {
- win->enabled = 1;
- return 0;
- }
-}
-
-int s3cfb_disable_window(struct s3cfb_global *fbdev, int id)
-{
- struct s3cfb_window *win = fbdev->fb[id]->par;
-#ifdef FEATURE_BUSFREQ_LOCK
- int enabled_win = 0;
-#endif
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)
-#ifdef CONFIG_BUSFREQ_OPP
- int win_status;
-#endif
-#endif
-
- if (win->enabled)
- atomic_dec(&fbdev->enabled_win);
-
- if (fbdev->regs != 0 && s3cfb_window_off(fbdev, id)) {
- win->enabled = 1;
- return -EFAULT;
- } else {
-#ifdef FEATURE_BUSFREQ_LOCK
- enabled_win = atomic_read(&fbdev->enabled_win);
- if (enabled_win < 2)
- s3cfb_busfreq_lock(fbdev, 0);
-#endif
- win->enabled = 0;
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)
-#ifdef CONFIG_BUSFREQ_OPP
- win_status = window_on_off_status(fbdev);
- if ((win_status & ~(1 << CONFIG_FB_S5P_DEFAULT_WINDOW)) == 0)
- dev_unlock(fbdev->bus_dev, fbdev->dev);
-#endif
-#endif
- return 0;
- }
-}
-
-int s3cfb_update_power_state(struct s3cfb_global *fbdev, int id, int state)
-{
- struct s3cfb_window *win = fbdev->fb[id]->par;
- win->power_state = state;
-
- return 0;
-}
-
-int s3cfb_init_global(struct s3cfb_global *fbdev)
-{
- fbdev->output = OUTPUT_RGB;
- fbdev->rgb_mode = MODE_RGB_P;
-
- fbdev->wq_count = 0;
- init_waitqueue_head(&fbdev->wq);
- mutex_init(&fbdev->lock);
-
- s3cfb_set_output(fbdev);
- s3cfb_set_display_mode(fbdev);
- s3cfb_set_polarity(fbdev);
- s3cfb_set_timing(fbdev);
- s3cfb_set_lcd_size(fbdev);
-
- return 0;
-}
-
-int s3cfb_unmap_video_memory(struct s3cfb_global *fbdev, struct fb_info *fb)
-{
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct s3cfb_window *win = fb->par;
-
-#ifdef CONFIG_CMA
- struct cma_info mem_info;
- int err;
-#endif
-
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)
- return 0;
-#endif
-
- if (fix->smem_start) {
-#ifdef CONFIG_CMA
- err = cma_info(&mem_info, fbdev->dev, 0);
- if (ERR_PTR(err))
- return -ENOMEM;
-
- if (fix->smem_start >= mem_info.lower_bound &&
- fix->smem_start <= mem_info.upper_bound)
- cma_free(fix->smem_start);
-#else
- dma_free_coherent(fbdev->dev, fix->smem_len, fb->screen_base, fix->smem_start);
-#endif
- fix->smem_start = 0;
- fix->smem_len = 0;
- dev_info(fbdev->dev, "[fb%d] video memory released\n", win->id);
- }
- return 0;
-}
-
-int s3cfb_map_video_memory(struct s3cfb_global *fbdev, struct fb_info *fb)
-{
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct s3cfb_window *win = fb->par;
-#ifdef CONFIG_CMA
- struct cma_info mem_info;
- int err;
-#endif
-
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)
- return 0;
-#endif
-
- if (win->owner == DMA_MEM_OTHER)
- return 0;
-
-#ifdef CONFIG_CMA
- err = cma_info(&mem_info, fbdev->dev, CMA_REGION_VIDEO);
- if (err)
- return err;
- fix->smem_start = (dma_addr_t)cma_alloc
-#ifdef CONFIG_EXYNOS_CONTENT_PATH_PROTECTION
- (fbdev->dev, "fimd_video", (size_t)PAGE_ALIGN(fix->smem_len), 0);
-#else
- (fbdev->dev, "fimd", (size_t)PAGE_ALIGN(fix->smem_len), 0);
-#endif
- if (IS_ERR_OR_NULL((char *)fix->smem_start)) {
- printk(KERN_ERR "fix->smem_start allocation fail (%x)\n",
- (int)fix->smem_start);
- return -1;
- }
-
- fb->screen_base = NULL;
-#else
- fb->screen_base = dma_alloc_writecombine(fbdev->dev,
- PAGE_ALIGN(fix->smem_len),
- (unsigned int *)
- &fix->smem_start, GFP_KERNEL);
-#endif
-
- dev_info(fbdev->dev, "[fb%d] Alloc dma: 0x%08x, "
- "size: 0x%08x\n", win->id,
- (unsigned int)fix->smem_start,
- fix->smem_len);
-
- win->owner = DMA_MEM_FIMD;
-
- return 0;
-}
-
-int s3cfb_map_default_video_memory(struct s3cfb_global *fbdev,
- struct fb_info *fb, int fimd_id)
-{
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct s3cfb_window *win = fb->par;
-#ifdef CONFIG_CMA
- struct cma_info mem_info;
- int err;
-#endif
-
- if (win->owner == DMA_MEM_OTHER)
- return 0;
-
-#ifdef CONFIG_CMA
- err = cma_info(&mem_info, fbdev->dev, CMA_REGION_FIMD);
- if (err)
- return err;
- fix->smem_start = (dma_addr_t)cma_alloc
- (fbdev->dev, "fimd", (size_t)PAGE_ALIGN(fix->smem_len), 0);
- fb->screen_base = cma_get_virt(fix->smem_start, PAGE_ALIGN(fix->smem_len), 1);
-#elif defined(CONFIG_S5P_MEM_BOOTMEM)
- fix->smem_start = s5p_get_media_memory_bank(S5P_MDEV_FIMD, 1);
- fix->smem_len = s5p_get_media_memsize_bank(S5P_MDEV_FIMD, 1);
- fb->screen_base = ioremap_wc(fix->smem_start, fix->smem_len);
-#else
- fb->screen_base = dma_alloc_writecombine(fbdev->dev,
- PAGE_ALIGN(fix->smem_len),
- (unsigned int *)
- &fix->smem_start, GFP_KERNEL);
-#endif
-
- if (!fb->screen_base)
- return -ENOMEM;
- else
- dev_info(fbdev->dev, "[fb%d] dma: 0x%08x, cpu: 0x%08x, "
- "size: 0x%08x\n", win->id,
- (unsigned int)fix->smem_start,
- (unsigned int)fb->screen_base, fix->smem_len);
-
- if (bootloaderfb)
- memset(fb->screen_base, 0, fix->smem_len);
- win->owner = DMA_MEM_FIMD;
-
- return 0;
-}
-
-int s3cfb_unmap_default_video_memory(struct s3cfb_global *fbdev,
- struct fb_info *fb)
-{
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct s3cfb_window *win = fb->par;
-
- if (fix->smem_start) {
- iounmap(fb->screen_base);
-
- fix->smem_start = 0;
- fix->smem_len = 0;
- dev_info(fbdev->dev, "[fb%d] video memory released\n", win->id);
- }
-
- return 0;
-}
-
-int s3cfb_set_bitfield(struct fb_var_screeninfo *var)
-{
- switch (var->bits_per_pixel) {
- case 16:
- if (var->transp.length == 1) {
- var->red.offset = 10;
- var->red.length = 5;
- var->green.offset = 5;
- var->green.length = 5;
- var->blue.offset = 0;
- var->blue.length = 5;
- var->transp.offset = 15;
- } else if (var->transp.length == 4) {
- var->red.offset = 8;
- var->red.length = 4;
- var->green.offset = 4;
- var->green.length = 4;
- var->blue.offset = 0;
- var->blue.length = 4;
- var->transp.offset = 12;
- } else {
- var->red.offset = 11;
- var->red.length = 5;
- var->green.offset = 5;
- var->green.length = 6;
- var->blue.offset = 0;
- var->blue.length = 5;
- var->transp.offset = 0;
- }
- break;
-
- case 24:
- var->red.offset = 16;
- var->red.length = 8;
- var->green.offset = 8;
- var->green.length = 8;
- var->blue.offset = 0;
- var->blue.length = 8;
- var->transp.offset = 0;
- var->transp.length = 0;
- break;
-
- case 32:
- var->red.offset = 16;
- var->red.length = 8;
- var->green.offset = 8;
- var->green.length = 8;
- var->blue.offset = 0;
- var->blue.length = 8;
- var->transp.offset = 24;
- var->transp.length = 8; /* added for LCD RGB32 */
- break;
- }
-
- return 0;
-}
-
-int s3cfb_set_alpha_info(struct fb_var_screeninfo *var,
- struct s3cfb_window *win)
-{
- if (var->transp.length > 0)
- win->alpha.mode = PIXEL_BLENDING;
- else {
- win->alpha.mode = PLANE_BLENDING;
- win->alpha.channel = 0;
- win->alpha.value = S3CFB_AVALUE(0xf, 0xf, 0xf);
- }
-
- return 0;
-}
-
-int s3cfb_check_var_window(struct s3cfb_global *fbdev,
- struct fb_var_screeninfo *var, struct fb_info *fb)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
- struct s3cfb_window *win = fb->par;
- struct s3cfb_lcd *lcd = fbdev->lcd;
-
- dev_dbg(fbdev->dev, "[fb%d] check_var\n", win->id);
-
- if (var->bits_per_pixel != 16 && var->bits_per_pixel != 24 &&
- var->bits_per_pixel != 32) {
- dev_err(fbdev->dev, "invalid bits per pixel\n");
- return -EINVAL;
- }
-
- if (var->xres > lcd->width)
- var->xres = lcd->width;
-
- if (var->yres > lcd->height)
- var->yres = lcd->height;
-
- if (var->xres_virtual < var->xres)
- var->xres_virtual = var->xres;
-
-#if defined(CONFIG_FB_S5P_VIRTUAL)
- if (var->yres_virtual < var->yres)
- var->yres_virtual = var->yres * CONFIG_FB_S5P_NR_BUFFERS;
-#endif
-
- if (var->xoffset > (var->xres_virtual - var->xres))
- var->xoffset = var->xres_virtual - var->xres;
-
- if (var->yoffset + var->yres > var->yres_virtual)
- var->yoffset = var->yres_virtual - var->yres;
-
- if (win->x + var->xres > lcd->width)
- win->x = lcd->width - var->xres;
-
- if (win->y + var->yres > lcd->height)
- win->y = lcd->height - var->yres;
-
- if (var->pixclock != fbdev->fb[pdata->default_win]->var.pixclock) {
- dev_info(fbdev->dev, "pixclk is changed from %d Hz to %d Hz\n",
- fbdev->fb[pdata->default_win]->var.pixclock, var->pixclock);
- }
-
- s3cfb_set_bitfield(var);
- s3cfb_set_alpha_info(var, win);
-
- return 0;
-}
-
-int s3cfb_check_var(struct fb_var_screeninfo *var, struct fb_info *fb)
-{
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
-
- s3cfb_check_var_window(fbdev, var, fb);
-
- return 0;
-}
-
-void s3cfb_set_win_params(struct s3cfb_global *fbdev, int id)
-{
- s3cfb_set_window_control(fbdev, id);
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)
- s3cfb_set_oneshot(fbdev, id);
-#else
- s3cfb_set_window_position(fbdev, id);
- s3cfb_set_window_size(fbdev, id);
- s3cfb_set_buffer_address(fbdev, id);
- s3cfb_set_buffer_size(fbdev, id);
-#endif
-
- if (id > 0) {
- s3cfb_set_alpha_blending(fbdev, id);
- s3cfb_set_chroma_key(fbdev, id);
- s3cfb_set_alpha_value_width(fbdev, id);
- /* Set to premultiplied mode as default */
- s3cfb_set_alpha_mode(fbdev, id, BLENDING_PREMULT);
- }
-}
-
-int s3cfb_set_par_window(struct s3cfb_global *fbdev, struct fb_info *fb)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
- struct s3cfb_window *win = fb->par;
- int ret;
-
- dev_dbg(fbdev->dev, "[fb%d] set_par\n", win->id);
-
-#if (!defined(CONFIG_CPU_EXYNOS4210))
- if ((win->id != pdata->default_win) && fb->fix.smem_start)
- s3cfb_unmap_video_memory(fbdev, fb);
-#endif
-
- /* modify the fix info */
- if (win->id != pdata->default_win) {
- fb->fix.line_length = fb->var.xres_virtual *
- fb->var.bits_per_pixel / 8;
- fb->fix.smem_len = fb->fix.line_length * fb->var.yres_virtual;
- }
-
- if (win->id != pdata->default_win && !fb->fix.smem_start) {
- ret = s3cfb_map_video_memory(fbdev, fb);
- if (ret != 0)
- return ret;
- }
-
- s3cfb_set_win_params(fbdev, win->id);
-
- return 0;
-}
-
-int s3cfb_set_par(struct fb_info *fb)
-{
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- int ret = 0;
-
-#ifdef CONFIG_EXYNOS_DEV_PD
- if (unlikely(fbdev->system_state == POWER_OFF)) {
- dev_err(fbdev->dev, "%s::system_state is POWER_OFF, fb%d\n", __func__, win->id);
- return 0;
- }
-#endif
-
- ret = s3cfb_set_par_window(fbdev, fb);
-
- return ret;
-}
-
-int s3cfb_init_fbinfo(struct s3cfb_global *fbdev, int id)
-{
- struct fb_info *fb = fbdev->fb[id];
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct fb_var_screeninfo *var = &fb->var;
- struct s3cfb_window *win = fb->par;
- struct s3cfb_alpha *alpha = &win->alpha;
- struct s3cfb_lcd *lcd = fbdev->lcd;
- struct s3cfb_lcd_timing *timing = &lcd->timing;
-
- memset(win, 0, sizeof(struct s3cfb_window));
- platform_set_drvdata(to_platform_device(fbdev->dev), fb);
- strcpy(fix->id, S3CFB_NAME);
-
- /* fimd specific */
- win->id = id;
- win->path = DATA_PATH_DMA;
- win->dma_burst = 16;
- s3cfb_update_power_state(fbdev, win->id, FB_BLANK_POWERDOWN);
- alpha->mode = PLANE_BLENDING;
-
- /* fbinfo */
- fb->fbops = &s3cfb_ops;
- fb->flags = FBINFO_FLAG_DEFAULT;
- fb->pseudo_palette = &win->pseudo_pal;
-#if (CONFIG_FB_S5P_NR_BUFFERS != 1)
-#if defined(CONFIG_CPU_EXYNOS4210)
- fix->xpanstep = 1; /* xpanstep can be 1 if bits_per_pixel is 32 */
-#else
- fix->xpanstep = 2;
-#endif
- fix->ypanstep = 1;
-#else
- fix->xpanstep = 0;
- fix->ypanstep = 0;
-#endif
- fix->type = FB_TYPE_PACKED_PIXELS;
- fix->accel = FB_ACCEL_NONE;
- fix->visual = FB_VISUAL_TRUECOLOR;
- var->xres = lcd->width;
- var->yres = lcd->height;
-
-#if defined(CONFIG_FB_S5P_VIRTUAL)
- var->xres_virtual = CONFIG_FB_S5P_X_VRES;
- var->yres_virtual = CONFIG_FB_S5P_Y_VRES * CONFIG_FB_S5P_NR_BUFFERS;
-#else
- var->xres_virtual = var->xres;
- var->yres_virtual = var->yres * CONFIG_FB_S5P_NR_BUFFERS;
-#endif
-
- var->bits_per_pixel = 32;
- var->xoffset = 0;
- var->yoffset = 0;
- var->width = lcd->p_width;
- var->height = lcd->p_height;
- var->transp.length = 8;
-
- fix->line_length = var->xres_virtual * var->bits_per_pixel / 8;
- fix->smem_len = fix->line_length * var->yres_virtual;
-
- var->nonstd = 0;
- var->activate = FB_ACTIVATE_NOW;
- var->vmode = FB_VMODE_NONINTERLACED;
- var->hsync_len = timing->h_sw;
- var->vsync_len = timing->v_sw;
- var->left_margin = timing->h_bp;
- var->right_margin = timing->h_fp;
- var->upper_margin = timing->v_bp;
- var->lower_margin = timing->v_fp;
- var->pixclock = (lcd->freq *
- (var->left_margin + var->right_margin
- + var->hsync_len + var->xres) *
- (var->upper_margin + var->lower_margin
- + var->vsync_len + var->yres));
- var->pixclock = KHZ2PICOS(var->pixclock/1000);
-
- s3cfb_set_bitfield(var);
- s3cfb_set_alpha_info(var, win);
-
- return 0;
-}
-
-int s3cfb_alloc_framebuffer(struct s3cfb_global *fbdev, int fimd_id)
-{
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
- int ret = 0;
- int i;
-
- fbdev->fb = kmalloc(pdata->nr_wins *
- sizeof(struct fb_info *), GFP_KERNEL);
- if (!fbdev->fb) {
- dev_err(fbdev->dev, "not enough memory\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- for (i = 0; i < pdata->nr_wins; i++) {
- fbdev->fb[i] = framebuffer_alloc(sizeof(struct s3cfb_window),
- fbdev->dev);
- if (!fbdev->fb[i]) {
- dev_err(fbdev->dev, "not enough memory\n");
- ret = -ENOMEM;
- goto err_alloc_fb;
- }
-
- ret = s3cfb_init_fbinfo(fbdev, i);
- if (ret) {
- dev_err(fbdev->dev,
- "failed to allocate memory for fb%d\n", i);
- ret = -ENOMEM;
- goto err_alloc_fb;
- }
-
- if (i == pdata->default_win)
- if (s3cfb_map_default_video_memory(fbdev,
- fbdev->fb[i], fimd_id)) {
- dev_err(fbdev->dev,
- "failed to map video memory "
- "for default window (%d)\n", i);
- ret = -ENOMEM;
- goto err_alloc_fb;
- }
- sec_getlog_supply_fbinfo((void *)fbdev->fb[i]->fix.smem_start,
- fbdev->fb[i]->var.xres,
- fbdev->fb[i]->var.yres,
- fbdev->fb[i]->var.bits_per_pixel, 2);
- }
-
- return 0;
-
-err_alloc_fb:
- for (i = 0; i < pdata->nr_wins; i++) {
- if (fbdev->fb[i])
- framebuffer_release(fbdev->fb[i]);
- }
- kfree(fbdev->fb);
-
-err_alloc:
- return ret;
-}
-
-int s3cfb_open(struct fb_info *fb, int user)
-{
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
- int ret = 0;
-
- mutex_lock(&fbdev->lock);
-
- if (atomic_read(&win->in_use)) {
- if (win->id == pdata->default_win) {
- dev_dbg(fbdev->dev,
- "mutiple open fir default window\n");
- ret = 0;
- } else {
- dev_dbg(fbdev->dev,
- "do not allow multiple open \
- for non-default window\n");
- ret = -EBUSY;
- }
- } else {
- atomic_inc(&win->in_use);
- }
-
- mutex_unlock(&fbdev->lock);
-
- return ret;
-}
-
-int s3cfb_release_window(struct fb_info *fb)
-{
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
-
-#ifdef CONFIG_EXYNOS_DEV_PD
- if (unlikely(fbdev->system_state == POWER_OFF)) {
- dev_err(fbdev->dev, "%s::system_state is POWER_OFF, fb%d\n", __func__, win->id);
- return 0;
- }
-#endif
- if (win->id != pdata->default_win) {
- s3cfb_disable_window(fbdev, win->id);
- s3cfb_unmap_video_memory(fbdev, fb);
-#if !defined(CONFIG_CPU_EXYNOS4212) && !defined(CONFIG_CPU_EXYNOS4412)
- s3cfb_set_buffer_address(fbdev, win->id);
-#endif
- }
-
- win->x = 0;
- win->y = 0;
-
- return 0;
-}
-
-int s3cfb_release(struct fb_info *fb, int user)
-{
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
-
- s3cfb_release_window(fb);
-
- mutex_lock(&fbdev->lock);
- atomic_dec(&win->in_use);
- mutex_unlock(&fbdev->lock);
-
- return 0;
-}
-
-inline unsigned int __chan_to_field(unsigned int chan, struct fb_bitfield bf)
-{
- chan &= 0xffff;
- chan >>= 16 - bf.length;
-
- return chan << bf.offset;
-}
-
-int s3cfb_setcolreg(unsigned int regno, unsigned int red,
- unsigned int green, unsigned int blue,
- unsigned int transp, struct fb_info *fb)
-{
- unsigned int *pal = (unsigned int *)fb->pseudo_palette;
- unsigned int val = 0;
-
- if (regno < 16) {
- /* fake palette of 16 colors */
- val |= __chan_to_field(red, fb->var.red);
- val |= __chan_to_field(green, fb->var.green);
- val |= __chan_to_field(blue, fb->var.blue);
- val |= __chan_to_field(transp, fb->var.transp);
- pal[regno] = val;
- }
-
- return 0;
-}
-
-int s3cfb_blank(int blank_mode, struct fb_info *fb)
-{
- struct s3cfb_window *win = fb->par;
- struct s3cfb_window *tmp_win;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- struct platform_device *pdev = to_platform_device(fbdev->dev);
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
- int enabled_win = 0;
- int i;
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412) || defined(CONFIG_CPU_EXYNOS4210)
- int win_status;
-#endif
-
- dev_info(fbdev->dev, "change blank mode=%d, fb%d\n", blank_mode, win->id);
-
-#ifdef CONFIG_EXYNOS_DEV_PD
- if (unlikely(fbdev->system_state == POWER_OFF)) {
- dev_err(fbdev->dev, "%s::system_state is POWER_OFF, fb%d\n", __func__, win->id);
- win->power_state = blank_mode;
- if (win->id != pdata->default_win)
- return NOT_DEFAULT_WINDOW;
- else
- return 0;
- }
-#endif
-
- switch (blank_mode) {
- case FB_BLANK_UNBLANK:
- if (!fb->fix.smem_start) {
- dev_info(fbdev->dev, "[fb%d] no allocated memory \
- for unblank\n", win->id);
- break;
- }
-
- if (win->power_state == FB_BLANK_UNBLANK) {
- dev_info(fbdev->dev, "[fb%d] already in \
- FB_BLANK_UNBLANK\n", win->id);
- break;
- } else {
- s3cfb_update_power_state(fbdev, win->id,
- FB_BLANK_UNBLANK);
- }
-
- enabled_win = atomic_read(&fbdev->enabled_win);
- if (enabled_win == 0) {
- /* temporarily nonuse for recovery, will modify code */
- /* pdata->clk_on(pdev, &fbdev->clock); */
- s3cfb_init_global(fbdev);
- s3cfb_set_clock(fbdev);
- for (i = 0; i < pdata->nr_wins; i++) {
- tmp_win = fbdev->fb[i]->par;
- if (tmp_win->owner == DMA_MEM_FIMD)
- s3cfb_set_win_params(fbdev,
- tmp_win->id);
- }
- }
-
- if (win->enabled) /* from FB_BLANK_NORMAL */
- s3cfb_win_map_off(fbdev, win->id);
- else /* from FB_BLANK_POWERDOWN */
- s3cfb_enable_window(fbdev, win->id);
-
- if (enabled_win == 0) {
- s3cfb_display_on(fbdev);
-
- if (pdata->backlight_on)
- pdata->backlight_on(pdev);
- if (pdata->lcd_on)
- pdata->lcd_on(pdev);
- if (fbdev->lcd->init_ldi)
- fbdev->lcd->init_ldi();
- }
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)\
- || defined(CONFIG_CPU_EXYNOS4210)
- win_status = window_on_off_status(fbdev);
- if (win_status == 0)
-#else
- if (win->id != pdata->default_win)
-#endif
- return NOT_DEFAULT_WINDOW;
-
- break;
-
- case FB_BLANK_NORMAL:
- if (win->power_state == FB_BLANK_NORMAL) {
- dev_info(fbdev->dev, "[fb%d] already in FB_BLANK_NORMAL\n", win->id);
- break;
- } else {
- s3cfb_update_power_state(fbdev, win->id,
- FB_BLANK_NORMAL);
- }
-
- enabled_win = atomic_read(&fbdev->enabled_win);
- if (enabled_win == 0) {
- pdata->clk_on(pdev, &fbdev->clock);
- s3cfb_init_global(fbdev);
- s3cfb_set_clock(fbdev);
-
- for (i = 0; i < pdata->nr_wins; i++) {
- tmp_win = fbdev->fb[i]->par;
- if (tmp_win->owner == DMA_MEM_FIMD)
- s3cfb_set_win_params(fbdev,
- tmp_win->id);
- }
- }
-
- s3cfb_win_map_on(fbdev, win->id, 0x0);
-
- if (!win->enabled) /* from FB_BLANK_POWERDOWN */
- s3cfb_enable_window(fbdev, win->id);
-
- if (enabled_win == 0) {
- s3cfb_display_on(fbdev);
-
- if (pdata->backlight_on)
- pdata->backlight_on(pdev);
- if (pdata->lcd_on)
- pdata->lcd_on(pdev);
- if (fbdev->lcd->init_ldi)
- fbdev->lcd->init_ldi();
- }
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)\
- || defined(CONFIG_CPU_EXYNOS4210)
- win_status = window_on_off_status(fbdev);
- if (win_status == 0)
-#else
- if (win->id != pdata->default_win)
-#endif
- return NOT_DEFAULT_WINDOW;
-
- break;
-
- case FB_BLANK_POWERDOWN:
- if (win->power_state == FB_BLANK_POWERDOWN) {
- dev_info(fbdev->dev, "[fb%d] already in FB_BLANK_POWERDOWN\n", win->id);
- break;
- } else {
- s3cfb_update_power_state(fbdev, win->id,
- FB_BLANK_POWERDOWN);
- }
-
- s3cfb_disable_window(fbdev, win->id);
- s3cfb_win_map_off(fbdev, win->id);
-
- if (atomic_read(&fbdev->enabled_win) == 0) {
- if (pdata->backlight_off)
- pdata->backlight_off(pdev);
- if (fbdev->lcd->deinit_ldi)
- fbdev->lcd->deinit_ldi();
- if (pdata->lcd_off)
- pdata->lcd_off(pdev);
- /* temporaily nonuse for recovery , will modify code */
- /* s3cfb_display_off(fbdev);
- pdata->clk_off(pdev, &fbdev->clock); */
- }
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)\
- || defined(CONFIG_CPU_EXYNOS4210)
- win_status = window_on_off_status(fbdev);
- if (win_status != 0)
-#else
- if (win->id != pdata->default_win)
-#endif
- return NOT_DEFAULT_WINDOW;
- break;
-
- case FB_BLANK_VSYNC_SUSPEND: /* fall through */
- case FB_BLANK_HSYNC_SUSPEND: /* fall through */
- default:
- dev_dbg(fbdev->dev, "unsupported blank mode\n");
- return -EINVAL;
- }
-
- return 0;
-}
-
-int s3cfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *fb)
-{
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev);
-
- if (win->id == pdata->default_win)
- spin_lock(&fbdev->slock);
-
-#ifdef CONFIG_EXYNOS_DEV_PD
- if (unlikely(fbdev->system_state == POWER_OFF) || fbdev->regs == 0) {
- dev_err(fbdev->dev, "%s::system_state is POWER_OFF, fb%d\n", __func__, win->id);
- if (win->id == pdata->default_win)
- spin_unlock(&fbdev->slock);
- return -EINVAL;
- }
-#endif
-
- if (var->yoffset + var->yres > var->yres_virtual) {
- dev_err(fbdev->dev, "invalid yoffset value\n");
- if (win->id == pdata->default_win)
- spin_unlock(&fbdev->slock);
- return -EINVAL;
- }
-
-#if defined(CONFIG_CPU_EXYNOS4210)
- if (unlikely(var->xoffset + var->xres > var->xres_virtual)) {
- dev_err(fbdev->dev, "invalid xoffset value\n");
- if (win->id == pdata->default_win)
- spin_unlock(&fbdev->slock);
- return -EINVAL;
- }
- fb->var.xoffset = var->xoffset;
-#endif
-
- fb->var.yoffset = var->yoffset;
-
- dev_dbg(fbdev->dev, "[fb%d] yoffset for pan display: %d\n", win->id,
- var->yoffset);
-
- s3cfb_set_buffer_address(fbdev, win->id);
-
- if (win->id == pdata->default_win)
- spin_unlock(&fbdev->slock);
- return 0;
-}
-
-int s3cfb_cursor(struct fb_info *fb, struct fb_cursor *cursor)
-{
- /* nothing to do for removing cursor */
- return 0;
-}
-
-int s3cfb_wait_for_vsync(struct s3cfb_global *fbdev)
-{
- dev_dbg(fbdev->dev, "waiting for VSYNC interrupt\n");
-
- sleep_on_timeout(&fbdev->wq, HZ / 10);
-
- dev_dbg(fbdev->dev, "got a VSYNC interrupt\n");
-
- return 0;
-}
-
-int s3cfb_ioctl(struct fb_info *fb, unsigned int cmd, unsigned long arg)
-{
- struct fb_var_screeninfo *var = &fb->var;
- struct s3cfb_window *win = fb->par;
- struct s3cfb_global *fbdev = get_fimd_global(win->id);
- struct s3cfb_lcd *lcd = fbdev->lcd;
- void *argp = (void *)arg;
- int ret = 0;
-#if defined(CONFIG_CPU_EXYNOS4210)
- unsigned int addr = 0;
-#endif
- dma_addr_t start_addr = 0;
- struct fb_fix_screeninfo *fix = &fb->fix;
-
- union {
- struct s3cfb_user_window user_window;
- struct s3cfb_user_plane_alpha user_alpha;
- struct s3cfb_user_chroma user_chroma;
- int vsync;
- unsigned int alpha_mode;
- } p;
-
-#ifdef CONFIG_EXYNOS_DEV_PD
- if (unlikely(fbdev->system_state == POWER_OFF)) {
- dev_err(fbdev->dev, "%s::system_state is POWER_OFF cmd is 0x%08x, fb%d\n", __func__, cmd, win->id);
- return -EFAULT;
- }
-#endif
-
- switch (cmd) {
- case S3CFB_SET_WIN_ADDR:
- fix->smem_start = (unsigned long)argp;
- s3cfb_set_buffer_address(fbdev, win->id);
- break;
-
- case FBIO_WAITFORVSYNC:
- if (fbdev->regs == 0)
- return 0;
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)
- /* Enable Vsync */
-#ifdef CONFIG_CPU_EXYNOS4412
- if (!fbdev->regs)
- return ret;
-#endif
- s3cfb_set_global_interrupt(fbdev, 1);
- s3cfb_set_vsync_interrupt(fbdev, 1);
-#endif
- /* Wait for Vsync */
- s3cfb_wait_for_vsync(fbdev);
- if (fbdev->regs == 0)
- return 0;
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)
- /* Disable Vsync */
- s3cfb_set_global_interrupt(fbdev, 0);
- s3cfb_set_vsync_interrupt(fbdev, 0);
-#endif
- break;
-
- case S3CFB_WIN_POSITION:
- if (copy_from_user(&p.user_window,
- (struct s3cfb_user_window __user *)arg,
- sizeof(p.user_window)))
- ret = -EFAULT;
- else {
-#if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412)
- win->x = p.user_window.x;
- win->y = p.user_window.y;
-#else
- if (p.user_window.x < 0)
- p.user_window.x = 0;
-
- if (p.user_window.y < 0)
- p.user_window.y = 0;
-
- if (p.user_window.x + var->xres > lcd->width)
- win->x = lcd->width - var->xres;
- else
- win->x = p.user_window.x;
-
- if (p.user_window.y + var->yres > lcd->height)
- win->y = lcd->height - var->yres;
- else
- win->y = p.user_window.y;
-
- s3cfb_set_window_position(fbdev, win->id);
-#endif
- }
- break;
-
- case S3CFB_WIN_SET_PLANE_ALPHA:
- if (copy_from_user(&p.user_alpha,
- (struct s3cfb_user_plane_alpha __user *)arg,
- sizeof(p.user_alpha)))
- ret = -EFAULT;
- else {
- win->alpha.mode = PLANE_BLENDING;
- win->alpha.channel = p.user_alpha.channel;
- win->alpha.value =
- S3CFB_AVALUE(p.user_alpha.red,
- p.user_alpha.green, p.user_alpha.blue);
-
- s3cfb_set_alpha_blending(fbdev, win->id);
- }
- break;
-
- case S3CFB_WIN_SET_CHROMA:
- if (copy_from_user(&p.user_chroma,
- (struct s3cfb_user_chroma __user *)arg,
- sizeof(p.user_chroma)))
- ret = -EFAULT;
- else {
- win->chroma.enabled = p.user_chroma.enabled;
- win->chroma.key = S3CFB_CHROMA(p.user_chroma.red,
- p.user_chroma.green,
- p.user_chroma.blue);
-
- s3cfb_set_chroma_key(fbdev, win->id);
- }
- break;
-
- case S3CFB_SET_VSYNC_INT:
- if (get_user(p.vsync, (int __user *)arg))
- ret = -EFAULT;
- else {
-#ifdef CONFIG_CPU_EXYNOS4412
- if (!fbdev->regs)
- return ret;
-#endif
- s3cfb_set_global_interrupt(fbdev, p.vsync);
- s3cfb_set_vsync_interrupt(fbdev, p.vsync);
- }
- break;
-
- case S3CFB_GET_FB_PHY_ADDR:
- start_addr = fix->smem_start + ((var->xres_virtual *
- var->yoffset + var->xoffset) *
- (var->bits_per_pixel / 8));
-
- dev_dbg(fbdev->dev, "framebuffer_addr: 0x%08x\n", start_addr);
-
- if (copy_to_user((void *)arg, &start_addr, sizeof(unsigned int))) {
- dev_err(fbdev->dev, "copy_to_user error\n");
- return -EFAULT;
- }
-
- break;
-
- case S3CFB_GET_CUR_WIN_BUF_ADDR:
- start_addr = s3cfb_get_win_cur_buf_addr(fbdev, win->id);
- dev_dbg(fbdev->dev, "win_cur_buf_addr: 0x%08x\n", start_addr);
- if (copy_to_user((void *)arg, &start_addr, sizeof(unsigned int))) {
- dev_err(fbdev->dev, "copy_to_user error\n");
- return -EFAULT;
- }
- break;
-
-#if defined(CONFIG_CPU_EXYNOS4210)
- case S3CFB_SET_WIN_MEM_START:
- if (copy_from_user(&addr, (unsigned int *)arg, sizeof(unsigned int)))
- ret = -EFAULT;
- else {
- fix->smem_start = (unsigned long)addr;
- printk("\n\n######smem_start %x \n\n", (unsigned int)fix->smem_start);
- }
- break;
-#endif
-
- case S3CFB_SET_WIN_ON:
- s3cfb_enable_window(fbdev, win->id);
- break;
-
- case S3CFB_SET_WIN_OFF:
- s3cfb_disable_window(fbdev, win->id);
- break;
-
- case S3CFB_SET_ALPHA_MODE:
- if (copy_from_user(&p.alpha_mode,
- (struct s3cfb_user_window __user *)arg,
- sizeof(p.alpha_mode)))
- ret = -EFAULT;
- else
- s3cfb_set_alpha_mode(fbdev, win->id, p.alpha_mode);
- break;
- }
- return ret;
-}
-
-int s3cfb_enable_localpath(struct s3cfb_global *fbdev, int id)
-{
- struct s3cfb_window *win = fbdev->fb[id]->par;
-
- if (s3cfb_channel_localpath_on(fbdev, id)) {
- win->enabled = 0;
- return -EFAULT;
- } else {
- win->enabled = 1;
- return 0;
- }
-}
-
-int s3cfb_disable_localpath(struct s3cfb_global *fbdev, int id)
-{
- struct s3cfb_window *win = fbdev->fb[id]->par;
-
- if (s3cfb_channel_localpath_off(fbdev, id)) {
- win->enabled = 1;
- return -EFAULT;
- } else {
- win->enabled = 0;
- return 0;
- }
-}
-
-int s3cfb_open_fifo(int id, int ch, int (*do_priv) (void *), void *param)
-{
- struct s3cfb_global *fbdev = get_fimd_global(id);
- struct s3cfb_window *win = fbdev->fb[id]->par;
-
- dev_dbg(fbdev->dev, "[fb%d] open fifo\n", win->id);
-
- if (win->path == DATA_PATH_DMA) {
- dev_err(fbdev->dev, "WIN%d is busy.\n", id);
- return -EFAULT;
- }
-
- win->local_channel = ch;
-
- if (do_priv) {
- if (do_priv(param)) {
- dev_err(fbdev->dev, "failed to run for "
- "private fifo open\n");
- s3cfb_enable_window(fbdev, id);
- return -EFAULT;
- }
- }
-
- s3cfb_set_window_control(fbdev, id);
- s3cfb_enable_window(fbdev, id);
- s3cfb_enable_localpath(fbdev, id);
-
- return 0;
-}
-EXPORT_SYMBOL(s3cfb_open_fifo);
-
-int s3cfb_close_fifo(int id, int (*do_priv) (void *), void *param)
-{
- struct s3cfb_global *fbdev = get_fimd_global(id);
- struct s3cfb_window *win = fbdev->fb[id]->par;
- win->path = DATA_PATH_DMA;
-
- dev_dbg(fbdev->dev, "[fb%d] close fifo\n", win->id);
-
- if (do_priv) {
- s3cfb_display_off(fbdev);
-
- if (do_priv(param)) {
- dev_err(fbdev->dev, "failed to run for"
- "private fifo close\n");
- s3cfb_enable_window(fbdev, id);
- s3cfb_display_on(fbdev);
- return -EFAULT;
- }
-
- s3cfb_disable_window(fbdev, id);
- s3cfb_disable_localpath(fbdev, id);
- s3cfb_display_on(fbdev);
- } else {
- s3cfb_disable_window(fbdev, id);
- s3cfb_disable_localpath(fbdev, id);
- }
-
- return 0;
-}
-EXPORT_SYMBOL(s3cfb_close_fifo);
-
-int s3cfb_direct_ioctl(int id, unsigned int cmd, unsigned long arg)
-{
- struct s3cfb_global *fbdev = get_fimd_global(id);
- struct fb_info *fb = fbdev->fb[id];
- struct fb_var_screeninfo *var = &fb->var;
- struct fb_fix_screeninfo *fix = &fb->fix;
- struct s3cfb_window *win = fb->par;
- struct s3cfb_lcd *lcd = fbdev->lcd;
- struct s3cfb_user_window user_win;
-#ifdef CONFIG_EXYNOS_DEV_PD
- struct platform_device *pdev = to_platform_device(fbdev->dev);
-#endif
- void *argp = (void *)arg;
- int ret = 0;
-
-#ifdef CONFIG_EXYNOS_DEV_PD
- /* enable the power domain */
- if (fbdev->system_state == POWER_OFF) {
- /* This IOCTLs are came from fimc irq.
- * To avoid scheduling problem in irq mode,
- * runtime get/put sync shold be not called.
- */
- switch (cmd) {
- case S3CFB_SET_WIN_ADDR:
- fix->smem_start = (unsigned long)argp;
- return ret;
-
- case S3CFB_SET_WIN_ON:
- if (!win->enabled)
- atomic_inc(&fbdev->enabled_win);
- win->enabled = 1;
-
- return ret;
- }
-
- pm_runtime_get_sync(&pdev->dev);
- }
-#endif
-
- switch (cmd) {
- case FBIOGET_FSCREENINFO:
- ret = memcpy(argp, &fb->fix, sizeof(fb->fix)) ? 0 : -EFAULT;
- break;
-
- case FBIOGET_VSCREENINFO:
- ret = memcpy(argp, &fb->var, sizeof(fb->var)) ? 0 : -EFAULT;
- break;
-
- case FBIOPUT_VSCREENINFO:
- ret = s3cfb_check_var((struct fb_var_screeninfo *)argp, fb);
- if (ret) {
- dev_err(fbdev->dev, "invalid vscreeninfo\n");
- break;
- }
-
- ret = memcpy(&fb->var, (struct fb_var_screeninfo *)argp,
- sizeof(fb->var)) ? 0 : -EFAULT;
- if (ret) {
- dev_err(fbdev->dev, "failed to put new vscreeninfo\n");
- break;
- }
-
- fix->line_length = var->xres_virtual * var->bits_per_pixel / 8;
- fix->smem_len = fix->line_length * var->yres_virtual;
-
- s3cfb_set_win_params(fbdev, id);
- break;
-
- case S3CFB_WIN_POSITION:
- ret = memcpy(&user_win, (struct s3cfb_user_window __user *)arg,
- sizeof(user_win)) ? 0 : -EFAULT;
- if (ret) {
- dev_err(fbdev->dev, "failed to S3CFB_WIN_POSITION\n");
- break;
- }
-
- if (user_win.x < 0)
- user_win.x = 0;
-
- if (user_win.y < 0)
- user_win.y = 0;
-
- if (user_win.x + var->xres > lcd->width)
- win->x = lcd->width - var->xres;
- else
- win->x = user_win.x;
-
- if (user_win.y + var->yres > lcd->height)
- win->y = lcd->height - var->yres;
- else
- win->y = user_win.y;
-
- s3cfb_set_window_position(fbdev, win->id);
- break;
-
- case S3CFB_GET_LCD_WIDTH:
- ret = memcpy(argp, &lcd->width, sizeof(int)) ? 0 : -EFAULT;
- if (ret) {
- dev_err(fbdev->dev, "failed to S3CFB_GET_LCD_WIDTH\n");
- break;
- }
-
- break;
-
- case S3CFB_GET_LCD_HEIGHT:
- ret = memcpy(argp, &lcd->height, sizeof(int)) ? 0 : -EFAULT;
- if (ret) {
- dev_err(fbdev->dev, "failed to S3CFB_GET_LCD_HEIGHT\n");
- break;
- }
-
- break;
-
- case S3CFB_SET_WRITEBACK:
- if ((u32)argp == 1)
- fbdev->output = OUTPUT_WB_RGB;
- else
- fbdev->output = OUTPUT_RGB;
-
- s3cfb_set_output(fbdev);
-
- break;
-
- case S3CFB_SET_WIN_ON:
- s3cfb_enable_window(fbdev, id);
- break;
-
- case S3CFB_SET_WIN_OFF:
- s3cfb_disable_window(fbdev, id);
- break;
-
- case S3CFB_SET_WIN_PATH:
- win->path = (enum s3cfb_data_path_t)argp;
- break;
-
- case S3CFB_SET_WIN_ADDR:
- fix->smem_start = (unsigned long)argp;
- s3cfb_set_buffer_address(fbdev, id);
- break;
-
- case S3CFB_SET_WIN_MEM:
- win->owner = (enum s3cfb_mem_owner_t)argp;
- break;
-
- case S3CFB_SET_VSYNC_INT:
- if (argp)
- s3cfb_set_global_interrupt(fbdev, 1);
-
- s3cfb_set_vsync_interrupt(fbdev, (int)argp);
- break;
-
- case S3CFB_GET_VSYNC_INT_STATUS:
- ret = s3cfb_get_vsync_interrupt(fbdev);
- break;
-
- default:
-#ifdef CONFIG_EXYNOS_DEV_PD
- fbdev->system_state = POWER_ON;
-#endif
- ret = s3cfb_ioctl(fb, cmd, arg);
-#ifdef CONFIG_EXYNOS_DEV_PD
- fbdev->system_state = POWER_OFF;
-#endif
- break;
- }
-
-#ifdef CONFIG_EXYNOS_DEV_PD
- /* disable the power domain */
- if (fbdev->system_state == POWER_OFF)
- pm_runtime_put(&pdev->dev);
-#endif
-
- return ret;
-}
-EXPORT_SYMBOL(s3cfb_direct_ioctl);
-
-MODULE_AUTHOR("Jingoo Han <jg1.han@samsung.com>");
-MODULE_AUTHOR("Jonghun, Han <jonghun.han@samsung.com>");
-MODULE_AUTHOR("Jinsung, Yang <jsgood.yang@samsung.com>");
-MODULE_DESCRIPTION("Samsung Display Controller (FIMD) driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/s3cfb_s6c1372.c b/drivers/video/samsung_duallcd/s3cfb_s6c1372.c
deleted file mode 100644
index 4d23708..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_s6c1372.c
+++ /dev/null
@@ -1,214 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_s6c1372.c
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd.
- * http://www.samsung.com/
- *
- * S6F1202A : 7" WSVGA Landscape LCD module driver
- * S6C1372 : 7.3" WXGA Landscape LCD module driver
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/wait.h>
-#include <linux/delay.h>
-#include <linux/gpio.h>
-#include <linux/platform_device.h>
-#include <linux/lcd.h>
-#include <plat/gpio-cfg.h>
-#include "s3cfb.h"
-
-
-struct s6c1372_lcd {
- unsigned int power;
- struct device *dev;
- struct lcd_device *ld;
- struct lcd_platform_data *lcd_pd;
-};
-
-static int lvds_lcd_set_power(struct lcd_device *ld, int power)
-{
- struct s6c1372_lcd *lcd = lcd_get_data(ld);
- struct lcd_platform_data *pd = NULL;
- if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
- power != FB_BLANK_NORMAL) {
- dev_err(&lcd->ld->dev, "power value should be 0, 1 or 4.\n");
- return -EINVAL;
- }
- pd = lcd->lcd_pd;
- if (power)
- pd->power_on(lcd->ld, 0);
- else
- pd->power_on(lcd->ld, 1);
- lcd->power = power;
- return 0;
-}
-static int lvds_lcd_get_power(struct lcd_device *ld)
-{
- struct s6c1372_lcd *lcd = lcd_get_data(ld);
-
- return lcd->power;
-}
-static struct lcd_ops s6c1372_ops = {
- .set_power = lvds_lcd_set_power,
- .get_power = lvds_lcd_get_power,
-};
-
-extern unsigned int lcdtype;
-
-static ssize_t lcdtype_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- char temp[15];
-#if defined(CONFIG_FB_S5P_S6F1202A)
- /*For P2*/
- if (lcdtype == 0)
- sprintf(temp, "HYDIS_NT51008\n");
- else if (lcdtype == 2)
- sprintf(temp, "BOE_NT51008\n");
- else
- sprintf(temp, "SMD_S6F1202A02\n");
-#else
- /*For p4*/
- sprintf(temp, "SMD_S6C1372\n");
-#endif
- strcat(buf, temp);
- return strlen(buf);
-}
-static DEVICE_ATTR(lcd_type, 0664, lcdtype_show, NULL);
-
-void s5c1372_ldi_enable(void)
-{
-#if defined(CONFIG_FB_S5P_S6C1372)
- gpio_set_value(GPIO_LCD_EN, GPIO_LEVEL_HIGH);
- msleep(40);
-#else /* defined(CONFIG_FB_S5P_S6F1202A ) */
- gpio_set_value(GPIO_LCD_EN, GPIO_LEVEL_HIGH);
- gpio_set_value(GPIO_LCD_LDO_EN, GPIO_LEVEL_HIGH);
- msleep(40);
-
- /* Enable backlight PWM GPIO for P2 device. */
- gpio_set_value(GPIO_LCD_BACKLIGHT_PWM, 0);
- s3c_gpio_cfgpin(GPIO_LCD_BACKLIGHT_PWM, S3C_GPIO_SFN(3));
-#endif
-}
-
-void s5c1372_ldi_disable(void)
-{
-#if defined(CONFIG_FB_S5P_S6C1372)
- s3c_gpio_cfgpin(GPIO_LCD_PCLK, S3C_GPIO_OUTPUT);
- s3c_gpio_setpull(GPIO_LCD_PCLK, S3C_GPIO_PULL_NONE);
- gpio_set_value(GPIO_LCD_PCLK, GPIO_LEVEL_LOW);
-
- msleep(40);
- gpio_set_value(GPIO_LCD_EN, GPIO_LEVEL_LOW);
-
- msleep(600);
-#else /* defined(CONFIG_FB_S5P_S6F1202A ) */
- /* Disable backlight PWM GPIO for P2 device. */
- gpio_set_value(GPIO_LCD_BACKLIGHT_PWM, GPIO_LEVEL_LOW);
- s3c_gpio_cfgpin(GPIO_LCD_BACKLIGHT_PWM, S3C_GPIO_OUTPUT);
-
- /* Disable LVDS Panel Power, 1.2, 1.8, display 3.3V */
- gpio_set_value(GPIO_LCD_LDO_EN, GPIO_LEVEL_LOW);
- gpio_set_value(GPIO_LCD_EN, GPIO_LEVEL_LOW);
- msleep(300);
-#endif
-}
-
-static int __init s6c1372_probe(struct platform_device *pdev)
-{
- struct s6c1372_lcd *lcd;
- int ret = 0;
-
- lcd = kzalloc(sizeof(struct s6c1372_lcd), GFP_KERNEL);
- if (!lcd) {
- pr_err("failed to allocate for lcd\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- lcd->ld = lcd_device_register("panel", &pdev->dev, lcd, &s6c1372_ops);
-
- if (IS_ERR(lcd->ld)) {
- pr_err("failed to register lcd device\n");
- ret = PTR_ERR(lcd->ld);
- goto out_free_lcd;
- }
- lcd->lcd_pd = pdev->dev.platform_data;
- if (IS_ERR(lcd->lcd_pd)) {
- pr_err("no platform data for lcd, cannot attach\n");
- ret = PTR_ERR(lcd->lcd_pd);
- goto out_free_lcd;
- }
- lcd->power = 1;
- ret = device_create_file(&lcd->ld->dev, &dev_attr_lcd_type);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries\n");
-
- dev_set_drvdata(&pdev->dev, lcd);
-
- dev_info(&lcd->ld->dev, "lcd panel driver has been probed.\n");
-
- return 0;
-
-out_free_lcd:
- kfree(lcd);
- return ret;
-err_alloc:
- return ret;
-}
-
-static int __devexit s6c1372_remove(struct platform_device *pdev)
-{
- struct s6c1372_lcd *lcd = dev_get_drvdata(&pdev->dev);
-
- lcd_device_unregister(lcd->ld);
- kfree(lcd);
-
- return 0;
-}
-#ifdef CONFIG_FB_S5P_S6C1372
-static void s6c1372_shutdown(struct platform_device *pdev)
-{
- gpio_set_value(GPIO_LED_BACKLIGHT_RESET, GPIO_LEVEL_LOW);
- msleep(200);
-
- s5c1372_ldi_disable();
-}
-#endif
-static struct platform_driver s6c1372_driver = {
- .driver = {
- .name = "s6c1372",
- .owner = THIS_MODULE,
- },
- .probe = s6c1372_probe,
- .remove = __exit_p(s6c1372_remove),
- .suspend = NULL,
- .resume = NULL,
-#ifdef CONFIG_FB_S5P_S6C1372
- .shutdown = s6c1372_shutdown,
-#endif
-};
-
-static int __init s6c1372_init(void)
-{
- return platform_driver_register(&s6c1372_driver);
-}
-
-static void __exit s6c1372_exit(void)
-{
- platform_driver_unregister(&s6c1372_driver);
-}
-
-module_init(s6c1372_init);
-module_exit(s6c1372_exit);
-
-MODULE_AUTHOR("SAMSUNG");
-MODULE_DESCRIPTION("S6C1372 LCD driver");
-MODULE_LICENSE("GPL");
-
diff --git a/drivers/video/samsung_duallcd/s3cfb_s6e39a0.c b/drivers/video/samsung_duallcd/s3cfb_s6e39a0.c
deleted file mode 100644
index 806baea..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_s6e39a0.c
+++ /dev/null
@@ -1,1095 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_s6e8aa0.c
- *
- * MIPI-DSI based AMS529HA01 AMOLED lcd panel driver.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/workqueue.h>
-#include <linux/backlight.h>
-#include <linux/lcd.h>
-#include <plat/gpio-cfg.h>
-#include <plat/regs-dsim.h>
-#include <mach/dsim.h>
-#include <mach/mipi_ddi.h>
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#include "s5p-dsim.h"
-#include "s3cfb.h"
-
-#ifdef SMART_DIMMING
-#include "smart_dimming.h"
-#endif
-
-#define DCS_PARTIAL_MODE_ON 0x12
-#define DCS_PARTIAL_AREA 0x30
-
-#define MIN_BRIGHTNESS 0
-#define MAX_BRIGHTNESS 255
-#define DEFAULT_BRIGHTNESS 150
-#define DEFAULT_GAMMA_LEVEL 10
-
-#define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL)
-
-#define LDI_ID_REG 0xD1
-#define LDI_ID_LEN 3
-
-#ifdef SMART_DIMMING
-#define PANEL_A1_M3 0xA1
-#define PANEL_A2_M3 0xA2
-#define PANEL_A1_SM2 0x12
-
-#define LDI_MTP_LENGTH 24
-#define LDI_MTP_ADDR 0xD3
-
-#define ELVSS_OFFSET_MAX 0x00
-#define ELVSS_OFFSET_2 0x08
-#define ELVSS_OFFSET_1 0x0D
-#define ELVSS_OFFSET_MIN 0x11
-
-#define DYNAMIC_ELVSS_MIN_VALUE 0x81
-#define DYNAMIC_ELVSS_MAX_VALUE 0x9F
-
-#define ELVSS_MODE0_MIN_VOLTAGE 62
-#define ELVSS_MODE1_MIN_VOLTAGE 52
-
-struct str_elvss {
- u8 reference;
- u8 limit;
-};
-#endif
-
-struct lcd_info {
- unsigned int bl;
- unsigned int acl_enable;
- unsigned int cur_acl;
- unsigned int current_bl;
-
- unsigned int ldi_enable;
- unsigned int power;
- struct mutex lock;
-
- struct device *dev;
- struct lcd_device *ld;
- struct backlight_device *bd;
- struct lcd_platform_data *lcd_pd;
- struct early_suspend early_suspend;
-
- unsigned int lcd_id;
-
- const unsigned char **gamma_table;
-
-#ifdef SMART_DIMMING
- unsigned int support_elvss;
- unsigned int aid;
- unsigned int manual_version;
-
- struct str_smart_dim smart;
- struct str_elvss elvss;
- struct mutex bl_lock;
-#endif
- unsigned int irq;
- unsigned int connected;
-
- struct dsim_global *dsim;
-};
-
-static int s6e8ax0_write(struct lcd_info *lcd, const unsigned char *seq, int len)
-{
- int size;
- const unsigned char *wbuf;
-
- if (!lcd->connected)
- return 0;
-
- mutex_lock(&lcd->lock);
-
- size = len;
- wbuf = seq;
-
- if (size == 1)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_NO_PARA, wbuf[0], 0);
- else if (size == 2)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_1_PARA, wbuf[0], wbuf[1]);
- else
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_LONG_WR, (unsigned int)wbuf, size);
-
- mutex_unlock(&lcd->lock);
-
- return 0;
-}
-
-static int s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf)
-{
- int ret = 0;
-
- if (!lcd->connected)
- return ret;
-
- mutex_lock(&lcd->lock);
-
- if (lcd->dsim->ops->cmd_read)
- ret = lcd->dsim->ops->cmd_read(lcd->dsim, addr, count, buf);
-
- mutex_unlock(&lcd->lock);
-
- return ret;
-}
-
-static int get_backlight_level_from_brightness(int brightness)
-{
- int backlightlevel;
-
- /* brightness setting from platform is from 0 to 255
- * But in this driver, brightness is only supported from 0 to 24 */
-
- switch (brightness) {
- case 0:
- backlightlevel = 0;
- break;
- case 1 ... 29:
- backlightlevel = 0;
- break;
- case 30 ... 34:
- backlightlevel = 1;
- break;
- case 35 ... 44:
- backlightlevel = 2;
- break;
- case 45 ... 54:
- backlightlevel = 3;
- break;
- case 55 ... 64:
- backlightlevel = 4;
- break;
- case 65 ... 74:
- backlightlevel = 5;
- break;
- case 75 ... 83:
- backlightlevel = 6;
- break;
- case 84 ... 93:
- backlightlevel = 7;
- break;
- case 94 ... 103:
- backlightlevel = 8;
- break;
- case 104 ... 113:
- backlightlevel = 9;
- break;
- case 114 ... 122:
- backlightlevel = 10;
- break;
- case 123 ... 132:
- backlightlevel = 11;
- break;
- case 133 ... 142:
- backlightlevel = 12;
- break;
- case 143 ... 152:
- backlightlevel = 13;
- break;
- case 153 ... 162:
- backlightlevel = 14;
- break;
- case 163 ... 171:
- backlightlevel = 15;
- break;
- case 172 ... 181:
- backlightlevel = 16;
- break;
- case 182 ... 191:
- backlightlevel = 17;
- break;
- case 192 ... 201:
- backlightlevel = 18;
- break;
- case 202 ... 210:
- backlightlevel = 19;
- break;
- case 211 ... 220:
- backlightlevel = 20;
- break;
- case 221 ... 230:
- backlightlevel = 21;
- break;
- case 231 ... 240:
- backlightlevel = 22;
- break;
- case 241 ... 250:
- backlightlevel = 23;
- break;
- case 251 ... 255:
- backlightlevel = 24;
- break;
- default:
- backlightlevel = 10;
- break;
- }
- return backlightlevel;
-}
-
-static int s6e8ax0_set_acl(struct lcd_info *lcd)
-{
- if (lcd->acl_enable) {
- if (lcd->cur_acl == 0) {
- if (lcd->bl == 0 || lcd->bl == 1) {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- } else
- s6e8ax0_write(lcd, SEQ_ACL_ON, ARRAY_SIZE(SEQ_ACL_ON));
- }
- switch (lcd->bl) {
- case 0 ... 1: /* 30cd ~ 40cd - 0%*/
- if (lcd->cur_acl != 0) {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case 2 ... 12: /* 70cd ~ 180cd -40%*/
- if (lcd->cur_acl != 40) {
- s6e8ax0_write(lcd, acl_cutoff_table[1], ACL_PARAM_SIZE);
- lcd->cur_acl = 40;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case 13: /* 190cd - 43% */
- if (lcd->cur_acl != 43) {
- s6e8ax0_write(lcd, acl_cutoff_table[2], ACL_PARAM_SIZE);
- lcd->cur_acl = 43;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case 14: /* 200cd - 45% */
- if (lcd->cur_acl != 45) {
- s6e8ax0_write(lcd, acl_cutoff_table[3], ACL_PARAM_SIZE);
- lcd->cur_acl = 45;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case 15: /* 210cd - 47% */
- if (lcd->cur_acl != 47) {
- s6e8ax0_write(lcd, acl_cutoff_table[4], ACL_PARAM_SIZE);
- lcd->cur_acl = 47;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case 16: /* 220cd - 48% */
- if (lcd->cur_acl != 48) {
- s6e8ax0_write(lcd, acl_cutoff_table[5], ACL_PARAM_SIZE);
- lcd->cur_acl = 48;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- default:
- if (lcd->cur_acl != 50) {
- s6e8ax0_write(lcd, acl_cutoff_table[6], ACL_PARAM_SIZE);
- lcd->cur_acl = 50;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- }
- } else {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
-
- return 0;
-}
-
-#ifndef SMART_DIMMING
-static int s6e8ax0_gamma_ctl(struct lcd_info *lcd)
-{
- s6e8ax0_write(lcd, gamma22_table[lcd->bl], GAMMA_PARAM_SIZE);
-
- /* Gamma Set Update */
- s6e8ax0_write(lcd, SEQ_GAMMA_UPDATE, ARRAY_SIZE(SEQ_GAMMA_UPDATE));
-
- lcd->current_bl = lcd->bl;
-
- return 0;
-}
-
-static int update_brightness(struct lcd_info *lcd)
-{
- int ret;
-
-#if defined(CONFIG_MACH_C1) || \
- defined(CONFIG_MACH_M3) || \
- defined(CONFIG_MACH_M0) || defined(CONFIG_MACH_SLP_PQ) || \
- defined(CONFIG_MACH_SLP_PQ_LTE)
-#else
- ret = s6e8ax0_gamma_ctl(lcd);
- if (ret)
- return -EPERM;
-
- /*
- ret = s6e8ax0_set_elvss(lcd);
- if (ret)
- return -EPERM;
-
- ret = s6e8ax0_set_acl(lcd);
- if (ret)
- return -EPERM;
- */
-#endif
-
- return 0;
-}
-#endif
-
-#ifdef SMART_DIMMING
-static int s6e8ax0_read_mtp(struct lcd_info *lcd, u8 *mtp_data)
-{
- int ret;
- u8 retry_cnt = 3;
-
-read_retry:
- ret = s6e8ax0_read(lcd, LDI_MTP_ADDR, LDI_MTP_LENGTH, mtp_data);
- if (!ret) {
- if (retry_cnt) {
- printk(KERN_WARNING "[WARN:LCD] : %s : retry cnt : %d\n", __func__, retry_cnt);
- retry_cnt--;
- goto read_retry;
- } else
- printk(KERN_ERR "ERROR:MTP read failed\n");
- }
-
- return ret;
-}
-
-static u32 transform_gamma(u32 brightness)
-{
- u32 gamma;
-
- switch (brightness) {
- case 0:
- gamma = 30;
- break;
- case 1 ... 29:
- gamma = 30;
- break;
- case 30 ... 34:
- gamma = 40;
- break;
- case 35 ... 44:
- gamma = 70;
- break;
- case 45 ... 54:
- gamma = 80;
- break;
- case 55 ... 64:
- gamma = 90;
- break;
- case 65 ... 74:
- gamma = 100;
- break;
- case 75 ... 83:
- gamma = 110;
- break;
- case 84 ... 93:
- gamma = 120;
- break;
- case 94 ... 103:
- gamma = 130;
- break;
- case 104 ... 113:
- gamma = 140;
- break;
- case 114 ... 122:
- gamma = 150;
- break;
- case 123 ... 132:
- gamma = 160;
- break;
- case 133 ... 142:
- gamma = 170;
- break;
- case 143 ... 152:
- gamma = 180;
- break;
- case 153 ... 162:
- gamma = 190;
- break;
- case 163 ... 171:
- gamma = 200;
- break;
- case 172 ... 181:
- gamma = 210;
- break;
- case 182 ... 191:
- gamma = 220;
- break;
- case 192 ... 201:
- gamma = 230;
- break;
- case 202 ... 210:
- gamma = 240;
- break;
- case 211 ... 220:
- gamma = 250;
- break;
- case 221 ... 230:
- gamma = 260;
- break;
- case 231 ... 240:
- gamma = 270;
- break;
- case 241 ... 250:
- gamma = 280;
- break;
- case 251 ... 255:
- gamma = 290;
- break;
- default:
- gamma = 150;
- break;
- }
- return gamma - 1;
-}
-
-static int s6e8aa0_update_brightness(struct lcd_info *lcd, u32 brightness)
-{
- int ret = 0;
- u8 gamma_regs[GAMMA_PARAM_SIZE] = {0,};
- u32 gamma;
-#if 0
- int i;
-#endif
-
- gamma_regs[0] = 0xFA;
- gamma_regs[1] = 0x01;
-
- gamma = brightness;
-
- calc_gamma_table(&lcd->smart, gamma, gamma_regs+2);
-
- s6e8ax0_write(lcd, gamma_regs, GAMMA_PARAM_SIZE);
-
- s6e8ax0_write(lcd, SEQ_GAMMA_UPDATE, sizeof(SEQ_GAMMA_UPDATE));
-
-#if 0
- printk(KERN_INFO "##### print gamma reg #####\n");
- for (i = 0; i < 26; i++)
- printk(KERN_INFO "[%02d] : %02x\n", i, gamma_regs[i]);
-#endif
-
- return ret;
-}
-
-static u8 get_offset_brightness(u32 candela)
-{
- u8 offset = 0;
-
- switch (candela) {
- case 0 ... 100:
- offset = ELVSS_OFFSET_MIN;
- break;
- case 101 ... 160:
- offset = ELVSS_OFFSET_1;
- break;
- case 161 ... 200:
- offset = ELVSS_OFFSET_2;
- break;
- case 201 ... 300:
- offset = ELVSS_OFFSET_MAX;
- break;
- default:
- offset = ELVSS_OFFSET_MAX;
- break;
- }
- return offset;
-}
-
-static u8 get_elvss_value(struct lcd_info *lcd, u32 candela)
-{
- u8 ref = 0;
- u8 offset;
-
- ref = (lcd->elvss.reference | 0x80);
- offset = get_offset_brightness(candela);
- ref += offset;
-
- printk(KERN_DEBUG "%s ref =0x%x , offset = 0x%x\n", __func__, ref, offset);
-
- if (ref < DYNAMIC_ELVSS_MIN_VALUE)
- ref = DYNAMIC_ELVSS_MIN_VALUE;
- else if (ref > DYNAMIC_ELVSS_MAX_VALUE)
- ref = DYNAMIC_ELVSS_MAX_VALUE;
-
- return ref;
-}
-
-static int s6e8aa0_update_elvss(struct lcd_info *lcd, u32 candela)
-{
- u8 elvss_cmd[3];
- u8 elvss;
-
- elvss = get_elvss_value(lcd, candela);
- if (!elvss) {
- printk(KERN_ERR "[ERROR:LCD]:%s:get_elvss_value() failed\n", __func__);
- return -EPERM;
- }
-
- elvss_cmd[0] = 0xb1;
- elvss_cmd[1] = 0x04;
- elvss_cmd[2] = elvss;
-
- printk(KERN_DEBUG "elvss reg : %02x\n", elvss_cmd[2]);
- s6e8ax0_write(lcd, elvss_cmd, sizeof(elvss_cmd));
-
- return 0;
-}
-
-static int s6e8ax0_adb_brightness_update(struct lcd_info *lcd, u32 br, u32 force)
-{
- u32 gamma;
- int ret = 0;
-
- mutex_lock(&lcd->bl_lock);
-
- lcd->bl = get_backlight_level_from_brightness(br);
-
- if ((force) || ((lcd->ldi_enable) && (lcd->current_bl != lcd->bl))) {
- gamma = transform_gamma(br);
-
- ret = s6e8aa0_update_brightness(lcd, gamma);
-
- ret = s6e8ax0_set_acl(lcd);
-
- if (lcd->support_elvss)
- ret = s6e8aa0_update_elvss(lcd, gamma);
-
- lcd->current_bl = lcd->bl;
- dev_info(&lcd->ld->dev, "brightness=%d, gamma=%d\n", br, gamma);
- }
-
- mutex_unlock(&lcd->bl_lock);
-
- return ret;
-}
-#endif
-
-static int s6e8ax0_ldi_init(struct lcd_info *lcd)
-{
- int ret = 0;
- s6e8ax0_write(lcd, SEQ_APPLY_LEVEL_2_KEY, \
- ARRAY_SIZE(SEQ_APPLY_LEVEL_2_KEY));
- s6e8ax0_write(lcd, SEQ_APPLY_LEVEL_3_KEY, \
- ARRAY_SIZE(SEQ_APPLY_LEVEL_3_KEY));
- s6e8ax0_write(lcd, SEQ_APPLY_LEVEL_4_KEY, \
- ARRAY_SIZE(SEQ_APPLY_LEVEL_4_KEY));
- s6e8ax0_write(lcd, SEQ_GAMMA_CONDITION_SET, \
- ARRAY_SIZE(SEQ_GAMMA_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_GAMMA_UPDATE,\
- ARRAY_SIZE(SEQ_GAMMA_UPDATE));
- s6e8ax0_write(lcd, SEQ_PANEL_CONDITION_SET, \
- ARRAY_SIZE(SEQ_PANEL_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_ETC_CONDITION_SET_2_0, \
- ARRAY_SIZE(SEQ_ETC_CONDITION_SET_2_0));
- s6e8ax0_write(lcd, SEQ_ETC_CONDITION_SET_2_1, \
- ARRAY_SIZE(SEQ_ETC_CONDITION_SET_2_1));
- s6e8ax0_write(lcd, SEQ_ETC_CONDITION_SET_2_2, \
- ARRAY_SIZE(SEQ_ETC_CONDITION_SET_2_2));
- s6e8ax0_write(lcd, SEQ_ETC_CONDITION_SET_2_3, \
- ARRAY_SIZE(SEQ_ETC_CONDITION_SET_2_3));
- s6e8ax0_write(lcd, SEQ_ETC_CONDITION_SET_2_4, \
- ARRAY_SIZE(SEQ_ETC_CONDITION_SET_2_4));
- s6e8ax0_write(lcd, SEQ_ETC_CONDITION_SET_2_5, \
- ARRAY_SIZE(SEQ_ETC_CONDITION_SET_2_5));
- s6e8ax0_write(lcd, SEQ_ETC_CONDITION_SET_2_6, \
- ARRAY_SIZE(SEQ_ETC_CONDITION_SET_2_6));
- s6e8ax0_write(lcd, SEQ_ETC_CONDITION_SET_2_7, \
- ARRAY_SIZE(SEQ_ETC_CONDITION_SET_2_7));
- s6e8ax0_write(lcd, SEQ_ETC_CONDITION_SET_2_8, \
- ARRAY_SIZE(SEQ_ETC_CONDITION_SET_2_8));
- s6e8ax0_write(lcd, SEQ_ETC_CONDITION_SET_2_9, \
- ARRAY_SIZE(SEQ_ETC_CONDITION_SET_2_9));
- s6e8ax0_write(lcd, SEQ_ETC_CONDITION_SET_2_10, \
- ARRAY_SIZE(SEQ_ETC_CONDITION_SET_2_10));
- s6e8ax0_write(lcd, SEQ_SLEEP_OUT, \
- ARRAY_SIZE(SEQ_SLEEP_OUT));
- mdelay(120);
- s6e8ax0_write(lcd, SEQ_MEMORY_WINDOW_SET_1_0, \
- ARRAY_SIZE(SEQ_MEMORY_WINDOW_SET_1_0));
- s6e8ax0_write(lcd, SEQ_MEMORY_WINDOW_SET_1_1, \
- ARRAY_SIZE(SEQ_MEMORY_WINDOW_SET_1_1));
- mdelay(1);
- s6e8ax0_write(lcd, SEQ_MEMORY_WINDOW_SET_2_1, \
- ARRAY_SIZE(SEQ_MEMORY_WINDOW_SET_2_1));
- s6e8ax0_write(lcd, SEQ_MEMORY_WINDOW_SET_2_2, \
- ARRAY_SIZE(SEQ_MEMORY_WINDOW_SET_2_2));
- s6e8ax0_write(lcd, SEQ_MEMORY_WINDOW_SET_2_3, \
- ARRAY_SIZE(SEQ_MEMORY_WINDOW_SET_2_3));
- s6e8ax0_write(lcd, SEQ_MEMORY_WINDOW_SET_2_4, \
- ARRAY_SIZE(SEQ_MEMORY_WINDOW_SET_2_4));
- return ret;
-}
-
-static int s6e8ax0_ldi_enable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPLAY_ON, ARRAY_SIZE(SEQ_DISPLAY_ON));
-
- return ret;
-}
-
-static int s6e8ax0_ldi_disable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPLAY_OFF, ARRAY_SIZE(SEQ_DISPLAY_OFF));
- s6e8ax0_write(lcd, SEQ_STANDBY_ON, ARRAY_SIZE(SEQ_STANDBY_ON));
-
- return ret;
-}
-
-static int s6e8ax0_power_on(struct lcd_info *lcd)
-{
- int ret = 0;
- struct lcd_platform_data *pd = NULL;
- pd = lcd->lcd_pd;
-
- /* dev_info(&lcd->ld->dev, "%s\n", __func__); */
-
- ret = s6e8ax0_ldi_init(lcd);
-
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to initialize ldi.\n");
- goto err;
- }
-
- msleep(120);
-
- ret = s6e8ax0_ldi_enable(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to enable ldi.\n");
- goto err;
- }
-
-#ifdef SMART_DIMMING
- lcd->ldi_enable = 1;
-
- s6e8ax0_adb_brightness_update(lcd, lcd->bd->props.brightness, 1);
-#else
- update_brightness(lcd);
-
- lcd->ldi_enable = 1;
-#endif
-
-err:
- return ret;
-}
-
-static int s6e8ax0_power_off(struct lcd_info *lcd)
-{
- int ret = 0;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- lcd->ldi_enable = 0;
-
- ret = s6e8ax0_ldi_disable(lcd);
-
- msleep(120);
-
- return ret;
-}
-
-static int s6e8ax0_power(struct lcd_info *lcd, int power)
-{
- int ret = 0;
-
- if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_on(lcd);
- else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_off(lcd);
-
- if (!ret)
- lcd->power = power;
-
- return ret;
-}
-
-static int s6e8ax0_set_power(struct lcd_device *ld, int power)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
- power != FB_BLANK_NORMAL) {
- dev_err(&lcd->ld->dev, "power value should be 0, 1 or 4.\n");
- return -EINVAL;
- }
-
- return s6e8ax0_power(lcd, power);
-}
-
-static int s6e8ax0_get_power(struct lcd_device *ld)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- return lcd->power;
-}
-
-#ifdef SMART_DIMMING
-static int s6e8ax0_set_brightness(struct backlight_device *bd)
-{
- int ret = 0;
- u32 brightness = (u32)bd->props.brightness;
-
- struct lcd_info *lcd = bl_get_data(bd);
-
- if (brightness < MIN_BRIGHTNESS ||
- brightness > bd->props.max_brightness) {
- dev_err(&bd->dev, "lcd brightness should be %d to %d. now %d\n",
- MIN_BRIGHTNESS, MAX_BRIGHTNESS, brightness);
- return -EINVAL;
- }
-
- /* dev_info(&lcd->ld->dev, "[%s] brightness=%d\n", __func__, brightness); */
-
- ret = s6e8ax0_adb_brightness_update(lcd, brightness, 0);
-
- return ret;
-}
-#else
-static int s6e8ax0_set_brightness(struct backlight_device *bd)
-{
- int ret = 0;
- int brightness = bd->props.brightness;
- struct lcd_info *lcd = bl_get_data(bd);
-
- /* dev_info(&lcd->ld->dev, "[%s] brightness=%d\n", __func__, brightness); */
-
- if (brightness < MIN_BRIGHTNESS ||
- brightness > bd->props.max_brightness) {
- dev_err(&bd->dev, "lcd brightness should be %d to %d. now %d\n",
- MIN_BRIGHTNESS, MAX_BRIGHTNESS, brightness);
- return -EINVAL;
- }
-
- lcd->bl = get_backlight_level_from_brightness(brightness);
-
- if ((lcd->ldi_enable) && (lcd->current_bl != lcd->bl)) {
- ret = update_brightness(lcd);
- dev_info(&lcd->ld->dev, "brightness=%d, bl=%d\n",\
- bd->props.brightness, lcd->bl);
- if (ret < 0) {
- dev_err(lcd->dev, "err in %s\n", __func__);
- return -EINVAL;
- }
- }
-
- return ret;
-}
-#endif
-
-static int s6e8ax0_get_brightness(struct backlight_device *bd)
-{
- return bd->props.brightness;
-}
-
-static struct lcd_ops s6e8ax0_lcd_ops = {
- .set_power = s6e8ax0_set_power,
- .get_power = s6e8ax0_get_power,
-};
-
-static const struct backlight_ops s6e8ax0_backlight_ops = {
- .get_brightness = s6e8ax0_get_brightness,
- .update_status = s6e8ax0_set_brightness,
-};
-
-static ssize_t lcd_type_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- char temp[15];
- sprintf(temp, "SMD_AMS465GS0x\n");
- strcat(buf, temp);
- return strlen(buf);
-}
-
-static DEVICE_ATTR(lcd_type, 0444, lcd_type_show, NULL);
-
-static ssize_t power_reduce_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->acl_enable);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-static ssize_t power_reduce_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
-
- if (lcd->acl_enable != value) {
- dev_info(dev, "%s - %d, %d\n", __func__, \
- lcd->acl_enable, value);
- lcd->acl_enable = value;
- if (lcd->ldi_enable)
- s6e8ax0_set_acl(lcd);
- }
- return size;
-}
-
-static DEVICE_ATTR(power_reduce, 0664, power_reduce_show, power_reduce_store);
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-struct lcd_info *g_lcd;
-
-void s6e8ax0_early_suspend(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-
-void s6e8ax0_late_resume(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- s6e8ax0_power(lcd, FB_BLANK_UNBLANK);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-#endif
-
-static void s6e8ax0_read_id(struct lcd_info *lcd, u8 *buf)
-{
- int ret = 0;
- u8 retry_cnt = 3;
-
-read_retry:
- ret = s6e8ax0_read(lcd, LDI_ID_REG, LDI_ID_LEN, buf);
- if (!ret) {
- if (retry_cnt) {
- printk(KERN_WARNING "[WARN:LCD] : %s : retry cnt : %d\n",\
- __func__, retry_cnt);
- retry_cnt--;
- goto read_retry;
- } else {
- printk(KERN_ERR "[ERROR:LCD] : %s : Read ID Failed\n", __func__);
- lcd->connected = 0;
- dev_info(&lcd->ld->dev, "panel is not connected well\n");
- }
- }
-}
-
-#ifdef SMART_DIMMING
-static void s6e8aa0_check_id(struct lcd_info *lcd, u8 *idbuf)
-{
- int i;
-
- for (i = 0; i < LDI_ID_LEN; i++)
- lcd->smart.panelid[i] = idbuf[i];
-
- lcd->aid = lcd->smart.panelid[2] & 0xe0 >> 5;
-
- if (idbuf[0] == PANEL_A1_SM2) {
- lcd->support_elvss = 1;
- lcd->aid = lcd->smart.panelid[2] & 0xe0 >> 5;
- lcd->elvss.reference = lcd->smart.panelid[2];
-
- printk(KERN_DEBUG "Dynamic ELVSS Information\n");
- printk(KERN_DEBUG "Refrence : %02x , manual_version = %02x, lcd->aid= %02x\n", lcd->elvss.reference, lcd->manual_version, lcd->aid);
- } else if ((idbuf[0] == PANEL_A1_M3) || (idbuf[0] == PANEL_A2_M3)) {
- lcd->support_elvss = 0;
- printk(KERN_DEBUG "ID-3 is 0xff does not support dynamic elvss\n");
- } else {
- lcd->support_elvss = 0;
- printk(KERN_DEBUG "No valid panel id\n");
- }
-}
-#endif
-
-static int s6e8ax0_probe(struct device *dev)
-{
- int ret = 0;
- struct lcd_info *lcd;
-#ifdef SMART_DIMMING
- u8 mtp_data[LDI_MTP_LENGTH] = {0,};
-#endif
- u8 idbuf[LDI_ID_LEN] = {0,};
-
- lcd = kzalloc(sizeof(struct lcd_info), GFP_KERNEL);
- if (!lcd) {
- pr_err("failed to allocate for lcd\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- g_lcd = lcd;
-
- lcd->ld = lcd_device_register("panel", dev, \
- lcd, &s6e8ax0_lcd_ops);
- if (IS_ERR(lcd->ld)) {
- pr_err("failed to register lcd device\n");
- ret = PTR_ERR(lcd->ld);
- goto out_free_lcd;
- }
-
- lcd->bd = backlight_device_register("panel", \
- dev, lcd, &s6e8ax0_backlight_ops, NULL);
- if (IS_ERR(lcd->bd)) {
- pr_err("failed to register backlight device\n");
- ret = PTR_ERR(lcd->bd);
- goto out_free_backlight;
- }
-
- lcd->dev = dev;
- lcd->dsim = (struct dsim_global *)dev_get_drvdata(dev->parent);
- lcd->bd->props.max_brightness = MAX_BRIGHTNESS;
- lcd->bd->props.brightness = DEFAULT_BRIGHTNESS;
- lcd->bl = DEFAULT_GAMMA_LEVEL;
- lcd->current_bl = lcd->bl;
-
- lcd->acl_enable = 0;
- lcd->cur_acl = 0;
-
- lcd->power = FB_BLANK_UNBLANK;
- lcd->ldi_enable = 1;
- lcd->connected = 1;
-
- ret = device_create_file(&lcd->ld->dev, \
- &dev_attr_power_reduce);
- if (ret < 0)
- dev_err(&lcd->ld->dev, \
- "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_lcd_type);
- if (ret < 0)
- dev_err(&lcd->ld->dev, \
- "failed to add sysfs entries, %d\n", __LINE__);
-
- dev_set_drvdata(dev, lcd);
-
-#if 0
-#ifdef CONFIG_HAS_EARLYSUSPEND
- lcd->early_suspend.suspend = s6e8ax0_early_suspend;
- lcd->early_suspend.resume = s6e8ax0_late_resume;
- lcd->early_suspend.level = EARLY_SUSPEND_LEVEL_DISABLE_FB - 2;
- register_early_suspend(&lcd->early_suspend);
-#endif
-#endif
-
- mutex_init(&lcd->lock);
-
- s6e8ax0_read_id(lcd, idbuf);
-
- dev_info(&lcd->ld->dev, "ID : %x, %x, %x\n", idbuf[0], idbuf[1], idbuf[2]);
-
- dev_info(&lcd->ld->dev, \
- "s6e8ax0 lcd panel driver has been probed.\n");
-
-#ifdef SMART_DIMMING
- s6e8aa0_check_id(lcd, idbuf);
-
- init_table_info(&lcd->smart);
-
- ret = s6e8ax0_read_mtp(lcd, mtp_data);
- if (!ret) {
- printk(KERN_ERR "[LCD:ERROR] : %s read mtp failed\n", __func__);
- /*return -EPERM;*/
- }
-
- calc_voltage_table(&lcd->smart, mtp_data);
-
- mutex_init(&lcd->bl_lock);
-
- s6e8ax0_adb_brightness_update(lcd, lcd->bd->props.brightness, 1);
-#endif
-
- return 0;
-
-out_free_backlight:
- lcd_device_unregister(lcd->ld);
- kfree(lcd);
- return ret;
-
-out_free_lcd:
- kfree(lcd);
- return ret;
-
-err_alloc:
- return ret;
-}
-
-static int __devexit s6e8ax0_remove(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- lcd_device_unregister(lcd->ld);
- backlight_device_unregister(lcd->bd);
- kfree(lcd);
-
- return 0;
-}
-
-/* Power down all displays on reboot, poweroff or halt. */
-static void s6e8ax0_shutdown(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
-}
-
-static struct mipi_lcd_driver s6e8ax0_mipi_driver = {
- .name = "s6e8aa0",
- .probe = s6e8ax0_probe,
- .remove = __devexit_p(s6e8ax0_remove),
- .shutdown = s6e8ax0_shutdown,
-};
-
-static int s6e8ax0_init(void)
-{
- return s5p_dsim_register_lcd_driver(&s6e8ax0_mipi_driver);
-}
-
-static void s6e8ax0_exit(void)
-{
- return;
-}
-
-module_init(s6e8ax0_init);
-module_exit(s6e8ax0_exit);
-
-MODULE_DESCRIPTION("MIPI-DSI S6E8AA0:AMS529HA01 (800x1280) Panel Driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/s3cfb_s6e63m0.c b/drivers/video/samsung_duallcd/s3cfb_s6e63m0.c
deleted file mode 100644
index 01be7b1..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_s6e63m0.c
+++ /dev/null
@@ -1,1205 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_s6e63m0.c
- *
- * MIPI-DSI based AMS367GEXX AMOLED lcd panel driver.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/workqueue.h>
-#include <linux/backlight.h>
-#include <linux/lcd.h>
-#include <plat/gpio-cfg.h>
-#include <plat/regs-dsim.h>
-#include <mach/dsim.h>
-#include <mach/mipi_ddi.h>
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#include "s5p-dsim.h"
-#include "s3cfb.h"
-#include "s6e63m0_gamma_l.h"
-
-#include "s6e63m0_gamma_grande.h"
-#define SMART_DIMMING
-
-#ifdef SMART_DIMMING
-#include "smart_mtp_s6e63m0.h"
-#endif
-
-#define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL)
-
-#define MIN_BRIGHTNESS 0
-#define MAX_BRIGHTNESS 255
-#define MAX_GAMMA 300
-#define DEFAULT_BRIGHTNESS 160
-#define DEFAULT_GAMMA_LEVEL GAMMA_160CD
-
-#define LDI_ID_REG 0xDA
-#define LDI_ID_LEN 3
-
-#ifdef SMART_DIMMING
-#define PANEL_A1_SM2 0xA1
-
-#define LDI_MTP_LENGTH 24
-#define LDI_MTP_ADDR 0xD3
-
-#define DYNAMIC_ELVSS_MIN_VALUE 0x81
-#define DYNAMIC_ELVSS_MAX_VALUE 0x9F
-
-#define ELVSS_MODE0_MIN_VOLTAGE 62
-#define ELVSS_MODE1_MIN_VOLTAGE 52
-
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
-#define NR_S6E63M0_PANEL (2)
-#else /* CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD */
-#define NR_S6E63M0_PANEL (1)
-#endif /* CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD */
-
-struct str_elvss {
- u8 reference;
- u8 limit;
-};
-#endif
-
-struct lcd_info *g_lcd;
-
-struct lcd_info {
- unsigned int bl;
- unsigned int auto_brightness;
- unsigned int acl_enable;
- unsigned int cur_acl;
- unsigned int current_bl;
- unsigned int current_elvss;
-
- unsigned int ldi_enable;
- unsigned int power;
- struct mutex lock;
- struct mutex bl_lock;
-
- struct device *dev;
- struct lcd_device *ld;
- struct backlight_device *bd;
- struct lcd_platform_data *lcd_pd;
- struct early_suspend early_suspend;
-
- unsigned char id[LDI_ID_LEN];
-
- unsigned char **gamma_table[NR_S6E63M0_PANEL];
- unsigned char **elvss_table[NR_S6E63M0_PANEL];
-
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
- unsigned int detected[NR_S6E63M0_PANEL];
- unsigned int panel_select;
-#endif /* CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD */
-
-#ifdef SMART_DIMMING
- unsigned int support_elvss;
-
- struct SMART_DIM smart;
- struct str_elvss elvss;
-#endif
- unsigned int irq;
- unsigned int connected;
-
- struct dsim_global *dsim;
-};
-
-static const unsigned int candela_table[GAMMA_MAX] = {
- 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,
- 130, 140, 150, 160, 170, 180, 190, 200, 210, 220,
- 230, 240, 250, MAX_GAMMA
-};
-
-/* Added for DUAL LCD work*/
-static int s6e63m0_read_mtp(struct lcd_info *lcd);
-#ifdef SMART_DIMMING_DEBUG_LCD
-static int print_mtp_value(struct lcd_info *lcd);
-#endif
-static int s6e63m0_read_id(struct lcd_info *lcd, u8 *buf);
-static int s6e63m0_dual_panel_detect(struct lcd_info *lcd);
-/* Added for DUAL LCD work*/
-
-#if defined(GPIO_OLED_DET)
-struct delayed_work hs_clk_re_try;
-unsigned int count_dsim;
-
-static void hs_clk_re_try_work(struct work_struct *work)
-{
- int read_oled_det;
-
- read_oled_det = gpio_get_value(GPIO_OLED_DET);
- printk(KERN_INFO "%s, %d, %d\n", __func__,
- count_dsim, read_oled_det);
- if (read_oled_det == 1) {
- if (count_dsim < 10) {
- schedule_delayed_work(&hs_clk_re_try, HZ/8);
- count_dsim++;
- set_dsim_hs_clk_toggle_count(15);
- } else
- set_dsim_hs_clk_toggle_count(0);
- } else
- set_dsim_hs_clk_toggle_count(0);
-}
-
-static irqreturn_t oled_det_int(int irq, void *dev_id)
-{
- pr_info("[DSIM] %s\n", __func__);
- schedule_delayed_work(&hs_clk_re_try, HZ/16);
- count_dsim = 0;
- return IRQ_HANDLED;
-}
-#endif
-
-static int s6e63m0_write(struct lcd_info *lcd,
- const unsigned char *seq, int len)
-{
- int size;
- const unsigned char *wbuf;
-
- if (!lcd->connected)
- return 0;
- mutex_lock(&lcd->lock);
-
- size = len;
- wbuf = seq;
- if (size == 1)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_NO_PARA, wbuf[0], 0);
- else if (size == 2)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_1_PARA, wbuf[0], wbuf[1]);
- else
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_LONG_WR, (unsigned int)wbuf, size);
- mutex_unlock(&lcd->lock);
-
- return 0;
-}
-
-static int _s6e63m0_read(struct lcd_info *lcd, const u8 addr,
- u16 count, u8 *buf)
-{
- int ret = 0;
-
- if (!lcd->connected)
- return ret;
-
- mutex_lock(&lcd->lock);
- if (lcd->dsim->ops->cmd_read)
- ret = lcd->dsim->ops->cmd_read(lcd->dsim, addr, count, buf);
- mutex_unlock(&lcd->lock);
-
- return ret;
-}
-
-static int s6e63m0_read(struct lcd_info *lcd, const u8 addr,
- u16 count, u8 *buf, u8 retry_cnt)
-{
- int ret = 0;
-read_retry:
- ret = _s6e63m0_read(lcd, addr, count, buf);
- if (!ret) {
- if (retry_cnt) {
- pr_info("[WARN:LCD] %s : retry cnt : %d\n",
- __func__, retry_cnt);
- retry_cnt--;
- goto read_retry;
- } else
- pr_info("[ERROR:LCD] %s : 0x%02x read failed\n",
- __func__, addr);
- }
- return ret;
-}
-
-static int get_backlight_level_from_brightness(int brightness)
-{
- int backlightlevel;
-
- /* brightness setting from platform is from 0 to 255
- * But in this driver, brightness is
- only supported from 0 to 24 */
-
- switch (brightness) {
- case 0 ... 29:
- backlightlevel = GAMMA_30CD;
- break;
- case 30 ... 254:
- backlightlevel = (brightness - candela_table[0]) / 10;
- break;
- case 255:
- backlightlevel = ARRAY_SIZE(candela_table) - 1;
- break;
- default:
- backlightlevel = DEFAULT_GAMMA_LEVEL;
- break;
- }
- return backlightlevel;
-}
-
-static int s6e63m0_gamma_ctl(struct lcd_info *lcd)
-{
-#ifdef SMART_DIMMING_DEBUG_LCD
- int j;
-#endif
- s6e63m0_write(lcd, lcd->gamma_table[lcd->panel_select][lcd->bl],
- GAMMA_PARAM_SIZE);
-
- s6e63m0_write(lcd, SEQ_GAMMA_UPDATE,
- ARRAY_SIZE(SEQ_GAMMA_UPDATE));
-#ifdef SMART_DIMMING_DEBUG_LCD
- pr_info("panel_select = %d bl = %d\n", lcd->panel_select, lcd->bl);
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- pr_info("0x%02x, ",
- lcd->gamma_table[lcd->panel_select][lcd->bl][j]);
-#endif
- return 0;
-}
-
-static int s6e63m0_set_acl(struct lcd_info *lcd)
-{
- if (lcd->acl_enable) {
- if (lcd->cur_acl == 0) {
- if (lcd->bl == 0 || lcd->bl == 1) {
- s6e63m0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n",
- __func__, lcd->cur_acl);
- } else {
- s6e63m0_write(lcd, SEQ_ACL_ON, ARRAY_SIZE(SEQ_ACL_ON));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_on\n",
- __func__, lcd->cur_acl);
- }
- }
- switch (lcd->bl) {
- case GAMMA_30CD ... GAMMA_40CD:
- s6e63m0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n",
- __func__, lcd->cur_acl);
- break;
- case GAMMA_50CD ... GAMMA_160CD:
- s6e63m0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_40P], ACL_PARAM_SIZE);
- lcd->cur_acl = 40;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n",
- __func__, lcd->cur_acl);
- break;
- case GAMMA_170CD ... GAMMA_220CD:
- s6e63m0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_48P], ACL_PARAM_SIZE);
- lcd->cur_acl = 48;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n",
- __func__, lcd->cur_acl);
- break;
- case GAMMA_230CD ... GAMMA_300CD:
- s6e63m0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_50P], ACL_PARAM_SIZE);
- lcd->cur_acl = 50;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n",
- __func__, lcd->cur_acl);
- break;
- default:
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- break;
- }
- } else {
- s6e63m0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n",
- __func__, lcd->cur_acl);
- }
- return 0;
-}
-
-#ifdef SMART_DIMMING
-static int s6e63m0_set_elvss(struct lcd_info *lcd)
-{
- int ret = 0, elvss_level = 0;
- u32 candela = candela_table[lcd->bl];
-
- switch (candela) {
- case 0 ... 100:
- elvss_level = ELVSS_MIN;
- break;
- case 101 ... 160:
- elvss_level = ELVSS_1;
- break;
- case 161 ... 200:
- elvss_level = ELVSS_2;
- break;
- case 201 ... 300:
- elvss_level = ELVSS_MAX;
- break;
- default:
- break;
- }
- if (lcd->current_elvss != lcd->elvss_table[lcd->panel_select][elvss_level][1]) {
- ret = s6e63m0_write(lcd, lcd->elvss_table[lcd->panel_select][elvss_level],
- ELVSS_PARAM_SIZE);
- lcd->current_elvss = lcd->elvss_table[lcd->panel_select][elvss_level][1];
- }
- dev_dbg(&lcd->ld->dev, "elvss = %x\n",
- lcd->elvss_table[lcd->panel_select][elvss_level][1]);
- if (ret) {
- ret = -EPERM;
- goto elvss_err;
- }
-
-elvss_err:
- return ret;
-}
-#endif
-static u8 get_elvss_value(struct lcd_info *lcd, u8 elvss_level)
-{
- u8 alph[ELVSS_STATUS_MAX] = {0xb, 0x8, 0x6, 0x0};
- u8 data = 0;
- u8 value = 0;
-
- value = lcd->id[2];
- data = value + alph[elvss_level];
- if (data > 0x29)
- data = 0x29;
-
- return data;
-}
-
-static int alloc_elvss_table(struct lcd_info *lcd)
-{
- int i, k, ret = 0;
- for (k = 0; k < NR_S6E63M0_PANEL; k++) {
- lcd->elvss_table[k]
- = kzalloc(ELVSS_STATUS_MAX * sizeof(u8 *), GFP_KERNEL);
-
- if (IS_ERR_OR_NULL(lcd->elvss_table[k])) {
- pr_err("failed to allocate elvss table\n");
- ret = -ENOMEM;
- goto err_alloc_elvss_table;
- }
-
- for (i = 0; i < ELVSS_STATUS_MAX; i++) {
- lcd->elvss_table[k][i]
- = kzalloc(ELVSS_PARAM_SIZE * sizeof(u8),
- GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->elvss_table[k][i])) {
- pr_err("failed to allocate elvss\n");
- ret = -ENOMEM;
- goto err_alloc_elvss;
- }
- }
- }
- return 0;
-
-err_alloc_elvss:
- while (i > 0) {
- kfree(lcd->elvss_table[i-1]);
- i--;
- }
- kfree(lcd->elvss_table);
-err_alloc_elvss_table:
- return ret;
-}
-
-static int init_elvss_table(struct lcd_info *lcd)
-{
- int i, j;
- for (i = 0; i < ELVSS_STATUS_MAX; i++) {
- lcd->elvss_table[lcd->panel_select][i][0] = 0xB2;
- for (j = 1; j < ELVSS_PARAM_SIZE; j++)
- lcd->elvss_table[lcd->panel_select][i][j]
- = get_elvss_value(lcd, i);
- }
-#ifdef SMART_DIMMING_DEBUG_LCD
- pr_info("ELVSS_TABLE [%2d]\n", lcd->panel_select);
- for (i = 0; i < ELVSS_STATUS_MAX; i++) {
- for (j = 0; j < ELVSS_PARAM_SIZE; j++)
- pr_info("0x%02x, ",
- lcd->elvss_table[lcd->panel_select][i][j]);
- pr_info("\n");
- }
-#endif
- return 0;
-}
-
-static int alloc_gamma_table(struct lcd_info *lcd)
-{
- int i, k, ret = 0;
- for (k = 0; k < NR_S6E63M0_PANEL; k++) {
- lcd->gamma_table[k] = kzalloc(GAMMA_MAX * sizeof(u8 *),
- GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->gamma_table[k])) {
- pr_err("failed to allocate gamma table\n");
- ret = -ENOMEM;
- goto err_alloc_gamma_table;
- }
-
- for (i = 0; i < GAMMA_MAX; i++) {
- lcd->gamma_table[k][i]
- = kzalloc(GAMMA_PARAM_SIZE * sizeof(u8),
- GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->gamma_table[k][i])) {
- pr_err("failed to allocate gamma\n");
- ret = -ENOMEM;
- goto err_alloc_gamma;
- }
- }
- }
- return 0;
-
-err_alloc_gamma:
- while (i > 0) {
- kfree(lcd->gamma_table[i-1]);
- i--;
- }
- kfree(lcd->gamma_table);
-err_alloc_gamma_table:
- return ret;
-}
-
-static int init_gamma_table(struct lcd_info *lcd)
-{
- int i, j;
- char gen_gamma[GAMMA_PARAM_SIZE] = {0,};
-
- for (i = 0; i < GAMMA_MAX; i++) {
- lcd->gamma_table[lcd->panel_select][i][0] = 0xFA;
- lcd->gamma_table[lcd->panel_select][i][1] = 0x02;
-
- lcd->smart.brightness_level = candela_table[i];
- generate_gamma(&(lcd->smart), gen_gamma, GAMMA_PARAM_SIZE);
- for (j = 2; j < GAMMA_PARAM_SIZE; j++)
- lcd->gamma_table[lcd->panel_select][i][j] = gen_gamma[j - 2];
- }
-#ifdef SMART_DIMMING_DEBUG_LCD
- pr_info("GAMMA_TABLE[%2d]\n", lcd->panel_select);
- for (i = 0; i < GAMMA_MAX; i++) {
- pr_info("%3d : ", i);
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- pr_info("0x%02x, ",
- lcd->gamma_table[lcd->panel_select][i][j]);
- pr_info("\n");
- }
-#endif
- return 0;
-}
-
-static int update_brightness(struct lcd_info *lcd, u8 force)
-{
- int ret;
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
- int sel;
-#endif /* CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD */
- u32 brightness;
-
- mutex_lock(&lcd->bl_lock);
-
- brightness = lcd->bd->props.brightness;
-
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
- sel = s5p_dsim_get_panel_sel_value();
- lcd->panel_select = sel;
-#endif /* CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD */
-
- if (unlikely(!lcd->auto_brightness && brightness > 250))
- brightness = 250;
-
- lcd->bl = get_backlight_level_from_brightness(brightness);
-
- if ((force) || ((lcd->ldi_enable) &&
- (lcd->current_bl != lcd->bl))) {
-
- ret = s6e63m0_set_elvss(lcd);
- ret = s6e63m0_set_acl(lcd);
- ret = s6e63m0_gamma_ctl(lcd);
-
- lcd->current_bl = lcd->bl;
- dev_info(&lcd->ld->dev,
- "panel = %d brightness=%d, bl=%d, candela=%d\n",
- lcd->panel_select, brightness,
- lcd->bl, candela_table[lcd->bl]);
- }
-
- mutex_unlock(&lcd->bl_lock);
-
- return 0;
-}
-
-static int s6e63m0_mtp_read_cmds(struct lcd_info *lcd)
-{
- s6e63m0_write(lcd, SEQ_PREPARE_MTP_READ1,
- ARRAY_SIZE(SEQ_PREPARE_MTP_READ1));
- s6e63m0_write(lcd, SEQ_PREPARE_MTP_READ2,
- ARRAY_SIZE(SEQ_PREPARE_MTP_READ2));
- s6e63m0_write(lcd, SEQ_SLEEP_OUT,
- ARRAY_SIZE(SEQ_SLEEP_OUT));
- mdelay(120);
- s6e63m0_write(lcd, SEQ_CONTENTION_ERROR_REMOVE,
- ARRAY_SIZE(SEQ_CONTENTION_ERROR_REMOVE));
- return 0;
-}
-
-static int s6e63m0_ldi_init(struct lcd_info *lcd)
-{
- int ret = 0;
-
- mdelay(25); /* 25ms */
- s6e63m0_write(lcd, SEQ_SW_RESET,
- ARRAY_SIZE(SEQ_SW_RESET)); /* SW Reset */
- mdelay(5); /* Wait 5ms more */
- s6e63m0_write(lcd, SEQ_APPLY_LEVEL2_KEY_ENABLE,
- ARRAY_SIZE(SEQ_APPLY_LEVEL2_KEY_ENABLE));
- s6e63m0_write(lcd, SEQ_APPLY_MTP_KEY_ENABLE,
- ARRAY_SIZE(SEQ_APPLY_MTP_KEY_ENABLE));
- s6e63m0_write(lcd, SEQ_SLEEP_OUT,
- ARRAY_SIZE(SEQ_SLEEP_OUT));
- mdelay(10); /* 10ms */
- s6e63m0_write(lcd, SEQ_PANEL_CONDITION_SET,
- ARRAY_SIZE(SEQ_PANEL_CONDITION_SET));
- s6e63m0_write(lcd, SEQ_DISPLAY_CONDITION_SET1,
- ARRAY_SIZE(SEQ_DISPLAY_CONDITION_SET1));
- s6e63m0_write(lcd, SEQ_DISPLAY_CONDITION_SET2,
- ARRAY_SIZE(SEQ_DISPLAY_CONDITION_SET2));
- s6e63m0_write(lcd, lcd->gamma_table[lcd->panel_select][lcd->bl],
- GAMMA_PARAM_SIZE);
- s6e63m0_write(lcd, SEQ_GAMMA_UPDATE,
- ARRAY_SIZE(SEQ_GAMMA_UPDATE));
- s6e63m0_write(lcd, SEQ_ETC_SOURCE_CONTROL,
- ARRAY_SIZE(SEQ_ETC_SOURCE_CONTROL));
- s6e63m0_write(lcd, SEQ_ETC_CONTROL_B3h,
- ARRAY_SIZE(SEQ_ETC_CONTROL_B3h));
- s6e63m0_write(lcd, SEQ_ELVSS_SET, ARRAY_SIZE(SEQ_ELVSS_SET));
- s6e63m0_write(lcd, SEQ_ELVSS_ON, ARRAY_SIZE(SEQ_ELVSS_ON));
- return ret;
-}
-
-static int s6e63m0_ldi_enable(struct lcd_info *lcd)
-{
- int ret = 0;
- s6e63m0_write(lcd, SEQ_DISPLAY_ON, ARRAY_SIZE(SEQ_DISPLAY_ON));
- return ret;
-}
-
-static int s6e63m0_ldi_disable(struct lcd_info *lcd)
-{
- int ret = 0;
- s6e63m0_write(lcd, SEQ_DISPLAY_OFF,
- ARRAY_SIZE(SEQ_DISPLAY_OFF));
- s6e63m0_write(lcd, SEQ_STANDBY_ON,
- ARRAY_SIZE(SEQ_STANDBY_ON));
- return ret;
-}
-
-static int s6e63m0_power_on(struct lcd_info *lcd)
-{
- int ret = 0;
- struct lcd_platform_data *pd = NULL;
- pd = lcd->lcd_pd;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- ret = s6e63m0_ldi_init(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to initialize ldi.\n");
- goto err;
- }
-
- msleep(120);
-
- ret = s6e63m0_ldi_enable(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to enable ldi.\n");
- goto err;
- }
- lcd->ldi_enable = 1;
-
-#if !defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
- update_brightness(lcd, 1);
-#endif
-err:
- return ret;
-}
-
-static int s6e63m0_power_off(struct lcd_info *lcd)
-{
- int ret = 0;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
- lcd->ldi_enable = 0;
- ret = s6e63m0_ldi_disable(lcd);
- msleep(135);
-
- return ret;
-}
-
-static int s6e63m0_power(struct lcd_info *lcd, int power)
-{
- int ret = 0;
-
- if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
- ret = s6e63m0_power_on(lcd);
- else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
- ret = s6e63m0_power_off(lcd);
- if (!ret)
- lcd->power = power;
-
- return ret;
-}
-
-static int s6e63m0_set_power(struct lcd_device *ld, int power)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
- power != FB_BLANK_NORMAL) {
- dev_err(&lcd->ld->dev, "power value should be 0, 1 or 4.\n");
- return -EINVAL;
- }
-
- return s6e63m0_power(lcd, power);
-}
-
-static int s6e63m0_get_power(struct lcd_device *ld)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- return lcd->power;
-}
-
-int s6e63m0_sleep_in(void)
-{
- struct lcd_info *lcd = g_lcd;
- int ret;
-
- ret = s6e63m0_ldi_disable(lcd);
- return ret;
-}
-
-static int s6e63m0_set_brightness(struct backlight_device *bd)
-{
- int ret = 0;
- int brightness = bd->props.brightness;
- struct lcd_info *lcd = bl_get_data(bd);
-
- /* dev_info(&lcd->ld->dev, "%s: brightness=%d\n",
- __func__, brightness); */
-
- if (brightness < MIN_BRIGHTNESS ||
- brightness > bd->props.max_brightness) {
- dev_err(&bd->dev, "lcd brightness should be %d to %d. now %d\n",
- MIN_BRIGHTNESS, MAX_BRIGHTNESS, brightness);
- return -EINVAL;
- }
-
- if (lcd->ldi_enable) {
- ret = update_brightness(lcd, 0);
- if (ret < 0) {
- dev_err(lcd->dev, "err in %s\n", __func__);
- return -EINVAL;
- }
- }
-
- return ret;
-}
-
-static int s6e63m0_get_brightness(struct backlight_device *bd)
-{
- struct lcd_info *lcd = bl_get_data(bd);
-
- return candela_table[lcd->bl];
-}
-
-static struct lcd_ops s6e63m0_lcd_ops = {
- .set_power = s6e63m0_set_power,
- .get_power = s6e63m0_get_power,
-};
-
-static const struct backlight_ops s6e63m0_backlight_ops = {
- .get_brightness = s6e63m0_get_brightness,
- .update_status = s6e63m0_set_brightness,
-};
-
-static ssize_t power_reduce_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->acl_enable);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t power_reduce_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0,
- (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->acl_enable != value) {
- dev_info(dev, "%s - %d, %d\n",
- __func__, lcd->acl_enable, value);
- mutex_lock(&lcd->bl_lock);
- lcd->acl_enable = value;
- if (lcd->ldi_enable)
- s6e63m0_set_acl(lcd);
- mutex_unlock(&lcd->bl_lock);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(power_reduce, 0664, power_reduce_show,
- power_reduce_store);
-
-static ssize_t lcd_type_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- char temp[20];
- sprintf(temp, "SMD_AMS397GEXX\n");
- strcat(buf, temp);
- return strlen(buf);
-}
-
-static DEVICE_ATTR(lcd_type, 0444, lcd_type_show, NULL);
-
-static ssize_t gamma_table_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int i, j, k;
-
- for (k = 0; k < NR_S6E63M0_PANEL ; k++) {
- for (i = 0; i < GAMMA_MAX; i++) {
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- pr_info("0x%02x, ", lcd->gamma_table[k][i][j]);
- pr_info("\n");
- }
-
- for (i = 0; i < ELVSS_STATUS_MAX; i++) {
- for (j = 0; j < ELVSS_PARAM_SIZE; j++)
- pr_info("0x%02x, ", lcd->elvss_table[k][i][j]);
- pr_info("\n");
- }
- }
-
- return strlen(buf);
-}
-static DEVICE_ATTR(gamma_table, 0444, gamma_table_show, NULL);
-
-static ssize_t auto_brightness_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->auto_brightness);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t auto_brightness_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->auto_brightness != value) {
- dev_info(dev, "%s - %d, %d\n",
- __func__,
- lcd->auto_brightness,
- value);
- mutex_lock(&lcd->bl_lock);
- lcd->auto_brightness = value;
- mutex_unlock(&lcd->bl_lock);
- if (lcd->ldi_enable)
- update_brightness(lcd, 0);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(auto_brightness, 0644, auto_brightness_show,
- auto_brightness_store);
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-struct lcd_info *g_lcd;
-
-void s6e63m0_early_suspend(void)
-{
- struct lcd_info *lcd = g_lcd;
- set_dsim_lcd_enabled(0);
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
-#if defined(GPIO_OLED_DET)
- disable_irq(lcd->irq);
- gpio_request(GPIO_OLED_DET, "OLED_DET");
- s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_OUTPUT);
- s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
- gpio_direction_output(GPIO_OLED_DET, GPIO_LEVEL_LOW);
- gpio_free(GPIO_OLED_DET);
-#endif
- s6e63m0_power(lcd, FB_BLANK_POWERDOWN);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
-static int s6e63m0_dual_panel_detect(struct lcd_info *lcd)
-{
- int ret = 0;
-
- /* Calculating Gamma table of outer LCD */
- lcd->panel_select = s5p_dsim_get_panel_sel_value();
- msleep(25);
- if (lcd->gamma_table[lcd->panel_select][0][0] == 0x00) {
- pr_info("GAMMA TABLE not found !! in panel %d\n",
- lcd->panel_select);
- ret = s6e63m0_read_id(lcd, lcd->id);
- if (lcd->id[0] != 0xFE) {
- lcd->detected[lcd->panel_select] = 0;
- goto dual_det_err;
- } else
- lcd->detected[lcd->panel_select] = 1;
- dev_info(&lcd->ld->dev, "ID: %x, %x, %x\n", lcd->id[0],
- lcd->id[1], lcd->id[2]);
- dev_info(&lcd->ld->dev, "s6e63m0 driver has been detected.\n");
- ret = s6e63m0_read_mtp(lcd);
- if (!ret) {
- pr_info("[LCD:ERROR] : %s read mtp failed\n",
- __func__);
- }
-#ifdef SMART_DIMMING_DEBUG_LCD
- ret += print_mtp_value(lcd);
-#endif
- ret += Smart_dimming_init(&(lcd->smart));
- if (lcd->support_elvss)
- ret = init_elvss_table(lcd);
- ret += init_gamma_table(lcd);
- if (ret) {
- lcd->gamma_table[lcd->panel_select]
- = (unsigned char **)s6e63m0_gamma22_table;
- lcd->elvss_table[lcd->panel_select]
- = (unsigned char **)ELVSS_TABLE;
- }
- }
- return 0;
-dual_det_err:
- pr_info("Outer LCD detectoin failed\n");
- ret = s5p_dsim_toggle_lcd();
- return 0;
-}
-#endif /* CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD */
-
-void s6e63m0_late_resume(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- s6e63m0_power(lcd, FB_BLANK_UNBLANK);
-#if defined(GPIO_OLED_DET)
- s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_SFN(0xf));
- s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
- enable_irq(lcd->irq);
-#endif
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- set_dsim_lcd_enabled(1);
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
- if (lcd->detected[lcd->panel_select] == 0)
- s6e63m0_dual_panel_detect(lcd);
- update_brightness(lcd, 1);
-#endif
- return ;
-}
-#endif
-
-static int s6e63m0_id_read_cmds(struct lcd_info *lcd)
-{
- s6e63m0_write(lcd, SEQ_PREPARE_ID_READ,
- ARRAY_SIZE(SEQ_PREPARE_ID_READ));
- return 0;
-}
-
-static int s6e63m0_read_id(struct lcd_info *lcd, u8 *buf)
-{
- int ret = 0;
-
- s6e63m0_id_read_cmds(lcd);
- /* ID1: Default value of panel */
- ret += s6e63m0_read(lcd, 0xDA, 1, buf, 3);
- /* ID2: Way to Cell working */
- ret += s6e63m0_read(lcd, 0xDB, 1, buf + 1, 3);
- /* Olny ID2 == C1 support */
- if (*(buf + 1) == 0xC1)
- ret += s6e63m0_read(lcd, 0xDC, 1, buf + 2, 3);
- else
- *(buf + 2) = 0x00;
- if (!ret) {
- lcd->connected = 0;
- dev_info(&lcd->ld->dev, "panel is not connected well\n");
- }
- return ret;
-}
-
-#ifdef SMART_DIMMING
-static int s6e63m0_read_mtp(struct lcd_info *lcd)
-{
- int ret;
- s6e63m0_mtp_read_cmds(lcd);
- ret = s6e63m0_read(lcd, LDI_MTP_ADDR,
- LDI_MTP_LENGTH, (u8 *)(&(lcd->smart.MTP)), 0);
- return ret;
-}
-
-static void s6e63m0_check_id(struct lcd_info *lcd, u8 *idbuf)
-{
- if (idbuf[0] == PANEL_A1_SM2)
- lcd->support_elvss = 0;
- else {
- lcd->support_elvss = 1;
- lcd->elvss.reference = idbuf[2] & (BIT(0) | BIT(1) |
- BIT(2) | BIT(3) | BIT(4));
- pr_info("Dynamic ELVSS Information, 0x%x\n",
- lcd->elvss.reference);
- }
-}
-
-#ifdef SMART_DIMMING_DEBUG_LCD
-static int print_mtp_value(struct lcd_info *lcd)
-{
- pr_info("0x%02x, ", lcd->smart.MTP.R_OFFSET.OFFSET_1);
- pr_info("0x%02x, ", lcd->smart.MTP.R_OFFSET.OFFSET_19);
- pr_info("0x%02x, ", lcd->smart.MTP.R_OFFSET.OFFSET_43);
- pr_info("0x%02x, ", lcd->smart.MTP.R_OFFSET.OFFSET_87);
- pr_info("0x%02x, ", lcd->smart.MTP.R_OFFSET.OFFSET_171);
- pr_info("0x%02x, ", lcd->smart.MTP.R_OFFSET.OFFSET_255_MSB);
- pr_info("0x%02x, ", lcd->smart.MTP.R_OFFSET.OFFSET_255_LSB);
- pr_info("0x%02x, ", lcd->smart.MTP.G_OFFSET.OFFSET_1);
- pr_info("0x%02x, ", lcd->smart.MTP.G_OFFSET.OFFSET_19);
- pr_info("0x%02x, ", lcd->smart.MTP.G_OFFSET.OFFSET_43);
- pr_info("0x%02x, ", lcd->smart.MTP.G_OFFSET.OFFSET_87);
- pr_info("0x%02x, ", lcd->smart.MTP.G_OFFSET.OFFSET_171);
- pr_info("0x%02x, ", lcd->smart.MTP.G_OFFSET.OFFSET_255_MSB);
- pr_info("0x%02x, ", lcd->smart.MTP.G_OFFSET.OFFSET_255_LSB);
- pr_info("0x%02x, ", lcd->smart.MTP.B_OFFSET.OFFSET_1);
- pr_info("0x%02x, ", lcd->smart.MTP.B_OFFSET.OFFSET_19);
- pr_info("0x%02x, ", lcd->smart.MTP.B_OFFSET.OFFSET_43);
- pr_info("0x%02x, ", lcd->smart.MTP.B_OFFSET.OFFSET_87);
- pr_info("0x%02x, ", lcd->smart.MTP.B_OFFSET.OFFSET_171);
- pr_info("0x%02x, ", lcd->smart.MTP.B_OFFSET.OFFSET_255_MSB);
- pr_info("0x%02x, ", lcd->smart.MTP.B_OFFSET.OFFSET_255_LSB);
- return 0;
-}
-#endif
-
-#endif
-
-static int s6e63m0_probe(struct device *dev)
-{
- int ret = 0;
- struct lcd_info *lcd;
-
- lcd = kzalloc(sizeof(struct lcd_info), GFP_KERNEL);
- if (!lcd) {
- pr_err("failed to allocate for lcd\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- g_lcd = lcd;
-
- lcd->ld = lcd_device_register("panel", dev, lcd, &s6e63m0_lcd_ops);
- if (IS_ERR(lcd->ld)) {
- pr_err("failed to register lcd device\n");
- ret = PTR_ERR(lcd->ld);
- goto out_free_lcd;
- }
-
- lcd->bd = backlight_device_register("panel", dev, lcd,
- &s6e63m0_backlight_ops, NULL);
- if (IS_ERR(lcd->bd)) {
- pr_err("failed to register backlight device\n");
- ret = PTR_ERR(lcd->bd);
- goto out_free_backlight;
- }
-
- lcd->dev = dev;
- lcd->dsim = (struct dsim_global *)dev_get_drvdata(dev->parent);
- lcd->bd->props.max_brightness = MAX_BRIGHTNESS;
- lcd->bd->props.brightness = DEFAULT_BRIGHTNESS;
- lcd->bl = DEFAULT_GAMMA_LEVEL;
- lcd->current_bl = lcd->bl;
-
- lcd->acl_enable = 0;
- lcd->cur_acl = 0;
-
- lcd->power = FB_BLANK_UNBLANK;
- lcd->ldi_enable = 1;
- lcd->connected = 1;
- lcd->auto_brightness = 0;
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_power_reduce);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n",
- __LINE__);
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_lcd_type);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n",
- __LINE__);
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_gamma_table);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n",
- __LINE__);
-
- ret = device_create_file(&lcd->bd->dev, &dev_attr_auto_brightness);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n",
- __LINE__);
-
- dev_set_drvdata(dev, lcd);
-
- mutex_init(&lcd->lock);
- mutex_init(&lcd->bl_lock);
- /* Start to reading DDI for Smart dimming */
- lcd->panel_select = s5p_dsim_get_panel_sel_value();
- lcd->detected[0] = 0;
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
- lcd->detected[1] = 0;
-#endif /* CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD */
- ret += s6e63m0_read_id(lcd, lcd->id);
- if (lcd->id[0] != 0xFE) {
- lcd->detected[lcd->panel_select] = 0;
- goto err_alloc;
-
- } else
- lcd->detected[lcd->panel_select] = 1;
-
- dev_info(&lcd->ld->dev, "ID: %x, %x, %x\n", lcd->id[0],
- lcd->id[1], lcd->id[2]);
- dev_info(&lcd->ld->dev, "s6e63m0 driver has been probed.\n");
-
-#ifdef SMART_DIMMING
- s6e63m0_check_id(lcd, lcd->id);
- ret = s6e63m0_read_mtp(lcd);
- if (!ret) {
- pr_info("[LCD:ERROR] : %s read mtp failed\n",
- __func__);
- }
-#ifdef SMART_DIMMING_DEBUG_LCD
- ret += print_mtp_value(lcd);
-#endif
- ret += Smart_dimming_init(&(lcd->smart));
- if (lcd->support_elvss) {
- ret = alloc_elvss_table(lcd);
- ret = init_elvss_table(lcd);
- }
-
- if (ret) {
- lcd->elvss_table[lcd->panel_select]
- = (unsigned char **)ELVSS_TABLE;
- }
- ret += alloc_gamma_table(lcd);
- ret += init_gamma_table(lcd);
- if (ret) {
- lcd->gamma_table[lcd->panel_select]
- = (unsigned char **)s6e63m0_gamma22_table;
- }
- /* End reading DDI for Smart dimming */
- update_brightness(lcd, 1);
-#endif
-
-#if defined(GPIO_OLED_DET)
- if (lcd->connected) {
- INIT_DELAYED_WORK(&hs_clk_re_try, hs_clk_re_try_work);
-
- lcd->irq = gpio_to_irq(GPIO_OLED_DET);
-
- s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_SFN(0xf));
- s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
- if (request_irq(lcd->irq, oled_det_int,
- IRQF_TRIGGER_RISING,
- "esd_detection", 0))
- pr_err("failed to reqeust irq. %d\n", lcd->irq);
- }
-#endif
- return 0;
-
-out_free_backlight:
- lcd_device_unregister(lcd->ld);
- kfree(lcd);
- return ret;
-
-out_free_lcd:
- kfree(lcd);
- return ret;
-
-err_alloc:
- return ret;
-}
-
-static int __devexit s6e63m0_remove(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- s6e63m0_power(lcd, FB_BLANK_POWERDOWN);
- lcd_device_unregister(lcd->ld);
- backlight_device_unregister(lcd->bd);
- kfree(lcd);
-
- return 0;
-}
-
-/* Power down all displays on reboot, poweroff or halt. */
-static void s6e63m0_shutdown(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- dev_info(&lcd->ld->dev, "%s\n", __func__);
- s6e63m0_power(lcd, FB_BLANK_POWERDOWN);
-}
-
-static struct mipi_lcd_driver s6e63m0_mipi_driver = {
- .name = "s6e63m0",
- .probe = s6e63m0_probe,
- .remove = __devexit_p(s6e63m0_remove),
- .shutdown = s6e63m0_shutdown,
-};
-
-static int s6e63m0_init(void)
-{
- return s5p_dsim_register_lcd_driver(&s6e63m0_mipi_driver);
-}
-
-static void s6e63m0_exit(void)
-{
- return;
-}
-
-module_init(s6e63m0_init);
-module_exit(s6e63m0_exit);
-
-MODULE_DESCRIPTION("MIPI-DSI S6E63M0:AMS367GEXX (480X800) Panel Driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/s3cfb_s6e8aa0.c b/drivers/video/samsung_duallcd/s3cfb_s6e8aa0.c
deleted file mode 100644
index fef2c6f..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_s6e8aa0.c
+++ /dev/null
@@ -1,1534 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_s6e8aa0.c
- *
- * MIPI-DSI based AMS529HA01 AMOLED lcd panel driver.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/workqueue.h>
-#include <linux/backlight.h>
-#include <linux/lcd.h>
-#include <plat/gpio-cfg.h>
-#include <plat/regs-dsim.h>
-#include <mach/dsim.h>
-#include <mach/mipi_ddi.h>
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#include "s5p-dsim.h"
-#include "s3cfb.h"
-#include "s6e8aa0_gamma_l.h"
-
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
-#include "s6e8aa0_gamma_q1.h"
-#define SMART_DIMMING
-#else
-#include "s6e8aa0_gamma_c1m0.h"
-#define SMART_DIMMING
-#endif
-
-#ifdef SMART_DIMMING
-#include "smart_dimming.h"
-#ifdef CONFIG_AID_DIMMING
-#include "aid_s6e8aa0.h"
-#endif
-#endif
-
-#define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL)
-
-#define MIN_BRIGHTNESS 0
-#define MAX_BRIGHTNESS 255
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
-#define MAX_GAMMA 290
-#define DEFAULT_BRIGHTNESS 150
-#define DEFAULT_GAMMA_LEVEL GAMMA_150CD
-#else
-#define MAX_GAMMA 300
-#define DEFAULT_BRIGHTNESS 160
-#define DEFAULT_GAMMA_LEVEL GAMMA_160CD
-#endif
-
-#define LDI_ID_REG 0xD1
-#define LDI_ID_LEN 3
-
-#ifdef SMART_DIMMING
-#define PANEL_A1_M3 0xA1
-
-#define LDI_MTP_LENGTH 24
-#define LDI_MTP_ADDR 0xD3
-
-#define DYNAMIC_ELVSS_MIN_VALUE 0x81
-#define DYNAMIC_ELVSS_MAX_VALUE 0x9F
-
-#define ELVSS_MODE0_MIN_VOLTAGE 62
-#define ELVSS_MODE1_MIN_VOLTAGE 52
-
-struct str_elvss {
- u8 reference;
- u8 limit;
-};
-#endif
-
-struct lcd_info {
- unsigned int bl;
- unsigned int auto_brightness;
- unsigned int acl_enable;
- unsigned int cur_acl;
- unsigned int current_bl;
- unsigned int current_elvss;
-
- unsigned int ldi_enable;
- unsigned int power;
- struct mutex lock;
- struct mutex bl_lock;
-
- struct device *dev;
- struct lcd_device *ld;
- struct backlight_device *bd;
- struct lcd_platform_data *lcd_pd;
- struct early_suspend early_suspend;
-
- unsigned char id[LDI_ID_LEN];
-
- unsigned char **gamma_table;
- unsigned char **elvss_table;
-
-#ifdef SMART_DIMMING
- unsigned int support_elvss;
-
- struct str_smart_dim smart;
- struct str_elvss elvss;
-#endif
-#ifdef CONFIG_AID_DIMMING
- unsigned int support_aid;
- unsigned char f8[GAMMA_MAX][ARRAY_SIZE(SEQ_PANEL_CONDITION_SET_500MBPS)];
-#endif
- unsigned int irq;
- unsigned int connected;
-
-#if defined(GPIO_OLED_DET)
- struct delayed_work oled_detection;
- unsigned int oled_detection_count;
-#endif
- struct dsim_global *dsim;
-};
-
-#ifdef CONFIG_AID_DIMMING
-static const unsigned int candela_table[GAMMA_MAX] = {
- 20, 30, 40, 50, 60, 70, 80, 90, 100,
- 110, 120, 130, 140, 150, 160, 170, 180,
- 182, 184, 186, 188,
- 190, 200, 210, 220, 230, 240, 250, MAX_GAMMA-1
-};
-
-static unsigned int aid_candela_table[GAMMA_MAX] = {
- base_20to100, base_20to100, base_20to100, base_20to100, base_20to100, base_20to100, base_20to100, base_20to100, base_20to100,
- AOR40_BASE_110, AOR40_BASE_120, AOR40_BASE_130, AOR40_BASE_140, AOR40_BASE_150,
- AOR40_BASE_160, AOR40_BASE_170, AOR40_BASE_180, AOR40_BASE_182, AOR40_BASE_184,
- AOR40_BASE_186, AOR40_BASE_188,
- 190, 200, 210, 220, 230, 240, 250, MAX_GAMMA-1
-};
-
-static unsigned int elvss_offset_table[ELVSS_STATUS_MAX] = {
- ELVSS_OFFSET_110,
- ELVSS_OFFSET_120,
- ELVSS_OFFSET_130,
- ELVSS_OFFSET_140,
- ELVSS_OFFSET_150,
- ELVSS_OFFSET_160,
- ELVSS_OFFSET_170,
- ELVSS_OFFSET_180,
- ELVSS_OFFSET_190,
- ELVSS_OFFSET_200,
- ELVSS_OFFSET_210,
- ELVSS_OFFSET_220,
- ELVSS_OFFSET_230,
- ELVSS_OFFSET_240,
- ELVSS_OFFSET_250,
- ELVSS_OFFSET_260,
- ELVSS_OFFSET_270,
- ELVSS_OFFSET_280,
- ELVSS_OFFSET_290,
- ELVSS_OFFSET_300
-};
-#else
-static const unsigned int candela_table[GAMMA_MAX] = {
- 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,
- 130, 140, 150, 160, 170, 180, 190, 200, 210, 220,
- 230, 240, 250, MAX_GAMMA
-};
-
-static unsigned int elvss_offset_table[ELVSS_STATUS_MAX] = {
- ELVSS_OFFSET_MIN,
- ELVSS_OFFSET_1,
- ELVSS_OFFSET_2,
- ELVSS_OFFSET_MAX
-};
-#endif
-
-#if defined(GPIO_OLED_DET)
-static void oled_detection_work(struct work_struct *work)
-{
- struct lcd_info *lcd =
- container_of(work, struct lcd_info, oled_detection.work);
-
- int oled_det_level = gpio_get_value(GPIO_OLED_DET);
-
- dev_info(&lcd->ld->dev, "%s, %d, %d\n", __func__, lcd->oled_detection_count, oled_det_level);
-
- if (!oled_det_level) {
- if (lcd->oled_detection_count < 10) {
- schedule_delayed_work(&lcd->oled_detection, HZ/8);
- lcd->oled_detection_count++;
- set_dsim_hs_clk_toggle_count(15);
- } else
- set_dsim_hs_clk_toggle_count(0);
- } else
- set_dsim_hs_clk_toggle_count(0);
-
-}
-
-static irqreturn_t oled_detection_int(int irq, void *_lcd)
-{
- struct lcd_info *lcd = _lcd;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- lcd->oled_detection_count = 0;
- schedule_delayed_work(&lcd->oled_detection, HZ/16);
-
- return IRQ_HANDLED;
-}
-#endif
-
-static int s6e8ax0_write(struct lcd_info *lcd, const unsigned char *seq, int len)
-{
- int size;
- const unsigned char *wbuf;
-
- if (!lcd->connected)
- return 0;
-
- mutex_lock(&lcd->lock);
-
- size = len;
- wbuf = seq;
-
- if (size == 1)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_NO_PARA, wbuf[0], 0);
- else if (size == 2)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_1_PARA, wbuf[0], wbuf[1]);
- else
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_LONG_WR, (unsigned int)wbuf, size);
-
- mutex_unlock(&lcd->lock);
-
- return 0;
-}
-
-static int _s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf)
-{
- int ret = 0;
-
- if (!lcd->connected)
- return ret;
-
- mutex_lock(&lcd->lock);
-
- if (lcd->dsim->ops->cmd_read)
- ret = lcd->dsim->ops->cmd_read(lcd->dsim, addr, count, buf);
-
- mutex_unlock(&lcd->lock);
-
- return ret;
-}
-
-static int s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf, u8 retry_cnt)
-{
- int ret = 0;
-
-read_retry:
- ret = _s6e8ax0_read(lcd, addr, count, buf);
- if (!ret) {
- if (retry_cnt) {
- printk(KERN_WARNING "[WARN:LCD] %s : retry cnt : %d\n", __func__, retry_cnt);
- retry_cnt--;
- goto read_retry;
- } else
- printk(KERN_ERR "[ERROR:LCD] %s : 0x%02x read failed\n", __func__, addr);
- }
-
- return ret;
-}
-
-#ifdef CONFIG_AID_DIMMING
-static int get_backlight_level_from_brightness(int brightness)
-{
- int backlightlevel;
-
- /* brightness setting from platform is from 0 to 255
- * But in this driver, brightness is only supported from 0 to 24 */
-
- switch (brightness) {
- case 0 ... 29:
- backlightlevel = GAMMA_20CD;
- break;
- case 30 ... 39:
- backlightlevel = GAMMA_30CD;
- break;
- case 40 ... 49:
- backlightlevel = GAMMA_40CD;
- break;
- case 50 ... 59:
- backlightlevel = GAMMA_50CD;
- break;
- case 60 ... 69:
- backlightlevel = GAMMA_60CD;
- break;
- case 70 ... 79:
- backlightlevel = GAMMA_70CD;
- break;
- case 80 ... 89:
- backlightlevel = GAMMA_80CD;
- break;
- case 90 ... 99:
- backlightlevel = GAMMA_90CD;
- break;
- case 100 ... 109:
- backlightlevel = GAMMA_100CD;
- break;
- case 110 ... 119:
- backlightlevel = GAMMA_110CD;
- break;
- case 120 ... 129:
- backlightlevel = GAMMA_120CD;
- break;
- case 130 ... 139:
- backlightlevel = GAMMA_130CD;
- break;
- case 140 ... 149:
- backlightlevel = GAMMA_140CD;
- break;
- case 150 ... 159:
- backlightlevel = GAMMA_150CD;
- break;
- case 160 ... 169:
- backlightlevel = GAMMA_160CD;
- break;
- case 170 ... 179:
- backlightlevel = GAMMA_170CD;
- break;
- case 180 ... 181:
- backlightlevel = GAMMA_180CD;
- break;
- case 182 ... 183:
- backlightlevel = GAMMA_182CD;
- break;
- case 184 ... 185:
- backlightlevel = GAMMA_184CD;
- break;
- case 186 ... 187:
- backlightlevel = GAMMA_186CD;
- break;
- case 188 ... 189:
- backlightlevel = GAMMA_188CD;
- break;
- case 190 ... 199:
- backlightlevel = GAMMA_190CD;
- break;
- case 200 ... 209:
- backlightlevel = GAMMA_200CD;
- break;
- case 210 ... 219:
- backlightlevel = GAMMA_210CD;
- break;
- case 220 ... 229:
- backlightlevel = GAMMA_220CD;
- break;
- case 230 ... 239:
- backlightlevel = GAMMA_230CD;
- break;
- case 240 ... 249:
- backlightlevel = GAMMA_240CD;
- break;
- case 250 ... 254:
- backlightlevel = GAMMA_250CD;
- break;
- case 255:
- backlightlevel = GAMMA_300CD;
- break;
- default:
- backlightlevel = DEFAULT_GAMMA_LEVEL;
- break;
- }
- return backlightlevel;
-}
-
-static int s6e8ax0_aid_parameter_ctl(struct lcd_info *lcd , u8 force)
-{
- if (likely(lcd->support_aid)) {
- if ((lcd->f8[lcd->bl][0x12] != lcd->f8[lcd->current_bl][0x12]) ||
- (lcd->f8[lcd->bl][0x01] != lcd->f8[lcd->current_bl][0x01]) || (force))
- s6e8ax0_write(lcd, lcd->f8[lcd->bl], AID_PARAM_SIZE);
- }
-
- return 0;
-}
-#else
-static int get_backlight_level_from_brightness(int brightness)
-{
- int backlightlevel;
-
- /* brightness setting from platform is from 0 to 255
- * But in this driver, brightness is only supported from 0 to 24 */
-
- switch (brightness) {
- case 0 ... 29:
- backlightlevel = GAMMA_30CD;
- break;
- case 30 ... 254:
- backlightlevel = (brightness - candela_table[0]) / 10;
- break;
- case 255:
- backlightlevel = ARRAY_SIZE(candela_table) - 1;
- break;
- default:
- backlightlevel = DEFAULT_GAMMA_LEVEL;
- break;
- }
- return backlightlevel;
-}
-#endif
-
-static int s6e8ax0_gamma_ctl(struct lcd_info *lcd)
-{
- s6e8ax0_write(lcd, lcd->gamma_table[lcd->bl], GAMMA_PARAM_SIZE);
-
- /* Gamma Set Update */
- s6e8ax0_write(lcd, SEQ_GAMMA_UPDATE, ARRAY_SIZE(SEQ_GAMMA_UPDATE));
-
- return 0;
-}
-
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
-static int s6e8ax0_set_acl(struct lcd_info *lcd)
-{
- int ret = 0;
-
- if (lcd->acl_enable) {
- if (lcd->cur_acl == 0) {
- if (lcd->bl == 0 || lcd->bl == 1) {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n", __func__, lcd->cur_acl);
- } else {
- s6e8ax0_write(lcd, SEQ_ACL_ON, ARRAY_SIZE(SEQ_ACL_ON));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_on\n", __func__, lcd->cur_acl);
- }
- }
- switch (lcd->bl) {
- case GAMMA_30CD... GAMMA_40CD:
- if (lcd->cur_acl != 0) {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_50CD:
- if (lcd->cur_acl != 200) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_20P], ACL_PARAM_SIZE);
- lcd->cur_acl = 200;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_60CD:
- if (lcd->cur_acl != 330) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_33P], ACL_PARAM_SIZE);
- lcd->cur_acl = 330;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_70CD:
- if (lcd->cur_acl != 430) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_43P], ACL_PARAM_SIZE);
- lcd->cur_acl = 430;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_80CD:
- if (lcd->cur_acl != 450) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_45P_80CD], ACL_PARAM_SIZE);
- lcd->cur_acl = 450;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_90CD ... GAMMA_150CD:
- if (lcd->cur_acl != 451) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_45P], ACL_PARAM_SIZE);
- lcd->cur_acl = 451;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_160CD: /* 160cd */
- if (lcd->cur_acl != 460) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_46P_160CD], ACL_PARAM_SIZE);
- lcd->cur_acl = 460;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case GAMMA_170CD ... GAMMA_250CD:
- if (lcd->cur_acl != 461) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_46P], ACL_PARAM_SIZE);
- lcd->cur_acl = 461;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- default:
- if (lcd->cur_acl != 550) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_50P], ACL_PARAM_SIZE);
- lcd->cur_acl = 550;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- }
- } else {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n", __func__, lcd->cur_acl);
- }
-
- if (ret) {
- ret = -EPERM;
- goto acl_err;
- }
-
-acl_err:
- return ret;
-}
-#else
-static int s6e8ax0_set_acl(struct lcd_info *lcd)
-{
- if (lcd->acl_enable) {
- if (lcd->cur_acl == 0) {
- if (lcd->bl == 0) {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n", __func__, lcd->cur_acl);
- } else {
- s6e8ax0_write(lcd, SEQ_ACL_ON, ARRAY_SIZE(SEQ_ACL_ON));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_on\n", __func__, lcd->cur_acl);
- }
- }
- switch (lcd->bl) {
- case 0:
- if (lcd->cur_acl != 0) {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case 1:
- if (lcd->cur_acl != 33) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_33P], ACL_PARAM_SIZE);
- lcd->cur_acl = 33;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- case 2 ... GAMMA_250CD:
- if (lcd->cur_acl != 40) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_40P], ACL_PARAM_SIZE);
- lcd->cur_acl = 40;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- default:
- if (lcd->cur_acl != 50) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[ACL_STATUS_50P], ACL_PARAM_SIZE);
- lcd->cur_acl = 50;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- }
- } else {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n", __func__, lcd->cur_acl);
- }
-
- return 0;
-}
-#endif
-
-#ifdef SMART_DIMMING
-#ifdef CONFIG_AID_DIMMING
-static int s6e8ax0_set_elvss(struct lcd_info *lcd, u8 force)
-{
- int ret = 0, elvss_level = 0;
- u32 candela = candela_table[lcd->bl];
-
- switch (candela) {
- case 0 ... 110:
- elvss_level = ELVSS_110;
- break;
- case 111 ... 120:
- elvss_level = ELVSS_120;
- break;
- case 121 ... 130:
- elvss_level = ELVSS_130;
- break;
- case 131 ... 140:
- elvss_level = ELVSS_140;
- break;
- case 141 ... 150:
- elvss_level = ELVSS_150;
- break;
- case 151 ... 160:
- elvss_level = ELVSS_160;
- break;
- case 161 ... 170:
- elvss_level = ELVSS_170;
- break;
- case 171 ... 180:
- elvss_level = ELVSS_180;
- break;
- case 181 ... 190:
- elvss_level = ELVSS_190;
- break;
- case 191 ... 200:
- elvss_level = ELVSS_200;
- break;
- case 201 ... 210:
- elvss_level = ELVSS_210;
- break;
- case 211 ... 220:
- elvss_level = ELVSS_220;
- break;
- case 221 ... 230:
- elvss_level = ELVSS_230;
- break;
- case 231 ... 240:
- elvss_level = ELVSS_240;
- break;
- case 241 ... 250:
- elvss_level = ELVSS_250;
- break;
- case 251 ... 260:
- elvss_level = ELVSS_260;
- break;
- case 261 ... 270:
- elvss_level = ELVSS_270;
- break;
- case 271 ... 280:
- elvss_level = ELVSS_280;
- break;
- case 281 ... 290:
- elvss_level = ELVSS_290;
- break;
- case 291 ... 300:
- elvss_level = ELVSS_300;
- break;
- }
-
- if ((lcd->current_elvss != lcd->elvss_table[elvss_level][2]) || force) {
- ret = s6e8ax0_write(lcd, lcd->elvss_table[elvss_level], ELVSS_PARAM_SIZE);
- lcd->current_elvss = lcd->elvss_table[elvss_level][2];
- }
-
- dev_dbg(&lcd->ld->dev, "elvss = %x\n", lcd->elvss_table[elvss_level][2]);
-
- if (ret) {
- ret = -EPERM;
- goto elvss_err;
- }
-
-elvss_err:
- return ret;
-}
-#else
-static int s6e8ax0_set_elvss(struct lcd_info *lcd, u8 force)
-{
- int ret = 0, elvss_level = 0;
- u32 candela = candela_table[lcd->bl];
-
- switch (candela) {
- case 0 ... 100:
- elvss_level = ELVSS_MIN;
- break;
- case 101 ... 160:
- elvss_level = ELVSS_1;
- break;
- case 161 ... 200:
- elvss_level = ELVSS_2;
- break;
- case 201 ... 300:
- elvss_level = ELVSS_MAX;
- break;
- default:
- break;
- }
-
- if ((lcd->current_elvss != lcd->elvss_table[elvss_level][2]) || force) {
- ret = s6e8ax0_write(lcd, lcd->elvss_table[elvss_level], ELVSS_PARAM_SIZE);
- lcd->current_elvss = lcd->elvss_table[elvss_level][2];
- }
-
- dev_dbg(&lcd->ld->dev, "elvss = %x\n", lcd->elvss_table[elvss_level][2]);
-
- if (ret) {
- ret = -EPERM;
- goto elvss_err;
- }
-
-elvss_err:
- return ret;
-}
-#endif
-static u8 get_elvss_value(struct lcd_info *lcd, u8 elvss_level)
-{
- u8 ref = 0;
- u8 offset;
-
- if (lcd->elvss.limit == 0x00)
- ref = (lcd->elvss.reference | 0x80);
- else if (lcd->elvss.limit == 0x01)
- ref = (lcd->elvss.reference + 0x40);
- else {
- printk(KERN_ERR "[ERROR:ELVSS]:%s undefined elvss limit value :%x\n", __func__, lcd->elvss.limit);
- return 0;
- }
-
- offset = elvss_offset_table[elvss_level];
- ref += offset;
-
- if (ref < DYNAMIC_ELVSS_MIN_VALUE)
- ref = DYNAMIC_ELVSS_MIN_VALUE;
- else if (ref > DYNAMIC_ELVSS_MAX_VALUE)
- ref = DYNAMIC_ELVSS_MAX_VALUE;
-
- return ref;
-}
-
-static int init_elvss_table(struct lcd_info *lcd)
-{
- int i, ret = 0;
-#ifdef SMART_DIMMING_DEBUG
- int j;
-#endif
-
- lcd->elvss_table = kzalloc(ELVSS_STATUS_MAX * sizeof(u8 *), GFP_KERNEL);
-
- if (IS_ERR_OR_NULL(lcd->elvss_table)) {
- pr_err("failed to allocate elvss table\n");
- ret = -ENOMEM;
- goto err_alloc_elvss_table;
- }
-
- for (i = 0; i < ELVSS_STATUS_MAX; i++) {
- lcd->elvss_table[i] = kzalloc(ELVSS_PARAM_SIZE * sizeof(u8), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->elvss_table[i])) {
- pr_err("failed to allocate elvss\n");
- ret = -ENOMEM;
- goto err_alloc_elvss;
- }
- lcd->elvss_table[i][0] = 0xB1;
- lcd->elvss_table[i][1] = 0x04;
- lcd->elvss_table[i][2] = get_elvss_value(lcd, i);
- }
-
-#ifdef SMART_DIMMING_DEBUG
- for (i = 0; i < ELVSS_STATUS_MAX; i++) {
- for (j = 0; j < ELVSS_PARAM_SIZE; j++)
- printk("0x%02x, ", lcd->elvss_table[i][j]);
- printk("\n");
- }
-#endif
-
- return 0;
-
-err_alloc_elvss:
- while (i > 0) {
- kfree(lcd->elvss_table[i-1]);
- i--;
- }
- kfree(lcd->elvss_table);
-err_alloc_elvss_table:
- return ret;
-}
-
-#ifdef CONFIG_AID_DIMMING
-static int init_gamma_table(struct lcd_info *lcd)
-{
- int i, ret = 0;
-
- lcd->gamma_table = kzalloc(GAMMA_MAX * sizeof(u8 *), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->gamma_table)) {
- pr_err("failed to allocate gamma table\n");
- ret = -ENOMEM;
- goto err_alloc_gamma_table;
- }
-
- for (i = 0; i < GAMMA_MAX; i++) {
- lcd->gamma_table[i] = kzalloc(GAMMA_PARAM_SIZE * sizeof(u8), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->gamma_table[i])) {
- pr_err("failed to allocate gamma\n");
- ret = -ENOMEM;
- goto err_alloc_gamma;
- }
- lcd->gamma_table[i][0] = 0xFA;
- lcd->gamma_table[i][1] = 0x01;
- }
-
- for (i = 0; i < GAMMA_MAX; i++) {
- if (candela_table[i] <= 180)
- calc_gamma_table(&lcd->smart, aid_candela_table[i], &lcd->gamma_table[i][2], G_21);
- else if (candela_table[i] > 250)
- calc_gamma_table(&lcd->smart, aid_candela_table[i], &lcd->gamma_table[i][2], G_22);
- else if (candela_table[i] == 190)
- calc_gamma_table_215_190(&lcd->smart, aid_candela_table[i], &lcd->gamma_table[i][2]);
- else
- calc_gamma_table(&lcd->smart, aid_candela_table[i], &lcd->gamma_table[i][2], G_215);
- }
-
-#ifdef SMART_DIMMING_DEBUG
- for (i = 0; i < GAMMA_MAX; i++) {
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- printk("%d, ", lcd->gamma_table[i][j]);
- printk("\n");
- }
-#endif
- return 0;
-
-err_alloc_gamma:
- while (i > 0) {
- kfree(lcd->gamma_table[i-1]);
- i--;
- }
- kfree(lcd->gamma_table);
-err_alloc_gamma_table:
- return ret;
-}
-
-static int init_aid_dimming_table(struct lcd_info *lcd)
-{
- unsigned int i, j;
-
- for (i = 0; i < ARRAY_SIZE(aid_rgb_fix_table); i++) {
- j = (aid_rgb_fix_table[i].gray * 3 + aid_rgb_fix_table[i].rgb) + 2;
- lcd->gamma_table[aid_rgb_fix_table[i].candela_idx][j] += aid_rgb_fix_table[i].offset;
- }
-
- for (i = 0; i < GAMMA_MAX; i++) {
- memcpy(lcd->f8[i], SEQ_PANEL_CONDITION_SET_500MBPS, AID_PARAM_SIZE);
- lcd->f8[i][0x12] = aid_command_table[i][0];
- lcd->f8[i][0x01] = aid_command_table[i][1];
- }
-
-
-#ifdef SMART_DIMMING_DEBUG
- for (i = 0; i < GAMMA_MAX; i++) {
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- printk("%d, ", lcd->gamma_table[i][j]);
- printk("\n");
- }
-#endif
- return 0;
-}
-#else
-static int init_gamma_table(struct lcd_info *lcd)
-{
- int i, ret = 0;
-
- lcd->gamma_table = kzalloc(GAMMA_MAX * sizeof(u8 *), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->gamma_table)) {
- pr_err("failed to allocate gamma table\n");
- ret = -ENOMEM;
- goto err_alloc_gamma_table;
- }
-
- for (i = 0; i < GAMMA_MAX; i++) {
- lcd->gamma_table[i] = kzalloc(GAMMA_PARAM_SIZE * sizeof(u8), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->gamma_table[i])) {
- pr_err("failed to allocate gamma\n");
- ret = -ENOMEM;
- goto err_alloc_gamma;
- }
- lcd->gamma_table[i][0] = 0xFA;
- lcd->gamma_table[i][1] = 0x01;
- calc_gamma_table(&lcd->smart, candela_table[i]-1, lcd->gamma_table[i]+2);
- }
-
-#ifdef SMART_DIMMING_DEBUG
- for (i = 0; i < GAMMA_MAX; i++) {
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- printk("0x%02x, ", lcd->gamma_table[i][j]);
- printk("\n");
- }
-#endif
- return 0;
-
-err_alloc_gamma:
- while (i > 0) {
- kfree(lcd->gamma_table[i-1]);
- i--;
- }
- kfree(lcd->gamma_table);
-err_alloc_gamma_table:
- return ret;
-}
-#endif
-#endif
-
-static int update_brightness(struct lcd_info *lcd, u8 force)
-{
- u32 brightness;
-
- mutex_lock(&lcd->bl_lock);
-
- brightness = lcd->bd->props.brightness;
-
- if (unlikely(!lcd->auto_brightness && brightness > 250))
- brightness = 250;
-
- lcd->bl = get_backlight_level_from_brightness(brightness);
-
- if ((force) || ((lcd->ldi_enable) && (lcd->current_bl != lcd->bl))) {
-
-#ifdef CONFIG_AID_DIMMING
- if ((force) || unlikely(aid_candela_table[lcd->bl] != aid_candela_table[lcd->current_bl]))
-#endif
- s6e8ax0_gamma_ctl(lcd);
-
-#ifdef CONFIG_AID_DIMMING
- s6e8ax0_aid_parameter_ctl(lcd , force);
-#endif
- s6e8ax0_set_acl(lcd);
-
- s6e8ax0_set_elvss(lcd, force);
-
- lcd->current_bl = lcd->bl;
-
- dev_info(&lcd->ld->dev, "brightness=%d, bl=%d, candela=%d\n", brightness, lcd->bl, candela_table[lcd->bl]);
- }
-
- mutex_unlock(&lcd->bl_lock);
-
- return 0;
-}
-
-static int s6e8ax0_ldi_init(struct lcd_info *lcd)
-{
- int ret = 0;
-
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
- s6e8ax0_write(lcd, SEQ_APPLY_LEVEL_2_KEY, ARRAY_SIZE(SEQ_APPLY_LEVEL_2_KEY));
- s6e8ax0_write(lcd, SEQ_LTPS_DELAY, ARRAY_SIZE(SEQ_LTPS_DELAY));
- s6e8ax0_write(lcd, SEQ_SLEEP_OUT, ARRAY_SIZE(SEQ_SLEEP_OUT));
- msleep(22);
- s6e8ax0_write(lcd, SEQ_PANEL_CONDITION_SET, ARRAY_SIZE(SEQ_PANEL_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_DISPLAY_CONDITION_SET, ARRAY_SIZE(SEQ_DISPLAY_CONDITION_SET));
- s6e8ax0_gamma_ctl(lcd);
- s6e8ax0_write(lcd, SEQ_ETC_SOURCE_CONTROL, ARRAY_SIZE(SEQ_ETC_SOURCE_CONTROL));
- s6e8ax0_write(lcd, SEQ_ETC_PENTILE_CONTROL, ARRAY_SIZE(SEQ_ETC_PENTILE_CONTROL));
- s6e8ax0_write(lcd, SEQ_ETC_POWER_CONTROL, ARRAY_SIZE(SEQ_ETC_POWER_CONTROL));
- s6e8ax0_write(lcd, SEQ_ELVSS_NVM_SETTING, ARRAY_SIZE(SEQ_ELVSS_NVM_SETTING));
- s6e8ax0_write(lcd, SEQ_ELVSS_CONTROL, ARRAY_SIZE(SEQ_ELVSS_CONTROL));
-#else
- s6e8ax0_write(lcd, SEQ_APPLY_LEVEL_2, ARRAY_SIZE(SEQ_APPLY_LEVEL_2));
- s6e8ax0_write(lcd, SEQ_APPLY_MTP_KEY_ENABLE, ARRAY_SIZE(SEQ_APPLY_MTP_KEY_ENABLE));
- s6e8ax0_write(lcd, SEQ_SLEEP_OUT, ARRAY_SIZE(SEQ_SLEEP_OUT));
- msleep(22);
-
- /* 4.8" HD for M0/C1*/
- if (lcd->id[1] == 0x20 || lcd->id[1] == 0x40 || lcd->id[1] == 0x60) {
- s6e8ax0_write(lcd, SEQ_PANEL_CONDITION_SET_500MBPS,\
- ARRAY_SIZE(SEQ_PANEL_CONDITION_SET_500MBPS));
- s6e8ax0_write(lcd, SEQ_DISPLAY_CONDITION_SET, ARRAY_SIZE(SEQ_DISPLAY_CONDITION_SET));
- s6e8ax0_gamma_ctl(lcd);
- s6e8ax0_write(lcd, SEQ_ETC_SOURCE_CONTROL, ARRAY_SIZE(SEQ_ETC_SOURCE_CONTROL));
- s6e8ax0_write(lcd, SEQ_ETC_PENTILE_CONTROL, ARRAY_SIZE(SEQ_ETC_PENTILE_CONTROL));
- s6e8ax0_write(lcd, SEQ_ETC_NVM_SETTING, ARRAY_SIZE(SEQ_ETC_NVM_SETTING));
- s6e8ax0_write(lcd, SEQ_ETC_POWER_CONTROL, ARRAY_SIZE(SEQ_ETC_POWER_CONTROL));
- } else if (lcd->id[1] == 0xae) {
- s6e8ax0_write(lcd, SEQ_PANEL_CONDITION_SET_480MBPS_46, ARRAY_SIZE(SEQ_PANEL_CONDITION_SET_480MBPS_46));
- s6e8ax0_write(lcd, SEQ_DISPLAY_CONDITION_SET, ARRAY_SIZE(SEQ_DISPLAY_CONDITION_SET));
- s6e8ax0_gamma_ctl(lcd);
- s6e8ax0_write(lcd, SEQ_ETC_SOURCE_CONTROL, ARRAY_SIZE(SEQ_ETC_SOURCE_CONTROL));
- s6e8ax0_write(lcd, SEQ_ETC_PENTILE_CONTROL_46, ARRAY_SIZE(SEQ_ETC_PENTILE_CONTROL_46));
- s6e8ax0_write(lcd, SEQ_ETC_NVM_SETTING_46, ARRAY_SIZE(SEQ_ETC_NVM_SETTING_46));
- s6e8ax0_write(lcd, SEQ_ETC_POWER_CONTROL_46, ARRAY_SIZE(SEQ_ETC_POWER_CONTROL_46));
- } else {
- s6e8ax0_write(lcd, SEQ_PANEL_CONDITION_SET_500MBPS_46, ARRAY_SIZE(SEQ_PANEL_CONDITION_SET_500MBPS_46));
- s6e8ax0_write(lcd, SEQ_DISPLAY_CONDITION_SET, ARRAY_SIZE(SEQ_DISPLAY_CONDITION_SET));
- s6e8ax0_gamma_ctl(lcd);
- s6e8ax0_write(lcd, SEQ_ETC_SOURCE_CONTROL, ARRAY_SIZE(SEQ_ETC_SOURCE_CONTROL));
- s6e8ax0_write(lcd, SEQ_ETC_PENTILE_CONTROL_46, ARRAY_SIZE(SEQ_ETC_PENTILE_CONTROL_46));
- s6e8ax0_write(lcd, SEQ_ETC_NVM_SETTING_46, ARRAY_SIZE(SEQ_ETC_NVM_SETTING_46));
- s6e8ax0_write(lcd, SEQ_ETC_POWER_CONTROL_46, ARRAY_SIZE(SEQ_ETC_POWER_CONTROL_46));
- }
-
- s6e8ax0_write(lcd, SEQ_ELVSS_CONTROL, ARRAY_SIZE(SEQ_ELVSS_CONTROL));
-#endif
-
- return ret;
-}
-
-static int s6e8ax0_ldi_enable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPLAY_ON, ARRAY_SIZE(SEQ_DISPLAY_ON));
-
- return ret;
-}
-
-static int s6e8ax0_ldi_disable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPLAY_OFF, ARRAY_SIZE(SEQ_DISPLAY_OFF));
- s6e8ax0_write(lcd, SEQ_STANDBY_ON, ARRAY_SIZE(SEQ_STANDBY_ON));
-
- return ret;
-}
-
-static int s6e8ax0_power_on(struct lcd_info *lcd)
-{
- int ret = 0;
- struct lcd_platform_data *pd = NULL;
- pd = lcd->lcd_pd;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- ret = s6e8ax0_ldi_init(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to initialize ldi.\n");
- goto err;
- }
-
- msleep(120);
-
- ret = s6e8ax0_ldi_enable(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to enable ldi.\n");
- goto err;
- }
-
- lcd->ldi_enable = 1;
-
- update_brightness(lcd, 1);
-err:
- return ret;
-}
-
-static int s6e8ax0_power_off(struct lcd_info *lcd)
-{
- int ret = 0;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- lcd->ldi_enable = 0;
-
- ret = s6e8ax0_ldi_disable(lcd);
-
- msleep(135);
-
- return ret;
-}
-
-static int s6e8ax0_power(struct lcd_info *lcd, int power)
-{
- int ret = 0;
-
- if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_on(lcd);
- else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_off(lcd);
-
- if (!ret)
- lcd->power = power;
-
- return ret;
-}
-
-static int s6e8ax0_set_power(struct lcd_device *ld, int power)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
- power != FB_BLANK_NORMAL) {
- dev_err(&lcd->ld->dev, "power value should be 0, 1 or 4.\n");
- return -EINVAL;
- }
-
- return s6e8ax0_power(lcd, power);
-}
-
-static int s6e8ax0_get_power(struct lcd_device *ld)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- return lcd->power;
-}
-
-static int s6e8ax0_check_fb(struct lcd_device *ld, struct fb_info *fb)
-{
- struct s3cfb_window *win = fb->par;
- struct lcd_info *lcd = lcd_get_data(ld);
-
- /* dev_info(&lcd->ld->dev, "%s, fb%d\n", __func__, win->id); */
-
- return 0;
-}
-
-static int s6e8ax0_set_brightness(struct backlight_device *bd)
-{
- int ret = 0;
- int brightness = bd->props.brightness;
- struct lcd_info *lcd = bl_get_data(bd);
-
- /* dev_info(&lcd->ld->dev, "%s: brightness=%d\n", __func__, brightness); */
-
- if (brightness < MIN_BRIGHTNESS ||
- brightness > bd->props.max_brightness) {
- dev_err(&bd->dev, "lcd brightness should be %d to %d. now %d\n",
- MIN_BRIGHTNESS, MAX_BRIGHTNESS, brightness);
- return -EINVAL;
- }
-
- if (lcd->ldi_enable) {
- ret = update_brightness(lcd, 0);
- if (ret < 0) {
- dev_err(lcd->dev, "err in %s\n", __func__);
- return -EINVAL;
- }
- }
-
- return ret;
-}
-
-static int s6e8ax0_get_brightness(struct backlight_device *bd)
-{
- struct lcd_info *lcd = bl_get_data(bd);
-
- return candela_table[lcd->bl];
-}
-
-static struct lcd_ops s6e8ax0_lcd_ops = {
- .set_power = s6e8ax0_set_power,
- .get_power = s6e8ax0_get_power,
- .check_fb = s6e8ax0_check_fb,
-};
-
-static const struct backlight_ops s6e8ax0_backlight_ops = {
- .get_brightness = s6e8ax0_get_brightness,
- .update_status = s6e8ax0_set_brightness,
-};
-
-static ssize_t power_reduce_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->acl_enable);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t power_reduce_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->acl_enable != value) {
- dev_info(dev, "%s - %d, %d\n", __func__, lcd->acl_enable, value);
- mutex_lock(&lcd->bl_lock);
- lcd->acl_enable = value;
- if (lcd->ldi_enable)
- s6e8ax0_set_acl(lcd);
- mutex_unlock(&lcd->bl_lock);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(power_reduce, 0664, power_reduce_show, power_reduce_store);
-
-static ssize_t lcd_type_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- char temp[15];
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
- sprintf(temp, "SMD_AMS529HA01\n");
-#else
- sprintf(temp, "SMD_AMS480GYXX\n");
-#endif
- strcat(buf, temp);
- return strlen(buf);
-}
-
-static DEVICE_ATTR(lcd_type, 0444, lcd_type_show, NULL);
-
-static ssize_t gamma_table_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int i, j;
-
- for (i = 0; i < GAMMA_MAX; i++) {
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- printk("0x%02x, ", lcd->gamma_table[i][j]);
- printk("\n");
- }
-
- for (i = 0; i < ELVSS_STATUS_MAX; i++) {
- for (j = 0; j < ELVSS_PARAM_SIZE; j++)
- printk("0x%02x, ", lcd->elvss_table[i][j]);
- printk("\n");
- }
-
- return strlen(buf);
-}
-static DEVICE_ATTR(gamma_table, 0444, gamma_table_show, NULL);
-
-static ssize_t auto_brightness_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->auto_brightness);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t auto_brightness_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->auto_brightness != value) {
- dev_info(dev, "%s - %d, %d\n", __func__, lcd->auto_brightness, value);
- mutex_lock(&lcd->bl_lock);
- lcd->auto_brightness = value;
- mutex_unlock(&lcd->bl_lock);
- if (lcd->ldi_enable)
- update_brightness(lcd, 0);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(auto_brightness, 0644, auto_brightness_show, auto_brightness_store);
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-struct lcd_info *g_lcd;
-
-void s6e8ax0_early_suspend(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- set_dsim_lcd_enabled(0);
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
-#if defined(GPIO_OLED_DET)
- disable_irq(lcd->irq);
- gpio_request(GPIO_OLED_DET, "OLED_DET");
- s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_OUTPUT);
- s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
- gpio_direction_output(GPIO_OLED_DET, GPIO_LEVEL_LOW);
- gpio_free(GPIO_OLED_DET);
-#endif
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-
-void s6e8ax0_late_resume(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- s6e8ax0_power(lcd, FB_BLANK_UNBLANK);
-#if defined(GPIO_OLED_DET)
- s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_SFN(0xf));
- s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
- enable_irq(lcd->irq);
-#endif
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- set_dsim_lcd_enabled(1);
-
- return ;
-}
-#endif
-
-static void s6e8ax0_read_id(struct lcd_info *lcd, u8 *buf)
-{
- int ret = 0;
-
- ret = s6e8ax0_read(lcd, LDI_ID_REG, LDI_ID_LEN, buf, 3);
- if (!ret) {
- lcd->connected = 0;
- dev_info(&lcd->ld->dev, "panel is not connected well\n");
- }
-}
-
-#ifdef SMART_DIMMING
-static int s6e8ax0_read_mtp(struct lcd_info *lcd, u8 *mtp_data)
-{
- int ret;
-
- ret = s6e8ax0_read(lcd, LDI_MTP_ADDR, LDI_MTP_LENGTH, mtp_data, 0);
-
- return ret;
-}
-
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
-static void s6e8aa0_check_id(struct lcd_info *lcd, u8 *idbuf)
-{
- u32 i;
-
- for (i = 0; i < LDI_ID_LEN; i++)
- lcd->smart.panelid[i] = idbuf[i];
-
- if (idbuf[2] == 0x33)
- lcd->support_elvss = 0;
- else {
- lcd->support_elvss = 1;
- lcd->elvss.limit = (idbuf[2] & 0xc0) >> 6;
- lcd->elvss.reference = idbuf[2] & 0x3f;
- printk(KERN_DEBUG "Dynamic ELVSS Information, 0x%x\n", lcd->elvss.reference);
- }
-}
-#else
-static void s6e8aa0_check_id(struct lcd_info *lcd, u8 *idbuf)
-{
- int i;
-
- for (i = 0; i < LDI_ID_LEN; i++)
- lcd->smart.panelid[i] = idbuf[i];
-
- if (idbuf[0] == PANEL_A1_M3)
- lcd->support_elvss = 0;
- else {
- lcd->support_elvss = 1;
- lcd->elvss.reference = idbuf[2] & (BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4));
- printk(KERN_DEBUG "Dynamic ELVSS Information, 0x%x\n", lcd->elvss.reference);
- }
-}
-#endif
-#endif
-
-static int s6e8ax0_probe(struct device *dev)
-{
- int ret = 0;
- struct lcd_info *lcd;
-#ifdef SMART_DIMMING
- u8 mtp_data[LDI_MTP_LENGTH] = {0,};
-#endif
-
- lcd = kzalloc(sizeof(struct lcd_info), GFP_KERNEL);
- if (!lcd) {
- pr_err("failed to allocate for lcd\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- g_lcd = lcd;
-
- lcd->ld = lcd_device_register("panel", dev, lcd, &s6e8ax0_lcd_ops);
- if (IS_ERR(lcd->ld)) {
- pr_err("failed to register lcd device\n");
- ret = PTR_ERR(lcd->ld);
- goto out_free_lcd;
- }
-
- lcd->bd = backlight_device_register("panel", dev, lcd, &s6e8ax0_backlight_ops, NULL);
- if (IS_ERR(lcd->bd)) {
- pr_err("failed to register backlight device\n");
- ret = PTR_ERR(lcd->bd);
- goto out_free_backlight;
- }
-
- lcd->dev = dev;
- lcd->dsim = (struct dsim_global *)dev_get_drvdata(dev->parent);
- lcd->bd->props.max_brightness = MAX_BRIGHTNESS;
- lcd->bd->props.brightness = DEFAULT_BRIGHTNESS;
- lcd->bl = DEFAULT_GAMMA_LEVEL;
- lcd->current_bl = lcd->bl;
-
- lcd->acl_enable = 0;
- lcd->cur_acl = 0;
-
- lcd->power = FB_BLANK_UNBLANK;
- lcd->ldi_enable = 1;
- lcd->connected = 1;
- lcd->auto_brightness = 0;
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_power_reduce);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_lcd_type);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_gamma_table);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->bd->dev, &dev_attr_auto_brightness);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- dev_set_drvdata(dev, lcd);
-
- mutex_init(&lcd->lock);
- mutex_init(&lcd->bl_lock);
-
- s6e8ax0_read_id(lcd, lcd->id);
-
- dev_info(&lcd->ld->dev, "ID: %x, %x, %x\n", lcd->id[0], lcd->id[1], lcd->id[2]);
-
- dev_info(&lcd->ld->dev, "s6e8aa0 lcd panel driver has been probed.\n");
-
-#ifdef SMART_DIMMING
- s6e8aa0_check_id(lcd, lcd->id);
-
- init_table_info(&lcd->smart);
-
- ret = s6e8ax0_read_mtp(lcd, mtp_data);
- if (!ret) {
- printk(KERN_ERR "[LCD:ERROR] : %s read mtp failed\n", __func__);
- /*return -EPERM;*/
- }
-
- calc_voltage_table(&lcd->smart, mtp_data);
-
- if (lcd->support_elvss)
- ret = init_elvss_table(lcd);
- else {
- lcd->elvss_table = (unsigned char **)ELVSS_TABLE;
- ret = 0;
- }
-
- ret += init_gamma_table(lcd);
-
-#ifdef CONFIG_AID_DIMMING
- if (lcd->id[1] == 0x20 || lcd->id[1] == 0x40 || lcd->id[1] == 0x60) {
- printk(KERN_INFO "AID Dimming is started. %d\n", lcd->id[1]);
- lcd->support_aid = 1;
- ret += init_aid_dimming_table(lcd);
- }
-#endif
-
- if (ret) {
- printk(KERN_ERR "gamma table generation is failed\n");
- lcd->gamma_table = (unsigned char **)gamma22_table;
- lcd->elvss_table = (unsigned char **)ELVSS_TABLE;
- }
-
- update_brightness(lcd, 1);
-#endif
-
-#if defined(GPIO_OLED_DET)
- if (lcd->connected) {
- INIT_DELAYED_WORK(&lcd->oled_detection, oled_detection_work);
-
- lcd->irq = gpio_to_irq(GPIO_OLED_DET);
-
- s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_SFN(0xf));
- s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
- if (request_irq(lcd->irq, oled_detection_int,
- IRQF_TRIGGER_FALLING, "oled_detection", lcd))
- pr_err("failed to reqeust irq. %d\n", lcd->irq);
- }
-#endif
- return 0;
-
-out_free_backlight:
- lcd_device_unregister(lcd->ld);
- kfree(lcd);
- return ret;
-
-out_free_lcd:
- kfree(lcd);
- return ret;
-
-err_alloc:
- return ret;
-}
-
-static int __devexit s6e8ax0_remove(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- lcd_device_unregister(lcd->ld);
- backlight_device_unregister(lcd->bd);
- kfree(lcd);
-
- return 0;
-}
-
-/* Power down all displays on reboot, poweroff or halt. */
-static void s6e8ax0_shutdown(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
-}
-
-static struct mipi_lcd_driver s6e8ax0_mipi_driver = {
- .name = "s6e8aa0",
- .probe = s6e8ax0_probe,
- .remove = __devexit_p(s6e8ax0_remove),
- .shutdown = s6e8ax0_shutdown,
-};
-
-static int s6e8ax0_init(void)
-{
- return s5p_dsim_register_lcd_driver(&s6e8ax0_mipi_driver);
-}
-
-static void s6e8ax0_exit(void)
-{
- return;
-}
-
-module_init(s6e8ax0_init);
-module_exit(s6e8ax0_exit);
-
-MODULE_DESCRIPTION("MIPI-DSI S6E8AA0:AMS529HA01 (800x1280) Panel Driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/s3cfb_s6e8ab0.c b/drivers/video/samsung_duallcd/s3cfb_s6e8ab0.c
deleted file mode 100644
index bc47c37..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_s6e8ab0.c
+++ /dev/null
@@ -1,985 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_s6e8ab0.c
- *
- * MIPI-DSI based AMS767KC01 AMOLED lcd panel driver.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/workqueue.h>
-#include <linux/backlight.h>
-#include <linux/lcd.h>
-#include <plat/gpio-cfg.h>
-#include <plat/regs-dsim.h>
-#include <mach/dsim.h>
-#include <mach/mipi_ddi.h>
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#define SMART_DIMMING
-
-#include "s3cfb.h"
-#include "s5p-dsim.h"
-#include "s6e8ab0_param.h"
-#include "s6e8ab0_gamma.h"
-#ifdef SMART_DIMMING
-#include "smart_dimming_s6e8ab0.h"
-#endif
-
-#define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL)
-
-#define MIN_BRIGHTNESS 0
-#define MAX_BRIGHTNESS 255
-#define DEFAULT_BRIGHTNESS 150 /* this is not candela */
-#define DEFAULT_GAMMA_LEVEL GAMMA_150CD
-
-#define LDI_ID_REG 0xD1
-#define LDI_ID_LEN 3
-
-#ifdef SMART_DIMMING
-#define LDI_MTP_LENGTH 24
-#define LDI_MTP_ADDR 0xD3
-
-#define ELVSS_OFFSET_MAX 0x00
-#define ELVSS_OFFSET_2 0x04
-#define ELVSS_OFFSET_1 0x08
-#define ELVSS_OFFSET_MIN 0x0C
-
-#define ELVSS_MIN_VALUE 0x81
-#define ELVSS_MAX_VALUE_MODE0 0xA1
-#define ELVSS_MAX_VALUE_MODE1 0xA9
-
-#define ELVSS_MODE0_MIN_VOLTAGE 64
-#define ELVSS_MODE1_MIN_VOLTAGE 64
-
-struct str_elvss {
- u8 reference;
- u8 limit;
-};
-#endif
-
-struct lcd_info {
- unsigned int bl;
- unsigned int acl_enable;
- unsigned int cur_acl;
- unsigned int current_bl;
-
- unsigned int ldi_enable;
- unsigned int power;
- struct mutex lock;
- struct mutex bl_lock;
-
- struct device *dev;
- struct lcd_device *ld;
- struct backlight_device *bd;
- struct lcd_platform_data *lcd_pd;
- struct early_suspend early_suspend;
-
- unsigned char id[LDI_ID_LEN];
-
- unsigned char **gamma_table;
- unsigned char **elvss_table;
- unsigned char elvss_cmd_length;
-
-#ifdef SMART_DIMMING
- unsigned int support_elvss;
- struct str_smart_dim smart;
- struct str_elvss elvss;
-#endif
- unsigned int connected;
-
- struct dsim_global *dsim;
-};
-
-static int s6e8ax0_write(struct lcd_info *lcd, const unsigned char *seq, int len)
-{
- int size;
- const unsigned char *wbuf;
-
- if (!lcd->connected)
- return 0;
-
- mutex_lock(&lcd->lock);
-
- size = len;
- wbuf = seq;
-
- if (size == 1)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_NO_PARA, wbuf[0], 0);
- else if (size == 2)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_1_PARA, wbuf[0], wbuf[1]);
- else
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_LONG_WR, (unsigned int)wbuf, size);
-
- mutex_unlock(&lcd->lock);
-
- return 0;
-}
-
-static int _s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf)
-{
- int ret = 0;
-
- if (!lcd->connected)
- return ret;
-
- mutex_lock(&lcd->lock);
-
- if (lcd->dsim->ops->cmd_read)
- ret = lcd->dsim->ops->cmd_read(lcd->dsim, addr, count, buf);
-
- mutex_unlock(&lcd->lock);
-
- return ret;
-}
-
-static int s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf, u8 retry_cnt)
-{
- int ret = 0;
-
-read_retry:
- ret = _s6e8ax0_read(lcd, addr, count, buf);
- if (!ret) {
- if (retry_cnt) {
- printk(KERN_WARNING "[WARN:LCD] %s : retry cnt : %d\n", __func__, retry_cnt);
- retry_cnt--;
- goto read_retry;
- } else
- printk(KERN_ERR "[ERROR:LCD] %s : 0x%02x read failed\n", __func__, addr);
- }
-
- return ret;
-}
-
-#if 0
-static int get_backlight_level_from_brightness(int brightness)
-{
- int backlightlevel;
-
- /* brightness setting from platform is from 0 to 255
- * But in this driver, brightness is only supported from 0 to 24 */
-
- switch (brightness) {
- case 0:
- backlightlevel = GAMMA_30CD;
- break;
- case 1 ... 29:
- backlightlevel = GAMMA_30CD;
- break;
- case 30 ... 34:
- backlightlevel = GAMMA_40CD;
- break;
- case 35 ... 44:
- backlightlevel = GAMMA_50CD;
- break;
- case 45 ... 54:
- backlightlevel = GAMMA_60CD;
- break;
- case 55 ... 64:
- backlightlevel = GAMMA_70CD;
- break;
- case 65 ... 74:
- backlightlevel = GAMMA_80CD;
- break;
- case 75 ... 83:
- backlightlevel = GAMMA_90CD;
- break;
- case 84 ... 93:
- backlightlevel = GAMMA_100CD;
- break;
- case 94 ... 103:
- backlightlevel = GAMMA_105CD;
- break;
- case 104 ... 113:
- backlightlevel = GAMMA_110CD;
- break;
- case 114 ... 122:
- backlightlevel = GAMMA_120CD;
- break;
- case 123 ... 132:
- backlightlevel = GAMMA_130CD;
- break;
- case 133 ... 142:
- backlightlevel = GAMMA_140CD;
- break;
- case 143 ... 152:
- backlightlevel = GAMMA_150CD;
- break;
- case 153 ... 162:
- backlightlevel = GAMMA_160CD;
- break;
- case 163 ... 171:
- backlightlevel = GAMMA_170CD;
- break;
- case 172 ... 181:
- backlightlevel = GAMMA_180CD;
- break;
- case 182 ... 191:
- backlightlevel = GAMMA_190CD;
- break;
- case 192 ... 201:
- backlightlevel = GAMMA_200CD;
- break;
- case 202 ... 210:
- backlightlevel = GAMMA_205CD;
- break;
- case 211 ... 220:
- backlightlevel = GAMMA_210CD;
- break;
- case 221 ... 230:
- backlightlevel = GAMMA_220CD;
- break;
- case 231 ... 240:
- backlightlevel = GAMMA_230CD;
- break;
- case 241 ... 250:
- backlightlevel = GAMMA_240CD;
- break;
- case 251 ... 255:
- backlightlevel = GAMMA_250CD;
- break;
- default:
- backlightlevel = DEFAULT_GAMMA_LEVEL;
- break;
- }
- return backlightlevel;
-}
-#endif
-
-static int s6e8ax0_gamma_ctl(struct lcd_info *lcd)
-{
- /* Gamma Select */
- s6e8ax0_write(lcd, SEQ_GAMMA_SELECT, ARRAY_SIZE(SEQ_GAMMA_SELECT));
-
- s6e8ax0_write(lcd, lcd->gamma_table[lcd->bl], GAMMA_PARAM_SIZE);
-
- /* Gamma Set Update */
- s6e8ax0_write(lcd, SEQ_GAMMA_UPDATE, ARRAY_SIZE(SEQ_GAMMA_UPDATE));
-
- return 0;
-}
-
-static int s6e8ax0_set_acl(struct lcd_info *lcd)
-{
- int ret = 0;
-
- if (lcd->acl_enable) {
- if (lcd->cur_acl == 0) {
- if (lcd->bl == 0 || lcd->bl == 1) {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n", __func__, lcd->cur_acl);
- } else
- s6e8ax0_write(lcd, SEQ_ACL_ON, ARRAY_SIZE(SEQ_ACL_ON));
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_on\n", __func__, lcd->cur_acl);
- }
- switch (lcd->bl) {
- case GAMMA_30CD ... GAMMA_40CD: /* 30cd ~ 40cd */
- if (lcd->cur_acl != 0) {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- default:
- if (lcd->cur_acl != 40) {
- s6e8ax0_write(lcd, ACL_CUTOFF_TABLE[1], ACL_PARAM_SIZE);
- lcd->cur_acl = 40;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d\n", __func__, lcd->cur_acl);
- }
- break;
- }
- } else {
- s6e8ax0_write(lcd, SEQ_ACL_OFF, ARRAY_SIZE(SEQ_ACL_OFF));
- lcd->cur_acl = 0;
- dev_dbg(&lcd->ld->dev, "%s : cur_acl=%d, acl_off\n", __func__, lcd->cur_acl);
- }
-
- if (ret) {
- ret = -EPERM;
- goto acl_err;
- }
-
-acl_err:
- return ret;
-}
-
-static int s6e8ax0_set_elvss(struct lcd_info *lcd)
-{
- int ret = 0;
- u32 candela = candela_table[lcd->bl];
-
- switch (candela) {
- case 0 ... 100:
- ret = s6e8ax0_write(lcd, lcd->elvss_table[0], lcd->elvss_cmd_length);
- break;
- case 101 ... 150:
- ret = s6e8ax0_write(lcd, lcd->elvss_table[1], lcd->elvss_cmd_length);
- break;
- case 151 ... 200:
- ret = s6e8ax0_write(lcd, lcd->elvss_table[2], lcd->elvss_cmd_length);
- break;
- case 201 ... 250:
- ret = s6e8ax0_write(lcd, lcd->elvss_table[3], lcd->elvss_cmd_length);
- break;
- default:
- break;
- }
-
- dev_dbg(&lcd->ld->dev, "level = %d\n", lcd->bl);
-
- if (ret) {
- ret = -EPERM;
- goto elvss_err;
- }
-
-elvss_err:
- return ret;
-}
-
-#ifdef SMART_DIMMING
-static u8 get_elvss_offset(u32 elvss_level)
-{
- u8 offset = 0;
-
- switch (elvss_level) {
- case 0:
- offset = ELVSS_OFFSET_MIN;
- break;
- case 1:
- offset = ELVSS_OFFSET_1;
- break;
- case 2:
- offset = ELVSS_OFFSET_2;
- break;
- case 3:
- offset = ELVSS_OFFSET_MAX;
- break;
- default:
- offset = ELVSS_OFFSET_MAX;
- break;
- }
- return offset;
-}
-
-static u8 get_elvss_value(struct lcd_info *lcd, u8 elvss_level)
-{
- u8 ref = 0;
- u8 offset;
- u8 elvss_max_value;
-
- ref = (lcd->elvss.reference | 0x80);
-
- if (lcd->elvss.limit == 0x00)
- elvss_max_value = ELVSS_MAX_VALUE_MODE0;
- else if (lcd->elvss.limit == 0x01)
- elvss_max_value = ELVSS_MAX_VALUE_MODE1;
- else {
- printk(KERN_ERR "[ERROR:ELVSS]:%s undefined elvss limit value :%x\n", __func__, lcd->elvss.limit);
- return 0;
- }
-
- offset = get_elvss_offset(elvss_level);
- ref += offset;
-
- if (ref < ELVSS_MIN_VALUE)
- ref = ELVSS_MIN_VALUE;
- else if (ref > elvss_max_value)
- ref = elvss_max_value;
-
- return ref;
-}
-
-static int init_elvss_table(struct lcd_info *lcd)
-{
- int i, ret = 0;
-
- lcd->elvss_table = kzalloc(ELVSS_STATUS_MAX * sizeof(u8 *), GFP_KERNEL);
-
- if (IS_ERR_OR_NULL(lcd->elvss_table)) {
- pr_err("failed to allocate elvss table\n");
- ret = -ENOMEM;
- goto err_alloc_elvss_table;
- }
-
- for (i = 0; i < ELVSS_STATUS_MAX; i++) {
- lcd->elvss_table[i] = kzalloc(3 * sizeof(u8), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->elvss_table[i])) {
- pr_err("failed to allocate elvss\n");
- ret = -ENOMEM;
- goto err_alloc_elvss;
- }
- lcd->elvss_table[i][0] = 0xB1;
- lcd->elvss_table[i][1] = 0x84;
- lcd->elvss_table[i][2] = get_elvss_value(lcd, i);
- }
-
- lcd->elvss_cmd_length = 3;
-
- return 0;
-
-err_alloc_elvss:
- while (i > 0) {
- kfree(lcd->elvss_table[i-1]);
- i--;
- }
- kfree(lcd->elvss_table);
-err_alloc_elvss_table:
- return ret;
-}
-
-static int init_gamma_table(struct lcd_info *lcd)
-{
- int i, ret = 0;
-
- lcd->gamma_table = kzalloc(GAMMA_MAX * sizeof(u8 *), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->gamma_table)) {
- pr_err("failed to allocate gamma table\n");
- ret = -ENOMEM;
- goto err_alloc_gamma_table;
- }
-
- for (i = 0; i < GAMMA_MAX; i++) {
- lcd->gamma_table[i] = kzalloc(GAMMA_PARAM_SIZE * sizeof(u8), GFP_KERNEL);
- if (IS_ERR_OR_NULL(lcd->gamma_table[i])) {
- pr_err("failed to allocate gamma\n");
- ret = -ENOMEM;
- goto err_alloc_gamma;
- }
- lcd->gamma_table[i][0] = 0xFA;
- calc_gamma_table(&lcd->smart, candela_table[i]-1, lcd->gamma_table[i]+1);
- }
-#if 0
- for (i = 0; i < GAMMA_MAX; i++) {
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- printk("0x%02x, ", lcd->gamma_table[i][j]);
- printk("\n");
- }
-#endif
- return 0;
-
-err_alloc_gamma:
- while (i > 0) {
- kfree(lcd->gamma_table[i-1]);
- i--;
- }
- kfree(lcd->gamma_table);
-err_alloc_gamma_table:
- return ret;
-}
-#endif
-
-static int update_brightness(struct lcd_info *lcd, u8 force)
-{
- int ret;
- u32 brightness;
-
- mutex_lock(&lcd->bl_lock);
-
- brightness = lcd->bd->props.brightness;
-
- lcd->bl = (brightness - candela_table[0]) / 10;
-
- lcd->bl = (lcd->bl >= ARRAY_SIZE(candela_table)) ? 0 : lcd->bl;
-
- if ((force) || ((lcd->ldi_enable) && (lcd->current_bl != lcd->bl))) {
-
- ret = s6e8ax0_gamma_ctl(lcd);
-
- ret = s6e8ax0_set_acl(lcd);
-
- ret = s6e8ax0_set_elvss(lcd);
-
- lcd->current_bl = lcd->bl;
-
- dev_info(&lcd->ld->dev, "brightness=%d, bl=%d\n", brightness, lcd->bl);
- }
-
- mutex_unlock(&lcd->bl_lock);
-
- return 0;
-}
-
-static int s6e8ax0_ldi_init(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_APPLY_LEVEL_2_KEY, ARRAY_SIZE(SEQ_APPLY_LEVEL_2_KEY));
- s6e8ax0_write(lcd, SEQ_POWER_CONTROL, ARRAY_SIZE(SEQ_POWER_CONTROL));
- s6e8ax0_write(lcd, SEQ_SLEEP_OUT, ARRAY_SIZE(SEQ_SLEEP_OUT));
- msleep(22); /* 1 frame + 5ms */
-
- s6e8ax0_write(lcd, SEQ_APPLY_MTP_KEY, ARRAY_SIZE(SEQ_APPLY_MTP_KEY));
- s6e8ax0_write(lcd, SEQ_PANEL_CONDITION_SET, ARRAY_SIZE(SEQ_PANEL_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_GAMMA_SELECT, ARRAY_SIZE(SEQ_GAMMA_SELECT));
- s6e8ax0_write(lcd, lcd->gamma_table[GAMMA_30CD], GAMMA_PARAM_SIZE);
- s6e8ax0_write(lcd, SEQ_GAMMA_UPDATE, ARRAY_SIZE(SEQ_GAMMA_UPDATE));
- s6e8ax0_write(lcd, SEQ_ETC_PWRCTL, ARRAY_SIZE(SEQ_ETC_PWRCTL));
- s6e8ax0_write(lcd, SEQ_ETC_SOURCE_CONTROL, ARRAY_SIZE(SEQ_ETC_SOURCE_CONTROL));
- s6e8ax0_write(lcd, SEQ_ELVSS_DEFAULT, ARRAY_SIZE(SEQ_ELVSS_DEFAULT));
- s6e8ax0_write(lcd, SEQ_ETC_NVM_SETTING, ARRAY_SIZE(SEQ_ETC_NVM_SETTING));
- s6e8ax0_write(lcd, SEQ_ELVSS_ON, ARRAY_SIZE(SEQ_ELVSS_ON));
- s6e8ax0_write(lcd, SEQ_ELVSS_44, ARRAY_SIZE(SEQ_ELVSS_44));
-
- s6e8ax0_write(lcd, SEQ_ACL_CUTOFF_40, ACL_PARAM_SIZE);
-
- s6e8ax0_write(lcd, SEQ_VREGOUT_SET, ARRAY_SIZE(SEQ_VREGOUT_SET));
-
- return ret;
-}
-
-static int s6e8ax0_ldi_enable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPLAY_ON, ARRAY_SIZE(SEQ_DISPLAY_ON));
-
- return ret;
-}
-
-static int s6e8ax0_ldi_disable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPLAY_OFF, ARRAY_SIZE(SEQ_DISPLAY_OFF));
- s6e8ax0_write(lcd, SEQ_STANDBY_ON, ARRAY_SIZE(SEQ_STANDBY_ON));
-
- return ret;
-}
-
-static int s6e8ax0_power_on(struct lcd_info *lcd)
-{
- int ret = 0;
- struct lcd_platform_data *pd = NULL;
- pd = lcd->lcd_pd;
-
- /* dev_info(&lcd->ld->dev, "%s\n", __func__); */
-
- ret = s6e8ax0_ldi_init(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to initialize ldi.\n");
- goto err;
- }
-
- msleep(120);
-
- ret = s6e8ax0_ldi_enable(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to enable ldi.\n");
- goto err;
- }
-
- lcd->ldi_enable = 1;
-
- update_brightness(lcd, 1);
-err:
- return ret;
-}
-
-static int s6e8ax0_power_off(struct lcd_info *lcd)
-{
- int ret = 0;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- lcd->ldi_enable = 0;
-
- ret = s6e8ax0_ldi_disable(lcd);
-
- msleep(120);
-
- return ret;
-}
-
-static int s6e8ax0_power(struct lcd_info *lcd, int power)
-{
- int ret = 0;
-
- if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_on(lcd);
- else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_off(lcd);
-
- if (!ret)
- lcd->power = power;
-
- return ret;
-}
-
-static int s6e8ax0_set_power(struct lcd_device *ld, int power)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
- power != FB_BLANK_NORMAL) {
- dev_err(&lcd->ld->dev, "power value should be 0, 1 or 4.\n");
- return -EINVAL;
- }
-
- return s6e8ax0_power(lcd, power);
-}
-
-static int s6e8ax0_get_power(struct lcd_device *ld)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- return lcd->power;
-}
-
-static int s6e8ax0_set_brightness(struct backlight_device *bd)
-{
- int ret = 0;
- int brightness = bd->props.brightness;
- struct lcd_info *lcd = bl_get_data(bd);
-
- /* dev_info(&lcd->ld->dev, "%s: brightness=%d\n", __func__, brightness); */
-
- if (brightness < MIN_BRIGHTNESS ||
- brightness > bd->props.max_brightness) {
- dev_err(&bd->dev, "lcd brightness should be %d to %d. now %d\n",
- MIN_BRIGHTNESS, MAX_BRIGHTNESS, brightness);
- return -EINVAL;
- }
-
- if (lcd->ldi_enable) {
- ret = update_brightness(lcd, 0);
- if (ret < 0) {
- dev_err(lcd->dev, "err in %s\n", __func__);
- return -EINVAL;
- }
- }
-
- return ret;
-}
-
-static int s6e8ax0_get_brightness(struct backlight_device *bd)
-{
- struct lcd_info *lcd = bl_get_data(bd);
-
- return candela_table[lcd->bl];
-}
-
-static struct lcd_ops s6e8ax0_lcd_ops = {
- .set_power = s6e8ax0_set_power,
- .get_power = s6e8ax0_get_power,
-};
-
-static const struct backlight_ops s6e8ax0_backlight_ops = {
- .get_brightness = s6e8ax0_get_brightness,
- .update_status = s6e8ax0_set_brightness,
-};
-
-static ssize_t lcd_type_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- char temp[15];
- sprintf(temp, "SMD_AMS767KC01\n");
- strcat(buf, temp);
- return strlen(buf);
-}
-
-static DEVICE_ATTR(lcd_type, 0444, lcd_type_show, NULL);
-
-static ssize_t power_reduce_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->acl_enable);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t power_reduce_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->acl_enable != value) {
- dev_info(dev, "%s - %d, %d\n", __func__, lcd->acl_enable, value);
- lcd->acl_enable = value;
- if (lcd->ldi_enable)
- s6e8ax0_set_acl(lcd);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(power_reduce, 0664, power_reduce_show, power_reduce_store);
-
-static ssize_t gamma_table_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int i, j;
-
- for (i = 0; i < GAMMA_MAX; i++) {
- for (j = 0; j < GAMMA_PARAM_SIZE; j++)
- printk("0x%02x, ", lcd->gamma_table[i][j]);
- printk("\n");
- }
-
- return strlen(buf);
-}
-static DEVICE_ATTR(gamma_table, 0444, gamma_table_show, NULL);
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-struct lcd_info *g_lcd;
-
-void s6e8ax0_early_suspend(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- set_dsim_lcd_enabled(0);
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-
-void s6e8ax0_late_resume(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- s6e8ax0_power(lcd, FB_BLANK_UNBLANK);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- set_dsim_lcd_enabled(1);
-
- return ;
-}
-#endif
-
-static void s6e8ax0_read_id(struct lcd_info *lcd, u8 *buf)
-{
- int ret = 0;
-
- ret = s6e8ax0_read(lcd, LDI_ID_REG, LDI_ID_LEN, buf, 3);
- if (!ret) {
- /* To protect ELVSS Wrong Operation */
- buf[0] = 0xA2;
- buf[1] = 0x15;
- buf[2] = 0x44;
- lcd->connected = 0;
- dev_info(&lcd->ld->dev, "panel is not connected well\n");
- }
-
- SEQ_VREGOUT_SET[1] = buf[0];
- SEQ_VREGOUT_SET[2] = buf[1];
- SEQ_VREGOUT_SET[3] = buf[2];
-}
-
-#ifdef SMART_DIMMING
-static int s6e8ax0_read_mtp(struct lcd_info *lcd, u8 *mtp_data)
-{
- int ret;
-
- ret = s6e8ax0_read(lcd, LDI_MTP_ADDR, LDI_MTP_LENGTH, mtp_data, 0);
-
- return ret;
-}
-
-static void s6e8ab0_check_id(struct lcd_info *lcd, u8 *idbuf)
-{
- u32 i;
-
- if ((idbuf[0] == 0xa2) && (idbuf[2] != 0x44))
- lcd->support_elvss = 1;
-
- if (lcd->support_elvss) {
- lcd->elvss.limit = (idbuf[2] & 0xc0) >> 6;
- lcd->elvss.reference = idbuf[2] & 0x3f;
- lcd->elvss_cmd_length = 3;
- printk(KERN_INFO "ID-3 is 0x%x support dynamic elvss\n", idbuf[2]);
- printk(KERN_INFO "Dynamic ELVSS Information\n");
- printk(KERN_INFO "limit : %02x\n", lcd->elvss.limit);
- }
-
- for (i = 0; i < LDI_ID_LEN; i++)
- lcd->smart.panelid[i] = idbuf[i];
-}
-#endif
-
-static int s6e8ax0_probe(struct device *dev)
-{
- int ret = 0;
- struct lcd_info *lcd;
-#ifdef SMART_DIMMING
- u8 mtp_data[LDI_MTP_LENGTH] = {0,};
-#endif
-
- lcd = kzalloc(sizeof(struct lcd_info), GFP_KERNEL);
- if (!lcd) {
- pr_err("failed to allocate for lcd\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- g_lcd = lcd;
-
- lcd->ld = lcd_device_register("panel", dev, lcd, &s6e8ax0_lcd_ops);
- if (IS_ERR(lcd->ld)) {
- pr_err("failed to register lcd device\n");
- ret = PTR_ERR(lcd->ld);
- goto out_free_lcd;
- }
-
- lcd->bd = backlight_device_register("panel", dev, lcd, &s6e8ax0_backlight_ops, NULL);
- if (IS_ERR(lcd->bd)) {
- pr_err("failed to register backlight device\n");
- ret = PTR_ERR(lcd->bd);
- goto out_free_backlight;
- }
-
- lcd->dev = dev;
- lcd->dsim = (struct dsim_global *)dev_get_drvdata(dev->parent);
- lcd->bd->props.max_brightness = MAX_BRIGHTNESS;
- lcd->bd->props.brightness = DEFAULT_BRIGHTNESS;
- lcd->bl = DEFAULT_GAMMA_LEVEL;
- lcd->current_bl = lcd->bl;
-
- lcd->acl_enable = 0;
- lcd->cur_acl = 0;
-
- lcd->power = FB_BLANK_UNBLANK;
- lcd->ldi_enable = 1;
- lcd->connected = 1;
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_power_reduce);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_lcd_type);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_gamma_table);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- dev_set_drvdata(dev, lcd);
-
- mutex_init(&lcd->lock);
- mutex_init(&lcd->bl_lock);
-
- s6e8ax0_read_id(lcd, lcd->id);
-
- dev_info(&lcd->ld->dev, "ID: %x, %x, %x\n", lcd->id[0], lcd->id[1], lcd->id[2]);
-
- dev_info(&lcd->ld->dev, "s6e8ab0 lcd panel driver has been probed.\n");
-
- lcd->gamma_table = (unsigned char **)gamma22_table_sm2;
- lcd->elvss_table = (unsigned char **)ELVSS_TABLE;
- lcd->elvss_cmd_length = ELVSS_PARAM_SIZE;
-
-#ifdef SMART_DIMMING
- s6e8ab0_check_id(lcd, lcd->id);
-
- init_table_info(&lcd->smart);
-
- ret = s6e8ax0_read_mtp(lcd, mtp_data);
- if (!ret) {
- printk(KERN_ERR "[LCD:ERROR] : %s read mtp failed\n", __func__);
- /*return -EPERM;*/
- }
-
- calc_voltage_table(&lcd->smart, mtp_data);
-
- if (lcd->connected) {
- ret = init_gamma_table(lcd);
- if (lcd->support_elvss)
- ret += init_elvss_table(lcd);
-
- if (ret) {
- lcd->gamma_table = (unsigned char **)gamma22_table_sm2;
- lcd->elvss_table = (unsigned char **)ELVSS_TABLE;
- lcd->elvss_cmd_length = ELVSS_PARAM_SIZE;
- }
- }
-
- update_brightness(lcd, 1);
-#endif
-
- return 0;
-
-out_free_backlight:
- lcd_device_unregister(lcd->ld);
- kfree(lcd);
- return ret;
-
-out_free_lcd:
- kfree(lcd);
- return ret;
-
-err_alloc:
- return ret;
-}
-
-static int __devexit s6e8ax0_remove(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- lcd_device_unregister(lcd->ld);
- backlight_device_unregister(lcd->bd);
- kfree(lcd);
-
- return 0;
-}
-
-/* Power down all displays on reboot, poweroff or halt. */
-static void s6e8ax0_shutdown(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
-}
-
-static struct mipi_lcd_driver s6e8ax0_mipi_driver = {
- .name = "s6e8ab0",
- .probe = s6e8ax0_probe,
- .remove = __devexit_p(s6e8ax0_remove),
- .shutdown = s6e8ax0_shutdown,
-};
-
-static int s6e8ax0_init(void)
-{
- return s5p_dsim_register_lcd_driver(&s6e8ax0_mipi_driver);
-}
-
-static void s6e8ax0_exit(void)
-{
- return;
-}
-
-module_init(s6e8ax0_init);
-module_exit(s6e8ax0_exit);
-
-MODULE_DESCRIPTION("MIPI-DSI S6E8AB0:AMS767KC01 (1280x800) Panel Driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/s3cfb_wa101s.c b/drivers/video/samsung_duallcd/s3cfb_wa101s.c
deleted file mode 100644
index 63910c0..0000000
--- a/drivers/video/samsung_duallcd/s3cfb_wa101s.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_wa101s.c
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com/
- *
- * 101WA01S 10.1" Landscape LCD module driver for the SMDK
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include "s3cfb.h"
-
-static struct s3cfb_lcd wa101 = {
-// .width = 1366,
- .width = 1360,
- .height = 768,
- .bpp = 24,
- .freq = 60,
-
- .timing = {
- .h_fp = 48,
- .h_bp = 80,
- .h_sw = 32,
- .v_fp = 3,
- .v_fpe = 0,
- .v_bp = 14,
- .v_bpe = 0,
- .v_sw = 5,
- },
-
- .polarity = {
- .rise_vclk = 1,
- .inv_hsync = 1,
- .inv_vsync = 1,
- .inv_vden = 0,
- },
-};
-
-/* name should be fixed as 's3cfb_set_lcd_info' */
-void s3cfb_set_lcd_info(struct s3cfb_global *ctrl)
-{
- wa101.init_ldi = NULL;
- ctrl->lcd = &wa101;
-}
diff --git a/drivers/video/samsung_duallcd/s5p-dsim.c b/drivers/video/samsung_duallcd/s5p-dsim.c
deleted file mode 100644
index 05f4658..0000000
--- a/drivers/video/samsung_duallcd/s5p-dsim.c
+++ /dev/null
@@ -1,1597 +0,0 @@
-/* linux/drivers/video/samsung/s5p-dsim.c
- *
- * Samsung MIPI-DSIM driver.
- *
- * InKi Dae, <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Modified by Samsung Electronics (UK) on May 2010
- *
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/clk.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/fb.h>
-#include <linux/ctype.h>
-#include <linux/platform_device.h>
-#include <linux/io.h>
-#include <linux/irq.h>
-#include <linux/memory.h>
-#include <linux/delay.h>
-#include <linux/interrupt.h>
-#include <linux/kthread.h>
-#include <linux/workqueue.h>
-#include <linux/regulator/consumer.h>
-#include <linux/gpio.h>
-#include <plat/clock.h>
-#include <plat/regs-dsim.h>
-#include <plat/gpio-cfg.h>
-#include <mach/map.h>
-#include <mach/dsim.h>
-#include <mach/mipi_ddi.h>
-#include <mach/irqs.h>
-
-#include "s5p-dsim.h"
-#include "s5p_dsim_lowlevel.h"
-#include "s3cfb.h"
-
-#ifdef CONFIG_HAS_WAKELOCK
-#include <linux/wakelock.h>
-#include <linux/earlysuspend.h>
-#include <linux/suspend.h>
-#endif
-
-struct mipi_lcd_info {
- struct list_head list;
- struct mipi_lcd_driver *mipi_drv;
-};
-
-static DEFINE_MUTEX(dsim_rd_wr_mutex);
-static DECLARE_COMPLETION(dsim_rd_comp);
-static DECLARE_COMPLETION(dsim_wr_comp);
-
-#define MIPI_RESP_ERR 0x02
-#define MIPI_RESP_EOTP 0x08
-#define MIPI_RESP_GENERIC_RD_1 0x11
-#define MIPI_RESP_GENERIC_RD_2 0x12
-#define MIPI_RESP_GENERIC_RD_LONG 0x1A
-#define MIPI_RESP_DCS_RD_LONG 0x1C
-#define MIPI_RESP_DCS_RD_1 0x21
-#define MIPI_RESP_DCS_RD_2 0x22
-
-#define MIPI_CMD_GENERIC_WR_0 0x03
-#define MIPI_CMD_GENERIC_WR_1 0x13
-#define MIPI_CMD_GENERIC_WR_2 0x23
-#define MIPI_CMD_GENERIC_WR_LONG 0x29
-
-#define MIPI_CMD_DSI_WR_0 0x05
-#define MIPI_CMD_DSI_WR_1 0x15
-#define MIPI_CMD_DSI_WR_LONG 0x39
-
-#define MIPI_CMD_GENERIC_RD_0 0x04
-#define MIPI_CMD_GENERIC_RD_1 0x14
-#define MIPI_CMD_GENERIC_RD_2 0x24
-
-#define MIPI_CMD_DSI_RD_0 0x06
-
-#define MIPI_CMD_DSI_SET_PKT_SZ 0x37
-
-#define DSIM_TIMEOUT msecs_to_jiffies(250)
-#define DSIM_RX_FIFO_READ_DONE 0x30800002
-#define DSIM_MAX_RX_FIFO 20
-
-#define S5P_DSIM_INT_SFR_FIFO_EMPTY 29
-#define S5P_DSIM_INT_BTA 25
-#define S5P_DSIM_INT_MSK_FRAME_DONE 24
-#define S5P_DSIM_INT_RX_TIMEOUT 21
-#define S5P_DSIM_INT_BTA_TIMEOUT 20
-#define S5P_DSIM_INT_RX_DONE 18
-#define S5P_DSIM_INT_RX_TE 17
-#define S5P_DSIM_INT_RX_ACK 16
-#define S5P_DSIM_INT_RX_ECC_ERR 15
-#define S5P_DSIM_IMT_RX_CRC_ERR 14
-
-static LIST_HEAD(lcd_info_list);
-static DEFINE_MUTEX(mipi_lock);
-static struct dsim_global *g_dsim;
-
-static struct s5p_platform_dsim *to_dsim_plat(struct device *dev)
-{
- struct platform_device *pdev = to_platform_device(dev);
-
- return (struct s5p_platform_dsim *)pdev->dev.platform_data;
-}
-
-static void s5p_dsim_frame_done_interrupt_enable(struct dsim_global *dsim, u8 enable)
-{
- u32 intmsk;
- u8 state = !enable;
-
- if (!dsim->mipi_ddi_pd->resume_complete)
- return;
-
- intmsk = readl(dsim->reg_base + S5P_DSIM_INTMSK);
-
- if (state == 0) /* enable Frame Done interrupts */
- intmsk &= ~(0x01 << S5P_DSIM_INT_MSK_FRAME_DONE);
- else /* disable Frame Done interrupts */
- intmsk |= (0x01 << S5P_DSIM_INT_MSK_FRAME_DONE);
-
- writel(intmsk, dsim->reg_base + S5P_DSIM_INTMSK);
-}
-
-void set_dsim_lcd_enabled(u8 enable)
-{
- struct dsim_global *dsim = g_dsim;
-
- dsim->dsim_lcd_info->lcd_enabled = enable;
- if (dsim->dsim_info->hs_toggle)
- s5p_dsim_frame_done_interrupt_enable(dsim, enable);
-}
-
-void set_dsim_hs_clk_toggle_count(u8 count)
-{
- struct dsim_global *dsim = g_dsim;
-
- dsim->dsim_toggle_per_frame_count = count;
- if (dsim->dsim_lcd_info->lcd_enabled)
- s5p_dsim_frame_done_interrupt_enable(dsim, count ? 1 : 0);
-}
-
-static void dsim_work_q_handler(struct work_struct *work)
-{
- struct dsim_global *dsim =
- container_of(work, struct dsim_global, dsim_work.work);
-
- s5p_dsim_frame_done_interrupt_enable(dsim, 1);
-}
-
-static void dsim_check_hs_toggle_work_q_handler(struct work_struct *work)
-{
- struct dsim_global *dsim =
- container_of(work, struct dsim_global, check_hs_toggle_work.work);
-
- if (dsim->dsim_info->hs_toggle) {
- dev_info(dsim->dev, "check_hs_toggle\n");
- schedule_delayed_work(&dsim->check_hs_toggle_work, msecs_to_jiffies(120000));
- }
-}
-
-unsigned char s5p_dsim_wr_data(void *ptr,
- unsigned int data_id, unsigned int data0, unsigned int data1)
-{
- struct dsim_global *dsim = ptr;
- unsigned int dsim_base = dsim->reg_base;
-
- if (dsim->state == DSIM_STATE_ULPS) {
- dev_err(dsim->dev, "DSIM state: ULPS\n");
- return DSIM_FALSE;
- }
-
- if (dsim->mipi_ddi_pd->resume_complete == 0) {
- dev_err(dsim->dev, "DSIM Status: SUSPEND\n");
- return DSIM_FALSE;
- }
-
- mutex_lock(&dsim_rd_wr_mutex);
-
- switch (data_id) {
- /* short packet types of packet types for command. */
- case GEN_SHORT_WR_NO_PARA:
- case GEN_SHORT_WR_1_PARA:
- case GEN_SHORT_WR_2_PARA:
- case DCS_WR_NO_PARA:
- case DCS_WR_1_PARA:
- case SET_MAX_RTN_PKT_SIZE:
- s5p_dsim_wr_tx_header(dsim_base, (unsigned char) data_id,
- (unsigned char) data0, (unsigned char) data1);
- mutex_unlock(&dsim_rd_wr_mutex);
- return DSIM_TRUE; /* response should be implemented */
- /* general command */
- case CMD_OFF:
- case CMD_ON:
- case SHUT_DOWN:
- case TURN_ON:
- s5p_dsim_wr_tx_header(dsim_base, (unsigned char) data_id,
- (unsigned char) data0, (unsigned char) data1);
- mutex_unlock(&dsim_rd_wr_mutex);
- return DSIM_TRUE; /* response should be implemented. */
- /* packet types for video data */
- case VSYNC_START:
- case VSYNC_END:
- case HSYNC_START:
- case HSYNC_END:
- case EOT_PKT:
- mutex_unlock(&dsim_rd_wr_mutex);
- return DSIM_TRUE;
-
- /* short and response packet types for command */
- case GEN_RD_1_PARA:
- case GEN_RD_2_PARA:
- case GEN_RD_NO_PARA:
- case DCS_RD_NO_PARA:
- s5p_dsim_clear_interrupt(dsim_base, 0xffffffff);
- s5p_dsim_wr_tx_header(dsim_base, (unsigned char) data_id,
- (unsigned char) data0, (unsigned char) data1);
- mutex_unlock(&dsim_rd_wr_mutex);
- return DSIM_FALSE; /* response should be implemented. */
-
- /* long packet type and null packet */
- case NULL_PKT:
- case BLANKING_PKT:
- mutex_unlock(&dsim_rd_wr_mutex);
- return DSIM_TRUE;
- case GEN_LONG_WR:
- case DCS_LONG_WR:
- {
- u32 uCnt = 0;
- u32* pWordPtr = (u32 *)data0;
- INIT_COMPLETION(dsim_wr_comp);
-
- do {
- s5p_dsim_wr_tx_data(dsim_base, pWordPtr[uCnt]);
- } while (((data1-1) / 4) > uCnt++);
-
- /* put data into header fifo */
- s5p_dsim_wr_tx_header(dsim_base, (unsigned char) data_id,
- (unsigned char) (((unsigned short) data1) & 0xff),
- (unsigned char) ((((unsigned short) data1) & 0xff00) >> 8));
-
- if (!wait_for_completion_interruptible_timeout(&dsim_wr_comp, DSIM_TIMEOUT)) {
- dev_err(dsim->dev, "[DSIM:ERROR] %s Timeout\n", __func__);
- mutex_unlock(&dsim_rd_wr_mutex);
- return DSIM_FALSE;
- }
- mutex_unlock(&dsim_rd_wr_mutex);
- return DSIM_TRUE;
- }
- /* packet typo for video data */
- case RGB565_PACKED:
- case RGB666_PACKED:
- case RGB666_LOOSLY:
- case RGB888_PACKED:
- mutex_unlock(&dsim_rd_wr_mutex);
- return DSIM_TRUE; /* response should be implemented. */
- default:
- dev_warn(dsim->dev, "data id %x is not supported current DSI spec\n", data_id);
- mutex_unlock(&dsim_rd_wr_mutex);
- return DSIM_FALSE;
- }
-}
-
-int s5p_dsim_rd_data(void *ptr, u8 addr, u16 count, u8 *buf)
-{
- u32 i, temp;
- u8 response = 0;
- u16 rxsize;
- u32 txhd;
- u32 rxhd;
- int j;
- struct dsim_global *dsim = ptr;
- unsigned int reg_base = dsim->reg_base;
-
- if (dsim->mipi_ddi_pd->resume_complete == 0) {
- dev_err(dsim->dev, "DSIM Status: SUSPEND\n");
- return DSIM_FALSE;
- }
-
- mutex_lock(&dsim_rd_wr_mutex);
- INIT_COMPLETION(dsim_rd_comp);
-
- switch (count) {
- case 1:
-#if defined(CONFIG_FB_S5P_S6E63M0)
- response = MIPI_RESP_DCS_RD_1;
-#else
- response = MIPI_RESP_GENERIC_RD_1;
-#endif /* CONFIG_FB_S5P_S6E63M0 */
- break;
- case 2:
-#if defined(CONFIG_FB_S5P_S6E63M0)
- response = MIPI_RESP_DCS_RD_2;
-#else
- response = MIPI_RESP_GENERIC_RD_2;
-#endif /* CONFIG_FB_S5P_S6E63M0 */
- break;
- default:
- response = MIPI_RESP_GENERIC_RD_LONG;
- break;
- }
-
- /* set return packet size */
- txhd = MIPI_CMD_DSI_SET_PKT_SZ | count << 8;
-
- writel(txhd, reg_base + S5P_DSIM_PKTHDR);
-
- /* set address to read */
-#if defined(CONFIG_FB_S5P_S6E63M0)
- txhd = MIPI_CMD_DSI_RD_0 | addr << 8;
-#else
- txhd = MIPI_CMD_GENERIC_RD_1 | addr << 8;
-#endif /* CONFIG_FB_S5P_S6E63M0 */
-
- writel(txhd, reg_base + S5P_DSIM_PKTHDR);
-
- if (!wait_for_completion_interruptible_timeout(&dsim_rd_comp, DSIM_TIMEOUT)) {
- dev_err(dsim->dev, "ERROR:%s timout\n", __func__);
- mutex_unlock(&dsim_rd_wr_mutex);
- return 0;
- }
-
- rxhd = readl(reg_base + S5P_DSIM_RXFIFO);
- dev_info(dsim->dev, "rxhd : %x\n", rxhd);
- if ((u8)(rxhd & 0xff) != response) {
- dev_err(dsim->dev, "[DSIM:ERROR]:%s wrong response rxhd : %x, response:%x\n"
- , __func__, rxhd, response);
- goto clear_rx_fifo;
- }
- /* for short packet */
- if (count <= 2) {
- for (i = 0; i < count; i++)
- buf[i] = (rxhd >> (8+(i*8))) & 0xff;
- rxsize = count;
- } else {
- /* for long packet */
- rxsize = (u16)((rxhd & 0x00ffff00) >> 8);
- dev_info(dsim->dev, "rcv size : %d\n", rxsize);
- if (rxsize != count) {
- dev_err(dsim->dev, "[DSIM:ERROR]:%s received data size mismatch received : %d, requested : %d\n",
- __func__, rxsize, count);
- goto clear_rx_fifo;
- }
-
- for (i = 0; i < rxsize>>2; i++) {
- temp = readl(reg_base + S5P_DSIM_RXFIFO);
- dev_info(dsim->dev, "pkt : %08x\n", temp);
- for (j = 0; j < 4; j++) {
- buf[(i*4)+j] = (u8)(temp>>(j*8))&0xff;
- /* printk("Value : %02x\n",(temp>>(j*8))&0xff); */
- }
- }
- if (rxsize % 4) {
- temp = readl(reg_base + S5P_DSIM_RXFIFO);
- dev_info(dsim->dev, "pkt-l : %08x\n", temp);
- for (j = 0; j < rxsize%4; j++) {
- buf[(i*4)+j] = (u8)(temp>>(j*8))&0xff;
- /* printk("Value : %02x\n",(temp>>(j*8))&0xff); */
- }
- }
- }
-
- temp = readl(reg_base + S5P_DSIM_RXFIFO);
-
-#if !defined(CONFIG_FB_S5P_S6E63M0)
- if (temp != DSIM_RX_FIFO_READ_DONE) {
- dev_warn(dsim->dev, "[DSIM:WARN]:%s Can't found RX FIFO READ DONE FLAG : %x\n", __func__, temp);
- goto clear_rx_fifo;
- }
-#endif
-
- mutex_unlock(&dsim_rd_wr_mutex);
- return rxsize;
-
-clear_rx_fifo:
- i = 0;
- while (1) {
- temp = readl(reg_base+S5P_DSIM_RXFIFO);
- if ((temp == DSIM_RX_FIFO_READ_DONE) || (i > DSIM_MAX_RX_FIFO))
- break;
- dev_info(dsim->dev, "[DSIM:INFO] : %s clear rx fifo : %08x\n", __func__, temp);
- i++;
- }
- dev_info(dsim->dev, "[DSIM:INFO] : %s done count : %d, temp : %08x\n", __func__, i, temp);
-
- mutex_unlock(&dsim_rd_wr_mutex);
- return 0;
-
-}
-
-static irqreturn_t s5p_dsim_isr(int irq, void *dev_id)
-{
- int i;
- unsigned int intsrc = 0;
- unsigned int intmsk = 0;
- struct dsim_global *dsim = NULL;
-
- dsim = (struct dsim_global *)dev_id;
- if (!dsim) {
- printk(KERN_ERR "%s:error:wrong parameter\n", __func__);
- return IRQ_HANDLED;
- }
-
- intsrc = readl(dsim->reg_base + S5P_DSIM_INTSRC);
- intmsk = readl(dsim->reg_base + S5P_DSIM_INTMSK);
-
- intmsk = ~(intmsk) & intsrc;
-
- for (i = 0; i < 32; i++) {
- if (intmsk & (0x01<<i)) {
- switch (i) {
- case S5P_DSIM_INT_BTA:
- /* printk("S5P_DSIM_INT_BTA\n"); */
- break;
- case S5P_DSIM_INT_RX_TIMEOUT:
- /* printk("S5P_DSIM_INT_RX_TIMEOUT\n"); */
- break;
- case S5P_DSIM_INT_BTA_TIMEOUT:
- /* printk("S5P_DSIM_INT_BTA_TIMEOUT\n"); */
- break;
- case S5P_DSIM_INT_RX_DONE:
- complete_all(&dsim_rd_comp);
- /* printk("S5P_DSIM_INT_RX_DONE\n"); */
- break;
- case S5P_DSIM_INT_RX_TE:
- /* printk("S5P_DSIM_INT_RX_TE\n"); */
- break;
- case S5P_DSIM_INT_RX_ACK:
- /* printk("S5P_DSIM_INT_RX_ACK\n"); */
- break;
- case S5P_DSIM_INT_RX_ECC_ERR:
- /* printk("S5P_DSIM_INT_RX_ECC_ERR\n"); */
- break;
- case S5P_DSIM_IMT_RX_CRC_ERR:
- /* printk("S5P_DSIM_IMT_RX_CRC_ERR\n"); */
- break;
- case S5P_DSIM_INT_SFR_FIFO_EMPTY:
- /* printk("S5P_DSIM_INT_SFR_FIFO_EMPTY\n"); */
- complete_all(&dsim_wr_comp);
- break;
- case S5P_DSIM_INT_MSK_FRAME_DONE:
- /* printk("S5P_DSIM_INT_MSK_FRAME_DONE\n"); */
- if (dsim->dsim_lcd_info->lcd_enabled && dsim->mipi_ddi_pd->resume_complete) {
- if (completion_done(&dsim_wr_comp) && completion_done(&dsim_rd_comp)) {
- if (s3cfb_vsync_status_check()) {
- s5p_dsim_toggle_hs_clock(dsim->reg_base);
- if (!dsim->dsim_toggle_per_frame_count) {
- s5p_dsim_frame_done_interrupt_enable(dsim, 0);
- if (likely(dsim->dsim_info->hs_toggle - 1))
- schedule_delayed_work(&dsim->dsim_work, dsim->dsim_info->hs_toggle);
- }
- if (dsim->dsim_toggle_per_frame_count)
- dsim->dsim_toggle_per_frame_count--;
- }
- }
- }
- break;
- }
- }
- }
- /* clear irq */
- writel(intsrc, dsim->reg_base + S5P_DSIM_INTSRC);
- return IRQ_HANDLED;
-}
-
-static void s5p_dsim_init_header_fifo(struct dsim_global *dsim)
-{
- unsigned int cnt;
-
- for (cnt = 0; cnt < DSIM_HEADER_FIFO_SZ; cnt++)
- dsim->header_fifo_index[cnt] = -1;
- return;
-}
-
-static unsigned char s5p_dsim_pll_on(unsigned int dsim_base, unsigned char enable)
-{
- if (enable) {
- int sw_timeout = 1000;
- s5p_dsim_clear_interrupt(dsim_base, DSIM_PLL_STABLE);
- s5p_dsim_enable_pll(dsim_base, 1);
- while (1) {
- sw_timeout--;
- if (s5p_dsim_is_pll_stable(dsim_base))
- return DSIM_TRUE;
- if (sw_timeout == 0)
- return DSIM_FALSE;
- }
- } else
- s5p_dsim_enable_pll(dsim_base, 0);
-
- return DSIM_TRUE;
-}
-
-static unsigned long s5p_dsim_change_pll(struct dsim_global *dsim, unsigned char pre_divider,
- unsigned short main_divider, unsigned char scaler)
-{
- unsigned long dfin_pll, dfvco, dpll_out;
- unsigned char freq_band;
- unsigned char temp0 = 0, temp1 = 0;
- unsigned int dsim_base = dsim->reg_base;
-
- dfin_pll = (MIPI_FIN / pre_divider);
-
- if (dfin_pll < 6 * 1000 * 1000 || dfin_pll > 12 * 1000 * 1000) {
- dev_warn(dsim->dev, "warning!!\n");
- dev_warn(dsim->dev, "fin_pll range is 6MHz ~ 12MHz\n");
- dev_warn(dsim->dev, "fin_pll of mipi dphy pll is %luMHz\n", (dfin_pll / 1000000));
-
- s5p_dsim_enable_afc(dsim_base, 0, 0);
- } else {
- if (dfin_pll < 7 * 1000000)
- s5p_dsim_enable_afc(dsim_base, 1, 0x1);
- else if (dfin_pll < 8 * 1000000)
- s5p_dsim_enable_afc(dsim_base, 1, 0x0);
- else if (dfin_pll < 9 * 1000000)
- s5p_dsim_enable_afc(dsim_base, 1, 0x3);
- else if (dfin_pll < 10 * 1000000)
- s5p_dsim_enable_afc(dsim_base, 1, 0x2);
- else if (dfin_pll < 11 * 1000000)
- s5p_dsim_enable_afc(dsim_base, 1, 0x5);
- else
- s5p_dsim_enable_afc(dsim_base, 1, 0x4);
- }
-
- dfvco = dfin_pll * main_divider;
- dev_dbg(dsim->dev, "dfvco = %lu, dfin_pll = %lu, main_divider = %d\n",
- dfvco, dfin_pll, main_divider);
- if (dfvco < 500000000 || dfvco > 1000000000) {
- dev_warn(dsim->dev, "Caution!!\n");
- dev_warn(dsim->dev, "fvco range is 500MHz ~ 1000MHz\n");
- dev_warn(dsim->dev, "fvco of mipi dphy pll is %luMHz\n", (dfvco / 1000000));
- }
-
- dpll_out = dfvco / (1 << scaler);
- dev_dbg(dsim->dev, "dpll_out = %lu, dfvco = %lu, scaler = %d\n",
- dpll_out, dfvco, scaler);
- if (dpll_out < 100 * 1000000)
- freq_band = 0x0;
- else if (dpll_out < 120 * 1000000)
- freq_band = 0x1;
- else if (dpll_out < 170 * 1000000)
- freq_band = 0x2;
- else if (dpll_out < 220 * 1000000)
- freq_band = 0x3;
- else if (dpll_out < 270 * 1000000)
- freq_band = 0x4;
- else if (dpll_out < 320 * 1000000)
- freq_band = 0x5;
- else if (dpll_out < 390 * 1000000)
- freq_band = 0x6;
- else if (dpll_out < 450 * 1000000)
- freq_band = 0x7;
- else if (dpll_out < 510 * 1000000)
- freq_band = 0x8;
- else if (dpll_out < 560 * 1000000)
- freq_band = 0x9;
- else if (dpll_out < 640 * 1000000)
- freq_band = 0xa;
- else if (dpll_out < 690 * 1000000)
- freq_band = 0xb;
- else if (dpll_out < 770 * 1000000)
- freq_band = 0xc;
- else if (dpll_out < 870 * 1000000)
- freq_band = 0xd;
- else if (dpll_out < 950 * 1000000)
- freq_band = 0xe;
- else
- freq_band = 0xf;
-
- dev_dbg(dsim->dev, "freq_band = %d\n", freq_band);
-
- s5p_dsim_pll_freq(dsim_base, pre_divider, main_divider, scaler);
-
- s5p_dsim_hs_zero_ctrl(dsim_base, temp0);
- s5p_dsim_prep_ctrl(dsim_base, temp1);
-
- /* Freq Band */
- s5p_dsim_pll_freq_band(dsim_base, freq_band);
-
- /* Stable time */
- s5p_dsim_pll_stable_time(dsim_base, dsim->dsim_info->pll_stable_time);
-
- /* Enable PLL */
- dev_dbg(dsim->dev, "FOUT of mipi dphy pll is %luMHz\n", (dpll_out / 1000000));
-
- return dpll_out;
-}
-
-static void s5p_dsim_set_clock(struct dsim_global *dsim,
- unsigned char byte_clk_sel, unsigned char enable)
-{
- unsigned int esc_div;
- unsigned long esc_clk_error_rate;
- unsigned int dsim_base = dsim->reg_base;
-
- if (enable) {
- dsim->e_clk_src = byte_clk_sel;
-
- /* Escape mode clock and byte clock source */
- s5p_dsim_set_byte_clock_src(dsim_base, byte_clk_sel);
-
- /* DPHY, DSIM Link : D-PHY clock out */
- if (byte_clk_sel == DSIM_PLL_OUT_DIV8) {
- dsim->hs_clk = s5p_dsim_change_pll(dsim, dsim->dsim_info->p,
- dsim->dsim_info->m, dsim->dsim_info->s);
- dsim->byte_clk = dsim->hs_clk / 8;
- s5p_dsim_enable_pll_bypass(dsim_base, 0);
- s5p_dsim_pll_on(dsim_base, 1);
- usleep_range(1000, 1000);
- /* DPHY : D-PHY clock out, DSIM link : external clock out */
- } else if (byte_clk_sel == DSIM_EXT_CLK_DIV8)
- dev_warn(dsim->dev, "this project is not supported external clock source for MIPI DSIM\n");
- else if (byte_clk_sel == DSIM_EXT_CLK_BYPASS)
- dev_warn(dsim->dev, "this project is not supported external clock source for MIPI DSIM\n");
-
- /* escape clock divider */
- esc_div = dsim->byte_clk / (dsim->dsim_info->esc_clk);
- dev_dbg(dsim->dev, "esc_div = %d, byte_clk = %lu, esc_clk = %lu\n",
- esc_div, dsim->byte_clk, dsim->dsim_info->esc_clk);
- if ((dsim->byte_clk / esc_div) >= 20000000 ||
- (dsim->byte_clk / esc_div) > dsim->dsim_info->esc_clk)
- esc_div += 1;
-
- dsim->escape_clk = dsim->byte_clk / esc_div;
- dev_dbg(dsim->dev, "escape_clk = %lu, byte_clk = %lu, esc_div = %d\n",
- dsim->escape_clk, dsim->byte_clk, esc_div);
-
- /*
- * enable escclk on lane
- */
- s5p_dsim_enable_byte_clock(dsim_base, DSIM_TRUE);
-
- /* enable byte clk and escape clock */
- s5p_dsim_set_esc_clk_prs(dsim_base, 1, esc_div);
- /* escape clock on lane */
- s5p_dsim_enable_esc_clk_on_lane(dsim_base, (DSIM_LANE_CLOCK | dsim->data_lane), 1);
-
- dev_dbg(dsim->dev, "byte clock is %luMHz\n", (dsim->byte_clk / 1000000));
- dev_dbg(dsim->dev, "escape clock that user's need is %lu\n", (dsim->dsim_info->esc_clk / 1000000));
- dev_dbg(dsim->dev, "escape clock divider is %x\n", esc_div);
- dev_dbg(dsim->dev, "escape clock is %luMHz\n", ((dsim->byte_clk / esc_div) / 1000000));
-
- if ((dsim->byte_clk / esc_div) > dsim->escape_clk) {
- esc_clk_error_rate = dsim->escape_clk / (dsim->byte_clk / esc_div);
- dev_warn(dsim->dev, "error rate is %lu over\n", (esc_clk_error_rate / 100));
- } else if ((dsim->byte_clk / esc_div) < (dsim->escape_clk)) {
- esc_clk_error_rate = (dsim->byte_clk / esc_div) / dsim->escape_clk;
- dev_warn(dsim->dev, "error rate is %lu under\n", (esc_clk_error_rate / 100));
- }
- } else {
- s5p_dsim_enable_esc_clk_on_lane(dsim_base, (DSIM_LANE_CLOCK | dsim->data_lane), 0);
- s5p_dsim_set_esc_clk_prs(dsim_base, 0, 0);
-
- s5p_dsim_enable_byte_clock(dsim_base, DSIM_FALSE);
-
- if (byte_clk_sel == DSIM_PLL_OUT_DIV8)
- s5p_dsim_pll_on(dsim_base, 0);
- }
-}
-
-static int s5p_dsim_late_resume_init_dsim(struct dsim_global *dsim)
-{
- unsigned int dsim_base = dsim->reg_base;
-
- if (dsim->pd->init_d_phy)
- dsim->pd->init_d_phy(dsim->reg_base);
-
- dsim->state = DSIM_STATE_RESET;
-
- switch (dsim->dsim_info->e_no_data_lane) {
- case DSIM_DATA_LANE_1:
- dsim->data_lane = DSIM_LANE_DATA0;
- break;
- case DSIM_DATA_LANE_2:
- dsim->data_lane = DSIM_LANE_DATA0 | DSIM_LANE_DATA1;
- break;
- case DSIM_DATA_LANE_3:
- dsim->data_lane = DSIM_LANE_DATA0 | DSIM_LANE_DATA1 |
- DSIM_LANE_DATA2;
- break;
- case DSIM_DATA_LANE_4:
- dsim->data_lane = DSIM_LANE_DATA0 | DSIM_LANE_DATA1 |
- DSIM_LANE_DATA2 | DSIM_LANE_DATA3;
- break;
- default:
- dev_info(dsim->dev, "data lane is invalid\n");
- return -1;
- };
-
- s5p_dsim_init_header_fifo(dsim);
- s5p_dsim_sw_reset(dsim_base);
- s5p_dsim_dp_dn_swap(dsim_base, dsim->dsim_info->e_lane_swap);
-
- /* enable only frame done interrupt */
- /* s5p_dsim_clear_interrupt(dsim_base, AllDsimIntr); */
- /* s5p_dsim_set_interrupt_mask(dsim->reg_base, AllDsimIntr, 1); */
-
- return 0;
-}
-
-#if 0
-static int s5p_dsim_init_dsim(struct dsim_global *dsim)
-{
- unsigned int dsim_base = dsim->reg_base;
-
- if (dsim->pd->init_d_phy)
- dsim->pd->init_d_phy(dsim->reg_base);
-
- dsim->state = DSIM_STATE_RESET;
-
- switch (dsim->dsim_info->e_no_data_lane) {
- case DSIM_DATA_LANE_1:
- dsim->data_lane = DSIM_LANE_DATA0;
- break;
- case DSIM_DATA_LANE_2:
- dsim->data_lane = DSIM_LANE_DATA0 | DSIM_LANE_DATA1;
- break;
- case DSIM_DATA_LANE_3:
- dsim->data_lane = DSIM_LANE_DATA0 | DSIM_LANE_DATA1 |
- DSIM_LANE_DATA2;
- break;
- case DSIM_DATA_LANE_4:
- dsim->data_lane = DSIM_LANE_DATA0 | DSIM_LANE_DATA1 |
- DSIM_LANE_DATA2 | DSIM_LANE_DATA3;
- break;
- default:
- dev_info(dsim->dev, "data lane is invalid\n");
- return -1;
- };
-
- s5p_dsim_init_header_fifo(dsim);
- s5p_dsim_dp_dn_swap(dsim_base, dsim->dsim_info->e_lane_swap);
-
- /* enable only frame done interrupt */
- /* s5p_dsim_clear_interrupt(dsim_base, AllDsimIntr); */
- /* s5p_dsim_set_interrupt_mask(dsim->reg_base, AllDsimIntr, 1); */
-
- return 0;
-}
-#endif
-
-static void s5p_dsim_set_display_mode(struct dsim_global *dsim,
- struct dsim_lcd_config *main_lcd, struct dsim_lcd_config *sub_lcd)
-{
- struct s3cfb_lcd *main_lcd_panel_info = NULL, *sub_lcd_panel_info = NULL;
- struct s3cfb_lcd_timing *main_timing = NULL;
- unsigned int dsim_base = dsim->reg_base;
-
- if (main_lcd != NULL) {
- if (main_lcd->lcd_panel_info != NULL) {
- main_lcd_panel_info =
- (struct s3cfb_lcd *) main_lcd->lcd_panel_info;
-
- s5p_dsim_set_main_disp_resol(dsim_base,
- main_lcd_panel_info->height,
- main_lcd_panel_info->width);
- } else
- dev_warn(dsim->dev, "lcd panel info of main lcd is NULL\n");
- } else {
- dev_err(dsim->dev, "main lcd is NULL\n");
- return;
- }
-
- /* in case of VIDEO MODE (RGB INTERFACE) */
- if (dsim->dsim_lcd_info->e_interface == (u32)DSIM_VIDEO) {
-
- main_timing = &main_lcd_panel_info->timing;
- if (main_timing == NULL) {
- dev_err(dsim->dev, "main_timing is NULL\n");
- return;
- }
-
- s5p_dsim_set_main_disp_vporch(dsim_base,
- main_timing->cmd_allow_len,
- main_timing->stable_vfp, (u16) main_timing->v_bp);
- s5p_dsim_set_main_disp_hporch(dsim_base,
- main_timing->h_fp, (u16) main_timing->h_bp);
- s5p_dsim_set_main_disp_sync_area(dsim_base,
- main_timing->v_sw, (u16) main_timing->h_sw);
-
- /* in case of COMMAND MODE (CPU or I80 INTERFACE) */
- } else {
- if (sub_lcd != NULL) {
- if (sub_lcd->lcd_panel_info != NULL) {
- sub_lcd_panel_info =
- (struct s3cfb_lcd *)
- sub_lcd->lcd_panel_info;
-
- s5p_dsim_set_sub_disp_resol(dsim_base,
- sub_lcd_panel_info->height,
- sub_lcd_panel_info->width);
- } else
- dev_warn(dsim->dev, "lcd panel info of sub lcd is NULL\n");
- }
- }
-
- s5p_dsim_display_config(dsim_base, dsim->dsim_lcd_info, NULL);
-}
-
-static int s5p_dsim_init_link(struct dsim_global *dsim)
-{
- unsigned int time_out = 100;
- unsigned int dsim_base = dsim->reg_base;
-
- switch (dsim->state) {
- case DSIM_STATE_RESET:
- case DSIM_STATE_INIT:
- s5p_dsim_init_fifo_pointer(dsim_base, 0x0);
- usleep_range(10000, 10000);
- s5p_dsim_init_fifo_pointer(dsim_base, 0x1f);
-
- /* dsi configuration */
- s5p_dsim_init_config(dsim_base, dsim->dsim_lcd_info, NULL, dsim->dsim_info);
- s5p_dsim_enable_lane(dsim_base, DSIM_LANE_CLOCK, 1);
- s5p_dsim_enable_lane(dsim_base, dsim->data_lane, 1);
-
- /* set clock configuration */
- s5p_dsim_set_clock(dsim, dsim->dsim_info->e_byte_clk, 1);
- usleep_range(5000, 5000);
- /* check clock and data lane state is stop state */
- while (!(s5p_dsim_is_lane_state(dsim_base, DSIM_LANE_CLOCK) == DSIM_LANE_STATE_STOP) &&
- !(s5p_dsim_is_lane_state(dsim_base, dsim->data_lane) == DSIM_LANE_STATE_STOP)) {
- time_out--;
- if (time_out == 0) {
- dev_info(dsim->dev, "DSI Master state is not stop state!!!\n");
- dev_info(dsim->dev, "Please check initialization process\n");
-
- return DSIM_FALSE;
- }
- }
-
- if (time_out != 0) {
- /* dev_info(dsim->dev, "initialization of DSI Master is successful\n"); */
- /* dev_info(dsim->dev, "DSI Master state is stop state\n"); */
- }
-
- dsim->state = DSIM_STATE_STOP;
-
- /* BTA sequence counters */
- s5p_dsim_set_stop_state_counter(dsim_base, dsim->dsim_info->stop_holding_cnt);
- s5p_dsim_set_bta_timeout(dsim_base, dsim->dsim_info->bta_timeout);
- s5p_dsim_set_lpdr_timeout(dsim_base, dsim->dsim_info->rx_timeout);
-
- /* default LPDT by both cpu and lcd controller */
- s5p_dsim_set_data_mode(dsim_base, DSIM_TRANSFER_BOTH, DSIM_STATE_STOP);
-
- return DSIM_TRUE;
- default:
- dev_info(dsim->dev, "DSI Master is already init\n");
-
- return DSIM_FALSE;
- }
-}
-
-static unsigned char s5p_dsim_set_hs_enable(struct dsim_global *dsim)
-{
- u8 ret = DSIM_FALSE;
- unsigned int dsim_base = dsim->reg_base;
-
- if (dsim->state == DSIM_STATE_STOP) {
- if (dsim->e_clk_src != DSIM_EXT_CLK_BYPASS) {
- dsim->state = DSIM_STATE_HSCLKEN;
-#if defined(CONFIG_FB_S5P_S6E63M0)
- s5p_dsim_set_data_mode(dsim_base,
- DSIM_TRANSFER_BYLCDC, DSIM_STATE_HSCLKEN);
-#else
- s5p_dsim_set_data_mode(dsim_base,
- DSIM_TRANSFER_BOTH, DSIM_STATE_HSCLKEN);
-#endif
- s5p_dsim_enable_hs_clock(dsim_base, 1);
-
- ret = DSIM_TRUE;
- } else
- dev_warn(dsim->dev, "clock source is external bypass\n");
- } else
- dev_warn(dsim->dev, "DSIM is not stop state\n");
-
- return ret;
-}
-
-#if 0
-static unsigned char s5p_dsim_set_stopstate(struct dsim_global *dsim)
-{
- u8 ret = DSIM_FALSE;
- unsigned int dsim_base = dsim->reg_base;
-
- if (dsim->state == DSIM_STATE_HSCLKEN) {
- if (dsim->e_clk_src != DSIM_EXT_CLK_BYPASS) {
- dsim->state = DSIM_STATE_STOP;
- s5p_dsim_enable_hs_clock(dsim_base, 0);
- ret = DSIM_TRUE;
- } else
- dev_warn(dsim->dev, "clock source is external bypass\n");
- } else if (dsim->state == DSIM_STATE_ULPS) {
- /* will be update for exiting ulps */
- ret = DSIM_TRUE;
- } else if (dsim->state == DSIM_STATE_STOP) {
- dev_warn(dsim->dev, "DSIM is already stop state\n");
- ret = DSIM_TRUE;
- } else
- dev_warn(dsim->dev, "DSIM is not stop state\n");
-
- return ret;
-}
-#endif
-
-static unsigned char s5p_dsim_set_data_transfer_mode(struct dsim_global *dsim,
- unsigned char data_path, unsigned char hs_enable)
-{
- u8 ret = DSIM_FALSE;
- unsigned int dsim_base = dsim->reg_base;
-
- if (hs_enable) {
- if (dsim->state == DSIM_STATE_HSCLKEN) {
- s5p_dsim_set_data_mode(dsim_base, data_path, DSIM_STATE_HSCLKEN);
- ret = DSIM_TRUE;
- } else {
- dev_err(dsim->dev, "HS Clock lane is not enabled\n");
- ret = DSIM_FALSE;
- }
- } else {
- if (dsim->state == DSIM_STATE_INIT || dsim->state == DSIM_STATE_ULPS) {
- dev_err(dsim->dev, "DSI Master is not STOP or HSDT state\n");
- ret = DSIM_FALSE;
- } else {
- s5p_dsim_set_data_mode(dsim_base, data_path, DSIM_STATE_STOP);
- ret = DSIM_TRUE;
- }
- }
-
- return ret;
-}
-
-int s5p_dsim_register_lcd_driver(struct mipi_lcd_driver *lcd_drv)
-{
- struct mipi_lcd_info *lcd_info = NULL;
- struct dsim_global *dsim = g_dsim;
-
- lcd_info = kmalloc(sizeof(struct mipi_lcd_info), GFP_KERNEL);
- if (lcd_info == NULL)
- return -ENOMEM;
-
- lcd_info->mipi_drv = kmalloc(sizeof(struct mipi_lcd_driver), GFP_KERNEL);
- if (lcd_info->mipi_drv == NULL) {
- kfree(lcd_info);
- return -ENOMEM;
- }
-
- memcpy(lcd_info->mipi_drv, lcd_drv, sizeof(struct mipi_lcd_driver));
-
- mutex_lock(&mipi_lock);
- list_add_tail(&lcd_info->list, &lcd_info_list);
- mutex_unlock(&mipi_lock);
-
- dev_dbg(dsim->dev, "registered lcd panel driver(%s) to mipi-dsi driver\n", lcd_drv->name);
-
- return 0;
-}
-
-static struct mipi_lcd_driver *scan_mipi_driver(struct dsim_global *dsim, const char *name)
-{
- struct mipi_lcd_info *lcd_info;
- struct mipi_lcd_driver *mipi_drv = NULL;
-
- mutex_lock(&mipi_lock);
-
- dev_dbg(dsim->dev, "find lcd panel driver(%s)\n", name);
-
- list_for_each_entry(lcd_info, &lcd_info_list, list) {
- mipi_drv = lcd_info->mipi_drv;
-
- if ((strcmp(mipi_drv->name, name)) == 0) {
- mutex_unlock(&mipi_lock);
- dev_dbg(dsim->dev, "found!!!(%s)\n", mipi_drv->name);
- return mipi_drv;
- }
- }
-
- dev_warn(dsim->dev, "failed to find lcd panel driver(%s)\n", name);
-
- mutex_unlock(&mipi_lock);
-
- return NULL;
-}
-
-static void s5p_dsim_interrupt_mask_set(struct dsim_global *dsim)
-{
- u32 int_stat;
-
- int_stat = readl(dsim->reg_base + S5P_DSIM_INTMSK);
-
- int_stat &= ~((0x01<<S5P_DSIM_INT_BTA) | (0x01<<S5P_DSIM_INT_RX_TIMEOUT) |
- (0x01<<S5P_DSIM_INT_BTA_TIMEOUT) | (0x01 << S5P_DSIM_INT_RX_DONE) |
- (0x01<<S5P_DSIM_INT_RX_TE) | (0x01<<S5P_DSIM_INT_RX_ACK) |
- (0x01<<S5P_DSIM_INT_RX_ECC_ERR) | (0x01<<S5P_DSIM_IMT_RX_CRC_ERR) |
- (0x01<<S5P_DSIM_INT_SFR_FIFO_EMPTY));
-
- writel(int_stat, dsim->reg_base + S5P_DSIM_INTMSK);
-}
-
-int s5p_dsim_fifo_clear(void)
-{
- int dsim_count = 0, ret;
- struct dsim_global *dsim = g_dsim;
-
- writel(SwRstRelease, dsim->reg_base + S5P_DSIM_INTSRC);
-
- writel(DSIM_FUNCRST, dsim->reg_base + S5P_DSIM_SWRST);
-
- do {
- if (++dsim_count > 90000) {
- dev_err(dsim->dev, "dsim fifo clear fail re_try dsim resume\n");
- ret = 0;
- break;
- }
-
- if (readl(dsim->reg_base + S5P_DSIM_INTSRC) & SwRstRelease) {
- s5p_dsim_interrupt_mask_set(dsim);
- ret = 1;
- break;
- }
- } while (1);
-
- return ret;
-}
-
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
-int s5p_dsim_get_panel_sel_value(void)
-{
- /*Temporary provided*/
- struct dsim_global *dsim = g_dsim;
- unsigned int lcd_sel_pin = dsim->mipi_ddi_pd->lcd_sel_pin;
- int sel;
-
- if (!lcd_sel_pin) {
- printk(KERN_ERR "lcd_sel_pin is NULL\n");
- return -EINVAL;
- }
- sel = gpio_get_value(lcd_sel_pin);
- dsim->panel_select = sel;
-
- return sel;
- /*Temporary provided*/
-}
-
-int s5p_dsim_get_lcd_sel_value(void)
-{
- struct dsim_global *dsim = g_dsim;
- unsigned int lcd_sel_pin = dsim->mipi_ddi_pd->lcd_sel_pin;
- int sel;
-
- if (!lcd_sel_pin) {
- printk(KERN_ERR "lcd_sel_pin is NULL\n");
- return -EINVAL;
- }
- sel = gpio_get_value(lcd_sel_pin);
- dsim->panel_select = sel;
-
- return sel;
-}
-
-int s5p_dsim_set_lcd_sel_value(unsigned int lcd_sel)
-{
- struct dsim_global *dsim = g_dsim;
- unsigned int lcd_sel_pin = dsim->mipi_ddi_pd->lcd_sel_pin;
- int prev_lcd_sel = s5p_dsim_get_lcd_sel_value();
-
- if (!lcd_sel_pin) {
- printk(KERN_ERR "lcd_sel_pin is NULL\n");
- return -EINVAL;
- }
-
- gpio_set_value(lcd_sel_pin, lcd_sel);
- return prev_lcd_sel;
-}
-
-int s5p_dsim_toggle_lcd(void)
-{
- struct dsim_global *dsim = g_dsim;
- int prev_lcd_sel = s5p_dsim_get_lcd_sel_value();
- int new_lcd_sel = prev_lcd_sel ^ 1;
-
- if (prev_lcd_sel < 0) {
- printk(KERN_ERR "previous lcd sel value is invalid\n");
- return -EINVAL;
- }
-
- prev_lcd_sel = s5p_dsim_set_lcd_sel_value(new_lcd_sel);
- if (dsim->mipi_ddi_pd->resume_complete) {
- if (s5p_dsim_fifo_clear() == 0) {
- s5p_dsim_early_suspend();
- mdelay(10);
- s5p_dsim_late_resume();
- if (s5p_dsim_fifo_clear() == 0)
- printk(KERN_ERR "dsim resume fail!!\n");
- }
- mdelay(10);
- }
- return 0;
-}
-
-int s5p_dsim_select_lcd(unsigned int lcd_sel)
-{
- struct dsim_global *dsim = g_dsim;
- int prev_lcd_sel;
-
- if ((lcd_sel != DDI_MAIN_LCD) &&
- (lcd_sel != DDI_SUB_LCD)) {
- printk(KERN_ERR "lcd_sel(%d) is invalid value\n", lcd_sel);
- return -EINVAL;
- }
- prev_lcd_sel = s5p_dsim_set_lcd_sel_value(lcd_sel);
- if (dsim->mipi_ddi_pd->resume_complete) {
- if (s5p_dsim_fifo_clear() == 0) {
- s5p_dsim_early_suspend();
- mdelay(10);
- s5p_dsim_late_resume();
- if (s5p_dsim_fifo_clear() == 0)
- printk(KERN_ERR "dsim resume fail!!\n");
- }
- mdelay(10);
- }
- return 0;
-}
-#endif /* CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD */
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-void s5p_dsim_early_suspend(void)
-{
- u32 int_stat = 0;
- pm_message_t state;
- struct dsim_global *dsim = g_dsim;
-
- dev_info(dsim->dev, "+%s\n", __func__);
-
- if (dsim->mipi_ddi_pd->resume_complete == 0)
- return;
-
- dsim->mipi_ddi_pd->resume_complete = 0;
- dsim->dsim_lcd_info->lcd_enabled = 0;
-
- /* int_stat = readl(dsim->reg_base + S5P_DSIM_INTMSK); */
-
- int_stat |= ((0x01<<S5P_DSIM_INT_BTA) | (0x01<<S5P_DSIM_INT_RX_TIMEOUT) |
- (0x01<<S5P_DSIM_INT_BTA_TIMEOUT) | (0x01 << S5P_DSIM_INT_RX_DONE) |
- (0x01<<S5P_DSIM_INT_RX_TE) | (0x01<<S5P_DSIM_INT_RX_ACK) |
- (0x01<<S5P_DSIM_INT_RX_ECC_ERR) | (0x01<<S5P_DSIM_IMT_RX_CRC_ERR) |
- (0x01<<S5P_DSIM_INT_SFR_FIFO_EMPTY) | (0x01 << S5P_DSIM_INT_MSK_FRAME_DONE));
-
- writel(int_stat, dsim->reg_base + S5P_DSIM_INTMSK);
-
- /* disable_irq(dsim->irq); */
- state.event = PM_EVENT_SUSPEND;
-
- if (dsim->mipi_drv->suspend)
- dsim->mipi_drv->suspend(dsim->dev, state);
-
- if (dsim->mipi_ddi_pd->lcd_power_on)
- dsim->mipi_ddi_pd->lcd_power_on(dsim->dev, 0);
-
- s5p_dsim_enable_hs_clock(dsim->reg_base, 0);
- s5p_dsim_set_clock(dsim, dsim->dsim_info->e_byte_clk, 0);
-
-#if defined(CONFIG_CPU_EXYNOS4210)
- writel(0x1, dsim->reg_base + S5P_DSIM_SWRST);
-#endif
-
- if (dsim->pd->exit_d_phy)
- dsim->pd->exit_d_phy(dsim->reg_base);
-
- clk_disable(dsim->clock);
-
- if (dsim->pd->mipi_power)
- dsim->pd->mipi_power(0);
-
- dev_info(dsim->dev, "-%s\n", __func__);
-
- return;
-}
-
-void s5p_dsim_late_resume(void)
-{
- struct dsim_global *dsim = g_dsim;
-
- dev_info(dsim->dev, "+%s\n", __func__);
-
- /* MIPI SIGNAL ON */
- if (dsim->pd->mipi_power)
- dsim->pd->mipi_power(1);
-
- clk_enable(dsim->clock);
- usleep_range(10000, 10000);
-
- if (dsim->mipi_ddi_pd->lcd_power_on)
- dsim->mipi_ddi_pd->lcd_power_on(dsim->dev, 1);
- usleep_range(25000, 25000);
-
- if (dsim->mipi_ddi_pd->lcd_reset)
- dsim->mipi_ddi_pd->lcd_reset();
- usleep_range(5000, 5000);
-
- s5p_dsim_late_resume_init_dsim(dsim);
- s5p_dsim_init_link(dsim);
- usleep_range(10000, 10000);
- s5p_dsim_set_hs_enable(dsim);
-#if defined(CONFIG_FB_S5P_S6E63M0)
- s5p_dsim_set_data_transfer_mode(dsim, DSIM_TRANSFER_BYCPU, 0);
-#else
- s5p_dsim_set_data_transfer_mode(dsim, DSIM_TRANSFER_BYCPU, 1);
-#endif
- s5p_dsim_set_display_mode(dsim, dsim->dsim_lcd_info, NULL);
- s5p_dsim_set_data_transfer_mode(dsim, DSIM_TRANSFER_BYLCDC, 1);
- /* s5p_dsim_set_interrupt_mask(dsim->reg_base, AllDsimIntr, 0); */
-
- dsim->mipi_ddi_pd->resume_complete = 1;
-
- dev_info(dsim->dev, "-%s\n", __func__);
-
- return;
-}
-
-#else
-#ifdef CONFIG_PM
-static int s5p_dsim_suspend(struct platform_device *pdev, pm_message_t state)
-{
- struct dsim_global *dsim = platform_get_drvdata(pdev);
-
- dev_info(&pdev->dev, "%s\n", __func__);
-
- dsim->mipi_ddi_pd->resume_complete = 0;
-
- if (dsim->mipi_drv->suspend)
- dsim->mipi_drv->suspend(&pdev->dev, state);
- else
- dev_warn(&pdev->dev, "suspend func is null\n");
-
- clk_disable(dsim->clock);
-
- if (dsim->pd->mipi_power)
- dsim->pd->mipi_power(0);
- else
- dev_warn(&pdev->dev, "mipi_power func is null\n");
-
- return 0;
-}
-
-static int s5p_dsim_resume(struct platform_device *pdev)
-{
- u32 int_stat;
-
- struct dsim_global *dsim = platform_get_drvdata(pdev);
-
- dev_info(&pdev->dev, "%s\n", __func__);
-
- if (dsim->pd->mipi_power)
- dsim->pd->mipi_power(1);
- else
- dev_warn(&pdev->dev, "mipi_power func is null\n");
-
- usleep_range(10000, 10000);
-
- clk_enable(dsim->clock);
-
- if (dsim->mipi_drv->resume)
- dsim->mipi_drv->resume(&pdev->dev);
- else
- dev_warn(&pdev->dev, "resume func is null\n");
-
- s5p_dsim_init_dsim(dsim);
- s5p_dsim_init_link(dsim);
-
- s5p_dsim_set_hs_enable(dsim);
- s5p_dsim_set_data_transfer_mode(dsim, DSIM_TRANSFER_BYCPU, 1);
-
- msleep(120);
-
- /* initialize lcd panel */
- if (dsim->mipi_drv->init)
- dsim->mipi_drv->init(&pdev->dev);
- else
- dev_warn(&pdev->dev, "init func is null\n");
-
- s5p_dsim_set_display_mode(dsim, dsim->dsim_lcd_info, NULL);
-
- s5p_dsim_set_data_transfer_mode(dsim, DSIM_TRANSFER_BYLCDC, 1);
-
- int_stat = readl(dsim->reg_base + S5P_DSIM_INTMSK);
-
- int_stat &= ~((0x01<<S5P_DSIM_INT_BTA) | (0x01<<S5P_DSIM_INT_RX_TIMEOUT) |
- (0x01<<S5P_DSIM_INT_BTA_TIMEOUT) | (0x01 << S5P_DSIM_INT_RX_DONE) |
- (0x01<<S5P_DSIM_INT_RX_TE) | (0x01<<S5P_DSIM_INT_RX_ACK) |
- (0x01<<S5P_DSIM_INT_RX_ECC_ERR) | (0x01<<S5P_DSIM_IMT_RX_CRC_ERR) |
- (0x01<<S5P_DSIM_INT_SFR_FIFO_EMPTY));
-
- writel(int_stat, dsim->reg_base + S5P_DSIM_INTMSK);
-
- dsim->mipi_ddi_pd->resume_complete = 1;
-
- return 0;
-}
-#else
-#define s5p_dsim_suspend NULL
-#define s5p_dsim_resume NULL
-#endif
-#endif
-
-u32 read_dsim_register(u32 num)
-{
- struct dsim_global *dsim = g_dsim;
-
- return readl(dsim->reg_base + (num*4));
-}
-
-static ssize_t hs_toggle_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- char temp[3];
- struct dsim_global *dsim = container_of(dev, struct dsim_global, panel);
-
- sprintf(temp, "%d\n", jiffies_to_msecs(dsim->dsim_info->hs_toggle));
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static int hs_toggle_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- int value;
- int rc;
- struct dsim_global *dsim = container_of(dev, struct dsim_global, panel);
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- dev_info(dev, "%s - %d, %d\n", __func__, jiffies_to_msecs(dsim->dsim_info->hs_toggle), value);
-
- if (value == 1) {
- dsim->dsim_info->hs_toggle = msecs_to_jiffies(3000);
- s5p_dsim_frame_done_interrupt_enable(dsim, 1);
- schedule_delayed_work(&dsim->check_hs_toggle_work, msecs_to_jiffies(120000));
- } else {
- dsim->dsim_info->hs_toggle = 0;
- s5p_dsim_frame_done_interrupt_enable(dsim, 0);
- cancel_delayed_work(&dsim->check_hs_toggle_work);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(hs_toggle, 0644, hs_toggle_show, hs_toggle_store);
-
-static ssize_t dsim_dump_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int reg_val, i;
- char temp[50];
- struct dsim_global *dsim = dev_get_drvdata(dev);
-
- for (i = 0; i < 25; i++) {
- reg_val = readl(dsim->reg_base + i*4);
- sprintf(temp, "[DSIM]0x11C8_00%02X = 0x%08X\n", (i*4), reg_val);
- strcat(buf, temp);
- }
-
- return strlen(buf);
-}
-static DEVICE_ATTR(dsim_dump, 0444, dsim_dump_show, NULL);
-
-static struct dsim_ops s5p_dsim_ops = {
- .cmd_write = s5p_dsim_wr_data,
- .cmd_read = s5p_dsim_rd_data,
- .suspend = s5p_dsim_early_suspend,
- .resume = s5p_dsim_late_resume,
-};
-
-static int s5p_dsim_probe(struct platform_device *pdev)
-{
- struct resource *res;
- int ret = -1;
- u32 int_stat;
- struct dsim_global *dsim;
-
- dsim = kzalloc(sizeof(struct dsim_global), GFP_KERNEL);
- if (!dsim) {
- pr_err("failed to allocate for dsim_global\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- g_dsim = dsim;
-
- dsim->pd = to_dsim_plat(&pdev->dev);
- if (!dsim->pd) {
- dev_err(&pdev->dev, "platform data is NULL\n");
- return -EINVAL;
- }
-
- dsim->dev = &pdev->dev;
-
- /* set dsim config data, dsim lcd config data and lcd panel data. */
- dsim->dsim_info = dsim->pd->dsim_info;
- dsim->dsim_lcd_info = dsim->pd->dsim_lcd_info;
- dsim->lcd_panel_info = (struct s3cfb_lcd *) dsim->dsim_lcd_info->lcd_panel_info;
- dsim->mipi_ddi_pd = (struct mipi_ddi_platform_data *) dsim->dsim_lcd_info->mipi_ddi_pd;
- dsim->mipi_ddi_pd->te_irq = dsim->pd->te_irq;
-
- if (dsim->pd->mipi_power)
- dsim->pd->mipi_power(1);
-
- strcpy(dsim->pd->lcd_panel_name, dsim->lcd_panel_info->name);
-
- /* clock */
- dsim->clock = clk_get(&pdev->dev, dsim->pd->clk_name);
- if (IS_ERR(dsim->clock)) {
- dev_err(&pdev->dev, "failed to get dsim clock source\n");
- return -EINVAL;
- }
-
- clk_enable(dsim->clock);
-
- /* io memory */
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res) {
- dev_err(&pdev->dev, "failed to get io memory region\n");
- ret = -EINVAL;
- goto err_clk_disable;
- }
-
- /* request mem region */
- res = request_mem_region(res->start,
- res->end - res->start + 1, pdev->name);
- if (!res) {
- dev_err(&pdev->dev, "failed to request io memory region\n");
- ret = -EINVAL;
- goto err_clk_disable;
- }
-
- /* ioremap for register block */
- dsim->reg_base = (unsigned int)ioremap(res->start,
- res->end - res->start + 1);
- if (!dsim->reg_base) {
- dev_err(&pdev->dev, "failed to remap io region\n");
- ret = -EINVAL;
- goto err_clk_disable;
- }
-
- res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
- if (!res) {
- dev_err(&pdev->dev, "failed to request dsim irq resource\n");
- ret = -EINVAL;
- goto err_clk_disable;
- }
- /* dsim->irq = res->start; */
-
- /* clear interrupt */
- /* int_stat = readl(dsim->reg_base + S5P_DSIM_INTSRC); */
- int_stat = 0xffffffff;
- writel(int_stat, dsim->reg_base + S5P_DSIM_INTSRC);
-
- /* enable interrupts */
- int_stat = readl(dsim->reg_base + S5P_DSIM_INTMSK);
-
- int_stat &= ~((0x01<<S5P_DSIM_INT_BTA) | (0x01<<S5P_DSIM_INT_RX_TIMEOUT) |
- (0x01<<S5P_DSIM_INT_BTA_TIMEOUT) | (0x01 << S5P_DSIM_INT_RX_DONE) |
- (0x01<<S5P_DSIM_INT_RX_TE) | (0x01<<S5P_DSIM_INT_RX_ACK) |
- (0x01<<S5P_DSIM_INT_RX_ECC_ERR) | (0x01<<S5P_DSIM_IMT_RX_CRC_ERR) |
- (0x01<<S5P_DSIM_INT_SFR_FIFO_EMPTY));
-
- writel(int_stat, dsim->reg_base + S5P_DSIM_INTMSK);
-
- init_completion(&dsim_rd_comp);
- init_completion(&dsim_wr_comp);
- mutex_init(&dsim_rd_wr_mutex);
-
- dsim->mipi_ddi_pd->resume_complete = 1;
- dsim->dsim_lcd_info->lcd_enabled = 1;
-
- ret = request_irq(res->start, (void *)s5p_dsim_isr, IRQF_DISABLED, pdev->name, dsim);
- if (ret != 0) {
- dev_err(&pdev->dev, "failed to request dsim irq\n");
- ret = -EINVAL;
- goto err_clk_disable;
- }
-
- INIT_DELAYED_WORK(&dsim->dsim_work, dsim_work_q_handler);
- INIT_DELAYED_WORK(&dsim->check_hs_toggle_work, dsim_check_hs_toggle_work_q_handler);
-
- dsim->ops = &s5p_dsim_ops;
-
- platform_set_drvdata(pdev, dsim);
-
- dsim->panel.parent = &pdev->dev;
- dev_set_name(&dsim->panel, dsim->pd->lcd_panel_name);
- ret = device_register(&dsim->panel);
- if (ret < 0) {
- dev_err(&pdev->dev, "faild device register\n");
- ret = -EINVAL;
- goto mipi_drv_err;
- }
-
- /* find lcd panel driver registered to mipi-dsi driver. */
- dsim->mipi_drv = scan_mipi_driver(dsim, dsim->pd->lcd_panel_name);
- if (dsim->mipi_drv == NULL) {
- dev_err(&pdev->dev, "mipi_drv is NULL\n");
- ret = -EINVAL;
- goto mipi_drv_err;
- }
-
- ret = dsim->mipi_drv->probe(&dsim->panel);
- if (ret < 0) {
- dev_err(&pdev->dev, "faild probe\n");
- ret = -EINVAL;
- goto mipi_drv_err;
- }
-
- dsim->state = DSIM_STATE_HSCLKEN;
-
- ret = device_create_file(&(pdev->dev), &dev_attr_dsim_dump);
- if (ret < 0)
- dev_err(&pdev->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- if (!dsim->dsim_info->hs_toggle) {
- ret = device_create_file(&dsim->panel, &dev_attr_hs_toggle);
- if (ret < 0)
- dev_err(&pdev->dev, "failed to add sysfs entries, %d\n", __LINE__);
- }
-
- if (dsim->dsim_info->hs_toggle)
- s5p_dsim_frame_done_interrupt_enable(dsim, 1);
-
- dev_info(&pdev->dev, "mipi-dsi driver has been probed\n");
-
-#if 0
-#ifdef CONFIG_HAS_WAKELOCK
-#ifdef CONFIG_HAS_EARLYSUSPEND
- dsim->early_suspend.suspend = s5p_dsim_early_suspend;
- dsim->early_suspend.resume = s5p_dsim_late_resume;
- dsim->early_suspend.level = EARLY_SUSPEND_LEVEL_DISABLE_FB - 1;
- register_early_suspend(&dsim->early_suspend);
-#endif
-#endif
-#endif
- return 0;
-
-mipi_drv_err:
- free_irq(res->start, &dsim);
- dsim->pd->mipi_power(0);
-
-err_clk_disable:
- clk_disable(dsim->clock);
-err_alloc:
- return ret;
-}
-
-static int s5p_dsim_remove(struct platform_device *pdev)
-{
- return 0;
-}
-
-static struct platform_driver s5p_dsim_driver = {
- .probe = s5p_dsim_probe,
- .remove = s5p_dsim_remove,
-#ifndef CONFIG_HAS_EARLYSUSPEND
- .suspend = s5p_dsim_suspend,
- .resume = s5p_dsim_resume,
-#endif
- .driver = {
- .name = "s5p-dsim",
- .owner = THIS_MODULE,
- },
-};
-
-static int s5p_dsim_register(void)
-{
- return platform_driver_register(&s5p_dsim_driver);
-}
-
-static void s5p_dsim_unregister(void)
-{
- platform_driver_unregister(&s5p_dsim_driver);
-}
-
-module_init(s5p_dsim_register);
-module_exit(s5p_dsim_unregister);
-
-MODULE_AUTHOR("InKi Dae <inki.dae@samsung.com>");
-MODULE_DESCRIPTION("Samusung MIPI-DSIM driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/s5p-dsim.h b/drivers/video/samsung_duallcd/s5p-dsim.h
deleted file mode 100644
index e1a72e3..0000000
--- a/drivers/video/samsung_duallcd/s5p-dsim.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* linux/drivers/video/samsung/s5p-dsim.h
- *
- * Header file for Samsung MIPI-DSIM driver.
- *
- * Copyright (c) 2009 Samsung Electronics
- * InKi Dae <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Modified by Samsung Electronics (UK) on May 2010
- *
-*/
-
-#ifndef _S5P_DSIM_H
-#define _S5P_DSIM_H
-
-#include <linux/device.h>
-
-enum dsim_read_id {
- Ack = 0x02,
- EoTp = 0x08,
- GenShort1B = 0x11,
- GenShort2B = 0x12,
- GenLong = 0x1a,
- DcsLong = 0x1c,
- DcsShort1B = 0x21,
- DcsShort2B = 0x22,
-};
-
-struct mipi_lcd_driver {
- s8 name[64];
-
- s32 (*init)(struct device *dev);
- void (*display_on)(struct device *dev);
- s32 (*probe)(struct device *dev);
- s32 (*remove)(struct device *dev);
- void (*shutdown)(struct device *dev);
- s32 (*suspend)(struct device *dev, pm_message_t mesg);
- s32 (*resume)(struct device *dev);
-};
-
-struct dsim_ops {
- u8 (*cmd_write)(void *ptr, u32 data0, u32 data1, u32 data2);
- int (*cmd_read)(void *ptr, u8 addr, u16 count, u8 *buf);
- void (*suspend)(void);
- void (*resume)(void);
-};
-
-/* Indicates the state of the device */
-struct dsim_global {
- struct device *dev;
- struct device panel;
- struct clk *clock;
- struct s5p_platform_dsim *pd;
- struct dsim_config *dsim_info;
- struct dsim_lcd_config *dsim_lcd_info;
- /* lcd panel data. */
- struct s3cfb_lcd *lcd_panel_info;
- /* platform and machine specific data for lcd panel driver. */
- struct mipi_ddi_platform_data *mipi_ddi_pd;
- /* lcd panel driver based on MIPI-DSI. */
- struct mipi_lcd_driver *mipi_drv;
-
- unsigned int irq;
- unsigned int te_irq;
- unsigned int reg_base;
-#if defined(CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD)
- unsigned int panel_select;
-#endif /*CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD*/
- unsigned char state;
- unsigned int data_lane;
- enum dsim_byte_clk_src e_clk_src;
- unsigned long hs_clk;
- unsigned long byte_clk;
- unsigned long escape_clk;
- unsigned char freq_band;
- char header_fifo_index[DSIM_HEADER_FIFO_SZ];
-
- struct delayed_work dsim_work;
- struct delayed_work check_hs_toggle_work;
- unsigned int dsim_toggle_per_frame_count;
-
- struct dsim_ops *ops;
-};
-
-int s5p_dsim_register_lcd_driver(struct mipi_lcd_driver *lcd_drv);
-
-#endif /* _S5P_DSIM_LOWLEVEL_H */
diff --git a/drivers/video/samsung_duallcd/s5p_dsim_lowlevel.c b/drivers/video/samsung_duallcd/s5p_dsim_lowlevel.c
deleted file mode 100644
index 9ac5192..0000000
--- a/drivers/video/samsung_duallcd/s5p_dsim_lowlevel.c
+++ /dev/null
@@ -1,641 +0,0 @@
-/* linux/drivers/video/samsung/s5p-dsim_lowlevel.c
- *
- * Samsung MIPI-DSIM lowlevel driver.
- *
- * InKi Dae, <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/delay.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/ctype.h>
-#include <linux/io.h>
-#include <mach/map.h>
-#include <mach/dsim.h>
-#include <mach/mipi_ddi.h>
-#include <plat/regs-dsim.h>
-#include <linux/clk.h>
-#include <linux/err.h>
-#include <linux/gpio.h>
-#include <linux/platform_device.h>
-#include <linux/types.h>
-#include <plat/clock.h>
-#include <plat/gpio-cfg.h>
-#include <asm/io.h>
-#include <mach/map.h>
-#include <plat/regs-fb-s5p.h>
-
-#ifdef DEBUG_DSIM
-#define dprintk(x...) printk(x)
-#else
-#define dprintk(x...)
-#endif
-
-void s5p_dsim_func_reset(unsigned int dsim_base)
-{
- unsigned int cfg = 0;
-
- cfg = DSIM_FUNCRST;
-
- writel(cfg, dsim_base + S5P_DSIM_SWRST);
-
- dprintk("%s : %x\n", __func__, cfg);
-}
-
-void s5p_dsim_sw_reset(unsigned int dsim_base)
-{
- unsigned int cfg = 0;
-
- cfg = DSIM_SWRST;
-
- writel(cfg, dsim_base + S5P_DSIM_SWRST);
-
- dprintk("%s : %x\n", __func__, cfg);
-}
-
-void s5p_dsim_set_interrupt_mask(unsigned int dsim_base, unsigned int mode,
- unsigned char mask)
-{
- unsigned int reg = readl(dsim_base + S5P_DSIM_INTMSK);
-
- if (mask)
- reg |= mode;
- else
- reg &= ~(mode);
-
- writel(reg, dsim_base + S5P_DSIM_INTMSK);
-
- /* dprintk("%s : %x\n", __func__, reg); */
-}
-
-void s5p_dsim_init_fifo_pointer(unsigned int dsim_base, unsigned char cfg)
-{
- unsigned int reg;
-
- reg = readl(dsim_base + S5P_DSIM_FIFOCTRL);
-
- writel(reg & ~(cfg), dsim_base + S5P_DSIM_FIFOCTRL);
- msleep(10);
- reg |= cfg;
-
- writel(reg, dsim_base + S5P_DSIM_FIFOCTRL);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-/*
- * this function set PLL P, M and S value in D-PHY
- */
-void s5p_dsim_set_phy_tunning(unsigned int dsim_base, unsigned int value)
-{
- writel(DSIM_AFC_CTL(value), dsim_base + S5P_DSIM_PHYACCHR);
-
- dprintk("%s : %x\n", __func__, DSIM_AFC_CTL(value));
-}
-
-void s5p_dsim_set_main_disp_resol(unsigned int dsim_base, unsigned short vert_resol,
- unsigned short hori_resol)
-{
- unsigned int reg;
-
- /* standby should be set after configuration so set to not ready*/
- reg = (readl(dsim_base + S5P_DSIM_MDRESOL)) & ~(DSIM_MAIN_STAND_BY);
- writel(reg, dsim_base + S5P_DSIM_MDRESOL);
-
- dprintk("%s : %x\n", __func__, reg);
-
- reg &= ~(0x7ff << 16) & ~(0x7ff << 0);
- reg |= DSIM_MAIN_VRESOL(vert_resol) | DSIM_MAIN_HRESOL(hori_resol);
-
- reg |= DSIM_MAIN_STAND_BY;
- writel(reg, dsim_base + S5P_DSIM_MDRESOL);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_set_main_disp_vporch(unsigned int dsim_base, unsigned int cmd_allow,
- unsigned int vfront, unsigned int vback)
-{
- unsigned int reg;
-
- reg = (readl(dsim_base + S5P_DSIM_MVPORCH)) & ~(DSIM_CMD_ALLOW_MASK) &
- ~(DSIM_STABLE_VFP_MASK) & ~(DSIM_MAIN_VBP_MASK);
-
- reg |= ((cmd_allow & 0xf) << DSIM_CMD_ALLOW_SHIFT) |
- ((vfront & 0x7ff) << DSIM_STABLE_VFP_SHIFT) |
- ((vback & 0x7ff) << DSIM_MAIN_VBP_SHIFT);
-
- writel(reg, dsim_base + S5P_DSIM_MVPORCH);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_set_main_disp_hporch(unsigned int dsim_base, unsigned short front,
- unsigned short back)
-{
- unsigned int reg;
-
- reg = (readl(dsim_base + S5P_DSIM_MHPORCH)) & ~(DSIM_MAIN_HFP_MASK) &
- ~(DSIM_MAIN_HBP_MASK);
-
- reg |= (front << DSIM_MAIN_HFP_SHIFT) | (back << DSIM_MAIN_HBP_SHIFT);
-
- writel(reg, dsim_base + S5P_DSIM_MHPORCH);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_set_main_disp_sync_area(unsigned int dsim_base, unsigned short vert,
- unsigned short hori)
-{
- unsigned int reg;
-
- reg = (readl(dsim_base + S5P_DSIM_MSYNC)) & ~(DSIM_MAIN_VSA_MASK) &
- ~(DSIM_MAIN_HSA_MASK);
-
- reg |= ((vert & 0x3ff) << DSIM_MAIN_VSA_SHIFT) | (hori << DSIM_MAIN_HSA_SHIFT);
-
- writel(reg, dsim_base + S5P_DSIM_MSYNC);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_set_sub_disp_resol(unsigned int dsim_base, unsigned short vert,
- unsigned short hori)
-{
- unsigned int reg;
-
- reg = (readl(dsim_base + S5P_DSIM_SDRESOL)) & ~(DSIM_SUB_STANDY_MASK);
- writel(reg, dsim_base + S5P_DSIM_SDRESOL);
-
- dprintk("%s : %x\n", __func__, reg);
-
- reg &= ~(DSIM_SUB_VRESOL_MASK) | ~(DSIM_SUB_HRESOL_MASK);
- reg |= ((vert & 0x7ff) << DSIM_SUB_VRESOL_SHIFT) |
- ((hori & 0x7ff) << DSIM_SUB_HRESOL_SHIFT);
- writel(reg, dsim_base + S5P_DSIM_SDRESOL);
-
- dprintk("%s : %x\n", __func__, reg);
-
- reg |= (1 << DSIM_SUB_STANDY_SHIFT);
- writel(reg, dsim_base + S5P_DSIM_SDRESOL);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_init_config(unsigned int dsim_base, struct dsim_lcd_config *main_lcd_info,
- struct dsim_lcd_config *sub_lcd_info, struct dsim_config *dsim_info)
-{
- unsigned int cfg = (readl(dsim_base + S5P_DSIM_CONFIG)) &
- ~(1 << 28) & ~(1 << 27) & ~(0x1f << 20) & ~(0x3 << 5);
-
- cfg = (dsim_info->auto_flush << 29) | /* evt1 */
- (dsim_info->eot_disable << 28) | /* evt0 or evt1 */
- (dsim_info->auto_vertical_cnt << DSIM_AUTO_MODE_SHIFT) |
- (dsim_info->hse << DSIM_HSE_MODE_SHIFT) |
- (dsim_info->hfp << DSIM_HFP_MODE_SHIFT) |
- (dsim_info->hbp << DSIM_HBP_MODE_SHIFT) |
- (dsim_info->hsa << DSIM_HSA_MODE_SHIFT) |
- (dsim_info->e_no_data_lane << DSIM_NUM_OF_DATALANE_SHIFT);
-
- writel(cfg, dsim_base + S5P_DSIM_CONFIG);
-
- dprintk("%s : %x\n", __func__, cfg);
-}
-
-void s5p_dsim_display_config(unsigned int dsim_base,
- struct dsim_lcd_config *main_lcd, struct dsim_lcd_config *sub_lcd)
-{
- u32 reg = (readl(dsim_base + S5P_DSIM_CONFIG)) &
- ~(0x3 << 26) & ~(1 << 25) & ~(0x3 << 18) & ~(0x7 << 12) &
- ~(0x3 << 16) & ~(0x7 << 8);
-
- if (main_lcd->e_interface == DSIM_VIDEO)
- reg |= (1 << 25);
- else if (main_lcd->e_interface == DSIM_COMMAND)
- reg &= ~(1 << 25);
- else {
- printk(KERN_ERR "this ddi is not MIPI interface.\n");
- return;
- }
-
- /* main lcd */
- reg |= ((u8) (main_lcd->parameter[DSI_VIDEO_MODE_SEL]) & 0x3) << 26 |
- ((u8) (main_lcd->parameter[DSI_VIRTUAL_CH_ID]) & 0x3) << 18 |
- ((u8) (main_lcd->parameter[DSI_FORMAT]) & 0x7) << 12;
-
- /* sub lcd */
- if (main_lcd->e_interface == DSIM_COMMAND && sub_lcd != NULL) {
- reg |= ((u8) (sub_lcd->parameter[DSI_VIRTUAL_CH_ID]) & 0x3) << 16 |
- ((u8) (sub_lcd->parameter[DSI_FORMAT]) & 0x7) << 8;
- }
-
- writel(reg, dsim_base + S5P_DSIM_CONFIG);
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_enable_lane(unsigned int dsim_base, unsigned char lane, unsigned char enable)
-{
- unsigned int reg;
-
- dprintk("%s : %x\n", __func__, lane);
- reg = readl(dsim_base + S5P_DSIM_CONFIG);
-
- if (lane == DSIM_LANE_CLOCK) {
- if (enable)
- reg |= (1 << 0);
- else
- reg &= ~(1 << 0);
- } else {
- if (enable)
- reg |= (lane << 1);
- else
- reg &= ~(lane << 1);
- }
-
- writel(reg, dsim_base + S5P_DSIM_CONFIG);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-
-void s5p_dsim_set_data_lane_number(unsigned int dsim_base, unsigned char count)
-{
- unsigned int cfg = 0;
-
- /* set the data lane number. */
- cfg = DSIM_NUM_OF_DATA_LANE(count);
-
- writel(cfg, dsim_base + S5P_DSIM_CONFIG);
-
- dprintk("%s : %x\n", __func__, cfg);
-}
-
-void s5p_dsim_enable_afc(unsigned int dsim_base, unsigned char enable,
- unsigned char afc_code)
-{
- unsigned int reg = readl(dsim_base + S5P_DSIM_PHYACCHR);
-
- if (enable) {
- reg |= (1 << 14);
- reg &= ~(0x7 << 5);
- reg |= (afc_code & 0x7) << 5;
- } else
- reg &= ~(1 << 14);
-
- writel(reg, dsim_base + S5P_DSIM_PHYACCHR);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_enable_pll_bypass(unsigned int dsim_base, unsigned char enable)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_CLKCTRL)) &
- ~(DSIM_PLL_BYPASS_EXTERNAL);
-
- reg |= enable << DSIM_PLL_BYPASS_SHIFT;
-
- writel(reg, dsim_base + S5P_DSIM_CLKCTRL);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_set_pll_pms(unsigned int dsim_base, unsigned char p,
- unsigned short m, unsigned short s)
-{
- unsigned int reg = readl(dsim_base + S5P_DSIM_PLLCTRL);
-
- reg |= ((p & 0x3f) << 13) | ((m & 0x1ff) << 4) | ((s & 0x7) << 1);
-
- writel(reg, dsim_base + S5P_DSIM_PLLCTRL);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_pll_freq_band(unsigned int dsim_base, unsigned char freq_band)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_PLLCTRL)) &
- ~(0x1f << DSIM_FREQ_BAND_SHIFT);
-
- reg |= ((freq_band & 0x1f) << DSIM_FREQ_BAND_SHIFT);
-
- writel(reg, dsim_base + S5P_DSIM_PLLCTRL);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_pll_freq(unsigned int dsim_base, unsigned char pre_divider,
- unsigned short main_divider, unsigned char scaler)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_PLLCTRL)) &
- ~(0x7ffff << 1);
-
- reg |= (pre_divider & 0x3f) << 13 | (main_divider & 0x1ff) << 4 |
- (scaler & 0x7) << 1;
-
- writel(reg, dsim_base + S5P_DSIM_PLLCTRL);
-}
-
-void s5p_dsim_pll_stable_time(unsigned int dsim_base, unsigned int lock_time)
-{
- writel(lock_time, dsim_base + S5P_DSIM_PLLTMR);
-
- dprintk("%s : %x\n", __func__, lock_time);
-}
-
-void s5p_dsim_enable_pll(unsigned int dsim_base, unsigned char enable)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_PLLCTRL)) &
- ~(0x1 << DSIM_PLL_EN_SHIFT);
-
- reg |= ((enable & 0x1) << DSIM_PLL_EN_SHIFT);
-
- writel(reg, dsim_base + S5P_DSIM_PLLCTRL);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_set_byte_clock_src(unsigned int dsim_base, unsigned char src)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_CLKCTRL)) &
- ~(0x3 << DSIM_BYTE_CLK_SRC_SHIFT);
-
- reg |= ((unsigned int) src) << DSIM_BYTE_CLK_SRC_SHIFT;
-
- writel(reg, dsim_base + S5P_DSIM_CLKCTRL);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_enable_byte_clock(unsigned int dsim_base, unsigned char enable)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_CLKCTRL)) &
- ~(1 << DSIM_BYTE_CLKEN_SHIFT);
-
- reg |= enable << DSIM_BYTE_CLKEN_SHIFT;
-
- writel(reg, dsim_base + S5P_DSIM_CLKCTRL);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_set_esc_clk_prs(unsigned int dsim_base, unsigned char enable,
- unsigned short prs_val)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_CLKCTRL)) &
- ~(1 << DSIM_ESC_CLKEN_SHIFT) & ~(0xffff);
-
- reg |= enable << DSIM_ESC_CLKEN_SHIFT;
- if (enable)
- reg |= prs_val;
-
- writel(reg, dsim_base + S5P_DSIM_CLKCTRL);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_enable_esc_clk_on_lane(unsigned int dsim_base,
- unsigned char lane_sel, unsigned char enable)
-{
- unsigned int reg = readl(dsim_base + S5P_DSIM_CLKCTRL);
-
- if (enable) {
- if (lane_sel & DSIM_LANE_CLOCK)
- reg |= 1 << DSIM_LANE_ESC_CLKEN_SHIFT;
- if (lane_sel & DSIM_LANE_DATA0)
- reg |= 1 << (DSIM_LANE_ESC_CLKEN_SHIFT + 1);
- if (lane_sel & DSIM_LANE_DATA1)
- reg |= 1 << (DSIM_LANE_ESC_CLKEN_SHIFT + 2);
- if (lane_sel & DSIM_LANE_DATA2)
- reg |= 1 << (DSIM_LANE_ESC_CLKEN_SHIFT + 3);
- if (lane_sel & DSIM_LANE_DATA2)
- reg |= 1 << (DSIM_LANE_ESC_CLKEN_SHIFT + 4);
- } else {
- if (lane_sel & DSIM_LANE_CLOCK)
- reg &= ~(1 << DSIM_LANE_ESC_CLKEN_SHIFT);
- if (lane_sel & DSIM_LANE_DATA0)
- reg &= ~(1 << (DSIM_LANE_ESC_CLKEN_SHIFT + 1));
- if (lane_sel & DSIM_LANE_DATA1)
- reg &= ~(1 << (DSIM_LANE_ESC_CLKEN_SHIFT + 2));
- if (lane_sel & DSIM_LANE_DATA2)
- reg &= ~(1 << (DSIM_LANE_ESC_CLKEN_SHIFT + 3));
- if (lane_sel & DSIM_LANE_DATA2)
- reg &= ~(1 << (DSIM_LANE_ESC_CLKEN_SHIFT + 4));
- }
-
- writel(reg, dsim_base + S5P_DSIM_CLKCTRL);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_force_dphy_stop_state(unsigned int dsim_base, unsigned char enable)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_ESCMODE)) &
- ~(0x1 << DSIM_FORCE_STOP_STATE_SHIFT);
-
- reg |= ((enable & 0x1) << DSIM_FORCE_STOP_STATE_SHIFT);
-
- writel(reg, dsim_base + S5P_DSIM_ESCMODE);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-unsigned char s5p_dsim_is_lane_state(unsigned int dsim_base, unsigned char lane)
-{
- unsigned int reg = readl(dsim_base + S5P_DSIM_STATUS);
-
- dprintk("%s : %x\n", __func__, dsim_base);
- dprintk("%s : %x\n", __func__, lane);
- dprintk("%s : %x\n", __func__, reg);
-
- if ((lane & DSIM_LANE_ALL) > DSIM_LANE_CLOCK) { /* all lane state */
- if ((reg & 0x7ff) ^ (((lane & 0xf) << 4) | (1 << 9)))
- return DSIM_LANE_STATE_ULPS;
- else if ((reg & 0x7ff) ^ (((lane & 0xf) << 0) | (1 << 8)))
- return DSIM_LANE_STATE_STOP;
- else {
- printk(KERN_ERR "lane state is unknown.\n");
- return -1;
- }
- } else if (lane & DSIM_LANE_DATA_ALL) { /* data lane */
- if (reg & (lane << 4)) {
- return DSIM_LANE_STATE_ULPS;
- } else if (reg & (lane << 0)) {
- return DSIM_LANE_STATE_STOP;
- } else {
- printk(KERN_ERR "data lane state is unknown.\n");
- return -1;
- }
- } else if (lane & DSIM_LANE_CLOCK) { /* clock lane */
- if (reg & (1 << 9)) {
- return DSIM_LANE_STATE_ULPS;
- } else if (reg & (1 << 8)) {
- return DSIM_LANE_STATE_STOP;
- } else if (reg & (1 << 10)) {
- return DSIM_LANE_STATE_HS_READY;
- } else {
- printk(KERN_ERR "clock lane state is unknown.\n");
- return -1;
- }
- }
-
- return 0;
-}
-
-void s5p_dsim_set_stop_state_counter(unsigned int dsim_base, unsigned short cnt_val)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_ESCMODE)) &
- ~(0x7ff << DSIM_STOP_STATE_CNT_SHIFT);
-
- reg |= ((cnt_val & 0x7ff) << DSIM_STOP_STATE_CNT_SHIFT);
-
- writel(reg, dsim_base + S5P_DSIM_ESCMODE);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_set_bta_timeout(unsigned int dsim_base, unsigned char timeout)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_TIMEOUT)) &
- ~(0xff << DSIM_BTA_TOUT_SHIFT);
-
- reg |= (timeout << DSIM_BTA_TOUT_SHIFT);
-
- writel(reg, dsim_base + S5P_DSIM_TIMEOUT);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_set_lpdr_timeout(unsigned int dsim_base, unsigned short timeout)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_TIMEOUT)) &
- ~(0xffff << DSIM_LPDR_TOUT_SHIFT);
-
- reg |= (timeout << DSIM_LPDR_TOUT_SHIFT);
-
- writel(reg, dsim_base + S5P_DSIM_TIMEOUT);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_set_data_mode(unsigned int dsim_base, unsigned char data,
- unsigned char state)
-{
- unsigned int reg = readl(dsim_base + S5P_DSIM_ESCMODE);
-
- if (state == DSIM_STATE_HSCLKEN)
- reg &= ~data;
- else
- reg |= data;
-
- writel(reg, dsim_base + S5P_DSIM_ESCMODE);
-
- dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_enable_hs_clock(unsigned int dsim_base, unsigned char enable)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_CLKCTRL)) &
- ~(1 << DSIM_TX_REQUEST_HSCLK_SHIFT);
-
- reg |= enable << DSIM_TX_REQUEST_HSCLK_SHIFT;
-
- writel(reg, dsim_base + S5P_DSIM_CLKCTRL);
-}
-
-void s5p_dsim_toggle_hs_clock(unsigned int dsim_base)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_CLKCTRL)) &
- ~(1 << DSIM_TX_REQUEST_HSCLK_SHIFT);
-
- writel(reg, dsim_base + S5P_DSIM_CLKCTRL);
-
- reg |= 1 << DSIM_TX_REQUEST_HSCLK_SHIFT;
-
- writel(reg, dsim_base + S5P_DSIM_CLKCTRL);
-
- dprintk("%s\n", __func__);
-}
-
-
-void s5p_dsim_dp_dn_swap(unsigned int dsim_base, unsigned char swap_en)
-{
- unsigned int reg = readl(dsim_base + S5P_DSIM_PHYACCHR1);
-
- reg &= ~(0x3 << 0);
- reg |= (swap_en & 0x3) << 0;
-
- writel(reg, dsim_base + S5P_DSIM_PHYACCHR1);
-
- dprintk("%s : %x\n", __func__, readl(dsim_base + S5P_DSIM_PHYACCHR1));
-}
-
-void s5p_dsim_hs_zero_ctrl(unsigned int dsim_base, unsigned char hs_zero)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_PLLCTRL)) &
- ~(0xf << 28);
-
- reg |= ((hs_zero & 0xf) << 28);
-
- writel(reg, dsim_base + S5P_DSIM_PLLCTRL);
- //dprintk("%s : %x\n", __func__, readl(dsim_base + S5P_DSIM_PLLCTRL));
-}
-
-void s5p_dsim_prep_ctrl(unsigned int dsim_base, unsigned char prep)
-{
- unsigned int reg = (readl(dsim_base + S5P_DSIM_PLLCTRL)) &
- ~(0x7 << 20);
-
- reg |= ((prep & 0x7) << 20);
-
- writel(reg, dsim_base + S5P_DSIM_PLLCTRL);
- dprintk("%s : %x\n", __func__, readl(dsim_base + S5P_DSIM_PLLCTRL));
-}
-
-void s5p_dsim_clear_interrupt(unsigned int dsim_base, unsigned int int_src)
-{
- writel(int_src, dsim_base + S5P_DSIM_INTSRC);
-}
-
-unsigned char s5p_dsim_is_pll_stable(unsigned int dsim_base)
-{
- return (unsigned char) ((readl(dsim_base + S5P_DSIM_STATUS) &
- (1 << 31)) >> 31);
-}
-
-unsigned int s5p_dsim_get_fifo_state(unsigned int dsim_base)
-{
- return ((readl(dsim_base + S5P_DSIM_FIFOCTRL)) & ~(0x1f));
-}
-
-void s5p_dsim_wr_tx_header(unsigned int dsim_base,
- unsigned char di, unsigned char data0, unsigned char data1)
-{
- unsigned int reg = (data1 << 16) | (data0 << 8) | ((di & 0x3F) << 0);
-
- writel(reg, dsim_base + S5P_DSIM_PKTHDR);
-
- //dprintk("%s : %x\n", __func__, reg);
-}
-
-void s5p_dsim_wr_tx_data(unsigned int dsim_base, unsigned int tx_data)
-{
- writel(tx_data, dsim_base + S5P_DSIM_PAYLOAD);
-
- //dprintk("%s : %x\n", __func__, tx_data);
-}
-
-int s5p_dsim_rd_rx_data(unsigned int dsim_base)
-{
- return readl(dsim_base + S5P_DSIM_RXFIFO);
-}
-
diff --git a/drivers/video/samsung_duallcd/s5p_dsim_lowlevel.h b/drivers/video/samsung_duallcd/s5p_dsim_lowlevel.h
deleted file mode 100644
index 53f9a6f..0000000
--- a/drivers/video/samsung_duallcd/s5p_dsim_lowlevel.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* linux/drivers/video/samsung/s5p_dsim_lowlevel.h
- *
- * Header file for Samsung MIPI-DSIM lowlevel driver.
- *
- * Copyright (c) 2009 Samsung Electronics
- * InKi Dae <inki.dae@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef _S5P_DSIM_LOWLEVEL_H
-#define _S5P_DSIM_LOWLEVEL_H
-
-extern void s5p_dsim_func_reset(unsigned int dsim_base);
-extern void s5p_dsim_sw_reset(unsigned int dsim_base);
-extern void s5p_dsim_set_interrupt_mask(unsigned int dsim_base, unsigned int mode,
- unsigned char mask);
-extern void s5p_dsim_set_data_lane_number(unsigned int dsim_base, unsigned char count);
-extern void s5p_dsim_init_fifo_pointer(unsigned int dsim_base, unsigned char cfg);
-extern void s5p_dsim_set_phy_tunning(unsigned int dsim_base, unsigned int value);
-extern void s5p_dsim_set_phy_tunning(unsigned int dsim_base, unsigned int value);
-extern void s5p_dsim_set_main_disp_resol(unsigned int dsim_base, unsigned short vert_resol,
- unsigned short hori_resol);
-extern void s5p_dsim_set_main_disp_vporch(unsigned int dsim_base, unsigned short cmd_allow,
- unsigned short vfront, unsigned short vback);
-extern void s5p_dsim_set_main_disp_hporch(unsigned int dsim_base, unsigned short front,
- unsigned short back);
-extern void s5p_dsim_set_main_disp_sync_area(unsigned int dsim_base, unsigned short vert,
- unsigned short hori);
-extern void s5p_dsim_set_sub_disp_resol(unsigned int dsim_base, unsigned short vert,
- unsigned short hori);
-extern void s5p_dsim_init_config(unsigned int dsim_base, struct dsim_lcd_config *main_lcd_info,
- struct dsim_lcd_config *sub_lcd_info, struct dsim_config *dsim_info);
-extern void s5p_dsim_display_config(unsigned int dsim_base,
- struct dsim_lcd_config *main_lcd, struct dsim_lcd_config *sub_lcd);
-extern void s5p_dsim_set_data_lane_number(unsigned int dsim_base, unsigned char count);
-extern void s5p_dsim_enable_lane(unsigned int dsim_base, unsigned char lane, unsigned char enable);
-extern void s5p_dsim_enable_afc(unsigned int dsim_base, unsigned char enable,
- unsigned char afc_code);
-extern void s5p_dsim_enable_pll_bypass(unsigned int dsim_base, unsigned char enable);
-extern void s5p_dsim_set_pll_pms(unsigned int dsim_base, unsigned char p,
- unsigned short m, unsigned short s);
-extern void s5p_dsim_pll_freq_band(unsigned int dsim_base, unsigned char freq_band);
-extern void s5p_dsim_pll_freq(unsigned int dsim_base, unsigned char pre_divider,
- unsigned short main_divider, unsigned char scaler);
-extern void s5p_dsim_pll_stable_time(unsigned int dsim_base, unsigned int lock_time);
-extern void s5p_dsim_enable_pll(unsigned int dsim_base, unsigned char enable);
-extern void s5p_dsim_set_byte_clock_src(unsigned int dsim_base, unsigned char src);
-extern void s5p_dsim_enable_byte_clock(unsigned int dsim_base, unsigned char enable);
-extern void s5p_dsim_set_esc_clk_prs(unsigned int dsim_base, unsigned char enable,
- unsigned short prs_val);
-extern void s5p_dsim_enable_esc_clk_on_lane(unsigned int dsim_base,
- unsigned char lane_sel, unsigned char enable);
-extern void s5p_dsim_force_dphy_stop_state(unsigned int dsim_base, unsigned char enable);
-extern unsigned char s5p_dsim_is_lane_state(unsigned int dsim_base, unsigned char lane);
-extern void s5p_dsim_set_stop_state_counter(unsigned int dsim_base, unsigned short cnt_val);
-extern void s5p_dsim_set_bta_timeout(unsigned int dsim_base, unsigned char timeout);
-extern void s5p_dsim_set_lpdr_timeout(unsigned int dsim_base, unsigned short timeout);
-extern void s5p_dsim_set_data_mode(unsigned int dsim_base, unsigned char data,
- unsigned char state);
-extern void s5p_dsim_enable_hs_clock(unsigned int dsim_base, unsigned char enable);
-extern void s5p_dsim_toggle_hs_clock(unsigned int dsim_base);
-extern void s5p_dsim_dp_dn_swap(unsigned int dsim_base, unsigned char swap_en);
-extern void s5p_dsim_hs_zero_ctrl(unsigned int dsim_base, unsigned char hs_zero);
-extern void s5p_dsim_prep_ctrl(unsigned int dsim_base, unsigned char prep);
-extern void s5p_dsim_clear_interrupt(unsigned int dsim_base, unsigned int int_src);
-extern unsigned int s5p_dsim_is_interrupt_status(unsigned int dsim_base);
-extern unsigned char s5p_dsim_is_pll_stable(unsigned int dsim_base);
-extern unsigned int s5p_dsim_get_fifo_state(unsigned int dsim_base);
-extern void s5p_dsim_wr_tx_header(unsigned int dsim_base,
- unsigned char di, unsigned char data0, unsigned char data1);
-extern void s5p_dsim_wr_tx_data(unsigned int dsim_base, unsigned int tx_data);
-extern int s5p_dsim_rd_rx_data(unsigned int dsim_base);
-#endif /* _S5P_DSIM_LOWLEVEL_H */
diff --git a/drivers/video/samsung_duallcd/s6d6aa1.c b/drivers/video/samsung_duallcd/s6d6aa1.c
deleted file mode 100644
index 4ffbf03..0000000
--- a/drivers/video/samsung_duallcd/s6d6aa1.c
+++ /dev/null
@@ -1,664 +0,0 @@
-/* linux/drivers/video/samsung/s6d6aa1.c
- *
- * MIPI-DSI based AMS529HA01 Super Clear LCD panel driver.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/workqueue.h>
-#include <linux/backlight.h>
-#include <linux/lcd.h>
-#include <plat/gpio-cfg.h>
-#include <plat/regs-dsim.h>
-#include <mach/dsim.h>
-#include <mach/mipi_ddi.h>
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#include "s5p-dsim.h"
-#include "s3cfb.h"
-
-#define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL)
-
-#define MIN_BRIGHTNESS 0
-#define MAX_BRIGHTNESS 255
-#define DEFAULT_BRIGHTNESS 160
-
-
-struct lcd_info {
- unsigned int bl;
- unsigned int current_bl;
- unsigned int acl_enable;
-
- unsigned int ldi_enable;
- unsigned int power;
- struct mutex lock;
- struct mutex bl_lock;
-
- struct device *dev;
- struct lcd_device *ld;
- struct backlight_device *bd;
- struct lcd_platform_data *lcd_pd;
- struct early_suspend early_suspend;
-
- unsigned int irq;
- unsigned int connected;
-#if defined(GPIO_OLED_DET)
- struct delayed_work oled_detection;
- unsigned int oled_detection_count;
-
-#endif
- struct dsim_global *dsim;
-};
-
-static const unsigned char SEQ_SLPOUT[] = {
- 0x11,
- 0x00,
- 0x00
-};
-
-static const unsigned char SEQ_DSCTL[] = {
- 0x36,
- 0x00,
- 0x00
-};
-
-static const unsigned char SEQ_WRDISBV[] = {
- 0x51,
- 0xFF,
- 0x00
-};
-
-static const unsigned char SEQ_WRCTRLD[] = {
- 0x53,
- 0x2C,
- 0x00
-};
-
-static const unsigned char SEQ_WRCABC[] = {
- 0x55,
- 0x01,
- 0x00
-};
-
-static const unsigned char SEQ_DISPON[] = {
- 0x29,
- 0x00,
- 0x00
-};
-
-static const unsigned char SEQ_DISPOFF[] = {
- 0x28,
- 0x00,
- 0x00
-};
-
-static const unsigned char SEQ_SLPIN[] = {
- 0x10,
- 0x00,
- 0x00
-};
-
-static unsigned char SEQ_WRDISBV_CTL[] = {
- 0x51,
- 0xFF,
- 0x00
-};
-
-
-
-#if defined(GPIO_OLED_DET)
-static void esd_reset_lcd(struct lcd_info *lcd)
-{
- dev_info(&lcd->ld->dev, "++%s\n", __func__);
- s6e8ax0_early_suspend();
- lcd->dsim->ops->suspend();
-
- lcd->dsim->ops->resume();
- s6e8ax0_late_resume();
- dev_info(&lcd->ld->dev, "--%s\n", __func__);
-}
-
-static void oled_detection_work(struct work_struct *work)
-{
- struct lcd_info *lcd =
- container_of(work, struct lcd_info, oled_detection.work);
-
- int oled_det_level = gpio_get_value(GPIO_OLED_DET);
-
- dev_info(&lcd->ld->dev, "%s, %d, %d\n", __func__, lcd->oled_detection_count, oled_det_level);
- if (!oled_det_level)
- esd_reset_lcd(lcd);
-}
-
-static irqreturn_t oled_detection_int(int irq, void *_lcd)
-{
- struct lcd_info *lcd = _lcd;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- lcd->oled_detection_count = 0;
- schedule_delayed_work(&lcd->oled_detection, HZ/16);
-
- return IRQ_HANDLED;
-}
-#endif
-
-
-static int s6e8ax0_write(struct lcd_info *lcd, const unsigned char *seq, int len)
-{
- int size;
- const unsigned char *wbuf;
-
- if (!lcd->connected)
- return 0;
-
- mutex_lock(&lcd->lock);
-
- size = len;
- wbuf = seq;
-
- if (size == 1)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_NO_PARA, wbuf[0], 0);
- else if (size == 2)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_1_PARA, wbuf[0], wbuf[1]);
- else
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_LONG_WR, (unsigned int)wbuf, size);
-
- mutex_unlock(&lcd->lock);
-
- return 0;
-}
-
-static int _s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf)
-{
- int ret = 0;
-
- if (!lcd->connected)
- return ret;
-
- mutex_lock(&lcd->lock);
-
- if (lcd->dsim->ops->cmd_read)
- ret = lcd->dsim->ops->cmd_read(lcd->dsim, addr, count, buf);
-
- mutex_unlock(&lcd->lock);
-
- return ret;
-}
-
-static int s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf, u8 retry_cnt)
-{
- int ret = 0;
-
-read_retry:
- ret = _s6e8ax0_read(lcd, addr, count, buf);
- if (!ret) {
- if (retry_cnt) {
- printk(KERN_WARNING "[WARN:LCD] %s : retry cnt : %d\n", __func__, retry_cnt);
- retry_cnt--;
- goto read_retry;
- } else
- printk(KERN_ERR "[ERROR:LCD] %s : 0x%02x read failed\n", __func__, addr);
- }
-
- return ret;
-}
-
-static int get_backlight_level_from_brightness(int brightness)
-{
- int backlightlevel;
-
- /* brightness setting from platform is from 0 to 255
- * But in this driver, brightness is only supported from 0 to 24 */
-
- switch (brightness) {
- case 0 ... 255:
- backlightlevel = brightness;
- break;
- default:
- backlightlevel = brightness;
- break;
- }
- return backlightlevel;
-}
-
-static int update_brightness(struct lcd_info *lcd, u8 force)
-{
- int ret;
- u32 brightness;
-
- mutex_lock(&lcd->bl_lock);
-
- brightness = lcd->bd->props.brightness;
-
- lcd->bl = get_backlight_level_from_brightness(brightness);
-
- if ((force) || ((lcd->ldi_enable) && (lcd->current_bl != lcd->bl))) {
-
- lcd->current_bl = lcd->bl;
- SEQ_WRDISBV_CTL[1] = lcd->bl;
- s6e8ax0_write(lcd, SEQ_WRDISBV_CTL, \
- ARRAY_SIZE(SEQ_WRDISBV_CTL));
-
- dev_info(&lcd->ld->dev, "brightness=%d, bl=%d\n", brightness, lcd->bl);
- }
-
- mutex_unlock(&lcd->bl_lock);
-
- return 0;
-}
-
-static int s6e8ax0_ldi_init(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_SLPOUT, ARRAY_SIZE(SEQ_SLPOUT));
-
- msleep(145);
-
- s6e8ax0_write(lcd, SEQ_DSCTL, ARRAY_SIZE(SEQ_DSCTL));
- s6e8ax0_write(lcd, SEQ_WRDISBV, ARRAY_SIZE(SEQ_WRDISBV));
- s6e8ax0_write(lcd, SEQ_WRCTRLD, ARRAY_SIZE(SEQ_WRCTRLD));
- s6e8ax0_write(lcd, SEQ_WRCABC, ARRAY_SIZE(SEQ_WRCABC));
-
-
- return ret;
-}
-
-static int s6e8ax0_ldi_enable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPON, ARRAY_SIZE(SEQ_DISPON));
-
- return ret;
-}
-
-static int s6e8ax0_ldi_disable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPOFF, ARRAY_SIZE(SEQ_DISPOFF));
- s6e8ax0_write(lcd, SEQ_SLPIN, ARRAY_SIZE(SEQ_SLPIN));
-
- return ret;
-}
-
-static int s6e8ax0_power_on(struct lcd_info *lcd)
-{
- int ret = 0;
- struct lcd_platform_data *pd = NULL;
- pd = lcd->lcd_pd;
-
- /* dev_info(&lcd->ld->dev, "%s\n", __func__); */
-
- ret = s6e8ax0_ldi_init(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to initialize ldi.\n");
- goto err;
- }
-
-
- ret = s6e8ax0_ldi_enable(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to enable ldi.\n");
- goto err;
- }
-
- lcd->ldi_enable = 1;
-
- update_brightness(lcd, 1);
-err:
- return ret;
-}
-
-static int s6e8ax0_power_off(struct lcd_info *lcd)
-{
- int ret = 0;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- lcd->ldi_enable = 0;
-
- ret = s6e8ax0_ldi_disable(lcd);
-
- msleep(135);
-
- return ret;
-}
-
-static int s6e8ax0_power(struct lcd_info *lcd, int power)
-{
- int ret = 0;
-
- if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_on(lcd);
- else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_off(lcd);
-
- if (!ret)
- lcd->power = power;
-
- return ret;
-}
-
-static int s6e8ax0_set_power(struct lcd_device *ld, int power)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
- power != FB_BLANK_NORMAL) {
- dev_err(&lcd->ld->dev, "power value should be 0, 1 or 4.\n");
- return -EINVAL;
- }
-
- return s6e8ax0_power(lcd, power);
-}
-
-static int s6e8ax0_get_power(struct lcd_device *ld)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- return lcd->power;
-}
-
-static int s6e8ax0_set_brightness(struct backlight_device *bd)
-{
- int ret = 0;
- int brightness = bd->props.brightness;
- struct lcd_info *lcd = bl_get_data(bd);
-
- /* dev_info(&lcd->ld->dev, "%s: brightness=%d\n", __func__, brightness); */
-
- if (brightness < MIN_BRIGHTNESS ||
- brightness > bd->props.max_brightness) {
- dev_err(&bd->dev, "lcd brightness should be %d to %d. now %d\n",
- MIN_BRIGHTNESS, MAX_BRIGHTNESS, brightness);
- return -EINVAL;
- }
-
- if (lcd->ldi_enable) {
- ret = update_brightness(lcd, 0);
- if (ret < 0) {
- dev_err(lcd->dev, "err in %s\n", __func__);
- return -EINVAL;
- }
- }
-
- return ret;
-}
-
-static int s6e8ax0_get_brightness(struct backlight_device *bd)
-{
- struct lcd_info *lcd = bl_get_data(bd);
-
- return lcd->bl;
-}
-
-static struct lcd_ops panel_lcd_ops = {
- .set_power = s6e8ax0_set_power,
- .get_power = s6e8ax0_get_power,
-};
-
-static const struct backlight_ops panel_backlight_ops = {
- .get_brightness = s6e8ax0_get_brightness,
- .update_status = s6e8ax0_set_brightness,
-};
-
-static ssize_t power_reduce_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->acl_enable);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t power_reduce_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->acl_enable != value) {
- dev_info(dev, "%s - %d, %d\n", __func__, lcd->acl_enable, value);
- mutex_lock(&lcd->bl_lock);
- lcd->acl_enable = value;
- if (lcd->ldi_enable)
- /*s6e8ax0_set_acl(lcd);*/
- mutex_unlock(&lcd->bl_lock);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(power_reduce, 0664, power_reduce_show, power_reduce_store);
-
-static ssize_t lcd_type_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- char temp[15];
-
- sprintf(temp, "SONY_ACX445BLN\n");
-
- strcat(buf, temp);
-
- return strlen(buf);
-}
-
-static DEVICE_ATTR(lcd_type, 0444, lcd_type_show, NULL);
-
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-struct lcd_info *g_lcd;
-
-void s6e8ax0_early_suspend(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- set_dsim_lcd_enabled(0);
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
-
-#if defined(GPIO_OLED_DET)
- disable_irq(lcd->irq);
- gpio_request(GPIO_OLED_DET, "OLED_DET");
- s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_OUTPUT);
- s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
- gpio_direction_output(GPIO_OLED_DET, GPIO_LEVEL_LOW);
- gpio_free(GPIO_OLED_DET);
-#endif
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
-
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-
-void s6e8ax0_late_resume(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
-
- s6e8ax0_power(lcd, FB_BLANK_UNBLANK);
-#if defined(GPIO_OLED_DET)
- s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_SFN(0xf));
- s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
- enable_irq(lcd->irq);
-#endif
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- set_dsim_lcd_enabled(1);
-
- return ;
-}
-#endif
-
-#if 0
-static void s6e8ax0_read_id(struct lcd_info *lcd, u8 *buf)
-{
- int ret = 0;
-
- ret = s6e8ax0_read(lcd, LDI_ID_REG, LDI_ID_LEN, buf, 3);
- if (!ret) {
- lcd->connected = 0;
- dev_info(&lcd->ld->dev, "panel is not connected well\n");
- }
-}
-#endif
-
-static int s6e8ax0_probe(struct device *dev)
-{
- int ret = 0;
- struct lcd_info *lcd;
-
- lcd = kzalloc(sizeof(struct lcd_info), GFP_KERNEL);
- if (!lcd) {
- pr_err("failed to allocate for lcd\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- g_lcd = lcd;
-
- lcd->ld = lcd_device_register("panel", dev, lcd, &panel_lcd_ops);
- if (IS_ERR(lcd->ld)) {
- pr_err("failed to register lcd device\n");
- ret = PTR_ERR(lcd->ld);
- goto out_free_lcd;
- }
-
- lcd->bd = backlight_device_register("panel", dev, lcd, &panel_backlight_ops, NULL);
- if (IS_ERR(lcd->bd)) {
- pr_err("failed to register backlight device\n");
- ret = PTR_ERR(lcd->bd);
- goto out_free_backlight;
- }
-
- lcd->dev = dev;
- lcd->dsim = (struct dsim_global *)dev_get_drvdata(dev->parent);
- lcd->bd->props.max_brightness = MAX_BRIGHTNESS;
- lcd->bd->props.brightness = DEFAULT_BRIGHTNESS;
- lcd->bl = 0;
- lcd->current_bl = lcd->bl;
-
- lcd->acl_enable = 0;
-
- lcd->power = FB_BLANK_UNBLANK;
- lcd->ldi_enable = 1;
- lcd->connected = 1;
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_power_reduce);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_lcd_type);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- dev_set_drvdata(dev, lcd);
-
- mutex_init(&lcd->lock);
- mutex_init(&lcd->bl_lock);
-
- dev_info(&lcd->ld->dev, "s6e8aa0 lcd panel driver has been probed.\n");
-
-#if defined(GPIO_OLED_DET)
- if (lcd->connected) {
- INIT_DELAYED_WORK(&lcd->oled_detection, oled_detection_work);
-
- lcd->irq = gpio_to_irq(GPIO_OLED_DET);
-
- s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_SFN(0xf));
- s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
- if (request_irq(lcd->irq, oled_detection_int,
- IRQF_TRIGGER_FALLING, "oled_detection", lcd))
- pr_err("failed to reqeust irq. %d\n", lcd->irq);
- }
-#endif
-
- return 0;
-
-out_free_backlight:
- lcd_device_unregister(lcd->ld);
- kfree(lcd);
- return ret;
-
-out_free_lcd:
- kfree(lcd);
- return ret;
-
-err_alloc:
- return ret;
-}
-
-static int __devexit s6e8ax0_remove(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- lcd_device_unregister(lcd->ld);
- backlight_device_unregister(lcd->bd);
- kfree(lcd);
-
- return 0;
-}
-
-/* Power down all displays on reboot, poweroff or halt. */
-static void s6e8ax0_shutdown(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
-}
-
-static struct mipi_lcd_driver s6e8ax0_mipi_driver = {
- .name = "s6d6aa1",
- .probe = s6e8ax0_probe,
- .remove = __devexit_p(s6e8ax0_remove),
- .shutdown = s6e8ax0_shutdown,
-};
-
-static int s6e8ax0_init(void)
-{
- return s5p_dsim_register_lcd_driver(&s6e8ax0_mipi_driver);
-}
-
-static void s6e8ax0_exit(void)
-{
- return;
-}
-
-module_init(s6e8ax0_init);
-module_exit(s6e8ax0_exit);
-
-MODULE_DESCRIPTION("MIPI-DSI s6d6aa1:SCLCD (720x1280) Panel Driver");
-MODULE_LICENSE("GPL");
-
diff --git a/drivers/video/samsung_duallcd/s6dr171.c b/drivers/video/samsung_duallcd/s6dr171.c
deleted file mode 100644
index 167f658..0000000
--- a/drivers/video/samsung_duallcd/s6dr171.c
+++ /dev/null
@@ -1,571 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_s6e8aa0.c
- *
- * MIPI-DSI based AMS529HA01 AMOLED lcd panel driver.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/workqueue.h>
-#include <linux/backlight.h>
-#include <linux/lcd.h>
-#include <plat/gpio-cfg.h>
-#include <plat/regs-dsim.h>
-#include <mach/dsim.h>
-#include <mach/mipi_ddi.h>
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#include "s5p-dsim.h"
-#include "s3cfb.h"
-
-#include "s6dr171_param.h"
-
-#define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL)
-
-#define MIN_BRIGHTNESS 0
-#define MAX_BRIGHTNESS 255
-#define MAX_GAMMA 300
-#define DEFAULT_BRIGHTNESS 160
-#define DEFAULT_GAMMA_LEVEL GAMMA_160CD
-
-#define LDI_ID_REG 0xD1
-#define LDI_ID_LEN 3
-
-#define LDI_MTP_ADDR 0xCB
-#define LDI_MTP_LENGTH 63
-
-struct lcd_info {
- unsigned int bl;
- unsigned int auto_brightness;
- unsigned int acl_enable;
- unsigned int cur_acl;
- unsigned int current_bl;
- unsigned int current_elvss;
-
- unsigned int ldi_enable;
- unsigned int power;
- struct mutex lock;
- struct mutex bl_lock;
-
- struct device *dev;
- struct lcd_device *ld;
- struct backlight_device *bd;
- struct lcd_platform_data *lcd_pd;
- struct early_suspend early_suspend;
-
- unsigned char id[LDI_ID_LEN];
-
- unsigned char **gamma_table;
- unsigned char **elvss_table;
-
- unsigned int irq;
- unsigned int connected;
-
- struct dsim_global *dsim;
-};
-
-static int s6e8ax0_write(struct lcd_info *lcd, const unsigned char *seq, int len)
-{
- int size;
- const unsigned char *wbuf;
-
- if (!lcd->connected)
- return 0;
-
- mutex_lock(&lcd->lock);
-
- size = len;
- wbuf = seq;
-
- if (size == 1)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_NO_PARA, wbuf[0], 0);
- else if (size == 2)
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_1_PARA, wbuf[0], wbuf[1]);
- else
- lcd->dsim->ops->cmd_write(lcd->dsim, DCS_LONG_WR, (unsigned int)wbuf, size);
-
- mutex_unlock(&lcd->lock);
-
- return 0;
-}
-
-static int _s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf)
-{
- int ret = 0;
-
- if (!lcd->connected)
- return ret;
-
- mutex_lock(&lcd->lock);
-
- if (lcd->dsim->ops->cmd_read)
- ret = lcd->dsim->ops->cmd_read(lcd->dsim, addr, count, buf);
-
- mutex_unlock(&lcd->lock);
-
- return ret;
-}
-
-static int s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf, u8 retry_cnt)
-{
- int ret = 0;
-
-read_retry:
- ret = _s6e8ax0_read(lcd, addr, count, buf);
- if (!ret) {
- if (retry_cnt) {
- printk(KERN_WARNING "[WARN:LCD] %s : retry cnt : %d\n", __func__, retry_cnt);
- retry_cnt--;
- goto read_retry;
- } else
- printk(KERN_ERR "[ERROR:LCD] %s : 0x%02x read failed\n", __func__, addr);
- }
-
- return ret;
-}
-
-static int s6e8ax0_ldi_init(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_APPLY_LEVEL_1_KEY, ARRAY_SIZE(SEQ_APPLY_LEVEL_1_KEY));
- s6e8ax0_write(lcd, SEQ_APPLY_MTP_KEY_ENABLE, ARRAY_SIZE(SEQ_APPLY_MTP_KEY_ENABLE));
- s6e8ax0_write(lcd, SEQ_PWRSEQCTL, ARRAY_SIZE(SEQ_PWRSEQCTL));
- s6e8ax0_write(lcd, SEQ_DISPLAY_BRIGHTNESSS, ARRAY_SIZE(SEQ_DISPLAY_BRIGHTNESSS));
- s6e8ax0_write(lcd, SEQ_CONTROL_DISPLAY, ARRAY_SIZE(SEQ_CONTROL_DISPLAY));
- s6e8ax0_write(lcd, SEQ_SLEEP_OUT, ARRAY_SIZE(SEQ_SLEEP_OUT));
- msleep(120);
-
- s6e8ax0_write(lcd, SEQ_PANEL_CONDITION_SET, ARRAY_SIZE(SEQ_PANEL_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_DISPLAY_CONDITION_SET, ARRAY_SIZE(SEQ_DISPLAY_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_GAMMA_CONDITION_SET, ARRAY_SIZE(SEQ_GAMMA_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_GAMMA_UPDATE, ARRAY_SIZE(SEQ_GAMMA_UPDATE));
- msleep(20);
- s6e8ax0_write(lcd, SEQ_GAMMA_UPDATE2, ARRAY_SIZE(SEQ_GAMMA_UPDATE2));
- msleep(20);
-
- s6e8ax0_write(lcd, SEQ_ETC_SOURCE_CONTROL, ARRAY_SIZE(SEQ_ETC_SOURCE_CONTROL));
- s6e8ax0_write(lcd, SEQ_ETC_NVM_SETTING, ARRAY_SIZE(SEQ_ETC_NVM_SETTING));
- s6e8ax0_write(lcd, SEQ_ETC_POWER_CONTROL, ARRAY_SIZE(SEQ_ETC_POWER_CONTROL));
-
- s6e8ax0_write(lcd, SEQ_ELVSS_CONTROL, ARRAY_SIZE(SEQ_ELVSS_CONTROL));
-
- return ret;
-}
-
-static int s6e8ax0_ldi_enable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPLAY_ON, ARRAY_SIZE(SEQ_DISPLAY_ON));
-
- return ret;
-}
-
-static int s6e8ax0_ldi_disable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPLAY_OFF, ARRAY_SIZE(SEQ_DISPLAY_OFF));
- s6e8ax0_write(lcd, SEQ_STANDBY_ON, ARRAY_SIZE(SEQ_STANDBY_ON));
-
- return ret;
-}
-
-static int s6e8ax0_power_on(struct lcd_info *lcd)
-{
- int ret = 0;
- struct lcd_platform_data *pd = NULL;
- pd = lcd->lcd_pd;
-
- /* dev_info(&lcd->ld->dev, "%s\n", __func__); */
-
- ret = s6e8ax0_ldi_init(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to initialize ldi.\n");
- goto err;
- }
-
- msleep(120);
-
- ret = s6e8ax0_ldi_enable(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to enable ldi.\n");
- goto err;
- }
-
- lcd->ldi_enable = 1;
-
- /* update_brightness(lcd, 1); */
-err:
- return ret;
-}
-
-static int s6e8ax0_power_off(struct lcd_info *lcd)
-{
- int ret = 0;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- lcd->ldi_enable = 0;
-
- ret = s6e8ax0_ldi_disable(lcd);
-
- msleep(135);
-
- return ret;
-}
-
-static int s6e8ax0_power(struct lcd_info *lcd, int power)
-{
- int ret = 0;
-
- if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_on(lcd);
- else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_off(lcd);
-
- if (!ret)
- lcd->power = power;
-
- return ret;
-}
-
-static int s6e8ax0_set_power(struct lcd_device *ld, int power)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
- power != FB_BLANK_NORMAL) {
- dev_err(&lcd->ld->dev, "power value should be 0, 1 or 4.\n");
- return -EINVAL;
- }
-
- return s6e8ax0_power(lcd, power);
-}
-
-static int s6e8ax0_get_power(struct lcd_device *ld)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- return lcd->power;
-}
-
-static int s6e8ax0_set_brightness(struct backlight_device *bd)
-{
- int ret = 0;
- int brightness = bd->props.brightness;
- struct lcd_info *lcd = bl_get_data(bd);
-
- /* dev_info(&lcd->ld->dev, "%s: brightness=%d\n", __func__, brightness); */
-
- if (brightness < MIN_BRIGHTNESS ||
- brightness > bd->props.max_brightness) {
- dev_err(&bd->dev, "lcd brightness should be %d to %d. now %d\n",
- MIN_BRIGHTNESS, MAX_BRIGHTNESS, brightness);
- return -EINVAL;
- }
-
- if (lcd->ldi_enable) {
- /* ret = update_brightness(lcd, 0); */
- if (ret < 0) {
- dev_err(lcd->dev, "err in %s\n", __func__);
- return -EINVAL;
- }
- }
-
- return ret;
-}
-
-static struct lcd_ops s6e8ax0_lcd_ops = {
- .set_power = s6e8ax0_set_power,
- .get_power = s6e8ax0_get_power,
-};
-
-static const struct backlight_ops s6e8ax0_backlight_ops = {
- .update_status = s6e8ax0_set_brightness,
-};
-
-static ssize_t power_reduce_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->acl_enable);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t power_reduce_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->acl_enable != value) {
- dev_info(dev, "%s - %d, %d\n", __func__, lcd->acl_enable, value);
- mutex_lock(&lcd->bl_lock);
- lcd->acl_enable = value;
- /* if (lcd->ldi_enable)
- s6e8ax0_set_acl(lcd); */
- mutex_unlock(&lcd->bl_lock);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(power_reduce, 0664, power_reduce_show, power_reduce_store);
-
-static ssize_t lcd_type_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- char temp[15];
- sprintf(temp, "SMD_AMS480GZ01-0\n");
- strcat(buf, temp);
- return strlen(buf);
-}
-
-static DEVICE_ATTR(lcd_type, 0444, lcd_type_show, NULL);
-
-static ssize_t auto_brightness_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->auto_brightness);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t auto_brightness_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->auto_brightness != value) {
- dev_info(dev, "%s - %d, %d\n", __func__, lcd->auto_brightness, value);
- mutex_lock(&lcd->bl_lock);
- lcd->auto_brightness = value;
- mutex_unlock(&lcd->bl_lock);
- /* if (lcd->ldi_enable)
- update_brightness(lcd, 0); */
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(auto_brightness, 0644, auto_brightness_show, auto_brightness_store);
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-struct lcd_info *g_lcd;
-
-void s6e8ax0_early_suspend(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- set_dsim_lcd_enabled(0);
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-
-void s6e8ax0_late_resume(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- s6e8ax0_power(lcd, FB_BLANK_UNBLANK);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- set_dsim_lcd_enabled(1);
-
- return ;
-}
-#endif
-
-static int s6e8ax0_read_mtp(struct lcd_info *lcd, u8 *mtp_data)
-{
- int ret, i;
-
- for (i = 0; i < 3; i++)
- ret = s6e8ax0_read(lcd, LDI_MTP_ADDR+i, LDI_MTP_LENGTH, mtp_data, 0);
-
- return ret;
-}
-
-static void s6e8ax0_read_id(struct lcd_info *lcd, u8 *buf)
-{
- int ret = 0;
-
- ret = s6e8ax0_read(lcd, LDI_ID_REG, LDI_ID_LEN, buf, 3);
- if (!ret) {
- lcd->connected = 0;
- dev_info(&lcd->ld->dev, "panel is not connected well\n");
- }
-}
-
-static int s6e8ax0_probe(struct device *dev)
-{
- int ret = 0;
- struct lcd_info *lcd;
- u8 mtp_data[LDI_MTP_LENGTH] = {0,};
-
- lcd = kzalloc(sizeof(struct lcd_info), GFP_KERNEL);
- if (!lcd) {
- pr_err("failed to allocate for lcd\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- g_lcd = lcd;
-
- lcd->ld = lcd_device_register("panel", dev, lcd, &s6e8ax0_lcd_ops);
- if (IS_ERR(lcd->ld)) {
- pr_err("failed to register lcd device\n");
- ret = PTR_ERR(lcd->ld);
- goto out_free_lcd;
- }
-
- lcd->bd = backlight_device_register("panel", dev, lcd, &s6e8ax0_backlight_ops, NULL);
- if (IS_ERR(lcd->bd)) {
- pr_err("failed to register backlight device\n");
- ret = PTR_ERR(lcd->bd);
- goto out_free_backlight;
- }
-
- lcd->dev = dev;
- lcd->dsim = (struct dsim_global *)dev_get_drvdata(dev->parent);
- lcd->bd->props.max_brightness = MAX_BRIGHTNESS;
- lcd->bd->props.brightness = DEFAULT_BRIGHTNESS;
- lcd->bl = DEFAULT_GAMMA_LEVEL;
- lcd->current_bl = lcd->bl;
-
- lcd->acl_enable = 0;
- lcd->cur_acl = 0;
-
- lcd->power = FB_BLANK_UNBLANK;
- lcd->ldi_enable = 1;
- lcd->connected = 1;
- lcd->auto_brightness = 0;
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_power_reduce);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_lcd_type);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->bd->dev, &dev_attr_auto_brightness);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- dev_set_drvdata(dev, lcd);
-
- mutex_init(&lcd->lock);
- mutex_init(&lcd->bl_lock);
-
- s6e8ax0_read_id(lcd, lcd->id);
-
- dev_info(&lcd->ld->dev, "ID: %x, %x, %x\n", lcd->id[0], lcd->id[1], lcd->id[2]);
-
- dev_info(&lcd->ld->dev, "lcd panel driver has been probed.\n");
-
- ret = s6e8ax0_read_mtp(lcd, mtp_data);
- if (!ret) {
- printk(KERN_ERR "[LCD:ERROR] : %s read mtp failed\n", __func__);
- /*return -EPERM;*/
- }
-
- return 0;
-
-out_free_backlight:
- lcd_device_unregister(lcd->ld);
- kfree(lcd);
- return ret;
-
-out_free_lcd:
- kfree(lcd);
- return ret;
-
-err_alloc:
- return ret;
-}
-
-static int __devexit s6e8ax0_remove(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- lcd_device_unregister(lcd->ld);
- backlight_device_unregister(lcd->bd);
- kfree(lcd);
-
- return 0;
-}
-
-/* Power down all displays on reboot, poweroff or halt. */
-static void s6e8ax0_shutdown(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
-}
-
-static struct mipi_lcd_driver s6e8ax0_mipi_driver = {
- .name = "s6e8aa0",
- .probe = s6e8ax0_probe,
- .remove = __devexit_p(s6e8ax0_remove),
- .shutdown = s6e8ax0_shutdown,
-};
-
-static int s6e8ax0_init(void)
-{
- return s5p_dsim_register_lcd_driver(&s6e8ax0_mipi_driver);
-}
-
-static void s6e8ax0_exit(void)
-{
- return;
-}
-
-module_init(s6e8ax0_init);
-module_exit(s6e8ax0_exit);
-
-MODULE_DESCRIPTION("MIPI-DSI S6E8AA0:AMS529HA01 (800x1280) Panel Driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/s6dr171_param.h b/drivers/video/samsung_duallcd/s6dr171_param.h
deleted file mode 100644
index 688c6fc..0000000
--- a/drivers/video/samsung_duallcd/s6dr171_param.h
+++ /dev/null
@@ -1,279 +0,0 @@
-#ifndef __S6E8AA0_GAMMA_H__
-#define __S6E8AA0_GAMMA_H__
-
-#define ACL_PARAM_SIZE ARRAY_SIZE(acl_cutoff_50)
-#define AID_PARAM_SIZE ARRAY_SIZE(SEQ_PANEL_CONDITION_SET_500MBPS)
-
-enum {
- GAMMA_20CD,
- GAMMA_30CD,
- GAMMA_40CD,
- GAMMA_50CD,
- GAMMA_60CD,
- GAMMA_70CD,
- GAMMA_80CD,
- GAMMA_90CD,
- GAMMA_100CD,
- GAMMA_110CD,
- GAMMA_120CD,
- GAMMA_130CD,
- GAMMA_140CD,
- GAMMA_150CD,
- GAMMA_160CD,
- GAMMA_170CD,
- GAMMA_180CD,
- GAMMA_190CD,
- GAMMA_200CD,
- GAMMA_210CD,
- GAMMA_220CD,
- GAMMA_230CD,
- GAMMA_240CD,
- GAMMA_250CD,
- GAMMA_300CD,
- GAMMA_MAX
-};
-
-enum {
- ELVSS_MIN = 0,
- ELVSS_1,
- ELVSS_2,
- ELVSS_MAX,
- ELVSS_STATUS_MAX,
-};
-
-static const unsigned char SEQ_APPLY_LEVEL_1_KEY[] = {
- 0xF0,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_PWRSEQCTL[] = {
- 0xF5,
- 0x54, 0x96, 0x33, 0x01, 0x35
-};
-
-static const unsigned char SEQ_DISPLAY_BRIGHTNESSS[] = {
- 0x51,
- 0xFF, 0x00
-};
-
-static const unsigned char SEQ_CONTROL_DISPLAY[] = {
- 0x53,
- 0x20, 0x00
-};
-
-static const unsigned char SEQ_APPLY_MTP_KEY_ENABLE[] = {
- 0xF1,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_SLEEP_OUT[] = {
- 0x11,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET[] = {
- 0xF8,
- 0x21, 0x02, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x7D,
- 0x08, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00,
- 0x00, 0x08, 0x5E, 0x08, 0x5E, 0x08, 0x08, 0x23, 0x5E, 0xC0,
- 0xC1, 0x00, 0x01, 0x00, 0x00, 0x80, 0xC1, 0x00, 0xC3, 0xF0,
- 0x67, 0x89, 0xC1
-};
-
-static const unsigned char SEQ_DISPLAY_CONDITION_SET[] = {
- 0xF2,
- 0x00, 0xA0, 0x08, 0x08
-};
-
-static const unsigned char SEQ_GAMMA_CONDITION_SET[] = {
- 0xFA,
- 0x00, 0x07, 0x2B, 0x37, 0x44, 0xD4, 0xD5, 0xCF, 0xCF, 0xD2,
- 0xCB, 0xB3, 0xB7, 0xA9, 0xBC, 0xC0, 0xAE, 0xD0, 0xD2, 0xC3,
- 0xCD, 0xCD, 0xBC, 0xB6, 0xB3, 0x9E, 0xE4, 0xDB, 0xEC, 0x56,
- 0x08
-};
-
-static const unsigned char SEQ_GAMMA_UPDATE[] = {
- 0xF7, 0x03,
- 0x00
-};
-
-static const unsigned char SEQ_GAMMA_UPDATE2[] = {
- 0xF7, 0x00,
- 0x00
-};
-
-static const unsigned char SEQ_ETC_SOURCE_CONTROL[] = {
- 0xF6,
- 0x2B, 0x2B, 0x2B, 0x00
-};
-
-static const unsigned char SEQ_ETC_NVM_SETTING[] = {
- 0xD9,
- 0x00, 0x08, 0x97, 0x7E, 0xAB, 0x10, 0x00, 0xA0, 0x02, 0xFF,
- 0x1B, 0x56, 0x20, 0xA7, 0x50, 0x43, 0x26, 0x35, 0xA8, 0x55,
- 0x10, 0xA4, 0xA2
-};
-
-
-static const unsigned char SEQ_ETC_POWER_CONTROL[] = {
- 0xF4,
- 0x0D, 0x00, 0x06, 0x0F, 0x00, 0x0A, 0x00, 0x00, 0x33, 0x00,
- 0x00, 0xC0, 0x2C, 0xC8, 0x1B, 0x8C
-};
-
-static const unsigned char SEQ_ELVSS_CONTROL[] = {
- 0xB1,
- 0x10, 0x00
-};
-
-static const unsigned char SEQ_DISPLAY_ON[] = {
- 0x29,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_DISPLAY_OFF[] = {
- 0x28,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_STANDBY_ON[] = {
- 0x10,
- 0x00, 0x00
-};
-
-enum {
- ACL_STATUS_0P = 0,
- ACL_STATUS_20P,
- ACL_STATUS_33P,
- ACL_STATUS_40P,
- ACL_STATUS_43P,
- ACL_STATUS_45P,
- ACL_STATUS_48P,
- ACL_STATUS_50P,
- ACL_STATUS_52P,
- ACL_STATUS_53P,
- ACL_STATUS_55P,
- ACL_STATUS_MAX
-} ACL_STATUS;
-
-static const unsigned char SEQ_ACL_OFF[] = {
- 0xC0, 0x00,
- 0x00
-};
-
-const unsigned char acl_cutoff_20[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x04, 0x07, 0x0A, 0x0D, 0x10,
- 0x12, 0x15, 0x18, 0x1B, 0x1E
-};
-
-const unsigned char acl_cutoff_33[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x06, 0x0A, 0x0F, 0x14, 0x19,
- 0x1D, 0x22, 0x27, 0x2B, 0x30
-};
-
-const unsigned char acl_cutoff_40[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x07, 0x0C, 0x12, 0x17, 0x1D,
- 0x23, 0x28, 0x2E, 0x33, 0x39
-};
-
-const unsigned char acl_cutoff_43[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x07, 0x0D, 0x14, 0x1A, 0x20,
- 0x26, 0x2C, 0x33, 0x39, 0x3F
-};
-
-const unsigned char acl_cutoff_45[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x07, 0x0E, 0x14, 0x1B, 0x21,
- 0x27, 0x2E, 0x34, 0x3B, 0x41
-};
-
-const unsigned char acl_cutoff_48[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x08, 0x0F, 0x17, 0x1E, 0x25,
- 0x2C, 0x33, 0x3B, 0x42, 0x49
-};
-
-const unsigned char acl_cutoff_50[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x09, 0x10, 0x18, 0x1F, 0x27,
- 0x2E, 0x36, 0x3D, 0x45, 0x4C
-};
-
-const unsigned char acl_cutoff_52[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x09, 0x11, 0x19, 0x21, 0x29,
- 0x31, 0x39, 0x41, 0x49, 0x51
-};
-
-const unsigned char acl_cutoff_53[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x09, 0x11, 0x1A, 0x22, 0x2A,
- 0x32, 0x3A, 0x43, 0x4B, 0x53
-};
-
-const unsigned char acl_cutoff_55[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x0A, 0x12, 0x1B, 0x23, 0x2C,
- 0x35, 0x3D, 0x46, 0x4E, 0x57
-};
-
-const unsigned char *ACL_CUTOFF_TABLE[ACL_STATUS_MAX] = {
- SEQ_ACL_OFF,
- acl_cutoff_20,
- acl_cutoff_33,
- acl_cutoff_40,
- acl_cutoff_43,
- acl_cutoff_45,
- acl_cutoff_48,
- acl_cutoff_50,
- acl_cutoff_52,
- acl_cutoff_53,
- acl_cutoff_55,
-};
-
-#endif /* __S6E8AA0_GAMMA_H__ */
diff --git a/drivers/video/samsung_duallcd/s6e63m0_gamma_grande.h b/drivers/video/samsung_duallcd/s6e63m0_gamma_grande.h
deleted file mode 100644
index 6fe6832..0000000
--- a/drivers/video/samsung_duallcd/s6e63m0_gamma_grande.h
+++ /dev/null
@@ -1,128 +0,0 @@
-#ifndef __S6E63M0_GAMMA_H__
-#define __S6E63M0_GAMMA_H__
-
-#include "s6e63m0_param.h"
-
-#define ACL_PARAM_SIZE ARRAY_SIZE(acl_cutoff_50)
-#define AID_PARAM_SIZE ARRAY_SIZE(SEQ_PANEL_CONDITION_SET_500MBPS)
-
-static const unsigned char SEQ_PANEL_CONDITION_SET_500MBPS[] = {
- 0xF8,
- 0x19, 0x35, 0x00, 0x00, 0x00, 0x94, 0x00, 0x3C, 0x7D, 0x10,
- 0x27, 0x08, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x6E,
- 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x23, 0x6E, 0xC0, 0xC1,
- 0x01, 0x81, 0xC1, 0x00, 0xC3, 0xF6, 0xF6, 0xC1
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET_500MBPS_46[] = {
- 0xF8,
- 0x3D, 0x35, 0x00, 0x00, 0x00, 0x93, 0x00, 0x3C, 0x7D, 0x08,
- 0x27, 0x7D, 0x3F, 0x00, 0x00, 0x00, 0x20, 0x04, 0x08, 0x6E,
- 0x00, 0x00, 0x00, 0x02, 0x08, 0x08, 0x23, 0x23, 0xC0, 0xC8,
- 0x08, 0x48, 0xC1, 0x00, 0xC1, 0xFF, 0xFF, 0xC8
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET_480MBPS_46[] = {
- 0xF8,
- 0x3D, 0x32, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x39, 0x78, 0x08,
- 0x26, 0x78, 0x3C, 0x00, 0x00, 0x00, 0x20, 0x04, 0x08, 0x69,
- 0x00, 0x00, 0x00, 0x02, 0x07, 0x07, 0x21, 0x21, 0xC0, 0xC8,
- 0x08, 0x48, 0xC1, 0x00, 0xC1, 0xFF, 0xFF, 0xC8
-};
-static const unsigned char SEQ_GAMMA_CONDITION_SET_A1_SM2[] = {
- 0xFA,
- 0x01, 0x71, 0x31, 0x7B, 0xA4, 0xB6,
- 0x95, 0xA9, 0xBC, 0xA2, 0xBB, 0xC9,
- 0xB6, 0x91, 0xA3, 0x8B, 0xAD, 0xB6,
- 0xA9, 0x00, 0xD6, 0x00, 0xBE, 0x00,
- 0xFC,
-};
-
-static const unsigned char SEQ_GAMMA_CONDITION_SET_A2_SM2[] = {
- 0xFA,
- 0x01, 0x5F, 0x2E, 0x67, 0xAA, 0xC6,
- 0xAC, 0xB0, 0xC8, 0xBB, 0xBE, 0xCB,
- 0xBD, 0x97, 0xA5, 0x91, 0xAF, 0xB8,
- 0xAB, 0x00, 0xC2, 0x00, 0xBA, 0x00, 0xE2,
-};
-#if !defined(CONFIG_MACH_M0_GRANDECTC) && !defined(CONFIG_MACH_IRON)
-static const unsigned char SEQ_ETC_SOURCE_CONTROL[] = {
- 0xF6,
- 0x00, 0x02, 0x00
-};
-#endif
-
-static const unsigned char SEQ_ETC_PENTILE_CONTROL[] = {
- 0xB6,
- 0x0C, 0x02, 0x03, 0x32, 0xC0,
- 0x44, 0x44, 0xC0, 0x00
-};
-
-static const unsigned char SEQ_ETC_PENTILE_CONTROL_46[] = {
- 0xB6,
- 0x0C, 0x02, 0x03, 0x32, 0xFF,
- 0x44, 0x44, 0xC0, 0x00
-};
-
-static const unsigned char SEQ_ETC_NVM_SETTING[] = {
- 0xD9,
- 0x14, 0x40, 0x0C, 0xCB, 0xCE,
- 0x6E, 0xC4, 0x07, 0xC0, 0x41,
- 0xC1, 0x00, 0x60, 0x19
-};
-
-static const unsigned char SEQ_ETC_NVM_SETTING_46[] = {
- 0xD9,
- 0x14, 0x40, 0x0C, 0xCB, 0xCE,
- 0x6E, 0xC4, 0x07, 0xC0, 0x41,
- 0xD0, 0x00, 0x60, 0x19
-};
-
-static const unsigned char SEQ_ETC_POWER_CONTROL[] = {
- 0xF4,
- 0xCF, 0x0A, 0x15, 0x10, 0x19, 0x33, 0x02
-};
-
-static const unsigned char SEQ_ETC_POWER_CONTROL_46[] = {
- 0xF4,
- 0xCF, 0x0A, 0x12, 0x10, 0x1E, 0x33, 0x02
-};
-
-
-enum {
- ACL_STATUS_0P = 0,
- ACL_STATUS_40P,
- ACL_STATUS_48P,
- ACL_STATUS_50P,
- ACL_STATUS_MAX
-} ACL_STATUS;
-
-const unsigned char acl_cutoff_40[] = {
- 0xC1,
- 0x4D, 0x96, 0x1D, 0x00, 0x00, 0x01, 0xDF, 0x00, 0x00, 0x03,
- 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x0C, 0x11,
- 0x16, 0x1C, 0x21, 0x26, 0x2B, 0x31, 0x36,
-};
-
-const unsigned char acl_cutoff_48[] = {
- 0xC1,
- 0x4D, 0x96, 0x1D, 0x00, 0x00, 0x01, 0xDF, 0x00, 0x00, 0x03,
- 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x0E, 0x15,
- 0x1B, 0x22, 0x29, 0x2F, 0x36, 0x3C, 0x43,
-};
-
-const unsigned char acl_cutoff_50[] = {
- 0xC1,
- 0x4D, 0x96, 0x1D, 0x00, 0x00, 0x01, 0xDF, 0x00, 0x00, 0x03,
- 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x0F, 0x16,
- 0x1D, 0x24, 0x2A, 0x31, 0x38, 0x3F, 0x46,
-};
-
-const unsigned char *ACL_CUTOFF_TABLE[ACL_STATUS_MAX] = {
- SEQ_ACL_OFF,
- acl_cutoff_40,
- acl_cutoff_48,
- acl_cutoff_50,
-};
-
-#endif /* __S6E63M0_GAMMA_H__ */
diff --git a/drivers/video/samsung_duallcd/s6e63m0_gamma_l.h b/drivers/video/samsung_duallcd/s6e63m0_gamma_l.h
deleted file mode 100644
index 9617de5..0000000
--- a/drivers/video/samsung_duallcd/s6e63m0_gamma_l.h
+++ /dev/null
@@ -1,257 +0,0 @@
-#ifndef __S6E63M0_GAMMA_L_H__
-#define __S6E63M0_GAMMA_L_H__
-
-#include "s6e63m0_param.h"
-static const unsigned char s6e63m0_22_300[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x70, 0x6E, 0x4E,
- 0xBC, 0xC0, 0xAF, 0xB3, 0xB8, 0xA5,
- 0xC5, 0xC7, 0xBB, 0x00, 0xB9, 0x00,
- 0xB8, 0x00, 0xFC,
-};
-
-static const unsigned char s6e63m0_22_290[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x71, 0x70, 0x50,
- 0xBD, 0xC1, 0xB0, 0xB2, 0xB8, 0xA4,
- 0xC6, 0xC7, 0xBB, 0x00, 0xB6, 0x00,
- 0xB6, 0x00, 0xFA,
-};
-
-static const unsigned char s6e63m0_22_280[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x6E, 0x6C, 0x4D,
- 0xBE, 0xC3, 0xB1, 0xB3, 0xB8, 0xA5,
- 0xC6, 0xC8, 0xBB, 0x00, 0xB4, 0x00,
- 0xB3, 0x00, 0xF7,
-};
-
-static const unsigned char s6e63m0_22_270[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x71, 0x6C, 0x50,
- 0xBD, 0xC3, 0xB0, 0xB4, 0xB8, 0xA6,
- 0xC6, 0xC9, 0xBB, 0x00, 0xB2, 0x00,
- 0xB1, 0x00, 0xF4,
-};
-
-static const unsigned char s6e63m0_22_260[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x74, 0x6E, 0x54,
- 0xBD, 0xC2, 0xB0, 0xB5, 0xBA, 0xA7,
- 0xC5, 0xC9, 0xBA, 0x00, 0xB0, 0x00,
- 0xAE, 0x00, 0xF1,
-};
-
-static const unsigned char s6e63m0_22_250[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x74, 0x6D, 0x54,
- 0xBF, 0xC3, 0xB2, 0xB4, 0xBA, 0xA7,
- 0xC6, 0xCA, 0xBA, 0x00, 0xAD, 0x00,
- 0xAB, 0x00, 0xED,
-};
-
-static const unsigned char s6e63m0_22_240[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x76, 0x6F, 0x56,
- 0xC0, 0xC3, 0xB2, 0xB5, 0xBA, 0xA8,
- 0xC6, 0xCB, 0xBB, 0x00, 0xAA, 0x00,
- 0xA8, 0x00, 0xE9,
-};
-
-static const unsigned char s6e63m0_22_230[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x75, 0x6F, 0x56,
- 0xBF, 0xC3, 0xB2, 0xB6, 0xBB, 0xA8,
- 0xC7, 0xCB, 0xBC, 0x00, 0xA8, 0x00,
- 0xA6, 0x00, 0xE6,
-};
-
-static const unsigned char s6e63m0_22_220[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x78, 0x6F, 0x58,
- 0xBF, 0xC4, 0xB3, 0xB5, 0xBB, 0xA9,
- 0xC8, 0xCC, 0xBC, 0x00, 0xA6, 0x00,
- 0xA3, 0x00, 0xE2,
-};
-
-static const unsigned char s6e63m0_22_210[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x79, 0x6D, 0x57,
- 0xC0, 0xC4, 0xB4, 0xB7, 0xBD, 0xAA,
- 0xC8, 0xCC, 0xBD, 0x00, 0xA2, 0x00,
- 0xA0, 0x00, 0xDD,
-};
-
-static const unsigned char s6e63m0_22_200[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x79, 0x6D, 0x58,
- 0xC1, 0xC4, 0xB4, 0xB6, 0xBD, 0xAA,
- 0xCA, 0xCD, 0xBE, 0x00, 0x9F, 0x00,
- 0x9D, 0x00, 0xD9,
-};
-
-static const unsigned char s6e63m0_22_190[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x7A, 0x6D, 0x59,
- 0xC1, 0xC5, 0xB4, 0xB8, 0xBD, 0xAC,
- 0xC9, 0xCE, 0xBE, 0x00, 0x9D, 0x00,
- 0x9A, 0x00, 0xD5,
-};
-
-static const unsigned char s6e63m0_22_180[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x7B, 0x6D, 0x5B,
- 0xC0, 0xC5, 0xB3, 0xBA, 0xBE, 0xAD,
- 0xCA, 0xCE, 0xBF, 0x00, 0x99, 0x00,
- 0x97, 0x00, 0xD0,
-};
-
-static const unsigned char s6e63m0_22_170[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x7C, 0x6D, 0x5C,
- 0xC0, 0xC6, 0xB4, 0xBB, 0xBE, 0xAD,
- 0xCA, 0xCF, 0xC0, 0x00, 0x96, 0x00,
- 0x94, 0x00, 0xCC,
-};
-
-static const unsigned char s6e63m0_22_160[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x7F, 0x6E, 0x5F,
- 0xC0, 0xC6, 0xB5, 0xBA, 0xBF, 0xAD,
- 0xCB, 0xCF, 0xC0, 0x00, 0x94, 0x00,
- 0x91, 0x00, 0xC8,
-};
-
-static const unsigned char s6e63m0_22_150[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x80, 0x6E, 0x5F,
- 0xC1, 0xC6, 0xB6, 0xBC, 0xC0, 0xAE,
- 0xCC, 0xD0, 0xC2, 0x00, 0x8F, 0x00,
- 0x8D, 0x00, 0xC2,
-};
-
-static const unsigned char s6e63m0_22_140[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x80, 0x6C, 0x5F,
- 0xC1, 0xC6, 0xB7, 0xBC, 0xC1, 0xAE,
- 0xCD, 0xD0, 0xC2, 0x00, 0x8C, 0x00,
- 0x8A, 0x00, 0xBE,
-};
-
-static const unsigned char s6e63m0_22_130[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x8C, 0x6C, 0x60,
- 0xC3, 0xC7, 0xB9, 0xBC, 0xC1, 0xAF,
- 0xCE, 0xD2, 0xC3, 0x00, 0x88, 0x00,
- 0x86, 0x00, 0xB8,
-};
-
-static const unsigned char s6e63m0_22_120[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x82, 0x6B, 0x5E,
- 0xC4, 0xC8, 0xB9, 0xBD, 0xC2, 0xB1,
- 0xCE, 0xD2, 0xC4, 0x00, 0x85, 0x00,
- 0x82, 0x00, 0xB3,
-};
-
-static const unsigned char s6e63m0_22_110[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x86, 0x6A, 0x60,
- 0xC5, 0xC7, 0xBA, 0xBD, 0xC3, 0xB2,
- 0xD0, 0xD4, 0xC5, 0x00, 0x80, 0x00,
- 0x7E, 0x00, 0xAD,
-};
-
-static const unsigned char s6e63m0_22_100[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x86, 0x69, 0x60,
- 0xC6, 0xC8, 0xBA, 0xBF, 0xC4, 0xB4,
- 0xD0, 0xD4, 0xC6, 0x00, 0x7C, 0x00,
- 0x7A, 0x00, 0xA7,
-};
-
-static const unsigned char s6e63m0_22_90[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x89, 0x69, 0x64,
- 0xC7, 0xC8, 0xBB, 0xC0, 0xC5, 0xB4,
- 0xD2, 0xD5, 0xC9, 0x00, 0x77, 0x00,
- 0x76, 0x00, 0xA0,
-};
-
-static const unsigned char s6e63m0_22_80[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x89, 0x68, 0x65,
- 0xC9, 0xC9, 0xBC, 0xC1, 0xC5, 0xB6,
- 0xD2, 0xD5, 0xC9, 0x00, 0x73, 0x00,
- 0x72, 0x00, 0x9A,
-};
-
-static const unsigned char s6e63m0_22_70[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x8E, 0x62, 0x6B,
- 0xC7, 0xC9, 0xBB, 0xC3, 0xC7, 0xB7,
- 0xD3, 0xD7, 0xCA, 0x00, 0x6E, 0x00,
- 0x6C, 0x00, 0x94,
-};
-
-static const unsigned char s6e63m0_22_60[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x91, 0x5E, 0x6E,
- 0xC9, 0xC9, 0xBD, 0xC4, 0xC9, 0xB8,
- 0xD3, 0xD7, 0xCA, 0x00, 0x69, 0x00,
- 0x67, 0x00, 0x8D,
-};
-
-static const unsigned char s6e63m0_22_50[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x96, 0x58, 0x72,
- 0xCB, 0xCA, 0xBF, 0xC6, 0xC9, 0xBA,
- 0xD6, 0xD9, 0xCD, 0x00, 0x61, 0x00,
- 0x61, 0x00, 0x83,
-};
-
-static const unsigned char s6e63m0_22_40[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0x97, 0x58, 0x71,
- 0xCC, 0xCB, 0xC0, 0xC5, 0xC9, 0xBA,
- 0xD9, 0xDC, 0xD1, 0x00, 0x5B, 0x00,
- 0x5A, 0x00, 0x7A,
-};
-
-static const unsigned char s6e63m0_22_30[] = {
- 0xFA, 0x02,
- 0x18, 0x08, 0x24, 0xA1, 0x51, 0x7B,
- 0xCE, 0xCB, 0xC2, 0xC7, 0xCB, 0xBC,
- 0xDA, 0xDD, 0xD3, 0x00, 0x53, 0x00,
- 0x52, 0x00, 0x6F,
-};
-
-
-static const unsigned char *s6e63m0_gamma22_table[GAMMA_MAX] = {
- s6e63m0_22_30,
- s6e63m0_22_40,
- s6e63m0_22_50,
- s6e63m0_22_60,
- s6e63m0_22_70,
- s6e63m0_22_80,
- s6e63m0_22_90,
- s6e63m0_22_100,
- s6e63m0_22_110,
- s6e63m0_22_120,
- s6e63m0_22_130,
- s6e63m0_22_140,
- s6e63m0_22_150,
- s6e63m0_22_160,
- s6e63m0_22_170,
- s6e63m0_22_180,
- s6e63m0_22_190,
- s6e63m0_22_200,
- s6e63m0_22_210,
- s6e63m0_22_220,
- s6e63m0_22_230,
- s6e63m0_22_240,
- s6e63m0_22_250,
- s6e63m0_22_300,
-};
-
-#endif /* __S6E63M0_GAMMA_L_H__ */
diff --git a/drivers/video/samsung_duallcd/s6e63m0_param.h b/drivers/video/samsung_duallcd/s6e63m0_param.h
deleted file mode 100644
index 9dc5567..0000000
--- a/drivers/video/samsung_duallcd/s6e63m0_param.h
+++ /dev/null
@@ -1,188 +0,0 @@
-#ifndef __S6E63M0_PARAM_H__
-#define __S6E63M0_PARAM_H__
-
-#define GAMMA_PARAM_SIZE 23
-#define ELVSS_PARAM_SIZE 5
-
-enum {
- ELVSS_MIN = 0,
- ELVSS_1,
- ELVSS_2,
- ELVSS_MAX,
- ELVSS_STATUS_MAX,
-};
-
-enum {
- GAMMA_20CD,
- GAMMA_30CD = GAMMA_20CD,
- GAMMA_40CD,
- GAMMA_50CD,
- GAMMA_60CD,
- GAMMA_70CD,
- GAMMA_80CD,
- GAMMA_90CD,
- GAMMA_100CD,
- GAMMA_110CD,
- GAMMA_120CD,
- GAMMA_130CD,
- GAMMA_140CD,
- GAMMA_150CD,
- GAMMA_160CD,
- GAMMA_170CD,
- GAMMA_180CD,
- GAMMA_190CD,
- GAMMA_200CD,
- GAMMA_210CD,
- GAMMA_220CD,
- GAMMA_230CD,
- GAMMA_240CD,
- GAMMA_250CD,
- GAMMA_290CD,
- GAMMA_300CD = GAMMA_290CD,
- GAMMA_MAX
-};
-
-
-static const unsigned char SEQ_SW_RESET[] = {
- 0x01,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_APPLY_LEVEL2_KEY_ENABLE[] = {
- 0xF0,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_APPLY_MTP_KEY_ENABLE[] = {
- 0xF1,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_SLEEP_OUT[] = {
- 0x11,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_GAMMA_CONDITION_SET[] = {
- 0xFA,
- 0x02, 0x18, 0x08, 0x24, 0x6B, 0x76, 0x57, 0xBD, 0xC3, 0xB5,
- 0xB4, 0xBB, 0xAC, 0xC5, 0xC9, 0xC0, 0x00, 0xB7, 0x00, 0xAB,
- 0x00, 0xCF,
-};
-
-const unsigned char SEQ_PANEL_CONDITION_SET[] = {
- 0xF8,
- 0x01, 0x2D, 0x2D, 0x08, 0x08, 0x61, 0xB7, 0x72,
- 0x9A, 0x1E, 0x3B, 0x0F, 0x00, 0x00,
-};
-
-const unsigned char SEQ_DISPLAY_CONDITION_SET1[] = {
- 0xF2,
- 0x02, 0x03, 0x1C, 0x10, 0x10,
-};
-
-const unsigned char SEQ_DISPLAY_CONDITION_SET2[] = {
- 0xF7,
- 0x00, 0x00, 0x00,
-};
-
-static const unsigned char SEQ_GAMMA_UPDATE[] = {
- 0xFA, 0x03,
-};
-
-static const unsigned char SEQ_ETC_SOURCE_CONTROL[] = {
- 0xF6,
- 0x00, 0x8E, 0x0F,
-};
-
-static const unsigned char SEQ_ETC_CONTROL_B3h[] = {
- 0xB3, 0x0C,
-};
-
-const unsigned char SEQ_STANDBY_ON[] = {
- 0x10,
- 0x00, 0x00
-};
-
-const unsigned char SEQ_DISPLAY_ON[] = {
- 0x29,
- 0x00, 0x00
-};
-
-const unsigned char SEQ_DISPLAY_OFF[] = {
- 0x28,
- 0x00, 0x00
-};
-
-const unsigned char SEQ_ELVSS_SET[] = {
- 0xB2,
- 0x17, 0x17, 0x17, 0x17,
-};
-
-const unsigned char SEQ_ELVSS_ON[] = {
- 0xB1, 0x0B,
- 0x00,
-};
-
-
-static const unsigned char SEQ_ACL_ON[] = {
- 0xC0, 0x01,
- 0x00
-};
-
-static const unsigned char SEQ_ACL_OFF[] = {
- 0xC0, 0x00,
- 0x00
-};
-
-static const unsigned char SEQ_ELVSS_20[] = {
- 0xB2,
- 0x20, 0x20, 0x20, 0x20,
-};
-
-static const unsigned char SEQ_ELVSS_26[] = {
- 0xB2,
- 0x26, 0x26, 0x26, 0x26,
-};
-
-static const unsigned char SEQ_ELVSS_28[] = {
- 0xB2,
- 0x28, 0x28, 0x28, 0x28,
-};
-
-static const unsigned char SEQ_ELVSS_29[] = {
- 0xB2,
- 0x29, 0x29, 0x29, 0x29,
-};
-
-static const unsigned char *ELVSS_TABLE[] = {
- SEQ_ELVSS_20,
- SEQ_ELVSS_26,
- SEQ_ELVSS_28,
- SEQ_ELVSS_29,
-};
-
-static const unsigned char SEQ_PREPARE_MTP_READ1[] = {
- 0xF0,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_PREPARE_ID_READ[] = {
- 0xD5,
- 0xE7, 0x14, 0x60, 0x17, 0x0A, 0x49, 0xC3, 0x8F,
- 0x19, 0x64, 0x91, 0x84, 0x76, 0x20, 0x43, 0x00,
-};
-
-static const unsigned char SEQ_PREPARE_MTP_READ2[] = {
- 0xF1,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_CONTENTION_ERROR_REMOVE[] = {
- 0xD5,
- 0xE7, 0x14, 0x60, 0x17, 0x0A,
- 0x49, 0xC3, 0x8F, 0x19, 0x64,
- 0x91, 0x84, 0x76, 0x20, 0x43,
- 0x00,
-};
-#endif /* __S6E63M0_PARAM_H__ */
diff --git a/drivers/video/samsung_duallcd/s6e63m0_volt_tbl.h b/drivers/video/samsung_duallcd/s6e63m0_volt_tbl.h
deleted file mode 100644
index 53d82d4..0000000
--- a/drivers/video/samsung_duallcd/s6e63m0_volt_tbl.h
+++ /dev/null
@@ -1,620 +0,0 @@
-#ifndef __REF_VOLT_TABLE_H__
-#define __REF_VOLT_TABLE_H__
-
-u32 volt_table_v1[V1_VOLTAGE_COUNT] = {
-4367319, 4359979, 4352639, 4345299,
-4337959, 4330619, 4323279, 4315939,
-4308599, 4301259, 4293919, 4286579,
-4279239, 4271899, 4264559, 4257219,
-4249879, 4242538, 4235198, 4227858,
-4220518, 4213178, 4205838, 4198498,
-4191158, 4183818, 4176478, 4169138,
-4161798, 4154458, 4147118, 4139778,
-4132438, 4125098, 4117758, 4110418,
-4103078, 4095738, 4088398, 4081058,
-4073718, 4066378, 4059038, 4051698,
-4044358, 4037018, 4029678, 4022338,
-4014998, 4007657, 4000317, 3992977,
-3985637, 3978297, 3970957, 3963617,
-3956277, 3948937, 3941597, 3934257,
-3926917, 3919577, 3912237, 3904897,
-3897557, 3890217, 3882877, 3875537,
-3868197, 3860857, 3853517, 3846177,
-3838837, 3831497, 3824157, 3816817,
-3809477, 3802137, 3794797, 3787457,
-3780116, 3772776, 3765436, 3758096,
-3750756, 3743416, 3736076, 3728736,
-3721396, 3714056, 3706716, 3699376,
-3692036, 3684696, 3677356, 3670016,
-3662676, 3655336, 3647996, 3640656,
-3633316, 3625976, 3618636, 3611296,
-3603956, 3596616, 3589276, 3581936,
-3574596, 3567256, 3559916, 3552575,
-3545235, 3537895, 3530555, 3523215,
-3515875, 3508535, 3501195, 3493855,
-3486515, 3479175, 3471835, 3464495,
-3457155, 3449815, 3442475, 3435135,
-3427795, 3420455, 3413115, 3405775,
-3398435, 3391095, 3383755, 3376415,
-3369075, 3361735, 3354395, 3347055,
-3339715,
-};
-u32 volt_table_v255[V255_VOLTAGE_COUNT] = {
-3523215, 3515875, 3508535, 3501195,
-3493855, 3486515, 3479175, 3471835,
-3464495, 3457155, 3449815, 3442475,
-3435135, 3427795, 3420455, 3413115,
-3405775, 3398435, 3391095, 3383755,
-3376415, 3369075, 3361735, 3354395,
-3347055, 3339715, 3332375, 3325034,
-3317694, 3310354, 3303014, 3295674,
-3288334, 3280994, 3273654, 3266314,
-3258974, 3251634, 3244294, 3236954,
-3229614, 3222274, 3214934, 3207594,
-3200254, 3192914, 3185574, 3178234,
-3170894, 3163554, 3156214, 3148874,
-3141534, 3134194, 3126854, 3119514,
-3112174, 3104834, 3097494, 3090153,
-3082813, 3075473, 3068133, 3060793,
-3053453, 3046113, 3038773, 3031433,
-3024093, 3016753, 3009413, 3002073,
-2994733, 2987393, 2980053, 2972713,
-2965373, 2958033, 2950693, 2943353,
-2936013, 2928673, 2921333, 2913993,
-2906653, 2899313, 2891973, 2884633,
-2877293, 2869953, 2862612, 2855272,
-2847932, 2840592, 2833252, 2825912,
-2818572, 2811232, 2803892, 2796552,
-2789212, 2781872, 2774532, 2767192,
-2759852, 2752512, 2745172, 2737832,
-2730492, 2723152, 2715812, 2708472,
-2701132, 2693792, 2686452, 2679112,
-2671772, 2664432, 2657092, 2649752,
-2642412, 2635071, 2627731, 2620391,
-2613051, 2605711, 2598371, 2591031,
-2583691, 2576351, 2569011, 2561671,
-2554331, 2546991, 2539651, 2532311,
-2524971, 2517631, 2510291, 2502951,
-2495611, 2488271, 2480931, 2473591,
-2466251, 2458911, 2451571, 2444231,
-2436891, 2429551, 2422211, 2414871,
-2407530, 2400190, 2392850, 2385510,
-2378170, 2370830, 2363490, 2356150,
-2348810, 2341470, 2334130, 2326790,
-2319450, 2312110, 2304770, 2297430,
-2290090, 2282750, 2275410, 2268070,
-2260730, 2253390, 2246050, 2238710,
-2231370, 2224030, 2216690, 2209350,
-2202010, 2194670, 2187330, 2179990,
-2172649, 2165309, 2157969, 2150629,
-2143289, 2135949, 2128609, 2121269,
-2113929, 2106589, 2099249, 2091909,
-2084569, 2077229, 2069889, 2062549,
-2055209, 2047869, 2040529, 2033189,
-2025849, 2018509, 2011169, 2003829,
-1996489, 1989149, 1981809, 1974469,
-1967129, 1959789, 1952449, 1945108,
-1937768, 1930428, 1923088, 1915748,
-1908408, 1901068, 1893728, 1886388,
-1879048, 1871708, 1864368, 1857028,
-1849688, 1842348, 1835008, 1827668,
-1820328, 1812988, 1805648, 1798308,
-1790968, 1783628, 1776288, 1768948,
-1761608, 1754268, 1746928, 1739588,
-1732248, 1724908, 1717567, 1710227,
-1702887, 1695547, 1688207, 1680867,
-1673527, 1666187, 1658847, 1651507,
-1644167, 1636827, 1629487, 1622147,
-1614807, 1607467, 1600127, 1592787,
-1585447, 1578107, 1570767, 1563427,
-1556087, 1548747, 1541407, 1534067,
-1526727, 1519387, 1512047, 1504707,
-1497367, 1490026, 1482686, 1475346,
-1468006, 1460666, 1453326, 1445986,
-1438646, 1431306, 1423966, 1416626,
-1409286, 1401946, 1394606, 1387266,
-1379926, 1372586, 1365246, 1357906,
-1350566, 1343226, 1335886, 1328546,
-1321206, 1313866, 1306526, 1299186,
-1291846, 1284506, 1277166, 1269826,
-1262486, 1255145, 1247805, 1240465,
-1233125, 1225785, 1218445, 1211105,
-1203765, 1196425, 1189085, 1181745,
-1174405, 1167065, 1159725, 1152385,
-1145045, 1137705, 1130365, 1123025,
-1115685, 1108345, 1101005, 1093665,
-1086325, 1078985, 1071645, 1064305,
-1056965, 1049625, 1042285, 1034945,
-1027604, 1020264, 1012924, 1005584,
-998244 ,990904 ,983564 ,976224,
-968884 ,961544 ,954204 ,946864,
-939524 ,932184 ,924844 ,917504,
-910164 ,902824 ,895484 ,888144,
-880804 ,873464 ,866124 ,858784,
-851444 ,844104 ,836764 ,829424,
-822084 ,814744 ,807404 ,800063,
-792723 ,785383 ,778043 ,770703,
-763363 ,756023 ,748683 ,741343,
-734003,
-};
-
-u32 volt_table_cv_19_dv_320[V19_VOLTAGE_COUNT] = {
-208, 211, 214, 218,
-221, 224, 227, 230,
-234, 237, 240, 243,
-246, 250, 253, 256,
-259, 262, 266, 269,
-272, 275, 278, 282,
-285, 288, 291, 294,
-298, 301, 304, 307,
-310, 314, 317, 320,
-323, 326, 330, 333,
-336, 339, 342, 346,
-349, 352, 355, 358,
-362, 365, 368, 371,
-374, 378, 381, 384,
-387, 390, 394, 397,
-400, 403, 406, 410,
-413, 416, 419, 422,
-426, 429, 432, 435,
-438, 442, 445, 448,
-451, 454, 458, 461,
-464, 467, 470, 474,
-477, 480, 483, 486,
-490, 493, 496, 499,
-502, 506, 509, 512,
-515, 518, 522, 525,
-528, 531, 534, 538,
-541, 544, 547, 550,
-554, 557, 560, 563,
-566, 570, 573, 576,
-579, 582, 586, 589,
-592, 595, 598, 602,
-605, 608, 611, 614,
-618, 621, 624, 627,
-630, 634, 637, 640,
-643, 646, 650, 653,
-656, 659, 662, 666,
-669, 672, 675, 678,
-682, 685, 688, 691,
-694, 698, 701, 704,
-707, 710, 714, 717,
-720, 723, 726, 730,
-733, 736, 739, 742,
-746, 749, 752, 755,
-758, 762, 765, 768,
-771, 774, 778, 781,
-784, 787, 790, 794,
-797, 800, 803, 806,
-810, 813, 816, 819,
-822, 826, 829, 832,
-835, 838, 842, 845,
-848, 851, 854, 858,
-861, 864, 867, 870,
-874, 877, 880, 883,
-886, 890, 893, 896,
-899, 902, 906, 909,
-912, 915, 918, 922,
-925, 928, 931, 934,
-938, 941, 944, 947,
-950, 954, 957, 960,
-963, 966, 970, 973,
-976, 979, 982, 986,
-989, 992, 995, 998,
-1002, 1005, 1008, 1011,
-1014, 1018, 1021, 1024,
-};
-
-u32 volt_table_cv_43_dv_320[V43_VOLTAGE_COUNT] = {
-208, 211, 214, 218,
-221, 224, 227, 230,
-234, 237, 240, 243,
-246, 250, 253, 256,
-259, 262, 266, 269,
-272, 275, 278, 282,
-285, 288, 291, 294,
-298, 301, 304, 307,
-310, 314, 317, 320,
-323, 326, 330, 333,
-336, 339, 342, 346,
-349, 352, 355, 358,
-362, 365, 368, 371,
-374, 378, 381, 384,
-387, 390, 394, 397,
-400, 403, 406, 410,
-413, 416, 419, 422,
-426, 429, 432, 435,
-438, 442, 445, 448,
-451, 454, 458, 461,
-464, 467, 470, 474,
-477, 480, 483, 486,
-490, 493, 496, 499,
-502, 506, 509, 512,
-515, 518, 522, 525,
-528, 531, 534, 538,
-541, 544, 547, 550,
-554, 557, 560, 563,
-566, 570, 573, 576,
-579, 582, 586, 589,
-592, 595, 598, 602,
-605, 608, 611, 614,
-618, 621, 624, 627,
-630, 634, 637, 640,
-643, 646, 650, 653,
-656, 659, 662, 666,
-669, 672, 675, 678,
-682, 685, 688, 691,
-694, 698, 701, 704,
-707, 710, 714, 717,
-720, 723, 726, 730,
-733, 736, 739, 742,
-746, 749, 752, 755,
-758, 762, 765, 768,
-771, 774, 778, 781,
-784, 787, 790, 794,
-797, 800, 803, 806,
-810, 813, 816, 819,
-822, 826, 829, 832,
-835, 838, 842, 845,
-848, 851, 854, 858,
-861, 864, 867, 870,
-874, 877, 880, 883,
-886, 890, 893, 896,
-899, 902, 906, 909,
-912, 915, 918, 922,
-925, 928, 931, 934,
-938, 941, 944, 947,
-950, 954, 957, 960,
-963, 966, 970, 973,
-976, 979, 982, 986,
-989, 992, 995, 998,
-1002, 1005, 1008, 1011,
-1014, 1018, 1021, 1024,
-};
-
-u32 volt_table_cv_87_dv_320[V87_VOLTAGE_COUNT] = {
-208, 211, 214, 218,
-221, 224, 227, 230,
-234, 237, 240, 243,
-246, 250, 253, 256,
-259, 262, 266, 269,
-272, 275, 278, 282,
-285, 288, 291, 294,
-298, 301, 304, 307,
-310, 314, 317, 320,
-323, 326, 330, 333,
-336, 339, 342, 346,
-349, 352, 355, 358,
-362, 365, 368, 371,
-374, 378, 381, 384,
-387, 390, 394, 397,
-400, 403, 406, 410,
-413, 416, 419, 422,
-426, 429, 432, 435,
-438, 442, 445, 448,
-451, 454, 458, 461,
-464, 467, 470, 474,
-477, 480, 483, 486,
-490, 493, 496, 499,
-502, 506, 509, 512,
-515, 518, 522, 525,
-528, 531, 534, 538,
-541, 544, 547, 550,
-554, 557, 560, 563,
-566, 570, 573, 576,
-579, 582, 586, 589,
-592, 595, 598, 602,
-605, 608, 611, 614,
-618, 621, 624, 627,
-630, 634, 637, 640,
-643, 646, 650, 653,
-656, 659, 662, 666,
-669, 672, 675, 678,
-682, 685, 688, 691,
-694, 698, 701, 704,
-707, 710, 714, 717,
-720, 723, 726, 730,
-733, 736, 739, 742,
-746, 749, 752, 755,
-758, 762, 765, 768,
-771, 774, 778, 781,
-784, 787, 790, 794,
-797, 800, 803, 806,
-810, 813, 816, 819,
-822, 826, 829, 832,
-835, 838, 842, 845,
-848, 851, 854, 858,
-861, 864, 867, 870,
-874, 877, 880, 883,
-886, 890, 893, 896,
-899, 902, 906, 909,
-912, 915, 918, 922,
-925, 928, 931, 934,
-938, 941, 944, 947,
-950, 954, 957, 960,
-963, 966, 970, 973,
-976, 979, 982, 986,
-989, 992, 995, 998,
-1002, 1005, 1008, 1011,
-1014, 1018, 1021, 1024,
-};
-
-u32 volt_table_cv_171_dv_320[V171_VOLTAGE_COUNT] = {
-208, 211, 214, 218,
-221, 224, 227, 230,
-234, 237, 240, 243,
-246, 250, 253, 256,
-259, 262, 266, 269,
-272, 275, 278, 282,
-285, 288, 291, 294,
-298, 301, 304, 307,
-310, 314, 317, 320,
-323, 326, 330, 333,
-336, 339, 342, 346,
-349, 352, 355, 358,
-362, 365, 368, 371,
-374, 378, 381, 384,
-387, 390, 394, 397,
-400, 403, 406, 410,
-413, 416, 419, 422,
-426, 429, 432, 435,
-438, 442, 445, 448,
-451, 454, 458, 461,
-464, 467, 470, 474,
-477, 480, 483, 486,
-490, 493, 496, 499,
-502, 506, 509, 512,
-515, 518, 522, 525,
-528, 531, 534, 538,
-541, 544, 547, 550,
-554, 557, 560, 563,
-566, 570, 573, 576,
-579, 582, 586, 589,
-592, 595, 598, 602,
-605, 608, 611, 614,
-618, 621, 624, 627,
-630, 634, 637, 640,
-643, 646, 650, 653,
-656, 659, 662, 666,
-669, 672, 675, 678,
-682, 685, 688, 691,
-694, 698, 701, 704,
-707, 710, 714, 717,
-720, 723, 726, 730,
-733, 736, 739, 742,
-746, 749, 752, 755,
-758, 762, 765, 768,
-771, 774, 778, 781,
-784, 787, 790, 794,
-797, 800, 803, 806,
-810, 813, 816, 819,
-822, 826, 829, 832,
-835, 838, 842, 845,
-848, 851, 854, 858,
-861, 864, 867, 870,
-874, 877, 880, 883,
-886, 890, 893, 896,
-899, 902, 906, 909,
-912, 915, 918, 922,
-925, 928, 931, 934,
-938, 941, 944, 947,
-950, 954, 957, 960,
-963, 966, 970, 973,
-976, 979, 982, 986,
-989, 992, 995, 998,
-1002, 1005, 1008, 1011,
-1014, 1018, 1021, 1024,
-};
-const u32 gamma_300_gra_table[256] = {
-1, 1, 1, 1,
-1, 2, 2, 3,
-4, 5, 6, 8,
-12, 17, 23, 30,
-40, 55, 72, 95,
-122, 154, 200, 251,
-310, 375, 458, 550,
-651, 776, 925, 1088,
-1265, 1457, 1665, 1928,
-2221, 2537, 2875, 3247,
-3723, 4187, 4456, 4733,
-5102, 5460, 5770, 6112,
-6375, 6745, 7160, 7539,
-7848, 8298, 8750, 9261,
-9677, 10092, 10656, 11093,
-11539, 11994, 12554, 13002,
-13455, 14033, 14625, 15219,
-15682, 16303, 16901, 17415,
-18029, 18574, 19224, 19931,
-20553, 21186, 21830, 22484,
-23148, 23897, 24678, 25320,
-26134, 26909, 27627, 28408,
-29127, 29927, 30745, 31496,
-32257, 33027, 33861, 34756,
-35664, 36455, 37350, 38293,
-39139, 40146, 41021, 41925,
-42951, 43858, 44776, 45703,
-46642, 47590, 48558, 49604,
-50602, 51725, 52776, 53760,
-54828, 55906, 56921, 58030,
-59209, 60380, 61563, 62636,
-63807, 65026, 66259, 67350,
-68603, 69782, 70973, 72323,
-73536, 74761, 75996, 77242,
-78519, 79881, 81173, 82599,
-83971, 85327, 86710, 88023,
-89425, 90833, 92180, 93538,
-94906, 96285, 97608, 99030,
-100605, 102103, 103544, 105083,
-106607, 108082, 109568, 111065,
-112573, 114092, 115623, 117164,
-118728, 120348, 121965, 123614,
-125249, 126834, 128521, 130189,
-131808, 133361, 134925, 136576,
-138354, 140108, 141862, 143635,
-145343, 147133, 148941, 150683,
-152437, 154201, 155976, 157808,
-159643, 161585, 163473, 165289,
-167171, 169099, 170949, 172809,
-174680, 176648, 178692, 180696,
-182664, 184745, 186780, 188736,
-190752, 192827, 194823, 196878,
-198945, 201024, 203075, 205065,
-207179, 209277, 211271, 213280,
-215538, 217681, 219835, 222000,
-224178, 226366, 228435, 230628,
-232872, 235118, 237472, 239741,
-241999, 244267, 246548, 248840,
-251143, 253526, 255829, 258188,
-260522, 262896, 265261, 267576,
-269901, 272387, 274893, 277411,
-279941, 282484, 284973, 287457,
-289977, 292425, 294884, 297354,
-299836, 302328, 304832, 307201,
-};
-
-const u32 gamma_22_table[256] = {
-0, 5, 23, 56,
-107, 175, 261, 367,
-492, 638, 804, 992,
-1201, 1433, 1686, 1963,
-2262, 2585, 2932, 3302,
-3697, 4116, 4559, 5028,
-5521, 6040, 6584, 7155,
-7751, 8373, 9021, 9696,
-10397, 11126, 11881, 12663,
-13473, 14310, 15175, 16067,
-16988, 17936, 18912, 19917,
-20951, 22012, 23103, 24222,
-25371, 26548, 27755, 28991,
-30256, 31551, 32875, 34230,
-35614, 37028, 38472, 39947,
-41451, 42987, 44552, 46148,
-47775, 49433, 51122, 52841,
-54592, 56374, 58187, 60031,
-61907, 63814, 65753, 67724,
-69727, 71761, 73827, 75926,
-78056, 80219, 82414, 84641,
-86901, 89193, 91518, 93875,
-96266, 98689, 101145, 103634,
-106156, 108711, 111299, 113920,
-116575, 119264, 121985, 124740,
-127529, 130352, 133208, 136098,
-139022, 141980, 144972, 147998,
-151058, 154152, 157280, 160443,
-163640, 166872, 170138, 173439,
-176774, 180144, 183548, 186988,
-190462, 193972, 197516, 201095,
-204710, 208359, 212044, 215764,
-219519, 223310, 227136, 230998,
-234895, 238827, 242796, 246800,
-250840, 254915, 259027, 263174,
-267358, 271577, 275832, 280124,
-284452, 288815, 293216, 297652,
-302125, 306634, 311180, 315762,
-320381, 325036, 329729, 334457,
-339223, 344025, 348864, 353740,
-358653, 363603, 368590, 373615,
-378676, 383774, 388910, 394083,
-399293, 404540, 409825, 415148,
-420507, 425905, 431340, 436812,
-442322, 447870, 453456, 459079,
-464741, 470440, 476177, 481952,
-487765, 493616, 499505, 505432,
-511397, 517401, 523443, 529523,
-535641, 541798, 547993, 554227,
-560499, 566809, 573158, 579546,
-585972, 592438, 598941, 605484,
-612065, 618685, 625344, 632042,
-638779, 645555, 652370, 659223,
-666116, 673049, 680020, 687030,
-694080, 701169, 708297, 715465,
-722672, 729918, 737204, 744530,
-751895, 759299, 766743, 774227,
-781750, 789313, 796916, 804559,
-812241, 819963, 827725, 835527,
-843369, 851251, 859173, 867135,
-875137, 883179, 891262, 899384,
-907547, 915750, 923993, 932276,
-940600, 948964, 957369, 965814,
-974300, 982826, 991392, 1000000,
-};
-
-const struct str_flookup_table flookup_table[302] = {
- { 1, 30}, { 30, 5}, { 35, 3}, { 38, 2},
- { 40, 4}, { 44, 3}, { 47, 3}, { 50, 2},
- { 52, 2}, { 53, 3}, { 54, 2}, { 59, 2},
- { 61, 2}, { 63, 2}, { 65, 2}, { 67, 2},
- { 69, 1}, { 70, 2}, { 72, 2}, { 74, 1},
- { 75, 2}, { 77, 2}, { 79, 1}, { 80, 1},
- { 81, 2}, { 82, 1}, { 84, 2}, { 86, 1},
- { 87, 1}, { 88, 1}, { 89, 2}, { 91, 1},
- { 92, 1}, { 93, 2}, { 95, 1}, { 96, 1},
- { 97, 1}, { 98, 1}, { 99, 1}, {100, 1},
- {101, 2}, {103, 1}, {104, 1}, {105, 1},
- {106, 1}, {107, 1}, {108, 1}, {109, 1},
- {110, 1}, {111, 1}, {112, 1}, {113, 1},
- {114, 1}, {115, 1}, {116, 1}, {117, 1},
- {118, 1}, {119, 1}, {120, 1}, { 0, 0},
- {121, 1}, {122, 1}, {123, 1}, {124, 1},
- {125, 1}, {126, 1}, {127, 1}, { 0, 0},
- {128, 1}, {129, 1}, {130, 1}, {131, 1},
- { 0, 0}, {132, 1}, {133, 1}, {134, 1},
- {135, 1}, { 0, 0}, {136, 1}, {137, 1},
- {138, 1}, { 0, 0}, {139, 1}, {140, 1},
- {141, 1}, {142, 1}, { 0, 0}, {143, 1},
- {144, 1}, { 0, 0}, {145, 1}, {146, 1},
- {147, 1}, { 0, 0}, {148, 1}, {149, 1},
- {150, 1}, { 0, 0}, {151, 1}, {152, 1},
- { 0, 0}, {153, 1}, {154, 1}, { 0, 0},
- {155, 1}, {156, 1}, { 0, 0}, {157, 1},
- {158, 1}, {159, 1}, { 0, 0}, {160, 1},
- {161, 1}, { 0, 0}, {162, 1}, {163, 1},
- { 0, 0}, {164, 1}, { 0, 0}, {165, 1},
- {166, 1}, { 0, 0}, {167, 1}, {168, 1},
- { 0, 0}, {169, 1}, { 0, 0}, {170, 1},
- {171, 1}, { 0, 0}, {172, 1}, {173, 1},
- { 0, 0}, {174, 1}, { 0, 0}, {175, 1},
- {176, 1}, { 0, 0}, {177, 1}, { 0, 0},
- {178, 1}, {179, 1}, { 0, 0}, {180, 1},
- { 0, 0}, {181, 1}, { 0, 0}, {182, 1},
- {183, 1}, { 0, 0}, {184, 1}, { 0, 0},
- {185, 1}, { 0, 0}, {186, 1}, {187, 1},
- { 0, 0}, {188, 1}, { 0, 0}, {189, 1},
- { 0, 0}, {190, 1}, { 0, 0}, {191, 1},
- { 0, 0}, {192, 1}, {193, 1}, { 0, 0},
- {194, 1}, { 0, 0}, {195, 1}, { 0, 0},
- {196, 1}, { 0, 0}, {197, 1}, { 0, 0},
- {198, 1}, { 0, 0}, {199, 1}, { 0, 0},
- {200, 1}, { 0, 0}, {201, 1}, { 0, 0},
- {202, 1}, { 0, 0}, {203, 1}, { 0, 0},
- {204, 1}, { 0, 0}, {205, 1}, { 0, 0},
- {206, 1}, { 0, 0}, {207, 1}, { 0, 0},
- {208, 1}, { 0, 0}, {209, 1}, { 0, 0},
- {210, 1}, { 0, 0}, {211, 1}, { 0, 0},
- {212, 1}, { 0, 0}, {213, 1}, { 0, 0},
- {214, 1}, { 0, 0}, {215, 1}, { 0, 0},
- {216, 1}, { 0, 0}, {217, 1}, { 0, 0},
- {218, 1}, { 0, 0}, {219, 1}, { 0, 0},
- { 0, 0}, {220, 1}, { 0, 0}, {221, 1},
- { 0, 0}, {222, 1}, { 0, 0}, {223, 1},
- { 0, 0}, {224, 1}, { 0, 0}, {225, 1},
- { 0, 0}, { 0, 0}, {226, 1}, { 0, 0},
- {227, 1}, { 0, 0}, {228, 1}, { 0, 0},
- {229, 1}, { 0, 0}, { 0, 0}, {230, 1},
- { 0, 0}, {231, 1}, { 0, 0}, {232, 1},
- { 0, 0}, {233, 1}, { 0, 0}, { 0, 0},
- {234, 1}, { 0, 0}, {235, 1}, { 0, 0},
- {236, 1}, { 0, 0}, { 0, 0}, {237, 1},
- { 0, 0}, {238, 1}, { 0, 0}, {239, 1},
- { 0, 0}, { 0, 0}, {240, 1}, { 0, 0},
- {241, 1}, { 0, 0}, {242, 1}, { 0, 0},
- { 0, 0}, {243, 1}, { 0, 0}, {244, 1},
- { 0, 0}, { 0, 0}, {245, 1}, { 0, 0},
- {246, 1}, { 0, 0}, { 0, 0}, {247, 1},
- { 0, 0}, {248, 1}, { 0, 0}, {249, 1},
- { 0, 0}, { 0, 0}, {250, 1}, { 0, 0},
- {251, 1}, { 0, 0}, { 0, 0}, {252, 1},
- { 0, 0}, {253, 1}, { 0, 0}, { 0, 0},
- {254, 1},
-};
-#endif
diff --git a/drivers/video/samsung_duallcd/s6e8aa0_gamma_c1m0.h b/drivers/video/samsung_duallcd/s6e8aa0_gamma_c1m0.h
deleted file mode 100644
index 1b1a47e..0000000
--- a/drivers/video/samsung_duallcd/s6e8aa0_gamma_c1m0.h
+++ /dev/null
@@ -1,235 +0,0 @@
-#ifndef __S6E8AA0_GAMMA_H__
-#define __S6E8AA0_GAMMA_H__
-
-#include "s6e8aa0_param.h"
-
-#define ACL_PARAM_SIZE ARRAY_SIZE(acl_cutoff_50)
-#define AID_PARAM_SIZE ARRAY_SIZE(SEQ_PANEL_CONDITION_SET_500MBPS)
-
-static const unsigned char SEQ_PANEL_CONDITION_SET_500MBPS[] = {
- 0xF8,
- 0x19, 0x35, 0x00, 0x00, 0x00, 0x94, 0x00, 0x3C, 0x7D, 0x10,
- 0x27, 0x08, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x6E,
- 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x23, 0x37, 0xC0, 0xC1,
- 0x01, 0x81, 0xC1, 0x00, 0xC3, 0xF6, 0xF6, 0xC1
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET_B_483MBPS[] = {
- 0xF8,
- 0x19, 0x35, 0x00, 0x00, 0x00, 0x94, 0x00, 0x3C, 0x7D, 0x10,
- 0x27, 0x08, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x6E,
- 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x23, 0x35, 0xC0, 0xC1,
- 0x01, 0x81, 0xC1, 0x00, 0xC3, 0xF6, 0xF6, 0xC1
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET_500MBPS_46[] = {
- 0xF8,
- 0x3D, 0x35, 0x00, 0x00, 0x00, 0x93, 0x00, 0x3C, 0x7D, 0x08,
- 0x27, 0x7D, 0x3F, 0x00, 0x00, 0x00, 0x20, 0x04, 0x08, 0x6E,
- 0x00, 0x00, 0x00, 0x02, 0x08, 0x08, 0x23, 0x23, 0xC0, 0xC8,
- 0x08, 0x48, 0xC1, 0x00, 0xC1, 0xFF, 0xFF, 0xC8
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET_480MBPS_46[] = {
- 0xF8,
- 0x3D, 0x32, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x39, 0x78, 0x08,
- 0x26, 0x78, 0x3C, 0x00, 0x00, 0x00, 0x20, 0x04, 0x08, 0x69,
- 0x00, 0x00, 0x00, 0x02, 0x07, 0x07, 0x21, 0x21, 0xC0, 0xC8,
- 0x08, 0x48, 0xC1, 0x00, 0xC1, 0xFF, 0xFF, 0xC8
-};
-
-static const unsigned char SEQ_GAMMA_CONDITION_SET[] = {
- 0xFA,
- 0x01, 0x58, 0x1F, 0x63, 0xAC, 0xB4, 0x99, 0xAD, 0xBA, 0xA3,
- 0xC0, 0xCB, 0xBB, 0x93, 0x9F, 0x8B, 0xAD, 0xB4, 0xA7, 0x00,
- 0xBE, 0x00, 0xAB, 0x00, 0xE7
-};
-
-static const unsigned char SEQ_GAMMA_CONDITION_SET_A1_SM2[] = {
- 0xFA,
- 0x01, 0x71, 0x31, 0x7B, 0xA4, 0xB6,
- 0x95, 0xA9, 0xBC, 0xA2, 0xBB, 0xC9,
- 0xB6, 0x91, 0xA3, 0x8B, 0xAD, 0xB6,
- 0xA9, 0x00, 0xD6, 0x00, 0xBE, 0x00,
- 0xFC,
-};
-
-static const unsigned char SEQ_GAMMA_CONDITION_SET_A2_SM2[] = {
- 0xFA,
- 0x01, 0x5F, 0x2E, 0x67, 0xAA, 0xC6,
- 0xAC, 0xB0, 0xC8, 0xBB, 0xBE, 0xCB,
- 0xBD, 0x97, 0xA5, 0x91, 0xAF, 0xB8,
- 0xAB, 0x00, 0xC2, 0x00, 0xBA, 0x00, 0xE2,
-};
-
-static const unsigned char SEQ_ETC_SOURCE_CONTROL[] = {
- 0xF6,
- 0x00, 0x02, 0x00
-};
-
-static const unsigned char SEQ_ETC_PENTILE_CONTROL[] = {
- 0xB6,
- 0x0C, 0x02, 0x03, 0x32, 0xC0,
- 0x44, 0x44, 0xC0, 0x00
-};
-
-static const unsigned char SEQ_ETC_PENTILE_CONTROL_46[] = {
- 0xB6,
- 0x0C, 0x02, 0x03, 0x32, 0xFF,
- 0x44, 0x44, 0xC0, 0x00
-};
-
-static const unsigned char SEQ_ETC_NVM_SETTING[] = {
- 0xD9,
- 0x14, 0x40, 0x0C, 0xCB, 0xCE,
- 0x6E, 0xC4, 0x07, 0xC0, 0x41,
- 0xC1, 0x00, 0x60, 0x19
-};
-
-static const unsigned char SEQ_ETC_NVM_SETTING_46[] = {
- 0xD9,
- 0x14, 0x40, 0x0C, 0xCB, 0xCE,
- 0x6E, 0xC4, 0x07, 0xC0, 0x41,
- 0xD0, 0x00, 0x60, 0x19
-};
-
-static const unsigned char SEQ_ETC_POWER_CONTROL[] = {
- 0xF4,
- 0xCF, 0x0A, 0x15, 0x10, 0x19, 0x33, 0x02
-};
-
-static const unsigned char SEQ_ETC_POWER_CONTROL_46[] = {
- 0xF4,
- 0xCF, 0x0A, 0x12, 0x10, 0x1E, 0x33, 0x02
-};
-
-enum {
- ACL_STATUS_0P = 0,
- ACL_STATUS_20P,
- ACL_STATUS_33P,
- ACL_STATUS_40P,
- ACL_STATUS_43P,
- ACL_STATUS_45P,
- ACL_STATUS_48P,
- ACL_STATUS_50P,
- ACL_STATUS_52P,
- ACL_STATUS_53P,
- ACL_STATUS_55P,
- ACL_STATUS_MAX
-} ACL_STATUS;
-
-const unsigned char acl_cutoff_20[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x04, 0x07, 0x0A, 0x0D, 0x10,
- 0x12, 0x15, 0x18, 0x1B, 0x1E
-};
-
-const unsigned char acl_cutoff_33[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x06, 0x0A, 0x0F, 0x14, 0x19,
- 0x1D, 0x22, 0x27, 0x2B, 0x30
-};
-
-const unsigned char acl_cutoff_40[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x07, 0x0C, 0x12, 0x17, 0x1D,
- 0x23, 0x28, 0x2E, 0x33, 0x39
-};
-
-const unsigned char acl_cutoff_43[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x07, 0x0D, 0x14, 0x1A, 0x20,
- 0x26, 0x2C, 0x33, 0x39, 0x3F
-};
-
-const unsigned char acl_cutoff_45[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x07, 0x0E, 0x14, 0x1B, 0x21,
- 0x27, 0x2E, 0x34, 0x3B, 0x41
-};
-
-const unsigned char acl_cutoff_48[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x08, 0x0F, 0x17, 0x1E, 0x25,
- 0x2C, 0x33, 0x3B, 0x42, 0x49
-};
-
-const unsigned char acl_cutoff_50[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x09, 0x10, 0x18, 0x1F, 0x27,
- 0x2E, 0x36, 0x3D, 0x45, 0x4C
-};
-
-const unsigned char acl_cutoff_52[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x09, 0x11, 0x19, 0x21, 0x29,
- 0x31, 0x39, 0x41, 0x49, 0x51
-};
-
-const unsigned char acl_cutoff_53[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x09, 0x11, 0x1A, 0x22, 0x2A,
- 0x32, 0x3A, 0x43, 0x4B, 0x53
-};
-
-const unsigned char acl_cutoff_55[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x0A, 0x12, 0x1B, 0x23, 0x2C,
- 0x35, 0x3D, 0x46, 0x4E, 0x57
-};
-
-const unsigned char *ACL_CUTOFF_TABLE[ACL_STATUS_MAX] = {
- SEQ_ACL_OFF,
- acl_cutoff_20,
- acl_cutoff_33,
- acl_cutoff_40,
- acl_cutoff_43,
- acl_cutoff_45,
- acl_cutoff_48,
- acl_cutoff_50,
- acl_cutoff_52,
- acl_cutoff_53,
- acl_cutoff_55,
-};
-
-#endif /* __S6E8AA0_GAMMA_H__ */
diff --git a/drivers/video/samsung_duallcd/s6e8aa0_gamma_l.h b/drivers/video/samsung_duallcd/s6e8aa0_gamma_l.h
deleted file mode 100644
index d3fd2a8..0000000
--- a/drivers/video/samsung_duallcd/s6e8aa0_gamma_l.h
+++ /dev/null
@@ -1,311 +0,0 @@
-#ifndef __S6E8AA0_GAMMA_L_H__
-#define __S6E8AA0_GAMMA_L_H__
-
-#include "s6e8aa0_param.h"
-#ifdef CONFIG_AID_DIMMING
-#include "aid_s6e8aa0.h"
-#endif
-
-static const unsigned char gamma22_20[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xDF, 0x86, 0xF5,
- 0xD5, 0xC7, 0xCF, 0xDF, 0xE0, 0xE0,
- 0xC9, 0xC9, 0xCC, 0xD7, 0xD6, 0xD5,
- 0x00, 0x68, 0x00, 0x68, 0x00, 0x75,
-};
-
-static const unsigned char gamma22_30[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xDF, 0x86, 0xF5,
- 0xD5, 0xC7, 0xCF, 0xDF, 0xE0, 0xE0,
- 0xC9, 0xC9, 0xCC, 0xD7, 0xD6, 0xD5,
- 0x00, 0x68, 0x00, 0x68, 0x00, 0x75,
-};
-
-static const unsigned char gamma22_40[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xE5, 0xAA, 0xF2,
- 0xD6, 0xCC, 0xCF, 0xE0, 0xE2, 0xE2,
- 0xC8, 0xC9, 0xCA, 0xD2, 0xD2, 0xCF,
- 0x00, 0x71, 0x00, 0x70, 0x00, 0x80,
-};
-
-static const unsigned char gamma22_50[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xE7, 0xBB, 0xEE,
- 0xD6, 0xCE, 0xD0, 0xE0, 0xE3, 0xE4,
- 0xC5, 0xC4, 0xC5, 0xD2, 0xD2, 0xCF,
- 0x00, 0x78, 0x00, 0x78, 0x00, 0x88,
-};
-
-static const unsigned char gamma22_60[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xE9, 0xC4, 0xEB,
- 0xD6, 0xD0, 0xD1, 0xE0, 0xE3, 0xE4,
- 0xC3, 0xC2, 0xC2, 0xD2, 0xD1, 0xCF,
- 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x8F,
-};
-
-static const unsigned char gamma22_70[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEA, 0xC9, 0xEA,
- 0xD6, 0xD2, 0xD2, 0xDF, 0xE1, 0xE3,
- 0xC2, 0xC1, 0xC0, 0xD1, 0xD0, 0xCE,
- 0x00, 0x84, 0x00, 0x84, 0x00, 0x96,
-};
-
-static const unsigned char gamma22_80[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEB, 0xCC, 0xE9,
- 0xD5, 0xD4, 0xD3, 0xDE, 0xE1, 0xE2,
- 0xC2, 0xBF, 0xBF, 0xCF, 0xCF, 0xCC,
- 0x00, 0x89, 0x00, 0x89, 0x00, 0x9C,
-};
-
-static const unsigned char gamma22_90[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEB, 0xD0, 0xE9,
- 0xD4, 0xD5, 0xD4, 0xDF, 0xE0, 0xE1,
- 0xC1, 0xBE, 0xBD, 0xCD, 0xCD, 0xCA,
- 0x00, 0x8E, 0x00, 0x8F, 0x00, 0xA2,
-};
-
-static const unsigned char gamma22_100[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEA, 0xD2, 0xE7,
- 0xD7, 0xD6, 0xD6, 0xDF, 0xDF, 0xE2,
- 0xBF, 0xBD, 0xBC, 0xCD, 0xCD, 0xC9,
- 0x00, 0x92, 0x00, 0x93, 0x00, 0xA7,
-};
-
-static const unsigned char gamma22_110[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEB, 0xD4, 0xE5,
- 0xD6, 0xD6, 0xD7, 0xDE, 0xDF, 0xE0,
- 0xBE, 0xBC, 0xBB, 0xCE, 0xCC, 0xC9,
- 0x00, 0x96, 0x00, 0x97, 0x00, 0xAC,
-};
-
-static const unsigned char gamma22_120[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xD6, 0xE6,
- 0xD6, 0xD7, 0xD8, 0xDE, 0xDE, 0xE0,
- 0xBC, 0xBC, 0xB9, 0xCD, 0xCA, 0xC8,
- 0x00, 0x9A, 0x00, 0x9C, 0x00, 0xB1,
-};
-
-static const unsigned char gamma22_130[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEC, 0xD7, 0xE6,
- 0xD3, 0xD8, 0xD7, 0xDE, 0xDD, 0xDF,
- 0xBD, 0xBB, 0xB8, 0xCA, 0xC9, 0xC6,
- 0x00, 0x9F, 0x00, 0xA0, 0x00, 0xB7,
-};
-
-static const unsigned char gamma22_140[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEC, 0xD9, 0xE5,
- 0xD4, 0xD8, 0xD9, 0xDE, 0xDD, 0xDF,
- 0xBB, 0xB9, 0xB7, 0xCA, 0xC9, 0xC5,
- 0x00, 0xA3, 0x00, 0xA4, 0x00, 0xBB,
-};
-
-static const unsigned char gamma22_150[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEC, 0xDA, 0xE5,
- 0xD4, 0xD8, 0xD9, 0xDD, 0xDD, 0xDD,
- 0xBB, 0xB9, 0xB6, 0xC9, 0xC7, 0xC5,
- 0x00, 0xA6, 0x00, 0xA8, 0x00, 0xBF,
-};
-
-static const unsigned char gamma22_160[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xDB, 0xE6,
- 0xD4, 0xD7, 0xD9, 0xDC, 0xDD, 0xDD,
- 0xB9, 0xB8, 0xB4, 0xC9, 0xC6, 0xC4,
- 0x00, 0xAA, 0x00, 0xAC, 0x00, 0xC4,
-};
-
-static const unsigned char gamma22_170[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEC, 0xDC, 0xE5,
- 0xD5, 0xD8, 0xD9, 0xDD, 0xDC, 0xDD,
- 0xBA, 0xB7, 0xB5, 0xC7, 0xC6, 0xC3,
- 0x00, 0xAD, 0x00, 0xAF, 0x00, 0xC7,
-};
-
-static const unsigned char gamma22_180[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEE, 0xDD, 0xE6,
- 0xD4, 0xD7, 0xD9, 0xDB, 0xDC, 0xDB,
- 0xB9, 0xB7, 0xB4, 0xC6, 0xC4, 0xC2,
- 0x00, 0xB1, 0x00, 0xB3, 0x00, 0xCC,
-};
-
-#ifdef CONFIG_AID_DIMMING
-static const unsigned char gamma22_182[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEE, 0xDD, 0xE6,
- 0xD4, 0xD7, 0xD9, 0xDB, 0xDC, 0xDB,
- 0xB9, 0xB7, 0xB4, 0xC6, 0xC4, 0xC2,
- 0x00, 0xB1, 0x00, 0xB3, 0x00, 0xCC,
-};
-
-static const unsigned char gamma22_184[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEE, 0xDD, 0xE6,
- 0xD4, 0xD7, 0xD9, 0xDB, 0xDC, 0xDB,
- 0xB9, 0xB7, 0xB4, 0xC6, 0xC4, 0xC2,
- 0x00, 0xB1, 0x00, 0xB3, 0x00, 0xCC,
-};
-
-static const unsigned char gamma22_186[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEE, 0xDD, 0xE6,
- 0xD4, 0xD7, 0xD9, 0xDB, 0xDC, 0xDB,
- 0xB9, 0xB7, 0xB4, 0xC6, 0xC4, 0xC2,
- 0x00, 0xB1, 0x00, 0xB3, 0x00, 0xCC,
-};
-
-static const unsigned char gamma22_188[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEE, 0xDD, 0xE6,
- 0xD4, 0xD7, 0xD9, 0xDB, 0xDC, 0xDB,
- 0xB9, 0xB7, 0xB4, 0xC6, 0xC4, 0xC2,
- 0x00, 0xB1, 0x00, 0xB3, 0x00, 0xCC,
-};
-#endif
-
-static const unsigned char gamma22_190[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xDE, 0xE6,
- 0xD3, 0xD8, 0xD8, 0xDD, 0xDB, 0xDC,
- 0xB9, 0xB6, 0xB4, 0xC5, 0xC4, 0xC0,
- 0x00, 0xB4, 0x00, 0xB6, 0x00, 0xD0,
-};
-
-static const unsigned char gamma22_200[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xDF, 0xE6,
- 0xD3, 0xD7, 0xD8, 0xDB, 0xDB, 0xDA,
- 0xB8, 0xB6, 0xB3, 0xC4, 0xC3, 0xC0,
- 0x00, 0xB8, 0x00, 0xB9, 0x00, 0xD4,
-};
-
-static const unsigned char gamma22_210[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEC, 0xE0, 0xE5,
- 0xD5, 0xD7, 0xD9, 0xDB, 0xDA, 0xDA,
- 0xB7, 0xB5, 0xB1, 0xC4, 0xC2, 0xC0,
- 0x00, 0xBA, 0x00, 0xBD, 0x00, 0xD7,
-};
-
-static const unsigned char gamma22_220[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xE0, 0xE6,
- 0xD4, 0xD7, 0xD9, 0xDA, 0xDA, 0xD9,
- 0xB7, 0xB4, 0xB1, 0xC2, 0xC2, 0xBE,
- 0x00, 0xBE, 0x00, 0xC0, 0x00, 0xDC,
-};
-
-static const unsigned char gamma22_230[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEC, 0xE2, 0xE6,
- 0xD3, 0xD6, 0xD8, 0xDC, 0xD9, 0xD9,
- 0xB6, 0xB4, 0xB1, 0xC1, 0xC1, 0xBD,
- 0x00, 0xC1, 0x00, 0xC3, 0x00, 0xDF,
-};
-
-static const unsigned char gamma22_240[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xE2, 0xE6,
- 0xD4, 0xD6, 0xD8, 0xDA, 0xDA, 0xDA,
- 0xB6, 0xB3, 0xB0, 0xC1, 0xBF, 0xBC,
- 0x00, 0xC4, 0x00, 0xC7, 0x00, 0xE3,
-};
-
-static const unsigned char gamma22_250[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xE3, 0xE7,
- 0xD4, 0xD6, 0xD8, 0xDB, 0xD9, 0xD9,
- 0xB3, 0xB2, 0xAE, 0xC1, 0xC0, 0xBC,
- 0x00, 0xC7, 0x00, 0xC9, 0x00, 0xE7,
-};
-
-static const unsigned char gamma22_260[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xE4, 0xE7,
- 0xD4, 0xD5, 0xD7, 0xDA, 0xD9, 0xD9,
- 0xB3, 0xB2, 0xAD, 0xC1, 0xBE, 0xBC,
- 0x00, 0xC9, 0x00, 0xCD, 0x00, 0xEA,
-};
-
-static const unsigned char gamma22_270[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xE5, 0xE8,
- 0xD3, 0xD5, 0xD5, 0xDB, 0xD9, 0xD9,
- 0xB3, 0xB1, 0xAE, 0xBF, 0xBE, 0xBA,
- 0x00, 0xCC, 0x00, 0xD0, 0x00, 0xEE,
-};
-
-static const unsigned char gamma22_280[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEC, 0xE5, 0xE6,
- 0xD2, 0xD4, 0xD6, 0xDA, 0xD9, 0xD8,
- 0xB3, 0xB1, 0xAD, 0xBF, 0xBD, 0xBA,
- 0x00, 0xCF, 0x00, 0xD3, 0x00, 0xF1,
-};
-
-static const unsigned char gamma22_290[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEC, 0xE6, 0xE7,
- 0xD2, 0xD4, 0xD5, 0xDB, 0xD8, 0xD8,
- 0xB1, 0xB0, 0xAC, 0xBE, 0xBD, 0xB9,
- 0x00, 0xD3, 0x00, 0xD6, 0x00, 0xF5,
-};
-
-static const unsigned char gamma22_300[] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xE6, 0xE7,
- 0xD1, 0xD3, 0xD4, 0xDA, 0xD8, 0xD7,
- 0xB1, 0xAF, 0xAB, 0xBD, 0xBB, 0xB8,
- 0x00, 0xD6, 0x00, 0xDA, 0x00, 0xFA,
-};
-
-static const unsigned char *gamma22_table[GAMMA_MAX] = {
-#ifdef CONFIG_AID_DIMMING
- gamma22_20,
-#endif
- gamma22_30,
- gamma22_40,
- gamma22_50,
- gamma22_60,
- gamma22_70,
- gamma22_80,
- gamma22_90,
- gamma22_100,
- gamma22_110,
- gamma22_120,
- gamma22_130,
- gamma22_140,
- gamma22_150,
- gamma22_160,
- gamma22_170,
- gamma22_180,
-#ifdef CONFIG_AID_DIMMING
- gamma22_182,
- gamma22_184,
- gamma22_186,
- gamma22_188,
-#endif
- gamma22_190,
- gamma22_200,
- gamma22_210,
- gamma22_220,
- gamma22_230,
- gamma22_240,
- gamma22_250,
- gamma22_300,
-};
-
-#endif /* __S6E8AA0_GAMMA_L_H__ */
diff --git a/drivers/video/samsung_duallcd/s6e8aa0_gamma_midas.h b/drivers/video/samsung_duallcd/s6e8aa0_gamma_midas.h
deleted file mode 100644
index b382866..0000000
--- a/drivers/video/samsung_duallcd/s6e8aa0_gamma_midas.h
+++ /dev/null
@@ -1,782 +0,0 @@
-#ifndef __S6E8AA0_GAMMA_H__
-#define __S6E8AA0_GAMMA_H__
-
-#include "s6e8aa0_param.h"
-
-static const unsigned char SEQ_APPLY_LEVEL_2_KEY[] = {
- 0xFC,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET_UVS[] = {
- 0xF8,
- 0x19, 0x35, 0x00, 0x00, 0x00, 0x93, 0x00, 0x3C, 0x7D, 0x08,
- 0x27, 0x7D, 0x3F, 0x00, 0x00, 0x00, 0x20, 0x04, 0x08, 0x6E,
- 0x00, 0x00, 0x00, 0x02, 0x08, 0x08, 0x23, 0x23, 0xC0, 0xC1,
- 0x01, 0x41, 0xC1, 0x00, 0xC1, 0xF6, 0xF6, 0xC1
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET_500MBPS[] = {
- 0xF8,
- 0x3D, 0x35, 0x00, 0x00, 0x00, 0x93, 0x00, 0x3C, 0x7D, 0x08,
- 0x27, 0x7D, 0x3F, 0x00, 0x00, 0x00, 0x20, 0x04, 0x08, 0x6E,
- 0x00, 0x00, 0x00, 0x02, 0x08, 0x08, 0x23, 0x23, 0xC0, 0xC8,
- 0x08, 0x48, 0xC1, 0x00, 0xC1, 0xFF, 0xFF, 0xC8
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET_480MBPS[] = {
- 0xF8,
- 0x3D, 0x32, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x39, 0x78, 0x08,
- 0x26, 0x78, 0x3C, 0x00, 0x00, 0x00, 0x20, 0x04, 0x08, 0x69,
- 0x00, 0x00, 0x00, 0x02, 0x07, 0x07, 0x21, 0x21, 0xC0, 0xC8,
- 0x08, 0x48, 0xC1, 0x00, 0xC1, 0xFF, 0xFF, 0xC8
-};
-
-static const unsigned char SEQ_GAMMA_CONDITION_SET[] = {
- 0xFA,
- 0x01, 0x58, 0x1F, 0x63, 0xAC, 0xB4, 0x99, 0xAD, 0xBA, 0xA3,
- 0xC0, 0xCB, 0xBB, 0x93, 0x9F, 0x8B, 0xAD, 0xB4, 0xA7, 0x00,
- 0xBE, 0x00, 0xAB, 0x00, 0xE7
-};
-
-static const unsigned char SEQ_ETC_SOURCE_CONTROL[] = {
- 0xF6,
- 0x00, 0x02, 0x00
-};
-
-static const unsigned char SEQ_ETC_PENTILE_CONTROL[] = {
- 0xB6,
- 0x0C, 0x02, 0x03, 0x32, 0xFF,
- 0x44, 0x44, 0xC0, 0x00
-};
-
-static const unsigned char SEQ_ETC_MIPI_CONTROL1[] = {
- 0xE1,
- 0x10, 0x1C, 0x17, 0x08, 0x1D
-};
-
-static const unsigned char SEQ_ETC_MIPI_CONTROL2[] = {
- 0xE2,
- 0xED, 0x07, 0xC3, 0x13, 0x0D, 0x03
-};
-
-static const unsigned char SEQ_ETC_POWER_CONTROL[] = {
- 0xF4,
- 0xCF, 0x0A, 0x12, 0x10, 0x19, 0x33, 0x02
-};
-
-static const unsigned char SEQ_ETC_MIPI_CONTROL3[] = {
- 0xE3, 0x40
-};
-
-static const unsigned char SEQ_ETC_MIPI_CONTROL4[] = {
- 0xE4,
- 0x00, 0x00, 0x14, 0x80, 0x00, 0x00, 0x00
-};
-
-
-enum {
- ACL_STATUS_0P = 0,
- ACL_STATUS_40P,
- ACL_STATUS_43P,
- ACL_STATUS_45P,
- ACL_STATUS_47P,
- ACL_STATUS_48P,
- ACL_STATUS_50P,
- ACL_STATUS_52P,
- ACL_STATUS_53P,
- ACL_STATUS_55P,
- ACL_STATUS_MAX
-} ACL_STATUS;
-
-const unsigned char acl_cutoff_40[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x08, 0x0F, 0x15, 0x1C, 0x23,
- 0x2A, 0x31, 0x37, 0x3E, 0x45
-};
-
-const unsigned char acl_cutoff_43[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x07, 0x0D, 0x14, 0x1A, 0x20,
- 0x26, 0x2C, 0x33, 0x39, 0x3F
-};
-
-const unsigned char acl_cutoff_45[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x07, 0x0E, 0x14, 0x1B, 0x21,
- 0x27, 0x2E, 0x34, 0x3B, 0x41
-};
-
-const unsigned char acl_cutoff_47[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x07, 0x0D, 0x12, 0x18, 0x1E,
- 0x24, 0x2A, 0x2F, 0x35, 0x3B
-};
-
-const unsigned char acl_cutoff_48[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x08, 0x0F, 0x17, 0x1E, 0x25,
- 0x2C, 0x33, 0x3B, 0x42, 0x49
-};
-
-const unsigned char acl_cutoff_50[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x09, 0x10, 0x18, 0x1F, 0x27,
- 0x2E, 0x36, 0x3D, 0x45, 0x4C
-};
-
-const unsigned char acl_cutoff_52[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x09, 0x11, 0x19, 0x21, 0x29,
- 0x31, 0x39, 0x41, 0x49, 0x51
-};
-
-const unsigned char acl_cutoff_53[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x09, 0x11, 0x1A, 0x22, 0x2A,
- 0x32, 0x3A, 0x43, 0x4B, 0x53
-};
-
-const unsigned char acl_cutoff_55[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00, 0x00,
- 0x02, 0xCF, 0x00, 0x00, 0x04, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00,
-
- 0x01, 0x0A, 0x12, 0x1B, 0x23, 0x2C,
- 0x35, 0x3D, 0x46, 0x4E, 0x57
-};
-
-const unsigned char *ACL_CUTOFF_TABLE[ACL_STATUS_MAX] = {
- SEQ_ACL_OFF,
- acl_cutoff_40,
- acl_cutoff_43,
- acl_cutoff_45,
- acl_cutoff_47,
- acl_cutoff_48,
- acl_cutoff_50,
- acl_cutoff_52,
- acl_cutoff_53,
- acl_cutoff_55,
-};
-
-#define ACL_PARAM_SIZE ARRAY_SIZE(acl_cutoff_50)
-
-enum {
- ELVSS_28 = 0,
- ELVSS_34,
- ELVSS_40,
- ELVSS_44,
- ELVSS_STATUS_MAX,
-} ELVSS_STATUS;
-
-const unsigned char elvss_32[] = {
- 0xD9,
- 0x14, 0x40, 0x0C, 0xCB, 0xCE,
- 0x6E, 0xC4, 0x0F, 0x40, 0x40,
- 0xDF, 0x00, 0x60, 0x19
-};
-
-const unsigned char elvss_34[] = {
- 0xD9,
- 0x14, 0x40, 0x0C, 0xCB, 0xCE,
- 0x6E, 0xC4, 0x0F, 0x40, 0x40,
- 0xDD, 0x00, 0x60, 0x19
-};
-
-const unsigned char elvss_38[] = {
- 0xD9,
- 0x14, 0x40, 0x0C, 0xCB, 0xCE,
- 0x6E, 0xC4, 0x0F, 0x40, 0x40,
- 0xD9, 0x00, 0x60, 0x19
-};
-
-const unsigned char elvss_47[] = {
- 0xD9,
- 0x14, 0x40, 0x0C, 0xCB, 0xCE,
- 0x6E, 0xC4, 0x0F, 0x40, 0x40,
- 0xD0, 0x00, 0x60, 0x19
-};
-
-
-const unsigned char *elvss_table[ELVSS_STATUS_MAX] = {
- elvss_32,
- elvss_34,
- elvss_38,
- elvss_47,
-};
-
-#define ELVSS_PARAM_SIZE ARRAY_SIZE(elvss_47)
-
-enum {
- GAMMA_2_2_30CD = 0,
- GAMMA_2_2_40CD,
- GAMMA_2_2_70CD,
- GAMMA_2_2_90CD,
- GAMMA_2_2_100CD,
- GAMMA_2_2_110CD,
- GAMMA_2_2_120CD,
- GAMMA_2_2_130CD,
- GAMMA_2_2_140CD,
- GAMMA_2_2_150CD,
- GAMMA_2_2_160CD,
- GAMMA_2_2_170CD,
- GAMMA_2_2_180CD,
- GAMMA_2_2_190CD,
- GAMMA_2_2_200CD,
- GAMMA_2_2_210CD,
- GAMMA_2_2_220CD,
- GAMMA_2_2_230CD,
- GAMMA_2_2_240CD,
- GAMMA_2_2_250CD,
- GAMMA_2_2_260CD,
- GAMMA_2_2_270CD,
- GAMMA_2_2_280CD,
- GAMMA_2_2_290CD,
- GAMMA_2_2_300CD = 24,
- GAMMA_2_2_MAX
-};
-
-#define GAMMA_PARAM_SIZE 26
-
-
-const unsigned char gamma22_30[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFF,
- 0xDF, 0x1F, 0xD7, 0xDC, 0xB7, 0xE1,
- 0xC0, 0xAF, 0xC4, 0xD2, 0xD0, 0xCF,
- 0x00, 0x4D, 0x00, 0x40, 0x00, 0x5F,
-};
-
-const unsigned char gamma22_40[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFF,
- 0xD5, 0x35, 0xCF, 0xDC, 0xC1, 0xE1,
- 0xBF, 0xB3, 0xC1, 0xD2, 0xD1, 0xCE,
- 0x00, 0x53, 0x00, 0x46, 0x00, 0x67,
-};
-
-const unsigned char gamma22_50[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFF,
- 0xD2, 0x64, 0xCF, 0xDB, 0xC6, 0xE1,
- 0xBD, 0xB3, 0xBD, 0xD2, 0xD2, 0xCE,
- 0x00, 0x59, 0x00, 0x4B, 0x00, 0x6E,
-};
-
-const unsigned char gamma22_60[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFF,
- 0xD0, 0x7C, 0xCF, 0xDB, 0xC9, 0xE0,
- 0xBC, 0xB4, 0xBB, 0xCF, 0xD1, 0xCC,
- 0x00, 0x5F, 0x00, 0x50, 0x00, 0x75,
-};
-
-const unsigned char gamma22_70[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFF,
- 0xD0, 0x8E, 0xD1, 0xDB, 0xCC, 0xDF,
- 0xBB, 0xB6, 0xB9, 0xD0, 0xD1, 0xCD,
- 0x00, 0x63, 0x00, 0x54, 0x00, 0x7A,
-};
-
-const unsigned char gamma22_80[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFF,
- 0xD1, 0x9E, 0xD5, 0xDA, 0xCD, 0xDD,
- 0xBB, 0xB7, 0xB9, 0xCE, 0xCE, 0xC9,
- 0x00, 0x68, 0x00, 0x59, 0x00, 0x81,
-};
-
-const unsigned char gamma22_90[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFF,
- 0xD0, 0xA5, 0xD6, 0xDA, 0xCF, 0xDD,
- 0xBB, 0xB7, 0xB8, 0xCC, 0xCD, 0xC7,
- 0x00, 0x6C, 0x00, 0x5C, 0x00, 0x86,
-};
-
-const unsigned char gamma22_100[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFF,
- 0xCF, 0xA7, 0xD6, 0xDA, 0xD0, 0xDC,
- 0xB8, 0xB6, 0xB5, 0xCB, 0xCC, 0xC6,
- 0x00, 0x71, 0x00, 0x60, 0x00, 0x8C,
-};
-
-const unsigned char gamma22_110[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x1F, 0xFE,
- 0xD0, 0xAE, 0xD7, 0xD9, 0xD0, 0xDB,
- 0xB9, 0xB6, 0xB5, 0xCA, 0xCC, 0xC5,
- 0x00, 0x74, 0x00, 0x63, 0x00, 0x90,
-};
-
-const unsigned char gamma22_120[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x1F, 0xF9,
- 0xCF, 0xB0, 0xD6, 0xD9, 0xD1, 0xDB,
- 0xB9, 0xB6, 0xB4, 0xCA, 0xCB, 0xC5,
- 0x00, 0x77, 0x00, 0x66, 0x00, 0x94,
-};
-
-const unsigned char gamma22_130[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x1F, 0xF7,
- 0xCF, 0xB3, 0xD7, 0xD8, 0xD1, 0xD9,
- 0xB7, 0xB6, 0xB3, 0xC9, 0xCA, 0xC3,
- 0x00, 0x7B, 0x00, 0x69, 0x00, 0x99,
-};
-
-const unsigned char gamma22_140[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFD, 0x2F, 0xF7,
- 0xDF, 0xB5, 0xD6, 0xD8, 0xD1, 0xD8,
- 0xB6, 0xB5, 0xB2, 0xCA, 0xCB, 0xC4,
- 0x00, 0x7E, 0x00, 0x6C, 0x00, 0x9D,
-
-};
-
-const unsigned char gamma22_150[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFB, 0x2F, 0xF5,
- 0xD0, 0xB7, 0xD7, 0xD7, 0xD1, 0xD8,
- 0xB6, 0xB5, 0xB1, 0xC8, 0xCA, 0xC3,
- 0x00, 0x81, 0x00, 0x6E, 0x00, 0xA0,
-};
-
-const unsigned char gamma22_160[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFA, 0x2F, 0xF5,
- 0xCE, 0xB6, 0xD5, 0xD7, 0xD2, 0xD8,
- 0xB6, 0xB4, 0xB0, 0xC7, 0xC9, 0xC1,
- 0x00, 0x84, 0x00, 0x71, 0x00, 0xA5,
-};
-
-const unsigned char gamma22_170[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF7, 0x2F, 0xF2,
- 0xCE, 0xB9, 0xD5, 0xD8, 0xD2, 0xD8,
- 0xB4, 0xB4, 0xAF, 0xC7, 0xC9, 0xC1,
- 0x00, 0x87, 0x00, 0x73, 0x00, 0xA8,
-};
-
-const unsigned char gamma22_180[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF5, 0x2F, 0xF0,
- 0xDF, 0xBA, 0xD5, 0xD7, 0xD2, 0xD7,
- 0xB4, 0xB4, 0xAF, 0xC5, 0xC7, 0xBF,
- 0x00, 0x8A, 0x00, 0x76, 0x00, 0xAC,
-};
-
-const unsigned char gamma22_190[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF2, 0x2F, 0xED,
- 0xCE, 0xBB, 0xD4, 0xD6, 0xD2, 0xD6,
- 0xB5, 0xB4, 0xAF, 0xC5, 0xC7, 0xBF,
- 0x00, 0x8c, 0x00, 0x78, 0x00, 0xAF,
-};
-
-const unsigned char gamma22_200[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF2, 0x2F, 0xED,
- 0xCE, 0xBB, 0xD4, 0xD7, 0xD3, 0xD6,
- 0xB3, 0xB3, 0xAE, 0xC6, 0xC7, 0xBF,
- 0x00, 0x8E, 0x00, 0x7A, 0x00, 0xB2,
-};
-
-const unsigned char gamma22_210[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEF, 0x2F, 0xEB,
- 0xCD, 0xBB, 0xD2, 0xD7, 0xD3, 0xD6,
- 0xB3, 0xB4, 0xAE, 0xC5, 0xC6, 0xBE,
- 0x00, 0x91, 0x00, 0x7D, 0x00, 0xB6,
-};
-
-const unsigned char gamma22_220[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEE, 0x2F, 0xEA,
- 0xCE, 0xBD, 0xD4, 0xD6, 0xD2, 0xD5,
- 0xB2, 0xB3, 0xAD, 0xC3, 0xC4, 0xBB,
- 0x00, 0x94, 0x00, 0x7F, 0x00, 0xBA,
-};
-
-const unsigned char gamma22_230[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEC, 0x2F, 0xE8,
- 0xCE, 0xBE, 0xD3, 0xD6, 0xD3, 0xD5,
- 0xB2, 0xB2, 0xAC, 0xC3, 0xC5, 0xBC,
- 0x00, 0x96, 0x00, 0x81, 0x00, 0xBD,
-};
-
-const unsigned char gamma22_240[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEB, 0x2F, 0xE7,
- 0xCE, 0xBF, 0xD3, 0xD6, 0xD2, 0xD5,
- 0xB1, 0xB2, 0xAB, 0xC2, 0xC4, 0xBB,
- 0x00, 0x99, 0x00, 0x83, 0x00, 0xC0,
-};
-
-const unsigned char gamma22_250[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEF, 0x5F, 0xE9,
- 0xCA, 0xBF, 0xD3, 0xD5, 0xD2, 0xD4,
- 0xB2, 0xB2, 0xAB, 0xC1, 0xC4, 0xBA,
- 0x00, 0x9B, 0x00, 0x85, 0x00, 0xC3,
-};
-
-const unsigned char gamma22_260[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEA, 0x5F, 0xE8,
- 0xCE, 0xBF, 0xD2, 0xD5, 0xD2, 0xD4,
- 0xB1, 0xB2, 0xAB, 0xC1, 0xC2, 0xB9,
- 0x00, 0x9D, 0x00, 0x87, 0x00, 0xC6,
-};
-
-const unsigned char gamma22_270[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xE9, 0x5F, 0xE7,
- 0xCD, 0xBF, 0xD2, 0xD6, 0xD2, 0xD4,
- 0xB1, 0xB2, 0xAB, 0xBE, 0xC0, 0xB7,
- 0x00, 0xA1, 0x00, 0x8A, 0x00, 0xCA,
-};
-
-const unsigned char gamma22_280[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xE8, 0x61, 0xE6,
- 0xCD, 0xBF, 0xD1, 0xD6, 0xD3, 0xD4,
- 0xAF, 0xB0, 0xA9, 0xBE, 0xC1, 0xB7,
- 0x00, 0xA3, 0x00, 0x8B, 0x00, 0xCE,
-};
-
-const unsigned char gamma22_290[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xE8, 0x62, 0xE5,
- 0xCC, 0xC0, 0xD0, 0xD6, 0xD2, 0xD4,
- 0xAF, 0xB1, 0xA9, 0xBD, 0xC0, 0xB6,
- 0x00, 0xA5, 0x00, 0x8D, 0x00, 0xD0,
-};
-
-const unsigned char gamma22_300[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xE7, 0x7F, 0xE3,
- 0xCC, 0xC1, 0xD0, 0xD5, 0xD3, 0xD3,
- 0xAE, 0xAF, 0xA8, 0xBE, 0xC0, 0xB7,
- 0x00, 0xA8, 0x00, 0x90, 0x00, 0xD3,
-};
-
-
-const unsigned char gamma19_30[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFF,
- 0xD7, 0x6F, 0xD5, 0xDF, 0xC8, 0xE4,
- 0xC7, 0xBA, 0xC8, 0xD7, 0xD6, 0xD5,
- 0x00, 0x4D, 0x00, 0x40, 0x00, 0x5F,
-};
-
-const unsigned char gamma19_40[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFF,
- 0xD6, 0xA1, 0xD7, 0xDE, 0xCF, 0xE3,
- 0xC5, 0xBE, 0xC6, 0xD6, 0xD7, 0xD4,
- 0x00, 0x53, 0x00, 0x46, 0x00, 0x67,
-};
-
-const unsigned char gamma19_50[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFF,
- 0xD6, 0xAA, 0xD8, 0xE0, 0xD5, 0xE4,
- 0xC4, 0xBD, 0xC2, 0xD7, 0xD7, 0xD4,
- 0x00, 0x59, 0x00, 0x4B, 0x00, 0x6E,
-};
-
-const unsigned char gamma19_60[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFF,
- 0xD5, 0xB0, 0xDB, 0xDF, 0xD4, 0xE1,
- 0xC3, 0xBE, 0xC1, 0xD5, 0xD6, 0xD2,
- 0x00, 0x5F, 0x00, 0x50, 0x00, 0x75,
-};
-
-const unsigned char gamma19_70[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFF, 0x00, 0xFC,
- 0xD6, 0xB7, 0xDC, 0xDF, 0xD6, 0xE1,
- 0xC2, 0xBF, 0xC0, 0xD5, 0xD5, 0xD1,
- 0x00, 0x63, 0x00, 0x54, 0x00, 0x7A,
-};
-
-const unsigned char gamma19_80[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFA, 0x1F, 0xF5,
- 0xD6, 0xBD, 0xDC, 0xDD, 0xD6, 0xDF,
- 0xC3, 0xC0, 0xC0, 0xD3, 0xD2, 0xCE,
- 0x00, 0x68, 0x00, 0x59, 0x00, 0x81,
-};
-
-const unsigned char gamma19_90[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xFA, 0x1F, 0xF5,
- 0xD6, 0xC0, 0xDC, 0xDD, 0xD6, 0xDE,
- 0xC1, 0xBE, 0xBD, 0xD2, 0xD4, 0xCE,
- 0x00, 0x6C, 0x00, 0x5C, 0x00, 0x86,
-};
-
-const unsigned char gamma19_100[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF6, 0x1F, 0xF2,
- 0xD4, 0xC0, 0xDA, 0xDE, 0xD8, 0xDE,
- 0xC0, 0xBE, 0xBC, 0xD0, 0xD2, 0xCC,
- 0x00, 0x71, 0x00, 0x60, 0x00, 0x8C,
-};
-
-const unsigned char gamma19_110[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF5, 0x44, 0xF1,
- 0xD3, 0xC1, 0xD9, 0xDC, 0xD6, 0xDC,
- 0xC0, 0xBF, 0xBC, 0xD1, 0xD2, 0xCC,
- 0x00, 0x74, 0x00, 0x63, 0x00, 0x90,
-};
-
-const unsigned char gamma19_120[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF1, 0x6D, 0xF1,
- 0xD4, 0xC4, 0xD9, 0xDE, 0xD8, 0xDD,
- 0xBE, 0xBE, 0xBA, 0xD1, 0xD1, 0xCC,
- 0x00, 0x77, 0x00, 0x66, 0x00, 0x94,
-};
-
-const unsigned char gamma19_130[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF1, 0x6D, 0xF1,
- 0xD4, 0xCE, 0xD8, 0xDC, 0xD8, 0xDC,
- 0xBD, 0xBD, 0xB9, 0xCF, 0xD0, 0xC9,
- 0x00, 0x7B, 0x00, 0x69, 0x00, 0x99,
-};
-
-const unsigned char gamma19_140[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF1, 0x86, 0xF1,
- 0xD3, 0xC5, 0xD7, 0xDD, 0xD9, 0xDC,
- 0xBC, 0xBC, 0xB8, 0xD0, 0xD1, 0xCA,
- 0x00, 0x7E, 0x00, 0x6C, 0x00, 0x9D,
-};
-
-const unsigned char gamma19_150[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF2, 0xBC, 0xF1,
- 0xD2, 0xC6, 0xD7, 0xDB, 0xD8, 0xDB,
- 0xBC, 0xBC, 0xB7, 0xCE, 0xCF, 0xC9,
- 0x00, 0x81, 0x00, 0x6E, 0x00, 0xA0,
-};
-
-const unsigned char gamma19_160[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEF, 0x97, 0xF1,
- 0xD4, 0xC8, 0xD7, 0xDB, 0xD8, 0xDA,
- 0xBC, 0xBC, 0xB7, 0xCD, 0xCF, 0xC7,
- 0x00, 0x84, 0x00, 0x71, 0x00, 0xA5,
-};
-
-const unsigned char gamma19_170[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF0, 0xA2, 0xF3,
- 0xD4, 0xC8, 0xD6, 0xDB, 0xD9, 0xDA,
- 0xBB, 0xBC, 0xB6, 0xCD, 0xCF, 0xC8,
- 0x00, 0x87, 0x00, 0x73, 0x00, 0xA8,
-};
-
-const unsigned char gamma19_180[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF0, 0xA9, 0xF4,
- 0xD2, 0xC7, 0xD4, 0xDB, 0xD9, 0xDA,
- 0xBB, 0xBC, 0xB6, 0xCD, 0xCE, 0xC7,
- 0x00, 0x8A, 0x00, 0x76, 0x00, 0xAC,
-};
-
-const unsigned char gamma19_190[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF0, 0xB1, 0xF5,
- 0xD3, 0xC8, 0xD4, 0xDA, 0xD8, 0xD9,
- 0xBC, 0xBB, 0xB6, 0xCB, 0xCE, 0xC6,
- 0x00, 0x8c, 0x00, 0x78, 0x00, 0xAF,
-};
-
-const unsigned char gamma19_200[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF0, 0xB1, 0xF5,
- 0xD3, 0xC8, 0xD4, 0xDA, 0xD8, 0xD8,
- 0xBA, 0xBB, 0xB5, 0xCB, 0xCC, 0xC5,
- 0x00, 0x8F, 0x00, 0x7B, 0x00, 0xB3,
-};
-
-const unsigned char gamma19_210[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEF, 0xB3, 0xF4,
- 0xD3, 0xC9, 0xD4, 0xDA, 0xD9, 0xD9,
- 0xBA, 0xBA, 0xB4, 0xCA, 0xCC, 0xC4,
- 0x00, 0x91, 0x00, 0x7D, 0x00, 0xB6,
-};
-
-const unsigned char gamma19_220[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEF, 0xB9, 0xF5,
- 0xD5, 0xCC, 0xD6, 0xD9, 0xD7, 0xD7,
- 0xBA, 0xBA, 0xB4, 0xC8, 0xCB, 0xC2,
- 0x00, 0x94, 0x00, 0x7F, 0x00, 0xBA,
-};
-
-const unsigned char gamma19_230[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEE, 0xB9, 0xF5,
- 0xD1, 0xCA, 0xD2, 0xDB, 0xD9, 0xD9,
- 0xB9, 0xBA, 0xB3, 0xC9, 0xCB, 0xC3,
- 0x00, 0x96, 0x00, 0x81, 0x00, 0xBD,
-};
-
-const unsigned char gamma19_240[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xF0, 0xBD, 0xF7,
- 0xD1, 0xCB, 0xD3, 0xD9, 0xD5, 0xD6,
- 0xB9, 0xBA, 0xB3, 0xC8, 0xCB, 0xC2,
- 0x00, 0x99, 0x00, 0x83, 0x00, 0xC0,
-};
-
-const unsigned char gamma19_250[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEE, 0xBD, 0xF5,
- 0xD0, 0xC8, 0xD1, 0xDA, 0xD8, 0xD7,
- 0xB9, 0xBA, 0xB3, 0xC7, 0xC9, 0xC1,
- 0x00, 0x9C, 0x00, 0x86, 0x00, 0xC4,
-};
-
-const unsigned char gamma19_260[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xBE, 0xF4,
- 0xD2, 0xCB, 0xD2, 0xDA, 0xD8, 0xD7,
- 0xB8, 0xBA, 0xB3, 0xC6, 0xC7, 0xBF,
- 0x00, 0x9E, 0x00, 0x88, 0x00, 0xC7,
-};
-
-const unsigned char gamma19_270[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xBE, 0xF4,
- 0xD2, 0xCC, 0xD3, 0xD9, 0xD6, 0xD6,
- 0xB8, 0xB9, 0xB2, 0xC5, 0xC8, 0xBF,
- 0x00, 0xA1, 0x00, 0x8A, 0x00, 0xCA,
-};
-
-const unsigned char gamma19_280[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xED, 0xC3, 0xF5,
- 0xD1, 0xCB, 0xD1, 0xDA, 0xD8, 0xD7,
- 0xB7, 0xB8, 0xB1, 0xC5, 0xC8, 0xBE,
- 0x00, 0xA3, 0x00, 0x8C, 0x00, 0xCE,
-};
-
-const unsigned char gamma19_290[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEE, 0xC4, 0xF6,
- 0xD1, 0xC9, 0xD0, 0xD9, 0xD8, 0xD7,
- 0xB6, 0xB8, 0xB0, 0xC5, 0xC6, 0xBE,
- 0x00, 0xA5, 0x00, 0x8E, 0x00, 0xD0,
-};
-
-const unsigned char gamma19_300[GAMMA_PARAM_SIZE] = {
- 0xFA, 0x01,
- 0x1F, 0x1F, 0x1F, 0xEC, 0xC4, 0xF5,
- 0xD1, 0xCB, 0xD1, 0xD8, 0xD7, 0xD6,
- 0xB6, 0xB7, 0xAF, 0xC5, 0xC7, 0xBE,
- 0x00, 0xA8, 0x00, 0x90, 0x00, 0xD3,
-};
-
-const unsigned char *gamma22_table[GAMMA_2_2_MAX] = {
- gamma22_30,
- gamma22_40,
- gamma22_70,
- gamma22_90,
- gamma22_100,
- gamma22_110,
- gamma22_120,
- gamma22_130,
- gamma22_140,
- gamma22_150,
- gamma22_160,
- gamma22_170,
- gamma22_180,
- gamma22_190,
- gamma22_200,
- gamma22_210,
- gamma22_220,
- gamma22_230,
- gamma22_240,
- gamma22_250,
- gamma22_260,
- gamma22_270,
- gamma22_280,
- gamma22_290,
- gamma22_300,
-};
-
-const unsigned char *gamma19_table[GAMMA_2_2_MAX] = {
- gamma19_30,
- gamma19_40,
- gamma19_70,
- gamma19_90,
- gamma19_100,
- gamma19_110,
- gamma19_120,
- gamma19_130,
- gamma19_140,
- gamma19_150,
- gamma19_160,
- gamma19_170,
- gamma19_180,
- gamma19_190,
- gamma19_200,
- gamma19_210,
- gamma19_220,
- gamma19_230,
- gamma19_240,
- gamma19_250,
- gamma19_260,
- gamma19_270,
- gamma19_280,
- gamma19_290,
- gamma19_300,
-};
-
-
-#endif /* __S6E8AA0_GAMMA_H__ */
diff --git a/drivers/video/samsung_duallcd/s6e8aa0_gamma_q1.h b/drivers/video/samsung_duallcd/s6e8aa0_gamma_q1.h
deleted file mode 100644
index b0b5f0d..0000000
--- a/drivers/video/samsung_duallcd/s6e8aa0_gamma_q1.h
+++ /dev/null
@@ -1,189 +0,0 @@
-#ifndef __S6E8AA0_GAMMA_H__
-#define __S6E8AA0_GAMMA_H__
-
-#include "s6e8aa0_param.h"
-
-#define ACL_PARAM_SIZE ARRAY_SIZE(SEQ_ACL_CUTOFF_50)
-
-enum {
- ACL_STATUS_0P = 0,
- ACL_STATUS_20P,
- ACL_STATUS_33P,
- ACL_STATUS_43P,
- ACL_STATUS_45P_80CD,
- ACL_STATUS_45P,
- ACL_STATUS_46P_160CD,
- ACL_STATUS_46P,
- ACL_STATUS_47P,
- ACL_STATUS_48P,
- ACL_STATUS_49P,
- ACL_STATUS_50P,
- ACL_STATUS_MAX,
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET[] = {
- 0xF8,
- 0x25, 0x34, 0x00, 0x00, 0x00, 0x95, 0x00, 0x3C, 0x7D, 0x08,
- 0x27, 0x00, 0x00, 0x10, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x08, 0x08, 0x23, 0x63, 0xC0, 0xC1,
- 0x01, 0x81, 0xC1, 0x00, 0xC8, 0xC1, 0xD3, 0x01
-};
-
-static const unsigned char SEQ_ETC_SOURCE_CONTROL[] = {
- 0xF6,
- 0x00, 0x02, 0x00
-};
-
-static const unsigned char SEQ_ETC_PENTILE_CONTROL[] = {
- 0xB6,
- 0x0C, 0x02, 0x03, 0x32, 0xC0,
- 0x44, 0x44, 0xC0, 0x00
-};
-
-static const unsigned char SEQ_ETC_POWER_CONTROL[] = {
- 0xF4,
- 0xCF, 0x0A, 0x12, 0x10, 0x19,
- 0x33, 0x03
-};
-
-static const unsigned char SEQ_ELVSS_NVM_SETTING[] = {
- 0xD9,
- 0x14, 0x40, 0x0C, 0xCB, 0xCE,
- 0x6E, 0xC4, 0x0F, 0x40, 0x41,
- 0xD9, 0x00, 0x00, 0x00
-};
-
-static const unsigned char SEQ_LTPS_DELAY[] = {
- 0xFE,
- 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x04, 0x0B, 0x53, 0x3C
-};
-
-static const unsigned char SEQ_ACL_CUTOFF_20[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00,
- 0x00, 0x03, 0x1F, 0x00, 0x00,
- 0x04, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x04, 0x06,
- 0x09, 0x0C, 0x0F, 0x11, 0x14,
- 0x17, 0x19, 0x1C
-};
-
-static const unsigned char SEQ_ACL_CUTOFF_33[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00,
- 0x00, 0x03, 0x1F, 0x00, 0x00,
- 0x04, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x05, 0x0A,
- 0x0E, 0x13, 0x17, 0x1B, 0x20,
- 0x24, 0x29, 0x2D
-};
-
-static const unsigned char SEQ_ACL_CUTOFF_43[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00,
- 0x00, 0x03, 0x1F, 0x00, 0x00,
- 0x04, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x07, 0x0D,
- 0x13, 0x19, 0x20, 0x26, 0x2C,
- 0x32, 0x38, 0x3E
-};
-
-static const unsigned char SEQ_ACL_CUTOFF_45_80CD[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00,
- 0x00, 0x03, 0x1F, 0x00, 0x00,
- 0x04, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x07, 0x0E,
- 0x14, 0x1B, 0x21, 0x27, 0x2E,
- 0x34, 0x3B, 0x41
-};
-
-static const unsigned char SEQ_ACL_CUTOFF_45[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00,
- 0x00, 0x03, 0x1F, 0x00, 0x00,
- 0x04, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x07, 0x0E,
- 0x14, 0x1A, 0x21, 0x27, 0x2D,
- 0x33, 0x3A, 0x40
-};
-
-static const unsigned char SEQ_ACL_CUTOFF_46_160CD[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00,
- 0x00, 0x03, 0x1F, 0x00, 0x00,
- 0x04, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x07, 0x0E,
- 0x14, 0x1A, 0x21, 0x27, 0x2D,
- 0x33, 0x3A, 0x41
-};
-
-static const unsigned char SEQ_ACL_CUTOFF_46[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00,
- 0x00, 0x03, 0x1F, 0x00, 0x00,
- 0x04, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x07, 0x0E,
- 0x14, 0x1B, 0x21, 0x27, 0x2E,
- 0x34, 0x3B, 0x41
-};
-
-static const unsigned char SEQ_ACL_CUTOFF_47[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00,
- 0x00, 0x03, 0x1F, 0x00, 0x00,
- 0x04, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x08, 0x0E,
- 0x15, 0x1B, 0x22, 0x29, 0x2F,
- 0x36, 0x3C, 0x43
-};
-
-static const unsigned char SEQ_ACL_CUTOFF_48[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00,
- 0x00, 0x03, 0x1F, 0x00, 0x00,
- 0x04, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x08, 0x0F,
- 0x15, 0x1C, 0x23, 0x2A, 0x31,
- 0x37, 0x3E, 0x45
-};
-
-static const unsigned char SEQ_ACL_CUTOFF_49[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00,
- 0x00, 0x03, 0x1F, 0x00, 0x00,
- 0x04, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x08, 0x0F,
- 0x16, 0x1D, 0x24, 0x2A, 0x31,
- 0x38, 0x3F, 0x46
-};
-
-static const unsigned char SEQ_ACL_CUTOFF_50[] = {
- 0xC1,
- 0x47, 0x53, 0x13, 0x53, 0x00,
- 0x00, 0x03, 0x1F, 0x00, 0x00,
- 0x04, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x08, 0x0F,
- 0x16, 0x1D, 0x24, 0x2B, 0x32,
- 0x39, 0x40, 0x47
-};
-
-
-static const unsigned char *ACL_CUTOFF_TABLE[ACL_STATUS_MAX] = {
- SEQ_ACL_OFF,
- SEQ_ACL_CUTOFF_20,
- SEQ_ACL_CUTOFF_33,
- SEQ_ACL_CUTOFF_43,
- SEQ_ACL_CUTOFF_45_80CD,
- SEQ_ACL_CUTOFF_45,
- SEQ_ACL_CUTOFF_46_160CD,
- SEQ_ACL_CUTOFF_46,
- SEQ_ACL_CUTOFF_47,
- SEQ_ACL_CUTOFF_48,
- SEQ_ACL_CUTOFF_49,
- SEQ_ACL_CUTOFF_50,
-
-};
-
-#endif /* __S6E8AA0_GAMMA_H__ */
diff --git a/drivers/video/samsung_duallcd/s6e8aa0_param.h b/drivers/video/samsung_duallcd/s6e8aa0_param.h
deleted file mode 100644
index 3ac11ad..0000000
--- a/drivers/video/samsung_duallcd/s6e8aa0_param.h
+++ /dev/null
@@ -1,212 +0,0 @@
-#ifndef __S6E8AA0_PARAM_H__
-#define __S6E8AA0_PARAM_H__
-
-#define GAMMA_PARAM_SIZE 26
-#define ELVSS_PARAM_SIZE 3
-
-#ifdef CONFIG_AID_DIMMING
-#define ELVSS_OFFSET_300 0x00
-#define ELVSS_OFFSET_290 0x01
-#define ELVSS_OFFSET_280 0x02
-#define ELVSS_OFFSET_270 0x03
-#define ELVSS_OFFSET_260 0x04
-#define ELVSS_OFFSET_250 0x05
-#define ELVSS_OFFSET_240 0x06
-#define ELVSS_OFFSET_230 0x06
-#define ELVSS_OFFSET_220 0x07
-#define ELVSS_OFFSET_210 0x08
-#define ELVSS_OFFSET_200 0x09
-#define ELVSS_OFFSET_190 0x0A
-#define ELVSS_OFFSET_180 0x05
-#define ELVSS_OFFSET_170 0x06
-#define ELVSS_OFFSET_160 0x07
-#define ELVSS_OFFSET_150 0x08
-#define ELVSS_OFFSET_140 0x09
-#define ELVSS_OFFSET_130 0x0A
-#define ELVSS_OFFSET_120 0x0B
-#define ELVSS_OFFSET_110 0x0C
-#define ELVSS_OFFSET_100 0x0D
-
-enum {
- ELVSS_110 = 0,
- ELVSS_120,
- ELVSS_130,
- ELVSS_140,
- ELVSS_150,
- ELVSS_160,
- ELVSS_170,
- ELVSS_180,
- ELVSS_190,
- ELVSS_200,
- ELVSS_210,
- ELVSS_220,
- ELVSS_230,
- ELVSS_240,
- ELVSS_250,
- ELVSS_260,
- ELVSS_270,
- ELVSS_280,
- ELVSS_290,
- ELVSS_300,
- ELVSS_STATUS_MAX,
-};
-
-#else
-#define ELVSS_OFFSET_300 0x00
-#define ELVSS_OFFSET_200 0x08
-#define ELVSS_OFFSET_160 0x0D
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
-#define ELVSS_OFFSET_100 0x11
-#else
-#define ELVSS_OFFSET_100 0x12
-#endif
-
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
-#define ELVSS_OFFSET_MAX ELVSS_OFFSET_300
-#define ELVSS_OFFSET_1 ELVSS_OFFSET_200
-#define ELVSS_OFFSET_2 ELVSS_OFFSET_160
-#define ELVSS_OFFSET_MIN ELVSS_OFFSET_100
-#else
-#define ELVSS_OFFSET_MAX ELVSS_OFFSET_300
-#define ELVSS_OFFSET_1 ELVSS_OFFSET_160
-#define ELVSS_OFFSET_2 ELVSS_OFFSET_1
-#define ELVSS_OFFSET_MIN ELVSS_OFFSET_100
-#endif
-
-enum {
- ELVSS_MIN = 0,
- ELVSS_1,
- ELVSS_2,
- ELVSS_MAX,
- ELVSS_STATUS_MAX,
-};
-#endif
-
-enum {
- GAMMA_20CD,
-#ifdef CONFIG_AID_DIMMING
- GAMMA_30CD,
-#else
- GAMMA_30CD = GAMMA_20CD,
-#endif
- GAMMA_40CD,
- GAMMA_50CD,
- GAMMA_60CD,
- GAMMA_70CD,
- GAMMA_80CD,
- GAMMA_90CD,
- GAMMA_100CD,
- GAMMA_110CD,
- GAMMA_120CD,
- GAMMA_130CD,
- GAMMA_140CD,
- GAMMA_150CD,
- GAMMA_160CD,
- GAMMA_170CD,
- GAMMA_180CD,
-#ifdef CONFIG_AID_DIMMING
- GAMMA_182CD,
- GAMMA_184CD,
- GAMMA_186CD,
- GAMMA_188CD,
-#endif
- GAMMA_190CD,
- GAMMA_200CD,
- GAMMA_210CD,
- GAMMA_220CD,
- GAMMA_230CD,
- GAMMA_240CD,
- GAMMA_250CD,
- GAMMA_290CD,
- GAMMA_300CD = GAMMA_290CD,
- GAMMA_MAX
-};
-
-static const unsigned char SEQ_APPLY_LEVEL_2_KEY[] = {
- 0xFC,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_APPLY_LEVEL_2[] = {
- 0xF0,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_APPLY_MTP_KEY_ENABLE[] = {
- 0xF1,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_SLEEP_OUT[] = {
- 0x11,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_DISPLAY_CONDITION_SET[] = {
- 0xF2,
- 0x80, 0x03, 0x0D
-};
-
-static const unsigned char SEQ_GAMMA_UPDATE[] = {
- 0xF7, 0x03,
- 0x00
-};
-
-static const unsigned char SEQ_ELVSS_CONTROL[] = {
- 0xB1,
- 0x04, 0x00
-};
-
-static const unsigned char SEQ_DISPLAY_ON[] = {
- 0x29,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_DISPLAY_OFF[] = {
- 0x28,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_STANDBY_ON[] = {
- 0x01,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_ACL_ON[] = {
- 0xC0, 0x01,
- 0x00
-};
-
-static const unsigned char SEQ_ACL_OFF[] = {
- 0xC0, 0x00,
- 0x00
-};
-
-static const unsigned char SEQ_ELVSS_32[] = {
- 0xB1,
- 0x04, 0x9F
-};
-
-static const unsigned char SEQ_ELVSS_34[] = {
- 0xB1,
- 0x04, 0x9D
-};
-
-static const unsigned char SEQ_ELVSS_38[] = {
- 0xB1,
- 0x04, 0x99
-};
-
-static const unsigned char SEQ_ELVSS_47[] = {
- 0xB1,
- 0x04, 0x90
-};
-
-static const unsigned char *ELVSS_TABLE[] = {
- SEQ_ELVSS_32,
- SEQ_ELVSS_34,
- SEQ_ELVSS_38,
- SEQ_ELVSS_47,
-};
-
-#endif /* __S6E8AA0_PARAM_H__ */
diff --git a/drivers/video/samsung_duallcd/s6e8aa0_volt_tbl.h b/drivers/video/samsung_duallcd/s6e8aa0_volt_tbl.h
deleted file mode 100644
index 2cce9b7..0000000
--- a/drivers/video/samsung_duallcd/s6e8aa0_volt_tbl.h
+++ /dev/null
@@ -1,2328 +0,0 @@
-#ifndef __REF_VOLT_TABLE_H__
-#define __REF_VOLT_TABLE_H__
-
-#ifdef CONFIG_AID_DIMMING
-u32 volt_table_v1[142] = {
-4785895 ,
-4777851 ,
-4769808 ,
-4761764 ,
-4753721 ,
-4745677 ,
-4737634 ,
-4729590 ,
-4721547 ,
-4713503 ,
-4705460 ,
-4697416 ,
-4689373 ,
-4681329 ,
-4673286 ,
-4665242 ,
-4657199 ,
-4649155 ,
-4641112 ,
-4633068 ,
-4625024 ,
-4616981 ,
-4608937 ,
-4600894 ,
-4592850 ,
-4584807 ,
-4576763 ,
-4568720 ,
-4560676 ,
-4552633 ,
-4544589 ,
-4536546 ,
-4528502 ,
-4520459 ,
-4512415 ,
-4504372 ,
-4496328 ,
-4488285 ,
-4480241 ,
-4472198 ,
-4464154 ,
-4456111 ,
-4448067 ,
-4440024 ,
-4431980 ,
-4423936 ,
-4415893 ,
-4407849 ,
-4399806 ,
-4391762 ,
-4383719 ,
-4375675 ,
-4367632 ,
-4359588 ,
-4351545 ,
-4343501 ,
-4335458 ,
-4327414 ,
-4319371 ,
-4311327 ,
-4303284 ,
-4295240 ,
-4287197 ,
-4279153 ,
-4271110 ,
-4263066 ,
-4255023 ,
-4246979 ,
-4238936 ,
-4230892 ,
-4222848 ,
-4214805 ,
-4206761 ,
-4198718 ,
-4190674 ,
-4182631 ,
-4174587 ,
-4166544 ,
-4158500 ,
-4150457 ,
-4142413 ,
-4134370 ,
-4126326 ,
-4118283 ,
-4110239 ,
-4102196 ,
-4094152 ,
-4086109 ,
-4078065 ,
-4070022 ,
-4061978 ,
-4053935 ,
-4045891 ,
-4037848 ,
-4029804 ,
-4021760 ,
-4013717 ,
-4005673 ,
-3997630 ,
-3989586 ,
-3981543 ,
-3973499 ,
-3965456 ,
-3957412 ,
-3949369 ,
-3941325 ,
-3933282 ,
-3925238 ,
-3917195 ,
-3909151 ,
-3901108 ,
-3893064 ,
-3885021 ,
-3876977 ,
-3868934 ,
-3860890 ,
-3852847 ,
-3844803 ,
-3836760 ,
-3828716 ,
-3820672 ,
-3812629 ,
-3804585 ,
-3796542 ,
-3788498 ,
-3780455 ,
-3772411 ,
-3764368 ,
-3756324 ,
-3748281 ,
-3740237 ,
-3732194 ,
-3724150 ,
-3716107 ,
-3708063 ,
-3700020 ,
-3691976 ,
-3683933 ,
-3675889 ,
-3667846 ,
-3659802 ,
-};
-
-
-u32 volt_table_v255[432] = {
-4021760 ,
-4013717 ,
-4005673 ,
-3997630 ,
-3989586 ,
-3981543 ,
-3973499 ,
-3965456 ,
-3957412 ,
-3949369 ,
-3941325 ,
-3933282 ,
-3925238 ,
-3917195 ,
-3909151 ,
-3901108 ,
-3893064 ,
-3885021 ,
-3876977 ,
-3868934 ,
-3860890 ,
-3852847 ,
-3844803 ,
-3836760 ,
-3828716 ,
-3820672 ,
-3812629 ,
-3804585 ,
-3796542 ,
-3788498 ,
-3780455 ,
-3772411 ,
-3764368 ,
-3756324 ,
-3748281 ,
-3740237 ,
-3732194 ,
-3724150 ,
-3716107 ,
-3708063 ,
-3700020 ,
-3691976 ,
-3683933 ,
-3675889 ,
-3667846 ,
-3659802 ,
-3651759 ,
-3643715 ,
-3635672 ,
-3627628 ,
-3619584 ,
-3611541 ,
-3603497 ,
-3595454 ,
-3587410 ,
-3579367 ,
-3571323 ,
-3563280 ,
-3555236 ,
-3547193 ,
-3539149 ,
-3531106 ,
-3523062 ,
-3515019 ,
-3506975 ,
-3498932 ,
-3490888 ,
-3482845 ,
-3474801 ,
-3466758 ,
-3458714 ,
-3450671 ,
-3442627 ,
-3434584 ,
-3426540 ,
-3418496 ,
-3410453 ,
-3402409 ,
-3394366 ,
-3386322 ,
-3378279 ,
-3370235 ,
-3362192 ,
-3354148 ,
-3346105 ,
-3338061 ,
-3330018 ,
-3321974 ,
-3313931 ,
-3305887 ,
-3297844 ,
-3289800 ,
-3281757 ,
-3273713 ,
-3265670 ,
-3257626 ,
-3249583 ,
-3241539 ,
-3233496 ,
-3225452 ,
-3217408 ,
-3209365 ,
-3201321 ,
-3193278 ,
-3185234 ,
-3177191 ,
-3169147 ,
-3161104 ,
-3153060 ,
-3145017 ,
-3136973 ,
-3128930 ,
-3120886 ,
-3112843 ,
-3104799 ,
-3096756 ,
-3088712 ,
-3080669 ,
-3072625 ,
-3064582 ,
-3056538 ,
-3048495 ,
-3040451 ,
-3032408 ,
-3024364 ,
-3016320 ,
-3008277 ,
-3000233 ,
-2992190 ,
-2984146 ,
-2976103 ,
-2968059 ,
-2960016 ,
-2951972 ,
-2943929 ,
-2935885 ,
-2927842 ,
-2919798 ,
-2911755 ,
-2903711 ,
-2895668 ,
-2887624 ,
-2879581 ,
-2871537 ,
-2863494 ,
-2855450 ,
-2847407 ,
-2839363 ,
-2831320 ,
-2823276 ,
-2815232 ,
-2807189 ,
-2799145 ,
-2791102 ,
-2783058 ,
-2775015 ,
-2766971 ,
-2758928 ,
-2750884 ,
-2742841 ,
-2734797 ,
-2726754 ,
-2718710 ,
-2710667 ,
-2702623 ,
-2694580 ,
-2686536 ,
-2678493 ,
-2670449 ,
-2662406 ,
-2654362 ,
-2646319 ,
-2638275 ,
-2630232 ,
-2622188 ,
-2614144 ,
-2606101 ,
-2598057 ,
-2590014 ,
-2581970 ,
-2573927 ,
-2565883 ,
-2557840 ,
-2549796 ,
-2541753 ,
-2533709 ,
-2525666 ,
-2517622 ,
-2509579 ,
-2501535 ,
-2493492 ,
-2485448 ,
-2477405 ,
-2469361 ,
-2461318 ,
-2453274 ,
-2445231 ,
-2437187 ,
-2429144 ,
-2421100 ,
-2413056 ,
-2405013 ,
-2396969 ,
-2388926 ,
-2380882 ,
-2372839 ,
-2364795 ,
-2356752 ,
-2348708 ,
-2340665 ,
-2332621 ,
-2324578 ,
-2316534 ,
-2308491 ,
-2300447 ,
-2292404 ,
-2284360 ,
-2276317 ,
-2268273 ,
-2260230 ,
-2252186 ,
-2244143 ,
-2236099 ,
-2228056 ,
-2220012 ,
-2211968 ,
-2203925 ,
-2195881 ,
-2187838 ,
-2179794 ,
-2171751 ,
-2163707 ,
-2155664 ,
-2147620 ,
-2139577 ,
-2131533 ,
-2123490 ,
-2115446 ,
-2107403 ,
-2099359 ,
-2091316 ,
-2083272 ,
-2075229 ,
-2067185 ,
-2059142 ,
-2051098 ,
-2043055 ,
-2035011 ,
-2026968 ,
-2018924 ,
-2010880 ,
-2002837 ,
-1994793 ,
-1986750 ,
-1978706 ,
-1970663 ,
-1962619 ,
-1954576 ,
-1946532 ,
-1938489 ,
-1930445 ,
-1922402 ,
-1914358 ,
-1906315 ,
-1898271 ,
-1890228 ,
-1882184 ,
-1874141 ,
-1866097 ,
-1858054 ,
-1850010 ,
-1841967 ,
-1833923 ,
-1825880 ,
-1817836 ,
-1809792 ,
-1801749 ,
-1793705 ,
-1785662 ,
-1777618 ,
-1769575 ,
-1761531 ,
-1753488 ,
-1745444 ,
-1737401 ,
-1729357 ,
-1721314 ,
-1713270 ,
-1705227 ,
-1697183 ,
-1689140 ,
-1681096 ,
-1673053 ,
-1665009 ,
-1656966 ,
-1648922 ,
-1640879 ,
-1632835 ,
-1624792 ,
-1616748 ,
-1608704 ,
-1600661 ,
-1592617 ,
-1584574 ,
-1576530 ,
-1568487 ,
-1560443 ,
-1552400 ,
-1544356 ,
-1536313 ,
-1528269 ,
-1520226 ,
-1512182 ,
-1504139 ,
-1496095 ,
-1488052 ,
-1480008 ,
-1471965 ,
-1463921 ,
-1455878 ,
-1447834 ,
-1439791 ,
-1431747 ,
-1423704 ,
-1415660 ,
-1407616 ,
-1399573 ,
-1391529 ,
-1383486 ,
-1375442 ,
-1367399 ,
-1359355 ,
-1351312 ,
-1343268 ,
-1335225 ,
-1327181 ,
-1319138 ,
-1311094 ,
-1303051 ,
-1295007 ,
-1286964 ,
-1278920 ,
-1270877 ,
-1262833 ,
-1254790 ,
-1246746 ,
-1238703 ,
-1230659 ,
-1222616 ,
-1214572 ,
-1206528 ,
-1198485 ,
-1190441 ,
-1182398 ,
-1174354 ,
-1166311 ,
-1158267 ,
-1150224 ,
-1142180 ,
-1134137 ,
-1126093 ,
-1118050 ,
-1110006 ,
-1101963 ,
-1093919 ,
-1085876 ,
-1077832 ,
-1069789 ,
-1061745 ,
-1053702 ,
-1045658 ,
-1037615 ,
-1029571 ,
-1021528 ,
-1013484 ,
-1005440 ,
-997397 ,
-989353 ,
-981310 ,
-973266 ,
-965223 ,
-957179 ,
-949136 ,
-941092 ,
-933049 ,
-925005 ,
-916962 ,
-908918 ,
-900875 ,
-892831 ,
-884788 ,
-876744 ,
-868701 ,
-860657 ,
-852614 ,
-844570 ,
-836527 ,
-828483 ,
-820440 ,
-812396 ,
-804352 ,
-796309 ,
-788265 ,
-780222 ,
-772178 ,
-764135 ,
-756091 ,
-748048 ,
-740004 ,
-731961 ,
-723917 ,
-715874 ,
-707830 ,
-699787 ,
-691743 ,
-683700 ,
-675656 ,
-667613 ,
-659569 ,
-651526 ,
-643482 ,
-635439 ,
-627395 ,
-619352 ,
-611308 ,
-603264 ,
-595221 ,
-587177 ,
-579134 ,
-571090 ,
-563047 ,
-};
-#else
-u32 volt_table_v1[256] = {
-4671488, 4663296, 4655104, 4647936,
-4639744, 4631552, 4624384, 4616192,
-4608000, 4600832, 4592640, 4584448,
-4577280, 4569088, 4560896, 4553728,
-4545536, 4537344, 4530176, 4521984,
-4513792, 4506624, 4498432, 4490240,
-4483072, 4474880, 4466688, 4459520,
-4451328, 4443136, 4435968, 4427776,
-4419584, 4412416, 4404224, 4396032,
-4388864, 4380672, 4372480, 4365312,
-4357120, 4348928, 4341760, 4333568,
-4325376, 4318208, 4310016, 4301824,
-4294656, 4286464, 4278272, 4271104,
-4262912, 4254720, 4247552, 4239360,
-4231168, 4224000, 4215808, 4207616,
-4200448, 4192256, 4184064, 4176896,
-4168704, 4160512, 4153344, 4145152,
-4136960, 4129792, 4121600, 4113408,
-4106240, 4098048, 4089856, 4082688,
-4074496, 4066304, 4059136, 4050944,
-4042752, 4035584, 4027392, 4019200,
-4012032, 4003840, 3995648, 3988480,
-3980288, 3972096, 3964928, 3956736,
-3948544, 3941376, 3933184, 3924992,
-3917824, 3909632, 3901440, 3894272,
-3886080, 3877888, 3870720, 3862528,
-3854336, 3847168, 3838976, 3830784,
-3823616, 3815424, 3807232, 3800064,
-3791872, 3783680, 3776512, 3768320,
-3760128, 3752960, 3744768, 3736576,
-3729408, 3721216, 3713024, 3705856,
-3697664, 3689472, 3682304, 3674112,
-3665920, 3658752, 3650560, 3642368,
-3635200, 3627008, 3618816, 3611648,
-3603456, 3595264, 3588096, 3579904,
-3571712, 3564544,
-};
-
-
-u32 volt_table_v255[432] = {
-3924992, 3917824, 3909632, 3901440,
-3894272, 3886080, 3877888, 3870720,
-3862528, 3854336, 3847168, 3838976,
-3830784, 3823616, 3815424, 3807232,
-3800064, 3791872, 3783680, 3776512,
-3768320, 3760128, 3752960, 3744768,
-3736576, 3729408, 3721216, 3713024,
-3705856, 3697664, 3689472, 3682304,
-3674112, 3665920, 3658752, 3650560,
-3642368, 3635200, 3627008, 3618816,
-3611648, 3603456, 3595264, 3588096,
-3579904, 3571712, 3564544, 3556352,
-3548160, 3540992, 3532800, 3524608,
-3517440, 3509248, 3501056, 3493888,
-3485696, 3477504, 3470336, 3462144,
-3453952, 3446784, 3438592, 3430400,
-3423232, 3415040, 3406848, 3399680,
-3391488, 3383296, 3376128, 3367936,
-3359744, 3352576, 3344384, 3336192,
-3329024, 3320832, 3312640, 3305472,
-3297280, 3289088, 3281920, 3273728,
-3265536, 3258368, 3250176, 3241984,
-3234816, 3226624, 3218432, 3211264,
-3203072, 3194880, 3187712, 3179520,
-3171328, 3164160, 3155968, 3147776,
-3140608, 3132416, 3124224, 3117056,
-3108864, 3100672, 3093504, 3085312,
-3077120, 3069952, 3061760, 3053568,
-3046400, 3038208, 3030016, 3022848,
-3014656, 3006464, 2999296, 2991104,
-2982912, 2975744, 2967552, 2959360,
-2952192, 2944000, 2935808, 2928640,
-2920448, 2912256, 2905088, 2896896,
-2888704, 2881536, 2873344, 2865152,
-2857984, 2849792, 2841600, 2834432,
-2826240, 2818048, 2810880, 2802688,
-2794496, 2787328, 2779136, 2770944,
-2763776, 2755584, 2747392, 2740224,
-2732032, 2723840, 2716672, 2708480,
-2700288, 2693120, 2684928, 2676736,
-2669568, 2661376, 2653184, 2646016,
-2637824, 2629632, 2622464, 2614272,
-2606080, 2598912, 2590720, 2582528,
-2575360, 2567168, 2558976, 2551808,
-2543616, 2535424, 2528256, 2520064,
-2511872, 2504704, 2496512, 2488320,
-2481152, 2472960, 2464768, 2457600,
-2449408, 2441216, 2434048, 2425856,
-2417664, 2410496, 2402304, 2394112,
-2386944, 2378752, 2370560, 2363392,
-2355200, 2347008, 2339840, 2331648,
-2323456, 2316288, 2308096, 2299904,
-2292736, 2284544, 2276352, 2269184,
-2260992, 2252800, 2245632, 2237440,
-2229248, 2222080, 2213888, 2205696,
-2198528, 2190336, 2182144, 2174976,
-2166784, 2158592, 2151424, 2143232,
-2135040, 2127872, 2119680, 2111488,
-2104320, 2096128, 2087936, 2080768,
-2072576, 2064384, 2057216, 2049024,
-2040832, 2033664, 2025472, 2017280,
-2010112, 2001920, 1993728, 1986560,
-1978368, 1970176, 1963008, 1954816,
-1946624, 1939456, 1931264, 1923072,
-1915904, 1907712, 1899520, 1892352,
-1884160, 1875968, 1868800, 1860608,
-1852416, 1845248, 1837056, 1828864,
-1821696, 1813504, 1805312, 1798144,
-1789952, 1781760, 1774592, 1766400,
-1758208, 1751040, 1742848, 1734656,
-1727488, 1719296, 1711104, 1703936,
-1695744, 1687552, 1680384, 1672192,
-1664000, 1656832, 1648640, 1640448,
-1633280, 1625088, 1616896, 1609728,
-1601536, 1593344, 1586176, 1577984,
-1569792, 1562624, 1554432, 1546240,
-1539072, 1530880, 1522688, 1515520,
-1507328, 1499136, 1491968, 1483776,
-1475584, 1468416, 1460224, 1452032,
-1444864, 1436672, 1428480, 1421312,
-1413120, 1404928, 1397760, 1389568,
-1381376, 1374208, 1366016, 1357824,
-1350656, 1342464, 1334272, 1327104,
-1318912, 1310720, 1303552, 1295360,
-1287168, 1280000, 1271808, 1263616,
-1256448, 1248256, 1240064, 1232896,
-1224704, 1216512, 1209344, 1201152,
-1192960, 1185792, 1177600, 1169408,
-1162240, 1154048, 1145856, 1138688,
-1130496, 1122304, 1115136, 1106944,
-1098752, 1091584, 1083392, 1075200,
-1068032, 1059840, 1051648, 1044480,
-1036288, 1028096, 1020928, 1012736,
-1004544, 997376, 989184, 980992,
-973824, 965632, 957440, 950272,
-942080, 933888, 926720, 918528,
-910336, 903168, 894976, 886784,
-879616, 871424, 863232, 856064,
-847872, 839680, 832512, 824320,
-816128, 808960, 800768, 792576,
-785408, 777216, 769024, 761856,
-753664, 745472, 738304, 730112,
-721920, 714752, 706560, 698368,
-691200, 683008, 674816, 667648,
-659456, 651264, 644096, 635904,
-627712, 620544, 612352, 604160,
-596992, 588800, 580608, 573440,
-565248, 557056, 549888, 541696,
-
-};
-#endif
-
-u32 volt_table_cv_20_dv_320[256] = {
-64,
-67,
-70,
-74,
-77,
-80,
-83,
-86,
-90,
-93,
-96,
-99,
-102,
-106,
-109,
-112,
-115,
-118,
-122,
-125,
-128,
-131,
-134,
-138,
-141,
-144,
-147,
-150,
-154,
-157,
-160,
-163,
-166,
-170,
-173,
-176,
-179,
-182,
-186,
-189,
-192,
-195,
-198,
-202,
-205,
-208,
-211,
-214,
-218,
-221,
-224,
-227,
-230,
-234,
-237,
-240,
-243,
-246,
-250,
-253,
-256,
-259,
-262,
-266,
-269,
-272,
-275,
-278,
-282,
-285,
-288,
-291,
-294,
-298,
-301,
-304,
-307,
-310,
-314,
-317,
-320,
-323,
-326,
-330,
-333,
-336,
-339,
-342,
-346,
-349,
-352,
-355,
-358,
-362,
-365,
-368,
-371,
-374,
-378,
-381,
-384,
-387,
-390,
-394,
-397,
-400,
-403,
-406,
-410,
-413,
-416,
-419,
-422,
-426,
-429,
-432,
-435,
-438,
-442,
-445,
-448,
-451,
-454,
-458,
-461,
-464,
-467,
-470,
-474,
-477,
-480,
-483,
-486,
-490,
-493,
-496,
-499,
-502,
-506,
-509,
-512,
-515,
-518,
-522,
-525,
-528,
-531,
-534,
-538,
-541,
-544,
-547,
-550,
-554,
-557,
-560,
-563,
-566,
-570,
-573,
-576,
-579,
-582,
-586,
-589,
-592,
-595,
-598,
-602,
-605,
-608,
-611,
-614,
-618,
-621,
-624,
-627,
-630,
-634,
-637,
-640,
-643,
-646,
-650,
-653,
-656,
-659,
-662,
-666,
-669,
-672,
-675,
-678,
-682,
-685,
-688,
-691,
-694,
-698,
-701,
-704,
-707,
-710,
-714,
-717,
-720,
-723,
-726,
-730,
-733,
-736,
-739,
-742,
-746,
-749,
-752,
-755,
-758,
-762,
-765,
-768,
-771,
-774,
-778,
-781,
-784,
-787,
-790,
-794,
-797,
-800,
-803,
-806,
-810,
-813,
-816,
-819,
-822,
-826,
-829,
-832,
-835,
-838,
-842,
-845,
-848,
-851,
-854,
-858,
-861,
-864,
-867,
-870,
-874,
-877,
-880
-};
-
-u32 volt_table_cv_65_dv_320[256] = {
-208,
-211,
-214,
-218,
-221,
-224,
-227,
-230,
-234,
-237,
-240,
-243,
-246,
-250,
-253,
-256,
-259,
-262,
-266,
-269,
-272,
-275,
-278,
-282,
-285,
-288,
-291,
-294,
-298,
-301,
-304,
-307,
-310,
-314,
-317,
-320,
-323,
-326,
-330,
-333,
-336,
-339,
-342,
-346,
-349,
-352,
-355,
-358,
-362,
-365,
-368,
-371,
-374,
-378,
-381,
-384,
-387,
-390,
-394,
-397,
-400,
-403,
-406,
-410,
-413,
-416,
-419,
-422,
-426,
-429,
-432,
-435,
-438,
-442,
-445,
-448,
-451,
-454,
-458,
-461,
-464,
-467,
-470,
-474,
-477,
-480,
-483,
-486,
-490,
-493,
-496,
-499,
-502,
-506,
-509,
-512,
-515,
-518,
-522,
-525,
-528,
-531,
-534,
-538,
-541,
-544,
-547,
-550,
-554,
-557,
-560,
-563,
-566,
-570,
-573,
-576,
-579,
-582,
-586,
-589,
-592,
-595,
-598,
-602,
-605,
-608,
-611,
-614,
-618,
-621,
-624,
-627,
-630,
-634,
-637,
-640,
-643,
-646,
-650,
-653,
-656,
-659,
-662,
-666,
-669,
-672,
-675,
-678,
-682,
-685,
-688,
-691,
-694,
-698,
-701,
-704,
-707,
-710,
-714,
-717,
-720,
-723,
-726,
-730,
-733,
-736,
-739,
-742,
-746,
-749,
-752,
-755,
-758,
-762,
-765,
-768,
-771,
-774,
-778,
-781,
-784,
-787,
-790,
-794,
-797,
-800,
-803,
-806,
-810,
-813,
-816,
-819,
-822,
-826,
-829,
-832,
-835,
-838,
-842,
-845,
-848,
-851,
-854,
-858,
-861,
-864,
-867,
-870,
-874,
-877,
-880,
-883,
-886,
-890,
-893,
-896,
-899,
-902,
-906,
-909,
-912,
-915,
-918,
-922,
-925,
-928,
-931,
-934,
-938,
-941,
-944,
-947,
-950,
-954,
-957,
-960,
-963,
-966,
-970,
-973,
-976,
-979,
-982,
-986,
-989,
-992,
-995,
-998,
-1002,
-1005,
-1008,
-1011,
-1014,
-1018,
-1021,
-1024,
-};
-
-const u32 gamma_300_gra_table[256] = {
-0, 2, 7, 17,
-32, 53, 78, 110,
-148, 191, 241, 298,
-361, 430, 506, 589,
-679, 776, 880, 991,
-1109, 1235, 1368, 1508,
-1657, 1812, 1975, 2147,
-2325, 2512, 2706, 2909,
-3119, 3338, 3564, 3799,
-4042, 4293, 4553, 4820,
-5096, 5381, 5674, 5975,
-6285, 6604, 6931, 7267,
-7611, 7965, 8327, 8697,
-9077, 9465, 9863, 10269,
-10684, 11109, 11542, 11984,
-12436, 12896, 13366, 13845,
-14333, 14830, 15337, 15852,
-16378, 16912, 17456, 18009,
-18572, 19144, 19726, 20317,
-20918, 21528, 22148, 22778,
-23417, 24066, 24724, 25392,
-26070, 26758, 27456, 28163,
-28880, 29607, 30344, 31090,
-31847, 32613, 33390, 34176,
-34973, 35779, 36596, 37422,
-38259, 39106, 39963, 40830,
-41707, 42594, 43492, 44399,
-45317, 46246, 47184, 48133,
-49092, 50062, 51042, 52032,
-53032, 54043, 55065, 56097,
-57139, 58192, 59255, 60329,
-61413, 62508, 63613, 64729,
-65856, 66993, 68141, 69299,
-70469, 71648, 72839, 74040,
-75252, 76475, 77708, 78952,
-80207, 81473, 82750, 84037,
-85336, 86645, 87965, 89296,
-90638, 91990, 93354, 94729,
-96114, 97511, 98919, 100337,
-101767, 103208, 104659, 106122,
-107596, 109081, 110577, 112085,
-113603, 115132, 116673, 118225,
-119788, 121362, 122948, 124544,
-126152, 127772, 129402, 131044,
-132697, 134361, 136037, 137724,
-139422, 141132, 142853, 144586,
-146330, 148085, 149852, 151630,
-153419, 155220, 157033, 158857,
-160692, 162540, 164398, 166268,
-168150, 170043, 171948, 173864,
-175792, 177731, 179683, 181645,
-183620, 185606, 187603, 189613,
-191634, 193667, 195711, 197767,
-199835, 201915, 204006, 206109,
-208224, 210351, 212489, 214640,
-216802, 218976, 221161, 223359,
-225569, 227790, 230023, 232268,
-234525, 236794, 239075, 241368,
-243672, 245989, 248318, 250658,
-253011, 255375, 257752, 260141,
-262541, 264954, 267379, 269815,
-272264, 274725, 277198, 279683,
-282180, 284689, 287211, 289744,
-292290, 294848, 297418, 300000,
-};
-
-#ifdef CONFIG_AID_DIMMING
-const u32 gamma_22_table[256] = {
-0,
-5 ,
-23 ,
-56 ,
-107 ,
-175 ,
-261 ,
-367 ,
-492 ,
-638 ,
-804 ,
-992 ,
-1201 ,
-1433 ,
-1686 ,
-1963 ,
-2262 ,
-2585 ,
-2932 ,
-3302 ,
-3697 ,
-4116 ,
-4559 ,
-5028 ,
-5521 ,
-6040 ,
-6584 ,
-7155 ,
-7751 ,
-8373 ,
-9021 ,
-9696 ,
-10397 ,
-11126 ,
-11881 ,
-12663 ,
-13473 ,
-14310 ,
-15175 ,
-16067 ,
-16988 ,
-17936 ,
-18912 ,
-19917 ,
-20951 ,
-22012 ,
-23103 ,
-24222 ,
-25371 ,
-26548 ,
-27755 ,
-28991 ,
-30256 ,
-31551 ,
-32875 ,
-34230 ,
-35614 ,
-37028 ,
-38472 ,
-39947 ,
-41451 ,
-42987 ,
-44552 ,
-46148 ,
-47775 ,
-49433 ,
-51122 ,
-52841 ,
-54592 ,
-56374 ,
-58187 ,
-60031 ,
-61907 ,
-63814 ,
-65753 ,
-67724 ,
-69727 ,
-71761 ,
-73827 ,
-75926 ,
-78056 ,
-80219 ,
-82414 ,
-84641 ,
-86901 ,
-89193 ,
-91518 ,
-93875 ,
-96266 ,
-98689 ,
-101145 ,
-103634 ,
-106156 ,
-108711 ,
-111299 ,
-113920 ,
-116575 ,
-119264 ,
-121985 ,
-124740 ,
-127529 ,
-130352 ,
-133208 ,
-136098 ,
-139022 ,
-141980 ,
-144972 ,
-147998 ,
-151058 ,
-154152 ,
-157280 ,
-160443 ,
-163640 ,
-166872 ,
-170138 ,
-173439 ,
-176774 ,
-180144 ,
-183548 ,
-186988 ,
-190462 ,
-193972 ,
-197516 ,
-201095 ,
-204710 ,
-208359 ,
-212044 ,
-215764 ,
-219519 ,
-223310 ,
-227136 ,
-230998 ,
-234895 ,
-238827 ,
-242796 ,
-246800 ,
-250840 ,
-254915 ,
-259027 ,
-263174 ,
-267358 ,
-271577 ,
-275832 ,
-280124 ,
-284452 ,
-288815 ,
-293216 ,
-297652 ,
-302125 ,
-306634 ,
-311180 ,
-315762 ,
-320381 ,
-325036 ,
-329729 ,
-334457 ,
-339223 ,
-344025 ,
-348864 ,
-353740 ,
-358653 ,
-363603 ,
-368590 ,
-373615 ,
-378676 ,
-383774 ,
-388910 ,
-394083 ,
-399293 ,
-404540 ,
-409825 ,
-415148 ,
-420507 ,
-425905 ,
-431340 ,
-436812 ,
-442322 ,
-447870 ,
-453456 ,
-459079 ,
-464741 ,
-470440 ,
-476177 ,
-481952 ,
-487765 ,
-493616 ,
-499505 ,
-505432 ,
-511397 ,
-517401 ,
-523443 ,
-529523 ,
-535641 ,
-541798 ,
-547993 ,
-554227 ,
-560499 ,
-566809 ,
-573158 ,
-579546 ,
-585972 ,
-592438 ,
-598941 ,
-605484 ,
-612065 ,
-618685 ,
-625344 ,
-632042 ,
-638779 ,
-645555 ,
-652370 ,
-659223 ,
-666116 ,
-673049 ,
-680020 ,
-687030 ,
-694080 ,
-701169 ,
-708297 ,
-715465 ,
-722672 ,
-729918 ,
-737204 ,
-744530 ,
-751895 ,
-759299 ,
-766743 ,
-774227 ,
-781750 ,
-789313 ,
-796916 ,
-804559 ,
-812241 ,
-819963 ,
-827725 ,
-835527 ,
-843369 ,
-851251 ,
-859173 ,
-867135 ,
-875137 ,
-883179 ,
-891262 ,
-899384 ,
-907547 ,
-915750 ,
-923993 ,
-932276 ,
-940600 ,
-948964 ,
-957369 ,
-965814 ,
-974300 ,
-982826 ,
-991392 ,
-1000000 ,
-
-};
-
-const u32 gamma_215_table[256] = {
-0,
-6 ,
-29 ,
-71 ,
-131 ,
-213 ,
-315 ,
-439 ,
-585 ,
-754 ,
-946 ,
-1161 ,
-1400 ,
-1663 ,
-1950 ,
-2262 ,
-2598 ,
-2960 ,
-3347 ,
-3760 ,
-4199 ,
-4663 ,
-5154 ,
-5670 ,
-6214 ,
-6784 ,
-7381 ,
-8005 ,
-8656 ,
-9334 ,
-10040 ,
-10773 ,
-11534 ,
-12323 ,
-13140 ,
-13985 ,
-14858 ,
-15760 ,
-16690 ,
-17649 ,
-18636 ,
-19652 ,
-20697 ,
-21771 ,
-22875 ,
-24007 ,
-25169 ,
-26360 ,
-27580 ,
-28831 ,
-30110 ,
-31420 ,
-32760 ,
-34129 ,
-35529 ,
-36958 ,
-38418 ,
-39908 ,
-41429 ,
-42980 ,
-44561 ,
-46174 ,
-47816 ,
-49490 ,
-51194 ,
-52930 ,
-54696 ,
-56493 ,
-58322 ,
-60181 ,
-62072 ,
-63994 ,
-65948 ,
-67933 ,
-69949 ,
-71997 ,
-74077 ,
-76189 ,
-78332 ,
-80507 ,
-82714 ,
-84953 ,
-87224 ,
-89527 ,
-91862 ,
-94230 ,
-96629 ,
-99061 ,
-101525 ,
-104022 ,
-106551 ,
-109113 ,
-111707 ,
-114334 ,
-116993 ,
-119686 ,
-122411 ,
-125169 ,
-127960 ,
-130783 ,
-133640 ,
-136530 ,
-139453 ,
-142409 ,
-145398 ,
-148421 ,
-151476 ,
-154565 ,
-157688 ,
-160844 ,
-164033 ,
-167256 ,
-170512 ,
-173802 ,
-177126 ,
-180484 ,
-183875 ,
-187300 ,
-190758 ,
-194251 ,
-197778 ,
-201338 ,
-204933 ,
-208561 ,
-212224 ,
-215921 ,
-219652 ,
-223417 ,
-227216 ,
-231050 ,
-234918 ,
-238820 ,
-242757 ,
-246728 ,
-250734 ,
-254774 ,
-258849 ,
-262958 ,
-267102 ,
-271281 ,
-275495 ,
-279743 ,
-284026 ,
-288344 ,
-292696 ,
-297084 ,
-301506 ,
-305964 ,
-310456 ,
-314984 ,
-319547 ,
-324144 ,
-328777 ,
-333445 ,
-338149 ,
-342887 ,
-347661 ,
-352470 ,
-357315 ,
-362194 ,
-367110 ,
-372061 ,
-377047 ,
-382069 ,
-387126 ,
-392219 ,
-397347 ,
-402512 ,
-407712 ,
-412947 ,
-418219 ,
-423526 ,
-428869 ,
-434247 ,
-439662 ,
-445113 ,
-450599 ,
-456122 ,
-461680 ,
-467275 ,
-472905 ,
-478572 ,
-484275 ,
-490013 ,
-495789 ,
-501600 ,
-507447 ,
-513331 ,
-519251 ,
-525208 ,
-531200 ,
-537230 ,
-543295 ,
-549397 ,
-555536 ,
-561711 ,
-567922 ,
-574170 ,
-580455 ,
-586776 ,
-593134 ,
-599528 ,
-605960 ,
-612428 ,
-618932 ,
-625474 ,
-632052 ,
-638667 ,
-645319 ,
-652008 ,
-658734 ,
-665496 ,
-672296 ,
-679132 ,
-686006 ,
-692917 ,
-699864 ,
-706849 ,
-713871 ,
-720930 ,
-728026 ,
-735160 ,
-742330 ,
-749538 ,
-756783 ,
-764066 ,
-771386 ,
-778743 ,
-786137 ,
-793569 ,
-801038 ,
-808545 ,
-816089 ,
-823671 ,
-831290 ,
-838946 ,
-846641 ,
-854373 ,
-862142 ,
-869949 ,
-877794 ,
-885676 ,
-893596 ,
-901554 ,
-909550 ,
-917583 ,
-925654 ,
-933763 ,
-941910 ,
-950095 ,
-958317 ,
-966578 ,
-974876 ,
-983213 ,
-991587 ,
-1000000 ,
-
-};
-
-/* todo : will modify this value */
-const u32 gamma_21_table[256] = {
-0,
-8 ,
-37 ,
-88 ,
-162 ,
-259 ,
-380 ,
-525 ,
-696 ,
-891 ,
-1112 ,
-1358 ,
-1631 ,
-1929 ,
-2254 ,
-2606 ,
-2984 ,
-3390 ,
-3822 ,
-4282 ,
-4769 ,
-5283 ,
-5825 ,
-6395 ,
-6993 ,
-7619 ,
-8273 ,
-8956 ,
-9667 ,
-10406 ,
-11174 ,
-11970 ,
-12796 ,
-13650 ,
-14533 ,
-15445 ,
-16387 ,
-17357 ,
-18357 ,
-19386 ,
-20445 ,
-21533 ,
-22651 ,
-23798 ,
-24975 ,
-26182 ,
-27419 ,
-28686 ,
-29982 ,
-31309 ,
-32666 ,
-34053 ,
-35470 ,
-36918 ,
-38396 ,
-39904 ,
-41443 ,
-43013 ,
-44613 ,
-46243 ,
-47905 ,
-49597 ,
-51320 ,
-53073 ,
-54858 ,
-56673 ,
-58520 ,
-60398 ,
-62306 ,
-64246 ,
-66217 ,
-68219 ,
-70252 ,
-72317 ,
-74413 ,
-76541 ,
-78699 ,
-80890 ,
-83112 ,
-85365 ,
-87650 ,
-89967 ,
-92315 ,
-94695 ,
-97107 ,
-99550 ,
-102026 ,
-104533 ,
-107072 ,
-109643 ,
-112247 ,
-114882 ,
-117549 ,
-120248 ,
-122979 ,
-125743 ,
-128539 ,
-131366 ,
-134227 ,
-137119 ,
-140044 ,
-143001 ,
-145990 ,
-149012 ,
-152067 ,
-155154 ,
-158273 ,
-161425 ,
-164609 ,
-167826 ,
-171076 ,
-174358 ,
-177673 ,
-181021 ,
-184402 ,
-187815 ,
-191261 ,
-194740 ,
-198252 ,
-201796 ,
-205374 ,
-208984 ,
-212628 ,
-216304 ,
-220014 ,
-223757 ,
-227532 ,
-231341 ,
-235183 ,
-239058 ,
-242966 ,
-246908 ,
-250882 ,
-254890 ,
-258931 ,
-263006 ,
-267114 ,
-271255 ,
-275430 ,
-279638 ,
-283879 ,
-288154 ,
-292463 ,
-296805 ,
-301180 ,
-305589 ,
-310032 ,
-314508 ,
-319018 ,
-323561 ,
-328138 ,
-332749 ,
-337393 ,
-342072 ,
-346784 ,
-351529 ,
-356309 ,
-361122 ,
-365970 ,
-370851 ,
-375766 ,
-380714 ,
-385697 ,
-390714 ,
-395765 ,
-400850 ,
-405968 ,
-411121 ,
-416308 ,
-421529 ,
-426784 ,
-432073 ,
-437396 ,
-442753 ,
-448145 ,
-453571 ,
-459031 ,
-464525 ,
-470053 ,
-475616 ,
-481213 ,
-486844 ,
-492510 ,
-498210 ,
-503944 ,
-509713 ,
-515516 ,
-521354 ,
-527226 ,
-533132 ,
-539073 ,
-545049 ,
-551059 ,
-557103 ,
-563182 ,
-569296 ,
-575444 ,
-581627 ,
-587844 ,
-594096 ,
-600383 ,
-606704 ,
-613060 ,
-619451 ,
-625876 ,
-632337 ,
-638832 ,
-645361 ,
-651926 ,
-658525 ,
-665160 ,
-671829 ,
-678532 ,
-685271 ,
-692045 ,
-698853 ,
-705697 ,
-712575 ,
-719489 ,
-726437 ,
-733420 ,
-740439 ,
-747492 ,
-754580 ,
-761704 ,
-768862 ,
-776056 ,
-783285 ,
-790549 ,
-797847 ,
-805182 ,
-812551 ,
-819955 ,
-827395 ,
-834870 ,
-842380 ,
-849925 ,
-857505 ,
-865121 ,
-872772 ,
-880459 ,
-888180 ,
-895937 ,
-903730 ,
-911557 ,
-919420 ,
-927319 ,
-935253 ,
-943222 ,
-951227 ,
-959267 ,
-967342 ,
-975453 ,
-983600 ,
-991782 ,
-1000000 ,
-};
-#else
-const u32 gamma_22_table[256] = {
-0, 0, 0, 0,
-0, 0, 0, 0,
-0, 1, 1, 1,
-1, 1, 2, 2,
-2, 3, 3, 3,
-4, 4, 5, 5,
-6, 6, 7, 7,
-8, 8, 9, 10,
-10, 11, 12, 13,
-13, 14, 15, 16,
-17, 18, 19, 20,
-21, 22, 23, 24,
-25, 27, 28, 29,
-30, 32, 33, 34,
-36, 37, 38, 40,
-41, 43, 45, 46,
-48, 49, 51, 53,
-55, 56, 58, 60,
-62, 64, 66, 68,
-70, 72, 74, 76,
-78, 80, 82, 85,
-87, 89, 92, 94,
-96, 99, 101, 104,
-106, 109, 111, 114,
-117, 119, 122, 125,
-128, 130, 133, 136,
-139, 142, 145, 148,
-151, 154, 157, 160,
-164, 167, 170, 173,
-177, 180, 184, 187,
-190, 194, 198, 201,
-205, 208, 212, 216,
-220, 223, 227, 231,
-235, 239, 243, 247,
-251, 255, 259, 263,
-267, 272, 276, 280,
-284, 289, 293, 298,
-302, 307, 311, 316,
-320, 325, 330, 334,
-339, 344, 349, 354,
-359, 364, 369, 374,
-379, 384, 389, 394,
-399, 405, 410, 415,
-421, 426, 431, 437,
-442, 448, 453, 459,
-465, 470, 476, 482,
-488, 494, 500, 505,
-511, 517, 523, 530,
-536, 542, 548, 554,
-560, 567, 573, 580,
-586, 592, 599, 605,
-612, 619, 625, 632,
-639, 646, 652, 659,
-666, 673, 680, 687,
-694, 701, 708, 715,
-723, 730, 737, 745,
-752, 759, 767, 774,
-782, 789, 797, 805,
-812, 820, 828, 836,
-843, 851, 859, 867,
-875, 883, 891, 899,
-908, 916, 924, 932,
-941, 949, 957, 966,
-974, 983, 991, 1000,
-};
-#endif
-
-const struct str_flookup_table flookup_table[302] = {
-{ 0, 0}, { 1, 20},
-{ 20, 7}, { 27, 5},
-{ 32, 4}, { 36, 4},
-{ 40, 4}, { 44, 3},
-{ 47, 3}, { 50, 2},
-{ 52, 3}, { 55, 2},
-{ 57, 3}, { 60, 2},
-{ 62, 2}, { 64, 2},
-{ 66, 2}, { 68, 2},
-{ 70, 1}, { 71, 2},
-{ 73, 2}, { 75, 2},
-{ 77, 1}, { 78, 2},
-{ 80, 1}, { 81, 2},
-{ 83, 1}, { 84, 2},
-{ 86, 1}, { 87, 2},
-{ 89, 1}, { 90, 1},
-{ 91, 2}, { 93, 1},
-{ 94, 1}, { 95, 2},
-{ 97, 1}, { 98, 1},
-{ 99, 1}, {100, 1},
-{101, 2}, {103, 1},
-{104, 1}, {105, 1},
-{106, 1}, {107, 1},
-{108, 1}, {109, 1},
-{110, 1}, {111, 1},
-{112, 1}, {113, 1},
-{114, 1}, {115, 1},
-{116, 1}, {117, 1},
-{118, 1}, {119, 1},
-{120, 1}, {121, 1},
-{122, 1}, {123, 1},
-{124, 1}, {125, 1},
-{126, 1}, {127, 1},
-{128, 1}, {129, 1},
-{ 0, 0}, {130, 1},
-{131, 1}, {132, 1},
-{133, 1}, {134, 1},
-{ 0, 0}, {135, 1},
-{136, 1}, {137, 1},
-{138, 1}, {139, 1},
-{ 0, 0}, {140, 1},
-{141, 1}, {142, 1},
-{ 0, 0}, {143, 1},
-{144, 1}, {145, 1},
-{146, 1}, { 0, 0},
-{147, 1}, {148, 1},
-{149, 1}, { 0, 0},
-{150, 1}, {151, 1},
-{ 0, 0}, {152, 1},
-{153, 1}, {154, 1},
-{ 0, 0}, {155, 1},
-{156, 1}, { 0, 0},
-{157, 1}, {158, 1},
-{ 0, 0}, {159, 1},
-{160, 1}, { 0, 0},
-{161, 1}, {162, 1},
-{ 0, 0}, {163, 1},
-{164, 1}, { 0, 0},
-{165, 1}, {166, 1},
-{ 0, 0}, {167, 1},
-{168, 1}, { 0, 0},
-{169, 1}, {170, 1},
-{ 0, 0}, {171, 1},
-{ 0, 0}, {172, 1},
-{173, 1}, { 0, 0},
-{174, 1}, { 0, 0},
-{175, 1}, {176, 1},
-{ 0, 0}, {177, 1},
-{ 0, 0}, {178, 1},
-{179, 1}, { 0, 0},
-{180, 1}, { 0, 0},
-{181, 1}, {182, 1},
-{ 0, 0}, {183, 1},
-{ 0, 0}, {184, 1},
-{ 0, 0}, {185, 1},
-{186, 1}, { 0, 0},
-{187, 1}, { 0, 0},
-{188, 1}, { 0, 0},
-{189, 1}, { 0, 0},
-{190, 1}, {191, 1},
-{ 0, 0}, {192, 1},
-{ 0, 0}, {193, 1},
-{ 0, 0}, {194, 1},
-{ 0, 0}, {195, 1},
-{ 0, 0}, {196, 1},
-{ 0, 0}, {197, 1},
-{198, 1}, { 0, 0},
-{199, 1}, { 0, 0},
-{200, 1}, { 0, 0},
-{201, 1}, { 0, 0},
-{202, 1}, { 0, 0},
-{203, 1}, { 0, 0},
-{204, 1}, { 0, 0},
-{205, 1}, { 0, 0},
-{206, 1}, { 0, 0},
-{207, 1}, { 0, 0},
-{208, 1}, { 0, 0},
-{209, 1}, { 0, 0},
-{210, 1}, { 0, 0},
-{211, 1}, { 0, 0},
-{212, 1}, { 0, 0},
-{213, 1}, { 0, 0},
-{ 0, 0}, {214, 1},
-{ 0, 0}, {215, 1},
-{ 0, 0}, {216, 1},
-{ 0, 0}, {217, 1},
-{ 0, 0}, {218, 1},
-{ 0, 0}, {219, 1},
-{ 0, 0}, {220, 1},
-{ 0, 0}, {221, 1},
-{ 0, 0}, { 0, 0},
-{222, 1}, { 0, 0},
-{223, 1}, { 0, 0},
-{224, 1}, { 0, 0},
-{225, 1}, { 0, 0},
-{ 0, 0}, {226, 1},
-{ 0, 0}, {227, 1},
-{ 0, 0}, {228, 1},
-{ 0, 0}, {229, 1},
-{ 0, 0}, { 0, 0},
-{230, 1}, { 0, 0},
-{231, 1}, { 0, 0},
-{232, 1}, { 0, 0},
-{233, 1}, { 0, 0},
-{ 0, 0}, {234, 1},
-{ 0, 0}, {235, 1},
-{ 0, 0}, { 0, 0},
-{236, 1}, { 0, 0},
-{237, 1}, { 0, 0},
-{238, 1}, { 0, 0},
-{ 0, 0}, {239, 1},
-{ 0, 0}, {240, 1},
-{ 0, 0}, {241, 1},
-{ 0, 0}, { 0, 0},
-{242, 1}, { 0, 0},
-{243, 1}, { 0, 0},
-{ 0, 0}, {244, 1},
-{ 0, 0}, {245, 1},
-{ 0, 0}, { 0, 0},
-{246, 1}, { 0, 0},
-{247, 1}, { 0, 0},
-{ 0, 0}, {248, 1},
-{ 0, 0}, {249, 1},
-{ 0, 0}, { 0, 0},
-{250, 1}, { 0, 0},
-{251, 1}, { 0, 0},
-{ 0, 0}, {252, 1},
-{ 0, 0}, {253, 1},
-{ 0, 0}, { 0, 0},
-{254, 1}, { 0, 0},
-{ 0, 0}, {255, 1},
-
-};
-
-
-
-#endif
diff --git a/drivers/video/samsung_duallcd/s6e8aa1.c b/drivers/video/samsung_duallcd/s6e8aa1.c
deleted file mode 100644
index af61bb6..0000000
--- a/drivers/video/samsung_duallcd/s6e8aa1.c
+++ /dev/null
@@ -1,599 +0,0 @@
-/* linux/drivers/video/samsung/s3cfb_s6e8aa0.c
- *
- * MIPI-DSI based AMS529HA01 AMOLED lcd panel driver.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
-*/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/gpio.h>
-#include <linux/workqueue.h>
-#include <linux/backlight.h>
-#include <linux/lcd.h>
-#include <plat/gpio-cfg.h>
-#include <plat/regs-dsim.h>
-#include <mach/dsim.h>
-#include <mach/mipi_ddi.h>
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#include "s5p-dsim.h"
-#include "s3cfb.h"
-
-#include "s6e8aa1_param.h"
-
-#define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL)
-
-#define MIN_BRIGHTNESS 0
-#define MAX_BRIGHTNESS 255
-#define MAX_GAMMA 300
-#define DEFAULT_BRIGHTNESS 160
-#define DEFAULT_GAMMA_LEVEL 0
-
-#define LDI_ID_REG 0xD1
-#define LDI_ID_LEN 3
-
-#define LDI_MTP_ADDR 0xCB
-#define LDI_MTP_LENGTH 63
-
-struct lcd_info {
- unsigned int bl;
- unsigned int auto_brightness;
- unsigned int acl_enable;
- unsigned int cur_acl;
- unsigned int current_bl;
- unsigned int current_elvss;
-
- unsigned int ldi_enable;
- unsigned int power;
- struct mutex lock;
- struct mutex bl_lock;
-
- struct device *dev;
- struct lcd_device *ld;
- struct backlight_device *bd;
- struct lcd_platform_data *lcd_pd;
- struct early_suspend early_suspend;
-
- unsigned char id[LDI_ID_LEN];
-
- unsigned char **gamma_table;
- unsigned char **elvss_table;
-
- unsigned int irq;
- unsigned int connected;
-
-};
-
-static struct mipi_ddi_platform_data *ddi_pd;
-
-static int s6e8ax0_write(struct lcd_info *lcd, const unsigned char *seq, int len)
-{
- int size;
- const unsigned char *wbuf;
-
- if (!lcd->connected)
- return 0;
-
- mutex_lock(&lcd->lock);
-
- size = len;
- wbuf = seq;
-
- if (size == 1)
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_WR_NO_PARA, wbuf[0], 0);
- else if (size == 2)
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_WR_1_PARA, wbuf[0], wbuf[1]);
- else
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_LONG_WR, (unsigned int)wbuf, size);
-
- mutex_unlock(&lcd->lock);
-
- return 0;
-}
-
-static int _s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf)
-{
- int ret = 0;
-
- if (!lcd->connected)
- return ret;
-
- mutex_lock(&lcd->lock);
-
- if (ddi_pd->cmd_read)
- ret = ddi_pd->cmd_read(ddi_pd->dsim_base, addr, count, buf);
-
- mutex_unlock(&lcd->lock);
-
- return ret;
-}
-
-static int s6e8ax0_set_link(void *pd, unsigned int dsim_base,
- unsigned char (*cmd_write) (unsigned int dsim_base, unsigned int data0,
- unsigned int data1, unsigned int data2),
- int (*cmd_read) (u32 reg_base, u8 addr, u16 count, u8 *buf))
-{
- struct mipi_ddi_platform_data *temp_pd = NULL;
-
- temp_pd = (struct mipi_ddi_platform_data *) pd;
- if (temp_pd == NULL) {
- printk(KERN_ERR "mipi_ddi_platform_data is null.\n");
- return -EPERM;
- }
-
- ddi_pd = temp_pd;
-
- ddi_pd->dsim_base = dsim_base;
-
- if (cmd_write)
- ddi_pd->cmd_write = cmd_write;
- else
- printk(KERN_WARNING "cmd_write function is null.\n");
-
- if (cmd_read)
- ddi_pd->cmd_read = cmd_read;
- else
- printk(KERN_WARNING "cmd_read function is null.\n");
-
- return 0;
-}
-
-static int s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf, u8 retry_cnt)
-{
- int ret = 0;
-
-read_retry:
- ret = _s6e8ax0_read(lcd, addr, count, buf);
- if (!ret) {
- if (retry_cnt) {
- printk(KERN_WARNING "[WARN:LCD] %s : retry cnt : %d\n", __func__, retry_cnt);
- retry_cnt--;
- goto read_retry;
- } else
- printk(KERN_ERR "[ERROR:LCD] %s : 0x%02x read failed\n", __func__, addr);
- }
-
- return ret;
-}
-
-static int s6e8ax0_ldi_init(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_APPLY_MTP_KEY_ENABLE, ARRAY_SIZE(SEQ_APPLY_MTP_KEY_ENABLE));
- s6e8ax0_write(lcd, SEQ_SLEEP_OUT, ARRAY_SIZE(SEQ_SLEEP_OUT));
- msleep(22);
-
- s6e8ax0_write(lcd, SEQ_PANEL_CONDITION_SET, ARRAY_SIZE(SEQ_PANEL_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_DISPLAY_CONDITION_SET, ARRAY_SIZE(SEQ_DISPLAY_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_GAMMA_CONDITION_SET, ARRAY_SIZE(SEQ_GAMMA_CONDITION_SET));
- s6e8ax0_write(lcd, SEQ_GAMMA_UPDATE, ARRAY_SIZE(SEQ_GAMMA_UPDATE));
-
- s6e8ax0_write(lcd, SEQ_ETC_SOURCE_CONTROL, ARRAY_SIZE(SEQ_ETC_SOURCE_CONTROL));
- s6e8ax0_write(lcd, SEQ_ETC_PENTILE_CONTROL, ARRAY_SIZE(SEQ_ETC_PENTILE_CONTROL));
- s6e8ax0_write(lcd, SEQ_ELVSS_CONTROL, ARRAY_SIZE(SEQ_ELVSS_CONTROL));
- s6e8ax0_write(lcd, SEQ_ETC_NVM_SETTING, ARRAY_SIZE(SEQ_ETC_NVM_SETTING));
-
- return ret;
-}
-
-static int s6e8ax0_ldi_enable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPLAY_ON, ARRAY_SIZE(SEQ_DISPLAY_ON));
-
- return ret;
-}
-
-static int s6e8ax0_ldi_disable(struct lcd_info *lcd)
-{
- int ret = 0;
-
- s6e8ax0_write(lcd, SEQ_DISPLAY_OFF, ARRAY_SIZE(SEQ_DISPLAY_OFF));
- s6e8ax0_write(lcd, SEQ_STANDBY_ON, ARRAY_SIZE(SEQ_STANDBY_ON));
-
- return ret;
-}
-
-static int s6e8ax0_power_on(struct lcd_info *lcd)
-{
- int ret = 0;
- struct lcd_platform_data *pd = NULL;
- pd = lcd->lcd_pd;
-
- /* dev_info(&lcd->ld->dev, "%s\n", __func__); */
-
- ret = s6e8ax0_ldi_init(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to initialize ldi.\n");
- goto err;
- }
-
- msleep(120);
-
- ret = s6e8ax0_ldi_enable(lcd);
- if (ret) {
- dev_err(&lcd->ld->dev, "failed to enable ldi.\n");
- goto err;
- }
-
- lcd->ldi_enable = 1;
-
- /* update_brightness(lcd, 1); */
-err:
- return ret;
-}
-
-static int s6e8ax0_power_off(struct lcd_info *lcd)
-{
- int ret = 0;
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- lcd->ldi_enable = 0;
-
- ret = s6e8ax0_ldi_disable(lcd);
-
- msleep(135);
-
- return ret;
-}
-
-static int s6e8ax0_power(struct lcd_info *lcd, int power)
-{
- int ret = 0;
-
- if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_on(lcd);
- else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
- ret = s6e8ax0_power_off(lcd);
-
- if (!ret)
- lcd->power = power;
-
- return ret;
-}
-
-static int s6e8ax0_set_power(struct lcd_device *ld, int power)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
- power != FB_BLANK_NORMAL) {
- dev_err(&lcd->ld->dev, "power value should be 0, 1 or 4.\n");
- return -EINVAL;
- }
-
- return s6e8ax0_power(lcd, power);
-}
-
-static int s6e8ax0_get_power(struct lcd_device *ld)
-{
- struct lcd_info *lcd = lcd_get_data(ld);
-
- return lcd->power;
-}
-
-static int s6e8ax0_set_brightness(struct backlight_device *bd)
-{
- int ret = 0;
- int brightness = bd->props.brightness;
- struct lcd_info *lcd = bl_get_data(bd);
-
- /* dev_info(&lcd->ld->dev, "%s: brightness=%d\n", __func__, brightness); */
-
- if (brightness < MIN_BRIGHTNESS ||
- brightness > bd->props.max_brightness) {
- dev_err(&bd->dev, "lcd brightness should be %d to %d. now %d\n",
- MIN_BRIGHTNESS, MAX_BRIGHTNESS, brightness);
- return -EINVAL;
- }
-
- if (lcd->ldi_enable) {
- /* ret = update_brightness(lcd, 0); */
- if (ret < 0) {
- dev_err(lcd->dev, "err in %s\n", __func__);
- return -EINVAL;
- }
- }
-
- return ret;
-}
-
-static int s6e8ax0_check_fb(struct lcd_device *ld, struct fb_info *fb)
-{
- struct s3cfb_window *win = fb->par;
- struct lcd_info *lcd = lcd_get_data(ld);
-
- dev_info(&lcd->ld->dev, "%s, fb%d\n", __func__, win->id);
-
- return 0;
-}
-
-static struct lcd_ops s6e8ax0_lcd_ops = {
- .set_power = s6e8ax0_set_power,
- .get_power = s6e8ax0_get_power,
- .check_fb = s6e8ax0_check_fb,
-};
-
-static const struct backlight_ops s6e8ax0_backlight_ops = {
- .update_status = s6e8ax0_set_brightness,
-};
-
-static ssize_t power_reduce_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->acl_enable);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t power_reduce_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->acl_enable != value) {
- dev_info(dev, "%s - %d, %d\n", __func__, lcd->acl_enable, value);
- mutex_lock(&lcd->bl_lock);
- lcd->acl_enable = value;
- /* if (lcd->ldi_enable)
- s6e8ax0_set_acl(lcd); */
- mutex_unlock(&lcd->bl_lock);
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(power_reduce, 0664, power_reduce_show, power_reduce_store);
-
-static ssize_t lcd_type_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- char temp[15];
- sprintf(temp, "SMD_AMS480GZ01-0\n");
- strcat(buf, temp);
- return strlen(buf);
-}
-
-static DEVICE_ATTR(lcd_type, 0444, lcd_type_show, NULL);
-
-static ssize_t auto_brightness_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- char temp[3];
-
- sprintf(temp, "%d\n", lcd->auto_brightness);
- strcpy(buf, temp);
-
- return strlen(buf);
-}
-
-static ssize_t auto_brightness_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
- int value;
- int rc;
-
- rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
- if (rc < 0)
- return rc;
- else {
- if (lcd->auto_brightness != value) {
- dev_info(dev, "%s - %d, %d\n", __func__, lcd->auto_brightness, value);
- mutex_lock(&lcd->bl_lock);
- lcd->auto_brightness = value;
- mutex_unlock(&lcd->bl_lock);
- /* if (lcd->ldi_enable)
- update_brightness(lcd, 0); */
- }
- }
- return size;
-}
-
-static DEVICE_ATTR(auto_brightness, 0644, auto_brightness_show, auto_brightness_store);
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-struct lcd_info *g_lcd;
-
-void s6e8ax0_early_suspend(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- set_dsim_lcd_enabled(0);
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- return ;
-}
-
-void s6e8ax0_late_resume(void)
-{
- struct lcd_info *lcd = g_lcd;
-
- dev_info(&lcd->ld->dev, "+%s\n", __func__);
- s6e8ax0_power(lcd, FB_BLANK_UNBLANK);
- dev_info(&lcd->ld->dev, "-%s\n", __func__);
-
- set_dsim_lcd_enabled(1);
-
- return ;
-}
-#endif
-
-static int s6e8ax0_read_mtp(struct lcd_info *lcd, u8 *mtp_data)
-{
- int ret, i;
-
- for (i = 0; i < 3; i++)
- ret = s6e8ax0_read(lcd, LDI_MTP_ADDR+i, LDI_MTP_LENGTH, mtp_data, 0);
-
- return ret;
-}
-
-static void s6e8ax0_read_id(struct lcd_info *lcd, u8 *buf)
-{
- int ret = 0;
-
- ret = s6e8ax0_read(lcd, LDI_ID_REG, LDI_ID_LEN, buf, 3);
- if (!ret) {
- lcd->connected = 0;
- dev_info(&lcd->ld->dev, "panel is not connected well\n");
- }
-}
-
-static int s6e8ax0_probe(struct device *dev)
-{
- int ret = 0;
- struct lcd_info *lcd;
- u8 mtp_data[LDI_MTP_LENGTH] = {0,};
-
- lcd = kzalloc(sizeof(struct lcd_info), GFP_KERNEL);
- if (!lcd) {
- pr_err("failed to allocate for lcd\n");
- ret = -ENOMEM;
- goto err_alloc;
- }
-
- g_lcd = lcd;
-
- lcd->ld = lcd_device_register("panel", dev, lcd, &s6e8ax0_lcd_ops);
- if (IS_ERR(lcd->ld)) {
- pr_err("failed to register lcd device\n");
- ret = PTR_ERR(lcd->ld);
- goto out_free_lcd;
- }
-
- lcd->bd = backlight_device_register("panel", dev, lcd, &s6e8ax0_backlight_ops, NULL);
- if (IS_ERR(lcd->bd)) {
- pr_err("failed to register backlight device\n");
- ret = PTR_ERR(lcd->bd);
- goto out_free_backlight;
- }
-
- lcd->dev = dev;
- lcd->bd->props.max_brightness = MAX_BRIGHTNESS;
- lcd->bd->props.brightness = DEFAULT_BRIGHTNESS;
- lcd->bl = DEFAULT_GAMMA_LEVEL;
- lcd->current_bl = lcd->bl;
-
- lcd->acl_enable = 0;
- lcd->cur_acl = 0;
-
- lcd->power = FB_BLANK_UNBLANK;
- lcd->ldi_enable = 1;
- lcd->connected = 1;
- lcd->auto_brightness = 0;
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_power_reduce);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->ld->dev, &dev_attr_lcd_type);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- ret = device_create_file(&lcd->bd->dev, &dev_attr_auto_brightness);
- if (ret < 0)
- dev_err(&lcd->ld->dev, "failed to add sysfs entries, %d\n", __LINE__);
-
- dev_set_drvdata(dev, lcd);
-
- mutex_init(&lcd->lock);
- mutex_init(&lcd->bl_lock);
-
- s6e8ax0_read_id(lcd, lcd->id);
-
- dev_info(&lcd->ld->dev, "ID: %x, %x, %x\n", lcd->id[0], lcd->id[1], lcd->id[2]);
-
- dev_info(&lcd->ld->dev, "lcd panel driver has been probed.\n");
-
- return 0;
-
-out_free_backlight:
- lcd_device_unregister(lcd->ld);
- kfree(lcd);
- return ret;
-
-out_free_lcd:
- kfree(lcd);
- return ret;
-
-err_alloc:
- return ret;
-}
-
-static int __devexit s6e8ax0_remove(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
- lcd_device_unregister(lcd->ld);
- backlight_device_unregister(lcd->bd);
- kfree(lcd);
-
- return 0;
-}
-
-/* Power down all displays on reboot, poweroff or halt. */
-static void s6e8ax0_shutdown(struct device *dev)
-{
- struct lcd_info *lcd = dev_get_drvdata(dev);
-
- dev_info(&lcd->ld->dev, "%s\n", __func__);
-
- s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
-}
-
-static struct mipi_lcd_driver s6e8ax0_mipi_driver = {
- .name = "s6e8aa0",
- .set_link = s6e8ax0_set_link,
- .probe = s6e8ax0_probe,
- .remove = __devexit_p(s6e8ax0_remove),
- .shutdown = s6e8ax0_shutdown,
-};
-
-static int s6e8ax0_init(void)
-{
- return s5p_dsim_register_lcd_driver(&s6e8ax0_mipi_driver);
-}
-
-static void s6e8ax0_exit(void)
-{
- return;
-}
-
-module_init(s6e8ax0_init);
-module_exit(s6e8ax0_exit);
-
-MODULE_DESCRIPTION("MIPI-DSI S6E8AA0:AMS529HA01 (800x1280) Panel Driver");
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/samsung_duallcd/s6e8aa1_param.h b/drivers/video/samsung_duallcd/s6e8aa1_param.h
deleted file mode 100644
index 3232b88..0000000
--- a/drivers/video/samsung_duallcd/s6e8aa1_param.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef __S6E8AA1_PARAM_H__
-#define __S6E8AA1_PARAM_H__
-
-static const unsigned char SEQ_APPLY_MTP_KEY_ENABLE[] = {
- 0xF1,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_SLEEP_OUT[] = {
- 0x11,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET[] = {
- 0xF8,
- 0x3D, 0x35, 0x00, 0x00, 0x00, 0x94, 0x00, 0x3C, 0x7D, 0x08,
- 0x27, 0x08, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x7D,
- 0x00, 0x00, 0x00, 0x02, 0x08, 0x08, 0x23, 0x66, 0xC0, 0xC1,
- 0x01, 0x81, 0xC1, 0x00, 0xC1, 0xF6, 0xF6, 0xC1
-};
-
-static const unsigned char SEQ_DISPLAY_CONDITION_SET[] = {
- 0xF2,
- 0x80, 0x03, 0x0D
-};
-
-static const unsigned char SEQ_GAMMA_CONDITION_SET[] = {
- 0xFA,
- 0x01, 0x40, 0x32, 0x49, 0xC5, 0xBB, 0xB6, 0xBC, 0xC5, 0xC0,
- 0xC9, 0xC9, 0xC5, 0xA0, 0x9F, 0x98, 0xB3, 0xB3, 0xAF, 0x00,
- 0xD0, 0x00, 0xCF, 0x00, 0xE7
-};
-
-static const unsigned char SEQ_GAMMA_UPDATE[] = {
- 0xF7, 0x03,
- 0x00
-};
-
-static const unsigned char SEQ_ETC_SOURCE_CONTROL[] = {
- 0xF6,
- 0x00, 0x02, 0x00
-};
-
-static const unsigned char SEQ_ETC_PENTILE_CONTROL[] = {
- 0xB6,
- 0x0C, 0x02, 0x03, 0x32, 0xFF, 0x44, 0x44, 0xC0, 0x10
-};
-
-static const unsigned char SEQ_ELVSS_CONTROL[] = {
- 0xB1,
- 0x08, 0x95, 0x41, 0xC4
-};
-
-static const unsigned char SEQ_ETC_NVM_SETTING[] = {
- 0xD9,
- 0x14, 0x40, 0x0C, 0xCB, 0xCE, 0x6E, 0xC4, 0x07, 0x40
-};
-
-static const unsigned char SEQ_DISPLAY_ON[] = {
- 0x29,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_DISPLAY_OFF[] = {
- 0x28,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_STANDBY_ON[] = {
- 0x01,
- 0x00, 0x00
-};
-
-#endif /* __S6E8AA1_PARAM_H__ */
diff --git a/drivers/video/samsung_duallcd/s6e8ab0_gamma.h b/drivers/video/samsung_duallcd/s6e8ab0_gamma.h
deleted file mode 100644
index b6c9b2d..0000000
--- a/drivers/video/samsung_duallcd/s6e8ab0_gamma.h
+++ /dev/null
@@ -1,210 +0,0 @@
-#ifndef __S6E8AB0_GAMMA_SM2_H__
-#define __S6E8AB0_GAMMA_SM2_H__
-
-#include "s6e8ab0_param.h"
-
-
-const unsigned char gamma22_30_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xE6, 0xDC, 0xF7, 0xDD, 0xD4,
- 0xD0, 0xE4, 0xDF, 0xD7, 0xD2, 0xD6, 0xCC, 0xDE,
- 0xDD, 0xDA, 0x00, 0x64, 0x00, 0x6A, 0x00, 0x74
-};
-
-const unsigned char gamma22_40_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xED, 0xDD, 0xF6, 0xDE, 0xD5,
- 0xCF, 0xE6, 0xE3, 0xDB, 0xCF, 0xD3, 0xCB, 0xDC,
- 0xD9, 0xD3, 0x00, 0x6B, 0x00, 0x73, 0x00, 0x7D,
-};
-
-const unsigned char gamma22_50_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xEF, 0xE1, 0xEE, 0xDE, 0xD6,
- 0xCD, 0xE6, 0xE6, 0xE0, 0xCC, 0xCF, 0xC5, 0xDA,
- 0xD8, 0xD3, 0x00, 0x72, 0x00, 0x79, 0x00, 0x84,
-};
-
-const unsigned char gamma22_60_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF2, 0xE3, 0xEC, 0xDD, 0xD6,
- 0xCC, 0xE5, 0xE7, 0xE1, 0xCC, 0xCD, 0xC4, 0xD8,
- 0xD6, 0xD0, 0x00, 0x77, 0x00, 0x7F, 0x00, 0x8A,
-};
-
-const unsigned char gamma22_70_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF3, 0xE4, 0xE9, 0xDE, 0xD8,
- 0xCE, 0xE4, 0xE7, 0xE2, 0xCA, 0xCA, 0xBF, 0xD8,
- 0xD5, 0xD0, 0x00, 0x7C, 0x00, 0x85, 0x00, 0x90,
-};
-
-const unsigned char gamma22_80_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF3, 0xE4, 0xE7, 0xDE, 0xD9,
- 0xCE, 0xE3, 0xE7, 0xE2, 0xCA, 0xC9, 0xBE, 0xD5,
- 0xD3, 0xCE, 0x00, 0x81, 0x00, 0x8A, 0x00, 0x95,
-};
-
-const unsigned char gamma22_90_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF3, 0xE4, 0xE6, 0xDD, 0xD9,
- 0xCE, 0xE3, 0xE6, 0xE1, 0xC8, 0xC7, 0xBC, 0xD5,
- 0xD2, 0xCD, 0x00, 0x85, 0x00, 0x8F, 0x00, 0x9A,
-};
-
-const unsigned char gamma22_100_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF7, 0xE8, 0xEA, 0xDE, 0xDA,
- 0xCF, 0xE4, 0xE7, 0xE2, 0xC7, 0xC6, 0xBD, 0xD2,
- 0xCF, 0xC7, 0x00, 0x89, 0x00, 0x94, 0x00, 0x9F,
-};
-
-const unsigned char gamma22_105_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF4, 0xE5, 0xE4, 0xDD, 0xDB,
- 0xD0, 0xE2, 0xE6, 0xE1, 0xC8, 0xC5, 0xBA, 0xD2,
- 0xCF, 0xCA, 0x00, 0x8B, 0x00, 0x96, 0x00, 0xA1,
-};
-
-const unsigned char gamma22_110_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF4, 0xE5, 0xE4, 0xDD, 0xDA,
- 0xCF, 0xE3, 0xE6, 0xE2, 0xC6, 0xC4, 0xB9, 0xD2,
- 0xCF, 0xC9, 0x00, 0x8D, 0x00, 0x98, 0x00, 0xA3,
-};
-
-const unsigned char gamma22_120_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF4, 0xE5, 0xE3, 0xDD, 0xDB,
- 0xD0, 0xE2, 0xE5, 0xE1, 0xC5, 0xC3, 0xB7, 0xD1,
- 0xCE, 0xC9, 0x00, 0x91, 0x00, 0x9C, 0x00, 0xA7,
-};
-
-const unsigned char gamma22_130_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF4, 0xE6, 0xE2, 0xDD, 0xDC,
- 0xD1, 0xE2, 0xE5, 0xE1, 0xC4, 0xC2, 0xB6, 0xCF,
- 0xCB, 0xC6, 0x00, 0x95, 0x00, 0xA1, 0x00, 0xAC,
-};
-
-const unsigned char gamma22_140_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF4, 0xE6, 0xE1, 0xDC, 0xDC,
- 0xD1, 0xE2, 0xE4, 0xE0, 0xC3, 0xC0, 0xB4, 0xCF,
- 0xCB, 0xC6, 0x00, 0x98, 0x00, 0xA5, 0x00, 0xB0,
-};
-
-const unsigned char gamma22_150_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF7, 0xE8, 0xE4, 0xDC, 0xDD,
- 0xD3, 0xE3, 0xE5, 0xE0, 0xC3, 0xBF, 0xB6, 0xCB,
- 0xC9, 0xC1, 0x00, 0x9C, 0x00, 0xA9, 0x00, 0xB4,
-};
-
-const unsigned char gamma22_160_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF4, 0xE6, 0xDF, 0xDD, 0xDE,
- 0xD4, 0xE1, 0xE3, 0xDE, 0xC1, 0xBE, 0xB2, 0xCC,
- 0xC9, 0xC3, 0x00, 0x9F, 0x00, 0xAC, 0x00, 0xB8,
-};
-
-const unsigned char gamma22_170_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF4, 0xE6, 0xDF, 0xDC, 0xDE,
- 0xD4, 0xE0, 0xE2, 0xDD, 0xC0, 0xBD, 0xB1, 0xCB,
- 0xC8, 0xC2, 0x00, 0xA3, 0x00, 0xB0, 0x00, 0xBC,
-};
-
-const unsigned char gamma22_180_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF4, 0xE6, 0xDE, 0xDC, 0xDE,
- 0xD4, 0xDF, 0xE1, 0xDC, 0xC1, 0xBD, 0xB1, 0xC9,
- 0xC6, 0xC0, 0x00, 0xA6, 0x00, 0xB4, 0x00, 0xC0,
-};
-
-const unsigned char gamma22_190_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF3, 0xE6, 0xDD, 0xDC, 0xDE,
- 0xD5, 0xE1, 0xE2, 0xDE, 0xBE, 0xBB, 0xAE, 0xC8,
- 0xC5, 0xBF, 0x00, 0xAA, 0x00, 0xB8, 0x00, 0xC4,
-};
-
-const unsigned char gamma22_200_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF5, 0xE8, 0xDE, 0xDB, 0xDE,
- 0xD5, 0xE0, 0xE1, 0xDD, 0xBE, 0xBA, 0xAD, 0xC7,
- 0xC4, 0xBE, 0x00, 0xAD, 0x00, 0xBC, 0x00, 0xC8,
-};
-
-const unsigned char gamma22_205_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF5, 0xE8, 0xDE, 0xDB, 0xDF,
- 0xD6, 0xE0, 0xE0, 0xDB, 0xBE, 0xBA, 0xAE, 0xC7,
- 0xC4, 0xBE, 0x00, 0xAE, 0x00, 0xBD, 0x00, 0xC9,
-};
-
-const unsigned char gamma22_210_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF5, 0xE8, 0xDE, 0xDA, 0xDE,
- 0xD5, 0xE1, 0xE0, 0xDC, 0xBD, 0xBA, 0xAD, 0xC6,
- 0xC3, 0xBD, 0x00, 0xB0, 0x00, 0xBF, 0x00, 0xCB,
-};
-
-const unsigned char gamma22_220_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF4, 0xE8, 0xDD, 0xDB, 0xDE,
- 0xD5, 0xE0, 0xE0, 0xDC, 0xBC, 0xB9, 0xAC, 0xC5,
- 0xC1, 0xBB, 0x00, 0xB3, 0x00, 0xC3, 0x00, 0xCF,
-};
-
-const unsigned char gamma22_230_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF4, 0xE8, 0xDD, 0xDB, 0xDF,
- 0xD6, 0xDF, 0xDF, 0xDB, 0xBC, 0xB8, 0xAB, 0xC4,
- 0xC1, 0xBB, 0x00, 0xB6, 0x00, 0xC6, 0x00, 0xD2,
-};
-
-const unsigned char gamma22_240_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF4, 0xE8, 0xDD, 0xDB, 0xDF,
- 0xD6, 0xDF, 0xDE, 0xDA, 0xBB, 0xB8, 0xAB, 0xC2,
- 0xBF, 0xB9, 0x00, 0xBA, 0x00, 0xCA, 0x00, 0xD6,
-};
-
-const unsigned char gamma22_250_sm2[GAMMA_PARAM_SIZE] = {
- 0xFA,
- 0x1F, 0x1F, 0x43, 0xF7, 0xEC, 0xE1, 0xDB, 0xDF,
- 0xD7, 0xE0, 0xDF, 0xDA, 0xBC, 0xB8, 0xAD, 0xC2,
- 0xBF, 0xB7, 0x00, 0xBA, 0x00, 0xCB, 0x00, 0xD7,
-};
-
-
-const unsigned char *gamma22_table_sm2[GAMMA_MAX] = {
- gamma22_30_sm2,
- gamma22_40_sm2,
- gamma22_50_sm2,
- gamma22_60_sm2,
- gamma22_70_sm2,
- gamma22_80_sm2,
- gamma22_90_sm2,
- gamma22_100_sm2,
- gamma22_110_sm2,
- gamma22_120_sm2,
- gamma22_130_sm2,
- gamma22_140_sm2,
- gamma22_150_sm2,
- gamma22_160_sm2,
- gamma22_170_sm2,
- gamma22_180_sm2,
- gamma22_190_sm2,
- gamma22_200_sm2,
- gamma22_210_sm2,
- gamma22_220_sm2,
- gamma22_230_sm2,
- gamma22_240_sm2,
- gamma22_250_sm2,
-};
-
-
-#endif /* __S6E8AB0_GAMMA_SM2_H__ */
diff --git a/drivers/video/samsung_duallcd/s6e8ab0_param.h b/drivers/video/samsung_duallcd/s6e8ab0_param.h
deleted file mode 100644
index 289c100..0000000
--- a/drivers/video/samsung_duallcd/s6e8ab0_param.h
+++ /dev/null
@@ -1,201 +0,0 @@
-#ifndef __S6E8AB0_PARAM_H__
-#define __S6E8AB0_PARAM_H__
-
-
-#define GAMMA_PARAM_SIZE 25
-#define ACL_PARAM_SIZE ARRAY_SIZE(SEQ_ACL_CUTOFF_40)
-#define ELVSS_PARAM_SIZE ARRAY_SIZE(SEQ_ELVSS_44)
-
-static const unsigned char SEQ_APPLY_LEVEL_2_KEY[] = {
- 0xF0,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_SLEEP_OUT[] = {
- 0x11,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_APPLY_MTP_KEY[] = {
- 0xF1,
- 0x5A, 0x5A
-};
-
-static const unsigned char SEQ_PANEL_CONDITION_SET[] = {
- 0xF8,
- 0x01, 0x8E, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x9E, 0x8D, 0x1F,
- 0x4E, 0x9C, 0x7D, 0x3F, 0x10, 0x00, 0x20, 0x02, 0x10, 0x7D,
- 0x10, 0x00, 0x00, 0x02, 0x08, 0x10, 0x34, 0x34, 0x34, 0xC0,
- 0xC1, 0x01, 0x00, 0xC1, 0x82, 0x00, 0xC8, 0xC1, 0xE3, 0x01
-};
-
-static const unsigned char SEQ_GAMMA_SELECT[] = {
- 0x26, 0x01,
- 0x00
-};
-
-static const unsigned char SEQ_GAMMA_UPDATE[] = {
- 0xF7, 0x03,
- 0x00
-};
-
-static const unsigned char SEQ_ETC_PWRCTL[] = {
- 0xF4,
- 0x0B, 0x0A, 0x06, 0x0B, 0x33, 0x02
-};
-
-static const unsigned char SEQ_ETC_SOURCE_CONTROL[] = {
- 0xF6,
- 0x04, 0x00, 0x02
-};
-
-static const unsigned char SEQ_ELVSS_DEFAULT[] = {
- 0xB1,
- 0x04, 0x00
-};
-
-static const unsigned char SEQ_ETC_NVM_SETTING[] = {
- 0xD9,
- 0x14, 0x5C, 0x20, 0x0C, 0x0F, 0x41, 0x00, 0x10, 0x11, 0x12,
- 0xA8, 0x55, 0x00, 0x00, 0x00, 0x00, 0x80, 0xCB, 0xED, 0x7F,
- 0xAF
-};
-
-static unsigned char SEQ_VREGOUT_SET[] = {
- 0xD1,
- 0xA2, 0x25, 0x44, 0x01, 0x0B, 0x00, 0x00, 0x40, 0x0D, 0x00,
- 0x00
-};
-
-static const unsigned char SEQ_DISPLAY_ON[] = {
- 0x29,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_DISPLAY_OFF[] = {
- 0x28,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_STANDBY_ON[] = {
- 0x10,
- 0x00, 0x00
-};
-
-static const unsigned char SEQ_POWER_CONTROL[] = {
- 0xF5,
- 0x50, 0x33, 0x33, 0x00, 0x43, 0x85
-};
-
-enum {
- GAMMA_30CD,
- GAMMA_40CD,
- GAMMA_50CD,
- GAMMA_60CD,
- GAMMA_70CD,
- GAMMA_80CD,
- GAMMA_90CD,
- GAMMA_100CD,
- GAMMA_110CD,
- GAMMA_120CD,
- GAMMA_130CD,
- GAMMA_140CD,
- GAMMA_150CD,
- GAMMA_160CD,
- GAMMA_170CD,
- GAMMA_180CD,
- GAMMA_190CD,
- GAMMA_200CD,
- GAMMA_210CD,
- GAMMA_220CD,
- GAMMA_230CD,
- GAMMA_240CD,
- GAMMA_250CD,
- GAMMA_MAX
-};
-
-static const unsigned int candela_table[GAMMA_MAX] = {
- 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,
- 130, 140, 150, 160, 170, 180, 190, 200, 210, 220,
- 230, 240, 250
-};
-
-enum {
- ACL_STATUS_0P = 0,
- ACL_STATUS_40P,
- ACL_STATUS_MAX
-};
-
-enum {
- ELVSS_28 = 0,
- ELVSS_34,
- ELVSS_40,
- ELVSS_44,
- ELVSS_STATUS_MAX,
-};
-
-const unsigned char SEQ_ACL_ON[] = {
- 0xC0, 0x01,
- 0x00
-};
-
-const unsigned char SEQ_ACL_OFF[] = {
- 0xC0, 0x00,
- 0x00
-};
-
-const unsigned char SEQ_ACL_CUTOFF_40[] = {
- 0xC1,
- 0x4D, 0x96, 0x1D, 0x00, 0x00,
- 0x04, 0xFF, 0x00, 0x00, 0x03,
- 0x1F, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x21, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x1D, 0x4D, 0x96
-};
-
-const unsigned char *ACL_CUTOFF_TABLE[ACL_STATUS_MAX] = {
- SEQ_ACL_OFF,
- SEQ_ACL_CUTOFF_40,
-};
-
-const unsigned char SEQ_ELVSS_ON[] = {
- 0xB1,
- 0x84, 0x15
-};
-
-const unsigned char SEQ_ELVSS_32[] = {
- 0xB2,
- 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
-};
-
-const unsigned char SEQ_ELVSS_38[] = {
- 0xB2,
- 0x08, 0x08, 0x08, 0x08, 0x08
-};
-
-const unsigned char SEQ_ELVSS_40[] = {
- 0xB2,
- 0x04, 0x04, 0x04, 0x04, 0x04
-};
-
-const unsigned char SEQ_ELVSS_44[] = {
- 0xB2,
- 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-const unsigned char *ELVSS_TABLE[ELVSS_STATUS_MAX] = {
- SEQ_ELVSS_32,
- SEQ_ELVSS_38,
- SEQ_ELVSS_40,
- SEQ_ELVSS_44,
-};
-
-enum {
- LCD_TYPE_DEFAULT = 0,
- LCD_TYPE_A2_M3,
- LCD_TYPE_A2_SM2,
- LCD_TYPE_MAX,
-};
-
-#endif /* __S6E8AB0_PARAM_H__ */
diff --git a/drivers/video/samsung_duallcd/s6e8ab0_volt_tbl.h b/drivers/video/samsung_duallcd/s6e8ab0_volt_tbl.h
deleted file mode 100644
index c927c06..0000000
--- a/drivers/video/samsung_duallcd/s6e8ab0_volt_tbl.h
+++ /dev/null
@@ -1,550 +0,0 @@
-#ifndef __REF_VOLT_TABLE_H__
-#define __REF_VOLT_TABLE_H__
-
-const u32 v1_voltage_tbl[V1_VOLTAGE_COUNT] = {
-4999168, 4990976, 4982784, 4974592,
-4966400, 4957184, 4948992, 4940800,
-4932608, 4924416, 4916224, 4907008,
-4898816, 4890624, 4882432, 4874240,
-4865024, 4856832, 4848640, 4840448,
-4832256, 4823040, 4814848, 4806656,
-4798464, 4790272, 4781056, 4772864,
-4764672, 4756480, 4748288, 4739072,
-4730880, 4722688, 4714496, 4706304,
-4698112, 4688896, 4680704, 4672512,
-4664320, 4656128, 4646912, 4638720,
-4630528, 4622336, 4614144, 4604928,
-4596736, 4588544, 4580352, 4572160,
-4562944, 4554752, 4546560, 4538368,
-4530176, 4520960, 4512768, 4504576,
-4496384, 4488192, 4480000, 4470784,
-4462592, 4454400, 4446208, 4438016,
-4428800, 4420608, 4412416, 4404224,
-4396032, 4386816, 4378624, 4370432,
-4362240, 4354048, 4344832, 4336640,
-4328448, 4320256, 4312064, 4302848,
-4294656, 4286464, 4278272, 4270080,
-4261888, 4252672, 4244480, 4236288,
-4228096, 4219904, 4210688, 4202496,
-4194304, 4186112, 4177920, 4168704,
-4160512, 4152320, 4144128, 4135936,
-4126720, 4118528, 4110336, 4102144,
-4093952, 4085760, 4076544, 4068352,
-4060160, 4051968, 4043776, 4034560,
-4026368, 4018176, 4009984, 4001792,
-3992576, 3984384, 3976192, 3968000,
-3959808, 3950592, 3942400, 3934208,
-3926016, 3917824, 3908608, 3900416,
-3892224, 3884032, 3875840, 3867648,
-3858432, 3850240, 3842048, 3833856,
-3825664, 3816448, 3808256, 3800064,
-3791872, 3783680, 3774464, 3766272,
-3758080, 3749888,
-};
-
-const u32 cv20_dv320_ratio_tbl[V15_VOLTAGE_COUNT] = {
-64, 67, 70, 74,
-77, 80, 83, 86,
-90, 93, 96, 99,
-102, 106, 109, 112,
-115, 118, 122, 125,
-128, 131, 134, 138,
-141, 144, 147, 150,
-154, 157, 160, 163,
-166, 170, 173, 176,
-179, 182, 186, 189,
-192, 195, 198, 202,
-205, 208, 211, 214,
-218, 221, 224, 227,
-230, 234, 237, 240,
-243, 246, 250, 253,
-256, 259, 262, 266,
-269, 272, 275, 278,
-282, 285, 288, 291,
-294, 298, 301, 304,
-307, 310, 314, 317,
-320, 323, 326, 330,
-333, 336, 339, 342,
-346, 349, 352, 355,
-358, 362, 365, 368,
-371, 374, 378, 381,
-384, 387, 390, 394,
-397, 400, 403, 406,
-410, 413, 416, 419,
-422, 426, 429, 432,
-435, 438, 442, 445,
-448, 451, 454, 458,
-461, 464, 467, 470,
-474, 477, 480, 483,
-486, 490, 493, 496,
-499, 502, 506, 509,
-512, 515, 518, 522,
-525, 528, 531, 534,
-538, 541, 544, 547,
-550, 554, 557, 560,
-563, 566, 570, 573,
-576, 579, 582, 586,
-589, 592, 595, 598,
-602, 605, 608, 611,
-614, 618, 621, 624,
-627, 630, 634, 637,
-640, 643, 646, 650,
-653, 656, 659, 662,
-666, 669, 672, 675,
-678, 682, 685, 688,
-691, 694, 698, 701,
-704, 707, 710, 714,
-717, 720, 723, 726,
-730, 733, 736, 739,
-742, 746, 749, 752,
-755, 758, 762, 765,
-768, 771, 774, 778,
-781, 784, 787, 790,
-794, 797, 800, 803,
-806, 810, 813, 816,
-819, 822, 826, 829,
-832, 835, 838, 842,
-845, 848, 851, 854,
-858, 861, 864, 867,
-870, 874, 877, /* 880, */
-};
-
-
-const u32 cv64_dv320_ratio_tbl[V35_VOLTAGE_COUNT] = {
-205, 208, 211, 214,
-218, 221, 224, 227,
-230, 234, 237, 240,
-243, 246, 250, 253,
-256, 259, 262, 266,
-269, 272, 275, 278,
-282, 285, 288, 291,
-294, 298, 301, 304,
-307, 310, 314, 317,
-320, 323, 326, 330,
-333, 336, 339, 342,
-346, 349, 352, 355,
-358, 362, 365, 368,
-371, 374, 378, 381,
-384, 387, 390, 394,
-397, 400, 403, 406,
-410, 413, 416, 419,
-422, 426, 429, 432,
-435, 438, 442, 445,
-448, 451, 454, 458,
-461, 464, 467, 470,
-474, 477, 480, 483,
-486, 490, 493, 496,
-499, 502, 506, 509,
-512, 515, 518, 522,
-525, 528, 531, 534,
-538, 541, 544, 547,
-550, 554, 557, 560,
-563, 566, 570, 573,
-576, 579, 582, 586,
-589, 592, 595, 598,
-602, 605, 608, 611,
-614, 618, 621, 624,
-627, 630, 634, 637,
-640, 643, 646, 650,
-653, 656, 659, 662,
-666, 669, 672, 675,
-678, 682, 685, 688,
-691, 694, 698, 701,
-704, 707, 710, 714,
-717, 720, 723, 726,
-730, 733, 736, 739,
-742, 746, 749, 752,
-755, 758, 762, 765,
-768, 771, 774, 778,
-781, 784, 787, 790,
-794, 797, 800, 803,
-806, 810, 813, 816,
-819, 822, 826, 829,
-832, 835, 838, 842,
-845, 848, 851, 854,
-858, 861, 864, 867,
-870, 874, 877, 880,
-883, 886, 890, 893,
-896, 899, 902, 906,
-909, 912, 915, 918,
-922, 925, 928, 931,
-934, 938, 941, 944,
-947, 950, 954, 957,
-960, 963, 966, 970,
-973, 976, 979, 982,
-986, 989, 992, 995,
-998, 1002, 1005, 1008,
-1011, 1014, 1018, /* 1021, */
-};
-
-
-
-const u32 v255_voltage_tbl[V255_VOLTAGE_COUNT] = {
-4194304, 4186112, 4177920, 4168704,
-4160512, 4152320, 4144128, 4135936,
-4126720, 4118528, 4110336, 4102144,
-4093952, 4085760, 4076544, 4068352,
-4060160, 4051968, 4043776, 4034560,
-4026368, 4018176, 4009984, 4001792,
-3992576, 3984384, 3976192, 3968000,
-3959808, 3950592, 3942400, 3934208,
-3926016, 3917824, 3908608, 3900416,
-3892224, 3884032, 3875840, 3867648,
-3858432, 3850240, 3842048, 3833856,
-3825664, 3816448, 3808256, 3800064,
-3791872, 3783680, 3774464, 3766272,
-3758080, 3749888, 3741696, 3732480,
-3724288, 3716096, 3707904, 3699712,
-3690496, 3682304, 3674112, 3665920,
-3657728, 3649536, 3640320, 3632128,
-3623936, 3615744, 3607552, 3598336,
-3590144, 3581952, 3573760, 3565568,
-3556352, 3548160, 3539968, 3531776,
-3523584, 3514368, 3506176, 3497984,
-3489792, 3481600, 3472384, 3464192,
-3456000, 3447808, 3439616, 3431424,
-3422208, 3414016, 3405824, 3397632,
-3389440, 3380224, 3372032, 3363840,
-3355648, 3347456, 3338240, 3330048,
-3321856, 3313664, 3305472, 3296256,
-3288064, 3279872, 3271680, 3263488,
-3254272, 3246080, 3237888, 3229696,
-3221504, 3213312, 3204096, 3195904,
-3187712, 3179520, 3171328, 3162112,
-3153920, 3145728, 3137536, 3129344,
-3120128, 3111936, 3103744, 3095552,
-3087360, 3078144, 3069952, 3061760,
-3053568, 3045376, 3037184, 3027968,
-3019776, 3011584, 3003392, 2995200,
-2985984, 2977792, 2969600, 2961408,
-2953216, 2944000, 2935808, 2927616,
-2919424, 2911232, 2902016, 2893824,
-2885632, 2877440, 2869248, 2860032,
-2851840, 2843648, 2835456, 2827264,
-2819072, 2809856, 2801664, 2793472,
-2785280, 2777088, 2767872, 2759680,
-2751488, 2743296, 2735104, 2725888,
-2717696, 2709504, 2701312, 2693120,
-2683904, 2675712, 2667520, 2659328,
-2651136, 2641920, 2633728, 2625536,
-2617344, 2609152, 2600960, 2591744,
-2583552, 2575360, 2567168, 2558976,
-2549760, 2541568, 2533376, 2525184,
-2516992, 2507776, 2499584, 2491392,
-2483200, 2475008, 2465792, 2457600,
-2449408, 2441216, 2433024, 2423808,
-2415616, 2407424, 2399232, 2391040,
-2382848, 2373632, 2365440, 2357248,
-2349056, 2340864, 2331648, 2323456,
-2315264, 2307072, 2298880, 2289664,
-2281472, 2273280, 2265088, 2256896,
-2247680, 2239488, 2231296, 2223104,
-2214912, 2205696, 2197504, 2189312,
-2181120, 2172928, 2164736, 2155520,
-2147328, 2139136, 2130944, 2122752,
-2113536, 2105344, 2097152, 2088960,
-2080768, 2071552, 2063360, 2055168,
-2046976, 2038784, 2029568, 2021376,
-2013184, 2004992, 1996800, 1988608,
-1979392, 1971200, 1963008, 1954816,
-1946624, 1937408, 1929216, 1921024,
-1912832, 1904640, 1895424, 1887232,
-1879040, 1870848, 1862656, 1853440,
-1845248, 1837056, 1828864, 1820672,
-1811456, 1803264, 1795072, 1786880,
-1778688, 1770496, 1761280, 1753088,
-1744896, 1736704, 1728512, 1719296,
-1711104, 1702912, 1694720, 1686528,
-1677312, 1669120, 1660928, 1652736,
-1644544, 1635328, 1627136, 1618944,
-1610752, 1602560, 1593344, 1585152,
-1576960, 1568768, 1560576, 1552384,
-1543168, 1534976, 1526784, 1518592,
-1510400, 1501184, 1492992, 1484800,
-1476608, 1468416, 1459200, 1451008,
-1442816, 1434624, 1426432, 1417216,
-1409024, 1400832, 1392640, 1384448,
-1375232, 1367040, 1358848, 1350656,
-1342464, 1334272, 1325056, 1316864,
-1308672, 1300480, 1292288, 1283072,
-1274880, 1266688, 1258496, 1250304,
-1241088, 1232896, 1224704, 1216512,
-1208320, 1199104, 1190912, 1182720,
-1174528, 1166336, 1157120, 1148928,
-1140736, 1132544, 1124352, 1116160,
-1106944, 1098752, 1090560, 1082368,
-1074176, 1064960, 1056768, 1048576,
-1040384, 1032192, 1022976, 1014784,
-1006592, 998400, 990208, 980992,
-972800, 964608, 956416, 948224,
-940032, 930816,
-};
-
-
-const u32 gamma_22_tbl[256] = {
-0, 0, 0, 0,
-0, 0, 0, 0,
-1, 1, 1, 1,
-1, 1, 2, 2,
-2, 3, 3, 3,
-4, 4, 5, 5,
-6, 6, 7, 7,
-8, 9, 9, 10,
-11, 11, 12, 13,
-14, 15, 16, 16,
-17, 18, 19, 20,
-21, 23, 24, 25,
-26, 27, 28, 30,
-31, 32, 34, 35,
-36, 38, 39, 41,
-42, 44, 46, 47,
-49, 51, 52, 54,
-56, 58, 60, 61,
-63, 65, 67, 69,
-71, 73, 76, 78,
-80, 82, 84, 87,
-89, 91, 94, 96,
-99, 101, 104, 106,
-109, 111, 114, 117,
-119, 122, 125, 128,
-131, 133, 136, 139,
-142, 145, 148, 152,
-155, 158, 161, 164,
-168, 171, 174, 178,
-181, 184, 188, 191,
-195, 199, 202, 206,
-210, 213, 217, 221,
-225, 229, 233, 237,
-241, 245, 249, 253,
-257, 261, 265, 270,
-274, 278, 282, 287,
-291, 296, 300, 305,
-309, 314, 319, 323,
-328, 333, 338, 342,
-347, 352, 357, 362,
-367, 372, 377, 383,
-388, 393, 398, 404,
-409, 414, 420, 425,
-431, 436, 442, 447,
-453, 459, 464, 470,
-476, 482, 488, 494,
-499, 505, 512, 518,
-524, 530, 536, 542,
-549, 555, 561, 568,
-574, 580, 587, 593,
-600, 607, 613, 620,
-627, 634, 640, 647,
-654, 661, 668, 675,
-682, 689, 696, 704,
-711, 718, 725, 733,
-740, 747, 755, 762,
-770, 778, 785, 793,
-801, 808, 816, 824,
-832, 840, 848, 856,
-864, 872, 880, 888,
-896, 904, 913, 921,
-929, 938, 946, 955,
-963, 972, 980, 989,
-998, 1006, 1015, 1024,
-
-};
-
-
-const u32 gamma_250_gra_table[256] = {
-0, 1, 6, 15,
-27, 45, 67, 94,
-126, 163, 206, 254,
-308, 367, 432, 503,
-579, 662, 751, 846,
-947, 1054, 1167, 1287,
-1414, 1546, 1686, 1832,
-1984, 2144, 2310, 2482,
-2662, 2848, 3042, 3242,
-3449, 3664, 3885, 4113,
-4349, 4592, 4842, 5099,
-5364, 5635, 5915, 6201,
-6495, 6796, 7105, 7422,
-7746, 8077, 8416, 8763,
-9117, 9479, 9849, 10226,
-10612, 11005, 11405, 11814,
-12231, 12655, 13087, 13527,
-13976, 14432, 14896, 15368,
-15848, 16337, 16833, 17338,
-17850, 18371, 18900, 19437,
-19982, 20536, 21098, 21668,
-22247, 22834, 23429, 24032,
-24644, 25264, 25893, 26530,
-27176, 27830, 28493, 29164,
-29843, 30532, 31228, 31934,
-32648, 33370, 34101, 34841,
-35590, 36347, 37113, 37888,
-38671, 39463, 40264, 41074,
-41892, 42719, 43555, 44400,
-45254, 46117, 46989, 47869,
-48759, 49657, 50564, 51481,
-52406, 53340, 54283, 55236,
-56197, 57167, 58147, 59136,
-60133, 61140, 62156, 63181,
-64215, 65258, 66311, 67373,
-68444, 69524, 70613, 71712,
-72820, 73937, 75063, 76199,
-77344, 78499, 79662, 80835,
-82018, 83209, 84411, 85621,
-86841, 88071, 89309, 90558,
-91815, 93083, 94359, 95645,
-96941, 98246, 99561, 100885,
-102219, 103562, 104915, 106278,
-107650, 109032, 110423, 111824,
-113235, 114655, 116085, 117524,
-118974, 120433, 121901, 123380,
-124868, 126366, 127873, 129391,
-130918, 132455, 134001, 135558,
-137124, 138700, 140286, 141882,
-143488, 145103, 146729, 148364,
-150009, 151664, 153329, 155004,
-156689, 158384, 160088, 161803,
-163528, 165262, 167007, 168761,
-170526, 172301, 174085, 175880,
-177685, 179499, 181324, 183159,
-185004, 186859, 188724, 190600,
-192485, 194381, 196286, 198202,
-200128, 202064, 204011, 205967,
-207934, 209911, 211898, 213895,
-215903, 217920, 219948, 221987,
-224035, 226094, 228163, 230242,
-232332, 234432, 236542, 238663,
-240794, 242935, 245087, 247249,
-249421, 251604, 253797, 256000,
-};
-
-
-const struct str_flookup_table flookup_tbl[250] = {
-{ 0, 0}, { 1, 21},
-{ 21, 8}, { 29, 6},
-{ 35, 4}, { 39, 5},
-{ 44, 3}, { 47, 4},
-{ 51, 3}, { 54, 3},
-{ 57, 3}, { 60, 2},
-{ 62, 3}, { 65, 2},
-{ 67, 2}, { 69, 2},
-{ 71, 3}, { 74, 2},
-{ 76, 2}, { 78, 2},
-{ 80, 1}, { 81, 2},
-{ 83, 2}, { 85, 2},
-{ 87, 1}, { 88, 2},
-{ 90, 2}, { 92, 1},
-{ 93, 2}, { 95, 1},
-{ 96, 2}, { 98, 1},
-{ 99, 2}, {101, 1},
-{102, 1}, {103, 2},
-{105, 1}, {106, 1},
-{107, 2}, {109, 1},
-{110, 1}, {111, 2},
-{113, 1}, {114, 1},
-{115, 1}, {116, 1},
-{117, 2}, {119, 1},
-{120, 1}, {121, 1},
-{122, 1}, {123, 1},
-{124, 1}, {125, 1},
-{126, 2}, {128, 1},
-{129, 1}, {130, 1},
-{131, 1}, {132, 1},
-{133, 1}, {134, 1},
-{135, 1}, {136, 1},
-{137, 1}, {138, 1},
-{139, 1}, {140, 1},
-{141, 1}, {142, 1},
-{ 0, 0}, {143, 1},
-{144, 1}, {145, 1},
-{146, 1}, {147, 1},
-{148, 1}, {149, 1},
-{150, 1}, {151, 1},
-{ 0, 0}, {152, 1},
-{153, 1}, {154, 1},
-{155, 1}, {156, 1},
-{ 0, 0}, {157, 1},
-{158, 1}, {159, 1},
-{160, 1}, {161, 1},
-{ 0, 0}, {162, 1},
-{163, 1}, {164, 1},
-{165, 1}, { 0, 0},
-{166, 1}, {167, 1},
-{168, 1}, { 0, 0},
-{169, 1}, {170, 1},
-{171, 1}, { 0, 0},
-{172, 1}, {173, 1},
-{174, 1}, { 0, 0},
-{175, 1}, {176, 1},
-{177, 1}, { 0, 0},
-{178, 1}, {179, 1},
-{ 0, 0}, {180, 1},
-{181, 1}, { 0, 0},
-{182, 1}, {183, 1},
-{184, 1}, { 0, 0},
-{185, 1}, {186, 1},
-{ 0, 0}, {187, 1},
-{188, 1}, { 0, 0},
-{189, 1}, {190, 1},
-{ 0, 0}, {191, 1},
-{192, 1}, { 0, 0},
-{193, 1}, {194, 1},
-{ 0, 0}, {195, 1},
-{ 0, 0}, {196, 1},
-{197, 1}, { 0, 0},
-{198, 1}, {199, 1},
-{ 0, 0}, {200, 1},
-{ 0, 0}, {201, 1},
-{202, 1}, { 0, 0},
-{203, 1}, { 0, 0},
-{204, 1}, {205, 1},
-{ 0, 0}, {206, 1},
-{ 0, 0}, {207, 1},
-{208, 1}, { 0, 0},
-{209, 1}, { 0, 0},
-{210, 1}, {211, 1},
-{ 0, 0}, {212, 1},
-{ 0, 0}, {213, 1},
-{ 0, 0}, {214, 1},
-{215, 1}, { 0, 0},
-{216, 1}, { 0, 0},
-{217, 1}, { 0, 0},
-{218, 1}, {219, 1},
-{ 0, 0}, {220, 1},
-{ 0, 0}, {221, 1},
-{ 0, 0}, {222, 1},
-{ 0, 0}, {223, 1},
-{224, 1}, { 0, 0},
-{225, 1}, { 0, 0},
-{226, 1}, { 0, 0},
-{227, 1}, { 0, 0},
-{228, 1}, { 0, 0},
-{229, 1}, { 0, 0},
-{230, 1}, { 0, 0},
-{231, 1}, { 0, 0},
-{232, 1}, {233, 1},
-{ 0, 0}, {234, 1},
-{ 0, 0}, {235, 1},
-{ 0, 0}, {236, 1},
-{ 0, 0}, {237, 1},
-{ 0, 0}, {238, 1},
-{ 0, 0}, {239, 1},
-{ 0, 0}, {240, 1},
-{ 0, 0}, {241, 1},
-{ 0, 0}, {242, 1},
-{ 0, 0}, {243, 1},
-{ 0, 0}, {244, 1},
-{ 0, 0}, {245, 1},
-{ 0, 0}, {246, 1},
-{ 0, 0}, { 0, 0},
-{247, 1}, { 0, 0},
-{248, 1}, { 0, 0},
-{249, 1}, { 0, 0},
-{250, 1}, { 0, 0},
-{251, 1}, { 0, 0},
-{252, 1}, { 0, 0},
-{253, 1}, { 0, 0},
-{254, 1}, { 0, 0},
-/* { 0, 0}, {255, 1}, */
-};
-
-#endif
diff --git a/drivers/video/samsung_duallcd/smart_dimming.c b/drivers/video/samsung_duallcd/smart_dimming.c
deleted file mode 100644
index d356009..0000000
--- a/drivers/video/samsung_duallcd/smart_dimming.c
+++ /dev/null
@@ -1,989 +0,0 @@
-/* linux/drivers/video/samsung/smartdimming.c
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
-
- * Samsung Smart Dimming for OCTA
- *
- * Minwoo Kim, <minwoo7945.kim@samsung.com>
- *
-*/
-
-
-#include "smart_dimming.h"
-#include "s6e8aa0_volt_tbl.h"
-
-#define MTP_REVERSE 1
-#define VALUE_DIM_1000 1000
-#ifdef CONFIG_AID_DIMMING
-#define V1_255_div_1000 600000
-#define V1_255_calc_param (V1_255_div_1000 / VREG_OUT_1000)
-#endif
-
-#if defined(CONFIG_S6E8AA0_AMS529HA01)
-#define VREG_OUT_1000 4600
-#else
-#ifdef CONFIG_AID_DIMMING
-#define VREG_OUT_1000 4713
-#else
-#define VREG_OUT_1000 4600
-#endif
-#endif
-
-
-const u8 v1_offset_table[14] = {
- 47, 42, 37, 32,
- 27, 23, 19, 15,
- 12, 9, 6, 4,
- 2, 0
-};
-
-
-const u8 v15_offset_table[20] = {
- 66, 62, 58, 54,
- 50, 46, 43, 38,
- 34, 30, 27, 24,
- 21, 18, 15, 12,
- 9, 6, 3, 0,
-};
-
-
-const u8 range_table_count[IV_TABLE_MAX] = {
- 1, 14, 20, 24, 28, 84, 84, 1
-};
-
-
-const u32 table_radio[IV_TABLE_MAX] = {
- 0, 630, 468, 1365, 1170, 390, 390, 0
-};
-
-
-const u32 dv_value[IV_MAX] = {
- 0, 15, 35, 59, 87, 171, 255
-};
-
-
-const char color_name[3] = {'R', 'G', 'B'};
-
-
-const u8 *offset_table[IV_TABLE_MAX] = {
- NULL,
- v1_offset_table,
- v15_offset_table,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-const unsigned char gamma_300cd_23[] = {
- 0x0f, 0x0f, 0x0f, 0xee, 0xb4, 0xee,
- 0xcb, 0xc2, 0xc4, 0xda, 0xd7, 0xd5,
- 0xae, 0xaf, 0xa7, 0xc0, 0xc1, 0xbb,
- 0x00, 0x9f, 0x00, 0x95, 0x00, 0xd4,
-};
-
-const unsigned char gamma_300cd_33[] = {
- 0x0f, 0x00, 0x0f, 0xda, 0xc0, 0xe4,
- 0xc8, 0xc8, 0xc6, 0xd3, 0xd6, 0xd0,
- 0xab, 0xb2, 0xa6, 0xbf, 0xc2, 0xb9,
- 0x00, 0x93, 0x00, 0x86, 0x00, 0xd1,
-};
-
-const unsigned char gamma_300cd_43[] = {
- 0x1f, 0x1f, 0x1f, 0xe3, 0x69, 0xe0,
- 0xcc, 0xc1, 0xce, 0xd4, 0xd2, 0xd2,
- 0xae, 0xae, 0xa6, 0xbf, 0xc0, 0xb6,
- 0x00, 0xa3, 0x00, 0x90, 0x00, 0xd7,
-};
-
-const unsigned char gamma_300cd_53[] = {
- 0x1f, 0x1f, 0x1f, 0xe7, 0x7f, 0xe3,
- 0xcc, 0xc1, 0xd0, 0xd5, 0xd3, 0xd3,
- 0xae, 0xaf, 0xa8, 0xbe, 0xc0, 0xb7,
- 0x00, 0xa8, 0x00, 0x90, 0x00, 0xd3,
-};
-
-const unsigned char gamma_300cd_63[] = {
- 0x60, 0x10, 0x60, 0xb5, 0xd3, 0xbd,
- 0xb1, 0xd2, 0xb0, 0xc0, 0xdc, 0xc0,
- 0x94, 0xba, 0x91, 0xac, 0xc5, 0xa9,
- 0x00, 0xc2, 0x00, 0xb7, 0x00, 0xed,
-};
-
-const unsigned char gamma_300cd_73[] = {
- 0x1f, 0x1f, 0x1f, 0xed, 0xe6, 0xe7,
- 0xd1, 0xd3, 0xd4, 0xda, 0xd8, 0xd7,
- 0xb1, 0xaf, 0xab, 0xbd, 0xbb, 0xb8,
- 0x00, 0xd6, 0x00, 0xda, 0x00, 0xfa,
-};
-
-const unsigned char gamma_300cd_83[] = {
- 0x69, 0x5A, 0x6C, 0xA1, 0xB7, 0x9D,
- 0xAB, 0xB6, 0xAF, 0xB8, 0xC1, 0xB9,
- 0x8E, 0x96, 0x8B, 0xA6, 0xAC, 0xA4,
- 0x00, 0xD2, 0x00, 0xD3, 0x00, 0xF1
-};
-
-/* SM2 , DALI PANEL - Midas Universal board */
-const unsigned char gamma_300cd_4e[] = {
- 0x58, 0x1F, 0x63, 0xAC, 0xB4, 0x99,
- 0xAD, 0xBA, 0xA3, 0xC0, 0xCB, 0xBB,
- 0x93, 0x9F, 0x8B, 0xAD, 0xB4, 0xA7,
- 0x00, 0xBE, 0x00, 0xAB, 0x00, 0xE7,
-};
-
-/* SM2 C1/M0 4.8" - A*/
-const unsigned char gamma_300cd_20[] = {
- 0x43, 0x14, 0x45, 0xAD, 0xBE, 0xA9,
- 0xB0, 0xC3, 0xAF, 0xC1, 0xCD, 0xC0,
- 0x95, 0xA2, 0x91, 0xAC, 0xB5, 0xAA,
- 0x00, 0xB0, 0x00, 0xA0, 0x00, 0xCC,
-};
-
-/* SM2, C1/M0 4.8" - B*/
-const unsigned char gamma_300cd_40[] = {
- 0x44, 0x0F, 0x42, 0xAB, 0xC1, 0xAC,
- 0xAF, 0xC8, 0xB3, 0xC2, 0xD0, 0xC1,
- 0x97, 0xA9, 0x95, 0xB3, 0xBE, 0xB3,
- 0x00, 0x9C, 0x00, 0x85, 0x00, 0xB2,
-};
-
-/* SM2, C1/M0 4.8" - D*/
-const unsigned char gamma_300cd_60[] = {
- 0x3F, 0x12, 0x41, 0xB4, 0xCB, 0xB0,
- 0xB2, 0xC4, 0xB2, 0xC4, 0xCF, 0xC2,
- 0x9A, 0xA7, 0x97, 0xB2, 0xBA, 0xB0,
- 0x00, 0xA0, 0x00, 0x98, 0x00, 0xB7,
-};
-
-/* M3, DALI PANEL - Midas Universal board */
-const unsigned char gamma_300cd_2a[] = {
- 0x4A, 0x01, 0x4D, 0xBC, 0xF1, 0xC6,
- 0xB1, 0xD6, 0xB3, 0xC2, 0xDD, 0xC2,
- 0x96, 0xBD, 0x96, 0xAF, 0xC9, 0xAE,
- 0x00, 0xA5, 0x00, 0x91, 0x00, 0xC8,
-};
-
-const unsigned char gamma_300cd_29[] = {
- 0x4A, 0x01, 0x4D, 0xBC, 0xF1, 0xC6,
- 0xB1, 0xD6, 0xB3, 0xC2, 0xDD, 0xC2,
- 0x96, 0xBD, 0x96, 0xAF, 0xC9, 0xAE,
- 0x00, 0xA5, 0x00, 0x91, 0x00, 0xC8,
-};
-
-/* SM2, C1/M0 DALI Panel */
-const unsigned char gamma_300cd_8e[] = {
- 0x71, 0x31, 0x7B, 0xA4, 0xB6, 0x95,
- 0xA9, 0xBC, 0xA2, 0xBB, 0xC9, 0xB6,
- 0x91, 0xA3, 0x8B, 0xAD, 0xB6, 0xA9,
- 0x00, 0xD6, 0x00, 0xBE, 0x00, 0xFC,
-};
-
-/* SM2, C1/M0 Cellox Panel */
-const unsigned char gamma_300cd_ae[] = {
- 0x5F, 0x2E, 0x67, 0xAA, 0xC6, 0xAC,
- 0xB0, 0xC8, 0xBB, 0xBE, 0xCB, 0xBD,
- 0x97, 0xA5, 0x91, 0xAF, 0xB8, 0xAB,
- 0x00, 0xC2, 0x00, 0xBA, 0x00, 0xE2,
-};
-
-/* SM2, C1/M0 Cellox Panel */
-static const unsigned char gamma_300cd_d2[] = {
- 0x41, 0x0A, 0x47, 0xAB, 0xBE, 0xA8,
- 0xAF, 0xC5, 0xB7, 0xC3, 0xCC, 0xC3,
- 0x9A, 0xA3, 0x96, 0xB1, 0xB7, 0xAF,
- 0x00, 0xBD, 0x00, 0xAC, 0x00, 0xDE,
-};
-
-const unsigned char *gamma_300cd_list[GAMMA_300CD_MAX] = {
- gamma_300cd_23,
- gamma_300cd_33,
- gamma_300cd_43,
- gamma_300cd_53,
- gamma_300cd_63,
- gamma_300cd_73,
- gamma_300cd_83,
- gamma_300cd_20,
- gamma_300cd_2a,
- gamma_300cd_29,
- gamma_300cd_40,
- gamma_300cd_60,
- gamma_300cd_4e,
- gamma_300cd_8e,
- gamma_300cd_ae,
- gamma_300cd_d2,
-};
-
-const unsigned char gamma_id_list[GAMMA_300CD_MAX] = {
- 0x23, 0x33, 0x43, 0x53, 0x63, 0x73, 0x83, 0x20, 0x2a, 0x29, 0x40,\
- 0x60, 0x4e, 0x8e, 0xae, 0xd2
-};
-
-static s16 s9_to_s16(s16 v)
-{
- return (s16)(v << 7) >> 7;
-}
-
-
-u32 calc_v1_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- u32 ret = 0;
-
- ret = volt_table_v1[gamma] >> 10;
-
- return ret;
-}
-
-
-u32 calc_v15_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 20, DV :320 */
- int ret = 0;
- u32 v1, v35;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v35 = adjust_volt[rgb_index][AD_IV35];
- ratio = volt_table_cv_20_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1-v35)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v35_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 65, DV :320 */
- int ret = 0;
- u32 v1, v59;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v59 = adjust_volt[rgb_index][AD_IV59];
- ratio = volt_table_cv_65_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1-v59)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v50_v59_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 65, DV :320 */
- int ret = 0;
- u32 v1, v87;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v87 = adjust_volt[rgb_index][AD_IV87];
- ratio = volt_table_cv_65_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1-v87)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v87_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 65, DV :320 */
- int ret = 0;
- u32 v1, v171;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v171 = adjust_volt[rgb_index][AD_IV171];
- ratio = volt_table_cv_65_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1-v171)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v171_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 65, DV :320 */
- int ret = 0;
- u32 v1, v255;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v255 = adjust_volt[rgb_index][AD_IV255];
- ratio = volt_table_cv_65_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1-v255)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v255_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- u32 ret = 0;
-
- ret = volt_table_v255[gamma] >> 10;
-
- return ret;
-}
-
-
-u8 calc_voltage_table(struct str_smart_dim *smart, const u8 *mtp)
-{
- int c, i, j;
-#if defined(MTP_REVERSE)
- int offset1 = 0;
-#endif
- int offset = 0;
- s16 t1, t2;
- s16 adjust_mtp[CI_MAX][IV_MAX];
- /* u32 adjust_volt[CI_MAX][AD_IVMAX] = {0, }; */
- u8 range_index;
- u8 table_index = 0;
-
- u32 v1, v2;
- u32 ratio;
-
- u32(*calc_volt[IV_MAX])(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX]) = {
- calc_v1_volt,
- calc_v15_volt,
- calc_v35_volt,
- calc_v50_v59_volt,
- calc_v87_volt,
- calc_v171_volt,
- calc_v255_volt,
- };
-
- u8 calc_seq[6] = {IV_1, IV_171, IV_87, IV_59, IV_35, IV_15};
- u8 ad_seq[6] = {AD_IV1, AD_IV171, AD_IV87, AD_IV59, AD_IV35, AD_IV15};
-
- memset(adjust_mtp, 0, sizeof(adjust_mtp));
-
- for (c = CI_RED; c < CI_MAX; c++) {
- offset = IV_255*CI_MAX+c*2;
-#if defined(MTP_REVERSE)
- offset1 = IV_255*(c+1)+(c*2);
- t1 = s9_to_s16(mtp[offset1]<<8|mtp[offset1+1]);
-#else
- t1 = s9_to_s16(mtp[offset]<<8|mtp[offset+1]);
-#endif
- t2 = s9_to_s16(smart->default_gamma[offset]<<8|
- smart->default_gamma[offset+1]) + t1;
- smart->mtp[c][IV_255] = t1;
- adjust_mtp[c][IV_255] = t2;
- smart->adjust_volt[c][AD_IV255] = calc_volt[IV_255](t2, c, smart->adjust_volt);
-
- /* for V0 All RGB Voltage Value is Reference Voltage */
- smart->adjust_volt[c][AD_IV0] = VREG_OUT_1000;
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- for (i = IV_1; i < IV_255; i++) {
-#if defined(MTP_REVERSE)
- t1 = (s8)mtp[(calc_seq[i])+(c*8)];
-#else
- t1 = (s8)mtp[CI_MAX*calc_seq[i]+c];
-#endif
- t2 = smart->default_gamma[CI_MAX*calc_seq[i]+c] + t1;
-
- smart->mtp[c][calc_seq[i]] = t1;
- adjust_mtp[c][calc_seq[i]] = t2;
- smart->adjust_volt[c][ad_seq[i]] = calc_volt[calc_seq[i]](t2, c, smart->adjust_volt);
- }
- }
-
- for (i = 0; i < AD_IVMAX; i++) {
- for (c = CI_RED; c < CI_MAX; c++)
- smart->ve[table_index].v[c] = smart->adjust_volt[c][i];
-
- range_index = 0;
- for (j = table_index+1; j < table_index+range_table_count[i]; j++) {
- for (c = CI_RED; c < CI_MAX; c++) {
- if (smart->t_info[i].offset_table != NULL)
- ratio = smart->t_info[i].offset_table[range_index] * smart->t_info[i].rv;
- else
- ratio = (range_table_count[i]-(range_index+1)) * smart->t_info[i].rv;
-
- v1 = smart->adjust_volt[c][i+1] << 15;
- v2 = (smart->adjust_volt[c][i] - smart->adjust_volt[c][i+1])*ratio;
- smart->ve[j].v[c] = ((v1+v2) >> 15);
- }
- range_index++;
- }
- table_index = j;
- }
-
-#if 0
- printk(KERN_INFO "++++++++++++++++++++++++++++++ MTP VALUE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : 0x%08x(%04d)", color_name[c], smart->mtp[c][i], smart->mtp[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ ADJUST VALUE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : 0x%08x(%04d)", color_name[c],
- adjust_mtp[c][i], adjust_mtp[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ ADJUST VOLTAGE ++++++++++++++++++++++++++++++\n");
- for (i = AD_IV0; i < AD_IVMAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : %04dV", color_name[c], smart->adjust_volt[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++++++++++ VOLTAGE TABLE ++++++++++++++++++++++++++++++++++++++\n");
- for (i = 0; i < 256; i++) {
- printk("Gray Level : %03d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : %04dV", color_name[c], smart->ve[i].v[c]);
- printk("\n");
- }
-#endif
- return 0;
-}
-
-
-int init_table_info(struct str_smart_dim *smart)
-{
- int i;
- int offset = 0;
-
- for (i = 0; i < IV_TABLE_MAX; i++) {
- smart->t_info[i].count = (u8)range_table_count[i];
- smart->t_info[i].offset_table = offset_table[i];
- smart->t_info[i].rv = table_radio[i];
- offset += range_table_count[i];
- }
- smart->flooktbl = flookup_table;
- smart->g300_gra_tbl = gamma_300_gra_table;
-#ifdef CONFIG_AID_DIMMING
- smart->gamma_table[G_21] = gamma_21_table;
- smart->gamma_table[G_215] = gamma_215_table;
- smart->gamma_table[G_22] = gamma_22_table;
-#else
- smart->g22_tbl = gamma_22_table;
-#endif
-
- for (i = 0; i < GAMMA_300CD_MAX; i++) {
- if (smart->panelid[1] == gamma_id_list[i])
- break;
- }
-
- if (i >= GAMMA_300CD_MAX) {
- printk(KERN_ERR "[SMART DIMMING-WARNING] %s Can't found default gamma table\n", __func__);
- smart->default_gamma = gamma_300cd_list[GAMMA_300CD_MAX-1];
- } else
- smart->default_gamma = gamma_300cd_list[i];
-
-#if 0
- for (i = 0; i < 24; i++)
- printk(KERN_INFO "Index : %d : %x\n", i, smart->default_gamma[i]);
-#endif
-
- return 0;
-}
-
-
-u32 lookup_vtbl_idx(struct str_smart_dim *smart, u32 gamma)
-{
- u32 lookup_index;
- u16 table_count, table_index;
- u32 gap, i;
- u32 minimum = smart->g300_gra_tbl[255];
- u32 candidate = 0;
- u32 offset = 0;
-
- /* printk("Input Gamma Value : %d\n", gamma); */
-
- lookup_index = (gamma/VALUE_DIM_1000)+1;
- if (lookup_index > MAX_GRADATION) {
- printk(KERN_ERR "ERROR Wrong input value LOOKUP INDEX : %d\n", lookup_index);
- return 0;
- }
-
- /* printk("lookup index : %d\n",lookup_index); */
-
- if (smart->flooktbl[lookup_index].count) {
- if (smart->flooktbl[lookup_index-1].count) {
- table_index = smart->flooktbl[lookup_index-1].entry;
- table_count = smart->flooktbl[lookup_index].count + smart->flooktbl[lookup_index-1].count;
- } else {
- table_index = smart->flooktbl[lookup_index].entry;
- table_count = smart->flooktbl[lookup_index].count;
- }
- } else {
- offset += 1;
- while (!(smart->flooktbl[lookup_index+offset].count || smart->flooktbl[lookup_index-offset].count))
- offset++;
-
- if (smart->flooktbl[lookup_index-offset].count)
- table_index = smart->flooktbl[lookup_index-offset].entry;
- else
- table_index = smart->flooktbl[lookup_index+offset].entry;
- table_count = smart->flooktbl[lookup_index+offset].count + smart->flooktbl[lookup_index-offset].count;
- }
-
-
- for (i = 0; i < table_count; i++) {
- if (gamma > smart->g300_gra_tbl[table_index])
- gap = gamma - smart->g300_gra_tbl[table_index];
- else
- gap = smart->g300_gra_tbl[table_index] - gamma;
-
- if (gap == 0) {
- candidate = table_index;
- break;
- }
-
- if (gap < minimum) {
- minimum = gap;
- candidate = table_index;
- }
- table_index++;
- }
-#if 0
- printk(KERN_INFO "cal : found index : %d\n", candidate);
- printk(KERN_INFO "gamma : %d, found index : %d found gamma : %d\n",
- gamma, candidate, smart->g300_gra_tbl[candidate]);
-#endif
- return candidate;
-}
-
-
-u32 calc_v1_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 ret;
- u32 v1;
-
- v1 = dv[ci][IV_1];
-#ifdef CONFIG_AID_DIMMING
- ret = (595 * 1000) - (V1_255_calc_param * v1);
-#else
- ret = (595 * 1000) - (130 * v1);
-#endif
- ret = ret/1000;
-
- return ret;
-}
-
-
-u32 calc_v15_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v15, v35;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v15 = dv[ci][IV_15];
- v35 = dv[ci][IV_35];
-
-#if 0
- t1 = (v1 - v15) * 1000;
- t2 = v1 - v35;
-
- ret = 320*(t1/t2)-(20*1000);
-
- ret = ret/1000;
-#else
- t1 = (v1 - v15) << 10;
- t2 = (v1 - v35) ? (v1 - v35) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (20 << 10);
- ret >>= 10;
-
-#endif
- return ret;
-}
-
-
-u32 calc_v35_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v35, v57;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v35 = dv[ci][IV_35];
- v57 = dv[ci][IV_59];
-
-#if 0
- t1 = (v1 - v35) * 1000;
- t2 = v1 - v57;
- ret = 320*(t1/t2) - (65 * 1000);
-
- ret = ret/1000;
-#else
- t1 = (v1 - v35) << 10;
- t2 = (v1 - v57) ? (v1 - v57) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (65 << 10);
-
- ret >>= 10;
-#endif
-
- return ret;
-}
-
-
-#ifdef CONFIG_AID_DIMMING
-u32 calc_v59_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v59, v87;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v59 = dv[ci][IV_59];
- v87 = dv[ci][IV_87];
-
-#if 0
- t1 = (v1 - v59) * 1000;
- t2 = v1 - v87;
- ret = 320*(t1/t2) - (65 * 1000);
- ret = ret/1000;
-#else
- t1 = (v1 - v59) << 10;
- t2 = (v1 - v87) ? (v1 - v87) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (65 << 10);
- ret >>= 10;
-#endif
-
- return ret;
-}
-#else
-u32 calc_v50_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v57, v87;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v57 = dv[ci][IV_59];
- v87 = dv[ci][IV_87];
-
-#if 0
- t1 = (v1 - v57) * 1000;
- t2 = v1 - v87;
- ret = 320*(t1/t2) - (65 * 1000);
- ret = ret/1000;
-#else
- t1 = (v1 - v57) << 10;
- t2 = (v1 - v87) ? (v1 - v87) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (65 << 10);
- ret >>= 10;
-#endif
- return ret;
-}
-#endif
-
-
-u32 calc_v87_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v87, v171;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v87 = dv[ci][IV_87];
- v171 = dv[ci][IV_171];
-
-#if 0
- t1 = (v1 - v87) * 1000;
- t2 = v1 - v171;
- ret = 320*(t1/t2) - (65 * 1000);
- ret = ret/1000;
-#else
- t1 = (v1 - v87) << 10;
- t2 = (v1 - v171) ? (v1 - v171) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (65 << 10);
- ret >>= 10;
-#endif
-
- return ret;
-}
-
-
-u32 calc_v171_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v171, v255;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v171 = dv[ci][IV_171];
- v255 = dv[ci][IV_255];
-
-#if 0
- t1 = (v1 - v171) * 1000;
- t2 = v1 - v255;
- ret = 320*(t1/t2) - (65 * 1000);
- ret = ret/1000;
-#else
- t1 = (v1 - v171) << 10;
- t2 = (v1 - v255) ? (v1 - v255) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (65 << 10);
- ret >>= 10;
-#endif
-
- return ret;
-}
-
-
-u32 calc_v255_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 ret;
- u32 v255;
-
- v255 = dv[ci][IV_255];
-
-#ifdef CONFIG_AID_DIMMING
- ret = (500 * 1000) - (V1_255_calc_param * v255);
-#else
- ret = (500 * 1000) - (130 * v255);
-#endif
- ret = ret / 1000;
-
- return ret;
-}
-
-#ifdef CONFIG_AID_DIMMING
-u32 calc_gamma_table(struct str_smart_dim *smart, u32 gv, u8 result[], u8 gamma_curve)
-{
- u32 i, c;
- u32 temp;
- u32 lidx;
- u32 dv[CI_MAX][IV_MAX];
- s16 gamma[CI_MAX][IV_MAX];
- u16 offset;
- u32(*calc_reg[IV_MAX])(int ci, u32 dv[CI_MAX][IV_MAX]) = {
- calc_v1_reg,
- calc_v15_reg,
- calc_v35_reg,
- calc_v59_reg,
- calc_v87_reg,
- calc_v171_reg,
- calc_v255_reg,
- };
-
- memset(gamma, 0, sizeof(gamma));
-
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][IV_1] = smart->ve[AD_IV1].v[c];
-
- for (i = IV_15; i < IV_MAX; i++) {
- temp = (smart->gamma_table[gamma_curve][dv_value[i]] * gv) / 1000;
- lidx = lookup_vtbl_idx(smart, temp);
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][i] = smart->ve[lidx].v[c];
- }
-
- /* for IV1 does not calculate value */
- /* just use default gamma value (IV1) */
- for (c = CI_RED; c < CI_MAX; c++)
- gamma[c][IV_1] = smart->default_gamma[c];
-
- for (i = IV_15; i < IV_MAX; i++) {
- for (c = CI_RED; c < CI_MAX; c++)
- gamma[c][i] = (s16)calc_reg[i](c, dv) - smart->mtp[c][i];
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- offset = IV_255*CI_MAX+c*2;
- result[offset+1] = gamma[c][IV_255];
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- for (i = IV_1; i < IV_255; i++)
- result[(CI_MAX*i)+c] = gamma[c][i];
- }
-
-#if 0
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND VOLTAGE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("%c : %04dV", color_name[c], dv[c][i]);
- printk("\n");
- }
-
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND REG ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("%c : %3d, 0x%2x", color_name[c], gamma[c][i], gamma[c][i]);
- printk("\n");
- }
-#endif
- return 0;
-}
-
-u32 calc_gamma_table_215_190(struct str_smart_dim *smart, u32 gv, u8 result[])
-{
- u32 i, c;
- u32 temp;
- u32 lidx_215_190;
- u32 dv[CI_MAX][IV_MAX];
- s16 gamma_215_190[CI_MAX][IV_MAX];
- u16 offset;
- u32(*calc_reg[IV_MAX])(int ci, u32 dv[CI_MAX][IV_MAX]) = {
- calc_v1_reg,
- calc_v15_reg,
- calc_v35_reg,
- calc_v59_reg,
- calc_v87_reg,
- calc_v171_reg,
- calc_v255_reg,
- };
-
- /*printk("%s was call gv : %d\n", __func__, gv);*/
- memset(gamma_215_190, 0, sizeof(gamma_215_190));
-
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][IV_1] = smart->ve[AD_IV1].v[c];
-
-
- for (i = IV_15; i < IV_MAX; i++) {
- if (i < IV_171) {
- temp = (smart->gamma_table[G_215][dv_value[i]] * gv)/1000;
- /*printk("temp : %d, g215 val : %d, gv : %d\n",temp,smart->g215_tbl[dv_value[i]], gv);*/
- lidx_215_190 = lookup_vtbl_idx(smart, temp)+1;
- printk("look index : %d\n", lidx_215_190);
- } else {
- temp = (smart->gamma_table[G_215][dv_value[i]] * gv)/1000;
- /*printk("temp : %d, g215 val : %d, gv : %d\n",temp,smart->g215_tbl[dv_value[i]], gv);*/
- lidx_215_190 = lookup_vtbl_idx(smart, temp);
- /*printk("look index : %d\n", lidx_215_190);*/
- }
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][i] = smart->ve[lidx_215_190].v[c];
- }
-
-
- /* for IV1 does not calculate value */
- /* just use default gamma value (IV1) */
- for (c = CI_RED; c < CI_MAX; c++)
- gamma_215_190[c][IV_1] = smart->default_gamma[c];
-
- for (i = IV_15; i < IV_MAX; i++) {
- for (c = CI_RED; c < CI_MAX; c++)
- gamma_215_190[c][i] = (s16)calc_reg[i](c, dv) - smart->mtp[c][i];
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- offset = IV_255*CI_MAX+c*2;
- result[offset+1] = gamma_215_190[c][IV_255];
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- for (i = IV_1; i < IV_255; i++)
- result[(CI_MAX*i)+c] = gamma_215_190[c][i];
- }
-
-#if 0
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND VOLTAGE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("%c : %04dV", color_name[c], dv[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND REG ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("2.15Gamma %c : %3d, 0x%2x", color_name[c], gamma_215_190[c][i], gamma_215_190[c][i]);
- printk("\n");
- }
-#endif
- return 0;
-}
-#else
-u32 calc_gamma_table(struct str_smart_dim *smart, u32 gv, u8 result[])
-{
- u32 i, c;
- u32 temp;
- u32 lidx;
- u32 dv[CI_MAX][IV_MAX];
- s16 gamma[CI_MAX][IV_MAX];
- u16 offset;
- u32(*calc_reg[IV_MAX])(int ci, u32 dv[CI_MAX][IV_MAX]) = {
- calc_v1_reg,
- calc_v15_reg,
- calc_v35_reg,
- calc_v50_reg,
- calc_v87_reg,
- calc_v171_reg,
- calc_v255_reg,
- };
-
- memset(gamma, 0, sizeof(gamma));
-
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][0] = smart->adjust_volt[c][AD_IV1];
-
-
- for (i = IV_15; i < IV_MAX; i++) {
- temp = smart->g22_tbl[dv_value[i]] * gv;
- lidx = lookup_vtbl_idx(smart, temp);
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][i] = smart->ve[lidx].v[c];
- }
-
- /* for IV1 does not calculate value */
- /* just use default gamma value (IV1) */
- for (c = CI_RED; c < CI_MAX; c++)
- gamma[c][IV_1] = smart->default_gamma[c];
-
- for (i = IV_15; i < IV_MAX; i++) {
- for (c = CI_RED; c < CI_MAX; c++)
- gamma[c][i] = (s16)calc_reg[i](c, dv) - smart->mtp[c][i];
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- offset = IV_255*CI_MAX+c*2;
- result[offset+1] = gamma[c][IV_255];
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- for (i = IV_1; i < IV_255; i++)
- result[(CI_MAX*i)+c] = gamma[c][i];
- }
-
-#if 0
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND VOLTAGE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("%c : %04dV", color_name[c], dv[c][i]);
- printk("\n");
- }
-
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND REG ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("%c : %3d, 0x%2x", color_name[c], gamma[c][i], gamma[c][i]);
- printk("\n");
- }
-#endif
- return 0;
-}
-#endif
diff --git a/drivers/video/samsung_duallcd/smart_dimming.h b/drivers/video/samsung_duallcd/smart_dimming.h
deleted file mode 100644
index a66b885..0000000
--- a/drivers/video/samsung_duallcd/smart_dimming.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* linux/drivers/video/samsung/smartdimming.h
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
-
- * Samsung Smart Dimming for OCTA
- *
- * Minwoo Kim, <minwoo7945.kim@samsung.com>
- *
-*/
-
-
-#ifndef __SMART_DIMMING_H__
-#define __SMART_DIMMING_H__
-
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-
-#define MAX_GRADATION 300
-#define PANEL_ID_MAX 3
-#define GAMMA_300CD_MAX 16
-
-
-enum {
- CI_RED,
- CI_GREEN,
- CI_BLUE,
- CI_MAX,
-};
-
-
-enum {
- IV_1,
- IV_15,
- IV_35,
- IV_59,
- IV_87,
- IV_171,
- IV_255,
- IV_MAX,
- IV_TABLE_MAX,
-};
-
-
-enum {
- AD_IV0,
- AD_IV1,
- AD_IV15,
- AD_IV35,
- AD_IV59,
- AD_IV87,
- AD_IV171,
- AD_IV255,
- AD_IVMAX,
-};
-
-#ifdef CONFIG_AID_DIMMING
-enum {
- G_21,
- G_215,
- G_22,
- G_MAX,
-};
-#endif
-
-struct str_voltage_entry {
- u32 v[CI_MAX];
-};
-
-
-struct str_table_info {
- /* et : start gray value */
- u8 st;
- /* end gray value, st + count */
- u8 et;
- u8 count;
- const u8 *offset_table;
- /* rv : ratio value */
- u32 rv;
-};
-
-
-struct str_flookup_table {
- u16 entry;
- u16 count;
-};
-
-
-struct str_smart_dim {
- u8 panelid[PANEL_ID_MAX];
- s16 mtp[CI_MAX][IV_MAX];
- struct str_voltage_entry ve[256];
- const u8 *default_gamma;
- struct str_table_info t_info[IV_TABLE_MAX];
- const struct str_flookup_table *flooktbl;
- const u32 *g22_tbl;
-#ifdef CONFIG_AID_DIMMING
- const u32 *gamma_table[G_MAX];
-#endif
- const u32 *g300_gra_tbl;
- u32 adjust_volt[CI_MAX][AD_IVMAX];
-};
-
-struct rgb_offset_info {
- unsigned int candela_idx;
- unsigned int gray;
- unsigned int rgb;
- int offset;
-};
-
-
-int init_table_info(struct str_smart_dim *smart);
-u8 calc_voltage_table(struct str_smart_dim *smart, const u8 *mtp);
-#ifdef CONFIG_AID_DIMMING
-u32 calc_gamma_table(struct str_smart_dim *smart, u32 gv, u8 result[], u8 gamma_curve);
-u32 calc_gamma_table_215_190(struct str_smart_dim *smart, u32 gv, u8 result[]);
-#else
-u32 calc_gamma_table(struct str_smart_dim *smart, u32 gv, u8 result[]);
-#endif
-
-#endif
diff --git a/drivers/video/samsung_duallcd/smart_dimming_ld9042.c b/drivers/video/samsung_duallcd/smart_dimming_ld9042.c
deleted file mode 100644
index ba41949..0000000
--- a/drivers/video/samsung_duallcd/smart_dimming_ld9042.c
+++ /dev/null
@@ -1,749 +0,0 @@
-/* linux/drivers/video/samsung/smartdimming.c
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
-
- * Samsung Smart Dimming for OCTA
- *
- * Minwoo Kim, <minwoo7945.kim@samsung.com>
- *
-*/
-
-
-#include "smart_dimming_ld9042.h"
-#include "ld9042_volt_tbl.h"
-
-/*#define MTP_REVERSE */
-#define V255_MTP_OFFSET 4
-#define V255_GAMMA_OFFSET 5
-#define VALUE_DIM_1000 1000
-
-
-const u8 v1_offset_table[17] = {
- 75, 69, 63, 57,
- 51, 46, 41, 36,
- 31, 27, 23, 19,
- 15, 12, 9, 6,
- 3,
-};
-
-const u8 v19_offset_table[23] = {
- 101, 94, 87, 80,
- 74, 68, 62, 56,
- 51, 46, 41, 36,
- 32, 28, 24, 20,
- 17, 14, 11, 8,
- 6, 4, 2,
-};
-
-
-const u8 range_table_count[IV_TABLE_MAX] = {
- 1, 18, 24, 44, 84, 84, 1
-};
-
-
-const u32 table_radio[IV_TABLE_MAX] = {
- 0, 404, 303, 745, 390, 390, 0
-};
-
-
-const u32 dv_value[IV_MAX] = {
- 0, 19, 43, 87, 171, 255
-};
-
-
-const char color_name[3] = {'R', 'G', 'B'};
-
-
-const u8 *offset_table[IV_TABLE_MAX] = {
- NULL,
- v1_offset_table,
- v19_offset_table,
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-const unsigned char gamma_300cd_a2[] = {
- 0x0C, 0xA9, 0xAF, 0xA9, 0xBC, 0x00, 0xAA,
- 0x0C, 0xAB, 0xAE, 0xA6, 0xBB, 0x00, 0xC8,
- 0x0C, 0xB5, 0xB1, 0xA7, 0xBC, 0x00, 0xCC,
-};
-
-const unsigned char *gamma_300cd_list[GAMMA_300CD_MAX] = {
- gamma_300cd_a2,
-};
-
-const unsigned char gamma_id_list[GAMMA_300CD_MAX] = {
- 0xa2
-};
-
-u32 calc_v1_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- u32 ret = 0;
-
- ret = volt_table_v1[gamma] >> 10;
-
- return ret;
-}
-
-
-u32 calc_v19_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 65, DV :320 */
- int ret = 0;
- u32 v1, v43;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v43 = adjust_volt[rgb_index][AD_IV43];
- ratio = volt_table_cv_65_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1-v43)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v43_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 65, DV :320 */
- int ret = 0;
- u32 v1, v87;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v87 = adjust_volt[rgb_index][AD_IV87];
- ratio = volt_table_cv_65_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1-v87)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v87_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 65, DV :320 */
- int ret = 0;
- u32 v1, v171;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v171 = adjust_volt[rgb_index][AD_IV171];
- ratio = volt_table_cv_65_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1-v171)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v171_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 65, DV :320 */
- int ret = 0;
- u32 v1, v255;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v255 = adjust_volt[rgb_index][AD_IV255];
- ratio = volt_table_cv_65_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1-v255)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v255_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- u32 ret = 0;
-
- ret = volt_table_v255[gamma] >> 10;
-
- return ret;
-}
-
-
-u8 calc_voltage_table(struct str_smart_dim *smart, const u8 *mtp)
-{
- int c, i, j;
-#if defined(MTP_REVERSE)
- int offset1 = 0;
-#endif
- int offset = 0;
- s16 t1, t2;
- s16 adjust_mtp[CI_MAX][IV_MAX];
- /* u32 adjust_volt[CI_MAX][AD_IVMAX] = {0, }; */
- u8 range_index;
- u8 table_index = 0;
-
- u32 v1, v2;
- u32 ratio;
-
- u32(*calc_volt[IV_MAX])(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX]) = {
- calc_v1_volt,
- calc_v19_volt,
- calc_v43_volt,
- calc_v87_volt,
- calc_v171_volt,
- calc_v255_volt,
- };
-
- u8 calc_seq[6] = {IV_1, IV_171, IV_87, IV_43, IV_19};
- u8 ad_seq[6] = {AD_IV1, AD_IV171, AD_IV87, AD_IV43, AD_IV19};
-
- memset(adjust_mtp, 0, sizeof(adjust_mtp));
-
- for (c = CI_RED; c < CI_MAX; c++) {
- offset = ((c + 1) * V255_MTP_OFFSET) + (c * 2);
- /* printk("1 offset : %d\n", offset); */
-
- if (mtp[offset] & 0x01)
- t1 = mtp[offset + 1] * -1;
- else
- t1 = mtp[offset + 1];
- /* printk("2 t1 : %d\n", t1); */
-
- offset = ((c+1) * V255_GAMMA_OFFSET) + (c * 2);
-
- t2 = smart->default_gamma[offset] << 8 | smart->default_gamma[offset+1];
- /* printk("3 t2 : %d\n", t2); */
-
- t2 += t1;
- /* printk("4 t2+t1 : %d\n", t2); */
-
- smart->mtp[c][IV_255] = t1;
- adjust_mtp[c][IV_255] = t2;
- smart->adjust_volt[c][AD_IV255] = calc_volt[IV_255](t2, c, smart->adjust_volt);
-
- /* for V0 All RGB Voltage Value is Reference Voltage */
- smart->adjust_volt[c][AD_IV0] = 4320;
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- for (i = IV_1; i < IV_255; i++) {
- if (calc_seq[i] == IV_1)
- t1 = 0;
- else {
- offset = (c * 6) + (calc_seq[i]-1);
- /* printk("21 offset : %d\n", offset); */
- if (mtp[offset] & 0x80)
- t1 = (mtp[offset] & 0x7f) * (-1);
- else
- t1 = (mtp[offset] & 0x7f);
- }
- /* printk("22 t1 : %d\n", t1); */
-
- offset = (c * 7) + (calc_seq[i]);
- /* printk("23 offset : %d\n", offset); */
-
- t2 = smart->default_gamma[offset];
- /* printk("23 t2 : %d\n", t2); */
-
- t2 += t1;
- /* printk("24 t2+t1 : %d\n", t2); */
-
- smart->mtp[c][calc_seq[i]] = t1;
- adjust_mtp[c][calc_seq[i]] = t2;
- smart->adjust_volt[c][ad_seq[i]] = calc_volt[calc_seq[i]](t2, c, smart->adjust_volt);
- }
- }
-
- for (i = 0; i < AD_IVMAX; i++) {
- for (c = CI_RED; c < CI_MAX; c++)
- smart->ve[table_index].v[c] = smart->adjust_volt[c][i];
-
- range_index = 0;
- for (j = table_index + 1; j < table_index + range_table_count[i]; j++) {
- for (c = CI_RED; c < CI_MAX; c++) {
- if (smart->t_info[i].offset_table != NULL)
- ratio = smart->t_info[i].offset_table[range_index] * smart->t_info[i].rv;
- else
- ratio = (range_table_count[i]-(range_index+1)) * smart->t_info[i].rv;
-
- v1 = smart->adjust_volt[c][i+1] << 15;
- v2 = (smart->adjust_volt[c][i] - smart->adjust_volt[c][i+1])*ratio;
- smart->ve[j].v[c] = ((v1+v2) >> 15);
- }
- range_index++;
- }
- table_index = j;
- }
-
-#if 0
- printk(KERN_INFO "++++++++++++++++++++++++++++++ MTP VALUE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : 0x%08x(%04d)", color_name[c], smart->mtp[c][i], smart->mtp[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ ADJUST VALUE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : 0x%08x(%04d)", color_name[c],
- adjust_mtp[c][i], adjust_mtp[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ ADJUST VOLTAGE ++++++++++++++++++++++++++++++\n");
- for (i = AD_IV0; i < AD_IVMAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : %04dV", color_name[c], smart->adjust_volt[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++++++++++ VOLTAGE TABLE ++++++++++++++++++++++++++++++++++++++\n");
- for (i = 0; i < 256; i++) {
- printk("Gray Level : %03d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : %04dV", color_name[c], smart->ve[i].v[c]);
- printk("\n");
- }
-#endif
- return 0;
-}
-
-
-int init_table_info_22(struct str_smart_dim *smart)
-{
- int i;
- int offset = 0;
-
- for (i = 0; i < IV_TABLE_MAX; i++) {
- smart->t_info[i].count = (u8)range_table_count[i];
- smart->t_info[i].offset_table = offset_table[i];
- smart->t_info[i].rv = table_radio[i];
- offset += range_table_count[i];
- }
- smart->flooktbl = flookup_table;
- smart->g300_gra_tbl = gamma_300_gra_table;
- smart->g22_tbl = gamma_22_table;
-
- for (i = 0; i < GAMMA_300CD_MAX; i++) {
- if (smart->panelid[0] == gamma_id_list[i])
- break;
- }
-
- if (i >= GAMMA_300CD_MAX) {
- printk(KERN_ERR "[SMART DIMMING-WARNING] %s Can't found default gamma table\n", __func__);
- smart->default_gamma = gamma_300cd_list[GAMMA_300CD_MAX-1];
- } else
- smart->default_gamma = gamma_300cd_list[i];
-
-#if 0
- for (i = 0; i < 24; i++)
- printk(KERN_INFO "Index : %d : %x\n", i, smart->default_gamma[i]);
-#endif
-
- return 0;
-}
-
-int init_table_info_19(struct str_smart_dim *smart)
-{
- int i;
- int offset = 0;
-
- for (i = 0; i < IV_TABLE_MAX; i++) {
- smart->t_info[i].count = (u8)range_table_count[i];
- smart->t_info[i].offset_table = offset_table[i];
- smart->t_info[i].rv = table_radio[i];
- offset += range_table_count[i];
- }
- smart->flooktbl = flookup_table;
- smart->g300_gra_tbl = gamma_300_gra_table;
- smart->g19_tbl = gamma_19_table;
-
- for (i = 0; i < GAMMA_300CD_MAX; i++) {
- if (smart->panelid[0] == gamma_id_list[i])
- break;
- }
-
- if (i >= GAMMA_300CD_MAX) {
- printk(KERN_ERR "[SMART DIMMING-WARNING] %s Can't found default gamma table\n", __func__);
- smart->default_gamma = gamma_300cd_list[GAMMA_300CD_MAX-1];
- } else
- smart->default_gamma = gamma_300cd_list[i];
-
-#if 0
- for (i = 0; i < 24; i++)
- printk(KERN_INFO "Index : %d : %x\n", i, smart->default_gamma[i]);
-#endif
-
- return 0;
-}
-
-
-
-u32 lookup_vtbl_idx(struct str_smart_dim *smart, u32 gamma)
-{
- u32 lookup_index;
- u16 table_count, table_index;
- u32 gap, i;
- u32 minimum = smart->g300_gra_tbl[255];
- u32 candidate = 0;
- u32 offset = 0;
-
- /* printk("Input Gamma Value : %d\n", gamma); */
-
- lookup_index = (gamma/1000) + 1;
- if (lookup_index > MAX_GRADATION) {
- printk(KERN_ERR "ERROR Wrong input value LOOKUP INDEX : %d\n", lookup_index);
- lookup_index = MAX_GRADATION - 1;
- }
-
- /* printk("lookup index : %d\n",lookup_index); */
-
- if (smart->flooktbl[lookup_index].count) {
- if (smart->flooktbl[lookup_index-1].count) {
- table_index = smart->flooktbl[lookup_index-1].entry;
- table_count = smart->flooktbl[lookup_index].count + smart->flooktbl[lookup_index-1].count;
- } else {
- table_index = smart->flooktbl[lookup_index].entry;
- table_count = smart->flooktbl[lookup_index].count;
- }
- } else {
- offset += 1;
- while (!(smart->flooktbl[lookup_index+offset].count || smart->flooktbl[lookup_index-offset].count))
- offset++;
-
- if (smart->flooktbl[lookup_index-offset].count)
- table_index = smart->flooktbl[lookup_index-offset].entry;
- else
- table_index = smart->flooktbl[lookup_index+offset].entry;
- table_count = smart->flooktbl[lookup_index+offset].count + smart->flooktbl[lookup_index-offset].count;
- }
-
-
- for (i = 0; i < table_count; i++) {
- if (gamma > smart->g300_gra_tbl[table_index])
- gap = gamma - smart->g300_gra_tbl[table_index];
- else
- gap = smart->g300_gra_tbl[table_index] - gamma;
-
- /* printk("gap : %d\n", gap); */
-
- if (gap == 0) {
- candidate = table_index;
- break;
- }
-
- if (gap < minimum) {
- minimum = gap;
- candidate = table_index;
- }
- table_index++;
- }
-
- return candidate;
-}
-
-
-u32 calc_v1_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 ret;
- u32 v1;
-
- v1 = dv[ci][IV_1];
- ret = (595 * 1000) - (139 * v1);
- ret = ret/1000;
-
- /* printk("%s v1 value : %d, ret : %d\n", __func__, v1, ret); */
-
- return ret;
-}
-
-
-u32 calc_v19_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v19, v43;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v19 = dv[ci][IV_19];
- v43 = dv[ci][IV_43];
-
- t1 = (v1 - v19) << 10;
- t2 = (v1 - v43) ? (v1 - v43) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (65 << 10);
- ret >>= 10;
-
- /* printk("%s v1 : %d,v19 : %d, v43 : %d ret : %d\n", __func__, v1, v19, v43, ret); */
-
- return ret;
-}
-
-
-u32 calc_v43_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v43, v87;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v43 = dv[ci][IV_43];
- v87 = dv[ci][IV_87];
-
- t1 = (v1 - v43) << 10;
- t2 = (v1 - v87) ? (v1 - v87) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (65 << 10);
- ret >>= 10;
-
- /* printk("%s v43 : %d, ret : %d\n", __func__, v43, ret); */
-
- return ret;
-}
-
-
-u32 calc_v87_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v87, v171;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v87 = dv[ci][IV_87];
- v171 = dv[ci][IV_171];
-
- t1 = (v1 - v87) << 10;
- t2 = (v1 - v171) ? (v1 - v171) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (65 << 10);
- ret >>= 10;
-
- /* printk("%s v87 : %d, ret : %d\n", __func__, v87, ret); */
-
- return ret;
-}
-
-
-u32 calc_v171_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v171, v255;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v171 = dv[ci][IV_171];
- v255 = dv[ci][IV_255];
-
- t1 = (v1 - v171) << 10;
- t2 = (v1 - v255) ? (v1 - v255) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (65 << 10);
- ret >>= 10;
-
- /* printk("%s v171 : %d, ret : %d\n", __func__, v171, ret); */
-
- return ret;
-}
-
-
-u32 calc_v255_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 ret;
- u32 v255;
-
- v255 = dv[ci][IV_255];
-
- ret = (480 * 1000) - (139 * v255);
- ret = ret / 1000;
-
- /* printk("%s v255 : %d, ret : %d\n",__func__, v255, ret); */
-
- return ret;
-}
-
-
-u32 calc_gamma_table_22(struct str_smart_dim *smart, u32 gv, u8 result[])
-{
- u32 i, c;
- u32 temp;
- u32 lidx_22;
- u32 dv[CI_MAX][IV_MAX];
- s16 gamma_22[CI_MAX][IV_MAX];
- u16 offset;
- u32(*calc_reg[IV_MAX])(int ci, u32 dv[CI_MAX][IV_MAX]) = {
- calc_v1_reg,
- calc_v19_reg,
- calc_v43_reg,
- calc_v87_reg,
- calc_v171_reg,
- calc_v255_reg,
- };
-
- /* printk("%s was call gv : %d\n", __func__, gv);*/
- memset(gamma_22, 0, sizeof(gamma_22));
-
-#if 0
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][0] = smart->adjust_volt[c][AD_IV1];
-#endif
-
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][IV_1] = smart->ve[AD_IV1].v[c];
-
- for (i = IV_19; i < IV_MAX; i++) {
- temp = (smart->g22_tbl[dv_value[i]] * gv)/1000;
- /* printk("temp : %d, g22 val : %d, gv : %d\n",temp,smart->g22_tbl[dv_value[i]], gv); */
- lidx_22 = lookup_vtbl_idx(smart, temp);
- /* printk("look index : %d\n", lidx_22); */
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][i] = smart->ve[lidx_22].v[c];
- }
-
- for (i = IV_1; i < IV_MAX; i++) {
- for (c = CI_RED; c < CI_MAX; c++)
- gamma_22[c][i] = (u16)calc_reg[i](c, dv) - smart->mtp[c][i];
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- offset = ((c+1) * V255_GAMMA_OFFSET) + (c * 2);
- result[offset+1] = gamma_22[c][IV_255] & 0xff;
- result[offset] = (u8)((gamma_22[c][IV_255] >> 8) & 0xff);
- /* printk("%s array index is result[%d+1] V255 print gamma : %d\n", __func__, offset, result[offset+1]); */
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- for (i = IV_1; i < IV_255; i++) {
- if (i < IV_255) {
- offset = (c*7)+i;
- result[offset] = gamma_22[c][i];
- /* printk("%s array index is result[%d] V1~v171 print gamma : %d\n", __func__, offset, result[offset]); */
- }
- /*
- else if (i == IV_255) {
- offset = ((c + 1) * V255_GAMMA_OFFSET) + (c * 2);
- result[offset]=0;
- printk("%s array index is result[%d] V255 print gamma : %d\n", __func__, offset, result[offset]);
- }
- */
- }
- }
-
-#if 0
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND VOLTAGE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("%c : %04dV", color_name[c], dv[c][i]);
- printk("\n");
- }
-
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND REG ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("2.2Gamma %c : %3d, 0x%2x", color_name[c], gamma_22[c][i], gamma_22[c][i]);
- printk("\n");
- }
-#endif
- return 0;
-}
-
-
-u32 calc_gamma_table_19(struct str_smart_dim *smart, u32 gv, u8 result[])
-{
- u32 i, c;
- u32 temp;
- u32 lidx_19;
- u32 dv[CI_MAX][IV_MAX];
- s16 gamma_19[CI_MAX][IV_MAX];
- u16 offset;
- u32(*calc_reg[IV_MAX])(int ci, u32 dv[CI_MAX][IV_MAX]) = {
- calc_v1_reg,
- calc_v19_reg,
- calc_v43_reg,
- calc_v87_reg,
- calc_v171_reg,
- calc_v255_reg,
- };
-
- /* printk("%s was call gv : %d\n", __func__, gv);*/
- memset(gamma_19, 0, sizeof(gamma_19));
-
-#if 0
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][0] = smart->adjust_volt[c][AD_IV1];
-#endif
-
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][IV_1] = smart->ve[AD_IV1].v[c];
-
-
- for (i = IV_19; i < IV_MAX; i++) {
- temp = (smart->g19_tbl[dv_value[i]] * gv)/1000;
- /* printk("temp : %d, g19 val : %d, gv : %d\n",temp,smart->g19_tbl[dv_value[i]], gv); */
- lidx_19 = lookup_vtbl_idx(smart, temp);
- /* printk("look index : %d\n",lidx_19); */
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][i] = smart->ve[lidx_19].v[c];
- }
-
- /* for IV1 does not calculate value */
- /* just use default gamma value (IV1) */
-#if 0
- for (c = CI_RED; c < CI_MAX; c++)
- gamma[c][IV_1] = smart->default_gamma[c];
-#endif
-
- for (i = IV_1; i < IV_MAX; i++) {
- for (c = CI_RED; c < CI_MAX; c++)
- gamma_19[c][i] = (u16)calc_reg[i](c, dv) - smart->mtp[c][i];
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- offset = ((c+1) * V255_GAMMA_OFFSET) + (c * 2);
- result[offset+1] = gamma_19[c][IV_255] & 0xff;
- result[offset] = (u8)((gamma_19[c][IV_255] >> 8) & 0xff);
- /* printk("%s array index is result[%d+1] V255 print gamma : %d\n", __func__, offset, result[offset+1]); */
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- for (i = IV_1; i < IV_255; i++) {
- if (i < IV_255) {
- offset = (c*7)+i;
- result[offset] = gamma_19[c][i];
- /* printk("%s array index is result[%d] V1~v171 print gamma : %d\n", __func__, offset, result[offset]); */
- }
- /*
- else if (i == IV_255) {
- offset = ((c + 1) * V255_GAMMA_OFFSET) + (c * 2);
- result[offset]=0;
- printk("%s array index is result[%d] V255 print gamma : %d\n", __func__, offset, result[offset]);
- }
- */
- }
- }
-
-#if 0
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND VOLTAGE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("%c : %04dV", color_name[c], dv[c][i]);
- printk("\n");
- }
-
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND REG ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("1.9Gamma %c : %3d, 0x%2x", color_name[c], gamma_19[c][i], gamma_19[c][i]);
- printk("\n");
- }
-#endif
- return 0;
-}
-
diff --git a/drivers/video/samsung_duallcd/smart_dimming_ld9042.h b/drivers/video/samsung_duallcd/smart_dimming_ld9042.h
deleted file mode 100644
index 6d3bf1d..0000000
--- a/drivers/video/samsung_duallcd/smart_dimming_ld9042.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* linux/drivers/video/samsung/smartdimming.h
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
-
- * Samsung Smart Dimming for OCTA
- *
- * Minwoo Kim, <minwoo7945.kim@samsung.com>
- *
-*/
-
-
-#ifndef __SMART_DIMMING_H__
-#define __SMART_DIMMING_H__
-
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-
-#define MAX_GRADATION 300
-#define PANEL_ID_MAX 3
-#define GAMMA_300CD_MAX 1
-
-
-enum {
- CI_RED,
- CI_GREEN,
- CI_BLUE,
- CI_MAX,
-};
-
-
-enum {
- IV_1,
- IV_19,
- IV_43,
- IV_87,
- IV_171,
- IV_255,
- IV_MAX,
- IV_TABLE_MAX,
-};
-
-
-enum {
- AD_IV0,
- AD_IV1,
- AD_IV19,
- AD_IV43,
- AD_IV87,
- AD_IV171,
- AD_IV255,
- AD_IVMAX,
-};
-
-
-struct str_voltage_entry {
- /* u32 g22_value; */
- u32 v[CI_MAX];
-};
-
-
-struct str_table_info {
- /* et : start gray value */
- u8 st;
- /* end gray value, st + count */
- u8 et;
- u8 count;
- const u8 *offset_table;
- /* rv : ratio value */
- u32 rv;
-};
-
-
-struct str_flookup_table {
- u16 entry;
- u16 count;
-};
-
-
-struct str_smart_dim {
- u8 panelid[PANEL_ID_MAX];
- s16 mtp[CI_MAX][IV_MAX];
- struct str_voltage_entry ve[256];
- const u8 *default_gamma;
- struct str_table_info t_info[IV_TABLE_MAX];
- const struct str_flookup_table *flooktbl;
- const u32 *g22_tbl;
- const u32 *g19_tbl;
- const u32 *g300_gra_tbl;
- u32 adjust_volt[CI_MAX][AD_IVMAX];
-};
-
-int init_table_info_22(struct str_smart_dim *smart);
-int init_table_info_19(struct str_smart_dim *smart);
-
-u8 calc_voltage_table(struct str_smart_dim *smart, const u8 *mtp);
-u32 calc_gamma_table_22(struct str_smart_dim *smart, u32 gv, u8 result[]);
-u32 calc_gamma_table_19(struct str_smart_dim *smart, u32 gv, u8 result[]);
-
-
-#endif
diff --git a/drivers/video/samsung_duallcd/smart_dimming_s6e63m0.c b/drivers/video/samsung_duallcd/smart_dimming_s6e63m0.c
deleted file mode 100644
index 1282347..0000000
--- a/drivers/video/samsung_duallcd/smart_dimming_s6e63m0.c
+++ /dev/null
@@ -1,630 +0,0 @@
-/* linux/drivers/video/samsung/smartdimming.c
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
-
- * Samsung Smart Dimming for OCTA
- *
- * Minwoo Kim, <minwoo7945.kim@samsung.com>
- *
-*/
-
-
-#include "smart_dimming_s6e63m0.h"
-#include "s6e63m0_volt_tbl.h"
-
-#define MTP_REVERSE 1
-#define VALUE_DIM_1000 1000
-
-#define VREG_OUT_1000 4301
-
-
-const u8 v1_offset_table[18] = {
- 75, 69, 63, 57,
- 51, 46, 41, 36,
- 31, 27, 23, 19,
- 15, 12, 9, 6,
- 3, 0,
-};
-
-
-const u8 v19_offset_table[24] = {
- 101, 94, 87, 80,
- 74, 68, 62, 56,
- 51, 46, 41, 36,
- 32, 28, 24, 20,
- 17, 14, 11, 8,
- 6, 4, 2, 0,
-};
-
-
-const u8 range_table_count[IV_TABLE_MAX] = {
- 1, 18, 24, 44, 84, 84, 1,
-};
-
-
-const u32 table_radio[IV_TABLE_MAX] = {
- 0, 405, 303, 745, 390, 390, 0,
-};
-
-
-const u32 dv_value[IV_MAX] = {
- 0, 19, 43, 87, 171, 255,
-};
-
-
-const char color_name[3] = {'R', 'G', 'B'};
-
-
-const u8 *offset_table[IV_TABLE_MAX] = {
- NULL,
- v1_offset_table,
- v19_offset_table,
- NULL,
- NULL,
- NULL,
- NULL,
-};
-static const unsigned char gamma_300cd[] = {
- 0x18, 0x08, 0x24, 0x6B, 0x76, 0x57,
- 0xBD, 0xC3, 0xB5, 0xB4, 0xBB, 0xAC,
- 0xC5, 0xC9, 0xC0, 0x00, 0xB7, 0x00,
- 0xAB, 0x00, 0xCF,
-};
-
-static s16 s9_to_s16(s16 v)
-{
- return (s16)(v << 7) >> 7;
-}
-
-
-u32 calc_v1_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- u32 ret = 0;
-
- ret = volt_table_v1[gamma] >> 10;
-
- return ret;
-}
-
-
-u32 calc_v19_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 19, DV :320 */
- int ret = 0;
- u32 v1, v43;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v43 = adjust_volt[rgb_index][AD_IV43];
-
- if(gamma >= V19_VOLTAGE_COUNT) {
- printk("[SMART:ERROR] : %s Exceed Max Gamma Value (%d)", __func__, gamma);
- gamma = V19_VOLTAGE_COUNT - 1;
- }
- ratio = volt_table_cv_19_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1-v43)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v43_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 43, DV :320 */
- int ret = 0;
- u32 v1, v87;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v87 = adjust_volt[rgb_index][AD_IV87];
- if(gamma >= V43_VOLTAGE_COUNT) {
- printk("[SMART:ERROR] : %s Exceed Max Gamma Value (%d)",__func__,gamma);
- gamma = V43_VOLTAGE_COUNT - 1;
- }
- ratio = volt_table_cv_43_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1 - v87) * ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-u32 calc_v87_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 87, DV :320 */
- int ret = 0;
- u32 v1, v171;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v171 = adjust_volt[rgb_index][AD_IV255];
- if(gamma >= V87_VOLTAGE_COUNT) {
- printk("[SMART:ERROR] : %s Exceed Max Gamma Value (%d)", __func__, gamma);
- gamma = V87_VOLTAGE_COUNT - 1;
- }
-
- ratio = volt_table_cv_87_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1-v171)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v171_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 171, DV :320 */
- int ret = 0;
- u32 v1, v255;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v255 = adjust_volt[rgb_index][AD_IV255];
- if(gamma >= V171_VOLTAGE_COUNT) {
- printk("[SMART:ERROR] : %s Exceed Max Gamma Value (%d)", __func__, gamma);
- gamma = V171_VOLTAGE_COUNT - 1;
- }
- ratio = volt_table_cv_171_dv_320[gamma];
-
- ret = (v1 << 10) - ((v1 - v255) * ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v255_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- u32 ret = 0;
-
- if(gamma >= V255_VOLTAGE_COUNT) {
- printk("[SMART:ERROR] : %s Exceed Max Gamma Value (%d)", __func__, gamma);
- gamma = V255_VOLTAGE_COUNT - 1;
- }
- ret = volt_table_v255[gamma] >> 10;
-
- return ret;
-}
-
-
-u8 calc_voltage_table(struct str_smart_dim *smart, const u8 *mtp)
-{
- int c, i, j;
-#if defined(MTP_REVERSE)
- int offset1 = 0;
-#endif
- int offset = 0;
- s16 t1, t2;
- s16 adjust_mtp[CI_MAX][IV_MAX];
- /* u32 adjust_volt[CI_MAX][AD_IVMAX] = {0, }; */
- u8 range_index;
- u8 table_index = 0;
-
- u32 v1, v2;
- u32 ratio;
-
- u32(*calc_volt[IV_MAX])(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX]) = {
- calc_v1_volt,
- calc_v19_volt,
- calc_v43_volt,
- calc_v87_volt,
- calc_v171_volt,
- calc_v255_volt,
- };
-
- u8 calc_seq[5] = {IV_1, IV_171, IV_87, IV_43, IV_19};
- u8 ad_seq[5] = {AD_IV1, AD_IV171, AD_IV87, AD_IV43, AD_IV19};
-
- /*
- s16 (*mtp_data)[IV_MAX];
- u32 (*adjust_volt)[AD_IVMAX];
- struct str_voltage_entry *ve;
-
- mtp_data = smart->mtp;
- adjust_volt = smart->adjust_volt;
- ve = smart->ve;
- */
-
- memset(adjust_mtp, 0, sizeof(adjust_mtp));
-
- for (c = CI_RED; c < CI_MAX; c++) {
- offset = IV_255 * CI_MAX + (c * 2);
-#if defined(MTP_REVERSE)
- offset1 = c * 7 + 5;
- t1 = s9_to_s16(mtp[offset1] << 8|mtp[offset1 + 1]);
-#else
- t1 = s9_to_s16(mtp[offset] << 8|mtp[offset + 1]);
-#endif
- t2 = s9_to_s16(smart->default_gamma[offset] << 8|
- smart->default_gamma[offset + 1]) + t1;
- smart->mtp[c][IV_255] = t1;
- adjust_mtp[c][IV_255] = t2;
- smart->adjust_volt[c][AD_IV255] = calc_volt[IV_255](t2, c, smart->adjust_volt);
-
- /* for V0 All RGB Voltage Value is Reference Voltage */
- smart->adjust_volt[c][AD_IV0] = VREG_OUT_1000;
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- for (i = IV_1; i < IV_255; i++) {
-#if defined(MTP_REVERSE)
- t1 = (s8)mtp[(calc_seq[i]) + (c * 7)];
-#else
- t1 = (s8)mtp[CI_MAX * calc_seq[i] + c];
-#endif
- t2 = smart->default_gamma[CI_MAX * calc_seq[i] + c] + t1;
-
- smart->mtp[c][calc_seq[i]] = t1;
- adjust_mtp[c][calc_seq[i]] = t2;
- smart->adjust_volt[c][ad_seq[i]] = calc_volt[calc_seq[i]](t2, c, smart->adjust_volt);
- }
- }
-
- for (i = 0; i < AD_IVMAX; i++) {
- for (c = CI_RED; c < CI_MAX; c++)
- smart->ve[table_index].v[c] = smart->adjust_volt[c][i];
-
- range_index = 0;
- for (j = table_index + 1; j < table_index + range_table_count[i]; j++) {
- for (c = CI_RED; c < CI_MAX; c++) {
- if (smart->t_info[i].offset_table != NULL)
- ratio = smart->t_info[i].offset_table[range_index] * smart->t_info[i].rv;
- else
- ratio = (range_table_count[i]-(range_index + 1)) * smart->t_info[i].rv;
-
- v1 = smart->adjust_volt[c][i + 1] << 15;
- v2 = (smart->adjust_volt[c][i] - smart->adjust_volt[c][i + 1]) * ratio;
- smart->ve[j].v[c] = ((v1 + v2) >> 15);
- }
- range_index++;
- }
- table_index = j;
- }
-
-#if 1
- printk(KERN_INFO "++++++++++++++++++++++++++++++ MTP VALUE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : 0x%08x(%04d)", color_name[c], smart->mtp[c][i], smart->mtp[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ ADJUST VALUE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : 0x%08x(%04d)", color_name[c],
- adjust_mtp[c][i], adjust_mtp[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ ADJUST VOLTAGE ++++++++++++++++++++++++++++++\n");
- for (i = AD_IV0; i < AD_IVMAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : %04dV", color_name[c], smart->adjust_volt[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++++++++++ VOLTAGE TABLE ++++++++++++++++++++++++++++++++++++++\n");
- for (i = 0; i < 256; i++) {
- printk("Gray Level : %03d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : %04dV", color_name[c], smart->ve[i].v[c]);
- printk("\n");
- }
-#endif
- return 0;
-}
-
-
-int init_table_info(struct str_smart_dim *smart)
-{
- int i;
- int offset = 0;
-
- for (i = 0; i < IV_TABLE_MAX; i++) {
- smart->t_info[i].count = (u8)range_table_count[i];
- smart->t_info[i].offset_table = offset_table[i];
- smart->t_info[i].rv = table_radio[i];
- offset += range_table_count[i];
- }
- smart->flooktbl = flookup_table;
- smart->g300_gra_tbl = gamma_300_gra_table;
- smart->g22_tbl = gamma_22_table;
-
- smart->default_gamma = gamma_300cd;
-
-#if 1
- printk(" jbass.choi : %s\n", __func__);
- for (i = 0; i < (IV_TABLE_MAX * 3); i++)
- printk(KERN_INFO "%d : %x", i, smart->default_gamma[i]);
- printk("\n");
-#endif
-
- return 0;
-}
-
-
-u32 lookup_vtbl_idx(struct str_smart_dim *smart, u32 gamma)
-{
- u32 lookup_index;
- u16 table_count, table_index;
- u32 gap, i;
- u32 minimum = smart->g300_gra_tbl[255];
- u32 candidate = 0;
- u32 offset = 0;
-
- /* printk("Input Gamma Value : %d\n", gamma); */
-
- lookup_index = (gamma >> 10) + 1;
- if (lookup_index > MAX_GRADATION) {
- printk(KERN_ERR "ERROR Wrong input value LOOKUP INDEX : %d\n", lookup_index);
- lookup_index = MAX_GRADATION - 1;
- /*return 0;*/
- }
-
- /* printk("lookup index : %d\n",lookup_index); */
-
- if (smart->flooktbl[lookup_index].count) {
- if (smart->flooktbl[lookup_index - 1].count) {
- table_index = smart->flooktbl[lookup_index - 1].entry;
- table_count = smart->flooktbl[lookup_index].count + smart->flooktbl[lookup_index - 1].count;
- } else {
- table_index = smart->flooktbl[lookup_index].entry;
- table_count = smart->flooktbl[lookup_index].count;
- }
- } else {
- offset += 1;
- while (!(smart->flooktbl[lookup_index + offset].count || smart->flooktbl[lookup_index - offset].count))
- offset++;
-
- if (smart->flooktbl[lookup_index-offset].count)
- table_index = smart->flooktbl[lookup_index - offset].entry;
- else
- table_index = smart->flooktbl[lookup_index + offset].entry;
- table_count = smart->flooktbl[lookup_index + offset].count + smart->flooktbl[lookup_index - offset].count;
- }
-
-
- for (i = 0; i < table_count; i++) {
- if (gamma > smart->g300_gra_tbl[table_index])
- gap = gamma - smart->g300_gra_tbl[table_index];
- else
- gap = smart->g300_gra_tbl[table_index] - gamma;
-
- if (gap == 0) {
- candidate = table_index;
- break;
- }
-
- if (gap < minimum) {
- minimum = gap;
- candidate = table_index;
- }
- table_index++;
- }
-#if 0
- printk(KERN_INFO "cal : found index : %d\n", candidate);
- printk(KERN_INFO "gamma : %d, found index : %d found gamma : %d\n",
- gamma, candidate, smart->g300_gra_tbl[candidate]);
-#endif
- return candidate;
-}
-
-
-u32 calc_v1_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 ret;
- u32 v1;
-
- v1 = dv[ci][IV_1];
- ret = (595 << 10) - (143 * v1);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v19_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v19, v43;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v19 = dv[ci][IV_19];
- v43 = dv[ci][IV_43];
-
-#if 0
- t1 = (v1 - v19) * 1000;
- t2 = v1 - v43;
-
- ret = 320 * (t1 / t2)-(20 * 1000);
-
- ret = ret / 1000;
-#else
- t1 = (v1 - v19) << 10;
- t2 = (v1 - v43) ? (v1 - v43) : (v1) ? v1 : 1;
- ret = (320 * (t1 / t2)) - (65 << 10);
- ret >>= 10;
-
-#endif
- return ret;
-}
-
-
-u32 calc_v43_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v43, v87;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v43 = dv[ci][IV_43];
- v87 = dv[ci][IV_87];
-
-#if 0
- t1 = (v1 - v43) * 1000;
- t2 = v1 - v57;
- ret = 320 * (t1/t2) - (65 * 1000);
-
- ret = ret / 1000;
-#else
- t1 = (v1 - v43) << 10;
- t2 = (v1 - v87) ? (v1 - v87) : (v1) ? v1 : 1;
- ret = (320 * (t1 / t2)) - (65 << 10);
-
- ret >>= 10;
-#endif
-
- return ret;
-}
-
-u32 calc_v87_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v87, v171;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v87 = dv[ci][IV_87];
- v171 = dv[ci][IV_171];
-
-#if 0
- t1 = (v1 - v87) * 1000;
- t2 = v1 - v171;
- ret = 320 * (t1 / t2) - (65 * 1000);
- ret = ret / 1000;
-#else
- t1 = (v1 - v87) << 10;
- t2 = (v1 - v171) ? (v1 - v171) : (v1) ? v1 : 1;
- ret = (320 * (t1 / t2)) - (65 << 10);
- ret >>= 10;
-#endif
-
- return ret;
-}
-
-
-u32 calc_v171_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v171, v255;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v171 = dv[ci][IV_171];
- v255 = dv[ci][IV_255];
-
-#if 0
- t1 = (v1 - v171) * 1000;
- t2 = v1 - v255;
- ret = 320 * (t1/t2) - (65 * 1000);
- ret = ret / 1000;
-#else
- t1 = (v1 - v171) << 10;
- t2 = (v1 - v255) ? (v1 - v255) : (v1) ? v1 : 1;
- ret = (320 * (t1 / t2)) - (65 << 10);
- ret >>= 10;
-#endif
-
- return ret;
-}
-
-u32 calc_v255_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 ret;
- u32 v255;
-
- v255 = dv[ci][IV_255];
-
- ret = (480 << 10) - (143 * v255);
- ret = ret >> 10;
-
- return ret;
-}
-
-u32 calc_gamma_table(struct str_smart_dim *smart, u32 gv, u8 result[])
-{
- u32 i, c;
- u32 temp;
- u32 lidx;
- u32 dv[CI_MAX][IV_MAX];
- s16 gamma[CI_MAX][IV_MAX];
- u16 offset;
- u32(*calc_reg[IV_MAX])(int ci, u32 dv[CI_MAX][IV_MAX]) = {
- calc_v1_reg,
- calc_v19_reg,
- calc_v43_reg,
- calc_v87_reg,
- calc_v171_reg,
- calc_v255_reg,
- };
- /*
- s16 (*mtp_data)[IV_MAX];
- u32 (*adjust_volt)[AD_IVMAX];
- struct str_voltage_entry *ve;
- mtp_data= smart->mtp;
- adjust_volt = smart->adjust_volt;
- ve = smart->ve;
- */
-
- memset(gamma, 0, sizeof(gamma));
-
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][0] = smart->adjust_volt[c][AD_IV1];
-
-
- for (i = IV_19; i < IV_MAX; i++) {
- temp = (smart->g22_tbl[dv_value[i]]) * gv;
- lidx = lookup_vtbl_idx(smart, temp);
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][i] = smart->ve[lidx].v[c];
- }
-
- /* for IV1 does not calculate value */
- /* just use default gamma value (IV1) */
- for (c = CI_RED; c < CI_MAX; c++)
- gamma[c][IV_1] = smart->default_gamma[c];
-
- for (i = IV_19; i < IV_MAX; i++) {
- for (c = CI_RED; c < CI_MAX; c++)
- gamma[c][i] = (s16)calc_reg[i](c, dv) - smart->mtp[c][i];
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- offset = IV_255 * CI_MAX + (c * 2);
- result[offset + 1] = gamma[c][IV_255];
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- for (i = IV_1; i < IV_255; i++)
- result[(CI_MAX * i) + c] = gamma[c][i];
- }
-
-#if 1
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND VOLTAGE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("%c : %04dV", color_name[c], dv[c][i]);
- printk("\n");
- }
-
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND REG ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("%c : %3d, 0x%2x", color_name[c], gamma[c][i], gamma[c][i]);
- printk("\n");
- }
-#endif
- return 0;
-}
diff --git a/drivers/video/samsung_duallcd/smart_dimming_s6e63m0.h b/drivers/video/samsung_duallcd/smart_dimming_s6e63m0.h
deleted file mode 100644
index 7e45d98..0000000
--- a/drivers/video/samsung_duallcd/smart_dimming_s6e63m0.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* linux/drivers/video/samsung/smartdimming.h
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
-
- * Samsung Smart Dimming for OCTA
- *
- * Minwoo Kim, <minwoo7945.kim@samsung.com>
- *
-*/
-
-
-#ifndef __SMART_DIMMING_H__
-#define __SMART_DIMMING_H__
-
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-
-#define MAX_GRADATION 300
-#define PANEL_ID_MAX 3
-//#define GAMMA_300CD_MAX 16
-
-#define V1_VOLTAGE_COUNT 141
-#define V19_VOLTAGE_COUNT 256
-#define V43_VOLTAGE_COUNT 256
-#define V87_VOLTAGE_COUNT 256
-#define V171_VOLTAGE_COUNT 256
-#define V255_VOLTAGE_COUNT 381
-
-
-enum {
- CI_RED = 0,
- CI_GREEN = 1,
- CI_BLUE = 2,
- CI_MAX = 3,
-};
-
-
-enum {
- IV_1 = 0,
- IV_19 = 1,
- IV_43 = 2,
- IV_87 = 3,
- IV_171 = 4,
- IV_255 = 5,
- IV_MAX = 6,
- IV_TABLE_MAX = 7,
-};
-
-
-enum {
- AD_IV0 = 0,
- AD_IV1 = 1,
- AD_IV19 = 2,
- AD_IV43 = 3,
- AD_IV87 = 4,
- AD_IV171 = 5,
- AD_IV255 = 6,
- AD_IVMAX = 7,
-};
-
-
-struct str_voltage_entry {
- u32 v[CI_MAX];
-};
-
-
-struct str_table_info {
- /* et : start gray value */
- u8 st;
- /* end gray value, st + count */
- u8 et;
- u8 count;
- const u8 *offset_table;
- /* rv : ratio value */
- u32 rv;
-};
-
-
-struct str_flookup_table {
- u16 entry;
- u16 count;
-};
-
-
-struct str_smart_dim {
- u8 panelid[PANEL_ID_MAX];
- s16 mtp[CI_MAX][IV_MAX];
- struct str_voltage_entry ve[256];
- const u8 *default_gamma;
- struct str_table_info t_info[IV_TABLE_MAX];
- const struct str_flookup_table *flooktbl;
- const u32 *g22_tbl;
- const u32 *g300_gra_tbl;
- u32 adjust_volt[CI_MAX][AD_IVMAX];
-};
-
-struct rgb_offset_info {
- unsigned int candela_idx;
- unsigned int gray;
- unsigned int rgb;
- int offset;
-};
-
-
-int init_table_info(struct str_smart_dim *smart);
-u8 calc_voltage_table(struct str_smart_dim *smart, const u8 *mtp);
-u32 calc_gamma_table(struct str_smart_dim *smart, u32 gv, u8 result[]);
-#endif
diff --git a/drivers/video/samsung_duallcd/smart_dimming_s6e8ab0.c b/drivers/video/samsung_duallcd/smart_dimming_s6e8ab0.c
deleted file mode 100644
index 35cf9d5..0000000
--- a/drivers/video/samsung_duallcd/smart_dimming_s6e8ab0.c
+++ /dev/null
@@ -1,703 +0,0 @@
-/* linux/drivers/video/samsung/smartdimming.c
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
-
- * Samsung Smart Dimming for OCTA
- *
- * Minwoo Kim, <minwoo7945.kim@samsung.com>
- *
-*/
-
-
-#include "smart_dimming_s6e8ab0.h"
-#include "s6e8ab0_volt_tbl.h"
-
-/* Refer EXCEL Page2 named Gamma MTP Offset setting
- REF VOLTAGE 4.8 * 1024 */
-#define VREG0_REG_VOLT 4916
-#define MTP_REVERSE 1
-#define VALUE_DIM_1000 1000
-
-/* Refer EXCEL Page2 named Gamma MTP Offset setting V1 ~ V15 */
-
-const u8 v1_offset_table[14] = {
- 49, 44, 39, 34, 29, 24, 20, 16, 12, 8, 6, 4, 2, 0
-};
-
-
-const u8 v15_offset_table[20] = {
- 132, 124, 116, 108, 100, 92, 84, 76, 69, 62, 55, 48, 42, 36, 30, 24, 18, 12, 6, 0
-};
-
-
-const u8 range_table_count[IV_TABLE_MAX] = {
- 1, 14, 20, 24, 28, 84, 84, 1
-};
-
-
-/* V1 : To make => 32768 // 2^15 */
-const u32 table_radio[IV_TABLE_MAX] = {
- 0, 607, 234, 1365, 1170, 390, 390, 0
-};
-
-
-const u32 dv_value[IV_MAX] = {
- 0, 15, 35, 59, 87, 171, 255
-};
-
-
-const char color_name[3] = {'R', 'G', 'B'};
-
-
-const u8 *offset_table[IV_TABLE_MAX] = {
- NULL,
- v1_offset_table,
- v15_offset_table,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-const unsigned char gamma_300cd_m3_panel[] = {
- 0x59, 0x10, 0x61, 0xCF, 0xE2, 0xC2,
- 0xC3, 0xD9, 0xC3, 0xCC, 0xDF, 0xC8,
- 0xA4, 0xC2, 0x9D, 0xB9, 0xCD, 0xB2,
- 0x00, 0x9F, 0x00, 0xA3, 0x00, 0xCD,
-};
-
-const unsigned char gamma_300cd_sm2_panel[] = {
- 0x1F, 0x1F, 0x43, 0xF7, 0xEC, 0xE1,
- 0xDB, 0xDF, 0xD7, 0xE0, 0xDF, 0xDA,
- 0xBC, 0xB8, 0xAD, 0xC2, 0xBF, 0xB7,
- 0x00, 0xBA, 0x00, 0xCB, 0x00, 0xD7,
-};
-
-const unsigned char *gamma_300cd_list[GAMMA_300CD_MAX] = {
- gamma_300cd_m3_panel, /* 0xa2, 0x25 */
- gamma_300cd_m3_panel, /* 0xfe, 0x83 */
- gamma_300cd_m3_panel, /* 0xfe, 0x80 */
- gamma_300cd_sm2_panel, /* 0xa2, 0x15 */
-};
-
-const unsigned char gamma_id_list[GAMMA_300CD_MAX] = {
- 0x25, 0x83, 0x80, 0x15
-};
-
-static s16 s9_to_s16(s16 v)
-{
- return (s16)(v << 7) >> 7;
-}
-
-
-u32 calc_v1_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- u32 ret = 0;
-
- if (gamma >= V1_VOLTAGE_COUNT) {
- printk("[SMART:ERROR] : %s Exceed Max Gamma Value (%d)", __func__, gamma);
- gamma = V1_VOLTAGE_COUNT-1;
- }
- ret = v1_voltage_tbl[gamma] >> 10;
-
- return ret;
-}
-
-
-u32 calc_v15_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 20, DV :320 */
- int ret = 0;
- u32 v1, v35;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v35 = adjust_volt[rgb_index][AD_IV35];
-
- if (gamma >= V15_VOLTAGE_COUNT) {
- printk(KERN_ERR "[SMART:ERROR] : %s Exceed Max Gamma Value (%d)", __func__, gamma);
- gamma = V15_VOLTAGE_COUNT-1;
- }
- ratio = cv20_dv320_ratio_tbl[gamma];
-
- ret = (v1 << 10) - ((v1-v35)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v35_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 65, DV :320 */
- int ret = 0;
- u32 v1, v59;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v59 = adjust_volt[rgb_index][AD_IV59];
-
- if (gamma >= V35_VOLTAGE_COUNT) {
- printk(KERN_ERR "[SMART:ERROR] : %s Exceed Max Gamma Value (%d)", __func__, gamma);
- gamma = V35_VOLTAGE_COUNT-1;
- }
- ratio = cv64_dv320_ratio_tbl[gamma];
-
- ret = (v1 << 10) - ((v1-v59)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v59_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 65, DV :320 */
- int ret = 0;
- u32 v1, v87;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v87 = adjust_volt[rgb_index][AD_IV87];
-
- if (gamma >= V59_VOLTAGE_COUNT) {
- printk(KERN_ERR "[SMART:ERROR] : %s Exceed Max Gamma Value (%d)", __func__, gamma);
- gamma = V59_VOLTAGE_COUNT-1;
- }
- ratio = cv64_dv320_ratio_tbl[gamma];
-
- ret = (v1 << 10) - ((v1-v87)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v87_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 65, DV :320 */
- int ret = 0;
- u32 v1, v171;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v171 = adjust_volt[rgb_index][AD_IV171];
-
- if (gamma >= V87_VOLTAGE_COUNT) {
- printk(KERN_ERR "[SMART:ERROR] : %s Exceed Max Gamma Value (%d)", __func__, gamma);
- gamma = V87_VOLTAGE_COUNT-1;
- }
- ratio = cv64_dv320_ratio_tbl[gamma];
-
- ret = (v1 << 10) - ((v1-v171)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v171_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- /* for CV : 65, DV :320 */
- int ret = 0;
- u32 v1, v255;
- u32 ratio = 0;
-
- v1 = adjust_volt[rgb_index][AD_IV1];
- v255 = adjust_volt[rgb_index][AD_IV255];
-
- if (gamma >= V171_VOLTAGE_COUNT) {
- printk(KERN_ERR "[SMART:ERROR] : %s Exceed Max Gamma Value (%d)", __func__, gamma);
- gamma = V171_VOLTAGE_COUNT-1;
- }
- ratio = cv64_dv320_ratio_tbl[gamma];
-
- ret = (v1 << 10) - ((v1-v255)*ratio);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v255_volt(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX])
-{
- u32 ret = 0;
-
- if (gamma >= V255_VOLTAGE_COUNT) {
- printk(KERN_ERR "[SMART:ERROR] : %s Exceed Max Gamma Value (%d)", __func__, gamma);
- gamma = V255_VOLTAGE_COUNT-1;
- }
- ret = v255_voltage_tbl[gamma] >> 10;
-
- return ret;
-}
-
-
-u8 calc_voltage_table(struct str_smart_dim *smart, const u8 *mtp)
-{
- int c, i, j;
-#if defined(MTP_REVERSE)
- int offset1 = 0;
-#endif
- int offset = 0;
- s16 t1, t2;
- s16 adjust_mtp[CI_MAX][IV_MAX];
- /* u32 adjust_volt[CI_MAX][AD_IVMAX] = {0, }; */
- u8 range_index;
- u8 table_index = 0;
-
- u32 v1, v2;
- u32 ratio;
-
- u32(*calc_volt[IV_MAX])(s16 gamma, int rgb_index, u32 adjust_volt[CI_MAX][AD_IVMAX]) = {
- calc_v1_volt,
- calc_v15_volt,
- calc_v35_volt,
- calc_v59_volt,
- calc_v87_volt,
- calc_v171_volt,
- calc_v255_volt,
- };
-
- u8 calc_seq[6] = {IV_1, IV_171, IV_87, IV_59, IV_35, IV_15};
- u8 ad_seq[6] = {AD_IV1, AD_IV171, AD_IV87, AD_IV59, AD_IV35, AD_IV15};
-
- memset(adjust_mtp, 0, sizeof(adjust_mtp));
-
- for (c = CI_RED; c < CI_MAX; c++) {
- offset = IV_255*CI_MAX+c*2;
-#if defined(MTP_REVERSE)
- offset1 = IV_255*(c+1)+(c*2);
- t1 = s9_to_s16(mtp[offset1]<<8|mtp[offset1+1]);
-#else
- t1 = s9_to_s16(mtp[offset]<<8|mtp[offset+1]);
-#endif
- t2 = s9_to_s16(smart->default_gamma[offset]<<8|
- smart->default_gamma[offset+1]) + t1;
- smart->mtp[c][IV_255] = t1;
- adjust_mtp[c][IV_255] = t2;
- smart->adjust_volt[c][AD_IV255] = calc_volt[IV_255](t2, c, smart->adjust_volt);
-
- /* for V0 All RGB Voltage Value is Reference Voltage */
- smart->adjust_volt[c][AD_IV0] = VREG0_REG_VOLT;
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- for (i = IV_1; i < IV_255; i++) {
-#if defined(MTP_REVERSE)
- t1 = (s8)mtp[(calc_seq[i])+(c*8)];
-#else
- t1 = (s8)mtp[CI_MAX*calc_seq[i]+c];
-#endif
- t2 = smart->default_gamma[CI_MAX*calc_seq[i]+c] + t1;
-
- smart->mtp[c][calc_seq[i]] = t1;
- adjust_mtp[c][calc_seq[i]] = t2;
- smart->adjust_volt[c][ad_seq[i]] = calc_volt[calc_seq[i]](t2, c, smart->adjust_volt);
- }
- }
-
- for (i = 0; i < AD_IVMAX; i++) {
- for (c = CI_RED; c < CI_MAX; c++)
- smart->ve[table_index].v[c] = smart->adjust_volt[c][i];
-
- range_index = 0;
- for (j = table_index+1; j < table_index+range_table_count[i]; j++) {
- for (c = CI_RED; c < CI_MAX; c++) {
- if (smart->t_info[i].offset_table != NULL)
- ratio = smart->t_info[i].offset_table[range_index] * smart->t_info[i].rv;
- else
- ratio = (range_table_count[i]-(range_index+1)) * smart->t_info[i].rv;
-
- v1 = smart->adjust_volt[c][i+1] << 15;
- v2 = (smart->adjust_volt[c][i] - smart->adjust_volt[c][i+1])*ratio;
- smart->ve[j].v[c] = ((v1+v2) >> 15);
- }
- range_index++;
- }
- table_index = j;
- }
-
-#if 0
- printk(KERN_INFO "++++++++++++++++++++++++++++++ MTP VALUE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : 0x%08x(%04d)", color_name[c], smart->mtp[c][i], smart->mtp[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ ADJUST VALUE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : 0x%08x(%04d)", color_name[c],
- adjust_mtp[c][i], adjust_mtp[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ ADJUST VOLTAGE ++++++++++++++++++++++++++++++\n");
- for (i = AD_IV0; i < AD_IVMAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : %04dV", color_name[c], smart->adjust_volt[c][i]);
- printk("\n");
- }
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++++++++++ VOLTAGE TABLE ++++++++++++++++++++++++++++++++++++++\n");
- for (i = 0; i < 256; i++) {
- printk("Gray Level : %03d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk(" %c : %04dV", color_name[c], smart->ve[i].v[c]);
- printk("\n");
- }
-#endif
- return 0;
-}
-
-
-int init_table_info(struct str_smart_dim *smart)
-{
- int i;
- int offset = 0;
-
- for (i = 0; i < IV_TABLE_MAX; i++) {
- smart->t_info[i].count = (u8)range_table_count[i];
- smart->t_info[i].offset_table = offset_table[i];
- smart->t_info[i].rv = table_radio[i];
- offset += range_table_count[i];
- }
- smart->flooktbl = flookup_tbl;
- smart->g300_gra_tbl = gamma_250_gra_table;
- smart->g22_tbl = gamma_22_tbl;
-
- for (i = 0; i < GAMMA_300CD_MAX; i++) {
- if (smart->panelid[1] == gamma_id_list[i])
- break;
- }
-
- if (i >= GAMMA_300CD_MAX) {
- printk(KERN_ERR "[SMART DIMMING-WARNING] %s Can't found default gamma table\n", __func__);
- smart->default_gamma = gamma_300cd_list[GAMMA_300CD_MAX-1];
- } else
- smart->default_gamma = gamma_300cd_list[i];
-
- return 0;
-}
-
-
-u32 lookup_vtbl_idx(struct str_smart_dim *smart, u32 gamma)
-{
- u32 lookup_index;
- u16 table_count, table_index;
- u32 gap, i;
- u32 minimum = smart->g300_gra_tbl[255];
- u32 candidate = 0;
- u32 offset = 0;
-
- /* printk("Input Gamma Value : %d\n", gamma); */
-
- lookup_index = (gamma >> 10) + 1;
- if (lookup_index > MAX_GRADATION) {
- printk(KERN_ERR "ERROR Wrong input value LOOKUP INDEX : %d\n", lookup_index);
- lookup_index = MAX_GRADATION - 1;
- }
-
- /* printk("lookup index : %d\n",lookup_index); */
-
- if (smart->flooktbl[lookup_index].count) {
- if (smart->flooktbl[lookup_index-1].count) {
- table_index = smart->flooktbl[lookup_index-1].entry;
- table_count = smart->flooktbl[lookup_index].count + smart->flooktbl[lookup_index-1].count;
- } else {
- table_index = smart->flooktbl[lookup_index].entry;
- table_count = smart->flooktbl[lookup_index].count;
- }
- } else {
- offset += 1;
- while (!(smart->flooktbl[lookup_index+offset].count || smart->flooktbl[lookup_index-offset].count))
- offset++;
-
- if (smart->flooktbl[lookup_index-offset].count)
- table_index = smart->flooktbl[lookup_index-offset].entry;
- else
- table_index = smart->flooktbl[lookup_index+offset].entry;
- table_count = smart->flooktbl[lookup_index+offset].count + smart->flooktbl[lookup_index-offset].count;
- }
-
-
- for (i = 0; i < table_count; i++) {
- if (gamma > smart->g300_gra_tbl[table_index])
- gap = gamma - smart->g300_gra_tbl[table_index];
- else
- gap = smart->g300_gra_tbl[table_index] - gamma;
-
- if (gap == 0) {
- candidate = table_index;
- break;
- }
-
- if (gap < minimum) {
- minimum = gap;
- candidate = table_index;
- }
- table_index++;
- }
-#if 0
- printk(KERN_INFO "cal : found index : %d\n", candidate);
- printk(KERN_INFO "gamma : %d, found index : %d found gamma : %d\n",
- gamma, candidate, smart->g300_gra_tbl[candidate]);
-#endif
- return candidate;
-}
-
-/*
-V1 = 4.8 - 4.8(5+i)/600
-600V1 = 2880 - 24 - 4.8i
-i = (2880-24)/4.8 - 600V1/4.8
- = 592 - 125V1
-*/
-
-u32 calc_v1_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 ret;
- u32 v1;
-
- v1 = dv[ci][IV_1];
- ret = (595 << 10) - (125 * v1);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_v15_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v15, v35;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v15 = dv[ci][IV_15];
- v35 = dv[ci][IV_35];
-
-#if 0
- t1 = (v1 - v15) * 1000;
- t2 = v1 - v35;
-
- ret = 320*(t1/t2)-(20*1000);
-
- ret = ret/1000;
-#else
- t1 = (v1 - v15) << 10;
- t2 = (v1 - v35) ? (v1 - v35) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (20 << 10);
- ret >>= 10;
-
-#endif
- return ret;
-}
-
-
-u32 calc_v35_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v35, v57;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v35 = dv[ci][IV_35];
- v57 = dv[ci][IV_59];
-
-#if 0
- t1 = (v1 - v35) * 1000;
- t2 = v1 - v57;
- ret = 320*(t1/t2) - (65 * 1000);
-
- ret = ret/1000;
-#else
- t1 = (v1 - v35) << 10;
- t2 = (v1 - v57) ? (v1 - v57) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (64 << 10);
-
- ret >>= 10;
-#endif
-
- return ret;
-}
-
-
-u32 calc_v50_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v57, v87;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v57 = dv[ci][IV_59];
- v87 = dv[ci][IV_87];
-
-#if 0
- t1 = (v1 - v57) * 1000;
- t2 = v1 - v87;
- ret = 320*(t1/t2) - (65 * 1000);
- ret = ret/1000;
-#else
- t1 = (v1 - v57) << 10;
- t2 = (v1 - v87) ? (v1 - v87) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (64 << 10);
- ret >>= 10;
-#endif
- return ret;
-}
-
-
-u32 calc_v87_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v87, v171;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v87 = dv[ci][IV_87];
- v171 = dv[ci][IV_171];
-
-#if 0
- t1 = (v1 - v87) * 1000;
- t2 = v1 - v171;
- ret = 320*(t1/t2) - (65 * 1000);
- ret = ret/1000;
-#else
- t1 = (v1 - v87) << 10;
- t2 = (v1 - v171) ? (v1 - v171) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (64 << 10);
- ret >>= 10;
-#endif
-
- return ret;
-}
-
-
-u32 calc_v171_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 t1, t2;
- u32 v1, v171, v255;
- u32 ret;
-
- v1 = dv[ci][IV_1];
- v171 = dv[ci][IV_171];
- v255 = dv[ci][IV_255];
-
-#if 0
- t1 = (v1 - v171) * 1000;
- t2 = v1 - v255;
- ret = 320*(t1/t2) - (65 * 1000);
- ret = ret/1000;
-#else
- t1 = (v1 - v171) << 10;
- t2 = (v1 - v255) ? (v1 - v255) : (v1) ? v1 : 1;
- ret = (320 * (t1/t2)) - (64 << 10);
- ret >>= 10;
-#endif
-
- return ret;
-}
-
-
-
-/*
-V255 = 4.8 - 4.8(100+i)/600
-600V255 = 2880 - 480 - 4.8i
-i = (2880-480)/4.8 - 600V255/4.8
- = 500 - 125*V255
-*/
-
-
-u32 calc_v255_reg(int ci, u32 dv[CI_MAX][IV_MAX])
-{
- u32 ret;
- u32 v255;
-
- v255 = dv[ci][IV_255];
-
- ret = (500 << 10) - (125 * v255);
- ret = ret >> 10;
-
- return ret;
-}
-
-
-u32 calc_gamma_table(struct str_smart_dim *smart, u32 gv, u8 result[])
-{
- u32 i, c;
- u32 temp;
- u32 lidx;
- u32 dv[CI_MAX][IV_MAX];
- s16 gamma[CI_MAX][IV_MAX];
- u16 offset;
- u32(*calc_reg[IV_MAX])(int ci, u32 dv[CI_MAX][IV_MAX]) = {
- calc_v1_reg,
- calc_v15_reg,
- calc_v35_reg,
- calc_v50_reg,
- calc_v87_reg,
- calc_v171_reg,
- calc_v255_reg,
- };
-
- memset(gamma, 0, sizeof(gamma));
-
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][0] = smart->adjust_volt[c][AD_IV1];
-
-
- for (i = IV_15; i < IV_MAX; i++) {
- temp = smart->g22_tbl[dv_value[i]] * gv;
- lidx = lookup_vtbl_idx(smart, temp);
- for (c = CI_RED; c < CI_MAX; c++)
- dv[c][i] = smart->ve[lidx].v[c];
- }
-
- /* for IV1 does not calculate value */
- /* just use default gamma value (IV1) */
- for (c = CI_RED; c < CI_MAX; c++)
- gamma[c][IV_1] = smart->default_gamma[c];
-
- for (i = IV_15; i < IV_MAX; i++) {
- for (c = CI_RED; c < CI_MAX; c++)
- gamma[c][i] = (s16)calc_reg[i](c, dv) - smart->mtp[c][i];
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- offset = IV_255*CI_MAX+c*2;
- result[offset+1] = gamma[c][IV_255];
- }
-
- for (c = CI_RED; c < CI_MAX; c++) {
- for (i = IV_1; i < IV_255; i++)
- result[(CI_MAX*i)+c] = gamma[c][i];
- }
-
-#if 0
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND VOLTAGE ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("%c : %04dV", color_name[c], dv[c][i]);
- printk("\n");
- }
-
-
- printk(KERN_INFO "\n\n++++++++++++++++++++++++++++++ FOUND REG ++++++++++++++++++++++++++++++\n");
- for (i = IV_1; i < IV_MAX; i++) {
- printk("V Level : %d - ", i);
- for (c = CI_RED; c < CI_MAX; c++)
- printk("%c : %3d, 0x%2x", color_name[c], gamma[c][i], gamma[c][i]);
- printk("\n");
- }
-#endif
- return 0;
-}
-
diff --git a/drivers/video/samsung_duallcd/smart_dimming_s6e8ab0.h b/drivers/video/samsung_duallcd/smart_dimming_s6e8ab0.h
deleted file mode 100644
index 00368f2..0000000
--- a/drivers/video/samsung_duallcd/smart_dimming_s6e8ab0.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* linux/drivers/video/samsung/smartdimming.h
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
-
- * Samsung Smart Dimming for OCTA
- *
- * Minwoo Kim, <minwoo7945.kim@samsung.com>
- *
-*/
-
-
-#ifndef __SMART_DIMMING_H__
-#define __SMART_DIMMING_H__
-
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-
-#define MAX_GRADATION 250
-#define PANEL_ID_MAX 3
-#define GAMMA_300CD_MAX 4
-
-
-#define V1_VOLTAGE_COUNT 150
-#define V255_VOLTAGE_COUNT 390
-#define V15_VOLTAGE_COUNT 255
-#define V35_VOLTAGE_COUNT 255
-#define V59_VOLTAGE_COUNT 255
-#define V87_VOLTAGE_COUNT 255
-#define V171_VOLTAGE_COUNT 255
-
-
-enum {
- CI_RED,
- CI_GREEN,
- CI_BLUE,
- CI_MAX,
-};
-
-
-enum {
- IV_1,
- IV_15,
- IV_35,
- IV_59,
- IV_87,
- IV_171,
- IV_255,
- IV_MAX,
- IV_TABLE_MAX,
-};
-
-
-enum {
- AD_IV0,
- AD_IV1,
- AD_IV15,
- AD_IV35,
- AD_IV59,
- AD_IV87,
- AD_IV171,
- AD_IV255,
- AD_IVMAX,
-};
-
-
-struct str_voltage_entry {
- u32 v[CI_MAX];
-};
-
-
-struct str_table_info {
- /* et : start gray value */
- u8 st;
- /* end gray value, st + count */
- u8 et;
- u8 count;
- const u8 *offset_table;
- /* rv : ratio value */
- u32 rv;
-};
-
-
-struct str_flookup_table {
- u16 entry;
- u16 count;
-};
-
-
-struct str_smart_dim {
- u8 panelid[PANEL_ID_MAX];
- s16 mtp[CI_MAX][IV_MAX];
- struct str_voltage_entry ve[256];
- const u8 *default_gamma;
- struct str_table_info t_info[IV_TABLE_MAX];
- const struct str_flookup_table *flooktbl;
- const u32 *g22_tbl;
- const u32 *g300_gra_tbl;
- u32 adjust_volt[CI_MAX][AD_IVMAX];
-};
-
-
-int init_table_info(struct str_smart_dim *smart);
-u8 calc_voltage_table(struct str_smart_dim *smart, const u8 *mtp);
-u32 calc_gamma_table(struct str_smart_dim *smart, u32 gv, u8 result[]);
-
-
-#endif
diff --git a/drivers/video/samsung_duallcd/smart_mtp_2p2_gamma.h b/drivers/video/samsung_duallcd/smart_mtp_2p2_gamma.h
deleted file mode 100644
index 65c80a8..0000000
--- a/drivers/video/samsung_duallcd/smart_mtp_2p2_gamma.h
+++ /dev/null
@@ -1,1051 +0,0 @@
-#ifndef _SMART_MTP_2P2_GAMMA_H_
-#define _SMART_MTP_2P2_GAMMA_H_
-
-/*
-* index : 0 ~ 255
-* 300 is max CANDELA
-* (300*((index/255)^2.2))*16384
-*/
-int ea8868_gamma_2p2[] = {
-0,
-25,
-115,
-280,
-527,
-861,
-1286,
-1805,
-2421,
-3137,
-3955,
-4878,
-5907,
-7044,
-8292,
-9651,
-11123,
-12710,
-14413,
-16233,
-18173,
-20232,
-22412,
-24715,
-27140,
-29691,
-32366,
-35168,
-38098,
-41156,
-44342,
-47659,
-51107,
-54687,
-58399,
-62245,
-66224,
-70339,
-74589,
-78976,
-83500,
-88161,
-92961,
-97900,
-102979,
-108198,
-113559,
-119061,
-124705,
-130492,
-136423,
-142497,
-148717,
-155081,
-161592,
-168248,
-175052,
-182003,
-189101,
-196348,
-203744,
-211290,
-218985,
-226831,
-234827,
-242975,
-251275,
-259727,
-268332,
-277090,
-286002,
-295067,
-304288,
-313663,
-323193,
-332880,
-342723,
-352722,
-362878,
-373192,
-383664,
-394294,
-405082,
-416030,
-427137,
-438404,
-449831,
-461419,
-473167,
-485077,
-497149,
-509382,
-521778,
-534337,
-547059,
-559944,
-572993,
-586206,
-599584,
-613127,
-626834,
-640708,
-654746,
-668952,
-683323,
-697862,
-712567,
-727440,
-742481,
-757689,
-773066,
-788612,
-804327,
-820211,
-836264,
-852488,
-868881,
-885445,
-902180,
-919086,
-936163,
-953412,
-970833,
-988426,
-1006191,
-1024129,
-1042241,
-1060525,
-1078983,
-1097615,
-1116421,
-1135402,
-1154557,
-1173887,
-1193393,
-1213073,
-1232930,
-1252962,
-1273171,
-1293556,
-1314118,
-1334857,
-1355774,
-1376867,
-1398139,
-1419588,
-1441216,
-1463022,
-1485007,
-1507171,
-1529514,
-1552037,
-1574739,
-1597622,
-1620684,
-1643927,
-1667351,
-1690955,
-1714740,
-1738707,
-1762856,
-1787186,
-1811698,
-1836393,
-1861270,
-1886329,
-1911572,
-1936997,
-1962606,
-1988399,
-2014375,
-2040536,
-2066881,
-2093410,
-2120123,
-2147022,
-2174106,
-2201375,
-2228829,
-2256469,
-2284296,
-2312308,
-2340506,
-2368892,
-2397464,
-2426222,
-2455168,
-2484302,
-2513623,
-2543131,
-2572828,
-2602713,
-2632786,
-2663047,
-2693498,
-2724137,
-2754965,
-2785983,
-2817191,
-2848588,
-2880174,
-2911951,
-2943919,
-2976076,
-3008425,
-3040964,
-3073694,
-3106616,
-3139729,
-3173033,
-3206530,
-3240218,
-3274098,
-3308171,
-3342436,
-3376894,
-3411545,
-3446388,
-3481425,
-3516656,
-3552080,
-3587697,
-3623509,
-3659515,
-3695715,
-3732109,
-3768698,
-3805482,
-3842461,
-3879635,
-3917004,
-3954569,
-3992329,
-4030286,
-4068438,
-4106786,
-4145331,
-4184072,
-4223010,
-4262145,
-4301476,
-4341005,
-4380731,
-4420655,
-4460776,
-4501095,
-4541612,
-4582327,
-4623241,
-4664352,
-4705663,
-4747172,
-4788880,
-4830788,
-4872894,
-4915200,
-};
-
-
-/*
-* index : 0 ~ 255
-* ((index/255)^2.2)*16384
-*/
-int ea8868_candela_coeff[] = {
-0,
-0,
-0,
-1,
-2,
-3,
-4,
-6,
-8,
-10,
-13,
-16,
-20,
-23,
-28,
-32,
-37,
-42,
-48,
-54,
-61,
-67,
-75,
-82,
-90,
-99,
-108,
-117,
-127,
-137,
-148,
-159,
-170,
-182,
-195,
-207,
-221,
-234,
-249,
-263,
-278,
-294,
-310,
-326,
-343,
-361,
-379,
-397,
-416,
-435,
-455,
-475,
-496,
-517,
-539,
-561,
-584,
-607,
-630,
-654,
-679,
-704,
-730,
-756,
-783,
-810,
-838,
-866,
-894,
-924,
-953,
-984,
-1014,
-1046,
-1077,
-1110,
-1142,
-1176,
-1210,
-1244,
-1279,
-1314,
-1350,
-1387,
-1424,
-1461,
-1499,
-1538,
-1577,
-1617,
-1657,
-1698,
-1739,
-1781,
-1824,
-1866,
-1910,
-1954,
-1999,
-2044,
-2089,
-2136,
-2182,
-2230,
-2278,
-2326,
-2375,
-2425,
-2475,
-2526,
-2577,
-2629,
-2681,
-2734,
-2788,
-2842,
-2896,
-2951,
-3007,
-3064,
-3121,
-3178,
-3236,
-3295,
-3354,
-3414,
-3474,
-3535,
-3597,
-3659,
-3721,
-3785,
-3849,
-3913,
-3978,
-4044,
-4110,
-4177,
-4244,
-4312,
-4380,
-4450,
-4519,
-4590,
-4660,
-4732,
-4804,
-4877,
-4950,
-5024,
-5098,
-5173,
-5249,
-5325,
-5402,
-5480,
-5558,
-5637,
-5716,
-5796,
-5876,
-5957,
-6039,
-6121,
-6204,
-6288,
-6372,
-6457,
-6542,
-6628,
-6715,
-6802,
-6890,
-6978,
-7067,
-7157,
-7247,
-7338,
-7429,
-7522,
-7614,
-7708,
-7802,
-7896,
-7992,
-8087,
-8184,
-8281,
-8379,
-8477,
-8576,
-8676,
-8776,
-8877,
-8978,
-9080,
-9183,
-9287,
-9391,
-9495,
-9601,
-9707,
-9813,
-9920,
-10028,
-10137,
-10246,
-10355,
-10466,
-10577,
-10688,
-10801,
-10914,
-11027,
-11141,
-11256,
-11372,
-11488,
-11605,
-11722,
-11840,
-11959,
-12078,
-12198,
-12319,
-12440,
-12562,
-12685,
-12808,
-12932,
-13057,
-13182,
-13308,
-13434,
-13561,
-13689,
-13818,
-13947,
-14077,
-14207,
-14338,
-14470,
-14602,
-14736,
-14869,
-15004,
-15139,
-15274,
-15411,
-15548,
-15686,
-15824,
-15963,
-16103,
-16243,
-16384,
-};
-
-int s6e63m0_candela_coeff[] =
-{
-0 ,
-0 ,
-0 ,
-0 ,
-0 ,
-0 ,
-0 ,
-0 ,
-0 ,
-0 ,
-0 ,
-0 ,
-1 ,
-1 ,
-1 ,
-2 ,
-2 ,
-3 ,
-4 ,
-5 ,
-6 ,
-8 ,
-11 ,
-13 ,
-16 ,
-20 ,
-24 ,
-29 ,
-35 ,
-41 ,
-49 ,
-58 ,
-67 ,
-78 ,
-89 ,
-103 ,
-118 ,
-135 ,
-153 ,
-173 ,
-199 ,
-223 ,
-238 ,
-252 ,
-272 ,
-291 ,
-308 ,
-326 ,
-340 ,
-360 ,
-382 ,
-402 ,
-419 ,
-443 ,
-467 ,
-494 ,
-516 ,
-538 ,
-568 ,
-592 ,
-615 ,
-640 ,
-670 ,
-693 ,
-718 ,
-748 ,
-780 ,
-812 ,
-836 ,
-869 ,
-901 ,
-929 ,
-961 ,
-991 ,
-1025 ,
-1063 ,
-1096 ,
-1130 ,
-1164 ,
-1199 ,
-1235 ,
-1274 ,
-1316 ,
-1350 ,
-1394 ,
-1435 ,
-1473 ,
-1515 ,
-1553 ,
-1596 ,
-1640 ,
-1680 ,
-1720 ,
-1761 ,
-1806 ,
-1854 ,
-1902 ,
-1944 ,
-1992 ,
-2042 ,
-2087 ,
-2141 ,
-2188 ,
-2236 ,
-2291 ,
-2339 ,
-2388 ,
-2437 ,
-2488 ,
-2538 ,
-2590 ,
-2645 ,
-2699 ,
-2759 ,
-2815 ,
-2867 ,
-2924 ,
-2982 ,
-3036 ,
-3095 ,
-3158 ,
-3220 ,
-3283 ,
-3341 ,
-3403 ,
-3468 ,
-3534 ,
-3592 ,
-3659 ,
-3722 ,
-3785 ,
-3857 ,
-3922 ,
-3987 ,
-4053 ,
-4120 ,
-4188 ,
-4260 ,
-4329 ,
-4405 ,
-4478 ,
-4551 ,
-4625 ,
-4695 ,
-4769 ,
-4844 ,
-4916 ,
-4989 ,
-5062 ,
-5135 ,
-5206 ,
-5282 ,
-5366 ,
-5445 ,
-5522 ,
-5604 ,
-5686 ,
-5764 ,
-5844 ,
-5923 ,
-6004 ,
-6085 ,
-6167 ,
-6249 ,
-6332 ,
-6419 ,
-6505 ,
-6593 ,
-6680 ,
-6764 ,
-6854 ,
-6943 ,
-7030 ,
-7113 ,
-7196 ,
-7284 ,
-7379 ,
-7472 ,
-7566 ,
-7660 ,
-7752 ,
-7847 ,
-7943 ,
-8036 ,
-8130 ,
-8224 ,
-8319 ,
-8416 ,
-8514 ,
-8618 ,
-8719 ,
-8815 ,
-8916 ,
-9019 ,
-9117 ,
-9216 ,
-9316 ,
-9421 ,
-9530 ,
-9637 ,
-9742 ,
-9853 ,
-9962 ,
-10066 ,
-10173 ,
-10284 ,
-10391 ,
-10500 ,
-10610 ,
-10721 ,
-10831 ,
-10937 ,
-11050 ,
-11161 ,
-11268 ,
-11375 ,
-11495 ,
-11610 ,
-11724 ,
-11840 ,
-11956 ,
-12073 ,
-12183 ,
-12300 ,
-12420 ,
-12540 ,
-12665 ,
-12786 ,
-12907 ,
-13028 ,
-13149 ,
-13271 ,
-13394 ,
-13521 ,
-13644 ,
-13770 ,
-13894 ,
-14021 ,
-14147 ,
-14271 ,
-14395 ,
-14527 ,
-14661 ,
-14795 ,
-14930 ,
-15066 ,
-15199 ,
-15331 ,
-15465 ,
-15596 ,
-15727 ,
-15859 ,
-15991 ,
-16124 ,
-16258 ,
-16384 ,
-};
-
-int S6e63m0_curve_2p2[] =
-{
-0 ,
-1 ,
-3 ,
-7 ,
-12 ,
-20 ,
-30 ,
-43 ,
-57 ,
-74 ,
-94 ,
-116 ,
-181 ,
-261 ,
-357 ,
-470 ,
-638 ,
-873 ,
-1149 ,
-1505 ,
-1948 ,
-2462 ,
-3187 ,
-4014 ,
-4947 ,
-5998 ,
-7322 ,
-8790 ,
-10406 ,
-12406 ,
-14785 ,
-17393 ,
-20233 ,
-23309 ,
-26624 ,
-30843 ,
-35530 ,
-40580 ,
-45998 ,
-51943 ,
-59567 ,
-66992 ,
-71281 ,
-75715 ,
-81627 ,
-87360 ,
-92307 ,
-97789 ,
-101994 ,
-107916 ,
-114544 ,
-120609 ,
-125563 ,
-132753 ,
-139989 ,
-148171 ,
-154830 ,
-161459 ,
-170491 ,
-177474 ,
-184610 ,
-191900 ,
-200851 ,
-208025 ,
-215268 ,
-224525 ,
-233995 ,
-243502 ,
-250903 ,
-260832 ,
-270407 ,
-278624 ,
-288448 ,
-297172 ,
-307582 ,
-318888 ,
-328847 ,
-338973 ,
-349266 ,
-359728 ,
-370358 ,
-382346 ,
-394839 ,
-405107 ,
-418139 ,
-430542 ,
-442024 ,
-454514 ,
-466020 ,
-478816 ,
-491918 ,
-503929 ,
-516097 ,
-528425 ,
-541772 ,
-556091 ,
-570614 ,
-583274 ,
-597584 ,
-612685 ,
-626209 ,
-642334 ,
-656324 ,
-670784 ,
-687212 ,
-701724 ,
-716402 ,
-731246 ,
-746256 ,
-761433 ,
-776925 ,
-793649 ,
-809625 ,
-827588 ,
-844406 ,
-860145 ,
-877239 ,
-894489 ,
-910729 ,
-928472 ,
-947330 ,
-966066 ,
-985002 ,
-1002167 ,
-1020903 ,
-1040415 ,
-1060129 ,
-1077595 ,
-1097643 ,
-1116505 ,
-1135562 ,
-1157162 ,
-1176573 ,
-1196160 ,
-1215924 ,
-1235865 ,
-1256295 ,
-1278087 ,
-1298760 ,
-1321576 ,
-1343524 ,
-1365222 ,
-1387352 ,
-1408362 ,
-1430792 ,
-1453323 ,
-1474871 ,
-1496592 ,
-1518486 ,
-1540554 ,
-1561718 ,
-1584466 ,
-1609667 ,
-1633642 ,
-1656693 ,
-1681320 ,
-1705704 ,
-1729303 ,
-1753078 ,
-1777031 ,
-1801161 ,
-1825469 ,
-1849954 ,
-1874618 ,
-1899643 ,
-1925558 ,
-1951427 ,
-1977817 ,
-2003972 ,
-2029340 ,
-2056321 ,
-2083012 ,
-2108920 ,
-2133761 ,
-2158798 ,
-2185215 ,
-2213663 ,
-2241712 ,
-2269787 ,
-2298149 ,
-2325479 ,
-2354122 ,
-2383050 ,
-2410925 ,
-2438977 ,
-2467207 ,
-2495613 ,
-2524928 ,
-2554282 ,
-2585355 ,
-2615560 ,
-2644608 ,
-2674730 ,
-2705583 ,
-2735171 ,
-2764934 ,
-2794872 ,
-2826365 ,
-2859063 ,
-2891124 ,
-2922619 ,
-2955919 ,
-2988470 ,
-3019761 ,
-3052021 ,
-3085226 ,
-3117156 ,
-3150042 ,
-3183115 ,
-3216377 ,
-3249187 ,
-3281038 ,
-3314853 ,
-3348429 ,
-3380335 ,
-3412468 ,
-3448603 ,
-3482883 ,
-3517348 ,
-3551998 ,
-3586833 ,
-3621854 ,
-3654959 ,
-3690035 ,
-3725943 ,
-3761880 ,
-3799549 ,
-3835852 ,
-3871969 ,
-3908271 ,
-3944757 ,
-3981429 ,
-4018286 ,
-4056410 ,
-4093256 ,
-4130995 ,
-4168337 ,
-4206323 ,
-4244164 ,
-4281201 ,
-4318413 ,
-4358189 ,
-4398275 ,
-4438561 ,
-4479048 ,
-4519735 ,
-4559566 ,
-4599306 ,
-4639620 ,
-4678786 ,
-4718131 ,
-4757656 ,
-4797361 ,
-4837246 ,
-4877311 ,
-4915200 ,
-};
-#endif
diff --git a/drivers/video/samsung_duallcd/smart_mtp_s6e63m0.c b/drivers/video/samsung_duallcd/smart_mtp_s6e63m0.c
deleted file mode 100644
index 24e5578..0000000
--- a/drivers/video/samsung_duallcd/smart_mtp_s6e63m0.c
+++ /dev/null
@@ -1,843 +0,0 @@
-/*
- * Jungbae Kim, <jb09.kim@samsung.com>
-*/
-
-#include "smart_mtp_s6e63m0.h"
-#include "smart_mtp_2p2_gamma.h"
-
-/*
-#define SMART_DIMMING_DEBUG
-*/
-
-int char_to_int(char data1)
-{
- int cal_data;
-
- if (data1 & 0x80)
- cal_data = 0xffffff00 | data1;
- else
- cal_data = data1;
-
- return cal_data;
-}
-
-#define V255_Coefficient 120
-#define V255_denominator 600
-int V255_adjustment(struct SMART_DIM *pSmart)
-{
- unsigned long long result_1, result_2, result_3, result_4;
- int add_mtp;
- int LSB;
-
- LSB = char_to_int(pSmart->MTP.R_OFFSET.OFFSET_255_LSB);
- add_mtp = LSB + V255_300CD_R;
- result_1 = result_2 = (V255_Coefficient+add_mtp) << BIT_SHIFT;
- do_div(result_2, V255_denominator);
- result_3 = (S6E63M0_VREG0_REF * result_2) >> BIT_SHIFT;
- result_4 = S6E63M0_VREG0_REF - result_3;
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_255 = result_4;
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_0 = S6E63M0_VREG0_REF;
-
- LSB = char_to_int(pSmart->MTP.G_OFFSET.OFFSET_255_LSB);
- add_mtp = LSB + V255_300CD_G;
- result_1 = result_2 = (V255_Coefficient+add_mtp) << BIT_SHIFT;
- do_div(result_2, V255_denominator);
- result_3 = (S6E63M0_VREG0_REF * result_2) >> BIT_SHIFT;
- result_4 = S6E63M0_VREG0_REF - result_3;
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_255 = result_4;
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_0 = S6E63M0_VREG0_REF;
-
- LSB = char_to_int(pSmart->MTP.B_OFFSET.OFFSET_255_LSB);
- add_mtp = LSB + V255_300CD_B;
- result_1 = result_2 = (V255_Coefficient+add_mtp) << BIT_SHIFT;
- do_div(result_2, V255_denominator);
- result_3 = (S6E63M0_VREG0_REF * result_2) >> BIT_SHIFT;
- result_4 = S6E63M0_VREG0_REF - result_3;
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_255 = result_4;
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_0 = S6E63M0_VREG0_REF;
-
- #ifdef SMART_DIMMING_DEBUG
- printk("%s V255 RED:%d GREEN:%d BLUE:%d\n", __func__,
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_255,
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_255,
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_255);
- #endif
-
- return 0;
-}
-
-void V255_hexa(int *index, struct SMART_DIM *pSmart, char *str)
-{
- unsigned long long result_1, result_2, result_3;
-
- result_1 = S6E63M0_VREG0_REF -
- (pSmart->GRAY.TABLE[index[V255_INDEX]].R_Gray);
-
- result_2 = result_1 * V255_denominator;
- do_div(result_2, S6E63M0_VREG0_REF);
- result_3 = result_2 - V255_Coefficient;
- str[15] = (result_3 & 0xff00) >> 8;
- str[16] = result_3 & 0xff;
-
- result_1 = S6E63M0_VREG0_REF -
- (pSmart->GRAY.TABLE[index[V255_INDEX]].G_Gray);
- result_2 = result_1 * V255_denominator;
- do_div(result_2, S6E63M0_VREG0_REF);
- result_3 = result_2 - V255_Coefficient;
- str[17] = (result_3 & 0xff00) >> 8;
- str[18] = result_3 & 0xff;
-
- result_1 = S6E63M0_VREG0_REF -
- (pSmart->GRAY.TABLE[index[V255_INDEX]].B_Gray);
- result_2 = result_1 * V255_denominator;
- do_div(result_2, S6E63M0_VREG0_REF);
- result_3 = result_2 - V255_Coefficient;
- str[19] = (result_3 & 0xff00) >> 8;
- str[20] = result_3 & 0xff;
-
-}
-
-#define V1_Coefficient 5
-#define V1_denominator 600
-int V1_adjustment(struct SMART_DIM *pSmart)
-{
- unsigned long long result_1, result_2, result_3, result_4;
- int add_mtp;
- int LSB;
-
- LSB = char_to_int(pSmart->MTP.R_OFFSET.OFFSET_1);
- add_mtp = LSB + V1_300CD_R;
- result_1 = result_2 = (V1_Coefficient + add_mtp) << BIT_SHIFT;
- do_div(result_2, V1_denominator);
- result_3 = (S6E63M0_VREG0_REF * result_2) >> BIT_SHIFT;
- result_4 = S6E63M0_VREG0_REF - result_3;
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_1 = result_4;
-
- LSB = char_to_int(pSmart->MTP.G_OFFSET.OFFSET_1);
- add_mtp = LSB + V1_300CD_G;
- result_1 = result_2 = (V1_Coefficient+add_mtp) << BIT_SHIFT;
- do_div(result_2, V1_denominator);
- result_3 = (S6E63M0_VREG0_REF * result_2) >> BIT_SHIFT;
- result_4 = S6E63M0_VREG0_REF - result_3;
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_1 = result_4;
-
- LSB = char_to_int(pSmart->MTP.B_OFFSET.OFFSET_1);
- add_mtp = LSB + V1_300CD_B;
- result_1 = result_2 = (V1_Coefficient+add_mtp) << BIT_SHIFT;
- do_div(result_2, V1_denominator);
- result_3 = (S6E63M0_VREG0_REF * result_2) >> BIT_SHIFT;
- result_4 = S6E63M0_VREG0_REF - result_3;
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_1 = result_4;
-
- #ifdef SMART_DIMMING_DEBUG
- printk("%s V1 RED:%d GREEN:%d BLUE:%d\n", __func__,
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_1,
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_1,
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_1);
- #endif
-
- return 0;
-
-}
-
-void V1_hexa(int *index, struct SMART_DIM *pSmart, char *str)
-{
- str[0] = pSmart->MTP.R_OFFSET.OFFSET_1 + V1_300CD_R;
- str[1] = pSmart->MTP.G_OFFSET.OFFSET_1 + V1_300CD_G;
- str[2] = pSmart->MTP.B_OFFSET.OFFSET_1 + V1_300CD_B;
-}
-
-
-#define V171_Coefficient 65
-#define V171_denominator 320
-int V171_adjustment(struct SMART_DIM *pSmart)
-{
- unsigned long long result_1, result_2, result_3, result_4;
- int add_mtp;
- int LSB;
-
- LSB = char_to_int(pSmart->MTP.R_OFFSET.OFFSET_171);
- add_mtp = LSB + V171_300CD_R;
- result_1 = (pSmart->RGB_OUTPUT.R_VOLTAGE.level_1)
- - (pSmart->RGB_OUTPUT.R_VOLTAGE.level_255);
- result_2 = (V171_Coefficient + add_mtp) << BIT_SHIFT;
- do_div(result_2, V171_denominator);
- result_3 = (result_1 * result_2) >> BIT_SHIFT;
- result_4 = (pSmart->RGB_OUTPUT.R_VOLTAGE.level_1) - result_3;
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_171 = result_4;
-
- LSB = char_to_int(pSmart->MTP.G_OFFSET.OFFSET_171);
- add_mtp = LSB + V171_300CD_G;
- result_1 = (pSmart->RGB_OUTPUT.G_VOLTAGE.level_1)
- - (pSmart->RGB_OUTPUT.G_VOLTAGE.level_255);
- result_2 = (V171_Coefficient + add_mtp) << BIT_SHIFT;
- do_div(result_2, V171_denominator);
- result_3 = (result_1 * result_2) >> BIT_SHIFT;
- result_4 = (pSmart->RGB_OUTPUT.G_VOLTAGE.level_1) - result_3;
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_171 = result_4;
-
- LSB = char_to_int(pSmart->MTP.B_OFFSET.OFFSET_171);
- add_mtp = LSB + V171_300CD_B;
- result_1 = (pSmart->RGB_OUTPUT.B_VOLTAGE.level_1)
- - (pSmart->RGB_OUTPUT.B_VOLTAGE.level_255);
- result_2 = (V171_Coefficient+add_mtp) << BIT_SHIFT;
- do_div(result_2, V171_denominator);
- result_3 = (result_1 * result_2) >> BIT_SHIFT;
- result_4 = (pSmart->RGB_OUTPUT.B_VOLTAGE.level_1) - result_3;
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_171 = result_4;;
-
- #ifdef SMART_DIMMING_DEBUG
- printk("%s V171 RED:%d GREEN:%d BLUE:%d\n", __func__,
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_171,
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_171,
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_171);
- #endif
-
- return 0;
-
-}
-
-void V171_hexa(int *index, struct SMART_DIM *pSmart, char *str)
-{
- unsigned long long result_1, result_2, result_3;
-
- result_1 = (pSmart->GRAY.TABLE[1].R_Gray)
- - (pSmart->GRAY.TABLE[index[V171_INDEX]].R_Gray);
- result_2 = result_1 * V171_denominator;
- result_3 = (pSmart->GRAY.TABLE[1].R_Gray)
- - (pSmart->GRAY.TABLE[index[V255_INDEX]].R_Gray);
- do_div(result_2, result_3);
- str[12] = (result_2 - V171_Coefficient) & 0xff;
-
- result_1 = (pSmart->GRAY.TABLE[1].G_Gray)
- - (pSmart->GRAY.TABLE[index[V171_INDEX]].G_Gray);
- result_2 = result_1 * V171_denominator;
- result_3 = (pSmart->GRAY.TABLE[1].G_Gray)
- - (pSmart->GRAY.TABLE[index[V255_INDEX]].G_Gray);
- do_div(result_2, result_3);
- str[13] = (result_2 - V171_Coefficient) & 0xff;
-
- result_1 = (pSmart->GRAY.TABLE[1].B_Gray)
- - (pSmart->GRAY.TABLE[index[V171_INDEX]].B_Gray);
- result_2 = result_1 * V171_denominator;
- result_3 = (pSmart->GRAY.TABLE[1].B_Gray)
- - (pSmart->GRAY.TABLE[index[V255_INDEX]].B_Gray);
- do_div(result_2, result_3);
- str[14] = (result_2 - V171_Coefficient) & 0xff;
-
-}
-
-
-#define V87_Coefficient 65
-#define V87_denominator 320
-int V87_adjustment(struct SMART_DIM *pSmart)
-{
- unsigned long long result_1, result_2, result_3, result_4;
- int add_mtp;
- int LSB;
-
- LSB = char_to_int(pSmart->MTP.R_OFFSET.OFFSET_87);
- add_mtp = LSB + V87_300CD_R;
- result_1 = (pSmart->RGB_OUTPUT.R_VOLTAGE.level_1)
- - (pSmart->RGB_OUTPUT.R_VOLTAGE.level_171);
- result_2 = (V87_Coefficient + add_mtp) << BIT_SHIFT;
- do_div(result_2, V87_denominator);
- result_3 = (result_1 * result_2) >> BIT_SHIFT;
- result_4 = (pSmart->RGB_OUTPUT.R_VOLTAGE.level_1) - result_3;
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_87 = result_4;
-
- LSB = char_to_int(pSmart->MTP.G_OFFSET.OFFSET_87);
- add_mtp = LSB + V87_300CD_G;
- result_1 = (pSmart->RGB_OUTPUT.G_VOLTAGE.level_1)
- - (pSmart->RGB_OUTPUT.G_VOLTAGE.level_171);
- result_2 = (V87_Coefficient + add_mtp) << BIT_SHIFT;
- do_div(result_2, V87_denominator);
- result_3 = (result_1 * result_2) >> BIT_SHIFT;
- result_4 = (pSmart->RGB_OUTPUT.G_VOLTAGE.level_1) - result_3;
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_87 = result_4;
-
- LSB = char_to_int(pSmart->MTP.B_OFFSET.OFFSET_87);
- add_mtp = LSB + V87_300CD_B;
- result_1 = (pSmart->RGB_OUTPUT.B_VOLTAGE.level_1)
- - (pSmart->RGB_OUTPUT.B_VOLTAGE.level_171);
- result_2 = (V87_Coefficient + add_mtp) << BIT_SHIFT;
- do_div(result_2, V87_denominator);
- result_3 = (result_1 * result_2) >> BIT_SHIFT;
- result_4 = (pSmart->RGB_OUTPUT.B_VOLTAGE.level_1) - result_3;
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_87 = result_4;
-
- #ifdef SMART_DIMMING_DEBUG
- printk("%s V87 RED:%d GREEN:%d BLUE:%d\n", __func__,
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_87,
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_87,
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_87);
- #endif
-
- return 0;
-
-}
-
-void V87_hexa(int *index, struct SMART_DIM *pSmart, char *str)
-{
- unsigned long long result_1, result_2, result_3;
-
- result_1 = (pSmart->GRAY.TABLE[1].R_Gray)
- - (pSmart->GRAY.TABLE[index[V87_INDEX]].R_Gray);
- result_2 = result_1 * V87_denominator;
- result_3 = (pSmart->GRAY.TABLE[1].R_Gray)
- - (pSmart->GRAY.TABLE[index[V171_INDEX]].R_Gray);
- do_div(result_2, result_3);
- str[9] = (result_2 - V87_Coefficient) & 0xff;
-
- result_1 = (pSmart->GRAY.TABLE[1].G_Gray)
- - (pSmart->GRAY.TABLE[index[V87_INDEX]].G_Gray);
- result_2 = result_1 * V87_denominator;
- result_3 = (pSmart->GRAY.TABLE[1].G_Gray)
- - (pSmart->GRAY.TABLE[index[V171_INDEX]].G_Gray);
- do_div(result_2, result_3);
- str[10] = (result_2 - V87_Coefficient) & 0xff;
-
- result_1 = (pSmart->GRAY.TABLE[1].B_Gray)
- - (pSmart->GRAY.TABLE[index[V87_INDEX]].B_Gray);
- result_2 = result_1 * V87_denominator;
- result_3 = (pSmart->GRAY.TABLE[1].B_Gray)
- - (pSmart->GRAY.TABLE[index[V171_INDEX]].B_Gray);
- do_div(result_2, result_3);
- str[11] = (result_2 - V87_Coefficient) & 0xff;
-}
-
-#define V43_Coefficient 65
-#define V43_denominator 320
-int V43_adjustment(struct SMART_DIM *pSmart)
-{
- unsigned long long result_1, result_2, result_3, result_4;
- int add_mtp;
- int LSB;
-
- LSB = char_to_int(pSmart->MTP.R_OFFSET.OFFSET_43);
- add_mtp = LSB + V43_300CD_R;
- result_1 = (pSmart->RGB_OUTPUT.R_VOLTAGE.level_1)
- - (pSmart->RGB_OUTPUT.R_VOLTAGE.level_87);
- result_2 = (V43_Coefficient + add_mtp) << BIT_SHIFT;
- do_div(result_2, V43_denominator);
- result_3 = (result_1 * result_2) >> BIT_SHIFT;
- result_4 = (pSmart->RGB_OUTPUT.R_VOLTAGE.level_1) - result_3;
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_43 = result_4;
-
- LSB = char_to_int(pSmart->MTP.G_OFFSET.OFFSET_43);
- add_mtp = LSB + V43_300CD_G;
- result_1 = (pSmart->RGB_OUTPUT.G_VOLTAGE.level_1)
- - (pSmart->RGB_OUTPUT.G_VOLTAGE.level_87);
- result_2 = (V43_Coefficient + add_mtp) << BIT_SHIFT;
- do_div(result_2, V43_denominator);
- result_3 = (result_1 * result_2) >> BIT_SHIFT;
- result_4 = (pSmart->RGB_OUTPUT.G_VOLTAGE.level_1) - result_3;
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_43 = result_4;
-
- LSB = char_to_int(pSmart->MTP.B_OFFSET.OFFSET_43);
- add_mtp = LSB + V43_300CD_B;
- result_1 = (pSmart->RGB_OUTPUT.B_VOLTAGE.level_1)
- - (pSmart->RGB_OUTPUT.B_VOLTAGE.level_87);
- result_2 = (V43_Coefficient + add_mtp) << BIT_SHIFT;
- do_div(result_2, V43_denominator);
- result_3 = (result_1 * result_2) >> BIT_SHIFT;
- result_4 = (pSmart->RGB_OUTPUT.B_VOLTAGE.level_1) - result_3;
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_43 = result_4;
-
- #ifdef SMART_DIMMING_DEBUG
- printk("%s V43 RED:%d GREEN:%d BLUE:%d\n", __func__,
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_43,
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_43,
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_43);
- #endif
-
- return 0;
-
-}
-
-
-void V43_hexa(int *index, struct SMART_DIM *pSmart, char *str)
-{
- unsigned long long result_1, result_2, result_3;
-
- result_1 = (pSmart->GRAY.TABLE[1].R_Gray)
- - (pSmart->GRAY.TABLE[index[V43_INDEX]].R_Gray);
- result_2 = result_1 * V43_denominator;
- result_3 = (pSmart->GRAY.TABLE[1].R_Gray)
- - (pSmart->GRAY.TABLE[index[V87_INDEX]].R_Gray);
- do_div(result_2, result_3);
- str[6] = (result_2 - V43_Coefficient) & 0xff;
-
- result_1 = (pSmart->GRAY.TABLE[1].G_Gray)
- - (pSmart->GRAY.TABLE[index[V43_INDEX]].G_Gray);
- result_2 = result_1 * V43_denominator;
- result_3 = (pSmart->GRAY.TABLE[1].G_Gray)
- - (pSmart->GRAY.TABLE[index[V87_INDEX]].G_Gray);
- do_div(result_2, result_3);
- str[7] = (result_2 - V43_Coefficient) & 0xff;
-
- result_1 = (pSmart->GRAY.TABLE[1].B_Gray)
- - (pSmart->GRAY.TABLE[index[V43_INDEX]].B_Gray);
- result_2 = result_1 * V43_denominator;
- result_3 = (pSmart->GRAY.TABLE[1].B_Gray)
- - (pSmart->GRAY.TABLE[index[V87_INDEX]].B_Gray);
- do_div(result_2, result_3);
- str[8] = (result_2 - V43_Coefficient) & 0xff;
-
-}
-
-
-#define V19_Coefficient 65
-#define V19_denominator 320
-int V19_adjustment(struct SMART_DIM *pSmart)
-{
- unsigned long long result_1, result_2, result_3, result_4;
- int add_mtp;
- int LSB;
-
- LSB = char_to_int(pSmart->MTP.R_OFFSET.OFFSET_19);
- add_mtp = LSB + V19_300CD_R;
- result_1 = (pSmart->RGB_OUTPUT.R_VOLTAGE.level_1)
- - (pSmart->RGB_OUTPUT.R_VOLTAGE.level_43);
- result_2 = (V19_Coefficient+add_mtp) << BIT_SHIFT;
- do_div(result_2, V19_denominator);
- result_3 = (result_1 * result_2) >> BIT_SHIFT;
- result_4 = (pSmart->RGB_OUTPUT.R_VOLTAGE.level_1) - result_3;
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_19 = result_4;
-
- LSB = char_to_int(pSmart->MTP.G_OFFSET.OFFSET_19);
- add_mtp = LSB + V19_300CD_G;
- result_1 = (pSmart->RGB_OUTPUT.G_VOLTAGE.level_1)
- - (pSmart->RGB_OUTPUT.G_VOLTAGE.level_43);
- result_2 = (V19_Coefficient + add_mtp) << BIT_SHIFT;
- do_div(result_2, V19_denominator);
- result_3 = (result_1 * result_2) >> BIT_SHIFT;
- result_4 = (pSmart->RGB_OUTPUT.G_VOLTAGE.level_1) - result_3;
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_19 = result_4;
-
- LSB = char_to_int(pSmart->MTP.B_OFFSET.OFFSET_19);
- add_mtp = LSB + V19_300CD_B;
- result_1 = (pSmart->RGB_OUTPUT.B_VOLTAGE.level_1)
- - (pSmart->RGB_OUTPUT.B_VOLTAGE.level_43);
- result_2 = (V19_Coefficient + add_mtp) << BIT_SHIFT;
- do_div(result_2, V19_denominator);
- result_3 = (result_1 * result_2) >> BIT_SHIFT;
- result_4 = (pSmart->RGB_OUTPUT.B_VOLTAGE.level_1) - result_3;
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_19 = result_4;
-
- #ifdef SMART_DIMMING_DEBUG
- printk("%s V19 RED:%d GREEN:%d BLUE:%d\n", __func__,
- pSmart->RGB_OUTPUT.R_VOLTAGE.level_19,
- pSmart->RGB_OUTPUT.G_VOLTAGE.level_19,
- pSmart->RGB_OUTPUT.B_VOLTAGE.level_19);
- #endif
-
- return 0;
-
-}
-
-void V19_hexa(int *index, struct SMART_DIM *pSmart, char *str)
-{
- unsigned long long result_1, result_2, result_3;
-
- result_1 = (pSmart->GRAY.TABLE[1].R_Gray)
- - (pSmart->GRAY.TABLE[index[V19_INDEX]].R_Gray);
- result_2 = result_1 * V19_denominator;
- result_3 = (pSmart->GRAY.TABLE[1].R_Gray)
- - (pSmart->GRAY.TABLE[index[V43_INDEX]].R_Gray);
- do_div(result_2, result_3);
- str[3] = (result_2 - V19_Coefficient) & 0xff;
-
- result_1 = (pSmart->GRAY.TABLE[1].G_Gray)
- - (pSmart->GRAY.TABLE[index[V19_INDEX]].G_Gray);
- result_2 = result_1 * V19_denominator;
- result_3 = (pSmart->GRAY.TABLE[1].G_Gray)
- - (pSmart->GRAY.TABLE[index[V43_INDEX]].G_Gray);
- do_div(result_2, result_3);
- str[4] = (result_2 - V19_Coefficient) & 0xff;
-
- result_1 = (pSmart->GRAY.TABLE[1].B_Gray)
- - (pSmart->GRAY.TABLE[index[V19_INDEX]].B_Gray);
- result_2 = result_1 * V19_denominator;
- result_3 = (pSmart->GRAY.TABLE[1].B_Gray)
- - (pSmart->GRAY.TABLE[index[V43_INDEX]].B_Gray);
- do_div(result_2, result_3);
- str[5] = (result_2 - V19_Coefficient) & 0xff;
-}
-
-/*V0, V1,V19,V43,V87,V171,V255*/
-int S6E63M0_ARRAY[S6E63M0_MAX] = {0, 1, 19, 43, 87, 171, 255};
-
-int non_linear_V1toV19[] = {
-75, 69, 63, 57, 51, 46,
-41, 36, 31, 27, 23, 19,
-15, 12, 9, 6, 3};
-#define V1toV19_denominator 81
-
-int non_linear_V19toV43[] = {
-101, 94, 87, 80, 74, 68, 62,
-56, 51, 46, 41, 36, 32, 28, 24,
-20, 17, 14, 11, 8, 6, 4, 2,
-};
-#define V19toV43_denominator 108
-
-
-#define V43toV87_Coefficient 43
-#define V43toV87_Multiple 1
-#define V43toV87_denominator 44
-
-#define V87toV171_Coefficient 83
-#define V87toV171_Multiple 1
-#define V87toV171_denominator 84
-
-#define V171toV255_Coefficient 83
-#define V171toV255_Multiple 1
-#define V171toV255_denominator 84
-
-int cal_gray_scale_linear(int up, int low, int coeff,
-int mul, int deno, int cnt)
-{
- unsigned long long result_1, result_2, result_3, result_4;
-
- result_1 = up - low;
- result_2 = (result_1 * (coeff - (cnt * mul))) << BIT_SHIFT;
- do_div(result_2, deno);
- result_3 = result_2 >> BIT_SHIFT;
- result_4 = low + result_3;
-
- return (int)result_4;
-}
-
-int cal_gray_scale_non_linear(int up, int low,
-int *table, int deno, int cnt)
-{
- unsigned long long result_1, result_2, result_3, result_4;
-
- result_1 = up - low;
- result_2 = (result_1 * (table[cnt])) << BIT_SHIFT;
- do_div(result_2, deno);
- result_3 = result_2 >> BIT_SHIFT;
- result_4 = low + result_3;
-
- return (int)result_4;
-}
-
-
-int Generate_gray_scale(struct SMART_DIM *pSmart)
-{
- int cnt = 0, cal_cnt = 0;
- int array_index = 0;
-
- for (cnt = 0; cnt < S6E63M0_MAX; cnt++) {
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[cnt]].R_Gray =
- ((int *)&(pSmart->RGB_OUTPUT.R_VOLTAGE))[cnt];
-
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[cnt]].G_Gray =
- ((int *)&(pSmart->RGB_OUTPUT.G_VOLTAGE))[cnt];
-
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[cnt]].B_Gray =
- ((int *)&(pSmart->RGB_OUTPUT.B_VOLTAGE))[cnt];
- }
-
- /*
- below codes use hard coded value.
- So it is possible to modify on each model.
- V0, V1,V19,V43,V87,V171,V255
- */
- for (cnt = 0; cnt < S6E63M0_GRAY_SCALE_MAX; cnt++) {
-
- if (cnt == S6E63M0_ARRAY[0]) {
- /* 0 */
- array_index = 0;
- } else if (cnt == S6E63M0_ARRAY[1]) {
- /* 1 */
- cal_cnt = 0;
- } else if ((cnt > S6E63M0_ARRAY[1]) && (cnt < S6E63M0_ARRAY[2])) {
- /* 2 ~ 18 */
- array_index = 2;
-
- pSmart->GRAY.TABLE[cnt].R_Gray = cal_gray_scale_non_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].R_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].R_Gray,
- non_linear_V1toV19, V1toV19_denominator, cal_cnt);
-
- pSmart->GRAY.TABLE[cnt].G_Gray = cal_gray_scale_non_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].G_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].G_Gray,
- non_linear_V1toV19, V1toV19_denominator, cal_cnt);
-
- pSmart->GRAY.TABLE[cnt].B_Gray = cal_gray_scale_non_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].B_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].B_Gray,
- non_linear_V1toV19, V1toV19_denominator, cal_cnt);
-
- cal_cnt++;
- } else if (cnt == S6E63M0_ARRAY[2]) {
- /* 19 */
- cal_cnt = 0;
- } else if ((cnt > S6E63M0_ARRAY[2]) && (cnt < S6E63M0_ARRAY[3])) {
- /* 20 ~ 42 */
- array_index = 3;
-
- pSmart->GRAY.TABLE[cnt].R_Gray = cal_gray_scale_non_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].R_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].R_Gray,
- non_linear_V19toV43, V19toV43_denominator, cal_cnt);
-
- pSmart->GRAY.TABLE[cnt].G_Gray = cal_gray_scale_non_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].G_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].G_Gray,
- non_linear_V19toV43, V19toV43_denominator, cal_cnt);
-
- pSmart->GRAY.TABLE[cnt].B_Gray = cal_gray_scale_non_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].B_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].B_Gray,
- non_linear_V19toV43, V19toV43_denominator, cal_cnt);
-
- cal_cnt++;
- } else if (cnt == S6E63M0_ARRAY[3]) {
- /* 43 */
- cal_cnt = 0;
- } else if ((cnt > S6E63M0_ARRAY[3]) && (cnt < S6E63M0_ARRAY[4])) {
- /* 44 ~ 86 */
- array_index = 4;
-
- pSmart->GRAY.TABLE[cnt].R_Gray = cal_gray_scale_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].R_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].R_Gray,
- V43toV87_Coefficient, V43toV87_Multiple,
- V43toV87_denominator, cal_cnt);
-
- pSmart->GRAY.TABLE[cnt].G_Gray = cal_gray_scale_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].G_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].G_Gray,
- V43toV87_Coefficient, V43toV87_Multiple,
- V43toV87_denominator, cal_cnt);
-
- pSmart->GRAY.TABLE[cnt].B_Gray = cal_gray_scale_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].B_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].B_Gray,
- V43toV87_Coefficient, V43toV87_Multiple,
- V43toV87_denominator , cal_cnt);
-
- cal_cnt++;
- } else if (cnt == S6E63M0_ARRAY[4]) {
- /* 87 */
- cal_cnt = 0;
- } else if ((cnt > S6E63M0_ARRAY[4]) && (cnt < S6E63M0_ARRAY[5])) {
- /* 88 ~ 170 */
- array_index = 5;
-
- pSmart->GRAY.TABLE[cnt].R_Gray = cal_gray_scale_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].R_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].R_Gray,
- V87toV171_Coefficient, V87toV171_Multiple,
- V87toV171_denominator, cal_cnt);
-
- pSmart->GRAY.TABLE[cnt].G_Gray = cal_gray_scale_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].G_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].G_Gray,
- V87toV171_Coefficient, V87toV171_Multiple,
- V87toV171_denominator, cal_cnt);
-
- pSmart->GRAY.TABLE[cnt].B_Gray = cal_gray_scale_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].B_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].B_Gray,
- V87toV171_Coefficient, V87toV171_Multiple,
- V87toV171_denominator, cal_cnt);
- cal_cnt++;
-
- } else if (cnt == S6E63M0_ARRAY[5]) {
- /* 171 */
- cal_cnt = 0;
- } else if ((cnt > S6E63M0_ARRAY[5]) && (cnt < S6E63M0_ARRAY[6])) {
- /* 172 ~ 254 */
- array_index = 6;
-
- pSmart->GRAY.TABLE[cnt].R_Gray = cal_gray_scale_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].R_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].R_Gray,
- V171toV255_Coefficient, V171toV255_Multiple,
- V171toV255_denominator, cal_cnt);
-
- pSmart->GRAY.TABLE[cnt].G_Gray = cal_gray_scale_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].G_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].G_Gray,
- V171toV255_Coefficient, V171toV255_Multiple,
- V171toV255_denominator, cal_cnt);
-
- pSmart->GRAY.TABLE[cnt].B_Gray = cal_gray_scale_linear(
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index-1]].B_Gray,
- pSmart->GRAY.TABLE[S6E63M0_ARRAY[array_index]].B_Gray,
- V171toV255_Coefficient, V171toV255_Multiple,
- V171toV255_denominator, cal_cnt);
-
- cal_cnt++;
- } else {
- if (cnt == S6E63M0_ARRAY[6]) {
- printk("%s end\n", __func__);
- } else {
- printk(KERN_ERR "%s fail cnt:%d \n", __func__, cnt);
- return -1;
- }
- }
-
- }
-
- #ifdef SMART_DIMMING_DEBUG
- for (cnt = 0; cnt < S6E63M0_GRAY_SCALE_MAX; cnt++) {
- printk("%s %d R:%d G:%d B:%d\n", __func__, cnt,
- pSmart->GRAY.TABLE[cnt].R_Gray,
- pSmart->GRAY.TABLE[cnt].G_Gray,
- pSmart->GRAY.TABLE[cnt].B_Gray);
- }
- #endif
- return 0;
-}
-
-
-int Smart_dimming_init(struct SMART_DIM *smart_dim)
-{
- V255_adjustment(smart_dim);
- V1_adjustment(smart_dim);
- V171_adjustment(smart_dim);
- V87_adjustment(smart_dim);
- V43_adjustment(smart_dim);
- V19_adjustment(smart_dim);
-
- if (Generate_gray_scale(smart_dim)) {
- printk(KERN_ERR "lcd smart dimming fail Generate_gray_scale\n");
- return -1;
- }
-
- return 0;
-}
-
-int searching_function(long long candela, int *index)
-{
- long long delta_1 = 0, delta_2 = 0;
- int cnt;
-
- /*
- * This searching_functin should be changed with improved
- searcing algorithm to reduce searching time.
- */
- *index = -1;
-
- for (cnt = 0; cnt < (S6E63M0_GRAY_SCALE_MAX-1); cnt++) {
- delta_1 = candela - S6e63m0_curve_2p2[cnt];
- delta_2 = candela - S6e63m0_curve_2p2[cnt+1];
-
- if (delta_2 < 0) {
- *index = (delta_1 + delta_2) <= 0 ? cnt : cnt+1;
- break;
- }
-
- if (delta_1 == 0) {
- *index = cnt;
- break;
- }
-
- if (delta_2 == 0) {
- *index = cnt+1;
- break;
- }
- }
-
- if (*index == -1)
- return -1;
- else
- return 0;
-}
-
-/* -1 means V1 */
-#define S6E63M0_TABLE_MAX (S6E63M0_MAX-1)
-void(*Make_hexa[S6E63M0_TABLE_MAX])(int*, struct SMART_DIM*, char*) = {
- V255_hexa,
- V171_hexa,
- V87_hexa,
- V43_hexa,
- V19_hexa,
- V1_hexa
-};
-
-void generate_gamma(struct SMART_DIM *pSmart, char *str, int size)
-{
- long long candela_level[S6E63M0_TABLE_MAX] = {-1, -1, -1, -1, -1, -1};
- int bl_index[S6E63M0_TABLE_MAX] = {-1 , -1, -1, -1, -1, -1};
-
- unsigned long long temp_cal_data = 0;
- int bl_level, cnt;
- int level_255_temp = 0;
- int level_255_temp_MSB = 0;
-
- bl_level = pSmart->brightness_level;
-
- /*calculate candela level */
- for (cnt = 0; cnt < S6E63M0_TABLE_MAX; cnt++) {
- temp_cal_data =
- ((long long)(s6e63m0_candela_coeff[S6E63M0_ARRAY[cnt+1]])) *
- ((long long)(bl_level));
- candela_level[cnt] = temp_cal_data;
- }
-
- #ifdef SMART_DIMMING_DEBUG
- printk("%s candela_1:%llu candela_19:%llu candela_43:%llu "
- "candela_87:%llu candela_171:%llu candela_255:%llu \n", __func__,
- candela_level[0], candela_level[1], candela_level[2],
- candela_level[3], candela_level[4], candela_level[5]);
- #endif
-
- /*calculate brightness level*/
- for (cnt = 0; cnt < S6E63M0_TABLE_MAX; cnt++) {
- if (searching_function(candela_level[cnt], &(bl_index[cnt]))) {
- printk("%s searching functioin error cnt:%d\n", __func__, cnt);
- }
- }
-
- #ifdef SMART_DIMMING_DEBUG
- printk("%s bl_index_1:%d bl_index_19:%d bl_index_43:%d "
- "bl_index_87:%d bl_index_171:%d bl_index_255:%d\n", __func__,
- bl_index[0], bl_index[1], bl_index[2], bl_index[3], bl_index[4], bl_index[5]);
- #endif
-
- /*Generate Gamma table*/
- for (cnt = 0; cnt < S6E63M0_TABLE_MAX; cnt++) {
- (void)Make_hexa[cnt](bl_index , pSmart, str);
- }
-
- /*subtration MTP_OFFSET value from generated gamma table*/
- str[3] -= pSmart->MTP.R_OFFSET.OFFSET_19;
- str[4] -= pSmart->MTP.G_OFFSET.OFFSET_19;
- str[5] -= pSmart->MTP.B_OFFSET.OFFSET_19;
-
- str[6] -= pSmart->MTP.R_OFFSET.OFFSET_43;
- str[7] -= pSmart->MTP.G_OFFSET.OFFSET_43;
- str[8] -= pSmart->MTP.B_OFFSET.OFFSET_43;
-
- str[9] -= pSmart->MTP.R_OFFSET.OFFSET_87;
- str[10] -= pSmart->MTP.G_OFFSET.OFFSET_87;
- str[11] -= pSmart->MTP.B_OFFSET.OFFSET_87;
-
- str[12] -= pSmart->MTP.R_OFFSET.OFFSET_171;
- str[13] -= pSmart->MTP.G_OFFSET.OFFSET_171;
- str[14] -= pSmart->MTP.B_OFFSET.OFFSET_171;
-
- level_255_temp = (str[15] << 8) | str[16] ;
- level_255_temp -= pSmart->MTP.R_OFFSET.OFFSET_255_LSB;
- level_255_temp_MSB = level_255_temp / 256;
- str[15] = level_255_temp_MSB & 0xff;
- str[16] = level_255_temp & 0xff;
-
- level_255_temp = (str[17] << 8) | str[18] ;
- level_255_temp -= pSmart->MTP.G_OFFSET.OFFSET_255_LSB;
- level_255_temp_MSB = level_255_temp / 256;
- str[17] = level_255_temp_MSB & 0xff;
- str[18] = level_255_temp & 0xff;
-
- level_255_temp = (str[19] << 8) | str[20] ;
- level_255_temp -= pSmart->MTP.B_OFFSET.OFFSET_255_LSB;
- level_255_temp_MSB = level_255_temp / 256;
- str[19] = level_255_temp_MSB & 0xff;
- str[20] = level_255_temp & 0xff;
-}
diff --git a/drivers/video/samsung_duallcd/smart_mtp_s6e63m0.h b/drivers/video/samsung_duallcd/smart_mtp_s6e63m0.h
deleted file mode 100644
index 6af518d..0000000
--- a/drivers/video/samsung_duallcd/smart_mtp_s6e63m0.h
+++ /dev/null
@@ -1,125 +0,0 @@
-#ifndef _SMART_MTP_S6E63M0_H_
-#define _SMART_MTP_S6E63M0_H_
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/wait.h>
-#include <linux/ctype.h>
-#include <asm/div64.h>
-
-
-#define BIT_SHIFT 14
-/*
- it means BIT_SHIFT is 14. pow(2,BIT_SHIFT) is 16384.
- BIT_SHIFT is used for right bit shfit
-*/
-#define BIT_SHFIT_MUL 16384
-
-#define S6E63M0_GRAY_SCALE_MAX 256
-
-/*4.2*16384 4.5 is VREG1_REF value */
-#define S6E63M0_VREG0_REF 68813
-
-/*V0,V1,V19,V43,V87,V171,V255*/
-#define S6E63M0_MAX 7
-
-/* PANEL DEPENDET THINGS */
-#define V1_300CD_R 0x18
-#define V1_300CD_G 0x08
-#define V1_300CD_B 0x24
-
-#define V19_300CD_R 0x6B
-#define V19_300CD_G 0x76
-#define V19_300CD_B 0x57
-
-#define V43_300CD_R 0xBD
-#define V43_300CD_G 0xC3
-#define V43_300CD_B 0xB5
-
-#define V87_300CD_R 0xB4
-#define V87_300CD_G 0xBB
-#define V87_300CD_B 0xAC
-
-#define V171_300CD_R 0xC5
-#define V171_300CD_G 0xC9
-#define V171_300CD_B 0xC0
-
-#define V255_300CD_R 0xB7
-#define V255_300CD_G 0xAB
-#define V255_300CD_B 0xCF
-/* PANEL DEPENDET THINGS END*/
-
-
-enum {
- V1_INDEX = 0,
- V19_INDEX = 1,
- V43_INDEX = 2,
- V87_INDEX = 3,
- V171_INDEX = 4,
- V255_INDEX = 5,
-};
-
-struct GAMMA_LEVEL{
- int level_0;
- int level_1;
- int level_19;
- int level_43;
- int level_87;
- int level_171;
- int level_255;
-} __attribute__((packed));
-
-struct RGB_OUTPUT_VOLTARE{
- struct GAMMA_LEVEL R_VOLTAGE;
- struct GAMMA_LEVEL G_VOLTAGE;
- struct GAMMA_LEVEL B_VOLTAGE;
-} __attribute__((packed));
-
-struct GRAY_VOLTAGE{
- /*
- This voltage value use 14bit right shit
- it means voltage is divied by 16384.
- */
- int R_Gray;
- int G_Gray;
- int B_Gray;
-} __attribute__((packed));
-
-struct GRAY_SCALE{
- struct GRAY_VOLTAGE TABLE[S6E63M0_GRAY_SCALE_MAX];
-} __attribute__((packed));
-
-struct MTP_SET{
- char OFFSET_1;
- char OFFSET_19;
- char OFFSET_43;
- char OFFSET_87;
- char OFFSET_171;
- char OFFSET_255_MSB;
- char OFFSET_255_LSB;
-} __attribute__((packed));
-
-struct MTP_OFFSET{
- /*
- MTP_OFFSET is consist of 22 byte.
- First byte is dummy and 21 byte is useful.
- */
- struct MTP_SET R_OFFSET;
- struct MTP_SET G_OFFSET;
- struct MTP_SET B_OFFSET;
-} __attribute__((packed));
-
-
-struct SMART_DIM{
- struct MTP_OFFSET MTP;
- struct RGB_OUTPUT_VOLTARE RGB_OUTPUT;
- struct GRAY_SCALE GRAY;
- int brightness_level;
-} __attribute__((packed));
-
-void generate_gamma(struct SMART_DIM *smart_dim, char *str, int size);
-int Smart_dimming_init(struct SMART_DIM *smart_dim);
-
-#endif
diff --git a/drivers/zorro/.gitignore b/drivers/zorro/.gitignore
new file mode 100644
index 0000000..34f980b
--- /dev/null
+++ b/drivers/zorro/.gitignore
@@ -0,0 +1,2 @@
+devlist.h
+gen-devlist